From 510d2c3e466e953eba52c1a7c4e1d423ee10e21f Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Fri, 19 Oct 2018 12:40:22 +0800 Subject: [PATCH] move lean packages to my packages feed --- package/lean/adbyby/Makefile | 70 - package/lean/adbyby/files/7620n/adbyby | Bin 1232100 -> 0 bytes package/lean/adbyby/files/adbyby.sh | 16 - package/lean/adbyby/files/adbybyfirst.sh | 11 - package/lean/adbyby/files/adbybyupdate.sh | 11 - package/lean/adbyby/files/adhook.ini | 14 - package/lean/adbyby/files/ar71xx/adbyby | Bin 1208336 -> 0 bytes package/lean/adbyby/files/arm/adbyby | Bin 390964 -> 0 bytes package/lean/adbyby/files/armv7/adbyby | Bin 832928 -> 0 bytes package/lean/adbyby/files/data/adclear.ini | 121 - package/lean/adbyby/files/data/clean.ini | 43 - package/lean/adbyby/files/data/lazy.bin | Bin 59679 -> 0 bytes package/lean/adbyby/files/data/lazy.txt | 1 - package/lean/adbyby/files/data/rules.txt | 15 - package/lean/adbyby/files/data/user.txt | 0 package/lean/adbyby/files/data/video.txt | 23 - package/lean/adbyby/files/doc/hidecss.js | 1 - package/lean/adbyby/files/update.info | 10 - package/lean/adbyby/files/user.action | 9 - package/lean/adbyby/files/x86/adbyby | Bin 949892 -> 0 bytes package/lean/adbyby/files/x86_64/adbyby | Bin 938784 -> 0 bytes package/lean/autocore/Makefile | 37 - package/lean/autocore/files/autocore | 64 - package/lean/autocore/files/index.htm | 830 -- package/lean/automount/Makefile | 36 - package/lean/automount/files/15-automount | 27 - .../lean/automount/files/zzz-move-automount | 7 - package/lean/autosamba/Makefile | 35 - package/lean/autosamba/files/20-smb | 105 - package/lean/ddns-scripts_aliyun/Makefile | 72 - .../ddns-scripts_aliyun/update_aliyun_com.sh | 233 - package/lean/default-settings/Makefile | 49 - .../files/zzz-default-settings | 72 - .../default-settings/i18n/default.zh-cn.po | 53 - .../lean/default-settings/i18n/more.zh-cn.po | 1037 -- .../lean/default-settings/i18n/sqm.zh-cn.po | 203 - .../default-settings/tools/po2lmo/Makefile | 12 - .../default-settings/tools/po2lmo/src/po2lmo | Bin 17424 -> 0 bytes .../tools/po2lmo/src/po2lmo.c | 247 - .../tools/po2lmo/src/template_lmo.c | 328 - .../tools/po2lmo/src/template_lmo.h | 92 - package/lean/ipset-lists/Makefile | 48 - .../files/etc/gfwlist/china-banned | 4802 ------- .../files/etc/gfwlist/unblock-youku | 95 - .../ipset-lists/files/etc/init.d/ipset.sh | 29 - .../lean/ipset-lists/files/etc/ipset/china | 4728 ------- .../lean/ipset-lists/files/etc/ipset/local | 6 - .../usr/lib/lua/luci/controller/gfwlist.lua | 14 - .../usr/lib/lua/luci/i18n/gfwlist.zh-cn.lmo | Bin 68 -> 0 bytes .../usr/lib/lua/luci/model/cbi/gfwlist.lua | 33 - package/lean/ipset-lists/po/zh_CN/gfwlist.po | 9 - package/lean/ipset-lists/tools/Makefile | 3 - .../lean/ipset-lists/tools/base-gfwlist.txt | 2941 ----- .../ipset-lists/tools/gen-china-routes.sh | 85 - package/lean/ipset-lists/tools/gen-gfwlist.sh | 29 - package/lean/ipset-lists/tools/ipv4_merger.c | 339 - package/lean/ipv6-helper/Makefile | 56 - .../files/root/etc/hotplug.d/iface/60-6in4 | 12 - .../lean/k3-brcmfmac4366c-firmware/Makefile | 42 - .../lib/firmware/brcm/brcmfmac4366c-pcie.bin | Bin 933688 -> 0 bytes package/lean/k3screenctrl/Makefile | 47 - .../lean/k3screenctrl/files/k3screenctrl.init | 14 - package/lean/libidn2/Makefile | 93 - package/lean/luci-app-adbyby-plus/Makefile | 18 - .../luasrc/controller/adbyby.lua | 18 - .../luasrc/model/cbi/adbyby.lua | 178 - .../luasrc/view/adbyby/adbyby_status.htm | 22 - .../luci-app-adbyby-plus/po/zh-cn/adbyby.po | 125 - .../root/etc/config/adbyby | 11 - .../root/etc/init.d/adbyby | 218 - .../root/etc/ppp/ip-up.d/adrulesup.sh | 3 - .../root/etc/uci-defaults/adbyby | 22 - .../root/usr/share/adbyby/adblack.conf | 14 - .../root/usr/share/adbyby/adblock.sh | 17 - .../root/usr/share/adbyby/adesc.conf | 3 - .../root/usr/share/adbyby/adhost.conf | 69 - .../root/usr/share/adbyby/adupdate.sh | 24 - .../root/usr/share/adbyby/blockip.conf | 1 - .../root/usr/share/adbyby/dnsmasq.adblock | 940 -- .../root/usr/share/adbyby/dnsmasq.ads | 4 - .../root/usr/share/adbyby/dnsmasq.esc | 3 - .../root/usr/share/adbyby/firewall.include | 16 - .../root/usr/share/adbyby/rules.txt | 15 - package/lean/luci-app-aliddns/Makefile | 19 - .../luasrc/controller/aliddns.lua | 4 - .../luasrc/model/cbi/aliddns.lua | 52 - .../lean/luci-app-aliddns/po/zh-cn/aliddns.po | 4 - .../luci-app-aliddns/root/etc/config/aliddns | 10 - .../luci-app-aliddns/root/etc/init.d/aliddns | 18 - .../root/etc/uci-defaults/luci-app-aliddns | 5 - .../luci-app-aliddns/root/usr/sbin/aliddns | 128 - package/lean/luci-app-autoreboot/Makefile | 17 - .../luasrc/controller/autoreboot.lua | 4 - .../luasrc/model/cbi/autoreboot.lua | 38 - .../po/zh-cn/autoreboot.po | 25 - .../root/etc/config/autoreboot | 7 - .../root/etc/init.d/autoreboot | 39 - package/lean/luci-app-filetransfer/Makefile | 18 - .../etc/uci-defaults/luci-filetransfer | 6 - .../luasrc/controller/filetransfer.lua | 12 - .../luasrc/model/cbi/updownload.lua | 148 - .../luasrc/view/cbi/other_button.htm | 7 - .../luasrc/view/cbi/other_download.htm | 5 - .../luasrc/view/cbi/other_dvalue.htm | 8 - .../luasrc/view/cbi/other_upload.htm | 5 - .../po/zh-cn/filetransfer.po | 56 - package/lean/luci-app-flowoffload/Makefile | 17 - .../luasrc/controller/flowoffload.lua | 41 - .../luasrc/model/cbi/flowoffload.lua | 39 - .../luasrc/view/flow/status.htm | 24 - .../po/zh-cn/flowoffload.po | 41 - .../root/etc/config/flowoffload | 8 - .../root/etc/init.d/flowoffload | 193 - .../root/etc/uci-defaults/flowoffload | 16 - .../root/usr/share/dnscache-watchdog.sh | 9 - package/lean/luci-app-ipsec-vpnd/Makefile | 18 - .../luasrc/controller/ipsec-server.lua | 19 - .../model/cbi/ipsec-server/ipsec-server.lua | 35 - .../luasrc/view/ipsec/ipsec_status.htm | 22 - .../luci-app-ipsec-vpnd/po/zh-cn/ipsec.po | 34 - .../luci-app-ipsec-vpnd/root/etc/config/ipsec | 9 - .../luci-app-ipsec-vpnd/root/etc/init.d/ipsec | 427 - .../root/etc/ipsec.include | 11 - .../root/etc/uci-defaults/ipsec | 54 - package/lean/luci-app-openvpn-server/Makefile | 21 - .../luasrc/controller/openvpn-server.lua | 14 - .../cbi/openvpn-server/openvpn-server.lua | 131 - .../po/zh-cn/openvpn-server.po | 50 - .../root/etc/config/openvpn | 28 - .../root/etc/easy-rsa/keys/01.pem | 74 - .../root/etc/easy-rsa/keys/02.pem | 71 - .../root/etc/easy-rsa/keys/ca.crt | 20 - .../root/etc/easy-rsa/keys/ca.key | 16 - .../root/etc/easy-rsa/keys/client1.crt | 71 - .../root/etc/easy-rsa/keys/client1.csr | 12 - .../root/etc/easy-rsa/keys/client1.key | 16 - .../root/etc/easy-rsa/keys/client1.p12 | Bin 2861 -> 0 bytes .../root/etc/easy-rsa/keys/dh1024.pem | 5 - .../root/etc/easy-rsa/keys/index.txt | 2 - .../root/etc/easy-rsa/keys/index.txt.attr | 1 - .../root/etc/easy-rsa/keys/index.txt.attr.old | 1 - .../root/etc/easy-rsa/keys/index.txt.old | 1 - .../root/etc/easy-rsa/keys/serial | 1 - .../root/etc/easy-rsa/keys/serial.old | 1 - .../root/etc/easy-rsa/keys/server.crt | 74 - .../root/etc/easy-rsa/keys/server.csr | 12 - .../root/etc/easy-rsa/keys/server.key | 16 - .../root/etc/easy-rsa/openssl-1.0.0.cnf | 286 - .../root/etc/easy-rsa/vars | 19 - .../root/etc/genovpn.sh | 26 - .../root/etc/openvpn/ca.crt | 20 - .../root/etc/openvpn/client1.crt | 71 - .../root/etc/openvpn/client1.key | 16 - .../root/etc/openvpn/dh1024.pem | 5 - .../root/etc/openvpn/server.crt | 74 - .../root/etc/openvpn/server.key | 16 - .../root/etc/openvpncert.sh | 15 - .../root/etc/ovpnadd.conf | 9 - .../root/etc/uci-defaults/openvpn | 46 - package/lean/luci-app-pptp-server/Makefile | 21 - .../luasrc/controller/pptp-server.lua | 19 - .../model/cbi/pptp-server/pptp-server.lua | 37 - .../luasrc/view/pptp/pptp_status.htm | 22 - .../luci-app-pptp-server/po/zh-cn/pptp.po | 56 - .../root/etc/config/pptpd | 12 - .../root/etc/pptpd.include | 6 - .../root/etc/uci-defaults/pptpd | 37 - package/lean/luci-app-ramfree/Makefile | 17 - .../luasrc/controller/release_ram.lua | 9 - .../luci-app-ramfree/po/zh-cn/release_ram.po | 2 - package/lean/luci-app-sfe/Makefile | 17 - .../luci-app-sfe/luasrc/controller/sfe.lua | 39 - .../luci-app-sfe/luasrc/model/cbi/sfe.lua | 45 - .../luci-app-sfe/luasrc/view/sfe/status.htm | 24 - package/lean/luci-app-sfe/po/zh-cn/sfe.po | 53 - package/lean/luci-app-sfe/root/etc/config/sfe | 9 - package/lean/luci-app-sfe/root/etc/init.d/sfe | 206 - .../luci-app-sfe/root/etc/uci-defaults/sfe | 17 - .../root/usr/share/dnscache-watchdog.sh | 9 - package/lean/luci-app-ssr-plus/Makefile | 18 - .../luasrc/controller/shadowsocksr.lua | 178 - .../model/cbi/shadowsocksr/advanced.lua | 49 - .../model/cbi/shadowsocksr/client-config.lua | 168 - .../luasrc/model/cbi/shadowsocksr/client.lua | 72 - .../luasrc/model/cbi/shadowsocksr/control.lua | 44 - .../luasrc/model/cbi/shadowsocksr/list.lua | 23 - .../luasrc/model/cbi/shadowsocksr/log.lua | 15 - .../luasrc/model/cbi/shadowsocksr/servers.lua | 85 - .../luasrc/model/cbi/shadowsocksr/status.lua | 166 - .../luasrc/view/shadowsocksr/check.htm | 38 - .../luasrc/view/shadowsocksr/checkport.htm | 36 - .../luasrc/view/shadowsocksr/refresh.htm | 44 - .../luasrc/view/shadowsocksr/ssrurl.htm | 139 - .../luasrc/view/shadowsocksr/status.htm | 22 - .../luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 453 - .../luci-app-ssr-plus/root/etc/china_ssr.txt | 8264 ------------ .../root/etc/config/gfw.list | 55 - .../root/etc/config/shadowsocksr | 37 - .../root/etc/dnsmasq.ssr/ad.conf | 0 .../root/etc/dnsmasq.ssr/gfw_list.conf | 10354 ---------------- .../root/etc/init.d/shadowsocksr | 484 - .../root/etc/uci-defaults/luci-ssr-plus | 18 - .../luci-app-ssr-plus/root/usr/bin/ssr-ad | 6 - .../luci-app-ssr-plus/root/usr/bin/ssr-gfw | 31 - .../root/usr/bin/ssr-monitor | 151 - .../luci-app-ssr-plus/root/usr/bin/ssr-rules | 306 - .../luci-app-ssr-plus/root/usr/bin/ssr-switch | 173 - .../root/usr/share/shadowsocksr/gfw2ipset.sh | 5 - .../root/usr/share/shadowsocksr/ssr-watchdog | 17 - .../root/usr/share/shadowsocksr/subscribe.sh | 157 - .../root/usr/share/shadowsocksr/update.sh | 24 - .../lean/luci-app-ssrserver-python/Makefile | 19 - .../luasrc/controller/ssrs.lua | 21 - .../luasrc/model/cbi/ssrs.lua | 75 - .../luasrc/view/ssrs/ssrs_status.htm | 22 - .../po/zh-cn/ssrs.po | 35 - .../root/etc/config/ssrs | 11 - .../root/etc/init.d/ssrs | 95 - .../root/etc/uci-defaults/luci-app-ssrs | 19 - .../root/usr/share/ssr/.travis.yml | 21 - .../root/usr/share/ssr/CHANGES | 342 - .../root/usr/share/ssr/CONTRIBUTING.md | 29 - .../root/usr/share/ssr/Dockerfile | 31 - .../root/usr/share/ssr/LICENSE | 202 - .../root/usr/share/ssr/MANIFEST.in | 3 - .../root/usr/share/ssr/README.md | 105 - .../root/usr/share/ssr/README.rst | 113 - .../root/usr/share/ssr/apiconfig.py | 15 - .../root/usr/share/ssr/asyncmgr.py | 99 - .../root/usr/share/ssr/config.json | 25 - .../root/usr/share/ssr/configloader.py | 15 - .../root/usr/share/ssr/db_transfer.py | 631 - .../root/usr/share/ssr/debian/changelog | 5 - .../root/usr/share/ssr/debian/compat | 1 - .../root/usr/share/ssr/debian/config.json | 11 - .../root/usr/share/ssr/debian/control | 19 - .../root/usr/share/ssr/debian/copyright | 30 - .../root/usr/share/ssr/debian/docs | 2 - .../root/usr/share/ssr/debian/init.d | 149 - .../root/usr/share/ssr/debian/install | 1 - .../root/usr/share/ssr/debian/rules | 5 - .../usr/share/ssr/debian/shadowsocks.default | 12 - .../usr/share/ssr/debian/shadowsocks.manpages | 2 - .../root/usr/share/ssr/debian/source/format | 1 - .../root/usr/share/ssr/debian/sslocal.1 | 59 - .../root/usr/share/ssr/debian/ssserver.1 | 59 - .../root/usr/share/ssr/importloader.py | 24 - .../root/usr/share/ssr/initcfg.bat | 4 - .../root/usr/share/ssr/initcfg.sh | 8 - .../root/usr/share/ssr/initmudbjson.sh | 24 - .../root/usr/share/ssr/logrun.sh | 7 - .../root/usr/share/ssr/mudb.json | 2 - .../root/usr/share/ssr/mujson_mgr.py | 358 - .../root/usr/share/ssr/mysql.json | 13 - .../root/usr/share/ssr/run.sh | 7 - .../root/usr/share/ssr/server.py | 66 - .../root/usr/share/ssr/server_pool.py | 293 - .../root/usr/share/ssr/setup.py | 39 - .../root/usr/share/ssr/setup_cymysql.sh | 6 - .../usr/share/ssr/shadowsocks/__init__.py | 18 - .../usr/share/ssr/shadowsocks/asyncdns.py | 592 - .../root/usr/share/ssr/shadowsocks/common.py | 418 - .../share/ssr/shadowsocks/crypto/__init__.py | 18 - .../shadowsocks/crypto/ctypes_libsodium.py | 135 - .../ssr/shadowsocks/crypto/ctypes_openssl.py | 188 - .../share/ssr/shadowsocks/crypto/openssl.py | 199 - .../share/ssr/shadowsocks/crypto/rc4_md5.py | 52 - .../share/ssr/shadowsocks/crypto/sodium.py | 140 - .../usr/share/ssr/shadowsocks/crypto/table.py | 181 - .../usr/share/ssr/shadowsocks/crypto/util.py | 139 - .../root/usr/share/ssr/shadowsocks/daemon.py | 208 - .../root/usr/share/ssr/shadowsocks/encrypt.py | 236 - .../usr/share/ssr/shadowsocks/encrypt_test.py | 51 - .../usr/share/ssr/shadowsocks/eventloop.py | 258 - .../root/usr/share/ssr/shadowsocks/local.py | 81 - .../root/usr/share/ssr/shadowsocks/logrun.sh | 8 - .../usr/share/ssr/shadowsocks/lru_cache.py | 179 - .../root/usr/share/ssr/shadowsocks/manager.py | 291 - .../root/usr/share/ssr/shadowsocks/obfs.py | 114 - .../ssr/shadowsocks/obfsplugin/__init__.py | 18 - .../share/ssr/shadowsocks/obfsplugin/auth.py | 787 -- .../ssr/shadowsocks/obfsplugin/auth_chain.py | 840 -- .../ssr/shadowsocks/obfsplugin/http_simple.py | 315 - .../ssr/shadowsocks/obfsplugin/obfs_tls.py | 305 - .../share/ssr/shadowsocks/obfsplugin/plain.py | 104 - .../ssr/shadowsocks/obfsplugin/verify.py | 154 - .../usr/share/ssr/shadowsocks/ordereddict.py | 214 - .../root/usr/share/ssr/shadowsocks/run.sh | 7 - .../root/usr/share/ssr/shadowsocks/server.py | 221 - .../root/usr/share/ssr/shadowsocks/shell.py | 451 - .../root/usr/share/ssr/shadowsocks/stop.sh | 5 - .../root/usr/share/ssr/shadowsocks/tail.sh | 3 - .../usr/share/ssr/shadowsocks/tcprelay.py | 1476 --- .../usr/share/ssr/shadowsocks/udprelay.py | 656 - .../root/usr/share/ssr/shadowsocks/version.py | 20 - .../root/usr/share/ssr/stop.sh | 5 - .../root/usr/share/ssr/switchrule.py | 8 - .../root/usr/share/ssr/tail.sh | 3 - .../root/usr/share/ssr/tests/aes-cfb1.json | 10 - .../root/usr/share/ssr/tests/aes-cfb8.json | 10 - .../root/usr/share/ssr/tests/aes-ctr.json | 10 - .../root/usr/share/ssr/tests/aes.json | 10 - .../root/usr/share/ssr/tests/assert.sh | 148 - .../root/usr/share/ssr/tests/chacha20.json | 10 - .../ssr/tests/client-multi-server-ip.json | 10 - .../usr/share/ssr/tests/coverage_server.py | 45 - .../root/usr/share/ssr/tests/fastopen.json | 10 - .../usr/share/ssr/tests/ipv6-client-side.json | 10 - .../root/usr/share/ssr/tests/ipv6.json | 10 - .../root/usr/share/ssr/tests/jenkins.sh | 82 - .../usr/share/ssr/tests/libsodium/install.sh | 10 - .../root/usr/share/ssr/tests/nose_plugin.py | 43 - .../root/usr/share/ssr/tests/rc4-md5.json | 10 - .../root/usr/share/ssr/tests/salsa20-ctr.json | 10 - .../root/usr/share/ssr/tests/salsa20.json | 10 - .../server-multi-passwd-client-side.json | 8 - .../ssr/tests/server-multi-passwd-table.json | 19 - .../share/ssr/tests/server-multi-passwd.json | 17 - .../share/ssr/tests/server-multi-ports.json | 8 - .../root/usr/share/ssr/tests/setup_tc.sh | 18 - .../usr/share/ssr/tests/socksify/install.sh | 10 - .../usr/share/ssr/tests/socksify/socks.conf | 5 - .../root/usr/share/ssr/tests/table.json | 10 - .../root/usr/share/ssr/tests/test.py | 158 - .../root/usr/share/ssr/tests/test_command.sh | 32 - .../root/usr/share/ssr/tests/test_daemon.sh | 43 - .../usr/share/ssr/tests/test_large_file.sh | 24 - .../root/usr/share/ssr/tests/test_udp_src.py | 83 - .../root/usr/share/ssr/tests/test_udp_src.sh | 23 - .../root/usr/share/ssr/tests/workers.json | 10 - .../root/usr/share/ssr/utils/README.md | 9 - .../root/usr/share/ssr/utils/autoban.py | 53 - .../share/ssr/utils/fail2ban/shadowsocks.conf | 5 - package/lean/luci-app-syncdial/Makefile | 17 - .../luasrc/controller/syncdial.lua | 25 - .../luasrc/model/cbi/syncdial.lua | 37 - .../luasrc/view/syncdial/redial_button.htm | 17 - .../lean/luci-app-syncdial/root/bin/genwancfg | 143 - .../root/etc/config/syncdial | 7 - .../root/etc/hotplug.d/iface/01-mvifcreate | 16 - .../root/etc/uci-defaults/luci-syncdial | 12 - package/lean/luci-app-v2ray-pro/Makefile | 16 - .../luasrc/controller/v2raypro.lua | 17 - .../luasrc/model/cbi/v2raypro.lua | 243 - .../luasrc/view/cbi/other_upload2.htm | 6 - .../luasrc/view/v2raypro/v2raypro_status.htm | 22 - .../luci-app-v2ray-pro/po/zh-cn/v2raypro.po | 116 - .../root/etc/config/v2raypro | 18 - .../root/etc/init.d/v2raypro | 378 - .../root/etc/uci-defaults/v2raypro | 20 - .../root/etc/v2ray/addinip.txt | 7 - .../root/etc/v2ray/base-gfwlist.txt | 2940 ----- .../root/etc/v2ray/gen-gfwlist.sh | 29 - .../root/etc/v2ray/gen_config.lua | 169 - .../root/etc/v2ray/up-gfwlist.sh | 20 - .../root/etc/v2ray/v2ray-watchdog | 26 - .../root/etc/v2raypro.include | 11 - package/lean/luci-app-vlmcsd/Makefile | 18 - .../luasrc/controller/vlmcsd.lua | 19 - .../luasrc/model/cbi/vlmcsd.lua | 35 - .../luasrc/view/vlmcsd/vlmcsd_status.htm | 22 - .../luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po | 38 - .../luci-app-vlmcsd/root/etc/config/vlmcsd | 5 - .../luci-app-vlmcsd/root/etc/init.d/vlmcsd | 38 - .../root/etc/uci-defaults/luci-app-vlmcsd | 21 - package/lean/luci-app-vsftpd/Makefile | 17 - .../luasrc/controller/vsftpd.lua | 47 - .../luasrc/model/cbi/vsftpd/anonymous.lua | 44 - .../luasrc/model/cbi/vsftpd/general.lua | 114 - .../luasrc/model/cbi/vsftpd/item.lua | 70 - .../luasrc/model/cbi/vsftpd/log.lua | 29 - .../luasrc/model/cbi/vsftpd/users.lua | 54 - .../lean/luci-app-vsftpd/po/zh-cn/vsftpd.po | 229 - .../root/etc/uci-defaults/luci-vsftpd | 11 - package/lean/luci-app-wrtbwmon/Makefile | 17 - .../htdocs/luci-static/wrtbwmon.js | 562 - .../luasrc/controller/wrtbwmon.lua | 43 - .../luasrc/model/cbi/wrtbwmon/config.lua | 18 - .../luasrc/model/cbi/wrtbwmon/custom.lua | 23 - .../luasrc/view/wrtbwmon.htm | 46 - .../luci-app-wrtbwmon/po/zh-cn/wrtbwmon.po | 30 - .../root/etc/config/wrtbwmon | 4 - .../root/etc/init.d/wrtbwmon | 22 - .../root/etc/uci-defaults/luci-wrtbwmon | 5 - .../root/usr/sbin/readDB.awk | 157 - .../luci-app-wrtbwmon/root/usr/sbin/wrtbwmon | 301 - .../root/usr/share/wrtbwmon/usage.htm1 | 23 - .../root/usr/share/wrtbwmon/usage.htm2 | 14 - package/lean/luci-app-xlnetacc/Makefile | 69 - .../files/luci/controller/xlnetacc.lua | 47 - .../files/luci/i18n/xlnetacc.zh-cn.lmo | Bin 1188 -> 0 bytes .../files/luci/i18n/xlnetacc.zh-cn.po | 92 - .../files/luci/model/cbi/xlnetacc.lua | 36 - .../files/luci/view/xlnetacc/logview.htm | 49 - .../files/luci/view/xlnetacc/status.htm | 21 - .../files/root/etc/config/xlnetacc | 5 - .../root/etc/hotplug.d/iface/95-xlnetacc | 13 - .../files/root/etc/init.d/xlnetacc | 49 - .../files/root/etc/uci-defaults/luci-xlnetacc | 22 - .../files/root/usr/bin/xlnetacc.sh | 670 - .../luci-app-xlnetacc/tools/po2lmo/Makefile | 12 - .../tools/po2lmo/src/po2lmo.c | 247 - .../tools/po2lmo/src/template_lmo.c | 328 - .../tools/po2lmo/src/template_lmo.h | 92 - package/lean/luci-app-zerotier/Makefile | 19 - .../luasrc/controller/zerotier.lua | 18 - .../luasrc/model/cbi/zerotier.lua | 50 - .../luasrc/view/zerotier/zerotier_status.htm | 22 - .../luci-app-zerotier/po/zh-cn/zerotier.po | 22 - .../root/etc/init.d/zerotier | 99 - .../root/etc/uci-defaults/40_luci-zerotier | 17 - .../luci-app-zerotier/root/etc/zerotier.start | 27 - .../luci-app-zerotier/root/etc/zerotier.stop | 10 - package/lean/luci-lib-fs/Makefile | 49 - package/lean/luci-lib-fs/files/fs.lua | 244 - package/lean/open-vm-tools/Makefile | 129 - package/lean/open-vm-tools/files/shutdown | 8 - package/lean/open-vm-tools/files/tools.conf | 2 - .../lean/open-vm-tools/files/vmtoolsd.init | 14 - ...1-configure.ac-don-t-use-dnet-config.patch | 21 - .../0002-add-include-sys-sysmacros.h.patch | 13 - ...e-configure-test-for-struct-timespec.patch | 29 - ...finition-of-ALLPERMS-and-ACCESSPERMS.patch | 40 - ...-test-for-feature-instead-of-platfor.patch | 105 - ...onfigure-test-for-sys-stat.h-include.patch | 12 - ...include-poll.h-instead-of-sys-poll.h.patch | 13 - .../0008-Rename-poll.h-to-vm_poll.h.patch | 94 - ...strerror_r-unless-on-gnu-libc-system.patch | 28 - ...10-Use-uintmax_t-for-handling-rlim_t.patch | 14 - ...011-Use-off64_t-instead-of-__off64_t.patch | 16 - package/lean/openwrt-fullconenat/Makefile | 65 - .../lean/openwrt-fullconenat/files/Makefile | 7 - package/lean/pdnsd-alt/Makefile | 54 - package/lean/pdnsd-alt/files/pdnsd.init | 46 - package/lean/polarssl/Makefile | 74 - .../polarssl/patches/100-disable_sslv3.patch | 12 - .../polarssl/patches/200-reduce_config.patch | 252 - package/lean/shadowsocksR-libev-full/Makefile | 232 - .../files/custom_list.conf | 2 - .../files/dnsmasq.conf | 41 - .../files/firewall.user | 11 - .../files/gfw_list.conf | 6988 ----------- .../files/gfwlistr.htm | 7 - .../lean/shadowsocksR-libev-full/files/root | 3 - .../files/shadowsocksr | 21 - .../files/shadowsocksr-gfwlist | 26 - .../files/shadowsocksr-gfwlist.json | 11 - .../files/shadowsocksr-libev-backup.lua | 23 - .../files/shadowsocksr-libev-custom.lua | 23 - .../files/shadowsocksr-libev-general.lua | 23 - .../files/shadowsocksr-libev.lua | 45 - .../files/shadowsocksr-server | 17 - .../files/shadowsocksr-server.json | 15 - .../files/shadowsocksr.json | 14 - .../files/ssr-watchdog | 47 - .../files/watchdogr.htm | 7 - .../patches/0001-ss-check-Backport.patch | 315 - package/lean/shortcut-fe/Makefile | 121 - package/lean/shortcut-fe/src/Kconfig | 14 - package/lean/shortcut-fe/src/Makefile | 14 - package/lean/shortcut-fe/src/README | 122 - .../lean/shortcut-fe/src/fast-classifier.c | 1892 --- .../lean/shortcut-fe/src/fast-classifier.h | 57 - .../lean/shortcut-fe/src/nl_classifier_test.c | 281 - package/lean/shortcut-fe/src/sfe.h | 61 - package/lean/shortcut-fe/src/sfe_backport.h | 138 - package/lean/shortcut-fe/src/sfe_cm.c | 1203 -- package/lean/shortcut-fe/src/sfe_cm.h | 222 - package/lean/shortcut-fe/src/sfe_ipv4.c | 3369 ----- package/lean/shortcut-fe/src/sfe_ipv6.c | 3361 ----- .../lean/shortcut-fe/src/userspace_example.c | 232 - package/lean/softethervpn5/Makefile | 166 - package/lean/softethervpn5/files/dummy | 1 - package/lean/softethervpn5/files/launcher.sh | 2 - .../lean/softethervpn5/files/vpnbridge.init | 28 - .../lean/softethervpn5/files/vpnclient.init | 28 - .../lean/softethervpn5/files/vpnserver.init | 28 - .../100-increase-cfg-save-intervall.patch | 17 - .../patches/101-add-config-write-syslog.patch | 22 - package/lean/v2ray/Makefile | 109 - package/lean/vlmcsd/Makefile | 47 - package/lean/vlmcsd/files/vlmcsd.ini | 59 - package/lean/vlmcsd/files/vlmcsd.init | 37 - package/lean/vsftpd-alt/Makefile | 113 - package/lean/vsftpd-alt/files/vsftpd-uci.init | 14 - package/lean/vsftpd-alt/files/vsftpd.conf | 30 - package/lean/vsftpd-alt/files/vsftpd.init | 13 - package/lean/vsftpd-alt/files/vsftpd.uci | 50 - package/lean/vsftpd-alt/files/vsftpd_prepare | 253 - package/lean/vsftpd-alt/files/vsftpd_wrapper | 49 - .../lean/vsftpd-alt/patches/001-destdir.patch | 47 - .../vsftpd-alt/patches/002-find_libs.patch | 13 - .../lean/vsftpd-alt/patches/003-chroot.patch | 11 - .../patches/004-disable-capabilities.patch | 12 - .../vsftpd-alt/patches/005-disable-pam.patch | 11 - .../patches/006-musl-compatibility.patch | 13 - .../patches/007-CVE-2015-1419.patch | 98 - .../patches/100-add-uci-auth-support.patch | 127 - .../101-enable-chroot-on-writable-dir.patch | 14 - .../patches/102-keep-local-user-rights.patch | 11 - 500 files changed, 87574 deletions(-) delete mode 100644 package/lean/adbyby/Makefile delete mode 100755 package/lean/adbyby/files/7620n/adbyby delete mode 100755 package/lean/adbyby/files/adbyby.sh delete mode 100755 package/lean/adbyby/files/adbybyfirst.sh delete mode 100755 package/lean/adbyby/files/adbybyupdate.sh delete mode 100644 package/lean/adbyby/files/adhook.ini delete mode 100755 package/lean/adbyby/files/ar71xx/adbyby delete mode 100755 package/lean/adbyby/files/arm/adbyby delete mode 100755 package/lean/adbyby/files/armv7/adbyby delete mode 100644 package/lean/adbyby/files/data/adclear.ini delete mode 100644 package/lean/adbyby/files/data/clean.ini delete mode 100644 package/lean/adbyby/files/data/lazy.bin delete mode 100644 package/lean/adbyby/files/data/lazy.txt delete mode 100644 package/lean/adbyby/files/data/rules.txt delete mode 100644 package/lean/adbyby/files/data/user.txt delete mode 100644 package/lean/adbyby/files/data/video.txt delete mode 100644 package/lean/adbyby/files/doc/hidecss.js delete mode 100644 package/lean/adbyby/files/update.info delete mode 100644 package/lean/adbyby/files/user.action delete mode 100755 package/lean/adbyby/files/x86/adbyby delete mode 100755 package/lean/adbyby/files/x86_64/adbyby delete mode 100644 package/lean/autocore/Makefile delete mode 100755 package/lean/autocore/files/autocore delete mode 100644 package/lean/autocore/files/index.htm delete mode 100644 package/lean/automount/Makefile delete mode 100755 package/lean/automount/files/15-automount delete mode 100755 package/lean/automount/files/zzz-move-automount delete mode 100644 package/lean/autosamba/Makefile delete mode 100755 package/lean/autosamba/files/20-smb delete mode 100644 package/lean/ddns-scripts_aliyun/Makefile delete mode 100755 package/lean/ddns-scripts_aliyun/update_aliyun_com.sh delete mode 100644 package/lean/default-settings/Makefile delete mode 100755 package/lean/default-settings/files/zzz-default-settings delete mode 100644 package/lean/default-settings/i18n/default.zh-cn.po delete mode 100644 package/lean/default-settings/i18n/more.zh-cn.po delete mode 100644 package/lean/default-settings/i18n/sqm.zh-cn.po delete mode 100644 package/lean/default-settings/tools/po2lmo/Makefile delete mode 100644 package/lean/default-settings/tools/po2lmo/src/po2lmo delete mode 100644 package/lean/default-settings/tools/po2lmo/src/po2lmo.c delete mode 100644 package/lean/default-settings/tools/po2lmo/src/template_lmo.c delete mode 100644 package/lean/default-settings/tools/po2lmo/src/template_lmo.h delete mode 100644 package/lean/ipset-lists/Makefile delete mode 100644 package/lean/ipset-lists/files/etc/gfwlist/china-banned delete mode 100644 package/lean/ipset-lists/files/etc/gfwlist/unblock-youku delete mode 100755 package/lean/ipset-lists/files/etc/init.d/ipset.sh delete mode 100644 package/lean/ipset-lists/files/etc/ipset/china delete mode 100644 package/lean/ipset-lists/files/etc/ipset/local delete mode 100644 package/lean/ipset-lists/files/usr/lib/lua/luci/controller/gfwlist.lua delete mode 100644 package/lean/ipset-lists/files/usr/lib/lua/luci/i18n/gfwlist.zh-cn.lmo delete mode 100644 package/lean/ipset-lists/files/usr/lib/lua/luci/model/cbi/gfwlist.lua delete mode 100644 package/lean/ipset-lists/po/zh_CN/gfwlist.po delete mode 100644 package/lean/ipset-lists/tools/Makefile delete mode 100644 package/lean/ipset-lists/tools/base-gfwlist.txt delete mode 100755 package/lean/ipset-lists/tools/gen-china-routes.sh delete mode 100755 package/lean/ipset-lists/tools/gen-gfwlist.sh delete mode 100644 package/lean/ipset-lists/tools/ipv4_merger.c delete mode 100644 package/lean/ipv6-helper/Makefile delete mode 100644 package/lean/ipv6-helper/files/root/etc/hotplug.d/iface/60-6in4 delete mode 100644 package/lean/k3-brcmfmac4366c-firmware/Makefile delete mode 100644 package/lean/k3-brcmfmac4366c-firmware/files/lib/firmware/brcm/brcmfmac4366c-pcie.bin delete mode 100644 package/lean/k3screenctrl/Makefile delete mode 100755 package/lean/k3screenctrl/files/k3screenctrl.init delete mode 100644 package/lean/libidn2/Makefile delete mode 100644 package/lean/luci-app-adbyby-plus/Makefile delete mode 100644 package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua delete mode 100644 package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua delete mode 100644 package/lean/luci-app-adbyby-plus/luasrc/view/adbyby/adbyby_status.htm delete mode 100644 package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po delete mode 100644 package/lean/luci-app-adbyby-plus/root/etc/config/adbyby delete mode 100755 package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby delete mode 100755 package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh delete mode 100755 package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblack.conf delete mode 100755 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblock.sh delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adesc.conf delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adhost.conf delete mode 100755 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/blockip.conf delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.adblock delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.ads delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.esc delete mode 100755 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/firewall.include delete mode 100644 package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/rules.txt delete mode 100644 package/lean/luci-app-aliddns/Makefile delete mode 100644 package/lean/luci-app-aliddns/luasrc/controller/aliddns.lua delete mode 100644 package/lean/luci-app-aliddns/luasrc/model/cbi/aliddns.lua delete mode 100644 package/lean/luci-app-aliddns/po/zh-cn/aliddns.po delete mode 100644 package/lean/luci-app-aliddns/root/etc/config/aliddns delete mode 100755 package/lean/luci-app-aliddns/root/etc/init.d/aliddns delete mode 100755 package/lean/luci-app-aliddns/root/etc/uci-defaults/luci-app-aliddns delete mode 100755 package/lean/luci-app-aliddns/root/usr/sbin/aliddns delete mode 100644 package/lean/luci-app-autoreboot/Makefile delete mode 100644 package/lean/luci-app-autoreboot/luasrc/controller/autoreboot.lua delete mode 100644 package/lean/luci-app-autoreboot/luasrc/model/cbi/autoreboot.lua delete mode 100644 package/lean/luci-app-autoreboot/po/zh-cn/autoreboot.po delete mode 100644 package/lean/luci-app-autoreboot/root/etc/config/autoreboot delete mode 100755 package/lean/luci-app-autoreboot/root/etc/init.d/autoreboot delete mode 100644 package/lean/luci-app-filetransfer/Makefile delete mode 100755 package/lean/luci-app-filetransfer/etc/uci-defaults/luci-filetransfer delete mode 100644 package/lean/luci-app-filetransfer/luasrc/controller/filetransfer.lua delete mode 100644 package/lean/luci-app-filetransfer/luasrc/model/cbi/updownload.lua delete mode 100644 package/lean/luci-app-filetransfer/luasrc/view/cbi/other_button.htm delete mode 100644 package/lean/luci-app-filetransfer/luasrc/view/cbi/other_download.htm delete mode 100644 package/lean/luci-app-filetransfer/luasrc/view/cbi/other_dvalue.htm delete mode 100644 package/lean/luci-app-filetransfer/luasrc/view/cbi/other_upload.htm delete mode 100644 package/lean/luci-app-filetransfer/po/zh-cn/filetransfer.po delete mode 100644 package/lean/luci-app-flowoffload/Makefile delete mode 100644 package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua delete mode 100644 package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua delete mode 100644 package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm delete mode 100644 package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po delete mode 100644 package/lean/luci-app-flowoffload/root/etc/config/flowoffload delete mode 100755 package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload delete mode 100755 package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload delete mode 100755 package/lean/luci-app-flowoffload/root/usr/share/dnscache-watchdog.sh delete mode 100644 package/lean/luci-app-ipsec-vpnd/Makefile delete mode 100644 package/lean/luci-app-ipsec-vpnd/luasrc/controller/ipsec-server.lua delete mode 100644 package/lean/luci-app-ipsec-vpnd/luasrc/model/cbi/ipsec-server/ipsec-server.lua delete mode 100644 package/lean/luci-app-ipsec-vpnd/luasrc/view/ipsec/ipsec_status.htm delete mode 100644 package/lean/luci-app-ipsec-vpnd/po/zh-cn/ipsec.po delete mode 100644 package/lean/luci-app-ipsec-vpnd/root/etc/config/ipsec delete mode 100755 package/lean/luci-app-ipsec-vpnd/root/etc/init.d/ipsec delete mode 100755 package/lean/luci-app-ipsec-vpnd/root/etc/ipsec.include delete mode 100755 package/lean/luci-app-ipsec-vpnd/root/etc/uci-defaults/ipsec delete mode 100644 package/lean/luci-app-openvpn-server/Makefile delete mode 100644 package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua delete mode 100644 package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua delete mode 100644 package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/config/openvpn delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/01.pem delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/02.pem delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.crt delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.key delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.crt delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.csr delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.key delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.p12 delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/dh1024.pem delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/index.txt delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/index.txt.attr delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/index.txt.attr.old delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/index.txt.old delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/serial delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/serial.old delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/server.crt delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/server.csr delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/server.key delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/openssl-1.0.0.cnf delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/easy-rsa/vars delete mode 100755 package/lean/luci-app-openvpn-server/root/etc/genovpn.sh delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/openvpn/ca.crt delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.crt delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.key delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/openvpn/dh1024.pem delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/openvpn/server.crt delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/openvpn/server.key delete mode 100755 package/lean/luci-app-openvpn-server/root/etc/openvpncert.sh delete mode 100644 package/lean/luci-app-openvpn-server/root/etc/ovpnadd.conf delete mode 100755 package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn delete mode 100644 package/lean/luci-app-pptp-server/Makefile delete mode 100644 package/lean/luci-app-pptp-server/luasrc/controller/pptp-server.lua delete mode 100644 package/lean/luci-app-pptp-server/luasrc/model/cbi/pptp-server/pptp-server.lua delete mode 100644 package/lean/luci-app-pptp-server/luasrc/view/pptp/pptp_status.htm delete mode 100644 package/lean/luci-app-pptp-server/po/zh-cn/pptp.po delete mode 100644 package/lean/luci-app-pptp-server/root/etc/config/pptpd delete mode 100755 package/lean/luci-app-pptp-server/root/etc/pptpd.include delete mode 100755 package/lean/luci-app-pptp-server/root/etc/uci-defaults/pptpd delete mode 100644 package/lean/luci-app-ramfree/Makefile delete mode 100644 package/lean/luci-app-ramfree/luasrc/controller/release_ram.lua delete mode 100644 package/lean/luci-app-ramfree/po/zh-cn/release_ram.po delete mode 100644 package/lean/luci-app-sfe/Makefile delete mode 100644 package/lean/luci-app-sfe/luasrc/controller/sfe.lua delete mode 100644 package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua delete mode 100644 package/lean/luci-app-sfe/luasrc/view/sfe/status.htm delete mode 100644 package/lean/luci-app-sfe/po/zh-cn/sfe.po delete mode 100644 package/lean/luci-app-sfe/root/etc/config/sfe delete mode 100755 package/lean/luci-app-sfe/root/etc/init.d/sfe delete mode 100755 package/lean/luci-app-sfe/root/etc/uci-defaults/sfe delete mode 100755 package/lean/luci-app-sfe/root/usr/share/dnscache-watchdog.sh delete mode 100644 package/lean/luci-app-ssr-plus/Makefile delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/list.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/checkport.htm delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm delete mode 100644 package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm delete mode 100644 package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po delete mode 100644 package/lean/luci-app-ssr-plus/root/etc/china_ssr.txt delete mode 100644 package/lean/luci-app-ssr-plus/root/etc/config/gfw.list delete mode 100644 package/lean/luci-app-ssr-plus/root/etc/config/shadowsocksr delete mode 100644 package/lean/luci-app-ssr-plus/root/etc/dnsmasq.ssr/ad.conf delete mode 100644 package/lean/luci-app-ssr-plus/root/etc/dnsmasq.ssr/gfw_list.conf delete mode 100755 package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr delete mode 100755 package/lean/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/bin/ssr-ad delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/bin/ssr-gfw delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/bin/ssr-switch delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/ssr-watchdog delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.sh delete mode 100755 package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.sh delete mode 100644 package/lean/luci-app-ssrserver-python/Makefile delete mode 100644 package/lean/luci-app-ssrserver-python/luasrc/controller/ssrs.lua delete mode 100644 package/lean/luci-app-ssrserver-python/luasrc/model/cbi/ssrs.lua delete mode 100644 package/lean/luci-app-ssrserver-python/luasrc/view/ssrs/ssrs_status.htm delete mode 100644 package/lean/luci-app-ssrserver-python/po/zh-cn/ssrs.po delete mode 100644 package/lean/luci-app-ssrserver-python/root/etc/config/ssrs delete mode 100755 package/lean/luci-app-ssrserver-python/root/etc/init.d/ssrs delete mode 100755 package/lean/luci-app-ssrserver-python/root/etc/uci-defaults/luci-app-ssrs delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/.travis.yml delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CHANGES delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CONTRIBUTING.md delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/Dockerfile delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/LICENSE delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/MANIFEST.in delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.md delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.rst delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/apiconfig.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/asyncmgr.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/config.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/configloader.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/db_transfer.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/changelog delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/compat delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/config.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/control delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/copyright delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/docs delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/init.d delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/install delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/rules delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.default delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.manpages delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/source/format delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/sslocal.1 delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/ssserver.1 delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/importloader.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.bat delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initmudbjson.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/logrun.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mudb.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mujson_mgr.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mysql.json delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/run.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server_pool.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/setup.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/setup_cymysql.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/__init__.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/asyncdns.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/common.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/__init__.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_libsodium.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_openssl.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/openssl.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/rc4_md5.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/sodium.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/table.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/util.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/daemon.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt_test.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/eventloop.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/local.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/logrun.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/lru_cache.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/manager.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfs.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/__init__.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/auth.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/auth_chain.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/http_simple.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/obfs_tls.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/plain.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/verify.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/ordereddict.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/run.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/server.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/shell.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/stop.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tail.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tcprelay.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/udprelay.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/version.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/stop.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/switchrule.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tail.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb1.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb8.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-ctr.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes.json delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/assert.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/chacha20.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/client-multi-server-ip.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/coverage_server.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/fastopen.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6-client-side.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6.json delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/jenkins.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/libsodium/install.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/nose_plugin.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/rc4-md5.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20-ctr.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-client-side.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-table.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-ports.json delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/setup_tc.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/install.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/socks.conf delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/table.json delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_command.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_daemon.sh delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_large_file.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.py delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.sh delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/workers.json delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/README.md delete mode 100755 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/autoban.py delete mode 100644 package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/fail2ban/shadowsocks.conf delete mode 100755 package/lean/luci-app-syncdial/Makefile delete mode 100644 package/lean/luci-app-syncdial/luasrc/controller/syncdial.lua delete mode 100644 package/lean/luci-app-syncdial/luasrc/model/cbi/syncdial.lua delete mode 100644 package/lean/luci-app-syncdial/luasrc/view/syncdial/redial_button.htm delete mode 100755 package/lean/luci-app-syncdial/root/bin/genwancfg delete mode 100644 package/lean/luci-app-syncdial/root/etc/config/syncdial delete mode 100644 package/lean/luci-app-syncdial/root/etc/hotplug.d/iface/01-mvifcreate delete mode 100755 package/lean/luci-app-syncdial/root/etc/uci-defaults/luci-syncdial delete mode 100644 package/lean/luci-app-v2ray-pro/Makefile delete mode 100644 package/lean/luci-app-v2ray-pro/luasrc/controller/v2raypro.lua delete mode 100644 package/lean/luci-app-v2ray-pro/luasrc/model/cbi/v2raypro.lua delete mode 100644 package/lean/luci-app-v2ray-pro/luasrc/view/cbi/other_upload2.htm delete mode 100644 package/lean/luci-app-v2ray-pro/luasrc/view/v2raypro/v2raypro_status.htm delete mode 100644 package/lean/luci-app-v2ray-pro/po/zh-cn/v2raypro.po delete mode 100644 package/lean/luci-app-v2ray-pro/root/etc/config/v2raypro delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/init.d/v2raypro delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/uci-defaults/v2raypro delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/v2ray/addinip.txt delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/v2ray/base-gfwlist.txt delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen-gfwlist.sh delete mode 100644 package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen_config.lua delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/v2ray/up-gfwlist.sh delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/v2ray/v2ray-watchdog delete mode 100755 package/lean/luci-app-v2ray-pro/root/etc/v2raypro.include delete mode 100644 package/lean/luci-app-vlmcsd/Makefile delete mode 100644 package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua delete mode 100644 package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua delete mode 100644 package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm delete mode 100644 package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po delete mode 100644 package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd delete mode 100755 package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd delete mode 100755 package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd delete mode 100644 package/lean/luci-app-vsftpd/Makefile delete mode 100644 package/lean/luci-app-vsftpd/luasrc/controller/vsftpd.lua delete mode 100644 package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/anonymous.lua delete mode 100644 package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/general.lua delete mode 100644 package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/item.lua delete mode 100644 package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/log.lua delete mode 100644 package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/users.lua delete mode 100644 package/lean/luci-app-vsftpd/po/zh-cn/vsftpd.po delete mode 100755 package/lean/luci-app-vsftpd/root/etc/uci-defaults/luci-vsftpd delete mode 100644 package/lean/luci-app-wrtbwmon/Makefile delete mode 100644 package/lean/luci-app-wrtbwmon/htdocs/luci-static/wrtbwmon.js delete mode 100644 package/lean/luci-app-wrtbwmon/luasrc/controller/wrtbwmon.lua delete mode 100644 package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/config.lua delete mode 100644 package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/custom.lua delete mode 100644 package/lean/luci-app-wrtbwmon/luasrc/view/wrtbwmon.htm delete mode 100644 package/lean/luci-app-wrtbwmon/po/zh-cn/wrtbwmon.po delete mode 100644 package/lean/luci-app-wrtbwmon/root/etc/config/wrtbwmon delete mode 100755 package/lean/luci-app-wrtbwmon/root/etc/init.d/wrtbwmon delete mode 100755 package/lean/luci-app-wrtbwmon/root/etc/uci-defaults/luci-wrtbwmon delete mode 100755 package/lean/luci-app-wrtbwmon/root/usr/sbin/readDB.awk delete mode 100755 package/lean/luci-app-wrtbwmon/root/usr/sbin/wrtbwmon delete mode 100644 package/lean/luci-app-wrtbwmon/root/usr/share/wrtbwmon/usage.htm1 delete mode 100644 package/lean/luci-app-wrtbwmon/root/usr/share/wrtbwmon/usage.htm2 delete mode 100644 package/lean/luci-app-xlnetacc/Makefile delete mode 100644 package/lean/luci-app-xlnetacc/files/luci/controller/xlnetacc.lua delete mode 100644 package/lean/luci-app-xlnetacc/files/luci/i18n/xlnetacc.zh-cn.lmo delete mode 100644 package/lean/luci-app-xlnetacc/files/luci/i18n/xlnetacc.zh-cn.po delete mode 100644 package/lean/luci-app-xlnetacc/files/luci/model/cbi/xlnetacc.lua delete mode 100644 package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/logview.htm delete mode 100644 package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/status.htm delete mode 100644 package/lean/luci-app-xlnetacc/files/root/etc/config/xlnetacc delete mode 100644 package/lean/luci-app-xlnetacc/files/root/etc/hotplug.d/iface/95-xlnetacc delete mode 100644 package/lean/luci-app-xlnetacc/files/root/etc/init.d/xlnetacc delete mode 100644 package/lean/luci-app-xlnetacc/files/root/etc/uci-defaults/luci-xlnetacc delete mode 100644 package/lean/luci-app-xlnetacc/files/root/usr/bin/xlnetacc.sh delete mode 100644 package/lean/luci-app-xlnetacc/tools/po2lmo/Makefile delete mode 100644 package/lean/luci-app-xlnetacc/tools/po2lmo/src/po2lmo.c delete mode 100644 package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.c delete mode 100644 package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.h delete mode 100644 package/lean/luci-app-zerotier/Makefile delete mode 100644 package/lean/luci-app-zerotier/luasrc/controller/zerotier.lua delete mode 100644 package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier.lua delete mode 100644 package/lean/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm delete mode 100644 package/lean/luci-app-zerotier/po/zh-cn/zerotier.po delete mode 100755 package/lean/luci-app-zerotier/root/etc/init.d/zerotier delete mode 100755 package/lean/luci-app-zerotier/root/etc/uci-defaults/40_luci-zerotier delete mode 100755 package/lean/luci-app-zerotier/root/etc/zerotier.start delete mode 100755 package/lean/luci-app-zerotier/root/etc/zerotier.stop delete mode 100644 package/lean/luci-lib-fs/Makefile delete mode 100644 package/lean/luci-lib-fs/files/fs.lua delete mode 100644 package/lean/open-vm-tools/Makefile delete mode 100644 package/lean/open-vm-tools/files/shutdown delete mode 100644 package/lean/open-vm-tools/files/tools.conf delete mode 100644 package/lean/open-vm-tools/files/vmtoolsd.init delete mode 100644 package/lean/open-vm-tools/patches/0001-configure.ac-don-t-use-dnet-config.patch delete mode 100644 package/lean/open-vm-tools/patches/0002-add-include-sys-sysmacros.h.patch delete mode 100644 package/lean/open-vm-tools/patches/0003-Use-configure-test-for-struct-timespec.patch delete mode 100644 package/lean/open-vm-tools/patches/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch delete mode 100644 package/lean/open-vm-tools/patches/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch delete mode 100644 package/lean/open-vm-tools/patches/0006-Use-configure-test-for-sys-stat.h-include.patch delete mode 100644 package/lean/open-vm-tools/patches/0007-include-poll.h-instead-of-sys-poll.h.patch delete mode 100644 package/lean/open-vm-tools/patches/0008-Rename-poll.h-to-vm_poll.h.patch delete mode 100644 package/lean/open-vm-tools/patches/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch delete mode 100644 package/lean/open-vm-tools/patches/0010-Use-uintmax_t-for-handling-rlim_t.patch delete mode 100644 package/lean/open-vm-tools/patches/0011-Use-off64_t-instead-of-__off64_t.patch delete mode 100644 package/lean/openwrt-fullconenat/Makefile delete mode 100644 package/lean/openwrt-fullconenat/files/Makefile delete mode 100644 package/lean/pdnsd-alt/Makefile delete mode 100644 package/lean/pdnsd-alt/files/pdnsd.init delete mode 100644 package/lean/polarssl/Makefile delete mode 100644 package/lean/polarssl/patches/100-disable_sslv3.patch delete mode 100644 package/lean/polarssl/patches/200-reduce_config.patch delete mode 100644 package/lean/shadowsocksR-libev-full/Makefile delete mode 100644 package/lean/shadowsocksR-libev-full/files/custom_list.conf delete mode 100644 package/lean/shadowsocksR-libev-full/files/dnsmasq.conf delete mode 100644 package/lean/shadowsocksR-libev-full/files/firewall.user delete mode 100644 package/lean/shadowsocksR-libev-full/files/gfw_list.conf delete mode 100644 package/lean/shadowsocksR-libev-full/files/gfwlistr.htm delete mode 100644 package/lean/shadowsocksR-libev-full/files/root delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist.json delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-backup.lua delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-custom.lua delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-general.lua delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev.lua delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-server delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr-server.json delete mode 100644 package/lean/shadowsocksR-libev-full/files/shadowsocksr.json delete mode 100644 package/lean/shadowsocksR-libev-full/files/ssr-watchdog delete mode 100644 package/lean/shadowsocksR-libev-full/files/watchdogr.htm delete mode 100644 package/lean/shadowsocksR-libev-full/patches/0001-ss-check-Backport.patch delete mode 100644 package/lean/shortcut-fe/Makefile delete mode 100644 package/lean/shortcut-fe/src/Kconfig delete mode 100644 package/lean/shortcut-fe/src/Makefile delete mode 100644 package/lean/shortcut-fe/src/README delete mode 100644 package/lean/shortcut-fe/src/fast-classifier.c delete mode 100644 package/lean/shortcut-fe/src/fast-classifier.h delete mode 100644 package/lean/shortcut-fe/src/nl_classifier_test.c delete mode 100644 package/lean/shortcut-fe/src/sfe.h delete mode 100644 package/lean/shortcut-fe/src/sfe_backport.h delete mode 100644 package/lean/shortcut-fe/src/sfe_cm.c delete mode 100644 package/lean/shortcut-fe/src/sfe_cm.h delete mode 100644 package/lean/shortcut-fe/src/sfe_ipv4.c delete mode 100644 package/lean/shortcut-fe/src/sfe_ipv6.c delete mode 100644 package/lean/shortcut-fe/src/userspace_example.c delete mode 100644 package/lean/softethervpn5/Makefile delete mode 100644 package/lean/softethervpn5/files/dummy delete mode 100644 package/lean/softethervpn5/files/launcher.sh delete mode 100644 package/lean/softethervpn5/files/vpnbridge.init delete mode 100644 package/lean/softethervpn5/files/vpnclient.init delete mode 100644 package/lean/softethervpn5/files/vpnserver.init delete mode 100644 package/lean/softethervpn5/patches/100-increase-cfg-save-intervall.patch delete mode 100644 package/lean/softethervpn5/patches/101-add-config-write-syslog.patch delete mode 100644 package/lean/v2ray/Makefile delete mode 100644 package/lean/vlmcsd/Makefile delete mode 100644 package/lean/vlmcsd/files/vlmcsd.ini delete mode 100644 package/lean/vlmcsd/files/vlmcsd.init delete mode 100644 package/lean/vsftpd-alt/Makefile delete mode 100644 package/lean/vsftpd-alt/files/vsftpd-uci.init delete mode 100644 package/lean/vsftpd-alt/files/vsftpd.conf delete mode 100644 package/lean/vsftpd-alt/files/vsftpd.init delete mode 100644 package/lean/vsftpd-alt/files/vsftpd.uci delete mode 100755 package/lean/vsftpd-alt/files/vsftpd_prepare delete mode 100755 package/lean/vsftpd-alt/files/vsftpd_wrapper delete mode 100644 package/lean/vsftpd-alt/patches/001-destdir.patch delete mode 100644 package/lean/vsftpd-alt/patches/002-find_libs.patch delete mode 100644 package/lean/vsftpd-alt/patches/003-chroot.patch delete mode 100644 package/lean/vsftpd-alt/patches/004-disable-capabilities.patch delete mode 100644 package/lean/vsftpd-alt/patches/005-disable-pam.patch delete mode 100644 package/lean/vsftpd-alt/patches/006-musl-compatibility.patch delete mode 100644 package/lean/vsftpd-alt/patches/007-CVE-2015-1419.patch delete mode 100644 package/lean/vsftpd-alt/patches/100-add-uci-auth-support.patch delete mode 100644 package/lean/vsftpd-alt/patches/101-enable-chroot-on-writable-dir.patch delete mode 100644 package/lean/vsftpd-alt/patches/102-keep-local-user-rights.patch diff --git a/package/lean/adbyby/Makefile b/package/lean/adbyby/Makefile deleted file mode 100644 index 54b8bc3dc..000000000 --- a/package/lean/adbyby/Makefile +++ /dev/null @@ -1,70 +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:=adbyby -PKG_VERSION:=2.7 -PKG_RELEASE:=20181008 - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=net - CATEGORY:=Network - TITLE:=Powerful adblock module to block ad. - DEPENDS:= - URL:=http://www.adbyby.com/ -endef - -define Package/$(PKG_NAME)/description -Adbyby is a powerful adblock module to block ad,just like adblock. -endef - -define Build/Prepare -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/share/adbyby - $(INSTALL_BIN) ./files/adbyby.sh $(1)/usr/share/adbyby/ - $(INSTALL_BIN) ./files/adbybyfirst.sh $(1)/usr/share/adbyby/ - $(INSTALL_BIN) ./files/adbybyupdate.sh $(1)/usr/share/adbyby/ - $(INSTALL_CONF) ./files/adhook.ini $(1)/usr/share/adbyby/ - $(INSTALL_CONF) ./files/user.action $(1)/usr/share/adbyby/ - - $(INSTALL_DIR) $(1)/usr/share/adbyby/data - $(INSTALL_DATA) ./files/data/* $(1)/usr/share/adbyby/data/ - - $(INSTALL_DIR) $(1)/usr/share/adbyby/doc - $(INSTALL_DATA) ./files/doc/* $(1)/usr/share/adbyby/doc/ - -ifeq ($(ARCH),mipsel) - $(INSTALL_BIN) ./files/7620n/adbyby $(1)/usr/share/adbyby/ -endif -ifeq ($(ARCH),mips) - $(INSTALL_BIN) ./files/ar71xx/adbyby $(1)/usr/share/adbyby/ -endif -ifeq ($(ARCH),i386) - $(INSTALL_BIN) ./files/x86/adbyby $(1)/usr/share/adbyby/ -endif -ifeq ($(ARCH),x86_64) - $(INSTALL_BIN) ./files/x86_64/adbyby $(1)/usr/share/adbyby/ -endif -ifeq ($(ARCH),arm) - $(INSTALL_BIN) ./files/arm/adbyby $(1)/usr/share/adbyby/ -endif -ifeq ($(ARCH),aarch64) - $(INSTALL_BIN) ./files/armv7/adbyby $(1)/usr/share/adbyby/ -endif -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/lean/adbyby/files/7620n/adbyby b/package/lean/adbyby/files/7620n/adbyby deleted file mode 100755 index 39ab0a1ebca8a049b47e8a7235252b58985bf7f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232100 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%0DO*V{*;X8EdOo^f7(3$aC|G}4`F=|^|cNh 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%0Du21 zO|jzy1n)UzoFPvW(f3 zp|NYs*pcDT{7|FAQK?A&ioW0xvx zd6Bl!xgT2w{qrJmg7fO`>P!=k`nKlc!TFxrZGnl>55kF4#f?>Y%Kk-haDnjoCUu{K zZ$T+<-v^ze<tqc<4(k(JNxoN~f><|>yiZ>FxT)R{4tvq>i+>Nk>o^eg(=3-q&}*|D{o_e1cC z;H$3c+dduh)L(e1?tU88Np(}b4Le%7U<3isA-jl!^V+O=EJ|1xlrof5s$ z+SFxFi=$5k{SlPs$u{nCgN~B1+prm*&t~o6Yh~6Gq~Esrox?tE+}UICdZx9PebvJ0 zd5e?br*-5FoS(1tcfkN3_R&K_&TbNYR3F)Pz}vea-qF zD829x!aMmmenTESwVB^u(Y9SywyO8G`>d~>G2J~E!Q8M?`a_;Rtw=23gcW8QqOA%k6J3a^N5SHm3gZfnP4 z94e^YkJFd$2)X^V+~&`FZJ(KJ`)!nS9GypaB@Z0t9$A;Kn|BqbHHE6ok}mgC~}_kTKB!T?fmIyoF~0-PMin6#%$pse9Fn^<0C)2Yyf^k$i-jj zXP*cDJkpDYmLs!N&lO(VMZ?mqQ&qk61@TlB`EP=6RgS{unSJze`L`B&;8D8|!pA{4 zub;#rul@LzhTm+@_n_^E|x`^48Bqbx|9* zWlpu%bo%F=|HS5{w0@b>={>zn(a=vfoz8jo$hmNQx#6et{Uh61zfw7IkG`VeMP{c* z!=9|xO0-TN94AzU)-r8A{13)y@5AUJTGxEU6gnk4n^@l*W1gUQzkeP;=L^!f9Jo3c zO|Z*o1I;H)W&C z^|#$y5U%Ja{?zKA+Mgr1_fwdg7n(9+jK#3T2j-vrC| z`$ZpojE&KjFTG!T26eZA(n?42$D9X4``*Z$@=E4{Ra#5%$H5@X`5uk)z!Vz*UF?1@e#&gw2@Lr=cJYy-Naa{WK*Pyq`9!H1JI4)b~S@Zm~ zJ%}VWMb=qO=){P-uh2}&Xjh+3SwBtrLuJvO{{*-ZbOrIQ^kj$m@0_77BORSNVDvOR z;_K-9Jso`r{uAFwR~Md26NgSV9-1jmX;|BuoWl)Kr>S{d_vAcI=U`;v1I=HCkW0+< zM+|d^cY&AY2gA@t_5Z<3sZQA~+&U2A>05rCG>6xmS32#r&}S~ZbmPl|oS7bOc{ATn zp!;qC<S#^1N|whEBqt`9*g5%d*#&wJ1%EzI-2axBIU8`Aene;H z++P<@Cvm6EUnr;_O3%Tjge}G2i+IAhZ*yB-VX_Hop2r-`+72||(_HT( z%e+;-|1I#9>IiJ+i4i+y&E!0b6~Nc|ncN%D{B_El6WwU>Q`x}G0pFIZvk03>tG%FV zKgng?0W2J_clD|LQr1SOy?x`RnRaZ#uBfwcbU(0ch-%Ar@Z15tQ>NXvDd#ifR);v_ z2Dzv|oXL-CS7Qs~RLZIBuN`Q0mR7HDW)IY2>rYiSJ7Ig?mHhc8^-1>g zDg8f4XXktn-bbpgm#n)B8y&tssroDDMC%>)(VCY;Uwq1F3+C)uXN!X#M4H*miI+6j zI6@<(RW^puubVqu6xg z`3dtBv=)yavGmTGaoR<;+hfrBFtiulm(f>Fg4@;V^Rbk(1NvWy-=W?e+O@(IuznSE z{u58@CzYr}KT*7FRBxkh$J%a0juoO>3twysjN4Aj`w92ctn<<+e4MoMeL2#$*3L)d zOUPb5`orL8p1vrX{_(aaJy{yFbe!^2#Kz7%TX41aE#1!eNn6qGoz#hbOE_!O+7Io< zWt|VIY~uWKm-Bs;vY`=o$vwhdh7aeUMGo3netrgi79St^wcC%H%8@A@V)ZCObxm5X{`f<(~R9&!Jm{56HB0(DQzis2#`RiiW`{5VW=kn{_ z`UoCn<|xyZFXbLiUi-G=6O-cH5AA=|J{P+O*7h^qdzZKU$)w5>$gI&g^Y~0sf&B&QkHd?M@Id#mLzj^mXTy%ggwC6{#j?5K>j@9%D5C~q79^sE4tcmfTie$!?vY^=fAl`D2Rer7=bFMzZf1uqAI&W)PZbT<98> ze9?X$jRO~=o5q0OjcyOS;~!&&{7!tjasM22OZ`^5AulZ5Zh>Bwb{C-6*=h9B*@v~* zCc79boJ9Ag4Z~<<9=$TJN-yz>zgJOv5#wW7qy6RaA&oT}bKE_PZhx6D%b}~k$J{@E zn>wOjOt7Buz~o(U=;F5STBABcTe2RRM6bqHT3AM(;H-j0&gxCI{XaH?3xu=w0C#S> zra!$Y(XX?KecPC94x*v8r{z;7bECVzs8i|CG3>a2KIh7dc9Y)JH1aOe0Bht+l;@az z%T9$3;xE?PHy0dkr~kc$@=k^i^{i!%!JuLAU9HsfGwgR{Z)8h+`!!DG<}Q0*h}Pto z*Z0WgrTqxPU3(;o#b{l~Twf>oY0CzO>djsKHJiJstJPz<1BUSwow|DS+L4;gUDExm zziK6Z34$xVHke=eKDq?|;1$hZaktUv^}B zOf&z}`Z2UZjt#Q5EC0W&#Y=vEf=f7jyeEg;uObY+x~E5bAn6B%>dhy>`=|XO(+k6_#eUCWhk7v{DpB-RdNh-ZGyMcD=>Csvp zKG`fq50`sQOnMS-J1`}ytek>r#fuB6pKunRHR_x~^pAVMKVo7Fli=UL*-iABoL{H& z)kkL)3a{Xv4&mGW-^AAe2jRRL+`YcWdeov3;U|1vE>6{99d!`?hM#a3Zoli^QD0uH zv16*%vZXua(YsvvVRcmczjP&6UOYPL>#)*ujoH_?2D`*g`hfZlHVSlFS7%*pVwKu! zBmG5VMS{6N!aVAp0W!eYVPz`kTfpC1r=~reKeakd#_By$*&DJc=FA1_f2TDj{9$uC zA42{Cvb$TIfqc?86(2UMIOCzq`Hbj=Zam$lK$*5(o*)798+(Sfy?0|$ERR^7SwLP&Z+89+Z=O}JZEnopsb|qnrVgA4$O0^3D^Go+JP1JEPRxW z%J>iz0j}U_{HPsDI`JXW4~>y#UtI?{%5D?iue+f$mCN}K_Q8szc{*hjZ+*k^@&U_NPEWhj zrmaxf`IITc7k@fmj$`vVkb5h4915rDaTAV@YbECex$ywVx-uHi~>5Uh|{%(&;S&8q*!2fiOx-CbCzSB0f?_?8S`X0ldR zy70Z?AW@3q)=)h=qEs}-I#;&0}H zk1-c~6utS?&pp+--@(2j*`@Pmr_aI1ZJ&`mlbn;Bf_{vx`B7}wmOp+<*}~DEi|Ji! z;>;(QyX8k`v(qt--9)|?Ke}<=+}X|Z?7W>b2JGJY)8rT4u8eZ~(s8doFBdbM%^--u0ytCGk)dXJYN<{Z$4kSE?ni=jzlN5eJ8dI%{hW`amGc( zt$CHW%&Wv{9_Q|9etOMij1i?cpemj}WhL#cOYOY5ZK`6|VTi zdE(27SGeM}KdUrY6JJBT z!WG}k*?Fb;W5g?5@dKP)P#WLMT>}bNeEvM~1B}HASA6q%%Fh$8aN?uY@Ny~qX4Q{y z&Gj{QGJ-LOad}MX3^YtK7=F?3ts*-)1~XL4>Rn_p60FfriIjt-g`jPbHbl$%)iwCNd^Y<%Wr zuU|V4jh>Ya*uhSQK9g|d>zFk$hqHM@JCSpog+v{zL;2A@Z%=e}=wa*;0vx&vj!^I5Zv zaaOWixWtb2;`8R}RZ7o1%Ie21o-zE?rQ6B|kL}gd%VYyqnAWUo2RbLmAf>Ts2ec=K z^M7E0u_vFdyV6|FymB19>SE-%hX*>A;4#))`mr}BTjt>r;#@nW)jDsSbl)vr%o**5 z{2!A|nXqfno8e&Aize@&%sNhO^9It~s5_JKh1pQ|Y3fs3y~-4h0&iQ1yc z`}W)BQt%gk(5{cQYJ3XPee=*~l@3jnIq#ya+%d=fjM4sP!oUL?;I3SIsLtBPJD7Ja zsqV7vJO>;9ob7Gq+tgd>U7pE0Pw;K|0DIbn)|q4{uS5PAe(LjDs}Y}TJ|G*S&XJNG zF~oVBzKyIA-q)N0*rPhPwgS9cEZ&j+a_%>aN4MJcnzwmXUj5DDAp0}(nUqh5Y}R?v z!w-1WZ7+3vB&Tx%DTlr~h7LDIRb5}4u+RAb6 zvcm@Q$CfUtr|>Z*Hlpxf7nfn1Nc5ixJNB%nQ#?;IewHRsIzb@t1NoVgJb!OQ5Xbnj9h;Px{4IlDQudQEoNPd>c+AQ-B zPX^>^pBJ5kokvLC`Z6{zTTwLayy!&gUUaVS+mG%UXMeclVuXJEU&Z;iD83ZOQv7_~ zE&)FBWfd>9a8GGF_ZG<(Bc2Gc7At<4!0zDU2ZHc)lhd2nes1G%HUBabPMkUS!0_>x zdxmufWX3!&oGm_(|1xanMWc!D&`Nz=^xT>jnsm1Z5!_53&Re~L6| z()1Lw`NX-N;ZEL@Jf%x+<5|W3ENK$Ojl<26aAJFr^o(o&`jV4)=H-pUJMnQm{qh6D zXZYty^Gm)z2rd!+W&D%;cM{%I%nploo#Z_k#;2AxJ>XQ1?B{>jnOAs%{|<)(ofyA& z^54t*5hpwnaf9ptaZfQahcbtSz8_S%L58pIzZZ$fD+E8@EB@So<}!pzl9S-=DH+l=hDW^$xrjJhRe0 zkMSpE1^E<=F03y!ZVxf0Z5cNo1Yd{n^>o2+Q~$r=Tl1)VxR5sHVBhZ(zLs#=-k0!y zvlqUU@T&;Fn6P7IZrTNeX)Ws_!rtwLvG&)f{;zevPkUjn3B32Mnpd9Wdww8~e91oG zrS;?Egx%$py~u;9wk@CGmJPWQ8@zZw&mzLsd10^ReQrs-%Du@8yBe5P;Q2bjF7v{! z^vYRESeXqw)F;2giV`?i5?0Ce-&gVcSV>$HVej+8uJzz8BkXD~>>A#$Ey;5&Vb^$J z*YSSVQ5_fc`}O)6?X?nEN$|}Oe?9-AO>?mC2Ex?_e?Zt!#HG!fymEh^usvQ_3-6z@ zWqiNShnphoJ09KJd4EF*UN;f;h*u7F3)`+Y681M<*xPs?_1=A$HxstdgUKW=ajRFp zAO9n-jQ4wZzZ=>2ZO(FwkoFI~GCFx*W%C{CdnfM?mB9Ez!tV3RUBmmwOK`Z2uwF0E z?H8DZb^@@(P#*^)Ybny}A$W&SzuZvg)c`1>$Vd+ERI;r&I@yxS||OI{hDA?ztH z-RF7tar9w)iLh;6o*le@p`>1U!jMZ=)_lc-`DMcX!3+CK-k~oGw>)pIZ zOJM#3VT(Mu@H8;h7S9p(P5!^|U>)@8^i{%q{2%qof0(dVk1qR^ucZ6~gjIQEeuMWT zCGp=Q?7d$8qaMtIgdO$LJ;D1kC3(J2*v~zf$9P{^Qm2Q#e)7DB_dk(lw+G`#UKvjl zcG3&`Vc^}T+fN8Xc34`U;QfUX94Z+%Dk6pGe8vaK?4Oe6yIwu!5%*+?Jg6dUSE!I~ z4&z_XdxORK@T5HX8e!iC-q(Tm1n|!Ay@vmTp+fXMgt5*TUBY)iX_oS>c6vSEasDH= ztS9;w5w1RSDPe^zSzAVBfER*A3qP=VmAI1JcoN zY(G6lxcbG<3Hv7hZ&B8Lly#7B)$=jJ4imPXu*W@|zE0TVgmn}44c-q>k9EBJ^?aN# zWL^3m!p3>uOZ>fo_`f4;l=v)R-}7L8o3OtotdFqo@a~VNKFseCRv^BY_@li4B`~)H zU@~5$2l)Plhxd<2v&5staj%SjR6eiX|HS)Oym!BhpAe=tmtOiD?>p@K6wmz&VPEpX z{?&tdim>}AdmCl{lJ^Hn^871dZks*Pcba#`~`OD zoPu=W$C)dq@HzGC8X_$Ct@IBCV93Wr=KyM7Gv^zViW?hXe0Q_edaJb0DrI@ZJ%4SDwcLdDQQtwC$&~ z9*F%0KcwvDVurJq-1Cf9(f;f415>`Q2lDCrYbD?RJMi5RsGsbC#vHciK`#$Y(VM%C z@YQ0jY}+E6PX+K~9bjcsI8v7hZS3pDhg;|G&NSUs!jL`nRf@AVrG}VuNt!!)!eP#B zz?M#UHQ$=Yy7BUtkGTGkp>V%%qv#Gf>|=J%7M&C8vTLH;ofMV7Lxywb-1vhA|Jt9Raz|8lXDB=(zEGQ|u)j1xQ_)j6#IOaajzQj1oetp{u%vp0DL0u; z^0WVDMQ0{dIg%l6DYH@5`8ltoazt@WVTZMdE*n2pcUGlYuTvV~qO!X~^G0TJmTDq- z(5Q?EW2DN!{}bAMzwiH78IL>Je3bT*4IUa$MQG_$`v01GLwqRcD%-m|QQz^e}N$Lw12k??! z@@z3y>8`K1XLBiE22YRq)H`O^nTZ>Lg6Hlt|O`Z3m{GyxE`1~OJMO(#v z#c}Wkpv!Y;#xnCJY#{AdJx{XKD!73`BR^>xBWdjymZ zHl$%o_rH|UE*I9%coNl`Y)Q$}B^GU`co9L>M7KOEh zuqTJw?u*A*NoS0Ea?{4VKc?xNhaWJ$T>&hepP+p`A#+<|27b4?zx16>hJDP=$Zv`} ztK!vp+vhcwO_Yqk4+r=$5s<|}JW?fiJpDW1aV>bH&Vxrb&?hz4YRp{fwAnH8OaP}d z(9Wk%GJsz!@ZJ!3SHG;GU)CTeq#G#jSDkP{eeb&gxcYvoo#aR$EcounKNW}%z8?*QuM3yeou!Yh z56`HRzNmRYO@Pj^zu9yC%cR!u#*Bkg&+WYv{T2hv@dJm?}2EJDZ-p2y(djs$L1Mdd{ z@7n_JhXe0wy9U}$&jimu2)Xi3I^i2b8P@IGF;nzW-&qjoJFZMU+_x^|?Dlc?!`34w z{4n+7MqoDv`ti5u$43HuAlT^uZ1IJsdv_|%-*+ka)r?Jot@VTzfjp{1hgX*j&t#y@ zS*uSJ-)!$QO>aSGzYl$J3vKP=s4|WRV9EboW4gvA`HZVv`NB*0X))3}yX<~V+(7VG zGb0`BQ8STne>MJ&A+s@U@S_2L)+(>(Orx;V!5s@BvoqbXDZ^RVZM<_W8QaOj#YM;c_V)LDqHb!#yyp#G%g%BZxt|^JEg1P%Vzv_!^mLp9MQMr zh>M@QW_F*i6CghX$AyPK0OPdYYk)O_F-rKw$iIR45`4=Z1BZIF4g2&EE6?++24B z&oS+d@)eMtpuHT)x2hCxybFiD z0UY)R@H-HA9}m3y@Ye;(JRFGs2>mw;AL`lbJ-6`e<6kPv5d1|>HD7p-=dE{e;2Rm|H?8aY?;<4&GS!@A41VQoRnXJ@4wzjJ7^7Edz4nPPOY{2 z4zr2=lehOJ4NxDq-^LuRe|I1&wgtjE@ylD!eptmVjYZh^n~e%z$qt=idU#VNzkkzh z%&SsW2R7YC-*fl69HtJ>Y)a)dUo@cv`&!)e$4GyK^g8eNDbk$1c9 zPT}Xm*bar!Ro=!K%hXp-`6K?i!(FQv4*390L_@X7h5Q-hDjU>TQDd6im;n#To+uy6KsEPM59v}kiU(5FXVS2KMVPAxqi#8&yD;pq&GJ?yZVGj zhICjhHh;w=V!hR43LmLNzzBq0_$yncqrQGA7c4`i7NgDP!(3 z-*n@j+ztq&nD>2K^CvhA23{ZpH#FdBp-+E)Q@m^5()WWTL@Nh=)n_x)kw%~{&Fx9T#-gV)EP-l@;6@b1Kx+ z7o%UXUu3?@63@C%@twg&leIV~UE;T-<33i-_1M@~&7JTO;L+!;@2oNTyx!s4yvxrn zTt9uye{359&j z3sXAzu38z0ZzFp(*)#BXPWKjI)3#@)=zK2t-@dOyhmzfF9{QDF>b#UH=rWV~#?dz{ z9OnPpJ0mzn+DGNuvdtnpfA|jPW+|`YgZ@2g7xiV;RlZ|!@NxGL;J+7o_5D&zYDe&I zLYBQ!hEj2S?53Z?5TvJHmP=Rsm!a)vfg{?E!Lx3ij7j0QDfoov_D+Rc`O00u*5_}( z7cL%BI{e_+^E%Hlnvbl}(C^L)$Q~MMeH%n*L-R6}} zY;(KD32d}%)d=ikh~bN6)6fP=H{+e$(Lq@ICY#>k989mW+c$Z6NWX@3u5D0f@lW3$ zv4(V|zL3JfwHHoL>-$1#J;e8gR9bfqJUy+#+_ahN8x|K zZv*h>+&l}%(zFEsZ9Z*Cx1DsVr`5Mh(rqW5!r6NjJ)d4LJUWfDfY|{o$11g%cTFL&M45?F4ARUe%)g+M}06w zKW9zG?uQj_>Tiv=sIRvc)`S-^CZ!7OIjee_jo8GsG?E{@OctM4bOdy)McC^esjucf zr<%>z+q!7Hs%FoRY~6y{&YZD^?+%{w2aI9+79O)HXPhUNGkkrsoM{nhIiDUA!530- zS!lKcg1-(mW+Xl6`LR{FAI);3BfWUqO0HhSGX;Ce6=DX310 zKg1oHPXPO2XVF&1p29lf6@HlarwBXB^SeC%o@bipYHUy|c;3o$o3qH)^9icnZ91S2>Iqhi{E1};DGGyp+)F;l`VEZ^T0Bvo4NbC(4x<0BF^q1;@Cz$GR(7u zr!hxIMB9_(mweY=XKc}pD$C%H+XyY?%U{~36#pVPOZNM=dr@5BKL*D&lqtN_zXjjl zccgfQD@=O6zO{cTN&jr(?~b8U3te~7&bczr$FXzNPu z!MM9FPW>fIjQN6XCyh%=b2{_KgY)8GGoiarzkKEk*5&Jdn^Je-OOK4G~K{Ymxz zk8r+Hx@BVXs(zhQJjUL1wb#+>cO}N?tDK$U?A5b5!x?Puy(|ZKYW?wA)p)75hoX}NQOxy9NZ))hEUq07FDha7WPo!ToNOIcbfkIrwOytk8i zpbKYh&pV*Id~~}_SG2QnW!)C!?N#uun_uUG9LT+ga^rc;i(0dSe--zO%Z3uq_qaM- zEPH`+vd&}ga@*KH?-|)sQ2n=?nf(*cBgz=1vP2)&P8!<1I;#H4qj1q_J9AZ~dyzcM zL2HDU(!`PF-+njyR&LNatnL|@y022_TPl6^4ZVqFUOx}U`}cmwh=;Bo&8PDF@eRZ; zd6oDi@pZ2f-%R|X3&f|06OJKMrLzSs4mZ;t{|L=?cCD<_GY(hkZ{G(dI2)>x^DU|p z`rdo}O3we7`W`O%-dXZ}q~v?t``*uUJNJ{agFK=37f$TwV$Xs2rahtaDiy9U#l4wy zimMS{ut(kBy9~b>^-ab3Vb7?qG`L~n!Dq}MFuSLCG1kqTx7*6wIQOFZ`%<1UyWunZ zCxHdO7v`>(elk8N-p7}S^CI0f)MJuao;+xOaF(!6`}nAT`sGdU z6B)-Zuf>+tRd~jed&*N;?)JTMc+%FBI*Ar%sGo2=L%rD3hV1F3e!3U#3w=5xMrmT4 z_o8^Ei*e3Ng1^d$Z_fbv3wFK$?w@A5ZRz?+aMqHibEzHFerh+Ri^mRykMr)g zQ^?$&IK{oL*siQ>60XwG&o};@3}c%L#|rAVvOlTscF=Eyht6@A-k>s0hTlZGMFsJk zcye5_lJ-vWJj{Q)kzSp#;}mqY^nWYmi^j+$&K_TkEQuuA&CaM~du>A-d3V+qi@Oqs z*;_wu_tx(m)qZ-xQJHVBJe4ws*&|npz0cwz-b&K{utWR+T|)Q@SLqpzUVT?{Fa1-{ z*gtbn{J`JRO5?^j@G5}U5P)Ut3oPc(mS%!+)+B*3?*cGJ-)wn03VGVhs`Cp%G0daBN_|5JShx|tU_14*#Y7|xlQlzmfUCgC~K*miyQt*keh z@{yz&tWQv;&hi!?#T(o*)yKqd!cX^O`}Kc|$q)WZ$Zhip@+pnVH0U0j_hIFK@XR#j zPkH;H4Qo-NgTj*V@BlOrKdK*DeriscMV>yTI{C1D`E;CiiznNSbO2wD#~YrczHYzX zV!|V8E7>Bq&}W2mEx23QlCK`G`r*P^aqhV7)=6P2xz}><%xCNAG5C69tPhRs&Tc)s zS&wqlwwSK|9bw(I(`K+mVb=~%yGM5Kq+CcbK3tyoIb*!)E<1W^)7k;nw9=&ip z`>NN4_}q0d1U= zOAItt&e^e(IfH2B-izSMwA0YLDdW=kKFNOMjq)V1@2fwfb6LD^=Z;Cq_Q5st$`3Nf zemD1>YD^ZLpNFSyJKyNiRqNrRYcOsuaS9Vm!4_}q;hsjdgKQJbnd{^E40V4m_VdFV zWm7!~T%83b*xY+<`_(yU#5%AYOM*H;&5f=O;NucUHx+E@SDGsc7pqq{WGzotgO4vm zgLo#qIz(r<`I?});!lA~*7kQde;hc1Us~QN`66m=25pLE?)?`vz)(6rZE}iE?2AuL zo3q6ky9IZxlUXS`3y#(eMEjr(M`1V9mcj8BS>zOGALV!NLC-k(E^nM2$Y}4qZA;Z> z9eqM)#y4Sd{^$TH0fY8zG>`E4Z`SMB@;+%;C) z@fBTPc>EZ6;?J>H8DEqaxpl$uNieHI2$^lo+BO2lJ^daabTIpOr z?gL7G9DfMes?~q7Qy26+$kXq`=nl!dLa9#Ku+={_{}7*QzM^{f!dw2h^P!OLY>M=c znOz&-!&vlz&|uY3(uYj1mG_eSPXb%{NN4A%S{D-U8{{NwL7WZPntda4sW}6VX=Z+p z&%Bj`$jHjmmgiU1G4|JMOmpd;K^BHvbT{;0gfiZo#hn9-=+D)Nd_U>H4iMY-y`I#cLEZINWnW6V6p-3sIOE^n9D#yKmc)$Uag zoS^>d>%p3@eZ$tyN>8{9(~u53>U3R`Ad4P z!i{+noL1Jo&&*7G61gIrIg1Wlx{|3FXP?IoQ+n^VD$@%t+4K)sV>s;LB3bw!_8gU! zb^lhp!{YO=#oO#taHJEn9szF1J7mHMFJCF23lH&;&XIBXBQ>cLy0WTW{sa76y-+gi zoYyAI1+Z7Km-k#(vokvBa#NfW`;c)~e2eaQc<5%g)L z)&E+?WZk`emOE|_EepY{yc2KT->?sklj&S|;9rfVgg z)6)K6D|;deqe`o@y~SJhK3nD<(sPH91=vUXg!c8Qr(Ry!J3Q{aVWVKI8paaC(X{Q)BZH=1IaY8Lmg4O;rny-^XN6^yS!b zJC?4axP#r2Jd>ZwEx>`bK;a%bx{vf zJ=Ate=k|}xWdHEvk18MWFw+R>`WHeg;YnEk#k{+1Q;;n!jdcrtb>aK;zD0Iz@+(g3 z!*O)FH21`+Z1r>hoR}l@bFJ?wTxWx1OzVh4f9p1FBYp6K^sfkO{`g9)8Z%*Ahd8!> zrT=&C$&gN{G>YR+gb4h@dPgh%8Fnp+u(w1^??&6F2;V0DiuCs6)`h|&>-ld0$9wpn z3Wc#>cG-2!M(Wf7FIC|yA^pkaQMb$({Z3_;_exijjxkSbnvQ&(lum1Y&ANj<7PB~t z&OVOuB(@-MpG$o#Ovb<0zsDW_MS}_YU9qS&*gR+5=w4qv-Ftm?kGzk^Jr=%;&oAH? zwZ)cDxNa^ubvTJS^l)pZQ+stfi$<1Hm(@HoJlF8-=9%HSnrAo9PM+&{rg^H2^}K(H zdrm~-@3=B7>dTbWrq+QRb&68fDb_fD=G9d)LFtw5B)CeJ?BCSNT4HNbdaL*_wNM=cqo${4m$# zJdcif0(tdWt5?Q3mKw4r92fnVdoK9?%>gSf^e+{ceQtC==pxN zw=EZ2;TO@Ph2sz54W(PAb4>SVS$qHKB)!*Af2C=n>?AnMh3Ds*`}^X}H*(nZgxU)^ z@B8WLZq}HcgA7r>4UrT5&r_cWd6r^Zc&i7ix@=MZL?FDK@E{x?#sn~)^Y~VDYq$3V z#he{)b!lhJzp;i}mauwoY{K?~ZKM|+O50L+h<7?e8C#!Kq0~wb2i9cU%sZf;zO`QN z+oX!ch4?zP_RDw9ZOc`hU6!d7d``xuANP1?m)&j8F4LT_3Hw`nXtU+-j?n#_U3S9a zHD_R>GiQIB`7iL}PPhKQhCf_AWW|V!f695&``kV%THs08zZw}V+Yaqp@a3LL7A`g3 zm?pcqK^D3AafcW(8=r{iVeZI_(cbb4N$@Pq9}7(&bKQ8!-O~63@d}S|-;-oJFH&9C+3()_BA!c`xwQJ2PRy;s#^cg!6w$Bl@Xdd>lPq=~(|xNJhGS zNBc+H%m;uezC>0oP#TR{lC7$X(h7!f(s+_G)5opL&bs5=edyDwe~i5LemQVijz2;p z;c1?$dA9Q$<0-fuysJNd)74#VpVmBEHb;Zsi1@lznHm|>=^hsteUAMi_}bBjr2}YeLie<|`?6j-O_}Mj{5j4Y)zr~sIt?4hm?802b_t}?S+Wh9_d{k?@s>>P9uowM*g?`FA_TDF%SC4a_)1dr+(x=gn z8fX*AKc$aR$6t8*mcn&Dw89gFKktQ$=TDo#QQ6$kVeH+3E`3h)%O0(EQ69}3{WX#a z+DUOK#(B~04D)#9IRqWhL7>wK`9E#FYV!TWR_VS9SH2;}I>8*`Zpg)69~~nM-{<~C zrl(Ws9;FN)4?Sfo_1k10xC@TvQi8J`IAdOYG$-8)oMDfa(hYq)xr^P>su5aj3H{XC z?KPf$#mjpiy40-9ymGD43J2+`YQJX6Zzk?R59W7i^Y0S>S-wl_)9=CZ>+@;SsD0Rr zABE1j&D;+tn4RzNj>FI4^Zho_m*pBR#UVn7T#%&hIa>6Uz2_;5YdN(%pZ}x8{Jef0MHJBez-^ z+STK)-^kV&kB-AXkLB?7%i;f*!{0B5zh4f2za0L4Is5~2`20~X&VUSkqh7wB@*k8x zx6V$L4`Cx`sTR$#q`xmg{@$+tr|xKY*!q1RgHPQ4Kd*lR+Dk_0oKV$wk^CANSMX~? zj)Xm3bS--U+Kg;d@`?PmXA6Olkc(f z6V1)o_cCAWN^#`BZOdfV!qT|Le0M>JJC>VlTf6Z~7<*@9gI9Tqiw|AP9WOi2Yo}D2 z^rrlX=z*+4&KXDafVNf!p+l@>MWo-gA!nWA(0ca3O72|hVhw`1EWf$D>&`;?r>1bQ zuP&?A+}DoztOK)d;jTaU@n&KROGM&rJ4P`kwQDb}0?acbTRqbogR`LUdK3UmLBd|xkpzsHY$d%>5lM_yK<2dFOJ0vE3BPXDV`Ne^qrLTb5FQI(^*WV5tIt<}r8@7C^<5qy>N2Ct67 zheQUQ$?kb*BwTsUx4%K@^izNL&-slfHBZrfD|_ho?pejM%?qw*ud^6Lv!y0x@6M2~ zPcY}DQc(mk1p&1uF^?m!A{>sx2X+d^J?Ox)wS)Z2F1d*jJpV&^uF!sx5^ewTO_?O$y< zWUv93+4WQTuXK>#=QZx;s8Sw3UTZkZ1Mx3-@!>AlJ|KH|$lQ{cvaOFhtOZ7WTteoZ zHqLmqb=l~I2Y#=CH0hEw#z9B2@y9HWamOtOOizRF5y;^qsBVS69ZSws)8)aZZnTIo>et=zCyO6#Lb0i(e!gWLK4pnzF0v z4E<8ODs@61q2Hr3{BCz}Nw(yXHIgfp5wrE^{6#gt~@m9W7#eq zMz4sn&Q?piO0Gt@4^q0V&Zn{TLuRY4s^_J~z5i17^J?8`O1)z6nM>yw^701kF0KvK z_pwwP%cidIi$BGg-|%;XDeQU5yL&XAj5#yVEfinn-$zWEe|G7|e&|B389R6rcWuVe zg&NGx2jx?(GMnLz(tIk5dgh=-4m#wZL5})E*N3nby1Hlv`K*1RqWJ`SS#+;P4SQI& zcWFG`RnI#*v%4oZhTbauRp02l&}ug}Blxso!pP?x-&CtRk=M>k{e6!xmHnxGVr9Kn z?u%Zc9qS2U^-sk$MclDj?WZwW=%`W^(QW5;-&_jB-hnF+Wp~+F`2VAQo zB+APA>%I0n$y!1acBMlL!)8fC4?LQ$YG#a$;WMawN#>BU&uE@zX-ixqW32o%6J;~q zIbqoh{LIP{r|g~B#&H^cx}mnAfWDfq5xsqWKgn5THD;b||HMtZ66v+9+d%sMx*Udd3b&dJJ3p3mjt+czLD ztJo8Xb@`@kb?jXmeVyRS&Ny2D|J6vvG_z!(L9v=L$l~gt=0W6o^RnVKi${y zWL{f!6;JJrJ6f!*n?*m7FAlnCr}nOVgSLxTe?P1?c|Yj{L*Mhv>u*u~W5jD6|C8jK zYZlosKab{t$B8$rt16Gu;j5T`(B^r%PWhKs&qtPLqPjykm8F8_YyFIq)+e8S;ba)&du@cF8HoU)XkHp%@i_nyR~Sp)qI_p+G{z+fD= zI;-?I^-0|s>)sbTfh=-$XWbR6_ILHP$I#Ps56)iZ3y;uOU0JKP?>1lk?0>86tqj&) zu9Ussfc5VB-kt|(drnhgzeKfpj62l|j2n@<>#W>bU(zi0kx5S=J| zIsU(*x5K?5qVqGp{Enr#e=}mkW}ER!l@W92yHU;qsGHuNDQ88u>XOIu>nF6cq`76deJmQXvkI}Y|(zajC(H@Kmdzte*g4~*ZM|7ILtNDhN zyUrFPVMCiZLEPYS@Y-6AX;?`OPGePhT*gN-y{ zSO>B)BEuZU9Y>_+TmE6)%;%x^P#5u#))j<<9hW`70m&K&Ze@&~`YBC3$v6a#y8E`* zroFLGKIqm*#*RBDNZGoLb*IVoOecC|!%@!b(R`?1WhUDUcPK^^%!R_{jw*#~yfS9z zuw)u9CW6hf+zfKQsr6gNr%r3g1*>yS3Y-h%zVjR|nx3SeUvo&8uI|21;q1>N z<5@tMoqZMf1j8TG_G!e>C(59$=%{(jT%OO{Hh0j$1(SUJDLY;(f4HA8d$%^Wg}mSi7SEBQS+q=J$}7hc zmj&ZL1|4!)$d*Gp|vm7>@_V)769jxC{@tEbe-ik*@ z@2TLdjs22c#@t)M9ZDBHQoo_%;nDRK&<{I7UxjltRbNzq7u&OMhPSl0srsUwqv)#H-xLQs6~}$e*@ziL7Cc*z?^L4l zHuia5R2bdTEgMw9bvS0x7gW_&@a&BU2a&ze6@OYKr_O25i zJ4e@1hc|@>qj!=Y`565u`Ihs412E9NCt+O6_b1@vYr=cD$7Dt#AKpC;&O6L3&P^Ds zSHGEM<|GDgdhOycWxiOP&3T}&NyMCs7#}lcN%V*2_Zi1RoJp#8<~C{8X*esQi@Eqs zoq9K>r$2%pOauGcbyid(PleCsY@;R6S+*|x2}1Ng`c6t!e$gc;{bbGQ&9!mf#7G zDxQKL&u5WK_tzz&zd&wu(qG&ABG}oZrrX9>ncKj3{qXxpTMgfCulO4J8Fs+a*y@(= zt5aJySA1=>dhXZi+u^Sc-kU4LM{U`EbTZM!^vz1sjV!22EH=@E;^I2j@`yX1rM!Xf zIh|33hfEvsgN%KxS^6JzeHwqkbd}=vP`+S_Uz#g+lIHsC95YxYK2#Y&n51VcW6dhu z#@)2z&Mxu_miV-}Vi$Ike`LQ?r=2s*&L0d{BO{iBw^QA7S3Gt%a_n<`CN;P$f<94h zKGo;M7JW3{@mcu!wVz?_za_DM7rqt~l_pzQR!!NQ+*R*1^xn0cz8Q}`f=p@ca~j$= z=>0ThN6k%rv_-QVM+-LI=M@W2ct`IBzvX>Z<{f>hNa2%9)c%nIbr@SVk1KZL`B*5v|GE(Oq99+Ik>P27C*Tv?nr#-hdgUYhAM@q2Tj+E~QY-dkao zR!4~IOVr-`Txe;mH$&CU39xB#rjYIp zd}Vwj)SA>Dc%~CMuv-1WlM|vb-_UE2`*?4t z5^Y@m9Cxs}Ui>=S4-3nr2Q1|sH^gO{o2d?h=fe?v@$AE)HXA2?T|oVWFQkR1PAt%S zQh5S$N`5)JLhnK*9jX&=uD0c+7&it-?=6Af7E>+Or98Z@9@PD-}+pD*5c(K^osWg6ll~?&JKa4GOLiR4nBy)b~N=?FE=9A=!nDnsX-w3?pH%05XclqM@{!B=7m^g}> zaJI5yf66G0cwYKV;@+sGW$o$Lhpdc-o{XvJahqx5aoTbB=%SJ~P#dpx+S0;bZA|)Q z^G)`a`2K~+GSwU28`9IIJ7c%4e~{-yd-2?V7H{ZO+DUncEEJsDF}1@CZ2b!t#D^9* zm&lh*aoNY5Pk_JLh_>kYuVNN|^xow8V4sGU)qaz(1MPkd21std+Nl;rTp|_@mldje{03X&=CgJAv; zZ8w+m`IskEikGXA<$ivvUrgq2LtoQ4pNd{m@o4?)sN1DHFR3UDI)n?ZWZ_c6L+00v z1t$vnmW-yVlVS4Vs11Ch-$a--7G$#)jpF#V-G`0(wAJ;!@ofJINA(vysAoiJl`cy< z&FO90<_vXY>?18U28&M?{bYThEPcCpK4)d?ZSeS;sQ>k>wT%-eo6+s0zk~1_2@~(m zPWPBr(irm#6rvLa(axAmzWSm^>rczZjO>xFBioN~l5bfYxe+y+(TDH1cF5ZN4<##m zEWhoqa!UDaRY-Te)1xJikE#av+?!moo4&Uf7*Qq~F&i{tS!*hmO4WzMfmqdT%DE*xM1!sb~#muhe zOU-W9r!_v`kX?fAQDL5_5^fH9J@SV25%x!C-|%|XMK}uf;_M~JY?tTejI}cF`cDt; zLC4mKbn2Ukjj8&KrLb4*>{Nfip0~_|BG-Ky9A;-XnfIM7RB0YsJm)01c-z8?m<>(q zyn5bg3YG>@>Zx}AD1C3a7nh>Ws#BJ@cTgX_&(2;C?FKtPLA~^yA}(xpR*A>;9pk&z zD^vNAi_2mrd|f=7GH(8EBmTxlgw1t`dyorN#o}pquF&8hGltAeXf>C1XFfiBKXUtS z(xod26FAKwSdD=Np^=;-NWLrD)Z^@=&@nD_P5WXv( z9by5dZNn_W=3)~O?&zJ&VN<|Jkv}!8JjOgv*bCN%!1w4K)S&}fe}wW@^Dn0!w-RRS zaq0AW_;jcx{f(rZP1;pFmDaDX=%xB%yJ<1eR!h6Z)m_lBzR+{%G(q@2>@{B7 z{=Ddx@8|W~?QO)f_SBLkeuGb!$oc7VCuK|&UEcVxhtnNixjtOsBs=%tm6YexP34Jp z8_0LKB#rWF{q8X@+{`{d9xt4A=OOOggSDv&t$|E9*syZguX5O>a@eGD*sgNevU1q2 za@ekN*r=>e*Fc49YejC1-oU&YUkz-kJL~(l?&2)3$4CDQ*`U26F>I)^ht{yh6gHb^ zzrozMz`t0`DI4Q*>}~DX-#SM#0P0BSk%ACzW4Oyg6?~8~k&uT~N3Rci}5q#dxYt zs*CUz{{IuaSyLT-?FZz0dw#qXcOksN&EhRzDA_x;)~NLm7wPM;P|)%^J+~{=gz7Q@Sk{4Ykam2%=eA*#FHr_z7YOe{}T^t?a#HzXRS?M z?dRi59^`wwJ&ReeRX@QJ9K{J2?0MGL%D0m%jc}EnJQ`Yo-7Y2{x6yT4>&#~DSU+5o zKqqm}-X5-rjYRF)#o1T*8`?CX)UfKQHL+4Vw#rO-XEW~5*^CX?dADTE0oJyMIES$& zw6lIYXE5G}&LAB2haMZ<%Q=l>oZUFgS&ch6r!mhtjsE_)>X7=?PHYP3hrl{ZzR5WF z)R?CJ!=Xi66@Ll+DjFK-myW4*x@z{I#zOV|CRCP4E%$sUVkw8U5l88}slRlB;Tr9M zaM%7s6F*G8Ht+f%et$J)WVps%H`rM&zxIn;lFkE^v!JB|`(|eO)0`uAdCNV}Rc9Vl zhaRbCM%u6P<$DlMy1EBGAj}CF-GTdFYzV?Ze!20O7mweMd~p<>0FUyTNZl3GSNI5L zty?G#CMvugyw-t>@~>O|gtte}?(dq+-$4F9Jx~5UUjA*iF8(=rE)MrBcm240`lwu= z9&hq+^JyU*TzX80aUU?`TO}A;rx#6zYG%}B3IFSwnVw%x%K1I>F1y~UdI?tVdGOgw z9?46=I`(O|ZQ`_H2;E_UX|v%BLLjz^@U4J~5bqdXP8d6Cl2TuXFHl4j#_I!#Q|32cPHQ;~adPqYvcZ zciXSW@#B!6jN2~@^_{HQs&96%Zrjeft>&ka{rD-c=BxAd=d*u)H@-9bka3UJH`9OD z(2wIoS+m+;M`pb%ZP$k7&v=0Kp~C1=Q;B_5_B@@_u>hTXm3%Ik=PgLQ&g>nGZ(%mW zJhn4b=$Aaov&JZ$MmCCsd2Ekp#hgX_H=7xB_o;F?*z0Ns-55CI&UxaB46m6A;`rs?` zD84dZ#aCt@zA}4r(1f+thgoZVh_%)!zZuc*h|@Emaa#2AeO6kaO*42jK@3zel#P6+FyD~`?t+XmzX;rp(r5yYeCYn(91q%1;a)k1$iN~jREA+8WXCv=Xk z=H9|N%lQ#evx#%{X*=)`|3+e)%%5%PWoVdACR<1F<$OUu+?d<9 zric@Mplz<8-GoD>>GEXMqR%U>aJ6+2j>{Zl-q?EI;^aYiVbSM{#V3>Ijb2#u2|KP9 zi!UT|l&AWJ@RyL>sz7cDmgbG}-@1rzo!N$uK5KJ}?AbXg;}gQ2a(o>1y`FDBZbKmM zUfzBBg1+=p|U{Gy;qLrVM%Pu^5>bX4`;^q{qJ4$_d0xLQU%dKWeCPWODnCP zEYd!iNk2=)mp>`os#=s@W1-TAky&F;ZmZk*c8!S(Tb4%ea^jK)(Q6>g4Fg(p6`qp$ zv&_LN!5OBEzPJChPVe!CDc*U6aKW_rFgEJ_F9~yfNaiO7-oC9)@I^<#_uED=RF?87 z?V}zX&H&_);m7e2oodH{d#x^ye0em7+{j(nPd^rxPObdEJ?(@|D>;?_Pgh2@&te@O z{UyFVYu3!dXKU8OqkGGD*0;=h$m&APv&N8B2S!)VdTg|F)}y28SzjGpK8v-|S$ijS zp|SG(XcKv~r$(@(L;1Q;lDHQ7fiWLt+>1HUP_loFF?a9foDFdKOl045AvGfit{Jw@x{XkFEZu=z5EH}I~f&mY#7mro&I z4&;7AddcCW8N<(obGFNMw_qM$IM!K-lRmcn?N8zZKQp26MRHN?Em+Kn@Kf8&`ZqkA zn#tJI-GA8k?P)ORL~n^GE_k+|cvoSnD{bB9pWQTM`$x=q6SP>y`4v0BJ;K_x@DmQg zS@`LE65%I2h2volw>Y|ma1uX@e^thCO;!I``D67F)~1ib*As95HTK~w;mS-4U~1)FfwNFNLQqEtBq9vGR8#-1ZIO z>f**YA4_BNVZT(vn6ZA|&8**nqt4Yr2e4(m)7Eoazv$}cwe3S*)lYekP)Frc8*qo# z1?Zjno$2kM-kh{;4B zrVsoE+xXb!Ge$^TAWi?$hAw=g^68AIO6$kt_gk8OTKpxyC0;a` zEI+C`rpP}N_+8Y|898lzt-8Q(X204@^Rlta=Z}cz_g+48q_+7#tc*BUd;wj^&dC*lv`7Bta{qd2SvO1k7y%xR@k37n^(!zuE^(olu`}2MaY}pCa$F+Y6 zKFPro%;Cov>s%R7j(?kM2ufF)MssV$#XIumh_h*6h4hD1*80Eswt^yb(Og+R`O>N9 zV|&)PQdK;m@fn@tmAaT6pV332H%s@4g)$$O4s~On-fIYRZ33~d?p%3^@mKTpIp(>j z;?MG}_m_Fj<#~?hV)L9GXWwCFw)`=$&b<8v###5h{N|~5 zQ(wnMG${FRI8#Jrb#fogtMgpu6+EZ0opIvDdg@<-^0g?tD0xePS* z_l6v}ye#pcqjQ89^6(Mlz8X6QMnhf0V>NAw{g<^l;U~PO1Dg}JvC(eqn9JFh z${F`nO=WxQCcLpV?L_)J$R}7y+PVq3CViB!QQd#q%~R>qjFW5lFXz9Szvhgxzja_s zRr_?C-8rp4Ud)=ZU}49v`hTpw4SZcymG{5Txi?KH0dCW@1g640&CLsK#R~=uPSk6f zLIyi{TS6^THI@QZJ5GQ)Q=N|9NneN>as#bUpNAQ*>05N-Oxw6Gi)aV1<&ov z0FUZVct7Y{%Qyb=H+a`qvG3|XaNZH(UTsK)aTv6+mAbp2l+kCUr z1JH+liBFs0`Si`$9l$|`at(=D$Z|h59F{u~m=bRc71z|Oh5S7TXGxdprEUe;md?7{5KRwTN6e_{$9 zYOkVtOYa5jNe1*gMmyvk`XO^`MP+X28FRVKQ)$z?hbj_VdcTKmQBk>d=)06rdAqNZ z$PN9L@l#pBC_Co#KD-$it1OHa=<0*OxTW`junoZ?_|^f(YtYp`3qx*bWb*rMz&4fV zRr08hd&7S03HzaXhSeAH3eHzg1!uEx83&hTAudH@&x6a zA2RG1^Z^=2!$l<)r5 zY(@OJ-aeCaxU4wZdzLA?rlRIZ@9zYIIqKlXrmh(F{|hRG1FJ=Gc70SBuM~0$u`WEH6S^YBOLtSQxYu7yI`V}7^s)!%K_coVR-D}O3aEv$; zpBNwdxcbh%<40+u!aQ$b`}&_i^Y|(VFAB%fqZ+#LFV zc%41Fl=ww52)R(duyKp|_G^W#*2ZcVqshAeq6vnb~s6;1j~P=d6s={3ae& z`ohGnP}h78nm9QR`H?%Eq_=WM-`lL*ImW)2F>T16=lTTyYxuGr5Ipd|WQ^Kz@@2gE zKKMqkNvEhV^Q$CVPbE9Q#k`|3%#V5bPjlwj&NupvJx+I8R%`w-^35NSO=A}8pwrNG z&r2n|_TEN(m@2Ag*L9iit}w?}1MAcEuT1=4ZrtL9v(K)cA=M!nruj6(e0XU%ztzxQ zhPiMaz9kdynSuVZ%dM5MM+mN8f-mMT=HhcK?_~Y*KIIFrQ`@=iwjKOdWr z^6DG_cM!A2n3Yo9=a|tN&wO{0aAx&s>ejrdGU}h3Gvp^di@pC{`Blt~nj?>Zv+46< zmiq0yn9g8>4d+GXNY!;18?E|tlycEsUCqq-`ojq24H1=MgVL^{8&!Z~B5A(3bhxtI4_2FD_#K(|9Ykgr09UHsD`q z-mJ;^^UN}AX{-CBXXO(3+<1z|u^QR57&`bEytlZw(tOrFXQ3M_uahT#6w0Ho4TpSa z$L?C{U1z?At+tag%Z5J4Z3#jgGR{3bjZI)$o0VakiLgzcADhs5si*6$ z9IiZdoBss8sLc;e&}L%U(0BN)GS^PfW+F5BTVsBP`VDT;Q5ok>gPxj4PbC)F!8|%_ z9$ht$u1YMP{dsiNJUXpicNfs#rT4Nc zY{648?hDz?*oU~6N;I3xm?NQ13I~{$_)csy-1QRQ4ZZDYF!6HMBIu-%O(>bcuf*+3 zw8XhX3b`k}sx&rgQ+yYDn;EU)7&AjW89(*uTV_?zhx`Vf$}e~n>s59Vt*@#xn^SFf zKb9KIzG&At*w}oPN7pnbpCQvd<$mg`?Dy$A`z`QVS<3<73zA98%S(rL+y2eq9GA}S zpIkm^>;2b>(W+n&eYGIFAb*UX>S8~*q2`OMf7rJSlAWeK9_g&3w%q3=*W&1{@qq?? zm+saUhnL~wk?akrp%PpQKH^D*anq0V>CCbEj!u?i&og`eTMdm8%Q$Hm*CnY};PGU9PeW&fC-h(W`irLF z**yH3hd=Z1XCD5{!=HKhGY|jf;Ze))8{&@N8DD!YP;-L(6rBI4TdU7wovZbDCwjvg z{?{x@W{5`>+x$VEdS5`I~`L8Bfs|$AdYE*f|BSf!E z<1cp%9!bLEDQtT9&*3X{6MF_Z`0d5ig65mhPsX!p}t})+hb^Qxx5ure5lnCqKoHpa{g)Fqz^VspZ;t*O%!H<%yU zw9Tw(#x34~5BW7CwGbOb9p|twW^Iy|FS{AY;fE2{c{z2yubKI~FhTj5oJCVSF2##7 zrl$}yo3Y<~zF^jC9{fTw=u6dCamV;v-oZmh|Avd$>(tm?&lqcq}T<)P8G{z44?g zhn^=qM|p$fohD{FEPkc8oiP5uN#*)mePeFH&pL|lb05An2l9+H>$v@_=k~Gp?P$9+ zc7bg7uVUAYXhi8n&+!8E#zXaout?rJa4l1Jlcafoid zgZwI|eH#0nazCDMx_Lw|4=4|GSvuZ=^S!{hk$5$-nU@2r^1C&wqt9n4_Zay^9~pFV z)&yn|@Vj;l=MrP7M;mH6ENEO}z!mzz!_LM@Tk)&qt2dRF=68ex!5isT8@J9H z(Aq*}PZi6iCzJ(~cb%Ra~& zWW*}uM%vQF7<0y*y;=0YIp*@T&;FTwiBEtt`GYTjmwmH@v>B;a7|#m)e`NoSV!>Oy zLL1a&_c!#7vrsFJn=#vOH#RP2%PRVN{imI8nf4bx(=fvs=Co&wt9# zWL^2QTi!(s5#=!^Hz1w+SjVsHd;G`Q=k!^_J({11pM=(SI?K|*`k>luNi?%xvBQjQ zlU}d)F7A_A4?MN$J*GC zG<$+O1k`8kwJpO&x5#fJhO+eu%XZO5@y{LYHNz+Ry&jnA5^b!VY#XfO$5_w1v=Baf zC%b&~EiQ>~^AvgHBcpmFTTTZ37W)$WJ`YlUezA@B98ciG=Ui(aV~*JV=Q@PDyFR7) zYYyx1%u4+h4v+F(>jyZaaFnzm)=P?`)D*^ZY(`fW-mXP1@GZZeI*u`izXm;go_;BA z@w@P&4oYJ1cSwznjRcQo3kFzdOmNy8)G^-|WHEL~xb1@h@Q;g6-dcP5C3( zM%a_O2V0myE()d$KH7o@9ON~3i!a5GRvr=mVgs}r^*gooiryAt$I7mzGPU4^-^_)6 z>I?K88XhPu`@poa%A<0+pG`4{g|k~d7wcI4fd*F{p^u;R3dHS=_vw8Z^Ov6QH-!~? z3U4jI48O5vZcU{a*LLuxZ^j$Ta~@l^f|gPE37)mK0?~oSQsc-wGR;q2{b!=r?g91J z$==aeMTgrn{*4*iDL7S601ncu37gQ3>)@d(^ton#EdL;|p9O4s&-jOw7a7-We^Y)N zZQJ)LIqhUYiZ&z*0`i|5!p&Y!OEB_SY|+-SK4Jve{*J@rKUuFmtkD?lSensVTksO| zpY^u%gKY!)z9xiw-PW<9;2!m6GY)f7Bj8(ens6h1h3D{Le{37JtZbz>w(TC$v3w;8 z)VZkaF?{06QiJAk_}#&pK!&Pc_rO1#>9a5lS$QxTYi8d=`BnB);8J;`v?!0#L}TJn z!KF6eOWSJqIQ&Kah9UYHAYYVEG>E+5%((Vu75lfX`ULr=<8X6`!?S_S@>Mcp{Wn!k zbMX$oNAsupB7EcSgMF5B@TRT9wja_&n!QyUmz;P^q7CW%!m;*^*xRshjdUzQzm=b& z-zVOQ_(s0tN*8?7%RB=N;uU?bZC;@{j^E`)@rc@|Y_=0zidOJ1eH9w3wIkh8{>He;UO?yPu(y|uXX9G=zsy^wK@h3{8Ww_V?njt*~i zR<-?s5H7Xho6U=ew`29(-rQ1}KNAs-kqdC^jTg;0A;~_fGoUA$( z<99&_v*s`46Eb{GN@Ii!V+}Pn9L;6;tu1dc-M#wu8n{crEBdaqGip zX-V>y>PUh?dA|&fe6#=3m#DwO8yh|W-%=*~6u;Fb>&9+S1NHz&3V$*Ssqu^7=Bu`|}zk~RimXtf9xYy@z~C*Y9A*KgU*WS*`Ve_8wYFV^hMOP3k+}r4w1*Vbzv4`QC_M?HpCQ zE-)*cE}%UhtuqzV?hI@x6^u{NxEF}_0Pzua&WcP?d4tFT4Jy+gyIEA?CFX(~Lo4v2e?=U*vV3q*2HdWFtyNPbEu(0N=} z#_0;8A?X9ckMeAQpEe?69(f!4FYLPqtWBc%j&JZ4_LIg(V;iBn_N{w*@k_G&uypIL z-kH#?ctCV3ewEA@&nCgA+JP6W{-!*VH#0cXD!I>Z^@+6rCuG5g`X~O0d!x3m;vvPq zI6|G%X-#QrV*@a&jg83Xh}Q3e7R2kK!;{x7PEXF56zi7V=um~KHd9wzNt^O{UCT3? z6Pc5Sh*dVEG{tMzp0mTzqsW!Ep>g2V_orxI{jTOrg7Rozdn0Ga1XIp5^o_?3o${pQgI*-n&CWspg6jk(}>J2D9wzDRnv)q#<}S<hMc$)K7Z=`QXC&^M){3TsOeXa?048c;_usd}D{ek$+^g30S z>QsFi59t^xuew%IPHjZ}5!~~@$wl;EICJo8PFZ5t;pYRp^a1G*F~$h}Ab+koV$(cR z(Gp}1$7;5g-9B$?#q9yMk|5J#7Pb#Ck3U)+WE#D*%u$=yAOnzl9jdDq{X?+SqJs#o zg^A0}TE?-q*`3`Hp05l0rgNEsD~bLpn?$+kF0mCkz5bq1?o{#J^$UM7<{ORm3Fu5? zC3?orlE-$E$994)$6g(_IP53P9qiQ^_Ub}g+y?AMFX4|GH0S6~0Uz2=BX^|(d>+~7 z^nc$x(m2m_+Bx^QnNRFF{4k*hVm4UWc*1)QnH5iALmoPAYHxQom>biIsiFO^SG?zY zl}C7HZz_#{gRM(G1UhFGWKc&;**CDkYM&_;$KEIVLu9iKYI3Fyc`5j=33Z@c9k(7; z#muG!W#mQIPOdgVw#<_aY+?H*cV@YLfhT*|f^35)JD6-@vW3CFa}wB*&N4r%uEk$t zVR9>R`g7UZ#xgHQ)QRp{T&v6;x$4~%RA6^mZE7=dPd@#%nKJKtjFVrqH4CXPVpaH^8Qk&WV0t_Wd1{I}!8YhfE@l4iM42^1MQNH853>uKbnuiSIk*f>2jjw`Flbc@rgN4>JeC zpY~jDr2i=YW%NUNqc&8xeg~wh{wF9`MmfEgmb0+teE-2MvAzek_^e46n1i~;*09gKm-B5NLE-$eIj z+&7%ThT4MO-HiQo5i$#Shugia#BGeFW|~J5+RI!}b2+@!3Gc@(zWEok zD&9tW`X)Pr_&BJE`I#+i3T>WWe29IBv%$T_{CLdXi$!el?)s;yz3eJA; zB=P2hq+2^R-Mu^YHp=?u>eS2~-M%sNyE9=uJ@oxO=r?YRJ88q6`!?7Yjj8Q^54ezx zUUyKx?G5s&4t<0FoNcf_iLdh2$iLd|nLB)QA$63Q$upe*aB=OL{C$-aB$zWRT(ytbVBruqP1T3S{g zCMNEyKQVFtT)`jJ<({3`m1?{3QLGmH#&ixS-N80hm-=LBzCU9uo~T>-g)hM+d@Zb5 zZcguC%&&~CBcT5lpB4|94#Dxvt+Ib*;KQ7)Z*s5bfsEzvAo(1)$e2b_um9-V+J~zYHR9UV@o_vGiGBcd=MDKE5b=~atx9_vcism>vz)j zxwm^0@PFFwdCMpDljPA}rC@h$Cc%%(TPg#Co{TN8c4wHe6;{4HAUN;`$i@7Fz_4TM z*~Ne~$+~sO)R*8*+22)0yjF&6Ev-{yC*10Lq<0^UQ3rCb8os0afE`25`>DMPJts%k zVLPn}dFO4Uy@mI;^1PV2U+Y^|rhW3O)j56^go&BpWGU-CWJ&r0#!z|0<8E#4)^8cw z6C8r4NMERty>%yMNzpW2h)jyXI2uYYGnSai);z8yyT*rq^JzAdYvh@Z?~z<85I? z7iJzFu=|1m`uSn@c9dt-b8{R020~NReO#RTCKkiPcATFg-&>HY^N^|YIPWA{vvp&; zDFau^_ZG8rn~&b0vmdA0Qux9Y!|77muXlb>#uSFW&0T9+LyC6TQ}1oT z2X@NNzuHJg)we4*I(+Kx>Nb2_w8x~gTG$`@x>%d6H;sLdyoYrqdh^1XF>Ihm`CE;S zH^w|jUV8d%ue<-Pw59ilX;(HUy${7|`%b4H^~i7ij_6!-rZMggk)d$hkz{?kBO~I^ zqp`ML(F5>MveoX3jAHM7f*P+aqg{-`Ch!IHtqf=Je7nV zz?q%vv2PHs=vxh}KJe^;+*Md^^*N4P?3V zwZoLNu05@YPf7J!Q$d;Wd6;?zfUV<9>@=LG&+2)6k~STmC=EL5H~}uie{TzEO21|6 zo?%vJU*TQ*_|E?47xi1;Y8fNZgXC8NI?z2W2`|Q7r1K|nt+DXI*-CIsobZmPjME#m zP8UyzmX#(MCjQX)jmOIRM8{8%4$a#=a_MSM@*8|&k4?t3SFUn`OKWMK#Z%EfL^JtM z;}hw`k?&$nC?}LjdY#tC8qX-U()9ezw>!T5efdjuZjJksz(4Pf&69Jm&i1Lj(`$Uz z7k*Ltpnnwp*f;zLRvF!au@qiuH}0+y-D#pe8qVk(^}DTajbwq&-S?tfOnmO_ zmhle|L*g&x$Mow!n{WOy0uU^49vG=MHEF+U@T&bv4WU zUnoDwhm^5Twk`S{v3ec9j-i)K#pM6Lte+p|K8zXW`b95HbfWJsZj^rh3h;`Tz<<5Y zx?P8y`p>CwXM` zSLwFvarJd!<6>WSgheK9@w}U{t?jAv)i15FL=!I&D@b)tj<-FVvU4~9cuV_?zi{^x z#y)9w=BLJfHMnqhWS?RA(G=6rwd=Pjt}u(U!jbZ;E#XdQGvoOE_OfoB$@>LnO-B#% zsuLTW&Nyw3#gLP2=%=eqZ!BI^z0y&8N#9Hv?rh_m?lg&k<2Zb@xS(`>cm9OGZ-V+-`-ex-*h@(z}}4Zw$%>taI!h-TF2T> z_mgZ!*Q5`?;@0mm=AoJNSvZppy@`Gbk3BIT+45li9rRUj0e5kFzg(ZzbPI>Zv=t(H zy8xJlAN4~x6;EjmV)+PtTKpUI+zhp>2FETIjc{}tx}xY&-%nYVGSbJz%TXR<*4S}9 zgZs`jZW9x2^`b}HX5*dCHrluk+2a>AwwlZI6rU(R@`t(k&EMfO!8zC&rhCyjjG4}} zY7g72eEpeLrCZs^x9Gj4cYx8!~3uUgTET|G;$Z-pMF{*}&erSn8Di*Qu<_R8?tq1 z4L}@P=C>I0O(#>+a@x_oH!gnbH^4dLR`l_?)P8>j_GaYf5a&qn^;$+=*-*QOluzaK z-NzQDGD@#tze|4d)Xy_!^)lHbOZ7J4Te{gr*nEVkO0$W3=_IFJJO}BN>R*M~S)vy^ z8)LcIWo=;j%^0%`2=TtKH8;Ak$VvVW zqg#M`#)10T6Y9JFv#gWxZ~PT~5j=vy>9hN6yP^^4SHf9odTINW?C&;!PtA40X9|1@ zx9o*+UUrc4umgxJ?Y(yoo&PzFaV~s{#s;b1|Az8lhX7~or1cOhSmU^9sM3sKQ_OU5 z{{;AZly3#_TNp~)dh~m*@Xg;(g>z^@X*clu`612Cl;_Ew33zfaP5mFOgG9SQf6m&M zMZ1o!3nAVf9M-tXuDP=N4&>iucF#q%2wxgI(Iq|xS$*Rk?32EejqjIPS?uuV)(IMK z=}QrAHGYb@sw+-QMFqAM;vOSk9v;APb#hCfU%ZbZ1{>t|H1;odyB~5y&F?0HIJ+rZK z@3<`-5Zw-OR}&?#tu6t8Zx`=$Vgx z+SErL{NIvQ0k$~ot;phY@W1Y~YfX(|g;_#;6{kOEG``S>^gyR$VS@_CSF-Eu+^hKcdl@Gkkbvb!Hx&atq>nNyz`^|GzNBD3T|%HI!9x|`ZSy)PdyfH94-c)W#Kq&8K2p#Fcx_8%=Q90$opw@yBFzqGE7)}B%SBAT;(g2o(uIhs?S)ZaIvFW0B}>JxK9 za)sz@cLS&^)QZ|_82U33b0wcLEu(oP25HkS zk$5*aoCCL)hI12VwnE-;d|P-!dO4=C=^6Ep@|5g;v%HW1M)fhWQ=muMc~x)^=a7rc zQ2}yM{2A$(k!;kQ7}-AP6f$ayDVq}`UWE0P$Hufdm0>?u=d&gzx^t<&npIKH`*Cj+ z9rH#jCqWS33&^v*){e+IryTl2uF^cOJJYQlr4%;7m5pK)vPUbJWcw+F!*Cy^(?7@&POsxftSKtFufQ~mwk6~|}^?<#@bT_|u z_x^gKkcgwZLhrPpdNxU)u{srNAnJa-{!)rx?ePi6?bCGoM%IGZ^Q>+!TYzt_Z{lh7 zdey1^MS76VzG}U%v#(P&VW)4zf#+lBw4&=YXA&nSoV~xy>{+xL9YkjnwT6+sa)kAX z9bfz@z!|VJ*688tpYjO~$(=a+?4nt%=XnzEMta(6@UXh^Le`YnrBZ_DOtU&$L%#oD zoK;Tpd`V~@?hWncRA40E@D0;`xlvx$1*ty_f3LIilW2**wA*+0I4}1N@=FQpgD1ixA|bOZ^7^OwLwasyks`?A1HvIl-(oDC-F;<4gOmGQtTD==Jy8Y~7k=YQH`zkJ3}rSiaHsXsq7o zyJ&JAbad`gEbv`12&{wJuAQ4GgdBW=?!SKB?!~ zc*yZ*o+OR6bwYW@;XmPlm`(NX0yjY+ zL*5v7P<3Vvw&QYhgMA{Gu&-nanuD-m7k&|zdl$U&GIlxOVeX4{&*!)7#`r6l@=dO8 zpZX;?*_+{x0?skUW~AohBfE(6#;fp`oyncHXK$x_+yS`Y1dJuL|(xSU7oE@xj6yA+l{Cx$SoW5f<_&(e2 z?W;|V!?E*sTYGa&*&fCF%-^nYpuJMrD7Y9m-A`isaZq`Z8H9gl)n;@e@uvD$dF^If zmqu54YrqS3$!g_!l`@K_J{`X`;0c}X4aY@m*Lf%5*NuIOa$5JR9gVr{cWUP-?HKlJ zr`mD()8vo#L_{BzCRwz1-4lxvo`=`3=PXEPViA5vqDRSxU$g%)VHT%<0uQTC(pe=3 zf}HP1{n1l?SLlK8|NK5^Pa>;?#!a^)WNfZ^a5Y zo8Q0YxAkvG?b)KSC=67Zfq^97(fP4c%BJA9lbg= z4zz33F5lzmqUu-swQZbRI?upUauHWvv`mVeYURRliO7J=wQ(5k6 z=o20*krf(C>59TBag6$^p_v-<5VW%k{fn4Iw3(xCF~-xui$5B98FvRK@m!U@i7_a} zzu;8aU5x90HwIdls{DM`604+>V0&X;%~hb2$i_;nldOCMeRLB&wYHxNEShtp{VDON z>R1g7;*I&#sk&BCr{)3lAn8eAU)zvzHx%OLa%|Dkp>8N>Pe||Bz`FImfchsURu_!v zEI3^Gee=Op1^5{^yMQSNFPB-r+BWj0HtbGSwrGwYusEy64uc*54ICWa4({NaKKxRK zB^y%UmpgYXZjv^CndM{TY%va9L^LA$!M+KspYBsR_4kvs#d~qwDDI?-yDd0wD1kv^ zCO9G(DnF=rcn58J^JrJ?M6@AVF`U<^#K{t=UI9h#b-Ef<%8weVjEvkY}#RGp}&A zWnZ3o#m-MP+?}L#RK|^M7{uEw4S>+9bQr#l))lvkt3M#R2;RkY?uU_iFQtiKErf*f(m-1No2t zpp3X^+lZO@wfu%%yPJ~CPeEfDO2yyiA3r(+pU7{po_-kn`Eb6Wakfb{-f!x#dFh_>LRvP`cZ6p zKQ*alo{9CQp=Jj8Zw1DitS#_c->zsG`-58ZpZ`>GNdVr1%vvwi%ri0DYskb*igO-y znQ|}4w6n$>$Zz~rc}sU|qZvNy#gxvg=qzz6tLO8kp^@EX&cM|*ejRw9H@96;-XeGx zJoX~-%sAW8yw^)*d8S`54b8ya{8Llc{BNW`j;z{~PY=#)@!!>8W?z0~o$3p+e{WKq zdM@@FYRZ9oEpV?B+}`D{R$92dFZBX9ed&COx_M@LyoOHT?%d+lb$-DMIxD?q`~!0z zo7vL6dXaf%$CZ}^otwNMJJU;b>AA#fXsiV8y}(@*p1l_H^?chG&$O@)|N5UU2^xn? z&~+8{^K5?HYv=;@u1CDOuD|y(@dy>3URn@lu04!F@yXne_D~ z`uZ!%-(=d5RjWRKPRrOIHkgNgaM?S8!T&VD;ZK{?v7#SzE{ZiAo?}vn>tc0>-yI7M zf7xp{L;3zsRJC;f{bgqUtmWMAeMv0nzmswLK5;pg_znH%nNvq{Te}Y!cy?XrH}q7QRL>=TT~7n)-}SPlnE&)1;J^JM)3+G- zi3er-IWh})e`Qj+AN#4ni~YLX9RI){orCZ7G1DQst+=dVY*QN8f5VxbS$+V#4TA~# zvET1B-yBXIp5@ma`(cdtd}?H_9~^skto!fZZO(i7yq4f_I<~s*#|^1L`f}{uUeN!& zSnAkCvAU6`V=d+(WZeosGdj0rj6P)UefrX%|5`s7d78ML-}O@?S-)=Z`@nvQ|Ka*M zEn~pF?1T5=O9tG7pE3<2=a|&U3P0ek`_$lN@E{S=%H zgTUN#E&0Fi*U_(FaF+kiFD6>Lhb}RPf5%y+!TsdRnueaaRQPse@| zBw7UP3;#%7U=MOn#x%|WaHe|pk@w=5&6|7Df5#)UTE@1f&C}(w9dVa4G|(^t&5c}2 zA1@~V9AE$^{mcCCA15#H-gbuQC`;a($t(QM1;$Ird#%gM{`Lo#%(C$QM>Tl`Z_h09 zf``MGF=i{sJL2;8Ton81*XFkPU%bea{fx0ye@70QhQo{n;{fdBhu*+t650uJbN!#c z0xbaZiJjzEpMll!$z{O#J@Nyy#r+EZPj4bGF#phh+QB^Xve$5!aRX-o_)U#0b9teQ z1-H+&Fn@u2B`wS&caawwK76h4LSA5|Uful^fRo=&IJjFcBfo>&6TI~!`}zAWu+Q~x zzKuM$rOjWx46Gw_`3}6mSU++Je^2th!vE_(ncLC|jPpMl!T4uJu+@*u;_rLFdC-6U zRqA2Xu=9Pj|I#`W)BPFQ$4--mt8(&RA@{@^?9<*KN2#DDmqIW0c?)AgWe_Zs>| zIvxR|3!ACH_-CL=Jxa z5_8#;7eQy=jU^>p1S>pW-vdm-7dZXV3*b6`k$L{h!sA^Ik9N#x)8cD|KXASqvlAON zX3MDKW#rzIeAl=#X5f105V$^YskvbVcvKpE=!)< zbvK;RG6sB)T>FhW3*Xw?y~=!L3%KfIiwP*PCYY%$C+PC_5KGAzg_b1=V{JW0d zBgpYPnSX(=bI7aj>}UR6>i>M=^p@@$7MZ_1{)tP1mG2|%cG~_kuVH1v)UEuYSHJR4 zyvZawU9Y~ffuZ#&Ro`O$ev;9vLE;Avr9E^`-6XaTFcn-1?K&q zy`V10QeWmYuc5ut1Z&Um>e~Ovt8ZTjEMM~$y;jlEebrmd_zUPZYpJjKsA3^o#ib-XOCCSyw|;C5xU9a^yLiN{s(lcnWiqi)vHhcBk4DK6<49pG}W80 z&SH*S`2@PcUgmaSYrYA%zHaK7 z3lbkO^;S=O0c{|w}r`G=tUk~hU#fA9zN*Bj=#5!x#V2=%bQs%Q4Q`^^iHj!1>w^I4q zT-=wvc3~px%STsxA~mcZtRIYgi;}5HADbFeSO1eO*i@29pZc+H_}p!{+{o@2Gbk?UIdHTRwD1}b1^9S-XOvdB`67Ac_530uO3;ona zhOrZIu7!T*bk1D#Pis7#rSJdX?$n_k z^}*nypnDCBZ-3)U#C{;ZGrp}02XK8;KQ*R;f2C_5xShY0=C%mtT)1}XVjaZV&ceJw zu=eM;1ChNQ>RL~KG%llpwMS!ha_mg~Zk)8~$-V>(z-8e}>vzVFeO@*#<5MT}vmg4| z2mLs@$$>l3O5}?ozZ2(=lH;7@o!DwdhS{^VFt8T3Yij)c*+0*iD#d`eYhIU*W{>Um zLE_J3slu>~Y4-(!Q|o_Jv=6MhU*L`+a<&PqTh6WZz5e?qE#SW(Rm{V@y{venC&ptOBo!r=xb|ueV0y%Q$tyn?c(69pQd^ zJN9MvA!-EEBF0r^G!r%-JwHeIInHyl7B%AAI1d zoUO;jaBT*zO6*fdZXtdv^b*ypc2q7+yY1E{8@9=L1o?8RP2eS_!+z*`A2A&q4Xq7n z$Z+OGe5n5GESdUk&y#_7@t^uG9^7T=anxwPMeT{tbZ!nT6GP4TPr`44Nj7Bu^5UcE zaYr?7!aH=PeX>(NH69y)NB;7HX(M)ta`qB7V24;Q8yWkVUDzomCg!Bp0I%+;?quBT z-B!ffU(1+HOw3Jf2Iic3$nxbn#!LQ{J=iC~31d8fePduai(O52KKu}>dCzCC)2ZE{ zCg(qGy7B2T;IKgc!m#&6-Ir3J?(0*(n&?cZtoB_f-)l@8`=L4RyW5n`K%POejh=4a zZYnmXW%tv5%Ozis{c(A{-Frc9Q*JxwjMJBxPU0nHeBo2)+tI%olC*Oie5QCd@+Wz) zNKfwJ!RHiz%L4X#XbyZ6e{xv9qVfYRu{X!4lQp-W^1U$|ix>Zw3)u(k(7nz2`xx*X zc=dYrYW)=P;O1)2Sm{ra7K|uv=nQO2H}uLbEc+t&&Di!khdH`I{6&e=eT))SuRNA@w^ zYU5V382jnf^`+%otetU&#g)oru6s14dK@2R;3Io}+s42xqwECz)VQgf@_=}gymcJH#sCF=VbJ2n>09`>xUHTnhiu2lCfvvY;$ z1h`Y@bDr#Pup?_fRp0*FY_i|hl`qCitCRh|`|GbD_8z}ePnNf)W+v7c+1D37aJES? z7NUnc%s>_VNgN@8@K8QagckTb|8jZvg5}Wi{_@QWdQ8sx*dYTKY#~kUiZ(@7Lz)y;}6dTuwe9d!YSYjWg4`%srfmb@_L}-7^eA8U8+G`n?&X+dCso6=S40 zU00pBA@wJmd9Qtqy@&M9uJ^-F1@L95_>*O{it0oKXvqwb0{dmOdudTV+EI`j~F`fA7FEe*q z-t$v>>i5Lw{1%ti+9X`y%Qjc{ak}#|Gwi;BJh?W%%05(reOkK*w50cxypD`?yncP^ z7ZW#Ds~*+)7S8ACDZiVK5RPsXrdp{j_8KD0sZJc^rHjl*Y~1d?`PiI z$Gqp}x}I>Zi+nSa%mdO(G`Ai9f|CoRH7tZ*q?<@D(V1DzQSvb?{dW&ATwpd?|2xT= zdft~XpT$gfqx^l#Nc$V|BuUp&mnI+PtJEW z%7=Ca-y{RiBK>mGHD6-?&tAb(FfFjpO{|>!)Rp{ce#Dm&&UN#vzDIeLR;nwe=(pAw z(V36_SU-1A;TT1~+r7yD>f|#i?Vc$v4ZlS?mg-$fdh|O$Cs7^J@1)~P*B7kPx#H{( zDZK;T%b0;7?Q!dy>JV(D`iIp$ayhH_r&ymrJHtzvGbFp8oxrCZUK2gxLwzACsEzNh zm}E}2xAp2y^Pv zPM_3zL^@>TA0O@M*%(5(40y{__s8ZJe+1sN|Ic1f-!tBF_LVZrnIcjrILo!%q-r6{7JCpfn19f{5HOyYV)d!8S*a$R`%a|KvWS$z|C@X0sQ;rDXg{b&7mrgV}t^Mcl;+$%rn!>hYVbPqB*25Z8NjMQwD3e zwObsY=8^me@=LN(^NG?WE0r$ZR(h%25nQTYG$7xYh&I$-|3{Y8OD^?dPaz*ZRsFp- zP7~+Ug|pPwHhfnd3`$pirT5cc?a>QI2fz(6AahDL_yfKdxVhgXag}>^-0PbG!NA=a z15z13Y+XB$&jzGQ;27W(cpU}uXdOL zdtPsb8EBO3(K%}QYoBHYvhCic-qZTr-4O34pJ-?m={5K|N9n$~x!+XHf-i6GufxwY zZMwI6<_h$c7x4@Ig}sBk`*!(}=Z4D7vTEthqSa`=ljMtYe^U-^`bA&i+@>^&k zzs9|q_jZ$sOMbzdea$w1YfAS(5^oco)lWT0`@+Ri<|5aAZkO6uU#8mU{!-v^Fm!KU z3eNr~Ff@cPs6EM1$xug^oNWj9;uqm7ZMJTgOpbTz+{26fJq8@NaZdHIwDJqD=(&AK zWb^{`LFBz%kNh?AXa@C276})ERrpXpgcJ2+I$qRfnt4&UnUXthF6FFt-*ma7d}@F5 zWhHV4IVAWMKgi*4`nYxD1F(c~`=8@XW8!GTFG|kIw@Ga`cZR-Az;Xrcibo`8p#MB{ zpN9vmyb+IxKg1_fb}{*b6L-I-fP5O^-OAHp$(jHiL%47H%iYjin~lAdr7ew_=Hy6*qwmoL*&EpBtW6X@R zX7ropn=vGlqebCDbCBq6E%X@Co#;TaiQh%hpyY{Y&e89TyHw^E(8PAiv~Y(?#K)q? zpkI7m233y}Wl_q`d}pz?|_hA(P$hPGQMr??cC z@>?|446gvE-{{;To|6^H@w6Z|DNTi3ngJnb1 z7xiCwI07Ao{p@pai3YlRW31~$8@_xg+P6imLi+VZsMqRd-Oj3VcADE^i#l)UTs=#)(TNWYtp zmSpWX!hH{sk+&H2Jhuc&n{G7$jPK;+qrm z{0icgNtYR`ev04t6U~+X8@Ry_@@lF+V)wT+%I7bQjiy<4nv5@-ZIHOeq_(2f4pDSEV(G*1N)&e4&HpoG)3D0B`aqt!69|q5ZXnr^-#~aydUpcKS-w z+4Cr!eXs@>Q*Bx5+kPwe5o8iJPvRP4KgEgZz8D@^Q@wO+E53A#Ev}>XGuZvKE}KXD z(s5jWJN+NgU)_7HadG-(r^mISv>Xa{i zbSIo!OEi6Sclga1^pTV5L+;q$AESO`Nq#NQ0O?SwU#%&T1zJ}tA2J8K+5zlp_cAx` z$F8;yyV}XNw3=|w=vnq>f(HubDdbczm@`kn8;6l&$X)g^9vnV`3>!BOaR%ey@RP`~ zL&&gEWLtmij$Y{^I+GFculy$)O>LiSn)q_tvC%xIJCrNTd^^`+8z_D??8hSV&SMQ2 z)T}X)Zlb(S=T6xdwqFW_(}@myT~XgUj>pboL=9XZ$KV zuaJh_$&c=ZtENre8E4@}rc|43wc049Blaz=44AH0E1%}jljsQk(z>mZzNvkUQHRG~ zJJ0^uNMDX`Ezq#&+?ad&2BBU48Zz*&XuW+>$J%dYgJ@grG<$wgYa?v19nJ9ZAY*y} z9n0n68<-q992#@u9<`LG4^5b31 z`UE?qw-^r&+0EJ(&A(MS7HUzB2N(!H42Ihx?2V-mGluGB@_EH#haYLYxcT5hUGC{==nu z9eJ!?N50~#z$d&5CiOK2ZiG9{xtf0kpI{NLeoJ1>g)a%ejc#7D@Npki?T+PU=8iFJ z0yp7z@iP9f;ariq!dL#<=EqrwsEqL*;Qr_!J#JL?LGa}hD~B}hF58>0&9s}-n|&|X zag)DrSi{wu@$0eeITkOd>~YcN9G{lp6YKH>n? z;xG0ZcsoiP!fyaPU*-1$)T6yS;Y9m+w*BO&rEBe12hBQn0lZ&G`uWkoNNnaGnYG0^QitTM`{a!V;UV#m2W zwV>t-!#TUGtJl@7eCx@lJUQ|T=PIA^%8MhUCy<+mNS~VXbN(;MD}0}-zp7i`RL4t{ zKS5cwVaF02SiC^<-}X1%xrdmL$_wmsl}BYQuZQ=cC9dC{x;Mnlao~F7JyoteG@)|h zMU7KbPHjr2wOp?@oxBiUl~?2C#-ueU~3(dFpU&*dFo4sPK zKc@Q4#wD^2+Ol@k(zvwj@XD_R{$YN>FJ1Sr2v_siS697m9V2_kzC3MP*ktRFjYGE7 z0KX&IQd7Vq`>HX8LO=I1SosFL{jqG{X~wJ&Z+sSdT?C$QwYCjoh+&%5_s@||dFJBe zKqL#b?q=VhkC-9g8z_NYdBo?o-{^H4D2HDW^}BC+S03PEpTWg6mW_C7?K71g?F~H; zu6>%&4Ycmbpii`*D=cGwS^g+B+_T9&QTV0Eex*26+8d(ZJKR`ko@k@*L2euvbuQ%q z{m2!yC!{_bv&*gzw5~dzHM?*f&Euk(h*l*d*oT;>@1yif^p(+^3oUa#&}aSNWFWHe z=)?!C%~|6~Y!Bv_*j%*~B*#hTi@8Qg>G1)%h=t1wkZ2`0=nv0vOS`|y*$J0&*sEqRVBR6F4mCUi-$1;a3?z6PLJOg z@QhW>Wyh^BcLDE9sdIy;Go|1f+OlPlMOquFY}{+Jd#f9~0o@DfeXP2il-~+>dM%uH~BOjGpfMrVV zj?)L-lR+$d%5-@HcP|3wTX?>eCw1L@Ay3NR{fFChPX;m6M@sE##(!xNzHwi8Qa$~l zKgkAfcm4@rRT}s8Ri(L8c52Sd`LD75#<#+@t#MKLeY8`vhB*d2r`fyq%;m2CjX7Jl z$}3$s;q0L8YYbeUW;#-zqO9Q4I4IvDdxve(e=E-m`BNG7!80rH3%JWK_gWi?!)Ntz zx6V8s;xTF4N_!7Aw24;=chR>D>#&EQJNSk>0_>QuekN|Ig+I;sooza-U4pf96}W6T z8@+^ck`@-5pE*GF2p=BsPSwZUKs!;L*cK-1EHfPm)m4h04ERyK4kpe?1JmX^wZfxwJ)9!yphg-7H|k2!D!B%g1HXApXuh1BUsoMcyC;1yETRyzgrm>$!v|a z#@*%3Sb3`a(wn5;Yc90kIFl_|%eoC;NGBH!>)fWhxF=h%0Hf~FQ2k1;ylILL=3(1? zH~GK?aL5P7`C&)p8_6p;Was;!WDRr2N-JM{_-5x$@#pD@Pmy-O%BySncEI1+AULEC zUJDIs4nE}XWUZ4!zU&;1L1Y%iLP0cX{ z!;3C$VTGG=E`kH(O5$k~|rl%0n@$b1u|I}Leh~G+3KN@=KaC%v4zilgcWOonr>~0&5Z) zkUYzb4Ftjdo^a%t3m7qHEM#)&fsu0?}8*-u;D z5eyo09k40pNsZZy3^eAz@?Y0W4-9Jl%kH}h2LXB*u^RdV&U-7yFYg7>o!}A;@SYbe zznoY-S2S=Z{iwh_pHG(Z3+r=EQ&FT%ZjfiGq=fRRWqm2QZsls70+%6X;3^nlm31RJCxvA$-FAs!4KQY z2*ECz?57_1Y1=Z>nPA+u$tS6r`^#lB`!K&%_M`CpD(LMnc|R1+#~<)>SC;lsS890{=X5~@sp5-Z}Yb;meM}CrQfF2?`c);?*>Z;N?rIYax9t4Bo zpJ+~a(j24ps?s&LX@4qmSg#Ev%k$!gsMERA;g} zzVR#gT~CA5(3wuR3n;Zr`P z`tEF3XpelhkDY;f~6cX99XZ2!c>a@ORjZsF}z?Fm;J8QC*ryOQ3m zadYFDqx~uWP@U@%PGn0`Oq(+H5wy<{`5LPp{Z{%sQ*~0heh0{#C~uI<_%rWz^YZlZ zlU+*i$Oa{N(u`A37zY-2eouC#4053bn^ZG4sU|y?@^f{*ckCezwTJ6b<~eK#59Y5$ z{%hYCyA|h44CnE_l$Sq3KlcbFn7`Z1C=xQpJTS(-!s3p3=4tkD#`46aD>v@QpI?w8Zv^0VRi zl$Pbb1xpXITe>qA$~!d<=ny62knw+Q>wr>_IWu!v#^FwAWxl1M3iE+t!n8pnAJDp{ zC_0FnBhV-@N7+-d^B8)(^7A{7{e2g6J!AUZt~j#k?=&`rjPJ$@y$&2}eBR91Xj~*q zL4cJFrT0|`r=okwP{sAq9R!l4jz@LoHS||z93;o0xKFYPi$_Fv7a~Ul&&jbbWuszk z$=ZBA_+QDHSs(dJyv4cdd$oz7i(1>To5SgQfL%@Y_zL{MrN=VIz+16m0FB2({(_(C z#a~~6W*KU}bu!-WoUOZuAbh9H`*wgc=y&paXVtd z%#NdcCfO$_So&n`IeBhXc3SkJ8m;S;Pj=TJZT#{b@Em7WPu_ocy&sjv3}01rlilec zv6Z+~ZOm7lHdZz|HT$wR&PUT63!|eftRCKFc5TyG>Jj!lRxZ>7&Sbo%P_n;IQzvRQt>9 zm5Bdaz)`cE#|uVlp(b#b2A}=0J15VEEP~$fy&FCfyCW5VU!4a;Fj9N>P@C!Q1qa3+toH`{pV5idGDN_$mKHc7v-I+cS18zTFL{n|6)k2z%(v@;(Xx$4W(NoSy!cV#1vS+KbI`l2w=*ZGZZnhufeA{=)vY82D8}VCmGm?wUJN59G zts_r6;thBd8~XLle{9=L)ayC3{}J=EiHzOTlH61qr_$?Gulg?C4tl7PyqJ$}6a2r_ zy$y7n)phTE=9!T#jDV3WjFPx8V-2!`6&MmF5vdX;k^nb#i7*N=w=`8{Lw$3hF#!_i zZUyKOiisT(csWrFo?IEZt2cPcsiDD znT&M|K&zv&9Yk}Yv!&*G?w1+oUYI;<%MHZbORTR#KDm!<+?KO{C&4at+iV^{hPqK=vDQb@7$eH8)^KjqA#@(r7Q6*3!ct}1e~(S zOvD?@;;H%c)9Epdk!L{nl@De_Us@YAK8;KJeMoWi@h&^R-wo&U|4emuOK@?Y4rii~hi!%kVsZ8_%QziT5tC zIEq_7jPjuHBH7~CJ43z+@uYAfIh`c7xQ6*ACu$G(L09}(>T^Bqw}*XlpDkkiOj?ki zS@_aiZl-)2qG%=!*|)~@&VhL;htU1c}Ab93X+qtD~9MY4vz z$F1Cz4Ds_9m<{As;yiV-R(onzFIOG{e5u>vxq)2ULK~lijNPQZ`7DC41mYD$6qq`82b0>jC8*h$+re=(3p5s_q3>- z^dmQ(-T+^yeMhdxK=M~(dkc68%(5#Rx4jL%xw^@Ir=05FDE`ma1*_QW4d5@^4wWQ3 z)W@HLH~CCN<0`K*W6+E*hfZV5$-e?WmACz&)&gR>`Cnv~)v1o^#;Lb2QZL$mN7#Nk zRSNp4e}Hm=aSv@v$MF3=d8f-+uJL{*>~|u5i2Hq%Yojx{m_29Wm6EbmFXXr6R4r%G zmzom=!KJlBG=4kp#Gixs)1>P-nn(p7qDDl#`@~&>4dMVyPt5)y!c#Muocog0Yf56qPx%1`XjK2!IN3;R&Z(qUh^Gsj2Xu;D; z^Ig-lvLr$)KWDvwCR*^dbqikcdjfwXG}}H^rTv6HWM$62Q-5k(blC#DlK;Y^VA4Cq z+Xyar7CrTG^wh`DQ_p@snsis`QAy$*wGK%BAB%Smq*snxo4(q7ILlnua@M){bo_m+ zKkvJmeazYf&lR`WeV25N;SsH=jQwkmLbKHx1MfM@Uz_Js^%7w{{Z_r(!g?yJdh#{b zJWyNxOuUn}ayPZa-Z!9ndGo7R6SrZ1PfeWLkHzfs?kNjz}TcvAeQA$+R|7gWBgb$j78(n7^GL~xwqkT-o>x?c5S4V)(7c%TJN<6z^|geW-QZ?C)?fNz&^O2(^4bf*mk|`;H~XF3AjBBv>%Yl+@YSvN(vR?O zS$Vwyc*RqLqAlh^S;wp{DLYJds&oxw z8i!oJGxJfXKN~*^{YV#6EQE_C)g9;yt-nNjS;WdfQziD-Tr8<#N~OPeo8w5VA0J1q zM{VfYL_9yDw!QD%=`YjvpXgJ1yKIM4Z1X@SmMG}EbP>tVrHa3XUbKg+HC?_vZZXMx6N+ZDa`9k{9!@65J2lH7SLpA#8wGN<7O@MQ0^6kV%*(Q}&iZ9n*b z)X(2arqIumeCqw#Y%q;oI2j9dw|42U%*`tJb0vCO7d)C{{L;;{7MCUbb|v_?G^+8Y z_`Knd1Xq3}!}$jG0@43mY+j1r&G^`N{9$d4_B&fCFMo&fVlU(V)xVDi+mCa{Ik6wv zOW|MrZoyZn@nCxsGdPKE`iRw^G`<1GtNQYtYJ6AOeiz&GHF{qP-v{CQiFjSP1wZu? z_*giM;#Rm8+Uhz+{9<;TXyPUa#Tpq&^rBa z5Ny|)uJ7#IwV#SL7P7B)phNZbXdHSb9-=RBnF=P!>2xoAcPh3FzIVACW!E@+&gn*z zj7NRZCVsLY$ZWN^$nY7tPwq^f1U7qjSMK8-#M}Sr@{RPP{g;@zG^0Hj#S_RspB^h& zpS#Yn$v^*o?iaTH`Q!VWa!i0 zaelKW+MfAvN9G9MB^wUL6J^N~{CXprqm_ILm(8)d!n@%g@OO(Lcigb)T|(RV!Gerp zBZae*_@PqA-5MbumF8V_)6L_7%ASi~d^7we-}q0^L!nRXk7f8xa`m4EC-P0}PC@w* z1eok6E+dg^cplhqo3O6@>nb0;__c_$TcAink{LX8`#=hN*I@RY; zhxKhno%OE)Tb}aZudKOpbLY-Q>;?bn!47=Ay}`NAm)0xM*BUTxl;E2kfZYD zA%ESDB-n?>O4hm~FyO5M=VuQDgQPx_xOh!8s_| zsnhY;C1POh9;V$3?I{u42VbFABEOe#Zs(Hr3 z-*moYj0yV7u^jPh$;@?}TT{Qo7RF=~xeU<{d%GRqtu3JM_UQYy)FpPrevg?fIlRvt z=l*b<)8oj(pCxcK_c(qp#u}8*0nf7j|IT;86Z}8&HFXuV?m1j!S;w@;JcK-Sc9d`; zei2@T54Dk@elzQo@~c^1LgqB_Oz-tfF;{x7GTF%UrN8s7Fjjn5@m=9_@uupitmy@XHx#@B)F1)%ddNBK#{Ful0tnxZL<;xSJQcycj1k1LI zCz7!&Is(&5e+jdgbFA{I^rE}vhfc+>D?l?z`7T`jUiRbI{|@mXo1q$AM0VS0%2q|n zGG+@ezW0`I($@;`C0hp@@)q!9?;w(V{w8>9VNTP@Y@l=JI{TqHcWZen=nm!A8<;Q8 zV^&{H^#&go@1i#$hpdl9Ytg4|TjbA&r&n>FeI;!wE?oMQ=+@#88jb2sf@3xI+Qs0( z_o1~$W5D-ZuTN~yTTaEh3SX42Og|;d8={q7Tdu~AjXN#*Tr9s)q>RojsErrGy7>EM z$c(?A621-bu)sa1`}@m~bq@ ztNKfacvX3g;~?d&KAz1v8k_@vpJ6XS@~;jYPQ*LVH*x{`1OBso@GAy{H`gE6(U?u3xl# zd3DnV=CFOA3&&k;`U-#ZYOY>#23e=GJ>BU3#HV+%*D!>yxYJx^`MxV3Gn=}N$(8iH z1Nf+mZQNHl_HV3DU2NyR!cpoA->S9~>6%JDW_0*+KS@KhRlCpiG{2&?-?z{}` ze)Y^f$v=Ot^2O0hhrQ#DchC!QA|buNBN2K@A-o(6w26)2&iqNYkWJ7N+V&gib0WUU z?#*nbuQkX5+3$JtIJr%9@082!ya7GqPIQj-z_$)PqZd6yHu(MVzT_(Kw1+)n*^}hg zOAf~G&um6V@Un5)E|=p#{@j7(cP)vPwYm3-qXJX-7ok#Z3zb59jvz4_o>(W z7pJyZnfaXUYe$p($I88b3fSE|r2^t@EPPt`stNHM1kRtvgCW5}j?*Oz`Bc4^&_^zy zuCFIOK;u%q3&MKX_(Q5g-qb5qM>(stp4d9*Ir7W-It#-(|3ID3vZtWCkTeF>tD;`= zBhxV65!U@nuL$XI04oLO!>xM@~7*)hUd4Q(&t z)59WsRcso@f-l34!M874Ms*fM>gddS#ipUoJ7(39EprKV#B;u%1=Ok7G}L+XtUBJ7 z(O3jiLj*swVM>KCY3_XcvQaDc5AD~^YClJv%ceSRiOz%OuVVjDCyLuV<-tK&bnNPA zUc~3b2M7H&r>4GdjK#NK6zUB>jmNjkS127xaHZiD@rmg1Gl9cv9GD-ZO?b7ea~mr6 zV(6>s7uw2Zx~dMB!Ml$?CBG3@@p^FW*ji@obK=+WSyhwgZO zrI+!p_-*1GoZnhw@3nj(-?iSW?Bm1}Y0mzNezYD%`}u=e{bVBje1Y<+@5xRSK0*jLj`ApO{dpQ;-?cik5JUCG~baGqnBKiZ7uAl|BjGhlV>56CemviFa)x3U*i=t=(Ee7GFIqx8 z2$w43=T|iUdgj;Dy=3c3=Hi)n99q`>m34(2{FFvstc0eU&_O+oO9lxh(Yp9hbEWz5 zerdt;^N@~+(?cg3w>j$7Ry#V9{Lng6pm~xkk{?=iydU~68TUlI9zTYAFF&;2NBz*E z%gH(D@{v$p$@h&OZDkq$wu&EGc7gXpd)cOE4@7V;obIO`&4Faxa6}h*0od}C)$>1! zJeU0PbEo=}d7YFornVq`?2XV#GWJ%h&**IZJD`7Z9V|aUJxeFpi;~e_{)IbVuUNdf zY%by9G&;}BSl*P?!z9B`GdF_m3i=cNs!jjLq2*+NCD&IJG)5^DUcG`0&qVo9egv)LcofiSK_5USFYK z;fl3^HSOX;Yt^GoYbf(6@FE{VI_rEBj;~6=jg%F96X0VZevp_s(xkW;V-EF8w^KiN zQU4(G{|favXJ!36(iODF1kDx&N8=c$am-U!RB;ABUFxM)SN{K^&u(lj&dB9eU%IOB zL+o>A-G^KGlY-=pm}MEVoGDb9!UXrrxFS6d&F@T=S_JY%gn zY-Q0RexDXBgUg`1D&h=pfL1$)($Jy9udy_x`O!RKa}KG$$*Dt0`6;}u@vpC>R!{5r z_{*6O=~(&{T-whco7&VP9HQ^#N0=AUn)ZIu#6i?-U@c}nw0)8zLEkk-y{q_*cs>{> zuPSmx?{>tOfJ>LxN;pz(r1QzyaHsmh4TNp(WiACHHt6fRJ3@7*|6G1yzt1Z_IW{n~ zsd&?F@=6+W2@44O9q4%_8%F@`XU2&=kS|C!zxJ$W+x*%eNw8Ngzh2cGvK=BU0|WbK zDFmzb($CyK^Lyxuu@*eqA5!FZ7E*+ANVfXj_LuYH+VfD6`X+f)t=%hq(=x(+Nb|J^5m$Ezu~?1 z^P}=HJ_FO& zqujGNIE}hs*x*ho=f&_2ovjWK@rp% zQL)$3*h)2b&(sHG*9f-nG6vm=UZEYzHc-~K$yz7dKzF3+9Dy6l*<-7{eAL{XOB@OD zXEWkR7C(4yaU}PiC5|Lh{n~LPDaNS2G}r0;xy6yp#hZippT(ED-%)(0`yDkucQRk= z+4n|&80}?FAAt8upWkftP2K${{ZDiBp77k&sdyd!n|;eQuMOmLPMV87|JpUQnfh*? z(d(OY_8B^z*;RR-vd=Qakob6X*LfpJ&z0p;y1%0e9=c&Lomz*U8|uT*%L`L)U!t;}o>JJ;=yXkOo~GJ*DW4+-xV8+A zir}aSj*8&ujC&+Egghd=9|-ZB3-R1#`C}u+1Kje2Qulj0Bd&FT~^l6*V3LbyR`c|}8GqT&&RZLeJ zT}SoT^lvJ1XOOi`+Rz^bAD`IXo!Rq<1yDSf&hRPTmAzE^yWv3>*ELRANf+6a!mHqq z#(!N+e}ZFza^Pjo_%A&Nci34jHbb)KKO-h;>2QaQiMj!sZQmEpjEU+FW1@Oy#YBN~ z8xyrB5)-9Z6pdSFv=#rPGuk?@O+4Q2q_pV8uFw zXYxv=bQakh``m!;8_<4wf}Aw6Rkc>gXT3I*U)mo~T+HP<6H9qign8mqI*3o{4C7O@ zM$8qTGV{57FX7rWqkP5Bz&d1zdypJ_BIp{tQ1&0^_mr#PWoXctbt8gZeO1qb|7{`s zPug;I1>&`UJvD?Dp2yzp#&^=bKj;`_FVTM2dTvbLh@LOp!?}q&J2I>8?%>(8d96d$ zX6=C1y+zoovL_Sh<)UTIhvpYGkbj#TV;W16eS%A=FPP^mqrC*Zm#!$?Xfb^=UsfjR zTnuxD-ZU+Hr1Pnq%IKYBlH{@11^u}+tNRg;qcdsg1IkUSxKzX3?;pJYy+Ar5F+IfS z?!^YE&FBnU`g94uoAMWov&Zk~NN3cL5u@a^80a>~>*R}0r=G%Ju{mFDzK~Q5_?4{V z%gmPKB0jG$TZmyxWd1AT)_TMKiS_jfr|%)Ri2T#?ZAq_7XAj34+YVQJTE9+N$)hh) zH{CE!jQLHrt^b?f$Ks32?lV#53@QG^F7BVa*|yz`96LrlY~Geju>K`7l(Fwz9pyy0 z$^O>9w4Nzf8Tr4dXUf0JZ~38Vqp$*>)3@wd!>5}3bM6(RugN53$|@)SrS{8ZGx@Rf z+EMFwouMUX5I^JNN?Q$?X1KfcPF&A9y(hGjrBrDw?SiTkRLtJSU2>9Z;O4S z(x_rB{w82w|3Ka-X2Qiwd_J?;>x$@)kAAhbn)cCmPFr1cmGzm{g?36V;J3|>A-ij7 z?2z@FlDq86^`U+<5kFDDUXR2}qyn9nk$+9`5;^u!R-#*JU((_oUfUn;x$=&^HpNGr zDC`Fg;au~*m^%Y@2YGls-mVylV|Sk!A2A=iE0}k|Ty2h67$h&8Pv2PjzYX11eaSzK z55MKjVNBMmQ#ZgjN9Z5RKbvV)Pb(!&LlV3F>j@`6V+`Pr#Ho43%%IP8qn`y_np z>nSGR$KOb=xTY%E^z*5En$*q(#Pc_NWJi;a$GK~&7eD%m0_$HtEXVxx+n5vi< z{JrGALiYwQidzBi$)=a4zRY~U`^h@ytt+p3#DUm)I(wEjo#YgbXa1P_g4Neotcu>h zNPQ5_e6DW#r>UDc7gHDf0cG_}@gQj$baY#);O-elJ zK4*#VFqQZYUq`q)dwhop-ae}z>0nFF8sFjMrRK)>BOOd*P;AHa81iSplM3NcoIsRb zDmoi@^06JhZRu(k7-Bm(3+?O7jO{Qpa4KDmx@DEud^hg=XdoZWFPTFU29IqPj0V4PZ6I*c}0A(4Ic6Q@uhGNTKs{3iSw=QE|RExC_%^9Ft z54V>kTr31XkA<@NU9>+P>*3nJe^&dM*mV1gB4d~AZDlN3{xzmtSg#dXsk2%;vBwqb zLGH%o!WTMRCDwyn&q`Ruuxj`c_d7XmBiSFH@+1)f@|Cp;<6gLdtjJRRrp<1ilL zCk362QQMpsV~>4qJjm~;G8fUuMEqn~ZGQp%R6c+;{acXRUw8YG*#0WF3fuprg~7*p zoG$pWS4HMi{PQXBq!Ur3H_JMIjD+dC{ti=QwHi4Ws)w)A1as;7Eu= z@zO=JX#BhgPJ|236XK~(%3c!ElIBx;0@E=a&lXz3@vE%Heii+QPDR(}I-j1lC5Olx zO0K7q(5vD(G;a@akAz}5y3pCRzdT89x6-KOj^GhJN8>rXZ)saNUfLtRx|F0W_?$#9 ze6UEH%%6?_sQ8lvyXfjZB=sG{^Tc`j6cio-JBOJMf^&Wf!b3Y z;bq#lWY=YTwoo{BzNKk76_sm>?f6VsUvvCxHg3bsv1nHD9C}^{FH2TQ_Gr&Swwd3v z5G{BbI&k-OoK~?Xm1AWT|o@+1Jw?E(hIdoQ(r}6`&SpzN{IWu>e_)G6p&hN!5cbRNv#Zl<_Y}%D={qNlyPn<(8sSkrQ>D>QO zd*dIYJ=uGLeXd+mv-if2&$BmvwwxY{@lpPXuhQ4-z45c<^zgYrl+)t{>MCaia`&8a zdO#Cr?2TU-!l5(w@ajmOPqjJU-uUzM8QmKftn=-SFAUpuc}NbAD2C3reYU-EpR;53 z-nh>R;$ihUI|S>w?u|=607tugr4v6_ewI#~rz4x#JKCCfVzedUawy6dYRpjHo;TT+ zHzUY7d~M5PiK>d926?YM2zGBq{Iv>MA^Vjxr3LvSkHwca$segTK{7}UE5xT-}qN(yXS80QPgE_;gkKTHz;n=1@ zj|bsExDXyL0cPc(csPh}Cl^q?a#E~D4xEZ@894CjT5RrNtE1?dZ+m_9+Ax>IrV;r} z)mKz^T?4=WQrW?+_Q+!cY)*HRe_OVU@>-~j&h=Ve%byu1;QP}!ye{G6S-d~~-y72r z3tnGL$0}g{kBsR!!o2vsiFW2hYiJwuBbg>U$J;j)kyElYqkHV>a%7J^pEJ_GC0Aza zF=4;XSA^WtKA7m*=S5*W$Q373a?nWBPd>qZnf&C^!=t`($^59lTz5~%?>C>{{O7@N zQoeJ4#t@y2IM%&goDgTGg55n2jk9>m9Z-jp2g`>`o%(3E1oJwmI@#TAR#`mk7 zF&eAnMZGyu_sZ16O~-;m@?E!JTVOv{wQr0C+kXfi$*UMh_xJsm=wC3Z|33=*lwWQ; z@Mnh!@LxBYwbp-qEA<7FuYach`X2n(_u;?3Id~ss zC8xb_x)NIu@&9Xo?dz2DF$KPCCHD$tyTh^ivd)ja_AGwvT*Ytf>o`Al-&xKn<|^kD zeI0jBvF|MB6mykxioTAICGfuN>2r!_!sL9}efEs0pJ&m=v@bhX@n!q=oiDrZmh|Aw z^Z2rJ6?#$~`Lg*etGwpEanB>fQU#ggu@m;Jz_H+PA#2x4omEV1e@p1go{T5(RcP;P zfsLWwe9e}oQ@=Cq!~W~ghb`Weth>zgS)0?Xm*bY_bw2TQNCTcv_fl^z`LGAtmV7vm zww~et8?h60D(C&$3(d4&+u!3T-?r-HDE|RuyJY@v@>_D?#+dYmg!Og*i8--EzBF{p zS^n*+!r?J@rZHN6G%T-JUi^KPGmY|ZtL<+=kM7LMgT+IkZ&&!Sx=#wb8Ck1x-yrXq zU!Nk1x*Z!=GnVA4e%aJ%&1bhSNUoYr}f2RbAG{{hO?T#EM3I+`aSoxToha z>fiRTl0T|W{?iZ9_nAKK9Dd?Q(5vJZo_Xd^GEr?r{oGMpXdKduREE?5Hr8J4cg&%~ ztL#^7|D{oft2$`Y=?do|(=~_U6GvmYKt5fIbJmyy^DbEHt~ zPIUIAIp}OKlo8Xk)NAFHeA9o(JK^dd!0lFOZZ26RAGPF;^B*s^I!SBQ$C{F{`>dWQ z{i1E^S?p%zK-*QQ1_tgHYgtSj=@Y@a?Qaee>U0s zD{lg)ya)A-;BIENph3SlIusaOULQMySo zrkuh-=5fnQefZh~n;R>gHRxILsrpD@p%+&`7Hk7puo6T1Nuh3iH~ee zXan3r+o%9$fW4k-)+F+g=XKuPa+mA5^KKJUMc@eSd0G@mN_f?HsEZ__$~Z=E&G;174}pPu=# z=#0Q)9cFHOTK}DpzwW>!Mxv zId7~vkHQJADsXxj1#cp}`*FH#9$l5>mB68W^~)H;1i8f7Q<~A2`pIY=<~<#e3u}73 zk{QzH1kfW5=J88i&Mp~nFda)Pf35O}c{!rnFm}Qin}GQp$D3t}pm{D`Phl8X4ae4c+Gad?$WD25iSR z_Z@95?5k=m^)U+KHR#L2=+C6Ia_5G|f&DX5gHGt^tiPoB7A(Zd6vbz#1m&gnyF2&b z`AqGP!Pi=&bMTJx0L$-hbN>#Gvwpih(pB`WoWIH$+zw7#%nodjgq7p!>w)Vw6PGic zPw7a=AG<{3#5_Ct%Ng;I%E=~K!#%0Q-#Pg{Rtn%ZD>rpcQu0!Dv}ch9_#5{jlUdhP zmpxAQ1GW^>DP%A4hLV5UJGFgqj!|V~3u!O2(mw48CgoB<&nQd;{e#j=X{%VGZouAB zir6l-r*@LyLhlxso4X~imzu@p#+`lmHtNcUX{UkT;g~p=AUrG2f$mK(l|9!6zBki` zaF6}XJm4c_@~SdGB=s?uo=HyG`SOY9{{AIAB_(W?H9hs zgI^Hqt=~VN8ox!K#(b-Y{$yo@m#GPJv?v@BBL+H zd*QRjwx1B&_s6563DJX{8}`t7R{V_l6}t!ZN%rT{V>xW}UF@OfZ_6VmC7+yZ&jsdQ zx2Ct5CEOKd%!_uOq16K^h=|U#hbh_;eb+E%N3+J#tjdTE^<3ld?`}eGSufh;S*!UTG-~X- z8t@o1KWWmL8{tO3)2UKm^Rxgz{vhV)S=SDA(z!8cb=cyWDf)_H8Dr)S=I#)2Y{S(5 zHt_ecFKcm2?DL^+@|FaR+3U?V%_VJW{ZzSk@H=K+Y$Av562TKAD-wRVJ3|XxYGemfkkWe2sUj&w>7a=Km-#I2{-tkL7pPAGqews9n!e zIr{&W#ha%Y)fJpI=6{cB&IIGj`UGA_gVLD-@&P?TY~JI<<~>Gi-lN3&?uQTe72$^> zJX3@pSZCaxV=w&IVm9d>Iq8I^C)Ni~3|aZwz;o^8ouAwU9Zbf-Wo69~KS_SJg!j@l z80DiICO?F7jV>riPBkWPpuH^v-~zqvknTUS^y=b*eVoTG<|&S@uqoNdnWd8!cX96f z-GrP;6#SXxEVO=h`7>OkOp!d=$e>|lP`vEcoawz)#qVG*q79rG@1U`$PpvV&Pv%u? z7w2Q7KkF_T*H#Lg2_JeV91%Zc<0!N*tNmx;shYkL{3hqn8Mq@q81l&3i>>g;l-ZZf z+OHAtooXy;TjwL@u19`udhe+c+Klxyg#woZc^y zw7kmrI+{zBjp`uM$Kf@X`vck#U8J|wvJv#e=or3ujn|lbNn@ItN)6e2l30hgfeW2! zbofACAS;Z`>ns>j*Z?zg8;Mr@pVl|@n)a2@f?zS`{_y_ZvC&nMrOCd4`%^|!f(1Ic z4OrH&p7pTibwf`%V9szy0c~WYTlBDCY zS#;%Nwbj6htgLNM?=dE`@oIZtXPWs_y=L>6-3Qwj;#4#!__TgWhB$iV94h*~V#RD< zZR6lkF{j8?Xwt7Iz+=nXGL%&rd+w1k(oY)44so~a_#4yPmIaRH6P$OeVxJ^DKbg%3 z#~GjM&8EWv=upq!W=gB!`x$rSXf1jR}Rdm$69gbJv~|{)`a?39{FUjA*4(1f(A?G@zDpM!=2FK4(MM^|lYcr_-wS;2fX?&(*wL!*`JGiJfL78w?`OSOTVRbIU7uK6 zh{ZYQImlXkz!>xbY++;8p_|=ncEgK#^HeO4Q>g@RkTW*XSNK!fZmo*Dmz8@b`|Aw(%6&evVvJ- zKOVvfKO_aK+875$4_oOkcN2%_WP=~4Y<1P04C`9I$AKJ}3T>I_SfJ}$z9C;h9sasY z$Ool7;d8V;L&0zRr4P0L+$WvPusK|r>wDq1&080= zK51ctuCogQ!IK0o3lFkX?OAz1d9~+sc4OPC;ojyCf@63N+6po^@*TP_=b-8(wo#SpT!nvw=32ZvDKFsuzAqc`mJ7}a&nOYG~iXQ&uCJNHj-=@{&SKlNL4sPmU=7?1EId}^=vIC#=HENpEh zd;U$ZH8y*p3^TA%Ty>~z{ z1){e~U-a=3eZ6dgA@$Xm{XVhI@}G9~$AMXW>dbb`e4iK`)xEAsw1Gclxp3&~Xsvg+ zGx!ucD|Dgvq6xiwH?Rmc^{uw_PV~?o(u4S7!`7~W3HrZ~zExJ`mN#6AT)G3e#*-S0 z>PKZz{l|7^)VBK2m{rEpp6<`CwLab)^7F_hti@r?i(i8VIyYy~S1jL7VDo*Rx#FG@ zho=XNC(R}Ptn^o;k1B-n0ZJp#ic;aX!FU6INRpqD4ENEZ9b9ZLL zK_ADE!w>8FQW;CXA>FQLUQ{CVAe};Jh?xOCGG^`=70*C7R zK6!4(KaMW;0`Ueat8(Z?oNG;F>gmJtX;18SYg_v{z^_tX2CSVHK1tulw{%wQ z(U*-G`c5o0OCMya8I#6X_h%cN7sXl#OI=2;Ex^*u7mJ|T9R{15UA%Fi}w1WOCB9Sh;WkGDzt1oA&{CdKY6 zb=m!dyp^F-Q`}pHuOyAnHl13BJl>qgCsdzqZsdEZw2%4JoWC-)J-H&g!Qiv*)^lTa zm3G^AYsulDTv2D{0g}JO=ZwHg&KIYiC$zm7! zcnHN!Xm3ZpLBVZlneJsD$#*LH_s?_N>cE56o0~K8Eu?qe9mt0|?LY0cbbjVTsMneEZyin=G~*M%!|jP=tyv|1|!FI7kzAm$7B6RHfN+K8}1eqZ5R`jbKp-r z#Gm~xoN8R+iKP0<=A3+NOQAP$J`uVH7U;(DVp|BW-`jI@zT5H^{=d=84EXZEx10S$ z*{;%AOCwranZFVEs$cQ5@<~yL{!K86yrw(gGkeNJij%rAy=H zPIyfDeb-yu8GH)P*Vn7@fFqr`Ay+|iWt29-Ex%{brC`vr8Tn120X;hjY|n-HR)r%y zi-+|2SKw55WM8=M6y+lIp(R&eeznuQ3+d3-SJ`f2VeK=@NpD(hhVK{Ms{NXeZ$_Vg z@cx_3L-)&0x|w(K1=RDMwfO!9K0mqKiGFZDdnTi|@`?X^^uO?# z<@4A1Y~_5q2~oaRnt&F`^5 z^H(ybgU79|^L&7BD!?8-J&q05Iq=HI6+_xFsJpks<0k{fSLDspfp}=r>1b!5hZ((vh+ zi?8=QH$pkdC6zlJ+XY?c>z9!;FZXzDwdmQ?^-J8ZBzis_+r3=-pni_!zy6o0-fq=> zFLfA`)epyF4=(R!JV|JG;2XMcXCZq}$|uhr9A&lc>)jaVj@M8w&wG_)PVnnGcvMFB zI*aDipL|Fyz~t+1ppRbL$Iy&E(06Pf%P6ZhvXr}Xj&h2VR9i2{^4%J1bgm759tU&j z92$$-)*Yc6V!JFp?xhcSD5-b8u4I^(Us=k@kE-|2#8P$QF~!4-So`{s<)<&((j@&% z@>%1RpGxmlKAkrvaVz_Lx9;Gs5!M*;4eH)Ttw(k)nkVs}yS@hwYVAzEW9Iw(jQ0WW zMW@j+`Hx?R9UFhg`T0HzquvWP@NZ6EcAeAbfKBk+Lmz@;P5%zwr&yPM-^LHn?_0;G z4Cfb!4}e~f`4+y@v3=NxC0kd|EzI!O8P7Df+2z2Q&6OcMV6(U0dK9|S+MOp30NKcX z&_-~fHXGnw_5A>S_EB=bgJiF%W8Maw` zmxn!@GwV`S+@&LXV?n0!ocYi*&tF=5=WlN^sMI^>_Ht*ohka?`qm4>?z#-bu^F1DB z(%O~F&=IE}o??hKFPxme}flO82?qh45 zJu6=a&xk+kx^q=#;Nzmh$E>`?9-kMtYeU@naSaB_0Wg!s217Wb z_|>``#eD^TAr5?dzVEs5-g{1XYIExf@;{y#XHAIWsSVg(51!_tuVoSX(wwBs0&m}+ z;~2-!LJQ|cTcvP};JBi@Yn_}u7o~sKT%0@2N^Yoc&2e;YM=Jf7DsYN+XTv#NE;nP2 zqck&vp7PkMVcWugw9hF2Xivw>4CTD94~9b?s#`UJ9@U_H>;P3kA#2edxATOt}FeJT>hhq+m@em2l}CG0_lH}wO0P%lT{nrxz|{0 zXEGku+lV!R7o&Qc%Fd^^NjE|FDxxzL(V3)Q715iD=uJg*tRlKo5gpCyaW4f{ zogE{Xy=@rUE7tDSxCC#_#?AJQN7*s;#3cH4#*Rg6J8PA-wcug&QwzKJeA*V%KG6JQ za5nFm`H`i2vdqo+)3XhU(uiyfZ{O%X3HJEG@tBSCk=-sE$LlDHDG>ggeY1?byvB~< z2F861T`Yl}b^7H>toxA4Rbz)4^1@U{Vohf2Qo;k4Pgyn){bNHpJj*V+7@v+{oWu@t z{)D{E5wjGys)^qTb1;oI(7#)gjD-)wnK+z&)^Nj~naf$Faa0pq;bUNg5RF~!Ys~VU zX#CR0)waf~@u%637cO>%eI(2ldyY$S9SLHFaU&t za*eJP^q1XM$l6}m(^X2$;M7Y;{4iIPLV~muG+VUOGzXUzY){g45 zw9T4vko$k}ZQ$>T&b#!&Jx@6Md>j06E%L(gfuk>i7Ol=<@K^YJwS!ysH{JUuPc>ad z4(qGf-%972H*C))i7)kDd4pRb@1^qzzU{yfH#^w#oi3N1 zr(6)0lWy<*F|CxvryIs*e|bpl#Ukw~cDyapp7x^Eulih(%m#182g?)<$?s)Mz&(K< ztk-k3qvwJv+Fy>gu)l2^f%)=~U{d+iYqVqA2z743E?=|YaL>K1kPq;qRPbUT z5$%hr}7)d62*?>E=MZcZ@Xwv}GFmMHac9ln#?Wi_GJDS4Z z;%o75dRsn>xpH!&2L9gnL~Tut**!qKkLBqkvQW>Griwc--Ls|Pv!y&^UTwKl_$h@vyg={y{HyJd6$xWAOY?Nj``3C?gppyqw3gYJM}m zl4MbmF)055;~$Cgw(y|&b95h+JH{O^6Ei$g1DxkkXTI_^$Vgwl205*9ovnN(Ql5pP zEZm%}Jfu}=KSg=rS8+45;UV7BmebrzelE4JoVf;R?GX*lUVnrewJW?uY1ZQgq?K7y z=e#pjxN~El|GgXQ{O{e^=DwFuV-Z~gv(;Hd*V0!s4#jY;CZ^4;J!8oHC-|LgKlvNW zw%0q}uf$)t^9jSO$>>(>c}@O?_Rc!Z(f7vN@49hqCP;Q}xF*|i#^>a31lA8rn?pz6 z%Y7WwlYVm7jUDK490I!nbA4RkB%?p2mQ*(Fa7r@9wX`o&yxn*hJM z6H>9CRm3IGV7Y!^TBhi^bRW%u_%k{W|CxQu_pUKpTxPA@V9&F*-N(fFb6e=5_~r3A z6F1t7E@01bmGa{G(KHMu-@M{0Gg~jWzMW)jaX~%;(KRtgRxf-W-$I)Grf^*kbiPvW zjrnLf!GDstC(d1#6%%lw>Ff~?%5SDUzs%OAg8EV2E_{2JGyiGe{o8TH0q29Ozgb&- zIptLc*)${^J0Jf1XOFx;f8td~R}C?zx7WwWffz#vi^<1M+-yweUdhiDdwjGd_Sk51 z?9tIoY(F^&;T6U#+7n!_5Syg_tzD5y1vQ~Bh4~%Qv!wT}@a~(zvh8~I$H;Q1n|-&t z3s*5F={~Jh_u0K_gPb}>n=0qypQLYpI@VXvGxWj2s-UCX!tZWAHGYCN>Z)V+X%D-9 zL6A=}4%XCUyKsMA3|~!tLlBGO7u%XBWVZ%|%Q+XJe$H<`Was5naL0h!t}^dUq)YOp zDMxv4@D=cT8+g~5PtkImGjcljxxoCG{nn(-E8ynU`8M=SeYMiZ654u+{*`;gmB|OX zYeD^Z9?=}CFFjL#8|h2)uJVTSTpvGNTYU-RTaVl!rm_g^<<_lnWD2pkW9Y%eRVHGO z<1@WGXrnKaQ*2w#`8zqgt#nntYhyt;ZQYtFT%KJAUyif4S_%$d z6__isTg*jfyr(g*T#&nZ8k2oyMYd1zB=(tpH>S3j737UweB;*ZMq0LZ zC?7JhFPCQ8h;>A#>3#zGe?>G2tZDec`|;JEL5Ecggg?8YvLAq6TC3jPbdc{iTfMfY zaFZFonNuFb6F6U6j5$vtoASA%z{H)hw(SzW>?+5T$S{ppaa<1frJ$YIEa6FQ=()=7 z;Qmj^J6As!ye%xVhxg#u((p!XnYV<`pMxfqlhwm9b**9uyD}rRbACfVeU{+FxEaA# zBJLf2yJ6rN>S*t1lFxiYV8&#dvW^lXHXt9zNzwVj4&t4MMxW+8>+R@qK2v-i<5RGa z&(HcG1;5~(JvQOhzC#XcpWt~vZu|;vUUPx)r+MQ(tl-UCI|tuqdb`EnEnB+=u4k=# zg*plLaU8ykQEp4uA8n5Hn$33Yy`Hn5yO2klIG5U6KV|x|swZ4YMyqah>>=RZrM4_x zCb_?bXT>sf$)K6tfb%JbH2xha@~opr!ZorXHfIJXL;It@n7SRiV{_*7{8sze8_L;d zb?~ZC_pUMDT%hsnr%YqRLZjb}sT<(Wg~T*2F)I)!jmW%Sv#Gq!^h+lp2C+ZLZv9;O zN$Rw2{UY~lf6T0C?xOGhOk>0C)ae4Zo2b)Y{sv{%na!+G0dpMB=-E2jayVRuyt|Hb zIbTU+w|3%N7{5d@%zh2idAt9y(y8M%71o&9ds&V|sE@7MDD7_iX3 zr7`wHupjWZjE8M%pZJjVuit3mO9bB=DXVsVnYfXuYx}P}XyFK9Xm&6xwelAEiEMUs zoHK7j{@XqpFqchl>GFpAgDVwRlR6Za95{Sg01bQ@8b2JQPv?>I{Xyf-wLyC9QJ!z+ z`|a4gzzz=5S!BLnYua*Vc_@?HIg8|QGSfdAu=JVSn`f>%QMZDLM-%dVIF{)?&J zOQ)`dFT?rbZmxR$ZsoVe_Ypp|?nsVD+t(SUMGZm7?@$Lg)7+uU6wzgh=rTog8SYZv zS47V#q5~Dtf6$qo{@oUv*1r#g`nQjXv9U0FTr7vZ7)6y@k8L1Veo1v+qjQ&}8t9xKTNknKCEesxt8Jkbh?0b@DTf&3_%&^B+u= z;O1Z`ov#WGiGB`@gCk>gXU-ItjoDk)T)dumo;{&G(at(78)_AP#GLGg1LNr9_(V#R zrU&|v-?AGT@#oWZc3tP#Q|Q@-GtAN<7I41>yjk`%!#WC$vDO{PnSAOJ<|@cMAIou0 zwBOFN=C>~8)|&+Dgy>7(HyByHy~$n6UeAZq*h`LfrtwyGcHya{PSG@$Xsh2r*_z*k>oCF1Mi@z|ixKTOAfj+ml;){_V zBI@7Jc;(}eO|J1)Vj%D*3TE|Rd6t)rmLNU`zGwzXv_JTX&ERS;`vW=oAMF_`?Q{5k znnO8$1Ri}-@r--&@X!6|qlwHhWVYfPC&aU*k{Ji*2gSGBCe48mp5wrW&)?el&oLJ9 znfiZ!$Y-20x$;t{zm+*Vi46NhB|kAVX3tjo`jW${i%%2VKd^f=-hY#ZzJB9dF8;!w zBUjA3@T)x-&8zCxm|AdqlgU!n;B&4vOThb3L3;)XQ_uJAk;{?s#*CFEGvGw>2qy4x zbQFlCDx|mFWLBV~NdLaowsBLrnYFtb->UlB)wP)zeCGpCptrClSbbPDLf)VH6||W} zCpS4%^3xqz?vhLD9ExkdtI)$5BAK3+t!VZCPT=h_y%U9(X3>PlvQJ@lVcY(Up8?l>g<;Ny*N!<=Lcs7$wu1WR8+mnU0Tc9bVCybk8o~fMZYvx*+ z3NCj(Irb1tunnHOEtGW{qi9L>^n6+5`3m~e^Xc`(SYDFtF?%0N<+Pp(KJol*@P_($ zn)zDB{>_ypw^}~LnQ-NT7kRJeHKwcEnA=N>%=Pv&X7@*eew{a-n(AZy2>OY;x3U z|Nh#s(9^zF(UW3Xr4Nze49c64+w9(N(HAm-Q&0PWG;Yo_o#X#Ej}}`hL!r?c>bDBj_!P zwSN#fc#WlL$xMw|s<0t-CM|3KuggAbc5#n!f-@V}Wl!+E zmhx@rt*YNZ`L|;~>U)y5k+bBldKG{EtA#;$PO*STKGDOtt|^{hx+ft1aB<3f-JW@N zdV{lv#>Xy3SC8AZYx5N6@W(!8V_3*FQ)ox;@N0P+^TPeKtWVtSm^#7!RKA{P#YVnM zPTTb$btKOIt>y3i&|ktFXWaXn7J$DWO?`cd`UQrtY~J$E?UZjYCuF-rmnVia9%OR% zB5HLMyaq%#RD)+g-?jFU2&s@jk`78uLP--uw(4e;r@+Fne_` z^ZiGZd!BkC-vGv*H!>D;y@w^&>t%N|l+!ewnPq4Y4*` z`la6@{Ui4ejn{M@)c?@8r5k;yET1iOKA<^TPuVx|+?WrIaH45c?^Mp1&y0w+B}dluZwJ;B+wpI9 zgQxA91KCXpGdYCpuskQ)*BG%E%6hJHD$iV!H`tX=&QZRG@_MdvDxc+3G_CfR&QZRB z@_MdvD&KBi1oy6dc8>Bbl-F~W`_9zlEgHuf^s9F6iBGdWdEF@e#kO9#i}J>W-jGR3EO*5AW?4ZQGv^M>|>#o7IKJ%olsymf%L zt`KiI@aA;3X}smYTMoRr@=N(--LmDAJfB@29U8plz?&25+wY>>TA=D6i)#_Z{$}aeRRB3U~QrV3MD@hP~}&*cu(I9XSod9GV*c-~z^O z%p(J*v6B<#(ac@c(OvH1UD{~n6FxlwPMy5ed-8?gZy3KsXR%m11`=j>W^^jot$JTz zE+}8Frq2H$c44lvD#QD-`XC<1_8~d^<$21FBM-#)9yZD6`{yaEws~*cUW6?9-Do-d z1jg*L@NSyQTX=muwdADuL9+3yj8**!zNGmXPOgqtwaahjeEfrH+7YgP0WQ>DdQ7&| zi30Ow*A&&$y76IfqVcbv)t7L;owAPquCX#qYo}y!n;EijY~g*I*#q4_Yv0$Hl_M$B zHPUXbN7 z25!+mXW+JB7H*eUrO?Q1erQ9+{r#(XOaB^Q8)a>o z2o1I{t{=YYcw{a*#MjGRtS8{>pAA`fptG4evxx~7@rC66t-zvvBJ{2zdKY^AW8`#s zlr!=B@hR-Xr|<|qg@=piaYb}AYn!acCi1ZivYBO@$PV%Q)Uu`NV-za{yTg#vW_wYw zIjq-(@E#lzh*gjSvYR5}Y zc6xK(>doGNu?C%U1#n1T&CpjI9h#qoznG}4(cECh7m!<7WL%H?Zeu#S_1){6zTBFy z+)~<6YzcZCYnb47da26kx1P7mdamE{Swzd~d%802T=2A|VMfhZ=hCaCn+xCa$(A_B z)WaF0^nsGe*>gza<~GhPt>Fw)H|LI4aYkt+XOFr#d(_U^qc+Ys$u8{;c8#_KrO_1e z)fwXI-yR#M)zZi_vPbiiM&~56v677;K=?0_J@kIFuzm6qKf%Yk0R3@4^~cEH#2)Y` zk7lfm#26GCi!EqvIORiQJq!0OOTh>J+^x4Q!BA29c{6>}f06!+y8DlHzCOkI4(ErX zE!tJ=ux-0ddFzyeV?q1TKSO2^qpw^o!rOD7yu+*l4DMjoG`3AV@%#RqdVe7@9tu5c0hq;&tU zfs>T^a-kU*Z!(?PmpSvL_bvEZPUADv+M~6Fyd3uVHp;6_!B_g^^%eY$hHd-y4EZWm zW?uw{4~Av%Nfuv37ZChU(VlQ8Jf^VoRLA-@+H&T@lo$Tw2Ta*`4Rr1xJYT>$SLF|u ze=uWq6n@L(ml*!ma(+rVF*VO4@MtTvqBi&>PC~e!_HCq7y@8&~*Ma?F<%i0P-t=6s zJl#7zpK9m6a16p%96ReOcrppzWIM~gsWDqBekjqi>a5(wT8^SZp2nER&Two2m2V0rIa@{FKZEb84XHt@JG)^WM?R#2anm`QhaUz-2ZVhDV3- zhx8`3PpEwjm1nHhXLFF;K+?g-Df>q9a6*sWte@F>=z1w_H9*_)r6l>x@=X2teq8R% z>(LKf-+HIHGW@AM(cG<5c|TEhvIQ$Pgjb*P z2_XxM$igBr5+4D%EICtvJS-v)i^$6&GO>tEv};K(X9{#~S9YajtT9{YKR;4!a|Y{k z5>beh{DJcwXH&z=yHb1Io=fVH(YDmyye%b}0vAg$C8;7<8gf$p%|zqBr#O zj0gWZb!ds|{XMy8)%F%!7C#|n<)ckU%04x9Xf@hRL42A{rGm#OD<8f8EnI?!A~+~A z{vu;9u1cX(q|hl+=oE}sxb00jyc+YP0e`MTG4QG{-6Gie;0F0WwWj-Zz7_tEol&_3;mlqmK8(0?_!BMx(DPDt(Q%&4)BWv4= zY=7|Msd3_*hAsbU&pu(671G%r_P~0B05}q+N&6MA=_}N}jpTyxLhRl^4R@X+G5LQG zKGA)lj!vZ)wG(6MaVgzQdYNom>1^q|&iy|zs<=YoPa_@r0S30@cEMpvo+zC;AlZxaHxKzZ>b&WmTH%B7H7ht+E#zMA6~j^@28H!r@4Ch{M7zjZElS9&$ugA z?Wj$3AWP34X0^NSQ?A`~R{Pkwdc{3`9y~|ezMbESFP^I}?^o8{?VfLRe`n!0ry$KmJ5qEcIYJ3{A#uvT2oqZU~Lp3w@66$QO8O^uk*`2_y^~>t? zRtHgh%faH`ai`{ZEExJTI}TG`hRl75`?vVF>sAkaYJGC`QWbs`Oy?uV6sMzk*Zxt0 zxSyC=*PYmUCf!YNKT`ewbaLq=b@4Y@nCGI;la#Ga%pY$IgO=BXbR;<^{*yg1pPugV z?s%@`c&^#jv3M80HBOCD^UQqWzk9;kHtb2XAd7}%>xiGdPhE7_OC9;~RfjbWJd{e~ zv3w~<9)pAN%_9fm{UbN1#^NTKGxah8A*;~XSqJ`WY}|8Ht$ID zq~eC@@8IapptJBm&}HL7iG$)!ikk{oWIqSpkM}qo=p-@9@pi?35~E@1K+jz)RnD$o zPhYh=^A}InR$oj1Dw{-J*PF}B><1DPbq6s~zddky!?(?P>MNe?Jkx3Sgch2iN-i|5 zb9P>!-!IY@u(5vrFwvM=VB^|W_o}`$evPL)v7L)Rx{q&HcQpqjqxCk$g>s z@>S*L%NuhHIqTOy<;9kq)taaC7g`5I-`}Q80(o~VR!iJTkfBaV--*7nxl+}?`CS{2 z@~%9)GJ->U-(KD;H@R$A@x`UU6pHC0lz*+{}xTAIpOaq&|UZ$UWpUbl4|+Uxd5?X3_pZr55_ zkc2$f&2KA&O>=cufU!+lt|Nov&|J4A2}zumI*K8->(Z8{G$ASW{yyKC_my4=VJGQ* z?jJv%XIbt0&YU@O&Y3f3&YU^Jvx1xFT+V5Y6`i@*$2>#($H1jx@Y1bdls78iI*R^3HiR6n7=QXhoqk)H?a3qghO~+%%tuaN^Lij zJqL;Dy@D~N-@E^c9I*UefPBxSw>!soFZe$ItgGnTe#+9m;+s;P-c|TN5=*H&BD^hb z=wjko>$||?w@lWybF*zH))utW<;AQ#Nba;=mpmwzjJN>S?uva+c)v+IC&}N+{R_m3 zV!!R(z99)*@G0VvNxB~lZS@Q_`fayE4G!}45_{Dd&bR+9wyXrD{A-gKDsT4yX{3P$_N^7raZ0Y%eDVxA}D~REiy`yu! z)VK4bY#_l-eBaq@hv)A{w|S}O=RYxi!BnOW&1W3#Et-k>tkZzc8ppTQ{%_yKRJGE{=xBQ=RZC^HXr|3RdHPBO@bV5%~hjK_0by`+lLGIlWIoi7pHS% zq3=A?v2r7NTX9D zRDYREh~rUN`IfAYjeYqPK9yx@|4ipl*1PJj-Q5v3FHh0MaWFa_^t8QX$+ z5?HJynQxqL2Aj&}E<4Y2%a26H#-dvsScgyXX~@RkS|5pE*fYt%Q60fj`7jKPCp}xi zdSPMFGYf}UKA9tZ+6T$e_tn^S3G;N*TJrcR4tcxQoA`;y;hK-cys7v)?coZ}_DE-3 zdiOV}FFmq=`CM?e&}Z(hN(KF=UDn0u0O+D;Dw86PwRuRDZ96YGU`KW{^+NhfgOnjIpQax$wS8W zf3@u&yA|`52j7oZrj610dyt!=m7hQ#o&Ywqh=%n|1wJyh9kyj9Bj5a+MOC85kof8A z2JO`mJ7>$Q-t0PpW7q8SpKOxM$7R!}U7r>EV);+52d#f+)1}^g!j1*Z1r`wDp90#8lNHO6bW#^|h7_{r(KpdLu#d#69Q6cKawQoP4w5&~ zQn>4#*4)5^PsU5bH)ARuQhV5T@yqzW!i;oB%+aPx(X>_VhU9{r<>o`c5p31_D`;FU z-TuZ5!4aR!cnvm-oiP+_szycnD63gnD4&`J{lXXzzx=PfQ>`xi9 zJ9nP_0rh7$Wwp-NM{&|+(}4!a6>Fi_#2+Y^lFOm)z0aG%MSW2};`jy@(TBh`Q0{!; zYWGXtq#wtAjDE-_kxnB%%@a?gr(%qcGtnzcL4VbM^cFFn#;lEaCH4Kw_!l@|Zv6_( z@77LWjxR9B7ntJ<*aQXU`2zEN0ehf;tx&)|uy(}cd}l{!{p$8M$?y7_*CN|o`?k|vd#qHKW(yi*5MI{HvA@!$RUc~&X_0f~#Ya=`I(gj+pI~imQ`RklC z&o!o0Zu*Q*4t-5uiQg1oG;fs4i+vxC!G6gQCwk)&l?il^;GRJSK5|@hmOFbK=+O9m zvj4R{b@c0EJgfZL$Rf+%U6I?_KS?az2%lA7>(ECco!Iuyevxk?@bg-HkP+Jto?lB_ zYa@$G&SrfQoAn87)`Qrrk7KhQC_o$5l#aH6y{a?gIdTC9G9g(A)@70h?C$X@)(iM7 ztX<%2a~EUVLSOcPqkJM4qU5Vb&s=48_sBk%&slaCGHi}B?qX&me%xMn7L9SQIOZ<= z7Q%fsz6;5=>PhC^nqBtu2)wIgJU1XG^XwYnv$Q7}6AkrT_P+Fu#*fP5ILpUk59EXO zfZ?BDYrGYsoKbUyOB?`!nhAV#X*}f^1dd8!QiFflRZ< zjt?&WJob$>g1D&rnh@&b|f6(C5t6+V2 zJi65PcV@kcuev?3N5C&)9&QwlYWoC!K$pM4;Zp%_g2mpj#YJayv?_gz9Mb+$YOU??at1}n;o@Ilx2WD}U9i%f4KLqZTw$08@_gh+vZ|bjb(|Spkg zJZkT($WPE$(IC*1(w)M&7d=wr!&cn-31|r3rE59EdVqOcw9CXR=;OBv6U`Nj!3jGj zorrp+-}Cpp#6QX0J3_M0+RMtm=#*s65{)E#mbS>9{97+j$NAE;)~*)~gjZmP2)9}v zH_?fA1|N)_--3Ey_TOv#Jj0!j>@jtph6ccv@2^LHR}+J+I2`>wyZ?97hU7ZRc$9wn zS@i9T>?K6-r3iP6H~1&x?aa52*)t<4&Ib$E_tJlj#~0WKAfDOop9N!GJyscwK_^d6 zhRAtr&n{^1VA*zj&hVfP{c~~I20O29!M;nf4|^KExU$@x;nP5U@#h4~%U$#ZysbRE zh`tTG6wvp20kIbcWAUd!Wc^Y{yq=m@8Q zup>Kr9``aM>%s8}uVdtKK1TaW*pUg=Y*BDbMQR4`Mvvj^EXjw@{%{HXV|`{-=7y4F zU3&}~BkHFw`}RzXervv!?WUNgc#JU=(;bu69>so|JEl#0N177@-f2HZcAecziWiaA z{`@aRtZl@(kX5yDcy=D$rFfDn%olrF%N?A#y3^kal^^foz0gD4HLZJ3$SIuqCjHlb zj_UQY_ryL#e03xWufdafTzfp)-}!xie}{Rrr!G2>ujMnJeHz*Qk`=85MDG{ie-e6B z0Q(!jmft%V%X&Y_dp++!{ufbSdlJdIhuMSOFmyS7W0loMa08g~w-W<~j?-L1lM;OOA;3S_OKYZ0>5uc#K5Vf}k7(V)-WYlr+p91Cq}M*A z{jp?S(X8XS{HYaY6AjT?>S=O=$YWm-rLi2DjV)^U72PLDtv`!upcddX<&EtTfgGykm3L` zi5Plc^IZQ<@*AePYm=BS`RqrBX1}ZR-+941J3nrq-iCA>8PFa})QsjXH(P53OE1;Iw_puGAFy}b zc@>q_*pw_wCXSOJPBNiAV9815ez%6sZp##<8`Sn0<`B)3e3#@C3-6hWzQU_WE}}EY zf$-`iACX-@k$)&dPNL+lqG==NknmeaexkMHBI+R*Q8&4WR+FnpHa~Ha*zm*o57K69 z#Vw8BrQehIjWmBZBO8t;2@m^>JuA2N(Y#sw+M=p1`Wi8}q;zi%XO?Y@K{N4l_sSYqJ^Iimh9FEr08tddhEYgf^d{orT-6 zFSZkN8QF~-cx^fp$sB9-yKvb|JHb2-^UQCZSX3qd(}}X|pUSqsig?5F3Dm`6ja{+m zqiOo3{j>h}K9_2Zc!L*g4$StI><7fxa_`SB&ibm~g0+#mJk{_22Ry_>>EYYaAKmlk8Q6K+ktl6T2w=1XEk z)uz@wijfHJ8xjni4Vv^;4NvI^`mC~J^jm$s96Y`VezITdVv8D~C2Q-)m}5uDrB#gU zyv_Fukq- zAJvy{MdejL&e@`>oO0}pGUgRq=4^BM`&1VCkXvFmeoxtv9i|=_T`}*`U_P$Rx%pT* zX?D|3@#Tnci#*mO`pOr*SAKSMz520_`)T&U!!&ROpLv3F*XPpW(_VXbO~(5<+Gqi; z=+zag{8Ug^>y)4#bg%7-)qYC#BxgO8R}5<)YwEk`e+BfPu(}05DEVrH!CBz2hAGEv!Z{cbC8>>Y2VuPE(SGkY_eU#*$64gJC{mOl$c8x69=mqu>xC52E z9_WQa7kNF8NCz(5zKXk-`*QQm zE#xA}**Ft?vG962Cj5MKVC?kQUA%?xc5`KaYNu#Cz12)oaf$hW@If--_=L-r@OR_FSM?6!lB| zd4zsRht`0@-_VwHd693y3+9UuGJv7p<)w85zi5!Eddh z6Q1(_dMVE|tf}YkIzH?vcWW;BC)zs$?}Ir-dsea)&tUIg+q%(Im`U3|t?O0hEaep| zNWZ(KV+`?W@;z~@R1O{8bJoIAoXT^lvr*65NV9F8wbVUN{6H4Eig$ujWg3#}b&AInBF?AMB)QPXgnbod?O2Uxw6{=la^YmH&qW~w_%--H9PjIG!pE6;($Gw21@ zEZth49>b<&zsT}Q{notu9^j3_3%!@_5F9(E;HBQ50fyc?zr;=XfPWAjIhJis4ky1a z0q(;4AhdFLbN(<^IkCkz&h&V2HbG!-Sz9a8kw@0-7_G+EQVf#Dr|2BWpzJ~25rb_x z_BHw>8{-x$8&xzG4ZA8Kt}3yeD`dnMnBC-C^zeo@gQHj6$bb5@tyIGWVJt*lG3YpSBl z2Z=lGQ_Q#ip6M6M+WlC`emJjgGLg08;d=Oz%wUe$Ao z!Hu=$uw~RnZN~Y)WPd8|AZE{p_2Ij5KExzA{1@uKoq191IJxO;oQ}70z8U!qT-}}2 z{fxCYRd@RDEdKGt62;^Q-uY-dYxj}bCH&SHUC%R((}g^fZLDXP^ZQbK)L0fD-P#>r zEPfc`)6q3E=TeoC>=gaIm>$`xhl*x3{^_CU6R9rjiBA048DvQOZ!_9cnlS5-ueFAA zTll+Mu?Hkm^4a%99@jda(R(nT2WLYbFJ!MtXGIL>cO^G_BG;sJMjhJ_{C2Y*X&Ags zIw0`JCyK=FXX?dQjeBPo=B%xE8vgwgaJ5&a`gAJ;@fED;v1YdK)tMK|5FjXfUL!q`+CW((sb75cyUhr{1Tzom4 z^#0oSR|+@HndE+G%A*q#_CDLJJ+olUG0XR~**mUvBH!4mil0y$(a2rIPt7+^BfrZ_ zR_B2iG7=Hq=|9|q&h}DgfPX$ZVf{A=?EM&h6-|etFR^xvH!cvWoPSaNm>rbmZ|nOh zMkhz$8S4Vhm*Ag+Z=99nds$4vXo*jJHGP?~QMI-)e_AOTO!GS9 z-9;JoyPAA;*>BqUz}p#ZuxHxD*CGCvE_eG#?YS1y-i&{?R({}V+5sCFqn37~#A!U* z^oehP54Lj$Fd-DOz&<#2#A7QToKKPei`Wb+AF=^N-&K^aG9BqKjw*i=*mv-50eHF? z-*#I@{Y$EEl!^5@->J%>A4lSX$=Qk7c(zckp8eS{o>f+s_7#RA(QDPlLiTG_7hb@t zC-AKvWX<(B>%Rk9BQVAt|1$o#4(xYqhH=dUI@hDQKs;mq^m#Uv7rx?`a7v<=gm*9a z%tz0NH_D-C>BBq6Q*1#E(Ywh<#OY@8;AC<}@ljIS=W@CRme%!^o zGY;)L**2;Z)>9v2Z%}rT@bZY8+y^e%*D6|s4=fZt?3yE7C$NjUkl`=mW41aDxgAA* zCCj^fS`0x0&G!eP&p!0o82WE7I_(kUdna^aeKr1&DelhmF=l7JPk2T?Ie1rWtDWEH zF&9b~C(vCKyV)>@VS@ys+JfLVA0<^(#SF&hTVJ66S|%QfYj`Ezmfb zp7i!=y-G|}oIX~9oATd|@k}usDwk}Yqz<_64&VlLZ5`^? z0yn6u_Ek^)b@iU!Jw0x+-a)^A^O!UB-jy{*{)d%5J&yACJN>^E%c%9Q?9h1RzQHW> zo~1K#Vrj3okPUKVm(*AB!tr4OIr8zae7mo7S1dXxTPBJ!(BhT3t51;JYzNTZ{-IK)qJzpk`qK5~ac|r3-|~D3w8R3p@f!H?9=lH$S{CcJOQR4lwx+VAyf4y>9 z^KHZ`FCk8OaVW>{veIG7^s*natnL#$U&Xi?A*XLIIb2t925+~?@~)TpSn!hD8>~Mi zJ@6j#bl+I|5_M0q7bf~>&TwUym7aii(3*T6BX+M4UB|x7Hgw*I&I@%X;b&M@{uMZR zazsj&#gkfiawQ*?!%tByx=445|6j3X_cUEb-n_|ZbXaY_+1Uu$WNxe&WG_m5nDal$ zuSxuFNiflS1@s<1wI>Vc$3l@g1^vg}(+9YFdOvqLyE)~MKc{GIb;!3DGw8`SUzfJ{ zy0p{U2~KxjVSO{V=0Eq%Mb+ZJWCcH)J9BU2qiWcrI1mrVMy-w1l-~6%$!x-7UypUP zliMG+pVv`Wvd`ZA5`D|}rEkuPSsxhqVedSSy>oy$bU$;b>t7fB(|jrai*iS5KTGqb z9n;Ja@(*f$A_ityu`^n?>$mt6_%q&sKbot8HGMD-Wqn&}i%%oXK|7gewnM+6=#s`q zXlEC5&k*xdo_VStn&!ZR9K_?B;o)BNOb>fD$PXiV@nFC2XJXIX8>YXKk;B9`a36!U zJIP&U;~|sjqSfcdd>Z>uHYfQQIUk_h#&-?eGq#6)Gv<{g)AP@yCtFi8Q;&ZBqraDa z%#|*SVOycos$-cNaK%4Yi_Yk4Ofn}`#Io^VF4{E5T=X)upJ&>aoaFmuWL)&x`c)^_ zf-kt_$f*g>5hwgP0>8DVGF9Mm+*?mBPp2pEWqxRaAL{oB?@n~+k(Ky?YR_5!knWN{ zV*L;rAM#a+|9=jhld-@nb1Zu?{EROL9($sHR?fyVv=iX)*=Q!N{s=eG zTRa$|ykbGcpZU;VKIADLK=(GE9t%VCU{BS~F+rcilWufL2l`5DU)7g?Zee=8S?AYR zAO0Zfrb1y=IO4m^FfWqFx;7@n7{WjSK ziUrtg=d&PgsGs$#pZ{@){Am>%8h>Wh#zvhVxCPuB*z;8%xqtWX*7~p1tBQGp`mA97(OFcT*LW9ga1Yf*ble%DqxuHEHvUAoXdN@<@7SL6 z0-6b?&Zvs#;dl^@Nx{%_w+_mB$MEMr637Fx#TaZ$l7IdfG94ROU%CQ(7l4~!Rsi!q z1Mfj-FPKv}gTHVQPD%U#!P;{l_&8Z4W|y{4cyG?{KT=GN<@YBV89vZ^Lmzfz?YG%) ze+K*`%F77PjOp!5)onA0`skJz^Msy@M_-~0_dXOYF05g(c8a2{Wbt`$k$+w|24i1( zM}DLebMXdW)Wy8XPVvS+8{AzLtC^8ASG>_P(R(3%P&s@E7tvcZRJk8fX3(cgFh&CY z4@KIqWp1`PYS5!LCMpSG)IaG|jWy}-(>~v?4CxV-!$(CPiQLru73hNoleta0&S2V( zvJa!!d%@H*Y~#3KpN&TG1z^j-PuVik3DV0d$GejB!Sj@f^`ocbE*9!S`6lu%WX!kU zNRU@^T1N!>Uwo*hyyk}w|J|ahZ(}bg&d%+7v~yN&y@8*#;89Xr>nNi(*bA7UJ6g-_ z=(YBhmqQzt>M7}W{Fvxi%}>!%Kp)|rp*=f?KqtxKd}yRP@`J0tnpdCaJBS-lUG+_U zQ9bQl1iDyu!Plv~5M3URY#wa%ywvZS_BE68x~M zX96UjEfxD27YD2?*J88l4j~IOk?>~lj6LkLflPs)+WLivvwhqhC`C^?(bjFvdhF-S zppEeQPPwl}?W^rNepj15&g6J@A2EqQUr?MY5 zqaU*8C7*&T9>2rqZ3eytybb0#?R840i6%NPFL=NEx?(1#b+qJQ_8OrFSdOnwclOW* z`++m?5WXKJwnBDp(09R-uDl8yIqOb*Z36l(ZxpU!8Qu(h@$V}*1@zvtIE>T={nA*- z`#4-f+d;qBC!K-AY`8`0NG4@lvR<4~mX-eCr_Hop2mz*DD3*;B_Cv?`@o zyk$cN7!#G8*J+pSl26u+m}=}6!Pc3ph33w9*=$H>>WDSx4kGNHshGQRc~9y*<3x2X zBkn*lt8qvC9_u52+|gIjQTu1L=!)b})IbDqUycPclzy40*(X935V`tAlg9 z9o9B*{B^Q60UrdXin79Qnokqn3Gs;dBR5Vn-i0Xl1jH7XV%S7adPjyk!6}Js{RVyw zohka|3vTW}m+$DH4_a%5;R((;VD^EZ_&(2UwY)mQ`kTFmC6XzfCy_4YetMX8U(()_i-B?bOxm+(vwo$E@1EAa#`IoBu{g>3nS;^xp@$;$ zi+zr6V)b-R^j|bHq)2R{e}L% zb28WMr3PyK{o9o!8O5r#?=~+Xzm&XR+H`%YBY-o5Rjm z*(zYI9pGMF-)}A+>UrGCQy+8uGz_;k`y{sg=ci&ORX6w@^g;N&o&BntvC%~5z3p1h zwtKw;9b=O7>_E?$F%5%7uQTrvuPYnA=yi;#kI6*B(qS=lP#<-^D#=-@wFCWgt_{}? zsiXG552q-E?K_Sp87I`&P%eQ5M6?tpDFA?l~*iE4>T6N=30lUuK_)J z2d=U-$Wqp|MNTH$mgtePb_F*a9@GH$C~+#?kPz(G)EpD6AUYp zL+#AF_#Xy32LFt;x@c3u?-RgY5Wm~w~y~{d2YHm15ske#|&yJ8t73tj!Vc_STUv zrHAt==zl)<+4YAp&mkv=8N=}EPzK3qV6D<^640}14tdjim3L(_$Uw^SM0DCT@Wn>K zOU8$&|Em`76yK_ID0(~Vz{Fx(mwsa}M1}vR0e5z#nmq^6X`R1stNx=$dt&Culpa=F zf-idX!w>o41aBW>()OFO&)mS2ZGF1p`9S+y^^i{|K|(&6as$X#Nw#ewl6TsQf$ z`DQSq_?!e+@aQ*V3Lj{Et8sm6M`oR_%cAS#+mZYTw&bRgx)sn%b$=uotLsAt8s=h` zcTQt4In?Pn96PLhB#~+T))-&Q$BixJiejEcPF`p3P4TzRYeZQaA{eHZ@~Zb?j2v`1 zIwZ}y*zKL1hX0mUcK_Zh^_Zv~7fI$NJr{0T6Y0)8;XV8Laq7?YJczwhd1$~MK*NY| z{Q|LV>`lRI^d)g(lAWIiKh3@3r{Ui>{g@7icZMg~k!tKD>$gZGyoAqd=_|WOz!_rA zy%tw!_T|V8!+Vi4s|y1Bu+?kmzslhEb8~NwercWrj_$0Ntx8OJf!K2P_2<5~Ui%E% z=zn6ZbI=ZQ2y`qd8acUWx-!Y){#IBdxta#R08j{vC?$ zgx@;D>SBV37h&!_Og_V(8N6VMHH=r{?M7DO&nC}_&dZD_2WXtQCC=$&;>4e=)LAZ_ zFJf;Bz3-*|2Xu$H=3IFsrM*!3d4uOFcexqC{u@z_r1<+OuQd{I$noT*_WE@z_$`}= zZBT?!YsL`^TlLAu#yvPW^rrZqD=Kc~+tEJq(DfDd{B%_NDmi?6#TmKBg_H6E9E>&$ zGZ)5nX76zHy;?6UmfXt6Ae|uEiAKR#Rh>YtgELgYSw*|9XTRLZs?G#hUu&&&r`BZ3 zHFz4kX~C{rExz%|MO72{!gUVN;&|3f#mEKtkuPKFSu!zcb3@^~vT?J5zpU;)qu3Pb zgd*;|d8V&hHcFg(S59*VH+krk=h2SgP6|DD=RlpWTX*sZ#%XNDuuoR)xaXDVvI*;- zbGCKD_U$-wFWiNr>ZwoD{#fD#tiL@+tc}jLM+dKGo)f&3$=;^C3GAy1|8D)w{;c** z>$P6QN7|!jS)OqY(7q4v2b>)U*5x^ipW?f;?g;0m&=^%)teeew@RY3_@Ix}9cR|ia zm&0KxYmcX9>`|)B+Q`z9;{Nw=uf+1^d)TWS8SFwQsL#qvxr(;+cagu_{lEXanYgXm z6idp_pgatm*=RZxU25lsL(q67zga`D&#!zY1|8E^lAlO%ODX;)UJf7G;lgFC@2FR* zM{g;I(6r6(=wHuz&&j(XuLKI>J5G+ClFq6le-b!pjM7d)^kr<;3kGAeM|Y2lzW9uY zLueS*^DuAQeAtpp!BtH8OVDkhITDw@cs}2=@wtmS`;Z6We!H2l^b+iM&_*|Hp?}Hq z7vl`tGOueu_rP>=fB1&{hmZ@=)|gS|?g5_P#9c=ZL6z7=icSG0YVE)Dvq{+;#vx0pVue~unS@#I=jy3ha_uY*t_Kg#qWn$Jt_9kntg^%Pm?$iE;@=xi$ zQT&P4&n_EZF?4p!q|rCXl-iU$yK$7oJ}Z)|V??pz%-<6i$ua9BTL&LG_a?kpzz<4{ zTYEEWSZuZzt<5G{$#J}`FC}@q5_wjcuanPR_y#iQ?qSn^FyHKQ_&UmI`kI8njG?I_f!QG8r`SG~!v%OVgG#B;ggJ|Q?hXVK& z=tBYg3-r~lzcVqNt8xEClSzLKuC;YNbHDaMv0KIiJx*?9YcpzImW`-5E%~*&u#ub` zWSHaCrs(6^P^|t^VnUqVF>3Ghl+8iB1Z^l5uc%nQakZoQPIqC1@1Ky}#Nxda+(V)G zi|JSk)=|J$%tg?T;2T|N&oU(weKxK`?W;}2d1MFrY<}0EU1Pdg3s$fmD#q)l;w-S@ zXiIlVqSQ;%ZBE)Y6*n>w{fs@ADSD|N(ihHe;SH*f$!7Kh;ZM*`c3?kifdlzxu|L+L zPn26F#T}*foP|ziZZ_KMUyzwc4$zPBuCkOiRV6*wvoz0|L%*B(onT#-Y`vL0D3rtY zUJ#Fh^E~DZuasuZx!~CC)(;lN$Uj8oLu6))*6nFGh@@mOYuo(s71dZ z4@i|sM0FRMs@S5y`1B{rGcoTI-I7Z5G#WtvgI9ERT{GeC*KpC9MP6f*dcR zp>nw>e~a?D3y0Of*BUCwHt+m-_Vd=xV zV@-lMHhe%s8o$Rmk6LDZ$vnPNbN0gcZcy}?!cqlzWn%^2HEom+AYwL$Eno;df#v`nq>{PojNhV__u<(0&b#+Pl3u8nU9 z#&ppi({02J3RW9yNo=xs5uKZ1ZN&6Z!ocBO&0weL;C(xDcdv~?OOY|*U(TS50FAM$#;W5{s>?;~b?BWw6U(e`(vfq(A^{FsiFt>V42uON0tG*WD3 zCHoM}1IX&gP=?;(tAy|EI}^wcyzQ31e$wJDI`7Vv&H8k>9D69-x1ziRdr~W+S@<$) zX&3It2JlXq1{(rln4NLBU=HdZ1N3jn1Le|OCun~Ip=CIx3 zhP^R9ZP%Ip)&=pH`EQh0{EckA>-hU7aLbwY7SEQAwJCq2$NPJEr!t@5`&TKGp^Sdt z8vL$uzXe0@4Zp)MqQDStK|5K>z~32VxZ^q}e1bB+K^gY(W|XOzh0E_#2L4asVt>b` zanWzX?=UWvvvAo;8Tc@x%)D8+G+P$@#`Ti5iz%Ov=#rF1pd+zsj z{%^x?=m{U9(6)mquw%=8o|9S5Wui~lkF~O2Mc#-OzQ_IzUavG2C5`8gB6sNW)RS*G zo@?AD_$?Vpm}N^OAL2LXZ#ZueLk22SHeUq$;W|50E^7>S^4@dfFwut|o9_YDioyRU!fjRg8- zXXDk#vSB<5|D_R!|G*shcY0y`v5!MI3t!~BbOHKm{0LUehxLg$V7>b-V5NYi@u=|z za-~l~W8p8jfzHHdM!&r&ovHElcCVo(+{ahgW0fup`WWz{@e;hy9%8s(7xO~#<^8!D z)=kol<@;msVih{Mza^O`KjUT+{SCOp=Z*DXdKqETcc zicA-wfabXo?l<;QfgK<|?0&srjp~Y5wI*ig^at&D(3~Gbx2#9MrL1mw16pa`*Szz| z*O&S8z4Xn@J|dwdjoI%|p7VXBn<8#5m2MK9G%vYvunN9pir6)_yvmBE&wfYy&l&Ii zjB$;Fx{wahd7=0EvYCv(1Y@Ud9`)z9L;aC`0v@IP^hfjRY#s;a^8*>Ik2I`N`=ZfD zUYC6|P1A5)*$3D7XZuxGau|O93;bS!e9LBnpLRZn$96ssWaKhmMzlvE`c*+!J6HR9 z?*h77V^?&PZjwzP`UvLt$RiNo`7i$8!b5%3``1G6U-AEzz7r1Ob3m8C)&O^Kiw*|- zCcl>Dw|FhM(jVe^U5Mwm^4!faUh1!*h4686k0&{D{Dp_XyrX^uyiL>IU-;{*00+ta zQhd0gBWpD)w?AjLvf8V_M&H)0`zZstRb23V(~C`%iwnoVCThbbnr~vMdrfbx==`Wz zwnlIR9Z`kcNe5{>sLz+1QPvr;sqt_reTJQq{?-MjFT@9M;jC(EiQ08KT=J~_rB%d) zR4|4l(@{IOsJ!^t1#UV!ZhZ*Yzmn@`iAM;_SQU9)xF;Q)qKw@mmKH&uiJ`W?S2H&_ z9UM&^ys*q4yB+X!19If}rM?An_FJ=bQ5Ads!5k#~olVd_xEB2CI5U+Zx1#2RFrN73 zI3x0?d>)4To$$YD523yEFUUZ>=_qMllg$z2t(Wgk`E%{qrJTwH^IG}-3fk;sPTPZx zfu9k&H4%ezIeJiQvp359E4g3D{@v!&OZ_#h*&2{T`R)Wa;Hm0hpO48tX*KKf8SF2< z?YyTsPh+zVIST8&U>?#~ndh%*-1uuB)cQ|rWbsY3`Lzqv>zd%5o(J;0cxqfW5T7^7 zSoH=qP6HhVZdQlsoz`~fHE8I@vuuxFMZU+-cj{r2-m|W5=9@KnA>h59={M{1!jGGW zQ1IkOkPje;J0TvBHIO?SsZAf#6&;^d1jl3X=GT ze~~^Zo{f96S&wy(k;89{^{X8N=k&!6oV7o6)1e9(_^|LGM%-4J@gEE?*?pM zkMFDCus7lK9n?QWGp?+xp@%Bb$T(EHzn=EAX?_)^8zJoDh1#)$`a66eBM17d3x zFDe+*@G}-q7YFa23%1%5>;d4ZE_7tvB)qpe*NopJFW*lLUdZ1Q^Zf~yZcveD)}JX~ zqxc$}ftK$reD*o)YmC{v5yPw{`p6m5J($dOn<{hrV3LVacv^a6i0IBr+OzZ(?s~6s zt}n|6HQvHLCynnn^KS`f{S%(M$n7Q{Q-&OF_@|mW$?0|l`JQ^n-zGn07x~`gUzLn0 z7eg;O-jcMRjXcdgA%>i9Pm%LY`Q8qW2ls!hCO4dL(%gYAXD)0X<{rv5(%=8&^YL1A z=u%=O-p@DVeVG0F9-VRfKJO(b>^-1+I~$1~vHG;}A2jwjclEMtkA&{1_s4Amb)~0o zY*ZPwc?KBC?OAlVivdu(f(;(|OhUP9JL!G<&J6R0;!{+2!7HxaYSwzP#R6F9huU?_ zLD=BKdZx2NaT0g~?qB&(*y$^=p*-he#)T7g_S!E@^8e@7=G+kCs+E2A^HV zyn5;zjgzN-(3m`%1y1kvQ9EB8+3~ZqFP?C&sV$dSY>q!j>=J7V^fL01(<{^8*I&pq z%T`7o;MZl}23vVgdLHxTN6=F?{x;zebMPW#a9gqNRp>C3VIOu?&#&?RS0fY9IK?_8uU(}D4`bHkok>XCmn%yL)FQSOB~%GJ+NE)5Q|;k|v1a&>c*yLygt@j1#R<|x-ZN4X^B zbl-bjgCar(!BBMJhu_c{6vJXq{9o1ie+#1ta)OQ{5e~!EK@#imuzz+()lersg+_!fKSE;alE^vev~6B@Vu=$`)c zztZ<`8x99YN9l@c#_dOJJ4beC+$TeIzk_WZ^jY|;UDZEHzFxuHYiXDoUdI@{&2-fY zj_`<>BRgn6Z{hhm1Ybn@ub^YZe5px#WVKn15S7)2&>#j@$VA!3G8D-xaNQO+xt&6*pM z9Gxwfw-tw^CleV@Jbf76I+{Bj8S{B68Q1eqmOFby_kh07QeJ(QUQH5s!`aB8U-M&( z&?!6c$#kPLcDOlcRX&4HHyIzHeEZG{<`elkR0chD$ucqIRb|jAmn`FaLz!;$$tBC+ ztF>^@5tl5Zv7xpY`TY5z0aRx+0}Cl2e}O>}Vop;%jtwX*s8o|eO(>u*teidjh}p5>mv-JIv> zr3uCAX5+`pm5p!51`?jyA0>~+nCt+xEnC{-{(~Qsi###rbUDf$>)DvbwQLObgY!IN zJ-?edW`L2^F*aF_l>|fZ&X?tznT`SYx3Y;Zqy6miaqWPNF#eWOUBhztT6=kJFCoAj?zb z16fdCi)Om7;v;QXJ_cpbHCo>k)Q<3wy&L>f{j6XAbbp^+@0=wcfSz~x&pX-k?*cCR z2!EDjuy0K7n?voc=6yh8$&nqS$WM}SDjKVO@hy;f;UXLaXR#K25R&in&`Hk(Yo`yZXLu_)+4OJyM3UV#V}5<|LOEe&PR~ULzHIy1sXAIyw37#Q z=KD+tzqO%$hVfbFfphNDCFC%}Dls?OZF_xtZP4tg(v`=(jA zcl&kjCT?Rc{gn3K-=*^h)SWFC@lczaLv8-Jav?rG|GJ}v^24+e8}S1XU+b?GE-60YaWNs z*YsVBUY=);EOs`tTc49NO=HL2QODnf8_g{>k`vbR_AWbM6F*+`fL{==!OhAH_%N;y zGRBZ`@SweM+8d`W{5nq+z^?#)1@L1m+>V}1M3pDTn0xR8PgKUtouy>_Hs&;9EQtZG z*U?sRMFYVU-u?eEjrYC2EOP$@IR|s#)xPjsrENzUx*Zi{5A@mzlo*!~7FUUi}VN~ZKL&_ntT=E(53`Y`b$*9VQ^EkEUW z+Tz1-bl#I^jbQZmd+p@G)8?)yR>2CZvD}`e)hXgoEwp>r#|H3!!w{;d+Iq==` zC;d&;(AA*V1D%OYfuHmX%o*h4WB*04V>vhP9RH!~?@v=7+7s`_C$2bs#nyBV-EX$0 zV|7POqBFK-dFv_j!?LNENABr_Il2;`R6N5PBZ@7c+*`5qQM0`DOFmy78zc55ue;9- zIi%e^c=Fjge{KtXlFg@F16Aht>^Y`{*@ND}{v{_F&n^G;9;*_& zqeod653r2*Y}p1g@3*u3Kkw)vJi4Jb`ib#2jl%~`UtG9dVfxaSu~*klpOia5^Lf`F zP3QDWvZ_X=xf4Nl>e20-X@Yl0cg>^x-6nQJocNT5>6Dk~k8klv5by5s*pLt7MJz8i z$YfM^?+Hc~F#ZKSAvoN@x$(d_dA-onPmnKH z^XAR)Vme2e?0w0W-* zp|8dGu6@7PX!R$uT`b++C_OkG<6ZRr34dR*Ik;o*3H0|t=7)=QtK>_(QlG&2P0Ojz zkNmsqv-DTME2qc$?B3qpjE$>J2R^F~?DuSKhIzJ@-}q+XUkBqS%38Iu&s3xwlsMokH%bxufcT zh2{U>99{2)u9}}j+kR-6Gf(5gduse%?8(iHgS#06cQGzDLDyc!K^C2wAxGZj=+id7 zwU0?X&Xzx2pk9G`1?m;3SD;>jdIjngsAuuq4v$Y9j<)STL|WaiE1v5pYsmH%VkU?q zx)XhN#Ar-MIRBvBYUEHP9|AtBA=Zz4%Z?Ghf1maIYH-@=^ZF5gU-y48SCCT%efjw& zJ?mnQ!RCl|o6j>=KT|mG^IJ2qWJ71c9-)lJapwVYN*&AEJt)ow?Px<6tBm06^4n1k z8Qrx;PHpI~y`CqoUr~3;(|odQ?}ttQ@Wa@iPctqLaJJ~lro{NW8?Q45cZkmc>?Hna zowLy0<@WDm3EQUjU{&rq^VANNO%~b1uznoMrm54KK`#0G$0@IJsw0>|d2-Tf&anMX zgAaYzS(9@46#7as`>d1MOf2GL_Br;bcheuvmazA{qHcu!H{C_67-)XSN4(#HSIxX% zLCni@*qgSmdo>o|6MoU;cKsc_;d>h6*=jbE6 z7k_0xh+hGp#ec^`@puRx$KkPC$B4)JTm0AGqP6(D3w%^(A*4E2Ue8<}zahpsQms3L z`)|@0{rx0;(fV}EWGjobEgXn3N~wLp+Qocb!EZC_g&Qy;$n$%A+4s~Yed(1VeTaQeiDVs$}WSD(+{4-U{|FK+Tozm>xVwC4Edc&{7 z`?b(}H9Y&T+^@SA+(j$=2gLHXr#CV7#K+_1_2ewQJ)eP=J$BsfC?t!D>f>vymTsW%qIrjI6sJ;3_sw1FxI8-RL0t4=-5N$jW(vEd;c27e8%Zm&Uppr zAgb{j3tzP)8?lSrfd_}T>3kPHxg0V!U59fXw*7j)j_g*oCAm8UKUDAV@Bm|QLu%y| z+z$Mb;OzhA{Hg78@LTQbec+SkePNy7|0K4d-s_+2pvix9JixD*`(<>lo=?D!4C@!p zpiQlH+TcSg^k@FzJ7d>85wni7Qn(bibSv*A}{?2|DSZ5 z-s>E*N=cUkmwDiEd@2WKtiLkM=i+6;tcmN+G47?ZbtdS?U>ti1TE=NlbY^bzCawJG zE(rZo`?uKklT}&zJF|VoLa5XNV5|MF_+u(T|6T!(a&U3xJc ztUs|aw1-I^OkhRK)?%2qI@c%OJ_~P;!Q1EO;H~)5^_t_0_^=o}lFd2e`qno=OVIQW zXZTcUvrV}gh`*>U-#@QSI0^TFUfPS5OO||g!?h}s@%9(KT$4!fN|mW8Wi)Z=Q`IYJWiB9pI1&6>P+on1~?|c zd6GUlToX~@8pb=&ohQqqcJFTNWk*A;9b2iVHKOoxYsezL1o<{6?D}5kVJ%&9Is7q; z8rf6Jt6l9m^-@=RY#Jkn%8N^f%QYpH-B)(`q1O6zpWye3j!K)8lYkQX8X2o+Y z9Up$BC7DQgua+xIny*h&{!DpZsW{PY`*_xe6U@UZtF~v)!zaHxEfeaG`Vz>2Xe^u! zdv*cdOQF5+{&Dy2*ki;#*|XBH=k_Y_(`IM}52o=m7vc9kf3LC@U&=C|$mZhjG0C0e zIpO2}^Y{^e-t?_piG1b~G3$Rz{W0rc;uFy2oP}`yH`O}>tu$6oo@!48f45!To(gnL z9rc30YeRom@pn*uh`KE~2WRN+>GG?`rvHwI>Q;yTt`Gg4;BVog`9uBbKJ9oRf1~&y zpHXtJ{GJElLoL4c$H$d#&&gPBmJeyd#2Ak9AuY>!-sLzZbl*W;9-kL6e$1K9R>24H zgYvC*Y|oB4K3Cps$FBT8%i{Yu|NrLxA7gUXCmBQ6i_Yqc_Bhp-{!^|mva96BQ-3Co zyq9_1kKtthLh>a$FEyoiCagY@Ev1;-(TAq>O0XwDSvwyC2OYD2O2^1=cb2x$EB?CI z$-DH7)+2^EWj7yXYGTG4@!@!L!8s>5teHLLO*?+&+a|zOb>=Fs{_cF~r|++FBG2w` z+}FPchi3MPvyQee!bP@*@CtAu4u2%jU82XE(MmW^e#amCwBhy}6(1?v!Nn;|`0vF( z@j^Td^Ne<_ep5^?=h3a~KwFy=No@!66~j)H{!kw!qtXS$j1YftkF~|JQ?c){L7i0Eb zuXFKr_^ov|UOGtU>7|2$bMiV{pUh3zwOW>St?lQ&qeg!#Ue@t_0zN)vX~)`kd>MLa zG3)>2*(1?w%ri0RE3-qnFe+Kcf&*hXpmE^S_#QfIS-RTHot6rvT9Q_68_8Z8CrPYDR_eW;oDoo+mUZqz*Q~PP z_v%OY-#fY`eEHTI^dxwn@cZxrc&q(mto`o4sRCI!TsVer?s@3p@X}h*<)t}>e}{Ou zn8pb(3e+tC$Ko>yKGS2>coXeO#w9;d<;f+Ir`w za*Slix#!xKf79fmE#|D^@;c%H9-8ZCKBbm^9GN=0lGFC0W)VkHLy zT<)el=}4^s1Z(1N9UX*=V#@?0z=wQz+JhQbon)eD*Fym;?PsSO72+y*_=<+ zz8=s!!4*vDb@^<>;-5(EWML5%SzHglAXX- za{RdXo!UP5LRc1Tu1zaX^UQAWFCs_Vz?r$8HctBbS#l)41v001vX8Zv3CrwSA2w<; zFMf)5Yndn3F;9efE53@KierfH=p)|g(ZaQ+VJYS47rqwwqCRlOWlTK5jvI>^#WBw0 zci=lqkf%&B!_qaE;!l{@DkJ^{e3sr1^M7_b;(M6a_abLO+qy48^#hpUa-w(VHyyo= z*^{rOUy_4!nV1s z$yD}99+Iq!r9)(|X+0rZy3TJ;a#6iKm|Kj8Y!6CrD4r<3oqSBtel8d~8#)`#0^~E0 zN5PQKGMOfipATPpSp8o84cBk!Udj1pt9#uXF1@OLN}sBal6S?FXv{I^+A$s;-)c`| z+}B;mywjNpa$waXKTiJJQ>q`##p<(@&Az;F3jPVVeP4IDo%a25-FfGi+coR?X8(E4 zf1cPjx1TQ?ya$)L{D7I@J@uu71K*zLAl)12V)aw9o=m*?+;aAW!#_cL|0m!TeR$%N zY`gvkhLCS(lP5NKeHvS}_{K!{{s%HwdM(&WZHf;X`TMPPKN1d}D zS)V%lku2la<$xyl6yum&Tzni~MA06wa}~dS?ACsmb;C5Sy{c`rXc~UjwaUl)q^xS?AViIw2`5Whpq2mB|1cQoZ`;JukI}2rHuRMw{I(SXB!*a zLOxSHS3S*PhkSid@0UMI`T9A^KMx({*YAIz-?pdv+9%pV{k3=OOtoek8rR;jbu71i zYeDl8`H-Mjj?V`2YUh}vb0f8U*YT<6li-u$*>XO;d^r0))|y>rX;Wo-kUjRC9^6)F zodcJB&{bnkd`(bB<5T@hXOE`R*(27+$vJ3iBgHtcE?5Ucb?QQOnyJ%#i8^O2|Aq^D z>7&}{%-+)2nQgaz9nm;u&to4hoQGz@M>r6tVf{hwtTuTFEZyeKpquz4x}<=6{G&Tk zF=%)Eqg%(Cr)c*v=$7?qmxXrO5zZfs)bOe0c^#j6J_$Z4KFxeq@=5dl-F$A~b0eP? zK0m|fJ$!zaPY0ivxp^!$Mdw>BZCas6Yz{gfdlTHd!M*m5;Zz*lYvFs(6z(^JcgDv( z1MV4c&wzUd+%w>w0rw2JXTUuJ?ip~;fO`hqGvJ;9_YAmaz&!)*8F0^ld&c4(pTd2O z#l0Ea<8$D?H^lGNA%0)D<7n!_9dpabSg1~CsLna+oV!FF=@+e;`XBhD9Up1UVjoPZYm{^-Lb zbBNDjJ`;Q-^Us>Zh{jV7^qIWl(TnuTM2LoWg=qK!G<@L_G&~%t z(;KRDoI1xZQOD7{B6Scs6kZe1TX=1z{=^)3nFsp|t-cPd=B_7|&0!bo&Lcf<<-IWn zZ6B*m?ezO%pM6iRJ>Ku|-!Gni&z*#--(%n3%;TQh*^c>#8SWv!7*-f&az;RqQOBFVU`cbtZZh5A4N-H*!A>T!t z|1BFiyk;2W=DUa6PrMA1G+hw?Roa8ZTw~cuhX};gLQY84_kIs z7w-f+u=SkX>-G>F?3~p*Z99mO!ww-XbI@SV8ggJ=hu=lM&&=1HUoXHzeo5i{Ht@)E z&cX5!{~veES)Z6-T%p3|0}~OG#3uN_jQw`KXHNBY`gPS_gI`xRnQZ^rdlRY?en-4! zUi*MLTc-K}ePthJ`nR&S$YNs{f8T#@JiZIh1v7x9HHF}%{c)xGl40fAmpq2$I3GH< z_kCM$=GjGS|NZ5(?1&G6%^k>1n71)xNc>$*Irn^3KDNPYlq>~(3;4UqhdUACZyU1H zf{)qdWyvXC4BJn(VUgGiVyF8bws4ipMSYozukV#lxkw)4X`Y%peZI6=+3=8!-?8V+ zF3nqSu#TMCCz0VKu_eTzS$jK~$l5V|MzK8nJvrd|nK-d0wajlragD2yt8?XE_UiiV z-o`v|5={bGNhWgSM{#nd=aM5Uf5h(T?osGach^_JjD$A)oU;M0?R{F*Q=m-w^{WIKr-uB8mP z_Zi^*h(5tTjhCV4+<56`97wkr z_J;KQUjMoETfsNkue38RAF=FC`6q~?+xfOMfvj36AA31@{>>iR%h~p!5_x_#Y*@m4zERWQ3#=Gd` z(-_58{J5}c-vSm5O#Krtb4RD=k1De@FPXPI)7Sz}%_rBRr=(M>S)V(fK(?4-U7Iq! z#nipvj~!QK<_%Vvjbkg>?>6|qmzz_?WOE<=jt=4<%xSI9`kZqiH`O+pjm6prr5lZT z8*q%-m`^4~{IdNs%Kjp4FpdWC8(2TQ=BYa7&ojg&y}EXT&Z&%@W-dOP-@yBhG375z z@EzDK$`K$PyNNzn`L5GCd)i;~JZtkfIUnV-A;&FtSBAAkW-P(SkVlO5R&hC>UOqZU zp)oDGbsceZ%i&|x7zlhMZmr_`mly-UwD;b~e$bwMIFFX_(RfZW&H~$3V=oxX7T+IZ zJRW{#nunv<4C0~qCO+DE3tp-X!Q(mfo4KbG2!y4XzrVD}hZ&6VN#M@zqv)k^E#HsY zQ6JGe!}6)AE#+e*?j(NR*C%R6&;L*K`PjsCpR>%-KWU%E!~PHq-OK9ae!|AsElYn< zxY~XxJ{MWV_k6LPl$iyCa~gJD(0;pk5Wo<;OToDC1=p7ea+7IHG?SamM6_43uW2Ru z$+Xv?{gO6vk+qU{tc84IY2_)aV^7|!FKS%9US7qWGy2^ycy;84#@-z}p!4nd7IWj$ z1bL&9Bm#8zrhkkvu6zo2=FgWm<}Z|cvGs4>OHQgo^UO_q@hKfzXjbj5GOG?QIUZXH=I6tH~clyOT zWcr`ZKk6<+4?SOPw&Gju<+BwXrS;Bk_CkBD{iJ8;c7BiA-^vMIg>F=PvUix*X8cyp z3C@1=OnLqseCC!ngva9Pz6?E?7oLhwb;+3>-Y zvVF|?Sz_9qO)8jb1AG~STYb9r<{J~8wyg#Dv4b}MZ?>iJao1nC@uBrw;vZd1lKQN7 z-EZ=)CG;-)+RS=&p?4Fr-d*@}U;i74g0UWI_E9}P#=6S7I#ovtfFTt@I9ACgTQVZX(^1Ttir*ao_z5-pFeeLs& z#(a8=a|WKqwwrGgrN5!9`cw_B$m0}_FO)?C$*D&SpM#;;+=TfJP<+uF=-;8oj2X~O21j6{wuCg%rZsbg$DIdr8b z{wM3Kn7M~%HJNkNUhnf{yIWkC@N;w2_|c&Fj8W>Wa2d z>`tCN3!X*jdJcc|Db5|qPraCXtUr#g>Qj_;YjVX$UTr>6D}GlYKWVeb$_nRd2A88# zC!igBUeI;I=gZOjf1$kiBD7i4Dr^+Aq-zBW9 zsy*gUD{HJH$T#pbvi9b8Sq8GE*f04r4EqOx3}{~Xy5)B_a@5W^=*Y8g63@cpDsvOG zoyPw@AAjl5Y5aThzhZXG!ap;n`~&I(=efq_YEyHvYfo)@c8`d)u>ZY&O!`Olq%Q(o zpDF7e2QT#ubv4$c8#O1!%va%y_6JW5-fHgi`F#|A_vU|Nir*S@rv@|r`)dAvH-9VU zbt~|U`64h*m42VUb*F8>BS-Jv{MVTq=nQ9lb@%#WYXfOKO4k|lHGf@e7`N(AC%Q!U zPIe$)o%kX&=iFNQ-@sP=5A!X1><+#ugUofpcLQHK$6R|C(?RV7bhzKA!~N739jdr1 zm%S@=MaGUF=5y9mn(wyS`AB_K|2|0hYIC|&O?k;^P+n_4mDhJLe@PcqQT71ej3eqe zo-6)HYqqbJM?>^j1U)jWb#s*3*1 z|L;?b>7#`J_qXvLo|VKafz_?HJb1^@wmf%HXdWM@EDsa_ZT{q3~1n? z{rGd`m!QuB(02p25c%QZm-@+gxBcAg*RwII)KTuDn0Z+1=5fVNB<(s(j z?9ms9PwLFuF_wrar}RZ@zMr<9_*Z*intx%Rf#@r_k}YHXWbo!*BRR`}XFF$M{hT=4 zCpa(FP@_I0KZ9CF%bvK4^{1cK~eM2WZPu~He~E5 zjwmL~-!qX#q_RV*g4*lCAlZ)Dx~&pIaqs4`sw^i?o8C3VfV)*;BFn*-3XMn%xV>3A zm0xgzDmjS(cW<_+P9SMZ+q6wfx}`zsd5(Tt9}|7W&laDl4)8Ze0{kaN4~riAL<8(qZW6x{C+hH;7mSrZSafou zXq0=9i5Hc`ldf^GokGl%gz*%yWby&)|6Z+)wq!Zut~wScYFjac4#t~hckUDpSaU~N zqx0>IenRlruep)`g>Q%Blwz+_@`KY3Z3vE28U2R;$N?ccRs1_4U93A0^(|azAAUl% zbz%ztxm*vjRVF0YB;)ilJ_gq7_3^xVjCW-`E6!gzO@!ywHF$RMFO0r|=Sp49SJl?T z#@Dl{IG)jU%#S|9^PKR^?;v0FyDpy3R0lk_P6a#8l znZ1f9ZPB`Lk?7c-v69Tydy7Anw>-7S;_f!#>SdXI=99`(a$lin?v;$sHykjB3x~DG zH7R%-Gy0)+^V`DXC)MVCn#;Y@tIXl)l-VyiGa)r=mDh;&2*YK64(;D7x5^uBL#rUaHAJ2&~-j(ru zmi!#*E|i~tJ2swx=bgec?F2mQcU?SF=5%$yb9S3K!@b5_{IY8^0eSUztouzFT6Wfyo9<7#mi@7;|VZ6 zpZvG)zJQlQF`LN9COR%#;m&z&qJCcweSJW-2m4yVCJJ@~wuy9v^%b+OjkHgf6zq5& z>>=!+U=v{rVH4%`osun6&mK~H((Q9&6l}X^VGlu*_uL!izTd`Ts}0EjXU{3m%_w7U zGP||6Ga*{b7q?3{;U{qz&p)R{F-4g{CAICgOGg zdY|9KParp(jlH#tF`hi^#)uy;*hY+#wJ77mHabz-J{slw3_cB$Qcip6dB(NFj|-pe zGRbzH?UbM5(goTp!6y^!6~&;9(MEXA7@Ylr-P~*KX6zRiC+zGi=FsKmKn(3pjfwMj zt;z?*UA2sj`3MHegXv->x;)Jgi=-IgyA{7@ZKy8A!Yk*W^^p&$ohW4zPQI?TejoI< z{OvXlhP*@g(ku4WYHwflSo`W~#o0nLt0WiXa}uul1jFrBFw{88Fcbk;81f7lLIe+mvVLx8vS1O_T7BpAk*U2$rw4N%NmGq5Ii`dy!(j!i1kk6?ap3s)F2U7|9uh$-P zfwrPKb|Lp5$K+KVy{~vm^0v8sb}&=1efL_hL- zSXfdP`l+}6TPVHIM!ov*E^?>K=O8Va_1B^=|4{nU;cH9>&UfKja)mEObWDdWgVG>eau)a-2HkNImGV@ zz0Q@Bp-;;FliHxpy!54a&-;G7Z)P0%cA^;UlxiCQS%v<`4#024d9hc;&WkCBOp-HT zYs{kIk+LjzJOuB@bvZUnh_7JG$avW)R(6LoW8W;TzP$D<7_nzMe>UeVSk8}`erXrm zkGZt_=b=BT8~Z#Nn7Ke*>C8Ci)>fH;VcA3$KFBY%HL;L39Bldpn}I6W{DWXaJKSFq%J7^0 zW!esOfFCwWBDbXD<%7cyeYNh50N=}GYlio06dx5YlZlm~zL8H?et7vo?$n-y&T(cp zXb-hX{@DYf(}UehTNjy6$v2`sw9!oa0aNLNJ+;q`@{atI^SzU|e9pTtwlFTnjD1}1 zd9$8_@9vK~+GWj$ZVovaoUIpZzoOQ7ziab1U>k~75}TlD(hOujsZ%_OO=%Rf_Fzp&UV)kB}GJAhqxrkr;pG|%Rbb=0l zGk$)R(HRrzar^?UjvnXPPMslkb|Abm*Z22MFDEJM*0Bq}7jh@M zAe9rIV}8zTPPwgm%6`s@Z9CU@Sb>ZDrSd;KDmrAI@U*jW5{cvfS$#c|lb%_4Utd>V zMh#YfwC`}yqB(2;4}$k6d|&U@-8qALmfrV|i5=$k!@Rqv)c-@&ESclFlU(sAhO^l3 zk)1UxJF7=_*6?JhbbH%d#k=wLfj{@DD1YOq?tUa!P7CdTi>|Vd?x6M0Xdl|!HK+Hv z#^LrJjTzW2OpjTb)fwZ3;}}@zoKiA94lI7e!s4b!x6%)U#jz_s`EzR$^N_I^0C&iTxYIk=y_AC<9kSHGo~EBBjHZ?mt5Zz9x_4`e?! zNvNmaHlI`QBTz4Oj`g1Vm>Vbk(LQTEH@6}_kLh)a!;4ZyOBeWKqLi_)j;);m)HHsDWnSNODxZb+c<#n7)qL!@Dl`>*P?dEwW!9E$kGXz4!C;Q< z!Lu{@5Ognr?Vqy9Siw+x6Q5SzjZbO6>Ztas9@L)K1JYNOoF?03BQutT_@QWbp>2Y% zC^e(KPvCL9ETbD0ADWU*nUEY3o5p1IOya*GvxJWz52*`Y(sle>yerG;I_tm|;Ueze zinodEsI1@ec8nE&1N*ge{aic?ZG>;=FN}kI$c4!3JM6q4D#X`=wf*65;2Cn}`MVrX z@9}FYXqe|u_~*zkWpT<7D@GZoJBE$oEJpvMVc%>+GWFU;L%P2{)9B;=T%3dUIaB>w zgOF$UV3s!X^YpdNKmS4G;jpj!5)aRn3()yXJUrJ|eYQN@UT{1-TEoN1n&*KJPma|u zKkJ__gbz#RQ(4LDe>b{RciP)MnwR+SB|f}Ry0rLfj<3c&A99Wmy|>3d4}7I{v)OF@ zPrAEC_UVn*Hk~znvR$Jh{wZg>TKjb0BhaJ+U;4X>^9&+(=2`L*gZ`1qR~{EPCrRD9F; z)pdW9;z5oSLVF?S(22a~=^t?3VPC$5#hx_$uq4A68yP;+GoDejRn( zzpv5kQcjiGM#T^vqkgk5hwiM+yYw2x>#!e98{}TzQLn&rxewAAiv+`A{U z^J|KOY8-1+_N^|POY`1+E6gtxd1lPveZ)>>&8<4~e2ZeC`X^iTtvtAj0lH-}rSFWs zl?QjSQy=PdnQb})Kdk+cxjCD<&DJ8i8@9 zz2`6=_CNV!UXQ=q!RDCcMwfh?#D-+$qg^L?p?j8fp6@e?7a-ThgVz7a*#Kfkaw8up zd{*~nPu{)P-@!V3yurL#aZYzUbxL=?(*9-o5G$&-HtFnBy|b(6ZRM1d|8~&kJS4xQG4GpFu8FCQ>Sxv6AGK{iboX6)PR^dc zY@1PDS?#Z@z5Xf5xhb9FoeDX>b$$0#MmbtsyAx`6oo|;o$oJ^odo`YSOr^|#`pBt` zoZ7HCxYdTsy}e2OG9TJdoZ4uU$=EiG`B~L}`xNKGc$ZRshwv^^Z08Q;gHbN&iC@-d zo5sy~c=Af8%op48`d+57kLY`kK27Eg{#?rIHGbtl*Ze}e%2}d39B$k@HKrlu_5M|T z9ur)TNk`Cb%AO}I2w9?j~+8Xq2^{cIZwbie-`qfsy+Ui$Z{c7vI zHEq2|Z6(HbDksDa<-JrqYFDdhRnMj_gD}knb}151{*?d8_a8dBc3?<|P=gu!+Z4RLW=SlwUn>dGKD_zVaW`FTaQJ zG|ef`Ic@r{j3=d-SLMHZXGPBDlv_b%#2=sK4x!|v@?$vI*UvXgO!ZRjWy~nQD0V@x z35aPdmDUMYgOil`uHsR7Pq}b@5R5XOFVuPVc+InT+ti8Y0^m3AiS;9<1Dk|-O>TGd z;=Bs^q&TO-+&GuQnH0{caE9fmWc zsZNCwo85|eo{&r;_IpCIdi5CfJ6iipo60nZmUxF<&D|Kx<179ybml>xU;1)1o71?@ zbQkRYG3FFI3zvOLcQyjscpHLWL1$511is)r331N$%*j4?KN-37>{%4Wd2;rI^D3M-;k=6SDorA9l-ES} zoK4*Qi{c%4Qe*IEDh3kL)uZ5%^CO%|_)V25nJ-=oT{fBRx;O6%#R$uy^wt9_Q={^inHNna6*Ly^G76EB#%*)Vo<_xIdw`{yX&C z(QLJx=Go89)9(Gg4)Z1-9&@2Q`sO#3lRIvEzze)9$K&cwlNQlJQqMykBF-i1S^2y< zXC9fi9hW~dq4OZvCS`rc`H+BrcUOcl+%H1CcpSo++Q1Gva7#rt`1|D)uk+by_&%IB zgYUzcGvq^%0R?kB$^C}N6!a$YLwOIUkO@)VojV|A{W_)aW-Q2w^_nmA1}-*h-3Dw@ zs~U%N)@7Rbrk&;n$&6mnNRO2nA5nScq#N)Gf+{j^CfZ!&Kb9S@At@6$R{M8Bodmaa=pqjGv0 z^GZL4c8$U4u2z%3YAyNypphn%p3+!Xx;l;WarN5qzFK8@=J+plR{Xcrw+9^Oi>Xg2 zw+?4gX`it|D~#n-$&G~^7CcXAJn$d)Dv_5^IU8hO^qRHSzUax2Gnw^7gL!OCNAfd* zTTbn?>-YXP^3?*Pj*V|OX~79tAR|9!`+B2zwkKu-Iho8kDZz8>`LfMw3}ZYS`9r%E ze$OSYG&lNO7jGQfsrDVe&+VJ@Ui4i%u5Eg5`K6}aU)OWS23$U`|Di3)!SCmC4%_7& ztK^pmd<-6G*U9m@G4u8Ej=jr|&5qm4icF2H(C@OWm`^s;tAlLVv!x;%ERScg0Xe@< z9=rqg%n`D{%Oihdldu@%;jM(tari$61Z)XZ8Py6^w7 zdDhq5W)AxE!)|Z*8J)kQoyhMMvzFq2`|L$IiMA+@9JxYrq$Qzy z+(a*pnb*tqD4AZ}NAbv*yK7;W+T5}?rQ96bq({@)7bIJHC0o{uZywF0vs=wIt&f@| z*{3C29&Wz{dn9{Ea&RKk(Yir-`1-BvYLYk?uju^xhGhDM&#BGc@!IxJmaye}GP?6w zxz=(f{la={uS6-IpFBIG`>Eb2IBgh<^2oRzOD|FOZ*|Year1V~Pw%Ff&mY+{kH|hKUfC@Cr6v}OX0b)MI|`Yxq`gn)s+E^VvN}o*sO{XO%hNNEh@^|dd9SP67g_rR zJLPP6v_jhzJxD*b=Rtm{j*X(+Q_3fgJ-J0TT2g1b2kdz?>er6#uRI?xN6Lpe{F&Nd zPA}*^ZHUKYha}}E^D-{gD}QEQaDSa!Ls|QyXNvV#qsQHQRaf@)c&)rZj=1qv%b_3k zcE_!Hj|?ik|H`#LY5)Ju>ucNizkD0C13e;B9ykXZ;+4XE+=lr3c)QZe*zuA01b(r+ zqQ0Oj`c>{7aux{p>&AXh|3lw)UJI~2=94G&>=oom_kW%%Pp~bb!xeer)+0sqf#gXM zdMnElWKXa^m`9K&SNc3hT9eh#%ETO6L6+;D=d+??;a}^1WA-3#lmjtJ<*m#)QQDw2 z*Myg02L;0iM~|6)YwMho3_F%Hu077FPs~|A9f->?E2o~BBd3(#S8F0<+e+EySC6H$ z+a)X3jHSDum8|-zS?Xn#?z7Yx!2Oanha^94maKAimXlQzl2teBEH<)gV4T|o$f+Uv zl`QPZo|J!qoIkQ1RKMS($G4g%tSokL;XEKT)NI-$t5&Fgo!`&?nUzyHE2rATW0xm% zho*Q-a%!Hr{E1|uI@RBP&(jl$g6HWwMXQddca5d?CWdrZm+q<F9!ZMfk`~Li^%5 z{Xg4C4nf9Jv7=Inuath)j)V0LIhR@AoGPIg-ZA-*ejC$YEWPRSwT$6Z>2}Gq>bU?{ z^v<8)$H{B=L*>9P&x4G6&75BLW1S#{-9N9x+dwc>qap1SKR zrQ@6;g(%a{eOAaeMM*6_GW(A%B8nUE+rhiB$uw5W5Xom2i{ed>DVvK;c@G~LN_#Keo<>a_~w0@ z58up*yYQI5q)$vf8Of(>%kt?`@1Of0v9cBUVG@1b{y}~%*51x7Dz_y0PTft240-$H zpXxUm$VLwaHES~@m#_$cbOA%v_F$EciJ=2_-_a0gOlu%ANrtjBlT+^io4rp1e<>8 zsI5K@sDCnLe-pFA9a8IBz@_LfvqSpzHZz#nru#71TN{-Bng05Ge>v?Ja_7^C?s86T ztK3cLVhVn~>K;eukMGH(wxPq<$rsV1vCTH7whh`gPu=L|@T7d$#1w_Rs!8d`jAWn9 zsVX~{+^d42#Upnxwu+whzQDZ?&4znF(7(N!TVkqS?o`G>ZZgpOCET>3V~%P@KIiAz#o@`MP^D*CdCv z2a{{j8aja=x!KbdxB~Z4R)n_(d zs&XpZEqR^AU%f@;pVL0Tv!mJtoBVF+)|MvS8KXQjmVVkzW<|JTjk^*W)!mFycPV^4lWGyIaGwkNZ9QEX`Hb*;lcVV6+M8!it4vQ@O0*{U$S(Pm z_D+w=CYif$${jb*I%Cs4_LJY%|I~%2GvaAr6ZfsQ*!8bltAxItkECZx_xsqsQ;Kb% zjgaR>x^EhrM&E^JWbd8u{->@FjbzA2C*RCe{P|6KPQR7<&JQa+T=vB>M`-4z8!Ge( zZ9+3~nuJDMwb!UUWa+ZJ^uQ~|q7>_{#bZ_v$xkYjjD1)3Ep0-x_2{z}4)O6(?;kV| z+F|XfeIhGQ!agbQXT`I@u3_8XWm42XD6v=WZ;0qyJnoHka4eCD*lgAU)ix z7=ghIb{_Y7G1ilPL5{h*Gfv`n*18N>Bb&6(FBrQVIIdlHf9NTX=SXYdj7hZVp2x9E zbk`QJlN_9L_uw|gvJf+Ho8lx`Gc)dZ?7((E4&n(1^`8Di-xinoylg0A?F!nVzJo`q zk@y4f5dOHE=4#2XRM+Am)7+bVrTE8~14Y(mrfFSvk;X@SXIdY(<{B*W+bG8K8hu}G zX0(nQERy3lAz9qi(3{oXQj)s?ujD(|o4ro&Zqd}2CihFO>{8v~BJh`dDR!uhg!+0$ zaBfh)uAQ5UjlQjKmbSLg*3GJ4TX((M-8xUZ#{9nUcTj$twhxs`pO@|PIkU9=xOtuS zd!lY)UQIIH`Z>`?&dR5VWtDj@PuT|ZHI1<+-)L`98leL=3h!T+q$LFu1rZjy!V+coyrwu`_sKlcU+U&C3uW< z1B;BxJD3==$lqlYrPPN?JDwWJ^V{vujO4$}eN(!7%9xS-*DUO?`J621`)Nm~{js}9 zpdZ2A(s4HSK2AgP(QtGcT0;JE55Q8155^xQ^HwJFjNjZr%s1uWp`$A~OTML+ks-MwFjT^3S(RKlm1zFL|YT zmy5kaS6rQ3Z!+!sMFT~vD?(qik9`wwADGf6WuSxbf6nv_@qc`t;hoCaxicsFpV{Q* z%(#-8D`V4~ZJXOwh7av;x9?`P{&4m7_n|@Bl#0pldDaQ_vc2Fifz4AxrG{JizEJMgLPMg&QyXs=_wn} z;|45u{G@{=V`olo?DtQnMi&hQ*^Az|RO3dEFi*wn`TpkSsvk0UjlSCCe6GA6J7327 z6Q*aFah|R&aIx^09+kYPnzQz@%5(mv=0aPQ`Q;My@tl878_*f^+xs6Y^BXcFqp8kC zc8v|5QlpE9nA@u*lZh=VnIqXKKW<*tkQnA34%(;(SJob!=Xy@KSfX)JPJS5qjaFMb zMfL0A!_F<6N?@B%hw+lXsum}+Z>fx#ae))Y%UFj*r>`bgyzryDRfget##l11yEe)% zPY}QJDm{gX8+92*_T`9pXF69UU;6@zWVe2d8HlVgn_eb2l{>DIyZ0P;P62c*UkEby)@$9 z)b2E~;8Bq^3~QMg!GRpI_ghd3yHHX+R?~hw$=NkMVIop4{FBf~3*V?Imj5#r9cFdxkO1->o zC)mGXyvWu{nN)(c26Zj}Z>Z2sN@EhNryboCE!_Y=M>BcBbdil?F3(?cYcQ){3*GKi zj52f!{fc>~T12DZ4SdCUhCWliPjWrO5A@;Im3ggSh$%p}A5c|YstL}mT_j9)(w zX#M<%`~~T;L362O&edbvm{L52o;OYXl;)xP=Y@}JrMD7y<@B2w z!2`FMtJ}z@O+NhF#1C#BImt>#=g_`;)?Y*SDiiP>%7};9zXfl=CBP(<U<3 zEp6l&*WP+L$M_ZCS~|NycF6CjjNqiW|7*v7IHv#E%XIe64a1ZZJSXs}3hoo46YU4| zWPU}z_5T!cDfmzV?C_B~-f(u$SLew?PMKf#{kytz?FW~SaZ!f2s+3vb`*8UBD?I}i z)HOAKx*JXL;t9p-9w=~6EO!ndpN--`!#nr;=JM})Whuk_!#8!)*{|BYx+Sg0y{+GG zzbS_tdGgJUM>Bhe3)p9~I!9!6o#Y*I0lp<(JIFLQ{)FVyLxpzL5l*#;aWabXGm;6& z4=1mjE~hN=g0j@13}xeO)yj^X9~b)G2>*;D=zI%*jgR(dJJ`_i^)hoim8+gxhjPLn z_HEHW^JHGgcH}j=*xi_hCo6Lbb8-6eT;{SPHV)>~p-hqwX&k}!4RBUW4f%mJrh^*G zV!v-i|HKki+beMrVy;Qw2l`-#;7i;FFq8bA#_tIH(GTi#4e`K-@iidgDVBT8x!$y9uh*)9mZCe>l9a}!{%G1v?BfATX zh3C(Y9n`&x2dysc409F?IG2W;ppPcq3$1m)6ut>;!)N46)0$C#!_pyQJ2Npwd$eu) z^7tzIY=vLV?TkKDjWv<=W7t->dQA5ID*As$x|Vlc{@rbb^`lRh-rU4H%Ja_mD<43v zmFL?EtH;9l$i2!KY3H^=k94FPw_s?;Y&mT_j85fRp_GEjZ&H9UX6xPUws>bbF@F@FWXJLblEgvde zH~M9dV_QEfUg_4SjO%{M42SFO!u5_qx{Pn;^>_^DLxtYaox;1DufsjQbmq8F+;{&U z|9)_vdkObtem@_$U;ASY_vp-K$zSo2wE>LwdRU7iPlGIN^6?2ySI#!FrpG7woL{57 zAfKbNq4M(O;qzp_*nOif9`AO2t@C!!M&XkF>e&hODOo04?4iOYkMnMS*0oQvjx)&> z`=KX;{xtL0MDx|B&gpC<`sVH~^qAHE=Xw0K{YTOz^cm)beHZL4{58B|EaziB8Tr2O zdq(p4I-K?7oiB2DTz9Z{Hks=>SDId7&`6lf$aP@kx1Y7YbE=CS>+WBWZ6`e}Su01(svsimO<9}4Tg6ms19j9BZ{+h4^$a+BJKg!`PqN{)4j5MYPhdwrP|0fl=)mVC|1O*anyYQ|z>t^sXImsEQ@Ycs*X}zV^YtX}T&}7jFMCotZ@rI(vJ(+`ijq zrG4;4-hi;qfj3;AMs`kOs$a4)&?oc~c{+es;Ey0*f`7Jip0V`ps2)pGx!lBP)LrB( zpTXC~o!FYkWRv--;x~6`tGdpYxp{w6}Q2Bg73=nnO$E& zZ`LpB=?z-*{xq9QfxdrLyrKQ+OkVtu5==()y++c_^1qm%>??vtXgUOD9inUxGLx;?&oe zONN0Na8Z5PvpFq}h+lo6aGU1`;D?V08UtUgI)f$}90O)y&r5qNSL%78URz7dC7Igx zYVY!kx^q@H&_?b4#rABNr|^(1T6&DM4z1wl^QWcBtgnx5J0N-@#v;&Uz!~$GZnN^w z#$%{`=Ew6ukI*6cJ)lWw5t@V+p~?B^(dqoT`*61Hv!F-h(6;|jfdlvk*USYtfa`YF z>8<Pp@~CW?2Mg*0SQbPJ6UZEB6Iuynb)LJ6vQes^F%{UK4s|FW_N}Qy z9188r&p2w5J=t)key6!z@`W?Q1Bz80Hp(|;ZIvOjV|0V={1WXep1ntBh(^Y0Q+~PTjZaf_ZuDGnoBPW#4nnVQYnN|pzz8OLh2QKq%lEtW5U)Op zKNa}k1Fghk_9w0~*IT;)SmHOPEam<`l?RrTuf(GFYp?No>)+*E2=l0YFWsX4ILF+p zs?Jx6v zsvZ4ql&e_T+lo$?QKV{<`Z4lD8{+Pl`H7HXSuHK=+oK4 z3GqZ@?0mTLPKZ9M&xe}??bo*bl+E*yKJ|$BQ;9cew!z5uW}kb%A$nOzY)!Vp@UMF^!WxIX}rbE$)2W<7RU}a-w1{>bJEc z=`9}XdZs$aqbIL9cbZC_hNe2tGfgoU(Vpmc^%U^Y`IHu9&%87wm^q$XIBlFST5#u8 z&z=_QomYKC_-F2C!eyYhv&MhB!#`_`AX7TMObO>zvtFizwFNSTGpS+!|0?Mj>3rEk ziLoK!gm?ybP9b4!jh(s&J)Ad_T)A6&eu{Hnlv&z3Vfh0*hVraeD`zOTvPX)~SNm}H z%Pw&;f;H6lq-%IboEh!W?mvlVc*dQ%;40YrD ztehsQw%-+9Vtl8XlX#-iKlXFb;mASGMLgl} zY^81J0h%KoXo=_!oX`$^LnD7O=L~6O9d+Qr6$QYpKW z0pIJux9tD5tQo}L&_gYc|E%y~$6ST8>KsGAq%ykW>sp;(87EJOXal=O=lpM%UEMEP zn#f#ljtYOWh|Q<$H@Rs_rS%iai#Ha|dkTIwKg~wzem$SEHoD}w-rF;un|vH`y#24+ zbN9Q)>4Q7VmnIjEL3K_WgeMDPA3QN4ExQnc@A54raFi&(DRlyWqGp?n|P&$I6%-rm{x zK6bo%E^ourse2X=1)g@YJZ}O|!~57#@HYHj%h&B?zFzHRF?oPE6WXYCazg9u0rPW~ zuWuJ$zk7U@dG`uZjcQwhfU*DM|Oj9>djc0pnPpQe)y^E*GliU=W%EQeFJYeeKUXF9rU{6q0||9 z2>!3|j!C?xoX2Lh*Yk=s5FadQ9TtyNpUZ?VqQjgEztQFje8`X0;fwKTCa0qqp&UWzb>r3E}I)zu8vT zzqxo=GY8(OGOn`gF(&!^4xnb>$P1Z{rl73YRO?0)zgc+O`BhqDc=o9eAqf=)*+ zuvQ5+aFt&xkMF{*eektmuYf1o)9hm7w+$&^g1!&~rKAWz8KfGzBDYq3v!#M;VsO_a||Zs&D=`GB?gu$A!_u>TAE zSr5TS)pjU#gaJ@P&AMoi|~we_vX?0-ih_pDh;t=!-t< z_4i`%cs_X#UpHgCP&n*gd46yhiFWN6Yj_d=MYFkcG@aaF@Xdl}`IB4WHF)fr?CQjl zJsVhS2)6@@e@MuFs*l?^uE1}Q*={etH;J!;HA=i(ybShjxL1yGe7WRe(C|UK@l@mp zv=#hc@H)OM+P+xm0)KQEPle~tpD$};ONB0g8?e>fwa36&33p~LtbgHYCx4ZH(!=dv zC6|$3oXdpY9o!aY@Qd+0@IErH9^Jf3HZFbQ17nZ2BiSq2;pnGS8pyv=@r&S)v2~X1 z#H+6bkBS-a`$jSURSKW~Zo4*Z5I&(1Cu^$xnQr`*ayr{>`H!=?|ET{p9vg3UG3ezB z?ay4dqN11MG$6e&4)neW`l5UnbmxS=m^^J$BcCSuVSa{DQ&msHzj0n1_Yc1@LR$l&s)6 z_^kteJ@0Dm>-O^l-^!P1$ApfJ+g>jh?wn0FJR0uH1((2iiRrcY7GCWBcaY8OSyLze zyGnP<=7~}j-!r(Sd@XJ-IKDIv*;mHoz~x4nW4X0F5*GrkLjugRA?d=d% ztK{=$$!2_$H+ufOiFMtcqDDo$(XL7Ml$&k5ML65%;^N?$ReGLt_E=K&*yAhvG~}z$ zd3AedpVmK(Ind-3Kom}Sd zk4)Y!8bIdl@%YaAHT|gYzE815tm*GDpO~(vmv;&mDleE->*bxI0nWgy4eL`0{2ix( z&8o|L=sCPS^uAB;Z`Au1 z^H(n3p*!EOS?$9IeU zDNnb@abIjafqwF$AKD4@qu+Juhcc(D1O42#q(VQ)5a_4R(~s!S`h<`ho9%wbto-=H z=0>}&o2hHxAyc5+S~^0OKu1oNRP;okBXaB@4|wn7$%B$74=@%>PeG<^7aob7olmCd zzTE^e1>8R`+%uMp>U@0xxc^FwSLd_oXzyHcAL=d?_vEI#P_hF#EtxS64Qy+!&;aXq z&dPDl44aN~dYq{zzjaddfWHsBKTV$ZhBi5KJSE%v&LKkJn*e7$_;Ta|2zJx-U$)#hZ_AW(vu^cy zX7{TPmk;}!+Uu&=|8w(sIe$aXSjD%UORO%(qQ%w}m~YulFh&&Y=sgID!>sT#M{F$?5>iN`F+o|ve>r?#DQ^Oxes;Y>3y zXWsMiFz?QlheO?k^6;l(;|a1@at`>G@uJ^#Bc@p{jR7lJ-^BpluB6HY^n z*-c*NZ;}j9Y}<6d9D9WVzxBtc?Ia5V!i8d14HSQLT+zg>FLJ zYKU3Y+Mpb>N*}}*hPXnF!`cQKm+U!b7i_cs;M2zyQm?j7eBX$E=93k?J6Bl|>Mm4P z)Qc-r46%5sA}h!P8)z1PL-?OEK~~hO1J3it;XGf%``i5Ui;WgqUZMrb%+upF;QwrC zVaNY+v@lXb3pe@a7aJ|aW7&bpOLF1-$%SpF94+jrp@lyG{9>a8>GqdQIH+|31 z!e|XGtn<$=Hd<(Yi54!Hj_5n-XkomD7P|fOi;WhvpZk(rxIl7Y-9I~8*jqyjo&Nd7 zMhl7qd5IP-5G{0{aI~x`53m0r1(fqu_ z`QaEXq_m%)JUdx@{dnJ7@_o?en1^Zlnc-`gHFF*V)m7i@)EB23X;#@)- zin}Pcp?ikPZCs*z8EBijoT~}(-_&Q1k+x52AHcQm+H^67caC;sAJ&*=^scCQrA3*S znf1w3S7NACx+Q;!`KtD+cWXcNV0NkXcW;${pZgeSIgfHG->iL9?xh;dHkr4`hre-BF|vx2&P^(gY;vvkvbz;eknIZ%uoJUw3)tc%{G|V{BY6?X1h(kCDVFoLz6i?`pd>FzdH4( zX)rHS91c0H^V*ZURC^Kkj&^L!G%QkE{C>U3F9&YR%mJM(zBJQk-m*NM+G7&h$GFX` zv+r~-oryNin%A1*6_o8X{q}pM-*as-sYR}h{iEsJHuLbSo6R-ZTg}UTZnU2=Y1@wC zf<}$*#bK^dYEWZ$Z~z7xW7XV&9cN0E4@&df(#c#it&I&y&FzhTZojYn+-Ms)Z2E2c z#Ktn$|E}+j%}W)dcwmzAe%g;w+p|q>jQ5SE`!+T_e9IDZ&9)CTyxh+zWu8xV^lcFA z?$a1IXpGlQYCoqTKE`HqsA`PAXU|R=^VyPvM`g_SjXwM{%CfC~qSPaXzM{TA5DdSr zT$az9j{Xe|9oake`}g(x0}b~=m)TsyY$<2w5$=cV$Tc-6F2KV2ew6`!$4hxj|D4TW zK6~^V9CNP8&F{b{_@jUNj=H~YY+v1vDrb1!jM0~HsW=w z@PneqUl2Y1+GHlRq#@I~P0tTacchv`BcD*7k=&$d*rNL-z?q{}(H-|t31;_>t`l8d zoqJULbXYuW?0lA)PmXqM-X_>OJpG7q^IT>QPyTorFNa6d8!v5m__|BYHGP*fbeWu; z_bT(8otNTG{r3Uw+1;rz9hh7s`fC=C0GB9xv-&)wu`Bn9a)&L`cay&LPBA6D8tZ<= zmT`v~<$J|n`xRT(J1ICQUaNPKxDoKTO8<9kY-@PBl(J*z8E{Q%ZkPJGJ?8Nq-ihDT z@8QWW2)4}WJ0&;o@LqS2R<*_c%M|x_24+g7H>U0A%Ngr5p-7AbBqF$EsM8}W?bYDH|GDSszd$Tdfq zPM@!{UuENY)M)Em=lpD)Ie)ok&VOBJ&Nn{e=FGl7`=62W&}|bA_8qUzYuD+^-R5D_ zxd7N?W3Xwi0~=i!X74Ktu%S$L9@x;<_Zv3dPuGXd(TA&Hll0|YEZwYp5p;9Dct?4| z=I{<@6XU$|#X5Af?5X;&di;@USUvLwKBah}LZIDX|B%Zyqc+q} z*~Y;R+50zcPQ*BJ{&bV>DNtL}I#(ilb#)tYjhs)_oMZ=1jQ*JHBE~5jakL{fpmS>Z zmXz{mCAD_gsd+@*#@(Hu-1UrUNYAi|bY^ur*d;vIZ^a9(%UoeTEW2zMIg@S7QvGwK zwQc9-Z5#Wa_I0PRx8Hia{njh{?dN5`Ro^xAl~VtzV7sl-IJy6Yu`q7NtNT0@8}FW- zQZB_(X{&N4^vj-GKgroP>e62{o|lc-q_ZC*nM=%vlf;r{^S@qbN&T2Tw+jp?SBWvr zC8(n~Qo&&)^FryvcHHqgjEDF;>X9#89T;cpVr%@u=#1Gkbh5Nf>+7CuJ27;9_i3%P zp&`oZJV|R#Yli&tD0|2d4xOq46?UYc99-d7&W?ta}Dd8_ia9MXBzOX%|o+HJD^ zebD#o)&c0jsP(YnemmNL{#yRp(O;vP$jVosbqV*??biH0F*+g`+T6aH5C213;Wu@k z{GYBaJR}(D420tq@-#rB@XvDj9mvmcnVD&Fcb^T9M(tYrslAMNEYRzT(gx)l)?~q@ zY-jS9(5IzY#nHoC#Nm=}f&2~RatLb$##*YWQ5Ffr)<6u18Q^H*)As+mf zG*{xr@zK0jclQ!Q2!3^5XRO7H$QLtgxQq9sVl9o?UE~}UF`~q8b9P0s9lx*ImvDr_bOI+a_cC3Vm8A>9S4ds+vK@+`GLTboAqYF-bl83opgvzCv^ z-dzRnCY8fXej-bYt;(yy`*9DSboO%=Zl0${Pl`_(%ttaEt?w4?^|#O-ymN`^m#7kL zs;-4=d(p;ShkB7Rk{I*WqWj$|eY`_=uD;FeRefv}S0`ud2o)NGNpPPsIhk6_C1c<# zqj9F?lcH?8`zhnw&KxPZ`@@hms~0F6_SeV;a-o0&;115t1bdTc%y2G+dp!2?EzaXE z^%JGHP5yy?8`ED5GKHKk$P~s4tsom08#m@!nNTf9T&(&RzUX+tn1ePSG`Oko!H8XZ ztr8sqmlLH!S}(hE*^Q!6&YJ)?y|=Uv??vJ{Xgu&BIith-z>B=696ZT;_+XtM2l@oP z=JG&4DBip~)8}7ZGVK z)6@nWxD!CUF_zLZbRKitr+&klNCaKiaijRU zBm0={RGvvvF47&m^g(-~!xocYytYHWpXc?SHm#3WWx(UmUpRWwo#Hm0ot)FiSYnZp zQ^c?%M~P!^7H(aP`;5D5)6#G6XtTND_1F#M1dCc56>~l)ywV@2ylI2=BCrOg&AOKncs85cUr&7zq^%#|8tMagU<_;nKLJ0^DcNx;|3tg)lmNzz z=f%JmUk>dK`gRyQbD*EN&1Cyc=B*AX<77N%@9gFsFrWFe3hf>f+ym{RYoXnBo_2HQ zGt<$r8SM>xdOBl1iaZxB|C90@9M$*UOwiNO_^kA@vnj}@eI}Zg&)?HwdaQ5cZcEpW zmbok7cER4!H?-X>_yyVy@CW9Brh~7`$+>68L=tu79C%^=jpl}HJ0<6|53-`&Tv12P z#&BJITI|C1=Y+2SboO`mk*LRth zrSr)p5%7NEj~(8P)|<%Cz{7zbRc;!&iSFo>o{j5|6Qu(gcntXzmrZg1GBOdGjmtOa z6`fE^uj;#iTvy*JKifzShRQy{LBGzN@cRV6RduKB>HW(ST37Ze=N|h6`^)pJ+bvk;e`wM|~ z588XJu*rj;r&DWBXcv2+S$9BXM8ohu_G`PB&DiFg4@92pz15HSZ=$Tx9_0O^&&nE^ zJ*%oRvQsHTS?qOebjmQU;vc$kHF=&2`jN5J+IHdY&nC&*Fm`w?DceEk=A^&SWiE#i zi;3$*E)B@35XxyYU!cV;`gu1P#bTj;?^HU_c)eZ@F~O_!0b2{s+&H;KoCO(*!B z*{0hUmpM7f$NmM|bp3ze;1{>)I?utTyGQerT{rPt`b>HoN;aNg(wo7y!={_m_Yr-N zYrv#aa|0gil>le#iYD1}z!IF)>YSi&sE0jQv74R!3+&?d9B@Tm0&8UAIl)%CykBk9 z+H+y-XKT;B@K}Xj7i!O?ygirn_FU7v_8e=D`gD9Yc3hL-7U(%n%YlyZb%VEH$4N2O zwc~&{<*?)0y&aeNKHG83C|6 z!|ga8Xm_p+*B-OsnrdvgOpOhPEU&W9vMNDc2oApS>KYs$36Hk zmYv2g*K87!bF%H!2Kq>Q;?_@~oDGt7*nI2o!C2oZHXmgawKs;I!zNiKn{q^%6;<};+2YE=V!Xb+8OC3MzgtVp_2)V~J)}FS1MZaLEED!#Su@@C zyA^(8e=n?=*xz8y)GhxKuw*|YIx?fRm-82DuV^|d&T4PtQ`4RD_p;Y;k9UwcJgS9lwFMskDLPA3bH3CIHIL_T!UTtyx%6TWNZcQx&7 zT>$O$Tnk>wZ-(rcOFKoa7ktowMF{4*E3i|3s%EgM%JLAEsjQlF0YC z4GpiN&z&FC?aS4Z9oPs?z684cfTK3PV~tBzRoY5_KbjHr&@{2$DeQXM~-g%{r@6* zF-(jhI?d6>AXgg{TJTt(mVJ2L}{z;=yiG6c#gg~ z_Nf5BU5cl=MLEHrHI0hLskCj(Gb1B~S?Qy3<+3F2tmM(O&eLe!;QY~RKkV+PzpdOB zv1f{dds9MjMLk`dGmF~S>zoX+Vlyqr#wzoqUD^w6MX6cM-qlYlA6!TBb7o0)!pXo7Ahh_S*Ly$@TWT!6Ym{f9a^38^0UP@#Lmq=i{cH%;CI)&u|eq z9H}Y0M{#-h!|RnDDVHT*b5XGPI!>~AD*nPKVj>y zDwi1^-K3Z-`Sk_6T{aff^<&J-78s}XZN+KDc__qG{k@OV{I2u_@8KKr4xTFQ(s`tQ zEra;muirP1Cd}{I-=|9b;wkhO{B^+Y#hof~wrgR07s}Q0V|eb`t?+H_@A>M@_qWn2d|ZJ z9yUwz1L9k=0(r62BvwSZOB#?FS_|lGpYidCra`jG#(5Ik#vF)ilMQo+Xt}8PJ>A_! zj`GSo3}hp*FG*2O=nzcbfM9!h*$ zv1SeCalzu#`37?|6Ya?+78&yWe_Ju4`xVccZ2LQ%3v4j2)4iOT;ZkWu+jmPJRqUrp z^xffn6H$BK;V7%Mp`L$BZED^H?(>L}IqO$>Y%0*j!O=;7hMM&OFq`!6o)pa1sZC%e zn?Nvf>vY+Z)6fEVTSX3d+4r;`b>|cZc~JYdhXfmUMliG;_EYI*J*7LNlw-N=J01tL4K2;rHskK}<0d}!NDXe1{@wY&O=uh381n(i zo~K8#d4N4|1opZMN1tZV-Ui`CcP&ajM5(8xzen~gDzk2 z;A92<;20hwKFq=2@f|#QxtUEmTDW^ODi&qSyi@r2Q|Yvv&QHv!{p|^d_k4mp?ZA~g zC>5V-=^CEsNG?x^7G$q&m!B-)uRf0wi&DYE{AIvJ@skxkIa-5@5&!Od;3Bjg_@v#p z{gCpp+L&SCgz+T(b7&g+MP3102h#_|rw@3VPLD}%w}2n;$b9Fcxs#iD>&DJZ(qGtjB}oN(>LsH++Z;c-G1o7iT?qUj=r@YGAj~zdIkW3vFL0 zI=<)L3LQhQ&~bn}`U9FpheZ2kkwF$0Cra0fhX2fvXBZk@DOiF7N2@Cmichw`D=>w& z`^&VgJMJxQFN99P?|k|QT8D0)JY2!WLp8W~$iF)uxCm`KT#QJjd_ZS29<^sPkSkI0 zPEq7WtvMDcFU031TRv}PhFjAN|i$U-jDu7n?p&!Np7sF0%gJ`M^bJ`%HX+ zY?r}hW&3x<$G{i+DQbO6|82>Cue4S2VO^DM-*YI;VV8~9V*L{IX_V@h4BxJ^Lpgn4 zKWcTNbRITDM|L^3!t|14TOyrb?(LME_~)~QCGxea4cQOQW(=}$Rk^Pb+ZXknJreY{ z?r&>duQLGsE$RGvjrnQUXKJ_X*~iUN>^Ge&kzP>_mTZD^K}(X07u0{0E!uUzvsrUh zHtQE;vx3i|g8>$m@c|3Q=z9!yyPUBwEa24a$JK&VgEos08 z@7UO$KyEDAb7@1Qd0>-A?SCh{q!P^GY{rjWhV9K9;x;$qmmF`fXBoOp19LfYz|94o z!uBJEl=xBP9X6l%$J)>*O4%{=u(Ji74>{VClW!xTJ2wwn8zUw9J`mteq zF)sE@puhTKtIxY}TBwC1?y`E5a~+(yls&I!2dvJ>B^Q|v<%w9D zUuRyWefEarhR!AOoxMyx_>T4?(yzs2>9U@zqM+N-qAO%P_b4yT_sV|M{(3B*J?n%f z)2F$RPo{cZiZ2eDdB*$j4*yobmbs8wIwR2J5W1H+bi*=dn%-z<9WXzE%_(F5atTwkx-`>EO3kyBl@OLHp@5_(_ zgmJuD;}IzcU;n%!>i%=_n#Pp6&iXzX*DEw8{ECc;v4nBa|5K&g?Op4P;Y8_%NzMQo zo&7tT@%)j-LA!jM+({+4GtbVQ^`p15fZq{4$8N>H5z2nrKfBEITU{uB&}q*_PkWyl z^_lmi?d!-?@U4-{hVzQ>PTy}<=n5X#B$*5k=uE9*0zNyf`#S7eNab|~wAjkoTgDk_ z4^zGucmA%MUJ~+8G-lL?;zX+bEcEl-$1DA4{G(0Yr;?Y?CHQmUOSB|CSL`$8S<*O*P4aWKmGLQjYuVwA^+r3@Wt38S#$RL)I@1y}%1P-)!d-_=Ni(fp;X|O)WgoW#}-<;v#n(ul>mDWWjK4+w=O35wduW>b^Mc<_ z@p1nSjd-fGTjS}qHb_{{Hv4hl zi^razU*#XO_5``5upgmwyBM?OE9v%2 z<@*-AB*!vi=&P6E15e#;*w@mU#;;k7^)n$e=JTt_ZY}bj`OH@aIuEu-@-9c`oxdLF z&+%@mW%1CH=z;Dc>m(aHrF;KGXE)pXrjvpr_>0Ti=k`^%LH$(ABIPl-Boo?52`01y zjmF!8E@@BitJ>UKZqxBSb!iKDcjVX$F;}G4UgE~OamMPaq;mOLxOS%+;$y6)^J;rF zdzV{RWqg0&){Xy?A;#?HP@#43>SBQ$t=l@I9!@Ug+~;xlDfg#n~H;3VfTr&wzB223*nK0VeG#%@rjlHe$2q7^rmLZ^Z#0E z{!!-Ik$cR`8DQY{DHyXv}Xjk38%3fh-c zoa6y=TgV=Mr{rw^qOU?a!d`KB$`IA+XKdF5Cv5_3u0 zaT(I@Wyo`T9e&YGveTTc%G?*qP#kSBwBPQOiv-!~v9uYl&$ z+9M;U4gGXvpE66jH;8VqM-YZLFc7O?MmEPu1~u0t-|FB`JlF{FY+9@d+ai%$MLrO z{*ma~;-lR(z_+LCza!b$KwchrBc0!7+Du|4GD5cN9nf$(+owHE)~eg(%Q@Z>wZBVp zZ-1V4f8WyguHt2;$JaSvpFeD$4;GDSx`T4Y3>Hr}hVpnd_M@sxov_|hXJ*{*cAcA~|lM#ay|}=WF!Kaq-x7 zR;Omoe(~6KR=-5qM-6RtbPt#%+Gj5FnfB8eLuG%xTE_&P`uMmT)9GkmXZb9C&$PGe z=2YRi9lmX2K0g}XohUtO?d8qoceQ%-I>kFYD_{S!+F#7IAWyJUgAEC+YVG2 zKc7X4BVpfUo8;JYS5|W9IltYk=%~l8jZTia`6KUBU5k}B*{w&A_sz!dTznw8g^3Rg@k@;HnGZRb#LM&i3;ucSSnyLamZjbPOXtw!w@PXG<3(av+|RZM0Ik*?y7(hceDbceBOah zS8VeWrTa%$$-fFr!2y1&lUfHx`#!AwfGYt_vrc{q_Oe%9oZ)iC8DbLvbL_dPkH`)POx?Uvxz)s1km#?m)lz> z$yZ_|2buS}4>~ySxYNM{81cN*KR3#S9%#(%uNS579`N*bv@Fw4l+uc0yV<+}`+i)0 z39av0=Xd0u*1p*`;Y6`HlJ^yO4Jgi}Np{hV<|^^JgICJg{feD3@`*Tj-D=_G?2|#! zu>1h+*Vk% zEOxZ6PDK3QeVqw(r9BEy?>WKB#gFTm`1d;HGHlFTZ60pH-!C{03+BZ*J+)i-+z{xA zG1zr@@HIF-?;TYsnj71zb^K>IxH(1!A?PSYN1w}rO%Blro~+#x^jk6T`P!1K~4EHCLE`Xsqw0{=K&kt@?HvnRy`N+aflRGZfI%zbZCc@Y4S91iUj%AG#kTd7|_+>F8&zkEbK~3F#5H zmI%5ytz3_%O1A$3G)@0O2dA^omi_bLS$uBep11eza&yal(CMov>-5!-e~vF2{t7(L znu8oX$W_MNpmWRUFZisZ^_@ohAuXxBi-y3HV)a@%Ctgh>sj_^f9o{?K-B8BeV$lM; zsCLDN)wy<~R^;FHotd*pM#CtZbk3UorAMK zg6(0tKA4xwo9o8=Sl+=1`wF`VpB4CJ zuLgN$v{$p#Y`1ymPL;?7Th!Q_+E_DX>{&?snS+_-{#>L^b6a~I-%72|w01t~M{9zd zMxT~1ioN>b!YjqYZa$~KLx$XNtml9Y<+*ExzU71U^&8tR}(lqXxejia(2%N zUOAopDVkCaR`z}>`IG4*|E-E_23M7w0BT=zAAMhib{H#bmQ6ZG@90Ny_4h0q5`VQ} zUsyf4XU6JCw`LjEUfyx7TipDBH+|4=gIOd$ph*PXK%55es^^x9&8@y(s-D+fWjp3f z^E&#gZeE-}3hNH|A=3EcdkWBwe465iLCedRdtMIX1dk36@v&CNyVc_fC)&9TrY2a_DC;zp+8s-eRXljBv zAE9JO#-yrTf2Zri@2$v-rajJo%O0nd6_ODa&Z1jz4?R1+ z&dn<`Hv9IDAv1F1xN&E9*dxs83`w`O7xE@6S|wg;o#<(;)|4koYjlp}S(BHYy;;7b zwEkzmuw&nGvn2ag*?;UC-eO}~I$C#_cfo5~YwA3d?%s5Je$mD?3B{9ZA1<}r=r6Ld zr8>9LE}0!-A+?XFJ_{O4LH!mqo`S|$(0HsrbED+zDV>SbKBC?Gj@nxqI1j--`fFsn zaqcQguGa5F!&~$ln57iU3U7Ov*FeAQsnKteb2I82er8|NmXRIAd#ATDZTMvDm?ZPN zwT5Qwr%JE$_Fek8yQ3z0D(>g~6Rmft6KuqG`FgSE^j%2rS>CV*`J-`E&pmJVAa$l} z%#JU0M0#vkakKZUNA@CfT6663F{tyyr|e(K<^_vf;!N;N=ax4_I_`-)P4Bt9;Z!ND zn9i-4Ki2P4rK_jl{SX_pQSvvw2N~Z3BYuQ&pAc-&sl*OIlW~0?rBW95wYJ>MjvzCi zvg?*F2^Sgkq41(MMSneYV~miuBjvhZtCF|uSDq+6rTbrdwGK~R(WSdT$$fx)i@KjS z^wH6pXjrPf;jHizUvrBltlXvl+Bwo^()YW*jFV-PQx4383vLwUx@{w?qKl;1nJv4#re z7&|azJjCvt4u(13PW61;+JQT!upii4VP3SC(tIqhNJg-C&b+{_F;|c2oow)l=`go+ z`y#(L|3E=)Y2MXyeB@njj;d1#@kZ2TuQ?ub#C-RiMcLbYS^OaZChT{|;kWTD+FNxN zWnXxwn^U#@p7-{9(X5aUiuJ8KD^j$w2|qISSJckgl|uz9?<;c4t~X@=W1mg2w#ClG zPtDy-+~W*2}G5 zJ`X4SEj&Ld{*ELME#3Kj5bi2QZ?K+SEPoDqlZr%Kk=V6hdcNk~^pS)UQ+0}fFo8w@z91Bx+!dP`c8(1za9UX>U^ z-;$Qw>n5aiv+wse^NjYvoo zuXCq~(|_m~)<=)Bc6!Xtp&jON{(pS=c@f>w^lZUIu1p?@RWsi{&N{A>G>>c?nh42pEJ=jZXONv=do3h9t+k^ZO}w{);*n8F>kiwSJWCoYXi|mbAVvl8ln?%-fqpn zdO`aK@_YMrL+lo}KR4UD!P9Ent&Ub%Xw?T#lxd~A`|3`j6+W5euLiBuZg?&6%!eJV zW?LWj-@3h!1NH$6`^oFffuJ4j{b)}0aX_^JZ_4i@I@{PP>*r+rS-tSd zGIJ`t0wYiSNmfh%PZ7Frxk)^!+<{tO_u6&wc&3c^ZeXB~iMiPG8zx(f@^+t4>rU^llD(!j#YgHR2@lDZ5`L07+iyS{o%i(n zl;;u$qC1C$i+pmDa@XY7)U&1G>Hhn&1tzTaVn@`Ygrdu$K6hxO<~<#Ue}t4d?LEjj`)FKpLXi|>=d`IdTLjFTm0i= zMsc0$$HgLaB;`+XXK&pQi}vvkx$!$jU&1?m3wKfRye4?w4_<3nM^}#fiythH`@m_8 zyC6_M#h@MW`(F0Vy#J|83?3)N)!4Siz%>BdcpQI|A_ zQ;n(S40V+J!12hfCOQ-qTIPo0Pcyfwj>@YI;3xnC`%jKmoxm?Vr+O~j!#E3;e<-cS z7aK|Dh-tygyOYL8s6G;fcWU@>Hg%+d|8FBetBP1iL%F!wyS!AI&w6nWdaRmUWDB^b zW6x;Jk1aY%ZR?!CH)%hK|4Q|e{(aoNKU`XEarqj&Dj04jPmS(c=L`mCEz-ouIT*yx zgJ%B7Zu0yyUyOW-^3ZBXyxsPzPF|&BWy@%c-UO=M))^VuXbX>r!5`XhfK6FwmL7{IB+FrKb*nf58B6GFn z&J_*q^p&x{8)Mh7->Lh;r#_>ocL`wAd&P6h*Ph@k0%s+e0}d31=}+^KbiU?v@kJUO z7MhKza|5}^@jrLlGuFC)rg}tU?0G=r{#Vqy%~TJmobZj99WB26@lvr~bxNf^>gc|j z>Jh~;LMPkKlR@3EY--Hy(anquEPFc%yibs>O<(O=YK~#i9^`PFB>D;h=0R$^EC1_oo^ml zd@C}fy~*RZI9;{xmOf-Bk`#R4TL9kz_!htyxju+o--le^%f9jf_{Pb1hOyiWZnBMJ zn}>DpKa&Gqutf&1?nxZVMD_#oK~tB9*CH!o?~i;LoP=BBp?^ZBMBrohKQO`rk^CXk zW#13;dqwO$=BwaXgWd8a^pnn1?^C}6#%wUJgP*T48B>!N{+p25Htu5TroU3@g5+lC zy1~>p_0aBq?(o=eA|vc0FF$A&jBGKl8`0k7R#P*w4VliGc_V!$ID&f-%}^-V;mgH-`3s>p6X+zZTQ?e0bn- z;7!*z!%NlZk=5qN15+emhHV_DCZKsb}M#$oJQHXf<(0|0iBgO7NeJA&%P+bZkz@jmD%T(6{#@OE}k#==Pc(M5?Oa*rIS zT$DNG73@=Qd#K(%?sFk_I&vBHhjnKsGL&FVZQG$AOGnyp@n%^or}iE5fnx9U-s3oq zju0(NrAwPUEhlWKLrxdXqfTP5E8=mwkQg-e8HW3tDnp-P{j-_2J>1gEFTJNcmln~j zvJ+iii!3mQ&u=Ivo8kv_-_*g;708QXS+|<82I*nhKVLwXh(?2EQ(k+g#J9kc8{yAu z$(z%QtZl*G$Y9rO92qoS%s*YsKi6X8cA=+Nx9IGL^0`aaR>V5-M>{=#(CPsE6QQ`s z#6Y{)pgD6TUPQ?|xz z8AP7TA~HDv9ZQy5dVH2`l#%qDCT$4h@-%3_;zjg(3onU}ku zi)geOdGE6NTk-w3nyw*qcDBmwWgdPiiK;BJM-E?h?Nr>q@=)L8Kj#Az8g1N}c)gbkE(@qn%O%7R;TouWIlHgoVE$u{UV=!pjwDbj0=F&0U>dg(}-=UTUR@V$o5 zT0Wh8*6~@-X9J%MpG|za`E2IX!)FVht$eoe$@1yr)6XZzXBPu2+e>Sh+xZOgY&V}G zzxVRJkIyil{d^7sr{FrsZ}QsPbL7whIhy`F>R3=mw3(_b`Wu;a_M75gEUv|@SsTPs ziC(I!=l&ir(N_PL{U*p6+PK~bThPj$QOntL`IF~F;o-+Y zb7pnLoT+}pV<6gB_T3rut@T1%0Ke7<+ULafns%+AbprFLUH@HAzgqW64|-c)XA~Nt zSDgJs&9lwsY5Z~DTwXcXZorOBv|SyE#Fl=1uc;bQA;G1fV2{K~N-=;a5Xlj8L*`kZJjJ40)S2!00HAL?7S=_>QwBI%W*@RQbwTGP4m z=-C&?s+%}B2Cni`w9LiMY+;{O_PN?6Uf=RsWB+fOlzGICz1EEKHM~$dwuoniW2L3m z<`O;XvFV!4W5{$GT-%|W*7*lVg_H2B@oQ-45n=6k4)cldX)#AsC*u2T?0=v0C()PI z`@$!zL${(s!|TMojFEJeU(>69t>XoQbW?f!irD2YCp`8!^KUiqx-%n+ofO|o<}_we z)&nY|aU%n6o*dmd#n$iRx#Itpm`?|1hvE^fLk_~Ll4so~(R;bKa4@2#D3!Sf#FHueF9!RitT$Co9PhrI|%LeV>1nd(-rW*K6tu{BWJgn zBRk&$KGcC9kLKSyjr|d)j>^1QHU+-24d$CoMH|QT;PMFbPMdkUsmff4?RW%U%`i`o zYuxP^%KtF2r_&b4PjR^L7IO`EMmU~)BW)MWLj}$oVH3?udY=*bZQzskAk0*o8->7rFPYp`aS|bsLjTgzg7KQY3vP_XX06G zqw#?M$EwfA_6K;^Z`K&~E4)v&@2`|Dw08fW(3kL%T&X>c;qf(Y4EHg9Paq>&lgodl zaa*Y93s|CmqDmb`ZZQ9QnV%+3LTvC>+S*3DS>ki| znU#69%Ss75$3&d};T&Ll9kA5^+k%k>GauOIjT|&9nd?@LL`{li!AaB8zY0Y3e8Kx^oDfHH^;sB4cq6a{dLY_u^(B^sPo# zh6-x;x6oay@KwrRS7nwq)yscCF4hZKi%92c{GOprW4>Ojr$1M&o%r&!;r|iE>{@*t zH<5P+IDjksv=AQ;zPVUD0=@<5k8Z|$032kqE(!ABrO`JFO<(F)_+NIb{7Mi4x@$g^ zPj<4OPI;f?n-eU?Ty0^JObM3dv4!Nok8n;Wj-TY=g8CH9528OKfsbJxYdYDV)%aIrf8t|cO^4ss!Z=9(1MmX67CDGmyI(f2#uWQP z?Z9`=x2*odIBK0LSX9o_$Cp2DZTd)H(?_6-cwIKV!}sV!-6;O!?f7k?^b>`@qws%} z^3jn4l#ze(#!_#+@cumiYkV}WZR{~Ahn641FR>02eDX!8toZtg4#(Hs@bor#S$r(s z&Y{y2#WB;bIiKA7S@?Pvd_I7_??cb;HG6YklKlaXOAm(qcG^1@|1q~UpF5!Z@lo{8 zyrgWrWwBdWQ<)J1?DF5#2K*qJi6>Suj?y=RS-Rt`{I9lt8b1g97m8--&i@h6{*lFX zro*hrH<*t{)|j`zGwXWRn&x~bG4SiqE$i8*slzzFl{y!hb&>VR$_8X5gPd$4CL4w^ z-DdA-UCNlv$kny9n`pb9xpJtGfafJ|T9-?2t>;-i-y8Ur?UUhq3E!Lej`J;Dm*jgh z-+~?gpy*}wA~eHZJXnC11!#wUJAj^ZygP{8w3*9-98JZ@Kd}xMzWdA`yYKY~x(EWB z+rVK*fOiKtt})B=YfaN6T!rU)aNB^6&Y-V_qwxC>^@N|+c?syDwvaV+fc$<*AEI3? z-=dv(U9^*Ii+199(QXOf(z#*!cv{>6Ei^WLjO%)Mdkb?!A|6LauE=j={5c_!?*|v@ z*>1CEv<%YG z+C$J?<54>{$zW`x&l^KyBYm#1X|!XbvsM}#(d6hm98I(@s`aw$B<+I=cfU`%R`v_qi>@lCH4nDD&7Dbo_CW4stQL+`?r&=Ef}B+`jhXgvdP6pH zSg&esZ(>fD{iQlT6RPvcP@OOjs9o6{@5PJ%3m(yP?W0whnk3_l9pYp^ z20v$!{aFY_M*eXd$`QQJ0C{3sm$ZhUU=#mb5cw;s^}#i z`NyD)=F9Lr>gUWqq^@+xU3@3{MX$;0pndEQ`E`)iMABOm>mb&t2PvOuZntX$568S~e?6FmA~d?CA& z93%J}GtA)aDb6o7=(&7miPW{|rtQP{)P@%_-twD~56{jU1JsL{D_gij02@rU)b?TG z35FBw_sVu^;J4cF^>s(2{C4&D#$wh-rZV!CjT0B$Ykf1jRylbQpUY>HCI&=uv~7y# zs)ujTzTZ&sepOJfV~Xdhr#y^mH(Bw%BdAw9&GX|w=irlHN4CkcR;Hb9iy_<6l}nK4 zH21%VzDRjde9tpve?PL7F5bom-!3%J9WiNWv^v*e-kn=x*5uZjcjY?GRk?NM%G`R> z0qvBNe)TZt?uR#+cMoUGn&D06UBlhxs^QJ%%HbZ!9$oWx{=qSlI?+cQl1o9(%Nt5b?!5)I@h zNSjQ6bEcTUpP_dui+>%QGvJ&7=L|S!!1-Em{wO$q1f09U`Fe1^4xGDkuMle#HP-_F zwcvd%cz+bUKLXy};C(%KUkBb@;QdkX{s?$?gZK5|eVy&UpLg=Hfe-6Qa<8J(!M6ZT z1#q=?y?hgT&pZ4TC%TcSh`pW!@g3roQ;D@XY_KzepUZzxEIT*wLYhOV7kKuQ+ ziS_?@pr<&$WPP4xU#79XPQ{F=ta!HP3de);6^jqo;2WilQTdC-dm1BK*2;G;H0Qi? z;6K&8v4oGFi6=XW`H~-1b>Y(y@n|?MFBly~LfssoW;DJX2n2N59n;2g#BA ze1aj|hQ^Wp7+>YqFXxKW7z0|(cH$U(U$fE#>llLT6lVE&Pzgn!Ay+SC~IsxwtAkb!jE5NhA!iCjCeZX(8e?6 z(^$oK9QvpE?%*T*#~2H>BYFwG7pX%maFggGnyH@ZsI1DVyvnIv^`~bp&SmPnT^8p7 zaAy2feiQY?1L3yHJm~!G?9*biry~<|!fsSP8MP%EJ#)FEQ8dVHGZn9hCgPPSJY)4u z7R%c5N*BDMc}C;jt9}AmT0N{je;jz^nafV*k;8M~kru`tJ{h{0&r1Q1z%!Od#48$a z@rwAwkNe?Z++U`AbO!$L<<16w__pTCABS2UeQJXIWu8AIOVTA?jwD0k6UmU*A^6>< z)gi3^&}Z;XAaBY6r?&CK;L8v{bxh(X@hi4^o>=h-d6MoCO&e@^-1E%0OVATqTZ;Gm z`*`SmlJ}Aql~J41=_l|hfQxiS!Rgm=*6?m!p?Ydtv{e6A?`6H-Q=FLAjwj2Vp6{nl z)GQ0u_imo39Fy;9-ayVJpKX_(%%4Z+z@Oqp_;Bb7KF0(86hBHAi6_OM(qC)%2$!SK zMfCAH>=o*0j64r|9j0+oIh7Y)Cny&ln_6=ves!0n z28pr;iLeH#VGXi?HAp#5?RDhk=;xj6FYqaVYXLlkKX5oZOul@{jrPOpp@G(fS|ci6 zRz9Ms;$(%}|3^G*694my_$Fol*s*6kbkB)wI`yaT>H1W8#b_!XiglUY$2~+{Xl7$& zYg2))g66V^40*C8L&tx{J(t~8!#h2%F^{!+-No3C$_7*WHLNAb5o+g0ryDf)JzUsK zY?bVnL_EsamF+E+DZg*e+1PGys%MN;PPV*YiJCiG1xxo7u*9Z;CHgAE^6Xnrrpr_` z;aXzfGx z2YyoQ0L=^18M0>+%~@xolb=d=*XW(s5newyofe%kPDc7b>wB$nRL|8xXRv0XeN&JB zK=q|7-1=zxm>k*M>ib#|M-nZrF{G(jYs#J+<1iTM(=O8HepfwQ}VA(Z8ut* zGVmG8ZhS5L?^DUlzZV@QzwuNy;A#8+m;7XmSEWq-q>fk38%`cCzvp>6^7UHnflei3 z|6cUqbTT%EPg-!F%6>$64|d%}KRIJoDQ7>aV^&=3#>~fZc>9gv3(O2;f zUS333?IlZYvQtc==qau~1naduB%;K#q0`={{7 z$9v5-a;9y*rF^fp=sp~jQ(Vt%cxViS$5;g(bEWmzGkl zcggis{1dO>cjA88M^zp+x3{l2T*;Z|qYhwio`#Q9R`DE;@28LBP>hJ=tsEB;i72*G z@nBwFl($Q*R4<5|n!__^}c%@#AcG zZH{@qn~c}d+a}}H5tLI*$z(aZ(&`Jvl}KMmZzPCC6Tceb8YElN8HzRWx_GWUd2||i zJ4)M?^0xbYhtDhIhmyY7efwlQwgvAi$FZ{9x}e-^iErh23g6krbN6|Z@y`ub;2*rN z#6Mil@F(5c8I(O1VuU=xue#y(RF2_Z4$ zkhseJud|J6>!qJ^@M?}vlM~13xN;o0-OG#1@8IuBNE@H;G!Zv8XP@+yk4N_N@vc{? z-Bm%m$}>Av4$mdQd&$UF_)l}Hsr?z|{xrpSj>P@UtY z?VNwn8L(=r`&CDD4BtPZaRnF`{}#a42Mw~|IJQvpjqEy?$Fw2zUUX0y(Lv=rEuZ7&*YR2N zxP7m2)jL;CBk2Aldp$v)hZv(OWAmYmDo?Dx(=1IsfmNI(Z6mIv75|@d$^M2J;yl2C z(HDum(wbXmSIPZ>9^Sj$(uTP5OO1KG_?y0OxtO(92XGqhO0{-etevxfS7SRUZgeSU zzq-t)DC3|aSLJWluZo(Eyv{(DN*5+cX|$?T+I9Jgh5@sP*gKVLGVitDwVcmuj770M z8uN{9kC+wBx~K4Y!&#ci<-5QhUul=LY`Wh336B zM~%kGon?-o|4;67=QQx#$aC?B>_y$5rg7B&jt3{76A>NtPQ0V@ArZ_`W&$Hq1`H~&LBf6+h|D0IL zQT^|INc?YOOw>d8%*t$aRNntd{$8G6)&XnAH+gu5oPI#(>JDGE zkwS(I=UrVs@xDUm_TaqDZGHB=&L7nQLksuU>h3Zt=fv8m?lE%5s2$ab1nua3D|J;* zc??u8Os8@iI!owyVeR%_+m70MBkia?!x=8MHGZpuqcb=!BpUW$D|k4RS4(~9BObb} z;;fNm4_-j$xSaB;?{PoZfv;3MxW-u*OqCD&8UG%b zU&Qa@VLeqF%ELbpwA07DndvUyRi3EHQe^Ty@q*9STR%~+mwN5oAMI>dz4w2jPbvhb zU=)0^Yf$1gFV%@4rd@TOK3u)Zm`MJ>A?f#ddGqHRTMysU*P0;LXd=FsoIT7_XddQL zJC@49D8gSw>=&II z_j31GZa(G7$-upr?ex9co-I_{ehyU}ru2s7SiYL@bIu7K>h?OEyOdFbUD?nv_Ez#f#vez7}MGNZ+r@NSI1nZUA1!ga2Bgc(kmCh8rS}%xa z;3ejo1#eww#_JPt_ILx>r#mmG_kw-8_p%pk8`z7&Pxs5}+@Z<~Kb@)9nnL`baaLOz zgTp0OG%3R+_g+ zeXgaQweYt30cPg6t63*sW%DtrPjW}HhIYC}{i?jnfp8V&o?~4QS){uEfIRA5SQ@ST z|IpFqSg>9{9_ZWt;Q33_=-ck#y=3F~8R*-1(2nF|6SkV-YdXW{qTn0Jg=nRi0nzHG zpi_dmH>Z5K*eaakpU8#N$$2!%2xZk)L2G4=iDV?*w-a5EuIpnhoC{>Dr@JpnURZ0J z_Hp-1RpjEgzL7f(25xwqJ%MrZhM-ZHp2-n!hNeY3q?;^|>q5=TqcE5H6|EIpwhamM!)=)=etoZAgt> zE;Qfje3_n&hvp28>60him}(9aU1?)<@P>`j9ix)vm9gzcIhnLK65G*R7(76(G|qi0 zr$rh*5dHS!3zLjVu4Fe!u0+E|ax`;pKGxogHoNKO5FL|E$_pZR)vshv`1W)so1)oB zWZ;Ib-12P9B>Ane9JrxpcyUnPjn`y-=GurRqw%P#8z=h;Fv{+st>G{orlVDuw$st7 z_^*yup8wVa`c1SEy&T_Joq?=P=DRf^zC#AZr|{imJksPWoew`%@?3I)RyPLvd|tA@ z`*HkV%$p74<|1=tterfKRc2GbYwhrw@(foe$Ff*t*Z|pu5o7s`y{rCi@!0ml05;3F z$O)3jb}>GadG718@LVNL=TE_Zn%Ae|x%K~YGS3MX(Xf)|Br5~RhilQxhWL;F&l>;5f8gkLbm!D|tqI;s z&pvq?Hi*W`|4BFOf5r8;1e-@TO{L8<5WH7^an^#;9dq?#tqs~ZL>n#G5}X+vO`C_v zfjVZ|Y`)2H(~6HMv9E}2v46A!9$7`s$rL^#<;GC{i}lRumzi(cybIjHMSjP{$$uj^ zwep#ckts#@BGj^P@CNfXcwKw922H>Uu69oNdhlE zkcaT=JcwWC0sK1mvmQRk9DN_Q$mDz$^6wmH4p1H4gN5&*)!Bj1=e}Fo5t}cy5!if> zmL}VLUnOUY-fOL<`WnBNzvsp;3vD+;!`<|)ys=xLU*b^F^g!QD;G*1a+o0=K=-v%o zGthN|rR#q3FYO)e$Ns=J&f^nFaZWWh03N!_nP=ot+Ee(dd897OH@QIaQFBA?Yvw@A z*+j|Sd8T*5HkDoXIQ9D}o30w4uey!dPocM}lWVc#6aDhZ)g{wr4}Ho;-`Ki_-_7LM z@8DZ~)RK#2Y|S~8Teqy%yk*&Xv$HPo@<$k>Bk7x<)EUb*zL>|JwEqKUd%laW*|3l{1tITtC)#ka> zzwtYnI$}V-9C?}*OU{vE$*ko;`%MFxBxHRITnx~KlG!XER2)u(p_J~{01X3Y(? zW)xplAMi41@~5#9{K|Q%|37EOFVy#Yjk&POoX5N%J}P4SFH9<*RW0Kf<=Mv=E9FVV zAKLUv>2H?bQ`!j(_;UH=Ha6J1nC_YtVx8_f7ciJtMQtT7j1 zSH7hwc3xGKJb;bBLqBi%4Zej>qQ_JvwvJUrOwGkDW~iX?$1e>mLnC(pD|i9ppI$s@ z#uhreb#Gp9KEqjJ_4f|Vf54(PWgmdo#mF$@7r8>bf<2xS9k7-4?h3*1ZRR!gD>@|8 zf~)2&M_34nCK?-khiUUAa1wp)FpggnZQnQFG}l`?{}K499p$pBGUu~)x*;c?Kn`-h zYnIiChmA@0N*2CSAqUJ*Oix<#T$^tzEwlE!EC0aAdir9WWo0X|{##a$%qNd-)B2B@ zbF;t5Iv&5E+0Pm7hYQGT0eLPU%LQb-fczGa=>jrbK!ywJvB_l9X3;Gjz=Hiz0F^xy^i#!+Q{kZ=Q|1;*J$v$T7Vu~s?VM-eekT+BGJ#=5hxEOw=l zpH}1cUnrwCZwuPQ{)YC?1>^GEq;X-a^v|5q~>w7$M z#oyR|+MAo{mowcXHOO@oo~eQNm3PgJ`?dIB?@S#k6=R~&$El-t!tWROEgqFzuR*Te zeN;yJZ%(vqMuscvOhtQxT-Ta?BQ2DV@>^r%$K$I%1g@+x8h4GUaI0b51>5DoMt)PICr-q_Bwk{BQkt;(z58tOZ`drTYQg?{8sic3EC=dgT1%r+HUpj$AQ6 z7)RwE18DOWp3i3-b$3AD50@?yj_>A~F%OLV?;kq3`2qM#ZfcMt)tQeh9p~A6o}m-i zhdM8*GWuV?^{xNKdz#;3FT43o`5LxjpR5V&g*08m5Z-+VKlAkqS*F8MUG0)|_e=2R>vrTr3{8Ul)Ze(Xrrm!-w7gm{U zop6uJ_NZgH%#GwhK_fAzBvQSR6Q$>{Rf-Wm&v;)K@G_o<3-T=p=A_X+T$J@`ho!%K zVEFEvnG>wca%bG4e`C){`TBS_T5BH3OQ*B1h8!Kq|BC6b`HpoDmD=Kt!@Txymrx&({kL6dU=EFPkX^g>x58-=wP-8&Oi2Jd54r24%hs|>@bKQXg zw6=V&JQDvCK1igD`4+a0;1rI^kxReKm-0ItWe!-~9Jexa1lc}1lH~U>_R?zkEt`#f zG-h>F39>r&ciE;%CgtPw4$;%(bIq zw4*sUf*zA@7ygg(%=e`^1$)c(^+!QpD(h)59sX)Zv@&LFM0AoKaCtS#{$KHR+jkvb z%dQ?{y?#1&_3@Wn8%Npi5UrmG;vb*XJ)HFMbnsp=6KU?*Jje25@9_B=T=UMcDwBXV z?;Jl-id%ltbHQt0JKrvHtN#_3rSBc~j?ryFyZeD%ZELS-Exr_N$DC|?;{Teo@2frE zM6oEpEOMv22OmN{A4ERyM>g*p)&7+7Od0dO++j0@-JXRHSL0vK#1iCekD9BI#rFc^ zrFlPgI-4uMg7S_;&BfR-mo1VG)cx_2an(!2jm^W7;Ld=7z!xI<0S4*d2yno^55m7Q z@5Oe)$2sa}@%6a2UAs@Q?o@xqd@x5&?V#UysNZFZ3U;pgE~^(EMCU*sbej=rwm%eT*16y3Ac$*tz&^@)b7dDfd3Jfc7Tz#yO7 z^zb;^ElmC#dG>$aEP}>_eoTV#7GV5@g;6jG#s$DgN9;3r_%f5=bFjU)=wVA+*xrL3 z^Yv;+tM>$OWkPhy%s{6y41!lM)C4e0rqfh#yl(=Ir2!ma8YQ@o!kF3N5r2J&b)Nb^ z9o{)nN)I0|y=V9#^oJqmqW}Nd;D6bS&uGl?Syq_^?5DYXRo0^U_fkfEx;j@6Yrk7< zh`y2&_=&l4r_C*t!XLLKeua&lh?6f_@OmF%LgR%lc;ZE;E1&~BvM09|eFzbZ*5s>@ z-Tb+)&!p9*$`dA7CgOqOX|ojB)SQJK zo?lMAXTfjDL|li#woy#SearPc;qSsie&tu>&T97P=OZgi^KUdqtglnHiFC{HQnKk% zv(w%ee7qEGdQXHx5ePUOhaOuEG8 z1V3E(-}armTUBKmtsXV35o1l~i-@NBNU8K;WT@)7urB>e?idyf9TwM&mFs54_#3px zH-77k9fK42C|o;@K|6^_?GO*rpfP)fe2M|g+E>ut-b<8!nR>^A`>h3+XmFIWf>-eQeFedHv~Pgtk^H{^quw14`cpl@ zr+1Rc)}UYE^(1ZSSv+{Ay{Ra7W(gMgOB4NB?s|QARC{sShg-^;NIq%ZueAg|(p`S( zzFQbW>5{r+7VLGmmcbSh?bY`++z(6s-{9`*uCY?-o$&1BJ?vlNJ{6TEmt9^lQQYm) zv@%v5c?n$9W|V%_mzxiZmJa0G&I=yZQytlDfrMg8bm!KYWMhB#^TPEi*RX=_|QTwE& z((2^>rE6FV%ZAauso$e^ZHtDAnG)>2{F5`37oLv=52EkaRK^29Lu5q z)z*DMTc=W9u=WMzr61)-sGlOOGwXl{|LrjZx=g;yWO&dVZ``$wIQ`*2`)PUbsf zI&F*uoQDqlos)E_{B;Y0xK#B)y9LFVdfQZcQS3#yb(Uhh&`&;2i96V>9$Y`cx7u&L z6PX<Whk2^Osh)t1JS->hf2 zXO?#V9=)b^MT3>-%Lw*MHa?Gae>6E2F3Z6~XAe#n5ABtzUE0ViW^pP!^zL-<5S||9 z2Ie}^UpW<7@~|dl)`9NsIr|*Mw2J;GN*&NAGpxM$4dw#sET!*jXsLs>TsG#{Rcc%9 zRk0q6nfg3q8S#B3iaRY2q60?~sUp9t@vSU%_wqJ;oN>B_zOHGKOljUAP9*ny={<|o z9z2HKc0YF8LHq|N-xr=n7C#FAYCKfFQtyRjLGQycg8JX&3=c%U!&uD}K+79*d{Y98){ zdhNN(smB?+Chh-kx=5J~_R$Hp`L{N4~04wJP9FH>B#(_1tV@IKR$BpQWjmegvjC68% z-(GVQ>m-YxA4~NteAzp;J_NzPPk=w2QR@ufw^E`RtwO@X7O;^a=H>-$eWL+EaATx`q`Kr+4DNRM5v>_IujES^8LW zrSz`&P&!k4quL8i6vwPi)}E>MQMEU!@zee&@m~4FKKZ}Vm&o=nVuOh$@}ZRV+tSD& zctp(w%nOtC8+Nvh-8~1HSG{a1YGYljPHkSz85#KqH-d*^`mTc(L&Ga$HyiE6$bMIB zw3{o_!~a%FE|P8u_j@D#)|y3A_B+vMo9mPNxY&m!rm=ZX(C3}>c|CnTI=r&sW?}>~ z(9f7`gUah}63x+>px=%7tQL+$$)8JHVx4rg>^9LU!8+5?WUQ|IY|K8Bt$L-kNqd8} z*wnl%dSv%qXcGI_X)}BC=R+@SyI>w$jZOVwV43Vw)0&a^JBLE|R-om=2X zv^Q2|>XXv{*@1;tZ%Plx=tE`kC(mlXH*puU%Bl^^69dxaX>68@vEv&fFEZchz0%g7d!yBi zlYc<=p<+EBv;D|UOw(qRHB^Flek*7A1hA9yKVa`s@HspAGM zWLv`b*xj7%;+@u5_5APes9D1A8vOXB(tOI^%{RHYDX03*KE27>r)uNmdg@QISN?W= zk5`AkHBJM6?&zWO{Rz&}>3)tS=$mq!jP5rf|8uCEeEKRUx~ZI_qiFXqV~fuLU4%6@ zl9<7ESDW=goBmu!3-dr?pTEQY0rdYt#zJu_x)1xn=w;mGtG<%AIX{5zZdbf+Vt>)- zyh~&Me%3_qVy|#4vbI-iq>O3g9yFa{SrNMdPH)fap3}wVQucoy?d2Sa^_QpclhZfr z(W&#+wxKJ|?e7ZC1jZu?0@3PeYemC_%o|sm?-F;;|09}P6Z^j&@qAJ;cc!Y$Uo<^m za`(r}*RUdXVdQCal=}W#mB)D19Z6ctizeo2KPPX`iO!<2=xXuid|UHv+ljAhwEI^) zx4tgk!SmzQS`%6R%!=2llix3`R*XIGBCIo3qtn_4&@UsC%F}1=o32mI&FZg}`8ToO z&&7&Ux}W)2u}aQ2BY#ahVO&6NmoE$uPR(1MuqtlIUo)SWHhIr4O9{Lul9n@#vi+!$7=UU-cZr`?NF*Q~o z2yaL~IDU^!l;2~|O5oeK^w3$(HtL=i)YaNRcW*lV8AT_ivGuP+7j~dW)965VzZE`L zYmsRvh1m;IXs<@BXK}-0jI}&maXH9gIsSI(QxWw;p&_ zh2Y`coZykaz6TiEfJgi5+J_Zf8~7GX8NM6%-o&?JuDbb-^SzmG(LBj-_1R_|+-gtb z_0*qvxZU09X?UhuJQL{uN_rQA^4v+5tHJ-;NZgBJ1Y9{cKC*Rbd`8*WpkI|zBcI~;@R+jqmQM36bE|&eTskRYaq-+>bnIxH`D);K+j1pGy@B3 z?rHU&)`BjupNb_fv*^8bXLeGwKCxiTIy_PmD+~FbGh!&!c@T)h=77IoX_xu1q z4||v{UhceJ7mQ)OuDG?bZVzw;*8N{Q8P>_;Jv1N~Jq+Rp9^1l;Jy0x}A?_vYvp!Lc zUwtrsvKf+rEKG*o!7Kby6|`v!`s-x>M|Rtmz^-!s39aGEJ_`8&q`!o}?&wqBqNn2_ z_wD4hHl5rPrDSyNc%DQvywdN*UPxswB*xk4AtmotF)l)~Gn60Zj5pT5iUH_ky z>CL@~(0h*|-iEpGPGEKYNvBKBPv+%MV=H@Jb~Xz0;)JY*`M6RRr6&_~`$1IMkCDAkk1{j*?w{5A^r~x}=XeqnmG?b# zd~bw*e*yYEM!)aIu3iIu-i7R5#WRh`YQCKfZ{#Psn5AuF@#e0uiGKAYQeyiPhP_Ib6y(iTxuUEqJ*UH#k*v4*-(sTAl zvh9nOqHFKOzk64`)`gBv(uuAO^>y$Ghr>Sl8bkgnao82SAD-s@mf-#VY2L33-XEOi zeQWUk&@}JsgZGE0d4K$I2mf^MpAO!SO;i8iEbn&(?`w#05-)eM&JFl?H0-0(+=DKM zFLCt1+uD~BoyFgx^V&JIqq{<;YbQE~c9zW0&f&)#-A)CsnL|4>(Whk&?aV}< zV~?IXUNg~W_Z-@pi9YM*(9TTsshvYRGtuYh(X&IJZ9zLnkt@x2tIhTS>38qzkPWAK z>muvdl>MS}&L{7^*W+`Z>iLpso+qby?(JCVuu1bLviH;@4(BI+3}8(Lus#{Ux@j7^ zUT~J_Iurc{jyU>hoS$Mo3ft)3=1#DN;5qBEsdG`S4Yl#~X|_=lw4wP{uxQTpJSTo* z+%3@;O49klTxIH-+En>!wQuQBlbsNCu3xu*_0 zm|uF0Xx16@|8mg(@sQ4NzF()ewMN8GFf97V%+2I@Sz4!Yi4rSO-rI}Yc}9EH3$Q0N z{_-tE@h!Nqc6)VtuK#O;oS$c7?EC+yJoc{yIQa3fJcGS6+nm!8v~dDjnEsQ;J{fwi zu~(Th(XUT`*}?2%7Vrzr82gE@$Hw@V*NSfc_FqfsCGsgL2085C+7h&{b0AS*UBlUq z2J_(Z7CRS@n?#!(kI^*yBdgdSNffg>gE6X@h7RqaH0%5~e*V;Wq!mBE=$K+ZAgE{M zHA9@9-m85}XJQ=07spHYNcq5e&^q`^2nK9uZ#U!S@hQ!Nk8kI zc+Ib&Yl1#sD?Qf#;OXnp@Vw%AOf>NLuMgx(xQgDVG8et_z`rkex&wH;F3>qI;%njW z+pP|RH%DvDb4@z?rSoFCUt8zDgsaQ_HSTl+Iz#8glnX*<$P&#a;&X>;eo#Dwc+2PV zZ5*hJ951~ur&z?q%W0DysAIqTeZjtD+VXE=5dDxHtFE_t06oDOvIIK7@@QK+va;bC z0*75Jh31+Bdw+VzIZhj&HWBAYe1pcP+z##1PJ%XUTlAy%Pun))wjcXE<(^OI74bRx zwBjOz*GruQ?&0lfk}R7M~9D@2RGDcv5c z?DsE2<$N5F%4<(ab!8iN-{<6U44v2jpXtmwF|EvbMdH|)l+cZ<(2I(pRxUNgQ6~n* zC*rM-krzn3qF8GSPdsg2$}el0IQPgL$DW`ar%v+YEt#0pbpGvbr*FA`o<6_@zQh+f zTU>3JAJwN~d&|6DL`I5EevrWg@F-@)@-uU=U{f98s%OHt6M46=0|zpJJ(LAD&ie*s zBzG!j%aA+8*A={aRvtV027ci(8xErVO9ve76;q%&R59#{e#K3Z&kDM?K=&nPd$xvi z?HV`YU1FNIG&gA!b=2pemH3P5q z`L!kx?WGsP^NF8NEuBwcT{FDj(XR{xnJA!Jg1-ISE*K{FzhhW1o-G)f0~myx;8@wV zz=$4#!>xT>{w>|Aw?F6iYTTZbXzk)Mwub5` zjw3Zi9k+K?uG2A5$L%KwH|-;cwlVmo72MB-4~3(A^P1zd=b$m3)<0~=-&lEfJTQ6h z;i(ai+sS<@KVsVqeNO93o~6$XGxRAtaMcWbPV1MSrOy}taC$r?lj#}yoYsdwOP^aN z`rMw2!vh^t@POO1Eb~BmqRw4*Pf0wW@lTq+%&qBH?0ZuX3*^o?X`fSeVR)}o{Gd2g zjknG)d3l#E93S>{nB0Cd?XR7peeIXdrTuKszGSrX6!q0QXn!{K)rl`U9Lq4wtgl@E zXIEcs4Pa2)USEkGKMH+y;vPT7PG7B`g6}Hz)f1sQ(pMX%s8gx0c1_edS$9ZZWoD46 z)74k;8TypI+B8F-r>n1qzu@V4GM>^`-81xgy85bZhCZdQHqX%K>FTSa`#hdbU-eAE z1C{z}V4}`seIk9eWeR;VSACV5rhVzFty8o=SAF%=-418%Rjwpcj`Wa=3u^Z<=Ea33 zTa*n^$G49aSA2P#Pm)hFpB6qT-e1h;5T=0cPW++glquDmtsmox%cm?{B-TAoO}z~Ck)puuOD3>r{ZhL-RWp5UGHfc*7c`DQ|&vxmNXUo zVYRf@(Q>AkYXRDvuS^AMq=-A_M)}HQc zIIl7LZdq%-PyqMs!d*Eh>&+J|?(4|~w}E$_9&z3!c{dxb;$6{Hau5Bsr|F}EcI1B( zO?@AtX&ba&1+7KXO5B{xxpjtL$94}n+++)Fo60VP{<3rZ8ZwJ4olTqY#XoTUt6gi4 zq4xv_dH}j;?`-n=Q8ALzebRa2k276EcF(bY^&8f+ZtXTXSG3n*VgIq7g>{(qe-s_= ze*M}v#k}rf4a@70L!mmd2m7a}qnO0-eox;-os;b(*@HP~f40}Ju^IZ5JvcB!pQmdN z?*4sG&y(?#J-BOzK2O&kY!3Q-GSCg;4X+bx`OP^tYnzBqbp|eEpA?q`w#TNx_IUR9 z%Cg|+E6IZ9DV^7oJV-9Y|FQ+74>bSF4yfcy@tfj3UaPrEaG&lxwf8K{Qv?6Q(NZxg zv*~PfwdR&N%~P}K?27qm&h6{m!W`zmIk&HK8n0&iI=k>{wy$#uGqo@Mn)~mL2NYK{ z6%T~x)ef_7J9FzT>0n;1XKr?L>la4-oLV{NmGf!1J?3ckk@sxZ9Ig6pj+Xtik9}p? zLYn(0<51b2aCqVlheJ3HL%2u}Of^3`-Bb3jN>@l1$Oaz_WD;{~;@rOE-8?|RmLbMC^4HM02 zdoPaVxBfIa=-qx!jC=*6sc388u}|X0aO(56vboB8H)*>jsxs?BdpBA8OnVvHx1nFx zZpuAZ{&lo)ukNe-{v2?#VH$3TG1ONMaOD4V3x`Z!S0zJ<6yVcN@Y57Rz=dzgm#?P1!_Zx7Q!etVb> z@!P|6nBN|zF@AfPq~Bh=)yb`5HKo_4u%CwI+nK_C8gAx!3m^PD!}xTD+xV>FljhUG zXAPgVd^-88*>F1N9@fZTU@fG_y8*CGP|!qYoD2Hh%<#>>zr4!eXVI;&GzNbo~eEDL-S6@ zS9@pRt7uTh$N!4A_Azhzxw&$UFB?YvhS&BwH%U2s592nr>{RAJ!PkGYgKwg5Y=W8l zzUi#>T^sc6Wo38?bBoCT-sE%|Mo z&E@Pc%U{i7_>hgYeQbR7l>X|aBa{8rW=emx!*i;fHJ3DneWl``ll|8Oq2Om!?j2w) zxHCy1eq*hzxNZwG{&KZZ_UT{)LYszy8$;oKXpXomzIbY1{l5>~71uly?o09xcOUEd zqm=XF=gNI623vF7Vc_-leNEsyNs`lA@!v_}fTH9Cb$Uj+#paV4@nf!>GhPn8FHQWf zwpCy4R?3*#2-g=s)C6#;EuGz#oQ)x8+<(59d#_mqKOgXEhq=05uveM$o0gkjsp~OA#2`i} z`>s@??QY6`JNv89NoB4iZm`2_iv0?zwOw(1JsF#ykh^B9bhk+&HCDaNd~uI*Dd~36QmUipGZ3%bcIQw^qyT^tseOZ5uruf}zzIcn`hqv;-+ELDCVcpG$peg)`MfPU=9++Tox1?a_|&AkO^R)E$8a=mNFNLUiIb?_~{7ofL)xGAa_c9jCu1~e85MbQ9E}!8ggnK z8I70)P0y6xWoZ|&wChYIviqUkdE7oawovdtNLk&BkmQOi1!0&>_pZo3VDMP+A zaO^SWcGq?l_JyriF2ASnFz-}H^w4{?t#;MEFDF=4Mr|t3jO-M~oH28DrE;Py=S;>< z-c^}jY_a@*ljHw=0spUu=OvfABPelboc0dV*L|b9BS^8L>)?6aA*B0-bcc}c50Wo8 z1K)1~rY&Z;uoW1(@w;ti?UW^d>^8<*dvBY`ow0=VRdWDy(hTDtaxtxpNs=7#N29mf_#<9gY+pl`YheLa#8LaBp)g3 z*gf#;!|>}v@ahA^erMpd$@ls|189B2aMXN?webP?`ax?u>rNZaVSSFAKc7>+qECoN zfyLcz@tJ`;fxE;dE};;99d)qk7!P-Ys_}? zy)<7-OuTgLo9IKbqPrrM-)z|O$Nf#py~eyr{^u_90V`Yah~&wbPmyD%{BC9NZYX#M z&5(@`Q@rpB@_FwMbSe^V`+S0fh#x)T)RcfyRxm25#?IqTvvB9-w*k^IrQ2L;4Q@p*Q)K#BI8}n++4kO>15AR18 z9Ar+sj~Ih{C+5R7*ni#VjDF-Khu+Vk|20;dIeVDKM%3Ix8|aR^&=sA(O6Hq3#V`xM(gUhU?(_Pq3r zayY6DV(*c;jmX?;^MaLS@kE#9SEuJQk?~R|@>-qL9eIL<{9w6S@+M2ac-!{tw!K{g zn~-bWF(%xkFTYmOy=#k-njZu^Z8OgWeusF*e2=!(qwY{i6y3NV{GFNYx0lbremj1K z_FKa&u)T5yu$?$V*tTV7rknZ9>D#^0&z!#9TZ1f*|F(mzpLxHA99Ggr=sqjIl3nfF zNPd+URdT)s+3sQ9-;7-#IhKq|_BWZ{Vy^#IE6X~ss`(kd!jJudTvyd)i)j;HkL0=Y z(Z=X^5UVdfR@|%JA*bAPv_o6o8n8g z+06Zeiu)(NXE}Y_y&KQx{S1JQa*-=nV~P9i{u^`dlSa6-52;_RY1Qwl02jqi2uAeJ1Rj5EZs6Xssqs*| z=L?Vh4v%<%2m6*2c=$FOro>|`5)bf51b8qH<#+Y}9`^hDM&ze_!MvTEfDdAOMDl{Q z)wVruX{6W-!OK3v1iaq{-uN`|HURIFw5K(S+G{WmS^QJB&9Q2Yr*AVp310V3_dlbn z>8m68ug1|`@Gdd$Mc;iO*N2_3A3H%~?daQ{O+ssx(VD-X_j^O{6>p=pn&y4=&HqEf zC-xa~W$L0|clPKrw3#&Xo8qRX2|dbLtazl_ zT-U$AT-$%H+0=i&>0&0mZjd_?2hp*E=-9y+zPD=g0-E%NLkrCF`=aLgL+6@f4K%S)GCps|#k*g31& z`3}PJaYg9{Y_X0JogvhDNPjkxF}3o3G4l`a^R|AFV^;H^AGHGcfw8Q(n z;PPXoaT^WVuYCSjQ#{u>`Ko{hua?X;(!S(Qw3xgfA3iskjm+a7O_eF1r5v+k5jDk7 z9*v@XR=HO%JIc2$+wkxFxZy|PS8K+o$UNJRsTLu!IvnX0ES8$>0SaoWAB)=vHtGF z>G2Q^)Q(`Zyag@p3fhp3vF%ec+dmCwVE-&RQ~T#PXNE0)2Cya15Vnq4U~4`D*jmmI zwtb&;bnC%xOoi;mKI}r}Yu}7bD4%dQHe(K(u^*c;i@mswb>UWQ#x2;EJ=m42u^XLU zELs`xcBAZp_00D>tIGC(&S)((ODF7s4ZOcG^j_z&>g@aKd=KyBm-}?+eT%h6Kg~I; zU4;)D{OfXli77jHkdhHShe-0|8l4IY}e&l4VjP0Bqw77y~4W0N{qeVYwa z;xQIU1$ZnE@DSYHz+G=H4{TD=e(!`$x;B8-+m4!({5s&zWX(zRmcQuofrQ0W~35H)B69VXZD3<4){d*)JMX+0TC6qBCXEkzreA2w0n^fprP6 z=43kuYnFImJG(WDvyXk7&68mDwsUsE*8diFx!U;xn3DJtv~J%5zxQA(av!OMH3hF@ z*N@7!Pr>IJ1NqgqQm%_~%n!C)E9K-rkzKC60NK-$$5!g7k5<{z_|9s2IWu#z zL!%}evQ4um*{05iXpH>a>Pt49*U7pATX0q4Vqt|=g7?pQKK zY`axwXxlycv9fKKewA#y7UrRuY`YZir?c%kcsHGG*ZN~@+qM0e+IFjcjBLB~kD+b1 z27W&k+ior8eiCgv$;E%#b{)C@wCxTT{?oQ|HpGA0cHY1F@6Wc&bg&kc`UJid?V-8-tTg_*Anqe&$k`krziY&RlZ{~kC-!9TEr2g|E*&Ay-w-$! zz|Zdejp2j&1K|2!tZjyXO?#^r2JkcZoCJsVp<~!4I|W!$&! zKc6b@Tk+n?Hy%CL8K#+RqS;^y+eCALY0WG!&14JB22iTcwc5;D9!NoGq2ULo7aVD)w&O#$}E1a|p@Vm|77}R-MQEs(s~J=H8X@o2uT$ z|BdO_RaKeXvPAqz>VGC{%aa=@Bsw#k<>@eLt5o_a%6x3uh33~63NlVE6*-}h{TY*Ks4{DL$34$&Y5Mp` zDq@|QS8?$qkc10ukgD>T&ZHMp>LIqe_7}F zLFd{NY2}e5o;EgyO+r5FmId3C<6gPfTUkda7yBCQ?X}q3I=j#P<8|w>x3^*ICsL+L zXN?os*7a(m4SSyTL}UMIYwv3xk~l@|`n1v64&^hk?^9m~%8hy2C(icXLSw@X>~S2x zF6tpRPj-FR2ryWCUOE1Zxt=ymWKy3E*KreRu8)Kcux94-cSGFVEv+r@ZD>sa7 zkF%J^ZCRUVQ};A<0Grk{31Z+yE5Rgu6#uXOTfoP`zjQ<} zXgrkbMg7(U{bqypS_XP;AvR?I{CAn5?P_ncd4JP3Xs$DAJ;bJz%=c28iBC!F8zXMT z-M_PmvC$sy24G$feEqEFa;)V92YZ$5n;$OdETfOb(V4i-W_4ccIGt6jCB`$sy*S3C z@~u^-PUQ!|*O;qwY!~-}XYXim9*N}_`^(k&xLM4-4wvSMztY(S`oENWbdrp5ItIMd zRjlTtg*5FaSalI+y^H4RQMH8mKH&2+BxqzF*p8`MBO>?72O)oih*Y z>4yf!+)8XrdL##|(1-o^2k}8a!2bLF#Dd<(`GtEq+i-xh4LY;eI|8pqpqU+mEMuTE z>cmDY*L@u6<_nPZG_=^r9S?4es$7#T;M@3e7da-!-XOZvf;+f0KZV{om*iA$_Ya!8ByX7P$BG^NHrSM|AIrf9K#Gf(EM@`}UlPY)b7%uO?#8 zMLuh?_2je~Rh&cO<<;D!r2Vfw0d3y|UE7mwdQZ%(+S550wMQLrjU;b@ziP~T@@t@3 zok%A|0JGd`mG%Gm!kAA)y<6KWut11H4_c>X{)n#Q*4 z6(eKoOK`$ACWQ}&y)3(!(LHxU!fd0(~t0p5#0 zuQ2m_8=K!`)K-`W1<&MqnTYDB?jQ1<7#xTHzghk3{08^YE$BYg?=Vq2Uh*+T?Va=K zVJGu^+k3In#V5$K&`*C%^u(&QC+qk|0TB~sMvPG|05cNjljMWgkF@Y%Scfj=a|xeI z`Ly!6jL+qK-o{6LujX6uZ6+=meu(4(oS0ke81Eq-L;6>^Ha1_+Jt=otm_EPKX_}2L;)mO{_btm{`o;jIcR4&X@3n-&A^x>EYwXbsJ zv-QqL_=NTGdF1|rNT6XcGQY9%`}O$V5n6iRvnuF6)FZS zP_^Qirckx|4N$bWb)8L82^uq@R4i-NAxWWXwn_g%S1Zk?1?yT@Sddk>t6As@?z$_h zDC{nDe(%q@=VorENr0}nyZ+kOE6vHh=bk^$dH$d0JO`L{mIl5%h(hnfG0MgDrJLv( z_tcmpZEZI9Ko>AscuSl0#XWn=7CWCH&ZEKfS{e$*!{6|C&i`HP%k)2#Yz^$x6S8%< zT=ltn$w+!)|TB*2T8Qk1&93dp~C`zQY;%A@&OQ-`Z{t zwys9EUTF6BOV3G}gZ*)HI2*)$t1bPlTt<83uh{C_{Mv7{_1ZRaF6hCkE_0Ccwv&?^ z&3Cg2@-}Ri9=*gVTlpm!I+rvLM+C35jegXTLiJAt_&l{U5#DOz5wX+bI zm;9!;H2Ege*XtXbji4BvG&MPbVb$C`Xrth zEWv-IH5Yzhk58OaM}86I7-(ayQjBTqNWWim{dOPI?-6Vs^%>SrYs`IB|9}puG5TZ4 z*?FRVkHBOvaq)tQ?5#pve8$`BzSFnTWyAB)vp~m8pvMMvs!ah7PmMF4e|7CjFD-w2 z!Pg|Zs0RPl7k;9C&Q$j+R}Oimxx-;A{M)xT0?vM9PT1TvXe#w` zewCMR3BDBQl)e7CXhr69aJwWqgR(u>+-^)qMrZ3%z%pljU*I&bZJ-`{eDy6}Ma{Jq z|Ky9KP3-#J;O|&@kmDut?P-3>zmsV9&vd*NoK#!*Tw5+Ovs+$C-?H-;Q+~NCzmxJ| ze5{^nJnJXqqR{(UJUd_beA8{va7)VYe_1L^k6W!x{_ z(&CZp>bt;_v-RDot9KEe9pD*v$X5FFG)NxiVLv7uJ1!A_x0^F~1q@_Y3pRy#gSdzP zqEmAT;te>XWgBv~2)r)%x_HMrPsg_2jxAciYkVcQ zma&$H4xPLZKc4yiq1U|r<>qVn=DGI(pVkn$J5#Zf%wXyy)^?Sti1paDNyPSJ>#xW> zl^vG~V733aC0q={O(cXYbzQtQzjG)Z;Z%V;ADD%y0+resh}5Z?@m|;k{-O zIItq~pZT0^M>Nd?Tlb_;y&>|Ks=uJ#W3HZH6nl#gBjvA>KUTS^5>Mtz7BGM1rc(Y2 zay3E!yP!SY-?Epy75kvSdytcN!y9(?r;(LS$ja4bsCAWjFdOV`Cy`&P@kdJ*$}cv} ztm#PPKx5O@d9#sE_b~pQH+Cwoo#tL?$}2B2znOoTY2@8*owMSu*Tyo%AvD8(KLIqG zkqMG75#Gg-#m)G02Uy#3qr1!DKja>_Jhpb&(^)*&(T0lH-N?Md*|#A>%kibgY2#8P zr|}-0uXdLs&&-sk=T9=jxK_vvfPY#0ClT{VCB9(RXLjdV@gZ+IvuHB+-Fm92Pg;Dc zO@mMOWrt#=R$dOqN|41p@WFwqa$sY}!x-#%#D7Q>pzqV>0q*k6m6J`%pK82NJ((T^MAiC{WyN%?i<-yMpVnn8Xlp6D%k1+bTF)qa5;yJS*KGVA_q#lYoe zM}ClVkcYE^-yZyOT9do;gHf&F>sYT$$XJ+6h;mVswWp-7Qm6bgnaxv?5RDzY==Lm>=G{2bj?xYrdT|zuT@k^w(bvo}xS7y2d=z zBRpIKt#BrBo3BTuz~z1HXWR?@+@o=183(wz3*3}!-T`iIM{n|RaTT~I{u1y8?n!6A z2i~wJWqE^i7xp>GIob%s8apn8uhu}{6((o*SmNe#&ShTMVQDee?N#7wuh?_BFXzd@ zSj*f_HIG#$YKFZb=y1SnoFC9*+}!P-l|!e5%<%btCwnHj>O_AB$>)^dA@~6v3?d_k zN9a&(o?;#?Q~i5c`-nLmoVvWDJT#7<;aAo;?xvj)dZsT`6xeJvS%kJ2ZaSO5<$(1m}ObIcU( z^&w|ZUy{7!N32dRPGN(r!oK zV`V|n;YQO$@i(FgJ=0G>6SdHU{tk3p{n zfaa(?bMVDu^iBPRC>C=Mr$rn<`(*Nt9Up`9~OAd$Svt)B1w}*CBYA;s&q9C7tgM9wN{Hskj@_7LH+KyY=Es24T8-Jg)Ejh*fymOj)yhyGNIJxTcSkbw3 zf{K9#!4SGiIl0<0|65kB4rTw6-zj(&XNr-l?Y>;yw93iVMkiMvZBZ~~49@uK=7ruS(-*Y55?LY^T?_tpT9%SdUS9&YCW}$%{S;6ukW16ab zsMuGcAHgb7ogx3}xs{3NB5Ugg@5zarQJq74qdKY!+`8w~G=hxy0WvA`FX*y~Tw48Q zE27tu*J3Omz;KED81<~rMW(Js^jMCKroYRPzlrv=XHs=Fve{0FwwgrOB9DAw^AquU z&&(uC*q?#=rY+;$QI6eqZsnXzgP9X8_kIVx8Bb-MUI}VhqF) z!7~?iqK}~mrcJR9Cz)x?{B5P=-0^kkIB`<@v}W*)d(bEDMu*;w4!tYOI%S3XtRb}S z>knygQSjSk*I#zsO!U6{vFkp89J;TiVAp+Tl>C`ZKEpsKvSU{cj@U3f2D@(0m9#f# zeaw=_k~?#{uJiD>lxZE$W6khKXEP-?TN&h;rz;b=cc3^2w%t(3wkyCmuHTQA^=L?L4cqU- za;v!hSo$q`GW1u_Z>2YjmfPkQ_~gUjzx3O%UK{AM@Sj%cz2e)t!&kCJ>ns1h)>nC; z!ILrd+_>w*n5|aN{n5>z&5oz%mYbJC|15w0vU$bJ0=rkXtZZNLN!h%zfo1o~=GE8(n^!h*VDGLo`&-+<+qI6L zWuQ^<6TwIOD`WGsTRU$cZ?V?K=VvQM@w0h+|6$9|lpoaBfyEnn4$nGLDV~*pFH~bU z`h3gZr?CF<0r{jF(S?6!aYnkZcoyG>bYbx%-`}*R$loM8%=b4H^QB^clh2p*eY53D z@;5oYWc^L45j!_g6ZSXFw|YmZnPYj=i?#86U3g_nA{Ew!uSOTXW*lDR<0`&c%Zn-o zu7qFuy0G9cUL;*uyk`z_6@QcEM`r{7c|6OMeAe+Je9^g!Lj0()MfP@}6K|qiQ=}8C z{XZ0M`KTSst?-t{5uJGbOUPTsvz@D}3cTg;OT=3aRQi1cyk&R--Vz&!w`goH1#hW# zW0P$!-lF(p8&}?y16gF}7h=kN9w;$&h?=Htj6|;Wg*~qmxaxIQbi*KvuXC6N_CQh7R zoH)NYaei^){Nlv<#fkHa6XzGVa<7ix>Ra1iV;^h$`YtT@^mka! z6~EVBQsDPV#N*ym;JE7OC-Cc#L# z4Xvc1l{7kFBlMC+2TVI1FzskTe*bic7E&((Ei{H`A^oCgA(Qaooq=;!`+#fSr=#yvTmyI0ms%tc(emr+snK7vhne%9 zU`(o?U~NUOs;9UVJ&O|`kNmOE&c?RO5wjt_)2o=5+8k@PgEVVr+Q+h#T`882=;vQ_S?vv!V~ON12Lt zV2hq=W>@ynhTy$KIwLk`f^`kzg#;&mj}m=)Aed{8wjSi1&JgiV4~A^n*`0!i*1cfM zN@u(R`wdW-TefkQ#o4kM?!($Ae9eM?S@0BlYd7&WyNI_Lef~whD#hiV#(t_F({w>{ zh@EeZvBBY^Vw;3dg1>O87?-G*6%Glf!f{Q)FMabdB~YW2``6so9p*z_ETQS(nh!KAl z*mrU8OLNm%qp@r`^)o!n??*bGe4tOE|l#<7L>7 zx-(eg3v@j7ss7Zj#-e^{gEjYk9`b1hbps!1U~3lF)A&+ud?)y)V&4WW-k#u}C-~BL;d-FQrYWm9d+n{dS8lO6g9J@oLPO#m|o7R zW~`sN)C_c}&UD>L#^|&MQ;B}37(edwtCcOUe*Cl1tsRP2)m?t&BXeo&(j5L7`RnU) zW7ko;YO~aI_o*NCp|;gW&^~Y(nLGKX`+vdQ`JL6gm77<3z_E22Y#p^9K}S~~LEFaU z`oiu1m1{$?F?oiMcLTsqI`(1{*cSV%8t_Sza~gco{nz`k6ZTitpj*u|+p!&VXZK$4 zTyaH;{o9Sbw-cP(&)((z*b~}2I)KjiFghPGZpd=Q%w}TcC@+VR{|Bn1AE$|jmX2&b z3oT+lNLN-}#m*6fguW}k%3*ZK{megnkK|Cc!GG4b9377PDEs{VlQcGt&XnGpWo+0& zcV`(Jy2CE?pPlGEJMbfHM?dj#tpWTjrEm4AF{!U3`Aiwxb?XwFz>_`3oMKqht;W+n zj_y=Y-6S>@Kj_8YbbS*s*H^yGtSKusyV*#Kb*%&PDis6J2O^rlK;RS8UOKaCdfR#FQtMgDhr#m{r_lg4|;2 z-*9)Y`c+(``iq#2m8z#cGQbe~!PSH2Vqf&;#;>q&e~K8TQwHh{a|NF>mJX+YZ_}V} z-Cy}ZXk7PK@(j2>)UR0Lxz$&AxqL2a*8o@vP8x&O?sjxoJC16@94Fa!6FJSXr85{W zaO3>*WoEJM@A8b+tH!)L8ZYB>xWCi9yuICt>BSO56WZc*Qg&DQ+>#?soB zQS?fjD714p``i4x;c55L-(df@sVDyPE%#gWt-A*Nwf5sUES#e|JmG6FMq{qbsGq+B z9(pgBoLsc7ItQ*h5ZRA(>%G3Pw$TRSz}b7IP34gD=P#-kO@iB1gF>rT%hiGta^?LR(dc0plJMaSH8Q0M2ip*@{1=M~%e?7EHUWaPF zjp^Ghe7l05f9gZt_Nk9wK(Dra^SbGpC$iJh3%;#R-61tMUT@yX*hRBTvDbONZP4P} zM(&&~$e_j%{A}!EjwAT_eOvc_=zYDzsd2&5$4UZsiA{yf~91l&zFq{ZU|qp-~s&jZus$T_`ojs@lN>h4&>r?bOE0)FNQBq zVSYOEue&(II)m0zYuQ1*9L=SRIcN>Vp9?xeikON^IUjHUIWgF;-w)&kr?TXysV_WG z{eZ^AuLa)$-U*Jnr=rv>wd+($`8)Zg<^DW}I)$GVv3fJNz1~cXUTctx*&)6I2CQ2_ zb_+KBj6uIe<145m-c?-ZORkQ_sXD^LRkWGloRVlgmGWg`44K1EHonnYw}?A*EkDSC z^T;VHqxR&$q1hucO7&HT`$34&JBWU7SMk(ImvCafO3|~fF=Va9B$RGCdWBYl& z1{t*x8P$%Ay1o*>X_?>ypDPRatzf3Hst>)>T4ZwIGrp`-O-p6?Oj=a;vg4DIj1qtM zWkdIfEK9`y-76)hh1&XU{ubf_TIjz#`7#R+={t{hUhURE_k0-Lzpl9>pG#dG=`%~G z`TS`a{AoG*@J4u0JG^NS9P5QQ)xd{Vo94;^^z>cm=o$2@&G4#C@TD&JQU|GrbSH@@5f#1YF*PS!VUAdNW+Lia19&(M| znPqO!*`khS{3lKBU5dX~xpF;a*)4mip9Ds$d0tDd8Tl305St^v;z{7DY#G@R&F(JX zYRYR(4{<;P=yu)qF5m&`fP-Ef9cCA>Uc(;FLEdraVBhQDk-`yT=Pj=w@1(s0crV}U zId>X@`f#t!0CjW+@awj*ZdzaR?fAO+R(OWKCoVm7 z2XG5Kq_yY{;Fb`d$V_+#aKLvSv^aNb7kZ$9kJx*Eb;pPLE4EdFdw+EnOM4Z<%e^Q2 zcv<7{axX9+09H>h{zDodmj@kQ{?g&)@Hlvx3*jYg zWjBMD8^Oy>pL0bcH*9N^_%$^l*uQV#I2 ziE@C4t0)WiL<6fSgHyKLOnHqfuc5rwmDf^U=gR9SXIwc$xy_Z^D7U+EJLL{n9yUE$ z;F|@$;LIXmk%Q*_{<`>E^dMR|LcNVV-we*j_#M!NXkr>PA$r&pqKBO6fwv6UoK(6S z`$r*qILsPvh8~`T9-4!cI^VSD8u^l$)r7%=ye4_bRzc$q~5137r~E?~Qpwb;Qr z4nQZp@a(t;%q`D;82IS#Q9K)Z4EXp+Zs#X;-kE(xbk0H6ay58ygfrS5n>JRy75;Sq z`Vp_X!E{6K#vG*16rLxljX4B9>D_r|$i9=Vw1|4(GOW=j zrl$rOTk@(%V`i1pwdR7(;=!%6q(x;WA?7WfJU58A!)fI>G-Q}9QU{J!m1+z)! z-^&L1n|WFO%;aNMODdn2m4(}J9H})Oi8*A%F z)9}?{=MHlb3zOq+1{9rubLw(H;@{g7u0MDoJej4Xe zWV1i+rLF$Yvp(UXV4!&^hS48?q2Jl;eX8GAxpvj>hh4vhHWTrj#R=u;lis5|eU#DD z_h$doyP%xEEpDivKE|TG%Qx`7`fE2m;E0oEWn>HOX&-Da?Q|n&d-Oj0No--h&))8(N`(a*pIMar zk=csw{B)(p{9ok3B8vMjutz&J9=+3eqUd@}=4xb!H%GeOD$3-@qRkZ@DcbhyuRzB7 zIyO5gzHR z_zK1W4*kXG`7Nr!ALw#bHiDIlHpba6{&6H_;RD>V^5vlS}d+}Ts^v2EyE$pyXFx9CH2g72k23I7C> zL(~ymUQJmxMKNpyN8#H%>NGh#7>lOV_B``p@YO|&9>FUAYx5b*4=d`SF9 z?Y`Nz(?dHw)+eC33--luL*JbcZqhTAv(W$k*uJ5qWBSIHVh(=aJ?`5hZR>$qPt}pO z&w%@bB{9(eXVvRBZArd!)BQGQT|3|SrN z6*|IicTrx(eAMqA$^pOKOF8YH_cFFY{vK;=g4N<8yj|k(wt;VgF)pPXjBy#|V2sNt z2V+!BN1DF}Sx51OfQPMR9Euw$<_-7)YbuZWyg~e|)@-d>&9{FekGo2Qd=6!o6RXnUuWoLzCQmu2rLiLHtl59 zpW0nb{U~yucv|)b?;;m7(RhL#{2^|>0W81XFWxtgy6S^91@_%m4;iGM`cQqIXNRBl z^(vp1w$lE1@^&lrN9#jcKgru@h?b^0S{jchEQ2RVzxg11A&`UOdjYQx_Yq^$*=`+XJ$ z%2f+2i}b{gJm>3(=RW7_h++MD0eWtH9(#D`=_{xwc_=;dm(=z1`h;y3;fVk+@xGe^N9 z(4AlJ=BIp78v9sv=D9lBZ&ICgH?`Y*Jn-)RreD2$&ZzdN!*lXcwPlsl$FFm{yF%5wI*0Sz8o1?QkYq9UvVe2)UU0IEnd;^s=(5>i`ThFnPm3QU=CSu*7+qHx9M-}e2?+t^DgAMP+p)?&gB9Fc>fN3zy4l^&gik9 z+8OvE{}~%YZDZ4o@Y8fR`6N5 zmpY)W)utiYhF@$gzOXJM|CjMLL1UYtv37iB8E9-BG`0r%X~s|H)7N%%Xg_arq8h(F z^kn(Oo|LIIb@=@8h2>HP8>8b2FBMHeH`U;(;(M1tH%s90QPZ-4IQ}I0|Im*I`jw-e zJD;t69f!B5jU@Vmp6hSoQ5c(V=P#rUy?>Kwtz1C6alWgE*UPuQoZrX~?I+N`?`K_R zkU;~+Eae?%-mx!M)Gp>-ntJ*+5&Z(Rw5UsY*Iye+M~{$)T>DGSx081W+Tqo6Z(#N-wZ}KtmyH9#h4jswD7n+;|yfpWqp6BXqqMt6lO)?gJr?Dt+ zx_n(r$f5od&(C3~d$s*M>ut#cUMq5PAKx)<{Ab`nmi300?#_Y_S=Jn$x&z+0U3im~ zzpM*hRL#0*&iQ;ax!~rnke4yT{;BnM1BV7X*BtMs@mzdHFnF8sp9=;TvOg{us*RlI z!|k)~eY^viOFXjTqILFO^RA`dEpFb}2=K*T&ezui#RJT7C2P}Sp2;_LM9lW2F_&fL zMsHysGF2|z;a-vs_8cv@1U5b#Y2U}M9{>B;O7i))0k`XN;2h8Dk~f^UdI<;#~&WPZr!Y_m@#$^WL9tz~?y~pJyw)*pK=82zIw{fOYDk zj`ex&b$hsii$8`%9iM>D3r}uT9-l6D#KD!@xbr|?-oV*K;mcC`_?3G$%Y3m@V~v<7 zcdMwKOmq{m`5IG&=ks!n?WEAU#ED^0ds>$tM`qhLKOLD-rZM=oLeB27CfbR0i9P8l zroj+{a5=sa!BG9lcc3=HusIDsiVvF|7B)WxHjJxM{of0%2sV!r6HpABli?R?D-4^z z&(EHrxo)Qcy$QoI5rU;~M))Iq5$-T=Ums$FdiKl(iDkt3&# zc;0~41{yBmJ?CWbPwUKcV~6n;)l6sXT2sMLydq}4()m_kskPIZ-Qm`zc+JiWt=ViB zk9e9nbB5L{;7vE=ectjNbV%`*Fdw16s_W@n^Z34W>Mmn_T6$j2UZ>VLL3TW?v;1bN zcU9iZ5H4Y(ijfERuGHKq6ZhYK05W0T} z5xTtXs8^LyVHNX)Tn*}O8{AA$8Zf}P^$uH(>&%uOM8x{xR0tNxg1?Yw0Apo zFY#WydA#=@wBz4#%=o_z&sH0sx8uwm^M1oo|Gmb!#Er8U28Uf8;axsIDS0vVq$?EH zdnb6VzBJcU!DY31HsjJfitF~cy07QG+WiY`zh(S>61Zxe{_SY4OzoT%5$$`)=ZWNgB_pFNkdd|!9ppjXU`B14nli_N=Q z{t^uDN{{d^g+u@R8Mu5(%-A0cXS5nbI9Ymj!&BOsQZ2N zyoT`@Q=d7VGj00rS;l}2A5~A!l}A>05viX9V~UuQu$u$_q2H&*<@)MVznae(j9GmB zBJS~7&a*gt9KCbou8{1SW*wc5V!SmD&XOZ% zG6ubmQ(nz_Yn`>WZG4Lk&>#4?^!<2zsg3V67U9Yz&y9|I)pOacYI8AT6v(a#+n9ky%Y)8`7xqR()y?Rl)>@#x3l zyJ{+ESFrsoza?kG>om*BTFKeZg!HLXk7n2}xvjHUegx}t60p_!2zLa_1oO=2FGz;l zPKMgv7;5{A$b#xI+79qZxTJpMyHXz-dm@uzPq$z;iP(D+u|hZ=uG}t^@6kd z321H^?e2RnQywSZp=9RX=NhB4;a3kncR94woBgKXmhpM|EZqi-A|pYRDK-gDqYGR?gI8SYw`O8aT00v zZ=2Y^JsZEe&-;6QEl2w8$Vt`ZL!O_?WufyvWaKY%q`{kAh$7I z8~eam(L0X4+e7!vJdB;ckUmoE!=A<*#nldk>WQlD{#ZUzz+z-anf^zwc?0i!X`Z9df&8)*3)*)rKupax^Z{E!vfIHZK zy@h?&owsVN+?QNAjWhe|OMB+jWepU&awq$*ci~4&ml4y@uQgoDm}74J)=@48_U-(h z#c$T(m~~VvL^JQShEL_M>o}df$>0y;(%((M(A&n}**Dm=@wPEWyEcq7%N#fhzEkt# zOyYLd%HRLh-7AVGvg^Z`5;clD>UD5ep4z>{?PTw@w1)PA`~6fmTxXWe z`CPc;Px~9wfGa+`&RLw9h;wG5!rt+>!`<mhC;Z4j01<>&ip?(3WvC3Yy^iEu>QI)PcX54f$KlvZ@W&ENA7|H=k@IC zywf|y55GA%H{NAR@zeYJ_x0@GXJT44@f$lP zVoo%s;JXC53Fw=@ugbY+$^DTg_V>y(C+3*3d?LI*J>>Qv*AU;r^S-b@`e4W(y_WAa z=MU3{Xh(GSeshIA|9`bG?4r>Vx&gXB~xB2gs2)qb%MQU3W2KoWXc?AE53*{3K=Jm+pBN-h|ia3&2r0p*;iE z#Kus3CEtLro!mGMcLRKGUU=lMK`;CGic2^nsdfImJ>MTq-b8(^bGW}r zp|}L~cZfQQnHaB*=Kej`@0at#c8~h{NY28$cwL&^x&(OS$13bV28d6OjUzX57pL$e z>|dV+-5w9lKr^HES_0U76L|RRUD$s<&+W(Rn_%x&tMK~#752`=zhKTfGhY1uM)zLt z1nY;10nz^ZS_f<8)K*OC0}#2>YZYI0$#BgywrTcxF5tTjD`DmJP+>2 z9PU4TbZp!dUj8+6*L<}{+s2wd!~PC>PT#MN<}BW5uTuP^fWIk=zmHQ-I1|RfjiK=f zPjw%N@bp9Apz2;@Y2V*BQtX}DjKTMPc${wGp=Zid8SsP-D)c!srSxh5GXhZZNT>6{*6?V*;OQ0*|^D{&ItDop9fjmCR zTxoei)LceRnqCWU@jt~V2>-%uy*1QUAZLH$;==Wg1g4|Gw@nGS7&uKj&T1v|E_nMi^eZ}Q60${^;3+){(Sak ze_?4wuqntc@_*SFh2k~7JAb7ei{hh1D;JN03;SF>;lh9&t7mC7EC-)?u7EH5Ej-7s zBmHNHI)S_l$2)uv920zs$9k_DgJhxRuWxn!S}=LPTfab$xaPSOZF3%#wj@Ksd{A&y z`^)%N?Oaiq54p^ZX@`CjwFRB~sr&^ULAwpKt8d>+yQ(X`F56eOwDecqL9O@2x{00@ z+c!rJ`1Xy?e~4!+vG(*%?3bNYOWHPIgDPKj&L{?aDfZ1Yv#4^h*^Zrqz1{BH+ni_f zbWUUe_z|2BS%=IKUued@kzFM?)FK;n=0mod&U@4&FQR+{USUJ)ZquFp<@_x>Ti=S0 z>DyZV_I)DCJzemL;6t(Ru)$I-bI@u?W`mcn+O-;4Hc91J9iu@wVx2=E<`P>swjP-{+VO_*N>m`R7XF z9x%gh--X@2Q}E0JuPpFFb`F;mpC$RH0!@U@eq^joo6naff10lcw@Q+t4ULJMTEsEe zkvE{#l){5FR&ccI`@9!C&|A<8Z*+M#Q`mgOnQ@=C;HaDv_t`TiXC$Q?YhEwL$Mc;c zAI|~W(3}Gw&%OzLJR4rHkEdbij{_%{oWRLH8l2p_?~el~ z9N*+(WGMQV^+zJ>`=w zB>dsi?R_CBbnT1Gx$~EJv&*DA_-ABG&=22w-qh%yn#7YSoA;MJ4$hwMs!EVgP;wi) z%G$>_;)}F*a)ER9Iqxsx-VND*YOj(r4zfEw6iM4NYPxe_yUuIyPxo_N6KS^gk9=8U z*%Q)-Wlx0rt-?>Fw$+wwfy98}p66VD6dBqT*?+oxrTR&94dM@MO=js&{?ZgOy&j)d z{?nw_&y*~b&tLxJCeyUxsmNf-E6tyB4?=JMC8nuzA$5th?8l(y61EigeRAHd-Ee2+ z@Qg%G`dCj@K7U41J`;_j;4^7#S%;15&#$rNT*~s9pu-{Woev*>Mu-Ik{F(dVK?MQ(s}b z<)hAS(V4cvmi(s8L< zyYnN1Wzvy2lUF9VrkKZ}NZP^HTiC_l^wC!ees#DqzKAmEeeQ3?zb{Z7J<~b5W>=4~ zSU;`K)IAVsDF?T$ZV7&~R`=kmy>cZuHh&=wLg60sB4ZU(kltzna-U(YSBNK9T+} zJ@wV*4D0{=0{V>BOYe7Bzhrq*aJZkkn*U$rFE3wc+bP&Ip9E(FF~N*F)(`s4yvJO6 zv&xU7H{SyuvYCOC^Yh3?+nc?O_rlMxjr9IddxE>}5fQx<+gbWvef%9`^VhO4rffl{ z9OWbYEaTUA@^{IG%0-4})S%A`ckP*@oc0LLNNR856m!`*vVZf&n~y4e)=jj@_=We` zv!bP5YhJM$z2sz#R)YWJO1sva>+nb8dLwwF{GVamyJP~~(_VyN6~;aJ5(3<-4&h!S z@KsIq^GIkN&t@IaFAK)zERCvq}$>H@?%9AN4pr3v0XHMpfMFaB)#{VF5 z{4VqH>8jhp*Qc!pOIxC=?|~PI_UWGRBIWSnC&1M|%T!nc@db?~j285YipwQ|A#Twf7>|g|24P%54iO&wrwAC?}ZyAE3@=LPNN0i#?F*Y zbusrH-i9AlV;7wSymcz;EW9c3xfLzFN1LG~oda3Xa)&ElLiyA9;n*9?Za$i}@0akb zlxJ%5os>Ufnt^3$@=s0N(vaHt53_%!Y@nb&t@|g(;BEIzfM4GZt%v1p@b1e(`1O$x zekqTiY<2amd0u~1{m-=fY%{R)B{#0OXF151R^(^(ZML#(H?Wl7>RX)A zkS|EQau(-Fy5K3sq(=DQy?o2M_o+^N-VA)sqtC~PcFA>DbUtQfr=A0QOP^t$%FR_X z#D^aP#|7Ub(1rTkd^9sdJXyTi11{pn746f_S8V^+_7&sByBuC<4y~NW%YYv`^PqKj z4c{pKA@FTT7HfS28UIP>PB4sHxRfMc#TscWf0lpP-r;qoiE~DZd$$LSxtTVnm@`M# zx!wAx&P-~(HalATqNO$IAccI_h1}TPBRu$)e4WKF?HOxquL7Uc&lKkHDKm7s#vs~W z&3lc%c+R<_KCculoXXfGD~jv1x;hJi<69hDK15x?!Q6l)eZZ*gujCOuPn|gzYh6Nw);A??!9YZJPXj38)%!o z6@2Qxe=CKKOn?20d0vmM9HqR3vV2ub`8|u@%lNJJj8jHGf(G`f4XbnL?ojo$*7aq` zC!_rPOFw%v@^mk{r{7n-?fXvJybC|udpgqO@KWr~Y34OE<-<~bqGdeOICWo^`ik;w zInUI$?v7F4v;%GXeJc;U>Mo-leeZwM!#6$d8+6w(zR`FO4ixMQjkBF^WHXFsPXzXc z?2y2&&{=Ecv#NqWCAu;u!#rxygER-}-O~32Pw7`0r(jw`T!qFdf1KvU-~H&)z_UAx z4lbA>n|sLBS2u4LvV0x%D_YU|${v6&ut$iYFpar@AF3Vk)^EV?!aC+%5@kG>{e&(} zo~@O(&xo19IlA&>+%z!$>FBtZ6IX&g@nj0V5j}@9-RICC`6nK#Y%;`G(2D4By_G47 z`}qV<4D)q)7;22s94~Rc|0~S}Rwn41Nqi$e-8$wl*L@eCRkCifF?Jtf7WqpP(Rb6@ zrJ2h13NK>LJ%@W@?Yq0^Tm6)e)LELTjI~l{4SG(-zPr=4^A#skUo#>*rLU~-m|MM4 zc{>=-3ixAdUxK#RVJk|fc_sc)wXge21dq8}e@NTA&l|M#_{b>T)KNY# z&5=7E)$+8-`YprGyUzyo~LuV8&kM3+u=mGzaW2)`qP>w zSkKQfC(ToNUp2=t?^EBuW3NDUtvI)ZCKg`eX;JLo@ad{CvH0EUg zh$oL{-vqV|=gzk=7W9Bc-1(jIWcSG5EPE$BF7dLRjEmp+fpY!tx3E2Sk0eVSjYW8= zI+{a&K5gO0o)fT5=LE-7%nA!<4_#?$Oy}^^#H00O{e0_<<<|^Vyw)ErI=*OW1ZY`>L zi2Z-|tooOD6WgNagly4G(7t>lz79~=@or>*R&xV(b`8&eh2KGPLb$87RxUc$x>xZX zXexcauR-~XMYFB=8dfaecONpv>J-hkeovqHaVhn+M?8sKJ=!Zd9{nh=LGite*r2N^ z2R7*6pyy~VvOVX~r)=qZ<|v-B1YTWiN3WW|&I$8i%cnBNh~JA(iRZi}Wam`i!x7v9 zI6~j_g^cTZarOu6jjp{HJ#3Iz6X{OkL&5>+XmuUhr_wsyPQ07?Q(0@_uS=%)OP2n6 zfIspR9vS#$<~YBMY*BqDyPP#$U~TefGx$?6KapuRXOTmD4z~H-@MF%9&)2;F+Sv>D zS$jcwMhdq1X^dCxg=NP+Y;%oQxl=Tbv!W&5Dz`3w&NKNr6eIO~_WI@2naE!M(HOe= z#&LA@tkc!CS10}(=HnWD*j|4lbp$u*({CbfCXuu2YWv9Ws%v@R{m{yGF z9fkYKQWN0v1<-)zIU;j2#)N%Btms>yeLq3}k9147U(pLlny(iuQAA|4P3w${L z2CQp~e0zsN{X;v_lZmtQ@kG8owe^~De0%$OFIyvwcm1LEM32I&iEw2s-`?JFaOEC{ zD}irMzM4#tuSPsOus6fLn$D1~=5rxm&2s!Q#NlT@b2JC+N|MFCn#I;vGl_gK1z*iS zgnTvXPcT|G#=38wVBNbzaI!oMU(IVnJnS8zbw8`fSM&Zcd^PVM$5(Tu^-1i_%2!ic z9(}Is=r}L30 z|75{OLf$0i(TL4!RkkO|dv>i+juvEhuk{%`kN;$`Z70|7>zZ4#@3G%@kLy1f z7=tIL$DyUW^PP|R_vZ@dW8|Aqeh=vq@|}E*@HI?=i{nSrHfCrFF!}HM zQ+%K7WD9TQZk@GoW3J#&S@sh9Q>tBG#`#m0PvB39PT)_`IOTireIqZOKV|J#|1h>i z?Qz-`A9;bcg>q{Kw#8s1Wp!`a79T$j+v4RD*cM+M!?ySe{mHgyf@jLEkSzgkvA&{O zc#6MQdzI1N><>7@fvn}Y6~CaW$3Y@@6TD=qC5MzwJrQuG1-;q zCVhcTtMc*eV?KMF`X1x+Q%EMuu23HV3N@gCpH7@u%M z`e~pa4!J!(<$%^3*{QN6R=c&(xMWMn=6OC_Lizn(tbX{#apcwpC$|FqFf3~{&af@< zX8H|miMPA}TjG+CEphHRw!~cK@7oe%$27bKybWR+s_-Mp#w(6zcq#3N%dK87UtKR} zDvq@uq|c9KKV0DOV=VjOdm)+$@Z&s(AF>|=_t`JPe%KajPxgaw>BZv5i?JVWdV%)C z7ee;KhGXo99`ZP*C$Jw%lkW@J4~NIFAFdq3e)#hVcvUV0r?KpZ#UWl*Y(F%OVLvpD zV?QXzo^V?B!`q7NhZ{nBy+7uA@uweJJyfec+J1O4WIyb1I`ZFASGf2VeoOb3zNbA5 z?H$TSDA*5aYdgr`&hQae8;n7JFIqaiP4_m^8M!ubJ3h`aQ#$}S+lZzwkLQe*eiJ@ zZR@V@7h*SDWZMYrhMw#P?YE8N+6~)*S#j)5<2d~H{cbM3cKpA;eb?>4;f2@^7dqSF zWAq=`4)^n|Y=^t}E!!amTqRe}cKE7&*K%O+-?tO|eb;FgzW%=J>Wu|EA^j5D3C8sm z*a=M&*a_tm*a;fvAHq&(xb+WXC%pMM?SzlNKs(`2A_Y5PKYF`3pX`Jiot%8f&b24#0i_>gv}7#hj7AXDC`Zr zm_3Kfv2`RfrH{O{HbaBec>(j*bH0$2W*Cgf5bLJ^9Vc( z`wbJ>44->RY=(xYVq5~7L1)YZ`{xgBGbol#w&EeiV0D_J*dOr_z5m)6HpP3#u_-Qh zHpS-OvrRG4enba-2Ky0jb2i1*A)BIjKO(Rx=7emDX}?FCqBLYv#M%os#j2Osrs%uL z?`wcKPW82$SQEu@Dkt13_L0-rpNg4WLQLm0Q`Q+pk8R>vGFIm)M-+F%Eg-(zo}pew zOqSvvYl%PPPTy^uJS5|SjanxG2B9Y$UbsEm2F#wk6<}A z92)jEokce0&OY5?r@QQeSkML+hx+7a{ILi2(CP{7q1XiWkmmh|u!mA^yzTCsTZ4@+ zEu3>pbCzu>FkJ(zo6Wt%r{2RF+zq^U1CyP^zV7JH0OK}b+Qr()k1}%3EtfLEIk(&~ z_E3^@ZcX@beH$dhIk$Gsn#%`ceKF*@6V3htdq^=BVIR#!ruCR}ZvTKiw1hR%y+^O% z8{ZykZTWlbA^EAsvWL2h>>>FPN83Ybug&eDM9dU;Ov{GElZN=A9Ov=35^E*CQj#q3 zTFG_s8P2|a2E5z}&g@Tmj6r)TONbx-E>|u2XWu-|zUdA(ovr7d3iHLvL&V1FzQ+A; zD+LyJTKLHq-(=Qr(EL->)jrF&i6LEVw$LwU{E0(R9MLi}Sf1FbSd^{AqRdDxWK0@k zA^xDHrESE2+|sgyvW-QF50m4~o#C%Zd(z9)mwz7aN}M|9SI>=Yu(2p<=Q~!6%4Bo? z4Efv@-#9n+AbEw;<$|rA?Z3%0qMKUg`*Ks^Rn!hCp`0m;vky>HcU?s+8mZx3qWV5F zx8|fsMeJ%bH?`7~8gqu?Hs5Y~@Fg*?8h+aAncpODE^#h%w%+L_x-P?K{nM(v*=^&G zbdQwkhHcyTIsKyz+?0JAjt%+Xh`emj0~P$&pdw<$(1buCeyrJId=+X^PetRxQY2m7UlDbdE=gPQ^Jpz z+z5RB${1R2>{HvfA&2CXYlB{rEm>*`3q~6@iGr>dO`1eSiLF_

1!V;=Lpn&x+3UZpr&&FPx*h&T!XWxn{$Chz^%~ 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 z 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 JkcocY{{w)>/dev/null || \ - /etc/init.d/adbyby add_rule - sleep 10 - err=0 - else - $PROG_PATH/adbyby --no-daemon &>/dev/null & - sleep 1 - err=$((err+1)) - fi -done -/etc/init.d/adbyby del_rule diff --git a/package/lean/adbyby/files/adbybyfirst.sh b/package/lean/adbyby/files/adbybyfirst.sh deleted file mode 100755 index c677d1bec..000000000 --- a/package/lean/adbyby/files/adbybyfirst.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -PROG_PATH=/usr/share/adbyby -if [ -z "$(dnsmasq --version | grep no-ipset)" ]; then - [ $(uci get adbyby.@adbyby[-1].wan_mode) -ne 2 ] && \ - [ $(awk -F= '/^ipset/{print $2}' $PROG_PATH/adhook.ini) -eq 1 ] && \ - { - sed -i 's/adbyby_list/adbyby_wan/' /tmp/adbyby_host.conf - echo conf-file=/tmp/adbyby_host.conf >> /etc/dnsmasq.conf - /etc/init.d/dnsmasq restart - } -fi diff --git a/package/lean/adbyby/files/adbybyupdate.sh b/package/lean/adbyby/files/adbybyupdate.sh deleted file mode 100755 index bdde944a2..000000000 --- a/package/lean/adbyby/files/adbybyupdate.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -PROG_PATH=/usr/share/adbyby -if [ -z "$(dnsmasq --version | grep no-ipset)" ]; then - [ $(uci get adbyby.@adbyby[-1].wan_mode) -ne 2 ] && \ - [ $(awk -F= '/^ipset/{print $2}' $PROG_PATH/adhook.ini) -eq 1 ] && \ - { - sed -i 's/adbyby_list/adbyby_wan/' /tmp/adbyby_host.conf - ipset -F adbyby_wan 2>/dev/null - /etc/init.d/dnsmasq restart - } -fi diff --git a/package/lean/adbyby/files/adhook.ini b/package/lean/adbyby/files/adhook.ini deleted file mode 100644 index 6a7613ea8..000000000 --- a/package/lean/adbyby/files/adhook.ini +++ /dev/null @@ -1,14 +0,0 @@ -[cfg] -### 2.1 ### -listen-address=0.0.0.0:8118 -buffer-limit=1024 -keep-alive-timeout=30 -socket-timeout=60 -### 2.5 ### -max_client_connections=0 -### 2.6 ### -stack_size=200 -auto_restart=0 -### 2.7 ### -debug=0 -ipset=0 diff --git a/package/lean/adbyby/files/ar71xx/adbyby b/package/lean/adbyby/files/ar71xx/adbyby deleted file mode 100755 index 6c8edf1cb9ba7170e765c5712ad23f3810b79b27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208336 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≠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

  • 7}HM93ASfCH$10KFvxyZcUbX8B(hwhu> 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 z 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

    j@E&$1e5y-OYg$p|qY?;Ht91 z|4eYOM{@B=##o_GUoI{Jey(C09?uN+EaVyc{xp7-M@t=c{{t{BK_ALjjhVVVtL$2^ zzlIEab$3mt_(^MrO=;p$r9vG3lwaV%y4Hz!wr9ncAUnTGM&J|F=5N`JPWE6eqGry- zV0UAqs14@W%Kzd)mswZwpyCM$&cI9rH>If`?x{6zpV|k{PgwmOb;pu@inqIuEVVSL zJb2kS@Tl+=d%3ou>lSQR(e~WBrs{Y$m-OxDTBLWgtFdSC1-gf^r6gatcVjS3EbbD{ zg7ED9Kym2i0`J}=ob{K?k{q@SdVK?X3$Tg8dB!0-tWIkkdJeu~6}dq@?i)p(P{*@F z%Rf%kI<8)9i<<&1gt@^TA^$y&=Tt0%;+k&r$>qNoVM-PB!$$^)@Q&sn_l4GFx zX?@eA$K&n|Hy3oKLT<}oH?qAcaowY{*qtYUk&EsR^ry`t!78`@QS4w7>c7RsY!#b2QQO+-{Ay`tULZfFdohz*R|(W z>t)qt`3?TV6K4jB@N6jZsq%BG1HAviwlCfue)NcY^`l4d=HvJrHRAW&>a5mAp$+b0 z!Jf)p{pf7?F2jC>T`jB~*n47&eaLm{7Du5sWH))2v&ErDk0koD?17t?x$1vM-}Xst zGkdn)Br`LiiTevR*uEno(XG2TrC;%{Yrf9xg8AIt5e zJY^GSp)((Tbk-Qw+&+fQa5Z)AGIfa;-;xx~sUPWAJ63-CIU&z0hR0gG34io8)~RK@ zB~uqH#dKG2rrMup9>+AAI`;j^S4ydWZMFobWcZd;+K@9-S{uq9ao^7ar`;ZS&ejX0D|5E4%$eEeBCg8Xzh-CW4_gTpKM zWACBcM1*_=dsQ6t)u^wpobrBj(ywv|=0tOO|4gvFKk`w&h?cJ^cK%%39pge->V{dBp#R#t~jHj#r8Au2;bKYuH2i zX6ygV`2q8LMP;wB&O6R}%xmOVbofGidv-iH#+D%_U+4Ch3r!pY2DEV&Jw4x?(mCd` z6L*yqtEF6x%B|yU6+N$%GX~q4-&DoUeObPEMO)s=x|g))TkQI`wdauo$g-ZPud)_; z|4ZY=bFeic`#2vchK=_=6S_QRYRCh$K9Arh8KvLNA16QXJoFIl zG{3+6FXY2;FOMAu`eR!>v9nwr%#{CG{agM+-Vp~qjeSQ>@^Z7;`PMkO$JV}MjnvCw ztMoUS3XCh?r}=H=7gSF3!4~R4Z*-$KUJd=FJh}6xD}A{$>uxb)R%dvyZjt?xbIe#* zpNW;O0S0#62A>H3WcF$(pvouW`}5fPu}F%wXW~7%ki(I9-g!Kgv2(uCh}9juxAp>l zN*)>y#=JFh``xq6V&2%^Xz?#t`T8~nE%Zz0x?7x0(857`SI|SINSt6leqDj_-!A#- z*@wFhP8~ASvSC9hXh3^mtK!J{hj};Tgc)}TS~&xrv9Z~y61uX4eOE$<&X}mHnC#bN zTPGL9WOu8~HvY1bt?h@9%ip)Ln{JcB_M`81>SH5k#z&o{^wF80G1K(p&e z(l^*w9Y5jw^D2*w`xmvZ{>WVz(^#{_1L1-2tKfm>G!Epaw|JGPaA{78Ht#%%JcXNk($!LD)P5DA^w$FjRdmU%UURM5z+Usdb8R<%5 z{Ld=(on2ji)?DAwX4iI}(ma#IH%`B{1KtA*<0?(d%HNeNX8!-GcD;EMPv|4op*ii{ z-CYIqCXI=?jlnx9aKe5c=xN%CimyGJo&KwIzVJZ2+Lq_MxEEBeSaRSg$~#N{JMonOc>E6iDPA#5xlzUgk0aX-lDo5?IAj4?al3R-(32O_p1f$T#DCNz%%pl>|7sl zP}*0#Ka!zbhFBeI8QJUb8CDbXSWo^)+PoLP6yZ(jzvy!YzwDzVoloka%F{_teTq$P`q1EX7C-ewp`1vpc#{OrrwR^a7D zuM9A~g80cJP>$2lZmu{OC%@mgj{xI)54vWCzLxLdIX3Fs_PAyZVW+FLmpt$TYfk~I z8TmdHnUGSf?vy#!YAlsG`nGda&or0p7UBn6A3YMjnsZ%|_r!?muR_)em)T(_WNuBa z8Yq>I>30}k+Z`zv`q4w;v+O0{?Z((DqRWfnxu2>`6Y(U&Nt48eh816huWZiNE5prv ziFmcmp|Uc4?9{j^aQmXlB+v?T@tF)f2F{h&ocH6vRWaaMz0+7k6WPAO6nBQU65mJK zyb>PSKN1RE`Eq#Fdtw@6{B6cA=*!+nZn5m4M@&HUPX2Bw*X#_7K67NCS=!pWyKjzO zIrm4;G?p3ghF-Bc(J4jaPhyi+=afX!@Sx^bg-aJ0**5)o6K4Z1bMbFG_g9*ybg7e` zCPxhW+^+GQ3U}5IHkf-YE-yCscC-rC$_xvY(mzJKpPQgyS zFl+G<=?~>6svV8Nt*duTst_j*e#qi?^mEqMRt$o?6P+K|NdAz+=VHYpEWFucki|v> zpFi;S5@zE03DZA$mct%Ur&DEem$CNxu`EJ_JJwc)-Sh7?X_GF*or!~O26=h@N)xbq z9h~Um$rWbXWYB3zgq*I#*6rT9I5Dl<==Q@J6K!_z{ZR9)SacsXYvZ3gt+(t%(RthWD5hOwQ^ zICZvpz)2_L=(nYg@Lm}sXD%up1pYpxaZ;|Hd0IPgGVEA85PY0u1FHUMY`|Yyn{n^% zODlW{ETA!8-f=gY=JRBYT@SK$EwFA;Y)|8(|B&>rXhnNrICnfSvCLWO>s(i3XI$ax zu{$yHdAzY-sIfQ2Opn(meCaqyKI9qwBG0^-6E-|J=+c<1%voT+GoEwx4t|8p_7u?a~ow6%9t1)2h2YR1e?hF@q{kkCjC=U8| z1fTw#tQ{d(f%lD()QQ_Q2d$k-&gr>$lm6?$33|@v_BA(;m!Hu1`0Yq0*zsbcVc)&# zm?yL}_s_Ha8g2ZubCkT#6n7GjhU^&KQT!q&Tp~|Xm^So zO__|!WQXi~&I$J7mcUBBVSRq#cRkI=(K-= zy(pvP=D~w{mfa#4luu~R_%*KbeTuyI>Uedj*Q~PMd={5ZisvdWR2|FpV;!ZVc6*sGyK5wSI=6(##pIc6Q#)T^z&Y{R zk-0X`#18K?p}oD@yJ*iE8`|C(K_(=3a_@lkp>v0jtuZT$iJil{x`Uu`l5%WdDwzT3 zmhnuqZZE3OqK&ygue6)j`Dw(dvGEt?=O+c1%0CZ24VCr3($tsH1NZ1z=CTJ`&1KP6XIZS(4BLHe zZ(yE1dY+3QGdX2L^|a2=ylZYxdBfzUYzwdqvWKu0nfSaz9L9N4HbnX7`W_}9!!N^G zdBl9k|JGh_ALaq#Ki#Ywyks6ig;rSu^J74Z21IM*)OHYGnZ-Bv?ph{JW7{12KvL_p z@HURg(*588zMnr=+QY}9a3zjp@j+eXQCS`{*Z}0m6|dg@EID1|$?YDnI;r>KBKe6& zibLCvlD~Px_H`g7+a!Ey`}NZc+h^Vns1E!%QlSlfdgH0jsJ!IB0IDQ>*n7`GtPuykfZ(YA94($=EAFWq8#J0t$Y(@6a+8h-2^crH;*vg~z zC+COU(0_7%$PN9~@r_6ZKfXFH9J-<3!dYv;LpKaqUlu>U$al{dAeWJ}827*pR|>`& zgUa*FnR|cW221yqccLriM1IE&{U)XS4m$=$X@`qo7%N6L$JQbd;-{S0On)xe+HSb8U7!^&);Y=1q)9n?eht1PIf-X z>M8Oy1xwj+Gc~}m+9&kpFt@g0;Yd6l8V(6Ai3%KfmRotlfD;>!iIn8>Zh@cVdsX>hRrxC^Z}-GnenMx?<#Mbe<}lyJJJiOj z!oxmf?3~|n8a(j6#{t)ScVCGfY2zHR0pO(E*8n-AR=(>VOvZJwg(EUu{aW}<_;EI1 z?bARt{OWSO%=084#iK<%_v!ErlYG})MQfF{R>4s^twNWgJInvTKx3GrOK23jJ&86K z!VSH{zgMJJ>ubCmoWR>bXm%`r>+Y-C?=akMx@T3B^*61YyQ+P^>9aUL(0i1!mWN%w zbAC-9@usyss9bkUu0Q)lsgK=^PwTHW^TiuC{&`g_3_GF>eVq+HhV!>>?I0JnqcZoz zM?cW-_I}_>@u^@S7{Mc5l}0?hSU%A@k|bYUaG_bL0$J8eh&hx-_SD&Wh1l49>&T z*s92~{bpEsPnEtnkHO=QL)QQ0e9ZC-w%k55%o*Q5QG38yvEYpr7z>8~(X<#&;Y*2L zfra2z4G(ajI3T$dW`$^J4wk2(zlE@_(5~YCW?i@q-TsUnJM$8ZUIlF~%Cjf%&!XC(A`)tMr`a~X?iF_R)j=GUD8>G*$1-5y5EU?y>uXf)NdE_lq%n=!C_Y)&e zV~Tf1GUR`R`-t&u?QqOtPp*x9;3{Ad?ZmbfjiZ$Bbz(w#dT1Tl`ldyBCYR|Uijo;tHX|`$n)EQA9;&N{+*%tCqO>va7+Smud z-YJJz@6zIp_-u9Dzok7V*JNE!|EGwZr{c34vbb|q>)JEefljy=o9sE|x9K}R@thrB z9L~0QFf<{J!S+jk#i6YBYw0XI*81=T)IWRCBPDM?cNgDFAEfUmB{%82beg`OWN#Jq zY~QoUz}oVIW+sXMjgK*dT@T%0N0rnkYl{D2dp&?r$c}lhY*k_)W6TYB>sjTWH|Mgo ze|%WG?$zvL=>tNerd{PqcU1QC;O}PGzw-Ih>|d!Ve~J11+`@J%J}LKUM7EkURsVn2 z{3>(d{7VO#Zc|^_z(=9;Mrgi%YMT9~z|^F*7Rr93^{gY;Krd^OZfTe~*|;NfDlw-I zo;)Y!9)y61$3QO`&TD7_?=$RoCO!cFH9D!vTFHEF1Z7{y)n;Y;)I-}L_|oQEYh0Co z9=!j(;{RZ;XGXw_-8(N{t?(0k*CILM^LMOLA6jgLZk1!sIl%1G+hX(MiP^}$hmLq( zsi!)Ae@S01%+g0oIAc~&z8U&ht}>iUHCx;de|?@jJc9_{j;hB8-)>^gG0VHaM}46i>U#p%7oV}`Em?n>b55W~d!~zYYK!bm>Tama zJ-Ibt&&$w!u(j`@JG<8mUQ}Kqdq}c#G~84B>2fi{9Ejm|J)%6Wd3;pp!-K)`P9Fv( zXd}tlwojv5?YXhgiO#jQISK|JO@6t%oU>>gB>ie=D{U_1GpIW(x)kGnIN3&?zRo2C z7BT2Ywh}PORLPqm6SV#b>jScZ@XZ&SOTr0rxjm0%k$fqKx{RCA&ySh;J*9qqU+WXt zZtP_yUgq0N?t$N%o;wE%zyQCn-UGkQ9{h->Vi)sDdkKuqWA?^oZFxNx%>2Gjff;mn z%Gt0LdXmoxy@|(;(FgZn;3wT>_YT$yZkh`|0i&Ov4?N_|@WhEJ7Dh{cEKK7N4OL*U zupV&uIb{sI#Qj^I-$wuSe*Z^p|KfA_j4{-!e~S-r$DW+ijsw3x^GaiJQZ^oa(j4Z- zLVt|M^0sJ8{O!@!i;wxV^*~SXqCaCy9U4z|zX^4%|DQ&*WwyjtA(xU<-g;&V|7QN2 zGv%~1ZunArrkiz-hv0^t6*K9BI@leVHmH!!L-3ptfMQd%^-=*(*PMs+JK~VUijADSdTzItyR|k2CJjj6_ z@#7N~Pl^HFhi&@u=hFH4j>jtU&x4oE>1Y4wLU`%yz|+ACIGO^nl#E#=c;Q3F+z4~^ zVU;_d^*F7`3ohv@xUh$xdBwZFqKYFHSDoPZC87qgf1j|ck7|DOPXW$Sx_DZAI7czmn$Q%`Nim`jpvkxRTho(tD3lrxkGWy}n+!PA3LSgpl}!IhMpH ztS79pa@gaOlla5(lz1d<)>#KSeml z*X|LtdLNl6ovrtke_or^i;;;xDuZvCP7=A8?k$=IAm*ahvDvR!k=4tr@puB zD(by2cVm9LmHfAoZL@M$h2qGkoXL6+y<@#K>IfcwiXB6A?&yXN*kFiUK;3JO_ zpPa7PBX)fDS?-W>BXTRPy%AvTrImGsj2-J3Iw%Ewrp#`yJni;UuD4vCfBm5rzyid;i2;Jk-n&txDGsBk6p1c zdJg64%(7^P9Dz8w3?Y8Ya)1WQ$8>gI({*Mz5!rr^V*i#7YqsBWa=dc;J=M0)0P#xf z?GEr55^SWK1QR`*ybPPF*X9~B9sI<-yR*4awqE5DHQNsXKYNy=XSX9W{e4dq4rSK? zd)i?Ag|*6ThrZKR3LYfpyn9@2s4bh%Mt{htx=CmI;a6xYrM934n~#ulwjUzyFPPLK z3!>)oJ?Augv5K9Hfm|uh7sV!{zn$tUSF`=F`X&A&eQEd4E$mO@Rz3d1Cfk0GNr`tY z%#Q1gzrO&V0^9;C*|G~`tMqNx3;1-P4{ZEx(kC3J42)jY`Mp1@*uRfkUh(%TG8eno zz#B6*%X+Pov&(o`b?OmvGTftwO<@7qs2PxKT81LzD0K5SW z@IG~ot3!CyKgp-+Pft$$v?BjJIpys?>LJd3+PpT|j=~3iVWZA_NsgLNcjzppv{}k$ zn9tS1MR>J&6Th8)=(D32*^x5m+UG1`LL<$<@@)V2rTR_TF3K)KCYAWE^UHVgeYTUj z11Ym3$=x9w$#JpD`p>tgcwegcc!N{ zWqRr|*gxCcrWi4ZcSc=veY9-`JH?Y*Df&pop9E9YF`~#s`4^^u&c}b!xO$vVm%Ajt zfq})xP*!IdMf9Dq{~7&p&O*xAa}mh<Y#VwsxL|B2;L#PLH{{n+a&3U6at{y^sX1HD zlQF%}cgobt=76?O$syI8fbShl;D2a*3+Jo3>X|?Glg_9Syr_4##xELL7eoG|K~z2g zyx`#gK0Enn;Kq4}g(+(Rg4Yt!67d_IAK+kz>TaWeKbCW8^Uu{E&zV=$!VaDE0X@?k zJsT7q2EQ(}h2VuV4KVQRVtd{d%>kzvebtx@K7c*HLGZv|+=f<)SNpB~vz$xCc){J` zfz|AL^5;V%BkEuFAHJ0f54H5vJXG$&PXO=6tckiaSbmY2m$uWCul#CgEWx>N#Sstg z;N}2*|AG1jzPhV`^NvrVgBs06G{F40r@n0Gv=EO~_^|k-&EK&wUdK6J%&~$C;$QEe z&vP|S!Jl*P9-vK~i)_E=Z`=B1*)u)OC zd^KbUXH-j_AV@xC*dJz=!Td}`*luQ zzH0d&H6Gg5S$;iyo*|oQLBI8kMP~({LdTQL?i(24a2pKhYvTa3NvMR2`_kUyk$vbI>_@JdKTiU>eWTihZr?{g(LCcIN8zMB-jP|;r00T>%Dz&c^jA;6kEtvbf~pH$ z*w3IB2hqBh{pabsBPH4U`9CF>1-^3Y0cmZt6lhhB4o}|6nPaoGK`hOECpPUnyH_#p zu>U(y`Y?+!RtENSMr(h3_FCk0mH%`ZHiF9P>=2DfV_+@7L=KmqQ9t_4_}CA%VEusg zf+F!zTb_8o%H}h zPkwLpf3U!sC$SUkm)pH^6`$*wakZ~Fvnj;z8PS2W$vAP>uzW1ehK}aHV7Lbuf9xP} z%D==P`vQKM*1i?HAr1phgB2glcAdiJA|6}m#~+UG<2@5of5cX~yM_59>-1jmFz^sI zH+Oe=x%=W>!RzGuKbrOH|N3>-xBfpq@0(v|{j~ZA9^QW01$i3qo`+j+4NG}$1^T+m z?<0T?{;zCyJ04=IjNj(N2;YABe!sl8|5STVPqSCT z(*<^2uOUCaTYJt<*_-UI@x??pwBIe*oeU3r6u}@y>`U-q-Or9IRj@X`_4WKY%YU+c z=#%lVcG-#T+(AsJ`p$@M&Aal?o6pmB{?O;$Jb%^n>DTRh9k7`GuL28i4o_9)|Ap5w zf5FhNpArn9(RaMg`bPDMgWS`DpONiFE=mRrg&Vx~pPcnze4-!v@Xu8U9Gto9Qs!8?&?>#vLuSgET zOX#xZ;%X#4T14_Fzjw=b#7|y*WToY+Kr#Qtz`;CY$kV^Z+y0e+zqjbgqz{jaUn@MI z!8=u_A_Kko|FfMxvR8Ls%tGg^y@lVZa^lHXD^LBlc6zY1=Tk(HT`w8)##h(b*Ep_@<-}OCr=HKxYdwDUVquD(TKvq86L)~8)9`ePyIaZ6S5Bhp+V`Bd z4_=~9$?6m<&zQ61Xdf_$y_&c`u(AKVInNe+eEbOyUp0TL0l$9QtH1QXYpL(obzgto ze>&ph>Tq%*U?h`)mGV}*z)h0%(iG?A_hI*jjLF2?C-|)x5;~+x_BML@V{Yt%qs^;% zDSafIVbda$$^YT*tcpIuwvOfby`a6EaTWub{Kgjs~9ixvBG$uRN zvwz?G-|U*)OW7~f4SDi_wP<@@!w+H}4d6YzF8ce&S+D-m;_Iwm@asSS zI_szX`uko>eQ)mnXz3rh^;&F&!=llJI{ZJwR`BNVeSiMmK9yH1Z-JFBKfWLH;rDN^ z1%C7O|6$gzzyGz=_s0GY`&IWf!vE|4Rp1ZbeM@sbSs(uWV;(%v@UM%X{(junpD6!R zXD@ro@b3g`bn0f?9_EMld+GP=?^o%sc<}!F%K1+vgYh8H4`jV}DvOjNkVb0!VAlM_z!3#P3RzADP<_;^P??5i^$HwJ1`7^P( zI*LOe|Ku-FXTOzw*fG9e(1V`tMpkwCvMQxHdvkbV#D{Mak6wqqd?M-7oRz22N5J-c zzb)(AolbT#KjL!bGI^k9NQN#fLws8CvF3p-#O!&0PS`A3$NmOuqn#piA20f2ctyFR zyhT6%uptq??y>(Wv_FrJ?^*tbhez63_wnt3ZBq}KtSMxy{|nI~A;4XN;x*=d!v2;Gr5Hw9KBag8-x!{;>i%XcmPBfB2)+kB1jj=wu9_)!1Z*I9qM0$*zrYR-&% z;Tm@%?^!J2X zxO?>Uosti)FTFl^eJA7BzvH#kXHK@f=zw}YZGWdC|L0>xIs=dx1T-G2f-`$^c0UfS z&BZ7d*f&YZdC|6b!lTuSe>868y4E2oa$PvIZRzvWm`76M(?1Vh-yZko8~!|xUWa`D zcE4Xg^*ZZ^RUdhF6j^5G;*a=tjEZp=EJ5h z+7?L@C*H@LSdz-4OHC$f_KI(-;Gea6aCljJ<+O6wqvyvg|3f#AC-()6Z*#fy zlf>5Q3a8~Chvgq9HE!idvF~_e*MXSv`o&LVt=)%Xhu~QG=eM8sVe%iXf1hSNuS5U- z&10`(JRfHcR-b7u3vDUZC1g)7v`{ zy-^yO4y*EDq9;LG*?tu@C zkSSt$CZM=9eN^xL)I2?Webb}=Ehf;pKA`=~$Y-@bI!69fO7TTQ-qKEBkmQ`5Wbgc% zgI|9{^KoBQec2_a)K9+p`k~YG|Ba)szP^c_+W$8y^UpB<4D+wmS`RsI&njy}=f^0{ zIR+d=^MYIDpEv(+ROY{+ezx=~>)ZKvj^WQ_ynX6crh9fs3-%rNrEKjOp8zW)xA<$`I-G}B(M?LSd2XHJB2dw<{1<}oX4Mq_rZ+Uo8bcOTF1-D72t?i5iS+aCMW z?3@+1qEG9uk)w*;sd#LMFQ=;PpT92I`EA+S0e&*%8IxOmZ9(?4a_sE-{8m#pzTRBO z_nLvN(8Ex4mD^jlQF_u1wsR*y;3Im5{;UBX!N?Xb-^S7had_Fj6Tq?xyzBewF>S_p!hBUb6|EI)c9206d4Wf71A@S!ebzu;)&QyS3Lg6Q3%W zq?wKBvx~oOQ=0blB5`716731C*(3P5W54go>ply^DDcRVC(x1qbLMS0&v@sxh4vqO z_#I8Lz>w%-$HT~$G`TU3X=^T+n#8@t^7k1F7V?MQXRad`az!{3oUmuQ#PCyoW{5pU zh5{Em#Hx49K#Qvbzmxd32>_GdC)yy`r1)FIT6Z0v?_ixF!#!T_Ab+h)Img2DO#Ik0 zjkDu}tg$~yu6SShFW`kYf|*+L95nvf@6Olzck^HgV~FT zcQN!BGChp%T%g=K5rnq;$UVpep2PPWCU=FqxReVVZmK-D-??6Io&DZLH=C=1R?J>aRExf@kgA zsRJQqbiRk?CtaE+ro)=~mCWnjJmr*68@aapW3`=p+Wb4?zJm8XVRF^-6WDS4xaTOu z+-o>dpY#K_HZX49&6#e{Rrk}Jchd{*`l9e1Yvn`CGsQd|o`*~mFr&w4)4A^k@5X%E zTpMjoe%J(;rIp{5inrCn%WGNNfA@ygwmZ$@zef{ zHI`@-bFNo;;PF9V@eazfr;+{CKAb3{eYO|yyvb}LCZIEthE1=x@7olu|-cpV8ZPI~taqwSE%!s}{_-!Qo+OHC-XS~?G2UF!Bihwp}8d(9t-U$v)7 zV-?R<@zk5dE2_uXf^FO%(2jj;-a9RM-%!C1_YA`m-C_3`lbm=Io*C?36`9q!=+UNI z_Zit`NpkuYN%oM76?Vs%2l{p2e)2V?8)(;<2jY6~oSBNRt3Pp2V^|kEfhRC+Wo&=? z#6EquJosG`n9$lQXOV~>(O+Yn)sx|zk)FGHb${~)yY6fD==(%2Z^WtiXP zXR?E)Yhcv;Og1TcDnK6ovxymKI)t7XhMz)aO=Q^0hj&;!)RZ&eHPv+hU2_0kGh>|b z)%2M*f7&&S+#mCFOn=7wLSvH*bq{^GpR;7*0agLVTNnLEO|CYR(xzvL9JGh@? zkUneBEmxb5o8_qt;|@3-sd(~(X6c=d>FRva?nSOme4KL6m_IN#p}%gT2SdKoO~`j> z7Ts6p_I~(pMc44zLLEa~Zd!Bxf-}2EbRQ<)>>}zcO@4|5zeBWlvw8D)R{Z@y{5P}c zC1_syFR&Y%;IGVxmAysiMmR?w*)wM*pc#0=qzdBSuw(Rmdu;Ap0Afyh4lj@3gS;tE z{T)b6Y{)2FV35ISmwZ2bjr2HkW)IP?MZfPYkvF^e%3j9Vc>R-6#SnTzsq+5=ZFFmX z%;OV$k2(M9%cHaUOU^m{@OfA=^13^b+s(7($213EG%j4wR%}4L8H}a|(&Z0{zM!X# z>`UDso5*|;`{VsQ+cG*|ZGN|TRpRP#j-Sr~vz zd)@~!^D4b>I%=+0zqtuJU(RN@xrMQOM9(I_N)qILb5)h>3A%wF_TwM9HSJ5yM0Bx9t3B+OMW$f~mOA@= zA4}e0%AJpxhOpopOtzCZ*D&&-q+`BDj{Iufomu{#;7?!AsSbUZB={jO?3@U>fPBXS zimig4TixMfJK2*TvUkLV%)78F>Wved(H%7=6m1~p+Z}@CsT&8sF}lij`+##!v>(IT6DgP6m8QNrzof#hK>u_|&75B5h01b4C zuEoEJN6A@%7qJ%sUM!`4caAZB$`$Hek!XQAAJg1-1d%&K<=YY= z!QsRY3^EM)xgYsi0I#k)K)Q=QiZ$81gd{^yKG3&o+O^`hWSGkOA23 z$ojbZ%*I-DbOSiKaQsGa@(3{fpQelr(XcFqz4{C|90T4Z?4JeiFH4!4@gEs8vbNt* znZPBK;kUV@e-(Al7>s7kwF*gtX{?$a2%EYOh__PbrNki9Hjl9TbS+L z;wIc14$9xQ@B$Wk&U(`A`9B{W!;cN`D;P#F9S6r(!RLkcdrefli5&0I9wo;6I|xlj zJZpI?WTMv}3Oo7#j{&a(HsHcB+v38l+koC)OfGsox$TXnZpTXI#$3(2lWxZW6V!ex zbn=@D87l|IG?z%J{GxG^sX!tb-}wk~-$UNNKG&9ip-<$@)9SN7ZE7@*@m|KVx_ph=(r@NXv{ce4CLxGR*+v1msHSIGS!_ci=S4hlkY)Cx0u?d_;uiut(6d!7<<7|O< z65l_Vin~8DwFiRm{xinuUT=QaJe6FGpV{C@4%bOOcEraw7}Hi?e(b!($lwnngVCiU zUs&t7&j4$D8*KC!0v+}|%#g)9Hh%w+6UT*T?CoFab6mOXpYLupH^o*BWKKM9pY<`9 z4D^)-KO-hEz8)SK#>Y~ggE{f6%IG^ju5`c&bnD;m|C(^q5)&?b*!+fk0$>r9E=pXm z5T_@e5Ki^}`q8LkK8C#s|1@Vzki5yY;OX-&_x*TyI`KE^)01PPmr6ePe3!KRIEsAR zvL}Kq7S-p3k<}{MdVMFsjT3z8m?#-AyA$HaO-ZYg=pL zq9>9dI@Y4&%jGMsHH*%!H*asl{<@;o)apB9YHV9nJ|Vio=4sS3{QscV#>6wlKP?|G z-c&vwV10^x4h~~spBi$GXgRq2j+w>3xw?ED`VS54H#J$|DMYAf*egssm3Qve6MyH9)m~iWJ!h;2BL#CtaU*Tw zcblyh-#Qr{Kn6)yx;4Z|s-E|k;C<~@9Y_UST-=02caZR zvd0>IV5?*R1w^W*JCXo}xb0vBIJdrZY797uX~ahxH^(QP$TEmVk%VzTK8Lgu+1N@V zWJ4e^w|Ua3ZGw}~9-5MdJWX?TT>@@Pa@>X_PC}Ub`>(x6mK_1%G=0v|^NeQp+Iz3{ zu6MoP>s@Q*`24PHndyA_#qn(*W^Z<75}Pw~NBM{L-OeV~UcK2K_v-|&WTIp#ef%LX zyf}Rmd%fhTlQ=4NIQ#c(3Pdx|9C|wZ3&;EOxrla3bGFJu_^A7heIm$1X3wf9UfhLk z(ka@Six)?TO5=m9U4n0}Jw4j+McVOA+A~8no3ew@JGQgRXlH{BLhr}{>&5Ll)(R=r%flT+N|DwDv*&)~wwVBJyKODad32_8EKStbMz8Px; zq45)TqhewAoxrB)&=|E1)qK;zL+n3;9Wl_8_1ciH@P%hRejPsC{ni6q`PhqHRoD^_ zR6lNyV+$wzt@wN3O7;!3{%P~^ub11R4;{kacJx4uwRhiR)(1^Mb$)%N9v3rJPBD1A z^{eQPLE<8c6%#iG7UltLS(gVdcfVt&m2Bz2Ag@=o9+J#sERyzJ+CPkMzgzfEu42y- z;9>56x1WynB6qg6tzxgUwC&;JLRoF~w_KL=V$I0fUSF}XE}OD9#1{3fiXG;i4C6*f z&#bS0U^iylz=8DWKhb7ikd9ryHXXYQ_?Eo&kg@lHtmOxcqx>TW0a3k&e$$zJlYf+2<>cW8_`eX! zrObNd)@8`8lIRNFm!6)BfoGGHS5X$TXkLbAlEfTind@slz?#(i=jIdQom<^}2lg^{ zL`_#C@7UUO<_xVE9Txk3hx;5f-o2Sn2rsF@X3!- zKV>HkU1n#d{@QAXdaO2ALTO_`+;@{Hx{i zZEwqJug8RaHQUto9sBjSeFxaS!#b639Z%o$9kb>u?5(=bd|K15Ut-?dE+HQB-ds9% z2fp>W*k`_Qg5OoU@LbmU^_(m`oVm} zzpTd?c@ll>&Ig4@!*fHSJJF%mFp37fK=#SVliFY2l?R2e9Qnmu3@|WG`OfHGRxz%H z_HlPMS7>_Fle$P4mK?%0hS=|aXRmn&S~^aW(fer&p- zP2)3pbld~$wixrC4!+s_X~kX8$67}c=CtO)Q?woodTG?&`0z@M_(1#23T%p@i7a)~ zSH(M^k6FfFvbh9p(qHP*-YkvGUDl@hIfsMisV6>jE7VIY#k@itayIYY@xd2)UT$oF zlX2-{Tsj$-4*Hm7T-wLz2X<5@vZMM$xB3h5^V!lIezfLM@>OS9X)XDEgTrI@Zv8g6 z2-j%N%S8lN@_F1@*s{B1yP6f4SKd^_fAbXg@CJzWUB{mOo>eFNi3wci^jdYjXK&c| zw+J0zuk;<>e+T_eX08++TD^3dyI%xHr4T>pk~#~pLy)P4?49Bna1&;e&}Sub)o zkUfTM4(|1^X1Xyvpc9=VgI?%xv;c4Dd7bmYp8p-oe60r{_X65tU45pl8#=_dbI+`w zSgd>0=W^wVadhg8*3lK{jDBFocL$T{gGfE*Ttb)&z}!UX=`eSY_gvXON%Sa~Rkn4a zi~15e!vY%a%plKM2XFnv_0)&yf{RO?RoY5N;f2|4)Lq%*X1#elSEJ{kjgK<+z=O<> z_VNpHkhhL*%Yyf__wZbZBbTGTRCt;(>uq7)pW3z0NSAjK=Pyxa;NzEQBTx(p-CG!l z@K~$H6m;uJM!m*47@>UFTcLmC_s34`qwmPBlk4f=d)kY;x}km1 zSF*=+j*s@V$jA=#7&l~)j|^g8wuwFqq-*8tIUlo4&sFXVf03MOi`w_af9}2L9rjUX zUZNtu_FBZBz_o0cj5>0$vl6{naDd& zdnoXm+_kN%rHe*-p$YOAg`>;^oA%GE&-uSR*Qrb4{?1TfOz;b->ub__V(!|N3(>bB=!<&GYVpG%q?27_V2@ z!yp|0-IeiwMlyYDJY1Ioy#3HnQZgUhF8AUEM_0Vg$rb>;@>IeX%>sl zz>Vn}-7A`Rd*UKLc0l9A2pJDOnEoCto4==X@m zdrm*;j2h9wNnY(hk7o@Yb-KD#OgnwWyt-uBi1gJTLK|1VPJMOu0<=NdeA+mVcm=Y& zRx&%xoj8SuIFHND7awJNYX3(nZ|7O+jp(Xi(=plZzhtd`VSur$ z)%dDiJ)^USyuo7go)mu5QqKEY#u-EG$HOPZr;(55$9WPt$ewWERJ7djnzX!tE{bTm z;}vMRLw*XjT^70B{t7hRDY~irh4k^M*@!-#5-p5qEn!I4T2rDm(T+}J!#P<|jO-Wu z^~`P1!&T73?$;qJmMuUJl+C9Hev4-siK(nYE-t+{&KR=}V@)r49oMsWHDh3d{;FKT z7VCQa(sKENUMmwnuFOus;6A;F_f@Vq9eles99wjI-WFwhO!njw=_QS; z{D)jnKA~qQug}z%%RHCVH}e;9eC?m=*?M%C>@Dc4c7{17PI$NSHZN8|mBbObrG?dUk>kzL95Li5;VN=Ji4KRQ|&H{_Lr!zKK@mruUJfgB|=b-<%y{PwmCGkY40E z#|%a*Jd(G`!Ya$P)!8=qZ|6kb;cPd0fp|8bc0Ph<1M%X3PcNT7KCAik^I6Mh9iL9c zpQtyZHA{SVRN_X`{iuvuVn1!fCNurya250L#P!5}RmMlx^lJn9Bp;2>#;8B0{s0$# zU1(EbAHA$Thxb1@8}(QELF>iby5jS?Ee_0~KP*2N|B$g+jttTon^XK)@rL4E(7$B$ zwUX5%cUz~E7wD5Y{ZWw@^ZlLIvMqiIdExlEo19Mh#XBcByT)SIblX|@IP#0d^BXI? zO}y)bbTZ}V2yXGa?zOTfcA`7vcfGgFFaKC&$eN6MH^?eSgEQI6WwmEEF8)3s-bP+= z&Lc9P{Q>!Kt|q=-$nUQ$=U>@od1W~t+AItC?hDBG``!3ETaa~v8W+*0^D&M6U&H-7 zWec`R_d`#DUHfr`>o%qLLz^&pil6%G<5ng6Z@x`eSo@KAN zCNku&|5gxx?HH6jVbTt(BHx^S^BSAzuZL|_%O^ELZpX+T{D9tMllW<57i4yjIe3pb ziYKz7)>my%hKY{IsTiz@p|&TekP_GC_~Vo&*@PqKkHo_vz6 z7(27hx7H(be<8d(EAsCtXCGoSLL=eXJF*3^5wy03dTw=bof3H%J=SX2iIjba-z|Lq zKHtrmrLjc|*>er(RmlkYeq44DvTc>@vg+Trw_mWrk6*OHhYC0|`>J8~#~t0|1@q?% zVxQM|)4$(@&k`Z;`<4srA5~Yy4;L*^|1&BRjzjy4iKR)45hGjQj_%f4mhoK{gT7Xg zlaNsS;Ue-?l(VAW;TodyGZ!@_6j$3!+~}vaez;Dwhp*D7SRC@?Il+_he3L97rcleL zi%-DwUsH@BLt8D_8RU3o$P4)kY(%ohldaG}E$2DP>?D5hu@e`p@r9E`-UY+WvQM$| z60WUk;(S5*LA67jKh|>>tgzY(n)yE8;`b)Z1oJ!iogMNS8w!@*MX!kg-|aVdcm*T3 zvDvDUbZC7zsAo6`nh~W3G=HQ?F?_J##@Q z`}zYX`-qK3^9s!DJ6MS~Fh;eR?xgX(B&>snfh@w6v(35ZWG3HEhPE)S{LYY*F~B$H zicQ?kcRSyk`Ofmah3^jb3x9E>8=MnBsL%oM{;u+)1fz>tA-i163ZIrSbMcp7DrR*7 z`u6mg6=jOOXgp{5c5Q5*D98?0EY{h=l{PLV#xp-ICVD?TE{5+r*9J5$oXx0g>%Awa zuM!t4%v6PYj86}|c8rIys2Obn#sy+xDtB=x?1mYBr}AMg*<9Rc5K)jnEzU*^4EogE z-7EXh@;hF^hn^EI{0QaCCk7&W1N(ELu#Y}tXJjgVsQNw~&`;=&Pc6@MDxN>TY-GJ^ zC58a5@q4qmz#2x5hq7*@4}Rlpq$~0JrhBck)I&`52E{Lev=xH%Y@c<_-zT}BJ#R;t z%h9v6(Zwg=(+i*d3$*1!LmTSN-a!8|A≺dsWg!l|98IYjiET%?*}c98D5yA-;N* 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͕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 z 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 diff --git a/package/lean/adbyby/files/arm/adbyby b/package/lean/adbyby/files/arm/adbyby deleted file mode 100755 index a7da1900d9c929b677a4ef85f7c14d8cdf56d8e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390964 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

    FAgOqOtK&aN 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%0Dt(Jd=P$o`0%+JE6FRwz<3E88*6P? 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]`}XLeB(&aiAV8WPOb=?rCp7H zi(t{)Xy@PxX#2Cfo!((kbZfiQGcP25!}kRIdmY^iPT{|=!{ze`D7mb6fXs6%K;=sn zsB&ly_=5qz`kj)0AkiTt-J_Q7Pt1by*Yqx@uesdJ`Co9jrSdi7lC>2r5%A&U=3K`?b>ho`)E(l`R{k(HGplb1NV}69$ora!vJVR*i9|1WAT_blC%J({)4vD)zy{>Y?sv3M`PCHA zqabG$iM$8lQ=hwp2hK{&41f=3B(fg{2eu{>gW~T@)cyy09@>(q91@+LsQ-l1JNQZ0 zUycmB^k#kPNW6k@d%-%e@zeC*;3BB_5C13quiQr%2SooD`W{M8EPux76Dpn~qvSX4 zOP^!h0Sg~J68F`wj2(&Rfh(V!srwrGp+~@Zu;lBMD>wu$f~Av3;!EHpxD3{RgL(`ufaZsU`%U5n7JrL+ z08WCLVBOS_cow(ZzG_^ul*txS2CY;$_GU z{(yW1$H5kG7L=a8AL5UFmt|12|09>qN>J^*$CcfteN ziH@HO(-ZB#aB^*+8EpKw} zom-B^^OP=7^3_|9+VppUCGaz|0y$9OEQ8|LZ5N+?SFjv<9;^n7b{vh@gDs%Sz3zmg z@qVy)C-U?IqoDF3`$TB49vlIOK-Fun~w=>WAOPn6af&6YpqUq_5?gmBA2p>#MMlGQp94+t(fBf00m{7>RJjiY zbk;>j;|tOUsvVYJjQfGC#6pRX{`Ki?&NR&8$j}}7i@u__eRIB7Csb9j0$lt{YR&#u=QxX z4Y}+%e9FC2h};C&3%~A8$L|)x&v`552S2Ng_=2&!j>a>8!Z->RgGKishyErZ!$e)?!UhQ6UM z9*yUNE8{NQ*)JcBS3u`~n{qN(&0E^&PJl*lTg^I@+E4Ew<@>k;JxVM1HpFU9KEfk$|rlWX>#uf!{$yTMwpslf583RmLw(Cwh=d)>J!@dn9(qDywI#2cZ~-Z*_^{$GY;_j;?EW@om2cr2PBtb^KmX=`e41bURpu zp1FW-e8-BNe`dbZxsQR8p9<*a_d!#CTHf#YGoZp>vh)Lqst*wVeIH9S^*Fxp!AnXK znICj?9%#q0fS&l!N_=4R#}XYMhR?ZH=f66+UhttyB8jDc3-tG|(9imb?E4*^1!|wO zcfj$d!7l2@EU5ao1loKVbo`D-Ts~KR41e^KRUdcm+23~gy#Pu+`#Vmq8f-vM4JiH~ zsCoIsw8G6w%>BU0Rs7JoH~+}d{w(epZHZ>k`V$>%ONFjYp8(~*{P!;01uzDGDWEI<5a>CG-c48&{$$bpip{FCFigR0LHp!h4t z9KXOk7H=dT{a_O~1;57sY%k0C>55=w`zYk_^ zfhT<-igyRRlq3`{4lg|k#k&{Y<|M>wJ_3(7Eml$M;%<1E;739E;|1H}KA*&0=?GDJ z9)_ndLX`XG13e+aG9&P|C82o#o98>|QyzpUU0;K@B?-kl-tzh_K9Kf!`3tOKWxdLKJTsJe6CB;^o3q{6bWjoDMG; zCHIVg7ovC$`Raf?7GVgG8 zGY7l^I&|BM{nhX!*9e{ueh5@OxeYTAxP2;c`&HmpkK5tEp7zE}a{=^oK*jA!uo9!X zDRT|>S&Zth=xee6J8=u$e_EGm`l016^R;KM(UN)DV;SZp_)(t9{Z-hL>DS=C8=lHW z^1pvWra9-!8LRpmaU1zl#%lPz$1=>}Mn_BEZMg5lgz>o@dkaSSD)&3F--S^gN#<6< z``s05@%<;<-h)w{l>9RbGR+5}Lw)n4?dxw&3Lm#e-nW(?{|fzYN%F5;$uRdrOP6${ z?Z`BV>(=yTo|tKJsI#H|Hxr+p*E?E%9>nh}DVxy$b8pQsU;WZremso(BN+7w((%ZJ zndW2Ap}wCH-;YD9FO!a)QyJ!SN$!WXWSaj29qJ#${>3EsFJu2|5%h{0#Gxm#)R{_qZQSl3&K2N`8mwJqrCNOqhQW+){$_kW37FC@=bH zO&KO5a95ZIsh{upyo;}NY{6|?l6yAx6EUIw_w;0#Q=s{&6C3A3?B`*^_av&p(4lb>`}FT$N8X#a{-Q-WE#Tw2`|!@c>+RMU?se{rg*#58;{&9r`j zm|`z{QK}ikO^zZ7#f1LHuvcTUkgGsm{%V4_$eu`wR~i0`DpO52 zCJPfjmGJAKr!aW|U;38uE3CUwJppqPlZN=0E`sJf)(`GYpQ>vN86#q2Mlwdkd%?VVmw&38Q_#Y3!V>D4#NPCei&3)>DPO^sZDhjafN%?3j#rZO{d8OSRz_2jQ!3cj6XZI(AHcTd?;}q?+uny86=; z$VsN}Yv{x%|9bZ@KEMl~N%{K@{-%i!ScR#>v|`#Y9hhE>9{Hcff7Q-4|9KhI;~%7& zQB2$W(@e#k{K)TpX{O_SX{PY4e3%J(;$HY~OEXzNOEZn|%w1`wxJ#d1q7L4i$t$N$ zUpcyJFd8fM)M0O(r7it9)hv@2GU83ZYlElqsKvjYjrq~KnL4tQUxUV|o|T=QX3Dqo z@u%!GGX!0+jkpk>Hc;^z2P@~&Ob>EJR-+3)u$oE2mQncOvx0pLGmXj0q&)@>O@uvq z5Bg*J<}vlS zS7E|%y0GV;PT%l!mllO1UJ-QV8PumBj^btIrI~7YdQ_jrsSk>~>?_#SSIFLlU3n{e z9d^Z0_MF#He@_)lPBRT3 zr*8d~?O`-flAQNtq*W%F*Sv*(0#k))$Atdo3A<-F%`AM1`X2Zb&%kT@G@n8X^e5M` za^z%^c~j`@!3<*NF`>WAEXwf{X{O*mX-k1W@#;UBW=7$Ka>=?vxn$nhanf0eKAGfn zhH}aENnvcPccI^8IR!C9+AA^nm=eqiX~_bcF?E<3%s3_t$0#i$^k4tw(xPz0TY*>c znKToIBc6{;6+At*PEkL?dN+tYtat6$!@4$&UHKsS@<#aR37-b+{hy`%V#0bSw`3WO zyE3`REMp2VdZcd@eaZE>AAO^v)J@C^@oYhMqd$#nP56`lt_|_Y!G8mOJ29E~tvHT< z`Rlu7eY==dxWsV@Gl&Tv&3zWWkY@6jBZc#waK2OuZvZomyB_HsL$BsY;ZukI!tpdy zhsnk0k=*iz@Y|7V#eEPH&O0O*yLEj$$B~I+7X%6*3MC5y2noZpl}H(@mHXnvz{XAIQ1GXZMcnG%hzS#%3CZ*!O%U}1n| zpq}m%$)jb;hcC>wA7RXTEY0-(*2O{YgSc1VHv2g4dAKjWk$EfgkTU#LVy1tO|36T# zFyS-LSYLx%)*3OwLbZrsy{@6FVH^S2Q-6f~-xZ_R*MW z{(Q`Id@*L~;D=8R;nd;39sezLF_U*=%rx8-Gi|SpnfY5Wx5rH38)M9&oSzcH>q34E zc|A+`&pgb$17jcD+xV@tSxotFXsehK(pQIR#|&a>;Wc1-G2zpMo)!Gm4DwZpUy~M0 z_wVT6F!Pu!{Efq#!el1-E5hI69|?mp=^~$I-n7Z|fZ>xoXA0Z#@i3GhL0>;MI-2oc zkKE8-kQ+g+nzCtsoboBhy^4B2vE<6E4|)oEKA;oOHQ1L(m!2Nt7e2=;$0y>cKdPY} ztM8C~Ah2sbJN`P?zLVD%74#{huds*PFusYDMaHT7+>Ca`uwTxuT zaGzwnl5F{L^p+&)?II28Q{=B6e_Wl@;c56@MncNgiP}M$L0F^^##kgV=~F}pGM}W`Ir*S3gKsgU6=$$PpC)pix%Rw zgi##A`OyG$(GK{5ZpjV7D}kp+<=RC2Rkvgmwoq}^M?;jpcHB!(TC3}tV=UxsGJPj) zS~pKALMH2E@&=PUe`$kX2d`@bzYhMuiJQzUW;|)0J*E0h7z%qRDQ`!K`wFr}gqcE8!(J@LS-Ik|#?^ z`Jy;A6JA(9`hgZO3e)n_C>ng>+f?n=1{_Zs~5V=6G+_}@66 zQ+WBvYtAV9Jod2cdhuV#m{feL|aljKtY@#81C%wjgY9h=P@vN6)CGS0_O5o;@r z%S~s&qi@$Q9~&3`oa=|x_1Pwf+G zUsHQr+DA)}Ud>G#pcCjTncr-(*<-6gPGwa-56oDDm>y@53Tjb^6xU)-$8~nscx&is?QqNdKQ0bt4+Ai z6UHnuO{Y=r#IuDs7NA4>bDC>vJyuNK#7JW^VW@4yNMi|R8G4emXl^)2{V2wt`m;80 z2|rV~X)awtzQu4ahp)NpDDly}vkSTwV@_rqX0EF_uGTKi@U&j2B+Y}kX`fT`;B55R zIWT2VgPYb8T0dw!(|oU&IJS0E_CF@Agk6Q6%nuQtJLofruf|wCnzwf2wn&^Z!D-eT zn!9UmtQl1=`JuV7_BYzTMjMk1`ZPz@-lgVZCGhglseXM1x5QS;;%4@5;cGopL%vpG zFD1?;#H-+B!lRwED;~Jd;%A;b%7UlyTYYWpC$t-|0l#(l)gJ63ZEl`?*4(}XdmgeH zPjdIC+PG@|J&sPhZn3H3PaW%iKz)-;3x6g*ly1s<*yHyiQ9mU$Ew(8=BXjeXty$Z) z@5nx3=ZQHdoqS5}sZTpC@ARjik$>h{XBV9FjAs^}yX(B7^Dnrt_@axSRr2iTJh$|D z&%dN>_YF7J@44ybhP|(OZR0Js-q!TGefyhlfBhR;?s(%XYG3)PSJyqh`#-k6>CN%P zTkd>o+g)$FyZxSf-`??#cfPCh-T(B@UGKT?z1{D7{|9NweO?<_V4}o zKk(qdLk}MqeB@*QG4%0Id~*0xpZ?F0|N6{lM?d#}9v%Dq7rr?Dr7wSF;;Uc#`s6ph z`K_t{{`PmKzx%!K&-~zrKbrmVPkuW0v;X<|{4aj_tA$_x=C_N#`~4r54j%gB^5G*# zS04M*vA=uzFMYvf<(FUa!ipyU45)ieQ{BQe@$8R65 z|9E`&|2x_bCGZx`>s9n`3$P==cY|6x+*a!_9^ice|E_?(nX_&+pf6mXVb5qkfV&z? zZ-C#-&oqy%WSA7_&6pD~*HmVhOTbexPsf~%*@d|n^E}LDm61#d8e1)>KN{m$7S%6#d`Wb*8Pj&tT63 zHS_xs_A*eq=CR9zPS5@*J02v%?4Q33fBf0%?0K@E?CfQ-%fG@@92A~(D6DWSi`|!Q zT3?!Oa{JTG81uNXN7JmIGUl5(m|9E&rV-PGX~DE&5|}njJEjBEiRr?0W8~H&WDYfo zsbbt#JjONm(R?Q`N?_Q}497E#HFttCcR7Q%)kiwQ=a=o7<`)<}mt1m*O=B7Jgm#Q@ zGRdA7cx+<6)ASXLFv-YIx#Z7EH=USn%s58*mi%O)N2;uj?+3c1FE9$Tc=C`KH+^o9r@_aul6t5Sdc+W|%Iq=@s+;j2aitksq-IJaAjbqR1IrjFC`>*@)%dWil-Cuue$FnxQuJ4Q2 z-v9h_-r+rZ&1s)`-S;2Oy?W@`hp+BiekAes%7RCKebNtJ{MoyIR`#(ko$}(}{Nm>i z-+9@kuYJXJ-~0S${?J^&oGmcX)1qb$d-9W^XS_ zFTDCC=j2_u>%v_Z?)`htF;4mgx9@GN z-*?+>%?O`=@vfo^&b@hW^SMPu=a-b6d-Lw|Z@lQj;tS8oE8g|&T^Ih9K1z07WG*cs zzPtDAzG1KNc41Aq?6!T)ds@!D^w}mgJ?+w%w<(ey-R@_5CwM1DbG(xyr$nFbJ;N*a z%&z?n`yJl*>&@6gyg(hpEuri%Po6u zg{MGvH#hIwd&BL`dvwe0$vxq{D)mQG2@I%yFnrWk>Cs(2mA&K^6Bw|C@6d-&=;uTj zpBrS~Y9Ocf*MeLNa(CahR=dp2r6u5G99*S=4tnODgLPZ+-nKmmj`n8$H#R8F>!pkO5_w*$@$3n$Yn!^ zPpI!&7`l(>`hO>*CWJ$Ou%;#3fP;QEGVv4-(4wc|0tIS)HFcjuPtRAcr@NRVxyR|-^2+t}_@4Fj zqGy>*+JzyPiJyzV)>K{`K^C zKd_#@sAoOh&VA?P_@;kqJ-uxM-SFx4?rj^&Yxpzk-M{;}_4Lm+&{L1DcdzEIW^#P4 z{nmQA`P=L1#Y5}q^OrZ!%vY23O`fs7eqFJ_ePILrQRc46{vYF>a59~$Ij4PGeahHC zH*BEKFm7HJ*5^w%(7hYze1E-sW7>K;v12`b7WZV6^c#1scW=#EPq*c*r~6M| zPsh$)PycuWy^Fie$>CqLfqwf2dhDF_@}=jlr*GUq=U=$qy?+DUebIXNHtvci$EW)_ z>*?E`zn-4u-gdHl&^cIJd8u* diff --git a/package/lean/adbyby/files/data/adclear.ini b/package/lean/adbyby/files/data/adclear.ini deleted file mode 100644 index 369186258..000000000 --- a/package/lean/adbyby/files/data/adclear.ini +++ /dev/null @@ -1,121 +0,0 @@ -//IE6789, from adsafe -%USERPROFILE%\Local Settings\Temporary Internet Files\*.html -%USERPROFILE%\Local Settings\Temporary Internet Files\*.js -%USERPROFILE%\Local Settings\Temporary Internet Files\*.htm -%USERPROFILE%\Local Settings\Temporary Internet Files\*.xml -%USERPROFILE%\Local Settings\Temporary Internet Files\*.css -%USERPROFILE%\Local Settings\Temporary Internet Files\*.swf -%USERPROFILE%\Local Settings\Temporary Internet Files\*.flv -%USERPROFILE%\Local Settings\Temporary Internet Files\*.mp4 -%USERPROFILE%\Local Settings\Temporary Internet Files\Content.IE5\*.* -%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files\*.* -%USERPROFILE%\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\*.* - -//360ȫ -%USERPROFILE%\Application Data\360se\ie8data\Temporary Internet Files\*.* - -//chrome -%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache\*.* - -//360 -%USERPROFILE%\Local Settings\Application Data\360Chrome\Chrome\User Data\Default\CacheIE\*.* -%USERPROFILE%\Local Settings\Application Data\360Chrome\Chrome\User Data\Default\Cache\*.* -%USERPROFILE%\AppData\Local\360Chrome\Chrome\User Data\Default\Cache\*.* -%USERPROFILE%\Local Settings\Application Data\360Chrome\Chrome\User Data\Default\CacheIE\Content.IE5\*.* - -//ѹ -%USERPROFILE%\Application Data\SogouExplorer\Webkit\Default\Cache\*.* -%USERPROFILE%\AppData\Roaming\SogouExplorer\Webkit\Default\Cache\*.* - -//opera -%USERPROFILE%\AppData\Local\Opera\Opera\cache\*.* -%USERPROFILE%\Local Settings\Application Data\Opera\Opera\cache\*.* -%USERPROFILE%\Local Settings\Application Data\Opera\Opera\application_cache\mcache\*.* -%USERPROFILE%\Local Settings\Application Data\Opera\Opera\application_cache\cache_groups.xml -%USERPROFILE%\Local Settings\Application Data\Opera\Opera\opcache\*.* - -//Ա -%USERPROFILE%\AppData\Local\TaoBrowser\User Data\Default\Cache\*.* -%USERPROFILE%\AppData\Local\TaoBrowser\User Data\Default\JumpListIcons\*.* -%USERPROFILE%\Local Settings\Application Data\TaoBrowser\User Data\Default\Cache\*.* - -//ٶ -%USERPROFILE%\Application Data\Baidu\browser\DiskCache\*.* -%USERPROFILE%\AppData\Roaming\Baidu\browser\DiskCache\*.* - -//Ա -%USERPROFILE%\Local Settings\Application Data\liebao\User Data\Default\Cache\*.* -%USERPROFILE%\Local Settings\Application Data\liebao\User Data\iecache\Content.IE5\*.* -%USERPROFILE%\AppData\Local\liebao\User Data\Default\Cache\*.* -%USERPROFILE%\AppData\Local\liebao\User Data\Default\JumpListIcons\*.* - -//Letv -%USERPROFILE%\Application Data\Letv\Logg\*.log - -//PPSStream -%APPDATA%\PPStream\adsys\*.* -%APPDATA%\PPStream\banner\*.* -%APPDATA%\PPStream\notice\*.* -%APPDATA%\PPStream\CLCache\*.pld -%APPDATA%\PPStream\FDSCache\*.blf - -//PPTV -%APPDATA%\PPLive\PPTV\cache\*.* - -// -%USERPROFILE%\funshion\cache\*.* - - -//youku --s%appdata%\Macromedia\Flash Player\#SharedObjects\YOUKU_FSO_PROXY.sol --s%APPDATA%\Roaming\Macromedia\Flash Player\#SharedObjects\YOUKU_FSO_PROXY.sol - - -//letv --s%appdata%\Macromedia\Flash Player\#SharedObjects\com.letv.sol - -//iqiyi --s%appdata%\Macromedia\Flash Player\#SharedObjects\qiyi_statistics.sol - -//chrome YOUKU --s%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol - -//chrome LeTv --s%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\com.letv.sol - -//chrome iqiyi --s%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\qiyi_statistics.sol - -//360 youku --s%USERPROFILE%\AppData\Local\360Chrome\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol - -//360 letv --s%USERPROFILE%\AppData\Local\360Chrome\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\com.letv.sol - -//360 iqiyi --s%USERPROFILE%\AppData\Local\360Chrome\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\qiyi_statistics.sol - - -//Ӱ5 -%ALLUSERSPROFILE%\Baofeng\StormPlayer\Profiles\md\*.* -%ALLUSERSPROFILE%\Baofeng\StormPlayer\Profiles\vod\*.* -%ALLUSERSPROFILE%\Application Data\Baofeng\StormPlayer\Profiles\md\*.* -%ALLUSERSPROFILE%\Application Data\Baofeng\StormPlayer\Profiles\vod\*.* -%ALLUSERSPROFILE%\Baofeng\Application Data\StormPlayer\Profiles\md\*.* -%ALLUSERSPROFILE%\Baofeng\Application Data\StormPlayer\Profiles\vod\*.* - -//pptv -%ALLUSERSPROFILE%\PPLive\PPTV\Cache\pluginad\*.* -%ALLUSERSPROFILE%\Application Data\PPLive\PPTV\Cache\pluginad\*.* -%ALLUSERSPROFILE%\Application Data\PPLive\PPTV\screensaver\*.* - - -// -C:\Program Files\DuoMi\dmdeskinfo.exe - -//UUSEE -%TEMP%\UUFile\*.* - -//iqiyi -%ALLUSERSPROFILE%\Application Data\Qiyi\qiyiclient\cache\*.* - diff --git a/package/lean/adbyby/files/data/clean.ini b/package/lean/adbyby/files/data/clean.ini deleted file mode 100644 index 6b69b1492..000000000 --- a/package/lean/adbyby/files/data/clean.ini +++ /dev/null @@ -1,43 +0,0 @@ -//youku --y%appdata%\Macromedia\Flash Player\#SharedObjects\YOUKU_FSO_PROXY.sol -//youku win7 --y%APPDATA%\Roaming\Macromedia\Flash Player\#SharedObjects\YOUKU_FSO_PROXY.sol -//chrome YOUKU --y%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol -//360 youku --y%USERPROFILE%\AppData\Local\360Chrome\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol -//sougou youku --y%appdata%\SogouExplorer\Webkit\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol - --y%userprofile%\Local Settings\Application Data\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol --y%userprofile%\Local Settings\Application Data\UCBrowser\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol --y%userprofile%\Local Settings\Application Data\360Chrome\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\YOUKU_FSO_PROXY.sol - -//qq -%appdata%\Tencent\QQ\Misc\com.tencent.advertisement\*.* -%appdata%\Tencent\QQ\Misc\com.tencent.advertisement\GDT_0\*.* - -//letv --s%appdata%\Macromedia\Flash Player\#SharedObjects\com.letv.sol - -//letv1 --s%APPDATA%\Roaming\Macromedia\Flash Player\#SharedObjects\com.letv.sol - -//iqiyi --s%appdata%\Macromedia\Flash Player\#SharedObjects\qiyi_statistics.sol - -//iqiyi1 --s%APPDATA%\Roaming\Macromedia\Flash Player\#SharedObjects\qiyi_statistics.sol - - -//chrome LeTv --s%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\com.letv.sol - -//chrome iqiyi --s%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\qiyi_statistics.sol - -//360 letv --s%USERPROFILE%\AppData\Local\360Chrome\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\com.letv.sol - -//360 iqiyi --s%USERPROFILE%\AppData\Local\360Chrome\Chrome\User Data\Default\Pepper Data\Shockwave Flash\WritableRoot\#SharedObjects\qiyi_statistics.sol diff --git a/package/lean/adbyby/files/data/lazy.bin b/package/lean/adbyby/files/data/lazy.bin deleted file mode 100644 index 68ed556300be8b09ea34eff6cf869eaf498ea304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59679 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 eSBX{Sg+~,\s])\s*(\*|(?:[-\w*]|[^\x00-\xa0]|\\.)*)/,trimLeft=/^\s+/,trimRight=/\s+$/,reg_comma=/^\s*,\s*/,reg_sequence=/^([#\.:]|\[\s*)((?:[-\w]|[^\x00-\xa0]|\\.)+)/,reg_pseudo=/^\(\s*("([^"]*)"|'([^']*)'|[^\(\)]*(\([^\(\)]*\))?)\s*\)/,reg_attrib=/^\s*(?:(\S?=)\s*(?:(['"])(.*?)\2|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,reg_attrval=/\\([0-9a-fA-F]{2,2})/g,reg_sensitive=/^(?:title|id|name|class|for|href|src)$/,reg_backslash=/\\/g,reg_tag=/^((?:[-\w\*]|[^\x00-\xa0]|\\.)+)/,reg_parse_pseudo=/(-?)(\d*)n([-+]?\d*)/,reg_quick=/^(^|[#.])((?:[-\w]|[^\x00-\xa0]|\\.)+)$/,has_in=function(a,b){return(a in b)},dom={html:DOC.documentElement,mix:function(target,source){var args=[].slice.call(arguments),key,ride=typeof args[args.length-1]=="boolean"?args.pop():true;target=target||{};for(var i=1;source=args[i++];){for(key in source){if(ride||!has_in(key,target)){target[key]=source[key]}}}return target},rword:/[^, ]+/g,uuid:1,getUid:w3c_css?function(node){return node.uniqueNumber||(node.uniqueNumber=dom.uuid++)}:function(node){var uid=node.getAttribute("uniqueNumber");if(!uid){uid=dom.uuid++;node.setAttribute("uniqueNumber",uid)}return uid},oneObject:function(array,val){if(typeof array=="string"){array=array.match(dom.rword)||[]}var result={},value=val!==undef?val:1;for(var i=0,n=array.length;i=0);(found^flag_not)&&(result[ri++]=el)}return result}}},onePosition=dom.oneObject("eq,gt,lt,first,last,even,odd"),siblingCheck=function(a,b,ret){if(a===b){return ret}var cur=a.nextSibling;while(cur){if(cur===b){return -1}cur=cur.nextSibling}return 1},sortOrder1=function(a,b){if(a===b){sortOrder1.hasDuplicate=true;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition){return a.compareDocumentPosition?-1:1}return a.compareDocumentPosition(b)&4?-1:1},sortOrder2=function(a,b){if(a===b){sortOrder2.hasDuplicate=true;return 0}var al,bl,ap=[],bp=[],aup=a.parentNode,bup=b.parentNode,cur=aup;if(aup===bup){return siblingCheck(a,b)}else{if(!aup){return -1}else{if(!bup){return 1}}}while(cur){ap.unshift(cur);cur=cur.parentNode}cur=bup;while(cur){bp.unshift(cur);cur=cur.parentNode}al=ap.length;bl=bp.length;for(var i=0;i0&&els.length&&els[0].lookupNamespaceURI){var arr=tagName.split(":");prefix=arr[0];tagName=arr[1];method="getElementsByTagNameNS";prefix=els[0].lookupNamespaceURI(prefix)}switch(els.length){case 0:return elems;case 1:var all=prefix?els[0][method](prefix,tagName):els[0][method](tagName);for(var i=0,ri=0,el;el=all[i++];){if(el.nodeType===1){elems[ri++]=el}}return elems;default:for(var nodes,i=0,ri=0;el=els[i++];){nodes=prefix?el[method](prefix,tagName):el[method](tagName);for(var uid,j=0,node;node=nodes[j++];){uid=dom.getUid(node);if(!uniqResult[uid]){uniqResult[uid]=elems[ri++]=node}}}return elems}},getElementsByXPath=function(xpath,context,doc){var result=[];try{if(global.DOMParser){var nodes=doc.evaluate(xpath,context,null,7,null);for(var i=0,n=nodes.snapshotLength;i";root.insertBefore(form,root.firstChild);fixById=!!DOC.getElementById(id);root.removeChild(form)})();try{slice.call(dom.html.childNodes,0)[0].nodeType}catch(e){makeArray=function(nodes,result,flag_multi){var ret=result||[],ri=ret.length;for(var i=0,el;el=nodes[i++];){ret[ri++]=el}return flag_multi?dom.unique(ret):ret}}var Icarus=dom.query=function(expr,contexts,result,lastResult,flag_xml,flag_multi,flag_dirty){result=result||[];contexts=contexts||DOC;var pushResult=makeArray;if(!contexts.nodeType){contexts=pushResult(contexts);if(!contexts.length){return result}}else{contexts=[contexts]}var rrelative=reg_combinator,rBackslash=reg_backslash,rcomma=reg_comma,context=contexts[0],doc=context.ownerDocument||context,rtag=reg_tag,flag_all,uniqResult,elems,nodes,tagName,last,ri,uid;expr=expr.replace(trimLeft,"").replace(trimRight,"");flag_xml=flag_xml!==undef?flag_xml:dom.isXML(doc);if(flag_xml&&expr==="body"&&context.body){return pushResult([context.body],result,flag_multi)}if(!flag_xml&&doc.querySelectorAll){var query=expr,fix_icarus_sqa="fix_icarus_sqa";if(contexts.length>2||doc.documentMode==8&&context.nodeType==1){if(contexts.length>2){context=doc}query="."+fix_icarus_sqa+" "+query;for(var i=0,node;node=contexts[i++];){if(node.nodeType===1){node.className=fix_icarus_sqa+" "+node.className}}}if(doc.documentMode!==8||context.nodeName.toLowerCase()!=="object"){try{return pushResult(context.querySelectorAll(query),result,flag_multi)}catch(e){}finally{if(!query.indexOf("."+fix_icarus_sqa)){for(i=0;node=contexts[i++];){if(node.nodeType===1){node.className=node.className.replace(fix_icarus_sqa+" ","")}}}}}}var match=expr.match(reg_quick);if(match){var value=match[2].replace(rBackslash,""),key=match[1];if(key==""){nodes=getElementsByTagName(value,contexts,flag_xml)}else{if(key==="."&&contexts.length===1){if(flag_xml){nodes=getElementsByXPath("//*[@class='"+value+"']",context,doc)}else{if(context.getElementsByClassName){nodes=context.getElementsByClassName(value)}}}else{if(key==="#"&&contexts.length===1){if(flag_xml){nodes=getElementsByXPath("//*[@id='"+value+"']",context,doc)}else{if(context.nodeType==Math.pow(3,2)){node=doc.getElementById(value);nodes=!node?[]:!fixById?[node]:node.getAttributeNode("id").nodeValue===value?[node]:false}}}}}if(nodes){return pushResult(nodes,result,flag_multi)}}lastResult=contexts;if(lastResult.length){loop:while(expr&&last!==expr){flag_dirty=false;elems=null;uniqResult={};if((match=expr.match(rrelative))){expr=RegExp.rightContext;elems=[];tagName=(flag_xml?match[2]:match[2].toUpperCase()).replace(rBackslash,"")||"*";i=0;ri=0;flag_all=tagName==="*";switch(match[1]){case" ":if(expr.length||match[2]){elems=getElementsByTagName(tagName,lastResult,flag_xml)}else{elems=lastResult;break loop}break;case">":while((node=lastResult[i++])){for(node=node.firstChild;node;node=node.nextSibling){if(node.nodeType===1&&(flag_all||tagName===node.nodeName)){elems[ri++]=node}}}break;case"+":while((node=lastResult[i++])){while((node=node.nextSibling)){if(node.nodeType===1){if(flag_all||tagName===node.nodeName){elems[ri++]=node}break}}}break;case"~":while((node=lastResult[i++])){while((node=node.nextSibling)){if(node.nodeType===1&&(flag_all||tagName===node.nodeName)){uid=dom.getUid(node);if(uniqResult[uid]){break}else{uniqResult[uid]=elems[ri++]=node}}}}elems=dom.unique(elems);break}}else{if((match=expr.match(rtag))){expr=RegExp.rightContext;elems=getElementsByTagName(match[1].replace(rBackslash,""),lastResult,flag_xml)}}if(expr){var arr=Icarus.filter(expr,elems,lastResult,doc,flag_xml);expr=arr[0];elems=arr[1];if(!elems){flag_dirty=true;elems=getElementsByTagName("*",lastResult,flag_xml)}if((match=expr.match(rcomma))){expr=RegExp.rightContext;pushResult(elems,result);return Icarus(expr,contexts,result,[],flag_xml,true,flag_dirty)}else{lastResult=elems}}}}if(flag_multi){if(elems.length){return pushResult(elems,result,flag_multi)}}else{if(DOC!==doc||fixByTag&&flag_dirty){for(result=[],ri=0,i=0;node=elems[i++];){if(node.nodeType===1){result[ri++]=node}}return result}}return elems},filterPseudoNoExp=function(name,isLast,isOnly){var A="for(var result=[],flag_not=A.not,node,el,tagName,i=0,ri=0,found=0;node=el=B[i++];found=0){",B="{0}while(!found&&(node=node.{1})){(node.{2}==={3})&&++found}",C="node=el;while(!found&&(node=node.previousSibling)){node.{2}==={3}&&++found}",D="!found^flag_not&&(result[ri++]=el)}return result",start=isLast?"nextSibling":"previousSibling",fills={type:["tagName=el.nodeName;",start,"nodeName","tagName"],child:["",start,"nodeType","1"]}[name],body=A+B+(isOnly?C:"")+D;return{exec:new Function("A","B",body.replace(/{(\d)}/g,function($,$1){return fills[$1]}))}};dom.mix(Icarus,{getAttribute:!fixGetAttribute?function(elem,name){return elem.getAttribute(name)||""}:function(elem,name,flag_xml){if(flag_xml){return elem.getAttribute(name)||""}name=name.toLowerCase();if(attrURL[name]){return elem.getAttribute(name,2)||""}if(elem.tagName==="INPUT"&&name=="type"){return elem.getAttribute("type")||elem.type}var attr=boolOne[name]?(elem.getAttribute(name)?name:""):(elem=elem.getAttributeNode(name))&&elem.value||"";return reg_sensitive.test(name)?attr:attr.toLowerCase()},hasAttribute:!fixHasAttribute?function(elem,name,flag_xml){return flag_xml?!!elem.getAttribute(name):elem.hasAttribute(name)}:function(elem,name){elem=elem.getAttributeNode(name.toLowerCase());return !!(elem&&(elem.specified||elem.nodeValue))},filter:function(expr,elems,lastResult,doc,flag_xml,flag_get){var rsequence=reg_sequence,rattrib=reg_attrib,rpseudo=reg_pseudo,rBackslash=reg_backslash,rattrval=reg_attrval,pushResult=makeArray,toHex=_toHex,_hash_op=hash_operator,parsePseudo=parse_pseudo,match,key,tmp;while((match=expr.match(rsequence))){expr=RegExp.rightContext;key=(match[2]||"").replace(rBackslash,"");if(!elems){if(lastResult.length===1&&lastResult[0]===doc){switch(match[1]){case"#":if(!flag_xml){tmp=doc.getElementById(key);if(!tmp){elems=[];continue}if(fixById?tmp.id===key:tmp.getAttributeNode("id").nodeValue===key){elems=[tmp];continue}}break;case":":switch(key){case"root":elems=[doc.documentElement];continue;case"link":elems=pushResult(doc.links||[]);continue}break}}elems=getElementsByTagName("*",lastResult,flag_xml)}var filter=0,flag_not=false,args;switch(match[1]){case"#":filter=["id","=",key];break;case".":filter=["class","~=",key];break;case":":tmp=Icarus.hook[key];if((match=expr.match(rpseudo))){expr=RegExp.rightContext;args=parsePseudo(key,match)}if(tmp){filter=tmp}else{if(key==="not"){flag_not=true;if(args==="*"){elems=[]}else{if(reg_tag.test(args)){tmp=[];match=flag_xml?args:args.toUpperCase();for(var i=0,ri=0,elem;elem=elems[i++];){if(match!==elem.nodeName){tmp[ri++]=elem}}elems=tmp}else{var obj=Icarus.filter(args,elems,lastResult,doc,flag_xml,true);filter=obj.filter;args=obj.args}}}else{throw"!"}}break;default:filter=[key.toLowerCase()];if((match=expr.match(rattrib))){expr=RegExp.rightContext;if(match[1]){filter[1]=match[1];filter[2]=match[3]||match[4];filter[2]=filter[2]?filter[2].replace(rattrval,toHex).replace(rBackslash,""):""}}break}if(flag_get){return{filter:filter,args:args}}if(elems.length&&filter){tmp=[];i=0;ri=0;if(typeof filter==="function"){if(onePosition[key]){args=args===undef?elems.length-1:~~args;for(;elem=elems[i];){if(filter(i++,args)^flag_not){tmp[ri++]=elem}}}else{while((elem=elems[i++])){if((!!filter(elem,args))^flag_not){tmp[ri++]=elem}}}}else{if(typeof filter.exec==="function"){tmp=filter.exec({not:flag_not,xml:flag_xml},elems,args,doc)}else{var name=filter[0],op=_hash_op[filter[1]],val=filter[2]||"",flag,attr,className;if(!flag_xml&&name==="class"&&op===4){val=" "+val+" ";while((elem=elems[i++])){className=elem.className;if(!!(className&&~(" "+className+" ").indexOf(val))^flag_not){tmp[ri++]=elem}}}else{if(!flag_xml&&op&&val&&!reg_sensitive.test(name)){val=val.toLowerCase()}if(op===4){val=" "+val+" "}while((elem=elems[i++])){if(!op){flag=Icarus.hasAttribute(elem,name,flag_xml)}else{if(val===""&&op>3){flag=false}else{attr=Icarus.getAttribute(elem,name,flag_xml);switch(op){case 1:(flag=attr===val);break;case 2:(flag=attr!==val);break;case 3:(flag=attr===val||attr.substr(0,val.length+1)===val+"-");break;case 4:(flag=attr!==""&&!!~(" "+attr+" ").indexOf(val));break;case 5:(flag=attr!==""&&!attr.indexOf(val));break;case 6:(flag=attr!==""&&attr.substr(attr.length-val.length)===val);break;case 7:(flag=attr!==""&&!!~attr.indexOf(val));break}}}if(flag^flag_not){tmp[ri++]=elem}}}}}elems=tmp}}return[expr,elems]}});Icarus.hook={root:function(el){return el===(el.ownerDocument||el.document).documentElement},"first-child":filterPseudoNoExp("child",false,false),"last-child":filterPseudoNoExp("child",true,false),"only-child":filterPseudoNoExp("child",true,true),"nth-child":filterPseudoHasExp("firstChild","nextSibling",false),link:{exec:function(flags,elems){var links=(elems[0].ownerDocument||elems[0].document).links;if(!links){return[]}var result=[],checked={},flag_not=flags.not;for(var i=0,ri=0,elem;elem=links[i++];){checked[dom.getUid(elem)]=1}for(i=0;elem=elems[i++];){if(checked[dom.getUid(elem)]^flag_not){result[ri++]=elem}}return result}},lang:{exec:function(flags,elems,arg){var result=[],reg=new RegExp("^"+arg,"i"),flag_not=flags.not;for(var tmp,i=0,ri=0,elem;elem=elems[i++];){tmp=elem;while(tmp&&!tmp.getAttribute("lang")){tmp=tmp.parentNode}tmp=!!(tmp&®.test(tmp.getAttribute("lang")));if(tmp^flag_not){result[ri++]=elem}}return result}},contains:{exec:function(flags,elems,arg){var res=[],flag_not=flags.not;for(var i=0,ri=0,elem;elem=elems[i++];){if(!!~((elem.innerText||elem.textContent||dom.getText([elem])).indexOf(arg))^flag_not){res[ri++]=elem}}return res}},selected:function(el){el.parentNode&&el.parentNode.selectedIndex;return el.selected===true},header:function(el){return/h\d/i.test(el.nodeName)},button:function(el){return"button"===el.type||el.nodeName==="BUTTON"},input:function(el){return/input|select|textarea|button/i.test(el.nodeName)},parent:function(el){return !!el.firstChild},has:function(el,expr){return !!dom.query(expr,[el]).length},first:function(index){return index===0},last:function(index,num){return index===num},even:function(index){return index%2===0},odd:function(index){return index%2===1},lt:function(index,num){return indexnum},eq:function(index,num){return index===num},hidden:function(el){return(el.offsetWidth+el.offsetHeight)==0||(el.currentStyle||{}).display=="none"}};Icarus.hook.visible=function(el){return !Icarus.hook.hidden(el)};"text,radio,checkbox,file,password,submit,image,reset".replace(dom.rword,function(name){Icarus.hook[name]=function(el){return(el.getAttribute("type")||el.type)===name}});var blockCss=/(?:function|open|document|location|alert|confirm|prompt|showmodelessdialog|activexobject|xmlhttprequest|execscript|eval)\s*[(.=;]/i,checkCss=function(a,b){b=b||"visibility";return"hidden"==(w3c_css?DOC.defaultView.getComputedStyle(a,null).getPropertyValue(b):a.currentStyle[b])},removeNode=!!global.VBArray?function(){var b;return function(a){if(a&&"BODY"!=a.tagName){b=b||DOC.createElement("DIV");b.appendChild(a);b.innerHTML=""}}}():function(a){a&&a.parentNode&&"BODY"!=a.tagName&&a.parentNode.removeChild(a)},execFunc=[function(){},function(a){for(var b,c=a.length;c--;){b=a[c];checkCss(b)||(b.style.display="none",b.style.visibility="hidden")}},function(a){for(var c=a.length;c--;){removeNode(a[c])}}],execMainFunc=function(a,b){var c;try{c=dom.query(a)}catch(e){return((c=null),0)}return("function"==typeof execFunc[b]&&execFunc[b](c),c.length)},const_DOMContentLoaded="DOMContentLoaded",const_complete="complete",domReadyList=[],domisReady=0,domReady=function(fn){domisReady?fn():domReadyList.unshift(fn)},domfireReady=function(){if(!domisReady){if(!DOC.body){return setTimeout(domfireReady,32)}domisReady=1;for(var len=domReadyList.length;len--;){domReadyList[len]()}}},createCss=(function(){var style,media,self={},reg_media=/screen|all/i,splitCss=/[\[+>~:].+?/,addCss="{display:none;position:absolute;top:-1000000px;visibility:hidden}",styles=DOC.getElementsByTagName("style"),len=styles.length,new_css=function(g){for(var r=[],z=[],o,y=g.split(","),E=y.length;E--;){o=y[E];o&&(splitCss.test(o)?r:z).push(o)}z.length&&r.push(z.join());return(r.join(addCss)||"iframe")+addCss};while(len--){style=styles[len];media=style.getAttribute("media");if(media===null||reg_media.test(media)){self.style=style;break}}if(!self.style){var head=DOC.head||DOC.getElementsByTagName("head")[0];style=DOC.createElement("style");head.insertBefore(style,head.firstChild);domReady(function(){DOC.body&&DOC.body.insertBefore(style,DOC.body.firstChild)})}return style.styleSheet?function(css){style.styleSheet.cssText+=new_css(css)}:!!global.Components?function(css){style.innerHTML+=new_css(css)}:function(css){style.appendChild(DOC.createTextNode(new_css(css)))}})();if(const_complete==DOC.readyState){domfireReady()}else{if(!DOC.attachEvent){DOC.addEventListener(const_DOMContentLoaded,function(){DOC.removeEventListener(const_DOMContentLoaded,arguments.callee,false);domfireReady()},false)}else{DOC.attachEvent("onreadystatechange",function(){const_complete==DOC.readyState&&(DOC.detachEvent("onreadystatechange",arguments.callee),domfireReady())});(function(){if(domisReady){return}try{var node=new Image();node.doScroll();node=null}catch(e){setTimeout(arguments.callee,64);return}domfireReady()})()}}var AdSafe_CheckRule={regIDS:null,regSub:null,format:function(){var str=arguments[0];var regM=/\{\s*(\d+)\s*\}/,arr,temp="",xb;while((arr=regM.exec(str))!=null){xb=parseInt(arr[1]);if(isNaN(xb)||typeof(arguments[xb+1])=="undefined"){throw"��ָ������:"+arr[0]}temp+=str.substr(0,arr.index)+arguments[xb+1];str=str.substr(arr.index+arr[0].length)}temp+=str;return temp},isNullOrEmpty:function(str){var t=str;if(str.constructor==Array){t=str[0]}if(t==null||t==""){return true}return false},trim:function(str,dir){var regTrim;if(dir=="left"){regTrim=/^\s*/g}else{if(dir=="right"){regTrim=/\s*$/g}else{regTrim=/(?:^\s*|\s*$)/g}}if(str.constructor==String){str=str.replace(regTrim,"")}else{if(str.constructor==Array){for(var i=0;i+]\\s*)?(?:{0}|{1}|{2})+)+",str_iden,str_attr,str_quick),str_jquerys=this.format("^{0}\\s*(?:,\\s*{0}\\s*)*$",str_alone);this.regIDS=new RegExp(str_jquerys,"i");this.regSub=new RegExp(strSub,"i")},Checking:function(str){if(this.isNullOrEmpty(str)){return false}var result=this.AloneSub(str);if(!result){return false}if(this.isNullOrEmpty(str)){return true}if(!this.CheckRules(str)){return false}return true},CheckRules:function(str){var strArr=str[0].split(",");var lst=[];for(var t=0;t0){return false}else{return true}},GetPair:function(k){var t=[],result=[],c;t.push("0");for(var i=0;i0){var rc=str[0].charAt(temp1.length-1);if(rc==">"||rc=="+"||rc==","){if(temp1.length-1>=0){temp1=temp1.substr(0,temp1.length-1)}hasSub=true}}if(hasSub){str[0]=temp1+" "+str[0].substr(m.index+m[0].length+temp[0].length+1)}else{str[0]=str[0].substr(0,m.index)+str[0].substr(m.index+m[0].length+temp[0].length+1)}str[0]=this.trim(str[0])}if(this.isNullOrEmpty(str)){return true}return this.AloneSub(str)}else{return this.CheckRules(str)}}};var isIni=false;var checkCSSRule=function(line){if(!isIni){AdSafe_CheckRule.ini();isIni=true}var i=line.indexOf("??1");if(i>=0){line=line.substr(0,i)}line=AdSafe_CheckRule.trim(line);if(line==""){return false}return AdSafe_CheckRule.Checking([line])};global.hidecss=function(c){if(c.indexOf("??1")>-1||c.indexOf("??")<0){try{if(!checkCSSRule(c)){return}}catch(e){}}if(!c||blockCss.test(c)){return}var d=String(c).split("??"),f=parseInt(d[1],10)||1,g=d[0],l=100;var setCookie=function(name,value,expires,path,domain,secure){var curCookie=name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+((path)?"; path="+path:"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");document.cookie=curCookie};var addCookieForHours=function(name,value,path,domain,hour,secure){var t;if(hour){t=new Date();hour=isNaN(parseFloat(hour))?1:hour;t.setTime(t.getTime()+hour*3600*1000)}setCookie(name,value,t,path,domain,secure)};var deleteCookie=function(name,path,domain){document.cookie=name+"="+((path)?"; path="+path:"")+((domain)?"; domain="+domain:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT"};var clearCookie=function(path,domain,arr){var keys=[],r,reg=/([^=; ]+)=([^;]+)/g,cook=document.cookie;while((r=reg.exec(cook))!=null){keys.push(r[1])}if(keys&&keys.length>0){var _f;if(typeof arr=="undefined"||!arr){arr=[]}if(typeof arr=="string"){arr=[arr]}for(var i=keys.length-1;i--;i>=0){_f=false;for(var k=0;kL1aAy)s_= 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%0D@1TRS2PLp)Att21Q~?4R;Mm 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

    f#`j%M{V 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

    rZ5;HV0-b0s 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
    Puxw?#ZrB|KV*{@jwSIqCWri91rq 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

    dfg}0N`hDGXC5vH6kz%6#ZEZBZ;i0{SiTKx-Ar` zQLfin-_nI7V~#??lpmXG--b@JjJS|`-cWs_uo==davMiOIh%2ndmS63hNvMxbAwH5 z0oIAEp`6W9GckRcKF(OI`vOLEn3#VgLP@zt(IDu;Qs~_rLH}PE8Kqj`Q<#>QlB2@x zJtpMu?SjM#y$SQiq6)dzuJCRzevu%SA#3X-CSvgMywPky@3}U=MQMRQ`zcxTGQsy7)sBU-0?(T93F#q-xB8CCvp^SA2CDa!)Sua#|;N%{`vUTxq04Fk5`W1IZNP z1iVJ~Y7WKM7LnW9h1=l9UzwZobnHC2p?A#@s)}lLup@OJ*qDnS6(Snf+IdAyK`>SO z?76_ss+on9yC1dkS#|1JE{3|RE=ft3Sat@zWoZHot!v^61;l_;;}TTPluwM5#4XLZ z(lM}|$^ccNmHrM{y~LZm@5<^*=fGHA!cghc*)R=Oj(`O}i8mm+L$9r}BK6}67OLlG zBWoX4j|s)g18!4F_vvc2<3;Jvi*M==SFfK*0?`QBQV#b{Bv z`q`rz255ggV`7b_w}!>E-KP5lb``NZa8ye zB(5-z2b-#N!jl8Bv+YTN@MH-MumIE6k20bKrJekS7y#>e?*W^A zrZa=3rMTO>(RsqoaefsyK9UQl8r3E~FuJd24DyCJ&6@=1{-oR)Ffj|#>@Rbwt)DM) z$dvt{#Sl~Yy}V&7G}sEok&HbWWn?3`;(2*}l$RUiB|QpH2?X2km4`?G`=Ma_J(9+e zJ6lMw4TT`IyaqzCmiQE$DD|>m`XPyU-pj~3*u-Rp1+0;B+mq3pDSKgU@CkI(k7hI- zqCtQ2{zh}LFC$iBzGKYdGPOoMVpBbg7cr$ofj0IhfCwaLMo1x_c{V2*U{%KQ+I;g^ zF;#ebocnCdzBQicpEr>#l4bi=Ptqs965Fubtsqe;0)0Ke4eG~O!#AkK+(yryixrdh zMLuZvRH*KHK`3eQ>xM@qxT{XnXf42$fy9vY_lEf)O`YFGdM#^C=bh)eG0f)KEkN4% zFlSgZbxO==0 zFCm(r@zC@5^nLN_Q9@3eI57v!-aeFxxJbKuiFvKljd9N zT^XL}`G5s7vw<76icxGI=Lese>K$EV-p=CUHI#6%Rc5zQq8d@LvV3S5L0wvL$H z+0JTu7>?ZIY6~Pk2dbr-X;kw@pEdm+2?fWw`mKSjYgSE|U@iQn|J8J(pwws{&cAteuhCy8k_kJHaIrv@b2PJ-dOmAkQ z=xMw3v*y#9+*pJop~IC1Xi71vl0W$*f2oJ#fCmW-m#`0zq5_q3h=qtlvDtab$@6Iz z-)hwOgUs>sYZyTF0ZD5k{Egs!RWyTBn^m`}VJ2o@)k6@>p!GQdHRDb!(!xqP*s^ z7lh=vfirx|y&ic#&7OX*eMQKuz|CT%3D(&e+))zf@aFla^?$qSp=%g$ZWa#&Vf^9GItkW(UP?(e{ z{H#VpFs_XFLyX0f5CzC5a{oa`kE;@XIj>(@HM2B71k;cd-jgdmT?h%Y2gKa+m zwd*uSP@)kG92JB(9Cig4(WxgPqT>G*5u*~5HFc&D5%AhM)|Gxi!a7!7pVdci&tZ`} z%N+P9HbTcSF^_)~Z0luM)@8`D^RlFTr0lviB54n{ZQ_lq?8XSxGM(PUZR{FtR!xMz zU9b`F%TjADMl64tjFP+7*pW4G+Xn|fy9BMNxyWu=GdN&^Z*Ock;}u`KnRQu@T4aqK zqQ>;(i=C40l;q6jDglWnO5$cq9>9GL;H0I5gOLj6orX5mjX7(d`Ivo^NWosf}x$$iqCbO(pZ?5V_|ffIm` zrkcGUn4O_itRvp?0|HpY>mHdkvnKUNXtSH5P>A zoU_vw9O=y@QOSSvVT?2T}H_bXPd3BkgKO=QleGEZ&VuE@jDJN?))}5bd0Y zPdV1$1{JJ;gsSt|%F>f~69>OwTZRY`=6&Gul~=0=yM)pD-A))SxM|je5%$7@8r3=u z=GW?T-WziHI#n&#S(i!H+M*jcM%)PVehpQ&3Ncp|UDH~A0ZtbddwF#$ub35|Yn^aG zY`8Y-!XJ@%6WHjMSwkGKm(X}dEi9Vl+|iBd7^3Zw?9pSMlv9j#*i!F5V0~yuV6d0J z-H9@FusuMfx`dy3(0*J<4VcL-O zVTe%T%6$g9OC?`%E0JS?xC<#HyBKE(tq!`|0O0w!;Nxq7g&coNe0?RCb7ayd27YBh z@IXm)dz{c`#IQ#bR}E$oUyZ!r=BN<;elh`FzMO;7$1>Ifj#29D4&kq?AxB=ez@a zNcfX_mEjESfsp~Xk^ynTd@I|T3S{gc;)w&yPtZ@nw*R6^1SrPxx5dfW;n$pV%(osgU7js`qF-+R)LmcJB-bCEZ_2Cp>obm-EA}-5BRKAKH)o^ zAR^&#LPTvlRHcYR5b19;B)WY6)6$I(dfZuSSIWd4ZkN=k&12kodqC!`K2V{8rV={) z^OBulj&(@(l$aYrpdF&cV4G#g{-|Py-{1}U4MLN49 z>pc$Z*9JB60-%d@YVLA8HS)!4M>?&@CJI`S&2hx7uzgD<$}-oHq~nnntjO*}WUtI$ z*{~zMiO4>o(?mq^m!JLaPoMnYt1z-#aC<3ilz1^jO)(W44BRfU>0eEX)`4{CZhp;{ z9#8DY{gFOq-u;wc-m-xXFAJ`?iH~rgnjnYU<;Z_NCm0*RSS9j^d!ztlZ>N=TQBV-C zOn2MmIO9e*9O;aW$!OWYef>+VE$dMTwd*=rZc^vS{flf<;`_y(F8J|U>jk&g^i9_E zPOD{e3OhE9|C^yv;rxO3&%kH3Y)B@BVk3`HSt9bFblPlrEZB6d?VA{RthrvKLo@9e zM)=A=tlXaA4`1nzm82pMqGZ9YmJux#rXzN?IdGm!a?LsO65<}i)^&D!tGJ(g~mhMjT5GbtP>&ZDaw8dCt`hJP)O%S<11taW-JJ) zVL~8T0+(F&FP@3@m|-1APga&DJzF89WoM+9&^vLYwud<5D}aSwxI@UeY4Q>#&j)nO$_Ame);= z-&Gi|?zJL2&6b@RO&0~9$d<27=TD66Y%Xjxm*J5Q{%UW$D*Kof+3O4+B&wa>g!4iw z@`5v*{CVz9KwjsG6hR1CW;OAJQE|21XmoC^YH+$mAsz5+iuwx zz7ttzr#!Z7B1}g38;Cm}mB*Q&jsUN1PxC-3#1$cvKYk}V(uH6LKU^RZ4;(Kr)$O_- zKhnevt=)#V&_s*8t1{gr}IDs$lJIJTk%Dn;zT}OI+p*?@gXa(DT%S%$(!S<&~*^zbdf~d7bcFvlaimlT@1;7+l zS&?;$k-* zK>ByIpt+u+wdta%*k)BVSn~S8lCw{gye3{bzk4#fA*X?)X*t)^sY!w^$Ba9?NKX;ikhbLG_>t%^(Px z8Hdd$jl*K(AvbmET+@5(DzD$3zSqKBB(*fxj`UcoN@NF4u^LDAYDRkl>m-Bop=_6t zoxvvrw>-ba^Tf!5!4-SuLu{wnjn{#1v(dha0pcXs_6AsGfUbz1o%{*;WW5fy z-R!0e*Nt1UO)8+V#q5#8%+6X3PoBf#vB8e*1;r3z@bN1`oMPIGdXB>LNXurcdnzZZlteX7fUY<0m{Fww&t<7BgC)Y@pH1I|7#kK2L z$0)PG>OxCnvn&=@)mm5OJ*i)}Y!E2{0^|+WR0xn>RffpYXiX{LX=P=o!WYd#pQ^x# z>VAn1A~YMc}%=V%a^YBg@N@x?`hz0=tk=@W9Xs1R4{V(HvDWM5gC*}+V6MPngd zUWh}ZxGX6vite1;ib&`5@SmNO$Cv3jL`4r+(a| z`|)#KiSCCC=^;dR(m%0b%+k@W7&ZHM!MfV=2e5~8v z#}~D+Tvwzg6N_3^7B@+N!#cHBv!=neyXjz~9ctv9wv?$mGP+oUQLe#|OCMhpEhWx7 zXYfA0uyS211)P!kp<-R3JQ!l8t;wXJ9I@49Fi&;hd)7$oJ~lR^L1cAxB{RebIhx&V zoR*sGe2Cw9eV8onS|_Tfs$ih+SypEKyrME#{ z#o?|&jnlr`IZtPxtu@HxT&*ttgYXR(K5xk7sb38{3noc>6+^k%!Z9=~hg?bF{%y6Q!<8_$WH6c3n!UJjAieMdq-?k zKDvnTC)Quid5@RDH7G<{hbGh(Wuuyi_-l&uOLBqV|HGoRbiHsnwz%C}CodtK!RvA4 z?yB`s0e9&p4o?Y=vVPzTdP=u&Kr+beiGM?4nxOAvWH)kB^8Mk){zGOb5l{lbijqb? z`Tmd_%kMvgwp9P2j^3e9vC-Cc=ai4XFAK)M;d?Y!m+C*5&dkdhzV52B&_$eCwGV6~ zwo;xwBHOQ5-+BdJ3YCqrron?j!XqbnFcXm5_<*{1k1$n(=P>tBc#XRM5$V^jpVOzQ zh2pZ1vm5S7egh6be?SwF%ywrqwJhPRzJ%T^R{Pk9<|OYSm({)FIEPn!%;#m}jtno- z*6V5q|^0`RF2hbw~AI+E&45PB`|yqldWOv+;;mZRh%XUCY~{L$*_s4W_n ziasd%5QY>8sp}tOs*&*Gx=9oPhDFSe;H88k1lnQVCHsm2Cauhy0>q@y@xV zDL8bOEko*@DgNh{s6XML4xP6XAHSl<+x(ah|031>kc{xAE ze7prUO1VuJ?n`>kgbA3N3n6}OD5gHpkb_X(3qqo2biHYerEJc|Dtew@LLu(~_yyc(?N1=hi_&`P?twryl9?VM^6_#wP?+373uvN~#wqHZJ0+@B6c0pVc5w-zK<0B(#aX^|CmV&Z}7y|2VGpq6iV*n z4;duPyjV#2Rfw*TC{*9WLY9nUD1+r|>`PY>lR@K<>m(2Km3;CL@NT{WOAk9bQ0|(_EkPfYbO<%MiE`$Jh#axl#|az2GL68-hwffiwjXJof@*H z8g^SzD@`*ZQLCJXHXdBsqOsDK9FfF^)Gox8z`HOZQf<%dryv23lcPzBOTLXFtf)9i z0$QQg|5nKR$qi}3ttz^~t#sWW!G4D-hMbGdb9Fgr>c)Tmx4>7g%I=b`BfE|HaXXf* z7XqACbfZg@BOuD?Ig^9!U*xqjLXN6hd(1)xJaV4-MUEEdOIxnlIOXZbjV|pH{`n=j zMxXD+@A5Uva@U6_hf+_#G>8_;sA66(5aXIUuVon+rRU zAr!t;BFzMdZz*6p;f7Zfkiz z+wxnB4Q_S-m|K{D)L_jQh0z=MTFaSC!!9L=)iVP?^`a?C;&e$!(7h=uBWc}2T)ub2 zyaAg%x3qQO?|ac?rf{%-$qZrQ$VRSR)($> z1w|5FPG(4+@{UR;21Y{ES_$i9Dy~!?{#vN`eLU?8`l)X=XPO(`P*o1Q$%LL zY00-J#jL%>{vr%obcC5QqUTNtw)Qbd}k(UJ7(4N`Bw zrP$k|AbKOBjbgFsHl9A0x-WOv?Z+sDTl*X0NL*nX;??;UYTZpZ0gxLE!J}rmkVlwAA-V(!lU^m-n5)eqdT4IHk% zVb({f@LyuXR@TgFdntC=A2OZs!N>2}K&|1`HR}A$%F3&;H1R!>(P8HDc+!>-QuqHtK=}3Joa>&qURJB_KmqTg+l74* z;fcpGiin*xOX!c^tA*J3oyl+D$rzmy>H7N*aDX^95%F}=+wRD$%rAgAIE{|V!L%~o{}u9vc%`w- zkFzqt*JQL$#cPF30V$UoyI2;01qCY1P|C)@Q}j&A1~S%4{TjDc0@>DJ1+>qC?+bqG zs|?{vqo^ZN)A3yyDRa8kP{CXHiIa3lUHWsuc-bG}G1vaGOZ4tfiud~D0&x-df2z1- ze%_^sm~02FOJ{Ma>aL!Z*}C*uz~WnDc>G z{+q{0YUeI0Q&?_u`_zA=Ed5n%^u9}*=!vAG#kvRMJoW9L37GN6SY-)M6MsNJtvfjY z%?OIssSmy+oSxWqXRBY+l$B6Zzj1Qg@dl&x-H6@xuqcXzdluzbUBx@hBPC0RTY1C* zIfXrKHhT+d&apk3q=cX(YR&PRq~-#RJMM&V#HjvppTKlvEvQ>B@O&&F&QkI>s2hPt zJ1Qwtr_0jMjF-wDp?e0Od@cPtNx@9MDO4H4d1!O1?hRm8&4-p}LTzJv?d! zaULbmqn}d_nurfjjx)-C0#t@-(v4}Leskfc0+pd=oB(RKnbIrWNtvU9!b0gJzk*7^!5Dr+(&?ajT$d}r^guEMEL~1^I77Z0>U;XT_BbyW ze~24S8mVG;1f*JNMyi!s#_<~vhx&6UtViq;wQ}4E?KA`qoB1kE8M^vo*3i)1S(Z@mGq69@`$1NM|6PD1r z#pFuX72#G{nEYz{SYVMxc`=j4DKM)+TbtCWuSqrndkA=jN=d#!n3>cvX8#Upk5nZ9 znkMb9NF|?4+9Q=;=hF!KpLAn`BE$c5baK@CvUH=DsQnk5X!KJ?Cr8;jzi#~0lY9Dq zH#)=AMC$whVRT9a_J3n^z9RVsN9RAACL`3h(Fb8={FG@jT-~m}hxq=l))=pvqVwfF zC#pqEkZsTps}rZ^5&Df!t#{wJZg|-ukcWDZDpnWNkinyNBJS1&(r3Hsd@%`=rFx92 z`LQh3Gak}M%`zymoIq~o(JwYF9wS~|2?jF0l<96Tm%&K3~E)a_mG zWolW|pL_Z4Z#Vvcei{M^?f=&=IW~8xOgB2QcTEp_~5xoISO)Q&Z$?YXR`A-qs)QVn@-s3NdGxR{tvm#&S4yn1rehD zk!AJ{fTH;N{V+j;`yOj+jk+7Qqe0zLAtFE#<>c8jjuFrG@5ew>e-|f=MQpqiE6~_I zgM_RN@x1bht36wJm~6zxqp9v4u*Vgd&xgWl(e>sV-eKaG?3naF1L2y^ITkKyvls1; zG`xXmTl>58 z_&QbgX*g1`>v5-I*!6y^j#%|Z(?xcDz^V&i)^F88Bw0;o$<<|Do?V}B)gjr>L4AQs z>jaI^dCwXrhu+0(}FuV|O9yc`qlbp?MXuAZ8HC%>4tIhP5-J5eXQ0c)Uw{o{+T6$QBhqdLcEm~Us{G1U!Y56#H;Q;2EGXiZ&+-#{4dk* zRP3=0jSGq76^i{md4UjMMUgA=vKRX)o`?Rlwat9%csy^6eV4(E;-%60hBsDf`@P$W zH5H{EVBu49+!!Y)Gt>Kyxz)>Ezg0bs z1~DWFwpX)SC(q-LMo_%glN+!7o?*=jShM_<=D-cH{fWD$ie!`j5_i|?l$X>roq`j- zTc}r5WX*5gK+2oQn#yCmx{O8^oUI~fFmQKY!ucm)8E2!$I$;c zhoL9_-z+~?SO*~`t0h3df{C`!Ifg7tN)3xz{_c(C+c)`Tk(?fgZ3$oHk8N^u5|G0V zkvG29&tGd%0Fw=CwY;%r23T(8K@xpq(CbL*}Lcj@sfQCF-M(wOpV#;*#g<0tKP zU(W{DpSaik(rq)+&r-}xNm7618oj=zL$Hf*~!y*6D})i zK98XhgTZ%vcH3$hcUHcjz0hwxrk|3xvK6r&EXPGPwKZP^jj(FSP8DC1;ck@y^twx# z?+mTp5v(imUF%Pdr=)rZl9v4D+b5y_I)T784H-dblnV_vWyCWDc6)6e&*%cn^frQR z$7q<{3&#uQTgSxgHdZ$X&NR^&j#bk#g6r_Mri$W^WH0a@wQ4ge_*col5)f=y65Anw zar9-&B?oE*()jID49v9R}?Yc%6ZWALuJ;|0KV9S%$xm5!C$(w!MndHhyaRhO z?mQ~2)?ER+tcY!e4aM3nzgUn2a+5bo{>p$8*APtg#vhQeiq}40rrAb&!yn7Yk>(yD zA_EV)=T%F<#1+32xHqho&LI|ctiG<^taxqvIGvd|Fxlotzqix*P*(gMu{^8m@Q!m{ zwA>2aPY>I7>TTxu*s>yeEkjx3M{P4c$={r9P751eXOa*>UijqR#Mf)W(tR4F7&ro< zJE7GVvBo3{N_zb$`@GeiT+J$%UKcb{ZFril5F1&3c{H&A<6iu`XK}_(QPYIURk0BjiFRM;4 zem`&GQLlE^dbsDD?(p{D-D`L!XN(2s5--ysjUTd{9G;#Gf{w@VG@|&?%b5Z*5#I?db!A0rcjJ2AJ zS}WXB@a|fO*3#+Z6(rM4h~DC5MP*{k@!y{zlMhb9U0DT#RoNjcF_xL#Zbj93ObL-afmP$Jb2c#ofltl2rGL0$1#T7Q0yT!Md;id8y0 zmorgF0hOT7 z1lvVrc;YSGp0|IC6d)MFZ_zEWuQD|{%t}gvBK@18_lb$7ph(`y@5%JU>XpCfTn63S z<&x3RR2vJ64c{`;h%fY?q`9GwJ;HAiuxyqx>Ro;_IZZIWT0kc@UGy{)Yt)e(%ERi8FUG4b@uZRJd`{}ar#7)`Kga!^ zZXEd$g|i?cyGLr3s46wsa5y5D`sJ6!A$a#3DX>Fz;BP{I9dAEOU5&2BCxEVD3j6R0_w+ zb?U7PWrIF`Smr+L0t@6KyYd*8=r=Q2Ol1h`;6sJ2X#^sKdUZbO9afLSxx7pFS*jr@2M;{0=v${=5z^~qODTbR_ z>UX21jsxR#H&*J8xHlf}X7fSLY>loikz9r4$;j}VFTV>sv#8)H&Q^kf-&bI*?-tAW zz-=xgHo|>jELf(>0ptVcBYpJxz>-cJx|dFvi@TU2<+y?%l#srmYG2ERE$6GtxWPG3 z-UaPYzE?xM?ySs%T~>tvb)7}zDAeg;|jkouvn`ukG#`g_68prj#+)LRwI z5?0^%W*&#JeS9YaTwpJ<|WY{&myoi=kz53%=NY~uJ z$N0iyCu)@|JpE4z)4;h?hV)%Z$RRXe4hZQck{yDIzyJ6Xo47?cG3%3?C{yA?mD&#X z5Lf-2ZfU{(UoGUR6}p9XY2lwR!r>;D0u8F~0x-gwg9?mBi#kOUVZEBjXO_`Ib5ohX z%;3%BF%Q186;C!I-`41X1K)TIUkBx#@#%3{#e0Xg5~pk!(JS+IABcoWaL`8 zJCgca(A;Ri1I4Es@GFO$?1_P*MLrC$MQfzAQ+t}EnL)pA+^GhiS&Hsiiks->TdgDZ zQf&KUzCU=;nH`PWJvo%u2cMZS+zJ$F{tSk&<-8})df!Wg?;|(8^qWaoXmsxXfD=Z~ zotc>$NaNv%vm3_}BjUyiA~h^EZmu9c!7W9`Rf`|RG2LlonmyM!WNy;#+Js_j)T9+M zPG9_yKF5g;Kp_HfoTM#l3S2H%rEG$@3;V1&@R{b*OZ(+Q@QfjyKP@68Ovbh5K&9mK z1)pgff4b-rtr?%kk9DwPdZ43jL`P&emraQ5EZj}h`K>%{%UGcHv+}v;`Z=@3rx5I5 zbfi7qDBfXh?cz2t?|-~6TbH>JS_RsfYW3X$?RS2tq1C|*%pf4veNtkty zBaYCDC02UeXoU}%bj;4y7C@km#jAM+fSw_Mc2o}!KC|i!0k&fXI(fL~uy7c8mYw~q zEaE>roPtlp)vVzqz`F1b-$hLWKGx>=fmR0YQ5mKadU0ulxDYSM)nP$Tc%EM%8e4K( zt^X;knB)YEkazHv{3jq3SI#3NgVJ2%7t;~wo^t7^Rh!W)= z##G$Ulo7A_ZSe7p;mu1%xEWzE=2<1q_-Y)l8qEQ8oQE|PNIG^J_s!$Zc^*;fxzgnq zQx*U?4+bATf)jG@E~k%O7fV&)KIJBcn1Yt7K)5Ue(;7}R3D+?Wu45?lrBs6s^nmpa zN~^@hWcAi7s7A2%fpYAS_)0cSSeX>YgPHQJh)H=o!YjP8%C;BOs0gWwxrEZXW|AzO)-VABHv^E zBo3?B>bBuyA{^>4$=WA}oX86W;kb z#l2_uVSRPl6K_DZ@2WWZ19>}3tNva#`8v` z*T)eogSKcL?&+Xpn9!Z;>nhjOMXe z`2`=Iz7N~H;KLDxx4?)xJa3Yx3_YH{FZl3QyN+63_U^Fys6#BBy)R<;(53vPFM0b$9u>Jw%F}$F)n^?I{&J&V zLZFa|EI-5%+(z%Akw>gLWli7je0$~e7Ye7po`~!ek_R;u#M6?%oYDbM#n6_RvY1Sj zw6?s?oQXd|#@29be{=Stv%?Y9bh_E{0#@K@L+FH8&z*>}2qvRJrx@n-%%PV&hhO1t zevY0==rNxNyay5GF|{;($xYC!bqbm9UpYU$8c~E4Q#V1N=B6T^?CHn0NK7AgzY~*D zAx-z}VMe4&?O~ovvCmUX(zNQXjjj@@J7oj^960G}z!;7Va@C*gl-m^2X0-^iq+0n779)=YuY>TQ8z}-rIw5@$M@aLw>C3 zFJL;B3O;_&It)~ecEwWbcw>9ZPF&E*2{Fef!mwbQmtUmBr!M>4o-K}V&z9X=8xMD5 z1CwbcOPm~Y3p>FUGuc3;e~s*at!vK~s}6(D-FDpz&i}L?xhN)1?GD&2`>mGU)Eis! z>h4$fm@T~sQ-whk(|oz(Dea7}Ed*RB8ZC_$YWxHV8|MfN{Q8y@EriFTc-(^#Kk?7Mrcp=)zZb%7?Z+-QR*Lz>x^V7R>_PqCM z^7Y=IMz6Q)6blVgrL?EGhqF{6p2bF)Ey{Ce*6xE0lYjRXcd&L0?A}aj@2h+EbndpR z=+&MrgVmiGJAH_ilKJOg&-CBb$P@s)HYN9$AL z7(Fj#YN?+uV+wRN-D7zE3dgr+xo)cqIJUm}Cg8vF)4MK?jfVoazWR>a8(;JSa)$P9 zc}4nkmoIwO$DtVkq3m}2`mgWR-D$~jNCjJDt_`OlcIBe@1DiP`eC)vat%w{rqo0Ar zUR}tcOs;uDB9W_4y>zW`^G}mOm7zo$H@`V>6diItW~$3Nz>jH6NDXJR!=2<2_ zZW76JM}pl^p7`Zh=#|4D-poAX^ndLbYVSa!y`O!c|KlMQ_*R4^L-GbhNMAdouT(%na-`i5Bq2nCF*OjS8&X- zFop%8FBaR5_vQ?DwQ97D8nYM2I0IhuH3>puUagy%s++ks{y-a#92yO)+Zj(ozU;w< zenJix+oIx^A}sV*bV=_oMORqYQpk@z$$Ux4{7#M-N*P0` zqwE^)*S?|D+e4|nL#daBQk#cT!sNMS9~(-EBQ*EjeM7154W(8MrM@|oS}duXLPS)! zjTDD0w#?+IwFE8A6QCvJ8%8dvWyz}~h(1Qb~PH-ihz5rz9+2@~okE zr$|ciCz&HDxf4mI*dW|m#1Pso;YcdAjIVDDz1t-zjlgX~DT%zIgQ_OQla>qq!$YZG z4W)iOloCq>H{S|L>H1oRQg=v7&W*{NhEm$JM!&0*ce=m-B`F5albodUkxX8uQTB!KmAmhmhPPYLWBAmk0_2tFKAr8c$D$A z*t`7ZEsVw9V&$_1!9!naCF zJhUXgCaDd8sqLfP9$zKz_{aDUr6vxgN{3RP8%muulsaW7l_Mz;j%oX7ml8hYvGk?n zd;GY7?2{D#T9dCxs*pd)o}pB?r1UHk8JbI`e~^?WockpO1$mMZs^zIxVJ=1b?|xk= zDGx7`t@<5*oI7chpG8lxBY2#fH6=PXYDk=G-Jg2*=PLJSsz!q|$^Dt&{)~5j#<@S| zyFX{UKciXfz3O}Du3UHh50`J1*@pG*R=g&=^KHnzj$h4hl0~f1Vi8+gg9H|-TQw>t zni;a?1-==rp1$CtcjD1J_Se#s>wMUk>VY3+*$(1w)r$0K8w&eUN(cK=L^DY^yAqK; z`ZpAgNJpCw*Z89sq{G$3*GsINlOp^CA0;x;8pg|wOwZMkn@Cj}^L};zA$W%RPOmRMRPkUrRIZR;f5C`7xhmon6hZ zZBCO8cM=rQLkshzT3vY@`3;}t(;11%3f^NjQ|bOx$&X!G=)CCymyl;Z%OvGTC=I_H zed3Ze(kHIl0@MPw^i!fTkM40+>(h=r`kcQc%pxHw{!8A&ANa6A5Cl0o*Z!$-TON>~ zvzJ8@lXM#=;ms`e#%^)OrQ5@G*HC+Xsj2uf+1U1y{zf3r!G;CG*mkGTT%7NTCN>O>JG{I5jVKV5&ZUQp)G5qCM`{8P}e(OM)^*?tTXN;<0r*6 zvISqk_FqzQ+#Ex?^rf4(7MM%?bYwg(1WM3aVc=qFeif&AW~Yt&tL@cN0$HOj z`4p-;o||7P@b=)H1y6M{G>OUr{-QpLIFAc0xr3gn!;FZ#2l3ymtx58&$ws{z!&IMr z@;E#ouz6!=n#Vayn!Siso{MXERV^EOavJ&Ldc4&KJUhGR*~2wiZ#9p2mKDZ^5z|SC z5DDEW>tr+B)~aLqWzGAAytaA-JL?t+8Xs@hVZ+>+FkBbf5*xX$R~JfW?{Y>HFyp0V zBVEyKx3!tsX;?jncgr=9%#{)Jn7QK4lo3RD-N*$fraV55VXhCZtJPH9UN!BR>qY$U zi4Ln1m!ON<4j#ta-?hiKJO|iq0^bgEi!Zz*TFscw3qCqr-f^qWm5H;@d}F+5_4pkocJ{ElX{s{Vp}9!F2xWO5fFO8j@Rp1j&Pmgg9k~;&+W$;5Rph zW~m>(C1k@~%C*WRvM=#`(J0fG4G{C^b=eZiBEAZ!?XQyAwXap9^`}$aY8MyUrkICM zEN?n9Zcdv46HIVWCNQ3$-iUFBa<+QmeYrunN1FHBCT?Q@WBEHb7;-mk-$nqW0%xNE5gdwAV_PqcyhKCT((0xtFPJkD6?M0ik{PX!C_!^X(`;Vvh+Y?>Oz|EgTyB zAx|vF>Op+pbha~MveSz%_exomb~#D6Ubad*tJ2DH`Q)oru5Op;At>4DuH|5Ds4;>e zpHDD$b%T2Ab^-2h-xT0PNtvqFE_^KZsLzuD z2!?YAs#ABrg3=G{^V~0UBP6GYe#YOG5a+3-x|t<3V{sm`(XCDQ+&w=rDA3BgI#>gK z>X9Q7i&@S*9H!v!#eQ%ia`G{E}ew`<0Fm#stbz>8LC_awt>PtC`j zW%2fzsfBs7)C2c&;9GzK@g+Zyvs%9PB0)QW-37Oir31+S3 zhOCI$>RaH-$y6!Srj)oY9kdAdtFP*eH;@r+d6d8w8u4mBfwGql+;Q#{9MIqr*G4M^ zV>v<0Om!Bn6K2z#frQf8W4_1bS}w1y(;hBQb%$~6n0UL8ag92#n_+P|k953>L$?ZG zeXR_+zE2vL9*c528`1HY;%@tPg8{Fw4mj^7d|zN>aGomz6u-;=q;P85!{)A=`vYDP z`Q}+u&|KK5>A2FGB1ejApPS#u>Y~O&66o(tF=n%@KIUdhv2`?mY%bQ}lYmRgN>~Po zapX@&*Be_ihGj<@wik|z2M$^z|M$R*`f++-?){z~nCrm%DY|44$S}-+KgS z8E9C!RoimM?-#cvfrbU{p&n6si7BG=SasZ#I0N<=>unHvscRBvM+_N9yZxA;lK$H5 z1EdD4s6SCW+rBm65XnL|@$@yTx40sApNWEVoqMZZBHfv7GE@4>8IAn>J|1qVGiCpXtey8tbA zVZzi2`0xdx`9fFfAD8pz=OblPz4l02K9cq2^@wM`|xV!7P zZ-(|tl3JtRI0sq0Xe7-znYRq3WfSDEzkL5M0YP1^>zhb@_Jc*6coR35kkwvO)WZWE zYAbp{61oB&U0F1vR0F)M_7ig8b#O&&2HOJ9o< zh*9L1xV`S@50~-dY(KgUBh4ctnzQ2-TgB>ACSVdie4J|kh-uv=#9|6bvA}AKnH!2a zs5XUj+%}yO>1L7h4Rt%y!|GP|T#-tJyJKUOoCtaLabV{8Os8jJTaoajG3nTSB*JY) zqG%JnlnLkqPIZ75G1~XJ>SU^S=#iQ|Y6p)AvlR?cF;Y7>P0~Yso$>>O``NID9vOhL z`09PUvV03J=CvT1O`zj{M3*zZTInz3%BaM**ia>?L>6r(r=>^ne~oo%DttJan_9D8 zMt_QPNaFFOGd-XQ;`y$R*xDT<^%v*w;rAq~CJU|$~!zUMbZk-@Yw|4OB0{elxKGs?;gz~9{ zzbq;f>PcPh2`PsR(_9~t8l%KUve!y7TIe8~RF796w!;nx-BCQzdJi|KU-E{rS^S>M z!EwVP;Ok-b zR7i;d`UFAhtMm8?;INRN5k#fuCxq9*M0FA6u~@+c;W&FTjuT7l$#@?uvnLl?)#di& zB2?z>$z!bQN_+A+tGddbTw+yEwI`#zKF!s=0L3A=guIg>nLvmg>kAga&L+zF8_Cy=2oSV#0tgxa2&x8%at%bK2BJy>F;xRGO#@M*fvD9$=*@cwiu@D!I0407 zv+V`fSW9PHw_SrN&A$)PUE}NpCDzh$)@?upT%ZNG$`jR$n_vy_zzg7k7r+BAfH%#a z40tv6WWcK(+?~EZPbllV@GL`ih!<#>IlV!kKc~7AGY%Y8i(1#3XnNfFUP(iA#cw|^?_Q%Sy5!j>oFRsh8o%CYMg8iY?fb`9DN zgw(bhr6+%CrY3F>>?~QhPh8`(7J8h?@!Rr0cBv3X8>~)!hQ-RhD3Jw}DY;3wgSV-s zfNI2(LcO|yzviaGIyHX^#6P&R%SNZ>>LzE?Bz)km1tsc(9{Scjo0DVAx+ty0mT+S; zr)R)&QQr47Wm-$~xDCXA1B-vE37ZI258DR?$SF$f#gh0%nC(!B5Duzt1@2Fw`=h-@ zC8}lp;M+L)!R4H9FfbXM(QLKhYl4ucnlwUgWCGW#9M(A9z?THe=X;P~T<)o4AqWo1 z+~p+g6rqNzF2c6jwaq!z?9H$?UOD81*|pk2i_xN*U zO`Wf1d{OY>>ftOdkHgFWL|eJ*gGC~FRbj=#X$7+cT%=IZuc(Or%lV{UeU6W_ZG$`8 zYh2Dk_`SEkD!tklbB8&;G=ETM?Uo`xV}$lsgPM^k;E1{os^ZOOgI|UdAHUbpvgY%a zUVtao!8Hj>tED)N2|m#fLaT=-LJP7gOfiOKM>l{|XrfMCPsI{NPPEakeNL^Ek?*<= zDAI0CGDI1|BYadu1NbFA#mzJJ9@8$8LMk6~-9b!5M=!`{z~{ZpD}u+tWgpi436g?Zz-@k!Py>%&0DRWXyhWgVB;H_S5;zzLV9@+}kmahnM5>Z{W z44tb=kt&O%HTXF33E5d?XR8Q4zKNt5EE_o6CF!r^kIcM^^MzUA0bkD?V?J*#2dpL#8sK#8=3!Q>AIs1oOXXJVHdjmo)O{FfyMRf5%4G|c<12`;S zDx)G?_UKeoh+UT{_C1W9d4~<;cBTdP5OHIIC5{4q&j)V;7Cx7TAr51fekHzpqIoO* z@tLWPQ0viaq8V2?jphL#uF(WHl{AWquO61sJgma1IQyl&7PZVWOCazp@}v5 zcbpl&5__u<@e{>8+}VWVX4zOwT-(+v=n!`gLd{;L$oB z@#3%Q8k?_ky@{3CZJeOHq2CD+55C|?Kz}S~<=UqfDhf5~eoOZ@eJ~O9PX*QaQZ#ld zSwmr5?yV9fA=@ZQZs3=?qHjz0!+Aw5uTr8M(F69H6&({%-;d=UX2`^ZD|Q;L;k;-+ z_jrJ5J>De+Cg&3LN94tKcyaw)D-oYA?%M#K5Uo>EHR9T)NYw$AED8WnAo$$3GMi>& znS`@;i06yfv~155w;|&4q`N(j@tHfvo4}uj4v^`757Bc87?2!G_gOUcWPzkhuNS(! zcoB3dGQ#a$$FXzBjGGT~`e`oWLcauc1MgOxDVBJ{TkjYp;eIQ=kd?-qW|3 zZ=n3?cAGVYpyyRz+*8k6|ygd}8fi#0j%VhR9XO!mT9H7Gh_mrgMf&M5+MzYe0qiQA$?7L7V?cpD%7uda9(%U48QvBwSvyo3pF}jT}=^bSy>Av z)Tpp@M|LD^Qd7wnX^41Nh^-LtEtoJ%ox$hpuVqTUf&VUE>v$agnmX08OD3JDu_0oS zAhw;Ye5p5*79+&!pRiGJte+@y`bd#72~3-?FTekstBhMyPGJ( zt#?umS0c`KU5w+M7-MwB$9-4&9tH_OIHy+MLydIc5NeHWWvscC5vKrXe{1_tiS;*gvqGB|n z_{t9J3W1;riR>=%Uv)t8#={ZzgXpP%T40H;@-0PqbJzfrXMh{C#W-%)g$OJcJGZ#U zIvDOA3aH*NOO0psl*#U$E)?Jt6!(O?n{TS;%jtYUor1TzdM^qGea=nz>}XJ9PET*p z(fxJmy{|)iLR;3xa3574viih?0?5(F-0`=ZM{TEzos6UJ8kIjGd^==1DDbEBWYx7D(N8qLohlYj};oLM+sZ#j*{GSNMBhVcMD8OtCNA8rHBCkp`?F^%##r=OJbnNBAs zozwe+AI=eMzyio%vE=A8)AA#_Qllf}oK4zKo!Q(2Ei{}UkJ3bDAuY}2qz&{ElC-oS#?#~^IW#wO&gq3~@wA%La2y?A zMjf5;^)ll-%Ih8VMYOHZg5wD4s4$A+1wA!7prb%h$@gDt@8?{SwBUR*^ZUNvZvs!x z^X&Uxd+oK?UTf{Oag#hJRf^6g-+T|Q_?kO@30sN$XQzPfia|hElsdE!*ncltJkeO1 zI<%U1@s@wcCokp`S@5AHxlbo`s3G@-KmSA3d>+<+#}8e>`|(5KetQUlbT=s?ak+7l@)!GyG}j?$efdJ;h)5{Pd@SFJ;*wyCd|Kw zT6nKJ<`o$@aY!QN@5CVp^AzR;wApKNr?}k8m7+rL9o3)rOX&w55U{>!Z*em8q2hG%9h6-Z`cOLY zk&_4DXAis>jyIa-Nq0`$y!5Ak+x|ydU)abelAoZs$tz6(42CTL?#%WNJaY7;R{GOj z*#ac`iR6dK`b6?0^6#-H9;x}}7lf(9bnmP5`X}`Idmp>-9VFay(c@oz;-55R&n05# zSD6-IPQL2#7sVd#Z^tf_z$d<1WP;Cq@_X_%IUgfKe!p=l`HO{jyx2>Q#D|~!9yV#3 z=iKiFe{kxFN2YXK#5VGYN788|-t;zN`XaRPhT@9b&mvM zAOBeaY4TY0`1YwSSA13i6DOy%6-B2e^!EzIl*HS`pw1i33lH2YbHg>$C3(a(Gv>ep zGH?3*ck3*gxJTwm;(R+TZd-6wN<$`Bnsj}M%DIZL+*f$(>(UPh06t&MpIox~(SOWg zErt@u)k!gvC`O{{bXtBU6q(a4MMd0zbdMnRtxM7^=W+Wv_qj>8zHu^nw3@@8cO8ZI zOMQLf0qyIFs*R~%&+(1>FiVX8mYBLzdw+E}EiK0=^}wlcqRM~Y1Jb?ZGi|Bkhvhcy zg$GX6?I|w8LGhN!e>1h$J-p|vqaPMrm}3Icdg~jG0ZPocrXEgxJ-x5!`1&F{37q({ zI_TX!v#{oipPSnJv7)b5J}O(+bmB9Z zt>Q@G9-W<8`j*nsIhuiwDjL`K0}6jM2kb>E4GM(G<uvG=@K1Eo}81~BJfCu-ak=VdCwA3;ikRr*|A@r2)*O| z6ePXT^-6jZx;uT3e5AI$>u_4SZ|BLy-00}PZAsCw<8#6A%t^^IRube!8m)O`8w zi3gTP{h>Alunqb&o1O+LYH~rXiFzF8doV7U{L>hSVpZKSt+<)i=uqu69(Sh5F%JH#f z+QA7`C-u_Fzm}gbmVJhw^g-=%d#01t!chCiGm>xhSqHwTiXbOGgi1&NlzibOuCThh z>|?x7UP53-VCbX{mdQ-E-^nAz1W3%}n!01REm@y5U&Rx5n)GddNZol*fIRsW38mbL zgLlifEr%@}o}5f;{U1Cwwi+MCnOZ>A&5j4fw4O!lDqHegal4!Ni9{j_b9SPcJ3=9g z{RfxOd|LUS6p5CP!v+TzOOPot`NBp1gFj%lGN#pD7ySo+P6%vn#k)J&bJ`>kv1DHQ zEpz6<(vuI70^eJ=2dEO5jT6_N`54?`w;T`mAN&mQGQJe-PrZwelONC=7x>@)ZeHMn z8DZF-;*0$ES!6q=?VS9ULY9O( zkov4}{C^=zOWLQ1=udq_MwcBrN0i>jE5|4jH<8g_q_r%T%>RpynOYY6$Mt-^86HGM z&lPWU{fBDF$oYS^BI&oto`K2aOTVQ^-jG@$dis}7X~TDj5Noz(`VCAc(_rx%iw<{{{TXgWA6$4~-3by8EZoz@miTeguTjt-}b56W3h8uo5t^4BwFXXW4FLu%pbqASiUA7oYw7s zB){$UzMazQ17FmHPQ3Muo&EVIUs-4WTF1v5%DGjM-Dg2HHg)XZUP^3_|yb3AQ{Vy6R)ax&#dEf2Kyy|Kp+84YLqAj~nHFNN; zcR#-VRopuB+?+Y_xreWsJHByI`mQGyW6aUMIMwcAd`RIA#tX8UH|m?IEv5Sx9N6+I zvB{gf^1yAcf}vqIZsomaXXU+<=eK8GJA!;cv_$hI!{m9ac66}yRn8QeLHvi!R|kQ` zQ|n6)x4(+(u@WWH9JbS`(y!p8`7FMQrZz6L!gpV0(^b-ut8UPaESXqeo#HI3GtMnM zdSY~zBeO{36@;wFsBp)nt`nJbXrw*K2 zu;-ss94IS`uav0dzA|UutFqz;Jsp8mPL6U(bgF&*iS=a&Ub$QlxFAx~(2dnKznVPj z0RfeI%3U(Cullfm{NXRjDx02o0hX<{C~?6CO}r0n4$xfUYYk0)tLQlum;Fd$o?9O( zjr)$TZ(-G(>`rA49+A-a1=1#eYJf^@-IG5g=p`d7Pd7o;eEzqgH5L~a=x-|~kI<{V zE7mF;ekcbbNuX=3qQK@L6o#^^>@@v9i9#5UB z_azoGm^SC+{PmdVacc5t<*(ar7wOfKi7nNKOKZ>L9P$xgV`>YzM}0?sCIZPNsnOc> z{ZCPl7QDXtu&*9V>U)94fm1{A^V1U&SNUk_RQmo0d7E5y7{5T#58v_h^CaPFTiJ%h zxFn5MAGoQ-i5DNZDs*7IHl?XLy`cze?hkWgQ{Bnikoj_UM+&KY#{ao5-uxNfp2u}f z>UT%~DEDt5g}*(t;F&`&`ValN2+U7$DY`WNL~E_Xk~dkJJaxfsXW#KN`M~V@q?iH$ zsfOj4&7Dh42X5!Y+&fPG0@+p46ZX!O#yn25Gaug|$a(K|MjE3M7%UssH>8xKKYVcR zS$H5fdz$0}F5^{{=uO|hn859s_rh^O4fk_Z z(v9CvKOi`RbHBs|<7s)t(EwF&8*|0rxF{PcDUkzw>m?kFoHJo+(60>D~ECbdU zU`&>pT{QwQle>gE;}_R_^Z23H(-JGwpcufQtxBoLX|h`oLAMxGzdeI2j9W*^`CGHk z{Z!H9mrTK>iFjIjn0le|VO$>Ee#2qSHh$KIPZgO;ipK8|7IAy#0x9LNeoV|arDqig zrHPN5WM<=Snvv_8|1bVGZJd1llx{jE@14*}(i^{VMOwC4{&xJR&Ss%bS6NtM=D9_z5MLExD_BpKQ> zj~tzv>S(vvVbEd^W;*DMP72R4vE4;0$5!;!Q+v2C=FuUfVYe;WaovFjUQc#*hLfwV zm>)m)3X-Wyq?4m$YD(QBn47vs#5CJ8PoDx>6B;!6DS^E|J4CYan(WCRA_KMc25eIb zlkJ%gN(qwl-^{2TSD+P5e$E>@WF69-)QjAo_2T;5OBghp2IquY{rtQEdStRx0WP)Q z_Rz_Hf+X9mu>a8CGdi|Z|G^Iu!vNz15Z?*Wcxn2sKR`K>r-tKapL`o}>AR-*rm~bp zj2GD<2}Z~sX+pye&l%UoPIz0w)WiP!RPK^WOZ_|XSEQ&=cQkR%1}j+Iz*Tx5^O|(< z2u(^Si)5-F^BZ&)S~p*Cy#C6wWQZ z@!QEC{V@(je0BO-1YFY6@eTNqxsr4{CR7fIUW@s>PKQO}b>_UD_-;FMB#^6&mmD~C z!QSFV`aiC{<60Ly5bZR(-wE*^Aufmh70J*I;PBLE1;NuQc5V02Z{ab)wS_r^<^W22 zE%Ne-^(*4V->aQG`@qkNYodM#oYD84K}3sGBanCe!k`$EXQZ~VcJ)jkz32HT%cw@#sVsCkZL+`Ld+ zjY8}K@w-!+`S@;X6-^wDIex_T;KFvW9H^>h{2QdlPb9Vi3(-UPHrD#$gIgw_#pMNe zcm3SA;6?c80Chp1I@aPEpYv@h59H z&gEYEBXcJ!Yd6l3w>guquiaRbz>M&sT3_OU$@7pH94~q)eirp4ekWEZqEeB4cxGdx zEHkZLEHkKzX!v5zG)JZ7D4*A3`})m$nJ#J}S;uV-95` z?;k%3?j+6|s0Q&eeq7&PT`=4Df&7aYx1!5br z@+U80^7&p0Vb6zl3CG0aKcIo>qzk5FmdHm+<7Lz2;;-O%@*t^;#OcvaiZC`HUX9mk zjoW6g@n3yXy~1d69|%^B(ea7(K3OTz5UoyM^H{1Kf)oT;9Rp|2<%}>Kdq;a_ z|C7>if#_El`r@>;nGWIFCLQvzEi9f&6ld0cfr;98^kE+wDg=e;&_aoszNUFF@46%N37Srpx2@Y%b*AO`w_P*dhq!h<*@{##QOlPga~?(_pFi<4Zpkp;@zwS+qoUW^`{Ne*B@`C zuaCl}oVl;Bg*H#?t1t5bE#du?APlt_0{aiXQxN>qB76FB5wG4fg9~}C7=NQN@$+zL z>g4#QvblW|3x}UO>PvSN#Y@%GL&alyQPXWtPHvJbpcb&zo*RsxJGo9?ut`7gBbOcA zCakS~M1ev)LRpu|L11lcGF^NwAB!YK><8QDZYo=G z&D^fChK|e?y$WzwgfrUvIYn~CUj^M?bfBR`Trc594w@gFd@td=)jPNpk+x#K^tcc| zZ#B8&mk%-&ncvnc{oBlFeWvVjLJ;nXRChoW(V08`0Tf`?ZqM9A&Ahogu7emZz72lW z|F$8-cQX9*-U2|{GhHU}LLu!wb|~A4=CzpDt9eB>;y>7Avm9=jKLt3&pe&`vs#*kAIb`5 zF^qv*hgfiI-f?*Jvg1yWBNo^p0khJn)#Iep%L3UQvx0sF<=4(P(&~lI{$>8pCFKS$ z%3Cs#d_UFmw$Oi{Ui{?$xL%t?NEvr&iJiwnbCJ@kk1UlE$+KR_u;k_GOKDM(ETu*5 zes+nu0|{AoyI%9HcYH5|G^g)Y$#F+!Bfa~=0Xk0?q(mR5F+NlFUIMle0IgdoRqQuJ3KfaFwZanYCIsVUaXGR z%iQrU9bL(|P%=72FUhbQKS3A$4SS^fJ}uX4MV}M#Iim(x8YVDC!33|5My)S$w#%Y* zGe}{oc>9ASyyM>_`HkznUYhbM->q%I@TQcJTy!@6yO>SMjN>2w3zBn%#D`D5m6!Cv zvb*W4Y2ocahvks5;%tcoC%%eM{9U{_@goSt1)%Asm#|3Ndl?hz@?cy{I^B(RAnL6P zI09FCavf!I|CRq>B`*ax@~JCi@!R8M*7o#UpR5FKoB>Vhx%^4_{Rl_DXzrKd?wEV0uGiPpxWf|lGJC)4oU+yl{KWVDM{U} zDvCEUx+`uuH+{=lC3xFI%#Z0>6FB8U%37Ew4CRN&#MfnfiIn)M#SjpJpORVRKRAyc zMp?edUW_t8pi~4o0*AzDo!Hn-gqF|_QHe~1T;6n_7m|7X4#K7qPNwetY_hoD)Z7L5 z%)ftlB2v9+nGd2>Q*atw}=O3GEhKe(Yp|Xik zsUXD1k6jUR{cmd&k{c?cI?)(ZIFqfweK2$M@8A_^zZ3!}Mse96DrH%^1(7(-`hY}F zt`nV)zz$z(WphJIxc}k?iVHFS7BVl~liz`1p}6AA80out!_@@;ryLCXo;9q!S$=Q_J_xG0_6 zDr0bM=502}N?eqwU}w?3k>iwFzOWBdtKX9O0E^zv$scgokAUr&yTcSEZ4o$3+$CwX z6`DyeWK0#mGxZXpT>rth3M`+^>}6_XKEywq^U=c7#d=7S{z;jcfB!3L5N7^wPIi$a zoqYP!+UlR~BwYG^Xf46Ql&<0T#`^7xc*QJx& zrL)^J@6n+2r{y+FI(hcVU(%YiF2>hpCjXJb#^;}WoUm<~uT=qTi*kt-Tk^?G zgGi6*fsASVa<^xp9#o;SI#fi&r48rQn7Zd1~ z?U_&A25NG)XZph((bsa8FvA84|Ho$YQjIM%>AY1o`>Q7|buTKX4>d=b(c-ZedoI2# zlcII0W1O7A&hCX%-`u%l@<9{!fP{VXy2;N@eOj_*`rgf$ zS=rJe?sJryc2iUOe(_G{ojanC?U`qvdx?$lcOFC1Goe*#3zA%|bnMWP+s;K1mO63t z=f%l}Iw$_i)LqiNiR2OfMG;+|JhF(kGM}{858h=bz~w1zeNxjcN+-*|B-eO~?>o~~ zEb&cA*^Zu2)*8AdvZ{M&5^(b+^-@i{&o9gTeL%YLq4fX^K7vLtoO)iq)*QE=IREI6 z=M^2Rdn~prS$kIEwG#u2tYd1uC8-!E3#muzejR&V>iNmnU|Tr(?bM?+&q4f(1*KT_ zPt@~7e3@T z;=w?DH^=895G~5+K@AWC&(~6tY8CYJH!ufu!&iBf9q7W;#1b+q3YmO)3E9_{l9ydZ zULd(s$=@;x$CEBOi&&b$3GVgU!$}{?T}-I}ei3ovj(FpmhoO8_cQRj z;u@NaB+UK195;E}x8%%ZQqMZQnGSQ`*F%D`Z_lJY{Y$D#eKaEo0L)U!r{s-YMDnM+ zoJhXFzeOZHkt{yuIO}l5?;$_-JEC75urZjgov8+$$nRw^H)4uA4T&rXDV9GsBDt>4$0u1_5^N5)H^|5wld z)_HpVi-ux<>p!SYJRY4$EVK@J@fHTWrqadd;W&13lND#c?IBk#d*k%^}A@y7WaCLeD+i;v3j zMs75$7;jv_M_|0Mgrnu-jc0#eF~&H-HYX*Jc;mPlVIEcmMGJnND)E15U(bzQ zhd0hSa&m6+M}DsJ()T&su$a1PA@7f!)Ynp8^<@#c=4!6Rhc}um7zAt-AtB|?qui_5 zDsP-`zR!|xj>>Jc^)8Taq<*6%m^Bc5cIsKAcTFpdVrY^`L6<>u3{td~&#)Whh$Iq8rq*H_M=!WDB8=32<9YPK26_u7rl?ImAk@SKx1fQQ56 z@_wRKL{!e?rIM>8@k0@Um6EF@^SeDZ*KJ=VEex}yRjLX=QLRi(EP!O;Z62-^ClAt8w%ebif9~<(YKNN!NTCAa)YF|E_rKxC=ldq+V#F0c3k&1P;>q9a zxE@s`ahWF``W;^o$He+_2jhj)w=`$k^D(m>V5- z`x5cQSj62E8H-U$Ea;fxV!<9~+wkt;k-fuS1*8uTM#Hgsw>;+bgol^K-NBJ?uZ@nm zebK>)yR1C6j0B;eyJaLEapMEwI92yYhliuX{n|#ieJr|XWZ!;wRj@jE`HF(7%$#v9Ziw{JiV=kQ-9gI-2);1g-iqPaUH%5Rm(&r9EhDOHrFMXNB1}-C`5pAzj zBE4}o(NXDu1&-FPaEL|XaUxz0AcN82h+96GsCRF^*~@b4t?p1FM%#u5_q*ZI(MWiV z_nrtK8SZtXaT5z5c18L|7^3j-{`i12A~G0@yj-XAE9{NLdd8xof+c6J)3l_pi3Z0E z2D#x~BMeV84weWeybLV!+o0*sT>C6N9vt)_{&M||4)39gURUd^0MeBL>hjpFx4ujx z3$Wv5(r%8%Vln{nv2c`%`rT!>E|WQAXJ9O1W@0QJ9uuT+!TtR9yzI0wcgd?o;Rf8Hk=}^(rq^);;ojcBKqTA?q~B0d@O`s$s|GF4 zCApadh7?FzvnWYe&p>#%KN8p%07>?S$9f~Z@@8_+9;dkmqmkjbtvz5dRU6SWOAI-d zpC&v|7#I3ititd1R!%`d&i=TpLVxr);P^ImKg3CC~St! zGfPZfj%Z(Ccw{&d7z)RG1`2Y_j0yCZvZBM#2Buq}XJlk|lzCzrcZNtWCseL~48-H39zii(={KIa9f?JiRn(qnd9%c3a|)R%7Ij1EQP(#>J;!hpOWC_jzN8Zz`n z;!${E1%sEiAWHINNdV9W^Sln4T&IbYe4}HLJwiuh8D}jMuG-`|T|^eCO)?L~rL2M} zR)E{H#gJq9X~L(KlusuMb7bk^w34#nl%##~Xiz|zMg`?*W5^Q^C@PyZ#2fP&!8bc4 z4ZFtH11SD#NIhHVw6q3n)6?3}<=*ToTyjV~>vBUoW?525JzJ=kwqP;IrY#K3rk%FD z&8k+N`AADWvpHHnxCr=Ta30 zFFy^%c1}mD$c_VBI%{R1A&m^GAgXOdrMR-!Cz zm_~Lb;q;)qQHqS^4-#Kl80?NjM)TOm92}-c*tt|l9Aiuqonq62z0?I=&840e?0opH zV&BTUi+%r>=f^zD?D=`iqfCJ1{bFP(&aFs}}&SDr8A zg?Vj$G%rljNchuvVe&1{@3Ub(trv~2bHR6|&Ch4sCt=GqOxo;fI<(nNqlW!3n@+;6 z&89oRm-!pgu-i4A7nbzWxn79lyjQ}0XyD?7e%4DTfU$pHmoNb1ear99y>viR;5VP= zj~ez&wtW(I!Q*B;1n!bf{w^U5O-Co#_c~983ct9cTg%Sp$dimscnU{_xOH%3gS`+qri5Iv^SZ6MsoRW7$ zL_cK0UgA~LN!Z(LI+u4zC(pYH`(YmZBvgr=+F6jjRC5*@IdFdqV&$44wr0IkfT&iI&Wy_PWx@B;$owVNM@SIa06akPetIu}9Q&683H{T^<7d9|;2iC7t*86)zn*rMz=^{#nERm~Eeg zeK(uVz(mIBS9xJljfBnpp2Y)s=aIg>IxkGpNm!K^CWCGNLJ|hzd*AYVy_b%{rF~Mz zu!J$;BwoJdxx=Pg&%30Py8nW(>Erf3ue`i^?~|};^*-vQvt>znKg$b~en{9K^TOm? z+Op{TIT(0wA$Z1LPk$5@2LjgcP`9WNoKbyudSau_D6-^4#M#)@)m~K-tajH_SG#RU zhsK7{oPl4-KAEa!!fUAaCnR8brFbuEcGKN8^K$bu&w8 zs4_7mVe7IR`RCx;i;?z?#e3M~MB&peb_ZaX)?O^4lKQGDLi(cpK`V?6j*RtJsloz| zc8??v^3TPtY$w)UtbAkDzJM09uA#~_reW7e?|x}o&8+PqxTIlpohNy1*tKpfJnX{F z=QJn{RlC-?dsX^7IyTZH>!&z0m(v^=vx5LViR1WJ2nH?CE2oQDz(#}jcJC=74 zMkW%J@x8>^mFSZPDMoiJdQ-$*=T^vXcf4|Col_oOftb}T-{qF?bjvr^mv62w?{qh8 z?s8UwOL4I7wMjSl%wvVE7?rb(9dZB zcur?HzQV1!+`TF>>{45`TeGshx|;vB{!Jpz*lguBPH5k#h}@mwkw8zlXCUG<%fA6> z)Y!EA(TL#WGX-q7Y@hml|>hGU7* zQ7}Eyi)IeZWiRnP5xUx|a_w!yk$osSC0g?8pbI>~kNC)FU=SJ0Aj(1!yp09jc7td# zHg4G6mFTB1DSW9DXQw3yrBmGdh)okB7;Hw$6agO<>Nb~%><3&neG2zN$-|6HeF@Z6 zUKNEo(S^E^;gLi?g^fibRu`#yPQ@QBzS-yvME960M!QrlI@geM38J;Z1d>Q67VY0A z|8#A0F7;~c9*vJV0F7?Pob~0g^-gDER}2D^kS^7`v8r z5pY&&>~&hvb1?$oU1VPbnuJm|TS|~b4l{T#GF&0ht#li*_`kZY+F?If9t)^aDR`;* zhz$4U2Row3L<$}!;rigE>xtHMHVta8VGYiu%8NN|)wR{mmaT!#ZOt14U=A2C(%(NA zaiFm48p4*G>MWm~o;nRxVW=gkos~g|KNDFeF;jVmTYeq0*%{g&h>nUtNyK~dB`}xY zfst5T5zUh8y?gft!@axq@7fYWBlHvpe2e~G&iYH=@ z?tq8F!-??V8QPhbswzvI1|ox_vPJES?sGu-T?}48_Wy(7{SGrOE+LN6-fZ(l;m!x- zSUMDl4)={XN~85PkQk#8k|Y;qzO^b%O(z0o6{0GwGY@YRqnNam6LcE10nqV=_}IFJ zc<(ya7vQ}Mc*_S5U-DK(JgKU@^hnfY0UrvFc0-zbRf-LCuhwYy~yI1pf`yoTq0i;9zP*+0s#c8lnkZ&`}6`+mM>uI{*Z(ykS( zg;^A|C=z4c>=FHbePL6N zn7f>IEM<=(-9j??Y==*-#Z-SLLC3tN~_H`eXEI zSjGfhjD1yRr8$(9FmE z;SrQ3hEuY%&CChIW)qahdS|J;(!}A!&@LEYvw0$&&`G!gSdPLlbS~Lc<)l-&6u;|v zuGkwLMs^=$0?FoTZ67*y;VmmFZyt+ao;JL+`qnE**RV7YsHzGC#P)teTWf7ySoZY? zI3A<>(WR$Us^P34ns9cabLO-ZIak=U#mEUr`|!gLlYHq*=eD_f!!cnO;k#HXBzFm! zG`FO6=FDrkrT_EuD1g86U!3dv&L4|)=PG+#!&U@j8zZn`PZ4K7Y2aj84yUXQX4Z=w zSh2^g3D&HHBd@8cs;;Z5UhUS@)Ynwkuel7Pyj{`o@a{;I{pG$qMI{bsuLgwP zR@D%ggfQ?ZT!qVW1^d+uQZiWR2tF_X)+7EiHVL7qSaw`|fG` zEwi`A%3;=Uv**@IWAXjcQrN`YgzN*^1uNk9Y-E<*pH`eo6(lp9k$t)orsNxCGbs22@>syhu0aL(YJ%o6)iChWg%A?&E~{E5OX;#;a9KfT+2J$*n^3P-iEBd0|_&gfw0E z)uB*(cjKnE?V;IXJ2y6V(C%zhYh!0ucL()!kUdvN>(-9uQ1_;-jV(@9dq>;$tvhxG zG|VwEG@!L@N4As=9gWSQ)@_@*>CEP~EsfIPY-HQ!#totFrcGO$ug+amv-oCY?D_hEzt=&-gTnpQ~Hg<$)o(HFnxg?`qo| z>h5gZ($=-JyLn@%`RZJB*VYXiHsxyV>e$wqtM0l@ZB34r+1%aU+!4xq?=<@z8Q_?C zMO0$GET+ex6=w1{*$~}^M0%a_%YrNWoY4qOJ~km)?bhRt3EmpvHWEo%(XyI5y-V+4ypMoQ^K z@HXOx_lEZ`Eh*UsAv0!3_3ou5Eo^fK2S@hSyHyUz@DxA!&AGlM|9-CTUtd7C!t)FJ`z*h|0BP8D>0lIpZaG~dyLkU zn1*aC(#y;9}*(qo&Jm1nvZU}o|x9$Atk z`6bNo^}+_3Zz~_+>)|HDQ!BfCd6*F8U$e$ILCe9eeuW(DjQoa+g>^Mt>?)XGx8}0? zm89JtG_kxU{mm z(zz62@F2vYTaL&`Fc=g%)$Rmc0F1oZRIEBIULTvAs4=gTT8 zFI~PO5UheRU$uJ8WtZ31)nCDdl~=BBY-(-^wQkthcGcCJHgDP5eoaSb*S77~?$~+V z_0A1Ww-esg1MK?;qBrgy92y=Oee)Q!XV2b!`){K1+q@;C+kl~4l7A)nSCW4v`B##ECHc{b%3t|P@~>>pf~S0C zYxe!+UdmTd|0?pYqW)FXzl!=-z4H7oSN^{)wOmh#K0UrE;glr-g+ zQ~%}Ee>wGEPX8|l{^-2QYk_|)@UI2_wZOj?_}2peTHs#`{A(G%THsep{#x?alE0Sx zwd6-#S6)Z{I`Y?%zmEKM6ZxCS-$ec<@;8yc ziTq9EZz6va`J2e!ME+*-H3@;$=^)= z7V@`{zlHoQL*x&UKScfz`9tIn zkv~NK5cxyo50O7a{t)>?V)0ah#cw->7m{g<*^b6Hg9mGAMPoS5faviz&_n>btX7U5{s=sN@k>a zg*tJ^J4T3*re|bqEHN5aMZC&+k;{$6tQOfGm0h7?IuQYpL3lNJ<*>1A^xE|lqcWZ% zqQRH}VbHD!%v|d08osc4B*=AWtPLpROIWtmi4FPP`M zfM+|;Yj~FORPa>s+_+0vUO63Lq|%ZenQh!M!ob7X5-~b%IW04Q7Km2Ei-{OW`Y9Z! zD(Ri_eNLM_NU14YO|7OMMi(VDjEbGCd$C4EdNIbqfF_2C2vC%hlKH@}qPAC(t6AHn zRh1`D#`n-En9!{@{Om9q0tsjWGnK}{A*m%0)YD=c2SVJZnaBV$nxnLGA~WndjZ zoxTldMx<=)9eVdO1)@FfXwO(o%^l>_x=I|)i?Mpp-GXARj9rAjs5G(>l?nwBiczW*}M~t6Ty4c>2Z|rVDQGNJND!gB(RvDGIaQ9Kn_ouYxXn#h3&DL_M_m zQ|k;m8!@PG+O6;`iO!mEc zCRe*B&14Aj0<7XShTtriwG{lnOZ^&*6d#S&1z{S%kxI}fh`OWNlK2kK zgsme1eKj~*7}g<&>mp?B=eXCi6?1HHo+qWMDkoipzd_XEH}(Vwx;%H1>s7>5d1 z2kiIs*teZ-G6^+{q4zV21^B3x#KKQZsm@Rd)@A@*6*I1tmAbq3yN$g~*wA1;6N{^< z&9DkGBXKqADMyu!wGLjJO(zk?nsbE+J_&cT78lH#b&?qK9?qDR&6@d|45@L}Cv3wQGV{ zqSchaUsGKZ#CD`c+-10JqSum>qo7U~7NzF6b{pQ8S_C6bSkiN4XiUOY$Xc;$zoVzQZpGvxMcNcXfI6xGO!dNEw)7%f&fh~ zOaTV(f!s(fL0Rm{gxXG5d}c>{zmVHOs#5dgY&=^cU6?`G))MNLHphGEo=V@jZn zmYG#dsF+((-dkyxXK4`@pM;skvA5FL7wQ-=iFy+~6k6U36~kOZ$bjo53}W+x)vnR| zIAWDK3+fs3Eir?fEw)jOyO5u6L^px)Qq$I!ox))J2mi)!QL-n}ZFz@ok9A;SP}aec zd=eCns^bwvBPGJ-X{1|@ycO6d+4Vq^m=!3}ZP&qWp;6ro3j#TRz zedb!8(P5EJzia}bFmB;?Rf?PsfObbq51G7vW9l%qfkCfD%sJc44w`|=KIztsU+n?AlFITQ%gouen z4kX~(P;W3uC=I=)j~`q)i9lzt{w&47;cRsao5i5_{a!T z6#H1ohILacG6>^YffpC%?mG2YLANE3RD=Zr1lh7xs$|ADk+sL1-AY%z^r-I0DEzTI z5|{>YawN1$s-=8)Xum5SkG#&w%2(oC8#db+xB#IarU1)T!Qk|S^BTOe5(o%!hw4-V zMRC7`dPn?sh&jT5F0{c{RwQgY6pYplDPL(pvQl7zAw;L~JOuW2Z$i-;>VP5jfC|hE z(-(A_^^~#~@yel{t&RQ&r09>uB6-t7g`TSQk9ZVGtYEWXXesO6F7ZAUX2F*j%RK6; zZQN2hjc_z92Qs*_Inlj>EnbEq%d}3%!}gIuPD-%rFvvqjub(-lBQ}tT%Sqr|A{oX! zW~UeTJ=0@1ME6L!iBVT$3+ixMBm>>1Igou*T;$^O>aY|7} zt~KX^E9h>%ihAT2|cF^`` z2T)G=1lAcW?v9S^3apE800B}yBb+U^yWA9@G6b!8xo)^^y?L(LguNFRIC2hU`tFk; zb4X=+1h^jHzw67pZZNw50?HGpm7y83>9f{1ic*HtN2ebPvk#09U?U94v;--OXo~KU zeTHbk7jjTQ4lV(bV9+g*a|7M>Uu3gSUzTMvX&29TwNjCws3YGjKvFFvhhyA6J=-PcWH31x9bnhS1|2Lw zngsIN1<^BkKy*eF>%zYMLLMYtA^ONJvD#@fn{KlwkbNsh0z^1r+gz`x7IZ?G`;YaQ zX6oL=izq18lX}_A7rUm8EQ*T!CTI60bB=nfIhpCU*(7&zbVqo6-2d!?7#K2XvDfUK zSl5iXpNNobOqLdgoGvR&3xq^DObPWINHX38#g;Qsu$BuAW=UckEKOxyLe3M*!k`2} zDG>BHBEt>swTnG)$zvB-(0ca=oenWYlyYs;Bs3>p2|1TqQq%zBDccN=f>mV6OTg9F zp2S$CGwPDWizysKyO4QkV>bi&HD=*2LP5Zp-xv=$t=(kM-IP03hJ-+OL)nv6ISJYz z-q%1h{7Z{0g$Gf4vG;ETV~mUJ9ba*bTQ4uv!Zxp z;|JlDH=E5!w~uhHQ5ZvS6~URGVOczps4#bWw$bi$jJ!)0F^b!bmnQL+2{Wytu!xCO zUpY!{6ud@?Y%4w;OlMh?04nQ)r9yV}z2^79A&u+>DVDX zD~9(vtt7`FfY`$7&czC2tmGpo#uH3``5#^*Pq;LO2#rwWLAsp9VuNM}IBg$cRT^?8 zSXKZP)QSvH13HXgC$I_9r=9j1CgtvlhFRTXH^2!o$27WwZL%P#S$RAri})Oit;`cR zHX@20TbxkQgs}9M?JU?xz0%x;{j#EWkA@hac>^t0Mbb>KH+Goj@+J5`Muh(%tGsL?1)lkG0r zu2D;MEOZr?VP#PEs`o*GuAR$SCQ`}UScK)$qx)fKn+%AD4R)o>ZDwWFU;`y%?GYY@ zaIW~EL+@ni8w&61R^lv7wG4-xLpGWw+mJ$VF!*2y1?!-wSkN0puddlfAirj#4ly{H zzh-ykPzzpxP0-#jr?{jtX5Q|c-oqny2_Q!=*;ggs&w!35hu#>7BE zms_J3MTpfIj~IRIE>2Y%4*axDnJx_LlY)_9%g-!@3xdpSjfZ5jM9D(oSeFttE;gR5 zyt+vceK@US-u7}nc?4n7bSRmoMTSK@o40Ia#~#dMNq{S}B}y6tgPExf6!NC|nW>s` zZXTm5g1B6Oa3O4m?9egyJrorZVcaq(os={EGF|fO^j0tnz-){Xdzk{>dLq0^(4l{Y zdmKCxzy zDR6Fr7?!C3(V-uOGx0yL4xWB)T876QH$wUf6ie*XvU6ot6c!v}Z42bKSYF5`vz3@- z7iQLM1RpZ6jJEA%PgV(#H6&oU^B6RtF`GNxwzkeSW(L^RTuzqDR?BW6^B8$M4|Jsv z%$BHGutQWi5@iKvoOM!}T$X6Wf+fzV**10$iS(^ol6Z2q#PBP~U=o#Z%1HdN(&N0Y z+8u8J%A>8q-N^v+A&eD)j0}QNoLP2>NKm>mV34=EwH(;S*S?DV;~CS zYq_d|K`m?mkjf!};U5fKu@zvc$W8@~65dI7*=n@&Cvfz+fz{zU{m9zryrFfQ^HsZ| zXoc%D7A1KbHYAUBdodj)&A=F}GNtEZk_l;nqUJQfChV0}D@t*dK#6?DOnuGn1n@yT zIO-Txt9MU@;6R1A*Vq+~_9lXC$SOIcgHV(_G57j_=T`a#d6)e90_E=wqhlSu!F3yV zAs`3KN~pj)YGahWd39(NCe+kH;%p(jGpZ=daVL#Vl7s0ZJ)GMZ?5n~wM+6LRdl<1a z^Pvmn)~1o+{uM^LvKCY+akiTqH z6QY`*3F9`raIp6H6yHTE|p-Ka=uVj zg|>Csj|>T#yCS9vQCZIoi=GdGrFnY8xY%28Ifoj>h*g)_%-N>Mo;~D@nlimh0Zcbm zAXph50UJsvE$0qNB?^699w63@O|lrVux`s*pm=sZvf5%M*$l{?7OYI9Ov%w|HVQ&O z?HD)b!Nn#j6arMp^&Ugv*lyR`;mJ)iu}a}5J&4Ml63#4-=@RZKJ69b!lqILcevWM1*ND*^I( z0qW)1ahS8wzWupC_a*Yhcf&ACu#(h=ae+T#CfP=B*$mkN6cbfDRoL$vvmu8 zm{N_soVRM44W1dm>FKA-P5-O&*nP%ns>$_5IQBf8V%nnuhF^~Ko>S5;s;)qz+yPMU z9sI3Q*Ieprab@swNA|_&hrt+Q!6e@@_thS?!V9i+&|-6P5ChCUyd|J{V18o&j5rEw zVFXhZ{BT-ORkzFDFt#lFI=oExO>B!)$?OTRIdiB-6NQI!a<3vjUZu8Wo@QDU%ZafV zC=$Tc!@jsiUN3Jp#SM~2^?^b{v_HA_$Hsavnl9*)q^i{Z;sVQYuua{a;5RX>pDe?p zCIgr+>XBGCH<=8P&K9DUc+6@2Hm08nI1GoPAd?C2O&F&VSlDYiYn&$ULJ#u8OzAcZ zfu8npS{hlVj0D5h(ru7K$|?xYed}Ia;47&a6PXoiG%j2XJ+z4a1HT)FFJi^9jzwa5)H<&q6>a6^rqOl*3dESi z(mvUy4s(_Tf1LOlaRJ2dtWIC!%7utyB;9Z9(a^K5Vg6(Gy{q;d64fLb zj%-+h11dOSY1HE&WT`|0tkYb8V=C4?x|y`hSx1gS!GMN)AsxdJXDAwz6Ci^ueTA|KNWpPHMy@i#OCrX@NG+YfX>kfz`2Tm|nskX0TbY)!YdgrNh8H2c) zb;ND~?bc)IbW|8+M+_exg)GVzty{|{&+Z7`!X!!#^#hA;F@*NsZ{+4G@7>lSHm|bP z>}I#n8G zoL#FGigH*(247EeAX<`NYXvXCT7Yhv_06)gd)aLZ=c~1~;vQC#?q%zN?oC(=4VR5E zm~%#R_6{*0m(0e}-ZEcw0je_yZfC6%p`NO0R0C$&h9fh9dg7R;tFdY8)+`Iod=*Pm zuUu_Nj;f;0RS&*0>#}a4+-ALvhE_;wA=}oBO~I`tWLK2Dq6$|MwMEGjM$VE@X1d5S zr9xT#GAp^t?-n)rhjk%vzF#HNVF&l4nRUTsn)#M{z@44z~ZDBSY9n&i1AoE zIEZic(U`kYOh;^!Wd&E_u>~U{wMrF3F=hNzc&TZ*=6O(0ovM@=10pBZ+cV&Fw&2`a z_y!~jqHgo>-4o-l$cE$=uRIDZhrL9YD)d`QU=Up?68;RnO0J9Mv@5(!P6C4(JSSCD z*4Jf2gMV(wuQ9GPy;9q%yqdhR(vEi8>S(Z5q#AVF35x^~?AkPsq_J04(igePNsGu1 z(Ke=@kqIo#Bh5@YB|w`wyT2pQstb3$yJaM64V&vx&J0wV!G(Za!s(5B7HB~cf)@}6 zIaMbHW5!s*5aw4@)Y6=)@K0_;qnj1_cp{{1TXS^ALo8W)1^fI8+psx>VUUQSZXc^3}vw=6Z2?wWnv=VR4B@pk#-Un<99-7(HTgu) z=yU^{>>Zol$YldqmS!O%V#lR-b9(u_@yOz=hh7Cl>g6&CQLq^dVbVd!mO1U--K8>U z&I;E-$&Sn#z}rE}9qbTvhctPTK%)ShaepsM6vwRKdkqAgY=y0G?Mt1k;|52*0Z48> zPFu7KHUMyAmN|p*G3S$AF|rVQcN-vVSiej!V<_p(=$72=rBpCW=nQDj4mitau64W@ zPFi#t0d8)-s4!ZVlhZPpIv>j~?G5rk@v;50ciM`3@|fIR4V3Mqt%lhgl;w?HSrpIC zVvk@4U9SW|<-EMYNoEN?uOGdfsW33e~<=7DJ z{uaA0u^7f^Dqj~RV3HwWwpmLIq1gDc$AavnBsfpTf+P1^39e2 zHcocXw!M_R3*ppWU4FFj`2NUwbCaE#heTGV0lehwp3qfoFZ>GA07=})?)~ETKRUL* z8yN(r2AwO!oKt~d?q>;FPZH9s8Faxoki#{lRf z?4rLv<}ec6#TOs(91W{5(b&N`V2@eUt@V+y>}l-1(Ref{jFqfv`IEN`T%FwoHmTUv z%4!g!sL`WmQ^X*uj!k-O0E-KeC6_*zlh8TJgDM9u@C#9sAuIjro1R3T$r<{kS$ zteCT&6S0g4Q*t44f+9Z!Dg#Ynn=L0~S+y`2?Nyl(W2&4RrDv&m|4q?R4Gkxxyg~u{BGq)rf0!XSZn@?UP&tg8QCKnW?42E zhMdVyVNRzexH4F4-5O=jW6tbWA$`c}vTz{`1|zF31~8Ts7#aD0zUy_msCEch{+(Qq zT^&u4`^aG%navm=^o8+!WD&r~7z^=sX6-j22n(tY29@}-|a1=%>oXd4!QQA22s zb4*RF+IE&ZXVy>=p=3*_@RHy(#mffHQt&h{5;P(b9&*Jt1ltI;*UoF|$gt9ye3+=` zDl-@J5}L(u`jphnExAb`)?;~Ih_+&=A_E}P6!%uvV-C6YYn}ONfKKGrC?LWjiRB9767I4EEA3VgCRBaB zSYE3TzYI)_*i&#(vx~IF?zoV@M3iHi76F-)b6dhkiFkp~Q**gxt6J}v_8489eV3#99{tX;jK*pRP0cjYZGj=m z88-PUiU0q<9My<)vb^2#*JT} zyuAc%St{PUJia*Z-dr5*=mq7%6mgvd)`B?AH75t!kQ=G%rm!xd9@m?#c_weqf_Sk) zl)L}H7djch>Vef8NdHsAFsa11oc`8Um?yK>|L@Up6esh`H@aEeov z{5hEd`BcjzE{u?1dEU33L^$Axe5Br)w)LsE8|*y0<*rb@To~ptq5+T>!5Nx^Y*w82 zOxu8I4)IhF&<$ce1EpXLz`kHzC_*LsmK8AMHJ)P`<^X@a^TB0)pE{~OGS3%yjo&Bt zhn9YLp6{K6%U!@-pDeTwGFyXgV6BX+(P`+;q}wwy5-577B?a8xKo}z*$~5+C_P;^LS#m0`|_r*>5tmq0{(hyg3T_n;Gg|q2}F#$SrEpE;aA@ z6Z&V;i?*HlE5~6(UO5vEdCDG@?Mq#GVKTq-zg3x*Bktl5z;RkWWya@c{8oOzyuYv0 z@0&+i-CvmJ`ylUfXYEtGf84$Y{&Ak~e%|HI){lNWX*8UCu+Ey8dXAoj&(E64`EZ;;dWkEu_w|~saz$bLXL|; zJlRo&`O%FHi#vQA%zDnvqKbBjxAZvZxDePbmmCZG` z2Z`wztBi;sF@m=`Ln}fNH&{+NzP5}+MZIDXvdvs;X3Di!ZF)?!EU;uL<9S2y$};DT ze0p+(@Nf?|(aNGvqlJIQ!a$U?u+%IRNTQ9+lnoIN?80=7^i_;uI)g{{fVn3O07P%3`X=>iuzSC*iyp{V(np#4exDUi>YVX+E-rBaM#k{pQb~SG#edo5O z&gPCbe7tVi+SS&&(`nzjX_K=ZH9B6^0-Uew>Y&_?klq`jmwmKtA)CH!-PT3D*KX~& zy0g8JW8d4_TNyrC5EX8-lIe&(?0ZA1S$P*^$@|W2n-_G~)cP?7=WQCR*5SQMuX6{kYQA z`gH)wWw#XDKip$DN4cKmN+&+deIJo(C+BwG_}f>dawQh}+!1bDLNnIlP@Emn|_G-H@)sxmqyn;u4 z!Wys$8VTJ;JJf@(;%vHW+5L{qXf*f6-{AMXi6_bPS)QNpocl)Bvp4+D^WO;r7nrZ* z*~+t<=T4rF@%#&q`b6{=0nbsQho%r)jkmWVGr?tB4C8LFcwNIK%P+mH{EdP7E0(VJ z(t2g(segoKi!Ahdnbw1HKuFBK%v`>KIJIY$imW~BYI}7`O?A~uu1?`n@0$8mH8bs5 zrQG+tTmDX6dFk>iZ+>I2?3Rkk>z!-)cjyfV)8JO7XHuROmay*%FcT*Bn}{VOQvKGL13j=!Z3-ZMSjL&VAR zI?A}5XA4gc&mNw;c`)Zpi0yzVe#Fou?D0LKgX>QWA~QoIq=Hw(o1S+=CcfxnutO9o zV60oA7F@-OTE+8pEix6^cU!9V24N3H=fcwFk*7EG%n~T)KeMDrq;_HzA|e6t@)C33 zAU5rIcvNOk3KRchN^)+#6)6oy?%2As3C#1~Cd&r|uP`2ksM290FGZyfO};^w=Ukn7 zMHx(3XWI_oGKfW)q{6sFKxQ~q0h+Z6i}X64r4()f!&n5xWG5|)kC5AJPfV%05P7Ro zwhz-&QM~6emRW>|h$@5~<-nCn=r~!Mli6ic7;`NI7e*Z9R$N)Zr9h_vtdUh#T-oq) z2^^WTYL!aoP>={LSj_;%Ktz^#WRQtn0Xw!a*vYIk3inrB?FxE&H~|B=1yiqLb!huC`{r$gdtQ53gcR0S7-2fQps+A$gwMV!juRt34VX=R`> z(I4Qb1s0sLiGVeWNl9RhuH&{uOQ-DVK8fkx*40|;jjMW_?&HePINeq26D$X1LCn@Z za|&d;VnxA1CjpdGapkBv$R~DLd47v3k6z2RvA#hEe`uov4oA{~$td(c?x=Xy*@qK<*be6_&U{~aQSK?@ zeYVF-^ZUH?lI|tGZ{qjmo^xJ7nwKj>;$KNQ%k%1z{^dVE;yeF&k?(igNBZWqLBhT{ zZ@%yCCG&kx+UHGY&-d-)c?Zu&c#iNq$@3-RKg072(hu`{7ta-h|D}JvFL3^R-|EuY zpYsWq=Q+~-Bk5*)#tD~akmtokvp@e#xI7=^`Oe}qKfgO?zHiRL`M!UePak~qeVZ5L zo(l-OnaBJ6KfJ&5togob`t@s`uao}&Veh@;qDZ=T@kRv(lwiOF>L_49Nd`m|VI(U_ z1|%pVVTePJAVI}|Ifqp-V-^EO6a`T+F9wW=0mB+_4Hz)4;XbFj2hiR9zVGMW`}^y6 zM<1%Ix~jUm;;B=o&uNVKnz+u^Q4t*h9s-S8s)#xR&Or1(K#n+ED;1F%&kW0T~h{Ip~_(Aa%*Yxpf z?RCBIoO;*dde_QzzedEPdJ?WBdI7uzJ^_~=YKgwXZ5IK40H6+N11*6oSF}WWaFOh9 zKP#A=9snb9134Sc7A5))%ZgutfB$_E?tWtKhabba5il}05@zN`ajM)mg#PtImm^+e z{U7_V69F3B=O4sN#JDwBfLVl^{Y{W)5k`zb;A;>u7064I9?R~C#tRXNs!~9#60Z*sWmb{gXh&nX3GQUB^K@H$sQ{d z$&c|;sT`f((Uu$w4m5+1i~wGwt`2Y@$w#M?Ouj_mCV*l$vkT(=639>C1meq*UlE_u{0hpO!YFP1dmm6X^-z2p4%hH(ZWnFqpM4jcm7$h1U77(;vD{ti3>+~JP_=v`;PT?3>cu0HOy#Pw5Lf5kPy z71)jZ>qvCrRE>QkSKG0P>JbQg(CCmRuItOZaeBtxtc|WXnPb8eMCB_oO$>$PGcR0N zOaC%ugG~8(Z4i{w;R6F+4WU52CDl=sJUK@k1)P~B)35;lD>fuvo>ZFwBSiRk(6@pD zD2Q$BJcJB|4p@7KB{7ET1c9)`_QNZM2QdvTq*3glm|_9GdFld%I^l!SuZ9g$5uLPC5vAB;T><IbX=xFIT{Gr$0M711D|k*A7i6fk0_if9+$zmjtbFt=y1nt*q3b zg>pwuPgzOaOj(U&|%kJ46dMClv0 zP&TLZX3dl}D1DQb%EwvyQFK5f@&vTG7NR7snQ8}ICje#`?8i85Rm|+7QGgi!9JmyJ zB47*uecZq5Vh0Z;tyV$e+p^40MElJzUJz zqDg=R{)f0v<-swBs15v!g!WH|zaRWpg!YeuzZ?8};Zk{L0xs~sMS5yaA3%rG7Bx`f z+dl>VKDht8(Ec*`4dLGgm+EUO-~j)hNKfq#4wtAM{40d^9}mAZ{I`VmkA>eD{=;yo zKg|W);Qxa3)c(|Gn&bUX2<@K)KiWa2<<-sejE5Jh4zn!-xU60xYVEK10L{y7ux^d#{Y5TPwhVn5F`FN zxEwGMu!a8t?o<2w0j=R*D71eX{Fd-v7TP}&{;u%vflKW*18|1_4boHl|J(RKC$xVU z;us))E?kN~1+a(z8PZdJBLF@4mkaGb4*mh~R|xGdhrb8>hu}5=<^Znne@1$0&wm^L zr-b$oL7YyAzX@&wU@|ZW{>Mm9?GXU9g@1|A{u%IF!GB$7|7iG);LnFk^*IX|4F7wi zr}qE1@qa;R|8T_VjQBg@QhiSY9N~Y7^wj<%f%fpP7TP}({(>HJ+SB^wj==Ks)$X3hh50erxz|3+*2ZzcKuU za5aFrfE)aOAw9MKzm5MhLi>jzjy~dVflKkT06X}fB0aVLa6lLSWkUOpg}*=iKumeJaNPTA}?FB6&B@N^O0QyuT9f%j^Pw`hfucHs26?p!bImF+kw7s@4ZS= z?`?*=2Pg*40e68v0lG);v(!vAwMVe#tHVRpmbW<>t2)0XI-$>|&}SQ#gstg0 z=x*%L{A)F5re4h&mMw37Y->zd#^;c4FV4wkd5lnMQ6X0e4Yk(#@?JwU_pCUs|48j9 z*GH03*AquatiSxI;Q*&=jfQ-is&OSIUwzY;t@(ZA*?R}wI9GVv_H)sWKjb%iri{4f za7p9F9e?Y~+jp2%bhhFuhfW+?ezs+B+0p!({T=mB?i;pz$>B>{n~oH$DQM7DG($OP zZ$*>S2G1JrnLaMww5e;P-}ZLF$E}US4=j+}8KW}#wo;M!O16>q_3D{Z_l)k4e?Vo^ zqoZqkT`Q6_h(LP-d44xt+O>B6lz3IFt&~rEt7{WR2mWbq-JPL40ir{H_c>I z-MNsrFPEsu$8J*6JzgW4?0Zt{{ppI`GS6oRoBdf(JbT=XLtpQ;yBp$Sd`suuxT|wy zuGjwZ3*PH?acI6(GFP_f3r#t6d8}wDwW( zMa|EZBeTy{bnBE|wtN59@-wZh_xVrK*l*H*#F2wL<%f@nvkG1w*mrbAlZOWyuDG%% zxu4VZKX;{GS*_FgcB8D8caoYl4*g?F|FGW%M#pMw4T#QYd`a`s>K|&0yX0}|d)BCq zw_mLF`pO2;^vJhL?Z20(L+^Pxs@iblM&{zn>rR&3wDfv=&*M!*;pGV5qRn?z@@~+4? zUE`*!uKKPIgBx0m%4j4xQ9bIO&%KDP)$`)a(~F}V=j;nEZJQNdlyfEC(BfgF*OJsG z=NmdTE|njA6?QSqu^m)_dR1Rbq_RIIq%9M zjpFN%4_4n9*YV!%#@DV~oi^yAHJ0JS+Aa!?qs?)*NPXa_U z5~8(!{N7(Bd_-fVra#um=11j)e7gE0CfMPUyk*)$^_*8%G|IiR8o8J3YuGQibHtX9 zEk~8PIYqhLPK_HlIQnwloq!t^;f?RvzV3gsuQabH_tcug$_bbDIz9W5Z>IP5$dOqk zhkrL)yidA$!+ry0i?YLuRmv}P^R4tg8d0Hdk`cbIU~urs2D*`fzjco{>Ra4+|GIfi zPUzlK4wzfr01F|sLsxCe)-Yl2ix#l;@eWc#_|@JU?4+ z>69#G|7_jKt#i4Rx4#(gUQue18yJ}SL{BdNanD9_ZH;EYh4ltgmi(c!c8=I_@0Q@y z+~Um-s@^;;dsk(URe3_T_tdRzd4Yk?*E-sFJs%Sv^(|pcUW|Fa>Hs5g4>i@sv6gzx z-dQ-_+p8LQdbD@KOEXza&Bu2}g$GK^*QYGho7p=@b-`anYg-+jJ4G|SGS|?udhdWA z>F<(?ovWh9>z^!tz93ZW{ut!Nr&v4>+F?KDN8r6&K&jq-IJ$BOTK*{ zx3KKGbx!H|FBY@13RM@bNb@e*(@(Z#>yYfM{_45eoz8v9SDR6qr|l6~9i%C*alBwt z5j#h-B-yT6z`F+el0T0p$d6Byq~3HYw^*j~#CYDRd~VZ}DY`{%XGum6FARvxu1dA5 zsE`M=_b}E8%Cu;*%2>C{T|I7KGcNm()I2L^K}g>0%hLQsEl<_l^{uHs`P-I~>g!7@ zK0GT@&D%Ox?_f-&`6{Doqp2^`V}9S^oNzT>H}I2*k>i607M0;Ss;4G|dRKXOlD%_# z{BCc9jU~Cd5eui7b|H)kZSCF(mQ%Lx zHqh(wMn|Z>MwHOA8U(@igT*xd`$m^2#a)}y z(7)KR!JVyYs?SSGRrZdX+h}S_59NZP%{AxuzpQm*>N1T7)jmzaKDSkqF1{&JH(sM| z?KGls!iLUzPUjxAYoEHlL$`LL+V5y=s=G4yW!sW_+grcSk7{%FZJ%a8vOhN8+<8ya zg|123EdmDU=$n0Skuk5JrQ4&7R`(sBGJx&DVfHMSb?%HF2&lxYLKtd0$k zc{Z^2Ycro9$CjxpFWKiBZPd3Bd_ z!;L$;x`pVE?UK`})AA=`op%NuyY5dj>QH&OyW^;@-A1bq>{_EY+W5qneLYs3eQ&aJ zeP7dKb5|sMeCjtk&%b@r@?Lim^$ZuMcJ~-MCh<+HWQUd4Q_}9t%=9=gWI{`k#`umQ zm&R>Oo|wM4{h+kpa~frQ`~CFT-6loy>Gqkim0v95pDp+jC!dxdGyFwrbOSH*$Uc_u zqC^vRh1lrChK6tN9z68;vr*T|H_QGw5*Bv2VW;r9QTHRnrRC18*6FyocaRQAPgywl zYiOlMshXbqqJsgho9<@2Wv@8txa+lw(+783hvNp5?d^MBkR*OM4zxY)blL#J&MfVk*8r?HN(%jd z)mq|5uZFEz|01|%)XPT?O{=cXc=>FW#rEe%MnwJjx}f>DGgmHuT_a!iJy*r&M-T0` zUvx8W{x#_2n$IbDBR)AlDf-s<b29@6*D%_cGB)#14}4&1E1HfgW%^+p>* z%6eVQxg4GFD8*tR}%ewc5`Ujvq$SU>sd@g-GFk8R!M zR=W1oe6-ZLvu~Ow8Pt7Io376muNt^{ z>2~k1WpDrNwB*#p`@elUQ?&Nd&dfDSn_I40m;Pn7L41C8bLG_KgA2`9j=%hFg;}4O zb5(i>o;d6F$3e3vyEK}auYY>RjIb41M>YK>KiS=W;^kX+CV8J< zJSBAV(5Y6fTTRzUygn_b>|yS*!{V(M8-;KC9Jg`%xU}baLz;El)oe%nPQ%kXceI}L zW{c_bUYp1Gq->Pf9NcuW+ozm&c2?`QeH*u7^|IpiWl1OVpSDriU%bWkz|0Gi4>q}d zVQ>FETKht@T=w|LX77&dR9+b5taDi9gS5bW)xtyjXH^zu-Pb#EYh=LDm%X!#Y5dC~ ziV9|*RonJzSAH|!Wg+u>zOL+hCn(17kY)Mm>aP1w&GHb954(RPUTL~gdBM>egYVvq ze%mYc-u+?Pp?+(9+jxF4+f>zJt@fAEpLPs7du;5zom%qUkT7BA5}npf zjsH5h(Pm9q>*-ypF0~yrKWY6A@#)>?oH9fMclFE}es*5#{D}VQW!&_=QI?*jO@dx5 zd-&Ra>hxugtuIfXCfk4C>TZC?{7W`nd!H(%OD9v%8=-KXxaPp)0& zY-H9cz{7XV!w>N;6Bdi!pBcZ!_Im4MUt`_N*7oUsP=D^J)=SssOfc%w#_8MPabih> zMe}R4KUO(!wf1YV($8kA{(%MU%&&f2H#7Rum=;=Ff8X&ybwcr!Q72TcB;<@d*h=q- ze?e}|fO|TwQ=gVxzCSTDO4GD-Y>ad2iS=3#j-D^6;EpGU+bN}!KE3#(T zm@a(jx44`4DEs~9s-K$N+v?W-@TE7KU))>teP)4)V??W!-VGAEyeM>jJ-X7=^_i%TC>ti`vyMB^L#ME_J_B-VRqGrq#3jGT2}XM`N?*2 zqt#so78!JS)=`q?vwTn|5<) zHQ4?Au6JWP^<3I?&8)QI?%C}smWhX)t4TA-b3S%V>D!e};gV>*kxM_O_cQWXwsdXa z+c)};mD|L)jmj*4KkstL)8_{&gS_UcmGpg4)6&+}x&3y2J3q3igUTznF`+ZxT%6n4{!W$T zQ`pdS)6c!zFP7Ze(^-1-#){|9PJiAvXPrai5Y5+ZRHIzi6%SoG;I>7VDSehNTI%`T z#ANv)@6KNViS#BRZ@Y=SEvrk{j?VD*SnQ$Yp^NF~9Gsld(@#^=J@i*G}tM6I&;8FV)?h z9a0`u+I+8O>h=-qN)GiqovAeOd+w^o%XJJITjW^84b_{srDgcElF_#Y_Na{S;d1Ee zZ?7jcQd{z*V9!_=jScNh_UJkfykckUANSXZ54WFfUKla7L+ITK4Ns@fQFAQ z4{3DG>59hGZ=2NfWBTN8{W558w)}SCxf?r*KHK)ZDgVRa-iVYtH#9D7zijQ_xx#G6 z&`QqgZ28cMN6Ug+cHCc+KWyJg{Y!_JEH5~+Nvmsvf;B8F+*$gvafn-~8V{PqoO~liDBl8W#@l*F53csdyG5FEik(Hk{yH%Xa-d&d6 z=}h_7{r>x`TbbZJ#!D72n zyXRfMabrW(y330*EpL{b^tkud>vCblo6SYO5jOcMcb)fI47sV%{njpZT~~{SgFi?b zWsJHvs`|v%h&;6J%+y<$vOqPbcdNBUe`!vcd)P3yGJU|_YRjZ|=|7^YoQox=bjSNu z8Vz`z?xFlFB-6gc!+82_Z@tsM>C94^t66BfS-&dlsAWZoWzH#$j)gU@>PxrGZ$5YF z#S!N@HHUI@=eRE+vr`{Pe?MFp=)ECFt}|n<&5eaiHJ4SEXM3JGpWF1sgD+R!e<@v@ z7*akWCjCh}Tkrfze~&3^TWU7*)6&szV_=zZ%UWNuQuZxo%Q!Fqd`r~~-ODV)losY~ zXgzD~!(Lm?cQh*cHfpEAgI)V=%3iH)mSsFmZLj>Cv%&TkQotkcPqh>~ZhDeLvdO6SCmoBSJ7?oLV{`ASa@87?b9KBw)aNPOQ9P6xE7GG8@ zR4v?7zP&tn4A3vUAnd^1qzZ&MTb}R2}HySR>brt+2U}T%tMWT|hItKPCDN zj>{8{-%OQETxL=3G|%{n$|f%VRFUqKDWfH`+C~Nx4!29K$_|iMROlFcv~OaO8PrAB zc-25o@9v>&u31i&xpa13$bv=r(#v;iPPIH)UE^C_vgNlA6-%$@sTMsus5f`(D)Y*i zsbB#79+Up^YJ&5QPl3Ae4;+n5!YeHvOgN>QgYAE)+dEmO27BK<*3B*1Xf|bGM7Om$ zogbabEBIEq_VbN*=dCVPeH%M5H>PO$-hgj=*QyQNKE-lE4?Tn3eN=Vcv^R3>scN2@ z;yI*I^{yGuoz=Ye(n7Beg;fhxaw^J3X1;sj zBrDk|cU~BmBF!UvGNj^3wSJ4D2S+rvlzr_yE6c`a;oi)IGJ``=r8=JmJ#p+m{99_q9a&8Nsmy?y zS5mdUADu176sYCxS=Vgs>sdDEdo4EjmPq4YsU*5@!ztI|8aNjFtEz3iqf%P(ywTio zdzC#}PStEav_R`}|M?orrrv1cQ~f}#?dLGj&BapnHOA_VM>tvQb>5KB?$J4?4(n6f zw;$E6o33f&9c^C*uWY^jUP+s%{P)fJygl3eWA=}xdpd8{PI6tSGa#Tvi|=OoEeqyl zw90toX6fd5zu){G<^9hsnrGGc(;*xCR|5u4o6>l|F)J_Y2A(pDk*)mtt{NZT=hg{} z-mP<$%zckeFOu4?&A#>)PvA+Aq#%l=J)8 z)4zX{7n$si&9t8$Z~3J%?#qH_G5OQv(Wx(nN1A&zhp<^;iH}% zA1d2iel0BQ$RFXI8Xk_gA2rvxyj1L>v#!+;X$SYg3scfPDnq}z>#3Ex1{_@EmVI}V z7Ms~C3wDW!w>FLv}L4UK> z9h>82wXM)|T#JW8i!-kWJnUCBTr9okAO3Qh-^S^C0-rDJJ)+xR4M)a11O)9gjeXEZ zcjEnzqYpmZbLrI|Nt-I34A?i~>Gz75#|05RA7yALS9cz4`Rb8a>&5yt!(NW639d4I z_~_Zo8CRcgx0v;3)QBVBnistOdilzk@5|(Ce)y>5erc=S8DSa*Ko=-aeLP4e6O((W5R&Rz25gU62x6={K^ZXWLId+X~=&D#V2=vO)V zebK#rYiHkm-|@X|Z;fj$LhgvB4qZg}av8E{Oe_x~Tgglf}=vwpqG);HqU|-rJXS`t$8?_a~lO zTXg2rn#`S-R#`S*y827{y6pUTgXO8p%~zTi4qox@^7y$k`_H!I&uru}dB$n|{HzsWGba0K9-Y{J_mfF?Ze5VMWwuLvkxP4>X=e*}><92mxHe_e~j%GV{o;KX_W>V|Ty`GzHOz|1B>7b1y z=To#XeFZ5a1$+xp^VtMgALmF-t)^Yno2mg0kxFU;I~;dYaKT6_BManTCdJzM5e zSl%h}u#R(3f%JpQp@pl=iz;XBKcaU(>uA8pTgBPEU()z5D2kA6Q#(7mS^ln9^Fx;T z_N{!~(=aCJ&gyc@L#Ot4tsXD(m=%BIepope0E2HFEqEJ!^X~n7slEI{wTF4O@m*WB z$?VG)?X@ii?f5kM-q>SjBhGBunUW~7yKphS^OBtt5{#R+*0I@m@UQ8u%ht5LRMlmD z()>ZYPm6bmGMvuk^xQSD^}Msg)%!=}@14$-nR;4AEqf8vWUBw`ht`jmO_xoZe)+D| z{r#8bdjzER>T2`nBkgHkeyM-hzPzdNY3R|&*WEv@b6&RgWI!h~qlasJJtnxse>n4A zwD`L1mhrJ)kG1Zzw#&2KIp{=Vqm3rCZJncgc~MZD;e&|vgy=fZQYrj@rpPc#d4c5qj2ZQB4X_DFZ z%Xjq}vHSOz{s;Q|Jia{A$uo2Jj~8vOhxG3#zct-a?QG9yPZQ?No80x~nrjP&e%>?r z(Xb#ZKXa=s^VPCC^oo0;G3~f0-)eL05!(kFmA_6q-pZw$>8|(ggL`%w^KRCfrc1NC z7pIArRkTa1IXC2(bDqhSZ%W6aCE=SsE*+`oVbm`@aP87%kM-ZYb&F}E{JuPM)YFj5 z^MWc5JTFn3=arHFtZyXeSWyNBz>It5f0~63o8Rfi=in95YZ|G70dQ35_|2XB<1BPU zYSMOz?khH3?Dpf}*lA6*&OAt7q+M~rXh-o@%Qj6NCvF;}fAe&B%BTz_?ZiuY-+xa! zx6*gxn@-iOmpXmh*)P|j>B#eA++L|%d^0ojj(z93VV@*bpH0(;N*1^8E$zJL*7FrN zj_&(>`dMR#b#vOh)(lza8l^g5<+v)&I{ zrsi6hTx>eaWqU)LCk};Klf-}AUpQv?h!4$Op80=!<1;W@K3S#XwSmF*r)OW>mf1J= z(v1lc%eWJr1ILY-x$orfuWtCayAl6j-5&LKE!saCvNe5D^U|pD?Wvl350$JNp_F;L z->Tg26Ag5hKeouRXgp7EXxy~$mRkni8eP&OzOu(}R}Zh3XV zZ+B&&^IviP#?NklI59M0;pX$Zb2}tAxtI}tDEPNZWtBIi1ji&9wqwe#9oTy1@u4Tz z-WFZGcJsoYdoFEQ$Kk6{G0f#aIUE!~;4}IjWF4CcEzl={MRJtUnOY%zgX5*7kwl2T?nP0Fk0 z5_eQQD>NiJsm^YnX>^ilJUvAy$xlZ8O!3W|EX^b#GQlP}&f3hvtZ#2K%YH%T=0OP& z9Me%qw)8?0=`XLf*BbAyjt{LM*Uw&G5s6o|;Rzc9^yQp)e7u+p@?lP;-~W@V_uJK7K$^@XG!9vk0aUng(40puw0to) zB7O`Dq?jhr37iQ6*bR77Vqj&Hd61ejNk+`zP#^+`1(H!d6f`6%1Al-}+zdm2ED1n@ za72RXBa_HvTqLo-n4}RF6^;b4xJpXJRk(Z%7Zhag=pDqFLWv}*l9q`eQow~m#f9?* zwyaGJlN7heFp@eqASpC43MN4DNmxV*th!oviiS!{KClz}lE%6d*_|=19}Ign)}4e^ z1m@LE>cKP;OIT=964sec?AvpEF=O2+BBW<8^PZgs4lw0&9;kRM*+u#L0|ug4$?1>- ztalrEb{fbDxp(ctb?Mfh8%v7rj#hLdi;0sP&Rrdo~qu9S8J3hi}{9-|$FNGzI>u z94*ll_(uXW;GY9509L^-u^;3=$RB1xNh6DuRghZ{=mB{Uq%`pXJqPVk?kH-Ihr6pk z5d@^S2nuGxI{u<25y}_vp}Jt&nu9*vbg12lgScp|_G{2(%sMnvzbV`#<#Gu!QcMsF zrPIPkg1q)3$cn~6M=>+%K+(vM+<%Ielmy#*kY$Bxz&L2y{hxA7N`g_O|1xSYY5yl( z5&uQLVzGB3)9V9;oF*`z&a8y6?=b26Pj5TVAa_^}c9r;(MlsM@bpiBontHujrT9{h zpdk(po)TA=VGd+bJDjvg{~C$%pja;UuKz_Ockf}Y^|Fcz2f2w^rXycc(!j|KtKk!U z_DO#@X+LGEPhI0fp+3Te^hmHk(2wX3P;HD0-Z~4_5}8g24~~t3RUgABbq+5u2>Qyr z@y^3s>>MaA|0U?(8@WG%NM|z{6XsQjP(jo=ck~Tjm3nQyh>;X8Cu`#;XL&W1x5{4x0|UTAhtT zahd&V_GG*eDwBU3d^XFMneSANyfIwFP!#j$$V{0XchFB&M92W-z%&7i;BKvl{3un? zU-7D<=Ww@0tBM?AR7L0D7Qp4?sv=|HRIIA#8!$9ZRg?=PBK{4ynu)5S`M|Lx`jCPD z!4RE1C;^`;!}_&2EQ!=$ier z7GA8+k@gbWD&Z4mY#e!g8fZg&D=No|3=K4KKdIXM&v8BIi)f~(If$>S#tbDSL%F-o23b5(q^%~a3*tbz`0LdLFn;eJI@GB$}$ z%#{3aQs#l0c2Y5dnE`rjuo~1VP~_wC4a7M@TMe}6vnf-sQ$q2XA{KcRl)m7515b1f z7!<^CmXp0$c@SGuf>4vtlNXC=KPf&wt~UFh791DBC|SJ~>X-ghn~pbK3dNGVuA|zQ z7G8=pQr63bCPRgx2VUPl2A!b9TCv*IHy8n3*2(esVqY=igKAEW3YH6MaXHkvFstIr zds8xx6oJW$UXQd1B-VbLjCh=ct;$e(j9w|2Lx(;(A%CWBjn}o5$_#%BTn^|WhuI%v zRBgT5rOFhCK@%V=JF_OvtSylK_bAeVLskX^J9WYwOb<#+=e6hj?H;Wxzuc-fC4s=e z7Jzf~_OyZ~cTiDS0x1Nq1FLXM;V@Q{Fqr?ui=jj`&@uPYgHvE_h)+n(AS4s!ZN#ki z5TXIuG|5L-=x6YhNTtGa*zPp1*NN(gSVHkPIO~WCiR?*`sLFNWxC3-St134Ci@oU7QpgrMN4sIArgcs!%Z*F&nDXa-isAOre@xE?B|hd=hxh6Teb*MW4njoS1AH zB10F4;w!So5f5XJ;o;pB0|ePXdqkWm(+GOQztpw1gYuPIf80Q?8fc)@II5regAIJTVAf8s0mQeLtG$HYCpeBcmqfU5 zd`J@3&Cptn8~o%zBs=VrKw}b9iAD3NOe{>Ntd45ApY;|HdfVU-5K>4BE+zE&)@wpG z`!an5FuNNS!e)-z2T;lg)DTi&2}Q{jbEwc!sI=5k_+}J_8kLMbA#-Pn+DJtR3XOt? zLNN+d@k296T2yRGte7{k!AY=)2%1m@MOyS!LDd$GCs2HRx#}6nNS4V##n-M&XbIYW zh(k$N7}+|<^n%G%Ds{%Q*<=$VORudTk0A;ZNVS7Qp=hlu$Oc}s1qd2kQ_qB5FKX$; z^aKHP-ce)1RGOGkL;=FP=X`F1j!~GG$Up>VYy(+?$O+-LZ3vxqq<@B zEPU7~q!KzWDqpc!qk{g{#xTx|rWTeh&YMj-j`UTeJBFzv*=-R5Y01I*HY_ThGz5ZR zvBxZlK?(p zl7vJc++Y$UlISs*6lB&dn65kFmF-XrjE`7SNQ`Y6>1#_A6G7uz z4oQ)i;%T;IO~#s{cE`j?!7;#Cr|f9WNN4*r8b(+`LdPh^6>?!qksSywR!#p{!X5(Y zg`&E^CMQi9%yfKkL@*d7(D3)`h){GHT5`P6odl`^hE!OA=>5UAqmBlakGEn~g6$}8 zsi)XZDjQ7{96o`kwRwirW`%B(PlYpAy_>aJBb2hLIADs`aoO9q3mLF{Un&`s>c?+L{T zv<(J<4P#MOxPuL(sbNM+H|!Cx!NQJ%+3W%{N=o)_z{oHJpAIW2QZeH@A#!LPqK+iP z-doC3=!T5>LqqG|@BVZLdw+vu7w|5{oHI5B#K~jpsv!*8k|`?;a(j0vIw{7LdR>(I z!7M(=L^*VdXMhr+;;?*3?I#gfifuV&AlaCx_!QcZ1t-R0BoOrjS`vnld-mxwe56$% z-qDJ#lQ8ozRubb(@g?D>SM2yDyxBIY5G%YeMpwNe8XH@&|Hu**YGr6v&*2PvAq>1a z78uDH_9ZW8*ar@0*c*Ri_+%!AX7IT2VQ?r9KFo;^6C7{e=LxDoE+?W(L6>nxMrh`w z6xi+pUqUhQvt^(5^w{|Dc4QcSF6aYs23C`t@VJKo0yKP+sh?i)>SHWW@~K z5>qNOZpaouqHAF4l{b!owTet%@N7CvzQ(9%Qlp0s$}Ca{2@R91I~n2t274hP1>P9L zl@8_Uf=?l|DIK0*SSB0Wv8P&b`mk!0%xe-B2r5<@qCwR4#ljf}(d#CW!D(qGNix&0 z_|PO%x*=FEN}}T`IU;+L`dhXtGKyXnM-&HM5W4|^w(cl)fVN;#aR}?*Q0$JSI1yxw ziMl$cj|?0^2g?<4`Nc||^ObnHySO`9DJU>n$b+#%<=>uZK_uQdepOplMe4b#qVB*6 zpbAjgrYh0}ycorXeIwI7!E@qhbqB}T+tm#VZX7I(F^l4uTrhc|9YESqFpZTu)|ooz z5Sx&k4jO?>(X*i=?B*n6;&B=lhMf#frHF`mZph_h6?e_`YUx+4syN5t_)Ou|z5Z8}I`Rysa&zW6xMpmJc~ zD$H368(mnKSEMIS9pX7KV`Nr1hBZU4LV~yynIceJKM-#qko?B3ymn>g*P$qi?0e>Y;zY6syywI)^-CgIr~IsmL^L6n94ZO4HP zHc?NqFcg#L5m||iOpV~<8>`*~HS&4_pWC^@2FWm0`ldWIODP*)0R)X1M_?&9D zH9{z()6&JLf9(CKU(xznt0kNU9UITEa>Eu#N=5(hFj`U-UMn1K(DT{htKb-hDhki< z?u4DEEJheULMSt^L$q?e;lYmxB2=T|5^!um(?~6&lk~L6VLK87hc7j_EQ-eT;_ZO( z4sQ(;hx{nn&k^`LVl!i&F2OAPZ&C2BxNAy({ymD~b~rPZOvFr*ts&c!VAR!XEDk-1 zY7-~w8tQyK{`waMWv1MCt*s=WpeQ-tPp!me8tN#Cuq{-~EX3o%0AqVk>{o>|4c2n( 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ɹs>QU4aZ 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

    CRv?1MyYK`=Y_#gz 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%0Ahl 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 diff --git a/package/lean/autocore/Makefile b/package/lean/autocore/Makefile deleted file mode 100644 index bf2992936..000000000 --- a/package/lean/autocore/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -# -# Copyright (C) 2010-2011 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=autocore -PKG_VERSION:=1 -PKG_RELEASE:=15 - - -include $(INCLUDE_DIR)/package.mk - -define Package/autocore - TITLE:=x86/x64 auto core loadbalance script. - MAINTAINER:=Lean - DEPENDS:=@TARGET_x86 +bc +lm-sensors +ethtool -endef - -define Package/autocore/description -A usb autoconfig hotplug script. -endef - -define Build/Compile -endef - -define Package/autocore/install - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) ./files/autocore $(1)/etc/init.d/autocore - $(INSTALL_DIR) $(1)/etc - $(INSTALL_DATA) ./files/index.htm $(1)/etc/index.htm -endef - -$(eval $(call BuildPackage,autocore)) diff --git a/package/lean/autocore/files/autocore b/package/lean/autocore/files/autocore deleted file mode 100755 index 3086ffdb0..000000000 --- a/package/lean/autocore/files/autocore +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2017 lean - -START=99 - -start() -{ - rfc=4096 - cc=$(grep -c processor /proc/cpuinfo) - rsfe=$(echo $cc*$rfc | bc) - sysctl -w net.core.rps_sock_flow_entries=$rsfe - for fileRps in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus) - do - echo $cc > $fileRps - done - - for fileRfc in $(ls /sys/class/net/eth*/queues/rx-*/rps_flow_cnt) - do - echo $rfc > $fileRfc - done - - for fileRps in $(ls /sys/class/net/eth*/queues/tx-*/xps_cpus) - do - echo $cc > $fileRps - done - - a=$(cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq) - b=$(echo -n ' : ') - c=$(cat /proc/cpuinfo | grep 'core id' | sort -u | wc -l) - d=$(echo -n ' Core ') - e=$(cat /proc/cpuinfo | grep 'processor' | wc -l) - f=$(echo -n ' Thread ') - g=${a}${b}${c}${d}${e}${f} - echo $g > /tmp/sysinfo/model - - ethtool -K eth0 rx-checksum on >/dev/null 2>&1 - ethtool -K eth0 tx-checksum-ip-generic on >/dev/null 2>&1 - ethtool -K eth0 tso on >/dev/null 2>&1 - ethtool -K eth0 ufo on >/dev/null 2>&1 - ethtool -K eth0 gso on >/dev/null 2>&1 - - ethtool -K eth1 rx-checksum on >/dev/null 2>&1 - ethtool -K eth1 tx-checksum-ip-generic on >/dev/null 2>&1 - ethtool -K eth1 tso on >/dev/null 2>&1 - ethtool -K eth1 ufo on >/dev/null 2>&1 - ethtool -K eth1 gso on >/dev/null 2>&1 - - ethtool -K eth2 rx-checksum on >/dev/null 2>&1 - ethtool -K eth2 tx-checksum-ip-generic on >/dev/null 2>&1 - ethtool -K eth2 tso on >/dev/null 2>&1 - ethtool -K eth2 ufo on >/dev/null 2>&1 - ethtool -K eth2 gso on >/dev/null 2>&1 - - ethtool -K eth3 rx-checksum on >/dev/null 2>&1 - ethtool -K eth3 tx-checksum-ip-generic on >/dev/null 2>&1 - ethtool -K eth3 tso on >/dev/null 2>&1 - ethtool -K eth3 ufo on >/dev/null 2>&1 - ethtool -K eth3 gso on >/dev/null 2>&1 - - [ -f /etc/index.htm ] && mv /etc/index.htm /usr/lib/lua/luci/view/admin_status/index.htm -} - - - diff --git a/package/lean/autocore/files/index.htm b/package/lean/autocore/files/index.htm deleted file mode 100644 index 6cec12ca9..000000000 --- a/package/lean/autocore/files/index.htm +++ /dev/null @@ -1,830 +0,0 @@ -<%# - Copyright 2008 Steven Barth - Copyright 2008-2011 Jo-Philipp Wich - Licensed to the public under the Apache License 2.0. --%> - -<% - local fs = require "nixio.fs" - local util = require "luci.util" - local stat = require "luci.tools.status" - local ver = require "luci.version" - - local has_ipv6 = fs.access("/usr/sbin/ip6tables") - local has_dhcp = fs.access("/etc/config/dhcp") - local has_wifi = ((fs.stat("/etc/config/wireless", "size") or 0) > 0) - - local sysinfo = luci.util.ubus("system", "info") or { } - local boardinfo = luci.util.ubus("system", "board") or { } - local unameinfo = nixio.uname() or { } - - local meminfo = sysinfo.memory or { - total = 0, - free = 0, - buffered = 0, - shared = 0 - } - - local swapinfo = sysinfo.swap or { - total = 0, - free = 0 - } - - local has_dsl = fs.access("/etc/init.d/dsl_control") - - if luci.http.formvalue("status") == "1" then - local ntm = require "luci.model.network".init() - local wan = ntm:get_wannet() - local wan6 = ntm:get_wan6net() - - local conn_count = tonumber( - fs.readfile("/proc/sys/net/netfilter/nf_conntrack_count") or "") or 0 - - local conn_max = tonumber(luci.sys.exec( - "sysctl -n -e net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_max" - ):match("%d+")) or 4096 - - local rv = { - uptime = sysinfo.uptime or 0, - localtime = os.date(), - loadavg = sysinfo.load or { 0, 0, 0 }, - memory = meminfo, - swap = swapinfo, - connmax = conn_max, - conncount = conn_count, - leases = stat.dhcp_leases(), - leases6 = stat.dhcp6_leases(), - wifinets = stat.wifi_networks() - } - - if wan then - rv.wan = { - ipaddr = wan:ipaddr(), - gwaddr = wan:gwaddr(), - netmask = wan:netmask(), - dns = wan:dnsaddrs(), - expires = wan:expires(), - uptime = wan:uptime(), - proto = wan:proto(), - ifname = wan:ifname(), - link = wan:adminlink() - } - end - - if wan6 then - rv.wan6 = { - ip6addr = wan6:ip6addr(), - gw6addr = wan6:gw6addr(), - dns = wan6:dns6addrs(), - ip6prefix = wan6:ip6prefix(), - uptime = wan6:uptime(), - proto = wan6:proto(), - ifname = wan6:ifname(), - link = wan6:adminlink() - } - end - - if has_dsl then - local dsl_stat = luci.sys.exec("/etc/init.d/dsl_control lucistat") - local dsl_func = loadstring(dsl_stat) - if dsl_func then - rv.dsl = dsl_func() - end - end - - luci.http.prepare_content("application/json") - luci.http.write_json(rv) - - return - elseif luci.http.formvalue("hosts") == "1" then - luci.http.prepare_content("application/json") - luci.http.write_json(luci.sys.net.host_hints()) - - return - end --%> - -<%+header%> - - - - -

    <%:Status%>

    - -
    - <%:System%> - - - - - - - - - - -
    <%:Hostname%><%=luci.sys.hostname() or "?"%>
    <%:Model%><%=pcdata(boardinfo.model or boardinfo.system or "?")%>
    <%:CPU Temperature%><%=luci.sys.exec("sensors | grep 'Core 0' | cut -c10-24")%> @ <%=luci.sys.exec("grep 'MHz' /proc/cpuinfo | cut -c11- |sed -n '1p'")%> MHz
    <%:Firmware Version%> - <%=pcdata(ver.distname)%> <%=pcdata(ver.distversion)%> / - <%=pcdata(ver.luciname)%> (<%=pcdata(ver.luciversion)%>) -
    <%:Kernel Version%><%=unameinfo.release or "?"%>
    <%:Local Time%>-
    <%:Uptime%>-
    <%:Load Average%>-
    -
    - -
    - <%:Memory%> - - - - - -
    <%:Total Available%>-
    <%:Free%>-
    <%:Buffered%>-
    -
    - -<% if swapinfo.total > 0 then %> -
    - <%:Swap%> - - - - -
    <%:Total Available%>-
    <%:Free%>-
    -
    -<% end %> - -
    - <%:Network%> - - - - <% if has_ipv6 then %> - - <% end %> - -
    <%:IPv4 WAN Status%> - - - -

    ?
    <%:Collecting data...%>
    -
    <%:IPv6 WAN Status%> - - - -

    ?
    <%:Collecting data...%>
    -
    <%:Active Connections%>-
    -
    - -<% if has_dhcp then %> -
    - <%:DHCP Leases%> - - - - - - - - - - - -
    <%:Hostname%><%:IPv4-Address%><%:MAC-Address%><%:Leasetime remaining%>

    <%:Collecting data...%>
    -
    - -<% if has_ipv6 then %> - -<% end %> -<% end %> - -<% if has_dsl then %> -
    - <%:DSL%> - - -
    <%:DSL Status%> - - - -

    ?
    <%:Collecting data...%>
    -
    -
    -<% end %> - -<% if has_wifi then %> -
    - <%:Wireless%> - - - -
    <%:Collecting data...%>
    -
    - -
    - <%:Associated Stations%> - - - - - - - - - - - - - -
     <%:Network%><%:MAC-Address%><%:Host%><%:Signal%> / <%:Noise%><%:RX Rate%> / <%:TX Rate%>

    <%:Collecting data...%>
    -
    -<% end %> - -<%- - local incdir = util.libpath() .. "/view/admin_status/index/" - if fs.access(incdir) then - local inc - for inc in fs.dir(incdir) do - if inc:match("%.htm$") then - include("admin_status/index/" .. inc:gsub("%.htm$", "")) - end - end - end --%> - -<%+footer%> diff --git a/package/lean/automount/Makefile b/package/lean/automount/Makefile deleted file mode 100644 index e026f8987..000000000 --- a/package/lean/automount/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -# Copyright (C) 2010-2011 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=automount -PKG_VERSION:=1 -PKG_RELEASE:=20 -PKG_ARCH:=all - -include $(INCLUDE_DIR)/package.mk - -define Package/automount - TITLE:=Mount autoconfig hotplug script. - MAINTAINER:=Lean - DEPENDS:=+block-mount +kmod-usb-storage +kmod-usb-storage-extras +kmod-fs-vfat +ntfs-3g +kmod-fs-ext4 -endef - -define Package/automount/description -A usb autoconfig hotplug script. -endef - -define Build/Compile -endef - -define Package/automount/install - $(INSTALL_DIR) $(1)/etc/uci-defaults - $(INSTALL_BIN) ./files/15-automount $(1)/etc/15-automount - $(INSTALL_BIN) ./files/zzz-move-automount $(1)/etc/uci-defaults/zzz-move-automount -endef - -$(eval $(call BuildPackage,automount)) diff --git a/package/lean/automount/files/15-automount b/package/lean/automount/files/15-automount deleted file mode 100755 index dd518c4ec..000000000 --- a/package/lean/automount/files/15-automount +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2015 OpenWrt.org - -# 0 yes blockdevice handles this - 1 no it is not there -blkdev=`dirname $DEVPATH` -basename=`basename $blkdev` -device=`basename $DEVPATH` -skip=`block info | sed 's/\(.*\): .*/\1/' | grep -q $device ; echo $?` -path=$DEVPATH - -if [ $basename != "block" ] && [ -z "${device##sd*}" ] && [ $skip -eq 1 ]; then - mntpnt=$device - case "$ACTION" in - add) - mkdir -p /mnt/$mntpnt - chmod 777 /mnt/$mntpnt - # Try to be gentle on solid state devices - mount -o rw,noatime,discard /dev/$device /mnt/$mntpnt - ;; - remove) - # Once the device is removed, the /dev entry disappear. We need mountpoint - mountpoint=`mount |grep /dev/$device | sed 's/.* on \(.*\) type.*/\1/'` - umount -l $mountpoint - ;; - esac -fi \ No newline at end of file diff --git a/package/lean/automount/files/zzz-move-automount b/package/lean/automount/files/zzz-move-automount deleted file mode 100755 index fbe094cbd..000000000 --- a/package/lean/automount/files/zzz-move-automount +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -sleep 15 -mv /etc/15-automount /etc/hotplug.d/block/ - - - diff --git a/package/lean/autosamba/Makefile b/package/lean/autosamba/Makefile deleted file mode 100644 index f6d765da7..000000000 --- a/package/lean/autosamba/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -# -# Copyright (C) 2010-2011 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=autosamba -PKG_VERSION:=1 -PKG_RELEASE:=9 -PKG_ARCH:=all - -include $(INCLUDE_DIR)/package.mk - -define Package/autosamba - TITLE:=Samba autoconfig hotplug script. - MAINTAINER:=Lean - DEPENDS:=+luci-app-samba -endef - -define Package/autosamba/description -A hotplug script to config Samba share automatically. -endef - -define Build/Compile -endef - -define Package/autosamba/install - $(INSTALL_DIR) $(1)/etc/hotplug.d/block - $(INSTALL_BIN) ./files/20-smb $(1)/etc/hotplug.d/block/20-smb -endef - -$(eval $(call BuildPackage,autosamba)) diff --git a/package/lean/autosamba/files/20-smb b/package/lean/autosamba/files/20-smb deleted file mode 100755 index 7a2056cd0..000000000 --- a/package/lean/autosamba/files/20-smb +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh -# -# D-Team Technology Co.,Ltd. ShenZhen -# 作者:Vic -# -# -# 警告:对着屏幕的哥们,我们允许你使用此脚本,但不允许你抹去作者的信息,请保留这段话。 -# -. /lib/functions.sh -. /lib/functions/service.sh - -global=0 -config_file="/etc/config/samba" - -wait_for_init() { - for i in `seq 30` - do - [ -e /tmp/procd.done ] || { - sleep 1; continue; - } - return - done -} - -smb_handle() { - config_get path $1 path - if [ "$path" = "$2" ] ;then - global=1 - fi -} - -chk_en() { - config_get_bool autoshare $1 autoshare 1 - [ $autoshare -eq 0 ] && exit -} - -config_load samba -config_foreach chk_en samba - -device=`basename $DEVPATH` - -case "$ACTION" in - add) - - case "$device" in - sd*) ;; - md*) ;; - hd*);; - mmcblk*);; - *) return;; - esac - - path="/dev/$device" - - wait_for_init - - cat /proc/mounts | while read j - do - str=${j%% *} - if [ "$str" == $path ];then - strr=${j#* } - target=${strr%% *} - global=0 - config_foreach smb_handle sambashare $target - name=${target#*/mnt/} - - if [ $global -eq 0 ] ;then - echo -e "\n\nconfig sambashare" >> $config_file - echo -e "\toption auto '1'" >> $config_file - echo -e "\toption name '$name'" >> $config_file - echo -e "\toption path '$target'" >> $config_file - echo -e "\toption read_only 'no'" >> $config_file - echo -e "\toption guest_ok 'yes'" >> $config_file - echo -e "\toption create_mask '0666'" >> $config_file - echo -e "\toption dir_mask '0777'" >> $config_file - echo -e "\toption device '$device'" >> $config_file - /etc/init.d/samba reload - return - fi - fi - done - ;; - remove) - i=0 - while true - do - - dev=`uci get samba.@sambashare[$i].device` - [ $? -ne 0 ] && break - - [ "$dev" = "$device" ] && { - auto=`uci get samba.@sambashare[$i].auto` - [ $auto = "1" ] && { - mount_dir=`uci get samba.@sambashare[$i].name` - rm -rf /mnt/$device /mnt/$mount_dir - uci delete samba.@sambashare[$i] - uci commit - /etc/init.d/samba reload - return - } - } - let i+=1 - done - ;; -esac diff --git a/package/lean/ddns-scripts_aliyun/Makefile b/package/lean/ddns-scripts_aliyun/Makefile deleted file mode 100644 index e35cef5a4..000000000 --- a/package/lean/ddns-scripts_aliyun/Makefile +++ /dev/null @@ -1,72 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=ddns-scripts_aliyun -PKG_VERSION:=1.0.0 -PKG_RELEASE:=1 - -PKG_LICENSE:=GPLv2 -PKG_MAINTAINER:=Sense - -PKG_BUILD_PARALLEL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=net - CATEGORY:=Network - SUBMENU:=IP Addresses and Names - TITLE:=DDNS extension for AliYun.com - PKGARCH:=all - DEPENDS:=+ddns-scripts +wget +openssl-util -endef - -define Package/$(PKG_NAME)/description - Dynamic DNS Client scripts extension for AliYun.com -endef - -define Build/Configure -endef - -define Build/Compile - $(CP) ./*.sh $(PKG_BUILD_DIR) -endef - -define Package/$(PKG_NAME)/preinst - #!/bin/sh - # if NOT run buildroot then stop service - [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1 - exit 0 # suppress errors -endef - -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/lib/ddns - $(INSTALL_BIN) $(PKG_BUILD_DIR)/update_aliyun_com.sh $(1)/usr/lib/ddns -endef - -define Package/$(PKG_NAME)/postinst - #!/bin/sh - # remove old services file entries - /bin/sed -i '/aliyun\.com/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1 - /bin/sed -i '/aliyun\.com/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1 - # and create new - printf "%s\\t\\t%s\\n" '"aliyun.com"' '"update_aliyun_com.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services - printf "%s\\t\\t%s\\n" '"aliyun.com"' '"update_aliyun_com.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services_ipv6 - # on real system restart service if enabled - [ -z "$${IPKG_INSTROOT}" ] && { - /etc/init.d/ddns enabled && \ - /etc/init.d/ddns start >/dev/null 2>&1 - } - exit 0 # suppress errors -endef - -define Package/$(PKG_NAME)/prerm - #!/bin/sh - # if NOT run buildroot then stop service - [ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1 - # remove services file entries - /bin/sed -i '/aliyun\.com/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1 - /bin/sed -i '/aliyun\.com/d' $${IPKG_INSTROOT}/etc/ddns/services_ipv6 >/dev/null 2>&1 - exit 0 # suppress errors -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/lean/ddns-scripts_aliyun/update_aliyun_com.sh b/package/lean/ddns-scripts_aliyun/update_aliyun_com.sh deleted file mode 100755 index 89ee909ce..000000000 --- a/package/lean/ddns-scripts_aliyun/update_aliyun_com.sh +++ /dev/null @@ -1,233 +0,0 @@ -#!/bin/sh -# -# 用于阿里云解析的DNS更新脚本 -# 2017-2018 Sense -# 阿里云解析API文档 https://help.aliyun.com/document_detail/29739.html -# -# 本脚本由 dynamic_dns_functions.sh 内的函数 send_update() 调用 -# -# 需要在 /etc/config/ddns 中设置的选项 -# option username - 阿里云API访问账号 Access Key ID。可通过 aliyun.com 帐号管理的 accesskeys 获取, 或者访问 https://ak-console.aliyun.com -# option password - 阿里云API访问密钥 Access Key Secret -# option domain - 完整的域名。建议主机与域名之间使用 @符号 分隔,否则将以第一个 .符号 之前的内容作为主机名 -# - -# 检查传入参数 -[ -z "$username" ] && write_log 14 "配置错误!保存阿里云API访问账号的'用户名'不能为空" -[ -z "$password" ] && write_log 14 "配置错误!保存阿里云API访问密钥的'密码'不能为空" - -# 检查外部调用工具 -[ -n "$WGET_SSL" ] || write_log 13 "使用阿里云API需要 GNU Wget 支持,请先安装" -command -v sed >/dev/null 2>&1 || write_log 13 "使用阿里云API需要 sed 支持,请先安装" -command -v openssl >/dev/null 2>&1 || write_log 13 "使用阿里云API需要 openssl-util 支持,请先安装" - -# 包含用于解析 JSON 格式返回值的函数 -. /usr/share/libubox/jshn.sh - -# 变量声明 -local __HOST __DOMAIN __TYPE __URLBASE __CMDBASE __URLARGS __SEPARATOR __RECID -[ $use_https -eq 0 ] && __URLBASE="http://alidns.aliyuncs.com/" || __URLBASE="https://alidns.aliyuncs.com/" -__SEPARATOR="&" - -# 从 $domain 分离主机和域名 -[ "${domain:0:2}" == "@." ] && domain="${domain/./}" # 主域名处理 -[ "$domain" == "${domain/@/}" ] && domain="${domain/./@}" # 未找到分隔符,兼容常用域名格式 -__HOST="${domain%%@*}" -__DOMAIN="${domain#*@}" -[ -z "$__HOST" -o "$__HOST" == "$__DOMAIN" ] && __HOST="@" - -# 设置记录类型 -[ $use_ipv6 -eq 0 ] && __TYPE="A" || __TYPE="AAAA" - -# 构造基本通信命令 -build_command() { - __CMDBASE="$WGET_SSL -nv -t 1 -O $DATFILE -o $ERRFILE" - # 绑定用于通信的主机/IP - if [ -n "$bind_network" ]; then - local bind_ip run_prog - [ $use_ipv6 -eq 0 ] && run_prog="network_get_ipaddr" || run_prog="network_get_ipaddr6" - eval "$run_prog bind_ip $bind_network" || \ - write_log 13 "无法使用 '$run_prog $bind_network' 获取本地IP地址 - 错误代码: '$?'" - write_log 7 "强制使用IP '$bind_ip' 通信" - __CMDBASE="$__CMDBASE --bind-address=$bind_ip" - fi - # 强制设定IP版本 - if [ $force_ipversion -eq 1 ]; then - [ $use_ipv6 -eq 0 ] && __CMDBASE="$__CMDBASE -4" || __CMDBASE="$__CMDBASE -6" - fi - # 设置CA证书参数 - if [ $use_https -eq 1 ]; then - if [ "$cacert" = "IGNORE" ]; then - __CMDBASE="$__CMDBASE --no-check-certificate" - elif [ -f "$cacert" ]; then - __CMDBASE="$__CMDBASE --ca-certificate=${cacert}" - elif [ -d "$cacert" ]; then - __CMDBASE="$__CMDBASE --ca-directory=${cacert}" - elif [ -n "$cacert" ]; then - write_log 14 "在 '$cacert' 中未找到用于 HTTPS 通信的有效证书" - fi - fi - # 如果没有设置,禁用代理 (这可能是 .wgetrc 或环境设置错误) - [ -z "$proxy" ] && __CMDBASE="$__CMDBASE --no-proxy" -} - -# 用于阿里云API的通信函数 -aliyun_transfer() { - local __PARAM=$* - local __CNT=0 - local __RUNPROG __ERR PID_SLEEP - - [ $# -eq 0 ] && write_log 12 "'aliyun_transfer()' 出错 - 参数数量错误" - - while : ; do - build_Request $__PARAM - __RUNPROG="$__CMDBASE '${__URLBASE}?${__URLARGS}'" - - write_log 7 "#> $__RUNPROG" - eval $__RUNPROG - __ERR=$? - [ $__ERR -eq 0 ] && return 0 - - write_log 3 "wget 错误代码: '$__ERR'" - write_log 7 "$(cat $ERRFILE)" - - if [ $VERBOSE -gt 1 ]; then - write_log 4 "传输失败 - 详细模式: $VERBOSE - 出错后不再重试" - return 1 - fi - - __CNT=$(( $__CNT + 1 )) - [ $retry_count -gt 0 -a $__CNT -gt $retry_count ] && \ - write_log 14 "$retry_count 次重试后传输还是失败" - - write_log 4 "传输失败 - $__CNT/$retry_count 在 $RETRY_SECONDS 秒后重试" - sleep $RETRY_SECONDS & - PID_SLEEP=$! - wait $PID_SLEEP - PID_SLEEP=0 - done -} - -# 百分号编码 -percentEncode() { - if [ -z "${1//[A-Za-z0-9_.~-]/}" ]; then - echo -n "$1" - else - local string=$1; local i=0; local ret chr - while [ $i -lt ${#string} ]; do - chr=${string:$i:1} - [ -z "${chr#[^A-Za-z0-9_.~-]}" ] && chr=$(printf '%%%02X' "'$chr") - ret="$ret$chr" - i=$(( $i + 1 )) - done - echo -n "$ret" - fi -} - -# 构造阿里云解析请求参数 -build_Request() { - local args=$*; local string - local HTTP_METHOD="GET" - - # 添加请求参数 - __URLARGS= - for string in $args; do - case "${string%%=*}" in - Format|Version|AccessKeyId|SignatureMethod|Timestamp|SignatureVersion|SignatureNonce|Signature) ;; # 过滤公共参数 - *) __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}");; - esac - done - __URLARGS="${__URLARGS:1}" - - # 附加公共参数 - string="Format=JSON"; __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") - string="Version=2015-01-09"; __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") - string="AccessKeyId=$username"; __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") - string="SignatureMethod=HMAC-SHA1"; __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") - string="Timestamp="$(date -u '+%Y-%m-%dT%H:%M:%SZ'); __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") - string="SignatureVersion=1.0"; __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") - string="SignatureNonce="$(cat '/proc/sys/kernel/random/uuid'); __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") - - # 对请求参数进行排序,用于生成签名 - string=$(echo -n "$__URLARGS" | sed 's/\'"${__SEPARATOR}"'/\n/g' | sort | sed ':label; N; s/\n/\'"${__SEPARATOR}"'/g; b label') - # 构造用于计算签名的字符串 - string="${HTTP_METHOD}${__SEPARATOR}"$(percentEncode "/")"${__SEPARATOR}"$(percentEncode "$string") - # 字符串计算签名HMAC值 - local signature=$(echo -n "$string" | openssl dgst -sha1 -hmac "${password}&" -binary) - # HMAC值编码成字符串,得到签名值 - signature=$(echo -n "$signature" | openssl base64) - - # 附加签名参数 - string="Signature=$signature"; __URLARGS="$__URLARGS${__SEPARATOR}"$(percentEncode "${string%%=*}")"="$(percentEncode "${string#*=}") -} - -# 添加解析记录 -add_domain() { - local value - aliyun_transfer "Action=AddDomainRecord" "DomainName=${__DOMAIN}" "RR=${__HOST}" "Type=${__TYPE}" "Value=${__IP}" || write_log 14 "服务器通信失败" - json_cleanup; json_load "$(cat "$DATFILE" 2> /dev/null)" >/dev/null 2>&1 - json_get_var value "RecordId" - [ -z "$value" ] && write_log 14 "添加新解析记录失败" - write_log 7 "添加新解析记录成功" - return 0 -} - -# 修改解析记录 -update_domain() { - local value - aliyun_transfer "Action=UpdateDomainRecord" "RecordId=${__RECID}" "RR=${__HOST}" "Type=${__TYPE}" "Value=${__IP}" || write_log 14 "服务器通信失败" - json_cleanup; json_load "$(cat "$DATFILE" 2> /dev/null)" >/dev/null 2>&1 - json_get_var value "RecordId" - [ -z "$value" ] && write_log 14 "修改解析记录失败" - write_log 7 "修改解析记录成功" - return 0 -} - -# 启用解析记录 -enable_domain() { - local value - aliyun_transfer "Action=SetDomainRecordStatus" "RecordId=${__RECID}" "Status=Enable" || write_log 14 "服务器通信失败" - json_cleanup; json_load "$(cat "$DATFILE" 2> /dev/null)" >/dev/null 2>&1 - json_get_var value "Status" - [ "$value" != "Enable" ] && write_log 14 "启用解析记录失败" - write_log 7 "启用解析记录成功" - return 0 -} - -# 获取子域名解析记录列表 -describe_domain() { - local value type; local ret=0 - aliyun_transfer "Action=DescribeSubDomainRecords" "SubDomain=${__HOST}.${__DOMAIN}" || write_log 14 "服务器通信失败" - json_cleanup; json_load "$(cat "$DATFILE" 2> /dev/null)" >/dev/null 2>&1 - json_get_var value "TotalCount" - if [ $value -eq 0 ]; then - write_log 7 "解析记录不存在" - ret=1 - else - json_select "DomainRecords" >/dev/null 2>&1 - json_select "Record" >/dev/null 2>&1 - json_select 1 >/dev/null 2>&1 - json_get_var value "Locked" - [ $value -ne 0 ] && write_log 14 "解析记录被锁定" - json_get_var __RECID "RecordId" - write_log 7 "获得解析记录ID: ${__RECID}" - json_get_var value "Status" - [ "$value" != "ENABLE" ] && ret=$(( $ret | 2 )) && write_log 7 "解析记录被禁用" - json_get_var type "Type" - json_get_var value "Value" - [ "$type" != "${__TYPE}" -o "$value" != "${__IP}" ] && ret=$(( $ret | 4 )) && write_log 7 "地址或类型需要修改" - fi - return $ret -} - -build_command -describe_domain -ret=$? -if [ $ret -eq 1 ]; then - sleep 3 && add_domain -else - [ $(( $ret & 2 )) -ne 0 ] && sleep 3 && enable_domain - [ $(( $ret & 4 )) -ne 0 ] && sleep 3 && update_domain -fi - -return 0 diff --git a/package/lean/default-settings/Makefile b/package/lean/default-settings/Makefile deleted file mode 100644 index 2db989464..000000000 --- a/package/lean/default-settings/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -# -# Copyright (C) 2016-2017 GitHub -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. - -include $(TOPDIR)/rules.mk - -PKG_NAME:=default-settings -PKG_VERSION:=1.0 -PKG_RELEASE:=63 -PKG_LICENSE:=GPLv3 -PKG_LICENSE_FILES:=LICENSE - -PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) - -include $(INCLUDE_DIR)/package.mk - -define Package/default-settings - SECTION:=luci - CATEGORY:=LuCI - TITLE:=LuCI support for Default Settings - PKGARCH:=all - DEPENDS:=+@LUCI_LANG_zh-cn -endef - -define Package/default-settings/description - Language Support Packages. -endef - -define Build/Prepare - $(foreach po,$(wildcard ${CURDIR}/i18n/*.po), \ - po2lmo $(po) $(PKG_BUILD_DIR)/$(patsubst %.po,%.lmo,$(notdir $(po)));) -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/default-settings/install - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n - $(INSTALL_DIR) $(1)/etc/uci-defaults - $(INSTALL_DATA) $(PKG_BUILD_DIR)/*.lmo $(1)/usr/lib/lua/luci/i18n/ - $(INSTALL_BIN) ./files/zzz-default-settings $(1)/etc/uci-defaults/99-default-settings -endef - -$(eval $(call BuildPackage,default-settings)) diff --git a/package/lean/default-settings/files/zzz-default-settings b/package/lean/default-settings/files/zzz-default-settings deleted file mode 100755 index d80d6c20d..000000000 --- a/package/lean/default-settings/files/zzz-default-settings +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh - -uci set luci.main.lang=zh_cn -uci commit luci - -uci set system.@system[0].timezone=CST-8 -uci set system.@system[0].zonename=Asia/Shanghai -uci commit system - -uci set fstab.@global[0].anon_mount=1 -uci commit fstab - -rm -f /usr/lib/lua/luci/view/admin_status/index/mwan.htm -rm -f /usr/lib/lua/luci/view/admin_status/index/upnp.htm -rm -f /usr/lib/lua/luci/view/admin_status/index/ddns.htm -rm -f /usr/lib/lua/luci/view/admin_status/index/minidlna.htm - -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/aria2.lua -sed -i 's/services/nas/g' /usr/lib/lua/luci/view/aria2/overview_status.htm -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/hd_idle.lua -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/samba.lua -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/minidlna.lua -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/transmission.lua -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/mjpg-streamer.lua -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/p910nd.lua -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/usb_printer.lua -sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/xunlei.lua - -sed -i 's/services/nas/g' /usr/lib/lua/luci/view/minidlna_status.htm -uci set minidlna.config.enabled=0 -uci commit minidlna -/etc/init.d/minidlna stop - -ln -sf /sbin/ip /usr/bin/ip - -sed -i 's/downloads.openwrt.org/openwrt.proxy.ustclug.org/g' /etc/opkg/distfeeds.conf -sed -i 's/root::0:0:99999:7:::/root:$1$V4UetPzk$CYXluq4wUazHjmCDBCqXF.:0:0:99999:7:::/g' /etc/shadow - -sed -i "s/# //g" /etc/opkg/distfeeds.conf - -uci set dhcp.lan.ra='server' -uci set dhcp.lan.dhcpv6='server' -uci set dhcp.lan.ra_management='1' -uci set dhcp.lan.ra_default='1' -uci commit dhcp - -uci set upnpd.config.enabled='1' -uci set upnpd.config.igdv1='1' -uci commit upnpd - -sed -i '/REDIRECT --to-ports 53/d' /etc/firewall.user -echo "iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53" >> /etc/firewall.user -echo "iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53" >> /etc/firewall.user - -sed -i '/option disabled/d' /etc/config/wireless -sed -i '/set wireless.radio${devidx}.disabled/d' /lib/wifi/mac80211.sh -wifi up - -sed -i '/DISTRIB_REVISION/d' /etc/openwrt_release -echo "DISTRIB_REVISION='R8.1.8 By Lean'" >> /etc/openwrt_release -sed -i '/DISTRIB_DESCRIPTION/d' /etc/openwrt_release -echo "DISTRIB_DESCRIPTION='OpenWrt '" >> /etc/openwrt_release - -sed -i 's/cbi.submit\"] = true/cbi.submit\"] = \"1\"/g' /usr/lib/lua/luci/dispatcher.lua - -rm -rf /tmp/luci-modulecache/ -rm -f /tmp/luci-indexcache - -exit 0 - - - diff --git a/package/lean/default-settings/i18n/default.zh-cn.po b/package/lean/default-settings/i18n/default.zh-cn.po deleted file mode 100644 index b87b9c714..000000000 --- a/package/lean/default-settings/i18n/default.zh-cn.po +++ /dev/null @@ -1,53 +0,0 @@ -msgid "Processor" -msgstr "处理器" - -msgid "Architecture" -msgstr "架构" - -msgid "CPU Temperature" -msgstr "CPU温度" - -msgid "CPU Info" -msgstr "CPU信息" - -msgid "CPU Model" -msgstr "处理器型号" - -msgid "CPU frequency" -msgstr "CPU频率" - -msgid "RAM frequency" -msgstr "RAM频率" - -msgid "Flash Size" -msgstr "闪存大小" - -msgid "Free Memory" -msgstr "释放内存" - -msgid "RUNNING" -msgstr "运行中" - -msgid "NOT RUNNING" -msgstr "未运行" - -msgid "ZRam Settings" -msgstr "ZRam 设置" - -msgid "ZRam Compression Algorithm" -msgstr "ZRAM压缩算法" - -msgid "ZRam Compression Streams" -msgstr "ZRam 压缩数据流线程数" - -msgid "ZRam Size" -msgstr "ZRam 大小" - -msgid "Size of the ZRam device in megabytes" -msgstr "划分给ZRam 分区的内存大小(MB),推荐留空由系统自动管理" - -msgid "Number of parallel threads used for compression" -msgstr "用于压缩内存数据的CPU并发线程数" - -msgid "Swap" -msgstr "虚拟内存" diff --git a/package/lean/default-settings/i18n/more.zh-cn.po b/package/lean/default-settings/i18n/more.zh-cn.po deleted file mode 100644 index c602be14c..000000000 --- a/package/lean/default-settings/i18n/more.zh-cn.po +++ /dev/null @@ -1,1037 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Last-Translator: Hsing-Wang Liao \n" - -msgid "%d hour" -msgstr "%d 小时" - -msgid "%d minute" -msgstr "%d 分钟" - -msgid "%d minutes" -msgstr "%d 分钟" - -msgid "%d second" -msgstr "%d 秒" - -msgid "%d seconds" -msgstr "%d 秒" - -msgid "" -"Acceptable values: 1-100. This many Tracking IP addresses must respond for " -"the link to be deemed up" -msgstr "" -"取值范围: 1-100。这个设置项指定了当多少个 IP 地址能够连通时接口会被认为在线" - -msgid "Acceptable values: 1-1000. Defaults to 1 if not set" -msgstr "取值范围: 1-100。如果不填写,默认值为 1" - -msgid "Advanced" -msgstr "高级" - -msgid "Check IP rules" -msgstr "检查 IP 规则" - -msgid "Check routing table" -msgstr "检查路由表" - -msgid "Collecting data..." -msgstr "正在收集数据..." - -msgid "Configuration" -msgstr "配置" - -msgid "Currently Configured Interfaces" -msgstr "当前配置的接口" - -msgid "Currently Configured Members" -msgstr "当前配置的成员" - -msgid "Currently Configured Policies" -msgstr "当前配置的策略" - -msgid "Destination address" -msgstr "目标地址" - -msgid "Destination port" -msgstr "目标端口" - -msgid "Detailed Status" -msgstr "详细状态" - -msgid "Diagnostic Results" -msgstr "诊断结果" - -msgid "Diagnostics" -msgstr "诊断" - -msgid "Disabled" -msgstr "禁用" - -msgid "" -"Downed interface will be deemed up after this many successful ping tests" -msgstr "当 Ping 成功次数达到这个数值后,已经被认为离线的接口将会重新上线" - -msgid "Enabled" -msgstr "启用" - -msgid "Error collecting troubleshooting information" -msgstr "收集故障排除信息时出错" - -msgid "Errors" -msgstr "错误" - -msgid "Failure interval" -msgstr "故障检测间隔" - -msgid "Flush conntrack table" -msgstr "刷新连接跟踪表" - -msgid "Flush global firewall conntrack table on interface events" -msgstr "在接口事件触发时刷新全局防火墙连接跟踪表" - -msgid "Hotplug Script" -msgstr "Hotplug 脚本" - -msgid "Hotplug ifdown" -msgstr "Hotplug ifdown" - -msgid "Hotplug ifup" -msgstr "Hotplug ifup" - -msgid "IPset" -msgstr "IPset" - -msgid "IPv4" -msgstr "IPv4" - -msgid "IPv6" -msgstr "IPv6" - -msgid "Interface" -msgstr "接口" - -msgid "Interface Status" -msgstr "接口状态" - -msgid "Interface down" -msgstr "接口离线" - -msgid "Interface up" -msgstr "接口上线" - -msgid "Interface will be deemed down after this many failed ping tests" -msgstr "当 Ping 失败次数达到这个数值后接口会被认为离线" - -msgid "Interfaces" -msgstr "接口" - -msgid "Internet Protocol" -msgstr "互联网协议" - -msgid "Last 50 MWAN systemlog entries. Newest entries sorted at the top :" -msgstr "最近 50 条 MWAN 系统日志,最新条目排在顶部:" - -msgid "Last resort" -msgstr "备用成员" - -msgid "Load Balancing" -msgstr "负载均衡" - -msgid "Loading" -msgstr "载入中" - -msgid "MWAN Config" -msgstr "MWAN 配置文件" - -msgid "MWAN Detailed Status" -msgstr "MWAN 详细状态" - -msgid "MWAN Interface Configuration" -msgstr "MWAN 接口配置" - -msgid "MWAN Interface Configuration - %s" -msgstr "MWAN 接口配置 - %s" - -msgid "MWAN Interface Diagnostics" -msgstr "MWAN 接口诊断" - -msgid "MWAN Interface Live Status" -msgstr "MWAN 接口实时状态" - -msgid "MWAN Interface Systemlog" -msgstr "MWAN 接口系统日志" - -msgid "MWAN Member Configuration" -msgstr "MWAN 成员配置" - -msgid "MWAN Member Configuration - %s" -msgstr "MWAN 成员配置 - %s" - -msgid "MWAN Policy Configuration" -msgstr "MWAN 策略配置" - -msgid "MWAN Policy Configuration - %s" -msgstr "MWAN 策略配置 - %s" - -msgid "MWAN Rule Configuration" -msgstr "MWAN 规则配置" - -msgid "MWAN Rule Configuration - %s" -msgstr "MWAN 规则配置 - %s" - -msgid "MWAN Service Control" -msgstr "MWAN 服务控制" - -msgid "" -"MWAN supports up to 250 physical and/or logical interfaces
    MWAN " -"requires that all interfaces have a unique metric configured in /etc/config/" -"network
    Names must match the interface name found in /etc/config/" -"network (see advanced tab)
    Names may contain characters A-Z, a-z, 0-9, " -"_ and no spaces
    Interfaces may not share the same name as configured " -"members, policies or rules" -msgstr "" -"MWAN 支持最多 250 个物理或逻辑接口。
    MWAN 要求所有接口必须在 /etc/" -"config/network 中设定唯一的网关跃点。
    名称必须与 /etc/config/network 中" -"的接口名称匹配。(可查看“高级”选项卡)
    名称允许包括A-Z、a-z、0-9、_ 但是" -"不能有空格。
    接口不应该与成员、策略、规则中的任意一个设置项使用相同的名" -"称" - -msgid "" -"May be entered as a single or multiple port(s) (eg \"22\" or \"80,443\") or " -"as a portrange (eg \"1024:2048\") without quotes" -msgstr "" -"可以输入一个或多个端口(例如 \"22\" 或者 \"80,443\")或者是一个端口范围(例" -"如 \"1024:2048\")不含引号" - -msgid "Member" -msgstr "成员" - -msgid "Member used" -msgstr "使用的成员" - -msgid "Members" -msgstr "成员" - -msgid "" -"Members are profiles attaching a metric and weight to an MWAN interface
    Names may contain characters A-Z, a-z, 0-9, _ and no spaces
    Members " -"may not share the same name as configured interfaces, policies or rules" -msgstr "" -"“成员”用来设置每一个 MWAN 接口的跃点数(即接口优先级)和所占比重。
    名称" -"允许包括 A-Z、 a-、0-9、_ 但是不能有空格。
    成员不应该与接口、策略、规则" -"中的任意一个设置项使用相同的名称" - -msgid "Members assigned" -msgstr "分配的成员" - -msgid "Metric" -msgstr "跃点数" - -msgid "" -"Name of IPset rule. Requires IPset rule in /etc/dnsmasq.conf (eg \"ipset=/" -"youtube.com/youtube\")" -msgstr "" -"匹配 IPset 规则列表名称。需要先配置 /etc/dnsmasq.conf 中的 IPset 规则 (例如: " -"\"ipset=/youtube.com/youtube\")" - -msgid "Network Config" -msgstr "网络配置文件" - -msgid "No" -msgstr "否" - -msgid "No MWAN interfaces found" -msgstr "没有找到 MWAN 接口" - -msgid "No MWAN systemlog history found" -msgstr "没有在系统日志中找到 MWAN 历史信息" - -msgid "No detailed status information available" -msgstr "没有状态详细信息可用" - -msgid "No diagnostic results returned" -msgstr "没有返回诊断结果" - -msgid "No protocol specified" -msgstr "未指定协议" - -msgid "Offline" -msgstr "离线" - -msgid "Online (tracking active)" -msgstr "在线(追踪启用中)" - -msgid "Online (tracking off)" -msgstr "在线(追踪已关闭)" - -msgid "Overview" -msgstr "概况" - -msgid "Ping count" -msgstr "Ping 计数" - -msgid "Ping default gateway" -msgstr "Ping 默认网关" - -msgid "Ping interval" -msgstr "Ping 间隔" - -msgid "Ping interval during failure detection" -msgstr "故障检测期间的 Ping 间隔" - -msgid "Ping interval during failure recovering" -msgstr "故障恢复期间的 Ping 间隔" - -msgid "Ping size" -msgstr "Ping 大小" - -msgid "Ping timeout" -msgstr "Ping 超时" - -msgid "Ping tracking IP" -msgstr "Ping 跟踪 IP" - -msgid "Policies" -msgstr "策略" - -msgid "" -"Policies are profiles grouping one or more members controlling how MWAN " -"distributes traffic
    Member interfaces with lower metrics are used " -"first. Interfaces with the same metric load-balance
    Load-balanced " -"member interfaces distribute more traffic out those with higher weights
    Names may contain characters A-Z, a-z, 0-9, _ and no spaces. Names must be " -"15 characters or less
    Policies may not share the same name as " -"configured interfaces, members or rules" -msgstr "" -"“策略”把成员进行分组,告诉 MWAN 如何分配“规则”中使用这一策略的流量
    拥有" -"较低跃点数的成员将会被优先使用。拥有相同跃点数的成员把流量进行负载均衡。
    进行负载均衡的成员之间拥有较高比重的成员将会被分配到更多流量。
    名称允许" -"包括A-Z、a-z、0-9、_ 但是不能有空格。名称应该在 15 个字符以内
    策略不应该" -"与接口、成员、规则中的任意一个设置项使用相同的名称" - -msgid "Policy" -msgstr "策略" - -msgid "Policy assigned" -msgstr "分配的策略" - -msgid "Protocol" -msgstr "通信协议" - -msgid "Recovery interval" -msgstr "故障恢复间隔" - -msgid "Restart MWAN" -msgstr "重启 MWAN" - -msgid "Restore default hotplug script" -msgstr "恢复默认的 hotplug 脚本" - -msgid "Restore..." -msgstr "恢复..." - -msgid "Rule" -msgstr "规则" - -msgid "Rules" -msgstr "规则" - -msgid "" -"Rules specify which traffic will use a particular MWAN policy based on IP " -"address, port or protocol
    Rules are matched from top to bottom. Rules " -"below a matching rule are ignored. Traffic not matching any rule is routed " -"using the main routing table
    Traffic destined for known (other than " -"default) networks is handled by the main routing table. Traffic matching a " -"rule, but all WAN interfaces for that policy are down will be blackholed
    Names may contain characters A-Z, a-z, 0-9, _ and no spaces
    Rules may " -"not share the same name as configured interfaces, members or policies" -msgstr "" -"“规则”基于 IP 地址、协议、端口把流量划分到指定的“策略”中。
    规则按照从上" -"到下的顺序进行匹配。除了第一条能够匹配一次通信的规则以外,其它规则将被忽略。" -"不匹配任何规则的通信将会由系统默认路由表进行。
    来自已知的网络的转发流量" -"由系统默认路由表接手,然后 MWAN 从中匹配出相应的流量并转移到 MWAN 自己的路由" -"表。但是所有被划分到一个无法使用的策略的流量将会无法正常进行路由。
    名称" -"允许包括A-Z、a-z、0-9、_ 但是不能有空格。
    规则不应该与接口、成员、策略中" -"的任意一个设置项使用相同的名称" - -msgid "Seconds. Acceptable values: 1-1000000. Defaults to 600 if not set" -msgstr "单位为秒。接受的值: 1-1000000。留空则使用默认值 600 秒" - -msgid "Source address" -msgstr "源地址" - -msgid "Source port" -msgstr "源端口" - -msgid "Start MWAN" -msgstr "启动 MWAN" - -msgid "Sticky" -msgstr "粘滞模式" - -msgid "Sticky timeout" -msgstr "粘滞超时" - -msgid "Stop MWAN" -msgstr "停止 MWAN" - -msgid "Supports CIDR notation (eg \"192.168.100.0/24\") without quotes" -msgstr "支持 CIDR 记法(例如: \"192.168.100.0/24\")不含引号" - -msgid "There are currently %d of 250 supported interfaces configured" -msgstr "当前已配置 %d 个接口,最大支持 250 个" - -msgid "" -"This displays the metric assigned to this interface in /etc/config/network" -msgstr "这里显示了这个接口在 /etc/config/network 中配置的跃点数" - -msgid "" -"This hostname or IP address will be pinged to determine if the link is up or " -"down. Leave blank to assume interface is always online" -msgstr "通过 ping 此主机或 IP 地址来确定链路是否在线。留空则认为接口始终在线" - -msgid "This section allows you to modify the contents of /etc/config/mwan3" -msgstr "这里允许你修改 /etc/config/mwan3 的内容" - -msgid "This section allows you to modify the contents of /etc/config/network" -msgstr "这里允许你修改 /etc/config/network 的内容" - -msgid "This section allows you to modify the contents of /etc/config/wireless" -msgstr "这里允许你修改 /etc/config/wireless 的内容" - -msgid "" -"This section allows you to modify the contents of /etc/hotplug.d/iface/16-" -"mwancustom
    This is useful for running system commands and/or scripts " -"based on interface ifup or ifdown hotplug events

    Notes:
    The " -"first line of the script must be "#!/bin/sh" without quotes
    Lines beginning with # are comments and are not executed

    Available variables:
    $ACTION is the hotplug event (ifup, ifdown)
    " -"$INTERFACE is the interface name (wan1, wan2, etc.)
    $DEVICE is the " -"device name attached to the interface (eth0.1, eth1, etc.)" -msgstr "" -"这里允许你修改 /etc/hotplug.d/iface/16-mwancustom 的内容
    这可以在接口 " -"ifup 或 ifdown Hotplug 事件时运行系统命令或脚本

    注意:
    脚本的" -"第一行必须是 "#!/bin/sh" 不含引号
    以#开头的行是注释,不会执行" -"

    可用变量:
    $ACTION 是 Hotplug 事件(ifup, ifdown)
    " -"$INTERFACE 是接口名称(wan1、wan2 等)
    $DEVICE 是连接到接口的设备名称 " -"(eth0.1、eth1 等)" - -msgid "Tracking IP" -msgstr "追踪的 IP" - -msgid "Tracking hostname or IP address" -msgstr "追踪的主机或 IP 地址" - -msgid "Tracking reliability" -msgstr "追踪可靠性" - -msgid "Traffic Rules" -msgstr "流量规则" - -msgid "" -"Traffic from the same source IP address that previously matched this rule " -"within the sticky timeout period will use the same WAN interface" -msgstr "" -"来自相同源 IP 的流量,如果已经匹配过此规则并且在粘滞超时时间内,将会使用相同" -"的 WAN 接口" - -msgid "Troubleshooting" -msgstr "故障排除" - -msgid "Troubleshooting Data" -msgstr "故障排除数据" - -msgid "View the contents of /etc/protocols for protocol descriptions" -msgstr "请查看 /etc/protocols 获取可选协议详情" - -msgid "WARNING: %d interfaces are configured exceeding the maximum of 250!" -msgstr "警告: 已配置 %d 个接口,超过最大值 250!" - -msgid "" -"WARNING: Some policies have names exceeding the maximum of 15 characters!" -msgstr "警告: 某些策略的名称超过了 15 个字符!" - -msgid "" -"WARNING: some interfaces are configured incorrectly or not at all in /etc/" -"config/network!" -msgstr "警告: 某些接口配置不正确或未配置到 /etc/config/network!" - -msgid "" -"WARNING: some interfaces have a higher reliability requirement than there " -"are tracking IP addresses!" -msgstr "警告: 某些接口的追踪可靠性要求大于了追踪 IP 地址总数!" - -msgid "" -"WARNING: some interfaces have duplicate metrics configured in /etc/config/" -"network!" -msgstr "警告: 某些接口在 /etc/config/network 中配置了相同的跃点数!" - -msgid "" -"WARNING: some interfaces have no default route in the main routing table!" -msgstr "警告: 某些接口在主路由表中没有默认路由!" - -msgid "" -"WARNING: some interfaces have no metric configured in /etc/config/network!" -msgstr "警告: 某些接口没有在 /etc/config/network 中配置跃点数!" - -msgid "" -"WARNING: some rules have a port configured with no or improper protocol " -"specified! Please configure a specific protocol!" -msgstr "" -"警告: 某些规则指定了端口却没有配置或配置了不正确的协议,请重新指定协议!" - -msgid "" -"WARNING: this and other interfaces have duplicate metrics configured in /etc/" -"config/network!" -msgstr "警告: 此接口和其他接口在 /etc/config/network 中配置了相同的跃点数!" - -msgid "" -"WARNING: this interface has a higher reliability requirement than there are " -"tracking IP addresses!" -msgstr "警告: 此接口的追踪可靠性要求大于了追踪 IP 地址总数!" - -msgid "WARNING: this interface has no default route in the main routing table!" -msgstr "警告: 此接口在主路由表中没有默认路由!" - -msgid "" -"WARNING: this interface has no metric configured in /etc/config/network!" -msgstr "警告: 此接口没有在 /etc/config/network 中配置跃点数!" - -msgid "" -"WARNING: this interface is configured incorrectly or not at all in /etc/" -"config/network!" -msgstr "警告: 此接口配置不正确或未配置到 /etc/config/network!" - -msgid "" -"WARNING: this policy's name is %d characters exceeding the maximum of 15!" -msgstr "警告: 此策略的名称具有 %d 个字符,超过了 15 个字符!" - -msgid "" -"WARNING: this rule is incorrectly configured with no or improper protocol " -"specified! Please configure a specific protocol!" -msgstr "警告: 此规则没有配置或配置了不正确的协议,请重新指定协议!" - -msgid "Waiting for MWAN to %s..." -msgstr "等待 MWAN %s..." - -msgid "Waiting for diagnostic results..." -msgstr "等待诊断结果..." - -msgid "Weight" -msgstr "比重" - -msgid "" -"When all policy members are offline use this behavior for matched traffic" -msgstr "当所有策略成员都无法使用的时候,对使用该策略的流量使用这个操作" - -msgid "Wireless Config" -msgstr "无线配置" - -msgid "Yes" -msgstr "是" - -msgid "always" -msgstr "总是" - -msgid "blackhole (drop)" -msgstr "黑洞(丢弃)" - -msgid "default (use main routing table)" -msgstr "默认(使用主路由表)" - -msgid "ifdown" -msgstr "ifdown" - -msgid "ifup" -msgstr "ifup" - -msgid "never" -msgstr "从不" - -msgid "restart" -msgstr "" - -msgid "start" -msgstr "" - -msgid "stop" -msgstr "" - -msgid "unreachable (reject)" -msgstr "不可达(拒绝)" - -msgid "%d IPv4-only hosts" -msgstr "%d 个主机仅支持 IPv4" - -msgid "%d IPv6-only hosts" -msgstr "%d 个主机仅支持 IPv6" - -msgid "%d dual-stack hosts" -msgstr "%d 个双协议栈主机" - -msgid "%s and %s" -msgstr "%s 和 %s" - -msgid "%s, %s and %s" -msgstr "%s, %s 和 %s" - -msgid "-1 - Restart every last day of month" -msgstr "-1 - 每月的最后一天重新开始" - -msgid "-7 - Restart a week before end of month" -msgstr "-7 - 每月底前一周重新开始" - -msgid "1 - Restart every 1st of month" -msgstr "1 - 每月的第一天重新开始" - -msgid "10m - frequent commits at the expense of flash wear" -msgstr "10m - 频繁提交,闪存损耗的开销也增大" - -msgid "12h - compromise between risk of data loss and flash wear" -msgstr "12h - 平衡统计数据丢失的风险以及闪存使用寿命" - -msgid "24h - least flash wear at the expense of data loss risk" -msgstr "24h - 以数据丢失风险的代价换取最小的闪存损耗" - -msgid "30s - refresh twice per minute for reasonably current stats" -msgstr "30s - 每分钟刷新二次以获得较准确的当前统计值" - -msgid "5m - rarely refresh to avoid frequently clearing conntrack counters" -msgstr "5m - 较少刷新以避免频繁清除连接跟踪计数器" - -msgid "60s - commit minutely, useful for non-flash storage" -msgstr "60s - 每分钟提交,适用于非闪存类型存储" - -msgid "0 connections" -msgstr "连接:0" - -msgid "0 hosts" -msgstr "主机:0" - -msgid "0% IPv6 support rate among hosts" -msgstr "支持 IPv6 的主机比例:0%" - -msgid "0B total IPv6 download" -msgstr "IPv6 总下载量:0B" - -msgid "0% of the total traffic is IPv6" -msgstr "IPv6 流量比例:0%" - -msgid "0B total IPv6 upload" -msgstr "IPv6 总上传量:0B" - -msgid "0 cause the most connections" -msgstr "0 是连接数最多的协议" - -msgid "0 cause the most download" -msgstr "0 是下载量最大的协议" - -msgid "0 cause the most upload" -msgstr "0 是上传量最大的协议" - -msgid "0 different application protocols" -msgstr "0 种不同的应用层协议" - -msgid "0 download" -msgstr "下载:0" - -msgid "0 upload" -msgstr "上传:0" - -msgid "Accounting period" -msgstr "统计周期" - -msgid "Advanced Settings" -msgstr "高级设置" - -msgid "Application" -msgstr "应用层协议" - -msgid "Application Protocols" -msgstr "应用层协议" - -msgid "Backup" -msgstr "备份" - -msgid "Bandwidth Monitor" -msgstr "带宽监控" - -msgid "CSV, grouped by IP" -msgstr "CSV,按 IP 分组" - -msgid "CSV, grouped by MAC" -msgstr "CSV,按 MAC 分组" - -msgid "CSV, grouped by protocol" -msgstr "CSV,按协议分组" - -msgid "" -"Changing the accounting interval type will invalidate existing databases!" -"
    Download backup." -msgstr "" -"更改统计周期类型会使现有数据库无效!
    下载备份." - -msgid "" -"Choose \"Day of month\" to restart the accounting period monthly on a " -"specific date, e.g. every 3rd. Choose \"Fixed interval\" to restart the " -"accounting period exactly every N days, beginning at a given date." -msgstr "" -"选择“每月的某一天”来设置统计周期的重启时间,例如:每个月的第 3 天。选择“固定周" -"期”来设置从给定日期开始每 N 天重启统计周期。" - -msgid "Commit interval" -msgstr "提交间隔" - -msgid "Compress database" -msgstr "压缩数据库" - -msgid "Configuration" -msgstr "配置" - -msgid "Conn." -msgstr "连接" - -msgid "Connections" -msgstr "连接" - -msgid "Connections / Host" -msgstr "连接 / 主机" - -msgid "Database directory" -msgstr "数据库目录" - -msgid "" -"Database storage directory. One file per accounting period will be placed " -"into this directory." -msgstr "数据库存储目录。每个“统计周期”的文件将被放到这个目录中。" - -msgid "Day of month" -msgstr "每月的某一天" - -msgid "" -"Day of month to restart the accounting period. Use negative values to count " -"towards the end of month, e.g. \"-5\" to specify the 27th of July or the " -"24th of Februrary." -msgstr "" -"每个月重启统计周期的日期。使用负数表示从月底开始计算,例如:\"-5\" 可以表" -"示 7 月份的 27 号或者 2 月份的 24 号。" - -msgid "Display" -msgstr "显示" - -msgid "Down. (Bytes / Pkts.)" -msgstr "下载(字节 / 数据包)" - -msgid "Download (Bytes / Packets)" -msgstr "下载(字节 / 数据包)" - -msgid "Download / Application" -msgstr "下载 / 应用层协议" - -msgid "Download Database Backup" -msgstr "下载数据库备份" - -msgid "Dualstack enabled hosts" -msgstr "双协议栈主机" - -msgid "Due date" -msgstr "重置日期" - -msgid "Export" -msgstr "导出" - -msgid "Family" -msgstr "协议类型" - -msgid "Fixed interval" -msgstr "固定周期" - -msgid "Force reload…" -msgstr "强制重新加载..." - -msgid "General Settings" -msgstr "基本设置" - -msgid "Generate Backup" -msgstr "生成备份" - -msgid "Host" -msgstr "主机" - -msgid "Hostname: example.org" -msgstr "主机名:example.org" - -msgid "IPv4 vs. IPv6" -msgstr "IPv4 与 IPv6" - -msgid "IPv6" -msgstr "IPv6" - -msgid "Interval" -msgstr "周期" - -msgid "" -"Interval at which the temporary in-memory database is committed to the " -"persistent database directory." -msgstr "将内存中的临时数据库提交到持久性数据库目录的间隔时间。" - -msgid "" -"Interval at which traffic counters of still established connections are " -"refreshed from netlink information." -msgstr "从 netlink 信息中刷新“已建立连接”的流量计数器的间隔时间。" - -msgid "Invalid or empty backup archive" -msgstr "备份存档无效或为空" - -msgid "JSON dump" -msgstr "JSON 输出" - -msgid "Length of accounting interval in days." -msgstr "统计周期(天)。" - -msgid "Local interfaces" -msgstr "本地接口" - -msgid "Local subnets" -msgstr "本地子网" - -msgid "MAC" -msgstr "MAC" - -msgid "Maximum entries" -msgstr "最大条目" - -msgid "" -"Maximum number of accounting periods to keep, use zero to keep databases " -"forever." -msgstr "保留的统计周期数据库的最大数量,设置 0 表示不限制。" - -msgid "Netlink Bandwidth Monitor" -msgstr "网络带宽监视器" - -msgid "Netlink Bandwidth Monitor - Backup / Restore" -msgstr "网络带宽监视器 - 备份 / 恢复" - -msgid "Netlink Bandwidth Monitor - Configuration" -msgstr "网络带宽监视器 - 配置" - -msgid "No data recorded yet." -msgstr "暂无数据记录。" - -msgid "Only conntrack streams from or to any of these networks are counted." -msgstr "仅统计来自或目标为这些网络接口的连接流量。" - -msgid "Only conntrack streams from or to any of these subnets are counted." -msgstr "仅统计来自或目标为这些子网的连接流量。" - -msgid "Preallocate database" -msgstr "预分配数据库" - -msgid "Protocol" -msgstr "协议" - -msgid "Protocol Mapping" -msgstr "协议映射" - -msgid "" -"Protocol mappings to distinguish traffic types per host, one mapping per " -"line. The first value specifies the IP protocol, the second value the port " -"number and the third column is the name of the mapped protocol." -msgstr "" -"协议映射用于区分流量类型,每行一条。第一个值指定 IP 协议类型,第二个值是" -"端口号,第三个值是映射的协议名称。" - -msgid "Refresh interval" -msgstr "刷新间隔" - -msgid "Restore" -msgstr "恢复" - -msgid "Restore Database Backup" -msgstr "恢复数据库备份" - -msgid "Select accounting period:" -msgstr "选择统计周期:" - -msgid "Source IP" -msgstr "源 IP" - -msgid "Start date" -msgstr "起始日期" - -msgid "Start date of the first accounting period, e.g. begin of ISP contract." -msgstr "第一个统计周期的起始日期,例如:ISP 合约的起始日期。" - -msgid "Stored periods" -msgstr "储存周期" - -msgid "" -"The Netlink Bandwidth Monitor (nlbwmon) is a lightweight, efficient traffic " -"accounting program keeping track of bandwidth usage per host and protocol." -msgstr "" -"网络带宽监视器(nlbwmon)是一个轻量、高效的流量统计程序,可以统计每个主机和" -"协议的带宽使用情况。" - -msgid "The following database files have been restored: %s" -msgstr "以下数据库文件已恢复:%s" - -msgid "" -"The maximum amount of entries that should be put into the database, setting " -"the limit to 0 will allow databases to grow indefinitely." -msgstr "数据库中的最大条目数量, 设置为 0 将允许数据库无限增长。" - -msgid "Traffic / Host" -msgstr "流量 / 主机" - -msgid "Traffic Distribution" -msgstr "流量分布" - -msgid "Up. (Bytes / Pkts.)" -msgstr "上传(字节 / 数据包)" - -msgid "Upload (Bytes / Packets)" -msgstr "上传(字节 / 数据包)" - -msgid "Upload / Application" -msgstr "上传 / 应用层协议" - -msgid "Vendor: Example Corp." -msgstr "供应商: Example Corp." - -msgid "Warning" -msgstr "警告" - -msgid "" -"Whether to gzip compress archive databases. Compressing the database files " -"makes accessing old data slightly slower but helps to reduce storage " -"requirements." -msgstr "" -"是否使用 gzip 压缩数据库存档。压缩数据库文件会使访问旧数据稍微慢一些, 但有助" -"于减少存储占用空间。" - -msgid "" -"Whether to preallocate the maximum possible database size in memory. This is " -"mainly useful for memory constrained systems which might not be able to " -"satisfy memory allocation after longer uptime periods." -msgstr "" -"是否预先分配数据库最大可能占用的内存大小。这主要适用于内存较小系统,这些系统" -"在长时间运行之后可能无法满足数据库的内存需求。" - -msgid "no traffic" -msgstr "无流量数据" - -msgid "other" -msgstr "其他" - -msgid "Enable IGMP snooping" -msgstr "开启 IGMP snooping" - -msgid "Enables IGMP snooping on this bridge" -msgstr "在此桥接上启用 IGMP snooping 组播(多播)" - -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -msgid "Action" -msgstr "动作" - -msgid "Advanced Reboot" -msgstr "双分区启动切换" - -msgid "Alternative" -msgstr "备选" - -msgid "Cancel" -msgstr "取消" - -msgid "Confirm" -msgstr "确定" - -msgid "Current" -msgstr "当前" - -msgid "Firmware/OS (Kernel)" -msgstr "固件/系统 (内核)" - -msgid "Partition" -msgstr "分区" - -msgid "Partitions" -msgstr "分区" - -msgid "Perform power off..." -msgstr "点击关机..." - -msgid "Power Off Device" -msgstr "关闭设备" - -msgid "Proceed" -msgstr "处理" - -msgid "Reboot Device to an Alternative Partition" -msgstr "重启设备到备选分区" - -msgid "Reboot to alternative partition..." -msgstr "重启到备选分区" - -msgid "Reboot to current partition" -msgstr "重启到当前分区" - -msgid "Rebooting..." -msgstr "正在重启..." - -msgid "Shutting down..." -msgstr "正在关闭..." - -msgid "Status" -msgstr "状态" - -msgid "" -"The system is rebooting now.
    DO NOT POWER OFF THE DEVICE!
    Wait a " -"few minutes before you try to reconnect. It might be necessary to renew the " -"address of your computer to reach the device again, depending on your " -"settings." -msgstr "" - -msgid "" -"The system is rebooting to an alternative partition now.
    DO NOT POWER " -"OFF THE DEVICE!
    Wait a few minutes before you try to reconnect. It " -"might be necessary to renew the address of your computer to reach the device " -"again, depending on your settings." -msgstr "" - -msgid "" -"The system is shutting down now.
    DO NOT POWER OFF THE DEVICE!
    It " -"might be necessary to renew the address of your computer to reach the device " -"again, depending on your settings." -msgstr "" - -msgid "" -"WARNING: An alternative partition might have its own settings and completely " -"different firmware.

    As your network configuration and WiFi SSID/" -"password on alternative partition might be different, you might have to " -"adjust your computer settings to be able to access your device once it " -"reboots.

    Please also be aware that alternative partition " -"firmware might not provide an easy way to switch active partition and boot " -"back to the currently active partition.

    Click \"Proceed\" below " -"to reboot device to an alternative partition." -msgstr "" - -msgid "" -"WARNING: Power off might result in a reboot on a device which doesn't " -"support power off.

    Click \"Proceed\" below to power off your " -"device." -msgstr "" - -msgid "Warning: There are unsaved changes that will get lost on reboot!" -msgstr "警告:某些设置没有保存,重启将导致丢失这些配置!" - -msgid "Warning: This system does not have two partitions!" -msgstr "警告:当前系统没有包括两个分区!" - -msgid "Warning: This system does not support powering off!" -msgstr "警告:本系统不支持软关机!" - diff --git a/package/lean/default-settings/i18n/sqm.zh-cn.po b/package/lean/default-settings/i18n/sqm.zh-cn.po deleted file mode 100644 index 02a706de5..000000000 --- a/package/lean/default-settings/i18n/sqm.zh-cn.po +++ /dev/null @@ -1,203 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: luci-i18n-sqm\n" -"POT-Creation-Date: 2017-03-28 04:14+0800\n" -"PO-Revision-Date: 2017-03-28 04:15+0800\n" -"Last-Translator: \n" -"Language-Team: player131 \n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.10\n" -"X-Poedit-Basepath: .\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Poedit-KeywordsList: translate\n" -"X-Poedit-SearchPath-0: .\n" - -#: usr/lib/lua/luci/controller/sqm.lua:24 -msgid "SQM QoS" -msgstr "SQM QoS" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:25 -msgid "Smart Queue Management" -msgstr "智能队列管理" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:26 -msgid "" -"With SQM you can enable " -"traffic shaping, better mixing (Fair Queueing), active queue length " -"management (AQM) and prioritisation on one network interface." -msgstr "" -"使用 SQM 你可以启用流量整形,更好的混合" -"(公平列队)主动列队管理(AQM) 并设置网络接口优先级。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:32 -msgid "Queues" -msgstr "队列" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:33 -msgid "Basic Settings" -msgstr "基本设置" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:34 -msgid "Queue Discipline" -msgstr "列队规则" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:35 -msgid "Link Layer Adaptation" -msgstr "链路层适配" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:40 -msgid "Enable this SQM instance." -msgstr "启用此SQM实例" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:54 -msgid "" -"The SQM GUI has just enabled the sqm initscript on your behalf. Remember to " -"disable the sqm initscript manually under System Startup menu in case this " -"change was not wished for." -msgstr "" -"你刚刚开启了SQM随机启动功能,如果你不希望SQM随机启动,可以在系统启动菜单下手" -"动禁用。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:60 -msgid "Interface name" -msgstr "接口名称" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:70 -msgid "" -"Download speed (kbit/s) (ingress) set to 0 to selectively disable ingress " -"shaping:" -msgstr "下载速度(kbit/s)(入口)
    设置为0关闭入口控制:" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:74 -msgid "" -"Upload speed (kbit/s) (egress) set to 0 to selectively disable egress " -"shaping:" -msgstr "上传速度(kbit/s)(出口)
    设置为0关闭出口控制:" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:78 -msgid "" -"Create log file for this SQM instance under /var/run/sqm/${Inerface_name}." -"debug.log. Make sure to delete log files manually." -msgstr "" -"创建日志文件到/var/run/sqm/
    ${Inerface_name}.debug.log。
    请务必手动" -"删除日志文件。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:82 -msgid "Verbosity of SQM's output into the system log." -msgstr "SQM输出到系统日志的详细程度。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:86 usr/lib/lua/luci/model/cbi/sqm.lua:99 -#: usr/lib/lua/luci/model/cbi/sqm.lua:148 -#: usr/lib/lua/luci/model/cbi/sqm.lua:155 -#: usr/lib/lua/luci/model/cbi/sqm.lua:202 -#: usr/lib/lua/luci/model/cbi/sqm.lua:243 -msgid "default" -msgstr "默认" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:98 -msgid "" -"Queuing disciplines useable on this system. After installing a new qdisc, " -"you need to restart the router to see updates!" -msgstr "系统上可用的列队规则。安装新的队列规则后,重新启动路由器才会看到更新!" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:112 -msgid "Queue setup script" -msgstr "队列脚本设置" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:129 -msgid "" -"Show and Use Advanced Configuration. Advanced options will only be used as " -"long as this box is checked." -msgstr "选中该复选框显示高级配置。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:133 -msgid "Squash DSCP on inbound packets (ingress):" -msgstr "入站数据包压缩DSCP:" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:140 -msgid "Ignore DSCP on ingress:" -msgstr "忽略入站DSCP" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:147 -msgid "" -"Explicit congestion notification (ECN) status on inbound packets (ingress):" -msgstr "入站数据包的显式拥塞通知(ECN)状态" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:154 -msgid "" -"Explicit congestion notification (ECN) status on outbound packets (egress)." -msgstr "出站数据包的显式拥塞通知(ECN)状态" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:161 -msgid "" -"Show and Use Dangerous Configuration. Dangerous options will only be used as " -"long as this box is checked." -msgstr "选中该复选框显示危险配置。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:166 -msgid "Hard limit on ingress queues; leave empty for default." -msgstr "入站队列严格限制;留空为默认。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:173 -msgid "Hard limit on egress queues; leave empty for default." -msgstr "出站队列严格限制;留空为默认。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:180 -msgid "Latency target for ingress, e.g 5ms [units: s, ms, or us]; leave empty for automatic selection, put in the word default for the qdisc's default." -msgstr "入站延迟目标,例如 5ms [单位: s, ms, 或 us];留空为自动选择,default为列队规则默认值。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:185 -msgid "Latency target for egress, e.g. 5ms [units: s, ms, or us]; leave empty for automatic selection, put in the word default for the qdisc's default." -msgstr "出站延迟目标,例如 5ms [单位: s, ms, 或 us];留空为自动选择,default为列队规则默认值。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:192 -msgid "" -"Advanced option string to pass to the ingress queueing disciplines; no error " -"checking, use very carefully." -msgstr "传递到入站队列规则的高级选项字符串;没有错误检查。请谨慎使用!" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:196 -msgid "" -"Advanced option string to pass to the egress queueing disciplines; no error " -"checking, use very carefully." -msgstr "传递到出站队列规则的高级选项字符串;没有错误检查。请谨慎使用!" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:201 -msgid "Which link layer to account for:" -msgstr "对哪个链路层生效:" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:207 -msgid "Per Packet Overhead (byte):" -msgstr "每个数据包开销" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:216 -msgid "" -"Show Advanced Linklayer Options, (only needed if MTU > 1500). Advanced " -"options will only be used as long as this box is checked." -msgstr "" -"显示高级链路选项,(仅在MTU> 1500时才需要)。 只有选中此框时,才会使用高级选" -"项。" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:221 -msgid "" -"Maximal Size for size and rate calculations, tcMTU (byte); needs to be >= " -"interface MTU + overhead:" -msgstr "大小和速率计算的最大尺寸,tcMTU(byte); 需要> =接口MTU +开销:" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:228 -msgid "" -"Number of entries in size/rate tables, TSIZE; for ATM choose TSIZE = (tcMTU " -"+ 1) / 16:" -msgstr "大小/速率表中的条目数,TSIZE; 对于ATM选择TSIZE =(tcMTU + 1)/ 16:" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:235 -msgid "" -"Minimal packet size, MPU (byte); needs to be > 0 for ethernet size tables:" -msgstr "最小数据包大小,MPU(byte); 在以太网中需要>0:" - -#: usr/lib/lua/luci/model/cbi/sqm.lua:242 -msgid "Which linklayer adaptation mechanism to use; for testing only" -msgstr "使用哪个链路适应机制; 仅用于测试" \ No newline at end of file diff --git a/package/lean/default-settings/tools/po2lmo/Makefile b/package/lean/default-settings/tools/po2lmo/Makefile deleted file mode 100644 index ad2c13320..000000000 --- a/package/lean/default-settings/tools/po2lmo/Makefile +++ /dev/null @@ -1,12 +0,0 @@ - -INSTALL = install -PREFIX = /usr/bin - -po2lmo: src/po2lmo.o src/template_lmo.o - $(CC) $(LDFLAGS) -o src/po2lmo src/po2lmo.o src/template_lmo.o - -install: - $(INSTALL) -m 755 src/po2lmo $(PREFIX) - -clean: - $(RM) src/po2lmo src/*.o diff --git a/package/lean/default-settings/tools/po2lmo/src/po2lmo b/package/lean/default-settings/tools/po2lmo/src/po2lmo deleted file mode 100644 index 134a59c27bdeb6dc92f3cd225a5ce411f121ad8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17424 zcmeHPeRx#WnLm@6zzA_NV6+jiPBB=tIs}LmMcM>1d??@u0kM7zLo#6!lbJYk2cZ>( zos1sC zF1pX|zx#0YDV zEiM-`!~~GYtJw(|1RpXml!E3$a3VASH|%n`87=~5AP;025D9_23>7nlU|@dXRebjx zA>7Zq+zfrl^fUs?CBFnw1^5-a&-^PIM(Yuj34scrsb+&@q8n3w$JYu4kh zst0xY5SX_DfxaXEJ3so?TUFofx?t8XT7UDE3x9og>#x^7&U(*6pbqIPUkSXXXba!T z&Up6b-}Dn(pB@XCiu6UyY&^vGn*cHK*KK%}4c}$Mw8wmyztX1vb(4vh{O{PX)zRdC z%f@%v^!Y5<2ia*h`2{w7pA9E$_-|~u&4%Bx;eWH?VH>{AhP!NdlEr@3cfiJf(T1)?CW>A**~Yi+mjK$^i30^N29MdvX3tip_R9U zl3G(sER;${nnYwNW57zZ;5D0s%e9^_DFj& zq7mVL(JYmUc9jv7#;_(>sw$^Z+ujigZ4OZ@OpYWHqCEv8p|}Og;-dM!M2i*?%^iuB znAR-rO~w-%l*Y6+Sjj5W)Pxpl54XfbOp8a`L^5UwHzy(yNNt0JhImVRJZ4CT#PU@u zmn;p<^Up7&tm&Epb#5V54TodK<9|-f5+xY<3aP&)&q{L^NsMzQfX?pcfDXoJJ^5VJ z(sChZ&p9BHmYmjd0cV)&4O}7lE)g*B6p5YU76W@FE)ll_^Erz-d4fmvn^H^=W#~T> zDa#m>SOsHDbd`+Jv1TwX6~f0D6JizPi9*a~>=xo0#;~ZG@g%%=7^5RDWLzf1jf_!) zTE^v=>lvdWD;Q4^VijX_<{)Fdh#DAUvfaq|Vj=EidD3e2j5YNx@5|cMH zAaMmTn{lXLVtP4>+K8e364TpJAMrkk>GkMr;vR{sh^vWrN<5nw=82&WiLW89CEg@) zHSr4Kpu{!ALE>78*-Fuk#MKhBwW6DdeG;?PqO8!6SK@l&4q_qk3gT_VBOib;YZdWM z;z5an#Jhl=v`lhs15f z{luFj?jSx*9F$li9w4rjn7t%=hPYZ{_Lk@%u}@<5ny60fmAI35gjh(tn|O?P*!`kRh%;QlX{@l7D`m=7V zqkfJ8N1J=B|7B-X9k=4cPeT2*`|u|{Heu^D`bD72PFdge+w^cnl#Kj9`h@qzKOOJs z)~*zXNs;nL$4a`69ew+9$H2>D+VmgFjIU@@WkzpM<$OiuWXA3vf080Q7e56BB6X3J zbL;oR1t&{MbD)Ukp2J>LFYC>`k}A!8t$V95^}eGF3g)HCp%k(y4Npkhhh6y;S_yRz z>O*i7%1sZKwL0`RfO7@kkb?AQL2zk7FrTW(r@Z-88C2?TU<^Yh)1RWk==;d1r%^a) zJue=Ynk!EQxZ)ew_~9EkhpPX%99NYr~4gU zfzhGom539LtwX?pC=RB1Xe>gYk%PX$K1j%5R7j$_%?QtfG| z-CbhXkc(UL-*{*0ivKYO`j*How&s|r&G_gXxv5s(z)58OWI8bHfPd(*8s2k(6*}&MMz}e(PDU_>F zaO=dw(&$pzUyZD@k)9HZU5Q zU&=g~sGt2y!IDa-i~eYj%iZb?vR*Tl7T5>fxjT?8D=^`ss{~~)hAz@-T_$l0YGo4L zCULEWSY{FzD`L96%z^gxrgxNy2OmfG>Rwgl!r0E=dlnsS-L1QZYim)n)7hY_YwwBY z^Z7{jLRr_ z>PO%Y)S)Z$26;#LS7@IyMbT2ILbO7PK5U8(N>Tn5sR|`Zxw4?1R4z;pyP{l}w2JP` zD8zz#v&vh<_&FJ?KZNln88wPA)Pr?L`iQK0>I*dH5*TBueSAz=e@qdsKbG2P76A$i zFeT?3mW}1L37Gz-=6oWrIVzP$f#rGY7z; zK{XbGJa&V$3k>cGDfw(C^EY6guSa^H45DWmzYRL?tP0ijF`uD>E$0 zFkRkR%5pLs5{|5ljt+9z2J;8cfTmAW%DOT{N}x24e2~JlCaI2rt_+7y`Uqu&dOIv; ze~J8;taVnhvwLZ0m)ArrzANa;?&T0w#I7JF2Uht__Up6n%G@l5>bruNBnr$o4d!tR z?Wcfz4C;>;82N*oD�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 UeYAsP!>X?r%sz7vfoJObZ#|)5-T(jq diff --git a/package/lean/default-settings/tools/po2lmo/src/po2lmo.c b/package/lean/default-settings/tools/po2lmo/src/po2lmo.c deleted file mode 100644 index 0da792b68..000000000 --- a/package/lean/default-settings/tools/po2lmo/src/po2lmo.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * lmo - Lua Machine Objects - PO to LMO conversion tool - * - * Copyright (C) 2009-2012 Jo-Philipp Wich - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "template_lmo.h" - -static void die(const char *msg) -{ - fprintf(stderr, "Error: %s\n", msg); - exit(1); -} - -static void usage(const char *name) -{ - fprintf(stderr, "Usage: %s input.po output.lmo\n", name); - exit(1); -} - -static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream) -{ - if( fwrite(ptr, size, nmemb, stream) == 0 ) - die("Failed to write stdout"); -} - -static int extract_string(const char *src, char *dest, int len) -{ - int pos = 0; - int esc = 0; - int off = -1; - - for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ ) - { - if( (off == -1) && (src[pos] == '"') ) - { - off = pos + 1; - } - else if( off >= 0 ) - { - if( esc == 1 ) - { - switch (src[pos]) - { - case '"': - case '\\': - off++; - break; - } - dest[pos-off] = src[pos]; - esc = 0; - } - else if( src[pos] == '\\' ) - { - dest[pos-off] = src[pos]; - esc = 1; - } - else if( src[pos] != '"' ) - { - dest[pos-off] = src[pos]; - } - else - { - dest[pos-off] = '\0'; - break; - } - } - } - - return (off > -1) ? strlen(dest) : -1; -} - -static int cmp_index(const void *a, const void *b) -{ - uint32_t x = ((const lmo_entry_t *)a)->key_id; - uint32_t y = ((const lmo_entry_t *)b)->key_id; - - if (x < y) - return -1; - else if (x > y) - return 1; - - return 0; -} - -static void print_uint32(uint32_t x, FILE *out) -{ - uint32_t y = htonl(x); - print(&y, sizeof(uint32_t), 1, out); -} - -static void print_index(void *array, int n, FILE *out) -{ - lmo_entry_t *e; - - qsort(array, n, sizeof(*e), cmp_index); - - for (e = array; n > 0; n--, e++) - { - print_uint32(e->key_id, out); - print_uint32(e->val_id, out); - print_uint32(e->offset, out); - print_uint32(e->length, out); - } -} - -int main(int argc, char *argv[]) -{ - char line[4096]; - char key[4096]; - char val[4096]; - char tmp[4096]; - int state = 0; - int offset = 0; - int length = 0; - int n_entries = 0; - void *array = NULL; - lmo_entry_t *entry = NULL; - uint32_t key_id, val_id; - - FILE *in; - FILE *out; - - if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) ) - usage(argv[0]); - - memset(line, 0, sizeof(key)); - memset(key, 0, sizeof(val)); - memset(val, 0, sizeof(val)); - - while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) ) - { - if( state == 0 && strstr(line, "msgid \"") == line ) - { - switch(extract_string(line, key, sizeof(key))) - { - case -1: - die("Syntax error in msgid"); - case 0: - state = 1; - break; - default: - state = 2; - } - } - else if( state == 1 || state == 2 ) - { - if( strstr(line, "msgstr \"") == line || state == 2 ) - { - switch(extract_string(line, val, sizeof(val))) - { - case -1: - state = 4; - break; - default: - state = 3; - } - } - else - { - switch(extract_string(line, tmp, sizeof(tmp))) - { - case -1: - state = 2; - break; - default: - strcat(key, tmp); - } - } - } - else if( state == 3 ) - { - switch(extract_string(line, tmp, sizeof(tmp))) - { - case -1: - state = 4; - break; - default: - strcat(val, tmp); - } - } - - if( state == 4 ) - { - if( strlen(key) > 0 && strlen(val) > 0 ) - { - key_id = sfh_hash(key, strlen(key)); - val_id = sfh_hash(val, strlen(val)); - - if( key_id != val_id ) - { - n_entries++; - array = realloc(array, n_entries * sizeof(lmo_entry_t)); - entry = (lmo_entry_t *)array + n_entries - 1; - - if (!array) - die("Out of memory"); - - entry->key_id = key_id; - entry->val_id = val_id; - entry->offset = offset; - entry->length = strlen(val); - - length = strlen(val) + ((4 - (strlen(val) % 4)) % 4); - - print(val, length, 1, out); - offset += length; - } - } - - state = 0; - memset(key, 0, sizeof(key)); - memset(val, 0, sizeof(val)); - } - - memset(line, 0, sizeof(line)); - } - - print_index(array, n_entries, out); - - if( offset > 0 ) - { - print_uint32(offset, out); - fsync(fileno(out)); - fclose(out); - } - else - { - fclose(out); - unlink(argv[2]); - } - - fclose(in); - return(0); -} diff --git a/package/lean/default-settings/tools/po2lmo/src/template_lmo.c b/package/lean/default-settings/tools/po2lmo/src/template_lmo.c deleted file mode 100644 index 27205a722..000000000 --- a/package/lean/default-settings/tools/po2lmo/src/template_lmo.c +++ /dev/null @@ -1,328 +0,0 @@ -/* - * lmo - Lua Machine Objects - Base functions - * - * Copyright (C) 2009-2010 Jo-Philipp Wich - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "template_lmo.h" - -/* - * Hash function from http://www.azillionmonkeys.com/qed/hash.html - * Copyright (C) 2004-2008 by Paul Hsieh - */ - -uint32_t sfh_hash(const char *data, int len) -{ - uint32_t hash = len, tmp; - int rem; - - if (len <= 0 || data == NULL) return 0; - - rem = len & 3; - len >>= 2; - - /* Main loop */ - for (;len > 0; len--) { - hash += sfh_get16(data); - tmp = (sfh_get16(data+2) << 11) ^ hash; - hash = (hash << 16) ^ tmp; - data += 2*sizeof(uint16_t); - hash += hash >> 11; - } - - /* Handle end cases */ - switch (rem) { - case 3: hash += sfh_get16(data); - hash ^= hash << 16; - hash ^= data[sizeof(uint16_t)] << 18; - hash += hash >> 11; - break; - case 2: hash += sfh_get16(data); - hash ^= hash << 11; - hash += hash >> 17; - break; - case 1: hash += *data; - hash ^= hash << 10; - hash += hash >> 1; - } - - /* Force "avalanching" of final 127 bits */ - hash ^= hash << 3; - hash += hash >> 5; - hash ^= hash << 4; - hash += hash >> 17; - hash ^= hash << 25; - hash += hash >> 6; - - return hash; -} - -uint32_t lmo_canon_hash(const char *str, int len) -{ - char res[4096]; - char *ptr, prev; - int off; - - if (!str || len >= sizeof(res)) - return 0; - - for (prev = ' ', ptr = res, off = 0; off < len; prev = *str, off++, str++) - { - if (isspace(*str)) - { - if (!isspace(prev)) - *ptr++ = ' '; - } - else - { - *ptr++ = *str; - } - } - - if ((ptr > res) && isspace(*(ptr-1))) - ptr--; - - return sfh_hash(res, ptr - res); -} - -lmo_archive_t * lmo_open(const char *file) -{ - int in = -1; - uint32_t idx_offset = 0; - struct stat s; - - lmo_archive_t *ar = NULL; - - if (stat(file, &s) == -1) - goto err; - - if ((in = open(file, O_RDONLY)) == -1) - goto err; - - if ((ar = (lmo_archive_t *)malloc(sizeof(*ar))) != NULL) - { - memset(ar, 0, sizeof(*ar)); - - ar->fd = in; - ar->size = s.st_size; - - fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC); - - if ((ar->mmap = mmap(NULL, ar->size, PROT_READ, MAP_SHARED, ar->fd, 0)) == MAP_FAILED) - goto err; - - idx_offset = ntohl(*((const uint32_t *) - (ar->mmap + ar->size - sizeof(uint32_t)))); - - if (idx_offset >= ar->size) - goto err; - - ar->index = (lmo_entry_t *)(ar->mmap + idx_offset); - ar->length = (ar->size - idx_offset - sizeof(uint32_t)) / sizeof(lmo_entry_t); - ar->end = ar->mmap + ar->size; - - return ar; - } - -err: - if (in > -1) - close(in); - - if (ar != NULL) - { - if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) - munmap(ar->mmap, ar->size); - - free(ar); - } - - return NULL; -} - -void lmo_close(lmo_archive_t *ar) -{ - if (ar != NULL) - { - if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) - munmap(ar->mmap, ar->size); - - close(ar->fd); - free(ar); - - ar = NULL; - } -} - - -lmo_catalog_t *_lmo_catalogs = NULL; -lmo_catalog_t *_lmo_active_catalog = NULL; - -int lmo_load_catalog(const char *lang, const char *dir) -{ - DIR *dh = NULL; - char pattern[16]; - char path[PATH_MAX]; - struct dirent *de = NULL; - - lmo_archive_t *ar = NULL; - lmo_catalog_t *cat = NULL; - - if (!lmo_change_catalog(lang)) - return 0; - - if (!dir || !(dh = opendir(dir))) - goto err; - - if (!(cat = malloc(sizeof(*cat)))) - goto err; - - memset(cat, 0, sizeof(*cat)); - - snprintf(cat->lang, sizeof(cat->lang), "%s", lang); - snprintf(pattern, sizeof(pattern), "*.%s.lmo", lang); - - while ((de = readdir(dh)) != NULL) - { - if (!fnmatch(pattern, de->d_name, 0)) - { - snprintf(path, sizeof(path), "%s/%s", dir, de->d_name); - ar = lmo_open(path); - - if (ar) - { - ar->next = cat->archives; - cat->archives = ar; - } - } - } - - closedir(dh); - - cat->next = _lmo_catalogs; - _lmo_catalogs = cat; - - if (!_lmo_active_catalog) - _lmo_active_catalog = cat; - - return 0; - -err: - if (dh) closedir(dh); - if (cat) free(cat); - - return -1; -} - -int lmo_change_catalog(const char *lang) -{ - lmo_catalog_t *cat; - - for (cat = _lmo_catalogs; cat; cat = cat->next) - { - if (!strncmp(cat->lang, lang, sizeof(cat->lang))) - { - _lmo_active_catalog = cat; - return 0; - } - } - - return -1; -} - -static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash) -{ - unsigned int m, l, r; - uint32_t k; - - l = 0; - r = ar->length - 1; - - while (1) - { - m = l + ((r - l) / 2); - - if (r < l) - break; - - k = ntohl(ar->index[m].key_id); - - if (k == hash) - return &ar->index[m]; - - if (k > hash) - { - if (!m) - break; - - r = m - 1; - } - else - { - l = m + 1; - } - } - - return NULL; -} - -int lmo_translate(const char *key, int keylen, char **out, int *outlen) -{ - uint32_t hash; - lmo_entry_t *e; - lmo_archive_t *ar; - - if (!key || !_lmo_active_catalog) - return -2; - - hash = lmo_canon_hash(key, keylen); - - for (ar = _lmo_active_catalog->archives; ar; ar = ar->next) - { - if ((e = lmo_find_entry(ar, hash)) != NULL) - { - *out = ar->mmap + ntohl(e->offset); - *outlen = ntohl(e->length); - return 0; - } - } - - return -1; -} - -void lmo_close_catalog(const char *lang) -{ - lmo_archive_t *ar, *next; - lmo_catalog_t *cat, *prev; - - for (prev = NULL, cat = _lmo_catalogs; cat; prev = cat, cat = cat->next) - { - if (!strncmp(cat->lang, lang, sizeof(cat->lang))) - { - if (prev) - prev->next = cat->next; - else - _lmo_catalogs = cat->next; - - for (ar = cat->archives; ar; ar = next) - { - next = ar->next; - lmo_close(ar); - } - - free(cat); - break; - } - } -} diff --git a/package/lean/default-settings/tools/po2lmo/src/template_lmo.h b/package/lean/default-settings/tools/po2lmo/src/template_lmo.h deleted file mode 100644 index 57f59aa56..000000000 --- a/package/lean/default-settings/tools/po2lmo/src/template_lmo.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * lmo - Lua Machine Objects - General header - * - * Copyright (C) 2009-2012 Jo-Philipp Wich - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _TEMPLATE_LMO_H_ -#define _TEMPLATE_LMO_H_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if (defined(__GNUC__) && defined(__i386__)) -#define sfh_get16(d) (*((const uint16_t *) (d))) -#else -#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ - +(uint32_t)(((const uint8_t *)(d))[0]) ) -#endif - - -struct lmo_entry { - uint32_t key_id; - uint32_t val_id; - uint32_t offset; - uint32_t length; -} __attribute__((packed)); - -typedef struct lmo_entry lmo_entry_t; - - -struct lmo_archive { - int fd; - int length; - uint32_t size; - lmo_entry_t *index; - char *mmap; - char *end; - struct lmo_archive *next; -}; - -typedef struct lmo_archive lmo_archive_t; - - -struct lmo_catalog { - char lang[6]; - struct lmo_archive *archives; - struct lmo_catalog *next; -}; - -typedef struct lmo_catalog lmo_catalog_t; - - -uint32_t sfh_hash(const char *data, int len); -uint32_t lmo_canon_hash(const char *data, int len); - -lmo_archive_t * lmo_open(const char *file); -void lmo_close(lmo_archive_t *ar); - - -extern lmo_catalog_t *_lmo_catalogs; -extern lmo_catalog_t *_lmo_active_catalog; - -int lmo_load_catalog(const char *lang, const char *dir); -int lmo_change_catalog(const char *lang); -int lmo_translate(const char *key, int keylen, char **out, int *outlen); -void lmo_close_catalog(const char *lang); - -#endif diff --git a/package/lean/ipset-lists/Makefile b/package/lean/ipset-lists/Makefile deleted file mode 100644 index 3b054e117..000000000 --- a/package/lean/ipset-lists/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# -# Copyright (c) 2015 Justin Liu -# Author: Justin Liu -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=ipset-lists -PKG_VERSION:=20171019 -PKG_RELEASE:=3 - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) - -include $(INCLUDE_DIR)/package.mk - -define Package/ipset-lists - CATEGORY:=Network - TITLE:=Service for IPSET address tables - MAINTAINER:=Justin Liu - DEPENDS:=+ipset -endef - -define Package/ipset-lists/conffiles -/etc/gfwlist/china-banned -endef - -define Build/Prepare - mkdir -p $(PKG_BUILD_DIR) -endef - -define Build/Compile/Default - -endef -Build/Compile = $(Build/Compile/Default) - -define Package/ipset-lists/install - $(CP) -a files/* $(1)/ -endef - -define Package/ipset-lists/postinst -#!/bin/sh -if [ -e /etc/openwrt_release ]; then - /etc/init.d/ipset.sh restart - /etc/init.d/ipset.sh enable || : -fi -endef - -$(eval $(call BuildPackage,ipset-lists)) diff --git a/package/lean/ipset-lists/files/etc/gfwlist/china-banned b/package/lean/ipset-lists/files/etc/gfwlist/china-banned deleted file mode 100644 index f1bc03de9..000000000 --- a/package/lean/ipset-lists/files/etc/gfwlist/china-banned +++ /dev/null @@ -1,4802 +0,0 @@ -0rz.tw -0to255.com -1000giri.net -100ke.org -10conditionsoflove.com -10musume.com -123rf.com -12bet.com -12vpn.com -12vpn.net -141hongkong.com -141tube.com -1688.com.au -173ng.com -177pic.info -17t17p.com -18onlygirls.com -18virginsex.com -1949er.org -1984bbs.com -1984bbs.org -1989report.hkja.org.hk -1998cdp.org -1bao.org -1dumb.com -1e100.net -1eew.com -1mobile.com -1pondo.tv -2000fun.com -2008xianzhang.info -2017.hk -21andy.com -21pron.com -21sextury.com -228.net.tw -247realmedia.com -24hrs.ca -24smile.org -25u.com -2-hand.info -2lipstube.com -2mdn.net -2shared.com -2waky.com -301works.org -30boxes.com -315lz.com -32red.com -365singles.com.ar -36rain.com -3a5a.com -3-a.net -3arabtv.com -3boys2girls.com -3d-game.com -3ren.ca -3tui.net -4bluestones.biz -4chan.org -4dq.com -4everproxy.com -4irc.com -4mydomain.com -4pu.com -4rbtv.com -4shared.com -4sq.com -4tern.com -51.ca -51luoben.com -56cun04.jigsy.com -5aimiku.com -5i01.com -5isotoi5.org -5maodang.com -63i.com -64museum.org -64tianwang.com -64wiki.com -666kb.com -66.ca -6park.com -7capture.com -7cow.com -85cc.net -85st.com -881903.com -888.com -888poker.com -89-64.org -8-d.com -8news.com.tw -8z1.net -9001700.com -91porn.com -92ccav.com -991.com -99btgc01.com -99cn.info -9bis.com -9bis.net -9city.me -a248.e.akamai.net -a5.com.ru -aamacau.com -abc.com -abchinese.com -abc.pp.ru -abc.xyz -abitno.linpie.com -ablwang.com -aboluowang.com -aboutgfw.com -abs.edu -accim.org -aceros-de-hispania.com -acevpn.com -acg18.me -acgkj.com -ac.jiruan.net -acmetoy.com -ac.playstation.net -actimes.com.au -activpn.com -aculo.us -addictedtocoffee.de -admob.com -adorama.com -adpl.org.hk -adultfriendfinder.com -adultkeep.net -adult-sex-games.com -advanscene.com -advertfan.com -ae.hao123.com -aenhancers.com -ae.org -afantibbs.com -af.mil -agnesb.fr -agoogleaday.com -ai-kan.net -aiph.net -airconsole.com -airvpn.org -aisex.com -ait.org.tw -aiweiweiblog.com -aiweiwei.com -ai-wen.net -ajaxplorer.info -akamaihd.net -akiba-online.com -akiba-web.com -alabout.com -alanhou.com -alasbarricadas.org -alexlur.org -alforattv.net -alhayat.com -aliengu.com -alien-ufos.com -aliyun.com -alkasir.com -allaboutalpha.com -allconnected.co -alldrawnsex.com -allfinegirls.com -allgirlsallowed.org -alliance.org.hk -allinfa.com -allinfo.com -alljackpotscasino.com -allmovie.com -all-that-is-interesting.com -almostmy.com -alphaporno.com -al-qimmah.net -alternate-tools.com -altrec.com -alvinalexander.com -alwaysdata.com -alwaysdata.net -alwaysvpn.com -am730.com.hk -amazonaws.com -ameblo.jp -americangreencard.com -americanunfinished.com -amiblockedornot.com -amigobbs.net -amitabhafoundation.us -amnesty.org -amnesty.tw -amnestyusa.org -amnyemachen.org -amoiist.com -ampproject.org -amzs.me -analyze-v.com -anchorfree.com -ancsconf.org -andfaraway.net -android.com -androidify.com -android-x86.org -angularjs.org -animecrazy.net -animeshippuuden.com -aniscartujo.com -anobii.com -anontext.com -anonymitynetwork.com -anonymizer.com -a-normal-day.com -anpopo.com -answering-islam.org -anthonycalzadilla.com -anti.anti.cnn.googlepages.com -antidrm.hpg.ig.com.br -antiwave.net -anysex.com -aobo.com.au -aofriend.com -aofriend.com.au -aojiao.org -aolchannels.aol.com -aomiwang.com -apetube.com -apiary.io -apidocs.linksalpha.com -apigee.com -api.linksalpha.com -api.proxlet.com -api.supertweet.net -apk-dl.com -apkpure.com -app.box.com -app.heywire.com -appledaily.com -appledaily.com.tw -apps.hloli.net -appsocks.net -appspot.com -appsto.re -archive.is -archive.org -archives.gov -arctosia.com -areca-backup.org -arena.taipei -arethusa.su -ar.hao123.com -arlingtoncemetery.mil -army.mil -arstechnica.com -art4tibet1998.org -artofpeacefoundation.org -art-or-porn.com -artsy.net -asacp.org -asahichinese.com -asdfg.jp -asg.to -asiafriendfinder.com -asia-gaming.com -asiaharvest.org -asianews.it -asiansexdiary.com -asianspiss.com -asianwomensfilm.de -asiatgp.com -askstudent.com -askynz.net -assembla.com -astonmartinnews.com -astrill.com -atchinese.com -atc.org.au -atdmt.com -atgfw.org -athenaeizou.com -atj.org.tw -atlaspost.com -atnext.com -authorizeddns.net -authorizeddns.org -authorizeddns.us -autoproxy.org -avaaz.org -avcity.tv -avcool.com -avdb.in -avdb.tv -avfantasy.com -avidemux.org -avmoo.com -avmoo.net -avmoo.pw -avmo.pw -av.nightlife141.com -avoision.com -avyahoo.com -awardwinningfjords.com -axureformac.com -azerbaycan.tv -azerimix.com -azubu.tv -b0ne.com -babynet.com.hk -backchina.com -backpackers.com.tw -backtotiananmen.com -badassjs.com -badjojo.com -badoo.com -baidu.jp -bailandaily.com -baixing.me -bakgeekhome.tk -banana-vpn.com -bandwagonhost.com -bangbrosnetwork.com -bangchen.net -bangyoulater.com -bannedbook.org -bannednews.org -barenakedislam.com -barnabu.co.uk -barracuda.com -bartvpn.com -basetimesheightdividedby2.com -bayvoice.net -bbcchinese.com -bbc.com -bbc.co.uk -bb-chat.tv -bbchat.tv -bbci.co.uk -bbcimg.co.uk -bbc.in -bbg.gov -bbnradio.org -bbs2.newsgroup.la -bbs.brockbbs.com -bbs.ecstart.com -bbsfeed.com -bbs.hasi.wang -bbs.kimy.com.tw -bbsland.com -bbsmo.com -bbs.morbell.com -bbs.mychat.to -bbs.netbig.com -bbs.newsgroup.la -bbsone.com -bbs.qmzdd.com -bbs.sina.com -bbs.skykiwi.com -bbs.sou-tong.org -bbs.tuitui.info -bbs-tw.com -bbtoystore.com -bb.ttv.com.tw -bcast.co.nz -bcc.com.tw -bcchinese.net -bcmorning.com -bdsmvideos.net -bd.zhe.la -beaconevents.com -bebo.com -beeg.com -beevpn.com -behindkink.com -beijing1989.com -beijingspring.com -belamionline.com -bell.wiki -bemywife.cc -benjaminste.in -beric.me -berlintwitterwall.com -berm.co.nz -bestforchina.org -bestvpn.com -bestvpnserver.com -bestvpnservice.com -bestvpnusa.com -bet365.com -beta.iset.com.tw -beta.usejump.com -betfair.com -bettervpn.com -bettween.com -betvictor.com -bewww.net -beyondfirewall.com -bfnn.org -bfsh.hk -bgvpn.com -biantailajiao.com -biantailajiao.in -biblesforamerica.org -bic2011.org -bigfools.com -bigjapanesesex.com -bigmoney.biz -bignews.org -bigsound.org -bill2-software.com -billywr.com -bill.zhong.pp.ru -bipic.net -bitcointalk.org -bit.do -bit.ly -bitly.com -bitshare.com -bitsnoop.com -bizhat.com -bjnewlife.org -bjzc.org -blacklogic.com -blackvpn.com -bl-doujinsouko.com -blinkx.com -blinw.com -blip.tv -blockcn.com -blog.birdhouseapp.com -blogblog.com -blog.boxcar.io -blog.calibre-ebook.com -blogcatalog.com -blogcity.me -blog.cnyes.com -blog.davidziegler.net -blog.dayoneapp.com -blog.de -blog.dribbble.com -blog.exblog.co.jp -blog.excite.co.jp -blog.expofutures.com -blog.fizzik.com -blog.foolsmountain.com -blogger.com -blog.gowalla.com -blog.hotpotato.com -blog.ifttt.com -blogimg.jp -blog.inoreader.com -blog.instapaper.com -blog.iphone-dev.org -blog.istef.info -blog.jackjia.com -blog.joeyrobert.org -blog.jp -blog.kangye.org -blog.kickstarter.com -blog.kl.am -blog.klip.me -blog.lester850.info -blog.lightbox.com -bloglines.com -bloglovin.com -blog.martinoei.com -blog.mongodb.org -blog.openinkpot.org -blog.palm.com -blog.path.com -blog.pathtosharepoint.com -blog.pentalogic.net -blog.pikchur.com -blog.pilotmoon.com -blog.redren.com -blog.rockmelt.com -blog.romanandreg.com -blog.s135.com -blogs.icerocket.com -blog.sogoo.org -blog.sparrowmailapp.com -blogspot.com -blogspot.co.uk -blogspot.de -blogspot.fr -blogspot.in -blogspot.jp -blogs.tampabay.com -blogs.yahoo.co.jp -blog.syx86.cn -blog.syx86.com -blog.taragana.com -blogtd.net -blogtd.org -blog.tiney.com -blog.topify.com -blog.usa.gov -blog.xuite.net -blog.youthwant.com.tw -bloodshed.net -bloomberg.cn -bloomberg.com -bloomberg.de -bloombergview.com -bloomfortune.com -blueangellive.com -bmediaasia.com -bmfinn.com -bnrmetal.com -boardreader.com -bobulate.com -bod.asia -bodog88.com -bolehvpn.net -bolin.netfirms.com -bonbonme.com -bonbonsex.com -bongacams.com -bonjourlesgeeks.com -boobstagram.com -book.com.tw -bookepub.com -books.com.tw -bookshelfporn.com -book.zi5.me -botanwang.com -bot.nu -bowenpress.com -boxpn.com -boxunblog.com -boxunclub.com -boxun.com -boxun.tv -boyangu.com -boyfriendtv.com -boysfood.com -boysmaster.com -bralio.com -branch.com -brandonhutchinson.com -braumeister.org -bravotube.net -brazzers.com -break.com -breakgfw.com -breakingtweets.com -breakwall.net -br.hao123.com -briefdream.com -brightcove.com -brightkite.com -brizzly.com -broadbook.com -broadpressinc.com -br.st -brucewang.net -brutaltgp.com -bt2mag.com -bt95.com -btaia.com -bt.byr.cn -btdigg.org -btku.me -btku.org -bt.neu6.edu.cn -btrd.net -btspread.com -budaedu.org -buddhistchannel.tv -buffered.com -bugclub.org -builtwithbootstrap.com -bullogger.com -bullog.org -bunbunhk.com -busayari.com -businesstimes.com.cn -businessweek.com -busytrade.com -buugaa.com -buy.yahoo.com.tw -buzzhand.com -buzzhand.net -buzzurl.jp -bwbx.io -bwsj.hk -bx.tl -c100tibet.org -c1522.mooo.com -cablegatesearch.net -cachinese.com -cacnw.com -cactusvpn.com -cafepress.com -cahr.org.tw -calameo.com -calebelston.com -calgarychinese.ca -calgarychinese.com -calgarychinese.net -cam4.com -cam4.jp -cam4.sg -camfrog.com -cams.com -cams.org.sg -canadameet.com -canyu.org -caobian.info -caochangqing.com -cao.im -cap.org.hk -carabinasypistolas.com -cardinalkungfoundation.org -carfax.com -caribbeancom.com -cari.com.my -carmotorshow.com -cartoonmovement.com -casadeltibetbcn.org -casatibet.org.mx -casinobellini.com -casinoking.com -casinoriva.com -casino.williamhill.com -catch22.net -catfightpayperview.xxx -catholic.org.hk -catholic.org.tw -cathvoice.org.tw -cattt.com -cbc.ca -cbs.ntu.edu.tw -cbtc.org.hk -cc9007.spaces.live.com -ccavtop10.com -cccat.cc -ccdtr.org -cchere.com -ccim.org -cclife.ca -cclifefl.org -cclife.org -ccthere.com -cctongbao.com -ccue.ca -ccue.com -ccvoice.ca -ccw.org.tw -cdbook.org -cdd.me -cdef.org -cdig.info -cdjp.org -cdn1.lp.saboom.com -cdnews.com.tw -cdn.helixstudios.net -cdninstagram.com -cdn.printfriendly.com -cdn.softlayer.net -cdp1989.org -cdp1998.org -cdp2006.org -cdpa.url.tw -cdpeu.org -cdp.sinica.edu.tw -cdpusa.org -cdpweb.org -cdpwu.org -cdw.com -cecc.gov -cellulo.info -cenci.tk -cenews.eu -centauro.com.br -centerforhumanreprod.com -centralnation.com -centurys.net -certificate.revocationcheck.com -certificate-transparency.org -c-est-simple.com -cfhks.org.hk -cftfc.com -cgdepot.org -cgst.edu -chandoo.org -changeip.name -changeip.net -changeip.org -change.org -changp.com -changsa.net -chaos.e-spacy.com -chapm25.com -chartbeat.net -chatnook.com -chaturbate.com -chengmingmag.com -chenguangcheng.com -chenpokong.com -chenpokong.net -chenyehao.spaces.live.com -cherrysave.com -chevronwp7.com -chhongbi.org -chicagoncmtv.com -china101.com -china18.org -china21.com -china21.org -china5000.us -chinaaffairs.org -chinaaid.me -chinaaid.net -chinaaid.org -chinaaid.us -chinachange.org -chinachannel.hk -chinacitynews.be -chinacomments.org -chinadialogue.net -chinadigitaltimes.net -chinaelections.org -chinaeweekly.com -chinafreepress.org -chinagate.com -chinageeks.org -chinagfw.org -chinagreenparty.org -china-green-party.spaces.live.com -china.hket.com -chinahorizon.org -chinahush.com -chinainperspective.com -chinainperspective.net -chinainperspective.org -chinainterimgov.org -chinalaborwatch.org -chinalawandpolicy.com -chinalawtranslate.com -china-mmm.jp.net -china-mmm.net -china-mmm.sa.com -chinamule.com -chinamz.org -chinapress.com.my -chinarightsia.org -chinasocialdemocraticparty.com -chinaso.com -chinasoul.org -chinasucks.net -chinatimes.com -chinatopsex.com -chinatown.com.au -chinatweeps.com -chinaway.org -china-week.com -chinaworker.info -chinaxchina.com -chinayouth.org.hk -chinayuanmin.org -chinesedaily.com -chinesedailynews.com -chinesedemocracy.com -chinese.engadget.com -chinesegay.org -chinese-hermit.net -chinese.irib.ir -chinese-leaders.org -chinese-memorial.org -chinesen.de -chinesenewsnet.com -chinesepen.org -chinese.soifind.com -chinesetalks.net -chingcheong.com -chinman.net -chithu.org -chn.chosun.com -chrdnet.com -chrispederick.com -chrispederick.net -christianfreedom.org -christianstudy.com -christiantimes.org.hk -christusrex.org -chrlawyers.hk -chrlcg-hk.org -chromeadblock.com -chromecast.com -chrome.com -chromeexperiments.com -chromercise.com -chromestatus.com -chromium.org -ch.shvoong.com -chuang-yen.org -chubun.com -chuizi.net -cineastentreff.de -cipfg.org -circlethebayfortibet.org -citizenlab.org -citizenscommission.hk -citizensradio.org -city365.ca -city9x.com -civicparty.hk -civilhrfront.org -civiliangunner.com -civilmedia.tw -cjb.net -ck101.com -classicalguitarblog.net -clb.org.hk -cl.d0z.net -cleansite.biz -cleansite.info -cleansite.us -clearharmony.net -clearwisdom.net -clementine-player.org -clientsfromhell.net -cling.omy.sg -clinica-tibet.ru -clipfish.de -cl.ly -cloakpoint.com -cloudfront.net -club1069.com -cmi.org.tw -cmp.hku.hk -cms.gov -cmule.com -cmule.org -cn2.streetvoice.com -cn6.eu -cnabc.com -cna.com.tw -cnavista.com.tw -cn.dayabook.com -cnd.org -cnex.org.cn -cn.fmnnow.com -cn.freeones.com -cn.ibtimes.com -cnineu.com -cnn.com -cn.nytstyle.com -cnpolitics.org -cn-proxy.com -cnproxy.com -cn.sandscotaicentral.com -cn.shafaqna.com -cn.streetvoice.com -cn.uncyclopedia.wikia.com -cn.voa.mobi -coat.co.jp -cochina.co -cochina.org -cocoapods.org -cocoa.zonble.net -code1984.com -codeboxapp.com -codeshare.io -codeskulptor.org -collateralmurder.com -collateralmurder.org -comefromchina.com -com.google -comic-mega.me -commandarms.com -commentshk.com -communistcrimes.org -communitychoicecu.com -compileheart.com -compress.to -co.ng.mil -conoyo.com -contactmagazine.net -contests.twilio.com -convio.net -conviva.com -coobay.com -cookingtothegoodlife.com -coolaler.com -coolder.com -coolloud.org.tw -coolncute.com -corpus4u.org -corumcollege.com -cos-moe.com -cotweet.com -couchdbwiki.com -coveringweb.com -cpj.org -crackle.com -crchina.org -crd-net.org -creaders.net -creadersnet.com -cristyli.com -crocotube.com -crossfire.co.kr -crossthewall.net -csdparty.com -c-spanvideo.org -css.pixnet.in -csuchen.de -ctao.org -ctfriend.net -ctitv.com.tw -cts.com.tw -cubicle17.com -cuhkacs.org -cuihua.org -cuiweiping.net -culture.tw -cumlouder.com -curvefish.com -cusu.hk -cw.com.tw -cyanogenmod.org -cyberghost.natado.com -cyberghostvpn.com -cydia.ifuckgfw.com -cynscribe.com -cytode.us -d100.net -d2bay.com -dabr.co.uk -dabr.eu -dabr.me -dabr.mobi -dadazim.com -dadi360.com -dafagood.com -dafahao.com -daidostup.ru -dailidaili.com -dailymotion.com -dailynews.sina.com -daiphapinfo.net -dajiyuan.com -dajiyuan.de -dajiyuan.eu -dajusha.baywords.com -dalailama80.org -dalailama-archives.org -dalailamacenter.org -dalailama.com -dalailamafellows.org -dalailamafilm.com -dalailamafoundation.org -dalailamahindi.com -dalailamainaustralia.org -dalailamajapanese.com -dalailama.mn -dalailamaprotesters.info -dalailamaquotes.org -dalailama.ru -dalailamatrust.org -dalailama.usc.edu -dalailamavisit.org.nz -dalailamaworld.com -dalianmeng.org -daliulian.org -danke4china.net -danwei.org -daodu14.jigsy.com -daolan.net -darktech.org -darktoy.net -darpa.mil -dastrassi.org -data-vocabulary.org -date.fm -david-kilgour.com -davidslog.com -daxa.cn -dayaarmongol.ning.com -daylife.com -db.tt -dcard.tw -dcmilitary.com -ddc.com.tw -ddhw.info -ddns.info -ddns.me.uk -ddns.mobi -ddns.ms -ddns.name -ddns.net -ddns.us -deaftone.com -deck.ly -decodet.co -deepmind.com -default.secureserver.net -definebabe.com -deja.com -delcamp.net -delicious.com -democrats.org -demo.opera-mini.net -derekhsu.homeip.net -de-sci.org -desc.se -designerol.com -desipro.de -dessci.com -destiny.xfiles.to -destroy-china.jp -deutsche-welle.de -dev102.com -developers.box.net -deviantart.com -deviantart.net -devio.us -devpn.com -dfas.mil -dfn.org -dharamsalanet.com -dharmakara.net -dhcp.biz -diaoyuislands.org -digisfera.com -digitalnomadsproject.org -diigo.com -dilber.se -dipity.com -directcreative.com -discuss4u.com -discuss.com.hk -dish.com -disp.cc -disqus.com -dit-inc.us -dizhidizhi.com -dizhuzhishang.com -djangosnippets.org -djorz.com -dl.box.net -dl-laby.jp -dl.playstation.net -dlsite.com -dmcdn.net -dmm.co.jp -dns04.com -dns05.com -dns1.us -dns2go.com -dns2.us -dnscrypt.org -dns-dns.com -dnset.com -dnsrd.com -dnssec.net -dns-stuff.com -docstoc.com -doctorvoice.org -dojin.com -dok-forum.net -dolc.de -dolf.org.hk -dollf.com -domain.club.tw -domainhelp.search.com -domains.google -domaintoday.com.au -dongde.com -dongtaiwang.com -dongtaiwang.net -dongyangjing.com -dontfilter.us -dontmovetochina.com -dorjeshugden.com -dotheyfolloweachother.com -dotplane.com -dotsub.com -doubleaf.com -doubleclick.net -dougscripts.com -doujincafe.com -dowei.org -download.aircrack-ng.org -download.ithome.com.tw -download.syniumsoftware.com -doxygen.org -dphk.org -dpp.org.tw -dpr.info -dragonsprings.org -draw.io -dreammask.org -drepung.org -drewolanoff.com -drgan.net -drmingxia.org -dropbox.com -dropboxusercontent.com -drsunacademy.com -drtuber.com -dscn.info -dsmtp.com -dstk.dk -dtdns.net -dtiblog.com -dtic.mil -dtiserv2.com -dtwang.org -duanzhihu.com -duckdns.org -duckduckgo.com -duckload.com -duckmylife.com -duga.jp -duihuahrjournal.org -duihua.org -dumb1.com -duoweitimes.com -duping.net -duplicati.com -dupola.com -dupola.net -dushi.ca -dvorak.org -dw.com -dw.de -dwnews.com -dwnews.net -dw-world.com -dw-world.de -dy24k.info -dynamicdns.biz -dynamicdns.co.uk -dynamicdns.me.uk -dynamic-dns.net -dynamicdns.org.uk -dynawebinc.com -dyndns.org -dyndns.pro -dynssl.com -dzze.com -e123.hk -eamonnbrennan.com -earlytibet.com -earthcam.com -earthquake.usgs.gov -earthvpn.com -eastern-ark.com -easternlightning.org -eastturkestan.com -eastturkistancc.org -eastturkistangovernmentinexile.us -eastturkistan-gov.org -easyca.ca -easypic.com -easy-share.com -ebony-beauty.com -ebookbrowse.com -ebookee.com -ebook.hyread.com.tw -ecfa.org.tw -echofon.com -e-classical.com.tw -ecministry.net -economist.com -edgecastcdn.net -edicypages.com -edmontonchina.cn -edmontonservice.com -edns.biz -edoors.com -edubridge.com -edupro.org -eesti.ee -eevpn.com -efcc.org.hk -effers.com -efksoft.com -efmoe.com -efukt.com -e-gold.com -eic-av.com -e-info.org.tw -eisbb.com -eksisozluk.com -electionsmeter.com -elephantvpn.com -elgoog.im -elpais.com -eltondisney.com -emacsblog.org -embr.in -emilylau.org.hk -emory.edu -empfil.com -emule-ed2k.com -emulefans.com -emuparadise.me -enewstree.com -enfal.de -en.favotter.net -englishforeveryone.org -englishfromengland.co.uk -englishpen.org -en.hao123.com -enlighten.org.tw -entermap.com -entnt.com -epac.to -episcopalchurch.org -epochhk.com -epochtimes-bg.com -epochtimes.co.il -epochtimes.co.kr -epochtimes.com -epochtimes.cz -epochtimes.de -epochtimes.fr -epochtimes.ie -epochtimes.it -epochtimes.jp -epochtimes-romania.com -epochtimes.ru -epochtimes.se -epochtimestr.com -epochweek.com -epochweekly.com -eporner.com -equinenow.com -erabaru.net -eraysoft.com.tr -erepublik.com -erepublik.net -erights.net -eriversoft.com -erktv.com -ernestmandel.org -erodaizensyu.com -erodoujinworld.com -eromangadouzin.com -eromanga-kingdom.com -eromon.net -eroprofile.com -eroticsaloon.net -esmtp.biz -etaa.org.au -etaiwannews.com -etizer.org -etokki.com -etools.ncol.com -etowns.net -etowns.org -e-traderland.net -ettoday.net -etvonline.hk -eucasino.com -eulam.com -eu.org -evchk.wikia.com -eventful.com -everyday-carry.com -evschool.net -exblog.jp -exchristian.hk -exmormon.org -expatshield.com -expekt.com -experts-univers.com -exploader.net -expressvpn.com -extmatrix.com -extremetube.com -eyespirit.info -eyevio.jp -eyny.com -ezpc.tk -ezpeer.com -ezua.com -facebook.br -facebook.com -facebook.design -facebook.hu -facebook.in -facebook.net -facebook.nl -facebookquotes4u.com -facebook.se -faceless.me -facesofnyfw.com -facesoftibetanselfimmolators.info -fail.hk -faith100.org -faithfuleye.com -faiththedog.info -fakku.net -falsefire.com -falunart.org -falunasia.info -falun.caltech.edu -falun-co.org -falundafa-dc.org -falundafa-florida.org -falundafaindia.org -falundafamuseum.org -falundafa-nc.org -falundafa.org -falundafa-pa.net -falungong.de -falungong.org.uk -falunhr.org -faluninfo.de -faluninfo.net -falun-ny.net -falunpilipinas.net -falunworld.net -familyfed.org -famunion.com -fangbinxing.com -fangeming.com -fanglizhi.info -fangmincn.org -fangong.forums-free.com -fangongheike.com -fangong.org -fan-qiang.com -fanqianghou.com -fanqiang.tk -fanqiangyakexi.net -fanqiangzhe.com -fanswong.com -fanyue.info -fapdu.com -faproxy.com -faqserv.com -fartit.com -farwestchina.com -farxian.com -fastpic.ru -fastssh.com -faststone.org -fast.wistia.com -favorious.com -favstar.fm -fawanghuihui.org -faydao.com -fbcdn.net -fb.com -fb.me -fbsbx.com -fc2blog.net -fc2china.com -fc2cn.com -fc2.com -fdc89.jp -feedbooks.mobi -feedburner.com -feeds.fileforum.com -feedzshare.com -feelssh.com -feer.com -feifeiss.com -feitianacademy.org -feitian-california.org -felixcat.net -feministteacher.com -fengzhenghu.com -fengzhenghu.net -fetchvideo.com -fevernet.com -fffff.at -ff.im -fflick.com -fgmtv.net -fgmtv.org -fhreports.net -filefactory.com -fileflyer.com -files2me.com -fileserve.com -filesor.com -fillthesquare.org -filmingfortibet.org -filthdump.com -finalion.jp -financetwitter.com -finchvpn.com -findbook.tw -findmespot.com -findmima.com -fingerdaily.com -finler.net -firefoxfan.cc -fireofliberty.org -firetweet.io -firstfivefollowers.com -flagsonline.it -flecheinthepeche.fr -fleshbot.com -fleursdeslettres.com -flgg.us -flickr.com -flickrhivemind.net -flightcaster.com -fling.com -flipboard.com -flipkart.com -flitto.com -flnet.org -flowerofhappiness.spaces.live.com -fochk.org -focustaiwan.tw -focusvpn.com -fofg-europe.net -fofg.org -fofldfradio.org -fooooo.com -footwiball.com -forum4hk.com -forum.baby-kingdom.com -forum.cyberctm.com -forum.idsam.com -forum.iset.com.tw -forum.my903.com -forum.mymaji.com -forum.newsgroup.la -forum.omy.sg -forum.palmislife.com -forum.setty.com.tw -forum.sina.com.hk -forum.slime.com.tw -forum.tvb.com -fotile.me -fotop.net -fourface.nodesnoop.com -fourthinternational.org -foxdie.us -foxgay.com -foxsub.com -foxtang.com -fpmtmexico.org -fpmt.org -fpmt-osel.org -fpmt.tw -fqok.org -fqrouter.com -franklc.com -freakshare.com -fredwilson.vc -free4u.com.ar -freealim.com -freebrowser.org -freechal.com -freechina.net -freeddns.com -freedomchina.info -freedomhouse.org -freedomsherald.org -freeforums.org -freefq.com -free.fr -freefuckvids.com -freegao.com -freegateget.googlepages.com -free-gate.org -free-hada-now.org -freeilhamtohti.org -freelotto.com -freeman2.com -freemoren.com -freemorenews.com -freenet-china.org -freenetproject.org -freenewscn.com -freeopenvpn.com -freeoz.org -free-ssh.com -freessh.us -freetcp.com -freetibetanheroes.org -freetibet.net -freetibet.org -freeviewmovies.com -freevpn.me -freevpn.nl -freewallpaper4.me -freewebs.com -freeweibo.com -freewww.biz -freewww.info -freexinwen.com -freeyellow.com -freeyoutubeproxy.net -friendfeed.com -friendfeed-media.com -friends-of-tibet.org -friendsoftibet.org -fring.com -fringenetwork.com -fromchinatousa.net -frommel.net -frontlinedefenders.org -fscked.org -fsurf.com -ftchinese.com -ftp1.biz -ftpserver.biz -fucd.com -fuckcnnic.net -fuckgfw.com -fuckgfw.org -fullerconsideration.com -fulue.com -funf.tw -funkyimg.com -funp.com -fuq.com -furbo.org -furhhdl.org -furinkan.com -furl.net -futurechinaforum.org -futureme.org -futuremessage.org -fux.com -fuyindiantai.org -fuyin.net -fuyu.org.tw -fw.cm -fxnetworks.com -fzh999.com -fzh999.net -fzlm.com -g6hentai.com -gabocorp.com -gaeproxy.com -gaforum.org -galaxymacau.com -galenwu.com -galstars.net -game735.com -gamebase.com.tw -gamejolt.com -gamer.com.tw -gamez.com.tw -gamousa.com -ganges.com -gaoming.net -gaopi.net -gaozhisheng.net -gaozhisheng.org -gardennetworks.com -gardennetworks.org -gartlive.com -gather.com -gati.org.tw -gaybubble.com -gaycn.net -gaymap.cc -gaytube.com -gazotube.com -gcc.org.hk -gclooney.com -g.co -gcpnews.com -gcr.io -gdbt.net -gdzf.org -geek-art.net -geekerhome.com -geekheart.info -geekmade.co.uk -geekmanuals.com -g.e-hentai.org -gelbooru.com -generesis.com -genuitec.com -geocities.co.jp -geocities.com -geocities.jp -geohot.com -geometrictools.com -gerefoundation.org -getchu.com -getcloak.com -getcloudapp.com -get-digital-help.com -getfoxyproxy.org -getfreedur.com -getgom.com -get.how -getiton.com -getjetso.com -getlantern.org -getmdl.io -getsmartlinks.com -getsocialscope.com -gettrials.com -gettyimages.com -getuploader.com -gfbv.de -gfgold.com.hk -gfsale.com -gfw.org.ua -gfw.press -ggpht.com -ggssl.com -ghost.org -ghostpath.com -ghut.org -giga-web.jp -gigporno.ru -gimpshop.com -girlbanker.com -github.com -git.io -git-scm.com -givemesomethingtoread.com -gizlen.net -gjczz.com -glass8.eu -glennhilton.com -globaljihad.net -globalmediaoutreach.com -globalmuseumoncommunism.org -globalrescue.net -globaltm.org -globalvoicesonline.org -glock.com -gloryhole.com -glype.com -gmail.com -gmbd.cn -gmhz.org -gmll.org -gmodules.com -gmozomg.izihost.org -gnci.org.hk -go141.com -goagent.biz -goagent.codeplex.com -goagentplus.com -gobet.cc -godfootsteps.org -godns.work -godoc.org -godsdirectcontact.co.uk -godsdirectcontact.org -godsdirectcontact.org.tw -godsimmediatecontact.com -gogotunnel.com -gohappy.com.tw -gojet.krtco.com.tw -gokbayrak.com -golang.org -goldbet.com -goldbetsports.com -goldenfrog.com -goldstep.net -goldwave.com -gongmeng.info -gongm.in -gongminliliang.com -gongwt.com -gooddns.info -goodreaders.com -goodreads.com -goodtv.com.tw -goodtv.tv -goofind.com -goo.gl -googleadservices.com -google.ae -google.am -google-analytics.com -googleapis.com -googleapps.com -googleartproject.com -google.as -googleblog.com -googlebot.com -googlecapital.com -google.cat -google.cd -google.ci -googlecode.com -google.co.id -google.co.jp -google.co.kr -google.com -google.co.ma -google.com.hk -googlecommerce.com -google.com.sg -google.com.tw -google.com.uk -google.co.uk -google.de -google.dj -google.dk -googledomains.com -googledrive.com -googleearth.com -google.es -google.fi -google.fm -google.fr -google.gg -googlegroups.com -googlehosted.com -googleideas.com -google.ie -google.is -google.it -googlelabs.com -googlemail.com -google.ms -google.nl -google.no -google.nu -googleplay.com -googleplus.com -google.ro -google.sc -googlesile.com -google.sk -google.sm -googlesource.com -googlesyndication.com -googletagmanager.com -googletagservices.com -google.tk -google.to -google.tt -googleusercontent.com -googlevideo.com -google.vu -google.ws -googlezip.net -gopetition.com -go-pki.com -goproxing.net -gospelherald.com -got-game.org -gotgeeks.com -gotrusted.com -gotw.ca -gov.cn -gov.tw -gpass1.com -g-queen.com -gr8domain.biz -gr8name.biz -grammaly.com -grandtrial.org -grangorz.org -graphis.ne.jp -gravatar.com -graylog2.org -greasespot.net -greatfire.org -greatfire.us7.list-manage.com -greatfirewall.biz -great-firewall.com -greatfirewallofchina.net -greatfirewallofchina.org -great-roc.org -greatroc.org -greatroc.tw -greatzhonghua.org -greenfieldbookstore.com.hk -greenparty.org.tw -greenpeace.com.tw -greenpeace.org -greenvpn.net -greenvpn.org -groups.google.cn -gs-discuss.com -gseeker.com -gstatic.com -gtricks.com -guancha.org -guardster.com -gu-chu-sum.org -gufeng521.spaces.live.com -guishan.org -gunsamerica.com -gunsandammo.com -gun-world.net -guomin.us -guruonline.hk -gutteruncensored.com -gvlib.com -gvm.com.tw -gvt0.com -gvt1.com -gvt3.com -gwtproject.org -gyalwarinpoche.com -gyatsostudio.com -gzm.tv -gzone-anime.info -h1n1china.org -h5dm.com -h5galgame.me -hacg.club -hacg.in -hacg.li -hacg.red -hacken.cc -hackthatphone.net -hahlo.com -hakkatv.org.tw -hanunyi.com -haosou.com -happy-vpn.com -hardsextube.com -harunyahya.com -hasaowall.com -hautelookcdn.com -hautelook.com -have8.com -haygo.com -h-china.org -hdtvb.net -hdzog.com -heartyit.com -hecaitou.net -hechaji.com -hec.su -heeact.edu.tw -hegre-art.com -heix.pp.ru -heiyo.info -helloandroid.com -hellonewyork.us -helloqueer.com -hellotxt.com -hellouk.org -helpeachpeople.com -helplinfen.com -help.linksalpha.com -help.opera.com -helpster.de -helpzhuling.org -hen.bao.li -hentai.to -hentaitube.tv -hentaivideoworld.com -heqinglian.net -here4news.com -heungkongdiscuss.com -hexxeh.net -heyzo.com -hgseav.com -hhdcb3office.org -hidden-advent.org -hidecloud.com -hideipvpn.com -hideman.net -hide.me -hideme.nl -hidemyass.com -hidemycomp.com -higfw.com -highpeakspureearth.com -highrockmedia.com -hihiforum.com -hihistory.net -hiitch.com -hikinggfw.org -hilive.tv -himalayan-foundation.org -himalayanglacier.com -himemix.com -himemix.net -hi-on.org.tw -hitomi.la -hizb-ut-tahrir.info -hizb-ut-tahrir.org -hizbuttahrir.org -hjclub.info -hk01.com -hk32168.com -hkatvnews.com -hkbc.net -hkbf.org -hkbookcity.com -hkchurch.org -hkcmi.edu -hkcoc.com -hkcoc.weather.com.hk -hkdailynews.com.hk -hkday.net -hkdf.org -hkej.com -hkepc.com -hkfaa.com -hkfreezone.com -hkfront.org -hkgolden.com -hkgreenradio.org -hk.hao123img.com -hkheadline.com -hkhkhk.com -hkhrc.org.hk -hkhrm.org.hk -hkip.org.uk -hkjc.com -hk.jiepang.com -hkjp.easyweb.hk -hkjp.org -hk.knowledge.yahoo.com -hklft.com -hklts.org.hk -hk.myblog.yahoo.com -hk.news.yahoo.com -hkptu.org -hk-pub.com -hk.rd.yahoo.com -hkreporter.com -hkreporter.loved.hk -hk.search.yahoo.com -hkupop.hku.hk -hkusu.net -hk.video.news.yahoo.com -hkvwet.com -hkwcc.org.hk -hk.yahoo.com -hkzone.org -h-moe.com -hmvdigital.ca -hmvdigital.com -hnjhj.com -hnntube.com -hola.com -hola.org -holymountaincn.com -holyspiritspeaks.org -holz.byethost8.com -homedepot.com -homeperversion.com -homeservershow.com -home.sina.com -home.so-net.net.tw -honeonet.spaces.live.com -hongkongfp.com -hongmeimei.com -hongzhi.li -hootsuite.com -hoovers.com -hopto.org -hornygamer.com -hotav.tv -hotfrog.com.tw -hotgoo.com -hotpornshow.com -hotpot.hk -hotshame.com -hotspotshield.com -hotvpn.com -hougaige.com -howtoforge.com -hqcdp.org -hqjapanesesex.com -hqmovies.com -hrcchina.org -hrcir.com -hrea.org -hrichina.org -hrweb.org -hrw.org -hsjp.net -hsselite.com -hstern.net -hst.net.tw -hstt.net -htkou.net -htl.li -ht.ly -html5rocks.com -htmldog.com -https443.net -https443.org -huaglad.com -huajiadi.spaces.live.com -huanghuagang.org -huangyiyu.com -huaren.us -huaxiabao.org -huaxia-news.com -huaxin.ph -hua-yue.net -huayuworld.org -hudatoriq.web.id -hugoroy.eu -huhaitai.com -huhamhire.com -huiyi.in -hujiachina.spaces.live.com -hulkshare.com -hulu.com -huluim.com -humanities.uchicago.edu -humanrightsbriefing.org -hungerstrikeforaids.org -hung-ya.com -huping.net -hurgokbayrak.com -hurriyet.com.tr -hustlercash.com -hut2.ru -hutianyi.net -hutong9.net -huyandex.com -hwayue.org.tw -hwinfo.com -hxwq.org -hybrid-analysis.com -hyperrate.com -hypeshell.com -i1.hk -i2p2.de -i2runner.com -i818hk.com -ialmostlaugh.com -iam.soy -iask.bz -iask.ca -iav19.com -ibiblio.org -iblist.com -iblogserv-f.net -ibros.org -ibvpn.com -i-cable.com -icams.com -icij.org -icl-fi.org -icoco.com -iconpaper.org -icu-project.org -idemocracy.asia -identi.ca -id.hao123.com -idiomconnection.com -idouga.com -idreamx.com -idv.tw -ieasynews.net -ied2k.net -ieemdai.spaces.live.com -ienergy1.com -ifan.cz.cc -ifanqiang.com -ifanr.com -ifcss.org -ifjc.org -ifreewares.com -ift.tt -igcd.net -igfw.net -igmg.de -ignitedetroit.net -igoogle.com -igotmail.com.tw -igvita.com -ihakka.net -iicns.com -ikwb.com -illusionfactory.com -ilove80.be -ilovelongtoes.com -im88.tw -imageab.com -imagefap.com -imageflea.com -images.comico.tw -imageshack.us -imagevenue.com -imagezilla.net -imb.org -imgchili.net -img.ly -imkev.com -imlive.com -immoral.jp -impact.org.au -impp.mn -imrworldwide.com -im.tv -in99.org -incapdns.net -incloak.com -incredibox.fr -indiandefensenews.in -indiemerch.com -in-disguise.com -info-graf.fr -initiativesforchina.org -inkui.com -inmediahk.net -innermongolia.org -inote.tw -insecam.org -instagram.com -instanthq.com -institut-tibetain.org -interestinglaugh.com -interfaceaddiction.com -internationalrivers.org -internetdefenseleague.org -internetfreedom.org -internetpopculture.com -inxian.com -iownyour.biz -iownyour.org -ipalter.com -i-part.com.tw -ipcf.org.tw -iphone4hongkong.com -iphonehacks.com -iphonetaiwan.org -iphonix.fr -ipicture.ru -ipjetable.net -ipobar.com -iportal.me -ippotv.com -ipredator.se -iptorrents.com -iptv.com.tw -ipvanish.com -iredmail.org -ironbigfools.compython.net -ironicsoftware.com -ironpython.net -isaacmao.com -isasecret.com -is.gd -isgreat.org -islamhouse.com -islamicity.com -islamicpluralism.org -islam.org.hk -islamtoday.net -ismaelan.com -ismalltits.com -ismprofessional.net -isohunt.com -israbox.com -istars.co.nz -istiqlalhewer.com -istockphoto.com -isunaffairs.com -isuntv.com -itaboo.info -italiatibet.org -itasoftware.com -itemdb.com -ithelp.ithome.com.tw -itsaol.com -itshidden.com -itsky.it -itweet.net -iu45.com -iuhrdf.org -iuksky.com -ivacy.com -iverycd.com -ivpn.net -ixquick.com -ixxx.com -iyouport.com -izaobao.us -izlesem.org -izles.net -jamaat.org -jamyangnorbu.com -janwongphoto.com -japan-whores.com -jav68.tv -javakiba.org -javbus.com -javfor.me -javhip.com -javhub.net -javhuge.com -javlibrary.com -javmoo.com -javmoo.xyz -javseen.com -javtag.com -javzoo.com -jayparkinsonmd.com -jbtalks.cc -jbtalks.com -jbtalks.my -jcpenney.com -jdwsy.com -jeanyim.com -jetos.com -jgoodies.com -jiangweiping.com -jiaoyou8.com -jiehua.cz -jieshibaobao.com -jigong1024.com -jike.com -jimoparty.com -jinbushe.org -jingpin.org -jingsim.org -jinpianwang.com -jitouch.com -jizzthis.com -jjgirls.com -jkb.cc -jkforum.net -jkub.com -jma.go.jp -j.mp -joachims.org -jobso.tv -joeedelman.com -journalchretien.net -journalofdemocracy.org -joymiihub.com -jp.hao123.com -jpl.nasa.gov -jpopforum.net -juhuaren.com -juliepost.com -juliereyc.com -junauza.com -june4commemoration.org -junefourth-20.net -jungleheart.com -justdied.com -justfreevpn.com -justicefortenzin.org -justpaste.it -justtristan.com -juyuange.org -juziyue.com -jwmusic.org -jyxf.net -jyzj.waqn.com -k2.xrea.com -kagyuoffice.org -kagyuoffice.org.tw -kaiyuan.de -kakao.com -kankan.today -kannewyork.com -kanshifang.com -kanzhongguo.com -kanzhongguo.eu -kaotic.com -karayou.com -karkhung.com -karmapa.org -karmapa-teachings.org -kat.cr -ka-wai.com -kawaiikawaii.jp -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 -khatrimaza.org -khmusic.com.tw -kichiku-doujinko.com -killwall.com -kindleren.com -kingdomsalvation.org -kinghost.com -kingstone.com.tw -kink.com -kir.jp -kissbbao.cn -kissyoutube.com -kiwi.kz -kk-whys.co.jp -knowledgerush.com -kodingen.com -kompozer.net -konachan.com -koolsolutions.com -koornk.com -koranmandarin.com -ksnews.com.tw -kt.kcome.org -ktzhk.com -kui.name -kun.im -kurashsultan.com -kurtmunger.com -kusocity.com -kusos.com -kwcg.ca -kwongwah.com.my -kyohk.net -kyoyue.com -kzeng.info -labiennale.org -ladbrokes.com -la-forum.org -lagranepoca.com -lalulalu.com -lamayeshe.com -lamnia.co.uk -lamrim.com -lanterncn.cn -lantosfoundation.org -laod.cn -laogai.org -laomiu.com -laoyang.info -laptoplockdown.com -laqingdan.net -larsgeorge.com -lastcombat.com -lastfm.es -latelinenews.com -latibet.org -latimesblogs.latimes.com -lazarsearlymusic.com -ld.hao123img.com -leafyvpn.net -leecheukyan.org -lefora.com -left21.hk -legalporno.com -legaltech.law.com -leirentv.ca -leisurecafe.ca -leisurepro.com -lematin.ch -lemonde.fr -lenwhite.com -lerosua.org -lesoir.be -lesscss.org -letscorp.net -le-vpn.com -lflink.com -lflinkup.com -lflinkup.net -lflinkup.org -lhakar.org -lhasocialwork.org -liangyou.net -liansi.org -lianyue.net -liaowangxizang.net -liberal.org.hk -libertytimes.com.tw -lich355.megabyet.net -lidecheng.com -life.fly4ever.me -lighten.org.tw -like.com -limiao.net -line.me -linglingfa.com -lingvodics.com -linkideo.com -linkuswell.com -linuxconfig.org -linux-engineer.net -linux.org.hk -linuxreviews.org -linuxtoy.org -lionsroar.com -lipuman.com -listentoyoutube.com -list.ly -listorious.com -lists.debian.org -lists.w3.org -littlebigdetails.com -liudejun.com -liuhanyu.com -liujianshu.com -liu.lu -liuxiaotong.com -livedoor.jp -liveleak.com -livestation.com -livestream.com -livevideo.com -livingonline.us -livingstream.com -liwangyang.com -lizhizhuangbi.com -lkcn.net -load.to -lobsangwangyal.com -localdomain.ws -localpresshk.com -lockdown.com -lockestek.com -lofi.e-hentai.org -logbot.net -logiqx.com -logmike.com -londonchinese.ca -london.neighborhoodr.com -longhair.hk -longmusic.com -longtermly.net -longtoes.com -lookatgame.com -lookingglasstheatre.org -lookpic.com -looktoronto.com -lotuslight.org.hk -lotuslight.org.tw -lovequicksilver.com -lovesphinx.tk -lovetvshow.com -lpsg.com -lrfz.com -lrip.org -lsd.org.hk -lsforum.net -lsmchinese.org -lsmkorean.org -lsm.org -lsmwebcast.com -lsxszzg.com -ltn.com.tw -lua.org -lua-users.org -luke54.com -luke54.org -lupm.org -lushstories.com -luxebc.com -lvhai.org -lvv2.com -lyfhk.net -lyricsquote.com -macgamestore.com -macrovpn.com -macts.com.tw -mad-ar.ch -madewithcode.com -madmenunbuttoned.com -madonna-av.com -madthumbs.com -magic-net.info -mahabodhi.org -ma.hao123.com -maiio.net -mail-archive.com -maildns.xyz -maiplus.com -maizhong.org -makemymood.com -makzhou.warehouse333.com -malaysiakini.com -mangafox.com -mangafox.me -maniash.com -manicur4ik.ru -mansion.com -mansionpoker.com -maplew.com -marc.info -marco.org -marguerite.su -marines.mil -markmilian.com -martau.com -martincartoons.com -martsangkagyuofficial.org -maruta.be -marxist.com -marxist.net -marxists.org -mashable.com -mash.to -maskedip.com -matainja.com -mathable.io -mathiew-badimon.com -matome-plus.com -matome-plus.net -matsushimakaede.com -mattwilcox.net -maturejp.com -maxgif.com -maxing.jp -mayimayi.com -mcadforums.com -mcaf.ee -mcfog.com -mcreasite.com -md-t.org -mediachinese.com -mediafire.com -mediafreakcity.com -media.org.hk -medium.com -meetup.com -mefeedia.com -mefound.com -megaporn.com -megaproxy.com -megarotic.com -megavideo.com -megurineluka.com -meirixiaochao.com -melon-peach.com -meltoday.com -memedia.cn -memehk.com -meme.yahoo.com -memorybbs.com -memrijttm.org -memri.org -mercyprophet.org -meridian-trust.org -meripet.biz -meripet.com -merit-times.com.tw -meshrep.com -mesotw.com -messenger.com -metacafe.com -metarthunter.com -meteorshowersonline.com -metrolife.ca -metroradio.com.hk -meyou.jp -meyul.com -mfxmedia.com -mgoon.com -mgstage.com -mh4u.org -m.hkgalden.com -mhradio.org -michaelanti.com -michaelmarketl.com -middle-way.net -mihk.hk -mihr.com -mihua.org -mike.cz.cc -mikesoltys.com -milph.net -milsurps.com -mimiai.net -mimivip.com -mimivv.com -mindrolling.org -minghui-a.org -minghui-b.org -minghui.org -minghui.or.kr -minghui-school.org -mingjinglishi.com -mingjingnews.com -mingjingtimes.com -mingpaocanada.com -mingpao.com -mingpaomonthly.com -mingpaonews.com -mingpaony.com -mingpaosf.com -mingpaotor.com -mingpaovan.com -mingshengbao.com -minhhue.net -miniforum.org -minimalmac.com -mininova.org -ministrybooks.org -minzhuhua.net -minzhuzhanxian.com -minzhuzhongguo.org -miroguide.com -mirrorbooks.com -mitao.com.tw -mitbbs.com -mixedmedialabs.com -mixero.com -mixpod.com -mixx.com -mizzmona.com -mk5000.com -mlcool.com -mmaaxx.com -m.me -mmmca.com -mobatek.net -mobile01.com -mobileways.de -mobypicture.com -moby.to -modfetish.com -moeerolibrary.com -mofaxiehui.com -mofos.com -mog.com -molihua.org -mondex.org -moneyhome.biz -mo.nightlife141.com -monitorchina.org -monster.com -moodyz.com -moonbbs.com -morningsun.org -moroneta.com -motherless.com -motor4ik.ru -m.oulove.org -mousebreaker.com -movabletype.com -movements.org -moviefap.com -mp3buscador.com -mp3ye.eu -mpettis.com -mpfinance.com -mpinews.com -m.plixi.com -mponline.hk -mrbasic.com -mrbonus.com -mrdoob.com -mrface.com -mrslove.com -mrtweet.com -msguancha.com -m.slandr.net -mswe1.org -m-team.cc -mthruf.com -m.tweete.net -mtw.tl -muchosucko.com -mullvad.net -multiply.com -multiproxy.org -multiupload.com -mummysgold.com -muouju.com -murmur.tw -muselinks.co.jp -musicade.net -muslimvideo.com -muzi.com -muzi.net -muzu.tv -mvg.jp -mx981.com -mx.hao123.com -my03.com -myactimes.com -my-addr.com -myaudiocast.com -myav.com.tw -mybbs.us -myboooks.googlepages.com -myca168.com -mychinamyhome.com -mychinanet.com -mychinanews.com -mycnnews.com -mydad.info -myddns.com -myeasytv.com -myeclipseide.com -my-formosa.com -myforum.com.hk -myforum.com.uk -myfreecams.com -myfreepaysite.com -myfreshnet.com -myftp.info -myftp.name -my.keso.cn -mykomica.org -mylftv.com -my.mail.ru -mymom.info -mymusic.net.tw -mynetav.net -mynetav.org -mynumber.org -myopenid.com -my.opera.com -myparagliding.com -mypicture.info -mypop3.net -mypop3.org -mypopescu.com -my-private-network.co.uk -my-proxy.com -mysecondarydns.com -myshare.url.com.tw -mysinablog.com -myspace.com -mytalkbox.com -mytizi.com -mywww.biz -myz.info -naacoalition.org -naitik.net -nakido.com -nalandabodhi.org -nalandawest.org -namgyalmonastery.org -namgyal.org -namsisi.com -nanyang.com -nanyangpost.com -nanzao.com -naol.ca -national-lottery.co.uk -nationwide.com -naughtyamerica.com -navicat.com -navigeaters.com -navy.mil -nbtvpn.com -nccwatch.org.tw -nch.com.tw -ncn.org -nde.de -ndr.de -ned.org -nekoslovakia.net -netbirds.com -netcolony.com -netflix.com -netme.cc -netsneak.com -network54.com -networkedblogs.com -neverforget8964.org -new-3lunch.net -new96.ca -new-akiba.com -newcenturymc.com -newcenturynews.com -newchen.com -newgrounds.com -newipnow.com -newlandmagazine.com.au -newnews.ca -news100.com.tw -newsancai.com -news.atebits.com -newscn.org -news.cnyes.com -newsdh.com -news.ghostery.com -news.hk.msn.com -news.hkpeanut.com -newsminer.com -news.msn.com.tw -news.now.com -news.omy.sg -newspeak.cc -newspp.org -news.sina.com.hk -news.sinchew.com.my -news.singtao.ca -newstamago.com -newstapa.org -newstarnet.com -news.tvbs.com.tw -newtaiwan.com.tw -newtalk.tw -newyorktimes.com -nexon.com -next11.co.jp -nextmag.com.tw -nextmedia.com -nexton-net.jp -nexttv.com.tw -nf.id.au -nga.mil -ngensis.com -nhentai.net -nic.cz.cc -nic.google -nicovideo.tw -nighost.org -ninecommentaries.com -ninjacloak.com -ninjaproxy.ninja -nintendium.com -nintendowifi.net -ninth.biz -niusnews.com -njactb.org -njuice.com -nlfreevpn.com -nobelprize.org -nobel.se -nobodycanstop.us -no-ip.org -nokogiri.org -nokola.com -noobbox.com -noodlevpn.com -norbulingka.org -nordstrom.com -nordstromimage.com -nordstromrack.com -nordvpn.com -notes.alexdong.com -nottinghampost.com -novelasia.com -nownews.com -nowtorrents.com -noypf.com -npa.go.jp -npnt.me -nps.gov -nrk.no -ns01.biz -ns01.info -ns01.us -ns02.biz -ns02.info -ns02.us -ns1.name -ns2.name -ns3.name -ntd.tv -ntdtv.ca -ntdtv.co -ntdtv.co.kr -ntdtv.com -ntdtv.cz -ntdtvla.com -ntdtv.org -ntdtv.ru -ntrfun.com -nubiles.net -nuexpo.com -nukistream.com -nurgo-software.com -nusatrip.com -nuuvem.com -nuvid.com -nuzcom.com -nvquan.org -nwtca.org -nyaa.eu -nyaa.se -nydus.ca -nylon-angel.com -nylonstockingsonline.com -nysingtao.com -ny.stgloballink.com -nytco.com -nyt.com -nytimes.com -nytimg.com -ny.visiontimes.com -nzchinese.com -nzchinese.net.nz -observechina.net -obutu.com -ocaspro.com -occupytiananmen.com -oclp.hk -ocreampies.com -ocry.com -october-review.org -oculus.com -offbeatchina.com -officeoftibet.com -ogaoga.org -oikos.com.tw -oiktv.com -oizoblog.com -okayfreedom.com -okk.tw -old-cat.net -old.nabble.com -olumpo.com -olympicwatch.org -omgili.com -omni7.jp -omnitalk.com -omnitalk.org -on2.com -on.cc -onedrive.live.com -onedumb.com -one.xthost.info -onion.city -onlinecha.com -online.recoveryversion.org -onlineyoutube.com -onlylady.cn -onmoon.com -onmoon.net -onmypc.biz -onmypc.info -onmypc.net -onmypc.org -onmypc.us -onthehunt.com -ontrac.com -oopsforum.com -ooyala.com -openallweb.com -open.com.hk -opendemocracy.net -opendn.xyz -openervpn.in -openid.net -openleaks.org -openvpn.net -openvpn.org -openwebster.com -opml.radiotime.com -opnir.com -organcare.org.tw -organharvestinvestigation.net -organiccrap.com -orgfree.com -orientaldaily.com.my -orient-doll.com -orn.jp -orzistic.org -osfoora.com -otnd.org -otto.de -otzo.com -ourdearamy.com -ourhobby.com -oursogo.com -oursteps.com.au -oursweb.net -ourtv.hk -overlapr.com -overplay.net -oversea.istarshine.com -owl.li -ow.ly -oyax.com -ozchinese.com -ozxw.com -ozyoyo.com -pachosting.com -pacificpoker.com -packages.debian.org -packetix.net -pacopacomama.com -padmanet.com -page2rss.com -page.bid.yahoo.com -pagodabox.com -paint.net -palacemoon.com -paldengyal.com -paljorpublications.com -paltalk.com -panacom.co.jp -panamapapers.sueddeutsche.de -pandapow.net -pandavpn-jp.com -pandora.com -pandora.tv -panluan.net -panoramio.com -pao-pao.net -paperb.us -paper.li -paper-replika.com -parade.com -paradisepoker.com -parislemon.com -parkansky.com -partycasino.com -partypoker.com -passion.com -passiontimes.hk -pastebin.com -pastie.org -pbs.org -pbwiki.com -pbworks.com -pbxes.com -pbxes.org -pcanywhere.net -pcdiscuss.com -pcdvd.com.tw -pchome.com.tw -pcij.org -pct.org.tw -pcworld.com -pdetails.com -pdproxy.com -pds.nasa.gov -peace.ca -peacefire.org -peacehall.com -pearlher.org -peeasian.com -peerpong.com -pekingduck.org -pemulihan.or.id -penchinese.com -penchinese.net -pengyulong.com -pen.io -penisbot.com -penthouse.com -peoplebookcafe.com -peoplenews.tw -peopo.org -percy.in -perfectgirls.net -perfectvpn.net -perfspot.com -perlhowto.com -persecutionblog.com -pfd.org.hk -phapluan.org -phayul.com -philborges.com -philly.com -phncdn.com -phosphation13.rssing.com -photodharma.net -photofocus.com -photos.dailyme.com -photo.utom.us -phuquocservices.com -picasaweb.com -picidae.net -picturesocial.com -pidown.com -pign.net -pimg.tw -pin6.com -ping.fm -pinoy-n.com -pioneer-worker.forums-free.com -piposay.com -piraattilahti.org -piring.com -pixanalytics.com -pixelqi.com -pixfs.net -pixnet.cc -pixnet.net -pixplug.in -pk.com -placemix.com -planetsuzy.org -playboy.com -playboyplus.com -playno1.com -playpcesor.com -plays.com.tw -plm.org.hk -plunder.com -plurk.com -plurktop.mmdays.com -plus28.com -plusbb.com -pmatehunter.com -pmates.com -po2b.com -podictionary.com -pokerstars.com -pokerstars.net -politicalchina.org -politicalconsultation.org -polymerhk.com -polymer-project.org -popo.tw -popvote.hk -popyard.com -popyard.org -porn2.com -porn5.com -pornbase.org -porn.com -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 -port25.biz -portablevpn.nl -portis21.spaces.live.com -pose.com -poskotanews.com -post852.com -postadult.com -post.anyu.org -posterous.com -postimg.org -post.ly -power.com -powercx.com -powerphoto.org -prayforchina.net -premeforwindows7.com -presentationzen.com -prestige-av.com -previewshots.com -prisoneralert.com -pritunl.com -privacybox.de -privateinternetaccess.com -privatepaste.com -privatetunnel.com -privatevpn.com -procopytips.com -program-think.spaces.live.com -prosiben.de -provideocoalition.com -provpnaccounts.com -proxfree.com -proxifier.com -proxomitron.info -proxpn.com -proxyanonimo.es -proxydns.com -proxylist.org.uk -proxynetwork.org.uk -proxy.org -proxypy.net -proxyroad.com -proxytunnel.net -proyectoclubes.com -prozz.net -psblog.name -psiphon3.com -psiphon.ca -psiphon.civisec.org -pts.org.tw -ptt.cc -pttvan.org -pubu.com.tw -puffinbrowser.com -puffstore.com -pullfolio.com -pulse.yahoo.com -pure18.com -pureconcepts.net -pureinsight.org -purepdf.com -purevpn.com -purplelotus.org -pussyspace.com -putihome.org -putlocker.com -putty.org -puuko.com -pwned.com -python.com -python.com.tw -qanote.com -qgirl.com.tw -qhigh.com -qidian.ca -qienkuen.org -qi-gong.me -qiwen.lu -qixianglu.cn -qkshare.com -qoos.com -qpoe.com -qq.co.za -qstatus.com -qtrac.eu -qtweeter.com -quadedge.com -questvisual.com -quitccp.net -quitccp.org -quran.com -quranexplorer.com -qusi8.net -qvodzy.org -qxbbs.org -r18.com -radicalparty.org -radiko.jp -radioaustralia.net.au -radiohilight.net -radiovaticana.org -radiovncr.com -rael.org -ra.gg -raggedbanner.com -raidcall.com.tw -raidtalk.com.tw -raizoji.or.jp -rangwang.biz -rangzen.com -rangzen.net -rangzen.org -ranyunfei.com -rapbull.net -rapidmoviez.com -rapidshare8.com -rapidsharedata.com -rapidvpn.com -raremovie.cc -raremovie.net -rayfme.com -razyboard.com -rcinet.ca -rconversation.blogs.com -rd.com -rdio.com -read100.com -readingtimes.com.tw -readmoo.com -readydown.com -realcourage.org -realforum.zkiz.com -realraptalk.com -rebatesrule.net -recaptcha.net -recordhistory.org -recovery.org.tw -recoveryversion.com.tw -redchinacn.net -redchinacn.org -redhotlabs.com -redtube.com -referer.us -reflectivecode.com -registry.google -relaxbbs.com -relay.com.tw -releaseinternational.org -religioustolerance.org -renminbao.com -renyurenquan.org -retweeteffect.com -retweetist.com -retweetrank.com -reuters.com -revleft.com -revsci.net -revver.com -rfachina.com -rfamobile.org -rfa.org -rfaweb.org -rferl.org -rfi.fr -rhcloud.com -rigpa.org -riku.me -rileyguide.com -ritouki.jp -rlwlw.com -rmjdw132.info -rmjdw.com -rnw.nl -roadshow.hk -robtex.com -robustnessiskey.com -rocket-inc.net -rocmp.org -roc-taiwan.org -rojo.com -rolia.net -ronjoneswriter.com -roodo.com -rosechina.net -rotten.com -rsf-chinese.org -rsf.org -rsgamen.org -rssmeme.com -rtalabel.org -rthk.hk -rthk.org.hk -rti.org.tw -rtycminnesota.org -ruanyifeng.com -rukor.org -rushbee.com -rutube.ru -ruyiseek.com -rxhj.net -s1heng.com -s1.nudezz.com -s1s1s1.com -s8forum.com -sacom.hk -sadistic-v.com -sadpanda.us -safervpn.com -sa.hao123.com -saiq.me -sakuralive.com -sakya.org -salvation.org.hk -samair.ru -sambhota.org -sammyjs.org -samsoff.es -sandnoble.com -sankaizok.com -sanmin.com.tw -sapikachu.net -savemedia.com -savetibet.de -savetibet.fr -savetibet.nl -savetibet.org -savetibet.ru -savevid.com -say2.info -sbme.me -scanscout.com -scasino.com -schema.org -sciencenets.com -scieron.com -scihub.org -scmpchinese.com -scmp.com -scorecardresearch.com -scramble.io -scribd.com -scriptspot.com -s-cute.com -s-dragon.org -seapuff.com -search.aol.com -search.disconnect.me -searchtruth.com -secretchina.com -secretgarden.no -secretsline.biz -secure.hustler.com -secure.logmein.com -securetunnel.com -secure.wikimedia.org -securitykiss.com -seesmic.com -seevpn.com -seezone.net -sejie.com -sellclassics.com -sendoid.com -sendsmtp.com -sendspace.com -serveuser.com -serveusers.com -sesawe.net -sesawe.org -sethwklein.net -setn.com -sevenload.com -sex-11.com -sex3.com -sex8.cc -sexandsubmission.com -sexbot.com -sex.com -sexhuang.com -sexhu.com -sexidude.com -sexinsex.net -sextvx.com -sexxxy.biz -sfileydy.com -sfshibao.com -sftindia.org -sftuk.org -shadow.ma -shadowsky.xyz -shadowsocks.com -shadowsocks.org -shahamat-english.com -shambhalasun.com -shangfang.org -shapeservices.com -sharebee.com -sharecool.org -share.ovi.com -share.skype.com -share.youthwant.com.tw -sharkdolphin.com -sharpdaily.com.hk -sharpdaily.hk -sharpdaily.tw -shat-tibet.com -shaunthesheep.com -sheikyermami.com -shellfire.de -shellmix.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 -shop2000.com.tw -shopping.com -showbiz.omy.sg -showhaotu.com -showtime.jp -shutterstock.com -shwchurch3.com -shwchurch.org -sidelinesnews.com -sidelinessportseatery.com -sijihuisuo.club -sijihuisuo.com -simplecd.me -simplecd.org -simpleproductivityblog.com -sina.com.tw -singaporepools.com.sg -singfortibet.com -singpao.com.hk -singtao.com -singularitys.spaces.live.com -sinoants.com -sinocast.com -sinocism.com -sino-monthly.com -sinomontreal.ca -sinonet.ca -sinopitt.info -sinoquebec.com -sis001.com -sis001.us -sis.xxx -site90.net -sitebro.tw -sitekreator.com -siteks.uk.to -site.locql.com -sitemaps.org -sites.google.com -sitetag.us -sixth.biz -siyi123123123.spaces.live.com -sjrt.org -sjum.cn -sketchappsources.com -skimtube.com -skybet.com -skyvegas.com -slacker.com -slavasoft.com -slaytizle.com -slheng.com -slickvpn.com -slideshare.net -slinkset.com -slutload.com -slyip.com -slyip.net -smartdnsproxy.com -smchbooks.com -smhric.org -smyxy.org -snapchat.com -snaptu.com -sndcdn.com -sneakme.net -snooper.co.uk -snowlionpub.com -sobees.com -socialwhale.com -sockscap64.com -sockslist.net -soc.mil -so.com -socrec.org -sod.co.jp -softether.co.jp -softether-download.com -softether.org -softwarebychuck.com -softwaredownload.gitbooks.io -so-ga.net -sogclub.com -sogou.com -sogrady.me -sohcradio.com -sohfrance.org -soh.tw -sokamonline.com -solarsystem.nasa.gov -solozorro.tk -somee.com -so-news.com -songjianjun.com -sonicbbs.cc -sonidodelaesperanza.org -sopcast.com -sopcast.org -sorazone.net -sorting-algorithms.com -soso.com -sos.org -sostibet.org -soubory.com -soulcaliburhentai.net -soul-plus.net -soumo.info -soundcloud.com -soundofhope.kr -soundofhope.org -soup.io -soupofmedia.com -sourceforge.net -sourcewadio.com -southnews.com.tw -sowers.org.hk -space-scape.com -spankbang.com -spankwire.com -spb.com -speakerdeck.com -speckleapp.com -specxinzl.jigsy.com -speedpluss.org -spem.at -spencertipping.com -spicevpn.com -spike.com -spinejs.com -sports.williamhill.com -spotflux.com -spotify.com -spring4u.info -springboardplatform.com -sprite.org -sproutcore.com -sproxy.info -squarespace.com -squirly.info -srcf.ucam.org -srocket.us -ssh91.com -ssl443.org -sspro.ml -sss.camp -sstatic.net -sstmlt.net -stage64.hk -standupfortibet.org -starfishfx.com -starp2p.com -startpage.com -statcounter.com -state168.com -static.comico.tw -static.digg.com -static-economist.com -staticflickr.com -statueofdemocracy.org -status.twhirl.org -stc.com.sa -steel-storm.com -stepchina.com -stephaniered.com -sthoo.com -stickam.com -stickeraction.com -stileproject.com -sto.cc -stonegames.net -stoneip.info -stoptibetcrisis.net -storagenewsletter.com -stories.google -storify.com -stormmediagroup.com -storm.mg -stoweboyd.com -stranabg.com -streamingthe.net -strongvpn.com -strongwindpress.com -studentsforafreetibet.org -student.tw -stuffimreading.com -stuffimreading.net -stumbleupon.com -stupidvideos.com -subacme.rerouted.org -sublexical.spaces.live.com -sufeng.org -sugarsync.com -sugobbs.com -suissl.com -summify.com -sumrando.com -sun1911.com -sunmedia.ca -sunporno.com -sunskyforum.com -sunvpn.net -suoluo.org -superpages.com -supervpn.net -suprememastertv.com -surfeasy.com -surfeasy.com.au -suroot.com -surrenderat20.net -suyangg.com -svwind.com -swagbucks.com -sweux.com -swift-tools.net -swissvpn.net -switch1.jp -switchvpn.net -sydneytoday.com -sylfoundation.org -syncback.com -synergyse.com -sysadmin1138.net -sysresccd.org -sytes.net -szbbs.net -szetowah.org.hk -t35.com -t66y.com -t88.ca -taa-usa.org -taaze.tw -tabtter.jp -tacem.org -taconet.com.tw -taedp.org.tw -tafaward.com -tafm.org -tagwalk.com -tagwa.org.au -tahr.org.tw -taipeisociety.org -taiwanbible.com -taiwancon.com -taiwandaily.net -taiwandc.org -taiwanembassy.org -taiwanjustice.com -taiwankiss.com -taiwannation.50webs.com -taiwannation.com -taiwannation.com.tw -taiwanncf.org.tw -taiwannews.com.tw -taiwan-sex.com -taiwantoday.tw -taiwantp.net -taiwantt.org.tw -taiwanus.net -taiwanyes.com -taiwanyes.ning.com -talk853.com -talkboxapp.com -talkonly.net -tamiaode.tk -tanc.org -tangben.com -tangren.us -taoism.net -taolun.info -tap11.com -tapanwap.com -target.com -tascn.com.au -taup.net -taweet.com -tbcollege.org -tbicn.org -tbi.org.hk -tbjyt.org -tbpic.info -tbsec.org -tbskkinabalu.page.tl -tbsmalaysia.org -tbsn.org -tbs-rainbow.org -tbsseattle.org -tbssqh.org -tbswd.org -tbtemple.org.uk -tbthouston.org -tccwonline.org -tcewf.org -tchrd.org -tcnynj.org -t.co -teamamericany.com -teamseesmic.com -teashark.com -techlifeweb.com -techparaiso.com -teck.in -teeniefuck.net -teensinasia.com -telecomspace.com -telegramdownload.com -telegram.org -telegraph.co.uk -tenacy.com -tensorflow.org -tew.org -thaicn.com -theampfactory.com -theappleblog.com -theatrum-belli.com -thebcomplex.com -theblemish.com -thebobs.com -thebodyshop-usa.com -thecenter.mit.edu -thechinabeat.org -thedailywh.at -thedalailamamovie.com -thedieline.com -thedw.us -thegatesnotes.com -thegly.com -thehots.info -thehousenews.com -thehungrydudes.com -thehun.net -theinitium.com -theinternetwishlist.com -thelifeyoucansave.com -thelius.org -thenewslens.com -thepiratebay.org -thepiratebay.se -theportalwiki.com -theqii.info -thereallove.kr -therock.net.nz -thesartorialist.com -thespeeder.com -thestandnews.com -thetibetcenter.org -thetibetconnection.org -thetibetmuseum.org -thetibetpost.com -thetrotskymovie.com -thevivekspot.com -thewgo.org -th.hao123.com -thinkingtaiwan.com -thinkwithgoogle.com -thisav.com -thisiswhyyouarefat.com -thkphoto.com -thlib.org -thomasbernhard.org -threatchaos.com -throughnightsfire.com -thumbzilla.com -thywords.com -thywords.com.tw -tiananmenduizhi.com -tiananmenmother.org -tiananmenuniv.com -tiananmenuniv.net -tiandixing.org -tianhuayuan.com -tianlawoffice.com -tiantibooks.org -tianti.io -tianzhu.org -tibet3rdpole.org -tibetaction.net -tibetaid.org -tibetalk.com -tibetanaidproject.org -tibetan-alliance.org -tibetanarts.org -tibetanbuddhistinstitute.org -tibetancommunityuk.net -tibetanculture.org -tibetanfeministcollective.org -tibetan.fr -tibetanlanguage.org -tibetanliberation.org -tibetanpaintings.com -tibetanphotoproject.com -tibetanpoliticalreview.org -tibetanreview.net -tibetanwomen.org -tibetanyouthcongress.org -tibetanyouth.org -tibet.a.se -tibet.at -tibet.ca -tibetcharity.dk -tibetcharity.in -tibetchild.org -tibetcity.com -tibetcollection.com -tibet.com -tibetcorps.org -tibet-envoy.eu -tibetexpress.net -tibetfocus.com -tibet-foundation.org -tibet.fr -tibetfund.org -tibetgermany.com -tibetgermany.de -tibethaus.com -tibetheritagefund.org -tibethouse.jp -tibethouse.org -tibet-house-trust.co.uk -tibethouse.us -tibet-info.net -tibetinfonet.net -tibet-initiative.de -tibetjustice.org -tibetkomite.dk -tibet-munich.de -tibetmuseum.org -tibet.net -tibetnetwork.org -tibet.nu -tibetoffice.ch -tibetoffice.com.au -tibetoffice.eu -tibetoffice.org -tibetonline.com -tibetonline.tv -tibetoralhistory.org -tibet.org -tibet.org.tw -tibetpolicy.eu -tibetrelieffund.co.uk -tibetsites.com -tibetsociety.com -tibetsun.com -tibetsupportgroup.org -tibetswiss.ch -tibettelegraph.com -tibettimes.net -tibet.to -tibetwrites.org -ticket.com.tw -tidyread.com -tiltbrush.com -timdir.com -time.com -times.hinet.net -timsah.com -tintuc101.com -tiny.cc -tinychat.com -tinypaste.com -tinypng.com -tistory.com -tjholowaychuk.com -tkcs-collins.com -tkforum.tk -tma.co.jp -tmagazine.com -tmdfish.com -tmi.me -tmpp.org -tnaflix.com -t.neolee.cn -tngrnow.com -tngrnow.net -tnp.org -togetter.com -toh.info -tokyo-247.com -tokyocn.com -tokyo-hot.com -tokyo-porn-tube.com -tomayko.com -tomsc.com -tongil.or.kr -tono-oka.jp -tonyyan.net -toodoc.com -toonel.net -top81.ws -topic.youthwant.com.tw -topnews.in -to-porno.com -topshare.us -topshareware.com -topstyle4.com -topsy.com -toptip.ca -tora.to -tor.blingblingsquad.net -torcn.com -torguard.net -torproject.org -torrentcrazy.com -torrentprivacy.com -torrentproject.se -torrenty.org -torrentz.eu -tor.updatestar.com -torvpn.com -t.orzdream.com -tosh.comedycentral.com -totalvpn.com -touch99.com -toutfr.com -towngain.com -toypark.in -toythieves.com -toytractorshow.com -tparents.org -tpi.org.tw -traffichaus.com -transgressionism.org -translate.google.cn -transparency.org -travelinlocal.com -treemall.com.tw -trendsmap.com -trialofccp.org -trickip.net -trickip.org -tripod.com -trouw.nl -trtc.com.tw -trt.net.tr -truebuddha-md.org -trulyergonomic.com -trustedbi.com -truth101.co.tv -truthcn.com -truthontour.org -truveo.com -tsctv.net -tsdr.uspto.gov -tsemtulku.com -tsquare.tv -tsunagarumon.com -tsu.org.tw -tt1069.com -tt-rss.org -tttan.com -tu8964.com -tuanzt.com -tubaholic.com -tube8.com -tube911.com -tubecao.com -tube.com -tubecup.com -tubegals.com -tubeislam.com -tubewolf.com -tuidang.net -tuidang.org -tuidang.se -tui.orzdream.com -tuitwit.com -tumblr.awflasher.com -tumblr.com -tumblweed.org -tumutanzi.com -tunein.com -tunnelbear.com -tuo8.cc -tuo8.club -tuo8.fit -tuo8.hk -tuo8.in -tuo8.ninja -tuo8.org -tuo8.pw -turansam.org -turbobit.net -turbohide.com -turbotwitter.com -turningtorso.com -turntable.fm -tushycash.com -tuvpn.com -tuxtraining.com -tuzaijidi.com -tvants.com -tvboxnow.com -tv.com -tvider.com -tv-intros.com -tvmost.com.hk -tvplayvideos.com -tvunetworks.com -tw01.org -twaitter.com -twapperkeeper.com -twa.sh -twaud.io -twbbs.net.tw -twbbs.org -twbbs.tw -twblogger.com -tweepguide.com -tweeplike.me -tweepmag.com -tweepml.org -tweetbackup.com -tweetboard.com -tweetboner.biz -tweetdeck.com -tweetedtimes.com -tweetmeme.com -tweetmylast.fm -tweetphoto.com -tweetrans.com -tweetree.com -tweettunnel.com -tweetwally.com -tweetymail.com -twerkingbutt.com -twftp.org -tw.gigacircle.com -tw.hao123.com -twibase.com -twibble.de -twibbon.com -twibs.com -twicsy.com -twiends.com -twifan.com -twiffo.com -twiggit.org -twilightsex.com -twilog.org -twimbow.com -twimg.com -twimg.edgesuite.net -twindexx.com -twip.me -twipple.jp -twishort.com -twistar.cc -twisterio.com -twister.net.co -twisternow.com -twistory.net -twit2d.com -twitbrowser.net -twitcause.com -twitese.spaces.live.com -twitgether.com -twitgoo.com -twitiq.com -twitlonger.com -twitmania.com -twitoaster.com -twitonmsn.com -twitpic.com -twitreferral.com -twitstat.com -twittbot.net -twitter4j.org -twitter.com -twittercounter.com -twitterfeed.com -twittergadget.com -twitter.jp -twitterkr.com -twittermail.com -twitterrific.com -twittertim.es -twitthat.com -twitturk.com -twitturly.com -twitvid.com -twitzap.com -twiyia.com -tw.jiepang.com -tw.knowledge.yahoo.com -tw.mall.yahoo.com -tw.mobi.yahoo.com -tw.myblog.yahoo.com -tw.news.yahoo.com -twnorth.org.tw -tw-npo.org -tw.rd.yahoo.com -twreg.info -twstar.net -tw.streetvoice.com -twt.fm -twtkr.com -tw.tomonews.net -twtrland.com -twt.tl -twttr.com -twurl.nl -tw.voa.mobi -twyac.org -tw.yahoo.com -txxx.com -tycool.com -tynsoe.org -typepad.com -tzangms.com -ub0.cc -ubddns.org -uberproxy.net -ucdc1998.org -uc-japan.org -uderzo.it -udn.com -uforadio.com.tw -ufreevpn.com -ugo.com -uhdwallpapers.org -uhrp.org -uighurbiz.net -uighur.narod.ru -uighur.nl -ukcdp.co.uk -ukliferadio.co.uk -ulike.net -ultravpn.fr -ultraxs.com -unblock.cn.com -unblockdmm.com -unblocksit.es -unblock-us.com -uncyclomedia.org -uncyclopedia.hk -uncyclopedia.info -uncyclopedia.tw -underwoodammo.com -unholyknight.com -uni.cc -unicode.org -unification.net -unification.org.tw -uniteddaily.com.my -unitedsocialpress.com -unix100.com -unknownspace.org -unodedos.com -unpo.org -untraceable.us -uocn.org -upcoming.yahoo.com -update.playstation.net -upholdjustice.org -upload4u.info -uploaded.to -uploadstation.com -upload.wikimedia.org -upornia.com -uproxy.org -upwill.org -ur7s.com -urbansurvival.com -urlborg.com -urlparser.com -usacn.com -usaip.eu -userapi.nytlog.com -usfk.mil -usinfo.state.gov -usma.edu -usmc.mil -us.to -ustream.tv -usus.cc -utopianpal.com -uu-gg.com -uushare.com -uvwxyz.xyz -uwants.com -uwants.net -uyghuramerican.org -uyghurcanadiansociety.org -uyghurcongress.org -uyghur.co.uk -uyghurensemble.co.uk -uyghur-j.org -uyghurpen.org -uyghurpress.com -uyghurstudies.org -uygur.org -v2ex.com -v2ray.com -v70.us -vaayoo.com -value-domain.com -van001.com -van698.com -vanemu.cn -vanilla-jp.com -vanpeople.com -vansky.com -vapurl.com -vatn.org -vcfbuilder.org -vcf-online.org -veempiire.com -vegasred.com -vegas.williamhill.com -velkaepocha.sk -venbbs.com -venchina.com -ventureswell.com -veoh.com -verizon.net -vermonttibet.org -versavpn.com -verybs.com -vevo.com -vft.com.tw -viber.com -vica.info -victimsofcommunism.org -vidble.com -video.aol.ca -video.aol.com -video.aol.co.uk -video.ap.org -videobam.com -videodetective.com -video.fdbox.com -video.foxbusiness.com -videomega.tv -videomo.com -videopediaworld.com -video.tiscali.it -video.yahoo.com -vid.me -vidoemo.com -vietdaikynguyen.com -views.fm -vijayatemple.org -viki.com -vimeocdn.com -vimeo.com -vimgolf.com -vimperator.org -vincnd.com -vinniev.com -visibletweets.com -vital247.org -viu.com -vivahentai4u.net -vivatube.com -vivthomas.com -vizvaz.com -vjmedia.com.hk -vllcs.org -vlog.xuite.net -vmixcore.com -vn.hao123.com -voa-11.akacast.akamaistream.net -voacantonese.com -voachineseblog.com -voachinese.com -voagd.com -voanews.com -voatibetan.com -voatibetanenglish.com -vocativ.com -vocn.tv -vot.org -vovo2000.com -voxer.com -voy.com -vpn4all.com -vpnaccount.org -vpnbook.com -vpncoupons.com -vpndada.com -vpnfan.com -vpnfire.com -vpnforgame.net -vpngate.jp -vpngate.net -vpngratis.net -vpnhq.com -vpninja.net -vpnmaster.com -vpnpick.com -vpnpop.com -vpnpronet.com -vpnreactor.com -vpnreviewz.com -vpnsecure.me -vpnsp.com -vpntunnel.com -vpnuk.info -vpnunlimitedapp.com -vpnvip.com -vporn.com -vpser.net -vraiesagesse.net -v-state.org -vtunnel.com -vuku.cc -w3schools.com -waffle1999.com -wahas.com -waigaobu.com -waikeung.org -waiwaier.com -wallornot.org -wallpapercasa.com -wallproxy.com -wallproxy.com.cn -waltermartin.com -waltermartin.org -wanderinghorse.net -wangafu.net -wangjinbo.org -wanglixiong.com -wango.org -wangruoshui.net -wangyi64.spaces.live.com -want-daily.com -wanz-factory.com -wapedia.mobi -warbler.iconfactory.net -waselpro.com -washeng.net -watchinese.com -watchmygf.net -wattpad.com -waveprotocol.org -wav.tv -wdf5.com -wearehairy.com -wearn.com -web2project.net -webbang.net -webevader.org -webfee.tk -webfreer.com -webjb.org -weblagu.com -webmproject.org -webrtc.org -webrush.net -webshots.com -website.informer.com -websitepulse.com -webs-tv.net -webwarper.net -webworkerdaily.com -weeewooo.net -weekmag.info -wefightcensorship.org -wefong.com -weibo.com -weiboleak.com -weiboscope.jmsc.hku.hk -weigegebyc.dreamhosters.com -weijingsheng.org -weiming.info -weiquanwang.org -weisuo.ws -wellplacedpixels.com -welovecock.com -wemigrate.org -wengewang.com -wengewang.org -wenhui.ch -wenku.com -wenxuecity.com -wenyunchao.com -wenyunchao.spaces.live.com -wepn.info -westca.com -westernshugdensociety.org -westernwolves.com -westkit.net -westpoint.edu -wetplace.com -wetpussygames.com -wexiaobo.org -wezhiyong.org -wezone.net -wforum.com -wha.la -whatblocked.com -whatbrowser.org -wheatseeds.org -wheelockslatin.com -whereiswerner.com -wheretowatch.com -whippedass.com -whitebear.freebearblog.org -whodns.xyz -whotalking.com -whydidyoubuymethat.com -whylover.com -whyx.org -w.idaiwan.com -wikaba.com -wiki.cnitter.com -wiki.gamerp.jp -wiki.jqueryui.com -wiki.keso.cn -wikileaks.ch -wikileaks.de -wikileaks.eu -wikileaks-forum.com -wikileaks.lu -wikileaks.org -wikileaks.pl -wikilivres.info -wikimapia.org -wikimedia.org.mo -wiki.moegirl.org -wikinet.org -wiki.oauth.net -wikipedia.org -wiki.phonegap.com -wikiwiki.jp -wikkii.com -wildammo.com -williamlong.spaces.live.com -willw.net -windowsphoneme.com -wingamestore.com -winning11.com -winwhispers.info -wiredbytes.com -wiredpen.com -wireshark.org -wisdompubs.org -wisevid.com -withgoogle.com -witnessleeteaching.com -witopia.net -wizcrafts.net -wjbk.org -wlcnew.jigsy.com -wlx.sowiki.net -wnacg.com -wn.com -woeser.com -wokar.org -wolfax.com -womensrightsofchina.org -woopie.jp -woopie.tv -wordboner.com -wordpress.com -wordsandturds.com -w.org -workatruna.com -workerdemo.org.hk -workersthebig.net -worldcat.org -worldjournal.com -worldvpn.net -worstthingieverate.com -wo.tc -wow.com -wowgirls.com -wowlegacy.ml -wow-life.net -wowporn.com -woxinghuiguo.com -woyaolian.org -wozy.in -wp.com -wpoforum.com -wqlhw.com -wqyd.org -wrchina.org -wretch.cc -writer.zoho.com -wsgzao.github.io -wsj.com -wsjhk.com -wsj.net -wtbn.org -wtfpeople.com -wuala.com -wuerkaixi.com -wufafangwen.com -wufi.org.tw -wuguoguang.com -wujieliulan.com -wujie.net -wukangrui.net -wwitv.com -www1.biz -www.6v6dota.com -www.ajsands.com -www.americorps.gov -www.antd.org -www.aolnews.com -www.bulbous.freeserve.co.uk -www.cmoinc.org -www.dfanning.com -www.dw.com -www.dwheeler.com -www.freetibet.org -www.getyouram.com -www.gmiddle.com -www.gmiddle.net -www.goldenmelody.com.tw -wwwhost.biz -www.idlcoyote.com -www.klip.me -www.lamenhu.com -www.linksalpha.com -www.loiclemeur.com -www.monlamit.org -www.moztw.org -www.m-sport.co.uk -www.mycould.com -www.orchidbbs.com -www.owind.com -www.oxid.it -www.powerpointninja.com -www.s4miniarchive.com -www.stackfile.com -www.supertweet.net -www.taup.org.tw -www.tiffanyarment.com -www.tv.com -www.urbanoutfitters.com -www.vegorpedersen.com -www.vpncup.com -www.wangruowang.org -www.wan-press.org -www.websnapr.com -www.wet123.com -www.zaurus.org.uk -wzyboy.im -x1949x.com -x24hr.com -x365x.com -xanga.com -x-art.com -xa.yimg.com -xbabe.com -x-berry.com -xbookcn.com -xcafe.in -xcity.jp -xcritic.com -xerotica.com -xfinity.com -xfm.pp.ru -xgmyd.com -xh4n.cn -xhamster.com -xianchawang.net -xianjian.tw -xianqiao.net -xiaochuncnjp.com -xiaod.in -xiaohexie.com -xiaolan.me -xiaoma.org -xiezhua.com -xihua.es -xing.com -xinhuanet.org -xinmiao.com.hk -xinqimeng.over-blog.com -xinsheng.net -xinshijue.com -xinyubbs.net -xiongpian.com -xiuren.org -xizang-zhiye.org -xjp.cc -xjtravelguide.com -xlfmtalk.com -xlfmwz.info -xml-training-guide.com -xmovies.com -xmusic.fm -xn--4gq171p.com -xn--p8j9a0d9c9a.xn--q9jyb4c -xnxx.com -xpdo.net -xpud.org -xrentdvd.com -xskywalker.com -xtube.com -xuchao.net -xuchao.org -xuzhiyong.net -xuzhuoer.com -xvedios.com -xvideo.cc -xvideos.com -xvideos.es -x-wall.org -xxbbx.com -xxlmovies.com -xxuz.com -xxx.com -xxxfuckmom.com -xxxx.com.au -xxxy.biz -xxxy.info -xxxymovies.com -xysblogs.org -xys.dxiong.com -xys.org -xyy69.com -xyy69.info -yahoo.cn -yahoo.com.hk -yakbutterblues.com -yam.com -yam.org.tw -yanghengjun.com -yanghengjun.spaces.live.com -yangjianli.com -yasni.co.uk -yasukuni.or.jp -ydy.com -yeahteentube.com -yecl.net -yeelou.com -yeeyi.com -yegle.net -yes123.com.tw -yesasia.com -yesasia.com.hk -yes-news.com -yes.xxx -yezimary.spaces.live.com -yfrog.com -ygto.com -yhcw.net -yibada.com -yibaochina.com -yidio.com -yilubbs.com -yingsuoss.com -yi.org -yipub.com -yobt.com -yogichen.org -yong.hu -yorkbbs.ca -youdao.com -youdontcare.com -youjizz.com -youmaker.com -youpai.org -youporn.com -youporngay.com -yourepeat.com -your-freedom.net -yourlisten.com -yourlust.com -yourprivatevpn.com -yourtrap.com -yousendit.com -youshun12.com -youthbao.com -youthnetradio.org -youtu.be -youtubecn.com -youtube.com -youtubeeducation.com -youtube-nocookie.com -youversion.com -youxu.info -ytht.net -ytimg.com -yuanming.net -yuanzhengtang.org -yulghun.com -yunchao.net -yuvutu.com -yvesgeleyn.com -yx51.net -yyii.org -yymaya.com -yzzk.com -zacebook.com -zalmos.com -zannel.com -zaobao.com -zaobao.com.sg -zaozon.com -zapto.org -zarias.com -zattoo.com -zdnet.com.tw -zello.com -zengjinyan.org -zengjinyan.spaces.live.com -zeutch.com -zfreet.com -zgsddh.com -zgzcjj.net -zhanbin.net -zhangboli.net -zhangtianliang.com -zhao.1984.city -zhao.jinhai.de -zhenghui.org -zhengwunet.org -zhenlibu1984.com -zhenlibu.info -zhenxiang.biz -zhinengluyou.com -zhllg.spaces.live.com -zh.netlog.com -zhonggtuotese.net -zhongguo.ca -zhongguorenquan.org -zhongguotese.net -zhongmeng.org -zhongsou.com -zh.pokerstrategy.com -zhreader.com -zh-tw.justin.tv -zhuanxing.cn -zhuatieba.com -zhuichaguoji.org -zh.uncyclopedia.wikia.com -zh.wikinews.org -zh.wikisource.org -zh.wikivoyage.org -zh.wiktionary.org -ziddu.com -zillionk.com -zinio.com -ziplib.com -ziporn.com -zkaip.com -zmw.cn -zomobo.net -zonaeuropa.com -zonghexinwen.com -zonghexinwen.net -zootool.com -zoozle.net -zozotown.com -zshare.net -zsrhao.com -zuobiao.me -zuo.la -zuola.com -zvereff.com -zynaima.com -zynamics.com -zyns.com -zyzc9.com -zyzg.us -zzcartoon.com -zzux.com diff --git a/package/lean/ipset-lists/files/etc/gfwlist/unblock-youku b/package/lean/ipset-lists/files/etc/gfwlist/unblock-youku deleted file mode 100644 index 9306dcefd..000000000 --- a/package/lean/ipset-lists/files/etc/gfwlist/unblock-youku +++ /dev/null @@ -1,95 +0,0 @@ -v.youku.com -api.youku.com -v2.tudou.com -www.tudou.com -s.plcloud.music.qq.com -i.y.qq.com -hot.vrs.sohu.com -live.tv.sohu.com -pad.tv.sohu.com -my.tv.sohu.com -hot.vrs.letv.com -data.video.qiyi.com -cache.video.qiyi.com -cache.vip.qiyi.com -vv.video.qq.com -tt.video.qq.com -ice.video.qq.com -tjsa.video.qq.com -a10.video.qq.com -xyy.video.qq.com -vcq.video.qq.com -vsh.video.qq.com -vbj.video.qq.com -bobo.video.qq.com -flvs.video.qq.com -bkvv.video.qq.com -info.zb.qq.com -geo.js.kankan.xunlei.com -web-play.pptv.com -web-play.pplive.cn -dyn.ugc.pps.tv -v.pps.tv -inner.kandian.com -ipservice.163.com -so.open.163.com -zb.s.qq.com -ip.kankan.xunlei.com -vxml.56.com -music.sina.com.cn -play.baidu.com -v.iask.com -tv.weibo.com -wtv.v.iask.com -video.sina.com.cn -www.yinyuetai.com -api.letv.com -live.gslb.letv.com -static.itv.letv.com -ip.apps.cntv.cn -vdn.apps.cntv.cn -vdn.live.cntv.cn -vip.sports.cntv.cn -a.play.api.3g.youku.com -i.play.api.3g.youku.com -api.3g.youku.com -tv.api.3g.youku.com -play.api.3g.youku.com -play.api.3g.tudou.com -tv.api.3g.tudou.com -api.3g.tudou.com -api.tv.sohu.com -access.tv.sohu.com -iface.iqiyi.com -iface2.iqiyi.com -cache.m.iqiyi.com -dynamic.app.m.letv.com -dynamic.meizi.app.m.letv.com -dynamic.search.app.m.letv.com -dynamic.live.app.m.letv.com -listso.m.areainfo.ppstream.com -epg.api.pptv.com -play.api.pptv.com -m.letv.com -interface.bilibili.com -3g.music.qq.com -mqqplayer.3g.qq.com -proxy.music.qq.com -proxymc.qq.com -ip2.kugou.com -ip.kugou.com -client.api.ttpod.com -mobi.kuwo.cn -mobilefeedback.kugou.com -tingapi.ting.baidu.com -music.baidu.com -serviceinfo.sdk.duomi.com -music.163.com -www.xiami.com -spark.api.xiami.com -iplocation.geo.qiyi.com -sns.video.qq.com -v5.pc.duomi.com -tms.is.ysten.com -internal.check.duokanbox.com -openapi.youku.com diff --git a/package/lean/ipset-lists/files/etc/init.d/ipset.sh b/package/lean/ipset-lists/files/etc/init.d/ipset.sh deleted file mode 100755 index 55f82273b..000000000 --- a/package/lean/ipset-lists/files/etc/init.d/ipset.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2014 Justin Liu - -START=21 - -start() -{ - local file - for file in /etc/ipset/*; do - [ -f $file ] || continue - ipset restore < $file - done -} - -stop() -{ - local file - for file in /etc/ipset/*; do - [ -f $file ] || continue - ipset destroy `basename $file` - done -} - -restart() -{ - stop >/dev/null 2>&1 - start -} - diff --git a/package/lean/ipset-lists/files/etc/ipset/china b/package/lean/ipset-lists/files/etc/ipset/china deleted file mode 100644 index 03b1cc9c5..000000000 --- a/package/lean/ipset-lists/files/etc/ipset/china +++ /dev/null @@ -1,4728 +0,0 @@ -create china hash:net family inet hashsize 1024 maxelem 65536 -add china 1.0.1.0/24 -add china 1.0.2.0/23 -add china 1.0.8.0/21 -add china 1.0.32.0/19 -add china 1.1.0.0/24 -add china 1.1.2.0/23 -add china 1.1.4.0/22 -add china 1.1.8.0/21 -add china 1.1.16.0/20 -add china 1.1.32.0/19 -add china 1.2.0.0/23 -add china 1.2.2.0/24 -add china 1.2.4.0/22 -add china 1.2.8.0/21 -add china 1.2.16.0/20 -add china 1.2.32.0/19 -add china 1.2.64.0/18 -add china 1.3.0.0/16 -add china 1.4.1.0/24 -add china 1.4.2.0/23 -add china 1.4.4.0/22 -add china 1.4.8.0/21 -add china 1.4.16.0/20 -add china 1.4.32.0/19 -add china 1.4.64.0/18 -add china 1.8.0.0/16 -add china 1.10.0.0/21 -add china 1.10.8.0/23 -add china 1.10.11.0/24 -add china 1.10.12.0/22 -add china 1.10.16.0/20 -add china 1.10.32.0/19 -add china 1.10.64.0/18 -add china 1.12.0.0/14 -add china 1.24.0.0/13 -add china 1.45.0.0/16 -add china 1.48.0.0/14 -add china 1.56.0.0/13 -add china 1.68.0.0/14 -add china 1.80.0.0/12 -add china 1.116.0.0/14 -add china 1.180.0.0/14 -add china 1.184.0.0/15 -add china 1.188.0.0/14 -add china 1.192.0.0/13 -add china 1.202.0.0/15 -add china 1.204.0.0/14 -add china 14.0.0.0/21 -add china 14.0.12.0/22 -add china 14.1.0.0/22 -add china 14.1.24.0/22 -add china 14.1.96.0/22 -add china 14.1.108.0/22 -add china 14.16.0.0/12 -add china 14.102.128.0/22 -add china 14.102.156.0/22 -add china 14.102.180.0/22 -add china 14.103.0.0/16 -add china 14.104.0.0/13 -add china 14.112.0.0/12 -add china 14.130.0.0/15 -add china 14.134.0.0/15 -add china 14.144.0.0/12 -add china 14.192.4.0/22 -add china 14.192.56.0/21 -add china 14.192.76.0/22 -add china 14.196.0.0/15 -add china 14.204.0.0/15 -add china 14.208.0.0/12 -add china 20.134.160.0/20 -add china 20.139.160.0/20 -add china 27.0.128.0/21 -add china 27.0.160.0/21 -add china 27.0.188.0/22 -add china 27.0.204.0/22 -add china 27.0.208.0/21 -add china 27.8.0.0/13 -add china 27.16.0.0/12 -add china 27.34.232.0/21 -add china 27.36.0.0/14 -add china 27.40.0.0/13 -add china 27.50.40.0/21 -add china 27.50.128.0/17 -add china 27.54.72.0/21 -add china 27.54.152.0/21 -add china 27.54.192.0/18 -add china 27.98.208.0/20 -add china 27.98.224.0/19 -add china 27.99.128.0/17 -add china 27.103.0.0/16 -add china 27.106.128.0/18 -add china 27.106.204.0/22 -add china 27.109.32.0/19 -add china 27.109.124.0/22 -add china 27.112.0.0/18 -add china 27.112.80.0/20 -add china 27.112.112.0/21 -add china 27.113.128.0/18 -add china 27.115.0.0/17 -add china 27.116.44.0/22 -add china 27.121.72.0/21 -add china 27.121.120.0/21 -add china 27.123.232.0/22 -add china 27.128.0.0/15 -add china 27.131.220.0/22 -add china 27.144.0.0/16 -add china 27.148.0.0/14 -add china 27.152.0.0/13 -add china 27.184.0.0/13 -add china 27.192.0.0/11 -add china 27.224.0.0/14 -add china 36.0.0.0/22 -add china 36.0.8.0/21 -add china 36.0.16.0/20 -add china 36.0.32.0/19 -add china 36.0.64.0/18 -add china 36.0.128.0/17 -add china 36.1.0.0/16 -add china 36.4.0.0/14 -add china 36.16.0.0/12 -add china 36.32.0.0/14 -add china 36.36.0.0/16 -add china 36.37.0.0/19 -add china 36.37.36.0/23 -add china 36.37.39.0/24 -add china 36.37.40.0/21 -add china 36.37.48.0/20 -add china 36.40.0.0/13 -add china 36.48.0.0/15 -add china 36.51.0.0/16 -add china 36.56.0.0/13 -add china 36.96.0.0/11 -add china 36.128.0.0/10 -add china 36.192.0.0/11 -add china 36.248.0.0/14 -add china 36.254.0.0/16 -add china 36.255.116.0/22 -add china 36.255.128.0/22 -add china 36.255.164.0/22 -add china 36.255.172.0/22 -add china 36.255.176.0/22 -add china 36.255.192.0/22 -add china 39.0.0.0/24 -add china 39.0.2.0/23 -add china 39.0.4.0/22 -add china 39.0.8.0/21 -add china 39.0.16.0/20 -add china 39.0.32.0/19 -add china 39.0.64.0/18 -add china 39.0.128.0/17 -add china 39.64.0.0/11 -add china 39.96.0.0/13 -add china 39.104.0.0/14 -add china 39.108.0.0/16 -add china 39.128.0.0/10 -add china 40.0.176.0/20 -add china 40.0.247.0/24 -add china 40.0.248.0/22 -add china 40.0.252.0/23 -add china 40.0.255.0/24 -add china 40.72.0.0/15 -add china 40.125.128.0/17 -add china 40.126.64.0/18 -add china 40.198.10.0/24 -add china 40.198.16.0/21 -add china 40.198.24.0/23 -add china 40.250.16.0/23 -add china 40.251.227.0/24 -add china 42.0.0.0/22 -add china 42.0.8.0/21 -add china 42.0.16.0/21 -add china 42.0.24.0/22 -add china 42.0.32.0/19 -add china 42.0.128.0/17 -add china 42.1.0.0/19 -add china 42.1.32.0/20 -add china 42.1.48.0/21 -add china 42.1.56.0/22 -add china 42.1.128.0/17 -add china 42.4.0.0/14 -add china 42.48.0.0/13 -add china 42.56.0.0/14 -add china 42.62.0.0/17 -add china 42.62.128.0/19 -add china 42.62.160.0/20 -add china 42.62.180.0/22 -add china 42.62.184.0/21 -add china 42.63.0.0/16 -add china 42.80.0.0/15 -add china 42.83.64.0/20 -add china 42.83.80.0/22 -add china 42.83.88.0/21 -add china 42.83.96.0/19 -add china 42.83.128.0/17 -add china 42.84.0.0/14 -add china 42.88.0.0/13 -add china 42.96.64.0/19 -add china 42.96.96.0/21 -add china 42.96.108.0/22 -add china 42.96.112.0/20 -add china 42.96.128.0/17 -add china 42.97.0.0/16 -add china 42.99.0.0/18 -add china 42.99.64.0/19 -add china 42.99.96.0/20 -add china 42.99.112.0/22 -add china 42.99.120.0/21 -add china 42.100.0.0/14 -add china 42.120.0.0/15 -add china 42.122.0.0/16 -add china 42.123.0.0/19 -add china 42.123.36.0/22 -add china 42.123.40.0/21 -add china 42.123.48.0/20 -add china 42.123.64.0/18 -add china 42.123.128.0/17 -add china 42.128.0.0/12 -add china 42.156.0.0/19 -add china 42.156.36.0/22 -add china 42.156.40.0/21 -add china 42.156.48.0/20 -add china 42.156.64.0/18 -add china 42.156.128.0/17 -add china 42.157.0.0/16 -add china 42.158.0.0/15 -add china 42.160.0.0/12 -add china 42.176.0.0/13 -add china 42.184.0.0/15 -add china 42.186.0.0/16 -add china 42.187.0.0/18 -add china 42.187.64.0/19 -add china 42.187.96.0/20 -add china 42.187.112.0/21 -add china 42.187.120.0/22 -add china 42.187.128.0/17 -add china 42.192.0.0/13 -add china 42.201.0.0/17 -add china 42.202.0.0/15 -add china 42.204.0.0/14 -add china 42.208.0.0/12 -add china 42.224.0.0/12 -add china 42.240.0.0/16 -add china 42.242.0.0/15 -add china 42.244.0.0/14 -add china 42.248.0.0/13 -add china 43.224.12.0/22 -add china 43.224.24.0/22 -add china 43.224.44.0/22 -add china 43.224.52.0/22 -add china 43.224.56.0/22 -add china 43.224.64.0/21 -add china 43.224.72.0/22 -add china 43.224.80.0/22 -add china 43.224.100.0/22 -add china 43.224.144.0/22 -add china 43.224.160.0/22 -add china 43.224.176.0/22 -add china 43.224.184.0/22 -add china 43.224.200.0/21 -add china 43.224.208.0/21 -add china 43.224.216.0/22 -add china 43.224.224.0/22 -add china 43.224.240.0/22 -add china 43.225.76.0/22 -add china 43.225.84.0/22 -add china 43.225.120.0/21 -add china 43.225.140.0/22 -add china 43.225.172.0/22 -add china 43.225.180.0/22 -add china 43.225.184.0/22 -add china 43.225.208.0/22 -add china 43.225.216.0/21 -add china 43.225.224.0/20 -add china 43.225.240.0/21 -add china 43.225.252.0/22 -add china 43.226.32.0/19 -add china 43.226.64.0/19 -add china 43.226.96.0/20 -add china 43.226.112.0/21 -add china 43.226.120.0/22 -add china 43.226.128.0/18 -add china 43.226.192.0/20 -add china 43.226.208.0/21 -add china 43.226.236.0/22 -add china 43.226.240.0/20 -add china 43.227.0.0/21 -add china 43.227.8.0/22 -add china 43.227.32.0/19 -add china 43.227.64.0/19 -add china 43.227.96.0/21 -add china 43.227.104.0/22 -add china 43.227.136.0/21 -add china 43.227.144.0/22 -add china 43.227.152.0/21 -add china 43.227.160.0/20 -add china 43.227.176.0/21 -add china 43.227.188.0/22 -add china 43.227.192.0/19 -add china 43.227.232.0/22 -add china 43.227.248.0/21 -add china 43.228.0.0/18 -add china 43.228.64.0/21 -add china 43.228.76.0/22 -add china 43.228.100.0/22 -add china 43.228.116.0/22 -add china 43.228.120.0/22 -add china 43.228.132.0/22 -add china 43.228.136.0/22 -add china 43.228.148.0/22 -add china 43.228.152.0/22 -add china 43.228.188.0/22 -add china 43.228.204.0/22 -add china 43.228.240.0/22 -add china 43.229.16.0/22 -add china 43.229.40.0/22 -add china 43.229.48.0/22 -add china 43.229.56.0/22 -add china 43.229.96.0/22 -add china 43.229.108.0/22 -add china 43.229.120.0/22 -add china 43.229.136.0/21 -add china 43.229.144.0/22 -add china 43.229.168.0/21 -add china 43.229.176.0/20 -add china 43.229.192.0/21 -add china 43.229.216.0/21 -add china 43.229.232.0/21 -add china 43.230.20.0/22 -add china 43.230.32.0/22 -add china 43.230.68.0/22 -add china 43.230.72.0/22 -add china 43.230.84.0/22 -add china 43.230.124.0/22 -add china 43.230.136.0/22 -add china 43.230.168.0/22 -add china 43.230.220.0/22 -add china 43.230.224.0/19 -add china 43.231.12.0/22 -add china 43.231.32.0/20 -add china 43.231.80.0/20 -add china 43.231.96.0/20 -add china 43.231.136.0/21 -add china 43.231.144.0/20 -add china 43.231.160.0/20 -add china 43.231.176.0/21 -add china 43.236.0.0/15 -add china 43.238.0.0/16 -add china 43.239.0.0/19 -add china 43.239.32.0/20 -add china 43.239.48.0/22 -add china 43.239.116.0/22 -add china 43.239.120.0/22 -add china 43.239.172.0/22 -add china 43.239.176.0/22 -add china 43.240.0.0/22 -add china 43.240.48.0/22 -add china 43.240.56.0/21 -add china 43.240.68.0/22 -add china 43.240.72.0/21 -add china 43.240.84.0/22 -add china 43.240.124.0/22 -add china 43.240.128.0/21 -add china 43.240.136.0/22 -add china 43.240.156.0/22 -add china 43.240.160.0/19 -add china 43.240.192.0/19 -add china 43.240.236.0/22 -add china 43.240.240.0/20 -add china 43.241.0.0/20 -add china 43.241.16.0/21 -add china 43.241.48.0/22 -add china 43.241.76.0/22 -add china 43.241.80.0/20 -add china 43.241.112.0/22 -add china 43.241.168.0/21 -add china 43.241.176.0/21 -add china 43.241.184.0/22 -add china 43.241.196.0/22 -add china 43.241.208.0/20 -add china 43.241.224.0/20 -add china 43.241.240.0/22 -add china 43.241.248.0/21 -add china 43.242.8.0/21 -add china 43.242.16.0/20 -add china 43.242.44.0/22 -add china 43.242.48.0/20 -add china 43.242.64.0/22 -add china 43.242.72.0/21 -add china 43.242.80.0/20 -add china 43.242.96.0/22 -add china 43.242.144.0/20 -add china 43.242.160.0/21 -add china 43.242.168.0/22 -add china 43.242.180.0/22 -add china 43.242.188.0/22 -add china 43.242.192.0/21 -add china 43.242.204.0/22 -add china 43.242.216.0/21 -add china 43.242.252.0/22 -add china 43.243.4.0/22 -add china 43.243.8.0/21 -add china 43.243.16.0/22 -add china 43.243.24.0/22 -add china 43.243.88.0/22 -add china 43.243.128.0/22 -add china 43.243.136.0/22 -add china 43.243.144.0/21 -add china 43.243.156.0/22 -add china 43.243.168.0/22 -add china 43.243.180.0/22 -add china 43.243.188.0/22 -add china 43.243.228.0/22 -add china 43.243.232.0/22 -add china 43.243.244.0/22 -add china 43.246.0.0/18 -add china 43.246.64.0/19 -add china 43.246.96.0/22 -add china 43.246.112.0/22 -add china 43.246.212.0/22 -add china 43.246.228.0/22 -add china 43.247.4.0/22 -add china 43.247.8.0/22 -add china 43.247.44.0/22 -add china 43.247.48.0/22 -add china 43.247.68.0/22 -add china 43.247.76.0/22 -add china 43.247.84.0/22 -add china 43.247.88.0/21 -add china 43.247.96.0/21 -add china 43.247.108.0/22 -add china 43.247.112.0/22 -add china 43.247.148.0/22 -add china 43.247.152.0/22 -add china 43.247.176.0/20 -add china 43.247.196.0/22 -add china 43.247.200.0/21 -add china 43.247.208.0/20 -add china 43.247.224.0/19 -add china 43.248.0.0/21 -add china 43.248.20.0/22 -add china 43.248.28.0/22 -add china 43.248.48.0/22 -add china 43.248.76.0/22 -add china 43.248.80.0/20 -add china 43.248.96.0/19 -add china 43.248.128.0/20 -add china 43.248.144.0/21 -add china 43.248.176.0/20 -add china 43.248.192.0/20 -add china 43.248.208.0/22 -add china 43.248.228.0/22 -add china 43.248.232.0/22 -add china 43.248.244.0/22 -add china 43.249.0.0/21 -add china 43.249.8.0/22 -add china 43.249.24.0/22 -add china 43.249.120.0/22 -add china 43.249.132.0/22 -add china 43.249.136.0/22 -add china 43.249.144.0/20 -add china 43.249.160.0/21 -add china 43.249.168.0/22 -add china 43.249.192.0/22 -add china 43.249.236.0/22 -add china 43.250.4.0/22 -add china 43.250.12.0/22 -add china 43.250.16.0/21 -add china 43.250.28.0/22 -add china 43.250.32.0/21 -add china 43.250.72.0/22 -add china 43.250.96.0/20 -add china 43.250.112.0/21 -add china 43.250.128.0/22 -add china 43.250.144.0/21 -add china 43.250.160.0/22 -add china 43.250.168.0/21 -add china 43.250.176.0/22 -add china 43.250.200.0/22 -add china 43.250.212.0/22 -add china 43.250.216.0/21 -add china 43.250.236.0/22 -add china 43.250.244.0/22 -add china 43.251.4.0/22 -add china 43.251.8.0/21 -add china 43.251.36.0/22 -add china 43.251.116.0/22 -add china 43.251.192.0/22 -add china 43.251.232.0/21 -add china 43.251.244.0/22 -add china 43.252.40.0/22 -add china 43.252.48.0/22 -add china 43.252.56.0/22 -add china 43.252.224.0/22 -add china 43.254.0.0/21 -add china 43.254.8.0/22 -add china 43.254.24.0/22 -add china 43.254.36.0/22 -add china 43.254.44.0/22 -add china 43.254.52.0/22 -add china 43.254.64.0/22 -add china 43.254.72.0/22 -add china 43.254.84.0/22 -add china 43.254.88.0/21 -add china 43.254.100.0/22 -add china 43.254.104.0/22 -add china 43.254.112.0/21 -add china 43.254.128.0/22 -add china 43.254.136.0/21 -add china 43.254.144.0/20 -add china 43.254.168.0/21 -add china 43.254.180.0/22 -add china 43.254.184.0/21 -add china 43.254.192.0/21 -add china 43.254.200.0/22 -add china 43.254.208.0/22 -add china 43.254.220.0/22 -add china 43.254.224.0/20 -add china 43.254.240.0/22 -add china 43.254.248.0/21 -add china 43.255.0.0/21 -add china 43.255.8.0/22 -add china 43.255.16.0/22 -add china 43.255.48.0/22 -add china 43.255.64.0/20 -add china 43.255.84.0/22 -add china 43.255.96.0/22 -add china 43.255.108.0/22 -add china 43.255.144.0/22 -add china 43.255.168.0/22 -add china 43.255.176.0/22 -add china 43.255.184.0/22 -add china 43.255.192.0/22 -add china 43.255.200.0/21 -add china 43.255.208.0/21 -add china 43.255.224.0/21 -add china 43.255.232.0/22 -add china 43.255.244.0/22 -add china 45.65.16.0/20 -add china 45.112.132.0/22 -add china 45.112.188.0/22 -add china 45.112.208.0/20 -add china 45.112.228.0/22 -add china 45.112.232.0/21 -add china 45.113.12.0/22 -add china 45.113.16.0/20 -add china 45.113.40.0/22 -add china 45.113.52.0/22 -add china 45.113.56.0/22 -add china 45.113.72.0/22 -add china 45.113.108.0/22 -add china 45.113.144.0/21 -add china 45.113.168.0/22 -add china 45.113.176.0/22 -add china 45.113.184.0/22 -add china 45.113.200.0/21 -add china 45.113.208.0/20 -add china 45.113.228.0/22 -add china 45.113.240.0/22 -add china 45.113.252.0/22 -add china 45.114.0.0/22 -add china 45.114.12.0/22 -add china 45.114.32.0/22 -add china 45.114.40.0/22 -add china 45.114.52.0/22 -add china 45.114.96.0/22 -add china 45.114.104.0/22 -add china 45.114.136.0/22 -add china 45.114.196.0/22 -add china 45.114.200.0/22 -add china 45.114.228.0/22 -add china 45.114.236.0/22 -add china 45.114.252.0/22 -add china 45.115.44.0/22 -add china 45.115.100.0/22 -add china 45.115.120.0/22 -add china 45.115.132.0/22 -add china 45.115.144.0/22 -add china 45.115.156.0/22 -add china 45.115.164.0/22 -add china 45.115.200.0/22 -add china 45.115.212.0/22 -add china 45.115.216.0/22 -add china 45.115.228.0/22 -add china 45.115.236.0/22 -add china 45.115.244.0/22 -add china 45.115.248.0/22 -add china 45.116.12.0/22 -add china 45.116.16.0/21 -add china 45.116.24.0/22 -add china 45.116.32.0/21 -add china 45.116.52.0/22 -add china 45.116.60.0/22 -add china 45.116.64.0/22 -add china 45.116.96.0/21 -add china 45.116.140.0/22 -add china 45.116.152.0/22 -add china 45.116.208.0/22 -add china 45.117.8.0/22 -add china 45.117.20.0/22 -add china 45.117.40.0/22 -add china 45.117.68.0/22 -add china 45.117.124.0/22 -add china 45.117.252.0/22 -add china 45.119.52.0/22 -add china 45.119.60.0/22 -add china 45.119.64.0/21 -add china 45.119.72.0/22 -add china 45.119.104.0/22 -add china 45.119.116.0/22 -add china 45.119.232.0/22 -add china 45.120.100.0/22 -add china 45.120.140.0/22 -add china 45.120.156.0/22 -add china 45.120.164.0/22 -add china 45.120.220.0/22 -add china 45.120.240.0/22 -add china 45.121.20.0/22 -add china 45.121.52.0/22 -add china 45.121.64.0/21 -add china 45.121.72.0/22 -add china 45.121.92.0/22 -add china 45.121.96.0/22 -add china 45.121.104.0/22 -add china 45.121.172.0/22 -add china 45.121.176.0/22 -add china 45.121.212.0/22 -add china 45.121.240.0/20 -add china 45.122.0.0/19 -add china 45.122.32.0/21 -add china 45.122.40.0/22 -add china 45.122.60.0/22 -add china 45.122.64.0/19 -add china 45.122.96.0/20 -add china 45.122.112.0/21 -add china 45.122.160.0/19 -add china 45.122.192.0/20 -add china 45.122.208.0/21 -add china 45.122.216.0/22 -add china 45.123.28.0/22 -add china 45.123.32.0/21 -add china 45.123.44.0/22 -add china 45.123.48.0/20 -add china 45.123.64.0/20 -add china 45.123.80.0/21 -add china 45.123.88.0/22 -add china 45.123.120.0/22 -add china 45.123.128.0/21 -add china 45.123.136.0/22 -add china 45.123.148.0/22 -add china 45.123.152.0/21 -add china 45.123.164.0/22 -add china 45.123.168.0/21 -add china 45.123.176.0/21 -add china 45.123.184.0/22 -add china 45.123.204.0/22 -add china 45.123.212.0/22 -add china 45.123.224.0/19 -add china 45.124.0.0/22 -add china 45.124.20.0/22 -add china 45.124.28.0/22 -add china 45.124.32.0/21 -add china 45.124.44.0/22 -add china 45.124.68.0/22 -add china 45.124.76.0/22 -add china 45.124.80.0/22 -add china 45.124.100.0/22 -add china 45.124.124.0/22 -add china 45.124.172.0/22 -add china 45.124.176.0/22 -add china 45.124.208.0/22 -add china 45.124.248.0/21 -add china 45.125.12.0/22 -add china 45.125.16.0/22 -add china 45.125.24.0/21 -add china 45.125.32.0/22 -add china 45.125.44.0/22 -add china 45.125.52.0/22 -add china 45.125.56.0/22 -add china 45.125.76.0/22 -add china 45.125.80.0/20 -add china 45.125.96.0/21 -add china 45.125.104.0/22 -add china 45.125.136.0/22 -add china 45.126.48.0/21 -add china 45.126.100.0/22 -add china 45.126.108.0/22 -add china 45.126.112.0/21 -add china 45.126.120.0/22 -add china 45.126.212.0/22 -add china 45.126.220.0/22 -add china 45.127.8.0/21 -add china 45.127.36.0/22 -add china 45.127.96.0/22 -add china 45.127.116.0/22 -add china 45.127.124.0/22 -add china 45.127.128.0/22 -add china 45.127.144.0/21 -add china 45.127.156.0/22 -add china 45.127.216.0/22 -add china 45.221.0.0/16 -add china 45.248.8.0/22 -add china 45.248.80.0/21 -add china 45.248.88.0/22 -add china 45.248.96.0/20 -add china 45.248.128.0/21 -add china 45.248.204.0/22 -add china 45.248.208.0/20 -add china 45.248.224.0/19 -add china 45.249.0.0/21 -add china 45.249.12.0/22 -add china 45.249.16.0/20 -add china 45.249.32.0/21 -add china 45.249.92.0/22 -add china 45.249.112.0/22 -add china 45.249.180.0/22 -add china 45.249.188.0/22 -add china 45.249.192.0/20 -add china 45.249.208.0/21 -add china 45.250.12.0/22 -add china 45.250.16.0/22 -add china 45.250.28.0/22 -add china 45.250.32.0/21 -add china 45.250.40.0/22 -add china 45.250.76.0/22 -add china 45.250.80.0/20 -add china 45.250.96.0/22 -add china 45.250.104.0/21 -add china 45.250.112.0/20 -add china 45.250.128.0/20 -add china 45.250.144.0/21 -add china 45.250.152.0/22 -add china 45.250.164.0/22 -add china 45.250.180.0/22 -add china 45.250.184.0/21 -add china 45.250.192.0/22 -add china 45.251.0.0/22 -add china 45.251.8.0/22 -add china 45.251.16.0/21 -add china 45.251.52.0/22 -add china 45.251.84.0/22 -add china 45.251.88.0/21 -add china 45.251.96.0/21 -add china 45.251.120.0/21 -add china 45.251.136.0/21 -add china 45.251.144.0/20 -add china 45.251.160.0/19 -add china 45.251.192.0/19 -add china 45.251.224.0/22 -add china 45.252.0.0/19 -add china 45.252.32.0/20 -add china 45.252.48.0/22 -add china 45.252.60.0/22 -add china 45.252.84.0/22 -add china 45.252.88.0/21 -add china 45.252.96.0/19 -add china 45.252.128.0/19 -add china 45.252.160.0/20 -add china 45.252.176.0/22 -add china 45.252.192.0/19 -add china 45.252.224.0/21 -add china 45.252.232.0/22 -add china 45.253.0.0/18 -add china 45.253.64.0/20 -add china 45.253.80.0/21 -add china 45.253.92.0/22 -add china 45.253.96.0/20 -add china 45.253.112.0/21 -add china 45.253.120.0/22 -add china 45.253.130.0/23 -add china 45.253.132.0/22 -add china 45.253.136.0/21 -add china 45.253.144.0/20 -add china 45.253.160.0/19 -add china 45.253.192.0/18 -add china 45.254.0.0/19 -add china 45.254.40.0/22 -add china 45.254.48.0/20 -add china 45.254.64.0/18 -add china 45.254.128.0/18 -add china 45.254.192.0/19 -add china 45.254.224.0/21 -add china 45.254.236.0/22 -add china 45.254.240.0/22 -add china 45.254.248.0/22 -add china 45.255.0.0/17 -add china 45.255.132.0/22 -add china 45.255.136.0/21 -add china 45.255.144.0/20 -add china 45.255.160.0/19 -add china 45.255.192.0/19 -add china 45.255.224.0/20 -add china 45.255.240.0/21 -add china 45.255.248.0/22 -add china 47.92.0.0/14 -add china 47.96.0.0/11 -add china 49.4.0.0/14 -add china 49.51.0.0/16 -add china 49.52.0.0/14 -add china 49.64.0.0/11 -add china 49.112.0.0/13 -add china 49.120.0.0/14 -add china 49.128.0.0/24 -add china 49.128.2.0/23 -add china 49.128.4.0/22 -add china 49.140.0.0/15 -add china 49.152.0.0/14 -add china 49.208.0.0/14 -add china 49.220.0.0/14 -add china 49.232.0.0/14 -add china 49.239.0.0/18 -add china 49.239.192.0/18 -add china 49.246.224.0/19 -add china 52.80.0.0/14 -add china 54.222.0.0/15 -add china 54.231.208.0/20 -add china 58.14.0.0/15 -add china 58.16.0.0/13 -add china 58.24.0.0/15 -add china 58.30.0.0/15 -add china 58.32.0.0/11 -add china 58.65.232.0/21 -add china 58.66.0.0/15 -add china 58.68.128.0/17 -add china 58.82.0.0/17 -add china 58.83.0.0/16 -add china 58.87.64.0/18 -add china 58.99.128.0/17 -add china 58.100.0.0/15 -add china 58.116.0.0/14 -add china 58.128.0.0/13 -add china 58.144.0.0/16 -add china 58.154.0.0/15 -add china 58.192.0.0/11 -add china 58.240.0.0/12 -add china 59.32.0.0/11 -add china 59.64.0.0/12 -add china 59.80.0.0/14 -add china 59.107.0.0/16 -add china 59.108.0.0/14 -add china 59.151.0.0/17 -add china 59.152.16.0/20 -add china 59.152.32.0/21 -add china 59.152.64.0/20 -add china 59.152.112.0/21 -add china 59.153.4.0/22 -add china 59.153.32.0/22 -add china 59.153.60.0/22 -add china 59.153.64.0/21 -add china 59.153.72.0/22 -add china 59.153.92.0/22 -add china 59.153.116.0/22 -add china 59.153.136.0/22 -add china 59.153.152.0/21 -add china 59.153.164.0/22 -add china 59.153.168.0/21 -add china 59.153.176.0/20 -add china 59.153.192.0/22 -add china 59.155.0.0/16 -add china 59.172.0.0/14 -add china 59.191.0.0/17 -add china 59.191.240.0/20 -add china 59.192.0.0/10 -add china 60.0.0.0/11 -add china 60.55.0.0/16 -add china 60.63.0.0/16 -add china 60.160.0.0/11 -add china 60.194.0.0/15 -add china 60.200.0.0/13 -add china 60.208.0.0/12 -add china 60.232.0.0/15 -add china 60.235.0.0/16 -add china 60.245.128.0/17 -add china 60.247.0.0/16 -add china 60.252.0.0/16 -add china 60.253.128.0/17 -add china 60.255.0.0/16 -add china 61.4.80.0/20 -add china 61.4.176.0/20 -add china 61.8.160.0/20 -add china 61.14.212.0/22 -add china 61.14.216.0/21 -add china 61.14.240.0/21 -add china 61.28.0.0/17 -add china 61.29.128.0/17 -add china 61.45.128.0/18 -add china 61.45.224.0/20 -add china 61.47.128.0/18 -add china 61.48.0.0/13 -add china 61.87.192.0/18 -add china 61.128.0.0/10 -add china 61.232.0.0/14 -add china 61.236.0.0/15 -add china 61.240.0.0/14 -add china 65.55.209.0/24 -add china 72.163.248.0/22 -add china 87.254.207.0/24 -add china 93.183.14.0/24 -add china 93.183.18.0/24 -add china 101.0.0.0/22 -add china 101.1.0.0/22 -add china 101.2.172.0/22 -add china 101.4.0.0/14 -add china 101.16.0.0/12 -add china 101.32.0.0/12 -add china 101.48.0.0/15 -add china 101.50.8.0/21 -add china 101.50.56.0/22 -add china 101.52.0.0/16 -add china 101.53.100.0/22 -add china 101.54.0.0/16 -add china 101.55.224.0/21 -add china 101.64.0.0/13 -add china 101.72.0.0/14 -add china 101.76.0.0/15 -add china 101.78.0.0/22 -add china 101.78.32.0/19 -add china 101.80.0.0/12 -add china 101.96.0.0/21 -add china 101.96.8.0/22 -add china 101.96.16.0/20 -add china 101.96.128.0/17 -add china 101.99.96.0/19 -add china 101.101.64.0/19 -add china 101.101.100.0/24 -add china 101.101.102.0/23 -add china 101.101.104.0/21 -add china 101.101.112.0/20 -add china 101.102.64.0/19 -add china 101.102.100.0/23 -add china 101.102.102.0/24 -add china 101.102.104.0/21 -add china 101.102.112.0/20 -add china 101.104.0.0/14 -add china 101.110.64.0/19 -add china 101.110.96.0/20 -add china 101.110.116.0/22 -add china 101.110.120.0/21 -add china 101.120.0.0/14 -add china 101.124.0.0/15 -add china 101.126.0.0/16 -add china 101.128.0.0/22 -add china 101.128.8.0/21 -add china 101.128.16.0/20 -add china 101.128.32.0/19 -add china 101.129.0.0/16 -add china 101.130.0.0/15 -add china 101.132.0.0/14 -add china 101.144.0.0/12 -add china 101.192.0.0/13 -add china 101.200.0.0/15 -add china 101.203.128.0/19 -add china 101.203.160.0/21 -add china 101.203.172.0/22 -add china 101.203.176.0/20 -add china 101.204.0.0/14 -add china 101.224.0.0/13 -add china 101.232.0.0/15 -add china 101.234.64.0/21 -add china 101.234.76.0/22 -add china 101.234.80.0/20 -add china 101.234.96.0/19 -add china 101.236.0.0/14 -add china 101.240.0.0/13 -add china 101.248.0.0/15 -add china 101.251.0.0/22 -add china 101.251.8.0/21 -add china 101.251.16.0/20 -add china 101.251.32.0/19 -add china 101.251.64.0/18 -add china 101.251.128.0/17 -add china 101.252.0.0/15 -add china 101.254.0.0/16 -add china 103.1.8.0/22 -add china 103.1.20.0/22 -add china 103.1.24.0/22 -add china 103.1.72.0/22 -add china 103.1.88.0/22 -add china 103.1.168.0/22 -add china 103.2.108.0/22 -add china 103.2.156.0/22 -add china 103.2.164.0/22 -add china 103.2.200.0/21 -add china 103.2.208.0/21 -add china 103.3.84.0/22 -add china 103.3.88.0/21 -add china 103.3.96.0/19 -add china 103.3.128.0/20 -add china 103.3.148.0/22 -add china 103.3.152.0/21 -add china 103.4.56.0/22 -add china 103.4.168.0/22 -add china 103.4.184.0/22 -add china 103.4.224.0/22 -add china 103.5.36.0/22 -add china 103.5.52.0/22 -add china 103.5.56.0/22 -add china 103.5.152.0/22 -add china 103.5.168.0/22 -add china 103.5.192.0/22 -add china 103.5.252.0/22 -add china 103.6.76.0/22 -add china 103.6.108.0/22 -add china 103.6.120.0/22 -add china 103.6.220.0/22 -add china 103.6.228.0/22 -add china 103.7.4.0/22 -add china 103.7.28.0/22 -add china 103.7.120.0/22 -add china 103.7.140.0/22 -add china 103.7.212.0/22 -add china 103.7.216.0/21 -add china 103.8.0.0/21 -add china 103.8.8.0/22 -add china 103.8.32.0/22 -add china 103.8.52.0/22 -add china 103.8.68.0/22 -add china 103.8.108.0/22 -add china 103.8.156.0/22 -add china 103.8.200.0/21 -add china 103.8.220.0/22 -add china 103.9.8.0/22 -add china 103.9.24.0/22 -add china 103.9.108.0/22 -add china 103.9.152.0/22 -add china 103.9.192.0/22 -add china 103.9.248.0/21 -add china 103.10.0.0/22 -add china 103.10.16.0/22 -add china 103.10.84.0/22 -add china 103.10.111.0/24 -add china 103.10.140.0/22 -add china 103.11.16.0/22 -add china 103.11.168.0/22 -add china 103.11.180.0/22 -add china 103.12.32.0/22 -add china 103.12.68.0/22 -add china 103.12.92.0/22 -add china 103.12.136.0/22 -add china 103.12.184.0/22 -add china 103.12.232.0/22 -add china 103.13.12.0/22 -add china 103.13.72.0/23 -add china 103.13.124.0/22 -add china 103.13.144.0/22 -add china 103.13.196.0/22 -add china 103.13.220.0/22 -add china 103.13.244.0/22 -add china 103.14.32.0/22 -add china 103.14.84.0/22 -add china 103.14.100.0/22 -add china 103.14.112.0/22 -add china 103.14.132.0/22 -add china 103.14.136.0/22 -add china 103.14.156.0/22 -add china 103.14.240.0/22 -add china 103.15.4.0/22 -add china 103.15.8.0/22 -add china 103.15.16.0/22 -add china 103.15.96.0/22 -add china 103.15.200.0/22 -add china 103.16.52.0/22 -add china 103.16.80.0/21 -add china 103.16.88.0/22 -add china 103.16.108.0/22 -add china 103.16.124.0/22 -add china 103.17.40.0/22 -add china 103.17.64.0/22 -add china 103.17.120.0/22 -add china 103.17.136.0/22 -add china 103.17.160.0/22 -add china 103.17.204.0/22 -add china 103.17.228.0/22 -add china 103.18.192.0/22 -add china 103.18.208.0/21 -add china 103.18.224.0/22 -add china 103.19.0.0/22 -add china 103.19.12.0/22 -add china 103.19.40.0/21 -add china 103.19.64.0/21 -add china 103.19.72.0/22 -add china 103.19.232.0/22 -add china 103.20.12.0/22 -add china 103.20.32.0/22 -add china 103.20.44.0/22 -add china 103.20.68.0/22 -add china 103.20.112.0/22 -add china 103.20.128.0/22 -add china 103.20.160.0/22 -add china 103.20.248.0/22 -add china 103.21.112.0/21 -add china 103.21.136.0/21 -add china 103.21.176.0/22 -add china 103.21.208.0/22 -add china 103.21.240.0/22 -add china 103.22.0.0/18 -add china 103.22.64.0/19 -add china 103.22.100.0/22 -add china 103.22.104.0/21 -add china 103.22.112.0/20 -add china 103.22.188.0/22 -add china 103.22.228.0/22 -add china 103.22.252.0/22 -add china 103.23.8.0/22 -add china 103.23.56.0/22 -add china 103.23.160.0/21 -add china 103.23.176.0/22 -add china 103.23.228.0/22 -add china 103.24.24.0/22 -add china 103.24.116.0/22 -add china 103.24.128.0/22 -add china 103.24.144.0/22 -add china 103.24.176.0/22 -add china 103.24.184.0/22 -add china 103.24.220.0/22 -add china 103.24.228.0/22 -add china 103.24.248.0/21 -add china 103.25.8.0/23 -add china 103.25.20.0/22 -add china 103.25.24.0/21 -add china 103.25.32.0/21 -add china 103.25.40.0/22 -add china 103.25.48.0/22 -add china 103.25.64.0/21 -add china 103.25.148.0/22 -add china 103.25.156.0/22 -add china 103.25.216.0/22 -add china 103.26.0.0/22 -add china 103.26.64.0/22 -add china 103.26.76.0/22 -add china 103.26.116.0/22 -add china 103.26.132.0/22 -add china 103.26.156.0/22 -add china 103.26.160.0/22 -add china 103.26.228.0/22 -add china 103.26.240.0/22 -add china 103.27.4.0/22 -add china 103.27.12.0/22 -add china 103.27.24.0/22 -add china 103.27.56.0/22 -add china 103.27.96.0/22 -add china 103.27.184.0/22 -add china 103.27.208.0/21 -add china 103.27.240.0/22 -add china 103.28.4.0/22 -add china 103.28.8.0/22 -add china 103.28.184.0/22 -add china 103.28.204.0/22 -add china 103.28.212.0/22 -add china 103.29.0.0/22 -add china 103.29.16.0/22 -add china 103.29.128.0/21 -add china 103.29.136.0/22 -add china 103.30.20.0/22 -add china 103.30.96.0/22 -add china 103.30.148.0/22 -add china 103.30.200.0/22 -add china 103.30.228.0/22 -add china 103.30.234.0/23 -add china 103.30.236.0/22 -add china 103.31.0.0/22 -add china 103.31.48.0/20 -add china 103.31.64.0/21 -add china 103.31.72.0/24 -add china 103.31.148.0/22 -add china 103.31.160.0/22 -add china 103.31.168.0/22 -add china 103.31.200.0/22 -add china 103.31.236.0/22 -add china 103.32.0.0/15 -add china 103.34.0.0/16 -add china 103.35.0.0/19 -add china 103.35.32.0/20 -add china 103.35.48.0/22 -add china 103.35.104.0/22 -add china 103.35.116.0/22 -add china 103.35.180.0/22 -add china 103.35.200.0/22 -add china 103.35.220.0/22 -add china 103.36.20.0/22 -add china 103.36.28.0/22 -add china 103.36.36.0/22 -add china 103.36.56.0/21 -add china 103.36.64.0/22 -add china 103.36.72.0/22 -add china 103.36.96.0/22 -add china 103.36.132.0/22 -add china 103.36.136.0/22 -add china 103.36.160.0/19 -add china 103.36.192.0/19 -add china 103.36.224.0/20 -add china 103.36.240.0/21 -add china 103.37.0.0/22 -add china 103.37.12.0/22 -add china 103.37.16.0/22 -add china 103.37.24.0/22 -add china 103.37.44.0/22 -add china 103.37.52.0/22 -add china 103.37.56.0/22 -add china 103.37.72.0/22 -add china 103.37.100.0/22 -add china 103.37.104.0/22 -add china 103.37.124.0/22 -add china 103.37.136.0/21 -add china 103.37.144.0/20 -add china 103.37.160.0/21 -add china 103.37.172.0/22 -add china 103.37.176.0/22 -add china 103.37.188.0/22 -add china 103.37.208.0/20 -add china 103.37.248.0/21 -add china 103.38.0.0/22 -add china 103.38.32.0/22 -add china 103.38.40.0/21 -add china 103.38.56.0/22 -add china 103.38.76.0/22 -add china 103.38.84.0/22 -add china 103.38.92.0/22 -add china 103.38.96.0/22 -add china 103.38.116.0/22 -add china 103.38.132.0/22 -add china 103.38.140.0/22 -add china 103.38.220.0/22 -add china 103.38.224.0/21 -add china 103.38.232.0/22 -add china 103.38.252.0/22 -add china 103.39.16.0/22 -add china 103.39.64.0/22 -add china 103.39.88.0/22 -add china 103.39.100.0/22 -add china 103.39.104.0/21 -add china 103.39.160.0/19 -add china 103.39.200.0/21 -add china 103.39.208.0/20 -add china 103.39.224.0/21 -add china 103.39.232.0/22 -add china 103.40.12.0/22 -add china 103.40.16.0/20 -add china 103.40.32.0/20 -add china 103.40.88.0/22 -add china 103.40.100.0/22 -add china 103.40.112.0/22 -add china 103.40.192.0/22 -add china 103.40.212.0/22 -add china 103.40.220.0/22 -add china 103.40.228.0/22 -add china 103.40.232.0/21 -add china 103.40.240.0/20 -add china 103.41.0.0/22 -add china 103.41.16.0/22 -add china 103.41.52.0/22 -add china 103.41.140.0/22 -add china 103.41.148.0/22 -add china 103.41.152.0/22 -add china 103.41.160.0/21 -add china 103.41.220.0/22 -add china 103.41.224.0/21 -add china 103.41.232.0/22 -add china 103.42.8.0/22 -add china 103.42.24.0/21 -add china 103.42.32.0/22 -add china 103.42.64.0/21 -add china 103.42.76.0/22 -add china 103.42.104.0/22 -add china 103.42.180.0/22 -add china 103.42.232.0/22 -add china 103.43.16.0/22 -add china 103.43.26.0/23 -add china 103.43.84.0/22 -add china 103.43.96.0/21 -add china 103.43.104.0/22 -add china 103.43.124.0/22 -add china 103.43.132.0/22 -add china 103.43.184.0/22 -add china 103.43.192.0/21 -add china 103.43.208.0/22 -add china 103.43.220.0/22 -add china 103.43.224.0/22 -add china 103.43.232.0/22 -add china 103.43.240.0/22 -add china 103.44.56.0/22 -add china 103.44.80.0/22 -add china 103.44.88.0/22 -add china 103.44.120.0/21 -add china 103.44.132.0/22 -add china 103.44.144.0/22 -add china 103.44.152.0/22 -add china 103.44.168.0/22 -add china 103.44.176.0/20 -add china 103.44.192.0/20 -add china 103.44.224.0/22 -add china 103.44.236.0/22 -add china 103.44.240.0/20 -add china 103.45.0.0/18 -add china 103.45.72.0/21 -add china 103.45.80.0/20 -add china 103.45.96.0/19 -add china 103.45.128.0/18 -add china 103.45.192.0/19 -add china 103.45.224.0/22 -add china 103.45.248.0/22 -add china 103.46.0.0/22 -add china 103.46.12.0/22 -add china 103.46.16.0/20 -add china 103.46.32.0/19 -add china 103.46.64.0/18 -add china 103.46.128.0/21 -add china 103.46.136.0/22 -add china 103.46.152.0/21 -add china 103.46.160.0/20 -add china 103.46.176.0/21 -add china 103.46.244.0/22 -add china 103.46.248.0/22 -add china 103.47.4.0/22 -add china 103.47.20.0/22 -add china 103.47.36.0/22 -add china 103.47.40.0/22 -add china 103.47.48.0/22 -add china 103.47.80.0/22 -add china 103.47.96.0/22 -add china 103.47.108.0/22 -add china 103.47.116.0/22 -add china 103.47.120.0/22 -add china 103.47.136.0/21 -add china 103.47.212.0/22 -add china 103.47.220.0/22 -add china 103.47.248.0/22 -add china 103.48.20.0/22 -add china 103.48.52.0/22 -add china 103.48.92.0/22 -add china 103.48.144.0/20 -add china 103.48.202.0/23 -add china 103.48.216.0/21 -add china 103.48.224.0/20 -add china 103.48.240.0/21 -add china 103.49.12.0/22 -add china 103.49.20.0/22 -add china 103.49.72.0/21 -add china 103.49.92.0/22 -add china 103.49.96.0/22 -add china 103.49.108.0/22 -add china 103.49.128.0/22 -add china 103.49.176.0/21 -add china 103.49.196.0/22 -add china 103.49.248.0/22 -add china 103.50.36.0/22 -add china 103.50.44.0/22 -add china 103.50.48.0/20 -add china 103.50.64.0/21 -add china 103.50.72.0/22 -add china 103.50.92.0/22 -add china 103.50.108.0/22 -add china 103.50.112.0/20 -add china 103.50.132.0/22 -add china 103.50.136.0/21 -add china 103.50.172.0/22 -add china 103.50.176.0/20 -add china 103.50.192.0/21 -add china 103.50.200.0/22 -add china 103.50.220.0/22 -add china 103.50.224.0/20 -add china 103.50.240.0/21 -add china 103.50.248.0/22 -add china 103.52.40.0/22 -add china 103.52.72.0/21 -add china 103.52.80.0/21 -add china 103.52.96.0/21 -add china 103.52.104.0/22 -add china 103.52.160.0/21 -add china 103.52.172.0/22 -add china 103.52.176.0/22 -add china 103.52.184.0/22 -add china 103.52.196.0/22 -add china 103.53.4.0/22 -add china 103.53.64.0/21 -add china 103.53.92.0/22 -add china 103.53.100.0/22 -add china 103.53.124.0/22 -add china 103.53.128.0/20 -add china 103.53.144.0/22 -add china 103.53.160.0/22 -add china 103.53.180.0/22 -add china 103.53.204.0/22 -add china 103.53.208.0/21 -add china 103.53.216.0/22 -add china 103.53.236.0/22 -add china 103.53.248.0/22 -add china 103.54.8.0/22 -add china 103.54.48.0/22 -add china 103.54.60.0/22 -add china 103.54.160.0/21 -add china 103.54.212.0/22 -add china 103.54.228.0/22 -add china 103.54.240.0/22 -add china 103.55.24.0/22 -add china 103.55.80.0/22 -add china 103.55.120.0/22 -add china 103.55.152.0/22 -add china 103.55.172.0/22 -add china 103.55.204.0/22 -add china 103.55.208.0/22 -add china 103.55.228.0/22 -add china 103.55.236.0/22 -add china 103.55.240.0/22 -add china 103.56.8.0/22 -add china 103.56.16.0/21 -add china 103.56.32.0/22 -add china 103.56.52.0/22 -add china 103.56.56.0/21 -add china 103.56.72.0/21 -add china 103.56.100.0/22 -add china 103.56.104.0/22 -add china 103.56.140.0/22 -add china 103.56.152.0/22 -add china 103.56.184.0/22 -add china 103.56.200.0/22 -add china 103.56.216.0/22 -add china 103.57.12.0/22 -add china 103.57.52.0/22 -add china 103.57.56.0/22 -add china 103.57.76.0/22 -add china 103.57.108.0/22 -add china 103.57.136.0/22 -add china 103.57.196.0/22 -add china 103.58.24.0/22 -add china 103.58.182.0/23 -add china 103.59.76.0/22 -add china 103.59.100.0/22 -add china 103.59.112.0/20 -add china 103.59.128.0/22 -add china 103.59.148.0/22 -add china 103.59.164.0/22 -add china 103.60.32.0/22 -add china 103.60.44.0/22 -add china 103.60.164.0/22 -add china 103.60.228.0/22 -add china 103.60.236.0/22 -add china 103.61.60.0/22 -add china 103.61.104.0/22 -add china 103.61.140.0/22 -add china 103.61.152.0/21 -add china 103.61.160.0/22 -add china 103.61.172.0/22 -add china 103.61.176.0/22 -add china 103.61.184.0/21 -add china 103.62.24.0/22 -add china 103.62.52.0/22 -add china 103.62.72.0/21 -add china 103.62.80.0/21 -add china 103.62.88.0/22 -add china 103.62.96.0/19 -add china 103.62.128.0/21 -add china 103.62.156.0/22 -add china 103.62.160.0/19 -add china 103.62.192.0/22 -add china 103.62.204.0/22 -add china 103.62.208.0/20 -add china 103.62.224.0/22 -add china 103.63.32.0/19 -add china 103.63.64.0/20 -add china 103.63.80.0/21 -add china 103.63.88.0/22 -add china 103.63.140.0/22 -add china 103.63.144.0/22 -add china 103.63.152.0/22 -add china 103.63.160.0/20 -add china 103.63.176.0/21 -add china 103.63.184.0/22 -add china 103.63.192.0/20 -add china 103.63.208.0/22 -add china 103.63.240.0/20 -add china 103.64.0.0/21 -add china 103.64.24.0/21 -add china 103.64.32.0/19 -add china 103.64.64.0/18 -add china 103.64.140.0/22 -add china 103.64.144.0/22 -add china 103.64.152.0/21 -add china 103.64.160.0/19 -add china 103.64.192.0/18 -add china 103.65.0.0/20 -add china 103.65.16.0/22 -add china 103.65.36.0/22 -add china 103.65.40.0/22 -add china 103.65.48.0/20 -add china 103.65.64.0/19 -add china 103.65.100.0/22 -add china 103.65.104.0/21 -add china 103.65.112.0/20 -add china 103.65.128.0/21 -add china 103.65.136.0/22 -add china 103.65.144.0/20 -add china 103.65.160.0/20 -add china 103.66.32.0/22 -add china 103.66.40.0/22 -add china 103.66.92.0/22 -add china 103.66.108.0/22 -add china 103.66.200.0/22 -add china 103.66.216.0/22 -add china 103.66.240.0/20 -add china 103.67.0.0/21 -add china 103.67.8.0/22 -add china 103.67.40.0/21 -add china 103.67.48.0/20 -add china 103.67.64.0/18 -add china 103.67.128.0/20 -add china 103.67.144.0/21 -add china 103.67.172.0/22 -add china 103.67.192.0/22 -add china 103.67.212.0/22 -add china 103.67.252.0/22 -add china 103.68.64.0/22 -add china 103.68.88.0/22 -add china 103.68.100.0/22 -add china 103.68.128.0/22 -add china 103.68.192.0/22 -add china 103.69.16.0/22 -add china 103.69.116.0/22 -add china 103.69.132.0/22 -add china 103.69.152.0/22 -add china 103.69.212.0/22 -add china 103.70.8.0/22 -add china 103.70.148.0/22 -add china 103.70.184.0/22 -add china 103.70.220.0/22 -add china 103.70.224.0/22 -add china 103.70.236.0/22 -add china 103.70.252.0/22 -add china 103.71.0.0/22 -add china 103.71.32.0/22 -add china 103.71.48.0/22 -add china 103.71.68.0/22 -add china 103.71.72.0/22 -add china 103.71.80.0/21 -add china 103.71.88.0/22 -add china 103.71.120.0/21 -add china 103.71.128.0/22 -add china 103.71.144.0/22 -add china 103.71.196.0/22 -add china 103.71.200.0/22 -add china 103.71.232.0/22 -add china 103.72.12.0/22 -add china 103.72.16.0/20 -add china 103.72.32.0/20 -add china 103.72.48.0/21 -add china 103.72.112.0/20 -add china 103.72.128.0/21 -add china 103.72.144.0/21 -add china 103.72.164.0/22 -add china 103.72.172.0/22 -add china 103.72.180.0/22 -add china 103.72.224.0/19 -add china 103.73.0.0/19 -add china 103.73.48.0/22 -add china 103.73.88.0/22 -add china 103.73.96.0/22 -add china 103.73.116.0/22 -add china 103.73.120.0/22 -add china 103.73.128.0/20 -add china 103.73.144.0/22 -add china 103.73.168.0/22 -add china 103.73.176.0/22 -add china 103.73.204.0/22 -add china 103.73.208.0/22 -add china 103.73.240.0/21 -add china 103.73.248.0/22 -add china 103.74.24.0/21 -add china 103.74.32.0/20 -add china 103.74.48.0/22 -add china 103.74.56.0/21 -add china 103.74.80.0/22 -add china 103.74.124.0/22 -add china 103.74.148.0/22 -add china 103.74.152.0/21 -add china 103.74.204.0/22 -add china 103.74.232.0/22 -add china 103.75.16.0/22 -add china 103.75.84.0/22 -add china 103.75.88.0/21 -add china 103.75.104.0/21 -add china 103.75.112.0/22 -add china 103.75.120.0/22 -add china 103.75.128.0/22 -add china 103.75.144.0/22 -add china 103.75.152.0/22 -add china 103.75.236.0/24 -add china 103.76.60.0/22 -add china 103.76.64.0/21 -add china 103.76.72.0/22 -add china 103.76.84.0/22 -add china 103.76.92.0/22 -add china 103.76.104.0/22 -add china 103.76.216.0/21 -add china 103.76.224.0/22 -add china 103.77.28.0/22 -add china 103.77.52.0/22 -add china 103.77.56.0/22 -add china 103.77.72.0/22 -add china 103.77.88.0/21 -add china 103.77.132.0/22 -add china 103.77.148.0/22 -add china 103.77.220.0/22 -add china 103.78.56.0/21 -add china 103.78.64.0/21 -add china 103.78.124.0/22 -add china 103.78.172.0/22 -add china 103.78.176.0/22 -add china 103.78.196.0/22 -add china 103.78.228.0/22 -add china 103.79.24.0/21 -add china 103.79.36.0/22 -add china 103.79.40.0/21 -add china 103.192.0.0/19 -add china 103.192.48.0/21 -add china 103.192.56.0/22 -add china 103.192.84.0/22 -add china 103.192.88.0/21 -add china 103.192.96.0/20 -add china 103.192.112.0/22 -add china 103.192.128.0/20 -add china 103.192.144.0/22 -add china 103.192.164.0/22 -add china 103.192.188.0/22 -add china 103.192.208.0/21 -add china 103.192.216.0/22 -add china 103.192.252.0/22 -add china 103.193.40.0/21 -add china 103.193.120.0/21 -add china 103.193.140.0/22 -add china 103.193.144.0/21 -add china 103.193.160.0/22 -add china 103.193.188.0/22 -add china 103.193.192.0/22 -add china 103.193.212.0/22 -add china 103.193.216.0/21 -add china 103.193.224.0/20 -add china 103.193.240.0/22 -add china 103.194.16.0/22 -add china 103.194.230.0/23 -add china 103.195.104.0/22 -add china 103.195.112.0/22 -add china 103.195.136.0/22 -add china 103.195.148.0/22 -add china 103.195.152.0/22 -add china 103.195.160.0/22 -add china 103.195.192.0/22 -add china 103.196.60.0/22 -add china 103.196.64.0/22 -add china 103.196.72.0/22 -add china 103.196.88.0/21 -add china 103.196.96.0/22 -add china 103.196.168.0/22 -add china 103.196.184.0/22 -add china 103.196.204.0/22 -add china 103.197.180.0/22 -add china 103.197.228.0/22 -add china 103.197.252.0/22 -add china 103.198.20.0/22 -add china 103.198.60.0/22 -add china 103.198.64.0/22 -add china 103.198.72.0/22 -add china 103.198.124.0/22 -add china 103.198.156.0/22 -add china 103.198.180.0/22 -add china 103.198.196.0/22 -add china 103.198.200.0/22 -add china 103.198.216.0/21 -add china 103.198.224.0/20 -add china 103.198.240.0/21 -add china 103.199.164.0/22 -add china 103.199.196.0/22 -add china 103.199.228.0/22 -add china 103.199.248.0/21 -add china 103.200.28.0/22 -add china 103.200.32.0/22 -add china 103.200.52.0/22 -add china 103.200.64.0/21 -add china 103.200.136.0/21 -add china 103.200.144.0/20 -add china 103.200.160.0/19 -add china 103.200.192.0/22 -add china 103.200.220.0/22 -add china 103.200.224.0/19 -add china 103.201.0.0/20 -add china 103.201.16.0/21 -add china 103.201.28.0/22 -add china 103.201.32.0/19 -add china 103.201.64.0/22 -add china 103.201.76.0/22 -add china 103.201.80.0/20 -add china 103.201.96.0/20 -add china 103.201.112.0/21 -add china 103.201.120.0/22 -add china 103.201.152.0/21 -add china 103.201.160.0/19 -add china 103.201.192.0/18 -add china 103.202.0.0/19 -add china 103.202.32.0/20 -add china 103.202.56.0/21 -add china 103.202.64.0/18 -add china 103.202.128.0/20 -add china 103.202.144.0/22 -add china 103.202.152.0/21 -add china 103.202.160.0/19 -add china 103.202.192.0/20 -add china 103.202.212.0/22 -add china 103.202.228.0/22 -add china 103.202.236.0/22 -add china 103.202.240.0/20 -add china 103.203.0.0/19 -add china 103.203.32.0/22 -add china 103.203.52.0/22 -add china 103.203.56.0/22 -add china 103.203.96.0/19 -add china 103.203.128.0/22 -add china 103.203.140.0/22 -add china 103.203.164.0/22 -add china 103.203.168.0/22 -add china 103.203.192.0/22 -add china 103.203.200.0/22 -add china 103.203.212.0/22 -add china 103.203.216.0/22 -add china 103.204.24.0/22 -add china 103.204.72.0/22 -add china 103.204.88.0/22 -add china 103.204.112.0/22 -add china 103.204.136.0/21 -add china 103.204.144.0/21 -add china 103.204.152.0/22 -add china 103.204.196.0/22 -add china 103.204.232.0/21 -add china 103.205.4.0/22 -add china 103.205.8.0/22 -add china 103.205.40.0/21 -add china 103.205.52.0/22 -add china 103.205.108.0/22 -add china 103.205.116.0/22 -add china 103.205.120.0/22 -add china 103.205.136.0/22 -add china 103.205.162.0/24 -add china 103.205.188.0/22 -add china 103.205.192.0/21 -add china 103.205.200.0/22 -add china 103.205.236.0/22 -add china 103.205.248.0/21 -add china 103.206.0.0/22 -add china 103.206.44.0/22 -add china 103.206.108.0/22 -add china 103.206.148.0/22 -add china 103.207.48.0/22 -add china 103.207.104.0/22 -add china 103.207.164.0/22 -add china 103.207.184.0/21 -add china 103.207.192.0/20 -add china 103.207.208.0/21 -add china 103.207.220.0/22 -add china 103.207.228.0/22 -add china 103.207.232.0/22 -add china 103.208.12.0/22 -add china 103.208.16.0/22 -add china 103.208.28.0/22 -add china 103.208.40.0/21 -add china 103.208.48.0/22 -add china 103.208.148.0/22 -add china 103.209.112.0/22 -add china 103.209.136.0/22 -add china 103.209.200.0/22 -add china 103.209.208.0/22 -add china 103.209.216.0/22 -add china 103.209.232.0/22 -add china 103.210.0.0/22 -add china 103.210.96.0/22 -add china 103.210.156.0/22 -add china 103.210.160.0/19 -add china 103.210.216.0/22 -add china 103.211.44.0/22 -add china 103.211.96.0/21 -add china 103.211.156.0/22 -add china 103.211.164.0/22 -add china 103.211.168.0/22 -add china 103.211.192.0/22 -add china 103.211.220.0/22 -add china 103.211.224.0/21 -add china 103.211.248.0/22 -add china 103.212.0.0/20 -add china 103.212.32.0/22 -add china 103.212.44.0/22 -add china 103.212.48.0/22 -add china 103.212.84.0/22 -add china 103.212.100.0/22 -add china 103.212.104.0/21 -add china 103.212.148.0/22 -add china 103.212.164.0/22 -add china 103.212.196.0/22 -add china 103.212.200.0/22 -add china 103.212.228.0/22 -add china 103.212.252.0/22 -add china 103.213.40.0/21 -add china 103.213.48.0/20 -add china 103.213.64.0/19 -add china 103.213.96.0/22 -add china 103.213.132.0/22 -add china 103.213.136.0/21 -add china 103.213.144.0/20 -add china 103.213.160.0/19 -add china 103.213.248.0/21 -add china 103.214.32.0/22 -add china 103.214.48.0/22 -add china 103.214.84.0/22 -add china 103.214.168.0/22 -add china 103.214.212.0/22 -add china 103.214.224.0/22 -add china 103.214.240.0/21 -add china 103.215.28.0/22 -add china 103.215.32.0/21 -add china 103.215.44.0/22 -add china 103.215.48.0/22 -add china 103.215.100.0/22 -add china 103.215.104.0/21 -add china 103.215.116.0/22 -add china 103.215.120.0/22 -add china 103.215.140.0/22 -add china 103.215.184.0/22 -add china 103.215.228.0/22 -add china 103.216.4.0/22 -add china 103.216.8.0/21 -add china 103.216.16.0/20 -add china 103.216.32.0/20 -add china 103.216.64.0/22 -add china 103.216.108.0/22 -add china 103.216.136.0/22 -add china 103.216.152.0/22 -add china 103.216.224.0/21 -add china 103.216.240.0/20 -add china 103.217.0.0/18 -add china 103.217.168.0/22 -add china 103.217.180.0/22 -add china 103.217.184.0/21 -add china 103.217.192.0/20 -add china 103.218.0.0/22 -add china 103.218.8.0/21 -add china 103.218.16.0/21 -add china 103.218.28.0/22 -add china 103.218.32.0/19 -add china 103.218.64.0/19 -add china 103.218.184.0/22 -add china 103.218.192.0/20 -add china 103.218.208.0/21 -add china 103.218.216.0/22 -add china 103.219.24.0/21 -add china 103.219.32.0/21 -add china 103.219.64.0/22 -add china 103.219.84.0/22 -add china 103.219.88.0/21 -add china 103.219.96.0/21 -add china 103.219.176.0/22 -add china 103.219.184.0/22 -add china 103.220.48.0/20 -add china 103.220.64.0/22 -add china 103.220.92.0/22 -add china 103.220.96.0/20 -add china 103.220.116.0/22 -add china 103.220.120.0/21 -add china 103.220.128.0/20 -add china 103.220.144.0/21 -add china 103.220.152.0/22 -add china 103.220.160.0/19 -add china 103.220.192.0/21 -add china 103.220.200.0/22 -add china 103.220.240.0/20 -add china 103.221.0.0/19 -add china 103.221.32.0/20 -add china 103.221.48.0/22 -add china 103.221.88.0/21 -add china 103.221.96.0/19 -add china 103.221.128.0/18 -add china 103.221.192.0/20 -add china 103.222.0.0/20 -add china 103.222.16.0/22 -add china 103.222.24.0/21 -add china 103.222.32.0/19 -add china 103.222.64.0/18 -add china 103.222.128.0/18 -add china 103.222.192.0/19 -add china 103.222.224.0/21 -add china 103.222.232.0/22 -add china 103.222.240.0/21 -add china 103.223.16.0/20 -add china 103.223.32.0/19 -add china 103.223.64.0/18 -add china 103.223.128.0/21 -add china 103.223.140.0/22 -add china 103.223.144.0/20 -add china 103.223.160.0/20 -add china 103.223.176.0/21 -add china 103.223.188.0/22 -add china 103.223.192.0/18 -add china 103.224.0.0/22 -add china 103.224.16.0/22 -add china 103.224.40.0/21 -add china 103.224.60.0/22 -add china 103.224.80.0/22 -add china 103.224.220.0/22 -add china 103.224.224.0/21 -add china 103.224.232.0/22 -add china 103.225.84.0/22 -add china 103.226.16.0/22 -add china 103.226.40.0/22 -add china 103.226.56.0/21 -add china 103.226.80.0/22 -add china 103.226.116.0/22 -add china 103.226.132.0/22 -add china 103.226.156.0/22 -add china 103.226.180.0/22 -add china 103.226.196.0/22 -add china 103.227.48.0/22 -add china 103.227.72.0/21 -add china 103.227.80.0/22 -add china 103.227.100.0/22 -add china 103.227.120.0/22 -add china 103.227.132.0/22 -add china 103.227.136.0/22 -add china 103.227.196.0/22 -add china 103.227.204.0/22 -add china 103.227.212.0/22 -add china 103.227.228.0/22 -add china 103.228.12.0/22 -add china 103.228.28.0/22 -add china 103.228.68.0/22 -add china 103.228.88.0/22 -add china 103.228.128.0/22 -add china 103.228.136.0/22 -add china 103.228.160.0/22 -add china 103.228.176.0/22 -add china 103.228.204.0/22 -add china 103.228.208.0/22 -add china 103.228.228.0/22 -add china 103.228.232.0/22 -add china 103.229.20.0/22 -add china 103.229.60.0/22 -add china 103.229.136.0/22 -add china 103.229.148.0/22 -add china 103.229.172.0/22 -add china 103.229.212.0/22 -add china 103.229.216.0/21 -add china 103.229.228.0/22 -add china 103.229.236.0/22 -add china 103.229.240.0/22 -add china 103.230.0.0/22 -add china 103.230.28.0/22 -add china 103.230.40.0/21 -add china 103.230.96.0/22 -add china 103.230.196.0/22 -add china 103.230.200.0/21 -add china 103.230.212.0/22 -add china 103.230.236.0/22 -add china 103.231.16.0/21 -add china 103.231.64.0/21 -add china 103.231.144.0/22 -add china 103.231.180.0/22 -add china 103.231.184.0/22 -add china 103.231.244.0/22 -add china 103.232.4.0/22 -add china 103.232.144.0/22 -add china 103.232.188.0/22 -add china 103.232.212.0/22 -add china 103.233.4.0/22 -add china 103.233.44.0/22 -add china 103.233.52.0/22 -add china 103.233.104.0/22 -add china 103.233.128.0/22 -add china 103.233.136.0/22 -add china 103.233.228.0/22 -add china 103.234.0.0/22 -add china 103.234.20.0/22 -add china 103.234.56.0/22 -add china 103.234.124.0/22 -add china 103.234.128.0/22 -add china 103.234.172.0/22 -add china 103.234.180.0/22 -add china 103.234.244.0/22 -add china 103.235.16.0/22 -add china 103.235.48.0/22 -add china 103.235.56.0/21 -add china 103.235.80.0/21 -add china 103.235.128.0/20 -add china 103.235.144.0/21 -add china 103.235.184.0/22 -add china 103.235.192.0/22 -add china 103.235.200.0/22 -add china 103.235.220.0/22 -add china 103.235.224.0/19 -add china 103.236.0.0/18 -add china 103.236.64.0/19 -add china 103.236.96.0/22 -add china 103.236.120.0/22 -add china 103.236.184.0/22 -add china 103.236.220.0/22 -add china 103.236.232.0/22 -add china 103.236.240.0/20 -add china 103.237.0.0/20 -add china 103.237.24.0/21 -add china 103.237.68.0/22 -add china 103.237.88.0/22 -add china 103.237.152.0/22 -add china 103.237.176.0/20 -add china 103.237.192.0/18 -add china 103.238.0.0/21 -add china 103.238.16.0/20 -add china 103.238.32.0/20 -add china 103.238.48.0/21 -add china 103.238.56.0/22 -add china 103.238.88.0/21 -add china 103.238.96.0/22 -add china 103.238.132.0/22 -add china 103.238.140.0/22 -add china 103.238.144.0/22 -add china 103.238.160.0/19 -add china 103.238.196.0/22 -add china 103.238.204.0/22 -add china 103.238.252.0/22 -add china 103.239.0.0/22 -add china 103.239.44.0/22 -add china 103.239.68.0/22 -add china 103.239.96.0/22 -add china 103.239.152.0/21 -add china 103.239.176.0/21 -add china 103.239.184.0/22 -add china 103.239.192.0/21 -add china 103.239.204.0/22 -add china 103.239.208.0/22 -add china 103.239.224.0/22 -add china 103.239.244.0/22 -add china 103.240.16.0/22 -add china 103.240.36.0/22 -add china 103.240.72.0/22 -add china 103.240.84.0/22 -add china 103.240.124.0/22 -add china 103.240.156.0/22 -add china 103.240.172.0/22 -add china 103.240.188.0/22 -add china 103.240.244.0/22 -add china 103.241.12.0/22 -add china 103.241.72.0/22 -add china 103.241.92.0/22 -add china 103.241.96.0/22 -add china 103.241.160.0/22 -add china 103.241.184.0/21 -add china 103.241.220.0/22 -add china 103.242.8.0/22 -add china 103.242.64.0/22 -add china 103.242.128.0/21 -add china 103.242.160.0/22 -add china 103.242.168.0/21 -add china 103.242.176.0/22 -add china 103.242.200.0/22 -add china 103.242.212.0/22 -add china 103.242.220.0/22 -add china 103.242.240.0/22 -add china 103.243.136.0/22 -add china 103.243.252.0/22 -add china 103.244.16.0/22 -add china 103.244.58.0/23 -add china 103.244.60.0/22 -add china 103.244.64.0/20 -add china 103.244.80.0/21 -add china 103.244.116.0/22 -add china 103.244.164.0/22 -add china 103.244.232.0/22 -add china 103.244.252.0/22 -add china 103.245.23.0/24 -add china 103.245.52.0/22 -add china 103.245.60.0/22 -add china 103.245.80.0/22 -add china 103.245.124.0/22 -add china 103.245.128.0/22 -add china 103.246.8.0/21 -add china 103.246.72.0/22 -add china 103.246.120.0/21 -add china 103.246.132.0/22 -add china 103.246.152.0/21 -add china 103.247.168.0/21 -add china 103.247.176.0/22 -add china 103.247.200.0/22 -add china 103.247.212.0/22 -add china 103.248.0.0/23 -add china 103.248.64.0/22 -add china 103.248.100.0/22 -add china 103.248.124.0/22 -add china 103.248.152.0/22 -add china 103.248.168.0/22 -add china 103.248.192.0/22 -add china 103.248.212.0/22 -add china 103.248.220.0/22 -add china 103.248.224.0/21 -add china 103.249.8.0/21 -add china 103.249.52.0/22 -add china 103.249.104.0/22 -add china 103.249.128.0/22 -add china 103.249.136.0/22 -add china 103.249.144.0/22 -add china 103.249.164.0/22 -add china 103.249.168.0/21 -add china 103.249.176.0/22 -add china 103.249.188.0/22 -add china 103.249.192.0/22 -add china 103.249.244.0/22 -add china 103.249.252.0/22 -add china 103.250.32.0/22 -add china 103.250.104.0/22 -add china 103.250.124.0/22 -add china 103.250.180.0/22 -add china 103.250.192.0/22 -add china 103.250.216.0/22 -add china 103.250.224.0/22 -add china 103.250.236.0/22 -add china 103.250.248.0/21 -add china 103.251.32.0/21 -add china 103.251.84.0/22 -add china 103.251.96.0/22 -add china 103.251.124.0/22 -add china 103.251.128.0/22 -add china 103.251.160.0/22 -add china 103.251.192.0/22 -add china 103.251.204.0/22 -add china 103.251.236.0/22 -add china 103.251.240.0/22 -add china 103.252.28.0/22 -add china 103.252.36.0/22 -add china 103.252.64.0/22 -add china 103.252.96.0/22 -add china 103.252.104.0/22 -add china 103.252.172.0/22 -add china 103.252.204.0/22 -add china 103.252.208.0/22 -add china 103.252.232.0/22 -add china 103.252.248.0/22 -add china 103.253.4.0/22 -add china 103.253.60.0/22 -add china 103.253.204.0/22 -add china 103.253.220.0/22 -add china 103.253.224.0/22 -add china 103.253.232.0/22 -add china 103.254.8.0/22 -add china 103.254.20.0/22 -add china 103.254.64.0/20 -add china 103.254.112.0/22 -add china 103.254.176.0/22 -add china 103.254.188.0/22 -add china 103.254.196.0/24 -add china 103.254.220.0/22 -add china 103.255.56.0/22 -add china 103.255.68.0/22 -add china 103.255.88.0/21 -add china 103.255.136.0/21 -add china 103.255.184.0/22 -add china 103.255.200.0/22 -add china 103.255.208.0/21 -add china 103.255.228.0/22 -add china 106.0.0.0/24 -add china 106.0.2.0/23 -add china 106.0.4.0/22 -add china 106.0.8.0/21 -add china 106.0.16.0/20 -add china 106.0.44.0/22 -add china 106.0.64.0/18 -add china 106.2.0.0/15 -add china 106.4.0.0/14 -add china 106.8.0.0/15 -add china 106.11.0.0/16 -add china 106.12.0.0/14 -add china 106.16.0.0/12 -add china 106.32.0.0/12 -add china 106.48.0.0/15 -add china 106.50.0.0/16 -add china 106.52.0.0/14 -add china 106.56.0.0/13 -add china 106.74.0.0/15 -add china 106.80.0.0/12 -add china 106.108.0.0/14 -add china 106.112.0.0/12 -add china 106.224.0.0/12 -add china 110.6.0.0/15 -add china 110.16.0.0/14 -add china 110.34.40.0/21 -add china 110.40.0.0/14 -add china 110.44.12.0/22 -add china 110.44.144.0/20 -add china 110.48.0.0/16 -add china 110.51.0.0/16 -add china 110.52.0.0/15 -add china 110.56.0.0/13 -add china 110.64.0.0/15 -add china 110.72.0.0/15 -add china 110.75.0.0/16 -add china 110.76.0.0/18 -add china 110.76.132.0/22 -add china 110.76.156.0/22 -add china 110.76.184.0/22 -add china 110.76.192.0/18 -add china 110.77.0.0/17 -add china 110.80.0.0/13 -add china 110.88.0.0/14 -add china 110.92.68.0/22 -add china 110.93.32.0/19 -add china 110.94.0.0/15 -add china 110.96.0.0/11 -add china 110.152.0.0/14 -add china 110.156.0.0/15 -add china 110.165.32.0/19 -add china 110.166.0.0/15 -add china 110.172.192.0/18 -add china 110.173.0.0/19 -add china 110.173.32.0/20 -add china 110.173.64.0/18 -add china 110.173.192.0/19 -add china 110.176.0.0/12 -add china 110.192.0.0/11 -add china 110.228.0.0/14 -add china 110.232.32.0/19 -add china 110.236.0.0/15 -add china 110.240.0.0/12 -add china 111.0.0.0/10 -add china 111.66.0.0/16 -add china 111.67.192.0/20 -add china 111.68.64.0/19 -add china 111.72.0.0/13 -add china 111.85.0.0/16 -add china 111.91.192.0/19 -add china 111.92.248.0/21 -add china 111.112.0.0/14 -add china 111.116.0.0/15 -add china 111.118.200.0/21 -add china 111.119.64.0/18 -add china 111.119.128.0/19 -add china 111.120.0.0/14 -add china 111.124.0.0/16 -add china 111.126.0.0/15 -add china 111.128.0.0/11 -add china 111.160.0.0/13 -add china 111.170.0.0/16 -add china 111.172.0.0/14 -add china 111.176.0.0/13 -add china 111.186.0.0/15 -add china 111.192.0.0/12 -add china 111.208.0.0/13 -add china 111.221.28.0/24 -add china 111.221.128.0/17 -add china 111.222.0.0/16 -add china 111.223.4.0/22 -add china 111.223.8.0/21 -add china 111.223.16.0/22 -add china 111.223.240.0/22 -add china 111.223.248.0/22 -add china 111.224.0.0/13 -add china 111.235.96.0/19 -add china 111.235.156.0/22 -add china 111.235.160.0/19 -add china 112.0.0.0/10 -add china 112.64.0.0/14 -add china 112.73.0.0/16 -add china 112.74.0.0/15 -add china 112.80.0.0/12 -add china 112.96.0.0/13 -add china 112.109.128.0/17 -add china 112.111.0.0/16 -add china 112.112.0.0/14 -add china 112.116.0.0/15 -add china 112.122.0.0/15 -add china 112.124.0.0/14 -add china 112.128.0.0/14 -add china 112.132.0.0/16 -add china 112.137.48.0/21 -add china 112.192.0.0/14 -add china 112.224.0.0/11 -add china 113.0.0.0/13 -add china 113.8.0.0/15 -add china 113.11.192.0/19 -add china 113.12.0.0/14 -add china 113.16.0.0/15 -add china 113.18.0.0/16 -add china 113.21.232.0/21 -add china 113.24.0.0/14 -add china 113.31.0.0/16 -add china 113.44.0.0/14 -add china 113.48.0.0/14 -add china 113.52.160.0/19 -add china 113.52.228.0/22 -add china 113.54.0.0/15 -add china 113.56.0.0/15 -add china 113.58.0.0/16 -add china 113.59.0.0/17 -add china 113.59.224.0/22 -add china 113.62.0.0/15 -add china 113.64.0.0/10 -add china 113.128.0.0/15 -add china 113.130.96.0/20 -add china 113.130.112.0/21 -add china 113.132.0.0/14 -add china 113.136.0.0/13 -add china 113.194.0.0/15 -add china 113.197.100.0/22 -add china 113.200.0.0/15 -add china 113.202.0.0/16 -add china 113.204.0.0/14 -add china 113.208.96.0/19 -add china 113.208.128.0/17 -add china 113.209.0.0/16 -add china 113.212.0.0/18 -add china 113.212.100.0/22 -add china 113.212.184.0/21 -add china 113.213.0.0/17 -add china 113.214.0.0/15 -add china 113.218.0.0/15 -add china 113.220.0.0/14 -add china 113.224.0.0/12 -add china 113.240.0.0/13 -add china 113.248.0.0/14 -add china 114.28.0.0/16 -add china 114.31.64.0/21 -add china 114.54.0.0/15 -add china 114.60.0.0/14 -add china 114.64.0.0/14 -add china 114.68.0.0/16 -add china 114.79.64.0/18 -add china 114.80.0.0/12 -add china 114.96.0.0/13 -add china 114.104.0.0/14 -add china 114.110.0.0/20 -add china 114.110.64.0/18 -add china 114.111.0.0/19 -add china 114.111.160.0/19 -add china 114.112.0.0/13 -add china 114.132.0.0/16 -add china 114.135.0.0/16 -add china 114.138.0.0/15 -add china 114.141.64.0/21 -add china 114.141.80.0/21 -add china 114.141.128.0/18 -add china 114.196.0.0/15 -add china 114.198.248.0/21 -add china 114.208.0.0/12 -add china 114.224.0.0/11 -add china 115.24.0.0/14 -add china 115.28.0.0/15 -add china 115.31.64.0/20 -add china 115.32.0.0/14 -add china 115.42.56.0/22 -add china 115.44.0.0/14 -add china 115.48.0.0/12 -add china 115.69.64.0/20 -add china 115.84.0.0/18 -add china 115.84.192.0/19 -add china 115.85.192.0/18 -add china 115.100.0.0/14 -add china 115.104.0.0/14 -add china 115.120.0.0/14 -add china 115.124.16.0/20 -add china 115.148.0.0/14 -add china 115.152.0.0/13 -add china 115.166.64.0/19 -add china 115.168.0.0/13 -add china 115.180.0.0/14 -add china 115.187.0.0/20 -add china 115.190.0.0/15 -add china 115.192.0.0/11 -add china 115.224.0.0/12 -add china 116.0.8.0/21 -add china 116.0.24.0/21 -add china 116.1.0.0/16 -add china 116.2.0.0/15 -add china 116.4.0.0/14 -add china 116.8.0.0/14 -add china 116.13.0.0/16 -add china 116.16.0.0/12 -add china 116.50.0.0/20 -add china 116.52.0.0/14 -add china 116.56.0.0/15 -add china 116.58.128.0/20 -add china 116.58.208.0/20 -add china 116.60.0.0/14 -add china 116.66.0.0/17 -add china 116.66.176.0/22 -add china 116.68.136.0/21 -add china 116.68.176.0/21 -add china 116.69.0.0/16 -add china 116.70.0.0/17 -add china 116.76.0.0/14 -add china 116.85.0.0/16 -add china 116.89.144.0/20 -add china 116.90.80.0/20 -add china 116.90.184.0/21 -add china 116.95.0.0/16 -add china 116.112.0.0/14 -add china 116.116.0.0/15 -add china 116.128.0.0/10 -add china 116.192.0.0/16 -add china 116.193.16.0/20 -add china 116.193.32.0/19 -add china 116.193.152.0/22 -add china 116.193.164.0/22 -add china 116.193.176.0/21 -add china 116.194.0.0/15 -add china 116.196.0.0/16 -add china 116.197.160.0/21 -add china 116.197.180.0/23 -add china 116.198.0.0/16 -add china 116.199.0.0/17 -add china 116.199.128.0/19 -add china 116.204.0.0/15 -add china 116.207.0.0/16 -add china 116.208.0.0/14 -add china 116.212.160.0/20 -add china 116.213.40.0/21 -add china 116.213.64.0/18 -add china 116.213.128.0/17 -add china 116.214.32.0/19 -add china 116.214.64.0/20 -add china 116.214.128.0/17 -add china 116.215.0.0/16 -add china 116.216.0.0/14 -add china 116.224.0.0/12 -add china 116.242.0.0/15 -add china 116.244.0.0/14 -add china 116.248.0.0/15 -add china 116.251.64.0/18 -add china 116.252.0.0/15 -add china 116.254.104.0/21 -add china 116.254.128.0/17 -add china 116.255.128.0/17 -add china 117.8.0.0/13 -add china 117.21.0.0/16 -add china 117.22.0.0/15 -add china 117.24.0.0/13 -add china 117.32.0.0/13 -add china 117.40.0.0/14 -add china 117.44.0.0/15 -add china 117.48.0.0/14 -add china 117.53.48.0/20 -add china 117.53.176.0/20 -add china 117.57.0.0/16 -add china 117.58.0.0/17 -add china 117.59.0.0/16 -add china 117.60.0.0/14 -add china 117.64.0.0/13 -add china 117.72.0.0/15 -add china 117.74.64.0/19 -add china 117.74.128.0/17 -add china 117.75.0.0/16 -add china 117.76.0.0/14 -add china 117.80.0.0/12 -add china 117.100.0.0/15 -add china 117.103.16.0/20 -add china 117.103.40.0/21 -add china 117.103.72.0/21 -add china 117.103.128.0/20 -add china 117.104.168.0/21 -add china 117.104.188.0/24 -add china 117.106.0.0/15 -add china 117.112.0.0/13 -add china 117.120.64.0/18 -add china 117.120.128.0/17 -add china 117.121.0.0/17 -add china 117.121.128.0/18 -add china 117.121.192.0/21 -add china 117.122.128.0/17 -add china 117.124.0.0/14 -add china 117.128.0.0/10 -add china 118.24.0.0/15 -add china 118.26.0.0/16 -add china 118.28.0.0/14 -add china 118.64.0.0/15 -add china 118.66.0.0/16 -add china 118.67.112.0/20 -add china 118.72.0.0/13 -add china 118.80.0.0/15 -add china 118.84.0.0/15 -add china 118.88.32.0/19 -add china 118.88.64.0/18 -add china 118.88.128.0/17 -add china 118.89.0.0/16 -add china 118.91.240.0/20 -add china 118.102.16.0/20 -add china 118.102.32.0/21 -add china 118.103.164.0/22 -add china 118.103.168.0/21 -add china 118.103.176.0/22 -add china 118.103.244.0/22 -add china 118.112.0.0/13 -add china 118.120.0.0/14 -add china 118.124.0.0/15 -add china 118.126.0.0/16 -add china 118.127.128.0/19 -add china 118.132.0.0/14 -add china 118.144.0.0/14 -add china 118.178.0.0/16 -add china 118.180.0.0/14 -add china 118.184.0.0/16 -add china 118.186.0.0/15 -add china 118.188.0.0/16 -add china 118.190.0.0/15 -add china 118.192.0.0/16 -add china 118.193.0.0/20 -add china 118.193.31.0/24 -add china 118.193.32.0/19 -add china 118.193.64.0/20 -add china 118.193.96.0/19 -add china 118.193.128.0/17 -add china 118.194.0.0/15 -add china 118.196.0.0/14 -add china 118.202.0.0/15 -add china 118.204.0.0/14 -add china 118.212.0.0/15 -add china 118.215.192.0/19 -add china 118.224.0.0/14 -add china 118.228.0.0/15 -add china 118.230.0.0/16 -add china 118.239.0.0/16 -add china 118.242.0.0/16 -add china 118.244.0.0/14 -add china 118.248.0.0/13 -add china 119.0.0.0/15 -add china 119.2.0.0/19 -add china 119.2.128.0/17 -add china 119.3.0.0/16 -add china 119.4.0.0/14 -add china 119.8.0.0/16 -add china 119.10.0.0/17 -add china 119.15.136.0/21 -add china 119.16.0.0/16 -add china 119.18.192.0/20 -add china 119.18.208.0/21 -add china 119.18.224.0/19 -add china 119.19.0.0/16 -add china 119.20.0.0/14 -add china 119.27.64.0/18 -add china 119.27.128.0/17 -add china 119.28.0.0/15 -add china 119.30.48.0/20 -add china 119.31.192.0/19 -add china 119.32.0.0/13 -add china 119.40.0.0/18 -add china 119.40.64.0/20 -add china 119.40.128.0/17 -add china 119.41.0.0/16 -add china 119.42.0.0/19 -add china 119.42.52.0/22 -add china 119.42.128.0/20 -add china 119.42.224.0/19 -add china 119.44.0.0/15 -add china 119.48.0.0/13 -add china 119.57.0.0/16 -add china 119.58.0.0/16 -add china 119.59.128.0/17 -add china 119.60.0.0/15 -add china 119.62.0.0/16 -add china 119.63.32.0/19 -add china 119.75.208.0/20 -add china 119.78.0.0/15 -add china 119.80.0.0/16 -add china 119.82.208.0/20 -add china 119.84.0.0/14 -add china 119.88.0.0/14 -add china 119.96.0.0/13 -add china 119.108.0.0/15 -add china 119.112.0.0/12 -add china 119.128.0.0/12 -add china 119.144.0.0/14 -add china 119.148.160.0/19 -add china 119.151.192.0/18 -add china 119.160.200.0/21 -add china 119.161.120.0/21 -add china 119.161.128.0/17 -add china 119.162.0.0/15 -add china 119.164.0.0/14 -add china 119.176.0.0/12 -add china 119.232.0.0/15 -add china 119.235.128.0/18 -add china 119.248.0.0/14 -add china 119.252.96.0/21 -add china 119.252.240.0/20 -add china 119.253.0.0/16 -add china 119.254.0.0/15 -add china 120.0.0.0/12 -add china 120.24.0.0/14 -add china 120.30.0.0/15 -add china 120.32.0.0/12 -add china 120.48.0.0/15 -add china 120.52.0.0/14 -add china 120.64.0.0/13 -add china 120.72.32.0/19 -add china 120.72.128.0/17 -add china 120.76.0.0/14 -add china 120.80.0.0/13 -add china 120.88.8.0/21 -add china 120.90.0.0/15 -add china 120.92.0.0/16 -add china 120.94.0.0/15 -add china 120.128.0.0/13 -add china 120.136.16.0/21 -add china 120.136.128.0/18 -add china 120.137.0.0/17 -add china 120.143.128.0/19 -add china 120.192.0.0/10 -add china 121.0.8.0/21 -add china 121.0.16.0/20 -add china 121.4.0.0/15 -add china 121.8.0.0/13 -add china 121.16.0.0/12 -add china 121.32.0.0/13 -add china 121.40.0.0/14 -add china 121.46.0.0/18 -add china 121.46.76.0/22 -add china 121.46.128.0/17 -add china 121.47.0.0/16 -add china 121.48.0.0/15 -add china 121.50.8.0/21 -add china 121.51.0.0/16 -add china 121.52.160.0/19 -add china 121.52.208.0/20 -add china 121.52.224.0/19 -add china 121.54.176.0/21 -add china 121.54.188.0/22 -add china 121.55.0.0/18 -add china 121.56.0.0/15 -add china 121.58.0.0/17 -add china 121.58.136.0/21 -add china 121.58.144.0/20 -add china 121.58.160.0/21 -add china 121.59.0.0/16 -add china 121.60.0.0/14 -add china 121.68.0.0/14 -add china 121.76.0.0/15 -add china 121.79.128.0/18 -add china 121.89.0.0/16 -add china 121.100.128.0/17 -add china 121.101.0.0/18 -add china 121.101.208.0/20 -add china 121.192.0.0/13 -add china 121.200.192.0/21 -add china 121.201.0.0/16 -add china 121.204.0.0/14 -add china 121.224.0.0/12 -add china 121.248.0.0/14 -add china 121.255.0.0/16 -add china 122.0.64.0/18 -add china 122.0.128.0/17 -add china 122.4.0.0/14 -add china 122.8.0.0/15 -add china 122.10.0.0/16 -add china 122.11.0.0/17 -add china 122.12.0.0/15 -add china 122.14.0.0/16 -add china 122.48.0.0/16 -add china 122.49.0.0/18 -add china 122.51.0.0/16 -add china 122.64.0.0/11 -add china 122.96.0.0/15 -add china 122.98.144.0/20 -add china 122.98.160.0/21 -add china 122.98.172.0/22 -add china 122.98.176.0/20 -add china 122.98.192.0/21 -add china 122.98.232.0/21 -add china 122.98.240.0/20 -add china 122.102.0.0/20 -add china 122.102.64.0/19 -add china 122.112.0.0/14 -add china 122.119.0.0/16 -add china 122.128.100.0/22 -add china 122.128.120.0/21 -add china 122.136.0.0/13 -add china 122.144.128.0/17 -add china 122.152.192.0/18 -add china 122.156.0.0/14 -add china 122.188.0.0/14 -add china 122.192.0.0/14 -add china 122.198.0.0/16 -add china 122.200.40.0/21 -add china 122.200.64.0/18 -add china 122.201.48.0/20 -add china 122.204.0.0/14 -add china 122.224.0.0/12 -add china 122.240.0.0/13 -add china 122.248.24.0/21 -add china 122.248.48.0/20 -add china 122.255.64.0/21 -add china 123.0.128.0/18 -add china 123.4.0.0/14 -add china 123.8.0.0/13 -add china 123.49.128.0/17 -add china 123.50.160.0/19 -add china 123.52.0.0/14 -add china 123.56.0.0/14 -add china 123.60.0.0/15 -add china 123.62.0.0/16 -add china 123.64.0.0/11 -add china 123.96.0.0/15 -add china 123.98.0.0/17 -add china 123.99.128.0/17 -add china 123.100.0.0/19 -add china 123.100.232.0/24 -add china 123.101.0.0/16 -add china 123.103.0.0/17 -add china 123.108.128.0/20 -add china 123.108.208.0/20 -add china 123.112.0.0/12 -add china 123.128.0.0/13 -add china 123.136.80.0/20 -add china 123.137.0.0/16 -add china 123.138.0.0/15 -add china 123.144.0.0/12 -add china 123.160.0.0/12 -add china 123.176.60.0/22 -add china 123.176.80.0/20 -add china 123.177.0.0/16 -add china 123.178.0.0/15 -add china 123.180.0.0/14 -add china 123.184.0.0/13 -add china 123.196.0.0/15 -add china 123.199.128.0/17 -add china 123.206.0.0/15 -add china 123.232.0.0/14 -add china 123.242.0.0/17 -add china 123.242.192.0/21 -add china 123.244.0.0/14 -add china 123.249.0.0/16 -add china 123.253.0.0/16 -add china 123.254.96.0/21 -add china 124.6.64.0/18 -add china 124.14.0.0/15 -add china 124.16.0.0/15 -add china 124.20.0.0/14 -add china 124.28.192.0/18 -add china 124.29.0.0/17 -add china 124.31.0.0/16 -add china 124.40.112.0/20 -add china 124.40.128.0/18 -add china 124.40.192.0/19 -add china 124.40.240.0/22 -add china 124.42.0.0/16 -add china 124.47.0.0/18 -add china 124.64.0.0/15 -add china 124.66.0.0/17 -add china 124.67.0.0/16 -add china 124.68.0.0/14 -add china 124.72.0.0/13 -add china 124.88.0.0/13 -add china 124.108.8.0/21 -add china 124.108.40.0/21 -add china 124.109.96.0/21 -add china 124.112.0.0/13 -add china 124.126.0.0/15 -add china 124.128.0.0/13 -add china 124.147.128.0/17 -add china 124.150.137.0/24 -add china 124.151.0.0/16 -add china 124.152.0.0/16 -add china 124.156.0.0/16 -add china 124.160.0.0/13 -add china 124.172.0.0/14 -add china 124.192.0.0/15 -add china 124.196.0.0/16 -add china 124.200.0.0/13 -add china 124.220.0.0/14 -add china 124.224.0.0/12 -add china 124.240.0.0/17 -add china 124.240.128.0/18 -add china 124.242.0.0/16 -add china 124.243.192.0/18 -add china 124.248.0.0/17 -add china 124.249.0.0/16 -add china 124.250.0.0/15 -add china 124.254.0.0/18 -add china 125.31.192.0/18 -add china 125.32.0.0/12 -add china 125.58.128.0/17 -add china 125.61.128.0/17 -add china 125.62.0.0/18 -add china 125.64.0.0/11 -add china 125.96.0.0/15 -add china 125.98.0.0/16 -add china 125.104.0.0/13 -add china 125.112.0.0/12 -add china 125.169.0.0/16 -add china 125.171.0.0/16 -add china 125.208.0.0/18 -add china 125.210.0.0/15 -add china 125.213.0.0/17 -add china 125.214.96.0/19 -add china 125.215.0.0/18 -add china 125.216.0.0/13 -add china 125.254.128.0/17 -add china 129.223.254.0/24 -add china 132.237.134.0/24 -add china 132.237.150.0/24 -add china 135.159.208.0/20 -add china 135.244.80.0/20 -add china 137.59.59.0/24 -add china 137.59.88.0/22 -add china 138.32.244.0/22 -add china 139.5.56.0/21 -add china 139.5.80.0/22 -add china 139.5.92.0/22 -add china 139.5.108.0/22 -add china 139.5.128.0/22 -add china 139.5.160.0/22 -add china 139.5.192.0/22 -add china 139.5.204.0/22 -add china 139.5.208.0/21 -add china 139.5.244.0/22 -add china 139.9.0.0/16 -add china 139.129.0.0/16 -add china 139.148.0.0/16 -add china 139.155.0.0/16 -add china 139.159.0.0/16 -add china 139.170.0.0/16 -add china 139.176.0.0/16 -add china 139.183.0.0/16 -add china 139.186.0.0/16 -add china 139.189.0.0/16 -add china 139.196.0.0/14 -add china 139.200.0.0/13 -add china 139.208.0.0/13 -add china 139.217.0.0/16 -add china 139.219.0.0/16 -add china 139.220.0.0/15 -add china 139.224.0.0/16 -add china 139.226.0.0/15 -add china 140.75.0.0/16 -add china 140.101.208.0/24 -add china 140.143.0.0/16 -add china 140.205.0.0/16 -add china 140.206.0.0/15 -add china 140.210.0.0/16 -add china 140.224.0.0/16 -add china 140.237.0.0/16 -add china 140.240.0.0/16 -add china 140.242.216.0/24 -add china 140.242.223.0/24 -add china 140.242.224.0/24 -add china 140.243.0.0/16 -add china 140.246.0.0/16 -add china 140.249.0.0/16 -add china 140.250.0.0/16 -add china 140.255.0.0/16 -add china 144.0.0.0/16 -add china 144.7.0.0/16 -add china 144.12.0.0/16 -add china 144.36.146.0/23 -add china 144.48.8.0/21 -add china 144.48.56.0/22 -add china 144.48.64.0/22 -add china 144.48.88.0/22 -add china 144.48.156.0/22 -add china 144.48.172.0/22 -add china 144.48.180.0/22 -add china 144.48.184.0/22 -add china 144.48.204.0/22 -add china 144.48.208.0/21 -add china 144.48.220.0/22 -add china 144.48.252.0/22 -add china 144.52.0.0/16 -add china 144.123.0.0/16 -add china 144.211.80.0/24 -add china 144.211.138.0/24 -add china 144.255.0.0/16 -add china 146.196.56.0/22 -add china 146.196.68.0/22 -add china 146.196.72.0/21 -add china 146.196.92.0/22 -add china 146.196.112.0/21 -add china 146.196.124.0/22 -add china 146.217.137.0/24 -add china 146.222.79.0/24 -add china 146.222.81.0/24 -add china 146.222.94.0/24 -add china 150.0.0.0/16 -add china 150.115.0.0/16 -add china 150.121.0.0/16 -add china 150.122.0.0/16 -add china 150.129.136.0/22 -add china 150.129.152.0/22 -add china 150.129.192.0/22 -add china 150.129.216.0/22 -add china 150.129.252.0/22 -add china 150.138.0.0/15 -add china 150.223.0.0/16 -add china 150.242.0.0/21 -add china 150.242.8.0/22 -add china 150.242.28.0/22 -add china 150.242.44.0/22 -add china 150.242.48.0/21 -add china 150.242.56.0/22 -add china 150.242.76.0/22 -add china 150.242.80.0/22 -add china 150.242.92.0/22 -add china 150.242.96.0/22 -add china 150.242.112.0/21 -add china 150.242.120.0/22 -add china 150.242.152.0/21 -add china 150.242.160.0/21 -add china 150.242.168.0/22 -add china 150.242.184.0/21 -add china 150.242.192.0/22 -add china 150.242.212.0/22 -add china 150.242.224.0/20 -add china 150.242.240.0/21 -add china 150.242.248.0/22 -add china 150.255.0.0/16 -add china 152.104.128.0/17 -add china 153.0.0.0/16 -add china 153.3.0.0/16 -add china 153.34.0.0/15 -add china 153.36.0.0/15 -add china 153.99.0.0/16 -add china 153.101.0.0/16 -add china 153.118.0.0/15 -add china 157.0.0.0/16 -add china 157.18.0.0/16 -add china 157.61.0.0/16 -add china 157.119.0.0/22 -add china 157.119.8.0/21 -add china 157.119.16.0/22 -add china 157.119.28.0/22 -add china 157.119.68.0/22 -add china 157.119.112.0/22 -add china 157.119.132.0/22 -add china 157.119.136.0/21 -add china 157.119.144.0/20 -add china 157.119.160.0/21 -add china 157.119.172.0/22 -add china 157.119.192.0/21 -add china 157.119.240.0/22 -add china 157.119.252.0/22 -add china 157.122.0.0/16 -add china 157.133.192.0/21 -add china 157.148.0.0/16 -add china 157.156.0.0/16 -add china 157.255.0.0/16 -add china 159.153.120.0/22 -add china 159.226.0.0/16 -add china 160.19.48.0/22 -add china 160.19.208.0/21 -add china 160.19.216.0/22 -add china 160.20.48.0/22 -add china 160.62.10.0/24 -add china 160.83.109.0/24 -add china 160.83.110.0/23 -add china 160.202.60.0/22 -add china 160.202.148.0/22 -add china 160.202.152.0/22 -add china 160.202.168.0/22 -add china 160.202.212.0/22 -add china 160.202.216.0/21 -add china 160.202.224.0/19 -add china 160.238.64.0/22 -add china 161.163.0.0/21 -add china 161.163.28.0/23 -add china 161.163.176.0/24 -add china 161.163.178.0/23 -add china 161.163.180.0/22 -add china 161.207.0.0/16 -add china 162.105.0.0/16 -add china 163.0.0.0/16 -add china 163.47.4.0/22 -add china 163.53.0.0/20 -add china 163.53.36.0/22 -add china 163.53.40.0/21 -add china 163.53.48.0/20 -add china 163.53.64.0/22 -add china 163.53.88.0/21 -add china 163.53.96.0/19 -add china 163.53.128.0/21 -add china 163.53.136.0/22 -add china 163.53.160.0/20 -add china 163.53.188.0/22 -add china 163.53.220.0/22 -add china 163.53.240.0/22 -add china 163.125.0.0/16 -add china 163.142.0.0/16 -add china 163.177.0.0/16 -add china 163.179.0.0/16 -add china 163.204.0.0/16 -add china 163.244.246.0/24 -add china 164.52.0.0/17 -add china 166.111.0.0/16 -add china 167.139.0.0/16 -add china 167.189.0.0/16 -add china 167.220.244.0/22 -add china 168.159.144.0/21 -add china 168.159.152.0/22 -add china 168.159.156.0/23 -add china 168.159.158.0/24 -add china 168.160.0.0/16 -add china 168.230.0.0/24 -add china 170.179.0.0/16 -add china 170.225.224.0/23 -add china 170.252.152.0/21 -add china 171.8.0.0/13 -add china 171.34.0.0/15 -add china 171.36.0.0/14 -add china 171.40.0.0/13 -add china 171.80.0.0/12 -add china 171.104.0.0/13 -add china 171.112.0.0/12 -add china 171.208.0.0/12 -add china 175.0.0.0/12 -add china 175.16.0.0/13 -add china 175.24.0.0/14 -add china 175.30.0.0/15 -add china 175.42.0.0/15 -add china 175.44.0.0/16 -add china 175.46.0.0/15 -add china 175.48.0.0/12 -add china 175.64.0.0/11 -add china 175.102.0.0/16 -add china 175.106.128.0/17 -add china 175.111.108.0/22 -add china 175.111.144.0/20 -add china 175.111.160.0/20 -add china 175.111.184.0/22 -add china 175.146.0.0/15 -add china 175.148.0.0/14 -add china 175.152.0.0/14 -add china 175.158.96.0/22 -add china 175.160.0.0/12 -add china 175.176.156.0/22 -add china 175.176.176.0/22 -add china 175.176.188.0/22 -add china 175.178.0.0/16 -add china 175.184.128.0/18 -add china 175.185.0.0/16 -add china 175.186.0.0/15 -add china 175.188.0.0/14 -add china 180.76.0.0/14 -add china 180.84.0.0/15 -add china 180.86.0.0/16 -add china 180.88.0.0/14 -add china 180.94.56.0/21 -add china 180.94.96.0/20 -add china 180.94.120.0/21 -add china 180.95.128.0/17 -add china 180.96.0.0/11 -add china 180.129.128.0/17 -add china 180.130.0.0/16 -add china 180.136.0.0/13 -add china 180.148.16.0/21 -add china 180.148.152.0/21 -add china 180.148.216.0/21 -add china 180.148.224.0/19 -add china 180.149.128.0/19 -add china 180.149.236.0/22 -add china 180.150.160.0/19 -add china 180.152.0.0/13 -add china 180.160.0.0/12 -add china 180.178.112.0/21 -add china 180.178.192.0/18 -add china 180.184.0.0/14 -add china 180.188.0.0/17 -add china 180.189.148.0/22 -add china 180.200.252.0/22 -add china 180.201.0.0/16 -add china 180.202.0.0/15 -add china 180.208.0.0/15 -add china 180.210.212.0/22 -add china 180.210.224.0/19 -add china 180.212.0.0/15 -add china 180.222.224.0/19 -add china 180.223.0.0/16 -add china 180.233.0.0/18 -add china 180.233.64.0/19 -add china 180.233.144.0/22 -add china 180.235.64.0/19 -add china 180.235.112.0/22 -add china 180.235.136.0/22 -add china 182.16.144.0/21 -add china 182.16.192.0/19 -add china 182.18.0.0/17 -add china 182.23.184.0/21 -add china 182.23.200.0/21 -add china 182.32.0.0/12 -add china 182.48.96.0/19 -add china 182.49.0.0/16 -add china 182.50.0.0/20 -add china 182.50.112.0/20 -add china 182.51.0.0/16 -add china 182.54.0.0/17 -add china 182.54.244.0/22 -add china 182.61.0.0/16 -add china 182.80.0.0/13 -add china 182.88.0.0/14 -add china 182.92.0.0/16 -add china 182.96.0.0/11 -add china 182.128.0.0/12 -add china 182.144.0.0/13 -add china 182.157.0.0/16 -add china 182.160.64.0/19 -add china 182.174.0.0/15 -add china 182.200.0.0/13 -add china 182.236.128.0/17 -add china 182.237.24.0/21 -add china 182.238.0.0/16 -add china 182.239.0.0/19 -add china 182.240.0.0/13 -add china 182.254.0.0/16 -add china 182.255.36.0/22 -add china 182.255.60.0/22 -add china 183.0.0.0/10 -add china 183.64.0.0/13 -add china 183.78.160.0/21 -add china 183.78.180.0/22 -add china 183.81.172.0/22 -add china 183.81.180.0/22 -add china 183.84.0.0/15 -add china 183.91.128.0/22 -add china 183.91.136.0/21 -add china 183.91.144.0/20 -add china 183.92.0.0/14 -add china 183.128.0.0/11 -add china 183.160.0.0/13 -add china 183.168.0.0/15 -add china 183.170.0.0/16 -add china 183.172.0.0/14 -add china 183.182.0.0/19 -add china 183.184.0.0/13 -add china 183.192.0.0/10 -add china 192.11.23.0/24 -add china 192.11.26.0/24 -add china 192.11.39.0/24 -add china 192.11.236.0/24 -add china 192.23.191.0/24 -add china 192.55.10.0/23 -add china 192.55.46.0/23 -add china 192.55.68.0/22 -add china 192.102.204.0/22 -add china 192.124.154.0/24 -add china 192.139.135.0/24 -add china 192.139.136.0/24 -add china 192.140.128.0/21 -add china 192.140.136.0/22 -add china 192.140.156.0/22 -add china 192.140.160.0/19 -add china 192.140.192.0/20 -add china 192.140.208.0/21 -add china 192.163.11.0/24 -add china 192.170.79.0/24 -add china 192.232.97.0/24 -add china 193.20.64.0/22 -add china 194.138.202.0/23 -add china 198.17.7.0/24 -add china 198.175.100.0/22 -add china 198.208.17.0/24 -add china 199.7.72.0/24 -add china 199.65.192.0/21 -add china 199.244.144.0/24 -add china 202.0.100.0/23 -add china 202.0.122.0/23 -add china 202.0.176.0/22 -add china 202.1.105.0/24 -add china 202.1.106.0/24 -add china 202.3.128.0/23 -add china 202.4.128.0/19 -add china 202.4.252.0/22 -add china 202.5.208.0/21 -add china 202.5.216.0/22 -add china 202.6.6.0/23 -add china 202.6.66.0/23 -add china 202.6.72.0/23 -add china 202.6.87.0/24 -add china 202.6.88.0/23 -add china 202.6.92.0/23 -add china 202.6.103.0/24 -add china 202.6.108.0/24 -add china 202.6.110.0/23 -add china 202.6.114.0/24 -add china 202.6.176.0/20 -add china 202.8.0.0/24 -add china 202.8.2.0/23 -add china 202.8.4.0/23 -add china 202.8.12.0/24 -add china 202.8.24.0/24 -add china 202.8.77.0/24 -add china 202.8.128.0/19 -add china 202.8.192.0/20 -add china 202.9.32.0/24 -add china 202.9.34.0/23 -add china 202.9.48.0/23 -add china 202.9.51.0/24 -add china 202.9.52.0/23 -add china 202.9.54.0/24 -add china 202.9.57.0/24 -add china 202.9.58.0/23 -add china 202.10.64.0/20 -add china 202.10.112.0/20 -add china 202.12.1.0/24 -add china 202.12.2.0/24 -add china 202.12.17.0/24 -add china 202.12.18.0/23 -add china 202.12.72.0/24 -add china 202.12.84.0/23 -add china 202.12.96.0/24 -add china 202.12.98.0/23 -add china 202.12.106.0/24 -add china 202.12.111.0/24 -add china 202.12.116.0/24 -add china 202.14.64.0/23 -add china 202.14.69.0/24 -add china 202.14.73.0/24 -add china 202.14.74.0/23 -add china 202.14.76.0/24 -add china 202.14.78.0/23 -add china 202.14.88.0/24 -add china 202.14.97.0/24 -add china 202.14.104.0/23 -add china 202.14.108.0/23 -add china 202.14.111.0/24 -add china 202.14.114.0/23 -add china 202.14.118.0/23 -add china 202.14.124.0/23 -add china 202.14.127.0/24 -add china 202.14.129.0/24 -add china 202.14.135.0/24 -add china 202.14.136.0/24 -add china 202.14.149.0/24 -add china 202.14.151.0/24 -add china 202.14.157.0/24 -add china 202.14.158.0/23 -add china 202.14.169.0/24 -add china 202.14.170.0/23 -add china 202.14.172.0/22 -add china 202.14.176.0/24 -add china 202.14.184.0/23 -add china 202.14.208.0/23 -add china 202.14.213.0/24 -add china 202.14.219.0/24 -add china 202.14.220.0/24 -add china 202.14.222.0/23 -add china 202.14.225.0/24 -add china 202.14.226.0/23 -add china 202.14.231.0/24 -add china 202.14.235.0/24 -add china 202.14.236.0/22 -add china 202.14.246.0/24 -add china 202.14.251.0/24 -add china 202.20.66.0/24 -add china 202.20.79.0/24 -add china 202.20.87.0/24 -add china 202.20.88.0/23 -add china 202.20.90.0/24 -add china 202.20.94.0/23 -add china 202.20.114.0/24 -add china 202.20.117.0/24 -add china 202.20.120.0/24 -add china 202.20.125.0/24 -add china 202.20.126.0/23 -add china 202.21.48.0/20 -add china 202.21.131.0/24 -add china 202.21.132.0/24 -add china 202.21.141.0/24 -add china 202.21.142.0/24 -add china 202.21.147.0/24 -add china 202.21.148.0/24 -add china 202.21.150.0/23 -add china 202.21.152.0/23 -add china 202.21.154.0/24 -add china 202.21.156.0/24 -add china 202.21.208.0/24 -add china 202.22.248.0/21 -add china 202.27.12.0/24 -add china 202.27.14.0/24 -add china 202.27.136.0/23 -add china 202.36.226.0/24 -add china 202.38.0.0/22 -add china 202.38.8.0/21 -add china 202.38.48.0/20 -add china 202.38.64.0/18 -add china 202.38.128.0/21 -add china 202.38.136.0/23 -add china 202.38.138.0/24 -add china 202.38.140.0/22 -add china 202.38.146.0/23 -add china 202.38.149.0/24 -add china 202.38.150.0/23 -add china 202.38.152.0/22 -add china 202.38.156.0/24 -add china 202.38.158.0/23 -add china 202.38.160.0/23 -add china 202.38.164.0/22 -add china 202.38.168.0/22 -add china 202.38.176.0/23 -add china 202.38.184.0/21 -add china 202.38.192.0/18 -add china 202.40.4.0/23 -add china 202.40.7.0/24 -add china 202.40.15.0/24 -add china 202.40.135.0/24 -add china 202.40.136.0/24 -add china 202.40.140.0/24 -add china 202.40.143.0/24 -add china 202.40.144.0/23 -add china 202.40.150.0/24 -add china 202.40.155.0/24 -add china 202.40.156.0/24 -add china 202.40.158.0/23 -add china 202.40.162.0/24 -add china 202.41.8.0/23 -add china 202.41.11.0/24 -add china 202.41.12.0/23 -add china 202.41.128.0/24 -add china 202.41.130.0/23 -add china 202.41.152.0/21 -add china 202.41.192.0/24 -add china 202.41.196.0/22 -add china 202.41.200.0/22 -add china 202.41.240.0/20 -add china 202.43.76.0/22 -add china 202.43.144.0/20 -add china 202.44.16.0/20 -add china 202.44.48.0/22 -add china 202.44.67.0/24 -add china 202.44.74.0/24 -add china 202.44.97.0/24 -add china 202.44.129.0/24 -add china 202.44.132.0/23 -add china 202.44.146.0/23 -add china 202.45.0.0/23 -add china 202.45.2.0/24 -add china 202.45.15.0/24 -add china 202.45.16.0/20 -add china 202.46.16.0/23 -add china 202.46.18.0/24 -add china 202.46.20.0/23 -add china 202.46.32.0/19 -add china 202.46.128.0/24 -add china 202.46.224.0/20 -add china 202.47.82.0/23 -add china 202.47.96.0/20 -add china 202.47.124.0/24 -add china 202.47.126.0/24 -add china 202.47.128.0/24 -add china 202.47.130.0/23 -add china 202.52.33.0/24 -add china 202.52.34.0/24 -add china 202.52.47.0/24 -add china 202.52.143.0/24 -add china 202.52.144.0/24 -add china 202.53.140.0/24 -add china 202.53.143.0/24 -add china 202.57.192.0/20 -add china 202.57.212.0/22 -add china 202.57.216.0/22 -add china 202.57.240.0/20 -add china 202.58.0.0/24 -add china 202.58.104.0/22 -add china 202.58.112.0/22 -add china 202.59.0.0/23 -add china 202.59.212.0/22 -add china 202.59.236.0/24 -add china 202.59.240.0/24 -add china 202.60.48.0/21 -add china 202.60.96.0/21 -add china 202.60.112.0/20 -add china 202.60.132.0/22 -add china 202.60.136.0/21 -add china 202.60.144.0/20 -add china 202.61.68.0/22 -add china 202.61.76.0/22 -add china 202.61.88.0/22 -add china 202.61.123.0/24 -add china 202.61.127.0/24 -add china 202.62.112.0/22 -add china 202.62.248.0/22 -add china 202.62.252.0/24 -add china 202.62.255.0/24 -add china 202.63.80.0/20 -add china 202.63.160.0/19 -add china 202.63.248.0/22 -add china 202.63.253.0/24 -add china 202.65.0.0/21 -add china 202.65.8.0/23 -add china 202.65.96.0/20 -add china 202.66.168.0/22 -add china 202.67.0.0/22 -add china 202.69.4.0/22 -add china 202.69.16.0/20 -add china 202.70.0.0/19 -add china 202.70.96.0/20 -add china 202.70.192.0/20 -add china 202.71.32.0/20 -add china 202.72.40.0/21 -add china 202.72.80.0/20 -add china 202.72.112.0/20 -add china 202.73.128.0/22 -add china 202.73.240.0/20 -add china 202.74.8.0/21 -add china 202.74.36.0/24 -add china 202.74.42.0/24 -add china 202.74.52.0/24 -add china 202.74.80.0/20 -add china 202.74.232.0/22 -add china 202.74.254.0/23 -add china 202.75.208.0/20 -add china 202.75.252.0/22 -add china 202.76.247.0/24 -add china 202.76.252.0/22 -add china 202.77.39.0/24 -add china 202.77.80.0/21 -add china 202.77.92.0/22 -add china 202.78.8.0/21 -add china 202.79.224.0/21 -add china 202.79.248.0/22 -add china 202.80.192.0/20 -add china 202.81.0.0/22 -add china 202.81.176.0/20 -add china 202.83.252.0/22 -add china 202.84.0.0/20 -add china 202.84.16.0/23 -add china 202.84.22.0/24 -add china 202.84.24.0/21 -add china 202.85.208.0/20 -add china 202.86.249.0/24 -add china 202.86.252.0/22 -add china 202.87.80.0/20 -add china 202.88.32.0/22 -add china 202.89.8.0/21 -add china 202.89.96.0/22 -add china 202.89.108.0/22 -add china 202.89.119.0/24 -add china 202.89.232.0/21 -add china 202.90.0.0/22 -add china 202.90.16.0/20 -add china 202.90.37.0/24 -add china 202.90.96.0/19 -add china 202.90.193.0/24 -add china 202.90.196.0/24 -add china 202.90.205.0/24 -add china 202.90.224.0/20 -add china 202.91.0.0/22 -add china 202.91.96.0/20 -add china 202.91.128.0/22 -add china 202.91.176.0/20 -add china 202.91.224.0/19 -add china 202.92.0.0/22 -add china 202.92.8.0/21 -add china 202.92.48.0/20 -add china 202.92.252.0/22 -add china 202.93.0.0/22 -add china 202.93.252.0/22 -add china 202.94.0.0/19 -add china 202.94.74.0/24 -add china 202.94.81.0/24 -add china 202.94.92.0/22 -add china 202.95.0.0/19 -add china 202.95.240.0/21 -add china 202.95.252.0/22 -add china 202.96.0.0/12 -add china 202.112.0.0/13 -add china 202.120.0.0/15 -add china 202.122.0.0/21 -add china 202.122.32.0/21 -add china 202.122.64.0/19 -add china 202.122.112.0/20 -add china 202.122.128.0/24 -add china 202.122.132.0/24 -add china 202.123.96.0/20 -add china 202.123.116.0/22 -add china 202.123.120.0/22 -add china 202.124.16.0/21 -add china 202.124.24.0/22 -add china 202.125.107.0/24 -add china 202.125.109.0/24 -add china 202.125.112.0/20 -add china 202.125.176.0/20 -add china 202.127.0.0/21 -add china 202.127.12.0/22 -add china 202.127.16.0/20 -add china 202.127.40.0/21 -add china 202.127.48.0/20 -add china 202.127.112.0/20 -add china 202.127.128.0/19 -add china 202.127.160.0/21 -add china 202.127.192.0/20 -add china 202.127.208.0/23 -add china 202.127.212.0/22 -add china 202.127.216.0/21 -add china 202.127.224.0/19 -add china 202.129.208.0/24 -add china 202.130.0.0/19 -add china 202.130.39.0/24 -add china 202.130.224.0/19 -add china 202.131.16.0/21 -add china 202.131.48.0/20 -add china 202.131.208.0/20 -add china 202.133.32.0/20 -add china 202.134.58.0/24 -add china 202.134.128.0/20 -add china 202.134.208.0/20 -add china 202.136.48.0/20 -add china 202.136.208.0/20 -add china 202.136.224.0/20 -add china 202.136.248.0/22 -add china 202.136.254.0/23 -add china 202.137.231.0/24 -add china 202.140.140.0/22 -add china 202.140.144.0/20 -add china 202.141.160.0/19 -add china 202.142.16.0/20 -add china 202.143.4.0/22 -add china 202.143.16.0/20 -add china 202.143.32.0/20 -add china 202.143.56.0/21 -add china 202.143.100.0/22 -add china 202.143.104.0/22 -add china 202.146.160.0/20 -add china 202.146.186.0/24 -add china 202.146.188.0/22 -add china 202.146.196.0/22 -add china 202.146.200.0/21 -add china 202.147.144.0/20 -add china 202.148.32.0/20 -add china 202.148.64.0/18 -add china 202.149.32.0/19 -add china 202.149.160.0/19 -add china 202.149.224.0/19 -add china 202.150.16.0/20 -add china 202.150.32.0/20 -add china 202.150.56.0/22 -add china 202.150.192.0/20 -add china 202.150.224.0/19 -add china 202.151.0.0/22 -add china 202.151.33.0/24 -add china 202.151.128.0/19 -add china 202.152.176.0/20 -add china 202.153.0.0/22 -add china 202.153.7.0/24 -add china 202.153.48.0/20 -add china 202.157.192.0/19 -add china 202.158.160.0/19 -add china 202.158.242.0/24 -add china 202.160.140.0/22 -add china 202.160.156.0/22 -add china 202.160.176.0/20 -add china 202.162.67.0/24 -add china 202.162.75.0/24 -add china 202.164.0.0/20 -add china 202.164.96.0/19 -add china 202.165.96.0/20 -add china 202.165.176.0/20 -add china 202.165.208.0/20 -add china 202.165.239.0/24 -add china 202.165.240.0/23 -add china 202.165.243.0/24 -add china 202.165.245.0/24 -add china 202.165.251.0/24 -add china 202.165.252.0/22 -add china 202.166.224.0/19 -add china 202.168.80.0/22 -add china 202.168.128.0/20 -add china 202.168.160.0/19 -add china 202.170.128.0/19 -add china 202.170.216.0/21 -add china 202.170.224.0/19 -add china 202.171.216.0/21 -add china 202.171.232.0/24 -add china 202.171.235.0/24 -add china 202.172.0.0/22 -add china 202.172.7.0/24 -add china 202.173.0.0/22 -add china 202.173.6.0/24 -add china 202.173.8.0/21 -add china 202.173.112.0/22 -add china 202.173.120.0/22 -add china 202.173.224.0/19 -add china 202.174.64.0/20 -add china 202.174.124.0/22 -add china 202.176.224.0/19 -add china 202.179.160.0/20 -add china 202.179.240.0/20 -add china 202.180.128.0/19 -add china 202.180.208.0/21 -add china 202.181.8.0/22 -add china 202.181.28.0/22 -add china 202.181.112.0/20 -add china 202.182.32.0/20 -add china 202.182.192.0/19 -add china 202.189.0.0/18 -add china 202.189.80.0/20 -add china 202.189.184.0/21 -add china 202.191.0.0/24 -add china 202.191.68.0/22 -add china 202.191.72.0/21 -add china 202.191.80.0/20 -add china 202.192.0.0/12 -add china 203.0.4.0/22 -add china 203.0.10.0/23 -add china 203.0.18.0/24 -add china 203.0.24.0/24 -add china 203.0.42.0/23 -add china 203.0.45.0/24 -add china 203.0.46.0/23 -add china 203.0.81.0/24 -add china 203.0.82.0/23 -add china 203.0.90.0/23 -add china 203.0.96.0/23 -add china 203.0.104.0/21 -add china 203.0.114.0/23 -add china 203.0.122.0/24 -add china 203.0.128.0/24 -add china 203.0.130.0/23 -add china 203.0.132.0/22 -add china 203.0.137.0/24 -add china 203.0.142.0/24 -add china 203.0.144.0/24 -add china 203.0.146.0/24 -add china 203.0.148.0/24 -add china 203.0.150.0/23 -add china 203.0.152.0/24 -add china 203.0.177.0/24 -add china 203.0.224.0/24 -add china 203.1.4.0/22 -add china 203.1.18.0/24 -add china 203.1.26.0/23 -add china 203.1.65.0/24 -add china 203.1.66.0/23 -add china 203.1.70.0/23 -add china 203.1.76.0/23 -add china 203.1.90.0/24 -add china 203.1.97.0/24 -add china 203.1.98.0/23 -add china 203.1.100.0/22 -add china 203.1.108.0/24 -add china 203.1.253.0/24 -add china 203.1.254.0/24 -add china 203.2.64.0/21 -add china 203.2.73.0/24 -add china 203.2.112.0/21 -add china 203.2.126.0/23 -add china 203.2.140.0/24 -add china 203.2.150.0/24 -add china 203.2.152.0/22 -add china 203.2.156.0/23 -add china 203.2.160.0/21 -add china 203.2.180.0/23 -add china 203.2.196.0/23 -add china 203.2.209.0/24 -add china 203.2.214.0/23 -add china 203.2.226.0/23 -add china 203.2.229.0/24 -add china 203.2.236.0/23 -add china 203.3.68.0/24 -add china 203.3.72.0/23 -add china 203.3.75.0/24 -add china 203.3.80.0/21 -add china 203.3.96.0/22 -add china 203.3.105.0/24 -add china 203.3.112.0/21 -add china 203.3.120.0/24 -add china 203.3.123.0/24 -add china 203.3.135.0/24 -add china 203.3.139.0/24 -add china 203.3.143.0/24 -add china 203.4.132.0/23 -add china 203.4.134.0/24 -add china 203.4.151.0/24 -add china 203.4.152.0/22 -add china 203.4.174.0/23 -add china 203.4.180.0/24 -add china 203.4.186.0/24 -add china 203.4.205.0/24 -add china 203.4.208.0/22 -add china 203.4.227.0/24 -add china 203.4.230.0/23 -add china 203.5.4.0/23 -add china 203.5.7.0/24 -add china 203.5.8.0/23 -add china 203.5.11.0/24 -add china 203.5.21.0/24 -add china 203.5.22.0/24 -add china 203.5.44.0/24 -add china 203.5.46.0/23 -add china 203.5.52.0/22 -add china 203.5.56.0/23 -add china 203.5.60.0/23 -add china 203.5.114.0/23 -add china 203.5.118.0/24 -add china 203.5.120.0/24 -add china 203.5.172.0/24 -add china 203.5.180.0/23 -add china 203.5.182.0/24 -add china 203.5.185.0/24 -add china 203.5.186.0/24 -add china 203.5.188.0/23 -add china 203.5.190.0/24 -add china 203.5.195.0/24 -add china 203.5.214.0/23 -add china 203.5.218.0/23 -add china 203.6.131.0/24 -add china 203.6.136.0/24 -add china 203.6.138.0/23 -add china 203.6.142.0/24 -add china 203.6.150.0/23 -add china 203.6.157.0/24 -add china 203.6.159.0/24 -add china 203.6.224.0/20 -add china 203.6.248.0/23 -add china 203.7.129.0/24 -add china 203.7.138.0/23 -add china 203.7.147.0/24 -add china 203.7.150.0/23 -add china 203.7.158.0/24 -add china 203.7.192.0/23 -add china 203.7.200.0/24 -add china 203.8.0.0/24 -add china 203.8.8.0/24 -add china 203.8.23.0/24 -add china 203.8.24.0/21 -add china 203.8.70.0/24 -add china 203.8.82.0/24 -add china 203.8.86.0/23 -add china 203.8.91.0/24 -add china 203.8.110.0/23 -add china 203.8.115.0/24 -add china 203.8.166.0/23 -add china 203.8.169.0/24 -add china 203.8.173.0/24 -add china 203.8.184.0/24 -add china 203.8.186.0/23 -add china 203.8.190.0/23 -add china 203.8.192.0/24 -add china 203.8.197.0/24 -add china 203.8.198.0/23 -add china 203.8.203.0/24 -add china 203.8.209.0/24 -add china 203.8.210.0/23 -add china 203.8.212.0/22 -add china 203.8.217.0/24 -add china 203.8.220.0/24 -add china 203.9.32.0/24 -add china 203.9.36.0/23 -add china 203.9.57.0/24 -add china 203.9.63.0/24 -add china 203.9.65.0/24 -add china 203.9.70.0/23 -add china 203.9.72.0/24 -add china 203.9.75.0/24 -add china 203.9.76.0/23 -add china 203.9.96.0/22 -add china 203.9.100.0/23 -add china 203.9.108.0/24 -add china 203.9.158.0/24 -add china 203.10.34.0/24 -add china 203.10.56.0/24 -add china 203.10.74.0/23 -add china 203.10.84.0/22 -add china 203.10.88.0/24 -add china 203.10.95.0/24 -add china 203.10.125.0/24 -add china 203.11.70.0/24 -add china 203.11.76.0/22 -add china 203.11.82.0/24 -add china 203.11.84.0/22 -add china 203.11.100.0/22 -add china 203.11.109.0/24 -add china 203.11.117.0/24 -add china 203.11.122.0/24 -add china 203.11.126.0/24 -add china 203.11.136.0/22 -add china 203.11.141.0/24 -add china 203.11.142.0/23 -add china 203.11.180.0/22 -add china 203.11.208.0/22 -add china 203.12.16.0/24 -add china 203.12.19.0/24 -add china 203.12.24.0/24 -add china 203.12.57.0/24 -add china 203.12.65.0/24 -add china 203.12.66.0/24 -add china 203.12.70.0/23 -add china 203.12.87.0/24 -add china 203.12.88.0/21 -add china 203.12.100.0/23 -add china 203.12.103.0/24 -add china 203.12.114.0/24 -add china 203.12.118.0/24 -add china 203.12.130.0/24 -add china 203.12.137.0/24 -add china 203.12.196.0/22 -add china 203.12.200.0/21 -add china 203.12.211.0/24 -add china 203.12.219.0/24 -add china 203.12.226.0/24 -add china 203.12.240.0/22 -add china 203.13.18.0/24 -add china 203.13.24.0/24 -add china 203.13.44.0/23 -add china 203.13.80.0/21 -add china 203.13.88.0/23 -add china 203.13.92.0/22 -add china 203.13.173.0/24 -add china 203.13.224.0/23 -add china 203.13.227.0/24 -add china 203.13.233.0/24 -add china 203.14.24.0/22 -add china 203.14.33.0/24 -add china 203.14.56.0/24 -add china 203.14.61.0/24 -add china 203.14.62.0/24 -add china 203.14.104.0/24 -add china 203.14.114.0/23 -add china 203.14.118.0/24 -add china 203.14.162.0/24 -add china 203.14.184.0/21 -add china 203.14.192.0/24 -add china 203.14.194.0/23 -add china 203.14.214.0/24 -add china 203.14.231.0/24 -add china 203.14.246.0/24 -add china 203.15.0.0/20 -add china 203.15.20.0/23 -add china 203.15.22.0/24 -add china 203.15.87.0/24 -add china 203.15.88.0/23 -add china 203.15.105.0/24 -add china 203.15.112.0/21 -add china 203.15.130.0/23 -add china 203.15.149.0/24 -add china 203.15.151.0/24 -add china 203.15.156.0/22 -add china 203.15.174.0/24 -add china 203.15.227.0/24 -add china 203.15.232.0/21 -add china 203.15.240.0/23 -add china 203.15.246.0/24 -add china 203.16.10.0/24 -add china 203.16.12.0/23 -add china 203.16.16.0/21 -add china 203.16.27.0/24 -add china 203.16.38.0/24 -add china 203.16.49.0/24 -add china 203.16.50.0/23 -add china 203.16.58.0/24 -add china 203.16.63.0/24 -add china 203.16.133.0/24 -add china 203.16.161.0/24 -add china 203.16.162.0/24 -add china 203.16.186.0/23 -add china 203.16.228.0/24 -add china 203.16.238.0/24 -add china 203.16.240.0/24 -add china 203.16.245.0/24 -add china 203.17.2.0/24 -add china 203.17.18.0/24 -add china 203.17.28.0/24 -add china 203.17.39.0/24 -add china 203.17.56.0/24 -add china 203.17.74.0/23 -add china 203.17.88.0/23 -add china 203.17.136.0/24 -add china 203.17.164.0/24 -add china 203.17.187.0/24 -add china 203.17.190.0/23 -add china 203.17.231.0/24 -add china 203.17.233.0/24 -add china 203.17.248.0/23 -add china 203.17.255.0/24 -add china 203.18.2.0/23 -add china 203.18.4.0/24 -add china 203.18.7.0/24 -add china 203.18.31.0/24 -add china 203.18.37.0/24 -add china 203.18.48.0/23 -add china 203.18.52.0/24 -add china 203.18.72.0/22 -add china 203.18.80.0/23 -add china 203.18.87.0/24 -add china 203.18.100.0/23 -add china 203.18.105.0/24 -add china 203.18.107.0/24 -add china 203.18.110.0/24 -add china 203.18.129.0/24 -add china 203.18.131.0/24 -add china 203.18.132.0/23 -add china 203.18.144.0/24 -add china 203.18.153.0/24 -add china 203.18.199.0/24 -add china 203.18.208.0/24 -add china 203.18.211.0/24 -add china 203.18.215.0/24 -add china 203.19.1.0/24 -add china 203.19.18.0/24 -add china 203.19.24.0/24 -add china 203.19.30.0/24 -add china 203.19.32.0/21 -add china 203.19.41.0/24 -add china 203.19.44.0/23 -add china 203.19.46.0/24 -add china 203.19.58.0/24 -add china 203.19.60.0/23 -add china 203.19.64.0/24 -add china 203.19.68.0/24 -add china 203.19.72.0/24 -add china 203.19.101.0/24 -add china 203.19.111.0/24 -add china 203.19.131.0/24 -add china 203.19.133.0/24 -add china 203.19.144.0/24 -add china 203.19.147.0/24 -add china 203.19.149.0/24 -add china 203.19.156.0/24 -add china 203.19.176.0/24 -add china 203.19.178.0/23 -add china 203.19.208.0/24 -add china 203.19.228.0/22 -add china 203.19.233.0/24 -add china 203.19.242.0/24 -add china 203.19.248.0/23 -add china 203.19.255.0/24 -add china 203.20.17.0/24 -add china 203.20.40.0/23 -add china 203.20.44.0/24 -add china 203.20.48.0/24 -add china 203.20.61.0/24 -add china 203.20.65.0/24 -add china 203.20.84.0/23 -add china 203.20.89.0/24 -add china 203.20.106.0/23 -add china 203.20.115.0/24 -add china 203.20.117.0/24 -add china 203.20.118.0/23 -add china 203.20.122.0/24 -add china 203.20.126.0/23 -add china 203.20.135.0/24 -add china 203.20.136.0/21 -add china 203.20.150.0/24 -add china 203.20.230.0/24 -add china 203.20.232.0/24 -add china 203.20.236.0/24 -add china 203.21.0.0/23 -add china 203.21.2.0/24 -add china 203.21.8.0/24 -add china 203.21.10.0/24 -add china 203.21.18.0/24 -add china 203.21.33.0/24 -add china 203.21.34.0/24 -add china 203.21.41.0/24 -add china 203.21.44.0/24 -add china 203.21.68.0/24 -add china 203.21.82.0/24 -add china 203.21.96.0/22 -add china 203.21.124.0/24 -add china 203.21.136.0/23 -add china 203.21.145.0/24 -add china 203.21.206.0/24 -add china 203.22.24.0/24 -add china 203.22.28.0/23 -add china 203.22.31.0/24 -add china 203.22.68.0/24 -add china 203.22.76.0/24 -add china 203.22.78.0/24 -add china 203.22.84.0/24 -add china 203.22.87.0/24 -add china 203.22.92.0/22 -add china 203.22.99.0/24 -add china 203.22.106.0/24 -add china 203.22.122.0/23 -add china 203.22.131.0/24 -add china 203.22.163.0/24 -add china 203.22.166.0/24 -add china 203.22.170.0/24 -add china 203.22.176.0/21 -add china 203.22.194.0/24 -add china 203.22.242.0/23 -add china 203.22.245.0/24 -add china 203.22.246.0/24 -add china 203.22.252.0/23 -add china 203.23.0.0/24 -add china 203.23.47.0/24 -add china 203.23.61.0/24 -add china 203.23.62.0/23 -add china 203.23.73.0/24 -add china 203.23.85.0/24 -add china 203.23.92.0/22 -add china 203.23.98.0/24 -add china 203.23.107.0/24 -add china 203.23.112.0/24 -add china 203.23.130.0/24 -add china 203.23.140.0/23 -add china 203.23.172.0/24 -add china 203.23.182.0/24 -add china 203.23.186.0/23 -add china 203.23.192.0/24 -add china 203.23.197.0/24 -add china 203.23.198.0/24 -add china 203.23.204.0/22 -add china 203.23.224.0/24 -add china 203.23.226.0/23 -add china 203.23.228.0/22 -add china 203.23.249.0/24 -add china 203.23.251.0/24 -add china 203.24.13.0/24 -add china 203.24.18.0/24 -add china 203.24.27.0/24 -add china 203.24.43.0/24 -add china 203.24.56.0/24 -add china 203.24.58.0/24 -add china 203.24.67.0/24 -add china 203.24.74.0/24 -add china 203.24.79.0/24 -add china 203.24.80.0/23 -add china 203.24.84.0/23 -add china 203.24.86.0/24 -add china 203.24.90.0/24 -add china 203.24.111.0/24 -add china 203.24.112.0/24 -add china 203.24.116.0/24 -add china 203.24.122.0/23 -add china 203.24.145.0/24 -add china 203.24.152.0/23 -add china 203.24.157.0/24 -add china 203.24.161.0/24 -add china 203.24.167.0/24 -add china 203.24.186.0/23 -add china 203.24.199.0/24 -add china 203.24.202.0/24 -add china 203.24.212.0/23 -add china 203.24.217.0/24 -add china 203.24.219.0/24 -add china 203.24.244.0/24 -add china 203.25.19.0/24 -add china 203.25.20.0/23 -add china 203.25.46.0/24 -add china 203.25.48.0/21 -add china 203.25.64.0/23 -add china 203.25.91.0/24 -add china 203.25.99.0/24 -add china 203.25.100.0/24 -add china 203.25.106.0/24 -add china 203.25.131.0/24 -add china 203.25.135.0/24 -add china 203.25.138.0/24 -add china 203.25.147.0/24 -add china 203.25.153.0/24 -add china 203.25.154.0/23 -add china 203.25.164.0/24 -add china 203.25.166.0/24 -add china 203.25.174.0/23 -add china 203.25.180.0/24 -add china 203.25.182.0/24 -add china 203.25.191.0/24 -add china 203.25.199.0/24 -add china 203.25.200.0/24 -add china 203.25.202.0/23 -add china 203.25.208.0/20 -add china 203.25.229.0/24 -add china 203.25.235.0/24 -add china 203.25.236.0/24 -add china 203.25.242.0/24 -add china 203.26.12.0/24 -add china 203.26.34.0/24 -add china 203.26.49.0/24 -add china 203.26.50.0/24 -add china 203.26.55.0/24 -add china 203.26.56.0/23 -add china 203.26.60.0/24 -add china 203.26.65.0/24 -add china 203.26.68.0/24 -add china 203.26.76.0/24 -add china 203.26.80.0/24 -add china 203.26.84.0/24 -add china 203.26.97.0/24 -add china 203.26.102.0/23 -add china 203.26.115.0/24 -add china 203.26.116.0/24 -add china 203.26.129.0/24 -add china 203.26.143.0/24 -add china 203.26.144.0/24 -add china 203.26.148.0/23 -add china 203.26.154.0/24 -add china 203.26.158.0/23 -add china 203.26.161.0/24 -add china 203.26.170.0/24 -add china 203.26.173.0/24 -add china 203.26.176.0/24 -add china 203.26.185.0/24 -add china 203.26.202.0/23 -add china 203.26.210.0/24 -add china 203.26.214.0/24 -add china 203.26.222.0/24 -add china 203.26.224.0/24 -add china 203.26.228.0/24 -add china 203.26.232.0/24 -add china 203.27.0.0/24 -add china 203.27.10.0/24 -add china 203.27.15.0/24 -add china 203.27.16.0/24 -add china 203.27.20.0/24 -add china 203.27.22.0/23 -add china 203.27.40.0/24 -add china 203.27.45.0/24 -add china 203.27.53.0/24 -add china 203.27.65.0/24 -add china 203.27.66.0/24 -add china 203.27.81.0/24 -add china 203.27.88.0/24 -add china 203.27.102.0/24 -add china 203.27.109.0/24 -add china 203.27.117.0/24 -add china 203.27.121.0/24 -add china 203.27.122.0/23 -add china 203.27.125.0/24 -add china 203.27.200.0/24 -add china 203.27.202.0/24 -add china 203.27.233.0/24 -add china 203.27.241.0/24 -add china 203.27.250.0/24 -add china 203.28.10.0/24 -add china 203.28.12.0/24 -add china 203.28.33.0/24 -add china 203.28.34.0/23 -add china 203.28.43.0/24 -add china 203.28.44.0/24 -add china 203.28.54.0/24 -add china 203.28.56.0/24 -add china 203.28.73.0/24 -add china 203.28.74.0/24 -add china 203.28.76.0/24 -add china 203.28.86.0/24 -add china 203.28.88.0/24 -add china 203.28.112.0/24 -add china 203.28.131.0/24 -add china 203.28.136.0/24 -add china 203.28.140.0/24 -add china 203.28.145.0/24 -add china 203.28.165.0/24 -add china 203.28.169.0/24 -add china 203.28.170.0/24 -add china 203.28.178.0/23 -add china 203.28.185.0/24 -add china 203.28.187.0/24 -add china 203.28.196.0/24 -add china 203.28.226.0/23 -add china 203.28.239.0/24 -add china 203.29.2.0/24 -add china 203.29.8.0/23 -add china 203.29.13.0/24 -add china 203.29.14.0/24 -add china 203.29.28.0/24 -add china 203.29.46.0/24 -add china 203.29.57.0/24 -add china 203.29.61.0/24 -add china 203.29.63.0/24 -add china 203.29.69.0/24 -add china 203.29.73.0/24 -add china 203.29.81.0/24 -add china 203.29.90.0/24 -add china 203.29.95.0/24 -add china 203.29.100.0/24 -add china 203.29.103.0/24 -add china 203.29.112.0/24 -add china 203.29.120.0/22 -add china 203.29.182.0/23 -add china 203.29.187.0/24 -add china 203.29.189.0/24 -add china 203.29.190.0/24 -add china 203.29.205.0/24 -add china 203.29.210.0/24 -add china 203.29.217.0/24 -add china 203.29.227.0/24 -add china 203.29.231.0/24 -add china 203.29.233.0/24 -add china 203.29.234.0/24 -add china 203.29.248.0/24 -add china 203.29.254.0/23 -add china 203.30.16.0/23 -add china 203.30.25.0/24 -add china 203.30.27.0/24 -add china 203.30.29.0/24 -add china 203.30.66.0/24 -add china 203.30.81.0/24 -add china 203.30.87.0/24 -add china 203.30.111.0/24 -add china 203.30.121.0/24 -add china 203.30.123.0/24 -add china 203.30.152.0/24 -add china 203.30.156.0/24 -add china 203.30.162.0/24 -add china 203.30.173.0/24 -add china 203.30.175.0/24 -add china 203.30.187.0/24 -add china 203.30.194.0/24 -add china 203.30.217.0/24 -add china 203.30.220.0/24 -add china 203.30.222.0/24 -add china 203.30.232.0/23 -add china 203.30.235.0/24 -add china 203.30.240.0/23 -add china 203.30.246.0/24 -add china 203.30.250.0/23 -add china 203.31.45.0/24 -add china 203.31.46.0/24 -add china 203.31.49.0/24 -add china 203.31.51.0/24 -add china 203.31.54.0/23 -add china 203.31.69.0/24 -add china 203.31.72.0/24 -add china 203.31.80.0/24 -add china 203.31.85.0/24 -add china 203.31.97.0/24 -add china 203.31.105.0/24 -add china 203.31.106.0/24 -add china 203.31.108.0/23 -add china 203.31.124.0/24 -add china 203.31.162.0/24 -add china 203.31.174.0/24 -add china 203.31.177.0/24 -add china 203.31.181.0/24 -add china 203.31.187.0/24 -add china 203.31.189.0/24 -add china 203.31.204.0/24 -add china 203.31.220.0/24 -add china 203.31.222.0/23 -add china 203.31.225.0/24 -add china 203.31.229.0/24 -add china 203.31.248.0/23 -add china 203.31.253.0/24 -add china 203.32.20.0/24 -add china 203.32.48.0/23 -add china 203.32.56.0/24 -add china 203.32.60.0/24 -add china 203.32.62.0/24 -add china 203.32.68.0/23 -add china 203.32.76.0/24 -add china 203.32.81.0/24 -add china 203.32.84.0/23 -add china 203.32.95.0/24 -add china 203.32.102.0/24 -add china 203.32.105.0/24 -add china 203.32.130.0/24 -add china 203.32.133.0/24 -add china 203.32.140.0/24 -add china 203.32.152.0/24 -add china 203.32.186.0/23 -add china 203.32.192.0/24 -add china 203.32.196.0/24 -add china 203.32.203.0/24 -add china 203.32.204.0/23 -add china 203.32.212.0/24 -add china 203.33.4.0/24 -add china 203.33.7.0/24 -add china 203.33.8.0/21 -add china 203.33.21.0/24 -add china 203.33.26.0/24 -add china 203.33.32.0/24 -add china 203.33.63.0/24 -add china 203.33.64.0/24 -add china 203.33.67.0/24 -add china 203.33.68.0/24 -add china 203.33.73.0/24 -add china 203.33.79.0/24 -add china 203.33.100.0/24 -add china 203.33.122.0/24 -add china 203.33.129.0/24 -add china 203.33.131.0/24 -add china 203.33.145.0/24 -add china 203.33.156.0/24 -add china 203.33.158.0/23 -add china 203.33.174.0/24 -add china 203.33.185.0/24 -add china 203.33.200.0/24 -add china 203.33.202.0/23 -add china 203.33.204.0/24 -add china 203.33.206.0/23 -add china 203.33.214.0/23 -add china 203.33.224.0/23 -add china 203.33.226.0/24 -add china 203.33.233.0/24 -add china 203.33.243.0/24 -add china 203.33.250.0/24 -add china 203.34.4.0/24 -add china 203.34.21.0/24 -add china 203.34.27.0/24 -add china 203.34.39.0/24 -add china 203.34.48.0/23 -add china 203.34.54.0/24 -add china 203.34.56.0/23 -add china 203.34.67.0/24 -add china 203.34.69.0/24 -add china 203.34.76.0/24 -add china 203.34.92.0/24 -add china 203.34.106.0/24 -add china 203.34.113.0/24 -add china 203.34.147.0/24 -add china 203.34.150.0/24 -add china 203.34.152.0/23 -add china 203.34.161.0/24 -add china 203.34.162.0/24 -add china 203.34.187.0/24 -add china 203.34.192.0/21 -add china 203.34.204.0/22 -add china 203.34.232.0/24 -add china 203.34.240.0/24 -add china 203.34.242.0/24 -add china 203.34.245.0/24 -add china 203.34.251.0/24 -add china 203.55.2.0/23 -add china 203.55.4.0/24 -add china 203.55.10.0/24 -add china 203.55.13.0/24 -add china 203.55.22.0/24 -add china 203.55.30.0/24 -add china 203.55.93.0/24 -add china 203.55.101.0/24 -add china 203.55.109.0/24 -add china 203.55.110.0/24 -add china 203.55.116.0/23 -add china 203.55.119.0/24 -add china 203.55.128.0/23 -add china 203.55.146.0/23 -add china 203.55.192.0/24 -add china 203.55.196.0/24 -add china 203.55.218.0/23 -add china 203.55.221.0/24 -add china 203.55.224.0/24 -add china 203.56.1.0/24 -add china 203.56.4.0/24 -add china 203.56.12.0/24 -add china 203.56.24.0/24 -add china 203.56.38.0/24 -add china 203.56.40.0/24 -add china 203.56.46.0/24 -add china 203.56.48.0/21 -add china 203.56.68.0/23 -add china 203.56.82.0/23 -add china 203.56.84.0/23 -add china 203.56.95.0/24 -add china 203.56.110.0/24 -add china 203.56.121.0/24 -add china 203.56.161.0/24 -add china 203.56.169.0/24 -add china 203.56.172.0/23 -add china 203.56.175.0/24 -add china 203.56.183.0/24 -add china 203.56.185.0/24 -add china 203.56.187.0/24 -add china 203.56.192.0/24 -add china 203.56.198.0/24 -add china 203.56.201.0/24 -add china 203.56.208.0/23 -add china 203.56.210.0/24 -add china 203.56.214.0/24 -add china 203.56.216.0/24 -add china 203.56.227.0/24 -add china 203.56.228.0/24 -add china 203.56.231.0/24 -add china 203.56.232.0/24 -add china 203.56.240.0/24 -add china 203.56.252.0/24 -add china 203.56.254.0/24 -add china 203.57.5.0/24 -add china 203.57.6.0/24 -add china 203.57.12.0/23 -add china 203.57.28.0/24 -add china 203.57.39.0/24 -add china 203.57.46.0/24 -add china 203.57.58.0/24 -add china 203.57.61.0/24 -add china 203.57.66.0/24 -add china 203.57.69.0/24 -add china 203.57.70.0/23 -add china 203.57.73.0/24 -add china 203.57.90.0/24 -add china 203.57.101.0/24 -add china 203.57.109.0/24 -add china 203.57.123.0/24 -add china 203.57.157.0/24 -add china 203.57.200.0/24 -add china 203.57.202.0/24 -add china 203.57.206.0/24 -add china 203.57.222.0/24 -add china 203.57.224.0/20 -add china 203.57.246.0/23 -add china 203.57.249.0/24 -add china 203.57.253.0/24 -add china 203.57.254.0/23 -add china 203.62.2.0/24 -add china 203.62.131.0/24 -add china 203.62.139.0/24 -add china 203.62.161.0/24 -add china 203.62.197.0/24 -add china 203.62.228.0/22 -add china 203.62.234.0/24 -add china 203.62.246.0/24 -add china 203.65.240.0/22 -add china 203.76.160.0/22 -add china 203.76.168.0/22 -add china 203.76.208.0/21 -add china 203.76.216.0/22 -add china 203.76.240.0/21 -add china 203.77.180.0/22 -add china 203.78.48.0/20 -add china 203.78.156.0/22 -add china 203.79.0.0/20 -add china 203.79.32.0/20 -add china 203.80.4.0/23 -add china 203.80.32.0/20 -add china 203.80.57.0/24 -add china 203.80.129.0/24 -add china 203.80.132.0/22 -add china 203.80.136.0/21 -add china 203.80.144.0/20 -add china 203.81.0.0/21 -add china 203.81.16.0/20 -add china 203.81.244.0/22 -add china 203.82.0.0/23 -add china 203.82.16.0/21 -add china 203.82.112.0/20 -add china 203.82.224.0/20 -add china 203.83.0.0/22 -add china 203.83.8.0/21 -add china 203.83.56.0/21 -add china 203.83.224.0/20 -add china 203.86.0.0/17 -add china 203.86.250.0/24 -add china 203.86.254.0/23 -add china 203.88.32.0/19 -add china 203.88.192.0/19 -add china 203.89.0.0/22 -add china 203.89.8.0/21 -add china 203.89.133.0/24 -add china 203.89.136.0/22 -add china 203.89.144.0/24 -add china 203.90.0.0/22 -add china 203.90.8.0/21 -add china 203.90.128.0/18 -add china 203.90.192.0/19 -add china 203.91.1.0/24 -add china 203.91.32.0/19 -add china 203.91.96.0/20 -add china 203.91.120.0/21 -add china 203.92.0.0/22 -add china 203.92.6.0/24 -add china 203.92.160.0/19 -add china 203.93.0.0/16 -add china 203.94.0.0/19 -add china 203.95.0.0/21 -add china 203.95.96.0/19 -add china 203.95.128.0/18 -add china 203.95.200.0/21 -add china 203.95.208.0/22 -add china 203.95.224.0/19 -add china 203.99.8.0/21 -add china 203.99.16.0/20 -add china 203.99.80.0/20 -add china 203.100.32.0/20 -add china 203.100.48.0/21 -add china 203.100.58.0/24 -add china 203.100.60.0/24 -add china 203.100.63.0/24 -add china 203.100.80.0/20 -add china 203.100.96.0/19 -add china 203.100.192.0/20 -add china 203.104.32.0/20 -add china 203.105.96.0/19 -add china 203.105.128.0/19 -add china 203.107.0.0/17 -add china 203.110.160.0/19 -add china 203.110.208.0/20 -add china 203.110.232.0/23 -add china 203.110.234.0/24 -add china 203.114.80.0/20 -add china 203.114.244.0/22 -add china 203.118.192.0/19 -add china 203.118.241.0/24 -add china 203.118.248.0/22 -add china 203.119.24.0/21 -add china 203.119.32.0/22 -add china 203.119.80.0/22 -add china 203.119.85.0/24 -add china 203.119.113.0/24 -add china 203.119.114.0/23 -add china 203.119.116.0/22 -add china 203.119.120.0/21 -add china 203.119.128.0/17 -add china 203.123.58.0/24 -add china 203.128.32.0/19 -add china 203.128.96.0/19 -add china 203.128.128.0/24 -add china 203.128.224.0/21 -add china 203.129.8.0/21 -add china 203.130.32.0/19 -add china 203.132.32.0/19 -add china 203.134.240.0/21 -add china 203.135.96.0/19 -add china 203.135.160.0/20 -add china 203.142.12.0/23 -add china 203.142.219.0/24 -add china 203.142.224.0/19 -add china 203.144.96.0/19 -add china 203.145.0.0/19 -add china 203.148.0.0/18 -add china 203.148.64.0/20 -add china 203.148.80.0/22 -add china 203.148.86.0/23 -add china 203.149.92.0/22 -add china 203.152.64.0/19 -add china 203.152.128.0/19 -add china 203.153.0.0/22 -add china 203.156.192.0/18 -add china 203.158.16.0/21 -add china 203.160.52.0/22 -add china 203.160.104.0/21 -add china 203.160.129.0/24 -add china 203.160.192.0/19 -add china 203.161.0.0/22 -add china 203.161.180.0/24 -add china 203.161.183.0/24 -add china 203.161.192.0/19 -add china 203.166.160.0/19 -add china 203.167.28.0/22 -add china 203.168.0.0/19 -add china 203.170.58.0/23 -add china 203.171.0.0/22 -add china 203.171.208.0/24 -add china 203.171.224.0/20 -add china 203.174.4.0/24 -add china 203.174.6.0/23 -add china 203.174.96.0/19 -add china 203.175.128.0/19 -add china 203.175.192.0/18 -add china 203.176.0.0/18 -add china 203.176.64.0/19 -add china 203.176.168.0/21 -add china 203.184.80.0/20 -add china 203.185.189.0/24 -add china 203.187.160.0/19 -add china 203.189.0.0/23 -add china 203.189.6.0/23 -add china 203.189.112.0/22 -add china 203.189.192.0/19 -add china 203.189.232.0/21 -add china 203.189.240.0/22 -add china 203.190.96.0/20 -add china 203.190.249.0/24 -add china 203.191.0.0/23 -add china 203.191.2.0/24 -add china 203.191.5.0/24 -add china 203.191.7.0/24 -add china 203.191.16.0/20 -add china 203.191.64.0/18 -add china 203.191.133.0/24 -add china 203.191.144.0/20 -add china 203.192.0.0/19 -add china 203.193.224.0/19 -add china 203.194.120.0/21 -add china 203.195.64.0/19 -add china 203.195.112.0/21 -add china 203.195.128.0/17 -add china 203.196.0.0/20 -add china 203.196.28.0/22 -add china 203.201.181.0/24 -add china 203.201.182.0/24 -add china 203.202.236.0/22 -add china 203.205.64.0/19 -add china 203.205.128.0/17 -add china 203.207.64.0/18 -add china 203.207.128.0/17 -add china 203.208.0.0/20 -add china 203.208.16.0/22 -add china 203.208.32.0/19 -add china 203.209.224.0/19 -add china 203.212.0.0/20 -add china 203.212.80.0/20 -add china 203.215.232.0/21 -add china 203.217.164.0/22 -add china 203.222.192.0/20 -add china 203.223.0.0/20 -add china 203.223.16.0/21 -add china 204.55.160.0/24 -add china 204.74.96.0/24 -add china 204.114.176.0/23 -add china 206.219.44.0/23 -add china 206.219.50.0/23 -add china 206.219.52.0/23 -add china 210.2.0.0/19 -add china 210.5.0.0/19 -add china 210.5.56.0/21 -add china 210.5.128.0/19 -add china 210.7.56.0/21 -add china 210.12.0.0/15 -add china 210.14.64.0/19 -add china 210.14.112.0/20 -add china 210.14.128.0/17 -add china 210.15.0.0/17 -add china 210.15.128.0/18 -add china 210.16.104.0/22 -add china 210.16.128.0/18 -add china 210.21.0.0/16 -add china 210.22.0.0/16 -add china 210.23.32.0/19 -add china 210.25.0.0/16 -add china 210.26.0.0/15 -add china 210.28.0.0/14 -add china 210.32.0.0/12 -add china 210.51.0.0/16 -add china 210.52.0.0/15 -add china 210.56.192.0/19 -add china 210.72.0.0/14 -add china 210.76.0.0/15 -add china 210.78.0.0/16 -add china 210.79.64.0/18 -add china 210.79.224.0/19 -add china 210.82.0.0/15 -add china 210.87.128.0/18 -add china 210.185.192.0/18 -add china 210.192.96.0/19 -add china 211.64.0.0/13 -add china 211.80.0.0/12 -add china 211.96.0.0/13 -add china 211.136.0.0/13 -add china 211.144.0.0/12 -add china 211.160.0.0/13 -add china 216.250.108.0/22 -add china 218.0.0.0/11 -add china 218.56.0.0/13 -add china 218.64.0.0/11 -add china 218.96.0.0/14 -add china 218.100.88.0/21 -add china 218.100.96.0/19 -add china 218.100.128.0/17 -add china 218.104.0.0/14 -add china 218.108.0.0/15 -add china 218.185.192.0/19 -add china 218.185.240.0/21 -add china 218.192.0.0/12 -add china 218.240.0.0/13 -add china 218.249.0.0/16 -add china 219.72.0.0/16 -add china 219.82.0.0/16 -add china 219.83.128.0/17 -add china 219.90.68.0/22 -add china 219.90.72.0/21 -add china 219.128.0.0/11 -add china 219.216.0.0/13 -add china 219.224.0.0/12 -add china 219.242.0.0/15 -add china 219.244.0.0/14 -add china 220.101.192.0/18 -add china 220.112.0.0/14 -add china 220.152.128.0/17 -add china 220.154.0.0/15 -add china 220.158.240.0/22 -add china 220.160.0.0/11 -add china 220.192.0.0/12 -add china 220.231.0.0/18 -add china 220.231.128.0/17 -add china 220.232.64.0/18 -add china 220.234.0.0/16 -add china 220.242.0.0/15 -add china 220.247.136.0/21 -add china 220.248.0.0/14 -add china 220.252.0.0/16 -add china 221.0.0.0/13 -add china 221.8.0.0/14 -add china 221.12.0.0/17 -add china 221.12.128.0/18 -add china 221.13.0.0/16 -add china 221.14.0.0/15 -add china 221.122.0.0/15 -add china 221.128.128.0/17 -add china 221.129.0.0/16 -add china 221.130.0.0/15 -add china 221.133.224.0/19 -add china 221.136.0.0/15 -add china 221.172.0.0/14 -add china 221.176.0.0/13 -add china 221.192.0.0/14 -add china 221.196.0.0/15 -add china 221.198.0.0/16 -add china 221.199.0.0/17 -add china 221.199.128.0/18 -add china 221.199.192.0/20 -add china 221.199.224.0/19 -add china 221.200.0.0/13 -add china 221.208.0.0/12 -add china 221.224.0.0/12 -add china 222.16.0.0/12 -add china 222.32.0.0/11 -add china 222.64.0.0/11 -add china 222.125.0.0/16 -add china 222.126.128.0/17 -add china 222.128.0.0/12 -add china 222.160.0.0/14 -add china 222.168.0.0/13 -add china 222.176.0.0/12 -add china 222.192.0.0/11 -add china 222.240.0.0/13 -add china 222.248.0.0/15 -add china 223.0.0.0/12 -add china 223.20.0.0/15 -add china 223.27.184.0/22 -add china 223.29.208.0/22 -add china 223.29.252.0/22 -add china 223.64.0.0/11 -add china 223.96.0.0/12 -add china 223.112.0.0/14 -add china 223.116.0.0/15 -add china 223.120.0.0/13 -add china 223.128.0.0/15 -add china 223.130.8.0/22 -add china 223.144.0.0/12 -add china 223.160.0.0/14 -add china 223.166.0.0/15 -add china 223.192.0.0/15 -add china 223.198.0.0/15 -add china 223.201.0.0/16 -add china 223.202.0.0/15 -add china 223.208.0.0/13 -add china 223.220.0.0/15 -add china 223.223.176.0/20 -add china 223.223.192.0/20 -add china 223.240.0.0/13 -add china 223.248.0.0/14 -add china 223.252.128.0/17 -add china 223.254.0.0/16 -add china 223.255.0.0/17 -add china 223.255.236.0/22 -add china 223.255.252.0/23 diff --git a/package/lean/ipset-lists/files/etc/ipset/local b/package/lean/ipset-lists/files/etc/ipset/local deleted file mode 100644 index 9c1df02ce..000000000 --- a/package/lean/ipset-lists/files/etc/ipset/local +++ /dev/null @@ -1,6 +0,0 @@ -create local hash:net family inet hashsize 1024 maxelem 65536 -add local 10.0.0.0/8 -add local 127.0.0.0/8 -add local 172.16.0.0/12 -add local 192.168.0.0/16 -add local 224.0.0.0/3 diff --git a/package/lean/ipset-lists/files/usr/lib/lua/luci/controller/gfwlist.lua b/package/lean/ipset-lists/files/usr/lib/lua/luci/controller/gfwlist.lua deleted file mode 100644 index b06fdbd1a..000000000 --- a/package/lean/ipset-lists/files/usr/lib/lua/luci/controller/gfwlist.lua +++ /dev/null @@ -1,14 +0,0 @@ ---[[ - Customize /etc/gfwlist.list content - Copyright (c) 2015 Justin Liu - Author: Justin Liu - https://github.com/rssnsj/network-feeds -]]-- - -module("luci.controller.gfwlist", package.seeall) - -function index() - local page - page = entry({"admin", "services", "gfwlist"}, cbi("gfwlist"), _("Domain Lists")) - page.dependent = true -end diff --git a/package/lean/ipset-lists/files/usr/lib/lua/luci/i18n/gfwlist.zh-cn.lmo b/package/lean/ipset-lists/files/usr/lib/lua/luci/i18n/gfwlist.zh-cn.lmo deleted file mode 100644 index 9bfab206c54d15ecddf721150d9dc0c9c38b79ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmaDlfBw@6y-z!)zgW29#kzgZ_pW1Lc#0%;Bh&X?oqt;b0|SEy5c7P@3tG76g|9P^ K4FW - https://github.com/rssnsj/network-feeds -]]-- - -local fs = require "nixio.fs" - -function sync_value_to_file(value, file) - value = value:gsub("\r\n?", "\n") - local old_value = nixio.fs.readfile(file) - if value ~= old_value then - nixio.fs.writefile(file, value) - end -end - -m = SimpleForm("gfwlist", translate("Domain Lists Settings")) - -for e in fs.dir("/etc/gfwlist") do - glist = m:field(TextValue, e, e, nil) - glist.rmempty = false - glist.rows = 12 - - function glist.cfgvalue() - return nixio.fs.readfile("/etc/gfwlist/" .. e) or "" - end - function glist.write(self, section, value) - sync_value_to_file(value, "/etc/gfwlist/" .. e) - end -end - -return m diff --git a/package/lean/ipset-lists/po/zh_CN/gfwlist.po b/package/lean/ipset-lists/po/zh_CN/gfwlist.po deleted file mode 100644 index 7ce2c1e8d..000000000 --- a/package/lean/ipset-lists/po/zh_CN/gfwlist.po +++ /dev/null @@ -1,9 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -msgid "Domain Lists Settings" -msgstr "域名列表设置" - -msgid "Domain Lists" -msgstr "域名列表" - diff --git a/package/lean/ipset-lists/tools/Makefile b/package/lean/ipset-lists/tools/Makefile deleted file mode 100644 index f415b2052..000000000 --- a/package/lean/ipset-lists/tools/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -update: - ./gen-china-routes.sh > ../files/etc/ipset/china - ./gen-gfwlist.sh > ../files/etc/gfwlist/china-banned diff --git a/package/lean/ipset-lists/tools/base-gfwlist.txt b/package/lean/ipset-lists/tools/base-gfwlist.txt deleted file mode 100644 index 75277f6c0..000000000 --- a/package/lean/ipset-lists/tools/base-gfwlist.txt +++ /dev/null @@ -1,2941 +0,0 @@ -0rz.tw -0to255.com -10musume.com -123rf.com -12bet.com -12vpn.com -141hongkong.com -173ng.com -1984bbs.com -1984bbs.org -1-apple.com.tw -1bao.org -1eew.com -1pondo.tv -2000fun.com -2008xianzhang.info -21andy.com -247realmedia.com -24smile.org -2-hand.info -2mdn.net -2shared.com -301works.org -315lz.com -32red.com -365singles.com.ar -36rain.com -4bluestones.biz -4chan.org -4pppc.gov.tw -4shared.com -4sq.com -51.ca -5i01.com -5maodang.com -64tianwang.com -64wiki.com -666kb.com -6park.com -7capture.com -881903.com -888.com -89-64.org -9001700.com -91porn.com -921.gov.tw -92ccav.com -9bis.com -9bis.net -9city.me -a5.com.ru -abc.pp.ru -abitno.linpie.com -ablwang.com -aboluowang.com -aboutgfw.com -acgkj.com -ac.jiruan.net -ac.playstation.net -actimes.com.au -aculo.us -ad1.nownews.com -addictedtocoffee.de -ads.backchina.com -adultfriendfinder.com -adultkeep.net -advanscene.com -advertfan.com -aec.gov.tw -aenhancers.com -af.mil -aftygh.gov.tw -aide.gov.tw -aiph.net -aisex.com -ait.org.tw -aiweiweiblog.com -aiweiwei.com -ajaxplorer.info -akamaihd.net -akiba-online.com -alabout.com -alasbarricadas.org -alexlur.org -aliengu.com -aliyun.com -alkasir.com -allaboutalpha.com -allgirlsallowed.org -alliance.org.hk -allinfa.com -allinfo.com -allmovie.com -allonlinux.free.fr -all-that-is-interesting.com -al-qimmah.net -alternate-tools.com -altrec.com -alvinalexander.com -alwaysdata.com -alwaysdata.net -am730.com.hk -amazonaws.com -ameblo.jp -americangreencard.com -amiblockedornot.com -amnesty.org -amnestyusa.org -amoiist.com -amzs.me -analyze-v.com -anchorfree.com -andfaraway.net -android.com -angularjs.org -animecrazy.net -anobii.com -anontext.com -anonymizer.com -a-normal-day.com -answering-islam.org -anthonycalzadilla.com -anti.anti.cnn.googlepages.com -antidrm.hpg.ig.com.br -antiwave.net -aobo.com.au -aolchannels.aol.com -aomiwang.com -apetube.com -apiary.io -apidocs.linksalpha.com -apigee.com -api.linksalpha.com -api.proxlet.com -api.supertweet.net -app.heywire.com -app.hkatvnews.com -appledaily.com -appledaily.com.tw -apps.hloli.net -appspot.com -archive.is -archive.org -arctosia.com -areca-backup.org -army.mil -arte.gov.tw -art-or-porn.com -artsy.net -asahichinese.com -asdfg.jp -asiafriendfinder.com -asiaharvest.org -asianews.it -asianwomensfilm.de -askstudent.com -askynz.net -assembla.com -astonmartinnews.com -atchinese.com -atc.org.au -atgfw.org -atj.org.tw -atlaspost.com -atnext.com -autoproxy.org -avaaz.org -avdb.in -avidemux.org -avoision.com -awardwinningfjords.com -axureformac.com -babynet.com.hk -backchina.com -backpackers.com.tw -badassjs.com -badoo.com -baidu.jp -baixing.me -bannedbook.org -barnabu.co.uk -basetimesheightdividedby2.com -bayvoice.net -bbcchinese.com -bbc.com -bbc.co.uk -bbci.co.uk -bbcimg.co.uk -bbc.in -bbg.gov -bbs2.newsgroup.la -bbs.ecstart.com -bbsfeed.com -bbs.kimy.com.tw -bbsland.com -bbs.morbell.com -bbs.mychat.to -bbs.newsgroup.la -bbs.ozchinese.com -bbs.qmzdd.com -bbs.sina.com -bbs.skykiwi.com -bbs.tuitui.info -bb.ttv.com.tw -bcc.com.tw -bcchinese.net -bdhr.gov.tw -bd.zhe.la -bebo.com -beeg.com -beijing1989.com -beijingspring.com -benjaminste.in -berlintwitterwall.com -bestforchina.org -bestvpnservice.com -bet365.com -beta.iset.com.tw -beta.usejump.com -betfair.com -bettween.com -betvictor.com -bewww.net -beyondfirewall.com -bfnn.org -biantailajiao.com -biantailajiao.in -bigfools.com -bignews.org -bigsound.org -bill2-software.com -billywr.com -bill.zhong.pp.ru -bipic.net -bitcointalk.org -bit.ly -bitly.com -bitshare.com -bjzc.org -blinkx.com -blinw.com -blip.tv -blockcn.com -blog.birdhouseapp.com -blog.bitly.com -blogblog.com -blog.boxcar.io -blogcatalog.com -blog.davidziegler.net -blog.dayoneapp.com -blog.de -blog.dribbble.com -blog.exblog.co.jp -blog.expofutures.com -blog.fizzik.com -blog.foolsmountain.com -blogger.com -blog.gowalla.com -blog.hotpotato.com -blog.ifttt.com -blogimg.jp -blog.instagram.com -blog.instapaper.com -blog.iphone-dev.org -blog.istef.info -blog.jackjia.com -blog.joeyrobert.org -blog.kangye.org -blog.kickstarter.com -blog.kl.am -blog.klip.me -blog.lester850.info -blog.lightbox.com -bloglines.com -bloglovin.com -blog.mongodb.org -blog.openinkpot.org -blog.palm.com -blog.path.com -blog.pathtosharepoint.com -blog.pchome.com.tw -blog.pentalogic.net -blog.pikchur.com -blog.pilotmoon.com -blog.redren.com -blog.rockmelt.com -blog.romanandreg.com -blog.s135.com -blogs.icerocket.com -blog.sina.com.tw -blog.sogoo.org -blog.sparrowmailapp.com -blogspot.com -blogspot.co.uk -blogspot.de -blogspot.fr -blogspot.in -blogspot.jp -blogs.tampabay.com -blog.summify.com -blogs.yahoo.co.jp -blog.syx86.cn -blog.syx86.com -blog.taragana.com -blogtd.net -blogtd.org -blog.tiney.com -blog.topify.com -blog.usa.gov -blog.xuite.net -blog.youthwant.com.tw -blog.youxu.info -bloodshed.net -bloomberg.cn -bloomberg.com -bloomberg.de -bloomfortune.com -bmediaasia.com -bnrmetal.com -boardreader.com -bobulate.com -bolin.netfirms.com -bonbonme.com -bonjourlesgeeks.com -boobstagram.com -books.com.tw -bookshelfporn.com -botanwang.com -bot.nu -bowenpress.com -boxunblog.com -boxunclub.com -boxun.com -boxun.tv -bralio.com -branch.com -brandonhutchinson.com -braumeister.org -break.com -breakingtweets.com -briefdream.com -brightcove.com -brightkite.com -brizzly.com -broadbook.com -br.st -brucewang.net -bt95.com -btdigg.org -btrd.net -budaedu.org -bugclub.org -builtwithbootstrap.com -bullogger.com -bullog.org -businesstimes.com.cn -businessweek.com -buugaa.com -buy.yahoo.com.tw -buzzurl.jp -bwbx.io -bwsj.hk -bx.tl -c1522.mooo.com -cacnw.com -cactusvpn.com -cafepress.com -cahr.org.tw -calameo.com -calebelston.com -cams.com -cams.org.sg -canadameet.com -canyu.org -caobian.info -caochangqing.com -cao.im -cari.com.my -catch22.net -catfightpayperview.xxx -catholic.org.hk -catholic.org.tw -cbs.ntu.edu.tw -cc9007.spaces.live.com -ccavtop10.com -ccdtr.org -ccim.org -cclife.org -ccthere.com -cctongbao.com -ccue.ca -ccue.com -cdig.info -cdjp.org -cdnews.com.tw -cdn.printfriendly.com -cdp1998.org -cdp2006.org -cdp.sinica.edu.tw -cdpusa.org -cdpweb.org -cdpwu.org -cdw.com -cecc.gov -cellulo.info -cenci.tk -cenews.eu -centralnation.com -centurys.net -c-est-simple.com -cfhks.org.hk -cftfc.com -cgdepot.org -chandoo.org -change.org -changp.com -chaos.e-spacy.com -chapm25.com -chartbeat.net -chaturbate.com -chccc.gov.tw -chengmingmag.com -chenguangcheng.com -chenpokong.com -chenyehao.spaces.live.com -cherrysave.com -chevronwp7.com -chicagoncmtv.com -china101.com -china21.com -china21.org -china5000.us -chinaaffairs.org -chinaaid.me -chinaaid.net -chinaaid.org -chinaaid.us -chinachange.org -chinachannel.hk -chinacomments.org -chinadigitaltimes.net -chinaeweekly.com -chinafreepress.org -chinagate.com -chinageeks.org -chinagfw.org -chinagreenparty.org -china-green-party.spaces.live.com -chinahush.com -chinainperspective.com -chinainperspective.net -chinainperspective.org -chinainterimgov.org -chinalawandpolicy.com -chinalawtranslate.com -chinamule.com -chinamz.org -chinarightsia.org -chinasocialdemocraticparty.com -chinaso.com -chinasoul.org -chinatimes.com -chinatweeps.com -chinaway.org -china-week.com -chinaworker.info -chinaxchina.com -chinayouth.org.hk -chinayuanmin.org -chinesedailynews.com -chinese.engadget.com -chinese-hermit.net -chinese-memorial.org -chinesen.de -chinesenewsnet.com -chinesepen.org -chinese.rnw.nl -chinese.soifind.com -chinesetalks.net -chinese.wsj.com -chingcheong.com -chn.chosun.com -chrispederick.com -chrispederick.net -christianstudy.com -christiantimes.org.hk -christusrex.org -chrlawyers.hk -chrlcg-hk.org -chromeadblock.com -chrome.com -ch.shvoong.com -chubun.com -chuizi.net -chukuang.gov.tw -circlethebayfortibet.org -citizenlab.org -citizensradio.org -city9x.com -civicparty.hk -civilhrfront.org -civilmedia.tw -cjb.net -ck101.com -classicalguitarblog.net -clb.org.hk -cl.d0z.net -clientsfromhell.net -clipfish.de -cl.ly -cloudfront.net -club.backchina.com -cms.gov -cmule.com -cn2.streetvoice.com -cna.com.tw -cnavista.com.tw -cn.calameo.com -cn.dayabook.com -cnd.org -cn.fmnnow.com -cn.ibtimes.com -cnn.com -cn.news.cnyes.com -cn.streetvoice.com -cn.uncyclopedia.wikia.com -cn.voa.mobi -cochina.org -cocoapods.org -cocoa.zonble.net -code1984.com -codeboxapp.com -codeshare.io -collateralmurder.com -collateralmurder.org -comefromchina.com -comnews.gio.gov.tw -compileheart.com -connectedchina.reuters.com -connect.facebook.net -conoyo.com -contactmagazine.net -contests.twilio.com -conviva.com -cookingtothegoodlife.com -coolaler.com -coolder.com -coolloud.org.tw -corpus4u.org -corumcollege.com -cotweet.com -couchdbwiki.com -coveringweb.com -cp-house.gov.tw -cpj.org -crackle.com -crd-net.org -creaders.net -cromotc.nat.gov.tw -crossthewall.net -csdparty.com -c-spanvideo.org -css.pixnet.in -csuchen.de -cts.com.tw -cubicle17.com -cuhkacs.org -cuihua.org -cuiweiping.net -culture.tw -curvefish.com -cwb.gov.tw -cyanogenmod.org -cyberghost.natado.com -cyberghostvpn.com -cycab.gov.tw -cydia.ifuckgfw.com -cynscribe.com -cytode.us -dabr.co.uk -dabr.me -dabr.mobi -dadazim.com -dadi360.com -dafagood.com -dafahao.com -dailidaili.com -dailymotion.com -dailynews.sina.com -dajiyuan.com -dajiyuan.eu -dajusha.baywords.com -dalailama.com -dalailama.ru -dalailamaworld.com -dalianmeng.org -danke4china.net -danwei.org -daolan.net -dapu-house.gov.tw -darpa.mil -date.fm -davidslog.com -daxa.cn -dayaarmongol.ning.com -daylife.com -ddc.com.tw -deck.ly -default.secureserver.net -delcamp.net -delicious.com -democrats.org -demo.opera-mini.net -derekhsu.homeip.net -de-sci.org -designerol.com -destiny.xfiles.to -deutsche-welle.de -dev102.com -developers.box.net -deviantart.com -deviantart.net -devio.us -devpn.com -dfas.mil -df.gov.tw -diaoyuislands.org -digitalnomadsproject.org -diigo.com -dimitrik.free.fr -dipity.com -directcreative.com -discuss.com.hk -disp.cc -dit-inc.us -dizhidizhi.com -djangosnippets.org -dl.box.net -dl-laby.jp -dl.playstation.net -dlsite.com -dmcdn.net -dmtip.gov.tw -dns2go.com -dnscrypt.org -docstoc.com -dojin.com -dok-forum.net -dolc.de -dollf.com -domain.club.tw -domainhelp.search.com -dongde.com -dongtaiwang.com -dongtaiwang.net -dongyangjing.com -dontfilter.us -dontmovetochina.com -dotheyfolloweachother.com -dotplane.com -dotsub.com -doubleaf.com -doubleclick.net -dougscripts.com -dowei.org -download.syniumsoftware.com -doxygen.org -dphk.org -dpp.org.tw -drewolanoff.com -drgan.net -dropbox.com -dropboxusercontent.com -drsunacademy.com -drtuber.com -dscn.info -dtiblog.com -dtic.mil -dtiserv2.com -duckduckgo.com -duckload.com -duckmylife.com -duihuahrjournal.org -duihua.org -duoweitimes.com -duping.net -duplicati.com -dupola.com -dupola.net -dvorak.org -dw.de -dwnews.com -dwnews.net -dw-world.com -dw-world.de -dy24k.info -dynawebinc.com -dyndns.org -dzze.com -e123.hk -eamonnbrennan.com -earthquake.usgs.gov -easy-share.com -ebookbrowse.com -ebookee.com -echofon.com -ecministry.net -edicypages.com -edoors.com -edubridge.com -eevpn.com -efcc.org.hk -efksoft.com -efmoe.com -e-gold.com -eic-av.com -e-info.org.tw -electionsmeter.com -elpais.com -eltondisney.com -emacsblog.org -embr.in -emory.edu -emule-ed2k.com -emuparadise.me -enewstree.com -en.favotter.net -englishfromengland.co.uk -entermap.com -en.wikipedia.org -epochtimes-bg.com -epochtimes.co.il -epochtimes.co.kr -epochtimes.com -epochtimes.de -epochtimes.fr -epochtimes.ie -epochtimes.jp -epochtimes-romania.com -epochtimes.ru -epochtimes.se -epochtimestr.com -epochweekly.com -erabaru.net -erepublik.com -erepublik.net -erights.net -eriversoft.com -ernestmandel.org -etaiwannews.com -etizer.org -etools.ncol.com -e-traderland.net -etraining.gov.tw -ettoday.net -evchk.wikia.com -eventful.com -everyday-carry.com -exblog.jp -expatshield.com -exploader.net -extremetube.com -eyespirit.info -eyevio.jp -eyny.com -ezpc.tk -ezpeer.com -facebook.com -facebook.net -facesofnyfw.com -fail.hk -faiththedog.info -fakku.net -falsefire.com -falunart.org -falundafamuseum.org -falundafa.org -falunhr.org -famunion.com -fangbinxing.com -fangeming.com -fanglizhi.info -fangongheike.com -fangong.org -fan-qiang.com -fanqianghou.com -fanqiangyakexi.net -fanswong.com -fanyue.info -fapdu.com -farwestchina.com -farxian.com -fastpic.ru -faststone.org -favorious.com -favstar.fm -fawanghuihui.org -faydao.com -fbcdn.net -fb.com -fb.me -fbsbx.com -fc2china.com -fc2.com -f.cl.ly -fdc89.jp -feedbooks.mobi -feedburner.com -feeds2.feedburner.com -feeds.feedburner.com -feedzshare.com -feelssh.com -feer.com -felixcat.net -feministteacher.com -fengzhenghu.com -fetchvideo.com -ff.im -fflick.com -fgmtv.net -fgmtv.org -filefactory.com -files2me.com -fileserve.com -fillthesquare.org -finalion.jp -findbook.tw -finler.net -fireofliberty.org -firstfivefollowers.com -flecheinthepeche.fr -fleshbot.com -flickr.com -flickrhivemind.net -flightcaster.com -flowerofhappiness.spaces.live.com -focustaiwan.tw -focusvpn.com -fofg.org -fooooo.com -footwiball.com -forum.baby-kingdom.com -forum.cyberctm.com -forum.idsam.com -forum.iset.com.tw -forum.my903.com -forum.mymaji.com -forum.newsgroup.la -forum.nownews.com -forum.omy.sg -forum.palmislife.com -forum.pchome.com.tw -forum.setty.com.tw -forum.sina.com.hk -forum.slime.com.tw -forum.tvb.com -forum.yorkbbs.ca -fotop.net -fourface.nodesnoop.com -fourthinternational.org -foxdie.us -foxsub.com -foxtang.com -fqrouter.com -franklc.com -freakshare.com -fredwilson.vc -free4u.com.ar -freealim.com -freechal.com -freedomhouse.org -free.fr -freegao.com -freegateget.googlepages.com -free-gate.org -free-hada-now.org -freelotto.com -freeman2.com -freemoren.com -freemorenews.com -freenet-china.org -freenetproject.org -freenewscn.com -freeopenvpn.com -freeoz.org -free-ssh.com -freessh.us -freetibet.org -freevpn.nl -freewallpaper4.me -freewebs.com -freeweibo.com -freexinwen.com -freeyoutubeproxy.net -friendfeed.com -friendfeed-media.com -fring.com -fringenetwork.com -frommel.net -frontlinedefenders.org -fscked.org -fsurf.com -ftchinese.com -fuckcnnic.net -fuckgfw.com -fuckgfw.org -fulue.com -funf.tw -funp.com -furinkan.com -furl.net -futurechinaforum.org -futureme.org -futuremessage.org -fuyin.net -fw.cm -fxnetworks.com -fzh999.com -fzh999.net -gabocorp.com -gaeproxy.com -gaeproxy.googlecode.com -galenwu.com -game735.com -gamebase.com.tw -gamer.com.tw -gamez.com.tw -ganges.com -gaoming.net -gaopi.net -gaozhisheng.net -gaozhisheng.org -gardennetworks.com -gardennetworks.org -gartlive.com -gather.com -gaymap.cc -gazotube.com -gcc.org.hk -gclooney.com -g.co -gcpnews.com -gdbt.net -gdzf.org -geek-art.net -geekerhome.com -geekmade.co.uk -geekmanuals.com -generesis.com -genuitec.com -geocities.co.jp -geocities.com -geocities.jp -geohot.com -geometrictools.com -getchu.com -getcloudapp.com -get-digital-help.com -getfoxyproxy.org -getfreedur.com -getiton.com -getjetso.com -getlantern.org -getsmartlinks.com -getsocialscope.com -gfwinterceptor.googlecode.com -gfw.org.ua -ggpht.com -ggssl.com -ghost.org -ghut.org -giga-web.jp -gigporno.ru -gimpshop.com -girlbanker.com -github.com -git-scm.com -givemesomethingtoread.com -glennhilton.com -globaljihad.net -globalmuseumoncommunism.org -globalrescue.net -globalvoicesonline.org -gmail.com -gmbd.cn -gmhz.org -gmodules.com -gmozomg.izihost.org -gnci.org.hk -goagent.biz -goagent.googlecode.com -goagentplus.com -godfootsteps.org -golang.org -goldbetsports.com -goldwave.com -gongmeng.info -gongm.in -gongminliliang.com -gongwt.com -goodreaders.com -goodreads.com -goofind.com -goo.gl -googleadservices.com -google-analytics.com -googleapis.com -googlecode.com -google.co.jp -google.com -google.com.hk -google.com.sg -google.com.tw -google.com.uk -googledomains.com -googledrive.com -googleearth.com -googlehosted.com -googlelabs.com -googlemail.com -googleplus.com -googlesile.com -googlesource.com -googlesyndication.com -googletagmanager.com -googletagservices.com -googleusercontent.com -googlevideo.com -gopetition.com -gospelherald.com -gov.tw -gpass1.com -grandtrial.org -graphis.ne.jp -gravatar.com -graylog2.org -grb.gov.tw -greatfire.org -greatfirewall.biz -great-firewall.com -greatfirewallofchina.net -greatfirewallofchina.org -great-roc.org -greatroc.org -greatroc.tw -greatzhonghua.org -greenparty.org.tw -greenvpn.net -gs-discuss.com -gseeker.com -gsn-cert.nat.gov.tw -gstatic.com -gtap.googlecode.com -gtricks.com -guancha.org -gufeng521.spaces.live.com -guishan.org -gunsamerica.com -gun-world.net -guomin.us -gutteruncensored.com -gvm.com.tw -gyalwarinpoche.com -gysd.nyc.gov.tw -gzm.tv -gzone-anime.info -h1n1china.org -hacken.cc -hackthatphone.net -hahlo.com -hakkatv.org.tw -hanunyi.com -hardsextube.com -hasaowall.com -have8.com -haygo.com -hcc.gov.tw -hchcc.gov.tw -h-china.org -hdtvb.net -heartyit.com -hecaitou.net -hechaji.com -heix.pp.ru -heiyo.info -helloandroid.com -hellonewyork.us -helloqueer.com -hellotxt.com -hellouk.org -helpeachpeople.com -helplinfen.com -help.linksalpha.com -help.opera.com -helpzhuling.org -hen.bao.li -hengchuen.gov.tw -heqinglian.net -here4news.com -heungkongdiscuss.com -hgseav.com -hidden-advent.org -hidecloud.com -hideipvpn.com -hidemyass.com -higfw.com -highrockmedia.com -hihiforum.com -hihistory.net -hiitch.com -hikinggfw.org -himemix.com -himemix.net -hjclub.info -hk32168.com -hkbc.net -hkbf.org -hkchurch.org -hkdailynews.com.hk -hkday.net -hkej.com -hkepc.com -hkfront.org -hk.geocities.com -hkgolden.com -hkgreenradio.org -hkg.westkit.net -hkheadline.com -hkhkhk.com -hkjc.com -hk.jiepang.com -hkjp.easyweb.hk -hkjp.org -hk.knowledge.yahoo.com -hk.myblog.yahoo.com -hk.news.yahoo.com -hkptu.org -hk-pub.com -hk.rd.yahoo.com -hkreporter.com -hkreporter.loved.hk -hk.search.yahoo.com -hk.video.news.yahoo.com -hkwcc.org.hk -hk.yahoo.com -hkzone.org -hnjhj.com -hola.com -holyspiritspeaks.org -holz.byethost8.com -homeservershow.com -home.sina.com -home.so-net.net.tw -honeonet.spaces.live.com -hongmeimei.com -hongzhi.li -hootsuite.com -hotpot.hk -hotshame.com -hotspotshield.com -hougaige.com -howtoforge.com -hqcdp.org -hrcir.com -hrichina.org -hrw.org -hsinchu-cc.gov.tw -hsjp.net -hsselite.com -htkou.net -htl.li -ht.ly -htmldog.com -huaglad.com -huajiadi.spaces.live.com -huanghuagang.org -huaren.us -huaxia-news.com -huaxin.ph -hua-yue.net -hudatoriq.web.id -hugoroy.eu -huhamhire.com -hujiachina.spaces.live.com -hulu.com -huluim.com -humanities.uchicago.edu -hungerstrikeforaids.org -hung-ya.com -huping.net -hutianyi.net -hutong9.net -hwinfo.com -hyperrate.com -hypeshell.com -i1.hk -i2runner.com -ialmostlaugh.com -iask.bz -iask.ca -ibiblio.org -iblogserv-f.net -ibros.org -icij.org -icl-fi.org -iconpaper.org -icu-project.org -idemocracy.asia -identi.ca -idiomconnection.com -idouga.com -idv.tw -ieasynews.net -ied2k.net -ieemdai.spaces.live.com -ifan.cz.cc -ifanqiang.com -ifanr.com -ifcss.org -ifjc.org -igfw.net -ignitedetroit.net -igvita.com -ihakka.net -iicns.com -illusionfactory.com -ilove80.be -im88.tw -imageflea.com -imagesblog.gio.gov.tw -imageshack.us -imagevenue.com -imagezilla.net -ime.baidu.jp -img.ly -imkev.com -imlive.com -immigration.gov.tw -imrworldwide.com -im.tv -incredibox.fr -iner.gov.tw -initiativesforchina.org -inmediahk.net -innermongolia.org -instagram.com -interestinglaugh.com -interfaceaddiction.com -internationalrivers.org -internetdefenseleague.org -internetfreedom.org -internetpopculture.com -inxian.com -iphone4hongkong.com -iphonehacks.com -iphonix.fr -ipicture.ru -ipobar.com -ippotv.com -iptorrents.com -ipvanish.com -iredmail.org -ironbigfools.compython.net -ironicsoftware.com -ironpython.net -isaacmao.com -isgreat.org -islamicity.com -islam.org.hk -ismprofessional.net -isohunt.com -israbox.com -istockphoto.com -isunaffairs.com -isuntv.com -itaboo.info -ithelp.ithome.com.tw -itrc.gov.tw -itshidden.com -itweet.net -iu45.com -iverycd.com -ixquick.com -izaobao.us -izles.net -japan-whores.com -jayparkinsonmd.com -jbtalks.cc -jbtalks.com -jbtalks.my -jeanyim.com -jgoodies.com -jiaoyou8.com -jiehua.cz -jieshibaobao.com -jike.com -jimoparty.com -jinbushe.org -jingpin.org -jitouch.com -jkforum.net -j.mp -joachims.org -jobso.tv -joeedelman.com -journalofdemocracy.org -jpopforum.net -juliereyc.com -junauza.com -junefourth-20.net -justfreevpn.com -justtristan.com -juziyue.com -jwmusic.org -jyxf.net -jyzj.waqn.com -k2.xrea.com -kagyuoffice.org.tw -kaiyuan.de -kakao.com -kanzhongguo.com -kanzhongguo.eu -karayou.com -ka-wai.com -kcsoftwares.com -kechara.com -keepandshare.com -kendincos.net -kenengba.com -keontech.net -khcc.gov.tw -khms.gov.tw -khmusic.com.tw -killwall.com -kineox.free.fr -kingdomsalvation.org -kinghost.com -kingstone.com.tw -kissbbao.cn -kissyoutube.com -kk.gov.tw -klccab.gov.tw -klra.gov.tw -klsio.gov.tw -kmh.gov.tw -kmseh.gov.tw -knowledgerush.com -kodingen.com -kompozer.net -koolsolutions.com -koornk.com -kt.kcome.org -kui.name -kun.im -kurtmunger.com -kusocity.com -kwongwah.com.my -kyohk.net -kzeng.info -labiennale.org -ladbrokes.com -la-forum.org -lagranepoca.com -lalulalu.com -laogai.org -laomiu.com -laoyang.info -laptoplockdown.com -laqingdan.net -larsgeorge.com -lastfm.es -latelinenews.com -latimesblogs.latimes.com -lazarsearlymusic.com -leecheukyan.org -legaltech.law.com -lematin.ch -lemonde.fr -lenwhite.com -lerosua.org -lesoir.be -lesscss.org -letscorp.net -liansi.org -lianyue.net -liaowangxizang.net -liberal.org.hk -libertytimes.com.tw -lich355.megabyet.net -lidecheng.com -life.fly4ever.me -limiao.net -line.me -linglingfa.com -lingvodics.com -linkideo.com -linuxconfig.org -linux-engineer.net -linuxreviews.org -linuxtoy.org -lipuman.com -listentoyoutube.com -list.ly -listorious.com -lists.debian.org -lists.w3.org -littlebigdetails.com -liudejun.com -liuhanyu.com -liujianshu.com -liu.lu -liuxiaotong.com -liveleak.com -livestation.com -livestream.com -livevideo.com -livingonline.us -livingstream.com -lizhizhuangbi.com -lkcn.net -localpresshk.com -lockdown.com -lockestek.com -logbot.net -logiqx.com -logmike.com -log.riku.me -london.neighborhoodr.com -longhair.hk -longtermly.net -lookatgame.com -lookingglasstheatre.org -lookpic.com -lotuslight.org.tw -lovequicksilver.com -lovesphinx.tk -lrfz.com -lsd.org.hk -lsforum.net -lsmchinese.org -lsmkorean.org -lsm.org -lsxszzg.com -lua.org -lua-users.org -lungtanhr.gov.tw -luntan.zaobao.com -lupm.org -lushstories.com -lvhai.org -lyricsquote.com -mad-ar.ch -madmenunbuttoned.com -magazines.sina.com.tw -maiio.net -mail-archive.com -maiplus.com -makemymood.com -makzhou.warehouse333.com -malaysiakini.com -marc.info -marco.org -marguerite.su -marines.mil -markmilian.com -martau.com -martincartoons.com -maruta.be -marxist.com -marxist.net -marxists.org -mashable.com -mash.to -matainja.com -mathiew-badimon.com -matsu-news.gov.tw -matsushimakaede.com -maxgif.com -mayimayi.com -mcadforums.com -mcfog.com -md-t.org -mediafire.com -meetup.com -mefeedia.com -megaporn.com -megarotic.com -megavideo.com -megurineluka.com -meirixiaochao.com -melon-peach.com -memedia.cn -meme.yahoo.com -memrijttm.org -merit-times.com.tw -mesotw.com -metacafe.com -meteorshowersonline.com -metrolife.ca -mgoon.com -mgstage.com -mh4u.org -mhradio.org -michaelanti.com -michaelmarketl.com -middle-way.net -mihk.hk -mihua.org -mike.cz.cc -mimivip.com -minghui.org -minghui-school.org -mingjinglishi.com -mingjingnews.com -mingpaocanada.com -mingpao.com -mingpaomonthly.com -mingpaonews.com -mingpaony.com -mingpaosf.com -mingpaotor.com -mingpaovan.com -minimalmac.com -mininova.org -minzhuhua.net -minzhuzhongguo.org -miroguide.com -mirrorbooks.com -mitbbs.com -mixedmedialabs.com -mixero.com -mixpod.com -mixx.com -mizzmona.com -mk5000.com -mlcool.com -mmaaxx.com -mmmca.com -mobatek.net -mobile01.com -mobileways.de -mobypicture.com -moby.to -modfetish.com -moe.gov.tw -mog.com -molihua.org -mondex.org -monitorchina.org -moonriver7.files.wordpress.com -morningsun.org -m.oulove.org -movabletype.com -moviefap.com -mp3ye.eu -mpettis.com -mpfinance.com -mpinews.com -m.plixi.com -mrdoob.com -mrtweet.com -msguancha.com -m.slandr.net -m-team.cc -mthruf.com -m.tweete.net -mtw.tl -multiply.com -multiproxy.org -multiupload.com -muouju.com -muselinks.co.jp -music.jwmusic.org -muzi.com -muzi.net -muzu.tv -mvdis.gov.tw -mx981.com -myactimes.com -my-addr.com -myaudiocast.com -myav.com.tw -my.backchina.com -myboooks.googlepages.com -mychinamyhome.com -myeclipseide.com -myforum.com.hk -myforum.com.uk -myfreshnet.com -my.keso.cn -myopenid.com -my.opera.com -mypaper.pchome.com.tw -myparagliding.com -mypopescu.com -my-proxy.com -myshare.url.com.tw -mysinablog.com -myspace.com -myvlog.im.tv -naacoalition.org -naitik.net -nakido.com -namsisi.com -nanyang.com -nanyangpost.com -nanzao.com -naol.ca -national-lottery.co.uk -navicat.com -navigeaters.com -navy.mil -nccwatch.org.tw -ncdr.nat.gov.tw -nch.com.tw -ncn.org -ncree.gov.tw -nde.de -ndr.de -nekoslovakia.net -nerch.gov.tw -ner.gov.tw -nerhl.gov.tw -nertt.gov.tw -netcolony.com -netflix.com -netme.cc -networkedblogs.com -neverforget8964.org -new-3lunch.net -new-akiba.com -newcenturymc.com -newcenturynews.com -newchen.com -newgrounds.com -newlandmagazine.com.au -news100.com.tw -newsancai.com -news.atebits.com -news.backchina.com -news.bbc.co.uk -newscn.org -news.cnyes.com -newsforums.bbc.co.uk -news.ghostery.com -news.google.com.hk -newsminer.com -news.msn.com.tw -news.omy.sg -news.pchome.com.tw -newspeak.cc -newspp.org -news.sina.com.hk -news.sina.com.tw -news.singtao.ca -newstapa.org -newtaiwan.com.tw -newtalk.tw -newyorktimes.com -nexton-net.jp -nexttv.com.tw -nf.id.au -nga.mil -ngensis.com -nhri.gov.tw -nic.cz.cc -nici.nat.gov.tw -nicovideo.tw -nict.gov.tw -nighost.org -nintendium.com -nintendowifi.net -njactb.org -njuice.com -nlfreevpn.com -nmh.gov.tw -nmmba.gov.tw -nmp.gov.tw -nmtl.gov.tw -nmvttc.gov.tw -nobelprize.org -nobel.se -nobodycanstop.us -nokogiri.org -nokola.com -noobbox.com -notes.alexdong.com -novelasia.com -nownews.com -nowtorrents.com -noypf.com -npa.go.jp -npm.gov.tw -nps.gov -nrk.no -nsc.gov.tw -nspo.gov.tw -nstm.gov.tw -ntdmh.gov.tw -ntdtv.ca -ntdtv.co -ntdtv.com -ntdtv.org -ntdtv.ru -ntl.gov.tw -ntsec.gov.tw -ntuh.gov.tw -nuexpo.com -nurgo-software.com -nuvid.com -nuzcom.com -nvquan.org -nvri.gov.tw -nydus.ca -nysingtao.com -nytco.com -nyt.com -nytimes.com -nytimg.com -nzchinese.net.nz -observechina.net -oclp.hk -october-review.org -offbeatchina.com -ogaoga.org -oikos.com.tw -oiktv.com -oizoblog.com -okayfreedom.com -old-cat.net -old.nabble.com -olumpo.com -olympicwatch.org -omgili.com -omnitalk.com -on.cc -one.xthost.info -onlylady.cn -onmoon.com -onmoon.net -oopsforum.com -ooyala.com -open.com.hk -opendemocracy.net -openid.net -openleaks.org -openvpn.net -openvpn.org -openwebster.com -opml.radiotime.com -opnir.com -orientaldaily.com.my -orient-doll.com -orn.jp -orzistic.org -osfoora.com -ourdearamy.com -oursogo.com -oursteps.com.au -overlapr.com -owl.li -ow.ly -oyax.com -ozchinese.com -ozyoyo.com -pabp.gov.tw -pacificpoker.com -packages.debian.org -packetix.net -page2rss.com -page.bid.yahoo.com -pagodabox.com -paint.net -palacemoon.com -pandora.com -pandora.tv -panluan.net -panoramio.com -pao-pao.net -paperb.us -paper.li -paper-replika.com -parade.com -parislemon.com -pastebin.com -pastie.org -patehr.gov.tw -pbs.org -pbwiki.com -pbworks.com -pbxes.com -pbxes.org -pcdiscuss.com -pcdvd.com.tw -pchome.com.tw -pct.org.tw -pcworld.com -pdetails.com -pdproxy.com -peacefire.org -peacehall.com -peeasian.com -peerpong.com -pekingduck.org -penchinese.com -penchinese.net -pengyulong.com -penthouse.com -peopo.org -percy.in -perfectgirls.net -perfectvpn.net -perfspot.com -perlhowto.com -pet.gov.tw -philly.com -photofocus.com -photos.dailyme.com -photo.utom.us -phuquocservices.com -picasaweb.google.com -picidae.net -picturesocial.com -pictures.playboy.com -pidown.com -pign.net -pimg.tw -pin6.com -ping.fm -pinoy-n.com -pioneer-worker.forums-free.com -piring.com -pixanalytics.com -pixelqi.com -pixfs.net -pixnet.cc -pixnet.net -pixplug.in -pk.com -placemix.com -planetsuzy.org -playboy.com -plays.com.tw -plm.org.hk -plunder.com -plurk.com -plurktop.mmdays.com -plus28.com -plusbb.com -pmates.com -po2b.com -podictionary.com -pokerstars.com -politicalchina.org -popvote.hk -popyard.com -popyard.org -porn2.com -pornbase.org -porn.com -pornhub.com -pornmm.net -pornoxo.com -pornrapidshare.com -pornstarclub.com -porntube.com -pornvisit.com -portis21.spaces.live.com -pose.com -postadult.com -post.anyu.org -posterous.com -post.ly -powerapple.com -power.com -powercx.com -prayforchina.net -premeforwindows7.com -presentationzen.com -president.gov.tw -prestige-av.com -previewshots.com -privacybox.de -privateinternetaccess.com -privatepaste.com -privatetunnel.com -procopytips.com -program-think.spaces.live.com -prosiben.de -provideocoalition.com -proxifier.com -proxomitron.info -proxy.org -proxypy.net -proxyroad.com -prozz.net -psblog.name -psiphon.ca -psiphon.civisec.org -pts.org.tw -ptt.cc -pubu.com.tw -puffinbrowser.com -puffstore.com -pullfolio.com -pulse.yahoo.com -pure18.com -pureconcepts.net -purepdf.com -purevpn.com -putlocker.com -puttycm.free.fr -pwned.com -python.com -python.com.tw -qanote.com -qidian.ca -qienkuen.org -qi-gong.me -qiwen.lu -qixianglu.cn -qkshare.com -qoos.com -qq.co.za -qstatus.com -qtrac.eu -qtweeter.com -quadedge.com -qusi8.net -qvodzy.org -qxbbs.org -radicalparty.org -radioaustralia.net.au -radiovaticana.org -radiovncr.com -raidcall.com.tw -rangzen.org -ranyunfei.com -rapbull.net -rapidshare8.com -rapidsharedata.com -rayfme.com -rcinet.ca -rconversation.blogs.com -rdio.com -read100.com -readingtimes.com.tw -readmoo.com -realraptalk.com -recordhistory.org -redchinacn.org -redtube.com -referer.us -reflectivecode.com -relaxbbs.com -renminbao.com -renyurenquan.org -retweeteffect.com -retweetist.com -retweetrank.com -revleft.com -revsci.net -revver.com -rfachina.com -rfamobile.org -rfa.org -rferl.org -rfi.fr -rhcloud.com -riku.me -rileyguide.com -rlwlw.com -rmjdw.com -rnw.nl -robtex.com -robustnessiskey.com -rocmp.org -rojo.com -ronjoneswriter.com -roodo.com -rotten.com -rsf-chinese.org -rsf.org -rssmeme.com -rthk.hk -rthk.org.hk -rti.org.tw -ruanyifeng.com -rushbee.com -rutube.ru -ruyiseek.com -rxhj.net -s1heng.com -s8forum.com -sacom.hk -sadpanda.us -saiq.me -salvation.org.hk -samair.ru -sammyjs.org -samsoff.es -sandnoble.com -sankaizok.com -sanmin.com.tw -sapikachu.net -savemedia.com -savetibet.de -savetibet.fr -savetibet.nl -savetibet.org -savetibet.ru -savevid.com -say2.info -scanscout.com -scmpchinese.com -scmp.com -scorecardresearch.com -scribd.com -scriptspot.com -seapuff.com -secretchina.com -secretgarden.no -secure.wikimedia.org -securitykiss.com -seesmic.com -seevpn.com -seezone.net -sejie.com -sendoid.com -sendspace.com -sesawe.net -sesawe.org -sethwklein.net -sevenload.com -sex-11.com -sex3.com -sex8.cc -sexandsubmission.com -sex.com -sexhuang.com -sexhu.com -sexinsex.net -sfileydy.com -shadow.ma -shadowsocks.org -shahamat-english.com -shangfang.org -shapeservices.com -sharebee.com -sharecool.org -share.ovi.com -share.skype.com -share.youthwant.com.tw -sharkdolphin.com -sharpdaily.com.hk -sharpdaily.hk -shaunthesheep.com -sheikyermami.com -shellmix.com -shenshou.org -shenyunperformingarts.org -shenzhoufilm.com -shifeike.blog125.fc2blog.net -shinychan.com -shitaotv.org -shixiao.org -shizhao.org -shkspr.mobi -shodanhq.com -shopping.com -showbiz.omy.sg -showtime.jp -shwchurch3.com -sidelinesnews.com -sidelinessportseatery.com -simplecd.me -simplecd.org -simpleproductivityblog.com -sina.com.tw -singtao.com -singularitys.spaces.live.com -sinoants.com -sinocast.com -sinocism.com -sino-monthly.com -sinomontreal.ca -sinonet.ca -sinopitt.info -sinoquebec.com -sis001.com -sis001.us -sis.xxx -site90.net -sitebro.tw -siteks.uk.to -site.locql.com -sitemaps.org -sites.google.com -sitetag.us -siyi123123123.spaces.live.com -skimtube.com -skybet.com -skyvegas.com -slacker.com -slavasoft.com -slheng.com -slickvpn.com -slideshare.net -slinkset.com -slutload.com -smhric.org -snapchat.com -snaptu.com -sndcdn.com -sneakme.net -snooper.co.uk -sobees.com -socialwhale.com -sockslist.net -so.com -sod.co.jp -softether.co.jp -softether-download.com -softether.org -softwarebychuck.com -so-ga.net -sogclub.com -sogou.com -sogrady.me -sohcradio.com -sohfrance.org -soh.tw -sokamonline.com -solozorro.tk -somee.com -so-news.com -songjianjun.com -sonidodelaesperanza.org -sopcast.com -sopcast.org -sorting-algorithms.com -soso.com -soumo.info -soundcloud.com -soundofhope.kr -soundofhope.org -soupofmedia.com -sourceforge.net -southnews.com.tw -sowers.org.hk -space-scape.com -spankwire.com -spb.com -speckleapp.com -speedpluss.org -spencertipping.com -spinejs.com -sports.williamhill.com -spotify.com -sproutcore.com -squarespace.com -srcf.ucam.org -ssh91.com -sshtunnel.googlecode.com -sstatic.net -stag.gov.tw -standupfortibet.org -starp2p.com -startpage.com -statcounter.com -state168.com -static.apple.nextmedia.com -static.digg.com -staticflickr.com -static.nownews.com -static.soup.io -static.typepad.com -status.twhirl.org -stdtime.gov.tw -steel-storm.com -sthoo.com -stickam.com -stickeraction.com -stonegames.net -stoneip.info -stoptibetcrisis.net -storagenewsletter.com -stoweboyd.com -streamingthe.net -strongvpn.com -student.tw -stuffimreading.com -stuffimreading.net -stupidvideos.com -subacme.rerouted.org -sublexical.spaces.live.com -sufeng.org -sugarsync.com -summify.com -sun1911.com -suoluo.org -surfeasy.com.au -svwind.com -sweux.com -swift-tools.net -s.xiaod.in -sydneytoday.com -sylfoundation.org -syncback.com -sysadmin1138.net -sysresccd.org -sytes.net -szbbs.net -szetowah.org.hk -t35.com -t66y.com -taa-usa.org -tabtter.jp -tacem.org -tafaward.com -tagwalk.com -taipei.gov.tw -taipeisociety.org -taitung-house.gov.tw -taiwandaily.net -taiwankiss.com -taiwannation.50webs.com -taiwannation.com -taiwannation.com.tw -taiwannews.com.tw -taiwan-sex.com -taiwantt.org.tw -taiwanus.net -taiwanyes.com -taiwanyes.ning.com -tamiaode.tk -tanc.org -tangben.com -taolun.info -taoyuan.gov.tw -tap11.com -target.com -taweet.com -tax.nat.gov.tw -tbpic.info -tbsec.org -tbsn.org -tbsseattle.org -tchb.gov.tw -tchrd.org -t.co -tcsac.gov.tw -teamseesmic.com -teashark.com -techlifeweb.com -techparaiso.com -telecomspace.com -telegraph.co.uk -tenacy.com -thbstc.gov.tw -theampfactory.com -theappleblog.com -theatrum-belli.com -thebcomplex.com -theblemish.com -thebodyshop-usa.com -thechinabeat.org -thedailywh.at -thedieline.com -thedw.us -thegatesnotes.com -thehots.info -thehousenews.com -thehungrydudes.com -thehun.net -theinternetwishlist.com -thelifeyoucansave.com -thelius.org -thepiratebay.org -thepiratebay.se -theqii.info -thereallove.kr -thesartorialist.com -thespeeder.com -the-sun.on.cc -thetibetpost.com -thetrotskymovie.com -thevivekspot.com -thewgo.org -thisav.com -thisiswhyyouarefat.com -thkphoto.com -thomasbernhard.org -threatchaos.com -throughnightsfire.com -t.huhaitai.com -thumbzilla.com -thywords.com -tiananmenmother.org -tiananmenuniv.com -tiananmenuniv.net -tiandixing.org -tianhuayuan.com -tiantibooks.org -tianzhu.org -tibetalk.com -tibetanyouthcongress.org -tibet.at -tibet.com -tibetcorps.org -tibetfund.org -tibetjustice.org -tibet.net -tibetoffice.org -tibetonline.com -tibetonline.tv -tibet.org.tw -tibetsun.com -tibetwrites.org -tidyread.com -time.com -times.hinet.net -tinychat.com -tinypaste.com -tinypng.com -tistory.com -tjholowaychuk.com -tkcs-collins.com -tkforum.tk -t.kun.im -tmagazine.com -tmi.me -tnaflix.com -tncsec.gov.tw -t.neolee.cn -togetter.com -tokyo-247.com -tokyocn.com -tokyo-hot.com -tomayko.com -tomsc.com -tono-oka.jp -tonyyan.net -toodoc.com -toonel.net -topic.youthwant.com.tw -topnews.in -topshare.us -topshareware.com -topstyle4.com -topsy.com -tora.to -tor.blingblingsquad.net -torproject.org -torrentcrazy.com -torrentproject.se -tor.updatestar.com -torvpn.com -t.orzdream.com -tosh.comedycentral.com -touch99.com -toutfr.com -tpde.aide.gov.tw -tphcc.gov.tw -tpi.org.tw -transgressionism.org -transparency.org -travelinlocal.com -trendsmap.com -trialofccp.org -tripod.com -trouw.nl -trtc.com.tw -trt.net.tr -trulyergonomic.com -trustedbi.com -truth101.co.tv -truthcn.com -truveo.com -tsctv.net -tsemtulku.com -tsquare.tv -tsunagarumon.com -tt1069.com -tttan.com -tuanzt.com -tube8.com -tubecao.com -tube.com -tubewolf.com -tuidang.net -tuidang.org -tui.orzdream.com -tuite.googlecode.com -tumblr.awflasher.com -tumblweed.org -tumutanzi.com -tunein.com -tunnelbear.com -turbobit.net -turbotwitter.com -turningtorso.com -turntable.fm -tuxtraining.com -tvants.com -tvboxnow.com -tv.com -tvider.com -tv-intros.com -tv.on.cc -tvunetworks.com -twapperkeeper.com -twa.sh -twaud.io -twbbs.net.tw -twbbs.org -twbbs.tw -twblogger.com -tweepguide.com -tweeplike.me -tweepmag.com -tweepml.org -tweetbackup.com -tweetboard.com -tweetboner.biz -tweetdeck.com -tweetedtimes.com -tweetmeme.com -tweetmylast.fm -tweetphoto.com -tweetrans.com -tweetree.com -tweetwally.com -tweetymail.com -twftp.org -twibase.com -twibble.de -twibbon.com -twibs.com -twicsy.com -twifan.com -twiffo.com -twiggit.org -twilog.org -twimbow.com -twimg.com -twimg.edgesuite.net -tw.img.nextmedia.com -twindexx.com -twipple.jp -twistar.cc -twisternow.com -twistory.net -twit2d.com -twitbrowser.net -twitcause.com -twitese.spaces.live.com -twitgether.com -twitgoo.com -twitiq.com -twitlonger.com -twitoaster.com -twitonmsn.com -twitpic.com -twitreferral.com -twitstat.com -twittbot.net -twitter4j.org -twitter.com -twittercounter.com -twitterfeed.com -twittergadget.com -twitter.jp -twitterkr.com -twittermail.com -twittertim.es -twitthat.com -twitturk.com -twitturly.com -twitvid.com -twitzap.com -twiyia.com -tw.jiepang.com -tw.myblog.yahoo.com -tw.news.yahoo.com -tw-npo.org -tw.rd.yahoo.com -twreg.info -twstar.net -tw.streetvoice.com -twt.fm -twtkr.com -twtr2src.ogaoga.org -twtrland.com -twt.tl -twttr.com -twurl.nl -tw.voa.mobi -twyac.org -tw.yahoo.com -tycool.com -tynsoe.org -typepad.com -tzangms.com -ub0.cc -uberproxy.net -ucdc1998.org -uderzo.it -udn.com -ufreevpn.com -ugo.com -uhrp.org -uighurbiz.net -ukliferadio.co.uk -ulike.net -ultravpn.fr -ultraxs.com -unblock.cn.com -unblocksit.es -uncyclomedia.org -uncyclopedia.info -uncyclopedia.tw -unholyknight.com -uni.cc -unicode.org -uniteddaily.com.my -unix100.com -unknownspace.org -unpo.org -uocn.org -upcoming.yahoo.com -update.playstation.net -upload4u.info -upload.backchina.com -uploaded.to -uploadstation.com -upload.wikimedia.org -urlborg.com -urlparser.com -usacn.com -usfk.mil -usinfo.state.gov -usmc.mil -us.to -ustream.tv -usus.cc -uushare.com -uwants.com -uwants.net -uyghurcongress.org -uygur.org -v70.us -vaayoo.com -value-domain.com -van698.com -vanemu.cn -vanilla-jp.com -vansky.com -vapurl.com -vatn.org -vcfbuilder.org -vcf-online.org -veempiire.com -velkaepocha.sk -venbbs.com -venchina.com -ventureswell.com -veoh.com -verizon.net -verybs.com -vevo.com -vft.com.tw -vghks.gov.tw -vghtc.gov.tw -vghtpe.gov.tw -video.aol.ca -video.aol.com -video.aol.co.uk -video.ap.org -videobam.com -video.fdbox.com -video.foxbusiness.com -videomo.com -video.tiscali.it -video.yahoo.com -vidoemo.com -views.fm -viki.com -vimeocdn.com -vimeo.com -vimgolf.com -vimperator.org -vincnd.com -vinniev.com -vllcs.org -vlog.xuite.net -vmixcore.com -voacantonese.com -voachineseblog.com -voachinese.com -voagd.com -voanews.com -voatibetan.com -vocn.tv -vot.org -vpnbook.com -vpnfire.com -vpngate.jp -vpngate.net -vpnpop.com -vpnpronet.com -v-state.org -vtunnel.com -w3schools.com -waffle1999.com -wahas.com -waigaobu.com -waikeung.org -waiwaier.com -wallornot.org -wallpapercasa.com -wanderinghorse.net -wanfang.gov.tw -wangafu.net -wangjinbo.org -wanglixiong.com -wangruoshui.net -wangyi64.spaces.live.com -want-daily.com -wapedia.mobi -washeng.net -watchmygf.net -wattpad.com -wdf5.com -wearn.com -web2project.net -webbang.net -webfee.tk -weblagu.com -webmproject.org -webshots.com -websitepulse.com -webs-tv.net -webworkerdaily.com -weeewooo.net -weekmag.info -wefong.com -weiboleak.com -weigegebyc.dreamhosters.com -weijingsheng.org -weiming.info -weiquanwang.org -weisuo.ws -wellplacedpixels.com -wengewang.com -wengewang.org -wenhui.ch -wenku.com -wenxuecity.com -wenyunchao.com -wenyunchao.spaces.live.com -wepn.info -westca.com -westernwolves.com -wetplace.com -wetpussygames.com -wexiaobo.org -wezhiyong.org -wezone.net -wforum.com -whatblocked.com -whereiswerner.com -whippedass.com -whitebear.freebearblog.org -whydidyoubuymethat.com -whylover.com -whyx.org -w.idaiwan.com -wiki.cnitter.com -wiki.jqueryui.com -wiki.keso.cn -wikileaks.ch -wikileaks.de -wikileaks.eu -wikileaks.lu -wikileaks.org -wikileaks.pl -wikilivres.info -wikimapia.org -wikimedia.org.mo -wiki.moegirl.org -wikinet.org -wiki.oauth.net -wikipedia.org -wiki.phonegap.com -wikiwiki.jp -wikkii.com -williamlong.spaces.live.com -willw.net -windowsphoneme.com -winwhispers.info -wiredbytes.com -wiredpen.com -wireshark.org -wisevid.com -witnessleeteaching.com -witopia.net -wlx.sowiki.net -woeser.com -wolfax.com -womenbusiness.nyc.gov.tw -womensrightsofchina.org -woopie.jp -woopie.tv -wordboner.com -wordpress.com -wordsandturds.com -w.org -workatruna.com -worldcat.org -worldjournal.com -worstthingieverate.com -wo.tc -wowlegacy.ml -wow-life.net -woxinghuiguo.com -wozy.in -wp.com -wpoforum.com -wqlhw.com -wqyd.org -wrchina.org -wretch.cc -writer.zoho.com -wsj.com -wsj.net -wtfpeople.com -wuala.com -wuerkaixi.com -wufi.org.tw -wuguoguang.com -wujieliulan.com -wujie.net -wukangrui.net -wwitv.com -www.6v6dota.com -www.ajsands.com -www.antd.org -www.aolnews.com -www.bulbous.freeserve.co.uk -www.cmoinc.org -www.dfanning.com -www.dwheeler.com -www.eulam.com -www.exblog.jp -www.forum4hk.com -www.freetibet.org -www.getyouram.com -www.goldenmelody.com.tw -www.idlcoyote.com -www.immigration.gov.tw -www.klip.me -www.kodingen.com -www.linksalpha.com -www.loiclemeur.com -www.macrovpn.com -www.monlamit.org -www.moztw.org -www.mycould.com -www.ned.org -www.nownews.com -www.orchidbbs.com -www.owind.com -www.oxid.it -www.parkansky.com -www.powerpointninja.com -www.rnw.nl -www.somee.com -www.stackfile.com -www.supertweet.net -www.tiffanyarment.com -www.tripod.com -www.tv.com -www.twtrland.com -www.typepad.com -www.urbanoutfitters.com -www.vegorpedersen.com -www.voy.com -www.vpncup.com -www.wangruowang.org -www.wan-press.org -www.wet123.com -www.zaurus.org.uk -wzyboy.im -x1949x.com -x365x.com -xanga.com -x-art.com -xa.yimg.com -xbabe.com -xbookcn.com -xcafe.in -xcritic.com -xfm.pp.ru -xgmyd.com -xh4n.cn -xhamster.com -xiaochuncnjp.com -xiaohexie.com -xiaoma.org -xiezhua.com -xing.com -xinhuanet.org -xinmiao.com.hk -xinqimeng.over-blog.com -xinsheng.net -xinshijue.com -xinyubbs.net -xizang-zhiye.org -xjp.cc -xml-training-guide.com -xmovies.com -xmusic.fm -xnxx.com -xpdo.net -xpud.org -xskywalker.com -xtube.com -xuchao.net -xuchao.org -xuzhiyong.net -xuzhuoer.com -xvedios.com -xvideos.com -x-wall.org -xxbbx.com -x.xcity.jp -xxxx.com.au -xysblogs.org -xys.dxiong.com -xys.org -xyy69.com -xyy69.info -yahoo.cn -yahoo.com.hk -yam.com -yanghengjun.spaces.live.com -yasni.co.uk -yasukuni.or.jp -yatsen.gov.tw -ydy.com -yeelou.com -yeeyi.com -yegle.net -yezimary.spaces.live.com -yfrog.com -yhcw.net -yidio.com -yilubbs.com -yi.org -yipub.com -ym.backchina.com -yogichen.org -yong.hu -yorkbbs.ca -youdao.com -youjizz.com -youmaker.com -youpai.org -youporn.com -your-freedom.net -yousendit.com -youthbao.com -youthnetradio.org -youtu.be -youtubecn.com -youtube.com -youtube-nocookie.com -youversion.com -youxu.info -ytht.net -ytimg.com -yuanming.net -yuming.flnet.org -yunchao.net -yvesgeleyn.com -yvtc.gov.tw -yx51.net -yyii.org -yymaya.com -yzzk.com -zacebook.com -zannel.com -zaobao.com -zaobao.com.sg -zaozon.com -zarias.com -zattoo.com -zdnet.com.tw -zengjinyan.org -zengjinyan.spaces.live.com -zeutch.com -zgzcjj.net -zhanbin.net -zhao.jinhai.de -zhenghui.org -zhenlibu.info -zhinengluyou.com -zhllg.spaces.live.com -zh.m.wikipedia.org -zh.netlog.com -zhonggtuotese.net -zhongguotese.net -zhongmeng.org -zhongsou.com -zh.pokerstrategy.com -zhreader.com -zh-tw.justin.tv -zhuichaguoji.org -zh.uncyclopedia.wikia.com -zh.wikinews.org -zh.wikipedia.org -zh.wikisource.org -ziddu.com -zillionk.com -zinio.com -ziplib.com -zkaip.com -zmw.cn -zomobo.net -zonaeuropa.com -zootool.com -zoozle.net -zozotown.com -zshare.net -zsrhao.com -zuo.la -zuola.com -zvereff.com -zyzc9.com -zyzg.us diff --git a/package/lean/ipset-lists/tools/gen-china-routes.sh b/package/lean/ipset-lists/tools/gen-china-routes.sh deleted file mode 100755 index 36fd9ee77..000000000 --- a/package/lean/ipset-lists/tools/gen-china-routes.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -e - -# -# Script for generating China IPv4 route table by merging APNIC.net data and IPIP.net data -# - -china_routes_ipip() -{ - [ -f ipip.txt ] || wget -4 https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt -O ipip.txt >&2 || exit 1 - cat ipip.txt | xargs netmask | awk '{print $1}' -} - -china_routes_apnic() -{ - [ -f apnic.txt ] || wget -4 http://ftp.apnic.net/stats/apnic/delegated-apnic-latest -O apnic.txt >&2 || exit 1 - - cat apnic.txt | awk -F'|' -vc=CN ' -function tobits(c) { for(n=0; c>=2; c/=2) n++; return 32-n; } -$2==c&&$3=="ipv4" { printf("%s/%d\n", $4, tobits($5)) }' | - xargs netmask | awk '{print $1}' -} - -china_routes_merged() -{ - [ -x ./ipv4-merger ] || gcc ipv4_merger.c -o ipv4-merger >&2 - - china_routes_apnic > china.apnic - china_routes_ipip > china.ipip - - # Merge them together - cat china.apnic china.ipip | ./ipv4-merger | sed 's/\-/:/g' | - xargs netmask | awk '{print $1}' | awk -F/ '$2<=24' > china.merged - - cat china.merged -} - -# $1: ipset name -convert_routes_to_ipset() -{ - local ipset_name="$1" - echo "create $ipset_name hash:net family inet hashsize 1024 maxelem 65536" - awk -vt="$ipset_name" '{ printf("add %s %s\n", t, $0) }' -} - - -generate_china_ipset() -{ - china_routes_merged | convert_routes_to_ipset china -} - -generate_inverted_china_routes() -{ - ( - china_routes_merged - echo 0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 172.16.0.0/12 192.168.0.0/16 224.0.0.0/3 - ) | - xargs netmask -r | awk '{print $1}' | - awk -F- ' -function iptoint(ip) { split(ip,arr,"."); n=0; for(i=1;i<=4;i++) n=n*256+arr[i]; return n; } -function inttoip(n) { a=int(n/16777216); b=int(n%16777216/65536); c=int(n%65536/256); d=n%256; return a "." b "." c "." d; } -BEGIN { st=0 } -{ x=st; y=iptoint($1); st=iptoint($2)+1; if(y>x) { print inttoip(x) ":" inttoip(y-1); } }' | - xargs netmask | awk '{print $1}' -} - - -## -case "$1" in - "") - generate_china_ipset - ;; - -c) - china_routes_merged - ;; - -r) - generate_inverted_china_routes - ;; - *) - echo "Usage:" - echo " $0 generate China routes in ipset format" - echo " $0 -c generate China routes in IP/prefix format" - echo " $0 -r generate invert China routes" - ;; - *) -esac diff --git a/package/lean/ipset-lists/tools/gen-gfwlist.sh b/package/lean/ipset-lists/tools/gen-gfwlist.sh deleted file mode 100755 index 483f6d8b3..000000000 --- a/package/lean/ipset-lists/tools/gen-gfwlist.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e - -generate_china_banned() -{ - if [ ! -f gfwlist.txt ]; then - wget https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt -O gfwlist.b64 >&2 - cat gfwlist.b64 | base64 -d > gfwlist.txt - rm -f gfwlist.b64 - fi - - cat gfwlist.txt base-gfwlist.txt | sort -u | - sed 's#!.\+##; s#|##g; s#@##g; s#http:\/\/##; s#https:\/\/##;' | - sed '/\*/d; /apple\.com/d; /sina\.cn/d; /sina\.com\.cn/d; /baidu\.com/d; /qq\.com/d' | - sed '/^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$/d' | - grep '^[0-9a-zA-Z\.-]\+$' | grep '\.' | sed 's#^\.\+##' | rev | sort -u | - awk ' -BEGIN { prev = "________"; } { - cur = $0; - if (index(cur, prev) == 1 && substr(cur, 1 + length(prev) ,1) == ".") { - } else { - print cur; - prev = cur; - } -}' | rev | sort -u - -} - -generate_china_banned - diff --git a/package/lean/ipset-lists/tools/ipv4_merger.c b/package/lean/ipset-lists/tools/ipv4_merger.c deleted file mode 100644 index 0af85ced1..000000000 --- a/package/lean/ipset-lists/tools/ipv4_merger.c +++ /dev/null @@ -1,339 +0,0 @@ -#include -#include -#include -#include - -typedef u_int32_t u32; -typedef int bool; -#define true 1 -#define false 0 -typedef unsigned gfp_t; - -static inline char *ipv4_hltos(u32 u, char *s) -{ - static char ss[20]; - if (!s) - s = ss; - sprintf(s, "%d.%d.%d.%d", - (int)(u >> 24) & 0xff, (int)(u >> 16) & 0xff, - (int)(u >> 8) & 0xff, (int)u & 0xff ); - return s; -} - -static inline u32 ipv4_stohl(const char *s) -{ - int u[4]; - if (sscanf(s, "%d.%d.%d.%d", &u[0], &u[1], &u[2], &u[3]) == 4) { - return (((u32)u[0] & 0xff) << 24) | - (((u32)u[1] & 0xff) << 16) | - (((u32)u[2] & 0xff) << 8) | - (((u32)u[3] & 0xff)); - } else - return 0xffffffff; -} - -static inline bool is_ipv4_addr(const char *s) -{ - int u[4]; - if (sscanf(s, "%d.%d.%d.%d", &u[0], &u[1], &u[2], &u[3]) == 4) - return true; - else - return false; -} - - -struct ipv4_range { - u32 start; - u32 end; -}; - -struct sa_open_data { - struct ipv4_range *tmp_base; - size_t tmp_size; - size_t tmp_length; - int errors; -}; - -static int __touch_tmp_base(struct sa_open_data *od, gfp_t gfp) -{ - if (!od->tmp_base) { - /** - * Allocate a temporary table with twice the size of the previous - * table or at least 100, on which new entries can be inserted. - */ - if (od->tmp_size < 100) - od->tmp_size = 100; - od->tmp_base = (struct ipv4_range *)malloc( - sizeof(struct ipv4_range) * od->tmp_size /*, gfp*/ ); - if (!od->tmp_base) { - fprintf(stderr, - "salist: cannot allocate the temporary list for enlarging it.\n"); - return -ENOMEM; - } - od->tmp_length = 0; - } - return 0; -} - -static int ipv4_list_add_range(struct sa_open_data *od, u32 start, - u32 end, gfp_t gfp) -{ - struct ipv4_range *cur; - int ret; - - /* Ignore a new range if it or a larger range already exists */ - //if (salist_check_ipv4(od->table, start, end)) - // return 0; - - if ((ret = __touch_tmp_base(od, gfp)) < 0) - return ret; - - /* Check if the size is efficient. Enlarge it if needed. */ - if (od->tmp_length + 1 >= od->tmp_size) { - size_t old_size = od->tmp_size; - struct ipv4_range *old_base = od->tmp_base; - - od->tmp_size *= 2; - od->tmp_base = (struct ipv4_range *)realloc(od->tmp_base, - sizeof(struct ipv4_range) * od->tmp_size); - if (!od->tmp_base) { - od->tmp_size = old_size; - od->tmp_base = old_base; - return -ENOMEM; - } - } - - cur = &od->tmp_base[od->tmp_length++]; - cur->start = start; - cur->end = end; - - return 0; -} - -static inline int ipv4_list_add_netmask(struct sa_open_data *od, - u32 net, u32 net_mask, gfp_t gfp) -{ - u32 start = net & net_mask; - u32 end = net | ~net_mask; - - return ipv4_list_add_range(od, start, end, gfp); -} - -static int ipv4_list_add_net(struct sa_open_data *od, u32 net, - int net_bits, gfp_t gfp) -{ - u32 net_mask; - - if(net_bits == 0) - net_mask = 0x00000000; - else - net_mask = ~(((u32)1 << (32 - net_bits)) - 1); - //printf("%d: %08x, %08x\n", net_bits, net_mask, net_size); - - return ipv4_list_add_netmask(od, net, net_mask, gfp); -} - -static int salist_cmd_parse(struct sa_open_data *od, char *cmd, gfp_t gfp) -{ - char *a1 = NULL, *a2 = NULL; - char *sep; - char sc; - int n = 32; - - /* Case 3: Append an item */ - - /* Check IP description part: network segment or range? */ - if ((sep = strchr(cmd, '/'))) { } - else if ((sep = strchr(cmd, '-'))) { } - else if ((sep = strchr(cmd, ':'))) { } - - if (sep) { - /* Describes a subnet or range. */ - sc = *sep; - *sep = '\0'; - - a1 = cmd; - a2 = sep + 1; - - if (*a2 == '\0') { - fprintf(stderr, "Nothing after '%c'.\n", sc); - return -EINVAL; - } - } else { - /* Describes a single IP. */ - sc = '\0'; - a1 = cmd; - } - - switch (sc) { - case '/': - /* 10.10.20.0/24 */ - /* ------------------------------------ */ - if (is_ipv4_addr(a2)) { - ipv4_list_add_netmask(od, ipv4_stohl(a1), ipv4_stohl(a2), gfp); - } else { - sscanf(a2, "%d", &n); - ipv4_list_add_net(od, ipv4_stohl(a1), n, gfp); - } - /* ------------------------------------ */ - break; - case ':': - case '-': - /* 10.10.20.0-10.20.0.255 */ - /* ------------------------------------ */ - ipv4_list_add_range(od, ipv4_stohl(a1), ipv4_stohl(a2), gfp); - /* ------------------------------------ */ - break; - default: - if (is_ipv4_addr(a1)) { - /* Single IP address. */ - u32 ip = ipv4_stohl(a1); - /* ------------------------------------ */ - ipv4_list_add_range(od, ip, ip, gfp); - /* ------------------------------------ */ - } else { - fprintf(stderr, "Invalid IP address '%s'.\n", a1); - return -EINVAL; - } - break; - } - return 0; -} - -static int ipv4_range_sort_cmp(const void *a, const void *b) -{ - struct ipv4_range *ra = (struct ipv4_range *)a; - struct ipv4_range *rb = (struct ipv4_range *)b; - - if (ra->start > rb->start) { - return 1; - } else if (ra->start < rb->start) { - return -1; - } else if (ra->end > rb->end) { - return 1; - } else if (ra->end < rb->end) { - return -1; - } else { - return 0; - } -} - -static void ipv4_range_swap(void *a, void *b, int size) -{ - struct ipv4_range *ra = (struct ipv4_range *)a; - struct ipv4_range *rb = (struct ipv4_range *)b; - struct ipv4_range tmp; - tmp = *ra; - *ra = *rb; - *rb = tmp; -} - -static struct sa_open_data *salist_open(void) -{ - struct sa_open_data *od = NULL; - - od = (struct sa_open_data *)malloc(sizeof(*od)); - if (!od) { - fprintf(stderr, "salist: cannot allocate sa_open_data.\n"); - return NULL; - } - memset(od, 0, sizeof(*od)); - od->errors = 0; - - return od; -} - -static int salist_close(struct sa_open_data *od) -{ - size_t ri, wi; - struct ipv4_range *old_base; - - /* Flush the table if any modification has been done */ - if (od->tmp_base) { - /* Sort the table and merge entries as many as possible. */ - if (od->tmp_length >= 2) { - qsort(od->tmp_base, od->tmp_length, sizeof(struct ipv4_range), - ipv4_range_sort_cmp); - - for (wi = 0, ri = 1; ri < od->tmp_length; ri++) { - /* NOTICE: 0xffffffff + 1 ? */ - if (od->tmp_base[wi].end == (u32)(-1)) { - /* Nothing */ - } else if (od->tmp_base[ri].start <= od->tmp_base[wi].end + 1) { - /* The two ranges overlap, so merge the 2nd to the 1st one */ - if (od->tmp_base[ri].end > od->tmp_base[wi].end) - od->tmp_base[wi].end = od->tmp_base[ri].end; - } else { - wi++; - if (wi < ri) - od->tmp_base[wi] = od->tmp_base[ri]; - } - } - - od->tmp_length = wi + 1; - } - - /* Reduce the size */ - if (od->tmp_length < od->tmp_size) { - struct ipv4_range *__tmp = od->tmp_base; - od->tmp_base = (struct ipv4_range *)malloc( - sizeof(struct ipv4_range) * (od->tmp_length ? od->tmp_length : 1)); - if (od->tmp_base) { - memcpy(od->tmp_base, __tmp, - sizeof(struct ipv4_range) * od->tmp_length); - free(__tmp); - } else { - fprintf(stderr, "[%s:%d] Failed to allocate temporary table.\n", - __FUNCTION__, __LINE__); - /* If failed to allocate new memory, do not reduce it. */ - od->tmp_base = __tmp; - } - } - - /* Dump the table instead */ - } - - if (od->errors) { - fprintf(stderr, "[%s] %d errors detected during table operation.\n", - __FUNCTION__, od->errors); - } - - return 0; -} - -static void sa_open_data_dump(struct sa_open_data *od) -{ - size_t i; - char s1[20], s2[20]; - - for (i = 0; i < od->tmp_length; i++) { - printf("%s-%s\n", ipv4_hltos(od->tmp_base[i].start, s1), - ipv4_hltos(od->tmp_base[i].end, s2)); - } -} - -int main(int argc, char *argv[]) -{ - struct sa_open_data *od; - char lbuf[128]; - - od = salist_open(); - - while (fgets(lbuf, sizeof(lbuf), stdin)) { - size_t llen = strlen(lbuf); - if (llen > 0 && lbuf[llen - 1] == '\n') - lbuf[--llen] = '\0'; - if (llen > 0 && lbuf[llen - 1] == '\r') - lbuf[--llen] = '\0'; - if (llen == 0) - continue; - salist_cmd_parse(od, lbuf, 0); - } - - salist_close(od); - - sa_open_data_dump(od); - - return 0; -} - diff --git a/package/lean/ipv6-helper/Makefile b/package/lean/ipv6-helper/Makefile deleted file mode 100644 index 8be88ca5b..000000000 --- a/package/lean/ipv6-helper/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -# -# Copyright (C) 2015 OpenWrt-dist -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=ipv6helper -PKG_VERSION:=1.0 -PKG_RELEASE:=1 - -PKG_LICENSE:=GPLv3 -PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=LEAN - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) - -include $(INCLUDE_DIR)/package.mk - -define Package/ipv6helper - SECTION:=ipv6 - TITLE:=IPv6 Helper and Dynamic Update he.net of ip - PKGARCH:=all - DEPENDS:=+luci-proto-ipv6 +wget +ip6tables +kmod-ipt-nat6 +odhcpd-ipv6only +odhcp6c +6in4 -endef - -define Package/ipv6helper/description - IPv6 Helper and Dynamic Update he.net of ip -endef - -define Build/Prepare -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/ipv6helper/postinst -#!/bin/sh -if [ -z "$${IPKG_INSTROOT}" ]; then - chmod 755 /etc/hotplug.d/iface/60-6in4 >/dev/null 2>&1 -fi -exit 0 -endef - -define Package/ipv6helper/install - $(INSTALL_DIR) $(1)/etc/hotplug.d/iface - $(INSTALL_BIN) ./files/root/etc/hotplug.d/iface/60-6in4 $(1)/etc/hotplug.d/iface/60-6in4 -endef - - -$(eval $(call BuildPackage,ipv6helper)) diff --git a/package/lean/ipv6-helper/files/root/etc/hotplug.d/iface/60-6in4 b/package/lean/ipv6-helper/files/root/etc/hotplug.d/iface/60-6in4 deleted file mode 100644 index 270aad1f9..000000000 --- a/package/lean/ipv6-helper/files/root/etc/hotplug.d/iface/60-6in4 +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -. /lib/functions.sh -if [ "$ACTION" != "ifup" ]; then - exit -fi -config_load network -config_get tunnelid $INTERFACE tunnelid -config_get username $INTERFACE username -config_get password $INTERFACE password -if [ "$tunnelid" != "" ]; then - wget -O - https://$username:$password@ipv4.tunnelbroker.net/nic/update?hostname=$tunnelid --no-check-certificate -fi diff --git a/package/lean/k3-brcmfmac4366c-firmware/Makefile b/package/lean/k3-brcmfmac4366c-firmware/Makefile deleted file mode 100644 index 479628dc0..000000000 --- a/package/lean/k3-brcmfmac4366c-firmware/Makefile +++ /dev/null @@ -1,42 +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:=k3wifi -PKG_VERSION:=1 -PKG_RELEASE:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - TITLE:=k3wifi - DEPENDS:= - URL:=http://www.k3wifi.com/ -endef - -define Package/$(PKG_NAME)/description - k3wifi fw -endef - -define Build/Prepare -endef - -define Build/Configure -endef - -define Build/Compile -endef - - -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/lib - $(INSTALL_DIR) $(1)/lib/firmware - $(INSTALL_DIR) $(1)/lib/firmware/brcm - $(INSTALL_DATA) ./files/lib/firmware/brcm/brcmfmac4366c-pcie.bin $(1)/lib/firmware/brcm/brcmfmac4366c-pcie.bin -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/lean/k3-brcmfmac4366c-firmware/files/lib/firmware/brcm/brcmfmac4366c-pcie.bin b/package/lean/k3-brcmfmac4366c-firmware/files/lib/firmware/brcm/brcmfmac4366c-pcie.bin deleted file mode 100644 index 203ce98f02f4eb5a23365b71d205efff2f5012cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 933688 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

    Q`-?yNntrvMnR$zpD(x;?mT``v@`X2{7 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%0Au`z`|p^(rD>vk=1ytU7N3 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%0An8V|40r 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


    m%z`BnM*qfa8q9(<5=MW=R%kE_u8}bM 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 SWqQ~3^ls?x8s?>1=l=i~8AI>@ diff --git a/package/lean/k3screenctrl/Makefile b/package/lean/k3screenctrl/Makefile deleted file mode 100644 index 6f862cec0..000000000 --- a/package/lean/k3screenctrl/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=k3screenctrl -PKG_VERSION:=0.10 -PKG_RELEASE:=2 - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/updateing/k3screenctrl.git -PKG_SOURCE_VERSION:=dd05ce9a5cb0cb6cebfc6b3b5823c7f6d75796ff -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION) -PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.xz -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR) -PKG_MAINTAINER:=Hamster Tian - -include $(INCLUDE_DIR)/package.mk - -TARGET_CFLAGS+= -D_GNU_SOURCE - -define Package/k3screenctrl - SECTION:=utils - CATEGORY:=Utilities - DEPENDS:=@TARGET_bcm53xx_DEVICE_phicomm-k3 +@KERNEL_DEVMEM - TITLE:=LCD screen controller on PHICOMM K3 - URL:=https://github.com/updateing/k3-screen-ctrl -endef - -define Package/k3screenctrl/description - K3 Screen Controller (k3screenctrl) is a program utilizing -the LCD screen on PHICOMM K3 to display some stats. -endef - -define Package/k3screenctrl/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_DIR) $(1)/lib/k3screenctrl - $(INSTALL_DIR) $(1)/etc/init.d - - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/k3screenctrl $(1)/usr/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/k3screenctrl/wan.sh $(1)/lib/k3screenctrl/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/k3screenctrl/wifi.sh $(1)/lib/k3screenctrl/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/k3screenctrl/port.sh $(1)/lib/k3screenctrl/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/k3screenctrl/basic.sh $(1)/lib/k3screenctrl/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/k3screenctrl/host.sh $(1)/lib/k3screenctrl/ - - $(INSTALL_BIN) ./files/k3screenctrl.init $(1)/etc/init.d/k3screenctrl -endef - -$(eval $(call BuildPackage,k3screenctrl)) diff --git a/package/lean/k3screenctrl/files/k3screenctrl.init b/package/lean/k3screenctrl/files/k3screenctrl.init deleted file mode 100755 index 5d3d190a2..000000000 --- a/package/lean/k3screenctrl/files/k3screenctrl.init +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=99 -STOP=99 - -SCRIPTS_BASE=/lib/k3screenctrl/ - -start() { - /usr/bin/k3screenctrl & -} - -stop() { - killall k3screenctrl -} diff --git a/package/lean/libidn2/Makefile b/package/lean/libidn2/Makefile deleted file mode 100644 index c023b5298..000000000 --- a/package/lean/libidn2/Makefile +++ /dev/null @@ -1,93 +0,0 @@ -# -# Copyright (C) 2017-2018 Daniel Engberg -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=libidn2 -PKG_VERSION:=2.0.4 -PKG_RELEASE:=1 -PKG_MAINTAINER:=Kevin Darbyshire-Bryant -PKG_LICENSE:=GPL-2.0-or-later LGPL-3.0-or-later -PKG_LICENSE_FILES:=COPYING COPYINGv2 COPYING.LESSERv3 - -PKG_SOURCE_URL:=@GNU/libidn -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_HASH:=644b6b03b285fb0ace02d241d59483d98bc462729d8bb3608d5cad5532f3d2f0 - -PKG_INSTALL:=1 - -include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/nls.mk - -define Package/idn2/Default - SECTION:=net - CATEGORY:=Network - URL:=http://www.gnu.org/software/libidn/ -endef - -define Package/idn2/Default/description - Libidn2 is a free software implementation of IDNA2008, - Punycode and TR46 in library form. It contains - functionality to convert internationalized domain - names to and from ASCII Compatible Encoding (ACE), - following the IDNA2008 and TR46 standards. -endef - -define Package/idn2 - $(call Package/idn2/Default) - SUBMENU:=IP Addresses and Names - TITLE:=GNU IDN2 (Internationalized Domain Name) tool - DEPENDS:=+libidn2 -endef - -define Package/idn2/description -$(call Package/idn2/Default/description) - - Command line tool using libidn2 - -endef - -define Package/libidn2 - SECTION:=libs - CATEGORY:=Libraries - DEPENDS:=+libunistring $(ICONV_DEPENDS) $(INTL_DEPENDS) - TITLE:=International domain name library (IDNA2008, Punycode and TR46) - URL:=https://www.gnu.org/software/libidn/#libidn2 -endef - -define Package/libidn2/description -$(call Package/idn2/Default/description) - - Library only package - -endef - -CONFIGURE_ARGS += \ - --disable-rpath \ - --disable-doc - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/include/idn2.h $(1)/usr/include - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{la,so}* $(1)/usr/lib/ - $(INSTALL_DIR) $(1)/usr/lib/pkgconfig - $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libidn2.pc $(1)/usr/lib/pkgconfig/ -endef - -define Package/idn2/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/ -endef - -define Package/libidn2/install - $(INSTALL_DIR) $(1)/usr/lib/ - $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/ -endef - -$(eval $(call BuildPackage,idn2)) -$(eval $(call BuildPackage,libidn2)) diff --git a/package/lean/luci-app-adbyby-plus/Makefile b/package/lean/luci-app-adbyby-plus/Makefile deleted file mode 100644 index 5e5f006c3..000000000 --- a/package/lean/luci-app-adbyby-plus/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for Adbyby -LUCI_DEPENDS:=+adbyby +wget +ipset +coreutils +coreutils-nohup +dnsmasq-full -LUCI_PKGARCH:=all -PKG_NAME:=luci-app-adbyby-plus -PKG_VERSION:=2.0 -PKG_RELEASE:=32 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - diff --git a/package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua b/package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua deleted file mode 100644 index 9d986d344..000000000 --- a/package/lean/luci-app-adbyby-plus/luasrc/controller/adbyby.lua +++ /dev/null @@ -1,18 +0,0 @@ - -module("luci.controller.adbyby", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/adbyby") then - return - end - - entry({"admin", "services", "adbyby"}, cbi("adbyby"), _("ADBYBY Plus +"), 10).dependent = true - entry({"admin","services","adbyby","status"},call("act_status")).leaf=true -end - -function act_status() - local e={} - e.running=luci.sys.call("pgrep adbyby >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua b/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua deleted file mode 100644 index 963f9e90f..000000000 --- a/package/lean/luci-app-adbyby-plus/luasrc/model/cbi/adbyby.lua +++ /dev/null @@ -1,178 +0,0 @@ - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" - -m = Map("adbyby") -m.title = translate("Adbyby Plus +") -m.description = translate("Adbyby Plus + can filter all kinds of banners, popups, video ads, and prevent tracking, privacy theft and a variety of malicious websites
    Plus + version combination mode can operation with Adblock Plus Host,filtering ads without losing bandwidth") - -m:section(SimpleSection).template = "adbyby/adbyby_status" - -s = m:section(TypedSection, "adbyby") -s.anonymous = true - -s:tab("basic", translate("Base Setting")) - -o = s:taboption("basic", Flag, "enable") -o.title = translate("Enable") -o.default = 0 -o.rmempty = false - -o = s:taboption("basic", ListValue, "wan_mode") -o.title = translate("Running Mode") -o:value("0", translate("Global Mode(The slowest, the best effects)")) -o:value("1", translate("Plus + Mode(Filter domain name list and blacklist website.Recommended)")) -o:value("2", translate("No filter Mode (Must set in Client Filter Mode Settings manually)")) -o.default = 1 -o.rmempty = false - -mem = s:taboption("basic", Flag, "mem_mode") -mem.title = translate("RAM Running Mode") -mem.default = 1 -mem.rmempty = false -mem.description = translate("Running Adbyby in RAM.More speed,less disk consumption") - -local DL = SYS.exec("head -1 /usr/share/adbyby/data/lazy.txt | awk -F' ' '{print $3,$4}'") -local DV = SYS.exec("head -1 /usr/share/adbyby/data/video.txt | awk -F' ' '{print $3,$4}'") -local NR = SYS.exec("grep -v '^!' /usr/share/adbyby/data/rules.txt | wc -l") -local NU = SYS.exec("cat /usr/share/adbyby/data/user.txt | wc -l") ---local NW = SYS.exec("uci get adbyby.@adbyby[-1].domain 2>/dev/null | wc -l") -local ND = SYS.exec("cat /usr/share/adbyby/dnsmasq.adblock | wc -l") - -o = s:taboption("basic", Button, "restart") -o.title = translate("Adbyby and Rule state") -o.inputtitle = translate("Restart Adbyby") -o.description = translate(string.format("Lazy Rule:%s   Video Rule:%s
    Third Party Subscription Rule:%d lines  User-defined Rule:%d lines", DL, DV, math.abs(NR-NU), NR)) -o.inputstyle = "reload" -o.write = function() - SYS.call("nohup sh /usr/share/adbyby/adupdate.sh > /tmp/adupdate.log 2>&1 &") - SYS.call("sleep 4") - HTTP.redirect(DISP.build_url("admin", "services", "adbyby")) -end - -s:tab("advanced", translate("Advance Setting")) - -o = s:taboption("advanced", Flag, "cron_mode") -o.title = translate("Update the rule at 6 a.m. every morning and restart adbyby") -o.default = 0 -o.rmempty = false -o.description = translate(string.format("Adblock Plus Host List: %s Lines

    ", ND)) - -updatead = s:taboption("advanced", Button, "updatead", translate("Manually force update
    Adblock Plus Host List"), translate("Note: It needs to download and convert the rules. The background process may takes 60-120 seconds to run.
    After completed it would automatically refresh, please do not duplicate click!")) -updatead.inputtitle = translate("Manually force update") -updatead.inputstyle = "apply" -updatead.write = function() - SYS.call("nohup sh /usr/share/adbyby/adblock.sh > /tmp/adupdate.log 2>&1 &") -end - -o = s:taboption("advanced", Flag, "update_source") -o.title = translate("Update adbyby rules form official website first") -o.default = 1 -o.rmempty = false - -o = s:taboption("advanced", Flag, "block_ios") -o.title = translate("Block Apple iOS OTA update") -o.default = 0 -o.rmempty = false - -s:tab("help", translate("Plus+ Domain List")) - -local conf = "/usr/share/adbyby/adhost.conf" -o = s:taboption("help", TextValue, "conf") -o.description = translate("(!)Note that you should fill to the domain name ONLY. For example, http://www.baidu.com only needs to write to baidu.com. One line for each") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(conf) or "" -end -o.write = function(self, section, value) - NXFS.writefile(conf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("esc", translate("Bypass Domain List")) - -local escconf = "/usr/share/adbyby/adesc.conf" -o = s:taboption("esc", TextValue, "escconf") -o.description = translate("(!)Will Never filter these Domain") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(escconf) or "" -end -o.write = function(self, section, value) - NXFS.writefile(escconf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("black", translate("Black Domain List")) - -local blackconf = "/usr/share/adbyby/adblack.conf" -o = s:taboption("black", TextValue, "blackconf") -o.description = translate("(!)Will Always block these Domain") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(blackconf) or "" -end -o.write = function(self, section, value) - NXFS.writefile(blackconf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("block", translate("Black IP List")) - -local blockconf = "/usr/share/adbyby/blockip.conf" -o = s:taboption("block", TextValue, "blockconf") -o.description = translate("(!)Will Always block these IP") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(blockconf) or " " -end -o.write = function(self, section, value) - NXFS.writefile(blockconf, value:gsub("\r\n", "\n")) - --SYS.call("/etc/init.d/adbyby restart") -end - -s:tab("user", translate("User-defined Rule")) - -local file = "/usr/share/adbyby/rules.txt" -o = s:taboption("user", TextValue, "rules") -o.description = translate("Each line of the beginning exclamation mark is considered an annotation.") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(file) or "" -end -o.write = function(self, section, value) - NXFS.writefile(file, value:gsub("\r\n", "\n")) -end - -t=m:section(TypedSection,"acl_rule",translate("Client Filter Mode Settings"), -translate("Filter mode settings can be set to specific LAN clients ( No filter , Global filter ) . Does not need to be set by default.")) -t.template="cbi/tblsection" -t.sortable=true -t.anonymous=true -t.addremove=true - -e=t:option(Value,"ipaddr",translate("IP Address")) -e.width="40%" -e.datatype="ip4addr" -e.placeholder="0.0.0.0/0" -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - e:value(entry.dest:string()) - end -end) - -e=t:option(ListValue,"filter_mode",translate("Filter Mode")) -e.width="40%" -e.default="disable" -e.rmempty=false -e:value("disable",translate("No filter")) -e:value("global",translate("Global filter")) - -return m diff --git a/package/lean/luci-app-adbyby-plus/luasrc/view/adbyby/adbyby_status.htm b/package/lean/luci-app-adbyby-plus/luasrc/view/adbyby/adbyby_status.htm deleted file mode 100644 index 8191b63a6..000000000 --- a/package/lean/luci-app-adbyby-plus/luasrc/view/adbyby/adbyby_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    \ No newline at end of file diff --git a/package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po b/package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po deleted file mode 100644 index b0842860c..000000000 --- a/package/lean/luci-app-adbyby-plus/po/zh-cn/adbyby.po +++ /dev/null @@ -1,125 +0,0 @@ -msgid "ADBYBY Plus +" -msgstr "广告屏蔽大师 Plus+" - -msgid "Adbyby Plus + is Running" -msgstr "广告屏蔽大师 Plus + 正在运行" - -msgid "Adbyby Plus + is Not Running" -msgstr "广告屏蔽大师 Plus + 没有运行" - -msgid "Adbyby Plus + can filter all kinds of banners, popups, video ads, and prevent tracking, privacy theft and a variety of malicious websites
    Plus + version combination mode can operation with Adblock Plus Host,filtering ads without losing bandwidth" -msgstr "广告屏蔽大师 Plus + 可以全面过滤各种横幅、弹窗、视频广告,同时阻止跟踪、隐私窃取及各种恶意网站
    Plus + 版本可以和 Adblock Plus Host 结合方式运行,过滤广告不损失带宽" - -msgid "Adbyby Plus +" -msgstr "广告屏蔽大师 Plus+" - -msgid "Base Setting" -msgstr "基本设置" - -msgid "Running Mode" -msgstr "运行模式" - -msgid "Global Mode(The slowest, the best effects)" -msgstr "全局模式(最慢, 效果最好)" - -msgid "Plus + Mode(Filter domain name list and blacklist website.Recommended)" -msgstr "Plus + 模式(只过滤列表内域名结合ABP名单。推荐!)" - -msgid "No filter Mode (Must set in Client Filter Mode Settings manually)" -msgstr "手动代理模式(必须手动设置浏览器代理,或者客户端过滤模式设置)" - -msgid "Transparent proxy" -msgstr "透明代理" - -msgid "Click to disable" -msgstr "点击关闭" - -msgid "Click to enable" -msgstr "点击开启" - -msgid "Adbyby and Rule state" -msgstr "规则状态" - -msgid "Restart Adbyby" -msgstr "重启Adbyby" - -msgid "Plus+ Domain List" -msgstr "Plus+ 模式过滤的域名" - -msgid "Bypass Domain List" -msgstr "域名白名单" - -msgid "Black Domain List" -msgstr "域名黑名单" - -msgid "Black IP List" -msgstr "IP黑名单" - - -msgid "Advance Setting" -msgstr "高级设置" - -msgid "Update the rule at 6 a.m. every morning and restart adbyby" -msgstr "每天凌晨6点更新规则并重启" - -msgid "Manually force update
    Adblock Plus Host List" -msgstr "手动强制更新
    Adblock Plus Host List" - -msgid "Manually force update" -msgstr "手动强制更新" - -msgid "Block Apple iOS OTA update" -msgstr "拦截 Apple iOS 的OTA更新" - -msgid "RAM Running Mode" -msgstr "内存运行模式" - -msgid "Running Adbyby in RAM.More speed,less disk consumption" -msgstr "在内存中运行Adbyby。更快的速度,更少的存储空间损耗" - - -msgid "User-defined Rule" -msgstr "用户自定义规则" - -msgid "Client Filter Mode Settings" -msgstr "客户端过滤模式设置" - -msgid "Filter mode settings can be set to specific LAN clients ( No filter , Global filter ) . Does not need to be set by default." -msgstr "可以为局域网客户端分别设置不同的过滤模式 ( 不过滤 , 全局过滤 ) 。默认无需设置" - -msgid "IP Address" -msgstr "IP地址" - -msgid "Filter Mode" -msgstr "过滤模式" - -msgid "(!)Note that you should fill to the domain name ONLY. For example, http://www.baidu.com only needs to write to baidu.com. One line for each" -msgstr "这些域名在 Plus 模式中会被过滤。你需要要填写域名即可,例如 http://www.baidu.com,你写 baidu.com 即可。每行一个域名" - -msgid "(!)Will Never filter these Domain" -msgstr "永不过滤白名单内的域名(所有模式中生效)" - -msgid "(!)Will Always block these Domain" -msgstr "拦截黑名单内的域名(所有模式中生效)" - -msgid "(!)Will Always block these IP" -msgstr "拦截黑名单内的IP地址(所有模式中生效)" - -msgid "Each line of the beginning exclamation mark is considered an annotation." -msgstr "每行一条规则,感叹号开头的被认为是注释" - -msgid "Adblock Plus Host List:" -msgstr "Adblock Plus Host 列表:" - -msgid "Note: It needs to download and convert the rules. The background process may takes 60-120 seconds to run.
    After completed it would automatically refresh, please do not duplicate click!" -msgstr "注意:需要下载并转换规则。后台进程可能需要60-120秒运行。完成后会自动刷新,请不要重复点击!" - -msgid "No filter" -msgstr "不过滤" - -msgid "Global filter" -msgstr "全局过滤" - -msgid "Update adbyby rules form official website first" -msgstr "优先从官方网站更新规则" - diff --git a/package/lean/luci-app-adbyby-plus/root/etc/config/adbyby b/package/lean/luci-app-adbyby-plus/root/etc/config/adbyby deleted file mode 100644 index d2afc6ed7..000000000 --- a/package/lean/luci-app-adbyby-plus/root/etc/config/adbyby +++ /dev/null @@ -1,11 +0,0 @@ - -config adbyby - option daemon '2' - option lan_mode '0' - option cron_mode '1' - option block_ios '0' - option enable '0' - option wan_mode '1' - option mem_mode '1' - option update_source '1' - diff --git a/package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby b/package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby deleted file mode 100755 index 47147cee9..000000000 --- a/package/lean/luci-app-adbyby-plus/root/etc/init.d/adbyby +++ /dev/null @@ -1,218 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=99 -STOP=10 - -EXTRA_COMMANDS="add_rule del_rule reload_rule" -PROG_PATH=/usr/share/adbyby -DATA_PATH=$PROG_PATH/data -WAN_FILE=/var/etc/dnsmasq-adbyby.d/03-adbyby-ipset.conf -CRON_FILE=/etc/crontabs/root -CONFIG=adbyby -ipt_n="iptables -t nat" - - -get_config() -{ - config_get_bool enable $1 enable - config_get_bool cron_mode $1 cron_mode - config_get wan_mode $1 wan_mode - config_get_bool block_ios $1 block_ios 0 - config_get_bool mem_mode $1 mem_mode 1 -} - -add_rules() -{ - rm -f $DATA_PATH/user.bin - grep -v ^! $PROG_PATH/rules.txt > $DATA_PATH/user.txt - cp $PROG_PATH/rules.txt $DATA_PATH/rules.txt -} - - -add_cron() -{ - if [ $cron_mode -eq 1 ]; then - sed -i '/adblock.sh/d' $CRON_FILE - echo '0 6 * * * /usr/share/adbyby/adblock.sh > /tmp/adupdate.log 2>&1' >> $CRON_FILE - crontab $CRON_FILE - fi -} - -del_cron() -{ - sed -i '/adblock.sh/d' $CRON_FILE - /etc/init.d/cron restart -} - -ip_rule() -{ - - ipset -N adbyby_esc hash:ip - $ipt_n -A ADBYBY -m set --match-set adbyby_esc dst -j RETURN - - for i in $(seq 0 100) - do - local ip=$(uci_get_by_type acl_rule ipaddr '' $i) - local mode=$(uci_get_by_type acl_rule filter_mode '' $i) - case "$mode" in - disable) - $ipt_n -A ADBYBY -s $ip -j RETURN - ;; - global) - $ipt_n -A ADBYBY -s $ip -p tcp -j REDIRECT --to-ports 8118 - $ipt_n -A ADBYBY -s $ip -j RETURN - ;; - esac - done - - - - case $wan_mode in - 0) - ;; - 1) - ipset -N adbyby_wan hash:ip - $ipt_n -A ADBYBY -m set ! --match-set adbyby_wan dst -j RETURN - ;; - 2) - $ipt_n -I ADBYBY -j RETURN - ;; - esac - - echo "create blockip hash:net family inet hashsize 1024 maxelem 65536" > /tmp/blockip.ipset - awk '!/^$/&&!/^#/{printf("add blockip %s'" "'\n",$0)}' /usr/share/adbyby/blockip.conf >> /tmp/blockip.ipset - ipset -! restore < /tmp/blockip.ipset 2>/dev/null - iptables -I FORWARD -m set --match-set blockip dst -j DROP - iptables -I OUTPUT -m set --match-set blockip dst -j DROP -} - -add_dns() -{ - mkdir -p /var/etc/dnsmasq-adbyby.d - mkdir -p /tmp/dnsmasq.d - awk '!/^$/&&!/^#/{printf("ipset=/%s/'"adbyby_esc"'\n",$0)}' $PROG_PATH/adesc.conf > /var/etc/dnsmasq-adbyby.d/06-dnsmasq.esc - awk '!/^$/&&!/^#/{printf("address=/%s/'"0.0.0.0"'\n",$0)}' $PROG_PATH/adblack.conf > /var/etc/dnsmasq-adbyby.d/07-dnsmasq.black - cat > /tmp/dnsmasq.d/dnsmasq-adbyby.conf < $WAN_FILE - if ls /var/etc/dnsmasq-adbyby.d/* >/dev/null 2>&1; then - mkdir -p /tmp/dnsmasq.d - cp /usr/share/adbyby/dnsmasq.adblock /var/etc/dnsmasq-adbyby.d/04-dnsmasq.adblock - cp /usr/share/adbyby/dnsmasq.ads /var/etc/dnsmasq-adbyby.d/05-dnsmasq.ads - fi - fi - - sed -i '/mesu.apple.com/d' /etc/dnsmasq.conf && [ $block_ios -eq 1 ] && echo 'address=/mesu.apple.com/0.0.0.0' >> /etc/dnsmasq.conf -} - -del_dns() -{ - rm -f /tmp/dnsmasq.d/dnsmasq-adbyby.conf - rm -f /var/etc/dnsmasq-adbyby.d/* - rm -f /tmp/adbyby_host.conf -} - - -add_rule() -{ - $ipt_n -N ADBYBY - $ipt_n -A ADBYBY -d 0.0.0.0/8 -j RETURN - $ipt_n -A ADBYBY -d 10.0.0.0/8 -j RETURN - $ipt_n -A ADBYBY -d 127.0.0.0/8 -j RETURN - $ipt_n -A ADBYBY -d 169.254.0.0/16 -j RETURN - $ipt_n -A ADBYBY -d 172.16.0.0/12 -j RETURN - $ipt_n -A ADBYBY -d 192.168.0.0/16 -j RETURN - $ipt_n -A ADBYBY -d 224.0.0.0/4 -j RETURN - $ipt_n -A ADBYBY -d 240.0.0.0/4 -j RETURN - ip_rule - $ipt_n -A ADBYBY -p tcp -j REDIRECT --to-ports 8118 - $ipt_n -I PREROUTING -p tcp --dport 80 -j ADBYBY -} - -del_rule() -{ - $ipt_n -D PREROUTING -p tcp --dport 80 -j ADBYBY 2>/dev/null - $ipt_n -F ADBYBY 2>/dev/null - $ipt_n -X ADBYBY 2>/dev/null - iptables -D FORWARD -m set --match-set blockip dst -j DROP 2>/dev/null - iptables -D OUTPUT -m set --match-set blockip dst -j DROP 2>/dev/null - ipset -F adbyby_esc 2>/dev/null - ipset -X adbyby_esc 2>/dev/null - ipset -F adbyby_wan 2>/dev/null - ipset -X adbyby_wan 2>/dev/null - ipset -F blockip 2>/dev/null - ipset -X blockip 2>/dev/null -} - -reload_rule() -{ - config_load adbyby - config_foreach get_config adbyby - del_rule - iptables-save | grep ADBYBY >/dev/null || \ - add_rule -} - -start() -{ - config_load adbyby - config_foreach get_config adbyby - [ $enable -eq 0 ] && exit 0 - add_cron - if [ $mem_mode -eq 1 ]; then - echo "start mem mode" - if mount | grep adbyby >/dev/null 2>&1; then - echo "has mount" - else - echo "mount adbyby" - [ ! -d "/tmp/adbyby" ] && mkdir -p /tmp/adbyby && cp -a $PROG_PATH/data /tmp/adbyby/ - mount --bind /tmp/adbyby/data $PROG_PATH/data - fi - fi - echo "add adbyby rules" - add_rules - $PROG_PATH/adbyby &>/dev/null & - add_dns - iptables-save | grep ADBYBY >/dev/null || \ - add_rule - /etc/init.d/dnsmasq restart -} - -stop() -{ - config_load adbyby - config_foreach get_config adbyby - del_rule - del_cron - del_dns - killall -q adbyby - if [ $mem_mode -eq 1 ]; then - echo "stop mem mode" - if mount | grep adbyby >/dev/null 2>&1; then - echo "umount adbyby" - umount /usr/share/adbyby/data - fi - fi - /etc/init.d/dnsmasq restart -} - - -uci_get_by_name() { - local ret=$(uci get $CONFIG.$1.$2 2>/dev/null) - echo ${ret:=$3} -} - -uci_get_by_type() { - local index=0 - if [ -n $4 ]; then - - index=$4 - fi - local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) - echo ${ret:=$3} -} - diff --git a/package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh b/package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh deleted file mode 100755 index 683123e3a..000000000 --- a/package/lean/luci-app-adbyby-plus/root/etc/ppp/ip-up.d/adrulesup.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -sleep 30 && sh /usr/share/adbyby/adupdate.sh diff --git a/package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby b/package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby deleted file mode 100755 index fb4b36f39..000000000 --- a/package/lean/luci-app-adbyby-plus/root/etc/uci-defaults/adbyby +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@adbyby[-1] - add ucitrack adbyby - set ucitrack.@adbyby[-1].init=adbyby - commit ucitrack - delete firewall.adbyby - set firewall.adbyby=include - set firewall.adbyby.type=script - set firewall.adbyby.path=/usr/share/adbyby/firewall.include - set firewall.adbyby.reload=1 - commit firewall -EOF - -mkdir -p /etc/dnsmasq.d - -/etc/init.d/adbyby stop -/etc/init.d/adbyby enable - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblack.conf b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblack.conf deleted file mode 100644 index a532f5825..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblack.conf +++ /dev/null @@ -1,14 +0,0 @@ -gvod.aiseejapp.atianqi.com -stat.pandora.xiaomi.com -upgrade.mishop.pandora.xiaomi.com -logonext.tv.kuyun.com -config.kuyun.com -mishop.pandora.xiaomi.com -dvb.pandora.xiaomi.com -api.ad.xiaomi.com -de.pandora.xiaomi.com -data.mistat.xiaomi.com -jellyfish.pandora.xiaomi.com -gallery.pandora.xiaomi.com -o2o.api.xiaomi.com -bss.pandora.xiaomi.com diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblock.sh b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblock.sh deleted file mode 100755 index ebe7b6e6a..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adblock.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -rm -f /tmp/dnsmasq.adblock - -wget-ssl --no-check-certificate -O- https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt | grep ^\|\|[^\*]*\^$ | sed -e 's:||:address\=\/:' -e 's:\^:/0\.0\.0\.0:' > /tmp/dnsmasq.adblock -if [ -s "/tmp/dnsmasq.adblock" ];then - sed -i '/youku.com/d' /tmp/dnsmasq.adblock - if ( ! cmp -s /tmp/dnsmasq.adblock /usr/share/adbyby/dnsmasq.adblock );then - mv /tmp/dnsmasq.adblock /usr/share/adbyby/dnsmasq.adblock - fi -fi - -sh /usr/share/adbyby/adupdate.sh - - - - diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adesc.conf b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adesc.conf deleted file mode 100644 index c5898a128..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adesc.conf +++ /dev/null @@ -1,3 +0,0 @@ -weixin.qq.com -qpic.cn -imtt.qq.com diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adhost.conf b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adhost.conf deleted file mode 100644 index d14a7c50c..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adhost.conf +++ /dev/null @@ -1,69 +0,0 @@ -cbjs.baidu.com -list.video.baidu.com -nsclick.baidu.com -play.baidu.com -sclick.baidu.com -tieba.baidu.com -baidustatic.com -bdimg.com -bdstatic.com -share.baidu.com -hm.baidu.com -v.baidu.com -cpro.baidu.com -1000fr.net -atianqi.com -56.com -v-56.com -acfun.com -acfun.tv -baofeng.com -baofeng.net -cntv.cn -hoopchina.com.cn -funshion.com -fun.tv -hitvs.cn -hljtv.com -iqiyi.com -qiyi.com -agn.aty.sohu.com -itc.cn -kankan.com -ku6.com -letv.com -letvcloud.com -letvimg.com -pplive.cn -pps.tv -ppsimg.com -pptv.com -www.qq.com -l.qq.com -v.qq.com -video.sina.com.cn -tudou.com -wasu.cn -analytics-union.xunlei.com -kankan.xunlei.com -youku.com -hunantv.com -ifeng.com -renren.com -mediav.com -cnbeta.com -mydrivers.com -168f.info -doubleclick.net -126.net -sohu.com -163.com -right.com.cn -50bang.org -you85.cn -jiuzhilan.com -googles.com -cnbetacdn.com -ptqy.gitv.tv -admaster.com.cn -serving-sys.com \ No newline at end of file diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh deleted file mode 100755 index 0b8b617e6..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/adupdate.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -update_source=$(uci get adbyby.@adbyby[0].update_source 2>/dev/null) - -rm -f /usr/share/adbyby/data/*.bak - -if [ $update_source -eq 1 ]; then - #wget-ssl -t 1 -T 10 -O /tmp/lazy.txt http://update.adbyby.com/rule3/lazy.jpg - #wget-ssl -t 1 -T 10 -O /tmp/video.txt http://update.adbyby.com/rule3/video.jpg - #wget-ssl -t 1 -T 10 -O /tmp/user.action http://update.adbyby.com/rule3/user.action - wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/lazy.txt https://opt.cn2qq.com/opt-file/lazy.txt - wget-ssl --no-check-certificate -t 1 -T 10 -O /tmp/video.txt https://opt.cn2qq.com/opt-file/video.txt -fi - -[ ! -s "/tmp/lazy.txt" ] && wget-ssl --no-check-certificate -O /tmp/lazy.txt https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/lazy.txt -[ ! -s "/tmp/video.txt" ] && wget-ssl --no-check-certificate -O /tmp/video.txt https://raw.githubusercontent.com/adbyby/xwhyc-rules/master/video.txt - -[ -s "/tmp/lazy.txt" ] && ( ! cmp -s /tmp/lazy.txt /usr/share/adbyby/data/lazy.txt ) && mv /tmp/lazy.txt /usr/share/adbyby/data/lazy.txt -[ -s "/tmp/video.txt" ] && ( ! cmp -s /tmp/video.txt /usr/share/adbyby/data/video.txt ) && mv /tmp/video.txt /usr/share/adbyby/data/video.txt -[ -s "/tmp/user.action" ] && ( ! cmp -s /tmp/user.action /usr/share/adbyby/user.action ) && mv /tmp/user.action /usr/share/adbyby/user.action - -rm -f /tmp/lazy.txt /tmp/video.txt /tmp/user.action - -/etc/init.d/adbyby restart diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/blockip.conf b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/blockip.conf deleted file mode 100644 index 55cb84b53..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/blockip.conf +++ /dev/null @@ -1 +0,0 @@ -2.2.2.2 diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.adblock b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.adblock deleted file mode 100644 index 6f0950609..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.adblock +++ /dev/null @@ -1,940 +0,0 @@ -address=/a.youdao.com/0.0.0.0 -address=/adrs.sdo.com/0.0.0.0 -address=/hiad.myweb.hinet.net/0.0.0.0 -address=/log.interest.mix.sina.com.cn/0.0.0.0 -address=/tuiguang.178.com/0.0.0.0 -address=/0xxd.com/0.0.0.0 -address=/104.195.62.12/0.0.0.0 -address=/111.175.219.7/0.0.0.0 -address=/111111qb.com/0.0.0.0 -address=/112.124.98.75/0.0.0.0 -address=/116.55.227.242/0.0.0.0 -address=/122.227.254.195/0.0.0.0 -address=/123hala.com/0.0.0.0 -address=/139.159.32.82/0.0.0.0 -address=/182.92.81.104/0.0.0.0 -address=/1l1.cc/0.0.0.0 -address=/201071.com/0.0.0.0 -address=/2012ui.com/0.0.0.0 -address=/211.167.105.131/0.0.0.0 -address=/220.115.251.25/0.0.0.0 -address=/221.204.213.222/0.0.0.0 -address=/2m2n.com/0.0.0.0 -address=/360baidus.com/0.0.0.0 -address=/365bibi.com/0.0.0.0 -address=/365safego.com/0.0.0.0 -address=/366safego.com/0.0.0.0 -address=/36pn.com/0.0.0.0 -address=/3g.990.net/0.0.0.0 -address=/52kmk.com/0.0.0.0 -address=/58.215.179.159/0.0.0.0 -address=/61.152.223.15/0.0.0.0 -address=/68665565.com/0.0.0.0 -address=/6dvip.com/0.0.0.0 -address=/71sem.com/0.0.0.0 -address=/77power.com/0.0.0.0 -address=/7wen.cn/0.0.0.0 -address=/7xz3.com/0.0.0.0 -address=/81c.cn/0.0.0.0 -address=/85tgw.com/0.0.0.0 -address=/88rpg.net/0.0.0.0 -address=/892155.com/0.0.0.0 -address=/91ysa.com/0.0.0.0 -address=/91zgm.com/0.0.0.0 -address=/9377co.com/0.0.0.0 -address=/9377os.com/0.0.0.0 -address=/a907907.com/0.0.0.0 -address=/ad000000.com/0.0.0.0 -address=/adm-cnzz.net/0.0.0.0 -address=/ads.uc.cn/0.0.0.0 -address=/ajaxcdn.org/0.0.0.0 -address=/aliyuncss.com/0.0.0.0 -address=/aliyunxin.com/0.0.0.0 -address=/amazingmagics.com/0.0.0.0 -address=/aralego.com/0.0.0.0 -address=/at98.com/0.0.0.0 -address=/cangnews.com/0.0.0.0 -address=/caob5.info/0.0.0.0 -address=/cb.baidu.com/0.0.0.0 -address=/cbjs.baidu.com/0.0.0.0 -address=/cnxad.net/0.0.0.0 -address=/cnzz.com.so/0.0.0.0 -address=/code668.com/0.0.0.0 -address=/cpcv.cc/0.0.0.0 -address=/cpms.cc/0.0.0.0 -address=/cpro.baidu.com/0.0.0.0 -address=/cpro.baidustatic.com/0.0.0.0 -address=/cpv6.com/0.0.0.0 -address=/cpva.cc/0.0.0.0 -address=/crdrjs.info/0.0.0.0 -address=/csqiulong.com/0.0.0.0 -address=/ctsywy.com/0.0.0.0 -address=/cyacc.com/0.0.0.0 -address=/czpush.com/0.0.0.0 -address=/dashet.com/0.0.0.0 -address=/datafastguru.info/0.0.0.0 -address=/dou777.com/0.0.0.0 -address=/drmcmm.baidu.com/0.0.0.0 -address=/duiwai.baidu.com/0.0.0.0 -address=/dvr8.com/0.0.0.0 -address=/dw998.com/0.0.0.0 -address=/dxssiyi.com/0.0.0.0 -address=/e701.net/0.0.0.0 -address=/e70123.com/0.0.0.0 -address=/e708.net/0.0.0.0 -address=/e719.net/0.0.0.0 -address=/ecuc123.net/0.0.0.0 -address=/eiv.baidu.com/0.0.0.0 -address=/f1190.com/0.0.0.0 -address=/f6ce.com/0.0.0.0 -address=/f70123.com/0.0.0.0 -address=/fd7c.com/0.0.0.0 -address=/fjmeyer.com/0.0.0.0 -address=/fu68.com/0.0.0.0 -address=/fv99.com/0.0.0.0 -address=/gf108.com/0.0.0.0 -address=/gf1352.com/0.0.0.0 -address=/gm682.com/0.0.0.0 -address=/guduopu.com/0.0.0.0 -address=/gzmjnx.cn/0.0.0.0 -address=/gzqudou.com/0.0.0.0 -address=/hao123rt.com/0.0.0.0 -address=/haohaowan8.com/0.0.0.0 -address=/haolew.com/0.0.0.0 -address=/hfjuki.com/0.0.0.0 -address=/hmp33.com/0.0.0.0 -address=/hr44.com/0.0.0.0 -address=/humanding.com/0.0.0.0 -address=/i3818.com/0.0.0.0 -address=/ihualun.com/0.0.0.0 -address=/img80.net/0.0.0.0 -address=/jczzjx.com/0.0.0.0 -address=/jdlhg.com/0.0.0.0 -address=/jhzl001.com/0.0.0.0 -address=/jiyou2014.com/0.0.0.0 -address=/jk939.com/0.0.0.0 -address=/jlssbz.com/0.0.0.0 -address=/jnrsjm.com/0.0.0.0 -address=/johtzj.com/0.0.0.0 -address=/jwqj.net/0.0.0.0 -address=/jxjzny.com/0.0.0.0 -address=/keyyou.net/0.0.0.0 -address=/kingwam.com/0.0.0.0 -address=/kmadou.com/0.0.0.0 -address=/ku9377.com/0.0.0.0 -address=/lajizhan.org/0.0.0.0 -address=/le4le.com/0.0.0.0 -address=/lishuanghao.com/0.0.0.0 -address=/lzmm8.com/0.0.0.0 -address=/mainbx.com/0.0.0.0 -address=/mathads.com/0.0.0.0 -address=/mlt01.com/0.0.0.0 -address=/moodoocrv.com.cn/0.0.0.0 -address=/mscimg.com/0.0.0.0 -address=/nextcps.com/0.0.0.0 -address=/niuxgame77.com/0.0.0.0 -address=/notice.uchome.manyou.com/0.0.0.0 -address=/oikxlcv.wang/0.0.0.0 -address=/okm918.com/0.0.0.0 -address=/p3tt.com/0.0.0.0 -address=/pdsjycm.com/0.0.0.0 -address=/pos.baidu.com/0.0.0.0 -address=/qiqiww.com/0.0.0.0 -address=/qucaigg.com/0.0.0.0 -address=/re.taotaosou.com/0.0.0.0 -address=/ruxianke.com/0.0.0.0 -address=/rwjfs.com/0.0.0.0 -address=/sgbfjs.info/0.0.0.0 -address=/sharedaddomain.com/0.0.0.0 -address=/show.kc.taotaosou.com/0.0.0.0 -address=/si9377.com/0.0.0.0 -address=/socdm.com/0.0.0.0 -address=/spcode.baidu.com/0.0.0.0 -address=/sstc360.com/0.0.0.0 -address=/t70123.com/0.0.0.0 -address=/taat00889.com/0.0.0.0 -address=/tad.suning.com/0.0.0.0 -address=/tc600.com/0.0.0.0 -address=/tdayi.com/0.0.0.0 -address=/tg.1155t.cn/0.0.0.0 -address=/toourbb.com/0.0.0.0 -address=/ubmcmm.baidustatic.com/0.0.0.0 -address=/uoyrsd.com/0.0.0.0 -address=/v707070.com/0.0.0.0 -address=/victorjx.com/0.0.0.0 -address=/w65p.com/0.0.0.0 -address=/wdzsb.com.cn/0.0.0.0 -address=/winvestern.com.cn/0.0.0.0 -address=/wqsph.net/0.0.0.0 -address=/ws341.com/0.0.0.0 -address=/xa9t.com/0.0.0.0 -address=/xabaitai.com/0.0.0.0 -address=/xchgx.com/0.0.0.0 -address=/xcy8.com/0.0.0.0 -address=/xtxa.net/0.0.0.0 -address=/xxad.cc/0.0.0.0 -address=/xzyituo.com/0.0.0.0 -address=/yk0712.com/0.0.0.0 -address=/ymcqb.com/0.0.0.0 -address=/yqw88.com/0.0.0.0 -address=/yule8.net/0.0.0.0 -address=/yyp17.com/0.0.0.0 -address=/zgksb.com/0.0.0.0 -address=/zgunion.cn/0.0.0.0 -address=/zp22938576.com/0.0.0.0 -address=/120.27.34.156/0.0.0.0 -address=/122.228.236.165/0.0.0.0 -address=/125.46.61.28/0.0.0.0 -address=/192.184.10.171/0.0.0.0 -address=/218.65.30.232/0.0.0.0 -address=/27.255.67.120/0.0.0.0 -address=/32345sf.com/0.0.0.0 -address=/360safego.com/0.0.0.0 -address=/3dm.huya.com/0.0.0.0 -address=/5y9nfpes.52pk.com/0.0.0.0 -address=/654mmm.com/0.0.0.0 -address=/6d245gxt.52pk.com/0.0.0.0 -address=/7mad.7m.cn/0.0.0.0 -address=/801.tianyaui.com/0.0.0.0 -address=/86file.megajoy.com/0.0.0.0 -address=/8jkx.com/0.0.0.0 -address=/96.43.97.243/0.0.0.0 -address=/a-m-s.poco.cn/0.0.0.0 -address=/a.baomihua.com/0.0.0.0 -address=/a.xizi.com/0.0.0.0 -address=/a2.b310.com/0.0.0.0 -address=/a4.yeshj.com/0.0.0.0 -address=/a5.yeshj.com/0.0.0.0 -address=/a6.hujiang.com/0.0.0.0 -address=/abc.hkepc.com/0.0.0.0 -address=/acsystem.wasu.cn/0.0.0.0 -address=/ad.17173.com/0.0.0.0 -address=/ad.bjmama.net/0.0.0.0 -address=/adadmin.house365.com/0.0.0.0 -address=/add.dz19.net/0.0.0.0 -address=/adf.dahe.cn/0.0.0.0 -address=/adhome.1fangchan.com/0.0.0.0 -address=/adk.funshion.com/0.0.0.0 -address=/adm.265g.com/0.0.0.0 -address=/adm.72zx.com/0.0.0.0 -address=/adm.86wan.com/0.0.0.0 -address=/adm.bbcss.com/0.0.0.0 -address=/adm.funshion.com/0.0.0.0 -address=/adm.jjj8.cn/0.0.0.0 -address=/adm.qzbbs.com/0.0.0.0 -address=/adm.xmfish.com/0.0.0.0 -address=/adm.zbinfo.net/0.0.0.0 -address=/adm.zzfish.cn/0.0.0.0 -address=/admd.yam.com/0.0.0.0 -address=/adnetpub.yaolan.com/0.0.0.0 -address=/adp.cnool.net/0.0.0.0 -address=/adpub.yaolan.com/0.0.0.0 -address=/adpubs.yaolan.com/0.0.0.0 -address=/adsclick.yx.js.cn/0.0.0.0 -address=/adspending01.bwnet.com.tw/0.0.0.0 -address=/afp.chinanews.com/0.0.0.0 -address=/afp.wasu.cn/0.0.0.0 -address=/afpcreative.wasu.cn/0.0.0.0 -address=/ai.bioon.com/0.0.0.0 -address=/aid.chinayk.com/0.0.0.0 -address=/am.6park.com/0.0.0.0 -address=/am.szhome.com/0.0.0.0 -address=/app.acm.dzwww.com/0.0.0.0 -address=/as.sinahk.net/0.0.0.0 -address=/ashow.pcpop.com/0.0.0.0 -address=/bb345.com/0.0.0.0 -address=/besc.baidustatic.com/0.0.0.0 -address=/biz.gexing.com/0.0.0.0 -address=/biz.weibo.com/0.0.0.0 -address=/btn.onlylady.com/0.0.0.0 -address=/btn.pchome.net/0.0.0.0 -address=/business.92wy.com/0.0.0.0 -address=/by.7avz.com/0.0.0.0 -address=/cacafly.net/0.0.0.0 -address=/cachead.com/0.0.0.0 -address=/cdn.wdlm.cn/0.0.0.0 -address=/chidir.com/0.0.0.0 -address=/cps.okbuy.com/0.0.0.0 -address=/d.107788.com/0.0.0.0 -address=/d.taomato.com/0.0.0.0 -address=/d0.xcar.com.cn/0.0.0.0 -address=/dd.xdnice.com/0.0.0.0 -address=/de.as.pptv.com/0.0.0.0 -address=/dfad.dfdaily.com/0.0.0.0 -address=/dg.073img.com/0.0.0.0 -address=/doubleclick.tv002.com/0.0.0.0 -address=/dvs.china.com/0.0.0.0 -address=/dvser.china.com/0.0.0.0 -address=/e.yycqc.com/0.0.0.0 -address=/eap.big5.enorth.com.cn/0.0.0.0 -address=/eap.enorth.com.cn/0.0.0.0 -address=/ebp.renren.com/0.0.0.0 -address=/ecma.bdimg.com/0.0.0.0 -address=/ecmb.bdimg.com/0.0.0.0 -address=/fun.ynet.com/0.0.0.0 -address=/g.gxorg.com/0.0.0.0 -address=/g.hsw.cn/0.0.0.0 -address=/g.ousns.net/0.0.0.0 -address=/g1.0573ren.com/0.0.0.0 -address=/g2.ousns.net/0.0.0.0 -address=/ganjituiguang.ganji.com/0.0.0.0 -address=/gdt.qq.com/0.0.0.0 -address=/get.766.com/0.0.0.0 -address=/gg.0598yu.com/0.0.0.0 -address=/gg.18183.com/0.0.0.0 -address=/gg.cs090.com/0.0.0.0 -address=/gg.gao7.com/0.0.0.0 -address=/gg.kugou.com/0.0.0.0 -address=/gg.sonhoo.com/0.0.0.0 -address=/gg.yxdown.com/0.0.0.0 -address=/ggg.zj.com/0.0.0.0 -address=/ggw.gusuwang.com/0.0.0.0 -address=/ggw.watertu.com/0.0.0.0 -address=/ggyq.xdkb.net/0.0.0.0 -address=/go.hangzhou.com.cn/0.0.0.0 -address=/goto.www.iciba.com/0.0.0.0 -address=/gqgc.sz.zj.cn/0.0.0.0 -address=/groupa.onlylady.com/0.0.0.0 -address=/gsspcln.jp/0.0.0.0 -address=/gt.yy.com/0.0.0.0 -address=/guess.h.qhimg.com/0.0.0.0 -address=/haxiu.miaotiao.com/0.0.0.0 -address=/hdad.baike.com/0.0.0.0 -address=/hiad.vmall.com/0.0.0.0 -address=/hz.shouyoutv.com/0.0.0.0 -address=/hzhyhm.com/0.0.0.0 -address=/i.syasn.com/0.0.0.0 -address=/iads.xinmin.cn/0.0.0.0 -address=/idcot.com/0.0.0.0 -address=/ifx.aifang.com/0.0.0.0 -address=/image.6park.com/0.0.0.0 -address=/image.9duw.com/0.0.0.0 -address=/image.hh010.com/0.0.0.0 -address=/image.lepan.cc/0.0.0.0 -address=/images.chinaz.com/0.0.0.0 -address=/images.gxsky.com/0.0.0.0 -address=/img.3sjt.com/0.0.0.0 -address=/img.9duw.com/0.0.0.0 -address=/img1.126.net/0.0.0.0 -address=/img2.126.net/0.0.0.0 -address=/img2.www.fmdisk.com/0.0.0.0 -address=/inte.sogou.com/0.0.0.0 -address=/iwanad.baidu.com/0.0.0.0 -address=/j.6avz.com/0.0.0.0 -address=/j.7avz.com/0.0.0.0 -address=/ja.gamersky.com/0.0.0.0 -address=/jmsyzj.com/0.0.0.0 -address=/js-1.pchome.net/0.0.0.0 -address=/js.duotegame.com/0.0.0.0 -address=/js.leshen.com/0.0.0.0 -address=/js.pub.tom.com/0.0.0.0 -address=/js.youxi369.com/0.0.0.0 -address=/jxad.jx163.com/0.0.0.0 -address=/knnwdyou.com/0.0.0.0 -address=/leiqun.snxyf.com/0.0.0.0 -address=/life.e0575.com/0.0.0.0 -address=/lingdian98.com/0.0.0.0 -address=/link.fobshanghai.com/0.0.0.0 -address=/lxting.com/0.0.0.0 -address=/m.aty.sohu.com/0.0.0.0 -address=/manads.static.olcdn.com/0.0.0.0 -address=/manage.wdfans.cn/0.0.0.0 -address=/market.178.com/0.0.0.0 -address=/market.21cn.com/0.0.0.0 -address=/market.duowan.com/0.0.0.0 -address=/media.cheshi-img.com/0.0.0.0 -address=/money.qz828.com/0.0.0.0 -address=/myad.toocle.com/0.0.0.0 -address=/ok.432kkk.com/0.0.0.0 -address=/p.szonline.net/0.0.0.0 -address=/p.zol-img.com.cn/0.0.0.0 -address=/p4p.sina.com.cn/0.0.0.0 -address=/p8u.hinet.net/0.0.0.0 -address=/panda.kdnet.net/0.0.0.0 -address=/pcs1.app.joy.cn/0.0.0.0 -address=/phpad.cqnews.net/0.0.0.0 -address=/pic.0597kk.com/0.0.0.0 -address=/pic.111cn.net/0.0.0.0 -address=/pic.2u.com.cn/0.0.0.0 -address=/pic.ea3w.com/0.0.0.0 -address=/pic.fengniao.com/0.0.0.0 -address=/pic.taian.com/0.0.0.0 -address=/pic.xgo-img.com.cn/0.0.0.0 -address=/playad.xjmg.com/0.0.0.0 -address=/poster.weather.com.cn/0.0.0.0 -address=/pp.7060.la/0.0.0.0 -address=/pro.iweihai.cn/0.0.0.0 -address=/pub.funshion.com/0.0.0.0 -address=/pub.mop.com/0.0.0.0 -address=/publicize.liao1.com/0.0.0.0 -address=/publish.ad.youth.cn/0.0.0.0 -address=/res.hunantv.com/0.0.0.0 -address=/rh.qq.com/0.0.0.0 -address=/same.chinadaily.com.cn/0.0.0.0 -address=/same.eastmoney.com/0.0.0.0 -address=/same.stockstar.com/0.0.0.0 -address=/sc.tom.com/0.0.0.0 -address=/sgg.southcn.com/0.0.0.0 -address=/share.gzdsw.com/0.0.0.0 -address=/shenleyuni.com/0.0.0.0 -address=/shows.21cn.com/0.0.0.0 -address=/so.6949.com/0.0.0.0 -address=/sss.sege.xxx/0.0.0.0 -address=/static.yujiehenaishang.com/0.0.0.0 -address=/sub.powerapple.com/0.0.0.0 -address=/super.cat898.com/0.0.0.0 -address=/super.kdnet.net/0.0.0.0 -address=/synacast.com/0.0.0.0 -address=/tf.360.cn/0.0.0.0 -address=/tg.delnapb.com/0.0.0.0 -address=/tk.504pk.com/0.0.0.0 -address=/tp.sgcn.com/0.0.0.0 -address=/u.63kc.com/0.0.0.0 -address=/u.cnzol.com/0.0.0.0 -address=/union.china.com.cn/0.0.0.0 -address=/untitled.dwstatic.com/0.0.0.0 -address=/up.hiao.com/0.0.0.0 -address=/v-56.com/0.0.0.0 -address=/vas.funshion.com/0.0.0.0 -address=/vupload.duowan.com/0.0.0.0 -address=/web.900.la/0.0.0.0 -address=/xc.macd.cn/0.0.0.0 -address=/xs.houyi.baofeng.net/0.0.0.0 -address=/yktj.yzz.cn/0.0.0.0 -address=/zo66.com/0.0.0.0 -address=/zt2088.com/0.0.0.0 -address=/146.148.85.61/0.0.0.0 -address=/hdapp1003-a.akamaihd.net/0.0.0.0 -address=/hdapp1008-a.akamaihd.net/0.0.0.0 -address=/hdsrc-a.akamaihd.net/0.0.0.0 -address=/46.165.197.153/0.0.0.0 -address=/46.165.197.231/0.0.0.0 -address=/74.117.182.77/0.0.0.0 -address=/78.140.131.214/0.0.0.0 -address=/clkrev.com/0.0.0.0 -address=/a.livesportmedia.eu/0.0.0.0 -address=/a.ucoz.net/0.0.0.0 -address=/a.watershed-publishing.com/0.0.0.0 -address=/a04296f070c0146f314d-0dcad72565cb350972beb3666a86f246.r50.cf5.rackcdn.com/0.0.0.0 -address=/ad.about.co.kr/0.0.0.0 -address=/ad.accessmediaproductions.com/0.0.0.0 -address=/ad.bitmedia.io/0.0.0.0 -address=/ad.flux.com/0.0.0.0 -address=/ad.foxnetworks.com/0.0.0.0 -address=/ad.icasthq.com/0.0.0.0 -address=/ad.idgtn.net/0.0.0.0 -address=/ad.jamba.net/0.0.0.0 -address=/ad.livere.co.kr/0.0.0.0 -address=/ad.mail.ru/0.0.0.0 -address=/ad.mesomorphosis.com/0.0.0.0 -address=/ad.openmultimedia.biz/0.0.0.0 -address=/ad.outsidehub.com/0.0.0.0 -address=/ad.pickple.net/0.0.0.0 -address=/ad.proxy.sh/0.0.0.0 -address=/ad.r.worldssl.net/0.0.0.0 -address=/ad.rambler.ru/0.0.0.0 -address=/ad.reklamport.com/0.0.0.0 -address=/ad.sensismediasmart.com.au/0.0.0.0 -address=/ad.smartclip.net/0.0.0.0 -address=/ad.spielothek.so/0.0.0.0 -address=/ad.vidaroo.com/0.0.0.0 -address=/ad.winningpartner.com/0.0.0.0 -address=/add.bugun.com.tr/0.0.0.0 -address=/adingo.jp.eimg.jp/0.0.0.0 -address=/adn.ebay.com/0.0.0.0 -address=/adplus.goo.mx/0.0.0.0 -address=/ads.mp.mydas.mobi/0.0.0.0 -address=/adscaspion.appspot.com/0.0.0.0 -address=/adss.dotdo.net/0.0.0.0 -address=/adz.zwee.ly/0.0.0.0 -address=/aff.eteachergroup.com/0.0.0.0 -address=/aff.marathonbet.com/0.0.0.0 -address=/aff.svjump.com/0.0.0.0 -address=/affil.mupromo.com/0.0.0.0 -address=/affiliateprogram.keywordspy.com/0.0.0.0 -address=/affiliates.allposters.com/0.0.0.0 -address=/affiliatesmedia.sbobet.com/0.0.0.0 -address=/affiliation.fotovista.com/0.0.0.0 -address=/agenda.complex.com/0.0.0.0 -address=/airpushmarketing.s3.amazonaws.com/0.0.0.0 -address=/ais.abacast.com/0.0.0.0 -address=/analytics.disneyinternational.com/0.0.0.0 -address=/ard.ihookup.com/0.0.0.0 -address=/award.sitekeuring.net/0.0.0.0 -address=/b.babylon.com/0.0.0.0 -address=/b.livesport.eu/0.0.0.0 -address=/b92.putniktravel.com/0.0.0.0 -address=/banner.101xp.com/0.0.0.0 -address=/banner.3ddownloads.com/0.0.0.0 -address=/banner.europacasino.com/0.0.0.0 -address=/banner.telefragged.com/0.0.0.0 -address=/banner.titancasino.com/0.0.0.0 -address=/bl.wavecdn.de/0.0.0.0 -address=/blamads-assets.s3.amazonaws.com/0.0.0.0 -address=/bluhostedbanners.blucigs.com/0.0.0.0 -address=/box.anchorfree.net/0.0.0.0 -address=/btr.domywife.com/0.0.0.0 -address=/c.netu.tv/0.0.0.0 -address=/cas.clickability.com/0.0.0.0 -address=/cash.neweramediaworks.com/0.0.0.0 -address=/cerebral.typn.com/0.0.0.0 -address=/cjmooter.xcache.kinxcdn.com/0.0.0.0 -address=/clarity.abacast.com/0.0.0.0 -address=/click.eyk.net/0.0.0.0 -address=/clickstrip.6wav.es/0.0.0.0 -address=/connect.summit.co.uk/0.0.0.0 -address=/content.livesportmedia.eu/0.0.0.0 -address=/cpm.amateurcommunity.de/0.0.0.0 -address=/creatives.inmotionhosting.com/0.0.0.0 -address=/creatives.summitconnect.co.uk/0.0.0.0 -address=/d13czkep7ax7nj.cloudfront.net/0.0.0.0 -address=/d140sbu1b1m3h0.cloudfront.net/0.0.0.0 -address=/d15565yqt7pv7r.cloudfront.net/0.0.0.0 -address=/d15gt9gwxw5wu0.cloudfront.net/0.0.0.0 -address=/d17f2fxw547952.cloudfront.net/0.0.0.0 -address=/d19972r8wdpby8.cloudfront.net/0.0.0.0 -address=/d1ade4ciw4bqyc.cloudfront.net/0.0.0.0 -address=/d1cl1sqtf3o420.cloudfront.net/0.0.0.0 -address=/d1d95giojjkirt.cloudfront.net/0.0.0.0 -address=/d1ep3cn6qx0l3z.cloudfront.net/0.0.0.0 -address=/d1ey3fksimezm4.cloudfront.net/0.0.0.0 -address=/d1fo96xm8fci0r.cloudfront.net/0.0.0.0 -address=/d1gojtoka5qi10.cloudfront.net/0.0.0.0 -address=/d1k74lgicilrr3.cloudfront.net/0.0.0.0 -address=/d1noellhv8fksc.cloudfront.net/0.0.0.0 -address=/d1pcttwib15k25.cloudfront.net/0.0.0.0 -address=/d1pdpbxj733bb1.cloudfront.net/0.0.0.0 -address=/d1spb7fplenrp4.cloudfront.net/0.0.0.0 -address=/d1vbm0eveofcle.cloudfront.net/0.0.0.0 -address=/d1zgderxoe1a.cloudfront.net/0.0.0.0 -address=/d23guct4biwna6.cloudfront.net/0.0.0.0 -address=/d23nyyb6dc29z6.cloudfront.net/0.0.0.0 -address=/d25ruj6ht8bs1.cloudfront.net/0.0.0.0 -address=/d25xkbr68qqtcn.cloudfront.net/0.0.0.0 -address=/d26dzd2k67we08.cloudfront.net/0.0.0.0 -address=/d26j9bp9bq4uhd.cloudfront.net/0.0.0.0 -address=/d26wy0pxd3qqpv.cloudfront.net/0.0.0.0 -address=/d27jt7xr4fq3e8.cloudfront.net/0.0.0.0 -address=/d287x05ve9a63s.cloudfront.net/0.0.0.0 -address=/d29r6igjpnoykg.cloudfront.net/0.0.0.0 -address=/d2anfhdgjxf8s1.cloudfront.net/0.0.0.0 -address=/d2b2x1ywompm1b.cloudfront.net/0.0.0.0 -address=/d2b65ihpmocv7w.cloudfront.net/0.0.0.0 -address=/d2bgg7rjywcwsy.cloudfront.net/0.0.0.0 -address=/d2cxkkxhecdzsq.cloudfront.net/0.0.0.0 -address=/d2d2lbvq8xirbs.cloudfront.net/0.0.0.0 -address=/d2dxgm96wvaa5j.cloudfront.net/0.0.0.0 -address=/d2gpgaupalra1d.cloudfront.net/0.0.0.0 -address=/d2gtlljtkeiyzd.cloudfront.net/0.0.0.0 -address=/d2gz6iop9uxobu.cloudfront.net/0.0.0.0 -address=/d2hap2bsh1k9lw.cloudfront.net/0.0.0.0 -address=/d2ipklohrie3lo.cloudfront.net/0.0.0.0 -address=/d2mic0r0bo3i6z.cloudfront.net/0.0.0.0 -address=/d2mq0uzafv8ytp.cloudfront.net/0.0.0.0 -address=/d2nlytvx51ywh9.cloudfront.net/0.0.0.0 -address=/d2o307dm5mqftz.cloudfront.net/0.0.0.0 -address=/d2oallm7wrqvmi.cloudfront.net/0.0.0.0 -address=/d2omcicc3a4zlg.cloudfront.net/0.0.0.0 -address=/d2pgy8h4i30on1.cloudfront.net/0.0.0.0 -address=/d2plxos94peuwp.cloudfront.net/0.0.0.0 -address=/d2r359adnh3sfn.cloudfront.net/0.0.0.0 -address=/d2s64zaa9ua7uv.cloudfront.net/0.0.0.0 -address=/d2tgev5wuprbqq.cloudfront.net/0.0.0.0 -address=/d2tnimpzlb191i.cloudfront.net/0.0.0.0 -address=/d2ubicnllnnszy.cloudfront.net/0.0.0.0 -address=/d2ue9k1rhsumed.cloudfront.net/0.0.0.0 -address=/d2v4glj2m8yzg5.cloudfront.net/0.0.0.0 -address=/d2v9ajh2eysdau.cloudfront.net/0.0.0.0 -address=/d2vt6q0n0iy66w.cloudfront.net/0.0.0.0 -address=/d2yhukq7vldf1u.cloudfront.net/0.0.0.0 -address=/d2z1smm3i01tnr.cloudfront.net/0.0.0.0 -address=/d31807xkria1x4.cloudfront.net/0.0.0.0 -address=/d32pxqbknuxsuy.cloudfront.net/0.0.0.0 -address=/d33f10u0pfpplc.cloudfront.net/0.0.0.0 -address=/d33otidwg56k90.cloudfront.net/0.0.0.0 -address=/d34obr29voew8l.cloudfront.net/0.0.0.0 -address=/d34rdvn2ky3gnm.cloudfront.net/0.0.0.0 -address=/d37kzqe5knnh6t.cloudfront.net/0.0.0.0 -address=/d38pxm3dmrdu6d.cloudfront.net/0.0.0.0 -address=/d38r21vtgndgb1.cloudfront.net/0.0.0.0 -address=/d39xqloz8t5a6x.cloudfront.net/0.0.0.0 -address=/d3bvcf24wln03d.cloudfront.net/0.0.0.0 -address=/d3dphmosjk9rot.cloudfront.net/0.0.0.0 -address=/d3f9mcik999dte.cloudfront.net/0.0.0.0 -address=/d3fzrm6pcer44x.cloudfront.net/0.0.0.0 -address=/d3irruagotonpp.cloudfront.net/0.0.0.0 -address=/d3iwjrnl4m67rd.cloudfront.net/0.0.0.0 -address=/d3lvr7yuk4uaui.cloudfront.net/0.0.0.0 -address=/d3lzezfa753mqu.cloudfront.net/0.0.0.0 -address=/d3m41swuqq4sv5.cloudfront.net/0.0.0.0 -address=/d3nvrqlo8rj1kw.cloudfront.net/0.0.0.0 -address=/d3p9ql8flgemg7.cloudfront.net/0.0.0.0 -address=/d3pkae9owd2lcf.cloudfront.net/0.0.0.0 -address=/d3q2dpprdsteo.cloudfront.net/0.0.0.0 -address=/d3qszud4qdthr8.cloudfront.net/0.0.0.0 -address=/d3t2wca0ou3lqz.cloudfront.net/0.0.0.0 -address=/d3t9ip55bsuxrf.cloudfront.net/0.0.0.0 -address=/d3tdefw8pwfkbk.cloudfront.net/0.0.0.0 -address=/d3vc1nm9xbncz5.cloudfront.net/0.0.0.0 -address=/d5pvnbpawsaav.cloudfront.net/0.0.0.0 -address=/d6bdy3eto8fyu.cloudfront.net/0.0.0.0 -address=/d8qy7md4cj3gz.cloudfront.net/0.0.0.0 -address=/dal9hkyfi0m0n.cloudfront.net/0.0.0.0 -address=/dart.clearchannel.com/0.0.0.0 -address=/dasfdasfasdf.no-ip.info/0.0.0.0 -address=/data.neuroxmedia.com/0.0.0.0 -address=/dbam.dashbida.com/0.0.0.0 -address=/ddwht76d9jvfl.cloudfront.net/0.0.0.0 -address=/dew9ckzjyt2gn.cloudfront.net/0.0.0.0 -address=/dff7tx5c2qbxc.cloudfront.net/0.0.0.0 -address=/display.digitalriver.com/0.0.0.0 -address=/disy2s34euyqm.cloudfront.net/0.0.0.0 -address=/dizixdllzznrf.cloudfront.net/0.0.0.0 -address=/djlf5xdlz7m8m.cloudfront.net/0.0.0.0 -address=/dkd69bwkvrht1.cloudfront.net/0.0.0.0 -address=/dkdwv3lcby5zi.cloudfront.net/0.0.0.0 -address=/dl392qndlveq0.cloudfront.net/0.0.0.0 -address=/dl5v5atodo7gn.cloudfront.net/0.0.0.0 -address=/dlupv9uqtjlie.cloudfront.net/0.0.0.0 -address=/dm0acvguygm9h.cloudfront.net/0.0.0.0 -address=/dm8srf206hien.cloudfront.net/0.0.0.0 -address=/dp51h10v6ggpa.cloudfront.net/0.0.0.0 -address=/dpsq2uzakdgqz.cloudfront.net/0.0.0.0 -address=/dq2tgxnc2knif.cloudfront.net/0.0.0.0 -address=/dqhi3ea93ztgv.cloudfront.net/0.0.0.0 -address=/dr8pk6ovub897.cloudfront.net/0.0.0.0 -address=/duct5ntjian71.cloudfront.net/0.0.0.0 -address=/dvf2u7vwmkr5w.cloudfront.net/0.0.0.0 -address=/dvt4pepo9om3r.cloudfront.net/0.0.0.0 -address=/dx5qvhwg92mjd.cloudfront.net/0.0.0.0 -address=/dxq6c0tx3v6mm.cloudfront.net/0.0.0.0 -address=/dxqd86uz345mg.cloudfront.net/0.0.0.0 -address=/dy48bnzanqw0v.cloudfront.net/0.0.0.0 -address=/dycpc40hvg4ki.cloudfront.net/0.0.0.0 -address=/dyl3p6so5yozo.cloudfront.net/0.0.0.0 -address=/epowernetworktrackerimages.s3.amazonaws.com/0.0.0.0 -address=/euwidget.imshopping.com/0.0.0.0 -address=/events.kalooga.com/0.0.0.0 -address=/ext.theglobalweb.com/0.0.0.0 -address=/feeds.logicbuy.com/0.0.0.0 -address=/ft.pnop.com/0.0.0.0 -address=/gateway.fortunelounge.com/0.0.0.0 -address=/gateways.s3.amazonaws.com/0.0.0.0 -address=/geo.connexionsecure.com/0.0.0.0 -address=/geobanner.friendfinder.com/0.0.0.0 -address=/geobanner.passion.com/0.0.0.0 -address=/gfaf-banners.s3.amazonaws.com/0.0.0.0 -address=/homad-global-configs.schneevonmorgen.com/0.0.0.0 -address=/im.ov.yahoo.co.jp/0.0.0.0 -address=/ima3vpaid.appspot.com/0.0.0.0 -address=/indieclick.3janecdn.com/0.0.0.0 -address=/inskin.vo.llnwd.net/0.0.0.0 -address=/k2team.kyiv.ua/0.0.0.0 -address=/mads.aol.com/0.0.0.0 -address=/marketing.888.com/0.0.0.0 -address=/mb.zam.com/0.0.0.0 -address=/mozo-widgets.f2.com.au/0.0.0.0 -address=/network.aufeminin.com/0.0.0.0 -address=/network.business.com/0.0.0.0 -address=/oclasrv.comindex-2.htmlapu.php/0.0.0.0 -address=/odin.goo.mx/0.0.0.0 -address=/on.maxspeedcdn.com/0.0.0.0 -address=/ox-i.cordillera.tv/0.0.0.0 -address=/partner.bargaindomains.com/0.0.0.0 -address=/partner.catchy.com/0.0.0.0 -address=/partner.premiumdomains.com/0.0.0.0 -address=/partnerads.ysm.yahoo.com/0.0.0.0 -address=/partnerads1.ysm.yahoo.com/0.0.0.0 -address=/partners.fshealth.com/0.0.0.0 -address=/partners.optiontide.com/0.0.0.0 -address=/partners.rochen.com/0.0.0.0 -address=/partners.sportingbet.com.au/0.0.0.0 -address=/partners.vouchedfor.co.uk/0.0.0.0 -address=/partners.xpertmarket.com/0.0.0.0 -address=/priceinfo.comuv.com/0.0.0.0 -address=/promos.fling.com/0.0.0.0 -address=/promote.pair.com/0.0.0.0 -address=/promotions.iasbet.com/0.0.0.0 -address=/pub.betclick.com/0.0.0.0 -address=/pubs.hiddennetwork.com/0.0.0.0 -address=/rack.bauermedia.co.uk/0.0.0.0 -address=/res3.feedsportal.com/0.0.0.0 -address=/revealads.appspot.com/0.0.0.0 -address=/rotabanner.kulichki.net/0.0.0.0 -address=/rotator.tradetracker.net/0.0.0.0 -address=/s-yoolk-banner-assets.yoolk.com/0.0.0.0 -address=/s-yoolk-billboard-assets.yoolk.com/0.0.0.0 -address=/secretmedia.s3.amazonaws.com/0.0.0.0 -address=/servedby.keygamesnetwork.com/0.0.0.0 -address=/sitescout-video-cdn.edgesuite.net/0.0.0.0 -address=/slot.union.ucweb.com/0.0.0.0 -address=/smart.styria-digital.com/0.0.0.0 -address=/squarespace.evyy.net/0.0.0.0 -address=/stats.hosting24.com/0.0.0.0 -address=/stats.sitesuite.org/0.0.0.0 -address=/stuff-nzwhistleout.s3.amazonaws.com/0.0.0.0 -address=/survey.g.doubleclick.net/0.0.0.0 -address=/syndication.jsadapi.com/0.0.0.0 -address=/syndication1.viraladnetwork.net/0.0.0.0 -address=/tap.more-results.net/0.0.0.0 -address=/ti.tradetracker.net/0.0.0.0 -address=/track.bcvcmedia.com/0.0.0.0 -address=/twinplan.com/0.0.0.0 -address=/vendor1.fitschigogerl.com/0.0.0.0 -address=/web-jp.ad-v.jp/0.0.0.0 -address=/whistleout.s3.amazonaws.com/0.0.0.0 -address=/widget.crowdignite.com/0.0.0.0 -address=/widget.kelkoo.com/0.0.0.0 -address=/widget.raaze.com/0.0.0.0 -address=/widget.searchschoolsnetwork.com/0.0.0.0 -address=/widget.shopstyle.com.au/0.0.0.0 -address=/widget.solarquotes.com.au/0.0.0.0 -address=/widgets.realestate.com.au/0.0.0.0 -address=/wtpn.twenga.co.uk/0.0.0.0 -address=/wtpn.twenga.de/0.0.0.0 -address=/yb.torchbrowser.com/0.0.0.0 -address=/yeas.yahoo.co.jp/0.0.0.0 -address=/zapads.zapak.com/0.0.0.0 -address=/zeus.qj.net/0.0.0.0 -address=/iadc.qwapi.com/0.0.0.0 -address=/d1nmk7iw7hajjn.cloudfront.net/0.0.0.0 -address=/ad.duga.jp/0.0.0.0 -address=/ad.iloveinterracial.com/0.0.0.0 -address=/ads.videosz.com/0.0.0.0 -address=/affiliates.thrixxx.com/0.0.0.0 -address=/ard.sweetdiscreet.com/0.0.0.0 -address=/bannershotlink.perfectgonzo.com/0.0.0.0 -address=/blaaaa12.googlecode.com/0.0.0.0 -address=/br.blackfling.com/0.0.0.0 -address=/br.fling.com/0.0.0.0 -address=/br.realitykings.com/0.0.0.0 -address=/cpm.amateurcommunity.com/0.0.0.0 -address=/dailyvideo.securejoin.com/0.0.0.0 -address=/desk.cmix.org/0.0.0.0 -address=/feeds.videosz.com/0.0.0.0 -address=/ff.nsg.org.ua/0.0.0.0 -address=/freexxxvideoclip.aebn.net/0.0.0.0 -address=/geo.cliphunter.com/0.0.0.0 -address=/geo.frtya.com/0.0.0.0 -address=/geobanner.adultfriendfinder.com/0.0.0.0 -address=/geobanner.alt.com/0.0.0.0 -address=/geobanner.socialflirt.com/0.0.0.0 -address=/partners.pornerbros.com/0.0.0.0 -address=/s1magnettvcom.maynemyltf.netdna-cdn.com/0.0.0.0 -address=/surv.xbizmedia.com/0.0.0.0 -address=/sweet.game-rust.ru/0.0.0.0 -address=/widgets.comcontent.net/0.0.0.0 -address=/widgetssec.cam-content.com/0.0.0.0 -address=/a.cdngeek.net/0.0.0.0 -address=/a.clipconverter.cc/0.0.0.0 -address=/a.giantrealm.com/0.0.0.0 -address=/a.i-sgcm.com/0.0.0.0 -address=/a.kat.cr/0.0.0.0 -address=/a.kickass.to/0.0.0.0 -address=/a.lolwot.com/0.0.0.0 -address=/ac2.msn.com/0.0.0.0 -address=/access.njherald.com/0.0.0.0 -address=/ad.cooks.com/0.0.0.0 -address=/ad.digitimes.com.tw/0.0.0.0 -address=/ad.directmirror.com/0.0.0.0 -address=/ad.download.cnet.com/0.0.0.0 -address=/ad.evozi.com/0.0.0.0 -address=/ad.fnnews.com/0.0.0.0 -address=/ad.jamster.com/0.0.0.0 -address=/ad.lyricswire.com/0.0.0.0 -address=/ad.mangareader.net/0.0.0.0 -address=/ad.newegg.com/0.0.0.0 -address=/ad.pandora.tv/0.0.0.0 -address=/ad.reachlocal.com/0.0.0.0 -address=/ad.search.ch/0.0.0.0 -address=/ad.services.distractify.com/0.0.0.0 -address=/adcitrus.com/0.0.0.0 -address=/addirector.vindicosuite.com/0.0.0.0 -address=/adds.weatherology.com/0.0.0.0 -address=/adlink.shopsafe.co.nz/0.0.0.0 -address=/admeta.vo.llnwd.net/0.0.0.0 -address=/ads-rolandgarros.com/0.0.0.0 -address=/ads.pof.com/0.0.0.0 -address=/ads.yahoo.com/0.0.0.0 -address=/ads.zynga.com/0.0.0.0 -address=/adsatt.abcnews.starwave.com/0.0.0.0 -address=/adsatt.espn.starwave.com/0.0.0.0 -address=/adshare.freedocast.com/0.0.0.0 -address=/adsor.openrunner.com/0.0.0.0 -address=/adss.yahoo.com/0.0.0.0 -address=/adstil.indiatimes.com/0.0.0.0 -address=/adtest.theonion.com/0.0.0.0 -address=/advertise.twitpic.com/0.0.0.0 -address=/advice-ads-cdn.vice.com/0.0.0.0 -address=/adx.kat.ph/0.0.0.0 -address=/aff.lmgtfy.com/0.0.0.0 -address=/ajnad.aljazeera.net/0.0.0.0 -address=/amz.steamprices.com/0.0.0.0 -address=/analytics.mmosite.com/0.0.0.0 -address=/as.inbox.com/0.0.0.0 -address=/asd.projectfreetv.so/0.0.0.0 -address=/avpa.dzone.com/0.0.0.0 -address=/b.localpages.com/0.0.0.0 -address=/b.thefile.me/0.0.0.0 -address=/ba.ccm2.net/0.0.0.0 -address=/ba.kioskea.net/0.0.0.0 -address=/banner.automotiveworld.com/0.0.0.0 -address=/banner.itweb.co.za/0.0.0.0 -address=/banners.beevpn.com/0.0.0.0 -address=/banners.beted.com/0.0.0.0 -address=/banners.clubworldgroup.com/0.0.0.0 -address=/banners.expressindia.com/0.0.0.0 -address=/banners.i-comers.com/0.0.0.0 -address=/banners.itweb.co.za/0.0.0.0 -address=/banners.playocio.com/0.0.0.0 -address=/beap.gemini.yahoo.com/0.0.0.0 -address=/bizanti.youwatch.org/0.0.0.0 -address=/bnrs.ilm.ee/0.0.0.0 -address=/bwp.theinsider.com.com/0.0.0.0 -address=/cadvv.heraldm.com/0.0.0.0 -address=/cadvv.koreaherald.com/0.0.0.0 -address=/canvas.thenextweb.com/0.0.0.0 -address=/click.livedoor.com/0.0.0.0 -address=/clicks.superpages.com/0.0.0.0 -address=/cnetwidget.creativemark.co.uk/0.0.0.0 -address=/collector.viki.io/0.0.0.0 -address=/creatives.livejasmin.com/0.0.0.0 -address=/d.annarbor.com/0.0.0.0 -address=/d.businessinsider.com/0.0.0.0 -address=/d.gossipcenter.com/0.0.0.0 -address=/d.thelocal.com/0.0.0.0 -address=/dads.new.digg.com/0.0.0.0 -address=/dailydeals.amarillo.com/0.0.0.0 -address=/dailydeals.augustachronicle.com/0.0.0.0 -address=/dailydeals.brainerddispatch.com/0.0.0.0 -address=/dailydeals.lubbockonline.com/0.0.0.0 -address=/dailydeals.onlineathens.com/0.0.0.0 -address=/dailydeals.savannahnow.com/0.0.0.0 -address=/dcad.watersoul.com/0.0.0.0 -address=/deals.ledgertranscript.com/0.0.0.0 -address=/digdug.divxnetworks.com/0.0.0.0 -address=/display.superbay.net/0.0.0.0 -address=/dontblockme.modaco.com/0.0.0.0 -address=/ehow.com/media/ad.html/0.0.0.0 -address=/eva.ucas.com/0.0.0.0 -address=/fan.twitch.tv/0.0.0.0 -address=/fimserve.ign.com/0.0.0.0 -address=/findnsave.idahostatesman.com/0.0.0.0 -address=/g.brothersoft.com/0.0.0.0 -address=/gameads.digyourowngrave.com/0.0.0.0 -address=/geoshopping.nzherald.co.nz/0.0.0.0 -address=/get.thefile.me/0.0.0.0 -address=/gfx.infomine.com/0.0.0.0 -address=/green.virtual-nights.com/0.0.0.0 -address=/hejban.youwatch.org/0.0.0.0 -address=/ibanners.empoweredcomms.com.au/0.0.0.0 -address=/iframe.travel.yahoo.com/0.0.0.0 -address=/imads.rediff.com/0.0.0.0 -address=/kat-ads.torrenticity.com/0.0.0.0 -address=/keepthelighton.vpsboard.com/0.0.0.0 -address=/kermit.macnn.com/0.0.0.0 -address=/life.imagepix.org/0.0.0.0 -address=/ll.a.hulu.com/0.0.0.0 -address=/londonprivaterentals.standard.co.uk/0.0.0.0 -address=/looky.hyves.org/0.0.0.0 -address=/lw2.gamecopyworld.com/0.0.0.0 -address=/mads.dailymail.co.uk/0.0.0.0 -address=/marketingsolutions.yahoo.com/0.0.0.0 -address=/mb.hockeybuzz.com/0.0.0.0 -address=/mealsandsteals.sandiego6.com/0.0.0.0 -address=/media-delivery.armorgames.com/0.0.0.0 -address=/media-mgmt.armorgames.com/0.0.0.0 -address=/mediamgr.ugo.com/0.0.0.0 -address=/nest.youwatch.org/0.0.0.0 -address=/netspidermm.indiatimes.com/0.0.0.0 -address=/network.sofeminine.co.uk/0.0.0.0 -address=/noram.srv.ysm.yahoo.com/0.0.0.0 -address=/oas.autotrader.co.uk/0.0.0.0 -address=/oas.skyscanner.net/0.0.0.0 -address=/oasc07.citywire.co.uk/0.0.0.0 -address=/oascentral.chron.com/0.0.0.0 -address=/oascentral.hosted.ap.org/0.0.0.0 -address=/oascentral.newsmax.com/0.0.0.0 -address=/ox-d.rantsports.com/0.0.0.0 -address=/ox-d.sbnation.com/0.0.0.0 -address=/ox-d.wetransfer.com/0.0.0.0 -address=/ox.furaffinity.net/0.0.0.0 -address=/partners-z.com/0.0.0.0 -address=/photo.net/equipment/pg-160/0.0.0.0 -address=/player.1800coupon.com/0.0.0.0 -address=/player.1stcreditrepairs.com/0.0.0.0 -address=/player.800directories.com/0.0.0.0 -address=/player.accoona.com/0.0.0.0 -address=/player.alloutwedding.com/0.0.0.0 -address=/player.insuranceandhealth.com/0.0.0.0 -address=/pmm.people.com.cn/0.0.0.0 -address=/pop-over.powered-by.justplayzone.com/0.0.0.0 -address=/prerollads.ign.com/0.0.0.0 -address=/promo.fileforum.com/0.0.0.0 -address=/rad.microsoft.com/0.0.0.0 -address=/rad.msn.com/0.0.0.0 -address=/red.bayimg.net/0.0.0.0 -address=/redvase.bravenet.com/0.0.0.0 -address=/richmedia.yimg.com/0.0.0.0 -address=/roia.com/0.0.0.0 -address=/rpt.anchorfree.net/0.0.0.0 -address=/searchignited.com/0.0.0.0 -address=/sebar.thand.info/0.0.0.0 -address=/shoppingpartners2.futurenet.com/0.0.0.0 -address=/sponsors.s2ki.com/0.0.0.0 -address=/sponsors.webosroundup.com/0.0.0.0 -address=/srv.thespacereporter.com/0.0.0.0 -address=/storewidget.pcauthority.com.au/0.0.0.0 -address=/stream.heavenmedia.net/0.0.0.0 -address=/tanzanite.infomine.com/0.0.0.0 -address=/targetedinfo.com/0.0.0.0 -address=/targetedtopic.com/0.0.0.0 -address=/thejesperbay.com/0.0.0.0 -address=/themis.yahoo.com/0.0.0.0 -address=/tmcs.net/0.0.0.0 -address=/tom.itv.com/0.0.0.0 -address=/tracking.hostgator.com/0.0.0.0 -address=/ua.badongo.com/0.0.0.0 -address=/uimserv.net/0.0.0.0 -address=/unicast.ign.com/0.0.0.0 -address=/unicast.msn.com/0.0.0.0 -address=/verdict.abc.go.com/0.0.0.0 -address=/vice-ads-cdn.vice.com/0.0.0.0 -address=/w.homes.yahoo.net/0.0.0.0 -address=/webmaster.extabit.com/0.0.0.0 -address=/widget.directory.dailycommercial.com/0.0.0.0 -address=/x.castanet.net/0.0.0.0 -address=/yea.uploadimagex.com/0.0.0.0 -address=/yesbeby.whies.info/0.0.0.0 -address=/yrt7dgkf.exashare.com/0.0.0.0 -address=/ysm.yahoo.com/0.0.0.0 -address=/zads.care2.com/0.0.0.0 -address=/a.eporner.com/0.0.0.0 -address=/a.heavy-r.com/0.0.0.0 -address=/a.killergram-girls.com/0.0.0.0 -address=/ad.eporner.com/0.0.0.0 -address=/ad.slutload.com/0.0.0.0 -address=/ad.thisav.com/0.0.0.0 -address=/ad.userporn.com/0.0.0.0 -address=/ads.xxxbunker.com/0.0.0.0 -address=/affiliates.goodvibes.com/0.0.0.0 -address=/banner1.pornhost.com/0.0.0.0 -address=/banners.cams.com/0.0.0.0 -address=/bob.crazyshit.com/0.0.0.0 -address=/brcache.madthumbs.com/0.0.0.0 -address=/creatives.cliphunter.com/0.0.0.0 -address=/creatives.pichunter.com/0.0.0.0 -address=/dot.eporner.com/0.0.0.0 -address=/dot2.eporner.com/0.0.0.0 -address=/exit.macandbumble.com/0.0.0.0 -address=/lw1.cdmediaworld.com/0.0.0.0 -address=/m2.xhamster.com/0.0.0.0 -address=/partners.xhamster.com/0.0.0.0 -address=/pr-static.empflix.com/0.0.0.0 -address=/pr-static.tnaflix.com/0.0.0.0 -address=/r.radikal.ru/0.0.0.0 -address=/rev.fapdu.com/0.0.0.0 -address=/site.img.4tube.com/0.0.0.0 -address=/static.kinghost.com/0.0.0.0 -address=/x.eroticity.net/0.0.0.0 -address=/x.vipergirls.to/0.0.0.0 diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.ads b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.ads deleted file mode 100644 index ec1a22189..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.ads +++ /dev/null @@ -1,4 +0,0 @@ -address=/p.tanx.com/0.0.0.0 -address=/googlesyndication.com/0.0.0.0 -address=/linkvans.com/0.0.0.0 -server=/valf.atm.youku.com/114.114.114.114 diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.esc b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.esc deleted file mode 100644 index 6cfd87056..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/dnsmasq.esc +++ /dev/null @@ -1,3 +0,0 @@ -ipset=/weixin.qq.com/adbyby_wan -ipset=/qpic.cn/adbyby_wan -ipset=/imtt.qq.com/adbyby_wan diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/firewall.include b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/firewall.include deleted file mode 100755 index 4dcec1e26..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/firewall.include +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -if [ -f /tmp/blockip.ipset ];then - -adbyby_enable=$(uci get adbyby.@adbyby[0].enable) - -if [ $adbyby_enable -eq 1 ]; then - if pidof adbyby>/dev/null; then - /etc/init.d/adbyby reload_rule - else - /etc/init.d/adbyby restart - fi -fi - -fi - diff --git a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/rules.txt b/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/rules.txt deleted file mode 100644 index 5c44b0e8c..000000000 --- a/package/lean/luci-app-adbyby-plus/root/usr/share/adbyby/rules.txt +++ /dev/null @@ -1,15 +0,0 @@ -! ------------------------------ ADByby 自定义过滤语法简表--------------------------------- -! -------------- 规则基于abp规则,并进行了字符替换部分的扩展----------------------------- -! ABP规则请参考https://adblockplus.org/zh_CN/filters,下面为大致摘要 -! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述 -! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。 -! "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。 -! "|" 为管线符号,来表示地址的最前端或最末端 -! "||" 为子域通配符,方便匹配主域名下的所有子域。 -! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。 -! "##" 为元素选择器标识符,后面跟需要隐藏元素的CSS样式例如 #ad_id .ad_class -!! 元素隐藏暂不支持全局规则和排除规则 -!! 字符替换扩展 -! 文本替换选择器标识符,后面跟需要替换的文本数据,格式:$s@模式字符串@替换后的文本@ -! 支持通配符*和? -! ------------------------------------------------------------------------------------------- diff --git a/package/lean/luci-app-aliddns/Makefile b/package/lean/luci-app-aliddns/Makefile deleted file mode 100644 index e3f10e5d2..000000000 --- a/package/lean/luci-app-aliddns/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI for Aliddns -LUCI_DEPENDS:=+wget +openssl-util -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=1 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-aliddns/luasrc/controller/aliddns.lua b/package/lean/luci-app-aliddns/luasrc/controller/aliddns.lua deleted file mode 100644 index c62864560..000000000 --- a/package/lean/luci-app-aliddns/luasrc/controller/aliddns.lua +++ /dev/null @@ -1,4 +0,0 @@ -module("luci.controller.aliddns",package.seeall) -function index() -entry({"admin","services","aliddns"},cbi("aliddns"),_("Aliddns Client"),101) -end diff --git a/package/lean/luci-app-aliddns/luasrc/model/cbi/aliddns.lua b/package/lean/luci-app-aliddns/luasrc/model/cbi/aliddns.lua deleted file mode 100644 index 76b386ef8..000000000 --- a/package/lean/luci-app-aliddns/luasrc/model/cbi/aliddns.lua +++ /dev/null @@ -1,52 +0,0 @@ -local a=require"luci.sys" -local e=luci.model.uci.cursor() -local e=require"nixio.fs" -require("luci.sys") -local t,e,o -local m,s -t=Map("aliddns",translate("阿里DDNS客户端"),translate("基于阿里云解析的私人DDNS解决方案")) - -e=t:section(TypedSection,"base") -e.anonymous=true - -e:tab("basic", translate("设置")) - -enable=e:taboption("basic",Flag,"enable",translate("开启"),translate("开启或关闭aliddns动态域名")) -enable.rmempty=false -token=e:taboption("basic",Value,"app_key",translate("APP KEY")) -email=e:taboption("basic",Value,"app_secret",translate("APP SECRET")) -iface=e:taboption("basic",ListValue,"interface",translate("选择外网接口"),translate("限定要动态aliddns的外网接口,如pppoe-wan")) -iface:value("",translate("选择要动态更新的外网接口")) -for t,e in ipairs(a.net.devices())do -if e~="lo"then iface:value(e)end -end -iface.rmempty=false -main=e:taboption("basic",Value,"main_domain",translate("主域名"),"想要解析的主域名,例如:baidu.com") -main.rmempty=false -sub=e:taboption("basic",Value,"sub_domain",translate("子域名"),"想要解析的子域名,例如:test hehe") -sub.rmempty=false -time=e:taboption("basic",Value,"time",translate("检查时间"),"域名检查时间,单位分钟,范围1-59") -time.rmempty=false - -e:tab("log", translate("更新记录")) ---e=t:section(TypedSection,"base",translate("更新记录")) -e.anonymous=true -local a="/var/log/aliddns.log" -tvlog=e:taboption("log",TextValue,"sylogtext") -tvlog.rows=14 -tvlog.readonly="readonly" -tvlog.wrap="off" -function tvlog.cfgvalue(e,e) -sylogtext="" -if a and nixio.fs.access(a)then -sylogtext=luci.sys.exec("tail -n 100 %s"%a) -end -return sylogtext -end -tvlog.write=function(e,e,e) -end -local e=luci.http.formvalue("cbi.apply") -if e then -io.popen("/etc/init.d/aliddns restart") -end -return t diff --git a/package/lean/luci-app-aliddns/po/zh-cn/aliddns.po b/package/lean/luci-app-aliddns/po/zh-cn/aliddns.po deleted file mode 100644 index 211e10d2c..000000000 --- a/package/lean/luci-app-aliddns/po/zh-cn/aliddns.po +++ /dev/null @@ -1,4 +0,0 @@ -msgid "Aliddns Client" -msgstr "阿里DDNS客户端" - - diff --git a/package/lean/luci-app-aliddns/root/etc/config/aliddns b/package/lean/luci-app-aliddns/root/etc/config/aliddns deleted file mode 100644 index 3dcd7e75a..000000000 --- a/package/lean/luci-app-aliddns/root/etc/config/aliddns +++ /dev/null @@ -1,10 +0,0 @@ - -config base 'base' - option time '30' - option enable '0' - option app_key '1' - option app_secret '1' - option interface 'br-lan' - option main_domain '1.com' - option sub_domain '2' - diff --git a/package/lean/luci-app-aliddns/root/etc/init.d/aliddns b/package/lean/luci-app-aliddns/root/etc/init.d/aliddns deleted file mode 100755 index 93bb659e6..000000000 --- a/package/lean/luci-app-aliddns/root/etc/init.d/aliddns +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=80 - -restart() -{ - /usr/sbin/aliddns -} - -start() -{ - /usr/sbin/aliddns -} - -stop() -{ - /usr/sbin/aliddns -} diff --git a/package/lean/luci-app-aliddns/root/etc/uci-defaults/luci-app-aliddns b/package/lean/luci-app-aliddns/root/etc/uci-defaults/luci-app-aliddns deleted file mode 100755 index c8dcb1e17..000000000 --- a/package/lean/luci-app-aliddns/root/etc/uci-defaults/luci-app-aliddns +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-aliddns/root/usr/sbin/aliddns b/package/lean/luci-app-aliddns/root/usr/sbin/aliddns deleted file mode 100755 index 7de6d904b..000000000 --- a/package/lean/luci-app-aliddns/root/usr/sbin/aliddns +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/sh - -aliddns_ak=`uci get aliddns.base.app_key 2>/dev/null` -aliddns_sk=`uci get aliddns.base.app_secret 2>/dev/null` -aliddns_record_id=`uci get aliddns.base.record_id 2>/dev/null` -time=`uci get aliddns.base.time 2>/dev/null` -aliddns_enable=`uci get aliddns.base.enable` -aliddns_domain=`uci get aliddns.base.main_domain 2>/dev/null` -aliddns_name=`uci get aliddns.base.sub_domain 2>/dev/null` -interface=`uci get aliddns.base.interface 2>/dev/null` -DATE=$(date +'%Y-%m-%d %H:%M:%S') -timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"` -ip=$(ifconfig $interface 2> /dev/null | grep 'inet addr' | awk '{print $2}' | cut -d: -f2 2>/dev/null) - -check_aliddns() { -#ip=`wget -qO- http://whatismyip.akamai.com/ 2>/dev/null` -#current_ip=`nslookup $aliddns_name.$aliddns_domain | grep "Address 1"|tail -n1|cut -d' ' -f3 2>/dev/null` -current_ip=`echo $query_result | sed 's/.*,"Value":"\([0-9\.]*\)",.*/\1/'` -echo "$DATE 当前路由IP: ${ip}" >> /var/log/aliddns.log -echo "$DATE 远程解析IP: ${current_ip}" >> /var/log/aliddns.log -if [ "$ip" = "$current_ip" ] -then - echo "$DATE IP未改变,无需更新" >> /var/log/aliddns.log - exit 0 - else - echo "$DATE 更新中..." >> /var/log/aliddns.log -fi -} - -urlencode() { - # urlencode - - local length="${#1}" - i=0 - out="" - for i in $(awk "BEGIN { for ( i=0; i<$length; i++ ) { print i; } }") - do - local c="${1:$i:1}" - case $c in - [a-zA-Z0-9._-]) out="$out$c" ;; - *) out="$out`printf '%%%02X' "'$c"`" ;; - esac - i=$(($i + 1)) - done - echo -n $out -} - -send_request() { - local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09" - local hash=$(urlencode $(echo -n "GET&%2F&$(urlencode $args)" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64)) - wget -qO- "http://alidns.aliyuncs.com/?$args&Signature=$hash" 2> /dev/null -} - -get_recordid() { - grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"' -} - -query_recordid() { - send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$(urlencode "$aliddns_name").$aliddns_domain&Timestamp=$timestamp" -} - -update_record() { - send_request "UpdateDomainRecord" "RR=$(urlencode "$aliddns_name")&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&Timestamp=$timestamp&Type=A&Value=$ip" -} - -add_record() { - send_request "AddDomainRecord&DomainName=$aliddns_domain" "RR=$(urlencode "$aliddns_name")&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&Timestamp=$timestamp&Type=A&Value=$ip" -} - -go_record() { -if [ "$aliddns_record_id" = "" ] -then - aliddns_record_id=`echo $query_result | get_recordid` -fi -if [ "$aliddns_record_id" = "" ] -then - aliddns_record_id=`add_record | get_recordid` - echo "$DATE 添加 record $aliddns_record_id" >> /var/log/aliddns.log -else - update_record $aliddns_record_id - echo "$DATE 更新 record $aliddns_record_id" >> /var/log/aliddns.log -fi -# save to file -if [ "$aliddns_record_id" = "" ]; then - # failed - echo "$DATE : 更新出错,请检查设置!" >> /var/log/aliddns.log - exit 0 -else - uci set aliddns.base.record_id=$aliddns_record_id - uci commit - echo "$DATE : 更新成功!($ip)" >> /var/log/aliddns.log -fi -} -#将执行脚本写入crontab定时运行 -add_aliddns_cru(){ -wirtecron=$(cat /etc/crontabs/root | grep "$time * * * *" | grep aliddns) -if [ -z "$wirtecron" ];then - sed -i '/aliddns/d' /etc/crontabs/root >/dev/null 2>&1 - echo "*/$time * * * * /usr/sbin/aliddns" >> /etc/crontabs/root -fi -} - -#清除过多记录 -clean_log(){ -logrow=$(grep -c "" /var/log/aliddns.log) -if [ $logrow -ge 15 ];then - cat /dev/null > /var/log/aliddns.log - echo "$DATE Log条数超限,清空处理!" >> /var/log/aliddns.log -fi -} - -#停止服务 -stop_aliddns(){ - #停掉cru里的任务 - sed -i '/aliddns/d' /etc/crontabs/root >/dev/null 2>&1 -} - -if [ "$aliddns_enable" != "1" ]; then - stop_aliddns - echo "$DATE : aliddns没有开启!" >> /var/log/aliddns.log - else - clean_log - query_result=$(query_recordid) - check_aliddns - go_record - add_aliddns_cru -fi - diff --git a/package/lean/luci-app-autoreboot/Makefile b/package/lean/luci-app-autoreboot/Makefile deleted file mode 100644 index 9e2732986..000000000 --- a/package/lean/luci-app-autoreboot/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for Scheduled Reboot -LUCI_DEPENDS:=+luci -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=8 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - diff --git a/package/lean/luci-app-autoreboot/luasrc/controller/autoreboot.lua b/package/lean/luci-app-autoreboot/luasrc/controller/autoreboot.lua deleted file mode 100644 index e0429f34f..000000000 --- a/package/lean/luci-app-autoreboot/luasrc/controller/autoreboot.lua +++ /dev/null @@ -1,4 +0,0 @@ -module("luci.controller.autoreboot",package.seeall) -function index() -entry({"admin","system","autoreboot"},cbi("autoreboot"),_("Scheduled Reboot"),88) -end diff --git a/package/lean/luci-app-autoreboot/luasrc/model/cbi/autoreboot.lua b/package/lean/luci-app-autoreboot/luasrc/model/cbi/autoreboot.lua deleted file mode 100644 index 8a008d7fa..000000000 --- a/package/lean/luci-app-autoreboot/luasrc/model/cbi/autoreboot.lua +++ /dev/null @@ -1,38 +0,0 @@ -require("luci.sys") - -m=Map("autoreboot",translate("Scheduled Reboot"),translate("Scheduled reboot Setting")) - -s=m:section(TypedSection,"login","") -s.addremove=false -s.anonymous=true - -enable=s:option(Flag,"enable",translate("Enable")) -enable.rmempty = false -enable.default=0 - -week=s:option(ListValue,"week",translate("Week Day")) -week:value(0,translate("Everyday")) -week:value(1,translate("Monday")) -week:value(2,translate("Tuesday")) -week:value(3,translate("Wednesday")) -week:value(4,translate("Thursday")) -week:value(5,translate("Friday")) -week:value(6,translate("Saturday")) -week:value(7,translate("Sunday")) -week.default=0 - -hour=s:option(Value,"hour",translate("Hour")) -hour.datatype = "range(0,23)" -hour.rmempty = false - -pass=s:option(Value,"minute",translate("Minute")) -pass.datatype = "range(0,59)" -pass.rmempty = false - - -local e=luci.http.formvalue("cbi.apply") -if e then - io.popen("/etc/init.d/autoreboot restart") -end - -return m diff --git a/package/lean/luci-app-autoreboot/po/zh-cn/autoreboot.po b/package/lean/luci-app-autoreboot/po/zh-cn/autoreboot.po deleted file mode 100644 index 554ef2cc3..000000000 --- a/package/lean/luci-app-autoreboot/po/zh-cn/autoreboot.po +++ /dev/null @@ -1,25 +0,0 @@ -msgid "Scheduled Reboot" -msgstr "定时重启" - -msgid "Scheduled reboot Setting" -msgstr "定时重启设置" - -msgid "Week Day" -msgstr "星期" - -msgid "Everyday" -msgstr "每天" - -msgid "Day" -msgstr "天" - -msgid "Hour" -msgstr "小时" - -msgid "Minute" -msgstr "分钟" - - - - - diff --git a/package/lean/luci-app-autoreboot/root/etc/config/autoreboot b/package/lean/luci-app-autoreboot/root/etc/config/autoreboot deleted file mode 100644 index 3b57e1484..000000000 --- a/package/lean/luci-app-autoreboot/root/etc/config/autoreboot +++ /dev/null @@ -1,7 +0,0 @@ - -config login - option minute '0' - option hour '5' - option week '3' - option enable '0' - diff --git a/package/lean/luci-app-autoreboot/root/etc/init.d/autoreboot b/package/lean/luci-app-autoreboot/root/etc/init.d/autoreboot deleted file mode 100755 index 7973d6c3f..000000000 --- a/package/lean/luci-app-autoreboot/root/etc/init.d/autoreboot +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh /etc/rc.common -START=50 - -run_reboot() -{ - local enable - config_get_bool enable $1 enable - - if [ $enable = 1 ]; then - local minute - local hour - config_get week $1 week - config_get minute $1 minute - config_get hour $1 hour - if [ $minute = 0 ] ; then - minute="00" - fi - if [ $week = 0 ] ; then - week="*" - fi - sed -i '/reboot/d' /etc/crontabs/root >/dev/null 2>&1 - echo "$minute $hour * * $week sleep 5 && touch /etc/banner && reboot" >> /etc/crontabs/root - echo "Auto REBOOT has started." - else - sed -i '/reboot/d' /etc/crontabs/root >/dev/null 2>&1 - echo "Auto REBOOT has started." - fi -} - -start() -{ - config_load autoreboot - config_foreach run_reboot login -} - -stop() -{ - echo "Auto REBOOT has stoped." -} diff --git a/package/lean/luci-app-filetransfer/Makefile b/package/lean/luci-app-filetransfer/Makefile deleted file mode 100644 index dae88c85d..000000000 --- a/package/lean/luci-app-filetransfer/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI page for IPK upload -LUCI_DEPENDS:=+luci-lib-fs -PKG_VERSION:=1 -PKG_RELEASE:=2 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-filetransfer/etc/uci-defaults/luci-filetransfer b/package/lean/luci-app-filetransfer/etc/uci-defaults/luci-filetransfer deleted file mode 100755 index 935d7c8be..000000000 --- a/package/lean/luci-app-filetransfer/etc/uci-defaults/luci-filetransfer +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -sed -i 's/cbi.submit\"] = true/cbi.submit\"] = \"1\"/g' /usr/lib/lua/luci/dispatcher.lua - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-filetransfer/luasrc/controller/filetransfer.lua b/package/lean/luci-app-filetransfer/luasrc/controller/filetransfer.lua deleted file mode 100644 index 727042786..000000000 --- a/package/lean/luci-app-filetransfer/luasrc/controller/filetransfer.lua +++ /dev/null @@ -1,12 +0,0 @@ ---[[ -luci-app-filetransfer -Description: File upload / download -Author: yuleniwo xzm2@qq.com QQ:529698939 -Modify: ayongwifi@126.com www.openwrtdl.com -]]-- - -module("luci.controller.filetransfer", package.seeall) - -function index() - entry({"admin", "system", "filetransfer"}, cbi("updownload"), _("FileTransfer"),89) -end diff --git a/package/lean/luci-app-filetransfer/luasrc/model/cbi/updownload.lua b/package/lean/luci-app-filetransfer/luasrc/model/cbi/updownload.lua deleted file mode 100644 index 7b487cb21..000000000 --- a/package/lean/luci-app-filetransfer/luasrc/model/cbi/updownload.lua +++ /dev/null @@ -1,148 +0,0 @@ -local fs = require "luci.fs" -local http = luci.http - -ful = SimpleForm("upload", translate("Upload"), nil) -ful.reset = false -ful.submit = false - -sul = ful:section(SimpleSection, "", translate("Upload file to '/tmp/upload/'")) -fu = sul:option(FileUpload, "") -fu.template = "cbi/other_upload" -um = sul:option(DummyValue, "", nil) -um.template = "cbi/other_dvalue" - -fdl = SimpleForm("download", translate("Download"), nil) -fdl.reset = false -fdl.submit = false -sdl = fdl:section(SimpleSection, "", translate("Download file")) -fd = sdl:option(FileUpload, "") -fd.template = "cbi/other_download" -dm = sdl:option(DummyValue, "", nil) -dm.template = "cbi/other_dvalue" - -function Download() - local sPath, sFile, fd, block - sPath = http.formvalue("dlfile") - sFile = nixio.fs.basename(sPath) - if luci.fs.isdirectory(sPath) then - fd = io.popen('tar -C "%s" -cz .' % {sPath}, "r") - sFile = sFile .. ".tar.gz" - else - fd = nixio.open(sPath, "r") - end - if not fd then - dm.value = translate("Couldn't open file: ") .. sPath - return - end - dm.value = nil - http.header('Content-Disposition', 'attachment; filename="%s"' % {sFile}) - http.prepare_content("application/octet-stream") - while true do - block = fd:read(nixio.const.buffersize) - if (not block) or (#block ==0) then - break - else - http.write(block) - end - end - fd:close() - http.close() -end - -local dir, fd -dir = "/tmp/upload/" -nixio.fs.mkdir(dir) -http.setfilehandler( - function(meta, chunk, eof) - if not fd then - if not meta then return end - - if meta and chunk then fd = nixio.open(dir .. meta.file, "w") end - - if not fd then - um.value = translate("Create upload file error.") - return - end - end - if chunk and fd then - fd:write(chunk) - end - if eof and fd then - fd:close() - fd = nil - um.value = translate("File saved to") .. ' "/tmp/upload/' .. meta.file .. '"' - end - end -) - -if luci.http.formvalue("upload") then - - - local f = luci.http.formvalue("ulfile") - if #f <= 0 then - um.value = translate("No specify upload file.") - end -elseif luci.http.formvalue("download") then - Download() -end - -local inits, attr = {} -for i, f in ipairs(fs.glob("/tmp/upload/*")) do - attr = fs.stat(f) - if attr then - inits[i] = {} - inits[i].name = fs.basename(f) - inits[i].mtime = os.date("%Y-%m-%d %H:%M:%S", attr.mtime) - inits[i].modestr = attr.modestr - inits[i].size = tostring(attr.size) - inits[i].remove = 0 - inits[i].install = false - end -end - -form = SimpleForm("filelist", translate("Upload file list"), nil) -form.reset = false -form.submit = false - -tb = form:section(Table, inits) -nm = tb:option(DummyValue, "name", translate("File name")) -mt = tb:option(DummyValue, "mtime", translate("Modify time")) -ms = tb:option(DummyValue, "modestr", translate("Mode string")) -sz = tb:option(DummyValue, "size", translate("Size")) -btnrm = tb:option(Button, "remove", translate("Remove")) -btnrm.render = function(self, section, scope) - self.inputstyle = "remove" - Button.render(self, section, scope) -end - -btnrm.write = function(self, section) - local v = luci.fs.unlink("/tmp/upload/" .. luci.fs.basename(inits[section].name)) - if v then table.remove(inits, section) end - return v -end - -function IsIpkFile(name) - name = name or "" - local ext = string.lower(string.sub(name, -4, -1)) - return ext == ".ipk" -end - -btnis = tb:option(Button, "install", translate("Install")) -btnis.template = "cbi/other_button" -btnis.render = function(self, section, scope) - if not inits[section] then return false end - if IsIpkFile(inits[section].name) then - scope.display = "" - else - scope.display = "none" - end - self.inputstyle = "apply" - Button.render(self, section, scope) -end - -btnis.write = function(self, section) - local r = luci.sys.exec(string.format('opkg --force-depends install "/tmp/upload/%s"', inits[section].name)) - form.description = string.format('%s', r) -end - -return ful, fdl, form diff --git a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_button.htm b/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_button.htm deleted file mode 100644 index 1c391ad98..000000000 --- a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_button.htm +++ /dev/null @@ -1,7 +0,0 @@ -<%+cbi/valueheader%> - <% if self:cfgvalue(section) ~= false then %> - " style="display: <%= display %>" type="submit"<%= attr("name", cbid) .. attr("id", cbid) .. attr("value", self.inputtitle or self.title)%> /> - <% else %> - - - <% end %> -<%+cbi/valuefooter%> diff --git a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_download.htm b/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_download.htm deleted file mode 100644 index c14728632..000000000 --- a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_download.htm +++ /dev/null @@ -1,5 +0,0 @@ -<%+cbi/valueheader%> - - - -<%+cbi/valuefooter%> diff --git a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_dvalue.htm b/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_dvalue.htm deleted file mode 100644 index 296c61e4d..000000000 --- a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_dvalue.htm +++ /dev/null @@ -1,8 +0,0 @@ -<%+cbi/valueheader%> - -<% - local val = self:cfgvalue(section) or self.default or "" - write(pcdata(val)) -%> - -<%+cbi/valuefooter%> diff --git a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_upload.htm b/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_upload.htm deleted file mode 100644 index bb56f444f..000000000 --- a/package/lean/luci-app-filetransfer/luasrc/view/cbi/other_upload.htm +++ /dev/null @@ -1,5 +0,0 @@ -<%+cbi/valueheader%> - - - -<%+cbi/valuefooter%> diff --git a/package/lean/luci-app-filetransfer/po/zh-cn/filetransfer.po b/package/lean/luci-app-filetransfer/po/zh-cn/filetransfer.po deleted file mode 100644 index 829c7d285..000000000 --- a/package/lean/luci-app-filetransfer/po/zh-cn/filetransfer.po +++ /dev/null @@ -1,56 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -msgid "Choose local file:" -msgstr "选择本地文件:" - -msgid "Couldn't open file:" -msgstr "无法打开文件:" - -msgid "Create upload file error." -msgstr "创建上传文件失败。" - -msgid "Download" -msgstr "下载" - -msgid "Download file" -msgstr "下载文件" - -msgid "File name" -msgstr "文件名" - -msgid "File saved to" -msgstr "文件保存到" - -msgid "FileTransfer" -msgstr "文件传输" - -msgid "Install" -msgstr "安装" - -msgid "Mode string" -msgstr "模式字符串" - -msgid "Modify time" -msgstr "修改时间" - -msgid "No specify upload file." -msgstr "未指定上传文件" - -msgid "Path on Route:" -msgstr "路由上目录" - -msgid "Remove" -msgstr "移除" - -msgid "Size" -msgstr "大小" - -msgid "Upload" -msgstr "上传" - -msgid "Upload file list" -msgstr "上传文件列表" - -msgid "Upload file to '/tmp/upload/'" -msgstr "将文件上传到'/tmp/upload/'" diff --git a/package/lean/luci-app-flowoffload/Makefile b/package/lean/luci-app-flowoffload/Makefile deleted file mode 100644 index 8388255c5..000000000 --- a/package/lean/luci-app-flowoffload/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for Flow Offload -LUCI_DEPENDS:=+kmod-ipt-offload +pdnsd-alt +kmod-tcp-bbr @LINUX_4_14 -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=11 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - diff --git a/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua b/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua deleted file mode 100644 index a02807264..000000000 --- a/package/lean/luci-app-flowoffload/luasrc/controller/flowoffload.lua +++ /dev/null @@ -1,41 +0,0 @@ -module("luci.controller.flowoffload", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/flowoffload") then - return - end - local page - page = entry({"admin", "network", "flowoffload"}, cbi("flowoffload"), _("Turbo ACC Center"), 101) - page.i18n = "flowoffload" - page.dependent = true - - entry({"admin", "network", "flowoffload", "status"}, call("action_status")) -end - -local function is_running() - return luci.sys.call("[ `cat /sys/module/xt_FLOWOFFLOAD/refcnt 2>/dev/null` -gt 0 ] 2>/dev/null") == 0 -end - -local function is_bbr() - return luci.sys.call("[ `cat /proc/sys/net/ipv4/tcp_congestion_control 2>/dev/null` = bbr ] 2>/dev/null") == 0 -end - -local function is_fullcone() - return luci.sys.call("[ `cat /sys/module/xt_FULLCONENAT/refcnt 2>/dev/null` -gt 0 ] 2>/dev/null") == 0 -end - -local function is_dns() - return luci.sys.call("pgrep dnscache >/dev/null") == 0 -end - -function action_status() - luci.http.prepare_content("application/json") - luci.http.write_json({ - run_state = is_running(), - down_state = is_bbr(), - up_state = is_fullcone(), - dns_state = is_dns() - }) -end - - diff --git a/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua b/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua deleted file mode 100644 index 81eff5d40..000000000 --- a/package/lean/luci-app-flowoffload/luasrc/model/cbi/flowoffload.lua +++ /dev/null @@ -1,39 +0,0 @@ -local m,s,o -local SYS = require "luci.sys" - -m = Map("flowoffload") -m.title = translate("Turbo ACC Acceleration Settings") -m.description = translate("Opensource Linux Flow Offload driver (Fast Path or HWNAT)") -m:append(Template("flow/status")) - -s = m:section(TypedSection, "flow") -s.addremove = false -s.anonymous = true - -flow = s:option(Flag, "flow_offloading", translate("Enable")) -flow.default = 0 -flow.rmempty = false -flow.description = translate("Enable software flow offloading for connections. (decrease cpu load / increase routing throughput)") - -hw = s:option(Flag, "flow_offloading_hw", translate("HWNAT")) -hw.default = 0 -hw.rmempty = true -hw.description = translate("Enable Hardware NAT (depends on hw capability like MTK 762x)") -hw:depends("flow_offloading", 1) - -bbr = s:option(Flag, "bbr", translate("Enable BBR")) -bbr.default = 0 -bbr.rmempty = false -bbr.description = translate("Bottleneck Bandwidth and Round-trip propagation time (BBR)") - -dns = s:option(Flag, "dns", translate("DNS Acceleration")) -dns.default = 0 -dns.rmempty = false -dns.description = translate("Enable DNS Cache Acceleration and anti ISP DNS pollution") - -o = s:option(Value, "dns_server", translate("Upsteam DNS Server")) -o.default = "114.114.114.114,114.114.115.115" -o.description = translate("Muitiple DNS server can saperate with ','") -o:depends("dns", 1) - -return m diff --git a/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm b/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm deleted file mode 100644 index 43f3a02ae..000000000 --- a/package/lean/luci-app-flowoffload/luasrc/view/flow/status.htm +++ /dev/null @@ -1,24 +0,0 @@ -
    - <%:Running Status%> - - - - - -
    FLOW 加速状态<%:Collecting data...%>
    BBR 加速<%:Collecting data...%>
    FULLCONE NAT加速<%:Collecting data...%>
    DNS 加速<%:Collecting data...%>
    -
    - - diff --git a/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po b/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po deleted file mode 100644 index 69f0b2d61..000000000 --- a/package/lean/luci-app-flowoffload/po/zh-cn/flowoffload.po +++ /dev/null @@ -1,41 +0,0 @@ -msgid "Flow Offload ACC" -msgstr "Flow Offload 转发加速" - -msgid "Turbo ACC Center" -msgstr "Turbo ACC 网络加速" - -msgid "Turbo ACC Acceleration Settings" -msgstr "Turbo ACC 网络加速设置" - -msgid "Linux Flow Offload Forwarding Engine Settings" -msgstr "Linux Flow Offload Forwarding 转发加速引擎设置" - -msgid "Opensource Linux Flow Offload driver (Fast Path or HWNAT)" -msgstr "开源 Linux Flow Offload 驱动 (支持 Fast Path 或者 HWNAT)" - -msgid "Enable" -msgstr "启用" - -msgid "Enable software flow offloading for connections. (decrease cpu load / increase routing throughput)" -msgstr "开启 Flow Offloading 转发加速. (降低CPU占用 / 增强路由转发性能,和多WAN或者QOS功能可能会冲突)" - -msgid "Enable Hardware NAT (depends on hw capability like MTK 762x)" -msgstr "启用硬件HWNAT加速(依赖特定的硬件,例如 MTK 762x 系列)" - -msgid "Enable BBR" -msgstr "启用 BBR" - -msgid "Bottleneck Bandwidth and Round-trip propagation time (BBR)" -msgstr "BBR拥塞控制算法可以加强TCP应用表现,但会降低路由器本机上的WIFI吞吐性能" - -msgid "DNS Acceleration" -msgstr "DNS 加速" - -msgid "Enable DNS Cache Acceleration and anti ISP DNS pollution" -msgstr "启用DNS多线程查询、缓存,并防止ISP的DNS广告和域名劫持" - -msgid "Upsteam DNS Server" -msgstr "上游 DNS 服务器(国内)" - -msgid "Muitiple DNS server can saperate with ','" -msgstr "支持多个上游DNS服务器,用','分隔(注意用英文逗号).请填写您最快的DNS服务器" diff --git a/package/lean/luci-app-flowoffload/root/etc/config/flowoffload b/package/lean/luci-app-flowoffload/root/etc/config/flowoffload deleted file mode 100644 index 19bd74222..000000000 --- a/package/lean/luci-app-flowoffload/root/etc/config/flowoffload +++ /dev/null @@ -1,8 +0,0 @@ - -config flow - option flow_offloading '1' - option flow_offloading_hw '0' - option dns '0' - option dns_server '114.114.114.114,114.114.115.115' - option bbr '0' - diff --git a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload b/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload deleted file mode 100755 index 9e3e14f20..000000000 --- a/package/lean/luci-app-flowoffload/root/etc/init.d/flowoffload +++ /dev/null @@ -1,193 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (c) 2011-2015 OpenWrt.org - -START=60 - -DNSMASQ_RESTART=N -DNS_SERVER="114.114.114.114,114.114.115.115" - -start_pdnsd() { - DNS_SERVER=$(uci get flowoffload.@flow[0].dns_server 2>/dev/null) - - [ -d /var/etc ] || mkdir -p /var/etc - - if [ ! -f /var/dnscache/pdnsd.cache ]; then - mkdir -p /var/dnscache - echo -ne "pd13\000\000\000\000" > /var/dnscache/pdnsd.cache - chown -R nobody.nogroup /var/dnscache - fi - - cat > /var/etc/dnscache.conf </dev/null 2>&1 || kill -9 $(ps | grep dnscache | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - echo "Stop DNS Cache" -} - -change_dns() { - uci delete dhcp.@dnsmasq[0].server >/dev/null 2>&1 - uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 - uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto - uci set dhcp.@dnsmasq[0].noresolv=0 - uci commit dhcp -} - -revert_dns() { - uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 >/dev/null 2>&1 - uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto - uci set dhcp.@dnsmasq[0].noresolv=0 - uci commit dhcp -} - -start(){ - dns=$(uci get flowoffload.@flow[0].dns 2>/dev/null) - bbr=$(uci get flowoffload.@flow[0].bbr 2>/dev/null) - if [ $dns -eq 1 ]; then - start_pdnsd - change_dns - fi - if [ $bbr -eq 1 ]; then - sysctl -w net.ipv4.tcp_congestion_control=bbr - else - sysctl -w net.ipv4.tcp_congestion_control=cubic - fi - uci set firewall.@defaults[0].flow_offloading=$(uci get flowoffload.@flow[0].flow_offloading) - uci set firewall.@defaults[0].flow_offloading_hw=$(uci get flowoffload.@flow[0].flow_offloading_hw) - uci commit firewall - if [ "$DNSMASQ_RESTART" = N ]; then - /etc/init.d/dnsmasq restart && echo "DNSMASQ change" - /etc/init.d/firewall restart - fi -} - -stop(){ - dns=$(uci get firewall.@defaults[0].dns 2>/dev/null) - stop_pdnsd - revert_dns - uci set firewall.@defaults[0].flow_offloading=$(uci get flowoffload.@flow[0].flow_offloading) - uci set firewall.@defaults[0].flow_offloading_hw=$(uci get flowoffload.@flow[0].flow_offloading_hw) - uci commit firewall - if [ "$DNSMASQ_RESTART" = N ]; then - /etc/init.d/dnsmasq restart && echo "DNSMASQ revert" - /etc/init.d/firewall restart - fi -} - -restart(){ - DNSMASQ_RESTART=Y - stop - start - /etc/init.d/dnsmasq restart && echo "DNSMASQ restart" - /etc/init.d/firewall restart -} - diff --git a/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload b/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload deleted file mode 100755 index 3e3db27bf..000000000 --- a/package/lean/luci-app-flowoffload/root/etc/uci-defaults/flowoffload +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -uci set firewall.@defaults[0].flow_offloading=1 -uci commit firewall - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@flowoffload[-1] - add ucitrack flowoffload - set ucitrack.@flowoffload[-1].init=flowoffload - commit ucitrack -EOF - -sed -i '/dnscache-watchdog.sh/d' /etc/crontabs/root -echo '*/60 * * * * /usr/share/dnscache-watchdog.sh' >> /etc/crontabs/root - -exit 0 diff --git a/package/lean/luci-app-flowoffload/root/usr/share/dnscache-watchdog.sh b/package/lean/luci-app-flowoffload/root/usr/share/dnscache-watchdog.sh deleted file mode 100755 index bf5161aee..000000000 --- a/package/lean/luci-app-flowoffload/root/usr/share/dnscache-watchdog.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -dns_enable=$(uci flowoffload.@flow[0].dns 2>/dev/null) - -if [ $dns_enable -eq 1 ]; then - if ! pidof dnscache>/dev/null; then - /etc/init.d/flowoffload restart - fi -fi diff --git a/package/lean/luci-app-ipsec-vpnd/Makefile b/package/lean/luci-app-ipsec-vpnd/Makefile deleted file mode 100644 index b7a83920f..000000000 --- a/package/lean/luci-app-ipsec-vpnd/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for IPSec VPN Server (IKEv1 with PSK and Xauth) -LUCI_DEPENDS:=+strongswan-minimal +strongswan-mod-xauth-generic -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=7 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-ipsec-vpnd/luasrc/controller/ipsec-server.lua b/package/lean/luci-app-ipsec-vpnd/luasrc/controller/ipsec-server.lua deleted file mode 100644 index 2925194c6..000000000 --- a/package/lean/luci-app-ipsec-vpnd/luasrc/controller/ipsec-server.lua +++ /dev/null @@ -1,19 +0,0 @@ - -module("luci.controller.ipsec-server", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/ipsec") then - return - end - - entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false - entry({"admin", "vpn", "ipsec-server"}, cbi("ipsec-server/ipsec-server"), _("IPSec VPN Server"), 80).dependent=false - entry({"admin", "vpn", "ipsec-server","status"},call("act_status")).leaf=true -end - -function act_status() - local e={} - e.running=luci.sys.call("pgrep ipsec >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/package/lean/luci-app-ipsec-vpnd/luasrc/model/cbi/ipsec-server/ipsec-server.lua b/package/lean/luci-app-ipsec-vpnd/luasrc/model/cbi/ipsec-server/ipsec-server.lua deleted file mode 100644 index 79a47b8bf..000000000 --- a/package/lean/luci-app-ipsec-vpnd/luasrc/model/cbi/ipsec-server/ipsec-server.lua +++ /dev/null @@ -1,35 +0,0 @@ - -mp = Map("ipsec", translate("IPSec VPN Server")) -mp.description = translate("IPSec VPN connectivity using the native built-in VPN Client on iOS or Andriod (IKEv1 with PSK and Xauth)") - -mp:section(SimpleSection).template = "ipsec/ipsec_status" - -s = mp:section(NamedSection, "ipsec", "service") -s.anonymouse = true - -enabled = s:option(Flag, "enabled", translate("Enable")) -enabled.default = 0 -enabled.rmempty = false - -clientip = s:option(Value, "clientip", translate("VPN Client IP")) -clientip.datatype = "ip4addr" -clientip.description = translate("LAN DHCP reserved started IP addresses with the same subnet mask") -clientip.optional = false -clientip.rmempty = false - -clientdns = s:option(Value, "clientdns", translate("VPN Client DNS")) -clientdns.datatype = "ip4addr" -clientdns.description = translate("DNS using in VPN tunnel.Set to the router's LAN IP is recommended") -clientdns.optional = false -clientdns.rmempty = false - -account = s:option(Value, "account", translate("Account")) -account.datatype = "string" - -password = s:option(Value, "password", translate("Password")) -password.password = true - -secret = s:option(Value, "secret", translate("Secret Pre-Shared Key")) -secret.password = true - -return mp diff --git a/package/lean/luci-app-ipsec-vpnd/luasrc/view/ipsec/ipsec_status.htm b/package/lean/luci-app-ipsec-vpnd/luasrc/view/ipsec/ipsec_status.htm deleted file mode 100644 index 60225b490..000000000 --- a/package/lean/luci-app-ipsec-vpnd/luasrc/view/ipsec/ipsec_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    \ No newline at end of file diff --git a/package/lean/luci-app-ipsec-vpnd/po/zh-cn/ipsec.po b/package/lean/luci-app-ipsec-vpnd/po/zh-cn/ipsec.po deleted file mode 100644 index 0bf6b62aa..000000000 --- a/package/lean/luci-app-ipsec-vpnd/po/zh-cn/ipsec.po +++ /dev/null @@ -1,34 +0,0 @@ -msgid "IPSec VPN Server" -msgstr "IPSec VPN 服务器" - -msgid "IPSec VPN connectivity using the native built-in VPN Client on iOS or Andriod (IKEv1 with PSK and Xauth)" -msgstr "使用iOS 或者 Andriod (IKEv1 with PSK and Xauth) 原生内置 IPSec VPN 客户端进行连接" - -msgid "VPN Client IP" -msgstr "VPN客户端地址段" - -msgid "LAN DHCP reserved started IP addresses with the same subnet mask" -msgstr "VPN客户端使用DHCP保留空余IP的起始地址,必须和路由器LAN同一个子网掩码,例如 192.168.0.10/24" - -msgid "VPN Client DNS" -msgstr "VPN客户端DNS服务器" - -msgid "DNS using in VPN tunnel.Set to the router's LAN IP is recommended" -msgstr "指定VPN客户端的DNS地址。推荐设置为路由器的LAN IP,例如 192.168.0.1" - -msgid "Account" -msgstr "账户" - -msgid "Secret Pre-Shared Key" -msgstr "PSK密钥" - -msgid "IPSec VPN Server status" -msgstr "IPSec VPN 服务器运行状态" - -msgid "Disable from startup" -msgstr "禁止开机启动" - -msgid "Enable on startup" -msgstr "允许开机启动" - - diff --git a/package/lean/luci-app-ipsec-vpnd/root/etc/config/ipsec b/package/lean/luci-app-ipsec-vpnd/root/etc/config/ipsec deleted file mode 100644 index 93c21f278..000000000 --- a/package/lean/luci-app-ipsec-vpnd/root/etc/config/ipsec +++ /dev/null @@ -1,9 +0,0 @@ - -config service 'ipsec' - option clientdns '192.168.0.1' - option account 'lean' - option secret 'myopenwrt' - option enabled '0' - option password '12345678' - option clientip '192.168.0.10/24' - diff --git a/package/lean/luci-app-ipsec-vpnd/root/etc/init.d/ipsec b/package/lean/luci-app-ipsec-vpnd/root/etc/init.d/ipsec deleted file mode 100755 index 5a4c6a217..000000000 --- a/package/lean/luci-app-ipsec-vpnd/root/etc/init.d/ipsec +++ /dev/null @@ -1,427 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=90 -STOP=10 - -USE_PROCD=1 -PROG=/usr/lib/ipsec/starter - -. $IPKG_INSTROOT/lib/functions.sh -. $IPKG_INSTROOT/lib/functions/network.sh - -IPSEC_SECRETS_FILE=/etc/ipsec.secrets -IPSEC_CONN_FILE=/etc/ipsec.conf -STRONGSWAN_CONF_FILE=/etc/strongswan.conf - -IPSEC_VAR_SECRETS_FILE=/var/ipsec/ipsec.secrets -IPSEC_VAR_CONN_FILE=/var/ipsec/ipsec.conf -STRONGSWAN_VAR_CONF_FILE=/var/ipsec/strongswan.conf - -WAIT_FOR_INTF=0 - -file_reset() { - : > "$1" -} - -xappend() { - local file="$1" - shift - - echo "${@}" >> "${file}" -} - -remove_include() { - local file="$1" - local include="$2" - - sed -i "\_${include}_d" "${file}" -} - -remove_includes() { - remove_include "${IPSEC_CONN_FILE}" "${IPSEC_VAR_CONN_FILE}" - remove_include "${IPSEC_SECRETS_FILE}" "${IPSEC_VAR_SECRETS_FILE}" - remove_include "${STRONGSWAN_CONF_FILE}" "${STRONGSWAN_VAR_CONF_FILE}" -} - -do_include() { - local conf="$1" - local uciconf="$2" - local backup=`mktemp -t -p /tmp/ ipsec-init-XXXXXX` - - [ ! -f "${conf}" ] && rm -rf "${conf}" - touch "${conf}" - - cat "${conf}" | grep -v "${uciconf}" > "${backup}" - mv "${backup}" "${conf}" - xappend "${conf}" "include ${uciconf}" - file_reset "${uciconf}" -} - -ipsec_reset() { - do_include "${IPSEC_CONN_FILE}" "${IPSEC_VAR_CONN_FILE}" -} - -ipsec_xappend() { - xappend "${IPSEC_VAR_CONN_FILE}" "$@" -} - -swan_reset() { - do_include "${STRONGSWAN_CONF_FILE}" "${STRONGSWAN_VAR_CONF_FILE}" -} - -swan_xappend() { - xappend "${STRONGSWAN_VAR_CONF_FILE}" "$@" -} - -secret_reset() { - do_include "${IPSEC_SECRETS_FILE}" "${IPSEC_VAR_SECRETS_FILE}" -} - -secret_xappend() { - xappend "${IPSEC_VAR_SECRETS_FILE}" "$@" -} - -warning() { - echo "WARNING: $@" >&2 -} - -add_crypto_proposal() { - local encryption_algorithm - local hash_algorithm - local dh_group - - config_get encryption_algorithm "$1" encryption_algorithm - config_get hash_algorithm "$1" hash_algorithm - config_get dh_group "$1" dh_group - - [ -n "${encryption_algorithm}" ] && \ - crypto="${crypto:+${crypto},}${encryption_algorithm}${hash_algorithm:+-${hash_algorithm}}${dh_group:+-${dh_group}}" -} - -set_crypto_proposal() { - local conf="$1" - local proposal - - crypto="" - - config_get crypto_proposal "$conf" crypto_proposal "" - for proposal in $crypto_proposal; do - add_crypto_proposal "$proposal" - done - - [ -n "${crypto}" ] && { - local force_crypto_proposal - - config_get_bool force_crypto_proposal "$conf" force_crypto_proposal - - [ "${force_crypto_proposal}" = "1" ] && crypto="${crypto}!" - } - - crypto_proposal="${crypto}" -} - -config_conn() { - # Generic ipsec conn section shared by tunnel and transport - local mode - local local_subnet - local local_nat - local local_sourceip - local local_updown - local local_firewall - local remote_subnet - local remote_sourceip - local remote_updown - local remote_firewall - local ikelifetime - local lifetime - local margintime - local keyingtries - local dpdaction - local dpddelay - local inactivity - local keyexchange - - config_get mode "$1" mode "route" - config_get local_subnet "$1" local_subnet "" - config_get local_nat "$1" local_nat "" - config_get local_sourceip "$1" local_sourceip "" - config_get local_updown "$1" local_updown "" - config_get local_firewall "$1" local_firewall "" - config_get remote_subnet "$1" remote_subnet "" - config_get remote_sourceip "$1" remote_sourceip "" - config_get remote_updown "$1" remote_updown "" - config_get remote_firewall "$1" remote_firewall "" - config_get ikelifetime "$1" ikelifetime "3h" - config_get lifetime "$1" lifetime "1h" - config_get margintime "$1" margintime "9m" - config_get keyingtries "$1" keyingtries "3" - config_get dpdaction "$1" dpdaction "none" - config_get dpddelay "$1" dpddelay "30s" - config_get inactivity "$1" inactivity - config_get keyexchange "$1" keyexchange "ikev2" - - [ -n "$local_nat" ] && local_subnet=$local_nat - - ipsec_xappend "conn $config_name-$1" - ipsec_xappend " left=%any" - ipsec_xappend " right=$remote_gateway" - - [ -n "$local_sourceip" ] && ipsec_xappend " leftsourceip=$local_sourceip" - [ -n "$local_subnet" ] && ipsec_xappend " leftsubnet=$local_subnet" - - [ -n "$local_firewall" ] && ipsec_xappend " leftfirewall=$local_firewall" - [ -n "$remote_firewall" ] && ipsec_xappend " rightfirewall=$remote_firewall" - - ipsec_xappend " ikelifetime=$ikelifetime" - ipsec_xappend " lifetime=$lifetime" - ipsec_xappend " margintime=$margintime" - ipsec_xappend " keyingtries=$keyingtries" - ipsec_xappend " dpdaction=$dpdaction" - ipsec_xappend " dpddelay=$dpddelay" - - [ -n "$inactivity" ] && ipsec_xappend " inactivity=$inactivity" - - if [ "$auth_method" = "psk" ]; then - ipsec_xappend " leftauth=psk" - ipsec_xappend " rightauth=psk" - - [ "$remote_sourceip" != "" ] && ipsec_xappend " rightsourceip=$remote_sourceip" - [ "$remote_subnet" != "" ] && ipsec_xappend " rightsubnet=$remote_subnet" - - ipsec_xappend " auto=$mode" - else - warning "AuthenticationMethod $auth_method not supported" - fi - - [ -n "$local_identifier" ] && ipsec_xappend " leftid=$local_identifier" - [ -n "$remote_identifier" ] && ipsec_xappend " rightid=$remote_identifier" - [ -n "$local_updown" ] && ipsec_xappend " leftupdown=$local_updown" - [ -n "$remote_updown" ] && ipsec_xappend " rightupdown=$remote_updown" - ipsec_xappend " keyexchange=$keyexchange" - - set_crypto_proposal "$1" - [ -n "${crypto_proposal}" ] && ipsec_xappend " esp=$crypto_proposal" - [ -n "${ike_proposal}" ] && ipsec_xappend " ike=$ike_proposal" -} - -config_tunnel() { - config_conn "$1" - - # Specific for the tunnel part - ipsec_xappend " type=tunnel" -} - -config_transport() { - config_conn "$1" - - # Specific for the transport part - ipsec_xappend " type=transport" -} - -config_remote() { - local enabled - local gateway - local pre_shared_key - local auth_method - - config_name=$1 - - config_get_bool enabled "$1" enabled 0 - [ $enabled -eq 0 ] && return - - config_get gateway "$1" gateway - config_get pre_shared_key "$1" pre_shared_key - config_get auth_method "$1" authentication_method - config_get local_identifier "$1" local_identifier "" - config_get remote_identifier "$1" remote_identifier "" - - [ "$gateway" = "any" ] && remote_gateway="%any" || remote_gateway="$gateway" - - [ -z "$local_identifier" ] && { - local ipdest - - [ "$remote_gateway" = "%any" ] && ipdest="1.1.1.1" || ipdest="$remote_gateway" - local_gateway=`ip route get $ipdest | awk -F"src" '/src/{gsub(/ /,"");print $2}'` - } - - [ -n "$local_identifier" ] && secret_xappend -n "$local_identifier " || secret_xappend -n "$local_gateway " - [ -n "$remote_identifier" ] && secret_xappend -n "$remote_identifier " || secret_xappend -n "$remote_gateway " - - secret_xappend ": PSK \"$pre_shared_key\"" - - set_crypto_proposal "$1" - ike_proposal="$crypto_proposal" - - config_list_foreach "$1" tunnel config_tunnel - - config_list_foreach "$1" transport config_transport - - ipsec_xappend "" -} - -config_ipsec() { - local debug - local rtinstall_enabled - local routing_tables_ignored - local routing_table - local routing_table_id - local interface - local device_list - - ipsec_reset - secret_reset - swan_reset - - ipsec_xappend "# generated by /etc/init.d/ipsec" - ipsec_xappend "version 2" - ipsec_xappend "" - - secret_xappend "# generated by /etc/init.d/ipsec" - - config_get debug "$1" debug 0 - config_get_bool rtinstall_enabled "$1" rtinstall_enabled 1 - [ $rtinstall_enabled -eq 1 ] && install_routes=yes || install_routes=no - - # prepare extra charon config option ignore_routing_tables - for routing_table in $(config_get "$1" "ignore_routing_tables"); do - if [ "$routing_table" -ge 0 ] 2>/dev/null; then - routing_table_id=$routing_table - else - routing_table_id=$(sed -n '/[ \t]*[0-9]\+[ \t]\+'$routing_table'[ \t]*$/s/[ \t]*\([0-9]\+\).*/\1/p' /etc/iproute2/rt_tables) - fi - - [ -n "$routing_table_id" ] && append routing_tables_ignored "$routing_table_id" - done - - local interface_list=$(config_get "$1" "interface") - if [ -z "$interface_list" ]; then - WAIT_FOR_INTF=0 - else - for interface in $interface_list; do - network_get_device device $interface - [ -n "$device" ] && append device_list "$device" "," - done - [ -n "$device_list" ] && WAIT_FOR_INTF=0 || WAIT_FOR_INTF=1 - fi - - swan_xappend "# generated by /etc/init.d/ipsec" - swan_xappend "charon {" - swan_xappend " load_modular = yes" - swan_xappend " install_routes = $install_routes" - [ -n "$routing_tables_ignored" ] && swan_xappend " ignore_routing_tables = $routing_tables_ignored" - [ -n "$device_list" ] && swan_xappend " interfaces_use = $device_list" - swan_xappend " plugins {" - swan_xappend " include /etc/strongswan.d/charon/*.conf" - swan_xappend " }" - swan_xappend " syslog {" - swan_xappend " identifier = ipsec" - swan_xappend " daemon {" - swan_xappend " default = $debug" - swan_xappend " }" - swan_xappend " auth {" - swan_xappend " default = $debug" - swan_xappend " }" - swan_xappend " }" - swan_xappend "}" -} - -prepare_env() { - mkdir -p /var/ipsec - remove_includes - config_load ipsec - config_foreach config_ipsec ipsec - config_foreach config_remote remote -} - -service_running() { - ipsec status > /dev/null 2>&1 -} - -reload_service() { - local bool vt_enabled=`uci get ipsec.@service[0].enabled 2>/dev/null` - [ "$vt_enabled" = 0 ] && /etc/init.d/ipsec stop && return - running && { - prepare_env - [ $WAIT_FOR_INTF -eq 0 ] && { - ipsec rereadall - ipsec reload - return - } - } - [ "$vt_enabled" = 1 ] && start -} - -check_ipsec_interface() { - local intf - - for intf in $(config_get "$1" interface); do - procd_add_interface_trigger "interface.*" "$intf" /etc/init.d/ipsec reload - done -} - -service_triggers() { - procd_add_reload_trigger "ipsec" - config load "ipsec" - config_foreach check_ipsec_interface ipsec -} - -start_service() { - local vt_enabled=`uci get ipsec.@service[0].enabled 2>/dev/null` - local vt_clientip=`uci get ipsec.@service[0].clientip` - local vt_clientdns=`uci get ipsec.@service[0].clientdns` - local vt_account=`uci get ipsec.@service[0].account` - local vt_password=`uci get ipsec.@service[0].password 2>/dev/null` - local vt_secret=`uci get ipsec.@service[0].secret 2>/dev/null` - - [ "$vt_enabled" = 0 ] && /etc/init.d/ipsec stop && return - - cat > /etc/ipsec.conf < /etc/ipsec.secrets </dev/null -iptables -D FORWARD -m policy --dir out --pol ipsec --proto esp -j ACCEPT 2>/dev/null -iptables -D INPUT -m policy --dir in --pol ipsec --proto esp -j ACCEPT 2>/dev/null -iptables -D OUTPUT -m policy --dir out --pol ipsec --proto esp -j ACCEPT 2>/dev/null - -iptables -I FORWARD -m policy --dir in --pol ipsec --proto esp -j ACCEPT -iptables -I FORWARD -m policy --dir out --pol ipsec --proto esp -j ACCEPT -iptables -I INPUT -m policy --dir in --pol ipsec --proto esp -j ACCEPT -iptables -I OUTPUT -m policy --dir out --pol ipsec --proto esp -j ACCEPT - -echo 1 > /proc/sys/net/ipv4/conf/br-lan/proxy_arp diff --git a/package/lean/luci-app-ipsec-vpnd/root/etc/uci-defaults/ipsec b/package/lean/luci-app-ipsec-vpnd/root/etc/uci-defaults/ipsec deleted file mode 100755 index b9eb66fb8..000000000 --- a/package/lean/luci-app-ipsec-vpnd/root/etc/uci-defaults/ipsec +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete firewall.ipsecd - set firewall.ipsecd=include - set firewall.ipsecd.type=script - set firewall.ipsecd.path=/etc/ipsec.include - set firewall.ipsecd.reload=1 - commit firewall -EOF - -uci -q batch <<-EOF >/dev/null - delete firewall.ike - add firewall rule - rename firewall.@rule[-1]="ike" - set firewall.@rule[-1].name="ike" - set firewall.@rule[-1].target="ACCEPT" - set firewall.@rule[-1].src="wan" - set firewall.@rule[-1].proto="udp" - set firewall.@rule[-1].dest_port="500" - delete firewall.ipsec - add firewall rule - rename firewall.@rule[-1]="ipsec" - set firewall.@rule[-1].name="ipsec" - set firewall.@rule[-1].target="ACCEPT" - set firewall.@rule[-1].src="wan" - set firewall.@rule[-1].proto="udp" - set firewall.@rule[-1].dest_port="4500" - delete firewall.ah - add firewall rule - rename firewall.@rule[-1]="ah" - set firewall.@rule[-1].name="ah" - set firewall.@rule[-1].target="ACCEPT" - set firewall.@rule[-1].src="wan" - set firewall.@rule[-1].proto="ah" - delete firewall.esp - add firewall rule - rename firewall.@rule[-1]="esp" - set firewall.@rule[-1].name="esp" - set firewall.@rule[-1].target="ACCEPT" - set firewall.@rule[-1].src="wan" - set firewall.@rule[-1].proto="esp" - commit firewall -EOF - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@ipsec[-1] - add ucitrack ipsec - set ucitrack.@ipsec[-1].init=ipsec - commit ucitrack -EOF - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-openvpn-server/Makefile b/package/lean/luci-app-openvpn-server/Makefile deleted file mode 100644 index 1a8f23034..000000000 --- a/package/lean/luci-app-openvpn-server/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for OpenVPN Server -LUCI_DEPENDS:=+openvpn-openssl +openvpn-easy-rsa +kmod-tun -LUCI_PKGARCH:=all -PKG_NAME:=luci-app-openvpn-server -PKG_VERSION:=2.0 -PKG_RELEASE:=17 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - - - diff --git a/package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua b/package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua deleted file mode 100644 index b5eb40a69..000000000 --- a/package/lean/luci-app-openvpn-server/luasrc/controller/openvpn-server.lua +++ /dev/null @@ -1,14 +0,0 @@ - -module("luci.controller.openvpn-server", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/openvpn") then - return - end - - entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false - - local page - - entry({"admin", "vpn", "openvpn-server"}, cbi("openvpn-server/openvpn-server"), _("OpenVPN Server"), 80).dependent=false -end diff --git a/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua b/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua deleted file mode 100644 index df795e4c9..000000000 --- a/package/lean/luci-app-openvpn-server/luasrc/model/cbi/openvpn-server/openvpn-server.lua +++ /dev/null @@ -1,131 +0,0 @@ - ---require("luci.tools.webadmin") - -mp = Map("openvpn", "OpenVPN Server","") - -s = mp:section(TypedSection, "openvpn", "", translate("An easy config OpenVPN Server Web-UI")) -s.anonymous = true -s.addremove = false - -s:tab("basic", translate("Base Setting")) - -o = s:taboption("basic", Flag, "enabled", translate("Enable")) - -port = s:taboption("basic", Value, "port", translate("Port")) -port.datatype = "range(1,65535)" - -ddns = s:taboption("basic", Value, "ddns", translate("WAN DDNS or IP")) -ddns.datatype = "string" -ddns.default = "exmple.com" -ddns.rmempty = false - -localnet = s:taboption("basic", Value, "server", translate("Client Network")) -localnet.datatype = "string" -localnet.description = translate("VPN Client Network IP with subnet") - -list = s:taboption("basic", DynamicList, "push") -list.title = translate("Client Settings") -list.datatype = "string" -list.description = translate("Set route 192.168.0.0 255.255.255.0 and dhcp-option DNS 192.168.0.1 base on your router") - - -local o -o = s:taboption("basic", Button,"certificate",translate("OpenVPN Client config file")) -o.inputtitle = translate("Download .ovpn file") -o.description = translate("If you are using IOS client, please download this .ovpn file and send it via QQ or Email to your IOS device") -o.inputstyle = "reload" -o.write = function() - luci.sys.call("sh /etc/genovpn.sh 2>&1 >/dev/null") - Download() -end - -s:tab("code", translate("Special Code")) - -local conf = "/etc/ovpnadd.conf" -local NXFS = require "nixio.fs" -o = s:taboption("code", TextValue, "conf") -o.description = translate("(!)Special Code you know that add in to client .ovpn file") -o.rows = 13 -o.wrap = "off" -o.cfgvalue = function(self, section) - return NXFS.readfile(conf) or "" -end -o.write = function(self, section, value) - NXFS.writefile(conf, value:gsub("\r\n", "\n")) -end - - -local pid = luci.util.exec("/usr/bin/pgrep openvpn") - -function openvpn_process_status() - local status = "OpenVPN is not running now " - - if pid ~= "" then - status = "OpenVPN is running with the PID " .. pid .. "" - end - - local status = { status=status } - local table = { pid=status } - return table -end - - - -function Download() - local t,e - t=nixio.open("/tmp/my.ovpn","r") - luci.http.header('Content-Disposition','attachment; filename="my.ovpn"') - luci.http.prepare_content("application/octet-stream") - while true do - e=t:read(nixio.const.buffersize) - if(not e)or(#e==0)then - break - else - luci.http.write(e) - end - end - t:close() - luci.http.close() -end - -t = mp:section(Table, openvpn_process_status()) -t.anonymous = true - -t:option(DummyValue, "status", translate("OpenVPN status")) - -if pid == "" then - start = t:option(Button, "_start", translate("Start")) - start.inputstyle = "apply" - function start.write(self, section) - luci.util.exec("uci set openvpn.myvpn.enabled=='1' && uci commit openvpn") - message = luci.util.exec("/etc/init.d/openvpn start 2>&1") - luci.util.exec("sleep 2") - luci.http.redirect( - luci.dispatcher.build_url("admin", "vpn", "openvpn-server") .. "?message=" .. message - ) - end -else - stop = t:option(Button, "_stop", translate("Stop")) - stop.inputstyle = "reset" - function stop.write(self, section) - luci.util.exec("uci set openvpn.myvpn.enabled=='0' && uci commit openvpn") - luci.util.exec("/etc/init.d/openvpn stop") - luci.util.exec("sleep 2") - luci.http.redirect( - luci.dispatcher.build_url("admin", "vpn", "openvpn-server") - ) - end -end - -function mp.on_after_commit(self) - os.execute("uci set firewall.openvpn.dest_port=$(uci get openvpn.myvpn.port) && uci commit firewall && /etc/init.d/firewall restart") - os.execute("/etc/init.d/openvpn restart") -end - - ---local apply = luci.http.formvalue("cbi.apply") ---if apply then --- os.execute("/etc/init.d/openvpn restart") ---end - -return mp diff --git a/package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po b/package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po deleted file mode 100644 index 960ba61b1..000000000 --- a/package/lean/luci-app-openvpn-server/po/zh-cn/openvpn-server.po +++ /dev/null @@ -1,50 +0,0 @@ -msgid "OpenVPN Server" -msgstr "OpenVPN 服务器" - -msgid "An easy config OpenVPN Server Web-UI" -msgstr "易于使用的 OpenVPN 服务器 Web-UI" - -msgid "Base Setting" -msgstr "基本设置" - -msgid "Enable" -msgstr "启用" - -msgid "Port" -msgstr "端口" - -msgid "WAN DDNS or IP" -msgstr "WAN口的 DDNS域名 或者 IP" - - -msgid "Client Network" -msgstr "客户端网段" - -msgid "VPN Client Network IP with subnet" -msgstr "客户端分配的网段地址(默认为 10.8.0.0 255.255.255.0)" - - -msgid "Client Settings" -msgstr "客户端推送配置" - -msgid "OpenVPN Client config file" -msgstr "OpenVPN 客户端配置文件" - - -msgid "Download .ovpn file" -msgstr "一键下载 .ovpn 文件" - -msgid "If you are using IOS client, please download this .ovpn file and send it via QQ or Email to your IOS device" -msgstr "如果你使用的是 iOS 设备,你可以使用 QQ 或者邮件发送到自己的设备上用 OpenVPN 客户端打开导入" - -msgid "Special Code" -msgstr "特殊代码" - -msgid "(!)Special Code you know that add in to client .ovpn file" -msgstr "(!)特殊代码将自动合并到客户端的 .ovpn 配置文件中" - -msgid "Set route 192.168.0.0 255.255.255.0 and dhcp-option DNS 192.168.0.1 base on your router" -msgstr "根据路由的实际LAN IP 修改 route 192.168.0.0 255.255.255.0 和 dhcp-option DNS 192.168.0.1 这两行" - -msgid "OpenVPN status" -msgstr "OpenVPN 服务器运行状态" diff --git a/package/lean/luci-app-openvpn-server/root/etc/config/openvpn b/package/lean/luci-app-openvpn-server/root/etc/config/openvpn deleted file mode 100644 index 6a829f4e6..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/config/openvpn +++ /dev/null @@ -1,28 +0,0 @@ - -config openvpn 'myvpn' - option enabled '0' - option proto 'tcp-server' - option port '1194' - option ddns example.com - option dev 'tun' - option topology 'subnet' - option server '10.8.0.0 255.255.255.0' - option comp_lzo 'adaptive' - option ca '/etc/openvpn/ca.crt' - option dh '/etc/openvpn/dh1024.pem' - option cert '/etc/openvpn/server.crt' - option key '/etc/openvpn/server.key' - option persist_key '1' - option persist_tun '1' - option user 'nobody' - option group 'nogroup' - option max_clients '10' - option keepalive '10 120' - option verb '3' - option status '/var/log/openvpn_status.log' - option log '/tmp/openvpn.log' - list push 'route 192.168.0.0 255.255.255.0' - list push 'comp-lzo adaptive' - list push 'redirect-gateway def1 bypass-dhcp' - list push 'dhcp-option DNS 192.168.0.1' - diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/01.pem b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/01.pem deleted file mode 100644 index a73a757e9..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/01.pem +++ /dev/null @@ -1,74 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - Validity - Not Before: Aug 23 14:26:42 2017 GMT - Not After : Aug 21 14:26:42 2027 GMT - Subject: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=server/name=EasyRSA/emailAddress=ZJ@ZJ.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:e0:67:2e:33:ab:4f:4f:a1:78:c6:32:ba:d3:1d: - 71:73:34:ba:45:40:88:87:76:03:fb:87:d8:4e:4e: - 7c:7d:95:22:7d:8e:70:dc:68:10:27:fe:7d:f0:79: - 93:86:83:ef:a9:16:78:ae:86:5e:ea:42:74:38:4d: - 37:0d:c9:34:a6:84:5e:64:ad:dd:91:dd:df:02:bf: - 53:f8:fb:c0:9b:cb:bd:93:7c:26:ab:bd:0a:c6:c3: - 5d:da:5d:b3:c0:ff:72:a1:2f:1e:0b:f6:a6:71:77: - f9:00:38:8a:ae:ab:c0:86:11:ab:12:de:1e:82:13: - e8:c3:d5:bb:6f:2e:bf:6e:c1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Cert Type: - SSL Server - Netscape Comment: - Easy-RSA Generated Server Certificate - X509v3 Subject Key Identifier: - 1C:06:47:33:61:0E:15:84:D5:08:5A:40:E6:C9:23:EF:87:F3:EE:F9 - X509v3 Authority Key Identifier: - keyid:8D:D5:04:79:10:05:4F:1B:12:63:11:AC:00:D4:FC:CC:31:00:B8:09 - DirName:/C=CN/ST=ZJ/L=ZJ/O=ZJ/OU=ZJ/CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - serial:AE:18:A1:E1:3D:52:4D:F0 - - X509v3 Extended Key Usage: - TLS Web Server Authentication - X509v3 Key Usage: - Digital Signature, Key Encipherment - Signature Algorithm: sha256WithRSAEncryption - aa:b5:0d:7a:b3:09:7a:d4:e6:df:46:0d:54:39:e2:34:da:4f: - 9b:92:d6:41:db:10:b9:ed:66:34:7f:9d:a9:fa:af:6a:80:b4: - 1f:13:d3:39:a6:72:93:5a:6b:e8:4f:ba:95:f9:83:10:58:b3: - fe:12:3f:a9:e8:31:04:e0:8e:d8:4c:c1:f7:7e:fc:7a:ba:17: - d8:2e:76:ab:7c:17:ca:a4:1d:3d:c5:bc:df:02:e5:2e:91:c4: - b2:6c:40:a1:e2:3d:64:15:da:a6:b0:e4:1d:66:11:54:c0:49: - 05:91:c4:69:68:2d:bc:d5:f6:32:43:3c:18:c4:97:54:45:52: - 28:36 ------BEGIN CERTIFICATE----- -MIIDvzCCAyigAwIBAgIBATANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJDTjEL -MAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJaSjELMAkGA1UECxMC -WkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJKoZIhvcN -AQkBFglaSkBaSi5jb20wHhcNMTcwODIzMTQyNjQyWhcNMjcwODIxMTQyNjQyWjB+ -MQswCQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQK -EwJaSjELMAkGA1UECxMCWkoxDzANBgNVBAMTBnNlcnZlcjEQMA4GA1UEKRMHRWFz -eVJTQTEYMBYGCSqGSIb3DQEJARYJWkpAWkouY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDgZy4zq09PoXjGMrrTHXFzNLpFQIiHdgP7h9hOTnx9lSJ9jnDc -aBAn/n3weZOGg++pFniuhl7qQnQ4TTcNyTSmhF5krd2R3d8Cv1P4+8Cby72TfCar -vQrGw13aXbPA/3KhLx4L9qZxd/kAOIquq8CGEasS3h6CE+jD1btvLr9uwQIDAQAB -o4IBTDCCAUgwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMCBkAwNAYJYIZIAYb4 -QgENBCcWJUVhc3ktUlNBIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYD -VR0OBBYEFBwGRzNhDhWE1QhaQObJI++H8+75MIGwBgNVHSMEgagwgaWAFI3VBHkQ -BU8bEmMRrADU/MwxALgJoYGBpH8wfTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpK -MQswCQYDVQQHEwJaSjELMAkGA1UEChMCWkoxCzAJBgNVBAsTAlpKMQ4wDAYDVQQD -EwVaSiBDQTEQMA4GA1UEKRMHRWFzeVJTQTEYMBYGCSqGSIb3DQEJARYJWkpAWkou -Y29tggkArhih4T1STfAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWg -MA0GCSqGSIb3DQEBCwUAA4GBAKq1DXqzCXrU5t9GDVQ54jTaT5uS1kHbELntZjR/ -nan6r2qAtB8T0zmmcpNaa+hPupX5gxBYs/4SP6noMQTgjthMwfd+/Hq6F9gudqt8 -F8qkHT3FvN8C5S6RxLJsQKHiPWQV2qaw5B1mEVTASQWRxGloLbzV9jJDPBjEl1RF -Uig2 ------END CERTIFICATE----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/02.pem b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/02.pem deleted file mode 100644 index c757880ea..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/02.pem +++ /dev/null @@ -1,71 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - Validity - Not Before: Aug 23 14:26:58 2017 GMT - Not After : Aug 21 14:26:58 2027 GMT - Subject: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=client1/name=EasyRSA/emailAddress=ZJ@ZJ.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:b7:6b:40:0b:c1:ef:a7:c3:fa:54:32:c2:d7:87: - fa:ac:85:18:ae:af:44:ba:dd:57:0f:43:73:eb:df: - 37:5e:5e:8f:ad:43:7a:87:dd:a6:bd:6a:0b:68:8d: - 75:0c:fe:49:39:e1:54:11:53:0f:b5:63:10:5b:21: - 98:7f:53:32:b3:d6:b0:3d:23:fc:1d:ad:06:b0:f0: - fb:10:27:83:e1:5e:5a:b4:f6:7c:02:87:4c:73:86: - 7b:79:07:ca:a7:1c:18:2c:70:e3:9d:e6:f0:89:06: - 4b:25:2c:09:39:51:c3:d4:44:ef:81:5e:aa:e0:63: - d8:11:c6:9c:e0:6f:d8:66:11 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Comment: - Easy-RSA Generated Certificate - X509v3 Subject Key Identifier: - E8:15:F9:71:C4:A7:C2:41:A3:AF:F5:C5:93:51:8E:5D:67:9B:12:E2 - X509v3 Authority Key Identifier: - keyid:8D:D5:04:79:10:05:4F:1B:12:63:11:AC:00:D4:FC:CC:31:00:B8:09 - DirName:/C=CN/ST=ZJ/L=ZJ/O=ZJ/OU=ZJ/CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - serial:AE:18:A1:E1:3D:52:4D:F0 - - X509v3 Extended Key Usage: - TLS Web Client Authentication - X509v3 Key Usage: - Digital Signature - Signature Algorithm: sha256WithRSAEncryption - 5b:63:c2:e5:e4:04:ad:f4:b6:76:24:df:94:a5:b0:a2:99:38: - f9:e7:b4:2f:79:91:51:1b:06:4b:33:fc:4c:74:ce:47:3e:54: - 1b:da:ea:43:e3:6d:6e:ec:b4:cd:77:86:ea:ea:48:a1:79:70: - 5c:ff:99:0e:fb:bd:fc:0d:89:a6:2e:13:fe:86:82:69:33:4c: - 28:21:0d:a8:ba:1a:3e:c7:2e:2d:97:0c:5a:ed:e3:af:73:fc: - bb:c9:58:05:c5:26:56:13:1c:3e:8f:90:c7:e8:d9:e5:0b:1f: - 40:9a:fa:15:49:b9:d8:8e:6a:fd:71:f4:3c:df:a1:11:af:fb: - ea:a8 ------BEGIN CERTIFICATE----- -MIIDpjCCAw+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJDTjEL -MAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJaSjELMAkGA1UECxMC -WkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJKoZIhvcN -AQkBFglaSkBaSi5jb20wHhcNMTcwODIzMTQyNjU4WhcNMjcwODIxMTQyNjU4WjB/ -MQswCQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQK -EwJaSjELMAkGA1UECxMCWkoxEDAOBgNVBAMTB2NsaWVudDExEDAOBgNVBCkTB0Vh -c3lSU0ExGDAWBgkqhkiG9w0BCQEWCVpKQFpKLmNvbTCBnzANBgkqhkiG9w0BAQEF -AAOBjQAwgYkCgYEAt2tAC8Hvp8P6VDLC14f6rIUYrq9Eut1XD0Nz6983Xl6PrUN6 -h92mvWoLaI11DP5JOeFUEVMPtWMQWyGYf1Mys9awPSP8Ha0GsPD7ECeD4V5atPZ8 -AodMc4Z7eQfKpxwYLHDjnebwiQZLJSwJOVHD1ETvgV6q4GPYEcac4G/YZhECAwEA -AaOCATIwggEuMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdl -bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU6BX5ccSnwkGjr/XFk1GOXWeb -EuIwgbAGA1UdIwSBqDCBpYAUjdUEeRAFTxsSYxGsANT8zDEAuAmhgYGkfzB9MQsw -CQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJa -SjELMAkGA1UECxMCWkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNB -MRgwFgYJKoZIhvcNAQkBFglaSkBaSi5jb22CCQCuGKHhPVJN8DATBgNVHSUEDDAK -BggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQELBQADgYEAW2PC5eQE -rfS2diTflKWwopk4+ee0L3mRURsGSzP8THTORz5UG9rqQ+Ntbuy0zXeG6upIoXlw -XP+ZDvu9/A2Jpi4T/oaCaTNMKCENqLoaPscuLZcMWu3jr3P8u8lYBcUmVhMcPo+Q -x+jZ5QsfQJr6FUm52I5q/XH0PN+hEa/76qg= ------END CERTIFICATE----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.crt b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.crt deleted file mode 100644 index 7b7ba5ef8..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.crt +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDXDCCAsWgAwIBAgIJAK4YoeE9Uk3wMA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNV -BAYTAkNOMQswCQYDVQQIEwJaSjELMAkGA1UEBxMCWkoxCzAJBgNVBAoTAlpKMQsw -CQYDVQQLEwJaSjEOMAwGA1UEAxMFWkogQ0ExEDAOBgNVBCkTB0Vhc3lSU0ExGDAW -BgkqhkiG9w0BCQEWCVpKQFpKLmNvbTAeFw0xNzA4MjMxNDE4MDVaFw0yNzA4MjEx -NDE4MDVaMH0xCzAJBgNVBAYTAkNOMQswCQYDVQQIEwJaSjELMAkGA1UEBxMCWkox -CzAJBgNVBAoTAlpKMQswCQYDVQQLEwJaSjEOMAwGA1UEAxMFWkogQ0ExEDAOBgNV -BCkTB0Vhc3lSU0ExGDAWBgkqhkiG9w0BCQEWCVpKQFpKLmNvbTCBnzANBgkqhkiG -9w0BAQEFAAOBjQAwgYkCgYEAsLBNLkjfNUK4Rb3xgJD0EEgzp6b+5zkiibT3wdS9 -SKZqkqJRcM/z7Ifc79LKXDDHrVnajkyc8QSaXOKVW8pTx75fYnoHjNbeU9JZHoTg -9GgRWq5HHUJlxhsdbcGeTxOHrMRz2d+VzvNvs5KOLJaqGkRmm/KMb7nTRnwjhx4A -pWsCAwEAAaOB4zCB4DAdBgNVHQ4EFgQUjdUEeRAFTxsSYxGsANT8zDEAuAkwgbAG -A1UdIwSBqDCBpYAUjdUEeRAFTxsSYxGsANT8zDEAuAmhgYGkfzB9MQswCQYDVQQG -EwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJaSjELMAkG -A1UECxMCWkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJ -KoZIhvcNAQkBFglaSkBaSi5jb22CCQCuGKHhPVJN8DAMBgNVHRMEBTADAQH/MA0G -CSqGSIb3DQEBCwUAA4GBAAAN0aRmQGNsF23CxShEnj3ohgpYA20F2FwEWYmCCWXe -CKxuPGtPZAeLmToIMgn75QlyuvVG+Uoe7I6ylbEK3XoeNStcS61wAXL8hIPfMcUX -fDsImBvc+Bo+LxQMWMSz0r88+B8784KELyaQKOnvPlTrnTuyP9RftjUWpjy23Kjd ------END CERTIFICATE----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.key b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.key deleted file mode 100644 index 796fbf10e..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/ca.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALCwTS5I3zVCuEW9 -8YCQ9BBIM6em/uc5Iom098HUvUimapKiUXDP8+yH3O/Sylwwx61Z2o5MnPEEmlzi -lVvKU8e+X2J6B4zW3lPSWR6E4PRoEVquRx1CZcYbHW3Bnk8Th6zEc9nflc7zb7OS -jiyWqhpEZpvyjG+500Z8I4ceAKVrAgMBAAECgYBfiTRyTlzCg6z3qNioV7hgBWpI -wHcbtz0BkKRWXh1q5vDBEJtQkGCoCF5iHmvkpUuSY/9U6gACIicFCk8QLrpVZGzY -1SgOQS796La2gYR0clCvtsf8Kg4BYCKkF40jGDGZTGKtWa9mPuOZXZFhSMZJiCQi -UIfTN3D9Ngt/nLFMwQJBANwavdYXnPxGr/0rL1ct0RUjsZLyd9kmr1gD4Nq+/uwC -FQrNHl/ieXOsSeD0eVNtuTFzmt8sTz963SXmbPv01dMCQQDNgPioq4M/1sluGUdI -yK5bantPAD7A7wTb+uryP7lNMuDSGTXgLsh+RrhBuDlUdi+OPc0dIJV1fTjEiLbI -fLsJAkEAoSSe6Zh+IaDrBfJRBYWQtuZcApasMfqFk227eMsuvcFEgJTt8QtRGeQA -bsbt8Ku7Uz4tG8lH99TPBglurwRwawJAALVrJhnBUB0LgMexiTy37TTGzBTyInQw -jhmlacRyfSOpxs+zcdx3cIgJ5qAeAn6N1227IViVa1xNL9BQ4QwdEQJBAJjLcCYS -twmgoyOj4K5+8+aAuuXWj7lpxEakOZbghrBmy0GytiRKN9wb/x8QF6EtrJAmYltL -wMMDUDE0zd+hc2Q= ------END PRIVATE KEY----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.crt b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.crt deleted file mode 100644 index c757880ea..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.crt +++ /dev/null @@ -1,71 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - Validity - Not Before: Aug 23 14:26:58 2017 GMT - Not After : Aug 21 14:26:58 2027 GMT - Subject: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=client1/name=EasyRSA/emailAddress=ZJ@ZJ.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:b7:6b:40:0b:c1:ef:a7:c3:fa:54:32:c2:d7:87: - fa:ac:85:18:ae:af:44:ba:dd:57:0f:43:73:eb:df: - 37:5e:5e:8f:ad:43:7a:87:dd:a6:bd:6a:0b:68:8d: - 75:0c:fe:49:39:e1:54:11:53:0f:b5:63:10:5b:21: - 98:7f:53:32:b3:d6:b0:3d:23:fc:1d:ad:06:b0:f0: - fb:10:27:83:e1:5e:5a:b4:f6:7c:02:87:4c:73:86: - 7b:79:07:ca:a7:1c:18:2c:70:e3:9d:e6:f0:89:06: - 4b:25:2c:09:39:51:c3:d4:44:ef:81:5e:aa:e0:63: - d8:11:c6:9c:e0:6f:d8:66:11 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Comment: - Easy-RSA Generated Certificate - X509v3 Subject Key Identifier: - E8:15:F9:71:C4:A7:C2:41:A3:AF:F5:C5:93:51:8E:5D:67:9B:12:E2 - X509v3 Authority Key Identifier: - keyid:8D:D5:04:79:10:05:4F:1B:12:63:11:AC:00:D4:FC:CC:31:00:B8:09 - DirName:/C=CN/ST=ZJ/L=ZJ/O=ZJ/OU=ZJ/CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - serial:AE:18:A1:E1:3D:52:4D:F0 - - X509v3 Extended Key Usage: - TLS Web Client Authentication - X509v3 Key Usage: - Digital Signature - Signature Algorithm: sha256WithRSAEncryption - 5b:63:c2:e5:e4:04:ad:f4:b6:76:24:df:94:a5:b0:a2:99:38: - f9:e7:b4:2f:79:91:51:1b:06:4b:33:fc:4c:74:ce:47:3e:54: - 1b:da:ea:43:e3:6d:6e:ec:b4:cd:77:86:ea:ea:48:a1:79:70: - 5c:ff:99:0e:fb:bd:fc:0d:89:a6:2e:13:fe:86:82:69:33:4c: - 28:21:0d:a8:ba:1a:3e:c7:2e:2d:97:0c:5a:ed:e3:af:73:fc: - bb:c9:58:05:c5:26:56:13:1c:3e:8f:90:c7:e8:d9:e5:0b:1f: - 40:9a:fa:15:49:b9:d8:8e:6a:fd:71:f4:3c:df:a1:11:af:fb: - ea:a8 ------BEGIN CERTIFICATE----- -MIIDpjCCAw+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJDTjEL -MAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJaSjELMAkGA1UECxMC -WkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJKoZIhvcN -AQkBFglaSkBaSi5jb20wHhcNMTcwODIzMTQyNjU4WhcNMjcwODIxMTQyNjU4WjB/ -MQswCQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQK -EwJaSjELMAkGA1UECxMCWkoxEDAOBgNVBAMTB2NsaWVudDExEDAOBgNVBCkTB0Vh -c3lSU0ExGDAWBgkqhkiG9w0BCQEWCVpKQFpKLmNvbTCBnzANBgkqhkiG9w0BAQEF -AAOBjQAwgYkCgYEAt2tAC8Hvp8P6VDLC14f6rIUYrq9Eut1XD0Nz6983Xl6PrUN6 -h92mvWoLaI11DP5JOeFUEVMPtWMQWyGYf1Mys9awPSP8Ha0GsPD7ECeD4V5atPZ8 -AodMc4Z7eQfKpxwYLHDjnebwiQZLJSwJOVHD1ETvgV6q4GPYEcac4G/YZhECAwEA -AaOCATIwggEuMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdl -bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU6BX5ccSnwkGjr/XFk1GOXWeb -EuIwgbAGA1UdIwSBqDCBpYAUjdUEeRAFTxsSYxGsANT8zDEAuAmhgYGkfzB9MQsw -CQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJa -SjELMAkGA1UECxMCWkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNB -MRgwFgYJKoZIhvcNAQkBFglaSkBaSi5jb22CCQCuGKHhPVJN8DATBgNVHSUEDDAK -BggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQELBQADgYEAW2PC5eQE -rfS2diTflKWwopk4+ee0L3mRURsGSzP8THTORz5UG9rqQ+Ntbuy0zXeG6upIoXlw -XP+ZDvu9/A2Jpi4T/oaCaTNMKCENqLoaPscuLZcMWu3jr3P8u8lYBcUmVhMcPo+Q -x+jZ5QsfQJr6FUm52I5q/XH0PN+hEa/76qg= ------END CERTIFICATE----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.csr b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.csr deleted file mode 100644 index a3549ca15..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.csr +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIBvzCCASgCAQAwfzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMQswCQYDVQQH -EwJaSjELMAkGA1UEChMCWkoxCzAJBgNVBAsTAlpKMRAwDgYDVQQDEwdjbGllbnQx -MRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJKoZIhvcNAQkBFglaSkBaSi5jb20wgZ8w -DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALdrQAvB76fD+lQywteH+qyFGK6vRLrd -Vw9Dc+vfN15ej61Deofdpr1qC2iNdQz+STnhVBFTD7VjEFshmH9TMrPWsD0j/B2t -BrDw+xAng+FeWrT2fAKHTHOGe3kHyqccGCxw453m8IkGSyUsCTlRw9RE74FequBj -2BHGnOBv2GYRAgMBAAGgADANBgkqhkiG9w0BAQsFAAOBgQBfvn2fP2Tj8FTZH+Xk -9u04rYaQdspSyL61F4QIEiP5UOUzbnSSU/B72KF5gm8b0irXGnTbHlXeMv6WXaAS -VF1fEeM+gsGJIDOvomT5PKfudezr6DpGrUammQnRY3tho078Ao0Mkq8PAWpiVWGV -Z7rsqHhI3mWYLNyne9n8K224pg== ------END CERTIFICATE REQUEST----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.key b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.key deleted file mode 100644 index 076ce4e72..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALdrQAvB76fD+lQy -wteH+qyFGK6vRLrdVw9Dc+vfN15ej61Deofdpr1qC2iNdQz+STnhVBFTD7VjEFsh -mH9TMrPWsD0j/B2tBrDw+xAng+FeWrT2fAKHTHOGe3kHyqccGCxw453m8IkGSyUs -CTlRw9RE74FequBj2BHGnOBv2GYRAgMBAAECgYBhWatEkkqA4KOczNRdUO7bYkkX -bi8sfw4WK9b6+h6JF+dqLsZ6FkrJfd9QPsRBgTWcYtwb1dogi9PCirJF4gKmSsv1 -h/BISW4lrXJPf08aJAuBF0ym8XZUgVLLptn8KdXX3xc6YF6K336AnNNLZ80X4El8 -m7X4d8Y3F4k3Dj04AQJBAN9NkHYwevaZ8jfv5rZSTKECmdk1DZITd756+sObFAs1 -vX9VfunwVw6xWmaUyMt8oPFqb0wKES9zqrViaMhU9YkCQQDSRqV3ldHcaZJ6sTgm -T8ZKm+UpbC4zat4rGSBYKaoeLRPh5nxP892rOfBAevkoIQzW7LfVfoMImM/i1J6T -lNJJAkAHSOZ/lJFOXjNSs9bY99JcJlOSjHKG42+ynRx1KSf8PaKS9t0PELImXo7O -begnC0fM2GYNGv74h1N4W1+DuZHRAkEAlNov3jSvh+EwMSxs/Cnyy/QJyEXteraH -KWkzDVYJOC1e6sZXb93JKKHuIicrY63pwed2x2o0ZgyO9RrgWsa6CQJBAMogPcRO -jUGjYs3IYXW6Suf1bRJN2aS81gx7lqyLQE3ignH6e9kMxcrzG4AzzePCLouY3waL -HS1KW8V9I5c4qTs= ------END PRIVATE KEY----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.p12 b/package/lean/luci-app-openvpn-server/root/etc/easy-rsa/keys/client1.p12 deleted file mode 100644 index 1511e1d0af47ec1541442dcaaebc8198ac6d8d81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2861 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 /tmp/my.ovpn <' >> /tmp/my.ovpn -cat /etc/openvpn/ca.crt >> /tmp/my.ovpn -echo '' >> /tmp/my.ovpn -echo '' >> /tmp/my.ovpn -cat /etc/openvpn/client1.crt >> /tmp/my.ovpn -echo '' >> /tmp/my.ovpn -echo '' >> /tmp/my.ovpn -cat /etc/openvpn/client1.key >> /tmp/my.ovpn -echo '' >> /tmp/my.ovpn -[ -f /etc/ovpnadd.conf ] && cat /etc/ovpnadd.conf >> /tmp/my.ovpn diff --git a/package/lean/luci-app-openvpn-server/root/etc/openvpn/ca.crt b/package/lean/luci-app-openvpn-server/root/etc/openvpn/ca.crt deleted file mode 100644 index 7b7ba5ef8..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/openvpn/ca.crt +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDXDCCAsWgAwIBAgIJAK4YoeE9Uk3wMA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNV -BAYTAkNOMQswCQYDVQQIEwJaSjELMAkGA1UEBxMCWkoxCzAJBgNVBAoTAlpKMQsw -CQYDVQQLEwJaSjEOMAwGA1UEAxMFWkogQ0ExEDAOBgNVBCkTB0Vhc3lSU0ExGDAW -BgkqhkiG9w0BCQEWCVpKQFpKLmNvbTAeFw0xNzA4MjMxNDE4MDVaFw0yNzA4MjEx -NDE4MDVaMH0xCzAJBgNVBAYTAkNOMQswCQYDVQQIEwJaSjELMAkGA1UEBxMCWkox -CzAJBgNVBAoTAlpKMQswCQYDVQQLEwJaSjEOMAwGA1UEAxMFWkogQ0ExEDAOBgNV -BCkTB0Vhc3lSU0ExGDAWBgkqhkiG9w0BCQEWCVpKQFpKLmNvbTCBnzANBgkqhkiG -9w0BAQEFAAOBjQAwgYkCgYEAsLBNLkjfNUK4Rb3xgJD0EEgzp6b+5zkiibT3wdS9 -SKZqkqJRcM/z7Ifc79LKXDDHrVnajkyc8QSaXOKVW8pTx75fYnoHjNbeU9JZHoTg -9GgRWq5HHUJlxhsdbcGeTxOHrMRz2d+VzvNvs5KOLJaqGkRmm/KMb7nTRnwjhx4A -pWsCAwEAAaOB4zCB4DAdBgNVHQ4EFgQUjdUEeRAFTxsSYxGsANT8zDEAuAkwgbAG -A1UdIwSBqDCBpYAUjdUEeRAFTxsSYxGsANT8zDEAuAmhgYGkfzB9MQswCQYDVQQG -EwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJaSjELMAkG -A1UECxMCWkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJ -KoZIhvcNAQkBFglaSkBaSi5jb22CCQCuGKHhPVJN8DAMBgNVHRMEBTADAQH/MA0G -CSqGSIb3DQEBCwUAA4GBAAAN0aRmQGNsF23CxShEnj3ohgpYA20F2FwEWYmCCWXe -CKxuPGtPZAeLmToIMgn75QlyuvVG+Uoe7I6ylbEK3XoeNStcS61wAXL8hIPfMcUX -fDsImBvc+Bo+LxQMWMSz0r88+B8784KELyaQKOnvPlTrnTuyP9RftjUWpjy23Kjd ------END CERTIFICATE----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.crt b/package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.crt deleted file mode 100644 index c757880ea..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.crt +++ /dev/null @@ -1,71 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 2 (0x2) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - Validity - Not Before: Aug 23 14:26:58 2017 GMT - Not After : Aug 21 14:26:58 2027 GMT - Subject: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=client1/name=EasyRSA/emailAddress=ZJ@ZJ.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:b7:6b:40:0b:c1:ef:a7:c3:fa:54:32:c2:d7:87: - fa:ac:85:18:ae:af:44:ba:dd:57:0f:43:73:eb:df: - 37:5e:5e:8f:ad:43:7a:87:dd:a6:bd:6a:0b:68:8d: - 75:0c:fe:49:39:e1:54:11:53:0f:b5:63:10:5b:21: - 98:7f:53:32:b3:d6:b0:3d:23:fc:1d:ad:06:b0:f0: - fb:10:27:83:e1:5e:5a:b4:f6:7c:02:87:4c:73:86: - 7b:79:07:ca:a7:1c:18:2c:70:e3:9d:e6:f0:89:06: - 4b:25:2c:09:39:51:c3:d4:44:ef:81:5e:aa:e0:63: - d8:11:c6:9c:e0:6f:d8:66:11 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Comment: - Easy-RSA Generated Certificate - X509v3 Subject Key Identifier: - E8:15:F9:71:C4:A7:C2:41:A3:AF:F5:C5:93:51:8E:5D:67:9B:12:E2 - X509v3 Authority Key Identifier: - keyid:8D:D5:04:79:10:05:4F:1B:12:63:11:AC:00:D4:FC:CC:31:00:B8:09 - DirName:/C=CN/ST=ZJ/L=ZJ/O=ZJ/OU=ZJ/CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - serial:AE:18:A1:E1:3D:52:4D:F0 - - X509v3 Extended Key Usage: - TLS Web Client Authentication - X509v3 Key Usage: - Digital Signature - Signature Algorithm: sha256WithRSAEncryption - 5b:63:c2:e5:e4:04:ad:f4:b6:76:24:df:94:a5:b0:a2:99:38: - f9:e7:b4:2f:79:91:51:1b:06:4b:33:fc:4c:74:ce:47:3e:54: - 1b:da:ea:43:e3:6d:6e:ec:b4:cd:77:86:ea:ea:48:a1:79:70: - 5c:ff:99:0e:fb:bd:fc:0d:89:a6:2e:13:fe:86:82:69:33:4c: - 28:21:0d:a8:ba:1a:3e:c7:2e:2d:97:0c:5a:ed:e3:af:73:fc: - bb:c9:58:05:c5:26:56:13:1c:3e:8f:90:c7:e8:d9:e5:0b:1f: - 40:9a:fa:15:49:b9:d8:8e:6a:fd:71:f4:3c:df:a1:11:af:fb: - ea:a8 ------BEGIN CERTIFICATE----- -MIIDpjCCAw+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJDTjEL -MAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJaSjELMAkGA1UECxMC -WkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJKoZIhvcN -AQkBFglaSkBaSi5jb20wHhcNMTcwODIzMTQyNjU4WhcNMjcwODIxMTQyNjU4WjB/ -MQswCQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQK -EwJaSjELMAkGA1UECxMCWkoxEDAOBgNVBAMTB2NsaWVudDExEDAOBgNVBCkTB0Vh -c3lSU0ExGDAWBgkqhkiG9w0BCQEWCVpKQFpKLmNvbTCBnzANBgkqhkiG9w0BAQEF -AAOBjQAwgYkCgYEAt2tAC8Hvp8P6VDLC14f6rIUYrq9Eut1XD0Nz6983Xl6PrUN6 -h92mvWoLaI11DP5JOeFUEVMPtWMQWyGYf1Mys9awPSP8Ha0GsPD7ECeD4V5atPZ8 -AodMc4Z7eQfKpxwYLHDjnebwiQZLJSwJOVHD1ETvgV6q4GPYEcac4G/YZhECAwEA -AaOCATIwggEuMAkGA1UdEwQCMAAwLQYJYIZIAYb4QgENBCAWHkVhc3ktUlNBIEdl -bmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU6BX5ccSnwkGjr/XFk1GOXWeb -EuIwgbAGA1UdIwSBqDCBpYAUjdUEeRAFTxsSYxGsANT8zDEAuAmhgYGkfzB9MQsw -CQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJa -SjELMAkGA1UECxMCWkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNB -MRgwFgYJKoZIhvcNAQkBFglaSkBaSi5jb22CCQCuGKHhPVJN8DATBgNVHSUEDDAK -BggrBgEFBQcDAjALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQELBQADgYEAW2PC5eQE -rfS2diTflKWwopk4+ee0L3mRURsGSzP8THTORz5UG9rqQ+Ntbuy0zXeG6upIoXlw -XP+ZDvu9/A2Jpi4T/oaCaTNMKCENqLoaPscuLZcMWu3jr3P8u8lYBcUmVhMcPo+Q -x+jZ5QsfQJr6FUm52I5q/XH0PN+hEa/76qg= ------END CERTIFICATE----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.key b/package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.key deleted file mode 100644 index 076ce4e72..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/openvpn/client1.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALdrQAvB76fD+lQy -wteH+qyFGK6vRLrdVw9Dc+vfN15ej61Deofdpr1qC2iNdQz+STnhVBFTD7VjEFsh -mH9TMrPWsD0j/B2tBrDw+xAng+FeWrT2fAKHTHOGe3kHyqccGCxw453m8IkGSyUs -CTlRw9RE74FequBj2BHGnOBv2GYRAgMBAAECgYBhWatEkkqA4KOczNRdUO7bYkkX -bi8sfw4WK9b6+h6JF+dqLsZ6FkrJfd9QPsRBgTWcYtwb1dogi9PCirJF4gKmSsv1 -h/BISW4lrXJPf08aJAuBF0ym8XZUgVLLptn8KdXX3xc6YF6K336AnNNLZ80X4El8 -m7X4d8Y3F4k3Dj04AQJBAN9NkHYwevaZ8jfv5rZSTKECmdk1DZITd756+sObFAs1 -vX9VfunwVw6xWmaUyMt8oPFqb0wKES9zqrViaMhU9YkCQQDSRqV3ldHcaZJ6sTgm -T8ZKm+UpbC4zat4rGSBYKaoeLRPh5nxP892rOfBAevkoIQzW7LfVfoMImM/i1J6T -lNJJAkAHSOZ/lJFOXjNSs9bY99JcJlOSjHKG42+ynRx1KSf8PaKS9t0PELImXo7O -begnC0fM2GYNGv74h1N4W1+DuZHRAkEAlNov3jSvh+EwMSxs/Cnyy/QJyEXteraH -KWkzDVYJOC1e6sZXb93JKKHuIicrY63pwed2x2o0ZgyO9RrgWsa6CQJBAMogPcRO -jUGjYs3IYXW6Suf1bRJN2aS81gx7lqyLQE3ignH6e9kMxcrzG4AzzePCLouY3waL -HS1KW8V9I5c4qTs= ------END PRIVATE KEY----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/openvpn/dh1024.pem b/package/lean/luci-app-openvpn-server/root/etc/openvpn/dh1024.pem deleted file mode 100644 index 01eba3e5a..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/openvpn/dh1024.pem +++ /dev/null @@ -1,5 +0,0 @@ ------BEGIN DH PARAMETERS----- -MIGHAoGBAMzJWsEtMQ76G81O8RzEweDaPrio4NihRBo0fmNuh3IjJtFJ++URPW4y -HHtnGOkPoMwQjGQ3GQV+lfcR7QGWojET4NskXOk6mdFU+/nYB9s5YY7RR4qyln9b -dNMp3KnMLtILNH1rJRoqYbSNoz3Z2cS59Ejp1dgXqN8kSP8wiqDjAgEC ------END DH PARAMETERS----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/openvpn/server.crt b/package/lean/luci-app-openvpn-server/root/etc/openvpn/server.crt deleted file mode 100644 index a73a757e9..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/openvpn/server.crt +++ /dev/null @@ -1,74 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - Validity - Not Before: Aug 23 14:26:42 2017 GMT - Not After : Aug 21 14:26:42 2027 GMT - Subject: C=CN, ST=ZJ, L=ZJ, O=ZJ, OU=ZJ, CN=server/name=EasyRSA/emailAddress=ZJ@ZJ.com - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - Public-Key: (1024 bit) - Modulus: - 00:e0:67:2e:33:ab:4f:4f:a1:78:c6:32:ba:d3:1d: - 71:73:34:ba:45:40:88:87:76:03:fb:87:d8:4e:4e: - 7c:7d:95:22:7d:8e:70:dc:68:10:27:fe:7d:f0:79: - 93:86:83:ef:a9:16:78:ae:86:5e:ea:42:74:38:4d: - 37:0d:c9:34:a6:84:5e:64:ad:dd:91:dd:df:02:bf: - 53:f8:fb:c0:9b:cb:bd:93:7c:26:ab:bd:0a:c6:c3: - 5d:da:5d:b3:c0:ff:72:a1:2f:1e:0b:f6:a6:71:77: - f9:00:38:8a:ae:ab:c0:86:11:ab:12:de:1e:82:13: - e8:c3:d5:bb:6f:2e:bf:6e:c1 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Cert Type: - SSL Server - Netscape Comment: - Easy-RSA Generated Server Certificate - X509v3 Subject Key Identifier: - 1C:06:47:33:61:0E:15:84:D5:08:5A:40:E6:C9:23:EF:87:F3:EE:F9 - X509v3 Authority Key Identifier: - keyid:8D:D5:04:79:10:05:4F:1B:12:63:11:AC:00:D4:FC:CC:31:00:B8:09 - DirName:/C=CN/ST=ZJ/L=ZJ/O=ZJ/OU=ZJ/CN=ZJ CA/name=EasyRSA/emailAddress=ZJ@ZJ.com - serial:AE:18:A1:E1:3D:52:4D:F0 - - X509v3 Extended Key Usage: - TLS Web Server Authentication - X509v3 Key Usage: - Digital Signature, Key Encipherment - Signature Algorithm: sha256WithRSAEncryption - aa:b5:0d:7a:b3:09:7a:d4:e6:df:46:0d:54:39:e2:34:da:4f: - 9b:92:d6:41:db:10:b9:ed:66:34:7f:9d:a9:fa:af:6a:80:b4: - 1f:13:d3:39:a6:72:93:5a:6b:e8:4f:ba:95:f9:83:10:58:b3: - fe:12:3f:a9:e8:31:04:e0:8e:d8:4c:c1:f7:7e:fc:7a:ba:17: - d8:2e:76:ab:7c:17:ca:a4:1d:3d:c5:bc:df:02:e5:2e:91:c4: - b2:6c:40:a1:e2:3d:64:15:da:a6:b0:e4:1d:66:11:54:c0:49: - 05:91:c4:69:68:2d:bc:d5:f6:32:43:3c:18:c4:97:54:45:52: - 28:36 ------BEGIN CERTIFICATE----- -MIIDvzCCAyigAwIBAgIBATANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJDTjEL -MAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQKEwJaSjELMAkGA1UECxMC -WkoxDjAMBgNVBAMTBVpKIENBMRAwDgYDVQQpEwdFYXN5UlNBMRgwFgYJKoZIhvcN -AQkBFglaSkBaSi5jb20wHhcNMTcwODIzMTQyNjQyWhcNMjcwODIxMTQyNjQyWjB+ -MQswCQYDVQQGEwJDTjELMAkGA1UECBMCWkoxCzAJBgNVBAcTAlpKMQswCQYDVQQK -EwJaSjELMAkGA1UECxMCWkoxDzANBgNVBAMTBnNlcnZlcjEQMA4GA1UEKRMHRWFz -eVJTQTEYMBYGCSqGSIb3DQEJARYJWkpAWkouY29tMIGfMA0GCSqGSIb3DQEBAQUA -A4GNADCBiQKBgQDgZy4zq09PoXjGMrrTHXFzNLpFQIiHdgP7h9hOTnx9lSJ9jnDc -aBAn/n3weZOGg++pFniuhl7qQnQ4TTcNyTSmhF5krd2R3d8Cv1P4+8Cby72TfCar -vQrGw13aXbPA/3KhLx4L9qZxd/kAOIquq8CGEasS3h6CE+jD1btvLr9uwQIDAQAB -o4IBTDCCAUgwCQYDVR0TBAIwADARBglghkgBhvhCAQEEBAMCBkAwNAYJYIZIAYb4 -QgENBCcWJUVhc3ktUlNBIEdlbmVyYXRlZCBTZXJ2ZXIgQ2VydGlmaWNhdGUwHQYD -VR0OBBYEFBwGRzNhDhWE1QhaQObJI++H8+75MIGwBgNVHSMEgagwgaWAFI3VBHkQ -BU8bEmMRrADU/MwxALgJoYGBpH8wfTELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpK -MQswCQYDVQQHEwJaSjELMAkGA1UEChMCWkoxCzAJBgNVBAsTAlpKMQ4wDAYDVQQD -EwVaSiBDQTEQMA4GA1UEKRMHRWFzeVJTQTEYMBYGCSqGSIb3DQEJARYJWkpAWkou -Y29tggkArhih4T1STfAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWg -MA0GCSqGSIb3DQEBCwUAA4GBAKq1DXqzCXrU5t9GDVQ54jTaT5uS1kHbELntZjR/ -nan6r2qAtB8T0zmmcpNaa+hPupX5gxBYs/4SP6noMQTgjthMwfd+/Hq6F9gudqt8 -F8qkHT3FvN8C5S6RxLJsQKHiPWQV2qaw5B1mEVTASQWRxGloLbzV9jJDPBjEl1RF -Uig2 ------END CERTIFICATE----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/openvpn/server.key b/package/lean/luci-app-openvpn-server/root/etc/openvpn/server.key deleted file mode 100644 index 3aab5cd4b..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/openvpn/server.key +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOBnLjOrT0+heMYy -utMdcXM0ukVAiId2A/uH2E5OfH2VIn2OcNxoECf+ffB5k4aD76kWeK6GXupCdDhN -Nw3JNKaEXmSt3ZHd3wK/U/j7wJvLvZN8Jqu9CsbDXdpds8D/cqEvHgv2pnF3+QA4 -iq6rwIYRqxLeHoIT6MPVu28uv27BAgMBAAECgYEAqno4g1BVxG0rT4cin1fy5E7e -Y9YO4ropdGFTVsoRkWZG+ZPI8eisvXV9P79c8AgzfgVwUUYLvXQWzt76QCLnN11x -pBURloJbEReEEzIF6z3LiT9CKgVWY4vtC6f5OW4Kd+EZxXMftFz8kMzRuRQLvOzR -WeU+3GD42mIwYjsXBrECQQD2P6azeZJ1ZIEf+9Ys19tSQ6uxbXyvghlTfhmZfBW3 -bshNRH4+L4lnnbm75pFkWqR0gYSAD3toRymccctN2K9jAkEA6UoRwURTjIER8yZO -6gLTFtzb841jv6TPErOY7CzNZ/TYBUdUBmM/NB4+RgBpBNFXB3uqweNVPO6mhyQP -zB88iwJBAOeH6YGOqTpfiVk9PJ9lRf4PSnvE6htLQ+zQ/9jkZrbWHtcns1tc7uDR -2DToEYQ+BarVrHOMGwhtAJ7sD6/eMOkCQFjn8XxGHdEeH0kbAFgOW4QLB4f6Clmu -5XurFkxrhpxnoyvf0xXcHOov3GuxHFTJsvEXICxkBsgB61T1WU/hV6ECQGzk5Eqo -uik2OAYMOb7NPGYMWS68DpmP11QDuvoj5zm2vdzohXHyBM7mO12MLSrTpxfgjWhQ -pqwEbErchuKkzN4= ------END PRIVATE KEY----- diff --git a/package/lean/luci-app-openvpn-server/root/etc/openvpncert.sh b/package/lean/luci-app-openvpn-server/root/etc/openvpncert.sh deleted file mode 100755 index 61d6f0cb9..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/openvpncert.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -clean-all -echo -en "\n\n\n\n\n\n\n\n" | build-ca -build-dh -build-key-server server -build-key-pkcs12 client1 -cp /etc/easy-rsa/keys/ca.crt /etc/openvpn/ -cp /etc/easy-rsa/keys/server.crt /etc/openvpn/ -cp /etc/easy-rsa/keys/server.key /etc/openvpn/ -cp /etc/easy-rsa/keys/dh1024.pem /etc/openvpn/ -cp /etc/easy-rsa/keys/client1.crt /etc/openvpn/ -cp /etc/easy-rsa/keys/client1.key /etc/openvpn/ -/etc/init.d/openvpn restart -echo "OpenVPN Cert renew successfully" \ No newline at end of file diff --git a/package/lean/luci-app-openvpn-server/root/etc/ovpnadd.conf b/package/lean/luci-app-openvpn-server/root/etc/ovpnadd.conf deleted file mode 100644 index 0d03f345b..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/ovpnadd.conf +++ /dev/null @@ -1,9 +0,0 @@ -http-proxy-option EXT1 "POST http://rd.go.10086.cn" -http-proxy-option EXT1 "GET http://rd.go.10086.cn" -http-proxy-option EXT1 "X-Online-Host: rd.go.10086.cn" -http-proxy-option EXT1 "POST http://rd.go.10086.cn" -http-proxy-option EXT1 "X-Online-Host: rd.go.10086.cn" -http-proxy-option EXT1 "POST http://rd.go.10086.cn" -http-proxy-option EXT1 "Host: rd.go.10086.cn" -http-proxy-option EXT1 "GET http://rd.go.10086.cn" -http-proxy-option EXT1 "Host: rd.go.10086.cn" \ No newline at end of file diff --git a/package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn b/package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn deleted file mode 100755 index 5afa99995..000000000 --- a/package/lean/luci-app-openvpn-server/root/etc/uci-defaults/openvpn +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh - -uci set network.vpn0="interface" -uci set network.vpn0.ifname="tun0" -uci set network.vpn0.proto="none" -uci commit network; -/etc/init.d/network reload - -uci delete firewall.openvpn -uci add firewall rule -uci rename firewall.@rule[-1]="openvpn" -uci set firewall.@rule[-1].name="openvpn" -uci set firewall.@rule[-1].target="ACCEPT" -uci set firewall.@rule[-1].src="wan" -uci set firewall.@rule[-1].proto="tcp" -uci set firewall.@rule[-1].dest_port="1194" - -uci delete firewall.vpn -uci delete firewall.vpnwan -uci delete firewall.vpnlan -uci commit firewall - -uci add firewall zone -uci rename firewall.@zone[-1]="vpn" -uci set firewall.@zone[-1].name="vpn" -uci set firewall.@zone[-1].input="ACCEPT" -uci set firewall.@zone[-1].forward="ACCEPT" -uci set firewall.@zone[-1].output="ACCEPT" -uci set firewall.@zone[-1].masq="1" -uci set firewall.@zone[-1].network="vpn0" -uci add firewall forwarding -uci rename firewall.@forwarding[-1]="vpnwan" -uci set firewall.@forwarding[-1].src="vpn" -uci set firewall.@forwarding[-1].dest="wan" -uci add firewall forwarding -uci rename firewall.@forwarding[-1]="vpnlan" -uci set firewall.@forwarding[-1].src="vpn" -uci set firewall.@forwarding[-1].dest="lan" -uci commit firewall; -/etc/init.d/firewall restart - -/etc/init.d/openvpn enable -/etc/init.d/openvpn stop - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-pptp-server/Makefile b/package/lean/luci-app-pptp-server/Makefile deleted file mode 100644 index 2e13beb86..000000000 --- a/package/lean/luci-app-pptp-server/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for PPTP VPN Server -LUCI_DEPENDS:=+pptpd +kmod-mppe +ppp -LUCI_PKGARCH:=all -PKG_NAME:=luci-app-pptp-server -PKG_VERSION:=1.0 -PKG_RELEASE:=13 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - - - diff --git a/package/lean/luci-app-pptp-server/luasrc/controller/pptp-server.lua b/package/lean/luci-app-pptp-server/luasrc/controller/pptp-server.lua deleted file mode 100644 index 5bda83098..000000000 --- a/package/lean/luci-app-pptp-server/luasrc/controller/pptp-server.lua +++ /dev/null @@ -1,19 +0,0 @@ - -module("luci.controller.pptp-server", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/pptpd") then - return - end - - entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false - entry({"admin", "vpn", "pptp-server"}, cbi("pptp-server/pptp-server"), _("PPTP VPN Server"), 80).dependent=false - entry({"admin", "vpn", "pptp-server","status"},call("act_status")).leaf=true -end - -function act_status() - local e={} - e.running=luci.sys.call("pgrep pptpd >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/package/lean/luci-app-pptp-server/luasrc/model/cbi/pptp-server/pptp-server.lua b/package/lean/luci-app-pptp-server/luasrc/model/cbi/pptp-server/pptp-server.lua deleted file mode 100644 index 7fa03cfdb..000000000 --- a/package/lean/luci-app-pptp-server/luasrc/model/cbi/pptp-server/pptp-server.lua +++ /dev/null @@ -1,37 +0,0 @@ - -mp = Map("pptpd", translate("PPTP VPN Server")) -mp.description = translate("PPTP VPN Server connectivity using the native built-in VPN Client on Windows/Linux or Andriod") - -mp:section(SimpleSection).template = "pptp/pptp_status" - -s = mp:section(NamedSection, "pptpd", "service") -s.anonymouse = true - -enabled = s:option(Flag, "enabled", translate("Enable")) -enabled.default = 0 -enabled.rmempty = false - -localip = s:option(Value, "localip", translate("Local IP")) -localip.datatype = "ip4addr" - -clientip = s:option(Value, "remoteip", translate("Client IP")) -clientip.datatype = "string" -clientip.description = translate("LAN DHCP reserved start-to-end IP addresses with the same subnet mask") - -remotedns = s:option(Value, "remotedns", translate("Remote Client DNS")) -remotedns.datatype = "ip4addr" - -logging = s:option(Flag, "logwtmp", translate("Debug Logging")) -logging.default = 0 -logging.rmempty = false - -logins = mp:section(NamedSection, "login", "login", translate("PPTP Logins")) -logins.anonymouse = true - -username = logins:option(Value, "username", translate("User name")) -username.datatype = "string" - -password = logins:option(Value, "password", translate("Password")) -password.password = true - -return mp diff --git a/package/lean/luci-app-pptp-server/luasrc/view/pptp/pptp_status.htm b/package/lean/luci-app-pptp-server/luasrc/view/pptp/pptp_status.htm deleted file mode 100644 index 11a2852d9..000000000 --- a/package/lean/luci-app-pptp-server/luasrc/view/pptp/pptp_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    \ No newline at end of file diff --git a/package/lean/luci-app-pptp-server/po/zh-cn/pptp.po b/package/lean/luci-app-pptp-server/po/zh-cn/pptp.po deleted file mode 100644 index 0c2f78df3..000000000 --- a/package/lean/luci-app-pptp-server/po/zh-cn/pptp.po +++ /dev/null @@ -1,56 +0,0 @@ -msgid "Disable from startup" -msgstr "禁止开机启动" - -msgid "Enable on startup" -msgstr "允许开机启动" - -msgid "PPTP VPN Server" -msgstr "PPTP VPN 服务器" - -msgid "PPTP Service" -msgstr "PPTP 服务设置" - -msgid "Local IP" -msgstr "PPTP 服务器IP" - -msgid "Client IP" -msgstr "客户端分配的IP范围" - -msgid "LAN DHCP reserved start-to-end IP addresses with the same subnet mask" -msgstr "使用和 LAN 同一网段。请使用 DHCP分配地址以外的空余IP地址范围,例如 192.168.0.20-30" - -msgid "Remote Client DNS" -msgstr "客户端分配IP的DNS服务器" - -msgid "Debug Logging" -msgstr "记录日志" - -msgid "PPTP Logins" -msgstr "PPTP 登录设置" - -msgid "User name" -msgstr "用户名" - -msgid "Password" -msgstr "密码" - -msgid "Enable" -msgstr "启用" - -msgid "PPTPD status" -msgstr "PPTPD 服务状态" - -msgid "Start" -msgstr "启动" - -msgid "Stop" -msgstr "关闭" - -msgid "PPTP VPN Server" -msgstr "PPTP VPN 服务器" - -msgid "PPTP VPN Server connectivity using the native built-in VPN Client on Windows/Linux or Andriod" -msgstr "使用Windows/Linux 或者 Andriod 内置的 PPTP VPN 客户端进行连接 " - - - diff --git a/package/lean/luci-app-pptp-server/root/etc/config/pptpd b/package/lean/luci-app-pptp-server/root/etc/config/pptpd deleted file mode 100644 index c55cfa60c..000000000 --- a/package/lean/luci-app-pptp-server/root/etc/config/pptpd +++ /dev/null @@ -1,12 +0,0 @@ - -config service 'pptpd' - option enabled '0' - option remoteip '192.168.0.20-30' - option remotedns '192.168.0.1' - option logwtmp '0' - option localip '192.168.0.1' - -config login 'login' - option username 'lean' - option password 'I234567B' - diff --git a/package/lean/luci-app-pptp-server/root/etc/pptpd.include b/package/lean/luci-app-pptp-server/root/etc/pptpd.include deleted file mode 100755 index e59a7b7ea..000000000 --- a/package/lean/luci-app-pptp-server/root/etc/pptpd.include +++ /dev/null @@ -1,6 +0,0 @@ -iptables -D forwarding_rule -i ppp+ -j ACCEPT 2>/dev/null -iptables -D forwarding_rule -o ppp+ -j ACCEPT 2>/dev/null - -iptables -A forwarding_rule -i ppp+ -j ACCEPT -iptables -A forwarding_rule -o ppp+ -j ACCEPT -echo 1 > /proc/sys/net/ipv4/conf/br-lan/proxy_arp diff --git a/package/lean/luci-app-pptp-server/root/etc/uci-defaults/pptpd b/package/lean/luci-app-pptp-server/root/etc/uci-defaults/pptpd deleted file mode 100755 index 68c9f3e66..000000000 --- a/package/lean/luci-app-pptp-server/root/etc/uci-defaults/pptpd +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete firewall.pptpd - set firewall.pptpd=include - set firewall.pptpd.type=script - set firewall.pptpd.path=/etc/pptpd.include - set firewall.pptpd.reload=1 - delete firewall.pptp - add firewall rule - rename firewall.@rule[-1]="pptp" - set firewall.@rule[-1].name="pptp" - set firewall.@rule[-1].target="ACCEPT" - set firewall.@rule[-1].src="wan" - set firewall.@rule[-1].proto="tcp" - set firewall.@rule[-1].dest_port="1723" - delete firewall.gre - add firewall rule - rename firewall.@rule[-1]="gre" - set firewall.@rule[-1].name="gre" - set firewall.@rule[-1].target="ACCEPT" - set firewall.@rule[-1].src="wan" - set firewall.@rule[-1].proto="47" - commit firewall -EOF - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@pptpd[-1] - add ucitrack pptpd - set ucitrack.@pptpd[-1].init=pptpd - commit ucitrack -EOF - -/etc/init.d/pptpd enable && /etc/init.d/pptpd restart - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-ramfree/Makefile b/package/lean/luci-app-ramfree/Makefile deleted file mode 100644 index cddacda36..000000000 --- a/package/lean/luci-app-ramfree/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=luci-app-ramfree -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=1 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-ramfree/luasrc/controller/release_ram.lua b/package/lean/luci-app-ramfree/luasrc/controller/release_ram.lua deleted file mode 100644 index 17e95ce40..000000000 --- a/package/lean/luci-app-ramfree/luasrc/controller/release_ram.lua +++ /dev/null @@ -1,9 +0,0 @@ -module("luci.controller.release_ram",package.seeall) - -function index() - entry({"admin","status","release_ram"}, call("release_ram"), _("Release Ram"), 9999) -end -function release_ram() - luci.sys.call("sync && echo 3 > /proc/sys/vm/drop_caches") - luci.http.redirect(luci.dispatcher.build_url("admin/status")) -end diff --git a/package/lean/luci-app-ramfree/po/zh-cn/release_ram.po b/package/lean/luci-app-ramfree/po/zh-cn/release_ram.po deleted file mode 100644 index cff6f0289..000000000 --- a/package/lean/luci-app-ramfree/po/zh-cn/release_ram.po +++ /dev/null @@ -1,2 +0,0 @@ -msgid "Release Ram" -msgstr "释放内存" diff --git a/package/lean/luci-app-sfe/Makefile b/package/lean/luci-app-sfe/Makefile deleted file mode 100644 index 2504a24aa..000000000 --- a/package/lean/luci-app-sfe/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for Turbo ACC (SFE) -LUCI_DEPENDS:=+kmod-fast-classifier +pdnsd-alt +kmod-tcp-bbr @LINUX_4_9 -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=11 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - diff --git a/package/lean/luci-app-sfe/luasrc/controller/sfe.lua b/package/lean/luci-app-sfe/luasrc/controller/sfe.lua deleted file mode 100644 index 10e9dd82b..000000000 --- a/package/lean/luci-app-sfe/luasrc/controller/sfe.lua +++ /dev/null @@ -1,39 +0,0 @@ -module("luci.controller.sfe", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/sfe") then - return - end - local page - page = entry({"admin", "network", "sfe"}, cbi("sfe"), _("Turbo ACC Center"), 100) - page.i18n = "sfe" - page.dependent = true - - entry({"admin", "network", "sfe", "status"}, call("action_status")) -end - -local function is_running() - return luci.sys.call("lsmod | grep fast_classifier >/dev/null") == 0 -end - -local function is_bbr() - return luci.sys.call("sysctl net.ipv4.tcp_congestion_control | grep bbr >/dev/null") == 0 -end - -local function is_fullcone() - return luci.sys.call("iptables -t nat -L -n --line-numbers | grep FULLCONENAT >/dev/null") == 0 -end - -local function is_dns() - return luci.sys.call("pgrep dnscache >/dev/null") == 0 -end - -function action_status() - luci.http.prepare_content("application/json") - luci.http.write_json({ - run_state = is_running(), - down_state = is_bbr(), - up_state = is_fullcone(), - dns_state = is_dns() - }) -end \ No newline at end of file diff --git a/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua b/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua deleted file mode 100644 index bb4c47616..000000000 --- a/package/lean/luci-app-sfe/luasrc/model/cbi/sfe.lua +++ /dev/null @@ -1,45 +0,0 @@ - -m = Map("sfe") -m.title = translate("Turbo ACC Acceleration Settings") -m.description = translate("Opensource Qualcomm Shortcut FE driver (Fast Path)") - -m:append(Template("sfe/status")) - -s = m:section(TypedSection, "sfe", "") -s.addremove = false -s.anonymous = true - - -enable = s:option(Flag, "enabled", translate("Enable SFE Fast Path")) -enable.default = 0 -enable.rmempty = false -enable.description = translate("Enable Fast Path offloading for connections. (decrease cpu load / increase routing throughput)") - -wifi = s:option(Flag, "wifi", translate("Bridge Acceleration")) -wifi.default = 0 -wifi.rmempty = false -wifi.description = translate("Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN Server)") -wifi:depends("enabled", 1) - -ipv6 = s:option(Flag, "ipv6", translate("IPv6 Acceleration")) -ipv6.default = 0 -ipv6.rmempty = false -ipv6.description = translate("Enable IPv6 Acceleration") -ipv6:depends("enabled", 1) - -bbr = s:option(Flag, "bbr", translate("Enable BBR")) -bbr.default = 0 -bbr.rmempty = false -bbr.description = translate("Bottleneck Bandwidth and Round-trip propagation time (BBR)") - -dns = s:option(Flag, "dns", translate("DNS Acceleration")) -dns.default = 0 -dns.rmempty = false -dns.description = translate("Enable DNS Cache Acceleration and anti ISP DNS pollution") - -o = s:option(Value, "dns_server", translate("Upsteam DNS Server")) -o.default = "114.114.114.114,114.114.115.115" -o.description = translate("Muitiple DNS server can saperate with ','") -o:depends("dns", 1) - -return m diff --git a/package/lean/luci-app-sfe/luasrc/view/sfe/status.htm b/package/lean/luci-app-sfe/luasrc/view/sfe/status.htm deleted file mode 100644 index 6d35265ac..000000000 --- a/package/lean/luci-app-sfe/luasrc/view/sfe/status.htm +++ /dev/null @@ -1,24 +0,0 @@ -
    - <%:Running Status%> - - - - - -
    SFE 加速状态<%:Collecting data...%>
    BBR 加速<%:Collecting data...%>
    FULLCONE NAT加速<%:Collecting data...%>
    DNS 加速<%:Collecting data...%>
    -
    - - diff --git a/package/lean/luci-app-sfe/po/zh-cn/sfe.po b/package/lean/luci-app-sfe/po/zh-cn/sfe.po deleted file mode 100644 index 044d2f630..000000000 --- a/package/lean/luci-app-sfe/po/zh-cn/sfe.po +++ /dev/null @@ -1,53 +0,0 @@ -msgid "SFE Acceleration" -msgstr "SFE 转发加速" - -msgid "Turbo ACC Center" -msgstr "Turbo ACC 网络加速" - -msgid "Turbo ACC Acceleration Settings" -msgstr "Turbo ACC 网络加速设置" - -msgid "Shortcut Forwarding Engine Acceleration Settings" -msgstr "SFE 转发加速引擎设置" - -msgid "Opensource Qualcomm Shortcut FE driver (Fast Path)" -msgstr "来自高通开源的 Shortcut FE 转发加速引擎 (Fast Path)" - -msgid "Enable" -msgstr "启用" - -msgid "Enable SFE Fast Path" -msgstr "启用 SFE Fast Path 加速" - -msgid "Enable Fast Path offloading for connections. (decrease cpu load / increase routing throughput)" -msgstr "开启 Fast Path 转发加速. (降低CPU占用 / 增强路由转发性能,和多WAN或者QOS功能可能会冲突)" - -msgid "Bridge Acceleration" -msgstr "桥接加速" - -msgid "Enable Bridge Acceleration (may be functional conflict with bridge-mode VPN Server)" -msgstr "启用桥接加速 (可能会和路由器上桥接模式的VPN服务器冲突)" - -msgid "IPv6 Acceleration" -msgstr "IPv6 加速" - -msgid "Enable IPv6 Acceleration" -msgstr "开启IPv6加速" - -msgid "Enable BBR" -msgstr "启用 BBR" - -msgid "Bottleneck Bandwidth and Round-trip propagation time (BBR)" -msgstr "BBR拥塞控制算法可以加强TCP应用表现,但会降低路由器本机上的WIFI吞吐性能" - -msgid "DNS Acceleration" -msgstr "DNS 加速" - -msgid "Enable DNS Cache Acceleration and anti ISP DNS pollution" -msgstr "启用DNS多线程查询、缓存,并防止ISP的DNS广告和域名劫持" - -msgid "Upsteam DNS Server" -msgstr "上游 DNS 服务器(国内)" - -msgid "Muitiple DNS server can saperate with ','" -msgstr "支持多个上游DNS服务器,用','分隔(注意用英文逗号).请填写您最快的DNS服务器" diff --git a/package/lean/luci-app-sfe/root/etc/config/sfe b/package/lean/luci-app-sfe/root/etc/config/sfe deleted file mode 100644 index fc0b52ec4..000000000 --- a/package/lean/luci-app-sfe/root/etc/config/sfe +++ /dev/null @@ -1,9 +0,0 @@ - -config sfe 'config' - option enabled '1' - option ipv6 '0' - option wifi '0' - option bbr '0' - option dns '0' - option dns_server '114.114.114.114,114.114.115.115' - diff --git a/package/lean/luci-app-sfe/root/etc/init.d/sfe b/package/lean/luci-app-sfe/root/etc/init.d/sfe deleted file mode 100755 index 5b3c2512e..000000000 --- a/package/lean/luci-app-sfe/root/etc/init.d/sfe +++ /dev/null @@ -1,206 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (c) 2011-2015 OpenWrt.org - -START=30 - -DNSMASQ_RESTART=N -DNS_SERVER="114.114.114.114,114.114.115.115" - -start_pdnsd() { - DNS_SERVER=$(uci get sfe.config.dns_server 2>/dev/null) - - [ -d /var/etc ] || mkdir -p /var/etc - - if [ ! -f /var/dnscache/pdnsd.cache ]; then - mkdir -p /var/dnscache - echo -ne "pd13\000\000\000\000" > /var/dnscache/pdnsd.cache - chown -R nobody.nogroup /var/dnscache - fi - - cat > /var/etc/dnscache.conf </dev/null 2>&1 || kill -9 $(ps | grep dnscache | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - echo "Stop DNS Cache" -} - -change_dns() { - uci delete dhcp.@dnsmasq[0].server >/dev/null 2>&1 - uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 - uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto - uci set dhcp.@dnsmasq[0].noresolv=0 - uci commit dhcp -} - -revert_dns() { - uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 >/dev/null 2>&1 - uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto - uci set dhcp.@dnsmasq[0].noresolv=0 - uci commit dhcp -} - -start(){ - enable=$(uci get sfe.config.enabled 2>/dev/null) - wifi=$(uci get sfe.config.wifi) - ipv6=$(uci get sfe.config.ipv6) - dns=$(uci get sfe.config.dns 2>/dev/null) - bbr=$(uci get sfe.config.bbr 2>/dev/null) - if [ $enable -eq 1 ]; then - echo "enable" - ! (lsmod | grep fast_classifier >/dev/null) && (modprobe fast_classifier) - if [ $wifi -eq 1 ] ; then - echo 1 > /sys/fast_classifier/skip_to_bridge_ingress - else - echo 0 > /sys/fast_classifier/skip_to_bridge_ingress - fi - if [ $ipv6 -eq 1 ]; then - sfe_ipv6=$(cat /sys/sfe_ipv6/debug_dev) - [ ! -f /dev/sfe_ipv6 ] && mknod /dev/sfe_ipv6 c $sfe_ipv6 0 - else - rm -f /dev/sfe_ipv6 - fi - else - rmmod fast_classifier >/dev/null 2>&1 - fi - if [ $dns -eq 1 ]; then - start_pdnsd - change_dns - fi - if [ $bbr -eq 1 ]; then - sysctl -w net.ipv4.tcp_congestion_control=bbr - else - sysctl -w net.ipv4.tcp_congestion_control=cubic - fi - if [ "$DNSMASQ_RESTART" = N ]; then - /etc/init.d/dnsmasq restart && echo "DNSMASQ change" - fi -} - -stop(){ - enable=$(uci get sfe.config.enabled 2>/dev/null) - [ $enable -ne 1 ] && rmmod fast_classifier >/dev/null 2>&1 - stop_pdnsd - revert_dns - if [ "$DNSMASQ_RESTART" = N ]; then - /etc/init.d/dnsmasq restart && echo "DNSMASQ revert" - fi -} - -restart(){ - DNSMASQ_RESTART=Y - stop - start - /etc/init.d/dnsmasq restart && echo "DNSMASQ restart" -} - - diff --git a/package/lean/luci-app-sfe/root/etc/uci-defaults/sfe b/package/lean/luci-app-sfe/root/etc/uci-defaults/sfe deleted file mode 100755 index 444964d9b..000000000 --- a/package/lean/luci-app-sfe/root/etc/uci-defaults/sfe +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@sfe[-1] - add ucitrack sfe - set ucitrack.@sfe[-1].init=sfe - commit ucitrack -EOF - -sed -i '/dnscache-watchdog.sh/d' /etc/crontabs/root -echo '*/60 * * * * /usr/share/dnscache-watchdog.sh' >> /etc/crontabs/root - -[ ! -f /usr/sbin/dnscache ] && ln /usr/sbin/pdnsd /usr/sbin/dnscache -/etc/init.d/sfe enable - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-sfe/root/usr/share/dnscache-watchdog.sh b/package/lean/luci-app-sfe/root/usr/share/dnscache-watchdog.sh deleted file mode 100755 index 4bde67d57..000000000 --- a/package/lean/luci-app-sfe/root/usr/share/dnscache-watchdog.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -dns_enable=$(uci get sfe.config.dns 2>/dev/null) - -if [ $dns_enable -eq 1 ]; then - if ! pidof dnscache>/dev/null; then - /etc/init.d/sfe restart - fi -fi diff --git a/package/lean/luci-app-ssr-plus/Makefile b/package/lean/luci-app-ssr-plus/Makefile deleted file mode 100644 index 99a6b58e7..000000000 --- a/package/lean/luci-app-ssr-plus/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for SSR Plus -LUCI_DEPENDS:=+shadowsocksr-libev +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +bash +pdnsd-alt +wget -LUCI_PKGARCH:=all -PKG_VERSION:=1 -PKG_RELEASE:=17 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/package/lean/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua deleted file mode 100644 index 1c0f437bb..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ /dev/null @@ -1,178 +0,0 @@ --- Copyright (C) 2017 yushi studio --- Licensed to the public under the GNU General Public License v3. - -module("luci.controller.shadowsocksr", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/shadowsocksr") then - return - end - - - entry({"admin", "services", "shadowsocksr"},alias("admin", "services", "shadowsocksr", "client"),_("ShadowSocksR Plus+"), 10).dependent = true - - entry({"admin", "services", "shadowsocksr", "client"},cbi("shadowsocksr/client"),_("SSR Client"), 10).leaf = true - - entry({"admin", "services", "shadowsocksr", "servers"}, arcombine(cbi("shadowsocksr/servers"), cbi("shadowsocksr/client-config")),_("Servers Manage"), 20).leaf = true - - entry({"admin", "services", "shadowsocksr", "control"},cbi("shadowsocksr/control"),_("Access Control"), 30).leaf = true - - entry({"admin", "services", "shadowsocksr", "list"},form("shadowsocksr/list"),_("GFW List"), 40).leaf = true - - entry({"admin", "services", "shadowsocksr", "advanced"},cbi("shadowsocksr/advanced"),_("Advanced Settings"), 50).leaf = true - - entry({"admin", "services", "shadowsocksr", "status"},form("shadowsocksr/status"),_("Status"), 60).leaf = true - - entry({"admin", "services", "shadowsocksr", "check"}, call("check_status")) - entry({"admin", "services", "shadowsocksr", "refresh"}, call("refresh_data")) - entry({"admin", "services", "shadowsocksr", "checkport"}, call("check_port")) - - entry({"admin", "services", "shadowsocksr", "log"},form("shadowsocksr/log"),_("Log"), 70).leaf = true - - entry({"admin", "services", "shadowsocksr","run"},call("act_status")).leaf=true - -end - -function act_status() - local e={} - e.running=luci.sys.call("pgrep ssr-redir >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end - -function check_status() -local set ="/usr/bin/ssr-check www." .. luci.http.formvalue("set") .. ".com 80 3 1" -sret=luci.sys.call(set) -if sret== 0 then - retstring ="0" -else - retstring ="1" -end -luci.http.prepare_content("application/json") -luci.http.write_json({ ret=retstring }) -end - -function refresh_data() -local set =luci.http.formvalue("set") -local icount =0 - -if set == "gfw_data" then - if nixio.fs.access("/usr/bin/wget-ssl") then - refresh_cmd="wget-ssl --no-check-certificate https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt -O /tmp/gfw.b64" - else - refresh_cmd="wget -O /tmp/gfw.b64 http://iytc.net/tools/list.b64" - end - sret=luci.sys.call(refresh_cmd .. " 2>/dev/null") - if sret== 0 then - luci.sys.call("/usr/bin/ssr-gfw") - icount = luci.sys.exec("cat /tmp/gfwnew.txt | wc -l") - if tonumber(icount)>1000 then - oldcount=luci.sys.exec("cat /etc/dnsmasq.ssr/gfw_list.conf | wc -l") - if tonumber(icount) ~= tonumber(oldcount) then - luci.sys.exec("cp -f /tmp/gfwnew.txt /etc/dnsmasq.ssr/gfw_list.conf") - retstring=tostring(math.ceil(tonumber(icount)/2)) - else - retstring ="0" - end - else - retstring ="-1" - end - luci.sys.exec("rm -f /tmp/gfwnew.txt ") - else - retstring ="-1" - end -elseif set == "ip_data" then - refresh_cmd="wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' 2>/dev/null| awk -F\\| '/CN\\|ipv4/ { printf(\"%s/%d\\n\", $4, 32-log($5)/log(2)) }' > /tmp/china_ssr.txt" - sret=luci.sys.call(refresh_cmd) - icount = luci.sys.exec("cat /tmp/china_ssr.txt | wc -l") - if sret== 0 and tonumber(icount)>1000 then - oldcount=luci.sys.exec("cat /etc/china_ssr.txt | wc -l") - if tonumber(icount) ~= tonumber(oldcount) then - luci.sys.exec("cp -f /tmp/china_ssr.txt /etc/china_ssr.txt") - retstring=tostring(tonumber(icount)) - else - retstring ="0" - end - - else - retstring ="-1" - end - luci.sys.exec("rm -f /tmp/china_ssr.txt ") -else - local need_process = 0 - if nixio.fs.access("/usr/bin/wget-ssl") then - refresh_cmd="wget-ssl --no-check-certificate -O - https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt > /tmp/adnew.conf" - need_process = 1 - else - refresh_cmd="wget -O /tmp/ad.conf http://iytc.net/tools/ad.conf" - end - sret=luci.sys.call(refresh_cmd .. " 2>/dev/null") - if sret== 0 then - if need_process == 1 then - luci.sys.call("/usr/bin/ssr-ad") - end - icount = luci.sys.exec("cat /tmp/ad.conf | wc -l") - if tonumber(icount)>1000 then - if nixio.fs.access("/etc/dnsmasq.ssr/ad.conf") then - oldcount=luci.sys.exec("cat /etc/dnsmasq.ssr/ad.conf | wc -l") - else - oldcount=0 - end - - if tonumber(icount) ~= tonumber(oldcount) then - luci.sys.exec("cp -f /tmp/ad.conf /etc/dnsmasq.ssr/ad.conf") - retstring=tostring(math.ceil(tonumber(icount))) - if oldcount==0 then - luci.sys.call("/etc/init.d/dnsmasq restart") - end - else - retstring ="0" - end - else - retstring ="-1" - end - luci.sys.exec("rm -f /tmp/ad.conf ") - else - retstring ="-1" - end -end -luci.http.prepare_content("application/json") -luci.http.write_json({ ret=retstring ,retcount=icount}) -end - - -function check_port() -local set="" -local retstring="

    " -local s -local server_name = "" -local shadowsocksr = "shadowsocksr" -local uci = luci.model.uci.cursor() -local iret=1 - -uci:foreach(shadowsocksr, "servers", function(s) - - if s.alias then - server_name=s.alias - elseif s.server and s.server_port then - server_name= "%s:%s" %{s.server, s.server_port} - end - iret=luci.sys.call(" ipset add ss_spec_wan_ac " .. s.server .. " 2>/dev/null") - socket = nixio.socket("inet", "stream") - socket:setopt("socket", "rcvtimeo", 3) - socket:setopt("socket", "sndtimeo", 3) - ret=socket:connect(s.server,s.server_port) - if tostring(ret) == "true" then - socket:close() - retstring =retstring .. "[" .. server_name .. "] OK.
    " - else - retstring =retstring .. "[" .. server_name .. "] Error.
    " - end - if iret== 0 then - luci.sys.call(" ipset del ss_spec_wan_ac " .. s.server) - end -end) - -luci.http.prepare_content("application/json") -luci.http.write_json({ ret=retstring }) -end \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua deleted file mode 100644 index c27341c6c..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ /dev/null @@ -1,49 +0,0 @@ -local shadowsocksr = "shadowsocksr" -local uci = luci.model.uci.cursor() -local server_table = {} - -uci:foreach(shadowsocksr, "servers", function(s) - if s.alias then - server_table[s[".name"]] = s.alias - elseif s.server and s.server_port then - server_table[s[".name"]] = "%s:%s" %{s.server, s.server_port} - end -end) - -m = Map(shadowsocksr) - -s = m:section(TypedSection, "global", translate("Server failsafe auto swith settings")) -s.anonymous = true - -o = s:option(Flag, "enable_switch", translate("Enable Auto Switch")) -o.rmempty = false - -o = s:option(Value, "switch_time", translate("Switch check cycly(second)")) -o.datatype = "uinteger" -o:depends("enable_switch", "1") -o.default = 3600 - -o = s:option(Value, "switch_timeout", translate("Check timout(second)")) -o.datatype = "uinteger" -o:depends("enable_switch", "1") -o.default = 5 - --- o = s:option(Flag, "monitor_enable", translate("Enable Process Deamon")) --- o.rmempty = false - --- [[ SOCKS5 Proxy ]]-- -s = m:section(TypedSection, "socks5_proxy", translate("SOCKS5 Proxy")) -s.anonymous = true - -o = s:option(ListValue, "server", translate("Server")) -o:value("nil", translate("Disable")) -for k, v in pairs(server_table) do o:value(k, v) end -o.default = "nil" -o.rmempty = false - -o = s:option(Value, "local_port", translate("Local Port")) -o.datatype = "port" -o.default = 1080 -o.rmempty = false - -return m diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua deleted file mode 100644 index 4417378aa..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ /dev/null @@ -1,168 +0,0 @@ --- Copyright (C) 2017 yushi studio github.com/ywb94 --- Licensed to the public under the GNU General Public License v3. - -local m, s, o,kcp_enable -local shadowsocksr = "shadowsocksr" -local uci = luci.model.uci.cursor() -local ipkg = require("luci.model.ipkg") -local fs = require "nixio.fs" -local sys = require "luci.sys" -local sid = arg[1] - -local function isKcptun(file) - if not fs.access(file, "rwx", "rx", "rx") then - fs.chmod(file, 755) - end - - local str = sys.exec(file .. " -v | awk '{printf $1}'") - return (str:lower() == "kcptun") -end - - -local server_table = {} -local encrypt_methods = { - "none", - "table", - "rc4", - "rc4-md5-6", - "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", - "chacha20-ietf", -} - -local protocol = { - "origin", - "verify_deflate", - "auth_sha1_v4", - "auth_aes128_sha1", - "auth_aes128_md5", - "auth_chain_a", - "auth_chain_b", - "auth_chain_c", - "auth_chain_d", - "auth_chain_e", - "auth_chain_f", -} - -obfs = { - "plain", - "http_simple", - "http_post", - "random_head", - "tls1.2_ticket_auth", -} - -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 - luci.http.redirect(m.redirect) - return -end - --- [[ Servers Setting ]]-- -s = m:section(NamedSection, sid, "servers") -s.anonymous = true -s.addremove = false - -o = s:option(DummyValue,"ssr_url","SSR URL") -o.rawhtml = true -o.template = "shadowsocksr/ssrurl" -o.value =sid - -o = s:option(Value, "alias", translate("Alias(optional)")) - --- o = s:option(Flag, "auth_enable", translate("Onetime Authentication")) --- o.rmempty = false - -o = s:option(Value, "server", translate("Server Address")) -o.datatype = "host" -o.rmempty = false - -o = s:option(Value, "server_port", translate("Server Port")) -o.datatype = "port" -o.rmempty = false - --- o = s:option(Value, "timeout", translate("Connection Timeout")) --- o.datatype = "uinteger" --- o.default = 60 --- o.rmempty = false - -o = s:option(Value, "password", translate("Password")) -o.password = true -o.rmempty = false - -o = s:option(ListValue, "encrypt_method", translate("Encrypt Method")) -for _, v in ipairs(encrypt_methods) do o:value(v) end -o.rmempty = false - -o = s:option(ListValue, "protocol", translate("Protocol")) -for _, v in ipairs(protocol) do o:value(v) end -o.rmempty = false - -o = s:option(Value, "protocol_param", translate("Protocol param(optional)")) - -o = s:option(ListValue, "obfs", translate("Obfs")) -for _, v in ipairs(obfs) do o:value(v) end -o.rmempty = false - -o = s:option(Value, "obfs_param", translate("Obfs param(optional)")) - --- o = s:option(Flag, "fast_open", translate("TCP Fast Open")) --- o.rmempty = false - -o = s:option(Flag, "switch_enable", translate("Enable Auto Switch")) -o.rmempty = false -o.default = "1" - -o = s:option(Value, "local_port", translate("Local Port")) -o.datatype = "port" -o.default = 1234 -o.rmempty = false - -if nixio.fs.access("/usr/bin/ssr-kcptun") then - -kcp_enable = s:option(Flag, "kcp_enable", translate("KcpTun Enable"), translate("bin:/usr/bin/ssr-kcptun")) -kcp_enable.rmempty = false - -o = s:option(Value, "kcp_port", translate("KcpTun Port")) -o.datatype = "port" -o.default = 4000 -function o.validate(self, value, section) - local kcp_file="/usr/bin/ssr-kcptun" - local enable = kcp_enable:formvalue(section) or kcp_enable.disabled - if enable == kcp_enable.enabled then - if not fs.access(kcp_file) then - return nil, translate("Haven't a Kcptun executable file") - elseif not isKcptun(kcp_file) then - return nil, translate("Not a Kcptun executable file") - end - end - - return value -end - -o = s:option(Value, "kcp_password", translate("KcpTun Password")) -o.password = true - -o = s:option(Value, "kcp_param", translate("KcpTun Param")) -o.default = "--nocomp" - -end - -return m diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua deleted file mode 100644 index 55b871193..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ /dev/null @@ -1,72 +0,0 @@ --- 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 shadowsocksr = "shadowsocksr" -local uci = luci.model.uci.cursor() - -local sys = require "luci.sys" - -m = Map(shadowsocksr, translate("ShadowSocksR Plus+ Settings")) - -m:section(SimpleSection).template = "shadowsocksr/status" - -local server_table = {} -uci:foreach(shadowsocksr, "servers", function(s) - if s.alias then - server_table[s[".name"]] = s.alias - elseif s.server and s.server_port then - server_table[s[".name"]] = "%s:%s" %{s.server, s.server_port} - end -end) - --- [[ Global Setting ]]-- -s = m:section(TypedSection, "global") -s.anonymous = true - -o = s:option(ListValue, "global_server", translate("Main Server")) -o:value("nil", translate("Disable")) -for k, v in pairs(server_table) do o:value(k, v) end -o.default = "nil" -o.rmempty = false - -o = s:option(ListValue, "udp_relay_server", translate("Game Mode UDP Server")) -o:value("", translate("Disable")) -o:value("same", translate("Same as Global Server")) -for k, v in pairs(server_table) do o:value(k, v) end - -o = s:option(ListValue, "run_mode", translate("Running Mode")) -o:value("gfw", translate("GFW List Mode")) -o:value("router", translate("IP Route Mode")) -o.default = gfw - -o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) -o:depends("run_mode", "gfw") -o:value("1", translate("Use Pdnsd tcp query and cache")) -o:value("0", translate("Use SSR DNS Tunnel")) -o.default = 1 - -o = s:option(Flag, "tunnel_enable", translate("Enable Tunnel(DNS)")) -o:depends("run_mode", "router") -o.default = 1 - -o = s:option(Value, "tunnel_port", translate("Tunnel Port")) -o:depends("run_mode", "router") -o.datatype = "port" -o.default = 5300 - -o = s:option(ListValue, "tunnel_forward", translate("Anti-pollution DNS Server")) -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)")) - -return m diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua deleted file mode 100644 index 4b113bac7..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua +++ /dev/null @@ -1,44 +0,0 @@ -local m, s, o - -m = Map("shadowsocksr", translate("IP black-and-white list")) - -s = m:section(TypedSection, "access_control") -s.anonymous = true - --- Part of WAN -s:tab("wan_ac", translate("WAN IP AC")) - -o = s:taboption("wan_ac", DynamicList, "wan_bp_ips", translate("WAN White List IP")) -o.datatype = "ip4addr" - -o = s:taboption("wan_ac", DynamicList, "wan_fw_ips", translate("WAN Force Proxy IP")) -o.datatype = "ip4addr" - --- Part of LAN -s:tab("lan_ac", translate("LAN IP AC")) - -o = s:taboption("lan_ac", DynamicList, "lan_ac_ips", translate("LAN Bypassed Host List")) -o.datatype = "ipaddr" -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - o:value(entry.dest:string()) - end -end) - -o = s:taboption("lan_ac", DynamicList, "lan_fp_ips", translate("LAN Force Proxy Host List")) -o.datatype = "ipaddr" -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - o:value(entry.dest:string()) - end -end) - --- Part of Self --- s:tab("self_ac", translate("Router Self AC")) --- o = s:taboption("self_ac",ListValue, "router_proxy", translate("Router Self Proxy")) --- o:value("1", translatef("Normal Proxy")) --- o:value("0", translatef("Bypassed Proxy")) --- o:value("2", translatef("Forwarded Proxy")) --- o.rmempty = false - -return m \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/list.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/list.lua deleted file mode 100644 index 5dd8cab01..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/list.lua +++ /dev/null @@ -1,23 +0,0 @@ -local fs = require "nixio.fs" -local conffile = "/etc/config/gfw.list" - -f = SimpleForm("custom", translate("GFW Custom List"), translate("Please refer to the following writing")) - -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 13 -function t.cfgvalue() - return fs.readfile(conffile) or "" -end - -function f.handle(self, state, data) - if state == FORM_VALID then - if data.conf then - fs.writefile(conffile, data.conf:gsub("\r\n", "\n")) - luci.sys.call("/usr/share/shadowsocksr/gfw2ipset.sh && /etc/init.d/dnsmasq restart && ipset flush gfwlist") - end - end - return true -end - -return f \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua deleted file mode 100644 index 05b4162fc..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua +++ /dev/null @@ -1,15 +0,0 @@ -local fs = require "nixio.fs" -local conffile = "/tmp/ssrpro.log" - -f = SimpleForm("logview") - -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 20 -function t.cfgvalue() - luci.sys.exec("[ -f /tmp/ssrplus.log ] && sed '1!G;h;$!d' /tmp/ssrplus.log > /tmp/ssrpro.log") - return fs.readfile(conffile) or "" -end -t.readonly="readonly" - -return f \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua deleted file mode 100644 index ff1b62ae3..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ /dev/null @@ -1,85 +0,0 @@ --- Licensed to the public under the GNU General Public License v3. - -local m, s, o -local shadowsocksr = "shadowsocksr" - -m = Map(shadowsocksr, translate("Servers subscription and manage")) - --- Server Subscribe - -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_time", translate("Update time (every day)")) -for t = 0,23 do -o:value(t, t..":00") -end -o.default=2 -o.rmempty = false - -o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL")) -o.rmempty = true - -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,"update",translate("Update")) -o.inputstyle = "reload" -o.write = function() - luci.sys.call("nohup bash /usr/share/shadowsocksr/subscribe.sh > /tmp/subupdate.log 2>&1 &") - luci.sys.call("sleep 8") - luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "servers")) -end - - --- [[ Servers Manage ]]-- -s = m:section(TypedSection, "servers") -s.anonymous = true -s.addremove = true -s.sortable = false -s.template = "cbi/tblsection" -s.extedit = luci.dispatcher.build_url("admin/services/shadowsocksr/servers/%s") -function s.create(...) - local sid = TypedSection.create(...) - if sid then - luci.http.redirect(s.extedit % sid) - return - end -end - -o = s:option(DummyValue, "alias", translate("Alias")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or translate("None") -end - -o = s:option(DummyValue, "server", translate("Server Address")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or "?" -end - -o = s:option(DummyValue, "server_port", translate("Server Port")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or "?" -end - -if nixio.fs.access("/usr/bin/ssr-kcptun") then - -o = s:option(DummyValue, "kcp_enable", translate("KcpTun")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or "?" -end - -end - -o = s:option(DummyValue, "switch_enable", translate("Auto Switch")) -function o.cfgvalue(...) - return Value.cfgvalue(...) or "0" -end - -return m diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua deleted file mode 100644 index 7bec5acd6..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ /dev/null @@ -1,166 +0,0 @@ --- Copyright (C) 2017 yushi studio --- Licensed to the public under the GNU General Public License v3. - -local IPK_Version="3.0.9" -local m, s, o -local redir_run=0 -local reudp_run=0 -local sock5_run=0 -local server_run=0 -local kcptun_run=0 -local tunnel_run=0 -local udp2raw_run=0 -local udpspeeder_run=0 -local gfw_count=0 -local ad_count=0 -local ip_count=0 -local gfwmode=0 - -if nixio.fs.access("/etc/dnsmasq.ssr/gfw_list.conf") then -gfwmode=1 -end - -local shadowsocksr = "shadowsocksr" --- html constants -font_blue = [[]] -font_off = [[]] -bold_on = [[]] -bold_off = [[]] - -local fs = require "nixio.fs" -local sys = require "luci.sys" -local kcptun_version=translate("Unknown") -local kcp_file="/usr/bin/ssr-kcptun" -if not fs.access(kcp_file) then - kcptun_version=translate("Not exist") -else - if not fs.access(kcp_file, "rwx", "rx", "rx") then - fs.chmod(kcp_file, 755) - end - kcptun_version=sys.exec(kcp_file .. " -v | awk '{printf $3}'") - if not kcptun_version or kcptun_version == "" then - kcptun_version = translate("Unknown") - end - -end - -if gfwmode==1 then - gfw_count = tonumber(sys.exec("cat /etc/dnsmasq.ssr/gfw_list.conf | wc -l"))/2 - if nixio.fs.access("/etc/dnsmasq.ssr/ad.conf") then - ad_count=tonumber(sys.exec("cat /etc/dnsmasq.ssr/ad.conf | wc -l")) - end -end - -if nixio.fs.access("/etc/china_ssr.txt") then - ip_count = sys.exec("cat /etc/china_ssr.txt | wc -l") -end - -local icount=sys.exec("ps -w | grep ssr-reudp |grep -v grep| wc -l") -if tonumber(icount)>0 then -reudp_run=1 -else -icount=sys.exec("ps -w | grep ssr-retcp |grep \"\\-u\"|grep -v grep| wc -l") -if tonumber(icount)>0 then -reudp_run=1 -end -end - - -if luci.sys.call("pidof ssr-redir >/dev/null") == 0 then -redir_run=1 -end - -if luci.sys.call("pidof ssr-kcptun >/dev/null") == 0 then -kcptun_run=1 -end - -if luci.sys.call("pidof ssr-server >/dev/null") == 0 then -server_run=1 -end - -if luci.sys.call("ps -w | grep ssr-tunnel |grep -v grep >/dev/null") == 0 then -tunnel_run=1 -end - -if luci.sys.call("pidof pdnsd >/dev/null") == 0 then -pdnsd_run=1 -end - -m = SimpleForm("Version") -m.reset = false -m.submit = false - -s=m:field(DummyValue,"redir_run",translate("Global Client")) -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") -end - -s=m:field(DummyValue,"reudp_run",translate("Game Mode UDP Relay")) -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") -end - -s=m:field(DummyValue,"pdnsd_run",translate("PDNSD")) -s.rawhtml = true -if pdnsd_run == 1 then -s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off -else -s.value = translate("Not Running") -end - -s=m:field(DummyValue,"tunnel_run",translate("DNS Tunnel")) -s.rawhtml = true -if tunnel_run == 1 then -s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off -else -s.value = translate("Not Running") -end - -if nixio.fs.access("/usr/bin/ssr-kcptun") then - -s=m:field(DummyValue,"kcp_version",translate("KcpTun Version")) -s.rawhtml = true -s.value =kcptun_version - -s=m:field(DummyValue,"kcptun_run",translate("KcpTun")) -s.rawhtml = true -if kcptun_run == 1 then -s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off -else -s.value = translate("Not Running") -end - -end - -s=m:field(DummyValue,"google",translate("Google Connectivity")) -s.value = translate("No Check") -s.template = "shadowsocksr/check" - -s=m:field(DummyValue,"baidu",translate("Baidu Connectivity")) -s.value = translate("No Check") -s.template = "shadowsocksr/check" - -if gfwmode==1 then -s=m:field(DummyValue,"gfw_data",translate("GFW List Data")) -s.rawhtml = true -s.template = "shadowsocksr/refresh" -s.value =tostring(math.ceil(gfw_count)) .. " " .. translate("Records") - -end - -s=m:field(DummyValue,"ip_data",translate("China IP Data")) -s.rawhtml = true -s.template = "shadowsocksr/refresh" -s.value =ip_count .. " " .. translate("Records") - -s=m:field(DummyValue,"check_port",translate("Check Server Port")) -s.template = "shadowsocksr/checkport" -s.value =translate("No Check") - -return m diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm deleted file mode 100644 index bd7892611..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm +++ /dev/null @@ -1,38 +0,0 @@ -<%+cbi/valueheader%> - - - - - -<%=self.value%> - -<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/checkport.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/checkport.htm deleted file mode 100644 index ed91a2f22..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/checkport.htm +++ /dev/null @@ -1,36 +0,0 @@ -<%+cbi/valueheader%> - - - -<%=self.value%> - - - -<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm deleted file mode 100644 index 00da6cd6d..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm +++ /dev/null @@ -1,44 +0,0 @@ -<%+cbi/valueheader%> - - - - - -<%=self.value%> - -<%+cbi/valuefooter%> \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm deleted file mode 100644 index 6bcc8bbc7..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ /dev/null @@ -1,139 +0,0 @@ -<%+cbi/valueheader%> - - - - - -<%:ssr://%> - -<%+cbi/valuefooter%> diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm deleted file mode 100644 index 0dab4d550..000000000 --- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    diff --git a/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po deleted file mode 100644 index a83bc1683..000000000 --- a/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ /dev/null @@ -1,453 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8\n" - -msgid "ShadowSocksR Client" -msgstr "ShadowSocksR 客户端" - -msgid "Enable" -msgstr "启用" - -msgid "Disable" -msgstr "停用" - -msgid "Log" -msgstr "日志" - -msgid "ShadowSocksR is running" -msgstr "ShadowSocksR 客户端运行中" - -msgid "ShadowSocksR is not running" -msgstr "ShadowSocksR 客户端未运行" - -msgid "Global Setting" -msgstr "全局设置" - -msgid "Global Server" -msgstr "全局服务器" - -msgid "ShadowSocksR SOCK5 Proxy is running" -msgstr "ShadowSocksR SOCK5代理运行中" - -msgid "UDP Relay Server" -msgstr "UDP中继服务器" - -msgid "Same as Global Server" -msgstr "与全局服务器相同" - -msgid "Servers Setting" -msgstr "服务器配置" - -msgid "Alias(optional)" -msgstr "别名(可选)" - -msgid "Onetime Authentication" -msgstr "一次验证" - -msgid "Server Address" -msgstr "服务器地址" - -msgid "Server Port" -msgstr "服务器端口" - -msgid "Local Port" -msgstr "本地端口" - -msgid "Connection Timeout" -msgstr "连接超时" - -msgid "Password" -msgstr "密码" - -msgid "Encrypt Method" -msgstr "加密方式" - -msgid "Protocol" -msgstr "传输协议" - -msgid "Protocol param(optional)" -msgstr "传输协议参数(可选)" - -msgid "Obfs" -msgstr "混淆插件" - -msgid "Obfs param(optional)" -msgstr "混淆参数(可选)" - -msgid "Enable Tunnel(DNS)" -msgstr "启用隧道(DNS)转发" - -msgid "Tunnel Port" -msgstr "隧道(DNS)本地端口" - -msgid "Forwarding Tunnel" -msgstr "隧道(DNS)转发地址" - -msgid "Access Control" -msgstr "访问控制" - -msgid "Interfaces - WAN" -msgstr "接口 - WAN" - -msgid "Bypassed IP List" -msgstr "被忽略IP列表" - -msgid "NULL - As Global Proxy" -msgstr "留空 - 作为全局代理" - -msgid "Bypassed IP" -msgstr "额外被忽略IP" - -msgid "Forwarded IP" -msgstr "强制走代理IP" - -msgid "Interfaces - LAN" -msgstr "接口 - LAN" - -msgid "LAN Access Control" -msgstr "内网访问控制" - -msgid "Allow listed only" -msgstr "仅允许列表内" - -msgid "Allow all except listed" -msgstr "仅允许列表外" - -msgid "LAN Host List" -msgstr "内网主机列表" - -msgid "SSR Client" -msgstr "客户端" - -msgid "SSR Server" -msgstr "服务端" - -msgid "ShadowSocksR Server" -msgstr "ShadowSocksR 服务端" - -msgid "ShadowSocksR Server is running" -msgstr "ShadowSocksR 服务端运行中" - -msgid "ShadowSocksR Server is not running" -msgstr "ShadowSocksR 服务端未运行" - -msgid "Enable Server" -msgstr "启动服务端" - -msgid "Server Setting" -msgstr "服务端配置" - -msgid "KcpTun Enable" -msgstr "KcpTun 启用" - -msgid "bin:/usr/bin/ssr-kcptun" -msgstr "二进制文件:/usr/bin/ssr-kcptun" - -msgid "KcpTun Port" -msgstr "KcpTun 端口" - -msgid "KcpTun Param" -msgstr "KcpTun 参数" - -msgid "KcpTun Password" -msgstr "KcpTun 密码" - -msgid "Haven't a Kcptun executable file" -msgstr "不存在Kcptun可执行文件,请下载Kcptun可执行文件并改名放入/usr/bin/ssr-kcptun" - -msgid "Not a Kcptun executable file" -msgstr "Kcptun可执行文件格式不正确,请确认是否正确下载了路由器对应的可执行文件" - -msgid "Enable Process Monitor" -msgstr "启用进程监控" - -msgid "Edit ShadowSocksR Server" -msgstr "编辑服务器配置" - -msgid "Alias" -msgstr "别名" - -msgid "SOCKS5 Proxy" -msgstr "SOCKS5代理" - -msgid "Server" -msgstr "服务器" - -msgid "TCP Fast Open" -msgstr "TCP快速打开" - -msgid "Status" -msgstr "状态" - -msgid "Unknown" -msgstr "未知" - -msgid "Running Status" -msgstr "运行状态" - -msgid "Global Client" -msgstr "全局客户端" - -msgid "Global SSR Server" -msgstr "SSR服务端" - -msgid "DNS Tunnel" -msgstr "DNS 隧道" - -msgid "IPK Version" -msgstr "IPK 版本号" - -msgid "KcpTun Version" -msgstr "KcpTun 版本号" - -msgid "Not exist" -msgstr "未安装可执行文件" - -msgid "IPK Installation Time" -msgstr "IPK 安装时间" - -msgid "Project" -msgstr "项目地址" - -msgid "Not Running" -msgstr "未运行" - -msgid "Running" -msgstr "运行中" - -msgid "Enable GFW mode" -msgstr "启用 GFW 模式" - -msgid "Running Mode" -msgstr "运行模式" - -msgid "IP Route Mode" -msgstr "绕过中国大陆IP模式" - -msgid "GFW List Mode" -msgstr "GFW列表模式" - -msgid "Router Proxy" -msgstr "路由器访问控制" - -msgid "Normal Proxy" -msgstr "正常代理" - -msgid "Bypassed Proxy" -msgstr "不走代理" - -msgid "Forwarded Proxy" -msgstr "强制走代理" - -msgid "UDP Relay" -msgstr "UDP中继" - -msgid "Google Connectivity" -msgstr "【谷歌】连通性检查" - -msgid "Baidu Connectivity" -msgstr "【百度】连通性检查" - -msgid "No Check" -msgstr "未检查" - -msgid "Check" -msgstr "检查" - -msgid "Connect OK" -msgstr "连接正常" - -msgid "Connect Error" -msgstr "连接错误" - -msgid "Check..." -msgstr "正在检查.." - -msgid "Proxy Check" -msgstr "代理检查" - - -msgid "GFW List Data" -msgstr "【GFW列表】数据库" - -msgid "China IP Data" -msgstr "【国内IP段】数据库" - -msgid "Records" -msgstr "条记录" - -msgid "Refresh Data" -msgstr "更新数据库" - -msgid "Refresh..." -msgstr "正在更新,请稍候.." - -msgid "Refresh OK!" -msgstr "更新成功!" - -msgid "Refresh Error!" -msgstr "更新失败!" - -msgid "No new data!" -msgstr "你已经是最新数据,无需更新!" - -msgid "Total Records:" -msgstr "新的总纪录数:" - -msgid "Check Server Port" -msgstr "【服务器端口】检查" - -msgid "Check Connect" -msgstr "检查连通性" - -msgid "Check Server" -msgstr "检查服务器" - -msgid "Auto Switch" -msgstr "自动切换" - -msgid "Enable Auto Switch" -msgstr "启用自动切换" - -msgid "Switch check cycly(second)" -msgstr "自动切换检查周期(秒)" - -msgid "Check timout(second)" -msgstr "切换检查超时时间(秒)" - -msgid "Advertising Data" -msgstr "【广告屏蔽】数据库" - -msgid "DNS Server IP and Port" -msgstr "DNS服务器地址和端口" - -msgid "Resolve Dns Mode" -msgstr "DNS解析方式" - -msgid "Use SSR DNS Tunnel" -msgstr "使用SSR-DNS隧道" - -msgid "Use Pdnsd" -msgstr "使用Pdnsd" - -msgid "Use Other DNS Tunnel(Need to install)" -msgstr "使用其他DNS转发(需要自己安装)" - -msgid "Import SSR" -msgstr "导入ssr配置信息" - -msgid "Export SSR" -msgstr "导出ssr配置信息" - -msgid "Import SSR successfully." -msgstr "成功导入SSR。" - -msgid "Invalid SSR format." -msgstr "无效的SSR格式。" - -msgid "User cancelled." -msgstr "用户已取消。" - -msgid "Paste ssr url here" -msgstr "在此处粘贴ssr://网址" - -msgid "Unable to copy SSR to clipboard." -msgstr "无法复制SSR网址到剪贴板。" - -msgid "Copy SSR to clipboard successfully." -msgstr "成功复制SSR网址到剪贴板。" - -msgid "Servers Manage" -msgstr "服务器管理" - -msgid "Auto Update" -msgstr "自动更新" - -msgid "Through proxy update" -msgstr "通过代理更新" - -msgid "GFW List" -msgstr "GFW列表" - -msgid "ShadowSocksR Plus+ Settings" -msgstr "ShadowSocksR Plus+ 设置" - -msgid "Main Server" -msgstr "主服务器" - -msgid "Anti-pollution DNS Server" -msgstr "访问国外域名DNS服务器" - -msgid "Use Pdnsd tcp query and cache" -msgstr "使用PDNSD TCP查询并缓存" - -msgid "DNS Server IP:Port" -msgstr "DNS服务器 IP:Port" - -msgid "Update time (every day)" -msgstr "更新时间 (每天)" - -msgid "Auto Update Server subscription, GFW list and CHN route" -msgstr "自动更新服务器订阅、GFW列表和 CHN路由表" - -msgid "Subscribe URL" -msgstr "SSR服务器订阅URL地址" - -msgid "Update" -msgstr "更新" - -msgid "IP black-and-white list" -msgstr "IP黑白名单" - -msgid "WAN IP AC" -msgstr "WAN IP访问控制" - -msgid "WAN White List IP" -msgstr "不走代理的WAN IP" - -msgid "WAN Force Proxy IP" -msgstr "强制走代理的WAN IP" - -msgid "LAN Bypassed Host List" -msgstr "不走代理的局域网 LAN IP" - -msgid "LAN Force Proxy Host List" -msgstr "全局代理的LAN IP" - -msgid "Router Self AC" -msgstr "路由器自身代理设置" - -msgid "Router Self Proxy" -msgstr "路由器自身代理方式" - -msgid "Normal Proxy" -msgstr "跟随全局设置" - -msgid "Bypassed Proxy" -msgstr "不走代理" - -msgid "Forwarded Proxy" -msgstr "全局代理" - -msgid "GFW Custom List" -msgstr "GFW 用户自定义列表" - -msgid "Please refer to the following writing" -msgstr "每行一个域名,无需写前面的 HTTP(S):// ,提交后即时生效" - -msgid "Servers subscription and manage" -msgstr "服务器节点订阅与管理(支持订阅和手动导入SSR链接)" - -msgid "Through proxy update list, Not Recommended" -msgstr "通过路由器自身代理更新订阅(不推荐)" - -msgid "LAN IP AC" -msgstr "LAN IP访问控制" - -msgid "Game Mode UDP Server" -msgstr "游戏模式UDP中继服务器" - -msgid "Game Mode UDP Relay" -msgstr "游戏模式UDP中继" - -msgid "Server failsafe auto swith settings" -msgstr "服务器节点故障自动切换设置" diff --git a/package/lean/luci-app-ssr-plus/root/etc/china_ssr.txt b/package/lean/luci-app-ssr-plus/root/etc/china_ssr.txt deleted file mode 100644 index 4f6474ce4..000000000 --- a/package/lean/luci-app-ssr-plus/root/etc/china_ssr.txt +++ /dev/null @@ -1,8264 +0,0 @@ -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/24 -1.1.9.0/24 -1.1.10.0/23 -1.1.12.0/22 -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/15 -1.118.0.0/16 -1.119.0.0/17 -1.119.128.0/17 -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.1.24.0/22 -14.1.96.0/22 -14.1.108.0/22 -14.16.0.0/12 -14.102.128.0/22 -14.102.156.0/22 -14.102.180.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.0.128.0/22 -27.0.132.0/22 -27.0.160.0/22 -27.0.164.0/22 -27.0.188.0/22 -27.0.204.0/22 -27.0.208.0/22 -27.0.212.0/22 -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.109.124.0/22 -27.112.0.0/18 -27.112.80.0/20 -27.112.112.0/22 -27.112.116.0/22 -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.123.232.0/22 -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 -36.255.116.0/22 -36.255.128.0/22 -36.255.164.0/22 -36.255.172.0/22 -36.255.176.0/22 -36.255.220.0/22 -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.96.0.0/13 -39.104.0.0/14 -39.108.0.0/16 -39.128.0.0/10 -40.72.0.0/15 -40.125.128.0/17 -40.126.64.0/18 -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/16 -42.159.0.0/16 -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 -43.224.12.0/22 -43.224.24.0/22 -43.224.44.0/22 -43.224.52.0/22 -43.224.56.0/22 -43.224.64.0/22 -43.224.68.0/22 -43.224.72.0/22 -43.224.80.0/22 -43.224.100.0/22 -43.224.144.0/22 -43.224.160.0/22 -43.224.176.0/22 -43.224.184.0/22 -43.224.200.0/22 -43.224.204.0/22 -43.224.208.0/22 -43.224.212.0/22 -43.224.216.0/22 -43.224.240.0/22 -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 -43.225.216.0/22 -43.225.220.0/22 -43.225.224.0/22 -43.225.228.0/22 -43.225.232.0/22 -43.225.236.0/22 -43.225.240.0/22 -43.225.244.0/22 -43.225.252.0/22 -43.226.32.0/22 -43.226.36.0/22 -43.226.40.0/22 -43.226.44.0/22 -43.226.48.0/22 -43.226.52.0/22 -43.226.56.0/22 -43.226.60.0/22 -43.226.64.0/22 -43.226.68.0/22 -43.226.72.0/22 -43.226.76.0/22 -43.226.80.0/22 -43.226.84.0/22 -43.226.88.0/22 -43.226.92.0/22 -43.226.96.0/22 -43.226.100.0/22 -43.226.104.0/22 -43.226.108.0/22 -43.226.112.0/22 -43.226.116.0/22 -43.226.120.0/22 -43.226.128.0/22 -43.226.132.0/22 -43.226.136.0/22 -43.226.140.0/22 -43.226.144.0/22 -43.226.148.0/22 -43.226.152.0/22 -43.226.156.0/22 -43.226.160.0/22 -43.226.164.0/22 -43.226.168.0/22 -43.226.172.0/22 -43.226.176.0/22 -43.226.180.0/22 -43.226.184.0/22 -43.226.188.0/22 -43.226.192.0/22 -43.226.196.0/22 -43.226.200.0/22 -43.226.204.0/22 -43.226.208.0/22 -43.226.212.0/22 -43.226.236.0/22 -43.226.240.0/22 -43.226.244.0/22 -43.226.248.0/22 -43.226.252.0/22 -43.227.0.0/22 -43.227.4.0/22 -43.227.8.0/22 -43.227.32.0/22 -43.227.36.0/22 -43.227.40.0/22 -43.227.44.0/22 -43.227.48.0/22 -43.227.52.0/22 -43.227.56.0/22 -43.227.60.0/22 -43.227.64.0/22 -43.227.68.0/22 -43.227.72.0/22 -43.227.76.0/22 -43.227.80.0/22 -43.227.84.0/22 -43.227.88.0/22 -43.227.92.0/22 -43.227.96.0/22 -43.227.100.0/22 -43.227.104.0/22 -43.227.136.0/22 -43.227.140.0/22 -43.227.144.0/22 -43.227.152.0/22 -43.227.156.0/22 -43.227.160.0/22 -43.227.164.0/22 -43.227.168.0/22 -43.227.172.0/22 -43.227.176.0/22 -43.227.180.0/22 -43.227.188.0/22 -43.227.192.0/22 -43.227.196.0/22 -43.227.200.0/22 -43.227.204.0/22 -43.227.208.0/22 -43.227.212.0/22 -43.227.216.0/22 -43.227.220.0/22 -43.227.232.0/22 -43.227.248.0/22 -43.227.252.0/22 -43.228.0.0/22 -43.228.4.0/22 -43.228.8.0/22 -43.228.12.0/22 -43.228.16.0/22 -43.228.20.0/22 -43.228.24.0/22 -43.228.28.0/22 -43.228.32.0/22 -43.228.36.0/22 -43.228.40.0/22 -43.228.44.0/22 -43.228.48.0/22 -43.228.52.0/22 -43.228.56.0/22 -43.228.60.0/22 -43.228.64.0/22 -43.228.68.0/22 -43.228.76.0/22 -43.228.100.0/22 -43.228.116.0/22 -43.228.120.0/22 -43.228.132.0/22 -43.228.136.0/22 -43.228.148.0/22 -43.228.152.0/22 -43.228.188.0/22 -43.229.16.0/22 -43.229.40.0/22 -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 -43.229.168.0/22 -43.229.172.0/22 -43.229.176.0/22 -43.229.180.0/22 -43.229.184.0/22 -43.229.188.0/22 -43.229.192.0/22 -43.229.196.0/22 -43.229.216.0/22 -43.229.220.0/22 -43.229.232.0/22 -43.229.236.0/22 -43.230.20.0/22 -43.230.32.0/22 -43.230.68.0/22 -43.230.72.0/22 -43.230.84.0/22 -43.230.124.0/22 -43.230.136.0/22 -43.230.168.0/22 -43.230.220.0/22 -43.230.224.0/22 -43.230.228.0/22 -43.230.232.0/22 -43.230.236.0/22 -43.230.240.0/22 -43.230.244.0/22 -43.230.248.0/22 -43.230.252.0/22 -43.231.32.0/22 -43.231.36.0/22 -43.231.40.0/22 -43.231.44.0/22 -43.231.80.0/22 -43.231.84.0/22 -43.231.88.0/22 -43.231.92.0/22 -43.231.96.0/22 -43.231.100.0/22 -43.231.104.0/22 -43.231.108.0/22 -43.231.136.0/22 -43.231.140.0/22 -43.231.144.0/22 -43.231.148.0/22 -43.231.152.0/22 -43.231.156.0/22 -43.231.160.0/22 -43.231.164.0/22 -43.231.168.0/22 -43.231.172.0/22 -43.231.176.0/22 -43.231.180.0/22 -43.236.0.0/22 -43.236.4.0/22 -43.236.8.0/22 -43.236.12.0/22 -43.236.16.0/22 -43.236.20.0/22 -43.236.24.0/22 -43.236.28.0/22 -43.236.32.0/22 -43.236.36.0/22 -43.236.40.0/22 -43.236.44.0/22 -43.236.48.0/22 -43.236.52.0/22 -43.236.56.0/22 -43.236.60.0/22 -43.236.64.0/22 -43.236.68.0/22 -43.236.72.0/22 -43.236.76.0/22 -43.236.80.0/22 -43.236.84.0/22 -43.236.88.0/22 -43.236.92.0/22 -43.236.96.0/22 -43.236.100.0/22 -43.236.104.0/22 -43.236.108.0/22 -43.236.112.0/22 -43.236.116.0/22 -43.236.120.0/22 -43.236.124.0/22 -43.236.128.0/22 -43.236.132.0/22 -43.236.136.0/22 -43.236.140.0/22 -43.236.144.0/22 -43.236.148.0/22 -43.236.152.0/22 -43.236.156.0/22 -43.236.160.0/22 -43.236.164.0/22 -43.236.168.0/22 -43.236.172.0/22 -43.236.176.0/22 -43.236.180.0/22 -43.236.184.0/22 -43.236.188.0/22 -43.236.192.0/22 -43.236.196.0/22 -43.236.200.0/22 -43.236.204.0/22 -43.236.208.0/22 -43.236.212.0/22 -43.236.216.0/22 -43.236.220.0/22 -43.236.224.0/22 -43.236.228.0/22 -43.236.232.0/22 -43.236.236.0/22 -43.236.240.0/22 -43.236.244.0/22 -43.236.248.0/22 -43.236.252.0/22 -43.237.0.0/22 -43.237.4.0/22 -43.237.8.0/22 -43.237.12.0/22 -43.237.16.0/22 -43.237.20.0/22 -43.237.24.0/22 -43.237.28.0/22 -43.237.32.0/22 -43.237.36.0/22 -43.237.40.0/22 -43.237.44.0/22 -43.237.48.0/22 -43.237.52.0/22 -43.237.56.0/22 -43.237.60.0/22 -43.237.64.0/22 -43.237.68.0/22 -43.237.72.0/22 -43.237.76.0/22 -43.237.80.0/22 -43.237.84.0/22 -43.237.88.0/22 -43.237.92.0/22 -43.237.96.0/22 -43.237.100.0/22 -43.237.104.0/22 -43.237.108.0/22 -43.237.112.0/22 -43.237.116.0/22 -43.237.120.0/22 -43.237.124.0/22 -43.237.128.0/22 -43.237.132.0/22 -43.237.136.0/22 -43.237.140.0/22 -43.237.144.0/22 -43.237.148.0/22 -43.237.152.0/22 -43.237.156.0/22 -43.237.160.0/22 -43.237.164.0/22 -43.237.168.0/22 -43.237.172.0/22 -43.237.176.0/22 -43.237.180.0/22 -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 -43.237.212.0/22 -43.237.216.0/22 -43.237.220.0/22 -43.237.224.0/22 -43.237.228.0/22 -43.237.232.0/22 -43.237.236.0/22 -43.237.240.0/22 -43.237.244.0/22 -43.237.248.0/22 -43.237.252.0/22 -43.238.0.0/22 -43.238.4.0/22 -43.238.8.0/22 -43.238.12.0/22 -43.238.16.0/22 -43.238.20.0/22 -43.238.24.0/22 -43.238.28.0/22 -43.238.32.0/22 -43.238.36.0/22 -43.238.40.0/22 -43.238.44.0/22 -43.238.48.0/22 -43.238.52.0/22 -43.238.56.0/22 -43.238.60.0/22 -43.238.64.0/22 -43.238.68.0/22 -43.238.72.0/22 -43.238.76.0/22 -43.238.80.0/22 -43.238.84.0/22 -43.238.88.0/22 -43.238.92.0/22 -43.238.96.0/22 -43.238.100.0/22 -43.238.104.0/22 -43.238.108.0/22 -43.238.112.0/22 -43.238.116.0/22 -43.238.120.0/22 -43.238.124.0/22 -43.238.128.0/22 -43.238.132.0/22 -43.238.136.0/22 -43.238.140.0/22 -43.238.144.0/22 -43.238.148.0/22 -43.238.152.0/22 -43.238.156.0/22 -43.238.160.0/22 -43.238.164.0/22 -43.238.168.0/22 -43.238.172.0/22 -43.238.176.0/22 -43.238.180.0/22 -43.238.184.0/22 -43.238.188.0/22 -43.238.192.0/22 -43.238.196.0/22 -43.238.200.0/22 -43.238.204.0/22 -43.238.208.0/22 -43.238.212.0/22 -43.238.216.0/22 -43.238.220.0/22 -43.238.224.0/22 -43.238.228.0/22 -43.238.232.0/22 -43.238.236.0/22 -43.238.240.0/22 -43.238.244.0/22 -43.238.248.0/22 -43.238.252.0/22 -43.239.0.0/22 -43.239.4.0/22 -43.239.8.0/21 -43.239.16.0/22 -43.239.20.0/22 -43.239.24.0/22 -43.239.28.0/22 -43.239.32.0/22 -43.239.36.0/22 -43.239.40.0/22 -43.239.44.0/22 -43.239.48.0/22 -43.239.116.0/22 -43.239.120.0/22 -43.239.172.0/22 -43.239.176.0/22 -43.240.0.0/22 -43.240.48.0/22 -43.240.56.0/22 -43.240.60.0/22 -43.240.68.0/22 -43.240.72.0/22 -43.240.76.0/22 -43.240.84.0/22 -43.240.124.0/22 -43.240.128.0/22 -43.240.132.0/22 -43.240.136.0/22 -43.240.156.0/22 -43.240.160.0/22 -43.240.164.0/22 -43.240.168.0/22 -43.240.172.0/22 -43.240.176.0/22 -43.240.180.0/22 -43.240.184.0/22 -43.240.188.0/22 -43.240.192.0/22 -43.240.196.0/22 -43.240.200.0/22 -43.240.204.0/22 -43.240.208.0/22 -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 -43.240.252.0/22 -43.241.0.0/22 -43.241.4.0/22 -43.241.8.0/22 -43.241.12.0/22 -43.241.16.0/22 -43.241.20.0/22 -43.241.48.0/22 -43.241.76.0/22 -43.241.80.0/22 -43.241.84.0/22 -43.241.88.0/22 -43.241.92.0/22 -43.241.112.0/22 -43.241.168.0/22 -43.241.172.0/22 -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 -43.241.220.0/22 -43.241.224.0/22 -43.241.228.0/22 -43.241.232.0/22 -43.241.236.0/22 -43.241.240.0/22 -43.241.248.0/22 -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.24.0/22 -43.242.28.0/22 -43.242.44.0/22 -43.242.48.0/22 -43.242.52.0/22 -43.242.56.0/22 -43.242.60.0/22 -43.242.64.0/22 -43.242.72.0/22 -43.242.76.0/22 -43.242.80.0/22 -43.242.84.0/22 -43.242.88.0/22 -43.242.92.0/22 -43.242.96.0/22 -43.242.144.0/22 -43.242.148.0/22 -43.242.152.0/22 -43.242.156.0/22 -43.242.160.0/22 -43.242.164.0/22 -43.242.168.0/22 -43.242.180.0/22 -43.242.188.0/22 -43.242.192.0/22 -43.242.196.0/22 -43.242.204.0/22 -43.242.216.0/22 -43.242.220.0/22 -43.242.252.0/22 -43.243.4.0/22 -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 -43.243.144.0/22 -43.243.148.0/22 -43.243.156.0/22 -43.243.168.0/22 -43.243.180.0/22 -43.243.188.0/22 -43.243.228.0/22 -43.243.232.0/22 -43.243.244.0/22 -43.246.0.0/22 -43.246.4.0/22 -43.246.8.0/22 -43.246.12.0/22 -43.246.16.0/22 -43.246.20.0/22 -43.246.24.0/22 -43.246.28.0/22 -43.246.32.0/22 -43.246.36.0/22 -43.246.40.0/22 -43.246.44.0/22 -43.246.48.0/22 -43.246.52.0/22 -43.246.56.0/22 -43.246.60.0/22 -43.246.64.0/22 -43.246.68.0/22 -43.246.72.0/22 -43.246.76.0/22 -43.246.80.0/22 -43.246.84.0/22 -43.246.88.0/22 -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 -43.247.44.0/22 -43.247.48.0/22 -43.247.68.0/22 -43.247.76.0/22 -43.247.84.0/22 -43.247.88.0/22 -43.247.92.0/22 -43.247.96.0/22 -43.247.100.0/22 -43.247.108.0/22 -43.247.112.0/22 -43.247.148.0/22 -43.247.152.0/22 -43.247.176.0/22 -43.247.180.0/22 -43.247.184.0/22 -43.247.188.0/22 -43.247.196.0/22 -43.247.200.0/22 -43.247.204.0/22 -43.247.208.0/22 -43.247.212.0/22 -43.247.216.0/22 -43.247.220.0/22 -43.247.224.0/22 -43.247.228.0/22 -43.247.232.0/22 -43.247.236.0/22 -43.247.240.0/22 -43.247.244.0/22 -43.247.248.0/22 -43.247.252.0/22 -43.248.0.0/22 -43.248.4.0/22 -43.248.20.0/22 -43.248.28.0/22 -43.248.48.0/22 -43.248.76.0/22 -43.248.80.0/22 -43.248.84.0/22 -43.248.88.0/22 -43.248.92.0/22 -43.248.96.0/22 -43.248.100.0/22 -43.248.104.0/22 -43.248.108.0/22 -43.248.112.0/22 -43.248.116.0/22 -43.248.120.0/22 -43.248.124.0/22 -43.248.128.0/22 -43.248.132.0/22 -43.248.136.0/22 -43.248.140.0/22 -43.248.144.0/22 -43.248.148.0/22 -43.248.176.0/22 -43.248.180.0/22 -43.248.184.0/22 -43.248.188.0/22 -43.248.192.0/22 -43.248.196.0/22 -43.248.200.0/22 -43.248.204.0/22 -43.248.208.0/22 -43.248.228.0/22 -43.248.232.0/22 -43.248.244.0/22 -43.249.0.0/22 -43.249.4.0/22 -43.249.8.0/22 -43.249.24.0/22 -43.249.120.0/22 -43.249.132.0/22 -43.249.136.0/22 -43.249.144.0/22 -43.249.148.0/22 -43.249.152.0/22 -43.249.156.0/22 -43.249.160.0/22 -43.249.164.0/22 -43.249.168.0/22 -43.249.192.0/22 -43.249.236.0/22 -43.250.4.0/22 -43.250.12.0/22 -43.250.16.0/22 -43.250.20.0/22 -43.250.28.0/22 -43.250.32.0/22 -43.250.36.0/22 -43.250.72.0/22 -43.250.96.0/22 -43.250.100.0/22 -43.250.104.0/22 -43.250.108.0/22 -43.250.112.0/22 -43.250.116.0/22 -43.250.128.0/22 -43.250.144.0/22 -43.250.148.0/22 -43.250.160.0/22 -43.250.168.0/22 -43.250.172.0/22 -43.250.176.0/22 -43.250.200.0/22 -43.250.212.0/22 -43.250.216.0/22 -43.250.220.0/22 -43.250.236.0/22 -43.250.244.0/22 -43.251.4.0/22 -43.251.8.0/22 -43.251.12.0/22 -43.251.36.0/22 -43.251.100.0/22 -43.251.116.0/22 -43.251.192.0/22 -43.251.232.0/22 -43.251.236.0/22 -43.251.244.0/22 -43.252.40.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 -43.254.24.0/22 -43.254.36.0/22 -43.254.44.0/22 -43.254.52.0/22 -43.254.64.0/22 -43.254.72.0/22 -43.254.84.0/22 -43.254.88.0/22 -43.254.92.0/22 -43.254.100.0/22 -43.254.104.0/22 -43.254.112.0/22 -43.254.116.0/22 -43.254.128.0/22 -43.254.136.0/22 -43.254.140.0/22 -43.254.144.0/22 -43.254.148.0/22 -43.254.152.0/22 -43.254.156.0/22 -43.254.168.0/22 -43.254.172.0/22 -43.254.180.0/22 -43.254.184.0/22 -43.254.188.0/22 -43.254.192.0/22 -43.254.196.0/22 -43.254.200.0/22 -43.254.208.0/22 -43.254.220.0/22 -43.254.224.0/22 -43.254.228.0/22 -43.254.232.0/22 -43.254.236.0/22 -43.254.240.0/22 -43.254.248.0/22 -43.254.252.0/22 -43.255.0.0/22 -43.255.4.0/22 -43.255.8.0/22 -43.255.16.0/22 -43.255.48.0/22 -43.255.64.0/22 -43.255.68.0/22 -43.255.72.0/22 -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 -43.255.200.0/22 -43.255.204.0/22 -43.255.208.0/22 -43.255.212.0/22 -43.255.224.0/22 -43.255.228.0/22 -43.255.232.0/22 -43.255.244.0/22 -45.40.192.0/18 -45.65.16.0/22 -45.65.20.0/22 -45.65.24.0/22 -45.65.28.0/22 -45.112.132.0/22 -45.112.188.0/22 -45.112.208.0/22 -45.112.212.0/22 -45.112.216.0/22 -45.112.220.0/22 -45.112.228.0/22 -45.112.232.0/22 -45.112.236.0/22 -45.113.12.0/22 -45.113.16.0/22 -45.113.20.0/22 -45.113.24.0/22 -45.113.28.0/22 -45.113.40.0/22 -45.113.52.0/22 -45.113.56.0/22 -45.113.72.0/22 -45.113.144.0/22 -45.113.148.0/22 -45.113.168.0/22 -45.113.176.0/22 -45.113.184.0/22 -45.113.200.0/22 -45.113.204.0/22 -45.113.208.0/22 -45.113.212.0/22 -45.113.216.0/22 -45.113.220.0/22 -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.108.0/22 -45.114.124.0/22 -45.114.136.0/22 -45.114.196.0/22 -45.114.200.0/22 -45.114.228.0/22 -45.114.252.0/22 -45.115.44.0/22 -45.115.100.0/22 -45.115.120.0/22 -45.115.132.0/22 -45.115.144.0/22 -45.115.156.0/22 -45.115.164.0/22 -45.115.200.0/22 -45.115.212.0/22 -45.115.228.0/22 -45.115.236.0/22 -45.115.244.0/22 -45.115.248.0/22 -45.116.12.0/22 -45.116.16.0/22 -45.116.24.0/22 -45.116.32.0/22 -45.116.36.0/22 -45.116.52.0/22 -45.116.96.0/22 -45.116.100.0/22 -45.116.140.0/22 -45.116.152.0/22 -45.116.208.0/22 -45.117.8.0/22 -45.117.20.0/22 -45.117.68.0/22 -45.117.124.0/22 -45.117.252.0/22 -45.119.52.0/22 -45.119.60.0/22 -45.119.64.0/22 -45.119.68.0/22 -45.119.72.0/22 -45.119.104.0/22 -45.119.116.0/22 -45.119.232.0/22 -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.20.0/22 -45.121.52.0/22 -45.121.64.0/22 -45.121.68.0/22 -45.121.72.0/22 -45.121.92.0/22 -45.121.96.0/22 -45.121.104.0/22 -45.121.172.0/22 -45.121.176.0/22 -45.121.212.0/22 -45.121.240.0/22 -45.121.244.0/22 -45.121.248.0/22 -45.121.252.0/22 -45.122.0.0/22 -45.122.4.0/22 -45.122.8.0/22 -45.122.12.0/22 -45.122.16.0/22 -45.122.20.0/22 -45.122.24.0/22 -45.122.28.0/22 -45.122.32.0/22 -45.122.36.0/22 -45.122.40.0/22 -45.122.60.0/22 -45.122.64.0/22 -45.122.68.0/22 -45.122.72.0/22 -45.122.76.0/22 -45.122.80.0/22 -45.122.84.0/22 -45.122.88.0/22 -45.122.92.0/22 -45.122.96.0/21 -45.122.104.0/22 -45.122.108.0/22 -45.122.112.0/22 -45.122.116.0/22 -45.122.160.0/22 -45.122.164.0/22 -45.122.168.0/22 -45.122.172.0/22 -45.122.176.0/22 -45.122.180.0/22 -45.122.184.0/22 -45.122.188.0/22 -45.122.192.0/22 -45.122.196.0/22 -45.122.200.0/22 -45.122.204.0/22 -45.122.208.0/22 -45.122.212.0/22 -45.122.216.0/22 -45.123.28.0/22 -45.123.32.0/22 -45.123.36.0/22 -45.123.44.0/22 -45.123.48.0/22 -45.123.52.0/22 -45.123.56.0/22 -45.123.60.0/22 -45.123.64.0/22 -45.123.68.0/22 -45.123.72.0/22 -45.123.76.0/22 -45.123.80.0/22 -45.123.84.0/22 -45.123.88.0/22 -45.123.120.0/22 -45.123.128.0/22 -45.123.132.0/22 -45.123.136.0/22 -45.123.148.0/22 -45.123.152.0/22 -45.123.156.0/22 -45.123.164.0/22 -45.123.168.0/22 -45.123.172.0/22 -45.123.176.0/22 -45.123.180.0/22 -45.123.184.0/22 -45.123.204.0/22 -45.123.212.0/22 -45.123.224.0/22 -45.123.228.0/22 -45.123.232.0/22 -45.123.236.0/22 -45.123.240.0/22 -45.123.244.0/22 -45.123.248.0/22 -45.123.252.0/22 -45.124.0.0/22 -45.124.20.0/22 -45.124.28.0/22 -45.124.32.0/22 -45.124.36.0/22 -45.124.44.0/22 -45.124.68.0/22 -45.124.76.0/22 -45.124.80.0/22 -45.124.100.0/22 -45.124.124.0/22 -45.124.172.0/22 -45.124.176.0/22 -45.124.208.0/22 -45.124.248.0/22 -45.124.252.0/22 -45.125.12.0/22 -45.125.16.0/22 -45.125.24.0/22 -45.125.28.0/22 -45.125.32.0/22 -45.125.44.0/22 -45.125.52.0/22 -45.125.56.0/22 -45.125.76.0/22 -45.125.80.0/22 -45.125.84.0/22 -45.125.88.0/22 -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 -45.126.100.0/22 -45.126.108.0/22 -45.126.112.0/22 -45.126.116.0/22 -45.126.120.0/22 -45.126.212.0/22 -45.126.220.0/22 -45.127.8.0/22 -45.127.12.0/22 -45.127.96.0/22 -45.127.116.0/22 -45.127.124.0/22 -45.127.128.0/22 -45.127.144.0/22 -45.127.148.0/22 -45.127.156.0/22 -45.127.216.0/22 -45.248.8.0/22 -45.248.80.0/22 -45.248.84.0/22 -45.248.88.0/22 -45.248.96.0/22 -45.248.100.0/22 -45.248.104.0/22 -45.248.108.0/22 -45.248.128.0/22 -45.248.132.0/22 -45.248.204.0/22 -45.248.208.0/22 -45.248.212.0/22 -45.248.216.0/22 -45.248.220.0/22 -45.248.224.0/22 -45.248.228.0/22 -45.248.232.0/22 -45.248.236.0/22 -45.248.240.0/22 -45.248.244.0/22 -45.248.248.0/22 -45.248.252.0/22 -45.249.0.0/22 -45.249.4.0/22 -45.249.12.0/22 -45.249.16.0/22 -45.249.20.0/22 -45.249.24.0/22 -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.180.0/22 -45.249.188.0/22 -45.249.192.0/22 -45.249.196.0/22 -45.249.200.0/22 -45.249.204.0/22 -45.249.208.0/22 -45.249.212.0/22 -45.250.12.0/22 -45.250.16.0/22 -45.250.28.0/22 -45.250.32.0/22 -45.250.36.0/22 -45.250.40.0/22 -45.250.76.0/22 -45.250.80.0/22 -45.250.84.0/22 -45.250.88.0/22 -45.250.92.0/22 -45.250.96.0/22 -45.250.104.0/22 -45.250.108.0/22 -45.250.112.0/22 -45.250.116.0/22 -45.250.120.0/22 -45.250.124.0/22 -45.250.128.0/22 -45.250.132.0/22 -45.250.136.0/22 -45.250.140.0/22 -45.250.144.0/22 -45.250.148.0/22 -45.250.152.0/22 -45.250.164.0/22 -45.250.180.0/22 -45.250.184.0/22 -45.250.188.0/22 -45.250.192.0/22 -45.251.0.0/22 -45.251.8.0/22 -45.251.16.0/22 -45.251.20.0/22 -45.251.52.0/22 -45.251.84.0/22 -45.251.88.0/22 -45.251.92.0/22 -45.251.96.0/22 -45.251.100.0/22 -45.251.120.0/22 -45.251.124.0/22 -45.251.136.0/22 -45.251.140.0/22 -45.251.144.0/22 -45.251.148.0/22 -45.251.152.0/22 -45.251.156.0/22 -45.251.160.0/22 -45.251.164.0/22 -45.251.168.0/22 -45.251.172.0/22 -45.251.176.0/22 -45.251.180.0/22 -45.251.184.0/22 -45.251.188.0/22 -45.251.192.0/22 -45.251.196.0/22 -45.251.200.0/22 -45.251.204.0/22 -45.251.208.0/22 -45.251.212.0/22 -45.251.216.0/22 -45.251.220.0/22 -45.251.224.0/22 -45.251.240.0/22 -45.252.0.0/22 -45.252.4.0/22 -45.252.8.0/22 -45.252.12.0/22 -45.252.16.0/22 -45.252.20.0/22 -45.252.24.0/22 -45.252.28.0/22 -45.252.32.0/22 -45.252.36.0/22 -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 -45.252.96.0/22 -45.252.100.0/22 -45.252.104.0/22 -45.252.108.0/22 -45.252.112.0/22 -45.252.116.0/22 -45.252.120.0/22 -45.252.124.0/22 -45.252.128.0/22 -45.252.132.0/22 -45.252.136.0/22 -45.252.140.0/22 -45.252.144.0/22 -45.252.148.0/22 -45.252.152.0/22 -45.252.156.0/22 -45.252.160.0/22 -45.252.164.0/22 -45.252.168.0/22 -45.252.172.0/22 -45.252.176.0/22 -45.252.192.0/22 -45.252.196.0/22 -45.252.200.0/22 -45.252.204.0/22 -45.252.208.0/22 -45.252.212.0/22 -45.252.216.0/22 -45.252.220.0/22 -45.252.224.0/22 -45.252.228.0/22 -45.252.232.0/22 -45.253.0.0/22 -45.253.4.0/22 -45.253.8.0/22 -45.253.12.0/22 -45.253.16.0/22 -45.253.20.0/22 -45.253.24.0/22 -45.253.28.0/22 -45.253.32.0/22 -45.253.36.0/22 -45.253.40.0/22 -45.253.44.0/22 -45.253.48.0/22 -45.253.52.0/22 -45.253.56.0/22 -45.253.60.0/22 -45.253.64.0/22 -45.253.68.0/22 -45.253.72.0/22 -45.253.76.0/22 -45.253.80.0/22 -45.253.84.0/22 -45.253.92.0/22 -45.253.96.0/22 -45.253.100.0/22 -45.253.104.0/22 -45.253.108.0/22 -45.253.112.0/22 -45.253.116.0/22 -45.253.120.0/22 -45.253.132.0/22 -45.253.136.0/22 -45.253.140.0/22 -45.253.144.0/22 -45.253.148.0/22 -45.253.152.0/22 -45.253.156.0/22 -45.253.160.0/22 -45.253.164.0/22 -45.253.168.0/22 -45.253.172.0/22 -45.253.176.0/22 -45.253.180.0/22 -45.253.184.0/22 -45.253.188.0/22 -45.253.192.0/22 -45.253.196.0/22 -45.253.200.0/22 -45.253.204.0/22 -45.253.208.0/22 -45.253.212.0/22 -45.253.216.0/22 -45.253.220.0/22 -45.253.224.0/22 -45.253.228.0/22 -45.253.232.0/22 -45.253.236.0/22 -45.253.240.0/22 -45.253.244.0/22 -45.253.248.0/22 -45.253.252.0/22 -45.254.0.0/22 -45.254.4.0/22 -45.254.8.0/22 -45.254.12.0/22 -45.254.16.0/22 -45.254.20.0/22 -45.254.24.0/22 -45.254.28.0/22 -45.254.40.0/22 -45.254.48.0/22 -45.254.52.0/22 -45.254.56.0/22 -45.254.60.0/22 -45.254.64.0/22 -45.254.68.0/22 -45.254.72.0/22 -45.254.76.0/22 -45.254.80.0/22 -45.254.84.0/22 -45.254.88.0/22 -45.254.92.0/22 -45.254.96.0/22 -45.254.100.0/22 -45.254.104.0/22 -45.254.108.0/22 -45.254.112.0/22 -45.254.116.0/22 -45.254.120.0/22 -45.254.124.0/22 -45.254.128.0/22 -45.254.132.0/22 -45.254.136.0/22 -45.254.140.0/22 -45.254.144.0/22 -45.254.148.0/22 -45.254.152.0/22 -45.254.156.0/22 -45.254.160.0/22 -45.254.164.0/22 -45.254.168.0/22 -45.254.172.0/22 -45.254.176.0/22 -45.254.180.0/22 -45.254.184.0/22 -45.254.188.0/22 -45.254.192.0/22 -45.254.196.0/22 -45.254.200.0/22 -45.254.204.0/22 -45.254.208.0/22 -45.254.212.0/22 -45.254.216.0/22 -45.254.220.0/22 -45.254.224.0/22 -45.254.228.0/22 -45.254.236.0/22 -45.254.240.0/22 -45.254.248.0/22 -45.255.0.0/22 -45.255.4.0/22 -45.255.8.0/22 -45.255.12.0/22 -45.255.16.0/22 -45.255.20.0/22 -45.255.24.0/22 -45.255.28.0/22 -45.255.32.0/22 -45.255.36.0/22 -45.255.40.0/22 -45.255.44.0/22 -45.255.48.0/22 -45.255.52.0/22 -45.255.56.0/22 -45.255.60.0/22 -45.255.64.0/22 -45.255.68.0/22 -45.255.72.0/22 -45.255.76.0/22 -45.255.80.0/22 -45.255.84.0/22 -45.255.88.0/22 -45.255.92.0/22 -45.255.96.0/22 -45.255.100.0/22 -45.255.104.0/22 -45.255.108.0/22 -45.255.112.0/22 -45.255.116.0/22 -45.255.120.0/22 -45.255.124.0/22 -45.255.132.0/22 -45.255.136.0/22 -45.255.140.0/22 -45.255.144.0/22 -45.255.148.0/22 -45.255.152.0/22 -45.255.156.0/22 -45.255.160.0/22 -45.255.164.0/22 -45.255.168.0/22 -45.255.172.0/22 -45.255.176.0/22 -45.255.180.0/22 -45.255.184.0/22 -45.255.188.0/22 -45.255.192.0/22 -45.255.196.0/22 -45.255.200.0/22 -45.255.204.0/22 -45.255.208.0/22 -45.255.212.0/22 -45.255.216.0/22 -45.255.220.0/22 -45.255.224.0/22 -45.255.228.0/22 -45.255.232.0/22 -45.255.236.0/22 -45.255.240.0/22 -45.255.244.0/22 -45.255.248.0/22 -47.92.0.0/14 -47.96.0.0/11 -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.128.4.0/22 -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 -52.80.0.0/15 -52.82.0.0/15 -52.130.0.0/15 -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/15 -59.82.0.0/15 -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.152.16.0/22 -59.152.20.0/22 -59.152.24.0/22 -59.152.28.0/22 -59.152.32.0/22 -59.152.36.0/22 -59.152.64.0/22 -59.152.68.0/22 -59.152.72.0/22 -59.152.76.0/22 -59.152.112.0/22 -59.152.116.0/22 -59.153.4.0/22 -59.153.32.0/22 -59.153.60.0/22 -59.153.64.0/22 -59.153.68.0/22 -59.153.72.0/22 -59.153.92.0/22 -59.153.116.0/22 -59.153.136.0/22 -59.153.152.0/22 -59.153.156.0/22 -59.153.164.0/22 -59.153.168.0/22 -59.153.172.0/22 -59.153.176.0/22 -59.153.180.0/22 -59.153.184.0/22 -59.153.188.0/22 -59.153.192.0/22 -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.14.212.0/22 -61.14.216.0/22 -61.14.220.0/22 -61.14.240.0/22 -61.14.244.0/22 -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 -62.234.0.0/16 -68.79.0.0/18 -69.230.192.0/18 -69.231.128.0/18 -69.234.192.0/18 -69.235.128.0/18 -71.131.192.0/18 -71.132.0.0/18 -71.136.64.0/18 -71.137.0.0/18 -81.68.0.0/14 -82.156.0.0/15 -94.191.0.0/17 -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/14 -101.36.0.0/17 -101.36.128.0/17 -101.37.0.0/16 -101.38.0.0/15 -101.40.0.0/13 -101.48.0.0/15 -101.50.8.0/22 -101.50.12.0/22 -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/16 -101.197.0.0/16 -101.198.0.0/15 -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.4.224.0/22 -103.5.36.0/22 -103.5.52.0/22 -103.5.56.0/22 -103.5.152.0/22 -103.5.168.0/22 -103.5.192.0/22 -103.5.252.0/22 -103.6.76.0/22 -103.6.108.0/22 -103.6.220.0/22 -103.6.228.0/22 -103.7.4.0/22 -103.7.28.0/22 -103.7.140.0/22 -103.7.212.0/22 -103.7.216.0/22 -103.7.220.0/22 -103.8.0.0/22 -103.8.4.0/22 -103.8.8.0/22 -103.8.32.0/22 -103.8.52.0/22 -103.8.68.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.8.0/22 -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 -103.10.16.0/22 -103.10.84.0/22 -103.10.140.0/22 -103.11.16.0/22 -103.11.168.0/22 -103.11.180.0/22 -103.12.32.0/22 -103.12.68.0/22 -103.12.92.0/22 -103.12.136.0/22 -103.12.184.0/22 -103.12.232.0/22 -103.13.12.0/22 -103.13.72.0/23 -103.13.124.0/22 -103.13.144.0/22 -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 -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.64.0/22 -103.17.120.0/22 -103.17.136.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.0.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.44.0/22 -103.20.68.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.24.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.76.0/22 -103.26.132.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.184.0/22 -103.27.208.0/22 -103.27.212.0/22 -103.27.240.0/22 -103.28.4.0/22 -103.28.8.0/22 -103.28.184.0/22 -103.28.204.0/22 -103.28.212.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.228.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.148.0/22 -103.31.160.0/22 -103.31.168.0/22 -103.31.200.0/22 -103.31.236.0/22 -103.32.0.0/22 -103.32.4.0/22 -103.32.8.0/22 -103.32.12.0/22 -103.32.16.0/22 -103.32.20.0/22 -103.32.24.0/22 -103.32.28.0/22 -103.32.32.0/22 -103.32.36.0/22 -103.32.40.0/22 -103.32.44.0/22 -103.32.48.0/22 -103.32.52.0/22 -103.32.56.0/22 -103.32.60.0/22 -103.32.64.0/22 -103.32.68.0/22 -103.32.72.0/22 -103.32.76.0/22 -103.32.80.0/22 -103.32.84.0/22 -103.32.88.0/22 -103.32.92.0/22 -103.32.96.0/22 -103.32.100.0/22 -103.32.104.0/22 -103.32.108.0/22 -103.32.112.0/22 -103.32.116.0/22 -103.32.120.0/22 -103.32.124.0/22 -103.32.128.0/22 -103.32.132.0/22 -103.32.136.0/22 -103.32.140.0/22 -103.32.144.0/22 -103.32.148.0/22 -103.32.152.0/22 -103.32.156.0/22 -103.32.160.0/22 -103.32.164.0/22 -103.32.168.0/22 -103.32.172.0/22 -103.32.176.0/22 -103.32.180.0/22 -103.32.184.0/22 -103.32.188.0/22 -103.32.192.0/22 -103.32.196.0/22 -103.32.200.0/22 -103.32.204.0/22 -103.32.208.0/22 -103.32.212.0/22 -103.32.216.0/22 -103.32.220.0/22 -103.32.224.0/22 -103.32.228.0/22 -103.32.232.0/22 -103.32.236.0/22 -103.32.240.0/22 -103.32.244.0/22 -103.32.248.0/22 -103.32.252.0/22 -103.33.0.0/22 -103.33.4.0/22 -103.33.8.0/22 -103.33.12.0/22 -103.33.16.0/22 -103.33.20.0/22 -103.33.24.0/22 -103.33.28.0/22 -103.33.32.0/22 -103.33.36.0/22 -103.33.40.0/22 -103.33.44.0/22 -103.33.48.0/22 -103.33.52.0/22 -103.33.56.0/22 -103.33.60.0/22 -103.33.64.0/22 -103.33.68.0/22 -103.33.72.0/22 -103.33.76.0/22 -103.33.80.0/22 -103.33.84.0/22 -103.33.88.0/22 -103.33.92.0/22 -103.33.96.0/22 -103.33.100.0/22 -103.33.104.0/22 -103.33.108.0/22 -103.33.112.0/22 -103.33.116.0/22 -103.33.120.0/22 -103.33.124.0/22 -103.33.128.0/22 -103.33.132.0/22 -103.33.136.0/22 -103.33.140.0/22 -103.33.144.0/22 -103.33.148.0/22 -103.33.152.0/22 -103.33.156.0/22 -103.33.160.0/22 -103.33.164.0/22 -103.33.168.0/22 -103.33.172.0/22 -103.33.176.0/22 -103.33.180.0/22 -103.33.184.0/22 -103.33.188.0/22 -103.33.192.0/22 -103.33.196.0/22 -103.33.200.0/22 -103.33.204.0/22 -103.33.208.0/22 -103.33.212.0/22 -103.33.216.0/22 -103.33.220.0/22 -103.33.224.0/22 -103.33.228.0/22 -103.33.232.0/22 -103.33.236.0/22 -103.33.240.0/22 -103.33.244.0/22 -103.33.248.0/22 -103.33.252.0/22 -103.34.0.0/22 -103.34.4.0/22 -103.34.8.0/22 -103.34.12.0/22 -103.34.16.0/22 -103.34.20.0/22 -103.34.24.0/22 -103.34.28.0/22 -103.34.32.0/22 -103.34.36.0/22 -103.34.40.0/22 -103.34.44.0/22 -103.34.48.0/22 -103.34.52.0/22 -103.34.56.0/22 -103.34.60.0/22 -103.34.64.0/22 -103.34.68.0/22 -103.34.72.0/22 -103.34.76.0/22 -103.34.80.0/22 -103.34.84.0/22 -103.34.88.0/22 -103.34.92.0/22 -103.34.96.0/22 -103.34.100.0/22 -103.34.104.0/22 -103.34.108.0/22 -103.34.112.0/22 -103.34.116.0/22 -103.34.120.0/22 -103.34.124.0/22 -103.34.128.0/22 -103.34.132.0/22 -103.34.136.0/22 -103.34.140.0/22 -103.34.144.0/22 -103.34.148.0/22 -103.34.152.0/22 -103.34.156.0/22 -103.34.160.0/22 -103.34.164.0/22 -103.34.168.0/22 -103.34.172.0/22 -103.34.176.0/22 -103.34.180.0/22 -103.34.184.0/22 -103.34.188.0/22 -103.34.192.0/22 -103.34.196.0/22 -103.34.200.0/22 -103.34.204.0/22 -103.34.208.0/22 -103.34.212.0/22 -103.34.216.0/22 -103.34.220.0/22 -103.34.224.0/22 -103.34.228.0/22 -103.34.232.0/22 -103.34.236.0/22 -103.34.240.0/22 -103.34.244.0/22 -103.34.248.0/22 -103.34.252.0/22 -103.35.0.0/22 -103.35.4.0/22 -103.35.8.0/22 -103.35.12.0/22 -103.35.16.0/22 -103.35.20.0/22 -103.35.24.0/22 -103.35.28.0/22 -103.35.32.0/22 -103.35.36.0/22 -103.35.40.0/22 -103.35.44.0/22 -103.35.48.0/22 -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.20.0/22 -103.36.28.0/22 -103.36.36.0/22 -103.36.56.0/22 -103.36.60.0/22 -103.36.64.0/22 -103.36.72.0/22 -103.36.96.0/22 -103.36.132.0/22 -103.36.136.0/22 -103.36.160.0/22 -103.36.164.0/22 -103.36.168.0/22 -103.36.172.0/22 -103.36.176.0/22 -103.36.180.0/22 -103.36.184.0/22 -103.36.188.0/22 -103.36.192.0/22 -103.36.196.0/22 -103.36.200.0/22 -103.36.204.0/22 -103.36.208.0/22 -103.36.212.0/22 -103.36.216.0/22 -103.36.220.0/22 -103.36.224.0/22 -103.36.228.0/22 -103.36.232.0/22 -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 -103.37.44.0/22 -103.37.52.0/22 -103.37.56.0/22 -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 -103.37.148.0/22 -103.37.152.0/22 -103.37.156.0/22 -103.37.160.0/22 -103.37.164.0/22 -103.37.172.0/22 -103.37.176.0/22 -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.248.0/22 -103.37.252.0/22 -103.38.0.0/22 -103.38.32.0/22 -103.38.40.0/22 -103.38.44.0/22 -103.38.56.0/22 -103.38.76.0/22 -103.38.84.0/22 -103.38.92.0/22 -103.38.96.0/22 -103.38.116.0/22 -103.38.132.0/22 -103.38.140.0/22 -103.38.224.0/22 -103.38.228.0/22 -103.38.232.0/22 -103.38.252.0/22 -103.39.16.0/22 -103.39.64.0/22 -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 -103.39.172.0/22 -103.39.176.0/22 -103.39.180.0/22 -103.39.184.0/22 -103.39.188.0/22 -103.39.200.0/22 -103.39.204.0/22 -103.39.208.0/22 -103.39.212.0/22 -103.39.216.0/22 -103.39.220.0/22 -103.39.224.0/22 -103.39.228.0/22 -103.39.232.0/22 -103.40.12.0/22 -103.40.16.0/22 -103.40.20.0/22 -103.40.24.0/22 -103.40.28.0/22 -103.40.32.0/22 -103.40.36.0/22 -103.40.40.0/22 -103.40.44.0/22 -103.40.88.0/22 -103.40.100.0/22 -103.40.112.0/22 -103.40.192.0/22 -103.40.212.0/22 -103.40.220.0/22 -103.40.228.0/22 -103.40.232.0/22 -103.40.236.0/22 -103.40.240.0/22 -103.40.244.0/22 -103.40.248.0/22 -103.40.252.0/22 -103.41.0.0/22 -103.41.16.0/22 -103.41.52.0/22 -103.41.140.0/22 -103.41.148.0/22 -103.41.152.0/22 -103.41.160.0/22 -103.41.164.0/22 -103.41.220.0/22 -103.41.224.0/22 -103.41.228.0/22 -103.41.232.0/22 -103.42.8.0/22 -103.42.24.0/22 -103.42.28.0/22 -103.42.32.0/22 -103.42.64.0/22 -103.42.68.0/22 -103.42.76.0/22 -103.42.104.0/22 -103.42.180.0/22 -103.42.232.0/22 -103.43.16.0/22 -103.43.84.0/22 -103.43.96.0/22 -103.43.100.0/22 -103.43.104.0/22 -103.43.124.0/22 -103.43.184.0/22 -103.43.192.0/22 -103.43.196.0/22 -103.43.208.0/22 -103.43.220.0/22 -103.43.224.0/22 -103.43.232.0/22 -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 -103.44.144.0/22 -103.44.168.0/22 -103.44.176.0/22 -103.44.180.0/22 -103.44.184.0/22 -103.44.188.0/22 -103.44.192.0/22 -103.44.196.0/22 -103.44.200.0/22 -103.44.204.0/22 -103.44.224.0/22 -103.44.236.0/22 -103.44.240.0/22 -103.44.244.0/22 -103.44.248.0/22 -103.44.252.0/22 -103.45.0.0/22 -103.45.4.0/22 -103.45.8.0/22 -103.45.12.0/22 -103.45.16.0/22 -103.45.20.0/22 -103.45.24.0/22 -103.45.28.0/22 -103.45.32.0/22 -103.45.36.0/22 -103.45.40.0/22 -103.45.44.0/22 -103.45.48.0/22 -103.45.52.0/22 -103.45.56.0/22 -103.45.60.0/22 -103.45.72.0/22 -103.45.76.0/22 -103.45.80.0/22 -103.45.84.0/22 -103.45.88.0/22 -103.45.92.0/22 -103.45.96.0/22 -103.45.100.0/22 -103.45.104.0/22 -103.45.108.0/22 -103.45.112.0/22 -103.45.116.0/22 -103.45.120.0/22 -103.45.124.0/22 -103.45.128.0/22 -103.45.132.0/22 -103.45.136.0/22 -103.45.140.0/22 -103.45.144.0/22 -103.45.148.0/22 -103.45.152.0/22 -103.45.156.0/22 -103.45.160.0/22 -103.45.164.0/22 -103.45.168.0/22 -103.45.172.0/22 -103.45.176.0/22 -103.45.180.0/22 -103.45.184.0/22 -103.45.188.0/22 -103.45.192.0/22 -103.45.196.0/22 -103.45.200.0/22 -103.45.204.0/22 -103.45.208.0/22 -103.45.212.0/22 -103.45.216.0/22 -103.45.220.0/22 -103.45.224.0/22 -103.45.248.0/22 -103.46.0.0/22 -103.46.12.0/22 -103.46.16.0/22 -103.46.20.0/22 -103.46.24.0/22 -103.46.28.0/22 -103.46.32.0/22 -103.46.36.0/22 -103.46.40.0/22 -103.46.44.0/22 -103.46.48.0/22 -103.46.52.0/22 -103.46.56.0/22 -103.46.60.0/22 -103.46.64.0/22 -103.46.68.0/22 -103.46.72.0/22 -103.46.76.0/22 -103.46.80.0/22 -103.46.84.0/22 -103.46.88.0/22 -103.46.92.0/22 -103.46.96.0/22 -103.46.100.0/22 -103.46.104.0/22 -103.46.108.0/22 -103.46.112.0/22 -103.46.116.0/22 -103.46.120.0/22 -103.46.124.0/22 -103.46.128.0/22 -103.46.132.0/22 -103.46.136.0/22 -103.46.152.0/22 -103.46.156.0/22 -103.46.160.0/22 -103.46.164.0/22 -103.46.168.0/22 -103.46.172.0/22 -103.46.176.0/22 -103.46.180.0/22 -103.46.244.0/22 -103.46.248.0/22 -103.47.4.0/22 -103.47.20.0/22 -103.47.36.0/22 -103.47.40.0/22 -103.47.48.0/22 -103.47.80.0/22 -103.47.96.0/22 -103.47.108.0/22 -103.47.116.0/22 -103.47.120.0/22 -103.47.136.0/22 -103.47.140.0/22 -103.47.212.0/22 -103.48.20.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 -103.48.202.0/23 -103.48.216.0/22 -103.48.220.0/22 -103.48.224.0/22 -103.48.228.0/22 -103.48.232.0/22 -103.48.236.0/22 -103.48.240.0/22 -103.48.244.0/22 -103.49.12.0/22 -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 -103.49.176.0/22 -103.49.180.0/22 -103.49.196.0/22 -103.49.248.0/22 -103.50.36.0/22 -103.50.44.0/22 -103.50.48.0/22 -103.50.52.0/22 -103.50.56.0/22 -103.50.60.0/22 -103.50.64.0/22 -103.50.68.0/22 -103.50.72.0/22 -103.50.108.0/22 -103.50.112.0/22 -103.50.116.0/22 -103.50.120.0/22 -103.50.124.0/22 -103.50.132.0/22 -103.50.136.0/22 -103.50.140.0/22 -103.50.172.0/22 -103.50.176.0/22 -103.50.180.0/22 -103.50.184.0/22 -103.50.188.0/22 -103.50.192.0/22 -103.50.196.0/22 -103.50.200.0/22 -103.50.220.0/22 -103.50.224.0/22 -103.50.228.0/22 -103.50.232.0/22 -103.50.236.0/22 -103.50.240.0/22 -103.50.244.0/22 -103.50.248.0/22 -103.52.40.0/22 -103.52.72.0/22 -103.52.76.0/22 -103.52.80.0/22 -103.52.84.0/22 -103.52.96.0/22 -103.52.100.0/22 -103.52.104.0/22 -103.52.160.0/22 -103.52.164.0/22 -103.52.172.0/22 -103.52.176.0/22 -103.52.184.0/22 -103.52.196.0/22 -103.53.4.0/22 -103.53.64.0/22 -103.53.68.0/22 -103.53.92.0/22 -103.53.100.0/22 -103.53.124.0/22 -103.53.128.0/22 -103.53.132.0/22 -103.53.136.0/22 -103.53.140.0/22 -103.53.144.0/22 -103.53.180.0/22 -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 -103.55.172.0/22 -103.55.204.0/22 -103.55.208.0/22 -103.55.228.0/22 -103.55.236.0/22 -103.56.8.0/22 -103.56.16.0/22 -103.56.20.0/22 -103.56.32.0/22 -103.56.52.0/22 -103.56.56.0/22 -103.56.60.0/22 -103.56.72.0/22 -103.56.76.0/22 -103.56.140.0/22 -103.56.152.0/22 -103.56.184.0/22 -103.56.200.0/22 -103.57.12.0/22 -103.57.52.0/22 -103.57.56.0/22 -103.57.76.0/22 -103.57.136.0/22 -103.57.196.0/22 -103.58.24.0/22 -103.59.76.0/22 -103.59.100.0/22 -103.59.112.0/22 -103.59.116.0/22 -103.59.120.0/22 -103.59.124.0/22 -103.59.128.0/22 -103.59.148.0/22 -103.59.164.0/22 -103.60.32.0/22 -103.60.44.0/22 -103.60.164.0/22 -103.60.228.0/22 -103.60.236.0/22 -103.61.60.0/22 -103.61.104.0/22 -103.61.140.0/22 -103.61.152.0/22 -103.61.156.0/22 -103.61.160.0/22 -103.61.172.0/22 -103.61.176.0/22 -103.61.184.0/22 -103.61.188.0/22 -103.62.24.0/22 -103.62.52.0/22 -103.62.72.0/22 -103.62.76.0/22 -103.62.80.0/22 -103.62.84.0/22 -103.62.88.0/22 -103.62.96.0/22 -103.62.100.0/22 -103.62.104.0/22 -103.62.108.0/22 -103.62.112.0/22 -103.62.116.0/22 -103.62.120.0/22 -103.62.124.0/22 -103.62.128.0/22 -103.62.132.0/22 -103.62.156.0/22 -103.62.160.0/22 -103.62.164.0/22 -103.62.168.0/22 -103.62.172.0/22 -103.62.176.0/22 -103.62.180.0/22 -103.62.184.0/22 -103.62.188.0/22 -103.62.192.0/22 -103.62.204.0/22 -103.62.208.0/22 -103.62.212.0/22 -103.62.216.0/22 -103.62.220.0/22 -103.62.224.0/22 -103.63.32.0/22 -103.63.36.0/22 -103.63.40.0/22 -103.63.44.0/22 -103.63.48.0/22 -103.63.52.0/22 -103.63.56.0/22 -103.63.60.0/22 -103.63.64.0/22 -103.63.68.0/22 -103.63.72.0/22 -103.63.76.0/22 -103.63.80.0/22 -103.63.84.0/22 -103.63.88.0/22 -103.63.140.0/22 -103.63.144.0/22 -103.63.152.0/22 -103.63.160.0/22 -103.63.164.0/22 -103.63.168.0/22 -103.63.172.0/22 -103.63.176.0/22 -103.63.180.0/22 -103.63.184.0/22 -103.63.192.0/22 -103.63.196.0/22 -103.63.200.0/22 -103.63.204.0/22 -103.63.208.0/22 -103.63.240.0/22 -103.63.244.0/22 -103.63.248.0/22 -103.63.252.0/22 -103.64.0.0/22 -103.64.4.0/22 -103.64.24.0/22 -103.64.28.0/22 -103.64.32.0/22 -103.64.36.0/22 -103.64.40.0/22 -103.64.44.0/22 -103.64.48.0/22 -103.64.52.0/22 -103.64.56.0/22 -103.64.60.0/22 -103.64.64.0/22 -103.64.68.0/22 -103.64.72.0/22 -103.64.76.0/22 -103.64.80.0/22 -103.64.84.0/22 -103.64.88.0/22 -103.64.92.0/22 -103.64.96.0/22 -103.64.100.0/22 -103.64.104.0/22 -103.64.108.0/22 -103.64.112.0/22 -103.64.116.0/22 -103.64.120.0/22 -103.64.124.0/22 -103.64.140.0/22 -103.64.144.0/22 -103.64.152.0/22 -103.64.156.0/22 -103.64.160.0/22 -103.64.164.0/22 -103.64.168.0/22 -103.64.172.0/22 -103.64.176.0/22 -103.64.180.0/22 -103.64.184.0/22 -103.64.188.0/22 -103.64.192.0/22 -103.64.196.0/22 -103.64.200.0/22 -103.64.204.0/22 -103.64.208.0/22 -103.64.212.0/22 -103.64.216.0/22 -103.64.220.0/22 -103.64.224.0/22 -103.64.228.0/22 -103.64.232.0/22 -103.64.236.0/22 -103.64.240.0/22 -103.64.244.0/22 -103.64.248.0/22 -103.64.252.0/22 -103.65.0.0/22 -103.65.4.0/22 -103.65.8.0/22 -103.65.12.0/22 -103.65.16.0/22 -103.65.36.0/22 -103.65.40.0/22 -103.65.48.0/22 -103.65.52.0/22 -103.65.56.0/22 -103.65.60.0/22 -103.65.64.0/22 -103.65.68.0/22 -103.65.72.0/22 -103.65.76.0/22 -103.65.80.0/22 -103.65.84.0/22 -103.65.88.0/22 -103.65.92.0/22 -103.65.100.0/22 -103.65.104.0/22 -103.65.108.0/22 -103.65.112.0/22 -103.65.144.0/22 -103.65.148.0/22 -103.65.152.0/22 -103.65.156.0/22 -103.65.160.0/22 -103.65.164.0/22 -103.65.168.0/22 -103.65.172.0/22 -103.66.32.0/22 -103.66.40.0/22 -103.66.92.0/22 -103.66.108.0/22 -103.66.200.0/22 -103.66.216.0/22 -103.66.240.0/22 -103.66.244.0/22 -103.66.248.0/22 -103.66.252.0/22 -103.67.0.0/22 -103.67.4.0/22 -103.67.8.0/22 -103.67.100.0/22 -103.67.104.0/22 -103.67.108.0/22 -103.67.112.0/22 -103.67.116.0/22 -103.67.120.0/22 -103.67.124.0/22 -103.67.128.0/22 -103.67.132.0/22 -103.67.136.0/22 -103.67.140.0/22 -103.67.144.0/22 -103.67.148.0/22 -103.67.172.0/22 -103.67.192.0/22 -103.67.212.0/22 -103.67.252.0/22 -103.68.64.0/22 -103.68.88.0/22 -103.68.100.0/22 -103.68.128.0/22 -103.68.192.0/22 -103.69.16.0/22 -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.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 -103.71.80.0/22 -103.71.84.0/22 -103.71.88.0/22 -103.71.120.0/22 -103.71.124.0/22 -103.71.128.0/22 -103.71.144.0/22 -103.71.196.0/22 -103.71.200.0/22 -103.71.232.0/22 -103.72.12.0/22 -103.72.16.0/22 -103.72.20.0/22 -103.72.24.0/22 -103.72.28.0/22 -103.72.32.0/22 -103.72.36.0/22 -103.72.40.0/22 -103.72.44.0/22 -103.72.48.0/22 -103.72.52.0/22 -103.72.112.0/22 -103.72.116.0/22 -103.72.120.0/22 -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 -103.72.224.0/22 -103.72.228.0/22 -103.72.232.0/22 -103.72.236.0/22 -103.72.240.0/22 -103.72.244.0/22 -103.72.248.0/22 -103.72.252.0/22 -103.73.0.0/22 -103.73.4.0/22 -103.73.8.0/22 -103.73.12.0/22 -103.73.16.0/22 -103.73.20.0/22 -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 -103.73.132.0/22 -103.73.136.0/22 -103.73.140.0/22 -103.73.144.0/22 -103.73.168.0/22 -103.73.176.0/22 -103.73.204.0/22 -103.73.208.0/22 -103.73.240.0/22 -103.73.244.0/22 -103.73.248.0/22 -103.74.24.0/22 -103.74.28.0/22 -103.74.32.0/22 -103.74.36.0/22 -103.74.40.0/22 -103.74.44.0/22 -103.74.48.0/22 -103.74.56.0/22 -103.74.60.0/22 -103.74.80.0/22 -103.74.124.0/22 -103.74.148.0/22 -103.74.152.0/22 -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 -103.75.108.0/22 -103.75.112.0/22 -103.75.120.0/22 -103.75.128.0/22 -103.75.144.0/22 -103.75.152.0/22 -103.75.236.0/24 -103.76.60.0/22 -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.104.0/22 -103.76.216.0/22 -103.76.220.0/22 -103.76.224.0/22 -103.77.28.0/22 -103.77.52.0/22 -103.77.56.0/22 -103.77.72.0/22 -103.77.88.0/22 -103.77.92.0/22 -103.77.132.0/22 -103.77.148.0/22 -103.77.220.0/22 -103.78.56.0/22 -103.78.60.0/22 -103.78.64.0/22 -103.78.68.0/22 -103.78.124.0/22 -103.78.172.0/22 -103.78.176.0/22 -103.78.196.0/22 -103.78.228.0/22 -103.79.24.0/22 -103.79.28.0/22 -103.79.36.0/22 -103.79.40.0/22 -103.79.44.0/22 -103.79.52.0/22 -103.79.56.0/22 -103.79.60.0/22 -103.79.64.0/22 -103.79.68.0/22 -103.79.80.0/22 -103.79.84.0/22 -103.79.120.0/22 -103.79.136.0/22 -103.79.188.0/22 -103.79.192.0/22 -103.79.196.0/22 -103.79.200.0/22 -103.79.204.0/22 -103.79.208.0/22 -103.79.212.0/22 -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 -103.80.176.0/22 -103.80.180.0/22 -103.80.184.0/22 -103.80.192.0/22 -103.80.200.0/22 -103.80.232.0/22 -103.81.4.0/22 -103.81.8.0/22 -103.81.16.0/22 -103.81.20.0/22 -103.81.44.0/22 -103.81.48.0/22 -103.81.96.0/22 -103.81.120.0/22 -103.81.148.0/22 -103.81.164.0/22 -103.81.168.0/22 -103.81.183.0/24 -103.81.184.0/22 -103.81.200.0/22 -103.81.232.0/22 -103.82.52.0/22 -103.82.60.0/22 -103.82.68.0/22 -103.82.84.0/22 -103.82.104.0/22 -103.82.224.0/22 -103.82.236.0/22 -103.83.44.0/22 -103.83.52.0/22 -103.83.60.0/22 -103.83.64.0/22 -103.83.72.0/22 -103.83.112.0/22 -103.83.120.0/22 -103.83.180.0/22 -103.84.0.0/22 -103.84.12.0/22 -103.84.16.0/22 -103.84.20.0/22 -103.84.24.0/22 -103.84.28.0/22 -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 -103.85.44.0/22 -103.85.48.0/22 -103.85.84.0/22 -103.85.136.0/22 -103.85.144.0/22 -103.85.164.0/22 -103.85.168.0/22 -103.85.172.0/22 -103.85.176.0/22 -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.68.0/22 -103.86.80.0/22 -103.86.84.0/22 -103.86.88.0/22 -103.86.204.0/22 -103.86.208.0/22 -103.86.212.0/22 -103.86.216.0/22 -103.86.220.0/22 -103.86.224.0/22 -103.86.228.0/22 -103.86.232.0/22 -103.86.236.0/22 -103.86.240.0/22 -103.86.244.0/22 -103.86.248.0/22 -103.86.252.0/22 -103.87.0.0/22 -103.87.4.0/22 -103.87.20.0/22 -103.87.32.0/22 -103.87.72.0/22 -103.87.96.0/22 -103.87.132.0/22 -103.87.180.0/22 -103.87.224.0/22 -103.88.4.0/22 -103.88.8.0/22 -103.88.12.0/22 -103.88.16.0/22 -103.88.20.0/22 -103.88.32.0/22 -103.88.36.0/22 -103.88.60.0/22 -103.88.64.0/22 -103.88.72.0/22 -103.88.96.0/22 -103.88.100.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 -103.89.96.0/22 -103.89.100.0/22 -103.89.104.0/22 -103.89.108.0/22 -103.89.112.0/22 -103.89.116.0/22 -103.89.148.0/22 -103.89.172.0/22 -103.89.184.0/22 -103.89.188.0/22 -103.89.192.0/22 -103.89.196.0/22 -103.89.200.0/22 -103.89.204.0/22 -103.89.208.0/22 -103.89.212.0/22 -103.89.216.0/22 -103.89.220.0/22 -103.89.224.0/22 -103.89.228.0/22 -103.90.52.0/22 -103.90.92.0/22 -103.90.100.0/22 -103.90.104.0/22 -103.90.108.0/22 -103.90.112.0/22 -103.90.116.0/22 -103.90.120.0/22 -103.90.124.0/22 -103.90.128.0/22 -103.90.132.0/22 -103.90.152.0/22 -103.90.168.0/22 -103.90.173.0/24 -103.90.176.0/22 -103.90.188.0/22 -103.90.192.0/22 -103.91.36.0/22 -103.91.40.0/22 -103.91.108.0/22 -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 -103.92.4.0/22 -103.92.8.0/22 -103.92.12.0/22 -103.92.48.0/22 -103.92.52.0/22 -103.92.56.0/22 -103.92.60.0/22 -103.92.64.0/22 -103.92.68.0/22 -103.92.72.0/22 -103.92.76.0/22 -103.92.80.0/22 -103.92.86.0/24 -103.92.88.0/22 -103.92.108.0/22 -103.92.124.0/22 -103.92.128.0/24 -103.92.132.0/22 -103.92.156.0/22 -103.92.164.0/22 -103.92.168.0/22 -103.92.172.0/22 -103.92.176.0/22 -103.92.180.0/22 -103.92.184.0/22 -103.92.188.0/22 -103.92.192.0/22 -103.92.236.0/22 -103.92.240.0/22 -103.92.244.0/22 -103.92.248.0/22 -103.92.252.0/22 -103.93.0.0/22 -103.93.4.0/22 -103.93.28.0/22 -103.93.76.0/22 -103.93.84.0/22 -103.93.121.0/24 -103.93.152.0/22 -103.93.180.0/22 -103.93.204.0/22 -103.94.12.0/22 -103.94.20.0/22 -103.94.28.0/22 -103.94.32.0/22 -103.94.36.0/22 -103.94.40.0/22 -103.94.44.0/22 -103.94.72.0/22 -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 -103.95.236.0/22 -103.95.240.0/22 -103.95.244.0/22 -103.95.248.0/22 -103.95.252.0/22 -103.96.0.0/22 -103.96.8.0/22 -103.96.80.0/22 -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 -103.96.164.0/22 -103.96.168.0/22 -103.96.172.0/22 -103.96.176.0/22 -103.96.180.0/22 -103.96.184.0/22 -103.96.188.0/22 -103.96.192.0/22 -103.96.196.0/22 -103.96.200.0/22 -103.96.204.0/22 -103.96.208.0/22 -103.96.212.0/22 -103.96.216.0/22 -103.97.8.0/22 -103.97.12.0/22 -103.97.16.0/22 -103.97.20.0/22 -103.97.24.0/22 -103.97.28.0/22 -103.97.32.0/22 -103.97.36.0/22 -103.97.40.0/22 -103.97.56.0/22 -103.97.60.0/22 -103.97.64.0/22 -103.97.68.0/22 -103.97.72.0/22 -103.97.80.0/22 -103.97.112.0/22 -103.97.116.0/22 -103.97.128.0/22 -103.97.144.0/22 -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 -103.98.44.0/22 -103.98.48.0/22 -103.98.56.0/22 -103.98.80.0/22 -103.98.88.0/22 -103.98.92.0/22 -103.98.96.0/22 -103.98.100.0/22 -103.98.124.0/22 -103.98.136.0/22 -103.98.140.0/22 -103.98.144.0/22 -103.98.164.0/22 -103.98.168.0/22 -103.98.180.0/22 -103.98.196.0/22 -103.98.216.0/22 -103.98.220.0/22 -103.98.224.0/22 -103.98.228.0/22 -103.98.232.0/22 -103.98.240.0/22 -103.98.244.0/22 -103.98.248.0/22 -103.98.252.0/22 -103.99.40.0/23 -103.99.52.0/22 -103.99.56.0/22 -103.99.60.0/22 -103.99.76.0/22 -103.99.104.0/22 -103.99.116.0/22 -103.99.120.0/22 -103.99.152.0/22 -103.99.220.0/22 -103.99.232.0/22 -103.99.236.0/22 -103.100.0.0/22 -103.100.32.0/22 -103.100.40.0/22 -103.100.48.0/22 -103.100.52.0/22 -103.100.56.0/22 -103.100.60.0/22 -103.100.64.0/22 -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 -103.100.248.0/22 -103.100.252.0/22 -103.101.4.0/22 -103.101.8.0/22 -103.101.12.0/22 -103.101.28.0/22 -103.101.60.0/22 -103.101.120.0/22 -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 -103.102.80.0/22 -103.102.168.0/22 -103.102.172.0/22 -103.102.180.0/22 -103.102.184.0/22 -103.102.188.0/22 -103.102.192.0/22 -103.102.196.0/22 -103.102.200.0/22 -103.102.208.0/22 -103.102.212.0/22 -103.103.12.0/22 -103.103.16.0/22 -103.103.36.0/22 -103.103.68.0/22 -103.103.72.0/22 -103.103.176.0/22 -103.103.188.0/22 -103.103.200.0/22 -103.103.204.0/22 -103.103.220.0/22 -103.103.224.0/22 -103.103.228.0/22 -103.103.232.0/22 -103.103.248.0/22 -103.103.252.0/22 -103.104.0.0/22 -103.104.4.0/22 -103.104.36.0/22 -103.104.40.0/22 -103.104.64.0/22 -103.104.104.0/22 -103.104.152.0/22 -103.104.168.0/22 -103.104.172.0/22 -103.104.188.0/22 -103.104.198.0/23 -103.104.252.0/22 -103.105.0.0/22 -103.105.4.0/22 -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 -103.105.180.0/22 -103.105.184.0/22 -103.105.200.0/22 -103.105.204.0/22 -103.105.220.0/22 -103.106.36.0/22 -103.106.40.0/22 -103.106.44.0/22 -103.106.60.0/22 -103.106.68.0/22 -103.106.96.0/22 -103.106.120.0/22 -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 -103.107.72.0/22 -103.107.108.0/22 -103.107.164.0/22 -103.107.168.0/22 -103.107.188.0/22 -103.107.192.0/22 -103.107.208.0/22 -103.107.212.0/22 -103.107.216.0/22 -103.107.220.0/22 -103.108.52.0/22 -103.108.64.0/22 -103.108.160.0/22 -103.108.164.0/22 -103.108.184.0/23 -103.108.188.0/23 -103.108.192.0/22 -103.108.196.0/22 -103.108.208.0/22 -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 -103.109.106.0/23 -103.109.248.0/22 -103.110.32.0/22 -103.110.80.0/23 -103.110.92.0/22 -103.110.100.0/22 -103.110.116.0/22 -103.110.127.0/24 -103.110.128.0/23 -103.110.131.0/24 -103.110.132.0/22 -103.110.136.0/22 -103.110.152.0/22 -103.110.156.0/22 -103.110.188.0/22 -103.110.204.0/22 -103.111.38.0/23 -103.111.64.0/22 -103.111.172.0/22 -103.111.252.0/22 -103.112.28.0/22 -103.112.68.0/22 -103.112.72.0/22 -103.112.88.0/22 -103.112.92.0/22 -103.112.96.0/22 -103.112.108.0/22 -103.112.112.0/22 -103.112.116.0/22 -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 -103.113.220.0/22 -103.113.232.0/22 -103.113.236.0/22 -103.114.4.0/22 -103.114.28.0/22 -103.114.68.0/22 -103.114.72.0/22 -103.114.100.0/22 -103.114.132.0/22 -103.114.148.0/22 -103.114.156.0/22 -103.114.176.0/22 -103.114.212.0/22 -103.114.236.0/22 -103.114.240.0/22 -103.115.16.0/22 -103.115.40.0/22 -103.115.44.0/22 -103.115.48.0/22 -103.115.52.0/22 -103.115.56.0/22 -103.115.60.0/22 -103.115.64.0/22 -103.115.68.0/22 -103.115.92.0/22 -103.115.120.0/22 -103.115.148.0/22 -103.115.204.0/23 -103.115.248.0/22 -103.116.20.0/22 -103.116.40.0/22 -103.116.64.0/22 -103.116.72.0/22 -103.116.76.0/22 -103.116.92.0/22 -103.116.120.0/22 -103.116.128.0/22 -103.116.132.0/23 -103.116.148.0/22 -103.116.184.0/22 -103.116.206.0/23 -103.116.220.0/22 -103.116.224.0/22 -103.116.228.0/22 -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 -103.118.60.0/22 -103.118.64.0/22 -103.118.68.0/22 -103.118.72.0/22 -103.118.88.0/22 -103.118.173.0/24 -103.118.192.0/22 -103.118.196.0/22 -103.118.200.0/22 -103.118.204.0/22 -103.118.208.0/22 -103.118.212.0/22 -103.118.216.0/22 -103.118.220.0/22 -103.118.240.0/22 -103.118.244.0/22 -103.118.248.0/22 -103.118.252.0/22 -103.119.0.0/22 -103.119.12.0/22 -103.119.16.0/22 -103.119.28.0/22 -103.119.44.0/22 -103.119.104.0/22 -103.119.115.0/24 -103.119.156.0/22 -103.119.180.0/22 -103.119.200.0/22 -103.119.224.0/22 -103.120.52.0/22 -103.120.72.0/22 -103.120.76.0/24 -103.120.88.0/22 -103.120.96.0/22 -103.120.100.0/22 -103.120.140.0/22 -103.120.196.0/22 -103.120.224.0/22 -103.121.52.0/22 -103.121.92.0/22 -103.121.160.0/22 -103.121.164.0/22 -103.121.250.0/24 -103.121.252.0/22 -103.122.48.0/22 -103.122.176.0/22 -103.122.192.0/22 -103.122.240.0/22 -103.123.4.0/22 -103.123.56.0/22 -103.123.88.0/22 -103.123.92.0/22 -103.123.116.0/22 -103.123.160.0/22 -103.123.176.0/22 -103.123.200.0/22 -103.123.204.0/22 -103.123.208.0/22 -103.123.212.0/22 -103.129.52.0/22 -103.129.148.0/22 -103.192.0.0/22 -103.192.4.0/22 -103.192.8.0/22 -103.192.12.0/22 -103.192.16.0/22 -103.192.20.0/22 -103.192.24.0/22 -103.192.28.0/22 -103.192.48.0/22 -103.192.52.0/22 -103.192.56.0/22 -103.192.84.0/22 -103.192.88.0/22 -103.192.92.0/22 -103.192.96.0/22 -103.192.100.0/22 -103.192.104.0/22 -103.192.108.0/22 -103.192.112.0/22 -103.192.128.0/22 -103.192.132.0/22 -103.192.136.0/22 -103.192.140.0/22 -103.192.144.0/22 -103.192.164.0/22 -103.192.188.0/22 -103.192.208.0/22 -103.192.212.0/22 -103.192.216.0/22 -103.192.252.0/22 -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.148.0/22 -103.193.160.0/22 -103.193.188.0/22 -103.193.192.0/22 -103.193.212.0/22 -103.193.216.0/22 -103.193.220.0/22 -103.193.224.0/22 -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 -103.195.192.0/22 -103.196.60.0/22 -103.196.64.0/22 -103.196.72.0/22 -103.196.88.0/22 -103.196.92.0/22 -103.196.96.0/22 -103.196.168.0/22 -103.196.204.0/22 -103.197.180.0/22 -103.197.228.0/22 -103.198.20.0/22 -103.198.60.0/22 -103.198.64.0/22 -103.198.72.0/22 -103.198.124.0/22 -103.198.156.0/22 -103.198.180.0/22 -103.198.196.0/22 -103.198.200.0/22 -103.198.216.0/22 -103.198.220.0/22 -103.198.224.0/22 -103.198.228.0/22 -103.198.232.0/22 -103.198.236.0/22 -103.198.240.0/22 -103.198.244.0/22 -103.199.164.0/22 -103.199.196.0/22 -103.199.228.0/22 -103.199.248.0/22 -103.199.252.0/22 -103.200.28.0/22 -103.200.32.0/22 -103.200.52.0/22 -103.200.64.0/22 -103.200.68.0/22 -103.200.136.0/22 -103.200.140.0/22 -103.200.144.0/22 -103.200.148.0/22 -103.200.152.0/22 -103.200.156.0/22 -103.200.160.0/22 -103.200.164.0/22 -103.200.168.0/22 -103.200.172.0/22 -103.200.176.0/22 -103.200.180.0/22 -103.200.184.0/22 -103.200.188.0/22 -103.200.192.0/22 -103.200.220.0/22 -103.200.224.0/22 -103.200.228.0/22 -103.200.232.0/22 -103.200.236.0/22 -103.200.240.0/22 -103.200.244.0/22 -103.200.248.0/22 -103.200.252.0/22 -103.201.0.0/22 -103.201.4.0/22 -103.201.8.0/22 -103.201.12.0/22 -103.201.16.0/22 -103.201.20.0/22 -103.201.28.0/22 -103.201.32.0/22 -103.201.36.0/22 -103.201.40.0/22 -103.201.44.0/22 -103.201.48.0/22 -103.201.52.0/22 -103.201.56.0/22 -103.201.60.0/22 -103.201.64.0/22 -103.201.76.0/22 -103.201.80.0/22 -103.201.84.0/22 -103.201.88.0/22 -103.201.92.0/22 -103.201.96.0/22 -103.201.100.0/22 -103.201.104.0/22 -103.201.108.0/22 -103.201.112.0/22 -103.201.116.0/22 -103.201.120.0/22 -103.201.152.0/22 -103.201.156.0/22 -103.201.160.0/22 -103.201.164.0/22 -103.201.168.0/22 -103.201.172.0/22 -103.201.176.0/22 -103.201.180.0/22 -103.201.184.0/22 -103.201.188.0/22 -103.201.192.0/22 -103.201.196.0/22 -103.201.200.0/22 -103.201.204.0/22 -103.201.208.0/22 -103.201.212.0/22 -103.201.216.0/22 -103.201.220.0/22 -103.201.224.0/22 -103.201.228.0/22 -103.201.232.0/22 -103.201.236.0/22 -103.201.240.0/22 -103.201.244.0/22 -103.201.248.0/22 -103.201.252.0/22 -103.202.0.0/22 -103.202.4.0/22 -103.202.8.0/22 -103.202.12.0/22 -103.202.16.0/22 -103.202.20.0/22 -103.202.24.0/22 -103.202.28.0/22 -103.202.32.0/22 -103.202.36.0/22 -103.202.40.0/22 -103.202.44.0/22 -103.202.56.0/22 -103.202.60.0/22 -103.202.64.0/22 -103.202.68.0/22 -103.202.72.0/22 -103.202.76.0/22 -103.202.80.0/22 -103.202.84.0/22 -103.202.88.0/22 -103.202.92.0/22 -103.202.96.0/22 -103.202.100.0/22 -103.202.104.0/22 -103.202.108.0/22 -103.202.112.0/22 -103.202.116.0/22 -103.202.120.0/22 -103.202.124.0/22 -103.202.128.0/22 -103.202.132.0/22 -103.202.136.0/22 -103.202.140.0/22 -103.202.144.0/22 -103.202.152.0/22 -103.202.156.0/22 -103.202.160.0/22 -103.202.164.0/22 -103.202.168.0/22 -103.202.172.0/22 -103.202.176.0/22 -103.202.180.0/22 -103.202.184.0/22 -103.202.188.0/22 -103.202.192.0/22 -103.202.196.0/22 -103.202.200.0/21 -103.202.212.0/22 -103.202.228.0/22 -103.202.236.0/22 -103.202.240.0/22 -103.202.244.0/22 -103.202.248.0/22 -103.202.252.0/22 -103.203.0.0/22 -103.203.4.0/22 -103.203.8.0/22 -103.203.12.0/22 -103.203.16.0/22 -103.203.20.0/22 -103.203.24.0/22 -103.203.28.0/22 -103.203.32.0/22 -103.203.52.0/22 -103.203.56.0/22 -103.203.96.0/22 -103.203.100.0/22 -103.203.104.0/22 -103.203.108.0/22 -103.203.112.0/22 -103.203.116.0/22 -103.203.120.0/22 -103.203.124.0/22 -103.203.128.0/22 -103.203.140.0/22 -103.203.164.0/22 -103.203.168.0/22 -103.203.192.0/22 -103.203.200.0/22 -103.203.212.0/22 -103.203.216.0/22 -103.204.24.0/22 -103.204.72.0/22 -103.204.88.0/22 -103.204.112.0/22 -103.204.136.0/22 -103.204.140.0/22 -103.204.144.0/22 -103.204.148.0/22 -103.204.152.0/22 -103.204.196.0/22 -103.204.232.0/22 -103.204.236.0/22 -103.205.4.0/22 -103.205.8.0/22 -103.205.40.0/22 -103.205.44.0/22 -103.205.52.0/22 -103.205.108.0/22 -103.205.116.0/22 -103.205.120.0/22 -103.205.136.0/22 -103.205.162.0/24 -103.205.188.0/22 -103.205.192.0/22 -103.205.196.0/22 -103.205.200.0/22 -103.205.236.0/22 -103.205.248.0/22 -103.205.252.0/22 -103.206.0.0/22 -103.206.44.0/22 -103.206.108.0/22 -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 -103.207.196.0/22 -103.207.200.0/22 -103.207.204.0/22 -103.207.208.0/22 -103.207.212.0/22 -103.207.220.0/22 -103.207.228.0/22 -103.207.232.0/22 -103.208.12.0/22 -103.208.16.0/22 -103.208.28.0/22 -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 -103.210.164.0/22 -103.210.168.0/22 -103.210.172.0/22 -103.210.176.0/22 -103.210.180.0/22 -103.210.184.0/22 -103.210.188.0/22 -103.210.216.0/22 -103.211.44.0/22 -103.211.96.0/22 -103.211.100.0/22 -103.211.156.0/22 -103.211.164.0/22 -103.211.192.0/22 -103.211.220.0/22 -103.211.224.0/22 -103.211.248.0/22 -103.212.0.0/22 -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 -103.212.196.0/22 -103.212.200.0/22 -103.212.228.0/22 -103.212.252.0/22 -103.213.40.0/22 -103.213.44.0/22 -103.213.48.0/22 -103.213.52.0/22 -103.213.56.0/22 -103.213.60.0/22 -103.213.64.0/22 -103.213.68.0/22 -103.213.72.0/22 -103.213.76.0/22 -103.213.80.0/22 -103.213.84.0/22 -103.213.88.0/22 -103.213.92.0/22 -103.213.96.0/22 -103.213.132.0/22 -103.213.136.0/22 -103.213.140.0/22 -103.213.144.0/22 -103.213.148.0/22 -103.213.152.0/22 -103.213.156.0/22 -103.213.160.0/22 -103.213.164.0/22 -103.213.168.0/22 -103.213.172.0/22 -103.213.176.0/22 -103.213.180.0/22 -103.213.184.0/22 -103.213.188.0/22 -103.213.248.0/22 -103.214.32.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 -103.215.28.0/22 -103.215.32.0/22 -103.215.36.0/22 -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 -103.215.140.0/22 -103.215.184.0/22 -103.215.228.0/22 -103.216.4.0/22 -103.216.8.0/22 -103.216.12.0/22 -103.216.16.0/22 -103.216.20.0/22 -103.216.24.0/22 -103.216.28.0/22 -103.216.32.0/22 -103.216.36.0/22 -103.216.40.0/22 -103.216.44.0/22 -103.216.64.0/22 -103.216.108.0/22 -103.216.136.0/22 -103.216.152.0/22 -103.216.224.0/22 -103.216.228.0/22 -103.216.240.0/22 -103.216.244.0/22 -103.216.248.0/22 -103.216.252.0/22 -103.217.0.0/22 -103.217.4.0/22 -103.217.8.0/22 -103.217.12.0/22 -103.217.16.0/22 -103.217.20.0/22 -103.217.24.0/22 -103.217.28.0/22 -103.217.32.0/22 -103.217.36.0/22 -103.217.40.0/22 -103.217.44.0/22 -103.217.48.0/22 -103.217.52.0/22 -103.217.56.0/22 -103.217.60.0/22 -103.217.168.0/22 -103.217.180.0/22 -103.217.184.0/22 -103.217.188.0/22 -103.217.192.0/22 -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 -103.218.20.0/22 -103.218.28.0/22 -103.218.32.0/22 -103.218.36.0/22 -103.218.40.0/22 -103.218.44.0/22 -103.218.48.0/22 -103.218.52.0/22 -103.218.56.0/22 -103.218.60.0/22 -103.218.64.0/22 -103.218.68.0/22 -103.218.72.0/22 -103.218.76.0/22 -103.218.80.0/22 -103.218.84.0/22 -103.218.88.0/22 -103.218.92.0/22 -103.218.184.0/22 -103.218.192.0/22 -103.218.196.0/22 -103.218.200.0/22 -103.218.204.0/22 -103.218.208.0/22 -103.218.212.0/22 -103.218.216.0/22 -103.219.24.0/22 -103.219.28.0/22 -103.219.32.0/22 -103.219.36.0/22 -103.219.64.0/22 -103.219.84.0/22 -103.219.88.0/22 -103.219.92.0/22 -103.219.96.0/22 -103.219.100.0/22 -103.219.176.0/22 -103.219.184.0/22 -103.220.48.0/22 -103.220.52.0/22 -103.220.56.0/22 -103.220.60.0/22 -103.220.64.0/22 -103.220.92.0/22 -103.220.96.0/22 -103.220.100.0/22 -103.220.104.0/22 -103.220.108.0/22 -103.220.116.0/22 -103.220.120.0/22 -103.220.124.0/22 -103.220.128.0/22 -103.220.132.0/22 -103.220.136.0/22 -103.220.140.0/22 -103.220.144.0/22 -103.220.148.0/22 -103.220.152.0/22 -103.220.160.0/22 -103.220.164.0/22 -103.220.168.0/22 -103.220.172.0/22 -103.220.176.0/22 -103.220.180.0/22 -103.220.184.0/22 -103.220.188.0/22 -103.220.192.0/22 -103.220.196.0/22 -103.220.200.0/22 -103.220.240.0/22 -103.220.244.0/22 -103.220.248.0/22 -103.220.252.0/22 -103.221.0.0/22 -103.221.4.0/22 -103.221.8.0/22 -103.221.12.0/22 -103.221.16.0/22 -103.221.20.0/22 -103.221.24.0/22 -103.221.28.0/22 -103.221.32.0/22 -103.221.36.0/22 -103.221.40.0/22 -103.221.44.0/22 -103.221.48.0/22 -103.221.88.0/22 -103.221.92.0/22 -103.221.96.0/22 -103.221.100.0/22 -103.221.104.0/22 -103.221.108.0/22 -103.221.112.0/22 -103.221.116.0/22 -103.221.120.0/22 -103.221.124.0/22 -103.221.128.0/22 -103.221.132.0/22 -103.221.136.0/22 -103.221.140.0/22 -103.221.144.0/22 -103.221.148.0/22 -103.221.152.0/22 -103.221.156.0/22 -103.221.160.0/22 -103.221.164.0/22 -103.221.168.0/22 -103.221.172.0/22 -103.221.176.0/22 -103.221.180.0/22 -103.221.184.0/22 -103.221.188.0/22 -103.221.192.0/22 -103.221.196.0/22 -103.221.200.0/22 -103.221.204.0/22 -103.222.0.0/22 -103.222.4.0/22 -103.222.8.0/22 -103.222.12.0/22 -103.222.16.0/22 -103.222.24.0/22 -103.222.28.0/22 -103.222.32.0/22 -103.222.36.0/22 -103.222.40.0/22 -103.222.44.0/22 -103.222.48.0/22 -103.222.52.0/22 -103.222.56.0/22 -103.222.60.0/22 -103.222.64.0/22 -103.222.68.0/22 -103.222.72.0/22 -103.222.76.0/22 -103.222.80.0/22 -103.222.84.0/22 -103.222.88.0/22 -103.222.92.0/22 -103.222.96.0/22 -103.222.100.0/22 -103.222.104.0/22 -103.222.108.0/22 -103.222.112.0/22 -103.222.116.0/22 -103.222.120.0/22 -103.222.124.0/22 -103.222.128.0/22 -103.222.132.0/22 -103.222.136.0/22 -103.222.140.0/22 -103.222.144.0/22 -103.222.148.0/22 -103.222.152.0/22 -103.222.156.0/22 -103.222.160.0/22 -103.222.164.0/22 -103.222.168.0/22 -103.222.172.0/22 -103.222.176.0/22 -103.222.180.0/22 -103.222.184.0/22 -103.222.188.0/22 -103.222.192.0/22 -103.222.196.0/22 -103.222.200.0/22 -103.222.204.0/22 -103.222.208.0/22 -103.222.212.0/22 -103.222.216.0/22 -103.222.220.0/22 -103.222.224.0/22 -103.222.228.0/22 -103.222.232.0/22 -103.222.240.0/22 -103.222.244.0/22 -103.223.16.0/22 -103.223.20.0/22 -103.223.24.0/22 -103.223.28.0/22 -103.223.32.0/22 -103.223.36.0/22 -103.223.40.0/22 -103.223.44.0/22 -103.223.48.0/22 -103.223.52.0/22 -103.223.56.0/22 -103.223.60.0/22 -103.223.64.0/22 -103.223.68.0/22 -103.223.72.0/22 -103.223.76.0/22 -103.223.80.0/22 -103.223.84.0/22 -103.223.88.0/22 -103.223.92.0/22 -103.223.96.0/22 -103.223.100.0/22 -103.223.104.0/22 -103.223.108.0/22 -103.223.112.0/22 -103.223.116.0/22 -103.223.120.0/22 -103.223.124.0/22 -103.223.128.0/22 -103.223.132.0/22 -103.223.140.0/22 -103.223.144.0/22 -103.223.148.0/22 -103.223.152.0/22 -103.223.156.0/22 -103.223.160.0/22 -103.223.164.0/22 -103.223.168.0/22 -103.223.172.0/22 -103.223.176.0/22 -103.223.180.0/22 -103.223.188.0/22 -103.223.192.0/22 -103.223.196.0/22 -103.223.200.0/22 -103.223.204.0/22 -103.223.208.0/22 -103.223.212.0/22 -103.223.216.0/22 -103.223.220.0/22 -103.223.224.0/22 -103.223.228.0/22 -103.223.232.0/22 -103.223.236.0/22 -103.223.240.0/22 -103.223.244.0/22 -103.223.248.0/22 -103.223.252.0/22 -103.224.0.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.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.136.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.60.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.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.231.144.0/22 -103.231.180.0/22 -103.231.184.0/22 -103.231.244.0/22 -103.232.4.0/22 -103.232.144.0/22 -103.232.188.0/22 -103.232.212.0/22 -103.233.4.0/22 -103.233.44.0/22 -103.233.52.0/22 -103.233.104.0/22 -103.233.128.0/22 -103.233.136.0/22 -103.233.228.0/22 -103.234.0.0/22 -103.234.20.0/22 -103.234.56.0/22 -103.234.128.0/22 -103.234.172.0/22 -103.234.180.0/22 -103.234.244.0/22 -103.235.16.0/22 -103.235.48.0/22 -103.235.56.0/22 -103.235.60.0/22 -103.235.80.0/22 -103.235.84.0/22 -103.235.128.0/22 -103.235.132.0/22 -103.235.136.0/22 -103.235.140.0/22 -103.235.144.0/22 -103.235.148.0/22 -103.235.184.0/22 -103.235.192.0/22 -103.235.200.0/22 -103.235.220.0/22 -103.235.224.0/22 -103.235.228.0/22 -103.235.232.0/22 -103.235.236.0/22 -103.235.240.0/22 -103.235.244.0/22 -103.235.248.0/22 -103.235.252.0/22 -103.236.0.0/22 -103.236.4.0/22 -103.236.8.0/22 -103.236.12.0/22 -103.236.16.0/22 -103.236.20.0/22 -103.236.24.0/22 -103.236.28.0/22 -103.236.32.0/22 -103.236.36.0/22 -103.236.40.0/22 -103.236.44.0/22 -103.236.48.0/22 -103.236.52.0/22 -103.236.56.0/22 -103.236.60.0/22 -103.236.64.0/22 -103.236.68.0/22 -103.236.72.0/22 -103.236.76.0/22 -103.236.80.0/22 -103.236.84.0/22 -103.236.88.0/22 -103.236.92.0/22 -103.236.96.0/22 -103.236.120.0/22 -103.236.184.0/22 -103.236.220.0/22 -103.236.232.0/22 -103.236.240.0/22 -103.236.244.0/22 -103.236.248.0/22 -103.236.252.0/22 -103.237.0.0/22 -103.237.4.0/22 -103.237.8.0/22 -103.237.12.0/22 -103.237.24.0/22 -103.237.28.0/22 -103.237.68.0/22 -103.237.88.0/22 -103.237.152.0/22 -103.237.176.0/22 -103.237.180.0/22 -103.237.184.0/22 -103.237.188.0/22 -103.237.192.0/22 -103.237.196.0/22 -103.237.200.0/22 -103.237.204.0/22 -103.237.208.0/22 -103.237.212.0/22 -103.237.216.0/22 -103.237.220.0/22 -103.237.224.0/22 -103.237.228.0/22 -103.237.232.0/22 -103.237.236.0/22 -103.237.240.0/22 -103.237.244.0/22 -103.237.248.0/22 -103.237.252.0/22 -103.238.0.0/22 -103.238.4.0/22 -103.238.16.0/22 -103.238.20.0/22 -103.238.24.0/22 -103.238.28.0/22 -103.238.32.0/22 -103.238.36.0/22 -103.238.40.0/22 -103.238.44.0/22 -103.238.48.0/22 -103.238.52.0/22 -103.238.56.0/22 -103.238.88.0/22 -103.238.92.0/22 -103.238.96.0/22 -103.238.132.0/22 -103.238.140.0/22 -103.238.144.0/22 -103.238.160.0/22 -103.238.164.0/22 -103.238.168.0/22 -103.238.172.0/22 -103.238.176.0/22 -103.238.180.0/22 -103.238.184.0/22 -103.238.188.0/22 -103.238.196.0/22 -103.238.204.0/22 -103.238.252.0/22 -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 -103.239.196.0/22 -103.239.204.0/22 -103.239.208.0/22 -103.239.224.0/22 -103.239.244.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.188.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.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.136.0/22 -103.243.252.0/22 -103.244.16.0/22 -103.244.58.0/23 -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.116.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.220.0/22 -103.248.224.0/22 -103.249.8.0/22 -103.249.12.0/22 -103.249.52.0/22 -103.249.104.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.36.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.192.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.96.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.176.0/22 -103.254.188.0/22 -103.254.196.0/24 -103.254.220.0/22 -103.255.56.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.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.44.0/22 -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/16 -106.75.0.0/16 -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 -109.244.0.0/16 -110.6.0.0/15 -110.16.0.0/14 -110.34.40.0/22 -110.34.44.0/22 -110.40.0.0/14 -110.44.12.0/22 -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.132.0/22 -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.92.68.0/22 -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.92.248.0/22 -111.92.252.0/22 -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.28.0/24 -111.221.128.0/17 -111.222.0.0/16 -111.223.4.0/22 -111.223.8.0/22 -111.223.12.0/22 -111.223.16.0/22 -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.21.232.0/22 -113.21.236.0/22 -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.52.228.0/22 -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.31.64.0/22 -114.31.68.0/22 -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/16 -114.117.0.0/16 -114.118.0.0/16 -114.119.0.0/17 -114.119.128.0/18 -114.119.192.0/21 -114.119.200.0/22 -114.119.204.0/22 -114.119.208.0/20 -114.119.224.0/19 -114.132.0.0/16 -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.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.31.64.0/22 -115.31.68.0/22 -115.31.72.0/22 -115.31.76.0/22 -115.32.0.0/14 -115.42.56.0/22 -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/15 -115.182.0.0/16 -115.183.0.0/16 -115.187.0.0/22 -115.187.4.0/22 -115.187.8.0/22 -115.187.12.0/22 -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.66.176.0/22 -116.68.136.0/22 -116.68.140.0/22 -116.68.176.0/22 -116.68.180.0/22 -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.89.240.0/22 -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.152.0/22 -116.193.164.0/22 -116.193.176.0/21 -116.194.0.0/15 -116.196.0.0/16 -116.197.160.0/22 -116.197.164.0/22 -116.198.0.0/16 -116.199.0.0/17 -116.199.128.0/19 -116.204.0.0/17 -116.204.132.0/22 -116.205.0.0/16 -116.206.92.0/22 -116.206.100.0/22 -116.206.176.0/22 -116.207.0.0/16 -116.208.0.0/14 -116.212.160.0/20 -116.213.44.0/22 -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.104.0/22 -116.254.108.0/22 -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/19 -118.26.32.0/20 -118.26.48.0/21 -118.26.56.0/21 -118.26.64.0/18 -118.26.128.0/17 -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.103.164.0/22 -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 -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/17 -118.184.128.0/17 -118.186.0.0/15 -118.188.0.0/16 -118.190.0.0/16 -118.191.0.0/16 -118.192.0.0/16 -118.193.0.0/20 -118.193.32.0/19 -118.193.64.0/20 -118.193.96.0/19 -118.193.128.0/17 -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.215.192.0/18 -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.52.0/22 -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.120.0/22 -119.161.124.0/22 -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/16 -120.53.0.0/16 -120.54.0.0/15 -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.16.0/22 -120.136.20.0/22 -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.76.0/22 -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.54.188.0/22 -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.128.0/22 -122.10.132.0/23 -122.10.134.0/23 -122.10.136.0/23 -122.10.138.0/23 -122.10.140.0/22 -122.10.144.0/20 -122.10.160.0/19 -122.10.192.0/18 -122.11.0.0/17 -122.12.0.0/16 -122.13.0.0/16 -122.14.0.0/17 -122.14.128.0/18 -122.14.192.0/18 -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/18 -122.112.64.0/18 -122.112.128.0/17 -122.113.0.0/16 -122.114.0.0/16 -122.115.0.0/17 -122.115.128.0/19 -122.115.160.0/19 -122.115.192.0/19 -122.115.224.0/19 -122.119.0.0/16 -122.128.100.0/22 -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.40.0/22 -122.200.44.0/22 -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/20 -123.58.16.0/20 -123.58.32.0/19 -123.58.64.0/19 -123.58.96.0/19 -123.58.128.0/18 -123.58.192.0/19 -123.58.224.0/20 -123.58.240.0/20 -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.242.192.0/22 -123.242.196.0/22 -123.244.0.0/14 -123.249.0.0/16 -123.254.96.0/22 -123.254.100.0/22 -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.40.240.0/22 -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.150.137.0/24 -124.151.0.0/16 -124.152.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 -128.108.0.0/16 -129.28.0.0/16 -129.204.0.0/16 -129.211.0.0/16 -132.232.0.0/16 -134.175.0.0/16 -137.59.59.0/24 -137.59.88.0/22 -139.5.56.0/22 -139.5.60.0/22 -139.5.80.0/22 -139.5.92.0/22 -139.5.108.0/22 -139.5.128.0/22 -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 -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.217.0.0/16 -139.219.0.0/16 -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.179.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.48.8.0/22 -144.48.64.0/22 -144.48.88.0/22 -144.48.156.0/22 -144.48.180.0/22 -144.48.184.0/22 -144.48.204.0/22 -144.48.208.0/22 -144.48.212.0/22 -144.48.220.0/22 -144.48.252.0/22 -144.52.0.0/16 -144.123.0.0/16 -144.255.0.0/16 -146.56.192.0/18 -146.196.56.0/22 -146.196.68.0/22 -146.196.72.0/22 -146.196.92.0/22 -146.196.112.0/22 -146.196.116.0/22 -146.196.124.0/22 -148.70.0.0/16 -150.0.0.0/16 -150.115.0.0/16 -150.121.0.0/16 -150.122.0.0/16 -150.129.136.0/22 -150.129.192.0/22 -150.129.216.0/22 -150.129.252.0/22 -150.138.0.0/15 -150.158.0.0/16 -150.223.0.0/16 -150.242.0.0/22 -150.242.4.0/22 -150.242.8.0/22 -150.242.28.0/22 -150.242.44.0/22 -150.242.48.0/22 -150.242.52.0/22 -150.242.56.0/22 -150.242.76.0/22 -150.242.80.0/22 -150.242.92.0/22 -150.242.96.0/22 -150.242.112.0/22 -150.242.116.0/22 -150.242.120.0/22 -150.242.152.0/22 -150.242.156.0/22 -150.242.160.0/22 -150.242.164.0/22 -150.242.168.0/22 -150.242.184.0/22 -150.242.188.0/22 -150.242.192.0/22 -150.242.212.0/22 -150.242.224.0/22 -150.242.228.0/22 -150.242.232.0/22 -150.242.236.0/22 -150.242.240.0/22 -150.242.244.0/22 -150.242.248.0/22 -150.255.0.0/16 -152.104.128.0/17 -152.136.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 -154.8.128.0/17 -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 -157.119.28.0/22 -157.119.68.0/22 -157.119.112.0/22 -157.119.132.0/22 -157.119.136.0/22 -157.119.140.0/22 -157.119.144.0/22 -157.119.148.0/22 -157.119.152.0/22 -157.119.156.0/22 -157.119.160.0/22 -157.119.164.0/22 -157.119.172.0/22 -157.119.192.0/22 -157.119.196.0/22 -157.119.240.0/22 -157.119.252.0/22 -157.122.0.0/16 -157.148.0.0/16 -157.156.0.0/16 -157.255.0.0/16 -159.75.0.0/16 -159.226.0.0/16 -160.19.208.0/22 -160.19.212.0/22 -160.19.216.0/22 -160.20.48.0/22 -160.202.60.0/22 -160.202.148.0/22 -160.202.152.0/22 -160.202.168.0/22 -160.202.212.0/22 -160.202.216.0/22 -160.202.220.0/22 -160.202.224.0/22 -160.202.228.0/22 -160.202.232.0/22 -160.202.236.0/22 -160.202.240.0/22 -160.202.244.0/22 -160.202.248.0/22 -160.202.252.0/22 -160.238.64.0/22 -161.189.0.0/16 -161.207.0.0/16 -162.14.0.0/16 -162.105.0.0/16 -163.0.0.0/16 -163.47.4.0/22 -163.53.0.0/22 -163.53.4.0/22 -163.53.8.0/22 -163.53.12.0/22 -163.53.36.0/22 -163.53.40.0/22 -163.53.44.0/22 -163.53.48.0/22 -163.53.52.0/22 -163.53.56.0/22 -163.53.60.0/22 -163.53.64.0/22 -163.53.88.0/22 -163.53.92.0/22 -163.53.96.0/22 -163.53.100.0/22 -163.53.104.0/22 -163.53.108.0/22 -163.53.112.0/22 -163.53.116.0/22 -163.53.120.0/22 -163.53.124.0/22 -163.53.128.0/22 -163.53.132.0/22 -163.53.136.0/22 -163.53.160.0/22 -163.53.164.0/22 -163.53.168.0/22 -163.53.172.0/22 -163.53.188.0/22 -163.53.220.0/22 -163.53.240.0/22 -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 -164.52.0.0/17 -166.111.0.0/16 -167.139.0.0/16 -167.189.0.0/16 -167.220.244.0/22 -168.160.0.0/16 -170.179.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 -172.81.192.0/18 -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.111.144.0/22 -175.111.148.0/22 -175.111.152.0/22 -175.111.156.0/22 -175.111.160.0/22 -175.111.164.0/22 -175.111.168.0/22 -175.111.172.0/22 -175.111.184.0/22 -175.146.0.0/15 -175.148.0.0/14 -175.152.0.0/14 -175.158.96.0/22 -175.160.0.0/12 -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 -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.94.120.0/22 -180.94.124.0/22 -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.149.236.0/22 -180.150.160.0/19 -180.152.0.0/13 -180.160.0.0/12 -180.178.112.0/22 -180.178.116.0/22 -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.212.0/22 -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.233.144.0/22 -180.235.64.0/19 -180.235.112.0/22 -180.235.136.0/22 -182.16.144.0/22 -182.16.148.0/22 -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.54.244.0/22 -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.237.24.0/22 -182.237.28.0/22 -182.238.0.0/16 -182.239.0.0/19 -182.240.0.0/13 -182.254.0.0/16 -182.255.36.0/22 -182.255.60.0/22 -183.0.0.0/10 -183.64.0.0/13 -183.78.160.0/22 -183.78.164.0/22 -183.78.180.0/22 -183.81.172.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 -188.131.128.0/17 -192.55.46.0/24 -192.55.68.0/22 -192.102.204.0/23 -192.124.154.0/24 -192.140.128.0/22 -192.140.132.0/22 -192.140.136.0/22 -192.140.156.0/22 -192.140.160.0/22 -192.140.164.0/22 -192.140.168.0/22 -192.140.172.0/22 -192.140.176.0/22 -192.140.180.0/22 -192.140.184.0/22 -192.140.188.0/22 -192.140.192.0/22 -192.140.196.0/22 -192.140.200.0/22 -192.140.204.0/22 -192.140.208.0/22 -192.140.212.0/22 -192.144.128.0/17 -193.112.0.0/16 -198.175.100.0/22 -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.5.208.0/22 -202.5.212.0/22 -202.5.216.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.10.112.0/22 -202.10.116.0/22 -202.10.120.0/22 -202.10.124.0/22 -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.172.0/22 -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.126.0/24 -202.20.127.0/24 -202.21.48.0/22 -202.21.52.0/22 -202.21.56.0/22 -202.21.60.0/22 -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.12.0/24 -202.27.14.0/24 -202.27.136.0/23 -202.36.226.0/24 -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.196.0/22 -202.41.200.0/22 -202.41.240.0/20 -202.43.76.0/22 -202.43.144.0/20 -202.44.16.0/20 -202.44.48.0/22 -202.44.67.0/24 -202.44.74.0/24 -202.44.97.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.96.0/22 -202.47.100.0/22 -202.47.104.0/22 -202.47.108.0/22 -202.47.126.0/24 -202.47.128.0/24 -202.47.130.0/23 -202.52.33.0/24 -202.52.34.0/24 -202.52.47.0/24 -202.52.143.0/24 -202.53.140.0/24 -202.53.143.0/24 -202.57.192.0/22 -202.57.196.0/22 -202.57.200.0/22 -202.57.204.0/22 -202.57.212.0/22 -202.57.216.0/22 -202.57.240.0/20 -202.58.0.0/24 -202.58.104.0/22 -202.58.112.0/22 -202.59.0.0/24 -202.59.1.0/24 -202.59.212.0/22 -202.59.236.0/24 -202.59.240.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.61.68.0/22 -202.61.76.0/22 -202.61.88.0/22 -202.61.123.0/24 -202.61.127.0/24 -202.62.112.0/22 -202.62.248.0/22 -202.62.252.0/24 -202.62.255.0/24 -202.63.80.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.63.253.0/24 -202.65.0.0/21 -202.65.8.0/23 -202.65.96.0/22 -202.65.100.0/22 -202.65.104.0/22 -202.65.108.0/22 -202.66.168.0/22 -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.71.32.0/22 -202.71.36.0/22 -202.71.40.0/22 -202.71.44.0/22 -202.72.40.0/21 -202.72.80.0/20 -202.72.112.0/22 -202.72.116.0/22 -202.72.120.0/22 -202.72.124.0/22 -202.73.128.0/22 -202.73.240.0/22 -202.73.244.0/22 -202.73.248.0/22 -202.73.252.0/22 -202.74.8.0/21 -202.74.36.0/24 -202.74.42.0/24 -202.74.52.0/24 -202.74.80.0/20 -202.74.232.0/22 -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.81.176.0/22 -202.81.180.0/22 -202.81.184.0/22 -202.81.188.0/22 -202.83.252.0/22 -202.84.0.0/22 -202.84.4.0/22 -202.84.8.0/21 -202.84.16.0/23 -202.84.22.0/24 -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.88.32.0/22 -202.89.8.0/21 -202.89.96.0/22 -202.89.108.0/22 -202.89.119.0/24 -202.89.232.0/21 -202.90.0.0/22 -202.90.16.0/22 -202.90.20.0/22 -202.90.24.0/22 -202.90.28.0/22 -202.90.37.0/24 -202.90.96.0/22 -202.90.100.0/22 -202.90.104.0/22 -202.90.108.0/22 -202.90.112.0/20 -202.90.193.0/24 -202.90.196.0/24 -202.90.205.0/24 -202.90.224.0/20 -202.91.0.0/22 -202.91.36.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.74.0/24 -202.94.81.0/24 -202.94.92.0/22 -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.123.116.0/22 -202.123.120.0/22 -202.124.16.0/21 -202.124.24.0/22 -202.125.107.0/24 -202.125.109.0/24 -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.129.208.0/24 -202.130.0.0/19 -202.130.39.0/24 -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.134.208.0/22 -202.134.212.0/22 -202.134.216.0/22 -202.134.220.0/22 -202.136.48.0/20 -202.136.208.0/20 -202.136.224.0/20 -202.136.248.0/22 -202.137.231.0/24 -202.140.140.0/22 -202.140.144.0/22 -202.140.148.0/22 -202.140.152.0/22 -202.140.156.0/22 -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.143.100.0/22 -202.143.104.0/22 -202.144.196.0/22 -202.146.160.0/20 -202.146.186.0/24 -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.33.0/24 -202.151.128.0/19 -202.152.176.0/20 -202.153.0.0/22 -202.153.7.0/24 -202.153.48.0/20 -202.157.192.0/19 -202.158.160.0/19 -202.158.242.0/24 -202.160.140.0/22 -202.160.156.0/22 -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.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.80.0/22 -202.168.128.0/22 -202.168.132.0/22 -202.168.136.0/22 -202.168.140.0/22 -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.232.0/24 -202.171.235.0/24 -202.172.0.0/22 -202.172.7.0/24 -202.173.0.0/22 -202.173.6.0/24 -202.173.8.0/21 -202.173.112.0/22 -202.173.224.0/19 -202.174.64.0/20 -202.174.124.0/22 -202.176.224.0/19 -202.179.160.0/22 -202.179.164.0/22 -202.179.168.0/22 -202.179.172.0/22 -202.179.240.0/20 -202.180.128.0/19 -202.180.208.0/21 -202.181.8.0/22 -202.181.28.0/22 -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.63.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.249.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.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.1.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.147.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.44.0/24 -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.231.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.76.208.0/22 -203.76.212.0/22 -203.76.216.0/22 -203.76.240.0/22 -203.76.244.0/22 -203.77.180.0/22 -203.78.48.0/20 -203.78.156.0/22 -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.129.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.81.244.0/22 -203.82.0.0/23 -203.82.16.0/21 -203.82.112.0/22 -203.82.116.0/22 -203.82.120.0/22 -203.82.124.0/22 -203.82.224.0/22 -203.82.228.0/22 -203.82.232.0/22 -203.82.236.0/22 -203.83.0.0/22 -203.83.8.0/22 -203.83.12.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.250.0/24 -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.100.0/22 -203.89.133.0/24 -203.89.136.0/22 -203.89.144.0/24 -203.90.0.0/22 -203.90.8.0/22 -203.90.12.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.6.0/24 -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.200.0/22 -203.95.204.0/22 -203.95.208.0/22 -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.58.0/24 -203.100.60.0/24 -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.80.0/22 -203.114.84.0/22 -203.114.88.0/22 -203.114.92.0/22 -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.123.58.0/24 -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.219.0/24 -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.52.0/22 -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.183.0/24 -203.161.192.0/19 -203.166.160.0/19 -203.167.28.0/22 -203.168.0.0/19 -203.170.58.0/23 -203.171.0.0/22 -203.171.208.0/24 -203.171.224.0/20 -203.174.4.0/24 -203.174.6.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.185.189.0/24 -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.189.232.0/22 -203.189.240.0/22 -203.190.96.0/20 -203.190.249.0/24 -203.191.0.0/23 -203.191.2.0/24 -203.191.5.0/24 -203.191.7.0/24 -203.191.16.0/20 -203.191.64.0/18 -203.191.133.0/24 -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.196.28.0/22 -203.201.181.0/24 -203.201.182.0/24 -203.202.236.0/22 -203.205.64.0/19 -203.205.128.0/17 -203.207.64.0/20 -203.207.80.0/21 -203.207.88.0/22 -203.207.92.0/22 -203.207.96.0/20 -203.207.112.0/20 -203.207.128.0/18 -203.207.192.0/21 -203.207.200.0/21 -203.207.208.0/20 -203.207.224.0/19 -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.217.164.0/22 -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.7.56.0/22 -210.7.60.0/22 -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.104.0/22 -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.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 -212.64.0.0/17 -212.129.128.0/17 -216.250.108.0/22 -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.90.68.0/22 -219.90.72.0/22 -219.90.76.0/22 -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.158.240.0/22 -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.29.208.0/22 -223.29.252.0/22 -223.64.0.0/11 -223.96.0.0/12 -223.112.0.0/14 -223.116.0.0/15 -223.120.128.0/17 -223.121.128.0/17 -223.122.0.0/15 -223.124.0.0/14 -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/package/lean/luci-app-ssr-plus/root/etc/config/gfw.list b/package/lean/luci-app-ssr-plus/root/etc/config/gfw.list deleted file mode 100644 index c327ef406..000000000 --- a/package/lean/luci-app-ssr-plus/root/etc/config/gfw.list +++ /dev/null @@ -1,55 +0,0 @@ -91smartyun.pt -adobe.com -amazonaws.com -ampproject.org -apple.news -aws.amazon.com -azureedge.net -backpackers.com.tw -bitfinex.com -buzzfeed.com -clockwise.ee -cloudfront.net -coindesk.com -coinsquare.io -cryptocompare.com -dropboxstatic.com -eurecom.fr -gdax.com -github.com -isnssdk.com -kknews.cc -nutaq.com -openairinterface.org -skype.com -snssdk.com -sublimetext.com -textnow.com -textnow.me -trouter.io -uploaded.net -whatsapp.com -whatsapp.net -wsj.net -google.com -google.com.hk -gstatic.com -googleusercontent.com -googlepages.com -googlevideo.com -googlecode.com -googleapis.com -googlesource.com -googledrive.com -ggpht.com -youtube.com -youtu.be -ytimg.com -twitter.com -facebook.com -fastly.net -akamai.net -akamaiedge.net -akamaihd.net -edgesuite.net -edgekey.net \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/root/etc/config/shadowsocksr b/package/lean/luci-app-ssr-plus/root/etc/config/shadowsocksr deleted file mode 100644 index 3112c40c8..000000000 --- a/package/lean/luci-app-ssr-plus/root/etc/config/shadowsocksr +++ /dev/null @@ -1,37 +0,0 @@ - -config global - option tunnel_forward '8.8.4.4:53' - option tunnel_address '0.0.0.0' - option run_mode 'gfw' - option pdnsd_enable '1' - option monitor_enable '0' - option global_server 'nil' - option enable_switch '1' - option switch_timeout '5' - option switch_time '667' - -config socks5_proxy - option server 'nil' - option local_port '1080' - option local_address '0.0.0.0' - -config access_control - option wan_bp_list '/etc/china_ssr.txt' - option lan_ac_mode 'b' - 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' - -config server_global - option enable_server '0' - -config server_subscribe - option proxy '0' - option auto_update_time '2' - option auto_update '1' - - - diff --git a/package/lean/luci-app-ssr-plus/root/etc/dnsmasq.ssr/ad.conf b/package/lean/luci-app-ssr-plus/root/etc/dnsmasq.ssr/ad.conf deleted file mode 100644 index e69de29bb..000000000 diff --git a/package/lean/luci-app-ssr-plus/root/etc/dnsmasq.ssr/gfw_list.conf b/package/lean/luci-app-ssr-plus/root/etc/dnsmasq.ssr/gfw_list.conf deleted file mode 100644 index 31c37e04e..000000000 --- a/package/lean/luci-app-ssr-plus/root/etc/dnsmasq.ssr/gfw_list.conf +++ /dev/null @@ -1,10354 +0,0 @@ -server=/.030buy.com/127.0.0.1#5353 -ipset=/.030buy.com/gfwlist -server=/.0rz.tw/127.0.0.1#5353 -ipset=/.0rz.tw/gfwlist -server=/.10.tt/127.0.0.1#5353 -ipset=/.10.tt/gfwlist -server=/.1000giri.net/127.0.0.1#5353 -ipset=/.1000giri.net/gfwlist -server=/.100ke.org/127.0.0.1#5353 -ipset=/.100ke.org/gfwlist -server=/.10conditionsoflove.com/127.0.0.1#5353 -ipset=/.10conditionsoflove.com/gfwlist -server=/.10musume.com/127.0.0.1#5353 -ipset=/.10musume.com/gfwlist -server=/.123rf.com/127.0.0.1#5353 -ipset=/.123rf.com/gfwlist -server=/.12bet.com/127.0.0.1#5353 -ipset=/.12bet.com/gfwlist -server=/.12vpn.com/127.0.0.1#5353 -ipset=/.12vpn.com/gfwlist -server=/.12vpn.net/127.0.0.1#5353 -ipset=/.12vpn.net/gfwlist -server=/.138.com/127.0.0.1#5353 -ipset=/.138.com/gfwlist -server=/.141jj.com/127.0.0.1#5353 -ipset=/.141jj.com/gfwlist -server=/.141tube.com/127.0.0.1#5353 -ipset=/.141tube.com/gfwlist -server=/.1688.com.au/127.0.0.1#5353 -ipset=/.1688.com.au/gfwlist -server=/.173ng.com/127.0.0.1#5353 -ipset=/.173ng.com/gfwlist -server=/.177pic.info/127.0.0.1#5353 -ipset=/.177pic.info/gfwlist -server=/.17t17p.com/127.0.0.1#5353 -ipset=/.17t17p.com/gfwlist -server=/.18board.com/127.0.0.1#5353 -ipset=/.18board.com/gfwlist -server=/.18board.info/127.0.0.1#5353 -ipset=/.18board.info/gfwlist -server=/.18onlygirls.com/127.0.0.1#5353 -ipset=/.18onlygirls.com/gfwlist -server=/.18p2p.com/127.0.0.1#5353 -ipset=/.18p2p.com/gfwlist -server=/.18virginsex.com/127.0.0.1#5353 -ipset=/.18virginsex.com/gfwlist -server=/.1949er.org/127.0.0.1#5353 -ipset=/.1949er.org/gfwlist -server=/.1984bbs.com/127.0.0.1#5353 -ipset=/.1984bbs.com/gfwlist -server=/.1984bbs.org/127.0.0.1#5353 -ipset=/.1984bbs.org/gfwlist -server=/.1989report.hkja.org.hk/127.0.0.1#5353 -ipset=/.1989report.hkja.org.hk/gfwlist -server=/.1991way.com/127.0.0.1#5353 -ipset=/.1991way.com/gfwlist -server=/.1998cdp.org/127.0.0.1#5353 -ipset=/.1998cdp.org/gfwlist -server=/.1bao.org/127.0.0.1#5353 -ipset=/.1bao.org/gfwlist -server=/.1dumb.com/127.0.0.1#5353 -ipset=/.1dumb.com/gfwlist -server=/.1e100.net/127.0.0.1#5353 -ipset=/.1e100.net/gfwlist -server=/.1eew.com/127.0.0.1#5353 -ipset=/.1eew.com/gfwlist -server=/.1mobile.com/127.0.0.1#5353 -ipset=/.1mobile.com/gfwlist -server=/.1pondo.tv/127.0.0.1#5353 -ipset=/.1pondo.tv/gfwlist -server=/.2-hand.info/127.0.0.1#5353 -ipset=/.2-hand.info/gfwlist -server=/.2008xianzhang.info/127.0.0.1#5353 -ipset=/.2008xianzhang.info/gfwlist -server=/.2017.hk/127.0.0.1#5353 -ipset=/.2017.hk/gfwlist -server=/.21pron.com/127.0.0.1#5353 -ipset=/.21pron.com/gfwlist -server=/.21sextury.com/127.0.0.1#5353 -ipset=/.21sextury.com/gfwlist -server=/.228.net.tw/127.0.0.1#5353 -ipset=/.228.net.tw/gfwlist -server=/.233abc.com/127.0.0.1#5353 -ipset=/.233abc.com/gfwlist -server=/.24hrs.ca/127.0.0.1#5353 -ipset=/.24hrs.ca/gfwlist -server=/.24smile.org/127.0.0.1#5353 -ipset=/.24smile.org/gfwlist -server=/.25u.com/127.0.0.1#5353 -ipset=/.25u.com/gfwlist -server=/.2lipstube.com/127.0.0.1#5353 -ipset=/.2lipstube.com/gfwlist -server=/.2shared.com/127.0.0.1#5353 -ipset=/.2shared.com/gfwlist -server=/.2waky.com/127.0.0.1#5353 -ipset=/.2waky.com/gfwlist -server=/.3-a.net/127.0.0.1#5353 -ipset=/.3-a.net/gfwlist -server=/.30boxes.com/127.0.0.1#5353 -ipset=/.30boxes.com/gfwlist -server=/.315lz.com/127.0.0.1#5353 -ipset=/.315lz.com/gfwlist -server=/.32red.com/127.0.0.1#5353 -ipset=/.32red.com/gfwlist -server=/.36rain.com/127.0.0.1#5353 -ipset=/.36rain.com/gfwlist -server=/.3a5a.com/127.0.0.1#5353 -ipset=/.3a5a.com/gfwlist -server=/.3arabtv.com/127.0.0.1#5353 -ipset=/.3arabtv.com/gfwlist -server=/.3boys2girls.com/127.0.0.1#5353 -ipset=/.3boys2girls.com/gfwlist -server=/.3d-game.com/127.0.0.1#5353 -ipset=/.3d-game.com/gfwlist -server=/.3proxy.ru/127.0.0.1#5353 -ipset=/.3proxy.ru/gfwlist -server=/.3ren.ca/127.0.0.1#5353 -ipset=/.3ren.ca/gfwlist -server=/.3tui.net/127.0.0.1#5353 -ipset=/.3tui.net/gfwlist -server=/.466453.com/127.0.0.1#5353 -ipset=/.466453.com/gfwlist -server=/.4bluestones.biz/127.0.0.1#5353 -ipset=/.4bluestones.biz/gfwlist -server=/.4chan.com/127.0.0.1#5353 -ipset=/.4chan.com/gfwlist -server=/.4dq.com/127.0.0.1#5353 -ipset=/.4dq.com/gfwlist -server=/.4everproxy.com/127.0.0.1#5353 -ipset=/.4everproxy.com/gfwlist -server=/.4irc.com/127.0.0.1#5353 -ipset=/.4irc.com/gfwlist -server=/.4mydomain.com/127.0.0.1#5353 -ipset=/.4mydomain.com/gfwlist -server=/.4pu.com/127.0.0.1#5353 -ipset=/.4pu.com/gfwlist -server=/.4rbtv.com/127.0.0.1#5353 -ipset=/.4rbtv.com/gfwlist -server=/.4shared.com/127.0.0.1#5353 -ipset=/.4shared.com/gfwlist -server=/.51.ca/127.0.0.1#5353 -ipset=/.51.ca/gfwlist -server=/.51jav.org/127.0.0.1#5353 -ipset=/.51jav.org/gfwlist -server=/.51luoben.com/127.0.0.1#5353 -ipset=/.51luoben.com/gfwlist -server=/.5278.cc/127.0.0.1#5353 -ipset=/.5278.cc/gfwlist -server=/.56cun04.jigsy.com/127.0.0.1#5353 -ipset=/.56cun04.jigsy.com/gfwlist -server=/.5aimiku.com/127.0.0.1#5353 -ipset=/.5aimiku.com/gfwlist -server=/.5i01.com/127.0.0.1#5353 -ipset=/.5i01.com/gfwlist -server=/.5isotoi5.org/127.0.0.1#5353 -ipset=/.5isotoi5.org/gfwlist -server=/.5maodang.com/127.0.0.1#5353 -ipset=/.5maodang.com/gfwlist -server=/.63i.com/127.0.0.1#5353 -ipset=/.63i.com/gfwlist -server=/.64museum.org/127.0.0.1#5353 -ipset=/.64museum.org/gfwlist -server=/.64tianwang.com/127.0.0.1#5353 -ipset=/.64tianwang.com/gfwlist -server=/.64wiki.com/127.0.0.1#5353 -ipset=/.64wiki.com/gfwlist -server=/.66.ca/127.0.0.1#5353 -ipset=/.66.ca/gfwlist -server=/.666kb.com/127.0.0.1#5353 -ipset=/.666kb.com/gfwlist -server=/.6park.com/127.0.0.1#5353 -ipset=/.6park.com/gfwlist -server=/.6parker.com/127.0.0.1#5353 -ipset=/.6parker.com/gfwlist -server=/.7capture.com/127.0.0.1#5353 -ipset=/.7capture.com/gfwlist -server=/.7cow.com/127.0.0.1#5353 -ipset=/.7cow.com/gfwlist -server=/.8-d.com/127.0.0.1#5353 -ipset=/.8-d.com/gfwlist -server=/.85cc.net/127.0.0.1#5353 -ipset=/.85cc.net/gfwlist -server=/.85cc.us/127.0.0.1#5353 -ipset=/.85cc.us/gfwlist -server=/.85st.com/127.0.0.1#5353 -ipset=/.85st.com/gfwlist -server=/.881903.com/127.0.0.1#5353 -ipset=/.881903.com/gfwlist -server=/.888.com/127.0.0.1#5353 -ipset=/.888.com/gfwlist -server=/.888poker.com/127.0.0.1#5353 -ipset=/.888poker.com/gfwlist -server=/.89-64.org/127.0.0.1#5353 -ipset=/.89-64.org/gfwlist -server=/.89.64.charter.constitutionalism.solutions/127.0.0.1#5353 -ipset=/.89.64.charter.constitutionalism.solutions/gfwlist -server=/.8news.com.tw/127.0.0.1#5353 -ipset=/.8news.com.tw/gfwlist -server=/.8z1.net/127.0.0.1#5353 -ipset=/.8z1.net/gfwlist -server=/.9001700.com/127.0.0.1#5353 -ipset=/.9001700.com/gfwlist -server=/.91porn.com/127.0.0.1#5353 -ipset=/.91porn.com/gfwlist -server=/.91vps.club/127.0.0.1#5353 -ipset=/.91vps.club/gfwlist -server=/.92ccav.com/127.0.0.1#5353 -ipset=/.92ccav.com/gfwlist -server=/.991.com/127.0.0.1#5353 -ipset=/.991.com/gfwlist -server=/.99btgc01.com/127.0.0.1#5353 -ipset=/.99btgc01.com/gfwlist -server=/.99cn.info/127.0.0.1#5353 -ipset=/.99cn.info/gfwlist -server=/.9bis.com/127.0.0.1#5353 -ipset=/.9bis.com/gfwlist -server=/.9bis.net/127.0.0.1#5353 -ipset=/.9bis.net/gfwlist -server=/.a-normal-day.com/127.0.0.1#5353 -ipset=/.a-normal-day.com/gfwlist -server=/.a248.e.akamai.net/127.0.0.1#5353 -ipset=/.a248.e.akamai.net/gfwlist -server=/.a5.com.ru/127.0.0.1#5353 -ipset=/.a5.com.ru/gfwlist -server=/.aamacau.com/127.0.0.1#5353 -ipset=/.aamacau.com/gfwlist -server=/.abc.com/127.0.0.1#5353 -ipset=/.abc.com/gfwlist -server=/.abc.net.au/127.0.0.1#5353 -ipset=/.abc.net.au/gfwlist -server=/.abc.pp.ru/127.0.0.1#5353 -ipset=/.abc.pp.ru/gfwlist -server=/.abc.xyz/127.0.0.1#5353 -ipset=/.abc.xyz/gfwlist -server=/.abchinese.com/127.0.0.1#5353 -ipset=/.abchinese.com/gfwlist -server=/.abclite.net/127.0.0.1#5353 -ipset=/.abclite.net/gfwlist -server=/.abematv.akamaized.net/127.0.0.1#5353 -ipset=/.abematv.akamaized.net/gfwlist -server=/.ablwang.com/127.0.0.1#5353 -ipset=/.ablwang.com/gfwlist -server=/.aboluowang.com/127.0.0.1#5353 -ipset=/.aboluowang.com/gfwlist -server=/.aboutgfw.com/127.0.0.1#5353 -ipset=/.aboutgfw.com/gfwlist -server=/.abs.edu/127.0.0.1#5353 -ipset=/.abs.edu/gfwlist -server=/.ac.jiruan.net/127.0.0.1#5353 -ipset=/.ac.jiruan.net/gfwlist -server=/.accim.org/127.0.0.1#5353 -ipset=/.accim.org/gfwlist -server=/.aceros-de-hispania.com/127.0.0.1#5353 -ipset=/.aceros-de-hispania.com/gfwlist -server=/.acevpn.com/127.0.0.1#5353 -ipset=/.acevpn.com/gfwlist -server=/.acg18.me/127.0.0.1#5353 -ipset=/.acg18.me/gfwlist -server=/.acgkj.com/127.0.0.1#5353 -ipset=/.acgkj.com/gfwlist -server=/.acmedia365.com/127.0.0.1#5353 -ipset=/.acmedia365.com/gfwlist -server=/.acmetoy.com/127.0.0.1#5353 -ipset=/.acmetoy.com/gfwlist -server=/.acnw.com.au/127.0.0.1#5353 -ipset=/.acnw.com.au/gfwlist -server=/.actfortibet.org/127.0.0.1#5353 -ipset=/.actfortibet.org/gfwlist -server=/.actimes.com.au/127.0.0.1#5353 -ipset=/.actimes.com.au/gfwlist -server=/.activpn.com/127.0.0.1#5353 -ipset=/.activpn.com/gfwlist -server=/.aculo.us/127.0.0.1#5353 -ipset=/.aculo.us/gfwlist -server=/.adcex.com/127.0.0.1#5353 -ipset=/.adcex.com/gfwlist -server=/.addictedtocoffee.de/127.0.0.1#5353 -ipset=/.addictedtocoffee.de/gfwlist -server=/.admin.recaptcha.net/127.0.0.1#5353 -ipset=/.admin.recaptcha.net/gfwlist -server=/.admob.com/127.0.0.1#5353 -ipset=/.admob.com/gfwlist -server=/.adpl.org.hk/127.0.0.1#5353 -ipset=/.adpl.org.hk/gfwlist -server=/.ads-twitter.com/127.0.0.1#5353 -ipset=/.ads-twitter.com/gfwlist -server=/.adsense.com/127.0.0.1#5353 -ipset=/.adsense.com/gfwlist -server=/.adult-sex-games.com/127.0.0.1#5353 -ipset=/.adult-sex-games.com/gfwlist -server=/.adultfriendfinder.com/127.0.0.1#5353 -ipset=/.adultfriendfinder.com/gfwlist -server=/.advanscene.com/127.0.0.1#5353 -ipset=/.advanscene.com/gfwlist -server=/.advertfan.com/127.0.0.1#5353 -ipset=/.advertfan.com/gfwlist -server=/.ae.hao123.com/127.0.0.1#5353 -ipset=/.ae.hao123.com/gfwlist -server=/.ae.org/127.0.0.1#5353 -ipset=/.ae.org/gfwlist -server=/.aenhancers.com/127.0.0.1#5353 -ipset=/.aenhancers.com/gfwlist -server=/.af.mil/127.0.0.1#5353 -ipset=/.af.mil/gfwlist -server=/.afantibbs.com/127.0.0.1#5353 -ipset=/.afantibbs.com/gfwlist -server=/.aftygh.gov.tw/127.0.0.1#5353 -ipset=/.aftygh.gov.tw/gfwlist -server=/.agnesb.fr/127.0.0.1#5353 -ipset=/.agnesb.fr/gfwlist -server=/.agoogleaday.com/127.0.0.1#5353 -ipset=/.agoogleaday.com/gfwlist -server=/.agro.hk/127.0.0.1#5353 -ipset=/.agro.hk/gfwlist -server=/.ai-kan.net/127.0.0.1#5353 -ipset=/.ai-kan.net/gfwlist -server=/.ai-wen.net/127.0.0.1#5353 -ipset=/.ai-wen.net/gfwlist -server=/.ai.google/127.0.0.1#5353 -ipset=/.ai.google/gfwlist -server=/.aide.gov.tw/127.0.0.1#5353 -ipset=/.aide.gov.tw/gfwlist -server=/.aiph.net/127.0.0.1#5353 -ipset=/.aiph.net/gfwlist -server=/.airasia.com/127.0.0.1#5353 -ipset=/.airasia.com/gfwlist -server=/.airconsole.com/127.0.0.1#5353 -ipset=/.airconsole.com/gfwlist -server=/.airvpn.org/127.0.0.1#5353 -ipset=/.airvpn.org/gfwlist -server=/.aisex.com/127.0.0.1#5353 -ipset=/.aisex.com/gfwlist -server=/.aiss.anws.gov.tw/127.0.0.1#5353 -ipset=/.aiss.anws.gov.tw/gfwlist -server=/.ait.org.tw/127.0.0.1#5353 -ipset=/.ait.org.tw/gfwlist -server=/.aiweiwei.com/127.0.0.1#5353 -ipset=/.aiweiwei.com/gfwlist -server=/.aiweiweiblog.com/127.0.0.1#5353 -ipset=/.aiweiweiblog.com/gfwlist -server=/.akiba-online.com/127.0.0.1#5353 -ipset=/.akiba-online.com/gfwlist -server=/.akiba-web.com/127.0.0.1#5353 -ipset=/.akiba-web.com/gfwlist -server=/.akow.org/127.0.0.1#5353 -ipset=/.akow.org/gfwlist -server=/.al-islam.com/127.0.0.1#5353 -ipset=/.al-islam.com/gfwlist -server=/.al-qimmah.net/127.0.0.1#5353 -ipset=/.al-qimmah.net/gfwlist -server=/.alabout.com/127.0.0.1#5353 -ipset=/.alabout.com/gfwlist -server=/.alanhou.com/127.0.0.1#5353 -ipset=/.alanhou.com/gfwlist -server=/.alarab.qa/127.0.0.1#5353 -ipset=/.alarab.qa/gfwlist -server=/.alasbarricadas.org/127.0.0.1#5353 -ipset=/.alasbarricadas.org/gfwlist -server=/.alexlur.org/127.0.0.1#5353 -ipset=/.alexlur.org/gfwlist -server=/.alforattv.net/127.0.0.1#5353 -ipset=/.alforattv.net/gfwlist -server=/.alhayat.com/127.0.0.1#5353 -ipset=/.alhayat.com/gfwlist -server=/.alicejapan.co.jp/127.0.0.1#5353 -ipset=/.alicejapan.co.jp/gfwlist -server=/.aliengu.com/127.0.0.1#5353 -ipset=/.aliengu.com/gfwlist -server=/.alkasir.com/127.0.0.1#5353 -ipset=/.alkasir.com/gfwlist -server=/.allcoin.com/127.0.0.1#5353 -ipset=/.allcoin.com/gfwlist -server=/.allconnected.co/127.0.0.1#5353 -ipset=/.allconnected.co/gfwlist -server=/.alldrawnsex.com/127.0.0.1#5353 -ipset=/.alldrawnsex.com/gfwlist -server=/.allervpn.com/127.0.0.1#5353 -ipset=/.allervpn.com/gfwlist -server=/.allfinegirls.com/127.0.0.1#5353 -ipset=/.allfinegirls.com/gfwlist -server=/.allgirlmassage.com/127.0.0.1#5353 -ipset=/.allgirlmassage.com/gfwlist -server=/.allgirlsallowed.org/127.0.0.1#5353 -ipset=/.allgirlsallowed.org/gfwlist -server=/.allgravure.com/127.0.0.1#5353 -ipset=/.allgravure.com/gfwlist -server=/.alliance.org.hk/127.0.0.1#5353 -ipset=/.alliance.org.hk/gfwlist -server=/.allinfa.com/127.0.0.1#5353 -ipset=/.allinfa.com/gfwlist -server=/.alljackpotscasino.com/127.0.0.1#5353 -ipset=/.alljackpotscasino.com/gfwlist -server=/.allmovie.com/127.0.0.1#5353 -ipset=/.allmovie.com/gfwlist -server=/.allowed.org/127.0.0.1#5353 -ipset=/.allowed.org/gfwlist -server=/.almasdarnews.com/127.0.0.1#5353 -ipset=/.almasdarnews.com/gfwlist -server=/.almostmy.com/127.0.0.1#5353 -ipset=/.almostmy.com/gfwlist -server=/.alphaporno.com/127.0.0.1#5353 -ipset=/.alphaporno.com/gfwlist -server=/.alternate-tools.com/127.0.0.1#5353 -ipset=/.alternate-tools.com/gfwlist -server=/.altrec.com/127.0.0.1#5353 -ipset=/.altrec.com/gfwlist -server=/.alvinalexander.com/127.0.0.1#5353 -ipset=/.alvinalexander.com/gfwlist -server=/.alwaysdata.com/127.0.0.1#5353 -ipset=/.alwaysdata.com/gfwlist -server=/.alwaysdata.net/127.0.0.1#5353 -ipset=/.alwaysdata.net/gfwlist -server=/.alwaysvpn.com/127.0.0.1#5353 -ipset=/.alwaysvpn.com/gfwlist -server=/.am730.com.hk/127.0.0.1#5353 -ipset=/.am730.com.hk/gfwlist -server=/.amazon.co.jp/127.0.0.1#5353 -ipset=/.amazon.co.jp/gfwlist -server=/.ameblo.jp/127.0.0.1#5353 -ipset=/.ameblo.jp/gfwlist -server=/.americangreencard.com/127.0.0.1#5353 -ipset=/.americangreencard.com/gfwlist -server=/.americanunfinished.com/127.0.0.1#5353 -ipset=/.americanunfinished.com/gfwlist -server=/.amiblockedornot.com/127.0.0.1#5353 -ipset=/.amiblockedornot.com/gfwlist -server=/.amigobbs.net/127.0.0.1#5353 -ipset=/.amigobbs.net/gfwlist -server=/.amitabhafoundation.us/127.0.0.1#5353 -ipset=/.amitabhafoundation.us/gfwlist -server=/.amnesty.org/127.0.0.1#5353 -ipset=/.amnesty.org/gfwlist -server=/.amnesty.tw/127.0.0.1#5353 -ipset=/.amnesty.tw/gfwlist -server=/.amnestyusa.org/127.0.0.1#5353 -ipset=/.amnestyusa.org/gfwlist -server=/.amnyemachen.org/127.0.0.1#5353 -ipset=/.amnyemachen.org/gfwlist -server=/.amoiist.com/127.0.0.1#5353 -ipset=/.amoiist.com/gfwlist -server=/.ampproject.org/127.0.0.1#5353 -ipset=/.ampproject.org/gfwlist -server=/.amtb-taipei.org/127.0.0.1#5353 -ipset=/.amtb-taipei.org/gfwlist -server=/.anchorfree.com/127.0.0.1#5353 -ipset=/.anchorfree.com/gfwlist -server=/.ancsconf.org/127.0.0.1#5353 -ipset=/.ancsconf.org/gfwlist -server=/.andfaraway.net/127.0.0.1#5353 -ipset=/.andfaraway.net/gfwlist -server=/.android-x86.org/127.0.0.1#5353 -ipset=/.android-x86.org/gfwlist -server=/.android.com/127.0.0.1#5353 -ipset=/.android.com/gfwlist -server=/.androidify.com/127.0.0.1#5353 -ipset=/.androidify.com/gfwlist -server=/.andygod.com/127.0.0.1#5353 -ipset=/.andygod.com/gfwlist -server=/.angularjs.org/127.0.0.1#5353 -ipset=/.angularjs.org/gfwlist -server=/.animecrazy.net/127.0.0.1#5353 -ipset=/.animecrazy.net/gfwlist -server=/.animeshippuuden.com/127.0.0.1#5353 -ipset=/.animeshippuuden.com/gfwlist -server=/.aniscartujo.com/127.0.0.1#5353 -ipset=/.aniscartujo.com/gfwlist -server=/.anobii.com/127.0.0.1#5353 -ipset=/.anobii.com/gfwlist -server=/.anontext.com/127.0.0.1#5353 -ipset=/.anontext.com/gfwlist -server=/.anonymise.us/127.0.0.1#5353 -ipset=/.anonymise.us/gfwlist -server=/.anonymitynetwork.com/127.0.0.1#5353 -ipset=/.anonymitynetwork.com/gfwlist -server=/.anonymizer.com/127.0.0.1#5353 -ipset=/.anonymizer.com/gfwlist -server=/.anpopo.com/127.0.0.1#5353 -ipset=/.anpopo.com/gfwlist -server=/.answering-islam.org/127.0.0.1#5353 -ipset=/.answering-islam.org/gfwlist -server=/.anthonycalzadilla.com/127.0.0.1#5353 -ipset=/.anthonycalzadilla.com/gfwlist -server=/.anti1984.com/127.0.0.1#5353 -ipset=/.anti1984.com/gfwlist -server=/.antichristendom.com/127.0.0.1#5353 -ipset=/.antichristendom.com/gfwlist -server=/.antiwave.net/127.0.0.1#5353 -ipset=/.antiwave.net/gfwlist -server=/.anyporn.com/127.0.0.1#5353 -ipset=/.anyporn.com/gfwlist -server=/.anysex.com/127.0.0.1#5353 -ipset=/.anysex.com/gfwlist -server=/.aobo.com.au/127.0.0.1#5353 -ipset=/.aobo.com.au/gfwlist -server=/.aofriend.com/127.0.0.1#5353 -ipset=/.aofriend.com/gfwlist -server=/.aojiao.org/127.0.0.1#5353 -ipset=/.aojiao.org/gfwlist -server=/.aolchannels.aol.com/127.0.0.1#5353 -ipset=/.aolchannels.aol.com/gfwlist -server=/.aomiwang.com/127.0.0.1#5353 -ipset=/.aomiwang.com/gfwlist -server=/.apartmentratings.com/127.0.0.1#5353 -ipset=/.apartmentratings.com/gfwlist -server=/.apartments.com/127.0.0.1#5353 -ipset=/.apartments.com/gfwlist -server=/.apetube.com/127.0.0.1#5353 -ipset=/.apetube.com/gfwlist -server=/.api-secure.recaptcha.net/127.0.0.1#5353 -ipset=/.api-secure.recaptcha.net/gfwlist -server=/.api-verify.recaptcha.net/127.0.0.1#5353 -ipset=/.api-verify.recaptcha.net/gfwlist -server=/.api.ai/127.0.0.1#5353 -ipset=/.api.ai/gfwlist -server=/.api.dropboxapi.com/127.0.0.1#5353 -ipset=/.api.dropboxapi.com/gfwlist -server=/.api.linksalpha.com/127.0.0.1#5353 -ipset=/.api.linksalpha.com/gfwlist -server=/.api.proxlet.com/127.0.0.1#5353 -ipset=/.api.proxlet.com/gfwlist -server=/.api.recaptcha.net/127.0.0.1#5353 -ipset=/.api.recaptcha.net/gfwlist -server=/.apiary.io/127.0.0.1#5353 -ipset=/.apiary.io/gfwlist -server=/.apidocs.linksalpha.com/127.0.0.1#5353 -ipset=/.apidocs.linksalpha.com/gfwlist -server=/.apigee.com/127.0.0.1#5353 -ipset=/.apigee.com/gfwlist -server=/.apk-dl.com/127.0.0.1#5353 -ipset=/.apk-dl.com/gfwlist -server=/.apkmirror.com/127.0.0.1#5353 -ipset=/.apkmirror.com/gfwlist -server=/.apkplz.com/127.0.0.1#5353 -ipset=/.apkplz.com/gfwlist -server=/.apkpure.com/127.0.0.1#5353 -ipset=/.apkpure.com/gfwlist -server=/.aplusvpn.com/127.0.0.1#5353 -ipset=/.aplusvpn.com/gfwlist -server=/.app.box.com/127.0.0.1#5353 -ipset=/.app.box.com/gfwlist -server=/.app.heywire.com/127.0.0.1#5353 -ipset=/.app.heywire.com/gfwlist -server=/.app.smartmailcloud.com/127.0.0.1#5353 -ipset=/.app.smartmailcloud.com/gfwlist -server=/.app.tutanota.com/127.0.0.1#5353 -ipset=/.app.tutanota.com/gfwlist -server=/.appledaily.com/127.0.0.1#5353 -ipset=/.appledaily.com/gfwlist -server=/.appshopper.com/127.0.0.1#5353 -ipset=/.appshopper.com/gfwlist -server=/.appsocks.net/127.0.0.1#5353 -ipset=/.appsocks.net/gfwlist -server=/.appspot.com/127.0.0.1#5353 -ipset=/.appspot.com/gfwlist -server=/.appsto.re/127.0.0.1#5353 -ipset=/.appsto.re/gfwlist -server=/.aptoide.com/127.0.0.1#5353 -ipset=/.aptoide.com/gfwlist -server=/.ar.hao123.com/127.0.0.1#5353 -ipset=/.ar.hao123.com/gfwlist -server=/.archive.fo/127.0.0.1#5353 -ipset=/.archive.fo/gfwlist -server=/.archive.is/127.0.0.1#5353 -ipset=/.archive.is/gfwlist -server=/.archive.li/127.0.0.1#5353 -ipset=/.archive.li/gfwlist -server=/.archive.org/127.0.0.1#5353 -ipset=/.archive.org/gfwlist -server=/.archive.today/127.0.0.1#5353 -ipset=/.archive.today/gfwlist -server=/.archives.gov/127.0.0.1#5353 -ipset=/.archives.gov/gfwlist -server=/.arctosia.com/127.0.0.1#5353 -ipset=/.arctosia.com/gfwlist -server=/.areca-backup.org/127.0.0.1#5353 -ipset=/.areca-backup.org/gfwlist -server=/.arena.taipei/127.0.0.1#5353 -ipset=/.arena.taipei/gfwlist -server=/.arethusa.su/127.0.0.1#5353 -ipset=/.arethusa.su/gfwlist -server=/.arlingtoncemetery.mil/127.0.0.1#5353 -ipset=/.arlingtoncemetery.mil/gfwlist -server=/.army.mil/127.0.0.1#5353 -ipset=/.army.mil/gfwlist -server=/.art4tibet1998.org/127.0.0.1#5353 -ipset=/.art4tibet1998.org/gfwlist -server=/.arte.gov.tw/127.0.0.1#5353 -ipset=/.arte.gov.tw/gfwlist -server=/.artofpeacefoundation.org/127.0.0.1#5353 -ipset=/.artofpeacefoundation.org/gfwlist -server=/.artsy.net/127.0.0.1#5353 -ipset=/.artsy.net/gfwlist -server=/.asacp.org/127.0.0.1#5353 -ipset=/.asacp.org/gfwlist -server=/.asahichinese.com/127.0.0.1#5353 -ipset=/.asahichinese.com/gfwlist -server=/.asg.to/127.0.0.1#5353 -ipset=/.asg.to/gfwlist -server=/.asia-gaming.com/127.0.0.1#5353 -ipset=/.asia-gaming.com/gfwlist -server=/.asiaharvest.org/127.0.0.1#5353 -ipset=/.asiaharvest.org/gfwlist -server=/.asianews.it/127.0.0.1#5353 -ipset=/.asianews.it/gfwlist -server=/.asiansexdiary.com/127.0.0.1#5353 -ipset=/.asiansexdiary.com/gfwlist -server=/.asianspiss.com/127.0.0.1#5353 -ipset=/.asianspiss.com/gfwlist -server=/.asianwomensfilm.de/127.0.0.1#5353 -ipset=/.asianwomensfilm.de/gfwlist -server=/.asiatgp.com/127.0.0.1#5353 -ipset=/.asiatgp.com/gfwlist -server=/.asiatoday.us/127.0.0.1#5353 -ipset=/.asiatoday.us/gfwlist -server=/.askstudent.com/127.0.0.1#5353 -ipset=/.askstudent.com/gfwlist -server=/.askynz.net/127.0.0.1#5353 -ipset=/.askynz.net/gfwlist -server=/.assembla.com/127.0.0.1#5353 -ipset=/.assembla.com/gfwlist -server=/.assimp.org/127.0.0.1#5353 -ipset=/.assimp.org/gfwlist -server=/.astrill.com/127.0.0.1#5353 -ipset=/.astrill.com/gfwlist -server=/.atc.org.au/127.0.0.1#5353 -ipset=/.atc.org.au/gfwlist -server=/.atchinese.com/127.0.0.1#5353 -ipset=/.atchinese.com/gfwlist -server=/.atdmt.com/127.0.0.1#5353 -ipset=/.atdmt.com/gfwlist -server=/.atgfw.org/127.0.0.1#5353 -ipset=/.atgfw.org/gfwlist -server=/.athenaeizou.com/127.0.0.1#5353 -ipset=/.athenaeizou.com/gfwlist -server=/.atlaspost.com/127.0.0.1#5353 -ipset=/.atlaspost.com/gfwlist -server=/.atnext.com/127.0.0.1#5353 -ipset=/.atnext.com/gfwlist -server=/.authorizeddns.net/127.0.0.1#5353 -ipset=/.authorizeddns.net/gfwlist -server=/.authorizeddns.org/127.0.0.1#5353 -ipset=/.authorizeddns.org/gfwlist -server=/.authorizeddns.us/127.0.0.1#5353 -ipset=/.authorizeddns.us/gfwlist -server=/.autodraw.com/127.0.0.1#5353 -ipset=/.autodraw.com/gfwlist -server=/.av-e-body.com/127.0.0.1#5353 -ipset=/.av-e-body.com/gfwlist -server=/.av.com/127.0.0.1#5353 -ipset=/.av.com/gfwlist -server=/.av.movie/127.0.0.1#5353 -ipset=/.av.movie/gfwlist -server=/.av.nightlife141.com/127.0.0.1#5353 -ipset=/.av.nightlife141.com/gfwlist -server=/.avaaz.org/127.0.0.1#5353 -ipset=/.avaaz.org/gfwlist -server=/.avbody.tv/127.0.0.1#5353 -ipset=/.avbody.tv/gfwlist -server=/.avcity.tv/127.0.0.1#5353 -ipset=/.avcity.tv/gfwlist -server=/.avcool.com/127.0.0.1#5353 -ipset=/.avcool.com/gfwlist -server=/.avdb.in/127.0.0.1#5353 -ipset=/.avdb.in/gfwlist -server=/.avdb.tv/127.0.0.1#5353 -ipset=/.avdb.tv/gfwlist -server=/.avfantasy.com/127.0.0.1#5353 -ipset=/.avfantasy.com/gfwlist -server=/.avgle.com/127.0.0.1#5353 -ipset=/.avgle.com/gfwlist -server=/.avidemux.org/127.0.0.1#5353 -ipset=/.avidemux.org/gfwlist -server=/.avmo.pw/127.0.0.1#5353 -ipset=/.avmo.pw/gfwlist -server=/.avmoo.com/127.0.0.1#5353 -ipset=/.avmoo.com/gfwlist -server=/.avmoo.net/127.0.0.1#5353 -ipset=/.avmoo.net/gfwlist -server=/.avmoo.pw/127.0.0.1#5353 -ipset=/.avmoo.pw/gfwlist -server=/.avoision.com/127.0.0.1#5353 -ipset=/.avoision.com/gfwlist -server=/.avyahoo.com/127.0.0.1#5353 -ipset=/.avyahoo.com/gfwlist -server=/.axureformac.com/127.0.0.1#5353 -ipset=/.axureformac.com/gfwlist -server=/.azerbaycan.tv/127.0.0.1#5353 -ipset=/.azerbaycan.tv/gfwlist -server=/.azerimix.com/127.0.0.1#5353 -ipset=/.azerimix.com/gfwlist -server=/.azubu.tv/127.0.0.1#5353 -ipset=/.azubu.tv/gfwlist -server=/.b0ne.com/127.0.0.1#5353 -ipset=/.b0ne.com/gfwlist -server=/.babynet.com.hk/127.0.0.1#5353 -ipset=/.babynet.com.hk/gfwlist -server=/.backchina.com/127.0.0.1#5353 -ipset=/.backchina.com/gfwlist -server=/.backtotiananmen.com/127.0.0.1#5353 -ipset=/.backtotiananmen.com/gfwlist -server=/.badiucao.com/127.0.0.1#5353 -ipset=/.badiucao.com/gfwlist -server=/.badjojo.com/127.0.0.1#5353 -ipset=/.badjojo.com/gfwlist -server=/.badoo.com/127.0.0.1#5353 -ipset=/.badoo.com/gfwlist -server=/.baidu.jp/127.0.0.1#5353 -ipset=/.baidu.jp/gfwlist -server=/.baijie.org/127.0.0.1#5353 -ipset=/.baijie.org/gfwlist -server=/.bailandaily.com/127.0.0.1#5353 -ipset=/.bailandaily.com/gfwlist -server=/.baixing.me/127.0.0.1#5353 -ipset=/.baixing.me/gfwlist -server=/.bakgeekhome.tk/127.0.0.1#5353 -ipset=/.bakgeekhome.tk/gfwlist -server=/.banana-vpn.com/127.0.0.1#5353 -ipset=/.banana-vpn.com/gfwlist -server=/.bandwagonhost.com/127.0.0.1#5353 -ipset=/.bandwagonhost.com/gfwlist -server=/.bangbrosnetwork.com/127.0.0.1#5353 -ipset=/.bangbrosnetwork.com/gfwlist -server=/.bangchen.net/127.0.0.1#5353 -ipset=/.bangchen.net/gfwlist -server=/.bangyoulater.com/127.0.0.1#5353 -ipset=/.bangyoulater.com/gfwlist -server=/.bankmobilevibe.com/127.0.0.1#5353 -ipset=/.bankmobilevibe.com/gfwlist -server=/.bannedbook.org/127.0.0.1#5353 -ipset=/.bannedbook.org/gfwlist -server=/.bannednews.org/127.0.0.1#5353 -ipset=/.bannednews.org/gfwlist -server=/.banorte.com/127.0.0.1#5353 -ipset=/.banorte.com/gfwlist -server=/.baramangaonline.com/127.0.0.1#5353 -ipset=/.baramangaonline.com/gfwlist -server=/.barenakedislam.com/127.0.0.1#5353 -ipset=/.barenakedislam.com/gfwlist -server=/.barnabu.co.uk/127.0.0.1#5353 -ipset=/.barnabu.co.uk/gfwlist -server=/.bartvpn.com/127.0.0.1#5353 -ipset=/.bartvpn.com/gfwlist -server=/.bash-hackers.org/127.0.0.1#5353 -ipset=/.bash-hackers.org/gfwlist -server=/.bastillepost.com/127.0.0.1#5353 -ipset=/.bastillepost.com/gfwlist -server=/.bayvoice.net/127.0.0.1#5353 -ipset=/.bayvoice.net/gfwlist -server=/.bb-chat.tv/127.0.0.1#5353 -ipset=/.bb-chat.tv/gfwlist -server=/.bbc.co.uk/127.0.0.1#5353 -ipset=/.bbc.co.uk/gfwlist -server=/.bbc.com/127.0.0.1#5353 -ipset=/.bbc.com/gfwlist -server=/.bbc.in/127.0.0.1#5353 -ipset=/.bbc.in/gfwlist -server=/.bbcchinese.com/127.0.0.1#5353 -ipset=/.bbcchinese.com/gfwlist -server=/.bbchat.tv/127.0.0.1#5353 -ipset=/.bbchat.tv/gfwlist -server=/.bbci.co.uk/127.0.0.1#5353 -ipset=/.bbci.co.uk/gfwlist -server=/.bbg.gov/127.0.0.1#5353 -ipset=/.bbg.gov/gfwlist -server=/.bbnradio.org/127.0.0.1#5353 -ipset=/.bbnradio.org/gfwlist -server=/.bbs-tw.com/127.0.0.1#5353 -ipset=/.bbs-tw.com/gfwlist -server=/.bbs.brockbbs.com/127.0.0.1#5353 -ipset=/.bbs.brockbbs.com/gfwlist -server=/.bbs.ecstart.com/127.0.0.1#5353 -ipset=/.bbs.ecstart.com/gfwlist -server=/.bbs.hasi.wang/127.0.0.1#5353 -ipset=/.bbs.hasi.wang/gfwlist -server=/.bbs.huasing.org/127.0.0.1#5353 -ipset=/.bbs.huasing.org/gfwlist -server=/.bbs.junglobal.net/127.0.0.1#5353 -ipset=/.bbs.junglobal.net/gfwlist -server=/.bbs.kimy.com.tw/127.0.0.1#5353 -ipset=/.bbs.kimy.com.tw/gfwlist -server=/.bbs.morbell.com/127.0.0.1#5353 -ipset=/.bbs.morbell.com/gfwlist -server=/.bbs.mychat.to/127.0.0.1#5353 -ipset=/.bbs.mychat.to/gfwlist -server=/.bbs.netbig.com/127.0.0.1#5353 -ipset=/.bbs.netbig.com/gfwlist -server=/.bbs.ozchinese.com/127.0.0.1#5353 -ipset=/.bbs.ozchinese.com/gfwlist -server=/.bbs.qmzdd.com/127.0.0.1#5353 -ipset=/.bbs.qmzdd.com/gfwlist -server=/.bbs.skykiwi.com/127.0.0.1#5353 -ipset=/.bbs.skykiwi.com/gfwlist -server=/.bbs.sou-tong.org/127.0.0.1#5353 -ipset=/.bbs.sou-tong.org/gfwlist -server=/.bbs.tuitui.info/127.0.0.1#5353 -ipset=/.bbs.tuitui.info/gfwlist -server=/.bbsfeed.com/127.0.0.1#5353 -ipset=/.bbsfeed.com/gfwlist -server=/.bbsland.com/127.0.0.1#5353 -ipset=/.bbsland.com/gfwlist -server=/.bbsmo.com/127.0.0.1#5353 -ipset=/.bbsmo.com/gfwlist -server=/.bbsone.com/127.0.0.1#5353 -ipset=/.bbsone.com/gfwlist -server=/.bbtoystore.com/127.0.0.1#5353 -ipset=/.bbtoystore.com/gfwlist -server=/.bcast.co.nz/127.0.0.1#5353 -ipset=/.bcast.co.nz/gfwlist -server=/.bcchinese.net/127.0.0.1#5353 -ipset=/.bcchinese.net/gfwlist -server=/.bcex.ca/127.0.0.1#5353 -ipset=/.bcex.ca/gfwlist -server=/.bcmorning.com/127.0.0.1#5353 -ipset=/.bcmorning.com/gfwlist -server=/.bdsmvideos.net/127.0.0.1#5353 -ipset=/.bdsmvideos.net/gfwlist -server=/.beaconevents.com/127.0.0.1#5353 -ipset=/.beaconevents.com/gfwlist -server=/.bebo.com/127.0.0.1#5353 -ipset=/.bebo.com/gfwlist -server=/.beeg.com/127.0.0.1#5353 -ipset=/.beeg.com/gfwlist -server=/.beevpn.com/127.0.0.1#5353 -ipset=/.beevpn.com/gfwlist -server=/.behindkink.com/127.0.0.1#5353 -ipset=/.behindkink.com/gfwlist -server=/.beijing1989.com/127.0.0.1#5353 -ipset=/.beijing1989.com/gfwlist -server=/.beijingspring.com/127.0.0.1#5353 -ipset=/.beijingspring.com/gfwlist -server=/.beijingzx.org/127.0.0.1#5353 -ipset=/.beijingzx.org/gfwlist -server=/.belamionline.com/127.0.0.1#5353 -ipset=/.belamionline.com/gfwlist -server=/.bell.wiki/127.0.0.1#5353 -ipset=/.bell.wiki/gfwlist -server=/.bemywife.cc/127.0.0.1#5353 -ipset=/.bemywife.cc/gfwlist -server=/.beric.me/127.0.0.1#5353 -ipset=/.beric.me/gfwlist -server=/.berlintwitterwall.com/127.0.0.1#5353 -ipset=/.berlintwitterwall.com/gfwlist -server=/.berm.co.nz/127.0.0.1#5353 -ipset=/.berm.co.nz/gfwlist -server=/.bestforchina.org/127.0.0.1#5353 -ipset=/.bestforchina.org/gfwlist -server=/.bestgore.com/127.0.0.1#5353 -ipset=/.bestgore.com/gfwlist -server=/.bestpornstardb.com/127.0.0.1#5353 -ipset=/.bestpornstardb.com/gfwlist -server=/.bestvpn.com/127.0.0.1#5353 -ipset=/.bestvpn.com/gfwlist -server=/.bestvpnanalysis.com/127.0.0.1#5353 -ipset=/.bestvpnanalysis.com/gfwlist -server=/.bestvpnserver.com/127.0.0.1#5353 -ipset=/.bestvpnserver.com/gfwlist -server=/.bestvpnservice.com/127.0.0.1#5353 -ipset=/.bestvpnservice.com/gfwlist -server=/.bestvpnusa.com/127.0.0.1#5353 -ipset=/.bestvpnusa.com/gfwlist -server=/.bet365.com/127.0.0.1#5353 -ipset=/.bet365.com/gfwlist -server=/.betfair.com/127.0.0.1#5353 -ipset=/.betfair.com/gfwlist -server=/.betternet.co/127.0.0.1#5353 -ipset=/.betternet.co/gfwlist -server=/.bettervpn.com/127.0.0.1#5353 -ipset=/.bettervpn.com/gfwlist -server=/.bettween.com/127.0.0.1#5353 -ipset=/.bettween.com/gfwlist -server=/.betvictor.com/127.0.0.1#5353 -ipset=/.betvictor.com/gfwlist -server=/.bewww.net/127.0.0.1#5353 -ipset=/.bewww.net/gfwlist -server=/.beyondfirewall.com/127.0.0.1#5353 -ipset=/.beyondfirewall.com/gfwlist -server=/.bfnn.org/127.0.0.1#5353 -ipset=/.bfnn.org/gfwlist -server=/.bfsh.hk/127.0.0.1#5353 -ipset=/.bfsh.hk/gfwlist -server=/.bgvpn.com/127.0.0.1#5353 -ipset=/.bgvpn.com/gfwlist -server=/.bianlei.com/127.0.0.1#5353 -ipset=/.bianlei.com/gfwlist -server=/.biantailajiao.com/127.0.0.1#5353 -ipset=/.biantailajiao.com/gfwlist -server=/.biantailajiao.in/127.0.0.1#5353 -ipset=/.biantailajiao.in/gfwlist -server=/.biblesforamerica.org/127.0.0.1#5353 -ipset=/.biblesforamerica.org/gfwlist -server=/.bibox.com/127.0.0.1#5353 -ipset=/.bibox.com/gfwlist -server=/.bic2011.org/127.0.0.1#5353 -ipset=/.bic2011.org/gfwlist -server=/.big.one/127.0.0.1#5353 -ipset=/.big.one/gfwlist -server=/.bigfools.com/127.0.0.1#5353 -ipset=/.bigfools.com/gfwlist -server=/.bigjapanesesex.com/127.0.0.1#5353 -ipset=/.bigjapanesesex.com/gfwlist -server=/.bigmoney.biz/127.0.0.1#5353 -ipset=/.bigmoney.biz/gfwlist -server=/.bignews.org/127.0.0.1#5353 -ipset=/.bignews.org/gfwlist -server=/.bigsound.org/127.0.0.1#5353 -ipset=/.bigsound.org/gfwlist -server=/.biliworld.com/127.0.0.1#5353 -ipset=/.biliworld.com/gfwlist -server=/.binance.com/127.0.0.1#5353 -ipset=/.binance.com/gfwlist -server=/.binux.me/127.0.0.1#5353 -ipset=/.binux.me/gfwlist -server=/.bipic.net/127.0.0.1#5353 -ipset=/.bipic.net/gfwlist -server=/.bird.so/127.0.0.1#5353 -ipset=/.bird.so/gfwlist -server=/.bit-z.com/127.0.0.1#5353 -ipset=/.bit-z.com/gfwlist -server=/.bit.do/127.0.0.1#5353 -ipset=/.bit.do/gfwlist -server=/.bit.ly/127.0.0.1#5353 -ipset=/.bit.ly/gfwlist -server=/.bitcointalk.org/127.0.0.1#5353 -ipset=/.bitcointalk.org/gfwlist -server=/.bitcoinworld.com/127.0.0.1#5353 -ipset=/.bitcoinworld.com/gfwlist -server=/.bitfinex.com/127.0.0.1#5353 -ipset=/.bitfinex.com/gfwlist -server=/.bitinka.com.ar/127.0.0.1#5353 -ipset=/.bitinka.com.ar/gfwlist -server=/.bitmex.com/127.0.0.1#5353 -ipset=/.bitmex.com/gfwlist -server=/.bitshare.com/127.0.0.1#5353 -ipset=/.bitshare.com/gfwlist -server=/.bitsnoop.com/127.0.0.1#5353 -ipset=/.bitsnoop.com/gfwlist -server=/.bitvise.com/127.0.0.1#5353 -ipset=/.bitvise.com/gfwlist -server=/.bizhat.com/127.0.0.1#5353 -ipset=/.bizhat.com/gfwlist -server=/.bjnewlife.org/127.0.0.1#5353 -ipset=/.bjnewlife.org/gfwlist -server=/.bjs.org/127.0.0.1#5353 -ipset=/.bjs.org/gfwlist -server=/.bjzc.org/127.0.0.1#5353 -ipset=/.bjzc.org/gfwlist -server=/.bl-doujinsouko.com/127.0.0.1#5353 -ipset=/.bl-doujinsouko.com/gfwlist -server=/.blacklogic.com/127.0.0.1#5353 -ipset=/.blacklogic.com/gfwlist -server=/.blackvpn.com/127.0.0.1#5353 -ipset=/.blackvpn.com/gfwlist -server=/.blewpass.com/127.0.0.1#5353 -ipset=/.blewpass.com/gfwlist -server=/.blinkx.com/127.0.0.1#5353 -ipset=/.blinkx.com/gfwlist -server=/.blinw.com/127.0.0.1#5353 -ipset=/.blinw.com/gfwlist -server=/.blip.tv/127.0.0.1#5353 -ipset=/.blip.tv/gfwlist -server=/.blockcn.com/127.0.0.1#5353 -ipset=/.blockcn.com/gfwlist -server=/.blockless.com/127.0.0.1#5353 -ipset=/.blockless.com/gfwlist -server=/.blog.calibre-ebook.com/127.0.0.1#5353 -ipset=/.blog.calibre-ebook.com/gfwlist -server=/.blog.cnyes.com/127.0.0.1#5353 -ipset=/.blog.cnyes.com/gfwlist -server=/.blog.de/127.0.0.1#5353 -ipset=/.blog.de/gfwlist -server=/.blog.exblog.co.jp/127.0.0.1#5353 -ipset=/.blog.exblog.co.jp/gfwlist -server=/.blog.excite.co.jp/127.0.0.1#5353 -ipset=/.blog.excite.co.jp/gfwlist -server=/.blog.expofutures.com/127.0.0.1#5353 -ipset=/.blog.expofutures.com/gfwlist -server=/.blog.fizzik.com/127.0.0.1#5353 -ipset=/.blog.fizzik.com/gfwlist -server=/.blog.foolsmountain.com/127.0.0.1#5353 -ipset=/.blog.foolsmountain.com/gfwlist -server=/.blog.fuckgfw233.org/127.0.0.1#5353 -ipset=/.blog.fuckgfw233.org/gfwlist -server=/.blog.google/127.0.0.1#5353 -ipset=/.blog.google/gfwlist -server=/.blog.inoreader.com/127.0.0.1#5353 -ipset=/.blog.inoreader.com/gfwlist -server=/.blog.jackjia.com/127.0.0.1#5353 -ipset=/.blog.jackjia.com/gfwlist -server=/.blog.jp/127.0.0.1#5353 -ipset=/.blog.jp/gfwlist -server=/.blog.kangye.org/127.0.0.1#5353 -ipset=/.blog.kangye.org/gfwlist -server=/.blog.lester850.info/127.0.0.1#5353 -ipset=/.blog.lester850.info/gfwlist -server=/.blog.martinoei.com/127.0.0.1#5353 -ipset=/.blog.martinoei.com/gfwlist -server=/.blog.ontrac.com/127.0.0.1#5353 -ipset=/.blog.ontrac.com/gfwlist -server=/.blog.pathtosharepoint.com/127.0.0.1#5353 -ipset=/.blog.pathtosharepoint.com/gfwlist -server=/.blog.pentalogic.net/127.0.0.1#5353 -ipset=/.blog.pentalogic.net/gfwlist -server=/.blog.sina.com.tw/127.0.0.1#5353 -ipset=/.blog.sina.com.tw/gfwlist -server=/.blog.sogoo.org/127.0.0.1#5353 -ipset=/.blog.sogoo.org/gfwlist -server=/.blog.soylent.com/127.0.0.1#5353 -ipset=/.blog.soylent.com/gfwlist -server=/.blog.taragana.com/127.0.0.1#5353 -ipset=/.blog.taragana.com/gfwlist -server=/.blog.tiney.com/127.0.0.1#5353 -ipset=/.blog.tiney.com/gfwlist -server=/.blog.xuite.net/127.0.0.1#5353 -ipset=/.blog.xuite.net/gfwlist -server=/.blog.youthwant.com.tw/127.0.0.1#5353 -ipset=/.blog.youthwant.com.tw/gfwlist -server=/.blogblog.com/127.0.0.1#5353 -ipset=/.blogblog.com/gfwlist -server=/.blogcatalog.com/127.0.0.1#5353 -ipset=/.blogcatalog.com/gfwlist -server=/.blogcity.me/127.0.0.1#5353 -ipset=/.blogcity.me/gfwlist -server=/.blogdns.org/127.0.0.1#5353 -ipset=/.blogdns.org/gfwlist -server=/.blogger.com/127.0.0.1#5353 -ipset=/.blogger.com/gfwlist -server=/.blogimg.jp/127.0.0.1#5353 -ipset=/.blogimg.jp/gfwlist -server=/.bloglines.com/127.0.0.1#5353 -ipset=/.bloglines.com/gfwlist -server=/.bloglovin.com/127.0.0.1#5353 -ipset=/.bloglovin.com/gfwlist -server=/.blogs.tampabay.com/127.0.0.1#5353 -ipset=/.blogs.tampabay.com/gfwlist -server=/.blogs.yahoo.co.jp/127.0.0.1#5353 -ipset=/.blogs.yahoo.co.jp/gfwlist -server=/.blogspot.com/127.0.0.1#5353 -ipset=/.blogspot.com/gfwlist -server=/.blogspot.hk/127.0.0.1#5353 -ipset=/.blogspot.hk/gfwlist -server=/.blogspot.jp/127.0.0.1#5353 -ipset=/.blogspot.jp/gfwlist -server=/.blogspot.tw/127.0.0.1#5353 -ipset=/.blogspot.tw/gfwlist -server=/.blogtd.net/127.0.0.1#5353 -ipset=/.blogtd.net/gfwlist -server=/.blogtd.org/127.0.0.1#5353 -ipset=/.blogtd.org/gfwlist -server=/.bloodshed.net/127.0.0.1#5353 -ipset=/.bloodshed.net/gfwlist -server=/.bloomberg.cn/127.0.0.1#5353 -ipset=/.bloomberg.cn/gfwlist -server=/.bloomberg.com/127.0.0.1#5353 -ipset=/.bloomberg.com/gfwlist -server=/.bloomberg.de/127.0.0.1#5353 -ipset=/.bloomberg.de/gfwlist -server=/.bloombergview.com/127.0.0.1#5353 -ipset=/.bloombergview.com/gfwlist -server=/.bloomfortune.com/127.0.0.1#5353 -ipset=/.bloomfortune.com/gfwlist -server=/.blueangellive.com/127.0.0.1#5353 -ipset=/.blueangellive.com/gfwlist -server=/.bmfinn.com/127.0.0.1#5353 -ipset=/.bmfinn.com/gfwlist -server=/.bnews.co/127.0.0.1#5353 -ipset=/.bnews.co/gfwlist -server=/.bnrmetal.com/127.0.0.1#5353 -ipset=/.bnrmetal.com/gfwlist -server=/.boardreader.com/127.0.0.1#5353 -ipset=/.boardreader.com/gfwlist -server=/.bod.asia/127.0.0.1#5353 -ipset=/.bod.asia/gfwlist -server=/.bodog88.com/127.0.0.1#5353 -ipset=/.bodog88.com/gfwlist -server=/.bolehvpn.net/127.0.0.1#5353 -ipset=/.bolehvpn.net/gfwlist -server=/.bolin.netfirms.com/127.0.0.1#5353 -ipset=/.bolin.netfirms.com/gfwlist -server=/.bonbonme.com/127.0.0.1#5353 -ipset=/.bonbonme.com/gfwlist -server=/.bonbonsex.com/127.0.0.1#5353 -ipset=/.bonbonsex.com/gfwlist -server=/.bonfoundation.org/127.0.0.1#5353 -ipset=/.bonfoundation.org/gfwlist -server=/.bongacams.com/127.0.0.1#5353 -ipset=/.bongacams.com/gfwlist -server=/.boobstagram.com/127.0.0.1#5353 -ipset=/.boobstagram.com/gfwlist -server=/.book.com.tw/127.0.0.1#5353 -ipset=/.book.com.tw/gfwlist -server=/.book.zi5.me/127.0.0.1#5353 -ipset=/.book.zi5.me/gfwlist -server=/.bookepub.com/127.0.0.1#5353 -ipset=/.bookepub.com/gfwlist -server=/.books.com.tw/127.0.0.1#5353 -ipset=/.books.com.tw/gfwlist -server=/.booktopia.com.au/127.0.0.1#5353 -ipset=/.booktopia.com.au/gfwlist -server=/.boomssr.com/127.0.0.1#5353 -ipset=/.boomssr.com/gfwlist -server=/.bot.nu/127.0.0.1#5353 -ipset=/.bot.nu/gfwlist -server=/.botanwang.com/127.0.0.1#5353 -ipset=/.botanwang.com/gfwlist -server=/.bowenpress.com/127.0.0.1#5353 -ipset=/.bowenpress.com/gfwlist -server=/.boxpn.com/127.0.0.1#5353 -ipset=/.boxpn.com/gfwlist -server=/.boxun.com/127.0.0.1#5353 -ipset=/.boxun.com/gfwlist -server=/.boxun.tv/127.0.0.1#5353 -ipset=/.boxun.tv/gfwlist -server=/.boxunblog.com/127.0.0.1#5353 -ipset=/.boxunblog.com/gfwlist -server=/.boxunclub.com/127.0.0.1#5353 -ipset=/.boxunclub.com/gfwlist -server=/.boyangu.com/127.0.0.1#5353 -ipset=/.boyangu.com/gfwlist -server=/.boyfriendtv.com/127.0.0.1#5353 -ipset=/.boyfriendtv.com/gfwlist -server=/.boysfood.com/127.0.0.1#5353 -ipset=/.boysfood.com/gfwlist -server=/.boysmaster.com/127.0.0.1#5353 -ipset=/.boysmaster.com/gfwlist -server=/.br.hao123.com/127.0.0.1#5353 -ipset=/.br.hao123.com/gfwlist -server=/.br.st/127.0.0.1#5353 -ipset=/.br.st/gfwlist -server=/.brandonhutchinson.com/127.0.0.1#5353 -ipset=/.brandonhutchinson.com/gfwlist -server=/.braumeister.org/127.0.0.1#5353 -ipset=/.braumeister.org/gfwlist -server=/.bravotube.net/127.0.0.1#5353 -ipset=/.bravotube.net/gfwlist -server=/.brazzers.com/127.0.0.1#5353 -ipset=/.brazzers.com/gfwlist -server=/.break.com/127.0.0.1#5353 -ipset=/.break.com/gfwlist -server=/.breakgfw.com/127.0.0.1#5353 -ipset=/.breakgfw.com/gfwlist -server=/.breaking911.com/127.0.0.1#5353 -ipset=/.breaking911.com/gfwlist -server=/.breakingtweets.com/127.0.0.1#5353 -ipset=/.breakingtweets.com/gfwlist -server=/.breakwall.net/127.0.0.1#5353 -ipset=/.breakwall.net/gfwlist -server=/.brizzly.com/127.0.0.1#5353 -ipset=/.brizzly.com/gfwlist -server=/.brkmd.com/127.0.0.1#5353 -ipset=/.brkmd.com/gfwlist -server=/.broadbook.com/127.0.0.1#5353 -ipset=/.broadbook.com/gfwlist -server=/.broadpressinc.com/127.0.0.1#5353 -ipset=/.broadpressinc.com/gfwlist -server=/.brucewang.net/127.0.0.1#5353 -ipset=/.brucewang.net/gfwlist -server=/.brutaltgp.com/127.0.0.1#5353 -ipset=/.brutaltgp.com/gfwlist -server=/.bt2mag.com/127.0.0.1#5353 -ipset=/.bt2mag.com/gfwlist -server=/.bt95.com/127.0.0.1#5353 -ipset=/.bt95.com/gfwlist -server=/.btaia.com/127.0.0.1#5353 -ipset=/.btaia.com/gfwlist -server=/.btbtav.com/127.0.0.1#5353 -ipset=/.btbtav.com/gfwlist -server=/.btcbank.bank/127.0.0.1#5353 -ipset=/.btcbank.bank/gfwlist -server=/.btctrade.im/127.0.0.1#5353 -ipset=/.btctrade.im/gfwlist -server=/.btdigg.org/127.0.0.1#5353 -ipset=/.btdigg.org/gfwlist -server=/.btku.me/127.0.0.1#5353 -ipset=/.btku.me/gfwlist -server=/.btku.org/127.0.0.1#5353 -ipset=/.btku.org/gfwlist -server=/.btspread.com/127.0.0.1#5353 -ipset=/.btspread.com/gfwlist -server=/.btsynckeys.com/127.0.0.1#5353 -ipset=/.btsynckeys.com/gfwlist -server=/.budaedu.org/127.0.0.1#5353 -ipset=/.budaedu.org/gfwlist -server=/.buddhistchannel.tv/127.0.0.1#5353 -ipset=/.buddhistchannel.tv/gfwlist -server=/.buffered.com/127.0.0.1#5353 -ipset=/.buffered.com/gfwlist -server=/.bullog.org/127.0.0.1#5353 -ipset=/.bullog.org/gfwlist -server=/.bullogger.com/127.0.0.1#5353 -ipset=/.bullogger.com/gfwlist -server=/.bunbunhk.com/127.0.0.1#5353 -ipset=/.bunbunhk.com/gfwlist -server=/.busayari.com/127.0.0.1#5353 -ipset=/.busayari.com/gfwlist -server=/.businessinsider.com/127.0.0.1#5353 -ipset=/.businessinsider.com/gfwlist -server=/.businessweek.com/127.0.0.1#5353 -ipset=/.businessweek.com/gfwlist -server=/.busytrade.com/127.0.0.1#5353 -ipset=/.busytrade.com/gfwlist -server=/.buugaa.com/127.0.0.1#5353 -ipset=/.buugaa.com/gfwlist -server=/.buzzhand.com/127.0.0.1#5353 -ipset=/.buzzhand.com/gfwlist -server=/.buzzhand.net/127.0.0.1#5353 -ipset=/.buzzhand.net/gfwlist -server=/.buzzorange.com/127.0.0.1#5353 -ipset=/.buzzorange.com/gfwlist -server=/.bvpn.com/127.0.0.1#5353 -ipset=/.bvpn.com/gfwlist -server=/.bwsj.hk/127.0.0.1#5353 -ipset=/.bwsj.hk/gfwlist -server=/.bx.in.th/127.0.0.1#5353 -ipset=/.bx.in.th/gfwlist -server=/.bx.tl/127.0.0.1#5353 -ipset=/.bx.tl/gfwlist -server=/.bynet.co.il/127.0.0.1#5353 -ipset=/.bynet.co.il/gfwlist -server=/.c-est-simple.com/127.0.0.1#5353 -ipset=/.c-est-simple.com/gfwlist -server=/.c-spanvideo.org/127.0.0.1#5353 -ipset=/.c-spanvideo.org/gfwlist -server=/.c100tibet.org/127.0.0.1#5353 -ipset=/.c100tibet.org/gfwlist -server=/.c1522.mooo.com/127.0.0.1#5353 -ipset=/.c1522.mooo.com/gfwlist -server=/.c2cx.com/127.0.0.1#5353 -ipset=/.c2cx.com/gfwlist -server=/.cablegatesearch.net/127.0.0.1#5353 -ipset=/.cablegatesearch.net/gfwlist -server=/.cachinese.com/127.0.0.1#5353 -ipset=/.cachinese.com/gfwlist -server=/.cacnw.com/127.0.0.1#5353 -ipset=/.cacnw.com/gfwlist -server=/.cactusvpn.com/127.0.0.1#5353 -ipset=/.cactusvpn.com/gfwlist -server=/.cafepress.com/127.0.0.1#5353 -ipset=/.cafepress.com/gfwlist -server=/.cahr.org.tw/127.0.0.1#5353 -ipset=/.cahr.org.tw/gfwlist -server=/.calebelston.com/127.0.0.1#5353 -ipset=/.calebelston.com/gfwlist -server=/.calgarychinese.ca/127.0.0.1#5353 -ipset=/.calgarychinese.ca/gfwlist -server=/.calgarychinese.com/127.0.0.1#5353 -ipset=/.calgarychinese.com/gfwlist -server=/.calgarychinese.net/127.0.0.1#5353 -ipset=/.calgarychinese.net/gfwlist -server=/.cam4.com/127.0.0.1#5353 -ipset=/.cam4.com/gfwlist -server=/.cam4.jp/127.0.0.1#5353 -ipset=/.cam4.jp/gfwlist -server=/.cam4.sg/127.0.0.1#5353 -ipset=/.cam4.sg/gfwlist -server=/.camfrog.com/127.0.0.1#5353 -ipset=/.camfrog.com/gfwlist -server=/.cams.com/127.0.0.1#5353 -ipset=/.cams.com/gfwlist -server=/.cams.org.sg/127.0.0.1#5353 -ipset=/.cams.org.sg/gfwlist -server=/.canadameet.com/127.0.0.1#5353 -ipset=/.canadameet.com/gfwlist -server=/.canalporno.com/127.0.0.1#5353 -ipset=/.canalporno.com/gfwlist -server=/.canyu.org/127.0.0.1#5353 -ipset=/.canyu.org/gfwlist -server=/.cao.im/127.0.0.1#5353 -ipset=/.cao.im/gfwlist -server=/.caobian.info/127.0.0.1#5353 -ipset=/.caobian.info/gfwlist -server=/.caochangqing.com/127.0.0.1#5353 -ipset=/.caochangqing.com/gfwlist -server=/.cap.org.hk/127.0.0.1#5353 -ipset=/.cap.org.hk/gfwlist -server=/.carabinasypistolas.com/127.0.0.1#5353 -ipset=/.carabinasypistolas.com/gfwlist -server=/.cardinalkungfoundation.org/127.0.0.1#5353 -ipset=/.cardinalkungfoundation.org/gfwlist -server=/.carfax.com/127.0.0.1#5353 -ipset=/.carfax.com/gfwlist -server=/.cari.com.my/127.0.0.1#5353 -ipset=/.cari.com.my/gfwlist -server=/.caribbeancom.com/127.0.0.1#5353 -ipset=/.caribbeancom.com/gfwlist -server=/.carmotorshow.com/127.0.0.1#5353 -ipset=/.carmotorshow.com/gfwlist -server=/.cartoonmovement.com/127.0.0.1#5353 -ipset=/.cartoonmovement.com/gfwlist -server=/.casadeltibetbcn.org/127.0.0.1#5353 -ipset=/.casadeltibetbcn.org/gfwlist -server=/.casatibet.org.mx/127.0.0.1#5353 -ipset=/.casatibet.org.mx/gfwlist -server=/.casino.williamhill.com/127.0.0.1#5353 -ipset=/.casino.williamhill.com/gfwlist -server=/.casinobellini.com/127.0.0.1#5353 -ipset=/.casinobellini.com/gfwlist -server=/.casinoking.com/127.0.0.1#5353 -ipset=/.casinoking.com/gfwlist -server=/.casinoriva.com/127.0.0.1#5353 -ipset=/.casinoriva.com/gfwlist -server=/.castbox.fm/127.0.0.1#5353 -ipset=/.castbox.fm/gfwlist -server=/.catch22.net/127.0.0.1#5353 -ipset=/.catch22.net/gfwlist -server=/.catchgod.com/127.0.0.1#5353 -ipset=/.catchgod.com/gfwlist -server=/.catfightpayperview.xxx/127.0.0.1#5353 -ipset=/.catfightpayperview.xxx/gfwlist -server=/.catholic.org.hk/127.0.0.1#5353 -ipset=/.catholic.org.hk/gfwlist -server=/.catholic.org.tw/127.0.0.1#5353 -ipset=/.catholic.org.tw/gfwlist -server=/.cathvoice.org.tw/127.0.0.1#5353 -ipset=/.cathvoice.org.tw/gfwlist -server=/.cattt.com/127.0.0.1#5353 -ipset=/.cattt.com/gfwlist -server=/.cbc.ca/127.0.0.1#5353 -ipset=/.cbc.ca/gfwlist -server=/.cbs.ntu.edu.tw/127.0.0.1#5353 -ipset=/.cbs.ntu.edu.tw/gfwlist -server=/.cbtc.org.hk/127.0.0.1#5353 -ipset=/.cbtc.org.hk/gfwlist -server=/.cccat.cc/127.0.0.1#5353 -ipset=/.cccat.cc/gfwlist -server=/.cccat.co/127.0.0.1#5353 -ipset=/.cccat.co/gfwlist -server=/.ccdtr.org/127.0.0.1#5353 -ipset=/.ccdtr.org/gfwlist -server=/.cchere.com/127.0.0.1#5353 -ipset=/.cchere.com/gfwlist -server=/.ccim.org/127.0.0.1#5353 -ipset=/.ccim.org/gfwlist -server=/.cclife.ca/127.0.0.1#5353 -ipset=/.cclife.ca/gfwlist -server=/.cclife.org/127.0.0.1#5353 -ipset=/.cclife.org/gfwlist -server=/.cclifefl.org/127.0.0.1#5353 -ipset=/.cclifefl.org/gfwlist -server=/.ccthere.com/127.0.0.1#5353 -ipset=/.ccthere.com/gfwlist -server=/.cctmweb.net/127.0.0.1#5353 -ipset=/.cctmweb.net/gfwlist -server=/.ccue.ca/127.0.0.1#5353 -ipset=/.ccue.ca/gfwlist -server=/.ccue.com/127.0.0.1#5353 -ipset=/.ccue.com/gfwlist -server=/.ccvoice.ca/127.0.0.1#5353 -ipset=/.ccvoice.ca/gfwlist -server=/.ccw.org.tw/127.0.0.1#5353 -ipset=/.ccw.org.tw/gfwlist -server=/.cdbook.org/127.0.0.1#5353 -ipset=/.cdbook.org/gfwlist -server=/.cdcparty.com/127.0.0.1#5353 -ipset=/.cdcparty.com/gfwlist -server=/.cdef.org/127.0.0.1#5353 -ipset=/.cdef.org/gfwlist -server=/.cdig.info/127.0.0.1#5353 -ipset=/.cdig.info/gfwlist -server=/.cdjp.org/127.0.0.1#5353 -ipset=/.cdjp.org/gfwlist -server=/.cdn-images.mailchimp.com/127.0.0.1#5353 -ipset=/.cdn-images.mailchimp.com/gfwlist -server=/.cdn.assets.lfpcontent.com/127.0.0.1#5353 -ipset=/.cdn.assets.lfpcontent.com/gfwlist -server=/.cdn.helixstudios.net/127.0.0.1#5353 -ipset=/.cdn.helixstudios.net/gfwlist -server=/.cdn.printfriendly.com/127.0.0.1#5353 -ipset=/.cdn.printfriendly.com/gfwlist -server=/.cdn.seatguru.com/127.0.0.1#5353 -ipset=/.cdn.seatguru.com/gfwlist -server=/.cdn.softlayer.net/127.0.0.1#5353 -ipset=/.cdn.softlayer.net/gfwlist -server=/.cdn.v2ex.com/127.0.0.1#5353 -ipset=/.cdn.v2ex.com/gfwlist -server=/.cdn1.lp.saboom.com/127.0.0.1#5353 -ipset=/.cdn1.lp.saboom.com/gfwlist -server=/.cdnews.com.tw/127.0.0.1#5353 -ipset=/.cdnews.com.tw/gfwlist -server=/.cdninstagram.com/127.0.0.1#5353 -ipset=/.cdninstagram.com/gfwlist -server=/.cdp1989.org/127.0.0.1#5353 -ipset=/.cdp1989.org/gfwlist -server=/.cdp1998.org/127.0.0.1#5353 -ipset=/.cdp1998.org/gfwlist -server=/.cdp2006.org/127.0.0.1#5353 -ipset=/.cdp2006.org/gfwlist -server=/.cdpa.url.tw/127.0.0.1#5353 -ipset=/.cdpa.url.tw/gfwlist -server=/.cdpeu.org/127.0.0.1#5353 -ipset=/.cdpeu.org/gfwlist -server=/.cdpusa.org/127.0.0.1#5353 -ipset=/.cdpusa.org/gfwlist -server=/.cdpweb.org/127.0.0.1#5353 -ipset=/.cdpweb.org/gfwlist -server=/.cdpwu.org/127.0.0.1#5353 -ipset=/.cdpwu.org/gfwlist -server=/.cdw.com/127.0.0.1#5353 -ipset=/.cdw.com/gfwlist -server=/.cecc.gov/127.0.0.1#5353 -ipset=/.cecc.gov/gfwlist -server=/.cellulo.info/127.0.0.1#5353 -ipset=/.cellulo.info/gfwlist -server=/.cenews.eu/127.0.0.1#5353 -ipset=/.cenews.eu/gfwlist -server=/.centauro.com.br/127.0.0.1#5353 -ipset=/.centauro.com.br/gfwlist -server=/.centerforhumanreprod.com/127.0.0.1#5353 -ipset=/.centerforhumanreprod.com/gfwlist -server=/.centralnation.com/127.0.0.1#5353 -ipset=/.centralnation.com/gfwlist -server=/.centurys.net/127.0.0.1#5353 -ipset=/.centurys.net/gfwlist -server=/.certificate-transparency.org/127.0.0.1#5353 -ipset=/.certificate-transparency.org/gfwlist -server=/.certificate.revocationcheck.com/127.0.0.1#5353 -ipset=/.certificate.revocationcheck.com/gfwlist -server=/.cfhks.org.hk/127.0.0.1#5353 -ipset=/.cfhks.org.hk/gfwlist -server=/.cfos.de/127.0.0.1#5353 -ipset=/.cfos.de/gfwlist -server=/.cftfc.com/127.0.0.1#5353 -ipset=/.cftfc.com/gfwlist -server=/.cgdepot.org/127.0.0.1#5353 -ipset=/.cgdepot.org/gfwlist -server=/.cgst.edu/127.0.0.1#5353 -ipset=/.cgst.edu/gfwlist -server=/.ch.shvoong.com/127.0.0.1#5353 -ipset=/.ch.shvoong.com/gfwlist -server=/.change.org/127.0.0.1#5353 -ipset=/.change.org/gfwlist -server=/.changeip.name/127.0.0.1#5353 -ipset=/.changeip.name/gfwlist -server=/.changeip.net/127.0.0.1#5353 -ipset=/.changeip.net/gfwlist -server=/.changeip.org/127.0.0.1#5353 -ipset=/.changeip.org/gfwlist -server=/.changp.com/127.0.0.1#5353 -ipset=/.changp.com/gfwlist -server=/.changsa.net/127.0.0.1#5353 -ipset=/.changsa.net/gfwlist -server=/.chaoex.com/127.0.0.1#5353 -ipset=/.chaoex.com/gfwlist -server=/.chapm25.com/127.0.0.1#5353 -ipset=/.chapm25.com/gfwlist -server=/.chatnook.com/127.0.0.1#5353 -ipset=/.chatnook.com/gfwlist -server=/.chaturbate.com/127.0.0.1#5353 -ipset=/.chaturbate.com/gfwlist -server=/.chengmingmag.com/127.0.0.1#5353 -ipset=/.chengmingmag.com/gfwlist -server=/.chenguangcheng.com/127.0.0.1#5353 -ipset=/.chenguangcheng.com/gfwlist -server=/.chenpokong.com/127.0.0.1#5353 -ipset=/.chenpokong.com/gfwlist -server=/.chenpokong.net/127.0.0.1#5353 -ipset=/.chenpokong.net/gfwlist -server=/.chenshan20042005.wordpress.com/127.0.0.1#5353 -ipset=/.chenshan20042005.wordpress.com/gfwlist -server=/.cherrysave.com/127.0.0.1#5353 -ipset=/.cherrysave.com/gfwlist -server=/.chhongbi.org/127.0.0.1#5353 -ipset=/.chhongbi.org/gfwlist -server=/.chicagoncmtv.com/127.0.0.1#5353 -ipset=/.chicagoncmtv.com/gfwlist -server=/.china-mmm.jp.net/127.0.0.1#5353 -ipset=/.china-mmm.jp.net/gfwlist -server=/.china-mmm.net/127.0.0.1#5353 -ipset=/.china-mmm.net/gfwlist -server=/.china-mmm.sa.com/127.0.0.1#5353 -ipset=/.china-mmm.sa.com/gfwlist -server=/.china-review.com.ua/127.0.0.1#5353 -ipset=/.china-review.com.ua/gfwlist -server=/.china-week.com/127.0.0.1#5353 -ipset=/.china-week.com/gfwlist -server=/.china.hket.com/127.0.0.1#5353 -ipset=/.china.hket.com/gfwlist -server=/.china101.com/127.0.0.1#5353 -ipset=/.china101.com/gfwlist -server=/.china18.org/127.0.0.1#5353 -ipset=/.china18.org/gfwlist -server=/.china21.com/127.0.0.1#5353 -ipset=/.china21.com/gfwlist -server=/.china21.org/127.0.0.1#5353 -ipset=/.china21.org/gfwlist -server=/.china5000.us/127.0.0.1#5353 -ipset=/.china5000.us/gfwlist -server=/.chinaaffairs.org/127.0.0.1#5353 -ipset=/.chinaaffairs.org/gfwlist -server=/.chinaaid.me/127.0.0.1#5353 -ipset=/.chinaaid.me/gfwlist -server=/.chinaaid.net/127.0.0.1#5353 -ipset=/.chinaaid.net/gfwlist -server=/.chinaaid.org/127.0.0.1#5353 -ipset=/.chinaaid.org/gfwlist -server=/.chinaaid.us/127.0.0.1#5353 -ipset=/.chinaaid.us/gfwlist -server=/.chinachange.org/127.0.0.1#5353 -ipset=/.chinachange.org/gfwlist -server=/.chinachannel.hk/127.0.0.1#5353 -ipset=/.chinachannel.hk/gfwlist -server=/.chinacitynews.be/127.0.0.1#5353 -ipset=/.chinacitynews.be/gfwlist -server=/.chinacomments.org/127.0.0.1#5353 -ipset=/.chinacomments.org/gfwlist -server=/.chinadialogue.net/127.0.0.1#5353 -ipset=/.chinadialogue.net/gfwlist -server=/.chinadigitaltimes.net/127.0.0.1#5353 -ipset=/.chinadigitaltimes.net/gfwlist -server=/.chinaelections.org/127.0.0.1#5353 -ipset=/.chinaelections.org/gfwlist -server=/.chinaeweekly.com/127.0.0.1#5353 -ipset=/.chinaeweekly.com/gfwlist -server=/.chinafreepress.org/127.0.0.1#5353 -ipset=/.chinafreepress.org/gfwlist -server=/.chinagate.com/127.0.0.1#5353 -ipset=/.chinagate.com/gfwlist -server=/.chinageeks.org/127.0.0.1#5353 -ipset=/.chinageeks.org/gfwlist -server=/.chinagfw.org/127.0.0.1#5353 -ipset=/.chinagfw.org/gfwlist -server=/.chinagonet.com/127.0.0.1#5353 -ipset=/.chinagonet.com/gfwlist -server=/.chinagreenparty.org/127.0.0.1#5353 -ipset=/.chinagreenparty.org/gfwlist -server=/.chinahorizon.org/127.0.0.1#5353 -ipset=/.chinahorizon.org/gfwlist -server=/.chinahush.com/127.0.0.1#5353 -ipset=/.chinahush.com/gfwlist -server=/.chinainperspective.com/127.0.0.1#5353 -ipset=/.chinainperspective.com/gfwlist -server=/.chinainterimgov.org/127.0.0.1#5353 -ipset=/.chinainterimgov.org/gfwlist -server=/.chinalaborwatch.org/127.0.0.1#5353 -ipset=/.chinalaborwatch.org/gfwlist -server=/.chinalawandpolicy.com/127.0.0.1#5353 -ipset=/.chinalawandpolicy.com/gfwlist -server=/.chinalawtranslate.com/127.0.0.1#5353 -ipset=/.chinalawtranslate.com/gfwlist -server=/.chinamule.com/127.0.0.1#5353 -ipset=/.chinamule.com/gfwlist -server=/.chinamz.org/127.0.0.1#5353 -ipset=/.chinamz.org/gfwlist -server=/.chinapress.com.my/127.0.0.1#5353 -ipset=/.chinapress.com.my/gfwlist -server=/.chinarightsia.org/127.0.0.1#5353 -ipset=/.chinarightsia.org/gfwlist -server=/.chinasocialdemocraticparty.com/127.0.0.1#5353 -ipset=/.chinasocialdemocraticparty.com/gfwlist -server=/.chinasoul.org/127.0.0.1#5353 -ipset=/.chinasoul.org/gfwlist -server=/.chinasucks.net/127.0.0.1#5353 -ipset=/.chinasucks.net/gfwlist -server=/.chinatopsex.com/127.0.0.1#5353 -ipset=/.chinatopsex.com/gfwlist -server=/.chinatown.com.au/127.0.0.1#5353 -ipset=/.chinatown.com.au/gfwlist -server=/.chinatweeps.com/127.0.0.1#5353 -ipset=/.chinatweeps.com/gfwlist -server=/.chinaview.wordpress.com/127.0.0.1#5353 -ipset=/.chinaview.wordpress.com/gfwlist -server=/.chinaway.org/127.0.0.1#5353 -ipset=/.chinaway.org/gfwlist -server=/.chinaworker.info/127.0.0.1#5353 -ipset=/.chinaworker.info/gfwlist -server=/.chinayouth.org.hk/127.0.0.1#5353 -ipset=/.chinayouth.org.hk/gfwlist -server=/.chinayuanmin.org/127.0.0.1#5353 -ipset=/.chinayuanmin.org/gfwlist -server=/.chinaz.com/127.0.0.1#5353 -ipset=/.chinaz.com/gfwlist -server=/.chinese-hermit.net/127.0.0.1#5353 -ipset=/.chinese-hermit.net/gfwlist -server=/.chinese-leaders.org/127.0.0.1#5353 -ipset=/.chinese-leaders.org/gfwlist -server=/.chinese-memorial.org/127.0.0.1#5353 -ipset=/.chinese-memorial.org/gfwlist -server=/.chinese.donga.com/127.0.0.1#5353 -ipset=/.chinese.donga.com/gfwlist -server=/.chinese.engadget.com/127.0.0.1#5353 -ipset=/.chinese.engadget.com/gfwlist -server=/.chinese.irib.ir/127.0.0.1#5353 -ipset=/.chinese.irib.ir/gfwlist -server=/.chinese.soifind.com/127.0.0.1#5353 -ipset=/.chinese.soifind.com/gfwlist -server=/.chinesedaily.com/127.0.0.1#5353 -ipset=/.chinesedaily.com/gfwlist -server=/.chinesedailynews.com/127.0.0.1#5353 -ipset=/.chinesedailynews.com/gfwlist -server=/.chinesedemocracy.com/127.0.0.1#5353 -ipset=/.chinesedemocracy.com/gfwlist -server=/.chinesegay.org/127.0.0.1#5353 -ipset=/.chinesegay.org/gfwlist -server=/.chinesen.de/127.0.0.1#5353 -ipset=/.chinesen.de/gfwlist -server=/.chinesepen.org/127.0.0.1#5353 -ipset=/.chinesepen.org/gfwlist -server=/.chineseupress.com/127.0.0.1#5353 -ipset=/.chineseupress.com/gfwlist -server=/.chingcheong.com/127.0.0.1#5353 -ipset=/.chingcheong.com/gfwlist -server=/.chinman.net/127.0.0.1#5353 -ipset=/.chinman.net/gfwlist -server=/.chithu.org/127.0.0.1#5353 -ipset=/.chithu.org/gfwlist -server=/.chn.chosun.com/127.0.0.1#5353 -ipset=/.chn.chosun.com/gfwlist -server=/.chobit.cc/127.0.0.1#5353 -ipset=/.chobit.cc/gfwlist -server=/.chrdnet.com/127.0.0.1#5353 -ipset=/.chrdnet.com/gfwlist -server=/.christianfreedom.org/127.0.0.1#5353 -ipset=/.christianfreedom.org/gfwlist -server=/.christianstudy.com/127.0.0.1#5353 -ipset=/.christianstudy.com/gfwlist -server=/.christiantimes.org.hk/127.0.0.1#5353 -ipset=/.christiantimes.org.hk/gfwlist -server=/.chrlawyers.hk/127.0.0.1#5353 -ipset=/.chrlawyers.hk/gfwlist -server=/.chrome.com/127.0.0.1#5353 -ipset=/.chrome.com/gfwlist -server=/.chromecast.com/127.0.0.1#5353 -ipset=/.chromecast.com/gfwlist -server=/.chromeexperiments.com/127.0.0.1#5353 -ipset=/.chromeexperiments.com/gfwlist -server=/.chromercise.com/127.0.0.1#5353 -ipset=/.chromercise.com/gfwlist -server=/.chromestatus.com/127.0.0.1#5353 -ipset=/.chromestatus.com/gfwlist -server=/.chromium.org/127.0.0.1#5353 -ipset=/.chromium.org/gfwlist -server=/.chuang-yen.org/127.0.0.1#5353 -ipset=/.chuang-yen.org/gfwlist -server=/.chubold.com/127.0.0.1#5353 -ipset=/.chubold.com/gfwlist -server=/.chubun.com/127.0.0.1#5353 -ipset=/.chubun.com/gfwlist -server=/.chuizi.net/127.0.0.1#5353 -ipset=/.chuizi.net/gfwlist -server=/.chukuang.gov.tw/127.0.0.1#5353 -ipset=/.chukuang.gov.tw/gfwlist -server=/.chushigangdrug.ch/127.0.0.1#5353 -ipset=/.chushigangdrug.ch/gfwlist -server=/.cienen.com/127.0.0.1#5353 -ipset=/.cienen.com/gfwlist -server=/.cineastentreff.de/127.0.0.1#5353 -ipset=/.cineastentreff.de/gfwlist -server=/.cipfg.org/127.0.0.1#5353 -ipset=/.cipfg.org/gfwlist -server=/.circlethebayfortibet.org/127.0.0.1#5353 -ipset=/.circlethebayfortibet.org/gfwlist -server=/.cirosantilli.com/127.0.0.1#5353 -ipset=/.cirosantilli.com/gfwlist -server=/.citizencn.com/127.0.0.1#5353 -ipset=/.citizencn.com/gfwlist -server=/.citizenlab.org/127.0.0.1#5353 -ipset=/.citizenlab.org/gfwlist -server=/.citizenscommission.hk/127.0.0.1#5353 -ipset=/.citizenscommission.hk/gfwlist -server=/.citizensradio.org/127.0.0.1#5353 -ipset=/.citizensradio.org/gfwlist -server=/.city365.ca/127.0.0.1#5353 -ipset=/.city365.ca/gfwlist -server=/.city9x.com/127.0.0.1#5353 -ipset=/.city9x.com/gfwlist -server=/.citypopulation.de/127.0.0.1#5353 -ipset=/.citypopulation.de/gfwlist -server=/.civicparty.hk/127.0.0.1#5353 -ipset=/.civicparty.hk/gfwlist -server=/.civildisobediencemovement.org/127.0.0.1#5353 -ipset=/.civildisobediencemovement.org/gfwlist -server=/.civilhrfront.org/127.0.0.1#5353 -ipset=/.civilhrfront.org/gfwlist -server=/.civiliangunner.com/127.0.0.1#5353 -ipset=/.civiliangunner.com/gfwlist -server=/.civilmedia.tw/127.0.0.1#5353 -ipset=/.civilmedia.tw/gfwlist -server=/.ck101.com/127.0.0.1#5353 -ipset=/.ck101.com/gfwlist -server=/.cl.d0z.net/127.0.0.1#5353 -ipset=/.cl.d0z.net/gfwlist -server=/.classicalguitarblog.net/127.0.0.1#5353 -ipset=/.classicalguitarblog.net/gfwlist -server=/.clb.org.hk/127.0.0.1#5353 -ipset=/.clb.org.hk/gfwlist -server=/.cldr.unicode.org/127.0.0.1#5353 -ipset=/.cldr.unicode.org/gfwlist -server=/.cleansite.biz/127.0.0.1#5353 -ipset=/.cleansite.biz/gfwlist -server=/.cleansite.info/127.0.0.1#5353 -ipset=/.cleansite.info/gfwlist -server=/.cleansite.us/127.0.0.1#5353 -ipset=/.cleansite.us/gfwlist -server=/.clearharmony.net/127.0.0.1#5353 -ipset=/.clearharmony.net/gfwlist -server=/.clearsurance.com/127.0.0.1#5353 -ipset=/.clearsurance.com/gfwlist -server=/.clearwisdom.net/127.0.0.1#5353 -ipset=/.clearwisdom.net/gfwlist -server=/.clementine-player.org/127.0.0.1#5353 -ipset=/.clementine-player.org/gfwlist -server=/.clientservices.googleapis.com/127.0.0.1#5353 -ipset=/.clientservices.googleapis.com/gfwlist -server=/.cling.omy.sg/127.0.0.1#5353 -ipset=/.cling.omy.sg/gfwlist -server=/.clinica-tibet.ru/127.0.0.1#5353 -ipset=/.clinica-tibet.ru/gfwlist -server=/.clipfish.de/127.0.0.1#5353 -ipset=/.clipfish.de/gfwlist -server=/.cloakpoint.com/127.0.0.1#5353 -ipset=/.cloakpoint.com/gfwlist -server=/.cloud.mail.ru/127.0.0.1#5353 -ipset=/.cloud.mail.ru/gfwlist -server=/.club1069.com/127.0.0.1#5353 -ipset=/.club1069.com/gfwlist -server=/.cmcn.org/127.0.0.1#5353 -ipset=/.cmcn.org/gfwlist -server=/.cmi.org.tw/127.0.0.1#5353 -ipset=/.cmi.org.tw/gfwlist -server=/.cmp.hku.hk/127.0.0.1#5353 -ipset=/.cmp.hku.hk/gfwlist -server=/.cms.gov/127.0.0.1#5353 -ipset=/.cms.gov/gfwlist -server=/.cmule.com/127.0.0.1#5353 -ipset=/.cmule.com/gfwlist -server=/.cmule.org/127.0.0.1#5353 -ipset=/.cmule.org/gfwlist -server=/.cmx.im/127.0.0.1#5353 -ipset=/.cmx.im/gfwlist -server=/.cn-proxy.com/127.0.0.1#5353 -ipset=/.cn-proxy.com/gfwlist -server=/.cn.calameo.com/127.0.0.1#5353 -ipset=/.cn.calameo.com/gfwlist -server=/.cn.dayabook.com/127.0.0.1#5353 -ipset=/.cn.dayabook.com/gfwlist -server=/.cn.fmnnow.com/127.0.0.1#5353 -ipset=/.cn.fmnnow.com/gfwlist -server=/.cn.freeones.com/127.0.0.1#5353 -ipset=/.cn.freeones.com/gfwlist -server=/.cn.gravatar.com/127.0.0.1#5353 -ipset=/.cn.gravatar.com/gfwlist -server=/.cn.ibtimes.com/127.0.0.1#5353 -ipset=/.cn.ibtimes.com/gfwlist -server=/.cn.nytstyle.com/127.0.0.1#5353 -ipset=/.cn.nytstyle.com/gfwlist -server=/.cn.sandscotaicentral.com/127.0.0.1#5353 -ipset=/.cn.sandscotaicentral.com/gfwlist -server=/.cn.shafaqna.com/127.0.0.1#5353 -ipset=/.cn.shafaqna.com/gfwlist -server=/.cn.thegay.com/127.0.0.1#5353 -ipset=/.cn.thegay.com/gfwlist -server=/.cn.uncyclopedia.wikia.com/127.0.0.1#5353 -ipset=/.cn.uncyclopedia.wikia.com/gfwlist -server=/.cn.uptodown.com/127.0.0.1#5353 -ipset=/.cn.uptodown.com/gfwlist -server=/.cn.v2ex.com/127.0.0.1#5353 -ipset=/.cn.v2ex.com/gfwlist -server=/.cn.voa.mobi/127.0.0.1#5353 -ipset=/.cn.voa.mobi/gfwlist -server=/.cn2.streetvoice.com/127.0.0.1#5353 -ipset=/.cn2.streetvoice.com/gfwlist -server=/.cn6.eu/127.0.0.1#5353 -ipset=/.cn6.eu/gfwlist -server=/.cna.com.tw/127.0.0.1#5353 -ipset=/.cna.com.tw/gfwlist -server=/.cnabc.com/127.0.0.1#5353 -ipset=/.cnabc.com/gfwlist -server=/.cnbbnews.wordpress.com/127.0.0.1#5353 -ipset=/.cnbbnews.wordpress.com/gfwlist -server=/.cnd.org/127.0.0.1#5353 -ipset=/.cnd.org/gfwlist -server=/.cnex.org.cn/127.0.0.1#5353 -ipset=/.cnex.org.cn/gfwlist -server=/.cnineu.com/127.0.0.1#5353 -ipset=/.cnineu.com/gfwlist -server=/.cnpolitics.org/127.0.0.1#5353 -ipset=/.cnpolitics.org/gfwlist -server=/.cnproxy.com/127.0.0.1#5353 -ipset=/.cnproxy.com/gfwlist -server=/.co.ng.mil/127.0.0.1#5353 -ipset=/.co.ng.mil/gfwlist -server=/.coat.co.jp/127.0.0.1#5353 -ipset=/.coat.co.jp/gfwlist -server=/.cochina.co/127.0.0.1#5353 -ipset=/.cochina.co/gfwlist -server=/.cochina.org/127.0.0.1#5353 -ipset=/.cochina.org/gfwlist -server=/.codeshare.io/127.0.0.1#5353 -ipset=/.codeshare.io/gfwlist -server=/.codeskulptor.org/127.0.0.1#5353 -ipset=/.codeskulptor.org/gfwlist -server=/.coin2co.in/127.0.0.1#5353 -ipset=/.coin2co.in/gfwlist -server=/.coinegg.com/127.0.0.1#5353 -ipset=/.coinegg.com/gfwlist -server=/.coinex.com/127.0.0.1#5353 -ipset=/.coinex.com/gfwlist -server=/.coingi.com/127.0.0.1#5353 -ipset=/.coingi.com/gfwlist -server=/.coinrail.co.kr/127.0.0.1#5353 -ipset=/.coinrail.co.kr/gfwlist -server=/.cointobe.com/127.0.0.1#5353 -ipset=/.cointobe.com/gfwlist -server=/.coinut.com/127.0.0.1#5353 -ipset=/.coinut.com/gfwlist -server=/.collateralmurder.com/127.0.0.1#5353 -ipset=/.collateralmurder.com/gfwlist -server=/.collateralmurder.org/127.0.0.1#5353 -ipset=/.collateralmurder.org/gfwlist -server=/.com.google/127.0.0.1#5353 -ipset=/.com.google/gfwlist -server=/.comefromchina.com/127.0.0.1#5353 -ipset=/.comefromchina.com/gfwlist -server=/.comic-mega.me/127.0.0.1#5353 -ipset=/.comic-mega.me/gfwlist -server=/.commandarms.com/127.0.0.1#5353 -ipset=/.commandarms.com/gfwlist -server=/.commentshk.com/127.0.0.1#5353 -ipset=/.commentshk.com/gfwlist -server=/.communistcrimes.org/127.0.0.1#5353 -ipset=/.communistcrimes.org/gfwlist -server=/.community.windy.com/127.0.0.1#5353 -ipset=/.community.windy.com/gfwlist -server=/.communitychoicecu.com/127.0.0.1#5353 -ipset=/.communitychoicecu.com/gfwlist -server=/.compileheart.com/127.0.0.1#5353 -ipset=/.compileheart.com/gfwlist -server=/.compress.to/127.0.0.1#5353 -ipset=/.compress.to/gfwlist -server=/.connect.facebook.net/127.0.0.1#5353 -ipset=/.connect.facebook.net/gfwlist -server=/.connectivitycheck.gstatic.com/127.0.0.1#5353 -ipset=/.connectivitycheck.gstatic.com/gfwlist -server=/.conoha.jp/127.0.0.1#5353 -ipset=/.conoha.jp/gfwlist -server=/.contactmagazine.net/127.0.0.1#5353 -ipset=/.contactmagazine.net/gfwlist -server=/.contests.twilio.com/127.0.0.1#5353 -ipset=/.contests.twilio.com/gfwlist -server=/.convio.net/127.0.0.1#5353 -ipset=/.convio.net/gfwlist -server=/.coobay.com/127.0.0.1#5353 -ipset=/.coobay.com/gfwlist -server=/.coolaler.com/127.0.0.1#5353 -ipset=/.coolaler.com/gfwlist -server=/.coolder.com/127.0.0.1#5353 -ipset=/.coolder.com/gfwlist -server=/.coolloud.org.tw/127.0.0.1#5353 -ipset=/.coolloud.org.tw/gfwlist -server=/.coolncute.com/127.0.0.1#5353 -ipset=/.coolncute.com/gfwlist -server=/.coolstuffinc.com/127.0.0.1#5353 -ipset=/.coolstuffinc.com/gfwlist -server=/.corumcollege.com/127.0.0.1#5353 -ipset=/.corumcollege.com/gfwlist -server=/.cos-moe.com/127.0.0.1#5353 -ipset=/.cos-moe.com/gfwlist -server=/.cosmic.monar.ch/127.0.0.1#5353 -ipset=/.cosmic.monar.ch/gfwlist -server=/.cosplayjav.pl/127.0.0.1#5353 -ipset=/.cosplayjav.pl/gfwlist -server=/.costco.com/127.0.0.1#5353 -ipset=/.costco.com/gfwlist -server=/.cotweet.com/127.0.0.1#5353 -ipset=/.cotweet.com/gfwlist -server=/.coursehero.com/127.0.0.1#5353 -ipset=/.coursehero.com/gfwlist -server=/.cpj.org/127.0.0.1#5353 -ipset=/.cpj.org/gfwlist -server=/.cq99.us/127.0.0.1#5353 -ipset=/.cq99.us/gfwlist -server=/.crackle.com/127.0.0.1#5353 -ipset=/.crackle.com/gfwlist -server=/.crazys.cc/127.0.0.1#5353 -ipset=/.crazys.cc/gfwlist -server=/.crazyshit.com/127.0.0.1#5353 -ipset=/.crazyshit.com/gfwlist -server=/.crchina.org/127.0.0.1#5353 -ipset=/.crchina.org/gfwlist -server=/.crd-net.org/127.0.0.1#5353 -ipset=/.crd-net.org/gfwlist -server=/.creaders.net/127.0.0.1#5353 -ipset=/.creaders.net/gfwlist -server=/.creadersnet.com/127.0.0.1#5353 -ipset=/.creadersnet.com/gfwlist -server=/.creativelab5.com/127.0.0.1#5353 -ipset=/.creativelab5.com/gfwlist -server=/.cristyli.com/127.0.0.1#5353 -ipset=/.cristyli.com/gfwlist -server=/.crocotube.com/127.0.0.1#5353 -ipset=/.crocotube.com/gfwlist -server=/.cromotc.nat.gov.tw/127.0.0.1#5353 -ipset=/.cromotc.nat.gov.tw/gfwlist -server=/.crossfire.co.kr/127.0.0.1#5353 -ipset=/.crossfire.co.kr/gfwlist -server=/.crossthewall.net/127.0.0.1#5353 -ipset=/.crossthewall.net/gfwlist -server=/.crossvpn.net/127.0.0.1#5353 -ipset=/.crossvpn.net/gfwlist -server=/.crrev.com/127.0.0.1#5353 -ipset=/.crrev.com/gfwlist -server=/.crucial.com/127.0.0.1#5353 -ipset=/.crucial.com/gfwlist -server=/.csdparty.com/127.0.0.1#5353 -ipset=/.csdparty.com/gfwlist -server=/.csi.gstatic.com/127.0.0.1#5353 -ipset=/.csi.gstatic.com/gfwlist -server=/.css.pixnet.in/127.0.0.1#5353 -ipset=/.css.pixnet.in/gfwlist -server=/.csuchen.de/127.0.0.1#5353 -ipset=/.csuchen.de/gfwlist -server=/.csw.org.uk/127.0.0.1#5353 -ipset=/.csw.org.uk/gfwlist -server=/.ct.org.tw/127.0.0.1#5353 -ipset=/.ct.org.tw/gfwlist -server=/.ctao.org/127.0.0.1#5353 -ipset=/.ctao.org/gfwlist -server=/.ctfriend.net/127.0.0.1#5353 -ipset=/.ctfriend.net/gfwlist -server=/.ctitv.com.tw/127.0.0.1#5353 -ipset=/.ctitv.com.tw/gfwlist -server=/.cts.com.tw/127.0.0.1#5353 -ipset=/.cts.com.tw/gfwlist -server=/.cuihua.org/127.0.0.1#5353 -ipset=/.cuihua.org/gfwlist -server=/.cuiweiping.net/127.0.0.1#5353 -ipset=/.cuiweiping.net/gfwlist -server=/.culture.tw/127.0.0.1#5353 -ipset=/.culture.tw/gfwlist -server=/.cumlouder.com/127.0.0.1#5353 -ipset=/.cumlouder.com/gfwlist -server=/.curvefish.com/127.0.0.1#5353 -ipset=/.curvefish.com/gfwlist -server=/.cusu.hk/127.0.0.1#5353 -ipset=/.cusu.hk/gfwlist -server=/.cutscenes.net/127.0.0.1#5353 -ipset=/.cutscenes.net/gfwlist -server=/.cw.com.tw/127.0.0.1#5353 -ipset=/.cw.com.tw/gfwlist -server=/.cwb.gov.tw/127.0.0.1#5353 -ipset=/.cwb.gov.tw/gfwlist -server=/.cyberghost.natado.com/127.0.0.1#5353 -ipset=/.cyberghost.natado.com/gfwlist -server=/.cyberghostvpn.com/127.0.0.1#5353 -ipset=/.cyberghostvpn.com/gfwlist -server=/.cycab.gov.tw/127.0.0.1#5353 -ipset=/.cycab.gov.tw/gfwlist -server=/.cynscribe.com/127.0.0.1#5353 -ipset=/.cynscribe.com/gfwlist -server=/.cytode.us/127.0.0.1#5353 -ipset=/.cytode.us/gfwlist -server=/.d-fukyu.com/127.0.0.1#5353 -ipset=/.d-fukyu.com/gfwlist -server=/.d100.net/127.0.0.1#5353 -ipset=/.d100.net/gfwlist -server=/.d1b183sg0nvnuh.cloudfront.net/127.0.0.1#5353 -ipset=/.d1b183sg0nvnuh.cloudfront.net/gfwlist -server=/.d1c37gjwa26taa.cloudfront.net/127.0.0.1#5353 -ipset=/.d1c37gjwa26taa.cloudfront.net/gfwlist -server=/.d2bay.com/127.0.0.1#5353 -ipset=/.d2bay.com/gfwlist -server=/.d2pass.com/127.0.0.1#5353 -ipset=/.d2pass.com/gfwlist -server=/.d3c33hcgiwev3.cloudfront.net/127.0.0.1#5353 -ipset=/.d3c33hcgiwev3.cloudfront.net/gfwlist -server=/.d3rhr7kgmtrq1v.cloudfront.net/127.0.0.1#5353 -ipset=/.d3rhr7kgmtrq1v.cloudfront.net/gfwlist -server=/.dabr.co.uk/127.0.0.1#5353 -ipset=/.dabr.co.uk/gfwlist -server=/.dabr.eu/127.0.0.1#5353 -ipset=/.dabr.eu/gfwlist -server=/.dabr.me/127.0.0.1#5353 -ipset=/.dabr.me/gfwlist -server=/.dabr.mobi/127.0.0.1#5353 -ipset=/.dabr.mobi/gfwlist -server=/.dadazim.com/127.0.0.1#5353 -ipset=/.dadazim.com/gfwlist -server=/.dadi360.com/127.0.0.1#5353 -ipset=/.dadi360.com/gfwlist -server=/.dafabet.com/127.0.0.1#5353 -ipset=/.dafabet.com/gfwlist -server=/.dafagood.com/127.0.0.1#5353 -ipset=/.dafagood.com/gfwlist -server=/.dafahao.com/127.0.0.1#5353 -ipset=/.dafahao.com/gfwlist -server=/.dafoh.org/127.0.0.1#5353 -ipset=/.dafoh.org/gfwlist -server=/.daftporn.com/127.0.0.1#5353 -ipset=/.daftporn.com/gfwlist -server=/.dagelijksestandaard.nl/127.0.0.1#5353 -ipset=/.dagelijksestandaard.nl/gfwlist -server=/.daidostup.ru/127.0.0.1#5353 -ipset=/.daidostup.ru/gfwlist -server=/.dailidaili.com/127.0.0.1#5353 -ipset=/.dailidaili.com/gfwlist -server=/.dailymotion.com/127.0.0.1#5353 -ipset=/.dailymotion.com/gfwlist -server=/.daiphapinfo.net/127.0.0.1#5353 -ipset=/.daiphapinfo.net/gfwlist -server=/.dajiyuan.com/127.0.0.1#5353 -ipset=/.dajiyuan.com/gfwlist -server=/.dajiyuan.de/127.0.0.1#5353 -ipset=/.dajiyuan.de/gfwlist -server=/.dajiyuan.eu/127.0.0.1#5353 -ipset=/.dajiyuan.eu/gfwlist -server=/.dajusha.baywords.com/127.0.0.1#5353 -ipset=/.dajusha.baywords.com/gfwlist -server=/.dalailama-archives.org/127.0.0.1#5353 -ipset=/.dalailama-archives.org/gfwlist -server=/.dalailama.com/127.0.0.1#5353 -ipset=/.dalailama.com/gfwlist -server=/.dalailama.mn/127.0.0.1#5353 -ipset=/.dalailama.mn/gfwlist -server=/.dalailama.ru/127.0.0.1#5353 -ipset=/.dalailama.ru/gfwlist -server=/.dalailama.usc.edu/127.0.0.1#5353 -ipset=/.dalailama.usc.edu/gfwlist -server=/.dalailama80.org/127.0.0.1#5353 -ipset=/.dalailama80.org/gfwlist -server=/.dalailamacenter.org/127.0.0.1#5353 -ipset=/.dalailamacenter.org/gfwlist -server=/.dalailamafellows.org/127.0.0.1#5353 -ipset=/.dalailamafellows.org/gfwlist -server=/.dalailamafilm.com/127.0.0.1#5353 -ipset=/.dalailamafilm.com/gfwlist -server=/.dalailamafoundation.org/127.0.0.1#5353 -ipset=/.dalailamafoundation.org/gfwlist -server=/.dalailamahindi.com/127.0.0.1#5353 -ipset=/.dalailamahindi.com/gfwlist -server=/.dalailamainaustralia.org/127.0.0.1#5353 -ipset=/.dalailamainaustralia.org/gfwlist -server=/.dalailamajapanese.com/127.0.0.1#5353 -ipset=/.dalailamajapanese.com/gfwlist -server=/.dalailamaprotesters.info/127.0.0.1#5353 -ipset=/.dalailamaprotesters.info/gfwlist -server=/.dalailamaquotes.org/127.0.0.1#5353 -ipset=/.dalailamaquotes.org/gfwlist -server=/.dalailamatrust.org/127.0.0.1#5353 -ipset=/.dalailamatrust.org/gfwlist -server=/.dalailamavisit.org.nz/127.0.0.1#5353 -ipset=/.dalailamavisit.org.nz/gfwlist -server=/.dalailamaworld.com/127.0.0.1#5353 -ipset=/.dalailamaworld.com/gfwlist -server=/.dalianmeng.org/127.0.0.1#5353 -ipset=/.dalianmeng.org/gfwlist -server=/.daliulian.org/127.0.0.1#5353 -ipset=/.daliulian.org/gfwlist -server=/.danbooru.donmai.us/127.0.0.1#5353 -ipset=/.danbooru.donmai.us/gfwlist -server=/.danke4china.net/127.0.0.1#5353 -ipset=/.danke4china.net/gfwlist -server=/.danwei.org/127.0.0.1#5353 -ipset=/.danwei.org/gfwlist -server=/.daodu14.jigsy.com/127.0.0.1#5353 -ipset=/.daodu14.jigsy.com/gfwlist -server=/.daolan.net/127.0.0.1#5353 -ipset=/.daolan.net/gfwlist -server=/.daozhongxing.org/127.0.0.1#5353 -ipset=/.daozhongxing.org/gfwlist -server=/.darktech.org/127.0.0.1#5353 -ipset=/.darktech.org/gfwlist -server=/.darktoy.net/127.0.0.1#5353 -ipset=/.darktoy.net/gfwlist -server=/.darpa.mil/127.0.0.1#5353 -ipset=/.darpa.mil/gfwlist -server=/.dastrassi.org/127.0.0.1#5353 -ipset=/.dastrassi.org/gfwlist -server=/.data-vocabulary.org/127.0.0.1#5353 -ipset=/.data-vocabulary.org/gfwlist -server=/.data.flurry.com/127.0.0.1#5353 -ipset=/.data.flurry.com/gfwlist -server=/.data.gov.tw/127.0.0.1#5353 -ipset=/.data.gov.tw/gfwlist -server=/.david-kilgour.com/127.0.0.1#5353 -ipset=/.david-kilgour.com/gfwlist -server=/.dawangidc.com/127.0.0.1#5353 -ipset=/.dawangidc.com/gfwlist -server=/.daxa.cn/127.0.0.1#5353 -ipset=/.daxa.cn/gfwlist -server=/.db.tt/127.0.0.1#5353 -ipset=/.db.tt/gfwlist -server=/.dbnsa.gov.tw/127.0.0.1#5353 -ipset=/.dbnsa.gov.tw/gfwlist -server=/.dcard.tw/127.0.0.1#5353 -ipset=/.dcard.tw/gfwlist -server=/.dcmilitary.com/127.0.0.1#5353 -ipset=/.dcmilitary.com/gfwlist -server=/.ddc.com.tw/127.0.0.1#5353 -ipset=/.ddc.com.tw/gfwlist -server=/.ddhw.info/127.0.0.1#5353 -ipset=/.ddhw.info/gfwlist -server=/.ddns.info/127.0.0.1#5353 -ipset=/.ddns.info/gfwlist -server=/.ddns.me.uk/127.0.0.1#5353 -ipset=/.ddns.me.uk/gfwlist -server=/.ddns.mobi/127.0.0.1#5353 -ipset=/.ddns.mobi/gfwlist -server=/.ddns.ms/127.0.0.1#5353 -ipset=/.ddns.ms/gfwlist -server=/.ddns.name/127.0.0.1#5353 -ipset=/.ddns.name/gfwlist -server=/.ddns.us/127.0.0.1#5353 -ipset=/.ddns.us/gfwlist -server=/.de-sci.org/127.0.0.1#5353 -ipset=/.de-sci.org/gfwlist -server=/.deaftone.com/127.0.0.1#5353 -ipset=/.deaftone.com/gfwlist -server=/.debug.com/127.0.0.1#5353 -ipset=/.debug.com/gfwlist -server=/.deck.ly/127.0.0.1#5353 -ipset=/.deck.ly/gfwlist -server=/.decodet.co/127.0.0.1#5353 -ipset=/.decodet.co/gfwlist -server=/.deepmind.com/127.0.0.1#5353 -ipset=/.deepmind.com/gfwlist -server=/.deezer.com/127.0.0.1#5353 -ipset=/.deezer.com/gfwlist -server=/.definebabe.com/127.0.0.1#5353 -ipset=/.definebabe.com/gfwlist -server=/.deja.com/127.0.0.1#5353 -ipset=/.deja.com/gfwlist -server=/.delcamp.net/127.0.0.1#5353 -ipset=/.delcamp.net/gfwlist -server=/.demo.opera-mini.net/127.0.0.1#5353 -ipset=/.demo.opera-mini.net/gfwlist -server=/.democrats.org/127.0.0.1#5353 -ipset=/.democrats.org/gfwlist -server=/.depositphotos.com/127.0.0.1#5353 -ipset=/.depositphotos.com/gfwlist -server=/.derekhsu.homeip.net/127.0.0.1#5353 -ipset=/.derekhsu.homeip.net/gfwlist -server=/.desc.se/127.0.0.1#5353 -ipset=/.desc.se/gfwlist -server=/.design.google/127.0.0.1#5353 -ipset=/.design.google/gfwlist -server=/.desipro.de/127.0.0.1#5353 -ipset=/.desipro.de/gfwlist -server=/.dessci.com/127.0.0.1#5353 -ipset=/.dessci.com/gfwlist -server=/.destroy-china.jp/127.0.0.1#5353 -ipset=/.destroy-china.jp/gfwlist -server=/.deutsche-welle.de/127.0.0.1#5353 -ipset=/.deutsche-welle.de/gfwlist -server=/.developers.box.net/127.0.0.1#5353 -ipset=/.developers.box.net/gfwlist -server=/.devio.us/127.0.0.1#5353 -ipset=/.devio.us/gfwlist -server=/.devpn.com/127.0.0.1#5353 -ipset=/.devpn.com/gfwlist -server=/.df.gov.tw/127.0.0.1#5353 -ipset=/.df.gov.tw/gfwlist -server=/.dfas.mil/127.0.0.1#5353 -ipset=/.dfas.mil/gfwlist -server=/.dfn.org/127.0.0.1#5353 -ipset=/.dfn.org/gfwlist -server=/.dharamsalanet.com/127.0.0.1#5353 -ipset=/.dharamsalanet.com/gfwlist -server=/.dharmakara.net/127.0.0.1#5353 -ipset=/.dharmakara.net/gfwlist -server=/.dhcp.biz/127.0.0.1#5353 -ipset=/.dhcp.biz/gfwlist -server=/.diaoyuislands.org/127.0.0.1#5353 -ipset=/.diaoyuislands.org/gfwlist -server=/.dictionary.goo.ne.jp/127.0.0.1#5353 -ipset=/.dictionary.goo.ne.jp/gfwlist -server=/.difangwenge.org/127.0.0.1#5353 -ipset=/.difangwenge.org/gfwlist -server=/.digisfera.com/127.0.0.1#5353 -ipset=/.digisfera.com/gfwlist -server=/.digitalnomadsproject.org/127.0.0.1#5353 -ipset=/.digitalnomadsproject.org/gfwlist -server=/.diigo.com/127.0.0.1#5353 -ipset=/.diigo.com/gfwlist -server=/.dilber.se/127.0.0.1#5353 -ipset=/.dilber.se/gfwlist -server=/.dingchin.com.tw/127.0.0.1#5353 -ipset=/.dingchin.com.tw/gfwlist -server=/.dipity.com/127.0.0.1#5353 -ipset=/.dipity.com/gfwlist -server=/.directcreative.com/127.0.0.1#5353 -ipset=/.directcreative.com/gfwlist -server=/.discoins.com/127.0.0.1#5353 -ipset=/.discoins.com/gfwlist -server=/.discordapp.com/127.0.0.1#5353 -ipset=/.discordapp.com/gfwlist -server=/.discordapp.net/127.0.0.1#5353 -ipset=/.discordapp.net/gfwlist -server=/.discuss.com.hk/127.0.0.1#5353 -ipset=/.discuss.com.hk/gfwlist -server=/.discuss4u.com/127.0.0.1#5353 -ipset=/.discuss4u.com/gfwlist -server=/.dish.com/127.0.0.1#5353 -ipset=/.dish.com/gfwlist -server=/.disp.cc/127.0.0.1#5353 -ipset=/.disp.cc/gfwlist -server=/.disqus.com/127.0.0.1#5353 -ipset=/.disqus.com/gfwlist -server=/.dit-inc.us/127.0.0.1#5353 -ipset=/.dit-inc.us/gfwlist -server=/.dizhidizhi.com/127.0.0.1#5353 -ipset=/.dizhidizhi.com/gfwlist -server=/.dizhuzhishang.com/127.0.0.1#5353 -ipset=/.dizhuzhishang.com/gfwlist -server=/.djangosnippets.org/127.0.0.1#5353 -ipset=/.djangosnippets.org/gfwlist -server=/.djorz.com/127.0.0.1#5353 -ipset=/.djorz.com/gfwlist -server=/.dl-laby.jp/127.0.0.1#5353 -ipset=/.dl-laby.jp/gfwlist -server=/.dl.box.net/127.0.0.1#5353 -ipset=/.dl.box.net/gfwlist -server=/.dl.google.com/127.0.0.1#5353 -ipset=/.dl.google.com/gfwlist -server=/.dlsite.com/127.0.0.1#5353 -ipset=/.dlsite.com/gfwlist -server=/.dlyoutube.com/127.0.0.1#5353 -ipset=/.dlyoutube.com/gfwlist -server=/.dm530.net/127.0.0.1#5353 -ipset=/.dm530.net/gfwlist -server=/.dmcdn.net/127.0.0.1#5353 -ipset=/.dmcdn.net/gfwlist -server=/.dmm.co.jp/127.0.0.1#5353 -ipset=/.dmm.co.jp/gfwlist -server=/.dns-dns.com/127.0.0.1#5353 -ipset=/.dns-dns.com/gfwlist -server=/.dns-stuff.com/127.0.0.1#5353 -ipset=/.dns-stuff.com/gfwlist -server=/.dns04.com/127.0.0.1#5353 -ipset=/.dns04.com/gfwlist -server=/.dns05.com/127.0.0.1#5353 -ipset=/.dns05.com/gfwlist -server=/.dns1.us/127.0.0.1#5353 -ipset=/.dns1.us/gfwlist -server=/.dns2.us/127.0.0.1#5353 -ipset=/.dns2.us/gfwlist -server=/.dns2go.com/127.0.0.1#5353 -ipset=/.dns2go.com/gfwlist -server=/.dnscrypt.org/127.0.0.1#5353 -ipset=/.dnscrypt.org/gfwlist -server=/.dnset.com/127.0.0.1#5353 -ipset=/.dnset.com/gfwlist -server=/.dnsrd.com/127.0.0.1#5353 -ipset=/.dnsrd.com/gfwlist -server=/.dnssec.net/127.0.0.1#5353 -ipset=/.dnssec.net/gfwlist -server=/.dnvod.tv/127.0.0.1#5353 -ipset=/.dnvod.tv/gfwlist -server=/.doctorvoice.org/127.0.0.1#5353 -ipset=/.doctorvoice.org/gfwlist -server=/.dojin.com/127.0.0.1#5353 -ipset=/.dojin.com/gfwlist -server=/.dok-forum.net/127.0.0.1#5353 -ipset=/.dok-forum.net/gfwlist -server=/.dolc.de/127.0.0.1#5353 -ipset=/.dolc.de/gfwlist -server=/.dolf.org.hk/127.0.0.1#5353 -ipset=/.dolf.org.hk/gfwlist -server=/.dollf.com/127.0.0.1#5353 -ipset=/.dollf.com/gfwlist -server=/.domain.club.tw/127.0.0.1#5353 -ipset=/.domain.club.tw/gfwlist -server=/.domainhelp.search.com/127.0.0.1#5353 -ipset=/.domainhelp.search.com/gfwlist -server=/.domains.google/127.0.0.1#5353 -ipset=/.domains.google/gfwlist -server=/.domaintoday.com.au/127.0.0.1#5353 -ipset=/.domaintoday.com.au/gfwlist -server=/.dongtaiwang.com/127.0.0.1#5353 -ipset=/.dongtaiwang.com/gfwlist -server=/.dongtaiwang.net/127.0.0.1#5353 -ipset=/.dongtaiwang.net/gfwlist -server=/.dongyangjing.com/127.0.0.1#5353 -ipset=/.dongyangjing.com/gfwlist -server=/.dontfilter.us/127.0.0.1#5353 -ipset=/.dontfilter.us/gfwlist -server=/.dontmovetochina.com/127.0.0.1#5353 -ipset=/.dontmovetochina.com/gfwlist -server=/.dorjeshugden.com/127.0.0.1#5353 -ipset=/.dorjeshugden.com/gfwlist -server=/.dotplane.com/127.0.0.1#5353 -ipset=/.dotplane.com/gfwlist -server=/.dotsub.com/127.0.0.1#5353 -ipset=/.dotsub.com/gfwlist -server=/.dotvpn.com/127.0.0.1#5353 -ipset=/.dotvpn.com/gfwlist -server=/.doub.io/127.0.0.1#5353 -ipset=/.doub.io/gfwlist -server=/.dougscripts.com/127.0.0.1#5353 -ipset=/.dougscripts.com/gfwlist -server=/.douhokanko.net/127.0.0.1#5353 -ipset=/.douhokanko.net/gfwlist -server=/.doujincafe.com/127.0.0.1#5353 -ipset=/.doujincafe.com/gfwlist -server=/.dowei.org/127.0.0.1#5353 -ipset=/.dowei.org/gfwlist -server=/.download.aircrack-ng.org/127.0.0.1#5353 -ipset=/.download.aircrack-ng.org/gfwlist -server=/.download.cnet.com/127.0.0.1#5353 -ipset=/.download.cnet.com/gfwlist -server=/.download.ithome.com.tw/127.0.0.1#5353 -ipset=/.download.ithome.com.tw/gfwlist -server=/.download.syniumsoftware.com/127.0.0.1#5353 -ipset=/.download.syniumsoftware.com/gfwlist -server=/.dphk.org/127.0.0.1#5353 -ipset=/.dphk.org/gfwlist -server=/.dpp.org.tw/127.0.0.1#5353 -ipset=/.dpp.org.tw/gfwlist -server=/.dpr.info/127.0.0.1#5353 -ipset=/.dpr.info/gfwlist -server=/.dragonex.io/127.0.0.1#5353 -ipset=/.dragonex.io/gfwlist -server=/.dragonsprings.org/127.0.0.1#5353 -ipset=/.dragonsprings.org/gfwlist -server=/.dreamamateurs.com/127.0.0.1#5353 -ipset=/.dreamamateurs.com/gfwlist -server=/.drepung.org/127.0.0.1#5353 -ipset=/.drepung.org/gfwlist -server=/.drgan.net/127.0.0.1#5353 -ipset=/.drgan.net/gfwlist -server=/.drmingxia.org/127.0.0.1#5353 -ipset=/.drmingxia.org/gfwlist -server=/.dropbooks.tv/127.0.0.1#5353 -ipset=/.dropbooks.tv/gfwlist -server=/.dropbox.com/127.0.0.1#5353 -ipset=/.dropbox.com/gfwlist -server=/.dropboxusercontent.com/127.0.0.1#5353 -ipset=/.dropboxusercontent.com/gfwlist -server=/.drsunacademy.com/127.0.0.1#5353 -ipset=/.drsunacademy.com/gfwlist -server=/.drtuber.com/127.0.0.1#5353 -ipset=/.drtuber.com/gfwlist -server=/.dscn.info/127.0.0.1#5353 -ipset=/.dscn.info/gfwlist -server=/.dsmtp.com/127.0.0.1#5353 -ipset=/.dsmtp.com/gfwlist -server=/.dstk.dk/127.0.0.1#5353 -ipset=/.dstk.dk/gfwlist -server=/.dtdns.net/127.0.0.1#5353 -ipset=/.dtdns.net/gfwlist -server=/.dtiblog.com/127.0.0.1#5353 -ipset=/.dtiblog.com/gfwlist -server=/.dtic.mil/127.0.0.1#5353 -ipset=/.dtic.mil/gfwlist -server=/.dtwang.org/127.0.0.1#5353 -ipset=/.dtwang.org/gfwlist -server=/.duanzhihu.com/127.0.0.1#5353 -ipset=/.duanzhihu.com/gfwlist -server=/.duck.com/127.0.0.1#5353 -ipset=/.duck.com/gfwlist -server=/.duckdns.org/127.0.0.1#5353 -ipset=/.duckdns.org/gfwlist -server=/.duckduckgo-owned-server.yahoo.net/127.0.0.1#5353 -ipset=/.duckduckgo-owned-server.yahoo.net/gfwlist -server=/.duckduckgo.com/127.0.0.1#5353 -ipset=/.duckduckgo.com/gfwlist -server=/.duckmylife.com/127.0.0.1#5353 -ipset=/.duckmylife.com/gfwlist -server=/.duga.jp/127.0.0.1#5353 -ipset=/.duga.jp/gfwlist -server=/.duihua.org/127.0.0.1#5353 -ipset=/.duihua.org/gfwlist -server=/.duihuahrjournal.org/127.0.0.1#5353 -ipset=/.duihuahrjournal.org/gfwlist -server=/.dumb1.com/127.0.0.1#5353 -ipset=/.dumb1.com/gfwlist -server=/.dunyabulteni.net/127.0.0.1#5353 -ipset=/.dunyabulteni.net/gfwlist -server=/.duoweitimes.com/127.0.0.1#5353 -ipset=/.duoweitimes.com/gfwlist -server=/.duping.net/127.0.0.1#5353 -ipset=/.duping.net/gfwlist -server=/.duplicati.com/127.0.0.1#5353 -ipset=/.duplicati.com/gfwlist -server=/.dupola.com/127.0.0.1#5353 -ipset=/.dupola.com/gfwlist -server=/.dupola.net/127.0.0.1#5353 -ipset=/.dupola.net/gfwlist -server=/.dushi.ca/127.0.0.1#5353 -ipset=/.dushi.ca/gfwlist -server=/.dvdpac.com/127.0.0.1#5353 -ipset=/.dvdpac.com/gfwlist -server=/.dvorak.org/127.0.0.1#5353 -ipset=/.dvorak.org/gfwlist -server=/.dw-world.com/127.0.0.1#5353 -ipset=/.dw-world.com/gfwlist -server=/.dw-world.de/127.0.0.1#5353 -ipset=/.dw-world.de/gfwlist -server=/.dw.com/127.0.0.1#5353 -ipset=/.dw.com/gfwlist -server=/.dw.de/127.0.0.1#5353 -ipset=/.dw.de/gfwlist -server=/.dwnews.com/127.0.0.1#5353 -ipset=/.dwnews.com/gfwlist -server=/.dwnews.net/127.0.0.1#5353 -ipset=/.dwnews.net/gfwlist -server=/.dynamic-dns.net/127.0.0.1#5353 -ipset=/.dynamic-dns.net/gfwlist -server=/.dynamicdns.biz/127.0.0.1#5353 -ipset=/.dynamicdns.biz/gfwlist -server=/.dynamicdns.co.uk/127.0.0.1#5353 -ipset=/.dynamicdns.co.uk/gfwlist -server=/.dynamicdns.me.uk/127.0.0.1#5353 -ipset=/.dynamicdns.me.uk/gfwlist -server=/.dynamicdns.org.uk/127.0.0.1#5353 -ipset=/.dynamicdns.org.uk/gfwlist -server=/.dynawebinc.com/127.0.0.1#5353 -ipset=/.dynawebinc.com/gfwlist -server=/.dyndns-ip.com/127.0.0.1#5353 -ipset=/.dyndns-ip.com/gfwlist -server=/.dyndns-pics.com/127.0.0.1#5353 -ipset=/.dyndns-pics.com/gfwlist -server=/.dyndns.org/127.0.0.1#5353 -ipset=/.dyndns.org/gfwlist -server=/.dyndns.pro/127.0.0.1#5353 -ipset=/.dyndns.pro/gfwlist -server=/.dynssl.com/127.0.0.1#5353 -ipset=/.dynssl.com/gfwlist -server=/.dynu.com/127.0.0.1#5353 -ipset=/.dynu.com/gfwlist -server=/.dynu.net/127.0.0.1#5353 -ipset=/.dynu.net/gfwlist -server=/.dzze.com/127.0.0.1#5353 -ipset=/.dzze.com/gfwlist -server=/.e-classical.com.tw/127.0.0.1#5353 -ipset=/.e-classical.com.tw/gfwlist -server=/.e-gold.com/127.0.0.1#5353 -ipset=/.e-gold.com/gfwlist -server=/.e-hentai.org/127.0.0.1#5353 -ipset=/.e-hentai.org/gfwlist -server=/.e-hentaidb.com/127.0.0.1#5353 -ipset=/.e-hentaidb.com/gfwlist -server=/.e-info.org.tw/127.0.0.1#5353 -ipset=/.e-info.org.tw/gfwlist -server=/.e123.hk/127.0.0.1#5353 -ipset=/.e123.hk/gfwlist -server=/.earlytibet.com/127.0.0.1#5353 -ipset=/.earlytibet.com/gfwlist -server=/.earthcam.com/127.0.0.1#5353 -ipset=/.earthcam.com/gfwlist -server=/.earthvpn.com/127.0.0.1#5353 -ipset=/.earthvpn.com/gfwlist -server=/.eastcoast-nsa.gov.tw/127.0.0.1#5353 -ipset=/.eastcoast-nsa.gov.tw/gfwlist -server=/.eastern-ark.com/127.0.0.1#5353 -ipset=/.eastern-ark.com/gfwlist -server=/.easternlightning.org/127.0.0.1#5353 -ipset=/.easternlightning.org/gfwlist -server=/.eastturkestan.com/127.0.0.1#5353 -ipset=/.eastturkestan.com/gfwlist -server=/.eastturkistan-gov.org/127.0.0.1#5353 -ipset=/.eastturkistan-gov.org/gfwlist -server=/.eastturkistancc.org/127.0.0.1#5353 -ipset=/.eastturkistancc.org/gfwlist -server=/.eastturkistangovernmentinexile.us/127.0.0.1#5353 -ipset=/.eastturkistangovernmentinexile.us/gfwlist -server=/.easyca.ca/127.0.0.1#5353 -ipset=/.easyca.ca/gfwlist -server=/.easypic.com/127.0.0.1#5353 -ipset=/.easypic.com/gfwlist -server=/.ebony-beauty.com/127.0.0.1#5353 -ipset=/.ebony-beauty.com/gfwlist -server=/.ebook.hyread.com.tw/127.0.0.1#5353 -ipset=/.ebook.hyread.com.tw/gfwlist -server=/.ebookbrowse.com/127.0.0.1#5353 -ipset=/.ebookbrowse.com/gfwlist -server=/.ebookee.com/127.0.0.1#5353 -ipset=/.ebookee.com/gfwlist -server=/.ebtcbank.com/127.0.0.1#5353 -ipset=/.ebtcbank.com/gfwlist -server=/.ecfa.org.tw/127.0.0.1#5353 -ipset=/.ecfa.org.tw/gfwlist -server=/.echofon.com/127.0.0.1#5353 -ipset=/.echofon.com/gfwlist -server=/.ecimg.tw/127.0.0.1#5353 -ipset=/.ecimg.tw/gfwlist -server=/.ecministry.net/127.0.0.1#5353 -ipset=/.ecministry.net/gfwlist -server=/.economist.com/127.0.0.1#5353 -ipset=/.economist.com/gfwlist -server=/.edgecastcdn.net/127.0.0.1#5353 -ipset=/.edgecastcdn.net/gfwlist -server=/.edicypages.com/127.0.0.1#5353 -ipset=/.edicypages.com/gfwlist -server=/.edmontonchina.cn/127.0.0.1#5353 -ipset=/.edmontonchina.cn/gfwlist -server=/.edmontonservice.com/127.0.0.1#5353 -ipset=/.edmontonservice.com/gfwlist -server=/.edns.biz/127.0.0.1#5353 -ipset=/.edns.biz/gfwlist -server=/.edoors.com/127.0.0.1#5353 -ipset=/.edoors.com/gfwlist -server=/.edubridge.com/127.0.0.1#5353 -ipset=/.edubridge.com/gfwlist -server=/.edupro.org/127.0.0.1#5353 -ipset=/.edupro.org/gfwlist -server=/.eesti.ee/127.0.0.1#5353 -ipset=/.eesti.ee/gfwlist -server=/.eevpn.com/127.0.0.1#5353 -ipset=/.eevpn.com/gfwlist -server=/.efcc.org.hk/127.0.0.1#5353 -ipset=/.efcc.org.hk/gfwlist -server=/.effers.com/127.0.0.1#5353 -ipset=/.effers.com/gfwlist -server=/.efksoft.com/127.0.0.1#5353 -ipset=/.efksoft.com/gfwlist -server=/.efukt.com/127.0.0.1#5353 -ipset=/.efukt.com/gfwlist -server=/.eic-av.com/127.0.0.1#5353 -ipset=/.eic-av.com/gfwlist -server=/.eireinikotaerukai.com/127.0.0.1#5353 -ipset=/.eireinikotaerukai.com/gfwlist -server=/.eisbb.com/127.0.0.1#5353 -ipset=/.eisbb.com/gfwlist -server=/.eksisozluk.com/127.0.0.1#5353 -ipset=/.eksisozluk.com/gfwlist -server=/.electionsmeter.com/127.0.0.1#5353 -ipset=/.electionsmeter.com/gfwlist -server=/.elgoog.im/127.0.0.1#5353 -ipset=/.elgoog.im/gfwlist -server=/.elpais.com/127.0.0.1#5353 -ipset=/.elpais.com/gfwlist -server=/.eltondisney.com/127.0.0.1#5353 -ipset=/.eltondisney.com/gfwlist -server=/.embr.in/127.0.0.1#5353 -ipset=/.embr.in/gfwlist -server=/.emilylau.org.hk/127.0.0.1#5353 -ipset=/.emilylau.org.hk/gfwlist -server=/.empfil.com/127.0.0.1#5353 -ipset=/.empfil.com/gfwlist -server=/.emule-ed2k.com/127.0.0.1#5353 -ipset=/.emule-ed2k.com/gfwlist -server=/.emulefans.com/127.0.0.1#5353 -ipset=/.emulefans.com/gfwlist -server=/.emuparadise.me/127.0.0.1#5353 -ipset=/.emuparadise.me/gfwlist -server=/.en.favotter.net/127.0.0.1#5353 -ipset=/.en.favotter.net/gfwlist -server=/.en.hao123.com/127.0.0.1#5353 -ipset=/.en.hao123.com/gfwlist -server=/.enanyang.my/127.0.0.1#5353 -ipset=/.enanyang.my/gfwlist -server=/.enewstree.com/127.0.0.1#5353 -ipset=/.enewstree.com/gfwlist -server=/.enfal.de/127.0.0.1#5353 -ipset=/.enfal.de/gfwlist -server=/.engagedaily.org/127.0.0.1#5353 -ipset=/.engagedaily.org/gfwlist -server=/.englishforeveryone.org/127.0.0.1#5353 -ipset=/.englishforeveryone.org/gfwlist -server=/.englishfromengland.co.uk/127.0.0.1#5353 -ipset=/.englishfromengland.co.uk/gfwlist -server=/.englishpen.org/127.0.0.1#5353 -ipset=/.englishpen.org/gfwlist -server=/.enlighten.org.tw/127.0.0.1#5353 -ipset=/.enlighten.org.tw/gfwlist -server=/.entermap.com/127.0.0.1#5353 -ipset=/.entermap.com/gfwlist -server=/.entnt.com/127.0.0.1#5353 -ipset=/.entnt.com/gfwlist -server=/.environment.google/127.0.0.1#5353 -ipset=/.environment.google/gfwlist -server=/.epa.gov.tw/127.0.0.1#5353 -ipset=/.epa.gov.tw/gfwlist -server=/.epac.to/127.0.0.1#5353 -ipset=/.epac.to/gfwlist -server=/.episcopalchurch.org/127.0.0.1#5353 -ipset=/.episcopalchurch.org/gfwlist -server=/.epochhk.com/127.0.0.1#5353 -ipset=/.epochhk.com/gfwlist -server=/.epochtimes-bg.com/127.0.0.1#5353 -ipset=/.epochtimes-bg.com/gfwlist -server=/.epochtimes-romania.com/127.0.0.1#5353 -ipset=/.epochtimes-romania.com/gfwlist -server=/.epochtimes.co.il/127.0.0.1#5353 -ipset=/.epochtimes.co.il/gfwlist -server=/.epochtimes.co.kr/127.0.0.1#5353 -ipset=/.epochtimes.co.kr/gfwlist -server=/.epochtimes.com/127.0.0.1#5353 -ipset=/.epochtimes.com/gfwlist -server=/.epochtimes.cz/127.0.0.1#5353 -ipset=/.epochtimes.cz/gfwlist -server=/.epochtimes.de/127.0.0.1#5353 -ipset=/.epochtimes.de/gfwlist -server=/.epochtimes.fr/127.0.0.1#5353 -ipset=/.epochtimes.fr/gfwlist -server=/.epochtimes.ie/127.0.0.1#5353 -ipset=/.epochtimes.ie/gfwlist -server=/.epochtimes.it/127.0.0.1#5353 -ipset=/.epochtimes.it/gfwlist -server=/.epochtimes.jp/127.0.0.1#5353 -ipset=/.epochtimes.jp/gfwlist -server=/.epochtimes.ru/127.0.0.1#5353 -ipset=/.epochtimes.ru/gfwlist -server=/.epochtimes.se/127.0.0.1#5353 -ipset=/.epochtimes.se/gfwlist -server=/.epochtimestr.com/127.0.0.1#5353 -ipset=/.epochtimestr.com/gfwlist -server=/.epochweek.com/127.0.0.1#5353 -ipset=/.epochweek.com/gfwlist -server=/.epochweekly.com/127.0.0.1#5353 -ipset=/.epochweekly.com/gfwlist -server=/.eporner.com/127.0.0.1#5353 -ipset=/.eporner.com/gfwlist -server=/.equinenow.com/127.0.0.1#5353 -ipset=/.equinenow.com/gfwlist -server=/.erabaru.net/127.0.0.1#5353 -ipset=/.erabaru.net/gfwlist -server=/.eracom.com.tw/127.0.0.1#5353 -ipset=/.eracom.com.tw/gfwlist -server=/.eraysoft.com.tr/127.0.0.1#5353 -ipset=/.eraysoft.com.tr/gfwlist -server=/.erepublik.com/127.0.0.1#5353 -ipset=/.erepublik.com/gfwlist -server=/.erights.net/127.0.0.1#5353 -ipset=/.erights.net/gfwlist -server=/.eriversoft.com/127.0.0.1#5353 -ipset=/.eriversoft.com/gfwlist -server=/.erktv.com/127.0.0.1#5353 -ipset=/.erktv.com/gfwlist -server=/.ernestmandel.org/127.0.0.1#5353 -ipset=/.ernestmandel.org/gfwlist -server=/.erodaizensyu.com/127.0.0.1#5353 -ipset=/.erodaizensyu.com/gfwlist -server=/.erodoujinlog.com/127.0.0.1#5353 -ipset=/.erodoujinlog.com/gfwlist -server=/.erodoujinworld.com/127.0.0.1#5353 -ipset=/.erodoujinworld.com/gfwlist -server=/.eromanga-kingdom.com/127.0.0.1#5353 -ipset=/.eromanga-kingdom.com/gfwlist -server=/.eromangadouzin.com/127.0.0.1#5353 -ipset=/.eromangadouzin.com/gfwlist -server=/.eromon.net/127.0.0.1#5353 -ipset=/.eromon.net/gfwlist -server=/.eroprofile.com/127.0.0.1#5353 -ipset=/.eroprofile.com/gfwlist -server=/.eroticsaloon.net/127.0.0.1#5353 -ipset=/.eroticsaloon.net/gfwlist -server=/.erv-nsa.gov.tw/127.0.0.1#5353 -ipset=/.erv-nsa.gov.tw/gfwlist -server=/.eslite.com/127.0.0.1#5353 -ipset=/.eslite.com/gfwlist -server=/.esmtp.biz/127.0.0.1#5353 -ipset=/.esmtp.biz/gfwlist -server=/.esurance.com/127.0.0.1#5353 -ipset=/.esurance.com/gfwlist -server=/.etaa.org.au/127.0.0.1#5353 -ipset=/.etaa.org.au/gfwlist -server=/.etadult.com/127.0.0.1#5353 -ipset=/.etadult.com/gfwlist -server=/.etaiwannews.com/127.0.0.1#5353 -ipset=/.etaiwannews.com/gfwlist -server=/.etherdelta.com/127.0.0.1#5353 -ipset=/.etherdelta.com/gfwlist -server=/.etizer.org/127.0.0.1#5353 -ipset=/.etizer.org/gfwlist -server=/.etokki.com/127.0.0.1#5353 -ipset=/.etokki.com/gfwlist -server=/.etools.ncol.com/127.0.0.1#5353 -ipset=/.etools.ncol.com/gfwlist -server=/.etowns.net/127.0.0.1#5353 -ipset=/.etowns.net/gfwlist -server=/.etowns.org/127.0.0.1#5353 -ipset=/.etowns.org/gfwlist -server=/.etvonline.hk/127.0.0.1#5353 -ipset=/.etvonline.hk/gfwlist -server=/.eu.org/127.0.0.1#5353 -ipset=/.eu.org/gfwlist -server=/.eucasino.com/127.0.0.1#5353 -ipset=/.eucasino.com/gfwlist -server=/.eulam.com/127.0.0.1#5353 -ipset=/.eulam.com/gfwlist -server=/.eurekavpt.com/127.0.0.1#5353 -ipset=/.eurekavpt.com/gfwlist -server=/.evchk.wikia.com/127.0.0.1#5353 -ipset=/.evchk.wikia.com/gfwlist -server=/.evschool.net/127.0.0.1#5353 -ipset=/.evschool.net/gfwlist -server=/.exblog.jp/127.0.0.1#5353 -ipset=/.exblog.jp/gfwlist -server=/.exchristian.hk/127.0.0.1#5353 -ipset=/.exchristian.hk/gfwlist -server=/.exmo.com/127.0.0.1#5353 -ipset=/.exmo.com/gfwlist -server=/.exmormon.org/127.0.0.1#5353 -ipset=/.exmormon.org/gfwlist -server=/.expatshield.com/127.0.0.1#5353 -ipset=/.expatshield.com/gfwlist -server=/.expecthim.com/127.0.0.1#5353 -ipset=/.expecthim.com/gfwlist -server=/.expekt.com/127.0.0.1#5353 -ipset=/.expekt.com/gfwlist -server=/.experts-univers.com/127.0.0.1#5353 -ipset=/.experts-univers.com/gfwlist -server=/.exploader.net/127.0.0.1#5353 -ipset=/.exploader.net/gfwlist -server=/.expressvpn.com/127.0.0.1#5353 -ipset=/.expressvpn.com/gfwlist -server=/.exrates.me/127.0.0.1#5353 -ipset=/.exrates.me/gfwlist -server=/.extmatrix.com/127.0.0.1#5353 -ipset=/.extmatrix.com/gfwlist -server=/.extremetube.com/127.0.0.1#5353 -ipset=/.extremetube.com/gfwlist -server=/.exx.com/127.0.0.1#5353 -ipset=/.exx.com/gfwlist -server=/.eyevio.jp/127.0.0.1#5353 -ipset=/.eyevio.jp/gfwlist -server=/.eyny.com/127.0.0.1#5353 -ipset=/.eyny.com/gfwlist -server=/.ezpeer.com/127.0.0.1#5353 -ipset=/.ezpeer.com/gfwlist -server=/.ezua.com/127.0.0.1#5353 -ipset=/.ezua.com/gfwlist -server=/.fa.gov.tw/127.0.0.1#5353 -ipset=/.fa.gov.tw/gfwlist -server=/.facebook.br/127.0.0.1#5353 -ipset=/.facebook.br/gfwlist -server=/.facebook.com/127.0.0.1#5353 -ipset=/.facebook.com/gfwlist -server=/.facebook.design/127.0.0.1#5353 -ipset=/.facebook.design/gfwlist -server=/.facebook.hu/127.0.0.1#5353 -ipset=/.facebook.hu/gfwlist -server=/.facebook.in/127.0.0.1#5353 -ipset=/.facebook.in/gfwlist -server=/.facebook.nl/127.0.0.1#5353 -ipset=/.facebook.nl/gfwlist -server=/.facebook.se/127.0.0.1#5353 -ipset=/.facebook.se/gfwlist -server=/.facebookquotes4u.com/127.0.0.1#5353 -ipset=/.facebookquotes4u.com/gfwlist -server=/.faceless.me/127.0.0.1#5353 -ipset=/.faceless.me/gfwlist -server=/.facesofnyfw.com/127.0.0.1#5353 -ipset=/.facesofnyfw.com/gfwlist -server=/.facesoftibetanselfimmolators.info/127.0.0.1#5353 -ipset=/.facesoftibetanselfimmolators.info/gfwlist -server=/.fail.hk/127.0.0.1#5353 -ipset=/.fail.hk/gfwlist -server=/.faith100.org/127.0.0.1#5353 -ipset=/.faith100.org/gfwlist -server=/.faithfuleye.com/127.0.0.1#5353 -ipset=/.faithfuleye.com/gfwlist -server=/.faiththedog.info/127.0.0.1#5353 -ipset=/.faiththedog.info/gfwlist -server=/.fakku.net/127.0.0.1#5353 -ipset=/.fakku.net/gfwlist -server=/.falsefire.com/127.0.0.1#5353 -ipset=/.falsefire.com/gfwlist -server=/.falun-co.org/127.0.0.1#5353 -ipset=/.falun-co.org/gfwlist -server=/.falun-ny.net/127.0.0.1#5353 -ipset=/.falun-ny.net/gfwlist -server=/.falun.caltech.edu/127.0.0.1#5353 -ipset=/.falun.caltech.edu/gfwlist -server=/.falunart.org/127.0.0.1#5353 -ipset=/.falunart.org/gfwlist -server=/.falunasia.info/127.0.0.1#5353 -ipset=/.falunasia.info/gfwlist -server=/.falunau.org/127.0.0.1#5353 -ipset=/.falunau.org/gfwlist -server=/.falunaz.net/127.0.0.1#5353 -ipset=/.falunaz.net/gfwlist -server=/.falundafa-dc.org/127.0.0.1#5353 -ipset=/.falundafa-dc.org/gfwlist -server=/.falundafa-florida.org/127.0.0.1#5353 -ipset=/.falundafa-florida.org/gfwlist -server=/.falundafa-nc.org/127.0.0.1#5353 -ipset=/.falundafa-nc.org/gfwlist -server=/.falundafa-pa.net/127.0.0.1#5353 -ipset=/.falundafa-pa.net/gfwlist -server=/.falundafa-sacramento.org/127.0.0.1#5353 -ipset=/.falundafa-sacramento.org/gfwlist -server=/.falundafa.org/127.0.0.1#5353 -ipset=/.falundafa.org/gfwlist -server=/.falundafaindia.org/127.0.0.1#5353 -ipset=/.falundafaindia.org/gfwlist -server=/.falundafamuseum.org/127.0.0.1#5353 -ipset=/.falundafamuseum.org/gfwlist -server=/.falungong.club/127.0.0.1#5353 -ipset=/.falungong.club/gfwlist -server=/.falungong.de/127.0.0.1#5353 -ipset=/.falungong.de/gfwlist -server=/.falungong.org.uk/127.0.0.1#5353 -ipset=/.falungong.org.uk/gfwlist -server=/.falunhr.org/127.0.0.1#5353 -ipset=/.falunhr.org/gfwlist -server=/.faluninfo.de/127.0.0.1#5353 -ipset=/.faluninfo.de/gfwlist -server=/.faluninfo.net/127.0.0.1#5353 -ipset=/.faluninfo.net/gfwlist -server=/.falunpilipinas.net/127.0.0.1#5353 -ipset=/.falunpilipinas.net/gfwlist -server=/.falunworld.net/127.0.0.1#5353 -ipset=/.falunworld.net/gfwlist -server=/.familyfed.org/127.0.0.1#5353 -ipset=/.familyfed.org/gfwlist -server=/.famunion.com/127.0.0.1#5353 -ipset=/.famunion.com/gfwlist -server=/.fan-qiang.com/127.0.0.1#5353 -ipset=/.fan-qiang.com/gfwlist -server=/.fangbinxing.com/127.0.0.1#5353 -ipset=/.fangbinxing.com/gfwlist -server=/.fangeming.com/127.0.0.1#5353 -ipset=/.fangeming.com/gfwlist -server=/.fangeqiang.com/127.0.0.1#5353 -ipset=/.fangeqiang.com/gfwlist -server=/.fanglizhi.info/127.0.0.1#5353 -ipset=/.fanglizhi.info/gfwlist -server=/.fangmincn.org/127.0.0.1#5353 -ipset=/.fangmincn.org/gfwlist -server=/.fangong.forums-free.com/127.0.0.1#5353 -ipset=/.fangong.forums-free.com/gfwlist -server=/.fangong.org/127.0.0.1#5353 -ipset=/.fangong.org/gfwlist -server=/.fangongheike.com/127.0.0.1#5353 -ipset=/.fangongheike.com/gfwlist -server=/.fanhaodang.com/127.0.0.1#5353 -ipset=/.fanhaodang.com/gfwlist -server=/.fanqiang.tk/127.0.0.1#5353 -ipset=/.fanqiang.tk/gfwlist -server=/.fanqianghou.com/127.0.0.1#5353 -ipset=/.fanqianghou.com/gfwlist -server=/.fanqiangyakexi.net/127.0.0.1#5353 -ipset=/.fanqiangyakexi.net/gfwlist -server=/.fanqiangzhe.com/127.0.0.1#5353 -ipset=/.fanqiangzhe.com/gfwlist -server=/.fanswong.com/127.0.0.1#5353 -ipset=/.fanswong.com/gfwlist -server=/.fanyue.info/127.0.0.1#5353 -ipset=/.fanyue.info/gfwlist -server=/.fapdu.com/127.0.0.1#5353 -ipset=/.fapdu.com/gfwlist -server=/.faproxy.com/127.0.0.1#5353 -ipset=/.faproxy.com/gfwlist -server=/.faqserv.com/127.0.0.1#5353 -ipset=/.faqserv.com/gfwlist -server=/.fartit.com/127.0.0.1#5353 -ipset=/.fartit.com/gfwlist -server=/.farwestchina.com/127.0.0.1#5353 -ipset=/.farwestchina.com/gfwlist -server=/.fast.wistia.com/127.0.0.1#5353 -ipset=/.fast.wistia.com/gfwlist -server=/.fastpic.ru/127.0.0.1#5353 -ipset=/.fastpic.ru/gfwlist -server=/.fastssh.com/127.0.0.1#5353 -ipset=/.fastssh.com/gfwlist -server=/.faststone.org/127.0.0.1#5353 -ipset=/.faststone.org/gfwlist -server=/.fatbtc.com/127.0.0.1#5353 -ipset=/.fatbtc.com/gfwlist -server=/.favstar.fm/127.0.0.1#5353 -ipset=/.favstar.fm/gfwlist -server=/.fawanghuihui.org/127.0.0.1#5353 -ipset=/.fawanghuihui.org/gfwlist -server=/.fb.com/127.0.0.1#5353 -ipset=/.fb.com/gfwlist -server=/.fb.me/127.0.0.1#5353 -ipset=/.fb.me/gfwlist -server=/.fbaddins.com/127.0.0.1#5353 -ipset=/.fbaddins.com/gfwlist -server=/.fbcdn.net/127.0.0.1#5353 -ipset=/.fbcdn.net/gfwlist -server=/.fbsbx.com/127.0.0.1#5353 -ipset=/.fbsbx.com/gfwlist -server=/.fbworkmail.com/127.0.0.1#5353 -ipset=/.fbworkmail.com/gfwlist -server=/.fc2.com/127.0.0.1#5353 -ipset=/.fc2.com/gfwlist -server=/.fc2blog.net/127.0.0.1#5353 -ipset=/.fc2blog.net/gfwlist -server=/.fc2china.com/127.0.0.1#5353 -ipset=/.fc2china.com/gfwlist -server=/.fc2cn.com/127.0.0.1#5353 -ipset=/.fc2cn.com/gfwlist -server=/.fda.gov.tw/127.0.0.1#5353 -ipset=/.fda.gov.tw/gfwlist -server=/.fdc64.de/127.0.0.1#5353 -ipset=/.fdc64.de/gfwlist -server=/.fdc64.org/127.0.0.1#5353 -ipset=/.fdc64.org/gfwlist -server=/.fdc89.jp/127.0.0.1#5353 -ipset=/.fdc89.jp/gfwlist -server=/.feedburner.com/127.0.0.1#5353 -ipset=/.feedburner.com/gfwlist -server=/.feeds.fileforum.com/127.0.0.1#5353 -ipset=/.feeds.fileforum.com/gfwlist -server=/.feelssh.com/127.0.0.1#5353 -ipset=/.feelssh.com/gfwlist -server=/.feer.com/127.0.0.1#5353 -ipset=/.feer.com/gfwlist -server=/.feifeiss.com/127.0.0.1#5353 -ipset=/.feifeiss.com/gfwlist -server=/.feitian-california.org/127.0.0.1#5353 -ipset=/.feitian-california.org/gfwlist -server=/.feitianacademy.org/127.0.0.1#5353 -ipset=/.feitianacademy.org/gfwlist -server=/.feministteacher.com/127.0.0.1#5353 -ipset=/.feministteacher.com/gfwlist -server=/.fengzhenghu.com/127.0.0.1#5353 -ipset=/.fengzhenghu.com/gfwlist -server=/.fengzhenghu.net/127.0.0.1#5353 -ipset=/.fengzhenghu.net/gfwlist -server=/.fevernet.com/127.0.0.1#5353 -ipset=/.fevernet.com/gfwlist -server=/.ff.im/127.0.0.1#5353 -ipset=/.ff.im/gfwlist -server=/.fffff.at/127.0.0.1#5353 -ipset=/.fffff.at/gfwlist -server=/.fflick.com/127.0.0.1#5353 -ipset=/.fflick.com/gfwlist -server=/.ffvpn.com/127.0.0.1#5353 -ipset=/.ffvpn.com/gfwlist -server=/.fgmtv.net/127.0.0.1#5353 -ipset=/.fgmtv.net/gfwlist -server=/.fgmtv.org/127.0.0.1#5353 -ipset=/.fgmtv.org/gfwlist -server=/.fhreports.net/127.0.0.1#5353 -ipset=/.fhreports.net/gfwlist -server=/.figprayer.com/127.0.0.1#5353 -ipset=/.figprayer.com/gfwlist -server=/.fileflyer.com/127.0.0.1#5353 -ipset=/.fileflyer.com/gfwlist -server=/.files2me.com/127.0.0.1#5353 -ipset=/.files2me.com/gfwlist -server=/.filesor.com/127.0.0.1#5353 -ipset=/.filesor.com/gfwlist -server=/.fillthesquare.org/127.0.0.1#5353 -ipset=/.fillthesquare.org/gfwlist -server=/.filmingfortibet.org/127.0.0.1#5353 -ipset=/.filmingfortibet.org/gfwlist -server=/.filthdump.com/127.0.0.1#5353 -ipset=/.filthdump.com/gfwlist -server=/.financetwitter.com/127.0.0.1#5353 -ipset=/.financetwitter.com/gfwlist -server=/.finchvpn.com/127.0.0.1#5353 -ipset=/.finchvpn.com/gfwlist -server=/.findmespot.com/127.0.0.1#5353 -ipset=/.findmespot.com/gfwlist -server=/.findyoutube.com/127.0.0.1#5353 -ipset=/.findyoutube.com/gfwlist -server=/.findyoutube.net/127.0.0.1#5353 -ipset=/.findyoutube.net/gfwlist -server=/.fingerdaily.com/127.0.0.1#5353 -ipset=/.fingerdaily.com/gfwlist -server=/.finler.net/127.0.0.1#5353 -ipset=/.finler.net/gfwlist -server=/.firearmsworld.net/127.0.0.1#5353 -ipset=/.firearmsworld.net/gfwlist -server=/.firebaseio.com/127.0.0.1#5353 -ipset=/.firebaseio.com/gfwlist -server=/.fireofliberty.org/127.0.0.1#5353 -ipset=/.fireofliberty.org/gfwlist -server=/.firetweet.io/127.0.0.1#5353 -ipset=/.firetweet.io/gfwlist -server=/.firstfivefollowers.com/127.0.0.1#5353 -ipset=/.firstfivefollowers.com/gfwlist -server=/.flagsonline.it/127.0.0.1#5353 -ipset=/.flagsonline.it/gfwlist -server=/.flecheinthepeche.fr/127.0.0.1#5353 -ipset=/.flecheinthepeche.fr/gfwlist -server=/.fleshbot.com/127.0.0.1#5353 -ipset=/.fleshbot.com/gfwlist -server=/.fleursdeslettres.com/127.0.0.1#5353 -ipset=/.fleursdeslettres.com/gfwlist -server=/.flgg.us/127.0.0.1#5353 -ipset=/.flgg.us/gfwlist -server=/.flgjustice.org/127.0.0.1#5353 -ipset=/.flgjustice.org/gfwlist -server=/.flickr.com/127.0.0.1#5353 -ipset=/.flickr.com/gfwlist -server=/.flickrhivemind.net/127.0.0.1#5353 -ipset=/.flickrhivemind.net/gfwlist -server=/.flickriver.com/127.0.0.1#5353 -ipset=/.flickriver.com/gfwlist -server=/.fling.com/127.0.0.1#5353 -ipset=/.fling.com/gfwlist -server=/.flipboard.com/127.0.0.1#5353 -ipset=/.flipboard.com/gfwlist -server=/.flipkart.com/127.0.0.1#5353 -ipset=/.flipkart.com/gfwlist -server=/.flitto.com/127.0.0.1#5353 -ipset=/.flitto.com/gfwlist -server=/.flnet.org/127.0.0.1#5353 -ipset=/.flnet.org/gfwlist -server=/.flog.tw/127.0.0.1#5353 -ipset=/.flog.tw/gfwlist -server=/.flyvpn.com/127.0.0.1#5353 -ipset=/.flyvpn.com/gfwlist -server=/.flyzy2005.com/127.0.0.1#5353 -ipset=/.flyzy2005.com/gfwlist -server=/.fnac.be/127.0.0.1#5353 -ipset=/.fnac.be/gfwlist -server=/.fnac.com/127.0.0.1#5353 -ipset=/.fnac.com/gfwlist -server=/.fochk.org/127.0.0.1#5353 -ipset=/.fochk.org/gfwlist -server=/.focustaiwan.tw/127.0.0.1#5353 -ipset=/.focustaiwan.tw/gfwlist -server=/.focusvpn.com/127.0.0.1#5353 -ipset=/.focusvpn.com/gfwlist -server=/.fofg-europe.net/127.0.0.1#5353 -ipset=/.fofg-europe.net/gfwlist -server=/.fofg.org/127.0.0.1#5353 -ipset=/.fofg.org/gfwlist -server=/.fofldfradio.org/127.0.0.1#5353 -ipset=/.fofldfradio.org/gfwlist -server=/.fonts.googleapis.com/127.0.0.1#5353 -ipset=/.fonts.googleapis.com/gfwlist -server=/.fonts.gstatic.com/127.0.0.1#5353 -ipset=/.fonts.gstatic.com/gfwlist -server=/.fooooo.com/127.0.0.1#5353 -ipset=/.fooooo.com/gfwlist -server=/.footwiball.com/127.0.0.1#5353 -ipset=/.footwiball.com/gfwlist -server=/.forum.baby-kingdom.com/127.0.0.1#5353 -ipset=/.forum.baby-kingdom.com/gfwlist -server=/.forum.cyberctm.com/127.0.0.1#5353 -ipset=/.forum.cyberctm.com/gfwlist -server=/.forum.idsam.com/127.0.0.1#5353 -ipset=/.forum.idsam.com/gfwlist -server=/.forum.my903.com/127.0.0.1#5353 -ipset=/.forum.my903.com/gfwlist -server=/.forum.mymaji.com/127.0.0.1#5353 -ipset=/.forum.mymaji.com/gfwlist -server=/.forum.omy.sg/127.0.0.1#5353 -ipset=/.forum.omy.sg/gfwlist -server=/.forum.palmislife.com/127.0.0.1#5353 -ipset=/.forum.palmislife.com/gfwlist -server=/.forum.setty.com.tw/127.0.0.1#5353 -ipset=/.forum.setty.com.tw/gfwlist -server=/.forum.sina.com.hk/127.0.0.1#5353 -ipset=/.forum.sina.com.hk/gfwlist -server=/.forum.slime.com.tw/127.0.0.1#5353 -ipset=/.forum.slime.com.tw/gfwlist -server=/.forum.tvb.com/127.0.0.1#5353 -ipset=/.forum.tvb.com/gfwlist -server=/.forum4hk.com/127.0.0.1#5353 -ipset=/.forum4hk.com/gfwlist -server=/.fotile.me/127.0.0.1#5353 -ipset=/.fotile.me/gfwlist -server=/.fourface.nodesnoop.com/127.0.0.1#5353 -ipset=/.fourface.nodesnoop.com/gfwlist -server=/.fourthinternational.org/127.0.0.1#5353 -ipset=/.fourthinternational.org/gfwlist -server=/.foxdie.us/127.0.0.1#5353 -ipset=/.foxdie.us/gfwlist -server=/.foxgay.com/127.0.0.1#5353 -ipset=/.foxgay.com/gfwlist -server=/.foxsub.com/127.0.0.1#5353 -ipset=/.foxsub.com/gfwlist -server=/.foxtang.com/127.0.0.1#5353 -ipset=/.foxtang.com/gfwlist -server=/.fpmt-osel.org/127.0.0.1#5353 -ipset=/.fpmt-osel.org/gfwlist -server=/.fpmt.org/127.0.0.1#5353 -ipset=/.fpmt.org/gfwlist -server=/.fpmt.tw/127.0.0.1#5353 -ipset=/.fpmt.tw/gfwlist -server=/.fpmtmexico.org/127.0.0.1#5353 -ipset=/.fpmtmexico.org/gfwlist -server=/.fq.wikia.com/127.0.0.1#5353 -ipset=/.fq.wikia.com/gfwlist -server=/.fqok.org/127.0.0.1#5353 -ipset=/.fqok.org/gfwlist -server=/.fqrouter.com/127.0.0.1#5353 -ipset=/.fqrouter.com/gfwlist -server=/.franklc.com/127.0.0.1#5353 -ipset=/.franklc.com/gfwlist -server=/.freakshare.com/127.0.0.1#5353 -ipset=/.freakshare.com/gfwlist -server=/.free-gate.org/127.0.0.1#5353 -ipset=/.free-gate.org/gfwlist -server=/.free-hada-now.org/127.0.0.1#5353 -ipset=/.free-hada-now.org/gfwlist -server=/.free-proxy.cz/127.0.0.1#5353 -ipset=/.free-proxy.cz/gfwlist -server=/.free-ss.site/127.0.0.1#5353 -ipset=/.free-ss.site/gfwlist -server=/.free-ssh.com/127.0.0.1#5353 -ipset=/.free-ssh.com/gfwlist -server=/.free4u.com.ar/127.0.0.1#5353 -ipset=/.free4u.com.ar/gfwlist -server=/.freealim.com/127.0.0.1#5353 -ipset=/.freealim.com/gfwlist -server=/.freebrowser.org/127.0.0.1#5353 -ipset=/.freebrowser.org/gfwlist -server=/.freechal.com/127.0.0.1#5353 -ipset=/.freechal.com/gfwlist -server=/.freechina.net/127.0.0.1#5353 -ipset=/.freechina.net/gfwlist -server=/.freechinaforum.org/127.0.0.1#5353 -ipset=/.freechinaforum.org/gfwlist -server=/.freeddns.com/127.0.0.1#5353 -ipset=/.freeddns.com/gfwlist -server=/.freeddns.org/127.0.0.1#5353 -ipset=/.freeddns.org/gfwlist -server=/.freedomchina.info/127.0.0.1#5353 -ipset=/.freedomchina.info/gfwlist -server=/.freedomhouse.org/127.0.0.1#5353 -ipset=/.freedomhouse.org/gfwlist -server=/.freedominfonetweb.wordpress.com/127.0.0.1#5353 -ipset=/.freedominfonetweb.wordpress.com/gfwlist -server=/.freedomsherald.org/127.0.0.1#5353 -ipset=/.freedomsherald.org/gfwlist -server=/.freeforums.org/127.0.0.1#5353 -ipset=/.freeforums.org/gfwlist -server=/.freefq.com/127.0.0.1#5353 -ipset=/.freefq.com/gfwlist -server=/.freefuckvids.com/127.0.0.1#5353 -ipset=/.freefuckvids.com/gfwlist -server=/.freegao.com/127.0.0.1#5353 -ipset=/.freegao.com/gfwlist -server=/.freeilhamtohti.org/127.0.0.1#5353 -ipset=/.freeilhamtohti.org/gfwlist -server=/.freekwonpyong.org/127.0.0.1#5353 -ipset=/.freekwonpyong.org/gfwlist -server=/.freelotto.com/127.0.0.1#5353 -ipset=/.freelotto.com/gfwlist -server=/.freeman2.com/127.0.0.1#5353 -ipset=/.freeman2.com/gfwlist -server=/.freemoren.com/127.0.0.1#5353 -ipset=/.freemoren.com/gfwlist -server=/.freemorenews.com/127.0.0.1#5353 -ipset=/.freemorenews.com/gfwlist -server=/.freenet-china.org/127.0.0.1#5353 -ipset=/.freenet-china.org/gfwlist -server=/.freenetproject.org/127.0.0.1#5353 -ipset=/.freenetproject.org/gfwlist -server=/.freenewscn.com/127.0.0.1#5353 -ipset=/.freenewscn.com/gfwlist -server=/.freeopenvpn.com/127.0.0.1#5353 -ipset=/.freeopenvpn.com/gfwlist -server=/.freeoz.org/127.0.0.1#5353 -ipset=/.freeoz.org/gfwlist -server=/.freessh.us/127.0.0.1#5353 -ipset=/.freessh.us/gfwlist -server=/.freetcp.com/127.0.0.1#5353 -ipset=/.freetcp.com/gfwlist -server=/.freetibet.net/127.0.0.1#5353 -ipset=/.freetibet.net/gfwlist -server=/.freetibet.org/127.0.0.1#5353 -ipset=/.freetibet.org/gfwlist -server=/.freetibetanheroes.org/127.0.0.1#5353 -ipset=/.freetibetanheroes.org/gfwlist -server=/.freeviewmovies.com/127.0.0.1#5353 -ipset=/.freeviewmovies.com/gfwlist -server=/.freevpn.me/127.0.0.1#5353 -ipset=/.freevpn.me/gfwlist -server=/.freevpn.nl/127.0.0.1#5353 -ipset=/.freevpn.nl/gfwlist -server=/.freewallpaper4.me/127.0.0.1#5353 -ipset=/.freewallpaper4.me/gfwlist -server=/.freewebs.com/127.0.0.1#5353 -ipset=/.freewebs.com/gfwlist -server=/.freewechat.com/127.0.0.1#5353 -ipset=/.freewechat.com/gfwlist -server=/.freewww.biz/127.0.0.1#5353 -ipset=/.freewww.biz/gfwlist -server=/.freewww.info/127.0.0.1#5353 -ipset=/.freewww.info/gfwlist -server=/.freexinwen.com/127.0.0.1#5353 -ipset=/.freexinwen.com/gfwlist -server=/.freeyellow.com/127.0.0.1#5353 -ipset=/.freeyellow.com/gfwlist -server=/.freeyoutubeproxy.net/127.0.0.1#5353 -ipset=/.freeyoutubeproxy.net/gfwlist -server=/.friendfeed.com/127.0.0.1#5353 -ipset=/.friendfeed.com/gfwlist -server=/.friends-of-tibet.org/127.0.0.1#5353 -ipset=/.friends-of-tibet.org/gfwlist -server=/.friendsoftibet.org/127.0.0.1#5353 -ipset=/.friendsoftibet.org/gfwlist -server=/.fring.com/127.0.0.1#5353 -ipset=/.fring.com/gfwlist -server=/.fringenetwork.com/127.0.0.1#5353 -ipset=/.fringenetwork.com/gfwlist -server=/.from-pr.com/127.0.0.1#5353 -ipset=/.from-pr.com/gfwlist -server=/.from-sd.com/127.0.0.1#5353 -ipset=/.from-sd.com/gfwlist -server=/.fromchinatousa.net/127.0.0.1#5353 -ipset=/.fromchinatousa.net/gfwlist -server=/.frommel.net/127.0.0.1#5353 -ipset=/.frommel.net/gfwlist -server=/.frontlinedefenders.org/127.0.0.1#5353 -ipset=/.frontlinedefenders.org/gfwlist -server=/.frootvpn.com/127.0.0.1#5353 -ipset=/.frootvpn.com/gfwlist -server=/.fscked.org/127.0.0.1#5353 -ipset=/.fscked.org/gfwlist -server=/.fsurf.com/127.0.0.1#5353 -ipset=/.fsurf.com/gfwlist -server=/.ftp1.biz/127.0.0.1#5353 -ipset=/.ftp1.biz/gfwlist -server=/.ftpserver.biz/127.0.0.1#5353 -ipset=/.ftpserver.biz/gfwlist -server=/.ftv.com.tw/127.0.0.1#5353 -ipset=/.ftv.com.tw/gfwlist -server=/.fucd.com/127.0.0.1#5353 -ipset=/.fucd.com/gfwlist -server=/.fuckcnnic.net/127.0.0.1#5353 -ipset=/.fuckcnnic.net/gfwlist -server=/.fuckgfw.org/127.0.0.1#5353 -ipset=/.fuckgfw.org/gfwlist -server=/.fullerconsideration.com/127.0.0.1#5353 -ipset=/.fullerconsideration.com/gfwlist -server=/.fulue.com/127.0.0.1#5353 -ipset=/.fulue.com/gfwlist -server=/.funf.tw/127.0.0.1#5353 -ipset=/.funf.tw/gfwlist -server=/.funkyimg.com/127.0.0.1#5353 -ipset=/.funkyimg.com/gfwlist -server=/.funp.com/127.0.0.1#5353 -ipset=/.funp.com/gfwlist -server=/.fuq.com/127.0.0.1#5353 -ipset=/.fuq.com/gfwlist -server=/.furbo.org/127.0.0.1#5353 -ipset=/.furbo.org/gfwlist -server=/.furhhdl.org/127.0.0.1#5353 -ipset=/.furhhdl.org/gfwlist -server=/.furinkan.com/127.0.0.1#5353 -ipset=/.furinkan.com/gfwlist -server=/.furl.net/127.0.0.1#5353 -ipset=/.furl.net/gfwlist -server=/.futurechinaforum.org/127.0.0.1#5353 -ipset=/.futurechinaforum.org/gfwlist -server=/.futuremessage.org/127.0.0.1#5353 -ipset=/.futuremessage.org/gfwlist -server=/.fux.com/127.0.0.1#5353 -ipset=/.fux.com/gfwlist -server=/.fuyin.net/127.0.0.1#5353 -ipset=/.fuyin.net/gfwlist -server=/.fuyindiantai.org/127.0.0.1#5353 -ipset=/.fuyindiantai.org/gfwlist -server=/.fuyu.org.tw/127.0.0.1#5353 -ipset=/.fuyu.org.tw/gfwlist -server=/.fw.cm/127.0.0.1#5353 -ipset=/.fw.cm/gfwlist -server=/.fxcm-chinese.com/127.0.0.1#5353 -ipset=/.fxcm-chinese.com/gfwlist -server=/.fxnetworks.com/127.0.0.1#5353 -ipset=/.fxnetworks.com/gfwlist -server=/.fzh999.com/127.0.0.1#5353 -ipset=/.fzh999.com/gfwlist -server=/.fzh999.net/127.0.0.1#5353 -ipset=/.fzh999.net/gfwlist -server=/.fzlm.com/127.0.0.1#5353 -ipset=/.fzlm.com/gfwlist -server=/.g-area.org/127.0.0.1#5353 -ipset=/.g-area.org/gfwlist -server=/.g-queen.com/127.0.0.1#5353 -ipset=/.g-queen.com/gfwlist -server=/.g.co/127.0.0.1#5353 -ipset=/.g.co/gfwlist -server=/.g6hentai.com/127.0.0.1#5353 -ipset=/.g6hentai.com/gfwlist -server=/.gabocorp.com/127.0.0.1#5353 -ipset=/.gabocorp.com/gfwlist -server=/.gaeproxy.com/127.0.0.1#5353 -ipset=/.gaeproxy.com/gfwlist -server=/.gaforum.org/127.0.0.1#5353 -ipset=/.gaforum.org/gfwlist -server=/.galaxymacau.com/127.0.0.1#5353 -ipset=/.galaxymacau.com/gfwlist -server=/.galenwu.com/127.0.0.1#5353 -ipset=/.galenwu.com/gfwlist -server=/.galstars.net/127.0.0.1#5353 -ipset=/.galstars.net/gfwlist -server=/.game735.com/127.0.0.1#5353 -ipset=/.game735.com/gfwlist -server=/.gamebase.com.tw/127.0.0.1#5353 -ipset=/.gamebase.com.tw/gfwlist -server=/.gamejolt.com/127.0.0.1#5353 -ipset=/.gamejolt.com/gfwlist -server=/.gamer.com.tw/127.0.0.1#5353 -ipset=/.gamer.com.tw/gfwlist -server=/.gamez.com.tw/127.0.0.1#5353 -ipset=/.gamez.com.tw/gfwlist -server=/.gamousa.com/127.0.0.1#5353 -ipset=/.gamousa.com/gfwlist -server=/.ganges.com/127.0.0.1#5353 -ipset=/.ganges.com/gfwlist -server=/.gaoming.net/127.0.0.1#5353 -ipset=/.gaoming.net/gfwlist -server=/.gaopi.net/127.0.0.1#5353 -ipset=/.gaopi.net/gfwlist -server=/.gaozhisheng.net/127.0.0.1#5353 -ipset=/.gaozhisheng.net/gfwlist -server=/.gaozhisheng.org/127.0.0.1#5353 -ipset=/.gaozhisheng.org/gfwlist -server=/.gardennetworks.com/127.0.0.1#5353 -ipset=/.gardennetworks.com/gfwlist -server=/.gardennetworks.org/127.0.0.1#5353 -ipset=/.gardennetworks.org/gfwlist -server=/.gartlive.com/127.0.0.1#5353 -ipset=/.gartlive.com/gfwlist -server=/.gate-project.com/127.0.0.1#5353 -ipset=/.gate-project.com/gfwlist -server=/.gate.io/127.0.0.1#5353 -ipset=/.gate.io/gfwlist -server=/.gatecoin.com/127.0.0.1#5353 -ipset=/.gatecoin.com/gfwlist -server=/.gather.com/127.0.0.1#5353 -ipset=/.gather.com/gfwlist -server=/.gatherproxy.com/127.0.0.1#5353 -ipset=/.gatherproxy.com/gfwlist -server=/.gati.org.tw/127.0.0.1#5353 -ipset=/.gati.org.tw/gfwlist -server=/.gaybubble.com/127.0.0.1#5353 -ipset=/.gaybubble.com/gfwlist -server=/.gaycn.net/127.0.0.1#5353 -ipset=/.gaycn.net/gfwlist -server=/.gayhub.com/127.0.0.1#5353 -ipset=/.gayhub.com/gfwlist -server=/.gaymap.cc/127.0.0.1#5353 -ipset=/.gaymap.cc/gfwlist -server=/.gaymenring.com/127.0.0.1#5353 -ipset=/.gaymenring.com/gfwlist -server=/.gaytube.com/127.0.0.1#5353 -ipset=/.gaytube.com/gfwlist -server=/.gaywatch.com/127.0.0.1#5353 -ipset=/.gaywatch.com/gfwlist -server=/.gazotube.com/127.0.0.1#5353 -ipset=/.gazotube.com/gfwlist -server=/.gcc.org.hk/127.0.0.1#5353 -ipset=/.gcc.org.hk/gfwlist -server=/.gclooney.com/127.0.0.1#5353 -ipset=/.gclooney.com/gfwlist -server=/.gcmasia.com/127.0.0.1#5353 -ipset=/.gcmasia.com/gfwlist -server=/.gcpnews.com/127.0.0.1#5353 -ipset=/.gcpnews.com/gfwlist -server=/.gcr.io/127.0.0.1#5353 -ipset=/.gcr.io/gfwlist -server=/.gdzf.org/127.0.0.1#5353 -ipset=/.gdzf.org/gfwlist -server=/.geek-art.net/127.0.0.1#5353 -ipset=/.geek-art.net/gfwlist -server=/.geekheart.info/127.0.0.1#5353 -ipset=/.geekheart.info/gfwlist -server=/.gekikame.com/127.0.0.1#5353 -ipset=/.gekikame.com/gfwlist -server=/.gelbooru.com/127.0.0.1#5353 -ipset=/.gelbooru.com/gfwlist -server=/.geocities.co.jp/127.0.0.1#5353 -ipset=/.geocities.co.jp/gfwlist -server=/.geocities.jp/127.0.0.1#5353 -ipset=/.geocities.jp/gfwlist -server=/.gerefoundation.org/127.0.0.1#5353 -ipset=/.gerefoundation.org/gfwlist -server=/.get.app/127.0.0.1#5353 -ipset=/.get.app/gfwlist -server=/.get.how/127.0.0.1#5353 -ipset=/.get.how/gfwlist -server=/.getastrill.com/127.0.0.1#5353 -ipset=/.getastrill.com/gfwlist -server=/.getchu.com/127.0.0.1#5353 -ipset=/.getchu.com/gfwlist -server=/.getcloak.com/127.0.0.1#5353 -ipset=/.getcloak.com/gfwlist -server=/.getfoxyproxy.org/127.0.0.1#5353 -ipset=/.getfoxyproxy.org/gfwlist -server=/.getfreedur.com/127.0.0.1#5353 -ipset=/.getfreedur.com/gfwlist -server=/.getgom.com/127.0.0.1#5353 -ipset=/.getgom.com/gfwlist -server=/.geti2p.net/127.0.0.1#5353 -ipset=/.geti2p.net/gfwlist -server=/.getiton.com/127.0.0.1#5353 -ipset=/.getiton.com/gfwlist -server=/.getlantern.org/127.0.0.1#5353 -ipset=/.getlantern.org/gfwlist -server=/.getmdl.io/127.0.0.1#5353 -ipset=/.getmdl.io/gfwlist -server=/.getoutline.org/127.0.0.1#5353 -ipset=/.getoutline.org/gfwlist -server=/.getsocialscope.com/127.0.0.1#5353 -ipset=/.getsocialscope.com/gfwlist -server=/.getsync.com/127.0.0.1#5353 -ipset=/.getsync.com/gfwlist -server=/.gettrials.com/127.0.0.1#5353 -ipset=/.gettrials.com/gfwlist -server=/.gettyimages.com/127.0.0.1#5353 -ipset=/.gettyimages.com/gfwlist -server=/.getuploader.com/127.0.0.1#5353 -ipset=/.getuploader.com/gfwlist -server=/.gfbv.de/127.0.0.1#5353 -ipset=/.gfbv.de/gfwlist -server=/.gfgold.com.hk/127.0.0.1#5353 -ipset=/.gfgold.com.hk/gfwlist -server=/.gfsale.com/127.0.0.1#5353 -ipset=/.gfsale.com/gfwlist -server=/.gfw.org.ua/127.0.0.1#5353 -ipset=/.gfw.org.ua/gfwlist -server=/.gfw.press/127.0.0.1#5353 -ipset=/.gfw.press/gfwlist -server=/.ggpht.com/127.0.0.1#5353 -ipset=/.ggpht.com/gfwlist -server=/.ggssl.com/127.0.0.1#5353 -ipset=/.ggssl.com/gfwlist -server=/.ghostpath.com/127.0.0.1#5353 -ipset=/.ghostpath.com/gfwlist -server=/.ghut.org/127.0.0.1#5353 -ipset=/.ghut.org/gfwlist -server=/.giantessnight.com/127.0.0.1#5353 -ipset=/.giantessnight.com/gfwlist -server=/.gifree.com/127.0.0.1#5353 -ipset=/.gifree.com/gfwlist -server=/.giga-web.jp/127.0.0.1#5353 -ipset=/.giga-web.jp/gfwlist -server=/.gigporno.ru/127.0.0.1#5353 -ipset=/.gigporno.ru/gfwlist -server=/.girlbanker.com/127.0.0.1#5353 -ipset=/.girlbanker.com/gfwlist -server=/.gist.github.com/127.0.0.1#5353 -ipset=/.gist.github.com/gfwlist -server=/.git.io/127.0.0.1#5353 -ipset=/.git.io/gfwlist -server=/.gizlen.net/127.0.0.1#5353 -ipset=/.gizlen.net/gfwlist -server=/.gjczz.com/127.0.0.1#5353 -ipset=/.gjczz.com/gfwlist -server=/.glass8.eu/127.0.0.1#5353 -ipset=/.glass8.eu/gfwlist -server=/.global.bing.com/127.0.0.1#5353 -ipset=/.global.bing.com/gfwlist -server=/.globaljihad.net/127.0.0.1#5353 -ipset=/.globaljihad.net/gfwlist -server=/.globalmediaoutreach.com/127.0.0.1#5353 -ipset=/.globalmediaoutreach.com/gfwlist -server=/.globalmuseumoncommunism.org/127.0.0.1#5353 -ipset=/.globalmuseumoncommunism.org/gfwlist -server=/.globalrescue.net/127.0.0.1#5353 -ipset=/.globalrescue.net/gfwlist -server=/.globaltm.org/127.0.0.1#5353 -ipset=/.globaltm.org/gfwlist -server=/.globalvoices.org/127.0.0.1#5353 -ipset=/.globalvoices.org/gfwlist -server=/.globalvoicesonline.org/127.0.0.1#5353 -ipset=/.globalvoicesonline.org/gfwlist -server=/.globalvpn.net/127.0.0.1#5353 -ipset=/.globalvpn.net/gfwlist -server=/.glock.com/127.0.0.1#5353 -ipset=/.glock.com/gfwlist -server=/.gloryhole.com/127.0.0.1#5353 -ipset=/.gloryhole.com/gfwlist -server=/.glorystar.me/127.0.0.1#5353 -ipset=/.glorystar.me/gfwlist -server=/.glype.com/127.0.0.1#5353 -ipset=/.glype.com/gfwlist -server=/.gmail.com/127.0.0.1#5353 -ipset=/.gmail.com/gfwlist -server=/.gmbd.cn/127.0.0.1#5353 -ipset=/.gmbd.cn/gfwlist -server=/.gmhz.org/127.0.0.1#5353 -ipset=/.gmhz.org/gfwlist -server=/.gmll.org/127.0.0.1#5353 -ipset=/.gmll.org/gfwlist -server=/.gmodules.com/127.0.0.1#5353 -ipset=/.gmodules.com/gfwlist -server=/.gmozomg.izihost.org/127.0.0.1#5353 -ipset=/.gmozomg.izihost.org/gfwlist -server=/.gnci.org.hk/127.0.0.1#5353 -ipset=/.gnci.org.hk/gfwlist -server=/.go-pki.com/127.0.0.1#5353 -ipset=/.go-pki.com/gfwlist -server=/.go.nesnode.com/127.0.0.1#5353 -ipset=/.go.nesnode.com/gfwlist -server=/.go141.com/127.0.0.1#5353 -ipset=/.go141.com/gfwlist -server=/.goagent.biz/127.0.0.1#5353 -ipset=/.goagent.biz/gfwlist -server=/.goagent.codeplex.com/127.0.0.1#5353 -ipset=/.goagent.codeplex.com/gfwlist -server=/.goagentplus.com/127.0.0.1#5353 -ipset=/.goagentplus.com/gfwlist -server=/.gobet.cc/127.0.0.1#5353 -ipset=/.gobet.cc/gfwlist -server=/.godfootsteps.org/127.0.0.1#5353 -ipset=/.godfootsteps.org/gfwlist -server=/.godns.work/127.0.0.1#5353 -ipset=/.godns.work/gfwlist -server=/.godoc.org/127.0.0.1#5353 -ipset=/.godoc.org/gfwlist -server=/.godsdirectcontact.co.uk/127.0.0.1#5353 -ipset=/.godsdirectcontact.co.uk/gfwlist -server=/.godsdirectcontact.org/127.0.0.1#5353 -ipset=/.godsdirectcontact.org/gfwlist -server=/.godsimmediatecontact.com/127.0.0.1#5353 -ipset=/.godsimmediatecontact.com/gfwlist -server=/.gogotunnel.com/127.0.0.1#5353 -ipset=/.gogotunnel.com/gfwlist -server=/.gohappy.com.tw/127.0.0.1#5353 -ipset=/.gohappy.com.tw/gfwlist -server=/.gojet.krtco.com.tw/127.0.0.1#5353 -ipset=/.gojet.krtco.com.tw/gfwlist -server=/.gokbayrak.com/127.0.0.1#5353 -ipset=/.gokbayrak.com/gfwlist -server=/.golang.org/127.0.0.1#5353 -ipset=/.golang.org/gfwlist -server=/.goldbet.com/127.0.0.1#5353 -ipset=/.goldbet.com/gfwlist -server=/.goldbetsports.com/127.0.0.1#5353 -ipset=/.goldbetsports.com/gfwlist -server=/.goldeneyevault.com/127.0.0.1#5353 -ipset=/.goldeneyevault.com/gfwlist -server=/.goldenfrog.com/127.0.0.1#5353 -ipset=/.goldenfrog.com/gfwlist -server=/.goldjizz.com/127.0.0.1#5353 -ipset=/.goldjizz.com/gfwlist -server=/.goldstep.net/127.0.0.1#5353 -ipset=/.goldstep.net/gfwlist -server=/.goldwave.com/127.0.0.1#5353 -ipset=/.goldwave.com/gfwlist -server=/.gongm.in/127.0.0.1#5353 -ipset=/.gongm.in/gfwlist -server=/.gongmeng.info/127.0.0.1#5353 -ipset=/.gongmeng.info/gfwlist -server=/.gongminliliang.com/127.0.0.1#5353 -ipset=/.gongminliliang.com/gfwlist -server=/.gongwt.com/127.0.0.1#5353 -ipset=/.gongwt.com/gfwlist -server=/.goo.gl/127.0.0.1#5353 -ipset=/.goo.gl/gfwlist -server=/.gooday.xyz/127.0.0.1#5353 -ipset=/.gooday.xyz/gfwlist -server=/.gooddns.info/127.0.0.1#5353 -ipset=/.gooddns.info/gfwlist -server=/.goodreaders.com/127.0.0.1#5353 -ipset=/.goodreaders.com/gfwlist -server=/.goodreads.com/127.0.0.1#5353 -ipset=/.goodreads.com/gfwlist -server=/.goodtv.com.tw/127.0.0.1#5353 -ipset=/.goodtv.com.tw/gfwlist -server=/.goodtv.tv/127.0.0.1#5353 -ipset=/.goodtv.tv/gfwlist -server=/.goofind.com/127.0.0.1#5353 -ipset=/.goofind.com/gfwlist -server=/.google.ae/127.0.0.1#5353 -ipset=/.google.ae/gfwlist -server=/.google.am/127.0.0.1#5353 -ipset=/.google.am/gfwlist -server=/.google.as/127.0.0.1#5353 -ipset=/.google.as/gfwlist -server=/.google.at/127.0.0.1#5353 -ipset=/.google.at/gfwlist -server=/.google.az/127.0.0.1#5353 -ipset=/.google.az/gfwlist -server=/.google.ba/127.0.0.1#5353 -ipset=/.google.ba/gfwlist -server=/.google.be/127.0.0.1#5353 -ipset=/.google.be/gfwlist -server=/.google.bg/127.0.0.1#5353 -ipset=/.google.bg/gfwlist -server=/.google.ca/127.0.0.1#5353 -ipset=/.google.ca/gfwlist -server=/.google.calstate.edu/127.0.0.1#5353 -ipset=/.google.calstate.edu/gfwlist -server=/.google.cd/127.0.0.1#5353 -ipset=/.google.cd/gfwlist -server=/.google.ci/127.0.0.1#5353 -ipset=/.google.ci/gfwlist -server=/.google.co.id/127.0.0.1#5353 -ipset=/.google.co.id/gfwlist -server=/.google.co.jp/127.0.0.1#5353 -ipset=/.google.co.jp/gfwlist -server=/.google.co.kr/127.0.0.1#5353 -ipset=/.google.co.kr/gfwlist -server=/.google.co.ma/127.0.0.1#5353 -ipset=/.google.co.ma/gfwlist -server=/.google.co.uk/127.0.0.1#5353 -ipset=/.google.co.uk/gfwlist -server=/.google.com/127.0.0.1#5353 -ipset=/.google.com/gfwlist -server=/.google.de/127.0.0.1#5353 -ipset=/.google.de/gfwlist -server=/.google.dj/127.0.0.1#5353 -ipset=/.google.dj/gfwlist -server=/.google.dk/127.0.0.1#5353 -ipset=/.google.dk/gfwlist -server=/.google.es/127.0.0.1#5353 -ipset=/.google.es/gfwlist -server=/.google.fi/127.0.0.1#5353 -ipset=/.google.fi/gfwlist -server=/.google.fm/127.0.0.1#5353 -ipset=/.google.fm/gfwlist -server=/.google.fr/127.0.0.1#5353 -ipset=/.google.fr/gfwlist -server=/.google.gg/127.0.0.1#5353 -ipset=/.google.gg/gfwlist -server=/.google.gl/127.0.0.1#5353 -ipset=/.google.gl/gfwlist -server=/.google.gr/127.0.0.1#5353 -ipset=/.google.gr/gfwlist -server=/.google.ie/127.0.0.1#5353 -ipset=/.google.ie/gfwlist -server=/.google.is/127.0.0.1#5353 -ipset=/.google.is/gfwlist -server=/.google.it/127.0.0.1#5353 -ipset=/.google.it/gfwlist -server=/.google.jo/127.0.0.1#5353 -ipset=/.google.jo/gfwlist -server=/.google.kz/127.0.0.1#5353 -ipset=/.google.kz/gfwlist -server=/.google.lv/127.0.0.1#5353 -ipset=/.google.lv/gfwlist -server=/.google.mn/127.0.0.1#5353 -ipset=/.google.mn/gfwlist -server=/.google.ms/127.0.0.1#5353 -ipset=/.google.ms/gfwlist -server=/.google.nl/127.0.0.1#5353 -ipset=/.google.nl/gfwlist -server=/.google.no/127.0.0.1#5353 -ipset=/.google.no/gfwlist -server=/.google.nu/127.0.0.1#5353 -ipset=/.google.nu/gfwlist -server=/.google.ro/127.0.0.1#5353 -ipset=/.google.ro/gfwlist -server=/.google.ru/127.0.0.1#5353 -ipset=/.google.ru/gfwlist -server=/.google.rw/127.0.0.1#5353 -ipset=/.google.rw/gfwlist -server=/.google.sc/127.0.0.1#5353 -ipset=/.google.sc/gfwlist -server=/.google.sh/127.0.0.1#5353 -ipset=/.google.sh/gfwlist -server=/.google.sk/127.0.0.1#5353 -ipset=/.google.sk/gfwlist -server=/.google.sm/127.0.0.1#5353 -ipset=/.google.sm/gfwlist -server=/.google.sn/127.0.0.1#5353 -ipset=/.google.sn/gfwlist -server=/.google.tk/127.0.0.1#5353 -ipset=/.google.tk/gfwlist -server=/.google.tm/127.0.0.1#5353 -ipset=/.google.tm/gfwlist -server=/.google.to/127.0.0.1#5353 -ipset=/.google.to/gfwlist -server=/.google.tt/127.0.0.1#5353 -ipset=/.google.tt/gfwlist -server=/.google.vu/127.0.0.1#5353 -ipset=/.google.vu/gfwlist -server=/.google.ws/127.0.0.1#5353 -ipset=/.google.ws/gfwlist -server=/.googleapis.cn/127.0.0.1#5353 -ipset=/.googleapis.cn/gfwlist -server=/.googleapis.com/127.0.0.1#5353 -ipset=/.googleapis.com/gfwlist -server=/.googleapps.com/127.0.0.1#5353 -ipset=/.googleapps.com/gfwlist -server=/.googlearth.com/127.0.0.1#5353 -ipset=/.googlearth.com/gfwlist -server=/.googleartproject.com/127.0.0.1#5353 -ipset=/.googleartproject.com/gfwlist -server=/.googleblog.com/127.0.0.1#5353 -ipset=/.googleblog.com/gfwlist -server=/.googlebot.com/127.0.0.1#5353 -ipset=/.googlebot.com/gfwlist -server=/.googlechinawebmaster.com/127.0.0.1#5353 -ipset=/.googlechinawebmaster.com/gfwlist -server=/.googlecode.com/127.0.0.1#5353 -ipset=/.googlecode.com/gfwlist -server=/.googlecommerce.com/127.0.0.1#5353 -ipset=/.googlecommerce.com/gfwlist -server=/.googledomains.com/127.0.0.1#5353 -ipset=/.googledomains.com/gfwlist -server=/.googledrive.com/127.0.0.1#5353 -ipset=/.googledrive.com/gfwlist -server=/.googleearth.com/127.0.0.1#5353 -ipset=/.googleearth.com/gfwlist -server=/.googlegroups.com/127.0.0.1#5353 -ipset=/.googlegroups.com/gfwlist -server=/.googlehosted.com/127.0.0.1#5353 -ipset=/.googlehosted.com/gfwlist -server=/.googleideas.com/127.0.0.1#5353 -ipset=/.googleideas.com/gfwlist -server=/.googleinsidesearch.com/127.0.0.1#5353 -ipset=/.googleinsidesearch.com/gfwlist -server=/.googlelabs.com/127.0.0.1#5353 -ipset=/.googlelabs.com/gfwlist -server=/.googlemail.com/127.0.0.1#5353 -ipset=/.googlemail.com/gfwlist -server=/.googlemashups.com/127.0.0.1#5353 -ipset=/.googlemashups.com/gfwlist -server=/.googlepagecreator.com/127.0.0.1#5353 -ipset=/.googlepagecreator.com/gfwlist -server=/.googleplay.com/127.0.0.1#5353 -ipset=/.googleplay.com/gfwlist -server=/.googleplus.com/127.0.0.1#5353 -ipset=/.googleplus.com/gfwlist -server=/.googlescholar.com/127.0.0.1#5353 -ipset=/.googlescholar.com/gfwlist -server=/.googlesile.com/127.0.0.1#5353 -ipset=/.googlesile.com/gfwlist -server=/.googlesource.com/127.0.0.1#5353 -ipset=/.googlesource.com/gfwlist -server=/.googleusercontent.com/127.0.0.1#5353 -ipset=/.googleusercontent.com/gfwlist -server=/.googlevideo.com/127.0.0.1#5353 -ipset=/.googlevideo.com/gfwlist -server=/.googleweblight.com/127.0.0.1#5353 -ipset=/.googleweblight.com/gfwlist -server=/.googlezip.net/127.0.0.1#5353 -ipset=/.googlezip.net/gfwlist -server=/.gopetition.com/127.0.0.1#5353 -ipset=/.gopetition.com/gfwlist -server=/.goproxing.net/127.0.0.1#5353 -ipset=/.goproxing.net/gfwlist -server=/.gospelherald.com/127.0.0.1#5353 -ipset=/.gospelherald.com/gfwlist -server=/.got-game.org/127.0.0.1#5353 -ipset=/.got-game.org/gfwlist -server=/.gotdns.ch/127.0.0.1#5353 -ipset=/.gotdns.ch/gfwlist -server=/.gotgeeks.com/127.0.0.1#5353 -ipset=/.gotgeeks.com/gfwlist -server=/.gotrusted.com/127.0.0.1#5353 -ipset=/.gotrusted.com/gfwlist -server=/.gotw.ca/127.0.0.1#5353 -ipset=/.gotw.ca/gfwlist -server=/.gov.cn/127.0.0.1#5353 -ipset=/.gov.cn/gfwlist -server=/.gov.taipei/127.0.0.1#5353 -ipset=/.gov.taipei/gfwlist -server=/.gov.tw/127.0.0.1#5353 -ipset=/.gov.tw/gfwlist -server=/.gr8domain.biz/127.0.0.1#5353 -ipset=/.gr8domain.biz/gfwlist -server=/.gr8name.biz/127.0.0.1#5353 -ipset=/.gr8name.biz/gfwlist -server=/.grammaly.com/127.0.0.1#5353 -ipset=/.grammaly.com/gfwlist -server=/.grandtrial.org/127.0.0.1#5353 -ipset=/.grandtrial.org/gfwlist -server=/.grangorz.org/127.0.0.1#5353 -ipset=/.grangorz.org/gfwlist -server=/.graphis.ne.jp/127.0.0.1#5353 -ipset=/.graphis.ne.jp/gfwlist -server=/.graphql.org/127.0.0.1#5353 -ipset=/.graphql.org/gfwlist -server=/.grb.gov.tw/127.0.0.1#5353 -ipset=/.grb.gov.tw/gfwlist -server=/.greasespot.net/127.0.0.1#5353 -ipset=/.greasespot.net/gfwlist -server=/.great-firewall.com/127.0.0.1#5353 -ipset=/.great-firewall.com/gfwlist -server=/.great-roc.org/127.0.0.1#5353 -ipset=/.great-roc.org/gfwlist -server=/.greatfire.org/127.0.0.1#5353 -ipset=/.greatfire.org/gfwlist -server=/.greatfire.us7.list-manage.com/127.0.0.1#5353 -ipset=/.greatfire.us7.list-manage.com/gfwlist -server=/.greatfirewall.biz/127.0.0.1#5353 -ipset=/.greatfirewall.biz/gfwlist -server=/.greatfirewallofchina.net/127.0.0.1#5353 -ipset=/.greatfirewallofchina.net/gfwlist -server=/.greatfirewallofchina.org/127.0.0.1#5353 -ipset=/.greatfirewallofchina.org/gfwlist -server=/.greatroc.org/127.0.0.1#5353 -ipset=/.greatroc.org/gfwlist -server=/.greatroc.tw/127.0.0.1#5353 -ipset=/.greatroc.tw/gfwlist -server=/.greatzhonghua.org/127.0.0.1#5353 -ipset=/.greatzhonghua.org/gfwlist -server=/.greenfieldbookstore.com.hk/127.0.0.1#5353 -ipset=/.greenfieldbookstore.com.hk/gfwlist -server=/.greenparty.org.tw/127.0.0.1#5353 -ipset=/.greenparty.org.tw/gfwlist -server=/.greenpeace.com.tw/127.0.0.1#5353 -ipset=/.greenpeace.com.tw/gfwlist -server=/.greenpeace.org/127.0.0.1#5353 -ipset=/.greenpeace.org/gfwlist -server=/.greenvpn.net/127.0.0.1#5353 -ipset=/.greenvpn.net/gfwlist -server=/.greenvpn.org/127.0.0.1#5353 -ipset=/.greenvpn.org/gfwlist -server=/.grotty-monday.com/127.0.0.1#5353 -ipset=/.grotty-monday.com/gfwlist -server=/.groups.google.cn/127.0.0.1#5353 -ipset=/.groups.google.cn/gfwlist -server=/.gs-discuss.com/127.0.0.1#5353 -ipset=/.gs-discuss.com/gfwlist -server=/.gsp.target.com/127.0.0.1#5353 -ipset=/.gsp.target.com/gfwlist -server=/.gstatic.com/127.0.0.1#5353 -ipset=/.gstatic.com/gfwlist -server=/.gtricks.com/127.0.0.1#5353 -ipset=/.gtricks.com/gfwlist -server=/.gts-vpn.com/127.0.0.1#5353 -ipset=/.gts-vpn.com/gfwlist -server=/.gu-chu-sum.org/127.0.0.1#5353 -ipset=/.gu-chu-sum.org/gfwlist -server=/.guaguass.com/127.0.0.1#5353 -ipset=/.guaguass.com/gfwlist -server=/.guaguass.org/127.0.0.1#5353 -ipset=/.guaguass.org/gfwlist -server=/.guancha.org/127.0.0.1#5353 -ipset=/.guancha.org/gfwlist -server=/.guaneryu.com/127.0.0.1#5353 -ipset=/.guaneryu.com/gfwlist -server=/.guangming.com.my/127.0.0.1#5353 -ipset=/.guangming.com.my/gfwlist -server=/.guardster.com/127.0.0.1#5353 -ipset=/.guardster.com/gfwlist -server=/.guishan.org/127.0.0.1#5353 -ipset=/.guishan.org/gfwlist -server=/.gumroad.com/127.0.0.1#5353 -ipset=/.gumroad.com/gfwlist -server=/.gun-world.net/127.0.0.1#5353 -ipset=/.gun-world.net/gfwlist -server=/.gunsamerica.com/127.0.0.1#5353 -ipset=/.gunsamerica.com/gfwlist -server=/.gunsandammo.com/127.0.0.1#5353 -ipset=/.gunsandammo.com/gfwlist -server=/.guo.media/127.0.0.1#5353 -ipset=/.guo.media/gfwlist -server=/.guruonline.hk/127.0.0.1#5353 -ipset=/.guruonline.hk/gfwlist -server=/.gutteruncensored.com/127.0.0.1#5353 -ipset=/.gutteruncensored.com/gfwlist -server=/.gvlib.com/127.0.0.1#5353 -ipset=/.gvlib.com/gfwlist -server=/.gvm.com.tw/127.0.0.1#5353 -ipset=/.gvm.com.tw/gfwlist -server=/.gvt0.com/127.0.0.1#5353 -ipset=/.gvt0.com/gfwlist -server=/.gvt1.com/127.0.0.1#5353 -ipset=/.gvt1.com/gfwlist -server=/.gvt3.com/127.0.0.1#5353 -ipset=/.gvt3.com/gfwlist -server=/.gwtproject.org/127.0.0.1#5353 -ipset=/.gwtproject.org/gfwlist -server=/.gyalwarinpoche.com/127.0.0.1#5353 -ipset=/.gyalwarinpoche.com/gfwlist -server=/.gyatsostudio.com/127.0.0.1#5353 -ipset=/.gyatsostudio.com/gfwlist -server=/.gysd.nyc.gov.tw/127.0.0.1#5353 -ipset=/.gysd.nyc.gov.tw/gfwlist -server=/.gzm.tv/127.0.0.1#5353 -ipset=/.gzm.tv/gfwlist -server=/.gzone-anime.info/127.0.0.1#5353 -ipset=/.gzone-anime.info/gfwlist -server=/.h-china.org/127.0.0.1#5353 -ipset=/.h-china.org/gfwlist -server=/.h-moe.com/127.0.0.1#5353 -ipset=/.h-moe.com/gfwlist -server=/.h1n1china.org/127.0.0.1#5353 -ipset=/.h1n1china.org/gfwlist -server=/.h528.com/127.0.0.1#5353 -ipset=/.h528.com/gfwlist -server=/.h5dm.com/127.0.0.1#5353 -ipset=/.h5dm.com/gfwlist -server=/.h5galgame.me/127.0.0.1#5353 -ipset=/.h5galgame.me/gfwlist -server=/.hacg.club/127.0.0.1#5353 -ipset=/.hacg.club/gfwlist -server=/.hacg.in/127.0.0.1#5353 -ipset=/.hacg.in/gfwlist -server=/.hacg.li/127.0.0.1#5353 -ipset=/.hacg.li/gfwlist -server=/.hacg.me/127.0.0.1#5353 -ipset=/.hacg.me/gfwlist -server=/.hacg.red/127.0.0.1#5353 -ipset=/.hacg.red/gfwlist -server=/.hacker.org/127.0.0.1#5353 -ipset=/.hacker.org/gfwlist -server=/.hackthatphone.net/127.0.0.1#5353 -ipset=/.hackthatphone.net/gfwlist -server=/.hahaxixi.github.io/127.0.0.1#5353 -ipset=/.hahaxixi.github.io/gfwlist -server=/.hahlo.com/127.0.0.1#5353 -ipset=/.hahlo.com/gfwlist -server=/.hakkatv.org.tw/127.0.0.1#5353 -ipset=/.hakkatv.org.tw/gfwlist -server=/.handcraftedsoftware.org/127.0.0.1#5353 -ipset=/.handcraftedsoftware.org/gfwlist -server=/.hanunyi.com/127.0.0.1#5353 -ipset=/.hanunyi.com/gfwlist -server=/.haoel.github.io/127.0.0.1#5353 -ipset=/.haoel.github.io/gfwlist -server=/.haosou.com/127.0.0.1#5353 -ipset=/.haosou.com/gfwlist -server=/.happy-vpn.com/127.0.0.1#5353 -ipset=/.happy-vpn.com/gfwlist -server=/.haproxy.org/127.0.0.1#5353 -ipset=/.haproxy.org/gfwlist -server=/.hardsextube.com/127.0.0.1#5353 -ipset=/.hardsextube.com/gfwlist -server=/.harunyahya.com/127.0.0.1#5353 -ipset=/.harunyahya.com/gfwlist -server=/.hautelook.com/127.0.0.1#5353 -ipset=/.hautelook.com/gfwlist -server=/.hautelookcdn.com/127.0.0.1#5353 -ipset=/.hautelookcdn.com/gfwlist -server=/.have8.com/127.0.0.1#5353 -ipset=/.have8.com/gfwlist -server=/.haygo.com/127.0.0.1#5353 -ipset=/.haygo.com/gfwlist -server=/.hbo.com/127.0.0.1#5353 -ipset=/.hbo.com/gfwlist -server=/.hchcc.gov.tw/127.0.0.1#5353 -ipset=/.hchcc.gov.tw/gfwlist -server=/.hclips.com/127.0.0.1#5353 -ipset=/.hclips.com/gfwlist -server=/.hdlt.me/127.0.0.1#5353 -ipset=/.hdlt.me/gfwlist -server=/.hdtvb.net/127.0.0.1#5353 -ipset=/.hdtvb.net/gfwlist -server=/.hdzog.com/127.0.0.1#5353 -ipset=/.hdzog.com/gfwlist -server=/.heartyit.com/127.0.0.1#5353 -ipset=/.heartyit.com/gfwlist -server=/.heavy-r.com/127.0.0.1#5353 -ipset=/.heavy-r.com/gfwlist -server=/.hec.su/127.0.0.1#5353 -ipset=/.hec.su/gfwlist -server=/.hecaitou.net/127.0.0.1#5353 -ipset=/.hecaitou.net/gfwlist -server=/.hechaji.com/127.0.0.1#5353 -ipset=/.hechaji.com/gfwlist -server=/.heeact.edu.tw/127.0.0.1#5353 -ipset=/.heeact.edu.tw/gfwlist -server=/.hegre-art.com/127.0.0.1#5353 -ipset=/.hegre-art.com/gfwlist -server=/.heix.pp.ru/127.0.0.1#5353 -ipset=/.heix.pp.ru/gfwlist -server=/.helloandroid.com/127.0.0.1#5353 -ipset=/.helloandroid.com/gfwlist -server=/.helloqueer.com/127.0.0.1#5353 -ipset=/.helloqueer.com/gfwlist -server=/.helloss.pw/127.0.0.1#5353 -ipset=/.helloss.pw/gfwlist -server=/.hellotxt.com/127.0.0.1#5353 -ipset=/.hellotxt.com/gfwlist -server=/.help.linksalpha.com/127.0.0.1#5353 -ipset=/.help.linksalpha.com/gfwlist -server=/.helpeachpeople.com/127.0.0.1#5353 -ipset=/.helpeachpeople.com/gfwlist -server=/.helplinfen.com/127.0.0.1#5353 -ipset=/.helplinfen.com/gfwlist -server=/.helpster.de/127.0.0.1#5353 -ipset=/.helpster.de/gfwlist -server=/.helpzhuling.org/127.0.0.1#5353 -ipset=/.helpzhuling.org/gfwlist -server=/.hentai.to/127.0.0.1#5353 -ipset=/.hentai.to/gfwlist -server=/.hentaitube.tv/127.0.0.1#5353 -ipset=/.hentaitube.tv/gfwlist -server=/.hentaivideoworld.com/127.0.0.1#5353 -ipset=/.hentaivideoworld.com/gfwlist -server=/.heqinglian.net/127.0.0.1#5353 -ipset=/.heqinglian.net/gfwlist -server=/.heungkongdiscuss.com/127.0.0.1#5353 -ipset=/.heungkongdiscuss.com/gfwlist -server=/.hexieshe.com/127.0.0.1#5353 -ipset=/.hexieshe.com/gfwlist -server=/.hexieshe.xyz/127.0.0.1#5353 -ipset=/.hexieshe.xyz/gfwlist -server=/.hexxeh.net/127.0.0.1#5353 -ipset=/.hexxeh.net/gfwlist -server=/.heyzo.com/127.0.0.1#5353 -ipset=/.heyzo.com/gfwlist -server=/.hgseav.com/127.0.0.1#5353 -ipset=/.hgseav.com/gfwlist -server=/.hhdcb3office.org/127.0.0.1#5353 -ipset=/.hhdcb3office.org/gfwlist -server=/.hhthesakyatrizin.org/127.0.0.1#5353 -ipset=/.hhthesakyatrizin.org/gfwlist -server=/.hi-on.org.tw/127.0.0.1#5353 -ipset=/.hi-on.org.tw/gfwlist -server=/.hidden-advent.org/127.0.0.1#5353 -ipset=/.hidden-advent.org/gfwlist -server=/.hide.me/127.0.0.1#5353 -ipset=/.hide.me/gfwlist -server=/.hidein.net/127.0.0.1#5353 -ipset=/.hidein.net/gfwlist -server=/.hideipvpn.com/127.0.0.1#5353 -ipset=/.hideipvpn.com/gfwlist -server=/.hideman.net/127.0.0.1#5353 -ipset=/.hideman.net/gfwlist -server=/.hideme.nl/127.0.0.1#5353 -ipset=/.hideme.nl/gfwlist -server=/.hidemy.name/127.0.0.1#5353 -ipset=/.hidemy.name/gfwlist -server=/.hidemyass.com/127.0.0.1#5353 -ipset=/.hidemyass.com/gfwlist -server=/.hidemycomp.com/127.0.0.1#5353 -ipset=/.hidemycomp.com/gfwlist -server=/.higfw.com/127.0.0.1#5353 -ipset=/.higfw.com/gfwlist -server=/.highpeakspureearth.com/127.0.0.1#5353 -ipset=/.highpeakspureearth.com/gfwlist -server=/.highrockmedia.com/127.0.0.1#5353 -ipset=/.highrockmedia.com/gfwlist -server=/.hihiforum.com/127.0.0.1#5353 -ipset=/.hihiforum.com/gfwlist -server=/.hihistory.net/127.0.0.1#5353 -ipset=/.hihistory.net/gfwlist -server=/.hiitch.com/127.0.0.1#5353 -ipset=/.hiitch.com/gfwlist -server=/.hikinggfw.org/127.0.0.1#5353 -ipset=/.hikinggfw.org/gfwlist -server=/.hilive.tv/127.0.0.1#5353 -ipset=/.hilive.tv/gfwlist -server=/.himalayan-foundation.org/127.0.0.1#5353 -ipset=/.himalayan-foundation.org/gfwlist -server=/.himalayanglacier.com/127.0.0.1#5353 -ipset=/.himalayanglacier.com/gfwlist -server=/.himemix.com/127.0.0.1#5353 -ipset=/.himemix.com/gfwlist -server=/.himemix.net/127.0.0.1#5353 -ipset=/.himemix.net/gfwlist -server=/.hitbtc.com/127.0.0.1#5353 -ipset=/.hitbtc.com/gfwlist -server=/.hitomi.la/127.0.0.1#5353 -ipset=/.hitomi.la/gfwlist -server=/.hiwifi.com/127.0.0.1#5353 -ipset=/.hiwifi.com/gfwlist -server=/.hizb-ut-tahrir.info/127.0.0.1#5353 -ipset=/.hizb-ut-tahrir.info/gfwlist -server=/.hizb-ut-tahrir.org/127.0.0.1#5353 -ipset=/.hizb-ut-tahrir.org/gfwlist -server=/.hizbuttahrir.org/127.0.0.1#5353 -ipset=/.hizbuttahrir.org/gfwlist -server=/.hjclub.info/127.0.0.1#5353 -ipset=/.hjclub.info/gfwlist -server=/.hk-pub.com/127.0.0.1#5353 -ipset=/.hk-pub.com/gfwlist -server=/.hk.geocities.com/127.0.0.1#5353 -ipset=/.hk.geocities.com/gfwlist -server=/.hk.hao123img.com/127.0.0.1#5353 -ipset=/.hk.hao123img.com/gfwlist -server=/.hk.jiepang.com/127.0.0.1#5353 -ipset=/.hk.jiepang.com/gfwlist -server=/.hk.knowledge.yahoo.com/127.0.0.1#5353 -ipset=/.hk.knowledge.yahoo.com/gfwlist -server=/.hk.myblog.yahoo.com/127.0.0.1#5353 -ipset=/.hk.myblog.yahoo.com/gfwlist -server=/.hk.news.yahoo.com/127.0.0.1#5353 -ipset=/.hk.news.yahoo.com/gfwlist -server=/.hk.rd.yahoo.com/127.0.0.1#5353 -ipset=/.hk.rd.yahoo.com/gfwlist -server=/.hk.v2ex.com/127.0.0.1#5353 -ipset=/.hk.v2ex.com/gfwlist -server=/.hk.yahoo.com/127.0.0.1#5353 -ipset=/.hk.yahoo.com/gfwlist -server=/.hk01.com/127.0.0.1#5353 -ipset=/.hk01.com/gfwlist -server=/.hk32168.com/127.0.0.1#5353 -ipset=/.hk32168.com/gfwlist -server=/.hka8964.wordpress.com/127.0.0.1#5353 -ipset=/.hka8964.wordpress.com/gfwlist -server=/.hkacg.com/127.0.0.1#5353 -ipset=/.hkacg.com/gfwlist -server=/.hkacg.net/127.0.0.1#5353 -ipset=/.hkacg.net/gfwlist -server=/.hkanews.wordpress.com/127.0.0.1#5353 -ipset=/.hkanews.wordpress.com/gfwlist -server=/.hkatvnews.com/127.0.0.1#5353 -ipset=/.hkatvnews.com/gfwlist -server=/.hkbc.net/127.0.0.1#5353 -ipset=/.hkbc.net/gfwlist -server=/.hkbf.org/127.0.0.1#5353 -ipset=/.hkbf.org/gfwlist -server=/.hkbookcity.com/127.0.0.1#5353 -ipset=/.hkbookcity.com/gfwlist -server=/.hkchurch.org/127.0.0.1#5353 -ipset=/.hkchurch.org/gfwlist -server=/.hkci.org.hk/127.0.0.1#5353 -ipset=/.hkci.org.hk/gfwlist -server=/.hkcmi.edu/127.0.0.1#5353 -ipset=/.hkcmi.edu/gfwlist -server=/.hkcnews.com/127.0.0.1#5353 -ipset=/.hkcnews.com/gfwlist -server=/.hkcoc.com/127.0.0.1#5353 -ipset=/.hkcoc.com/gfwlist -server=/.hkcoc.weather.com.hk/127.0.0.1#5353 -ipset=/.hkcoc.weather.com.hk/gfwlist -server=/.hkday.net/127.0.0.1#5353 -ipset=/.hkday.net/gfwlist -server=/.hkdf.org/127.0.0.1#5353 -ipset=/.hkdf.org/gfwlist -server=/.hkej.com/127.0.0.1#5353 -ipset=/.hkej.com/gfwlist -server=/.hkfaa.com/127.0.0.1#5353 -ipset=/.hkfaa.com/gfwlist -server=/.hkfreezone.com/127.0.0.1#5353 -ipset=/.hkfreezone.com/gfwlist -server=/.hkfront.org/127.0.0.1#5353 -ipset=/.hkfront.org/gfwlist -server=/.hkgolden.com/127.0.0.1#5353 -ipset=/.hkgolden.com/gfwlist -server=/.hkhkhk.com/127.0.0.1#5353 -ipset=/.hkhkhk.com/gfwlist -server=/.hkhrc.org.hk/127.0.0.1#5353 -ipset=/.hkhrc.org.hk/gfwlist -server=/.hkhrm.org.hk/127.0.0.1#5353 -ipset=/.hkhrm.org.hk/gfwlist -server=/.hkip.org.uk/127.0.0.1#5353 -ipset=/.hkip.org.uk/gfwlist -server=/.hkjc.com/127.0.0.1#5353 -ipset=/.hkjc.com/gfwlist -server=/.hkjp.org/127.0.0.1#5353 -ipset=/.hkjp.org/gfwlist -server=/.hklft.com/127.0.0.1#5353 -ipset=/.hklft.com/gfwlist -server=/.hklts.org.hk/127.0.0.1#5353 -ipset=/.hklts.org.hk/gfwlist -server=/.hkptu.org/127.0.0.1#5353 -ipset=/.hkptu.org/gfwlist -server=/.hkreporter.com/127.0.0.1#5353 -ipset=/.hkreporter.com/gfwlist -server=/.hkreporter.loved.hk/127.0.0.1#5353 -ipset=/.hkreporter.loved.hk/gfwlist -server=/.hkupop.hku.hk/127.0.0.1#5353 -ipset=/.hkupop.hku.hk/gfwlist -server=/.hkusu.net/127.0.0.1#5353 -ipset=/.hkusu.net/gfwlist -server=/.hkvwet.com/127.0.0.1#5353 -ipset=/.hkvwet.com/gfwlist -server=/.hkwcc.org.hk/127.0.0.1#5353 -ipset=/.hkwcc.org.hk/gfwlist -server=/.hkzone.org/127.0.0.1#5353 -ipset=/.hkzone.org/gfwlist -server=/.hmonghot.com/127.0.0.1#5353 -ipset=/.hmonghot.com/gfwlist -server=/.hmvdigital.ca/127.0.0.1#5353 -ipset=/.hmvdigital.ca/gfwlist -server=/.hmvdigital.com/127.0.0.1#5353 -ipset=/.hmvdigital.com/gfwlist -server=/.hnjhj.com/127.0.0.1#5353 -ipset=/.hnjhj.com/gfwlist -server=/.hnntube.com/127.0.0.1#5353 -ipset=/.hnntube.com/gfwlist -server=/.hola.com/127.0.0.1#5353 -ipset=/.hola.com/gfwlist -server=/.hola.org/127.0.0.1#5353 -ipset=/.hola.org/gfwlist -server=/.holymountaincn.com/127.0.0.1#5353 -ipset=/.holymountaincn.com/gfwlist -server=/.holyspiritspeaks.org/127.0.0.1#5353 -ipset=/.holyspiritspeaks.org/gfwlist -server=/.home.sina.com/127.0.0.1#5353 -ipset=/.home.sina.com/gfwlist -server=/.homedepot.com/127.0.0.1#5353 -ipset=/.homedepot.com/gfwlist -server=/.homeperversion.com/127.0.0.1#5353 -ipset=/.homeperversion.com/gfwlist -server=/.homeservershow.com/127.0.0.1#5353 -ipset=/.homeservershow.com/gfwlist -server=/.hongkongfp.com/127.0.0.1#5353 -ipset=/.hongkongfp.com/gfwlist -server=/.hongmeimei.com/127.0.0.1#5353 -ipset=/.hongmeimei.com/gfwlist -server=/.hongzhi.li/127.0.0.1#5353 -ipset=/.hongzhi.li/gfwlist -server=/.hootsuite.com/127.0.0.1#5353 -ipset=/.hootsuite.com/gfwlist -server=/.hoovers.com/127.0.0.1#5353 -ipset=/.hoovers.com/gfwlist -server=/.hopedialogue.org/127.0.0.1#5353 -ipset=/.hopedialogue.org/gfwlist -server=/.hopto.org/127.0.0.1#5353 -ipset=/.hopto.org/gfwlist -server=/.hornygamer.com/127.0.0.1#5353 -ipset=/.hornygamer.com/gfwlist -server=/.hornytrip.com/127.0.0.1#5353 -ipset=/.hornytrip.com/gfwlist -server=/.hotav.tv/127.0.0.1#5353 -ipset=/.hotav.tv/gfwlist -server=/.hotels.cn/127.0.0.1#5353 -ipset=/.hotels.cn/gfwlist -server=/.hotfrog.com.tw/127.0.0.1#5353 -ipset=/.hotfrog.com.tw/gfwlist -server=/.hotgoo.com/127.0.0.1#5353 -ipset=/.hotgoo.com/gfwlist -server=/.hotpornshow.com/127.0.0.1#5353 -ipset=/.hotpornshow.com/gfwlist -server=/.hotpot.hk/127.0.0.1#5353 -ipset=/.hotpot.hk/gfwlist -server=/.hotshame.com/127.0.0.1#5353 -ipset=/.hotshame.com/gfwlist -server=/.hotspotshield.com/127.0.0.1#5353 -ipset=/.hotspotshield.com/gfwlist -server=/.hotvpn.com/127.0.0.1#5353 -ipset=/.hotvpn.com/gfwlist -server=/.hougaige.com/127.0.0.1#5353 -ipset=/.hougaige.com/gfwlist -server=/.howtoforge.com/127.0.0.1#5353 -ipset=/.howtoforge.com/gfwlist -server=/.hoxx.com/127.0.0.1#5353 -ipset=/.hoxx.com/gfwlist -server=/.hpa.gov.tw/127.0.0.1#5353 -ipset=/.hpa.gov.tw/gfwlist -server=/.hqcdp.org/127.0.0.1#5353 -ipset=/.hqcdp.org/gfwlist -server=/.hqjapanesesex.com/127.0.0.1#5353 -ipset=/.hqjapanesesex.com/gfwlist -server=/.hqmovies.com/127.0.0.1#5353 -ipset=/.hqmovies.com/gfwlist -server=/.hqsbnet.wordpress.com/127.0.0.1#5353 -ipset=/.hqsbnet.wordpress.com/gfwlist -server=/.hqsbonline.wordpress.com/127.0.0.1#5353 -ipset=/.hqsbonline.wordpress.com/gfwlist -server=/.hrcchina.org/127.0.0.1#5353 -ipset=/.hrcchina.org/gfwlist -server=/.hrcir.com/127.0.0.1#5353 -ipset=/.hrcir.com/gfwlist -server=/.hrea.org/127.0.0.1#5353 -ipset=/.hrea.org/gfwlist -server=/.hrichina.org/127.0.0.1#5353 -ipset=/.hrichina.org/gfwlist -server=/.hrw.org/127.0.0.1#5353 -ipset=/.hrw.org/gfwlist -server=/.hrweb.org/127.0.0.1#5353 -ipset=/.hrweb.org/gfwlist -server=/.hsinchu-cc.gov.tw/127.0.0.1#5353 -ipset=/.hsinchu-cc.gov.tw/gfwlist -server=/.hsjp.net/127.0.0.1#5353 -ipset=/.hsjp.net/gfwlist -server=/.hsselite.com/127.0.0.1#5353 -ipset=/.hsselite.com/gfwlist -server=/.hst.net.tw/127.0.0.1#5353 -ipset=/.hst.net.tw/gfwlist -server=/.hstern.net/127.0.0.1#5353 -ipset=/.hstern.net/gfwlist -server=/.hstt.net/127.0.0.1#5353 -ipset=/.hstt.net/gfwlist -server=/.ht.ly/127.0.0.1#5353 -ipset=/.ht.ly/gfwlist -server=/.htkou.net/127.0.0.1#5353 -ipset=/.htkou.net/gfwlist -server=/.htl.li/127.0.0.1#5353 -ipset=/.htl.li/gfwlist -server=/.html5rocks.com/127.0.0.1#5353 -ipset=/.html5rocks.com/gfwlist -server=/.http2.golang.org/127.0.0.1#5353 -ipset=/.http2.golang.org/gfwlist -server=/.https443.net/127.0.0.1#5353 -ipset=/.https443.net/gfwlist -server=/.https443.org/127.0.0.1#5353 -ipset=/.https443.org/gfwlist -server=/.hua-yue.net/127.0.0.1#5353 -ipset=/.hua-yue.net/gfwlist -server=/.huaglad.com/127.0.0.1#5353 -ipset=/.huaglad.com/gfwlist -server=/.huanghuagang.org/127.0.0.1#5353 -ipset=/.huanghuagang.org/gfwlist -server=/.huangyiyu.com/127.0.0.1#5353 -ipset=/.huangyiyu.com/gfwlist -server=/.huaren.us/127.0.0.1#5353 -ipset=/.huaren.us/gfwlist -server=/.huaren4us.com/127.0.0.1#5353 -ipset=/.huaren4us.com/gfwlist -server=/.huashangnews.com/127.0.0.1#5353 -ipset=/.huashangnews.com/gfwlist -server=/.huaxia-news.com/127.0.0.1#5353 -ipset=/.huaxia-news.com/gfwlist -server=/.huaxiabao.org/127.0.0.1#5353 -ipset=/.huaxiabao.org/gfwlist -server=/.huaxin.ph/127.0.0.1#5353 -ipset=/.huaxin.ph/gfwlist -server=/.huayuworld.org/127.0.0.1#5353 -ipset=/.huayuworld.org/gfwlist -server=/.hudatoriq.web.id/127.0.0.1#5353 -ipset=/.hudatoriq.web.id/gfwlist -server=/.hugoroy.eu/127.0.0.1#5353 -ipset=/.hugoroy.eu/gfwlist -server=/.huhaitai.com/127.0.0.1#5353 -ipset=/.huhaitai.com/gfwlist -server=/.huhamhire.com/127.0.0.1#5353 -ipset=/.huhamhire.com/gfwlist -server=/.huiyi.in/127.0.0.1#5353 -ipset=/.huiyi.in/gfwlist -server=/.hulkshare.com/127.0.0.1#5353 -ipset=/.hulkshare.com/gfwlist -server=/.hulu.com/127.0.0.1#5353 -ipset=/.hulu.com/gfwlist -server=/.huluim.com/127.0.0.1#5353 -ipset=/.huluim.com/gfwlist -server=/.humanrightsbriefing.org/127.0.0.1#5353 -ipset=/.humanrightsbriefing.org/gfwlist -server=/.hung-ya.com/127.0.0.1#5353 -ipset=/.hung-ya.com/gfwlist -server=/.hungerstrikeforaids.org/127.0.0.1#5353 -ipset=/.hungerstrikeforaids.org/gfwlist -server=/.huobi.com/127.0.0.1#5353 -ipset=/.huobi.com/gfwlist -server=/.huobi.pro/127.0.0.1#5353 -ipset=/.huobi.pro/gfwlist -server=/.huobipro.com/127.0.0.1#5353 -ipset=/.huobipro.com/gfwlist -server=/.huping.net/127.0.0.1#5353 -ipset=/.huping.net/gfwlist -server=/.hurgokbayrak.com/127.0.0.1#5353 -ipset=/.hurgokbayrak.com/gfwlist -server=/.hurriyet.com.tr/127.0.0.1#5353 -ipset=/.hurriyet.com.tr/gfwlist -server=/.hustlercash.com/127.0.0.1#5353 -ipset=/.hustlercash.com/gfwlist -server=/.hut2.ru/127.0.0.1#5353 -ipset=/.hut2.ru/gfwlist -server=/.hutianyi.net/127.0.0.1#5353 -ipset=/.hutianyi.net/gfwlist -server=/.hutong9.net/127.0.0.1#5353 -ipset=/.hutong9.net/gfwlist -server=/.huyandex.com/127.0.0.1#5353 -ipset=/.huyandex.com/gfwlist -server=/.hwadzan.tw/127.0.0.1#5353 -ipset=/.hwadzan.tw/gfwlist -server=/.hwayue.org.tw/127.0.0.1#5353 -ipset=/.hwayue.org.tw/gfwlist -server=/.hwinfo.com/127.0.0.1#5353 -ipset=/.hwinfo.com/gfwlist -server=/.hxwk.org/127.0.0.1#5353 -ipset=/.hxwk.org/gfwlist -server=/.hxwq.org/127.0.0.1#5353 -ipset=/.hxwq.org/gfwlist -server=/.hybrid-analysis.com/127.0.0.1#5353 -ipset=/.hybrid-analysis.com/gfwlist -server=/.hyperrate.com/127.0.0.1#5353 -ipset=/.hyperrate.com/gfwlist -server=/.i-cable.com/127.0.0.1#5353 -ipset=/.i-cable.com/gfwlist -server=/.i-part.com.tw/127.0.0.1#5353 -ipset=/.i-part.com.tw/gfwlist -server=/.i.lithium.com/127.0.0.1#5353 -ipset=/.i.lithium.com/gfwlist -server=/.i.v2ex.com/127.0.0.1#5353 -ipset=/.i.v2ex.com/gfwlist -server=/.i1.hk/127.0.0.1#5353 -ipset=/.i1.hk/gfwlist -server=/.i2p2.de/127.0.0.1#5353 -ipset=/.i2p2.de/gfwlist -server=/.i2runner.com/127.0.0.1#5353 -ipset=/.i2runner.com/gfwlist -server=/.i818hk.com/127.0.0.1#5353 -ipset=/.i818hk.com/gfwlist -server=/.iam.soy/127.0.0.1#5353 -ipset=/.iam.soy/gfwlist -server=/.iamtopone.com/127.0.0.1#5353 -ipset=/.iamtopone.com/gfwlist -server=/.iask.bz/127.0.0.1#5353 -ipset=/.iask.bz/gfwlist -server=/.iask.ca/127.0.0.1#5353 -ipset=/.iask.ca/gfwlist -server=/.iav19.com/127.0.0.1#5353 -ipset=/.iav19.com/gfwlist -server=/.iblist.com/127.0.0.1#5353 -ipset=/.iblist.com/gfwlist -server=/.iblogserv-f.net/127.0.0.1#5353 -ipset=/.iblogserv-f.net/gfwlist -server=/.ibros.org/127.0.0.1#5353 -ipset=/.ibros.org/gfwlist -server=/.ibvpn.com/127.0.0.1#5353 -ipset=/.ibvpn.com/gfwlist -server=/.icams.com/127.0.0.1#5353 -ipset=/.icams.com/gfwlist -server=/.ice.audionow.com/127.0.0.1#5353 -ipset=/.ice.audionow.com/gfwlist -server=/.icij.org/127.0.0.1#5353 -ipset=/.icij.org/gfwlist -server=/.icl-fi.org/127.0.0.1#5353 -ipset=/.icl-fi.org/gfwlist -server=/.icoco.com/127.0.0.1#5353 -ipset=/.icoco.com/gfwlist -server=/.iconpaper.org/127.0.0.1#5353 -ipset=/.iconpaper.org/gfwlist -server=/.icu-project.org/127.0.0.1#5353 -ipset=/.icu-project.org/gfwlist -server=/.id.hao123.com/127.0.0.1#5353 -ipset=/.id.hao123.com/gfwlist -server=/.id.heroku.com/127.0.0.1#5353 -ipset=/.id.heroku.com/gfwlist -server=/.iddddg.com/127.0.0.1#5353 -ipset=/.iddddg.com/gfwlist -server=/.idemocracy.asia/127.0.0.1#5353 -ipset=/.idemocracy.asia/gfwlist -server=/.identi.ca/127.0.0.1#5353 -ipset=/.identi.ca/gfwlist -server=/.idiomconnection.com/127.0.0.1#5353 -ipset=/.idiomconnection.com/gfwlist -server=/.idouga.com/127.0.0.1#5353 -ipset=/.idouga.com/gfwlist -server=/.idreamx.com/127.0.0.1#5353 -ipset=/.idreamx.com/gfwlist -server=/.idv.tw/127.0.0.1#5353 -ipset=/.idv.tw/gfwlist -server=/.ieasy5.com/127.0.0.1#5353 -ipset=/.ieasy5.com/gfwlist -server=/.ied2k.net/127.0.0.1#5353 -ipset=/.ied2k.net/gfwlist -server=/.ienergy1.com/127.0.0.1#5353 -ipset=/.ienergy1.com/gfwlist -server=/.ifan.cz.cc/127.0.0.1#5353 -ipset=/.ifan.cz.cc/gfwlist -server=/.ifanqiang.com/127.0.0.1#5353 -ipset=/.ifanqiang.com/gfwlist -server=/.ifcss.org/127.0.0.1#5353 -ipset=/.ifcss.org/gfwlist -server=/.ifjc.org/127.0.0.1#5353 -ipset=/.ifjc.org/gfwlist -server=/.ifreewares.com/127.0.0.1#5353 -ipset=/.ifreewares.com/gfwlist -server=/.ift.tt/127.0.0.1#5353 -ipset=/.ift.tt/gfwlist -server=/.igcd.net/127.0.0.1#5353 -ipset=/.igcd.net/gfwlist -server=/.igfw.net/127.0.0.1#5353 -ipset=/.igfw.net/gfwlist -server=/.igfw.tech/127.0.0.1#5353 -ipset=/.igfw.tech/gfwlist -server=/.igmg.de/127.0.0.1#5353 -ipset=/.igmg.de/gfwlist -server=/.ignitedetroit.net/127.0.0.1#5353 -ipset=/.ignitedetroit.net/gfwlist -server=/.igoogle.com/127.0.0.1#5353 -ipset=/.igoogle.com/gfwlist -server=/.igotmail.com.tw/127.0.0.1#5353 -ipset=/.igotmail.com.tw/gfwlist -server=/.igvita.com/127.0.0.1#5353 -ipset=/.igvita.com/gfwlist -server=/.ihakka.net/127.0.0.1#5353 -ipset=/.ihakka.net/gfwlist -server=/.iicns.com/127.0.0.1#5353 -ipset=/.iicns.com/gfwlist -server=/.iipdigital.usembassy.gov/127.0.0.1#5353 -ipset=/.iipdigital.usembassy.gov/gfwlist -server=/.ikstar.com/127.0.0.1#5353 -ipset=/.ikstar.com/gfwlist -server=/.ikwb.com/127.0.0.1#5353 -ipset=/.ikwb.com/gfwlist -server=/.illusionfactory.com/127.0.0.1#5353 -ipset=/.illusionfactory.com/gfwlist -server=/.ilove80.be/127.0.0.1#5353 -ipset=/.ilove80.be/gfwlist -server=/.ilovelongtoes.com/127.0.0.1#5353 -ipset=/.ilovelongtoes.com/gfwlist -server=/.im.tv/127.0.0.1#5353 -ipset=/.im.tv/gfwlist -server=/.im88.tw/127.0.0.1#5353 -ipset=/.im88.tw/gfwlist -server=/.imageab.com/127.0.0.1#5353 -ipset=/.imageab.com/gfwlist -server=/.imagefap.com/127.0.0.1#5353 -ipset=/.imagefap.com/gfwlist -server=/.imageflea.com/127.0.0.1#5353 -ipset=/.imageflea.com/gfwlist -server=/.images-gaytube.com/127.0.0.1#5353 -ipset=/.images-gaytube.com/gfwlist -server=/.images.comico.tw/127.0.0.1#5353 -ipset=/.images.comico.tw/gfwlist -server=/.imageshack.us/127.0.0.1#5353 -ipset=/.imageshack.us/gfwlist -server=/.imagevenue.com/127.0.0.1#5353 -ipset=/.imagevenue.com/gfwlist -server=/.imagezilla.net/127.0.0.1#5353 -ipset=/.imagezilla.net/gfwlist -server=/.imb.org/127.0.0.1#5353 -ipset=/.imb.org/gfwlist -server=/.ime.baidu.jp/127.0.0.1#5353 -ipset=/.ime.baidu.jp/gfwlist -server=/.img.ly/127.0.0.1#5353 -ipset=/.img.ly/gfwlist -server=/.imgchili.net/127.0.0.1#5353 -ipset=/.imgchili.net/gfwlist -server=/.imkev.com/127.0.0.1#5353 -ipset=/.imkev.com/gfwlist -server=/.imlive.com/127.0.0.1#5353 -ipset=/.imlive.com/gfwlist -server=/.immigration.gov.tw/127.0.0.1#5353 -ipset=/.immigration.gov.tw/gfwlist -server=/.immoral.jp/127.0.0.1#5353 -ipset=/.immoral.jp/gfwlist -server=/.impact.org.au/127.0.0.1#5353 -ipset=/.impact.org.au/gfwlist -server=/.impp.mn/127.0.0.1#5353 -ipset=/.impp.mn/gfwlist -server=/.in-disguise.com/127.0.0.1#5353 -ipset=/.in-disguise.com/gfwlist -server=/.in99.org/127.0.0.1#5353 -ipset=/.in99.org/gfwlist -server=/.incapdns.net/127.0.0.1#5353 -ipset=/.incapdns.net/gfwlist -server=/.incloak.com/127.0.0.1#5353 -ipset=/.incloak.com/gfwlist -server=/.incredibox.fr/127.0.0.1#5353 -ipset=/.incredibox.fr/gfwlist -server=/.indiandefensenews.in/127.0.0.1#5353 -ipset=/.indiandefensenews.in/gfwlist -server=/.indiemerch.com/127.0.0.1#5353 -ipset=/.indiemerch.com/gfwlist -server=/.iner.gov.tw/127.0.0.1#5353 -ipset=/.iner.gov.tw/gfwlist -server=/.info-graf.fr/127.0.0.1#5353 -ipset=/.info-graf.fr/gfwlist -server=/.initiativesforchina.org/127.0.0.1#5353 -ipset=/.initiativesforchina.org/gfwlist -server=/.inkui.com/127.0.0.1#5353 -ipset=/.inkui.com/gfwlist -server=/.inmediahk.net/127.0.0.1#5353 -ipset=/.inmediahk.net/gfwlist -server=/.innermongolia.org/127.0.0.1#5353 -ipset=/.innermongolia.org/gfwlist -server=/.inote.tw/127.0.0.1#5353 -ipset=/.inote.tw/gfwlist -server=/.insecam.org/127.0.0.1#5353 -ipset=/.insecam.org/gfwlist -server=/.insidevoa.com/127.0.0.1#5353 -ipset=/.insidevoa.com/gfwlist -server=/.instagram.com/127.0.0.1#5353 -ipset=/.instagram.com/gfwlist -server=/.instanthq.com/127.0.0.1#5353 -ipset=/.instanthq.com/gfwlist -server=/.institut-tibetain.org/127.0.0.1#5353 -ipset=/.institut-tibetain.org/gfwlist -server=/.internetdefenseleague.org/127.0.0.1#5353 -ipset=/.internetdefenseleague.org/gfwlist -server=/.internetfreedom.org/127.0.0.1#5353 -ipset=/.internetfreedom.org/gfwlist -server=/.internetpopculture.com/127.0.0.1#5353 -ipset=/.internetpopculture.com/gfwlist -server=/.investigating.wordpress.com/127.0.0.1#5353 -ipset=/.investigating.wordpress.com/gfwlist -server=/.inxian.com/127.0.0.1#5353 -ipset=/.inxian.com/gfwlist -server=/.iownyour.biz/127.0.0.1#5353 -ipset=/.iownyour.biz/gfwlist -server=/.iownyour.org/127.0.0.1#5353 -ipset=/.iownyour.org/gfwlist -server=/.ip.cn/127.0.0.1#5353 -ipset=/.ip.cn/gfwlist -server=/.ip6.static.sl-reverse.com/127.0.0.1#5353 -ipset=/.ip6.static.sl-reverse.com/gfwlist -server=/.ipalter.com/127.0.0.1#5353 -ipset=/.ipalter.com/gfwlist -server=/.ipfire.org/127.0.0.1#5353 -ipset=/.ipfire.org/gfwlist -server=/.ipfs.io/127.0.0.1#5353 -ipset=/.ipfs.io/gfwlist -server=/.iphone4hongkong.com/127.0.0.1#5353 -ipset=/.iphone4hongkong.com/gfwlist -server=/.iphonehacks.com/127.0.0.1#5353 -ipset=/.iphonehacks.com/gfwlist -server=/.iphonetaiwan.org/127.0.0.1#5353 -ipset=/.iphonetaiwan.org/gfwlist -server=/.iphonix.fr/127.0.0.1#5353 -ipset=/.iphonix.fr/gfwlist -server=/.ipicture.ru/127.0.0.1#5353 -ipset=/.ipicture.ru/gfwlist -server=/.ipjetable.net/127.0.0.1#5353 -ipset=/.ipjetable.net/gfwlist -server=/.iportal.me/127.0.0.1#5353 -ipset=/.iportal.me/gfwlist -server=/.ippotv.com/127.0.0.1#5353 -ipset=/.ippotv.com/gfwlist -server=/.ipredator.se/127.0.0.1#5353 -ipset=/.ipredator.se/gfwlist -server=/.iptv.com.tw/127.0.0.1#5353 -ipset=/.iptv.com.tw/gfwlist -server=/.iptvbin.com/127.0.0.1#5353 -ipset=/.iptvbin.com/gfwlist -server=/.ipvanish.com/127.0.0.1#5353 -ipset=/.ipvanish.com/gfwlist -server=/.iredmail.org/127.0.0.1#5353 -ipset=/.iredmail.org/gfwlist -server=/.ironbigfools.compython.net/127.0.0.1#5353 -ipset=/.ironbigfools.compython.net/gfwlist -server=/.ironpython.net/127.0.0.1#5353 -ipset=/.ironpython.net/gfwlist -server=/.ironsocket.com/127.0.0.1#5353 -ipset=/.ironsocket.com/gfwlist -server=/.is-a-hunter.com/127.0.0.1#5353 -ipset=/.is-a-hunter.com/gfwlist -server=/.is.gd/127.0.0.1#5353 -ipset=/.is.gd/gfwlist -server=/.isaacmao.com/127.0.0.1#5353 -ipset=/.isaacmao.com/gfwlist -server=/.isasecret.com/127.0.0.1#5353 -ipset=/.isasecret.com/gfwlist -server=/.isgreat.org/127.0.0.1#5353 -ipset=/.isgreat.org/gfwlist -server=/.islahhaber.net/127.0.0.1#5353 -ipset=/.islahhaber.net/gfwlist -server=/.islam.org.hk/127.0.0.1#5353 -ipset=/.islam.org.hk/gfwlist -server=/.islamhouse.com/127.0.0.1#5353 -ipset=/.islamhouse.com/gfwlist -server=/.islamicity.com/127.0.0.1#5353 -ipset=/.islamicity.com/gfwlist -server=/.islamicpluralism.org/127.0.0.1#5353 -ipset=/.islamicpluralism.org/gfwlist -server=/.islamtoday.net/127.0.0.1#5353 -ipset=/.islamtoday.net/gfwlist -server=/.ismaelan.com/127.0.0.1#5353 -ipset=/.ismaelan.com/gfwlist -server=/.ismalltits.com/127.0.0.1#5353 -ipset=/.ismalltits.com/gfwlist -server=/.ismprofessional.net/127.0.0.1#5353 -ipset=/.ismprofessional.net/gfwlist -server=/.isohunt.com/127.0.0.1#5353 -ipset=/.isohunt.com/gfwlist -server=/.israbox.com/127.0.0.1#5353 -ipset=/.israbox.com/gfwlist -server=/.issuu.com/127.0.0.1#5353 -ipset=/.issuu.com/gfwlist -server=/.istars.co.nz/127.0.0.1#5353 -ipset=/.istars.co.nz/gfwlist -server=/.istiqlalhewer.com/127.0.0.1#5353 -ipset=/.istiqlalhewer.com/gfwlist -server=/.istockphoto.com/127.0.0.1#5353 -ipset=/.istockphoto.com/gfwlist -server=/.isunaffairs.com/127.0.0.1#5353 -ipset=/.isunaffairs.com/gfwlist -server=/.isuntv.com/127.0.0.1#5353 -ipset=/.isuntv.com/gfwlist -server=/.itaboo.info/127.0.0.1#5353 -ipset=/.itaboo.info/gfwlist -server=/.itaiwan.gov.tw/127.0.0.1#5353 -ipset=/.itaiwan.gov.tw/gfwlist -server=/.italiatibet.org/127.0.0.1#5353 -ipset=/.italiatibet.org/gfwlist -server=/.itasoftware.com/127.0.0.1#5353 -ipset=/.itasoftware.com/gfwlist -server=/.itemdb.com/127.0.0.1#5353 -ipset=/.itemdb.com/gfwlist -server=/.ithelp.ithome.com.tw/127.0.0.1#5353 -ipset=/.ithelp.ithome.com.tw/gfwlist -server=/.itsaol.com/127.0.0.1#5353 -ipset=/.itsaol.com/gfwlist -server=/.itshidden.com/127.0.0.1#5353 -ipset=/.itshidden.com/gfwlist -server=/.itsky.it/127.0.0.1#5353 -ipset=/.itsky.it/gfwlist -server=/.itweet.net/127.0.0.1#5353 -ipset=/.itweet.net/gfwlist -server=/.iu45.com/127.0.0.1#5353 -ipset=/.iu45.com/gfwlist -server=/.iuhrdf.org/127.0.0.1#5353 -ipset=/.iuhrdf.org/gfwlist -server=/.iuksky.com/127.0.0.1#5353 -ipset=/.iuksky.com/gfwlist -server=/.ivacy.com/127.0.0.1#5353 -ipset=/.ivacy.com/gfwlist -server=/.iverycd.com/127.0.0.1#5353 -ipset=/.iverycd.com/gfwlist -server=/.ivpn.net/127.0.0.1#5353 -ipset=/.ivpn.net/gfwlist -server=/.ixquick.com/127.0.0.1#5353 -ipset=/.ixquick.com/gfwlist -server=/.ixxx.com/127.0.0.1#5353 -ipset=/.ixxx.com/gfwlist -server=/.iyouport.com/127.0.0.1#5353 -ipset=/.iyouport.com/gfwlist -server=/.izaobao.us/127.0.0.1#5353 -ipset=/.izaobao.us/gfwlist -server=/.izles.net/127.0.0.1#5353 -ipset=/.izles.net/gfwlist -server=/.izlesem.org/127.0.0.1#5353 -ipset=/.izlesem.org/gfwlist -server=/.j.mp/127.0.0.1#5353 -ipset=/.j.mp/gfwlist -server=/.ja.wikipedia.org/127.0.0.1#5353 -ipset=/.ja.wikipedia.org/gfwlist -server=/.jamaat.org/127.0.0.1#5353 -ipset=/.jamaat.org/gfwlist -server=/.jamyangnorbu.com/127.0.0.1#5353 -ipset=/.jamyangnorbu.com/gfwlist -server=/.jandyx.com/127.0.0.1#5353 -ipset=/.jandyx.com/gfwlist -server=/.janwongphoto.com/127.0.0.1#5353 -ipset=/.janwongphoto.com/gfwlist -server=/.japan-whores.com/127.0.0.1#5353 -ipset=/.japan-whores.com/gfwlist -server=/.japantimes.co.jp/127.0.0.1#5353 -ipset=/.japantimes.co.jp/gfwlist -server=/.jav.com/127.0.0.1#5353 -ipset=/.jav.com/gfwlist -server=/.jav101.com/127.0.0.1#5353 -ipset=/.jav101.com/gfwlist -server=/.jav2be.com/127.0.0.1#5353 -ipset=/.jav2be.com/gfwlist -server=/.jav68.tv/127.0.0.1#5353 -ipset=/.jav68.tv/gfwlist -server=/.javakiba.org/127.0.0.1#5353 -ipset=/.javakiba.org/gfwlist -server=/.javbus.com/127.0.0.1#5353 -ipset=/.javbus.com/gfwlist -server=/.javfor.me/127.0.0.1#5353 -ipset=/.javfor.me/gfwlist -server=/.javhd.com/127.0.0.1#5353 -ipset=/.javhd.com/gfwlist -server=/.javhip.com/127.0.0.1#5353 -ipset=/.javhip.com/gfwlist -server=/.javhub.net/127.0.0.1#5353 -ipset=/.javhub.net/gfwlist -server=/.javhuge.com/127.0.0.1#5353 -ipset=/.javhuge.com/gfwlist -server=/.javlibrary.com/127.0.0.1#5353 -ipset=/.javlibrary.com/gfwlist -server=/.javmobile.net/127.0.0.1#5353 -ipset=/.javmobile.net/gfwlist -server=/.javmoo.com/127.0.0.1#5353 -ipset=/.javmoo.com/gfwlist -server=/.javmoo.xyz/127.0.0.1#5353 -ipset=/.javmoo.xyz/gfwlist -server=/.javseen.com/127.0.0.1#5353 -ipset=/.javseen.com/gfwlist -server=/.javtag.com/127.0.0.1#5353 -ipset=/.javtag.com/gfwlist -server=/.javzoo.com/127.0.0.1#5353 -ipset=/.javzoo.com/gfwlist -server=/.jbtalks.cc/127.0.0.1#5353 -ipset=/.jbtalks.cc/gfwlist -server=/.jbtalks.com/127.0.0.1#5353 -ipset=/.jbtalks.com/gfwlist -server=/.jbtalks.my/127.0.0.1#5353 -ipset=/.jbtalks.my/gfwlist -server=/.jcpenney.com/127.0.0.1#5353 -ipset=/.jcpenney.com/gfwlist -server=/.jdwsy.com/127.0.0.1#5353 -ipset=/.jdwsy.com/gfwlist -server=/.jeanyim.com/127.0.0.1#5353 -ipset=/.jeanyim.com/gfwlist -server=/.jetos.com/127.0.0.1#5353 -ipset=/.jetos.com/gfwlist -server=/.jex.com/127.0.0.1#5353 -ipset=/.jex.com/gfwlist -server=/.jfqu36.club/127.0.0.1#5353 -ipset=/.jfqu36.club/gfwlist -server=/.jfqu37.xyz/127.0.0.1#5353 -ipset=/.jfqu37.xyz/gfwlist -server=/.jgoodies.com/127.0.0.1#5353 -ipset=/.jgoodies.com/gfwlist -server=/.jiangweiping.com/127.0.0.1#5353 -ipset=/.jiangweiping.com/gfwlist -server=/.jiaoyou8.com/127.0.0.1#5353 -ipset=/.jiaoyou8.com/gfwlist -server=/.jiehua.cz/127.0.0.1#5353 -ipset=/.jiehua.cz/gfwlist -server=/.jieshibaobao.com/127.0.0.1#5353 -ipset=/.jieshibaobao.com/gfwlist -server=/.jigglegifs.com/127.0.0.1#5353 -ipset=/.jigglegifs.com/gfwlist -server=/.jigong1024.com/127.0.0.1#5353 -ipset=/.jigong1024.com/gfwlist -server=/.jihadintel.meforum.org/127.0.0.1#5353 -ipset=/.jihadintel.meforum.org/gfwlist -server=/.jihadology.net/127.0.0.1#5353 -ipset=/.jihadology.net/gfwlist -server=/.jiji.com/127.0.0.1#5353 -ipset=/.jiji.com/gfwlist -server=/.jike.com/127.0.0.1#5353 -ipset=/.jike.com/gfwlist -server=/.jims.net/127.0.0.1#5353 -ipset=/.jims.net/gfwlist -server=/.jinbushe.org/127.0.0.1#5353 -ipset=/.jinbushe.org/gfwlist -server=/.jingpin.org/127.0.0.1#5353 -ipset=/.jingpin.org/gfwlist -server=/.jingsim.org/127.0.0.1#5353 -ipset=/.jingsim.org/gfwlist -server=/.jinpianwang.com/127.0.0.1#5353 -ipset=/.jinpianwang.com/gfwlist -server=/.jinroukong.com/127.0.0.1#5353 -ipset=/.jinroukong.com/gfwlist -server=/.jinx.com/127.0.0.1#5353 -ipset=/.jinx.com/gfwlist -server=/.jitouch.com/127.0.0.1#5353 -ipset=/.jitouch.com/gfwlist -server=/.jizzthis.com/127.0.0.1#5353 -ipset=/.jizzthis.com/gfwlist -server=/.jjgirls.com/127.0.0.1#5353 -ipset=/.jjgirls.com/gfwlist -server=/.jkb.cc/127.0.0.1#5353 -ipset=/.jkb.cc/gfwlist -server=/.jkforum.net/127.0.0.1#5353 -ipset=/.jkforum.net/gfwlist -server=/.jkub.com/127.0.0.1#5353 -ipset=/.jkub.com/gfwlist -server=/.jma.go.jp/127.0.0.1#5353 -ipset=/.jma.go.jp/gfwlist -server=/.jmscult.com/127.0.0.1#5353 -ipset=/.jmscult.com/gfwlist -server=/.joachims.org/127.0.0.1#5353 -ipset=/.joachims.org/gfwlist -server=/.jobnewera.wordpress.com/127.0.0.1#5353 -ipset=/.jobnewera.wordpress.com/gfwlist -server=/.jobso.tv/127.0.0.1#5353 -ipset=/.jobso.tv/gfwlist -server=/.journalchretien.net/127.0.0.1#5353 -ipset=/.journalchretien.net/gfwlist -server=/.journalofdemocracy.org/127.0.0.1#5353 -ipset=/.journalofdemocracy.org/gfwlist -server=/.joymiihub.com/127.0.0.1#5353 -ipset=/.joymiihub.com/gfwlist -server=/.joyourself.com/127.0.0.1#5353 -ipset=/.joyourself.com/gfwlist -server=/.jp.hao123.com/127.0.0.1#5353 -ipset=/.jp.hao123.com/gfwlist -server=/.jpl.nasa.gov/127.0.0.1#5353 -ipset=/.jpl.nasa.gov/gfwlist -server=/.jpopforum.net/127.0.0.1#5353 -ipset=/.jpopforum.net/gfwlist -server=/.jpush.cn/127.0.0.1#5353 -ipset=/.jpush.cn/gfwlist -server=/.jubushoushen.com/127.0.0.1#5353 -ipset=/.jubushoushen.com/gfwlist -server=/.juhuaren.com/127.0.0.1#5353 -ipset=/.juhuaren.com/gfwlist -server=/.jukujo-club.com/127.0.0.1#5353 -ipset=/.jukujo-club.com/gfwlist -server=/.juliepost.com/127.0.0.1#5353 -ipset=/.juliepost.com/gfwlist -server=/.juliereyc.com/127.0.0.1#5353 -ipset=/.juliereyc.com/gfwlist -server=/.junauza.com/127.0.0.1#5353 -ipset=/.junauza.com/gfwlist -server=/.june4commemoration.org/127.0.0.1#5353 -ipset=/.june4commemoration.org/gfwlist -server=/.junefourth-20.net/127.0.0.1#5353 -ipset=/.junefourth-20.net/gfwlist -server=/.jungleheart.com/127.0.0.1#5353 -ipset=/.jungleheart.com/gfwlist -server=/.juoaa.com/127.0.0.1#5353 -ipset=/.juoaa.com/gfwlist -server=/.justdied.com/127.0.0.1#5353 -ipset=/.justdied.com/gfwlist -server=/.justfreevpn.com/127.0.0.1#5353 -ipset=/.justfreevpn.com/gfwlist -server=/.justicefortenzin.org/127.0.0.1#5353 -ipset=/.justicefortenzin.org/gfwlist -server=/.justpaste.it/127.0.0.1#5353 -ipset=/.justpaste.it/gfwlist -server=/.justtristan.com/127.0.0.1#5353 -ipset=/.justtristan.com/gfwlist -server=/.juyuange.org/127.0.0.1#5353 -ipset=/.juyuange.org/gfwlist -server=/.juziyue.com/127.0.0.1#5353 -ipset=/.juziyue.com/gfwlist -server=/.jwmusic.org/127.0.0.1#5353 -ipset=/.jwmusic.org/gfwlist -server=/.jyxf.net/127.0.0.1#5353 -ipset=/.jyxf.net/gfwlist -server=/.k-doujin.net/127.0.0.1#5353 -ipset=/.k-doujin.net/gfwlist -server=/.ka-wai.com/127.0.0.1#5353 -ipset=/.ka-wai.com/gfwlist -server=/.kagyu.org/127.0.0.1#5353 -ipset=/.kagyu.org/gfwlist -server=/.kagyumonlam.org/127.0.0.1#5353 -ipset=/.kagyumonlam.org/gfwlist -server=/.kagyunews.com.hk/127.0.0.1#5353 -ipset=/.kagyunews.com.hk/gfwlist -server=/.kagyuoffice.org/127.0.0.1#5353 -ipset=/.kagyuoffice.org/gfwlist -server=/.kaiyuan.de/127.0.0.1#5353 -ipset=/.kaiyuan.de/gfwlist -server=/.kakao.com/127.0.0.1#5353 -ipset=/.kakao.com/gfwlist -server=/.kalachakralugano.org/127.0.0.1#5353 -ipset=/.kalachakralugano.org/gfwlist -server=/.kankan.today/127.0.0.1#5353 -ipset=/.kankan.today/gfwlist -server=/.kannewyork.com/127.0.0.1#5353 -ipset=/.kannewyork.com/gfwlist -server=/.kanshifang.com/127.0.0.1#5353 -ipset=/.kanshifang.com/gfwlist -server=/.kantie.org/127.0.0.1#5353 -ipset=/.kantie.org/gfwlist -server=/.kanzhongguo.com/127.0.0.1#5353 -ipset=/.kanzhongguo.com/gfwlist -server=/.kanzhongguo.eu/127.0.0.1#5353 -ipset=/.kanzhongguo.eu/gfwlist -server=/.kaotic.com/127.0.0.1#5353 -ipset=/.kaotic.com/gfwlist -server=/.karayou.com/127.0.0.1#5353 -ipset=/.karayou.com/gfwlist -server=/.karkhung.com/127.0.0.1#5353 -ipset=/.karkhung.com/gfwlist -server=/.karmapa-teachings.org/127.0.0.1#5353 -ipset=/.karmapa-teachings.org/gfwlist -server=/.karmapa.org/127.0.0.1#5353 -ipset=/.karmapa.org/gfwlist -server=/.kawaiikawaii.jp/127.0.0.1#5353 -ipset=/.kawaiikawaii.jp/gfwlist -server=/.kawase.com/127.0.0.1#5353 -ipset=/.kawase.com/gfwlist -server=/.kb.monitorware.com/127.0.0.1#5353 -ipset=/.kb.monitorware.com/gfwlist -server=/.kba-tx.org/127.0.0.1#5353 -ipset=/.kba-tx.org/gfwlist -server=/.kcoolonline.com/127.0.0.1#5353 -ipset=/.kcoolonline.com/gfwlist -server=/.kebrum.com/127.0.0.1#5353 -ipset=/.kebrum.com/gfwlist -server=/.kechara.com/127.0.0.1#5353 -ipset=/.kechara.com/gfwlist -server=/.keezmovies.com/127.0.0.1#5353 -ipset=/.keezmovies.com/gfwlist -server=/.kendatire.com/127.0.0.1#5353 -ipset=/.kendatire.com/gfwlist -server=/.kendincos.net/127.0.0.1#5353 -ipset=/.kendincos.net/gfwlist -server=/.kenengba.com/127.0.0.1#5353 -ipset=/.kenengba.com/gfwlist -server=/.keontech.net/127.0.0.1#5353 -ipset=/.keontech.net/gfwlist -server=/.kepard.com/127.0.0.1#5353 -ipset=/.kepard.com/gfwlist -server=/.kex.com/127.0.0.1#5353 -ipset=/.kex.com/gfwlist -server=/.keycdn.com/127.0.0.1#5353 -ipset=/.keycdn.com/gfwlist -server=/.kh.google.com/127.0.0.1#5353 -ipset=/.kh.google.com/gfwlist -server=/.khabdha.org/127.0.0.1#5353 -ipset=/.khabdha.org/gfwlist -server=/.khatrimaza.org/127.0.0.1#5353 -ipset=/.khatrimaza.org/gfwlist -server=/.khm.google.com/127.0.0.1#5353 -ipset=/.khm.google.com/gfwlist -server=/.khm.googleapis.com/127.0.0.1#5353 -ipset=/.khm.googleapis.com/gfwlist -server=/.khm0.google.com/127.0.0.1#5353 -ipset=/.khm0.google.com/gfwlist -server=/.khm0.googleapis.com/127.0.0.1#5353 -ipset=/.khm0.googleapis.com/gfwlist -server=/.khm1.google.com/127.0.0.1#5353 -ipset=/.khm1.google.com/gfwlist -server=/.khm1.googleapis.com/127.0.0.1#5353 -ipset=/.khm1.googleapis.com/gfwlist -server=/.khm2.google.com/127.0.0.1#5353 -ipset=/.khm2.google.com/gfwlist -server=/.khm2.googleapis.com/127.0.0.1#5353 -ipset=/.khm2.googleapis.com/gfwlist -server=/.khm3.google.com/127.0.0.1#5353 -ipset=/.khm3.google.com/gfwlist -server=/.khm3.googleapis.com/127.0.0.1#5353 -ipset=/.khm3.googleapis.com/gfwlist -server=/.khmdb.google.com/127.0.0.1#5353 -ipset=/.khmdb.google.com/gfwlist -server=/.khmdb.googleapis.com/127.0.0.1#5353 -ipset=/.khmdb.googleapis.com/gfwlist -server=/.khmusic.com.tw/127.0.0.1#5353 -ipset=/.khmusic.com.tw/gfwlist -server=/.kichiku-doujinko.com/127.0.0.1#5353 -ipset=/.kichiku-doujinko.com/gfwlist -server=/.kik.com/127.0.0.1#5353 -ipset=/.kik.com/gfwlist -server=/.killwall.com/127.0.0.1#5353 -ipset=/.killwall.com/gfwlist -server=/.kindleren.com/127.0.0.1#5353 -ipset=/.kindleren.com/gfwlist -server=/.kineox.free.fr/127.0.0.1#5353 -ipset=/.kineox.free.fr/gfwlist -server=/.kingdomsalvation.org/127.0.0.1#5353 -ipset=/.kingdomsalvation.org/gfwlist -server=/.kinghost.com/127.0.0.1#5353 -ipset=/.kinghost.com/gfwlist -server=/.kingstone.com.tw/127.0.0.1#5353 -ipset=/.kingstone.com.tw/gfwlist -server=/.kink.com/127.0.0.1#5353 -ipset=/.kink.com/gfwlist -server=/.kinmen.org.tw/127.0.0.1#5353 -ipset=/.kinmen.org.tw/gfwlist -server=/.kinmen.travel/127.0.0.1#5353 -ipset=/.kinmen.travel/gfwlist -server=/.kir.jp/127.0.0.1#5353 -ipset=/.kir.jp/gfwlist -server=/.kissbbao.cn/127.0.0.1#5353 -ipset=/.kissbbao.cn/gfwlist -server=/.kiwi.kz/127.0.0.1#5353 -ipset=/.kiwi.kz/gfwlist -server=/.kk-whys.co.jp/127.0.0.1#5353 -ipset=/.kk-whys.co.jp/gfwlist -server=/.kkbox.com/127.0.0.1#5353 -ipset=/.kkbox.com/gfwlist -server=/.kknews.cc/127.0.0.1#5353 -ipset=/.kknews.cc/gfwlist -server=/.klsio.gov.tw/127.0.0.1#5353 -ipset=/.klsio.gov.tw/gfwlist -server=/.kmseh.gov.tw/127.0.0.1#5353 -ipset=/.kmseh.gov.tw/gfwlist -server=/.kmuh.org.tw/127.0.0.1#5353 -ipset=/.kmuh.org.tw/gfwlist -server=/.kobo.com/127.0.0.1#5353 -ipset=/.kobo.com/gfwlist -server=/.kobobooks.com/127.0.0.1#5353 -ipset=/.kobobooks.com/gfwlist -server=/.kodingen.com/127.0.0.1#5353 -ipset=/.kodingen.com/gfwlist -server=/.kompozer.net/127.0.0.1#5353 -ipset=/.kompozer.net/gfwlist -server=/.konachan.com/127.0.0.1#5353 -ipset=/.konachan.com/gfwlist -server=/.kone.com/127.0.0.1#5353 -ipset=/.kone.com/gfwlist -server=/.koolsolutions.com/127.0.0.1#5353 -ipset=/.koolsolutions.com/gfwlist -server=/.koornk.com/127.0.0.1#5353 -ipset=/.koornk.com/gfwlist -server=/.koranmandarin.com/127.0.0.1#5353 -ipset=/.koranmandarin.com/gfwlist -server=/.korenan2.com/127.0.0.1#5353 -ipset=/.korenan2.com/gfwlist -server=/.ksdl.org/127.0.0.1#5353 -ipset=/.ksdl.org/gfwlist -server=/.ksnews.com.tw/127.0.0.1#5353 -ipset=/.ksnews.com.tw/gfwlist -server=/.kspcoin.com/127.0.0.1#5353 -ipset=/.kspcoin.com/gfwlist -server=/.ktzhk.com/127.0.0.1#5353 -ipset=/.ktzhk.com/gfwlist -server=/.kucoin.com/127.0.0.1#5353 -ipset=/.kucoin.com/gfwlist -server=/.kun.im/127.0.0.1#5353 -ipset=/.kun.im/gfwlist -server=/.kurashsultan.com/127.0.0.1#5353 -ipset=/.kurashsultan.com/gfwlist -server=/.kurtmunger.com/127.0.0.1#5353 -ipset=/.kurtmunger.com/gfwlist -server=/.kusocity.com/127.0.0.1#5353 -ipset=/.kusocity.com/gfwlist -server=/.kwcg.ca/127.0.0.1#5353 -ipset=/.kwcg.ca/gfwlist -server=/.kwongwah.com.my/127.0.0.1#5353 -ipset=/.kwongwah.com.my/gfwlist -server=/.kxsw.life/127.0.0.1#5353 -ipset=/.kxsw.life/gfwlist -server=/.kyofun.com/127.0.0.1#5353 -ipset=/.kyofun.com/gfwlist -server=/.kyohk.net/127.0.0.1#5353 -ipset=/.kyohk.net/gfwlist -server=/.kyoyue.com/127.0.0.1#5353 -ipset=/.kyoyue.com/gfwlist -server=/.kyzyhello.com/127.0.0.1#5353 -ipset=/.kyzyhello.com/gfwlist -server=/.kzeng.info/127.0.0.1#5353 -ipset=/.kzeng.info/gfwlist -server=/.la-forum.org/127.0.0.1#5353 -ipset=/.la-forum.org/gfwlist -server=/.labiennale.org/127.0.0.1#5353 -ipset=/.labiennale.org/gfwlist -server=/.ladbrokes.com/127.0.0.1#5353 -ipset=/.ladbrokes.com/gfwlist -server=/.lagranepoca.com/127.0.0.1#5353 -ipset=/.lagranepoca.com/gfwlist -server=/.lalulalu.com/127.0.0.1#5353 -ipset=/.lalulalu.com/gfwlist -server=/.lama.com.tw/127.0.0.1#5353 -ipset=/.lama.com.tw/gfwlist -server=/.lamayeshe.com/127.0.0.1#5353 -ipset=/.lamayeshe.com/gfwlist -server=/.lamnia.co.uk/127.0.0.1#5353 -ipset=/.lamnia.co.uk/gfwlist -server=/.lamrim.com/127.0.0.1#5353 -ipset=/.lamrim.com/gfwlist -server=/.lanterncn.cn/127.0.0.1#5353 -ipset=/.lanterncn.cn/gfwlist -server=/.lantosfoundation.org/127.0.0.1#5353 -ipset=/.lantosfoundation.org/gfwlist -server=/.laod.cn/127.0.0.1#5353 -ipset=/.laod.cn/gfwlist -server=/.laogai.org/127.0.0.1#5353 -ipset=/.laogai.org/gfwlist -server=/.laomiu.com/127.0.0.1#5353 -ipset=/.laomiu.com/gfwlist -server=/.laoyang.info/127.0.0.1#5353 -ipset=/.laoyang.info/gfwlist -server=/.laptoplockdown.com/127.0.0.1#5353 -ipset=/.laptoplockdown.com/gfwlist -server=/.laqingdan.net/127.0.0.1#5353 -ipset=/.laqingdan.net/gfwlist -server=/.larsgeorge.com/127.0.0.1#5353 -ipset=/.larsgeorge.com/gfwlist -server=/.lastcombat.com/127.0.0.1#5353 -ipset=/.lastcombat.com/gfwlist -server=/.lastfm.es/127.0.0.1#5353 -ipset=/.lastfm.es/gfwlist -server=/.latelinenews.com/127.0.0.1#5353 -ipset=/.latelinenews.com/gfwlist -server=/.latibet.org/127.0.0.1#5353 -ipset=/.latibet.org/gfwlist -server=/.lax.v2ex.com/127.0.0.1#5353 -ipset=/.lax.v2ex.com/gfwlist -server=/.lbank.info/127.0.0.1#5353 -ipset=/.lbank.info/gfwlist -server=/.ld.hao123img.com/127.0.0.1#5353 -ipset=/.ld.hao123img.com/gfwlist -server=/.le-vpn.com/127.0.0.1#5353 -ipset=/.le-vpn.com/gfwlist -server=/.leafyvpn.net/127.0.0.1#5353 -ipset=/.leafyvpn.net/gfwlist -server=/.lecloud.net/127.0.0.1#5353 -ipset=/.lecloud.net/gfwlist -server=/.lefora.com/127.0.0.1#5353 -ipset=/.lefora.com/gfwlist -server=/.left21.hk/127.0.0.1#5353 -ipset=/.left21.hk/gfwlist -server=/.legalporno.com/127.0.0.1#5353 -ipset=/.legalporno.com/gfwlist -server=/.legaltech.law.com/127.0.0.1#5353 -ipset=/.legaltech.law.com/gfwlist -server=/.legsjapan.com/127.0.0.1#5353 -ipset=/.legsjapan.com/gfwlist -server=/.leirentv.ca/127.0.0.1#5353 -ipset=/.leirentv.ca/gfwlist -server=/.leisurecafe.ca/127.0.0.1#5353 -ipset=/.leisurecafe.ca/gfwlist -server=/.leisurepro.com/127.0.0.1#5353 -ipset=/.leisurepro.com/gfwlist -server=/.lematin.ch/127.0.0.1#5353 -ipset=/.lematin.ch/gfwlist -server=/.lemonde.fr/127.0.0.1#5353 -ipset=/.lemonde.fr/gfwlist -server=/.lenwhite.com/127.0.0.1#5353 -ipset=/.lenwhite.com/gfwlist -server=/.lerosua.org/127.0.0.1#5353 -ipset=/.lerosua.org/gfwlist -server=/.lers.google/127.0.0.1#5353 -ipset=/.lers.google/gfwlist -server=/.lesoir.be/127.0.0.1#5353 -ipset=/.lesoir.be/gfwlist -server=/.letou.com/127.0.0.1#5353 -ipset=/.letou.com/gfwlist -server=/.letscorp.net/127.0.0.1#5353 -ipset=/.letscorp.net/gfwlist -server=/.lflink.com/127.0.0.1#5353 -ipset=/.lflink.com/gfwlist -server=/.lflinkup.com/127.0.0.1#5353 -ipset=/.lflinkup.com/gfwlist -server=/.lflinkup.net/127.0.0.1#5353 -ipset=/.lflinkup.net/gfwlist -server=/.lflinkup.org/127.0.0.1#5353 -ipset=/.lflinkup.org/gfwlist -server=/.lhakar.org/127.0.0.1#5353 -ipset=/.lhakar.org/gfwlist -server=/.lhasocialwork.org/127.0.0.1#5353 -ipset=/.lhasocialwork.org/gfwlist -server=/.liangyou.net/127.0.0.1#5353 -ipset=/.liangyou.net/gfwlist -server=/.lianyue.net/127.0.0.1#5353 -ipset=/.lianyue.net/gfwlist -server=/.liaowangxizang.net/127.0.0.1#5353 -ipset=/.liaowangxizang.net/gfwlist -server=/.liberal.org.hk/127.0.0.1#5353 -ipset=/.liberal.org.hk/gfwlist -server=/.libertytimes.com.tw/127.0.0.1#5353 -ipset=/.libertytimes.com.tw/gfwlist -server=/.lifemiles.com/127.0.0.1#5353 -ipset=/.lifemiles.com/gfwlist -server=/.lighten.org.tw/127.0.0.1#5353 -ipset=/.lighten.org.tw/gfwlist -server=/.lightnovel.cn/127.0.0.1#5353 -ipset=/.lightnovel.cn/gfwlist -server=/.like.com/127.0.0.1#5353 -ipset=/.like.com/gfwlist -server=/.limiao.net/127.0.0.1#5353 -ipset=/.limiao.net/gfwlist -server=/.line-apps.com/127.0.0.1#5353 -ipset=/.line-apps.com/gfwlist -server=/.line-scdn.net/127.0.0.1#5353 -ipset=/.line-scdn.net/gfwlist -server=/.line.me/127.0.0.1#5353 -ipset=/.line.me/gfwlist -server=/.line.naver.jp/127.0.0.1#5353 -ipset=/.line.naver.jp/gfwlist -server=/.linear-abematv.akamaized.net/127.0.0.1#5353 -ipset=/.linear-abematv.akamaized.net/gfwlist -server=/.linglingfa.com/127.0.0.1#5353 -ipset=/.linglingfa.com/gfwlist -server=/.lingvodics.com/127.0.0.1#5353 -ipset=/.lingvodics.com/gfwlist -server=/.link-o-rama.com/127.0.0.1#5353 -ipset=/.link-o-rama.com/gfwlist -server=/.linkideo.com/127.0.0.1#5353 -ipset=/.linkideo.com/gfwlist -server=/.linkuswell.com/127.0.0.1#5353 -ipset=/.linkuswell.com/gfwlist -server=/.linux.org.hk/127.0.0.1#5353 -ipset=/.linux.org.hk/gfwlist -server=/.lionsroar.com/127.0.0.1#5353 -ipset=/.lionsroar.com/gfwlist -server=/.lipuman.com/127.0.0.1#5353 -ipset=/.lipuman.com/gfwlist -server=/.liquidvpn.com/127.0.0.1#5353 -ipset=/.liquidvpn.com/gfwlist -server=/.listentoyoutube.com/127.0.0.1#5353 -ipset=/.listentoyoutube.com/gfwlist -server=/.listorious.com/127.0.0.1#5353 -ipset=/.listorious.com/gfwlist -server=/.liu-xiaobo.org/127.0.0.1#5353 -ipset=/.liu-xiaobo.org/gfwlist -server=/.liudejun.com/127.0.0.1#5353 -ipset=/.liudejun.com/gfwlist -server=/.liuhanyu.com/127.0.0.1#5353 -ipset=/.liuhanyu.com/gfwlist -server=/.liujianshu.com/127.0.0.1#5353 -ipset=/.liujianshu.com/gfwlist -server=/.liuxiaobo.net/127.0.0.1#5353 -ipset=/.liuxiaobo.net/gfwlist -server=/.liuxiaotong.com/127.0.0.1#5353 -ipset=/.liuxiaotong.com/gfwlist -server=/.livecoin.net/127.0.0.1#5353 -ipset=/.livecoin.net/gfwlist -server=/.livedoor.jp/127.0.0.1#5353 -ipset=/.livedoor.jp/gfwlist -server=/.liveleak.com/127.0.0.1#5353 -ipset=/.liveleak.com/gfwlist -server=/.livestation.com/127.0.0.1#5353 -ipset=/.livestation.com/gfwlist -server=/.livestream.com/127.0.0.1#5353 -ipset=/.livestream.com/gfwlist -server=/.livevideo.com/127.0.0.1#5353 -ipset=/.livevideo.com/gfwlist -server=/.livingonline.us/127.0.0.1#5353 -ipset=/.livingonline.us/gfwlist -server=/.livingstream.com/127.0.0.1#5353 -ipset=/.livingstream.com/gfwlist -server=/.liwangyang.com/127.0.0.1#5353 -ipset=/.liwangyang.com/gfwlist -server=/.lizhizhuangbi.com/127.0.0.1#5353 -ipset=/.lizhizhuangbi.com/gfwlist -server=/.lkcn.net/127.0.0.1#5353 -ipset=/.lkcn.net/gfwlist -server=/.load.to/127.0.0.1#5353 -ipset=/.load.to/gfwlist -server=/.lobsangwangyal.com/127.0.0.1#5353 -ipset=/.lobsangwangyal.com/gfwlist -server=/.localdomain.ws/127.0.0.1#5353 -ipset=/.localdomain.ws/gfwlist -server=/.localpresshk.com/127.0.0.1#5353 -ipset=/.localpresshk.com/gfwlist -server=/.lockestek.com/127.0.0.1#5353 -ipset=/.lockestek.com/gfwlist -server=/.logbot.net/127.0.0.1#5353 -ipset=/.logbot.net/gfwlist -server=/.login.target.com/127.0.0.1#5353 -ipset=/.login.target.com/gfwlist -server=/.logiqx.com/127.0.0.1#5353 -ipset=/.logiqx.com/gfwlist -server=/.londonchinese.ca/127.0.0.1#5353 -ipset=/.londonchinese.ca/gfwlist -server=/.longhair.hk/127.0.0.1#5353 -ipset=/.longhair.hk/gfwlist -server=/.longmusic.com/127.0.0.1#5353 -ipset=/.longmusic.com/gfwlist -server=/.longtermly.net/127.0.0.1#5353 -ipset=/.longtermly.net/gfwlist -server=/.longtoes.com/127.0.0.1#5353 -ipset=/.longtoes.com/gfwlist -server=/.lookpic.com/127.0.0.1#5353 -ipset=/.lookpic.com/gfwlist -server=/.looktoronto.com/127.0.0.1#5353 -ipset=/.looktoronto.com/gfwlist -server=/.lotuslight.org.hk/127.0.0.1#5353 -ipset=/.lotuslight.org.hk/gfwlist -server=/.lotuslight.org.tw/127.0.0.1#5353 -ipset=/.lotuslight.org.tw/gfwlist -server=/.lovetvshow.com/127.0.0.1#5353 -ipset=/.lovetvshow.com/gfwlist -server=/.lpsg.com/127.0.0.1#5353 -ipset=/.lpsg.com/gfwlist -server=/.lrfz.com/127.0.0.1#5353 -ipset=/.lrfz.com/gfwlist -server=/.lrip.org/127.0.0.1#5353 -ipset=/.lrip.org/gfwlist -server=/.lsd.org.hk/127.0.0.1#5353 -ipset=/.lsd.org.hk/gfwlist -server=/.lsforum.net/127.0.0.1#5353 -ipset=/.lsforum.net/gfwlist -server=/.lsm.org/127.0.0.1#5353 -ipset=/.lsm.org/gfwlist -server=/.lsmchinese.org/127.0.0.1#5353 -ipset=/.lsmchinese.org/gfwlist -server=/.lsmkorean.org/127.0.0.1#5353 -ipset=/.lsmkorean.org/gfwlist -server=/.lsmwebcast.com/127.0.0.1#5353 -ipset=/.lsmwebcast.com/gfwlist -server=/.lsxszzg.com/127.0.0.1#5353 -ipset=/.lsxszzg.com/gfwlist -server=/.ltn.com.tw/127.0.0.1#5353 -ipset=/.ltn.com.tw/gfwlist -server=/.luke54.com/127.0.0.1#5353 -ipset=/.luke54.com/gfwlist -server=/.luke54.org/127.0.0.1#5353 -ipset=/.luke54.org/gfwlist -server=/.lungtanhr.gov.tw/127.0.0.1#5353 -ipset=/.lungtanhr.gov.tw/gfwlist -server=/.lupm.org/127.0.0.1#5353 -ipset=/.lupm.org/gfwlist -server=/.lushstories.com/127.0.0.1#5353 -ipset=/.lushstories.com/gfwlist -server=/.luxebc.com/127.0.0.1#5353 -ipset=/.luxebc.com/gfwlist -server=/.lvhai.org/127.0.0.1#5353 -ipset=/.lvhai.org/gfwlist -server=/.lvv2.com/127.0.0.1#5353 -ipset=/.lvv2.com/gfwlist -server=/.lyfhk.net/127.0.0.1#5353 -ipset=/.lyfhk.net/gfwlist -server=/.lzmtnews.org/127.0.0.1#5353 -ipset=/.lzmtnews.org/gfwlist -server=/.m.hkgalden.com/127.0.0.1#5353 -ipset=/.m.hkgalden.com/gfwlist -server=/.m.me/127.0.0.1#5353 -ipset=/.m.me/gfwlist -server=/.m.plixi.com/127.0.0.1#5353 -ipset=/.m.plixi.com/gfwlist -server=/.m.slandr.net/127.0.0.1#5353 -ipset=/.m.slandr.net/gfwlist -server=/.ma.hao123.com/127.0.0.1#5353 -ipset=/.ma.hao123.com/gfwlist -server=/.macgamestore.com/127.0.0.1#5353 -ipset=/.macgamestore.com/gfwlist -server=/.macrovpn.com/127.0.0.1#5353 -ipset=/.macrovpn.com/gfwlist -server=/.macts.com.tw/127.0.0.1#5353 -ipset=/.macts.com.tw/gfwlist -server=/.mad-ar.ch/127.0.0.1#5353 -ipset=/.mad-ar.ch/gfwlist -server=/.madewithcode.com/127.0.0.1#5353 -ipset=/.madewithcode.com/gfwlist -server=/.madonna-av.com/127.0.0.1#5353 -ipset=/.madonna-av.com/gfwlist -server=/.madrau.com/127.0.0.1#5353 -ipset=/.madrau.com/gfwlist -server=/.madthumbs.com/127.0.0.1#5353 -ipset=/.madthumbs.com/gfwlist -server=/.magazines.sina.com.tw/127.0.0.1#5353 -ipset=/.magazines.sina.com.tw/gfwlist -server=/.magic-net.info/127.0.0.1#5353 -ipset=/.magic-net.info/gfwlist -server=/.mahabodhi.org/127.0.0.1#5353 -ipset=/.mahabodhi.org/gfwlist -server=/.maiio.net/127.0.0.1#5353 -ipset=/.maiio.net/gfwlist -server=/.mail-archive.com/127.0.0.1#5353 -ipset=/.mail-archive.com/gfwlist -server=/.maildns.xyz/127.0.0.1#5353 -ipset=/.maildns.xyz/gfwlist -server=/.maiplus.com/127.0.0.1#5353 -ipset=/.maiplus.com/gfwlist -server=/.maizhong.org/127.0.0.1#5353 -ipset=/.maizhong.org/gfwlist -server=/.makemymood.com/127.0.0.1#5353 -ipset=/.makemymood.com/gfwlist -server=/.makkahnewspaper.com/127.0.0.1#5353 -ipset=/.makkahnewspaper.com/gfwlist -server=/.makzhou.warehouse333.com/127.0.0.1#5353 -ipset=/.makzhou.warehouse333.com/gfwlist -server=/.malaysiakini.com/127.0.0.1#5353 -ipset=/.malaysiakini.com/gfwlist -server=/.mamingzhe.com/127.0.0.1#5353 -ipset=/.mamingzhe.com/gfwlist -server=/.manchukuo.net/127.0.0.1#5353 -ipset=/.manchukuo.net/gfwlist -server=/.mangafox.com/127.0.0.1#5353 -ipset=/.mangafox.com/gfwlist -server=/.mangafox.me/127.0.0.1#5353 -ipset=/.mangafox.me/gfwlist -server=/.maniash.com/127.0.0.1#5353 -ipset=/.maniash.com/gfwlist -server=/.manicur4ik.ru/127.0.0.1#5353 -ipset=/.manicur4ik.ru/gfwlist -server=/.mansion.com/127.0.0.1#5353 -ipset=/.mansion.com/gfwlist -server=/.mansionpoker.com/127.0.0.1#5353 -ipset=/.mansionpoker.com/gfwlist -server=/.manta.com/127.0.0.1#5353 -ipset=/.manta.com/gfwlist -server=/.maolin-nsa.gov.tw/127.0.0.1#5353 -ipset=/.maolin-nsa.gov.tw/gfwlist -server=/.maplew.com/127.0.0.1#5353 -ipset=/.maplew.com/gfwlist -server=/.marc.info/127.0.0.1#5353 -ipset=/.marc.info/gfwlist -server=/.marguerite.su/127.0.0.1#5353 -ipset=/.marguerite.su/gfwlist -server=/.martau.com/127.0.0.1#5353 -ipset=/.martau.com/gfwlist -server=/.martincartoons.com/127.0.0.1#5353 -ipset=/.martincartoons.com/gfwlist -server=/.martsangkagyuofficial.org/127.0.0.1#5353 -ipset=/.martsangkagyuofficial.org/gfwlist -server=/.marxist.com/127.0.0.1#5353 -ipset=/.marxist.com/gfwlist -server=/.marxist.net/127.0.0.1#5353 -ipset=/.marxist.net/gfwlist -server=/.mash.to/127.0.0.1#5353 -ipset=/.mash.to/gfwlist -server=/.maskedip.com/127.0.0.1#5353 -ipset=/.maskedip.com/gfwlist -server=/.mastodon.host/127.0.0.1#5353 -ipset=/.mastodon.host/gfwlist -server=/.matainja.com/127.0.0.1#5353 -ipset=/.matainja.com/gfwlist -server=/.material.io/127.0.0.1#5353 -ipset=/.material.io/gfwlist -server=/.mathable.io/127.0.0.1#5353 -ipset=/.mathable.io/gfwlist -server=/.mathiew-badimon.com/127.0.0.1#5353 -ipset=/.mathiew-badimon.com/gfwlist -server=/.matome-plus.com/127.0.0.1#5353 -ipset=/.matome-plus.com/gfwlist -server=/.matome-plus.net/127.0.0.1#5353 -ipset=/.matome-plus.net/gfwlist -server=/.matsu-news.gov.tw/127.0.0.1#5353 -ipset=/.matsu-news.gov.tw/gfwlist -server=/.matsu-nsa.gov.tw/127.0.0.1#5353 -ipset=/.matsu-nsa.gov.tw/gfwlist -server=/.matsucc.gov.tw/127.0.0.1#5353 -ipset=/.matsucc.gov.tw/gfwlist -server=/.matsushimakaede.com/127.0.0.1#5353 -ipset=/.matsushimakaede.com/gfwlist -server=/.mattwilcox.net/127.0.0.1#5353 -ipset=/.mattwilcox.net/gfwlist -server=/.maturejp.com/127.0.0.1#5353 -ipset=/.maturejp.com/gfwlist -server=/.maxing.jp/127.0.0.1#5353 -ipset=/.maxing.jp/gfwlist -server=/.mayimayi.com/127.0.0.1#5353 -ipset=/.mayimayi.com/gfwlist -server=/.mcadforums.com/127.0.0.1#5353 -ipset=/.mcadforums.com/gfwlist -server=/.mcaf.ee/127.0.0.1#5353 -ipset=/.mcaf.ee/gfwlist -server=/.mcfog.com/127.0.0.1#5353 -ipset=/.mcfog.com/gfwlist -server=/.mcreasite.com/127.0.0.1#5353 -ipset=/.mcreasite.com/gfwlist -server=/.md-t.org/127.0.0.1#5353 -ipset=/.md-t.org/gfwlist -server=/.me.youthwant.com.tw/127.0.0.1#5353 -ipset=/.me.youthwant.com.tw/gfwlist -server=/.meansys.com/127.0.0.1#5353 -ipset=/.meansys.com/gfwlist -server=/.media.nu.nl/127.0.0.1#5353 -ipset=/.media.nu.nl/gfwlist -server=/.media.org.hk/127.0.0.1#5353 -ipset=/.media.org.hk/gfwlist -server=/.mediachinese.com/127.0.0.1#5353 -ipset=/.mediachinese.com/gfwlist -server=/.mediafreakcity.com/127.0.0.1#5353 -ipset=/.mediafreakcity.com/gfwlist -server=/.medium.com/127.0.0.1#5353 -ipset=/.medium.com/gfwlist -server=/.meetav.com/127.0.0.1#5353 -ipset=/.meetav.com/gfwlist -server=/.meetup.com/127.0.0.1#5353 -ipset=/.meetup.com/gfwlist -server=/.mefeedia.com/127.0.0.1#5353 -ipset=/.mefeedia.com/gfwlist -server=/.mefound.com/127.0.0.1#5353 -ipset=/.mefound.com/gfwlist -server=/.mega.nz/127.0.0.1#5353 -ipset=/.mega.nz/gfwlist -server=/.megaproxy.com/127.0.0.1#5353 -ipset=/.megaproxy.com/gfwlist -server=/.megarotic.com/127.0.0.1#5353 -ipset=/.megarotic.com/gfwlist -server=/.megavideo.com/127.0.0.1#5353 -ipset=/.megavideo.com/gfwlist -server=/.megurineluka.com/127.0.0.1#5353 -ipset=/.megurineluka.com/gfwlist -server=/.meirixiaochao.com/127.0.0.1#5353 -ipset=/.meirixiaochao.com/gfwlist -server=/.meltoday.com/127.0.0.1#5353 -ipset=/.meltoday.com/gfwlist -server=/.meme.yahoo.com/127.0.0.1#5353 -ipset=/.meme.yahoo.com/gfwlist -server=/.memehk.com/127.0.0.1#5353 -ipset=/.memehk.com/gfwlist -server=/.memorybbs.com/127.0.0.1#5353 -ipset=/.memorybbs.com/gfwlist -server=/.memri.org/127.0.0.1#5353 -ipset=/.memri.org/gfwlist -server=/.memrijttm.org/127.0.0.1#5353 -ipset=/.memrijttm.org/gfwlist -server=/.mercyprophet.org/127.0.0.1#5353 -ipset=/.mercyprophet.org/gfwlist -server=/.meridian-trust.org/127.0.0.1#5353 -ipset=/.meridian-trust.org/gfwlist -server=/.meripet.biz/127.0.0.1#5353 -ipset=/.meripet.biz/gfwlist -server=/.meripet.com/127.0.0.1#5353 -ipset=/.meripet.com/gfwlist -server=/.merit-times.com.tw/127.0.0.1#5353 -ipset=/.merit-times.com.tw/gfwlist -server=/.meshrep.com/127.0.0.1#5353 -ipset=/.meshrep.com/gfwlist -server=/.messenger.com/127.0.0.1#5353 -ipset=/.messenger.com/gfwlist -server=/.metarthunter.com/127.0.0.1#5353 -ipset=/.metarthunter.com/gfwlist -server=/.meteorshowersonline.com/127.0.0.1#5353 -ipset=/.meteorshowersonline.com/gfwlist -server=/.metrolife.ca/127.0.0.1#5353 -ipset=/.metrolife.ca/gfwlist -server=/.metroradio.com.hk/127.0.0.1#5353 -ipset=/.metroradio.com.hk/gfwlist -server=/.meyou.jp/127.0.0.1#5353 -ipset=/.meyou.jp/gfwlist -server=/.meyul.com/127.0.0.1#5353 -ipset=/.meyul.com/gfwlist -server=/.mfxmedia.com/127.0.0.1#5353 -ipset=/.mfxmedia.com/gfwlist -server=/.mgoon.com/127.0.0.1#5353 -ipset=/.mgoon.com/gfwlist -server=/.mgstage.com/127.0.0.1#5353 -ipset=/.mgstage.com/gfwlist -server=/.mh4u.org/127.0.0.1#5353 -ipset=/.mh4u.org/gfwlist -server=/.mhradio.org/127.0.0.1#5353 -ipset=/.mhradio.org/gfwlist -server=/.michaelanti.com/127.0.0.1#5353 -ipset=/.michaelanti.com/gfwlist -server=/.michaelmarketl.com/127.0.0.1#5353 -ipset=/.michaelmarketl.com/gfwlist -server=/.microvpn.com/127.0.0.1#5353 -ipset=/.microvpn.com/gfwlist -server=/.middle-way.net/127.0.0.1#5353 -ipset=/.middle-way.net/gfwlist -server=/.mihr.com/127.0.0.1#5353 -ipset=/.mihr.com/gfwlist -server=/.mihua.org/127.0.0.1#5353 -ipset=/.mihua.org/gfwlist -server=/.mike.cz.cc/127.0.0.1#5353 -ipset=/.mike.cz.cc/gfwlist -server=/.mikesoltys.com/127.0.0.1#5353 -ipset=/.mikesoltys.com/gfwlist -server=/.milph.net/127.0.0.1#5353 -ipset=/.milph.net/gfwlist -server=/.milsurps.com/127.0.0.1#5353 -ipset=/.milsurps.com/gfwlist -server=/.mimiai.net/127.0.0.1#5353 -ipset=/.mimiai.net/gfwlist -server=/.mimivip.com/127.0.0.1#5353 -ipset=/.mimivip.com/gfwlist -server=/.mimivv.com/127.0.0.1#5353 -ipset=/.mimivv.com/gfwlist -server=/.mindrolling.org/127.0.0.1#5353 -ipset=/.mindrolling.org/gfwlist -server=/.minghui-a.org/127.0.0.1#5353 -ipset=/.minghui-a.org/gfwlist -server=/.minghui-b.org/127.0.0.1#5353 -ipset=/.minghui-b.org/gfwlist -server=/.minghui-school.org/127.0.0.1#5353 -ipset=/.minghui-school.org/gfwlist -server=/.minghui.or.kr/127.0.0.1#5353 -ipset=/.minghui.or.kr/gfwlist -server=/.minghui.org/127.0.0.1#5353 -ipset=/.minghui.org/gfwlist -server=/.minghuiyw.wordpress.com/127.0.0.1#5353 -ipset=/.minghuiyw.wordpress.com/gfwlist -server=/.mingjinglishi.com/127.0.0.1#5353 -ipset=/.mingjinglishi.com/gfwlist -server=/.mingjingnews.com/127.0.0.1#5353 -ipset=/.mingjingnews.com/gfwlist -server=/.mingjingtimes.com/127.0.0.1#5353 -ipset=/.mingjingtimes.com/gfwlist -server=/.mingpao.com/127.0.0.1#5353 -ipset=/.mingpao.com/gfwlist -server=/.mingpaocanada.com/127.0.0.1#5353 -ipset=/.mingpaocanada.com/gfwlist -server=/.mingpaomonthly.com/127.0.0.1#5353 -ipset=/.mingpaomonthly.com/gfwlist -server=/.mingpaonews.com/127.0.0.1#5353 -ipset=/.mingpaonews.com/gfwlist -server=/.mingpaony.com/127.0.0.1#5353 -ipset=/.mingpaony.com/gfwlist -server=/.mingpaosf.com/127.0.0.1#5353 -ipset=/.mingpaosf.com/gfwlist -server=/.mingpaotor.com/127.0.0.1#5353 -ipset=/.mingpaotor.com/gfwlist -server=/.mingpaovan.com/127.0.0.1#5353 -ipset=/.mingpaovan.com/gfwlist -server=/.mingshengbao.com/127.0.0.1#5353 -ipset=/.mingshengbao.com/gfwlist -server=/.minhhue.net/127.0.0.1#5353 -ipset=/.minhhue.net/gfwlist -server=/.miniforum.org/127.0.0.1#5353 -ipset=/.miniforum.org/gfwlist -server=/.ministrybooks.org/127.0.0.1#5353 -ipset=/.ministrybooks.org/gfwlist -server=/.minzhuhua.net/127.0.0.1#5353 -ipset=/.minzhuhua.net/gfwlist -server=/.minzhuzhanxian.com/127.0.0.1#5353 -ipset=/.minzhuzhanxian.com/gfwlist -server=/.minzhuzhongguo.org/127.0.0.1#5353 -ipset=/.minzhuzhongguo.org/gfwlist -server=/.miroguide.com/127.0.0.1#5353 -ipset=/.miroguide.com/gfwlist -server=/.mirrorbooks.com/127.0.0.1#5353 -ipset=/.mirrorbooks.com/gfwlist -server=/.mist.vip/127.0.0.1#5353 -ipset=/.mist.vip/gfwlist -server=/.mitao.com.tw/127.0.0.1#5353 -ipset=/.mitao.com.tw/gfwlist -server=/.mitbbs.com/127.0.0.1#5353 -ipset=/.mitbbs.com/gfwlist -server=/.mitbbsau.com/127.0.0.1#5353 -ipset=/.mitbbsau.com/gfwlist -server=/.mixero.com/127.0.0.1#5353 -ipset=/.mixero.com/gfwlist -server=/.mixpod.com/127.0.0.1#5353 -ipset=/.mixpod.com/gfwlist -server=/.mixx.com/127.0.0.1#5353 -ipset=/.mixx.com/gfwlist -server=/.mizzmona.com/127.0.0.1#5353 -ipset=/.mizzmona.com/gfwlist -server=/.mjib.gov.tw/127.0.0.1#5353 -ipset=/.mjib.gov.tw/gfwlist -server=/.mk5000.com/127.0.0.1#5353 -ipset=/.mk5000.com/gfwlist -server=/.mlcool.com/127.0.0.1#5353 -ipset=/.mlcool.com/gfwlist -server=/.mlzs.work/127.0.0.1#5353 -ipset=/.mlzs.work/gfwlist -server=/.mm-cg.com/127.0.0.1#5353 -ipset=/.mm-cg.com/gfwlist -server=/.mmaaxx.com/127.0.0.1#5353 -ipset=/.mmaaxx.com/gfwlist -server=/.mmmca.com/127.0.0.1#5353 -ipset=/.mmmca.com/gfwlist -server=/.mnewstv.com/127.0.0.1#5353 -ipset=/.mnewstv.com/gfwlist -server=/.mo.nightlife141.com/127.0.0.1#5353 -ipset=/.mo.nightlife141.com/gfwlist -server=/.mobatek.net/127.0.0.1#5353 -ipset=/.mobatek.net/gfwlist -server=/.mobile01.com/127.0.0.1#5353 -ipset=/.mobile01.com/gfwlist -server=/.mobileways.de/127.0.0.1#5353 -ipset=/.mobileways.de/gfwlist -server=/.moby.to/127.0.0.1#5353 -ipset=/.moby.to/gfwlist -server=/.mobypicture.com/127.0.0.1#5353 -ipset=/.mobypicture.com/gfwlist -server=/.moe.gov.tw/127.0.0.1#5353 -ipset=/.moe.gov.tw/gfwlist -server=/.moeaic.gov.tw/127.0.0.1#5353 -ipset=/.moeaic.gov.tw/gfwlist -server=/.moeerolibrary.com/127.0.0.1#5353 -ipset=/.moeerolibrary.com/gfwlist -server=/.mofa.gov.tw/127.0.0.1#5353 -ipset=/.mofa.gov.tw/gfwlist -server=/.mofaxiehui.com/127.0.0.1#5353 -ipset=/.mofaxiehui.com/gfwlist -server=/.mofos.com/127.0.0.1#5353 -ipset=/.mofos.com/gfwlist -server=/.mog.com/127.0.0.1#5353 -ipset=/.mog.com/gfwlist -server=/.mohu.club/127.0.0.1#5353 -ipset=/.mohu.club/gfwlist -server=/.mohu.ml/127.0.0.1#5353 -ipset=/.mohu.ml/gfwlist -server=/.mol.gov.tw/127.0.0.1#5353 -ipset=/.mol.gov.tw/gfwlist -server=/.molihua.org/127.0.0.1#5353 -ipset=/.molihua.org/gfwlist -server=/.mondex.org/127.0.0.1#5353 -ipset=/.mondex.org/gfwlist -server=/.money-link.com.tw/127.0.0.1#5353 -ipset=/.money-link.com.tw/gfwlist -server=/.moneyhome.biz/127.0.0.1#5353 -ipset=/.moneyhome.biz/gfwlist -server=/.monitorchina.org/127.0.0.1#5353 -ipset=/.monitorchina.org/gfwlist -server=/.monster.com/127.0.0.1#5353 -ipset=/.monster.com/gfwlist -server=/.moodyz.com/127.0.0.1#5353 -ipset=/.moodyz.com/gfwlist -server=/.moonbbs.com/127.0.0.1#5353 -ipset=/.moonbbs.com/gfwlist -server=/.moonbingo.com/127.0.0.1#5353 -ipset=/.moonbingo.com/gfwlist -server=/.morningsun.org/127.0.0.1#5353 -ipset=/.morningsun.org/gfwlist -server=/.moroneta.com/127.0.0.1#5353 -ipset=/.moroneta.com/gfwlist -server=/.mos.ru/127.0.0.1#5353 -ipset=/.mos.ru/gfwlist -server=/.motherless.com/127.0.0.1#5353 -ipset=/.motherless.com/gfwlist -server=/.motor4ik.ru/127.0.0.1#5353 -ipset=/.motor4ik.ru/gfwlist -server=/.mousebreaker.com/127.0.0.1#5353 -ipset=/.mousebreaker.com/gfwlist -server=/.movements.org/127.0.0.1#5353 -ipset=/.movements.org/gfwlist -server=/.moviefap.com/127.0.0.1#5353 -ipset=/.moviefap.com/gfwlist -server=/.mp3buscador.com/127.0.0.1#5353 -ipset=/.mp3buscador.com/gfwlist -server=/.mp3ye.eu/127.0.0.1#5353 -ipset=/.mp3ye.eu/gfwlist -server=/.mpettis.com/127.0.0.1#5353 -ipset=/.mpettis.com/gfwlist -server=/.mpfinance.com/127.0.0.1#5353 -ipset=/.mpfinance.com/gfwlist -server=/.mpinews.com/127.0.0.1#5353 -ipset=/.mpinews.com/gfwlist -server=/.mponline.hk/127.0.0.1#5353 -ipset=/.mponline.hk/gfwlist -server=/.mqxd.org/127.0.0.1#5353 -ipset=/.mqxd.org/gfwlist -server=/.mrbasic.com/127.0.0.1#5353 -ipset=/.mrbasic.com/gfwlist -server=/.mrbonus.com/127.0.0.1#5353 -ipset=/.mrbonus.com/gfwlist -server=/.mrface.com/127.0.0.1#5353 -ipset=/.mrface.com/gfwlist -server=/.mrslove.com/127.0.0.1#5353 -ipset=/.mrslove.com/gfwlist -server=/.mrtweet.com/127.0.0.1#5353 -ipset=/.mrtweet.com/gfwlist -server=/.msguancha.com/127.0.0.1#5353 -ipset=/.msguancha.com/gfwlist -server=/.msha.gov/127.0.0.1#5353 -ipset=/.msha.gov/gfwlist -server=/.mswe1.org/127.0.0.1#5353 -ipset=/.mswe1.org/gfwlist -server=/.mthruf.com/127.0.0.1#5353 -ipset=/.mthruf.com/gfwlist -server=/.mtw.tl/127.0.0.1#5353 -ipset=/.mtw.tl/gfwlist -server=/.muchosucko.com/127.0.0.1#5353 -ipset=/.muchosucko.com/gfwlist -server=/.mullvad.net/127.0.0.1#5353 -ipset=/.mullvad.net/gfwlist -server=/.multiply.com/127.0.0.1#5353 -ipset=/.multiply.com/gfwlist -server=/.multiproxy.org/127.0.0.1#5353 -ipset=/.multiproxy.org/gfwlist -server=/.multiupload.com/127.0.0.1#5353 -ipset=/.multiupload.com/gfwlist -server=/.mummysgold.com/127.0.0.1#5353 -ipset=/.mummysgold.com/gfwlist -server=/.murmur.tw/127.0.0.1#5353 -ipset=/.murmur.tw/gfwlist -server=/.music.jwmusic.org/127.0.0.1#5353 -ipset=/.music.jwmusic.org/gfwlist -server=/.musicade.net/127.0.0.1#5353 -ipset=/.musicade.net/gfwlist -server=/.muslimvideo.com/127.0.0.1#5353 -ipset=/.muslimvideo.com/gfwlist -server=/.muzi.com/127.0.0.1#5353 -ipset=/.muzi.com/gfwlist -server=/.muzi.net/127.0.0.1#5353 -ipset=/.muzi.net/gfwlist -server=/.muzu.tv/127.0.0.1#5353 -ipset=/.muzu.tv/gfwlist -server=/.mvdis.gov.tw/127.0.0.1#5353 -ipset=/.mvdis.gov.tw/gfwlist -server=/.mvg.jp/127.0.0.1#5353 -ipset=/.mvg.jp/gfwlist -server=/.mx.hao123.com/127.0.0.1#5353 -ipset=/.mx.hao123.com/gfwlist -server=/.mx981.com/127.0.0.1#5353 -ipset=/.mx981.com/gfwlist -server=/.my-formosa.com/127.0.0.1#5353 -ipset=/.my-formosa.com/gfwlist -server=/.my-private-network.co.uk/127.0.0.1#5353 -ipset=/.my-private-network.co.uk/gfwlist -server=/.my-proxy.com/127.0.0.1#5353 -ipset=/.my-proxy.com/gfwlist -server=/.my.mail.ru/127.0.0.1#5353 -ipset=/.my.mail.ru/gfwlist -server=/.my.pcloud.com/127.0.0.1#5353 -ipset=/.my.pcloud.com/gfwlist -server=/.my03.com/127.0.0.1#5353 -ipset=/.my03.com/gfwlist -server=/.myanniu.com/127.0.0.1#5353 -ipset=/.myanniu.com/gfwlist -server=/.myaudiocast.com/127.0.0.1#5353 -ipset=/.myaudiocast.com/gfwlist -server=/.mybbs.us/127.0.0.1#5353 -ipset=/.mybbs.us/gfwlist -server=/.mybet.com/127.0.0.1#5353 -ipset=/.mybet.com/gfwlist -server=/.myca168.com/127.0.0.1#5353 -ipset=/.myca168.com/gfwlist -server=/.mycanadanow.com/127.0.0.1#5353 -ipset=/.mycanadanow.com/gfwlist -server=/.mychinamyhome.com/127.0.0.1#5353 -ipset=/.mychinamyhome.com/gfwlist -server=/.mychinanet.com/127.0.0.1#5353 -ipset=/.mychinanet.com/gfwlist -server=/.mychinanews.com/127.0.0.1#5353 -ipset=/.mychinanews.com/gfwlist -server=/.mychinese.news/127.0.0.1#5353 -ipset=/.mychinese.news/gfwlist -server=/.mycnnews.com/127.0.0.1#5353 -ipset=/.mycnnews.com/gfwlist -server=/.mydad.info/127.0.0.1#5353 -ipset=/.mydad.info/gfwlist -server=/.myddns.com/127.0.0.1#5353 -ipset=/.myddns.com/gfwlist -server=/.myeasytv.com/127.0.0.1#5353 -ipset=/.myeasytv.com/gfwlist -server=/.myeclipseide.com/127.0.0.1#5353 -ipset=/.myeclipseide.com/gfwlist -server=/.myforum.com.hk/127.0.0.1#5353 -ipset=/.myforum.com.hk/gfwlist -server=/.myforum.com.uk/127.0.0.1#5353 -ipset=/.myforum.com.uk/gfwlist -server=/.myfreecams.com/127.0.0.1#5353 -ipset=/.myfreecams.com/gfwlist -server=/.myfreepaysite.com/127.0.0.1#5353 -ipset=/.myfreepaysite.com/gfwlist -server=/.myfreshnet.com/127.0.0.1#5353 -ipset=/.myfreshnet.com/gfwlist -server=/.myftp.info/127.0.0.1#5353 -ipset=/.myftp.info/gfwlist -server=/.myftp.name/127.0.0.1#5353 -ipset=/.myftp.name/gfwlist -server=/.myiphide.com/127.0.0.1#5353 -ipset=/.myiphide.com/gfwlist -server=/.mykomica.org/127.0.0.1#5353 -ipset=/.mykomica.org/gfwlist -server=/.mylftv.com/127.0.0.1#5353 -ipset=/.mylftv.com/gfwlist -server=/.mymoe.moe/127.0.0.1#5353 -ipset=/.mymoe.moe/gfwlist -server=/.mymom.info/127.0.0.1#5353 -ipset=/.mymom.info/gfwlist -server=/.mymusic.net.tw/127.0.0.1#5353 -ipset=/.mymusic.net.tw/gfwlist -server=/.mynetav.net/127.0.0.1#5353 -ipset=/.mynetav.net/gfwlist -server=/.mynetav.org/127.0.0.1#5353 -ipset=/.mynetav.org/gfwlist -server=/.mynumber.org/127.0.0.1#5353 -ipset=/.mynumber.org/gfwlist -server=/.myparagliding.com/127.0.0.1#5353 -ipset=/.myparagliding.com/gfwlist -server=/.mypicture.info/127.0.0.1#5353 -ipset=/.mypicture.info/gfwlist -server=/.mypop3.net/127.0.0.1#5353 -ipset=/.mypop3.net/gfwlist -server=/.mypop3.org/127.0.0.1#5353 -ipset=/.mypop3.org/gfwlist -server=/.mypopescu.com/127.0.0.1#5353 -ipset=/.mypopescu.com/gfwlist -server=/.myreadingmanga.info/127.0.0.1#5353 -ipset=/.myreadingmanga.info/gfwlist -server=/.mysecondarydns.com/127.0.0.1#5353 -ipset=/.mysecondarydns.com/gfwlist -server=/.mysinablog.com/127.0.0.1#5353 -ipset=/.mysinablog.com/gfwlist -server=/.mysite.verizon.net/127.0.0.1#5353 -ipset=/.mysite.verizon.net/gfwlist -server=/.myspace.com/127.0.0.1#5353 -ipset=/.myspace.com/gfwlist -server=/.myspacecdn.com/127.0.0.1#5353 -ipset=/.myspacecdn.com/gfwlist -server=/.mytalkbox.com/127.0.0.1#5353 -ipset=/.mytalkbox.com/gfwlist -server=/.mytizi.com/127.0.0.1#5353 -ipset=/.mytizi.com/gfwlist -server=/.myvlog.im.tv/127.0.0.1#5353 -ipset=/.myvlog.im.tv/gfwlist -server=/.mywww.biz/127.0.0.1#5353 -ipset=/.mywww.biz/gfwlist -server=/.myz.info/127.0.0.1#5353 -ipset=/.myz.info/gfwlist -server=/.naacoalition.org/127.0.0.1#5353 -ipset=/.naacoalition.org/gfwlist -server=/.naitik.net/127.0.0.1#5353 -ipset=/.naitik.net/gfwlist -server=/.nakido.com/127.0.0.1#5353 -ipset=/.nakido.com/gfwlist -server=/.nalandabodhi.org/127.0.0.1#5353 -ipset=/.nalandabodhi.org/gfwlist -server=/.nalandawest.org/127.0.0.1#5353 -ipset=/.nalandawest.org/gfwlist -server=/.namgyal.org/127.0.0.1#5353 -ipset=/.namgyal.org/gfwlist -server=/.namgyalmonastery.org/127.0.0.1#5353 -ipset=/.namgyalmonastery.org/gfwlist -server=/.namsisi.com/127.0.0.1#5353 -ipset=/.namsisi.com/gfwlist -server=/.nankan.gov.tw/127.0.0.1#5353 -ipset=/.nankan.gov.tw/gfwlist -server=/.nanyang.com/127.0.0.1#5353 -ipset=/.nanyang.com/gfwlist -server=/.nanyangpost.com/127.0.0.1#5353 -ipset=/.nanyangpost.com/gfwlist -server=/.nanzao.com/127.0.0.1#5353 -ipset=/.nanzao.com/gfwlist -server=/.naol.ca/127.0.0.1#5353 -ipset=/.naol.ca/gfwlist -server=/.naol.cc/127.0.0.1#5353 -ipset=/.naol.cc/gfwlist -server=/.nat.gov.tw/127.0.0.1#5353 -ipset=/.nat.gov.tw/gfwlist -server=/.nat.moe/127.0.0.1#5353 -ipset=/.nat.moe/gfwlist -server=/.national-lottery.co.uk/127.0.0.1#5353 -ipset=/.national-lottery.co.uk/gfwlist -server=/.nationwide.com/127.0.0.1#5353 -ipset=/.nationwide.com/gfwlist -server=/.naughtyamerica.com/127.0.0.1#5353 -ipset=/.naughtyamerica.com/gfwlist -server=/.navyfamily.navy.mil/127.0.0.1#5353 -ipset=/.navyfamily.navy.mil/gfwlist -server=/.navyreserve.navy.mil/127.0.0.1#5353 -ipset=/.navyreserve.navy.mil/gfwlist -server=/.naweeklytimes.com/127.0.0.1#5353 -ipset=/.naweeklytimes.com/gfwlist -server=/.nbtvpn.com/127.0.0.1#5353 -ipset=/.nbtvpn.com/gfwlist -server=/.nccwatch.org.tw/127.0.0.1#5353 -ipset=/.nccwatch.org.tw/gfwlist -server=/.nch.com.tw/127.0.0.1#5353 -ipset=/.nch.com.tw/gfwlist -server=/.ncn.org/127.0.0.1#5353 -ipset=/.ncn.org/gfwlist -server=/.ncree.gov.tw/127.0.0.1#5353 -ipset=/.ncree.gov.tw/gfwlist -server=/.nde.de/127.0.0.1#5353 -ipset=/.nde.de/gfwlist -server=/.ndr.de/127.0.0.1#5353 -ipset=/.ndr.de/gfwlist -server=/.necoast-nsa.gov.tw/127.0.0.1#5353 -ipset=/.necoast-nsa.gov.tw/gfwlist -server=/.ned.org/127.0.0.1#5353 -ipset=/.ned.org/gfwlist -server=/.nekoslovakia.net/127.0.0.1#5353 -ipset=/.nekoslovakia.net/gfwlist -server=/.neo-miracle.com/127.0.0.1#5353 -ipset=/.neo-miracle.com/gfwlist -server=/.nepusoku.com/127.0.0.1#5353 -ipset=/.nepusoku.com/gfwlist -server=/.ner.gov.tw/127.0.0.1#5353 -ipset=/.ner.gov.tw/gfwlist -server=/.net-fits.pro/127.0.0.1#5353 -ipset=/.net-fits.pro/gfwlist -server=/.netbirds.com/127.0.0.1#5353 -ipset=/.netbirds.com/gfwlist -server=/.netcolony.com/127.0.0.1#5353 -ipset=/.netcolony.com/gfwlist -server=/.netflix.com/127.0.0.1#5353 -ipset=/.netflix.com/gfwlist -server=/.netme.cc/127.0.0.1#5353 -ipset=/.netme.cc/gfwlist -server=/.netsneak.com/127.0.0.1#5353 -ipset=/.netsneak.com/gfwlist -server=/.network54.com/127.0.0.1#5353 -ipset=/.network54.com/gfwlist -server=/.networkedblogs.com/127.0.0.1#5353 -ipset=/.networkedblogs.com/gfwlist -server=/.networktunnel.net/127.0.0.1#5353 -ipset=/.networktunnel.net/gfwlist -server=/.neue.v2ex.com/127.0.0.1#5353 -ipset=/.neue.v2ex.com/gfwlist -server=/.neverforget8964.org/127.0.0.1#5353 -ipset=/.neverforget8964.org/gfwlist -server=/.new-3lunch.net/127.0.0.1#5353 -ipset=/.new-3lunch.net/gfwlist -server=/.new-akiba.com/127.0.0.1#5353 -ipset=/.new-akiba.com/gfwlist -server=/.new96.ca/127.0.0.1#5353 -ipset=/.new96.ca/gfwlist -server=/.newcenturymc.com/127.0.0.1#5353 -ipset=/.newcenturymc.com/gfwlist -server=/.newcenturynews.com/127.0.0.1#5353 -ipset=/.newcenturynews.com/gfwlist -server=/.newchen.com/127.0.0.1#5353 -ipset=/.newchen.com/gfwlist -server=/.newgrounds.com/127.0.0.1#5353 -ipset=/.newgrounds.com/gfwlist -server=/.newipnow.com/127.0.0.1#5353 -ipset=/.newipnow.com/gfwlist -server=/.newlandmagazine.com.au/127.0.0.1#5353 -ipset=/.newlandmagazine.com.au/gfwlist -server=/.newnews.ca/127.0.0.1#5353 -ipset=/.newnews.ca/gfwlist -server=/.news.cnyes.com/127.0.0.1#5353 -ipset=/.news.cnyes.com/gfwlist -server=/.news.hk.msn.com/127.0.0.1#5353 -ipset=/.news.hk.msn.com/gfwlist -server=/.news.hkpeanut.com/127.0.0.1#5353 -ipset=/.news.hkpeanut.com/gfwlist -server=/.news.msn.com.tw/127.0.0.1#5353 -ipset=/.news.msn.com.tw/gfwlist -server=/.news.now.com/127.0.0.1#5353 -ipset=/.news.now.com/gfwlist -server=/.news.omy.sg/127.0.0.1#5353 -ipset=/.news.omy.sg/gfwlist -server=/.news.seehua.com/127.0.0.1#5353 -ipset=/.news.seehua.com/gfwlist -server=/.news.sina.com.hk/127.0.0.1#5353 -ipset=/.news.sina.com.hk/gfwlist -server=/.news.sina.com.tw/127.0.0.1#5353 -ipset=/.news.sina.com.tw/gfwlist -server=/.news.sinchew.com.my/127.0.0.1#5353 -ipset=/.news.sinchew.com.my/gfwlist -server=/.news.singtao.ca/127.0.0.1#5353 -ipset=/.news.singtao.ca/gfwlist -server=/.news.tvbs.com.tw/127.0.0.1#5353 -ipset=/.news.tvbs.com.tw/gfwlist -server=/.news100.com.tw/127.0.0.1#5353 -ipset=/.news100.com.tw/gfwlist -server=/.newsancai.com/127.0.0.1#5353 -ipset=/.newsancai.com/gfwlist -server=/.newschinacomment.org/127.0.0.1#5353 -ipset=/.newschinacomment.org/gfwlist -server=/.newscn.org/127.0.0.1#5353 -ipset=/.newscn.org/gfwlist -server=/.newsdetox.ca/127.0.0.1#5353 -ipset=/.newsdetox.ca/gfwlist -server=/.newsdh.com/127.0.0.1#5353 -ipset=/.newsdh.com/gfwlist -server=/.newstamago.com/127.0.0.1#5353 -ipset=/.newstamago.com/gfwlist -server=/.newstapa.org/127.0.0.1#5353 -ipset=/.newstapa.org/gfwlist -server=/.newstarnet.com/127.0.0.1#5353 -ipset=/.newstarnet.com/gfwlist -server=/.newtaiwan.com.tw/127.0.0.1#5353 -ipset=/.newtaiwan.com.tw/gfwlist -server=/.newtalk.tw/127.0.0.1#5353 -ipset=/.newtalk.tw/gfwlist -server=/.newyorktimes.com/127.0.0.1#5353 -ipset=/.newyorktimes.com/gfwlist -server=/.nexon.com/127.0.0.1#5353 -ipset=/.nexon.com/gfwlist -server=/.next11.co.jp/127.0.0.1#5353 -ipset=/.next11.co.jp/gfwlist -server=/.nextmag.com.tw/127.0.0.1#5353 -ipset=/.nextmag.com.tw/gfwlist -server=/.nextmedia.com/127.0.0.1#5353 -ipset=/.nextmedia.com/gfwlist -server=/.nexton-net.jp/127.0.0.1#5353 -ipset=/.nexton-net.jp/gfwlist -server=/.nexttv.com.tw/127.0.0.1#5353 -ipset=/.nexttv.com.tw/gfwlist -server=/.nf.id.au/127.0.0.1#5353 -ipset=/.nf.id.au/gfwlist -server=/.nfjtyd.com/127.0.0.1#5353 -ipset=/.nfjtyd.com/gfwlist -server=/.nflxext.com/127.0.0.1#5353 -ipset=/.nflxext.com/gfwlist -server=/.nflximg.com/127.0.0.1#5353 -ipset=/.nflximg.com/gfwlist -server=/.nflximg.net/127.0.0.1#5353 -ipset=/.nflximg.net/gfwlist -server=/.nflxso.net/127.0.0.1#5353 -ipset=/.nflxso.net/gfwlist -server=/.nflxvideo.net/127.0.0.1#5353 -ipset=/.nflxvideo.net/gfwlist -server=/.nga.mil/127.0.0.1#5353 -ipset=/.nga.mil/gfwlist -server=/.ngensis.com/127.0.0.1#5353 -ipset=/.ngensis.com/gfwlist -server=/.nhentai.net/127.0.0.1#5353 -ipset=/.nhentai.net/gfwlist -server=/.nhi.gov.tw/127.0.0.1#5353 -ipset=/.nhi.gov.tw/gfwlist -server=/.nhk-ondemand.jp/127.0.0.1#5353 -ipset=/.nhk-ondemand.jp/gfwlist -server=/.nic.cz.cc/127.0.0.1#5353 -ipset=/.nic.cz.cc/gfwlist -server=/.nic.google/127.0.0.1#5353 -ipset=/.nic.google/gfwlist -server=/.nic.gov/127.0.0.1#5353 -ipset=/.nic.gov/gfwlist -server=/.nighost.org/127.0.0.1#5353 -ipset=/.nighost.org/gfwlist -server=/.nikkei.com/127.0.0.1#5353 -ipset=/.nikkei.com/gfwlist -server=/.ninecommentaries.com/127.0.0.1#5353 -ipset=/.ninecommentaries.com/gfwlist -server=/.ninjacloak.com/127.0.0.1#5353 -ipset=/.ninjacloak.com/gfwlist -server=/.ninjaproxy.ninja/127.0.0.1#5353 -ipset=/.ninjaproxy.ninja/gfwlist -server=/.nintendium.com/127.0.0.1#5353 -ipset=/.nintendium.com/gfwlist -server=/.ninth.biz/127.0.0.1#5353 -ipset=/.ninth.biz/gfwlist -server=/.niusnews.com/127.0.0.1#5353 -ipset=/.niusnews.com/gfwlist -server=/.njactb.org/127.0.0.1#5353 -ipset=/.njactb.org/gfwlist -server=/.njuice.com/127.0.0.1#5353 -ipset=/.njuice.com/gfwlist -server=/.nko.navy.mil/127.0.0.1#5353 -ipset=/.nko.navy.mil/gfwlist -server=/.nlfreevpn.com/127.0.0.1#5353 -ipset=/.nlfreevpn.com/gfwlist -server=/.nmmba.gov.tw/127.0.0.1#5353 -ipset=/.nmmba.gov.tw/gfwlist -server=/.nmp.gov.tw/127.0.0.1#5353 -ipset=/.nmp.gov.tw/gfwlist -server=/.nmvttc.gov.tw/127.0.0.1#5353 -ipset=/.nmvttc.gov.tw/gfwlist -server=/.no-ip.org/127.0.0.1#5353 -ipset=/.no-ip.org/gfwlist -server=/.nobel.se/127.0.0.1#5353 -ipset=/.nobel.se/gfwlist -server=/.nobodycanstop.us/127.0.0.1#5353 -ipset=/.nobodycanstop.us/gfwlist -server=/.nofile.io/127.0.0.1#5353 -ipset=/.nofile.io/gfwlist -server=/.nokogiri.org/127.0.0.1#5353 -ipset=/.nokogiri.org/gfwlist -server=/.nokola.com/127.0.0.1#5353 -ipset=/.nokola.com/gfwlist -server=/.noodlevpn.com/127.0.0.1#5353 -ipset=/.noodlevpn.com/gfwlist -server=/.norbulingka.org/127.0.0.1#5353 -ipset=/.norbulingka.org/gfwlist -server=/.nordstrom.com/127.0.0.1#5353 -ipset=/.nordstrom.com/gfwlist -server=/.nordstromimage.com/127.0.0.1#5353 -ipset=/.nordstromimage.com/gfwlist -server=/.nordstromrack.com/127.0.0.1#5353 -ipset=/.nordstromrack.com/gfwlist -server=/.nordvpn.com/127.0.0.1#5353 -ipset=/.nordvpn.com/gfwlist -server=/.northguan-nsa.gov.tw/127.0.0.1#5353 -ipset=/.northguan-nsa.gov.tw/gfwlist -server=/.notify.dropboxapi.com/127.0.0.1#5353 -ipset=/.notify.dropboxapi.com/gfwlist -server=/.nottinghampost.com/127.0.0.1#5353 -ipset=/.nottinghampost.com/gfwlist -server=/.novelasia.com/127.0.0.1#5353 -ipset=/.novelasia.com/gfwlist -server=/.now.com/127.0.0.1#5353 -ipset=/.now.com/gfwlist -server=/.now.im/127.0.0.1#5353 -ipset=/.now.im/gfwlist -server=/.nownews.com/127.0.0.1#5353 -ipset=/.nownews.com/gfwlist -server=/.nowtorrents.com/127.0.0.1#5353 -ipset=/.nowtorrents.com/gfwlist -server=/.noypf.com/127.0.0.1#5353 -ipset=/.noypf.com/gfwlist -server=/.npa.go.jp/127.0.0.1#5353 -ipset=/.npa.go.jp/gfwlist -server=/.npa.gov.tw/127.0.0.1#5353 -ipset=/.npa.gov.tw/gfwlist -server=/.npm.gov.tw/127.0.0.1#5353 -ipset=/.npm.gov.tw/gfwlist -server=/.npnt.me/127.0.0.1#5353 -ipset=/.npnt.me/gfwlist -server=/.nps.gov/127.0.0.1#5353 -ipset=/.nps.gov/gfwlist -server=/.nradio.me/127.0.0.1#5353 -ipset=/.nradio.me/gfwlist -server=/.nrk.no/127.0.0.1#5353 -ipset=/.nrk.no/gfwlist -server=/.ns01.biz/127.0.0.1#5353 -ipset=/.ns01.biz/gfwlist -server=/.ns01.info/127.0.0.1#5353 -ipset=/.ns01.info/gfwlist -server=/.ns01.us/127.0.0.1#5353 -ipset=/.ns01.us/gfwlist -server=/.ns02.biz/127.0.0.1#5353 -ipset=/.ns02.biz/gfwlist -server=/.ns02.info/127.0.0.1#5353 -ipset=/.ns02.info/gfwlist -server=/.ns02.us/127.0.0.1#5353 -ipset=/.ns02.us/gfwlist -server=/.ns1.name/127.0.0.1#5353 -ipset=/.ns1.name/gfwlist -server=/.ns2.name/127.0.0.1#5353 -ipset=/.ns2.name/gfwlist -server=/.ns3.name/127.0.0.1#5353 -ipset=/.ns3.name/gfwlist -server=/.nsc.gov.tw/127.0.0.1#5353 -ipset=/.nsc.gov.tw/gfwlist -server=/.nstm.gov.tw/127.0.0.1#5353 -ipset=/.nstm.gov.tw/gfwlist -server=/.ntbk.gov.tw/127.0.0.1#5353 -ipset=/.ntbk.gov.tw/gfwlist -server=/.ntbna.gov.tw/127.0.0.1#5353 -ipset=/.ntbna.gov.tw/gfwlist -server=/.ntbt.gov.tw/127.0.0.1#5353 -ipset=/.ntbt.gov.tw/gfwlist -server=/.ntd.tv/127.0.0.1#5353 -ipset=/.ntd.tv/gfwlist -server=/.ntdmh.gov.tw/127.0.0.1#5353 -ipset=/.ntdmh.gov.tw/gfwlist -server=/.ntdtv.ca/127.0.0.1#5353 -ipset=/.ntdtv.ca/gfwlist -server=/.ntdtv.co.kr/127.0.0.1#5353 -ipset=/.ntdtv.co.kr/gfwlist -server=/.ntdtv.com/127.0.0.1#5353 -ipset=/.ntdtv.com/gfwlist -server=/.ntdtv.cz/127.0.0.1#5353 -ipset=/.ntdtv.cz/gfwlist -server=/.ntdtv.org/127.0.0.1#5353 -ipset=/.ntdtv.org/gfwlist -server=/.ntdtv.ru/127.0.0.1#5353 -ipset=/.ntdtv.ru/gfwlist -server=/.ntdtvla.com/127.0.0.1#5353 -ipset=/.ntdtvla.com/gfwlist -server=/.ntl.gov.tw/127.0.0.1#5353 -ipset=/.ntl.gov.tw/gfwlist -server=/.ntrfun.com/127.0.0.1#5353 -ipset=/.ntrfun.com/gfwlist -server=/.ntsec.gov.tw/127.0.0.1#5353 -ipset=/.ntsec.gov.tw/gfwlist -server=/.ntsna.gov.tw/127.0.0.1#5353 -ipset=/.ntsna.gov.tw/gfwlist -server=/.ntuh.gov.tw/127.0.0.1#5353 -ipset=/.ntuh.gov.tw/gfwlist -server=/.nubiles.net/127.0.0.1#5353 -ipset=/.nubiles.net/gfwlist -server=/.nuexpo.com/127.0.0.1#5353 -ipset=/.nuexpo.com/gfwlist -server=/.nukistream.com/127.0.0.1#5353 -ipset=/.nukistream.com/gfwlist -server=/.nurgo-software.com/127.0.0.1#5353 -ipset=/.nurgo-software.com/gfwlist -server=/.nusatrip.com/127.0.0.1#5353 -ipset=/.nusatrip.com/gfwlist -server=/.nutaku.net/127.0.0.1#5353 -ipset=/.nutaku.net/gfwlist -server=/.nuuvem.com/127.0.0.1#5353 -ipset=/.nuuvem.com/gfwlist -server=/.nuvid.com/127.0.0.1#5353 -ipset=/.nuvid.com/gfwlist -server=/.nuzcom.com/127.0.0.1#5353 -ipset=/.nuzcom.com/gfwlist -server=/.nvdst.com/127.0.0.1#5353 -ipset=/.nvdst.com/gfwlist -server=/.nvquan.org/127.0.0.1#5353 -ipset=/.nvquan.org/gfwlist -server=/.nvri.gov.tw/127.0.0.1#5353 -ipset=/.nvri.gov.tw/gfwlist -server=/.nvtongzhisheng.org/127.0.0.1#5353 -ipset=/.nvtongzhisheng.org/gfwlist -server=/.nwtca.org/127.0.0.1#5353 -ipset=/.nwtca.org/gfwlist -server=/.ny.stgloballink.com/127.0.0.1#5353 -ipset=/.ny.stgloballink.com/gfwlist -server=/.ny.visiontimes.com/127.0.0.1#5353 -ipset=/.ny.visiontimes.com/gfwlist -server=/.nyaa.eu/127.0.0.1#5353 -ipset=/.nyaa.eu/gfwlist -server=/.nydus.ca/127.0.0.1#5353 -ipset=/.nydus.ca/gfwlist -server=/.nylon-angel.com/127.0.0.1#5353 -ipset=/.nylon-angel.com/gfwlist -server=/.nylonstockingsonline.com/127.0.0.1#5353 -ipset=/.nylonstockingsonline.com/gfwlist -server=/.nyt.com/127.0.0.1#5353 -ipset=/.nyt.com/gfwlist -server=/.nytchina.com/127.0.0.1#5353 -ipset=/.nytchina.com/gfwlist -server=/.nytcn.me/127.0.0.1#5353 -ipset=/.nytcn.me/gfwlist -server=/.nytco.com/127.0.0.1#5353 -ipset=/.nytco.com/gfwlist -server=/.nytimes.com/127.0.0.1#5353 -ipset=/.nytimes.com/gfwlist -server=/.nytimes.map.fastly.net/127.0.0.1#5353 -ipset=/.nytimes.map.fastly.net/gfwlist -server=/.nytimg.com/127.0.0.1#5353 -ipset=/.nytimg.com/gfwlist -server=/.nytstyle.com/127.0.0.1#5353 -ipset=/.nytstyle.com/gfwlist -server=/.nzchinese.com/127.0.0.1#5353 -ipset=/.nzchinese.com/gfwlist -server=/.nzchinese.net.nz/127.0.0.1#5353 -ipset=/.nzchinese.net.nz/gfwlist -server=/.observechina.net/127.0.0.1#5353 -ipset=/.observechina.net/gfwlist -server=/.obutu.com/127.0.0.1#5353 -ipset=/.obutu.com/gfwlist -server=/.ocaspro.com/127.0.0.1#5353 -ipset=/.ocaspro.com/gfwlist -server=/.occupytiananmen.com/127.0.0.1#5353 -ipset=/.occupytiananmen.com/gfwlist -server=/.oclp.hk/127.0.0.1#5353 -ipset=/.oclp.hk/gfwlist -server=/.ocreampies.com/127.0.0.1#5353 -ipset=/.ocreampies.com/gfwlist -server=/.ocry.com/127.0.0.1#5353 -ipset=/.ocry.com/gfwlist -server=/.october-review.org/127.0.0.1#5353 -ipset=/.october-review.org/gfwlist -server=/.oculus.com/127.0.0.1#5353 -ipset=/.oculus.com/gfwlist -server=/.oculuscdn.com/127.0.0.1#5353 -ipset=/.oculuscdn.com/gfwlist -server=/.oex.com/127.0.0.1#5353 -ipset=/.oex.com/gfwlist -server=/.offbeatchina.com/127.0.0.1#5353 -ipset=/.offbeatchina.com/gfwlist -server=/.officeoftibet.com/127.0.0.1#5353 -ipset=/.officeoftibet.com/gfwlist -server=/.ofile.org/127.0.0.1#5353 -ipset=/.ofile.org/gfwlist -server=/.ogaoga.org/127.0.0.1#5353 -ipset=/.ogaoga.org/gfwlist -server=/.ogate.org/127.0.0.1#5353 -ipset=/.ogate.org/gfwlist -server=/.oiktv.com/127.0.0.1#5353 -ipset=/.oiktv.com/gfwlist -server=/.oizoblog.com/127.0.0.1#5353 -ipset=/.oizoblog.com/gfwlist -server=/.ok.ru/127.0.0.1#5353 -ipset=/.ok.ru/gfwlist -server=/.okayfreedom.com/127.0.0.1#5353 -ipset=/.okayfreedom.com/gfwlist -server=/.okex.com/127.0.0.1#5353 -ipset=/.okex.com/gfwlist -server=/.okk.tw/127.0.0.1#5353 -ipset=/.okk.tw/gfwlist -server=/.old-cat.net/127.0.0.1#5353 -ipset=/.old-cat.net/gfwlist -server=/.old.nabble.com/127.0.0.1#5353 -ipset=/.old.nabble.com/gfwlist -server=/.olumpo.com/127.0.0.1#5353 -ipset=/.olumpo.com/gfwlist -server=/.olympicwatch.org/127.0.0.1#5353 -ipset=/.olympicwatch.org/gfwlist -server=/.omgili.com/127.0.0.1#5353 -ipset=/.omgili.com/gfwlist -server=/.omni7.jp/127.0.0.1#5353 -ipset=/.omni7.jp/gfwlist -server=/.omnitalk.com/127.0.0.1#5353 -ipset=/.omnitalk.com/gfwlist -server=/.omnitalk.org/127.0.0.1#5353 -ipset=/.omnitalk.org/gfwlist -server=/.on.cc/127.0.0.1#5353 -ipset=/.on.cc/gfwlist -server=/.on2.com/127.0.0.1#5353 -ipset=/.on2.com/gfwlist -server=/.onapp.com/127.0.0.1#5353 -ipset=/.onapp.com/gfwlist -server=/.onedrive.live.com/127.0.0.1#5353 -ipset=/.onedrive.live.com/gfwlist -server=/.onedumb.com/127.0.0.1#5353 -ipset=/.onedumb.com/gfwlist -server=/.onejav.com/127.0.0.1#5353 -ipset=/.onejav.com/gfwlist -server=/.onion.city/127.0.0.1#5353 -ipset=/.onion.city/gfwlist -server=/.online.recoveryversion.org/127.0.0.1#5353 -ipset=/.online.recoveryversion.org/gfwlist -server=/.onlinecha.com/127.0.0.1#5353 -ipset=/.onlinecha.com/gfwlist -server=/.onlineyoutube.com/127.0.0.1#5353 -ipset=/.onlineyoutube.com/gfwlist -server=/.onlytweets.com/127.0.0.1#5353 -ipset=/.onlytweets.com/gfwlist -server=/.onmoon.com/127.0.0.1#5353 -ipset=/.onmoon.com/gfwlist -server=/.onmoon.net/127.0.0.1#5353 -ipset=/.onmoon.net/gfwlist -server=/.onmypc.biz/127.0.0.1#5353 -ipset=/.onmypc.biz/gfwlist -server=/.onmypc.info/127.0.0.1#5353 -ipset=/.onmypc.info/gfwlist -server=/.onmypc.net/127.0.0.1#5353 -ipset=/.onmypc.net/gfwlist -server=/.onmypc.org/127.0.0.1#5353 -ipset=/.onmypc.org/gfwlist -server=/.onmypc.us/127.0.0.1#5353 -ipset=/.onmypc.us/gfwlist -server=/.onthehunt.com/127.0.0.1#5353 -ipset=/.onthehunt.com/gfwlist -server=/.ontrac.com/127.0.0.1#5353 -ipset=/.ontrac.com/gfwlist -server=/.oopsforum.com/127.0.0.1#5353 -ipset=/.oopsforum.com/gfwlist -server=/.open.com.hk/127.0.0.1#5353 -ipset=/.open.com.hk/gfwlist -server=/.openallweb.com/127.0.0.1#5353 -ipset=/.openallweb.com/gfwlist -server=/.opendemocracy.net/127.0.0.1#5353 -ipset=/.opendemocracy.net/gfwlist -server=/.opendn.xyz/127.0.0.1#5353 -ipset=/.opendn.xyz/gfwlist -server=/.openervpn.in/127.0.0.1#5353 -ipset=/.openervpn.in/gfwlist -server=/.openid.net/127.0.0.1#5353 -ipset=/.openid.net/gfwlist -server=/.openleaks.org/127.0.0.1#5353 -ipset=/.openleaks.org/gfwlist -server=/.openvpn.net/127.0.0.1#5353 -ipset=/.openvpn.net/gfwlist -server=/.openwebster.com/127.0.0.1#5353 -ipset=/.openwebster.com/gfwlist -server=/.openwrt.org.cn/127.0.0.1#5353 -ipset=/.openwrt.org.cn/gfwlist -server=/.opml.radiotime.com/127.0.0.1#5353 -ipset=/.opml.radiotime.com/gfwlist -server=/.opus-gaming.com/127.0.0.1#5353 -ipset=/.opus-gaming.com/gfwlist -server=/.organcare.org.tw/127.0.0.1#5353 -ipset=/.organcare.org.tw/gfwlist -server=/.organharvestinvestigation.net/127.0.0.1#5353 -ipset=/.organharvestinvestigation.net/gfwlist -server=/.organiccrap.com/127.0.0.1#5353 -ipset=/.organiccrap.com/gfwlist -server=/.orgasm.com/127.0.0.1#5353 -ipset=/.orgasm.com/gfwlist -server=/.orgfree.com/127.0.0.1#5353 -ipset=/.orgfree.com/gfwlist -server=/.orient-doll.com/127.0.0.1#5353 -ipset=/.orient-doll.com/gfwlist -server=/.orientaldaily.com.my/127.0.0.1#5353 -ipset=/.orientaldaily.com.my/gfwlist -server=/.orn.jp/127.0.0.1#5353 -ipset=/.orn.jp/gfwlist -server=/.orzistic.org/127.0.0.1#5353 -ipset=/.orzistic.org/gfwlist -server=/.osfoora.com/127.0.0.1#5353 -ipset=/.osfoora.com/gfwlist -server=/.otnd.org/127.0.0.1#5353 -ipset=/.otnd.org/gfwlist -server=/.otto.de/127.0.0.1#5353 -ipset=/.otto.de/gfwlist -server=/.otzo.com/127.0.0.1#5353 -ipset=/.otzo.com/gfwlist -server=/.ourdearamy.com/127.0.0.1#5353 -ipset=/.ourdearamy.com/gfwlist -server=/.ourhobby.com/127.0.0.1#5353 -ipset=/.ourhobby.com/gfwlist -server=/.oursogo.com/127.0.0.1#5353 -ipset=/.oursogo.com/gfwlist -server=/.oursteps.com.au/127.0.0.1#5353 -ipset=/.oursteps.com.au/gfwlist -server=/.oursweb.net/127.0.0.1#5353 -ipset=/.oursweb.net/gfwlist -server=/.ourtv.hk/127.0.0.1#5353 -ipset=/.ourtv.hk/gfwlist -server=/.overplay.net/127.0.0.1#5353 -ipset=/.overplay.net/gfwlist -server=/.oversea.istarshine.com/127.0.0.1#5353 -ipset=/.oversea.istarshine.com/gfwlist -server=/.ow.ly/127.0.0.1#5353 -ipset=/.ow.ly/gfwlist -server=/.owl.li/127.0.0.1#5353 -ipset=/.owl.li/gfwlist -server=/.oyax.com/127.0.0.1#5353 -ipset=/.oyax.com/gfwlist -server=/.ozvoice.org/127.0.0.1#5353 -ipset=/.ozvoice.org/gfwlist -server=/.ozxw.com/127.0.0.1#5353 -ipset=/.ozxw.com/gfwlist -server=/.ozyoyo.com/127.0.0.1#5353 -ipset=/.ozyoyo.com/gfwlist -server=/.pachosting.com/127.0.0.1#5353 -ipset=/.pachosting.com/gfwlist -server=/.pacificpoker.com/127.0.0.1#5353 -ipset=/.pacificpoker.com/gfwlist -server=/.packetix.net/127.0.0.1#5353 -ipset=/.packetix.net/gfwlist -server=/.pacopacomama.com/127.0.0.1#5353 -ipset=/.pacopacomama.com/gfwlist -server=/.padmanet.com/127.0.0.1#5353 -ipset=/.padmanet.com/gfwlist -server=/.page.bid.yahoo.com/127.0.0.1#5353 -ipset=/.page.bid.yahoo.com/gfwlist -server=/.page2rss.com/127.0.0.1#5353 -ipset=/.page2rss.com/gfwlist -server=/.pagespeed.v2ex.com/127.0.0.1#5353 -ipset=/.pagespeed.v2ex.com/gfwlist -server=/.pagodabox.com/127.0.0.1#5353 -ipset=/.pagodabox.com/gfwlist -server=/.palacemoon.com/127.0.0.1#5353 -ipset=/.palacemoon.com/gfwlist -server=/.paldengyal.com/127.0.0.1#5353 -ipset=/.paldengyal.com/gfwlist -server=/.paljorpublications.com/127.0.0.1#5353 -ipset=/.paljorpublications.com/gfwlist -server=/.paltalk.com/127.0.0.1#5353 -ipset=/.paltalk.com/gfwlist -server=/.panamapapers.sueddeutsche.de/127.0.0.1#5353 -ipset=/.panamapapers.sueddeutsche.de/gfwlist -server=/.pandapow.co/127.0.0.1#5353 -ipset=/.pandapow.co/gfwlist -server=/.pandapow.net/127.0.0.1#5353 -ipset=/.pandapow.net/gfwlist -server=/.pandavpn-jp.com/127.0.0.1#5353 -ipset=/.pandavpn-jp.com/gfwlist -server=/.pandora.com/127.0.0.1#5353 -ipset=/.pandora.com/gfwlist -server=/.pandora.tv/127.0.0.1#5353 -ipset=/.pandora.tv/gfwlist -server=/.panluan.net/127.0.0.1#5353 -ipset=/.panluan.net/gfwlist -server=/.panoramio.com/127.0.0.1#5353 -ipset=/.panoramio.com/gfwlist -server=/.pao-pao.net/127.0.0.1#5353 -ipset=/.pao-pao.net/gfwlist -server=/.paper.li/127.0.0.1#5353 -ipset=/.paper.li/gfwlist -server=/.paperb.us/127.0.0.1#5353 -ipset=/.paperb.us/gfwlist -server=/.paradisehill.cc/127.0.0.1#5353 -ipset=/.paradisehill.cc/gfwlist -server=/.paradisepoker.com/127.0.0.1#5353 -ipset=/.paradisepoker.com/gfwlist -server=/.parkansky.com/127.0.0.1#5353 -ipset=/.parkansky.com/gfwlist -server=/.partycasino.com/127.0.0.1#5353 -ipset=/.partycasino.com/gfwlist -server=/.partypoker.com/127.0.0.1#5353 -ipset=/.partypoker.com/gfwlist -server=/.passion.com/127.0.0.1#5353 -ipset=/.passion.com/gfwlist -server=/.passiontimes.hk/127.0.0.1#5353 -ipset=/.passiontimes.hk/gfwlist -server=/.paste.ee/127.0.0.1#5353 -ipset=/.paste.ee/gfwlist -server=/.pastebin.com/127.0.0.1#5353 -ipset=/.pastebin.com/gfwlist -server=/.pastie.org/127.0.0.1#5353 -ipset=/.pastie.org/gfwlist -server=/.pbwiki.com/127.0.0.1#5353 -ipset=/.pbwiki.com/gfwlist -server=/.pbworks.com/127.0.0.1#5353 -ipset=/.pbworks.com/gfwlist -server=/.pbxes.com/127.0.0.1#5353 -ipset=/.pbxes.com/gfwlist -server=/.pbxes.org/127.0.0.1#5353 -ipset=/.pbxes.org/gfwlist -server=/.pcanywhere.net/127.0.0.1#5353 -ipset=/.pcanywhere.net/gfwlist -server=/.pcc.gov.tw/127.0.0.1#5353 -ipset=/.pcc.gov.tw/gfwlist -server=/.pcdvd.com.tw/127.0.0.1#5353 -ipset=/.pcdvd.com.tw/gfwlist -server=/.pchome.com.tw/127.0.0.1#5353 -ipset=/.pchome.com.tw/gfwlist -server=/.pcij.org/127.0.0.1#5353 -ipset=/.pcij.org/gfwlist -server=/.pcstore.com.tw/127.0.0.1#5353 -ipset=/.pcstore.com.tw/gfwlist -server=/.pct.org.tw/127.0.0.1#5353 -ipset=/.pct.org.tw/gfwlist -server=/.pdetails.com/127.0.0.1#5353 -ipset=/.pdetails.com/gfwlist -server=/.pdproxy.com/127.0.0.1#5353 -ipset=/.pdproxy.com/gfwlist -server=/.pds.nasa.gov/127.0.0.1#5353 -ipset=/.pds.nasa.gov/gfwlist -server=/.peace.ca/127.0.0.1#5353 -ipset=/.peace.ca/gfwlist -server=/.peacefire.org/127.0.0.1#5353 -ipset=/.peacefire.org/gfwlist -server=/.peacehall.com/127.0.0.1#5353 -ipset=/.peacehall.com/gfwlist -server=/.pearlher.org/127.0.0.1#5353 -ipset=/.pearlher.org/gfwlist -server=/.peeasian.com/127.0.0.1#5353 -ipset=/.peeasian.com/gfwlist -server=/.pekingduck.org/127.0.0.1#5353 -ipset=/.pekingduck.org/gfwlist -server=/.pemulihan.or.id/127.0.0.1#5353 -ipset=/.pemulihan.or.id/gfwlist -server=/.pen.io/127.0.0.1#5353 -ipset=/.pen.io/gfwlist -server=/.penchinese.com/127.0.0.1#5353 -ipset=/.penchinese.com/gfwlist -server=/.penchinese.net/127.0.0.1#5353 -ipset=/.penchinese.net/gfwlist -server=/.penghu-nsa.gov.tw/127.0.0.1#5353 -ipset=/.penghu-nsa.gov.tw/gfwlist -server=/.pengyulong.com/127.0.0.1#5353 -ipset=/.pengyulong.com/gfwlist -server=/.penisbot.com/127.0.0.1#5353 -ipset=/.penisbot.com/gfwlist -server=/.penthouse.com/127.0.0.1#5353 -ipset=/.penthouse.com/gfwlist -server=/.peoplebookcafe.com/127.0.0.1#5353 -ipset=/.peoplebookcafe.com/gfwlist -server=/.peoplenews.tw/127.0.0.1#5353 -ipset=/.peoplenews.tw/gfwlist -server=/.peopo.org/127.0.0.1#5353 -ipset=/.peopo.org/gfwlist -server=/.percy.in/127.0.0.1#5353 -ipset=/.percy.in/gfwlist -server=/.perfectgirls.net/127.0.0.1#5353 -ipset=/.perfectgirls.net/gfwlist -server=/.perfectvpn.net/127.0.0.1#5353 -ipset=/.perfectvpn.net/gfwlist -server=/.periscope.tv/127.0.0.1#5353 -ipset=/.periscope.tv/gfwlist -server=/.persecutionblog.com/127.0.0.1#5353 -ipset=/.persecutionblog.com/gfwlist -server=/.persiankitty.com/127.0.0.1#5353 -ipset=/.persiankitty.com/gfwlist -server=/.pfd.org.hk/127.0.0.1#5353 -ipset=/.pfd.org.hk/gfwlist -server=/.phapluan.org/127.0.0.1#5353 -ipset=/.phapluan.org/gfwlist -server=/.phayul.com/127.0.0.1#5353 -ipset=/.phayul.com/gfwlist -server=/.philborges.com/127.0.0.1#5353 -ipset=/.philborges.com/gfwlist -server=/.philly.com/127.0.0.1#5353 -ipset=/.philly.com/gfwlist -server=/.phmsociety.org/127.0.0.1#5353 -ipset=/.phmsociety.org/gfwlist -server=/.phncdn.com/127.0.0.1#5353 -ipset=/.phncdn.com/gfwlist -server=/.phosphation13.rssing.com/127.0.0.1#5353 -ipset=/.phosphation13.rssing.com/gfwlist -server=/.photodharma.net/127.0.0.1#5353 -ipset=/.photodharma.net/gfwlist -server=/.photofocus.com/127.0.0.1#5353 -ipset=/.photofocus.com/gfwlist -server=/.phuquocservices.com/127.0.0.1#5353 -ipset=/.phuquocservices.com/gfwlist -server=/.picacomic.com/127.0.0.1#5353 -ipset=/.picacomic.com/gfwlist -server=/.picacomiccn.com/127.0.0.1#5353 -ipset=/.picacomiccn.com/gfwlist -server=/.picasaweb.com/127.0.0.1#5353 -ipset=/.picasaweb.com/gfwlist -server=/.picidae.net/127.0.0.1#5353 -ipset=/.picidae.net/gfwlist -server=/.pictures.playboy.com/127.0.0.1#5353 -ipset=/.pictures.playboy.com/gfwlist -server=/.picturesocial.com/127.0.0.1#5353 -ipset=/.picturesocial.com/gfwlist -server=/.pin-cong.com/127.0.0.1#5353 -ipset=/.pin-cong.com/gfwlist -server=/.pin6.com/127.0.0.1#5353 -ipset=/.pin6.com/gfwlist -server=/.ping.fm/127.0.0.1#5353 -ipset=/.ping.fm/gfwlist -server=/.pinimg.com/127.0.0.1#5353 -ipset=/.pinimg.com/gfwlist -server=/.pinkrod.com/127.0.0.1#5353 -ipset=/.pinkrod.com/gfwlist -server=/.pinoy-n.com/127.0.0.1#5353 -ipset=/.pinoy-n.com/gfwlist -server=/.pinterest.at/127.0.0.1#5353 -ipset=/.pinterest.at/gfwlist -server=/.pinterest.co.kr/127.0.0.1#5353 -ipset=/.pinterest.co.kr/gfwlist -server=/.pinterest.co.uk/127.0.0.1#5353 -ipset=/.pinterest.co.uk/gfwlist -server=/.pinterest.com/127.0.0.1#5353 -ipset=/.pinterest.com/gfwlist -server=/.pinterest.de/127.0.0.1#5353 -ipset=/.pinterest.de/gfwlist -server=/.pinterest.dk/127.0.0.1#5353 -ipset=/.pinterest.dk/gfwlist -server=/.pinterest.fr/127.0.0.1#5353 -ipset=/.pinterest.fr/gfwlist -server=/.pinterest.jp/127.0.0.1#5353 -ipset=/.pinterest.jp/gfwlist -server=/.pinterest.nl/127.0.0.1#5353 -ipset=/.pinterest.nl/gfwlist -server=/.pinterest.se/127.0.0.1#5353 -ipset=/.pinterest.se/gfwlist -server=/.pioneer-worker.forums-free.com/127.0.0.1#5353 -ipset=/.pioneer-worker.forums-free.com/gfwlist -server=/.pipii.tv/127.0.0.1#5353 -ipset=/.pipii.tv/gfwlist -server=/.piposay.com/127.0.0.1#5353 -ipset=/.piposay.com/gfwlist -server=/.piraattilahti.org/127.0.0.1#5353 -ipset=/.piraattilahti.org/gfwlist -server=/.piring.com/127.0.0.1#5353 -ipset=/.piring.com/gfwlist -server=/.pixelqi.com/127.0.0.1#5353 -ipset=/.pixelqi.com/gfwlist -server=/.pixiv.net/127.0.0.1#5353 -ipset=/.pixiv.net/gfwlist -server=/.pixnet.net/127.0.0.1#5353 -ipset=/.pixnet.net/gfwlist -server=/.pk.com/127.0.0.1#5353 -ipset=/.pk.com/gfwlist -server=/.placemix.com/127.0.0.1#5353 -ipset=/.placemix.com/gfwlist -server=/.playboy.com/127.0.0.1#5353 -ipset=/.playboy.com/gfwlist -server=/.playboyplus.com/127.0.0.1#5353 -ipset=/.playboyplus.com/gfwlist -server=/.player.fm/127.0.0.1#5353 -ipset=/.player.fm/gfwlist -server=/.playno1.com/127.0.0.1#5353 -ipset=/.playno1.com/gfwlist -server=/.playpcesor.com/127.0.0.1#5353 -ipset=/.playpcesor.com/gfwlist -server=/.plays.com.tw/127.0.0.1#5353 -ipset=/.plays.com.tw/gfwlist -server=/.plm.org.hk/127.0.0.1#5353 -ipset=/.plm.org.hk/gfwlist -server=/.plunder.com/127.0.0.1#5353 -ipset=/.plunder.com/gfwlist -server=/.plurk.com/127.0.0.1#5353 -ipset=/.plurk.com/gfwlist -server=/.plus28.com/127.0.0.1#5353 -ipset=/.plus28.com/gfwlist -server=/.plusbb.com/127.0.0.1#5353 -ipset=/.plusbb.com/gfwlist -server=/.pmatehunter.com/127.0.0.1#5353 -ipset=/.pmatehunter.com/gfwlist -server=/.pmates.com/127.0.0.1#5353 -ipset=/.pmates.com/gfwlist -server=/.po2b.com/127.0.0.1#5353 -ipset=/.po2b.com/gfwlist -server=/.pobieramy.top/127.0.0.1#5353 -ipset=/.pobieramy.top/gfwlist -server=/.podictionary.com/127.0.0.1#5353 -ipset=/.podictionary.com/gfwlist -server=/.pokerstars.com/127.0.0.1#5353 -ipset=/.pokerstars.com/gfwlist -server=/.pokerstars.net/127.0.0.1#5353 -ipset=/.pokerstars.net/gfwlist -server=/.politicalchina.org/127.0.0.1#5353 -ipset=/.politicalchina.org/gfwlist -server=/.politicalconsultation.org/127.0.0.1#5353 -ipset=/.politicalconsultation.org/gfwlist -server=/.politiscales.net/127.0.0.1#5353 -ipset=/.politiscales.net/gfwlist -server=/.poloniex.com/127.0.0.1#5353 -ipset=/.poloniex.com/gfwlist -server=/.polymer-project.org/127.0.0.1#5353 -ipset=/.polymer-project.org/gfwlist -server=/.polymerhk.com/127.0.0.1#5353 -ipset=/.polymerhk.com/gfwlist -server=/.popo.tw/127.0.0.1#5353 -ipset=/.popo.tw/gfwlist -server=/.popvote.hk/127.0.0.1#5353 -ipset=/.popvote.hk/gfwlist -server=/.popyard.com/127.0.0.1#5353 -ipset=/.popyard.com/gfwlist -server=/.popyard.org/127.0.0.1#5353 -ipset=/.popyard.org/gfwlist -server=/.porn.com/127.0.0.1#5353 -ipset=/.porn.com/gfwlist -server=/.porn2.com/127.0.0.1#5353 -ipset=/.porn2.com/gfwlist -server=/.porn5.com/127.0.0.1#5353 -ipset=/.porn5.com/gfwlist -server=/.pornbase.org/127.0.0.1#5353 -ipset=/.pornbase.org/gfwlist -server=/.pornerbros.com/127.0.0.1#5353 -ipset=/.pornerbros.com/gfwlist -server=/.pornhd.com/127.0.0.1#5353 -ipset=/.pornhd.com/gfwlist -server=/.pornhost.com/127.0.0.1#5353 -ipset=/.pornhost.com/gfwlist -server=/.pornhub.com/127.0.0.1#5353 -ipset=/.pornhub.com/gfwlist -server=/.pornhubdeutsch.net/127.0.0.1#5353 -ipset=/.pornhubdeutsch.net/gfwlist -server=/.pornmm.net/127.0.0.1#5353 -ipset=/.pornmm.net/gfwlist -server=/.pornoxo.com/127.0.0.1#5353 -ipset=/.pornoxo.com/gfwlist -server=/.pornrapidshare.com/127.0.0.1#5353 -ipset=/.pornrapidshare.com/gfwlist -server=/.pornsharing.com/127.0.0.1#5353 -ipset=/.pornsharing.com/gfwlist -server=/.pornsocket.com/127.0.0.1#5353 -ipset=/.pornsocket.com/gfwlist -server=/.pornstarclub.com/127.0.0.1#5353 -ipset=/.pornstarclub.com/gfwlist -server=/.porntube.com/127.0.0.1#5353 -ipset=/.porntube.com/gfwlist -server=/.porntubenews.com/127.0.0.1#5353 -ipset=/.porntubenews.com/gfwlist -server=/.porntvblog.com/127.0.0.1#5353 -ipset=/.porntvblog.com/gfwlist -server=/.pornvisit.com/127.0.0.1#5353 -ipset=/.pornvisit.com/gfwlist -server=/.port25.biz/127.0.0.1#5353 -ipset=/.port25.biz/gfwlist -server=/.portablevpn.nl/127.0.0.1#5353 -ipset=/.portablevpn.nl/gfwlist -server=/.poskotanews.com/127.0.0.1#5353 -ipset=/.poskotanews.com/gfwlist -server=/.post.gov.tw/127.0.0.1#5353 -ipset=/.post.gov.tw/gfwlist -server=/.post01.com/127.0.0.1#5353 -ipset=/.post01.com/gfwlist -server=/.post76.com/127.0.0.1#5353 -ipset=/.post76.com/gfwlist -server=/.post852.com/127.0.0.1#5353 -ipset=/.post852.com/gfwlist -server=/.postadult.com/127.0.0.1#5353 -ipset=/.postadult.com/gfwlist -server=/.postimg.org/127.0.0.1#5353 -ipset=/.postimg.org/gfwlist -server=/.potvpn.com/127.0.0.1#5353 -ipset=/.potvpn.com/gfwlist -server=/.power.com/127.0.0.1#5353 -ipset=/.power.com/gfwlist -server=/.powercx.com/127.0.0.1#5353 -ipset=/.powercx.com/gfwlist -server=/.powerphoto.org/127.0.0.1#5353 -ipset=/.powerphoto.org/gfwlist -server=/.prayforchina.net/127.0.0.1#5353 -ipset=/.prayforchina.net/gfwlist -server=/.premeforwindows7.com/127.0.0.1#5353 -ipset=/.premeforwindows7.com/gfwlist -server=/.presentationzen.com/127.0.0.1#5353 -ipset=/.presentationzen.com/gfwlist -server=/.presidentlee.tw/127.0.0.1#5353 -ipset=/.presidentlee.tw/gfwlist -server=/.prestige-av.com/127.0.0.1#5353 -ipset=/.prestige-av.com/gfwlist -server=/.prisoneralert.com/127.0.0.1#5353 -ipset=/.prisoneralert.com/gfwlist -server=/.pritunl.com/127.0.0.1#5353 -ipset=/.pritunl.com/gfwlist -server=/.privacybox.de/127.0.0.1#5353 -ipset=/.privacybox.de/gfwlist -server=/.privateinternetaccess.com/127.0.0.1#5353 -ipset=/.privateinternetaccess.com/gfwlist -server=/.privatepaste.com/127.0.0.1#5353 -ipset=/.privatepaste.com/gfwlist -server=/.privatetunnel.com/127.0.0.1#5353 -ipset=/.privatetunnel.com/gfwlist -server=/.privatevpn.com/127.0.0.1#5353 -ipset=/.privatevpn.com/gfwlist -server=/.procopytips.com/127.0.0.1#5353 -ipset=/.procopytips.com/gfwlist -server=/.prosiben.de/127.0.0.1#5353 -ipset=/.prosiben.de/gfwlist -server=/.protonvpn.com/127.0.0.1#5353 -ipset=/.protonvpn.com/gfwlist -server=/.provideocoalition.com/127.0.0.1#5353 -ipset=/.provideocoalition.com/gfwlist -server=/.provpnaccounts.com/127.0.0.1#5353 -ipset=/.provpnaccounts.com/gfwlist -server=/.proxfree.com/127.0.0.1#5353 -ipset=/.proxfree.com/gfwlist -server=/.proxifier.com/127.0.0.1#5353 -ipset=/.proxifier.com/gfwlist -server=/.proxomitron.info/127.0.0.1#5353 -ipset=/.proxomitron.info/gfwlist -server=/.proxpn.com/127.0.0.1#5353 -ipset=/.proxpn.com/gfwlist -server=/.proxyanonimo.es/127.0.0.1#5353 -ipset=/.proxyanonimo.es/gfwlist -server=/.proxydns.com/127.0.0.1#5353 -ipset=/.proxydns.com/gfwlist -server=/.proxylist.org.uk/127.0.0.1#5353 -ipset=/.proxylist.org.uk/gfwlist -server=/.proxynetwork.org.uk/127.0.0.1#5353 -ipset=/.proxynetwork.org.uk/gfwlist -server=/.proxypy.net/127.0.0.1#5353 -ipset=/.proxypy.net/gfwlist -server=/.proxyroad.com/127.0.0.1#5353 -ipset=/.proxyroad.com/gfwlist -server=/.proxytunnel.net/127.0.0.1#5353 -ipset=/.proxytunnel.net/gfwlist -server=/.proyectoclubes.com/127.0.0.1#5353 -ipset=/.proyectoclubes.com/gfwlist -server=/.prozz.net/127.0.0.1#5353 -ipset=/.prozz.net/gfwlist -server=/.psblog.name/127.0.0.1#5353 -ipset=/.psblog.name/gfwlist -server=/.pscp.tv/127.0.0.1#5353 -ipset=/.pscp.tv/gfwlist -server=/.psiphon.ca/127.0.0.1#5353 -ipset=/.psiphon.ca/gfwlist -server=/.psiphon.civisec.org/127.0.0.1#5353 -ipset=/.psiphon.civisec.org/gfwlist -server=/.psiphon3.com/127.0.0.1#5353 -ipset=/.psiphon3.com/gfwlist -server=/.psiphontoday.com/127.0.0.1#5353 -ipset=/.psiphontoday.com/gfwlist -server=/.pts.org.tw/127.0.0.1#5353 -ipset=/.pts.org.tw/gfwlist -server=/.ptt.cc/127.0.0.1#5353 -ipset=/.ptt.cc/gfwlist -server=/.pttvan.org/127.0.0.1#5353 -ipset=/.pttvan.org/gfwlist -server=/.pubu.com.tw/127.0.0.1#5353 -ipset=/.pubu.com.tw/gfwlist -server=/.puffinbrowser.com/127.0.0.1#5353 -ipset=/.puffinbrowser.com/gfwlist -server=/.puffstore.com/127.0.0.1#5353 -ipset=/.puffstore.com/gfwlist -server=/.pullfolio.com/127.0.0.1#5353 -ipset=/.pullfolio.com/gfwlist -server=/.pulse.yahoo.com/127.0.0.1#5353 -ipset=/.pulse.yahoo.com/gfwlist -server=/.pure18.com/127.0.0.1#5353 -ipset=/.pure18.com/gfwlist -server=/.pureconcepts.net/127.0.0.1#5353 -ipset=/.pureconcepts.net/gfwlist -server=/.pureinsight.org/127.0.0.1#5353 -ipset=/.pureinsight.org/gfwlist -server=/.purepdf.com/127.0.0.1#5353 -ipset=/.purepdf.com/gfwlist -server=/.purevpn.com/127.0.0.1#5353 -ipset=/.purevpn.com/gfwlist -server=/.purplelotus.org/127.0.0.1#5353 -ipset=/.purplelotus.org/gfwlist -server=/.pursuestar.com/127.0.0.1#5353 -ipset=/.pursuestar.com/gfwlist -server=/.pushchinawall.com/127.0.0.1#5353 -ipset=/.pushchinawall.com/gfwlist -server=/.pussyspace.com/127.0.0.1#5353 -ipset=/.pussyspace.com/gfwlist -server=/.putihome.org/127.0.0.1#5353 -ipset=/.putihome.org/gfwlist -server=/.putty.org/127.0.0.1#5353 -ipset=/.putty.org/gfwlist -server=/.puuko.com/127.0.0.1#5353 -ipset=/.puuko.com/gfwlist -server=/.pwned.com/127.0.0.1#5353 -ipset=/.pwned.com/gfwlist -server=/.python.com/127.0.0.1#5353 -ipset=/.python.com/gfwlist -server=/.pytorch.org/127.0.0.1#5353 -ipset=/.pytorch.org/gfwlist -server=/.qanote.com/127.0.0.1#5353 -ipset=/.qanote.com/gfwlist -server=/.qgirl.com.tw/127.0.0.1#5353 -ipset=/.qgirl.com.tw/gfwlist -server=/.qhigh.com/127.0.0.1#5353 -ipset=/.qhigh.com/gfwlist -server=/.qi-gong.me/127.0.0.1#5353 -ipset=/.qi-gong.me/gfwlist -server=/.qiandao.today/127.0.0.1#5353 -ipset=/.qiandao.today/gfwlist -server=/.qiangyou.org/127.0.0.1#5353 -ipset=/.qiangyou.org/gfwlist -server=/.qidian.ca/127.0.0.1#5353 -ipset=/.qidian.ca/gfwlist -server=/.qienkuen.org/127.0.0.1#5353 -ipset=/.qienkuen.org/gfwlist -server=/.qiwen.lu/127.0.0.1#5353 -ipset=/.qiwen.lu/gfwlist -server=/.qixianglu.cn/127.0.0.1#5353 -ipset=/.qixianglu.cn/gfwlist -server=/.qkshare.com/127.0.0.1#5353 -ipset=/.qkshare.com/gfwlist -server=/.qoos.com/127.0.0.1#5353 -ipset=/.qoos.com/gfwlist -server=/.qpoe.com/127.0.0.1#5353 -ipset=/.qpoe.com/gfwlist -server=/.qq.co.za/127.0.0.1#5353 -ipset=/.qq.co.za/gfwlist -server=/.qstatus.com/127.0.0.1#5353 -ipset=/.qstatus.com/gfwlist -server=/.qtrac.eu/127.0.0.1#5353 -ipset=/.qtrac.eu/gfwlist -server=/.qtweeter.com/127.0.0.1#5353 -ipset=/.qtweeter.com/gfwlist -server=/.quannengshen.org/127.0.0.1#5353 -ipset=/.quannengshen.org/gfwlist -server=/.quantumbooter.net/127.0.0.1#5353 -ipset=/.quantumbooter.net/gfwlist -server=/.questvisual.com/127.0.0.1#5353 -ipset=/.questvisual.com/gfwlist -server=/.quitccp.net/127.0.0.1#5353 -ipset=/.quitccp.net/gfwlist -server=/.quitccp.org/127.0.0.1#5353 -ipset=/.quitccp.org/gfwlist -server=/.quora.com/127.0.0.1#5353 -ipset=/.quora.com/gfwlist -server=/.quran.com/127.0.0.1#5353 -ipset=/.quran.com/gfwlist -server=/.quranexplorer.com/127.0.0.1#5353 -ipset=/.quranexplorer.com/gfwlist -server=/.qusi8.net/127.0.0.1#5353 -ipset=/.qusi8.net/gfwlist -server=/.qvodzy.org/127.0.0.1#5353 -ipset=/.qvodzy.org/gfwlist -server=/.qxbbs.org/127.0.0.1#5353 -ipset=/.qxbbs.org/gfwlist -server=/.r18.com/127.0.0.1#5353 -ipset=/.r18.com/gfwlist -server=/.ra.gg/127.0.0.1#5353 -ipset=/.ra.gg/gfwlist -server=/.radicalparty.org/127.0.0.1#5353 -ipset=/.radicalparty.org/gfwlist -server=/.radiko.jp/127.0.0.1#5353 -ipset=/.radiko.jp/gfwlist -server=/.radioaustralia.net.au/127.0.0.1#5353 -ipset=/.radioaustralia.net.au/gfwlist -server=/.radiohilight.net/127.0.0.1#5353 -ipset=/.radiohilight.net/gfwlist -server=/.radiovaticana.org/127.0.0.1#5353 -ipset=/.radiovaticana.org/gfwlist -server=/.radiovncr.com/127.0.0.1#5353 -ipset=/.radiovncr.com/gfwlist -server=/.rael.org/127.0.0.1#5353 -ipset=/.rael.org/gfwlist -server=/.raggedbanner.com/127.0.0.1#5353 -ipset=/.raggedbanner.com/gfwlist -server=/.raidcall.com.tw/127.0.0.1#5353 -ipset=/.raidcall.com.tw/gfwlist -server=/.raidtalk.com.tw/127.0.0.1#5353 -ipset=/.raidtalk.com.tw/gfwlist -server=/.raizoji.or.jp/127.0.0.1#5353 -ipset=/.raizoji.or.jp/gfwlist -server=/.ramcity.com.au/127.0.0.1#5353 -ipset=/.ramcity.com.au/gfwlist -server=/.rangwang.biz/127.0.0.1#5353 -ipset=/.rangwang.biz/gfwlist -server=/.rangzen.com/127.0.0.1#5353 -ipset=/.rangzen.com/gfwlist -server=/.rangzen.net/127.0.0.1#5353 -ipset=/.rangzen.net/gfwlist -server=/.rangzen.org/127.0.0.1#5353 -ipset=/.rangzen.org/gfwlist -server=/.ranyunfei.com/127.0.0.1#5353 -ipset=/.ranyunfei.com/gfwlist -server=/.rapbull.net/127.0.0.1#5353 -ipset=/.rapbull.net/gfwlist -server=/.rapidmoviez.com/127.0.0.1#5353 -ipset=/.rapidmoviez.com/gfwlist -server=/.rapidvpn.com/127.0.0.1#5353 -ipset=/.rapidvpn.com/gfwlist -server=/.raremovie.cc/127.0.0.1#5353 -ipset=/.raremovie.cc/gfwlist -server=/.raremovie.net/127.0.0.1#5353 -ipset=/.raremovie.net/gfwlist -server=/.rawgit.com/127.0.0.1#5353 -ipset=/.rawgit.com/gfwlist -server=/.rawgithub.com/127.0.0.1#5353 -ipset=/.rawgithub.com/gfwlist -server=/.razyboard.com/127.0.0.1#5353 -ipset=/.razyboard.com/gfwlist -server=/.rcam.target.com/127.0.0.1#5353 -ipset=/.rcam.target.com/gfwlist -server=/.rcinet.ca/127.0.0.1#5353 -ipset=/.rcinet.ca/gfwlist -server=/.rconversation.blogs.com/127.0.0.1#5353 -ipset=/.rconversation.blogs.com/gfwlist -server=/.rd.com/127.0.0.1#5353 -ipset=/.rd.com/gfwlist -server=/.rdio.com/127.0.0.1#5353 -ipset=/.rdio.com/gfwlist -server=/.read01.com/127.0.0.1#5353 -ipset=/.read01.com/gfwlist -server=/.read100.com/127.0.0.1#5353 -ipset=/.read100.com/gfwlist -server=/.readingtimes.com.tw/127.0.0.1#5353 -ipset=/.readingtimes.com.tw/gfwlist -server=/.readmoo.com/127.0.0.1#5353 -ipset=/.readmoo.com/gfwlist -server=/.readydown.com/127.0.0.1#5353 -ipset=/.readydown.com/gfwlist -server=/.realcourage.org/127.0.0.1#5353 -ipset=/.realcourage.org/gfwlist -server=/.realforum.zkiz.com/127.0.0.1#5353 -ipset=/.realforum.zkiz.com/gfwlist -server=/.realitykings.com/127.0.0.1#5353 -ipset=/.realitykings.com/gfwlist -server=/.realraptalk.com/127.0.0.1#5353 -ipset=/.realraptalk.com/gfwlist -server=/.realsexpass.com/127.0.0.1#5353 -ipset=/.realsexpass.com/gfwlist -server=/.rebatesrule.net/127.0.0.1#5353 -ipset=/.rebatesrule.net/gfwlist -server=/.recordhistory.org/127.0.0.1#5353 -ipset=/.recordhistory.org/gfwlist -server=/.recovery.org.tw/127.0.0.1#5353 -ipset=/.recovery.org.tw/gfwlist -server=/.recoveryversion.com.tw/127.0.0.1#5353 -ipset=/.recoveryversion.com.tw/gfwlist -server=/.red-lang.org/127.0.0.1#5353 -ipset=/.red-lang.org/gfwlist -server=/.redballoonsolidarity.org/127.0.0.1#5353 -ipset=/.redballoonsolidarity.org/gfwlist -server=/.redchinacn.net/127.0.0.1#5353 -ipset=/.redchinacn.net/gfwlist -server=/.redchinacn.org/127.0.0.1#5353 -ipset=/.redchinacn.org/gfwlist -server=/.redd.it/127.0.0.1#5353 -ipset=/.redd.it/gfwlist -server=/.reddit.com/127.0.0.1#5353 -ipset=/.reddit.com/gfwlist -server=/.redditmedia.com/127.0.0.1#5353 -ipset=/.redditmedia.com/gfwlist -server=/.redditstatic.com/127.0.0.1#5353 -ipset=/.redditstatic.com/gfwlist -server=/.redhotlabs.com/127.0.0.1#5353 -ipset=/.redhotlabs.com/gfwlist -server=/.redirector.gvt1.com/127.0.0.1#5353 -ipset=/.redirector.gvt1.com/gfwlist -server=/.redtube.com/127.0.0.1#5353 -ipset=/.redtube.com/gfwlist -server=/.referer.us/127.0.0.1#5353 -ipset=/.referer.us/gfwlist -server=/.reflectivecode.com/127.0.0.1#5353 -ipset=/.reflectivecode.com/gfwlist -server=/.registry.google/127.0.0.1#5353 -ipset=/.registry.google/gfwlist -server=/.relaxbbs.com/127.0.0.1#5353 -ipset=/.relaxbbs.com/gfwlist -server=/.relay.com.tw/127.0.0.1#5353 -ipset=/.relay.com.tw/gfwlist -server=/.releaseinternational.org/127.0.0.1#5353 -ipset=/.releaseinternational.org/gfwlist -server=/.religioustolerance.org/127.0.0.1#5353 -ipset=/.religioustolerance.org/gfwlist -server=/.renminbao.com/127.0.0.1#5353 -ipset=/.renminbao.com/gfwlist -server=/.renyurenquan.org/127.0.0.1#5353 -ipset=/.renyurenquan.org/gfwlist -server=/.resilio.com/127.0.0.1#5353 -ipset=/.resilio.com/gfwlist -server=/.retweeteffect.com/127.0.0.1#5353 -ipset=/.retweeteffect.com/gfwlist -server=/.retweetist.com/127.0.0.1#5353 -ipset=/.retweetist.com/gfwlist -server=/.retweetrank.com/127.0.0.1#5353 -ipset=/.retweetrank.com/gfwlist -server=/.reuters.com/127.0.0.1#5353 -ipset=/.reuters.com/gfwlist -server=/.reutersmedia.net/127.0.0.1#5353 -ipset=/.reutersmedia.net/gfwlist -server=/.revleft.com/127.0.0.1#5353 -ipset=/.revleft.com/gfwlist -server=/.revver.com/127.0.0.1#5353 -ipset=/.revver.com/gfwlist -server=/.rfa.org/127.0.0.1#5353 -ipset=/.rfa.org/gfwlist -server=/.rfachina.com/127.0.0.1#5353 -ipset=/.rfachina.com/gfwlist -server=/.rfalive1.akacast.akamaistream.net/127.0.0.1#5353 -ipset=/.rfalive1.akacast.akamaistream.net/gfwlist -server=/.rfamobile.org/127.0.0.1#5353 -ipset=/.rfamobile.org/gfwlist -server=/.rfaweb.org/127.0.0.1#5353 -ipset=/.rfaweb.org/gfwlist -server=/.rferl.org/127.0.0.1#5353 -ipset=/.rferl.org/gfwlist -server=/.rfi.fr/127.0.0.1#5353 -ipset=/.rfi.fr/gfwlist -server=/.rightbtc.com/127.0.0.1#5353 -ipset=/.rightbtc.com/gfwlist -server=/.rigpa.org/127.0.0.1#5353 -ipset=/.rigpa.org/gfwlist -server=/.rileyguide.com/127.0.0.1#5353 -ipset=/.rileyguide.com/gfwlist -server=/.riseup.net/127.0.0.1#5353 -ipset=/.riseup.net/gfwlist -server=/.ritouki.jp/127.0.0.1#5353 -ipset=/.ritouki.jp/gfwlist -server=/.ritter.vg/127.0.0.1#5353 -ipset=/.ritter.vg/gfwlist -server=/.rlwlw.com/127.0.0.1#5353 -ipset=/.rlwlw.com/gfwlist -server=/.rmjdw.com/127.0.0.1#5353 -ipset=/.rmjdw.com/gfwlist -server=/.rmjdw132.info/127.0.0.1#5353 -ipset=/.rmjdw132.info/gfwlist -server=/.roadshow.hk/127.0.0.1#5353 -ipset=/.roadshow.hk/gfwlist -server=/.roboforex.com/127.0.0.1#5353 -ipset=/.roboforex.com/gfwlist -server=/.robustnessiskey.com/127.0.0.1#5353 -ipset=/.robustnessiskey.com/gfwlist -server=/.rocket-inc.net/127.0.0.1#5353 -ipset=/.rocket-inc.net/gfwlist -server=/.rocksdb.org/127.0.0.1#5353 -ipset=/.rocksdb.org/gfwlist -server=/.rojo.com/127.0.0.1#5353 -ipset=/.rojo.com/gfwlist -server=/.rolia.net/127.0.0.1#5353 -ipset=/.rolia.net/gfwlist -server=/.ronjoneswriter.com/127.0.0.1#5353 -ipset=/.ronjoneswriter.com/gfwlist -server=/.roodo.com/127.0.0.1#5353 -ipset=/.roodo.com/gfwlist -server=/.rosechina.net/127.0.0.1#5353 -ipset=/.rosechina.net/gfwlist -server=/.rotten.com/127.0.0.1#5353 -ipset=/.rotten.com/gfwlist -server=/.rsdlmonitor.com/127.0.0.1#5353 -ipset=/.rsdlmonitor.com/gfwlist -server=/.rsf-chinese.org/127.0.0.1#5353 -ipset=/.rsf-chinese.org/gfwlist -server=/.rsf.org/127.0.0.1#5353 -ipset=/.rsf.org/gfwlist -server=/.rsgamen.org/127.0.0.1#5353 -ipset=/.rsgamen.org/gfwlist -server=/.rssmeme.com/127.0.0.1#5353 -ipset=/.rssmeme.com/gfwlist -server=/.rtalabel.org/127.0.0.1#5353 -ipset=/.rtalabel.org/gfwlist -server=/.rthk.hk/127.0.0.1#5353 -ipset=/.rthk.hk/gfwlist -server=/.rthk.org.hk/127.0.0.1#5353 -ipset=/.rthk.org.hk/gfwlist -server=/.rthklive2-lh.akamaihd.net/127.0.0.1#5353 -ipset=/.rthklive2-lh.akamaihd.net/gfwlist -server=/.rti.org.tw/127.0.0.1#5353 -ipset=/.rti.org.tw/gfwlist -server=/.rtycminnesota.org/127.0.0.1#5353 -ipset=/.rtycminnesota.org/gfwlist -server=/.rukor.org/127.0.0.1#5353 -ipset=/.rukor.org/gfwlist -server=/.rushbee.com/127.0.0.1#5353 -ipset=/.rushbee.com/gfwlist -server=/.ruten.com.tw/127.0.0.1#5353 -ipset=/.ruten.com.tw/gfwlist -server=/.rutube.ru/127.0.0.1#5353 -ipset=/.rutube.ru/gfwlist -server=/.ruyiseek.com/127.0.0.1#5353 -ipset=/.ruyiseek.com/gfwlist -server=/.rxhj.net/127.0.0.1#5353 -ipset=/.rxhj.net/gfwlist -server=/.s-cute.com/127.0.0.1#5353 -ipset=/.s-cute.com/gfwlist -server=/.s-dragon.org/127.0.0.1#5353 -ipset=/.s-dragon.org/gfwlist -server=/.s1.nudezz.com/127.0.0.1#5353 -ipset=/.s1.nudezz.com/gfwlist -server=/.s1heng.com/127.0.0.1#5353 -ipset=/.s1heng.com/gfwlist -server=/.s1s1s1.com/127.0.0.1#5353 -ipset=/.s1s1s1.com/gfwlist -server=/.s3-ap-northeast-1.amazonaws.com/127.0.0.1#5353 -ipset=/.s3-ap-northeast-1.amazonaws.com/gfwlist -server=/.s3-ap-southeast-2.amazonaws.com/127.0.0.1#5353 -ipset=/.s3-ap-southeast-2.amazonaws.com/gfwlist -server=/.s8forum.com/127.0.0.1#5353 -ipset=/.s8forum.com/gfwlist -server=/.sa.hao123.com/127.0.0.1#5353 -ipset=/.sa.hao123.com/gfwlist -server=/.sacks.com/127.0.0.1#5353 -ipset=/.sacks.com/gfwlist -server=/.sacom.hk/127.0.0.1#5353 -ipset=/.sacom.hk/gfwlist -server=/.sadistic-v.com/127.0.0.1#5353 -ipset=/.sadistic-v.com/gfwlist -server=/.sadpanda.us/127.0.0.1#5353 -ipset=/.sadpanda.us/gfwlist -server=/.safebrowsing.googleapis.com/127.0.0.1#5353 -ipset=/.safebrowsing.googleapis.com/gfwlist -server=/.safervpn.com/127.0.0.1#5353 -ipset=/.safervpn.com/gfwlist -server=/.saintyculture.com/127.0.0.1#5353 -ipset=/.saintyculture.com/gfwlist -server=/.saiq.me/127.0.0.1#5353 -ipset=/.saiq.me/gfwlist -server=/.sakuralive.com/127.0.0.1#5353 -ipset=/.sakuralive.com/gfwlist -server=/.sakya.org/127.0.0.1#5353 -ipset=/.sakya.org/gfwlist -server=/.salvation.org.hk/127.0.0.1#5353 -ipset=/.salvation.org.hk/gfwlist -server=/.sambhota.org/127.0.0.1#5353 -ipset=/.sambhota.org/gfwlist -server=/.sanmin.com.tw/127.0.0.1#5353 -ipset=/.sanmin.com.tw/gfwlist -server=/.sapikachu.net/127.0.0.1#5353 -ipset=/.sapikachu.net/gfwlist -server=/.saveliuxiaobo.com/127.0.0.1#5353 -ipset=/.saveliuxiaobo.com/gfwlist -server=/.savemedia.com/127.0.0.1#5353 -ipset=/.savemedia.com/gfwlist -server=/.savethedate.foo/127.0.0.1#5353 -ipset=/.savethedate.foo/gfwlist -server=/.savetibet.de/127.0.0.1#5353 -ipset=/.savetibet.de/gfwlist -server=/.savetibet.fr/127.0.0.1#5353 -ipset=/.savetibet.fr/gfwlist -server=/.savetibet.nl/127.0.0.1#5353 -ipset=/.savetibet.nl/gfwlist -server=/.savetibet.org/127.0.0.1#5353 -ipset=/.savetibet.org/gfwlist -server=/.savetibet.ru/127.0.0.1#5353 -ipset=/.savetibet.ru/gfwlist -server=/.savetibetstore.org/127.0.0.1#5353 -ipset=/.savetibetstore.org/gfwlist -server=/.savevid.com/127.0.0.1#5353 -ipset=/.savevid.com/gfwlist -server=/.say2.info/127.0.0.1#5353 -ipset=/.say2.info/gfwlist -server=/.sbme.me/127.0.0.1#5353 -ipset=/.sbme.me/gfwlist -server=/.scache.vzw.com/127.0.0.1#5353 -ipset=/.scache.vzw.com/gfwlist -server=/.scache1.vzw.com/127.0.0.1#5353 -ipset=/.scache1.vzw.com/gfwlist -server=/.scache2.vzw.com/127.0.0.1#5353 -ipset=/.scache2.vzw.com/gfwlist -server=/.scasino.com/127.0.0.1#5353 -ipset=/.scasino.com/gfwlist -server=/.schema.org/127.0.0.1#5353 -ipset=/.schema.org/gfwlist -server=/.sciencenets.com/127.0.0.1#5353 -ipset=/.sciencenets.com/gfwlist -server=/.scieron.com/127.0.0.1#5353 -ipset=/.scieron.com/gfwlist -server=/.scmp.com/127.0.0.1#5353 -ipset=/.scmp.com/gfwlist -server=/.scmpchinese.com/127.0.0.1#5353 -ipset=/.scmpchinese.com/gfwlist -server=/.scramble.io/127.0.0.1#5353 -ipset=/.scramble.io/gfwlist -server=/.scribd.com/127.0.0.1#5353 -ipset=/.scribd.com/gfwlist -server=/.scriptspot.com/127.0.0.1#5353 -ipset=/.scriptspot.com/gfwlist -server=/.seapuff.com/127.0.0.1#5353 -ipset=/.seapuff.com/gfwlist -server=/.search.aol.com/127.0.0.1#5353 -ipset=/.search.aol.com/gfwlist -server=/.search.disconnect.me/127.0.0.1#5353 -ipset=/.search.disconnect.me/gfwlist -server=/.search.yahoo.co.jp/127.0.0.1#5353 -ipset=/.search.yahoo.co.jp/gfwlist -server=/.searchtruth.com/127.0.0.1#5353 -ipset=/.searchtruth.com/gfwlist -server=/.secretchina.com/127.0.0.1#5353 -ipset=/.secretchina.com/gfwlist -server=/.secretgarden.no/127.0.0.1#5353 -ipset=/.secretgarden.no/gfwlist -server=/.secretsline.biz/127.0.0.1#5353 -ipset=/.secretsline.biz/gfwlist -server=/.secure.hustler.com/127.0.0.1#5353 -ipset=/.secure.hustler.com/gfwlist -server=/.secure.logmein.com/127.0.0.1#5353 -ipset=/.secure.logmein.com/gfwlist -server=/.secure.raxcdn.com/127.0.0.1#5353 -ipset=/.secure.raxcdn.com/gfwlist -server=/.securetunnel.com/127.0.0.1#5353 -ipset=/.securetunnel.com/gfwlist -server=/.securityinabox.org/127.0.0.1#5353 -ipset=/.securityinabox.org/gfwlist -server=/.securitykiss.com/127.0.0.1#5353 -ipset=/.securitykiss.com/gfwlist -server=/.seed4.me/127.0.0.1#5353 -ipset=/.seed4.me/gfwlist -server=/.seesmic.com/127.0.0.1#5353 -ipset=/.seesmic.com/gfwlist -server=/.seevpn.com/127.0.0.1#5353 -ipset=/.seevpn.com/gfwlist -server=/.seezone.net/127.0.0.1#5353 -ipset=/.seezone.net/gfwlist -server=/.sejie.com/127.0.0.1#5353 -ipset=/.sejie.com/gfwlist -server=/.sellclassics.com/127.0.0.1#5353 -ipset=/.sellclassics.com/gfwlist -server=/.sendsmtp.com/127.0.0.1#5353 -ipset=/.sendsmtp.com/gfwlist -server=/.sendspace.com/127.0.0.1#5353 -ipset=/.sendspace.com/gfwlist -server=/.servehttp.com/127.0.0.1#5353 -ipset=/.servehttp.com/gfwlist -server=/.serveuser.com/127.0.0.1#5353 -ipset=/.serveuser.com/gfwlist -server=/.serveusers.com/127.0.0.1#5353 -ipset=/.serveusers.com/gfwlist -server=/.sesawe.net/127.0.0.1#5353 -ipset=/.sesawe.net/gfwlist -server=/.sesawe.org/127.0.0.1#5353 -ipset=/.sesawe.org/gfwlist -server=/.sethwklein.net/127.0.0.1#5353 -ipset=/.sethwklein.net/gfwlist -server=/.setn.com/127.0.0.1#5353 -ipset=/.setn.com/gfwlist -server=/.settv.com.tw/127.0.0.1#5353 -ipset=/.settv.com.tw/gfwlist -server=/.sevenload.com/127.0.0.1#5353 -ipset=/.sevenload.com/gfwlist -server=/.sex-11.com/127.0.0.1#5353 -ipset=/.sex-11.com/gfwlist -server=/.sex.com/127.0.0.1#5353 -ipset=/.sex.com/gfwlist -server=/.sex3.com/127.0.0.1#5353 -ipset=/.sex3.com/gfwlist -server=/.sex8.cc/127.0.0.1#5353 -ipset=/.sex8.cc/gfwlist -server=/.sexandsubmission.com/127.0.0.1#5353 -ipset=/.sexandsubmission.com/gfwlist -server=/.sexbot.com/127.0.0.1#5353 -ipset=/.sexbot.com/gfwlist -server=/.sexhu.com/127.0.0.1#5353 -ipset=/.sexhu.com/gfwlist -server=/.sexhuang.com/127.0.0.1#5353 -ipset=/.sexhuang.com/gfwlist -server=/.sexidude.com/127.0.0.1#5353 -ipset=/.sexidude.com/gfwlist -server=/.sexinsex.net/127.0.0.1#5353 -ipset=/.sexinsex.net/gfwlist -server=/.sextvx.com/127.0.0.1#5353 -ipset=/.sextvx.com/gfwlist -server=/.sexxxy.biz/127.0.0.1#5353 -ipset=/.sexxxy.biz/gfwlist -server=/.sfileydy.com/127.0.0.1#5353 -ipset=/.sfileydy.com/gfwlist -server=/.sfshibao.com/127.0.0.1#5353 -ipset=/.sfshibao.com/gfwlist -server=/.sftindia.org/127.0.0.1#5353 -ipset=/.sftindia.org/gfwlist -server=/.sftuk.org/127.0.0.1#5353 -ipset=/.sftuk.org/gfwlist -server=/.shadeyouvpn.com/127.0.0.1#5353 -ipset=/.shadeyouvpn.com/gfwlist -server=/.shadow.ma/127.0.0.1#5353 -ipset=/.shadow.ma/gfwlist -server=/.shadowsky.xyz/127.0.0.1#5353 -ipset=/.shadowsky.xyz/gfwlist -server=/.shadowsocks-r.com/127.0.0.1#5353 -ipset=/.shadowsocks-r.com/gfwlist -server=/.shadowsocks.asia/127.0.0.1#5353 -ipset=/.shadowsocks.asia/gfwlist -server=/.shadowsocks.be/127.0.0.1#5353 -ipset=/.shadowsocks.be/gfwlist -server=/.shadowsocks.com/127.0.0.1#5353 -ipset=/.shadowsocks.com/gfwlist -server=/.shadowsocks.org/127.0.0.1#5353 -ipset=/.shadowsocks.org/gfwlist -server=/.shadowsocks9.com/127.0.0.1#5353 -ipset=/.shadowsocks9.com/gfwlist -server=/.shambalapost.com/127.0.0.1#5353 -ipset=/.shambalapost.com/gfwlist -server=/.shambhalasun.com/127.0.0.1#5353 -ipset=/.shambhalasun.com/gfwlist -server=/.shangfang.org/127.0.0.1#5353 -ipset=/.shangfang.org/gfwlist -server=/.shapeservices.com/127.0.0.1#5353 -ipset=/.shapeservices.com/gfwlist -server=/.share.dmhy.org/127.0.0.1#5353 -ipset=/.share.dmhy.org/gfwlist -server=/.share.youthwant.com.tw/127.0.0.1#5353 -ipset=/.share.youthwant.com.tw/gfwlist -server=/.sharebee.com/127.0.0.1#5353 -ipset=/.sharebee.com/gfwlist -server=/.sharecool.org/127.0.0.1#5353 -ipset=/.sharecool.org/gfwlist -server=/.sharpdaily.com.hk/127.0.0.1#5353 -ipset=/.sharpdaily.com.hk/gfwlist -server=/.sharpdaily.hk/127.0.0.1#5353 -ipset=/.sharpdaily.hk/gfwlist -server=/.sharpdaily.tw/127.0.0.1#5353 -ipset=/.sharpdaily.tw/gfwlist -server=/.shat-tibet.com/127.0.0.1#5353 -ipset=/.shat-tibet.com/gfwlist -server=/.shattered.io/127.0.0.1#5353 -ipset=/.shattered.io/gfwlist -server=/.sheikyermami.com/127.0.0.1#5353 -ipset=/.sheikyermami.com/gfwlist -server=/.shellfire.de/127.0.0.1#5353 -ipset=/.shellfire.de/gfwlist -server=/.shenshou.org/127.0.0.1#5353 -ipset=/.shenshou.org/gfwlist -server=/.shenyun.com/127.0.0.1#5353 -ipset=/.shenyun.com/gfwlist -server=/.shenyunperformingarts.org/127.0.0.1#5353 -ipset=/.shenyunperformingarts.org/gfwlist -server=/.shenzhoufilm.com/127.0.0.1#5353 -ipset=/.shenzhoufilm.com/gfwlist -server=/.sherabgyaltsen.com/127.0.0.1#5353 -ipset=/.sherabgyaltsen.com/gfwlist -server=/.shiatv.net/127.0.0.1#5353 -ipset=/.shiatv.net/gfwlist -server=/.shicheng.org/127.0.0.1#5353 -ipset=/.shicheng.org/gfwlist -server=/.shiksha.com/127.0.0.1#5353 -ipset=/.shiksha.com/gfwlist -server=/.shinychan.com/127.0.0.1#5353 -ipset=/.shinychan.com/gfwlist -server=/.shipcamouflage.com/127.0.0.1#5353 -ipset=/.shipcamouflage.com/gfwlist -server=/.shireyishunjian.com/127.0.0.1#5353 -ipset=/.shireyishunjian.com/gfwlist -server=/.shitaotv.org/127.0.0.1#5353 -ipset=/.shitaotv.org/gfwlist -server=/.shixiao.org/127.0.0.1#5353 -ipset=/.shixiao.org/gfwlist -server=/.shizhao.org/127.0.0.1#5353 -ipset=/.shizhao.org/gfwlist -server=/.shodanhq.com/127.0.0.1#5353 -ipset=/.shodanhq.com/gfwlist -server=/.shooshtime.com/127.0.0.1#5353 -ipset=/.shooshtime.com/gfwlist -server=/.shop2000.com.tw/127.0.0.1#5353 -ipset=/.shop2000.com.tw/gfwlist -server=/.shopping.com/127.0.0.1#5353 -ipset=/.shopping.com/gfwlist -server=/.showbiz.omy.sg/127.0.0.1#5353 -ipset=/.showbiz.omy.sg/gfwlist -server=/.showhaotu.com/127.0.0.1#5353 -ipset=/.showhaotu.com/gfwlist -server=/.showtime.jp/127.0.0.1#5353 -ipset=/.showtime.jp/gfwlist -server=/.shutterstock.com/127.0.0.1#5353 -ipset=/.shutterstock.com/gfwlist -server=/.shwchurch.org/127.0.0.1#5353 -ipset=/.shwchurch.org/gfwlist -server=/.shwchurch3.com/127.0.0.1#5353 -ipset=/.shwchurch3.com/gfwlist -server=/.siddharthasintent.org/127.0.0.1#5353 -ipset=/.siddharthasintent.org/gfwlist -server=/.sidelinesnews.com/127.0.0.1#5353 -ipset=/.sidelinesnews.com/gfwlist -server=/.sidelinessportseatery.com/127.0.0.1#5353 -ipset=/.sidelinessportseatery.com/gfwlist -server=/.sierrafriendsoftibet.org/127.0.0.1#5353 -ipset=/.sierrafriendsoftibet.org/gfwlist -server=/.sijihuisuo.club/127.0.0.1#5353 -ipset=/.sijihuisuo.club/gfwlist -server=/.sijihuisuo.com/127.0.0.1#5353 -ipset=/.sijihuisuo.com/gfwlist -server=/.sikaozhe1997.github.io/127.0.0.1#5353 -ipset=/.sikaozhe1997.github.io/gfwlist -server=/.silkbook.com/127.0.0.1#5353 -ipset=/.silkbook.com/gfwlist -server=/.simbolostwitter.com/127.0.0.1#5353 -ipset=/.simbolostwitter.com/gfwlist -server=/.simplecd.me/127.0.0.1#5353 -ipset=/.simplecd.me/gfwlist -server=/.simplecd.org/127.0.0.1#5353 -ipset=/.simplecd.org/gfwlist -server=/.simpleproductivityblog.com/127.0.0.1#5353 -ipset=/.simpleproductivityblog.com/gfwlist -server=/.singaporepools.com.sg/127.0.0.1#5353 -ipset=/.singaporepools.com.sg/gfwlist -server=/.singfortibet.com/127.0.0.1#5353 -ipset=/.singfortibet.com/gfwlist -server=/.singpao.com.hk/127.0.0.1#5353 -ipset=/.singpao.com.hk/gfwlist -server=/.singtao.com/127.0.0.1#5353 -ipset=/.singtao.com/gfwlist -server=/.singtaousa.com/127.0.0.1#5353 -ipset=/.singtaousa.com/gfwlist -server=/.sino-monthly.com/127.0.0.1#5353 -ipset=/.sino-monthly.com/gfwlist -server=/.sinoants.com/127.0.0.1#5353 -ipset=/.sinoants.com/gfwlist -server=/.sinocast.com/127.0.0.1#5353 -ipset=/.sinocast.com/gfwlist -server=/.sinocism.com/127.0.0.1#5353 -ipset=/.sinocism.com/gfwlist -server=/.sinomontreal.ca/127.0.0.1#5353 -ipset=/.sinomontreal.ca/gfwlist -server=/.sinonet.ca/127.0.0.1#5353 -ipset=/.sinonet.ca/gfwlist -server=/.sinopitt.info/127.0.0.1#5353 -ipset=/.sinopitt.info/gfwlist -server=/.sinoquebec.com/127.0.0.1#5353 -ipset=/.sinoquebec.com/gfwlist -server=/.siraya-nsa.gov.tw/127.0.0.1#5353 -ipset=/.siraya-nsa.gov.tw/gfwlist -server=/.sis.xxx/127.0.0.1#5353 -ipset=/.sis.xxx/gfwlist -server=/.sis001.com/127.0.0.1#5353 -ipset=/.sis001.com/gfwlist -server=/.sis001.us/127.0.0.1#5353 -ipset=/.sis001.us/gfwlist -server=/.site.locql.com/127.0.0.1#5353 -ipset=/.site.locql.com/gfwlist -server=/.site2unblock.com/127.0.0.1#5353 -ipset=/.site2unblock.com/gfwlist -server=/.site90.net/127.0.0.1#5353 -ipset=/.site90.net/gfwlist -server=/.sitebro.tw/127.0.0.1#5353 -ipset=/.sitebro.tw/gfwlist -server=/.sitekreator.com/127.0.0.1#5353 -ipset=/.sitekreator.com/gfwlist -server=/.siteks.uk.to/127.0.0.1#5353 -ipset=/.siteks.uk.to/gfwlist -server=/.sitemaps.org/127.0.0.1#5353 -ipset=/.sitemaps.org/gfwlist -server=/.sixth.biz/127.0.0.1#5353 -ipset=/.sixth.biz/gfwlist -server=/.sjrt.org/127.0.0.1#5353 -ipset=/.sjrt.org/gfwlist -server=/.sjum.cn/127.0.0.1#5353 -ipset=/.sjum.cn/gfwlist -server=/.sketchappsources.com/127.0.0.1#5353 -ipset=/.sketchappsources.com/gfwlist -server=/.skimtube.com/127.0.0.1#5353 -ipset=/.skimtube.com/gfwlist -server=/.skybet.com/127.0.0.1#5353 -ipset=/.skybet.com/gfwlist -server=/.skyking.com.tw/127.0.0.1#5353 -ipset=/.skyking.com.tw/gfwlist -server=/.skyvegas.com/127.0.0.1#5353 -ipset=/.skyvegas.com/gfwlist -server=/.skyxvpn.com/127.0.0.1#5353 -ipset=/.skyxvpn.com/gfwlist -server=/.slacker.com/127.0.0.1#5353 -ipset=/.slacker.com/gfwlist -server=/.slaytizle.com/127.0.0.1#5353 -ipset=/.slaytizle.com/gfwlist -server=/.sleazydream.com/127.0.0.1#5353 -ipset=/.sleazydream.com/gfwlist -server=/.slheng.com/127.0.0.1#5353 -ipset=/.slheng.com/gfwlist -server=/.slickvpn.com/127.0.0.1#5353 -ipset=/.slickvpn.com/gfwlist -server=/.slideshare.net/127.0.0.1#5353 -ipset=/.slideshare.net/gfwlist -server=/.slinkset.com/127.0.0.1#5353 -ipset=/.slinkset.com/gfwlist -server=/.slutload.com/127.0.0.1#5353 -ipset=/.slutload.com/gfwlist -server=/.slutmoonbeam.com/127.0.0.1#5353 -ipset=/.slutmoonbeam.com/gfwlist -server=/.slyip.com/127.0.0.1#5353 -ipset=/.slyip.com/gfwlist -server=/.slyip.net/127.0.0.1#5353 -ipset=/.slyip.net/gfwlist -server=/.sm-miracle.com/127.0.0.1#5353 -ipset=/.sm-miracle.com/gfwlist -server=/.smartdnsproxy.com/127.0.0.1#5353 -ipset=/.smartdnsproxy.com/gfwlist -server=/.smarthide.com/127.0.0.1#5353 -ipset=/.smarthide.com/gfwlist -server=/.smchbooks.com/127.0.0.1#5353 -ipset=/.smchbooks.com/gfwlist -server=/.smhric.org/127.0.0.1#5353 -ipset=/.smhric.org/gfwlist -server=/.smyxy.org/127.0.0.1#5353 -ipset=/.smyxy.org/gfwlist -server=/.snapchat.com/127.0.0.1#5353 -ipset=/.snapchat.com/gfwlist -server=/.snaptu.com/127.0.0.1#5353 -ipset=/.snaptu.com/gfwlist -server=/.sndcdn.com/127.0.0.1#5353 -ipset=/.sndcdn.com/gfwlist -server=/.sneakme.net/127.0.0.1#5353 -ipset=/.sneakme.net/gfwlist -server=/.snowlionpub.com/127.0.0.1#5353 -ipset=/.snowlionpub.com/gfwlist -server=/.sobees.com/127.0.0.1#5353 -ipset=/.sobees.com/gfwlist -server=/.soc.mil/127.0.0.1#5353 -ipset=/.soc.mil/gfwlist -server=/.socialwhale.com/127.0.0.1#5353 -ipset=/.socialwhale.com/gfwlist -server=/.sockscap64.com/127.0.0.1#5353 -ipset=/.sockscap64.com/gfwlist -server=/.sockslist.net/127.0.0.1#5353 -ipset=/.sockslist.net/gfwlist -server=/.socrec.org/127.0.0.1#5353 -ipset=/.socrec.org/gfwlist -server=/.sod.co.jp/127.0.0.1#5353 -ipset=/.sod.co.jp/gfwlist -server=/.sodatea.github.io/127.0.0.1#5353 -ipset=/.sodatea.github.io/gfwlist -server=/.softether-download.com/127.0.0.1#5353 -ipset=/.softether-download.com/gfwlist -server=/.softether.co.jp/127.0.0.1#5353 -ipset=/.softether.co.jp/gfwlist -server=/.softether.org/127.0.0.1#5353 -ipset=/.softether.org/gfwlist -server=/.softwarebychuck.com/127.0.0.1#5353 -ipset=/.softwarebychuck.com/gfwlist -server=/.softwaredownload.gitbooks.io/127.0.0.1#5353 -ipset=/.softwaredownload.gitbooks.io/gfwlist -server=/.sogclub.com/127.0.0.1#5353 -ipset=/.sogclub.com/gfwlist -server=/.sogrady.me/127.0.0.1#5353 -ipset=/.sogrady.me/gfwlist -server=/.soh.tw/127.0.0.1#5353 -ipset=/.soh.tw/gfwlist -server=/.sohcradio.com/127.0.0.1#5353 -ipset=/.sohcradio.com/gfwlist -server=/.sohfrance.org/127.0.0.1#5353 -ipset=/.sohfrance.org/gfwlist -server=/.sokamonline.com/127.0.0.1#5353 -ipset=/.sokamonline.com/gfwlist -server=/.sokmil.com/127.0.0.1#5353 -ipset=/.sokmil.com/gfwlist -server=/.solarsystem.nasa.gov/127.0.0.1#5353 -ipset=/.solarsystem.nasa.gov/gfwlist -server=/.solidaritetibet.org/127.0.0.1#5353 -ipset=/.solidaritetibet.org/gfwlist -server=/.solidfiles.com/127.0.0.1#5353 -ipset=/.solidfiles.com/gfwlist -server=/.somee.com/127.0.0.1#5353 -ipset=/.somee.com/gfwlist -server=/.songjianjun.com/127.0.0.1#5353 -ipset=/.songjianjun.com/gfwlist -server=/.sonicbbs.cc/127.0.0.1#5353 -ipset=/.sonicbbs.cc/gfwlist -server=/.sonidodelaesperanza.org/127.0.0.1#5353 -ipset=/.sonidodelaesperanza.org/gfwlist -server=/.sopcast.com/127.0.0.1#5353 -ipset=/.sopcast.com/gfwlist -server=/.sopcast.org/127.0.0.1#5353 -ipset=/.sopcast.org/gfwlist -server=/.sorazone.net/127.0.0.1#5353 -ipset=/.sorazone.net/gfwlist -server=/.sorting-algorithms.com/127.0.0.1#5353 -ipset=/.sorting-algorithms.com/gfwlist -server=/.sos.org/127.0.0.1#5353 -ipset=/.sos.org/gfwlist -server=/.sosreader.com/127.0.0.1#5353 -ipset=/.sosreader.com/gfwlist -server=/.sostibet.org/127.0.0.1#5353 -ipset=/.sostibet.org/gfwlist -server=/.soubory.com/127.0.0.1#5353 -ipset=/.soubory.com/gfwlist -server=/.soul-plus.net/127.0.0.1#5353 -ipset=/.soul-plus.net/gfwlist -server=/.soulcaliburhentai.net/127.0.0.1#5353 -ipset=/.soulcaliburhentai.net/gfwlist -server=/.soumo.info/127.0.0.1#5353 -ipset=/.soumo.info/gfwlist -server=/.soundcloud.com/127.0.0.1#5353 -ipset=/.soundcloud.com/gfwlist -server=/.soundofhope.kr/127.0.0.1#5353 -ipset=/.soundofhope.kr/gfwlist -server=/.soundofhope.org/127.0.0.1#5353 -ipset=/.soundofhope.org/gfwlist -server=/.soup.io/127.0.0.1#5353 -ipset=/.soup.io/gfwlist -server=/.soupofmedia.com/127.0.0.1#5353 -ipset=/.soupofmedia.com/gfwlist -server=/.sourcewadio.com/127.0.0.1#5353 -ipset=/.sourcewadio.com/gfwlist -server=/.southnews.com.tw/127.0.0.1#5353 -ipset=/.southnews.com.tw/gfwlist -server=/.sowers.org.hk/127.0.0.1#5353 -ipset=/.sowers.org.hk/gfwlist -server=/.soylentnews.org/127.0.0.1#5353 -ipset=/.soylentnews.org/gfwlist -server=/.spankbang.com/127.0.0.1#5353 -ipset=/.spankbang.com/gfwlist -server=/.spankingtube.com/127.0.0.1#5353 -ipset=/.spankingtube.com/gfwlist -server=/.spankwire.com/127.0.0.1#5353 -ipset=/.spankwire.com/gfwlist -server=/.spb.com/127.0.0.1#5353 -ipset=/.spb.com/gfwlist -server=/.speakerdeck.com/127.0.0.1#5353 -ipset=/.speakerdeck.com/gfwlist -server=/.specxinzl.jigsy.com/127.0.0.1#5353 -ipset=/.specxinzl.jigsy.com/gfwlist -server=/.speedify.com/127.0.0.1#5353 -ipset=/.speedify.com/gfwlist -server=/.spem.at/127.0.0.1#5353 -ipset=/.spem.at/gfwlist -server=/.spencertipping.com/127.0.0.1#5353 -ipset=/.spencertipping.com/gfwlist -server=/.spicevpn.com/127.0.0.1#5353 -ipset=/.spicevpn.com/gfwlist -server=/.spideroak.com/127.0.0.1#5353 -ipset=/.spideroak.com/gfwlist -server=/.spike.com/127.0.0.1#5353 -ipset=/.spike.com/gfwlist -server=/.sports.williamhill.com/127.0.0.1#5353 -ipset=/.sports.williamhill.com/gfwlist -server=/.spotflux.com/127.0.0.1#5353 -ipset=/.spotflux.com/gfwlist -server=/.spotify.com/127.0.0.1#5353 -ipset=/.spotify.com/gfwlist -server=/.spreadshirt.es/127.0.0.1#5353 -ipset=/.spreadshirt.es/gfwlist -server=/.spring4u.info/127.0.0.1#5353 -ipset=/.spring4u.info/gfwlist -server=/.springboardplatform.com/127.0.0.1#5353 -ipset=/.springboardplatform.com/gfwlist -server=/.sprite.org/127.0.0.1#5353 -ipset=/.sprite.org/gfwlist -server=/.sproutcore.com/127.0.0.1#5353 -ipset=/.sproutcore.com/gfwlist -server=/.sproxy.info/127.0.0.1#5353 -ipset=/.sproxy.info/gfwlist -server=/.squirly.info/127.0.0.1#5353 -ipset=/.squirly.info/gfwlist -server=/.srocket.us/127.0.0.1#5353 -ipset=/.srocket.us/gfwlist -server=/.ss-link.com/127.0.0.1#5353 -ipset=/.ss-link.com/gfwlist -server=/.ss.carryzhou.com/127.0.0.1#5353 -ipset=/.ss.carryzhou.com/gfwlist -server=/.ss.levyhsu.com/127.0.0.1#5353 -ipset=/.ss.levyhsu.com/gfwlist -server=/.ss7.vzw.com/127.0.0.1#5353 -ipset=/.ss7.vzw.com/gfwlist -server=/.ssglobal.co/127.0.0.1#5353 -ipset=/.ssglobal.co/gfwlist -server=/.ssglobal.me/127.0.0.1#5353 -ipset=/.ssglobal.me/gfwlist -server=/.ssh91.com/127.0.0.1#5353 -ipset=/.ssh91.com/gfwlist -server=/.ssl.gstatic.com/127.0.0.1#5353 -ipset=/.ssl.gstatic.com/gfwlist -server=/.ssl.webpack.de/127.0.0.1#5353 -ipset=/.ssl.webpack.de/gfwlist -server=/.ssl443.org/127.0.0.1#5353 -ipset=/.ssl443.org/gfwlist -server=/.sspro.ml/127.0.0.1#5353 -ipset=/.sspro.ml/gfwlist -server=/.ssrshare.com/127.0.0.1#5353 -ipset=/.ssrshare.com/gfwlist -server=/.sss.camp/127.0.0.1#5353 -ipset=/.sss.camp/gfwlist -server=/.sstmlt.moe/127.0.0.1#5353 -ipset=/.sstmlt.moe/gfwlist -server=/.sstmlt.net/127.0.0.1#5353 -ipset=/.sstmlt.net/gfwlist -server=/.stage64.hk/127.0.0.1#5353 -ipset=/.stage64.hk/gfwlist -server=/.standupfortibet.org/127.0.0.1#5353 -ipset=/.standupfortibet.org/gfwlist -server=/.starfishfx.com/127.0.0.1#5353 -ipset=/.starfishfx.com/gfwlist -server=/.starp2p.com/127.0.0.1#5353 -ipset=/.starp2p.com/gfwlist -server=/.startpage.com/127.0.0.1#5353 -ipset=/.startpage.com/gfwlist -server=/.startuplivingchina.com/127.0.0.1#5353 -ipset=/.startuplivingchina.com/gfwlist -server=/.stat.gov.tw/127.0.0.1#5353 -ipset=/.stat.gov.tw/gfwlist -server=/.static-economist.com/127.0.0.1#5353 -ipset=/.static-economist.com/gfwlist -server=/.static.comico.tw/127.0.0.1#5353 -ipset=/.static.comico.tw/gfwlist -server=/.static.shemalez.com/127.0.0.1#5353 -ipset=/.static.shemalez.com/gfwlist -server=/.static.soup.io/127.0.0.1#5353 -ipset=/.static.soup.io/gfwlist -server=/.static.typepad.com/127.0.0.1#5353 -ipset=/.static.typepad.com/gfwlist -server=/.static.v2ex.com/127.0.0.1#5353 -ipset=/.static.v2ex.com/gfwlist -server=/.static01.nyt.com/127.0.0.1#5353 -ipset=/.static01.nyt.com/gfwlist -server=/.staticflickr.com/127.0.0.1#5353 -ipset=/.staticflickr.com/gfwlist -server=/.statueofdemocracy.org/127.0.0.1#5353 -ipset=/.statueofdemocracy.org/gfwlist -server=/.stc.com.sa/127.0.0.1#5353 -ipset=/.stc.com.sa/gfwlist -server=/.stdtime.gov.tw/127.0.0.1#5353 -ipset=/.stdtime.gov.tw/gfwlist -server=/.steamcommunity.com/127.0.0.1#5353 -ipset=/.steamcommunity.com/gfwlist -server=/.steel-storm.com/127.0.0.1#5353 -ipset=/.steel-storm.com/gfwlist -server=/.steganos.com/127.0.0.1#5353 -ipset=/.steganos.com/gfwlist -server=/.steganos.net/127.0.0.1#5353 -ipset=/.steganos.net/gfwlist -server=/.stepchina.com/127.0.0.1#5353 -ipset=/.stepchina.com/gfwlist -server=/.stephaniered.com/127.0.0.1#5353 -ipset=/.stephaniered.com/gfwlist -server=/.sthoo.com/127.0.0.1#5353 -ipset=/.sthoo.com/gfwlist -server=/.stickam.com/127.0.0.1#5353 -ipset=/.stickam.com/gfwlist -server=/.stileproject.com/127.0.0.1#5353 -ipset=/.stileproject.com/gfwlist -server=/.sto.cc/127.0.0.1#5353 -ipset=/.sto.cc/gfwlist -server=/.stoporganharvesting.org/127.0.0.1#5353 -ipset=/.stoporganharvesting.org/gfwlist -server=/.stoptibetcrisis.net/127.0.0.1#5353 -ipset=/.stoptibetcrisis.net/gfwlist -server=/.storage.googleapis.com/127.0.0.1#5353 -ipset=/.storage.googleapis.com/gfwlist -server=/.storagenewsletter.com/127.0.0.1#5353 -ipset=/.storagenewsletter.com/gfwlist -server=/.store.sprite.org/127.0.0.1#5353 -ipset=/.store.sprite.org/gfwlist -server=/.stories.google/127.0.0.1#5353 -ipset=/.stories.google/gfwlist -server=/.storify.com/127.0.0.1#5353 -ipset=/.storify.com/gfwlist -server=/.storm.mg/127.0.0.1#5353 -ipset=/.storm.mg/gfwlist -server=/.stormmediagroup.com/127.0.0.1#5353 -ipset=/.stormmediagroup.com/gfwlist -server=/.stoweboyd.com/127.0.0.1#5353 -ipset=/.stoweboyd.com/gfwlist -server=/.stranabg.com/127.0.0.1#5353 -ipset=/.stranabg.com/gfwlist -server=/.straplessdildo.com/127.0.0.1#5353 -ipset=/.straplessdildo.com/gfwlist -server=/.streamingthe.net/127.0.0.1#5353 -ipset=/.streamingthe.net/gfwlist -server=/.strikingly.com/127.0.0.1#5353 -ipset=/.strikingly.com/gfwlist -server=/.strongvpn.com/127.0.0.1#5353 -ipset=/.strongvpn.com/gfwlist -server=/.strongwindpress.com/127.0.0.1#5353 -ipset=/.strongwindpress.com/gfwlist -server=/.studentsforafreetibet.org/127.0.0.1#5353 -ipset=/.studentsforafreetibet.org/gfwlist -server=/.stumbleupon.com/127.0.0.1#5353 -ipset=/.stumbleupon.com/gfwlist -server=/.stupidvideos.com/127.0.0.1#5353 -ipset=/.stupidvideos.com/gfwlist -server=/.subacme.rerouted.org/127.0.0.1#5353 -ipset=/.subacme.rerouted.org/gfwlist -server=/.successfn.com/127.0.0.1#5353 -ipset=/.successfn.com/gfwlist -server=/.sugarsync.com/127.0.0.1#5353 -ipset=/.sugarsync.com/gfwlist -server=/.sugobbs.com/127.0.0.1#5353 -ipset=/.sugobbs.com/gfwlist -server=/.sugumiru18.com/127.0.0.1#5353 -ipset=/.sugumiru18.com/gfwlist -server=/.suissl.com/127.0.0.1#5353 -ipset=/.suissl.com/gfwlist -server=/.sujiatun.wordpress.com/127.0.0.1#5353 -ipset=/.sujiatun.wordpress.com/gfwlist -server=/.sukebei.nyaa.si/127.0.0.1#5353 -ipset=/.sukebei.nyaa.si/gfwlist -server=/.sulian.me/127.0.0.1#5353 -ipset=/.sulian.me/gfwlist -server=/.summify.com/127.0.0.1#5353 -ipset=/.summify.com/gfwlist -server=/.sumrando.com/127.0.0.1#5353 -ipset=/.sumrando.com/gfwlist -server=/.sun1911.com/127.0.0.1#5353 -ipset=/.sun1911.com/gfwlist -server=/.sunmedia.ca/127.0.0.1#5353 -ipset=/.sunmedia.ca/gfwlist -server=/.sunmoonlake.gov.tw/127.0.0.1#5353 -ipset=/.sunmoonlake.gov.tw/gfwlist -server=/.sunporno.com/127.0.0.1#5353 -ipset=/.sunporno.com/gfwlist -server=/.sunskyforum.com/127.0.0.1#5353 -ipset=/.sunskyforum.com/gfwlist -server=/.sunta.com.tw/127.0.0.1#5353 -ipset=/.sunta.com.tw/gfwlist -server=/.sunvpn.net/127.0.0.1#5353 -ipset=/.sunvpn.net/gfwlist -server=/.sunwinism.joinbbs.net/127.0.0.1#5353 -ipset=/.sunwinism.joinbbs.net/gfwlist -server=/.suoluo.org/127.0.0.1#5353 -ipset=/.suoluo.org/gfwlist -server=/.supchina.com/127.0.0.1#5353 -ipset=/.supchina.com/gfwlist -server=/.superfreevpn.com/127.0.0.1#5353 -ipset=/.superfreevpn.com/gfwlist -server=/.superokayama.com/127.0.0.1#5353 -ipset=/.superokayama.com/gfwlist -server=/.superpages.com/127.0.0.1#5353 -ipset=/.superpages.com/gfwlist -server=/.supervpn.net/127.0.0.1#5353 -ipset=/.supervpn.net/gfwlist -server=/.superzooi.com/127.0.0.1#5353 -ipset=/.superzooi.com/gfwlist -server=/.suppig.net/127.0.0.1#5353 -ipset=/.suppig.net/gfwlist -server=/.suprememastertv.com/127.0.0.1#5353 -ipset=/.suprememastertv.com/gfwlist -server=/.surfeasy.com/127.0.0.1#5353 -ipset=/.surfeasy.com/gfwlist -server=/.suroot.com/127.0.0.1#5353 -ipset=/.suroot.com/gfwlist -server=/.surrenderat20.net/127.0.0.1#5353 -ipset=/.surrenderat20.net/gfwlist -server=/.suyangg.com/127.0.0.1#5353 -ipset=/.suyangg.com/gfwlist -server=/.svsfx.com/127.0.0.1#5353 -ipset=/.svsfx.com/gfwlist -server=/.swagbucks.com/127.0.0.1#5353 -ipset=/.swagbucks.com/gfwlist -server=/.swissvpn.net/127.0.0.1#5353 -ipset=/.swissvpn.net/gfwlist -server=/.switch1.jp/127.0.0.1#5353 -ipset=/.switch1.jp/gfwlist -server=/.switchvpn.net/127.0.0.1#5353 -ipset=/.switchvpn.net/gfwlist -server=/.sydneytoday.com/127.0.0.1#5353 -ipset=/.sydneytoday.com/gfwlist -server=/.sylfoundation.org/127.0.0.1#5353 -ipset=/.sylfoundation.org/gfwlist -server=/.syncback.com/127.0.0.1#5353 -ipset=/.syncback.com/gfwlist -server=/.synergyse.com/127.0.0.1#5353 -ipset=/.synergyse.com/gfwlist -server=/.sysresccd.org/127.0.0.1#5353 -ipset=/.sysresccd.org/gfwlist -server=/.sytes.net/127.0.0.1#5353 -ipset=/.sytes.net/gfwlist -server=/.szbbs.net/127.0.0.1#5353 -ipset=/.szbbs.net/gfwlist -server=/.szetowah.org.hk/127.0.0.1#5353 -ipset=/.szetowah.org.hk/gfwlist -server=/.t-g.com/127.0.0.1#5353 -ipset=/.t-g.com/gfwlist -server=/.t.co/127.0.0.1#5353 -ipset=/.t.co/gfwlist -server=/.t.me/127.0.0.1#5353 -ipset=/.t.me/gfwlist -server=/.t.orzdream.com/127.0.0.1#5353 -ipset=/.t.orzdream.com/gfwlist -server=/.t35.com/127.0.0.1#5353 -ipset=/.t35.com/gfwlist -server=/.t66y.com/127.0.0.1#5353 -ipset=/.t66y.com/gfwlist -server=/.taa-usa.org/127.0.0.1#5353 -ipset=/.taa-usa.org/gfwlist -server=/.taaze.tw/127.0.0.1#5353 -ipset=/.taaze.tw/gfwlist -server=/.tabtter.jp/127.0.0.1#5353 -ipset=/.tabtter.jp/gfwlist -server=/.tacc.cwb.gov.tw/127.0.0.1#5353 -ipset=/.tacc.cwb.gov.tw/gfwlist -server=/.tacem.org/127.0.0.1#5353 -ipset=/.tacem.org/gfwlist -server=/.taconet.com.tw/127.0.0.1#5353 -ipset=/.taconet.com.tw/gfwlist -server=/.taedp.org.tw/127.0.0.1#5353 -ipset=/.taedp.org.tw/gfwlist -server=/.tafm.org/127.0.0.1#5353 -ipset=/.tafm.org/gfwlist -server=/.tagwa.org.au/127.0.0.1#5353 -ipset=/.tagwa.org.au/gfwlist -server=/.tagwalk.com/127.0.0.1#5353 -ipset=/.tagwalk.com/gfwlist -server=/.tahr.org.tw/127.0.0.1#5353 -ipset=/.tahr.org.tw/gfwlist -server=/.taipei.gov.tw/127.0.0.1#5353 -ipset=/.taipei.gov.tw/gfwlist -server=/.taipeisociety.org/127.0.0.1#5353 -ipset=/.taipeisociety.org/gfwlist -server=/.taitung-house.gov.tw/127.0.0.1#5353 -ipset=/.taitung-house.gov.tw/gfwlist -server=/.taiwan-sex.com/127.0.0.1#5353 -ipset=/.taiwan-sex.com/gfwlist -server=/.taiwanbible.com/127.0.0.1#5353 -ipset=/.taiwanbible.com/gfwlist -server=/.taiwancon.com/127.0.0.1#5353 -ipset=/.taiwancon.com/gfwlist -server=/.taiwandaily.net/127.0.0.1#5353 -ipset=/.taiwandaily.net/gfwlist -server=/.taiwandc.org/127.0.0.1#5353 -ipset=/.taiwandc.org/gfwlist -server=/.taiwanjobs.gov.tw/127.0.0.1#5353 -ipset=/.taiwanjobs.gov.tw/gfwlist -server=/.taiwanjustice.com/127.0.0.1#5353 -ipset=/.taiwanjustice.com/gfwlist -server=/.taiwankiss.com/127.0.0.1#5353 -ipset=/.taiwankiss.com/gfwlist -server=/.taiwannation.50webs.com/127.0.0.1#5353 -ipset=/.taiwannation.50webs.com/gfwlist -server=/.taiwannation.com/127.0.0.1#5353 -ipset=/.taiwannation.com/gfwlist -server=/.taiwanncf.org.tw/127.0.0.1#5353 -ipset=/.taiwanncf.org.tw/gfwlist -server=/.taiwannews.com.tw/127.0.0.1#5353 -ipset=/.taiwannews.com.tw/gfwlist -server=/.taiwantp.net/127.0.0.1#5353 -ipset=/.taiwantp.net/gfwlist -server=/.taiwantt.org.tw/127.0.0.1#5353 -ipset=/.taiwantt.org.tw/gfwlist -server=/.taiwanus.net/127.0.0.1#5353 -ipset=/.taiwanus.net/gfwlist -server=/.taiwanyes.com/127.0.0.1#5353 -ipset=/.taiwanyes.com/gfwlist -server=/.taiwanyes.ning.com/127.0.0.1#5353 -ipset=/.taiwanyes.ning.com/gfwlist -server=/.talk853.com/127.0.0.1#5353 -ipset=/.talk853.com/gfwlist -server=/.talkboxapp.com/127.0.0.1#5353 -ipset=/.talkboxapp.com/gfwlist -server=/.talkonly.net/127.0.0.1#5353 -ipset=/.talkonly.net/gfwlist -server=/.tamiaode.tk/127.0.0.1#5353 -ipset=/.tamiaode.tk/gfwlist -server=/.tanc.org/127.0.0.1#5353 -ipset=/.tanc.org/gfwlist -server=/.tangben.com/127.0.0.1#5353 -ipset=/.tangben.com/gfwlist -server=/.tangren.us/127.0.0.1#5353 -ipset=/.tangren.us/gfwlist -server=/.taoism.net/127.0.0.1#5353 -ipset=/.taoism.net/gfwlist -server=/.taolun.info/127.0.0.1#5353 -ipset=/.taolun.info/gfwlist -server=/.taoyuan.gov.tw/127.0.0.1#5353 -ipset=/.taoyuan.gov.tw/gfwlist -server=/.tapanwap.com/127.0.0.1#5353 -ipset=/.tapanwap.com/gfwlist -server=/.tapatalk.com/127.0.0.1#5353 -ipset=/.tapatalk.com/gfwlist -server=/.tascn.com.au/127.0.0.1#5353 -ipset=/.tascn.com.au/gfwlist -server=/.taup.net/127.0.0.1#5353 -ipset=/.taup.net/gfwlist -server=/.taweet.com/127.0.0.1#5353 -ipset=/.taweet.com/gfwlist -server=/.tax.nat.gov.tw/127.0.0.1#5353 -ipset=/.tax.nat.gov.tw/gfwlist -server=/.tbcollege.org/127.0.0.1#5353 -ipset=/.tbcollege.org/gfwlist -server=/.tbi.org.hk/127.0.0.1#5353 -ipset=/.tbi.org.hk/gfwlist -server=/.tbicn.org/127.0.0.1#5353 -ipset=/.tbicn.org/gfwlist -server=/.tbjyt.org/127.0.0.1#5353 -ipset=/.tbjyt.org/gfwlist -server=/.tbpic.info/127.0.0.1#5353 -ipset=/.tbpic.info/gfwlist -server=/.tbrc.org/127.0.0.1#5353 -ipset=/.tbrc.org/gfwlist -server=/.tbs-rainbow.org/127.0.0.1#5353 -ipset=/.tbs-rainbow.org/gfwlist -server=/.tbsec.org/127.0.0.1#5353 -ipset=/.tbsec.org/gfwlist -server=/.tbskkinabalu.page.tl/127.0.0.1#5353 -ipset=/.tbskkinabalu.page.tl/gfwlist -server=/.tbsmalaysia.org/127.0.0.1#5353 -ipset=/.tbsmalaysia.org/gfwlist -server=/.tbsn.org/127.0.0.1#5353 -ipset=/.tbsn.org/gfwlist -server=/.tbsseattle.org/127.0.0.1#5353 -ipset=/.tbsseattle.org/gfwlist -server=/.tbssqh.org/127.0.0.1#5353 -ipset=/.tbssqh.org/gfwlist -server=/.tbswd.org/127.0.0.1#5353 -ipset=/.tbswd.org/gfwlist -server=/.tbtemple.org.uk/127.0.0.1#5353 -ipset=/.tbtemple.org.uk/gfwlist -server=/.tbthouston.org/127.0.0.1#5353 -ipset=/.tbthouston.org/gfwlist -server=/.tccwonline.org/127.0.0.1#5353 -ipset=/.tccwonline.org/gfwlist -server=/.tcewf.org/127.0.0.1#5353 -ipset=/.tcewf.org/gfwlist -server=/.tchrd.org/127.0.0.1#5353 -ipset=/.tchrd.org/gfwlist -server=/.tcnynj.org/127.0.0.1#5353 -ipset=/.tcnynj.org/gfwlist -server=/.tcpspeed.co/127.0.0.1#5353 -ipset=/.tcpspeed.co/gfwlist -server=/.tcpspeed.com/127.0.0.1#5353 -ipset=/.tcpspeed.com/gfwlist -server=/.tcsofbc.org/127.0.0.1#5353 -ipset=/.tcsofbc.org/gfwlist -server=/.tcsovi.org/127.0.0.1#5353 -ipset=/.tcsovi.org/gfwlist -server=/.tdm.com.mo/127.0.0.1#5353 -ipset=/.tdm.com.mo/gfwlist -server=/.teachparentstech.org/127.0.0.1#5353 -ipset=/.teachparentstech.org/gfwlist -server=/.teamamericany.com/127.0.0.1#5353 -ipset=/.teamamericany.com/gfwlist -server=/.techviz.net/127.0.0.1#5353 -ipset=/.techviz.net/gfwlist -server=/.teck.in/127.0.0.1#5353 -ipset=/.teck.in/gfwlist -server=/.teco-hk.org/127.0.0.1#5353 -ipset=/.teco-hk.org/gfwlist -server=/.teco-mo.org/127.0.0.1#5353 -ipset=/.teco-mo.org/gfwlist -server=/.teddysun.com/127.0.0.1#5353 -ipset=/.teddysun.com/gfwlist -server=/.teeniefuck.net/127.0.0.1#5353 -ipset=/.teeniefuck.net/gfwlist -server=/.teensinasia.com/127.0.0.1#5353 -ipset=/.teensinasia.com/gfwlist -server=/.telecomspace.com/127.0.0.1#5353 -ipset=/.telecomspace.com/gfwlist -server=/.telegram.dog/127.0.0.1#5353 -ipset=/.telegram.dog/gfwlist -server=/.telegram.me/127.0.0.1#5353 -ipset=/.telegram.me/gfwlist -server=/.telegram.org/127.0.0.1#5353 -ipset=/.telegram.org/gfwlist -server=/.telegramdownload.com/127.0.0.1#5353 -ipset=/.telegramdownload.com/gfwlist -server=/.telegraph.co.uk/127.0.0.1#5353 -ipset=/.telegraph.co.uk/gfwlist -server=/.telesco.pe/127.0.0.1#5353 -ipset=/.telesco.pe/gfwlist -server=/.tellme.pw/127.0.0.1#5353 -ipset=/.tellme.pw/gfwlist -server=/.tenacy.com/127.0.0.1#5353 -ipset=/.tenacy.com/gfwlist -server=/.tensorflow.org/127.0.0.1#5353 -ipset=/.tensorflow.org/gfwlist -server=/.tenzinpalmo.com/127.0.0.1#5353 -ipset=/.tenzinpalmo.com/gfwlist -server=/.terminus2049.github.io/127.0.0.1#5353 -ipset=/.terminus2049.github.io/gfwlist -server=/.tew.org/127.0.0.1#5353 -ipset=/.tew.org/gfwlist -server=/.textnow.me/127.0.0.1#5353 -ipset=/.textnow.me/gfwlist -server=/.th.hao123.com/127.0.0.1#5353 -ipset=/.th.hao123.com/gfwlist -server=/.thaicn.com/127.0.0.1#5353 -ipset=/.thaicn.com/gfwlist -server=/.thb.gov.tw/127.0.0.1#5353 -ipset=/.thb.gov.tw/gfwlist -server=/.theatrum-belli.com/127.0.0.1#5353 -ipset=/.theatrum-belli.com/gfwlist -server=/.thebcomplex.com/127.0.0.1#5353 -ipset=/.thebcomplex.com/gfwlist -server=/.theblemish.com/127.0.0.1#5353 -ipset=/.theblemish.com/gfwlist -server=/.thebobs.com/127.0.0.1#5353 -ipset=/.thebobs.com/gfwlist -server=/.thebodyshop-usa.com/127.0.0.1#5353 -ipset=/.thebodyshop-usa.com/gfwlist -server=/.thecenter.mit.edu/127.0.0.1#5353 -ipset=/.thecenter.mit.edu/gfwlist -server=/.thechinabeat.org/127.0.0.1#5353 -ipset=/.thechinabeat.org/gfwlist -server=/.thedalailamamovie.com/127.0.0.1#5353 -ipset=/.thedalailamamovie.com/gfwlist -server=/.thedw.us/127.0.0.1#5353 -ipset=/.thedw.us/gfwlist -server=/.thefacebook.com/127.0.0.1#5353 -ipset=/.thefacebook.com/gfwlist -server=/.thegly.com/127.0.0.1#5353 -ipset=/.thegly.com/gfwlist -server=/.thehots.info/127.0.0.1#5353 -ipset=/.thehots.info/gfwlist -server=/.thehousenews.com/127.0.0.1#5353 -ipset=/.thehousenews.com/gfwlist -server=/.thehun.net/127.0.0.1#5353 -ipset=/.thehun.net/gfwlist -server=/.theinitium.com/127.0.0.1#5353 -ipset=/.theinitium.com/gfwlist -server=/.thenewslens.com/127.0.0.1#5353 -ipset=/.thenewslens.com/gfwlist -server=/.thepiratebay.org/127.0.0.1#5353 -ipset=/.thepiratebay.org/gfwlist -server=/.theportalwiki.com/127.0.0.1#5353 -ipset=/.theportalwiki.com/gfwlist -server=/.thereallove.kr/127.0.0.1#5353 -ipset=/.thereallove.kr/gfwlist -server=/.therock.net.nz/127.0.0.1#5353 -ipset=/.therock.net.nz/gfwlist -server=/.thespeeder.com/127.0.0.1#5353 -ipset=/.thespeeder.com/gfwlist -server=/.thestandnews.com/127.0.0.1#5353 -ipset=/.thestandnews.com/gfwlist -server=/.thetibetcenter.org/127.0.0.1#5353 -ipset=/.thetibetcenter.org/gfwlist -server=/.thetibetconnection.org/127.0.0.1#5353 -ipset=/.thetibetconnection.org/gfwlist -server=/.thetibetmuseum.org/127.0.0.1#5353 -ipset=/.thetibetmuseum.org/gfwlist -server=/.thetibetpost.com/127.0.0.1#5353 -ipset=/.thetibetpost.com/gfwlist -server=/.thetinhat.com/127.0.0.1#5353 -ipset=/.thetinhat.com/gfwlist -server=/.thetrotskymovie.com/127.0.0.1#5353 -ipset=/.thetrotskymovie.com/gfwlist -server=/.thevivekspot.com/127.0.0.1#5353 -ipset=/.thevivekspot.com/gfwlist -server=/.thewgo.org/127.0.0.1#5353 -ipset=/.thewgo.org/gfwlist -server=/.theync.com/127.0.0.1#5353 -ipset=/.theync.com/gfwlist -server=/.thinkingtaiwan.com/127.0.0.1#5353 -ipset=/.thinkingtaiwan.com/gfwlist -server=/.thinkwithgoogle.com/127.0.0.1#5353 -ipset=/.thinkwithgoogle.com/gfwlist -server=/.thisav.com/127.0.0.1#5353 -ipset=/.thisav.com/gfwlist -server=/.thlib.org/127.0.0.1#5353 -ipset=/.thlib.org/gfwlist -server=/.thomasbernhard.org/127.0.0.1#5353 -ipset=/.thomasbernhard.org/gfwlist -server=/.thongdreams.com/127.0.0.1#5353 -ipset=/.thongdreams.com/gfwlist -server=/.threatchaos.com/127.0.0.1#5353 -ipset=/.threatchaos.com/gfwlist -server=/.throughnightsfire.com/127.0.0.1#5353 -ipset=/.throughnightsfire.com/gfwlist -server=/.thumbzilla.com/127.0.0.1#5353 -ipset=/.thumbzilla.com/gfwlist -server=/.thywords.com/127.0.0.1#5353 -ipset=/.thywords.com/gfwlist -server=/.tiananmenduizhi.com/127.0.0.1#5353 -ipset=/.tiananmenduizhi.com/gfwlist -server=/.tiananmenmother.org/127.0.0.1#5353 -ipset=/.tiananmenmother.org/gfwlist -server=/.tiananmenuniv.com/127.0.0.1#5353 -ipset=/.tiananmenuniv.com/gfwlist -server=/.tiananmenuniv.net/127.0.0.1#5353 -ipset=/.tiananmenuniv.net/gfwlist -server=/.tiandixing.org/127.0.0.1#5353 -ipset=/.tiandixing.org/gfwlist -server=/.tianhuayuan.com/127.0.0.1#5353 -ipset=/.tianhuayuan.com/gfwlist -server=/.tianlawoffice.com/127.0.0.1#5353 -ipset=/.tianlawoffice.com/gfwlist -server=/.tianti.io/127.0.0.1#5353 -ipset=/.tianti.io/gfwlist -server=/.tiantibooks.org/127.0.0.1#5353 -ipset=/.tiantibooks.org/gfwlist -server=/.tianyantong.org.cn/127.0.0.1#5353 -ipset=/.tianyantong.org.cn/gfwlist -server=/.tianzhu.org/127.0.0.1#5353 -ipset=/.tianzhu.org/gfwlist -server=/.tibet-envoy.eu/127.0.0.1#5353 -ipset=/.tibet-envoy.eu/gfwlist -server=/.tibet-foundation.org/127.0.0.1#5353 -ipset=/.tibet-foundation.org/gfwlist -server=/.tibet-house-trust.co.uk/127.0.0.1#5353 -ipset=/.tibet-house-trust.co.uk/gfwlist -server=/.tibet-info.net/127.0.0.1#5353 -ipset=/.tibet-info.net/gfwlist -server=/.tibet-initiative.de/127.0.0.1#5353 -ipset=/.tibet-initiative.de/gfwlist -server=/.tibet-munich.de/127.0.0.1#5353 -ipset=/.tibet-munich.de/gfwlist -server=/.tibet.a.se/127.0.0.1#5353 -ipset=/.tibet.a.se/gfwlist -server=/.tibet.at/127.0.0.1#5353 -ipset=/.tibet.at/gfwlist -server=/.tibet.ca/127.0.0.1#5353 -ipset=/.tibet.ca/gfwlist -server=/.tibet.com/127.0.0.1#5353 -ipset=/.tibet.com/gfwlist -server=/.tibet.fr/127.0.0.1#5353 -ipset=/.tibet.fr/gfwlist -server=/.tibet.net/127.0.0.1#5353 -ipset=/.tibet.net/gfwlist -server=/.tibet.nu/127.0.0.1#5353 -ipset=/.tibet.nu/gfwlist -server=/.tibet.org/127.0.0.1#5353 -ipset=/.tibet.org/gfwlist -server=/.tibet.sk/127.0.0.1#5353 -ipset=/.tibet.sk/gfwlist -server=/.tibet.to/127.0.0.1#5353 -ipset=/.tibet.to/gfwlist -server=/.tibet3rdpole.org/127.0.0.1#5353 -ipset=/.tibet3rdpole.org/gfwlist -server=/.tibetaction.net/127.0.0.1#5353 -ipset=/.tibetaction.net/gfwlist -server=/.tibetaid.org/127.0.0.1#5353 -ipset=/.tibetaid.org/gfwlist -server=/.tibetalk.com/127.0.0.1#5353 -ipset=/.tibetalk.com/gfwlist -server=/.tibetan-alliance.org/127.0.0.1#5353 -ipset=/.tibetan-alliance.org/gfwlist -server=/.tibetan.fr/127.0.0.1#5353 -ipset=/.tibetan.fr/gfwlist -server=/.tibetanaidproject.org/127.0.0.1#5353 -ipset=/.tibetanaidproject.org/gfwlist -server=/.tibetanarts.org/127.0.0.1#5353 -ipset=/.tibetanarts.org/gfwlist -server=/.tibetanbuddhistinstitute.org/127.0.0.1#5353 -ipset=/.tibetanbuddhistinstitute.org/gfwlist -server=/.tibetancommunity.org/127.0.0.1#5353 -ipset=/.tibetancommunity.org/gfwlist -server=/.tibetancommunityuk.net/127.0.0.1#5353 -ipset=/.tibetancommunityuk.net/gfwlist -server=/.tibetanculture.org/127.0.0.1#5353 -ipset=/.tibetanculture.org/gfwlist -server=/.tibetanfeministcollective.org/127.0.0.1#5353 -ipset=/.tibetanfeministcollective.org/gfwlist -server=/.tibetanjournal.com/127.0.0.1#5353 -ipset=/.tibetanjournal.com/gfwlist -server=/.tibetanlanguage.org/127.0.0.1#5353 -ipset=/.tibetanlanguage.org/gfwlist -server=/.tibetanliberation.org/127.0.0.1#5353 -ipset=/.tibetanliberation.org/gfwlist -server=/.tibetanpaintings.com/127.0.0.1#5353 -ipset=/.tibetanpaintings.com/gfwlist -server=/.tibetanphotoproject.com/127.0.0.1#5353 -ipset=/.tibetanphotoproject.com/gfwlist -server=/.tibetanpoliticalreview.org/127.0.0.1#5353 -ipset=/.tibetanpoliticalreview.org/gfwlist -server=/.tibetanreview.net/127.0.0.1#5353 -ipset=/.tibetanreview.net/gfwlist -server=/.tibetansports.org/127.0.0.1#5353 -ipset=/.tibetansports.org/gfwlist -server=/.tibetanwomen.org/127.0.0.1#5353 -ipset=/.tibetanwomen.org/gfwlist -server=/.tibetanyouth.org/127.0.0.1#5353 -ipset=/.tibetanyouth.org/gfwlist -server=/.tibetanyouthcongress.org/127.0.0.1#5353 -ipset=/.tibetanyouthcongress.org/gfwlist -server=/.tibetcharity.dk/127.0.0.1#5353 -ipset=/.tibetcharity.dk/gfwlist -server=/.tibetcharity.in/127.0.0.1#5353 -ipset=/.tibetcharity.in/gfwlist -server=/.tibetchild.org/127.0.0.1#5353 -ipset=/.tibetchild.org/gfwlist -server=/.tibetcity.com/127.0.0.1#5353 -ipset=/.tibetcity.com/gfwlist -server=/.tibetcollection.com/127.0.0.1#5353 -ipset=/.tibetcollection.com/gfwlist -server=/.tibetcorps.org/127.0.0.1#5353 -ipset=/.tibetcorps.org/gfwlist -server=/.tibetexpress.net/127.0.0.1#5353 -ipset=/.tibetexpress.net/gfwlist -server=/.tibetfocus.com/127.0.0.1#5353 -ipset=/.tibetfocus.com/gfwlist -server=/.tibetfund.org/127.0.0.1#5353 -ipset=/.tibetfund.org/gfwlist -server=/.tibetgermany.com/127.0.0.1#5353 -ipset=/.tibetgermany.com/gfwlist -server=/.tibetgermany.de/127.0.0.1#5353 -ipset=/.tibetgermany.de/gfwlist -server=/.tibethaus.com/127.0.0.1#5353 -ipset=/.tibethaus.com/gfwlist -server=/.tibetheritagefund.org/127.0.0.1#5353 -ipset=/.tibetheritagefund.org/gfwlist -server=/.tibethouse.jp/127.0.0.1#5353 -ipset=/.tibethouse.jp/gfwlist -server=/.tibethouse.org/127.0.0.1#5353 -ipset=/.tibethouse.org/gfwlist -server=/.tibethouse.us/127.0.0.1#5353 -ipset=/.tibethouse.us/gfwlist -server=/.tibetinfonet.net/127.0.0.1#5353 -ipset=/.tibetinfonet.net/gfwlist -server=/.tibetjustice.org/127.0.0.1#5353 -ipset=/.tibetjustice.org/gfwlist -server=/.tibetkomite.dk/127.0.0.1#5353 -ipset=/.tibetkomite.dk/gfwlist -server=/.tibetlibre.free.fr/127.0.0.1#5353 -ipset=/.tibetlibre.free.fr/gfwlist -server=/.tibetmuseum.org/127.0.0.1#5353 -ipset=/.tibetmuseum.org/gfwlist -server=/.tibetnetwork.org/127.0.0.1#5353 -ipset=/.tibetnetwork.org/gfwlist -server=/.tibetoffice.ch/127.0.0.1#5353 -ipset=/.tibetoffice.ch/gfwlist -server=/.tibetoffice.com.au/127.0.0.1#5353 -ipset=/.tibetoffice.com.au/gfwlist -server=/.tibetoffice.eu/127.0.0.1#5353 -ipset=/.tibetoffice.eu/gfwlist -server=/.tibetoffice.org/127.0.0.1#5353 -ipset=/.tibetoffice.org/gfwlist -server=/.tibetonline.com/127.0.0.1#5353 -ipset=/.tibetonline.com/gfwlist -server=/.tibetonline.tv/127.0.0.1#5353 -ipset=/.tibetonline.tv/gfwlist -server=/.tibetoralhistory.org/127.0.0.1#5353 -ipset=/.tibetoralhistory.org/gfwlist -server=/.tibetpolicy.eu/127.0.0.1#5353 -ipset=/.tibetpolicy.eu/gfwlist -server=/.tibetrelieffund.co.uk/127.0.0.1#5353 -ipset=/.tibetrelieffund.co.uk/gfwlist -server=/.tibetsites.com/127.0.0.1#5353 -ipset=/.tibetsites.com/gfwlist -server=/.tibetsociety.com/127.0.0.1#5353 -ipset=/.tibetsociety.com/gfwlist -server=/.tibetsun.com/127.0.0.1#5353 -ipset=/.tibetsun.com/gfwlist -server=/.tibetsupportgroup.org/127.0.0.1#5353 -ipset=/.tibetsupportgroup.org/gfwlist -server=/.tibetswiss.ch/127.0.0.1#5353 -ipset=/.tibetswiss.ch/gfwlist -server=/.tibettelegraph.com/127.0.0.1#5353 -ipset=/.tibettelegraph.com/gfwlist -server=/.tibettimes.net/127.0.0.1#5353 -ipset=/.tibettimes.net/gfwlist -server=/.tibetwrites.org/127.0.0.1#5353 -ipset=/.tibetwrites.org/gfwlist -server=/.ticket.com.tw/127.0.0.1#5353 -ipset=/.ticket.com.tw/gfwlist -server=/.tigervpn.com/127.0.0.1#5353 -ipset=/.tigervpn.com/gfwlist -server=/.tiltbrush.com/127.0.0.1#5353 -ipset=/.tiltbrush.com/gfwlist -server=/.timdir.com/127.0.0.1#5353 -ipset=/.timdir.com/gfwlist -server=/.time.com/127.0.0.1#5353 -ipset=/.time.com/gfwlist -server=/.times.hinet.net/127.0.0.1#5353 -ipset=/.times.hinet.net/gfwlist -server=/.timsah.com/127.0.0.1#5353 -ipset=/.timsah.com/gfwlist -server=/.tineye.com/127.0.0.1#5353 -ipset=/.tineye.com/gfwlist -server=/.tintuc101.com/127.0.0.1#5353 -ipset=/.tintuc101.com/gfwlist -server=/.tiny.cc/127.0.0.1#5353 -ipset=/.tiny.cc/gfwlist -server=/.tinychat.com/127.0.0.1#5353 -ipset=/.tinychat.com/gfwlist -server=/.tinypaste.com/127.0.0.1#5353 -ipset=/.tinypaste.com/gfwlist -server=/.tipo.gov.tw/127.0.0.1#5353 -ipset=/.tipo.gov.tw/gfwlist -server=/.tistory.com/127.0.0.1#5353 -ipset=/.tistory.com/gfwlist -server=/.tkcs-collins.com/127.0.0.1#5353 -ipset=/.tkcs-collins.com/gfwlist -server=/.tma.co.jp/127.0.0.1#5353 -ipset=/.tma.co.jp/gfwlist -server=/.tmagazine.com/127.0.0.1#5353 -ipset=/.tmagazine.com/gfwlist -server=/.tmdfish.com/127.0.0.1#5353 -ipset=/.tmdfish.com/gfwlist -server=/.tmi.me/127.0.0.1#5353 -ipset=/.tmi.me/gfwlist -server=/.tmpp.org/127.0.0.1#5353 -ipset=/.tmpp.org/gfwlist -server=/.tn1.shemalez.com/127.0.0.1#5353 -ipset=/.tn1.shemalez.com/gfwlist -server=/.tn2.shemalez.com/127.0.0.1#5353 -ipset=/.tn2.shemalez.com/gfwlist -server=/.tn3.shemalez.com/127.0.0.1#5353 -ipset=/.tn3.shemalez.com/gfwlist -server=/.tnaflix.com/127.0.0.1#5353 -ipset=/.tnaflix.com/gfwlist -server=/.tngrnow.com/127.0.0.1#5353 -ipset=/.tngrnow.com/gfwlist -server=/.tngrnow.net/127.0.0.1#5353 -ipset=/.tngrnow.net/gfwlist -server=/.tnp.org/127.0.0.1#5353 -ipset=/.tnp.org/gfwlist -server=/.to-porno.com/127.0.0.1#5353 -ipset=/.to-porno.com/gfwlist -server=/.togetter.com/127.0.0.1#5353 -ipset=/.togetter.com/gfwlist -server=/.toh.info/127.0.0.1#5353 -ipset=/.toh.info/gfwlist -server=/.tokyo-247.com/127.0.0.1#5353 -ipset=/.tokyo-247.com/gfwlist -server=/.tokyo-hot.com/127.0.0.1#5353 -ipset=/.tokyo-hot.com/gfwlist -server=/.tokyo-porn-tube.com/127.0.0.1#5353 -ipset=/.tokyo-porn-tube.com/gfwlist -server=/.tokyocn.com/127.0.0.1#5353 -ipset=/.tokyocn.com/gfwlist -server=/.tongil.or.kr/127.0.0.1#5353 -ipset=/.tongil.or.kr/gfwlist -server=/.tono-oka.jp/127.0.0.1#5353 -ipset=/.tono-oka.jp/gfwlist -server=/.tonyyan.net/127.0.0.1#5353 -ipset=/.tonyyan.net/gfwlist -server=/.toodoc.com/127.0.0.1#5353 -ipset=/.toodoc.com/gfwlist -server=/.tools.google.com/127.0.0.1#5353 -ipset=/.tools.google.com/gfwlist -server=/.toonel.net/127.0.0.1#5353 -ipset=/.toonel.net/gfwlist -server=/.top.tv/127.0.0.1#5353 -ipset=/.top.tv/gfwlist -server=/.top81.ws/127.0.0.1#5353 -ipset=/.top81.ws/gfwlist -server=/.topbtc.com/127.0.0.1#5353 -ipset=/.topbtc.com/gfwlist -server=/.topic.youthwant.com.tw/127.0.0.1#5353 -ipset=/.topic.youthwant.com.tw/gfwlist -server=/.topnews.in/127.0.0.1#5353 -ipset=/.topnews.in/gfwlist -server=/.toppornsites.com/127.0.0.1#5353 -ipset=/.toppornsites.com/gfwlist -server=/.topshareware.com/127.0.0.1#5353 -ipset=/.topshareware.com/gfwlist -server=/.topsy.com/127.0.0.1#5353 -ipset=/.topsy.com/gfwlist -server=/.toptip.ca/127.0.0.1#5353 -ipset=/.toptip.ca/gfwlist -server=/.tor.blingblingsquad.net/127.0.0.1#5353 -ipset=/.tor.blingblingsquad.net/gfwlist -server=/.tor.updatestar.com/127.0.0.1#5353 -ipset=/.tor.updatestar.com/gfwlist -server=/.tora.to/127.0.0.1#5353 -ipset=/.tora.to/gfwlist -server=/.torcn.com/127.0.0.1#5353 -ipset=/.torcn.com/gfwlist -server=/.torguard.net/127.0.0.1#5353 -ipset=/.torguard.net/gfwlist -server=/.torproject.org/127.0.0.1#5353 -ipset=/.torproject.org/gfwlist -server=/.torrentprivacy.com/127.0.0.1#5353 -ipset=/.torrentprivacy.com/gfwlist -server=/.torrentproject.se/127.0.0.1#5353 -ipset=/.torrentproject.se/gfwlist -server=/.torrenty.org/127.0.0.1#5353 -ipset=/.torrenty.org/gfwlist -server=/.torrentz.eu/127.0.0.1#5353 -ipset=/.torrentz.eu/gfwlist -server=/.torvpn.com/127.0.0.1#5353 -ipset=/.torvpn.com/gfwlist -server=/.tosh.comedycentral.com/127.0.0.1#5353 -ipset=/.tosh.comedycentral.com/gfwlist -server=/.totalvpn.com/127.0.0.1#5353 -ipset=/.totalvpn.com/gfwlist -server=/.toutiaoabc.com/127.0.0.1#5353 -ipset=/.toutiaoabc.com/gfwlist -server=/.towngain.com/127.0.0.1#5353 -ipset=/.towngain.com/gfwlist -server=/.toypark.in/127.0.0.1#5353 -ipset=/.toypark.in/gfwlist -server=/.toythieves.com/127.0.0.1#5353 -ipset=/.toythieves.com/gfwlist -server=/.toytractorshow.com/127.0.0.1#5353 -ipset=/.toytractorshow.com/gfwlist -server=/.tparents.org/127.0.0.1#5353 -ipset=/.tparents.org/gfwlist -server=/.tpde.aide.gov.tw/127.0.0.1#5353 -ipset=/.tpde.aide.gov.tw/gfwlist -server=/.tphcc.gov.tw/127.0.0.1#5353 -ipset=/.tphcc.gov.tw/gfwlist -server=/.tpi.org.tw/127.0.0.1#5353 -ipset=/.tpi.org.tw/gfwlist -server=/.tracfone.com/127.0.0.1#5353 -ipset=/.tracfone.com/gfwlist -server=/.traffichaus.com/127.0.0.1#5353 -ipset=/.traffichaus.com/gfwlist -server=/.translate.google.cn/127.0.0.1#5353 -ipset=/.translate.google.cn/gfwlist -server=/.translate.googleapis.com/127.0.0.1#5353 -ipset=/.translate.googleapis.com/gfwlist -server=/.transparency.org/127.0.0.1#5353 -ipset=/.transparency.org/gfwlist -server=/.treemall.com.tw/127.0.0.1#5353 -ipset=/.treemall.com.tw/gfwlist -server=/.trendsmap.com/127.0.0.1#5353 -ipset=/.trendsmap.com/gfwlist -server=/.trialofccp.org/127.0.0.1#5353 -ipset=/.trialofccp.org/gfwlist -server=/.trickip.net/127.0.0.1#5353 -ipset=/.trickip.net/gfwlist -server=/.trickip.org/127.0.0.1#5353 -ipset=/.trickip.org/gfwlist -server=/.trimt-nsa.gov.tw/127.0.0.1#5353 -ipset=/.trimt-nsa.gov.tw/gfwlist -server=/.trouw.nl/127.0.0.1#5353 -ipset=/.trouw.nl/gfwlist -server=/.trt.net.tr/127.0.0.1#5353 -ipset=/.trt.net.tr/gfwlist -server=/.trtc.com.tw/127.0.0.1#5353 -ipset=/.trtc.com.tw/gfwlist -server=/.truebuddha-md.org/127.0.0.1#5353 -ipset=/.truebuddha-md.org/gfwlist -server=/.trulyergonomic.com/127.0.0.1#5353 -ipset=/.trulyergonomic.com/gfwlist -server=/.truth101.co.tv/127.0.0.1#5353 -ipset=/.truth101.co.tv/gfwlist -server=/.truthontour.org/127.0.0.1#5353 -ipset=/.truthontour.org/gfwlist -server=/.truveo.com/127.0.0.1#5353 -ipset=/.truveo.com/gfwlist -server=/.tryheart.jp/127.0.0.1#5353 -ipset=/.tryheart.jp/gfwlist -server=/.tsctv.net/127.0.0.1#5353 -ipset=/.tsctv.net/gfwlist -server=/.tsdr.uspto.gov/127.0.0.1#5353 -ipset=/.tsdr.uspto.gov/gfwlist -server=/.tsemtulku.com/127.0.0.1#5353 -ipset=/.tsemtulku.com/gfwlist -server=/.tsquare.tv/127.0.0.1#5353 -ipset=/.tsquare.tv/gfwlist -server=/.tsu.org.tw/127.0.0.1#5353 -ipset=/.tsu.org.tw/gfwlist -server=/.tsunagarumon.com/127.0.0.1#5353 -ipset=/.tsunagarumon.com/gfwlist -server=/.tt-rss.org/127.0.0.1#5353 -ipset=/.tt-rss.org/gfwlist -server=/.tt1069.com/127.0.0.1#5353 -ipset=/.tt1069.com/gfwlist -server=/.tttan.com/127.0.0.1#5353 -ipset=/.tttan.com/gfwlist -server=/.tu8964.com/127.0.0.1#5353 -ipset=/.tu8964.com/gfwlist -server=/.tubaholic.com/127.0.0.1#5353 -ipset=/.tubaholic.com/gfwlist -server=/.tube.com/127.0.0.1#5353 -ipset=/.tube.com/gfwlist -server=/.tube8.com/127.0.0.1#5353 -ipset=/.tube8.com/gfwlist -server=/.tube911.com/127.0.0.1#5353 -ipset=/.tube911.com/gfwlist -server=/.tubecup.com/127.0.0.1#5353 -ipset=/.tubecup.com/gfwlist -server=/.tubegals.com/127.0.0.1#5353 -ipset=/.tubegals.com/gfwlist -server=/.tubeislam.com/127.0.0.1#5353 -ipset=/.tubeislam.com/gfwlist -server=/.tubepornclassic.com/127.0.0.1#5353 -ipset=/.tubepornclassic.com/gfwlist -server=/.tubestack.com/127.0.0.1#5353 -ipset=/.tubestack.com/gfwlist -server=/.tubewolf.com/127.0.0.1#5353 -ipset=/.tubewolf.com/gfwlist -server=/.tui.orzdream.com/127.0.0.1#5353 -ipset=/.tui.orzdream.com/gfwlist -server=/.tuibeitu.net/127.0.0.1#5353 -ipset=/.tuibeitu.net/gfwlist -server=/.tuidang.net/127.0.0.1#5353 -ipset=/.tuidang.net/gfwlist -server=/.tuidang.org/127.0.0.1#5353 -ipset=/.tuidang.org/gfwlist -server=/.tuidang.se/127.0.0.1#5353 -ipset=/.tuidang.se/gfwlist -server=/.tuitwit.com/127.0.0.1#5353 -ipset=/.tuitwit.com/gfwlist -server=/.tumblr.com/127.0.0.1#5353 -ipset=/.tumblr.com/gfwlist -server=/.tumutanzi.com/127.0.0.1#5353 -ipset=/.tumutanzi.com/gfwlist -server=/.tumview.com/127.0.0.1#5353 -ipset=/.tumview.com/gfwlist -server=/.tunein.com/127.0.0.1#5353 -ipset=/.tunein.com/gfwlist -server=/.tunnelbear.com/127.0.0.1#5353 -ipset=/.tunnelbear.com/gfwlist -server=/.tunnelr.com/127.0.0.1#5353 -ipset=/.tunnelr.com/gfwlist -server=/.tuo8.blue/127.0.0.1#5353 -ipset=/.tuo8.blue/gfwlist -server=/.tuo8.cc/127.0.0.1#5353 -ipset=/.tuo8.cc/gfwlist -server=/.tuo8.club/127.0.0.1#5353 -ipset=/.tuo8.club/gfwlist -server=/.tuo8.fit/127.0.0.1#5353 -ipset=/.tuo8.fit/gfwlist -server=/.tuo8.hk/127.0.0.1#5353 -ipset=/.tuo8.hk/gfwlist -server=/.tuo8.in/127.0.0.1#5353 -ipset=/.tuo8.in/gfwlist -server=/.tuo8.ninja/127.0.0.1#5353 -ipset=/.tuo8.ninja/gfwlist -server=/.tuo8.org/127.0.0.1#5353 -ipset=/.tuo8.org/gfwlist -server=/.tuo8.pw/127.0.0.1#5353 -ipset=/.tuo8.pw/gfwlist -server=/.tuo8.red/127.0.0.1#5353 -ipset=/.tuo8.red/gfwlist -server=/.tuo8.space/127.0.0.1#5353 -ipset=/.tuo8.space/gfwlist -server=/.turansam.org/127.0.0.1#5353 -ipset=/.turansam.org/gfwlist -server=/.turbobit.net/127.0.0.1#5353 -ipset=/.turbobit.net/gfwlist -server=/.turbohide.com/127.0.0.1#5353 -ipset=/.turbohide.com/gfwlist -server=/.turbotwitter.com/127.0.0.1#5353 -ipset=/.turbotwitter.com/gfwlist -server=/.turntable.fm/127.0.0.1#5353 -ipset=/.turntable.fm/gfwlist -server=/.tushycash.com/127.0.0.1#5353 -ipset=/.tushycash.com/gfwlist -server=/.tuvpn.com/127.0.0.1#5353 -ipset=/.tuvpn.com/gfwlist -server=/.tuzaijidi.com/127.0.0.1#5353 -ipset=/.tuzaijidi.com/gfwlist -server=/.tv.com/127.0.0.1#5353 -ipset=/.tv.com/gfwlist -server=/.tvants.com/127.0.0.1#5353 -ipset=/.tvants.com/gfwlist -server=/.tvboxnow.com/127.0.0.1#5353 -ipset=/.tvboxnow.com/gfwlist -server=/.tvider.com/127.0.0.1#5353 -ipset=/.tvider.com/gfwlist -server=/.tvmost.com.hk/127.0.0.1#5353 -ipset=/.tvmost.com.hk/gfwlist -server=/.tvplayvideos.com/127.0.0.1#5353 -ipset=/.tvplayvideos.com/gfwlist -server=/.tvunetworks.com/127.0.0.1#5353 -ipset=/.tvunetworks.com/gfwlist -server=/.tw-blog.com/127.0.0.1#5353 -ipset=/.tw-blog.com/gfwlist -server=/.tw-npo.org/127.0.0.1#5353 -ipset=/.tw-npo.org/gfwlist -server=/.tw.answers.yahoo.com/127.0.0.1#5353 -ipset=/.tw.answers.yahoo.com/gfwlist -server=/.tw.bid.yahoo.com/127.0.0.1#5353 -ipset=/.tw.bid.yahoo.com/gfwlist -server=/.tw.gigacircle.com/127.0.0.1#5353 -ipset=/.tw.gigacircle.com/gfwlist -server=/.tw.hao123.com/127.0.0.1#5353 -ipset=/.tw.hao123.com/gfwlist -server=/.tw.jiepang.com/127.0.0.1#5353 -ipset=/.tw.jiepang.com/gfwlist -server=/.tw.knowledge.yahoo.com/127.0.0.1#5353 -ipset=/.tw.knowledge.yahoo.com/gfwlist -server=/.tw.mall.yahoo.com/127.0.0.1#5353 -ipset=/.tw.mall.yahoo.com/gfwlist -server=/.tw.mobi.yahoo.com/127.0.0.1#5353 -ipset=/.tw.mobi.yahoo.com/gfwlist -server=/.tw.money.yahoo.com/127.0.0.1#5353 -ipset=/.tw.money.yahoo.com/gfwlist -server=/.tw.myblog.yahoo.com/127.0.0.1#5353 -ipset=/.tw.myblog.yahoo.com/gfwlist -server=/.tw.news.yahoo.com/127.0.0.1#5353 -ipset=/.tw.news.yahoo.com/gfwlist -server=/.tw.streetvoice.com/127.0.0.1#5353 -ipset=/.tw.streetvoice.com/gfwlist -server=/.tw.tomonews.net/127.0.0.1#5353 -ipset=/.tw.tomonews.net/gfwlist -server=/.tw.voa.mobi/127.0.0.1#5353 -ipset=/.tw.voa.mobi/gfwlist -server=/.tw.yahoo.com/127.0.0.1#5353 -ipset=/.tw.yahoo.com/gfwlist -server=/.tw01.org/127.0.0.1#5353 -ipset=/.tw01.org/gfwlist -server=/.twaitter.com/127.0.0.1#5353 -ipset=/.twaitter.com/gfwlist -server=/.twapperkeeper.com/127.0.0.1#5353 -ipset=/.twapperkeeper.com/gfwlist -server=/.twaud.io/127.0.0.1#5353 -ipset=/.twaud.io/gfwlist -server=/.twavi.com/127.0.0.1#5353 -ipset=/.twavi.com/gfwlist -server=/.twbbs.net.tw/127.0.0.1#5353 -ipset=/.twbbs.net.tw/gfwlist -server=/.twbbs.org/127.0.0.1#5353 -ipset=/.twbbs.org/gfwlist -server=/.twbbs.tw/127.0.0.1#5353 -ipset=/.twbbs.tw/gfwlist -server=/.twblogger.com/127.0.0.1#5353 -ipset=/.twblogger.com/gfwlist -server=/.tweepguide.com/127.0.0.1#5353 -ipset=/.tweepguide.com/gfwlist -server=/.tweeplike.me/127.0.0.1#5353 -ipset=/.tweeplike.me/gfwlist -server=/.tweepmag.com/127.0.0.1#5353 -ipset=/.tweepmag.com/gfwlist -server=/.tweepml.org/127.0.0.1#5353 -ipset=/.tweepml.org/gfwlist -server=/.tweetbackup.com/127.0.0.1#5353 -ipset=/.tweetbackup.com/gfwlist -server=/.tweetboard.com/127.0.0.1#5353 -ipset=/.tweetboard.com/gfwlist -server=/.tweetboner.biz/127.0.0.1#5353 -ipset=/.tweetboner.biz/gfwlist -server=/.tweetcs.com/127.0.0.1#5353 -ipset=/.tweetcs.com/gfwlist -server=/.tweetdeck.com/127.0.0.1#5353 -ipset=/.tweetdeck.com/gfwlist -server=/.tweetedtimes.com/127.0.0.1#5353 -ipset=/.tweetedtimes.com/gfwlist -server=/.tweetmylast.fm/127.0.0.1#5353 -ipset=/.tweetmylast.fm/gfwlist -server=/.tweetphoto.com/127.0.0.1#5353 -ipset=/.tweetphoto.com/gfwlist -server=/.tweetrans.com/127.0.0.1#5353 -ipset=/.tweetrans.com/gfwlist -server=/.tweetree.com/127.0.0.1#5353 -ipset=/.tweetree.com/gfwlist -server=/.tweettunnel.com/127.0.0.1#5353 -ipset=/.tweettunnel.com/gfwlist -server=/.tweetwally.com/127.0.0.1#5353 -ipset=/.tweetwally.com/gfwlist -server=/.tweetymail.com/127.0.0.1#5353 -ipset=/.tweetymail.com/gfwlist -server=/.tweez.net/127.0.0.1#5353 -ipset=/.tweez.net/gfwlist -server=/.twelve.today/127.0.0.1#5353 -ipset=/.twelve.today/gfwlist -server=/.twerkingbutt.com/127.0.0.1#5353 -ipset=/.twerkingbutt.com/gfwlist -server=/.twftp.org/127.0.0.1#5353 -ipset=/.twftp.org/gfwlist -server=/.twgreatdaily.com/127.0.0.1#5353 -ipset=/.twgreatdaily.com/gfwlist -server=/.twibase.com/127.0.0.1#5353 -ipset=/.twibase.com/gfwlist -server=/.twibble.de/127.0.0.1#5353 -ipset=/.twibble.de/gfwlist -server=/.twibbon.com/127.0.0.1#5353 -ipset=/.twibbon.com/gfwlist -server=/.twibs.com/127.0.0.1#5353 -ipset=/.twibs.com/gfwlist -server=/.twicountry.org/127.0.0.1#5353 -ipset=/.twicountry.org/gfwlist -server=/.twicsy.com/127.0.0.1#5353 -ipset=/.twicsy.com/gfwlist -server=/.twiends.com/127.0.0.1#5353 -ipset=/.twiends.com/gfwlist -server=/.twifan.com/127.0.0.1#5353 -ipset=/.twifan.com/gfwlist -server=/.twiffo.com/127.0.0.1#5353 -ipset=/.twiffo.com/gfwlist -server=/.twiggit.org/127.0.0.1#5353 -ipset=/.twiggit.org/gfwlist -server=/.twilightsex.com/127.0.0.1#5353 -ipset=/.twilightsex.com/gfwlist -server=/.twilog.org/127.0.0.1#5353 -ipset=/.twilog.org/gfwlist -server=/.twimbow.com/127.0.0.1#5353 -ipset=/.twimbow.com/gfwlist -server=/.twimg.com/127.0.0.1#5353 -ipset=/.twimg.com/gfwlist -server=/.twindexx.com/127.0.0.1#5353 -ipset=/.twindexx.com/gfwlist -server=/.twip.me/127.0.0.1#5353 -ipset=/.twip.me/gfwlist -server=/.twipple.jp/127.0.0.1#5353 -ipset=/.twipple.jp/gfwlist -server=/.twishort.com/127.0.0.1#5353 -ipset=/.twishort.com/gfwlist -server=/.twistar.cc/127.0.0.1#5353 -ipset=/.twistar.cc/gfwlist -server=/.twister.net.co/127.0.0.1#5353 -ipset=/.twister.net.co/gfwlist -server=/.twisterio.com/127.0.0.1#5353 -ipset=/.twisterio.com/gfwlist -server=/.twisternow.com/127.0.0.1#5353 -ipset=/.twisternow.com/gfwlist -server=/.twistory.net/127.0.0.1#5353 -ipset=/.twistory.net/gfwlist -server=/.twit2d.com/127.0.0.1#5353 -ipset=/.twit2d.com/gfwlist -server=/.twitbrowser.net/127.0.0.1#5353 -ipset=/.twitbrowser.net/gfwlist -server=/.twitcause.com/127.0.0.1#5353 -ipset=/.twitcause.com/gfwlist -server=/.twitch.tv/127.0.0.1#5353 -ipset=/.twitch.tv/gfwlist -server=/.twitgether.com/127.0.0.1#5353 -ipset=/.twitgether.com/gfwlist -server=/.twitgoo.com/127.0.0.1#5353 -ipset=/.twitgoo.com/gfwlist -server=/.twitiq.com/127.0.0.1#5353 -ipset=/.twitiq.com/gfwlist -server=/.twitlonger.com/127.0.0.1#5353 -ipset=/.twitlonger.com/gfwlist -server=/.twitmania.com/127.0.0.1#5353 -ipset=/.twitmania.com/gfwlist -server=/.twitoaster.com/127.0.0.1#5353 -ipset=/.twitoaster.com/gfwlist -server=/.twitonmsn.com/127.0.0.1#5353 -ipset=/.twitonmsn.com/gfwlist -server=/.twitpic.com/127.0.0.1#5353 -ipset=/.twitpic.com/gfwlist -server=/.twitstat.com/127.0.0.1#5353 -ipset=/.twitstat.com/gfwlist -server=/.twittbot.net/127.0.0.1#5353 -ipset=/.twittbot.net/gfwlist -server=/.twitter.com/127.0.0.1#5353 -ipset=/.twitter.com/gfwlist -server=/.twitter.jp/127.0.0.1#5353 -ipset=/.twitter.jp/gfwlist -server=/.twitter4j.org/127.0.0.1#5353 -ipset=/.twitter4j.org/gfwlist -server=/.twittercounter.com/127.0.0.1#5353 -ipset=/.twittercounter.com/gfwlist -server=/.twitterfeed.com/127.0.0.1#5353 -ipset=/.twitterfeed.com/gfwlist -server=/.twittergadget.com/127.0.0.1#5353 -ipset=/.twittergadget.com/gfwlist -server=/.twitterkr.com/127.0.0.1#5353 -ipset=/.twitterkr.com/gfwlist -server=/.twittermail.com/127.0.0.1#5353 -ipset=/.twittermail.com/gfwlist -server=/.twitterrific.com/127.0.0.1#5353 -ipset=/.twitterrific.com/gfwlist -server=/.twittertim.es/127.0.0.1#5353 -ipset=/.twittertim.es/gfwlist -server=/.twitthat.com/127.0.0.1#5353 -ipset=/.twitthat.com/gfwlist -server=/.twitturk.com/127.0.0.1#5353 -ipset=/.twitturk.com/gfwlist -server=/.twitturly.com/127.0.0.1#5353 -ipset=/.twitturly.com/gfwlist -server=/.twitvid.com/127.0.0.1#5353 -ipset=/.twitvid.com/gfwlist -server=/.twitzap.com/127.0.0.1#5353 -ipset=/.twitzap.com/gfwlist -server=/.twiyia.com/127.0.0.1#5353 -ipset=/.twiyia.com/gfwlist -server=/.twnorth.org.tw/127.0.0.1#5353 -ipset=/.twnorth.org.tw/gfwlist -server=/.twskype.com/127.0.0.1#5353 -ipset=/.twskype.com/gfwlist -server=/.twstar.net/127.0.0.1#5353 -ipset=/.twstar.net/gfwlist -server=/.twt.tl/127.0.0.1#5353 -ipset=/.twt.tl/gfwlist -server=/.twtkr.com/127.0.0.1#5353 -ipset=/.twtkr.com/gfwlist -server=/.twtr2src.ogaoga.org/127.0.0.1#5353 -ipset=/.twtr2src.ogaoga.org/gfwlist -server=/.twtrland.com/127.0.0.1#5353 -ipset=/.twtrland.com/gfwlist -server=/.twttr.com/127.0.0.1#5353 -ipset=/.twttr.com/gfwlist -server=/.twurl.nl/127.0.0.1#5353 -ipset=/.twurl.nl/gfwlist -server=/.twyac.org/127.0.0.1#5353 -ipset=/.twyac.org/gfwlist -server=/.txxx.com/127.0.0.1#5353 -ipset=/.txxx.com/gfwlist -server=/.tycool.com/127.0.0.1#5353 -ipset=/.tycool.com/gfwlist -server=/.typepad.com/127.0.0.1#5353 -ipset=/.typepad.com/gfwlist -server=/.u9un.com/127.0.0.1#5353 -ipset=/.u9un.com/gfwlist -server=/.ub0.cc/127.0.0.1#5353 -ipset=/.ub0.cc/gfwlist -server=/.ubddns.org/127.0.0.1#5353 -ipset=/.ubddns.org/gfwlist -server=/.uberproxy.net/127.0.0.1#5353 -ipset=/.uberproxy.net/gfwlist -server=/.uc-japan.org/127.0.0.1#5353 -ipset=/.uc-japan.org/gfwlist -server=/.ucdc1998.org/127.0.0.1#5353 -ipset=/.ucdc1998.org/gfwlist -server=/.uderzo.it/127.0.0.1#5353 -ipset=/.uderzo.it/gfwlist -server=/.udn.com/127.0.0.1#5353 -ipset=/.udn.com/gfwlist -server=/.uforadio.com.tw/127.0.0.1#5353 -ipset=/.uforadio.com.tw/gfwlist -server=/.ufreevpn.com/127.0.0.1#5353 -ipset=/.ufreevpn.com/gfwlist -server=/.ugo.com/127.0.0.1#5353 -ipset=/.ugo.com/gfwlist -server=/.uhdwallpapers.org/127.0.0.1#5353 -ipset=/.uhdwallpapers.org/gfwlist -server=/.uhrp.org/127.0.0.1#5353 -ipset=/.uhrp.org/gfwlist -server=/.uighur.narod.ru/127.0.0.1#5353 -ipset=/.uighur.narod.ru/gfwlist -server=/.uighur.nl/127.0.0.1#5353 -ipset=/.uighur.nl/gfwlist -server=/.uighurbiz.net/127.0.0.1#5353 -ipset=/.uighurbiz.net/gfwlist -server=/.ukcdp.co.uk/127.0.0.1#5353 -ipset=/.ukcdp.co.uk/gfwlist -server=/.ukliferadio.co.uk/127.0.0.1#5353 -ipset=/.ukliferadio.co.uk/gfwlist -server=/.uku.im/127.0.0.1#5353 -ipset=/.uku.im/gfwlist -server=/.ulike.net/127.0.0.1#5353 -ipset=/.ulike.net/gfwlist -server=/.ulop.net/127.0.0.1#5353 -ipset=/.ulop.net/gfwlist -server=/.ultravpn.fr/127.0.0.1#5353 -ipset=/.ultravpn.fr/gfwlist -server=/.ultraxs.com/127.0.0.1#5353 -ipset=/.ultraxs.com/gfwlist -server=/.uluai.com.cn/127.0.0.1#5353 -ipset=/.uluai.com.cn/gfwlist -server=/.unblock-us.com/127.0.0.1#5353 -ipset=/.unblock-us.com/gfwlist -server=/.unblock.cn.com/127.0.0.1#5353 -ipset=/.unblock.cn.com/gfwlist -server=/.unblockdmm.com/127.0.0.1#5353 -ipset=/.unblockdmm.com/gfwlist -server=/.unblocker.yt/127.0.0.1#5353 -ipset=/.unblocker.yt/gfwlist -server=/.unblocksit.es/127.0.0.1#5353 -ipset=/.unblocksit.es/gfwlist -server=/.uncyclomedia.org/127.0.0.1#5353 -ipset=/.uncyclomedia.org/gfwlist -server=/.uncyclopedia.hk/127.0.0.1#5353 -ipset=/.uncyclopedia.hk/gfwlist -server=/.uncyclopedia.tw/127.0.0.1#5353 -ipset=/.uncyclopedia.tw/gfwlist -server=/.underwoodammo.com/127.0.0.1#5353 -ipset=/.underwoodammo.com/gfwlist -server=/.unholyknight.com/127.0.0.1#5353 -ipset=/.unholyknight.com/gfwlist -server=/.uni.cc/127.0.0.1#5353 -ipset=/.uni.cc/gfwlist -server=/.unification.net/127.0.0.1#5353 -ipset=/.unification.net/gfwlist -server=/.unification.org.tw/127.0.0.1#5353 -ipset=/.unification.org.tw/gfwlist -server=/.unirule.cloud/127.0.0.1#5353 -ipset=/.unirule.cloud/gfwlist -server=/.unitedsocialpress.com/127.0.0.1#5353 -ipset=/.unitedsocialpress.com/gfwlist -server=/.unix100.com/127.0.0.1#5353 -ipset=/.unix100.com/gfwlist -server=/.unknownspace.org/127.0.0.1#5353 -ipset=/.unknownspace.org/gfwlist -server=/.unodedos.com/127.0.0.1#5353 -ipset=/.unodedos.com/gfwlist -server=/.unpo.org/127.0.0.1#5353 -ipset=/.unpo.org/gfwlist -server=/.unseen.is/127.0.0.1#5353 -ipset=/.unseen.is/gfwlist -server=/.untraceable.us/127.0.0.1#5353 -ipset=/.untraceable.us/gfwlist -server=/.uocn.org/127.0.0.1#5353 -ipset=/.uocn.org/gfwlist -server=/.upcoming.yahoo.com/127.0.0.1#5353 -ipset=/.upcoming.yahoo.com/gfwlist -server=/.update.googleapis.com/127.0.0.1#5353 -ipset=/.update.googleapis.com/gfwlist -server=/.updates.tdesktop.com/127.0.0.1#5353 -ipset=/.updates.tdesktop.com/gfwlist -server=/.upholdjustice.org/127.0.0.1#5353 -ipset=/.upholdjustice.org/gfwlist -server=/.upload4u.info/127.0.0.1#5353 -ipset=/.upload4u.info/gfwlist -server=/.upmedia.mg/127.0.0.1#5353 -ipset=/.upmedia.mg/gfwlist -server=/.upornia.com/127.0.0.1#5353 -ipset=/.upornia.com/gfwlist -server=/.uproxy.org/127.0.0.1#5353 -ipset=/.uproxy.org/gfwlist -server=/.upwill.org/127.0.0.1#5353 -ipset=/.upwill.org/gfwlist -server=/.ur7s.com/127.0.0.1#5353 -ipset=/.ur7s.com/gfwlist -server=/.uraban.me/127.0.0.1#5353 -ipset=/.uraban.me/gfwlist -server=/.urbansurvival.com/127.0.0.1#5353 -ipset=/.urbansurvival.com/gfwlist -server=/.urchin.com/127.0.0.1#5353 -ipset=/.urchin.com/gfwlist -server=/.urlborg.com/127.0.0.1#5353 -ipset=/.urlborg.com/gfwlist -server=/.urlparser.com/127.0.0.1#5353 -ipset=/.urlparser.com/gfwlist -server=/.us.to/127.0.0.1#5353 -ipset=/.us.to/gfwlist -server=/.usacn.com/127.0.0.1#5353 -ipset=/.usacn.com/gfwlist -server=/.usaip.eu/127.0.0.1#5353 -ipset=/.usaip.eu/gfwlist -server=/.userapi.nytlog.com/127.0.0.1#5353 -ipset=/.userapi.nytlog.com/gfwlist -server=/.usfk.mil/127.0.0.1#5353 -ipset=/.usfk.mil/gfwlist -server=/.ushuarencity.echainhost.com/127.0.0.1#5353 -ipset=/.ushuarencity.echainhost.com/gfwlist -server=/.usinfo.state.gov/127.0.0.1#5353 -ipset=/.usinfo.state.gov/gfwlist -server=/.usma.edu/127.0.0.1#5353 -ipset=/.usma.edu/gfwlist -server=/.usmc.mil/127.0.0.1#5353 -ipset=/.usmc.mil/gfwlist -server=/.usno.navy.mil/127.0.0.1#5353 -ipset=/.usno.navy.mil/gfwlist -server=/.usocctn.com/127.0.0.1#5353 -ipset=/.usocctn.com/gfwlist -server=/.ustream.tv/127.0.0.1#5353 -ipset=/.ustream.tv/gfwlist -server=/.usunitednews.com/127.0.0.1#5353 -ipset=/.usunitednews.com/gfwlist -server=/.usus.cc/127.0.0.1#5353 -ipset=/.usus.cc/gfwlist -server=/.utopianpal.com/127.0.0.1#5353 -ipset=/.utopianpal.com/gfwlist -server=/.uu-gg.com/127.0.0.1#5353 -ipset=/.uu-gg.com/gfwlist -server=/.uvwxyz.xyz/127.0.0.1#5353 -ipset=/.uvwxyz.xyz/gfwlist -server=/.uwants.com/127.0.0.1#5353 -ipset=/.uwants.com/gfwlist -server=/.uwants.net/127.0.0.1#5353 -ipset=/.uwants.net/gfwlist -server=/.uyghur-j.org/127.0.0.1#5353 -ipset=/.uyghur-j.org/gfwlist -server=/.uyghur.co.uk/127.0.0.1#5353 -ipset=/.uyghur.co.uk/gfwlist -server=/.uyghuramerican.org/127.0.0.1#5353 -ipset=/.uyghuramerican.org/gfwlist -server=/.uyghurcanadiansociety.org/127.0.0.1#5353 -ipset=/.uyghurcanadiansociety.org/gfwlist -server=/.uyghurcongress.org/127.0.0.1#5353 -ipset=/.uyghurcongress.org/gfwlist -server=/.uyghurensemble.co.uk/127.0.0.1#5353 -ipset=/.uyghurensemble.co.uk/gfwlist -server=/.uyghurpen.org/127.0.0.1#5353 -ipset=/.uyghurpen.org/gfwlist -server=/.uyghurpress.com/127.0.0.1#5353 -ipset=/.uyghurpress.com/gfwlist -server=/.uyghurstudies.org/127.0.0.1#5353 -ipset=/.uyghurstudies.org/gfwlist -server=/.uygur.org/127.0.0.1#5353 -ipset=/.uygur.org/gfwlist -server=/.v2ex.com/127.0.0.1#5353 -ipset=/.v2ex.com/gfwlist -server=/.v2ray.com/127.0.0.1#5353 -ipset=/.v2ray.com/gfwlist -server=/.v6.facebook.com/127.0.0.1#5353 -ipset=/.v6.facebook.com/gfwlist -server=/.van001.com/127.0.0.1#5353 -ipset=/.van001.com/gfwlist -server=/.van698.com/127.0.0.1#5353 -ipset=/.van698.com/gfwlist -server=/.vanemu.cn/127.0.0.1#5353 -ipset=/.vanemu.cn/gfwlist -server=/.vanilla-jp.com/127.0.0.1#5353 -ipset=/.vanilla-jp.com/gfwlist -server=/.vanpeople.com/127.0.0.1#5353 -ipset=/.vanpeople.com/gfwlist -server=/.vansky.com/127.0.0.1#5353 -ipset=/.vansky.com/gfwlist -server=/.vatn.org/127.0.0.1#5353 -ipset=/.vatn.org/gfwlist -server=/.vcf-online.org/127.0.0.1#5353 -ipset=/.vcf-online.org/gfwlist -server=/.vcfbuilder.org/127.0.0.1#5353 -ipset=/.vcfbuilder.org/gfwlist -server=/.vegas.williamhill.com/127.0.0.1#5353 -ipset=/.vegas.williamhill.com/gfwlist -server=/.vegasred.com/127.0.0.1#5353 -ipset=/.vegasred.com/gfwlist -server=/.velkaepocha.sk/127.0.0.1#5353 -ipset=/.velkaepocha.sk/gfwlist -server=/.venbbs.com/127.0.0.1#5353 -ipset=/.venbbs.com/gfwlist -server=/.venchina.com/127.0.0.1#5353 -ipset=/.venchina.com/gfwlist -server=/.venetianmacao.com/127.0.0.1#5353 -ipset=/.venetianmacao.com/gfwlist -server=/.ventureswell.com/127.0.0.1#5353 -ipset=/.ventureswell.com/gfwlist -server=/.veoh.com/127.0.0.1#5353 -ipset=/.veoh.com/gfwlist -server=/.vermonttibet.org/127.0.0.1#5353 -ipset=/.vermonttibet.org/gfwlist -server=/.versavpn.com/127.0.0.1#5353 -ipset=/.versavpn.com/gfwlist -server=/.verybs.com/127.0.0.1#5353 -ipset=/.verybs.com/gfwlist -server=/.vevo.com/127.0.0.1#5353 -ipset=/.vevo.com/gfwlist -server=/.vft.com.tw/127.0.0.1#5353 -ipset=/.vft.com.tw/gfwlist -server=/.vghks.gov.tw/127.0.0.1#5353 -ipset=/.vghks.gov.tw/gfwlist -server=/.vghtc.gov.tw/127.0.0.1#5353 -ipset=/.vghtc.gov.tw/gfwlist -server=/.vghtpe.gov.tw/127.0.0.1#5353 -ipset=/.vghtpe.gov.tw/gfwlist -server=/.viber.com/127.0.0.1#5353 -ipset=/.viber.com/gfwlist -server=/.vica.info/127.0.0.1#5353 -ipset=/.vica.info/gfwlist -server=/.victimsofcommunism.org/127.0.0.1#5353 -ipset=/.victimsofcommunism.org/gfwlist -server=/.vid.me/127.0.0.1#5353 -ipset=/.vid.me/gfwlist -server=/.vidble.com/127.0.0.1#5353 -ipset=/.vidble.com/gfwlist -server=/.video.aol.com/127.0.0.1#5353 -ipset=/.video.aol.com/gfwlist -server=/.video.ap.org/127.0.0.1#5353 -ipset=/.video.ap.org/gfwlist -server=/.video.fdbox.com/127.0.0.1#5353 -ipset=/.video.fdbox.com/gfwlist -server=/.video.foxbusiness.com/127.0.0.1#5353 -ipset=/.video.foxbusiness.com/gfwlist -server=/.video.pbs.org/127.0.0.1#5353 -ipset=/.video.pbs.org/gfwlist -server=/.video.yahoo.com/127.0.0.1#5353 -ipset=/.video.yahoo.com/gfwlist -server=/.videobam.com/127.0.0.1#5353 -ipset=/.videobam.com/gfwlist -server=/.videodetective.com/127.0.0.1#5353 -ipset=/.videodetective.com/gfwlist -server=/.videomega.tv/127.0.0.1#5353 -ipset=/.videomega.tv/gfwlist -server=/.videomo.com/127.0.0.1#5353 -ipset=/.videomo.com/gfwlist -server=/.videopediaworld.com/127.0.0.1#5353 -ipset=/.videopediaworld.com/gfwlist -server=/.videopress.com/127.0.0.1#5353 -ipset=/.videopress.com/gfwlist -server=/.vietdaikynguyen.com/127.0.0.1#5353 -ipset=/.vietdaikynguyen.com/gfwlist -server=/.vijayatemple.org/127.0.0.1#5353 -ipset=/.vijayatemple.org/gfwlist -server=/.vimeo.com/127.0.0.1#5353 -ipset=/.vimeo.com/gfwlist -server=/.vimperator.org/127.0.0.1#5353 -ipset=/.vimperator.org/gfwlist -server=/.vincnd.com/127.0.0.1#5353 -ipset=/.vincnd.com/gfwlist -server=/.vine.co/127.0.0.1#5353 -ipset=/.vine.co/gfwlist -server=/.vinniev.com/127.0.0.1#5353 -ipset=/.vinniev.com/gfwlist -server=/.vip-enterprise.com/127.0.0.1#5353 -ipset=/.vip-enterprise.com/gfwlist -server=/.virtualrealporn.com/127.0.0.1#5353 -ipset=/.virtualrealporn.com/gfwlist -server=/.visibletweets.com/127.0.0.1#5353 -ipset=/.visibletweets.com/gfwlist -server=/.vital247.org/127.0.0.1#5353 -ipset=/.vital247.org/gfwlist -server=/.viu.com/127.0.0.1#5353 -ipset=/.viu.com/gfwlist -server=/.vivahentai4u.net/127.0.0.1#5353 -ipset=/.vivahentai4u.net/gfwlist -server=/.vivatube.com/127.0.0.1#5353 -ipset=/.vivatube.com/gfwlist -server=/.vivthomas.com/127.0.0.1#5353 -ipset=/.vivthomas.com/gfwlist -server=/.vizvaz.com/127.0.0.1#5353 -ipset=/.vizvaz.com/gfwlist -server=/.vjav.com/127.0.0.1#5353 -ipset=/.vjav.com/gfwlist -server=/.vjmedia.com.hk/127.0.0.1#5353 -ipset=/.vjmedia.com.hk/gfwlist -server=/.vllcs.org/127.0.0.1#5353 -ipset=/.vllcs.org/gfwlist -server=/.vlog.xuite.net/127.0.0.1#5353 -ipset=/.vlog.xuite.net/gfwlist -server=/.vmixcore.com/127.0.0.1#5353 -ipset=/.vmixcore.com/gfwlist -server=/.vmpsoft.com/127.0.0.1#5353 -ipset=/.vmpsoft.com/gfwlist -server=/.vn.hao123.com/127.0.0.1#5353 -ipset=/.vn.hao123.com/gfwlist -server=/.vnet.link/127.0.0.1#5353 -ipset=/.vnet.link/gfwlist -server=/.voa-11.akacast.akamaistream.net/127.0.0.1#5353 -ipset=/.voa-11.akacast.akamaistream.net/gfwlist -server=/.voacantonese.com/127.0.0.1#5353 -ipset=/.voacantonese.com/gfwlist -server=/.voachinese.com/127.0.0.1#5353 -ipset=/.voachinese.com/gfwlist -server=/.voachineseblog.com/127.0.0.1#5353 -ipset=/.voachineseblog.com/gfwlist -server=/.voagd.com/127.0.0.1#5353 -ipset=/.voagd.com/gfwlist -server=/.voanews.com/127.0.0.1#5353 -ipset=/.voanews.com/gfwlist -server=/.voatibetan.com/127.0.0.1#5353 -ipset=/.voatibetan.com/gfwlist -server=/.voatibetanenglish.com/127.0.0.1#5353 -ipset=/.voatibetanenglish.com/gfwlist -server=/.vocativ.com/127.0.0.1#5353 -ipset=/.vocativ.com/gfwlist -server=/.vocn.tv/127.0.0.1#5353 -ipset=/.vocn.tv/gfwlist -server=/.vod-abematv.akamaized.net/127.0.0.1#5353 -ipset=/.vod-abematv.akamaized.net/gfwlist -server=/.vod.wwe.com/127.0.0.1#5353 -ipset=/.vod.wwe.com/gfwlist -server=/.vot.org/127.0.0.1#5353 -ipset=/.vot.org/gfwlist -server=/.vovo2000.com/127.0.0.1#5353 -ipset=/.vovo2000.com/gfwlist -server=/.voxer.com/127.0.0.1#5353 -ipset=/.voxer.com/gfwlist -server=/.voy.com/127.0.0.1#5353 -ipset=/.voy.com/gfwlist -server=/.vpn.ac/127.0.0.1#5353 -ipset=/.vpn.ac/gfwlist -server=/.vpn.cjb.net/127.0.0.1#5353 -ipset=/.vpn.cjb.net/gfwlist -server=/.vpn.cmu.edu/127.0.0.1#5353 -ipset=/.vpn.cmu.edu/gfwlist -server=/.vpn.sv.cmu.edu/127.0.0.1#5353 -ipset=/.vpn.sv.cmu.edu/gfwlist -server=/.vpn4all.com/127.0.0.1#5353 -ipset=/.vpn4all.com/gfwlist -server=/.vpnaccount.org/127.0.0.1#5353 -ipset=/.vpnaccount.org/gfwlist -server=/.vpnaccounts.com/127.0.0.1#5353 -ipset=/.vpnaccounts.com/gfwlist -server=/.vpnbook.com/127.0.0.1#5353 -ipset=/.vpnbook.com/gfwlist -server=/.vpncomparison.org/127.0.0.1#5353 -ipset=/.vpncomparison.org/gfwlist -server=/.vpncoupons.com/127.0.0.1#5353 -ipset=/.vpncoupons.com/gfwlist -server=/.vpncup.com/127.0.0.1#5353 -ipset=/.vpncup.com/gfwlist -server=/.vpndada.com/127.0.0.1#5353 -ipset=/.vpndada.com/gfwlist -server=/.vpnfan.com/127.0.0.1#5353 -ipset=/.vpnfan.com/gfwlist -server=/.vpnfire.com/127.0.0.1#5353 -ipset=/.vpnfire.com/gfwlist -server=/.vpnfires.biz/127.0.0.1#5353 -ipset=/.vpnfires.biz/gfwlist -server=/.vpnforgame.net/127.0.0.1#5353 -ipset=/.vpnforgame.net/gfwlist -server=/.vpngate.jp/127.0.0.1#5353 -ipset=/.vpngate.jp/gfwlist -server=/.vpngate.net/127.0.0.1#5353 -ipset=/.vpngate.net/gfwlist -server=/.vpngratis.net/127.0.0.1#5353 -ipset=/.vpngratis.net/gfwlist -server=/.vpnhq.com/127.0.0.1#5353 -ipset=/.vpnhq.com/gfwlist -server=/.vpninja.net/127.0.0.1#5353 -ipset=/.vpninja.net/gfwlist -server=/.vpnintouch.com/127.0.0.1#5353 -ipset=/.vpnintouch.com/gfwlist -server=/.vpnintouch.net/127.0.0.1#5353 -ipset=/.vpnintouch.net/gfwlist -server=/.vpnjack.com/127.0.0.1#5353 -ipset=/.vpnjack.com/gfwlist -server=/.vpnmaster.com/127.0.0.1#5353 -ipset=/.vpnmaster.com/gfwlist -server=/.vpnmentor.com/127.0.0.1#5353 -ipset=/.vpnmentor.com/gfwlist -server=/.vpnpick.com/127.0.0.1#5353 -ipset=/.vpnpick.com/gfwlist -server=/.vpnpop.com/127.0.0.1#5353 -ipset=/.vpnpop.com/gfwlist -server=/.vpnpronet.com/127.0.0.1#5353 -ipset=/.vpnpronet.com/gfwlist -server=/.vpnreactor.com/127.0.0.1#5353 -ipset=/.vpnreactor.com/gfwlist -server=/.vpnreviewz.com/127.0.0.1#5353 -ipset=/.vpnreviewz.com/gfwlist -server=/.vpnsecure.me/127.0.0.1#5353 -ipset=/.vpnsecure.me/gfwlist -server=/.vpnshazam.com/127.0.0.1#5353 -ipset=/.vpnshazam.com/gfwlist -server=/.vpnshieldapp.com/127.0.0.1#5353 -ipset=/.vpnshieldapp.com/gfwlist -server=/.vpnsp.com/127.0.0.1#5353 -ipset=/.vpnsp.com/gfwlist -server=/.vpntraffic.com/127.0.0.1#5353 -ipset=/.vpntraffic.com/gfwlist -server=/.vpntunnel.com/127.0.0.1#5353 -ipset=/.vpntunnel.com/gfwlist -server=/.vpnuk.info/127.0.0.1#5353 -ipset=/.vpnuk.info/gfwlist -server=/.vpnunlimitedapp.com/127.0.0.1#5353 -ipset=/.vpnunlimitedapp.com/gfwlist -server=/.vpnvip.com/127.0.0.1#5353 -ipset=/.vpnvip.com/gfwlist -server=/.vpnworldwide.com/127.0.0.1#5353 -ipset=/.vpnworldwide.com/gfwlist -server=/.vporn.com/127.0.0.1#5353 -ipset=/.vporn.com/gfwlist -server=/.vpser.net/127.0.0.1#5353 -ipset=/.vpser.net/gfwlist -server=/.vraiesagesse.net/127.0.0.1#5353 -ipset=/.vraiesagesse.net/gfwlist -server=/.vrmtr.com/127.0.0.1#5353 -ipset=/.vrmtr.com/gfwlist -server=/.vrsmash.com/127.0.0.1#5353 -ipset=/.vrsmash.com/gfwlist -server=/.vtunnel.com/127.0.0.1#5353 -ipset=/.vtunnel.com/gfwlist -server=/.vuku.cc/127.0.0.1#5353 -ipset=/.vuku.cc/gfwlist -server=/.w3schools.com/127.0.0.1#5353 -ipset=/.w3schools.com/gfwlist -server=/.waffle1999.com/127.0.0.1#5353 -ipset=/.waffle1999.com/gfwlist -server=/.wahas.com/127.0.0.1#5353 -ipset=/.wahas.com/gfwlist -server=/.waigaobu.com/127.0.0.1#5353 -ipset=/.waigaobu.com/gfwlist -server=/.wailaike.net/127.0.0.1#5353 -ipset=/.wailaike.net/gfwlist -server=/.waiwaier.com/127.0.0.1#5353 -ipset=/.waiwaier.com/gfwlist -server=/.wallmama.com/127.0.0.1#5353 -ipset=/.wallmama.com/gfwlist -server=/.wallornot.org/127.0.0.1#5353 -ipset=/.wallornot.org/gfwlist -server=/.wallpapercasa.com/127.0.0.1#5353 -ipset=/.wallpapercasa.com/gfwlist -server=/.wallproxy.com/127.0.0.1#5353 -ipset=/.wallproxy.com/gfwlist -server=/.waltermartin.com/127.0.0.1#5353 -ipset=/.waltermartin.com/gfwlist -server=/.waltermartin.org/127.0.0.1#5353 -ipset=/.waltermartin.org/gfwlist -server=/.wanderinghorse.net/127.0.0.1#5353 -ipset=/.wanderinghorse.net/gfwlist -server=/.wanfang.gov.tw/127.0.0.1#5353 -ipset=/.wanfang.gov.tw/gfwlist -server=/.wangafu.net/127.0.0.1#5353 -ipset=/.wangafu.net/gfwlist -server=/.wangjinbo.org/127.0.0.1#5353 -ipset=/.wangjinbo.org/gfwlist -server=/.wanglixiong.com/127.0.0.1#5353 -ipset=/.wanglixiong.com/gfwlist -server=/.wango.org/127.0.0.1#5353 -ipset=/.wango.org/gfwlist -server=/.wangruoshui.net/127.0.0.1#5353 -ipset=/.wangruoshui.net/gfwlist -server=/.want-daily.com/127.0.0.1#5353 -ipset=/.want-daily.com/gfwlist -server=/.wanz-factory.com/127.0.0.1#5353 -ipset=/.wanz-factory.com/gfwlist -server=/.warbler.iconfactory.net/127.0.0.1#5353 -ipset=/.warbler.iconfactory.net/gfwlist -server=/.waselpro.com/127.0.0.1#5353 -ipset=/.waselpro.com/gfwlist -server=/.washeng.net/127.0.0.1#5353 -ipset=/.washeng.net/gfwlist -server=/.watch8x.com/127.0.0.1#5353 -ipset=/.watch8x.com/gfwlist -server=/.watchinese.com/127.0.0.1#5353 -ipset=/.watchinese.com/gfwlist -server=/.watchmygf.net/127.0.0.1#5353 -ipset=/.watchmygf.net/gfwlist -server=/.wattpad.com/127.0.0.1#5353 -ipset=/.wattpad.com/gfwlist -server=/.wav.tv/127.0.0.1#5353 -ipset=/.wav.tv/gfwlist -server=/.waveprotocol.org/127.0.0.1#5353 -ipset=/.waveprotocol.org/gfwlist -server=/.waymo.com/127.0.0.1#5353 -ipset=/.waymo.com/gfwlist -server=/.wda.gov.tw/127.0.0.1#5353 -ipset=/.wda.gov.tw/gfwlist -server=/.wdf5.com/127.0.0.1#5353 -ipset=/.wdf5.com/gfwlist -server=/.wearehairy.com/127.0.0.1#5353 -ipset=/.wearehairy.com/gfwlist -server=/.wearn.com/127.0.0.1#5353 -ipset=/.wearn.com/gfwlist -server=/.web2project.net/127.0.0.1#5353 -ipset=/.web2project.net/gfwlist -server=/.webbang.net/127.0.0.1#5353 -ipset=/.webbang.net/gfwlist -server=/.webevader.org/127.0.0.1#5353 -ipset=/.webevader.org/gfwlist -server=/.webfreer.com/127.0.0.1#5353 -ipset=/.webfreer.com/gfwlist -server=/.webjb.org/127.0.0.1#5353 -ipset=/.webjb.org/gfwlist -server=/.weblagu.com/127.0.0.1#5353 -ipset=/.weblagu.com/gfwlist -server=/.webmproject.org/127.0.0.1#5353 -ipset=/.webmproject.org/gfwlist -server=/.webrtc.org/127.0.0.1#5353 -ipset=/.webrtc.org/gfwlist -server=/.webrush.net/127.0.0.1#5353 -ipset=/.webrush.net/gfwlist -server=/.webs-tv.net/127.0.0.1#5353 -ipset=/.webs-tv.net/gfwlist -server=/.website.informer.com/127.0.0.1#5353 -ipset=/.website.informer.com/gfwlist -server=/.webwarper.net/127.0.0.1#5353 -ipset=/.webwarper.net/gfwlist -server=/.webworkerdaily.com/127.0.0.1#5353 -ipset=/.webworkerdaily.com/gfwlist -server=/.weekmag.info/127.0.0.1#5353 -ipset=/.weekmag.info/gfwlist -server=/.wefightcensorship.org/127.0.0.1#5353 -ipset=/.wefightcensorship.org/gfwlist -server=/.wefong.com/127.0.0.1#5353 -ipset=/.wefong.com/gfwlist -server=/.wego.here.com/127.0.0.1#5353 -ipset=/.wego.here.com/gfwlist -server=/.weiboleak.com/127.0.0.1#5353 -ipset=/.weiboleak.com/gfwlist -server=/.weiboscope.jmsc.hku.hk/127.0.0.1#5353 -ipset=/.weiboscope.jmsc.hku.hk/gfwlist -server=/.weihuo.org/127.0.0.1#5353 -ipset=/.weihuo.org/gfwlist -server=/.weijingsheng.org/127.0.0.1#5353 -ipset=/.weijingsheng.org/gfwlist -server=/.weiming.info/127.0.0.1#5353 -ipset=/.weiming.info/gfwlist -server=/.weiquanwang.org/127.0.0.1#5353 -ipset=/.weiquanwang.org/gfwlist -server=/.weisuo.ws/127.0.0.1#5353 -ipset=/.weisuo.ws/gfwlist -server=/.welovecock.com/127.0.0.1#5353 -ipset=/.welovecock.com/gfwlist -server=/.wemigrate.org/127.0.0.1#5353 -ipset=/.wemigrate.org/gfwlist -server=/.wengewang.com/127.0.0.1#5353 -ipset=/.wengewang.com/gfwlist -server=/.wengewang.org/127.0.0.1#5353 -ipset=/.wengewang.org/gfwlist -server=/.wenhui.ch/127.0.0.1#5353 -ipset=/.wenhui.ch/gfwlist -server=/.wenxuecity.com/127.0.0.1#5353 -ipset=/.wenxuecity.com/gfwlist -server=/.wenyunchao.com/127.0.0.1#5353 -ipset=/.wenyunchao.com/gfwlist -server=/.wenzhao.ca/127.0.0.1#5353 -ipset=/.wenzhao.ca/gfwlist -server=/.westca.com/127.0.0.1#5353 -ipset=/.westca.com/gfwlist -server=/.westernshugdensociety.org/127.0.0.1#5353 -ipset=/.westernshugdensociety.org/gfwlist -server=/.westernwolves.com/127.0.0.1#5353 -ipset=/.westernwolves.com/gfwlist -server=/.westkit.net/127.0.0.1#5353 -ipset=/.westkit.net/gfwlist -server=/.westpoint.edu/127.0.0.1#5353 -ipset=/.westpoint.edu/gfwlist -server=/.wetplace.com/127.0.0.1#5353 -ipset=/.wetplace.com/gfwlist -server=/.wetpussygames.com/127.0.0.1#5353 -ipset=/.wetpussygames.com/gfwlist -server=/.wexiaobo.org/127.0.0.1#5353 -ipset=/.wexiaobo.org/gfwlist -server=/.wezhiyong.org/127.0.0.1#5353 -ipset=/.wezhiyong.org/gfwlist -server=/.wezone.net/127.0.0.1#5353 -ipset=/.wezone.net/gfwlist -server=/.wforum.com/127.0.0.1#5353 -ipset=/.wforum.com/gfwlist -server=/.wha.la/127.0.0.1#5353 -ipset=/.wha.la/gfwlist -server=/.whatblocked.com/127.0.0.1#5353 -ipset=/.whatblocked.com/gfwlist -server=/.whatbrowser.org/127.0.0.1#5353 -ipset=/.whatbrowser.org/gfwlist -server=/.whatsapp.com/127.0.0.1#5353 -ipset=/.whatsapp.com/gfwlist -server=/.whatsapp.net/127.0.0.1#5353 -ipset=/.whatsapp.net/gfwlist -server=/.wheatseeds.org/127.0.0.1#5353 -ipset=/.wheatseeds.org/gfwlist -server=/.wheelockslatin.com/127.0.0.1#5353 -ipset=/.wheelockslatin.com/gfwlist -server=/.whereiswerner.com/127.0.0.1#5353 -ipset=/.whereiswerner.com/gfwlist -server=/.wheretowatch.com/127.0.0.1#5353 -ipset=/.wheretowatch.com/gfwlist -server=/.whippedass.com/127.0.0.1#5353 -ipset=/.whippedass.com/gfwlist -server=/.whitebear.freebearblog.org/127.0.0.1#5353 -ipset=/.whitebear.freebearblog.org/gfwlist -server=/.whodns.xyz/127.0.0.1#5353 -ipset=/.whodns.xyz/gfwlist -server=/.whoer.net/127.0.0.1#5353 -ipset=/.whoer.net/gfwlist -server=/.whotalking.com/127.0.0.1#5353 -ipset=/.whotalking.com/gfwlist -server=/.whylover.com/127.0.0.1#5353 -ipset=/.whylover.com/gfwlist -server=/.whyx.org/127.0.0.1#5353 -ipset=/.whyx.org/gfwlist -server=/.widevine.com/127.0.0.1#5353 -ipset=/.widevine.com/gfwlist -server=/.wikaba.com/127.0.0.1#5353 -ipset=/.wikaba.com/gfwlist -server=/.wiki.cnitter.com/127.0.0.1#5353 -ipset=/.wiki.cnitter.com/gfwlist -server=/.wiki.gamerp.jp/127.0.0.1#5353 -ipset=/.wiki.gamerp.jp/gfwlist -server=/.wiki.jqueryui.com/127.0.0.1#5353 -ipset=/.wiki.jqueryui.com/gfwlist -server=/.wiki.moegirl.org/127.0.0.1#5353 -ipset=/.wiki.moegirl.org/gfwlist -server=/.wiki.oauth.net/127.0.0.1#5353 -ipset=/.wiki.oauth.net/gfwlist -server=/.wiki.phonegap.com/127.0.0.1#5353 -ipset=/.wiki.phonegap.com/gfwlist -server=/.wikileaks-forum.com/127.0.0.1#5353 -ipset=/.wikileaks-forum.com/gfwlist -server=/.wikileaks.ch/127.0.0.1#5353 -ipset=/.wikileaks.ch/gfwlist -server=/.wikileaks.com/127.0.0.1#5353 -ipset=/.wikileaks.com/gfwlist -server=/.wikileaks.de/127.0.0.1#5353 -ipset=/.wikileaks.de/gfwlist -server=/.wikileaks.eu/127.0.0.1#5353 -ipset=/.wikileaks.eu/gfwlist -server=/.wikileaks.lu/127.0.0.1#5353 -ipset=/.wikileaks.lu/gfwlist -server=/.wikileaks.org/127.0.0.1#5353 -ipset=/.wikileaks.org/gfwlist -server=/.wikileaks.pl/127.0.0.1#5353 -ipset=/.wikileaks.pl/gfwlist -server=/.wikimapia.org/127.0.0.1#5353 -ipset=/.wikimapia.org/gfwlist -server=/.wikiwiki.jp/127.0.0.1#5353 -ipset=/.wikiwiki.jp/gfwlist -server=/.wildammo.com/127.0.0.1#5353 -ipset=/.wildammo.com/gfwlist -server=/.williamhill.com/127.0.0.1#5353 -ipset=/.williamhill.com/gfwlist -server=/.willw.net/127.0.0.1#5353 -ipset=/.willw.net/gfwlist -server=/.windowsphoneme.com/127.0.0.1#5353 -ipset=/.windowsphoneme.com/gfwlist -server=/.windscribe.com/127.0.0.1#5353 -ipset=/.windscribe.com/gfwlist -server=/.wingamestore.com/127.0.0.1#5353 -ipset=/.wingamestore.com/gfwlist -server=/.wingy.site/127.0.0.1#5353 -ipset=/.wingy.site/gfwlist -server=/.winning11.com/127.0.0.1#5353 -ipset=/.winning11.com/gfwlist -server=/.winwhispers.info/127.0.0.1#5353 -ipset=/.winwhispers.info/gfwlist -server=/.wire.com/127.0.0.1#5353 -ipset=/.wire.com/gfwlist -server=/.wiredbytes.com/127.0.0.1#5353 -ipset=/.wiredbytes.com/gfwlist -server=/.wiredpen.com/127.0.0.1#5353 -ipset=/.wiredpen.com/gfwlist -server=/.wisdompubs.org/127.0.0.1#5353 -ipset=/.wisdompubs.org/gfwlist -server=/.wisevid.com/127.0.0.1#5353 -ipset=/.wisevid.com/gfwlist -server=/.withgoogle.com/127.0.0.1#5353 -ipset=/.withgoogle.com/gfwlist -server=/.withyoutube.com/127.0.0.1#5353 -ipset=/.withyoutube.com/gfwlist -server=/.witnessleeteaching.com/127.0.0.1#5353 -ipset=/.witnessleeteaching.com/gfwlist -server=/.witopia.net/127.0.0.1#5353 -ipset=/.witopia.net/gfwlist -server=/.wizcrafts.net/127.0.0.1#5353 -ipset=/.wizcrafts.net/gfwlist -server=/.wjbk.org/127.0.0.1#5353 -ipset=/.wjbk.org/gfwlist -server=/.wlcnew.jigsy.com/127.0.0.1#5353 -ipset=/.wlcnew.jigsy.com/gfwlist -server=/.wlx.sowiki.net/127.0.0.1#5353 -ipset=/.wlx.sowiki.net/gfwlist -server=/.wn.com/127.0.0.1#5353 -ipset=/.wn.com/gfwlist -server=/.wnacg.com/127.0.0.1#5353 -ipset=/.wnacg.com/gfwlist -server=/.wnacg.org/127.0.0.1#5353 -ipset=/.wnacg.org/gfwlist -server=/.wo.tc/127.0.0.1#5353 -ipset=/.wo.tc/gfwlist -server=/.wo3ttt.wordpress.com/127.0.0.1#5353 -ipset=/.wo3ttt.wordpress.com/gfwlist -server=/.woeser.com/127.0.0.1#5353 -ipset=/.woeser.com/gfwlist -server=/.wokar.org/127.0.0.1#5353 -ipset=/.wokar.org/gfwlist -server=/.wolfax.com/127.0.0.1#5353 -ipset=/.wolfax.com/gfwlist -server=/.woolyss.com/127.0.0.1#5353 -ipset=/.woolyss.com/gfwlist -server=/.woopie.jp/127.0.0.1#5353 -ipset=/.woopie.jp/gfwlist -server=/.woopie.tv/127.0.0.1#5353 -ipset=/.woopie.tv/gfwlist -server=/.wordpress.com/127.0.0.1#5353 -ipset=/.wordpress.com/gfwlist -server=/.workatruna.com/127.0.0.1#5353 -ipset=/.workatruna.com/gfwlist -server=/.workerdemo.org.hk/127.0.0.1#5353 -ipset=/.workerdemo.org.hk/gfwlist -server=/.workersthebig.net/127.0.0.1#5353 -ipset=/.workersthebig.net/gfwlist -server=/.workspace.v2ex.com/127.0.0.1#5353 -ipset=/.workspace.v2ex.com/gfwlist -server=/.worldcat.org/127.0.0.1#5353 -ipset=/.worldcat.org/gfwlist -server=/.worldjournal.com/127.0.0.1#5353 -ipset=/.worldjournal.com/gfwlist -server=/.worldvpn.net/127.0.0.1#5353 -ipset=/.worldvpn.net/gfwlist -server=/.wow-life.net/127.0.0.1#5353 -ipset=/.wow-life.net/gfwlist -server=/.wow.com/127.0.0.1#5353 -ipset=/.wow.com/gfwlist -server=/.wowgirls.com/127.0.0.1#5353 -ipset=/.wowgirls.com/gfwlist -server=/.wowlegacy.ml/127.0.0.1#5353 -ipset=/.wowlegacy.ml/gfwlist -server=/.wowporn.com/127.0.0.1#5353 -ipset=/.wowporn.com/gfwlist -server=/.wowrk.com/127.0.0.1#5353 -ipset=/.wowrk.com/gfwlist -server=/.woxinghuiguo.com/127.0.0.1#5353 -ipset=/.woxinghuiguo.com/gfwlist -server=/.woyaolian.org/127.0.0.1#5353 -ipset=/.woyaolian.org/gfwlist -server=/.wozy.in/127.0.0.1#5353 -ipset=/.wozy.in/gfwlist -server=/.wp.com/127.0.0.1#5353 -ipset=/.wp.com/gfwlist -server=/.wpoforum.com/127.0.0.1#5353 -ipset=/.wpoforum.com/gfwlist -server=/.wqyd.org/127.0.0.1#5353 -ipset=/.wqyd.org/gfwlist -server=/.wrchina.org/127.0.0.1#5353 -ipset=/.wrchina.org/gfwlist -server=/.wretch.cc/127.0.0.1#5353 -ipset=/.wretch.cc/gfwlist -server=/.writer.zoho.com/127.0.0.1#5353 -ipset=/.writer.zoho.com/gfwlist -server=/.wsgzao.github.io/127.0.0.1#5353 -ipset=/.wsgzao.github.io/gfwlist -server=/.wsj.com/127.0.0.1#5353 -ipset=/.wsj.com/gfwlist -server=/.wsj.net/127.0.0.1#5353 -ipset=/.wsj.net/gfwlist -server=/.wsjhk.com/127.0.0.1#5353 -ipset=/.wsjhk.com/gfwlist -server=/.wtbn.org/127.0.0.1#5353 -ipset=/.wtbn.org/gfwlist -server=/.wtfpeople.com/127.0.0.1#5353 -ipset=/.wtfpeople.com/gfwlist -server=/.wuerkaixi.com/127.0.0.1#5353 -ipset=/.wuerkaixi.com/gfwlist -server=/.wufafangwen.com/127.0.0.1#5353 -ipset=/.wufafangwen.com/gfwlist -server=/.wufi.org.tw/127.0.0.1#5353 -ipset=/.wufi.org.tw/gfwlist -server=/.wuguoguang.com/127.0.0.1#5353 -ipset=/.wuguoguang.com/gfwlist -server=/.wujie.net/127.0.0.1#5353 -ipset=/.wujie.net/gfwlist -server=/.wujieliulan.com/127.0.0.1#5353 -ipset=/.wujieliulan.com/gfwlist -server=/.wukangrui.net/127.0.0.1#5353 -ipset=/.wukangrui.net/gfwlist -server=/.wuu.wikipedia.org/127.0.0.1#5353 -ipset=/.wuu.wikipedia.org/gfwlist -server=/.wuw.red/127.0.0.1#5353 -ipset=/.wuw.red/gfwlist -server=/.wuyanblog.com/127.0.0.1#5353 -ipset=/.wuyanblog.com/gfwlist -server=/.wwitv.com/127.0.0.1#5353 -ipset=/.wwitv.com/gfwlist -server=/.www.abclite.net/127.0.0.1#5353 -ipset=/.www.abclite.net/gfwlist -server=/.www.ajsands.com/127.0.0.1#5353 -ipset=/.www.ajsands.com/gfwlist -server=/.www.americorps.gov/127.0.0.1#5353 -ipset=/.www.americorps.gov/gfwlist -server=/.www.antd.org/127.0.0.1#5353 -ipset=/.www.antd.org/gfwlist -server=/.www.aolnews.com/127.0.0.1#5353 -ipset=/.www.aolnews.com/gfwlist -server=/.www.citizenlab.org/127.0.0.1#5353 -ipset=/.www.citizenlab.org/gfwlist -server=/.www.cmoinc.org/127.0.0.1#5353 -ipset=/.www.cmoinc.org/gfwlist -server=/.www.dwheeler.com/127.0.0.1#5353 -ipset=/.www.dwheeler.com/gfwlist -server=/.www.exblog.jp/127.0.0.1#5353 -ipset=/.www.exblog.jp/gfwlist -server=/.www.ftchinese.com/127.0.0.1#5353 -ipset=/.www.ftchinese.com/gfwlist -server=/.www.gmiddle.com/127.0.0.1#5353 -ipset=/.www.gmiddle.com/gfwlist -server=/.www.gmiddle.net/127.0.0.1#5353 -ipset=/.www.gmiddle.net/gfwlist -server=/.www.hustlercash.com/127.0.0.1#5353 -ipset=/.www.hustlercash.com/gfwlist -server=/.www.idlcoyote.com/127.0.0.1#5353 -ipset=/.www.idlcoyote.com/gfwlist -server=/.www.kindleren.com/127.0.0.1#5353 -ipset=/.www.kindleren.com/gfwlist -server=/.www.klip.me/127.0.0.1#5353 -ipset=/.www.klip.me/gfwlist -server=/.www.kodingen.com/127.0.0.1#5353 -ipset=/.www.kodingen.com/gfwlist -server=/.www.lamenhu.com/127.0.0.1#5353 -ipset=/.www.lamenhu.com/gfwlist -server=/.www.lightnovel.cn/127.0.0.1#5353 -ipset=/.www.lightnovel.cn/gfwlist -server=/.www.linksalpha.com/127.0.0.1#5353 -ipset=/.www.linksalpha.com/gfwlist -server=/.www.m-sport.co.uk/127.0.0.1#5353 -ipset=/.www.m-sport.co.uk/gfwlist -server=/.www.monlamit.org/127.0.0.1#5353 -ipset=/.www.monlamit.org/gfwlist -server=/.www.moztw.org/127.0.0.1#5353 -ipset=/.www.moztw.org/gfwlist -server=/.www.orchidbbs.com/127.0.0.1#5353 -ipset=/.www.orchidbbs.com/gfwlist -server=/.www.owind.com/127.0.0.1#5353 -ipset=/.www.owind.com/gfwlist -server=/.www.oxid.it/127.0.0.1#5353 -ipset=/.www.oxid.it/gfwlist -server=/.www.powerpointninja.com/127.0.0.1#5353 -ipset=/.www.powerpointninja.com/gfwlist -server=/.www.s4miniarchive.com/127.0.0.1#5353 -ipset=/.www.s4miniarchive.com/gfwlist -server=/.www.shadowsocks.com/127.0.0.1#5353 -ipset=/.www.shadowsocks.com/gfwlist -server=/.www.shwchurch.org/127.0.0.1#5353 -ipset=/.www.shwchurch.org/gfwlist -server=/.www.taup.org.tw/127.0.0.1#5353 -ipset=/.www.taup.org.tw/gfwlist -server=/.www.typepad.com/127.0.0.1#5353 -ipset=/.www.typepad.com/gfwlist -server=/.www.v2ex.com/127.0.0.1#5353 -ipset=/.www.v2ex.com/gfwlist -server=/.www.wan-press.org/127.0.0.1#5353 -ipset=/.www.wan-press.org/gfwlist -server=/.www.wangruowang.org/127.0.0.1#5353 -ipset=/.www.wangruowang.org/gfwlist -server=/.www.websnapr.com/127.0.0.1#5353 -ipset=/.www.websnapr.com/gfwlist -server=/.www1.biz/127.0.0.1#5353 -ipset=/.www1.biz/gfwlist -server=/.wwwhost.biz/127.0.0.1#5353 -ipset=/.wwwhost.biz/gfwlist -server=/.x-art.com/127.0.0.1#5353 -ipset=/.x-art.com/gfwlist -server=/.x-berry.com/127.0.0.1#5353 -ipset=/.x-berry.com/gfwlist -server=/.x-wall.org/127.0.0.1#5353 -ipset=/.x-wall.org/gfwlist -server=/.x.company/127.0.0.1#5353 -ipset=/.x.company/gfwlist -server=/.x1949x.com/127.0.0.1#5353 -ipset=/.x1949x.com/gfwlist -server=/.x24hr.com/127.0.0.1#5353 -ipset=/.x24hr.com/gfwlist -server=/.x365x.com/127.0.0.1#5353 -ipset=/.x365x.com/gfwlist -server=/.xa.yimg.com/127.0.0.1#5353 -ipset=/.xa.yimg.com/gfwlist -server=/.xanga.com/127.0.0.1#5353 -ipset=/.xanga.com/gfwlist -server=/.xbabe.com/127.0.0.1#5353 -ipset=/.xbabe.com/gfwlist -server=/.xbookcn.com/127.0.0.1#5353 -ipset=/.xbookcn.com/gfwlist -server=/.xbtce.com/127.0.0.1#5353 -ipset=/.xbtce.com/gfwlist -server=/.xcafe.in/127.0.0.1#5353 -ipset=/.xcafe.in/gfwlist -server=/.xcity.jp/127.0.0.1#5353 -ipset=/.xcity.jp/gfwlist -server=/.xcritic.com/127.0.0.1#5353 -ipset=/.xcritic.com/gfwlist -server=/.xerotica.com/127.0.0.1#5353 -ipset=/.xerotica.com/gfwlist -server=/.xfinity.com/127.0.0.1#5353 -ipset=/.xfinity.com/gfwlist -server=/.xfm.pp.ru/127.0.0.1#5353 -ipset=/.xfm.pp.ru/gfwlist -server=/.xgmyd.com/127.0.0.1#5353 -ipset=/.xgmyd.com/gfwlist -server=/.xhamster.com/127.0.0.1#5353 -ipset=/.xhamster.com/gfwlist -server=/.xianba.net/127.0.0.1#5353 -ipset=/.xianba.net/gfwlist -server=/.xianchawang.net/127.0.0.1#5353 -ipset=/.xianchawang.net/gfwlist -server=/.xianjian.tw/127.0.0.1#5353 -ipset=/.xianjian.tw/gfwlist -server=/.xianqiao.net/127.0.0.1#5353 -ipset=/.xianqiao.net/gfwlist -server=/.xiaobaiwu.com/127.0.0.1#5353 -ipset=/.xiaobaiwu.com/gfwlist -server=/.xiaochuncnjp.com/127.0.0.1#5353 -ipset=/.xiaochuncnjp.com/gfwlist -server=/.xiaod.in/127.0.0.1#5353 -ipset=/.xiaod.in/gfwlist -server=/.xiaohexie.com/127.0.0.1#5353 -ipset=/.xiaohexie.com/gfwlist -server=/.xiaolan.me/127.0.0.1#5353 -ipset=/.xiaolan.me/gfwlist -server=/.xiaoma.org/127.0.0.1#5353 -ipset=/.xiaoma.org/gfwlist -server=/.xiezhua.com/127.0.0.1#5353 -ipset=/.xiezhua.com/gfwlist -server=/.xihua.es/127.0.0.1#5353 -ipset=/.xihua.es/gfwlist -server=/.xijie.wordpress.com/127.0.0.1#5353 -ipset=/.xijie.wordpress.com/gfwlist -server=/.xing.com/127.0.0.1#5353 -ipset=/.xing.com/gfwlist -server=/.xinhuanet.org/127.0.0.1#5353 -ipset=/.xinhuanet.org/gfwlist -server=/.xinmiao.com.hk/127.0.0.1#5353 -ipset=/.xinmiao.com.hk/gfwlist -server=/.xinqimeng.over-blog.com/127.0.0.1#5353 -ipset=/.xinqimeng.over-blog.com/gfwlist -server=/.xinsheng.net/127.0.0.1#5353 -ipset=/.xinsheng.net/gfwlist -server=/.xinshijue.com/127.0.0.1#5353 -ipset=/.xinshijue.com/gfwlist -server=/.xinyubbs.net/127.0.0.1#5353 -ipset=/.xinyubbs.net/gfwlist -server=/.xiongpian.com/127.0.0.1#5353 -ipset=/.xiongpian.com/gfwlist -server=/.xiuren.org/127.0.0.1#5353 -ipset=/.xiuren.org/gfwlist -server=/.xizang-zhiye.org/127.0.0.1#5353 -ipset=/.xizang-zhiye.org/gfwlist -server=/.xjp.cc/127.0.0.1#5353 -ipset=/.xjp.cc/gfwlist -server=/.xjtravelguide.com/127.0.0.1#5353 -ipset=/.xjtravelguide.com/gfwlist -server=/.xlfmtalk.com/127.0.0.1#5353 -ipset=/.xlfmtalk.com/gfwlist -server=/.xlfmwz.info/127.0.0.1#5353 -ipset=/.xlfmwz.info/gfwlist -server=/.xm.com/127.0.0.1#5353 -ipset=/.xm.com/gfwlist -server=/.xml-training-guide.com/127.0.0.1#5353 -ipset=/.xml-training-guide.com/gfwlist -server=/.xmovies.com/127.0.0.1#5353 -ipset=/.xmovies.com/gfwlist -server=/.xn--4gq171p.com/127.0.0.1#5353 -ipset=/.xn--4gq171p.com/gfwlist -server=/.xn--czq75pvv1aj5c.org/127.0.0.1#5353 -ipset=/.xn--czq75pvv1aj5c.org/gfwlist -server=/.xn--i2ru8q2qg.com/127.0.0.1#5353 -ipset=/.xn--i2ru8q2qg.com/gfwlist -server=/.xn--ngstr-lra8j.com/127.0.0.1#5353 -ipset=/.xn--ngstr-lra8j.com/gfwlist -server=/.xn--oiq.cc/127.0.0.1#5353 -ipset=/.xn--oiq.cc/gfwlist -server=/.xn--p8j9a0d9c9a.xn--q9jyb4c/127.0.0.1#5353 -ipset=/.xn--p8j9a0d9c9a.xn--q9jyb4c/gfwlist -server=/.xnxx.com/127.0.0.1#5353 -ipset=/.xnxx.com/gfwlist -server=/.xpdo.net/127.0.0.1#5353 -ipset=/.xpdo.net/gfwlist -server=/.xpud.org/127.0.0.1#5353 -ipset=/.xpud.org/gfwlist -server=/.xrentdvd.com/127.0.0.1#5353 -ipset=/.xrentdvd.com/gfwlist -server=/.xskywalker.com/127.0.0.1#5353 -ipset=/.xskywalker.com/gfwlist -server=/.xskywalker.net/127.0.0.1#5353 -ipset=/.xskywalker.net/gfwlist -server=/.xtube.com/127.0.0.1#5353 -ipset=/.xtube.com/gfwlist -server=/.xuchao.net/127.0.0.1#5353 -ipset=/.xuchao.net/gfwlist -server=/.xuchao.org/127.0.0.1#5353 -ipset=/.xuchao.org/gfwlist -server=/.xuehua.us/127.0.0.1#5353 -ipset=/.xuehua.us/gfwlist -server=/.xuzhiyong.net/127.0.0.1#5353 -ipset=/.xuzhiyong.net/gfwlist -server=/.xvideo.cc/127.0.0.1#5353 -ipset=/.xvideo.cc/gfwlist -server=/.xvideos.com/127.0.0.1#5353 -ipset=/.xvideos.com/gfwlist -server=/.xvideos.es/127.0.0.1#5353 -ipset=/.xvideos.es/gfwlist -server=/.xx.wwwhost.biz/127.0.0.1#5353 -ipset=/.xx.wwwhost.biz/gfwlist -server=/.xxbbx.com/127.0.0.1#5353 -ipset=/.xxbbx.com/gfwlist -server=/.xxlmovies.com/127.0.0.1#5353 -ipset=/.xxlmovies.com/gfwlist -server=/.xxuz.com/127.0.0.1#5353 -ipset=/.xxuz.com/gfwlist -server=/.xxx.com/127.0.0.1#5353 -ipset=/.xxx.com/gfwlist -server=/.xxx.xxx/127.0.0.1#5353 -ipset=/.xxx.xxx/gfwlist -server=/.xxxfuckmom.com/127.0.0.1#5353 -ipset=/.xxxfuckmom.com/gfwlist -server=/.xxxx.com.au/127.0.0.1#5353 -ipset=/.xxxx.com.au/gfwlist -server=/.xxxy.biz/127.0.0.1#5353 -ipset=/.xxxy.biz/gfwlist -server=/.xxxy.info/127.0.0.1#5353 -ipset=/.xxxy.info/gfwlist -server=/.xxxymovies.com/127.0.0.1#5353 -ipset=/.xxxymovies.com/gfwlist -server=/.xys.dxiong.com/127.0.0.1#5353 -ipset=/.xys.dxiong.com/gfwlist -server=/.xys.org/127.0.0.1#5353 -ipset=/.xys.org/gfwlist -server=/.xysblogs.org/127.0.0.1#5353 -ipset=/.xysblogs.org/gfwlist -server=/.xyy69.com/127.0.0.1#5353 -ipset=/.xyy69.com/gfwlist -server=/.xyy69.info/127.0.0.1#5353 -ipset=/.xyy69.info/gfwlist -server=/.yahoo.cn/127.0.0.1#5353 -ipset=/.yahoo.cn/gfwlist -server=/.yahoo.com.hk/127.0.0.1#5353 -ipset=/.yahoo.com.hk/gfwlist -server=/.yakbutterblues.com/127.0.0.1#5353 -ipset=/.yakbutterblues.com/gfwlist -server=/.yam.com/127.0.0.1#5353 -ipset=/.yam.com/gfwlist -server=/.yam.org.tw/127.0.0.1#5353 -ipset=/.yam.org.tw/gfwlist -server=/.yanghengjun.com/127.0.0.1#5353 -ipset=/.yanghengjun.com/gfwlist -server=/.yangjianli.com/127.0.0.1#5353 -ipset=/.yangjianli.com/gfwlist -server=/.yasni.co.uk/127.0.0.1#5353 -ipset=/.yasni.co.uk/gfwlist -server=/.yatsen.gov.tw/127.0.0.1#5353 -ipset=/.yatsen.gov.tw/gfwlist -server=/.yda.gov.tw/127.0.0.1#5353 -ipset=/.yda.gov.tw/gfwlist -server=/.ydy.com/127.0.0.1#5353 -ipset=/.ydy.com/gfwlist -server=/.yeahteentube.com/127.0.0.1#5353 -ipset=/.yeahteentube.com/gfwlist -server=/.yecl.net/127.0.0.1#5353 -ipset=/.yecl.net/gfwlist -server=/.yeelou.com/127.0.0.1#5353 -ipset=/.yeelou.com/gfwlist -server=/.yeeyi.com/127.0.0.1#5353 -ipset=/.yeeyi.com/gfwlist -server=/.yegle.net/127.0.0.1#5353 -ipset=/.yegle.net/gfwlist -server=/.yes-news.com/127.0.0.1#5353 -ipset=/.yes-news.com/gfwlist -server=/.yes.xxx/127.0.0.1#5353 -ipset=/.yes.xxx/gfwlist -server=/.yes123.com.tw/127.0.0.1#5353 -ipset=/.yes123.com.tw/gfwlist -server=/.yesasia.com/127.0.0.1#5353 -ipset=/.yesasia.com/gfwlist -server=/.yespornplease.com/127.0.0.1#5353 -ipset=/.yespornplease.com/gfwlist -server=/.yeyeclub.com/127.0.0.1#5353 -ipset=/.yeyeclub.com/gfwlist -server=/.ygto.com/127.0.0.1#5353 -ipset=/.ygto.com/gfwlist -server=/.yhcw.net/127.0.0.1#5353 -ipset=/.yhcw.net/gfwlist -server=/.yibada.com/127.0.0.1#5353 -ipset=/.yibada.com/gfwlist -server=/.yibaochina.com/127.0.0.1#5353 -ipset=/.yibaochina.com/gfwlist -server=/.yidio.com/127.0.0.1#5353 -ipset=/.yidio.com/gfwlist -server=/.yilubbs.com/127.0.0.1#5353 -ipset=/.yilubbs.com/gfwlist -server=/.yingsuoss.com/127.0.0.1#5353 -ipset=/.yingsuoss.com/gfwlist -server=/.yipub.com/127.0.0.1#5353 -ipset=/.yipub.com/gfwlist -server=/.yizhihongxing.com/127.0.0.1#5353 -ipset=/.yizhihongxing.com/gfwlist -server=/.yobit.net/127.0.0.1#5353 -ipset=/.yobit.net/gfwlist -server=/.yobt.com/127.0.0.1#5353 -ipset=/.yobt.com/gfwlist -server=/.yobt.tv/127.0.0.1#5353 -ipset=/.yobt.tv/gfwlist -server=/.yogichen.org/127.0.0.1#5353 -ipset=/.yogichen.org/gfwlist -server=/.yolasite.com/127.0.0.1#5353 -ipset=/.yolasite.com/gfwlist -server=/.yomiuri.co.jp/127.0.0.1#5353 -ipset=/.yomiuri.co.jp/gfwlist -server=/.yong.hu/127.0.0.1#5353 -ipset=/.yong.hu/gfwlist -server=/.yorkbbs.ca/127.0.0.1#5353 -ipset=/.yorkbbs.ca/gfwlist -server=/.youdontcare.com/127.0.0.1#5353 -ipset=/.youdontcare.com/gfwlist -server=/.youjizz.com/127.0.0.1#5353 -ipset=/.youjizz.com/gfwlist -server=/.youmaker.com/127.0.0.1#5353 -ipset=/.youmaker.com/gfwlist -server=/.youngpornvideos.com/127.0.0.1#5353 -ipset=/.youngpornvideos.com/gfwlist -server=/.youngspiration.hk/127.0.0.1#5353 -ipset=/.youngspiration.hk/gfwlist -server=/.youpai.org/127.0.0.1#5353 -ipset=/.youpai.org/gfwlist -server=/.youporn.com/127.0.0.1#5353 -ipset=/.youporn.com/gfwlist -server=/.youporngay.com/127.0.0.1#5353 -ipset=/.youporngay.com/gfwlist -server=/.your-freedom.net/127.0.0.1#5353 -ipset=/.your-freedom.net/gfwlist -server=/.yourepeat.com/127.0.0.1#5353 -ipset=/.yourepeat.com/gfwlist -server=/.yourlisten.com/127.0.0.1#5353 -ipset=/.yourlisten.com/gfwlist -server=/.yourlust.com/127.0.0.1#5353 -ipset=/.yourlust.com/gfwlist -server=/.yourprivatevpn.com/127.0.0.1#5353 -ipset=/.yourprivatevpn.com/gfwlist -server=/.yourtrap.com/127.0.0.1#5353 -ipset=/.yourtrap.com/gfwlist -server=/.yousendit.com/127.0.0.1#5353 -ipset=/.yousendit.com/gfwlist -server=/.youshun12.com/127.0.0.1#5353 -ipset=/.youshun12.com/gfwlist -server=/.youtu.be/127.0.0.1#5353 -ipset=/.youtu.be/gfwlist -server=/.youtube-nocookie.com/127.0.0.1#5353 -ipset=/.youtube-nocookie.com/gfwlist -server=/.youtube.com/127.0.0.1#5353 -ipset=/.youtube.com/gfwlist -server=/.youtubecn.com/127.0.0.1#5353 -ipset=/.youtubecn.com/gfwlist -server=/.youtubeeducation.com/127.0.0.1#5353 -ipset=/.youtubeeducation.com/gfwlist -server=/.youtubegaming.com/127.0.0.1#5353 -ipset=/.youtubegaming.com/gfwlist -server=/.youversion.com/127.0.0.1#5353 -ipset=/.youversion.com/gfwlist -server=/.youwin.com/127.0.0.1#5353 -ipset=/.youwin.com/gfwlist -server=/.youxu.info/127.0.0.1#5353 -ipset=/.youxu.info/gfwlist -server=/.yt.be/127.0.0.1#5353 -ipset=/.yt.be/gfwlist -server=/.ytht.net/127.0.0.1#5353 -ipset=/.ytht.net/gfwlist -server=/.ytimg.com/127.0.0.1#5353 -ipset=/.ytimg.com/gfwlist -server=/.ytn.co.kr/127.0.0.1#5353 -ipset=/.ytn.co.kr/gfwlist -server=/.yuanming.net/127.0.0.1#5353 -ipset=/.yuanming.net/gfwlist -server=/.yuanzhengtang.org/127.0.0.1#5353 -ipset=/.yuanzhengtang.org/gfwlist -server=/.yulghun.com/127.0.0.1#5353 -ipset=/.yulghun.com/gfwlist -server=/.yunchao.net/127.0.0.1#5353 -ipset=/.yunchao.net/gfwlist -server=/.yuntipub.com/127.0.0.1#5353 -ipset=/.yuntipub.com/gfwlist -server=/.yuvutu.com/127.0.0.1#5353 -ipset=/.yuvutu.com/gfwlist -server=/.yvesgeleyn.com/127.0.0.1#5353 -ipset=/.yvesgeleyn.com/gfwlist -server=/.yx51.net/127.0.0.1#5353 -ipset=/.yx51.net/gfwlist -server=/.yyii.org/127.0.0.1#5353 -ipset=/.yyii.org/gfwlist -server=/.yzzk.com/127.0.0.1#5353 -ipset=/.yzzk.com/gfwlist -server=/.zacebook.com/127.0.0.1#5353 -ipset=/.zacebook.com/gfwlist -server=/.zalmos.com/127.0.0.1#5353 -ipset=/.zalmos.com/gfwlist -server=/.zannel.com/127.0.0.1#5353 -ipset=/.zannel.com/gfwlist -server=/.zaobao.com/127.0.0.1#5353 -ipset=/.zaobao.com/gfwlist -server=/.zaozon.com/127.0.0.1#5353 -ipset=/.zaozon.com/gfwlist -server=/.zapto.org/127.0.0.1#5353 -ipset=/.zapto.org/gfwlist -server=/.zattoo.com/127.0.0.1#5353 -ipset=/.zattoo.com/gfwlist -server=/.zb.com/127.0.0.1#5353 -ipset=/.zb.com/gfwlist -server=/.zdnet.com.tw/127.0.0.1#5353 -ipset=/.zdnet.com.tw/gfwlist -server=/.zello.com/127.0.0.1#5353 -ipset=/.zello.com/gfwlist -server=/.zengjinyan.org/127.0.0.1#5353 -ipset=/.zengjinyan.org/gfwlist -server=/.zenmate.com/127.0.0.1#5353 -ipset=/.zenmate.com/gfwlist -server=/.zeronet.io/127.0.0.1#5353 -ipset=/.zeronet.io/gfwlist -server=/.zeutch.com/127.0.0.1#5353 -ipset=/.zeutch.com/gfwlist -server=/.zfreet.com/127.0.0.1#5353 -ipset=/.zfreet.com/gfwlist -server=/.zgsddh.com/127.0.0.1#5353 -ipset=/.zgsddh.com/gfwlist -server=/.zgzcjj.net/127.0.0.1#5353 -ipset=/.zgzcjj.net/gfwlist -server=/.zh-yue.wikipedia.org/127.0.0.1#5353 -ipset=/.zh-yue.wikipedia.org/gfwlist -server=/.zh.ecdm.wikia.com/127.0.0.1#5353 -ipset=/.zh.ecdm.wikia.com/gfwlist -server=/.zh.m.wikipedia.org/127.0.0.1#5353 -ipset=/.zh.m.wikipedia.org/gfwlist -server=/.zh.pokerstrategy.com/127.0.0.1#5353 -ipset=/.zh.pokerstrategy.com/gfwlist -server=/.zh.uncyclopedia.wikia.com/127.0.0.1#5353 -ipset=/.zh.uncyclopedia.wikia.com/gfwlist -server=/.zh.wikinews.org/127.0.0.1#5353 -ipset=/.zh.wikinews.org/gfwlist -server=/.zh.wikipedia.org/127.0.0.1#5353 -ipset=/.zh.wikipedia.org/gfwlist -server=/.zh.wikisource.org/127.0.0.1#5353 -ipset=/.zh.wikisource.org/gfwlist -server=/.zhanbin.net/127.0.0.1#5353 -ipset=/.zhanbin.net/gfwlist -server=/.zhangboli.net/127.0.0.1#5353 -ipset=/.zhangboli.net/gfwlist -server=/.zhangtianliang.com/127.0.0.1#5353 -ipset=/.zhangtianliang.com/gfwlist -server=/.zhanlve.org/127.0.0.1#5353 -ipset=/.zhanlve.org/gfwlist -server=/.zhao.1984.city/127.0.0.1#5353 -ipset=/.zhao.1984.city/gfwlist -server=/.zhao.jinhai.de/127.0.0.1#5353 -ipset=/.zhao.jinhai.de/gfwlist -server=/.zhenghui.org/127.0.0.1#5353 -ipset=/.zhenghui.org/gfwlist -server=/.zhengjian.org/127.0.0.1#5353 -ipset=/.zhengjian.org/gfwlist -server=/.zhengwunet.org/127.0.0.1#5353 -ipset=/.zhengwunet.org/gfwlist -server=/.zhenlibu.info/127.0.0.1#5353 -ipset=/.zhenlibu.info/gfwlist -server=/.zhenlibu1984.com/127.0.0.1#5353 -ipset=/.zhenlibu1984.com/gfwlist -server=/.zhenxiang.biz/127.0.0.1#5353 -ipset=/.zhenxiang.biz/gfwlist -server=/.zhinengluyou.com/127.0.0.1#5353 -ipset=/.zhinengluyou.com/gfwlist -server=/.zhongguo.ca/127.0.0.1#5353 -ipset=/.zhongguo.ca/gfwlist -server=/.zhongguorenquan.org/127.0.0.1#5353 -ipset=/.zhongguorenquan.org/gfwlist -server=/.zhongguotese.net/127.0.0.1#5353 -ipset=/.zhongguotese.net/gfwlist -server=/.zhongmeng.org/127.0.0.1#5353 -ipset=/.zhongmeng.org/gfwlist -server=/.zhoushuguang.com/127.0.0.1#5353 -ipset=/.zhoushuguang.com/gfwlist -server=/.zhreader.com/127.0.0.1#5353 -ipset=/.zhreader.com/gfwlist -server=/.zhuangbi.me/127.0.0.1#5353 -ipset=/.zhuangbi.me/gfwlist -server=/.zhuanxing.cn/127.0.0.1#5353 -ipset=/.zhuanxing.cn/gfwlist -server=/.zhuatieba.com/127.0.0.1#5353 -ipset=/.zhuatieba.com/gfwlist -server=/.zhuichaguoji.org/127.0.0.1#5353 -ipset=/.zhuichaguoji.org/gfwlist -server=/.zillionk.com/127.0.0.1#5353 -ipset=/.zillionk.com/gfwlist -server=/.zim.vn/127.0.0.1#5353 -ipset=/.zim.vn/gfwlist -server=/.zinio.com/127.0.0.1#5353 -ipset=/.zinio.com/gfwlist -server=/.ziporn.com/127.0.0.1#5353 -ipset=/.ziporn.com/gfwlist -server=/.zippyshare.com/127.0.0.1#5353 -ipset=/.zippyshare.com/gfwlist -server=/.zkaip.com/127.0.0.1#5353 -ipset=/.zkaip.com/gfwlist -server=/.zmw.cn/127.0.0.1#5353 -ipset=/.zmw.cn/gfwlist -server=/.zodgame.us/127.0.0.1#5353 -ipset=/.zodgame.us/gfwlist -server=/.zomobo.net/127.0.0.1#5353 -ipset=/.zomobo.net/gfwlist -server=/.zonaeuropa.com/127.0.0.1#5353 -ipset=/.zonaeuropa.com/gfwlist -server=/.zonghexinwen.com/127.0.0.1#5353 -ipset=/.zonghexinwen.com/gfwlist -server=/.zonghexinwen.net/127.0.0.1#5353 -ipset=/.zonghexinwen.net/gfwlist -server=/.zoogvpn.com/127.0.0.1#5353 -ipset=/.zoogvpn.com/gfwlist -server=/.zootool.com/127.0.0.1#5353 -ipset=/.zootool.com/gfwlist -server=/.zoozle.net/127.0.0.1#5353 -ipset=/.zoozle.net/gfwlist -server=/.zorrovpn.com/127.0.0.1#5353 -ipset=/.zorrovpn.com/gfwlist -server=/.zozotown.com/127.0.0.1#5353 -ipset=/.zozotown.com/gfwlist -server=/.zpn.im/127.0.0.1#5353 -ipset=/.zpn.im/gfwlist -server=/.zspeeder.me/127.0.0.1#5353 -ipset=/.zspeeder.me/gfwlist -server=/.zsrhao.com/127.0.0.1#5353 -ipset=/.zsrhao.com/gfwlist -server=/.zuo.la/127.0.0.1#5353 -ipset=/.zuo.la/gfwlist -server=/.zuobiao.me/127.0.0.1#5353 -ipset=/.zuobiao.me/gfwlist -server=/.zuola.com/127.0.0.1#5353 -ipset=/.zuola.com/gfwlist -server=/.zvereff.com/127.0.0.1#5353 -ipset=/.zvereff.com/gfwlist -server=/.zynaima.com/127.0.0.1#5353 -ipset=/.zynaima.com/gfwlist -server=/.zynamics.com/127.0.0.1#5353 -ipset=/.zynamics.com/gfwlist -server=/.zyns.com/127.0.0.1#5353 -ipset=/.zyns.com/gfwlist -server=/.zyzc9.com/127.0.0.1#5353 -ipset=/.zyzc9.com/gfwlist -server=/.zzcartoon.com/127.0.0.1#5353 -ipset=/.zzcartoon.com/gfwlist -server=/.zzux.com/127.0.0.1#5353 -ipset=/.zzux.com/gfwlist diff --git a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr deleted file mode 100755 index fb674621b..000000000 --- a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ /dev/null @@ -1,484 +0,0 @@ -#!/bin/sh /etc/rc.common -# -# Copyright (C) 2017 openwrt-ssr -# Copyright (C) 2017 yushi studio -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# - -START=90 -STOP=15 - -SERVICE_DAEMONIZE=1 -NAME=shadowsocksr -EXTRA_COMMANDS=rules -CONFIG_FILE=/var/etc/${NAME}.json -CONFIG_UDP_FILE=/var/etc/${NAME}_u.json -CONFIG_SOCK5_FILE=/var/etc/${NAME}_s.json -server_count=0 -redir_tcp=0 -redir_udp=0 -tunnel_enable=0 -local_enable=0 -kcp_enable_flag=0 -kcp_flag=0 -pdnsd_enable_flag=0 -switch_enable=0 -switch_server=$1 -MAXFD=32768 -CRON_FILE=/etc/crontabs/root - -uci_get_by_name() { - local ret=$(uci get $NAME.$1.$2 2>/dev/null) - echo ${ret:=$3} -} - -uci_get_by_type() { - local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null) - echo ${ret:=$3} -} - -add_cron() -{ - sed -i '/ssrplus.log/d' $CRON_FILE - echo '0 */1 * * * /usr/share/shadowsocksr/ssr-watchdog >> /tmp/ssrplus.log 2>&1' >> $CRON_FILE - echo '0 1 * * 0 echo "" > /tmp/ssrplus.log' >> $CRON_FILE - [ -n "$(grep -w "/usr/share/shadowsocksr/subscribe.sh" $CRON_FILE)" ] && sed -i '/\/usr\/share\/shadowsocksr\/subscribe.sh/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/subscribe.sh" >> $CRON_FILE - [ -z "$(grep -w "/usr/share/shadowsocksr/update.sh" $CRON_FILE)" ] && echo "0 5 * * 0 /usr/share/shadowsocksr/update.sh" >> $CRON_FILE - crontab $CRON_FILE -} - -del_cron() -{ - sed -i '/shadowsocksr/d' $CRON_FILE - sed -i '/ssrplus.log/d' $CRON_FILE - /etc/init.d/cron restart -} - -run_mode=$(uci_get_by_type global run_mode) - -gen_config_file() { - local host=$(uci_get_by_name $1 server) - if echo $host|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then - hostip=${host} - elif [ "$host" != "${host#*:[0-9a-fA-F]}" ] ;then - hostip=${host} - else - hostip=`ping ${host} -s 1 -c 1 | grep PING | cut -d'(' -f 2 | cut -d')' -f1` - if echo $hostip|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then - hostip=${hostip} - else - hostip=`cat /etc/ssr_ip` - fi - fi - [ $2 = "0" -a $kcp_flag = "1" ] && hostip="127.0.0.1" - - if [ $2 = "0" ] ;then - config_file=$CONFIG_FILE - elif [ $2 = "1" ]; then - config_file=$CONFIG_UDP_FILE - else - config_file=$CONFIG_SOCK5_FILE - fi - if [ $(uci_get_by_name $1 fast_open) = "1" ] ;then - fastopen="true"; - else - fastopen="false"; - fi - cat <<-EOF >$config_file - { - - "server": "$hostip", - "server_port": $(uci_get_by_name $1 server_port), - "local_address": "0.0.0.0", - "local_port": $(uci_get_by_name $1 local_port), - "password": "$(uci_get_by_name $1 password)", - "timeout": $(uci_get_by_name $1 timeout 60), - "method": "$(uci_get_by_name $1 encrypt_method)", - "protocol": "$(uci_get_by_name $1 protocol)", - "protocol_param": "$(uci_get_by_name $1 protocol_param)", - "obfs": "$(uci_get_by_name $1 obfs)", - "obfs_param": "$(uci_get_by_name $1 obfs_param)", - "fast_open": $fastopen - } -EOF -} - -get_arg_out() { - case "$(uci_get_by_type access_control router_proxy 1)" in - 1) echo "-o";; - 2) echo "-O";; - esac -} - -start_rules() { - local server=$(uci_get_by_name $GLOBAL_SERVER server) - #resolve name - if echo $server|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then - server=${server} - elif [ "$server" != "${server#*:[0-9a-fA-F]}" ] ;then - server=${server} - else - server=`ping ${server} -s 1 -c 1 | grep PING | cut -d'(' -f 2 | cut -d')' -f1` - if echo $server|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then - echo $server >/etc/ssr_ip - else - server=`cat /etc/ssr_ip` - fi - fi - - kcp_server=$server - - local kcp_enable=$(uci_get_by_name $GLOBAL_SERVER kcp_enable) - if [ $kcp_enable = "1" ] ;then - kcp_flag=1 - fi - - local local_port=$(uci_get_by_name $GLOBAL_SERVER local_port) - local lan_ac_ips=$(uci_get_by_type access_control lan_ac_ips) - local lan_ac_mode="b" - local router_proxy=$(uci_get_by_type access_control router_proxy) - if [ "$GLOBAL_SERVER" = "$UDP_RELAY_SERVER" -a $kcp_flag = 0 ]; then - ARG_UDP="-u" - elif [ -n "$UDP_RELAY_SERVER" ]; then - ARG_UDP="-U" - local udp_server=$(uci_get_by_name $UDP_RELAY_SERVER server) - local udp_local_port=$(uci_get_by_name $UDP_RELAY_SERVER local_port) - fi - - if [ -n "$lan_ac_ips" ]; then - case "$lan_ac_mode" in - w|W|b|B) local ac_ips="$lan_ac_mode$lan_ac_ips";; - esac - fi - -#deal gfw firewall rule - local gfwmode="" - if [ "$run_mode" = "gfw" ]; then - gfwmode="-g" - fi - - - /usr/bin/ssr-rules \ - -s "$server" \ - -l "$local_port" \ - -S "$udp_server" \ - -L "$udp_local_port" \ - -a "$ac_ips" \ - -i "$(uci_get_by_type access_control wan_bp_list)" \ - -b "$(uci_get_by_type access_control wan_bp_ips)" \ - -w "$(uci_get_by_type access_control wan_fw_ips)" \ - -p "$(uci_get_by_type access_control lan_fp_ips)" \ - $(get_arg_out) $gfwmode $ARG_UDP - - return $? -} - -start_pdnsd() { - local usr_dns="$1" - local usr_port="$2" - - local tcp_dns_list="208.67.222.222, 208.67.220.220" - [ -z "$usr_dns" ] && usr_dns="8.8.8.8" - [ -z "$usr_port" ] && usr_port="53" - - [ -d /var/etc ] || mkdir -p /var/etc - - if [ ! -d /var/pdnsd ];then - mkdir -p /var/pdnsd - echo -ne "pd13\000\000\000\000" >/var/pdnsd/pdnsd.cache - chown -R nobody:nogroup /var/pdnsd - fi - - cat > /var/etc/pdnsd.conf </dev/null - start_pdnsd $dnsserver $dnsport - pdnsd_enable_flag=1 - fi - fi - - if [ "$(uci_get_by_type global enable_switch)" = "1" ] ;then - if [ "$(uci_get_by_name $GLOBAL_SERVER switch_enable)" = "1" ] ;then - if [ -z "$switch_server" ] ;then - local switch_time=$(uci_get_by_type global switch_time) - local switch_timeout=$(uci_get_by_type global switch_timeout) - service_start /usr/bin/ssr-switch start $switch_time $switch_timeout - switch_enable=1 - fi - fi - fi - - return $? -} - -gen_service_file() { - if [ $(uci_get_by_name $1 fast_open) = "1" ] ;then - fastopen="true"; - else - fastopen="false"; - fi - cat <<-EOF >$2 - { - "server": "$(uci_get_by_name $1 server)", - "server_port": $(uci_get_by_name $1 server_port), - "password": "$(uci_get_by_name $1 password)", - "timeout": $(uci_get_by_name $1 timeout 60), - "method": "$(uci_get_by_name $1 encrypt_method)", - "protocol": "$(uci_get_by_name $1 protocol)", - "protocol_param": "$(uci_get_by_name $1 protocol_param)", - "obfs": "$(uci_get_by_name $1 obfs)", - "obfs_param": "$(uci_get_by_name $1 obfs_param)", - "fast_open": $fastopen - } -EOF -} - -start_service() { -[ $(uci_get_by_name $1 enable) = "0" ] && return 1 -let server_count=server_count+1 -if [ $server_count = 1 ] ;then -iptables -N SSR-SERVER-RULE && \ -iptables -t filter -I INPUT -j SSR-SERVER-RULE -fi - -gen_service_file $1 /var/etc/${NAME}_${server_count}.json -/usr/bin/ssr-server -c /var/etc/${NAME}_${server_count}.json -u -f /var/run/ssr-server${server_count}.pid -iptables -t filter -A SSR-SERVER-RULE -p tcp --dport $(uci_get_by_name $1 server_port) -j ACCEPT -iptables -t filter -A SSR-SERVER-RULE -p udp --dport $(uci_get_by_name $1 server_port) -j ACCEPT -return 0 -} -gen_serv_include() { -FWI=$(uci get firewall.shadowsocksr.path 2>/dev/null) -[ -n "$FWI" ] || return 0 -if [ ! -f $FWI ] ;then -echo '#!/bin/sh' >$FWI -fi -extract_rules() { -echo "*filter" -iptables-save -t filter | grep SSR-SERVER-RULE|sed -e "s/^-A INPUT/-I INPUT/" -echo 'COMMIT' -} - cat <<-EOF >>$FWI - iptables-save -c | grep -v "SSR-SERVER" | iptables-restore -c - iptables-restore -n <<-EOT - $(extract_rules) - EOT -EOF - -} -start_server() { - SERVER_ENABLE=$(uci_get_by_type server_global enable_server) - [ "$SERVER_ENABLE" = 0 ] && return 0 - mkdir -p /var/run /var/etc - - config_load $NAME - config_foreach start_service server_config - gen_serv_include - return 0 -} - -start_local() { - local local_server=$(uci_get_by_type socks5_proxy server) - [ "$local_server" = "nil" ] && return 1 - mkdir -p /var/run /var/etc - gen_config_file $local_server 2 - /usr/bin/ssr-local -c $CONFIG_SOCK5_FILE -u \ - -l $(uci_get_by_type socks5_proxy local_port 1080) \ - -b $(uci_get_by_type socks5_proxy local_address 0.0.0.0) \ - -f /var/run/ssr-local.pid - local_enable=1 -} - -rules() { - [ "$GLOBAL_SERVER" = "nil" ] && return 1 - mkdir -p /var/run /var/etc - UDP_RELAY_SERVER=$(uci_get_by_type global udp_relay_server) - [ "$UDP_RELAY_SERVER" = "same" ] && UDP_RELAY_SERVER=$GLOBAL_SERVER - if start_rules ;then - return 0 - else - return 1 - fi -} - -start() { - if [ -z "$switch_server" ] ;then - GLOBAL_SERVER=$(uci_get_by_type global global_server) - else - GLOBAL_SERVER=$switch_server - switch_enable=1 - fi - if rules ;then - start_redir - - if ! [ "$run_mode" = "gfw" ] ;then - case "$(uci_get_by_type global tunnel_enable)" in - 1|on|true|yes|enabled) - start_tunnel - ;; - esac - else - mkdir -p /tmp/dnsmasq.d - cat > /tmp/dnsmasq.d/dnsmasq-ssr.conf </dev/null 2>&1) & -} - -stop() { - /usr/bin/ssr-rules -f - srulecount=`iptables -L|grep SSR-SERVER-RULE|wc -l` - if [ $srulecount -gt 0 ] ;then - iptables -F SSR-SERVER-RULE - iptables -t filter -D INPUT -j SSR-SERVER-RULE - iptables -X SSR-SERVER-RULE 2>/dev/null - fi - if [ -z "$switch_server" ] ;then - kill -9 $(ps | grep ssr-switch | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - fi - killall -q -9 ssr-redir - killall -q -9 ssr-tunnel - killall -q -9 ssr-server - killall -q -9 ssr-kcptun - killall -q -9 ssr-local - kill $(cat /var/run/pdnsd.pid) >/dev/null 2>&1 || kill -9 $(ps | grep pdnsd | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - - if [ -f "/tmp/dnsmasq.d/dnsmasq-ssr.conf" ]; then - rm -f /tmp/dnsmasq.d/dnsmasq-ssr.conf - /etc/init.d/dnsmasq restart - fi - del_cron -} diff --git a/package/lean/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/package/lean/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus deleted file mode 100755 index 97aa54a46..000000000 --- a/package/lean/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ /dev/null @@ -1,18 +0,0 @@ -#!/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 -EOF - -/usr/share/shadowsocksr/gfw2ipset.sh -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-ad b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-ad deleted file mode 100755 index 668a26266..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-ad +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -e - -if [ -f /tmp/adnew.conf ]; then - cat /tmp/adnew.conf | grep ^\|\|[^\*]*\^$ | sed -e 's:||:address\=\/:' -e 's:\^:/0\.0\.0\.0:' > /tmp/ad.conf -fi - diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-gfw b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-gfw deleted file mode 100755 index 64822d566..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-gfw +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -e - -generate_china_banned() -{ - - cat $1 | base64 -d > /tmp/gfwlist.txt - rm -f $1 - - - cat /tmp/gfwlist.txt | sort -u | - sed 's#!.\+##; s#|##g; s#@##g; s#http:\/\/##; s#https:\/\/##;' | - sed '/\*/d; /apple\.com/d; /sina\.cn/d; /sina\.com\.cn/d; /baidu\.com/d; /byr\.cn/d; /jlike\.com/d; /weibo\.com/d; /zhongsou\.com/d; /youdao\.com/d; /sogou\.com/d; /so\.com/d; /soso\.com/d; /aliyun\.com/d; /taobao\.com/d; /jd\.com/d; /qq\.com/d' | - sed '/^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$/d' | - grep '^[0-9a-zA-Z\.-]\+$' | grep '\.' | sed 's#^\.\+##' | sort -u | - awk ' -BEGIN { prev = "________"; } { - cur = $0; - if (index(cur, prev) == 1 && substr(cur, 1 + length(prev) ,1) == ".") { - } else { - print cur; - prev = cur; - } -}' | sort -u - -} - -generate_china_banned /tmp/gfw.b64 > /tmp/gfw.txt -rm -f /tmp/gfwlist.txt -sed '/.*/s/.*/server=\/\.&\/127.0.0.1#5353\nipset=\/\.&\/gfwlist/' /tmp/gfw.txt >/tmp/gfwnew.txt -rm -f /tmp/gfw.txt - diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor deleted file mode 100755 index 3d5710c35..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ /dev/null @@ -1,151 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2017 openwrt-ssr -# Copyright (C) 2017 yushi studio -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# - - -NAME=shadowsocksr - -uci_get_by_name() { - local ret=$(uci get $NAME.$1.$2 2>/dev/null) - echo ${ret:=$3} -} - -uci_get_by_type() { - local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null) - echo ${ret:=$3} -} - -server_process_count=$1 -redir_tcp_process=$2 -redir_udp_process=$3 -tunnel_process=$4 -kcp_process=$5 -local_process=$6 -pdnsd_process=$7 -if [ -z "$pdnsd_process" ] ;then -pdnsd_process=0 -fi - -i=0 - -GLOBAL_SERVER=$(uci_get_by_type global global_server) -local server=$(uci_get_by_name $GLOBAL_SERVER server) -local kcp_port=$(uci_get_by_name $GLOBAL_SERVER kcp_port) -local server_port=$(uci_get_by_name $GLOBAL_SERVER server_port) -local password=$(uci_get_by_name $GLOBAL_SERVER kcp_password) -local kcp_param=$(uci_get_by_name $GLOBAL_SERVER kcp_param) -[ "$password" != "" ] && password="--key "${password} - -local sock5_port=$(uci_get_by_type socks5_proxy local_port 1080) - -if echo $server|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then - server=${server} - else - server=`cat /etc/ssr_ip` -fi - -while [ "1" = "1" ] #ѭ -do - sleep 30 -#redir tcp - if [ $redir_tcp_process -gt 0 ] ;then - icount=`ps -w | grep ssr-retcp |grep -v grep| wc -l` - if [ $icount = 0 ] ;then - logger -t "$NAME" "ssr redir tcp error.restart!" - /etc/init.d/shadowsocksr restart - exit 0 - fi - fi -#redir udp - if [ $redir_udp_process -gt 0 ] ;then - icount=`ps -w | grep ssr-reudp|grep -v grep| wc -l` - if [ $icount = 0 ] ;then - logger -t "$NAME" "ssr redir udp error.restart!" - /etc/init.d/shadowsocksr restart - exit 0 - fi - fi -#ssr-dns tunnel - if [ $tunnel_process -gt 0 ] ;then - icount=`ps -w | grep ssr-tunnel |grep -v grep| wc -l` - if [ $icount = 0 ] ;then - logger -t "$NAME" "ssr tunnel error.restart!" - /etc/init.d/shadowsocksr restart - exit 0 - fi - fi -#server - if [ $server_process_count -gt 0 ] ;then - icount=`ps -w | grep ssr-server |grep -v grep| wc -l` - if [ $icount -lt $server_process_count ] #̹ҵ - then - logger -t "$NAME" "ssr server error.restart!" - killall -q -9 ssr-server - for i in `seq $server_process_count` - do - /usr/bin/ssr-server -c /var/etc/shadowsocksr_$i.json -u -f /var/run/ssr-server$i.pid - done - fi - fi -#kcptun - if [ $kcp_process -gt 0 ] ;then - icount=`ps -w | grep ssr-kcptun |grep -v grep| wc -l` - if [ $icount -lt $kcp_process ] #̹ҵ - then - logger -t "$NAME" "ssr kcptun error.restart!" - killall -q -9 ssr-kcptun - - ( /usr/bin/ssr-kcptun -r $server:$kcp_port -l :$server_port $password $kcp_param &) - fi - fi -#local - if [ $local_process -gt 0 ] ;then - icount=`ps -w | grep ssr-local |grep -v grep| wc -l` - if [ $icount -lt $local_process ] #̹ҵ - then - logger -t "$NAME" "ssr local error.restart!" - killall -q -9 ssr-local - - ( /usr/bin/ssr-local -c /var/etc/shadowsocksr_s.json -u -l $sock5_port -f /var/run/ssr-local.pid &) - fi - fi -#pdnsd - if [ $pdnsd_process -gt 0 ] ;then - icount=`ps -w | grep pdnsd |grep -v grep| wc -l` - if [ $icount -lt $pdnsd_process ] #̹ҵ - then - logger -t "$NAME" "pdnsd tunnel error.restart!" - killall -q -9 pdnsd - - ( /usr/sbin/pdnsd -c /var/etc/pdnsd.conf -d &) - fi - fi -#udp2raw - if [ $(uci_get_by_type udp2raw udp2raw_enable) = 1 ] ;then - ucount=`ps -w | grep udp2raw |grep -v grep| wc -l` - if [ $ucount = 0 ] ;then - /usr/bin/udp2raw --clear >/dev/null - /usr/bin/udp2raw --conf-file /var/etc/udp2raw.conf >/dev/null 2>&1 & - fi - fi -#udpspeeder - if [ $(uci_get_by_type udpspeeder udpspeeder_enable) = 1 ] ;then - scount=`ps -w | grep udpspeeder |grep -v grep| wc -l` - if [ $scount = 0 ] ;then - /usr/bin/udpspeeder -c -l0.0.0.0:$(uci_get_by_type udpspeeder local_port) \ - -r$(uci_get_by_type udpspeeder server):$(uci_get_by_type udpspeeder server_port) \ - -k $(uci_get_by_type udpspeeder key) \ - --mode $(uci_get_by_type udpspeeder speeder_mode) \ - --mtu $(uci_get_by_type udpspeeder mtu) \ - -f$(uci_get_by_type udpspeeder fec) \ - -q$(uci_get_by_type udpspeeder queue_len) \ - --timeout $(uci_get_by_type udpspeeder timeout) \ - >/dev/null 2>&1 & - fi - fi -done diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules deleted file mode 100755 index 2c75b8ec9..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ /dev/null @@ -1,306 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2017 openwrt-ssr -# Copyright (C) 2017 yushi studio -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# - -TAG="_SS_SPEC_RULE_" # comment tag -IPT="iptables -t nat" # alias of iptables -FWI=$(uci get firewall.shadowsocksr.path 2>/dev/null) # firewall include file - -usage() { - cat <<-EOF - Usage: ssr-rules [options] - - Valid options are: - - -s ip address of shadowsocksr remote server - -l port number of shadowsocksr local server - -S ip address of shadowsocksr remote UDP server - -L port number of shadowsocksr local UDP server - -i a file 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 - -p lan ip of will be global proxy - -e extra options for iptables - -o apply the rules to the OUTPUT chain - -O apply the global 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 - -g gfw list mode - -h show this help message and exit -EOF - exit $1 -} - -loger() { - # 1.alert 2.crit 3.err 4.warn 5.notice 6.info 7.debug - logger -st ssr-rules[$$] -p$1 $2 -} - -flush_r() { - flush_iptables() { - local ipt="iptables -t $1" - local DAT=$(iptables-save -t $1) - eval $(echo "$DAT" | grep "$TAG" | sed -e 's/^-A/$ipt -D/' -e 's/$/;/') - for chain in $(echo "$DAT" | awk '/^:SS_SPEC/{print $1}'); do - $ipt -F ${chain:1} 2>/dev/null && $ipt -X ${chain:1} - done - } - flush_iptables nat - flush_iptables mangle - ip rule del fwmark 0x01/0x01 table 100 2>/dev/null - ip route del local 0.0.0.0/0 dev lo table 100 2>/dev/null - ipset -X ss_spec_lan_ac 2>/dev/null - ipset -X ss_spec_wan_ac 2>/dev/null - ipset -X ssr_gen_router 2>/dev/null - ipset -X fplan 2>/dev/null - [ -n "$FWI" ] && echo '#!/bin/sh' >$FWI - return 0 -} - -ipset_r() { - if [ -z "$GFWMODE" ] ;then - ipset -! -R <<-EOF || return 1 - create ss_spec_wan_ac hash:net - $(gen_iplist | sed -e "s/^/add ss_spec_wan_ac /") - $(for ip in $WAN_FW_IP; do echo "add ss_spec_wan_ac $ip nomatch"; done) -EOF - $IPT -N SS_SPEC_WAN_AC && \ - $IPT -A SS_SPEC_WAN_AC -m set --match-set ss_spec_wan_ac dst -j RETURN && \ - $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW - else - ipset -N gfwlist iphash 2>/dev/null - for ip in $WAN_FW_IP; do ipset add gfwlist $ip ; done - $IPT -N SS_SPEC_WAN_AC - $IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW - - ipset -N fplan iphash 2>/dev/null - for ip in $LAN_FP_IP; do ipset add fplan $ip ; done - $IPT -I SS_SPEC_WAN_AC -m set --match-set fplan src -j SS_SPEC_WAN_FW - fi - return $? -} - -fw_rule() { - $IPT -N SS_SPEC_WAN_FW - $IPT -A SS_SPEC_WAN_FW -d 10.0.0.0/8 -j RETURN - $IPT -A SS_SPEC_WAN_FW -d 127.0.0.0/8 -j RETURN - $IPT -A SS_SPEC_WAN_FW -d 172.16.0.0/12 -j RETURN - $IPT -A SS_SPEC_WAN_FW -d 192.168.0.0/16 -j RETURN - $IPT -A SS_SPEC_WAN_FW -d 224.0.0.0/4 -j RETURN - $IPT -A SS_SPEC_WAN_FW -d 240.0.0.0/4 -j RETURN - $IPT -A SS_SPEC_WAN_FW -p tcp \ - -j REDIRECT --to-ports $local_port 2>/dev/null || { - loger 3 "Can't redirect, please check the iptables." - exit 1 - } - return $? -} - -ac_rule() { - if [ -n "$LAN_AC_IP" ]; then - case "${LAN_AC_IP:0:1}" in - w|W) - MATCH_SET="-m set --match-set ss_spec_lan_ac src" - ;; - b|B) - MATCH_SET="-m set ! --match-set ss_spec_lan_ac src" - ;; - *) - loger 3 "Bad argument \`-a $LAN_AC_IP\`." - return 2 - ;; - esac - fi - IFNAME=$(uci get -P/var/state network.lan.ifname 2>/dev/null) - ipset -! -R <<-EOF || return 1 - create ss_spec_lan_ac hash:net - $(for ip in ${LAN_AC_IP:1}; do echo "add ss_spec_lan_ac $ip"; done) -EOF - $IPT -I PREROUTING 1 ${IFNAME:+-i $IFNAME} -p tcp $EXT_ARGS $MATCH_SET \ - -m comment --comment "$TAG" -j SS_SPEC_WAN_AC - if [ "$OUTPUT" = 1 ]; then - $IPT -I OUTPUT 1 -p tcp $EXT_ARGS \ - -m comment --comment "$TAG" -j SS_SPEC_WAN_AC - elif [ "$OUTPUT" = 2 ]; then - ipset -! -R <<-EOF || return 1 - create ssr_gen_router hash:net - $(gen_spec_iplist | sed -e "s/^/add ssr_gen_router /") -EOF - $IPT -N SS_SPEC_ROUTER && \ - $IPT -A SS_SPEC_ROUTER -m set --match-set ssr_gen_router dst -j RETURN && \ - $IPT -A SS_SPEC_ROUTER -j SS_SPEC_WAN_FW - $IPT -I OUTPUT 1 -p tcp -m comment --comment "$TAG" -j SS_SPEC_ROUTER - fi - return $? -} - -tp_rule() { - [ -n "$TPROXY" ] || return 0 - ip rule add fwmark 0x01/0x01 table 100 - ip route add local 0.0.0.0/0 dev lo table 100 - local ipt="iptables -t mangle" - $ipt -N SS_SPEC_TPROXY - if [ -z "$GFWMODE" ] ;then - $ipt -A SS_SPEC_TPROXY -p udp -m set ! --match-set ss_spec_wan_ac dst \ - -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 - else - $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set gfwlist dst \ - -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 - fi - $ipt -I PREROUTING 1 ${IFNAME:+-i $IFNAME} -p udp $EXT_ARGS $MATCH_SET \ - -m comment --comment "$TAG" -j SS_SPEC_TPROXY - return $? -} - -get_wan_ip() { - cat <<-EOF | grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}" - $server - $SERVER - $WAN_BP_IP -EOF -} - -gen_iplist() { - cat <<-EOF - 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.88.99.0/24 - 192.168.0.0/16 - 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 - 255.255.255.255 - $(get_wan_ip) - $(cat ${IGNORE_LIST:=/dev/null} 2>/dev/null) -EOF -} - -gen_spec_iplist() { - cat <<-EOF - 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.88.99.0/24 - 192.168.0.0/16 - 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 - 255.255.255.255 - $(get_wan_ip) -EOF -} - -gen_include() { - [ -n "$FWI" ] || return 0 - extract_rules() { - echo "*$1" - iptables-save -t $1 | grep SS_SPEC_ |\ - sed -e "s/^-A \(OUTPUT\|PREROUTING\)/-I \1 1/" - echo 'COMMIT' - } - cat <<-EOF >>$FWI - iptables-save -c | grep -v "SS_SPEC" | iptables-restore -c - iptables-restore -n <<-EOT - $(extract_rules nat) - $(extract_rules mangle) - EOT -EOF - return 0 -} - -while getopts ":s:l:S:L:i:e:a:b:w:p:oOuUfgh" arg; do - case "$arg" in - s) - server=$OPTARG - ;; - l) - local_port=$OPTARG - ;; - S) - SERVER=$OPTARG - ;; - L) - LOCAL_PORT=$OPTARG - ;; - i) - IGNORE_LIST=$OPTARG - ;; - e) - EXT_ARGS=$OPTARG - ;; - a) - LAN_AC_IP=$OPTARG - ;; - b) - WAN_BP_IP=$(for ip in $OPTARG; do echo $ip; done) - ;; - w) - WAN_FW_IP=$OPTARG - ;; - p) - LAN_FP_IP=$OPTARG - ;; - o) - OUTPUT=1 - ;; - O) - OUTPUT=2 - ;; - u) - TPROXY=1 - ;; - U) - TPROXY=2 - ;; - g) - GFWMODE=1 - ;; - f) - flush_r - exit 0 - ;; - h) - usage 0 - ;; - esac -done - -if [ -z "$server" -o -z "$local_port" ]; then - usage 2 -fi - -if [ "$TPROXY" = 1 ]; then - SERVER=$server - LOCAL_PORT=$local_port -elif [ "$TPROXY" = 2 ]; then - : ${SERVER:?"You must assign an ip for the udp relay server."} - : ${LOCAL_PORT:?"You must assign a port for the udp relay server."} -fi - -flush_r && fw_rule && ipset_r && ac_rule && tp_rule && gen_include -[ "$?" = 0 ] || loger 3 "Start failed!" -exit $? diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-switch b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-switch deleted file mode 100755 index e46de0a2a..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-switch +++ /dev/null @@ -1,173 +0,0 @@ -#!/bin/sh /etc/rc.common -# -# Copyright (C) 2017 openwrt-ssr -# Copyright (C) 2017 yushi studio -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# - -cycle_time=60 -switch_time=3 -normal_flag=0 -server_locate=0 -server_count=0 -NAME=shadowsocksr -ENABLE_SERVER=nil -CONFIG_SWTICH_FILE=/var/etc/${NAME}_t.json - - -[ -n "$1" ] && cycle_time=$1 -[ -n "$2" ] && switch_time=$2 - -uci_get_by_name() { - local ret=$(uci get $NAME.$1.$2 2>/dev/null) - echo ${ret:=$3} -} - -uci_get_by_type() { - local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null) - echo ${ret:=$3} -} - -DEFAULT_SERVER=$(uci_get_by_type global global_server) -CURRENT_SERVER=$DEFAULT_SERVER - -#жϴǷ -check_proxy() { -/usr/bin/ssr-check www.google.com 80 $switch_time 1 -if [ "$?" == "0" ]; then - return 0 -else - /usr/bin/ssr-check www.baidu.com 80 $switch_time 1 - if [ "$?" == "0" ]; then - #gooleͨbaiduͨ - return 1 - else - return 2 - fi -fi -return 0 -} - - -test_proxy() { -local servername=$(uci_get_by_name $1 server) -local serverport=$(uci_get_by_name $1 server_port) -ret=$(ping -c 3 $servername | grep 'loss' | awk -F ',' '{ print $3 }' | awk -F "%" '{ print $1 }') -[ -z "$ret" ] && return 1 -[ "$ret" -gt "50" ] && return 1 -ipset add ss_spec_wan_ac $servername 2>/dev/null -ret=$? -/usr/bin/ssr-check $servername $serverport $switch_time -local ret2=$? -if [ "$ret" = "0" ] ;then -ipset del ss_spec_wan_ac $servername 2>/dev/null -fi -if [ "$ret2" = "0" ] ;then -return 0 -else -return 1 -fi -} - -search_proxy() { -let server_count=server_count+1 -[ "$normal_flag" = "1" -a "$server_count" -le "$server_locate" ] && return 0 -[ "$(uci_get_by_name $1 switch_enable)" != "1" ] && return 1 -[ $ENABLE_SERVER != nil ] && return 0 -[ "$1" = "$CURRENT_SERVER" ] && return 0 -local servername=$(uci_get_by_name $1 server) -local serverport=$(uci_get_by_name $1 server_port) -ipset add ss_spec_wan_ac $servername 2>/dev/null -ret=$? - /usr/bin/ssr-check $servername $serverport $switch_time - local ret2=$? -if [ "$ret" = "0" ] ;then -ipset del ss_spec_wan_ac $servername 2>/dev/null -fi -if [ "$ret2" = "0" ] ;then -server_locate=$server_count -ENABLE_SERVER=$1 -return 0 -else -return 1 -fi - -} -#ѡõĴ -select_proxy() { - -config_load $NAME -ENABLE_SERVER=nil -mkdir -p /var/run /var/etc -server_count=0 -config_foreach search_proxy servers - -} - -#л -switch_proxy() { -/etc/init.d/shadowsocksr restart $1 -return 0 -} - -start() { -#֧kcptunʱл -[ $(uci_get_by_name $DEFAULT_SERVER kcp_enable) = "1" ] && return 1 - -while [ "1" = "1" ] #ѭ -do - sleep $cycle_time - - LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") - - - #жϵǰǷΪȱʡ - if [ "$CURRENT_SERVER" != "$DEFAULT_SERVER" ] ;then - #echo "not default proxy" - echo "$(date "+%Y-%m-%d %H:%M:%S") Current server is not default Main server, try to switch back." >> /tmp/ssrplus.log - - #ȱʡǷ - if test_proxy $DEFAULT_SERVER ;then - #echo "switch to default proxy" - echo "$(date "+%Y-%m-%d %H:%M:%S") Main server is avilable." >> /tmp/ssrplus.log - #ȱʡл - CURRENT_SERVER=$DEFAULT_SERVER - switch_proxy $CURRENT_SERVER - echo "switch to default ["$(uci_get_by_name $CURRENT_SERVER server)"] proxy!" >> /tmp/ssrplus.log - continue - else - echo "$(date "+%Y-%m-%d %H:%M:%S") Main server is NOT avilable.Continue using current server." >> /tmp/ssrplus.log - fi - fi - - #жϵǰǷ - check_proxy - current_ret=$? - - if [ "$current_ret" = "1" ] ;then - #ǰж޿õķ - #echo "current error" - echo "$(date "+%Y-%m-%d %H:%M:%S") Current server error, try to switch another server." >> /tmp/ssrplus.log - - select_proxy - if [ "$ENABLE_SERVER" != nil ] ;then - #ãл - #echo $(uci_get_by_name $new_proxy server) - echo "$(date "+%Y-%m-%d %H:%M:%S") Another server is avilable, now switching server." >> /tmp/ssrplus.log - CURRENT_SERVER=$ENABLE_SERVER - switch_proxy $CURRENT_SERVER - normal_flag=1 - echo "$(date "+%Y-%m-%d %H:%M:%S") ShadowsocksR server switch OK" >> /tmp/ssrplus.log - else - normal_flag=0 - fi - else - normal_flag=0 - echo "$(date "+%Y-%m-%d %H:%M:%S") ShadowsocksR No Problem." >> /tmp/ssrplus.log - fi - - -done -} \ No newline at end of file diff --git a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh deleted file mode 100755 index d620beb4d..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -awk '!/^$/&&!/^#/{printf("ipset=/.%s/'"gfwlist"'\n",$0)}' /etc/config/gfw.list > /etc/dnsmasq.ssr/custom_forward.conf -awk '!/^$/&&!/^#/{printf("server=/.%s/'"127.0.0.1#5353"'\n",$0)}' /etc/config/gfw.list >> /etc/dnsmasq.ssr/custom_forward.conf - diff --git a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/ssr-watchdog b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/ssr-watchdog deleted file mode 100755 index 1a51873f9..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/ssr-watchdog +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") - -/usr/bin/ssr-check www.google.com 80 3 1 - -if [ "$?" == "0" ]; then - echo "$LOGTIME ShadowsocksR No Problem." -else - /usr/bin/ssr-check www.baidu.com 80 3 1 - if [ "$?" == "0" ]; then - echo "$LOGTIME Problem decteted, restarting ShadowsocksR..." - /etc/init.d/shadowsocksr restart - else - echo "$LOGTIME Network Problem. Do nothing." - fi -fi diff --git a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.sh b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.sh deleted file mode 100755 index 9cd15593d..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.sh +++ /dev/null @@ -1,157 +0,0 @@ -#!/bin/bash -# Copyright (C) 2017 XiaoShan https://www.mivm.cn - -urlsafe_b64decode() { - local d="====" data=$(echo $1 | sed 's/_/\//g; s/-/+/g') - local mod4=$((${#data}%4)) - [ $mod4 -gt 0 ] && data=${data}${d:mod4} - echo $data | base64 -d -} - -CheckIPAddr() { - echo $1 | grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" >/dev/null 2>&1 - [ $? -ne 0 ] && return 1 - local ipaddr=($(echo $1 | sed 's/\./ /g')) - [ ${#ipaddr[@]} -ne 4 ] && return 1 - for ((i=0;i<${#ipaddr[@]};i++)) - do - [ ${ipaddr[i]} -gt 255 -a ${ipaddr[i]} -lt 0 ] && return 1 - done - return 0 -} - -Server_Update() { - local uci_set="uci -q set $name.$1." - ${uci_set}alias="[$ssr_group] $ssr_remarks" - ${uci_set}auth_enable="0" - ${uci_set}switch_enable="1" - ${uci_set}server="$ssr_host" - ${uci_set}server_port="$ssr_port" - ${uci_set}local_port="1234" - uci -q get $name.@servers[$1].timeout >/dev/null || ${uci_set}timeout="60" - ${uci_set}password="$ssr_passwd" - ${uci_set}encrypt_method="$ssr_method" - ${uci_set}protocol="$ssr_protocol" - ${uci_set}protocol_param="$ssr_protoparam" - ${uci_set}obfs="$ssr_obfs" - ${uci_set}obfs_param="$ssr_obfsparam" - ${uci_set}fast_open="0" - ${uci_set}kcp_enable="0" - ${uci_set}kcp_port="0" - ${uci_set}kcp_param="--nocomp" -} - -name=shadowsocksr -subscribe_url=($(uci get $name.@server_subscribe[0].subscribe_url)) -[ ${#subscribe_url[@]} -eq 0 ] && exit 1 -[ $(uci -q get $name.@server_subscribe[0].proxy || echo 0) -eq 0 ] && /etc/init.d/$name stop >/dev/null 2>&1 -log_name=${name}_subscribe -for ((o=0;o<${#subscribe_url[@]};o++)) -do - subscribe_data=$(wget-ssl --user-agent="User-Agent: Mozilla" --no-check-certificate -T 3 -O- ${subscribe_url[o]}) - curl_code=$? - if [ $curl_code -eq 0 ];then - ssr_url=($(echo $subscribe_data | base64 -d | sed 's/\r//g')) # 解码数据并删除 \r 换行符 - subscribe_max=$(echo ${ssr_url[0]} | grep -i MAX= | awk -F = '{print $2}') - subscribe_max_x=() - if [ -n "$subscribe_max" ]; then - while [ ${#subscribe_max_x[@]} -ne $subscribe_max ] - do - if [ ${#ssr_url[@]} -ge 10 ]; then - if [ $((${RANDOM:0:2}%2)) -eq 0 ]; then - temp_x=${RANDOM:0:1} - else - temp_x=${RANDOM:0:2} - fi - else - temp_x=${RANDOM:0:1} - fi - [ $temp_x -lt ${#ssr_url[@]} -a -z "$(echo "${subscribe_max_x[*]}" | grep -w ${temp_x})" ] && subscribe_max_x[${#subscribe_max_x[@]}]="$temp_x" - done - else - subscribe_max=${#ssr_url[@]} - fi - ssr_group=$(urlsafe_b64decode $(urlsafe_b64decode ${ssr_url[$((${#ssr_url[@]} - 1))]//ssr:\/\//} | sed 's/&/\n/g' | grep group= | awk -F = '{print $2}')) - if [ -n "$ssr_group" ]; then - subscribe_i=0 - subscribe_n=0 - subscribe_o=0 - subscribe_x="" - temp_host_o=() - curr_ssr=$(uci show $name | grep @servers | grep -c server=) - for ((x=0;x<$curr_ssr;x++)) # 循环已有服务器信息,匹配当前订阅群组 - do - temp_alias=$(uci -q get $name.@servers[$x].alias | grep "\[$ssr_group\]") - [ -n "$temp_alias" ] && temp_host_o[${#temp_host_o[@]}]=$(uci get $name.@servers[$x].server) - done - for ((x=0;x<$subscribe_max;x++)) # 循环链接 - do - [ ${#subscribe_max_x[@]} -eq 0 ] && temp_x=$x || temp_x=${subscribe_max_x[x]} - temp_info=$(urlsafe_b64decode ${ssr_url[temp_x]//ssr:\/\//}) # 解码 SSR 链接 - # 依次获取基本信息 - info=${temp_info///?*/} - temp_info_array=(${info//:/ }) - ssr_host=${temp_info_array[0]} - ssr_port=${temp_info_array[1]} - ssr_protocol=${temp_info_array[2]} - ssr_method=${temp_info_array[3]} - ssr_obfs=${temp_info_array[4]} - ssr_passwd=$(urlsafe_b64decode ${temp_info_array[5]}) - info=${temp_info:$((${#info} + 2))} - info=(${info//&/ }) - ssr_protoparam="" - ssr_obfsparam="" - ssr_remarks="$temp_x" - for ((i=0;i<${#info[@]};i++)) # 循环扩展信息 - do - temp_info=($(echo ${info[i]} | sed 's/=/ /g')) - case "${temp_info[0]}" in - protoparam) - ssr_protoparam=$(urlsafe_b64decode ${temp_info[1]}) - ;; - obfsparam) - ssr_obfsparam=$(urlsafe_b64decode ${temp_info[1]}) - ;; - remarks) - ssr_remarks=$(urlsafe_b64decode ${temp_info[1]}) - ;; - esac - done - - uci_name_tmp=$(uci show $name | grep -w $ssr_host | awk -F . '{print $2}') - if [ -z "$uci_name_tmp" ]; then # 判断当前服务器信息是否存在 - uci_name_tmp=$(uci add $name servers) - subscribe_n=$(($subscribe_n + 1)) - fi - Server_Update $uci_name_tmp - subscribe_x=${subscribe_x}$ssr_host" " - - # echo "服务器地址: $ssr_host" - # echo "服务器端口 $ssr_port" - # echo "密码: $ssr_passwd" - # echo "加密: $ssr_method" - # echo "协议: $ssr_protocol" - # echo "协议参数: $ssr_protoparam" - # echo "混淆: $ssr_obfs" - # echo "混淆参数: $ssr_obfsparam" - # echo "备注: $ssr_remarks" - done - for ((x=0;x<${#temp_host_o[@]};x++)) # 新旧服务器信息匹配,如果旧服务器信息不存在于新服务器信息则删除 - do - if [ -z "$(echo "$subscribe_x" | grep -w ${temp_host_o[x]})" ]; then - uci_name_tmp=$(uci show $name | grep ${temp_host_o[x]} | awk -F . '{print $2}') - uci delete $name.$uci_name_tmp - subscribe_o=$(($subscribe_o + 1)) - fi - done - subscribe_log="$ssr_group 服务器订阅更新成功 服务器数量: ${#ssr_url[@]} 新增服务器: $subscribe_n 删除服务器: $subscribe_o" - logger -st $log_name[$$] -p6 "$subscribe_log" - uci commit $name - else - logger -st $log_name[$$] -p3 "${subscribe_url[$o]} 订阅数据解析失败 无法获取 Group" - fi - else - logger -st $log_name[$$] -p3 "${subscribe_url[$o]} 订阅数据获取失败 错误代码: $curl_code" - fi -done -/etc/init.d/$name restart >/dev/null 2>&1 diff --git a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.sh b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.sh deleted file mode 100755 index 01ab7f90f..000000000 --- a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -chnroute_data=$(wget -O- -t 3 -T 3 http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest) -[ $? -eq 0 ] && { - echo "$chnroute_data" | grep ipv4 | grep CN | awk -F\| '{ printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /tmp/china_ssr.txt -} - -if [ -s "/tmp/china_ssr.txt" ];then - if ( ! cmp -s /tmp/china_ssr.txt /etc/china_ssr.txt );then - mv /tmp/china_ssr.txt /etc/china_ssr.txt - fi -fi - -wget-ssl --no-check-certificate https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt -O /tmp/gfw.b64 -/usr/bin/ssr-gfw - -if [ -s "/tmp/gfwnew.txt" ];then - if ( ! cmp -s /tmp/gfwnew.txt /etc/dnsmasq.ssr/gfw_list.conf );then - mv /tmp/gfwnew.txt /etc/dnsmasq.ssr/gfw_list.conf - echo "copy" - fi -fi - -/etc/init.d/shadowsocksr restart \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/Makefile b/package/lean/luci-app-ssrserver-python/Makefile deleted file mode 100644 index 7d7a31755..000000000 --- a/package/lean/luci-app-ssrserver-python/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI for SSR Server Python -LUCI_DEPENDS:=+python -LUCI_PKGARCH:=all -PKG_VERSION:=3.2.0 -PKG_RELEASE:=6 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-ssrserver-python/luasrc/controller/ssrs.lua b/package/lean/luci-app-ssrserver-python/luasrc/controller/ssrs.lua deleted file mode 100644 index 01095ec59..000000000 --- a/package/lean/luci-app-ssrserver-python/luasrc/controller/ssrs.lua +++ /dev/null @@ -1,21 +0,0 @@ -module("luci.controller.ssrs",package.seeall) - -function index() -if not nixio.fs.access("/etc/config/ssrs")then - return -end - -entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false - -local page - -entry({"admin","vpn","ssrs"},cbi("ssrs"),_("SSR Python Server"),4).dependent=true -entry({"admin","vpn","ssrs","status"},call("act_status")).leaf=true -end - -function act_status() - local e={} - e.running=luci.sys.call("ps | grep server.py |grep -v grep >/dev/null") == 0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/package/lean/luci-app-ssrserver-python/luasrc/model/cbi/ssrs.lua b/package/lean/luci-app-ssrserver-python/luasrc/model/cbi/ssrs.lua deleted file mode 100644 index 889aca8a6..000000000 --- a/package/lean/luci-app-ssrserver-python/luasrc/model/cbi/ssrs.lua +++ /dev/null @@ -1,75 +0,0 @@ -local a,t,e -local m, s -local o=require"nixio.fs" -local n={ -"none", -"aes-128-ctr", -"aes-192-ctr", -"aes-256-ctr", -"aes-128-cfb", -"aes-192-cfb", -"aes-256-cfb", -"rc4", -"rc4-md5", -"rc4-md5-6", -} -local s={ -"origin", -"verify_deflate", -"auth_sha1_v4", -"auth_aes128_md5", -"auth_aes128_sha1", -"auth_chain_a", -"auth_chain_b", -"auth_chain_c", -"auth_chain_d", -"auth_chain_e", -"auth_chain_f", -} -local i={ -"plain", -"http_simple", -"http_post", -"random_head", -"tls1.2_ticket_auth", -"tls1.2_ticket_fastauth", -} -local o={ -"false", -"true", -} - -a= Map("ssrs", translate("ShadowSocksR Server Config")) -a.description = translate("ShadowsocksR Python Server is a fork of the Shadowsocks project, claimed to be superior in terms of security and stability") - -a:section(SimpleSection).template = "ssrs/ssrs_status" - -t=a:section(TypedSection,"server",translate("")) -t.anonymous=true -t.addremove=false - -e=t:option(Flag,"enable",translate("Enable")) -e.rmempty=false - -e=t:option(Value,"server_port",translate("Server Port")) -e.datatype="port" -e.rmempty=false -e.default=139 - -e=t:option(Value,"password",translate("Password")) -e.password=true -e.rmempty=false - -e=t:option(ListValue,"encrypt_method",translate("Encrypt Method")) -for a,t in ipairs(n)do e:value(t)end -e.rmempty=false - -e=t:option(ListValue,"protocol",translate("Protocol")) -for a,t in ipairs(s)do e:value(t)end -e.rmempty=false - -e=t:option(ListValue,"obfs",translate("Obfs")) -for a,t in ipairs(i)do e:value(t)end -e.rmempty=false - -return a diff --git a/package/lean/luci-app-ssrserver-python/luasrc/view/ssrs/ssrs_status.htm b/package/lean/luci-app-ssrserver-python/luasrc/view/ssrs/ssrs_status.htm deleted file mode 100644 index 043620d08..000000000 --- a/package/lean/luci-app-ssrserver-python/luasrc/view/ssrs/ssrs_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/po/zh-cn/ssrs.po b/package/lean/luci-app-ssrserver-python/po/zh-cn/ssrs.po deleted file mode 100644 index e3b31875f..000000000 --- a/package/lean/luci-app-ssrserver-python/po/zh-cn/ssrs.po +++ /dev/null @@ -1,35 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8\n" - -msgid "SSR Python Server" -msgstr "SSR Python 服务器" - -msgid "ShadowSocksR Server Config" -msgstr "ShadowsocksR Python 服务器设置" - -msgid "Global Setting" -msgstr "全局设置" - -msgid "Encrypt Method" -msgstr "加密" - -msgid "Protocol_param" -msgstr "协议参数" - -msgid "Obfs" -msgstr "混淆" - -msgid "Obfs_param" -msgstr "混淆参数" - -msgid "redirect" -msgstr "重定向" - -msgid "Connection Timeout" -msgstr "连接超时时间" - -msgid "ShadowsocksR Python Server is a fork of the Shadowsocks project, claimed to be superior in terms of security and stability" -msgstr "ShadowsocksR Python 服务器是一个增加了协议参数和混淆的全功能版本" - -msgid "ShadowsocksR Python Server" -msgstr "ShadowsocksR Python 服务器" diff --git a/package/lean/luci-app-ssrserver-python/root/etc/config/ssrs b/package/lean/luci-app-ssrserver-python/root/etc/config/ssrs deleted file mode 100644 index a85b5ca5e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/etc/config/ssrs +++ /dev/null @@ -1,11 +0,0 @@ - -config server 'ssrs' - option password '12345678' - option timeout '300' - option fast_open 'true' - option encrypt_method 'rc4-md5' - option protocol 'auth_sha1_v4' - option obfs 'http_simple' - option server_port '10240' - option enable '0' - diff --git a/package/lean/luci-app-ssrserver-python/root/etc/init.d/ssrs b/package/lean/luci-app-ssrserver-python/root/etc/init.d/ssrs deleted file mode 100755 index 63a473b3f..000000000 --- a/package/lean/luci-app-ssrserver-python/root/etc/init.d/ssrs +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/sh /etc/rc.common -# -# Copyright (C) 2015 OpenWrt-dist -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# - -START=91 - -CONFIG=ssrs -CONFIG_FILE=/var/etc/$CONFIG.json -PID_FILE=/var/run/$CONFIG.pid -LOG_FILE=/var/log/$CONFIG.log - -uci_get_by_type() { - local index=0 - if [ -n $4 ]; then - index=$4 - fi - local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) - echo ${ret:=$3} -} - -is_true() { - case $1 in - 1|on|true|yes|enabled) echo 0;; - *) echo 1;; - esac -} - -load_config() { - ENABLED=$(uci_get_by_type server enable) - return $(is_true $ENABLED) -} - -start_server() { - mkdir -p /var/etc - /usr/bin/python \ - /usr/share/ssr/shadowsocks/server.py \ - -c $CONFIG_FILE \ - --pid-file $PID_FILE \ - --log-file $LOG_FILE \ - -d start \ - >/dev/null 2>&1 & -} - -gen_config_file() { - cat <<-EOF >$CONFIG_FILE - { - "server": "0.0.0.0", - "server_port": $(uci_get_by_type server server_port), - "local_address":"127.0.0.1", - "local_port":1086, - "password": "$(uci_get_by_type server password)", - "timeout": $(uci_get_by_type server timeout 60), - "method": "$(uci_get_by_type server encrypt_method)", - "protocol": "$(uci_get_by_type server protocol)", - "protocol_param": "$(uci_get_by_type server protocol_param)", - "obfs": "$(uci_get_by_type server obfs)", - "obfs_param": "$(uci_get_by_type server obfs_param)", - "redirect": "$(uci_get_by_type server redirect)", - "fast_open": "$(uci_get_by_type server fast_open)" - } -EOF -} - - -add_rule() { - serverport=$(uci_get_by_type server server_port) - uci set firewall.ssrs.dest_port=$serverport && uci commit firewall && /etc/init.d/firewall restart -} - -del_rule() { - serverport=$(uci_get_by_type server server_port) -} - -start() { - ! load_config && exit 0 - gen_config_file "server" - start_server - add_rule -} - -stop() { - del_rule - /usr/bin/python \ - /usr/share/ssr/shadowsocks/server.py \ - -c $CONFIG_FILE \ - --pid-file $PID_FILE \ - --log-file $LOG_FILE \ - -d stop \ - >/dev/null 2>&1 & - rm -f $LOG_FILE -} \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/root/etc/uci-defaults/luci-app-ssrs b/package/lean/luci-app-ssrserver-python/root/etc/uci-defaults/luci-app-ssrs deleted file mode 100755 index a38759098..000000000 --- a/package/lean/luci-app-ssrserver-python/root/etc/uci-defaults/luci-app-ssrs +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@ssrs[-1] - add ucitrack ssrs - set ucitrack.@ssrs[-1].init=ssrs - commit ucitrack - delete firewall.ssrs - add firewall rule - rename firewall.@rule[-1]="ssrs" - set firewall.@rule[-1].name="ssrs" - set firewall.@rule[-1].target="ACCEPT" - set firewall.@rule[-1].src="wan" - set firewall.@rule[-1].proto="tcp" - set firewall.@rule[-1].dest_port="10240" -EOF - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/.travis.yml b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/.travis.yml deleted file mode 100644 index 014fa0714..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: python -python: - - 2.6 - - 2.7 - - 3.3 - - 3.4 -cache: - directories: - - dante-1.4.0 -before_install: - - sudo apt-get update -qq - - sudo apt-get install -qq build-essential dnsutils iproute nginx bc - - sudo dd if=/dev/urandom of=/usr/share/nginx/www/file bs=1M count=10 - - sudo sh -c "echo '127.0.0.1 localhost' > /etc/hosts" - - sudo service nginx restart - - pip install pep8 pyflakes nose coverage PySocks cymysql - - sudo tests/socksify/install.sh - - sudo tests/libsodium/install.sh - - sudo tests/setup_tc.sh -script: - - tests/jenkins.sh diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CHANGES b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CHANGES deleted file mode 100644 index 0cd91768e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CHANGES +++ /dev/null @@ -1,342 +0,0 @@ -3.4.0 2017-07-27 -- add auth_chain_b -- add initmudbjson.sh -- allow set speed limit in runtime -- fix bugs & mem leak - -3.3.3 2017-06-03 -- add DNS cache -- add tls1.2_ticket_fastauth -- fix bugs - -3.3.2 2017-05-20 -- revert http reply -- refine tls1.2_ticket_auth error detector - -3.3.1 2017-05-18 -- fix stop script -- Async DNS query under UDP -- fix old version of OpenSSL -- http reply - -3.3.0 2017-05-11 -- connect_log include local addr & port -- fix auth_chain_a UDP bug -- add "additional_ports_only" -- add interface legendsockssr -- run with newest python version -- parse comment in hosts -- update mujson_mgr -- add cymysql setup script -- new speed tester -- fix leaks -- bugs fixed - -3.2.0 2017-04-27 -- add auth_chain_a -- remove auth_aes128, auth_sha1, auth_sha1_v2, verify_simple, auth_simple, verify_sha1 - -3.1.2 2017-04-07 -- display UID -- auto adjust TCP MSS - -3.1.1 2017-03-25 -- add "New session ticket" -- ignore bind 10.0.0.0/8 and 192.168.0.0/16 by default -- improve rand size under auth_aes128_* -- fix bugs - -3.1.0 2017-03-16 -- add "glzjinmod" interface -- rate limit -- add additional_ports in config - -3.0.4 2017-01-08 -- multi-user in single port - -3.0.1 2017-01-03 -- remove auth_aes128_*_compatible - -3.0.0 2016-12-23 -- http_simple fix bugs -- tls1.2_ticket_auth fix bug & defaule time diff set to 86400s - -2.9.7 2016-11-22 -- manage client with LRUCache -- catch bind error -- fix import error of resource on windows -- print RLIMIT_NOFILE -- always close cymysql objects -- add init script - -2.9.6 2016-10-17 -- tls1.2_ticket_auth random packet size - -2.9.5.1 2016-10-16 -- UDP bind address - -2.9.5 2016-10-13 -- add auth_aes128_md5 and auth_aes128_sha1 - -2.9.4 2016-10-11 -- sync client version - -2.6.13 2015-11-02 -- add protocol setting - -2.6.12 2015-10-27 -- IPv6 first -- Fix mem leaks -- auth_simple plugin -- remove FORCE_NEW_PROTOCOL -- optimize code - -2.6.11 2015-10-20 -- Obfs plugin -- Obfs parameters -- UDP over TCP -- TCP over UDP (experimental) -- Fix socket leaks -- Catch abnormal UDP package - -2.6.10 2015-06-08 -- Optimize LRU cache -- Refine logging - -2.6.9 2015-05-19 -- Fix a stability issue on Windows - -2.6.8 2015-02-10 -- Support multiple server ip on client side -- Support --version -- Minor fixes - -2.6.7 2015-02-02 -- Support --user -- Support CIDR format in --forbidden-ip -- Minor fixes - -2.6.6 2015-01-23 -- Fix a crash in forbidden list - -2.6.5 2015-01-18 -- Try both 32 bit and 64 bit dll on Windows - -2.6.4 2015-01-14 -- Also search lib* when searching libraries - -2.6.3 2015-01-12 -- Support --forbidden-ip to ban some IP, i.e. localhost -- Search OpenSSL and libsodium harder -- Now works on OpenWRT - -2.6.2 2015-01-03 -- Log client IP - -2.6.1 2014-12-26 -- Fix a problem with TCP Fast Open on local side -- Fix sometimes daemon_start returns wrong exit status - -2.6 2014-12-21 -- Add daemon support - -2.5 2014-12-11 -- Add salsa20 and chacha20 - -2.4.3 2014-11-10 -- Fix an issue on Python 3 -- Fix an issue with IPv6 - -2.4.2 2014-11-06 -- Fix command line arguments on Python 3 -- Support table on Python 3 -- Fix TCP Fast Open on Python 3 - -2.4.1 2014-11-01 -- Fix setup.py for non-utf8 locales on Python 3 - -2.4 2014-11-01 -- Python 3 support -- Performance improvement -- Fix LRU cache behavior - -2.3.2 2014-10-11 -- Fix OpenSSL on Windows - -2.3.1 2014-10-09 -- Does not require M2Crypto any more - -2.3 2014-09-23 -- Support CFB1, CFB8 and CTR mode of AES -- Do not require password config when using port_password -- Use SIGTERM instead of SIGQUIT on Windows - -2.2.2 2014-09-14 -- Fix when multiple DNS set, IPv6 only sites are broken - -2.2.1 2014-09-10 -- Support graceful shutdown -- Fix some bugs - -2.2.0 2014-09-09 -- Add RC4-MD5 encryption - -2.1.0 2014-08-10 -- Use only IPv4 DNS server -- Does not ship config.json -- Better error message - -2.0.12 2014-07-26 -- Support -q quiet mode -- Exit 0 when showing help with -h - -2.0.11 2014-07-12 -- Prefers IP addresses over hostnames, more friendly with socksify and openvpn - -2.0.10 2014-07-11 -- Fix UDP on local - -2.0.9 2014-07-06 -- Fix EWOULDBLOCK on Windows -- Fix Unicode config problem on some platforms - -2.0.8 2014-06-23 -- Use multiple DNS to query hostnames - -2.0.7 2014-06-21 -- Fix fastopen on local -- Fallback when fastopen is not available -- Add verbose logging mode -vv -- Verify if hostname is valid - -2.0.6 2014-06-19 -- Fix CPU 100% on POLL_HUP -- More friendly logging - -2.0.5 2014-06-18 -- Support a simple config format for multiple ports - -2.0.4 2014-06-12 -- Fix worker master - -2.0.3 2014-06-11 -- Fix table encryption with UDP - -2.0.2 2014-06-11 -- Add asynchronous DNS in TCP relay - -2.0.1 2014-06-05 -- Better logging -- Maybe fix bad file descriptor - -2.0 2014-06-05 -- Use a new event model -- Remove gevent -- Refuse to use default password -- Fix a problem when using multiple passwords with table encryption - -1.4.5 2014-05-24 -- Add timeout in TCP server -- Close sockets in master process - -1.4.4 2014-05-17 -- Support multiple workers - -1.4.3 2014-05-13 -- Fix Windows - -1.4.2 2014-05-10 -- Add salsa20-ctr cipher - -1.4.1 2014-05-03 -- Fix error log -- Fix EINPROGESS with some version of gevent - -1.4.0 2014-05-02 -- Adds UDP relay -- TCP fast open support on Linux 3.7+ - -1.3.7 2014-04-10 -- Fix a typo in help - -1.3.6 2014-04-10 -- Fix a typo in help - -1.3.5 2014-04-07 -- Add help -- Change default local binding address into 127.0.0.1 - -1.3.4 2014-02-17 -- Fix a bug when no config file exists -- Client now support multiple server ports and multiple server/port pairs -- Better error message with bad config.json format and wrong password - -1.3.3 2013-07-09 -- Fix default key length of rc2 - -1.3.2 2013-07-04 -- Server will listen at server IP specified in config -- Check config file and show some warning messages - -1.3.1 2013-06-29 -- Fix -c arg - -1.3.0 2013-06-22 -- Move to pypi - -1.2.3 2013-06-14 -- add bind address - -1.2.2 2013-05-31 -- local can listen at ::0 with -6 arg; bump 1.2.2 - -1.2.1 2013-05-23 -- Fix an OpenSSL crash - -1.2 2013-05-22 -- Use random iv, we finally have strong encryption - -1.1.1 2013-05-21 -- Add encryption, AES, blowfish, etc. - -1.1 2013-05-16 -- Support IPv6 addresses (type 4) -- Drop Python 2.5 support - -1.0 2013-04-03 -- Fix -6 IPv6 - -0.9.4 2013-03-04 -- Support Python 2.5 - -0.9.3 2013-01-14 -- Fix conn termination null data - -0.9.2 2013-01-05 -- Change default timeout - -0.9.1 2013-01-05 -- Add Travis-CI test - -0.9 2012-12-30 -- Replace send with sendall, fix FreeBSD - -0.6 2012-12-06 -- Support args - -0.5 2012-11-08 -- Fix encryption with negative md5sum - -0.4 2012-11-02 -- Move config into a JSON file -- Auto-detect config path - -0.3 2012-06-06 -- Move socks5 negotiation to local - -0.2 2012-05-11 -- Add -6 arg for IPv6 -- Fix socket.error - -0.1 2012-04-20 -- Initial version diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CONTRIBUTING.md b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CONTRIBUTING.md deleted file mode 100644 index fbdb9c11b..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/CONTRIBUTING.md +++ /dev/null @@ -1,29 +0,0 @@ -How to Contribute -================= - -Pull Requests -------------- - -1. Pull requests are welcome. If you would like to add a large feature -or make a significant change, make sure to open an issue to discuss with -people first. -2. Follow PEP8. -3. Make sure to pass the unit tests. Write unit tests for new modules if -needed. - -Issues ------- - -1. Only bugs and feature requests are accepted here. -2. We'll only work on important features. If the feature you're asking only -benefits a few people, you'd better implement the feature yourself and send us -a pull request, or ask some of your friends to do so. -3. We don't answer questions of any other types here. Since very few people -are watching the issue tracker here, you'll probably get no help from here. -Read [Troubleshooting] and get help from forums or [mailing lists]. -4. Issues in languages other than English will be Google translated into English -later. - - -[Troubleshooting]: https://github.com/clowwindy/shadowsocks/wiki/Troubleshooting -[mailing lists]: https://groups.google.com/forum/#!forum/shadowsocks diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/Dockerfile b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/Dockerfile deleted file mode 100644 index ec7b2c6e7..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -FROM alpine:3.6 - -ENV SERVER_ADDR 0.0.0.0 -ENV SERVER_PORT 51348 -ENV PASSWORD psw -ENV METHOD aes-128-ctr -ENV PROTOCOL auth_aes128_md5 -ENV PROTOCOLPARAM 32 -ENV OBFS tls1.2_ticket_auth_compatible -ENV TIMEOUT 300 -ENV DNS_ADDR 8.8.8.8 -ENV DNS_ADDR_2 8.8.4.4 - -ARG BRANCH=manyuser -ARG WORK=~ - - -RUN apk --no-cache add python \ - libsodium \ - wget - - -RUN mkdir -p $WORK && \ - wget -qO- --no-check-certificate https://github.com/shadowsocksr/shadowsocksr/archive/$BRANCH.tar.gz | tar -xzf - -C $WORK - - -WORKDIR $WORK/shadowsocksr-$BRANCH/shadowsocks - - -EXPOSE $SERVER_PORT -CMD python server.py -p $SERVER_PORT -k $PASSWORD -m $METHOD -O $PROTOCOL -o $OBFS -G $PROTOCOLPARAM diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/LICENSE b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/LICENSE deleted file mode 100644 index d64569567..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/MANIFEST.in b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/MANIFEST.in deleted file mode 100644 index 1882dd7dc..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/MANIFEST.in +++ /dev/null @@ -1,3 +0,0 @@ -recursive-include shadowsocks *.py -include README.rst -include LICENSE diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.md b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.md deleted file mode 100644 index 53eafeaa8..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.md +++ /dev/null @@ -1,105 +0,0 @@ -ShadowsocksR -=========== - -[![Build Status]][Travis CI] - -A fast tunnel proxy that helps you bypass firewalls. - -Server ------- - -### Install - -Debian / Ubuntu: - - apt-get install git - git clone https://github.com/shadowsocksr/shadowsocksr.git - -CentOS: - - yum install git - git clone https://github.com/shadowsocksr/shadowsocksr.git - -Windows: - - git clone https://github.com/shadowsocksr/shadowsocksr.git - -### Usage for single user on linux platform - -If you clone it into "~/shadowsocksr" -move to "~/shadowsocksr", then run: - - bash initcfg.sh - -move to "~/shadowsocksr/shadowsocks", then run: - - python server.py -p 443 -k password -m aes-128-cfb -O auth_aes128_md5 -o tls1.2_ticket_auth_compatible - -Check all the options via `-h`. - -You can also use a configuration file instead (recommend), move to "~/shadowsocksr" and edit the file "user-config.json", then move to "~/shadowsocksr/shadowsocks" again, just run: - - python server.py - -To run in the background: - - ./logrun.sh - -To stop: - - ./stop.sh - -To monitor the log: - - ./tail.sh - - -Client ------- - -* [Windows] / [macOS] -* [Android] / [iOS] -* [OpenWRT] - -Use GUI clients on your local PC/phones. Check the README of your client -for more information. - -Documentation -------------- - -You can find all the documentation in the [Wiki]. - -License -------- - -Copyright 2015 clowwindy - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -License for the specific language governing permissions and limitations -under the License. - -Bugs and Issues ----------------- - -* [Issue Tracker] - - - -[Android]: https://github.com/shadowsocksr/shadowsocksr-android -[Build Status]: https://travis-ci.org/shadowsocksr/shadowsocksr.svg?branch=manyuser -[Debian sid]: https://packages.debian.org/unstable/python/shadowsocks -[iOS]: https://github.com/shadowsocks/shadowsocks-iOS/wiki/Help -[Issue Tracker]: https://github.com/shadowsocksr/shadowsocksr/issues?state=open -[OpenWRT]: https://github.com/shadowsocks/openwrt-shadowsocks -[macOS]: https://github.com/shadowsocksr/ShadowsocksX-NG -[Travis CI]: https://travis-ci.org/shadowsocksr/shadowsocksr -[Windows]: https://github.com/shadowsocksr/shadowsocksr-csharp -[Wiki]: https://github.com/breakwa11/shadowsocks-rss/wiki diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.rst b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.rst deleted file mode 100644 index bf2a3ec32..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/README.rst +++ /dev/null @@ -1,113 +0,0 @@ -shadowsocks -=========== - -|PyPI version| |Build Status| |Coverage Status| - -A fast tunnel proxy that helps you bypass firewalls. - -Server ------- - -Install -~~~~~~~ - -Debian / Ubuntu: - -:: - - apt-get install python-pip - pip install shadowsocks - -CentOS: - -:: - - yum install python-setuptools && easy_install pip - pip install shadowsocks - -Windows: - -See `Install Server on -Windows `__ - -Usage -~~~~~ - -:: - - ssserver -p 443 -k password -m rc4-md5 - -To run in the background: - -:: - - sudo ssserver -p 443 -k password -m rc4-md5 --user nobody -d start - -To stop: - -:: - - sudo ssserver -d stop - -To check the log: - -:: - - sudo less /var/log/shadowsocks.log - -Check all the options via ``-h``. You can also use a -`Configuration `__ -file instead. - -Client ------- - -- `Windows `__ - / `OS - X `__ -- `Android `__ - / `iOS `__ -- `OpenWRT `__ - -Use GUI clients on your local PC/phones. Check the README of your client -for more information. - -Documentation -------------- - -You can find all the documentation in the -`Wiki `__. - -License -------- - -Copyright 2015 clowwindy - -Licensed under the Apache License, Version 2.0 (the "License"); you may -not use this file except in compliance with the License. You may obtain -a copy of the License at - -:: - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -Bugs and Issues ---------------- - -- `Troubleshooting `__ -- `Issue - Tracker `__ -- `Mailing list `__ - -.. |PyPI version| image:: https://img.shields.io/pypi/v/shadowsocks.svg?style=flat - :target: https://pypi.python.org/pypi/shadowsocks -.. |Build Status| image:: https://img.shields.io/travis/shadowsocks/shadowsocks/master.svg?style=flat - :target: https://travis-ci.org/shadowsocks/shadowsocks -.. |Coverage Status| image:: https://jenkins.shadowvpn.org/result/shadowsocks - :target: https://jenkins.shadowvpn.org/job/Shadowsocks/ws/PYENV/py34/label/linux/htmlcov/index.html diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/apiconfig.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/apiconfig.py deleted file mode 100644 index 5ee8be127..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/apiconfig.py +++ /dev/null @@ -1,15 +0,0 @@ -# Config -API_INTERFACE = 'sspanelv2' #mudbjson, sspanelv2, sspanelv3, sspanelv3ssr, glzjinmod, legendsockssr, muapiv2(not support) -UPDATE_TIME = 60 -SERVER_PUB_ADDR = '127.0.0.1' # mujson_mgr need this to generate ssr link - -#mudb -MUDB_FILE = 'mudb.json' - -# Mysql -MYSQL_CONFIG = 'usermysql.json' - -# API -MUAPI_CONFIG = 'usermuapi.json' - - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/asyncmgr.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/asyncmgr.py deleted file mode 100644 index 9bf4d0936..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/asyncmgr.py +++ /dev/null @@ -1,99 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright (c) 2014 clowwindy -# -# 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 -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import time -import os -import socket -import struct -import re -import logging -from shadowsocks import common -from shadowsocks import lru_cache -from shadowsocks import eventloop -import server_pool -import Config - -class ServerMgr(object): - - def __init__(self): - self._loop = None - self._request_id = 1 - self._hosts = {} - self._hostname_status = {} - self._hostname_to_cb = {} - self._cb_to_hostname = {} - self._last_time = time.time() - self._sock = None - self._servers = None - - def add_to_loop(self, loop): - if self._loop: - raise Exception('already add to loop') - self._loop = loop - # TODO when dns server is IPv6 - self._sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - self._sock.bind((Config.MANAGE_BIND_IP, Config.MANAGE_PORT)) - self._sock.setblocking(False) - loop.add(self._sock, eventloop.POLL_IN, self) - - def _handle_data(self, sock): - data, addr = sock.recvfrom(128) - #manage pwd:port:passwd:action - args = data.split(':') - if len(args) < 4: - return - if args[0] == Config.MANAGE_PASS: - if args[3] == '0': - server_pool.ServerPool.get_instance().cb_del_server(args[1]) - elif args[3] == '1': - server_pool.ServerPool.get_instance().new_server(args[1], args[2]) - - def handle_event(self, sock, fd, event): - if sock != self._sock: - return - if event & eventloop.POLL_ERR: - logging.error('mgr socket err') - self._loop.remove(self._sock) - self._sock.close() - # TODO when dns server is IPv6 - self._sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - self._sock.setblocking(False) - self._loop.add(self._sock, eventloop.POLL_IN, self) - else: - self._handle_data(sock) - - def close(self): - if self._sock: - if self._loop: - self._loop.remove(self._sock) - self._sock.close() - self._sock = None - - -def test(): - pass - -if __name__ == '__main__': - test() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/config.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/config.json deleted file mode 100644 index 55f12b5f4..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/config.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "server": "0.0.0.0", - "server_ipv6": "::", - "server_port": 8388, - "local_address": "127.0.0.1", - "local_port": 1080, - - "password": "m", - "method": "aes-128-ctr", - "protocol": "auth_aes128_md5", - "protocol_param": "", - "obfs": "tls1.2_ticket_auth_compatible", - "obfs_param": "", - "speed_limit_per_con": 0, - "speed_limit_per_user": 0, - - "additional_ports" : {}, // only works under multi-user mode - "additional_ports_only" : false, // only works under multi-user mode - "timeout": 120, - "udp_timeout": 60, - "dns_ipv6": false, - "connect_verbose_info": 0, - "redirect": "", - "fast_open": false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/configloader.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/configloader.py deleted file mode 100644 index cf9d61961..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/configloader.py +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/python -# -*- coding: UTF-8 -*- -import importloader - -g_config = None - -def load_config(): - global g_config - g_config = importloader.loads(['userapiconfig', 'apiconfig']) - -def get_config(): - return g_config - -load_config() - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/db_transfer.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/db_transfer.py deleted file mode 100644 index 67bda6083..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/db_transfer.py +++ /dev/null @@ -1,631 +0,0 @@ -#!/usr/bin/python -# -*- coding: UTF-8 -*- - -import logging -import time -import sys -from server_pool import ServerPool -import traceback -from shadowsocks import common, shell, lru_cache, obfs -from configloader import load_config, get_config -import importloader - -switchrule = None -db_instance = None - -class TransferBase(object): - def __init__(self): - import threading - self.event = threading.Event() - self.key_list = ['port', 'u', 'd', 'transfer_enable', 'passwd', 'enable'] - self.last_get_transfer = {} #上一次的实际流量 - self.last_update_transfer = {} #上一次更新到的流量(小于等于实际流量) - self.force_update_transfer = set() #强制推入数据库的ID - self.port_uid_table = {} #端口到uid的映射(仅v3以上有用) - self.onlineuser_cache = lru_cache.LRUCache(timeout=60*30) #用户在线状态记录 - self.pull_ok = False #记录是否已经拉出过数据 - self.mu_ports = {} - - def load_cfg(self): - pass - - def push_db_all_user(self): - if self.pull_ok is False: - return - #更新用户流量到数据库 - last_transfer = self.last_update_transfer - curr_transfer = ServerPool.get_instance().get_servers_transfer() - #上次和本次的增量 - dt_transfer = {} - for id in self.force_update_transfer: #此表中的用户统计上次未计入的流量 - if id in self.last_get_transfer and id in last_transfer: - dt_transfer[id] = [self.last_get_transfer[id][0] - last_transfer[id][0], self.last_get_transfer[id][1] - last_transfer[id][1]] - - for id in curr_transfer.keys(): - if id in self.force_update_transfer or id in self.mu_ports: - continue - #算出与上次记录的流量差值,保存于dt_transfer表 - if id in last_transfer: - if curr_transfer[id][0] + curr_transfer[id][1] - last_transfer[id][0] - last_transfer[id][1] <= 0: - continue - dt_transfer[id] = [curr_transfer[id][0] - last_transfer[id][0], - curr_transfer[id][1] - last_transfer[id][1]] - else: - if curr_transfer[id][0] + curr_transfer[id][1] <= 0: - continue - dt_transfer[id] = [curr_transfer[id][0], curr_transfer[id][1]] - - #有流量的,先记录在线状态 - if id in self.last_get_transfer: - if curr_transfer[id][0] + curr_transfer[id][1] > self.last_get_transfer[id][0] + self.last_get_transfer[id][1]: - self.onlineuser_cache[id] = curr_transfer[id][0] + curr_transfer[id][1] - else: - self.onlineuser_cache[id] = curr_transfer[id][0] + curr_transfer[id][1] - - self.onlineuser_cache.sweep() - - update_transfer = self.update_all_user(dt_transfer) #返回有更新的表 - for id in update_transfer.keys(): #其增量加在此表 - if id not in self.force_update_transfer: #但排除在force_update_transfer内的 - last = self.last_update_transfer.get(id, [0,0]) - self.last_update_transfer[id] = [last[0] + update_transfer[id][0], last[1] + update_transfer[id][1]] - self.last_get_transfer = curr_transfer - for id in self.force_update_transfer: - if id in self.last_update_transfer: - del self.last_update_transfer[id] - if id in self.last_get_transfer: - del self.last_get_transfer[id] - self.force_update_transfer = set() - - def del_server_out_of_bound_safe(self, last_rows, rows): - #停止超流量的服务 - #启动没超流量的服务 - try: - switchrule = importloader.load('switchrule') - except Exception as e: - logging.error('load switchrule.py fail') - cur_servers = {} - new_servers = {} - allow_users = {} - mu_servers = {} - config = shell.get_config(False) - for row in rows: - try: - allow = switchrule.isTurnOn(row) and row['enable'] == 1 and row['u'] + row['d'] < row['transfer_enable'] - except Exception as e: - allow = False - - port = row['port'] - passwd = common.to_bytes(row['passwd']) - if hasattr(passwd, 'encode'): - passwd = passwd.encode('utf-8') - cfg = {'password': passwd} - if 'id' in row: - self.port_uid_table[row['port']] = row['id'] - - read_config_keys = ['method', 'obfs', 'obfs_param', 'protocol', 'protocol_param', 'forbidden_ip', 'forbidden_port', 'speed_limit_per_con', 'speed_limit_per_user'] - for name in read_config_keys: - if name in row and row[name]: - cfg[name] = row[name] - - merge_config_keys = ['password'] + read_config_keys - for name in cfg.keys(): - if hasattr(cfg[name], 'encode'): - try: - cfg[name] = cfg[name].encode('utf-8') - except Exception as e: - logging.warning('encode cfg key "%s" fail, val "%s"' % (name, cfg[name])) - - if port not in cur_servers: - cur_servers[port] = passwd - else: - logging.error('more than one user use the same port [%s]' % (port,)) - continue - - if 'protocol' in cfg and 'protocol_param' in cfg and common.to_str(cfg['protocol']) in obfs.mu_protocol(): - if '#' in common.to_str(cfg['protocol_param']): - mu_servers[port] = passwd - allow = True - - if allow: - if port not in mu_servers: - allow_users[port] = cfg - - cfgchange = False - if port in ServerPool.get_instance().tcp_servers_pool: - relay = ServerPool.get_instance().tcp_servers_pool[port] - for name in merge_config_keys: - if name in cfg and not self.cmp(cfg[name], relay._config[name]): - cfgchange = True - break - if not cfgchange and port in ServerPool.get_instance().tcp_ipv6_servers_pool: - relay = ServerPool.get_instance().tcp_ipv6_servers_pool[port] - for name in merge_config_keys: - if (name in cfg) and ((name not in relay._config) or not self.cmp(cfg[name], relay._config[name])): - cfgchange = True - break - - if port in mu_servers: - if ServerPool.get_instance().server_is_run(port) > 0: - if cfgchange: - logging.info('db stop server at port [%s] reason: config changed: %s' % (port, cfg)) - ServerPool.get_instance().cb_del_server(port) - self.force_update_transfer.add(port) - new_servers[port] = (passwd, cfg) - else: - self.new_server(port, passwd, cfg) - else: - if ServerPool.get_instance().server_is_run(port) > 0: - if config['additional_ports_only'] or not allow: - logging.info('db stop server at port [%s]' % (port,)) - ServerPool.get_instance().cb_del_server(port) - self.force_update_transfer.add(port) - else: - if cfgchange: - logging.info('db stop server at port [%s] reason: config changed: %s' % (port, cfg)) - ServerPool.get_instance().cb_del_server(port) - self.force_update_transfer.add(port) - new_servers[port] = (passwd, cfg) - - elif not config['additional_ports_only'] and allow and port > 0 and port < 65536 and ServerPool.get_instance().server_run_status(port) is False: - self.new_server(port, passwd, cfg) - - for row in last_rows: - if row['port'] in cur_servers: - pass - else: - logging.info('db stop server at port [%s] reason: port not exist' % (row['port'])) - ServerPool.get_instance().cb_del_server(row['port']) - self.clear_cache(row['port']) - if row['port'] in self.port_uid_table: - del self.port_uid_table[row['port']] - - if len(new_servers) > 0: - from shadowsocks import eventloop - self.event.wait(eventloop.TIMEOUT_PRECISION + eventloop.TIMEOUT_PRECISION / 2) - for port in new_servers.keys(): - passwd, cfg = new_servers[port] - self.new_server(port, passwd, cfg) - - logging.debug('db allow users %s \nmu_servers %s' % (allow_users, mu_servers)) - for port in mu_servers: - ServerPool.get_instance().update_mu_users(port, allow_users) - - self.mu_ports = mu_servers - - def clear_cache(self, port): - if port in self.force_update_transfer: del self.force_update_transfer[port] - if port in self.last_get_transfer: del self.last_get_transfer[port] - if port in self.last_update_transfer: del self.last_update_transfer[port] - - def new_server(self, port, passwd, cfg): - protocol = cfg.get('protocol', ServerPool.get_instance().config.get('protocol', 'origin')) - method = cfg.get('method', ServerPool.get_instance().config.get('method', 'None')) - obfs = cfg.get('obfs', ServerPool.get_instance().config.get('obfs', 'plain')) - logging.info('db start server at port [%s] pass [%s] protocol [%s] method [%s] obfs [%s]' % (port, passwd, protocol, method, obfs)) - ServerPool.get_instance().new_server(port, cfg) - - def cmp(self, val1, val2): - if type(val1) is bytes: - val1 = common.to_str(val1) - if type(val2) is bytes: - val2 = common.to_str(val2) - return val1 == val2 - - @staticmethod - def del_servers(): - for port in [v for v in ServerPool.get_instance().tcp_servers_pool.keys()]: - if ServerPool.get_instance().server_is_run(port) > 0: - ServerPool.get_instance().cb_del_server(port) - for port in [v for v in ServerPool.get_instance().tcp_ipv6_servers_pool.keys()]: - if ServerPool.get_instance().server_is_run(port) > 0: - ServerPool.get_instance().cb_del_server(port) - - @staticmethod - def thread_db(obj): - import socket - import time - global db_instance - timeout = 60 - socket.setdefaulttimeout(timeout) - last_rows = [] - db_instance = obj() - ServerPool.get_instance() - shell.log_shadowsocks_version() - - try: - import resource - logging.info('current process RLIMIT_NOFILE resource: soft %d hard %d' % resource.getrlimit(resource.RLIMIT_NOFILE)) - except: - pass - - try: - while True: - load_config() - db_instance.load_cfg() - try: - db_instance.push_db_all_user() - rows = db_instance.pull_db_all_user() - if rows: - db_instance.pull_ok = True - config = shell.get_config(False) - for port in config['additional_ports']: - val = config['additional_ports'][port] - val['port'] = int(port) - val['enable'] = 1 - val['transfer_enable'] = 1024 ** 7 - val['u'] = 0 - val['d'] = 0 - if "password" in val: - val["passwd"] = val["password"] - rows.append(val) - db_instance.del_server_out_of_bound_safe(last_rows, rows) - last_rows = rows - except Exception as e: - trace = traceback.format_exc() - logging.error(trace) - #logging.warn('db thread except:%s' % e) - if db_instance.event.wait(get_config().UPDATE_TIME) or not ServerPool.get_instance().thread.is_alive(): - break - except KeyboardInterrupt as e: - pass - db_instance.del_servers() - ServerPool.get_instance().stop() - db_instance = None - - @staticmethod - def thread_db_stop(): - global db_instance - db_instance.event.set() - -class DbTransfer(TransferBase): - def __init__(self): - super(DbTransfer, self).__init__() - self.user_pass = {} #记录更新此用户流量时被跳过多少次 - self.cfg = { - "host": "127.0.0.1", - "port": 3306, - "user": "ss", - "password": "pass", - "db": "shadowsocks", - "node_id": 0, - "transfer_mul": 1.0, - "ssl_enable": 0, - "ssl_ca": "", - "ssl_cert": "", - "ssl_key": ""} - self.load_cfg() - - def load_cfg(self): - import json - config_path = get_config().MYSQL_CONFIG - cfg = None - with open(config_path, 'rb+') as f: - cfg = json.loads(f.read().decode('utf8')) - - if cfg: - self.cfg.update(cfg) - - def update_all_user(self, dt_transfer): - import cymysql - update_transfer = {} - - query_head = 'UPDATE user' - query_sub_when = '' - query_sub_when2 = '' - query_sub_in = None - last_time = time.time() - - for id in dt_transfer.keys(): - transfer = dt_transfer[id] - #小于最低更新流量的先不更新 - update_trs = 1024 * (2048 - self.user_pass.get(id, 0) * 64) - if transfer[0] + transfer[1] < update_trs and id not in self.force_update_transfer: - self.user_pass[id] = self.user_pass.get(id, 0) + 1 - continue - if id in self.user_pass: - del self.user_pass[id] - - query_sub_when += ' WHEN %s THEN u+%s' % (id, int(transfer[0] * self.cfg["transfer_mul"])) - query_sub_when2 += ' WHEN %s THEN d+%s' % (id, int(transfer[1] * self.cfg["transfer_mul"])) - update_transfer[id] = transfer - - if query_sub_in is not None: - query_sub_in += ',%s' % id - else: - query_sub_in = '%s' % id - - if query_sub_when == '': - return update_transfer - query_sql = query_head + ' SET u = CASE port' + query_sub_when + \ - ' END, d = CASE port' + query_sub_when2 + \ - ' END, t = ' + str(int(last_time)) + \ - ' WHERE port IN (%s)' % query_sub_in - if self.cfg["ssl_enable"] == 1: - conn = cymysql.connect(host=self.cfg["host"], port=self.cfg["port"], - user=self.cfg["user"], passwd=self.cfg["password"], - db=self.cfg["db"], charset='utf8', - ssl={'ca':self.cfg["ssl_ca"],'cert':self.cfg["ssl_cert"],'key':self.cfg["ssl_key"]}) - else: - conn = cymysql.connect(host=self.cfg["host"], port=self.cfg["port"], - user=self.cfg["user"], passwd=self.cfg["password"], - db=self.cfg["db"], charset='utf8') - - try: - cur = conn.cursor() - try: - cur.execute(query_sql) - except Exception as e: - logging.error(e) - update_transfer = {} - - cur.close() - conn.commit() - except Exception as e: - logging.error(e) - update_transfer = {} - finally: - conn.close() - - return update_transfer - - def pull_db_all_user(self): - import cymysql - #数据库所有用户信息 - if self.cfg["ssl_enable"] == 1: - conn = cymysql.connect(host=self.cfg["host"], port=self.cfg["port"], - user=self.cfg["user"], passwd=self.cfg["password"], - db=self.cfg["db"], charset='utf8', - ssl={'ca':self.cfg["ssl_ca"],'cert':self.cfg["ssl_cert"],'key':self.cfg["ssl_key"]}) - else: - conn = cymysql.connect(host=self.cfg["host"], port=self.cfg["port"], - user=self.cfg["user"], passwd=self.cfg["password"], - db=self.cfg["db"], charset='utf8') - - try: - rows = self.pull_db_users(conn) - finally: - conn.close() - - if not rows: - logging.warn('no user in db') - return rows - - def pull_db_users(self, conn): - try: - switchrule = importloader.load('switchrule') - keys = switchrule.getKeys(self.key_list) - except Exception as e: - keys = self.key_list - - cur = conn.cursor() - cur.execute("SELECT " + ','.join(keys) + " FROM user") - rows = [] - for r in cur.fetchall(): - d = {} - for column in range(len(keys)): - d[keys[column]] = r[column] - rows.append(d) - cur.close() - return rows - -class Dbv3Transfer(DbTransfer): - def __init__(self): - super(Dbv3Transfer, self).__init__() - self.update_node_state = True if get_config().API_INTERFACE != 'legendsockssr' else False - if self.update_node_state: - self.key_list += ['id'] - self.key_list += ['method'] - if self.update_node_state: - self.ss_node_info_name = 'ss_node_info_log' - if get_config().API_INTERFACE == 'sspanelv3ssr': - self.key_list += ['obfs', 'protocol'] - if get_config().API_INTERFACE == 'glzjinmod': - self.key_list += ['obfs', 'protocol'] - self.ss_node_info_name = 'ss_node_info' - else: - self.key_list += ['obfs', 'protocol'] - self.start_time = time.time() - - def update_all_user(self, dt_transfer): - import cymysql - update_transfer = {} - - query_head = 'UPDATE user' - query_sub_when = '' - query_sub_when2 = '' - query_sub_in = None - last_time = time.time() - - alive_user_count = len(self.onlineuser_cache) - bandwidth_thistime = 0 - - if self.cfg["ssl_enable"] == 1: - conn = cymysql.connect(host=self.cfg["host"], port=self.cfg["port"], - user=self.cfg["user"], passwd=self.cfg["password"], - db=self.cfg["db"], charset='utf8', - ssl={'ca':self.cfg["ssl_ca"],'cert':self.cfg["ssl_cert"],'key':self.cfg["ssl_key"]}) - else: - conn = cymysql.connect(host=self.cfg["host"], port=self.cfg["port"], - user=self.cfg["user"], passwd=self.cfg["password"], - db=self.cfg["db"], charset='utf8') - conn.autocommit(True) - - for id in dt_transfer.keys(): - transfer = dt_transfer[id] - bandwidth_thistime = bandwidth_thistime + transfer[0] + transfer[1] - - update_trs = 1024 * (2048 - self.user_pass.get(id, 0) * 64) - if transfer[0] + transfer[1] < update_trs: - self.user_pass[id] = self.user_pass.get(id, 0) + 1 - continue - if id in self.user_pass: - del self.user_pass[id] - - query_sub_when += ' WHEN %s THEN u+%s' % (id, int(transfer[0] * self.cfg["transfer_mul"])) - query_sub_when2 += ' WHEN %s THEN d+%s' % (id, int(transfer[1] * self.cfg["transfer_mul"])) - update_transfer[id] = transfer - - if self.update_node_state: - cur = conn.cursor() - try: - if id in self.port_uid_table: - cur.execute("INSERT INTO `user_traffic_log` (`id`, `user_id`, `u`, `d`, `node_id`, `rate`, `traffic`, `log_time`) VALUES (NULL, '" + \ - str(self.port_uid_table[id]) + "', '" + str(transfer[0]) + "', '" + str(transfer[1]) + "', '" + \ - str(self.cfg["node_id"]) + "', '" + str(self.cfg["transfer_mul"]) + "', '" + \ - self.traffic_format((transfer[0] + transfer[1]) * self.cfg["transfer_mul"]) + "', unix_timestamp()); ") - except: - logging.warn('no `user_traffic_log` in db') - cur.close() - - if query_sub_in is not None: - query_sub_in += ',%s' % id - else: - query_sub_in = '%s' % id - - if query_sub_when != '': - query_sql = query_head + ' SET u = CASE port' + query_sub_when + \ - ' END, d = CASE port' + query_sub_when2 + \ - ' END, t = ' + str(int(last_time)) + \ - ' WHERE port IN (%s)' % query_sub_in - cur = conn.cursor() - try: - cur.execute(query_sql) - except Exception as e: - logging.error(e) - cur.close() - - if self.update_node_state: - try: - cur = conn.cursor() - try: - cur.execute("INSERT INTO `ss_node_online_log` (`id`, `node_id`, `online_user`, `log_time`) VALUES (NULL, '" + \ - str(self.cfg["node_id"]) + "', '" + str(alive_user_count) + "', unix_timestamp()); ") - except Exception as e: - logging.error(e) - cur.close() - - cur = conn.cursor() - try: - cur.execute("INSERT INTO `" + self.ss_node_info_name + "` (`id`, `node_id`, `uptime`, `load`, `log_time`) VALUES (NULL, '" + \ - str(self.cfg["node_id"]) + "', '" + str(self.uptime()) + "', '" + \ - str(self.load()) + "', unix_timestamp()); ") - except Exception as e: - logging.error(e) - cur.close() - except: - logging.warn('no `ss_node_online_log` or `" + self.ss_node_info_name + "` in db') - - conn.close() - return update_transfer - - def pull_db_users(self, conn): - try: - switchrule = importloader.load('switchrule') - keys = switchrule.getKeys(self.key_list) - except Exception as e: - keys = self.key_list - - cur = conn.cursor() - - if self.update_node_state: - node_info_keys = ['traffic_rate'] - try: - cur.execute("SELECT " + ','.join(node_info_keys) +" FROM ss_node where `id`='" + str(self.cfg["node_id"]) + "'") - nodeinfo = cur.fetchone() - except Exception as e: - logging.error(e) - nodeinfo = None - - if nodeinfo == None: - rows = [] - cur.close() - conn.commit() - logging.warn('None result when select node info from ss_node in db, maybe you set the incorrect node id') - return rows - cur.close() - - node_info_dict = {} - for column in range(len(nodeinfo)): - node_info_dict[node_info_keys[column]] = nodeinfo[column] - self.cfg['transfer_mul'] = float(node_info_dict['traffic_rate']) - - cur = conn.cursor() - try: - rows = [] - cur.execute("SELECT " + ','.join(keys) + " FROM user") - for r in cur.fetchall(): - d = {} - for column in range(len(keys)): - d[keys[column]] = r[column] - rows.append(d) - except Exception as e: - logging.error(e) - cur.close() - return rows - - def load(self): - import os - return os.popen("cat /proc/loadavg | awk '{ print $1\" \"$2\" \"$3 }'").readlines()[0] - - def uptime(self): - return time.time() - self.start_time - - def traffic_format(self, traffic): - if traffic < 1024 * 8: - return str(int(traffic)) + "B"; - - if traffic < 1024 * 1024 * 2: - return str(round((traffic / 1024.0), 2)) + "KB"; - - return str(round((traffic / 1048576.0), 2)) + "MB"; - -class MuJsonTransfer(TransferBase): - def __init__(self): - super(MuJsonTransfer, self).__init__() - - def update_all_user(self, dt_transfer): - import json - rows = None - - config_path = get_config().MUDB_FILE - with open(config_path, 'rb+') as f: - rows = json.loads(f.read().decode('utf8')) - for row in rows: - if "port" in row: - port = row["port"] - if port in dt_transfer: - row["u"] += dt_transfer[port][0] - row["d"] += dt_transfer[port][1] - - if rows: - output = json.dumps(rows, sort_keys=True, indent=4, separators=(',', ': ')) - with open(config_path, 'r+') as f: - f.write(output) - f.truncate() - - return dt_transfer - - def pull_db_all_user(self): - import json - rows = None - - config_path = get_config().MUDB_FILE - with open(config_path, 'rb+') as f: - rows = json.loads(f.read().decode('utf8')) - for row in rows: - try: - if 'forbidden_ip' in row: - row['forbidden_ip'] = common.IPNetwork(row['forbidden_ip']) - except Exception as e: - logging.error(e) - try: - if 'forbidden_port' in row: - row['forbidden_port'] = common.PortRange(row['forbidden_port']) - except Exception as e: - logging.error(e) - - if not rows: - logging.warn('no user in json file') - return rows - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/changelog b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/changelog deleted file mode 100644 index 4e7ad163f..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/changelog +++ /dev/null @@ -1,5 +0,0 @@ -shadowsocks (2.1.0-1) unstable; urgency=low - - * Initial release (Closes: #758900) - - -- Shell.Xu Sat, 23 Aug 2014 00:56:04 +0800 diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/compat b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/compat deleted file mode 100644 index 45a4fb75d..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/compat +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/config.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/config.json deleted file mode 100644 index 35cb14a6c..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/config.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "server":"my_server_ip", - "server_port":8388, - "local_address": "127.0.0.1", - "local_port":1080, - "password":"mypassword", - "timeout":300, - "method":"aes-256-cfb", - "fast_open": false, - "workers": 1 -} \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/control b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/control deleted file mode 100644 index da0092004..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/control +++ /dev/null @@ -1,19 +0,0 @@ -Source: shadowsocks -Section: python -Priority: extra -Maintainer: Shell.Xu -Build-Depends: debhelper (>= 8), python-all (>= 2.6.6-3~), python-setuptools -Standards-Version: 3.9.5 -Homepage: https://github.com/clowwindy/shadowsocks -Vcs-Git: git://github.com/shell909090/shadowsocks.git -Vcs-Browser: http://github.com/shell909090/shadowsocks - -Package: shadowsocks -Architecture: all -Pre-Depends: dpkg (>= 1.15.6~) -Depends: ${misc:Depends}, ${python:Depends}, python-pkg-resources, python-m2crypto -Description: Fast tunnel proxy that helps you bypass firewalls - A secure socks5 proxy, designed to protect your Internet traffic. - . - This package contain local and server part of shadowsocks, a fast, - powerful tunnel proxy to bypass firewalls. \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/copyright b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/copyright deleted file mode 100644 index 7be81625e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/copyright +++ /dev/null @@ -1,30 +0,0 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: shadowsocks -Source: https://github.com/clowwindy/shadowsocks - -Files: debian/* -Copyright: 2014 Shell.Xu -License: Expat - -Files: * -Copyright: 2014 clowwindy -License: Expat - -License: Expat - 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 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE. diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/docs b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/docs deleted file mode 100644 index 0208fc1fe..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/docs +++ /dev/null @@ -1,2 +0,0 @@ -README.md -README.rst diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/init.d b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/init.d deleted file mode 100644 index 2f4f3521e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/init.d +++ /dev/null @@ -1,149 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: shadowsocks -# Required-Start: $network $local_fs $remote_fs -# Required-Stop: $network $local_fs $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Fast tunnel proxy that helps you bypass firewalls -# Description: A secure socks5 proxy, designed to protect your Internet traffic. -# This package contain local and server part of shadowsocks, a fast, -# powerful tunnel proxy to bypass firewalls. -### END INIT INFO - -# Author: Shell.Xu - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC=shadowsocks # Introduce a short description here -NAME=shadowsocks # Introduce the short server's name here -DAEMON=/usr/bin/ssserver # Introduce the server's location here -DAEMON_ARGS="" # Arguments to run the daemon with -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -LOGFILE=/var/log/$NAME.log - -# 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 - -# 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() -{ - # 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 --exec $DAEMON \ - --background --make-pidfile --chdir / --chuid $USERID --no-close --test > /dev/null \ - || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON \ - --background --make-pidfile --chdir / --chuid $USERID --no-close -- \ - $DAEMON_ARGS $DAEMON_OPTS >> $LOGFILE 2>&1 \ - || return 2 - # Add code here, if necessary, that waits for the process to be ready - # to handle requests from services started subsequently which depend - # on this one. As a last resort, sleep for some time. -} - -# -# 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=TERM/30/KILL/5 --pidfile $PIDFILE - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - return "$RETVAL" -} - -# -# Function that sends a SIGHUP to the daemon/service -# -do_reload() { - # - # If the daemon can reload its configuration without - # restarting (for example, when it is sent a SIGHUP), - # then implement that here. - # - start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME - return 0 -} - -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 $? - ;; - #reload|force-reload) - # - # If do_reload() is not implemented then leave this commented out - # and leave 'force-reload' as an alias for 'restart'. - # - #log_daemon_msg "Reloading $DESC" "$NAME" - #do_reload - #log_end_msg $? - #;; - restart|force-reload) - # - # If the "reload" option is implemented then remove the - # 'force-reload' alias - # - 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|restart|reload|force-reload}" >&2 - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac - -: diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/install b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/install deleted file mode 100644 index a61486462..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/install +++ /dev/null @@ -1 +0,0 @@ -debian/config.json etc/shadowsocks/ \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/rules b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/rules deleted file mode 100755 index 62e2bb6f6..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/rules +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- - -%: - dh $@ --with python2 --buildsystem=python_distutils diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.default b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.default deleted file mode 100644 index a52060279..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.default +++ /dev/null @@ -1,12 +0,0 @@ -# Defaults for shadowsocks initscript -# sourced by /etc/init.d/shadowsocks -# installed at /etc/default/shadowsocks by the maintainer scripts - -USERID="nobody" - -# -# This is a POSIX shell fragment -# - -# Additional options that are passed to the Daemon. -DAEMON_OPTS="-q -c /etc/shadowsocks/config.json" diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.manpages b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.manpages deleted file mode 100644 index 3df8a3341..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/shadowsocks.manpages +++ /dev/null @@ -1,2 +0,0 @@ -debian/sslocal.1 -debian/ssserver.1 \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/source/format b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/source/format deleted file mode 100644 index 163aaf8d8..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/sslocal.1 b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/sslocal.1 deleted file mode 100644 index 0c2cf5165..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/sslocal.1 +++ /dev/null @@ -1,59 +0,0 @@ -.\" Hey, EMACS: -*- nroff -*- -.\" (C) Copyright 2014 Shell.Xu , -.\" -.TH SHADOWSOCKS 1 "August 23, 2014" -.SH NAME -shadowsocks \- Fast tunnel proxy that helps you bypass firewalls -.SH SYNOPSIS -.B ssserver -.RI [ options ] -.br -.B sslocal -.RI [ options ] -.SH DESCRIPTION -shadowsocks is a tunnel proxy helps you bypass firewall. -.B ssserver -is the server part, and -.B sslocal -is the local part. -.SH OPTIONS -.TP -.B \-h, \-\-help -Show this help message and exit. -.TP -.B \-s SERVER_ADDR -Server address, default: 0.0.0.0. -.TP -.B \-p SERVER_PORT -Server port, default: 8388. -.TP -.B \-k PASSWORD -Password. -.TP -.B \-m METHOD -Encryption method, default: aes-256-cfb. -.TP -.B \-t TIMEOUT -Timeout in seconds, default: 300. -.TP -.B \-c CONFIG -Path to config file. -.TP -.B \-\-fast-open -Use TCP_FASTOPEN, requires Linux 3.7+. -.TP -.B \-\-workers WORKERS -Number of workers, available on Unix/Linux. -.TP -.B \-v, \-vv -Verbose mode. -.TP -.B \-q, \-qq -Quiet mode, only show warnings/errors. -.SH SEE ALSO -.br -The programs are documented fully by -.IR "Shell Xu " -and -.IR "Clowwindy ", -available via the Info system. diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/ssserver.1 b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/ssserver.1 deleted file mode 100644 index 0c2cf5165..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/debian/ssserver.1 +++ /dev/null @@ -1,59 +0,0 @@ -.\" Hey, EMACS: -*- nroff -*- -.\" (C) Copyright 2014 Shell.Xu , -.\" -.TH SHADOWSOCKS 1 "August 23, 2014" -.SH NAME -shadowsocks \- Fast tunnel proxy that helps you bypass firewalls -.SH SYNOPSIS -.B ssserver -.RI [ options ] -.br -.B sslocal -.RI [ options ] -.SH DESCRIPTION -shadowsocks is a tunnel proxy helps you bypass firewall. -.B ssserver -is the server part, and -.B sslocal -is the local part. -.SH OPTIONS -.TP -.B \-h, \-\-help -Show this help message and exit. -.TP -.B \-s SERVER_ADDR -Server address, default: 0.0.0.0. -.TP -.B \-p SERVER_PORT -Server port, default: 8388. -.TP -.B \-k PASSWORD -Password. -.TP -.B \-m METHOD -Encryption method, default: aes-256-cfb. -.TP -.B \-t TIMEOUT -Timeout in seconds, default: 300. -.TP -.B \-c CONFIG -Path to config file. -.TP -.B \-\-fast-open -Use TCP_FASTOPEN, requires Linux 3.7+. -.TP -.B \-\-workers WORKERS -Number of workers, available on Unix/Linux. -.TP -.B \-v, \-vv -Verbose mode. -.TP -.B \-q, \-qq -Quiet mode, only show warnings/errors. -.SH SEE ALSO -.br -The programs are documented fully by -.IR "Shell Xu " -and -.IR "Clowwindy ", -available via the Info system. diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/importloader.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/importloader.py deleted file mode 100644 index c917cb7d9..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/importloader.py +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/python -# -*- coding: UTF-8 -*- - -def load(name): - try: - obj = __import__(name) - reload(obj) - return obj - except: - pass - - try: - import importlib - obj = importlib.__import__(name) - importlib.reload(obj) - return obj - except: - pass - -def loads(namelist): - for name in namelist: - obj = load(name) - if obj is not None: - return obj diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.bat b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.bat deleted file mode 100644 index 6d0bce695..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -If Not Exist "userapiconfig.py" Copy "apiconfig.py" "userapiconfig.py" -If Not Exist "user-config.json" Copy "config.json" "user-config.json" -If Not Exist "usermysql.json" Copy "mysql.json" "usermysql.json" diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.sh deleted file mode 100755 index 862d1abed..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initcfg.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -chmod +x *.sh -chmod +x shadowsocks/*.sh -cp -n apiconfig.py userapiconfig.py -cp -n config.json user-config.json -cp -n mysql.json usermysql.json - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initmudbjson.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initmudbjson.sh deleted file mode 100755 index 09b07f332..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/initmudbjson.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -bash initcfg.sh -sed -i "s/API_INTERFACE = .\+\?\#/API_INTERFACE = \'mudbjson\' \#/g" userapiconfig.py -ip_addr=`ifconfig -a|grep inet|grep -v inet6|grep -v "127.0.0."|grep -v -e "192\.168\..[0-9]\+\.[0-9]\+"|grep -v -e "10\.[0-9]\+\.[0-9]\+\.[0-9]\+"|awk '{print $2}'|tr -d "addr:"` -ip_count=`echo $ip_addr|grep -e "^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$" -c` - -if [[ $ip_count == 1 ]]; then - ip_addr=`ip a|grep inet|grep -v inet6|grep -v "127.0.0."|grep -v -e "192\.168\..[0-9]\+\.[0-9]\+"|grep -v -e "10\.[0-9]\+\.[0-9]\+\.[0-9]\+"|awk '{print $2}'` - ip_addr=${ip_addr%/*} - ip_count=`echo $ip_addr|grep -e "^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$" -c` -fi -if [[ $ip_count == 1 ]]; then - echo "server IP is "${ip_addr} - sed -i "s/SERVER_PUB_ADDR = .\+/SERVER_PUB_ADDR = \'"${ip_addr}"\'/g" userapiconfig.py - user_count=`python mujson_mgr.py -l|grep -c -e "[0-9]"` - if [[ $user_count == 0 ]]; then - port=`python -c 'import random;print(random.randint(10000, 65536))'` - python mujson_mgr.py -a -p ${port} - fi -else - echo "unable to detect server IP" -fi - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/logrun.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/logrun.sh deleted file mode 100755 index 94153fe9e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/logrun.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -cd `dirname $0` -python_ver=$(ls /usr/bin|grep -e "^python[23]\.[1-9]\+$"|tail -1) -eval $(ps -ef | grep "[0-9] ${python_ver} server\\.py m" | awk '{print "kill "$2}') -ulimit -n 512000 -nohup ${python_ver} server.py m>> ssserver.log 2>&1 & - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mudb.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mudb.json deleted file mode 100644 index 0d4f101c7..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mudb.json +++ /dev/null @@ -1,2 +0,0 @@ -[ -] diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mujson_mgr.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mujson_mgr.py deleted file mode 100644 index 2eb05d59d..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mujson_mgr.py +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/python -# -*- coding: UTF-8 -*- - -import traceback -from shadowsocks import shell, common -from configloader import load_config, get_config -import random -import getopt -import sys -import json -import base64 - - -class MuJsonLoader(object): - def __init__(self): - self.json = None - - def load(self, path): - l = "[]" - try: - with open(path, 'rb+') as f: - l = f.read().decode('utf8') - except: - pass - self.json = json.loads(l) - - def save(self, path): - if self.json is not None: - output = json.dumps(self.json, sort_keys=True, indent=4, separators=(',', ': ')) - with open(path, 'a'): - pass - with open(path, 'rb+') as f: - f.write(output.encode('utf8')) - f.truncate() - - -class MuMgr(object): - def __init__(self): - self.config_path = get_config().MUDB_FILE - try: - self.server_addr = get_config().SERVER_PUB_ADDR - except: - self.server_addr = '127.0.0.1' - self.data = MuJsonLoader() - - if self.server_addr == '127.0.0.1': - self.server_addr = self.getipaddr() - - def getipaddr(self, ifname='eth0'): - import socket - import struct - ret = '127.0.0.1' - try: - ret = socket.gethostbyname(socket.getfqdn(socket.gethostname())) - except: - pass - if ret == '127.0.0.1': - try: - import fcntl - s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - ret = socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24]) - except: - pass - return ret - - def ssrlink(self, user, encode, muid): - protocol = user.get('protocol', '') - obfs = user.get('obfs', '') - protocol = protocol.replace("_compatible", "") - obfs = obfs.replace("_compatible", "") - protocol_param = '' - if muid is not None: - protocol_param_ = user.get('protocol_param', '') - param = protocol_param_.split('#') - if len(param) == 2: - for row in self.data.json: - if int(row['port']) == muid: - param = str(muid) + ':' + row['passwd'] - protocol_param = '/?protoparam=' + common.to_str(base64.urlsafe_b64encode(common.to_bytes(param))).replace("=", "") - break - link = ("%s:%s:%s:%s:%s:%s" % (self.server_addr, user['port'], protocol, user['method'], obfs, common.to_str(base64.urlsafe_b64encode(common.to_bytes(user['passwd']))).replace("=", ""))) + protocol_param - return "ssr://" + (encode and common.to_str(base64.urlsafe_b64encode(common.to_bytes(link))).replace("=", "") or link) - - def userinfo(self, user, muid = None): - ret = "" - key_list = ['user', 'port', 'method', 'passwd', 'protocol', 'protocol_param', 'obfs', 'obfs_param', 'transfer_enable', 'u', 'd'] - for key in sorted(user): - if key not in key_list: - key_list.append(key) - for key in key_list: - if key in ['enable'] or key not in user: - continue - ret += '\n' - if (muid is not None) and (key in ['protocol_param']): - for row in self.data.json: - if int(row['port']) == muid: - ret += " %s : %s" % (key, str(muid) + ':' + row['passwd']) - break - elif key in ['transfer_enable', 'u', 'd']: - if muid is not None: - for row in self.data.json: - if int(row['port']) == muid: - val = row[key] - break - else: - val = user[key] - if val / 1024 < 4: - ret += " %s : %s" % (key, val) - elif val / 1024 ** 2 < 4: - val /= float(1024) - ret += " %s : %s K Bytes" % (key, val) - elif val / 1024 ** 3 < 4: - val /= float(1024 ** 2) - ret += " %s : %s M Bytes" % (key, val) - else: - val /= float(1024 ** 3) - ret += " %s : %s G Bytes" % (key, val) - else: - ret += " %s : %s" % (key, user[key]) - ret += "\n " + self.ssrlink(user, False, muid) - ret += "\n " + self.ssrlink(user, True, muid) - return ret - - def rand_pass(self): - return ''.join([random.choice('''ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789~-_=+(){}[]^&%$@''') for i in range(8)]) - - def add(self, user): - up = {'enable': 1, 'u': 0, 'd': 0, 'method': "aes-128-ctr", - 'protocol': "auth_aes128_md5", - 'obfs': "tls1.2_ticket_auth_compatible", - 'transfer_enable': 9007199254740992} - up['passwd'] = self.rand_pass() - up.update(user) - - self.data.load(self.config_path) - for row in self.data.json: - match = False - if 'user' in user and row['user'] == user['user']: - match = True - if 'port' in user and row['port'] == user['port']: - match = True - if match: - print("user [%s] port [%s] already exist" % (row['user'], row['port'])) - return - self.data.json.append(up) - print("### add user info %s" % self.userinfo(up)) - self.data.save(self.config_path) - - def edit(self, user): - self.data.load(self.config_path) - for row in self.data.json: - match = True - if 'user' in user and row['user'] != user['user']: - match = False - if 'port' in user and row['port'] != user['port']: - match = False - if match: - print("edit user [%s]" % (row['user'],)) - row.update(user) - print("### new user info %s" % self.userinfo(row)) - break - self.data.save(self.config_path) - - def delete(self, user): - self.data.load(self.config_path) - index = 0 - for row in self.data.json: - match = True - if 'user' in user and row['user'] != user['user']: - match = False - if 'port' in user and row['port'] != user['port']: - match = False - if match: - print("delete user [%s]" % row['user']) - del self.data.json[index] - break - index += 1 - self.data.save(self.config_path) - - def clear_ud(self, user): - up = {'u': 0, 'd': 0} - self.data.load(self.config_path) - for row in self.data.json: - match = True - if 'user' in user and row['user'] != user['user']: - match = False - if 'port' in user and row['port'] != user['port']: - match = False - if match: - row.update(up) - print("clear user [%s]" % row['user']) - self.data.save(self.config_path) - - def list_user(self, user): - self.data.load(self.config_path) - if not user: - for row in self.data.json: - print("user [%s] port %s" % (row['user'], row['port'])) - return - for row in self.data.json: - match = True - if 'user' in user and row['user'] != user['user']: - match = False - if 'port' in user and row['port'] != user['port']: - match = False - if match: - muid = None - if 'muid' in user: - muid = user['muid'] - print("### user [%s] info %s" % (row['user'], self.userinfo(row, muid))) - - -def print_server_help(): - print('''usage: python mujson_manage.py -a|-d|-e|-c|-l [OPTION]... - -Actions: - -a add/edit a user - -d delete a user - -e edit a user - -c set u&d to zero - -l display a user infomation or all users infomation - -Options: - -u USER the user name - -p PORT server port (only this option must be set if add a user) - -k PASSWORD password - -m METHOD encryption method, default: aes-128-ctr - -O PROTOCOL protocol plugin, default: auth_aes128_md5 - -o OBFS obfs plugin, default: tls1.2_ticket_auth_compatible - -G PROTOCOL_PARAM protocol plugin param - -g OBFS_PARAM obfs plugin param - -t TRANSFER max transfer for G bytes, default: 8388608 (8 PB or 8192 TB) - -f FORBID set forbidden ports. Example (ban 1~79 and 81~100): -f "1-79,81-100" - -i MUID set sub id to display (only work with -l) - -s SPEED set speed_limit_per_con - -S SPEED set speed_limit_per_user - -General options: - -h, --help show this help message and exit -''') - - -def main(): - shortopts = 'adeclu:i:p:k:O:o:G:g:m:t:f:hs:S:' - longopts = ['help'] - action = None - user = {} - fast_set_obfs = {'0': 'plain', - '+1': 'http_simple_compatible', - '1': 'http_simple', - '+2': 'tls1.2_ticket_auth_compatible', - '2': 'tls1.2_ticket_auth'} - fast_set_protocol = {'0': 'origin', - 's4': 'auth_sha1_v4', - '+s4': 'auth_sha1_v4_compatible', - 'am': 'auth_aes128_md5', - 'as': 'auth_aes128_sha1', - 'ca': 'auth_chain_a', - } - fast_set_method = {'0': 'none', - 'a1c': 'aes-128-cfb', - 'a2c': 'aes-192-cfb', - 'a3c': 'aes-256-cfb', - 'r': 'rc4-md5', - 'r6': 'rc4-md5-6', - 'c': 'chacha20', - 'ci': 'chacha20-ietf', - 's': 'salsa20', - 'a1': 'aes-128-ctr', - 'a2': 'aes-192-ctr', - 'a3': 'aes-256-ctr'} - try: - optlist, args = getopt.getopt(sys.argv[1:], shortopts, longopts) - for key, value in optlist: - if key == '-a': - action = 1 - elif key == '-d': - action = 2 - elif key == '-e': - action = 3 - elif key == '-l': - action = 4 - elif key == '-c': - action = 0 - elif key == '-u': - user['user'] = value - elif key == '-i': - user['muid'] = int(value) - elif key == '-p': - user['port'] = int(value) - elif key == '-k': - user['passwd'] = value - elif key == '-o': - if value in fast_set_obfs: - user['obfs'] = fast_set_obfs[value] - else: - user['obfs'] = value - elif key == '-O': - if value in fast_set_protocol: - user['protocol'] = fast_set_protocol[value] - else: - user['protocol'] = value - elif key == '-g': - user['obfs_param'] = value - elif key == '-G': - user['protocol_param'] = value - elif key == '-s': - user['speed_limit_per_con'] = int(value) - elif key == '-S': - user['speed_limit_per_user'] = int(value) - elif key == '-m': - if value in fast_set_method: - user['method'] = fast_set_method[value] - else: - user['method'] = value - elif key == '-f': - user['forbidden_port'] = value - elif key == '-t': - val = float(value) - try: - val = int(value) - except: - pass - user['transfer_enable'] = int(val * 1024) * (1024 ** 2) - elif key in ('-h', '--help'): - print_server_help() - sys.exit(0) - except getopt.GetoptError as e: - print(e) - sys.exit(2) - - manage = MuMgr() - if action == 0: - manage.clear_ud(user) - elif action == 1: - if 'user' not in user and 'port' in user: - user['user'] = str(user['port']) - if 'user' in user and 'port' in user: - manage.add(user) - else: - print("You have to set the port with -p") - elif action == 2: - if 'user' in user or 'port' in user: - manage.delete(user) - else: - print("You have to set the user name or port with -u/-p") - elif action == 3: - if 'user' in user or 'port' in user: - manage.edit(user) - else: - print("You have to set the user name or port with -u/-p") - elif action == 4: - manage.list_user(user) - elif action is None: - print_server_help() - -if __name__ == '__main__': - main() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mysql.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mysql.json deleted file mode 100644 index 1849e9e81..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/mysql.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "host": "127.0.0.1", - "port": 3306, - "user": "ss", - "password": "pass", - "db": "sspanel", - "node_id": 0, - "transfer_mul": 1.0, - "ssl_enable": 0, - "ssl_ca": "", - "ssl_cert": "", - "ssl_key": "" -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/run.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/run.sh deleted file mode 100755 index 0de8d204c..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/run.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -cd `dirname $0` -python_ver=$(ls /usr/bin|grep -e "^python[23]\.[1-9]\+$"|tail -1) -eval $(ps -ef | grep "[0-9] ${python_ver} server\\.py m" | awk '{print "kill "$2}') -ulimit -n 512000 -nohup ${python_ver} server.py m>> /dev/null 2>&1 & - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server.py deleted file mode 100644 index ba863b684..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server.py +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015 breakwall -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import time -import sys -import threading -import os - -if __name__ == '__main__': - import inspect - os.chdir(os.path.dirname(os.path.realpath(inspect.getfile(inspect.currentframe())))) - -import server_pool -import db_transfer -from shadowsocks import shell -from configloader import load_config, get_config - -class MainThread(threading.Thread): - def __init__(self, obj): - super(MainThread, self).__init__() - self.daemon = True - self.obj = obj - - def run(self): - self.obj.thread_db(self.obj) - - def stop(self): - self.obj.thread_db_stop() - -def main(): - shell.check_python() - if False: - db_transfer.DbTransfer.thread_db() - else: - if get_config().API_INTERFACE == 'mudbjson': - thread = MainThread(db_transfer.MuJsonTransfer) - elif get_config().API_INTERFACE == 'sspanelv2': - thread = MainThread(db_transfer.DbTransfer) - else: - thread = MainThread(db_transfer.Dbv3Transfer) - thread.start() - try: - while thread.is_alive(): - thread.join(10.0) - except (KeyboardInterrupt, IOError, OSError) as e: - import traceback - traceback.print_exc() - thread.stop() - -if __name__ == '__main__': - main() - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server_pool.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server_pool.py deleted file mode 100644 index d159817a3..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/server_pool.py +++ /dev/null @@ -1,293 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright (c) 2014 clowwindy -# -# 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 -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import os -import logging -import struct -import time -from shadowsocks import shell, eventloop, tcprelay, udprelay, asyncdns, common -import threading -import sys -import traceback -from socket import * -from configloader import load_config, get_config - -class MainThread(threading.Thread): - def __init__(self, params): - super(MainThread, self).__init__() - self.params = params - - def run(self): - ServerPool._loop(*self.params) - -class ServerPool(object): - - instance = None - - def __init__(self): - shell.check_python() - self.config = shell.get_config(False) - self.dns_resolver = asyncdns.DNSResolver() - if not self.config.get('dns_ipv6', False): - asyncdns.IPV6_CONNECTION_SUPPORT = False - - self.mgr = None #asyncmgr.ServerMgr() - - self.tcp_servers_pool = {} - self.tcp_ipv6_servers_pool = {} - self.udp_servers_pool = {} - self.udp_ipv6_servers_pool = {} - self.stat_counter = {} - - self.loop = eventloop.EventLoop() - self.thread = MainThread( (self.loop, self.dns_resolver, self.mgr) ) - self.thread.start() - - @staticmethod - def get_instance(): - if ServerPool.instance is None: - ServerPool.instance = ServerPool() - return ServerPool.instance - - def stop(self): - self.loop.stop() - - @staticmethod - def _loop(loop, dns_resolver, mgr): - try: - if mgr is not None: - mgr.add_to_loop(loop) - dns_resolver.add_to_loop(loop) - loop.run() - except (KeyboardInterrupt, IOError, OSError) as e: - logging.error(e) - traceback.print_exc() - os.exit(0) - except Exception as e: - logging.error(e) - traceback.print_exc() - - def server_is_run(self, port): - port = int(port) - ret = 0 - if port in self.tcp_servers_pool: - ret = 1 - if port in self.tcp_ipv6_servers_pool: - ret |= 2 - return ret - - def server_run_status(self, port): - if 'server' in self.config: - if port not in self.tcp_servers_pool: - return False - if 'server_ipv6' in self.config: - if port not in self.tcp_ipv6_servers_pool: - return False - return True - - def new_server(self, port, user_config): - ret = True - port = int(port) - ipv6_ok = False - - if 'server_ipv6' in self.config: - if port in self.tcp_ipv6_servers_pool: - logging.info("server already at %s:%d" % (self.config['server_ipv6'], port)) - return 'this port server is already running' - else: - a_config = self.config.copy() - a_config.update(user_config) - if len(a_config['server_ipv6']) > 2 and a_config['server_ipv6'][0] == "[" and a_config['server_ipv6'][-1] == "]": - a_config['server_ipv6'] = a_config['server_ipv6'][1:-1] - a_config['server'] = a_config['server_ipv6'] - a_config['server_port'] = port - a_config['max_connect'] = 128 - a_config['method'] = common.to_str(a_config['method']) - try: - logging.info("starting server at [%s]:%d" % (common.to_str(a_config['server']), port)) - - tcp_server = tcprelay.TCPRelay(a_config, self.dns_resolver, False, stat_counter=self.stat_counter) - tcp_server.add_to_loop(self.loop) - self.tcp_ipv6_servers_pool.update({port: tcp_server}) - - udp_server = udprelay.UDPRelay(a_config, self.dns_resolver, False, stat_counter=self.stat_counter) - udp_server.add_to_loop(self.loop) - self.udp_ipv6_servers_pool.update({port: udp_server}) - - if common.to_str(a_config['server_ipv6']) == "::": - ipv6_ok = True - except Exception as e: - logging.warn("IPV6 %s " % (e,)) - - if 'server' in self.config: - if port in self.tcp_servers_pool: - logging.info("server already at %s:%d" % (common.to_str(self.config['server']), port)) - return 'this port server is already running' - else: - a_config = self.config.copy() - a_config.update(user_config) - a_config['server_port'] = port - a_config['max_connect'] = 128 - a_config['method'] = common.to_str(a_config['method']) - try: - logging.info("starting server at %s:%d" % (common.to_str(a_config['server']), port)) - - tcp_server = tcprelay.TCPRelay(a_config, self.dns_resolver, False) - tcp_server.add_to_loop(self.loop) - self.tcp_servers_pool.update({port: tcp_server}) - - udp_server = udprelay.UDPRelay(a_config, self.dns_resolver, False) - udp_server.add_to_loop(self.loop) - self.udp_servers_pool.update({port: udp_server}) - - except Exception as e: - if not ipv6_ok: - logging.warn("IPV4 %s " % (e,)) - - return True - - def del_server(self, port): - port = int(port) - logging.info("del server at %d" % port) - try: - udpsock = socket(AF_INET, SOCK_DGRAM) - udpsock.sendto('%s:%s:0:0' % (get_config().MANAGE_PASS, port), (get_config().MANAGE_BIND_IP, get_config().MANAGE_PORT)) - udpsock.close() - except Exception as e: - logging.warn(e) - return True - - def cb_del_server(self, port): - port = int(port) - - if port not in self.tcp_servers_pool: - logging.info("stopped server at %s:%d already stop" % (self.config['server'], port)) - else: - logging.info("stopped server at %s:%d" % (self.config['server'], port)) - try: - self.tcp_servers_pool[port].close(True) - del self.tcp_servers_pool[port] - except Exception as e: - logging.warn(e) - try: - self.udp_servers_pool[port].close(True) - del self.udp_servers_pool[port] - except Exception as e: - logging.warn(e) - - if 'server_ipv6' in self.config: - if port not in self.tcp_ipv6_servers_pool: - logging.info("stopped server at [%s]:%d already stop" % (self.config['server_ipv6'], port)) - else: - logging.info("stopped server at [%s]:%d" % (self.config['server_ipv6'], port)) - try: - self.tcp_ipv6_servers_pool[port].close(True) - del self.tcp_ipv6_servers_pool[port] - except Exception as e: - logging.warn(e) - try: - self.udp_ipv6_servers_pool[port].close(True) - del self.udp_ipv6_servers_pool[port] - except Exception as e: - logging.warn(e) - - return True - - def update_mu_users(self, port, users): - port = int(port) - if port in self.tcp_servers_pool: - try: - self.tcp_servers_pool[port].update_users(users) - except Exception as e: - logging.warn(e) - try: - self.udp_servers_pool[port].update_users(users) - except Exception as e: - logging.warn(e) - if port in self.tcp_ipv6_servers_pool: - try: - self.tcp_ipv6_servers_pool[port].update_users(users) - except Exception as e: - logging.warn(e) - try: - self.udp_ipv6_servers_pool[port].update_users(users) - except Exception as e: - logging.warn(e) - - def get_server_transfer(self, port): - port = int(port) - uid = struct.pack(' 63: - return None - results.append(common.chr(l)) - results.append(label) - results.append(b'\0') - return b''.join(results) - - -def build_request(address, qtype): - request_id = os.urandom(2) - header = struct.pack('!BBHHHH', 1, 0, 1, 0, 0, 0) - addr = build_address(address) - qtype_qclass = struct.pack('!HH', qtype, QCLASS_IN) - return request_id + header + addr + qtype_qclass - - -def parse_ip(addrtype, data, length, offset): - if addrtype == QTYPE_A: - return socket.inet_ntop(socket.AF_INET, data[offset:offset + length]) - elif addrtype == QTYPE_AAAA: - return socket.inet_ntop(socket.AF_INET6, data[offset:offset + length]) - elif addrtype in [QTYPE_CNAME, QTYPE_NS]: - return parse_name(data, offset)[1] - else: - return data[offset:offset + length] - - -def parse_name(data, offset): - p = offset - labels = [] - l = common.ord(data[p]) - while l > 0: - if (l & (128 + 64)) == (128 + 64): - # pointer - pointer = struct.unpack('!H', data[p:p + 2])[0] - pointer &= 0x3FFF - r = parse_name(data, pointer) - labels.append(r[1]) - p += 2 - # pointer is the end - return p - offset, b'.'.join(labels) - else: - labels.append(data[p + 1:p + 1 + l]) - p += 1 + l - l = common.ord(data[p]) - return p - offset + 1, b'.'.join(labels) - - -# rfc1035 -# record -# 1 1 1 1 1 1 -# 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 -# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ -# | | -# / / -# / NAME / -# | | -# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ -# | TYPE | -# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ -# | CLASS | -# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ -# | TTL | -# | | -# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ -# | RDLENGTH | -# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| -# / RDATA / -# / / -# +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ -def parse_record(data, offset, question=False): - nlen, name = parse_name(data, offset) - if not question: - record_type, record_class, record_ttl, record_rdlength = struct.unpack( - '!HHiH', data[offset + nlen:offset + nlen + 10] - ) - ip = parse_ip(record_type, data, record_rdlength, offset + nlen + 10) - return nlen + 10 + record_rdlength, \ - (name, ip, record_type, record_class, record_ttl) - else: - record_type, record_class = struct.unpack( - '!HH', data[offset + nlen:offset + nlen + 4] - ) - return nlen + 4, (name, None, record_type, record_class, None, None) - - -def parse_header(data): - if len(data) >= 12: - header = struct.unpack('!HBBHHHH', data[:12]) - res_id = header[0] - res_qr = header[1] & 128 - res_tc = header[1] & 2 - res_ra = header[2] & 128 - res_rcode = header[2] & 15 - # assert res_tc == 0 - # assert res_rcode in [0, 3] - res_qdcount = header[3] - res_ancount = header[4] - res_nscount = header[5] - res_arcount = header[6] - return (res_id, res_qr, res_tc, res_ra, res_rcode, res_qdcount, - res_ancount, res_nscount, res_arcount) - return None - - -def parse_response(data): - try: - if len(data) >= 12: - header = parse_header(data) - if not header: - return None - res_id, res_qr, res_tc, res_ra, res_rcode, res_qdcount, \ - res_ancount, res_nscount, res_arcount = header - - qds = [] - ans = [] - offset = 12 - for i in range(0, res_qdcount): - l, r = parse_record(data, offset, True) - offset += l - if r: - qds.append(r) - for i in range(0, res_ancount): - l, r = parse_record(data, offset) - offset += l - if r: - ans.append(r) - for i in range(0, res_nscount): - l, r = parse_record(data, offset) - offset += l - for i in range(0, res_arcount): - l, r = parse_record(data, offset) - offset += l - response = DNSResponse() - if qds: - response.hostname = qds[0][0] - for an in qds: - response.questions.append((an[1], an[2], an[3])) - for an in ans: - response.answers.append((an[1], an[2], an[3])) - return response - except Exception as e: - shell.print_exception(e) - return None - - -def is_valid_hostname(hostname): - if len(hostname) > 255: - return False - if hostname[-1] == b'.': - hostname = hostname[:-1] - return all(VALID_HOSTNAME.match(x) for x in hostname.split(b'.')) - - -class DNSResponse(object): - def __init__(self): - self.hostname = None - self.questions = [] # each: (addr, type, class) - self.answers = [] # each: (addr, type, class) - - def __str__(self): - return '%s: %s' % (self.hostname, str(self.answers)) - - -STATUS_IPV4 = 0 -STATUS_IPV6 = 1 - - -class DNSResolver(object): - def __init__(self, black_hostname_list=None): - self._loop = None - self._hosts = {} - self._hostname_status = {} - self._hostname_to_cb = {} - self._cb_to_hostname = {} - self._cache = lru_cache.LRUCache(timeout=300) - # read black_hostname_list from config - if type(black_hostname_list) != list: - self._black_hostname_list = [] - else: - self._black_hostname_list = list(map( - (lambda t: t if type(t) == bytes else t.encode('utf8')), - black_hostname_list - )) - logging.info('black_hostname_list init as : ' + str(self._black_hostname_list)) - self._sock = None - self._servers = None - self._parse_resolv() - self._parse_hosts() - # TODO monitor hosts change and reload hosts - # TODO parse /etc/gai.conf and follow its rules - - def _parse_resolv(self): - self._servers = [] - try: - with open('dns.conf', 'rb') as f: - content = f.readlines() - for line in content: - line = line.strip() - if line: - parts = line.split(b' ', 1) - if len(parts) >= 2: - server = parts[0] - port = int(parts[1]) - else: - server = parts[0] - port = 53 - if common.is_ip(server) == socket.AF_INET: - if type(server) != str: - server = server.decode('utf8') - self._servers.append((server, port)) - except IOError: - pass - if not self._servers: - try: - with open('/etc/resolv.conf', 'rb') as f: - content = f.readlines() - for line in content: - line = line.strip() - if line: - if line.startswith(b'nameserver'): - parts = line.split() - if len(parts) >= 2: - server = parts[1] - if common.is_ip(server) == socket.AF_INET: - if type(server) != str: - server = server.decode('utf8') - self._servers.append((server, 53)) - except IOError: - pass - if not self._servers: - self._servers = [('8.8.4.4', 53), ('8.8.8.8', 53)] - logging.info('dns server: %s' % (self._servers,)) - - def _parse_hosts(self): - etc_path = '/etc/hosts' - if 'WINDIR' in os.environ: - etc_path = os.environ['WINDIR'] + '/system32/drivers/etc/hosts' - try: - with open(etc_path, 'rb') as f: - for line in f.readlines(): - line = line.strip() - if b"#" in line: - line = line[:line.find(b'#')] - parts = line.split() - if len(parts) >= 2: - ip = parts[0] - if common.is_ip(ip): - for i in range(1, len(parts)): - hostname = parts[i] - if hostname: - self._hosts[hostname] = ip - except IOError: - self._hosts['localhost'] = '127.0.0.1' - - def add_to_loop(self, loop): - if self._loop: - raise Exception('already add to loop') - self._loop = loop - # TODO when dns server is IPv6 - self._sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - self._sock.setblocking(False) - loop.add(self._sock, eventloop.POLL_IN, self) - loop.add_periodic(self.handle_periodic) - - def _call_callback(self, hostname, ip, error=None): - callbacks = self._hostname_to_cb.get(hostname, []) - for callback in callbacks: - if callback in self._cb_to_hostname: - del self._cb_to_hostname[callback] - if ip or error: - callback((hostname, ip), error) - else: - callback((hostname, None), - Exception('unable to parse hostname %s' % hostname)) - if hostname in self._hostname_to_cb: - del self._hostname_to_cb[hostname] - if hostname in self._hostname_status: - del self._hostname_status[hostname] - - def _handle_data(self, data): - response = parse_response(data) - if response and response.hostname: - hostname = response.hostname - ip = None - for answer in response.answers: - if answer[1] in (QTYPE_A, QTYPE_AAAA) and \ - answer[2] == QCLASS_IN: - ip = answer[0] - break - if IPV6_CONNECTION_SUPPORT: - if not ip and self._hostname_status.get(hostname, STATUS_IPV4) \ - == STATUS_IPV6: - self._hostname_status[hostname] = STATUS_IPV4 - self._send_req(hostname, QTYPE_A) - else: - if ip: - self._cache[hostname] = ip - self._call_callback(hostname, ip) - elif self._hostname_status.get(hostname, None) == STATUS_IPV4: - for question in response.questions: - if question[1] == QTYPE_A: - self._call_callback(hostname, None) - break - else: - if not ip and self._hostname_status.get(hostname, STATUS_IPV6) \ - == STATUS_IPV4: - self._hostname_status[hostname] = STATUS_IPV6 - self._send_req(hostname, QTYPE_AAAA) - else: - if ip: - self._cache[hostname] = ip - self._call_callback(hostname, ip) - elif self._hostname_status.get(hostname, None) == STATUS_IPV6: - for question in response.questions: - if question[1] == QTYPE_AAAA: - self._call_callback(hostname, None) - break - - def handle_event(self, sock, fd, event): - if sock != self._sock: - return - if event & eventloop.POLL_ERR: - logging.error('dns socket err') - self._loop.remove(self._sock) - self._sock.close() - # TODO when dns server is IPv6 - self._sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - self._sock.setblocking(False) - self._loop.add(self._sock, eventloop.POLL_IN, self) - else: - data, addr = sock.recvfrom(1024) - if addr not in self._servers: - logging.warn('received a packet other than our dns') - return - self._handle_data(data) - - def handle_periodic(self): - self._cache.sweep() - - def remove_callback(self, callback): - hostname = self._cb_to_hostname.get(callback) - if hostname: - del self._cb_to_hostname[callback] - arr = self._hostname_to_cb.get(hostname, None) - if arr: - arr.remove(callback) - if not arr: - del self._hostname_to_cb[hostname] - if hostname in self._hostname_status: - del self._hostname_status[hostname] - - def _send_req(self, hostname, qtype): - req = build_request(hostname, qtype) - for server in self._servers: - logging.debug('resolving %s with type %d using server %s', - hostname, qtype, server) - self._sock.sendto(req, server) - - def resolve(self, hostname, callback): - if type(hostname) != bytes: - hostname = hostname.encode('utf8') - if not hostname: - callback(None, Exception('empty hostname')) - elif common.is_ip(hostname): - callback((hostname, hostname), None) - elif hostname in self._hosts: - logging.debug('hit hosts: %s', hostname) - ip = self._hosts[hostname] - callback((hostname, ip), None) - elif hostname in self._cache: - logging.debug('hit cache: %s ==>> %s', hostname, self._cache[hostname]) - ip = self._cache[hostname] - callback((hostname, ip), None) - elif any(hostname.endswith(t) for t in self._black_hostname_list): - callback(None, Exception('hostname <%s> is block by the black hostname list' % hostname)) - return - else: - if not is_valid_hostname(hostname): - callback(None, Exception('invalid hostname: %s' % hostname)) - return - if False: - addrs = socket.getaddrinfo(hostname, 0, 0, - socket.SOCK_DGRAM, socket.SOL_UDP) - if addrs: - af, socktype, proto, canonname, sa = addrs[0] - logging.debug('DNS resolve %s %s' % (hostname, sa[0])) - self._cache[hostname] = sa[0] - callback((hostname, sa[0]), None) - return - arr = self._hostname_to_cb.get(hostname, None) - if not arr: - if IPV6_CONNECTION_SUPPORT: - self._hostname_status[hostname] = STATUS_IPV6 - self._send_req(hostname, QTYPE_AAAA) - else: - self._hostname_status[hostname] = STATUS_IPV4 - self._send_req(hostname, QTYPE_A) - self._hostname_to_cb[hostname] = [callback] - self._cb_to_hostname[callback] = hostname - else: - arr.append(callback) - # TODO send again only if waited too long - if IPV6_CONNECTION_SUPPORT: - self._send_req(hostname, QTYPE_AAAA) - else: - self._send_req(hostname, QTYPE_A) - - def close(self): - if self._sock: - if self._loop: - self._loop.remove_periodic(self.handle_periodic) - self._loop.remove(self._sock) - self._sock.close() - self._sock = None - - -def test(): - black_hostname_list = [ - 'baidu.com', - 'yahoo.com', - ] - dns_resolver = DNSResolver(black_hostname_list=black_hostname_list) - loop = eventloop.EventLoop() - dns_resolver.add_to_loop(loop) - - global counter - counter = 0 - - def make_callback(): - global counter - - def callback(result, error): - global counter - # TODO: what can we assert? - print(result, error) - counter += 1 - if counter == 12: - dns_resolver.close() - loop.stop() - - a_callback = callback - return a_callback - - assert (make_callback() != make_callback()) - - dns_resolver.resolve(b'google.com', make_callback()) - dns_resolver.resolve('google.com', make_callback()) - dns_resolver.resolve('baidu.com', make_callback()) - dns_resolver.resolve('map.baidu.com', make_callback()) - dns_resolver.resolve('yahoo.com', make_callback()) - dns_resolver.resolve('example.com', make_callback()) - dns_resolver.resolve('ipv6.google.com', make_callback()) - dns_resolver.resolve('www.facebook.com', make_callback()) - dns_resolver.resolve('ns2.google.com', make_callback()) - dns_resolver.resolve('invalid.@!#$%^&$@.hostname', make_callback()) - dns_resolver.resolve('toooooooooooooooooooooooooooooooooooooooooooooooooo' - 'ooooooooooooooooooooooooooooooooooooooooooooooooooo' - 'long.hostname', make_callback()) - dns_resolver.resolve('toooooooooooooooooooooooooooooooooooooooooooooooooo' - 'ooooooooooooooooooooooooooooooooooooooooooooooooooo' - 'ooooooooooooooooooooooooooooooooooooooooooooooooooo' - 'ooooooooooooooooooooooooooooooooooooooooooooooooooo' - 'ooooooooooooooooooooooooooooooooooooooooooooooooooo' - 'ooooooooooooooooooooooooooooooooooooooooooooooooooo' - 'long.hostname', make_callback()) - loop.run() - # test black_hostname_list - dns_resolver = DNSResolver(black_hostname_list=[]) - assert type(dns_resolver._black_hostname_list) == list - assert len(dns_resolver._black_hostname_list) == 0 - dns_resolver.close() - dns_resolver = DNSResolver(black_hostname_list=123) - assert type(dns_resolver._black_hostname_list) == list - assert len(dns_resolver._black_hostname_list) == 0 - dns_resolver.close() - dns_resolver = DNSResolver(black_hostname_list=None) - assert type(dns_resolver._black_hostname_list) == list - assert len(dns_resolver._black_hostname_list) == 0 - dns_resolver.close() - dns_resolver = DNSResolver() - assert type(dns_resolver._black_hostname_list) == list - assert dns_resolver._black_hostname_list.__len__() == 0 - dns_resolver.close() - - -if __name__ == '__main__': - test() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/common.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/common.py deleted file mode 100644 index c4484c046..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/common.py +++ /dev/null @@ -1,418 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2013-2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import socket -import struct -import logging -import binascii -import re - -from shadowsocks import lru_cache - -def compat_ord(s): - if type(s) == int: - return s - return _ord(s) - - -def compat_chr(d): - if bytes == str: - return _chr(d) - return bytes([d]) - - -_ord = ord -_chr = chr -ord = compat_ord -chr = compat_chr - -connect_log = logging.debug - -def to_bytes(s): - if bytes != str: - if type(s) == str: - return s.encode('utf-8') - return s - - -def to_str(s): - if bytes != str: - if type(s) == bytes: - return s.decode('utf-8') - return s - -def int32(x): - if x > 0xFFFFFFFF or x < 0: - x &= 0xFFFFFFFF - if x > 0x7FFFFFFF: - x = int(0x100000000 - x) - if x < 0x80000000: - return -x - else: - return -2147483648 - return x - -def inet_ntop(family, ipstr): - if family == socket.AF_INET: - return to_bytes(socket.inet_ntoa(ipstr)) - elif family == socket.AF_INET6: - import re - v6addr = ':'.join(('%02X%02X' % (ord(i), ord(j))).lstrip('0') - for i, j in zip(ipstr[::2], ipstr[1::2])) - v6addr = re.sub('::+', '::', v6addr, count=1) - return to_bytes(v6addr) - - -def inet_pton(family, addr): - addr = to_str(addr) - if family == socket.AF_INET: - return socket.inet_aton(addr) - elif family == socket.AF_INET6: - if '.' in addr: # a v4 addr - v4addr = addr[addr.rindex(':') + 1:] - v4addr = socket.inet_aton(v4addr) - v4addr = ['%02X' % ord(x) for x in v4addr] - v4addr.insert(2, ':') - newaddr = addr[:addr.rindex(':') + 1] + ''.join(v4addr) - return inet_pton(family, newaddr) - dbyts = [0] * 8 # 8 groups - grps = addr.split(':') - for i, v in enumerate(grps): - if v: - dbyts[i] = int(v, 16) - else: - for j, w in enumerate(grps[::-1]): - if w: - dbyts[7 - j] = int(w, 16) - else: - break - break - return b''.join((chr(i // 256) + chr(i % 256)) for i in dbyts) - else: - raise RuntimeError("What family?") - - -def is_ip(address): - for family in (socket.AF_INET, socket.AF_INET6): - try: - if type(address) != str: - address = address.decode('utf8') - inet_pton(family, address) - return family - except (TypeError, ValueError, OSError, IOError): - pass - return False - - -def match_regex(regex, text): - regex = re.compile(regex) - for item in regex.findall(text): - return True - return False - - -def patch_socket(): - if not hasattr(socket, 'inet_pton'): - socket.inet_pton = inet_pton - - if not hasattr(socket, 'inet_ntop'): - socket.inet_ntop = inet_ntop - - -patch_socket() - - -ADDRTYPE_IPV4 = 1 -ADDRTYPE_IPV6 = 4 -ADDRTYPE_HOST = 3 - - -def pack_addr(address): - address_str = to_str(address) - for family in (socket.AF_INET, socket.AF_INET6): - try: - r = socket.inet_pton(family, address_str) - if family == socket.AF_INET6: - return b'\x04' + r - else: - return b'\x01' + r - except (TypeError, ValueError, OSError, IOError): - pass - if len(address) > 255: - address = address[:255] # TODO - return b'\x03' + chr(len(address)) + address - -def pre_parse_header(data): - if not data: - return None - datatype = ord(data[0]) - if datatype == 0x80: - if len(data) <= 2: - return None - rand_data_size = ord(data[1]) - if rand_data_size + 2 >= len(data): - logging.warn('header too short, maybe wrong password or ' - 'encryption method') - return None - data = data[rand_data_size + 2:] - elif datatype == 0x81: - data = data[1:] - elif datatype == 0x82: - if len(data) <= 3: - return None - rand_data_size = struct.unpack('>H', data[1:3])[0] - if rand_data_size + 3 >= len(data): - logging.warn('header too short, maybe wrong password or ' - 'encryption method') - return None - data = data[rand_data_size + 3:] - elif datatype == 0x88 or (~datatype & 0xff) == 0x88: - if len(data) <= 7 + 7: - return None - data_size = struct.unpack('>H', data[1:3])[0] - ogn_data = data - data = data[:data_size] - crc = binascii.crc32(data) & 0xffffffff - if crc != 0xffffffff: - logging.warn('uncorrect CRC32, maybe wrong password or ' - 'encryption method') - return None - start_pos = 3 + ord(data[3]) - data = data[start_pos:-4] - if data_size < len(ogn_data): - data += ogn_data[data_size:] - return data - -def parse_header(data): - addrtype = ord(data[0]) - dest_addr = None - dest_port = None - header_length = 0 - connecttype = (addrtype & 0x8) and 1 or 0 - addrtype &= ~0x8 - if addrtype == ADDRTYPE_IPV4: - if len(data) >= 7: - dest_addr = socket.inet_ntoa(data[1:5]) - dest_port = struct.unpack('>H', data[5:7])[0] - header_length = 7 - else: - logging.warn('header is too short') - elif addrtype == ADDRTYPE_HOST: - if len(data) > 2: - addrlen = ord(data[1]) - if len(data) >= 4 + addrlen: - dest_addr = data[2:2 + addrlen] - dest_port = struct.unpack('>H', data[2 + addrlen:4 + - addrlen])[0] - header_length = 4 + addrlen - else: - logging.warn('header is too short') - else: - logging.warn('header is too short') - elif addrtype == ADDRTYPE_IPV6: - if len(data) >= 19: - dest_addr = socket.inet_ntop(socket.AF_INET6, data[1:17]) - dest_port = struct.unpack('>H', data[17:19])[0] - header_length = 19 - else: - logging.warn('header is too short') - else: - logging.warn('unsupported addrtype %d, maybe wrong password or ' - 'encryption method' % addrtype) - if dest_addr is None: - return None - return connecttype, addrtype, to_bytes(dest_addr), dest_port, header_length - - -class IPNetwork(object): - ADDRLENGTH = {socket.AF_INET: 32, socket.AF_INET6: 128, False: 0} - - def __init__(self, addrs): - self.addrs_str = addrs - self._network_list_v4 = [] - self._network_list_v6 = [] - if type(addrs) == str: - addrs = addrs.split(',') - list(map(self.add_network, addrs)) - - def add_network(self, addr): - if addr is "": - return - block = addr.split('/') - addr_family = is_ip(block[0]) - addr_len = IPNetwork.ADDRLENGTH[addr_family] - if addr_family is socket.AF_INET: - ip, = struct.unpack("!I", socket.inet_aton(block[0])) - elif addr_family is socket.AF_INET6: - hi, lo = struct.unpack("!QQ", inet_pton(addr_family, block[0])) - ip = (hi << 64) | lo - else: - raise Exception("Not a valid CIDR notation: %s" % addr) - if len(block) is 1: - prefix_size = 0 - while (ip & 1) == 0 and ip is not 0: - ip >>= 1 - prefix_size += 1 - logging.warn("You did't specify CIDR routing prefix size for %s, " - "implicit treated as %s/%d" % (addr, addr, addr_len)) - elif block[1].isdigit() and int(block[1]) <= addr_len: - prefix_size = addr_len - int(block[1]) - ip >>= prefix_size - else: - raise Exception("Not a valid CIDR notation: %s" % addr) - if addr_family is socket.AF_INET: - self._network_list_v4.append((ip, prefix_size)) - else: - self._network_list_v6.append((ip, prefix_size)) - - def __contains__(self, addr): - addr_family = is_ip(addr) - if addr_family is socket.AF_INET: - ip, = struct.unpack("!I", socket.inet_aton(addr)) - return any(map(lambda n_ps: n_ps[0] == ip >> n_ps[1], - self._network_list_v4)) - elif addr_family is socket.AF_INET6: - hi, lo = struct.unpack("!QQ", inet_pton(addr_family, addr)) - ip = (hi << 64) | lo - return any(map(lambda n_ps: n_ps[0] == ip >> n_ps[1], - self._network_list_v6)) - else: - return False - - def __cmp__(self, other): - return cmp(self.addrs_str, other.addrs_str) - - def __eq__(self, other): - return self.addrs_str == other.addrs_str - - def __ne__(self, other): - return self.addrs_str != other.addrs_str - -class PortRange(object): - def __init__(self, range_str): - self.range_str = to_str(range_str) - self.range = set() - range_str = to_str(range_str).split(',') - for item in range_str: - try: - int_range = item.split('-') - if len(int_range) == 1: - if item: - self.range.add(int(item)) - elif len(int_range) == 2: - int_range[0] = int(int_range[0]) - int_range[1] = int(int_range[1]) - if int_range[0] < 0: - int_range[0] = 0 - if int_range[1] > 65535: - int_range[1] = 65535 - i = int_range[0] - while i <= int_range[1]: - self.range.add(i) - i += 1 - except Exception as e: - logging.error(e) - - def __contains__(self, val): - return val in self.range - - def __cmp__(self, other): - return cmp(self.range_str, other.range_str) - - def __eq__(self, other): - return self.range_str == other.range_str - - def __ne__(self, other): - return self.range_str != other.range_str - -class UDPAsyncDNSHandler(object): - dns_cache = lru_cache.LRUCache(timeout=1800) - def __init__(self, params): - self.params = params - self.remote_addr = None - self.call_back = None - - def resolve(self, dns_resolver, remote_addr, call_back): - if remote_addr in UDPAsyncDNSHandler.dns_cache: - if call_back: - call_back("", remote_addr, UDPAsyncDNSHandler.dns_cache[remote_addr], self.params) - else: - self.call_back = call_back - self.remote_addr = remote_addr - dns_resolver.resolve(remote_addr[0], self._handle_dns_resolved) - UDPAsyncDNSHandler.dns_cache.sweep() - - def _handle_dns_resolved(self, result, error): - if error: - logging.error("%s when resolve DNS" % (error,)) #drop - return self.call_back(error, self.remote_addr, None, self.params) - if result: - ip = result[1] - if ip: - return self.call_back("", self.remote_addr, ip, self.params) - logging.warning("can't resolve %s" % (self.remote_addr,)) - return self.call_back("fail to resolve", self.remote_addr, None, self.params) - -def test_inet_conv(): - ipv4 = b'8.8.4.4' - b = inet_pton(socket.AF_INET, ipv4) - assert inet_ntop(socket.AF_INET, b) == ipv4 - ipv6 = b'2404:6800:4005:805::1011' - b = inet_pton(socket.AF_INET6, ipv6) - assert inet_ntop(socket.AF_INET6, b) == ipv6 - - -def test_parse_header(): - assert parse_header(b'\x03\x0ewww.google.com\x00\x50') == \ - (0, b'www.google.com', 80, 18) - assert parse_header(b'\x01\x08\x08\x08\x08\x00\x35') == \ - (0, b'8.8.8.8', 53, 7) - assert parse_header((b'\x04$\x04h\x00@\x05\x08\x05\x00\x00\x00\x00\x00' - b'\x00\x10\x11\x00\x50')) == \ - (0, b'2404:6800:4005:805::1011', 80, 19) - - -def test_pack_header(): - assert pack_addr(b'8.8.8.8') == b'\x01\x08\x08\x08\x08' - assert pack_addr(b'2404:6800:4005:805::1011') == \ - b'\x04$\x04h\x00@\x05\x08\x05\x00\x00\x00\x00\x00\x00\x10\x11' - assert pack_addr(b'www.google.com') == b'\x03\x0ewww.google.com' - - -def test_ip_network(): - ip_network = IPNetwork('127.0.0.0/24,::ff:1/112,::1,192.168.1.1,192.0.2.0') - assert '127.0.0.1' in ip_network - assert '127.0.1.1' not in ip_network - assert ':ff:ffff' in ip_network - assert '::ffff:1' not in ip_network - assert '::1' in ip_network - assert '::2' not in ip_network - assert '192.168.1.1' in ip_network - assert '192.168.1.2' not in ip_network - assert '192.0.2.1' in ip_network - assert '192.0.3.1' in ip_network # 192.0.2.0 is treated as 192.0.2.0/23 - assert 'www.google.com' not in ip_network - - -if __name__ == '__main__': - test_inet_conv() - test_parse_header() - test_pack_header() - test_ip_network() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/__init__.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/__init__.py deleted file mode 100644 index 401c7b726..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_libsodium.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_libsodium.py deleted file mode 100644 index efecfd415..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_libsodium.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2014 clowwindy -# -# 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 -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import logging -from ctypes import CDLL, c_char_p, c_int, c_ulonglong, byref, \ - create_string_buffer, c_void_p - -__all__ = ['ciphers'] - -libsodium = None -loaded = False - -buf_size = 2048 - -# for salsa20 and chacha20 -BLOCK_SIZE = 64 - - -def load_libsodium(): - global loaded, libsodium, buf - - from ctypes.util import find_library - for p in ('sodium',): - libsodium_path = find_library(p) - if libsodium_path: - break - else: - raise Exception('libsodium not found') - logging.info('loading libsodium from %s', libsodium_path) - libsodium = CDLL(libsodium_path) - libsodium.sodium_init.restype = c_int - libsodium.crypto_stream_salsa20_xor_ic.restype = c_int - libsodium.crypto_stream_salsa20_xor_ic.argtypes = (c_void_p, c_char_p, - c_ulonglong, - c_char_p, c_ulonglong, - c_char_p) - libsodium.crypto_stream_chacha20_xor_ic.restype = c_int - libsodium.crypto_stream_chacha20_xor_ic.argtypes = (c_void_p, c_char_p, - c_ulonglong, - c_char_p, c_ulonglong, - c_char_p) - - libsodium.sodium_init() - - buf = create_string_buffer(buf_size) - loaded = True - - -class Salsa20Crypto(object): - def __init__(self, cipher_name, key, iv, op): - if not loaded: - load_libsodium() - self.key = key - self.iv = iv - self.key_ptr = c_char_p(key) - self.iv_ptr = c_char_p(iv) - if cipher_name == b'salsa20': - self.cipher = libsodium.crypto_stream_salsa20_xor_ic - elif cipher_name == b'chacha20': - self.cipher = libsodium.crypto_stream_chacha20_xor_ic - else: - raise Exception('Unknown cipher') - # byte counter, not block counter - self.counter = 0 - - def update(self, data): - global buf_size, buf - l = len(data) - - # we can only prepend some padding to make the encryption align to - # blocks - padding = self.counter % BLOCK_SIZE - if buf_size < padding + l: - buf_size = (padding + l) * 2 - buf = create_string_buffer(buf_size) - - if padding: - data = (b'\0' * padding) + data - self.cipher(byref(buf), c_char_p(data), padding + l, - self.iv_ptr, int(self.counter / BLOCK_SIZE), self.key_ptr) - self.counter += l - # buf is copied to a str object when we access buf.raw - # strip off the padding - return buf.raw[padding:padding + l] - - -ciphers = { - b'salsa20': (32, 8, Salsa20Crypto), - b'chacha20': (32, 8, Salsa20Crypto), -} - - -def test_salsa20(): - from shadowsocks.crypto import util - - cipher = Salsa20Crypto(b'salsa20', b'k' * 32, b'i' * 16, 1) - decipher = Salsa20Crypto(b'salsa20', b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - - -def test_chacha20(): - from shadowsocks.crypto import util - - cipher = Salsa20Crypto(b'chacha20', b'k' * 32, b'i' * 16, 1) - decipher = Salsa20Crypto(b'chacha20', b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - - -if __name__ == '__main__': - test_chacha20() - test_salsa20() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_openssl.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_openssl.py deleted file mode 100644 index 0ef8ce0f8..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/ctypes_openssl.py +++ /dev/null @@ -1,188 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2014 clowwindy -# -# 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 -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import logging -from ctypes import CDLL, c_char_p, c_int, c_long, byref,\ - create_string_buffer, c_void_p - -__all__ = ['ciphers'] - -libcrypto = None -loaded = False - -buf_size = 2048 - - -def load_openssl(): - global loaded, libcrypto, buf - - from ctypes.util import find_library - for p in ('crypto', 'eay32', 'libeay32'): - libcrypto_path = find_library(p) - if libcrypto_path: - break - else: - raise Exception('libcrypto(OpenSSL) not found') - logging.info('loading libcrypto from %s', libcrypto_path) - libcrypto = CDLL(libcrypto_path) - libcrypto.EVP_get_cipherbyname.restype = c_void_p - libcrypto.EVP_CIPHER_CTX_new.restype = c_void_p - - libcrypto.EVP_CipherInit_ex.argtypes = (c_void_p, c_void_p, c_char_p, - c_char_p, c_char_p, c_int) - - libcrypto.EVP_CipherUpdate.argtypes = (c_void_p, c_void_p, c_void_p, - c_char_p, c_int) - - libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,) - libcrypto.EVP_CIPHER_CTX_free.argtypes = (c_void_p,) - if hasattr(libcrypto, 'OpenSSL_add_all_ciphers'): - libcrypto.OpenSSL_add_all_ciphers() - - buf = create_string_buffer(buf_size) - loaded = True - - -def load_cipher(cipher_name): - func_name = b'EVP_' + cipher_name.replace(b'-', b'_') - if bytes != str: - func_name = str(func_name, 'utf-8') - cipher = getattr(libcrypto, func_name, None) - if cipher: - cipher.restype = c_void_p - return cipher() - return None - - -class CtypesCrypto(object): - def __init__(self, cipher_name, key, iv, op): - if not loaded: - load_openssl() - self._ctx = None - cipher = libcrypto.EVP_get_cipherbyname(cipher_name) - if not cipher: - cipher = load_cipher(cipher_name) - if not cipher: - raise Exception('cipher %s not found in libcrypto' % cipher_name) - key_ptr = c_char_p(key) - iv_ptr = c_char_p(iv) - self._ctx = libcrypto.EVP_CIPHER_CTX_new() - if not self._ctx: - raise Exception('can not create cipher context') - r = libcrypto.EVP_CipherInit_ex(self._ctx, cipher, None, - key_ptr, iv_ptr, c_int(op)) - if not r: - self.clean() - raise Exception('can not initialize cipher context') - - def update(self, data): - global buf_size, buf - cipher_out_len = c_long(0) - l = len(data) - if buf_size < l: - buf_size = l * 2 - buf = create_string_buffer(buf_size) - libcrypto.EVP_CipherUpdate(self._ctx, byref(buf), - byref(cipher_out_len), c_char_p(data), l) - # buf is copied to a str object when we access buf.raw - return buf.raw[:cipher_out_len.value] - - def __del__(self): - self.clean() - - def clean(self): - if self._ctx: - libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx) - libcrypto.EVP_CIPHER_CTX_free(self._ctx) - - -ciphers = { - b'aes-128-cfb': (16, 16, CtypesCrypto), - b'aes-192-cfb': (24, 16, CtypesCrypto), - b'aes-256-cfb': (32, 16, CtypesCrypto), - b'aes-128-ofb': (16, 16, CtypesCrypto), - b'aes-192-ofb': (24, 16, CtypesCrypto), - b'aes-256-ofb': (32, 16, CtypesCrypto), - b'aes-128-ctr': (16, 16, CtypesCrypto), - b'aes-192-ctr': (24, 16, CtypesCrypto), - b'aes-256-ctr': (32, 16, CtypesCrypto), - b'aes-128-cfb8': (16, 16, CtypesCrypto), - b'aes-192-cfb8': (24, 16, CtypesCrypto), - b'aes-256-cfb8': (32, 16, CtypesCrypto), - b'aes-128-cfb1': (16, 16, CtypesCrypto), - b'aes-192-cfb1': (24, 16, CtypesCrypto), - b'aes-256-cfb1': (32, 16, CtypesCrypto), - b'bf-cfb': (16, 8, CtypesCrypto), - b'camellia-128-cfb': (16, 16, CtypesCrypto), - b'camellia-192-cfb': (24, 16, CtypesCrypto), - b'camellia-256-cfb': (32, 16, CtypesCrypto), - b'cast5-cfb': (16, 8, CtypesCrypto), - b'des-cfb': (8, 8, CtypesCrypto), - b'idea-cfb': (16, 8, CtypesCrypto), - b'rc2-cfb': (16, 8, CtypesCrypto), - b'rc4': (16, 0, CtypesCrypto), - b'seed-cfb': (16, 16, CtypesCrypto), -} - - -def run_method(method): - from shadowsocks.crypto import util - - cipher = CtypesCrypto(method, b'k' * 32, b'i' * 16, 1) - decipher = CtypesCrypto(method, b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - - -def test_aes_128_cfb(): - run_method(b'aes-128-cfb') - - -def test_aes_256_cfb(): - run_method(b'aes-256-cfb') - - -def test_aes_128_cfb8(): - run_method(b'aes-128-cfb8') - - -def test_aes_256_ofb(): - run_method(b'aes-256-ofb') - - -def test_aes_256_ctr(): - run_method(b'aes-256-ctr') - - -def test_bf_cfb(): - run_method(b'bf-cfb') - - -def test_rc4(): - run_method(b'rc4') - - -if __name__ == '__main__': - test_aes_128_cfb() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/openssl.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/openssl.py deleted file mode 100644 index 0a8ca53fb..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/openssl.py +++ /dev/null @@ -1,199 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -from ctypes import c_char_p, c_int, c_long, byref,\ - create_string_buffer, c_void_p - -from shadowsocks import common -from shadowsocks.crypto import util - -__all__ = ['ciphers'] - -libcrypto = None -loaded = False - -buf_size = 2048 - - -def load_openssl(): - global loaded, libcrypto, buf - - libcrypto = util.find_library(('crypto', 'eay32'), - 'EVP_get_cipherbyname', - 'libcrypto') - if libcrypto is None: - raise Exception('libcrypto(OpenSSL) not found') - - libcrypto.EVP_get_cipherbyname.restype = c_void_p - libcrypto.EVP_CIPHER_CTX_new.restype = c_void_p - - libcrypto.EVP_CipherInit_ex.argtypes = (c_void_p, c_void_p, c_char_p, - c_char_p, c_char_p, c_int) - - libcrypto.EVP_CipherUpdate.argtypes = (c_void_p, c_void_p, c_void_p, - c_char_p, c_int) - - if hasattr(libcrypto, "EVP_CIPHER_CTX_cleanup"): - libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,) - else: - libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,) - libcrypto.EVP_CIPHER_CTX_free.argtypes = (c_void_p,) - - libcrypto.RAND_bytes.restype = c_int - libcrypto.RAND_bytes.argtypes = (c_void_p, c_int) - - if hasattr(libcrypto, 'OpenSSL_add_all_ciphers'): - libcrypto.OpenSSL_add_all_ciphers() - - buf = create_string_buffer(buf_size) - loaded = True - - -def load_cipher(cipher_name): - func_name = 'EVP_' + cipher_name.replace('-', '_') - cipher = getattr(libcrypto, func_name, None) - if cipher: - cipher.restype = c_void_p - return cipher() - return None - -def rand_bytes(length): - if not loaded: - load_openssl() - buf = create_string_buffer(length) - r = libcrypto.RAND_bytes(buf, length) - if r <= 0: - raise Exception('RAND_bytes return error') - return buf.raw - -class OpenSSLCrypto(object): - def __init__(self, cipher_name, key, iv, op): - self._ctx = None - if not loaded: - load_openssl() - cipher = libcrypto.EVP_get_cipherbyname(common.to_bytes(cipher_name)) - if not cipher: - cipher = load_cipher(cipher_name) - if not cipher: - raise Exception('cipher %s not found in libcrypto' % cipher_name) - key_ptr = c_char_p(key) - iv_ptr = c_char_p(iv) - self._ctx = libcrypto.EVP_CIPHER_CTX_new() - if not self._ctx: - raise Exception('can not create cipher context') - r = libcrypto.EVP_CipherInit_ex(self._ctx, cipher, None, - key_ptr, iv_ptr, c_int(op)) - if not r: - self.clean() - raise Exception('can not initialize cipher context') - - def update(self, data): - global buf_size, buf - cipher_out_len = c_long(0) - l = len(data) - if buf_size < l: - buf_size = l * 2 - buf = create_string_buffer(buf_size) - libcrypto.EVP_CipherUpdate(self._ctx, byref(buf), - byref(cipher_out_len), c_char_p(data), l) - # buf is copied to a str object when we access buf.raw - return buf.raw[:cipher_out_len.value] - - def __del__(self): - self.clean() - - def clean(self): - if self._ctx: - if hasattr(libcrypto, "EVP_CIPHER_CTX_cleanup"): - libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx) - else: - libcrypto.EVP_CIPHER_CTX_reset(self._ctx) - libcrypto.EVP_CIPHER_CTX_free(self._ctx) - - -ciphers = { - 'aes-128-cbc': (16, 16, OpenSSLCrypto), - 'aes-192-cbc': (24, 16, OpenSSLCrypto), - 'aes-256-cbc': (32, 16, OpenSSLCrypto), - 'aes-128-cfb': (16, 16, OpenSSLCrypto), - 'aes-192-cfb': (24, 16, OpenSSLCrypto), - 'aes-256-cfb': (32, 16, OpenSSLCrypto), - 'aes-128-ofb': (16, 16, OpenSSLCrypto), - 'aes-192-ofb': (24, 16, OpenSSLCrypto), - 'aes-256-ofb': (32, 16, OpenSSLCrypto), - 'aes-128-ctr': (16, 16, OpenSSLCrypto), - 'aes-192-ctr': (24, 16, OpenSSLCrypto), - 'aes-256-ctr': (32, 16, OpenSSLCrypto), - 'aes-128-cfb8': (16, 16, OpenSSLCrypto), - 'aes-192-cfb8': (24, 16, OpenSSLCrypto), - 'aes-256-cfb8': (32, 16, OpenSSLCrypto), - 'aes-128-cfb1': (16, 16, OpenSSLCrypto), - 'aes-192-cfb1': (24, 16, OpenSSLCrypto), - 'aes-256-cfb1': (32, 16, OpenSSLCrypto), - 'bf-cfb': (16, 8, OpenSSLCrypto), - 'camellia-128-cfb': (16, 16, OpenSSLCrypto), - 'camellia-192-cfb': (24, 16, OpenSSLCrypto), - 'camellia-256-cfb': (32, 16, OpenSSLCrypto), - 'cast5-cfb': (16, 8, OpenSSLCrypto), - 'des-cfb': (8, 8, OpenSSLCrypto), - 'idea-cfb': (16, 8, OpenSSLCrypto), - 'rc2-cfb': (16, 8, OpenSSLCrypto), - 'rc4': (16, 0, OpenSSLCrypto), - 'seed-cfb': (16, 16, OpenSSLCrypto), -} - - -def run_method(method): - - cipher = OpenSSLCrypto(method, b'k' * 32, b'i' * 16, 1) - decipher = OpenSSLCrypto(method, b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - - -def test_aes_128_cfb(): - run_method('aes-128-cfb') - - -def test_aes_256_cfb(): - run_method('aes-256-cfb') - - -def test_aes_128_cfb8(): - run_method('aes-128-cfb8') - - -def test_aes_256_ofb(): - run_method('aes-256-ofb') - - -def test_aes_256_ctr(): - run_method('aes-256-ctr') - - -def test_bf_cfb(): - run_method('bf-cfb') - - -def test_rc4(): - run_method('rc4') - - -if __name__ == '__main__': - test_aes_128_cfb() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/rc4_md5.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/rc4_md5.py deleted file mode 100644 index b0105ec29..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/rc4_md5.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import hashlib - -from shadowsocks.crypto import openssl - -__all__ = ['ciphers'] - - -def create_cipher(alg, key, iv, op, key_as_bytes=0, d=None, salt=None, - i=1, padding=1): - md5 = hashlib.md5() - md5.update(key) - md5.update(iv) - rc4_key = md5.digest() - return openssl.OpenSSLCrypto(b'rc4', rc4_key, b'', op) - - -ciphers = { - 'rc4-md5': (16, 16, create_cipher), - 'rc4-md5-6': (16, 6, create_cipher), -} - - -def test(): - from shadowsocks.crypto import util - - cipher = create_cipher('rc4-md5', b'k' * 32, b'i' * 16, 1) - decipher = create_cipher('rc4-md5', b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - - -if __name__ == '__main__': - test() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/sodium.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/sodium.py deleted file mode 100644 index 51d476bed..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/sodium.py +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -from ctypes import c_char_p, c_int, c_ulong, c_ulonglong, byref, \ - create_string_buffer, c_void_p - -from shadowsocks.crypto import util - -__all__ = ['ciphers'] - -libsodium = None -loaded = False - -buf_size = 2048 - -# for salsa20 and chacha20 and chacha20-ietf -BLOCK_SIZE = 64 - - -def load_libsodium(): - global loaded, libsodium, buf - - libsodium = util.find_library('sodium', 'crypto_stream_salsa20_xor_ic', - 'libsodium') - if libsodium is None: - raise Exception('libsodium not found') - - libsodium.crypto_stream_salsa20_xor_ic.restype = c_int - libsodium.crypto_stream_salsa20_xor_ic.argtypes = (c_void_p, c_char_p, - c_ulonglong, - c_char_p, c_ulonglong, - c_char_p) - libsodium.crypto_stream_chacha20_xor_ic.restype = c_int - libsodium.crypto_stream_chacha20_xor_ic.argtypes = (c_void_p, c_char_p, - c_ulonglong, - c_char_p, c_ulonglong, - c_char_p) - - try: - libsodium.crypto_stream_chacha20_ietf_xor_ic.restype = c_int - libsodium.crypto_stream_chacha20_ietf_xor_ic.argtypes = (c_void_p, c_char_p, - c_ulonglong, - c_char_p, c_ulong, - c_char_p) - except: - pass - - buf = create_string_buffer(buf_size) - loaded = True - - -class SodiumCrypto(object): - def __init__(self, cipher_name, key, iv, op): - if not loaded: - load_libsodium() - self.key = key - self.iv = iv - self.key_ptr = c_char_p(key) - self.iv_ptr = c_char_p(iv) - if cipher_name == 'salsa20': - self.cipher = libsodium.crypto_stream_salsa20_xor_ic - elif cipher_name == 'chacha20': - self.cipher = libsodium.crypto_stream_chacha20_xor_ic - elif cipher_name == 'chacha20-ietf': - self.cipher = libsodium.crypto_stream_chacha20_ietf_xor_ic - else: - raise Exception('Unknown cipher') - # byte counter, not block counter - self.counter = 0 - - def update(self, data): - global buf_size, buf - l = len(data) - - # we can only prepend some padding to make the encryption align to - # blocks - padding = self.counter % BLOCK_SIZE - if buf_size < padding + l: - buf_size = (padding + l) * 2 - buf = create_string_buffer(buf_size) - - if padding: - data = (b'\0' * padding) + data - self.cipher(byref(buf), c_char_p(data), padding + l, - self.iv_ptr, int(self.counter / BLOCK_SIZE), self.key_ptr) - self.counter += l - # buf is copied to a str object when we access buf.raw - # strip off the padding - return buf.raw[padding:padding + l] - - -ciphers = { - 'salsa20': (32, 8, SodiumCrypto), - 'chacha20': (32, 8, SodiumCrypto), - 'chacha20-ietf': (32, 12, SodiumCrypto), -} - - -def test_salsa20(): - cipher = SodiumCrypto('salsa20', b'k' * 32, b'i' * 16, 1) - decipher = SodiumCrypto('salsa20', b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - - -def test_chacha20(): - - cipher = SodiumCrypto('chacha20', b'k' * 32, b'i' * 16, 1) - decipher = SodiumCrypto('chacha20', b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - - -def test_chacha20_ietf(): - - cipher = SodiumCrypto('chacha20-ietf', b'k' * 32, b'i' * 16, 1) - decipher = SodiumCrypto('chacha20-ietf', b'k' * 32, b'i' * 16, 0) - - util.run_cipher(cipher, decipher) - -if __name__ == '__main__': - test_chacha20_ietf() - test_chacha20() - test_salsa20() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/table.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/table.py deleted file mode 100644 index 60c2f2451..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/crypto/table.py +++ /dev/null @@ -1,181 +0,0 @@ -# !/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import string -import struct -import hashlib - - -__all__ = ['ciphers'] - -cached_tables = {} - -if hasattr(string, 'maketrans'): - maketrans = string.maketrans - translate = string.translate -else: - maketrans = bytes.maketrans - translate = bytes.translate - - -def get_table(key): - m = hashlib.md5() - m.update(key) - s = m.digest() - a, b = struct.unpack(' 0: - # parent waits for its child - time.sleep(5) - sys.exit(0) - - # child signals its parent to exit - ppid = os.getppid() - pid = os.getpid() - if write_pid_file(pid_file, pid) != 0: - os.kill(ppid, signal.SIGINT) - sys.exit(1) - - os.setsid() - signal.signal(signal.SIG_IGN, signal.SIGHUP) - - print('started') - os.kill(ppid, signal.SIGTERM) - - sys.stdin.close() - try: - freopen(log_file, 'a', sys.stdout) - freopen(log_file, 'a', sys.stderr) - except IOError as e: - shell.print_exception(e) - sys.exit(1) - - -def daemon_stop(pid_file): - import errno - try: - with open(pid_file) as f: - buf = f.read() - pid = common.to_str(buf) - if not buf: - logging.error('not running') - except IOError as e: - shell.print_exception(e) - if e.errno == errno.ENOENT: - # always exit 0 if we are sure daemon is not running - logging.error('not running') - return - sys.exit(1) - pid = int(pid) - if pid > 0: - try: - os.kill(pid, signal.SIGTERM) - except OSError as e: - if e.errno == errno.ESRCH: - logging.error('not running') - # always exit 0 if we are sure daemon is not running - return - shell.print_exception(e) - sys.exit(1) - else: - logging.error('pid is not positive: %d', pid) - - # sleep for maximum 10s - for i in range(0, 200): - try: - # query for the pid - os.kill(pid, 0) - except OSError as e: - if e.errno == errno.ESRCH: - break - time.sleep(0.05) - else: - logging.error('timed out when stopping pid %d', pid) - sys.exit(1) - print('stopped') - os.unlink(pid_file) - - -def set_user(username): - if username is None: - return - - import pwd - import grp - - try: - pwrec = pwd.getpwnam(username) - except KeyError: - logging.error('user not found: %s' % username) - raise - user = pwrec[0] - uid = pwrec[2] - gid = pwrec[3] - - cur_uid = os.getuid() - if uid == cur_uid: - return - if cur_uid != 0: - logging.error('can not set user as nonroot user') - # will raise later - - # inspired by supervisor - if hasattr(os, 'setgroups'): - groups = [grprec[2] for grprec in grp.getgrall() if user in grprec[3]] - groups.insert(0, gid) - os.setgroups(groups) - os.setgid(gid) - os.setuid(uid) diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt.py deleted file mode 100644 index 44f905250..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt.py +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2012-2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import sys -import hashlib -import logging - -from shadowsocks import common -from shadowsocks.crypto import rc4_md5, openssl, sodium, table - - -method_supported = {} -method_supported.update(rc4_md5.ciphers) -method_supported.update(openssl.ciphers) -method_supported.update(sodium.ciphers) -method_supported.update(table.ciphers) - - -def random_string(length): - try: - return os.urandom(length) - except NotImplementedError as e: - return openssl.rand_bytes(length) - -cached_keys = {} - - -def try_cipher(key, method=None): - Encryptor(key, method) - - -def EVP_BytesToKey(password, key_len, iv_len): - # equivalent to OpenSSL's EVP_BytesToKey() with count 1 - # so that we make the same key and iv as nodejs version - if hasattr(password, 'encode'): - password = password.encode('utf-8') - cached_key = '%s-%d-%d' % (password, key_len, iv_len) - r = cached_keys.get(cached_key, None) - if r: - return r - m = [] - i = 0 - while len(b''.join(m)) < (key_len + iv_len): - md5 = hashlib.md5() - data = password - if i > 0: - data = m[i - 1] + password - md5.update(data) - m.append(md5.digest()) - i += 1 - ms = b''.join(m) - key = ms[:key_len] - iv = ms[key_len:key_len + iv_len] - cached_keys[cached_key] = (key, iv) - return key, iv - - -class Encryptor(object): - def __init__(self, key, method, iv = None): - self.key = key - self.method = method - self.iv = None - self.iv_sent = False - self.cipher_iv = b'' - self.iv_buf = b'' - self.cipher_key = b'' - self.decipher = None - method = method.lower() - self._method_info = self.get_method_info(method) - if self._method_info: - if iv is None or len(iv) != self._method_info[1]: - self.cipher = self.get_cipher(key, method, 1, - random_string(self._method_info[1])) - else: - self.cipher = self.get_cipher(key, method, 1, iv) - else: - logging.error('method %s not supported' % method) - sys.exit(1) - - def get_method_info(self, method): - method = method.lower() - m = method_supported.get(method) - return m - - def iv_len(self): - return len(self.cipher_iv) - - def get_cipher(self, password, method, op, iv): - password = common.to_bytes(password) - m = self._method_info - if m[0] > 0: - key, iv_ = EVP_BytesToKey(password, m[0], m[1]) - else: - # key_length == 0 indicates we should use the key directly - key, iv = password, b'' - - iv = iv[:m[1]] - if op == 1: - # this iv is for cipher not decipher - self.cipher_iv = iv[:m[1]] - self.cipher_key = key - return m[2](method, key, iv, op) - - def encrypt(self, buf): - if len(buf) == 0: - return buf - if self.iv_sent: - return self.cipher.update(buf) - else: - self.iv_sent = True - return self.cipher_iv + self.cipher.update(buf) - - def decrypt(self, buf): - if len(buf) == 0: - return buf - if self.decipher is not None: #optimize - return self.decipher.update(buf) - - decipher_iv_len = self._method_info[1] - if len(self.iv_buf) <= decipher_iv_len: - self.iv_buf += buf - if len(self.iv_buf) > decipher_iv_len: - decipher_iv = self.iv_buf[:decipher_iv_len] - self.decipher = self.get_cipher(self.key, self.method, 0, - iv=decipher_iv) - buf = self.iv_buf[decipher_iv_len:] - del self.iv_buf - return self.decipher.update(buf) - else: - return b'' - -def encrypt_all(password, method, op, data): - result = [] - method = method.lower() - (key_len, iv_len, m) = method_supported[method] - if key_len > 0: - key, _ = EVP_BytesToKey(password, key_len, iv_len) - else: - key = password - if op: - iv = random_string(iv_len) - result.append(iv) - else: - iv = data[:iv_len] - data = data[iv_len:] - cipher = m(method, key, iv, op) - result.append(cipher.update(data)) - return b''.join(result) - -def encrypt_key(password, method): - method = method.lower() - (key_len, iv_len, m) = method_supported[method] - if key_len > 0: - key, _ = EVP_BytesToKey(password, key_len, iv_len) - else: - key = password - return key - -def encrypt_iv_len(method): - method = method.lower() - (key_len, iv_len, m) = method_supported[method] - return iv_len - -def encrypt_new_iv(method): - method = method.lower() - (key_len, iv_len, m) = method_supported[method] - return random_string(iv_len) - -def encrypt_all_iv(key, method, op, data, ref_iv): - result = [] - method = method.lower() - (key_len, iv_len, m) = method_supported[method] - if op: - iv = ref_iv[0] - result.append(iv) - else: - iv = data[:iv_len] - data = data[iv_len:] - ref_iv[0] = iv - cipher = m(method, key, iv, op) - result.append(cipher.update(data)) - return b''.join(result) - - -CIPHERS_TO_TEST = [ - 'aes-128-cfb', - 'aes-256-cfb', - 'rc4-md5', - 'salsa20', - 'chacha20', - 'table', -] - - -def test_encryptor(): - from os import urandom - plain = urandom(10240) - for method in CIPHERS_TO_TEST: - logging.warn(method) - encryptor = Encryptor(b'key', method) - decryptor = Encryptor(b'key', method) - cipher = encryptor.encrypt(plain) - plain2 = decryptor.decrypt(cipher) - assert plain == plain2 - - -def test_encrypt_all(): - from os import urandom - plain = urandom(10240) - for method in CIPHERS_TO_TEST: - logging.warn(method) - cipher = encrypt_all(b'key', method, 1, plain) - plain2 = encrypt_all(b'key', method, 0, cipher) - assert plain == plain2 - - -if __name__ == '__main__': - test_encrypt_all() - test_encryptor() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt_test.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt_test.py deleted file mode 100644 index d5e507789..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/encrypt_test.py +++ /dev/null @@ -1,51 +0,0 @@ -from __future__ import absolute_import, division, print_function, \ - with_statement - -import sys -import os - -sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../')) - - -from shadowsocks.crypto import rc4_md5 -from shadowsocks.crypto import openssl -from shadowsocks.crypto import sodium -from shadowsocks.crypto import table - -def run(func): - try: - func() - except: - pass - -def run_n(func, name): - try: - func(name) - except: - pass - -def main(): - print("\n""rc4_md5") - rc4_md5.test() - print("\n""aes-256-cfb") - openssl.test_aes_256_cfb() - print("\n""aes-128-cfb") - openssl.test_aes_128_cfb() - print("\n""bf-cfb") - run(openssl.test_bf_cfb) - print("\n""camellia-128-cfb") - run_n(openssl.run_method, "camellia-128-cfb") - print("\n""cast5-cfb") - run_n(openssl.run_method, "cast5-cfb") - print("\n""idea-cfb") - run_n(openssl.run_method, "idea-cfb") - print("\n""seed-cfb") - run_n(openssl.run_method, "seed-cfb") - print("\n""salsa20") - run(sodium.test_salsa20) - print("\n""chacha20") - run(sodium.test_chacha20) - -if __name__ == '__main__': - main() - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/eventloop.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/eventloop.py deleted file mode 100644 index 341620efd..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/eventloop.py +++ /dev/null @@ -1,258 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2013-2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# from ssloop -# https://github.com/clowwindy/ssloop - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import time -import socket -import select -import errno -import logging -from collections import defaultdict - -from shadowsocks import shell - - -__all__ = ['EventLoop', 'POLL_NULL', 'POLL_IN', 'POLL_OUT', 'POLL_ERR', - 'POLL_HUP', 'POLL_NVAL', 'EVENT_NAMES'] - -POLL_NULL = 0x00 -POLL_IN = 0x01 -POLL_OUT = 0x04 -POLL_ERR = 0x08 -POLL_HUP = 0x10 -POLL_NVAL = 0x20 - - -EVENT_NAMES = { - POLL_NULL: 'POLL_NULL', - POLL_IN: 'POLL_IN', - POLL_OUT: 'POLL_OUT', - POLL_ERR: 'POLL_ERR', - POLL_HUP: 'POLL_HUP', - POLL_NVAL: 'POLL_NVAL', -} - -# we check timeouts every TIMEOUT_PRECISION seconds -TIMEOUT_PRECISION = 2 - - -class KqueueLoop(object): - - MAX_EVENTS = 1024 - - def __init__(self): - self._kqueue = select.kqueue() - self._fds = {} - - def _control(self, fd, mode, flags): - events = [] - if mode & POLL_IN: - events.append(select.kevent(fd, select.KQ_FILTER_READ, flags)) - if mode & POLL_OUT: - events.append(select.kevent(fd, select.KQ_FILTER_WRITE, flags)) - for e in events: - self._kqueue.control([e], 0) - - def poll(self, timeout): - if timeout < 0: - timeout = None # kqueue behaviour - events = self._kqueue.control(None, KqueueLoop.MAX_EVENTS, timeout) - results = defaultdict(lambda: POLL_NULL) - for e in events: - fd = e.ident - if e.filter == select.KQ_FILTER_READ: - results[fd] |= POLL_IN - elif e.filter == select.KQ_FILTER_WRITE: - results[fd] |= POLL_OUT - return results.items() - - def register(self, fd, mode): - self._fds[fd] = mode - self._control(fd, mode, select.KQ_EV_ADD) - - def unregister(self, fd): - self._control(fd, self._fds[fd], select.KQ_EV_DELETE) - del self._fds[fd] - - def modify(self, fd, mode): - self.unregister(fd) - self.register(fd, mode) - - def close(self): - self._kqueue.close() - - -class SelectLoop(object): - - def __init__(self): - self._r_list = set() - self._w_list = set() - self._x_list = set() - - def poll(self, timeout): - r, w, x = select.select(self._r_list, self._w_list, self._x_list, - timeout) - results = defaultdict(lambda: POLL_NULL) - for p in [(r, POLL_IN), (w, POLL_OUT), (x, POLL_ERR)]: - for fd in p[0]: - results[fd] |= p[1] - return results.items() - - def register(self, fd, mode): - if mode & POLL_IN: - self._r_list.add(fd) - if mode & POLL_OUT: - self._w_list.add(fd) - if mode & POLL_ERR: - self._x_list.add(fd) - - def unregister(self, fd): - if fd in self._r_list: - self._r_list.remove(fd) - if fd in self._w_list: - self._w_list.remove(fd) - if fd in self._x_list: - self._x_list.remove(fd) - - def modify(self, fd, mode): - self.unregister(fd) - self.register(fd, mode) - - def close(self): - pass - - -class EventLoop(object): - def __init__(self): - if hasattr(select, 'epoll'): - self._impl = select.epoll() - model = 'epoll' - elif hasattr(select, 'kqueue'): - self._impl = KqueueLoop() - model = 'kqueue' - elif hasattr(select, 'select'): - self._impl = SelectLoop() - model = 'select' - else: - raise Exception('can not find any available functions in select ' - 'package') - self._fdmap = {} # (f, handler) - self._last_time = time.time() - self._periodic_callbacks = [] - self._stopping = False - logging.debug('using event model: %s', model) - - def poll(self, timeout=None): - events = self._impl.poll(timeout) - return [(self._fdmap[fd][0], fd, event) for fd, event in events] - - def add(self, f, mode, handler): - fd = f.fileno() - self._fdmap[fd] = (f, handler) - self._impl.register(fd, mode) - - def remove(self, f): - fd = f.fileno() - del self._fdmap[fd] - self._impl.unregister(fd) - - def removefd(self, fd): - del self._fdmap[fd] - self._impl.unregister(fd) - - def add_periodic(self, callback): - self._periodic_callbacks.append(callback) - - def remove_periodic(self, callback): - self._periodic_callbacks.remove(callback) - - def modify(self, f, mode): - fd = f.fileno() - self._impl.modify(fd, mode) - - def stop(self): - self._stopping = True - - def run(self): - events = [] - while not self._stopping: - asap = False - try: - events = self.poll(TIMEOUT_PRECISION) - except (OSError, IOError) as e: - if errno_from_exception(e) in (errno.EPIPE, errno.EINTR): - # EPIPE: Happens when the client closes the connection - # EINTR: Happens when received a signal - # handles them as soon as possible - asap = True - logging.debug('poll:%s', e) - else: - logging.error('poll:%s', e) - import traceback - traceback.print_exc() - continue - - handle = False - for sock, fd, event in events: - handler = self._fdmap.get(fd, None) - if handler is not None: - handler = handler[1] - try: - handle = handler.handle_event(sock, fd, event) or handle - except (OSError, IOError) as e: - shell.print_exception(e) - now = time.time() - if asap or now - self._last_time >= TIMEOUT_PRECISION: - for callback in self._periodic_callbacks: - callback() - self._last_time = now - if events and not handle: - time.sleep(0.001) - - def __del__(self): - self._impl.close() - - -# from tornado -def errno_from_exception(e): - """Provides the errno from an Exception object. - - There are cases that the errno attribute was not set so we pull - the errno out of the args but if someone instatiates an Exception - without any args you will get a tuple error. So this function - abstracts all that behavior to give you a safe way to get the - errno. - """ - - if hasattr(e, 'errno'): - return e.errno - elif e.args: - return e.args[0] - else: - return None - - -# from tornado -def get_sock_error(sock): - error_number = sock.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR) - return socket.error(error_number, os.strerror(error_number)) diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/local.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/local.py deleted file mode 100755 index 9f54d9306..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/local.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright 2012-2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import sys -import os -import logging -import signal - -if __name__ == '__main__': - import inspect - file_path = os.path.dirname(os.path.realpath(inspect.getfile(inspect.currentframe()))) - sys.path.insert(0, os.path.join(file_path, '../')) - -from shadowsocks import shell, daemon, eventloop, tcprelay, udprelay, asyncdns - - -def main(): - shell.check_python() - - # fix py2exe - if hasattr(sys, "frozen") and sys.frozen in \ - ("windows_exe", "console_exe"): - p = os.path.dirname(os.path.abspath(sys.executable)) - os.chdir(p) - - config = shell.get_config(True) - - if not config.get('dns_ipv6', False): - asyncdns.IPV6_CONNECTION_SUPPORT = False - - daemon.daemon_exec(config) - logging.info("local start with protocol[%s] password [%s] method [%s] obfs [%s] obfs_param [%s]" % - (config['protocol'], config['password'], config['method'], config['obfs'], config['obfs_param'])) - - try: - logging.info("starting local at %s:%d" % - (config['local_address'], config['local_port'])) - - dns_resolver = asyncdns.DNSResolver() - tcp_server = tcprelay.TCPRelay(config, dns_resolver, True) - udp_server = udprelay.UDPRelay(config, dns_resolver, True) - loop = eventloop.EventLoop() - dns_resolver.add_to_loop(loop) - tcp_server.add_to_loop(loop) - udp_server.add_to_loop(loop) - - def handler(signum, _): - logging.warn('received SIGQUIT, doing graceful shutting down..') - tcp_server.close(next_tick=True) - udp_server.close(next_tick=True) - signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), handler) - - def int_handler(signum, _): - sys.exit(1) - signal.signal(signal.SIGINT, int_handler) - - daemon.set_user(config.get('user', None)) - loop.run() - except Exception as e: - shell.print_exception(e) - sys.exit(1) - -if __name__ == '__main__': - main() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/logrun.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/logrun.sh deleted file mode 100755 index fc081e1d2..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/logrun.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -cd `dirname $0` -python_ver=$(ls /usr/bin|grep -e "^python[23]\.[1-9]\+$"|tail -1) -eval $(ps -ef | grep "[0-9] ${python_ver} server\\.py a" | awk '{print "kill "$2}') -ulimit -n 512000 -nohup ${python_ver} server.py a>> ssserver.log 2>&1 & - - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/lru_cache.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/lru_cache.py deleted file mode 100644 index ab0d21086..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/lru_cache.py +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import collections -import logging -import time - -if __name__ == '__main__': - import os, sys, inspect - file_path = os.path.dirname(os.path.realpath(inspect.getfile(inspect.currentframe()))) - sys.path.insert(0, os.path.join(file_path, '../')) - -try: - from collections import OrderedDict -except: - from shadowsocks.ordereddict import OrderedDict - -# this LRUCache is optimized for concurrency, not QPS -# n: concurrency, keys stored in the cache -# m: visits not timed out, proportional to QPS * timeout -# get & set is O(1), not O(n). thus we can support very large n -# sweep is O((n - m)) or O(1024) at most, -# no metter how large the cache or timeout value is - -SWEEP_MAX_ITEMS = 1024 - -class LRUCache(collections.MutableMapping): - """This class is not thread safe""" - - def __init__(self, timeout=60, close_callback=None, *args, **kwargs): - self.timeout = timeout - self.close_callback = close_callback - self._store = {} - self._keys_to_last_time = OrderedDict() - self.update(dict(*args, **kwargs)) # use the free update to set keys - - def __getitem__(self, key): - # O(1) - t = time.time() - last_t = self._keys_to_last_time[key] - del self._keys_to_last_time[key] - self._keys_to_last_time[key] = t - return self._store[key] - - def __setitem__(self, key, value): - # O(1) - t = time.time() - if key in self._keys_to_last_time: - del self._keys_to_last_time[key] - self._keys_to_last_time[key] = t - self._store[key] = value - - def __delitem__(self, key): - # O(1) - last_t = self._keys_to_last_time[key] - del self._store[key] - del self._keys_to_last_time[key] - - def __contains__(self, key): - return key in self._store - - def __iter__(self): - return iter(self._store) - - def __len__(self): - return len(self._store) - - def first(self): - if len(self._keys_to_last_time) > 0: - for key in self._keys_to_last_time: - return key - - def sweep(self, sweep_item_cnt = SWEEP_MAX_ITEMS): - # O(n - m) - now = time.time() - c = 0 - while c < sweep_item_cnt: - if len(self._keys_to_last_time) == 0: - break - for key in self._keys_to_last_time: - break - last_t = self._keys_to_last_time[key] - if now - last_t <= self.timeout: - break - value = self._store[key] - del self._store[key] - del self._keys_to_last_time[key] - if self.close_callback is not None: - self.close_callback(value) - c += 1 - if c: - logging.debug('%d keys swept' % c) - return c < SWEEP_MAX_ITEMS - - def clear(self, keep): - now = time.time() - c = 0 - while len(self._keys_to_last_time) > keep: - if len(self._keys_to_last_time) == 0: - break - for key in self._keys_to_last_time: - break - last_t = self._keys_to_last_time[key] - value = self._store[key] - if self.close_callback is not None: - self.close_callback(value) - del self._store[key] - del self._keys_to_last_time[key] - c += 1 - if c: - logging.debug('%d keys swept' % c) - return c < SWEEP_MAX_ITEMS - -def test(): - c = LRUCache(timeout=0.3) - - c['a'] = 1 - assert c['a'] == 1 - c['a'] = 1 - - time.sleep(0.5) - c.sweep() - assert 'a' not in c - - c['a'] = 2 - c['b'] = 3 - time.sleep(0.2) - c.sweep() - assert c['a'] == 2 - assert c['b'] == 3 - - time.sleep(0.2) - c.sweep() - c['b'] - time.sleep(0.2) - c.sweep() - assert 'a' not in c - assert c['b'] == 3 - - time.sleep(0.5) - c.sweep() - assert 'a' not in c - assert 'b' not in c - - global close_cb_called - close_cb_called = False - - def close_cb(t): - global close_cb_called - assert not close_cb_called - close_cb_called = True - - c = LRUCache(timeout=0.1, close_callback=close_cb) - c['s'] = 1 - c['s'] - time.sleep(0.1) - c['s'] - time.sleep(0.3) - c.sweep() - -if __name__ == '__main__': - test() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/manager.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/manager.py deleted file mode 100644 index 80d0a320b..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/manager.py +++ /dev/null @@ -1,291 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import errno -import traceback -import socket -import logging -import json -import collections - -from shadowsocks import common, eventloop, tcprelay, udprelay, asyncdns, shell - - -BUF_SIZE = 1506 -STAT_SEND_LIMIT = 50 - - -class Manager(object): - - def __init__(self, config): - self._config = config - self._relays = {} # (tcprelay, udprelay) - self._loop = eventloop.EventLoop() - self._dns_resolver = asyncdns.DNSResolver() - self._dns_resolver.add_to_loop(self._loop) - - self._statistics = collections.defaultdict(int) - self._control_client_addr = None - try: - manager_address = common.to_str(config['manager_address']) - if ':' in manager_address: - addr = manager_address.rsplit(':', 1) - addr = addr[0], int(addr[1]) - addrs = socket.getaddrinfo(addr[0], addr[1]) - if addrs: - family = addrs[0][0] - else: - logging.error('invalid address: %s', manager_address) - exit(1) - else: - addr = manager_address - family = socket.AF_UNIX - self._control_socket = socket.socket(family, - socket.SOCK_DGRAM) - self._control_socket.bind(addr) - self._control_socket.setblocking(False) - except (OSError, IOError) as e: - logging.error(e) - logging.error('can not bind to manager address') - exit(1) - self._loop.add(self._control_socket, - eventloop.POLL_IN, self) - self._loop.add_periodic(self.handle_periodic) - - port_password = config['port_password'] - del config['port_password'] - for port, password in port_password.items(): - a_config = config.copy() - a_config['server_port'] = int(port) - a_config['password'] = password - self.add_port(a_config) - - def add_port(self, config): - port = int(config['server_port']) - servers = self._relays.get(port, None) - if servers: - logging.error("server already exists at %s:%d" % (config['server'], - port)) - return - logging.info("adding server at %s:%d" % (config['server'], port)) - t = tcprelay.TCPRelay(config, self._dns_resolver, False, - stat_callback=self.stat_callback) - u = udprelay.UDPRelay(config, self._dns_resolver, False, - stat_callback=self.stat_callback) - t.add_to_loop(self._loop) - u.add_to_loop(self._loop) - self._relays[port] = (t, u) - - def remove_port(self, config): - port = int(config['server_port']) - servers = self._relays.get(port, None) - if servers: - logging.info("removing server at %s:%d" % (config['server'], port)) - t, u = servers - t.close(next_tick=False) - u.close(next_tick=False) - del self._relays[port] - else: - logging.error("server not exist at %s:%d" % (config['server'], - port)) - - def handle_event(self, sock, fd, event): - if sock == self._control_socket and event == eventloop.POLL_IN: - data, self._control_client_addr = sock.recvfrom(BUF_SIZE) - parsed = self._parse_command(data) - if parsed: - command, config = parsed - a_config = self._config.copy() - if config: - # let the command override the configuration file - a_config.update(config) - if 'server_port' not in a_config: - logging.error('can not find server_port in config') - else: - if command == 'add': - self.add_port(a_config) - self._send_control_data(b'ok') - elif command == 'remove': - self.remove_port(a_config) - self._send_control_data(b'ok') - elif command == 'ping': - self._send_control_data(b'pong') - else: - logging.error('unknown command %s', command) - - def _parse_command(self, data): - # commands: - # add: {"server_port": 8000, "password": "foobar"} - # remove: {"server_port": 8000"} - data = common.to_str(data) - parts = data.split(':', 1) - if len(parts) < 2: - return data, None - command, config_json = parts - try: - config = shell.parse_json_in_str(config_json) - return command, config - except Exception as e: - logging.error(e) - return None - - def stat_callback(self, port, data_len): - self._statistics[port] += data_len - - def handle_periodic(self): - r = {} - i = 0 - - def send_data(data_dict): - if data_dict: - # use compact JSON format (without space) - data = common.to_bytes(json.dumps(data_dict, - separators=(',', ':'))) - self._send_control_data(b'stat: ' + data) - - for k, v in self._statistics.items(): - r[k] = v - i += 1 - # split the data into segments that fit in UDP packets - if i >= STAT_SEND_LIMIT: - send_data(r) - r.clear() - i = 0 - if len(r) > 0 : - send_data(r) - self._statistics.clear() - - def _send_control_data(self, data): - if self._control_client_addr: - try: - self._control_socket.sendto(data, self._control_client_addr) - except (socket.error, OSError, IOError) as e: - error_no = eventloop.errno_from_exception(e) - if error_no in (errno.EAGAIN, errno.EINPROGRESS, - errno.EWOULDBLOCK): - return - else: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - - def run(self): - self._loop.run() - - -def run(config): - Manager(config).run() - - -def test(): - import time - import threading - import struct - from shadowsocks import encrypt - - logging.basicConfig(level=5, - format='%(asctime)s %(levelname)-8s %(message)s', - datefmt='%Y-%m-%d %H:%M:%S') - enc = [] - eventloop.TIMEOUT_PRECISION = 1 - - def run_server(): - config = shell.get_config(True) - config = config.copy() - a_config = { - 'server': '127.0.0.1', - 'local_port': 1081, - 'port_password': { - '8381': 'foobar1', - '8382': 'foobar2' - }, - 'method': 'aes-256-cfb', - 'manager_address': '127.0.0.1:6001', - 'timeout': 60, - 'fast_open': False, - 'verbose': 2 - } - config.update(a_config) - manager = Manager(config) - enc.append(manager) - manager.run() - - t = threading.Thread(target=run_server) - t.start() - time.sleep(1) - manager = enc[0] - cli = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - cli.connect(('127.0.0.1', 6001)) - - # test add and remove - time.sleep(1) - cli.send(b'add: {"server_port":7001, "password":"asdfadsfasdf"}') - time.sleep(1) - assert 7001 in manager._relays - data, addr = cli.recvfrom(1506) - assert b'ok' in data - - cli.send(b'remove: {"server_port":8381}') - time.sleep(1) - assert 8381 not in manager._relays - data, addr = cli.recvfrom(1506) - assert b'ok' in data - logging.info('add and remove test passed') - - # test statistics for TCP - header = common.pack_addr(b'google.com') + struct.pack('>H', 80) - data = encrypt.encrypt_all(b'asdfadsfasdf', 'aes-256-cfb', 1, - header + b'GET /\r\n\r\n') - tcp_cli = socket.socket() - tcp_cli.connect(('127.0.0.1', 7001)) - tcp_cli.send(data) - tcp_cli.recv(4096) - tcp_cli.close() - - data, addr = cli.recvfrom(1506) - data = common.to_str(data) - assert data.startswith('stat: ') - data = data.split('stat:')[1] - stats = shell.parse_json_in_str(data) - assert '7001' in stats - logging.info('TCP statistics test passed') - - # test statistics for UDP - header = common.pack_addr(b'127.0.0.1') + struct.pack('>H', 80) - data = encrypt.encrypt_all(b'foobar2', 'aes-256-cfb', 1, - header + b'test') - udp_cli = socket.socket(type=socket.SOCK_DGRAM) - udp_cli.sendto(data, ('127.0.0.1', 8382)) - tcp_cli.close() - - data, addr = cli.recvfrom(1506) - data = common.to_str(data) - assert data.startswith('stat: ') - data = data.split('stat:')[1] - stats = json.loads(data) - assert '8382' in stats - logging.info('UDP statistics test passed') - - manager._loop.stop() - t.join() - - -if __name__ == '__main__': - test() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfs.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfs.py deleted file mode 100644 index 3dfdb141f..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfs.py +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015-2015 breakwa11 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import sys -import hashlib -import logging - -from shadowsocks import common -from shadowsocks.obfsplugin import plain, http_simple, obfs_tls, verify, auth, auth_chain - - -method_supported = {} -method_supported.update(plain.obfs_map) -method_supported.update(http_simple.obfs_map) -method_supported.update(obfs_tls.obfs_map) -method_supported.update(verify.obfs_map) -method_supported.update(auth.obfs_map) -method_supported.update(auth_chain.obfs_map) - -def mu_protocol(): - return ["auth_aes128_md5", "auth_aes128_sha1", "auth_chain_a"] - -class server_info(object): - def __init__(self, data): - self.data = data - -class obfs(object): - def __init__(self, method): - method = common.to_str(method) - self.method = method - self._method_info = self.get_method_info(method) - if self._method_info: - self.obfs = self.get_obfs(method) - else: - raise Exception('obfs plugin [%s] not supported' % method) - - def init_data(self): - return self.obfs.init_data() - - def set_server_info(self, server_info): - return self.obfs.set_server_info(server_info) - - def get_server_info(self): - return self.obfs.get_server_info() - - def get_method_info(self, method): - method = method.lower() - m = method_supported.get(method) - return m - - def get_obfs(self, method): - m = self._method_info - return m[0](method) - - def get_overhead(self, direction): - return self.obfs.get_overhead(direction) - - def client_pre_encrypt(self, buf): - return self.obfs.client_pre_encrypt(buf) - - def client_encode(self, buf): - return self.obfs.client_encode(buf) - - def client_decode(self, buf): - return self.obfs.client_decode(buf) - - def client_post_decrypt(self, buf): - return self.obfs.client_post_decrypt(buf) - - def server_pre_encrypt(self, buf): - return self.obfs.server_pre_encrypt(buf) - - def server_encode(self, buf): - return self.obfs.server_encode(buf) - - def server_decode(self, buf): - return self.obfs.server_decode(buf) - - def server_post_decrypt(self, buf): - return self.obfs.server_post_decrypt(buf) - - def client_udp_pre_encrypt(self, buf): - return self.obfs.client_udp_pre_encrypt(buf) - - def client_udp_post_decrypt(self, buf): - return self.obfs.client_udp_post_decrypt(buf) - - def server_udp_pre_encrypt(self, buf, uid): - return self.obfs.server_udp_pre_encrypt(buf, uid) - - def server_udp_post_decrypt(self, buf): - return self.obfs.server_udp_post_decrypt(buf) - - def dispose(self): - self.obfs.dispose() - del self.obfs - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/__init__.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/__init__.py deleted file mode 100644 index 401c7b726..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/auth.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/auth.py deleted file mode 100755 index a745e098f..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/auth.py +++ /dev/null @@ -1,787 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015-2015 breakwa11 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import sys -import hashlib -import logging -import binascii -import base64 -import time -import datetime -import random -import math -import struct -import zlib -import hmac -import hashlib - -import shadowsocks -from shadowsocks import common, lru_cache, encrypt -from shadowsocks.obfsplugin import plain -from shadowsocks.common import to_bytes, to_str, ord, chr - -def create_auth_sha1_v4(method): - return auth_sha1_v4(method) - -def create_auth_aes128_md5(method): - return auth_aes128_sha1(method, hashlib.md5) - -def create_auth_aes128_sha1(method): - return auth_aes128_sha1(method, hashlib.sha1) - -obfs_map = { - 'auth_sha1_v4': (create_auth_sha1_v4,), - 'auth_sha1_v4_compatible': (create_auth_sha1_v4,), - 'auth_aes128_md5': (create_auth_aes128_md5,), - 'auth_aes128_sha1': (create_auth_aes128_sha1,), -} - -def match_begin(str1, str2): - if len(str1) >= len(str2): - if str1[:len(str2)] == str2: - return True - return False - -class auth_base(plain.plain): - def __init__(self, method): - super(auth_base, self).__init__(method) - self.method = method - self.no_compatible_method = '' - self.overhead = 7 - - def init_data(self): - return '' - - def get_overhead(self, direction): # direction: true for c->s false for s->c - return self.overhead - - def set_server_info(self, server_info): - self.server_info = server_info - - def client_encode(self, buf): - return buf - - def client_decode(self, buf): - return (buf, False) - - def server_encode(self, buf): - return buf - - def server_decode(self, buf): - return (buf, True, False) - - def not_match_return(self, buf): - self.raw_trans = True - self.overhead = 0 - if self.method == self.no_compatible_method: - return (b'E'*2048, False) - return (buf, False) - -class client_queue(object): - def __init__(self, begin_id): - self.front = begin_id - 64 - self.back = begin_id + 1 - self.alloc = {} - self.enable = True - self.last_update = time.time() - - def update(self): - self.last_update = time.time() - - def is_active(self): - return time.time() - self.last_update < 60 * 3 - - def re_enable(self, connection_id): - self.enable = True - self.front = connection_id - 64 - self.back = connection_id + 1 - self.alloc = {} - - def insert(self, connection_id): - if not self.enable: - logging.warn('obfs auth: not enable') - return False - if not self.is_active(): - self.re_enable(connection_id) - self.update() - if connection_id < self.front: - logging.warn('obfs auth: deprecated id, someone replay attack') - return False - if connection_id > self.front + 0x4000: - logging.warn('obfs auth: wrong id') - return False - if connection_id in self.alloc: - logging.warn('obfs auth: duplicate id, someone replay attack') - return False - if self.back <= connection_id: - self.back = connection_id + 1 - self.alloc[connection_id] = 1 - while (self.front in self.alloc) or self.front + 0x1000 < self.back: - if self.front in self.alloc: - del self.alloc[self.front] - self.front += 1 - return True - -class obfs_auth_v2_data(object): - def __init__(self): - self.client_id = lru_cache.LRUCache() - self.local_client_id = b'' - self.connection_id = 0 - self.set_max_client(64) # max active client count - - def update(self, client_id, connection_id): - if client_id in self.client_id: - self.client_id[client_id].update() - - def set_max_client(self, max_client): - self.max_client = max_client - self.max_buffer = max(self.max_client * 2, 1024) - - def insert(self, client_id, connection_id): - if self.client_id.get(client_id, None) is None or not self.client_id[client_id].enable: - if self.client_id.first() is None or len(self.client_id) < self.max_client: - if client_id not in self.client_id: - #TODO: check - self.client_id[client_id] = client_queue(connection_id) - else: - self.client_id[client_id].re_enable(connection_id) - return self.client_id[client_id].insert(connection_id) - - if not self.client_id[self.client_id.first()].is_active(): - del self.client_id[self.client_id.first()] - if client_id not in self.client_id: - #TODO: check - self.client_id[client_id] = client_queue(connection_id) - else: - self.client_id[client_id].re_enable(connection_id) - return self.client_id[client_id].insert(connection_id) - - logging.warn('auth_sha1_v2: no inactive client') - return False - else: - return self.client_id[client_id].insert(connection_id) - -class auth_sha1_v4(auth_base): - def __init__(self, method): - super(auth_sha1_v4, self).__init__(method) - self.recv_buf = b'' - self.unit_len = 8100 - self.decrypt_packet_num = 0 - self.raw_trans = False - self.has_sent_header = False - self.has_recv_header = False - self.client_id = 0 - self.connection_id = 0 - self.max_time_dif = 60 * 60 * 24 # time dif (second) setting - self.salt = b"auth_sha1_v4" - self.no_compatible_method = 'auth_sha1_v4' - - def init_data(self): - return obfs_auth_v2_data() - - def set_server_info(self, server_info): - self.server_info = server_info - try: - max_client = int(server_info.protocol_param) - except: - max_client = 64 - self.server_info.data.set_max_client(max_client) - - def rnd_data(self, buf_size): - if buf_size > 1200: - return b'\x01' - - if buf_size > 400: - rnd_data = os.urandom(common.ord(os.urandom(1)[0]) % 256) - else: - rnd_data = os.urandom(struct.unpack('>H', os.urandom(2))[0] % 512) - - if len(rnd_data) < 128: - return common.chr(len(rnd_data) + 1) + rnd_data - else: - return common.chr(255) + struct.pack('>H', len(rnd_data) + 3) + rnd_data - - def pack_data(self, buf): - data = self.rnd_data(len(buf)) + buf - data_len = len(data) + 8 - crc = binascii.crc32(struct.pack('>H', data_len)) & 0xFFFF - data = struct.pack('H', data_len) + data - adler32 = zlib.adler32(data) & 0xFFFFFFFF - data += struct.pack('H', data_len) + self.salt + self.server_info.key) & 0xFFFFFFFF - data = struct.pack('H', data_len) + data - data += hmac.new(self.server_info.iv + self.server_info.key, data, hashlib.sha1).digest()[:10] - return data - - def auth_data(self): - utc_time = int(time.time()) & 0xFFFFFFFF - if self.server_info.data.connection_id > 0xFF000000: - self.server_info.data.local_client_id = b'' - if not self.server_info.data.local_client_id: - self.server_info.data.local_client_id = os.urandom(4) - logging.debug("local_client_id %s" % (binascii.hexlify(self.server_info.data.local_client_id),)) - self.server_info.data.connection_id = struct.unpack(' self.unit_len: - ret += self.pack_data(buf[:self.unit_len]) - buf = buf[self.unit_len:] - ret += self.pack_data(buf) - return ret - - def client_post_decrypt(self, buf): - if self.raw_trans: - return buf - self.recv_buf += buf - out_buf = b'' - while len(self.recv_buf) > 4: - crc = struct.pack('H', self.recv_buf[:2])[0] - if length >= 8192 or length < 7: - self.raw_trans = True - self.recv_buf = b'' - raise Exception('client_post_decrypt data error') - if length > len(self.recv_buf): - break - - if struct.pack('H', self.recv_buf[5:7])[0] + 4 - out_buf += self.recv_buf[pos:length - 4] - self.recv_buf = self.recv_buf[length:] - - if out_buf: - self.decrypt_packet_num += 1 - return out_buf - - def server_pre_encrypt(self, buf): - if self.raw_trans: - return buf - ret = b'' - while len(buf) > self.unit_len: - ret += self.pack_data(buf[:self.unit_len]) - buf = buf[self.unit_len:] - ret += self.pack_data(buf) - return ret - - def server_post_decrypt(self, buf): - if self.raw_trans: - return (buf, False) - self.recv_buf += buf - out_buf = b'' - sendback = False - - if not self.has_recv_header: - if len(self.recv_buf) <= 6: - return (b'', False) - crc = struct.pack('H', self.recv_buf[:2])[0] - if length > len(self.recv_buf): - return (b'', False) - sha1data = hmac.new(self.server_info.recv_iv + self.server_info.key, self.recv_buf[:length - 10], hashlib.sha1).digest()[:10] - if sha1data != self.recv_buf[length - 10:length]: - logging.error('auth_sha1_v4 data uncorrect auth HMAC-SHA1') - return self.not_match_return(self.recv_buf) - pos = common.ord(self.recv_buf[6]) - if pos < 255: - pos += 6 - else: - pos = struct.unpack('>H', self.recv_buf[7:9])[0] + 6 - out_buf = self.recv_buf[pos:length - 10] - if len(out_buf) < 12: - logging.info('auth_sha1_v4: too short, data %s' % (binascii.hexlify(self.recv_buf),)) - return self.not_match_return(self.recv_buf) - utc_time = struct.unpack(' self.max_time_dif: - logging.info('auth_sha1_v4: wrong timestamp, time_dif %d, data %s' % (time_dif, binascii.hexlify(out_buf),)) - return self.not_match_return(self.recv_buf) - elif self.server_info.data.insert(client_id, connection_id): - self.has_recv_header = True - out_buf = out_buf[12:] - self.client_id = client_id - self.connection_id = connection_id - else: - logging.info('auth_sha1_v4: auth fail, data %s' % (binascii.hexlify(out_buf),)) - return self.not_match_return(self.recv_buf) - self.recv_buf = self.recv_buf[length:] - self.has_recv_header = True - sendback = True - - while len(self.recv_buf) > 4: - crc = struct.pack('H', self.recv_buf[:2])[0] - if length >= 8192 or length < 7: - self.raw_trans = True - self.recv_buf = b'' - if self.decrypt_packet_num == 0: - logging.info('auth_sha1_v4: over size') - return (b'E'*2048, False) - else: - raise Exception('server_post_decrype data error') - if length > len(self.recv_buf): - break - - if struct.pack('H', self.recv_buf[5:7])[0] + 4 - out_buf += self.recv_buf[pos:length - 4] - self.recv_buf = self.recv_buf[length:] - if pos == length - 4: - sendback = True - - if out_buf: - self.server_info.data.update(self.client_id, self.connection_id) - self.decrypt_packet_num += 1 - return (out_buf, sendback) - -class obfs_auth_mu_data(object): - def __init__(self): - self.user_id = {} - self.local_client_id = b'' - self.connection_id = 0 - self.set_max_client(64) # max active client count - - def update(self, user_id, client_id, connection_id): - if user_id not in self.user_id: - self.user_id[user_id] = lru_cache.LRUCache() - local_client_id = self.user_id[user_id] - - if client_id in local_client_id: - local_client_id[client_id].update() - - def set_max_client(self, max_client): - self.max_client = max_client - self.max_buffer = max(self.max_client * 2, 1024) - - def insert(self, user_id, client_id, connection_id): - if user_id not in self.user_id: - self.user_id[user_id] = lru_cache.LRUCache() - local_client_id = self.user_id[user_id] - - if local_client_id.get(client_id, None) is None or not local_client_id[client_id].enable: - if local_client_id.first() is None or len(local_client_id) < self.max_client: - if client_id not in local_client_id: - #TODO: check - local_client_id[client_id] = client_queue(connection_id) - else: - local_client_id[client_id].re_enable(connection_id) - return local_client_id[client_id].insert(connection_id) - - if not local_client_id[local_client_id.first()].is_active(): - del local_client_id[local_client_id.first()] - if client_id not in local_client_id: - #TODO: check - local_client_id[client_id] = client_queue(connection_id) - else: - local_client_id[client_id].re_enable(connection_id) - return local_client_id[client_id].insert(connection_id) - - logging.warn('auth_aes128: no inactive client') - return False - else: - return local_client_id[client_id].insert(connection_id) - -class auth_aes128_sha1(auth_base): - def __init__(self, method, hashfunc): - super(auth_aes128_sha1, self).__init__(method) - self.hashfunc = hashfunc - self.recv_buf = b'' - self.unit_len = 8100 - self.raw_trans = False - self.has_sent_header = False - self.has_recv_header = False - self.client_id = 0 - self.connection_id = 0 - self.max_time_dif = 60 * 60 * 24 # time dif (second) setting - self.salt = hashfunc == hashlib.md5 and b"auth_aes128_md5" or b"auth_aes128_sha1" - self.no_compatible_method = hashfunc == hashlib.md5 and "auth_aes128_md5" or 'auth_aes128_sha1' - self.extra_wait_size = struct.unpack('>H', os.urandom(2))[0] % 1024 - self.pack_id = 1 - self.recv_id = 1 - self.user_id = None - self.user_key = None - self.last_rnd_len = 0 - self.overhead = 9 - - def init_data(self): - return obfs_auth_mu_data() - - def get_overhead(self, direction): # direction: true for c->s false for s->c - return self.overhead - - def set_server_info(self, server_info): - self.server_info = server_info - try: - max_client = int(server_info.protocol_param.split('#')[0]) - except: - max_client = 64 - self.server_info.data.set_max_client(max_client) - - def trapezoid_random_float(self, d): - if d == 0: - return random.random() - s = random.random() - a = 1 - d - return (math.sqrt(a * a + 4 * d * s) - a) / (2 * d) - - def trapezoid_random_int(self, max_val, d): - v = self.trapezoid_random_float(d) - return int(v * max_val) - - def rnd_data_len(self, buf_size, full_buf_size): - if full_buf_size >= self.server_info.buffer_size: - return 0 - tcp_mss = self.server_info.tcp_mss - rev_len = tcp_mss - buf_size - 9 - if rev_len == 0: - return 0 - if rev_len < 0: - if rev_len > -tcp_mss: - return self.trapezoid_random_int(rev_len + tcp_mss, -0.3) - return common.ord(os.urandom(1)[0]) % 32 - if buf_size > 900: - return struct.unpack('>H', os.urandom(2))[0] % rev_len - return self.trapezoid_random_int(rev_len, -0.3) - - def rnd_data(self, buf_size, full_buf_size): - data_len = self.rnd_data_len(buf_size, full_buf_size) - - if data_len < 128: - return common.chr(data_len + 1) + os.urandom(data_len) - - return common.chr(255) + struct.pack(' 400: - rnd_len = struct.unpack(' 0xFF000000: - self.server_info.data.local_client_id = b'' - if not self.server_info.data.local_client_id: - self.server_info.data.local_client_id = os.urandom(4) - logging.debug("local_client_id %s" % (binascii.hexlify(self.server_info.data.local_client_id),)) - self.server_info.data.connection_id = struct.unpack(' self.unit_len: - ret += self.pack_data(buf[:self.unit_len], ogn_data_len) - buf = buf[self.unit_len:] - ret += self.pack_data(buf, ogn_data_len) - self.last_rnd_len = ogn_data_len - return ret - - def client_post_decrypt(self, buf): - if self.raw_trans: - return buf - self.recv_buf += buf - out_buf = b'' - while len(self.recv_buf) > 4: - mac_key = self.user_key + struct.pack('= 8192 or length < 7: - self.raw_trans = True - self.recv_buf = b'' - raise Exception('client_post_decrypt data error') - if length > len(self.recv_buf): - break - - if hmac.new(mac_key, self.recv_buf[:length - 4], self.hashfunc).digest()[:4] != self.recv_buf[length - 4:length]: - self.raw_trans = True - self.recv_buf = b'' - raise Exception('client_post_decrypt data uncorrect checksum') - - self.recv_id = (self.recv_id + 1) & 0xFFFFFFFF - pos = common.ord(self.recv_buf[4]) - if pos < 255: - pos += 4 - else: - pos = struct.unpack(' self.unit_len: - ret += self.pack_data(buf[:self.unit_len], ogn_data_len) - buf = buf[self.unit_len:] - ret += self.pack_data(buf, ogn_data_len) - self.last_rnd_len = ogn_data_len - return ret - - def server_post_decrypt(self, buf): - if self.raw_trans: - return (buf, False) - self.recv_buf += buf - out_buf = b'' - sendback = False - - if not self.has_recv_header: - if len(self.recv_buf) >= 7 or len(self.recv_buf) in [2, 3]: - recv_len = min(len(self.recv_buf), 7) - mac_key = self.server_info.recv_iv + self.server_info.key - sha1data = hmac.new(mac_key, self.recv_buf[:1], self.hashfunc).digest()[:recv_len - 1] - if sha1data != self.recv_buf[1:recv_len]: - return self.not_match_return(self.recv_buf) - - if len(self.recv_buf) < 31: - return (b'', False) - sha1data = hmac.new(mac_key, self.recv_buf[7:27], self.hashfunc).digest()[:4] - if sha1data != self.recv_buf[27:31]: - logging.error('%s data uncorrect auth HMAC-SHA1 from %s:%d, data %s' % (self.no_compatible_method, self.server_info.client, self.server_info.client_port, binascii.hexlify(self.recv_buf))) - if len(self.recv_buf) < 31 + self.extra_wait_size: - return (b'', False) - return self.not_match_return(self.recv_buf) - - uid = self.recv_buf[7:11] - if uid in self.server_info.users: - self.user_id = uid - self.user_key = self.hashfunc(self.server_info.users[uid]).digest() - self.server_info.update_user_func(uid) - else: - if not self.server_info.users: - self.user_key = self.server_info.key - else: - self.user_key = self.server_info.recv_iv - encryptor = encrypt.Encryptor(to_bytes(base64.b64encode(self.user_key)) + self.salt, 'aes-128-cbc') - head = encryptor.decrypt(b'\x00' * 16 + self.recv_buf[11:27] + b'\x00') # need an extra byte or recv empty - length = struct.unpack(' self.max_time_dif: - logging.info('%s: wrong timestamp, time_dif %d, data %s' % (self.no_compatible_method, time_dif, binascii.hexlify(head))) - return self.not_match_return(self.recv_buf) - elif self.server_info.data.insert(self.user_id, client_id, connection_id): - self.has_recv_header = True - out_buf = self.recv_buf[31 + rnd_len:length - 4] - self.client_id = client_id - self.connection_id = connection_id - else: - logging.info('%s: auth fail, data %s' % (self.no_compatible_method, binascii.hexlify(out_buf))) - return self.not_match_return(self.recv_buf) - self.recv_buf = self.recv_buf[length:] - self.has_recv_header = True - sendback = True - - while len(self.recv_buf) > 4: - mac_key = self.user_key + struct.pack('= 8192 or length < 7: - self.raw_trans = True - self.recv_buf = b'' - if self.recv_id == 0: - logging.info(self.no_compatible_method + ': over size') - return (b'E'*2048, False) - else: - raise Exception('server_post_decrype data error') - if length > len(self.recv_buf): - break - - if hmac.new(mac_key, self.recv_buf[:length - 4], self.hashfunc).digest()[:4] != self.recv_buf[length - 4:length]: - logging.info('%s: checksum error, data %s' % (self.no_compatible_method, binascii.hexlify(self.recv_buf[:length]))) - self.raw_trans = True - self.recv_buf = b'' - if self.recv_id == 0: - return (b'E'*2048, False) - else: - raise Exception('server_post_decrype data uncorrect checksum') - - self.recv_id = (self.recv_id + 1) & 0xFFFFFFFF - pos = common.ord(self.recv_buf[4]) - if pos < 255: - pos += 4 - else: - pos = struct.unpack('> 17) ^ (y >> 26)) & xorshift128plus.max_int - self.v1 = x - return (x + y) & xorshift128plus.max_int - - def init_from_bin(self, bin): - bin += b'\0' * 16 - self.v0 = struct.unpack('= len(str2): - if str1[:len(str2)] == str2: - return True - return False - - -class auth_base(plain.plain): - def __init__(self, method): - super(auth_base, self).__init__(method) - self.method = method - self.no_compatible_method = '' - self.overhead = 4 - - def init_data(self): - return '' - - def get_overhead(self, direction): # direction: true for c->s false for s->c - return self.overhead - - def set_server_info(self, server_info): - self.server_info = server_info - - def client_encode(self, buf): - return buf - - def client_decode(self, buf): - return (buf, False) - - def server_encode(self, buf): - return buf - - def server_decode(self, buf): - return (buf, True, False) - - def not_match_return(self, buf): - self.raw_trans = True - self.overhead = 0 - if self.method == self.no_compatible_method: - return (b'E' * 2048, False) - return (buf, False) - - -class client_queue(object): - def __init__(self, begin_id): - self.front = begin_id - 64 - self.back = begin_id + 1 - self.alloc = {} - self.enable = True - self.last_update = time.time() - self.ref = 0 - - def update(self): - self.last_update = time.time() - - def addref(self): - self.ref += 1 - - def delref(self): - if self.ref > 0: - self.ref -= 1 - - def is_active(self): - return (self.ref > 0) and (time.time() - self.last_update < 60 * 10) - - def re_enable(self, connection_id): - self.enable = True - self.front = connection_id - 64 - self.back = connection_id + 1 - self.alloc = {} - - def insert(self, connection_id): - if not self.enable: - logging.warn('obfs auth: not enable') - return False - if not self.is_active(): - self.re_enable(connection_id) - self.update() - if connection_id < self.front: - logging.warn('obfs auth: deprecated id, someone replay attack') - return False - if connection_id > self.front + 0x4000: - logging.warn('obfs auth: wrong id') - return False - if connection_id in self.alloc: - logging.warn('obfs auth: duplicate id, someone replay attack') - return False - if self.back <= connection_id: - self.back = connection_id + 1 - self.alloc[connection_id] = 1 - while (self.front in self.alloc) or self.front + 0x1000 < self.back: - if self.front in self.alloc: - del self.alloc[self.front] - self.front += 1 - self.addref() - return True - - -class obfs_auth_chain_data(object): - def __init__(self, name): - self.name = name - self.user_id = {} - self.local_client_id = b'' - self.connection_id = 0 - self.set_max_client(64) # max active client count - - def update(self, user_id, client_id, connection_id): - if user_id not in self.user_id: - self.user_id[user_id] = lru_cache.LRUCache() - local_client_id = self.user_id[user_id] - - if client_id in local_client_id: - local_client_id[client_id].update() - - def set_max_client(self, max_client): - self.max_client = max_client - self.max_buffer = max(self.max_client * 2, 1024) - - def insert(self, user_id, client_id, connection_id): - if user_id not in self.user_id: - self.user_id[user_id] = lru_cache.LRUCache() - local_client_id = self.user_id[user_id] - - if local_client_id.get(client_id, None) is None or not local_client_id[client_id].enable: - if local_client_id.first() is None or len(local_client_id) < self.max_client: - if client_id not in local_client_id: - # TODO: check - local_client_id[client_id] = client_queue(connection_id) - else: - local_client_id[client_id].re_enable(connection_id) - return local_client_id[client_id].insert(connection_id) - - if not local_client_id[local_client_id.first()].is_active(): - del local_client_id[local_client_id.first()] - if client_id not in local_client_id: - # TODO: check - local_client_id[client_id] = client_queue(connection_id) - else: - local_client_id[client_id].re_enable(connection_id) - return local_client_id[client_id].insert(connection_id) - - logging.warn(self.name + ': no inactive client') - return False - else: - return local_client_id[client_id].insert(connection_id) - - def remove(self, user_id, client_id): - if user_id in self.user_id: - local_client_id = self.user_id[user_id] - if client_id in local_client_id: - local_client_id[client_id].delref() - - -class auth_chain_a(auth_base): - def __init__(self, method): - super(auth_chain_a, self).__init__(method) - self.hashfunc = hashlib.md5 - self.recv_buf = b'' - self.unit_len = 2800 - self.raw_trans = False - self.has_sent_header = False - self.has_recv_header = False - self.client_id = 0 - self.connection_id = 0 - self.max_time_dif = 60 * 60 * 24 # time dif (second) setting - self.salt = b"auth_chain_a" - self.no_compatible_method = 'auth_chain_a' - self.pack_id = 1 - self.recv_id = 1 - self.user_id = None - self.user_id_num = 0 - self.user_key = None - self.overhead = 4 - self.client_over_head = 4 - self.last_client_hash = b'' - self.last_server_hash = b'' - self.random_client = xorshift128plus() - self.random_server = xorshift128plus() - self.encryptor = None - - def init_data(self): - return obfs_auth_chain_data(self.method) - - def get_overhead(self, direction): # direction: true for c->s false for s->c - return self.overhead - - def set_server_info(self, server_info): - self.server_info = server_info - try: - max_client = int(server_info.protocol_param.split('#')[0]) - except: - max_client = 64 - self.server_info.data.set_max_client(max_client) - - def trapezoid_random_float(self, d): - if d == 0: - return random.random() - s = random.random() - a = 1 - d - return (math.sqrt(a * a + 4 * d * s) - a) / (2 * d) - - def trapezoid_random_int(self, max_val, d): - v = self.trapezoid_random_float(d) - return int(v * max_val) - - def rnd_data_len(self, buf_size, last_hash, random): - if buf_size > 1440: - return 0 - random.init_from_bin_len(last_hash, buf_size) - if buf_size > 1300: - return random.next() % 31 - if buf_size > 900: - return random.next() % 127 - if buf_size > 400: - return random.next() % 521 - return random.next() % 1021 - - def udp_rnd_data_len(self, last_hash, random): - random.init_from_bin(last_hash) - return random.next() % 127 - - def rnd_start_pos(self, rand_len, random): - if rand_len > 0: - return random.next() % 8589934609 % rand_len - return 0 - - def rnd_data(self, buf_size, buf, last_hash, random): - rand_len = self.rnd_data_len(buf_size, last_hash, random) - - rnd_data_buf = os.urandom(rand_len) - - if buf_size == 0: - return rnd_data_buf - else: - if rand_len > 0: - start_pos = self.rnd_start_pos(rand_len, random) - return rnd_data_buf[:start_pos] + buf + rnd_data_buf[start_pos:] - else: - return buf - - def pack_client_data(self, buf): - buf = self.encryptor.encrypt(buf) - data = self.rnd_data(len(buf), buf, self.last_client_hash, self.random_client) - data_len = len(data) + 8 - mac_key = self.user_key + struct.pack(' 0xFF000000: - self.server_info.data.local_client_id = b'' - if not self.server_info.data.local_client_id: - self.server_info.data.local_client_id = os.urandom(4) - logging.debug("local_client_id %s" % (binascii.hexlify(self.server_info.data.local_client_id),)) - self.server_info.data.connection_id = struct.unpack(' self.unit_len: - ret += self.pack_client_data(buf[:self.unit_len]) - buf = buf[self.unit_len:] - ret += self.pack_client_data(buf) - return ret - - def client_post_decrypt(self, buf): - if self.raw_trans: - return buf - self.recv_buf += buf - out_buf = b'' - while len(self.recv_buf) > 4: - mac_key = self.user_key + struct.pack('= 4096: - self.raw_trans = True - self.recv_buf = b'' - raise Exception('client_post_decrypt data error') - - if length + 4 > len(self.recv_buf): - break - - server_hash = hmac.new(mac_key, self.recv_buf[:length + 2], self.hashfunc).digest() - if server_hash[:2] != self.recv_buf[length + 2: length + 4]: - logging.info('%s: checksum error, data %s' - % (self.no_compatible_method, binascii.hexlify(self.recv_buf[:length]))) - self.raw_trans = True - self.recv_buf = b'' - raise Exception('client_post_decrypt data uncorrect checksum') - - pos = 2 - if data_len > 0 and rand_len > 0: - pos = 2 + self.rnd_start_pos(rand_len, self.random_server) - out_buf += self.encryptor.decrypt(self.recv_buf[pos: data_len + pos]) - self.last_server_hash = server_hash - if self.recv_id == 1: - self.server_info.tcp_mss = struct.unpack(' self.unit_len: - ret += self.pack_server_data(buf[:self.unit_len]) - buf = buf[self.unit_len:] - ret += self.pack_server_data(buf) - return ret - - def server_post_decrypt(self, buf): - if self.raw_trans: - return (buf, False) - self.recv_buf += buf - out_buf = b'' - sendback = False - - if not self.has_recv_header: - if len(self.recv_buf) >= 12 or len(self.recv_buf) in [7, 8]: - recv_len = min(len(self.recv_buf), 12) - mac_key = self.server_info.recv_iv + self.server_info.key - md5data = hmac.new(mac_key, self.recv_buf[:4], self.hashfunc).digest() - if md5data[:recv_len - 4] != self.recv_buf[4:recv_len]: - return self.not_match_return(self.recv_buf) - - if len(self.recv_buf) < 12 + 24: - return (b'', False) - - self.last_client_hash = md5data - uid = struct.unpack(' self.max_time_dif: - logging.info('%s: wrong timestamp, time_dif %d, data %s' % ( - self.no_compatible_method, time_dif, binascii.hexlify(head) - )) - return self.not_match_return(self.recv_buf) - elif self.server_info.data.insert(self.user_id, client_id, connection_id): - self.has_recv_header = True - self.client_id = client_id - self.connection_id = connection_id - else: - logging.info('%s: auth fail, data %s' % (self.no_compatible_method, binascii.hexlify(out_buf))) - return self.not_match_return(self.recv_buf) - - self.encryptor = encrypt.Encryptor( - to_bytes(base64.b64encode(self.user_key)) + to_bytes(base64.b64encode(self.last_client_hash)), 'rc4') - self.recv_buf = self.recv_buf[36:] - self.has_recv_header = True - sendback = True - - while len(self.recv_buf) > 4: - mac_key = self.user_key + struct.pack('= 4096: - self.raw_trans = True - self.recv_buf = b'' - if self.recv_id == 0: - logging.info(self.no_compatible_method + ': over size') - return (b'E' * 2048, False) - else: - raise Exception('server_post_decrype data error') - - if length + 4 > len(self.recv_buf): - break - - client_hash = hmac.new(mac_key, self.recv_buf[:length + 2], self.hashfunc).digest() - if client_hash[:2] != self.recv_buf[length + 2: length + 4]: - logging.info('%s: checksum error, data %s' % ( - self.no_compatible_method, binascii.hexlify(self.recv_buf[:length]) - )) - self.raw_trans = True - self.recv_buf = b'' - if self.recv_id == 0: - return (b'E' * 2048, False) - else: - raise Exception('server_post_decrype data uncorrect checksum') - - self.recv_id = (self.recv_id + 1) & 0xFFFFFFFF - pos = 2 - if data_len > 0 and rand_len > 0: - pos = 2 + self.rnd_start_pos(rand_len, self.random_client) - out_buf += self.encryptor.decrypt(self.recv_buf[pos: data_len + pos]) - self.last_client_hash = client_hash - self.recv_buf = self.recv_buf[length + 4:] - if data_len == 0: - sendback = True - - if out_buf: - self.server_info.data.update(self.user_id, self.client_id, self.connection_id) - return (out_buf, sendback) - - def client_udp_pre_encrypt(self, buf): - if self.user_key is None: - if b':' in to_bytes(self.server_info.protocol_param): - try: - items = to_bytes(self.server_info.protocol_param).split(':') - self.user_key = self.hashfunc(items[1]).digest() - self.user_id = struct.pack('= 1440: - return 0 - random.init_from_bin_len(last_hash, buf_size) - pos = bisect.bisect_left(self.data_size_list, buf_size + self.server_info.overhead) - final_pos = pos + random.next() % (len(self.data_size_list)) - # 假设random均匀分布,则越长的原始数据长度越容易if false - if final_pos < len(self.data_size_list): - return self.data_size_list[final_pos] - buf_size - self.server_info.overhead - - # 上面if false后选择2号补全数组,此处有更精细的长度分段 - pos = bisect.bisect_left(self.data_size_list2, buf_size + self.server_info.overhead) - final_pos = pos + random.next() % (len(self.data_size_list2)) - if final_pos < len(self.data_size_list2): - return self.data_size_list2[final_pos] - buf_size - self.server_info.overhead - # final_pos 总是分布在pos~(data_size_list2.len-1)之间 - if final_pos < pos + len(self.data_size_list2) - 1: - return 0 - # 有1/len(self.data_size_list2)的概率不满足上一个if ? - # 理论上不会运行到此处,因此可以插入运行断言 ? - # assert False - - if buf_size > 1300: - return random.next() % 31 - if buf_size > 900: - return random.next() % 127 - if buf_size > 400: - return random.next() % 521 - return random.next() % 1021 - - -class auth_chain_c(auth_chain_b): - def __init__(self, method): - super(auth_chain_c, self).__init__(method) - self.salt = b"auth_chain_c" - self.no_compatible_method = 'auth_chain_c' - self.data_size_list0 = [] - - def init_data_size(self, key): - if self.data_size_list0: - self.data_size_list0 = [] - random = xorshift128plus() - random.init_from_bin(key) - # 补全数组长为12~24-1 - list_len = random.next() % (8 + 16) + (4 + 8) - for i in range(0, list_len): - self.data_size_list0.append((int)(random.next() % 2340 % 2040 % 1440)) - self.data_size_list0.sort() - - def set_server_info(self, server_info): - self.server_info = server_info - try: - max_client = int(server_info.protocol_param.split('#')[0]) - except: - max_client = 64 - self.server_info.data.set_max_client(max_client) - self.init_data_size(self.server_info.key) - - def rnd_data_len(self, buf_size, last_hash, random): - other_data_size = buf_size + self.server_info.overhead - # 一定要在random使用前初始化,以保证服务器与客户端同步,保证包大小验证结果正确 - random.init_from_bin_len(last_hash, buf_size) - # final_pos 总是分布在pos~(data_size_list0.len-1)之间 - # 除非data_size_list0中的任何值均过小使其全部都无法容纳buf - if other_data_size >= self.data_size_list0[-1]: - if other_data_size >= 1440: - return 0 - if other_data_size > 1300: - return random.next() % 31 - if other_data_size > 900: - return random.next() % 127 - if other_data_size > 400: - return random.next() % 521 - return random.next() % 1021 - - pos = bisect.bisect_left(self.data_size_list0, other_data_size) - # random select a size in the leftover data_size_list0 - final_pos = pos + random.next() % (len(self.data_size_list0) - pos) - return self.data_size_list0[final_pos] - other_data_size - - -class auth_chain_d(auth_chain_b): - def __init__(self, method): - super(auth_chain_d, self).__init__(method) - self.salt = b"auth_chain_d" - self.no_compatible_method = 'auth_chain_d' - self.data_size_list0 = [] - - def check_and_patch_data_size(self, random): - # append new item - # when the biggest item(first time) or the last append item(other time) are not big enough. - # but set a limit size (64) to avoid stack overflow. - if self.data_size_list0[-1] < 1300 and len(self.data_size_list0) < 64: - self.data_size_list0.append((int)(random.next() % 2340 % 2040 % 1440)) - self.check_and_patch_data_size(random) - - def init_data_size(self, key): - if self.data_size_list0: - self.data_size_list0 = [] - random = xorshift128plus() - random.init_from_bin(key) - # 补全数组长为12~24-1 - list_len = random.next() % (8 + 16) + (4 + 8) - for i in range(0, list_len): - self.data_size_list0.append((int)(random.next() % 2340 % 2040 % 1440)) - self.data_size_list0.sort() - old_len = len(self.data_size_list0) - self.check_and_patch_data_size(random) - # if check_and_patch_data_size are work, re-sort again. - if old_len != len(self.data_size_list0): - self.data_size_list0.sort() - - def set_server_info(self, server_info): - self.server_info = server_info - try: - max_client = int(server_info.protocol_param.split('#')[0]) - except: - max_client = 64 - self.server_info.data.set_max_client(max_client) - self.init_data_size(self.server_info.key) - - def rnd_data_len(self, buf_size, last_hash, random): - other_data_size = buf_size + self.server_info.overhead - # if other_data_size > the bigest item in data_size_list0, not padding any data - if other_data_size >= self.data_size_list0[-1]: - return 0 - - random.init_from_bin_len(last_hash, buf_size) - pos = bisect.bisect_left(self.data_size_list0, other_data_size) - # random select a size in the leftover data_size_list0 - final_pos = pos + random.next() % (len(self.data_size_list0) - pos) - return self.data_size_list0[final_pos] - other_data_size diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/http_simple.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/http_simple.py deleted file mode 100644 index ff3c5fdfb..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/http_simple.py +++ /dev/null @@ -1,315 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015-2015 breakwa11 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import sys -import hashlib -import logging -import binascii -import struct -import base64 -import datetime -import random - -from shadowsocks import common -from shadowsocks.obfsplugin import plain -from shadowsocks.common import to_bytes, to_str, ord, chr - -def create_http_simple_obfs(method): - return http_simple(method) - -def create_http_post_obfs(method): - return http_post(method) - -def create_random_head_obfs(method): - return random_head(method) - -obfs_map = { - 'http_simple': (create_http_simple_obfs,), - 'http_simple_compatible': (create_http_simple_obfs,), - 'http_post': (create_http_post_obfs,), - 'http_post_compatible': (create_http_post_obfs,), - 'random_head': (create_random_head_obfs,), - 'random_head_compatible': (create_random_head_obfs,), -} - -def match_begin(str1, str2): - if len(str1) >= len(str2): - if str1[:len(str2)] == str2: - return True - return False - -class http_simple(plain.plain): - def __init__(self, method): - self.method = method - self.has_sent_header = False - self.has_recv_header = False - self.host = None - self.port = 0 - self.recv_buffer = b'' - # TODO user config user_agent - self.user_agent = [b"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0", - b"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0) Gecko/20100101 Firefox/44.0", - b"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36", - b"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Ubuntu/11.10 Chromium/27.0.1453.93 Chrome/27.0.1453.93 Safari/537.36", - b"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0", - b"Mozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)", - b"Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27", - b"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C)", - b"Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko", - b"Mozilla/5.0 (Linux; Android 4.4; Nexus 5 Build/BuildID) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36", - b"Mozilla/5.0 (iPad; CPU OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3", - b"Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3"] - - def encode_head(self, buf): - hexstr = binascii.hexlify(buf) - chs = [] - for i in range(0, len(hexstr), 2): - chs.append(b"%" + hexstr[i:i+2]) - return b''.join(chs) - - def client_encode(self, buf): - if self.has_sent_header: - return buf - head_size = len(self.server_info.iv) + self.server_info.head_len - if len(buf) - head_size > 64: - headlen = head_size + random.randint(0, 64) - else: - headlen = len(buf) - headdata = buf[:headlen] - buf = buf[headlen:] - port = b'' - if self.server_info.port != 80: - port = b':' + to_bytes(str(self.server_info.port)) - body = None - hosts = (self.server_info.obfs_param or self.server_info.host) - pos = hosts.find("#") - if pos >= 0: - body = hosts[pos + 1:].replace("\n", "\r\n") - body = body.replace("\\n", "\r\n") - hosts = hosts[:pos] - hosts = hosts.split(',') - host = random.choice(hosts) - http_head = b"GET /" + self.encode_head(headdata) + b" HTTP/1.1\r\n" - http_head += b"Host: " + to_bytes(host) + port + b"\r\n" - if body: - http_head += body + "\r\n\r\n" - else: - http_head += b"User-Agent: " + random.choice(self.user_agent) + b"\r\n" - http_head += b"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nDNT: 1\r\nConnection: keep-alive\r\n\r\n" - self.has_sent_header = True - return http_head + buf - - def client_decode(self, buf): - if self.has_recv_header: - return (buf, False) - pos = buf.find(b'\r\n\r\n') - if pos >= 0: - self.has_recv_header = True - return (buf[pos + 4:], False) - else: - return (b'', False) - - def server_encode(self, buf): - if self.has_sent_header: - return buf - - header = b'HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nContent-Encoding: gzip\r\nContent-Type: text/html\r\nDate: ' - header += to_bytes(datetime.datetime.now().strftime('%a, %d %b %Y %H:%M:%S GMT')) - header += b'\r\nServer: nginx\r\nVary: Accept-Encoding\r\n\r\n' - self.has_sent_header = True - return header + buf - - def get_data_from_http_header(self, buf): - ret_buf = b'' - lines = buf.split(b'\r\n') - if lines and len(lines) > 1: - hex_items = lines[0].split(b'%') - if hex_items and len(hex_items) > 1: - for index in range(1, len(hex_items)): - if len(hex_items[index]) < 2: - ret_buf += binascii.unhexlify('0' + hex_items[index]) - break - elif len(hex_items[index]) > 2: - ret_buf += binascii.unhexlify(hex_items[index][:2]) - break - else: - ret_buf += binascii.unhexlify(hex_items[index]) - return ret_buf - return b'' - - def get_host_from_http_header(self, buf): - ret_buf = b'' - lines = buf.split(b'\r\n') - if lines and len(lines) > 1: - for line in lines: - if match_begin(line, b"Host: "): - return common.to_str(line[6:]) - - def not_match_return(self, buf): - self.has_sent_header = True - self.has_recv_header = True - if self.method == 'http_simple': - return (b'E'*2048, False, False) - return (buf, True, False) - - def error_return(self, buf): - self.has_sent_header = True - self.has_recv_header = True - return (b'E'*2048, False, False) - - def server_decode(self, buf): - if self.has_recv_header: - return (buf, True, False) - - self.recv_buffer += buf - buf = self.recv_buffer - if len(buf) > 10: - if match_begin(buf, b'GET ') or match_begin(buf, b'POST '): - if len(buf) > 65536: - self.recv_buffer = None - logging.warn('http_simple: over size') - return self.not_match_return(buf) - else: #not http header, run on original protocol - self.recv_buffer = None - logging.debug('http_simple: not match begin') - return self.not_match_return(buf) - else: - return (b'', True, False) - - if b'\r\n\r\n' in buf: - datas = buf.split(b'\r\n\r\n', 1) - ret_buf = self.get_data_from_http_header(buf) - host = self.get_host_from_http_header(buf) - if host and self.server_info.obfs_param: - pos = host.find(":") - if pos >= 0: - host = host[:pos] - hosts = self.server_info.obfs_param.split(',') - if host not in hosts: - return self.not_match_return(buf) - if len(ret_buf) < 4: - return self.error_return(buf) - if len(datas) > 1: - ret_buf += datas[1] - if len(ret_buf) >= 13: - self.has_recv_header = True - return (ret_buf, True, False) - return self.not_match_return(buf) - else: - return (b'', True, False) - -class http_post(http_simple): - def __init__(self, method): - super(http_post, self).__init__(method) - - def boundary(self): - return to_bytes(''.join([random.choice("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") for i in range(32)])) - - def client_encode(self, buf): - if self.has_sent_header: - return buf - head_size = len(self.server_info.iv) + self.server_info.head_len - if len(buf) - head_size > 64: - headlen = head_size + random.randint(0, 64) - else: - headlen = len(buf) - headdata = buf[:headlen] - buf = buf[headlen:] - port = b'' - if self.server_info.port != 80: - port = b':' + to_bytes(str(self.server_info.port)) - body = None - hosts = (self.server_info.obfs_param or self.server_info.host) - pos = hosts.find("#") - if pos >= 0: - body = hosts[pos + 1:].replace("\\n", "\r\n") - hosts = hosts[:pos] - hosts = hosts.split(',') - host = random.choice(hosts) - http_head = b"POST /" + self.encode_head(headdata) + b" HTTP/1.1\r\n" - http_head += b"Host: " + to_bytes(host) + port + b"\r\n" - if body: - http_head += body + "\r\n\r\n" - else: - http_head += b"User-Agent: " + random.choice(self.user_agent) + b"\r\n" - http_head += b"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.8\r\nAccept-Encoding: gzip, deflate\r\n" - http_head += b"Content-Type: multipart/form-data; boundary=" + self.boundary() + b"\r\nDNT: 1\r\n" - http_head += b"Connection: keep-alive\r\n\r\n" - self.has_sent_header = True - return http_head + buf - - def not_match_return(self, buf): - self.has_sent_header = True - self.has_recv_header = True - if self.method == 'http_post': - return (b'E'*2048, False, False) - return (buf, True, False) - -class random_head(plain.plain): - def __init__(self, method): - self.method = method - self.has_sent_header = False - self.has_recv_header = False - self.raw_trans_sent = False - self.raw_trans_recv = False - self.send_buffer = b'' - - def client_encode(self, buf): - if self.raw_trans_sent: - return buf - self.send_buffer += buf - if not self.has_sent_header: - self.has_sent_header = True - data = os.urandom(common.ord(os.urandom(1)[0]) % 96 + 4) - crc = (0xffffffff - binascii.crc32(data)) & 0xffffffff - return data + struct.pack('= len(str2): - if str1[:len(str2)] == str2: - return True - return False - -class obfs_auth_data(object): - def __init__(self): - self.client_data = lru_cache.LRUCache(60 * 5) - self.client_id = os.urandom(32) - self.startup_time = int(time.time() - 60 * 30) & 0xFFFFFFFF - self.ticket_buf = {} - -class tls_ticket_auth(plain.plain): - def __init__(self, method): - self.method = method - self.handshake_status = 0 - self.send_buffer = b'' - self.recv_buffer = b'' - self.client_id = b'' - self.max_time_dif = 60 * 60 * 24 # time dif (second) setting - self.tls_version = b'\x03\x03' - self.overhead = 5 - - def init_data(self): - return obfs_auth_data() - - def get_overhead(self, direction): # direction: true for c->s false for s->c - return self.overhead - - def sni(self, url): - url = common.to_bytes(url) - data = b"\x00" + struct.pack('>H', len(url)) + url - data = b"\x00\x00" + struct.pack('>H', len(data) + 2) + struct.pack('>H', len(data)) + data - return data - - def pack_auth_data(self, client_id): - utc_time = int(time.time()) & 0xFFFFFFFF - data = struct.pack('>I', utc_time) + os.urandom(18) - data += hmac.new(self.server_info.key + client_id, data, hashlib.sha1).digest()[:10] - return data - - def client_encode(self, buf): - if self.handshake_status == -1: - return buf - if self.handshake_status == 8: - ret = b'' - while len(buf) > 2048: - size = min(struct.unpack('>H', os.urandom(2))[0] % 4096 + 100, len(buf)) - ret += b"\x17" + self.tls_version + struct.pack('>H', size) + buf[:size] - buf = buf[size:] - if len(buf) > 0: - ret += b"\x17" + self.tls_version + struct.pack('>H', len(buf)) + buf - return ret - if len(buf) > 0: - self.send_buffer += b"\x17" + self.tls_version + struct.pack('>H', len(buf)) + buf - if self.handshake_status == 0: - self.handshake_status = 1 - data = self.tls_version + self.pack_auth_data(self.server_info.data.client_id) + b"\x20" + self.server_info.data.client_id + binascii.unhexlify(b"001cc02bc02fcca9cca8cc14cc13c00ac014c009c013009c0035002f000a" + b"0100") - ext = binascii.unhexlify(b"ff01000100") - host = self.server_info.obfs_param or self.server_info.host - if host and host[-1] in string.digits: - host = '' - hosts = host.split(',') - host = random.choice(hosts) - ext += self.sni(host) - ext += b"\x00\x17\x00\x00" - if host not in self.server_info.data.ticket_buf: - self.server_info.data.ticket_buf[host] = os.urandom((struct.unpack('>H', os.urandom(2))[0] % 17 + 8) * 16) - ext += b"\x00\x23" + struct.pack('>H', len(self.server_info.data.ticket_buf[host])) + self.server_info.data.ticket_buf[host] - ext += binascii.unhexlify(b"000d001600140601060305010503040104030301030302010203") - ext += binascii.unhexlify(b"000500050100000000") - ext += binascii.unhexlify(b"00120000") - ext += binascii.unhexlify(b"75500000") - ext += binascii.unhexlify(b"000b00020100") - ext += binascii.unhexlify(b"000a0006000400170018") - data += struct.pack('>H', len(ext)) + ext - data = b"\x01\x00" + struct.pack('>H', len(data)) + data - data = b"\x16\x03\x01" + struct.pack('>H', len(data)) + data - return data - elif self.handshake_status == 1 and len(buf) == 0: - data = b"\x14" + self.tls_version + b"\x00\x01\x01" #ChangeCipherSpec - data += b"\x16" + self.tls_version + b"\x00\x20" + os.urandom(22) #Finished - data += hmac.new(self.server_info.key + self.server_info.data.client_id, data, hashlib.sha1).digest()[:10] - ret = data + self.send_buffer - self.send_buffer = b'' - self.handshake_status = 8 - return ret - return b'' - - def client_decode(self, buf): - if self.handshake_status == -1: - return (buf, False) - - if self.handshake_status == 8: - ret = b'' - self.recv_buffer += buf - while len(self.recv_buffer) > 5: - if ord(self.recv_buffer[0]) != 0x17: - logging.info("data = %s" % (binascii.hexlify(self.recv_buffer))) - raise Exception('server_decode appdata error') - size = struct.unpack('>H', self.recv_buffer[3:5])[0] - if len(self.recv_buffer) < size + 5: - break - buf = self.recv_buffer[5:size+5] - ret += buf - self.recv_buffer = self.recv_buffer[size+5:] - return (ret, False) - - if len(buf) < 11 + 32 + 1 + 32: - raise Exception('client_decode data error') - verify = buf[11:33] - if hmac.new(self.server_info.key + self.server_info.data.client_id, verify, hashlib.sha1).digest()[:10] != buf[33:43]: - raise Exception('client_decode data error') - if hmac.new(self.server_info.key + self.server_info.data.client_id, buf[:-10], hashlib.sha1).digest()[:10] != buf[-10:]: - raise Exception('client_decode data error') - return (b'', True) - - def server_encode(self, buf): - if self.handshake_status == -1: - return buf - if (self.handshake_status & 8) == 8: - ret = b'' - while len(buf) > 2048: - size = min(struct.unpack('>H', os.urandom(2))[0] % 4096 + 100, len(buf)) - ret += b"\x17" + self.tls_version + struct.pack('>H', size) + buf[:size] - buf = buf[size:] - if len(buf) > 0: - ret += b"\x17" + self.tls_version + struct.pack('>H', len(buf)) + buf - return ret - self.handshake_status |= 8 - data = self.tls_version + self.pack_auth_data(self.client_id) + b"\x20" + self.client_id + binascii.unhexlify(b"c02f000005ff01000100") - data = b"\x02\x00" + struct.pack('>H', len(data)) + data #server hello - data = b"\x16" + self.tls_version + struct.pack('>H', len(data)) + data - if random.randint(0, 8) < 1: - ticket = os.urandom((struct.unpack('>H', os.urandom(2))[0] % 164) * 2 + 64) - ticket = struct.pack('>H', len(ticket) + 4) + b"\x04\x00" + struct.pack('>H', len(ticket)) + ticket - data += b"\x16" + self.tls_version + ticket #New session ticket - data += b"\x14" + self.tls_version + b"\x00\x01\x01" #ChangeCipherSpec - finish_len = random.choice([32, 40]) - data += b"\x16" + self.tls_version + struct.pack('>H', finish_len) + os.urandom(finish_len - 10) #Finished - data += hmac.new(self.server_info.key + self.client_id, data, hashlib.sha1).digest()[:10] - if buf: - data += self.server_encode(buf) - return data - - def decode_error_return(self, buf): - self.handshake_status = -1 - if self.overhead > 0: - self.server_info.overhead -= self.overhead - self.overhead = 0 - if self.method in ['tls1.2_ticket_auth', 'tls1.2_ticket_fastauth']: - return (b'E'*2048, False, False) - return (buf, True, False) - - def server_decode(self, buf): - if self.handshake_status == -1: - return (buf, True, False) - - if (self.handshake_status & 4) == 4: - ret = b'' - self.recv_buffer += buf - while len(self.recv_buffer) > 5: - if ord(self.recv_buffer[0]) != 0x17 or ord(self.recv_buffer[1]) != 0x3 or ord(self.recv_buffer[2]) != 0x3: - logging.info("data = %s" % (binascii.hexlify(self.recv_buffer))) - raise Exception('server_decode appdata error') - size = struct.unpack('>H', self.recv_buffer[3:5])[0] - if len(self.recv_buffer) < size + 5: - break - ret += self.recv_buffer[5:size+5] - self.recv_buffer = self.recv_buffer[size+5:] - return (ret, True, False) - - if (self.handshake_status & 1) == 1: - self.recv_buffer += buf - buf = self.recv_buffer - verify = buf - if len(buf) < 11: - raise Exception('server_decode data error') - if not match_begin(buf, b"\x14" + self.tls_version + b"\x00\x01\x01"): #ChangeCipherSpec - raise Exception('server_decode data error') - buf = buf[6:] - if not match_begin(buf, b"\x16" + self.tls_version + b"\x00"): #Finished - raise Exception('server_decode data error') - verify_len = struct.unpack('>H', buf[3:5])[0] + 1 # 11 - 10 - if len(verify) < verify_len + 10: - return (b'', False, False) - if hmac.new(self.server_info.key + self.client_id, verify[:verify_len], hashlib.sha1).digest()[:10] != verify[verify_len:verify_len+10]: - raise Exception('server_decode data error') - self.recv_buffer = verify[verify_len + 10:] - status = self.handshake_status - self.handshake_status |= 4 - ret = self.server_decode(b'') - return ret; - - #raise Exception("handshake data = %s" % (binascii.hexlify(buf))) - self.recv_buffer += buf - buf = self.recv_buffer - ogn_buf = buf - if len(buf) < 3: - return (b'', False, False) - if not match_begin(buf, b'\x16\x03\x01'): - return self.decode_error_return(ogn_buf) - buf = buf[3:] - header_len = struct.unpack('>H', buf[:2])[0] - if header_len > len(buf) - 2: - return (b'', False, False) - - self.recv_buffer = self.recv_buffer[header_len + 5:] - self.handshake_status = 1 - buf = buf[2:header_len + 2] - if not match_begin(buf, b'\x01\x00'): #client hello - logging.info("tls_auth not client hello message") - return self.decode_error_return(ogn_buf) - buf = buf[2:] - if struct.unpack('>H', buf[:2])[0] != len(buf) - 2: - logging.info("tls_auth wrong message size") - return self.decode_error_return(ogn_buf) - buf = buf[2:] - if not match_begin(buf, self.tls_version): - logging.info("tls_auth wrong tls version") - return self.decode_error_return(ogn_buf) - buf = buf[2:] - verifyid = buf[:32] - buf = buf[32:] - sessionid_len = ord(buf[0]) - if sessionid_len < 32: - logging.info("tls_auth wrong sessionid_len") - return self.decode_error_return(ogn_buf) - sessionid = buf[1:sessionid_len + 1] - buf = buf[sessionid_len+1:] - self.client_id = sessionid - sha1 = hmac.new(self.server_info.key + sessionid, verifyid[:22], hashlib.sha1).digest()[:10] - utc_time = struct.unpack('>I', verifyid[:4])[0] - time_dif = common.int32((int(time.time()) & 0xffffffff) - utc_time) - if self.server_info.obfs_param: - try: - self.max_time_dif = int(self.server_info.obfs_param) - except: - pass - if self.max_time_dif > 0 and (time_dif < -self.max_time_dif or time_dif > self.max_time_dif \ - or common.int32(utc_time - self.server_info.data.startup_time) < -self.max_time_dif / 2): - logging.info("tls_auth wrong time") - return self.decode_error_return(ogn_buf) - if sha1 != verifyid[22:]: - logging.info("tls_auth wrong sha1") - return self.decode_error_return(ogn_buf) - if self.server_info.data.client_data.get(verifyid[:22]): - logging.info("replay attack detect, id = %s" % (binascii.hexlify(verifyid))) - return self.decode_error_return(ogn_buf) - self.server_info.data.client_data.sweep() - self.server_info.data.client_data[verifyid[:22]] = sessionid - if len(self.recv_buffer) >= 11: - ret = self.server_decode(b'') - return (ret[0], True, True) - # (buffer_to_recv, is_need_decrypt, is_need_to_encode_and_send_back) - return (b'', False, True) - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/plain.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/plain.py deleted file mode 100644 index 8c6355c38..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/plain.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015-2015 breakwa11 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import sys -import hashlib -import logging - -from shadowsocks.common import ord - -def create_obfs(method): - return plain(method) - -obfs_map = { - 'plain': (create_obfs,), - 'origin': (create_obfs,), -} - -class plain(object): - def __init__(self, method): - self.method = method - self.server_info = None - - def init_data(self): - return b'' - - def get_overhead(self, direction): # direction: true for c->s false for s->c - return 0 - - def get_server_info(self): - return self.server_info - - def set_server_info(self, server_info): - self.server_info = server_info - - def client_pre_encrypt(self, buf): - return buf - - def client_encode(self, buf): - return buf - - def client_decode(self, buf): - # (buffer_to_recv, is_need_to_encode_and_send_back) - return (buf, False) - - def client_post_decrypt(self, buf): - return buf - - def server_pre_encrypt(self, buf): - return buf - - def server_encode(self, buf): - return buf - - def server_decode(self, buf): - # (buffer_to_recv, is_need_decrypt, is_need_to_encode_and_send_back) - return (buf, True, False) - - def server_post_decrypt(self, buf): - return (buf, False) - - def client_udp_pre_encrypt(self, buf): - return buf - - def client_udp_post_decrypt(self, buf): - return buf - - def server_udp_pre_encrypt(self, buf, uid): - return buf - - def server_udp_post_decrypt(self, buf): - return (buf, None) - - def dispose(self): - pass - - def get_head_size(self, buf, def_value): - if len(buf) < 2: - return def_value - head_type = ord(buf[0]) & 0x7 - if head_type == 1: - return 7 - if head_type == 4: - return 19 - if head_type == 3: - return 4 + ord(buf[1]) - return def_value - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/verify.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/verify.py deleted file mode 100644 index 0dc0ca6d1..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/obfsplugin/verify.py +++ /dev/null @@ -1,154 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015-2015 breakwa11 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import sys -import hashlib -import logging -import binascii -import base64 -import time -import datetime -import random -import struct -import zlib -import hmac -import hashlib - -import shadowsocks -from shadowsocks import common -from shadowsocks.obfsplugin import plain -from shadowsocks.common import to_bytes, to_str, ord, chr - -def create_verify_deflate(method): - return verify_deflate(method) - -obfs_map = { - 'verify_deflate': (create_verify_deflate,), -} - -def match_begin(str1, str2): - if len(str1) >= len(str2): - if str1[:len(str2)] == str2: - return True - return False - -class obfs_verify_data(object): - def __init__(self): - pass - -class verify_base(plain.plain): - def __init__(self, method): - super(verify_base, self).__init__(method) - self.method = method - - def init_data(self): - return obfs_verify_data() - - def set_server_info(self, server_info): - self.server_info = server_info - - def client_encode(self, buf): - return buf - - def client_decode(self, buf): - return (buf, False) - - def server_encode(self, buf): - return buf - - def server_decode(self, buf): - return (buf, True, False) - -class verify_deflate(verify_base): - def __init__(self, method): - super(verify_deflate, self).__init__(method) - self.recv_buf = b'' - self.unit_len = 32700 - self.decrypt_packet_num = 0 - self.raw_trans = False - - def pack_data(self, buf): - if len(buf) == 0: - return b'' - data = zlib.compress(buf) - data = struct.pack('>H', len(data)) + data[2:] - return data - - def client_pre_encrypt(self, buf): - ret = b'' - while len(buf) > self.unit_len: - ret += self.pack_data(buf[:self.unit_len]) - buf = buf[self.unit_len:] - ret += self.pack_data(buf) - return ret - - def client_post_decrypt(self, buf): - if self.raw_trans: - return buf - self.recv_buf += buf - out_buf = b'' - while len(self.recv_buf) > 2: - length = struct.unpack('>H', self.recv_buf[:2])[0] - if length >= 32768 or length < 6: - self.raw_trans = True - self.recv_buf = b'' - raise Exception('client_post_decrypt data error') - if length > len(self.recv_buf): - break - - out_buf += zlib.decompress(b'x\x9c' + self.recv_buf[2:length]) - self.recv_buf = self.recv_buf[length:] - - if out_buf: - self.decrypt_packet_num += 1 - return out_buf - - def server_pre_encrypt(self, buf): - ret = b'' - while len(buf) > self.unit_len: - ret += self.pack_data(buf[:self.unit_len]) - buf = buf[self.unit_len:] - ret += self.pack_data(buf) - return ret - - def server_post_decrypt(self, buf): - if self.raw_trans: - return (buf, False) - self.recv_buf += buf - out_buf = b'' - while len(self.recv_buf) > 2: - length = struct.unpack('>H', self.recv_buf[:2])[0] - if length >= 32768 or length < 6: - self.raw_trans = True - self.recv_buf = b'' - if self.decrypt_packet_num == 0: - return (b'E'*2048, False) - else: - raise Exception('server_post_decrype data error') - if length > len(self.recv_buf): - break - - out_buf += zlib.decompress(b'\x78\x9c' + self.recv_buf[2:length]) - self.recv_buf = self.recv_buf[length:] - - if out_buf: - self.decrypt_packet_num += 1 - return (out_buf, False) - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/ordereddict.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/ordereddict.py deleted file mode 100644 index e1918f5e0..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/ordereddict.py +++ /dev/null @@ -1,214 +0,0 @@ -import collections - -################################################################################ -### OrderedDict -################################################################################ - -class OrderedDict(dict): - 'Dictionary that remembers insertion order' - # An inherited dict maps keys to values. - # The inherited dict provides __getitem__, __len__, __contains__, and get. - # The remaining methods are order-aware. - # Big-O running times for all methods are the same as regular dictionaries. - - # The internal self.__map dict maps keys to links in a doubly linked list. - # The circular doubly linked list starts and ends with a sentinel element. - # The sentinel element never gets deleted (this simplifies the algorithm). - # Each link is stored as a list of length three: [PREV, NEXT, KEY]. - - def __init__(*args, **kwds): - '''Initialize an ordered dictionary. The signature is the same as - regular dictionaries, but keyword arguments are not recommended because - their insertion order is arbitrary. - - ''' - if not args: - raise TypeError("descriptor '__init__' of 'OrderedDict' object " - "needs an argument") - self = args[0] - args = args[1:] - if len(args) > 1: - raise TypeError('expected at most 1 arguments, got %d' % len(args)) - try: - self.__root - except AttributeError: - self.__root = root = [] # sentinel node - root[:] = [root, root, None] - self.__map = {} - self.__update(*args, **kwds) - - def __setitem__(self, key, value, dict_setitem=dict.__setitem__): - 'od.__setitem__(i, y) <==> od[i]=y' - # Setting a new item creates a new link at the end of the linked list, - # and the inherited dictionary is updated with the new key/value pair. - if key not in self: - root = self.__root - last = root[0] - last[1] = root[0] = self.__map[key] = [last, root, key] - return dict_setitem(self, key, value) - - def __delitem__(self, key, dict_delitem=dict.__delitem__): - 'od.__delitem__(y) <==> del od[y]' - # Deleting an existing item uses self.__map to find the link which gets - # removed by updating the links in the predecessor and successor nodes. - dict_delitem(self, key) - link_prev, link_next, _ = self.__map.pop(key) - link_prev[1] = link_next # update link_prev[NEXT] - link_next[0] = link_prev # update link_next[PREV] - - def __iter__(self): - 'od.__iter__() <==> iter(od)' - # Traverse the linked list in order. - root = self.__root - curr = root[1] # start at the first node - while curr is not root: - yield curr[2] # yield the curr[KEY] - curr = curr[1] # move to next node - - def __reversed__(self): - 'od.__reversed__() <==> reversed(od)' - # Traverse the linked list in reverse order. - root = self.__root - curr = root[0] # start at the last node - while curr is not root: - yield curr[2] # yield the curr[KEY] - curr = curr[0] # move to previous node - - def clear(self): - 'od.clear() -> None. Remove all items from od.' - root = self.__root - root[:] = [root, root, None] - self.__map.clear() - dict.clear(self) - - # -- the following methods do not depend on the internal structure -- - - def keys(self): - 'od.keys() -> list of keys in od' - return list(self) - - def values(self): - 'od.values() -> list of values in od' - return [self[key] for key in self] - - def items(self): - 'od.items() -> list of (key, value) pairs in od' - return [(key, self[key]) for key in self] - - def iterkeys(self): - 'od.iterkeys() -> an iterator over the keys in od' - return iter(self) - - def itervalues(self): - 'od.itervalues -> an iterator over the values in od' - for k in self: - yield self[k] - - def iteritems(self): - 'od.iteritems -> an iterator over the (key, value) pairs in od' - for k in self: - yield (k, self[k]) - - update = collections.MutableMapping.update - - __update = update # let subclasses override update without breaking __init__ - - __marker = object() - - def pop(self, key, default=__marker): - '''od.pop(k[,d]) -> v, remove specified key and return the corresponding - value. If key is not found, d is returned if given, otherwise KeyError - is raised. - - ''' - if key in self: - result = self[key] - del self[key] - return result - if default is self.__marker: - raise KeyError(key) - return default - - def setdefault(self, key, default=None): - 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' - if key in self: - return self[key] - self[key] = default - return default - - def popitem(self, last=True): - '''od.popitem() -> (k, v), return and remove a (key, value) pair. - Pairs are returned in LIFO order if last is true or FIFO order if false. - - ''' - if not self: - raise KeyError('dictionary is empty') - key = next(reversed(self) if last else iter(self)) - value = self.pop(key) - return key, value - - def __repr__(self, _repr_running={}): - 'od.__repr__() <==> repr(od)' - call_key = id(self), _get_ident() - if call_key in _repr_running: - return '...' - _repr_running[call_key] = 1 - try: - if not self: - return '%s()' % (self.__class__.__name__,) - return '%s(%r)' % (self.__class__.__name__, self.items()) - finally: - del _repr_running[call_key] - - def __reduce__(self): - 'Return state information for pickling' - items = [[k, self[k]] for k in self] - inst_dict = vars(self).copy() - for k in vars(OrderedDict()): - inst_dict.pop(k, None) - if inst_dict: - return (self.__class__, (items,), inst_dict) - return self.__class__, (items,) - - def copy(self): - 'od.copy() -> a shallow copy of od' - return self.__class__(self) - - @classmethod - def fromkeys(cls, iterable, value=None): - '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S. - If not specified, the value defaults to None. - - ''' - self = cls() - for key in iterable: - self[key] = value - return self - - def __eq__(self, other): - '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive - while comparison to a regular mapping is order-insensitive. - - ''' - if isinstance(other, OrderedDict): - return dict.__eq__(self, other) and all(_imap(_eq, self, other)) - return dict.__eq__(self, other) - - def __ne__(self, other): - 'od.__ne__(y) <==> od!=y' - return not self == other - - # -- the following methods support python 3.x style dictionary views -- - - def viewkeys(self): - "od.viewkeys() -> a set-like object providing a view on od's keys" - return KeysView(self) - - def viewvalues(self): - "od.viewvalues() -> an object providing a view on od's values" - return ValuesView(self) - - def viewitems(self): - "od.viewitems() -> a set-like object providing a view on od's items" - return ItemsView(self) - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/run.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/run.sh deleted file mode 100755 index 43720308d..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/run.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -cd `dirname $0` -python_ver=$(ls /usr/bin|grep -e "^python[23]\.[1-9]\+$"|tail -1) -eval $(ps -ef | grep "[0-9] ${python_ver} server\\.py a" | awk '{print "kill "$2}') -ulimit -n 512000 -nohup ${python_ver} server.py a>> /dev/null 2>&1 & - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/server.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/server.py deleted file mode 100755 index 081538933..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/server.py +++ /dev/null @@ -1,221 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import sys -import os -import logging -import signal - -if __name__ == '__main__': - import inspect - - file_path = os.path.dirname(os.path.realpath(inspect.getfile(inspect.currentframe()))) - sys.path.insert(0, os.path.join(file_path, '../')) - -from shadowsocks import shell, daemon, eventloop, tcprelay, udprelay, \ - asyncdns, manager, common - - -def main(): - shell.check_python() - - config = shell.get_config(False) - - shell.log_shadowsocks_version() - - daemon.daemon_exec(config) - - try: - import resource - logging.info( - 'current process RLIMIT_NOFILE resource: soft %d hard %d' % resource.getrlimit(resource.RLIMIT_NOFILE)) - except ImportError: - pass - - if config['port_password']: - pass - else: - config['port_password'] = {} - server_port = config['server_port'] - if type(server_port) == list: - for a_server_port in server_port: - config['port_password'][a_server_port] = config['password'] - else: - config['port_password'][str(server_port)] = config['password'] - - if not config.get('dns_ipv6', False): - asyncdns.IPV6_CONNECTION_SUPPORT = False - - if config.get('manager_address', 0): - logging.info('entering manager mode') - manager.run(config) - return - - tcp_servers = [] - udp_servers = [] - dns_resolver = asyncdns.DNSResolver(config['black_hostname_list']) - if int(config['workers']) > 1: - stat_counter_dict = None - else: - stat_counter_dict = {} - port_password = config['port_password'] - config_password = config.get('password', 'm') - del config['port_password'] - for port, password_obfs in port_password.items(): - method = config["method"] - protocol = config.get("protocol", 'origin') - protocol_param = config.get("protocol_param", '') - obfs = config.get("obfs", 'plain') - obfs_param = config.get("obfs_param", '') - bind = config.get("out_bind", '') - bindv6 = config.get("out_bindv6", '') - if type(password_obfs) == list: - password = password_obfs[0] - obfs = common.to_str(password_obfs[1]) - if len(password_obfs) > 2: - protocol = common.to_str(password_obfs[2]) - elif type(password_obfs) == dict: - password = password_obfs.get('password', config_password) - method = common.to_str(password_obfs.get('method', method)) - protocol = common.to_str(password_obfs.get('protocol', protocol)) - protocol_param = common.to_str(password_obfs.get('protocol_param', protocol_param)) - obfs = common.to_str(password_obfs.get('obfs', obfs)) - obfs_param = common.to_str(password_obfs.get('obfs_param', obfs_param)) - bind = password_obfs.get('out_bind', bind) - bindv6 = password_obfs.get('out_bindv6', bindv6) - else: - password = password_obfs - a_config = config.copy() - ipv6_ok = False - logging.info("server start with protocol[%s] password [%s] method [%s] obfs [%s] obfs_param [%s]" % - (protocol, password, method, obfs, obfs_param)) - if 'server_ipv6' in a_config: - try: - if len(a_config['server_ipv6']) > 2 and a_config['server_ipv6'][0] == "[" and a_config['server_ipv6'][ - -1] == "]": - a_config['server_ipv6'] = a_config['server_ipv6'][1:-1] - a_config['server_port'] = int(port) - a_config['password'] = password - a_config['method'] = method - a_config['protocol'] = protocol - a_config['protocol_param'] = protocol_param - a_config['obfs'] = obfs - a_config['obfs_param'] = obfs_param - a_config['out_bind'] = bind - a_config['out_bindv6'] = bindv6 - a_config['server'] = a_config['server_ipv6'] - logging.info("starting server at [%s]:%d" % - (a_config['server'], int(port))) - tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False, stat_counter=stat_counter_dict)) - udp_servers.append(udprelay.UDPRelay(a_config, dns_resolver, False, stat_counter=stat_counter_dict)) - if a_config['server_ipv6'] == b"::": - ipv6_ok = True - except Exception as e: - shell.print_exception(e) - - try: - a_config = config.copy() - a_config['server_port'] = int(port) - a_config['password'] = password - a_config['method'] = method - a_config['protocol'] = protocol - a_config['protocol_param'] = protocol_param - a_config['obfs'] = obfs - a_config['obfs_param'] = obfs_param - a_config['out_bind'] = bind - a_config['out_bindv6'] = bindv6 - logging.info("starting server at %s:%d" % - (a_config['server'], int(port))) - tcp_servers.append(tcprelay.TCPRelay(a_config, dns_resolver, False, stat_counter=stat_counter_dict)) - udp_servers.append(udprelay.UDPRelay(a_config, dns_resolver, False, stat_counter=stat_counter_dict)) - except Exception as e: - if not ipv6_ok: - shell.print_exception(e) - - def run_server(): - def child_handler(signum, _): - logging.warn('received SIGQUIT, doing graceful shutting down..') - list(map(lambda s: s.close(next_tick=True), - tcp_servers + udp_servers)) - - signal.signal(getattr(signal, 'SIGQUIT', signal.SIGTERM), - child_handler) - - def int_handler(signum, _): - sys.exit(1) - - signal.signal(signal.SIGINT, int_handler) - - try: - loop = eventloop.EventLoop() - dns_resolver.add_to_loop(loop) - list(map(lambda s: s.add_to_loop(loop), tcp_servers + udp_servers)) - - daemon.set_user(config.get('user', None)) - loop.run() - except Exception as e: - shell.print_exception(e) - sys.exit(1) - - if int(config['workers']) > 1: - if os.name == 'posix': - children = [] - is_child = False - for i in range(0, int(config['workers'])): - r = os.fork() - if r == 0: - logging.info('worker started') - is_child = True - run_server() - break - else: - children.append(r) - if not is_child: - def handler(signum, _): - for pid in children: - try: - os.kill(pid, signum) - os.waitpid(pid, 0) - except OSError: # child may already exited - pass - sys.exit() - - signal.signal(signal.SIGTERM, handler) - signal.signal(signal.SIGQUIT, handler) - signal.signal(signal.SIGINT, handler) - - # master - for a_tcp_server in tcp_servers: - a_tcp_server.close() - for a_udp_server in udp_servers: - a_udp_server.close() - dns_resolver.close() - - for child in children: - os.waitpid(child, 0) - else: - logging.warn('worker is only available on Unix/Linux') - run_server() - else: - run_server() - - -if __name__ == '__main__': - main() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/shell.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/shell.py deleted file mode 100755 index a1547d082..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/shell.py +++ /dev/null @@ -1,451 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import json -import sys -import getopt -import logging -from shadowsocks.common import to_bytes, to_str, IPNetwork, PortRange -from shadowsocks import encrypt - -VERBOSE_LEVEL = 5 - -verbose = 0 - - -def check_python(): - info = sys.version_info - if info[0] == 2 and not info[1] >= 6: - print('Python 2.6+ required') - sys.exit(1) - elif info[0] == 3 and not info[1] >= 3: - print('Python 3.3+ required') - sys.exit(1) - elif info[0] not in [2, 3]: - print('Python version not supported') - sys.exit(1) - - -def print_exception(e): - global verbose - logging.error(e) - if verbose > 0: - import traceback - traceback.print_exc() - - -def __version(): - version_str = '' - try: - import pkg_resources - version_str = pkg_resources.get_distribution('shadowsocks').version - except Exception: - try: - from shadowsocks import version - version_str = version.version() - except Exception: - pass - return version_str - - -def print_shadowsocks(): - print('ShadowsocksR %s' % __version()) - - -def log_shadowsocks_version(): - logging.info('ShadowsocksR %s' % __version()) - - -def find_config(): - user_config_path = 'user-config.json' - config_path = 'config.json' - - def sub_find(file_name): - if os.path.exists(file_name): - return file_name - file_name = os.path.join(os.path.abspath('..'), file_name) - return file_name if os.path.exists(file_name) else None - - return sub_find(user_config_path) or sub_find(config_path) - - -def check_config(config, is_local): - if config.get('daemon', None) == 'stop': - # no need to specify configuration for daemon stop - return - - if is_local and not config.get('password', None): - logging.error('password not specified') - print_help(is_local) - sys.exit(2) - - if not is_local and not config.get('password', None) \ - and not config.get('port_password', None): - logging.error('password or port_password not specified') - print_help(is_local) - sys.exit(2) - - if 'local_port' in config: - config['local_port'] = int(config['local_port']) - - if 'server_port' in config and type(config['server_port']) != list: - config['server_port'] = int(config['server_port']) - - if config.get('local_address', '') in [b'0.0.0.0']: - logging.warning('warning: local set to listen on 0.0.0.0, it\'s not safe') - if config.get('server', '') in ['127.0.0.1', 'localhost']: - logging.warning('warning: server set to listen on %s:%s, are you sure?' % - (to_str(config['server']), config['server_port'])) - if config.get('timeout', 300) < 100: - logging.warning('warning: your timeout %d seems too short' % - int(config.get('timeout'))) - if config.get('timeout', 300) > 600: - logging.warning('warning: your timeout %d seems too long' % - int(config.get('timeout'))) - if config.get('password') in [b'mypassword']: - logging.error('DON\'T USE DEFAULT PASSWORD! Please change it in your ' - 'config.json!') - sys.exit(1) - if config.get('user', None) is not None: - if os.name != 'posix': - logging.error('user can be used only on Unix') - sys.exit(1) - - encrypt.try_cipher(config['password'], config['method']) - - -def get_config(is_local): - global verbose - config = {} - config_path = None - logging.basicConfig(level=logging.INFO, - format='%(levelname)-s: %(message)s') - if is_local: - shortopts = 'hd:s:b:p:k:l:m:O:o:G:g:c:t:vq' - longopts = ['help', 'fast-open', 'pid-file=', 'log-file=', 'user=', - 'version'] - else: - shortopts = 'hd:s:p:k:m:O:o:G:g:c:t:vq' - longopts = ['help', 'fast-open', 'pid-file=', 'log-file=', 'workers=', - 'forbidden-ip=', 'user=', 'manager-address=', 'version'] - try: - optlist, args = getopt.getopt(sys.argv[1:], shortopts, longopts) - for key, value in optlist: - if key == '-c': - config_path = value - elif key in ('-h', '--help'): - print_help(is_local) - sys.exit(0) - elif key == '--version': - print_shadowsocks() - sys.exit(0) - else: - continue - - if config_path is None: - config_path = find_config() - - if config_path: - logging.debug('loading config from %s' % config_path) - with open(config_path, 'rb') as f: - try: - config = parse_json_in_str(remove_comment(f.read().decode('utf8'))) - except ValueError as e: - logging.error('found an error in config.json: %s', str(e)) - sys.exit(1) - - v_count = 0 - for key, value in optlist: - if key == '-p': - config['server_port'] = int(value) - elif key == '-k': - config['password'] = to_bytes(value) - elif key == '-l': - config['local_port'] = int(value) - elif key == '-s': - config['server'] = to_str(value) - elif key == '-m': - config['method'] = to_str(value) - elif key == '-O': - config['protocol'] = to_str(value) - elif key == '-o': - config['obfs'] = to_str(value) - elif key == '-G': - config['protocol_param'] = to_str(value) - elif key == '-g': - config['obfs_param'] = to_str(value) - elif key == '-b': - config['local_address'] = to_str(value) - elif key == '-v': - v_count += 1 - # '-vv' turns on more verbose mode - config['verbose'] = v_count - elif key == '-t': - config['timeout'] = int(value) - elif key == '--fast-open': - config['fast_open'] = True - elif key == '--workers': - config['workers'] = int(value) - elif key == '--manager-address': - config['manager_address'] = value - elif key == '--user': - config['user'] = to_str(value) - elif key == '--forbidden-ip': - config['forbidden_ip'] = to_str(value) - - elif key == '-d': - config['daemon'] = to_str(value) - elif key == '--pid-file': - config['pid-file'] = to_str(value) - elif key == '--log-file': - config['log-file'] = to_str(value) - elif key == '-q': - v_count -= 1 - config['verbose'] = v_count - else: - continue - except getopt.GetoptError as e: - print(e, file=sys.stderr) - print_help(is_local) - sys.exit(2) - - if not config: - logging.error('config not specified') - print_help(is_local) - sys.exit(2) - - config['password'] = to_bytes(config.get('password', b'')) - config['method'] = to_str(config.get('method', 'aes-256-cfb')) - config['protocol'] = to_str(config.get('protocol', 'origin')) - config['protocol_param'] = to_str(config.get('protocol_param', '')) - config['obfs'] = to_str(config.get('obfs', 'plain')) - config['obfs_param'] = to_str(config.get('obfs_param', '')) - config['port_password'] = config.get('port_password', None) - config['additional_ports'] = config.get('additional_ports', {}) - config['additional_ports_only'] = config.get('additional_ports_only', False) - config['timeout'] = int(config.get('timeout', 300)) - config['udp_timeout'] = int(config.get('udp_timeout', 120)) - config['udp_cache'] = int(config.get('udp_cache', 64)) - config['fast_open'] = config.get('fast_open', False) - config['workers'] = config.get('workers', 1) - config['pid-file'] = config.get('pid-file', '/var/run/shadowsocksr.pid') - config['log-file'] = config.get('log-file', '/var/log/shadowsocksr.log') - config['verbose'] = config.get('verbose', False) - config['connect_verbose_info'] = config.get('connect_verbose_info', 0) - config['local_address'] = to_str(config.get('local_address', '127.0.0.1')) - config['local_port'] = config.get('local_port', 1080) - if is_local: - if config.get('server', None) is None: - logging.error('server addr not specified') - print_local_help() - sys.exit(2) - else: - config['server'] = to_str(config['server']) - else: - config['server'] = to_str(config.get('server', '0.0.0.0')) - config['black_hostname_list'] = to_str(config.get('black_hostname_list', '')).split(',') - if len(config['black_hostname_list']) == 1 and config['black_hostname_list'][0] == '': - config['black_hostname_list'] = [] - try: - config['forbidden_ip'] = \ - IPNetwork(config.get('forbidden_ip', '127.0.0.0/8,::1/128')) - except Exception as e: - logging.error(e) - sys.exit(2) - try: - config['forbidden_port'] = PortRange(config.get('forbidden_port', '')) - except Exception as e: - logging.error(e) - sys.exit(2) - try: - config['ignore_bind'] = \ - IPNetwork(config.get('ignore_bind', '127.0.0.0/8,::1/128,10.0.0.0/8,192.168.0.0/16')) - except Exception as e: - logging.error(e) - sys.exit(2) - config['server_port'] = config.get('server_port', 8388) - - logging.getLogger('').handlers = [] - logging.addLevelName(VERBOSE_LEVEL, 'VERBOSE') - if config['verbose'] >= 2: - level = VERBOSE_LEVEL - elif config['verbose'] == 1: - level = logging.DEBUG - elif config['verbose'] == -1: - level = logging.WARN - elif config['verbose'] <= -2: - level = logging.ERROR - else: - level = logging.INFO - verbose = config['verbose'] - logging.basicConfig(level=level, - format='%(asctime)s %(levelname)-8s %(filename)s:%(lineno)s %(message)s', - datefmt='%Y-%m-%d %H:%M:%S') - - check_config(config, is_local) - - return config - - -def print_help(is_local): - if is_local: - print_local_help() - else: - print_server_help() - - -def print_local_help(): - print('''usage: sslocal [OPTION]... -A fast tunnel proxy that helps you bypass firewalls. - -You can supply configurations via either config file or command line arguments. - -Proxy options: - -c CONFIG path to config file - -s SERVER_ADDR server address - -p SERVER_PORT server port, default: 8388 - -b LOCAL_ADDR local binding address, default: 127.0.0.1 - -l LOCAL_PORT local port, default: 1080 - -k PASSWORD password - -m METHOD encryption method, default: aes-256-cfb - -o OBFS obfsplugin, default: http_simple - -t TIMEOUT timeout in seconds, default: 300 - --fast-open use TCP_FASTOPEN, requires Linux 3.7+ - -General options: - -h, --help show this help message and exit - -d start/stop/restart daemon mode - --pid-file PID_FILE pid file for daemon mode - --log-file LOG_FILE log file for daemon mode - --user USER username to run as - -v, -vv verbose mode - -q, -qq quiet mode, only show warnings/errors - --version show version information - -Online help: -''') - - -def print_server_help(): - print('''usage: ssserver [OPTION]... -A fast tunnel proxy that helps you bypass firewalls. - -You can supply configurations via either config file or command line arguments. - -Proxy options: - -c CONFIG path to config file - -s SERVER_ADDR server address, default: 0.0.0.0 - -p SERVER_PORT server port, default: 8388 - -k PASSWORD password - -m METHOD encryption method, default: aes-256-cfb - -o OBFS obfsplugin, default: http_simple - -t TIMEOUT timeout in seconds, default: 300 - --fast-open use TCP_FASTOPEN, requires Linux 3.7+ - --workers WORKERS number of workers, available on Unix/Linux - --forbidden-ip IPLIST comma seperated IP list forbidden to connect - --manager-address ADDR optional server manager UDP address, see wiki - -General options: - -h, --help show this help message and exit - -d start/stop/restart daemon mode - --pid-file PID_FILE pid file for daemon mode - --log-file LOG_FILE log file for daemon mode - --user USER username to run as - -v, -vv verbose mode - -q, -qq quiet mode, only show warnings/errors - --version show version information - -Online help: -''') - - -def _decode_list(data): - rv = [] - for item in data: - if hasattr(item, 'encode'): - item = item.encode('utf-8') - elif isinstance(item, list): - item = _decode_list(item) - elif isinstance(item, dict): - item = _decode_dict(item) - rv.append(item) - return rv - - -def _decode_dict(data): - rv = {} - for key, value in data.items(): - if hasattr(value, 'encode'): - value = value.encode('utf-8') - elif isinstance(value, list): - value = _decode_list(value) - elif isinstance(value, dict): - value = _decode_dict(value) - rv[key] = value - return rv - - -class JSFormat: - def __init__(self): - self.state = 0 - - def push(self, ch): - ch = ord(ch) - if self.state == 0: - if ch == ord('"'): - self.state = 1 - return to_str(chr(ch)) - elif ch == ord('/'): - self.state = 3 - else: - return to_str(chr(ch)) - elif self.state == 1: - if ch == ord('"'): - self.state = 0 - return to_str(chr(ch)) - elif ch == ord('\\'): - self.state = 2 - return to_str(chr(ch)) - elif self.state == 2: - self.state = 1 - if ch == ord('"'): - return to_str(chr(ch)) - return "\\" + to_str(chr(ch)) - elif self.state == 3: - if ch == ord('/'): - self.state = 4 - else: - return "/" + to_str(chr(ch)) - elif self.state == 4: - if ch == ord('\n'): - self.state = 0 - return "\n" - return "" - - -def remove_comment(json): - fmt = JSFormat() - return "".join([fmt.push(c) for c in json]) - - -def parse_json_in_str(data): - # parse json and convert everything from unicode to str - return json.loads(data, object_hook=_decode_dict) diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/stop.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/stop.sh deleted file mode 100755 index d7d29589e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/stop.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -python_ver=$(ls /usr/bin|grep -e "^python[23]\.[1-9]\+$"|tail -1) -eval $(ps -ef | grep "[0-9] ${python_ver} server\\.py a" | awk '{print "kill "$2}') - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tail.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tail.sh deleted file mode 100755 index aa3713939..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tail.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -tail -f ssserver.log diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tcprelay.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tcprelay.py deleted file mode 100644 index 595e2be73..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/tcprelay.py +++ /dev/null @@ -1,1476 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import time -import socket -import errno -import struct -import logging -import binascii -import traceback -import random -import platform -import threading - -from shadowsocks import encrypt, obfs, eventloop, shell, common, lru_cache, version -from shadowsocks.common import pre_parse_header, parse_header - -# we clear at most TIMEOUTS_CLEAN_SIZE timeouts each time -TIMEOUTS_CLEAN_SIZE = 512 - -MSG_FASTOPEN = 0x20000000 - -# SOCKS command definition -CMD_CONNECT = 1 -CMD_BIND = 2 -CMD_UDP_ASSOCIATE = 3 - -# for each opening port, we have a TCP Relay - -# for each connection, we have a TCP Relay Handler to handle the connection - -# for each handler, we have 2 sockets: -# local: connected to the client -# remote: connected to remote server - -# for each handler, it could be at one of several stages: - -# as sslocal: -# stage 0 SOCKS hello received from local, send hello to local -# stage 1 addr received from local, query DNS for remote -# stage 2 UDP assoc -# stage 3 DNS resolved, connect to remote -# stage 4 still connecting, more data from local received -# stage 5 remote connected, piping local and remote - -# as ssserver: -# stage 0 just jump to stage 1 -# stage 1 addr received from local, query DNS for remote -# stage 3 DNS resolved, connect to remote -# stage 4 still connecting, more data from local received -# stage 5 remote connected, piping local and remote - -STAGE_INIT = 0 -STAGE_ADDR = 1 -STAGE_UDP_ASSOC = 2 -STAGE_DNS = 3 -STAGE_CONNECTING = 4 -STAGE_STREAM = 5 -STAGE_DESTROYED = -1 - -# for each handler, we have 2 stream directions: -# upstream: from client to server direction -# read local and write to remote -# downstream: from server to client direction -# read remote and write to local - -STREAM_UP = 0 -STREAM_DOWN = 1 - -# for each stream, it's waiting for reading, or writing, or both -WAIT_STATUS_INIT = 0 -WAIT_STATUS_READING = 1 -WAIT_STATUS_WRITING = 2 -WAIT_STATUS_READWRITING = WAIT_STATUS_READING | WAIT_STATUS_WRITING - -NETWORK_MTU = 1500 -TCP_MSS = NETWORK_MTU - 40 -BUF_SIZE = 32 * 1024 -UDP_MAX_BUF_SIZE = 65536 - -class SpeedTester(object): - def __init__(self, max_speed = 0): - self.max_speed = max_speed * 1024 - self.last_time = time.time() - self.sum_len = 0 - - def update_limit(self, max_speed): - self.max_speed = max_speed * 1024 - - def add(self, data_len): - if self.max_speed > 0: - cut_t = time.time() - self.sum_len -= (cut_t - self.last_time) * self.max_speed - if self.sum_len < 0: - self.sum_len = 0 - self.last_time = cut_t - self.sum_len += data_len - - def isExceed(self): - if self.max_speed > 0: - cut_t = time.time() - self.sum_len -= (cut_t - self.last_time) * self.max_speed - if self.sum_len < 0: - self.sum_len = 0 - self.last_time = cut_t - return self.sum_len >= self.max_speed - return False - -class TCPRelayHandler(object): - def __init__(self, server, fd_to_handlers, loop, local_sock, config, - dns_resolver, is_local): - self._server = server - self._fd_to_handlers = fd_to_handlers - self._loop = loop - self._local_sock = local_sock - self._remote_sock = None - self._remote_sock_v6 = None - self._local_sock_fd = None - self._remote_sock_fd = None - self._remotev6_sock_fd = None - self._remote_udp = False - self._config = config - self._dns_resolver = dns_resolver - self._add_ref = 0 - if not self._create_encryptor(config): - return - - self._client_address = local_sock.getpeername()[:2] - self._accept_address = local_sock.getsockname()[:2] - self._user = None - self._user_id = server._listen_port - self._update_tcp_mss(local_sock) - - # TCP Relay works as either sslocal or ssserver - # if is_local, this is sslocal - self._is_local = is_local - self._encrypt_correct = True - self._obfs = obfs.obfs(config['obfs']) - self._protocol = obfs.obfs(config['protocol']) - self._overhead = self._obfs.get_overhead(self._is_local) + self._protocol.get_overhead(self._is_local) - self._recv_buffer_size = BUF_SIZE - self._overhead - - server_info = obfs.server_info(server.obfs_data) - server_info.host = config['server'] - server_info.port = server._listen_port - #server_info.users = server.server_users - #server_info.update_user_func = self._update_user - server_info.client = self._client_address[0] - server_info.client_port = self._client_address[1] - server_info.protocol_param = '' - server_info.obfs_param = config['obfs_param'] - server_info.iv = self._encryptor.cipher_iv - server_info.recv_iv = b'' - server_info.key_str = common.to_bytes(config['password']) - server_info.key = self._encryptor.cipher_key - server_info.head_len = 30 - server_info.tcp_mss = self._tcp_mss - server_info.buffer_size = self._recv_buffer_size - server_info.overhead = self._overhead - self._obfs.set_server_info(server_info) - - server_info = obfs.server_info(server.protocol_data) - server_info.host = config['server'] - server_info.port = server._listen_port - server_info.users = server.server_users - server_info.update_user_func = self._update_user - server_info.client = self._client_address[0] - server_info.client_port = self._client_address[1] - server_info.protocol_param = config['protocol_param'] - server_info.obfs_param = '' - server_info.iv = self._encryptor.cipher_iv - server_info.recv_iv = b'' - server_info.key_str = common.to_bytes(config['password']) - server_info.key = self._encryptor.cipher_key - server_info.head_len = 30 - server_info.tcp_mss = self._tcp_mss - server_info.buffer_size = self._recv_buffer_size - server_info.overhead = self._overhead - self._protocol.set_server_info(server_info) - - self._redir_list = config.get('redirect', ["*#0.0.0.0:0"]) - self._is_redirect = False - self._bind = config.get('out_bind', '') - self._bindv6 = config.get('out_bindv6', '') - self._ignore_bind_list = config.get('ignore_bind', []) - - self._fastopen_connected = False - self._data_to_write_to_local = [] - self._data_to_write_to_remote = [] - self._udp_data_send_buffer = b'' - self._upstream_status = WAIT_STATUS_READING - self._downstream_status = WAIT_STATUS_INIT - self._remote_address = None - - self._forbidden_iplist = config.get('forbidden_ip', None) - self._forbidden_portset = config.get('forbidden_port', None) - if is_local: - self._chosen_server = self._get_a_server() - - self.last_activity = 0 - self._update_activity() - self._server.add_connection(1) - self._server.stat_add(self._client_address[0], 1) - self._add_ref = 1 - self.speed_tester_u = SpeedTester(config.get("speed_limit_per_con", 0)) - self.speed_tester_d = SpeedTester(config.get("speed_limit_per_con", 0)) - self._recv_u_max_size = BUF_SIZE - self._recv_d_max_size = BUF_SIZE - self._recv_pack_id = 0 - self._udp_send_pack_id = 0 - self._udpv6_send_pack_id = 0 - - local_sock.setblocking(False) - local_sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) - self._local_sock_fd = local_sock.fileno() - fd_to_handlers[self._local_sock_fd] = self - loop.add(local_sock, eventloop.POLL_IN | eventloop.POLL_ERR, self._server) - self._stage = STAGE_INIT - - def __hash__(self): - # default __hash__ is id / 16 - # we want to eliminate collisions - return id(self) - - @property - def remote_address(self): - return self._remote_address - - def _get_a_server(self): - server = self._config['server'] - server_port = self._config['server_port'] - if type(server_port) == list: - server_port = random.choice(server_port) - if type(server) == list: - server = random.choice(server) - logging.debug('chosen server: %s:%d', server, server_port) - return server, server_port - - def _update_tcp_mss(self, local_sock): - self._tcp_mss = TCP_MSS - try: - tcp_mss = local_sock.getsockopt(socket.SOL_TCP, socket.TCP_MAXSEG) - if tcp_mss > 500 and tcp_mss <= 1500: - self._tcp_mss = tcp_mss - logging.debug("TCP MSS = %d" % (self._tcp_mss,)) - except: - pass - - def _create_encryptor(self, config): - try: - self._encryptor = encrypt.Encryptor(config['password'], - config['method']) - return True - except Exception: - self._stage = STAGE_DESTROYED - logging.error('create encryptor fail at port %d', self._server._listen_port) - - def _update_user(self, user): - self._user = user - self._user_id = struct.unpack(' 6: - length = struct.unpack('>H', self._udp_data_send_buffer[:2])[0] - - if length > len(self._udp_data_send_buffer): - break - - data = self._udp_data_send_buffer[:length] - self._udp_data_send_buffer = self._udp_data_send_buffer[length:] - - frag = common.ord(data[2]) - if frag != 0: - logging.warn('drop a message since frag is %d' % (frag,)) - continue - else: - data = data[3:] - header_result = parse_header(data) - if header_result is None: - continue - connecttype, addrtype, dest_addr, dest_port, header_length = header_result - if (addrtype & 7) == 3: - af = common.is_ip(dest_addr) - if af == False: - handler = common.UDPAsyncDNSHandler(data[header_length:]) - handler.resolve(self._dns_resolver, (dest_addr, dest_port), self._handle_server_dns_resolved) - else: - return self._handle_server_dns_resolved("", (dest_addr, dest_port), dest_addr, data[header_length:]) - else: - return self._handle_server_dns_resolved("", (dest_addr, dest_port), dest_addr, data[header_length:]) - - except Exception as e: - #trace = traceback.format_exc() - #logging.error(trace) - error_no = eventloop.errno_from_exception(e) - if error_no in (errno.EAGAIN, errno.EINPROGRESS, - errno.EWOULDBLOCK): - uncomplete = True - else: - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return False - return True - else: - try: - if self._encrypt_correct: - if sock == self._remote_sock: - self._server.add_transfer_u(self._user, len(data)) - self._update_activity(len(data)) - if data: - l = len(data) - s = sock.send(data) - if s < l: - data = data[s:] - uncomplete = True - else: - return - except (OSError, IOError) as e: - error_no = eventloop.errno_from_exception(e) - if error_no in (errno.EAGAIN, errno.EINPROGRESS, - errno.EWOULDBLOCK): - uncomplete = True - else: - #traceback.print_exc() - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return False - except Exception as e: - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return False - if uncomplete: - if sock == self._local_sock: - self._data_to_write_to_local.append(data) - self._update_stream(STREAM_DOWN, WAIT_STATUS_WRITING) - elif sock == self._remote_sock: - self._data_to_write_to_remote.append(data) - self._update_stream(STREAM_UP, WAIT_STATUS_WRITING) - else: - logging.error('write_all_to_sock:unknown socket from %s:%d' % (self._client_address[0], self._client_address[1])) - else: - if sock == self._local_sock: - self._update_stream(STREAM_DOWN, WAIT_STATUS_READING) - elif sock == self._remote_sock: - self._update_stream(STREAM_UP, WAIT_STATUS_READING) - else: - logging.error('write_all_to_sock:unknown socket from %s:%d' % (self._client_address[0], self._client_address[1])) - return True - - def _handle_server_dns_resolved(self, error, remote_addr, server_addr, data): - if error: - return - try: - addrs = socket.getaddrinfo(server_addr, remote_addr[1], 0, socket.SOCK_DGRAM, socket.SOL_UDP) - if not addrs: # drop - return - af, socktype, proto, canonname, sa = addrs[0] - if af == socket.AF_INET6: - self._remote_sock_v6.sendto(data, (server_addr, remote_addr[1])) - if self._udpv6_send_pack_id == 0: - addr, port = self._remote_sock_v6.getsockname()[:2] - common.connect_log('UDPv6 sendto %s(%s):%d from %s:%d by user %d' % - (common.to_str(remote_addr[0]), common.to_str(server_addr), remote_addr[1], addr, port, self._user_id)) - self._udpv6_send_pack_id += 1 - else: - self._remote_sock.sendto(data, (server_addr, remote_addr[1])) - if self._udp_send_pack_id == 0: - addr, port = self._remote_sock.getsockname()[:2] - common.connect_log('UDP sendto %s(%s):%d from %s:%d by user %d' % - (common.to_str(remote_addr[0]), common.to_str(server_addr), remote_addr[1], addr, port, self._user_id)) - self._udp_send_pack_id += 1 - return True - except Exception as e: - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - - def _get_redirect_host(self, client_address, ogn_data): - host_list = self._redir_list or ["*#0.0.0.0:0"] - - if type(host_list) != list: - host_list = [host_list] - - items_sum = common.to_str(host_list[0]).rsplit('#', 1) - if len(items_sum) < 2: - hash_code = binascii.crc32(ogn_data) - addrs = socket.getaddrinfo(client_address[0], client_address[1], 0, socket.SOCK_STREAM, socket.SOL_TCP) - af, socktype, proto, canonname, sa = addrs[0] - address_bytes = common.inet_pton(af, sa[0]) - if af == socket.AF_INET6: - addr = struct.unpack('>Q', address_bytes[8:])[0] - elif af == socket.AF_INET: - addr = struct.unpack('>I', address_bytes)[0] - else: - addr = 0 - - host_port = [] - match_port = False - for host in host_list: - items = common.to_str(host).rsplit(':', 1) - if len(items) > 1: - try: - port = int(items[1]) - if port == self._server._listen_port: - match_port = True - host_port.append((items[0], port)) - except: - pass - else: - host_port.append((host, 80)) - - if match_port: - last_host_port = host_port - host_port = [] - for host in last_host_port: - if host[1] == self._server._listen_port: - host_port.append(host) - - return host_port[((hash_code & 0xffffffff) + addr) % len(host_port)] - - else: - host_port = [] - for host in host_list: - items_sum = common.to_str(host).rsplit('#', 1) - items_match = common.to_str(items_sum[0]).rsplit(':', 1) - items = common.to_str(items_sum[1]).rsplit(':', 1) - if len(items_match) > 1: - if items_match[1] != "*": - try: - if self._server._listen_port != int(items_match[1]) and int(items_match[1]) != 0: - continue - except: - pass - - if items_match[0] != "*" and common.match_regex( - items_match[0], ogn_data) == False: - continue - if len(items) > 1: - try: - port = int(items[1]) - return (items[0], port) - except: - pass - else: - return (items[0], 80) - - return ("0.0.0.0", 0) - - def _handel_protocol_error(self, client_address, ogn_data): - logging.warn("Protocol ERROR, TCP ogn data %s from %s:%d via port %d by UID %d" % (binascii.hexlify(ogn_data), client_address[0], client_address[1], self._server._listen_port, self._user_id)) - self._encrypt_correct = False - #create redirect or disconnect by hash code - host, port = self._get_redirect_host(client_address, ogn_data) - if port == 0: - raise Exception('can not parse header') - data = b"\x03" + common.to_bytes(common.chr(len(host))) + common.to_bytes(host) + struct.pack('>H', port) - self._is_redirect = True - logging.warn("TCP data redir %s:%d %s" % (host, port, binascii.hexlify(data))) - return data + ogn_data - - def _handle_stage_connecting(self, data): - if self._is_local: - if self._encryptor is not None: - data = self._protocol.client_pre_encrypt(data) - data = self._encryptor.encrypt(data) - data = self._obfs.client_encode(data) - if data: - self._data_to_write_to_remote.append(data) - if self._is_local and not self._fastopen_connected and \ - self._config['fast_open']: - # for sslocal and fastopen, we basically wait for data and use - # sendto to connect - try: - # only connect once - self._fastopen_connected = True - remote_sock = \ - self._create_remote_socket(self._chosen_server[0], - self._chosen_server[1]) - self._loop.add(remote_sock, eventloop.POLL_ERR, self._server) - data = b''.join(self._data_to_write_to_remote) - l = len(data) - s = remote_sock.sendto(data, MSG_FASTOPEN, self._chosen_server) - if s < l: - data = data[s:] - self._data_to_write_to_remote = [data] - else: - self._data_to_write_to_remote = [] - self._update_stream(STREAM_UP, WAIT_STATUS_READWRITING) - except (OSError, IOError) as e: - if eventloop.errno_from_exception(e) == errno.EINPROGRESS: - # in this case data is not sent at all - self._update_stream(STREAM_UP, WAIT_STATUS_READWRITING) - elif eventloop.errno_from_exception(e) == errno.ENOTCONN: - logging.error('fast open not supported on this OS') - self._config['fast_open'] = False - self.destroy() - else: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - - def _get_head_size(self, buf, def_value): - if len(buf) < 2: - return def_value - head_type = common.ord(buf[0]) & 0xF - if head_type == 1: - return 7 - if head_type == 4: - return 19 - if head_type == 3: - return 4 + common.ord(buf[1]) - return def_value - - def _handle_stage_addr(self, ogn_data, data): - try: - if self._is_local: - cmd = common.ord(data[1]) - if cmd == CMD_UDP_ASSOCIATE: - logging.debug('UDP associate') - if self._local_sock.family == socket.AF_INET6: - header = b'\x05\x00\x00\x04' - else: - header = b'\x05\x00\x00\x01' - addr, port = self._local_sock.getsockname()[:2] - addr_to_send = socket.inet_pton(self._local_sock.family, - addr) - port_to_send = struct.pack('>H', port) - self._write_to_sock(header + addr_to_send + port_to_send, - self._local_sock) - self._stage = STAGE_UDP_ASSOC - # just wait for the client to disconnect - return - elif cmd == CMD_CONNECT: - # just trim VER CMD RSV - data = data[3:] - else: - logging.error('invalid command %d', cmd) - self.destroy() - return - - before_parse_data = data - if self._is_local: - header_result = parse_header(data) - else: - data = pre_parse_header(data) - if data is None: - data = self._handel_protocol_error(self._client_address, ogn_data) - header_result = parse_header(data) - if header_result is not None: - try: - common.to_str(header_result[2]) - except Exception as e: - header_result = None - if header_result is None: - data = self._handel_protocol_error(self._client_address, ogn_data) - header_result = parse_header(data) - self._overhead = self._obfs.get_overhead(self._is_local) + self._protocol.get_overhead(self._is_local) - self._recv_buffer_size = BUF_SIZE - self._overhead - server_info = self._obfs.get_server_info() - server_info.buffer_size = self._recv_buffer_size - server_info = self._protocol.get_server_info() - server_info.buffer_size = self._recv_buffer_size - connecttype, addrtype, remote_addr, remote_port, header_length = header_result - if connecttype != 0: - pass - #common.connect_log('UDP over TCP by user %d' % - # (self._user_id, )) - else: - common.connect_log('TCP request %s:%d by user %d' % - (common.to_str(remote_addr), remote_port, self._user_id)) - self._remote_address = (common.to_str(remote_addr), remote_port) - self._remote_udp = (connecttype != 0) - # pause reading - self._update_stream(STREAM_UP, WAIT_STATUS_WRITING) - self._stage = STAGE_DNS - if self._is_local: - # forward address to remote - self._write_to_sock((b'\x05\x00\x00\x01' - b'\x00\x00\x00\x00\x10\x10'), - self._local_sock) - head_len = self._get_head_size(data, 30) - self._obfs.obfs.server_info.head_len = head_len - self._protocol.obfs.server_info.head_len = head_len - if self._encryptor is not None: - data = self._protocol.client_pre_encrypt(data) - data_to_send = self._encryptor.encrypt(data) - data_to_send = self._obfs.client_encode(data_to_send) - if data_to_send: - self._data_to_write_to_remote.append(data_to_send) - # notice here may go into _handle_dns_resolved directly - self._dns_resolver.resolve(self._chosen_server[0], - self._handle_dns_resolved) - else: - if len(data) > header_length: - self._data_to_write_to_remote.append(data[header_length:]) - # notice here may go into _handle_dns_resolved directly - self._dns_resolver.resolve(remote_addr, - self._handle_dns_resolved) - except Exception as e: - self._log_error(e) - if self._config['verbose']: - traceback.print_exc() - self.destroy() - - def _socket_bind_addr(self, sock, af): - bind_addr = '' - if self._bind and af == socket.AF_INET: - bind_addr = self._bind - elif self._bindv6 and af == socket.AF_INET6: - bind_addr = self._bindv6 - else: - bind_addr = self._accept_address[0] - - bind_addr = bind_addr.replace("::ffff:", "") - if bind_addr in self._ignore_bind_list: - bind_addr = None - if bind_addr: - local_addrs = socket.getaddrinfo(bind_addr, 0, 0, socket.SOCK_STREAM, socket.SOL_TCP) - if local_addrs[0][0] == af: - logging.debug("bind %s" % (bind_addr,)) - try: - sock.bind((bind_addr, 0)) - except Exception as e: - logging.warn("bind %s fail" % (bind_addr,)) - - def _create_remote_socket(self, ip, port): - if self._remote_udp: - addrs_v6 = socket.getaddrinfo("::", 0, 0, socket.SOCK_DGRAM, socket.SOL_UDP) - addrs = socket.getaddrinfo("0.0.0.0", 0, 0, socket.SOCK_DGRAM, socket.SOL_UDP) - else: - addrs = socket.getaddrinfo(ip, port, 0, socket.SOCK_STREAM, socket.SOL_TCP) - if len(addrs) == 0: - raise Exception("getaddrinfo failed for %s:%d" % (ip, port)) - af, socktype, proto, canonname, sa = addrs[0] - if not self._remote_udp and not self._is_redirect: - if self._forbidden_iplist: - if common.to_str(sa[0]) in self._forbidden_iplist: - if self._remote_address: - raise Exception('IP %s is in forbidden list, when connect to %s:%d via port %d by UID %d' % - (common.to_str(sa[0]), self._remote_address[0], self._remote_address[1], self._server._listen_port, self._user_id)) - raise Exception('IP %s is in forbidden list, reject' % - common.to_str(sa[0])) - if self._forbidden_portset: - if sa[1] in self._forbidden_portset: - if self._remote_address: - raise Exception('Port %d is in forbidden list, when connect to %s:%d via port %d by UID %d' % - (sa[1], self._remote_address[0], self._remote_address[1], self._server._listen_port, self._user_id)) - raise Exception('Port %d is in forbidden list, reject' % sa[1]) - remote_sock = socket.socket(af, socktype, proto) - self._remote_sock = remote_sock - self._remote_sock_fd = remote_sock.fileno() - self._fd_to_handlers[self._remote_sock_fd] = self - - if self._remote_udp: - af, socktype, proto, canonname, sa = addrs_v6[0] - remote_sock_v6 = socket.socket(af, socktype, proto) - self._remote_sock_v6 = remote_sock_v6 - self._remotev6_sock_fd = remote_sock_v6.fileno() - self._fd_to_handlers[self._remotev6_sock_fd] = self - - remote_sock.setblocking(False) - if self._remote_udp: - remote_sock_v6.setblocking(False) - - if not self._is_local: - self._socket_bind_addr(remote_sock, af) - self._socket_bind_addr(remote_sock_v6, af) - else: - remote_sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1) - if not self._is_local: - self._socket_bind_addr(remote_sock, af) - return remote_sock - - def _handle_dns_resolved(self, result, error): - if error: - self._log_error(error) - self.destroy() - return - if result: - ip = result[1] - if ip: - try: - self._stage = STAGE_CONNECTING - remote_addr = ip - if self._is_local: - remote_port = self._chosen_server[1] - else: - remote_port = self._remote_address[1] - - if self._is_local and self._config['fast_open']: - # for fastopen: - # wait for more data to arrive and send them in one SYN - self._stage = STAGE_CONNECTING - # we don't have to wait for remote since it's not - # created - self._update_stream(STREAM_UP, WAIT_STATUS_READING) - # TODO when there is already data in this packet - else: - # else do connect - remote_sock = self._create_remote_socket(remote_addr, - remote_port) - if self._remote_udp: - self._loop.add(remote_sock, - eventloop.POLL_IN, - self._server) - if self._remote_sock_v6: - self._loop.add(self._remote_sock_v6, - eventloop.POLL_IN, - self._server) - else: - try: - remote_sock.connect((remote_addr, remote_port)) - except (OSError, IOError) as e: - if eventloop.errno_from_exception(e) in (errno.EINPROGRESS, - errno.EWOULDBLOCK): - pass # always goto here - else: - raise e - addr, port = self._remote_sock.getsockname()[:2] - common.connect_log('TCP connecting %s(%s):%d from %s:%d by user %d' % - (common.to_str(self._remote_address[0]), common.to_str(remote_addr), remote_port, addr, port, self._user_id)) - - self._loop.add(remote_sock, - eventloop.POLL_ERR | eventloop.POLL_OUT, - self._server) - self._stage = STAGE_CONNECTING - self._update_stream(STREAM_UP, WAIT_STATUS_READWRITING) - self._update_stream(STREAM_DOWN, WAIT_STATUS_READING) - if self._remote_udp: - while self._data_to_write_to_remote: - data = self._data_to_write_to_remote[0] - del self._data_to_write_to_remote[0] - self._write_to_sock(data, self._remote_sock) - return - except Exception as e: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - - def _get_read_size(self, sock, recv_buffer_size, up): - if self._overhead == 0: - return recv_buffer_size - buffer_size = len(sock.recv(recv_buffer_size, socket.MSG_PEEK)) - frame_size = self._tcp_mss - self._overhead - if up: - buffer_size = min(buffer_size, self._recv_u_max_size) - self._recv_u_max_size = min(self._recv_u_max_size + frame_size, BUF_SIZE) - else: - buffer_size = min(buffer_size, self._recv_d_max_size) - self._recv_d_max_size = min(self._recv_d_max_size + frame_size, BUF_SIZE) - if buffer_size == recv_buffer_size: - return buffer_size - if buffer_size > frame_size: - buffer_size = int(buffer_size / frame_size) * frame_size - return buffer_size - - def _on_local_read(self): - # handle all local read events and dispatch them to methods for - # each stage - if not self._local_sock: - return - is_local = self._is_local - if is_local: - recv_buffer_size = self._get_read_size(self._local_sock, self._recv_buffer_size, True) - else: - recv_buffer_size = BUF_SIZE - data = None - try: - data = self._local_sock.recv(recv_buffer_size) - except (OSError, IOError) as e: - if eventloop.errno_from_exception(e) in \ - (errno.ETIMEDOUT, errno.EAGAIN, errno.EWOULDBLOCK): - return - if not data: - self.destroy() - return - - self.speed_tester_u.add(len(data)) - self._server.speed_tester_u(self._user_id).add(len(data)) - ogn_data = data - if not is_local: - if self._encryptor is not None: - if self._encrypt_correct: - try: - obfs_decode = self._obfs.server_decode(data) - if self._stage == STAGE_INIT: - self._overhead = self._obfs.get_overhead(self._is_local) + self._protocol.get_overhead(self._is_local) - server_info = self._protocol.get_server_info() - server_info.overhead = self._overhead - except Exception as e: - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return - if obfs_decode[2]: - data = self._obfs.server_encode(b'') - try: - self._write_to_sock(data, self._local_sock) - except Exception as e: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return - if obfs_decode[1]: - if not self._protocol.obfs.server_info.recv_iv: - iv_len = len(self._protocol.obfs.server_info.iv) - self._protocol.obfs.server_info.recv_iv = obfs_decode[0][:iv_len] - data = self._encryptor.decrypt(obfs_decode[0]) - else: - data = obfs_decode[0] - try: - data, sendback = self._protocol.server_post_decrypt(data) - if sendback: - backdata = self._protocol.server_pre_encrypt(b'') - backdata = self._encryptor.encrypt(backdata) - backdata = self._obfs.server_encode(backdata) - try: - self._write_to_sock(backdata, self._local_sock) - except Exception as e: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return - except Exception as e: - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return - else: - return - if not data: - return - if self._stage == STAGE_STREAM: - if self._is_local: - if self._encryptor is not None: - data = self._protocol.client_pre_encrypt(data) - data = self._encryptor.encrypt(data) - data = self._obfs.client_encode(data) - self._write_to_sock(data, self._remote_sock) - elif is_local and self._stage == STAGE_INIT: - # TODO check auth method - self._write_to_sock(b'\x05\00', self._local_sock) - self._stage = STAGE_ADDR - elif self._stage == STAGE_CONNECTING: - self._handle_stage_connecting(data) - elif (is_local and self._stage == STAGE_ADDR) or \ - (not is_local and self._stage == STAGE_INIT): - self._handle_stage_addr(ogn_data, data) - - def _on_remote_read(self, is_remote_sock): - # handle all remote read events - data = None - try: - if self._remote_udp: - if is_remote_sock: - data, addr = self._remote_sock.recvfrom(UDP_MAX_BUF_SIZE) - else: - data, addr = self._remote_sock_v6.recvfrom(UDP_MAX_BUF_SIZE) - port = struct.pack('>H', addr[1]) - try: - ip = socket.inet_aton(addr[0]) - data = b'\x00\x01' + ip + port + data - except Exception as e: - ip = socket.inet_pton(socket.AF_INET6, addr[0]) - data = b'\x00\x04' + ip + port + data - size = len(data) + 2 - data = struct.pack('>H', size) + data - #logging.info('UDP over TCP recvfrom %s:%d %d bytes to %s:%d' % (addr[0], addr[1], len(data), self._client_address[0], self._client_address[1])) - else: - if self._is_local: - recv_buffer_size = BUF_SIZE - else: - recv_buffer_size = self._get_read_size(self._remote_sock, self._recv_buffer_size, False) - data = self._remote_sock.recv(recv_buffer_size) - self._recv_pack_id += 1 - except (OSError, IOError) as e: - if eventloop.errno_from_exception(e) in \ - (errno.ETIMEDOUT, errno.EAGAIN, errno.EWOULDBLOCK, 10035): #errno.WSAEWOULDBLOCK - return - if not data: - self.destroy() - return - - self.speed_tester_d.add(len(data)) - self._server.speed_tester_d(self._user_id).add(len(data)) - if self._encryptor is not None: - if self._is_local: - try: - obfs_decode = self._obfs.client_decode(data) - except Exception as e: - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return - if obfs_decode[1]: - send_back = self._obfs.client_encode(b'') - self._write_to_sock(send_back, self._remote_sock) - if not self._protocol.obfs.server_info.recv_iv: - iv_len = len(self._protocol.obfs.server_info.iv) - self._protocol.obfs.server_info.recv_iv = obfs_decode[0][:iv_len] - data = self._encryptor.decrypt(obfs_decode[0]) - try: - data = self._protocol.client_post_decrypt(data) - if self._recv_pack_id == 1: - self._tcp_mss = self._protocol.get_server_info().tcp_mss - except Exception as e: - shell.print_exception(e) - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - return - else: - if self._encrypt_correct: - data = self._protocol.server_pre_encrypt(data) - data = self._encryptor.encrypt(data) - data = self._obfs.server_encode(data) - self._server.add_transfer_d(self._user, len(data)) - self._update_activity(len(data)) - else: - return - try: - self._write_to_sock(data, self._local_sock) - except Exception as e: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - logging.error("exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - - def _on_local_write(self): - # handle local writable event - if self._data_to_write_to_local: - data = b''.join(self._data_to_write_to_local) - self._data_to_write_to_local = [] - self._write_to_sock(data, self._local_sock) - else: - self._update_stream(STREAM_DOWN, WAIT_STATUS_READING) - - def _on_remote_write(self): - # handle remote writable event - self._stage = STAGE_STREAM - if self._data_to_write_to_remote: - data = b''.join(self._data_to_write_to_remote) - self._data_to_write_to_remote = [] - self._write_to_sock(data, self._remote_sock) - else: - self._update_stream(STREAM_UP, WAIT_STATUS_READING) - - def _on_local_error(self): - if self._local_sock: - err = eventloop.get_sock_error(self._local_sock) - if err.errno not in [errno.ECONNRESET, errno.EPIPE]: - logging.error(err) - logging.error("local error, exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - - def _on_remote_error(self): - if self._remote_sock: - err = eventloop.get_sock_error(self._remote_sock) - if err.errno not in [errno.ECONNRESET]: - logging.error(err) - if self._remote_address: - logging.error("remote error, when connect to %s:%d" % (self._remote_address[0], self._remote_address[1])) - else: - logging.error("remote error, exception from %s:%d" % (self._client_address[0], self._client_address[1])) - self.destroy() - - def handle_event(self, sock, fd, event): - # handle all events in this handler and dispatch them to methods - handle = False - if self._stage == STAGE_DESTROYED: - logging.debug('ignore handle_event: destroyed') - return True - if self._user is not None and self._user not in self._server.server_users: - self.destroy() - return True - if fd == self._remote_sock_fd or fd == self._remotev6_sock_fd: - if event & eventloop.POLL_ERR: - handle = True - self._on_remote_error() - elif event & (eventloop.POLL_IN | eventloop.POLL_HUP): - if not self.speed_tester_d.isExceed() and not self._server.speed_tester_d(self._user_id).isExceed(): - handle = True - self._on_remote_read(sock == self._remote_sock) - else: - self._recv_d_max_size = self._tcp_mss - self._overhead - elif event & eventloop.POLL_OUT: - handle = True - self._on_remote_write() - elif fd == self._local_sock_fd: - if event & eventloop.POLL_ERR: - handle = True - self._on_local_error() - elif event & (eventloop.POLL_IN | eventloop.POLL_HUP): - if not self.speed_tester_u.isExceed() and not self._server.speed_tester_u(self._user_id).isExceed(): - handle = True - self._on_local_read() - else: - self._recv_u_max_size = self._tcp_mss - self._overhead - elif event & eventloop.POLL_OUT: - handle = True - self._on_local_write() - else: - logging.warn('unknown socket from %s:%d' % (self._client_address[0], self._client_address[1])) - try: - self._loop.removefd(fd) - except Exception as e: - shell.print_exception(e) - try: - del self._fd_to_handlers[fd] - except Exception as e: - shell.print_exception(e) - sock.close() - - return handle - - def _log_error(self, e): - logging.error('%s when handling connection from %s:%d' % - (e, self._client_address[0], self._client_address[1])) - - def stage(self): - return self._stage - - def destroy(self): - # destroy the handler and release any resources - # promises: - # 1. destroy won't make another destroy() call inside - # 2. destroy releases resources so it prevents future call to destroy - # 3. destroy won't raise any exceptions - # if any of the promises are broken, it indicates a bug has been - # introduced! mostly likely memory leaks, etc - if self._stage == STAGE_DESTROYED: - # this couldn't happen - logging.debug('already destroyed') - return - self._stage = STAGE_DESTROYED - if self._remote_address: - logging.debug('destroy: %s:%d' % - self._remote_address) - else: - logging.debug('destroy') - if self._remote_sock: - logging.debug('destroying remote') - try: - self._loop.removefd(self._remote_sock_fd) - except Exception as e: - shell.print_exception(e) - try: - if self._remote_sock_fd is not None: - del self._fd_to_handlers[self._remote_sock_fd] - except Exception as e: - shell.print_exception(e) - self._remote_sock.close() - self._remote_sock = None - if self._remote_sock_v6: - logging.debug('destroying remote_v6') - try: - self._loop.removefd(self._remotev6_sock_fd) - except Exception as e: - shell.print_exception(e) - try: - if self._remotev6_sock_fd is not None: - del self._fd_to_handlers[self._remotev6_sock_fd] - except Exception as e: - shell.print_exception(e) - self._remote_sock_v6.close() - self._remote_sock_v6 = None - if self._local_sock: - logging.debug('destroying local') - try: - self._loop.removefd(self._local_sock_fd) - except Exception as e: - shell.print_exception(e) - try: - if self._local_sock_fd is not None: - del self._fd_to_handlers[self._local_sock_fd] - except Exception as e: - shell.print_exception(e) - self._local_sock.close() - self._local_sock = None - if self._obfs: - self._obfs.dispose() - self._obfs = None - if self._protocol: - self._protocol.dispose() - self._protocol = None - self._encryptor = None - self._dns_resolver.remove_callback(self._handle_dns_resolved) - self._server.remove_handler(self) - if self._add_ref > 0: - self._server.add_connection(-1) - self._server.stat_add(self._client_address[0], -1) - -class TCPRelay(object): - def __init__(self, config, dns_resolver, is_local, stat_callback=None, stat_counter=None): - self._config = config - self._is_local = is_local - self._dns_resolver = dns_resolver - self._closed = False - self._eventloop = None - self._fd_to_handlers = {} - self.server_transfer_ul = 0 - self.server_transfer_dl = 0 - self.server_users = {} - self.server_users_cfg = {} - self.server_user_transfer_ul = {} - self.server_user_transfer_dl = {} - self.mu = False - self._speed_tester_u = {} - self._speed_tester_d = {} - self.server_connections = 0 - self.protocol_data = obfs.obfs(config['protocol']).init_data() - self.obfs_data = obfs.obfs(config['obfs']).init_data() - - if config.get('connect_verbose_info', 0) > 0: - common.connect_log = logging.info - - self._timeout = config['timeout'] - self._timeout_cache = lru_cache.LRUCache(timeout=self._timeout, - close_callback=self._close_tcp_client) - - if is_local: - listen_addr = config['local_address'] - listen_port = config['local_port'] - else: - listen_addr = config['server'] - listen_port = config['server_port'] - self._listen_port = listen_port - - if common.to_str(config['protocol']) in obfs.mu_protocol(): - self._update_users(None, None) - - addrs = socket.getaddrinfo(listen_addr, listen_port, 0, - socket.SOCK_STREAM, socket.SOL_TCP) - if len(addrs) == 0: - raise Exception("can't get addrinfo for %s:%d" % - (listen_addr, listen_port)) - af, socktype, proto, canonname, sa = addrs[0] - server_socket = socket.socket(af, socktype, proto) - server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) - server_socket.bind(sa) - server_socket.setblocking(False) - if config['fast_open']: - try: - server_socket.setsockopt(socket.SOL_TCP, 23, 5) - except socket.error: - logging.error('warning: fast open is not available') - self._config['fast_open'] = False - server_socket.listen(config.get('max_connect', 1024)) - self._server_socket = server_socket - self._server_socket_fd = server_socket.fileno() - self._stat_counter = stat_counter - self._stat_callback = stat_callback - - def add_to_loop(self, loop): - if self._eventloop: - raise Exception('already add to loop') - if self._closed: - raise Exception('already closed') - self._eventloop = loop - self._eventloop.add(self._server_socket, - eventloop.POLL_IN | eventloop.POLL_ERR, self) - self._eventloop.add_periodic(self.handle_periodic) - - def remove_handler(self, client): - if hash(client) in self._timeout_cache: - del self._timeout_cache[hash(client)] - - def add_connection(self, val): - self.server_connections += val - logging.debug('server port %5d connections = %d' % (self._listen_port, self.server_connections,)) - - def get_ud(self): - return (self.server_transfer_ul, self.server_transfer_dl) - - def get_users_ud(self): - return (self.server_user_transfer_ul.copy(), self.server_user_transfer_dl.copy()) - - def _update_users(self, protocol_param, acl): - if protocol_param is None: - protocol_param = self._config['protocol_param'] - param = common.to_bytes(protocol_param).split(b'#') - if len(param) == 2: - self.mu = True - user_list = param[1].split(b',') - if user_list: - for user in user_list: - items = user.split(b':') - if len(items) == 2: - user_int_id = int(items[0]) - uid = struct.pack('= stat_dict.get(-1, 0) + connections_step: - logging.info('port %d connections up to %d' % (port, newval)) - stat_dict[-1] = stat_dict.get(-1, 0) + connections_step - elif newval <= stat_dict.get(-1, 0) - connections_step: - logging.info('port %d connections down to %d' % (port, newval)) - stat_dict[-1] = stat_dict.get(-1, 0) - connections_step - - def stat_add(self, local_addr, val): - if self._stat_counter is not None: - if self._listen_port not in self._stat_counter: - self._stat_counter[self._listen_port] = {} - newval = self._stat_counter[self._listen_port].get(local_addr, 0) + val - logging.debug('port %d addr %s connections %d' % (self._listen_port, local_addr, newval)) - self._stat_counter[self._listen_port][local_addr] = newval - self.update_stat(self._listen_port, self._stat_counter[self._listen_port], val) - if newval <= 0: - if local_addr in self._stat_counter[self._listen_port]: - del self._stat_counter[self._listen_port][local_addr] - - newval = self._stat_counter.get(0, 0) + val - self._stat_counter[0] = newval - logging.debug('Total connections %d' % newval) - - connections_step = 50 - if newval >= self._stat_counter.get(-1, 0) + connections_step: - logging.info('Total connections up to %d' % newval) - self._stat_counter[-1] = self._stat_counter.get(-1, 0) + connections_step - elif newval <= self._stat_counter.get(-1, 0) - connections_step: - logging.info('Total connections down to %d' % newval) - self._stat_counter[-1] = self._stat_counter.get(-1, 0) - connections_step - - def update_activity(self, client, data_len): - if data_len and self._stat_callback: - self._stat_callback(self._listen_port, data_len) - - self._timeout_cache[hash(client)] = client - - def _sweep_timeout(self): - self._timeout_cache.sweep() - - def _close_tcp_client(self, client): - if client.remote_address: - logging.debug('timed out: %s:%d' % - client.remote_address) - else: - logging.debug('timed out') - client.destroy() - - def handle_event(self, sock, fd, event): - # handle events and dispatch to handlers - handle = False - if sock: - logging.log(shell.VERBOSE_LEVEL, 'fd %d %s', fd, - eventloop.EVENT_NAMES.get(event, event)) - if sock == self._server_socket: - if event & eventloop.POLL_ERR: - # TODO - raise Exception('server_socket error') - handler = None - handle = True - try: - logging.debug('accept') - conn = self._server_socket.accept() - handler = TCPRelayHandler(self, self._fd_to_handlers, - self._eventloop, conn[0], self._config, - self._dns_resolver, self._is_local) - if handler.stage() == STAGE_DESTROYED: - conn[0].close() - except (OSError, IOError) as e: - error_no = eventloop.errno_from_exception(e) - if error_no in (errno.EAGAIN, errno.EINPROGRESS, - errno.EWOULDBLOCK): - return - else: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - if handler: - handler.destroy() - else: - if sock: - handler = self._fd_to_handlers.get(fd, None) - if handler: - handle = handler.handle_event(sock, fd, event) - else: - logging.warn('unknown fd') - handle = True - try: - self._eventloop.removefd(fd) - except Exception as e: - shell.print_exception(e) - sock.close() - else: - logging.warn('poll removed fd') - handle = True - if fd in self._fd_to_handlers: - try: - del self._fd_to_handlers[fd] - except Exception as e: - shell.print_exception(e) - return handle - - def handle_periodic(self): - if self._closed: - if self._server_socket: - self._eventloop.removefd(self._server_socket_fd) - self._server_socket.close() - self._server_socket = None - logging.info('closed TCP port %d', self._listen_port) - for handler in list(self._fd_to_handlers.values()): - handler.destroy() - self._sweep_timeout() - - def close(self, next_tick=False): - logging.debug('TCP close') - self._closed = True - if not next_tick: - if self._eventloop: - self._eventloop.remove_periodic(self.handle_periodic) - self._eventloop.removefd(self._server_socket_fd) - self._server_socket.close() - for handler in list(self._fd_to_handlers.values()): - handler.destroy() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/udprelay.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/udprelay.py deleted file mode 100644 index b9606cd81..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/udprelay.py +++ /dev/null @@ -1,656 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# SOCKS5 UDP Request -# +----+------+------+----------+----------+----------+ -# |RSV | FRAG | ATYP | DST.ADDR | DST.PORT | DATA | -# +----+------+------+----------+----------+----------+ -# | 2 | 1 | 1 | Variable | 2 | Variable | -# +----+------+------+----------+----------+----------+ - -# SOCKS5 UDP Response -# +----+------+------+----------+----------+----------+ -# |RSV | FRAG | ATYP | DST.ADDR | DST.PORT | DATA | -# +----+------+------+----------+----------+----------+ -# | 2 | 1 | 1 | Variable | 2 | Variable | -# +----+------+------+----------+----------+----------+ - -# shadowsocks UDP Request (before encrypted) -# +------+----------+----------+----------+ -# | ATYP | DST.ADDR | DST.PORT | DATA | -# +------+----------+----------+----------+ -# | 1 | Variable | 2 | Variable | -# +------+----------+----------+----------+ - -# shadowsocks UDP Response (before encrypted) -# +------+----------+----------+----------+ -# | ATYP | DST.ADDR | DST.PORT | DATA | -# +------+----------+----------+----------+ -# | 1 | Variable | 2 | Variable | -# +------+----------+----------+----------+ - -# shadowsocks UDP Request and Response (after encrypted) -# +-------+--------------+ -# | IV | PAYLOAD | -# +-------+--------------+ -# | Fixed | Variable | -# +-------+--------------+ - -# HOW TO NAME THINGS -# ------------------ -# `dest` means destination server, which is from DST fields in the SOCKS5 -# request -# `local` means local server of shadowsocks -# `remote` means remote server of shadowsocks -# `client` means UDP clients that connects to other servers -# `server` means the UDP server that handles user requests - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import time -import socket -import logging -import struct -import errno -import random -import binascii -import traceback -import threading - -from shadowsocks import encrypt, obfs, eventloop, lru_cache, common, shell -from shadowsocks.common import pre_parse_header, parse_header, pack_addr - -# for each handler, we have 2 stream directions: -# upstream: from client to server direction -# read local and write to remote -# downstream: from server to client direction -# read remote and write to local - -STREAM_UP = 0 -STREAM_DOWN = 1 - -# for each stream, it's waiting for reading, or writing, or both -WAIT_STATUS_INIT = 0 -WAIT_STATUS_READING = 1 -WAIT_STATUS_WRITING = 2 -WAIT_STATUS_READWRITING = WAIT_STATUS_READING | WAIT_STATUS_WRITING - -BUF_SIZE = 65536 -DOUBLE_SEND_BEG_IDS = 16 -POST_MTU_MIN = 500 -POST_MTU_MAX = 1400 -SENDING_WINDOW_SIZE = 8192 - -STAGE_INIT = 0 -STAGE_RSP_ID = 1 -STAGE_DNS = 2 -STAGE_CONNECTING = 3 -STAGE_STREAM = 4 -STAGE_DESTROYED = -1 - -CMD_CONNECT = 0 -CMD_RSP_CONNECT = 1 -CMD_CONNECT_REMOTE = 2 -CMD_RSP_CONNECT_REMOTE = 3 -CMD_POST = 4 -CMD_SYN_STATUS = 5 -CMD_POST_64 = 6 -CMD_SYN_STATUS_64 = 7 -CMD_DISCONNECT = 8 - -CMD_VER_STR = b"\x08" - -RSP_STATE_EMPTY = b"" -RSP_STATE_REJECT = b"\x00" -RSP_STATE_CONNECTED = b"\x01" -RSP_STATE_CONNECTEDREMOTE = b"\x02" -RSP_STATE_ERROR = b"\x03" -RSP_STATE_DISCONNECT = b"\x04" -RSP_STATE_REDIRECT = b"\x05" - -def client_key(source_addr, server_af): - # notice this is server af, not dest af - return '%s:%s:%d' % (source_addr[0], source_addr[1], server_af) - -class UDPRelay(object): - def __init__(self, config, dns_resolver, is_local, stat_callback=None, stat_counter=None): - self._config = config - if config.get('connect_verbose_info', 0) > 0: - common.connect_log = logging.info - if is_local: - self._listen_addr = config['local_address'] - self._listen_port = config['local_port'] - self._remote_addr = config['server'] - self._remote_port = config['server_port'] - else: - self._listen_addr = config['server'] - self._listen_port = config['server_port'] - self._remote_addr = None - self._remote_port = None - self._dns_resolver = dns_resolver - self._password = common.to_bytes(config['password']) - self._method = config['method'] - self._timeout = config['timeout'] - self._is_local = is_local - self._udp_cache_size = config['udp_cache'] - self._cache = lru_cache.LRUCache(timeout=config['udp_timeout'], - close_callback=self._close_client_pair) - self._cache_dns_client = lru_cache.LRUCache(timeout=10, - close_callback=self._close_client_pair) - self._client_fd_to_server_addr = {} - #self._dns_cache = lru_cache.LRUCache(timeout=1800) - self._eventloop = None - self._closed = False - self.server_transfer_ul = 0 - self.server_transfer_dl = 0 - self.server_users = {} - self.server_user_transfer_ul = {} - self.server_user_transfer_dl = {} - - if common.to_bytes(config['protocol']) in obfs.mu_protocol(): - self._update_users(None, None) - - self.protocol_data = obfs.obfs(config['protocol']).init_data() - self._protocol = obfs.obfs(config['protocol']) - server_info = obfs.server_info(self.protocol_data) - server_info.host = self._listen_addr - server_info.port = self._listen_port - server_info.users = self.server_users - server_info.protocol_param = config['protocol_param'] - server_info.obfs_param = '' - server_info.iv = b'' - server_info.recv_iv = b'' - server_info.key_str = common.to_bytes(config['password']) - server_info.key = encrypt.encrypt_key(self._password, self._method) - server_info.head_len = 30 - server_info.tcp_mss = 1452 - server_info.buffer_size = BUF_SIZE - server_info.overhead = 0 - self._protocol.set_server_info(server_info) - - self._sockets = set() - self._fd_to_handlers = {} - self._reqid_to_hd = {} - self._data_to_write_to_server_socket = [] - - self._timeout_cache = lru_cache.LRUCache(timeout=self._timeout, - close_callback=self._close_tcp_client) - - self._bind = config.get('out_bind', '') - self._bindv6 = config.get('out_bindv6', '') - self._ignore_bind_list = config.get('ignore_bind', []) - - if 'forbidden_ip' in config: - self._forbidden_iplist = config['forbidden_ip'] - else: - self._forbidden_iplist = None - if 'forbidden_port' in config: - self._forbidden_portset = config['forbidden_port'] - else: - self._forbidden_portset = None - - addrs = socket.getaddrinfo(self._listen_addr, self._listen_port, 0, - socket.SOCK_DGRAM, socket.SOL_UDP) - if len(addrs) == 0: - raise Exception("can't get addrinfo for %s:%d" % - (self._listen_addr, self._listen_port)) - af, socktype, proto, canonname, sa = addrs[0] - server_socket = socket.socket(af, socktype, proto) - server_socket.bind((self._listen_addr, self._listen_port)) - server_socket.setblocking(False) - self._server_socket = server_socket - self._stat_callback = stat_callback - - def _get_a_server(self): - server = self._config['server'] - server_port = self._config['server_port'] - if type(server_port) == list: - server_port = random.choice(server_port) - if type(server) == list: - server = random.choice(server) - logging.debug('chosen server: %s:%d', server, server_port) - return server, server_port - - def get_ud(self): - return (self.server_transfer_ul, self.server_transfer_dl) - - def get_users_ud(self): - ret = (self.server_user_transfer_ul.copy(), self.server_user_transfer_dl.copy()) - return ret - - def _update_users(self, protocol_param, acl): - if protocol_param is None: - protocol_param = self._config['protocol_param'] - param = common.to_bytes(protocol_param).split(b'#') - if len(param) == 2: - user_list = param[1].split(b',') - if user_list: - for user in user_list: - items = user.split(b':') - if len(items) == 2: - user_int_id = int(items[0]) - uid = struct.pack(' header_length + 13 and data[header_length + 4 : header_length + 12] == b"\x00\x01\x00\x00\x00\x00\x00\x00": - is_dns = True - else: - pass - if sa[1] == 53 and is_dns: #DNS - logging.debug("DNS query %s from %s:%d" % (common.to_str(sa[0]), r_addr[0], r_addr[1])) - self._cache_dns_client[key] = (client, uid) - else: - self._cache[key] = (client, uid) - self._client_fd_to_server_addr[client.fileno()] = (r_addr, af) - - self._sockets.add(client.fileno()) - self._eventloop.add(client, eventloop.POLL_IN, self) - - logging.debug('UDP port %5d sockets %d' % (self._listen_port, len(self._sockets))) - - if uid is not None: - user_id = struct.unpack(' 255: - # drop - return - data = pack_addr(r_addr[0]) + struct.pack('>H', r_addr[1]) + data - ref_iv = [encrypt.encrypt_new_iv(self._method)] - self._protocol.obfs.server_info.iv = ref_iv[0] - data = self._protocol.server_udp_pre_encrypt(data, client_uid) - response = encrypt.encrypt_all_iv(self._protocol.obfs.server_info.key, self._method, 1, - data, ref_iv) - if not response: - return - else: - ref_iv = [0] - data = encrypt.encrypt_all_iv(self._protocol.obfs.server_info.key, self._method, 0, - data, ref_iv) - if not data: - return - self._protocol.obfs.server_info.recv_iv = ref_iv[0] - data = self._protocol.client_udp_post_decrypt(data) - header_result = parse_header(data) - if header_result is None: - return - #connecttype, dest_addr, dest_port, header_length = header_result - #logging.debug('UDP handle_client %s:%d to %s:%d' % (common.to_str(r_addr[0]), r_addr[1], dest_addr, dest_port)) - - response = b'\x00\x00\x00' + data - - if client_addr: - if client_uid: - self.add_transfer_d(client_uid, len(response)) - else: - self.server_transfer_dl += len(response) - self.write_to_server_socket(response, client_addr[0]) - if client_dns_pair: - logging.debug("remove dns client %s:%d" % (client_addr[0][0], client_addr[0][1])) - del self._cache_dns_client[key] - self._close_client(client_dns_pair[0]) - else: - # this packet is from somewhere else we know - # simply drop that packet - pass - - def write_to_server_socket(self, data, addr): - uncomplete = False - retry = 0 - try: - self._server_socket.sendto(data, addr) - data = None - while self._data_to_write_to_server_socket: - data_buf = self._data_to_write_to_server_socket[0] - retry = data_buf[1] + 1 - del self._data_to_write_to_server_socket[0] - data, addr = data_buf[0] - self._server_socket.sendto(data, addr) - except (OSError, IOError) as e: - error_no = eventloop.errno_from_exception(e) - uncomplete = True - if error_no in (errno.EWOULDBLOCK,): - pass - else: - shell.print_exception(e) - return False - #if uncomplete and data is not None and retry < 3: - # self._data_to_write_to_server_socket.append([(data, addr), retry]) - #''' - - def add_to_loop(self, loop): - if self._eventloop: - raise Exception('already add to loop') - if self._closed: - raise Exception('already closed') - self._eventloop = loop - - server_socket = self._server_socket - self._eventloop.add(server_socket, - eventloop.POLL_IN | eventloop.POLL_ERR, self) - loop.add_periodic(self.handle_periodic) - - def remove_handler(self, client): - if hash(client) in self._timeout_cache: - del self._timeout_cache[hash(client)] - - def update_activity(self, client): - self._timeout_cache[hash(client)] = client - - def _sweep_timeout(self): - self._timeout_cache.sweep() - - def _close_tcp_client(self, client): - if client.remote_address: - logging.debug('timed out: %s:%d' % - client.remote_address) - else: - logging.debug('timed out') - client.destroy() - client.destroy_local() - - def handle_event(self, sock, fd, event): - if sock == self._server_socket: - if event & eventloop.POLL_ERR: - logging.error('UDP server_socket err') - try: - self._handle_server() - except Exception as e: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - elif sock and (fd in self._sockets): - if event & eventloop.POLL_ERR: - logging.error('UDP client_socket err') - try: - self._handle_client(sock) - except Exception as e: - shell.print_exception(e) - if self._config['verbose']: - traceback.print_exc() - else: - if sock: - handler = self._fd_to_handlers.get(fd, None) - if handler: - handler.handle_event(sock, event) - else: - logging.warn('poll removed fd') - - def handle_periodic(self): - if self._closed: - self._cache.clear(0) - self._cache_dns_client.clear(0) - if self._eventloop: - self._eventloop.remove_periodic(self.handle_periodic) - self._eventloop.remove(self._server_socket) - if self._server_socket: - self._server_socket.close() - self._server_socket = None - logging.info('closed UDP port %d', self._listen_port) - else: - before_sweep_size = len(self._sockets) - self._cache.sweep() - self._cache_dns_client.sweep() - if before_sweep_size != len(self._sockets): - logging.debug('UDP port %5d sockets %d' % (self._listen_port, len(self._sockets))) - self._sweep_timeout() - - def close(self, next_tick=False): - logging.debug('UDP close') - self._closed = True - if not next_tick: - if self._eventloop: - self._eventloop.remove_periodic(self.handle_periodic) - self._eventloop.remove(self._server_socket) - self._server_socket.close() - self._cache.clear(0) - self._cache_dns_client.clear(0) diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/version.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/version.py deleted file mode 100644 index f3e1ef796..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/shadowsocks/version.py +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2017 breakwa11 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -def version(): - return '3.4.0 2017-07-27' - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/stop.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/stop.sh deleted file mode 100755 index 56567daa0..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/stop.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -python_ver=$(ls /usr/bin|grep -e "^python[23]\.[1-9]\+$"|tail -1) -eval $(ps -ef | grep "[0-9] ${python_ver} server\\.py m" | awk '{print "kill "$2}') - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/switchrule.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/switchrule.py deleted file mode 100644 index 6687e12cf..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/switchrule.py +++ /dev/null @@ -1,8 +0,0 @@ -def getKeys(key_list): - return key_list - #return key_list + ['plan'] # append the column name 'plan' - -def isTurnOn(row): - return True - #return row['plan'] == 'B' # then judge here - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tail.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tail.sh deleted file mode 100755 index f36f605ee..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tail.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -cd `dirname $0` -tail -f ssserver.log diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb1.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb1.json deleted file mode 100644 index 40d0b2107..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb1.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"aes-256-cfb1", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb8.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb8.json deleted file mode 100644 index fb7014b1e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-cfb8.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"aes-256-cfb8", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-ctr.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-ctr.json deleted file mode 100644 index 1fed8a8c7..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes-ctr.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"aes-256-ctr", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes.json deleted file mode 100644 index a3d95b9b5..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/aes.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"aes-256-cfb", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/assert.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/assert.sh deleted file mode 100755 index b0c679cbc..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/assert.sh +++ /dev/null @@ -1,148 +0,0 @@ -#!/bin/bash -# assert.sh 1.0 - bash unit testing framework -# Copyright (C) 2009, 2010, 2011, 2012 Robert Lehmann -# -# http://github.com/lehmannro/assert.sh -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser 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 Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . - -export DISCOVERONLY=${DISCOVERONLY:-} -export DEBUG=${DEBUG:-} -export STOP=${STOP:-} -export INVARIANT=${INVARIANT:-} -export CONTINUE=${CONTINUE:-} - -args="$(getopt -n "$0" -l \ - verbose,help,stop,discover,invariant,continue vhxdic $*)" \ -|| exit -1 -for arg in $args; do - case "$arg" in - -h) - echo "$0 [-vxidc]" \ - "[--verbose] [--stop] [--invariant] [--discover] [--continue]" - echo "`sed 's/./ /g' <<< "$0"` [-h] [--help]" - exit 0;; - --help) - cat < [stdin] - (( tests_ran++ )) || : - [[ -n "$DISCOVERONLY" ]] && return || true - # printf required for formatting - printf -v expected "x${2:-}" # x required to overwrite older results - result="$(eval 2>/dev/null $1 <<< ${3:-})" || true - # Note: $expected is already decorated - if [[ "x$result" == "$expected" ]]; then - [[ -n "$DEBUG" ]] && echo -n . || true - return - fi - result="$(sed -e :a -e '$!N;s/\n/\\n/;ta' <<< "$result")" - [[ -z "$result" ]] && result="nothing" || result="\"$result\"" - [[ -z "$2" ]] && expected="nothing" || expected="\"$2\"" - _assert_fail "expected $expected${_indent}got $result" "$1" "$3" -} - -assert_raises() { - # assert_raises [stdin] - (( tests_ran++ )) || : - [[ -n "$DISCOVERONLY" ]] && return || true - status=0 - (eval $1 <<< ${3:-}) > /dev/null 2>&1 || status=$? - expected=${2:-0} - if [[ "$status" -eq "$expected" ]]; then - [[ -n "$DEBUG" ]] && echo -n . || true - return - fi - _assert_fail "program terminated with code $status instead of $expected" "$1" "$3" -} - -_assert_fail() { - # _assert_fail - [[ -n "$DEBUG" ]] && echo -n X - report="test #$tests_ran \"$2${3:+ <<< $3}\" failed:${_indent}$1" - if [[ -n "$STOP" ]]; then - [[ -n "$DEBUG" ]] && echo - echo "$report" - exit 1 - fi - tests_errors[$tests_failed]="$report" - (( tests_failed++ )) || : -} - -_assert_reset -: ${tests_suite_status:=0} # remember if any of the tests failed so far -_assert_cleanup() { - local status=$? - # modify exit code if it's not already non-zero - [[ $status -eq 0 && -z $CONTINUE ]] && exit $tests_suite_status -} -trap _assert_cleanup EXIT diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/chacha20.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/chacha20.json deleted file mode 100644 index 541a9beb5..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/chacha20.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"salsa20_password", - "timeout":60, - "method":"chacha20", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/client-multi-server-ip.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/client-multi-server-ip.json deleted file mode 100644 index 1823c2a75..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/client-multi-server-ip.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":["127.0.0.1", "127.0.0.1"], - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"aes-256-cfb", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/coverage_server.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/coverage_server.py deleted file mode 100644 index 23cc8cd71..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/coverage_server.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -if __name__ == '__main__': - import tornado.ioloop - import tornado.web - import urllib - - class MainHandler(tornado.web.RequestHandler): - def get(self, project): - try: - with open('/tmp/%s-coverage' % project, 'rb') as f: - coverage = f.read().strip() - n = int(coverage.strip('%')) - if n >= 80: - color = 'brightgreen' - else: - color = 'yellow' - self.redirect(('https://img.shields.io/badge/' - 'coverage-%s-%s.svg' - '?style=flat') % - (urllib.quote(coverage), color)) - except IOError: - raise tornado.web.HTTPError(404) - - application = tornado.web.Application([ - (r"/([a-zA-Z0-9\-_]+)", MainHandler), - ]) - - if __name__ == "__main__": - application.listen(8888, address='127.0.0.1') - tornado.ioloop.IOLoop.instance().start() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/fastopen.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/fastopen.json deleted file mode 100644 index f3980b65e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/fastopen.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"fastopen_password", - "timeout":60, - "method":"aes-256-cfb", - "local_address":"127.0.0.1", - "fast_open":true -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6-client-side.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6-client-side.json deleted file mode 100644 index 6c3cfaf8d..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6-client-side.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"::1", - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"aes-256-cfb", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6.json deleted file mode 100644 index d855f9c47..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/ipv6.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"::", - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"aes-256-cfb", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/jenkins.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/jenkins.sh deleted file mode 100755 index ea5c1630b..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/jenkins.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -result=0 - -function run_test { - printf '\e[0;36m' - echo "running test: $command $@" - printf '\e[0m' - - $command "$@" - status=$? - if [ $status -ne 0 ]; then - printf '\e[0;31m' - echo "test failed: $command $@" - printf '\e[0m' - echo - result=1 - else - printf '\e[0;32m' - echo OK - printf '\e[0m' - echo - fi - return 0 -} - -python --version -coverage erase -mkdir tmp -run_test pep8 --ignore=E402 . -run_test pyflakes . -run_test coverage run tests/nose_plugin.py -v -run_test python setup.py sdist -run_test tests/test_daemon.sh -run_test python tests/test.py --with-coverage -c tests/aes.json -run_test python tests/test.py --with-coverage -c tests/aes-ctr.json -run_test python tests/test.py --with-coverage -c tests/aes-cfb1.json -run_test python tests/test.py --with-coverage -c tests/aes-cfb8.json -run_test python tests/test.py --with-coverage -c tests/rc4-md5.json -run_test python tests/test.py --with-coverage -c tests/salsa20.json -run_test python tests/test.py --with-coverage -c tests/chacha20.json -run_test python tests/test.py --with-coverage -c tests/table.json -run_test python tests/test.py --with-coverage -c tests/server-multi-ports.json -run_test python tests/test.py --with-coverage -s tests/aes.json -c tests/client-multi-server-ip.json -run_test python tests/test.py --with-coverage -s tests/server-multi-passwd.json -c tests/server-multi-passwd-client-side.json -run_test python tests/test.py --with-coverage -c tests/workers.json -run_test python tests/test.py --with-coverage -s tests/ipv6.json -c tests/ipv6-client-side.json -run_test python tests/test.py --with-coverage -b "-m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -q" -a "-m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -l 1081 -vv" -run_test python tests/test.py --with-coverage -b "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388 --workers 1" -a "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388 -l 1081 -t 30 -qq -b 127.0.0.1" -run_test python tests/test.py --with-coverage --should-fail --url="http://127.0.0.1/" -b "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388 --forbidden-ip=127.0.0.1,::1,8.8.8.8" -a "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388 -l 1081 -t 30 -b 127.0.0.1" - -# test if DNS works -run_test python tests/test.py --with-coverage -c tests/aes.json --url="https://clients1.google.com/generate_204" - -# test localhost is in the forbidden list by default -run_test python tests/test.py --with-coverage --should-fail --tcp-only --url="http://127.0.0.1/" -b "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388" -a "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388 -l 1081 -t 30 -b 127.0.0.1" - -# test localhost is available when forbidden list is empty -run_test python tests/test.py --with-coverage --tcp-only --url="http://127.0.0.1/" -b "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388 --forbidden-ip=" -a "-m aes-256-cfb -k testrc4 -s 127.0.0.1 -p 8388 -l 1081 -t 30 -b 127.0.0.1" - -if [ -f /proc/sys/net/ipv4/tcp_fastopen ] ; then - if [ 3 -eq `cat /proc/sys/net/ipv4/tcp_fastopen` ] ; then - # we have to run it twice: - # the first time there's no syn cookie - # the second time there is syn cookie - run_test python tests/test.py --with-coverage -c tests/fastopen.json - run_test python tests/test.py --with-coverage -c tests/fastopen.json - fi -fi - -run_test tests/test_large_file.sh -run_test tests/test_udp_src.sh -run_test tests/test_command.sh - -coverage combine && coverage report --include=shadowsocks/* -rm -rf htmlcov -rm -rf tmp -coverage html --include=shadowsocks/* - -coverage report --include=shadowsocks/* | tail -n1 | rev | cut -d' ' -f 1 | rev > /tmp/shadowsocks-coverage - -exit $result diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/libsodium/install.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/libsodium/install.sh deleted file mode 100755 index b0e35fa13..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/libsodium/install.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [ ! -d libsodium-1.0.1 ]; then - wget https://github.com/jedisct1/libsodium/releases/download/1.0.1/libsodium-1.0.1.tar.gz || exit 1 - tar xf libsodium-1.0.1.tar.gz || exit 1 -fi -pushd libsodium-1.0.1 -./configure && make -j2 && make install || exit 1 -sudo ldconfig -popd diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/nose_plugin.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/nose_plugin.py deleted file mode 100644 index 86b1a8653..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/nose_plugin.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import nose -from nose.plugins.base import Plugin - - -class ExtensionPlugin(Plugin): - - name = "ExtensionPlugin" - - def options(self, parser, env): - Plugin.options(self, parser, env) - - def configure(self, options, config): - Plugin.configure(self, options, config) - self.enabled = True - - def wantFile(self, file): - return file.endswith('.py') - - def wantDirectory(self, directory): - return True - - def wantModule(self, file): - return True - - -if __name__ == '__main__': - nose.main(addplugins=[ExtensionPlugin()]) diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/rc4-md5.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/rc4-md5.json deleted file mode 100644 index 26ba0dfa7..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/rc4-md5.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"aes_password", - "timeout":60, - "method":"rc4-md5", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20-ctr.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20-ctr.json deleted file mode 100644 index 5ca6c45f5..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20-ctr.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"salsa20_password", - "timeout":60, - "method":"salsa20-ctr", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20.json deleted file mode 100644 index 7e303800d..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/salsa20.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"salsa20_password", - "timeout":60, - "method":"salsa20", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-client-side.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-client-side.json deleted file mode 100644 index c822c98b9..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-client-side.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "server": "127.0.0.1", - "server_port": "8385", - "local_port": 1081, - "password": "foobar5", - "timeout": 60, - "method": "aes-256-cfb" -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-table.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-table.json deleted file mode 100644 index a2c0a8089..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd-table.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "server": "127.0.0.1", - "server_port": 8384, - "local_port": 1081, - "password": "foobar4", - "port_password": { - "8381": "foobar1", - "8382": "foobar2", - "8383": "foobar3", - "8384": "foobar4", - "8385": "foobar5", - "8386": "foobar6", - "8387": "foobar7", - "8388": "foobar8", - "8389": "foobar9" - }, - "timeout": 60, - "method": "table" -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd.json deleted file mode 100644 index b1407f0a1..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-passwd.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "server": "127.0.0.1", - "local_port": 1081, - "port_password": { - "8381": "foobar1", - "8382": "foobar2", - "8383": "foobar3", - "8384": "foobar4", - "8385": "foobar5", - "8386": "foobar6", - "8387": "foobar7", - "8388": "foobar8", - "8389": "foobar9" - }, - "timeout": 60, - "method": "aes-256-cfb" -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-ports.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-ports.json deleted file mode 100644 index 5bdbcab64..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/server-multi-ports.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "server": "127.0.0.1", - "server_port": [8384, 8345, 8346, 8347], - "local_port": 1081, - "password": "foobar4", - "timeout": 60, - "method": "aes-256-cfb" -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/setup_tc.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/setup_tc.sh deleted file mode 100755 index 1a5fa208b..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/setup_tc.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -DEV=lo -PORT=8388 -DELAY=100ms - -type tc 2> /dev/null && ( - tc qdisc add dev $DEV root handle 1: htb - tc class add dev $DEV parent 1: classid 1:1 htb rate 2mbps - tc class add dev $DEV parent 1:1 classid 1:6 htb rate 2mbps ceil 1mbps prio 0 - tc filter add dev $DEV parent 1:0 prio 0 protocol ip handle 6 fw flowid 1:6 - - tc filter add dev $DEV parent 1:0 protocol ip u32 match ip dport $PORT 0xffff flowid 1:6 - tc filter add dev $DEV parent 1:0 protocol ip u32 match ip sport $PORT 0xffff flowid 1:6 - - tc qdisc show dev lo -) - diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/install.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/install.sh deleted file mode 100755 index 8eff72df0..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/install.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -if [ ! -d dante-1.4.0 ]; then - wget http://www.inet.no/dante/files/dante-1.4.0.tar.gz || exit 1 - tar xf dante-1.4.0.tar.gz || exit 1 -fi -pushd dante-1.4.0 -./configure && make -j4 && make install || exit 1 -popd -cp tests/socksify/socks.conf /etc/ || exit 1 diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/socks.conf b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/socks.conf deleted file mode 100644 index 13db772fd..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/socksify/socks.conf +++ /dev/null @@ -1,5 +0,0 @@ -route { - from: 0.0.0.0/0 to: 0.0.0.0/0 via: 127.0.0.1 port = 1081 - proxyprotocol: socks_v5 - method: none -} \ No newline at end of file diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/table.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/table.json deleted file mode 100644 index cca6ac27e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/table.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"table_password", - "timeout":60, - "method":"table", - "local_address":"127.0.0.1", - "fast_open":false -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test.py deleted file mode 100755 index 408340134..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test.py +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright 2015 clowwindy -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import sys -import os -import signal -import select -import time -import argparse -from subprocess import Popen, PIPE - -python = ['python'] - -default_url = 'http://localhost/' - -parser = argparse.ArgumentParser(description='test Shadowsocks') -parser.add_argument('-c', '--client-conf', type=str, default=None) -parser.add_argument('-s', '--server-conf', type=str, default=None) -parser.add_argument('-a', '--client-args', type=str, default=None) -parser.add_argument('-b', '--server-args', type=str, default=None) -parser.add_argument('--with-coverage', action='store_true', default=None) -parser.add_argument('--should-fail', action='store_true', default=None) -parser.add_argument('--tcp-only', action='store_true', default=None) -parser.add_argument('--url', type=str, default=default_url) -parser.add_argument('--dns', type=str, default='8.8.8.8') - -config = parser.parse_args() - -if config.with_coverage: - python = ['coverage', 'run', '-p'] - -client_args = python + ['shadowsocks/local.py', '-v'] -server_args = python + ['shadowsocks/server.py', '-v'] - -if config.client_conf: - client_args.extend(['-c', config.client_conf]) - if config.server_conf: - server_args.extend(['-c', config.server_conf]) - else: - server_args.extend(['-c', config.client_conf]) -if config.client_args: - client_args.extend(config.client_args.split()) - if config.server_args: - server_args.extend(config.server_args.split()) - else: - server_args.extend(config.client_args.split()) -if config.url == default_url: - server_args.extend(['--forbidden-ip', '']) - -p1 = Popen(server_args, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True) -p2 = Popen(client_args, stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True) -p3 = None -p4 = None -p3_fin = False -p4_fin = False - -# 1 shadowsocks started -# 2 curl started -# 3 curl finished -# 4 dig started -# 5 dig finished -stage = 1 - -try: - local_ready = False - server_ready = False - fdset = [p1.stdout, p2.stdout, p1.stderr, p2.stderr] - while True: - r, w, e = select.select(fdset, [], fdset) - if e: - break - - for fd in r: - line = fd.readline() - if not line: - if stage == 2 and fd == p3.stdout: - stage = 3 - if stage == 4 and fd == p4.stdout: - stage = 5 - if bytes != str: - line = str(line, 'utf8') - sys.stderr.write(line) - if line.find('starting local') >= 0: - local_ready = True - if line.find('starting server') >= 0: - server_ready = True - - if stage == 1: - time.sleep(2) - - p3 = Popen(['curl', config.url, '-v', '-L', - '--socks5-hostname', '127.0.0.1:1081', - '-m', '15', '--connect-timeout', '10'], - stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True) - if p3 is not None: - fdset.append(p3.stdout) - fdset.append(p3.stderr) - stage = 2 - else: - sys.exit(1) - - if stage == 3 and p3 is not None: - fdset.remove(p3.stdout) - fdset.remove(p3.stderr) - r = p3.wait() - if config.should_fail: - if r == 0: - sys.exit(1) - else: - if r != 0: - sys.exit(1) - if config.tcp_only: - break - p4 = Popen(['socksify', 'dig', '@%s' % config.dns, - 'www.google.com'], - stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True) - if p4 is not None: - fdset.append(p4.stdout) - fdset.append(p4.stderr) - stage = 4 - else: - sys.exit(1) - - if stage == 5: - r = p4.wait() - if config.should_fail: - if r == 0: - sys.exit(1) - print('test passed (expecting failure)') - else: - if r != 0: - sys.exit(1) - print('test passed') - break -finally: - for p in [p1, p2]: - try: - os.kill(p.pid, signal.SIGINT) - os.waitpid(p.pid, 0) - except OSError: - pass diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_command.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_command.sh deleted file mode 100755 index a1a777b0d..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_command.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash - -. tests/assert.sh - -PYTHON="coverage run -p" -LOCAL="$PYTHON shadowsocks/local.py" -SERVER="$PYTHON shadowsocks/server.py" - -assert "$LOCAL --version 2>&1 | grep Shadowsocks | awk -F\" \" '{print \$1}'" "Shadowsocks" -assert "$SERVER --version 2>&1 | grep Shadowsocks | awk -F\" \" '{print \$1}'" "Shadowsocks" - - -assert "$LOCAL 2>&1 -m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -d start | grep WARNING | awk -F\"WARNING\" '{print \$2}'" " warning: server set to listen on 127.0.0.1:8388, are you sure?" -$LOCAL 2>/dev/null 1>/dev/null -m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -d stop - -assert "$LOCAL 2>&1 -m rc4-md5 -k testrc4 -s 0.0.0.0 -p 8388 -t10 -d start | grep WARNING | awk -F\"WARNING\" '{print \$2}'" " warning: your timeout 10 seems too short" -$LOCAL 2>/dev/null 1>/dev/null -m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -d stop - -assert "$LOCAL 2>&1 -m rc4-md5 -k testrc4 -s 0.0.0.0 -p 8388 -t1000 -d start | grep WARNING | awk -F\"WARNING\" '{print \$2}'" " warning: your timeout 1000 seems too long" -$LOCAL 2>/dev/null 1>/dev/null -m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -d stop - -assert "$LOCAL 2>&1 -m rc4 -k testrc4 -s 0.0.0.0 -p 8388 -d start | grep WARNING | awk -F\"WARNING\" '{print \$2}'" " warning: RC4 is not safe; please use a safer cipher, like AES-256-CFB" -$LOCAL 2>/dev/null 1>/dev/null -m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -d stop - -assert "$LOCAL 2>&1 -m rc4-md5 -k mypassword -s 0.0.0.0 -p 8388 -d start | grep ERROR | awk -F\"ERROR\" '{print \$2}'" " DON'T USE DEFAULT PASSWORD! Please change it in your config.json!" -$LOCAL 2>/dev/null 1>/dev/null -m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -d stop - - -assert "$SERVER 2>&1 --forbidden-ip 127.0.0.1/4a -m rc4-md5 -k 12345 -p 8388 -s 0.0.0.0 -d start | grep ERROR | awk -F\"ERROR\" '{print \$2}'" ": Not a valid CIDR notation: 127.0.0.1/4a" -$LOCAL 2>/dev/null 1>/dev/null -m rc4-md5 -k testrc4 -s 127.0.0.1 -p 8388 -d stop - -assert_end command diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_daemon.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_daemon.sh deleted file mode 100755 index 7a192bdb1..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_daemon.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -function run_test { - expected=$1 - shift - echo "running test: $command $@" - $command $@ - status=$? - if [ $status -ne $expected ]; then - echo "exit $status != $expected" - exit 1 - fi - echo "exit status $status == $expected" - echo OK - return -} - -for module in local server -do - -command="coverage run -p shadowsocks/$module.py" - -mkdir -p tmp - -run_test 0 -c tests/aes.json -d stop --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log - -run_test 0 -c tests/aes.json -d start --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log -run_test 0 -c tests/aes.json -d stop --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log - -run_test 0 -c tests/aes.json -d start --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log -run_test 1 -c tests/aes.json -d start --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log -run_test 0 -c tests/aes.json -d stop --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log - -run_test 0 -c tests/aes.json -d start --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log -run_test 0 -c tests/aes.json -d restart --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log -run_test 0 -c tests/aes.json -d stop --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log - -run_test 0 -c tests/aes.json -d restart --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log -run_test 0 -c tests/aes.json -d stop --pid-file tmp/shadowsocks.pid --log-file tmp/shadowsocks.log - -run_test 1 -c tests/aes.json -d start --pid-file tmp/not_exist/shadowsocks.pid --log-file tmp/shadowsocks.log - -done diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_large_file.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_large_file.sh deleted file mode 100755 index 7a61caff1..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_large_file.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -PYTHON="coverage run -p" -URL=http://127.0.0.1/file - -mkdir -p tmp - -$PYTHON shadowsocks/local.py -c tests/aes.json & -LOCAL=$! - -$PYTHON shadowsocks/server.py -c tests/aes.json --forbidden-ip "" & -SERVER=$! - -sleep 3 - -time curl -o tmp/expected $URL -time curl -o tmp/result --socks5-hostname 127.0.0.1:1081 $URL - -kill -s SIGINT $LOCAL -kill -s SIGINT $SERVER - -sleep 2 - -diff tmp/expected tmp/result || exit 1 diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.py deleted file mode 100644 index e8fa5057e..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/python - -import socket -import socks - - -SERVER_IP = '127.0.0.1' -SERVER_PORT = 1081 - - -if __name__ == '__main__': - # Test 1: same source port IPv4 - sock_out = socks.socksocket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - sock_out.set_proxy(socks.SOCKS5, SERVER_IP, SERVER_PORT) - sock_out.bind(('127.0.0.1', 9000)) - - sock_in1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - sock_in2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - - sock_in1.bind(('127.0.0.1', 9001)) - sock_in2.bind(('127.0.0.1', 9002)) - - sock_out.sendto(b'data', ('127.0.0.1', 9001)) - result1 = sock_in1.recvfrom(8) - - sock_out.sendto(b'data', ('127.0.0.1', 9002)) - result2 = sock_in2.recvfrom(8) - - sock_out.close() - sock_in1.close() - sock_in2.close() - - # make sure they're from the same source port - assert result1 == result2 - - # Test 2: same source port IPv6 - # try again from the same port but IPv6 - sock_out = socks.socksocket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - sock_out.set_proxy(socks.SOCKS5, SERVER_IP, SERVER_PORT) - sock_out.bind(('127.0.0.1', 9000)) - - sock_in1 = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, - socket.SOL_UDP) - sock_in2 = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, - socket.SOL_UDP) - - sock_in1.bind(('::1', 9001)) - sock_in2.bind(('::1', 9002)) - - sock_out.sendto(b'data', ('::1', 9001)) - result1 = sock_in1.recvfrom(8) - - sock_out.sendto(b'data', ('::1', 9002)) - result2 = sock_in2.recvfrom(8) - - sock_out.close() - sock_in1.close() - sock_in2.close() - - # make sure they're from the same source port - assert result1 == result2 - - # Test 3: different source ports IPv6 - sock_out = socks.socksocket(socket.AF_INET, socket.SOCK_DGRAM, - socket.SOL_UDP) - sock_out.set_proxy(socks.SOCKS5, SERVER_IP, SERVER_PORT) - sock_out.bind(('127.0.0.1', 9003)) - - sock_in1 = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM, - socket.SOL_UDP) - sock_in1.bind(('::1', 9001)) - sock_out.sendto(b'data', ('::1', 9001)) - result3 = sock_in1.recvfrom(8) - - # make sure they're from different source ports - assert result1 != result3 - - sock_out.close() - sock_in1.close() diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.sh b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.sh deleted file mode 100755 index 6a778abc1..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/test_udp_src.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -PYTHON="coverage run -p" - -mkdir -p tmp - -$PYTHON shadowsocks/local.py -c tests/aes.json -v & -LOCAL=$! - -$PYTHON shadowsocks/server.py -c tests/aes.json --forbidden-ip "" -v & -SERVER=$! - -sleep 3 - -python tests/test_udp_src.py -r=$? - -kill -s SIGINT $LOCAL -kill -s SIGINT $SERVER - -sleep 2 - -exit $r diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/workers.json b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/workers.json deleted file mode 100644 index 2015ff6c6..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/tests/workers.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "server":"127.0.0.1", - "server_port":8388, - "local_port":1081, - "password":"workers_password", - "timeout":60, - "method":"aes-256-cfb", - "local_address":"127.0.0.1", - "workers": 4 -} diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/README.md b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/README.md deleted file mode 100644 index f624309c7..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Useful Tools -=========== - -autoban.py ----------- - -Automatically ban IPs that try to brute force crack the server. - -See https://github.com/shadowsocks/shadowsocks/wiki/Ban-Brute-Force-Crackers diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/autoban.py b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/autoban.py deleted file mode 100755 index 1bbb65c9b..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/autoban.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- - -# Copyright (c) 2015 clowwindy -# -# 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 -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from __future__ import absolute_import, division, print_function, \ - with_statement - -import os -import sys -import argparse - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='See README') - parser.add_argument('-c', '--count', default=3, type=int, - help='with how many failure times it should be ' - 'considered as an attack') - config = parser.parse_args() - ips = {} - banned = set() - for line in sys.stdin: - if 'can not parse header when' in line: - ip = line.split()[-1].split(':')[0] - if ip not in ips: - ips[ip] = 1 - print(ip) - sys.stdout.flush() - else: - ips[ip] += 1 - if ip not in banned and ips[ip] >= config.count: - banned.add(ip) - cmd = 'iptables -A INPUT -s %s -j DROP' % ip - print(cmd, file=sys.stderr) - sys.stderr.flush() - os.system(cmd) diff --git a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/fail2ban/shadowsocks.conf b/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/fail2ban/shadowsocks.conf deleted file mode 100644 index 9b1c7ec7a..000000000 --- a/package/lean/luci-app-ssrserver-python/root/usr/share/ssr/utils/fail2ban/shadowsocks.conf +++ /dev/null @@ -1,5 +0,0 @@ -[Definition] - -_daemon = shadowsocks - -failregex = ^\s+ERROR\s+can not parse header when handling connection from :\d+$ diff --git a/package/lean/luci-app-syncdial/Makefile b/package/lean/luci-app-syncdial/Makefile deleted file mode 100755 index 70da33861..000000000 --- a/package/lean/luci-app-syncdial/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=Virtual WAN config generator -LUCI_DEPENDS:=+kmod-macvlan +luci-app-mwan3 -PKG_VERSION:=2.0 -PKG_RELEASE:=25 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature -#Makefile for syncdial diff --git a/package/lean/luci-app-syncdial/luasrc/controller/syncdial.lua b/package/lean/luci-app-syncdial/luasrc/controller/syncdial.lua deleted file mode 100644 index bb5f48d75..000000000 --- a/package/lean/luci-app-syncdial/luasrc/controller/syncdial.lua +++ /dev/null @@ -1,25 +0,0 @@ ---[[ -Sync Dial Luci configuration page. -Copyright (C) 2015 GuoGuo -]]-- - -module("luci.controller.syncdial", package.seeall) - -function index() - - if not nixio.fs.access("/etc/config/syncdial") then - return - end - - local page - page = entry({"admin", "network", "syncdial"}, cbi("syncdial"), _("虚拟WAN")) - page.dependent = true - - page = entry({"admin", "network", "macvlan_redial"}, call("redial"), nil) - page.leaf = true - -end - -function redial() - os.execute("killall -9 pppd") -end diff --git a/package/lean/luci-app-syncdial/luasrc/model/cbi/syncdial.lua b/package/lean/luci-app-syncdial/luasrc/model/cbi/syncdial.lua deleted file mode 100644 index 95e540255..000000000 --- a/package/lean/luci-app-syncdial/luasrc/model/cbi/syncdial.lua +++ /dev/null @@ -1,37 +0,0 @@ ---[[ -Sync Dial Luci configuration page. -Copyright (C) 2015 GuoGuo -]]-- - -local fs = require "nixio.fs" - -local cmd = "mwan3 status | grep -c \"is online and tracking is active\"" -local shellpipe = io.popen(cmd,"r") -local ifnum = shellpipe:read("*a") -shellpipe:close() - - -m = Map("syncdial", translate("创建虚拟WAN接口"), - translatef("使用macvlan驱动创建多个虚拟WAN口。
    当前在线接口数量:")..ifnum) - -s = m:section(TypedSection, "syncdial", translate(" ")) -s.anonymous = true - -switch = s:option(Flag, "enabled", "启用") -switch.rmempty = false - ---s:option(Flag, "force_redial", "强制全部重拨", "如果有接口掉线则强制所有接口下线重拨。").rmempty = false - -wannum = s:option(Value, "wannum", "虚拟WAN接口数量") -wannum.datatype = "range(0,20)" -wannum.optional = false - -s:option(Flag, "old_frame", "使用旧的macvlan创建方式").rmempty = false - -o = s:option(DummyValue, "_redial", "重新并发拨号") -o.template = "syncdial/redial_button" -o.width = "10%" - -return m - - diff --git a/package/lean/luci-app-syncdial/luasrc/view/syncdial/redial_button.htm b/package/lean/luci-app-syncdial/luasrc/view/syncdial/redial_button.htm deleted file mode 100644 index e8c4f0739..000000000 --- a/package/lean/luci-app-syncdial/luasrc/view/syncdial/redial_button.htm +++ /dev/null @@ -1,17 +0,0 @@ -<%+cbi/valueheader%> - - - - -<%+cbi/valuefooter%> diff --git a/package/lean/luci-app-syncdial/root/bin/genwancfg b/package/lean/luci-app-syncdial/root/bin/genwancfg deleted file mode 100755 index d24a0ea96..000000000 --- a/package/lean/luci-app-syncdial/root/bin/genwancfg +++ /dev/null @@ -1,143 +0,0 @@ -#!/bin/sh -#macvlan及PPPoE拨号接口配置批量自动生成脚本 -#Copyright (C) 2015 GuoGuo -. /lib/functions.sh - -#检测IP列表 -chk_ip_list="$(cat /tmp/resolv.conf.auto | grep nameserver | cut -d' ' -f2 | sort -u | tr '\n' ' ') 115.239.210.27 115.239.211.112 220.181.112.244 220.181.111.188 114.114.114.114 114.114.115.115" -fw_str="wan wan6" - -#添加MWAN负载均衡相关配置 -#$1:接口名称 -mwan_cfg_add() { - #gen mwan3_interface - uci set mwan3.${1}=interface - uci set mwan3.${1}.enabled=1 - uci set mwan3.${1}.count=1 - uci set mwan3.${1}.timeout=2 - uci set mwan3.${1}.interval=5 - uci set mwan3.${1}.down=3 - uci set mwan3.${1}.up=2 - for i in $chk_ip_list - do - uci add_list mwan3.${1}.track_ip="$i" - done - uci set mwan3.${1}.reliability=1 - #gen mwan3_member - uci set mwan3.${1}_m1_w1=member - uci set mwan3.${1}_m1_w1.interface=${1} - uci set mwan3.${1}_m1_w1.metric=1 - uci set mwan3.${1}_m1_w1.weight=1 - #gen mwan3_policy - uci add_list mwan3.balanced.use_member=${1}_m1_w1 -} - -#删除MWAN负载均衡相关配置 -#$1:接口名称 -mwan_cfg_del() { - uci del mwan3.${1} - uci del mwan3.${1}_m1_w1 - uci del_list mwan3.balanced.use_member=${1}_m1_w1 -} - -#添加macvlan设备 -#$1:设虚拟备名称 $2:原始设备名称 -macvlan_dev_add() { - uci set network.macvlandev_${1}=device - uci set network.macvlandev_${1}.name=${1} - uci set network.macvlandev_${1}.ifname=${2} - uci set network.macvlandev_${1}.type=macvlan -} - -#添加PPPoE接口 -#$1:接口名称 $2:设备名称 $3:账户 $4:密码 $5:网关跃点 -pppoe_if_add() { - #gen wan if - uci set network.${1}=interface - uci set network.${1}.ifname=${2} - uci set network.${1}.proto=pppoe - uci set network.${1}.username=${3} - uci set network.${1}.password=${4} - uci set network.${1}.metric=${5} - #gen firewall - fw_str="${fw_str} ${1}" -} - -apply_cfg() { - uci commit - /etc/init.d/network restart - killall pppconnectcheck - /etc/init.d/firewall restart - mwan3 restart -} - -general_config_load() { - config_load 'syncdial' - config_get_bool enabled 'config' 'enabled' - config_get_bool old_frame 'config' 'old_frame' - [ $enabled -eq 0 ] && { - echo "Disabled.Exit now." - apply_cfg - exit 1 - } - config_get wannum 'config' 'wannum' - - config_load 'network' - config_get pppoe_user 'wan' 'username' - config_get pppoe_password 'wan' 'password' - pppoe_ifname=$(uci get network.wan.ifname) -} - -check_remove_device() { - local devcfg=${1} - [ ${devcfg::11} == 'macvlandev_' ] && uci del network.${devcfg} -} - -check_remove_interface() { - local ifcfg=${1} - [ ${ifcfg::4} == 'vwan' ] && { - uci del network.${ifcfg} - mwan_cfg_del ${ifcfg} - } -} - -general_config_remove() { - config_load network - config_foreach check_remove_device 'device' - config_foreach check_remove_interface 'interface' - [ $(uci get network.wan.proto) == "none" ] && { - uci set network.wan.proto=pppoe - } - mwan_cfg_del 'wan' - uci set firewall.@zone[1].network="wan wan6" -} - - -general_config_remove -general_config_load - -uci set network.wan.metric=40 -[ $old_frame -eq 1 ] && { - uci set network.wan.proto=none - ifname=$(uci get network.wan.ifname) - for i in $(seq 1 $wannum) - do - ip link add link $ifname name macvlan$i type macvlan - ifconfig macvlan$i hw ether $(echo $(cat /sys/class/net/$ifname/address|awk -F ":" '{print $1":"$2":"$3":"$4":"$5":" }')$(echo "" | awk -F ":" '{printf("%X\n", 16+i);}' i=$i)) - ifconfig macvlan$i up - done -} -[ $old_frame -eq 0 ] && mwan_cfg_add wan - -for i in $(seq 1 $wannum) -do - [ $old_frame -eq 0 ] && macvlan_dev_add macvlan$i $pppoe_ifname - pppoe_if_add vwan$i macvlan$i $pppoe_user $pppoe_password $((40+$i)) - mwan_cfg_add vwan$i -done - -uci set firewall.@zone[1].network="$fw_str" - -apply_cfg - -return 0 diff --git a/package/lean/luci-app-syncdial/root/etc/config/syncdial b/package/lean/luci-app-syncdial/root/etc/config/syncdial deleted file mode 100644 index 9adeb2d70..000000000 --- a/package/lean/luci-app-syncdial/root/etc/config/syncdial +++ /dev/null @@ -1,7 +0,0 @@ -config syncdial 'config' - option 'enabled' '0' - option 'wannum' '2' - option 'dialchk' '0' - option 'dialnum' '1' - option 'dialwait' '25' - option 'old_frame' '1' diff --git a/package/lean/luci-app-syncdial/root/etc/hotplug.d/iface/01-mvifcreate b/package/lean/luci-app-syncdial/root/etc/hotplug.d/iface/01-mvifcreate deleted file mode 100644 index 426341fed..000000000 --- a/package/lean/luci-app-syncdial/root/etc/hotplug.d/iface/01-mvifcreate +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -[ "$(uci get syncdial.config.enabled)" = "1" ] && \ - [ "$(uci get syncdial.config.old_frame)" = "1" ] && \ - [ "$DEVICE" = "$(uci get network.wan.ifname)" ] && \ - [ "$ACTION" = "ifup" ] && { - ifname=$(uci get network.wan.ifname) - wannum=$(uci get syncdial.config.wannum) - for i in $(seq 1 $wannum) - do - [ -d /sys/class/net/macvlan$i ] || { - ip link add link $ifname name macvlan$i type macvlan - ifconfig macvlan$i hw ether $(echo $(cat /sys/class/net/$ifname/address|awk -F ":" '{print $1":"$2":"$3":"$4":"$5":" }')$(echo "" | awk -F ":" '{printf("%X\n", 16+i);}' i=$i)) - ifconfig macvlan$i up - } - done -} diff --git a/package/lean/luci-app-syncdial/root/etc/uci-defaults/luci-syncdial b/package/lean/luci-app-syncdial/root/etc/uci-defaults/luci-syncdial deleted file mode 100755 index 5394164cc..000000000 --- a/package/lean/luci-app-syncdial/root/etc/uci-defaults/luci-syncdial +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -touch /etc/config/syncdial - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@syncdial[-1] - add ucitrack syncdial - set ucitrack.@syncdial[-1].exec='/bin/genwancfg' - commit ucitrack -EOF - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-v2ray-pro/Makefile b/package/lean/luci-app-v2ray-pro/Makefile deleted file mode 100644 index 2b8563c4a..000000000 --- a/package/lean/luci-app-v2ray-pro/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for V2Ray -LUCI_DEPENDS:=+iptables-mod-tproxy +kmod-ipt-tproxy +ip +ipset-lists +pdnsd-alt +coreutils +coreutils-base64 +coreutils-nohup +dnsmasq-full +v2ray +ca-certificates +lua-cjson -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=11 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/package/lean/luci-app-v2ray-pro/luasrc/controller/v2raypro.lua b/package/lean/luci-app-v2ray-pro/luasrc/controller/v2raypro.lua deleted file mode 100644 index 7ee22abd5..000000000 --- a/package/lean/luci-app-v2ray-pro/luasrc/controller/v2raypro.lua +++ /dev/null @@ -1,17 +0,0 @@ -module("luci.controller.v2raypro", package.seeall) -function index() - if not nixio.fs.access("/etc/config/v2raypro") then - return - end - local page - page = entry({"admin", "services", "v2raypro"}, cbi("v2raypro"), _("V2Ray Pro")) - page.dependent = true - entry({"admin","services","v2raypro","status"},call("act_status")).leaf=true -end - -function act_status() - local e={} - e.running=luci.sys.call("pgrep v2ray >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/package/lean/luci-app-v2ray-pro/luasrc/model/cbi/v2raypro.lua b/package/lean/luci-app-v2ray-pro/luasrc/model/cbi/v2raypro.lua deleted file mode 100644 index 12f203a5f..000000000 --- a/package/lean/luci-app-v2ray-pro/luasrc/model/cbi/v2raypro.lua +++ /dev/null @@ -1,243 +0,0 @@ - -local fs = require "nixio.fs" -local NXFS = require "nixio.fs" -local WLFS = require "nixio.fs" -local SYS = require "luci.sys" -local ND = SYS.exec("cat /etc/gfwlist/china-banned | wc -l") -local conf = "/etc/v2ray/base-gfwlist.txt" -local watch = "/tmp/v2ray_watchdog.log" -local dog = "/tmp/v2raypro.log" -local http = luci.http -local ucursor = require "luci.model.uci".cursor() - -m = Map("v2raypro") -m.title = translate("V2Ray Transparent Proxy") -m.description = translate("A fast secure tunnel proxy that help you get through firewalls on your router") - -m:section(SimpleSection).template = "v2raypro/v2raypro_status" - -s = m:section(TypedSection, "v2raypro") -s.anonymous = true - --- --------------------------------------------------- - -s:tab("basic", translate("Base Setting")) - - -switch = s:taboption("basic",Flag, "enabled", translate("Enable")) -switch.rmempty = false - -proxy_mode = s:taboption("basic",ListValue, "proxy_mode", translate("Proxy Mode")) -proxy_mode:value("M", translate("Base on GFW-List Auto Proxy Mode(Recommend)")) -proxy_mode:value("S", translate("Bypassing China Manland IP Mode(Be caution when using P2P download!)")) -proxy_mode:value("G", translate("Global Mode")) -proxy_mode:value("V", translate("Overseas users watch China video website Mode")) - -cronup = s:taboption("basic", Flag, "cron_mode", translate("Auto Update GFW-List"), - translate(string.format("GFW-List Lines: %s Lines", ND))) -cronup.default = 0 -cronup.rmempty = false - -updatead = s:taboption("basic", Button, "updatead", translate("Manually force update GFW-List"), translate("Note: It needs to download and convert the rules. The background process may takes 60-120 seconds to run.
    After completed it would automatically refresh, please do not duplicate click!")) -updatead.inputtitle = translate("Manually force update GFW-List") -updatead.inputstyle = "apply" -updatead.write = function() - SYS.call("nohup sh /etc/v2ray/up-gfwlist.sh > /tmp/gfwupdate.log 2>&1 &") -end - -safe_dns_tcp = s:taboption("basic",Flag, "safe_dns_tcp", translate("DNS uses TCP"), - translate("Through the server transfer mode inquires DNS pollution prevention (Safer and recommended)")) -safe_dns_tcp.rmempty = false --- safe_dns_tcp:depends("more", "1") - --- timeout = s:taboption("basic",Value, "timeout", translate("Timeout")) --- timeout.datatype = "range(0,10000)" --- timeout.placeholder = "60" --- timeout.optional = false --- timeout:depends("more", "1") - --- safe_dns = s:taboption("basic",Value, "safe_dns", translate("Safe DNS"), --- translate("8.8.8.8 or 8.8.4.4 is recommended")) --- safe_dns.datatype = "ip4addr" --- safe_dns.optional = false --- safe_dns:depends("more", "1") - --- safe_dns_port = s:taboption("basic",Value, "safe_dns_port", translate("Safe DNS Port"), --- translate("Foreign DNS on UDP port 53 might be polluted")) --- safe_dns_port.datatype = "range(1,65535)" --- safe_dns_port.placeholder = "53" --- safe_dns_port.optional = false --- safe_dns_port:depends("more", "1") - ---fast_open =s:taboption("basic",Flag, "fast_open", translate("TCP Fast Open"), --- translate("Enable TCP fast open, only available on kernel > 3.7.0")) - -s:tab("main", translate("Server Setting")) - -server = s:taboption("main",Value, "address", translate("Server Address")) -server.datatype = "host" -server.rmempty = false - -server_port = s:taboption("main",Value, "port", translate("Server Port")) -server_port.datatype = "range(0,65535)" -server_port.rmempty = false - -id = s:taboption("main",Value, "id", translate("ID")) -id.password = true - -alterId = s:taboption("main",Value, "alterId", translate("Alter ID")) -alterId.datatype = "range(1,65535)" -alterId.rmempty = false - -security = s:taboption("main",ListValue, "security", translate("Security")) -security:value("none") -security:value("auto") -security:value("aes-128-cfb") -security:value("aes-128-gcm") -security:value("chacha20-poly1305") - -network_type = s:taboption("main",ListValue, "network_type", translate("Network Type")) -network_type:value("tcp") -network_type:value("kcp") -network_type:value("ws") - --- tcp settings -tcp_obfs = s:taboption("main",ListValue, "tcp_obfs", translate("TCP Obfs")) -tcp_obfs:value("none") -tcp_obfs:value("http") -tcp_obfs:depends("network_type", "tcp") - -tcp_path = s:taboption("main",DynamicList, "tcp_path", translate("TCP Obfs Path")) -tcp_path:depends("tcp_obfs", "http") - -tcp_host = s:taboption("main",DynamicList, "tcp_host", translate("TCP Obfs Header")) -tcp_host:depends("tcp_obfs", "http") -tcp_host.datatype = "host" - --- kcp settings -kcp_obfs = s:taboption("main",ListValue, "kcp_obfs", translate("KCP Obfs")) -kcp_obfs:value("none") -kcp_obfs:value("srtp") -kcp_obfs:value("utp") -kcp_obfs:value("wechat-video") -kcp_obfs:value("dtls") -kcp_obfs:value("wireguard") -kcp_obfs:depends("network_type", "kcp") - -kcp_mtu = s:taboption("main",Value, "kcp_mtu", translate("KCP MTU")) -kcp_mtu.datatype = "range(576,1460)" -kcp_mtu:depends("network_type", "kcp") - -kcp_tti = s:taboption("main",Value, "kcp_tti", translate("KCP TTI")) -kcp_tti.datatype = "range(10,100)" -kcp_tti:depends("network_type", "kcp") - -kcp_uplink = s:taboption("main",Value, "kcp_uplink", translate("KCP uplinkCapacity")) -kcp_uplink.datatype = "range(0,1000)" -kcp_uplink:depends("network_type", "kcp") - -kcp_downlink = s:taboption("main",Value, "kcp_downlink", translate("KCP downlinkCapacity")) -kcp_downlink.datatype = "range(0,1000)" -kcp_downlink:depends("network_type", "kcp") - -kcp_readbuf = s:taboption("main",Value, "kcp_readbuf", translate("KCP readBufferSize")) -kcp_readbuf.datatype = "range(0,100)" -kcp_readbuf:depends("network_type", "kcp") - -kcp_writebuf = s:taboption("main",Value, "kcp_writebuf", translate("KCP writeBufferSize")) -kcp_writebuf.datatype = "range(0,100)" -kcp_writebuf:depends("network_type", "kcp") - -kcp_congestion = s:taboption("main",Flag, "kcp_congestion", translate("KCP Congestion")) -kcp_congestion:depends("network_type", "kcp") - --- websocket settings -ws_path = s:taboption("main",Value, "ws_path", translate("WebSocket Path")) -ws_path:depends("network_type", "ws") - -ws_headers = s:taboption("main",Value, "ws_headers", translate("WebSocket Header")) -ws_headers:depends("network_type", "ws") -ws_headers.datatype = "host" - --- others -tls = s:taboption("main",Flag, "tls", translate("TLS")) -tls.rmempty = false - -mux = s:taboption("main",Flag, "mux", translate("Mux")) -mux.rmempty = false - -s:tab("list", translate("User-defined GFW-List")) -gfwlist = s:taboption("list", TextValue, "conf") -gfwlist.description = translate("
    (!)Note: When the domain name is entered and will automatically merge with the online GFW-List. Please manually update the GFW-List list after applying.") -gfwlist.rows = 13 -gfwlist.wrap = "off" -gfwlist.cfgvalue = function(self, section) - return NXFS.readfile(conf) or "" -end -gfwlist.write = function(self, section, value) - NXFS.writefile(conf, value:gsub("\r\n", "\n")) -end - -local addipconf = "/etc/v2ray/addinip.txt" - -s:tab("addip", translate("GFW-List Add-in IP")) -gfwaddin = s:taboption("addip", TextValue, "addipconf") -gfwaddin.description = translate("
    (!)Note: IP add-in to GFW-List. Such as Telegram Messenger") -gfwaddin.rows = 13 -gfwaddin.wrap = "off" -gfwaddin.cfgvalue = function(self, section) - return NXFS.readfile(addipconf) or "" -end -gfwaddin.write = function(self, section, value) - NXFS.writefile(addipconf, value:gsub("\r\n", "\n")) -end - -s:tab("status", translate("Status and Tools")) -s:taboption("status", DummyValue,"opennewwindow" , - translate("")) - - -s:tab("watchdog", translate("Watchdog Log")) -log = s:taboption("watchdog", TextValue, "sylogtext") -log.template = "cbi/tvalue" -log.rows = 13 -log.wrap = "off" -log.readonly="readonly" - -function log.cfgvalue(self, section) - SYS.exec("[ -f /tmp/v2ray_watchdog.log ] && sed '1!G;h;$!d' /tmp/v2ray_watchdog.log > /tmp/v2raypro.log") - return nixio.fs.readfile(dog) -end - -function log.write(self, section, value) - value = value:gsub("\r\n?", "\n") - nixio.fs.writefile(dog, value) -end - - - -t=m:section(TypedSection,"acl_rule",translate("Client Proxy Mode Settings"), -translate("Proxy mode settings can be set to specific LAN clients ( No Proxy, Global Proxy, Game Mode) . Does not need to be set by default.")) -t.template="cbi/tblsection" -t.sortable=true -t.anonymous=true -t.addremove=true -e=t:option(Value,"ipaddr",translate("IP Address")) -e.width="40%" -e.datatype="ip4addr" -e.placeholder="0.0.0.0/0" -luci.ip.neighbors({ family = 4 }, function(entry) - if entry.reachable then - e:value(entry.dest:string()) - end -end) - -e=t:option(ListValue,"filter_mode",translate("Proxy Mode")) -e.width="40%" -e.default="disable" -e.rmempty=false -e:value("disable",translate("No Proxy")) -e:value("global",translate("Global Proxy")) -e:value("game",translate("Game Mode")) - -return m diff --git a/package/lean/luci-app-v2ray-pro/luasrc/view/cbi/other_upload2.htm b/package/lean/luci-app-v2ray-pro/luasrc/view/cbi/other_upload2.htm deleted file mode 100644 index 322616d71..000000000 --- a/package/lean/luci-app-v2ray-pro/luasrc/view/cbi/other_upload2.htm +++ /dev/null @@ -1,6 +0,0 @@ -<%+cbi/valueheader%> - - - - -<%+cbi/valuefooter%> diff --git a/package/lean/luci-app-v2ray-pro/luasrc/view/v2raypro/v2raypro_status.htm b/package/lean/luci-app-v2ray-pro/luasrc/view/v2raypro/v2raypro_status.htm deleted file mode 100644 index 003fa120f..000000000 --- a/package/lean/luci-app-v2ray-pro/luasrc/view/v2raypro/v2raypro_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    diff --git a/package/lean/luci-app-v2ray-pro/po/zh-cn/v2raypro.po b/package/lean/luci-app-v2ray-pro/po/zh-cn/v2raypro.po deleted file mode 100644 index ee3ffb44f..000000000 --- a/package/lean/luci-app-v2ray-pro/po/zh-cn/v2raypro.po +++ /dev/null @@ -1,116 +0,0 @@ -msgid "V2Ray is Running" -msgstr "V2Ray 正在运行" - -msgid "V2Ray is Not Running" -msgstr "V2Ray 没有运行" - -msgid "V2Ray Transparent Proxy" -msgstr "V2Ray 透明代理" - -msgid "A fast secure tunnel proxy that help you get through firewalls on your router" -msgstr "一个快速安全隧道代理,帮助您穿过防火墙" - -msgid "Base Setting" -msgstr "基本设置" - -msgid "Proxy Mode" -msgstr "代理模式" - -msgid "Base on GFW-List Auto Proxy Mode(Recommend)" -msgstr "基于GFW-List自动代理(推荐)" - -msgid "Bypassing China Manland IP Mode(Be caution when using P2P download!)" -msgstr "绕过中国大陆IP地址(P2P 下载慎用!)" - -msgid "Global Mode" -msgstr "全局代理" - -msgid "Overseas users watch China video website Mode" -msgstr "海外用户回国看视频" - -msgid "Auto Update GFW-List" -msgstr "自动更新GFW-List" - -msgid "Manually force update GFW-List" -msgstr "手动强制更新GFW-List" - -msgid "DNS uses TCP" -msgstr "启用DNS TCP防污染" - -msgid "Through the server transfer mode inquires DNS pollution prevention (Safer and recommended)" -msgstr "往国外的DNS请求将通过服务器中转发出(更安全,推荐)" - -msgid "Server Setting" -msgstr "服务器设置" - -msgid "Server Address" -msgstr "服务器地址(支持域名)" - -msgid "Server Port" -msgstr "服务器端口" - -msgid "ID" -msgstr "ID" - -msgid "Alter ID" -msgstr "额外ID" - -msgid "Security" -msgstr "加密方式" - -msgid "Network Type" -msgstr "传输协议" - -msgid "User-defined GFW-List" -msgstr "用户自定义GFW-List" - -msgid "
    (!)Note: When the domain name is entered and will automatically merge with the online GFW-List. Please manually update the GFW-List list after applying." -msgstr "用户自定义GFW-List将会和自动更新的自动合并。如果要新加入域名马上生效,请应用后点击手动强制更新GFW-List" - -msgid "Status and Tools" -msgstr "状态与工具" - -msgid "Watchdog Log" -msgstr "守护日志" - -msgid "Client Proxy Mode Settings" -msgstr "客户端代理模式设置" - -msgid "Proxy mode settings can be set to specific LAN clients ( No Proxy, Global Proxy, Game Mode) . Does not need to be set by default." -msgstr "可以为局域网客户端分别设置不同的代理模式 ( 不代理, 全局代理, 游戏模式).默认无需设置" - -msgid "GFW-List Add-in IP" -msgstr "GFW-List附加IP" - -msgid "
    (!)Note: IP add-in to GFW-List. Such as Telegram Messenger" -msgstr "
    (!)注意:有些应用使用IP而不是域名,例如 Telegram Messenger ,您需要把IP地址加入这里" - -msgid "No Proxy" -msgstr "不代理" - -msgid "Global Proxy" -msgstr "全局代理" - -msgid "Game Mode" -msgstr "游戏模式" - -msgid "Config File Type" -msgstr "配置文件类型" - -msgid "Use Config File" -msgstr "使用配置文件" - -msgid "Warning: Can't find v2ctl. You can only choose Protobuf." -msgstr "注意:没有找到 v2ctl 可执行程序。你只能选择使用 Protobuf." - -msgid "If you choose to upload a new file, please do not modify and this configuration will be overwritten automatically." -msgstr "如果你在下方选择了上传新的配置文件,那你不需要改动这个框框里的内容。上传完成后将会自动填充。" - -msgid "Create upload file error." -msgstr "上传文件失败。" - -msgid "File saved to" -msgstr "文件已保存到" - -msgid "No specify upload file." -msgstr "未指定上传文件" diff --git a/package/lean/luci-app-v2ray-pro/root/etc/config/v2raypro b/package/lean/luci-app-v2ray-pro/root/etc/config/v2raypro deleted file mode 100644 index 18dff0474..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/config/v2raypro +++ /dev/null @@ -1,18 +0,0 @@ - -config v2raypro 'v2raypro' - option gfwlist 'china-banned' - option proxy_mode 'M' - option safe_dns_tcp '1' - option cron_mode '1' - option address '4.4.4.4' - option port '443' - option id '00755892-0921-4433-bd92-04242abd92af' - option alterId '64' - option security 'aes-128-gcm' - option network_type 'ws' - option tls '1' - option mux '1' - option ws_path '/v2ray' - option ws_headers 'www.baidu.com' - option enabled '0' - diff --git a/package/lean/luci-app-v2ray-pro/root/etc/init.d/v2raypro b/package/lean/luci-app-v2ray-pro/root/etc/init.d/v2raypro deleted file mode 100755 index 16362ce83..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/init.d/v2raypro +++ /dev/null @@ -1,378 +0,0 @@ -#!/bin/sh /etc/rc.common -# -# - -START=99 -STOP=10 - -EXTRA_COMMANDS="reload_rule" - -V2RAY_REDIR_PORT=7070 -V2RAY_REDIR_PIDFILE=/var/run/v2ray-redir-go.pid -PDNSD_LOCAL_PORT=7453 -V2RAYCONF=/tmp/config.json -CRON_FILE=/etc/crontabs/root -V2_CONF_GENERATE_LUA=/etc/v2ray/gen_config.lua -CONFIG=v2raypro -KEEP_GFWLIST=Y -vt_np_ipset="china" - -get_config() -{ - config_get_bool vt_enabled $1 enabled 0 - config_get vt_server_addr $1 address - config_get vt_server_port $1 server_port - config_get vt_password $1 password - config_get vt_method $1 method - config_get vt_protocol $1 protocol - config_get vt_protoparam $1 protoparam - config_get vt_obfs $1 obfs - config_get obfs_param $1 obfs_param - config_get vt_proxy_mode $1 proxy_mode - config_get vt_timeout $1 timeout - config_get vt_safe_dns $1 safe_dns - config_get vt_timeout $1 timeout - config_get vt_safe_dns $1 safe_dns - config_get vt_safe_dns_port $1 safe_dns_port - config_get vt_safe_dns_tcp $1 safe_dns_tcp - config_get cron_mode $1 cron_mode 1 -} - - - - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - # Get LAN settings as default parameters - [ -f /lib/functions/network.sh ] && . /lib/functions/network.sh - network_get_subnet covered_subnets lan - network_get_ipaddr local_addresses lan - -# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - -__gfwlist_by_mode() -{ - case "$1" in - V) echo unblock-youku;; - *) echo china-banned;; - esac -} - -start() -{ - config_load v2raypro - config_foreach get_config v2raypro - - [ -f /etc/init.d/pdnsd ] && /etc/init.d/pdnsd disable 2>/dev/null - - if [ "$vt_enabled" = 0 ]; then - echo "WARNING: v2ray is disabled." - exit 0 - fi - - local vt_gfwlist=`__gfwlist_by_mode $vt_proxy_mode` - [ -z "$vt_proxy_mode" ] && vt_proxy_mode=M - [ -z "$vt_method" ] && vt_method=table - [ -z "$vt_timeout" ] && vt_timeout=60 - case "$vt_proxy_mode" in - M|S|G) - [ -z "$vt_safe_dns" ] && vt_safe_dns="8.8.8.8" - [ -z "$vt_safe_dns_tcp" ] && vt_safe_dns_tcp=1 - ;; - esac - [ -z "$vt_safe_dns_port" ] && vt_safe_dns_port=53 - - # ----------------------------------------------------------------- - ###### v2ray ###### - /usr/bin/lua $V2_CONF_GENERATE_LUA $CONFIG $V2RAYCONF - /usr/bin/v2ray/v2ray -config=$V2RAYCONF & - - echo "V2Ray started" - - - # IPv4 firewall rules - add_rule - - # ----------------------------------------------------------------- - mkdir -p /var/etc/dnsmasq-go.d - ###### Anti-pollution configuration ###### - if [ -n "$vt_safe_dns" ]; then - if [ "$vt_safe_dns_tcp" = 1 ]; then - start_pdnsd "$vt_safe_dns" - awk -vs="127.0.0.1#$PDNSD_LOCAL_PORT" '!/^$/&&!/^#/{printf("server=/%s/%s\n",$0,s)}' \ - /etc/gfwlist/$vt_gfwlist > /var/etc/dnsmasq-go.d/01-pollution.conf - else - awk -vs="$vt_safe_dns#$vt_safe_dns_port" '!/^$/&&!/^#/{printf("server=/%s/%s\n",$0,s)}' \ - /etc/gfwlist/$vt_gfwlist > /var/etc/dnsmasq-go.d/01-pollution.conf - fi - else - echo "WARNING: Not using secure DNS, DNS resolution might be polluted if you are in China." - fi - - ###### dnsmasq-to-ipset configuration ###### - case "$vt_proxy_mode" in - M|V) - awk '!/^$/&&!/^#/{printf("ipset=/%s/'"$vt_gfwlist"'\n",$0)}' \ - /etc/gfwlist/$vt_gfwlist > /var/etc/dnsmasq-go.d/02-ipset.conf - ;; - esac - - # ----------------------------------------------------------------- - ###### Restart main 'dnsmasq' service if needed ###### - if ls /var/etc/dnsmasq-go.d/* >/dev/null 2>&1; then - mkdir -p /tmp/dnsmasq.d - cat > /tmp/dnsmasq.d/dnsmasq-go.conf </dev/null - del_cron -} - - -reload_rule() -{ - config_load v2raypro - config_foreach get_config v2raypro - - local vt_gfwlist=`__gfwlist_by_mode $vt_proxy_mode` - - KEEP_GFWLIST=Y - del_rule - add_rule - if [ "$vt_safe_dns_tcp" = 1 ]; then - stop_pdnsd - start_pdnsd - fi -} - -restart() -{ - KEEP_GFWLIST=Y - stop - start -} - - -# $1: upstream DNS server -start_pdnsd() -{ - local safe_dns="$1" - - local tcp_dns_list="208.67.222.222, 208.67.220.220" - [ -n "$safe_dns" ] && tcp_dns_list="$safe_dns,$tcp_dns_list" - - #killall -9 pdnsd 2>/dev/null && sleep 1 - kill -9 $(cat /var/run/pdnsd.pid) >/dev/null 2>&1 - - mkdir -p /var/etc /var/pdnsd - if ! test -f "/var/pdnsd/pdnsd.cache"; then - dd if=/dev/zero of="/var/pdnsd/pdnsd.cache" bs=1 count=4 2> /dev/null - chown -R nobody.nogroup /var/pdnsd - fi - - cat > /var/etc/pdnsd.conf </dev/null; then - while iptables -t nat -D OUTPUT -p tcp --dport 53 -j pdnsd_output 2>/dev/null; do :; done - iptables -t nat -X pdnsd_output - fi - killall -9 pdnsd 2>/dev/null - rm -rf /var/pdnsd - rm -f /var/etc/pdnsd.conf -} - -add_cron() -{ - sed -i '/up-gfwlist.sh/d' $CRON_FILE - sed -i '/v2ray_watchdog.log/d' $CRON_FILE - if [ $cron_mode -eq 1 ]; then - echo '0 5 * * * /etc/v2ray/up-gfwlist.sh > /tmp/gfwupdate.log 2>&1' >> $CRON_FILE - fi - echo '0 */1 * * * /etc/v2ray/v2ray-watchdog >> /tmp/v2ray_watchdog.log 2>&1' >> $CRON_FILE - echo '0 1 * * 0 echo "" > /tmp/v2ray_watchdog.log' >> $CRON_FILE - crontab $CRON_FILE -} - -del_cron() -{ - sed -i '/up-gfwlist.sh/d' $CRON_FILE - sed -i '/v2ray_watchdog.log/d' $CRON_FILE - /etc/init.d/cron restart -} - - - -uci_get_by_name() { - local ret=$(uci get $CONFIG.$1.$2 2>/dev/null) - echo ${ret:=$3} -} - -uci_get_by_type() { - local index=0 - if [ -n $4 ]; then - index=$4 - fi - local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) - echo ${ret:=$3} -} - -add_rule() -{ - iptables -t nat -N v2ray_pre - iptables -t nat -F v2ray_pre - iptables -t nat -A v2ray_pre -m set --match-set local dst -j RETURN || { - iptables -t nat -A v2ray_pre -d 10.0.0.0/8 -j RETURN - iptables -t nat -A v2ray_pre -d 127.0.0.0/8 -j RETURN - iptables -t nat -A v2ray_pre -d 172.16.0.0/12 -j RETURN - iptables -t nat -A v2ray_pre -d 192.168.0.0/16 -j RETURN - iptables -t nat -A v2ray_pre -d 127.0.0.0/8 -j RETURN - iptables -t nat -A v2ray_pre -d 224.0.0.0/3 -j RETURN - } - iptables -t nat -A v2ray_pre -d $vt_server_addr -j RETURN - - iptables -N gameboost -t mangle - ipset -! create gameuser hash:ip maxelem 65536 2>/dev/null - ip rule add fwmark 0x01/0x01 table 100 - ip route add local 0.0.0.0/0 dev lo table 100 - iptables -t mangle -A gameboost -p udp -m set --match-set local dst -j RETURN - iptables -t mangle -A gameboost -p udp -m set --match-set china dst -j RETURN - iptables -t mangle -A gameboost -p udp --dport 53 -j RETURN - iptables -t mangle -A gameboost -p udp -j TPROXY --on-port 7070 --tproxy-mark 0x01/0x01 - iptables -t mangle -A PREROUTING -m set --match-set gameuser src -j gameboost - - for i in $(seq 0 100) - do - local ip=$(uci_get_by_type acl_rule ipaddr '' $i) - local mode=$(uci_get_by_type acl_rule filter_mode '' $i) - case "$mode" in - disable) - iptables -t nat -A v2ray_pre -s $ip -j RETURN - ;; - global) - iptables -t nat -A v2ray_pre -s $ip -p tcp -j REDIRECT --to $V2RAY_REDIR_PORT - iptables -t nat -A v2ray_pre -s $ip -j RETURN - ;; - game) - iptables -t nat -A v2ray_pre -p tcp -s $ip -m set ! --match-set china dst -j REDIRECT --to $V2RAY_REDIR_PORT - ipset -! add gameuser $ip - ;; - esac - done - - case "$vt_proxy_mode" in - G) : ;; - S) - iptables -t nat -A v2ray_pre -m set --match-set $vt_np_ipset dst -j RETURN - iptables -t nat -I OUTPUT -p tcp -m multiport --dports 80,443 -m set ! --match-set $vt_np_ipset dst -j REDIRECT --to $V2RAY_REDIR_PORT - ;; - M) - ipset -! create $vt_gfwlist hash:ip maxelem 65536 2>/dev/null - awk '!/^$/&&!/^#/{printf("add vt_gfwlist %s'" "'\n",$0)}' /etc/v2ray/addinip.txt > /tmp/addinip.ipset - sed -i "s/vt_gfwlist/$vt_gfwlist/g" /tmp/addinip.ipset - ipset -! restore < /tmp/addinip.ipset - iptables -t nat -A v2ray_pre -m set ! --match-set $vt_gfwlist dst -j RETURN - iptables -t nat -A v2ray_pre -m set --match-set $vt_np_ipset dst -j RETURN - iptables -t nat -I OUTPUT -p tcp -m multiport --dports 80,443 -m set --match-set $vt_gfwlist dst -j REDIRECT --to $V2RAY_REDIR_PORT - ;; - V) - vt_np_ipset="" - ipset -! create $vt_gfwlist hash:ip maxelem 65536 2>/dev/null - iptables -t nat -A v2ray_pre -m set ! --match-set $vt_gfwlist dst -j RETURN - ;; - esac - local subnet - for subnet in $covered_subnets; do - iptables -t nat -A v2ray_pre -s $subnet -p tcp -j REDIRECT --to $V2RAY_REDIR_PORT - done - iptables -t nat -I PREROUTING -p tcp -j v2ray_pre -} - -del_rule() -{ - if iptables -t nat -F v2ray_pre 2>/dev/null; then - while iptables -t nat -D PREROUTING -p tcp -j v2ray_pre 2>/dev/null; do :; done - iptables -t nat -X v2ray_pre 2>/dev/null - fi - - iptables -t nat -D OUTPUT -p tcp -m multiport --dports 80,443 -m set --match-set china-banned dst -j REDIRECT --to $V2RAY_REDIR_PORT 2>/dev/null - iptables -t nat -D OUTPUT -p tcp -m multiport --dports 80,443 -m set ! --match-set $vt_np_ipset dst -j REDIRECT --to $V2RAY_REDIR_PORT 2>/dev/null - - /usr/bin/ip rule del fwmark 0x01/0x01 table 100 - /usr/bin/ip route del local 0.0.0.0/0 dev lo table 100 - if iptables -t mangle -F gameboost 2>/dev/null; then - while iptables -t mangle -D PREROUTING -m set --match-set gameuser src -j gameboost 2>/dev/null; do :; done - iptables -t mangle -X gameboost 2>/dev/null - fi - - ipset destroy gameuser 2>/dev/null - - - # ----------------------------------------------------------------- - [ "$KEEP_GFWLIST" = Y ] || ipset destroy "$vt_gfwlist" 2>/dev/null -} - diff --git a/package/lean/luci-app-v2ray-pro/root/etc/uci-defaults/v2raypro b/package/lean/luci-app-v2ray-pro/root/etc/uci-defaults/v2raypro deleted file mode 100755 index fe6731cce..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/uci-defaults/v2raypro +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@v2raypro[-1] - add ucitrack v2raypro - set ucitrack.@v2raypro[-1].init=v2raypro - commit ucitrack - delete firewall.v2raypro - set firewall.v2raypro=include - set firewall.v2raypro.type=script - set firewall.v2raypro.path=/etc/v2raypro.include - set firewall.v2raypro.reload=1 - commit firewall -EOF - -/etc/init.d/v2raypro stop -/etc/init.d/v2raypro enable - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/addinip.txt b/package/lean/luci-app-v2ray-pro/root/etc/v2ray/addinip.txt deleted file mode 100755 index d9caab65b..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/addinip.txt +++ /dev/null @@ -1,7 +0,0 @@ -149.154.160.0/20 -149.154.164.0/22 -149.154.168.0/21 -67.198.55.0/24 -91.108.4.0/22 -91.108.56.0/22 -109.239.140.0/24 \ No newline at end of file diff --git a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/base-gfwlist.txt b/package/lean/luci-app-v2ray-pro/root/etc/v2ray/base-gfwlist.txt deleted file mode 100755 index 607a90247..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/base-gfwlist.txt +++ /dev/null @@ -1,2940 +0,0 @@ -0rz.tw -0to255.com -10musume.com -123rf.com -12bet.com -12vpn.com -141hongkong.com -173ng.com -1984bbs.com -1984bbs.org -1-apple.com.tw -1bao.org -1eew.com -1pondo.tv -2000fun.com -2008xianzhang.info -21andy.com -247realmedia.com -24smile.org -2-hand.info -2mdn.net -2shared.com -301works.org -315lz.com -32red.com -365singles.com.ar -36rain.com -4bluestones.biz -4chan.org -4pppc.gov.tw -4shared.com -4sq.com -51.ca -5i01.com -5maodang.com -64tianwang.com -64wiki.com -666kb.com -6park.com -7capture.com -881903.com -888.com -89-64.org -9001700.com -91porn.com -921.gov.tw -92ccav.com -9bis.com -9bis.net -9city.me -a5.com.ru -abc.pp.ru -abitno.linpie.com -ablwang.com -aboluowang.com -aboutgfw.com -acgkj.com -ac.jiruan.net -ac.playstation.net -actimes.com.au -aculo.us -ad1.nownews.com -addictedtocoffee.de -ads.backchina.com -adultfriendfinder.com -adultkeep.net -advanscene.com -advertfan.com -aec.gov.tw -aenhancers.com -af.mil -aftygh.gov.tw -aide.gov.tw -aiph.net -aisex.com -ait.org.tw -aiweiweiblog.com -aiweiwei.com -ajaxplorer.info -akamaihd.net -akiba-online.com -alabout.com -alasbarricadas.org -alexlur.org -aliengu.com -alkasir.com -allaboutalpha.com -allgirlsallowed.org -alliance.org.hk -allinfa.com -allinfo.com -allmovie.com -allonlinux.free.fr -all-that-is-interesting.com -al-qimmah.net -alternate-tools.com -altrec.com -alvinalexander.com -alwaysdata.com -alwaysdata.net -am730.com.hk -amazonaws.com -ameblo.jp -americangreencard.com -amiblockedornot.com -amnesty.org -amnestyusa.org -amoiist.com -amzs.me -analyze-v.com -anchorfree.com -andfaraway.net -android.com -angularjs.org -animecrazy.net -anobii.com -anontext.com -anonymizer.com -a-normal-day.com -answering-islam.org -anthonycalzadilla.com -anti.anti.cnn.googlepages.com -antidrm.hpg.ig.com.br -antiwave.net -aobo.com.au -aolchannels.aol.com -aomiwang.com -apetube.com -apiary.io -apidocs.linksalpha.com -apigee.com -api.linksalpha.com -api.proxlet.com -api.supertweet.net -app.heywire.com -app.hkatvnews.com -appledaily.com -appledaily.com.tw -apps.hloli.net -appspot.com -archive.is -archive.org -arctosia.com -areca-backup.org -army.mil -arte.gov.tw -art-or-porn.com -artsy.net -asahichinese.com -asdfg.jp -asiafriendfinder.com -asiaharvest.org -asianews.it -asianwomensfilm.de -askstudent.com -askynz.net -assembla.com -astonmartinnews.com -atchinese.com -atc.org.au -atgfw.org -atj.org.tw -atlaspost.com -atnext.com -autoproxy.org -avaaz.org -avdb.in -avidemux.org -avoision.com -awardwinningfjords.com -axureformac.com -babynet.com.hk -backchina.com -backpackers.com.tw -badassjs.com -badoo.com -baidu.jp -baixing.me -bannedbook.org -barnabu.co.uk -basetimesheightdividedby2.com -bayvoice.net -bbcchinese.com -bbc.com -bbc.co.uk -bbci.co.uk -bbcimg.co.uk -bbc.in -bbg.gov -bbs2.newsgroup.la -bbs.ecstart.com -bbsfeed.com -bbs.kimy.com.tw -bbsland.com -bbs.morbell.com -bbs.mychat.to -bbs.newsgroup.la -bbs.ozchinese.com -bbs.qmzdd.com -bbs.sina.com -bbs.skykiwi.com -bbs.tuitui.info -bb.ttv.com.tw -bcc.com.tw -bcchinese.net -bdhr.gov.tw -bd.zhe.la -bebo.com -beeg.com -beijing1989.com -beijingspring.com -benjaminste.in -berlintwitterwall.com -bestforchina.org -bestvpnservice.com -bet365.com -beta.iset.com.tw -beta.usejump.com -betfair.com -bettween.com -betvictor.com -bewww.net -beyondfirewall.com -bfnn.org -biantailajiao.com -biantailajiao.in -bigfools.com -bignews.org -bigsound.org -bill2-software.com -billywr.com -bill.zhong.pp.ru -bipic.net -bitcointalk.org -bit.ly -bitly.com -bitshare.com -bjzc.org -blinkx.com -blinw.com -blip.tv -blockcn.com -blog.birdhouseapp.com -blog.bitly.com -blogblog.com -blog.boxcar.io -blogcatalog.com -blog.davidziegler.net -blog.dayoneapp.com -blog.de -blog.dribbble.com -blog.exblog.co.jp -blog.expofutures.com -blog.fizzik.com -blog.foolsmountain.com -blogger.com -blog.gowalla.com -blog.hotpotato.com -blog.ifttt.com -blogimg.jp -blog.instagram.com -blog.instapaper.com -blog.iphone-dev.org -blog.istef.info -blog.jackjia.com -blog.joeyrobert.org -blog.kangye.org -blog.kickstarter.com -blog.kl.am -blog.klip.me -blog.lester850.info -blog.lightbox.com -bloglines.com -bloglovin.com -blog.mongodb.org -blog.openinkpot.org -blog.palm.com -blog.path.com -blog.pathtosharepoint.com -blog.pchome.com.tw -blog.pentalogic.net -blog.pikchur.com -blog.pilotmoon.com -blog.redren.com -blog.rockmelt.com -blog.romanandreg.com -blog.s135.com -blogs.icerocket.com -blog.sina.com.tw -blog.sogoo.org -blog.sparrowmailapp.com -blogspot.com -blogspot.co.uk -blogspot.de -blogspot.fr -blogspot.in -blogspot.jp -blogs.tampabay.com -blog.summify.com -blogs.yahoo.co.jp -blog.syx86.cn -blog.syx86.com -blog.taragana.com -blogtd.net -blogtd.org -blog.tiney.com -blog.topify.com -blog.usa.gov -blog.xuite.net -blog.youthwant.com.tw -blog.youxu.info -bloodshed.net -bloomberg.cn -bloomberg.com -bloomberg.de -bloomfortune.com -bmediaasia.com -bnrmetal.com -boardreader.com -bobulate.com -bolin.netfirms.com -bonbonme.com -bonjourlesgeeks.com -boobstagram.com -books.com.tw -bookshelfporn.com -botanwang.com -bot.nu -bowenpress.com -boxunblog.com -boxunclub.com -boxun.com -boxun.tv -bralio.com -branch.com -brandonhutchinson.com -braumeister.org -break.com -breakingtweets.com -briefdream.com -brightcove.com -brightkite.com -brizzly.com -broadbook.com -br.st -brucewang.net -bt95.com -btdigg.org -btrd.net -budaedu.org -bugclub.org -builtwithbootstrap.com -bullogger.com -bullog.org -businesstimes.com.cn -businessweek.com -buugaa.com -buy.yahoo.com.tw -buzzurl.jp -bwbx.io -bwsj.hk -bx.tl -c1522.mooo.com -cacnw.com -cactusvpn.com -cafepress.com -cahr.org.tw -calameo.com -calebelston.com -cams.com -cams.org.sg -canadameet.com -canyu.org -caobian.info -caochangqing.com -cao.im -cari.com.my -catch22.net -catfightpayperview.xxx -catholic.org.hk -catholic.org.tw -cbs.ntu.edu.tw -cc9007.spaces.live.com -ccavtop10.com -ccdtr.org -ccim.org -cclife.org -ccthere.com -cctongbao.com -ccue.ca -ccue.com -cdig.info -cdjp.org -cdnews.com.tw -cdn.printfriendly.com -cdp1998.org -cdp2006.org -cdp.sinica.edu.tw -cdpusa.org -cdpweb.org -cdpwu.org -cdw.com -cecc.gov -cellulo.info -cenci.tk -cenews.eu -centralnation.com -centurys.net -c-est-simple.com -cfhks.org.hk -cftfc.com -cgdepot.org -chandoo.org -change.org -changp.com -chaos.e-spacy.com -chapm25.com -chartbeat.net -chaturbate.com -chccc.gov.tw -chengmingmag.com -chenguangcheng.com -chenpokong.com -chenyehao.spaces.live.com -cherrysave.com -chevronwp7.com -chicagoncmtv.com -china101.com -china21.com -china21.org -china5000.us -chinaaffairs.org -chinaaid.me -chinaaid.net -chinaaid.org -chinaaid.us -chinachange.org -chinachannel.hk -chinacomments.org -chinadigitaltimes.net -chinaeweekly.com -chinafreepress.org -chinagate.com -chinageeks.org -chinagfw.org -chinagreenparty.org -china-green-party.spaces.live.com -chinahush.com -chinainperspective.com -chinainperspective.net -chinainperspective.org -chinainterimgov.org -chinalawandpolicy.com -chinalawtranslate.com -chinamule.com -chinamz.org -chinarightsia.org -chinasocialdemocraticparty.com -chinaso.com -chinasoul.org -chinatimes.com -chinatweeps.com -chinaway.org -china-week.com -chinaworker.info -chinaxchina.com -chinayouth.org.hk -chinayuanmin.org -chinesedailynews.com -chinese.engadget.com -chinese-hermit.net -chinese-memorial.org -chinesen.de -chinesenewsnet.com -chinesepen.org -chinese.rnw.nl -chinese.soifind.com -chinesetalks.net -chinese.wsj.com -chingcheong.com -chn.chosun.com -chrispederick.com -chrispederick.net -christianstudy.com -christiantimes.org.hk -christusrex.org -chrlawyers.hk -chrlcg-hk.org -chromeadblock.com -chrome.com -ch.shvoong.com -chubun.com -chuizi.net -chukuang.gov.tw -circlethebayfortibet.org -citizenlab.org -citizensradio.org -city9x.com -civicparty.hk -civilhrfront.org -civilmedia.tw -cjb.net -ck101.com -classicalguitarblog.net -clb.org.hk -cl.d0z.net -clientsfromhell.net -clipfish.de -cl.ly -cloudfront.net -club.backchina.com -cms.gov -cmule.com -cn2.streetvoice.com -cna.com.tw -cnavista.com.tw -cn.calameo.com -cn.dayabook.com -cnd.org -cn.fmnnow.com -cn.ibtimes.com -cnn.com -cn.news.cnyes.com -cn.streetvoice.com -cn.uncyclopedia.wikia.com -cn.voa.mobi -cochina.org -cocoapods.org -cocoa.zonble.net -code1984.com -codeboxapp.com -codeshare.io -collateralmurder.com -collateralmurder.org -comefromchina.com -comnews.gio.gov.tw -compileheart.com -connectedchina.reuters.com -connect.facebook.net -conoyo.com -contactmagazine.net -contests.twilio.com -conviva.com -cookingtothegoodlife.com -coolaler.com -coolder.com -coolloud.org.tw -corpus4u.org -corumcollege.com -cotweet.com -couchdbwiki.com -coveringweb.com -cp-house.gov.tw -cpj.org -crackle.com -crd-net.org -creaders.net -cromotc.nat.gov.tw -crossthewall.net -csdparty.com -c-spanvideo.org -css.pixnet.in -csuchen.de -cts.com.tw -cubicle17.com -cuhkacs.org -cuihua.org -cuiweiping.net -culture.tw -curvefish.com -cwb.gov.tw -cyanogenmod.org -cyberghost.natado.com -cyberghostvpn.com -cycab.gov.tw -cydia.ifuckgfw.com -cynscribe.com -cytode.us -dabr.co.uk -dabr.me -dabr.mobi -dadazim.com -dadi360.com -dafagood.com -dafahao.com -dailidaili.com -dailymotion.com -dailynews.sina.com -dajiyuan.com -dajiyuan.eu -dajusha.baywords.com -dalailama.com -dalailama.ru -dalailamaworld.com -dalianmeng.org -danke4china.net -danwei.org -daolan.net -dapu-house.gov.tw -darpa.mil -date.fm -davidslog.com -daxa.cn -dayaarmongol.ning.com -daylife.com -ddc.com.tw -deck.ly -default.secureserver.net -delcamp.net -delicious.com -democrats.org -demo.opera-mini.net -derekhsu.homeip.net -de-sci.org -designerol.com -destiny.xfiles.to -deutsche-welle.de -dev102.com -developers.box.net -deviantart.com -deviantart.net -devio.us -devpn.com -dfas.mil -df.gov.tw -diaoyuislands.org -digitalnomadsproject.org -diigo.com -dimitrik.free.fr -dipity.com -directcreative.com -discuss.com.hk -disp.cc -dit-inc.us -dizhidizhi.com -djangosnippets.org -dl.box.net -dl-laby.jp -dl.playstation.net -dlsite.com -dmcdn.net -dmtip.gov.tw -dns2go.com -dnscrypt.org -docstoc.com -dojin.com -dok-forum.net -dolc.de -dollf.com -domain.club.tw -domainhelp.search.com -dongde.com -dongtaiwang.com -dongtaiwang.net -dongyangjing.com -dontfilter.us -dontmovetochina.com -dotheyfolloweachother.com -dotplane.com -dotsub.com -doubleaf.com -doubleclick.net -dougscripts.com -dowei.org -download.syniumsoftware.com -doxygen.org -dphk.org -dpp.org.tw -drewolanoff.com -drgan.net -dropbox.com -dropboxusercontent.com -drsunacademy.com -drtuber.com -dscn.info -dtiblog.com -dtic.mil -dtiserv2.com -duckduckgo.com -duckload.com -duckmylife.com -duihuahrjournal.org -duihua.org -duoweitimes.com -duping.net -duplicati.com -dupola.com -dupola.net -dvorak.org -dw.de -dwnews.com -dwnews.net -dw-world.com -dw-world.de -dy24k.info -dynawebinc.com -dyndns.org -dzze.com -e123.hk -eamonnbrennan.com -earthquake.usgs.gov -easy-share.com -ebookbrowse.com -ebookee.com -echofon.com -ecministry.net -edicypages.com -edoors.com -edubridge.com -eevpn.com -efcc.org.hk -efksoft.com -efmoe.com -e-gold.com -eic-av.com -e-info.org.tw -electionsmeter.com -elpais.com -eltondisney.com -emacsblog.org -embr.in -emory.edu -emule-ed2k.com -emuparadise.me -enewstree.com -en.favotter.net -englishfromengland.co.uk -entermap.com -en.wikipedia.org -epochtimes-bg.com -epochtimes.co.il -epochtimes.co.kr -epochtimes.com -epochtimes.de -epochtimes.fr -epochtimes.ie -epochtimes.jp -epochtimes-romania.com -epochtimes.ru -epochtimes.se -epochtimestr.com -epochweekly.com -erabaru.net -erepublik.com -erepublik.net -erights.net -eriversoft.com -ernestmandel.org -etaiwannews.com -etizer.org -etools.ncol.com -e-traderland.net -etraining.gov.tw -ettoday.net -evchk.wikia.com -eventful.com -everyday-carry.com -exblog.jp -expatshield.com -exploader.net -extremetube.com -eyespirit.info -eyevio.jp -eyny.com -ezpc.tk -ezpeer.com -facebook.com -facebook.net -facesofnyfw.com -fail.hk -faiththedog.info -fakku.net -falsefire.com -falunart.org -falundafamuseum.org -falundafa.org -falunhr.org -famunion.com -fangbinxing.com -fangeming.com -fanglizhi.info -fangongheike.com -fangong.org -fan-qiang.com -fanqianghou.com -fanqiangyakexi.net -fanswong.com -fanyue.info -fapdu.com -farwestchina.com -farxian.com -fastpic.ru -faststone.org -favorious.com -favstar.fm -fawanghuihui.org -faydao.com -fbcdn.net -fb.com -fb.me -fbsbx.com -fc2china.com -fc2.com -f.cl.ly -fdc89.jp -feedbooks.mobi -feedburner.com -feeds2.feedburner.com -feeds.feedburner.com -feedzshare.com -feelssh.com -feer.com -felixcat.net -feministteacher.com -fengzhenghu.com -fetchvideo.com -ff.im -fflick.com -fgmtv.net -fgmtv.org -filefactory.com -files2me.com -fileserve.com -fillthesquare.org -finalion.jp -findbook.tw -finler.net -fireofliberty.org -firstfivefollowers.com -flecheinthepeche.fr -fleshbot.com -flickr.com -flickrhivemind.net -flightcaster.com -flowerofhappiness.spaces.live.com -focustaiwan.tw -focusvpn.com -fofg.org -fooooo.com -footwiball.com -forum.baby-kingdom.com -forum.cyberctm.com -forum.idsam.com -forum.iset.com.tw -forum.my903.com -forum.mymaji.com -forum.newsgroup.la -forum.nownews.com -forum.omy.sg -forum.palmislife.com -forum.pchome.com.tw -forum.setty.com.tw -forum.sina.com.hk -forum.slime.com.tw -forum.tvb.com -forum.yorkbbs.ca -fotop.net -fourface.nodesnoop.com -fourthinternational.org -foxdie.us -foxsub.com -foxtang.com -fqrouter.com -franklc.com -freakshare.com -fredwilson.vc -free4u.com.ar -freealim.com -freechal.com -freedomhouse.org -free.fr -freegao.com -freegateget.googlepages.com -free-gate.org -free-hada-now.org -freelotto.com -freeman2.com -freemoren.com -freemorenews.com -freenet-china.org -freenetproject.org -freenewscn.com -freeopenvpn.com -freeoz.org -free-ssh.com -freessh.us -freetibet.org -freevpn.nl -freewallpaper4.me -freewebs.com -freeweibo.com -freexinwen.com -freeyoutubeproxy.net -friendfeed.com -friendfeed-media.com -fring.com -fringenetwork.com -frommel.net -frontlinedefenders.org -fscked.org -fsurf.com -ftchinese.com -fuckcnnic.net -fuckgfw.com -fuckgfw.org -fulue.com -funf.tw -funp.com -furinkan.com -furl.net -futurechinaforum.org -futureme.org -futuremessage.org -fuyin.net -fw.cm -fxnetworks.com -fzh999.com -fzh999.net -gabocorp.com -gaeproxy.com -gaeproxy.googlecode.com -galenwu.com -game735.com -gamebase.com.tw -gamer.com.tw -gamez.com.tw -ganges.com -gaoming.net -gaopi.net -gaozhisheng.net -gaozhisheng.org -gardennetworks.com -gardennetworks.org -gartlive.com -gather.com -gaymap.cc -gazotube.com -gcc.org.hk -gclooney.com -g.co -gcpnews.com -gdbt.net -gdzf.org -geek-art.net -geekerhome.com -geekmade.co.uk -geekmanuals.com -generesis.com -genuitec.com -geocities.co.jp -geocities.com -geocities.jp -geohot.com -geometrictools.com -getchu.com -getcloudapp.com -get-digital-help.com -getfoxyproxy.org -getfreedur.com -getiton.com -getjetso.com -getlantern.org -getsmartlinks.com -getsocialscope.com -gfwinterceptor.googlecode.com -gfw.org.ua -ggpht.com -ggssl.com -ghost.org -ghut.org -giga-web.jp -gigporno.ru -gimpshop.com -girlbanker.com -github.com -git-scm.com -givemesomethingtoread.com -glennhilton.com -globaljihad.net -globalmuseumoncommunism.org -globalrescue.net -globalvoicesonline.org -gmail.com -gmbd.cn -gmhz.org -gmodules.com -gmozomg.izihost.org -gnci.org.hk -goagent.biz -goagent.googlecode.com -goagentplus.com -godfootsteps.org -golang.org -goldbetsports.com -goldwave.com -gongmeng.info -gongm.in -gongminliliang.com -gongwt.com -goodreaders.com -goodreads.com -goofind.com -goo.gl -googleadservices.com -google-analytics.com -googleapis.com -googlecode.com -google.co.jp -google.com -google.com.hk -google.com.sg -google.com.tw -google.com.uk -googledomains.com -googledrive.com -googleearth.com -googlehosted.com -googlelabs.com -googlemail.com -googleplus.com -googlesile.com -googlesource.com -googlesyndication.com -googletagmanager.com -googletagservices.com -googleusercontent.com -googlevideo.com -gopetition.com -gospelherald.com -gov.tw -gpass1.com -grandtrial.org -graphis.ne.jp -gravatar.com -graylog2.org -grb.gov.tw -greatfire.org -greatfirewall.biz -great-firewall.com -greatfirewallofchina.net -greatfirewallofchina.org -great-roc.org -greatroc.org -greatroc.tw -greatzhonghua.org -greenparty.org.tw -greenvpn.net -gs-discuss.com -gseeker.com -gsn-cert.nat.gov.tw -gstatic.com -gtap.googlecode.com -gtricks.com -guancha.org -gufeng521.spaces.live.com -guishan.org -gunsamerica.com -gun-world.net -guomin.us -gutteruncensored.com -gvm.com.tw -gyalwarinpoche.com -gysd.nyc.gov.tw -gzm.tv -gzone-anime.info -h1n1china.org -hacken.cc -hackthatphone.net -hahlo.com -hakkatv.org.tw -hanunyi.com -hardsextube.com -hasaowall.com -have8.com -haygo.com -hcc.gov.tw -hchcc.gov.tw -h-china.org -hdtvb.net -heartyit.com -hecaitou.net -hechaji.com -heix.pp.ru -heiyo.info -helloandroid.com -hellonewyork.us -helloqueer.com -hellotxt.com -hellouk.org -helpeachpeople.com -helplinfen.com -help.linksalpha.com -help.opera.com -helpzhuling.org -hen.bao.li -hengchuen.gov.tw -heqinglian.net -here4news.com -heungkongdiscuss.com -hgseav.com -hidden-advent.org -hidecloud.com -hideipvpn.com -hidemyass.com -higfw.com -highrockmedia.com -hihiforum.com -hihistory.net -hiitch.com -hikinggfw.org -himemix.com -himemix.net -hjclub.info -hk32168.com -hkbc.net -hkbf.org -hkchurch.org -hkdailynews.com.hk -hkday.net -hkej.com -hkepc.com -hkfront.org -hk.geocities.com -hkgolden.com -hkgreenradio.org -hkg.westkit.net -hkheadline.com -hkhkhk.com -hkjc.com -hk.jiepang.com -hkjp.easyweb.hk -hkjp.org -hk.knowledge.yahoo.com -hk.myblog.yahoo.com -hk.news.yahoo.com -hkptu.org -hk-pub.com -hk.rd.yahoo.com -hkreporter.com -hkreporter.loved.hk -hk.search.yahoo.com -hk.video.news.yahoo.com -hkwcc.org.hk -hk.yahoo.com -hkzone.org -hnjhj.com -hola.com -holyspiritspeaks.org -holz.byethost8.com -homeservershow.com -home.sina.com -home.so-net.net.tw -honeonet.spaces.live.com -hongmeimei.com -hongzhi.li -hootsuite.com -hotpot.hk -hotshame.com -hotspotshield.com -hougaige.com -howtoforge.com -hqcdp.org -hrcir.com -hrichina.org -hrw.org -hsinchu-cc.gov.tw -hsjp.net -hsselite.com -htkou.net -htl.li -ht.ly -htmldog.com -huaglad.com -huajiadi.spaces.live.com -huanghuagang.org -huaren.us -huaxia-news.com -huaxin.ph -hua-yue.net -hudatoriq.web.id -hugoroy.eu -huhamhire.com -hujiachina.spaces.live.com -hulu.com -huluim.com -humanities.uchicago.edu -hungerstrikeforaids.org -hung-ya.com -huping.net -hutianyi.net -hutong9.net -hwinfo.com -hyperrate.com -hypeshell.com -i1.hk -i2runner.com -ialmostlaugh.com -iask.bz -iask.ca -ibiblio.org -iblogserv-f.net -ibros.org -icij.org -icl-fi.org -iconpaper.org -icu-project.org -idemocracy.asia -identi.ca -idiomconnection.com -idouga.com -idv.tw -ieasynews.net -ied2k.net -ieemdai.spaces.live.com -ifan.cz.cc -ifanqiang.com -ifanr.com -ifcss.org -ifjc.org -igfw.net -ignitedetroit.net -igvita.com -ihakka.net -iicns.com -illusionfactory.com -ilove80.be -im88.tw -imageflea.com -imagesblog.gio.gov.tw -imageshack.us -imagevenue.com -imagezilla.net -ime.baidu.jp -img.ly -imkev.com -imlive.com -immigration.gov.tw -imrworldwide.com -im.tv -incredibox.fr -iner.gov.tw -initiativesforchina.org -inmediahk.net -innermongolia.org -instagram.com -interestinglaugh.com -interfaceaddiction.com -internationalrivers.org -internetdefenseleague.org -internetfreedom.org -internetpopculture.com -inxian.com -iphone4hongkong.com -iphonehacks.com -iphonix.fr -ipicture.ru -ipobar.com -ippotv.com -iptorrents.com -ipvanish.com -iredmail.org -ironbigfools.compython.net -ironicsoftware.com -ironpython.net -isaacmao.com -isgreat.org -islamicity.com -islam.org.hk -ismprofessional.net -isohunt.com -israbox.com -istockphoto.com -isunaffairs.com -isuntv.com -itaboo.info -ithelp.ithome.com.tw -itrc.gov.tw -itshidden.com -itweet.net -iu45.com -iverycd.com -ixquick.com -izaobao.us -izles.net -japan-whores.com -jayparkinsonmd.com -jbtalks.cc -jbtalks.com -jbtalks.my -jeanyim.com -jgoodies.com -jiaoyou8.com -jiehua.cz -jieshibaobao.com -jike.com -jimoparty.com -jinbushe.org -jingpin.org -jitouch.com -jkforum.net -j.mp -joachims.org -jobso.tv -joeedelman.com -journalofdemocracy.org -jpopforum.net -juliereyc.com -junauza.com -junefourth-20.net -justfreevpn.com -justtristan.com -juziyue.com -jwmusic.org -jyxf.net -jyzj.waqn.com -k2.xrea.com -kagyuoffice.org.tw -kaiyuan.de -kakao.com -kanzhongguo.com -kanzhongguo.eu -karayou.com -ka-wai.com -kcsoftwares.com -kechara.com -keepandshare.com -kendincos.net -kenengba.com -keontech.net -khcc.gov.tw -khms.gov.tw -khmusic.com.tw -killwall.com -kineox.free.fr -kingdomsalvation.org -kinghost.com -kingstone.com.tw -kissbbao.cn -kissyoutube.com -kk.gov.tw -klccab.gov.tw -klra.gov.tw -klsio.gov.tw -kmh.gov.tw -kmseh.gov.tw -knowledgerush.com -kodingen.com -kompozer.net -koolsolutions.com -koornk.com -kt.kcome.org -kui.name -kun.im -kurtmunger.com -kusocity.com -kwongwah.com.my -kyohk.net -kzeng.info -labiennale.org -ladbrokes.com -la-forum.org -lagranepoca.com -lalulalu.com -laogai.org -laomiu.com -laoyang.info -laptoplockdown.com -laqingdan.net -larsgeorge.com -lastfm.es -latelinenews.com -latimesblogs.latimes.com -lazarsearlymusic.com -leecheukyan.org -legaltech.law.com -lematin.ch -lemonde.fr -lenwhite.com -lerosua.org -lesoir.be -lesscss.org -letscorp.net -liansi.org -lianyue.net -liaowangxizang.net -liberal.org.hk -libertytimes.com.tw -lich355.megabyet.net -lidecheng.com -life.fly4ever.me -limiao.net -line.me -linglingfa.com -lingvodics.com -linkideo.com -linuxconfig.org -linux-engineer.net -linuxreviews.org -linuxtoy.org -lipuman.com -listentoyoutube.com -list.ly -listorious.com -lists.debian.org -lists.w3.org -littlebigdetails.com -liudejun.com -liuhanyu.com -liujianshu.com -liu.lu -liuxiaotong.com -liveleak.com -livestation.com -livestream.com -livevideo.com -livingonline.us -livingstream.com -lizhizhuangbi.com -lkcn.net -localpresshk.com -lockdown.com -lockestek.com -logbot.net -logiqx.com -logmike.com -log.riku.me -london.neighborhoodr.com -longhair.hk -longtermly.net -lookatgame.com -lookingglasstheatre.org -lookpic.com -lotuslight.org.tw -lovequicksilver.com -lovesphinx.tk -lrfz.com -lsd.org.hk -lsforum.net -lsmchinese.org -lsmkorean.org -lsm.org -lsxszzg.com -lua.org -lua-users.org -lungtanhr.gov.tw -luntan.zaobao.com -lupm.org -lushstories.com -lvhai.org -lyricsquote.com -mad-ar.ch -madmenunbuttoned.com -magazines.sina.com.tw -maiio.net -mail-archive.com -maiplus.com -makemymood.com -makzhou.warehouse333.com -malaysiakini.com -marc.info -marco.org -marguerite.su -marines.mil -markmilian.com -martau.com -martincartoons.com -maruta.be -marxist.com -marxist.net -marxists.org -mashable.com -mash.to -matainja.com -mathiew-badimon.com -matsu-news.gov.tw -matsushimakaede.com -maxgif.com -mayimayi.com -mcadforums.com -mcfog.com -md-t.org -mediafire.com -meetup.com -mefeedia.com -megaporn.com -megarotic.com -megavideo.com -megurineluka.com -meirixiaochao.com -melon-peach.com -memedia.cn -meme.yahoo.com -memrijttm.org -merit-times.com.tw -mesotw.com -metacafe.com -meteorshowersonline.com -metrolife.ca -mgoon.com -mgstage.com -mh4u.org -mhradio.org -michaelanti.com -michaelmarketl.com -middle-way.net -mihk.hk -mihua.org -mike.cz.cc -mimivip.com -minghui.org -minghui-school.org -mingjinglishi.com -mingjingnews.com -mingpaocanada.com -mingpao.com -mingpaomonthly.com -mingpaonews.com -mingpaony.com -mingpaosf.com -mingpaotor.com -mingpaovan.com -minimalmac.com -mininova.org -minzhuhua.net -minzhuzhongguo.org -miroguide.com -mirrorbooks.com -mitbbs.com -mixedmedialabs.com -mixero.com -mixpod.com -mixx.com -mizzmona.com -mk5000.com -mlcool.com -mmaaxx.com -mmmca.com -mobatek.net -mobile01.com -mobileways.de -mobypicture.com -moby.to -modfetish.com -moe.gov.tw -mog.com -molihua.org -mondex.org -monitorchina.org -moonriver7.files.wordpress.com -morningsun.org -m.oulove.org -movabletype.com -moviefap.com -mp3ye.eu -mpettis.com -mpfinance.com -mpinews.com -m.plixi.com -mrdoob.com -mrtweet.com -msguancha.com -m.slandr.net -m-team.cc -mthruf.com -m.tweete.net -mtw.tl -multiply.com -multiproxy.org -multiupload.com -muouju.com -muselinks.co.jp -music.jwmusic.org -muzi.com -muzi.net -muzu.tv -mvdis.gov.tw -mx981.com -myactimes.com -my-addr.com -myaudiocast.com -myav.com.tw -my.backchina.com -myboooks.googlepages.com -mychinamyhome.com -myeclipseide.com -myforum.com.hk -myforum.com.uk -myfreshnet.com -my.keso.cn -myopenid.com -my.opera.com -mypaper.pchome.com.tw -myparagliding.com -mypopescu.com -my-proxy.com -myshare.url.com.tw -mysinablog.com -myspace.com -myvlog.im.tv -naacoalition.org -naitik.net -nakido.com -namsisi.com -nanyang.com -nanyangpost.com -nanzao.com -naol.ca -national-lottery.co.uk -navicat.com -navigeaters.com -navy.mil -nccwatch.org.tw -ncdr.nat.gov.tw -nch.com.tw -ncn.org -ncree.gov.tw -nde.de -ndr.de -nekoslovakia.net -nerch.gov.tw -ner.gov.tw -nerhl.gov.tw -nertt.gov.tw -netcolony.com -netflix.com -netme.cc -networkedblogs.com -neverforget8964.org -new-3lunch.net -new-akiba.com -newcenturymc.com -newcenturynews.com -newchen.com -newgrounds.com -newlandmagazine.com.au -news100.com.tw -newsancai.com -news.atebits.com -news.backchina.com -news.bbc.co.uk -newscn.org -news.cnyes.com -newsforums.bbc.co.uk -news.ghostery.com -news.google.com.hk -newsminer.com -news.msn.com.tw -news.omy.sg -news.pchome.com.tw -newspeak.cc -newspp.org -news.sina.com.hk -news.sina.com.tw -news.singtao.ca -newstapa.org -newtaiwan.com.tw -newtalk.tw -newyorktimes.com -nexton-net.jp -nexttv.com.tw -nf.id.au -nga.mil -ngensis.com -nhri.gov.tw -nic.cz.cc -nici.nat.gov.tw -nicovideo.tw -nict.gov.tw -nighost.org -nintendium.com -nintendowifi.net -njactb.org -njuice.com -nlfreevpn.com -nmh.gov.tw -nmmba.gov.tw -nmp.gov.tw -nmtl.gov.tw -nmvttc.gov.tw -nobelprize.org -nobel.se -nobodycanstop.us -nokogiri.org -nokola.com -noobbox.com -notes.alexdong.com -novelasia.com -nownews.com -nowtorrents.com -noypf.com -npa.go.jp -npm.gov.tw -nps.gov -nrk.no -nsc.gov.tw -nspo.gov.tw -nstm.gov.tw -ntdmh.gov.tw -ntdtv.ca -ntdtv.co -ntdtv.com -ntdtv.org -ntdtv.ru -ntl.gov.tw -ntsec.gov.tw -ntuh.gov.tw -nuexpo.com -nurgo-software.com -nuvid.com -nuzcom.com -nvquan.org -nvri.gov.tw -nydus.ca -nysingtao.com -nytco.com -nyt.com -nytimes.com -nytimg.com -nzchinese.net.nz -observechina.net -oclp.hk -october-review.org -offbeatchina.com -ogaoga.org -oikos.com.tw -oiktv.com -oizoblog.com -okayfreedom.com -old-cat.net -old.nabble.com -olumpo.com -olympicwatch.org -omgili.com -omnitalk.com -on.cc -one.xthost.info -onlylady.cn -onmoon.com -onmoon.net -oopsforum.com -ooyala.com -open.com.hk -opendemocracy.net -openid.net -openleaks.org -openvpn.net -openvpn.org -openwebster.com -opml.radiotime.com -opnir.com -orientaldaily.com.my -orient-doll.com -orn.jp -orzistic.org -osfoora.com -ourdearamy.com -oursogo.com -oursteps.com.au -overlapr.com -owl.li -ow.ly -oyax.com -ozchinese.com -ozyoyo.com -pabp.gov.tw -pacificpoker.com -packages.debian.org -packetix.net -page2rss.com -page.bid.yahoo.com -pagodabox.com -paint.net -palacemoon.com -pandora.com -pandora.tv -panluan.net -panoramio.com -pao-pao.net -paperb.us -paper.li -paper-replika.com -parade.com -parislemon.com -pastebin.com -pastie.org -patehr.gov.tw -pbs.org -pbwiki.com -pbworks.com -pbxes.com -pbxes.org -pcdiscuss.com -pcdvd.com.tw -pchome.com.tw -pct.org.tw -pcworld.com -pdetails.com -pdproxy.com -peacefire.org -peacehall.com -peeasian.com -peerpong.com -pekingduck.org -penchinese.com -penchinese.net -pengyulong.com -penthouse.com -peopo.org -percy.in -perfectgirls.net -perfectvpn.net -perfspot.com -perlhowto.com -pet.gov.tw -philly.com -photofocus.com -photos.dailyme.com -photo.utom.us -phuquocservices.com -picasaweb.google.com -picidae.net -picturesocial.com -pictures.playboy.com -pidown.com -pign.net -pimg.tw -pin6.com -ping.fm -pinoy-n.com -pioneer-worker.forums-free.com -piring.com -pixanalytics.com -pixelqi.com -pixfs.net -pixnet.cc -pixnet.net -pixplug.in -pk.com -placemix.com -planetsuzy.org -playboy.com -plays.com.tw -plm.org.hk -plunder.com -plurk.com -plurktop.mmdays.com -plus28.com -plusbb.com -pmates.com -po2b.com -podictionary.com -pokerstars.com -politicalchina.org -popvote.hk -popyard.com -popyard.org -porn2.com -pornbase.org -porn.com -pornhub.com -pornmm.net -pornoxo.com -pornrapidshare.com -pornstarclub.com -porntube.com -pornvisit.com -portis21.spaces.live.com -pose.com -postadult.com -post.anyu.org -posterous.com -post.ly -powerapple.com -power.com -powercx.com -prayforchina.net -premeforwindows7.com -presentationzen.com -president.gov.tw -prestige-av.com -previewshots.com -privacybox.de -privateinternetaccess.com -privatepaste.com -privatetunnel.com -procopytips.com -program-think.spaces.live.com -prosiben.de -provideocoalition.com -proxifier.com -proxomitron.info -proxy.org -proxypy.net -proxyroad.com -prozz.net -psblog.name -psiphon.ca -psiphon.civisec.org -pts.org.tw -ptt.cc -pubu.com.tw -puffinbrowser.com -puffstore.com -pullfolio.com -pulse.yahoo.com -pure18.com -pureconcepts.net -purepdf.com -purevpn.com -putlocker.com -puttycm.free.fr -pwned.com -python.com -python.com.tw -qanote.com -qidian.ca -qienkuen.org -qi-gong.me -qiwen.lu -qixianglu.cn -qkshare.com -qoos.com -qq.co.za -qstatus.com -qtrac.eu -qtweeter.com -quadedge.com -qusi8.net -qvodzy.org -qxbbs.org -radicalparty.org -radioaustralia.net.au -radiovaticana.org -radiovncr.com -raidcall.com.tw -rangzen.org -ranyunfei.com -rapbull.net -rapidshare8.com -rapidsharedata.com -rayfme.com -rcinet.ca -rconversation.blogs.com -rdio.com -read100.com -readingtimes.com.tw -readmoo.com -realraptalk.com -recordhistory.org -redchinacn.org -redtube.com -referer.us -reflectivecode.com -relaxbbs.com -renminbao.com -renyurenquan.org -retweeteffect.com -retweetist.com -retweetrank.com -revleft.com -revsci.net -revver.com -rfachina.com -rfamobile.org -rfa.org -rferl.org -rfi.fr -rhcloud.com -riku.me -rileyguide.com -rlwlw.com -rmjdw.com -rnw.nl -robtex.com -robustnessiskey.com -rocmp.org -rojo.com -ronjoneswriter.com -roodo.com -rotten.com -rsf-chinese.org -rsf.org -rssmeme.com -rthk.hk -rthk.org.hk -rti.org.tw -ruanyifeng.com -rushbee.com -rutube.ru -ruyiseek.com -rxhj.net -s1heng.com -s8forum.com -sacom.hk -sadpanda.us -saiq.me -salvation.org.hk -samair.ru -sammyjs.org -samsoff.es -sandnoble.com -sankaizok.com -sanmin.com.tw -sapikachu.net -savemedia.com -savetibet.de -savetibet.fr -savetibet.nl -savetibet.org -savetibet.ru -savevid.com -say2.info -scanscout.com -scmpchinese.com -scmp.com -scorecardresearch.com -scribd.com -scriptspot.com -seapuff.com -secretchina.com -secretgarden.no -secure.wikimedia.org -securitykiss.com -seesmic.com -seevpn.com -seezone.net -sejie.com -sendoid.com -sendspace.com -sesawe.net -sesawe.org -sethwklein.net -sevenload.com -sex-11.com -sex3.com -sex8.cc -sexandsubmission.com -sex.com -sexhuang.com -sexhu.com -sexinsex.net -sfileydy.com -shadow.ma -shadowsocks.org -shahamat-english.com -shangfang.org -shapeservices.com -sharebee.com -sharecool.org -share.ovi.com -share.skype.com -share.youthwant.com.tw -sharkdolphin.com -sharpdaily.com.hk -sharpdaily.hk -shaunthesheep.com -sheikyermami.com -shellmix.com -shenshou.org -shenyunperformingarts.org -shenzhoufilm.com -shifeike.blog125.fc2blog.net -shinychan.com -shitaotv.org -shixiao.org -shizhao.org -shkspr.mobi -shodanhq.com -shopping.com -showbiz.omy.sg -showtime.jp -shwchurch3.com -sidelinesnews.com -sidelinessportseatery.com -simplecd.me -simplecd.org -simpleproductivityblog.com -sina.com.tw -singtao.com -singularitys.spaces.live.com -sinoants.com -sinocast.com -sinocism.com -sino-monthly.com -sinomontreal.ca -sinonet.ca -sinopitt.info -sinoquebec.com -sis001.com -sis001.us -sis.xxx -site90.net -sitebro.tw -siteks.uk.to -site.locql.com -sitemaps.org -sites.google.com -sitetag.us -siyi123123123.spaces.live.com -skimtube.com -skybet.com -skyvegas.com -slacker.com -slavasoft.com -slheng.com -slickvpn.com -slideshare.net -slinkset.com -slutload.com -smhric.org -snapchat.com -snaptu.com -sndcdn.com -sneakme.net -snooper.co.uk -sobees.com -socialwhale.com -sockslist.net -so.com -sod.co.jp -softether.co.jp -softether-download.com -softether.org -softwarebychuck.com -so-ga.net -sogclub.com -sogou.com -sogrady.me -sohcradio.com -sohfrance.org -soh.tw -sokamonline.com -solozorro.tk -somee.com -so-news.com -songjianjun.com -sonidodelaesperanza.org -sopcast.com -sopcast.org -sorting-algorithms.com -soso.com -soumo.info -soundcloud.com -soundofhope.kr -soundofhope.org -soupofmedia.com -sourceforge.net -southnews.com.tw -sowers.org.hk -space-scape.com -spankwire.com -spb.com -speckleapp.com -speedpluss.org -spencertipping.com -spinejs.com -sports.williamhill.com -spotify.com -sproutcore.com -squarespace.com -srcf.ucam.org -ssh91.com -sshtunnel.googlecode.com -sstatic.net -stag.gov.tw -standupfortibet.org -starp2p.com -startpage.com -statcounter.com -state168.com -static.apple.nextmedia.com -static.digg.com -staticflickr.com -static.nownews.com -static.soup.io -static.typepad.com -status.twhirl.org -stdtime.gov.tw -steel-storm.com -sthoo.com -stickam.com -stickeraction.com -stonegames.net -stoneip.info -stoptibetcrisis.net -storagenewsletter.com -stoweboyd.com -streamingthe.net -strongvpn.com -student.tw -stuffimreading.com -stuffimreading.net -stupidvideos.com -subacme.rerouted.org -sublexical.spaces.live.com -sufeng.org -sugarsync.com -summify.com -sun1911.com -suoluo.org -surfeasy.com.au -svwind.com -sweux.com -swift-tools.net -s.xiaod.in -sydneytoday.com -sylfoundation.org -syncback.com -sysadmin1138.net -sysresccd.org -sytes.net -szbbs.net -szetowah.org.hk -t35.com -t66y.com -taa-usa.org -tabtter.jp -tacem.org -tafaward.com -tagwalk.com -taipei.gov.tw -taipeisociety.org -taitung-house.gov.tw -taiwandaily.net -taiwankiss.com -taiwannation.50webs.com -taiwannation.com -taiwannation.com.tw -taiwannews.com.tw -taiwan-sex.com -taiwantt.org.tw -taiwanus.net -taiwanyes.com -taiwanyes.ning.com -tamiaode.tk -tanc.org -tangben.com -taolun.info -taoyuan.gov.tw -tap11.com -target.com -taweet.com -tax.nat.gov.tw -tbpic.info -tbsec.org -tbsn.org -tbsseattle.org -tchb.gov.tw -tchrd.org -t.co -tcsac.gov.tw -teamseesmic.com -teashark.com -techlifeweb.com -techparaiso.com -telecomspace.com -telegraph.co.uk -tenacy.com -thbstc.gov.tw -theampfactory.com -theappleblog.com -theatrum-belli.com -thebcomplex.com -theblemish.com -thebodyshop-usa.com -thechinabeat.org -thedailywh.at -thedieline.com -thedw.us -thegatesnotes.com -thehots.info -thehousenews.com -thehungrydudes.com -thehun.net -theinternetwishlist.com -thelifeyoucansave.com -thelius.org -thepiratebay.org -thepiratebay.se -theqii.info -thereallove.kr -thesartorialist.com -thespeeder.com -the-sun.on.cc -thetibetpost.com -thetrotskymovie.com -thevivekspot.com -thewgo.org -thisav.com -thisiswhyyouarefat.com -thkphoto.com -thomasbernhard.org -threatchaos.com -throughnightsfire.com -t.huhaitai.com -thumbzilla.com -thywords.com -tiananmenmother.org -tiananmenuniv.com -tiananmenuniv.net -tiandixing.org -tianhuayuan.com -tiantibooks.org -tianzhu.org -tibetalk.com -tibetanyouthcongress.org -tibet.at -tibet.com -tibetcorps.org -tibetfund.org -tibetjustice.org -tibet.net -tibetoffice.org -tibetonline.com -tibetonline.tv -tibet.org.tw -tibetsun.com -tibetwrites.org -tidyread.com -time.com -times.hinet.net -tinychat.com -tinypaste.com -tinypng.com -tistory.com -tjholowaychuk.com -tkcs-collins.com -tkforum.tk -t.kun.im -tmagazine.com -tmi.me -tnaflix.com -tncsec.gov.tw -t.neolee.cn -togetter.com -tokyo-247.com -tokyocn.com -tokyo-hot.com -tomayko.com -tomsc.com -tono-oka.jp -tonyyan.net -toodoc.com -toonel.net -topic.youthwant.com.tw -topnews.in -topshare.us -topshareware.com -topstyle4.com -topsy.com -tora.to -tor.blingblingsquad.net -torproject.org -torrentcrazy.com -torrentproject.se -tor.updatestar.com -torvpn.com -t.orzdream.com -tosh.comedycentral.com -touch99.com -toutfr.com -tpde.aide.gov.tw -tphcc.gov.tw -tpi.org.tw -transgressionism.org -transparency.org -travelinlocal.com -trendsmap.com -trialofccp.org -tripod.com -trouw.nl -trtc.com.tw -trt.net.tr -trulyergonomic.com -trustedbi.com -truth101.co.tv -truthcn.com -truveo.com -tsctv.net -tsemtulku.com -tsquare.tv -tsunagarumon.com -tt1069.com -tttan.com -tuanzt.com -tube8.com -tubecao.com -tube.com -tubewolf.com -tuidang.net -tuidang.org -tui.orzdream.com -tuite.googlecode.com -tumblr.awflasher.com -tumblweed.org -tumutanzi.com -tunein.com -tunnelbear.com -turbobit.net -turbotwitter.com -turningtorso.com -turntable.fm -tuxtraining.com -tvants.com -tvboxnow.com -tv.com -tvider.com -tv-intros.com -tv.on.cc -tvunetworks.com -twapperkeeper.com -twa.sh -twaud.io -twbbs.net.tw -twbbs.org -twbbs.tw -twblogger.com -tweepguide.com -tweeplike.me -tweepmag.com -tweepml.org -tweetbackup.com -tweetboard.com -tweetboner.biz -tweetdeck.com -tweetedtimes.com -tweetmeme.com -tweetmylast.fm -tweetphoto.com -tweetrans.com -tweetree.com -tweetwally.com -tweetymail.com -twftp.org -twibase.com -twibble.de -twibbon.com -twibs.com -twicsy.com -twifan.com -twiffo.com -twiggit.org -twilog.org -twimbow.com -twimg.com -twimg.edgesuite.net -tw.img.nextmedia.com -twindexx.com -twipple.jp -twistar.cc -twisternow.com -twistory.net -twit2d.com -twitbrowser.net -twitcause.com -twitese.spaces.live.com -twitgether.com -twitgoo.com -twitiq.com -twitlonger.com -twitoaster.com -twitonmsn.com -twitpic.com -twitreferral.com -twitstat.com -twittbot.net -twitter4j.org -twitter.com -twittercounter.com -twitterfeed.com -twittergadget.com -twitter.jp -twitterkr.com -twittermail.com -twittertim.es -twitthat.com -twitturk.com -twitturly.com -twitvid.com -twitzap.com -twiyia.com -tw.jiepang.com -tw.myblog.yahoo.com -tw.news.yahoo.com -tw-npo.org -tw.rd.yahoo.com -twreg.info -twstar.net -tw.streetvoice.com -twt.fm -twtkr.com -twtr2src.ogaoga.org -twtrland.com -twt.tl -twttr.com -twurl.nl -tw.voa.mobi -twyac.org -tw.yahoo.com -tycool.com -tynsoe.org -typepad.com -tzangms.com -ub0.cc -uberproxy.net -ucdc1998.org -uderzo.it -udn.com -ufreevpn.com -ugo.com -uhrp.org -uighurbiz.net -ukliferadio.co.uk -ulike.net -ultravpn.fr -ultraxs.com -unblock.cn.com -unblocksit.es -uncyclomedia.org -uncyclopedia.info -uncyclopedia.tw -unholyknight.com -uni.cc -unicode.org -uniteddaily.com.my -unix100.com -unknownspace.org -unpo.org -uocn.org -upcoming.yahoo.com -update.playstation.net -upload4u.info -upload.backchina.com -uploaded.to -uploadstation.com -upload.wikimedia.org -urlborg.com -urlparser.com -usacn.com -usfk.mil -usinfo.state.gov -usmc.mil -us.to -ustream.tv -usus.cc -uushare.com -uwants.com -uwants.net -uyghurcongress.org -uygur.org -v70.us -vaayoo.com -value-domain.com -van698.com -vanemu.cn -vanilla-jp.com -vansky.com -vapurl.com -vatn.org -vcfbuilder.org -vcf-online.org -veempiire.com -velkaepocha.sk -venbbs.com -venchina.com -ventureswell.com -veoh.com -verizon.net -verybs.com -vevo.com -vft.com.tw -vghks.gov.tw -vghtc.gov.tw -vghtpe.gov.tw -video.aol.ca -video.aol.com -video.aol.co.uk -video.ap.org -videobam.com -video.fdbox.com -video.foxbusiness.com -videomo.com -video.tiscali.it -video.yahoo.com -vidoemo.com -views.fm -viki.com -vimeocdn.com -vimeo.com -vimgolf.com -vimperator.org -vincnd.com -vinniev.com -vllcs.org -vlog.xuite.net -vmixcore.com -voacantonese.com -voachineseblog.com -voachinese.com -voagd.com -voanews.com -voatibetan.com -vocn.tv -vot.org -vpnbook.com -vpnfire.com -vpngate.jp -vpngate.net -vpnpop.com -vpnpronet.com -v-state.org -vtunnel.com -w3schools.com -waffle1999.com -wahas.com -waigaobu.com -waikeung.org -waiwaier.com -wallornot.org -wallpapercasa.com -wanderinghorse.net -wanfang.gov.tw -wangafu.net -wangjinbo.org -wanglixiong.com -wangruoshui.net -wangyi64.spaces.live.com -want-daily.com -wapedia.mobi -washeng.net -watchmygf.net -wattpad.com -wdf5.com -wearn.com -web2project.net -webbang.net -webfee.tk -weblagu.com -webmproject.org -webshots.com -websitepulse.com -webs-tv.net -webworkerdaily.com -weeewooo.net -weekmag.info -wefong.com -weiboleak.com -weigegebyc.dreamhosters.com -weijingsheng.org -weiming.info -weiquanwang.org -weisuo.ws -wellplacedpixels.com -wengewang.com -wengewang.org -wenhui.ch -wenku.com -wenxuecity.com -wenyunchao.com -wenyunchao.spaces.live.com -wepn.info -westca.com -westernwolves.com -wetplace.com -wetpussygames.com -wexiaobo.org -wezhiyong.org -wezone.net -wforum.com -whatblocked.com -whereiswerner.com -whippedass.com -whitebear.freebearblog.org -whydidyoubuymethat.com -whylover.com -whyx.org -w.idaiwan.com -wiki.cnitter.com -wiki.jqueryui.com -wiki.keso.cn -wikileaks.ch -wikileaks.de -wikileaks.eu -wikileaks.lu -wikileaks.org -wikileaks.pl -wikilivres.info -wikimapia.org -wikimedia.org.mo -wiki.moegirl.org -wikinet.org -wiki.oauth.net -wikipedia.org -wiki.phonegap.com -wikiwiki.jp -wikkii.com -williamlong.spaces.live.com -willw.net -windowsphoneme.com -winwhispers.info -wiredbytes.com -wiredpen.com -wireshark.org -wisevid.com -witnessleeteaching.com -witopia.net -wlx.sowiki.net -woeser.com -wolfax.com -womenbusiness.nyc.gov.tw -womensrightsofchina.org -woopie.jp -woopie.tv -wordboner.com -wordpress.com -wordsandturds.com -w.org -workatruna.com -worldcat.org -worldjournal.com -worstthingieverate.com -wo.tc -wowlegacy.ml -wow-life.net -woxinghuiguo.com -wozy.in -wp.com -wpoforum.com -wqlhw.com -wqyd.org -wrchina.org -wretch.cc -writer.zoho.com -wsj.com -wsj.net -wtfpeople.com -wuala.com -wuerkaixi.com -wufi.org.tw -wuguoguang.com -wujieliulan.com -wujie.net -wukangrui.net -wwitv.com -www.6v6dota.com -www.ajsands.com -www.antd.org -www.aolnews.com -www.bulbous.freeserve.co.uk -www.cmoinc.org -www.dfanning.com -www.dwheeler.com -www.eulam.com -www.exblog.jp -www.forum4hk.com -www.freetibet.org -www.getyouram.com -www.goldenmelody.com.tw -www.idlcoyote.com -www.immigration.gov.tw -www.klip.me -www.kodingen.com -www.linksalpha.com -www.loiclemeur.com -www.macrovpn.com -www.monlamit.org -www.moztw.org -www.mycould.com -www.ned.org -www.nownews.com -www.orchidbbs.com -www.owind.com -www.oxid.it -www.parkansky.com -www.powerpointninja.com -www.rnw.nl -www.somee.com -www.stackfile.com -www.supertweet.net -www.tiffanyarment.com -www.tripod.com -www.tv.com -www.twtrland.com -www.typepad.com -www.urbanoutfitters.com -www.vegorpedersen.com -www.voy.com -www.vpncup.com -www.wangruowang.org -www.wan-press.org -www.wet123.com -www.zaurus.org.uk -wzyboy.im -x1949x.com -x365x.com -xanga.com -x-art.com -xa.yimg.com -xbabe.com -xbookcn.com -xcafe.in -xcritic.com -xfm.pp.ru -xgmyd.com -xh4n.cn -xhamster.com -xiaochuncnjp.com -xiaohexie.com -xiaoma.org -xiezhua.com -xing.com -xinhuanet.org -xinmiao.com.hk -xinqimeng.over-blog.com -xinsheng.net -xinshijue.com -xinyubbs.net -xizang-zhiye.org -xjp.cc -xml-training-guide.com -xmovies.com -xmusic.fm -xnxx.com -xpdo.net -xpud.org -xskywalker.com -xtube.com -xuchao.net -xuchao.org -xuzhiyong.net -xuzhuoer.com -xvedios.com -xvideos.com -x-wall.org -xxbbx.com -x.xcity.jp -xxxx.com.au -xysblogs.org -xys.dxiong.com -xys.org -xyy69.com -xyy69.info -yahoo.cn -yahoo.com.hk -yam.com -yanghengjun.spaces.live.com -yasni.co.uk -yasukuni.or.jp -yatsen.gov.tw -ydy.com -yeelou.com -yeeyi.com -yegle.net -yezimary.spaces.live.com -yfrog.com -yhcw.net -yidio.com -yilubbs.com -yi.org -yipub.com -ym.backchina.com -yogichen.org -yong.hu -yorkbbs.ca -youdao.com -youjizz.com -youmaker.com -youpai.org -youporn.com -your-freedom.net -yousendit.com -youthbao.com -youthnetradio.org -youtu.be -youtubecn.com -youtube.com -youtube-nocookie.com -youversion.com -youxu.info -ytht.net -ytimg.com -yuanming.net -yuming.flnet.org -yunchao.net -yvesgeleyn.com -yvtc.gov.tw -yx51.net -yyii.org -yymaya.com -yzzk.com -zacebook.com -zannel.com -zaobao.com -zaobao.com.sg -zaozon.com -zarias.com -zattoo.com -zdnet.com.tw -zengjinyan.org -zengjinyan.spaces.live.com -zeutch.com -zgzcjj.net -zhanbin.net -zhao.jinhai.de -zhenghui.org -zhenlibu.info -zhinengluyou.com -zhllg.spaces.live.com -zh.m.wikipedia.org -zh.netlog.com -zhonggtuotese.net -zhongguotese.net -zhongmeng.org -zhongsou.com -zh.pokerstrategy.com -zhreader.com -zh-tw.justin.tv -zhuichaguoji.org -zh.uncyclopedia.wikia.com -zh.wikinews.org -zh.wikipedia.org -zh.wikisource.org -ziddu.com -zillionk.com -zinio.com -ziplib.com -zkaip.com -zmw.cn -zomobo.net -zonaeuropa.com -zootool.com -zoozle.net -zozotown.com -zshare.net -zsrhao.com -zuo.la -zuola.com -zvereff.com -zyzc9.com -zyzg.us \ No newline at end of file diff --git a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen-gfwlist.sh b/package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen-gfwlist.sh deleted file mode 100755 index d1a40ed7c..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen-gfwlist.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -e - -generate_china_banned() -{ - if [ ! -f /tmp/gfwlist.txt ]; then - wget-ssl --no-check-certificate https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt -O /tmp/gfwlist.b64 >&2 - cat /tmp/gfwlist.b64 | base64 -d > /tmp/gfwlist.txt - rm -f /tmp/gfwlist.b64 - fi - - cat /tmp/gfwlist.txt | sort -u | - sed 's#!.\+##; s#|##g; s#@##g; s#http:\/\/##; s#https:\/\/##;' | - sed '/\*/d; /apple\.com/d; /sina\.cn/d; /sina\.com\.cn/d; /baidu\.com/d; /byr\.cn/d; /jlike\.com/d; /weibo\.com/d; /zhongsou\.com/d; /youdao\.com/d; /sogou\.com/d; /so\.com/d; /soso\.com/d; /aliyun\.com/d; /taobao\.com/d; /jd\.com/d; /qq\.com/d' | - sed '/^[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+$/d' | - grep '^[0-9a-zA-Z\.-]\+$' | grep '\.' | sed 's#^\.\+##' | sort -u | - awk ' -BEGIN { prev = "________"; } { - cur = $0; - if (index(cur, prev) == 1 && substr(cur, 1 + length(prev) ,1) == ".") { - } else { - print cur; - prev = cur; - } -}' | sort -u - -} - - -generate_china_banned diff --git a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen_config.lua b/package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen_config.lua deleted file mode 100644 index 1b467eb9b..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/gen_config.lua +++ /dev/null @@ -1,169 +0,0 @@ ---[[ - Auto generate config for Project V - Author: @libc0607 -]]-- - -local conf_path, json_path = ... -conf_path = conf_path or "v2raypro" -json_path = json_path or "/tmp/config.json" - -local local_listen_port = 7070 - -local cjson = require "cjson.safe" -local ucursor = require "luci.model.uci".cursor() -local lip = require "luci.ip" - -local v2ray_stream_mode = ucursor:get(conf_path, "v2raypro", "network_type") -- tcp/kcp/ws - -function v2ray_get_conf_list(op) - local t = {} - for k, v in pairs(ucursor:get_list(conf_path, 'v2ray', op)) do - table.insert(t, v) - end - return t -end - -function check_addr_type(addr) - local ip = luci.ip.new(addr, 32) - if ip == nil then - return "domain" - elseif ip:is4() then - return "ipv4" - elseif ip:is6() then - return "ipv6" - end -end - -function get_ip_list_by_domain(domain) - local domain_list = {} - local cmd = io.popen("nslookup " .. domain .. " |grep Address | awk {'print $3'}") - for cmd_line in cmd:lines() do - if check_addr_type(cmd_line) == "ipv4" then - table.insert(domain_list, cmd_line) - elseif check_addr_type(cmd_line) == "ipv6" then - table.insert(domain_list, cmd_line) - end - end - return domain_list -end - -local v2ray = { - log = { - access = "", - error = "", - loglevel = "none" - }, - inbound = { - protocol = "dokodemo-door", - port = local_listen_port, - domainOverride = {"tls", "http"}, - address = "", - settings = { - network = "tcp,udp", - timeout = 30, - followRedirect = true - }, - }, - outbound = { - protocol = "vmess", - settings = { - vnext = { - [1] = { - address = ucursor:get(conf_path, "v2raypro", "address"), - port = tonumber(ucursor:get(conf_path, "v2raypro", "port")), - users = { - [1] = { - id = ucursor:get(conf_path, "v2raypro", "id"), - alterId = tonumber(ucursor:get(conf_path, "v2raypro", "alterId")), - security = ucursor:get(conf_path, "v2raypro", "security") - }, - }, - }, - }, - }, - streamSettings = { - network = ucursor:get(conf_path, "v2raypro", "network_type"), - security = (ucursor:get(conf_path, "v2raypro", "tls") == '1') and "tls" or "none", - tcpSettings = (v2ray_stream_mode == "tcp" and ucursor:get(conf_path, "v2raypro", "tcp_obfs") == "http") and { - connectionReuse = true, - header = { - type = ucursor:get(conf_path, "v2raypro", "tcp_obfs"), - request = { - version = "1.1", - method = "GET", - path = v2ray_get_conf_list('tcp_path'), - headers = { - Host = v2ray_get_conf_list('tcp_host'), - User_Agent = { - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36", - "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/53.0.2785.109 Mobile/14A456 Safari/601.1.46" - }, - Accept_Encoding = {"gzip, deflate"}, - Connection = {"keep-alive"}, - Pragma = "no-cache" - }, - }, - response = { - version = "1.1", - status = "200", - reason = "OK", - headers = { - Content_Type = {"application/octet-stream","video/mpeg"}, - Transfer_Encoding = {"chunked"}, - Connection= {"keep-alive"}, - Pragma = "no-cache" - }, - }, - } - } or nil, - - kcpSettings = (v2ray_stream_mode == "kcp") and { - mtu = tonumber(ucursor:get(conf_path, "v2raypro", "kcp_mtu")), - tti = tonumber(ucursor:get(conf_path, "v2raypro", "kcp_tti")), - uplinkCapacity = tonumber(ucursor:get(conf_path, "v2raypro", "kcp_uplink")), - downlinkCapacity = tonumber(ucursor:get(conf_path, "v2raypro", "kcp_downlink")), - congestion = (ucursor:get(conf_path, "v2raypro", "kcp_congestion") == "1") and true or false, - readBufferSize = tonumber(ucursor:get(conf_path, "v2raypro", "kcp_readbuf")), - writeBufferSize = tonumber(ucursor:get(conf_path, "v2raypro", "kcp_writebuf")), - header = { - type = ucursor:get(conf_path, "v2raypro", "kcp_obfs") - } - } or nil, - - wsSettings = (v2ray_stream_mode == "ws") and { - connectionReuse = true, - path = ucursor:get(conf_path, "v2raypro", "ws_path"), - headers = (ucursor:get(conf_path, "v2raypro", "ws_headers") ~= nil) and { - Host = ucursor:get(conf_path, "v2raypro", "ws_headers") - } or nil, - } or nil, - }, - mux = { - enabled = (ucursor:get(conf_path, "v2raypro", "mux") == "1") and true or false - }, - }, - dns = { - servers = { - "localhost" - }, - }, -} - --- Generate config json to -local json_raw = cjson.encode(v2ray) -local json_file = io.open(json_path, "w+") -io.output(json_file) -io.write(json_raw) -io.close(json_file) - --- change '_' to '-' -local keys_including_minus = {"User_Agent", "Content_Type", "Accept_Encoding", "Transfer_Encoding"} -local keys_corrected = {"User-Agent", "Content-Type", "Accept-Encoding", "Transfer-Encoding"} -for k, v in pairs(keys_including_minus) do - os.execute("sed -i 's/" ..v.. "/" ..keys_corrected[k].. "/g' " .. json_path) -end - --- change "\/" to "/" -os.execute("sed -i 's/\\\\\\//\\//g' ".. json_path) - -print("V2ray config generated at " .. json_path) diff --git a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/up-gfwlist.sh b/package/lean/luci-app-v2ray-pro/root/etc/v2ray/up-gfwlist.sh deleted file mode 100755 index 3e7ee5083..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/up-gfwlist.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -/etc/v2ray/gen-gfwlist.sh > /tmp/ol-gfw.txt - -if [ -s "/tmp/ol-gfw.txt" ];then - sort -u /etc/v2ray/base-gfwlist.txt /tmp/ol-gfw.txt > /tmp/china-banned - if ( ! cmp -s /tmp/china-banned /etc/gfwlist/china-banned );then - if [ -s "/tmp/china-banned" ];then - mv /tmp/china-banned /etc/gfwlist/china-banned - echo "Update GFW-List Done!" - fi - else - echo "GFW-List No Change!" - fi -fi - -rm -f /tmp/gfwlist.txt -rm -f /tmp/ol-gfw.txt - -/etc/init.d/v2raypro restart diff --git a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/v2ray-watchdog b/package/lean/luci-app-v2ray-pro/root/etc/v2ray/v2ray-watchdog deleted file mode 100755 index 671a24b01..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/v2ray/v2ray-watchdog +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") -#GOOGLE=$(ping -4 www.gstatic.com -c 1 -w 5| sed '1{s/[^(]*(//;s/).*//;q}') - -#iptables -t nat -I OUTPUT -p tcp -d $GOOGLE -j REDIRECT --to-port 7070 - -#sleep 3 - -/usr/bin/wget --spider --quiet --tries=1 --timeout=3 www.gstatic.com/generate_204 - -if [ "$?" == "0" ]; then - echo '['$LOGTIME'] V2Ray No Problem.' -else - /usr/bin/wget --spider --quiet --tries=1 --timeout=3 www.baidu.com - if [ "$?" == "0" ]; then - echo '['$LOGTIME'] Problem decteted, restarting V2Ray...' - /etc/init.d/v2raypro restart - else - echo '['$LOGTIME'] Network Problem. Do nothing.' - fi -fi - -#sleep 3 - -#iptables -t nat -D OUTPUT -p tcp -d $GOOGLE -j REDIRECT --to-port 7070 diff --git a/package/lean/luci-app-v2ray-pro/root/etc/v2raypro.include b/package/lean/luci-app-v2ray-pro/root/etc/v2raypro.include deleted file mode 100755 index 47da9eb97..000000000 --- a/package/lean/luci-app-v2ray-pro/root/etc/v2raypro.include +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -v2ray_enable=$(uci get v2raypro.@v2raypro[0].enabled 2>/dev/null) - -if [ $v2ray_enable -eq 1 ]; then - if pidof v2ray>/dev/null; then - /etc/init.d/v2raypro reload_rule - else - /etc/init.d/v2raypro restart - fi -fi diff --git a/package/lean/luci-app-vlmcsd/Makefile b/package/lean/luci-app-vlmcsd/Makefile deleted file mode 100644 index 3a854b208..000000000 --- a/package/lean/luci-app-vlmcsd/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI page for KMS -LUCI_DEPENDS:=+vlmcsd -PKG_VERSION:=1.0 -PKG_RELEASE:=2 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua b/package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua deleted file mode 100644 index f540847cb..000000000 --- a/package/lean/luci-app-vlmcsd/luasrc/controller/vlmcsd.lua +++ /dev/null @@ -1,19 +0,0 @@ -module("luci.controller.vlmcsd", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/vlmcsd") then - return - end - local page - page = entry({"admin", "services", "vlmcsd"}, cbi("vlmcsd"), _("KMS Server"), 100) - page.i18n = "vlmcsd" - page.dependent = true - entry({"admin","services","vlmcsd","status"},call("act_status")).leaf=true -end - -function act_status() - local e={} - e.running=luci.sys.call("pgrep vlmcsd >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua b/package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua deleted file mode 100644 index 98c3e16fb..000000000 --- a/package/lean/luci-app-vlmcsd/luasrc/model/cbi/vlmcsd.lua +++ /dev/null @@ -1,35 +0,0 @@ - - -m = Map("vlmcsd") -m.title = translate("vlmcsd config") -m.description = translate("A KMS Serever Emulator to active your Windows or Office") - -m:section(SimpleSection).template = "vlmcsd/vlmcsd_status" - -s = m:section(TypedSection, "vlmcsd") -s.addremove = false -s.anonymous = true - -s:tab("basic", translate("Basic Setting")) -enable = s:taboption("basic",Flag, "enabled", translate("Enable")) -enable.rmempty = false - -autoactivate = s:taboption("basic", Flag, "autoactivate", translate("Auto activate")) -autoactivate.rmempty = false - -s:tab("config", translate("Config File")) -config = s:taboption("config", Value, "config", translate("configfile"), translate("This file is /etc/vlmcsd.ini."), "") -config.template = "cbi/tvalue" -config.rows = 13 -config.wrap = "off" - -function config.cfgvalue(self, section) - return nixio.fs.readfile("/etc/vlmcsd.ini") -end - -function config.write(self, section, value) - value = value:gsub("\r\n?", "\n") - nixio.fs.writefile("/etc/vlmcsd.ini", value) -end - -return m diff --git a/package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm b/package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm deleted file mode 100644 index d711300e2..000000000 --- a/package/lean/luci-app-vlmcsd/luasrc/view/vlmcsd/vlmcsd_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    \ No newline at end of file diff --git a/package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po b/package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po deleted file mode 100644 index 1b7f2e39a..000000000 --- a/package/lean/luci-app-vlmcsd/po/zh-cn/vlmcsd.zh-cn.po +++ /dev/null @@ -1,38 +0,0 @@ -msgid "" -msgstr "" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "vlmcsd config" -msgstr "KMS服务器设置" - -msgid "KMS Server" -msgstr "KMS服务器" - -msgid "Basic Setting" -msgstr "基本设置" - -msgid "Config File" -msgstr "配置文件" - - -msgid "Vlmcsd is running." -msgstr "KMS 服务器运行中" - -msgid "Vlmcsd is not running." -msgstr "KMS 服务器未运行" - -msgid "Enable" -msgstr "启用" - -msgid "Auto activate" -msgstr "自动激活局域网客户端" - -msgid "configfile" -msgstr "配置文件" - -msgid "This file is /etc/vlmcsd.ini." -msgstr "这个文件在 /etc/vlmcsd.ini 下,可以增加新的产品主密钥。" diff --git a/package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd b/package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd deleted file mode 100644 index 8940d0c0d..000000000 --- a/package/lean/luci-app-vlmcsd/root/etc/config/vlmcsd +++ /dev/null @@ -1,5 +0,0 @@ - -config vlmcsd 'config' - option autoactivate '1' - option enabled '1' - diff --git a/package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd b/package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd deleted file mode 100755 index c2ebab1b3..000000000 --- a/package/lean/luci-app-vlmcsd/root/etc/init.d/vlmcsd +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (c) 2011-2015 OpenWrt.org - -START=90 - -get_config() -{ - config_get_bool enabled $1 enabled 0 - config_get autoactivate $1 autoactivate 1 -} - -start(){ - config_load vlmcsd - config_foreach get_config vlmcsd - [ $enabled -eq 0 ] && exit 0 - /usr/bin/vlmcsd -i /etc/vlmcsd.ini -L 0.0.0.0:1688 - - HOSTNAME=`uci get system.@system[0].hostname` - host_name=$(awk -F ',' '/^[ \t]*srv-host=_vlmcs\._tcp/{print $2}' /etc/dnsmasq.conf) - - echo $HOSTNAME - echo $host_name - - if [ "$HOSTNAME" != "$host_name" ];then - sed -i '/^[ \t]*srv-host=_vlmcs\._tcp/d' /etc/dnsmasq.conf - sed -i '$a\srv-host=_vlmcs\._tcp,'"$HOSTNAME"','"1688"',0,100' /etc/dnsmasq.conf - /etc/init.d/dnsmasq restart - fi - - echo "KMS Server has started." -} - -stop(){ - pid=`pgrep /usr/bin/vlmcsd` - kill -9 $pid - echo "KMS Server has stopped." -} - diff --git a/package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd b/package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd deleted file mode 100755 index c1b0882cc..000000000 --- a/package/lean/luci-app-vlmcsd/root/etc/uci-defaults/luci-app-vlmcsd +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@vlmcsd[-1] - add ucitrack vlmcsd - set ucitrack.@vlmcsd[-1].init=vlmcsd - commit ucitrack -EOF - -uci delete firewall.kms -uci add firewall rule -uci rename firewall.@rule[-1]="kms" -uci set firewall.@rule[-1].name="kms" -uci set firewall.@rule[-1].target="ACCEPT" -uci set firewall.@rule[-1].src="wan" -uci set firewall.@rule[-1].proto="tcp" -uci set firewall.@rule[-1].dest_port="1688" -uci commit firewall - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-vsftpd/Makefile b/package/lean/luci-app-vsftpd/Makefile deleted file mode 100644 index 97d181f01..000000000 --- a/package/lean/luci-app-vsftpd/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for VSFTPD -LUCI_DEPENDS:=+vsftpd-alt -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=2 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - diff --git a/package/lean/luci-app-vsftpd/luasrc/controller/vsftpd.lua b/package/lean/luci-app-vsftpd/luasrc/controller/vsftpd.lua deleted file mode 100644 index de44711dc..000000000 --- a/package/lean/luci-app-vsftpd/luasrc/controller/vsftpd.lua +++ /dev/null @@ -1,47 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2016 Weijie Gao - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -require("luci.sys") - -module("luci.controller.vsftpd", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/vsftpd") then - return - end - - entry({"admin", "nas"}, firstchild(), "NAS", 44).dependent = false - entry({"admin", "nas", "vsftpd"}, - alias("admin", "nas", "vsftpd", "general"), - _("FTP Server")) - - entry({"admin", "nas", "vsftpd", "general"}, - cbi("vsftpd/general"), - _("General Settings"), 10).leaf = true - - entry({"admin", "nas", "vsftpd", "users"}, - cbi("vsftpd/users"), - _("Virtual Users"), 20).leaf = true - - entry({"admin", "nas", "vsftpd", "anonymous"}, - cbi("vsftpd/anonymous"), - _("Anonymous User"), 30).leaf = true - - entry({"admin", "nas", "vsftpd", "log"}, - cbi("vsftpd/log"), - _("Log Settings"), 40).leaf = true - - entry({"admin", "nas", "vsftpd", "item"}, - cbi("vsftpd/item"), nil).leaf = true -end diff --git a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/anonymous.lua b/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/anonymous.lua deleted file mode 100644 index 3ebbb4ba9..000000000 --- a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/anonymous.lua +++ /dev/null @@ -1,44 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2016 Weijie Gao - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -m = Map("vsftpd", translate("FTP Server - Anonymous Settings")) - -sa = m:section(NamedSection, "anonymous", "anonymous", translate("Anonymous Settings")) - -o = sa:option(Flag, "enabled", translate("Enabled")) -o.default = false - -o = sa:option(Value, "username", translate("Username"), translate("An actual local user to handle anonymous user")) -o.default = "ftp" - -o = sa:option(Value, "root", translate("Root directory")) -o.default = "/home/ftp" - -o = sa:option(Value, "umask", translate("File mode umask")) -o.default = "022" - -o = sa:option(Value, "maxrate", translate("Max transmit rate"), translate("0 means no limitation")) -o.default = "0" - -o = sa:option(Flag, "writemkdir", translate("Enable write/mkdir")) -o.default = false - -o = sa:option(Flag, "upload", translate("Enable upload")) -o.default = false - -o = sa:option(Flag, "others", translate("Enable other rights"), translate("Include rename, deletion ...")) -o.default = false - - -return m diff --git a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/general.lua b/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/general.lua deleted file mode 100644 index 74dbcad6e..000000000 --- a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/general.lua +++ /dev/null @@ -1,114 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2016 Weijie Gao - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -m = Map("vsftpd", translate("FTP Server - General Settings")) - -sl = m:section(NamedSection, "listen", "listen", translate("Listening Settings")) - -o = sl:option(Flag, "enable4", translate("Enable IPv4")) -o.rmempty = false -o.default = true - -o = sl:option(Value, "ipv4", translate("IPv4 Address")) -o.datatype = "ip4addr" -o.default = "0.0.0.0" - -o = sl:option(Flag, "enable6", translate("Enable IPv6")) -o.rmempty = false - -o = sl:option(Value, "ipv6", translate("IPv6 Address")) -o.datatype = "ip6addr" -o.default = "::" - -o = sl:option(Value, "port", translate("Listen Port")) -o.datatype = "uinteger" -o.default = "21" - -o = sl:option(Value, "dataport", translate("Data Port")) -o.datatype = "uinteger" -o.default = "20" - - -sg = m:section(NamedSection, "global", "global", translate("Global Settings")) - -o = sg:option(Flag, "write", translate("Enable write"), translate("When disabled, all write request will give permission denied.")); -o.default = true - -o = sg:option(Flag, "download", translate("Enable download"), translate("When disabled, all download request will give permission denied.")); -o.default = true - -o = sg:option(Flag, "dirlist", translate("Enable directory list"), translate("When disabled, list commands will give permission denied.")) -o.default = true - -o = sg:option(Flag, "lsrecurse", translate("Allow directory recursely list")) - -o = sg:option(Flag, "dotfile", translate("Show dot files"), translate(". and .. are excluded.")); -o.default = true - -o = sg:option(Value, "umask", translate("File mode umask"), translate("Uploaded file mode will be 666 - <umask>; directory mode will be 777 - <umask>.")) -o.default = "022" - -o = sg:option(Value, "banner", translate("FTP Banner")) - -o = sg:option(Flag, "dirmessage", translate("Enable directory message"), translate("A message will be displayed when entering a directory.")) - -o = sg:option(Value, "dirmsgfile", translate("Directory message filename")) -o.default = ".message" - - -sl = m:section(NamedSection, "local", "local", translate("Local Users")) - -o = sl:option(Flag, "enabled", translate("Enable local user")) -o.rmempty = false - -o = sl:option(Value, "root", translate("Root directory"), translate("Leave empty will use user's home directory")) -o.default = "" - - -sc = m:section(NamedSection, "connection", "connection", translate("Connection Settings")) - -o = sc:option(Flag, "portmode", translate("Enable PORT mode")) -o = sc:option(Flag, "pasvmode", translate("Enable PASV mode")) - -o = sc:option(ListValue, "ascii", translate("ASCII mode")) -o:value("disabled", translate("Disabled")) -o:value("download", translate("Download only")) -o:value("upload", translate("Upload only")) -o:value("both", translate("Both download and upload")) -o.default = "both" - -o = sc:option(Value, "idletimeout", translate("Idle session timeout"), translate("in seconds")) -o.datatype = "uinteger" -o.default = "1800" -o = sc:option(Value, "conntimeout", translate("Connection timeout"), translate("in seconds")) -o.datatype = "uinteger" -o.default = "120" -o = sc:option(Value, "dataconntimeout", translate("Data connection timeout"), translate("in seconds")) -o.datatype = "uinteger" -o.default = "120" -o = sc:option(Value, "maxclient", translate("Max clients"), translate("0 means no limitation")) -o.datatype = "uinteger" -o.default = "0" -o = sc:option(Value, "maxperip", translate("Max clients per IP"), translate("0 means no limitation")) -o.datatype = "uinteger" -o.default = "0" -o = sc:option(Value, "maxrate", translate("Max transmit rate"), translate("in KB/s, 0 means no limitation")) -o.datatype = "uinteger" -o.default = "0" -o = sc:option(Value, "maxretry", translate("Max login fail count"), translate("Can not be zero, default is 3")) -o.datatype = "uinteger" -o.default = "3" - - -return m diff --git a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/item.lua b/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/item.lua deleted file mode 100644 index 2a0003c8b..000000000 --- a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/item.lua +++ /dev/null @@ -1,70 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2016 Weijie Gao - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -local sid = arg[1] -local utl = require "luci.util" - -m = Map("vsftpd", translate("FTP Server - Virtual User <new>")) - -m.redirect = luci.dispatcher.build_url("admin/nas/vsftpd/users") - -if m.uci:get("vsftpd", sid) ~= "user" then - luci.http.redirect(m.redirect) - return -end - -m.uci:foreach("vsftpd", "user", - function(s) - if s['.name'] == sid and s.username then - m.title = translatef("FTP Server - Virtual User %q", s.username) - return false - end - end) - -s = m:section(NamedSection, sid, "settings", translate("User Settings")) -s.addremove = false - -o = s:option(Value, "username", translate("Username")) -o.rmempty = false - -function o.validate(self, value) - if value == "" then - return nil, translate("Username cannot be empty") - end - return value -end - -o = s:option(Value, "password", translate("Password")) -o.password = true - -o = s:option(Value, "home", translate("Home directory")) -o.default = "/home/ftp" - -o = s:option(Value, "umask", translate("File mode umask")) -o.default = "022" - -o = s:option(Value, "maxrate", translate("Max transmit rate"), translate("0 means no limitation")) -o.default = "0" - -o = s:option(Flag, "writemkdir", translate("Enable write/mkdir")) -o.default = false - -o = s:option(Flag, "upload", translate("Enable upload")) -o.default = false - -o = s:option(Flag, "others", translate("Enable other rights"), translate("Include rename, deletion ...")) -o.default = false - - -return m diff --git a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/log.lua b/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/log.lua deleted file mode 100644 index 969ce817c..000000000 --- a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/log.lua +++ /dev/null @@ -1,29 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2016 Weijie Gao - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -m = Map("vsftpd", translate("FTP Server - Log Settings")) - -sl = m:section(NamedSection, "log", "log", translate("Log Settings")) - -o = sl:option(Flag, "syslog", translate("Enable syslog")) -o.default = false - -o = sl:option(Flag, "xreflog", translate("Enable file log")) -o.default = true - -o = sl:option(Value, "file", translate("Log file")) -o.default = "/var/log/vsftpd.log" - - -return m diff --git a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/users.lua b/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/users.lua deleted file mode 100644 index 2ffaf759d..000000000 --- a/package/lean/luci-app-vsftpd/luasrc/model/cbi/vsftpd/users.lua +++ /dev/null @@ -1,54 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2016 Weijie Gao - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- - -m = Map("vsftpd", translate("FTP Server - Virtual User Settings")) - -sv = m:section(NamedSection, "vuser", "vuser", translate("Settings")) - -o = sv:option(Flag, "enabled", translate("Enabled")) -o.default = false - -o = sv:option(Value, "username", translate("Username"), translate("An actual local user to handle virtual users")) -o.default = "ftp" - -s = m:section(TypedSection, "user", translate("User lists")) -s.template = "cbi/tblsection" -s.extedit = luci.dispatcher.build_url("admin/nas/vsftpd/item/%s") -s.addremove = true -s.anonymous = true - -function s.create(...) - local id = TypedSection.create(...) - luci.http.redirect(s.extedit % id) -end - -function s.remove(self, section) - return TypedSection.remove(self, section) -end - -o = s:option(DummyValue, "username", translate("Username")) -function o.cfgvalue(...) - local v = Value.cfgvalue(...) or ("<%s>" % translate("Unknown")) - return v -end -o.rmempty = false - -o = s:option(DummyValue, "home", translate("Home directory")) -function o.cfgvalue(...) - local v = Value.cfgvalue(...) or ("/home/ftp") - return v -end -o.rmempty = false - -return m diff --git a/package/lean/luci-app-vsftpd/po/zh-cn/vsftpd.po b/package/lean/luci-app-vsftpd/po/zh-cn/vsftpd.po deleted file mode 100644 index f8e3ba64a..000000000 --- a/package/lean/luci-app-vsftpd/po/zh-cn/vsftpd.po +++ /dev/null @@ -1,229 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-02-17 18:00+0800\n"\ -"Last-Translator: Weijie Gao \n" -"Language-Team: \n" -"Language: zh_CN\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Pootle 2.0.6\n" - -msgid "NAS" -msgstr "网络存储" - -msgid ". and .. are excluded." -msgstr ". 和 .. 将被忽略。" - -msgid "0 means no limitation" -msgstr "0 表明不限制" - -msgid "A message will be displayed when entering a directory." -msgstr "在进入一个新目录时将显示的消息" - -msgid "ASCII mode" -msgstr "ASCII 模式" - -msgid "Allow directory recursely list" -msgstr "允许递归列目录" - -msgid "An actual local user to handle anonymous user" -msgstr "承载匿名用户的本地用户" - -msgid "An actual local user to handle virtual users" -msgstr "承载虚拟用户的本地用户" - -msgid "Anonymous Settings" -msgstr "匿名用户设置" - -msgid "Anonymous User" -msgstr "匿名用户" - -msgid "Both download and upload" -msgstr "下载和上传" - -msgid "Can not be zero, default is 3" -msgstr "不能为 0,默认为 3" - -msgid "Connection Settings" -msgstr "连接设置" - -msgid "Connection timeout" -msgstr "连接超时" - -msgid "Data Port" -msgstr "数据端口" - -msgid "Data connection timeout" -msgstr "数据连接超时" - -msgid "Directory message filename" -msgstr "目录消息文件名" - -msgid "Download only" -msgstr "仅下载" - -msgid "Enable IPv4" -msgstr "启用 IPv4" - -msgid "Enable IPv6" -msgstr "启用 IPv6" - -msgid "Enable PASV mode" -msgstr "启用 PASV 模式" - -msgid "Enable PORT mode" -msgstr "启用 PORT 模式" - -msgid "Enable directory list" -msgstr "允许列目录" - -msgid "Enable directory message" -msgstr "启用目录消息" - -msgid "Enable download" -msgstr "允许下载" - -msgid "Enable file log" -msgstr "启用文件日志" - -msgid "Enable local user" -msgstr "启用本地用户" - -msgid "Enable other rights" -msgstr "允许其它权限" - -msgid "Enable syslog" -msgstr "启用系统日志" - -msgid "Enable upload" -msgstr "允许上传" - -msgid "Enable write" -msgstr "允许写" - -msgid "Enable write/mkdir" -msgstr "允许写/创建目录" - -msgid "FTP Banner" -msgstr "FTP 欢迎提示" - -msgid "FTP Server" -msgstr "FTP 服务器" - -msgid "FTP Server - Anonymous Settings" -msgstr "FTP 服务器 - 匿名用户设置" - -msgid "FTP Server - General Settings" -msgstr "FTP 服务器 - 常规设置" - -msgid "FTP Server - Log Settings" -msgstr "FTP 服务器 - 日志设置" - -msgid "FTP Server - Virtual User %q" -msgstr "FTP 服务器 - 虚拟用户 %q" - -msgid "FTP Server - Virtual User <new>" -msgstr "FTP 服务器 - 虚拟用户 <新用户>" - -msgid "FTP Server - Virtual User Settings" -msgstr "FTP 服务器 - 虚拟用户设置" - -msgid "File mode umask" -msgstr "文件权限掩码" - -msgid "General Settings" -msgstr "常规设置" - -msgid "Global Settings" -msgstr "全局设置" - -msgid "Home directory" -msgstr "主目录" - -msgid "IPv4 Address" -msgstr "IPv4 地址" - -msgid "IPv6 Address" -msgstr "IPv6 地址" - -msgid "Idle session timeout" -msgstr "空闲回话超时" - -msgid "Include rename, deletion ..." -msgstr "包括重命名、删除 ..." - -msgid "Leave empty will use user's home directory" -msgstr "留空将使用用户主目录" - -msgid "Listen Port" -msgstr "监听端口" - -msgid "Listening Settings" -msgstr "监听设置" - -msgid "Local Users" -msgstr "本地用户" - -msgid "Log Settings" -msgstr "日志设置" - -msgid "Log file" -msgstr "日志文件" - -msgid "Max clients" -msgstr "最大连接数" - -msgid "Max clients per IP" -msgstr "同一 IP 的最大连接数" - -msgid "Max login fail count" -msgstr "最大登录尝试数" - -msgid "Max transmit rate" -msgstr "最大传输速率" - -msgid "Root directory" -msgstr "根目录" - -msgid "Settings" -msgstr "设置" - -msgid "Show dot files" -msgstr "显示以点开头的文件 (隐藏文件)" - -msgid "Upload only" -msgstr "仅上传" - -msgid "Uploaded file mode will be 666 - <umask>; directory mode will be 777 - <umask>." -msgstr "上传的文件权限将被设置为 666 - <掩码>;目录权限将被设置为 777 - <掩码>。" - -msgid "User Settings" -msgstr "用户设置" - -msgid "User lists" -msgstr "用户列表" - -msgid "Username cannot be empty" -msgstr "用户名不能为空" - -msgid "When disabled, all download request will give permission denied." -msgstr "如果禁止,所有的下载请求都将被拒绝。" - -msgid "When disabled, all write request will give permission denied." -msgstr "如果禁止,所有的写类型请求都将被拒绝。" - -msgid "When disabled, list commands will give permission denied." -msgstr "如果禁止,列目录命令将被拒绝。" - -msgid "Virtual Users" -msgstr "虚拟用户" - -msgid "in seconds" -msgstr "单位为秒" - -msgid "in KB/s, 0 means no limitation" -msgstr "单位为 KB/s,0 表明不限制" diff --git a/package/lean/luci-app-vsftpd/root/etc/uci-defaults/luci-vsftpd b/package/lean/luci-app-vsftpd/root/etc/uci-defaults/luci-vsftpd deleted file mode 100755 index aa2f71a36..000000000 --- a/package/lean/luci-app-vsftpd/root/etc/uci-defaults/luci-vsftpd +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@vsftpd[-1] - add ucitrack vsftpd - set ucitrack.@vsftpd[-1].init=vsftpd - commit ucitrack -EOF - -rm -f /tmp/luci-vsftpd -exit 0 diff --git a/package/lean/luci-app-wrtbwmon/Makefile b/package/lean/luci-app-wrtbwmon/Makefile deleted file mode 100644 index 19dc241cc..000000000 --- a/package/lean/luci-app-wrtbwmon/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2016 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for Wrtbwmon -LUCI_DEPENDS:=+luci-app-nlbwmon -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=5 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - diff --git a/package/lean/luci-app-wrtbwmon/htdocs/luci-static/wrtbwmon.js b/package/lean/luci-app-wrtbwmon/htdocs/luci-static/wrtbwmon.js deleted file mode 100644 index 36812e723..000000000 --- a/package/lean/luci-app-wrtbwmon/htdocs/luci-static/wrtbwmon.js +++ /dev/null @@ -1,562 +0,0 @@ -var wrt = { - // variables for auto-update, interval is in seconds - scheduleTimeout: undefined, - updateTimeout: undefined, - isScheduled: true, - interval: 5, - // option on whether to show per host sub-totals - perHostTotals: false, - // variables for sorting - sortData: { - column: 7, - elId: 'thTotal', - dir: 'desc', - cache: {} - } -}; - -(function () { - var oldDate, oldValues = []; - - // find base path - var re = /(.*?admin\/nlbw\/[^/]+)/; - var basePath = window.location.pathname.match(re)[1]; - - //---------------------- - // HELPER FUNCTIONS - //---------------------- - - /** - * Human readable text for size - * @param size - * @returns {string} - */ - function getSize(size) { - var prefix = [' ', 'k', 'M', 'G', 'T', 'P', 'E', 'Z']; - var precision, base = 1000, pos = 0; - while (size > base) { - size /= base; - pos++; - } - if (pos > 2) precision = 1000; else precision = 1; - return (Math.round(size * precision) / precision) + ' ' + prefix[pos] + 'B'; - } - - /** - * Human readable text for date - * @param date - * @returns {string} - */ - function dateToString(date) { - return date.toString().substring(0, 24); - } - - /** - * Gets the string representation of the date received from BE - * @param value - * @returns {*} - */ - function getDateString(value) { - var tmp = value.split('_'), - str = tmp[0].split('-').reverse().join('-') + 'T' + tmp[1]; - return dateToString(new Date(str)); - } - - /** - * Create a `tr` element with content - * @param content - * @returns {string} - */ - function createTR(content) { - var res = '' + data[2], {title: data[1]}), - createTD(getSize(dlSpeed) + '/s', {right: true}), - createTD(getSize(upSpeed) + '/s', {right: true}), - createTD(getSize(data[3]), {right: true}), - createTD(getSize(data[4]), {right: true}), - createTD(getSize(data[5]), {right: true}), - createTD(getDateString(data[6])), - createTD(getDateString(data[7])) - ]; - - // display row data - var result = ''; - for (var k = 0; k < displayData.length; k++) { - result += displayData[k]; - } - result = createTR(result); - return [result, rowData]; - } - - /** - * Creates the HTML output based on the `data` and `totals` inputs - * @param data - * @param totals - * @returns {string} HTML output - */ - function getDisplayData(data, totals) { - var result = - createTH('客户端', {id: 'thClient'}) + - createTH('下载带宽', {id: 'thDownload'}) + - createTH('上传带宽', {id: 'thUpload'}) + - createTH('总下载流量', {id: 'thTotalDown'}) + - createTH('总上传流量', {id: 'thTotalUp'}) + - createTH('流量合计', {id: 'thTotal'}) + - createTH('首次上线时间', {id: 'thFirstSeen'}) + - createTH('最后上线时间', {id: 'thLastSeen'}); - result = createTR(result); - for (var k = 0; k < data.length; k++) { - result += data[k][0]; - } - var totalsRow = createTH('总计'); - for (var m = 0; m < totals.length; m++) { - var t = totals[m]; - totalsRow += createTD(getSize(t) + (m < 2 ? '/s' : ''), {right: true}); - } - result += createTR(totalsRow); - return result; - } - - /** - * Calculates per host sub-totals and adds them in the data input - * @param data The data input - */ - function aggregateHostTotals(data) { - if (!wrt.perHostTotals) return; - - var curHost = 0, insertAt = 1; - while (curHost < data.length && insertAt < data.length) { - // grab the current hostname/mac, and walk the data looking for rows with the same host/mac - var hostName = data[curHost][1][0].toLowerCase(); - for (var k = curHost + 1; k < data.length; k++) { - if (data[k][1][0].toLowerCase() === hostName) { - // this is another row for the same host, group it with any other rows for this host - data.splice(insertAt, 0, data.splice(k, 1)[0]); - insertAt++; - } - } - - // if we found more than one row for the host, add a subtotal row - if (insertAt > curHost + 1) { - var hostTotals = [data[curHost][1][0], '', '', 0, 0, 0, 0, 0]; - for (var i = curHost; i < insertAt && i < data.length; i++) { - for (var j = 3; j < hostTotals.length; j++) { - hostTotals[j] += data[i][1][j]; - } - } - var hostTotalRow = createTH(data[curHost][1][0] + '
    (host total)', {title: data[curHost][1][1]}); - for (var m = 3; m < hostTotals.length; m++) { - var t = hostTotals[m]; - hostTotalRow += createTD(getSize(t) + (m < 5 ? '/s' : ''), {right: true}); - } - hostTotalRow = createTR(hostTotalRow); - data.splice(insertAt, 0, [hostTotalRow, hostTotals]); - } - curHost = insertAt; - insertAt = curHost + 1; - } - } - - /** - * Sorting function used to sort the `data`. Uses the global sort settings - * @param x first item to compare - * @param y second item to compare - * @returns {number} 1 for desc, -1 for asc, 0 for equal - */ - function sortingFunction(x, y) { - // get data from global variable - var sortColumn = wrt.sortData.column, sortDirection = wrt.sortData.dir; - var a = x[1][sortColumn]; - var b = y[1][sortColumn]; - if (a === b) { - return 0; - } else if (sortDirection === 'desc') { - return a < b ? 1 : -1; - } else { - return a > b ? 1 : -1; - } - } - - /** - * Sets the relevant global sort variables and re-renders the table to apply the new sorting - * @param elId - * @param column - */ - function setSortColumn(elId, column) { - if (column === wrt.sortData.column) { - // same column clicked, switch direction - wrt.sortData.dir = wrt.sortData.dir === 'desc' ? 'asc' : 'desc'; - } else { - // change sort column - wrt.sortData.column = column; - // reset sort direction - wrt.sortData.dir = 'desc'; - } - wrt.sortData.elId = elId; - - // render table data from cache - renderTableData(wrt.sortData.cache.data, wrt.sortData.cache.totals); - } - - /** - * Registers the table events handlers for sorting when clicking the column headers - */ - function registerTableEventHandlers() { - // note these ordinals are into the data array, not the table output - document.getElementById('thClient').addEventListener('click', function () { - setSortColumn(this.id, 0); // hostname - }); - document.getElementById('thDownload').addEventListener('click', function () { - setSortColumn(this.id, 3); // dl speed - }); - document.getElementById('thUpload').addEventListener('click', function () { - setSortColumn(this.id, 4); // ul speed - }); - document.getElementById('thTotalDown').addEventListener('click', function () { - setSortColumn(this.id, 5); // total down - }); - document.getElementById('thTotalUp').addEventListener('click', function () { - setSortColumn(this.id, 6); // total up - }); - document.getElementById('thTotal').addEventListener('click', function () { - setSortColumn(this.id, 7); // total - }); - } - - /** - * Fetches and handles the updated `values` from the BE - * @param once If set to true, it re-schedules itself for execution based on selected interval - */ - function receiveData(once) { - var ajax = new XMLHttpRequest(); - ajax.onreadystatechange = function () { - // noinspection EqualityComparisonWithCoercionJS - if (this.readyState == 4 && this.status == 200) { - var re = /(var values = new Array[^;]*;)/, - match = ajax.responseText.match(re); - if (!match) { - handleError(); - } else { - // evaluate values - eval(match[1]); - //noinspection JSUnresolvedVariable - var v = values; - if (!v) { - handleError(); - } else { - handleValues(v); - // set old values - oldValues = v; - // set old date - oldDate = new Date(); - document.getElementById('updated').innerHTML = '数据更新时间 ' + dateToString(oldDate); - } - } - var int = wrt.interval; - if (!once && int > 0) reschedule(int); - } - }; - ajax.open('GET', basePath + '/usage_data', true); - ajax.send(); - } - - /** - * Registers DOM event listeners for user interaction - */ - function addEventListeners() { - document.getElementById('intervalSelect').addEventListener('change', function () { - var int = wrt.interval = this.value; - if (int > 0) { - // it is not scheduled, schedule it - if (!wrt.isScheduled) { - reschedule(int); - } - } else { - // stop the scheduling - stopSchedule(); - } - }); - - document.getElementById('resetDatabase').addEventListener('click', function () { - if (confirm('This will delete the database file. Are you sure?')) { - var ajax = new XMLHttpRequest(); - ajax.onreadystatechange = function () { - // noinspection EqualityComparisonWithCoercionJS - if (this.readyState == 4 && this.status == 204) { - location.reload(); - } - }; - ajax.open('GET', basePath + '/usage_reset', true); - ajax.send(); - } - }); - - document.getElementById('perHostTotals').addEventListener('change', function () { - wrt.perHostTotals = !wrt.perHostTotals; - }); - } - - //---------------------- - // AUTO-UPDATE - //---------------------- - - /** - * Stop auto-update schedule - */ - function stopSchedule() { - window.clearTimeout(wrt.scheduleTimeout); - window.clearTimeout(wrt.updateTimeout); - setUpdateMessage(''); - wrt.isScheduled = false; - } - - /** - * Start auto-update schedule - * @param seconds - */ - function reschedule(seconds) { - wrt.isScheduled = true; - seconds = seconds || 60; - updateSeconds(seconds); - wrt.scheduleTimeout = window.setTimeout(receiveData, seconds * 1000); - } - - /** - * Sets the text of the `#updating` element - * @param msg - */ - function setUpdateMessage(msg) { - document.getElementById('updating').innerHTML = msg; - } - - /** - * Updates the 'Updating in X seconds' message - * @param start - */ - function updateSeconds(start) { - setUpdateMessage('倒数 ' + start + ' 秒后刷新.'); - if (start > 0) { - wrt.updateTimeout = window.setTimeout(function () { - updateSeconds(start - 1); - }, 1000); - } - } - - //---------------------- - // END AUTO-UPDATE - //---------------------- - - /** - * Check for dependency, and if all is well, run callback - * @param cb Callback function - */ - function checkForDependency(cb) { - var ajax = new XMLHttpRequest(); - ajax.onreadystatechange = function () { - // noinspection EqualityComparisonWithCoercionJS - if (this.readyState == 4 && this.status == 200) { - // noinspection EqualityComparisonWithCoercionJS - if (ajax.responseText == "1") { - cb(); - } else { - alert("wrtbwmon is not installed!"); - } - } - }; - ajax.open('GET', basePath + '/check_dependency', true); - ajax.send(); - } - - checkForDependency(function () { - // register events - addEventListeners(); - // Main entry point - receiveData(); - }); - -})(); diff --git a/package/lean/luci-app-wrtbwmon/luasrc/controller/wrtbwmon.lua b/package/lean/luci-app-wrtbwmon/luasrc/controller/wrtbwmon.lua deleted file mode 100644 index 25909c846..000000000 --- a/package/lean/luci-app-wrtbwmon/luasrc/controller/wrtbwmon.lua +++ /dev/null @@ -1,43 +0,0 @@ -module("luci.controller.wrtbwmon", package.seeall) - -function index() - entry({"admin", "nlbw", "usage"}, alias("admin", "nlbw", "usage", "details"), _("Usage"), 60) - entry({"admin", "nlbw", "usage", "details"}, template("wrtbwmon"), _("Details"), 10).leaf=true - entry({"admin", "nlbw", "usage", "config"}, cbi("wrtbwmon/config"), _("Configuration"), 20).leaf=true - entry({"admin", "nlbw", "usage", "custom"}, form("wrtbwmon/custom"), _("User file"), 30).leaf=true - entry({"admin", "nlbw", "usage", "check_dependency"}, call("check_dependency")).dependent=true - entry({"admin", "nlbw", "usage", "usage_data"}, call("usage_data")).dependent=true - entry({"admin", "nlbw", "usage", "usage_reset"}, call("usage_reset")).dependent=true -end - -function usage_database_path() - local cursor = luci.model.uci.cursor() - if cursor:get("wrtbwmon", "general", "persist") == "1" then - return "/etc/config/usage.db" - else - return "/tmp/usage.db" - end -end - -function check_dependency() - local ret = "0" - if require("luci.model.ipkg").installed('iptables') then - ret = "1" - end - luci.http.prepare_content("text/plain") - luci.http.write(ret) -end - -function usage_data() - local db = usage_database_path() - local publish_cmd = "wrtbwmon publish " .. db .. " /tmp/usage.htm /etc/config/wrtbwmon.user" - local cmd = "wrtbwmon update " .. db .. " && " .. publish_cmd .. " && cat /tmp/usage.htm" - luci.http.prepare_content("text/html") - luci.http.write(luci.sys.exec(cmd)) -end - -function usage_reset() - local db = usage_database_path() - local ret = luci.sys.call("wrtbwmon update " .. db .. " && rm " .. db) - luci.http.status(204) -end diff --git a/package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/config.lua b/package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/config.lua deleted file mode 100644 index 10edc41cf..000000000 --- a/package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/config.lua +++ /dev/null @@ -1,18 +0,0 @@ -local m = Map("wrtbwmon", "详细设置") - -local s = m:section(NamedSection, "general", "wrtbwmon", "通用设置") - -local o = s:option(Flag, "persist", "写入数据库到ROM", - "把统计数据写入 /etc/config 中避免重启或者升级后丢失 (需要占用ROM空间并降低闪存寿命)") -o.rmempty = false - -function o.write(self, section, value) - if value == '1' then - luci.sys.call("mv /tmp/usage.db /etc/config/usage.db") - elseif value == '0' then - luci.sys.call("mv /etc/config/usage.db /tmp/usage.db") - end - return Flag.write(self, section ,value) -end - -return m diff --git a/package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/custom.lua b/package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/custom.lua deleted file mode 100644 index f8e3eeeb7..000000000 --- a/package/lean/luci-app-wrtbwmon/luasrc/model/cbi/wrtbwmon/custom.lua +++ /dev/null @@ -1,23 +0,0 @@ -local USER_FILE_PATH = "/etc/config/wrtbwmon.user" - -local fs = require "nixio.fs" - -local f = SimpleForm("wrtbwmon", - "自定义MAC地址对应的主机名", - "每一行的格式为 00:aa:bb:cc:ee:ff,username (不支持中文主机名)") - -local o = f:field(Value, "_custom") - -o.template = "cbi/tvalue" -o.rows = 20 - -function o.cfgvalue(self, section) - return fs.readfile(USER_FILE_PATH) -end - -function o.write(self, section, value) - value = value:gsub("\r\n?", "\n") - fs.writefile(USER_FILE_PATH, value) -end - -return f diff --git a/package/lean/luci-app-wrtbwmon/luasrc/view/wrtbwmon.htm b/package/lean/luci-app-wrtbwmon/luasrc/view/wrtbwmon.htm deleted file mode 100644 index 21bac7a45..000000000 --- a/package/lean/luci-app-wrtbwmon/luasrc/view/wrtbwmon.htm +++ /dev/null @@ -1,46 +0,0 @@ -<%+header%> -

    客户端实时流量监测 (暂不兼容SFE和FLOW加速)

    -

    - -

    -

    - - - -
    - - -
    -

    - - -
    Loading...
    - - -<%+footer%> diff --git a/package/lean/luci-app-wrtbwmon/po/zh-cn/wrtbwmon.po b/package/lean/luci-app-wrtbwmon/po/zh-cn/wrtbwmon.po deleted file mode 100644 index 47e8ea29d..000000000 --- a/package/lean/luci-app-wrtbwmon/po/zh-cn/wrtbwmon.po +++ /dev/null @@ -1,30 +0,0 @@ -msgid "Usage" -msgstr "实时流量监测" - -msgid "Details" -msgstr "详细信息" - -msgid "Configuration" -msgstr "配置" - -msgid "User file" -msgstr "自定义主机信息" - -msgid "Usage - Configuration" -msgstr "详细设置" - -msgid "General settings" -msgstr "通用设置" - -msgid "Persist database" -msgstr "写入数据库到硬盘" - -msgid "Check this to persist the database file under /etc/config. " -msgstr "把统计数据写入 /etc/config 中避免重启或者升级后丢失 (需要占用空间并降低ROM寿命)" - -msgid "Usage - Custom User File" -msgstr "自定义MAC地址对应的主机名" - -msgid "This file is used to match users with MAC addresses and it must have the following format: 00:aa:bb:cc:ee:ff,username" -msgstr "每一行的格式为 00:aa:bb:cc:ee:ff,username (不支持中文主机名)" - diff --git a/package/lean/luci-app-wrtbwmon/root/etc/config/wrtbwmon b/package/lean/luci-app-wrtbwmon/root/etc/config/wrtbwmon deleted file mode 100644 index 419270dba..000000000 --- a/package/lean/luci-app-wrtbwmon/root/etc/config/wrtbwmon +++ /dev/null @@ -1,4 +0,0 @@ - -config wrtbwmon 'general' - option persist '0' - diff --git a/package/lean/luci-app-wrtbwmon/root/etc/init.d/wrtbwmon b/package/lean/luci-app-wrtbwmon/root/etc/init.d/wrtbwmon deleted file mode 100755 index d57c09ae1..000000000 --- a/package/lean/luci-app-wrtbwmon/root/etc/init.d/wrtbwmon +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh /etc/rc.common -# -# start/stop wrtbwmon bandwidth monitor - -### BEGIN INIT INFO -# Provides: wrtbwmon -# Required-Start: $network $local_fs $remote_fs -# Required-Stop: $local_fs $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: iptables-based bandwidth monitor -### END INIT INFO - -START=91 - -start(){ - /usr/sbin/wrtbwmon setup /tmp/usage.db -} - -stop(){ - /usr/sbin/wrtbwmon remove -} diff --git a/package/lean/luci-app-wrtbwmon/root/etc/uci-defaults/luci-wrtbwmon b/package/lean/luci-app-wrtbwmon/root/etc/uci-defaults/luci-wrtbwmon deleted file mode 100755 index c86001a6f..000000000 --- a/package/lean/luci-app-wrtbwmon/root/etc/uci-defaults/luci-wrtbwmon +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -/etc/init.d/wrtbwmon enable -/etc/init.d/wrtbwmon start -exit 0 diff --git a/package/lean/luci-app-wrtbwmon/root/usr/sbin/readDB.awk b/package/lean/luci-app-wrtbwmon/root/usr/sbin/readDB.awk deleted file mode 100755 index fe67e4ae8..000000000 --- a/package/lean/luci-app-wrtbwmon/root/usr/sbin/readDB.awk +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/awk - -function inInterfaces(host){ - return(interfaces ~ "(^| )"host"($| )") -} - -function newRule(arp_ip, - ipt_cmd){ - # checking for existing rules shouldn't be necessary if newRule is - # always called after db is read, arp table is read, and existing - # iptables rules are read. - ipt_cmd="iptables -t mangle -j RETURN -s " arp_ip - system(ipt_cmd " -C RRDIPT_FORWARD 2>/dev/null || " ipt_cmd " -A RRDIPT_FORWARD") - ipt_cmd="iptables -t mangle -j RETURN -d " arp_ip - system(ipt_cmd " -C RRDIPT_FORWARD 2>/dev/null || " ipt_cmd " -A RRDIPT_FORWARD") -} - -function total(i){ - return(bw[i "/in"] + bw[i "/out"]) -} - -function date( cmd, d){ - cmd="date +%d-%m-%Y_%H:%M:%S" - cmd | getline d - close(cmd) - #!@todo could start a process with "while true; do date ...; done" - return(d) -} - -BEGIN { - od="" - fid=1 - debug=0 - rrd=0 -} - -/^#/ { # get DB filename - FS="," - dbFile=FILENAME - next -} - -# data from database; first file -FNR==NR { #!@todo this doesn't help if the DB file is empty. - if($2 == "NA") - #!@todo could get interface IP here - n=$1 - else - n=$2 - - hosts[n] = "" # add this host/interface to hosts - mac[n] = $1 - ip[n] = $2 - inter[n] = $3 - bw[n "/in"] = $4 - bw[n "/out"] = $5 - firstDate[n] = $7 - lastDate[n] = $8 - next -} - -# not triggered on the first file -FNR==1 { - FS=" " - fid++ #!@todo use fid for all files; may be problematic for empty files - next -} - -# arp: ip hw flags hw_addr mask device -fid==2 { - #!@todo regex match IPs and MACs for sanity - arp_ip = $1 - arp_flags = $3 - arp_mac = $4 - arp_dev = $6 - if(arp_flags != "0x0" && !(arp_ip in ip)){ - if(debug) - print "new host:", arp_ip, arp_flags > "/dev/stderr" - hosts[arp_ip] = "" - mac[arp_ip] = arp_mac - ip[arp_ip] = arp_ip - inter[arp_ip] = arp_dev - bw[arp_ip "/in"] = bw[arp_ip "/out"] = 0 - firstDate[arp_ip] = lastDate[arp_ip] = date() - } - next -} - -#!@todo could use mangle chain totals or tailing "unnact" rules to -# account for data for new hosts from their first presence on the -# network to rule creation. The "unnact" rules would have to be -# maintained at the end of the list, and new rules would be inserted -# at the top. - -# skip line -# read the chain name and deal with the data accordingly -fid==3 && $1 == "Chain"{ - rrd=$2 ~ /RRDIPT_.*/ - next -} - -fid==3 && rrd && (NF < 9 || $1=="pkts"){ next } - -fid==3 && rrd { # iptables input - if($6 != "*"){ - m=$6 - n=m "/out" - } else if($7 != "*"){ - m=$7 - n=m "/in" - } else if($8 != "0.0.0.0/0"){ - m=$8 - n=m "/out" - } else { # $9 != "0.0.0.0/0" - m=$9 - n=m "/in" - } - - # remove host from array; any hosts left in array at END get new - # iptables rules - - #!@todo this deletes a host if any rule exists; if only one - # directional rule is removed, this will not remedy the situation - delete hosts[m] - - if($2 > 0){ # counted some bytes - if(mode == "diff" || mode == "noUpdate") - print n, $2 - if(mode!="noUpdate"){ - if(inInterfaces(m)){ # if label is an interface - if(!(m in mac)){ # if label was not in db (also not in - # arp table, but interfaces won't be - # there anyway) - firstDate[m] = date() - mac[m] = inter[m] = m - ip[m] = "NA" - bw[m "/in"]=bw[m "/out"]= 0 - } - } - bw[n]+=$2 - lastDate[m] = date() - } - } -} - -END { - if(mode=="noUpdate") exit - close(dbFile) - system("rm -f " dbFile) - print "#mac,ip,iface,in,out,total,first_date,last_date" > dbFile - OFS="," - for(i in mac) - print mac[i], ip[i], inter[i], bw[i "/in"], bw[i "/out"], total(i), firstDate[i], lastDate[i] > dbFile - close(dbFile) - # for hosts without rules - for(host in hosts) if(!inInterfaces(host)) newRule(host) -} diff --git a/package/lean/luci-app-wrtbwmon/root/usr/sbin/wrtbwmon b/package/lean/luci-app-wrtbwmon/root/usr/sbin/wrtbwmon deleted file mode 100755 index b2c0b9a07..000000000 --- a/package/lean/luci-app-wrtbwmon/root/usr/sbin/wrtbwmon +++ /dev/null @@ -1,301 +0,0 @@ -#!/bin/sh -# -# wrtbwmon: traffic logging tool for routers -# -# Peter Bailey (peter.eldridge.bailey+wrtbwmon AT gmail.com) -# -# Based on work by: -# Emmanuel Brucy (e.brucy AT qut.edu.au) -# Fredrik Erlandsson (erlis AT linux.nu) -# twist - http://wiki.openwrt.org/RrdTrafficWatch - -trap "rm -f /tmp/*_$$.tmp; kill $$" INT -binDir=/usr/sbin -dataDir=/usr/share/wrtbwmon -lockDir=/tmp/wrtbwmon.lock -pidFile=$lockDir/pid -networkFuncs=/lib/functions/network.sh -uci=`which uci 2>/dev/null` -nslookup=`which nslookup 2>/dev/null` -nvram=`which nvram 2>/dev/null` - -chains='INPUT OUTPUT FORWARD' -DEBUG= -interfaces='eth0 tun0' # in addition to detected WAN -DB=$2 -mode= - -# DNS server for reverse lookups provided in "DNS". -# don't perform reverse DNS lookups by default -DO_RDNS=${DNS-} - -header="#mac,ip,iface,in,out,total,first_date,last_date" - -createDbIfMissing() -{ - [ ! -f "$DB" ] && echo $header > "$DB" -} - -checkDbArg() -{ - [ -z "$DB" ] && echo "ERROR: Missing argument 2 (database file)" && exit 1 -} - -checkDB() -{ - [ ! -f "$DB" ] && echo "ERROR: $DB does not exist" && exit 1 - [ ! -w "$DB" ] && echo "ERROR: $DB is not writable" && exit 1 -} - -checkWAN() -{ - [ -z "$wan" ] && echo "Warning: failed to detect WAN interface." -} - -lookup() -{ - MAC=$1 - IP=$2 - userDB=$3 - for USERSFILE in $userDB /tmp/dhcp.leases /tmp/dnsmasq.conf /etc/dnsmasq.conf /etc/hosts; do - [ -e "$USERSFILE" ] || continue - case $USERSFILE in - /tmp/dhcp.leases ) - USER=$(grep -i "$MAC" $USERSFILE | cut -f4 -s -d' ') - ;; - /etc/hosts ) - USER=$(grep "^$IP " $USERSFILE | cut -f2 -s -d' ') - ;; - * ) - USER=$(grep -i "$MAC" "$USERSFILE" | cut -f2 -s -d,) - ;; - esac - [ "$USER" = "*" ] && USER= - [ -n "$USER" ] && break - done - if [ -n "$DO_RDNS" -a -z "$USER" -a "$IP" != "NA" -a -n "$nslookup" ]; then - USER=`$nslookup $IP $DNS | awk '!/server can/{if($4){print $4; exit}}' | sed -re 's/[.]$//'` - fi - [ -z "$USER" ] && USER=${MAC} - echo $USER -} - -detectIF() -{ - if [ -f "$networkFuncs" ]; then - IF=`. $networkFuncs; network_get_device netdev $1; echo $netdev` - [ -n "$IF" ] && echo $IF && return - fi - - if [ -n "$uci" -a -x "$uci" ]; then - IF=`$uci get network.${1}.ifname 2>/dev/null` - [ $? -eq 0 -a -n "$IF" ] && echo $IF && return - fi - - if [ -n "$nvram" -a -x "$nvram" ]; then - IF=`$nvram get ${1}_ifname 2>/dev/null` - [ $? -eq 0 -a -n "$IF" ] && echo $IF && return - fi -} - -detectLAN() -{ - [ -e /sys/class/net/br-lan ] && echo br-lan && return - lan=$(detectIF lan) - [ -n "$lan" ] && echo $lan && return -} - -detectWAN() -{ - [ -n "$WAN_IF" ] && echo $WAN_IF && return - wan=$(detectIF wan) - [ -n "$wan" ] && echo $wan && return - wan=$(ip route show 2>/dev/null | grep default | sed -re '/^default/ s/default.*dev +([^ ]+).*/\1/') - [ -n "$wan" ] && echo $wan && return - [ -f "$networkFuncs" ] && wan=$(. $networkFuncs; network_find_wan wan; echo $wan) - [ -n "$wan" ] && echo $wan && return -} - -lock() -{ - attempts=0 - while [ $attempts -lt 10 ]; do - mkdir $lockDir 2>/dev/null && break - attempts=$((attempts+1)) - pid=`cat $pidFile 2>/dev/null` - if [ -n "$pid" ]; then - if [ -d "/proc/$pid" ]; then - [ -n "$DEBUG" ] && echo "WARNING: Lockfile detected but process $(cat $pidFile) does not exist !" - rm -rf $lockDir - else - sleep 1 - fi - fi - done - mkdir $lockDir 2>/dev/null - echo $$ > $pidFile - [ -n "$DEBUG" ] && echo $$ "got lock after $attempts attempts" - trap '' INT -} - -unlock() -{ - rm -rf $lockDir - [ -n "$DEBUG" ] && echo $$ "released lock" - trap "rm -f /tmp/*_$$.tmp; kill $$" INT -} - -# chain -newChain() -{ - chain=$1 - # Create the RRDIPT_$chain chain (it doesn't matter if it already exists). - iptables -t mangle -N RRDIPT_$chain 2> /dev/null - - # Add the RRDIPT_$chain CHAIN to the $chain chain if not present - iptables -t mangle -C $chain -j RRDIPT_$chain 2>/dev/null - if [ $? -ne 0 ]; then - [ -n "$DEBUG" ] && echo "DEBUG: iptables chain misplaced, recreating it..." - iptables -t mangle -I $chain -j RRDIPT_$chain - fi -} - -# chain tun -newRuleIF() -{ - chain=$1 - IF=$2 - - #!@todo test - if [ "$chain" = "OUTPUT" ]; then - cmd="iptables -t mangle -o $IF -j RETURN" - eval $cmd " -C RRDIPT_$chain 2>/dev/null" || eval $cmd " -A RRDIPT_$chain" - elif [ "$chain" = "INPUT" ]; then - cmd="iptables -t mangle -i $IF -j RETURN" - eval $cmd " -C RRDIPT_$chain 2>/dev/null" || eval $cmd " -A RRDIPT_$chain" - fi -} - -update() -{ - #!@todo could let readDB.awk handle this; that would place header - #!info in fewer places - createDbIfMissing - - checkDB - checkWAN - - > /tmp/iptables_$$.tmp - lock - # only zero our own chains - for chain in $chains; do - iptables -nvxL RRDIPT_$chain -t mangle -Z >> /tmp/iptables_$$.tmp - done - # the iptables and readDB commands have to be separate. Otherwise, - # they will fight over iptables locks - awk -v mode="$mode" -v interfaces=\""$interfaces"\" -f $binDir/readDB.awk \ - $DB \ - /proc/net/arp \ - /tmp/iptables_$$.tmp - unlock -} - -############################################################ - -case $1 in - "dump" ) - checkDbArg - lock - tr ',' '\t' < "$DB" - unlock - ;; - - "update" ) - checkDbArg - wan=$(detectWAN) - interfaces="$interfaces $wan" - update - rm -f /tmp/*_$$.tmp - exit - ;; - - "publish" ) - checkDbArg - [ -z "$3" ] && echo "ERROR: Missing argument 3 (output html file)" && exit 1 - - # sort DB - lock - - # busybox sort truncates numbers to 32 bits - grep -v '^#' $DB | awk -F, '{OFS=","; a=sprintf("%f",$4/1e6); $4=""; print a,$0}' | tr -s ',' | sort -rn | awk -F, '{OFS=",";$1=sprintf("%f",$1*1e6);print}' > /tmp/sorted_$$.tmp - - # create HTML page - rm -f $3.tmp - cp $dataDir/usage.htm1 $3.tmp - - #!@todo fix publishing - while IFS=, read PEAKUSAGE_IN MAC IP IFACE PEAKUSAGE_OUT TOTAL FIRSTSEEN LASTSEEN - do - echo " -new Array(\"$(lookup $MAC $IP $4)\",\"$MAC\",\"$IP\", -$PEAKUSAGE_IN,$PEAKUSAGE_OUT,$TOTAL,\"$FIRSTSEEN\",\"$LASTSEEN\")," >> $3.tmp - done < /tmp/sorted_$$.tmp - echo "0);" >> $3.tmp - - sed "s/(date)/`date`/" < $dataDir/usage.htm2 >> $3.tmp - mv $3.tmp $3 - - unlock - - #Free some memory - rm -f /tmp/*_$$.tmp - ;; - - "setup" ) - checkDbArg - [ -w "$DB" ] && echo "Warning: using existing $DB" - createDbIfMissing - - for chain in $chains; do - newChain $chain - done - - #lan=$(detectLAN) - wan=$(detectWAN) - checkWAN - interfaces="$interfaces $wan" - - # track local data - for chain in INPUT OUTPUT; do - for interface in $interfaces; do - [ -n "$interface" ] && [ -e "/sys/class/net/$interface" ] && newRuleIF $chain $interface - done - done - - # this will add rules for hosts in arp table - update - - rm -f /tmp/*_$$.tmp - ;; - - "remove" ) - iptables-save | grep -v RRDIPT | iptables-restore - rm -rf "$lockDir" - ;; - - *) - echo \ -"Usage: $0 {setup|update|publish|remove} [options...] -Options: - $0 setup database_file - $0 update database_file - $0 publish database_file path_of_html_report [user_file] -Examples: - $0 setup /tmp/usage.db - $0 update /tmp/usage.db - $0 publish /tmp/usage.db /www/user/usage.htm /jffs/users.txt - $0 remove -Note: [user_file] is an optional file to match users with MAC addresses. - Its format is \"00:MA:CA:DD:RE:SS,username\", with one entry per line." - ;; -esac diff --git a/package/lean/luci-app-wrtbwmon/root/usr/share/wrtbwmon/usage.htm1 b/package/lean/luci-app-wrtbwmon/root/usr/share/wrtbwmon/usage.htm1 deleted file mode 100644 index 1f0c342a7..000000000 --- a/package/lean/luci-app-wrtbwmon/root/usr/share/wrtbwmon/usage.htm1 +++ /dev/null @@ -1,23 +0,0 @@ -Traffic - -

    Total Usage:

    - - - - - - - - - -
    UserDownloadUploadTotalFirst seenLast seen
    -
    This page was generated on (date) - diff --git a/package/lean/luci-app-xlnetacc/Makefile b/package/lean/luci-app-xlnetacc/Makefile deleted file mode 100644 index f60c4e486..000000000 --- a/package/lean/luci-app-xlnetacc/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=luci-app-xlnetacc -PKG_VERSION:=1.0.3 -PKG_RELEASE:=9 - -PKG_LICENSE:=GPLv2 -PKG_MAINTAINER:=Sense - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=luci - CATEGORY:=LuCI - SUBMENU:=3. Applications - TITLE:=LuCI Support for XLNetAcc - PKGARCH:=all - DEPENDS:=+jshn +wget +openssl-util -endef - -define Package/$(PKG_NAME)/description - LuCI Support for XLNetAcc. -endef - -define Build/Prepare - $(foreach po,$(wildcard ${CURDIR}/files/luci/i18n/*.po), \ - po2lmo $(po) $(PKG_BUILD_DIR)/$(patsubst %.po,%.lmo,$(notdir $(po)));) -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/$(PKG_NAME)/postinst -#!/bin/sh -if [ -z "$${IPKG_INSTROOT}" ]; then - ( . /etc/uci-defaults/luci-xlnetacc ) && rm -f /etc/uci-defaults/luci-xlnetacc -fi -exit 0 -endef - -define Package/$(PKG_NAME)/conffiles - /etc/config/xlnetacc -endef - -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n - $(INSTALL_DATA) $(PKG_BUILD_DIR)/xlnetacc.*.lmo $(1)/usr/lib/lua/luci/i18n/ - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller - $(INSTALL_DATA) ./files/luci/controller/*.lua $(1)/usr/lib/lua/luci/controller/ - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi - $(INSTALL_DATA) ./files/luci/model/cbi/*.lua $(1)/usr/lib/lua/luci/model/cbi/ - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/xlnetacc - $(INSTALL_DATA) ./files/luci/view/xlnetacc/*.htm $(1)/usr/lib/lua/luci/view/xlnetacc/ - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_CONF) ./files/root/etc/config/xlnetacc $(1)/etc/config/xlnetacc - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) ./files/root/etc/init.d/xlnetacc $(1)/etc/init.d/xlnetacc - $(INSTALL_DIR) $(1)/etc/hotplug.d/iface - $(INSTALL_BIN) ./files/root/etc/hotplug.d/iface/95-xlnetacc $(1)/etc/hotplug.d/iface/95-xlnetacc - $(INSTALL_DIR) $(1)/etc/uci-defaults - $(INSTALL_BIN) ./files/root/etc/uci-defaults/luci-xlnetacc $(1)/etc/uci-defaults/luci-xlnetacc - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) ./files/root/usr/bin/xlnetacc.sh $(1)/usr/bin/xlnetacc.sh -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/lean/luci-app-xlnetacc/files/luci/controller/xlnetacc.lua b/package/lean/luci-app-xlnetacc/files/luci/controller/xlnetacc.lua deleted file mode 100644 index ab9d92947..000000000 --- a/package/lean/luci-app-xlnetacc/files/luci/controller/xlnetacc.lua +++ /dev/null @@ -1,47 +0,0 @@ -module("luci.controller.xlnetacc", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/xlnetacc") then - return - end - - entry({"admin", "services", "xlnetacc"}, - firstchild(), _("XLNetAcc")).dependent = false - - entry({"admin", "services", "xlnetacc", "general"}, - cbi("xlnetacc"), _("Settings"), 1) - - entry({"admin", "services", "xlnetacc", "log"}, - template("xlnetacc/logview"), _("Log"), 2) - - entry({"admin", "services", "xlnetacc", "status"}, call("action_status")) - entry({"admin", "services", "xlnetacc", "logdata"}, call("action_log")) -end - -local function is_running() - return luci.sys.call("(ps | grep xlnetacc.sh | grep -v 'grep') >/dev/null" ) == 0 -end - -function action_status() - luci.http.prepare_content("application/json") - luci.http.write_json({ - run_state = is_running(), - down_state = nixio.fs.readfile("/var/state/xlnetacc_down_state") or "", - up_state = nixio.fs.readfile("/var/state/xlnetacc_up_state") or "" - }) -end - -function action_log() - local uci = require "luci.model.uci".cursor() - local util = require "luci.util" - local log_data = { } - - log_data.syslog = util.trim(util.exec("logread | grep xlnetacc")) - if uci:get("xlnetacc", "general", "logging") ~= "0" then - log_data.client = nixio.fs.readfile("/var/log/xlnetacc.log") or "" - end - uci:unload("xlnetacc") - - luci.http.prepare_content("application/json") - luci.http.write_json(log_data) -end diff --git a/package/lean/luci-app-xlnetacc/files/luci/i18n/xlnetacc.zh-cn.lmo b/package/lean/luci-app-xlnetacc/files/luci/i18n/xlnetacc.zh-cn.lmo deleted file mode 100644 index 3c0764141954a380428348ea22eea4117de48497..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmZWnZD>_uHo!VT}TvJ>Ht3?qfXqlVRd(OS>w1px1V-9>yuBAZ(hdj^wJnz>z z*T}g?ThlamX;g_C1(>zSCN*3kD*C9TQl-PliH4YeSm%zQ1^&RjAfG@4;;m(5A2C}T~;vQEIlZd0+TZiwam=JbY? zqH5D*%#b_uKF{P{tiemAh}oC<6EqO#yH33kRYV#{e-M*Bdd$W5Yoy&Rv@Xe7{4DIH z`S3)x0lle^q@v&Ob^$QOtzXRGPI1NXAdcHN&DcA3oi$2@1vLL8 zVxj93S(iCCYfAB~?l^5rqN<^)Wo2cA$${c;iuKO3)R$)A6gm>3U+L5PqGr}aHuC;G zF)g0ij-zkxl_*MZM=6a_aN>p%As^b6eo*|p`F z+U$4{bSKvrl}~r|4z5}Wy%gMD@^9={wP;}l_zG}qsdZ%OkF~FA;jaX@uNOP26N|#1 zgNxvfomHv9mopzY;ODwycd&Y_V$wUe-TD2r-7Og&EKRQF_c_G<_l7+Sgs~@I z0YAoZ{PD$_Uy7IAEP;-liR0clY0h|1kJ${P({DxSm*C diff --git a/package/lean/luci-app-xlnetacc/files/luci/i18n/xlnetacc.zh-cn.po b/package/lean/luci-app-xlnetacc/files/luci/i18n/xlnetacc.zh-cn.po deleted file mode 100644 index 80c6b9d23..000000000 --- a/package/lean/luci-app-xlnetacc/files/luci/i18n/xlnetacc.zh-cn.po +++ /dev/null @@ -1,92 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8\n" - -msgid "XLNetAcc" -msgstr "迅雷快鸟" - -msgid "XLNetAcc is a Thunder joint broadband operators launched a commitment to help users solve the low broadband, slow Internet access, poor Internet experience of professional-grade broadband upgrade software." -msgstr "迅雷快鸟是迅雷联合宽带运营商推出的一款致力于帮助用户解决宽带低、网速慢、上网体验差的专业级宽带加速软件。" - -msgid "Settings" -msgstr "设置" - -msgid "Log" -msgstr "日志" - -msgid "Running Status" -msgstr "运行状态" - -msgid "XLNetAcc Running Status" -msgstr "快鸟运行状态" - -msgid "DownLink Upgrade Status" -msgstr "下行提速状态" - -msgid "UpLink Upgrade Status" -msgstr "上行提速状态" - -msgid "RUNNING" -msgstr "运行中" - -msgid "NOT RUNNING" -msgstr "未运行" - -msgid "No upgrade information" -msgstr "暂无提速信息" - -msgid "General Settings" -msgstr "基本设置" - -msgid "Enabled" -msgstr "启用" - -msgid "Enable DownLink Upgrade" -msgstr "开启下行提速" - -msgid "Enable UpLink Upgrade" -msgstr "开启上行提速" - -msgid "Enable Logging" -msgstr "启用日志记录" - -msgid "Enable verbose logging" -msgstr "启用详细日志" - -msgid "Upgrade interface" -msgstr "指定提速接口" - -msgid "XLNetAcc account" -msgstr "迅雷快鸟帐号" - -msgid "XLNetAcc password" -msgstr "迅雷快鸟密码" - -msgid "Does not store the plaintext password, automatically emptied after start." -msgstr "不存储明文密码,启动后自动清空。" - -msgid "Encrypted password" -msgstr "加密后的密码" - -msgid "Auto-generate in accordance with the plaintext password, do not modify it!" -msgstr "根据明文密码自动生成,请勿修改!" - -msgid "Log Data" -msgstr "日志数据" - -msgid "Loading..." -msgstr "正在加载..." - -msgid "Refresh every 5 seconds." -msgstr "每 5 秒刷新。" - -msgid "syslog:" -msgstr "系统日志:" - -msgid "log file:" -msgstr "日志文件:" - -msgid "No log data." -msgstr "无日志数据。" - -msgid "Error get log data." -msgstr "获取日志数据失败。" diff --git a/package/lean/luci-app-xlnetacc/files/luci/model/cbi/xlnetacc.lua b/package/lean/luci-app-xlnetacc/files/luci/model/cbi/xlnetacc.lua deleted file mode 100644 index 9bef249ce..000000000 --- a/package/lean/luci-app-xlnetacc/files/luci/model/cbi/xlnetacc.lua +++ /dev/null @@ -1,36 +0,0 @@ -local m, s, o -local uci = luci.model.uci.cursor() - -m = Map("xlnetacc", "%s - %s" %{translate("XLNetAcc"), translate("Settings")}, translate("XLNetAcc is a Thunder joint broadband operators launched a commitment to help users solve the low broadband, slow Internet access, poor Internet experience of professional-grade broadband upgrade software.")) -m:append(Template("xlnetacc/status")) - -s = m:section(NamedSection, "general", "general", translate("General Settings")) -s.anonymous = true -s.addremove = false - -o = s:option(Flag, "enabled", translate("Enabled")) -o.rmempty = false - -o = s:option(Flag, "down_acc", translate("Enable DownLink Upgrade")) - -o = s:option(Flag, "up_acc", translate("Enable UpLink Upgrade")) - -o = s:option(Flag, "logging", translate("Enable Logging")) -o.default = "1" - -o = s:option(Flag, "verbose", translate("Enable verbose logging")) -o:depends("logging", "1") - -o = s:option(ListValue, "network", translate("Upgrade interface")) -uci:foreach("network", "interface", function(section) - if section[".name"] ~= "loopback" then - o:value(section[".name"]) - end -end) - -o = s:option(Value, "account", translate("XLNetAcc account")) - -o = s:option(Value, "password", translate("XLNetAcc password")) -o.password = true - -return m diff --git a/package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/logview.htm b/package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/logview.htm deleted file mode 100644 index a07a27112..000000000 --- a/package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/logview.htm +++ /dev/null @@ -1,49 +0,0 @@ -<% css = [[ - #log_text { - padding: 10px; - text-align: left; - height: 500px; - overflow: auto; - } - #log_text pre { - word-break: break-all; - margin: 0; - } - .description { - color: #ffffff; - background-color: #0099ff; - } -]] -%> - -<%+header%> - -
    -

    <%:XLNetAcc%> - <%:Log Data%>

    -
    -
    -
    <%:Loading...%><%:Collecting data...%>
    -
    <%:Refresh every 5 seconds.%>
    -
    -
    -
    - - - - -<%+footer%> diff --git a/package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/status.htm b/package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/status.htm deleted file mode 100644 index 3da9c4422..000000000 --- a/package/lean/luci-app-xlnetacc/files/luci/view/xlnetacc/status.htm +++ /dev/null @@ -1,21 +0,0 @@ -
    - <%:Running Status%> - - - - -
    <%:XLNetAcc Running Status%><%:Collecting data...%>
    <%:DownLink Upgrade Status%><%:Collecting data...%>
    <%:UpLink Upgrade Status%><%:Collecting data...%>
    -
    - - diff --git a/package/lean/luci-app-xlnetacc/files/root/etc/config/xlnetacc b/package/lean/luci-app-xlnetacc/files/root/etc/config/xlnetacc deleted file mode 100644 index 4345070c4..000000000 --- a/package/lean/luci-app-xlnetacc/files/root/etc/config/xlnetacc +++ /dev/null @@ -1,5 +0,0 @@ - -config general 'general' - option enabled '0' - option network 'wan' - diff --git a/package/lean/luci-app-xlnetacc/files/root/etc/hotplug.d/iface/95-xlnetacc b/package/lean/luci-app-xlnetacc/files/root/etc/hotplug.d/iface/95-xlnetacc deleted file mode 100644 index be0271ad8..000000000 --- a/package/lean/luci-app-xlnetacc/files/root/etc/hotplug.d/iface/95-xlnetacc +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -/etc/init.d/xlnetacc enabled || exit 0 -[ "$INTERFACE" != "$(uci get xlnetacc.general.network)" ] && exit 0 - -case "$ACTION" in - ifup) - /etc/init.d/xlnetacc start - ;; - ifdown) - /etc/init.d/xlnetacc stop - ;; -esac diff --git a/package/lean/luci-app-xlnetacc/files/root/etc/init.d/xlnetacc b/package/lean/luci-app-xlnetacc/files/root/etc/init.d/xlnetacc deleted file mode 100644 index d15628113..000000000 --- a/package/lean/luci-app-xlnetacc/files/root/etc/init.d/xlnetacc +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=95 -STOP=10 -SERVICE_DAEMONIZE=1 - -NAME=xlnetacc - -start() { - local retry=1 - while pidof "${NAME}.sh" >/dev/null 2>&1; do - [ $retry -ge 10 ] && return 1 || let retry++ - sleep 1 - done - - config_load "$NAME" - config_get_bool enabled "general" "enabled" 0 - config_get_bool down_acc "general" "down_acc" 0 - config_get_bool up_acc "general" "up_acc" 0 - config_get network "general" "network" - config_get username "general" "account" - config_get password "general" "password" - ( [ $enabled -eq 0 ] || [ $down_acc -eq 0 -a $up_acc -eq 0 ] || [ -z "$username" -o -z "$password" -o -z "$network" ] ) && return 2 - - logger -p "daemon.notice" -t "$NAME" "XLNetAcc is starting ..." - service_start /usr/bin/${NAME}.sh --start -} - -stop() { - ps | grep xlnetacc.sh | grep -v 'grep' >/dev/null 2>&1 || return 1 - - local pid spid - for pid in $(ps | grep xlnetacc.sh | grep -v 'grep' | awk '{print $1}'); do - echo "Stop XLNetAcc process PID: $pid" - kill -9 $pid >/dev/null 2>&1 - for spid in $(pgrep -P $pid "sleep"); do - echo "Stop XLNetAcc process SPID: $spid" - kill -9 $spid >/dev/null 2>&1 - done - done - logger -p "daemon.notice" -t "$NAME" "XLNetAcc has stoped." - return 0 -} - -restart() { - rm -rf /tmp/state/xlnetacc* - stop && sleep 1 - start -} diff --git a/package/lean/luci-app-xlnetacc/files/root/etc/uci-defaults/luci-xlnetacc b/package/lean/luci-app-xlnetacc/files/root/etc/uci-defaults/luci-xlnetacc deleted file mode 100644 index 632c02678..000000000 --- a/package/lean/luci-app-xlnetacc/files/root/etc/uci-defaults/luci-xlnetacc +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@xlnetacc[-1] - add ucitrack xlnetacc - set ucitrack.@xlnetacc[-1].init=xlnetacc - commit ucitrack -EOF - -general=$(uci -q get xlnetacc.@general[-1]) -if [ -z "$general" ]; then - uci -q add xlnetacc general -fi -if [ "$general"x != "general"x ]; then - uci -q batch <<-EOF >/dev/null - rename xlnetacc.@general[-1]="general" - commit xlnetacc - EOF -fi - -rm -rf /tmp/luci-indexcache /tmp/luci-modulecache -exit 0 diff --git a/package/lean/luci-app-xlnetacc/files/root/usr/bin/xlnetacc.sh b/package/lean/luci-app-xlnetacc/files/root/usr/bin/xlnetacc.sh deleted file mode 100644 index 57fac717a..000000000 --- a/package/lean/luci-app-xlnetacc/files/root/usr/bin/xlnetacc.sh +++ /dev/null @@ -1,670 +0,0 @@ -#!/bin/sh - -# 声明常量 -readonly packageName='com.xunlei.vip.swjsq' -readonly protocolVersion=200 -readonly businessType=68 -readonly sdkVersion='2.1.1.177662' -readonly clientVersion='2.4.1.3' -readonly agent_xl="android-async-http/xl-acc-sdk/version-$sdkVersion" -readonly agent_down='okhttp/3.4.1' -readonly agent_up='android-async-http/xl-acc-sdk/version-1.0.0.1' -readonly client_type_down='android-swjsq' -readonly client_type_up='android-uplink' - -# 声明全局变量 -_bind_ip= -_http_cmd= -_peerid= -_devicesign= -_userid= -_loginkey= -_sessionid= -_portal_down= -_portal_up= -_dial_account= -access_url= -http_args= -user_agent= -link_cn= -lasterr= -sequence_xl=1000000 -sequence_down=$(( $(date +%s) / 6 )) -sequence_up=$sequence_down - -# 包含用于解析 JSON 格式返回值的函数 -. /usr/share/libubox/jshn.sh - -# 读取 UCI 设置相关函数 -uci_get_by_name() { - local ret=$(uci get $NAME.$1.$2 2> /dev/null) - echo -n ${ret:=$3} -} -uci_get_by_type() { - local ret=$(uci get $NAME.@$1[-1].$2 2> /dev/null) - echo -n ${ret:=$3} -} -uci_get_by_bool() { - case $(uci_get_by_name "$1" "$2" "$3") in - 1|on|true|yes|enabled) echo -n 1;; - *) echo -n 0;; - esac -} - -# 日志和状态栏输出。1 日志文件, 2 系统日志, 4 详细模式, 8 下行状态栏, 16 上行状态栏, 32 失败状态 -_log() { - local msg=$1 - local flag=$2 - [ -z "$msg" ] && return - [ -z "$flag" ] && flag=1 - local timestamp=$(date +'%Y/%m/%d %H:%M:%S') - - [ $logging -eq 0 -a $(( $flag & 1 )) -ne 0 ] && flag=$(( $flag ^ 1 )) - if [ $verbose -eq 0 -a $(( $flag & 4 )) -ne 0 ]; then - [ $(( $flag & 1 )) -ne 0 ] && flag=$(( $flag ^ 1 )) - [ $(( $flag & 2 )) -ne 0 ] && flag=$(( $flag ^ 2 )) - fi - if [ $down_acc -eq 0 -a $(( $flag & 8 )) -ne 0 ]; then - flag=$(( $flag ^ 8 )) - [ $up_acc -ne 0 ] && flag=$(( $flag | 16 )) - fi - if [ $up_acc -eq 0 -a $(( $flag & 16 )) -ne 0 ]; then - flag=$(( $flag ^ 16 )) - [ $down_acc -ne 0 ] && flag=$(( $flag | 8 )) - fi - - [ $(( $flag & 1 )) -ne 0 ] && echo "$timestamp $msg" >> $LOGFILE 2> /dev/null - [ $(( $flag & 2 )) -ne 0 ] && logger -p "daemon.info" -t "$NAME" "$msg" - - [ $(( $flag & 32 )) -eq 0 ] && local color="green" || local color="red" - [ $(( $flag & 8 )) -ne 0 ] && echo -n "$timestamp $msg" > $down_state_file 2> /dev/null - [ $(( $flag & 16 )) -ne 0 ] && echo -n "$timestamp $msg" > $up_state_file 2> /dev/null -} - -# 清理日志 -clean_log() { - [ $logging -eq 1 -a -f "$LOGFILE" ] || return - [ $(wc -l "$LOGFILE" | awk '{print $1}') -le 800 ] && return - _log "清理日志文件" - local logdata=$(tail -n 500 "$LOGFILE") - echo "$logdata" > $LOGFILE 2> /dev/null - unset logdata -} - -# 获取接口IP地址 -get_bind_ip() { - json_cleanup; json_load "$(ubus call network.interface.$network status 2> /dev/null)" >/dev/null 2>&1 - json_select "ipv4-address" >/dev/null 2>&1; json_select 1 >/dev/null 2>&1 - json_get_var _bind_ip "address" - if [ -z "$_bind_ip" -o "$_bind_ip"x == "0.0.0.0"x ]; then - _log "获取网络 $network IP地址失败" - return 1 - else - _log "绑定IP地址: $_bind_ip" - return 0 - fi -} - -# 定义基本 HTTP 命令和参数 -gen_http_cmd() { - _http_cmd="wget-ssl -nv -t 1 -T 5 -O - --no-check-certificate" - _http_cmd="$_http_cmd --bind-address=$_bind_ip" -} - -# 生成设备标识 -gen_device_sign() { - local ifname macaddr - while : ; do - ifname=$(uci get "network.$network.ifname" 2> /dev/null) - [ "${ifname:0:1}" == "@" ] && network="${ifname:1}" || break - done - [ -z "$ifname" ] && { _log "获取网络 $network 信息出错"; return; } - json_cleanup; json_load "$(ubus call network.device status {\"name\":\"$ifname\"} 2> /dev/null)" >/dev/null 2>&1 - json_get_var macaddr "macaddr" - [ -z "$macaddr" ] && { _log "获取网络 $network MAC地址出错"; return; } - macaddr=$(echo -n "$macaddr" | awk '{print toupper($0)}') - - # 计算peerID - local fake_peerid=$(awk -F- '{print toupper($5)}' '/proc/sys/kernel/random/uuid') - readonly _peerid="${fake_peerid}004V" - _log "_peerid is $_peerid" $(( 1 | 4 )) - - # 计算devicesign - # sign = div.10?.device_id + md5(sha1(packageName + businessType + md5(a protocolVersion specific GUID))) - local fake_device_id=$(echo -n "${macaddr//:/}" | openssl dgst -md5 | awk '{print $2}') - local fake_device_sign=$(echo -n "${fake_device_id}${packageName}${businessType}c7f21687eed3cdb400ca11fc2263c998" \ - | openssl dgst -sha1 | awk '{print $2}') - readonly _devicesign="div101.${fake_device_id}"$(echo -n "$fake_device_sign" | openssl dgst -md5 | awk '{print $2}') - _log "_devicesign is $_devicesign" $(( 1 | 4 )) -} - -# 快鸟帐号通用参数 -swjsq_json() { - let sequence_xl++ - # 生成POST数据 - json_init - json_add_string protocolVersion "$protocolVersion" - json_add_string sequenceNo "$sequence_xl" - json_add_string platformVersion '2' - json_add_string isCompressed '0' - json_add_string businessType "$businessType" - json_add_string clientVersion "$clientVersion" - json_add_string peerID "$_peerid" - json_add_string appName "ANDROID-$packageName" - json_add_string sdkVersion "${sdkVersion##*.}" - json_add_string devicesign "$_devicesign" - json_add_string deviceModel 'MI' - json_add_string deviceName 'Xiaomi Mi' - json_add_string OSVersion "7.1.1" -} - -# 帐号登录 -swjsq_login() { - swjsq_json - if [ -z "$_userid" -o -z "$_loginkey" ]; then - access_url='https://mobile-login.xunlei.com/login' - json_add_string userName "$username" - json_add_string passWord "$password" - json_add_string verifyKey - json_add_string verifyCode - else - access_url='https://mobile-login.xunlei.com/loginkey' - json_add_string userName "$_userid" - json_add_string loginKey "$_loginkey" - fi - json_close_object - - local ret=$($_http_cmd --user-agent="$agent_xl" "$access_url" --post-data="$(json_dump)") - case $? in - 0) - _log "login is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errorCode" - ;; - 2) lasterr=-2;; - 4) lasterr=-3;; - *) lasterr=-1;; - esac - - case ${lasterr:=-1} in - 0) - json_get_var _userid "userID" - json_get_var _loginkey "loginKey" - json_get_var _sessionid "sessionID" - _log "_sessionid is $_sessionid" $(( 1 | 4 )) - local outmsg="帐号登录成功"; _log "$outmsg" $(( 1 | 8 )) - ;; - 15) # 身份信息已失效 - _userid=; _loginkey=;; - -1) - local outmsg="帐号登录失败。迅雷服务器未响应,请稍候"; _log "$outmsg";; - -2) - local outmsg="Wget 参数解析错误,请更新 GNU Wget"; _log "$outmsg" $(( 1 | 8 | 32 ));; - -3) - local outmsg="Wget 网络通信失败,请稍候"; _log "$outmsg";; - *) - local errorDesc; json_get_var errorDesc "errorDesc" - local outmsg="帐号登录失败。错误代码: ${lasterr}"; \ - [ -n "$errorDesc" ] && outmsg="${outmsg},原因: $errorDesc"; _log "$outmsg" $(( 1 | 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 帐号注销 -swjsq_logout() { - swjsq_json - json_add_string userID "$_userid" - json_add_string sessionID "$_sessionid" - json_close_object - - local ret=$($_http_cmd --user-agent="$agent_xl" 'https://mobile-login.xunlei.com/logout' --post-data="$(json_dump)") - _log "logout is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errorCode" - - case ${lasterr:=-1} in - 0) - _sessionid= - local outmsg="帐号注销成功"; _log "$outmsg" $(( 1 | 8 ));; - -1) - local outmsg="帐号注销失败。迅雷服务器未响应,请稍候"; _log "$outmsg";; - *) - local errorDesc; json_get_var errorDesc "errorDesc" - local outmsg="帐号注销失败。错误代码: ${lasterr}"; \ - [ -n "$errorDesc" ] && outmsg="${outmsg},原因: $errorDesc"; _log "$outmsg" $(( 1 | 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 获取用户信息 -swjsq_getuserinfo() { - [ $1 -eq 1 ] && local _vasid=14 || local _vasid=33 - swjsq_json - json_add_string userID "$_userid" - json_add_string sessionID "$_sessionid" - json_add_string vasid "$_vasid" - json_close_object - - local ret=$($_http_cmd --user-agent="$agent_xl" 'https://mobile-login.xunlei.com/getuserinfo' --post-data="$(json_dump)") - _log "getuserinfo $1 is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errorCode" - - [ $1 -eq 1 ] && local outmsg="下行提速会员" || local outmsg="上行提速会员" - case ${lasterr:=-1} in - 0) - local index vasid isVip isYear expireDate can_upgrade - json_select "vipList" >/dev/null 2>&1 - while : ; do - json_select ${index:=1} >/dev/null 2>&1 - [ $? -ne 0 ] && break - json_get_var vasid "vasid" - json_get_var isVip "isVip" - json_get_var isYear "isYear" - json_get_var expireDate "expireDate" - json_select ".." >/dev/null 2>&1 - let index++ - ([ $1 -eq 1 -a ${vasid:-0} -eq 2 ] || [ ${vasid:-0} -eq $_vasid ]) && \ - [ ${isVip:-0} -eq 1 -o ${isYear:-0} -eq 1 ] && { can_upgrade=1; break; } - done - if [ ${can_upgrade:-0} -eq 1 ]; then - outmsg="获取${outmsg}信息成功。会员到期时间:${expireDate:0:4}-${expireDate:4:2}-${expireDate:6:2}"; \ - _log "$outmsg" $(( 1 | $1 * 8 )) - else - if [ ${#expireDate} -ge 8 ]; then - outmsg="${outmsg}已到期。会员到期时间:${expireDate:0:4}-${expireDate:4:2}-${expireDate:6:2}" - else - outmsg="${outmsg}无效" - fi - _log "$outmsg" $(( 1 | $1 * 8 | 32 )) - [ $1 -eq 1 ] && down_acc=0 || up_acc=0 - fi - ;; - -1) - outmsg="获取${outmsg}信息失败。迅雷服务器未响应,请稍候"; _log "$outmsg";; - *) - local errorDesc; json_get_var errorDesc "errorDesc" - outmsg="获取${outmsg}信息失败。错误代码: ${lasterr}"; \ - [ -n "$errorDesc" ] && outmsg="${outmsg},原因: $errorDesc"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 获取提速入口 -swjsq_portal() { - xlnetacc_var $1 - - [ $1 -eq 1 ] && access_url='http://api.portal.swjsq.vip.xunlei.com:81/v2/queryportal' || \ - access_url='http://api.upportal.swjsq.vip.xunlei.com/v2/queryportal' - local ret=$($_http_cmd --user-agent="$user_agent" "$access_url") - _log "portal $1 is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errno" - - case ${lasterr:=-1} in - 0) - local interface_ip interface_port province sp - json_get_var interface_ip "interface_ip" - json_get_var interface_port "interface_port" - json_get_var province "province_name" - json_get_var sp "sp_name" - if [ $1 -eq 1 ]; then - _portal_down="http://$interface_ip:$interface_port/v2" - _log "_portal_down is $_portal_down" $(( 1 | 4 )) - else - _portal_up="http://$interface_ip:$interface_port/v2" - _log "_portal_up is $_portal_up" $(( 1 | 4 )) - fi - local outmsg="获取${link_cn}提速入口成功"; \ - [ -n "$province" -a -n "$sp" ] && outmsg="${outmsg}。运营商:${province}${sp}"; _log "$outmsg" $(( 1 | $1 * 8 )) - ;; - -1) - local outmsg="获取${link_cn}提速入口失败。迅雷服务器未响应,请稍候"; _log "$outmsg";; - *) - local message; json_get_var message "message" - local outmsg="获取${link_cn}提速入口失败。错误代码: ${lasterr}"; \ - [ -n "$message" ] && outmsg="${outmsg},原因: $message"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 获取网络带宽信息 -isp_bandwidth() { - xlnetacc_var $1 - - local ret=$($_http_cmd --user-agent="$user_agent" "$access_url/bandwidth?${http_args%&dial_account=*}") - _log "bandwidth $1 is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errno" - - case ${lasterr:=-1} in - 0) - # 获取带宽数据 - local can_upgrade bind_dial_account dial_account stream cur_bandwidth max_bandwidth - [ $1 -eq 1 ] && stream="downstream" || stream="upstream" - json_get_var can_upgrade "can_upgrade" - json_get_var bind_dial_account "bind_dial_account" - json_get_var dial_account "dial_account" - json_select; json_select "bandwidth" >/dev/null 2>&1 - json_get_var cur_bandwidth "$stream" - json_select; json_select "max_bandwidth" >/dev/null 2>&1 - json_get_var max_bandwidth "$stream" - json_select - cur_bandwidth=$(expr ${cur_bandwidth:-0} / 1024) - max_bandwidth=$(expr ${max_bandwidth:-0} / 1024) - - if [ -n "$bind_dial_account" -a "$bind_dial_account" != "$dial_account" ]; then - local outmsg="绑定宽带账号 $bind_dial_account 与当前宽带账号 $dial_account 不一致,请联系迅雷客服解绑(每月仅一次)"; \ - _log "$outmsg" $(( 1 | 8 | 32 )) - down_acc=0; up_acc=0 - elif [ $can_upgrade -eq 0 ]; then - local message; json_get_var message "richmessage"; [ -z "$message" ] && json_get_var message "message" - local outmsg="${link_cn}无法提速"; \ - [ -n "$message" ] && outmsg="${outmsg},原因: $message"; _log "$outmsg" $(( 1 | $1 * 8 | 32 )) - [ $1 -eq 1 ] && down_acc=0 || up_acc=0 - elif [ $cur_bandwidth -ge $max_bandwidth ]; then - local outmsg="${link_cn}无需提速。当前带宽 ${cur_bandwidth}M,超过最大可提升带宽 ${max_bandwidth}M"; \ - _log "$outmsg" $(( 1 | $1 * 8 )) - [ $1 -eq 1 ] && down_acc=0 || up_acc=0 - else - if [ -z "$_dial_account" -a -n "$dial_account" ]; then - _dial_account=$dial_account - _log "_dial_account is $_dial_account" $(( 1 | 4 )) - fi - local outmsg="${link_cn}可以提速。当前带宽 ${cur_bandwidth}M,可提升至 ${max_bandwidth}M"; _log "$outmsg" $(( 1 | $1 * 8 )) - fi - ;; - 724) # 724 账号存在异常 - lasterr=-2 - local outmsg="获取${link_cn}网络带宽信息失败。原因: 您的账号存在异常,请联系迅雷客服反馈"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - 3103) # 3103 线路暂不支持 - lasterr=0 - local province sp - json_get_var province "province_name"; json_get_var sp "sp_name" - local outmsg="${link_cn}无法提速。原因: ${province}${sp}线路暂不支持"; _log "$outmsg" $(( 1 | $1 * 8 | 32 )) - [ $1 -eq 1 ] && down_acc=0 || up_acc=0 - ;; - -1) - local outmsg="获取${link_cn}网络带宽信息失败。运营商服务器未响应,请稍候"; _log "$outmsg";; - *) - local message; json_get_var message "richmessage"; [ -z "$message" ] && json_get_var message "message" - local outmsg="获取${link_cn}网络带宽信息失败。错误代码: ${lasterr}"; \ - [ -n "$message" ] && outmsg="${outmsg},原因: $message"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 发送带宽提速信号 -isp_upgrade() { - xlnetacc_var $1 - - local ret=$($_http_cmd --user-agent="$user_agent" "$access_url/upgrade?$http_args") - _log "upgrade $1 is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errno" - - case ${lasterr:=-1} in - 0) - local bandwidth - json_select "bandwidth" >/dev/null 2>&1 - json_get_var bandwidth "downstream" - [ ${bandwidth:=0} -ge 1024 ] && bandwidth=$(( $bandwidth / 1024 )) - local outmsg="${link_cn}提速成功,带宽已提升到 ${bandwidth}M"; _log "$outmsg" $(( 1 | $1 * 8 )) - [ $1 -eq 1 ] && down_acc=2 || up_acc=2 - ;; - 812) # 812 已处于提速状态 - lasterr=0 - local outmsg="${link_cn}提速成功,当前宽带已处于提速状态"; _log "$outmsg" $(( 1 | $1 * 8 )) - [ $1 -eq 1 ] && down_acc=2 || up_acc=2 - ;; - 724) # 724 账号存在异常 - lasterr=-2 - local outmsg="${link_cn}提速失败。原因: 您的账号存在异常,请联系迅雷客服反馈"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - -1) - local outmsg="${link_cn}提速失败。运营商服务器未响应,请稍候"; _log "$outmsg";; - *) - local message; json_get_var message "richmessage"; [ -z "$message" ] && json_get_var message "message" - local outmsg="${link_cn}提速失败。错误代码: ${lasterr}"; \ - [ -n "$message" ] && outmsg="${outmsg},原因: $message"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 发送提速心跳信号 -isp_keepalive() { - xlnetacc_var $1 - - local ret=$($_http_cmd --user-agent="$user_agent" "$access_url/keepalive?$http_args") - _log "keepalive $1 is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errno" - - case ${lasterr:=-1} in - 0) - local outmsg="${link_cn}心跳信号返回正常"; _log "$outmsg";; - 513) # 513 提速通道不存在 - lasterr=-2 - local outmsg="${link_cn}提速超时,提速通道不存在"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - -1) - local outmsg="${link_cn}心跳信号发送失败。运营商服务器未响应,请稍候"; _log "$outmsg";; - *) - local message; json_get_var message "richmessage"; [ -z "$message" ] && json_get_var message "message" - local outmsg="${link_cn}提速失效。错误代码: ${lasterr}"; \ - [ -n "$message" ] && outmsg="${outmsg},原因: $message"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 发送带宽恢复信号 -isp_recover() { - xlnetacc_var $1 - - local ret=$($_http_cmd --user-agent="$user_agent" "$access_url/recover?$http_args") - _log "recover $1 is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errno" - - case ${lasterr:=-1} in - 0) - local outmsg="${link_cn}带宽已恢复"; _log "$outmsg" $(( 1 | $1 * 8 )) - [ $1 -eq 1 ] && down_acc=1 || up_acc=1;; - -1) - local outmsg="${link_cn}带宽恢复失败。运营商服务器未响应,请稍候"; _log "$outmsg";; - *) - local message; json_get_var message "richmessage"; [ -z "$message" ] && json_get_var message "message" - local outmsg="${link_cn}带宽恢复失败。错误代码: ${lasterr}"; \ - [ -n "$message" ] && outmsg="${outmsg},原因: $message"; _log "$outmsg" $(( 1 | $1 * 8 | 32 ));; - esac - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 查询提速信息,未使用 -isp_query() { - xlnetacc_var $1 - - local ret=$($_http_cmd --user-agent="$user_agent" "$access_url/query_try_info?$http_args") - _log "query_try_info $1 is $ret" $(( 1 | 4 )) - json_cleanup; json_load "$ret" >/dev/null 2>&1 - json_get_var lasterr "errno" - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 设置参数变量 -xlnetacc_var() { - if [ $1 -eq 1 ]; then - let sequence_down++ - access_url=$_portal_down - http_args="sequence=${sequence_down}&client_type=${client_type_down}-${clientVersion}&client_version=${client_type_down//-/}-${clientVersion}&chanel=umeng-10900011&time_and=$(date +%s)000" - user_agent=$agent_down - link_cn="下行" - else - let sequence_up++ - access_url=$_portal_up - http_args="sequence=${sequence_up}&client_type=${client_type_up}-${clientVersion}&client_version=${client_type_up//-/}-${clientVersion}" - user_agent=$agent_up - link_cn="上行" - fi - http_args="${http_args}&peerid=${_peerid}&userid=${_userid}&sessionid=${_sessionid}&user_type=1&os=android-7.1.1" - [ -n "$_dial_account" ] && http_args="${http_args}&dial_account=${_dial_account}" -} - -# 重试循环 -xlnetacc_retry() { - if [ $# -ge 3 -a $3 -ne 0 ]; then - [ $2 -eq 1 -a $down_acc -ne $3 ] && return 0 - [ $2 -eq 2 -a $up_acc -ne $3 ] && return 0 - fi - - local retry=1 - while : ; do - lasterr= - eval $1 $2 && break # 成功 - [ $# -ge 4 -a $retry -ge $4 ] && break || let retry++ # 重试超时 - case $lasterr in - -1) sleep 5s;; # 服务器未响应 - -2) break;; # 严重错误 - *) sleep 3s;; # 其它错误 - esac - done - - [ ${lasterr:-0} -eq 0 ] && return 0 || return 1 -} - -# 注销已登录帐号 -xlnetacc_logout() { - [ -z "$_sessionid" ] && return 2 - [ $# -ge 1 ] && local retry=$1 || local retry=1 - - xlnetacc_retry 'isp_recover' 1 2 $retry - xlnetacc_retry 'isp_recover' 2 2 $retry - xlnetacc_retry 'swjsq_logout' 0 0 $retry - [ $down_acc -ne 0 ] && down_acc=1; [ $up_acc -ne 0 ] && up_acc=1 - _sessionid=; _dial_account= - - [ $lasterr -eq 0 ] && return 0 || return 1 -} - -# 中止信号处理 -sigterm() { - _log "trap sigterm, exit" $(( 1 | 4 )) - xlnetacc_logout - rm -f "$down_state_file" "$up_state_file" - exit 0 -} - -# 初始化 -xlnetacc_init() { - [ "$1" != "--start" ] && return 1 - - # 防止重复启动 - local pid - for pid in $(pidof "${0##*/}"); do - [ $pid -ne $$ ] && return 1 - done - - # 读取设置 - readonly NAME=xlnetacc - readonly LOGFILE=/var/log/${NAME}.log - readonly down_state_file=/var/state/${NAME}_down_state - readonly up_state_file=/var/state/${NAME}_up_state - down_acc=$(uci_get_by_bool "general" "down_acc" 0) - up_acc=$(uci_get_by_bool "general" "up_acc" 0) - readonly logging=$(uci_get_by_bool "general" "logging" 1) - readonly verbose=$(uci_get_by_bool "general" "verbose" 0) - network=$(uci_get_by_name "general" "network" "wan") - readonly username=$(uci_get_by_name "general" "account") - readonly password=$(uci_get_by_name "general" "password") - local enabled=$(uci_get_by_bool "general" "enabled" 0) - ([ $enabled -eq 0 ] || [ $down_acc -eq 0 -a $up_acc -eq 0 ] || [ -z "$username" -o -z "$password" -o -z "$network" ]) && return 2 - - [ $logging -eq 1 ] && [ ! -d /var/log ] && mkdir -p /var/log - [ -f "$LOGFILE" ] && _log "------------------------------" - _log "迅雷快鸟正在启动..." - - # 检查外部调用工具 - command -v wget-ssl >/dev/null || { _log "GNU Wget 未安装"; return 3; } - local opensslchk=$(echo -n 'openssl' | openssl dgst -sha1 | awk '{print $2}') - [ "$opensslchk" != 'c898fa1e7226427010e329971e82c669f8d8abb4' ] && { _log "openssl-util 未安装或计算错误"; return 3; } - - # 捕获中止信号 - trap 'sigterm' INT # Ctrl-C - trap 'sigterm' QUIT # Ctrl-\ - trap 'sigterm' TERM # kill - - # 生成设备标识 - gen_device_sign - [ ${#_peerid} -ne 16 -o ${#_devicesign} -ne 71 ] && return 4 - - clean_log - [ -d /var/state ] || mkdir -p /var/state - return 0 -} - -# 程序主体 -xlnetacc_main() { - while : ; do - # 获取外网IP地址 - xlnetacc_retry 'get_bind_ip' - gen_http_cmd - - # 注销快鸟帐号 - xlnetacc_logout 3 && sleep 3s - - # 登录快鸟帐号 - while : ; do - lasterr= - swjsq_login - case $lasterr in - 0) break;; # 登录成功 - -1) sleep 5s;; # 服务器未响应 - -2) return 7;; # Wget 参数解析错误 - -3) sleep 3s;; # Wget 网络通信失败 - 6) sleep 130m;; # 需要输入验证码 - 8) sleep 3m;; # 服务器系统维护 - 15) sleep 1s;; # 身份信息已失效 - *) return 5;; # 登录失败 - esac - done - - # 获取用户信息 - xlnetacc_retry 'swjsq_getuserinfo' 1 1 - xlnetacc_retry 'swjsq_getuserinfo' 2 1 - [ $down_acc -eq 0 -a $up_acc -eq 0 ] && break - # 获取提速入口 - xlnetacc_retry 'swjsq_portal' 1 1 - xlnetacc_retry 'swjsq_portal' 2 1 - # 获取带宽信息 - xlnetacc_retry 'isp_bandwidth' 1 1 10 || { sleep 3m; continue; } - xlnetacc_retry 'isp_bandwidth' 2 1 10 || { sleep 3m; continue; } - [ $down_acc -eq 0 -a $up_acc -eq 0 ] && break - # 带宽提速 - xlnetacc_retry 'isp_upgrade' 1 1 10 || { sleep 3m; continue; } - xlnetacc_retry 'isp_upgrade' 2 1 10 || { sleep 3m; continue; } - - # 心跳保持 -# local retry=1 - while : ; do - clean_log # 清理日志 - sleep 10m -# [ $retry -ge 144 ] && break || let retry++ # 心跳最多保持24小时,144=24*60/10 - xlnetacc_retry 'isp_keepalive' 1 2 5 || break - xlnetacc_retry 'isp_keepalive' 2 2 5 || break - done - done - xlnetacc_logout - _log "无法提速,迅雷快鸟已停止。" - return 6 -} - -# 程序入口 -xlnetacc_init "$@" && xlnetacc_main -exit $? diff --git a/package/lean/luci-app-xlnetacc/tools/po2lmo/Makefile b/package/lean/luci-app-xlnetacc/tools/po2lmo/Makefile deleted file mode 100644 index ad2c13320..000000000 --- a/package/lean/luci-app-xlnetacc/tools/po2lmo/Makefile +++ /dev/null @@ -1,12 +0,0 @@ - -INSTALL = install -PREFIX = /usr/bin - -po2lmo: src/po2lmo.o src/template_lmo.o - $(CC) $(LDFLAGS) -o src/po2lmo src/po2lmo.o src/template_lmo.o - -install: - $(INSTALL) -m 755 src/po2lmo $(PREFIX) - -clean: - $(RM) src/po2lmo src/*.o diff --git a/package/lean/luci-app-xlnetacc/tools/po2lmo/src/po2lmo.c b/package/lean/luci-app-xlnetacc/tools/po2lmo/src/po2lmo.c deleted file mode 100644 index 0da792b68..000000000 --- a/package/lean/luci-app-xlnetacc/tools/po2lmo/src/po2lmo.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * lmo - Lua Machine Objects - PO to LMO conversion tool - * - * Copyright (C) 2009-2012 Jo-Philipp Wich - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "template_lmo.h" - -static void die(const char *msg) -{ - fprintf(stderr, "Error: %s\n", msg); - exit(1); -} - -static void usage(const char *name) -{ - fprintf(stderr, "Usage: %s input.po output.lmo\n", name); - exit(1); -} - -static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream) -{ - if( fwrite(ptr, size, nmemb, stream) == 0 ) - die("Failed to write stdout"); -} - -static int extract_string(const char *src, char *dest, int len) -{ - int pos = 0; - int esc = 0; - int off = -1; - - for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ ) - { - if( (off == -1) && (src[pos] == '"') ) - { - off = pos + 1; - } - else if( off >= 0 ) - { - if( esc == 1 ) - { - switch (src[pos]) - { - case '"': - case '\\': - off++; - break; - } - dest[pos-off] = src[pos]; - esc = 0; - } - else if( src[pos] == '\\' ) - { - dest[pos-off] = src[pos]; - esc = 1; - } - else if( src[pos] != '"' ) - { - dest[pos-off] = src[pos]; - } - else - { - dest[pos-off] = '\0'; - break; - } - } - } - - return (off > -1) ? strlen(dest) : -1; -} - -static int cmp_index(const void *a, const void *b) -{ - uint32_t x = ((const lmo_entry_t *)a)->key_id; - uint32_t y = ((const lmo_entry_t *)b)->key_id; - - if (x < y) - return -1; - else if (x > y) - return 1; - - return 0; -} - -static void print_uint32(uint32_t x, FILE *out) -{ - uint32_t y = htonl(x); - print(&y, sizeof(uint32_t), 1, out); -} - -static void print_index(void *array, int n, FILE *out) -{ - lmo_entry_t *e; - - qsort(array, n, sizeof(*e), cmp_index); - - for (e = array; n > 0; n--, e++) - { - print_uint32(e->key_id, out); - print_uint32(e->val_id, out); - print_uint32(e->offset, out); - print_uint32(e->length, out); - } -} - -int main(int argc, char *argv[]) -{ - char line[4096]; - char key[4096]; - char val[4096]; - char tmp[4096]; - int state = 0; - int offset = 0; - int length = 0; - int n_entries = 0; - void *array = NULL; - lmo_entry_t *entry = NULL; - uint32_t key_id, val_id; - - FILE *in; - FILE *out; - - if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) ) - usage(argv[0]); - - memset(line, 0, sizeof(key)); - memset(key, 0, sizeof(val)); - memset(val, 0, sizeof(val)); - - while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) ) - { - if( state == 0 && strstr(line, "msgid \"") == line ) - { - switch(extract_string(line, key, sizeof(key))) - { - case -1: - die("Syntax error in msgid"); - case 0: - state = 1; - break; - default: - state = 2; - } - } - else if( state == 1 || state == 2 ) - { - if( strstr(line, "msgstr \"") == line || state == 2 ) - { - switch(extract_string(line, val, sizeof(val))) - { - case -1: - state = 4; - break; - default: - state = 3; - } - } - else - { - switch(extract_string(line, tmp, sizeof(tmp))) - { - case -1: - state = 2; - break; - default: - strcat(key, tmp); - } - } - } - else if( state == 3 ) - { - switch(extract_string(line, tmp, sizeof(tmp))) - { - case -1: - state = 4; - break; - default: - strcat(val, tmp); - } - } - - if( state == 4 ) - { - if( strlen(key) > 0 && strlen(val) > 0 ) - { - key_id = sfh_hash(key, strlen(key)); - val_id = sfh_hash(val, strlen(val)); - - if( key_id != val_id ) - { - n_entries++; - array = realloc(array, n_entries * sizeof(lmo_entry_t)); - entry = (lmo_entry_t *)array + n_entries - 1; - - if (!array) - die("Out of memory"); - - entry->key_id = key_id; - entry->val_id = val_id; - entry->offset = offset; - entry->length = strlen(val); - - length = strlen(val) + ((4 - (strlen(val) % 4)) % 4); - - print(val, length, 1, out); - offset += length; - } - } - - state = 0; - memset(key, 0, sizeof(key)); - memset(val, 0, sizeof(val)); - } - - memset(line, 0, sizeof(line)); - } - - print_index(array, n_entries, out); - - if( offset > 0 ) - { - print_uint32(offset, out); - fsync(fileno(out)); - fclose(out); - } - else - { - fclose(out); - unlink(argv[2]); - } - - fclose(in); - return(0); -} diff --git a/package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.c b/package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.c deleted file mode 100644 index 27205a722..000000000 --- a/package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.c +++ /dev/null @@ -1,328 +0,0 @@ -/* - * lmo - Lua Machine Objects - Base functions - * - * Copyright (C) 2009-2010 Jo-Philipp Wich - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "template_lmo.h" - -/* - * Hash function from http://www.azillionmonkeys.com/qed/hash.html - * Copyright (C) 2004-2008 by Paul Hsieh - */ - -uint32_t sfh_hash(const char *data, int len) -{ - uint32_t hash = len, tmp; - int rem; - - if (len <= 0 || data == NULL) return 0; - - rem = len & 3; - len >>= 2; - - /* Main loop */ - for (;len > 0; len--) { - hash += sfh_get16(data); - tmp = (sfh_get16(data+2) << 11) ^ hash; - hash = (hash << 16) ^ tmp; - data += 2*sizeof(uint16_t); - hash += hash >> 11; - } - - /* Handle end cases */ - switch (rem) { - case 3: hash += sfh_get16(data); - hash ^= hash << 16; - hash ^= data[sizeof(uint16_t)] << 18; - hash += hash >> 11; - break; - case 2: hash += sfh_get16(data); - hash ^= hash << 11; - hash += hash >> 17; - break; - case 1: hash += *data; - hash ^= hash << 10; - hash += hash >> 1; - } - - /* Force "avalanching" of final 127 bits */ - hash ^= hash << 3; - hash += hash >> 5; - hash ^= hash << 4; - hash += hash >> 17; - hash ^= hash << 25; - hash += hash >> 6; - - return hash; -} - -uint32_t lmo_canon_hash(const char *str, int len) -{ - char res[4096]; - char *ptr, prev; - int off; - - if (!str || len >= sizeof(res)) - return 0; - - for (prev = ' ', ptr = res, off = 0; off < len; prev = *str, off++, str++) - { - if (isspace(*str)) - { - if (!isspace(prev)) - *ptr++ = ' '; - } - else - { - *ptr++ = *str; - } - } - - if ((ptr > res) && isspace(*(ptr-1))) - ptr--; - - return sfh_hash(res, ptr - res); -} - -lmo_archive_t * lmo_open(const char *file) -{ - int in = -1; - uint32_t idx_offset = 0; - struct stat s; - - lmo_archive_t *ar = NULL; - - if (stat(file, &s) == -1) - goto err; - - if ((in = open(file, O_RDONLY)) == -1) - goto err; - - if ((ar = (lmo_archive_t *)malloc(sizeof(*ar))) != NULL) - { - memset(ar, 0, sizeof(*ar)); - - ar->fd = in; - ar->size = s.st_size; - - fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC); - - if ((ar->mmap = mmap(NULL, ar->size, PROT_READ, MAP_SHARED, ar->fd, 0)) == MAP_FAILED) - goto err; - - idx_offset = ntohl(*((const uint32_t *) - (ar->mmap + ar->size - sizeof(uint32_t)))); - - if (idx_offset >= ar->size) - goto err; - - ar->index = (lmo_entry_t *)(ar->mmap + idx_offset); - ar->length = (ar->size - idx_offset - sizeof(uint32_t)) / sizeof(lmo_entry_t); - ar->end = ar->mmap + ar->size; - - return ar; - } - -err: - if (in > -1) - close(in); - - if (ar != NULL) - { - if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) - munmap(ar->mmap, ar->size); - - free(ar); - } - - return NULL; -} - -void lmo_close(lmo_archive_t *ar) -{ - if (ar != NULL) - { - if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) - munmap(ar->mmap, ar->size); - - close(ar->fd); - free(ar); - - ar = NULL; - } -} - - -lmo_catalog_t *_lmo_catalogs = NULL; -lmo_catalog_t *_lmo_active_catalog = NULL; - -int lmo_load_catalog(const char *lang, const char *dir) -{ - DIR *dh = NULL; - char pattern[16]; - char path[PATH_MAX]; - struct dirent *de = NULL; - - lmo_archive_t *ar = NULL; - lmo_catalog_t *cat = NULL; - - if (!lmo_change_catalog(lang)) - return 0; - - if (!dir || !(dh = opendir(dir))) - goto err; - - if (!(cat = malloc(sizeof(*cat)))) - goto err; - - memset(cat, 0, sizeof(*cat)); - - snprintf(cat->lang, sizeof(cat->lang), "%s", lang); - snprintf(pattern, sizeof(pattern), "*.%s.lmo", lang); - - while ((de = readdir(dh)) != NULL) - { - if (!fnmatch(pattern, de->d_name, 0)) - { - snprintf(path, sizeof(path), "%s/%s", dir, de->d_name); - ar = lmo_open(path); - - if (ar) - { - ar->next = cat->archives; - cat->archives = ar; - } - } - } - - closedir(dh); - - cat->next = _lmo_catalogs; - _lmo_catalogs = cat; - - if (!_lmo_active_catalog) - _lmo_active_catalog = cat; - - return 0; - -err: - if (dh) closedir(dh); - if (cat) free(cat); - - return -1; -} - -int lmo_change_catalog(const char *lang) -{ - lmo_catalog_t *cat; - - for (cat = _lmo_catalogs; cat; cat = cat->next) - { - if (!strncmp(cat->lang, lang, sizeof(cat->lang))) - { - _lmo_active_catalog = cat; - return 0; - } - } - - return -1; -} - -static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash) -{ - unsigned int m, l, r; - uint32_t k; - - l = 0; - r = ar->length - 1; - - while (1) - { - m = l + ((r - l) / 2); - - if (r < l) - break; - - k = ntohl(ar->index[m].key_id); - - if (k == hash) - return &ar->index[m]; - - if (k > hash) - { - if (!m) - break; - - r = m - 1; - } - else - { - l = m + 1; - } - } - - return NULL; -} - -int lmo_translate(const char *key, int keylen, char **out, int *outlen) -{ - uint32_t hash; - lmo_entry_t *e; - lmo_archive_t *ar; - - if (!key || !_lmo_active_catalog) - return -2; - - hash = lmo_canon_hash(key, keylen); - - for (ar = _lmo_active_catalog->archives; ar; ar = ar->next) - { - if ((e = lmo_find_entry(ar, hash)) != NULL) - { - *out = ar->mmap + ntohl(e->offset); - *outlen = ntohl(e->length); - return 0; - } - } - - return -1; -} - -void lmo_close_catalog(const char *lang) -{ - lmo_archive_t *ar, *next; - lmo_catalog_t *cat, *prev; - - for (prev = NULL, cat = _lmo_catalogs; cat; prev = cat, cat = cat->next) - { - if (!strncmp(cat->lang, lang, sizeof(cat->lang))) - { - if (prev) - prev->next = cat->next; - else - _lmo_catalogs = cat->next; - - for (ar = cat->archives; ar; ar = next) - { - next = ar->next; - lmo_close(ar); - } - - free(cat); - break; - } - } -} diff --git a/package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.h b/package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.h deleted file mode 100644 index 57f59aa56..000000000 --- a/package/lean/luci-app-xlnetacc/tools/po2lmo/src/template_lmo.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * lmo - Lua Machine Objects - General header - * - * Copyright (C) 2009-2012 Jo-Philipp Wich - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef _TEMPLATE_LMO_H_ -#define _TEMPLATE_LMO_H_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if (defined(__GNUC__) && defined(__i386__)) -#define sfh_get16(d) (*((const uint16_t *) (d))) -#else -#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ - +(uint32_t)(((const uint8_t *)(d))[0]) ) -#endif - - -struct lmo_entry { - uint32_t key_id; - uint32_t val_id; - uint32_t offset; - uint32_t length; -} __attribute__((packed)); - -typedef struct lmo_entry lmo_entry_t; - - -struct lmo_archive { - int fd; - int length; - uint32_t size; - lmo_entry_t *index; - char *mmap; - char *end; - struct lmo_archive *next; -}; - -typedef struct lmo_archive lmo_archive_t; - - -struct lmo_catalog { - char lang[6]; - struct lmo_archive *archives; - struct lmo_catalog *next; -}; - -typedef struct lmo_catalog lmo_catalog_t; - - -uint32_t sfh_hash(const char *data, int len); -uint32_t lmo_canon_hash(const char *data, int len); - -lmo_archive_t * lmo_open(const char *file); -void lmo_close(lmo_archive_t *ar); - - -extern lmo_catalog_t *_lmo_catalogs; -extern lmo_catalog_t *_lmo_active_catalog; - -int lmo_load_catalog(const char *lang, const char *dir); -int lmo_change_catalog(const char *lang); -int lmo_translate(const char *key, int keylen, char **out, int *outlen); -void lmo_close_catalog(const char *lang); - -#endif diff --git a/package/lean/luci-app-zerotier/Makefile b/package/lean/luci-app-zerotier/Makefile deleted file mode 100644 index 4f8b6034d..000000000 --- a/package/lean/luci-app-zerotier/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI for Zerotier -LUCI_DEPENDS:=+zerotier -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=12 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature - - diff --git a/package/lean/luci-app-zerotier/luasrc/controller/zerotier.lua b/package/lean/luci-app-zerotier/luasrc/controller/zerotier.lua deleted file mode 100644 index fcbc28b68..000000000 --- a/package/lean/luci-app-zerotier/luasrc/controller/zerotier.lua +++ /dev/null @@ -1,18 +0,0 @@ -module("luci.controller.zerotier",package.seeall) - -function index() - if not nixio.fs.access("/etc/config/zerotier")then -return -end - -entry({"admin","vpn"}, firstchild(), "VPN", 45).dependent = false -entry({"admin","vpn","zerotier"},cbi("zerotier"),_("ZeroTier"),90).dependent=true -entry({"admin","vpn","zerotier","status"},call("act_status")).leaf=true -end - -function act_status() -local e={} - e.running=luci.sys.call("pgrep /usr/bin/zerotier-one >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier.lua b/package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier.lua deleted file mode 100644 index c63848981..000000000 --- a/package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier.lua +++ /dev/null @@ -1,50 +0,0 @@ -local e=require"nixio.fs" -local e=luci.http -local o=require"luci.model.network".init() -local a,t,e,b - -a=Map("zerotier",translate("ZeroTier"),translate("Zerotier is an open source, cross-platform and easy to use virtual LAN")) -a:section(SimpleSection).template = "zerotier/zerotier_status" - -t=a:section(NamedSection,"sample_config","zerotier") -t.anonymous=true -t.addremove=false - -t:tab("basic", translate("Base Setting")) - -e=t:taboption("basic", Flag,"enabled",translate("Enable")) -e.default=0 -e.rmempty=false - -e=t:taboption("basic", DynamicList,"join",translate('ZeroTier Network ID')) -e.password=true -e.rmempty=false - -e=t:taboption("basic", Flag,"nat",translate("Auto NAT Clients")) -e.default=0 -e.rmempty=false -e.description = translate("Allow zerotier clients access your LAN network") - -e=t:taboption("basic", DummyValue,"opennewwindow" , - translate("")) -e.description = translate("Create or manage your zerotier network, and auth clients who could access") - -local dog = "/tmp/zero.info" -t:tab("watchdog", translate("Interface Info")) -log = t:taboption("watchdog", TextValue, "sylogtext") -log.template = "cbi/tvalue" -log.rows = 8 -log.wrap = "off" -log.readonly="readonly" - -function log.cfgvalue(self, section) - luci.sys.exec("ifconfig $(ifconfig | grep zt | awk '{print $1}') > /tmp/zero.info") - return nixio.fs.readfile(dog) or "" -end - -function log.write(self, section, value) - value = value:gsub("\r\n?", "\n") - nixio.fs.writefile(dog, value) -end - -return a diff --git a/package/lean/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm b/package/lean/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm deleted file mode 100644 index 9d216c5d9..000000000 --- a/package/lean/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
    -

    - <%:Collecting data...%> -

    -
    diff --git a/package/lean/luci-app-zerotier/po/zh-cn/zerotier.po b/package/lean/luci-app-zerotier/po/zh-cn/zerotier.po deleted file mode 100644 index 3787a890d..000000000 --- a/package/lean/luci-app-zerotier/po/zh-cn/zerotier.po +++ /dev/null @@ -1,22 +0,0 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Gtranslator 2.91.7\n" -"Plural-Forms: nplurals=1; plural=0;\n" - -msgid "Zerotier is an open source, cross-platform and easy to use virtual LAN" -msgstr "Zerotier是一个开源,跨平台,而且适合内网穿透互联的傻瓜配置虚拟 VPN LAN" - -msgid "Auto NAT Clients" -msgstr "自动允许客户端NAT" - -msgid "Allow zerotier clients access your LAN network" -msgstr "允许Zerotier的拨入客户端访问路由器LAN资源(需要在 Zerotier管理页面设定到LAN网段的路由表)" - -msgid "Create or manage your zerotier network, and auth clients who could access" -msgstr "点击跳转到Zerotier官网管理平台,新建或者管理网络,并允许客户端接入访问你私人网路(新接入的节点默认不允许访问)" - -msgid "Interface Info" -msgstr "接口信息" diff --git a/package/lean/luci-app-zerotier/root/etc/init.d/zerotier b/package/lean/luci-app-zerotier/root/etc/init.d/zerotier deleted file mode 100755 index 7acbc6e8e..000000000 --- a/package/lean/luci-app-zerotier/root/etc/init.d/zerotier +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=90 - -USE_PROCD=1 - -PROG=/usr/bin/zerotier-one -CONFIG_PATH=/var/lib/zerotier-one - -section_enabled() { - config_get_bool enabled "$1" 'enabled' 0 - [ $enabled -gt 0 ] -} - -start_instance() { - local cfg="$1" - local port secret config_path - local ARGS="" - - if ! section_enabled "$cfg"; then - echo "disabled in config" - return 1 - fi - - config_get config_path $cfg 'config_path' - config_get_bool port $cfg 'port' - config_get secret $cfg 'secret' - - # Remove existing link or folder - rm -rf $CONFIG_PATH - - # Create link from CONFIG_PATH to config_path - if [ -n "$config_path" -a "$config_path" != $CONFIG_PATH ]; then - if [ ! -d "$config_path" ]; then - echo "ZeroTier config_path does not exist: $config_path" - return - fi - - ln -s $config_path $CONFIG_PATH - fi - - mkdir -p $CONFIG_PATH/networks.d - - if [ -n "$port" ]; then - ARGS="$ARGS -p$port" - fi - - if [ "$secret" = "generate" ]; then - echo "Generate secret - please wait..." - local sf="/tmp/zt.$cfg.secret" - - zerotier-idtool generate "$sf" > /dev/null - [ $? -ne 0 ] && return 1 - - secret="$(cat $sf)" - rm "$sf" - - uci set zerotier.$cfg.secret="$secret" - uci commit zerotier - fi - - if [ -n "$secret" ]; then - echo "$secret" > $CONFIG_PATH/identity.secret - # make sure there is not previous identity.public - rm -f $CONFIG_PATH/identity.public - fi - - add_join() { - # an (empty) config file will cause ZT to join a network - touch $CONFIG_PATH/networks.d/$1.conf - } - - config_list_foreach $cfg 'join' add_join - - procd_open_instance - procd_set_param command $PROG $ARGS $CONFIG_PATH - procd_set_param stderr 1 - procd_close_instance -} - -start_service() { - config_load 'zerotier' - config_foreach start_instance 'zerotier' - touch /tmp/zero.log && nohup /etc/zerotier.start > /tmp/zero.log 2>&1 & -} - -stop_instance() { - rm -f /tmp/zero.log - local cfg="$1" - - # Remove existing link or folder - rm -rf $CONFIG_PATH -} - -stop_service() { - config_load 'zerotier' - config_foreach stop_instance 'zerotier' -} - diff --git a/package/lean/luci-app-zerotier/root/etc/uci-defaults/40_luci-zerotier b/package/lean/luci-app-zerotier/root/etc/uci-defaults/40_luci-zerotier deleted file mode 100755 index 95f0ccfc9..000000000 --- a/package/lean/luci-app-zerotier/root/etc/uci-defaults/40_luci-zerotier +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@zerotier[-1] - add ucitrack zerotier - set ucitrack.@zerotier[-1].init=zerotier - commit ucitrack - delete firewall.zerotier - set firewall.zerotier=include - set firewall.zerotier.type=script - set firewall.zerotier.path=/etc/zerotier.start - set firewall.zerotier.reload=1 - commit firewall -EOF - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/package/lean/luci-app-zerotier/root/etc/zerotier.start b/package/lean/luci-app-zerotier/root/etc/zerotier.start deleted file mode 100755 index 7bfc2acf5..000000000 --- a/package/lean/luci-app-zerotier/root/etc/zerotier.start +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -zero_enable=$(uci get zerotier.sample_config.enabled) - -if [ $zero_enable -eq 1 ]; then - -if [ -f /tmp/zero.log ];then -while [ "$(ifconfig | grep zt | awk '{print $1}')" = "" ] -do - sleep 1 -done -fi - -nat_enable=$(uci get zerotier.sample_config.nat) -zt0=$(ifconfig | grep zt | awk '{print $1}') -echo "zt interface $zt0 is started!" -echo $zt0 > /tmp/zt.nif -iptables -D FORWARD -i $zt0 -j ACCEPT 2>/dev/null -iptables -D FORWARD -o $zt0 -j ACCEPT 2>/dev/null -iptables -t nat -D POSTROUTING -o $zt0 -j MASQUERADE 2>/dev/null -if [ $nat_enable -eq 1 ]; then - iptables -I FORWARD -i $zt0 -j ACCEPT - iptables -I FORWARD -o $zt0 -j ACCEPT - iptables -t nat -I POSTROUTING -o $zt0 -j MASQUERADE -fi - -fi diff --git a/package/lean/luci-app-zerotier/root/etc/zerotier.stop b/package/lean/luci-app-zerotier/root/etc/zerotier.stop deleted file mode 100755 index 754c512b4..000000000 --- a/package/lean/luci-app-zerotier/root/etc/zerotier.stop +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -zt0=$(ifconfig | grep zt | awk '{print $1}') -if [ "$zt0" = "" ]; then - zt0=$(cat /tmp/cat /tmp/zt.nif) -fi -echo "zt interface $zt0 is stopped!" -iptables -D FORWARD -i $zt0 -j ACCEPT 2>/dev/null -iptables -D FORWARD -o $zt0 -j ACCEPT 2>/dev/null -iptables -t nat -D POSTROUTING -o $zt0 -j MASQUERADE 2>/dev/null diff --git a/package/lean/luci-lib-fs/Makefile b/package/lean/luci-lib-fs/Makefile deleted file mode 100644 index 9d78a2971..000000000 --- a/package/lean/luci-lib-fs/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -# -# Copyright (C) 2009 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=luci-lib-fs -PKG_VERSION:=1.0 -PKG_RELEASE:=1 - -PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) -PKG_INSTALL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/luci-lib-fs - SUBMENU:=Lua - SECTION:=lang - CATEGORY:=Languages - TITLE:=luci-lib-fs - PKGARCH:=all - URL:=https://github.com/lbthomsen/openwrt-luci - DEPENDS:=+luci +luci-lib-nixio -endef - -define Package/luci-lib-fs/description - luci-lib-fs -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Build/Install -endef - - -define Package/luci-lib-fs/install - $(INSTALL_DIR) $(1)/usr/lib/lua/luci - $(CP) ./files/*.lua $(1)/usr/lib/lua/luci - -endef - -$(eval $(call BuildPackage,luci-lib-fs)) diff --git a/package/lean/luci-lib-fs/files/fs.lua b/package/lean/luci-lib-fs/files/fs.lua deleted file mode 100644 index a81ff675d..000000000 --- a/package/lean/luci-lib-fs/files/fs.lua +++ /dev/null @@ -1,244 +0,0 @@ ---[[ -LuCI - Filesystem tools - -Description: -A module offering often needed filesystem manipulation functions - -FileId: -$Id$ - -License: -Copyright 2008 Steven Barth - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - -]]-- - -local io = require "io" -local os = require "os" -local ltn12 = require "luci.ltn12" -local fs = require "nixio.fs" -local nutil = require "nixio.util" - -local type = type - ---- LuCI filesystem library. -module "luci.fs" - ---- Test for file access permission on given path. --- @class function --- @name access --- @param str String value containing the path --- @return Number containing the return code, 0 on sucess or nil on error --- @return String containing the error description (if any) --- @return Number containing the os specific errno (if any) -access = fs.access - ---- Evaluate given shell glob pattern and return a table containing all matching --- file and directory entries. --- @class function --- @name glob --- @param filename String containing the path of the file to read --- @return Table containing file and directory entries or nil if no matches --- @return String containing the error description (if no matches) --- @return Number containing the os specific errno (if no matches) -function glob(...) - local iter, code, msg = fs.glob(...) - if iter then - return nutil.consume(iter) - else - return nil, code, msg - end -end - ---- Checks wheather the given path exists and points to a regular file. --- @param filename String containing the path of the file to test --- @return Boolean indicating wheather given path points to regular file -function isfile(filename) - return fs.stat(filename, "type") == "reg" -end - ---- Checks wheather the given path exists and points to a directory. --- @param dirname String containing the path of the directory to test --- @return Boolean indicating wheather given path points to directory -function isdirectory(dirname) - return fs.stat(dirname, "type") == "dir" -end - ---- Read the whole content of the given file into memory. --- @param filename String containing the path of the file to read --- @return String containing the file contents or nil on error --- @return String containing the error message on error -readfile = fs.readfile - ---- Write the contents of given string to given file. --- @param filename String containing the path of the file to read --- @param data String containing the data to write --- @return Boolean containing true on success or nil on error --- @return String containing the error message on error -writefile = fs.writefile - ---- Copies a file. --- @param source Source file --- @param dest Destination --- @return Boolean containing true on success or nil on error -copy = fs.datacopy - ---- Renames a file. --- @param source Source file --- @param dest Destination --- @return Boolean containing true on success or nil on error -rename = fs.move - ---- Get the last modification time of given file path in Unix epoch format. --- @param path String containing the path of the file or directory to read --- @return Number containing the epoch time or nil on error --- @return String containing the error description (if any) --- @return Number containing the os specific errno (if any) -function mtime(path) - return fs.stat(path, "mtime") -end - ---- Set the last modification time of given file path in Unix epoch format. --- @param path String containing the path of the file or directory to read --- @param mtime Last modification timestamp --- @param atime Last accessed timestamp --- @return 0 in case of success nil on error --- @return String containing the error description (if any) --- @return Number containing the os specific errno (if any) -function utime(path, mtime, atime) - return fs.utimes(path, atime, mtime) -end - ---- Return the last element - usually the filename - from the given path with --- the directory component stripped. --- @class function --- @name basename --- @param path String containing the path to strip --- @return String containing the base name of given path --- @see dirname -basename = fs.basename - ---- Return the directory component of the given path with the last element --- stripped of. --- @class function --- @name dirname --- @param path String containing the path to strip --- @return String containing the directory component of given path --- @see basename -dirname = fs.dirname - ---- Return a table containing all entries of the specified directory. --- @class function --- @name dir --- @param path String containing the path of the directory to scan --- @return Table containing file and directory entries or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function dir(...) - local iter, code, msg = fs.dir(...) - if iter then - local t = nutil.consume(iter) - t[#t+1] = "." - t[#t+1] = ".." - return t - else - return nil, code, msg - end -end - ---- Create a new directory, recursively on demand. --- @param path String with the name or path of the directory to create --- @param recursive Create multiple directory levels (optional, default is true) --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function mkdir(path, recursive) - return recursive and fs.mkdirr(path) or fs.mkdir(path) -end - ---- Remove the given empty directory. --- @class function --- @name rmdir --- @param path String containing the path of the directory to remove --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -rmdir = fs.rmdir - -local stat_tr = { - reg = "regular", - dir = "directory", - lnk = "link", - chr = "character device", - blk = "block device", - fifo = "fifo", - sock = "socket" -} ---- Get information about given file or directory. --- @class function --- @name stat --- @param path String containing the path of the directory to query --- @return Table containing file or directory properties or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function stat(path, key) - local data, code, msg = fs.stat(path) - if data then - data.mode = data.modestr - data.type = stat_tr[data.type] or "?" - end - return key and data and data[key] or data, code, msg -end - ---- Set permissions on given file or directory. --- @class function --- @name chmod --- @param path String containing the path of the directory --- @param perm String containing the permissions to set ([ugoa][+-][rwx]) --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -chmod = fs.chmod - ---- Create a hard- or symlink from given file (or directory) to specified target --- file (or directory) path. --- @class function --- @name link --- @param path1 String containing the source path to link --- @param path2 String containing the destination path for the link --- @param symlink Boolean indicating wheather to create a symlink (optional) --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -function link(src, dest, sym) - return sym and fs.symlink(src, dest) or fs.link(src, dest) -end - ---- Remove the given file. --- @class function --- @name unlink --- @param path String containing the path of the file to remove --- @return Number with the return code, 0 on sucess or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -unlink = fs.unlink - ---- Retrieve target of given symlink. --- @class function --- @name readlink --- @param path String containing the path of the symlink to read --- @return String containing the link target or nil on error --- @return String containing the error description on error --- @return Number containing the os specific errno on error -readlink = fs.readlink diff --git a/package/lean/open-vm-tools/Makefile b/package/lean/open-vm-tools/Makefile deleted file mode 100644 index a5ed2ff28..000000000 --- a/package/lean/open-vm-tools/Makefile +++ /dev/null @@ -1,129 +0,0 @@ -# -# Copyright (C) 2018 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=open-vm-tools -PKG_VERSION:=10.3.0 -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL=https://github.com/vmware/open-vm-tools.git -PKG_SOURCE_VERSION:=stable-$(PKG_VERSION) - -PKG_FIXUP:=autoreconf -PKG_LICENSE:=LGPL-2.1 - -include $(INCLUDE_DIR)/package.mk - -define Package/open-vm-tools - SECTION:=utils - CATEGORY:=Utilities - DEPENDS:=@TARGET_x86 +glib2 +libpthread +libtirpc - TITLE:=open-vm-tools - URL:=https://github.com/vmware/open-vm-tools -endef - -define Package/open-vm-tools-vm-tools/description - Open Virtual Machine Tools for VMware guest OS -endef - - -CONFIGURE_PATH = open-vm-tools -MAKE_PATH = open-vm-tools - -CONFIGURE_ARGS+= \ - --without-icu \ - --disable-multimon \ - --disable-docs \ - --disable-tests \ - --without-gtkmm \ - --without-gtkmm3 \ - --without-xerces \ - --without-pam \ - --disable-grabbitmqproxy \ - --disable-vgauth \ - --disable-deploypkg \ - --without-root-privileges \ - --without-kernel-modules \ - --without-dnet \ - --with-tirpc \ - --without-x \ - --without-gtk2 \ - --without-gtk3 \ - --without-xerces - - -define Package/open-vm-tools/install - $(INSTALL_DIR) $(1)/etc/init.d/ - $(INSTALL_BIN) ./files/vmtoolsd.init $(1)/etc/init.d/vmtoolsd - - $(INSTALL_DIR) $(1)/etc/vmware-tools/ - $(INSTALL_DATA) ./files/tools.conf $(1)/etc/vmware-tools/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/poweroff-vm-default $(1)/etc/vmware-tools/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/poweron-vm-default $(1)/etc/vmware-tools/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/resume-vm-default $(1)/etc/vmware-tools/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/suspend-vm-default $(1)/etc/vmware-tools/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/scripts/common/statechange.subr $(1)/etc/vmware-tools/ - - $(INSTALL_DIR) $(1)/etc/vmware-tools/scripts/vmware/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/linux/network $(1)/etc/vmware-tools/scripts/vmware/ - - $(INSTALL_DIR) $(1)/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/checkvm/.libs/vmware-checkvm $(1)/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/namespacetool/.libs/vmware-namespace-cmd $(1)/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/xferlogs/.libs/vmware-xferlogs $(1)/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/hgfsclient/.libs/vmware-hgfsclient $(1)/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/.libs/vmtoolsd $(1)/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/rpctool/vmware-rpctool $(1)/bin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/.libs/vmware-toolbox-cmd $(1)/bin/ - - $(INSTALL_DIR) $(1)/sbin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/hgfsmounter/mount.vmhgfs $(1)/sbin/ - $(INSTALL_BIN) ./files/shutdown $(1)/sbin/ - - $(INSTALL_DIR) $(1)/lib/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/libhgfs/.libs/libhgfs.so.0.0.0 $(1)/lib/ - $(LN) libhgfs.so.0.0.0 $(1)/lib/libhgfs.so.0 - $(LN) libhgfs.so.0.0.0 $(1)/lib/libhgfs.so - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/libguestlib/.libs/libguestlib.so.0.0.0 $(1)/lib/ - $(LN) libguestlib.so.0.0.0 $(1)/lib/libguestlib.so.0 - $(LN) libguestlib.so.0.0.0 $(1)/lib/libguestlib.so - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/libvmtools/.libs/libvmtools.so.0.0.0 $(1)/lib/ - $(LN) libvmtools.so.0.0.0 $(1)/lib/libvmtools.so.0 - $(LN) libvmtools.so.0.0.0 $(1)/lib/libvmtools.so - - $(INSTALL_DIR) $(1)/usr/lib/open-vm-tools/plugins/common/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/vix/.libs/libvix.so $(1)/usr/lib/open-vm-tools/plugins/common/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/hgfsServer/.libs/libhgfsServer.so $(1)/usr/lib/open-vm-tools/plugins/common/ - - $(INSTALL_DIR) $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/resolutionKMS/.libs/libresolutionKMS.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/powerOps/.libs/libpowerOps.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/timeSync/.libs/libtimeSync.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/guestInfo/.libs/libguestInfo.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/vmbackup/.libs/libvmbackup.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ - - $(INSTALL_DIR) $(1)/lib/udev/rules.d/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/udev/99-vmware-scsi-udev.rules $(1)/lib/udev/rules.d/ - - $(INSTALL_DIR) $(1)/share/open-vm-tools/messages/ko/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/l10n/ko.vmsg $(1)/share/open-vm-tools/messages/ko/vmtoolsd.vmsg - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/ko.vmsg $(1)/share/open-vm-tools/messages/ko/toolboxcmd.vmsg - $(INSTALL_DIR) $(1)/share/open-vm-tools/messages/de/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/l10n/de.vmsg $(1)/share/open-vm-tools/messages/de/vmtoolsd.vmsg - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/de.vmsg $(1)/share/open-vm-tools/messages/de/toolboxcmd.vmsg - $(INSTALL_DIR) $(1)/share/open-vm-tools/messages/ja/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/l10n/ja.vmsg $(1)/share/open-vm-tools/messages/ja/vmtoolsd.vmsg - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/ja.vmsg $(1)/share/open-vm-tools/messages/ja/toolboxcmd.vmsg - $(INSTALL_DIR) $(1)/share/open-vm-tools/messages/zh_CN/ - $(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/zh_CN.vmsg $(1)/share/open-vm-tools/messages/zh_CN/toolboxcmd.vmsg -endef - -$(eval $(call BuildPackage,open-vm-tools)) diff --git a/package/lean/open-vm-tools/files/shutdown b/package/lean/open-vm-tools/files/shutdown deleted file mode 100644 index e814571ff..000000000 --- a/package/lean/open-vm-tools/files/shutdown +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -#compatibility script for openvmtools - -if [ "$1" == "-r" ]; then - /sbin/reboot -else - /sbin/poweroff -fi diff --git a/package/lean/open-vm-tools/files/tools.conf b/package/lean/open-vm-tools/files/tools.conf deleted file mode 100644 index f6cae70cc..000000000 --- a/package/lean/open-vm-tools/files/tools.conf +++ /dev/null @@ -1,2 +0,0 @@ -[guestinfo] -disable-perf-mon=1 diff --git a/package/lean/open-vm-tools/files/vmtoolsd.init b/package/lean/open-vm-tools/files/vmtoolsd.init deleted file mode 100644 index 22a002088..000000000 --- a/package/lean/open-vm-tools/files/vmtoolsd.init +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=10 - -USE_PROCD=1 -PROG=/bin/vmtoolsd - -start_service() { - procd_open_instance - procd_set_param command "$PROG" - procd_set_param respawn - procd_close_instance -} - diff --git a/package/lean/open-vm-tools/patches/0001-configure.ac-don-t-use-dnet-config.patch b/package/lean/open-vm-tools/patches/0001-configure.ac-don-t-use-dnet-config.patch deleted file mode 100644 index 893beb986..000000000 --- a/package/lean/open-vm-tools/patches/0001-configure.ac-don-t-use-dnet-config.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -urN a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac ---- a/open-vm-tools/configure.ac -+++ b/open-vm-tools/configure.ac -@@ -949,7 +949,7 @@ - AC_VMW_CHECK_LIB([dnet], - [DNET], - [], -- [dnet-config], -+ [], - [], - [dnet.h], - [intf_open], -@@ -959,7 +959,7 @@ - - if test $have_dnet = "no"; then - AC_MSG_ERROR( -- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) -+ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) - fi - fi - diff --git a/package/lean/open-vm-tools/patches/0002-add-include-sys-sysmacros.h.patch b/package/lean/open-vm-tools/patches/0002-add-include-sys-sysmacros.h.patch deleted file mode 100644 index accdb10a3..000000000 --- a/package/lean/open-vm-tools/patches/0002-add-include-sys-sysmacros.h.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -urN a/open-vm-tools/lib/wiper/wiperPosix.c b/open-vm-tools/lib/wiper/wiperPosix.c ---- a/open-vm-tools/lib/wiper/wiperPosix.c -+++ b/open-vm-tools/lib/wiper/wiperPosix.c -@@ -43,6 +43,9 @@ - # include - # endif /* __FreeBSD_version >= 500000 */ - #endif -+#if defined(__linux__) -+#include -+#endif - #include - - #include "vmware.h" diff --git a/package/lean/open-vm-tools/patches/0003-Use-configure-test-for-struct-timespec.patch b/package/lean/open-vm-tools/patches/0003-Use-configure-test-for-struct-timespec.patch deleted file mode 100644 index 5b6785615..000000000 --- a/package/lean/open-vm-tools/patches/0003-Use-configure-test-for-struct-timespec.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -urN a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac ---- a/open-vm-tools/configure.ac -+++ b/open-vm-tools/configure.ac -@@ -1208,6 +1208,7 @@ - AC_TYPE_PID_T - AC_TYPE_SIZE_T - AC_CHECK_MEMBERS([struct stat.st_rdev]) -+AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include ]]) - AC_HEADER_TIME - AC_STRUCT_TM - AC_C_VOLATILE -diff -urN a/open-vm-tools/lib/include/hgfsUtil.h b/open-vm-tools/lib/include/hgfsUtil.h ---- a/open-vm-tools/lib/include/hgfsUtil.h -+++ b/open-vm-tools/lib/include/hgfsUtil.h -@@ -53,13 +53,7 @@ - # include - # endif - # include "vm_basic_types.h" --# if !defined _STRUCT_TIMESPEC && \ -- !defined _TIMESPEC_DECLARED && \ -- !defined __timespec_defined && \ -- !defined sun && \ -- !defined __FreeBSD__ && \ -- !__APPLE__ && \ -- !defined _WIN32 -+# if !defined HAVE_STRUCT_TIMESPEC_TV_SEC - struct timespec { - time_t tv_sec; - long tv_nsec; diff --git a/package/lean/open-vm-tools/patches/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/package/lean/open-vm-tools/patches/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch deleted file mode 100644 index 8c7aea993..000000000 --- a/package/lean/open-vm-tools/patches/0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -urN a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c ---- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c -+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c -@@ -105,11 +105,13 @@ - #endif - - /* -- * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the -- * Solaris version of . -+ * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in -+ * POSIX. - */ --#ifdef sun -+#ifndef ACCESSPERMS - # define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) -+#endif -+#ifndef ALLPERMS - # define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) - #endif - -diff -urN a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c ---- a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c -+++ b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c -@@ -52,7 +52,7 @@ - - #define DND_ROOTDIR_PERMS (S_IRWXU | S_IRWXG | S_IRWXO) - #define DND_STAGINGDIR_PERMS (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) --#ifdef sun -+#ifndef ACCESSPERMS - #define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) - #endif - #ifdef __ANDROID__ -@@ -61,7 +61,6 @@ - */ - #define NO_SETMNTENT - #define NO_ENDMNTENT --#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) - #endif - - diff --git a/package/lean/open-vm-tools/patches/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch b/package/lean/open-vm-tools/patches/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch deleted file mode 100644 index de9882eac..000000000 --- a/package/lean/open-vm-tools/patches/0005-Use-configure-to-test-for-feature-instead-of-platfor.patch +++ /dev/null @@ -1,105 +0,0 @@ -diff -urN a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac ---- a/open-vm-tools/configure.ac -+++ b/open-vm-tools/configure.ac -@@ -897,6 +897,7 @@ - - AC_CHECK_FUNCS([ecvt]) - AC_CHECK_FUNCS([fcvt]) -+AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv]) - - AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes]) - -@@ -1145,10 +1146,13 @@ - ### - - AC_CHECK_HEADERS([crypt.h]) -+AC_CHECK_HEADERS([ifaddrs.h]) - AC_CHECK_HEADERS([inttypes.h]) - AC_CHECK_HEADERS([stdint.h]) - AC_CHECK_HEADERS([stdlib.h]) - AC_CHECK_HEADERS([wchar.h]) -+AC_CHECK_HEADERS([net/if.h]) -+AC_CHECK_HEADERS([sys/auxv.h]) - AC_CHECK_HEADERS([sys/inttypes.h]) - AC_CHECK_HEADERS([sys/io.h]) - AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD -diff -urN a/open-vm-tools/lib/misc/idLinux.c b/open-vm-tools/lib/misc/idLinux.c ---- a/open-vm-tools/lib/misc/idLinux.c -+++ b/open-vm-tools/lib/misc/idLinux.c -@@ -27,12 +27,9 @@ - #include - #include - #include --#ifdef __linux__ --#if defined(__GLIBC__) && \ -- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) -+#ifdef HAVE_SYS_AUXV_H - #include - #endif --#endif - #ifdef __APPLE__ - #include - #include -@@ -997,31 +994,32 @@ - static Bool - IdIsSetUGid(void) - { --#if defined(__ANDROID__) -- /* Android does not have a secure_getenv, so be conservative. */ -- return TRUE; --#else - /* - * We use __secure_getenv, which returns NULL if the binary is -- * setuid or setgid. Alternatives include, -+ * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not -+ * available. Alternatives include, - * -- * a) getauxval(AT_SECURE); not available until glibc 2.16. -- * b) __libc_enable_secure; may not be exported. -+ * a) issetugid(); not (yet?) available in glibc. -+ * b) getauxval(AT_SECURE); not available until glibc 2.16. -+ * c) __libc_enable_secure; may not be exported. - * -- * Use (a) when we are based on glibc 2.16, or newer. -+ * Use (b) when we are based on glibc 2.16, or newer. - */ - --#if defined(__GLIBC__) && \ -- (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) -+#if HAVE_ISSETUGID -+ return issetugid(); -+#elif HAVE_GETAUXVAL - return getauxval(AT_SECURE) != 0; --#else -+#elif HAVE___SECURE_GETENV - static const char envName[] = "VMW_SETUGID_TEST"; - - if (setenv(envName, "1", TRUE) == -1) { - return TRUE; /* Conservative */ - } - return __secure_getenv(envName) == NULL; --#endif -+#else -+ /* Android does not have a secure_getenv, so be conservative. */ -+ return TRUE; - #endif - } - #endif -diff -urN a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c ---- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c -+++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c -@@ -34,9 +34,13 @@ - #include - #include - #include --#if defined(__FreeBSD__) || defined(__APPLE__) -+#if HAVE_SYS_SYSCTL_H - # include -+#endif -+#if HAVE_IFADDRS_H - # include -+#endif -+#if HAVE_NET_IF_H - # include - #endif - #ifndef NO_DNET diff --git a/package/lean/open-vm-tools/patches/0006-Use-configure-test-for-sys-stat.h-include.patch b/package/lean/open-vm-tools/patches/0006-Use-configure-test-for-sys-stat.h-include.patch deleted file mode 100644 index b680558ae..000000000 --- a/package/lean/open-vm-tools/patches/0006-Use-configure-test-for-sys-stat.h-include.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -urN a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c ---- a/open-vm-tools/services/plugins/vix/vixTools.c -+++ b/open-vm-tools/services/plugins/vix/vixTools.c -@@ -66,7 +66,7 @@ - #include - #endif - --#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__) -+#ifdef HAVE_SYS_STAT_H - #include - #endif - diff --git a/package/lean/open-vm-tools/patches/0007-include-poll.h-instead-of-sys-poll.h.patch b/package/lean/open-vm-tools/patches/0007-include-poll.h-instead-of-sys-poll.h.patch deleted file mode 100644 index f01c79012..000000000 --- a/package/lean/open-vm-tools/patches/0007-include-poll.h-instead-of-sys-poll.h.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -urN a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c ---- a/open-vm-tools/lib/asyncsocket/asyncsocket.c -+++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c -@@ -69,8 +69,8 @@ - #else - #include - #include -+#include - #include --#include - #include - #include - #include diff --git a/package/lean/open-vm-tools/patches/0008-Rename-poll.h-to-vm_poll.h.patch b/package/lean/open-vm-tools/patches/0008-Rename-poll.h-to-vm_poll.h.patch deleted file mode 100644 index 455259917..000000000 --- a/package/lean/open-vm-tools/patches/0008-Rename-poll.h-to-vm_poll.h.patch +++ /dev/null @@ -1,94 +0,0 @@ -diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c -index e0a68e7e..b9675674 100644 ---- a/open-vm-tools/lib/asyncsocket/asyncsocket.c -+++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c -@@ -86,7 +86,7 @@ - #include "random.h" - #include "asyncsocket.h" - #include "asyncSocketBase.h" --#include "poll.h" -+#include "vm_poll.h" - #include "log.h" - #include "err.h" - #include "hostinfo.h" -diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c -index 991a7941..ed0c09f9 100644 ---- a/open-vm-tools/lib/hgfsServer/hgfsServer.c -+++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c -@@ -48,7 +48,7 @@ - #include "hgfsServerOplock.h" - #include "hgfsDirNotify.h" - #include "userlock.h" --#include "poll.h" -+#include "vm_poll.h" - #include "mutexRankLib.h" - #include "vm_basic_asm.h" - #include "unicodeOperations.h" -diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h -index 524147ea..103f944f 100644 ---- a/open-vm-tools/lib/include/asyncsocket.h -+++ b/open-vm-tools/lib/include/asyncsocket.h -@@ -164,7 +164,7 @@ typedef struct AsyncSocket AsyncSocket; - * Or the client can specify its favorite poll class and locking behavior. - * Use of IVmdbPoll is only supported for regular sockets and for Attach. - */ --#include "poll.h" -+#include "vm_poll.h" - struct IVmdbPoll; - typedef struct AsyncSocketPollParams { - int flags; /* Default 0, only POLL_FLAG_NO_BULL is valid */ -diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h -index 46442e55..8bc66997 100644 ---- a/open-vm-tools/lib/include/pollImpl.h -+++ b/open-vm-tools/lib/include/pollImpl.h -@@ -44,7 +44,7 @@ - #define INCLUDE_ALLOW_USERLEVEL - #include "includeCheck.h" - --#include "poll.h" -+#include "vm_poll.h" - #include "vm_basic_asm.h" - - #if defined(__cplusplus) -diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h -similarity index 99% -rename from a/open-vm-tools/lib/include/poll.h -rename to a/open-vm-tools/lib/include/vm_poll.h -index 988fe6d0..e9e74fb5 100644 ---- a/open-vm-tools/lib/include/poll.h -+++ b/open-vm-tools/lib/include/vm_poll.h -@@ -60,7 +60,7 @@ extern "C" { - #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 - #include - #endif --#include -+#include - #define HZ 100 - #endif - #ifdef __ANDROID__ -diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c -index c2c51583..d6c62f10 100644 ---- a/open-vm-tools/lib/rpcIn/rpcin.c -+++ b/open-vm-tools/lib/rpcIn/rpcin.c -@@ -57,7 +57,7 @@ - - #if defined(VMTOOLS_USE_VSOCKET) - # include --# include "poll.h" -+# include "vm_poll.h" - # include "asyncsocket.h" - # include "vmci_defs.h" - #include "dataMap.h" -diff --git a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c -index 03700937..f0b49ad7 100644 ---- a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c -+++ b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c -@@ -48,7 +48,7 @@ - #include "rpcout.h" - #include "rabbitmqProxyConst.h" - #include "vm_basic_types.h" --#include "poll.h" -+#include "vm_poll.h" - #ifdef OPEN_VM_TOOLS - #include "vmci_sockets.h" - #include "sslDirect.h" diff --git a/package/lean/open-vm-tools/patches/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch b/package/lean/open-vm-tools/patches/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch deleted file mode 100644 index 22735334d..000000000 --- a/package/lean/open-vm-tools/patches/0009-use-posix-strerror_r-unless-on-gnu-libc-system.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -urN a/open-vm-tools/lib/err/errPosix.c b/open-vm-tools/lib/err/errPosix.c ---- a/open-vm-tools/lib/err/errPosix.c -+++ b/open-vm-tools/lib/err/errPosix.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - #include "vmware.h" - #include "errInt.h" -@@ -63,11 +64,13 @@ - { - char *p; - --#if defined(__linux__) && !defined(__ANDROID__) -+#if defined(__GLIBC__) && !defined(__ANDROID__) - p = strerror_r(errorNumber, buf, bufSize); - #else -- p = strerror(errorNumber); --#endif -+ if (strerror_r(errorNumber, buf, bufSize) != 0) -+ snprintf(buf, bufSize, "unknown error %i", errorNumber); -+ p = buf; -+#endif /* defined __GLIBC__ */ - ASSERT(p != NULL); - return p; - } diff --git a/package/lean/open-vm-tools/patches/0010-Use-uintmax_t-for-handling-rlim_t.patch b/package/lean/open-vm-tools/patches/0010-Use-uintmax_t-for-handling-rlim_t.patch deleted file mode 100644 index 73eb40307..000000000 --- a/package/lean/open-vm-tools/patches/0010-Use-uintmax_t-for-handling-rlim_t.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -urN a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c ---- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c -+++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c -@@ -5294,8 +5294,8 @@ - goto exit; - } - -- LOG(6, ("%s: File Size limits: 0x%"FMT64"x 0x%"FMT64"x\n", -- __FUNCTION__, fileSize.rlim_cur, fileSize.rlim_max)); -+ LOG(6, ("%s: File Size limits: 0x%jx 0x%jx\n", -+ __FUNCTION__, (uintmax_t)fileSize.rlim_cur, (uintmax_t)fileSize.rlim_max)); - - /* - * Check the offset is within the file size range. diff --git a/package/lean/open-vm-tools/patches/0011-Use-off64_t-instead-of-__off64_t.patch b/package/lean/open-vm-tools/patches/0011-Use-off64_t-instead-of-__off64_t.patch deleted file mode 100644 index 2f68ac8a0..000000000 --- a/package/lean/open-vm-tools/patches/0011-Use-off64_t-instead-of-__off64_t.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -urN a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c ---- a/open-vm-tools/lib/file/fileIOPosix.c -+++ b/open-vm-tools/lib/file/fileIOPosix.c -@@ -206,10 +206,10 @@ - * the symbols (and anyone building XOPEN<700 gets nothing). - */ - extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt, -- __off64_t offset) __attribute__ ((weak)); -+ off64_t offset) __attribute__ ((weak)); - - extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt, -- __off64_t offset) __attribute__ ((weak)); -+ off64_t offset) __attribute__ ((weak)); - #else - #error "Large file support unavailable. Aborting." - #endif diff --git a/package/lean/openwrt-fullconenat/Makefile b/package/lean/openwrt-fullconenat/Makefile deleted file mode 100644 index c0e8c9dcc..000000000 --- a/package/lean/openwrt-fullconenat/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright (C) 2018 Chion Tang -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=fullconenat -PKG_VERSION:=1.0 -PKG_RELEASE:=4 - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/Chion82/netfilter-full-cone-nat.git -PKG_SOURCE_VERSION:=ec14efee249ef11409827a87d6a23dd53deb5149 - -PKG_LICENSE:=GPL-2.0 -PKG_LICENSE_FILES:=LICENSE - -include $(INCLUDE_DIR)/package.mk - -define Package/iptables-mod-fullconenat - SUBMENU:=Firewall - SECTION:=net - CATEGORY:=Network - TITLE:=FULLCONENAT iptables extension - DEPENDS:=+iptables +kmod-ipt-fullconenat - MAINTAINER:=Chion Tang -endef - -define Package/iptables-mod-fullconenat/install - $(INSTALL_DIR) $(1)/usr/lib/iptables - $(INSTALL_BIN) $(PKG_BUILD_DIR)/libipt_FULLCONENAT.so $(1)/usr/lib/iptables -endef - -define KernelPackage/ipt-fullconenat - SUBMENU:=Netfilter Extensions - TITLE:=FULLCONENAT netfilter module - DEPENDS:=+kmod-nf-ipt +kmod-nf-nat - MAINTAINER:=Chion Tang - KCONFIG:=CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y - FILES:=$(PKG_BUILD_DIR)/xt_FULLCONENAT.ko -endef - -include $(INCLUDE_DIR)/kernel-defaults.mk - -define Build/Prepare - $(call Build/Prepare/Default) - $(CP) ./files/Makefile $(PKG_BUILD_DIR)/ -endef - -define Build/Compile - +$(MAKE) $(PKG_JOBS) -C "$(LINUX_DIR)" \ - CROSS_COMPILE="$(TARGET_CROSS)" \ - ARCH="$(LINUX_KARCH)" \ - SUBDIRS="$(PKG_BUILD_DIR)" \ - EXTRA_CFLAGS="$(BUILDFLAGS)" \ - modules - $(call Build/Compile/Default) -endef - -$(eval $(call BuildPackage,iptables-mod-fullconenat)) -$(eval $(call KernelPackage,ipt-fullconenat)) diff --git a/package/lean/openwrt-fullconenat/files/Makefile b/package/lean/openwrt-fullconenat/files/Makefile deleted file mode 100644 index da52a2a4e..000000000 --- a/package/lean/openwrt-fullconenat/files/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -libipt_FULLCONENAT.so: libipt_FULLCONENAT.o - $(CC) -shared -lxtables -o $@ $^; -libipt_FULLCONENAT.o: libipt_FULLCONENAT.c - $(CC) ${CFLAGS} -fPIC -D_INIT=$*_init -c -o $@ $<; - -obj-m += xt_FULLCONENAT.o - diff --git a/package/lean/pdnsd-alt/Makefile b/package/lean/pdnsd-alt/Makefile deleted file mode 100644 index bbe3ebf51..000000000 --- a/package/lean/pdnsd-alt/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=pdnsd -PKG_VERSION:=1.2.9b-par -PKG_RELEASE=$(PKG_SOURCE_VERSION) - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/shadowsocks/pdnsd.git -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=a8e46ccba7b0fa2230d6c42ab6dcd92926f6c21d -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz -# PKG_MIRROR_MD5SUM:= -# CMAKE_INSTALL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/pdnsd-alt - SECTION:=net - CATEGORY:=Network - SUBMENU:=Web Servers/Proxies - DEPENDS:=+libpthread - TITLE:=Proxy DNS Server -endef - -define Package/pdnsd-alt/description - pdnsd, is an IPv6 capable proxy DNS server with permanent caching (the cache - contents are written to hard disk on exit) that is designed to cope with - unreachable or down DNS servers (for example in dial-in networking). - - pdnsd can be used with applications that do dns lookups, eg on startup, and - can't be configured to change that behaviour, to prevent the often - minute-long hangs (or even crashes) that result from stalled dns queries. -endef - -TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include -#TARGET_CFLAGS += -ggdb3 - -CMAKE_OPTIONS += -DDEBUG=1 - -CONFIGURE_ARGS += \ - --with-cachedir=/var/pdnsd - -define Package/pdnsd-alt/install - $(INSTALL_DIR) $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/pdnsd $(1)/usr/sbin/ - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/pdnsd-ctl/pdnsd-ctl $(1)/usr/bin/ - #$(INSTALL_DIR) $(1)/etc/init.d - #$(INSTALL_BIN) ./files/pdnsd.init $(1)/etc/init.d/pdnsd - $(INSTALL_DIR) $(1)/etc - $(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/pdnsd.conf $(1)/etc/ -endef - -$(eval $(call BuildPackage,pdnsd-alt)) diff --git a/package/lean/pdnsd-alt/files/pdnsd.init b/package/lean/pdnsd-alt/files/pdnsd.init deleted file mode 100644 index e678d8d6a..000000000 --- a/package/lean/pdnsd-alt/files/pdnsd.init +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=65 -NAME=pdnsd -DESC="proxy DNS server" - -DAEMON=/usr/sbin/pdnsd -PID_FILE=/var/run/$NAME.pid -CACHEDIR=/var/pdnsd -CACHE=$CACHEDIR/pdnsd.cache - -USER=nobody -GROUP=nogroup - -start() { - echo -n "Starting $DESC: $NAME" - - gen_cache - - $DAEMON --daemon -p $PID_FILE - echo " ." -} - -stop() { - echo -n "Stopping $DESC: $NAME" - kill `cat $PID_FILE` > /dev/null 2>&1 - rm -rf $PID_FILE - echo " ." -} - -restart() { - echo "Restarting $DESC: $NAME... " - stop - sleep 2 - start -} - -gen_cache() -{ - if ! test -f "$CACHE"; then - mkdir -p `dirname $CACHE` - dd if=/dev/zero of="$CACHE" bs=1 count=4 2> /dev/null - chown -R $USER.$GROUP $CACHEDIR - fi -} - diff --git a/package/lean/polarssl/Makefile b/package/lean/polarssl/Makefile deleted file mode 100644 index 57fa81e91..000000000 --- a/package/lean/polarssl/Makefile +++ /dev/null @@ -1,74 +0,0 @@ -# -# Copyright (C) 2011-2015 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=polarssl -SRC_PKG_NAME:=mbedtls -PKG_VERSION:=1.3.16 -PKG_RELEASE:=1 -PKG_USE_MIPS16:=0 - -PKG_SOURCE:=$(SRC_PKG_NAME)-$(PKG_VERSION)-gpl.tgz -PKG_SOURCE_URL:=https://polarssl.org/download/ -PKG_MD5SUM:=66ebbbf67e8a9463041846822b0a1692 - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(SRC_PKG_NAME)-$(PKG_VERSION) - -PKG_BUILD_PARALLEL:=1 -PKG_LICENSE:=GPL-2.0+ - -include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/cmake.mk - -define Package/polarssl/Default - SUBMENU:=SSL - TITLE:=Embedded SSL - URL:=http://polarssl.org/ -endef - -define Package/polarssl/Default/description -The aim of the PolarSSL project is to provide a quality, open-source -cryptographic library written in C and targeted at embedded systems. -endef - -define Package/libpolarssl -$(call Package/polarssl/Default) - SECTION:=libs - CATEGORY:=Libraries - TITLE+= (library) - ABI_VERSION:=$(PKG_VERSION)-$(PKG_RELEASE) -endef - -define Package/libpolarssl/description -$(call Package/polarssl/Default/description) -This package contains the PolarSSL library. -endef - -PKG_INSTALL:=1 - -CMAKE_OPTIONS += \ - -DCMAKE_BUILD_TYPE:String="Release" \ - -DUSE_SHARED_MBEDTLS_LIBRARY:Bool=ON \ - -DENABLE_TESTING:Bool=OFF \ - -DENABLE_PROGRAMS:Bool=OFF \ - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include - $(CP) $(PKG_INSTALL_DIR)/usr/include/polarssl $(1)/usr/include/ - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmbedtls.so.* $(1)/usr/lib/ - $(LN) libmbedtls.so.$(PKG_VERSION) $(1)/usr/lib/libpolarssl.so -endef - -define Package/libpolarssl/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_INSTALL_DIR)/usr/lib/libmbedtls.so.* $(1)/usr/lib/ - $(LN) libmbedtls.so.$(PKG_VERSION) $(1)/usr/lib/libpolarssl.so -endef - -$(eval $(call BuildPackage,libpolarssl)) diff --git a/package/lean/polarssl/patches/100-disable_sslv3.patch b/package/lean/polarssl/patches/100-disable_sslv3.patch deleted file mode 100644 index 56c6c4d23..000000000 --- a/package/lean/polarssl/patches/100-disable_sslv3.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/include/polarssl/config.h -+++ b/include/polarssl/config.h -@@ -1011,8 +1011,8 @@ - * POLARSSL_SHA1_C - * - * Comment this macro to disable support for SSL 3.0 -- */ - #define POLARSSL_SSL_PROTO_SSL3 -+ */ - - /** - * \def POLARSSL_SSL_PROTO_TLS1 diff --git a/package/lean/polarssl/patches/200-reduce_config.patch b/package/lean/polarssl/patches/200-reduce_config.patch deleted file mode 100644 index 6fef1a6f5..000000000 --- a/package/lean/polarssl/patches/200-reduce_config.patch +++ /dev/null @@ -1,252 +0,0 @@ ---- a/include/polarssl/config.h -+++ b/include/polarssl/config.h -@@ -432,8 +432,8 @@ - * Requires: POLARSSL_HMAC_DRBG_C - * - * Comment this macro to disable deterministic ECDSA. -- */ - #define POLARSSL_ECDSA_DETERMINISTIC -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_PSK_ENABLED -@@ -454,8 +454,8 @@ - * TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 - * TLS_PSK_WITH_3DES_EDE_CBC_SHA - * TLS_PSK_WITH_RC4_128_SHA -- */ - #define POLARSSL_KEY_EXCHANGE_PSK_ENABLED -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED -@@ -478,8 +478,8 @@ - * TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 - * TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA - * TLS_DHE_PSK_WITH_RC4_128_SHA -- */ - #define POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED -@@ -498,8 +498,8 @@ - * TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 - * TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA - * TLS_ECDHE_PSK_WITH_RC4_128_SHA -- */ - #define POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED -@@ -523,8 +523,8 @@ - * TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 - * TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA - * TLS_RSA_PSK_WITH_RC4_128_SHA -- */ - #define POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_RSA_ENABLED -@@ -602,8 +602,8 @@ - * TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 - * TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - * TLS_ECDHE_RSA_WITH_RC4_128_SHA -- */ - #define POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -@@ -626,8 +626,8 @@ - * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 - * TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA - * TLS_ECDHE_ECDSA_WITH_RC4_128_SHA -- */ - #define POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED -@@ -650,8 +650,8 @@ - * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 - * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 - * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 -- */ - #define POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED -+ */ - - /** - * \def POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED -@@ -674,8 +674,8 @@ - * TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 - * TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 - * TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 -- */ - #define POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED -+ */ - - /** - * \def POLARSSL_PK_PARSE_EC_EXTENDED -@@ -835,8 +835,8 @@ - * \def POLARSSL_SELF_TEST - * - * Enable the checkup functions (*_self_test). -- */ - #define POLARSSL_SELF_TEST -+ */ - - /** - * \def POLARSSL_SSL_AEAD_RANDOM_IV -@@ -1151,8 +1151,8 @@ - * Requires: POLARSSL_VERSION_C - * - * Comment this to disable run-time checking and save ROM space -- */ - #define POLARSSL_VERSION_FEATURES -+ */ - - /** - * \def POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3 -@@ -1470,8 +1470,8 @@ - * TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 - * TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 - * TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 -- */ - #define POLARSSL_CAMELLIA_C -+ */ - - /** - * \def POLARSSL_CCM_C -@@ -1498,8 +1498,8 @@ - * Requires: POLARSSL_PEM_PARSE_C - * - * This module is used for testing (ssl_client/server). -- */ - #define POLARSSL_CERTS_C -+ */ - - /** - * \def POLARSSL_CIPHER_C -@@ -1538,8 +1538,8 @@ - * library/ssl_tls.c - * - * This module provides debugging functions. -- */ - #define POLARSSL_DEBUG_C -+ */ - - /** - * \def POLARSSL_DES_C -@@ -1594,8 +1594,8 @@ - * ECDHE-ECDSA, ECDHE-RSA, DHE-PSK - * - * Requires: POLARSSL_ECP_C -- */ - #define POLARSSL_ECDH_C -+ */ - - /** - * \def POLARSSL_ECDSA_C -@@ -1609,8 +1609,8 @@ - * ECDHE-ECDSA - * - * Requires: POLARSSL_ECP_C, POLARSSL_ASN1_WRITE_C, POLARSSL_ASN1_PARSE_C -- */ - #define POLARSSL_ECDSA_C -+ */ - - /** - * \def POLARSSL_ECP_C -@@ -1622,8 +1622,8 @@ - * library/ecdsa.c - * - * Requires: POLARSSL_BIGNUM_C and at least one POLARSSL_ECP_DP_XXX_ENABLED -- */ - #define POLARSSL_ECP_C -+ */ - - /** - * \def POLARSSL_ENTROPY_C -@@ -1662,8 +1662,8 @@ - * - * This module enables the AES-GCM and CAMELLIA-GCM ciphersuites, if other - * requisites are enabled as well. -- */ - #define POLARSSL_GCM_C -+ */ - - /** - * \def POLARSSL_HAVEGE_C -@@ -1699,8 +1699,8 @@ - * Requires: POLARSSL_MD_C - * - * Uncomment to enable the HMAC_DRBG random number geerator. -- */ - #define POLARSSL_HMAC_DRBG_C -+ */ - - /** - * \def POLARSSL_MD_C -@@ -1826,8 +1826,8 @@ - * Requires: POLARSSL_HAVE_ASM - * - * This modules adds support for the VIA PadLock on x86. -- */ - #define POLARSSL_PADLOCK_C -+ */ - - /** - * \def POLARSSL_PBKDF2_C -@@ -1992,8 +1992,8 @@ - * Module: library/ripemd160.c - * Caller: library/md.c - * -- */ - #define POLARSSL_RIPEMD160_C -+ */ - - /** - * \def POLARSSL_RSA_C -@@ -2072,8 +2072,8 @@ - * Caller: - * - * Requires: POLARSSL_SSL_CACHE_C -- */ - #define POLARSSL_SSL_CACHE_C -+ */ - - /** - * \def POLARSSL_SSL_CLI_C -@@ -2149,8 +2149,8 @@ - * Caller: library/havege.c - * - * This module is used by the HAVEGE random number generator. -- */ - #define POLARSSL_TIMING_C -+ */ - - /** - * \def POLARSSL_VERSION_C -@@ -2160,8 +2160,8 @@ - * Module: library/version.c - * - * This module provides run-time version information. -- */ - #define POLARSSL_VERSION_C -+ */ - - /** - * \def POLARSSL_X509_USE_C -@@ -2270,8 +2270,8 @@ - * - * Module: library/xtea.c - * Caller: -- */ - #define POLARSSL_XTEA_C -+ */ - - /* \} name SECTION: mbed TLS modules */ - diff --git a/package/lean/shadowsocksR-libev-full/Makefile b/package/lean/shadowsocksR-libev-full/Makefile deleted file mode 100644 index d91fe2836..000000000 --- a/package/lean/shadowsocksR-libev-full/Makefile +++ /dev/null @@ -1,232 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=shadowsocksR-libev -PKG_VERSION:=3.0.9 -PKG_RELEASE:=3 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.gz -PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev -PKG_SOURCE_PROTO:=git -PKG_SOURCE_VERSION:=d4904568c0bd7e0861c0cbfeaa43740f404db214 -PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_MAINTAINER:=breakwa11 - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) - -PKG_INSTALL:=1 -PKG_FIXUP:=autoreconf -PKG_USE_MIPS16:=0 -PKG_BUILD_PARALLEL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/shadowsocksr-libev/Default - SECTION:=net - CATEGORY:=Network - TITLE:=Lightweight Secured Socks5 Proxy - URL:=https://github.com/breakwa11/shadowsocks-libev -endef - -define Package/shadowsocksr-libev - $(call Package/shadowsocksr-libev/Default) - TITLE+= (OpenSSL) - VARIANT:=openssl - DEPENDS:=+libopenssl +libpthread +libpcre +zlib -endef - -define Package/shadowsocksr-libev-alt - $(call Package/shadowsocksr-libev/Default) - TITLE+= (OpenSSL) - VARIANT:=openssl - DEPENDS:=+libopenssl +libpthread +libpcre +zlib -endef - -define Package/shadowsocksr-libev-mini - $(call Package/shadowsocksr-libev/Default) - TITLE+= (PolarSSL) - VARIANT:=polarssl - DEPENDS:=+libpolarssl +libpthread +libpcre -endef - -define Package/shadowsocksr-libev-polarssl - $(call Package/shadowsocksr-libev/Default) - TITLE+= (PolarSSL) - VARIANT:=polarssl - DEPENDS:=+libpolarssl +libpthread +libpcre -endef - -define Package/shadowsocksr-libev-gfwlist - $(call Package/shadowsocksr-libev/Default) - TITLE+= (OpenSSL) - VARIANT:=openssl - DEPENDS:=+libopenssl +libpthread +dnsmasq-full +ipset +iptables +wget +libpcre -endef - -define Package/shadowsocksr-libev-gfwlist-polarssl - $(call Package/shadowsocksr-libev/Default) - TITLE+= (PolarSSL) - VARIANT:=polarssl - DEPENDS:=+libpolarssl +libpthread +dnsmasq-full +ipset +iptables +wget-nossl +libpcre -endef - -define Package/shadowsocksr-libev-gfwlist-4M - $(call Package/shadowsocksr-libev/Default) - TITLE+= (PolarSSL) - VARIANT:=polarssl - DEPENDS:=+libpolarssl +libpthread +dnsmasq-full +ipset +iptables +libpcre -endef - - -define Package/shadowsocksr-libev/description -ShadowsocksR-libev is a lightweight secured socks5 proxy for embedded devices and low end boxes. -endef - -Package/shadowsocksr-libev-mini/description=$(Package/shadowsocksr-libev/description) -Package/shadowsocksr-libev-alt/description=$(Package/shadowsocksr-libev/description) -Package/shadowsocksr-libev-polarssl/description=$(Package/shadowsocksr-libev/description) -Package/shadowsocksr-libev-gfwlist/description=$(Package/shadowsocksr-libev/description) -Package/shadowsocksr-libev-gfwlist-polarssl/description=$(Package/shadowsocksr-libev/description) -Package/shadowsocksr-libev-gfwlist-4M/description=$(Package/shadowsocksr-libev/description) - - -define Package/shadowsocksr-libev/conffiles -/etc/shadowsocksr.json -endef - -Package/shadowsocksr-libev-alt/conffiles = $(Package/shadowsocksr-libev/conffiles) -Package/shadowsocksr-libev-mini/conffiles = $(Package/shadowsocksr-libev/conffiles) -Package/shadowsocksr-libev-polarssl/conffiles = $(Package/shadowsocksr-libev/conffiles) - -define Package/shadowsocksr-libev-gfwlist/conffiles -/etc/shadowsocksr.json -/etc/dnsmasq.d/custom_list.conf -endef - -Package/shadowsocksr-libev-gfwlist-polarssl/conffiles = $(Package/shadowsocksr-libev-gfwlist/conffiles) -Package/shadowsocksr-libev-gfwlist-4M/conffiles = $(Package/shadowsocksr-libev-gfwlist/conffiles) - - - -Package/shadowsocksr-libev-server-polarssl/conffiles = $(Package/shadowsocksr-libev-server/conffiles) - -define Package/shadowsocksr-libev-gfwlist/postinst -#!/bin/sh -if [ ! -f /etc/dnsmasq.d/custom_list.conf ]; then - echo "ipset -N gfwlist iphash" >> /etc/firewall.user - echo "iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080" >> /etc/firewall.user - echo "iptables -t nat -A OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080" >> /etc/firewall.user - - echo "cache-size=5000" >> /etc/dnsmasq.conf - echo "min-cache-ttl=1800" >> /etc/dnsmasq.conf - echo "conf-dir=/etc/dnsmasq.d" >> /etc/dnsmasq.conf - - echo "*/10 * * * * /root/ssr-watchdog >> /var/log/shadowsocksr_watchdog.log 2>&1" >> /etc/crontabs/root - echo "0 1 * * 0 echo \"\" > /var/log/shadowsocksr_watchdog.log" >> /etc/crontabs/root -fi - -if [ -z "$${IPKG_INSTROOT}" ]; then - ipset create gfwlist hash:ip - iptables -t nat -I PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080 - iptables -t nat -I OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080 - - /etc/init.d/dnsmasq restart - /etc/init.d/cron restart - /etc/init.d/shadowsocksr restart -fi -exit 0 -endef - -define Package/shadowsocks-libev-gfwlist/postrm -#!/bin/sh -if [ -z "$${IPKG_INSTROOT}" ]; then - sed -i '/cache-size=5000/d' /etc/dnsmasq.conf - sed -i '/min-cache-ttl=1800/d' /etc/dnsmasq.conf - sed -i '/conf-dir=\/etc\/dnsmasq.d/d' /etc/dnsmasq.conf - rm -rf /etc/dnsmasq.d - /etc/init.d/dnsmasq restart - - sed -i '/ipset create gfwlist hash:ip/d' /etc/firewall.user - sed -i '/iptables -t nat -I PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080/d' /etc/firewall.user - sed -i '/iptables -t nat -I OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080/d' /etc/firewall.user - ipset flush gfwlist - - sed -i '/shadowsocksr_watchdog.log/d' /etc/crontabs/root - /etc/init.d/cron restart -fi -exit 0 -endef - -Package/shadowsocksr-libev-gfwlist-polarssl/postinst = $(Package/shadowsocksr-libev-gfwlist/postinst) -Package/shadowsocksr-libev-gfwlist-polarssl/postrm = $(Package/shadowsocksr-libev-gfwlist/postrm) -Package/shadowsocksr-libev-gfwlist-4M/postinst = $(Package/shadowsocksr-libev-gfwlist/postinst) -Package/shadowsocksr-libev-gfwlist-4M/postrm = $(Package/shadowsocksr-libev-gfwlist/postrm) - -CONFIGURE_ARGS += --disable-ssp - -ifeq ($(BUILD_VARIANT),polarssl) - CONFIGURE_ARGS += --with-crypto-library=polarssl -endif - -define Package/shadowsocksr-libev/install - #$(INSTALL_DIR) $(1)/etc/init.d - #$(INSTALL_BIN) ./files/shadowsocksr $(1)/etc/init.d/shadowsocksr - #$(INSTALL_CONF) ./files/shadowsocksr.json $(1)/etc/shadowsocksr.json - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ss-local $(1)/usr/bin/ssr-local - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ss-redir $(1)/usr/bin/ssr-redir - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ss-check $(1)/usr/bin/ssr-check - $(LN) ssr-local $(1)/usr/bin/ssr-tunnel -endef - -define Package/shadowsocksr-libev-mini/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ss-redir $(1)/usr/bin/ssr-redir -endef - -define Package/shadowsocksr-libev-alt/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ss-redir $(1)/usr/bin/ssr-redir -endef - -Package/shadowsocksr-libev-polarssl/install=$(Package/shadowsocksr-libev/install) - -define Package/shadowsocksr-libev-gfwlist/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ss-redir $(1)/usr/bin/ssr-redir - $(LN) ssr-local $(1)/usr/bin/ssr-tunnel - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) ./files/shadowsocksr-gfwlist $(1)/etc/init.d/shadowsocksr - $(INSTALL_CONF) ./files/shadowsocksr-gfwlist.json $(1)/etc/shadowsocksr.json.main - $(INSTALL_CONF) ./files/shadowsocksr-gfwlist.json $(1)/etc/shadowsocksr.json.backup - $(INSTALL_CONF) ./files/firewall.user $(1)/etc/firewall.user - $(INSTALL_CONF) ./files/dnsmasq.conf $(1)/etc/dnsmasq.conf - $(INSTALL_DIR) $(1)/etc/dnsmasq.d - $(INSTALL_CONF) ./files/gfw_list.conf $(1)/etc/dnsmasq.d/gfw_list.conf - $(INSTALL_CONF) ./files/custom_list.conf $(1)/etc/dnsmasq.d/custom_list.conf - $(INSTALL_DIR) $(1)/root - $(INSTALL_BIN) ./files/ssr-watchdog $(1)/root/ssr-watchdog - $(INSTALL_DIR) $(1)/etc/crontabs - $(INSTALL_CONF) ./files/root $(1)/etc/crontabs/root - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller - $(INSTALL_CONF) ./files/shadowsocksr-libev.lua $(1)/usr/lib/lua/luci/controller/shadowsocksr-libev.lua - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/shadowsocksr-libev - $(INSTALL_CONF) ./files/shadowsocksr-libev-general.lua $(1)/usr/lib/lua/luci/model/cbi/shadowsocksr-libev/shadowsocksr-libev-general.lua - $(INSTALL_CONF) ./files/shadowsocksr-libev-backup.lua $(1)/usr/lib/lua/luci/model/cbi/shadowsocksr-libev/shadowsocksr-libev-backup.lua - $(INSTALL_CONF) ./files/shadowsocksr-libev-custom.lua $(1)/usr/lib/lua/luci/model/cbi/shadowsocksr-libev/shadowsocksr-libev-custom.lua - $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/shadowsocksr-libev - $(INSTALL_CONF) ./files/gfwlistr.htm $(1)/usr/lib/lua/luci/view/shadowsocksr-libev/gfwlistr.htm - $(INSTALL_CONF) ./files/watchdogr.htm $(1)/usr/lib/lua/luci/view/shadowsocksr-libev/watchdogr.htm -endef - -Package/shadowsocksr-libev-gfwlist-polarssl/install = $(Package/shadowsocksr-libev-gfwlist/install) -Package/shadowsocksr-libev-gfwlist-4M/install = $(Package/shadowsocksr-libev-gfwlist/install) - - -$(eval $(call BuildPackage,shadowsocksr-libev)) -$(eval $(call BuildPackage,shadowsocksr-libev-mini)) -$(eval $(call BuildPackage,shadowsocksr-libev-alt)) -$(eval $(call BuildPackage,shadowsocksr-libev-polarssl)) -$(eval $(call BuildPackage,shadowsocksr-libev-gfwlist)) -$(eval $(call BuildPackage,shadowsocksr-libev-gfwlist-polarssl)) -$(eval $(call BuildPackage,shadowsocksr-libev-gfwlist-4M)) - diff --git a/package/lean/shadowsocksR-libev-full/files/custom_list.conf b/package/lean/shadowsocksR-libev-full/files/custom_list.conf deleted file mode 100644 index 006595f72..000000000 --- a/package/lean/shadowsocksR-libev-full/files/custom_list.conf +++ /dev/null @@ -1,2 +0,0 @@ -#server=/.baidu.com/127.0.0.1#5353 -#ipset=/.baidu.com/gfwlist diff --git a/package/lean/shadowsocksR-libev-full/files/dnsmasq.conf b/package/lean/shadowsocksR-libev-full/files/dnsmasq.conf deleted file mode 100644 index cd0660a7b..000000000 --- a/package/lean/shadowsocksR-libev-full/files/dnsmasq.conf +++ /dev/null @@ -1,41 +0,0 @@ -# Change the following lines if you want dnsmasq to serve SRV -# records. -# You may add multiple srv-host lines. -# The fields are ,,,, - -# A SRV record sending LDAP for the example.com domain to -# ldapserver.example.com port 289 -#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389 - -# Two SRV records for LDAP, each with different priorities -#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,1 -#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,2 - -# A SRV record indicating that there is no LDAP server for the domain -# example.com -#srv-host=_ldap._tcp.example.com - -# The following line shows how to make dnsmasq serve an arbitrary PTR -# record. This is useful for DNS-SD. -# The fields are , -#ptr-record=_http._tcp.dns-sd-services,"New Employee Page._http._tcp.dns-sd-services" - -# Change the following lines to enable dnsmasq to serve TXT records. -# These are used for things like SPF and zeroconf. -# The fields are ,,... - -#Example SPF. -#txt-record=example.com,"v=spf1 a -all" - -#Example zeroconf -#txt-record=_http._tcp.example.com,name=value,paper=A4 - -# Provide an alias for a "local" DNS name. Note that this _only_ works -# for targets which are names from DHCP or /etc/hosts. Give host -# "bert" another name, bertrand -# The fields are , -#cname=bertand,bert - -cache-size=1000 -min-cache-ttl=1800 -conf-dir=/etc/dnsmasq.d diff --git a/package/lean/shadowsocksR-libev-full/files/firewall.user b/package/lean/shadowsocksR-libev-full/files/firewall.user deleted file mode 100644 index cf5b87454..000000000 --- a/package/lean/shadowsocksR-libev-full/files/firewall.user +++ /dev/null @@ -1,11 +0,0 @@ -# This file is interpreted as shell script. -# Put your custom iptables rules here, they will -# be executed with each firewall (re-)start. - -# Internal uci firewall chains are flushed and recreated on reload, so -# put custom rules into the root chains e.g. INPUT or FORWARD or into the -# special user chains, e.g. input_wan_rule or postrouting_lan_rule. - -ipset create gfwlist hash:ip -iptables -t nat -I PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 8989 -iptables -t nat -I OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 8989 diff --git a/package/lean/shadowsocksR-libev-full/files/gfw_list.conf b/package/lean/shadowsocksR-libev-full/files/gfw_list.conf deleted file mode 100644 index 56880fe6c..000000000 --- a/package/lean/shadowsocksR-libev-full/files/gfw_list.conf +++ /dev/null @@ -1,6988 +0,0 @@ -server=/.0to255.com/127.0.0.1#5353 -ipset=/.0to255.com/gfwlist -server=/.1000giri.net/127.0.0.1#5353 -ipset=/.1000giri.net/gfwlist -server=/.100ke.org/127.0.0.1#5353 -ipset=/.100ke.org/gfwlist -server=/.10conditionsoflove.com/127.0.0.1#5353 -ipset=/.10conditionsoflove.com/gfwlist -server=/.10musume.com/127.0.0.1#5353 -ipset=/.10musume.com/gfwlist -server=/.123rf.com/127.0.0.1#5353 -ipset=/.123rf.com/gfwlist -server=/.12bet.com/127.0.0.1#5353 -ipset=/.12bet.com/gfwlist -server=/.12vpn.com/127.0.0.1#5353 -ipset=/.12vpn.com/gfwlist -server=/.12vpn.net/127.0.0.1#5353 -ipset=/.12vpn.net/gfwlist -server=/.141hongkong.com/127.0.0.1#5353 -ipset=/.141hongkong.com/gfwlist -server=/.141tube.com/127.0.0.1#5353 -ipset=/.141tube.com/gfwlist -server=/.1688.com.au/127.0.0.1#5353 -ipset=/.1688.com.au/gfwlist -server=/.173ng.com/127.0.0.1#5353 -ipset=/.173ng.com/gfwlist -server=/.17t17p.com/127.0.0.1#5353 -ipset=/.17t17p.com/gfwlist -server=/.18onlygirls.com/127.0.0.1#5353 -ipset=/.18onlygirls.com/gfwlist -server=/.1949er.org/127.0.0.1#5353 -ipset=/.1949er.org/gfwlist -server=/.1984bbs.com/127.0.0.1#5353 -ipset=/.1984bbs.com/gfwlist -server=/.1984bbs.org/127.0.0.1#5353 -ipset=/.1984bbs.org/gfwlist -server=/.1998cdp.org/127.0.0.1#5353 -ipset=/.1998cdp.org/gfwlist -server=/.1bao.org/127.0.0.1#5353 -ipset=/.1bao.org/gfwlist -server=/.1e100.net/127.0.0.1#5353 -ipset=/.1e100.net/gfwlist -server=/.1eew.com/127.0.0.1#5353 -ipset=/.1eew.com/gfwlist -server=/.1pondo.tv/127.0.0.1#5353 -ipset=/.1pondo.tv/gfwlist -server=/.2000fun.com/127.0.0.1#5353 -ipset=/.2000fun.com/gfwlist -server=/.2008xianzhang.info/127.0.0.1#5353 -ipset=/.2008xianzhang.info/gfwlist -server=/.2017.hk/127.0.0.1#5353 -ipset=/.2017.hk/gfwlist -server=/.21andy.com/127.0.0.1#5353 -ipset=/.21andy.com/gfwlist -server=/.21pron.com/127.0.0.1#5353 -ipset=/.21pron.com/gfwlist -server=/.24smile.org/127.0.0.1#5353 -ipset=/.24smile.org/gfwlist -server=/.2-hand.info/127.0.0.1#5353 -ipset=/.2-hand.info/gfwlist -server=/.2lipstube.com/127.0.0.1#5353 -ipset=/.2lipstube.com/gfwlist -server=/.2shared.com/127.0.0.1#5353 -ipset=/.2shared.com/gfwlist -server=/.315lz.com/127.0.0.1#5353 -ipset=/.315lz.com/gfwlist -server=/.32red.com/127.0.0.1#5353 -ipset=/.32red.com/gfwlist -server=/.36rain.com/127.0.0.1#5353 -ipset=/.36rain.com/gfwlist -server=/.3a5a.com/127.0.0.1#5353 -ipset=/.3a5a.com/gfwlist -server=/.3boys2girls.com/127.0.0.1#5353 -ipset=/.3boys2girls.com/gfwlist -server=/.3ren.ca/127.0.0.1#5353 -ipset=/.3ren.ca/gfwlist -server=/.3tui.net/127.0.0.1#5353 -ipset=/.3tui.net/gfwlist -server=/.4bluestones.biz/127.0.0.1#5353 -ipset=/.4bluestones.biz/gfwlist -server=/.4chan.org/127.0.0.1#5353 -ipset=/.4chan.org/gfwlist -server=/.4irc.com/127.0.0.1#5353 -ipset=/.4irc.com/gfwlist -server=/.4shared.com/127.0.0.1#5353 -ipset=/.4shared.com/gfwlist -server=/.4sq.com/127.0.0.1#5353 -ipset=/.4sq.com/gfwlist -server=/.51.ca/127.0.0.1#5353 -ipset=/.51.ca/gfwlist -server=/.51luoben.com/127.0.0.1#5353 -ipset=/.51luoben.com/gfwlist -server=/.56cun04.jigsy.com/127.0.0.1#5353 -ipset=/.56cun04.jigsy.com/gfwlist -server=/.5i01.com/127.0.0.1#5353 -ipset=/.5i01.com/gfwlist -server=/.5isotoi5.org/127.0.0.1#5353 -ipset=/.5isotoi5.org/gfwlist -server=/.5maodang.com/127.0.0.1#5353 -ipset=/.5maodang.com/gfwlist -server=/.64museum.org/127.0.0.1#5353 -ipset=/.64museum.org/gfwlist -server=/.64tianwang.com/127.0.0.1#5353 -ipset=/.64tianwang.com/gfwlist -server=/.64wiki.com/127.0.0.1#5353 -ipset=/.64wiki.com/gfwlist -server=/.66.ca/127.0.0.1#5353 -ipset=/.66.ca/gfwlist -server=/.666kb.com/127.0.0.1#5353 -ipset=/.666kb.com/gfwlist -server=/.6park.com/127.0.0.1#5353 -ipset=/.6park.com/gfwlist -server=/.7capture.com/127.0.0.1#5353 -ipset=/.7capture.com/gfwlist -server=/.85.17.73.31/127.0.0.1#5353 -ipset=/.85.17.73.31/gfwlist -server=/.85st.com/127.0.0.1#5353 -ipset=/.85st.com/gfwlist -server=/.881903.com/127.0.0.1#5353 -ipset=/.881903.com/gfwlist -server=/.888.com/127.0.0.1#5353 -ipset=/.888.com/gfwlist -server=/.89-64.org/127.0.0.1#5353 -ipset=/.89-64.org/gfwlist -server=/.8-d.com/127.0.0.1#5353 -ipset=/.8-d.com/gfwlist -server=/.8z1.net/127.0.0.1#5353 -ipset=/.8z1.net/gfwlist -server=/.9001700.com/127.0.0.1#5353 -ipset=/.9001700.com/gfwlist -server=/.908taiwan.org/127.0.0.1#5353 -ipset=/.908taiwan.org/gfwlist -server=/.91porn.com/127.0.0.1#5353 -ipset=/.91porn.com/gfwlist -server=/.92ccav.com/127.0.0.1#5353 -ipset=/.92ccav.com/gfwlist -server=/.99btgc01.com/127.0.0.1#5353 -ipset=/.99btgc01.com/gfwlist -server=/.99cn.info/127.0.0.1#5353 -ipset=/.99cn.info/gfwlist -server=/.9bis.com/127.0.0.1#5353 -ipset=/.9bis.com/gfwlist -server=/.9bis.net/127.0.0.1#5353 -ipset=/.9bis.net/gfwlist -server=/.a248.e.akamai.net/127.0.0.1#5353 -ipset=/.a248.e.akamai.net/gfwlist -server=/.a5.com.ru/127.0.0.1#5353 -ipset=/.a5.com.ru/gfwlist -server=/.aamacau.com/127.0.0.1#5353 -ipset=/.aamacau.com/gfwlist -server=/.abc.com/127.0.0.1#5353 -ipset=/.abc.com/gfwlist -server=/.abc.pp.ru/127.0.0.1#5353 -ipset=/.abc.pp.ru/gfwlist -server=/.abc.xyz/127.0.0.1#5353 -ipset=/.abc.xyz/gfwlist -server=/.abchinese.com/127.0.0.1#5353 -ipset=/.abchinese.com/gfwlist -server=/.abitno.linpie.com/127.0.0.1#5353 -ipset=/.abitno.linpie.com/gfwlist -server=/.ablwang.com/127.0.0.1#5353 -ipset=/.ablwang.com/gfwlist -server=/.aboluowang.com/127.0.0.1#5353 -ipset=/.aboluowang.com/gfwlist -server=/.aboutgfw.com/127.0.0.1#5353 -ipset=/.aboutgfw.com/gfwlist -server=/.abs.edu/127.0.0.1#5353 -ipset=/.abs.edu/gfwlist -server=/.ac.jiruan.net/127.0.0.1#5353 -ipset=/.ac.jiruan.net/gfwlist -server=/.acevpn.com/127.0.0.1#5353 -ipset=/.acevpn.com/gfwlist -server=/.acgkj.com/127.0.0.1#5353 -ipset=/.acgkj.com/gfwlist -server=/.actimes.com.au/127.0.0.1#5353 -ipset=/.actimes.com.au/gfwlist -server=/.activpn.com/127.0.0.1#5353 -ipset=/.activpn.com/gfwlist -server=/.aculo.us/127.0.0.1#5353 -ipset=/.aculo.us/gfwlist -server=/.addictedtocoffee.de/127.0.0.1#5353 -ipset=/.addictedtocoffee.de/gfwlist -server=/.admob.com/127.0.0.1#5353 -ipset=/.admob.com/gfwlist -server=/.adpl.org.hk/127.0.0.1#5353 -ipset=/.adpl.org.hk/gfwlist -server=/.adult.friendfinder.com/127.0.0.1#5353 -ipset=/.adult.friendfinder.com/gfwlist -server=/.adultfriendfinder.com/127.0.0.1#5353 -ipset=/.adultfriendfinder.com/gfwlist -server=/.adultkeep.net/127.0.0.1#5353 -ipset=/.adultkeep.net/gfwlist -server=/.adult-sex-games.com/127.0.0.1#5353 -ipset=/.adult-sex-games.com/gfwlist -server=/.advanscene.com/127.0.0.1#5353 -ipset=/.advanscene.com/gfwlist -server=/.advertfan.com/127.0.0.1#5353 -ipset=/.advertfan.com/gfwlist -server=/.ae.hao123.com/127.0.0.1#5353 -ipset=/.ae.hao123.com/gfwlist -server=/.aenhancers.com/127.0.0.1#5353 -ipset=/.aenhancers.com/gfwlist -server=/.af.mil/127.0.0.1#5353 -ipset=/.af.mil/gfwlist -server=/.afantibbs.com/127.0.0.1#5353 -ipset=/.afantibbs.com/gfwlist -server=/.agnesb.fr/127.0.0.1#5353 -ipset=/.agnesb.fr/gfwlist -server=/.agoogleaday.com/127.0.0.1#5353 -ipset=/.agoogleaday.com/gfwlist -server=/.ai-kan.net/127.0.0.1#5353 -ipset=/.ai-kan.net/gfwlist -server=/.aiph.net/127.0.0.1#5353 -ipset=/.aiph.net/gfwlist -server=/.airvpn.org/127.0.0.1#5353 -ipset=/.airvpn.org/gfwlist -server=/.aisex.com/127.0.0.1#5353 -ipset=/.aisex.com/gfwlist -server=/.aiweiwei.com/127.0.0.1#5353 -ipset=/.aiweiwei.com/gfwlist -server=/.aiweiweiblog.com/127.0.0.1#5353 -ipset=/.aiweiweiblog.com/gfwlist -server=/.ai-wen.net/127.0.0.1#5353 -ipset=/.ai-wen.net/gfwlist -server=/.akamaihd.net/127.0.0.1#5353 -ipset=/.akamaihd.net/gfwlist -server=/.akiba-online.com/127.0.0.1#5353 -ipset=/.akiba-online.com/gfwlist -server=/.akiba-web.com/127.0.0.1#5353 -ipset=/.akiba-web.com/gfwlist -server=/.alabout.com/127.0.0.1#5353 -ipset=/.alabout.com/gfwlist -server=/.alasbarricadas.org/127.0.0.1#5353 -ipset=/.alasbarricadas.org/gfwlist -server=/.alexlur.org/127.0.0.1#5353 -ipset=/.alexlur.org/gfwlist -server=/.alforattv.net/127.0.0.1#5353 -ipset=/.alforattv.net/gfwlist -server=/.aliengu.com/127.0.0.1#5353 -ipset=/.aliengu.com/gfwlist -server=/.alien-ufos.com/127.0.0.1#5353 -ipset=/.alien-ufos.com/gfwlist -server=/.alkasir.com/127.0.0.1#5353 -ipset=/.alkasir.com/gfwlist -server=/.allconnected.co/127.0.0.1#5353 -ipset=/.allconnected.co/gfwlist -server=/.alldrawnsex.com/127.0.0.1#5353 -ipset=/.alldrawnsex.com/gfwlist -server=/.allgirlsallowed.org/127.0.0.1#5353 -ipset=/.allgirlsallowed.org/gfwlist -server=/.alliance.org.hk/127.0.0.1#5353 -ipset=/.alliance.org.hk/gfwlist -server=/.allinfa.com/127.0.0.1#5353 -ipset=/.allinfa.com/gfwlist -server=/.allmovie.com/127.0.0.1#5353 -ipset=/.allmovie.com/gfwlist -server=/.allonlinux.free.fr/127.0.0.1#5353 -ipset=/.allonlinux.free.fr/gfwlist -server=/.al-qimmah.net/127.0.0.1#5353 -ipset=/.al-qimmah.net/gfwlist -server=/.alternate-tools.com/127.0.0.1#5353 -ipset=/.alternate-tools.com/gfwlist -server=/.altrec.com/127.0.0.1#5353 -ipset=/.altrec.com/gfwlist -server=/.alvinalexander.com/127.0.0.1#5353 -ipset=/.alvinalexander.com/gfwlist -server=/.alwaysdata.com/127.0.0.1#5353 -ipset=/.alwaysdata.com/gfwlist -server=/.alwaysdata.net/127.0.0.1#5353 -ipset=/.alwaysdata.net/gfwlist -server=/.alwaysvpn.com/127.0.0.1#5353 -ipset=/.alwaysvpn.com/gfwlist -server=/.am730.com.hk/127.0.0.1#5353 -ipset=/.am730.com.hk/gfwlist -server=/.amazon.com/127.0.0.1#5353 -ipset=/.amazon.com/gfwlist -server=/.ameblo.jp/127.0.0.1#5353 -ipset=/.ameblo.jp/gfwlist -server=/.americangreencard.com/127.0.0.1#5353 -ipset=/.americangreencard.com/gfwlist -server=/.amiblockedornot.com/127.0.0.1#5353 -ipset=/.amiblockedornot.com/gfwlist -server=/.amnesty.org/127.0.0.1#5353 -ipset=/.amnesty.org/gfwlist -server=/.amnestyusa.org/127.0.0.1#5353 -ipset=/.amnestyusa.org/gfwlist -server=/.amnyemachen.org/127.0.0.1#5353 -ipset=/.amnyemachen.org/gfwlist -server=/.amoiist.com/127.0.0.1#5353 -ipset=/.amoiist.com/gfwlist -server=/.analyze-v.com/127.0.0.1#5353 -ipset=/.analyze-v.com/gfwlist -server=/.anchorfree.com/127.0.0.1#5353 -ipset=/.anchorfree.com/gfwlist -server=/.ancsconf.org/127.0.0.1#5353 -ipset=/.ancsconf.org/gfwlist -server=/.andfaraway.net/127.0.0.1#5353 -ipset=/.andfaraway.net/gfwlist -server=/.android.com/127.0.0.1#5353 -ipset=/.android.com/gfwlist -server=/.androidify.com/127.0.0.1#5353 -ipset=/.androidify.com/gfwlist -server=/.android-x86.org/127.0.0.1#5353 -ipset=/.android-x86.org/gfwlist -server=/.angularjs.org/127.0.0.1#5353 -ipset=/.angularjs.org/gfwlist -server=/.animecrazy.net/127.0.0.1#5353 -ipset=/.animecrazy.net/gfwlist -server=/.aniscartujo.com/127.0.0.1#5353 -ipset=/.aniscartujo.com/gfwlist -server=/.anobii.com/127.0.0.1#5353 -ipset=/.anobii.com/gfwlist -server=/.anontext.com/127.0.0.1#5353 -ipset=/.anontext.com/gfwlist -server=/.anonymitynetwork.com/127.0.0.1#5353 -ipset=/.anonymitynetwork.com/gfwlist -server=/.anonymizer.com/127.0.0.1#5353 -ipset=/.anonymizer.com/gfwlist -server=/.a-normal-day.com/127.0.0.1#5353 -ipset=/.a-normal-day.com/gfwlist -server=/.answering-islam.org/127.0.0.1#5353 -ipset=/.answering-islam.org/gfwlist -server=/.anthonycalzadilla.com/127.0.0.1#5353 -ipset=/.anthonycalzadilla.com/gfwlist -server=/.antiwave.net/127.0.0.1#5353 -ipset=/.antiwave.net/gfwlist -server=/.anysex.com/127.0.0.1#5353 -ipset=/.anysex.com/gfwlist -server=/.aobo.com.au/127.0.0.1#5353 -ipset=/.aobo.com.au/gfwlist -server=/.aolchannels.aol.com/127.0.0.1#5353 -ipset=/.aolchannels.aol.com/gfwlist -server=/.aomiwang.com/127.0.0.1#5353 -ipset=/.aomiwang.com/gfwlist -server=/.apetube.com/127.0.0.1#5353 -ipset=/.apetube.com/gfwlist -server=/.api.linksalpha.com/127.0.0.1#5353 -ipset=/.api.linksalpha.com/gfwlist -server=/.api.proxlet.com/127.0.0.1#5353 -ipset=/.api.proxlet.com/gfwlist -server=/.api.supertweet.net/127.0.0.1#5353 -ipset=/.api.supertweet.net/gfwlist -server=/.apiary.io/127.0.0.1#5353 -ipset=/.apiary.io/gfwlist -server=/.apidocs.linksalpha.com/127.0.0.1#5353 -ipset=/.apidocs.linksalpha.com/gfwlist -server=/.apigee.com/127.0.0.1#5353 -ipset=/.apigee.com/gfwlist -server=/.app.box.com/127.0.0.1#5353 -ipset=/.app.box.com/gfwlist -server=/.app.heywire.com/127.0.0.1#5353 -ipset=/.app.heywire.com/gfwlist -server=/.appledaily.com/127.0.0.1#5353 -ipset=/.appledaily.com/gfwlist -server=/.appspot.com/127.0.0.1#5353 -ipset=/.appspot.com/gfwlist -server=/.ar.hao123.com/127.0.0.1#5353 -ipset=/.ar.hao123.com/gfwlist -server=/.archive.is/127.0.0.1#5353 -ipset=/.archive.is/gfwlist -server=/.archive.org/127.0.0.1#5353 -ipset=/.archive.org/gfwlist -server=/.arctosia.com/127.0.0.1#5353 -ipset=/.arctosia.com/gfwlist -server=/.areca-backup.org/127.0.0.1#5353 -ipset=/.areca-backup.org/gfwlist -server=/.arethusa.su/127.0.0.1#5353 -ipset=/.arethusa.su/gfwlist -server=/.arlingtoncemetery.mil/127.0.0.1#5353 -ipset=/.arlingtoncemetery.mil/gfwlist -server=/.army.mil/127.0.0.1#5353 -ipset=/.army.mil/gfwlist -server=/.artsy.net/127.0.0.1#5353 -ipset=/.artsy.net/gfwlist -server=/.asahichinese.com/127.0.0.1#5353 -ipset=/.asahichinese.com/gfwlist -server=/.asdfg.jp/127.0.0.1#5353 -ipset=/.asdfg.jp/gfwlist -server=/.asg.to/127.0.0.1#5353 -ipset=/.asg.to/gfwlist -server=/.asiaharvest.org/127.0.0.1#5353 -ipset=/.asiaharvest.org/gfwlist -server=/.asianews.it/127.0.0.1#5353 -ipset=/.asianews.it/gfwlist -server=/.asianspiss.com/127.0.0.1#5353 -ipset=/.asianspiss.com/gfwlist -server=/.asianwomensfilm.de/127.0.0.1#5353 -ipset=/.asianwomensfilm.de/gfwlist -server=/.asiatgp.com/127.0.0.1#5353 -ipset=/.asiatgp.com/gfwlist -server=/.askstudent.com/127.0.0.1#5353 -ipset=/.askstudent.com/gfwlist -server=/.askynz.net/127.0.0.1#5353 -ipset=/.askynz.net/gfwlist -server=/.assembla.com/127.0.0.1#5353 -ipset=/.assembla.com/gfwlist -server=/.astonmartinnews.com/127.0.0.1#5353 -ipset=/.astonmartinnews.com/gfwlist -server=/.astrill.com/127.0.0.1#5353 -ipset=/.astrill.com/gfwlist -server=/.atc.org.au/127.0.0.1#5353 -ipset=/.atc.org.au/gfwlist -server=/.atchinese.com/127.0.0.1#5353 -ipset=/.atchinese.com/gfwlist -server=/.atdmt.com/127.0.0.1#5353 -ipset=/.atdmt.com/gfwlist -server=/.atgfw.org/127.0.0.1#5353 -ipset=/.atgfw.org/gfwlist -server=/.athenaeizou.com/127.0.0.1#5353 -ipset=/.athenaeizou.com/gfwlist -server=/.atlaspost.com/127.0.0.1#5353 -ipset=/.atlaspost.com/gfwlist -server=/.atnext.com/127.0.0.1#5353 -ipset=/.atnext.com/gfwlist -server=/.av.nightlife141.com/127.0.0.1#5353 -ipset=/.av.nightlife141.com/gfwlist -server=/.avaaz.org/127.0.0.1#5353 -ipset=/.avaaz.org/gfwlist -server=/.avcity.tv/127.0.0.1#5353 -ipset=/.avcity.tv/gfwlist -server=/.avcool.com/127.0.0.1#5353 -ipset=/.avcool.com/gfwlist -server=/.avdb.in/127.0.0.1#5353 -ipset=/.avdb.in/gfwlist -server=/.avdb.tv/127.0.0.1#5353 -ipset=/.avdb.tv/gfwlist -server=/.avfantasy.com/127.0.0.1#5353 -ipset=/.avfantasy.com/gfwlist -server=/.avidemux.org/127.0.0.1#5353 -ipset=/.avidemux.org/gfwlist -server=/.avoision.com/127.0.0.1#5353 -ipset=/.avoision.com/gfwlist -server=/.avyahoo.com/127.0.0.1#5353 -ipset=/.avyahoo.com/gfwlist -server=/.awardwinningfjords.com/127.0.0.1#5353 -ipset=/.awardwinningfjords.com/gfwlist -server=/.axureformac.com/127.0.0.1#5353 -ipset=/.axureformac.com/gfwlist -server=/.azerimix.com/127.0.0.1#5353 -ipset=/.azerimix.com/gfwlist -server=/.azubu.tv/127.0.0.1#5353 -ipset=/.azubu.tv/gfwlist -server=/.azurewebsites.net/127.0.0.1#5353 -ipset=/.azurewebsites.net/gfwlist -server=/.babynet.com.hk/127.0.0.1#5353 -ipset=/.babynet.com.hk/gfwlist -server=/.backchina.com/127.0.0.1#5353 -ipset=/.backchina.com/gfwlist -server=/.backtotiananmen.com/127.0.0.1#5353 -ipset=/.backtotiananmen.com/gfwlist -server=/.badoo.com/127.0.0.1#5353 -ipset=/.badoo.com/gfwlist -server=/.baidu.jp/127.0.0.1#5353 -ipset=/.baidu.jp/gfwlist -server=/.baixing.me/127.0.0.1#5353 -ipset=/.baixing.me/gfwlist -server=/.banana-vpn.com/127.0.0.1#5353 -ipset=/.banana-vpn.com/gfwlist -server=/.bangyoulater.com/127.0.0.1#5353 -ipset=/.bangyoulater.com/gfwlist -server=/.bannedbook.org/127.0.0.1#5353 -ipset=/.bannedbook.org/gfwlist -server=/.barenakedislam.com/127.0.0.1#5353 -ipset=/.barenakedislam.com/gfwlist -server=/.barnabu.co.uk/127.0.0.1#5353 -ipset=/.barnabu.co.uk/gfwlist -server=/.barracuda.com/127.0.0.1#5353 -ipset=/.barracuda.com/gfwlist -server=/.bayvoice.net/127.0.0.1#5353 -ipset=/.bayvoice.net/gfwlist -server=/.bbc.co/127.0.0.1#5353 -ipset=/.bbc.co/gfwlist -server=/.bbc.com/127.0.0.1#5353 -ipset=/.bbc.com/gfwlist -server=/.bbc.co.uk/127.0.0.1#5353 -ipset=/.bbc.co.uk/gfwlist -server=/.bbc.in/127.0.0.1#5353 -ipset=/.bbc.in/gfwlist -server=/.bbcchinese.com/127.0.0.1#5353 -ipset=/.bbcchinese.com/gfwlist -server=/.bbg.gov/127.0.0.1#5353 -ipset=/.bbg.gov/gfwlist -server=/.bbs.brockbbs.com/127.0.0.1#5353 -ipset=/.bbs.brockbbs.com/gfwlist -server=/.bbs.cantonese.asia/127.0.0.1#5353 -ipset=/.bbs.cantonese.asia/gfwlist -server=/.bbs.ecstart.com/127.0.0.1#5353 -ipset=/.bbs.ecstart.com/gfwlist -server=/.bbs.hanminzu.org/127.0.0.1#5353 -ipset=/.bbs.hanminzu.org/gfwlist -server=/.bbs.morbell.com/127.0.0.1#5353 -ipset=/.bbs.morbell.com/gfwlist -server=/.bbs.mychat.to/127.0.0.1#5353 -ipset=/.bbs.mychat.to/gfwlist -server=/.bbs.netbig.com/127.0.0.1#5353 -ipset=/.bbs.netbig.com/gfwlist -server=/.bbs.ozchinese.com/127.0.0.1#5353 -ipset=/.bbs.ozchinese.com/gfwlist -server=/.bbs.qmzdd.com/127.0.0.1#5353 -ipset=/.bbs.qmzdd.com/gfwlist -server=/.bbs.sina.com/127.0.0.1#5353 -ipset=/.bbs.sina.com/gfwlist -server=/.bbs.skykiwi.com/127.0.0.1#5353 -ipset=/.bbs.skykiwi.com/gfwlist -server=/.bbs.tuitui.info/127.0.0.1#5353 -ipset=/.bbs.tuitui.info/gfwlist -server=/.bbsdigest.com/127.0.0.1#5353 -ipset=/.bbsdigest.com/gfwlist -server=/.bbsfeed.com/127.0.0.1#5353 -ipset=/.bbsfeed.com/gfwlist -server=/.bbsland.com/127.0.0.1#5353 -ipset=/.bbsland.com/gfwlist -server=/.bbsone.com/127.0.0.1#5353 -ipset=/.bbsone.com/gfwlist -server=/.bcchinese.net/127.0.0.1#5353 -ipset=/.bcchinese.net/gfwlist -server=/.bebo.com/127.0.0.1#5353 -ipset=/.bebo.com/gfwlist -server=/.beeg.com/127.0.0.1#5353 -ipset=/.beeg.com/gfwlist -server=/.beevpn.com/127.0.0.1#5353 -ipset=/.beevpn.com/gfwlist -server=/.behindkink.com/127.0.0.1#5353 -ipset=/.behindkink.com/gfwlist -server=/.beijing1989.com/127.0.0.1#5353 -ipset=/.beijing1989.com/gfwlist -server=/.beijingspring.com/127.0.0.1#5353 -ipset=/.beijingspring.com/gfwlist -server=/.beric.me/127.0.0.1#5353 -ipset=/.beric.me/gfwlist -server=/.berlintwitterwall.com/127.0.0.1#5353 -ipset=/.berlintwitterwall.com/gfwlist -server=/.bestforchina.org/127.0.0.1#5353 -ipset=/.bestforchina.org/gfwlist -server=/.bestvpn.com/127.0.0.1#5353 -ipset=/.bestvpn.com/gfwlist -server=/.bestvpnservice.com/127.0.0.1#5353 -ipset=/.bestvpnservice.com/gfwlist -server=/.bestvpnusa.com/127.0.0.1#5353 -ipset=/.bestvpnusa.com/gfwlist -server=/.bet365.com/127.0.0.1#5353 -ipset=/.bet365.com/gfwlist -server=/.beta.usejump.com/127.0.0.1#5353 -ipset=/.beta.usejump.com/gfwlist -server=/.betfair.com/127.0.0.1#5353 -ipset=/.betfair.com/gfwlist -server=/.bettervpn.com/127.0.0.1#5353 -ipset=/.bettervpn.com/gfwlist -server=/.bettween.com/127.0.0.1#5353 -ipset=/.bettween.com/gfwlist -server=/.betvictor.com/127.0.0.1#5353 -ipset=/.betvictor.com/gfwlist -server=/.bewww.net/127.0.0.1#5353 -ipset=/.bewww.net/gfwlist -server=/.beyondfirewall.com/127.0.0.1#5353 -ipset=/.beyondfirewall.com/gfwlist -server=/.bfnn.org/127.0.0.1#5353 -ipset=/.bfnn.org/gfwlist -server=/.bfsh.hk/127.0.0.1#5353 -ipset=/.bfsh.hk/gfwlist -server=/.bgvpn.com/127.0.0.1#5353 -ipset=/.bgvpn.com/gfwlist -server=/.biantailajiao.com/127.0.0.1#5353 -ipset=/.biantailajiao.com/gfwlist -server=/.biantailajiao.in/127.0.0.1#5353 -ipset=/.biantailajiao.in/gfwlist -server=/.biblesforamerica.org/127.0.0.1#5353 -ipset=/.biblesforamerica.org/gfwlist -server=/.bic2011.org/127.0.0.1#5353 -ipset=/.bic2011.org/gfwlist -server=/.bigfools.com/127.0.0.1#5353 -ipset=/.bigfools.com/gfwlist -server=/.bigjapanesesex.com/127.0.0.1#5353 -ipset=/.bigjapanesesex.com/gfwlist -server=/.bignews.org/127.0.0.1#5353 -ipset=/.bignews.org/gfwlist -server=/.bigsound.org/127.0.0.1#5353 -ipset=/.bigsound.org/gfwlist -server=/.bill.zhong.pp.ru/127.0.0.1#5353 -ipset=/.bill.zhong.pp.ru/gfwlist -server=/.billypan.com/127.0.0.1#5353 -ipset=/.billypan.com/gfwlist -server=/.billywr.com/127.0.0.1#5353 -ipset=/.billywr.com/gfwlist -server=/.bipic.net/127.0.0.1#5353 -ipset=/.bipic.net/gfwlist -server=/.bit.ly/127.0.0.1#5353 -ipset=/.bit.ly/gfwlist -server=/.bitcointalk.org/127.0.0.1#5353 -ipset=/.bitcointalk.org/gfwlist -server=/.bitshare.com/127.0.0.1#5353 -ipset=/.bitshare.com/gfwlist -server=/.bitsnoop.com/127.0.0.1#5353 -ipset=/.bitsnoop.com/gfwlist -server=/.bjzc.org/127.0.0.1#5353 -ipset=/.bjzc.org/gfwlist -server=/.blacklogic.com/127.0.0.1#5353 -ipset=/.blacklogic.com/gfwlist -server=/.blackvpn.com/127.0.0.1#5353 -ipset=/.blackvpn.com/gfwlist -server=/.blinkx.com/127.0.0.1#5353 -ipset=/.blinkx.com/gfwlist -server=/.blinw.com/127.0.0.1#5353 -ipset=/.blinw.com/gfwlist -server=/.blip.tv/127.0.0.1#5353 -ipset=/.blip.tv/gfwlist -server=/.blockcn.com/127.0.0.1#5353 -ipset=/.blockcn.com/gfwlist -server=/.blog.cnyes.com/127.0.0.1#5353 -ipset=/.blog.cnyes.com/gfwlist -server=/.blog.de/127.0.0.1#5353 -ipset=/.blog.de/gfwlist -server=/.blog.exblog.co.jp/127.0.0.1#5353 -ipset=/.blog.exblog.co.jp/gfwlist -server=/.blog.excite.co.jp/127.0.0.1#5353 -ipset=/.blog.excite.co.jp/gfwlist -server=/.blog.expofutures.com/127.0.0.1#5353 -ipset=/.blog.expofutures.com/gfwlist -server=/.blog.fizzik.com/127.0.0.1#5353 -ipset=/.blog.fizzik.com/gfwlist -server=/.blog.foolsmountain.com/127.0.0.1#5353 -ipset=/.blog.foolsmountain.com/gfwlist -server=/.blog.istef.info/127.0.0.1#5353 -ipset=/.blog.istef.info/gfwlist -server=/.blog.jackjia.com/127.0.0.1#5353 -ipset=/.blog.jackjia.com/gfwlist -server=/.blog.kangye.org/127.0.0.1#5353 -ipset=/.blog.kangye.org/gfwlist -server=/.blog.lester850.info/127.0.0.1#5353 -ipset=/.blog.lester850.info/gfwlist -server=/.blog.openinkpot.org/127.0.0.1#5353 -ipset=/.blog.openinkpot.org/gfwlist -server=/.blog.pathtosharepoint.com/127.0.0.1#5353 -ipset=/.blog.pathtosharepoint.com/gfwlist -server=/.blog.pentalogic.net/127.0.0.1#5353 -ipset=/.blog.pentalogic.net/gfwlist -server=/.blog.qooza.hk/127.0.0.1#5353 -ipset=/.blog.qooza.hk/gfwlist -server=/.blog.ranxiang.com/127.0.0.1#5353 -ipset=/.blog.ranxiang.com/gfwlist -server=/.blog.sogoo.org/127.0.0.1#5353 -ipset=/.blog.sogoo.org/gfwlist -server=/.blog.syx86.cn/127.0.0.1#5353 -ipset=/.blog.syx86.cn/gfwlist -server=/.blog.syx86.com/127.0.0.1#5353 -ipset=/.blog.syx86.com/gfwlist -server=/.blog.taragana.com/127.0.0.1#5353 -ipset=/.blog.taragana.com/gfwlist -server=/.blog.tiney.com/127.0.0.1#5353 -ipset=/.blog.tiney.com/gfwlist -server=/.blog.xuite.net/127.0.0.1#5353 -ipset=/.blog.xuite.net/gfwlist -server=/.blog.youxu.info/127.0.0.1#5353 -ipset=/.blog.youxu.info/gfwlist -server=/.blogblog.com/127.0.0.1#5353 -ipset=/.blogblog.com/gfwlist -server=/.blogcatalog.com/127.0.0.1#5353 -ipset=/.blogcatalog.com/gfwlist -server=/.blogcity.me/127.0.0.1#5353 -ipset=/.blogcity.me/gfwlist -server=/.blogger.com/127.0.0.1#5353 -ipset=/.blogger.com/gfwlist -server=/.blogimg.jp/127.0.0.1#5353 -ipset=/.blogimg.jp/gfwlist -server=/.bloglines.com/127.0.0.1#5353 -ipset=/.bloglines.com/gfwlist -server=/.bloglovin.com/127.0.0.1#5353 -ipset=/.bloglovin.com/gfwlist -server=/.blogs.icerocket.com/127.0.0.1#5353 -ipset=/.blogs.icerocket.com/gfwlist -server=/.blogs.tampabay.com/127.0.0.1#5353 -ipset=/.blogs.tampabay.com/gfwlist -server=/.blogs.yahoo.co.jp/127.0.0.1#5353 -ipset=/.blogs.yahoo.co.jp/gfwlist -server=/.blogspot.com/127.0.0.1#5353 -ipset=/.blogspot.com/gfwlist -server=/.blogspot.hk/127.0.0.1#5353 -ipset=/.blogspot.hk/gfwlist -server=/.blogspot.it/127.0.0.1#5353 -ipset=/.blogspot.it/gfwlist -server=/.blogspot.jp/127.0.0.1#5353 -ipset=/.blogspot.jp/gfwlist -server=/.blogspot.sg/127.0.0.1#5353 -ipset=/.blogspot.sg/gfwlist -server=/.blogtd.net/127.0.0.1#5353 -ipset=/.blogtd.net/gfwlist -server=/.blogtd.org/127.0.0.1#5353 -ipset=/.blogtd.org/gfwlist -server=/.bloodshed.net/127.0.0.1#5353 -ipset=/.bloodshed.net/gfwlist -server=/.bloomberg.cn/127.0.0.1#5353 -ipset=/.bloomberg.cn/gfwlist -server=/.bloomberg.com/127.0.0.1#5353 -ipset=/.bloomberg.com/gfwlist -server=/.bloomberg.de/127.0.0.1#5353 -ipset=/.bloomberg.de/gfwlist -server=/.bloomfortune.com/127.0.0.1#5353 -ipset=/.bloomfortune.com/gfwlist -server=/.bnrmetal.com/127.0.0.1#5353 -ipset=/.bnrmetal.com/gfwlist -server=/.boardreader.com/127.0.0.1#5353 -ipset=/.boardreader.com/gfwlist -server=/.bod.asia/127.0.0.1#5353 -ipset=/.bod.asia/gfwlist -server=/.bolehvpn.net/127.0.0.1#5353 -ipset=/.bolehvpn.net/gfwlist -server=/.bolin.netfirms.com/127.0.0.1#5353 -ipset=/.bolin.netfirms.com/gfwlist -server=/.bonbonme.com/127.0.0.1#5353 -ipset=/.bonbonme.com/gfwlist -server=/.bonbonsex.com/127.0.0.1#5353 -ipset=/.bonbonsex.com/gfwlist -server=/.boobstagram.com/127.0.0.1#5353 -ipset=/.boobstagram.com/gfwlist -server=/.book.zi5.me/127.0.0.1#5353 -ipset=/.book.zi5.me/gfwlist -server=/.bookepub.com/127.0.0.1#5353 -ipset=/.bookepub.com/gfwlist -server=/.bot.nu/127.0.0.1#5353 -ipset=/.bot.nu/gfwlist -server=/.botanwang.com/127.0.0.1#5353 -ipset=/.botanwang.com/gfwlist -server=/.bowenpress.com/127.0.0.1#5353 -ipset=/.bowenpress.com/gfwlist -server=/.boxpn.com/127.0.0.1#5353 -ipset=/.boxpn.com/gfwlist -server=/.boxun.com/127.0.0.1#5353 -ipset=/.boxun.com/gfwlist -server=/.boxun.tv/127.0.0.1#5353 -ipset=/.boxun.tv/gfwlist -server=/.boxunblog.com/127.0.0.1#5353 -ipset=/.boxunblog.com/gfwlist -server=/.boxunclub.com/127.0.0.1#5353 -ipset=/.boxunclub.com/gfwlist -server=/.boyfriendtv.com/127.0.0.1#5353 -ipset=/.boyfriendtv.com/gfwlist -server=/.boysmaster.com/127.0.0.1#5353 -ipset=/.boysmaster.com/gfwlist -server=/.br.hao123.com/127.0.0.1#5353 -ipset=/.br.hao123.com/gfwlist -server=/.br.st/127.0.0.1#5353 -ipset=/.br.st/gfwlist -server=/.bralio.com/127.0.0.1#5353 -ipset=/.bralio.com/gfwlist -server=/.branch.com/127.0.0.1#5353 -ipset=/.branch.com/gfwlist -server=/.brandonhutchinson.com/127.0.0.1#5353 -ipset=/.brandonhutchinson.com/gfwlist -server=/.braumeister.org/127.0.0.1#5353 -ipset=/.braumeister.org/gfwlist -server=/.bravotube.net/127.0.0.1#5353 -ipset=/.bravotube.net/gfwlist -server=/.brazzers.com/127.0.0.1#5353 -ipset=/.brazzers.com/gfwlist -server=/.break.com/127.0.0.1#5353 -ipset=/.break.com/gfwlist -server=/.breakgfw.com/127.0.0.1#5353 -ipset=/.breakgfw.com/gfwlist -server=/.breakingtweets.com/127.0.0.1#5353 -ipset=/.breakingtweets.com/gfwlist -server=/.breakwall.net/127.0.0.1#5353 -ipset=/.breakwall.net/gfwlist -server=/.briefdream.com/127.0.0.1#5353 -ipset=/.briefdream.com/gfwlist -server=/.briian.com/127.0.0.1#5353 -ipset=/.briian.com/gfwlist -server=/.brizzly.com/127.0.0.1#5353 -ipset=/.brizzly.com/gfwlist -server=/.broadbook.com/127.0.0.1#5353 -ipset=/.broadbook.com/gfwlist -server=/.broadpressinc.com/127.0.0.1#5353 -ipset=/.broadpressinc.com/gfwlist -server=/.brucewang.net/127.0.0.1#5353 -ipset=/.brucewang.net/gfwlist -server=/.brutaltgp.com/127.0.0.1#5353 -ipset=/.brutaltgp.com/gfwlist -server=/.bt95.com/127.0.0.1#5353 -ipset=/.bt95.com/gfwlist -server=/.btdigg.org/127.0.0.1#5353 -ipset=/.btdigg.org/gfwlist -server=/.btku.me/127.0.0.1#5353 -ipset=/.btku.me/gfwlist -server=/.btspread.com/127.0.0.1#5353 -ipset=/.btspread.com/gfwlist -server=/.budaedu.org/127.0.0.1#5353 -ipset=/.budaedu.org/gfwlist -server=/.bugclub.org/127.0.0.1#5353 -ipset=/.bugclub.org/gfwlist -server=/.bullog.org/127.0.0.1#5353 -ipset=/.bullog.org/gfwlist -server=/.bullogger.com/127.0.0.1#5353 -ipset=/.bullogger.com/gfwlist -server=/.businessinsider.com/127.0.0.1#5353 -ipset=/.businessinsider.com/gfwlist -server=/.businessweek.com/127.0.0.1#5353 -ipset=/.businessweek.com/gfwlist -server=/.busu.org/127.0.0.1#5353 -ipset=/.busu.org/gfwlist -server=/.buugaa.com/127.0.0.1#5353 -ipset=/.buugaa.com/gfwlist -server=/.buzzhand.com/127.0.0.1#5353 -ipset=/.buzzhand.com/gfwlist -server=/.buzzhand.net/127.0.0.1#5353 -ipset=/.buzzhand.net/gfwlist -server=/.buzzurl.jp/127.0.0.1#5353 -ipset=/.buzzurl.jp/gfwlist -server=/.bwsj.hk/127.0.0.1#5353 -ipset=/.bwsj.hk/gfwlist -server=/.bx.tl/127.0.0.1#5353 -ipset=/.bx.tl/gfwlist -server=/.c1522.mooo.com/127.0.0.1#5353 -ipset=/.c1522.mooo.com/gfwlist -server=/.cachinese.com/127.0.0.1#5353 -ipset=/.cachinese.com/gfwlist -server=/.cacnw.com/127.0.0.1#5353 -ipset=/.cacnw.com/gfwlist -server=/.cactusvpn.com/127.0.0.1#5353 -ipset=/.cactusvpn.com/gfwlist -server=/.cafepress.com/127.0.0.1#5353 -ipset=/.cafepress.com/gfwlist -server=/.calameo.com/127.0.0.1#5353 -ipset=/.calameo.com/gfwlist -server=/.calebelston.com/127.0.0.1#5353 -ipset=/.calebelston.com/gfwlist -server=/.calgarychinese.ca/127.0.0.1#5353 -ipset=/.calgarychinese.ca/gfwlist -server=/.calgarychinese.com/127.0.0.1#5353 -ipset=/.calgarychinese.com/gfwlist -server=/.calgarychinese.net/127.0.0.1#5353 -ipset=/.calgarychinese.net/gfwlist -server=/.cam4.com/127.0.0.1#5353 -ipset=/.cam4.com/gfwlist -server=/.cam4.jp/127.0.0.1#5353 -ipset=/.cam4.jp/gfwlist -server=/.cam4.sg/127.0.0.1#5353 -ipset=/.cam4.sg/gfwlist -server=/.camfrog.com/127.0.0.1#5353 -ipset=/.camfrog.com/gfwlist -server=/.cams.com/127.0.0.1#5353 -ipset=/.cams.com/gfwlist -server=/.cams.org.sg/127.0.0.1#5353 -ipset=/.cams.org.sg/gfwlist -server=/.canadameet.com/127.0.0.1#5353 -ipset=/.canadameet.com/gfwlist -server=/.canyu.org/127.0.0.1#5353 -ipset=/.canyu.org/gfwlist -server=/.cao.im/127.0.0.1#5353 -ipset=/.cao.im/gfwlist -server=/.caobian.info/127.0.0.1#5353 -ipset=/.caobian.info/gfwlist -server=/.caochangqing.com/127.0.0.1#5353 -ipset=/.caochangqing.com/gfwlist -server=/.cap.org.hk/127.0.0.1#5353 -ipset=/.cap.org.hk/gfwlist -server=/.cardinalkungfoundation.org/127.0.0.1#5353 -ipset=/.cardinalkungfoundation.org/gfwlist -server=/.carfax.com/127.0.0.1#5353 -ipset=/.carfax.com/gfwlist -server=/.cari.com.my/127.0.0.1#5353 -ipset=/.cari.com.my/gfwlist -server=/.caribbeancom.com/127.0.0.1#5353 -ipset=/.caribbeancom.com/gfwlist -server=/.casatibet.org.mx/127.0.0.1#5353 -ipset=/.casatibet.org.mx/gfwlist -server=/.casinobellini.com/127.0.0.1#5353 -ipset=/.casinobellini.com/gfwlist -server=/.catch22.net/127.0.0.1#5353 -ipset=/.catch22.net/gfwlist -server=/.catfightpayperview.xxx/127.0.0.1#5353 -ipset=/.catfightpayperview.xxx/gfwlist -server=/.catholic.org.hk/127.0.0.1#5353 -ipset=/.catholic.org.hk/gfwlist -server=/.cattt.com/127.0.0.1#5353 -ipset=/.cattt.com/gfwlist -server=/.cbc.ca/127.0.0.1#5353 -ipset=/.cbc.ca/gfwlist -server=/.cbsnews.com/127.0.0.1#5353 -ipset=/.cbsnews.com/gfwlist -server=/.cbtc.org.hk/127.0.0.1#5353 -ipset=/.cbtc.org.hk/gfwlist -server=/.ccdtr.org/127.0.0.1#5353 -ipset=/.ccdtr.org/gfwlist -server=/.ccim.org/127.0.0.1#5353 -ipset=/.ccim.org/gfwlist -server=/.cclife.ca/127.0.0.1#5353 -ipset=/.cclife.ca/gfwlist -server=/.cclife.org/127.0.0.1#5353 -ipset=/.cclife.org/gfwlist -server=/.cclifefl.org/127.0.0.1#5353 -ipset=/.cclifefl.org/gfwlist -server=/.ccthere.com/127.0.0.1#5353 -ipset=/.ccthere.com/gfwlist -server=/.cctongbao.com/127.0.0.1#5353 -ipset=/.cctongbao.com/gfwlist -server=/.ccue.ca/127.0.0.1#5353 -ipset=/.ccue.ca/gfwlist -server=/.ccue.com/127.0.0.1#5353 -ipset=/.ccue.com/gfwlist -server=/.cdbook.org/127.0.0.1#5353 -ipset=/.cdbook.org/gfwlist -server=/.cdd.me/127.0.0.1#5353 -ipset=/.cdd.me/gfwlist -server=/.cdef.org/127.0.0.1#5353 -ipset=/.cdef.org/gfwlist -server=/.cdig.info/127.0.0.1#5353 -ipset=/.cdig.info/gfwlist -server=/.cdjp.org/127.0.0.1#5353 -ipset=/.cdjp.org/gfwlist -server=/.cdn.helixstudios.net/127.0.0.1#5353 -ipset=/.cdn.helixstudios.net/gfwlist -server=/.cdn.printfriendly.com/127.0.0.1#5353 -ipset=/.cdn.printfriendly.com/gfwlist -server=/.cdn.softlayer.net/127.0.0.1#5353 -ipset=/.cdn.softlayer.net/gfwlist -server=/.cdninstagram.com/127.0.0.1#5353 -ipset=/.cdninstagram.com/gfwlist -server=/.cdp1989.org/127.0.0.1#5353 -ipset=/.cdp1989.org/gfwlist -server=/.cdp1998.org/127.0.0.1#5353 -ipset=/.cdp1998.org/gfwlist -server=/.cdp2006.org/127.0.0.1#5353 -ipset=/.cdp2006.org/gfwlist -server=/.cdpeu.org/127.0.0.1#5353 -ipset=/.cdpeu.org/gfwlist -server=/.cdpusa.org/127.0.0.1#5353 -ipset=/.cdpusa.org/gfwlist -server=/.cdpweb.org/127.0.0.1#5353 -ipset=/.cdpweb.org/gfwlist -server=/.cdpwu.org/127.0.0.1#5353 -ipset=/.cdpwu.org/gfwlist -server=/.cdw.com/127.0.0.1#5353 -ipset=/.cdw.com/gfwlist -server=/.cecc.gov/127.0.0.1#5353 -ipset=/.cecc.gov/gfwlist -server=/.cellulo.info/127.0.0.1#5353 -ipset=/.cellulo.info/gfwlist -server=/.cenci.tk/127.0.0.1#5353 -ipset=/.cenci.tk/gfwlist -server=/.cenews.eu/127.0.0.1#5353 -ipset=/.cenews.eu/gfwlist -server=/.centauro.com.br/127.0.0.1#5353 -ipset=/.centauro.com.br/gfwlist -server=/.centerforhumanreprod.com/127.0.0.1#5353 -ipset=/.centerforhumanreprod.com/gfwlist -server=/.centralnation.com/127.0.0.1#5353 -ipset=/.centralnation.com/gfwlist -server=/.centurys.net/127.0.0.1#5353 -ipset=/.centurys.net/gfwlist -server=/.certificate.revocationcheck.com/127.0.0.1#5353 -ipset=/.certificate.revocationcheck.com/gfwlist -server=/.c-est-simple.com/127.0.0.1#5353 -ipset=/.c-est-simple.com/gfwlist -server=/.cfhks.org.hk/127.0.0.1#5353 -ipset=/.cfhks.org.hk/gfwlist -server=/.cftfc.com/127.0.0.1#5353 -ipset=/.cftfc.com/gfwlist -server=/.cgdepot.org/127.0.0.1#5353 -ipset=/.cgdepot.org/gfwlist -server=/.cgst.edu/127.0.0.1#5353 -ipset=/.cgst.edu/gfwlist -server=/.ch.shvoong.com/127.0.0.1#5353 -ipset=/.ch.shvoong.com/gfwlist -server=/.chandoo.org/127.0.0.1#5353 -ipset=/.chandoo.org/gfwlist -server=/.change.org/127.0.0.1#5353 -ipset=/.change.org/gfwlist -server=/.changp.com/127.0.0.1#5353 -ipset=/.changp.com/gfwlist -server=/.chapm25.com/127.0.0.1#5353 -ipset=/.chapm25.com/gfwlist -server=/.chaturbate.com/127.0.0.1#5353 -ipset=/.chaturbate.com/gfwlist -server=/.chengmingmag.com/127.0.0.1#5353 -ipset=/.chengmingmag.com/gfwlist -server=/.chenguangcheng.com/127.0.0.1#5353 -ipset=/.chenguangcheng.com/gfwlist -server=/.chenpokong.com/127.0.0.1#5353 -ipset=/.chenpokong.com/gfwlist -server=/.chenshan20042005.wordpress.com/127.0.0.1#5353 -ipset=/.chenshan20042005.wordpress.com/gfwlist -server=/.cherrysave.com/127.0.0.1#5353 -ipset=/.cherrysave.com/gfwlist -server=/.chhongbi.org/127.0.0.1#5353 -ipset=/.chhongbi.org/gfwlist -server=/.chicagoncmtv.com/127.0.0.1#5353 -ipset=/.chicagoncmtv.com/gfwlist -server=/.china.hket.com/127.0.0.1#5353 -ipset=/.china.hket.com/gfwlist -server=/.china.ucanews.com/127.0.0.1#5353 -ipset=/.china.ucanews.com/gfwlist -server=/.china101.com/127.0.0.1#5353 -ipset=/.china101.com/gfwlist -server=/.china18.org/127.0.0.1#5353 -ipset=/.china18.org/gfwlist -server=/.china21.com/127.0.0.1#5353 -ipset=/.china21.com/gfwlist -server=/.china21.org/127.0.0.1#5353 -ipset=/.china21.org/gfwlist -server=/.china5000.us/127.0.0.1#5353 -ipset=/.china5000.us/gfwlist -server=/.chinaaffairs.org/127.0.0.1#5353 -ipset=/.chinaaffairs.org/gfwlist -server=/.chinaaid.me/127.0.0.1#5353 -ipset=/.chinaaid.me/gfwlist -server=/.chinaaid.net/127.0.0.1#5353 -ipset=/.chinaaid.net/gfwlist -server=/.chinaaid.org/127.0.0.1#5353 -ipset=/.chinaaid.org/gfwlist -server=/.chinaaid.us/127.0.0.1#5353 -ipset=/.chinaaid.us/gfwlist -server=/.chinachange.org/127.0.0.1#5353 -ipset=/.chinachange.org/gfwlist -server=/.chinachannel.hk/127.0.0.1#5353 -ipset=/.chinachannel.hk/gfwlist -server=/.chinacitynews.be/127.0.0.1#5353 -ipset=/.chinacitynews.be/gfwlist -server=/.chinacomments.org/127.0.0.1#5353 -ipset=/.chinacomments.org/gfwlist -server=/.chinadigitaltimes.net/127.0.0.1#5353 -ipset=/.chinadigitaltimes.net/gfwlist -server=/.chinaelections.org/127.0.0.1#5353 -ipset=/.chinaelections.org/gfwlist -server=/.chinaeweekly.com/127.0.0.1#5353 -ipset=/.chinaeweekly.com/gfwlist -server=/.chinafreepress.org/127.0.0.1#5353 -ipset=/.chinafreepress.org/gfwlist -server=/.chinagate.com/127.0.0.1#5353 -ipset=/.chinagate.com/gfwlist -server=/.chinageeks.org/127.0.0.1#5353 -ipset=/.chinageeks.org/gfwlist -server=/.chinagfw.org/127.0.0.1#5353 -ipset=/.chinagfw.org/gfwlist -server=/.chinagreenparty.org/127.0.0.1#5353 -ipset=/.chinagreenparty.org/gfwlist -server=/.chinahorizon.org/127.0.0.1#5353 -ipset=/.chinahorizon.org/gfwlist -server=/.chinahush.com/127.0.0.1#5353 -ipset=/.chinahush.com/gfwlist -server=/.chinainperspective.com/127.0.0.1#5353 -ipset=/.chinainperspective.com/gfwlist -server=/.chinainperspective.net/127.0.0.1#5353 -ipset=/.chinainperspective.net/gfwlist -server=/.chinainperspective.org/127.0.0.1#5353 -ipset=/.chinainperspective.org/gfwlist -server=/.chinainterimgov.org/127.0.0.1#5353 -ipset=/.chinainterimgov.org/gfwlist -server=/.chinalaborwatch.org/127.0.0.1#5353 -ipset=/.chinalaborwatch.org/gfwlist -server=/.chinalawandpolicy.com/127.0.0.1#5353 -ipset=/.chinalawandpolicy.com/gfwlist -server=/.chinalawtranslate.com/127.0.0.1#5353 -ipset=/.chinalawtranslate.com/gfwlist -server=/.china-mmm.jp.net/127.0.0.1#5353 -ipset=/.china-mmm.jp.net/gfwlist -server=/.china-mmm.net/127.0.0.1#5353 -ipset=/.china-mmm.net/gfwlist -server=/.chinamule.com/127.0.0.1#5353 -ipset=/.chinamule.com/gfwlist -server=/.chinamz.org/127.0.0.1#5353 -ipset=/.chinamz.org/gfwlist -server=/.chinapress.com.my/127.0.0.1#5353 -ipset=/.chinapress.com.my/gfwlist -server=/.chinarightsia.org/127.0.0.1#5353 -ipset=/.chinarightsia.org/gfwlist -server=/.chinasmile.net/127.0.0.1#5353 -ipset=/.chinasmile.net/gfwlist -server=/.chinasocialdemocraticparty.com/127.0.0.1#5353 -ipset=/.chinasocialdemocraticparty.com/gfwlist -server=/.chinasoul.org/127.0.0.1#5353 -ipset=/.chinasoul.org/gfwlist -server=/.chinasucks.net/127.0.0.1#5353 -ipset=/.chinasucks.net/gfwlist -server=/.chinatimes.com/127.0.0.1#5353 -ipset=/.chinatimes.com/gfwlist -server=/.chinatopsex.com/127.0.0.1#5353 -ipset=/.chinatopsex.com/gfwlist -server=/.chinatweeps.com/127.0.0.1#5353 -ipset=/.chinatweeps.com/gfwlist -server=/.chinaway.org/127.0.0.1#5353 -ipset=/.chinaway.org/gfwlist -server=/.china-week.com/127.0.0.1#5353 -ipset=/.china-week.com/gfwlist -server=/.chinaworker.info/127.0.0.1#5353 -ipset=/.chinaworker.info/gfwlist -server=/.chinaxchina.com/127.0.0.1#5353 -ipset=/.chinaxchina.com/gfwlist -server=/.chinayouth.org.hk/127.0.0.1#5353 -ipset=/.chinayouth.org.hk/gfwlist -server=/.chinayuanmin.org/127.0.0.1#5353 -ipset=/.chinayuanmin.org/gfwlist -server=/.chinese.engadget.com/127.0.0.1#5353 -ipset=/.chinese.engadget.com/gfwlist -server=/.chinese.irib.ir/127.0.0.1#5353 -ipset=/.chinese.irib.ir/gfwlist -server=/.chinese.rnw.nl/127.0.0.1#5353 -ipset=/.chinese.rnw.nl/gfwlist -server=/.chinese.soifind.com/127.0.0.1#5353 -ipset=/.chinese.soifind.com/gfwlist -server=/.chinesedaily.com/127.0.0.1#5353 -ipset=/.chinesedaily.com/gfwlist -server=/.chinesedailynews.com/127.0.0.1#5353 -ipset=/.chinesedailynews.com/gfwlist -server=/.chinesedemocracy.com/127.0.0.1#5353 -ipset=/.chinesedemocracy.com/gfwlist -server=/.chinese-hermit.net/127.0.0.1#5353 -ipset=/.chinese-hermit.net/gfwlist -server=/.chinese-leaders.org/127.0.0.1#5353 -ipset=/.chinese-leaders.org/gfwlist -server=/.chinese-memorial.org/127.0.0.1#5353 -ipset=/.chinese-memorial.org/gfwlist -server=/.chinesen.de/127.0.0.1#5353 -ipset=/.chinesen.de/gfwlist -server=/.chinesepen.org/127.0.0.1#5353 -ipset=/.chinesepen.org/gfwlist -server=/.chinesetalks.net/127.0.0.1#5353 -ipset=/.chinesetalks.net/gfwlist -server=/.chingcheong.com/127.0.0.1#5353 -ipset=/.chingcheong.com/gfwlist -server=/.chithu.org/127.0.0.1#5353 -ipset=/.chithu.org/gfwlist -server=/.chn.chosun.com/127.0.0.1#5353 -ipset=/.chn.chosun.com/gfwlist -server=/.chrdnet.com/127.0.0.1#5353 -ipset=/.chrdnet.com/gfwlist -server=/.christianstudy.com/127.0.0.1#5353 -ipset=/.christianstudy.com/gfwlist -server=/.christiantimes.org.hk/127.0.0.1#5353 -ipset=/.christiantimes.org.hk/gfwlist -server=/.christusrex.org/127.0.0.1#5353 -ipset=/.christusrex.org/gfwlist -server=/.chrlawyers.hk/127.0.0.1#5353 -ipset=/.chrlawyers.hk/gfwlist -server=/.chrome.com/127.0.0.1#5353 -ipset=/.chrome.com/gfwlist -server=/.chromeadblock.com/127.0.0.1#5353 -ipset=/.chromeadblock.com/gfwlist -server=/.chromecast.com/127.0.0.1#5353 -ipset=/.chromecast.com/gfwlist -server=/.chromeexperiments.com/127.0.0.1#5353 -ipset=/.chromeexperiments.com/gfwlist -server=/.chromercise.com/127.0.0.1#5353 -ipset=/.chromercise.com/gfwlist -server=/.chromium.org/127.0.0.1#5353 -ipset=/.chromium.org/gfwlist -server=/.chuang-yen.org/127.0.0.1#5353 -ipset=/.chuang-yen.org/gfwlist -server=/.chuantupian.com/127.0.0.1#5353 -ipset=/.chuantupian.com/gfwlist -server=/.chubun.com/127.0.0.1#5353 -ipset=/.chubun.com/gfwlist -server=/.chuizi.net/127.0.0.1#5353 -ipset=/.chuizi.net/gfwlist -server=/.cipfg.org/127.0.0.1#5353 -ipset=/.cipfg.org/gfwlist -server=/.circlethebayfortibet.org/127.0.0.1#5353 -ipset=/.circlethebayfortibet.org/gfwlist -server=/.citizenlab.org/127.0.0.1#5353 -ipset=/.citizenlab.org/gfwlist -server=/.citizenscommission.hk/127.0.0.1#5353 -ipset=/.citizenscommission.hk/gfwlist -server=/.citizensradio.org/127.0.0.1#5353 -ipset=/.citizensradio.org/gfwlist -server=/.city365.ca/127.0.0.1#5353 -ipset=/.city365.ca/gfwlist -server=/.city9x.com/127.0.0.1#5353 -ipset=/.city9x.com/gfwlist -server=/.civicparty.hk/127.0.0.1#5353 -ipset=/.civicparty.hk/gfwlist -server=/.civilhrfront.org/127.0.0.1#5353 -ipset=/.civilhrfront.org/gfwlist -server=/.ck101.com/127.0.0.1#5353 -ipset=/.ck101.com/gfwlist -server=/.cl.d0z.net/127.0.0.1#5353 -ipset=/.cl.d0z.net/gfwlist -server=/.cl.ly/127.0.0.1#5353 -ipset=/.cl.ly/gfwlist -server=/.clarionproject.org/127.0.0.1#5353 -ipset=/.clarionproject.org/gfwlist -server=/.classicalguitarblog.net/127.0.0.1#5353 -ipset=/.classicalguitarblog.net/gfwlist -server=/.clb.org.hk/127.0.0.1#5353 -ipset=/.clb.org.hk/gfwlist -server=/.clearharmony.net/127.0.0.1#5353 -ipset=/.clearharmony.net/gfwlist -server=/.clearwisdom.net/127.0.0.1#5353 -ipset=/.clearwisdom.net/gfwlist -server=/.cling.omy.sg/127.0.0.1#5353 -ipset=/.cling.omy.sg/gfwlist -server=/.clipfish.de/127.0.0.1#5353 -ipset=/.clipfish.de/gfwlist -server=/.cloakpoint.com/127.0.0.1#5353 -ipset=/.cloakpoint.com/gfwlist -server=/.club1069.com/127.0.0.1#5353 -ipset=/.club1069.com/gfwlist -server=/.cmp.hku.hk/127.0.0.1#5353 -ipset=/.cmp.hku.hk/gfwlist -server=/.cms.gov/127.0.0.1#5353 -ipset=/.cms.gov/gfwlist -server=/.cmule.com/127.0.0.1#5353 -ipset=/.cmule.com/gfwlist -server=/.cmule.org/127.0.0.1#5353 -ipset=/.cmule.org/gfwlist -server=/.cn.calameo.com/127.0.0.1#5353 -ipset=/.cn.calameo.com/gfwlist -server=/.cn.dayabook.com/127.0.0.1#5353 -ipset=/.cn.dayabook.com/gfwlist -server=/.cn.fmnnow.com/127.0.0.1#5353 -ipset=/.cn.fmnnow.com/gfwlist -server=/.cn.freeones.com/127.0.0.1#5353 -ipset=/.cn.freeones.com/gfwlist -server=/.cn.giganews.com/127.0.0.1#5353 -ipset=/.cn.giganews.com/gfwlist -server=/.cn.ibtimes.com/127.0.0.1#5353 -ipset=/.cn.ibtimes.com/gfwlist -server=/.cn.shafaqna.com/127.0.0.1#5353 -ipset=/.cn.shafaqna.com/gfwlist -server=/.cn.streetvoice.com/127.0.0.1#5353 -ipset=/.cn.streetvoice.com/gfwlist -server=/.cn.uncyclopedia.wikia.com/127.0.0.1#5353 -ipset=/.cn.uncyclopedia.wikia.com/gfwlist -server=/.cn.voa.mobi/127.0.0.1#5353 -ipset=/.cn.voa.mobi/gfwlist -server=/.cn2.streetvoice.com/127.0.0.1#5353 -ipset=/.cn2.streetvoice.com/gfwlist -server=/.cn6.eu/127.0.0.1#5353 -ipset=/.cn6.eu/gfwlist -server=/.cnabc.com/127.0.0.1#5353 -ipset=/.cnabc.com/gfwlist -server=/.cnd.org/127.0.0.1#5353 -ipset=/.cnd.org/gfwlist -server=/.cnn.com/127.0.0.1#5353 -ipset=/.cnn.com/gfwlist -server=/.cnpolitics.org/127.0.0.1#5353 -ipset=/.cnpolitics.org/gfwlist -server=/.cochina.co/127.0.0.1#5353 -ipset=/.cochina.co/gfwlist -server=/.cochina.org/127.0.0.1#5353 -ipset=/.cochina.org/gfwlist -server=/.code1984.com/127.0.0.1#5353 -ipset=/.code1984.com/gfwlist -server=/.codeshare.io/127.0.0.1#5353 -ipset=/.codeshare.io/gfwlist -server=/.codeskulptor.org/127.0.0.1#5353 -ipset=/.codeskulptor.org/gfwlist -server=/.collateralmurder.com/127.0.0.1#5353 -ipset=/.collateralmurder.com/gfwlist -server=/.collateralmurder.org/127.0.0.1#5353 -ipset=/.collateralmurder.org/gfwlist -server=/.comefromchina.com/127.0.0.1#5353 -ipset=/.comefromchina.com/gfwlist -server=/.commentshk.com/127.0.0.1#5353 -ipset=/.commentshk.com/gfwlist -server=/.communistcrimes.org/127.0.0.1#5353 -ipset=/.communistcrimes.org/gfwlist -server=/.communitychoicecu.com/127.0.0.1#5353 -ipset=/.communitychoicecu.com/gfwlist -server=/.compileheart.com/127.0.0.1#5353 -ipset=/.compileheart.com/gfwlist -server=/.connect.facebook.net/127.0.0.1#5353 -ipset=/.connect.facebook.net/gfwlist -server=/.conoyo.com/127.0.0.1#5353 -ipset=/.conoyo.com/gfwlist -server=/.contactmagazine.net/127.0.0.1#5353 -ipset=/.contactmagazine.net/gfwlist -server=/.contests.twilio.com/127.0.0.1#5353 -ipset=/.contests.twilio.com/gfwlist -server=/.convio.net/127.0.0.1#5353 -ipset=/.convio.net/gfwlist -server=/.coobay.com/127.0.0.1#5353 -ipset=/.coobay.com/gfwlist -server=/.coolaler.com/127.0.0.1#5353 -ipset=/.coolaler.com/gfwlist -server=/.coolder.com/127.0.0.1#5353 -ipset=/.coolder.com/gfwlist -server=/.corumcollege.com/127.0.0.1#5353 -ipset=/.corumcollege.com/gfwlist -server=/.cotweet.com/127.0.0.1#5353 -ipset=/.cotweet.com/gfwlist -server=/.couchdbwiki.com/127.0.0.1#5353 -ipset=/.couchdbwiki.com/gfwlist -server=/.coveringweb.com/127.0.0.1#5353 -ipset=/.coveringweb.com/gfwlist -server=/.cpj.org/127.0.0.1#5353 -ipset=/.cpj.org/gfwlist -server=/.crackle.com/127.0.0.1#5353 -ipset=/.crackle.com/gfwlist -server=/.crchina.org/127.0.0.1#5353 -ipset=/.crchina.org/gfwlist -server=/.crd-net.org/127.0.0.1#5353 -ipset=/.crd-net.org/gfwlist -server=/.creaders.net/127.0.0.1#5353 -ipset=/.creaders.net/gfwlist -server=/.crossthewall.net/127.0.0.1#5353 -ipset=/.crossthewall.net/gfwlist -server=/.csdparty.com/127.0.0.1#5353 -ipset=/.csdparty.com/gfwlist -server=/.c-spanvideo.org/127.0.0.1#5353 -ipset=/.c-spanvideo.org/gfwlist -server=/.css.pixnet.in/127.0.0.1#5353 -ipset=/.css.pixnet.in/gfwlist -server=/.csuchen.de/127.0.0.1#5353 -ipset=/.csuchen.de/gfwlist -server=/.ctao.org/127.0.0.1#5353 -ipset=/.ctao.org/gfwlist -server=/.ctfriend.net/127.0.0.1#5353 -ipset=/.ctfriend.net/gfwlist -server=/.cuhkacs.org/127.0.0.1#5353 -ipset=/.cuhkacs.org/gfwlist -server=/.cuihua.org/127.0.0.1#5353 -ipset=/.cuihua.org/gfwlist -server=/.cuiweiping.net/127.0.0.1#5353 -ipset=/.cuiweiping.net/gfwlist -server=/.cumlouder.com/127.0.0.1#5353 -ipset=/.cumlouder.com/gfwlist -server=/.curvefish.com/127.0.0.1#5353 -ipset=/.curvefish.com/gfwlist -server=/.cusu.hk/127.0.0.1#5353 -ipset=/.cusu.hk/gfwlist -server=/.cweb-pix.com/127.0.0.1#5353 -ipset=/.cweb-pix.com/gfwlist -server=/.cyberghost.natado.com/127.0.0.1#5353 -ipset=/.cyberghost.natado.com/gfwlist -server=/.cyberghostvpn.com/127.0.0.1#5353 -ipset=/.cyberghostvpn.com/gfwlist -server=/.cynscribe.com/127.0.0.1#5353 -ipset=/.cynscribe.com/gfwlist -server=/.cytode.us/127.0.0.1#5353 -ipset=/.cytode.us/gfwlist -server=/.d100.net/127.0.0.1#5353 -ipset=/.d100.net/gfwlist -server=/.d2bay.com/127.0.0.1#5353 -ipset=/.d2bay.com/gfwlist -server=/.dabr.co.uk/127.0.0.1#5353 -ipset=/.dabr.co.uk/gfwlist -server=/.dabr.eu/127.0.0.1#5353 -ipset=/.dabr.eu/gfwlist -server=/.dabr.me/127.0.0.1#5353 -ipset=/.dabr.me/gfwlist -server=/.dabr.mobi/127.0.0.1#5353 -ipset=/.dabr.mobi/gfwlist -server=/.dadazim.com/127.0.0.1#5353 -ipset=/.dadazim.com/gfwlist -server=/.dadi360.com/127.0.0.1#5353 -ipset=/.dadi360.com/gfwlist -server=/.dafagood.com/127.0.0.1#5353 -ipset=/.dafagood.com/gfwlist -server=/.dafahao.com/127.0.0.1#5353 -ipset=/.dafahao.com/gfwlist -server=/.daftpunk.com/127.0.0.1#5353 -ipset=/.daftpunk.com/gfwlist -server=/.dailidaili.com/127.0.0.1#5353 -ipset=/.dailidaili.com/gfwlist -server=/.dailymotion.com/127.0.0.1#5353 -ipset=/.dailymotion.com/gfwlist -server=/.dailynews.sina.com/127.0.0.1#5353 -ipset=/.dailynews.sina.com/gfwlist -server=/.daiphapinfo.net/127.0.0.1#5353 -ipset=/.daiphapinfo.net/gfwlist -server=/.dajiyuan.com/127.0.0.1#5353 -ipset=/.dajiyuan.com/gfwlist -server=/.dajiyuan.de/127.0.0.1#5353 -ipset=/.dajiyuan.de/gfwlist -server=/.dajiyuan.eu/127.0.0.1#5353 -ipset=/.dajiyuan.eu/gfwlist -server=/.dajusha.baywords.com/127.0.0.1#5353 -ipset=/.dajusha.baywords.com/gfwlist -server=/.dalailama.com/127.0.0.1#5353 -ipset=/.dalailama.com/gfwlist -server=/.dalailama.ru/127.0.0.1#5353 -ipset=/.dalailama.ru/gfwlist -server=/.dalailama80.org/127.0.0.1#5353 -ipset=/.dalailama80.org/gfwlist -server=/.dalailamaprotesters.info/127.0.0.1#5353 -ipset=/.dalailamaprotesters.info/gfwlist -server=/.dalailamavisit.org.nz/127.0.0.1#5353 -ipset=/.dalailamavisit.org.nz/gfwlist -server=/.dalailamaworld.com/127.0.0.1#5353 -ipset=/.dalailamaworld.com/gfwlist -server=/.dalianmeng.org/127.0.0.1#5353 -ipset=/.dalianmeng.org/gfwlist -server=/.daliulian.org/127.0.0.1#5353 -ipset=/.daliulian.org/gfwlist -server=/.danke4china.net/127.0.0.1#5353 -ipset=/.danke4china.net/gfwlist -server=/.danwei.org/127.0.0.1#5353 -ipset=/.danwei.org/gfwlist -server=/.daodu14.jigsy.com/127.0.0.1#5353 -ipset=/.daodu14.jigsy.com/gfwlist -server=/.daolan.net/127.0.0.1#5353 -ipset=/.daolan.net/gfwlist -server=/.darktoy.net/127.0.0.1#5353 -ipset=/.darktoy.net/gfwlist -server=/.darpa.mil/127.0.0.1#5353 -ipset=/.darpa.mil/gfwlist -server=/.data-vocabulary.org/127.0.0.1#5353 -ipset=/.data-vocabulary.org/gfwlist -server=/.date.fm/127.0.0.1#5353 -ipset=/.date.fm/gfwlist -server=/.david-kilgour.com/127.0.0.1#5353 -ipset=/.david-kilgour.com/gfwlist -server=/.daxa.cn/127.0.0.1#5353 -ipset=/.daxa.cn/gfwlist -server=/.daylife.com/127.0.0.1#5353 -ipset=/.daylife.com/gfwlist -server=/.dbc.hk/127.0.0.1#5353 -ipset=/.dbc.hk/gfwlist -server=/.deck.ly/127.0.0.1#5353 -ipset=/.deck.ly/gfwlist -server=/.default.secureserver.net/127.0.0.1#5353 -ipset=/.default.secureserver.net/gfwlist -server=/.deja.com/127.0.0.1#5353 -ipset=/.deja.com/gfwlist -server=/.delcamp.net/127.0.0.1#5353 -ipset=/.delcamp.net/gfwlist -server=/.delicious.com/127.0.0.1#5353 -ipset=/.delicious.com/gfwlist -server=/.demo.opera-mini.net/127.0.0.1#5353 -ipset=/.demo.opera-mini.net/gfwlist -server=/.democrats.org/127.0.0.1#5353 -ipset=/.democrats.org/gfwlist -server=/.derekhsu.homeip.net/127.0.0.1#5353 -ipset=/.derekhsu.homeip.net/gfwlist -server=/.desc.se/127.0.0.1#5353 -ipset=/.desc.se/gfwlist -server=/.de-sci.org/127.0.0.1#5353 -ipset=/.de-sci.org/gfwlist -server=/.designerol.com/127.0.0.1#5353 -ipset=/.designerol.com/gfwlist -server=/.desipro.de/127.0.0.1#5353 -ipset=/.desipro.de/gfwlist -server=/.destiny.xfiles.to/127.0.0.1#5353 -ipset=/.destiny.xfiles.to/gfwlist -server=/.destroy-china.jp/127.0.0.1#5353 -ipset=/.destroy-china.jp/gfwlist -server=/.deutsche-welle.de/127.0.0.1#5353 -ipset=/.deutsche-welle.de/gfwlist -server=/.developers.box.net/127.0.0.1#5353 -ipset=/.developers.box.net/gfwlist -server=/.devio.us/127.0.0.1#5353 -ipset=/.devio.us/gfwlist -server=/.devpn.com/127.0.0.1#5353 -ipset=/.devpn.com/gfwlist -server=/.dfas.mil/127.0.0.1#5353 -ipset=/.dfas.mil/gfwlist -server=/.dfn.org/127.0.0.1#5353 -ipset=/.dfn.org/gfwlist -server=/.dharamsalanet.com/127.0.0.1#5353 -ipset=/.dharamsalanet.com/gfwlist -server=/.diaoyuislands.org/127.0.0.1#5353 -ipset=/.diaoyuislands.org/gfwlist -server=/.digitalnomadsproject.org/127.0.0.1#5353 -ipset=/.digitalnomadsproject.org/gfwlist -server=/.diigo.com/127.0.0.1#5353 -ipset=/.diigo.com/gfwlist -server=/.dimitrik.free.fr/127.0.0.1#5353 -ipset=/.dimitrik.free.fr/gfwlist -server=/.dipity.com/127.0.0.1#5353 -ipset=/.dipity.com/gfwlist -server=/.directcreative.com/127.0.0.1#5353 -ipset=/.directcreative.com/gfwlist -server=/.discogs.com/127.0.0.1#5353 -ipset=/.discogs.com/gfwlist -server=/.discuss.com.hk/127.0.0.1#5353 -ipset=/.discuss.com.hk/gfwlist -server=/.disp.cc/127.0.0.1#5353 -ipset=/.disp.cc/gfwlist -server=/.dit-inc.us/127.0.0.1#5353 -ipset=/.dit-inc.us/gfwlist -server=/.dizhidizhi.com/127.0.0.1#5353 -ipset=/.dizhidizhi.com/gfwlist -server=/.dizhuzhishang.com/127.0.0.1#5353 -ipset=/.dizhuzhishang.com/gfwlist -server=/.djangosnippets.org/127.0.0.1#5353 -ipset=/.djangosnippets.org/gfwlist -server=/.djorz.com/127.0.0.1#5353 -ipset=/.djorz.com/gfwlist -server=/.dl.box.net/127.0.0.1#5353 -ipset=/.dl.box.net/gfwlist -server=/.dl-laby.jp/127.0.0.1#5353 -ipset=/.dl-laby.jp/gfwlist -server=/.dlsite.com/127.0.0.1#5353 -ipset=/.dlsite.com/gfwlist -server=/.dmcdn.net/127.0.0.1#5353 -ipset=/.dmcdn.net/gfwlist -server=/.dmm.co.jp/127.0.0.1#5353 -ipset=/.dmm.co.jp/gfwlist -server=/.dns.v2ex.com/127.0.0.1#5353 -ipset=/.dns.v2ex.com/gfwlist -server=/.dns2go.com/127.0.0.1#5353 -ipset=/.dns2go.com/gfwlist -server=/.dnscrypt.org/127.0.0.1#5353 -ipset=/.dnscrypt.org/gfwlist -server=/.dnssec.net/127.0.0.1#5353 -ipset=/.dnssec.net/gfwlist -server=/.doctorvoice.org/127.0.0.1#5353 -ipset=/.doctorvoice.org/gfwlist -server=/.dogfartnetwork.com/127.0.0.1#5353 -ipset=/.dogfartnetwork.com/gfwlist -server=/.dojin.com/127.0.0.1#5353 -ipset=/.dojin.com/gfwlist -server=/.dok-forum.net/127.0.0.1#5353 -ipset=/.dok-forum.net/gfwlist -server=/.dolc.de/127.0.0.1#5353 -ipset=/.dolc.de/gfwlist -server=/.dolf.org.hk/127.0.0.1#5353 -ipset=/.dolf.org.hk/gfwlist -server=/.dollf.com/127.0.0.1#5353 -ipset=/.dollf.com/gfwlist -server=/.domainhelp.search.com/127.0.0.1#5353 -ipset=/.domainhelp.search.com/gfwlist -server=/.dongtaiwang.com/127.0.0.1#5353 -ipset=/.dongtaiwang.com/gfwlist -server=/.dongtaiwang.net/127.0.0.1#5353 -ipset=/.dongtaiwang.net/gfwlist -server=/.dongyangjing.com/127.0.0.1#5353 -ipset=/.dongyangjing.com/gfwlist -server=/.dontfilter.us/127.0.0.1#5353 -ipset=/.dontfilter.us/gfwlist -server=/.dontmovetochina.com/127.0.0.1#5353 -ipset=/.dontmovetochina.com/gfwlist -server=/.dotplane.com/127.0.0.1#5353 -ipset=/.dotplane.com/gfwlist -server=/.dotsub.com/127.0.0.1#5353 -ipset=/.dotsub.com/gfwlist -server=/.dougscripts.com/127.0.0.1#5353 -ipset=/.dougscripts.com/gfwlist -server=/.dowei.org/127.0.0.1#5353 -ipset=/.dowei.org/gfwlist -server=/.download.aircrack-ng.org/127.0.0.1#5353 -ipset=/.download.aircrack-ng.org/gfwlist -server=/.doxygen.org/127.0.0.1#5353 -ipset=/.doxygen.org/gfwlist -server=/.dphk.org/127.0.0.1#5353 -ipset=/.dphk.org/gfwlist -server=/.dreammask.org/127.0.0.1#5353 -ipset=/.dreammask.org/gfwlist -server=/.drepung.org/127.0.0.1#5353 -ipset=/.drepung.org/gfwlist -server=/.drgan.net/127.0.0.1#5353 -ipset=/.drgan.net/gfwlist -server=/.drmingxia.org/127.0.0.1#5353 -ipset=/.drmingxia.org/gfwlist -server=/.dropbox.com/127.0.0.1#5353 -ipset=/.dropbox.com/gfwlist -server=/.dropboxusercontent.com/127.0.0.1#5353 -ipset=/.dropboxusercontent.com/gfwlist -server=/.drsunacademy.com/127.0.0.1#5353 -ipset=/.drsunacademy.com/gfwlist -server=/.drtuber.com/127.0.0.1#5353 -ipset=/.drtuber.com/gfwlist -server=/.dscn.info/127.0.0.1#5353 -ipset=/.dscn.info/gfwlist -server=/.dtiblog.com/127.0.0.1#5353 -ipset=/.dtiblog.com/gfwlist -server=/.dtic.mil/127.0.0.1#5353 -ipset=/.dtic.mil/gfwlist -server=/.dtiserv2.com/127.0.0.1#5353 -ipset=/.dtiserv2.com/gfwlist -server=/.duckdns.org/127.0.0.1#5353 -ipset=/.duckdns.org/gfwlist -server=/.duckduckgo.com/127.0.0.1#5353 -ipset=/.duckduckgo.com/gfwlist -server=/.duckload.com/127.0.0.1#5353 -ipset=/.duckload.com/gfwlist -server=/.duckmylife.com/127.0.0.1#5353 -ipset=/.duckmylife.com/gfwlist -server=/.duihua.org/127.0.0.1#5353 -ipset=/.duihua.org/gfwlist -server=/.duihuahrjournal.org/127.0.0.1#5353 -ipset=/.duihuahrjournal.org/gfwlist -server=/.duoweitimes.com/127.0.0.1#5353 -ipset=/.duoweitimes.com/gfwlist -server=/.duping.net/127.0.0.1#5353 -ipset=/.duping.net/gfwlist -server=/.duplicati.com/127.0.0.1#5353 -ipset=/.duplicati.com/gfwlist -server=/.dupola.com/127.0.0.1#5353 -ipset=/.dupola.com/gfwlist -server=/.dupola.net/127.0.0.1#5353 -ipset=/.dupola.net/gfwlist -server=/.dushi.ca/127.0.0.1#5353 -ipset=/.dushi.ca/gfwlist -server=/.dvorak.org/127.0.0.1#5353 -ipset=/.dvorak.org/gfwlist -server=/.dw.com/127.0.0.1#5353 -ipset=/.dw.com/gfwlist -server=/.dw.de/127.0.0.1#5353 -ipset=/.dw.de/gfwlist -server=/.dwnews.com/127.0.0.1#5353 -ipset=/.dwnews.com/gfwlist -server=/.dwnews.net/127.0.0.1#5353 -ipset=/.dwnews.net/gfwlist -server=/.dw-world.com/127.0.0.1#5353 -ipset=/.dw-world.com/gfwlist -server=/.dw-world.de/127.0.0.1#5353 -ipset=/.dw-world.de/gfwlist -server=/.dynawebinc.com/127.0.0.1#5353 -ipset=/.dynawebinc.com/gfwlist -server=/.dyndns.org/127.0.0.1#5353 -ipset=/.dyndns.org/gfwlist -server=/.dzze.com/127.0.0.1#5353 -ipset=/.dzze.com/gfwlist -server=/.e123.hk/127.0.0.1#5353 -ipset=/.e123.hk/gfwlist -server=/.earthcam.com/127.0.0.1#5353 -ipset=/.earthcam.com/gfwlist -server=/.eastern-ark.com/127.0.0.1#5353 -ipset=/.eastern-ark.com/gfwlist -server=/.easternlightning.org/127.0.0.1#5353 -ipset=/.easternlightning.org/gfwlist -server=/.eastturkestan.com/127.0.0.1#5353 -ipset=/.eastturkestan.com/gfwlist -server=/.eastturkistan-gov.org/127.0.0.1#5353 -ipset=/.eastturkistan-gov.org/gfwlist -server=/.eastturkistangovernmentinexile.us/127.0.0.1#5353 -ipset=/.eastturkistangovernmentinexile.us/gfwlist -server=/.ebookbrowse.com/127.0.0.1#5353 -ipset=/.ebookbrowse.com/gfwlist -server=/.ebookee.com/127.0.0.1#5353 -ipset=/.ebookee.com/gfwlist -server=/.echofon.com/127.0.0.1#5353 -ipset=/.echofon.com/gfwlist -server=/.ecministry.net/127.0.0.1#5353 -ipset=/.ecministry.net/gfwlist -server=/.ecsm.vs.com/127.0.0.1#5353 -ipset=/.ecsm.vs.com/gfwlist -server=/.edgecastcdn.net/127.0.0.1#5353 -ipset=/.edgecastcdn.net/gfwlist -server=/.edicypages.com/127.0.0.1#5353 -ipset=/.edicypages.com/gfwlist -server=/.edmontonchina.cn/127.0.0.1#5353 -ipset=/.edmontonchina.cn/gfwlist -server=/.edoors.com/127.0.0.1#5353 -ipset=/.edoors.com/gfwlist -server=/.edubridge.com/127.0.0.1#5353 -ipset=/.edubridge.com/gfwlist -server=/.edupro.org/127.0.0.1#5353 -ipset=/.edupro.org/gfwlist -server=/.eeas.europa.eu/127.0.0.1#5353 -ipset=/.eeas.europa.eu/gfwlist -server=/.eevpn.com/127.0.0.1#5353 -ipset=/.eevpn.com/gfwlist -server=/.efcc.org.hk/127.0.0.1#5353 -ipset=/.efcc.org.hk/gfwlist -server=/.effers.com/127.0.0.1#5353 -ipset=/.effers.com/gfwlist -server=/.efksoft.com/127.0.0.1#5353 -ipset=/.efksoft.com/gfwlist -server=/.efmoe.com/127.0.0.1#5353 -ipset=/.efmoe.com/gfwlist -server=/.e-gold.com/127.0.0.1#5353 -ipset=/.e-gold.com/gfwlist -server=/.eic-av.com/127.0.0.1#5353 -ipset=/.eic-av.com/gfwlist -server=/.eisbb.com/127.0.0.1#5353 -ipset=/.eisbb.com/gfwlist -server=/.eksisozluk.com/127.0.0.1#5353 -ipset=/.eksisozluk.com/gfwlist -server=/.electionsmeter.com/127.0.0.1#5353 -ipset=/.electionsmeter.com/gfwlist -server=/.elephantvpn.com/127.0.0.1#5353 -ipset=/.elephantvpn.com/gfwlist -server=/.elgoog.im/127.0.0.1#5353 -ipset=/.elgoog.im/gfwlist -server=/.elpais.com/127.0.0.1#5353 -ipset=/.elpais.com/gfwlist -server=/.eltondisney.com/127.0.0.1#5353 -ipset=/.eltondisney.com/gfwlist -server=/.emacsblog.org/127.0.0.1#5353 -ipset=/.emacsblog.org/gfwlist -server=/.embr.in/127.0.0.1#5353 -ipset=/.embr.in/gfwlist -server=/.emilylau.org.hk/127.0.0.1#5353 -ipset=/.emilylau.org.hk/gfwlist -server=/.empfil.com/127.0.0.1#5353 -ipset=/.empfil.com/gfwlist -server=/.emule-ed2k.com/127.0.0.1#5353 -ipset=/.emule-ed2k.com/gfwlist -server=/.emuparadise.me/127.0.0.1#5353 -ipset=/.emuparadise.me/gfwlist -server=/.en.favotter.net/127.0.0.1#5353 -ipset=/.en.favotter.net/gfwlist -server=/.en.hao123.com/127.0.0.1#5353 -ipset=/.en.hao123.com/gfwlist -server=/.enewstree.com/127.0.0.1#5353 -ipset=/.enewstree.com/gfwlist -server=/.englishfromengland.co.uk/127.0.0.1#5353 -ipset=/.englishfromengland.co.uk/gfwlist -server=/.entermap.com/127.0.0.1#5353 -ipset=/.entermap.com/gfwlist -server=/.episcopalchurch.org/127.0.0.1#5353 -ipset=/.episcopalchurch.org/gfwlist -server=/.epochtimes.co.il/127.0.0.1#5353 -ipset=/.epochtimes.co.il/gfwlist -server=/.epochtimes.co.kr/127.0.0.1#5353 -ipset=/.epochtimes.co.kr/gfwlist -server=/.epochtimes.com/127.0.0.1#5353 -ipset=/.epochtimes.com/gfwlist -server=/.epochtimes.cz/127.0.0.1#5353 -ipset=/.epochtimes.cz/gfwlist -server=/.epochtimes.de/127.0.0.1#5353 -ipset=/.epochtimes.de/gfwlist -server=/.epochtimes.fr/127.0.0.1#5353 -ipset=/.epochtimes.fr/gfwlist -server=/.epochtimes.ie/127.0.0.1#5353 -ipset=/.epochtimes.ie/gfwlist -server=/.epochtimes.it/127.0.0.1#5353 -ipset=/.epochtimes.it/gfwlist -server=/.epochtimes.jp/127.0.0.1#5353 -ipset=/.epochtimes.jp/gfwlist -server=/.epochtimes.ru/127.0.0.1#5353 -ipset=/.epochtimes.ru/gfwlist -server=/.epochtimes.se/127.0.0.1#5353 -ipset=/.epochtimes.se/gfwlist -server=/.epochtimes-bg.com/127.0.0.1#5353 -ipset=/.epochtimes-bg.com/gfwlist -server=/.epochtimes-romania.com/127.0.0.1#5353 -ipset=/.epochtimes-romania.com/gfwlist -server=/.epochtimestr.com/127.0.0.1#5353 -ipset=/.epochtimestr.com/gfwlist -server=/.epochweek.com/127.0.0.1#5353 -ipset=/.epochweek.com/gfwlist -server=/.epochweekly.com/127.0.0.1#5353 -ipset=/.epochweekly.com/gfwlist -server=/.erabaru.net/127.0.0.1#5353 -ipset=/.erabaru.net/gfwlist -server=/.erepublik.com/127.0.0.1#5353 -ipset=/.erepublik.com/gfwlist -server=/.erights.net/127.0.0.1#5353 -ipset=/.erights.net/gfwlist -server=/.eriversoft.com/127.0.0.1#5353 -ipset=/.eriversoft.com/gfwlist -server=/.erktv.com/127.0.0.1#5353 -ipset=/.erktv.com/gfwlist -server=/.ernestmandel.org/127.0.0.1#5353 -ipset=/.ernestmandel.org/gfwlist -server=/.erodoujinworld.com/127.0.0.1#5353 -ipset=/.erodoujinworld.com/gfwlist -server=/.eslite.com/127.0.0.1#5353 -ipset=/.eslite.com/gfwlist -server=/.etaa.org.au/127.0.0.1#5353 -ipset=/.etaa.org.au/gfwlist -server=/.etaiwannews.com/127.0.0.1#5353 -ipset=/.etaiwannews.com/gfwlist -server=/.etizer.org/127.0.0.1#5353 -ipset=/.etizer.org/gfwlist -server=/.etools.ncol.com/127.0.0.1#5353 -ipset=/.etools.ncol.com/gfwlist -server=/.e-traderland.net/127.0.0.1#5353 -ipset=/.e-traderland.net/gfwlist -server=/.ettoday.net/127.0.0.1#5353 -ipset=/.ettoday.net/gfwlist -server=/.etvonline.hk/127.0.0.1#5353 -ipset=/.etvonline.hk/gfwlist -server=/.eu.org/127.0.0.1#5353 -ipset=/.eu.org/gfwlist -server=/.eulam.com/127.0.0.1#5353 -ipset=/.eulam.com/gfwlist -server=/.evchk.wikia.com/127.0.0.1#5353 -ipset=/.evchk.wikia.com/gfwlist -server=/.eventful.com/127.0.0.1#5353 -ipset=/.eventful.com/gfwlist -server=/.exblog.jp/127.0.0.1#5353 -ipset=/.exblog.jp/gfwlist -server=/.exchristian.hk/127.0.0.1#5353 -ipset=/.exchristian.hk/gfwlist -server=/.exmormon.org/127.0.0.1#5353 -ipset=/.exmormon.org/gfwlist -server=/.expatshield.com/127.0.0.1#5353 -ipset=/.expatshield.com/gfwlist -server=/.exploader.net/127.0.0.1#5353 -ipset=/.exploader.net/gfwlist -server=/.expressvpn.com/127.0.0.1#5353 -ipset=/.expressvpn.com/gfwlist -server=/.extremetube.com/127.0.0.1#5353 -ipset=/.extremetube.com/gfwlist -server=/.eyevio.jp/127.0.0.1#5353 -ipset=/.eyevio.jp/gfwlist -server=/.eyny.com/127.0.0.1#5353 -ipset=/.eyny.com/gfwlist -server=/.e-zone.com.hk/127.0.0.1#5353 -ipset=/.e-zone.com.hk/gfwlist -server=/.ezpc.tk/127.0.0.1#5353 -ipset=/.ezpc.tk/gfwlist -server=/.ezpeer.com/127.0.0.1#5353 -ipset=/.ezpeer.com/gfwlist -server=/.facebook.com/127.0.0.1#5353 -ipset=/.facebook.com/gfwlist -server=/.facebook.hu/127.0.0.1#5353 -ipset=/.facebook.hu/gfwlist -server=/.facebook.nl/127.0.0.1#5353 -ipset=/.facebook.nl/gfwlist -server=/.facebookquotes4u.com/127.0.0.1#5353 -ipset=/.facebookquotes4u.com/gfwlist -server=/.faceless.me/127.0.0.1#5353 -ipset=/.faceless.me/gfwlist -server=/.facesofnyfw.com/127.0.0.1#5353 -ipset=/.facesofnyfw.com/gfwlist -server=/.facesoftibetanselfimmolators.info/127.0.0.1#5353 -ipset=/.facesoftibetanselfimmolators.info/gfwlist -server=/.fail.hk/127.0.0.1#5353 -ipset=/.fail.hk/gfwlist -server=/.faithfuleye.com/127.0.0.1#5353 -ipset=/.faithfuleye.com/gfwlist -server=/.faiththedog.info/127.0.0.1#5353 -ipset=/.faiththedog.info/gfwlist -server=/.fakku.net/127.0.0.1#5353 -ipset=/.fakku.net/gfwlist -server=/.falsefire.com/127.0.0.1#5353 -ipset=/.falsefire.com/gfwlist -server=/.falun.caltech.edu/127.0.0.1#5353 -ipset=/.falun.caltech.edu/gfwlist -server=/.falunart.org/127.0.0.1#5353 -ipset=/.falunart.org/gfwlist -server=/.falunasia.info/127.0.0.1#5353 -ipset=/.falunasia.info/gfwlist -server=/.falun-co.org/127.0.0.1#5353 -ipset=/.falun-co.org/gfwlist -server=/.falundafa.org/127.0.0.1#5353 -ipset=/.falundafa.org/gfwlist -server=/.falundafa-dc.org/127.0.0.1#5353 -ipset=/.falundafa-dc.org/gfwlist -server=/.falundafa-florida.org/127.0.0.1#5353 -ipset=/.falundafa-florida.org/gfwlist -server=/.falundafaindia.org/127.0.0.1#5353 -ipset=/.falundafaindia.org/gfwlist -server=/.falundafamuseum.org/127.0.0.1#5353 -ipset=/.falundafamuseum.org/gfwlist -server=/.falundafa-nc.org/127.0.0.1#5353 -ipset=/.falundafa-nc.org/gfwlist -server=/.falundafa-pa.net/127.0.0.1#5353 -ipset=/.falundafa-pa.net/gfwlist -server=/.falungong.de/127.0.0.1#5353 -ipset=/.falungong.de/gfwlist -server=/.falungong.org.uk/127.0.0.1#5353 -ipset=/.falungong.org.uk/gfwlist -server=/.falunhr.org/127.0.0.1#5353 -ipset=/.falunhr.org/gfwlist -server=/.faluninfo.de/127.0.0.1#5353 -ipset=/.faluninfo.de/gfwlist -server=/.faluninfo.net/127.0.0.1#5353 -ipset=/.faluninfo.net/gfwlist -server=/.falun-ny.net/127.0.0.1#5353 -ipset=/.falun-ny.net/gfwlist -server=/.falunpilipinas.net/127.0.0.1#5353 -ipset=/.falunpilipinas.net/gfwlist -server=/.falunworld.net/127.0.0.1#5353 -ipset=/.falunworld.net/gfwlist -server=/.familyfed.org/127.0.0.1#5353 -ipset=/.familyfed.org/gfwlist -server=/.famunion.com/127.0.0.1#5353 -ipset=/.famunion.com/gfwlist -server=/.fangbinxing.com/127.0.0.1#5353 -ipset=/.fangbinxing.com/gfwlist -server=/.fangeming.com/127.0.0.1#5353 -ipset=/.fangeming.com/gfwlist -server=/.fang-lizhi.hxwk.org/127.0.0.1#5353 -ipset=/.fang-lizhi.hxwk.org/gfwlist -server=/.fanglizhi.info/127.0.0.1#5353 -ipset=/.fanglizhi.info/gfwlist -server=/.fangmincn.org/127.0.0.1#5353 -ipset=/.fangmincn.org/gfwlist -server=/.fangong.org/127.0.0.1#5353 -ipset=/.fangong.org/gfwlist -server=/.fangongheike.com/127.0.0.1#5353 -ipset=/.fangongheike.com/gfwlist -server=/.fan-qiang.com/127.0.0.1#5353 -ipset=/.fan-qiang.com/gfwlist -server=/.fanqianghou.com/127.0.0.1#5353 -ipset=/.fanqianghou.com/gfwlist -server=/.fanqiangyakexi.net/127.0.0.1#5353 -ipset=/.fanqiangyakexi.net/gfwlist -server=/.fanswong.com/127.0.0.1#5353 -ipset=/.fanswong.com/gfwlist -server=/.fanyue.info/127.0.0.1#5353 -ipset=/.fanyue.info/gfwlist -server=/.fapdu.com/127.0.0.1#5353 -ipset=/.fapdu.com/gfwlist -server=/.faproxy.com/127.0.0.1#5353 -ipset=/.faproxy.com/gfwlist -server=/.farwestchina.com/127.0.0.1#5353 -ipset=/.farwestchina.com/gfwlist -server=/.fastpic.ru/127.0.0.1#5353 -ipset=/.fastpic.ru/gfwlist -server=/.faststone.org/127.0.0.1#5353 -ipset=/.faststone.org/gfwlist -server=/.favstar.fm/127.0.0.1#5353 -ipset=/.favstar.fm/gfwlist -server=/.fawanghuihui.org/127.0.0.1#5353 -ipset=/.fawanghuihui.org/gfwlist -server=/.faydao.com/127.0.0.1#5353 -ipset=/.faydao.com/gfwlist -server=/.fb.com/127.0.0.1#5353 -ipset=/.fb.com/gfwlist -server=/.fb.me/127.0.0.1#5353 -ipset=/.fb.me/gfwlist -server=/.fbcdn.net/127.0.0.1#5353 -ipset=/.fbcdn.net/gfwlist -server=/.fbsbx.com/127.0.0.1#5353 -ipset=/.fbsbx.com/gfwlist -server=/.fc2.com/127.0.0.1#5353 -ipset=/.fc2.com/gfwlist -server=/.fc2blog.net/127.0.0.1#5353 -ipset=/.fc2blog.net/gfwlist -server=/.fc2china.com/127.0.0.1#5353 -ipset=/.fc2china.com/gfwlist -server=/.fc2cn.com/127.0.0.1#5353 -ipset=/.fc2cn.com/gfwlist -server=/.fdc89.jp/127.0.0.1#5353 -ipset=/.fdc89.jp/gfwlist -server=/.feedburner.com/127.0.0.1#5353 -ipset=/.feedburner.com/gfwlist -server=/.feeds.fileforum.com/127.0.0.1#5353 -ipset=/.feeds.fileforum.com/gfwlist -server=/.feedzshare.com/127.0.0.1#5353 -ipset=/.feedzshare.com/gfwlist -server=/.feelssh.com/127.0.0.1#5353 -ipset=/.feelssh.com/gfwlist -server=/.feer.com/127.0.0.1#5353 -ipset=/.feer.com/gfwlist -server=/.feitianacademy.org/127.0.0.1#5353 -ipset=/.feitianacademy.org/gfwlist -server=/.feitian-california.org/127.0.0.1#5353 -ipset=/.feitian-california.org/gfwlist -server=/.feministteacher.com/127.0.0.1#5353 -ipset=/.feministteacher.com/gfwlist -server=/.fengzhenghu.com/127.0.0.1#5353 -ipset=/.fengzhenghu.com/gfwlist -server=/.ff.im/127.0.0.1#5353 -ipset=/.ff.im/gfwlist -server=/.fflick.com/127.0.0.1#5353 -ipset=/.fflick.com/gfwlist -server=/.fgmtv.net/127.0.0.1#5353 -ipset=/.fgmtv.net/gfwlist -server=/.fgmtv.org/127.0.0.1#5353 -ipset=/.fgmtv.org/gfwlist -server=/.fhreports.net/127.0.0.1#5353 -ipset=/.fhreports.net/gfwlist -server=/.files2me.com/127.0.0.1#5353 -ipset=/.files2me.com/gfwlist -server=/.fileserve.com/127.0.0.1#5353 -ipset=/.fileserve.com/gfwlist -server=/.fillthesquare.org/127.0.0.1#5353 -ipset=/.fillthesquare.org/gfwlist -server=/.filmingfortibet.org/127.0.0.1#5353 -ipset=/.filmingfortibet.org/gfwlist -server=/.finalion.jp/127.0.0.1#5353 -ipset=/.finalion.jp/gfwlist -server=/.financetwitter.com/127.0.0.1#5353 -ipset=/.financetwitter.com/gfwlist -server=/.fingerdaily.com/127.0.0.1#5353 -ipset=/.fingerdaily.com/gfwlist -server=/.finler.net/127.0.0.1#5353 -ipset=/.finler.net/gfwlist -server=/.fireofliberty.org/127.0.0.1#5353 -ipset=/.fireofliberty.org/gfwlist -server=/.firstfivefollowers.com/127.0.0.1#5353 -ipset=/.firstfivefollowers.com/gfwlist -server=/.flecheinthepeche.fr/127.0.0.1#5353 -ipset=/.flecheinthepeche.fr/gfwlist -server=/.fleshbot.com/127.0.0.1#5353 -ipset=/.fleshbot.com/gfwlist -server=/.flgg.us/127.0.0.1#5353 -ipset=/.flgg.us/gfwlist -server=/.flickr.com/127.0.0.1#5353 -ipset=/.flickr.com/gfwlist -server=/.flickrhivemind.net/127.0.0.1#5353 -ipset=/.flickrhivemind.net/gfwlist -server=/.flightcaster.com/127.0.0.1#5353 -ipset=/.flightcaster.com/gfwlist -server=/.flipboard.com/127.0.0.1#5353 -ipset=/.flipboard.com/gfwlist -server=/.flitto.com/127.0.0.1#5353 -ipset=/.flitto.com/gfwlist -server=/.focusvpn.com/127.0.0.1#5353 -ipset=/.focusvpn.com/gfwlist -server=/.fofg.org/127.0.0.1#5353 -ipset=/.fofg.org/gfwlist -server=/.fofldfradio.org/127.0.0.1#5353 -ipset=/.fofldfradio.org/gfwlist -server=/.fooooo.com/127.0.0.1#5353 -ipset=/.fooooo.com/gfwlist -server=/.footwiball.com/127.0.0.1#5353 -ipset=/.footwiball.com/gfwlist -server=/.forum.baby-kingdom.com/127.0.0.1#5353 -ipset=/.forum.baby-kingdom.com/gfwlist -server=/.forum.cyberctm.com/127.0.0.1#5353 -ipset=/.forum.cyberctm.com/gfwlist -server=/.forum.idsam.com/127.0.0.1#5353 -ipset=/.forum.idsam.com/gfwlist -server=/.forum.my903.com/127.0.0.1#5353 -ipset=/.forum.my903.com/gfwlist -server=/.forum.mymaji.com/127.0.0.1#5353 -ipset=/.forum.mymaji.com/gfwlist -server=/.forum.omy.sg/127.0.0.1#5353 -ipset=/.forum.omy.sg/gfwlist -server=/.forum.palmislife.com/127.0.0.1#5353 -ipset=/.forum.palmislife.com/gfwlist -server=/.forum.sina.com.hk/127.0.0.1#5353 -ipset=/.forum.sina.com.hk/gfwlist -server=/.forum.tvb.com/127.0.0.1#5353 -ipset=/.forum.tvb.com/gfwlist -server=/.forum.xinbao.de/127.0.0.1#5353 -ipset=/.forum.xinbao.de/gfwlist -server=/.fotop.net/127.0.0.1#5353 -ipset=/.fotop.net/gfwlist -server=/.fourface.nodesnoop.com/127.0.0.1#5353 -ipset=/.fourface.nodesnoop.com/gfwlist -server=/.fourthinternational.org/127.0.0.1#5353 -ipset=/.fourthinternational.org/gfwlist -server=/.foxdie.us/127.0.0.1#5353 -ipset=/.foxdie.us/gfwlist -server=/.foxgay.com/127.0.0.1#5353 -ipset=/.foxgay.com/gfwlist -server=/.foxsub.com/127.0.0.1#5353 -ipset=/.foxsub.com/gfwlist -server=/.foxtang.com/127.0.0.1#5353 -ipset=/.foxtang.com/gfwlist -server=/.fpmt.org/127.0.0.1#5353 -ipset=/.fpmt.org/gfwlist -server=/.fpmtmexico.org/127.0.0.1#5353 -ipset=/.fpmtmexico.org/gfwlist -server=/.fpmt-osel.org/127.0.0.1#5353 -ipset=/.fpmt-osel.org/gfwlist -server=/.fqok.org/127.0.0.1#5353 -ipset=/.fqok.org/gfwlist -server=/.fqrouter.com/127.0.0.1#5353 -ipset=/.fqrouter.com/gfwlist -server=/.franklc.com/127.0.0.1#5353 -ipset=/.franklc.com/gfwlist -server=/.freakshare.com/127.0.0.1#5353 -ipset=/.freakshare.com/gfwlist -server=/.free.fr/127.0.0.1#5353 -ipset=/.free.fr/gfwlist -server=/.free4u.com.ar/127.0.0.1#5353 -ipset=/.free4u.com.ar/gfwlist -server=/.freealim.com/127.0.0.1#5353 -ipset=/.freealim.com/gfwlist -server=/.freebrowser.org/127.0.0.1#5353 -ipset=/.freebrowser.org/gfwlist -server=/.freechal.com/127.0.0.1#5353 -ipset=/.freechal.com/gfwlist -server=/.freechina.net/127.0.0.1#5353 -ipset=/.freechina.net/gfwlist -server=/.freedomchina.info/127.0.0.1#5353 -ipset=/.freedomchina.info/gfwlist -server=/.freedomcollection.org/127.0.0.1#5353 -ipset=/.freedomcollection.org/gfwlist -server=/.freedomhouse.org/127.0.0.1#5353 -ipset=/.freedomhouse.org/gfwlist -server=/.freedomsherald.org/127.0.0.1#5353 -ipset=/.freedomsherald.org/gfwlist -server=/.freeforums.org/127.0.0.1#5353 -ipset=/.freeforums.org/gfwlist -server=/.freefuckvids.com/127.0.0.1#5353 -ipset=/.freefuckvids.com/gfwlist -server=/.freegao.com/127.0.0.1#5353 -ipset=/.freegao.com/gfwlist -server=/.free-gate.org/127.0.0.1#5353 -ipset=/.free-gate.org/gfwlist -server=/.free-hada-now.org/127.0.0.1#5353 -ipset=/.free-hada-now.org/gfwlist -server=/.freeilhamtohti.org/127.0.0.1#5353 -ipset=/.freeilhamtohti.org/gfwlist -server=/.freeimage.us/127.0.0.1#5353 -ipset=/.freeimage.us/gfwlist -server=/.freelotto.com/127.0.0.1#5353 -ipset=/.freelotto.com/gfwlist -server=/.freeman2.com/127.0.0.1#5353 -ipset=/.freeman2.com/gfwlist -server=/.freemoren.com/127.0.0.1#5353 -ipset=/.freemoren.com/gfwlist -server=/.freemorenews.com/127.0.0.1#5353 -ipset=/.freemorenews.com/gfwlist -server=/.freenet-china.org/127.0.0.1#5353 -ipset=/.freenet-china.org/gfwlist -server=/.freenetproject.org/127.0.0.1#5353 -ipset=/.freenetproject.org/gfwlist -server=/.freenewscn.com/127.0.0.1#5353 -ipset=/.freenewscn.com/gfwlist -server=/.freeopenvpn.com/127.0.0.1#5353 -ipset=/.freeopenvpn.com/gfwlist -server=/.freeoz.org/127.0.0.1#5353 -ipset=/.freeoz.org/gfwlist -server=/.free-ssh.com/127.0.0.1#5353 -ipset=/.free-ssh.com/gfwlist -server=/.freessh.us/127.0.0.1#5353 -ipset=/.freessh.us/gfwlist -server=/.freetibet.net/127.0.0.1#5353 -ipset=/.freetibet.net/gfwlist -server=/.freetibet.org/127.0.0.1#5353 -ipset=/.freetibet.org/gfwlist -server=/.freetibetanheroes.org/127.0.0.1#5353 -ipset=/.freetibetanheroes.org/gfwlist -server=/.freevpn.nl/127.0.0.1#5353 -ipset=/.freevpn.nl/gfwlist -server=/.freewallpaper4.me/127.0.0.1#5353 -ipset=/.freewallpaper4.me/gfwlist -server=/.freewebs.com/127.0.0.1#5353 -ipset=/.freewebs.com/gfwlist -server=/.freeweibo.com/127.0.0.1#5353 -ipset=/.freeweibo.com/gfwlist -server=/.freexinwen.com/127.0.0.1#5353 -ipset=/.freexinwen.com/gfwlist -server=/.freeyoutubeproxy.net/127.0.0.1#5353 -ipset=/.freeyoutubeproxy.net/gfwlist -server=/.friendfeed.com/127.0.0.1#5353 -ipset=/.friendfeed.com/gfwlist -server=/.friendfeed-media.com/127.0.0.1#5353 -ipset=/.friendfeed-media.com/gfwlist -server=/.friendsoftibet.org/127.0.0.1#5353 -ipset=/.friendsoftibet.org/gfwlist -server=/.friends-of-tibet.org/127.0.0.1#5353 -ipset=/.friends-of-tibet.org/gfwlist -server=/.fring.com/127.0.0.1#5353 -ipset=/.fring.com/gfwlist -server=/.fringenetwork.com/127.0.0.1#5353 -ipset=/.fringenetwork.com/gfwlist -server=/.frommel.net/127.0.0.1#5353 -ipset=/.frommel.net/gfwlist -server=/.frontlinedefenders.org/127.0.0.1#5353 -ipset=/.frontlinedefenders.org/gfwlist -server=/.fscked.org/127.0.0.1#5353 -ipset=/.fscked.org/gfwlist -server=/.fsurf.com/127.0.0.1#5353 -ipset=/.fsurf.com/gfwlist -server=/.ftchinese.com/127.0.0.1#5353 -ipset=/.ftchinese.com/gfwlist -server=/.fuckcnnic.net/127.0.0.1#5353 -ipset=/.fuckcnnic.net/gfwlist -server=/.fuckgfw.org/127.0.0.1#5353 -ipset=/.fuckgfw.org/gfwlist -server=/.fullerconsideration.com/127.0.0.1#5353 -ipset=/.fullerconsideration.com/gfwlist -server=/.fulue.com/127.0.0.1#5353 -ipset=/.fulue.com/gfwlist -server=/.funp.com/127.0.0.1#5353 -ipset=/.funp.com/gfwlist -server=/.furhhdl.org/127.0.0.1#5353 -ipset=/.furhhdl.org/gfwlist -server=/.furinkan.com/127.0.0.1#5353 -ipset=/.furinkan.com/gfwlist -server=/.furl.net/127.0.0.1#5353 -ipset=/.furl.net/gfwlist -server=/.futurechinaforum.org/127.0.0.1#5353 -ipset=/.futurechinaforum.org/gfwlist -server=/.futureme.org/127.0.0.1#5353 -ipset=/.futureme.org/gfwlist -server=/.futuremessage.org/127.0.0.1#5353 -ipset=/.futuremessage.org/gfwlist -server=/.fuyin.net/127.0.0.1#5353 -ipset=/.fuyin.net/gfwlist -server=/.fw.cm/127.0.0.1#5353 -ipset=/.fw.cm/gfwlist -server=/.fxnetworks.com/127.0.0.1#5353 -ipset=/.fxnetworks.com/gfwlist -server=/.fzh999.com/127.0.0.1#5353 -ipset=/.fzh999.com/gfwlist -server=/.fzh999.net/127.0.0.1#5353 -ipset=/.fzh999.net/gfwlist -server=/.g.co/127.0.0.1#5353 -ipset=/.g.co/gfwlist -server=/.g.e-hentai.org/127.0.0.1#5353 -ipset=/.g.e-hentai.org/gfwlist -server=/.gabocorp.com/127.0.0.1#5353 -ipset=/.gabocorp.com/gfwlist -server=/.gaeproxy.com/127.0.0.1#5353 -ipset=/.gaeproxy.com/gfwlist -server=/.gaforum.org/127.0.0.1#5353 -ipset=/.gaforum.org/gfwlist -server=/.galenwu.com/127.0.0.1#5353 -ipset=/.galenwu.com/gfwlist -server=/.game735.com/127.0.0.1#5353 -ipset=/.game735.com/gfwlist -server=/.ganges.com/127.0.0.1#5353 -ipset=/.ganges.com/gfwlist -server=/.gaoming.net/127.0.0.1#5353 -ipset=/.gaoming.net/gfwlist -server=/.gaopi.net/127.0.0.1#5353 -ipset=/.gaopi.net/gfwlist -server=/.gaozhisheng.net/127.0.0.1#5353 -ipset=/.gaozhisheng.net/gfwlist -server=/.gaozhisheng.org/127.0.0.1#5353 -ipset=/.gaozhisheng.org/gfwlist -server=/.gardennetworks.com/127.0.0.1#5353 -ipset=/.gardennetworks.com/gfwlist -server=/.gardennetworks.org/127.0.0.1#5353 -ipset=/.gardennetworks.org/gfwlist -server=/.gartlive.com/127.0.0.1#5353 -ipset=/.gartlive.com/gfwlist -server=/.gather.com/127.0.0.1#5353 -ipset=/.gather.com/gfwlist -server=/.gaycn.net/127.0.0.1#5353 -ipset=/.gaycn.net/gfwlist -server=/.gaymap.cc/127.0.0.1#5353 -ipset=/.gaymap.cc/gfwlist -server=/.gaytube.com/127.0.0.1#5353 -ipset=/.gaytube.com/gfwlist -server=/.gazotube.com/127.0.0.1#5353 -ipset=/.gazotube.com/gfwlist -server=/.gcc.org.hk/127.0.0.1#5353 -ipset=/.gcc.org.hk/gfwlist -server=/.gclooney.com/127.0.0.1#5353 -ipset=/.gclooney.com/gfwlist -server=/.gcpnews.com/127.0.0.1#5353 -ipset=/.gcpnews.com/gfwlist -server=/.gdbt.net/127.0.0.1#5353 -ipset=/.gdbt.net/gfwlist -server=/.gdzf.org/127.0.0.1#5353 -ipset=/.gdzf.org/gfwlist -server=/.geek-art.net/127.0.0.1#5353 -ipset=/.geek-art.net/gfwlist -server=/.geekerhome.com/127.0.0.1#5353 -ipset=/.geekerhome.com/gfwlist -server=/.geekmanuals.com/127.0.0.1#5353 -ipset=/.geekmanuals.com/gfwlist -server=/.geocities.co.jp/127.0.0.1#5353 -ipset=/.geocities.co.jp/gfwlist -server=/.geocities.com/127.0.0.1#5353 -ipset=/.geocities.com/gfwlist -server=/.geocities.jp/127.0.0.1#5353 -ipset=/.geocities.jp/gfwlist -server=/.geohot.com/127.0.0.1#5353 -ipset=/.geohot.com/gfwlist -server=/.geometrictools.com/127.0.0.1#5353 -ipset=/.geometrictools.com/gfwlist -server=/.getchu.com/127.0.0.1#5353 -ipset=/.getchu.com/gfwlist -server=/.getcloak.com/127.0.0.1#5353 -ipset=/.getcloak.com/gfwlist -server=/.getcloudapp.com/127.0.0.1#5353 -ipset=/.getcloudapp.com/gfwlist -server=/.getfoxyproxy.org/127.0.0.1#5353 -ipset=/.getfoxyproxy.org/gfwlist -server=/.getfreedur.com/127.0.0.1#5353 -ipset=/.getfreedur.com/gfwlist -server=/.getgom.com/127.0.0.1#5353 -ipset=/.getgom.com/gfwlist -server=/.getiton.com/127.0.0.1#5353 -ipset=/.getiton.com/gfwlist -server=/.getjetso.com/127.0.0.1#5353 -ipset=/.getjetso.com/gfwlist -server=/.getlantern.org/127.0.0.1#5353 -ipset=/.getlantern.org/gfwlist -server=/.getmdl.io/127.0.0.1#5353 -ipset=/.getmdl.io/gfwlist -server=/.getsmartlinks.com/127.0.0.1#5353 -ipset=/.getsmartlinks.com/gfwlist -server=/.getsocialscope.com/127.0.0.1#5353 -ipset=/.getsocialscope.com/gfwlist -server=/.gettyimages.com/127.0.0.1#5353 -ipset=/.gettyimages.com/gfwlist -server=/.getuploader.com/127.0.0.1#5353 -ipset=/.getuploader.com/gfwlist -server=/.gfbv.de/127.0.0.1#5353 -ipset=/.gfbv.de/gfwlist -server=/.gfsale.com/127.0.0.1#5353 -ipset=/.gfsale.com/gfwlist -server=/.gfw.org.ua/127.0.0.1#5353 -ipset=/.gfw.org.ua/gfwlist -server=/.ggpht.com/127.0.0.1#5353 -ipset=/.ggpht.com/gfwlist -server=/.ggssl.com/127.0.0.1#5353 -ipset=/.ggssl.com/gfwlist -server=/.ghost.org/127.0.0.1#5353 -ipset=/.ghost.org/gfwlist -server=/.ghostpath.com/127.0.0.1#5353 -ipset=/.ghostpath.com/gfwlist -server=/.ghut.org/127.0.0.1#5353 -ipset=/.ghut.org/gfwlist -server=/.giga-web.jp/127.0.0.1#5353 -ipset=/.giga-web.jp/gfwlist -server=/.gigporno.ru/127.0.0.1#5353 -ipset=/.gigporno.ru/gfwlist -server=/.gimpshop.com/127.0.0.1#5353 -ipset=/.gimpshop.com/gfwlist -server=/.girlbanker.com/127.0.0.1#5353 -ipset=/.girlbanker.com/gfwlist -server=/.git-scm.com/127.0.0.1#5353 -ipset=/.git-scm.com/gfwlist -server=/.gizlen.net/127.0.0.1#5353 -ipset=/.gizlen.net/gfwlist -server=/.glass8.eu/127.0.0.1#5353 -ipset=/.glass8.eu/gfwlist -server=/.glennhilton.com/127.0.0.1#5353 -ipset=/.glennhilton.com/gfwlist -server=/.global.hkepc.com/127.0.0.1#5353 -ipset=/.global.hkepc.com/gfwlist -server=/.globaljihad.net/127.0.0.1#5353 -ipset=/.globaljihad.net/gfwlist -server=/.globalmuseumoncommunism.org/127.0.0.1#5353 -ipset=/.globalmuseumoncommunism.org/gfwlist -server=/.globalrescue.hopto.org/127.0.0.1#5353 -ipset=/.globalrescue.hopto.org/gfwlist -server=/.globalrescue.net/127.0.0.1#5353 -ipset=/.globalrescue.net/gfwlist -server=/.globaltm.org/127.0.0.1#5353 -ipset=/.globaltm.org/gfwlist -server=/.globalvoicesonline.org/127.0.0.1#5353 -ipset=/.globalvoicesonline.org/gfwlist -server=/.glype.com/127.0.0.1#5353 -ipset=/.glype.com/gfwlist -server=/.gmail.com/127.0.0.1#5353 -ipset=/.gmail.com/gfwlist -server=/.gmbd.cn/127.0.0.1#5353 -ipset=/.gmbd.cn/gfwlist -server=/.gmhz.org/127.0.0.1#5353 -ipset=/.gmhz.org/gfwlist -server=/.gmll.org/127.0.0.1#5353 -ipset=/.gmll.org/gfwlist -server=/.gmodules.com/127.0.0.1#5353 -ipset=/.gmodules.com/gfwlist -server=/.gmozomg.izihost.org/127.0.0.1#5353 -ipset=/.gmozomg.izihost.org/gfwlist -server=/.gnci.org.hk/127.0.0.1#5353 -ipset=/.gnci.org.hk/gfwlist -server=/.goagent.biz/127.0.0.1#5353 -ipset=/.goagent.biz/gfwlist -server=/.goagent.codeplex.com/127.0.0.1#5353 -ipset=/.goagent.codeplex.com/gfwlist -server=/.goagentplus.com/127.0.0.1#5353 -ipset=/.goagentplus.com/gfwlist -server=/.godfootsteps.org/127.0.0.1#5353 -ipset=/.godfootsteps.org/gfwlist -server=/.godsdirectcontact.org/127.0.0.1#5353 -ipset=/.godsdirectcontact.org/gfwlist -server=/.gokbayrak.com/127.0.0.1#5353 -ipset=/.gokbayrak.com/gfwlist -server=/.golang.org/127.0.0.1#5353 -ipset=/.golang.org/gfwlist -server=/.goldbetsports.com/127.0.0.1#5353 -ipset=/.goldbetsports.com/gfwlist -server=/.goldenfrog.com/127.0.0.1#5353 -ipset=/.goldenfrog.com/gfwlist -server=/.goldstep.net/127.0.0.1#5353 -ipset=/.goldstep.net/gfwlist -server=/.goldwave.com/127.0.0.1#5353 -ipset=/.goldwave.com/gfwlist -server=/.gongm.in/127.0.0.1#5353 -ipset=/.gongm.in/gfwlist -server=/.gongmeng.info/127.0.0.1#5353 -ipset=/.gongmeng.info/gfwlist -server=/.gongminliliang.com/127.0.0.1#5353 -ipset=/.gongminliliang.com/gfwlist -server=/.gongwt.com/127.0.0.1#5353 -ipset=/.gongwt.com/gfwlist -server=/.goo.gl/127.0.0.1#5353 -ipset=/.goo.gl/gfwlist -server=/.goodreaders.com/127.0.0.1#5353 -ipset=/.goodreaders.com/gfwlist -server=/.goodreads.com/127.0.0.1#5353 -ipset=/.goodreads.com/gfwlist -server=/.goodtv.tv/127.0.0.1#5353 -ipset=/.goodtv.tv/gfwlist -server=/.goofind.com/127.0.0.1#5353 -ipset=/.goofind.com/gfwlist -server=/.google.co.jp/127.0.0.1#5353 -ipset=/.google.co.jp/gfwlist -server=/.google.co.uk/127.0.0.1#5353 -ipset=/.google.co.uk/gfwlist -server=/.google.com/127.0.0.1#5353 -ipset=/.google.com/gfwlist -server=/.google.com.hk/127.0.0.1#5353 -ipset=/.google.com.hk/gfwlist -server=/.google.com.sg/127.0.0.1#5353 -ipset=/.google.com.sg/gfwlist -server=/.google.ro/127.0.0.1#5353 -ipset=/.google.ro/gfwlist -server=/.googleapis.com/127.0.0.1#5353 -ipset=/.googleapis.com/gfwlist -server=/.googleartproject.com/127.0.0.1#5353 -ipset=/.googleartproject.com/gfwlist -server=/.googlecode.com/127.0.0.1#5353 -ipset=/.googlecode.com/gfwlist -server=/.googlecommerce.com/127.0.0.1#5353 -ipset=/.googlecommerce.com/gfwlist -server=/.googledomains.com/127.0.0.1#5353 -ipset=/.googledomains.com/gfwlist -server=/.googledrive.com/127.0.0.1#5353 -ipset=/.googledrive.com/gfwlist -server=/.googleearth.com/127.0.0.1#5353 -ipset=/.googleearth.com/gfwlist -server=/.googlegroups.com/127.0.0.1#5353 -ipset=/.googlegroups.com/gfwlist -server=/.googlehosted.com/127.0.0.1#5353 -ipset=/.googlehosted.com/gfwlist -server=/.googlelabs.com/127.0.0.1#5353 -ipset=/.googlelabs.com/gfwlist -server=/.googlemail.com/127.0.0.1#5353 -ipset=/.googlemail.com/gfwlist -server=/.googleplay.com/127.0.0.1#5353 -ipset=/.googleplay.com/gfwlist -server=/.googleplus.com/127.0.0.1#5353 -ipset=/.googleplus.com/gfwlist -server=/.googlesile.com/127.0.0.1#5353 -ipset=/.googlesile.com/gfwlist -server=/.googlesource.com/127.0.0.1#5353 -ipset=/.googlesource.com/gfwlist -server=/.googleusercontent.com/127.0.0.1#5353 -ipset=/.googleusercontent.com/gfwlist -server=/.googlevideo.com/127.0.0.1#5353 -ipset=/.googlevideo.com/gfwlist -server=/.googlezip.net/127.0.0.1#5353 -ipset=/.googlezip.net/gfwlist -server=/.gopetition.com/127.0.0.1#5353 -ipset=/.gopetition.com/gfwlist -server=/.go-pki.com/127.0.0.1#5353 -ipset=/.go-pki.com/gfwlist -server=/.goproxing.net/127.0.0.1#5353 -ipset=/.goproxing.net/gfwlist -server=/.gospelherald.com/127.0.0.1#5353 -ipset=/.gospelherald.com/gfwlist -server=/.gotgeeks.com/127.0.0.1#5353 -ipset=/.gotgeeks.com/gfwlist -server=/.gotrusted.com/127.0.0.1#5353 -ipset=/.gotrusted.com/gfwlist -server=/.gotw.ca/127.0.0.1#5353 -ipset=/.gotw.ca/gfwlist -server=/.grammaly.com/127.0.0.1#5353 -ipset=/.grammaly.com/gfwlist -server=/.grandtrial.org/127.0.0.1#5353 -ipset=/.grandtrial.org/gfwlist -server=/.grangorz.org/127.0.0.1#5353 -ipset=/.grangorz.org/gfwlist -server=/.graphis.ne.jp/127.0.0.1#5353 -ipset=/.graphis.ne.jp/gfwlist -server=/.graylog2.org/127.0.0.1#5353 -ipset=/.graylog2.org/gfwlist -server=/.greasespot.net/127.0.0.1#5353 -ipset=/.greasespot.net/gfwlist -server=/.greatfire.org/127.0.0.1#5353 -ipset=/.greatfire.org/gfwlist -server=/.greatfirewall.biz/127.0.0.1#5353 -ipset=/.greatfirewall.biz/gfwlist -server=/.great-firewall.com/127.0.0.1#5353 -ipset=/.great-firewall.com/gfwlist -server=/.greatfirewallofchina.net/127.0.0.1#5353 -ipset=/.greatfirewallofchina.net/gfwlist -server=/.greatfirewallofchina.org/127.0.0.1#5353 -ipset=/.greatfirewallofchina.org/gfwlist -server=/.greatroc.org/127.0.0.1#5353 -ipset=/.greatroc.org/gfwlist -server=/.great-roc.org/127.0.0.1#5353 -ipset=/.great-roc.org/gfwlist -server=/.greatzhonghua.org/127.0.0.1#5353 -ipset=/.greatzhonghua.org/gfwlist -server=/.greenpeace.org/127.0.0.1#5353 -ipset=/.greenpeace.org/gfwlist -server=/.greenvpn.net/127.0.0.1#5353 -ipset=/.greenvpn.net/gfwlist -server=/.groups.google.cn/127.0.0.1#5353 -ipset=/.groups.google.cn/gfwlist -server=/.gs-discuss.com/127.0.0.1#5353 -ipset=/.gs-discuss.com/gfwlist -server=/.gstatic.com/127.0.0.1#5353 -ipset=/.gstatic.com/gfwlist -server=/.gtricks.com/127.0.0.1#5353 -ipset=/.gtricks.com/gfwlist -server=/.guancha.org/127.0.0.1#5353 -ipset=/.guancha.org/gfwlist -server=/.gu-chu-sum.org/127.0.0.1#5353 -ipset=/.gu-chu-sum.org/gfwlist -server=/.guishan.org/127.0.0.1#5353 -ipset=/.guishan.org/gfwlist -server=/.gunsamerica.com/127.0.0.1#5353 -ipset=/.gunsamerica.com/gfwlist -server=/.gun-world.net/127.0.0.1#5353 -ipset=/.gun-world.net/gfwlist -server=/.guruonline.hk/127.0.0.1#5353 -ipset=/.guruonline.hk/gfwlist -server=/.gutteruncensored.com/127.0.0.1#5353 -ipset=/.gutteruncensored.com/gfwlist -server=/.gvlib.com/127.0.0.1#5353 -ipset=/.gvlib.com/gfwlist -server=/.gvt0.com/127.0.0.1#5353 -ipset=/.gvt0.com/gfwlist -server=/.gvt1.com/127.0.0.1#5353 -ipset=/.gvt1.com/gfwlist -server=/.gvt1.com/127.0.0.1#5353 -ipset=/.gvt1.com/gfwlist -server=/.gvt2.com/127.0.0.1#5353 -ipset=/.gvt2.com/gfwlist -server=/.gvt3.com/127.0.0.1#5353 -ipset=/.gvt3.com/gfwlist -server=/.gyalwarinpoche.com/127.0.0.1#5353 -ipset=/.gyalwarinpoche.com/gfwlist -server=/.gyatsostudio.com/127.0.0.1#5353 -ipset=/.gyatsostudio.com/gfwlist -server=/.gzm.tv/127.0.0.1#5353 -ipset=/.gzm.tv/gfwlist -server=/.gzone-anime.info/127.0.0.1#5353 -ipset=/.gzone-anime.info/gfwlist -server=/.h1n1china.org/127.0.0.1#5353 -ipset=/.h1n1china.org/gfwlist -server=/.hacken.cc/127.0.0.1#5353 -ipset=/.hacken.cc/gfwlist -server=/.hackthatphone.net/127.0.0.1#5353 -ipset=/.hackthatphone.net/gfwlist -server=/.hahlo.com/127.0.0.1#5353 -ipset=/.hahlo.com/gfwlist -server=/.hanunyi.com/127.0.0.1#5353 -ipset=/.hanunyi.com/gfwlist -server=/.happy-vpn.com/127.0.0.1#5353 -ipset=/.happy-vpn.com/gfwlist -server=/.haproxy.org/127.0.0.1#5353 -ipset=/.haproxy.org/gfwlist -server=/.hardsextube.com/127.0.0.1#5353 -ipset=/.hardsextube.com/gfwlist -server=/.harunyahya.com/127.0.0.1#5353 -ipset=/.harunyahya.com/gfwlist -server=/.hasaowall.com/127.0.0.1#5353 -ipset=/.hasaowall.com/gfwlist -server=/.have8.com/127.0.0.1#5353 -ipset=/.have8.com/gfwlist -server=/.h-china.org/127.0.0.1#5353 -ipset=/.h-china.org/gfwlist -server=/.hdtvb.net/127.0.0.1#5353 -ipset=/.hdtvb.net/gfwlist -server=/.heartyit.com/127.0.0.1#5353 -ipset=/.heartyit.com/gfwlist -server=/.hecaitou.net/127.0.0.1#5353 -ipset=/.hecaitou.net/gfwlist -server=/.hechaji.com/127.0.0.1#5353 -ipset=/.hechaji.com/gfwlist -server=/.heix.pp.ru/127.0.0.1#5353 -ipset=/.heix.pp.ru/gfwlist -server=/.helloandroid.com/127.0.0.1#5353 -ipset=/.helloandroid.com/gfwlist -server=/.helloqueer.com/127.0.0.1#5353 -ipset=/.helloqueer.com/gfwlist -server=/.hellotxt.com/127.0.0.1#5353 -ipset=/.hellotxt.com/gfwlist -server=/.hellouk.org/127.0.0.1#5353 -ipset=/.hellouk.org/gfwlist -server=/.help.linksalpha.com/127.0.0.1#5353 -ipset=/.help.linksalpha.com/gfwlist -server=/.help.opera.com/127.0.0.1#5353 -ipset=/.help.opera.com/gfwlist -server=/.helpeachpeople.com/127.0.0.1#5353 -ipset=/.helpeachpeople.com/gfwlist -server=/.helplinfen.com/127.0.0.1#5353 -ipset=/.helplinfen.com/gfwlist -server=/.helpzhuling.org/127.0.0.1#5353 -ipset=/.helpzhuling.org/gfwlist -server=/.hentai.to/127.0.0.1#5353 -ipset=/.hentai.to/gfwlist -server=/.heqinglian.net/127.0.0.1#5353 -ipset=/.heqinglian.net/gfwlist -server=/.here4news.com/127.0.0.1#5353 -ipset=/.here4news.com/gfwlist -server=/.heungkongdiscuss.com/127.0.0.1#5353 -ipset=/.heungkongdiscuss.com/gfwlist -server=/.hexxeh.net/127.0.0.1#5353 -ipset=/.hexxeh.net/gfwlist -server=/.heyzo.com/127.0.0.1#5353 -ipset=/.heyzo.com/gfwlist -server=/.hgseav.com/127.0.0.1#5353 -ipset=/.hgseav.com/gfwlist -server=/.hidden-advent.org/127.0.0.1#5353 -ipset=/.hidden-advent.org/gfwlist -server=/.hide.me/127.0.0.1#5353 -ipset=/.hide.me/gfwlist -server=/.hidecloud.com/127.0.0.1#5353 -ipset=/.hidecloud.com/gfwlist -server=/.hideipvpn.com/127.0.0.1#5353 -ipset=/.hideipvpn.com/gfwlist -server=/.hideman.net/127.0.0.1#5353 -ipset=/.hideman.net/gfwlist -server=/.hideme.nl/127.0.0.1#5353 -ipset=/.hideme.nl/gfwlist -server=/.hidemyass.com/127.0.0.1#5353 -ipset=/.hidemyass.com/gfwlist -server=/.hidemycomp.com/127.0.0.1#5353 -ipset=/.hidemycomp.com/gfwlist -server=/.higfw.com/127.0.0.1#5353 -ipset=/.higfw.com/gfwlist -server=/.highpeakspureearth.com/127.0.0.1#5353 -ipset=/.highpeakspureearth.com/gfwlist -server=/.highrockmedia.com/127.0.0.1#5353 -ipset=/.highrockmedia.com/gfwlist -server=/.hihiforum.com/127.0.0.1#5353 -ipset=/.hihiforum.com/gfwlist -server=/.hihistory.net/127.0.0.1#5353 -ipset=/.hihistory.net/gfwlist -server=/.hiitch.com/127.0.0.1#5353 -ipset=/.hiitch.com/gfwlist -server=/.hikinggfw.org/127.0.0.1#5353 -ipset=/.hikinggfw.org/gfwlist -server=/.himalayan-foundation.org/127.0.0.1#5353 -ipset=/.himalayan-foundation.org/gfwlist -server=/.himemix.com/127.0.0.1#5353 -ipset=/.himemix.com/gfwlist -server=/.himemix.net/127.0.0.1#5353 -ipset=/.himemix.net/gfwlist -server=/.hjclub.info/127.0.0.1#5353 -ipset=/.hjclub.info/gfwlist -server=/.hk.geocities.com/127.0.0.1#5353 -ipset=/.hk.geocities.com/gfwlist -server=/.hk.gradconnection.com/127.0.0.1#5353 -ipset=/.hk.gradconnection.com/gfwlist -server=/.hk.hao123img.com/127.0.0.1#5353 -ipset=/.hk.hao123img.com/gfwlist -server=/.hk.jiepang.com/127.0.0.1#5353 -ipset=/.hk.jiepang.com/gfwlist -server=/.hk.knowledge.yahoo.com/127.0.0.1#5353 -ipset=/.hk.knowledge.yahoo.com/gfwlist -server=/.hk.myblog.yahoo.com/127.0.0.1#5353 -ipset=/.hk.myblog.yahoo.com/gfwlist -server=/.hk.news.yahoo.com/127.0.0.1#5353 -ipset=/.hk.news.yahoo.com/gfwlist -server=/.hk.rd.yahoo.com/127.0.0.1#5353 -ipset=/.hk.rd.yahoo.com/gfwlist -server=/.hk.search.yahoo.com/127.0.0.1#5353 -ipset=/.hk.search.yahoo.com/gfwlist -server=/.hk.video.news.yahoo.com/127.0.0.1#5353 -ipset=/.hk.video.news.yahoo.com/gfwlist -server=/.hk.yahoo.com/127.0.0.1#5353 -ipset=/.hk.yahoo.com/gfwlist -server=/.hk01.com/127.0.0.1#5353 -ipset=/.hk01.com/gfwlist -server=/.hk32168.com/127.0.0.1#5353 -ipset=/.hk32168.com/gfwlist -server=/.hkatvnews.com/127.0.0.1#5353 -ipset=/.hkatvnews.com/gfwlist -server=/.hkbc.net/127.0.0.1#5353 -ipset=/.hkbc.net/gfwlist -server=/.hkbf.org/127.0.0.1#5353 -ipset=/.hkbf.org/gfwlist -server=/.hkbookcity.com/127.0.0.1#5353 -ipset=/.hkbookcity.com/gfwlist -server=/.hkchurch.org/127.0.0.1#5353 -ipset=/.hkchurch.org/gfwlist -server=/.hkdailynews.com.hk/127.0.0.1#5353 -ipset=/.hkdailynews.com.hk/gfwlist -server=/.hkday.net/127.0.0.1#5353 -ipset=/.hkday.net/gfwlist -server=/.hkdf.org/127.0.0.1#5353 -ipset=/.hkdf.org/gfwlist -server=/.hkej.com/127.0.0.1#5353 -ipset=/.hkej.com/gfwlist -server=/.hkepc.com/127.0.0.1#5353 -ipset=/.hkepc.com/gfwlist -server=/.hkfront.org/127.0.0.1#5353 -ipset=/.hkfront.org/gfwlist -server=/.hkgolden.com/127.0.0.1#5353 -ipset=/.hkgolden.com/gfwlist -server=/.hkgreenradio.org/127.0.0.1#5353 -ipset=/.hkgreenradio.org/gfwlist -server=/.hkheadline.com/127.0.0.1#5353 -ipset=/.hkheadline.com/gfwlist -server=/.hkhkhk.com/127.0.0.1#5353 -ipset=/.hkhkhk.com/gfwlist -server=/.hkhrc.org.hk/127.0.0.1#5353 -ipset=/.hkhrc.org.hk/gfwlist -server=/.hkhrm.org.hk/127.0.0.1#5353 -ipset=/.hkhrm.org.hk/gfwlist -server=/.hkjc.com/127.0.0.1#5353 -ipset=/.hkjc.com/gfwlist -server=/.hkjp.org/127.0.0.1#5353 -ipset=/.hkjp.org/gfwlist -server=/.hklft.com/127.0.0.1#5353 -ipset=/.hklft.com/gfwlist -server=/.hklts.org.hk/127.0.0.1#5353 -ipset=/.hklts.org.hk/gfwlist -server=/.hkptu.org/127.0.0.1#5353 -ipset=/.hkptu.org/gfwlist -server=/.hk-pub.com/127.0.0.1#5353 -ipset=/.hk-pub.com/gfwlist -server=/.hkreporter.com/127.0.0.1#5353 -ipset=/.hkreporter.com/gfwlist -server=/.hkreporter.loved.hk/127.0.0.1#5353 -ipset=/.hkreporter.loved.hk/gfwlist -server=/.hkupop.hku.hk/127.0.0.1#5353 -ipset=/.hkupop.hku.hk/gfwlist -server=/.hkusu.net/127.0.0.1#5353 -ipset=/.hkusu.net/gfwlist -server=/.hkwcc.org.hk/127.0.0.1#5353 -ipset=/.hkwcc.org.hk/gfwlist -server=/.hkzone.org/127.0.0.1#5353 -ipset=/.hkzone.org/gfwlist -server=/.hmvdigital.ca/127.0.0.1#5353 -ipset=/.hmvdigital.ca/gfwlist -server=/.hmvdigital.com/127.0.0.1#5353 -ipset=/.hmvdigital.com/gfwlist -server=/.hnjhj.com/127.0.0.1#5353 -ipset=/.hnjhj.com/gfwlist -server=/.hola.com/127.0.0.1#5353 -ipset=/.hola.com/gfwlist -server=/.hola.org/127.0.0.1#5353 -ipset=/.hola.org/gfwlist -server=/.holyspiritspeaks.org/127.0.0.1#5353 -ipset=/.holyspiritspeaks.org/gfwlist -server=/.holz.byethost8.com/127.0.0.1#5353 -ipset=/.holz.byethost8.com/gfwlist -server=/.home.sina.com/127.0.0.1#5353 -ipset=/.home.sina.com/gfwlist -server=/.homedepot.com/127.0.0.1#5353 -ipset=/.homedepot.com/gfwlist -server=/.homeservershow.com/127.0.0.1#5353 -ipset=/.homeservershow.com/gfwlist -server=/.hongmeimei.com/127.0.0.1#5353 -ipset=/.hongmeimei.com/gfwlist -server=/.hongzhi.li/127.0.0.1#5353 -ipset=/.hongzhi.li/gfwlist -server=/.hootsuite.com/127.0.0.1#5353 -ipset=/.hootsuite.com/gfwlist -server=/.hornygamer.com/127.0.0.1#5353 -ipset=/.hornygamer.com/gfwlist -server=/.hotav.tv/127.0.0.1#5353 -ipset=/.hotav.tv/gfwlist -server=/.hotpot.hk/127.0.0.1#5353 -ipset=/.hotpot.hk/gfwlist -server=/.hotshame.com/127.0.0.1#5353 -ipset=/.hotshame.com/gfwlist -server=/.hotspotshield.com/127.0.0.1#5353 -ipset=/.hotspotshield.com/gfwlist -server=/.hougaige.com/127.0.0.1#5353 -ipset=/.hougaige.com/gfwlist -server=/.howtoforge.com/127.0.0.1#5353 -ipset=/.howtoforge.com/gfwlist -server=/.hqcdp.org/127.0.0.1#5353 -ipset=/.hqcdp.org/gfwlist -server=/.hqjapanesesex.com/127.0.0.1#5353 -ipset=/.hqjapanesesex.com/gfwlist -server=/.hrcchina.org/127.0.0.1#5353 -ipset=/.hrcchina.org/gfwlist -server=/.hrcir.com/127.0.0.1#5353 -ipset=/.hrcir.com/gfwlist -server=/.hrea.org/127.0.0.1#5353 -ipset=/.hrea.org/gfwlist -server=/.hrichina.org/127.0.0.1#5353 -ipset=/.hrichina.org/gfwlist -server=/.hrw.org/127.0.0.1#5353 -ipset=/.hrw.org/gfwlist -server=/.hrweb.org/127.0.0.1#5353 -ipset=/.hrweb.org/gfwlist -server=/.hsjp.net/127.0.0.1#5353 -ipset=/.hsjp.net/gfwlist -server=/.hsselite.com/127.0.0.1#5353 -ipset=/.hsselite.com/gfwlist -server=/.hstt.net/127.0.0.1#5353 -ipset=/.hstt.net/gfwlist -server=/.ht.ly/127.0.0.1#5353 -ipset=/.ht.ly/gfwlist -server=/.htkou.net/127.0.0.1#5353 -ipset=/.htkou.net/gfwlist -server=/.htl.li/127.0.0.1#5353 -ipset=/.htl.li/gfwlist -server=/.html5rocks.com/127.0.0.1#5353 -ipset=/.html5rocks.com/gfwlist -server=/.htmldog.com/127.0.0.1#5353 -ipset=/.htmldog.com/gfwlist -server=/.huaglad.com/127.0.0.1#5353 -ipset=/.huaglad.com/gfwlist -server=/.huanghuagang.org/127.0.0.1#5353 -ipset=/.huanghuagang.org/gfwlist -server=/.huaren.us/127.0.0.1#5353 -ipset=/.huaren.us/gfwlist -server=/.huaxiabao.org/127.0.0.1#5353 -ipset=/.huaxiabao.org/gfwlist -server=/.huaxia-news.com/127.0.0.1#5353 -ipset=/.huaxia-news.com/gfwlist -server=/.huaxin.ph/127.0.0.1#5353 -ipset=/.huaxin.ph/gfwlist -server=/.hua-yue.net/127.0.0.1#5353 -ipset=/.hua-yue.net/gfwlist -server=/.huayuworld.org/127.0.0.1#5353 -ipset=/.huayuworld.org/gfwlist -server=/.hudatoriq.web.id/127.0.0.1#5353 -ipset=/.hudatoriq.web.id/gfwlist -server=/.huffingtonpost.com/127.0.0.1#5353 -ipset=/.huffingtonpost.com/gfwlist -server=/.hugoroy.eu/127.0.0.1#5353 -ipset=/.hugoroy.eu/gfwlist -server=/.huhaitai.com/127.0.0.1#5353 -ipset=/.huhaitai.com/gfwlist -server=/.huhamhire.com/127.0.0.1#5353 -ipset=/.huhamhire.com/gfwlist -server=/.hulu.com/127.0.0.1#5353 -ipset=/.hulu.com/gfwlist -server=/.huluim.com/127.0.0.1#5353 -ipset=/.huluim.com/gfwlist -server=/.humanrightsbriefing.org/127.0.0.1#5353 -ipset=/.humanrightsbriefing.org/gfwlist -server=/.hungerstrikeforaids.org/127.0.0.1#5353 -ipset=/.hungerstrikeforaids.org/gfwlist -server=/.hung-ya.com/127.0.0.1#5353 -ipset=/.hung-ya.com/gfwlist -server=/.huping.net/127.0.0.1#5353 -ipset=/.huping.net/gfwlist -server=/.hustlercash.com/127.0.0.1#5353 -ipset=/.hustlercash.com/gfwlist -server=/.hutianyi.net/127.0.0.1#5353 -ipset=/.hutianyi.net/gfwlist -server=/.hutong9.net/127.0.0.1#5353 -ipset=/.hutong9.net/gfwlist -server=/.hwinfo.com/127.0.0.1#5353 -ipset=/.hwinfo.com/gfwlist -server=/.hxwq.org/127.0.0.1#5353 -ipset=/.hxwq.org/gfwlist -server=/.hybrid-analysis.com/127.0.0.1#5353 -ipset=/.hybrid-analysis.com/gfwlist -server=/.hyperrate.com/127.0.0.1#5353 -ipset=/.hyperrate.com/gfwlist -server=/.hypeshell.com/127.0.0.1#5353 -ipset=/.hypeshell.com/gfwlist -server=/.i1.hk/127.0.0.1#5353 -ipset=/.i1.hk/gfwlist -server=/.i2p2.de/127.0.0.1#5353 -ipset=/.i2p2.de/gfwlist -server=/.i2runner.com/127.0.0.1#5353 -ipset=/.i2runner.com/gfwlist -server=/.iam.soy/127.0.0.1#5353 -ipset=/.iam.soy/gfwlist -server=/.iask.bz/127.0.0.1#5353 -ipset=/.iask.bz/gfwlist -server=/.iask.ca/127.0.0.1#5353 -ipset=/.iask.ca/gfwlist -server=/.ibiblio.org/127.0.0.1#5353 -ipset=/.ibiblio.org/gfwlist -server=/.iblogserv-f.net/127.0.0.1#5353 -ipset=/.iblogserv-f.net/gfwlist -server=/.ibros.org/127.0.0.1#5353 -ipset=/.ibros.org/gfwlist -server=/.ibvpn.com/127.0.0.1#5353 -ipset=/.ibvpn.com/gfwlist -server=/.i-cable.com/127.0.0.1#5353 -ipset=/.i-cable.com/gfwlist -server=/.icij.org/127.0.0.1#5353 -ipset=/.icij.org/gfwlist -server=/.icl-fi.org/127.0.0.1#5353 -ipset=/.icl-fi.org/gfwlist -server=/.icoco.com/127.0.0.1#5353 -ipset=/.icoco.com/gfwlist -server=/.iconfactory.com/127.0.0.1#5353 -ipset=/.iconfactory.com/gfwlist -server=/.iconpaper.org/127.0.0.1#5353 -ipset=/.iconpaper.org/gfwlist -server=/.icu-project.org/127.0.0.1#5353 -ipset=/.icu-project.org/gfwlist -server=/.id.hao123.com/127.0.0.1#5353 -ipset=/.id.hao123.com/gfwlist -server=/.idemocracy.asia/127.0.0.1#5353 -ipset=/.idemocracy.asia/gfwlist -server=/.identi.ca/127.0.0.1#5353 -ipset=/.identi.ca/gfwlist -server=/.idiomconnection.com/127.0.0.1#5353 -ipset=/.idiomconnection.com/gfwlist -server=/.idouga.com/127.0.0.1#5353 -ipset=/.idouga.com/gfwlist -server=/.idreamx.com/127.0.0.1#5353 -ipset=/.idreamx.com/gfwlist -server=/.ieasynews.net/127.0.0.1#5353 -ipset=/.ieasynews.net/gfwlist -server=/.ied2k.net/127.0.0.1#5353 -ipset=/.ied2k.net/gfwlist -server=/.ienergy1.com/127.0.0.1#5353 -ipset=/.ienergy1.com/gfwlist -server=/.if.ttt/127.0.0.1#5353 -ipset=/.if.ttt/gfwlist -server=/.ifan.cz.cc/127.0.0.1#5353 -ipset=/.ifan.cz.cc/gfwlist -server=/.ifanqiang.com/127.0.0.1#5353 -ipset=/.ifanqiang.com/gfwlist -server=/.ifanr.com/127.0.0.1#5353 -ipset=/.ifanr.com/gfwlist -server=/.ifcss.org/127.0.0.1#5353 -ipset=/.ifcss.org/gfwlist -server=/.ifjc.org/127.0.0.1#5353 -ipset=/.ifjc.org/gfwlist -server=/.ifreewares.com/127.0.0.1#5353 -ipset=/.ifreewares.com/gfwlist -server=/.ift.tt/127.0.0.1#5353 -ipset=/.ift.tt/gfwlist -server=/.igfw.net/127.0.0.1#5353 -ipset=/.igfw.net/gfwlist -server=/.ignitedetroit.net/127.0.0.1#5353 -ipset=/.ignitedetroit.net/gfwlist -server=/.igvita.com/127.0.0.1#5353 -ipset=/.igvita.com/gfwlist -server=/.ihakka.net/127.0.0.1#5353 -ipset=/.ihakka.net/gfwlist -server=/.iicns.com/127.0.0.1#5353 -ipset=/.iicns.com/gfwlist -server=/.illusionfactory.com/127.0.0.1#5353 -ipset=/.illusionfactory.com/gfwlist -server=/.ilove80.be/127.0.0.1#5353 -ipset=/.ilove80.be/gfwlist -server=/.ilovelongtoes.com/127.0.0.1#5353 -ipset=/.ilovelongtoes.com/gfwlist -server=/.im.tv/127.0.0.1#5353 -ipset=/.im.tv/gfwlist -server=/.imgaa.com/127.0.0.1#5353 -ipset=/.imgaa.com/gfwlist -server=/.imagefap.com/127.0.0.1#5353 -ipset=/.imagefap.com/gfwlist -server=/.imageflea.com/127.0.0.1#5353 -ipset=/.imageflea.com/gfwlist -server=/.imageshack.us/127.0.0.1#5353 -ipset=/.imageshack.us/gfwlist -server=/.imageshot.eu/127.0.0.1#5353 -ipset=/.imageshot.eu/gfwlist -server=/.imagevenue.com/127.0.0.1#5353 -ipset=/.imagevenue.com/gfwlist -server=/.imagezilla.net/127.0.0.1#5353 -ipset=/.imagezilla.net/gfwlist -server=/.img.dlsite.jp/127.0.0.1#5353 -ipset=/.img.dlsite.jp/gfwlist -server=/.img.ly/127.0.0.1#5353 -ipset=/.img.ly/gfwlist -server=/.imgmega.com/127.0.0.1#5353 -ipset=/.imgmega.com/gfwlist -server=/.imkev.com/127.0.0.1#5353 -ipset=/.imkev.com/gfwlist -server=/.imlive.com/127.0.0.1#5353 -ipset=/.imlive.com/gfwlist -server=/.impp.mn/127.0.0.1#5353 -ipset=/.impp.mn/gfwlist -server=/.incredibox.fr/127.0.0.1#5353 -ipset=/.incredibox.fr/gfwlist -server=/.indiemerch.com/127.0.0.1#5353 -ipset=/.indiemerch.com/gfwlist -server=/.info-graf.fr/127.0.0.1#5353 -ipset=/.info-graf.fr/gfwlist -server=/.initiativesforchina.org/127.0.0.1#5353 -ipset=/.initiativesforchina.org/gfwlist -server=/.inmediahk.net/127.0.0.1#5353 -ipset=/.inmediahk.net/gfwlist -server=/.innermongolia.org/127.0.0.1#5353 -ipset=/.innermongolia.org/gfwlist -server=/.instagram.com/127.0.0.1#5353 -ipset=/.instagram.com/gfwlist -server=/.interfaceaddiction.com/127.0.0.1#5353 -ipset=/.interfaceaddiction.com/gfwlist -server=/.internationalrivers.org/127.0.0.1#5353 -ipset=/.internationalrivers.org/gfwlist -server=/.internet.org/127.0.0.1#5353 -ipset=/.internet.org/gfwlist -server=/.internetdefenseleague.org/127.0.0.1#5353 -ipset=/.internetdefenseleague.org/gfwlist -server=/.internetfreedom.org/127.0.0.1#5353 -ipset=/.internetfreedom.org/gfwlist -server=/.internetpopculture.com/127.0.0.1#5353 -ipset=/.internetpopculture.com/gfwlist -server=/.inxian.com/127.0.0.1#5353 -ipset=/.inxian.com/gfwlist -server=/.ipalter.com/127.0.0.1#5353 -ipset=/.ipalter.com/gfwlist -server=/.iphone4hongkong.com/127.0.0.1#5353 -ipset=/.iphone4hongkong.com/gfwlist -server=/.iphonehacks.com/127.0.0.1#5353 -ipset=/.iphonehacks.com/gfwlist -server=/.iphonix.fr/127.0.0.1#5353 -ipset=/.iphonix.fr/gfwlist -server=/.ipicture.ru/127.0.0.1#5353 -ipset=/.ipicture.ru/gfwlist -server=/.iportal.me/127.0.0.1#5353 -ipset=/.iportal.me/gfwlist -server=/.ippotv.com/127.0.0.1#5353 -ipset=/.ippotv.com/gfwlist -server=/.ipredator.se/127.0.0.1#5353 -ipset=/.ipredator.se/gfwlist -server=/.iptorrents.com/127.0.0.1#5353 -ipset=/.iptorrents.com/gfwlist -server=/.ipvanish.com/127.0.0.1#5353 -ipset=/.ipvanish.com/gfwlist -server=/.iredmail.org/127.0.0.1#5353 -ipset=/.iredmail.org/gfwlist -server=/.ironbigfools.compython.net/127.0.0.1#5353 -ipset=/.ironbigfools.compython.net/gfwlist -server=/.ironicsoftware.com/127.0.0.1#5353 -ipset=/.ironicsoftware.com/gfwlist -server=/.ironpython.net/127.0.0.1#5353 -ipset=/.ironpython.net/gfwlist -server=/.isaacmao.com/127.0.0.1#5353 -ipset=/.isaacmao.com/gfwlist -server=/.isgreat.org/127.0.0.1#5353 -ipset=/.isgreat.org/gfwlist -server=/.islam.org.hk/127.0.0.1#5353 -ipset=/.islam.org.hk/gfwlist -server=/.islamawareness.net/127.0.0.1#5353 -ipset=/.islamawareness.net/gfwlist -server=/.islamicity.com/127.0.0.1#5353 -ipset=/.islamicity.com/gfwlist -server=/.ismaelan.com/127.0.0.1#5353 -ipset=/.ismaelan.com/gfwlist -server=/.ismalltits.com/127.0.0.1#5353 -ipset=/.ismalltits.com/gfwlist -server=/.ismprofessional.net/127.0.0.1#5353 -ipset=/.ismprofessional.net/gfwlist -server=/.isohunt.com/127.0.0.1#5353 -ipset=/.isohunt.com/gfwlist -server=/.israbox.com/127.0.0.1#5353 -ipset=/.israbox.com/gfwlist -server=/.istockphoto.com/127.0.0.1#5353 -ipset=/.istockphoto.com/gfwlist -server=/.isunaffairs.com/127.0.0.1#5353 -ipset=/.isunaffairs.com/gfwlist -server=/.isuntv.com/127.0.0.1#5353 -ipset=/.isuntv.com/gfwlist -server=/.itaboo.info/127.0.0.1#5353 -ipset=/.itaboo.info/gfwlist -server=/.italiatibet.org/127.0.0.1#5353 -ipset=/.italiatibet.org/gfwlist -server=/.its.caltech.edu/127.0.0.1#5353 -ipset=/.its.caltech.edu/gfwlist -server=/.itshidden.com/127.0.0.1#5353 -ipset=/.itshidden.com/gfwlist -server=/.itsky.it/127.0.0.1#5353 -ipset=/.itsky.it/gfwlist -server=/.itweet.net/127.0.0.1#5353 -ipset=/.itweet.net/gfwlist -server=/.iu45.com/127.0.0.1#5353 -ipset=/.iu45.com/gfwlist -server=/.iuhrdf.org/127.0.0.1#5353 -ipset=/.iuhrdf.org/gfwlist -server=/.iuksky.com/127.0.0.1#5353 -ipset=/.iuksky.com/gfwlist -server=/.ivacy.com/127.0.0.1#5353 -ipset=/.ivacy.com/gfwlist -server=/.iverycd.com/127.0.0.1#5353 -ipset=/.iverycd.com/gfwlist -server=/.ivpn.net/127.0.0.1#5353 -ipset=/.ivpn.net/gfwlist -server=/.ixquick.com/127.0.0.1#5353 -ipset=/.ixquick.com/gfwlist -server=/.iyouport.com/127.0.0.1#5353 -ipset=/.iyouport.com/gfwlist -server=/.izaobao.us/127.0.0.1#5353 -ipset=/.izaobao.us/gfwlist -server=/.izles.net/127.0.0.1#5353 -ipset=/.izles.net/gfwlist -server=/.j.mp/127.0.0.1#5353 -ipset=/.j.mp/gfwlist -server=/.jamyangnorbu.com/127.0.0.1#5353 -ipset=/.jamyangnorbu.com/gfwlist -server=/.japanfirst.asianfreeforum.com/127.0.0.1#5353 -ipset=/.japanfirst.asianfreeforum.com/gfwlist -server=/.japan-whores.com/127.0.0.1#5353 -ipset=/.japan-whores.com/gfwlist -server=/.jav68.tv/127.0.0.1#5353 -ipset=/.jav68.tv/gfwlist -server=/.javakiba.org/127.0.0.1#5353 -ipset=/.javakiba.org/gfwlist -server=/.javbus.com/127.0.0.1#5353 -ipset=/.javbus.com/gfwlist -server=/.javfor.me/127.0.0.1#5353 -ipset=/.javfor.me/gfwlist -server=/.javhip.com/127.0.0.1#5353 -ipset=/.javhip.com/gfwlist -server=/.javhub.net/127.0.0.1#5353 -ipset=/.javhub.net/gfwlist -server=/.javhuge.com/127.0.0.1#5353 -ipset=/.javhuge.com/gfwlist -server=/.javlibrary.com/127.0.0.1#5353 -ipset=/.javlibrary.com/gfwlist -server=/.javmoo.com/127.0.0.1#5353 -ipset=/.javmoo.com/gfwlist -server=/.javseen.com/127.0.0.1#5353 -ipset=/.javseen.com/gfwlist -server=/.jbtalks.cc/127.0.0.1#5353 -ipset=/.jbtalks.cc/gfwlist -server=/.jbtalks.com/127.0.0.1#5353 -ipset=/.jbtalks.com/gfwlist -server=/.jbtalks.my/127.0.0.1#5353 -ipset=/.jbtalks.my/gfwlist -server=/.jdwsy.com/127.0.0.1#5353 -ipset=/.jdwsy.com/gfwlist -server=/.jeanyim.com/127.0.0.1#5353 -ipset=/.jeanyim.com/gfwlist -server=/.jgoodies.com/127.0.0.1#5353 -ipset=/.jgoodies.com/gfwlist -server=/.jiangweiping.com/127.0.0.1#5353 -ipset=/.jiangweiping.com/gfwlist -server=/.jiaoyou8.com/127.0.0.1#5353 -ipset=/.jiaoyou8.com/gfwlist -server=/.jiehua.cz/127.0.0.1#5353 -ipset=/.jiehua.cz/gfwlist -server=/.jieshibaobao.com/127.0.0.1#5353 -ipset=/.jieshibaobao.com/gfwlist -server=/.jigong1024.com/127.0.0.1#5353 -ipset=/.jigong1024.com/gfwlist -server=/.jinbushe.org/127.0.0.1#5353 -ipset=/.jinbushe.org/gfwlist -server=/.jingpin.org/127.0.0.1#5353 -ipset=/.jingpin.org/gfwlist -server=/.jingsim.org/127.0.0.1#5353 -ipset=/.jingsim.org/gfwlist -server=/.jitouch.com/127.0.0.1#5353 -ipset=/.jitouch.com/gfwlist -server=/.jizzthis.com/127.0.0.1#5353 -ipset=/.jizzthis.com/gfwlist -server=/.jjgirls.com/127.0.0.1#5353 -ipset=/.jjgirls.com/gfwlist -server=/.jkforum.net/127.0.0.1#5353 -ipset=/.jkforum.net/gfwlist -server=/.jma.go.jp/127.0.0.1#5353 -ipset=/.jma.go.jp/gfwlist -server=/.joachims.org/127.0.0.1#5353 -ipset=/.joachims.org/gfwlist -server=/.jobso.tv/127.0.0.1#5353 -ipset=/.jobso.tv/gfwlist -server=/.joeedelman.com/127.0.0.1#5353 -ipset=/.joeedelman.com/gfwlist -server=/.journalofdemocracy.org/127.0.0.1#5353 -ipset=/.journalofdemocracy.org/gfwlist -server=/.jp.hao123.com/127.0.0.1#5353 -ipset=/.jp.hao123.com/gfwlist -server=/.jpl.nasa.gov/127.0.0.1#5353 -ipset=/.jpl.nasa.gov/gfwlist -server=/.jpopforum.net/127.0.0.1#5353 -ipset=/.jpopforum.net/gfwlist -server=/.juhuaren.com/127.0.0.1#5353 -ipset=/.juhuaren.com/gfwlist -server=/.juliepost.com/127.0.0.1#5353 -ipset=/.juliepost.com/gfwlist -server=/.juliereyc.com/127.0.0.1#5353 -ipset=/.juliereyc.com/gfwlist -server=/.junauza.com/127.0.0.1#5353 -ipset=/.junauza.com/gfwlist -server=/.june4commemoration.org/127.0.0.1#5353 -ipset=/.june4commemoration.org/gfwlist -server=/.junefourth-20.net/127.0.0.1#5353 -ipset=/.junefourth-20.net/gfwlist -server=/.justfreevpn.com/127.0.0.1#5353 -ipset=/.justfreevpn.com/gfwlist -server=/.justicefortenzin.org/127.0.0.1#5353 -ipset=/.justicefortenzin.org/gfwlist -server=/.justpaste.it/127.0.0.1#5353 -ipset=/.justpaste.it/gfwlist -server=/.justtristan.com/127.0.0.1#5353 -ipset=/.justtristan.com/gfwlist -server=/.juyuange.org/127.0.0.1#5353 -ipset=/.juyuange.org/gfwlist -server=/.juziyue.com/127.0.0.1#5353 -ipset=/.juziyue.com/gfwlist -server=/.jwmusic.org/127.0.0.1#5353 -ipset=/.jwmusic.org/gfwlist -server=/.jyxf.net/127.0.0.1#5353 -ipset=/.jyxf.net/gfwlist -server=/.k2.xrea.com/127.0.0.1#5353 -ipset=/.k2.xrea.com/gfwlist -server=/.kagyuoffice.org/127.0.0.1#5353 -ipset=/.kagyuoffice.org/gfwlist -server=/.kaiyuan.de/127.0.0.1#5353 -ipset=/.kaiyuan.de/gfwlist -server=/.kakao.com/127.0.0.1#5353 -ipset=/.kakao.com/gfwlist -server=/.kanshifang.com/127.0.0.1#5353 -ipset=/.kanshifang.com/gfwlist -server=/.kanzhongguo.com/127.0.0.1#5353 -ipset=/.kanzhongguo.com/gfwlist -server=/.kanzhongguo.eu/127.0.0.1#5353 -ipset=/.kanzhongguo.eu/gfwlist -server=/.karayou.com/127.0.0.1#5353 -ipset=/.karayou.com/gfwlist -server=/.karkhung.com/127.0.0.1#5353 -ipset=/.karkhung.com/gfwlist -server=/.karmapa-teachings.org/127.0.0.1#5353 -ipset=/.karmapa-teachings.org/gfwlist -server=/.ka-wai.com/127.0.0.1#5353 -ipset=/.ka-wai.com/gfwlist -server=/.kawaiikawaii.jp/127.0.0.1#5353 -ipset=/.kawaiikawaii.jp/gfwlist -server=/.kba-tx.org/127.0.0.1#5353 -ipset=/.kba-tx.org/gfwlist -server=/.kcsoftwares.com/127.0.0.1#5353 -ipset=/.kcsoftwares.com/gfwlist -server=/.kebrum.com/127.0.0.1#5353 -ipset=/.kebrum.com/gfwlist -server=/.kechara.com/127.0.0.1#5353 -ipset=/.kechara.com/gfwlist -server=/.keepandshare.com/127.0.0.1#5353 -ipset=/.keepandshare.com/gfwlist -server=/.keepvid.com/127.0.0.1#5353 -ipset=/.keepvid.com/gfwlist -server=/.kendincos.net/127.0.0.1#5353 -ipset=/.kendincos.net/gfwlist -server=/.kenengba.com/127.0.0.1#5353 -ipset=/.kenengba.com/gfwlist -server=/.keontech.net/127.0.0.1#5353 -ipset=/.keontech.net/gfwlist -server=/.kepard.com/127.0.0.1#5353 -ipset=/.kepard.com/gfwlist -server=/.khabdha.org/127.0.0.1#5353 -ipset=/.khabdha.org/gfwlist -server=/.killwall.com/127.0.0.1#5353 -ipset=/.killwall.com/gfwlist -server=/.kindleren.com/127.0.0.1#5353 -ipset=/.kindleren.com/gfwlist -server=/.kineox.free.fr/127.0.0.1#5353 -ipset=/.kineox.free.fr/gfwlist -server=/.kingdomsalvation.org/127.0.0.1#5353 -ipset=/.kingdomsalvation.org/gfwlist -server=/.kinghost.com/127.0.0.1#5353 -ipset=/.kinghost.com/gfwlist -server=/.kir.jp/127.0.0.1#5353 -ipset=/.kir.jp/gfwlist -server=/.kissbbao.cn/127.0.0.1#5353 -ipset=/.kissbbao.cn/gfwlist -server=/.kiwi.kz/127.0.0.1#5353 -ipset=/.kiwi.kz/gfwlist -server=/.knowledgerush.com/127.0.0.1#5353 -ipset=/.knowledgerush.com/gfwlist -server=/.kodingen.com/127.0.0.1#5353 -ipset=/.kodingen.com/gfwlist -server=/.kompozer.net/127.0.0.1#5353 -ipset=/.kompozer.net/gfwlist -server=/.konachan.com/127.0.0.1#5353 -ipset=/.konachan.com/gfwlist -server=/.koolsolutions.com/127.0.0.1#5353 -ipset=/.koolsolutions.com/gfwlist -server=/.koornk.com/127.0.0.1#5353 -ipset=/.koornk.com/gfwlist -server=/.kui.name/127.0.0.1#5353 -ipset=/.kui.name/gfwlist -server=/.kuliwang.com/127.0.0.1#5353 -ipset=/.kuliwang.com/gfwlist -server=/.kun.im/127.0.0.1#5353 -ipset=/.kun.im/gfwlist -server=/.kurashsultan.com/127.0.0.1#5353 -ipset=/.kurashsultan.com/gfwlist -server=/.kurtmunger.com/127.0.0.1#5353 -ipset=/.kurtmunger.com/gfwlist -server=/.kusocity.com/127.0.0.1#5353 -ipset=/.kusocity.com/gfwlist -server=/.kwcg.ca/127.0.0.1#5353 -ipset=/.kwcg.ca/gfwlist -server=/.kwongwah.com.my/127.0.0.1#5353 -ipset=/.kwongwah.com.my/gfwlist -server=/.kyohk.net/127.0.0.1#5353 -ipset=/.kyohk.net/gfwlist -server=/.kzeng.info/127.0.0.1#5353 -ipset=/.kzeng.info/gfwlist -server=/.labiennale.org/127.0.0.1#5353 -ipset=/.labiennale.org/gfwlist -server=/.ladbrokes.com/127.0.0.1#5353 -ipset=/.ladbrokes.com/gfwlist -server=/.la-forum.org/127.0.0.1#5353 -ipset=/.la-forum.org/gfwlist -server=/.lagranepoca.com/127.0.0.1#5353 -ipset=/.lagranepoca.com/gfwlist -server=/.lalulalu.com/127.0.0.1#5353 -ipset=/.lalulalu.com/gfwlist -server=/.lamnia.co.uk/127.0.0.1#5353 -ipset=/.lamnia.co.uk/gfwlist -server=/.lamrim.com/127.0.0.1#5353 -ipset=/.lamrim.com/gfwlist -server=/.lantosfoundation.org/127.0.0.1#5353 -ipset=/.lantosfoundation.org/gfwlist -server=/.laogai.org/127.0.0.1#5353 -ipset=/.laogai.org/gfwlist -server=/.laomiu.com/127.0.0.1#5353 -ipset=/.laomiu.com/gfwlist -server=/.laoyang.info/127.0.0.1#5353 -ipset=/.laoyang.info/gfwlist -server=/.laptoplockdown.com/127.0.0.1#5353 -ipset=/.laptoplockdown.com/gfwlist -server=/.laqingdan.net/127.0.0.1#5353 -ipset=/.laqingdan.net/gfwlist -server=/.larsgeorge.com/127.0.0.1#5353 -ipset=/.larsgeorge.com/gfwlist -server=/.lastfm.es/127.0.0.1#5353 -ipset=/.lastfm.es/gfwlist -server=/.latelinenews.com/127.0.0.1#5353 -ipset=/.latelinenews.com/gfwlist -server=/.latibet.org/127.0.0.1#5353 -ipset=/.latibet.org/gfwlist -server=/.lazarsearlymusic.com/127.0.0.1#5353 -ipset=/.lazarsearlymusic.com/gfwlist -server=/.ld.hao123img.com/127.0.0.1#5353 -ipset=/.ld.hao123img.com/gfwlist -server=/.leecheukyan.org/127.0.0.1#5353 -ipset=/.leecheukyan.org/gfwlist -server=/.lefora.com/127.0.0.1#5353 -ipset=/.lefora.com/gfwlist -server=/.left21.hk/127.0.0.1#5353 -ipset=/.left21.hk/gfwlist -server=/.legaltech.law.com/127.0.0.1#5353 -ipset=/.legaltech.law.com/gfwlist -server=/.leirentv.ca/127.0.0.1#5353 -ipset=/.leirentv.ca/gfwlist -server=/.leisurecafe.ca/127.0.0.1#5353 -ipset=/.leisurecafe.ca/gfwlist -server=/.lematin.ch/127.0.0.1#5353 -ipset=/.lematin.ch/gfwlist -server=/.lemonde.fr/127.0.0.1#5353 -ipset=/.lemonde.fr/gfwlist -server=/.lenwhite.com/127.0.0.1#5353 -ipset=/.lenwhite.com/gfwlist -server=/.lerosua.org/127.0.0.1#5353 -ipset=/.lerosua.org/gfwlist -server=/.lesoir.be/127.0.0.1#5353 -ipset=/.lesoir.be/gfwlist -server=/.lesscss.org/127.0.0.1#5353 -ipset=/.lesscss.org/gfwlist -server=/.letscorp.net/127.0.0.1#5353 -ipset=/.letscorp.net/gfwlist -server=/.le-vpn.com/127.0.0.1#5353 -ipset=/.le-vpn.com/gfwlist -server=/.liangyou.net/127.0.0.1#5353 -ipset=/.liangyou.net/gfwlist -server=/.lianyue.net/127.0.0.1#5353 -ipset=/.lianyue.net/gfwlist -server=/.liaowangxizang.net/127.0.0.1#5353 -ipset=/.liaowangxizang.net/gfwlist -server=/.liberal.org.hk/127.0.0.1#5353 -ipset=/.liberal.org.hk/gfwlist -server=/.library.usc.cuhk.edu.hk/127.0.0.1#5353 -ipset=/.library.usc.cuhk.edu.hk/gfwlist -server=/.lidecheng.com/127.0.0.1#5353 -ipset=/.lidecheng.com/gfwlist -server=/.like.com/127.0.0.1#5353 -ipset=/.like.com/gfwlist -server=/.limiao.net/127.0.0.1#5353 -ipset=/.limiao.net/gfwlist -server=/.line.me/127.0.0.1#5353 -ipset=/.line.me/gfwlist -server=/.linglingfa.com/127.0.0.1#5353 -ipset=/.linglingfa.com/gfwlist -server=/.lingvodics.com/127.0.0.1#5353 -ipset=/.lingvodics.com/gfwlist -server=/.linkideo.com/127.0.0.1#5353 -ipset=/.linkideo.com/gfwlist -server=/.linkuswell.com/127.0.0.1#5353 -ipset=/.linkuswell.com/gfwlist -server=/.linuxconfig.org/127.0.0.1#5353 -ipset=/.linuxconfig.org/gfwlist -server=/.linux-engineer.net/127.0.0.1#5353 -ipset=/.linux-engineer.net/gfwlist -server=/.linuxreviews.org/127.0.0.1#5353 -ipset=/.linuxreviews.org/gfwlist -server=/.linuxtoy.org/127.0.0.1#5353 -ipset=/.linuxtoy.org/gfwlist -server=/.lipuman.com/127.0.0.1#5353 -ipset=/.lipuman.com/gfwlist -server=/.list.ly/127.0.0.1#5353 -ipset=/.list.ly/gfwlist -server=/.listentoyoutube.com/127.0.0.1#5353 -ipset=/.listentoyoutube.com/gfwlist -server=/.listorious.com/127.0.0.1#5353 -ipset=/.listorious.com/gfwlist -server=/.lists.debian.org/127.0.0.1#5353 -ipset=/.lists.debian.org/gfwlist -server=/.lists.w3.org/127.0.0.1#5353 -ipset=/.lists.w3.org/gfwlist -server=/.liu.lu/127.0.0.1#5353 -ipset=/.liu.lu/gfwlist -server=/.liudejun.com/127.0.0.1#5353 -ipset=/.liudejun.com/gfwlist -server=/.liuhanyu.com/127.0.0.1#5353 -ipset=/.liuhanyu.com/gfwlist -server=/.liujianshu.com/127.0.0.1#5353 -ipset=/.liujianshu.com/gfwlist -server=/.liuxiaotong.com/127.0.0.1#5353 -ipset=/.liuxiaotong.com/gfwlist -server=/.liveleak.com/127.0.0.1#5353 -ipset=/.liveleak.com/gfwlist -server=/.livestation.com/127.0.0.1#5353 -ipset=/.livestation.com/gfwlist -server=/.livestream.com/127.0.0.1#5353 -ipset=/.livestream.com/gfwlist -server=/.livevideo.com/127.0.0.1#5353 -ipset=/.livevideo.com/gfwlist -server=/.livingonline.us/127.0.0.1#5353 -ipset=/.livingonline.us/gfwlist -server=/.livingstream.com/127.0.0.1#5353 -ipset=/.livingstream.com/gfwlist -server=/.lizhizhuangbi.com/127.0.0.1#5353 -ipset=/.lizhizhuangbi.com/gfwlist -server=/.lkcn.net/127.0.0.1#5353 -ipset=/.lkcn.net/gfwlist -server=/.localdomain.ws/127.0.0.1#5353 -ipset=/.localdomain.ws/gfwlist -server=/.localpresshk.com/127.0.0.1#5353 -ipset=/.localpresshk.com/gfwlist -server=/.lockdown.com/127.0.0.1#5353 -ipset=/.lockdown.com/gfwlist -server=/.lockestek.com/127.0.0.1#5353 -ipset=/.lockestek.com/gfwlist -server=/.lofi.e-hentai.org/127.0.0.1#5353 -ipset=/.lofi.e-hentai.org/gfwlist -server=/.log.riku.me/127.0.0.1#5353 -ipset=/.log.riku.me/gfwlist -server=/.logbot.net/127.0.0.1#5353 -ipset=/.logbot.net/gfwlist -server=/.logiqx.com/127.0.0.1#5353 -ipset=/.logiqx.com/gfwlist -server=/.logmike.com/127.0.0.1#5353 -ipset=/.logmike.com/gfwlist -server=/.londonchinese.ca/127.0.0.1#5353 -ipset=/.londonchinese.ca/gfwlist -server=/.longhair.hk/127.0.0.1#5353 -ipset=/.longhair.hk/gfwlist -server=/.longtermly.net/127.0.0.1#5353 -ipset=/.longtermly.net/gfwlist -server=/.longtoes.com/127.0.0.1#5353 -ipset=/.longtoes.com/gfwlist -server=/.lookatgame.com/127.0.0.1#5353 -ipset=/.lookatgame.com/gfwlist -server=/.lookingglasstheatre.org/127.0.0.1#5353 -ipset=/.lookingglasstheatre.org/gfwlist -server=/.lookpic.com/127.0.0.1#5353 -ipset=/.lookpic.com/gfwlist -server=/.looktoronto.com/127.0.0.1#5353 -ipset=/.looktoronto.com/gfwlist -server=/.lotsawahouse.org/127.0.0.1#5353 -ipset=/.lotsawahouse.org/gfwlist -server=/.lotuslight.org.hk/127.0.0.1#5353 -ipset=/.lotuslight.org.hk/gfwlist -server=/.lrfz.com/127.0.0.1#5353 -ipset=/.lrfz.com/gfwlist -server=/.lrip.org/127.0.0.1#5353 -ipset=/.lrip.org/gfwlist -server=/.lsd.org.hk/127.0.0.1#5353 -ipset=/.lsd.org.hk/gfwlist -server=/.lsforum.net/127.0.0.1#5353 -ipset=/.lsforum.net/gfwlist -server=/.lsm.org/127.0.0.1#5353 -ipset=/.lsm.org/gfwlist -server=/.lsmchinese.org/127.0.0.1#5353 -ipset=/.lsmchinese.org/gfwlist -server=/.lsmkorean.org/127.0.0.1#5353 -ipset=/.lsmkorean.org/gfwlist -server=/.lsmradio.com/127.0.0.1#5353 -ipset=/.lsmradio.com/gfwlist -server=/.lsmwebcast.com/127.0.0.1#5353 -ipset=/.lsmwebcast.com/gfwlist -server=/.lsxszzg.com/127.0.0.1#5353 -ipset=/.lsxszzg.com/gfwlist -server=/.luke54.com/127.0.0.1#5353 -ipset=/.luke54.com/gfwlist -server=/.luke54.org/127.0.0.1#5353 -ipset=/.luke54.org/gfwlist -server=/.lupm.org/127.0.0.1#5353 -ipset=/.lupm.org/gfwlist -server=/.lushstories.com/127.0.0.1#5353 -ipset=/.lushstories.com/gfwlist -server=/.lvhai.org/127.0.0.1#5353 -ipset=/.lvhai.org/gfwlist -server=/.lvv2.com/127.0.0.1#5353 -ipset=/.lvv2.com/gfwlist -server=/.m.plixi.com/127.0.0.1#5353 -ipset=/.m.plixi.com/gfwlist -server=/.m.slandr.net/127.0.0.1#5353 -ipset=/.m.slandr.net/gfwlist -server=/.ma.hao123.com/127.0.0.1#5353 -ipset=/.ma.hao123.com/gfwlist -server=/.macgamestore.com/127.0.0.1#5353 -ipset=/.macgamestore.com/gfwlist -server=/.mad-ar.ch/127.0.0.1#5353 -ipset=/.mad-ar.ch/gfwlist -server=/.madonna-av.com/127.0.0.1#5353 -ipset=/.madonna-av.com/gfwlist -server=/.magic-net.info/127.0.0.1#5353 -ipset=/.magic-net.info/gfwlist -server=/.mahabodhi.org/127.0.0.1#5353 -ipset=/.mahabodhi.org/gfwlist -server=/.maiio.net/127.0.0.1#5353 -ipset=/.maiio.net/gfwlist -server=/.mail-archive.com/127.0.0.1#5353 -ipset=/.mail-archive.com/gfwlist -server=/.maiplus.com/127.0.0.1#5353 -ipset=/.maiplus.com/gfwlist -server=/.makemymood.com/127.0.0.1#5353 -ipset=/.makemymood.com/gfwlist -server=/.makzhou.warehouse333.com/127.0.0.1#5353 -ipset=/.makzhou.warehouse333.com/gfwlist -server=/.malaysiakini.com/127.0.0.1#5353 -ipset=/.malaysiakini.com/gfwlist -server=/.manicur4ik.ru/127.0.0.1#5353 -ipset=/.manicur4ik.ru/gfwlist -server=/.marc.info/127.0.0.1#5353 -ipset=/.marc.info/gfwlist -server=/.marguerite.su/127.0.0.1#5353 -ipset=/.marguerite.su/gfwlist -server=/.marines.mil/127.0.0.1#5353 -ipset=/.marines.mil/gfwlist -server=/.markmail.org/127.0.0.1#5353 -ipset=/.markmail.org/gfwlist -server=/.markmilian.com/127.0.0.1#5353 -ipset=/.markmilian.com/gfwlist -server=/.martau.com/127.0.0.1#5353 -ipset=/.martau.com/gfwlist -server=/.martincartoons.com/127.0.0.1#5353 -ipset=/.martincartoons.com/gfwlist -server=/.martsangkagyuofficial.org/127.0.0.1#5353 -ipset=/.martsangkagyuofficial.org/gfwlist -server=/.maruta.be/127.0.0.1#5353 -ipset=/.maruta.be/gfwlist -server=/.marxist.com/127.0.0.1#5353 -ipset=/.marxist.com/gfwlist -server=/.marxist.net/127.0.0.1#5353 -ipset=/.marxist.net/gfwlist -server=/.marxists.org/127.0.0.1#5353 -ipset=/.marxists.org/gfwlist -server=/.mash.to/127.0.0.1#5353 -ipset=/.mash.to/gfwlist -server=/.maskedip.com/127.0.0.1#5353 -ipset=/.maskedip.com/gfwlist -server=/.matainja.com/127.0.0.1#5353 -ipset=/.matainja.com/gfwlist -server=/.mathable.io/127.0.0.1#5353 -ipset=/.mathable.io/gfwlist -server=/.mathiew-badimon.com/127.0.0.1#5353 -ipset=/.mathiew-badimon.com/gfwlist -server=/.matsushimakaede.com/127.0.0.1#5353 -ipset=/.matsushimakaede.com/gfwlist -server=/.maturejp.com/127.0.0.1#5353 -ipset=/.maturejp.com/gfwlist -server=/.maxgif.com/127.0.0.1#5353 -ipset=/.maxgif.com/gfwlist -server=/.maxing.jp/127.0.0.1#5353 -ipset=/.maxing.jp/gfwlist -server=/.mayimayi.com/127.0.0.1#5353 -ipset=/.mayimayi.com/gfwlist -server=/.mcadforums.com/127.0.0.1#5353 -ipset=/.mcadforums.com/gfwlist -server=/.mcfog.com/127.0.0.1#5353 -ipset=/.mcfog.com/gfwlist -server=/.mcreasite.com/127.0.0.1#5353 -ipset=/.mcreasite.com/gfwlist -server=/.md-t.org/127.0.0.1#5353 -ipset=/.md-t.org/gfwlist -server=/.mediafire.com/127.0.0.1#5353 -ipset=/.mediafire.com/gfwlist -server=/.mediafreakcity.com/127.0.0.1#5353 -ipset=/.mediafreakcity.com/gfwlist -server=/.meetup.com/127.0.0.1#5353 -ipset=/.meetup.com/gfwlist -server=/.mefeedia.com/127.0.0.1#5353 -ipset=/.mefeedia.com/gfwlist -server=/.megaporn.com/127.0.0.1#5353 -ipset=/.megaporn.com/gfwlist -server=/.megaproxy.com/127.0.0.1#5353 -ipset=/.megaproxy.com/gfwlist -server=/.megarotic.com/127.0.0.1#5353 -ipset=/.megarotic.com/gfwlist -server=/.megavideo.com/127.0.0.1#5353 -ipset=/.megavideo.com/gfwlist -server=/.megurineluka.com/127.0.0.1#5353 -ipset=/.megurineluka.com/gfwlist -server=/.meirixiaochao.com/127.0.0.1#5353 -ipset=/.meirixiaochao.com/gfwlist -server=/.melon-peach.com/127.0.0.1#5353 -ipset=/.melon-peach.com/gfwlist -server=/.meme.yahoo.com/127.0.0.1#5353 -ipset=/.meme.yahoo.com/gfwlist -server=/.memedia.cn/127.0.0.1#5353 -ipset=/.memedia.cn/gfwlist -server=/.memehk.com/127.0.0.1#5353 -ipset=/.memehk.com/gfwlist -server=/.memorybbs.com/127.0.0.1#5353 -ipset=/.memorybbs.com/gfwlist -server=/.memrijttm.org/127.0.0.1#5353 -ipset=/.memrijttm.org/gfwlist -server=/.mercyprophet.org/127.0.0.1#5353 -ipset=/.mercyprophet.org/gfwlist -server=/.meshrep.com/127.0.0.1#5353 -ipset=/.meshrep.com/gfwlist -server=/.mesotw.com/127.0.0.1#5353 -ipset=/.mesotw.com/gfwlist -server=/.metacafe.com/127.0.0.1#5353 -ipset=/.metacafe.com/gfwlist -server=/.metarthunter.com/127.0.0.1#5353 -ipset=/.metarthunter.com/gfwlist -server=/.meteorshowersonline.com/127.0.0.1#5353 -ipset=/.meteorshowersonline.com/gfwlist -server=/.metrolife.ca/127.0.0.1#5353 -ipset=/.metrolife.ca/gfwlist -server=/.metroradio.com.hk/127.0.0.1#5353 -ipset=/.metroradio.com.hk/gfwlist -server=/.meyou.jp/127.0.0.1#5353 -ipset=/.meyou.jp/gfwlist -server=/.mfxmedia.com/127.0.0.1#5353 -ipset=/.mfxmedia.com/gfwlist -server=/.mgoon.com/127.0.0.1#5353 -ipset=/.mgoon.com/gfwlist -server=/.mgstage.com/127.0.0.1#5353 -ipset=/.mgstage.com/gfwlist -server=/.mh4u.org/127.0.0.1#5353 -ipset=/.mh4u.org/gfwlist -server=/.mhradio.org/127.0.0.1#5353 -ipset=/.mhradio.org/gfwlist -server=/.michaelanti.com/127.0.0.1#5353 -ipset=/.michaelanti.com/gfwlist -server=/.michaelmarketl.com/127.0.0.1#5353 -ipset=/.michaelmarketl.com/gfwlist -server=/.middle-way.net/127.0.0.1#5353 -ipset=/.middle-way.net/gfwlist -server=/.mihk.hk/127.0.0.1#5353 -ipset=/.mihk.hk/gfwlist -server=/.mihua.org/127.0.0.1#5353 -ipset=/.mihua.org/gfwlist -server=/.mike.cz.cc/127.0.0.1#5353 -ipset=/.mike.cz.cc/gfwlist -server=/.mimivip.com/127.0.0.1#5353 -ipset=/.mimivip.com/gfwlist -server=/.mimivv.com/127.0.0.1#5353 -ipset=/.mimivv.com/gfwlist -server=/.mindrolling.org/127.0.0.1#5353 -ipset=/.mindrolling.org/gfwlist -server=/.minghui.or.kr/127.0.0.1#5353 -ipset=/.minghui.or.kr/gfwlist -server=/.minghui.org/127.0.0.1#5353 -ipset=/.minghui.org/gfwlist -server=/.minghui-a.org/127.0.0.1#5353 -ipset=/.minghui-a.org/gfwlist -server=/.minghui-b.org/127.0.0.1#5353 -ipset=/.minghui-b.org/gfwlist -server=/.minghui-school.org/127.0.0.1#5353 -ipset=/.minghui-school.org/gfwlist -server=/.mingjinglishi.com/127.0.0.1#5353 -ipset=/.mingjinglishi.com/gfwlist -server=/.mingjingnews.com/127.0.0.1#5353 -ipset=/.mingjingnews.com/gfwlist -server=/.mingjingtimes.com/127.0.0.1#5353 -ipset=/.mingjingtimes.com/gfwlist -server=/.mingpao.com/127.0.0.1#5353 -ipset=/.mingpao.com/gfwlist -server=/.mingpaocanada.com/127.0.0.1#5353 -ipset=/.mingpaocanada.com/gfwlist -server=/.mingpaomonthly.com/127.0.0.1#5353 -ipset=/.mingpaomonthly.com/gfwlist -server=/.mingpaonews.com/127.0.0.1#5353 -ipset=/.mingpaonews.com/gfwlist -server=/.mingpaony.com/127.0.0.1#5353 -ipset=/.mingpaony.com/gfwlist -server=/.mingpaosf.com/127.0.0.1#5353 -ipset=/.mingpaosf.com/gfwlist -server=/.mingpaotor.com/127.0.0.1#5353 -ipset=/.mingpaotor.com/gfwlist -server=/.mingpaovan.com/127.0.0.1#5353 -ipset=/.mingpaovan.com/gfwlist -server=/.mingshengbao.com/127.0.0.1#5353 -ipset=/.mingshengbao.com/gfwlist -server=/.ministrybooks.org/127.0.0.1#5353 -ipset=/.ministrybooks.org/gfwlist -server=/.minzhuhua.net/127.0.0.1#5353 -ipset=/.minzhuhua.net/gfwlist -server=/.minzhuzhanxian.com/127.0.0.1#5353 -ipset=/.minzhuzhanxian.com/gfwlist -server=/.minzhuzhongguo.org/127.0.0.1#5353 -ipset=/.minzhuzhongguo.org/gfwlist -server=/.miroguide.com/127.0.0.1#5353 -ipset=/.miroguide.com/gfwlist -server=/.mirrorbooks.com/127.0.0.1#5353 -ipset=/.mirrorbooks.com/gfwlist -server=/.mitbbs.com/127.0.0.1#5353 -ipset=/.mitbbs.com/gfwlist -server=/.mixero.com/127.0.0.1#5353 -ipset=/.mixero.com/gfwlist -server=/.mixpod.com/127.0.0.1#5353 -ipset=/.mixpod.com/gfwlist -server=/.mixx.com/127.0.0.1#5353 -ipset=/.mixx.com/gfwlist -server=/.mizzmona.com/127.0.0.1#5353 -ipset=/.mizzmona.com/gfwlist -server=/.mjlsh.usc.cuhk.edu.hk/127.0.0.1#5353 -ipset=/.mjlsh.usc.cuhk.edu.hk/gfwlist -server=/.mk5000.com/127.0.0.1#5353 -ipset=/.mk5000.com/gfwlist -server=/.mlcool.com/127.0.0.1#5353 -ipset=/.mlcool.com/gfwlist -server=/.mmaaxx.com/127.0.0.1#5353 -ipset=/.mmaaxx.com/gfwlist -server=/.mmmca.com/127.0.0.1#5353 -ipset=/.mmmca.com/gfwlist -server=/.mobatek.net/127.0.0.1#5353 -ipset=/.mobatek.net/gfwlist -server=/.mobile01.com/127.0.0.1#5353 -ipset=/.mobile01.com/gfwlist -server=/.mobileways.de/127.0.0.1#5353 -ipset=/.mobileways.de/gfwlist -server=/.moby.to/127.0.0.1#5353 -ipset=/.moby.to/gfwlist -server=/.mobypicture.com/127.0.0.1#5353 -ipset=/.mobypicture.com/gfwlist -server=/.mog.com/127.0.0.1#5353 -ipset=/.mog.com/gfwlist -server=/.molihua.org/127.0.0.1#5353 -ipset=/.molihua.org/gfwlist -server=/.mondex.org/127.0.0.1#5353 -ipset=/.mondex.org/gfwlist -server=/.monitorchina.org/127.0.0.1#5353 -ipset=/.monitorchina.org/gfwlist -server=/.monster.com/127.0.0.1#5353 -ipset=/.monster.com/gfwlist -server=/.moodyz.com/127.0.0.1#5353 -ipset=/.moodyz.com/gfwlist -server=/.moonbbs.com/127.0.0.1#5353 -ipset=/.moonbbs.com/gfwlist -server=/.morningsun.org/127.0.0.1#5353 -ipset=/.morningsun.org/gfwlist -server=/.moroneta.com/127.0.0.1#5353 -ipset=/.moroneta.com/gfwlist -server=/.moviefap.com/127.0.0.1#5353 -ipset=/.moviefap.com/gfwlist -server=/.mp3ye.eu/127.0.0.1#5353 -ipset=/.mp3ye.eu/gfwlist -server=/.mpettis.com/127.0.0.1#5353 -ipset=/.mpettis.com/gfwlist -server=/.mpfinance.com/127.0.0.1#5353 -ipset=/.mpfinance.com/gfwlist -server=/.mpinews.com/127.0.0.1#5353 -ipset=/.mpinews.com/gfwlist -server=/.mrdoob.com/127.0.0.1#5353 -ipset=/.mrdoob.com/gfwlist -server=/.mrtweet.com/127.0.0.1#5353 -ipset=/.mrtweet.com/gfwlist -server=/.msguancha.com/127.0.0.1#5353 -ipset=/.msguancha.com/gfwlist -server=/.mswe1.org/127.0.0.1#5353 -ipset=/.mswe1.org/gfwlist -server=/.m-team.cc/127.0.0.1#5353 -ipset=/.m-team.cc/gfwlist -server=/.mthruf.com/127.0.0.1#5353 -ipset=/.mthruf.com/gfwlist -server=/.mtw.tl/127.0.0.1#5353 -ipset=/.mtw.tl/gfwlist -server=/.mullvad.net/127.0.0.1#5353 -ipset=/.mullvad.net/gfwlist -server=/.multiply.com/127.0.0.1#5353 -ipset=/.multiply.com/gfwlist -server=/.multiproxy.org/127.0.0.1#5353 -ipset=/.multiproxy.org/gfwlist -server=/.multiupload.com/127.0.0.1#5353 -ipset=/.multiupload.com/gfwlist -server=/.muouju.com/127.0.0.1#5353 -ipset=/.muouju.com/gfwlist -server=/.muselinks.co.jp/127.0.0.1#5353 -ipset=/.muselinks.co.jp/gfwlist -server=/.muzi.com/127.0.0.1#5353 -ipset=/.muzi.com/gfwlist -server=/.muzi.net/127.0.0.1#5353 -ipset=/.muzi.net/gfwlist -server=/.muzu.tv/127.0.0.1#5353 -ipset=/.muzu.tv/gfwlist -server=/.mvg.jp/127.0.0.1#5353 -ipset=/.mvg.jp/gfwlist -server=/.mx.hao123.com/127.0.0.1#5353 -ipset=/.mx.hao123.com/gfwlist -server=/.mx981.com/127.0.0.1#5353 -ipset=/.mx981.com/gfwlist -server=/.my.mail.ru/127.0.0.1#5353 -ipset=/.my.mail.ru/gfwlist -server=/.my.opera.com/127.0.0.1#5353 -ipset=/.my.opera.com/gfwlist -server=/.myactimes.com/127.0.0.1#5353 -ipset=/.myactimes.com/gfwlist -server=/.my-addr.com/127.0.0.1#5353 -ipset=/.my-addr.com/gfwlist -server=/.myaudiocast.com/127.0.0.1#5353 -ipset=/.myaudiocast.com/gfwlist -server=/.mychinamyhome.com/127.0.0.1#5353 -ipset=/.mychinamyhome.com/gfwlist -server=/.mychinanews.com/127.0.0.1#5353 -ipset=/.mychinanews.com/gfwlist -server=/.myeclipseide.com/127.0.0.1#5353 -ipset=/.myeclipseide.com/gfwlist -server=/.myforum.com.hk/127.0.0.1#5353 -ipset=/.myforum.com.hk/gfwlist -server=/.myforum.com.uk/127.0.0.1#5353 -ipset=/.myforum.com.uk/gfwlist -server=/.myfreshnet.com/127.0.0.1#5353 -ipset=/.myfreshnet.com/gfwlist -server=/.mymediarom.com/127.0.0.1#5353 -ipset=/.mymediarom.com/gfwlist -server=/.myopenid.com/127.0.0.1#5353 -ipset=/.myopenid.com/gfwlist -server=/.myparagliding.com/127.0.0.1#5353 -ipset=/.myparagliding.com/gfwlist -server=/.mypopescu.com/127.0.0.1#5353 -ipset=/.mypopescu.com/gfwlist -server=/.my-private-network.co.uk/127.0.0.1#5353 -ipset=/.my-private-network.co.uk/gfwlist -server=/.my-proxy.com/127.0.0.1#5353 -ipset=/.my-proxy.com/gfwlist -server=/.mysinablog.com/127.0.0.1#5353 -ipset=/.mysinablog.com/gfwlist -server=/.mysite.verizon.net/127.0.0.1#5353 -ipset=/.mysite.verizon.net/gfwlist -server=/.myspace.com/127.0.0.1#5353 -ipset=/.myspace.com/gfwlist -server=/.naacoalition.org/127.0.0.1#5353 -ipset=/.naacoalition.org/gfwlist -server=/.naitik.net/127.0.0.1#5353 -ipset=/.naitik.net/gfwlist -server=/.nakido.com/127.0.0.1#5353 -ipset=/.nakido.com/gfwlist -server=/.namsisi.com/127.0.0.1#5353 -ipset=/.namsisi.com/gfwlist -server=/.nanyang.com/127.0.0.1#5353 -ipset=/.nanyang.com/gfwlist -server=/.nanyangpost.com/127.0.0.1#5353 -ipset=/.nanyangpost.com/gfwlist -server=/.nanzao.com/127.0.0.1#5353 -ipset=/.nanzao.com/gfwlist -server=/.naol.ca/127.0.0.1#5353 -ipset=/.naol.ca/gfwlist -server=/.national-lottery.co.uk/127.0.0.1#5353 -ipset=/.national-lottery.co.uk/gfwlist -server=/.nationsonline.org/127.0.0.1#5353 -ipset=/.nationsonline.org/gfwlist -server=/.naughtyamerica.com/127.0.0.1#5353 -ipset=/.naughtyamerica.com/gfwlist -server=/.navicat.com/127.0.0.1#5353 -ipset=/.navicat.com/gfwlist -server=/.ncn.org/127.0.0.1#5353 -ipset=/.ncn.org/gfwlist -server=/.nde.de/127.0.0.1#5353 -ipset=/.nde.de/gfwlist -server=/.ndr.de/127.0.0.1#5353 -ipset=/.ndr.de/gfwlist -server=/.ned.org/127.0.0.1#5353 -ipset=/.ned.org/gfwlist -server=/.nekoslovakia.net/127.0.0.1#5353 -ipset=/.nekoslovakia.net/gfwlist -server=/.nemesis2.qx.net/127.0.0.1#5353 -ipset=/.nemesis2.qx.net/gfwlist -server=/.netbirds.com/127.0.0.1#5353 -ipset=/.netbirds.com/gfwlist -server=/.netcolony.com/127.0.0.1#5353 -ipset=/.netcolony.com/gfwlist -server=/.netflix.com/127.0.0.1#5353 -ipset=/.netflix.com/gfwlist -server=/.netme.cc/127.0.0.1#5353 -ipset=/.netme.cc/gfwlist -server=/.netsneak.com/127.0.0.1#5353 -ipset=/.netsneak.com/gfwlist -server=/.network54.com/127.0.0.1#5353 -ipset=/.network54.com/gfwlist -server=/.networkedblogs.com/127.0.0.1#5353 -ipset=/.networkedblogs.com/gfwlist -server=/.neverforget8964.org/127.0.0.1#5353 -ipset=/.neverforget8964.org/gfwlist -server=/.new-3lunch.net/127.0.0.1#5353 -ipset=/.new-3lunch.net/gfwlist -server=/.new96.ca/127.0.0.1#5353 -ipset=/.new96.ca/gfwlist -server=/.new-akiba.com/127.0.0.1#5353 -ipset=/.new-akiba.com/gfwlist -server=/.newcenturymc.com/127.0.0.1#5353 -ipset=/.newcenturymc.com/gfwlist -server=/.newcenturynews.com/127.0.0.1#5353 -ipset=/.newcenturynews.com/gfwlist -server=/.newchen.com/127.0.0.1#5353 -ipset=/.newchen.com/gfwlist -server=/.newgrounds.com/127.0.0.1#5353 -ipset=/.newgrounds.com/gfwlist -server=/.newlandmagazine.com.au/127.0.0.1#5353 -ipset=/.newlandmagazine.com.au/gfwlist -server=/.news.bbc.co.uk/127.0.0.1#5353 -ipset=/.news.bbc.co.uk/gfwlist -server=/.news.cnyes.com/127.0.0.1#5353 -ipset=/.news.cnyes.com/gfwlist -server=/.news.hkpeanut.com/127.0.0.1#5353 -ipset=/.news.hkpeanut.com/gfwlist -server=/.news.now.com/127.0.0.1#5353 -ipset=/.news.now.com/gfwlist -server=/.news.omy.sg/127.0.0.1#5353 -ipset=/.news.omy.sg/gfwlist -server=/.news.sina.com.hk/127.0.0.1#5353 -ipset=/.news.sina.com.hk/gfwlist -server=/.news.sinchew.com.my/127.0.0.1#5353 -ipset=/.news.sinchew.com.my/gfwlist -server=/.news.singtao.ca/127.0.0.1#5353 -ipset=/.news.singtao.ca/gfwlist -server=/.news.tvb.com/127.0.0.1#5353 -ipset=/.news.tvb.com/gfwlist -server=/.newsancai.com/127.0.0.1#5353 -ipset=/.newsancai.com/gfwlist -server=/.newscn.org/127.0.0.1#5353 -ipset=/.newscn.org/gfwlist -server=/.newsdh.com/127.0.0.1#5353 -ipset=/.newsdh.com/gfwlist -server=/.newsforums.bbc.co.uk/127.0.0.1#5353 -ipset=/.newsforums.bbc.co.uk/gfwlist -server=/.newsminer.com/127.0.0.1#5353 -ipset=/.newsminer.com/gfwlist -server=/.newspeak.cc/127.0.0.1#5353 -ipset=/.newspeak.cc/gfwlist -server=/.newstapa.org/127.0.0.1#5353 -ipset=/.newstapa.org/gfwlist -server=/.newstarnet.com/127.0.0.1#5353 -ipset=/.newstarnet.com/gfwlist -server=/.newyorktimes.com/127.0.0.1#5353 -ipset=/.newyorktimes.com/gfwlist -server=/.nexon.com/127.0.0.1#5353 -ipset=/.nexon.com/gfwlist -server=/.nextmedia.com/127.0.0.1#5353 -ipset=/.nextmedia.com/gfwlist -server=/.nexton-net.jp/127.0.0.1#5353 -ipset=/.nexton-net.jp/gfwlist -server=/.nf.id.au/127.0.0.1#5353 -ipset=/.nf.id.au/gfwlist -server=/.nga.mil/127.0.0.1#5353 -ipset=/.nga.mil/gfwlist -server=/.ngensis.com/127.0.0.1#5353 -ipset=/.ngensis.com/gfwlist -server=/.nhentai.net/127.0.0.1#5353 -ipset=/.nhentai.net/gfwlist -server=/.nic.cz.cc/127.0.0.1#5353 -ipset=/.nic.cz.cc/gfwlist -#server=/.nic.google/127.0.0.1#5353 -#ipset=/.nic.google/gfwlist -server=/.nicovideo.jp/127.0.0.1#5353 -ipset=/.nicovideo.jp/gfwlist -server=/.nighost.org/127.0.0.1#5353 -ipset=/.nighost.org/gfwlist -server=/.ninecommentaries.com/127.0.0.1#5353 -ipset=/.ninecommentaries.com/gfwlist -server=/.nintendium.com/127.0.0.1#5353 -ipset=/.nintendium.com/gfwlist -server=/.niusnews.com/127.0.0.1#5353 -ipset=/.niusnews.com/gfwlist -server=/.njactb.org/127.0.0.1#5353 -ipset=/.njactb.org/gfwlist -server=/.njuice.com/127.0.0.1#5353 -ipset=/.njuice.com/gfwlist -server=/.nlfreevpn.com/127.0.0.1#5353 -ipset=/.nlfreevpn.com/gfwlist -server=/.nobel.se/127.0.0.1#5353 -ipset=/.nobel.se/gfwlist -server=/.nobelprize.org/127.0.0.1#5353 -ipset=/.nobelprize.org/gfwlist -server=/.nobodycanstop.us/127.0.0.1#5353 -ipset=/.nobodycanstop.us/gfwlist -server=/.nokogiri.org/127.0.0.1#5353 -ipset=/.nokogiri.org/gfwlist -server=/.nokola.com/127.0.0.1#5353 -ipset=/.nokola.com/gfwlist -server=/.noodlevpn.com/127.0.0.1#5353 -ipset=/.noodlevpn.com/gfwlist -server=/.norbulingka.org/127.0.0.1#5353 -ipset=/.norbulingka.org/gfwlist -server=/.nordstrom.com/127.0.0.1#5353 -ipset=/.nordstrom.com/gfwlist -server=/.nordstromimage.com/127.0.0.1#5353 -ipset=/.nordstromimage.com/gfwlist -server=/.nordvpn.com/127.0.0.1#5353 -ipset=/.nordvpn.com/gfwlist -server=/.novelasia.com/127.0.0.1#5353 -ipset=/.novelasia.com/gfwlist -server=/.nownews.com/127.0.0.1#5353 -ipset=/.nownews.com/gfwlist -server=/.nowtorrents.com/127.0.0.1#5353 -ipset=/.nowtorrents.com/gfwlist -server=/.noypf.com/127.0.0.1#5353 -ipset=/.noypf.com/gfwlist -server=/.npa.go.jp/127.0.0.1#5353 -ipset=/.npa.go.jp/gfwlist -server=/.nps.gov/127.0.0.1#5353 -ipset=/.nps.gov/gfwlist -server=/.nrk.no/127.0.0.1#5353 -ipset=/.nrk.no/gfwlist -server=/.ntd.tv/127.0.0.1#5353 -ipset=/.ntd.tv/gfwlist -server=/.ntdtv.ca/127.0.0.1#5353 -ipset=/.ntdtv.ca/gfwlist -server=/.ntdtv.co.kr/127.0.0.1#5353 -ipset=/.ntdtv.co.kr/gfwlist -server=/.ntdtv.com/127.0.0.1#5353 -ipset=/.ntdtv.com/gfwlist -server=/.ntdtv.cz/127.0.0.1#5353 -ipset=/.ntdtv.cz/gfwlist -server=/.ntdtv.org/127.0.0.1#5353 -ipset=/.ntdtv.org/gfwlist -server=/.ntdtv.ru/127.0.0.1#5353 -ipset=/.ntdtv.ru/gfwlist -server=/.nubiles.net/127.0.0.1#5353 -ipset=/.nubiles.net/gfwlist -server=/.nuexpo.com/127.0.0.1#5353 -ipset=/.nuexpo.com/gfwlist -server=/.nurgo-software.com/127.0.0.1#5353 -ipset=/.nurgo-software.com/gfwlist -server=/.nuuvem.com/127.0.0.1#5353 -ipset=/.nuuvem.com/gfwlist -server=/.nuvid.com/127.0.0.1#5353 -ipset=/.nuvid.com/gfwlist -server=/.nuzcom.com/127.0.0.1#5353 -ipset=/.nuzcom.com/gfwlist -server=/.nvquan.org/127.0.0.1#5353 -ipset=/.nvquan.org/gfwlist -server=/.nwtca.org/127.0.0.1#5353 -ipset=/.nwtca.org/gfwlist -server=/.ny.visiontimes.com/127.0.0.1#5353 -ipset=/.ny.visiontimes.com/gfwlist -server=/.nyaa.se/127.0.0.1#5353 -ipset=/.nyaa.se/gfwlist -server=/.nydus.ca/127.0.0.1#5353 -ipset=/.nydus.ca/gfwlist -server=/.nysingtao.com/127.0.0.1#5353 -ipset=/.nysingtao.com/gfwlist -server=/.nyt.com/127.0.0.1#5353 -ipset=/.nyt.com/gfwlist -server=/.nytco.com/127.0.0.1#5353 -ipset=/.nytco.com/gfwlist -server=/.nyti.ms/127.0.0.1#5353 -ipset=/.nyti.ms/gfwlist -server=/.nytimes.com/127.0.0.1#5353 -ipset=/.nytimes.com/gfwlist -server=/.nytimg.com/127.0.0.1#5353 -ipset=/.nytimg.com/gfwlist -server=/.nzchinese.net.nz/127.0.0.1#5353 -ipset=/.nzchinese.net.nz/gfwlist -server=/.observechina.net/127.0.0.1#5353 -ipset=/.observechina.net/gfwlist -server=/.ocaspro.com/127.0.0.1#5353 -ipset=/.ocaspro.com/gfwlist -server=/.oclp.hk/127.0.0.1#5353 -ipset=/.oclp.hk/gfwlist -server=/.october-review.org/127.0.0.1#5353 -ipset=/.october-review.org/gfwlist -server=/.offbeatchina.com/127.0.0.1#5353 -ipset=/.offbeatchina.com/gfwlist -server=/.officeoftibet.com/127.0.0.1#5353 -ipset=/.officeoftibet.com/gfwlist -server=/.ogaoga.org/127.0.0.1#5353 -ipset=/.ogaoga.org/gfwlist -server=/.oiktv.com/127.0.0.1#5353 -ipset=/.oiktv.com/gfwlist -server=/.oizoblog.com/127.0.0.1#5353 -ipset=/.oizoblog.com/gfwlist -server=/.okayfreedom.com/127.0.0.1#5353 -ipset=/.okayfreedom.com/gfwlist -server=/.old.honeynet.org/127.0.0.1#5353 -ipset=/.old.honeynet.org/gfwlist -server=/.old.nabble.com/127.0.0.1#5353 -ipset=/.old.nabble.com/gfwlist -server=/.old-cat.net/127.0.0.1#5353 -ipset=/.old-cat.net/gfwlist -server=/.olumpo.com/127.0.0.1#5353 -ipset=/.olumpo.com/gfwlist -server=/.olympicwatch.org/127.0.0.1#5353 -ipset=/.olympicwatch.org/gfwlist -server=/.omgili.com/127.0.0.1#5353 -ipset=/.omgili.com/gfwlist -server=/.omnitalk.com/127.0.0.1#5353 -ipset=/.omnitalk.com/gfwlist -server=/.omnitalk.org/127.0.0.1#5353 -ipset=/.omnitalk.org/gfwlist -server=/.on.cc/127.0.0.1#5353 -ipset=/.on.cc/gfwlist -server=/.one.xthost.info/127.0.0.1#5353 -ipset=/.one.xthost.info/gfwlist -server=/.onedrive.live.com/127.0.0.1#5353 -ipset=/.onedrive.live.com/gfwlist -server=/.online.recoveryversion.org/127.0.0.1#5353 -ipset=/.online.recoveryversion.org/gfwlist -server=/.onlineyoutube.com/127.0.0.1#5353 -ipset=/.onlineyoutube.com/gfwlist -server=/.onlylady.cn/127.0.0.1#5353 -ipset=/.onlylady.cn/gfwlist -server=/.onmoon.com/127.0.0.1#5353 -ipset=/.onmoon.com/gfwlist -server=/.onmoon.net/127.0.0.1#5353 -ipset=/.onmoon.net/gfwlist -server=/.ontrac.com/127.0.0.1#5353 -ipset=/.ontrac.com/gfwlist -server=/.oopsforum.com/127.0.0.1#5353 -ipset=/.oopsforum.com/gfwlist -server=/.open.com.hk/127.0.0.1#5353 -ipset=/.open.com.hk/gfwlist -server=/.openallweb.com/127.0.0.1#5353 -ipset=/.openallweb.com/gfwlist -server=/.opendemocracy.net/127.0.0.1#5353 -ipset=/.opendemocracy.net/gfwlist -server=/.openid.net/127.0.0.1#5353 -ipset=/.openid.net/gfwlist -server=/.openleaks.org/127.0.0.1#5353 -ipset=/.openleaks.org/gfwlist -server=/.openvpn.net/127.0.0.1#5353 -ipset=/.openvpn.net/gfwlist -server=/.openwebster.com/127.0.0.1#5353 -ipset=/.openwebster.com/gfwlist -server=/.opml.radiotime.com/127.0.0.1#5353 -ipset=/.opml.radiotime.com/gfwlist -server=/.organharvestinvestigation.net/127.0.0.1#5353 -ipset=/.organharvestinvestigation.net/gfwlist -server=/.orientaldaily.com.my/127.0.0.1#5353 -ipset=/.orientaldaily.com.my/gfwlist -server=/.orient-doll.com/127.0.0.1#5353 -ipset=/.orient-doll.com/gfwlist -server=/.orn.jp/127.0.0.1#5353 -ipset=/.orn.jp/gfwlist -server=/.orzistic.org/127.0.0.1#5353 -ipset=/.orzistic.org/gfwlist -server=/.osaka69.com/127.0.0.1#5353 -ipset=/.osaka69.com/gfwlist -server=/.osfoora.com/127.0.0.1#5353 -ipset=/.osfoora.com/gfwlist -server=/.otnd.org/127.0.0.1#5353 -ipset=/.otnd.org/gfwlist -server=/.otto.de/127.0.0.1#5353 -ipset=/.otto.de/gfwlist -server=/.ourdearamy.com/127.0.0.1#5353 -ipset=/.ourdearamy.com/gfwlist -server=/.oursogo.com/127.0.0.1#5353 -ipset=/.oursogo.com/gfwlist -server=/.oursteps.com.au/127.0.0.1#5353 -ipset=/.oursteps.com.au/gfwlist -server=/.ourtv.hk/127.0.0.1#5353 -ipset=/.ourtv.hk/gfwlist -server=/.overlapr.com/127.0.0.1#5353 -ipset=/.overlapr.com/gfwlist -server=/.overplay.net/127.0.0.1#5353 -ipset=/.overplay.net/gfwlist -server=/.ow.ly/127.0.0.1#5353 -ipset=/.ow.ly/gfwlist -server=/.owl.li/127.0.0.1#5353 -ipset=/.owl.li/gfwlist -server=/.oyax.com/127.0.0.1#5353 -ipset=/.oyax.com/gfwlist -server=/.ozchinese.com/127.0.0.1#5353 -ipset=/.ozchinese.com/gfwlist -server=/.ozxw.com/127.0.0.1#5353 -ipset=/.ozxw.com/gfwlist -server=/.ozyoyo.com/127.0.0.1#5353 -ipset=/.ozyoyo.com/gfwlist -server=/.pacificpoker.com/127.0.0.1#5353 -ipset=/.pacificpoker.com/gfwlist -server=/.packages.debian.org/127.0.0.1#5353 -ipset=/.packages.debian.org/gfwlist -server=/.packetix.net/127.0.0.1#5353 -ipset=/.packetix.net/gfwlist -server=/.pacopacomama.com/127.0.0.1#5353 -ipset=/.pacopacomama.com/gfwlist -server=/.padmanet.com/127.0.0.1#5353 -ipset=/.padmanet.com/gfwlist -server=/.page.bid.yahoo.com/127.0.0.1#5353 -ipset=/.page.bid.yahoo.com/gfwlist -server=/.page2rss.com/127.0.0.1#5353 -ipset=/.page2rss.com/gfwlist -server=/.pagodabox.com/127.0.0.1#5353 -ipset=/.pagodabox.com/gfwlist -server=/.paint.net/127.0.0.1#5353 -ipset=/.paint.net/gfwlist -server=/.palacemoon.com/127.0.0.1#5353 -ipset=/.palacemoon.com/gfwlist -server=/.paldengyal.com/127.0.0.1#5353 -ipset=/.paldengyal.com/gfwlist -server=/.paljorpublications.com/127.0.0.1#5353 -ipset=/.paljorpublications.com/gfwlist -server=/.panacom.co.jp/127.0.0.1#5353 -ipset=/.panacom.co.jp/gfwlist -server=/.pandapow.net/127.0.0.1#5353 -ipset=/.pandapow.net/gfwlist -server=/.pandavpn-jp.com/127.0.0.1#5353 -ipset=/.pandavpn-jp.com/gfwlist -server=/.pandora.com/127.0.0.1#5353 -ipset=/.pandora.com/gfwlist -server=/.pandora.tv/127.0.0.1#5353 -ipset=/.pandora.tv/gfwlist -server=/.panluan.net/127.0.0.1#5353 -ipset=/.panluan.net/gfwlist -server=/.panoramio.com/127.0.0.1#5353 -ipset=/.panoramio.com/gfwlist -server=/.pao-pao.net/127.0.0.1#5353 -ipset=/.pao-pao.net/gfwlist -server=/.paper.li/127.0.0.1#5353 -ipset=/.paper.li/gfwlist -server=/.paperb.us/127.0.0.1#5353 -ipset=/.paperb.us/gfwlist -server=/.passion.com/127.0.0.1#5353 -ipset=/.passion.com/gfwlist -server=/.passiontimes.hk/127.0.0.1#5353 -ipset=/.passiontimes.hk/gfwlist -server=/.pastebin.com/127.0.0.1#5353 -ipset=/.pastebin.com/gfwlist -server=/.pastie.org/127.0.0.1#5353 -ipset=/.pastie.org/gfwlist -server=/.pbs.org/127.0.0.1#5353 -ipset=/.pbs.org/gfwlist -server=/.pbwiki.com/127.0.0.1#5353 -ipset=/.pbwiki.com/gfwlist -server=/.pbworks.com/127.0.0.1#5353 -ipset=/.pbworks.com/gfwlist -server=/.pbxes.com/127.0.0.1#5353 -ipset=/.pbxes.com/gfwlist -server=/.pbxes.org/127.0.0.1#5353 -ipset=/.pbxes.org/gfwlist -server=/.pcdiscuss.com/127.0.0.1#5353 -ipset=/.pcdiscuss.com/gfwlist -server=/.pcij.org/127.0.0.1#5353 -ipset=/.pcij.org/gfwlist -server=/.pdetails.com/127.0.0.1#5353 -ipset=/.pdetails.com/gfwlist -server=/.pdproxy.com/127.0.0.1#5353 -ipset=/.pdproxy.com/gfwlist -server=/.pds.nasa.gov/127.0.0.1#5353 -ipset=/.pds.nasa.gov/gfwlist -server=/.peace.ca/127.0.0.1#5353 -ipset=/.peace.ca/gfwlist -server=/.peacefire.org/127.0.0.1#5353 -ipset=/.peacefire.org/gfwlist -server=/.peacehall.com/127.0.0.1#5353 -ipset=/.peacehall.com/gfwlist -server=/.pearlher.org/127.0.0.1#5353 -ipset=/.pearlher.org/gfwlist -server=/.peeasian.com/127.0.0.1#5353 -ipset=/.peeasian.com/gfwlist -server=/.peerpong.com/127.0.0.1#5353 -ipset=/.peerpong.com/gfwlist -server=/.pekingduck.org/127.0.0.1#5353 -ipset=/.pekingduck.org/gfwlist -server=/.pemulihan.or.id/127.0.0.1#5353 -ipset=/.pemulihan.or.id/gfwlist -server=/.pen.io/127.0.0.1#5353 -ipset=/.pen.io/gfwlist -server=/.penchinese.com/127.0.0.1#5353 -ipset=/.penchinese.com/gfwlist -server=/.penchinese.net/127.0.0.1#5353 -ipset=/.penchinese.net/gfwlist -server=/.pengyulong.com/127.0.0.1#5353 -ipset=/.pengyulong.com/gfwlist -server=/.penthouse.com/127.0.0.1#5353 -ipset=/.penthouse.com/gfwlist -server=/.peopo.org/127.0.0.1#5353 -ipset=/.peopo.org/gfwlist -server=/.percy.in/127.0.0.1#5353 -ipset=/.percy.in/gfwlist -server=/.perfectgirls.net/127.0.0.1#5353 -ipset=/.perfectgirls.net/gfwlist -server=/.perfectvpn.net/127.0.0.1#5353 -ipset=/.perfectvpn.net/gfwlist -server=/.persecutionblog.com/127.0.0.1#5353 -ipset=/.persecutionblog.com/gfwlist -server=/.pfd.org.hk/127.0.0.1#5353 -ipset=/.pfd.org.hk/gfwlist -server=/.phayul.com/127.0.0.1#5353 -ipset=/.phayul.com/gfwlist -server=/.philly.com/127.0.0.1#5353 -ipset=/.philly.com/gfwlist -server=/.phncdn.com/127.0.0.1#5353 -ipset=/.phncdn.com/gfwlist -server=/.photodharma.net/127.0.0.1#5353 -ipset=/.photodharma.net/gfwlist -server=/.photofocus.com/127.0.0.1#5353 -ipset=/.photofocus.com/gfwlist -server=/.phuquocservices.com/127.0.0.1#5353 -ipset=/.phuquocservices.com/gfwlist -server=/.picasaweb.com/127.0.0.1#5353 -ipset=/.picasaweb.com/gfwlist -server=/.picidae.net/127.0.0.1#5353 -ipset=/.picidae.net/gfwlist -server=/.picturedip.com/127.0.0.1#5353 -ipset=/.picturedip.com/gfwlist -server=/.pictures.playboy.com/127.0.0.1#5353 -ipset=/.pictures.playboy.com/gfwlist -server=/.picturesocial.com/127.0.0.1#5353 -ipset=/.picturesocial.com/gfwlist -server=/.pin6.com/127.0.0.1#5353 -ipset=/.pin6.com/gfwlist -server=/.ping.fm/127.0.0.1#5353 -ipset=/.ping.fm/gfwlist -server=/.pinoy-n.com/127.0.0.1#5353 -ipset=/.pinoy-n.com/gfwlist -server=/.pioneer-worker.forums-free.com/127.0.0.1#5353 -ipset=/.pioneer-worker.forums-free.com/gfwlist -server=/.piposay.com/127.0.0.1#5353 -ipset=/.piposay.com/gfwlist -server=/.piring.com/127.0.0.1#5353 -ipset=/.piring.com/gfwlist -server=/.pixelqi.com/127.0.0.1#5353 -ipset=/.pixelqi.com/gfwlist -server=/.pixnet.net/127.0.0.1#5353 -ipset=/.pixnet.net/gfwlist -server=/.pk.com/127.0.0.1#5353 -ipset=/.pk.com/gfwlist -server=/.placemix.com/127.0.0.1#5353 -ipset=/.placemix.com/gfwlist -server=/.playboy.com/127.0.0.1#5353 -ipset=/.playboy.com/gfwlist -server=/.playboyplus.com/127.0.0.1#5353 -ipset=/.playboyplus.com/gfwlist -server=/.playno1.com/127.0.0.1#5353 -ipset=/.playno1.com/gfwlist -server=/.playpcesor.com/127.0.0.1#5353 -ipset=/.playpcesor.com/gfwlist -server=/.plm.org.hk/127.0.0.1#5353 -ipset=/.plm.org.hk/gfwlist -server=/.plunder.com/127.0.0.1#5353 -ipset=/.plunder.com/gfwlist -server=/.plurktop.mmdays.com/127.0.0.1#5353 -ipset=/.plurktop.mmdays.com/gfwlist -server=/.plus28.com/127.0.0.1#5353 -ipset=/.plus28.com/gfwlist -server=/.plusbb.com/127.0.0.1#5353 -ipset=/.plusbb.com/gfwlist -server=/.pmates.com/127.0.0.1#5353 -ipset=/.pmates.com/gfwlist -server=/.po2b.com/127.0.0.1#5353 -ipset=/.po2b.com/gfwlist -server=/.podictionary.com/127.0.0.1#5353 -ipset=/.podictionary.com/gfwlist -server=/.politicalchina.org/127.0.0.1#5353 -ipset=/.politicalchina.org/gfwlist -server=/.politicalconsultation.org/127.0.0.1#5353 -ipset=/.politicalconsultation.org/gfwlist -server=/.polymerhk.com/127.0.0.1#5353 -ipset=/.polymerhk.com/gfwlist -server=/.polymer-project.org/127.0.0.1#5353 -ipset=/.polymer-project.org/gfwlist -server=/.popvote.hk/127.0.0.1#5353 -ipset=/.popvote.hk/gfwlist -server=/.popyard.com/127.0.0.1#5353 -ipset=/.popyard.com/gfwlist -server=/.popyard.org/127.0.0.1#5353 -ipset=/.popyard.org/gfwlist -server=/.porn.com/127.0.0.1#5353 -ipset=/.porn.com/gfwlist -server=/.porn2.com/127.0.0.1#5353 -ipset=/.porn2.com/gfwlist -server=/.pornbase.org/127.0.0.1#5353 -ipset=/.pornbase.org/gfwlist -server=/.pornhd.com/127.0.0.1#5353 -ipset=/.pornhd.com/gfwlist -server=/.pornhost.com/127.0.0.1#5353 -ipset=/.pornhost.com/gfwlist -server=/.pornhub.com/127.0.0.1#5353 -ipset=/.pornhub.com/gfwlist -server=/.pornmm.net/127.0.0.1#5353 -ipset=/.pornmm.net/gfwlist -server=/.pornoxo.com/127.0.0.1#5353 -ipset=/.pornoxo.com/gfwlist -server=/.pornrapidshare.com/127.0.0.1#5353 -ipset=/.pornrapidshare.com/gfwlist -server=/.pornstarclub.com/127.0.0.1#5353 -ipset=/.pornstarclub.com/gfwlist -server=/.porntube.com/127.0.0.1#5353 -ipset=/.porntube.com/gfwlist -server=/.porntvblog.com/127.0.0.1#5353 -ipset=/.porntvblog.com/gfwlist -server=/.pornvisit.com/127.0.0.1#5353 -ipset=/.pornvisit.com/gfwlist -server=/.portablevpn.nl/127.0.0.1#5353 -ipset=/.portablevpn.nl/gfwlist -server=/.pose.com/127.0.0.1#5353 -ipset=/.pose.com/gfwlist -server=/.post.anyu.org/127.0.0.1#5353 -ipset=/.post.anyu.org/gfwlist -server=/.post.ly/127.0.0.1#5353 -ipset=/.post.ly/gfwlist -server=/.post852.com/127.0.0.1#5353 -ipset=/.post852.com/gfwlist -server=/.postadult.com/127.0.0.1#5353 -ipset=/.postadult.com/gfwlist -server=/.posterous.com/127.0.0.1#5353 -ipset=/.posterous.com/gfwlist -server=/.power.com/127.0.0.1#5353 -ipset=/.power.com/gfwlist -server=/.powerapple.com/127.0.0.1#5353 -ipset=/.powerapple.com/gfwlist -server=/.powercx.com/127.0.0.1#5353 -ipset=/.powercx.com/gfwlist -server=/.powerphoto.org/127.0.0.1#5353 -ipset=/.powerphoto.org/gfwlist -server=/.prayforchina.net/127.0.0.1#5353 -ipset=/.prayforchina.net/gfwlist -server=/.premeforwindows7.com/127.0.0.1#5353 -ipset=/.premeforwindows7.com/gfwlist -server=/.presentationzen.com/127.0.0.1#5353 -ipset=/.presentationzen.com/gfwlist -server=/.prestige-av.com/127.0.0.1#5353 -ipset=/.prestige-av.com/gfwlist -server=/.prisoneralert.com/127.0.0.1#5353 -ipset=/.prisoneralert.com/gfwlist -server=/.pritunl.com/127.0.0.1#5353 -ipset=/.pritunl.com/gfwlist -server=/.privacybox.de/127.0.0.1#5353 -ipset=/.privacybox.de/gfwlist -server=/.private.com/127.0.0.1#5353 -ipset=/.private.com/gfwlist -server=/.privateinternetaccess.com/127.0.0.1#5353 -ipset=/.privateinternetaccess.com/gfwlist -server=/.privatepaste.com/127.0.0.1#5353 -ipset=/.privatepaste.com/gfwlist -server=/.privatetunnel.com/127.0.0.1#5353 -ipset=/.privatetunnel.com/gfwlist -server=/.privatevpn.com/127.0.0.1#5353 -ipset=/.privatevpn.com/gfwlist -server=/.procopytips.com/127.0.0.1#5353 -ipset=/.procopytips.com/gfwlist -server=/.prosiben.de/127.0.0.1#5353 -ipset=/.prosiben.de/gfwlist -server=/.provideocoalition.com/127.0.0.1#5353 -ipset=/.provideocoalition.com/gfwlist -server=/.provpnaccounts.com/127.0.0.1#5353 -ipset=/.provpnaccounts.com/gfwlist -server=/.proxfree.com/127.0.0.1#5353 -ipset=/.proxfree.com/gfwlist -server=/.proxifier.com/127.0.0.1#5353 -ipset=/.proxifier.com/gfwlist -server=/.proxomitron.info/127.0.0.1#5353 -ipset=/.proxomitron.info/gfwlist -server=/.proxpn.com/127.0.0.1#5353 -ipset=/.proxpn.com/gfwlist -server=/.proxy.org/127.0.0.1#5353 -ipset=/.proxy.org/gfwlist -server=/.proxyanonimo.es/127.0.0.1#5353 -ipset=/.proxyanonimo.es/gfwlist -server=/.proxylist.org.uk/127.0.0.1#5353 -ipset=/.proxylist.org.uk/gfwlist -server=/.proxynetwork.org.uk/127.0.0.1#5353 -ipset=/.proxynetwork.org.uk/gfwlist -server=/.proxypy.net/127.0.0.1#5353 -ipset=/.proxypy.net/gfwlist -server=/.proxyroad.com/127.0.0.1#5353 -ipset=/.proxyroad.com/gfwlist -server=/.proxytunnel.net/127.0.0.1#5353 -ipset=/.proxytunnel.net/gfwlist -server=/.prozz.net/127.0.0.1#5353 -ipset=/.prozz.net/gfwlist -server=/.psblog.name/127.0.0.1#5353 -ipset=/.psblog.name/gfwlist -server=/.psiphon.ca/127.0.0.1#5353 -ipset=/.psiphon.ca/gfwlist -server=/.psiphon.civisec.org/127.0.0.1#5353 -ipset=/.psiphon.civisec.org/gfwlist -server=/.ptt.cc/127.0.0.1#5353 -ipset=/.ptt.cc/gfwlist -server=/.pttvan.org/127.0.0.1#5353 -ipset=/.pttvan.org/gfwlist -server=/.puffinbrowser.com/127.0.0.1#5353 -ipset=/.puffinbrowser.com/gfwlist -server=/.puffstore.com/127.0.0.1#5353 -ipset=/.puffstore.com/gfwlist -server=/.pullfolio.com/127.0.0.1#5353 -ipset=/.pullfolio.com/gfwlist -server=/.pulse.yahoo.com/127.0.0.1#5353 -ipset=/.pulse.yahoo.com/gfwlist -server=/.pure18.com/127.0.0.1#5353 -ipset=/.pure18.com/gfwlist -server=/.pureconcepts.net/127.0.0.1#5353 -ipset=/.pureconcepts.net/gfwlist -server=/.pureinsight.org/127.0.0.1#5353 -ipset=/.pureinsight.org/gfwlist -server=/.purepdf.com/127.0.0.1#5353 -ipset=/.purepdf.com/gfwlist -server=/.purevpn.com/127.0.0.1#5353 -ipset=/.purevpn.com/gfwlist -server=/.purplelotus.org/127.0.0.1#5353 -ipset=/.purplelotus.org/gfwlist -server=/.putlocker.com/127.0.0.1#5353 -ipset=/.putlocker.com/gfwlist -server=/.putty.org/127.0.0.1#5353 -ipset=/.putty.org/gfwlist -server=/.puttycm.free.fr/127.0.0.1#5353 -ipset=/.puttycm.free.fr/gfwlist -server=/.pwned.com/127.0.0.1#5353 -ipset=/.pwned.com/gfwlist -server=/.python.com/127.0.0.1#5353 -ipset=/.python.com/gfwlist -server=/.qanote.com/127.0.0.1#5353 -ipset=/.qanote.com/gfwlist -server=/.qidian.ca/127.0.0.1#5353 -ipset=/.qidian.ca/gfwlist -server=/.qienkuen.org/127.0.0.1#5353 -ipset=/.qienkuen.org/gfwlist -server=/.qi-gong.me/127.0.0.1#5353 -ipset=/.qi-gong.me/gfwlist -server=/.qiwen.lu/127.0.0.1#5353 -ipset=/.qiwen.lu/gfwlist -server=/.qixianglu.cn/127.0.0.1#5353 -ipset=/.qixianglu.cn/gfwlist -server=/.qkshare.com/127.0.0.1#5353 -ipset=/.qkshare.com/gfwlist -server=/.qoos.com/127.0.0.1#5353 -ipset=/.qoos.com/gfwlist -server=/.qq.co.za/127.0.0.1#5353 -ipset=/.qq.co.za/gfwlist -server=/.qstatus.com/127.0.0.1#5353 -ipset=/.qstatus.com/gfwlist -server=/.qtrac.eu/127.0.0.1#5353 -ipset=/.qtrac.eu/gfwlist -server=/.qtweeter.com/127.0.0.1#5353 -ipset=/.qtweeter.com/gfwlist -server=/.quitccp.net/127.0.0.1#5353 -ipset=/.quitccp.net/gfwlist -server=/.quitccp.org/127.0.0.1#5353 -ipset=/.quitccp.org/gfwlist -server=/.quran.com/127.0.0.1#5353 -ipset=/.quran.com/gfwlist -server=/.quranexplorer.com/127.0.0.1#5353 -ipset=/.quranexplorer.com/gfwlist -server=/.qusi8.net/127.0.0.1#5353 -ipset=/.qusi8.net/gfwlist -server=/.qvodzy.org/127.0.0.1#5353 -ipset=/.qvodzy.org/gfwlist -server=/.qxbbs.org/127.0.0.1#5353 -ipset=/.qxbbs.org/gfwlist -server=/.r18.com/127.0.0.1#5353 -ipset=/.r18.com/gfwlist -server=/.ra.gg/127.0.0.1#5353 -ipset=/.ra.gg/gfwlist -server=/.radicalparty.org/127.0.0.1#5353 -ipset=/.radicalparty.org/gfwlist -server=/.radiko.jp/127.0.0.1#5353 -ipset=/.radiko.jp/gfwlist -server=/.radioaustralia.net.au/127.0.0.1#5353 -ipset=/.radioaustralia.net.au/gfwlist -server=/.radiohilight.net/127.0.0.1#5353 -ipset=/.radiohilight.net/gfwlist -server=/.radiovaticana.org/127.0.0.1#5353 -ipset=/.radiovaticana.org/gfwlist -server=/.radiovncr.com/127.0.0.1#5353 -ipset=/.radiovncr.com/gfwlist -server=/.raizoji.or.jp/127.0.0.1#5353 -ipset=/.raizoji.or.jp/gfwlist -server=/.rangwang.biz/127.0.0.1#5353 -ipset=/.rangwang.biz/gfwlist -server=/.rangzen.com/127.0.0.1#5353 -ipset=/.rangzen.com/gfwlist -server=/.rangzen.net/127.0.0.1#5353 -ipset=/.rangzen.net/gfwlist -server=/.rangzen.org/127.0.0.1#5353 -ipset=/.rangzen.org/gfwlist -server=/.ranyunfei.com/127.0.0.1#5353 -ipset=/.ranyunfei.com/gfwlist -server=/.rapbull.net/127.0.0.1#5353 -ipset=/.rapbull.net/gfwlist -server=/.rapidgator.net/127.0.0.1#5353 -ipset=/.rapidgator.net/gfwlist -server=/.rapidshare8.com/127.0.0.1#5353 -ipset=/.rapidshare8.com/gfwlist -server=/.rapidsharedata.com/127.0.0.1#5353 -ipset=/.rapidsharedata.com/gfwlist -server=/.rapidvpn.com/127.0.0.1#5353 -ipset=/.rapidvpn.com/gfwlist -server=/.raremovie.cc/127.0.0.1#5353 -ipset=/.raremovie.cc/gfwlist -server=/.raremovie.net/127.0.0.1#5353 -ipset=/.raremovie.net/gfwlist -server=/.razyboard.com/127.0.0.1#5353 -ipset=/.razyboard.com/gfwlist -server=/.rcinet.ca/127.0.0.1#5353 -ipset=/.rcinet.ca/gfwlist -server=/.rconversation.blogs.com/127.0.0.1#5353 -ipset=/.rconversation.blogs.com/gfwlist -server=/.rd.com/127.0.0.1#5353 -ipset=/.rd.com/gfwlist -server=/.rdio.com/127.0.0.1#5353 -ipset=/.rdio.com/gfwlist -server=/.read100.com/127.0.0.1#5353 -ipset=/.read100.com/gfwlist -server=/.readmoo.com/127.0.0.1#5353 -ipset=/.readmoo.com/gfwlist -server=/.realcourage.org/127.0.0.1#5353 -ipset=/.realcourage.org/gfwlist -server=/.realraptalk.com/127.0.0.1#5353 -ipset=/.realraptalk.com/gfwlist -server=/.recaptcha.net/127.0.0.1#5353 -ipset=/.recaptcha.net/gfwlist -server=/.recordhistory.org/127.0.0.1#5353 -ipset=/.recordhistory.org/gfwlist -server=/.redchinacn.org/127.0.0.1#5353 -ipset=/.redchinacn.org/gfwlist -server=/.redtube.com/127.0.0.1#5353 -ipset=/.redtube.com/gfwlist -server=/.referer.us/127.0.0.1#5353 -ipset=/.referer.us/gfwlist -server=/.reflectivecode.com/127.0.0.1#5353 -ipset=/.reflectivecode.com/gfwlist -#server=/.registry.google/127.0.0.1#5353 -#ipset=/.registry.google/gfwlist -server=/.relaxbbs.com/127.0.0.1#5353 -ipset=/.relaxbbs.com/gfwlist -server=/.releaseinternational.org/127.0.0.1#5353 -ipset=/.releaseinternational.org/gfwlist -server=/.religioustolerance.org/127.0.0.1#5353 -ipset=/.religioustolerance.org/gfwlist -server=/.renminbao.com/127.0.0.1#5353 -ipset=/.renminbao.com/gfwlist -server=/.renyurenquan.org/127.0.0.1#5353 -ipset=/.renyurenquan.org/gfwlist -server=/.research.jmsc.hku.hk/127.0.0.1#5353 -ipset=/.research.jmsc.hku.hk/gfwlist -server=/.retweeteffect.com/127.0.0.1#5353 -ipset=/.retweeteffect.com/gfwlist -server=/.retweetist.com/127.0.0.1#5353 -ipset=/.retweetist.com/gfwlist -server=/.retweetrank.com/127.0.0.1#5353 -ipset=/.retweetrank.com/gfwlist -server=/.reuters.com/127.0.0.1#5353 -ipset=/.reuters.com/gfwlist -server=/.revleft.com/127.0.0.1#5353 -ipset=/.revleft.com/gfwlist -server=/.revver.com/127.0.0.1#5353 -ipset=/.revver.com/gfwlist -server=/.rfa.org/127.0.0.1#5353 -ipset=/.rfa.org/gfwlist -server=/.rfachina.com/127.0.0.1#5353 -ipset=/.rfachina.com/gfwlist -server=/.rfamobile.org/127.0.0.1#5353 -ipset=/.rfamobile.org/gfwlist -server=/.rfaweb.org/127.0.0.1#5353 -ipset=/.rfaweb.org/gfwlist -server=/.rferl.org/127.0.0.1#5353 -ipset=/.rferl.org/gfwlist -server=/.rfi.fr/127.0.0.1#5353 -ipset=/.rfi.fr/gfwlist -server=/.rfi.my/127.0.0.1#5353 -ipset=/.rfi.my/gfwlist -server=/.rhcloud.com/127.0.0.1#5353 -ipset=/.rhcloud.com/gfwlist -server=/.riku.me/127.0.0.1#5353 -ipset=/.riku.me/gfwlist -server=/.rileyguide.com/127.0.0.1#5353 -ipset=/.rileyguide.com/gfwlist -server=/.ritouki.jp/127.0.0.1#5353 -ipset=/.ritouki.jp/gfwlist -server=/.rlwlw.com/127.0.0.1#5353 -ipset=/.rlwlw.com/gfwlist -server=/.rmjdw.com/127.0.0.1#5353 -ipset=/.rmjdw.com/gfwlist -server=/.rmjdw132.info/127.0.0.1#5353 -ipset=/.rmjdw132.info/gfwlist -server=/.rnw.global.ssl.fastly.net/127.0.0.1#5353 -ipset=/.rnw.global.ssl.fastly.net/gfwlist -server=/.rnw.nl/127.0.0.1#5353 -ipset=/.rnw.nl/gfwlist -server=/.roadshow.hk/127.0.0.1#5353 -ipset=/.roadshow.hk/gfwlist -server=/.robtex.com/127.0.0.1#5353 -ipset=/.robtex.com/gfwlist -server=/.robustnessiskey.com/127.0.0.1#5353 -ipset=/.robustnessiskey.com/gfwlist -server=/.rocket-inc.net/127.0.0.1#5353 -ipset=/.rocket-inc.net/gfwlist -server=/.rocmp.org/127.0.0.1#5353 -ipset=/.rocmp.org/gfwlist -server=/.rojo.com/127.0.0.1#5353 -ipset=/.rojo.com/gfwlist -server=/.rolia.net/127.0.0.1#5353 -ipset=/.rolia.net/gfwlist -server=/.ronjoneswriter.com/127.0.0.1#5353 -ipset=/.ronjoneswriter.com/gfwlist -server=/.roodo.com/127.0.0.1#5353 -ipset=/.roodo.com/gfwlist -server=/.rosechina.net/127.0.0.1#5353 -ipset=/.rosechina.net/gfwlist -server=/.rotten.com/127.0.0.1#5353 -ipset=/.rotten.com/gfwlist -server=/.rsf.org/127.0.0.1#5353 -ipset=/.rsf.org/gfwlist -server=/.rsf-chinese.org/127.0.0.1#5353 -ipset=/.rsf-chinese.org/gfwlist -server=/.rsgamen.org/127.0.0.1#5353 -ipset=/.rsgamen.org/gfwlist -server=/.rssmeme.com/127.0.0.1#5353 -ipset=/.rssmeme.com/gfwlist -server=/.rthk.hk/127.0.0.1#5353 -ipset=/.rthk.hk/gfwlist -server=/.rthk.org.hk/127.0.0.1#5353 -ipset=/.rthk.org.hk/gfwlist -server=/.ruanyifeng.com/127.0.0.1#5353 -ipset=/.ruanyifeng.com/gfwlist -server=/.rushbee.com/127.0.0.1#5353 -ipset=/.rushbee.com/gfwlist -server=/.rutube.ru/127.0.0.1#5353 -ipset=/.rutube.ru/gfwlist -server=/.ruyiseek.com/127.0.0.1#5353 -ipset=/.ruyiseek.com/gfwlist -server=/.rxhj.net/127.0.0.1#5353 -ipset=/.rxhj.net/gfwlist -server=/.s.xiaod.in/127.0.0.1#5353 -ipset=/.s.xiaod.in/gfwlist -server=/.s1heng.com/127.0.0.1#5353 -ipset=/.s1heng.com/gfwlist -server=/.s1s1s1.com/127.0.0.1#5353 -ipset=/.s1s1s1.com/gfwlist -server=/.s8forum.com/127.0.0.1#5353 -ipset=/.s8forum.com/gfwlist -server=/.sa.hao123.com/127.0.0.1#5353 -ipset=/.sa.hao123.com/gfwlist -server=/.sacom.hk/127.0.0.1#5353 -ipset=/.sacom.hk/gfwlist -server=/.sadistic-v.com/127.0.0.1#5353 -ipset=/.sadistic-v.com/gfwlist -server=/.sadpanda.us/127.0.0.1#5353 -ipset=/.sadpanda.us/gfwlist -server=/.safervpn.com/127.0.0.1#5353 -ipset=/.safervpn.com/gfwlist -server=/.saiq.me/127.0.0.1#5353 -ipset=/.saiq.me/gfwlist -server=/.sakuralive.com/127.0.0.1#5353 -ipset=/.sakuralive.com/gfwlist -server=/.salvation.org.hk/127.0.0.1#5353 -ipset=/.salvation.org.hk/gfwlist -server=/.samair.ru/127.0.0.1#5353 -ipset=/.samair.ru/gfwlist -server=/.sambhota.org/127.0.0.1#5353 -ipset=/.sambhota.org/gfwlist -server=/.samsoff.es/127.0.0.1#5353 -ipset=/.samsoff.es/gfwlist -server=/.sankaizok.com/127.0.0.1#5353 -ipset=/.sankaizok.com/gfwlist -server=/.sapikachu.net/127.0.0.1#5353 -ipset=/.sapikachu.net/gfwlist -server=/.savemedia.com/127.0.0.1#5353 -ipset=/.savemedia.com/gfwlist -server=/.savetibet.de/127.0.0.1#5353 -ipset=/.savetibet.de/gfwlist -server=/.savetibet.fr/127.0.0.1#5353 -ipset=/.savetibet.fr/gfwlist -server=/.savetibet.nl/127.0.0.1#5353 -ipset=/.savetibet.nl/gfwlist -server=/.savetibet.org/127.0.0.1#5353 -ipset=/.savetibet.org/gfwlist -server=/.savetibet.ru/127.0.0.1#5353 -ipset=/.savetibet.ru/gfwlist -server=/.savevid.com/127.0.0.1#5353 -ipset=/.savevid.com/gfwlist -server=/.say2.info/127.0.0.1#5353 -ipset=/.say2.info/gfwlist -server=/.sciencenets.com/127.0.0.1#5353 -ipset=/.sciencenets.com/gfwlist -server=/.scihub.org/127.0.0.1#5353 -ipset=/.scihub.org/gfwlist -server=/.scmp.com/127.0.0.1#5353 -ipset=/.scmp.com/gfwlist -server=/.scmpchinese.com/127.0.0.1#5353 -ipset=/.scmpchinese.com/gfwlist -server=/.scribd.com/127.0.0.1#5353 -ipset=/.scribd.com/gfwlist -server=/.scriptspot.com/127.0.0.1#5353 -ipset=/.scriptspot.com/gfwlist -server=/.s-cute.com/127.0.0.1#5353 -ipset=/.s-cute.com/gfwlist -server=/.s-dragon.org/127.0.0.1#5353 -ipset=/.s-dragon.org/gfwlist -server=/.seapuff.com/127.0.0.1#5353 -ipset=/.seapuff.com/gfwlist -server=/.search.aol.com/127.0.0.1#5353 -ipset=/.search.aol.com/gfwlist -server=/.search.xxx/127.0.0.1#5353 -ipset=/.search.xxx/gfwlist -server=/.secretchina.com/127.0.0.1#5353 -ipset=/.secretchina.com/gfwlist -server=/.secretgarden.no/127.0.0.1#5353 -ipset=/.secretgarden.no/gfwlist -server=/.secretsline.biz/127.0.0.1#5353 -ipset=/.secretsline.biz/gfwlist -server=/.secure.hustler.com/127.0.0.1#5353 -ipset=/.secure.hustler.com/gfwlist -server=/.secure.logmein.com/127.0.0.1#5353 -ipset=/.secure.logmein.com/gfwlist -server=/.securetunnel.com/127.0.0.1#5353 -ipset=/.securetunnel.com/gfwlist -server=/.securitykiss.com/127.0.0.1#5353 -ipset=/.securitykiss.com/gfwlist -server=/.seesmic.com/127.0.0.1#5353 -ipset=/.seesmic.com/gfwlist -server=/.seevpn.com/127.0.0.1#5353 -ipset=/.seevpn.com/gfwlist -server=/.seezone.net/127.0.0.1#5353 -ipset=/.seezone.net/gfwlist -server=/.sejie.com/127.0.0.1#5353 -ipset=/.sejie.com/gfwlist -server=/.sendoid.com/127.0.0.1#5353 -ipset=/.sendoid.com/gfwlist -server=/.sendspace.com/127.0.0.1#5353 -ipset=/.sendspace.com/gfwlist -server=/.sesawe.net/127.0.0.1#5353 -ipset=/.sesawe.net/gfwlist -server=/.sesawe.org/127.0.0.1#5353 -ipset=/.sesawe.org/gfwlist -server=/.sethwklein.net/127.0.0.1#5353 -ipset=/.sethwklein.net/gfwlist -server=/.sevenload.com/127.0.0.1#5353 -ipset=/.sevenload.com/gfwlist -server=/.sex.com/127.0.0.1#5353 -ipset=/.sex.com/gfwlist -server=/.sex-11.com/127.0.0.1#5353 -ipset=/.sex-11.com/gfwlist -server=/.sex3.com/127.0.0.1#5353 -ipset=/.sex3.com/gfwlist -server=/.sex8.cc/127.0.0.1#5353 -ipset=/.sex8.cc/gfwlist -server=/.sexandsubmission.com/127.0.0.1#5353 -ipset=/.sexandsubmission.com/gfwlist -server=/.sexhu.com/127.0.0.1#5353 -ipset=/.sexhu.com/gfwlist -server=/.sexhuang.com/127.0.0.1#5353 -ipset=/.sexhuang.com/gfwlist -server=/.sexinsex.net/127.0.0.1#5353 -ipset=/.sexinsex.net/gfwlist -server=/.sf.net/127.0.0.1#5353 -ipset=/.sf.net/gfwlist -server=/.sfileydy.com/127.0.0.1#5353 -ipset=/.sfileydy.com/gfwlist -server=/.sftindia.org/127.0.0.1#5353 -ipset=/.sftindia.org/gfwlist -server=/.sftuk.org/127.0.0.1#5353 -ipset=/.sftuk.org/gfwlist -server=/.shadow.ma/127.0.0.1#5353 -ipset=/.shadow.ma/gfwlist -server=/.shadowsocks.org/127.0.0.1#5353 -ipset=/.shadowsocks.org/gfwlist -server=/.shahamat-english.com/127.0.0.1#5353 -ipset=/.shahamat-english.com/gfwlist -server=/.shangfang.org/127.0.0.1#5353 -ipset=/.shangfang.org/gfwlist -server=/.shapeservices.com/127.0.0.1#5353 -ipset=/.shapeservices.com/gfwlist -server=/.share.dmhy.org/127.0.0.1#5353 -ipset=/.share.dmhy.org/gfwlist -server=/.share.ovi.com/127.0.0.1#5353 -ipset=/.share.ovi.com/gfwlist -server=/.sharebee.com/127.0.0.1#5353 -ipset=/.sharebee.com/gfwlist -server=/.sharecool.org/127.0.0.1#5353 -ipset=/.sharecool.org/gfwlist -server=/.sharpdaily.com.hk/127.0.0.1#5353 -ipset=/.sharpdaily.com.hk/gfwlist -server=/.sharpdaily.hk/127.0.0.1#5353 -ipset=/.sharpdaily.hk/gfwlist -server=/.shat-tibet.com/127.0.0.1#5353 -ipset=/.shat-tibet.com/gfwlist -server=/.sheikyermami.com/127.0.0.1#5353 -ipset=/.sheikyermami.com/gfwlist -server=/.shenshou.org/127.0.0.1#5353 -ipset=/.shenshou.org/gfwlist -server=/.shenyun.com/127.0.0.1#5353 -ipset=/.shenyun.com/gfwlist -server=/.shenyunperformingarts.org/127.0.0.1#5353 -ipset=/.shenyunperformingarts.org/gfwlist -server=/.shenzhoufilm.com/127.0.0.1#5353 -ipset=/.shenzhoufilm.com/gfwlist -server=/.shicheng.org/127.0.0.1#5353 -ipset=/.shicheng.org/gfwlist -server=/.shinychan.com/127.0.0.1#5353 -ipset=/.shinychan.com/gfwlist -server=/.shitaotv.org/127.0.0.1#5353 -ipset=/.shitaotv.org/gfwlist -server=/.shixiao.org/127.0.0.1#5353 -ipset=/.shixiao.org/gfwlist -server=/.shizhao.org/127.0.0.1#5353 -ipset=/.shizhao.org/gfwlist -server=/.shkspr.mobi/127.0.0.1#5353 -ipset=/.shkspr.mobi/gfwlist -server=/.shodanhq.com/127.0.0.1#5353 -ipset=/.shodanhq.com/gfwlist -server=/.shopping.com/127.0.0.1#5353 -ipset=/.shopping.com/gfwlist -server=/.showbiz.omy.sg/127.0.0.1#5353 -ipset=/.showbiz.omy.sg/gfwlist -server=/.showtime.jp/127.0.0.1#5353 -ipset=/.showtime.jp/gfwlist -server=/.shutterstock.com/127.0.0.1#5353 -ipset=/.shutterstock.com/gfwlist -server=/.shwchurch.org/127.0.0.1#5353 -ipset=/.shwchurch.org/gfwlist -server=/.shwchurch3.com/127.0.0.1#5353 -ipset=/.shwchurch3.com/gfwlist -server=/.sidelinesnews.com/127.0.0.1#5353 -ipset=/.sidelinesnews.com/gfwlist -server=/.sidelinessportseatery.com/127.0.0.1#5353 -ipset=/.sidelinessportseatery.com/gfwlist -server=/.simplecd.org/127.0.0.1#5353 -ipset=/.simplecd.org/gfwlist -server=/.simpleproductivityblog.com/127.0.0.1#5353 -ipset=/.simpleproductivityblog.com/gfwlist -server=/.sinchew.com.my/127.0.0.1#5353 -ipset=/.sinchew.com.my/gfwlist -server=/.singaporepools.com.sg/127.0.0.1#5353 -ipset=/.singaporepools.com.sg/gfwlist -server=/.singtao.com/127.0.0.1#5353 -ipset=/.singtao.com/gfwlist -server=/.sinoants.com/127.0.0.1#5353 -ipset=/.sinoants.com/gfwlist -server=/.sinocast.com/127.0.0.1#5353 -ipset=/.sinocast.com/gfwlist -server=/.sinocism.com/127.0.0.1#5353 -ipset=/.sinocism.com/gfwlist -server=/.sino-monthly.com/127.0.0.1#5353 -ipset=/.sino-monthly.com/gfwlist -server=/.sinomontreal.ca/127.0.0.1#5353 -ipset=/.sinomontreal.ca/gfwlist -server=/.sinonet.ca/127.0.0.1#5353 -ipset=/.sinonet.ca/gfwlist -server=/.sinopitt.info/127.0.0.1#5353 -ipset=/.sinopitt.info/gfwlist -server=/.sinoquebec.com/127.0.0.1#5353 -ipset=/.sinoquebec.com/gfwlist -server=/.sipml5.org/127.0.0.1#5353 -ipset=/.sipml5.org/gfwlist -server=/.sis.xxx/127.0.0.1#5353 -ipset=/.sis.xxx/gfwlist -server=/.sis001.com/127.0.0.1#5353 -ipset=/.sis001.com/gfwlist -server=/.sis001.us/127.0.0.1#5353 -ipset=/.sis001.us/gfwlist -server=/.site90.net/127.0.0.1#5353 -ipset=/.site90.net/gfwlist -server=/.sitekreator.com/127.0.0.1#5353 -ipset=/.sitekreator.com/gfwlist -server=/.siteks.uk.to/127.0.0.1#5353 -ipset=/.siteks.uk.to/gfwlist -server=/.sitemaps.org/127.0.0.1#5353 -ipset=/.sitemaps.org/gfwlist -server=/.sitetag.us/127.0.0.1#5353 -ipset=/.sitetag.us/gfwlist -server=/.sjum.cn/127.0.0.1#5353 -ipset=/.sjum.cn/gfwlist -server=/.skimtube.com/127.0.0.1#5353 -ipset=/.skimtube.com/gfwlist -server=/.skybet.com/127.0.0.1#5353 -ipset=/.skybet.com/gfwlist -server=/.skyhighpremium.com/127.0.0.1#5353 -ipset=/.skyhighpremium.com/gfwlist -server=/.skyvegas.com/127.0.0.1#5353 -ipset=/.skyvegas.com/gfwlist -server=/.slacker.com/127.0.0.1#5353 -ipset=/.slacker.com/gfwlist -server=/.slavasoft.com/127.0.0.1#5353 -ipset=/.slavasoft.com/gfwlist -server=/.slheng.com/127.0.0.1#5353 -ipset=/.slheng.com/gfwlist -server=/.slickvpn.com/127.0.0.1#5353 -ipset=/.slickvpn.com/gfwlist -server=/.slideshare.net/127.0.0.1#5353 -ipset=/.slideshare.net/gfwlist -server=/.slinkset.com/127.0.0.1#5353 -ipset=/.slinkset.com/gfwlist -server=/.slutload.com/127.0.0.1#5353 -ipset=/.slutload.com/gfwlist -server=/.slyip.com/127.0.0.1#5353 -ipset=/.slyip.com/gfwlist -server=/.smh.com.au/127.0.0.1#5353 -ipset=/.smh.com.au/gfwlist -server=/.smhric.org/127.0.0.1#5353 -ipset=/.smhric.org/gfwlist -server=/.snapchat.com/127.0.0.1#5353 -ipset=/.snapchat.com/gfwlist -server=/.snaptu.com/127.0.0.1#5353 -ipset=/.snaptu.com/gfwlist -server=/.sndcdn.com/127.0.0.1#5353 -ipset=/.sndcdn.com/gfwlist -server=/.sneakme.net/127.0.0.1#5353 -ipset=/.sneakme.net/gfwlist -server=/.snooper.co.uk/127.0.0.1#5353 -ipset=/.snooper.co.uk/gfwlist -server=/.snowlionpub.com/127.0.0.1#5353 -ipset=/.snowlionpub.com/gfwlist -server=/.sobees.com/127.0.0.1#5353 -ipset=/.sobees.com/gfwlist -server=/.soc.mil/127.0.0.1#5353 -ipset=/.soc.mil/gfwlist -server=/.socialwhale.com/127.0.0.1#5353 -ipset=/.socialwhale.com/gfwlist -server=/.sockslist.net/127.0.0.1#5353 -ipset=/.sockslist.net/gfwlist -server=/.socrec.org/127.0.0.1#5353 -ipset=/.socrec.org/gfwlist -server=/.sod.co.jp/127.0.0.1#5353 -ipset=/.sod.co.jp/gfwlist -server=/.softether.co.jp/127.0.0.1#5353 -ipset=/.softether.co.jp/gfwlist -server=/.softether.org/127.0.0.1#5353 -ipset=/.softether.org/gfwlist -server=/.softether-download.com/127.0.0.1#5353 -ipset=/.softether-download.com/gfwlist -server=/.softwarebychuck.com/127.0.0.1#5353 -ipset=/.softwarebychuck.com/gfwlist -server=/.softwaredownload.gitbooks.io/127.0.0.1#5353 -ipset=/.softwaredownload.gitbooks.io/gfwlist -server=/.so-ga.net/127.0.0.1#5353 -ipset=/.so-ga.net/gfwlist -server=/.sogclub.com/127.0.0.1#5353 -ipset=/.sogclub.com/gfwlist -server=/.sogrady.me/127.0.0.1#5353 -ipset=/.sogrady.me/gfwlist -server=/.sohcradio.com/127.0.0.1#5353 -ipset=/.sohcradio.com/gfwlist -server=/.sohfrance.org/127.0.0.1#5353 -ipset=/.sohfrance.org/gfwlist -server=/.sokamonline.com/127.0.0.1#5353 -ipset=/.sokamonline.com/gfwlist -server=/.somee.com/127.0.0.1#5353 -ipset=/.somee.com/gfwlist -server=/.so-news.com/127.0.0.1#5353 -ipset=/.so-news.com/gfwlist -server=/.songjianjun.com/127.0.0.1#5353 -ipset=/.songjianjun.com/gfwlist -server=/.sonidodelaesperanza.org/127.0.0.1#5353 -ipset=/.sonidodelaesperanza.org/gfwlist -server=/.sopcast.com/127.0.0.1#5353 -ipset=/.sopcast.com/gfwlist -server=/.sopcast.org/127.0.0.1#5353 -ipset=/.sopcast.org/gfwlist -server=/.sorazone.net/127.0.0.1#5353 -ipset=/.sorazone.net/gfwlist -server=/.sorting-algorithms.com/127.0.0.1#5353 -ipset=/.sorting-algorithms.com/gfwlist -server=/.soulcaliburhentai.net/127.0.0.1#5353 -ipset=/.soulcaliburhentai.net/gfwlist -server=/.soul-plus.net/127.0.0.1#5353 -ipset=/.soul-plus.net/gfwlist -server=/.soumo.info/127.0.0.1#5353 -ipset=/.soumo.info/gfwlist -server=/.soundcloud.com/127.0.0.1#5353 -ipset=/.soundcloud.com/gfwlist -server=/.soundofhope.kr/127.0.0.1#5353 -ipset=/.soundofhope.kr/gfwlist -server=/.soundofhope.org/127.0.0.1#5353 -ipset=/.soundofhope.org/gfwlist -server=/.soup.io/127.0.0.1#5353 -ipset=/.soup.io/gfwlist -server=/.soupofmedia.com/127.0.0.1#5353 -ipset=/.soupofmedia.com/gfwlist -server=/.sourceforge.net/127.0.0.1#5353 -ipset=/.sourceforge.net/gfwlist -server=/.sourcewadio.com/127.0.0.1#5353 -ipset=/.sourcewadio.com/gfwlist -server=/.sowers.org.hk/127.0.0.1#5353 -ipset=/.sowers.org.hk/gfwlist -server=/.space-scape.com/127.0.0.1#5353 -ipset=/.space-scape.com/gfwlist -server=/.spankbang.com/127.0.0.1#5353 -ipset=/.spankbang.com/gfwlist -server=/.spankwire.com/127.0.0.1#5353 -ipset=/.spankwire.com/gfwlist -server=/.spb.com/127.0.0.1#5353 -ipset=/.spb.com/gfwlist -server=/.speakerdeck.com/127.0.0.1#5353 -ipset=/.speakerdeck.com/gfwlist -server=/.speckleapp.com/127.0.0.1#5353 -ipset=/.speckleapp.com/gfwlist -server=/.spem.at/127.0.0.1#5353 -ipset=/.spem.at/gfwlist -server=/.spencertipping.com/127.0.0.1#5353 -ipset=/.spencertipping.com/gfwlist -server=/.spicevpn.com/127.0.0.1#5353 -ipset=/.spicevpn.com/gfwlist -server=/.spike.com/127.0.0.1#5353 -ipset=/.spike.com/gfwlist -server=/.spinejs.com/127.0.0.1#5353 -ipset=/.spinejs.com/gfwlist -server=/.sports.williamhill.com/127.0.0.1#5353 -ipset=/.sports.williamhill.com/gfwlist -server=/.spotify.com/127.0.0.1#5353 -ipset=/.spotify.com/gfwlist -server=/.spring4u.info/127.0.0.1#5353 -ipset=/.spring4u.info/gfwlist -server=/.springboardplatform.com/127.0.0.1#5353 -ipset=/.springboardplatform.com/gfwlist -server=/.sproutcore.com/127.0.0.1#5353 -ipset=/.sproutcore.com/gfwlist -server=/.sproxy.info/127.0.0.1#5353 -ipset=/.sproxy.info/gfwlist -server=/.squarespace.com/127.0.0.1#5353 -ipset=/.squarespace.com/gfwlist -server=/.srcf.ucam.org/127.0.0.1#5353 -ipset=/.srcf.ucam.org/gfwlist -server=/.ssh91.com/127.0.0.1#5353 -ipset=/.ssh91.com/gfwlist -server=/.stackoverflow.com/127.0.0.1#5353 -ipset=/.stackoverflow.com/gfwlist -server=/.stage64.hk/127.0.0.1#5353 -ipset=/.stage64.hk/gfwlist -server=/.standupfortibet.org/127.0.0.1#5353 -ipset=/.standupfortibet.org/gfwlist -server=/.stanford.edu/127.0.0.1#5353 -ipset=/.stanford.edu/gfwlist -server=/.starp2p.com/127.0.0.1#5353 -ipset=/.starp2p.com/gfwlist -server=/.startpage.com/127.0.0.1#5353 -ipset=/.startpage.com/gfwlist -server=/.state168.com/127.0.0.1#5353 -ipset=/.state168.com/gfwlist -server=/.static.digg.com/127.0.0.1#5353 -ipset=/.static.digg.com/gfwlist -server=/.staticflickr.com/127.0.0.1#5353 -ipset=/.staticflickr.com/gfwlist -server=/.steel-storm.com/127.0.0.1#5353 -ipset=/.steel-storm.com/gfwlist -server=/.stephaniered.com/127.0.0.1#5353 -ipset=/.stephaniered.com/gfwlist -server=/.stepmania.com/127.0.0.1#5353 -ipset=/.stepmania.com/gfwlist -server=/.sthoo.com/127.0.0.1#5353 -ipset=/.sthoo.com/gfwlist -server=/.stickam.com/127.0.0.1#5353 -ipset=/.stickam.com/gfwlist -server=/.stickeraction.com/127.0.0.1#5353 -ipset=/.stickeraction.com/gfwlist -server=/.sto.cc/127.0.0.1#5353 -ipset=/.sto.cc/gfwlist -server=/.stoneip.info/127.0.0.1#5353 -ipset=/.stoneip.info/gfwlist -server=/.stoptibetcrisis.net/127.0.0.1#5353 -ipset=/.stoptibetcrisis.net/gfwlist -server=/.storagenewsletter.com/127.0.0.1#5353 -ipset=/.storagenewsletter.com/gfwlist -server=/.storify.com/127.0.0.1#5353 -ipset=/.storify.com/gfwlist -server=/.storm.mg/127.0.0.1#5353 -ipset=/.storm.mg/gfwlist -server=/.stormmediagroup.com/127.0.0.1#5353 -ipset=/.stormmediagroup.com/gfwlist -server=/.stoweboyd.com/127.0.0.1#5353 -ipset=/.stoweboyd.com/gfwlist -server=/.streamingthe.net/127.0.0.1#5353 -ipset=/.streamingthe.net/gfwlist -server=/.streema.com/127.0.0.1#5353 -ipset=/.streema.com/gfwlist -server=/.strongvpn.com/127.0.0.1#5353 -ipset=/.strongvpn.com/gfwlist -server=/.strongwindpress.com/127.0.0.1#5353 -ipset=/.strongwindpress.com/gfwlist -server=/.studentsforafreetibet.org/127.0.0.1#5353 -ipset=/.studentsforafreetibet.org/gfwlist -server=/.stuffimreading.net/127.0.0.1#5353 -ipset=/.stuffimreading.net/gfwlist -server=/.stumbleupon.com/127.0.0.1#5353 -ipset=/.stumbleupon.com/gfwlist -server=/.stupidvideos.com/127.0.0.1#5353 -ipset=/.stupidvideos.com/gfwlist -server=/.subacme.rerouted.org/127.0.0.1#5353 -ipset=/.subacme.rerouted.org/gfwlist -server=/.sugarsync.com/127.0.0.1#5353 -ipset=/.sugarsync.com/gfwlist -server=/.suissl.com/127.0.0.1#5353 -ipset=/.suissl.com/gfwlist -server=/.summify.com/127.0.0.1#5353 -ipset=/.summify.com/gfwlist -server=/.sun1911.com/127.0.0.1#5353 -ipset=/.sun1911.com/gfwlist -server=/.sunporno.com/127.0.0.1#5353 -ipset=/.sunporno.com/gfwlist -server=/.sunvpn.net/127.0.0.1#5353 -ipset=/.sunvpn.net/gfwlist -server=/.suoluo.org/127.0.0.1#5353 -ipset=/.suoluo.org/gfwlist -server=/.suprememastertv.com/127.0.0.1#5353 -ipset=/.suprememastertv.com/gfwlist -server=/.surfeasy.com/127.0.0.1#5353 -ipset=/.surfeasy.com/gfwlist -server=/.surfeasy.com.au/127.0.0.1#5353 -ipset=/.surfeasy.com.au/gfwlist -server=/.suroot.com/127.0.0.1#5353 -ipset=/.suroot.com/gfwlist -server=/.surrenderat20.net/127.0.0.1#5353 -ipset=/.surrenderat20.net/gfwlist -server=/.suyangg.com/127.0.0.1#5353 -ipset=/.suyangg.com/gfwlist -server=/.svwind.com/127.0.0.1#5353 -ipset=/.svwind.com/gfwlist -server=/.sweux.com/127.0.0.1#5353 -ipset=/.sweux.com/gfwlist -server=/.swift-tools.net/127.0.0.1#5353 -ipset=/.swift-tools.net/gfwlist -server=/.swissvpn.net/127.0.0.1#5353 -ipset=/.swissvpn.net/gfwlist -server=/.switch1.jp/127.0.0.1#5353 -ipset=/.switch1.jp/gfwlist -server=/.switchvpn.net/127.0.0.1#5353 -ipset=/.switchvpn.net/gfwlist -server=/.sydneytoday.com/127.0.0.1#5353 -ipset=/.sydneytoday.com/gfwlist -server=/.sylfoundation.org/127.0.0.1#5353 -ipset=/.sylfoundation.org/gfwlist -server=/.syncback.com/127.0.0.1#5353 -ipset=/.syncback.com/gfwlist -server=/.sysadmin1138.net/127.0.0.1#5353 -ipset=/.sysadmin1138.net/gfwlist -server=/.sysresccd.org/127.0.0.1#5353 -ipset=/.sysresccd.org/gfwlist -server=/.sytes.net/127.0.0.1#5353 -ipset=/.sytes.net/gfwlist -server=/.szbbs.net/127.0.0.1#5353 -ipset=/.szbbs.net/gfwlist -server=/.szetowah.org.hk/127.0.0.1#5353 -ipset=/.szetowah.org.hk/gfwlist -server=/.t.co/127.0.0.1#5353 -ipset=/.t.co/gfwlist -server=/.t.neolee.cn/127.0.0.1#5353 -ipset=/.t.neolee.cn/gfwlist -server=/.t.orzdream.com/127.0.0.1#5353 -ipset=/.t.orzdream.com/gfwlist -server=/.t35.com/127.0.0.1#5353 -ipset=/.t35.com/gfwlist -server=/.t66y.com/127.0.0.1#5353 -ipset=/.t66y.com/gfwlist -server=/.t88.ca/127.0.0.1#5353 -ipset=/.t88.ca/gfwlist -server=/.taa-usa.org/127.0.0.1#5353 -ipset=/.taa-usa.org/gfwlist -server=/.tabtter.jp/127.0.0.1#5353 -ipset=/.tabtter.jp/gfwlist -server=/.tacem.org/127.0.0.1#5353 -ipset=/.tacem.org/gfwlist -server=/.tafaward.com/127.0.0.1#5353 -ipset=/.tafaward.com/gfwlist -server=/.tafm.org/127.0.0.1#5353 -ipset=/.tafm.org/gfwlist -server=/.tagwa.org.au/127.0.0.1#5353 -ipset=/.tagwa.org.au/gfwlist -server=/.tagwalk.com/127.0.0.1#5353 -ipset=/.tagwalk.com/gfwlist -server=/.taipeisociety.org/127.0.0.1#5353 -ipset=/.taipeisociety.org/gfwlist -server=/.taiwanbible.com/127.0.0.1#5353 -ipset=/.taiwanbible.com/gfwlist -server=/.taiwandaily.net/127.0.0.1#5353 -ipset=/.taiwandaily.net/gfwlist -server=/.taiwanjustice.com/127.0.0.1#5353 -ipset=/.taiwanjustice.com/gfwlist -server=/.taiwankiss.com/127.0.0.1#5353 -ipset=/.taiwankiss.com/gfwlist -server=/.taiwannation.50webs.com/127.0.0.1#5353 -ipset=/.taiwannation.50webs.com/gfwlist -server=/.taiwannation.com/127.0.0.1#5353 -ipset=/.taiwannation.com/gfwlist -server=/.taiwan-sex.com/127.0.0.1#5353 -ipset=/.taiwan-sex.com/gfwlist -server=/.taiwantp.net/127.0.0.1#5353 -ipset=/.taiwantp.net/gfwlist -server=/.taiwanus.net/127.0.0.1#5353 -ipset=/.taiwanus.net/gfwlist -server=/.taiwanyes.com/127.0.0.1#5353 -ipset=/.taiwanyes.com/gfwlist -server=/.taiwanyes.ning.com/127.0.0.1#5353 -ipset=/.taiwanyes.ning.com/gfwlist -server=/.talk853.com/127.0.0.1#5353 -ipset=/.talk853.com/gfwlist -server=/.talkboxapp.com/127.0.0.1#5353 -ipset=/.talkboxapp.com/gfwlist -server=/.talkonly.net/127.0.0.1#5353 -ipset=/.talkonly.net/gfwlist -server=/.tamiaode.tk/127.0.0.1#5353 -ipset=/.tamiaode.tk/gfwlist -server=/.tanc.org/127.0.0.1#5353 -ipset=/.tanc.org/gfwlist -server=/.tangben.com/127.0.0.1#5353 -ipset=/.tangben.com/gfwlist -server=/.tangren.us/127.0.0.1#5353 -ipset=/.tangren.us/gfwlist -server=/.taolun.info/127.0.0.1#5353 -ipset=/.taolun.info/gfwlist -server=/.tapanwap.com/127.0.0.1#5353 -ipset=/.tapanwap.com/gfwlist -server=/.target.com/127.0.0.1#5353 -ipset=/.target.com/gfwlist -server=/.tarr.uspto.gov/127.0.0.1#5353 -ipset=/.tarr.uspto.gov/gfwlist -server=/.tascn.com.au/127.0.0.1#5353 -ipset=/.tascn.com.au/gfwlist -server=/.taup.net/127.0.0.1#5353 -ipset=/.taup.net/gfwlist -server=/.taweet.com/127.0.0.1#5353 -ipset=/.taweet.com/gfwlist -server=/.tbcollege.org/127.0.0.1#5353 -ipset=/.tbcollege.org/gfwlist -server=/.tbi.org.hk/127.0.0.1#5353 -ipset=/.tbi.org.hk/gfwlist -server=/.tbicn.org/127.0.0.1#5353 -ipset=/.tbicn.org/gfwlist -server=/.tbjyt.org/127.0.0.1#5353 -ipset=/.tbjyt.org/gfwlist -server=/.tbpic.info/127.0.0.1#5353 -ipset=/.tbpic.info/gfwlist -server=/.tbsec.org/127.0.0.1#5353 -ipset=/.tbsec.org/gfwlist -server=/.tbskkinabalu.page.tl/127.0.0.1#5353 -ipset=/.tbskkinabalu.page.tl/gfwlist -server=/.tbsmalaysia.org/127.0.0.1#5353 -ipset=/.tbsmalaysia.org/gfwlist -server=/.tbsn.org/127.0.0.1#5353 -ipset=/.tbsn.org/gfwlist -server=/.tbs-rainbow.org/127.0.0.1#5353 -ipset=/.tbs-rainbow.org/gfwlist -server=/.tbsseattle.org/127.0.0.1#5353 -ipset=/.tbsseattle.org/gfwlist -server=/.tbssqh.org/127.0.0.1#5353 -ipset=/.tbssqh.org/gfwlist -server=/.tbswd.org/127.0.0.1#5353 -ipset=/.tbswd.org/gfwlist -server=/.tbtemple.org.uk/127.0.0.1#5353 -ipset=/.tbtemple.org.uk/gfwlist -server=/.tbthouston.org/127.0.0.1#5353 -ipset=/.tbthouston.org/gfwlist -server=/.tccwonline.org/127.0.0.1#5353 -ipset=/.tccwonline.org/gfwlist -server=/.tcewf.org/127.0.0.1#5353 -ipset=/.tcewf.org/gfwlist -server=/.tchrd.org/127.0.0.1#5353 -ipset=/.tchrd.org/gfwlist -server=/.tech2.in.com/127.0.0.1#5353 -ipset=/.tech2.in.com/gfwlist -server=/.techlifeweb.com/127.0.0.1#5353 -ipset=/.techlifeweb.com/gfwlist -server=/.techparaiso.com/127.0.0.1#5353 -ipset=/.techparaiso.com/gfwlist -server=/.teck.in/127.0.0.1#5353 -ipset=/.teck.in/gfwlist -server=/.teeniefuck.net/127.0.0.1#5353 -ipset=/.teeniefuck.net/gfwlist -server=/.teensinasia.com/127.0.0.1#5353 -ipset=/.teensinasia.com/gfwlist -server=/.telecomspace.com/127.0.0.1#5353 -ipset=/.telecomspace.com/gfwlist -server=/.telegram.org/127.0.0.1#5353 -ipset=/.telegram.org/gfwlist -server=/.telegraph.co.uk/127.0.0.1#5353 -ipset=/.telegraph.co.uk/gfwlist -server=/.tenacy.com/127.0.0.1#5353 -ipset=/.tenacy.com/gfwlist -server=/.tew.org/127.0.0.1#5353 -ipset=/.tew.org/gfwlist -server=/.th.hao123.com/127.0.0.1#5353 -ipset=/.th.hao123.com/gfwlist -server=/.theatrum-belli.com/127.0.0.1#5353 -ipset=/.theatrum-belli.com/gfwlist -server=/.thebcomplex.com/127.0.0.1#5353 -ipset=/.thebcomplex.com/gfwlist -server=/.theblemish.com/127.0.0.1#5353 -ipset=/.theblemish.com/gfwlist -server=/.thebobs.com/127.0.0.1#5353 -ipset=/.thebobs.com/gfwlist -server=/.thebodyshop-usa.com/127.0.0.1#5353 -ipset=/.thebodyshop-usa.com/gfwlist -server=/.thechinabeat.org/127.0.0.1#5353 -ipset=/.thechinabeat.org/gfwlist -server=/.thedalailamamovie.com/127.0.0.1#5353 -ipset=/.thedalailamamovie.com/gfwlist -server=/.thedieline.com/127.0.0.1#5353 -ipset=/.thedieline.com/gfwlist -server=/.thedw.us/127.0.0.1#5353 -ipset=/.thedw.us/gfwlist -server=/.thefrontier.hk/127.0.0.1#5353 -ipset=/.thefrontier.hk/gfwlist -server=/.thegioitinhoc.vn/127.0.0.1#5353 -ipset=/.thegioitinhoc.vn/gfwlist -server=/.thegly.com/127.0.0.1#5353 -ipset=/.thegly.com/gfwlist -server=/.thehots.info/127.0.0.1#5353 -ipset=/.thehots.info/gfwlist -server=/.thehousenews.com/127.0.0.1#5353 -ipset=/.thehousenews.com/gfwlist -server=/.thehun.net/127.0.0.1#5353 -ipset=/.thehun.net/gfwlist -server=/.theinitium.com/127.0.0.1#5353 -ipset=/.theinitium.com/gfwlist -server=/.thelifeyoucansave.com/127.0.0.1#5353 -ipset=/.thelifeyoucansave.com/gfwlist -server=/.thenewslens.com/127.0.0.1#5353 -ipset=/.thenewslens.com/gfwlist -server=/.thepiratebay.org/127.0.0.1#5353 -ipset=/.thepiratebay.org/gfwlist -server=/.thereallove.kr/127.0.0.1#5353 -ipset=/.thereallove.kr/gfwlist -server=/.thesartorialist.com/127.0.0.1#5353 -ipset=/.thesartorialist.com/gfwlist -server=/.thespeeder.com/127.0.0.1#5353 -ipset=/.thespeeder.com/gfwlist -server=/.thestandnews.com/127.0.0.1#5353 -ipset=/.thestandnews.com/gfwlist -server=/.thetibetcenter.org/127.0.0.1#5353 -ipset=/.thetibetcenter.org/gfwlist -server=/.thetibetconnection.org/127.0.0.1#5353 -ipset=/.thetibetconnection.org/gfwlist -server=/.thetibetmuseum.org/127.0.0.1#5353 -ipset=/.thetibetmuseum.org/gfwlist -server=/.thetibetpost.com/127.0.0.1#5353 -ipset=/.thetibetpost.com/gfwlist -server=/.thetrotskymovie.com/127.0.0.1#5353 -ipset=/.thetrotskymovie.com/gfwlist -server=/.thevivekspot.com/127.0.0.1#5353 -ipset=/.thevivekspot.com/gfwlist -server=/.thewgo.org/127.0.0.1#5353 -ipset=/.thewgo.org/gfwlist -server=/.thinkingtaiwan.com/127.0.0.1#5353 -ipset=/.thinkingtaiwan.com/gfwlist -server=/.thinkwithgoogle.com/127.0.0.1#5353 -ipset=/.thinkwithgoogle.com/gfwlist -server=/.thisav.com/127.0.0.1#5353 -ipset=/.thisav.com/gfwlist -server=/.thomasbernhard.org/127.0.0.1#5353 -ipset=/.thomasbernhard.org/gfwlist -server=/.threatchaos.com/127.0.0.1#5353 -ipset=/.threatchaos.com/gfwlist -server=/.throughnightsfire.com/127.0.0.1#5353 -ipset=/.throughnightsfire.com/gfwlist -server=/.thumbzilla.com/127.0.0.1#5353 -ipset=/.thumbzilla.com/gfwlist -server=/.thywords.com/127.0.0.1#5353 -ipset=/.thywords.com/gfwlist -server=/.tiananmenduizhi.com/127.0.0.1#5353 -ipset=/.tiananmenduizhi.com/gfwlist -server=/.tiananmenmother.org/127.0.0.1#5353 -ipset=/.tiananmenmother.org/gfwlist -server=/.tiananmenuniv.com/127.0.0.1#5353 -ipset=/.tiananmenuniv.com/gfwlist -server=/.tiananmenuniv.net/127.0.0.1#5353 -ipset=/.tiananmenuniv.net/gfwlist -server=/.tiandixing.org/127.0.0.1#5353 -ipset=/.tiandixing.org/gfwlist -server=/.tianhuayuan.com/127.0.0.1#5353 -ipset=/.tianhuayuan.com/gfwlist -server=/.tianlawoffice.com/127.0.0.1#5353 -ipset=/.tianlawoffice.com/gfwlist -server=/.tiantibooks.org/127.0.0.1#5353 -ipset=/.tiantibooks.org/gfwlist -server=/.tianzhu.org/127.0.0.1#5353 -ipset=/.tianzhu.org/gfwlist -server=/.tibet.a.se/127.0.0.1#5353 -ipset=/.tibet.a.se/gfwlist -server=/.tibet.at/127.0.0.1#5353 -ipset=/.tibet.at/gfwlist -server=/.tibet.ca/127.0.0.1#5353 -ipset=/.tibet.ca/gfwlist -server=/.tibet.com/127.0.0.1#5353 -ipset=/.tibet.com/gfwlist -server=/.tibet.fr/127.0.0.1#5353 -ipset=/.tibet.fr/gfwlist -server=/.tibet.net/127.0.0.1#5353 -ipset=/.tibet.net/gfwlist -server=/.tibet.nu/127.0.0.1#5353 -ipset=/.tibet.nu/gfwlist -server=/.tibet.org/127.0.0.1#5353 -ipset=/.tibet.org/gfwlist -server=/.tibetaction.net/127.0.0.1#5353 -ipset=/.tibetaction.net/gfwlist -server=/.tibetaid.org/127.0.0.1#5353 -ipset=/.tibetaid.org/gfwlist -server=/.tibetalk.com/127.0.0.1#5353 -ipset=/.tibetalk.com/gfwlist -server=/.tibetan.fr/127.0.0.1#5353 -ipset=/.tibetan.fr/gfwlist -server=/.tibetan-alliance.org/127.0.0.1#5353 -ipset=/.tibetan-alliance.org/gfwlist -server=/.tibetanarts.org/127.0.0.1#5353 -ipset=/.tibetanarts.org/gfwlist -server=/.tibetanculture.org/127.0.0.1#5353 -ipset=/.tibetanculture.org/gfwlist -server=/.tibetanliberation.org/127.0.0.1#5353 -ipset=/.tibetanliberation.org/gfwlist -server=/.tibetanpaintings.com/127.0.0.1#5353 -ipset=/.tibetanpaintings.com/gfwlist -server=/.tibetanphotoproject.com/127.0.0.1#5353 -ipset=/.tibetanphotoproject.com/gfwlist -server=/.tibetanpoliticalreview.org/127.0.0.1#5353 -ipset=/.tibetanpoliticalreview.org/gfwlist -server=/.tibetanreview.net/127.0.0.1#5353 -ipset=/.tibetanreview.net/gfwlist -server=/.tibetanwomen.org/127.0.0.1#5353 -ipset=/.tibetanwomen.org/gfwlist -server=/.tibetanyouthcongress.org/127.0.0.1#5353 -ipset=/.tibetanyouthcongress.org/gfwlist -server=/.tibetcharity.dk/127.0.0.1#5353 -ipset=/.tibetcharity.dk/gfwlist -server=/.tibetcharity.in/127.0.0.1#5353 -ipset=/.tibetcharity.in/gfwlist -server=/.tibetcity.com/127.0.0.1#5353 -ipset=/.tibetcity.com/gfwlist -server=/.tibetcollection.com/127.0.0.1#5353 -ipset=/.tibetcollection.com/gfwlist -server=/.tibetcorps.org/127.0.0.1#5353 -ipset=/.tibetcorps.org/gfwlist -server=/.tibetexpress.net/127.0.0.1#5353 -ipset=/.tibetexpress.net/gfwlist -server=/.tibetfocus.com/127.0.0.1#5353 -ipset=/.tibetfocus.com/gfwlist -server=/.tibet-foundation.org/127.0.0.1#5353 -ipset=/.tibet-foundation.org/gfwlist -server=/.tibetfund.org/127.0.0.1#5353 -ipset=/.tibetfund.org/gfwlist -server=/.tibethouse.jp/127.0.0.1#5353 -ipset=/.tibethouse.jp/gfwlist -server=/.tibethouse.org/127.0.0.1#5353 -ipset=/.tibethouse.org/gfwlist -server=/.tibethouse.us/127.0.0.1#5353 -ipset=/.tibethouse.us/gfwlist -server=/.tibet-house-trust.co.uk/127.0.0.1#5353 -ipset=/.tibet-house-trust.co.uk/gfwlist -server=/.tibet-info.net/127.0.0.1#5353 -ipset=/.tibet-info.net/gfwlist -server=/.tibet-initiative.de/127.0.0.1#5353 -ipset=/.tibet-initiative.de/gfwlist -server=/.tibetjustice.org/127.0.0.1#5353 -ipset=/.tibetjustice.org/gfwlist -server=/.tibet-munich.de/127.0.0.1#5353 -ipset=/.tibet-munich.de/gfwlist -server=/.tibetmuseum.org/127.0.0.1#5353 -ipset=/.tibetmuseum.org/gfwlist -server=/.tibetnetwork.org/127.0.0.1#5353 -ipset=/.tibetnetwork.org/gfwlist -server=/.tibetoffice.ch/127.0.0.1#5353 -ipset=/.tibetoffice.ch/gfwlist -server=/.tibetoffice.com.au/127.0.0.1#5353 -ipset=/.tibetoffice.com.au/gfwlist -server=/.tibetoffice.eu/127.0.0.1#5353 -ipset=/.tibetoffice.eu/gfwlist -server=/.tibetoffice.org/127.0.0.1#5353 -ipset=/.tibetoffice.org/gfwlist -server=/.tibetonline.com/127.0.0.1#5353 -ipset=/.tibetonline.com/gfwlist -server=/.tibetonline.tv/127.0.0.1#5353 -ipset=/.tibetonline.tv/gfwlist -server=/.tibetoralhistory.org/127.0.0.1#5353 -ipset=/.tibetoralhistory.org/gfwlist -server=/.tibetpolicy.eu/127.0.0.1#5353 -ipset=/.tibetpolicy.eu/gfwlist -server=/.tibetrelieffund.co.uk/127.0.0.1#5353 -ipset=/.tibetrelieffund.co.uk/gfwlist -server=/.tibetsites.com/127.0.0.1#5353 -ipset=/.tibetsites.com/gfwlist -server=/.tibetsociety.com/127.0.0.1#5353 -ipset=/.tibetsociety.com/gfwlist -server=/.tibetsun.com/127.0.0.1#5353 -ipset=/.tibetsun.com/gfwlist -server=/.tibettimes.net/127.0.0.1#5353 -ipset=/.tibettimes.net/gfwlist -server=/.tibetwrites.org/127.0.0.1#5353 -ipset=/.tibetwrites.org/gfwlist -server=/.time.com/127.0.0.1#5353 -ipset=/.time.com/gfwlist -server=/.times.hinet.net/127.0.0.1#5353 -ipset=/.times.hinet.net/gfwlist -server=/.timesofindia.indiatimes.com/127.0.0.1#5353 -ipset=/.timesofindia.indiatimes.com/gfwlist -server=/.tiny.cc/127.0.0.1#5353 -ipset=/.tiny.cc/gfwlist -server=/.tinychat.com/127.0.0.1#5353 -ipset=/.tinychat.com/gfwlist -server=/.tinypaste.com/127.0.0.1#5353 -ipset=/.tinypaste.com/gfwlist -server=/.tistory.com/127.0.0.1#5353 -ipset=/.tistory.com/gfwlist -server=/.tkcs-collins.com/127.0.0.1#5353 -ipset=/.tkcs-collins.com/gfwlist -server=/.tkforum.tk/127.0.0.1#5353 -ipset=/.tkforum.tk/gfwlist -server=/.tl.gd/127.0.0.1#5353 -ipset=/.tl.gd/gfwlist -server=/.tma.co.jp/127.0.0.1#5353 -ipset=/.tma.co.jp/gfwlist -server=/.tmagazine.com/127.0.0.1#5353 -ipset=/.tmagazine.com/gfwlist -server=/.tmi.me/127.0.0.1#5353 -ipset=/.tmi.me/gfwlist -server=/.tnaflix.com/127.0.0.1#5353 -ipset=/.tnaflix.com/gfwlist -server=/.tnp.org/127.0.0.1#5353 -ipset=/.tnp.org/gfwlist -server=/.togetter.com/127.0.0.1#5353 -ipset=/.togetter.com/gfwlist -server=/.tokyo-247.com/127.0.0.1#5353 -ipset=/.tokyo-247.com/gfwlist -server=/.tokyocn.com/127.0.0.1#5353 -ipset=/.tokyocn.com/gfwlist -server=/.tokyo-hot.com/127.0.0.1#5353 -ipset=/.tokyo-hot.com/gfwlist -server=/.tomayko.com/127.0.0.1#5353 -ipset=/.tomayko.com/gfwlist -server=/.tongil.or.kr/127.0.0.1#5353 -ipset=/.tongil.or.kr/gfwlist -server=/.tono-oka.jp/127.0.0.1#5353 -ipset=/.tono-oka.jp/gfwlist -server=/.tonyyan.net/127.0.0.1#5353 -ipset=/.tonyyan.net/gfwlist -server=/.toodoc.com/127.0.0.1#5353 -ipset=/.toodoc.com/gfwlist -server=/.toonel.net/127.0.0.1#5353 -ipset=/.toonel.net/gfwlist -server=/.top81.ws/127.0.0.1#5353 -ipset=/.top81.ws/gfwlist -server=/.topnews.in/127.0.0.1#5353 -ipset=/.topnews.in/gfwlist -server=/.to-porno.com/127.0.0.1#5353 -ipset=/.to-porno.com/gfwlist -server=/.topshare.us/127.0.0.1#5353 -ipset=/.topshare.us/gfwlist -server=/.topshareware.com/127.0.0.1#5353 -ipset=/.topshareware.com/gfwlist -server=/.topstyle4.com/127.0.0.1#5353 -ipset=/.topstyle4.com/gfwlist -server=/.topsy.com/127.0.0.1#5353 -ipset=/.topsy.com/gfwlist -server=/.toptip.ca/127.0.0.1#5353 -ipset=/.toptip.ca/gfwlist -server=/.tor.blingblingsquad.net/127.0.0.1#5353 -ipset=/.tor.blingblingsquad.net/gfwlist -server=/.tor.cn.uptodown.com/127.0.0.1#5353 -ipset=/.tor.cn.uptodown.com/gfwlist -server=/.tor.updatestar.com/127.0.0.1#5353 -ipset=/.tor.updatestar.com/gfwlist -server=/.tora.to/127.0.0.1#5353 -ipset=/.tora.to/gfwlist -server=/.torcn.com/127.0.0.1#5353 -ipset=/.torcn.com/gfwlist -server=/.torguard.net/127.0.0.1#5353 -ipset=/.torguard.net/gfwlist -server=/.torproject.org/127.0.0.1#5353 -ipset=/.torproject.org/gfwlist -server=/.torrentcrazy.com/127.0.0.1#5353 -ipset=/.torrentcrazy.com/gfwlist -server=/.torrentkitty.com/127.0.0.1#5353 -ipset=/.torrentkitty.com/gfwlist -server=/.torrentkitty.net/127.0.0.1#5353 -ipset=/.torrentkitty.net/gfwlist -server=/.torrentprivacy.com/127.0.0.1#5353 -ipset=/.torrentprivacy.com/gfwlist -server=/.torrentproject.se/127.0.0.1#5353 -ipset=/.torrentproject.se/gfwlist -server=/.torrenty.org/127.0.0.1#5353 -ipset=/.torrenty.org/gfwlist -server=/.torrentz.eu/127.0.0.1#5353 -ipset=/.torrentz.eu/gfwlist -server=/.torvpn.com/127.0.0.1#5353 -ipset=/.torvpn.com/gfwlist -server=/.tosh.comedycentral.com/127.0.0.1#5353 -ipset=/.tosh.comedycentral.com/gfwlist -server=/.toshiba.com/127.0.0.1#5353 -ipset=/.toshiba.com/gfwlist -server=/.touch99.com/127.0.0.1#5353 -ipset=/.touch99.com/gfwlist -server=/.toutfr.com/127.0.0.1#5353 -ipset=/.toutfr.com/gfwlist -server=/.towngain.com/127.0.0.1#5353 -ipset=/.towngain.com/gfwlist -server=/.tparents.org/127.0.0.1#5353 -ipset=/.tparents.org/gfwlist -server=/.traffichaus.com/127.0.0.1#5353 -ipset=/.traffichaus.com/gfwlist -server=/.trans.wenweipo.com/127.0.0.1#5353 -ipset=/.trans.wenweipo.com/gfwlist -server=/.transgressionism.org/127.0.0.1#5353 -ipset=/.transgressionism.org/gfwlist -server=/.transparency.org/127.0.0.1#5353 -ipset=/.transparency.org/gfwlist -server=/.travelinlocal.com/127.0.0.1#5353 -ipset=/.travelinlocal.com/gfwlist -server=/.trendsmap.com/127.0.0.1#5353 -ipset=/.trendsmap.com/gfwlist -server=/.trialofccp.org/127.0.0.1#5353 -ipset=/.trialofccp.org/gfwlist -server=/.tripod.com/127.0.0.1#5353 -ipset=/.tripod.com/gfwlist -server=/.trouw.nl/127.0.0.1#5353 -ipset=/.trouw.nl/gfwlist -server=/.trt.net.tr/127.0.0.1#5353 -ipset=/.trt.net.tr/gfwlist -server=/.truebuddha-md.org/127.0.0.1#5353 -ipset=/.truebuddha-md.org/gfwlist -server=/.trulyergonomic.com/127.0.0.1#5353 -ipset=/.trulyergonomic.com/gfwlist -server=/.trustedbi.com/127.0.0.1#5353 -ipset=/.trustedbi.com/gfwlist -server=/.truth101.co.tv/127.0.0.1#5353 -ipset=/.truth101.co.tv/gfwlist -server=/.truthcn.com/127.0.0.1#5353 -ipset=/.truthcn.com/gfwlist -server=/.truveo.com/127.0.0.1#5353 -ipset=/.truveo.com/gfwlist -server=/.tsctv.net/127.0.0.1#5353 -ipset=/.tsctv.net/gfwlist -server=/.tsdr.uspto.gov/127.0.0.1#5353 -ipset=/.tsdr.uspto.gov/gfwlist -server=/.tsemtulku.com/127.0.0.1#5353 -ipset=/.tsemtulku.com/gfwlist -server=/.tsquare.tv/127.0.0.1#5353 -ipset=/.tsquare.tv/gfwlist -server=/.tsunagarumon.com/127.0.0.1#5353 -ipset=/.tsunagarumon.com/gfwlist -server=/.tt1069.com/127.0.0.1#5353 -ipset=/.tt1069.com/gfwlist -server=/.tt-rss.org/127.0.0.1#5353 -ipset=/.tt-rss.org/gfwlist -server=/.tttan.com/127.0.0.1#5353 -ipset=/.tttan.com/gfwlist -server=/.tu8964.com/127.0.0.1#5353 -ipset=/.tu8964.com/gfwlist -server=/.tuanzt.com/127.0.0.1#5353 -ipset=/.tuanzt.com/gfwlist -server=/.tube.com/127.0.0.1#5353 -ipset=/.tube.com/gfwlist -server=/.tube8.com/127.0.0.1#5353 -ipset=/.tube8.com/gfwlist -server=/.tube911.com/127.0.0.1#5353 -ipset=/.tube911.com/gfwlist -server=/.tubecao.com/127.0.0.1#5353 -ipset=/.tubecao.com/gfwlist -server=/.tubecup.com/127.0.0.1#5353 -ipset=/.tubecup.com/gfwlist -server=/.tubewolf.com/127.0.0.1#5353 -ipset=/.tubewolf.com/gfwlist -server=/.tui.orzdream.com/127.0.0.1#5353 -ipset=/.tui.orzdream.com/gfwlist -server=/.tuidang.net/127.0.0.1#5353 -ipset=/.tuidang.net/gfwlist -server=/.tuidang.org/127.0.0.1#5353 -ipset=/.tuidang.org/gfwlist -server=/.tuidang.se/127.0.0.1#5353 -ipset=/.tuidang.se/gfwlist -server=/.tuitwit.com/127.0.0.1#5353 -ipset=/.tuitwit.com/gfwlist -server=/.tumblr.com/127.0.0.1#5353 -ipset=/.tumblr.com/gfwlist -server=/.tumutanzi.com/127.0.0.1#5353 -ipset=/.tumutanzi.com/gfwlist -server=/.tunein.com/127.0.0.1#5353 -ipset=/.tunein.com/gfwlist -server=/.tunnelbear.com/127.0.0.1#5353 -ipset=/.tunnelbear.com/gfwlist -server=/.tuo8.cc/127.0.0.1#5353 -ipset=/.tuo8.cc/gfwlist -server=/.tuo8.hk/127.0.0.1#5353 -ipset=/.tuo8.hk/gfwlist -server=/.tuo8.org/127.0.0.1#5353 -ipset=/.tuo8.org/gfwlist -server=/.turbobit.net/127.0.0.1#5353 -ipset=/.turbobit.net/gfwlist -server=/.turbotwitter.com/127.0.0.1#5353 -ipset=/.turbotwitter.com/gfwlist -server=/.turningtorso.com/127.0.0.1#5353 -ipset=/.turningtorso.com/gfwlist -server=/.turntable.fm/127.0.0.1#5353 -ipset=/.turntable.fm/gfwlist -server=/.tuxtraining.com/127.0.0.1#5353 -ipset=/.tuxtraining.com/gfwlist -server=/.tuzaijidi.com/127.0.0.1#5353 -ipset=/.tuzaijidi.com/gfwlist -server=/.tv.com/127.0.0.1#5353 -ipset=/.tv.com/gfwlist -server=/.tvants.com/127.0.0.1#5353 -ipset=/.tvants.com/gfwlist -server=/.tvboxnow.com/127.0.0.1#5353 -ipset=/.tvboxnow.com/gfwlist -server=/.tvider.com/127.0.0.1#5353 -ipset=/.tvider.com/gfwlist -server=/.tv-intros.com/127.0.0.1#5353 -ipset=/.tv-intros.com/gfwlist -server=/.tvunetworks.com/127.0.0.1#5353 -ipset=/.tvunetworks.com/gfwlist -server=/.tw/127.0.0.1#5353 -ipset=/.tw/gfwlist -server=/.tw.gigacircle.com/127.0.0.1#5353 -ipset=/.tw.gigacircle.com/gfwlist -server=/.tw.hao123.com/127.0.0.1#5353 -ipset=/.tw.hao123.com/gfwlist -server=/.tw.jiepang.com/127.0.0.1#5353 -ipset=/.tw.jiepang.com/gfwlist -server=/.tw.knowledge.yahoo.com/127.0.0.1#5353 -ipset=/.tw.knowledge.yahoo.com/gfwlist -server=/.tw.myblog.yahoo.com/127.0.0.1#5353 -ipset=/.tw.myblog.yahoo.com/gfwlist -server=/.tw.news.yahoo.com/127.0.0.1#5353 -ipset=/.tw.news.yahoo.com/gfwlist -server=/.tw.streetvoice.com/127.0.0.1#5353 -ipset=/.tw.streetvoice.com/gfwlist -server=/.tw.tomonews.net/127.0.0.1#5353 -ipset=/.tw.tomonews.net/gfwlist -server=/.tw.voa.mobi/127.0.0.1#5353 -ipset=/.tw.voa.mobi/gfwlist -server=/.tw.yahoo.com/127.0.0.1#5353 -ipset=/.tw.yahoo.com/gfwlist -server=/.tw01.org/127.0.0.1#5353 -ipset=/.tw01.org/gfwlist -server=/.twapperkeeper.com/127.0.0.1#5353 -ipset=/.twapperkeeper.com/gfwlist -server=/.twaud.io/127.0.0.1#5353 -ipset=/.twaud.io/gfwlist -server=/.twbbs.org/127.0.0.1#5353 -ipset=/.twbbs.org/gfwlist -server=/.twblogger.com/127.0.0.1#5353 -ipset=/.twblogger.com/gfwlist -server=/.tweepguide.com/127.0.0.1#5353 -ipset=/.tweepguide.com/gfwlist -server=/.tweeplike.me/127.0.0.1#5353 -ipset=/.tweeplike.me/gfwlist -server=/.tweepmag.com/127.0.0.1#5353 -ipset=/.tweepmag.com/gfwlist -server=/.tweepml.org/127.0.0.1#5353 -ipset=/.tweepml.org/gfwlist -server=/.tweetbackup.com/127.0.0.1#5353 -ipset=/.tweetbackup.com/gfwlist -server=/.tweetboard.com/127.0.0.1#5353 -ipset=/.tweetboard.com/gfwlist -server=/.tweetboner.biz/127.0.0.1#5353 -ipset=/.tweetboner.biz/gfwlist -server=/.tweetdeck.com/127.0.0.1#5353 -ipset=/.tweetdeck.com/gfwlist -server=/.tweetedtimes.com/127.0.0.1#5353 -ipset=/.tweetedtimes.com/gfwlist -server=/.tweetmylast.fm/127.0.0.1#5353 -ipset=/.tweetmylast.fm/gfwlist -server=/.tweetphoto.com/127.0.0.1#5353 -ipset=/.tweetphoto.com/gfwlist -server=/.tweetrans.com/127.0.0.1#5353 -ipset=/.tweetrans.com/gfwlist -server=/.tweetree.com/127.0.0.1#5353 -ipset=/.tweetree.com/gfwlist -server=/.tweets.seraph.me/127.0.0.1#5353 -ipset=/.tweets.seraph.me/gfwlist -server=/.tweettunnel.com/127.0.0.1#5353 -ipset=/.tweettunnel.com/gfwlist -server=/.tweetwally.com/127.0.0.1#5353 -ipset=/.tweetwally.com/gfwlist -server=/.tweetymail.com/127.0.0.1#5353 -ipset=/.tweetymail.com/gfwlist -server=/.twerkingbutt.com/127.0.0.1#5353 -ipset=/.twerkingbutt.com/gfwlist -server=/.twftp.org/127.0.0.1#5353 -ipset=/.twftp.org/gfwlist -server=/.twibase.com/127.0.0.1#5353 -ipset=/.twibase.com/gfwlist -server=/.twibble.de/127.0.0.1#5353 -ipset=/.twibble.de/gfwlist -server=/.twibbon.com/127.0.0.1#5353 -ipset=/.twibbon.com/gfwlist -server=/.twibs.com/127.0.0.1#5353 -ipset=/.twibs.com/gfwlist -server=/.twicsy.com/127.0.0.1#5353 -ipset=/.twicsy.com/gfwlist -server=/.twifan.com/127.0.0.1#5353 -ipset=/.twifan.com/gfwlist -server=/.twiffo.com/127.0.0.1#5353 -ipset=/.twiffo.com/gfwlist -server=/.twiggit.org/127.0.0.1#5353 -ipset=/.twiggit.org/gfwlist -server=/.twilightsex.com/127.0.0.1#5353 -ipset=/.twilightsex.com/gfwlist -server=/.twilog.org/127.0.0.1#5353 -ipset=/.twilog.org/gfwlist -server=/.twimbow.com/127.0.0.1#5353 -ipset=/.twimbow.com/gfwlist -server=/.twimg.com/127.0.0.1#5353 -ipset=/.twimg.com/gfwlist -server=/.twindexx.com/127.0.0.1#5353 -ipset=/.twindexx.com/gfwlist -server=/.twip.me/127.0.0.1#5353 -ipset=/.twip.me/gfwlist -server=/.twipple.jp/127.0.0.1#5353 -ipset=/.twipple.jp/gfwlist -server=/.twistar.cc/127.0.0.1#5353 -ipset=/.twistar.cc/gfwlist -server=/.twister.net.co/127.0.0.1#5353 -ipset=/.twister.net.co/gfwlist -server=/.twisterio.com/127.0.0.1#5353 -ipset=/.twisterio.com/gfwlist -server=/.twisternow.com/127.0.0.1#5353 -ipset=/.twisternow.com/gfwlist -server=/.twistory.net/127.0.0.1#5353 -ipset=/.twistory.net/gfwlist -server=/.twit2d.com/127.0.0.1#5353 -ipset=/.twit2d.com/gfwlist -server=/.twitbrowser.net/127.0.0.1#5353 -ipset=/.twitbrowser.net/gfwlist -server=/.twitcause.com/127.0.0.1#5353 -ipset=/.twitcause.com/gfwlist -server=/.twitgether.com/127.0.0.1#5353 -ipset=/.twitgether.com/gfwlist -server=/.twitgoo.com/127.0.0.1#5353 -ipset=/.twitgoo.com/gfwlist -server=/.twitiq.com/127.0.0.1#5353 -ipset=/.twitiq.com/gfwlist -server=/.twitlonger.com/127.0.0.1#5353 -ipset=/.twitlonger.com/gfwlist -server=/.twitoaster.com/127.0.0.1#5353 -ipset=/.twitoaster.com/gfwlist -server=/.twitonmsn.com/127.0.0.1#5353 -ipset=/.twitonmsn.com/gfwlist -server=/.twitpic.com/127.0.0.1#5353 -ipset=/.twitpic.com/gfwlist -server=/.twitstat.com/127.0.0.1#5353 -ipset=/.twitstat.com/gfwlist -server=/.twittbot.net/127.0.0.1#5353 -ipset=/.twittbot.net/gfwlist -server=/.twitter.com/127.0.0.1#5353 -ipset=/.twitter.com/gfwlist -server=/.twitter.jp/127.0.0.1#5353 -ipset=/.twitter.jp/gfwlist -server=/.twitter4j.org/127.0.0.1#5353 -ipset=/.twitter4j.org/gfwlist -server=/.twittercounter.com/127.0.0.1#5353 -ipset=/.twittercounter.com/gfwlist -server=/.twitterfeed.com/127.0.0.1#5353 -ipset=/.twitterfeed.com/gfwlist -server=/.twittergadget.com/127.0.0.1#5353 -ipset=/.twittergadget.com/gfwlist -server=/.twitterkr.com/127.0.0.1#5353 -ipset=/.twitterkr.com/gfwlist -server=/.twittermail.com/127.0.0.1#5353 -ipset=/.twittermail.com/gfwlist -server=/.twittertim.es/127.0.0.1#5353 -ipset=/.twittertim.es/gfwlist -server=/.twitthat.com/127.0.0.1#5353 -ipset=/.twitthat.com/gfwlist -server=/.twitturk.com/127.0.0.1#5353 -ipset=/.twitturk.com/gfwlist -server=/.twitturly.com/127.0.0.1#5353 -ipset=/.twitturly.com/gfwlist -server=/.twitvid.com/127.0.0.1#5353 -ipset=/.twitvid.com/gfwlist -server=/.twitzap.com/127.0.0.1#5353 -ipset=/.twitzap.com/gfwlist -server=/.twiyia.com/127.0.0.1#5353 -ipset=/.twiyia.com/gfwlist -server=/.tw-npo.org/127.0.0.1#5353 -ipset=/.tw-npo.org/gfwlist -server=/.twstar.net/127.0.0.1#5353 -ipset=/.twstar.net/gfwlist -server=/.twt.fm/127.0.0.1#5353 -ipset=/.twt.fm/gfwlist -server=/.twt.tl/127.0.0.1#5353 -ipset=/.twt.tl/gfwlist -server=/.twtkr.com/127.0.0.1#5353 -ipset=/.twtkr.com/gfwlist -server=/.twtr2src.ogaoga.org/127.0.0.1#5353 -ipset=/.twtr2src.ogaoga.org/gfwlist -server=/.twtrland.com/127.0.0.1#5353 -ipset=/.twtrland.com/gfwlist -server=/.twttr.com/127.0.0.1#5353 -ipset=/.twttr.com/gfwlist -server=/.twurl.nl/127.0.0.1#5353 -ipset=/.twurl.nl/gfwlist -server=/.twyac.org/127.0.0.1#5353 -ipset=/.twyac.org/gfwlist -server=/.tycool.com/127.0.0.1#5353 -ipset=/.tycool.com/gfwlist -server=/.typepad.com/127.0.0.1#5353 -ipset=/.typepad.com/gfwlist -server=/.tzangms.com/127.0.0.1#5353 -ipset=/.tzangms.com/gfwlist -server=/.ub0.cc/127.0.0.1#5353 -ipset=/.ub0.cc/gfwlist -server=/.uberproxy.net/127.0.0.1#5353 -ipset=/.uberproxy.net/gfwlist -server=/.ucdc1998.org/127.0.0.1#5353 -ipset=/.ucdc1998.org/gfwlist -server=/.uchicago.edu/127.0.0.1#5353 -ipset=/.uchicago.edu/gfwlist -server=/.uc-japan.org/127.0.0.1#5353 -ipset=/.uc-japan.org/gfwlist -server=/.uderzo.it/127.0.0.1#5353 -ipset=/.uderzo.it/gfwlist -server=/.udn.com/127.0.0.1#5353 -ipset=/.udn.com/gfwlist -server=/.udnbkk.com/127.0.0.1#5353 -ipset=/.udnbkk.com/gfwlist -server=/.ufreevpn.com/127.0.0.1#5353 -ipset=/.ufreevpn.com/gfwlist -server=/.ugo.com/127.0.0.1#5353 -ipset=/.ugo.com/gfwlist -server=/.uhrp.org/127.0.0.1#5353 -ipset=/.uhrp.org/gfwlist -server=/.uighur.nl/127.0.0.1#5353 -ipset=/.uighur.nl/gfwlist -server=/.uighurbiz.net/127.0.0.1#5353 -ipset=/.uighurbiz.net/gfwlist -server=/.ukcdp.co.uk/127.0.0.1#5353 -ipset=/.ukcdp.co.uk/gfwlist -server=/.ukliferadio.co.uk/127.0.0.1#5353 -ipset=/.ukliferadio.co.uk/gfwlist -server=/.ulike.net/127.0.0.1#5353 -ipset=/.ulike.net/gfwlist -server=/.ultraimg.com/127.0.0.1#5353 -ipset=/.ultraimg.com/gfwlist -server=/.ultravpn.fr/127.0.0.1#5353 -ipset=/.ultravpn.fr/gfwlist -server=/.ultraxs.com/127.0.0.1#5353 -ipset=/.ultraxs.com/gfwlist -server=/.umich.edu/127.0.0.1#5353 -ipset=/.umich.edu/gfwlist -server=/.unblock.cn.com/127.0.0.1#5353 -ipset=/.unblock.cn.com/gfwlist -server=/.unblocksit.es/127.0.0.1#5353 -ipset=/.unblocksit.es/gfwlist -server=/.unblock-us.com/127.0.0.1#5353 -ipset=/.unblock-us.com/gfwlist -server=/.uncyclomedia.org/127.0.0.1#5353 -ipset=/.uncyclomedia.org/gfwlist -server=/.uncyclopedia.hk/127.0.0.1#5353 -ipset=/.uncyclopedia.hk/gfwlist -server=/.unholyknight.com/127.0.0.1#5353 -ipset=/.unholyknight.com/gfwlist -server=/.uni.cc/127.0.0.1#5353 -ipset=/.uni.cc/gfwlist -server=/.unicode.org/127.0.0.1#5353 -ipset=/.unicode.org/gfwlist -server=/.uniteddaily.com.my/127.0.0.1#5353 -ipset=/.uniteddaily.com.my/gfwlist -server=/.unitedsocialpress.com/127.0.0.1#5353 -ipset=/.unitedsocialpress.com/gfwlist -server=/.unix100.com/127.0.0.1#5353 -ipset=/.unix100.com/gfwlist -server=/.unknownspace.org/127.0.0.1#5353 -ipset=/.unknownspace.org/gfwlist -server=/.unpo.org/127.0.0.1#5353 -ipset=/.unpo.org/gfwlist -server=/.untraceable.us/127.0.0.1#5353 -ipset=/.untraceable.us/gfwlist -server=/.uocn.org/127.0.0.1#5353 -ipset=/.uocn.org/gfwlist -server=/.upcoming.yahoo.com/127.0.0.1#5353 -ipset=/.upcoming.yahoo.com/gfwlist -server=/.upholdjustice.org/127.0.0.1#5353 -ipset=/.upholdjustice.org/gfwlist -server=/.upload4u.info/127.0.0.1#5353 -ipset=/.upload4u.info/gfwlist -server=/.uploaded.net/127.0.0.1#5353 -ipset=/.uploaded.net/gfwlist -server=/.uploaded.to/127.0.0.1#5353 -ipset=/.uploaded.to/gfwlist -server=/.uploadstation.com/127.0.0.1#5353 -ipset=/.uploadstation.com/gfwlist -server=/.upornia.com/127.0.0.1#5353 -ipset=/.upornia.com/gfwlist -server=/.upwill.org/127.0.0.1#5353 -ipset=/.upwill.org/gfwlist -server=/.urbansurvival.com/127.0.0.1#5353 -ipset=/.urbansurvival.com/gfwlist -server=/.urlborg.com/127.0.0.1#5353 -ipset=/.urlborg.com/gfwlist -server=/.urlparser.com/127.0.0.1#5353 -ipset=/.urlparser.com/gfwlist -server=/.us.to/127.0.0.1#5353 -ipset=/.us.to/gfwlist -server=/.usacn.com/127.0.0.1#5353 -ipset=/.usacn.com/gfwlist -server=/.usaip.eu/127.0.0.1#5353 -ipset=/.usaip.eu/gfwlist -server=/.userapi.nytlog.com/127.0.0.1#5353 -ipset=/.userapi.nytlog.com/gfwlist -server=/.users.skynet.be/127.0.0.1#5353 -ipset=/.users.skynet.be/gfwlist -server=/.usfk.mil/127.0.0.1#5353 -ipset=/.usfk.mil/gfwlist -server=/.usinfo.state.gov/127.0.0.1#5353 -ipset=/.usinfo.state.gov/gfwlist -server=/.usma.edu/127.0.0.1#5353 -ipset=/.usma.edu/gfwlist -server=/.usmc.mil/127.0.0.1#5353 -ipset=/.usmc.mil/gfwlist -server=/.usmgtcg.ning.com/127.0.0.1#5353 -ipset=/.usmgtcg.ning.com/gfwlist -server=/.usno.navy.mil/127.0.0.1#5353 -ipset=/.usno.navy.mil/gfwlist -server=/.ustream.tv/127.0.0.1#5353 -ipset=/.ustream.tv/gfwlist -server=/.usus.cc/127.0.0.1#5353 -ipset=/.usus.cc/gfwlist -server=/.utopianpal.com/127.0.0.1#5353 -ipset=/.utopianpal.com/gfwlist -server=/.uwants.com/127.0.0.1#5353 -ipset=/.uwants.com/gfwlist -server=/.uwants.net/127.0.0.1#5353 -ipset=/.uwants.net/gfwlist -server=/.uyghur.co.uk/127.0.0.1#5353 -ipset=/.uyghur.co.uk/gfwlist -server=/.uyghuramerican.org/127.0.0.1#5353 -ipset=/.uyghuramerican.org/gfwlist -server=/.uyghurcanadiansociety.org/127.0.0.1#5353 -ipset=/.uyghurcanadiansociety.org/gfwlist -server=/.uyghurcongress.org/127.0.0.1#5353 -ipset=/.uyghurcongress.org/gfwlist -server=/.uyghurensemble.co.uk/127.0.0.1#5353 -ipset=/.uyghurensemble.co.uk/gfwlist -server=/.uyghur-j.org/127.0.0.1#5353 -ipset=/.uyghur-j.org/gfwlist -server=/.uyghurpen.org/127.0.0.1#5353 -ipset=/.uyghurpen.org/gfwlist -server=/.uyghurpress.com/127.0.0.1#5353 -ipset=/.uyghurpress.com/gfwlist -server=/.uygur.fc2web.com/127.0.0.1#5353 -ipset=/.uygur.fc2web.com/gfwlist -server=/.uygur.org/127.0.0.1#5353 -ipset=/.uygur.org/gfwlist -server=/.uymaarip.com/127.0.0.1#5353 -ipset=/.uymaarip.com/gfwlist -server=/.vaayoo.com/127.0.0.1#5353 -ipset=/.vaayoo.com/gfwlist -server=/.van001.com/127.0.0.1#5353 -ipset=/.van001.com/gfwlist -server=/.van698.com/127.0.0.1#5353 -ipset=/.van698.com/gfwlist -server=/.vanemu.cn/127.0.0.1#5353 -ipset=/.vanemu.cn/gfwlist -server=/.vanilla-jp.com/127.0.0.1#5353 -ipset=/.vanilla-jp.com/gfwlist -server=/.vansky.com/127.0.0.1#5353 -ipset=/.vansky.com/gfwlist -server=/.vatn.org/127.0.0.1#5353 -ipset=/.vatn.org/gfwlist -server=/.vcfbuilder.org/127.0.0.1#5353 -ipset=/.vcfbuilder.org/gfwlist -server=/.vcf-online.org/127.0.0.1#5353 -ipset=/.vcf-online.org/gfwlist -server=/.vds.rightster.com/127.0.0.1#5353 -ipset=/.vds.rightster.com/gfwlist -server=/.veempiire.com/127.0.0.1#5353 -ipset=/.veempiire.com/gfwlist -server=/.velkaepocha.sk/127.0.0.1#5353 -ipset=/.velkaepocha.sk/gfwlist -server=/.venbbs.com/127.0.0.1#5353 -ipset=/.venbbs.com/gfwlist -server=/.venchina.com/127.0.0.1#5353 -ipset=/.venchina.com/gfwlist -server=/.ventureswell.com/127.0.0.1#5353 -ipset=/.ventureswell.com/gfwlist -server=/.veoh.com/127.0.0.1#5353 -ipset=/.veoh.com/gfwlist -server=/.vermonttibet.org/127.0.0.1#5353 -ipset=/.vermonttibet.org/gfwlist -server=/.versavpn.com/127.0.0.1#5353 -ipset=/.versavpn.com/gfwlist -server=/.verybs.com/127.0.0.1#5353 -ipset=/.verybs.com/gfwlist -server=/.vevo.com/127.0.0.1#5353 -ipset=/.vevo.com/gfwlist -server=/.viber.com/127.0.0.1#5353 -ipset=/.viber.com/gfwlist -server=/.vica.info/127.0.0.1#5353 -ipset=/.vica.info/gfwlist -server=/.victimsofcommunism.org/127.0.0.1#5353 -ipset=/.victimsofcommunism.org/gfwlist -server=/.vid.me/127.0.0.1#5353 -ipset=/.vid.me/gfwlist -server=/.video.aol.ca/127.0.0.1#5353 -ipset=/.video.aol.ca/gfwlist -server=/.video.aol.co.uk/127.0.0.1#5353 -ipset=/.video.aol.co.uk/gfwlist -server=/.video.aol.com/127.0.0.1#5353 -ipset=/.video.aol.com/gfwlist -server=/.video.ap.org/127.0.0.1#5353 -ipset=/.video.ap.org/gfwlist -server=/.video.fdbox.com/127.0.0.1#5353 -ipset=/.video.fdbox.com/gfwlist -server=/.video.foxbusiness.com/127.0.0.1#5353 -ipset=/.video.foxbusiness.com/gfwlist -server=/.video.yahoo.com/127.0.0.1#5353 -ipset=/.video.yahoo.com/gfwlist -server=/.videobam.com/127.0.0.1#5353 -ipset=/.videobam.com/gfwlist -server=/.videomega.tv/127.0.0.1#5353 -ipset=/.videomega.tv/gfwlist -server=/.videomo.com/127.0.0.1#5353 -ipset=/.videomo.com/gfwlist -server=/.videopediaworld.com/127.0.0.1#5353 -ipset=/.videopediaworld.com/gfwlist -server=/.vidinfo.org/127.0.0.1#5353 -ipset=/.vidinfo.org/gfwlist -server=/.vidoemo.com/127.0.0.1#5353 -ipset=/.vidoemo.com/gfwlist -server=/.vietdaikynguyen.com/127.0.0.1#5353 -ipset=/.vietdaikynguyen.com/gfwlist -server=/.views.fm/127.0.0.1#5353 -ipset=/.views.fm/gfwlist -server=/.vijayatemple.org/127.0.0.1#5353 -ipset=/.vijayatemple.org/gfwlist -server=/.viki.com/127.0.0.1#5353 -ipset=/.viki.com/gfwlist -server=/.vimeo.com/127.0.0.1#5353 -ipset=/.vimeo.com/gfwlist -server=/.vimgolf.com/127.0.0.1#5353 -ipset=/.vimgolf.com/gfwlist -server=/.vimperator.org/127.0.0.1#5353 -ipset=/.vimperator.org/gfwlist -server=/.vincnd.com/127.0.0.1#5353 -ipset=/.vincnd.com/gfwlist -server=/.vinniev.com/127.0.0.1#5353 -ipset=/.vinniev.com/gfwlist -server=/.vital247.org/127.0.0.1#5353 -ipset=/.vital247.org/gfwlist -server=/.vivatube.com/127.0.0.1#5353 -ipset=/.vivatube.com/gfwlist -server=/.vivthomas.com/127.0.0.1#5353 -ipset=/.vivthomas.com/gfwlist -server=/.vjmedia.com.hk/127.0.0.1#5353 -ipset=/.vjmedia.com.hk/gfwlist -server=/.vllcs.org/127.0.0.1#5353 -ipset=/.vllcs.org/gfwlist -server=/.vlog.xuite.net/127.0.0.1#5353 -ipset=/.vlog.xuite.net/gfwlist -server=/.vmixcore.com/127.0.0.1#5353 -ipset=/.vmixcore.com/gfwlist -server=/.vn.hao123.com/127.0.0.1#5353 -ipset=/.vn.hao123.com/gfwlist -server=/.voa-11.akacast.akamaistream.net/127.0.0.1#5353 -ipset=/.voa-11.akacast.akamaistream.net/gfwlist -server=/.voacantonese.com/127.0.0.1#5353 -ipset=/.voacantonese.com/gfwlist -server=/.voachinese.com/127.0.0.1#5353 -ipset=/.voachinese.com/gfwlist -server=/.voachineseblog.com/127.0.0.1#5353 -ipset=/.voachineseblog.com/gfwlist -server=/.voagd.com/127.0.0.1#5353 -ipset=/.voagd.com/gfwlist -server=/.voanews.com/127.0.0.1#5353 -ipset=/.voanews.com/gfwlist -server=/.voatibetan.com/127.0.0.1#5353 -ipset=/.voatibetan.com/gfwlist -server=/.voatibetanenglish.com/127.0.0.1#5353 -ipset=/.voatibetanenglish.com/gfwlist -server=/.vocn.tv/127.0.0.1#5353 -ipset=/.vocn.tv/gfwlist -server=/.vot.org/127.0.0.1#5353 -ipset=/.vot.org/gfwlist -server=/.vpn.cjb.net/127.0.0.1#5353 -ipset=/.vpn.cjb.net/gfwlist -server=/.vpn4all.com/127.0.0.1#5353 -ipset=/.vpn4all.com/gfwlist -server=/.vpnbook.com/127.0.0.1#5353 -ipset=/.vpnbook.com/gfwlist -server=/.vpnfan.com/127.0.0.1#5353 -ipset=/.vpnfan.com/gfwlist -server=/.vpnfire.com/127.0.0.1#5353 -ipset=/.vpnfire.com/gfwlist -server=/.vpnforgame.net/127.0.0.1#5353 -ipset=/.vpnforgame.net/gfwlist -server=/.vpngate.jp/127.0.0.1#5353 -ipset=/.vpngate.jp/gfwlist -server=/.vpngate.net/127.0.0.1#5353 -ipset=/.vpngate.net/gfwlist -server=/.vpnhq.com/127.0.0.1#5353 -ipset=/.vpnhq.com/gfwlist -server=/.vpninja.net/127.0.0.1#5353 -ipset=/.vpninja.net/gfwlist -server=/.vpnmaster.com/127.0.0.1#5353 -ipset=/.vpnmaster.com/gfwlist -server=/.vpnpick.com/127.0.0.1#5353 -ipset=/.vpnpick.com/gfwlist -server=/.vpnpop.com/127.0.0.1#5353 -ipset=/.vpnpop.com/gfwlist -server=/.vpnpronet.com/127.0.0.1#5353 -ipset=/.vpnpronet.com/gfwlist -server=/.vpnreactor.com/127.0.0.1#5353 -ipset=/.vpnreactor.com/gfwlist -server=/.vpnreviewz.com/127.0.0.1#5353 -ipset=/.vpnreviewz.com/gfwlist -server=/.vpntunnel.com/127.0.0.1#5353 -ipset=/.vpntunnel.com/gfwlist -server=/.vpnuk.info/127.0.0.1#5353 -ipset=/.vpnuk.info/gfwlist -server=/.vpnvip.com/127.0.0.1#5353 -ipset=/.vpnvip.com/gfwlist -server=/.vporn.com/127.0.0.1#5353 -ipset=/.vporn.com/gfwlist -server=/.vraiesagesse.net/127.0.0.1#5353 -ipset=/.vraiesagesse.net/gfwlist -server=/.vtunnel.com/127.0.0.1#5353 -ipset=/.vtunnel.com/gfwlist -server=/.w.idaiwan.com/127.0.0.1#5353 -ipset=/.w.idaiwan.com/gfwlist -server=/.w.org/127.0.0.1#5353 -ipset=/.w.org/gfwlist -server=/.w3schools.com/127.0.0.1#5353 -ipset=/.w3schools.com/gfwlist -server=/.waffle1999.com/127.0.0.1#5353 -ipset=/.waffle1999.com/gfwlist -server=/.wahas.com/127.0.0.1#5353 -ipset=/.wahas.com/gfwlist -server=/.waigaobu.com/127.0.0.1#5353 -ipset=/.waigaobu.com/gfwlist -server=/.waikeung.org/127.0.0.1#5353 -ipset=/.waikeung.org/gfwlist -server=/.waiwaier.com/127.0.0.1#5353 -ipset=/.waiwaier.com/gfwlist -server=/.wallornot.org/127.0.0.1#5353 -ipset=/.wallornot.org/gfwlist -server=/.wallpapercasa.com/127.0.0.1#5353 -ipset=/.wallpapercasa.com/gfwlist -server=/.waltermartin.com/127.0.0.1#5353 -ipset=/.waltermartin.com/gfwlist -server=/.waltermartin.org/127.0.0.1#5353 -ipset=/.waltermartin.org/gfwlist -server=/.wanderinghorse.net/127.0.0.1#5353 -ipset=/.wanderinghorse.net/gfwlist -server=/.wangafu.net/127.0.0.1#5353 -ipset=/.wangafu.net/gfwlist -server=/.wangjinbo.org/127.0.0.1#5353 -ipset=/.wangjinbo.org/gfwlist -server=/.wanglixiong.com/127.0.0.1#5353 -ipset=/.wanglixiong.com/gfwlist -server=/.wango.org/127.0.0.1#5353 -ipset=/.wango.org/gfwlist -server=/.wangruoshui.net/127.0.0.1#5353 -ipset=/.wangruoshui.net/gfwlist -server=/.want-daily.com/127.0.0.1#5353 -ipset=/.want-daily.com/gfwlist -server=/.wanz-factory.com/127.0.0.1#5353 -ipset=/.wanz-factory.com/gfwlist -server=/.wapedia.mobi/127.0.0.1#5353 -ipset=/.wapedia.mobi/gfwlist -server=/.waselpro.com/127.0.0.1#5353 -ipset=/.waselpro.com/gfwlist -server=/.washeng.net/127.0.0.1#5353 -ipset=/.washeng.net/gfwlist -server=/.watchmygf.net/127.0.0.1#5353 -ipset=/.watchmygf.net/gfwlist -server=/.wattpad.com/127.0.0.1#5353 -ipset=/.wattpad.com/gfwlist -server=/.wav.tv/127.0.0.1#5353 -ipset=/.wav.tv/gfwlist -server=/.wdf5.com/127.0.0.1#5353 -ipset=/.wdf5.com/gfwlist -server=/.wearn.com/127.0.0.1#5353 -ipset=/.wearn.com/gfwlist -server=/.web2project.net/127.0.0.1#5353 -ipset=/.web2project.net/gfwlist -server=/.webbang.net/127.0.0.1#5353 -ipset=/.webbang.net/gfwlist -server=/.webfee.tk/127.0.0.1#5353 -ipset=/.webfee.tk/gfwlist -server=/.weblagu.com/127.0.0.1#5353 -ipset=/.weblagu.com/gfwlist -server=/.webmproject.org/127.0.0.1#5353 -ipset=/.webmproject.org/gfwlist -server=/.websitepulse.com/127.0.0.1#5353 -ipset=/.websitepulse.com/gfwlist -server=/.webs-tv.net/127.0.0.1#5353 -ipset=/.webs-tv.net/gfwlist -server=/.webworkerdaily.com/127.0.0.1#5353 -ipset=/.webworkerdaily.com/gfwlist -server=/.weekmag.info/127.0.0.1#5353 -ipset=/.weekmag.info/gfwlist -server=/.wefightcensorship.org/127.0.0.1#5353 -ipset=/.wefightcensorship.org/gfwlist -server=/.wefong.com/127.0.0.1#5353 -ipset=/.wefong.com/gfwlist -server=/.weiboleak.com/127.0.0.1#5353 -ipset=/.weiboleak.com/gfwlist -server=/.weijingsheng.org/127.0.0.1#5353 -ipset=/.weijingsheng.org/gfwlist -server=/.weiming.info/127.0.0.1#5353 -ipset=/.weiming.info/gfwlist -server=/.weiquanwang.org/127.0.0.1#5353 -ipset=/.weiquanwang.org/gfwlist -server=/.weisuo.ws/127.0.0.1#5353 -ipset=/.weisuo.ws/gfwlist -server=/.wemigrate.org/127.0.0.1#5353 -ipset=/.wemigrate.org/gfwlist -server=/.wengewang.com/127.0.0.1#5353 -ipset=/.wengewang.com/gfwlist -server=/.wengewang.org/127.0.0.1#5353 -ipset=/.wengewang.org/gfwlist -server=/.wenhui.ch/127.0.0.1#5353 -ipset=/.wenhui.ch/gfwlist -server=/.wenxuecity.com/127.0.0.1#5353 -ipset=/.wenxuecity.com/gfwlist -server=/.wenyunchao.com/127.0.0.1#5353 -ipset=/.wenyunchao.com/gfwlist -server=/.wepn.info/127.0.0.1#5353 -ipset=/.wepn.info/gfwlist -server=/.westca.com/127.0.0.1#5353 -ipset=/.westca.com/gfwlist -server=/.westernshugdensociety.org/127.0.0.1#5353 -ipset=/.westernshugdensociety.org/gfwlist -server=/.westernwolves.com/127.0.0.1#5353 -ipset=/.westernwolves.com/gfwlist -server=/.westkit.net/127.0.0.1#5353 -ipset=/.westkit.net/gfwlist -server=/.westpoint.edu/127.0.0.1#5353 -ipset=/.westpoint.edu/gfwlist -server=/.wetplace.com/127.0.0.1#5353 -ipset=/.wetplace.com/gfwlist -server=/.wetpussygames.com/127.0.0.1#5353 -ipset=/.wetpussygames.com/gfwlist -server=/.wexiaobo.org/127.0.0.1#5353 -ipset=/.wexiaobo.org/gfwlist -server=/.wezhiyong.org/127.0.0.1#5353 -ipset=/.wezhiyong.org/gfwlist -server=/.wezone.net/127.0.0.1#5353 -ipset=/.wezone.net/gfwlist -server=/.wforum.com/127.0.0.1#5353 -ipset=/.wforum.com/gfwlist -server=/.whatblocked.com/127.0.0.1#5353 -ipset=/.whatblocked.com/gfwlist -server=/.wheelockslatin.com/127.0.0.1#5353 -ipset=/.wheelockslatin.com/gfwlist -server=/.whereiswerner.com/127.0.0.1#5353 -ipset=/.whereiswerner.com/gfwlist -server=/.wheretowatch.com/127.0.0.1#5353 -ipset=/.wheretowatch.com/gfwlist -server=/.whippedass.com/127.0.0.1#5353 -ipset=/.whippedass.com/gfwlist -server=/.whitebear.freebearblog.org/127.0.0.1#5353 -ipset=/.whitebear.freebearblog.org/gfwlist -server=/.who.is/127.0.0.1#5353 -ipset=/.who.is/gfwlist -server=/.whylover.com/127.0.0.1#5353 -ipset=/.whylover.com/gfwlist -server=/.whyx.org/127.0.0.1#5353 -ipset=/.whyx.org/gfwlist -server=/.wiki.cnitter.com/127.0.0.1#5353 -ipset=/.wiki.cnitter.com/gfwlist -server=/.wiki.esu.im/127.0.0.1#5353 -ipset=/.wiki.esu.im/gfwlist -server=/.wiki.gamerp.jp/127.0.0.1#5353 -ipset=/.wiki.gamerp.jp/gfwlist -server=/.wiki.jqueryui.com/127.0.0.1#5353 -ipset=/.wiki.jqueryui.com/gfwlist -server=/.wiki.keso.cn/127.0.0.1#5353 -ipset=/.wiki.keso.cn/gfwlist -server=/.wiki.moegirl.org/127.0.0.1#5353 -ipset=/.wiki.moegirl.org/gfwlist -server=/.wiki.oauth.net/127.0.0.1#5353 -ipset=/.wiki.oauth.net/gfwlist -server=/.wiki.phonegap.com/127.0.0.1#5353 -ipset=/.wiki.phonegap.com/gfwlist -server=/.wikileaks.ch/127.0.0.1#5353 -ipset=/.wikileaks.ch/gfwlist -server=/.wikileaks.de/127.0.0.1#5353 -ipset=/.wikileaks.de/gfwlist -server=/.wikileaks.eu/127.0.0.1#5353 -ipset=/.wikileaks.eu/gfwlist -server=/.wikileaks.lu/127.0.0.1#5353 -ipset=/.wikileaks.lu/gfwlist -server=/.wikileaks.org/127.0.0.1#5353 -ipset=/.wikileaks.org/gfwlist -server=/.wikileaks.pl/127.0.0.1#5353 -ipset=/.wikileaks.pl/gfwlist -server=/.wikilivres.info/127.0.0.1#5353 -ipset=/.wikilivres.info/gfwlist -server=/.wikimapia.org/127.0.0.1#5353 -ipset=/.wikimapia.org/gfwlist -server=/.wikiwiki.jp/127.0.0.1#5353 -ipset=/.wikiwiki.jp/gfwlist -server=/.willw.net/127.0.0.1#5353 -ipset=/.willw.net/gfwlist -server=/.windowsphoneme.com/127.0.0.1#5353 -ipset=/.windowsphoneme.com/gfwlist -server=/.wingamestore.com/127.0.0.1#5353 -ipset=/.wingamestore.com/gfwlist -server=/.winwhispers.info/127.0.0.1#5353 -ipset=/.winwhispers.info/gfwlist -server=/.wiredbytes.com/127.0.0.1#5353 -ipset=/.wiredbytes.com/gfwlist -server=/.wiredpen.com/127.0.0.1#5353 -ipset=/.wiredpen.com/gfwlist -server=/.wireshark.org/127.0.0.1#5353 -ipset=/.wireshark.org/gfwlist -server=/.wisdompubs.org/127.0.0.1#5353 -ipset=/.wisdompubs.org/gfwlist -server=/.wisevid.com/127.0.0.1#5353 -ipset=/.wisevid.com/gfwlist -server=/.withgoogle.com/127.0.0.1#5353 -ipset=/.withgoogle.com/gfwlist -server=/.witnessleeteaching.com/127.0.0.1#5353 -ipset=/.witnessleeteaching.com/gfwlist -server=/.witopia.net/127.0.0.1#5353 -ipset=/.witopia.net/gfwlist -server=/.wjbk.org/127.0.0.1#5353 -ipset=/.wjbk.org/gfwlist -server=/.wlcnew.jigsy.com/127.0.0.1#5353 -ipset=/.wlcnew.jigsy.com/gfwlist -server=/.wlx.sowiki.net/127.0.0.1#5353 -ipset=/.wlx.sowiki.net/gfwlist -server=/.wn.com/127.0.0.1#5353 -ipset=/.wn.com/gfwlist -server=/.wnacg.com/127.0.0.1#5353 -ipset=/.wnacg.com/gfwlist -server=/.wo.tc/127.0.0.1#5353 -ipset=/.wo.tc/gfwlist -server=/.woeser.com/127.0.0.1#5353 -ipset=/.woeser.com/gfwlist -server=/.woesermiddle-way.net/127.0.0.1#5353 -ipset=/.woesermiddle-way.net/gfwlist -server=/.wokar.org/127.0.0.1#5353 -ipset=/.wokar.org/gfwlist -server=/.wolfax.com/127.0.0.1#5353 -ipset=/.wolfax.com/gfwlist -server=/.woopie.jp/127.0.0.1#5353 -ipset=/.woopie.jp/gfwlist -server=/.woopie.tv/127.0.0.1#5353 -ipset=/.woopie.tv/gfwlist -server=/.wordpress.com/127.0.0.1#5353 -ipset=/.wordpress.com/gfwlist -server=/.workatruna.com/127.0.0.1#5353 -ipset=/.workatruna.com/gfwlist -server=/.workerdemo.org.hk/127.0.0.1#5353 -ipset=/.workerdemo.org.hk/gfwlist -server=/.workersthebig.net/127.0.0.1#5353 -ipset=/.workersthebig.net/gfwlist -server=/.worldcat.org/127.0.0.1#5353 -ipset=/.worldcat.org/gfwlist -server=/.worldjournal.com/127.0.0.1#5353 -ipset=/.worldjournal.com/gfwlist -server=/.wowlegacy.ml/127.0.0.1#5353 -ipset=/.wowlegacy.ml/gfwlist -server=/.wow-life.net/127.0.0.1#5353 -ipset=/.wow-life.net/gfwlist -server=/.woxinghuiguo.com/127.0.0.1#5353 -ipset=/.woxinghuiguo.com/gfwlist -server=/.wozy.in/127.0.0.1#5353 -ipset=/.wozy.in/gfwlist -server=/.wp.com/127.0.0.1#5353 -ipset=/.wp.com/gfwlist -server=/.wpoforum.com/127.0.0.1#5353 -ipset=/.wpoforum.com/gfwlist -server=/.wqlhw.com/127.0.0.1#5353 -ipset=/.wqlhw.com/gfwlist -server=/.wqyd.org/127.0.0.1#5353 -ipset=/.wqyd.org/gfwlist -server=/.wrchina.org/127.0.0.1#5353 -ipset=/.wrchina.org/gfwlist -server=/.wretch.cc/127.0.0.1#5353 -ipset=/.wretch.cc/gfwlist -server=/.writer.zoho.com/127.0.0.1#5353 -ipset=/.writer.zoho.com/gfwlist -server=/.wsj.com/127.0.0.1#5353 -ipset=/.wsj.com/gfwlist -server=/.wsj.net/127.0.0.1#5353 -ipset=/.wsj.net/gfwlist -server=/.wsjhk.com/127.0.0.1#5353 -ipset=/.wsjhk.com/gfwlist -server=/.wtbn.org/127.0.0.1#5353 -ipset=/.wtbn.org/gfwlist -server=/.wtfpeople.com/127.0.0.1#5353 -ipset=/.wtfpeople.com/gfwlist -server=/.wuala.com/127.0.0.1#5353 -ipset=/.wuala.com/gfwlist -server=/.wuerkaixi.com/127.0.0.1#5353 -ipset=/.wuerkaixi.com/gfwlist -server=/.wufoo.com/127.0.0.1#5353 -ipset=/.wufoo.com/gfwlist -server=/.wuguoguang.com/127.0.0.1#5353 -ipset=/.wuguoguang.com/gfwlist -server=/.wujie.net/127.0.0.1#5353 -ipset=/.wujie.net/gfwlist -server=/.wujieliulan.com/127.0.0.1#5353 -ipset=/.wujieliulan.com/gfwlist -server=/.wukangrui.net/127.0.0.1#5353 -ipset=/.wukangrui.net/gfwlist -server=/.wwitv.com/127.0.0.1#5353 -ipset=/.wwitv.com/gfwlist -server=/.www.ajsands.com/127.0.0.1#5353 -ipset=/.www.ajsands.com/gfwlist -server=/.www.antd.org/127.0.0.1#5353 -ipset=/.www.antd.org/gfwlist -server=/.www.aolnews.com/127.0.0.1#5353 -ipset=/.www.aolnews.com/gfwlist -server=/.www.businessinsider.com.au/127.0.0.1#5353 -ipset=/.www.businessinsider.com.au/gfwlist -server=/.www.citizenlab.org/127.0.0.1#5353 -ipset=/.www.citizenlab.org/gfwlist -server=/.www.cmoinc.org/127.0.0.1#5353 -ipset=/.www.cmoinc.org/gfwlist -server=/.www.cool18.com/127.0.0.1#5353 -ipset=/.www.cool18.com/gfwlist -server=/.www.dfanning.com/127.0.0.1#5353 -ipset=/.www.dfanning.com/gfwlist -server=/.www.dw.com/127.0.0.1#5353 -ipset=/.www.dw.com/gfwlist -server=/.www.dwheeler.com/127.0.0.1#5353 -ipset=/.www.dwheeler.com/gfwlist -server=/.www.eastturkistan.net/127.0.0.1#5353 -ipset=/.www.eastturkistan.net/gfwlist -server=/.www.forum4hk.com/127.0.0.1#5353 -ipset=/.www.forum4hk.com/gfwlist -server=/.www.gmiddle.com/127.0.0.1#5353 -ipset=/.www.gmiddle.com/gfwlist -server=/.www.gmiddle.net/127.0.0.1#5353 -ipset=/.www.gmiddle.net/gfwlist -server=/.www.hustlercash.com/127.0.0.1#5353 -ipset=/.www.hustlercash.com/gfwlist -server=/.www.idlcoyote.com/127.0.0.1#5353 -ipset=/.www.idlcoyote.com/gfwlist -server=/.www.imdb.com/127.0.0.1#5353 -ipset=/.www.imdb.com/gfwlist -server=/.www.kindleren.com/127.0.0.1#5353 -ipset=/.www.kindleren.com/gfwlist -server=/.www.klip.me/127.0.0.1#5353 -ipset=/.www.klip.me/gfwlist -server=/.www.konachan.com/127.0.0.1#5353 -ipset=/.www.konachan.com/gfwlist -server=/.www.lamenhu.com/127.0.0.1#5353 -ipset=/.www.lamenhu.com/gfwlist -server=/.www.lib.virginia.edu/127.0.0.1#5353 -ipset=/.www.lib.virginia.edu/gfwlist -server=/.www.linksalpha.com/127.0.0.1#5353 -ipset=/.www.linksalpha.com/gfwlist -server=/.www.macrovpn.com/127.0.0.1#5353 -ipset=/.www.macrovpn.com/gfwlist -server=/.www.metro.taipei/127.0.0.1#5353 -ipset=/.www.metro.taipei/gfwlist -server=/.www.monlamit.org/127.0.0.1#5353 -ipset=/.www.monlamit.org/gfwlist -server=/.www.moztw.org/127.0.0.1#5353 -ipset=/.www.moztw.org/gfwlist -server=/.www.m-sport.co.uk/127.0.0.1#5353 -ipset=/.www.m-sport.co.uk/gfwlist -server=/.www.mycould.com/127.0.0.1#5353 -ipset=/.www.mycould.com/gfwlist -server=/.www.nbc.com/127.0.0.1#5353 -ipset=/.www.nbc.com/gfwlist -server=/.www.onion.city/127.0.0.1#5353 -ipset=/.www.onion.city/gfwlist -server=/.www.orchidbbs.com/127.0.0.1#5353 -ipset=/.www.orchidbbs.com/gfwlist -server=/.www.osmdroid.net/127.0.0.1#5353 -ipset=/.www.osmdroid.net/gfwlist -server=/.www.owind.com/127.0.0.1#5353 -ipset=/.www.owind.com/gfwlist -server=/.www.oxid.it/127.0.0.1#5353 -ipset=/.www.oxid.it/gfwlist -server=/.www.parkansky.com/127.0.0.1#5353 -ipset=/.www.parkansky.com/gfwlist -server=/.www.powerpointninja.com/127.0.0.1#5353 -ipset=/.www.powerpointninja.com/gfwlist -server=/.www.s4miniarchive.com/127.0.0.1#5353 -ipset=/.www.s4miniarchive.com/gfwlist -server=/.www.sciencemag.org/127.0.0.1#5353 -ipset=/.www.sciencemag.org/gfwlist -server=/.www.skype.com/127.0.0.1#5353 -ipset=/.www.skype.com/gfwlist -server=/.www.somee.com/127.0.0.1#5353 -ipset=/.www.somee.com/gfwlist -server=/.www.stackfile.com/127.0.0.1#5353 -ipset=/.www.stackfile.com/gfwlist -server=/.www.supertweet.net/127.0.0.1#5353 -ipset=/.www.supertweet.net/gfwlist -server=/.www.tablesgenerator.com/127.0.0.1#5353 -ipset=/.www.tablesgenerator.com/gfwlist -server=/.www.taiwanonline.cc/127.0.0.1#5353 -ipset=/.www.taiwanonline.cc/gfwlist -server=/.www.thechinastory.org/127.0.0.1#5353 -ipset=/.www.thechinastory.org/gfwlist -server=/.www.tsuru-bird.net/127.0.0.1#5353 -ipset=/.www.tsuru-bird.net/gfwlist -server=/.www.tv.com/127.0.0.1#5353 -ipset=/.www.tv.com/gfwlist -server=/.www.urbanoutfitters.com/127.0.0.1#5353 -ipset=/.www.urbanoutfitters.com/gfwlist -server=/.www.vegorpedersen.com/127.0.0.1#5353 -ipset=/.www.vegorpedersen.com/gfwlist -server=/.www.voy.com/127.0.0.1#5353 -ipset=/.www.voy.com/gfwlist -server=/.www.vpncup.com/127.0.0.1#5353 -ipset=/.www.vpncup.com/gfwlist -server=/.www.wangruowang.org/127.0.0.1#5353 -ipset=/.www.wangruowang.org/gfwlist -server=/.www.wan-press.org/127.0.0.1#5353 -ipset=/.www.wan-press.org/gfwlist -server=/.www.websnapr.com/127.0.0.1#5353 -ipset=/.www.websnapr.com/gfwlist -server=/.www.wet123.com/127.0.0.1#5353 -ipset=/.www.wet123.com/gfwlist -server=/.www.zaurus.org.uk/127.0.0.1#5353 -ipset=/.www.zaurus.org.uk/gfwlist -server=/.www.zensur.freerk.com/127.0.0.1#5353 -ipset=/.www.zensur.freerk.com/gfwlist -server=/.www.zfreet.com/127.0.0.1#5353 -ipset=/.www.zfreet.com/gfwlist -server=/.www1.american.edu/127.0.0.1#5353 -ipset=/.www1.american.edu/gfwlist -server=/.www2.ohchr.org/127.0.0.1#5353 -ipset=/.www2.ohchr.org/gfwlist -server=/.www2.rocketbbs.com/127.0.0.1#5353 -ipset=/.www2.rocketbbs.com/gfwlist -server=/.wzyboy.im/127.0.0.1#5353 -ipset=/.wzyboy.im/gfwlist -server=/.x.xcity.jp/127.0.0.1#5353 -ipset=/.x.xcity.jp/gfwlist -server=/.x1949x.com/127.0.0.1#5353 -ipset=/.x1949x.com/gfwlist -server=/.x365x.com/127.0.0.1#5353 -ipset=/.x365x.com/gfwlist -server=/.xa.yimg.com/127.0.0.1#5353 -ipset=/.xa.yimg.com/gfwlist -server=/.xanga.com/127.0.0.1#5353 -ipset=/.xanga.com/gfwlist -server=/.x-art.com/127.0.0.1#5353 -ipset=/.x-art.com/gfwlist -server=/.xbabe.com/127.0.0.1#5353 -ipset=/.xbabe.com/gfwlist -server=/.x-berry.com/127.0.0.1#5353 -ipset=/.x-berry.com/gfwlist -server=/.xbookcn.com/127.0.0.1#5353 -ipset=/.xbookcn.com/gfwlist -server=/.xcafe.in/127.0.0.1#5353 -ipset=/.xcafe.in/gfwlist -server=/.xcritic.com/127.0.0.1#5353 -ipset=/.xcritic.com/gfwlist -server=/.xda-developers.com/127.0.0.1#5353 -ipset=/.xda-developers.com/gfwlist -server=/.xfm.pp.ru/127.0.0.1#5353 -ipset=/.xfm.pp.ru/gfwlist -server=/.xgmyd.com/127.0.0.1#5353 -ipset=/.xgmyd.com/gfwlist -server=/.xh4n.cn/127.0.0.1#5353 -ipset=/.xh4n.cn/gfwlist -server=/.xhamster.com/127.0.0.1#5353 -ipset=/.xhamster.com/gfwlist -server=/.xianqiao.net/127.0.0.1#5353 -ipset=/.xianqiao.net/gfwlist -server=/.xiaochuncnjp.com/127.0.0.1#5353 -ipset=/.xiaochuncnjp.com/gfwlist -server=/.xiaohexie.com/127.0.0.1#5353 -ipset=/.xiaohexie.com/gfwlist -server=/.xiaolan.me/127.0.0.1#5353 -ipset=/.xiaolan.me/gfwlist -server=/.xiaoma.org/127.0.0.1#5353 -ipset=/.xiaoma.org/gfwlist -server=/.xiezhua.com/127.0.0.1#5353 -ipset=/.xiezhua.com/gfwlist -server=/.xing.com/127.0.0.1#5353 -ipset=/.xing.com/gfwlist -server=/.xinhuanet.org/127.0.0.1#5353 -ipset=/.xinhuanet.org/gfwlist -server=/.xinmiao.com.hk/127.0.0.1#5353 -ipset=/.xinmiao.com.hk/gfwlist -server=/.xinqimeng.over-blog.com/127.0.0.1#5353 -ipset=/.xinqimeng.over-blog.com/gfwlist -server=/.xinsheng.net/127.0.0.1#5353 -ipset=/.xinsheng.net/gfwlist -server=/.xinshijue.com/127.0.0.1#5353 -ipset=/.xinshijue.com/gfwlist -server=/.xinyubbs.net/127.0.0.1#5353 -ipset=/.xinyubbs.net/gfwlist -server=/.xiongpian.com/127.0.0.1#5353 -ipset=/.xiongpian.com/gfwlist -server=/.xiuren.org/127.0.0.1#5353 -ipset=/.xiuren.org/gfwlist -server=/.xizang-zhiye.org/127.0.0.1#5353 -ipset=/.xizang-zhiye.org/gfwlist -server=/.xjp.cc/127.0.0.1#5353 -ipset=/.xjp.cc/gfwlist -server=/.xlfmtalk.com/127.0.0.1#5353 -ipset=/.xlfmtalk.com/gfwlist -server=/.xlfmwz.info/127.0.0.1#5353 -ipset=/.xlfmwz.info/gfwlist -server=/.xml-training-guide.com/127.0.0.1#5353 -ipset=/.xml-training-guide.com/gfwlist -server=/.xmovies.com/127.0.0.1#5353 -ipset=/.xmovies.com/gfwlist -server=/.xn--4gq171p.com/127.0.0.1#5353 -ipset=/.xn--4gq171p.com/gfwlist -server=/.xn--p8j9a0d9c9a.xn--q9jyb4c/127.0.0.1#5353 -ipset=/.xn--p8j9a0d9c9a.xn--q9jyb4c/gfwlist -server=/.xnxx.com/127.0.0.1#5353 -ipset=/.xnxx.com/gfwlist -server=/.xpdo.net/127.0.0.1#5353 -ipset=/.xpdo.net/gfwlist -server=/.xpud.org/127.0.0.1#5353 -ipset=/.xpud.org/gfwlist -server=/.xskywalker.com/127.0.0.1#5353 -ipset=/.xskywalker.com/gfwlist -server=/.xtube.com/127.0.0.1#5353 -ipset=/.xtube.com/gfwlist -server=/.xuchao.net/127.0.0.1#5353 -ipset=/.xuchao.net/gfwlist -server=/.xuchao.org/127.0.0.1#5353 -ipset=/.xuchao.org/gfwlist -server=/.xuzhiyong.net/127.0.0.1#5353 -ipset=/.xuzhiyong.net/gfwlist -server=/.xvideos.com/127.0.0.1#5353 -ipset=/.xvideos.com/gfwlist -server=/.xvideos.es/127.0.0.1#5353 -ipset=/.xvideos.es/gfwlist -server=/.x-wall.org/127.0.0.1#5353 -ipset=/.x-wall.org/gfwlist -server=/.xxbbx.com/127.0.0.1#5353 -ipset=/.xxbbx.com/gfwlist -server=/.xxlmovies.com/127.0.0.1#5353 -ipset=/.xxlmovies.com/gfwlist -server=/.xxxx.com.au/127.0.0.1#5353 -ipset=/.xxxx.com.au/gfwlist -server=/.xys.dxiong.com/127.0.0.1#5353 -ipset=/.xys.dxiong.com/gfwlist -server=/.xys.org/127.0.0.1#5353 -ipset=/.xys.org/gfwlist -server=/.xysblogs.org/127.0.0.1#5353 -ipset=/.xysblogs.org/gfwlist -server=/.xyy69.com/127.0.0.1#5353 -ipset=/.xyy69.com/gfwlist -server=/.xyy69.info/127.0.0.1#5353 -ipset=/.xyy69.info/gfwlist -server=/.yahoo.com.hk/127.0.0.1#5353 -ipset=/.yahoo.com.hk/gfwlist -server=/.yakbutterblues.com/127.0.0.1#5353 -ipset=/.yakbutterblues.com/gfwlist -server=/.yam.com/127.0.0.1#5353 -ipset=/.yam.com/gfwlist -server=/.yangjianli.com/127.0.0.1#5353 -ipset=/.yangjianli.com/gfwlist -server=/.yasni.co.uk/127.0.0.1#5353 -ipset=/.yasni.co.uk/gfwlist -server=/.yasukuni.or.jp/127.0.0.1#5353 -ipset=/.yasukuni.or.jp/gfwlist -server=/.ydy.com/127.0.0.1#5353 -ipset=/.ydy.com/gfwlist -server=/.yeahteentube.com/127.0.0.1#5353 -ipset=/.yeahteentube.com/gfwlist -server=/.yecl.net/127.0.0.1#5353 -ipset=/.yecl.net/gfwlist -server=/.yeelou.com/127.0.0.1#5353 -ipset=/.yeelou.com/gfwlist -server=/.yeeyi.com/127.0.0.1#5353 -ipset=/.yeeyi.com/gfwlist -server=/.yegle.net/127.0.0.1#5353 -ipset=/.yegle.net/gfwlist -server=/.yesasia.com/127.0.0.1#5353 -ipset=/.yesasia.com/gfwlist -server=/.yesasia.com.hk/127.0.0.1#5353 -ipset=/.yesasia.com.hk/gfwlist -server=/.yes-news.com/127.0.0.1#5353 -ipset=/.yes-news.com/gfwlist -server=/.yhcw.net/127.0.0.1#5353 -ipset=/.yhcw.net/gfwlist -server=/.yi.org/127.0.0.1#5353 -ipset=/.yi.org/gfwlist -server=/.yibada.com/127.0.0.1#5353 -ipset=/.yibada.com/gfwlist -server=/.yibaochina.com/127.0.0.1#5353 -ipset=/.yibaochina.com/gfwlist -server=/.yidio.com/127.0.0.1#5353 -ipset=/.yidio.com/gfwlist -server=/.yilubbs.com/127.0.0.1#5353 -ipset=/.yilubbs.com/gfwlist -server=/.yinlei.org/127.0.0.1#5353 -ipset=/.yinlei.org/gfwlist -server=/.yipub.com/127.0.0.1#5353 -ipset=/.yipub.com/gfwlist -server=/.yobt.com/127.0.0.1#5353 -ipset=/.yobt.com/gfwlist -server=/.yogichen.org/127.0.0.1#5353 -ipset=/.yogichen.org/gfwlist -server=/.yong.hu/127.0.0.1#5353 -ipset=/.yong.hu/gfwlist -server=/.yorkbbs.ca/127.0.0.1#5353 -ipset=/.yorkbbs.ca/gfwlist -server=/.youjizz.com/127.0.0.1#5353 -ipset=/.youjizz.com/gfwlist -server=/.youmaker.com/127.0.0.1#5353 -ipset=/.youmaker.com/gfwlist -server=/.youpai.org/127.0.0.1#5353 -ipset=/.youpai.org/gfwlist -server=/.youporn.com/127.0.0.1#5353 -ipset=/.youporn.com/gfwlist -server=/.youporngay.com/127.0.0.1#5353 -ipset=/.youporngay.com/gfwlist -server=/.yourepeat.com/127.0.0.1#5353 -ipset=/.yourepeat.com/gfwlist -server=/.your-freedom.net/127.0.0.1#5353 -ipset=/.your-freedom.net/gfwlist -server=/.yousendit.com/127.0.0.1#5353 -ipset=/.yousendit.com/gfwlist -server=/.youthnetradio.org/127.0.0.1#5353 -ipset=/.youthnetradio.org/gfwlist -server=/.youtu.be/127.0.0.1#5353 -ipset=/.youtu.be/gfwlist -server=/.youtube.com/127.0.0.1#5353 -ipset=/.youtube.com/gfwlist -server=/.youtubecn.com/127.0.0.1#5353 -ipset=/.youtubecn.com/gfwlist -server=/.youtube-nocookie.com/127.0.0.1#5353 -ipset=/.youtube-nocookie.com/gfwlist -server=/.youversion.com/127.0.0.1#5353 -ipset=/.youversion.com/gfwlist -server=/.youxu.info/127.0.0.1#5353 -ipset=/.youxu.info/gfwlist -server=/.ytht.net/127.0.0.1#5353 -ipset=/.ytht.net/gfwlist -server=/.ytimg.com/127.0.0.1#5353 -ipset=/.ytimg.com/gfwlist -server=/.yuanming.net/127.0.0.1#5353 -ipset=/.yuanming.net/gfwlist -server=/.yuanzhengtang.org/127.0.0.1#5353 -ipset=/.yuanzhengtang.org/gfwlist -server=/.yuming.flnet.org/127.0.0.1#5353 -ipset=/.yuming.flnet.org/gfwlist -server=/.yunchao.net/127.0.0.1#5353 -ipset=/.yunchao.net/gfwlist -server=/.yvesgeleyn.com/127.0.0.1#5353 -ipset=/.yvesgeleyn.com/gfwlist -server=/.yx51.net/127.0.0.1#5353 -ipset=/.yx51.net/gfwlist -server=/.yyii.org/127.0.0.1#5353 -ipset=/.yyii.org/gfwlist -server=/.yymaya.com/127.0.0.1#5353 -ipset=/.yymaya.com/gfwlist -server=/.yzzk.com/127.0.0.1#5353 -ipset=/.yzzk.com/gfwlist -server=/.zacebook.com/127.0.0.1#5353 -ipset=/.zacebook.com/gfwlist -server=/.zalmos.com/127.0.0.1#5353 -ipset=/.zalmos.com/gfwlist -server=/.zannel.com/127.0.0.1#5353 -ipset=/.zannel.com/gfwlist -server=/.zaobao.com/127.0.0.1#5353 -ipset=/.zaobao.com/gfwlist -server=/.zaobao.com.sg/127.0.0.1#5353 -ipset=/.zaobao.com.sg/gfwlist -server=/.zaozon.com/127.0.0.1#5353 -ipset=/.zaozon.com/gfwlist -server=/.zarias.com/127.0.0.1#5353 -ipset=/.zarias.com/gfwlist -server=/.zattoo.com/127.0.0.1#5353 -ipset=/.zattoo.com/gfwlist -server=/.zengjinyan.org/127.0.0.1#5353 -ipset=/.zengjinyan.org/gfwlist -server=/.zgzcjj.net/127.0.0.1#5353 -ipset=/.zgzcjj.net/gfwlist -server=/.zh.m.wikipedia.org/127.0.0.1#5353 -ipset=/.zh.m.wikipedia.org/gfwlist -server=/.zh.pokerstrategy.com/127.0.0.1#5353 -ipset=/.zh.pokerstrategy.com/gfwlist -server=/.zh.uncyclopedia.wikia.com/127.0.0.1#5353 -ipset=/.zh.uncyclopedia.wikia.com/gfwlist -server=/.zh.wikibooks.org/127.0.0.1#5353 -ipset=/.zh.wikibooks.org/gfwlist -server=/.zh.wikinews.org/127.0.0.1#5353 -ipset=/.zh.wikinews.org/gfwlist -server=/.zh.wikipedia.org/127.0.0.1#5353 -ipset=/.zh.wikipedia.org/gfwlist -server=/.zh.wikisource.org/127.0.0.1#5353 -ipset=/.zh.wikisource.org/gfwlist -server=/.zh.wikivoyage.org/127.0.0.1#5353 -ipset=/.zh.wikivoyage.org/gfwlist -server=/.zh.wiktionary.org/127.0.0.1#5353 -ipset=/.zh.wiktionary.org/gfwlist -server=/.zhanbin.net/127.0.0.1#5353 -ipset=/.zhanbin.net/gfwlist -server=/.zhangboli.net/127.0.0.1#5353 -ipset=/.zhangboli.net/gfwlist -server=/.zhangtianliang.com/127.0.0.1#5353 -ipset=/.zhangtianliang.com/gfwlist -server=/.zhao.jinhai.de/127.0.0.1#5353 -ipset=/.zhao.jinhai.de/gfwlist -server=/.zhenghui.org/127.0.0.1#5353 -ipset=/.zhenghui.org/gfwlist -server=/.zhengwunet.org/127.0.0.1#5353 -ipset=/.zhengwunet.org/gfwlist -server=/.zhenlibu.info/127.0.0.1#5353 -ipset=/.zhenlibu.info/gfwlist -server=/.zhenxiang.biz/127.0.0.1#5353 -ipset=/.zhenxiang.biz/gfwlist -server=/.zhinengluyou.com/127.0.0.1#5353 -ipset=/.zhinengluyou.com/gfwlist -server=/.zhongguo.ca/127.0.0.1#5353 -ipset=/.zhongguo.ca/gfwlist -server=/.zhongguorenquan.org/127.0.0.1#5353 -ipset=/.zhongguorenquan.org/gfwlist -server=/.zhongguotese.net/127.0.0.1#5353 -ipset=/.zhongguotese.net/gfwlist -server=/.zhongmeng.org/127.0.0.1#5353 -ipset=/.zhongmeng.org/gfwlist -server=/.zhreader.com/127.0.0.1#5353 -ipset=/.zhreader.com/gfwlist -server=/.zhuanxing.cn/127.0.0.1#5353 -ipset=/.zhuanxing.cn/gfwlist -server=/.zhuatieba.com/127.0.0.1#5353 -ipset=/.zhuatieba.com/gfwlist -server=/.zhuichaguoji.org/127.0.0.1#5353 -ipset=/.zhuichaguoji.org/gfwlist -server=/.ziddu.com/127.0.0.1#5353 -ipset=/.ziddu.com/gfwlist -server=/.zillionk.com/127.0.0.1#5353 -ipset=/.zillionk.com/gfwlist -server=/.zinio.com/127.0.0.1#5353 -ipset=/.zinio.com/gfwlist -server=/.ziplib.com/127.0.0.1#5353 -ipset=/.ziplib.com/gfwlist -server=/.zkaip.com/127.0.0.1#5353 -ipset=/.zkaip.com/gfwlist -server=/.zlib.net/127.0.0.1#5353 -ipset=/.zlib.net/gfwlist -server=/.zmw.cn/127.0.0.1#5353 -ipset=/.zmw.cn/gfwlist -server=/.zomobo.net/127.0.0.1#5353 -ipset=/.zomobo.net/gfwlist -server=/.zonaeuropa.com/127.0.0.1#5353 -ipset=/.zonaeuropa.com/gfwlist -server=/.zootool.com/127.0.0.1#5353 -ipset=/.zootool.com/gfwlist -server=/.zoozle.net/127.0.0.1#5353 -ipset=/.zoozle.net/gfwlist -server=/.zozotown.com/127.0.0.1#5353 -ipset=/.zozotown.com/gfwlist -server=/.zshare.net/127.0.0.1#5353 -ipset=/.zshare.net/gfwlist -server=/.zsrhao.com/127.0.0.1#5353 -ipset=/.zsrhao.com/gfwlist -server=/.zuo.la/127.0.0.1#5353 -ipset=/.zuo.la/gfwlist -server=/.zuobiao.me/127.0.0.1#5353 -ipset=/.zuobiao.me/gfwlist -server=/.zuola.com/127.0.0.1#5353 -ipset=/.zuola.com/gfwlist -server=/.zvereff.com/127.0.0.1#5353 -ipset=/.zvereff.com/gfwlist -server=/.zyzc9.com/127.0.0.1#5353 -ipset=/.zyzc9.com/gfwlist diff --git a/package/lean/shadowsocksR-libev-full/files/gfwlistr.htm b/package/lean/shadowsocksR-libev-full/files/gfwlistr.htm deleted file mode 100644 index 1fa47faec..000000000 --- a/package/lean/shadowsocksR-libev-full/files/gfwlistr.htm +++ /dev/null @@ -1,7 +0,0 @@ -<%+header%> -

    <%:ShadowsocksR - GFW List%>

    -
    ShadowsocksR内置的 GFW 名单
    -
    - -
    -<%+footer%> diff --git a/package/lean/shadowsocksR-libev-full/files/root b/package/lean/shadowsocksR-libev-full/files/root deleted file mode 100644 index 9e3dfee9b..000000000 --- a/package/lean/shadowsocksR-libev-full/files/root +++ /dev/null @@ -1,3 +0,0 @@ -*/10 * * * * /root/ssr-watchdog >> /var/log/shadowsocksr_watchdog.log 2>&1 -0 1 * * 0 echo "" > /var/log/shadowsocksr_watchdog.log -#0 1 * * 0 sleep 70 && touch /etc/banner && reboot diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr b/package/lean/shadowsocksR-libev-full/files/shadowsocksr deleted file mode 100644 index f82e04b7a..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=95 - -SERVICE_USE_PID=1 -SERVICE_WRITE_PID=1 -SERVICE_DAEMONIZE=1 - -CONFIG=/etc/shadowsocksr.json - -start() { - service_start /usr/bin/ssr-local -c $CONFIG -l 8888 - #service_start /usr/bin/ssr-redir -c $CONFIG - #service_start /usr/bin/ssr-tunnel -c $CONFIG -l 5353 -L 8.8.8.8:53 -U -} - -stop() { - service_stop /usr/bin/ssr-local - #service_stop /usr/bin/ssr-redir - #service_stop /usr/bin/ssr-tunnel -} diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist deleted file mode 100644 index e2dd33187..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=95 - -SERVICE_USE_PID=1 -SERVICE_WRITE_PID=1 -SERVICE_DAEMONIZE=1 - -CONFIG=/etc/shadowsocksr.json -if [ ! -f $CONFIG ]; then - ln -sf /etc/shadowsocksr.json.main $CONFIG -fi - -start() { - service_start /usr/bin/ssr-redir -c $CONFIG -b 0.0.0.0 -l 8989 - sleep 1 - service_start /usr/bin/ssr-tunnel -c $CONFIG -b 0.0.0.0 -l 5353 -L 8.8.8.8:53 -U - sleep 1 -} - -stop() { - service_stop /usr/bin/ssr-redir - sleep 1 - service_stop /usr/bin/ssr-tunnel - sleep 1 -} diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist.json b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist.json deleted file mode 100644 index c5e09e766..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-gfwlist.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "server": "serv-ro.ddns.info", - "server_port": 23143, - "password": "test.TEST", - "method": "aes-256-cfb", - "protocol": "origin", - "obfs": "plain", - "timeout": 120, - "supported_protocol": "origin, verify_simple, auth_simple, auth_sha1, auth_sha1_v2, auth_sha1_v4", - "supported_obfs": "plain, http_simple, tls1.0_session_auth, tls1.2_ticket_auth" -} diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-backup.lua b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-backup.lua deleted file mode 100644 index 18e852cdd..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-backup.lua +++ /dev/null @@ -1,23 +0,0 @@ -local fs = require "nixio.fs" -local conffile = "/etc/shadowsocksr.json.backup" - -f = SimpleForm("general", translate("ShadowsocksR - 备份服务器设置"), translate("ShadowsocksR 备份服务器设置地址,当主服务器不可时将自动连接到此服务器。 主服务器可用时将自动切换回主服务器")) - -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 20 -function t.cfgvalue() - return fs.readfile(conffile) or "" -end - -function f.handle(self, state, data) - if state == FORM_VALID then - if data.conf then - fs.writefile(conffile, data.conf:gsub("\r\n", "\n")) - luci.sys.call("/etc/init.d/shadowsocksr restart") - end - end - return true -end - -return f diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-custom.lua b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-custom.lua deleted file mode 100644 index 4a20b6668..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-custom.lua +++ /dev/null @@ -1,23 +0,0 @@ -local fs = require "nixio.fs" -local conffile = "/etc/dnsmasq.d/custom_list.conf" - -f = SimpleForm("custom", translate("ShadowsocksR - 自定义列表"), translate("ShadowsocksR 自动定义翻墙域名的列表。
    请参照以下写法去掉前面的 # 输入")) - -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 20 -function t.cfgvalue() - return fs.readfile(conffile) or "" -end - -function f.handle(self, state, data) - if state == FORM_VALID then - if data.conf then - fs.writefile(conffile, data.conf:gsub("\r\n", "\n")) - luci.sys.call("/etc/init.d/dnsmasq restart && ipset flush gfwlist") - end - end - return true -end - -return f diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-general.lua b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-general.lua deleted file mode 100644 index bbd846088..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev-general.lua +++ /dev/null @@ -1,23 +0,0 @@ -local fs = require "nixio.fs" -local conffile = "/etc/shadowsocksr.json.main" - -f = SimpleForm("general", translate("ShadowsocksR - 主服务器配置"), translate("ShadowsocksR 主服务器配置文件,此服务器将优先被使用")) - -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 20 -function t.cfgvalue() - return fs.readfile(conffile) or "" -end - -function f.handle(self, state, data) - if state == FORM_VALID then - if data.conf then - fs.writefile(conffile, data.conf:gsub("\r\n", "\n")) - luci.sys.call("/etc/init.d/shadowsocksr restart") - end - end - return true -end - -return f diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev.lua b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev.lua deleted file mode 100644 index b6fa84917..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-libev.lua +++ /dev/null @@ -1,45 +0,0 @@ -module("luci.controller.shadowsocksr-libev", package.seeall) - -function index() - if not nixio.fs.access("/etc/shadowsocksr.json") then - return - end - - entry({"admin", "services", "shadowsocksr-libev"}, - alias("admin", "services", "shadowsocksr-libev", "general"), - _("ShadowsocksR设置"), 10) - - entry({"admin", "services", "shadowsocksr-libev", "general"}, - cbi("shadowsocksr-libev/shadowsocksr-libev-general"), - _("主服务器设置"), 10).leaf = true - - entry({"admin", "services", "shadowsocksr-libev", "backup"}, - cbi("shadowsocksr-libev/shadowsocksr-libev-backup"), - _("备份服务器设置"), 20).leaf = true - - entry({"admin", "services", "shadowsocksr-libev", "gfwlist"}, - call("action_gfwlist"), - _("GFW 内置名单"), 30).leaf = true - - entry({"admin", "services", "shadowsocksr-libev", "custom"}, - cbi("shadowsocksr-libev/shadowsocksr-libev-custom"), - _("自定义域名列表"), 40).leaf = true - - entry({"admin", "services", "shadowsocksr-libev", "watchdog"}, - call("action_watchdog"), - _("守护进程日志"), 50).leaf = true -end - -function action_gfwlist() - local fs = require "nixio.fs" - local conffile = "/etc/dnsmasq.d/gfw_list.conf" - local gfwlist = fs.readfile(conffile) or "" - luci.template.render("shadowsocksr-libev/gfwlistr", {gfwlist=gfwlist}) -end - -function action_watchdog() - local fs = require "nixio.fs" - local conffile = "/var/log/shadowsocksr_watchdog.log" - local watchdog = fs.readfile(conffile) or "" - luci.template.render("shadowsocksr-libev/watchdogr", {watchdog=watchdog}) -end diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-server b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-server deleted file mode 100644 index 9c01f2787..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-server +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=95 - -SERVICE_USE_PID=1 -SERVICE_WRITE_PID=1 -SERVICE_DAEMONIZE=1 - -CONFIG=/etc/shadowsocksr-server.json - -start() { - service_start /usr/bin/ssr-server -c $CONFIG -u -} - -stop() { - service_stop /usr/bin/ssr-server -} diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-server.json b/package/lean/shadowsocksR-libev-full/files/shadowsocksr-server.json deleted file mode 100644 index fa4f23fdd..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr-server.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "server": "0.0.0.0", - "server_ipv6": "::", - "server_port": 443, - "password": "password", - "method": "rc4-md5", - "timeout": 120, - "protocol": "origin", - "protocol_param": "", - "obfs": "plain", - "obfs_param": "", - "redirect": "", - "dns_ipv6": false, - "fast_open": false -} diff --git a/package/lean/shadowsocksR-libev-full/files/shadowsocksr.json b/package/lean/shadowsocksR-libev-full/files/shadowsocksr.json deleted file mode 100644 index 5347bc9ab..000000000 --- a/package/lean/shadowsocksR-libev-full/files/shadowsocksr.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "server": "serverip", - "server_port": 443, - "password": "password", - "method": "rc4-md5", - "local_address": "0.0.0.0", - "local_port": 1080, - "timeout": 120, - "protocol": "origin", - "protocol_param": "", - "obfs": "plain", - "obfs_param": "", - "fast_open": false -} diff --git a/package/lean/shadowsocksR-libev-full/files/ssr-watchdog b/package/lean/shadowsocksR-libev-full/files/ssr-watchdog deleted file mode 100644 index adf4a6582..000000000 --- a/package/lean/shadowsocksR-libev-full/files/ssr-watchdog +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh - -LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") - -CURRENT=$(ls -l /etc/shadowsocksr.json | awk -F "." '{print $4}') - -if [ "$CURRENT" == "backup" ]; then - echo "[$LOGTIME] Backup server is running." - MAIN=$(cat /etc/shadowsocksr.json.main | awk -F '\"' '/\"server\"/ {print $4}') - PM=$(ping -c 3 $MAIN | grep 'loss' | awk -F ',' '{ print $3 }' | awk -F "%" '{ print $1 }') - if [ "$PM" -lt "50" ]; then - echo "[$LOGTIME] Main server up,$PM% packet loss, switch back." - ln -sf /etc/shadowsocksr.json.main /etc/shadowsocksr.json - CURRENT=$(ls -l /etc/shadowsocksr.json | awk -F "." '{print $4}') - /etc/init.d/shadowsocksr restart - sleep 3 - else - echo "[$LOGTIME] Main server down,$PM% packet loss." - fi -fi - -wget --spider --quiet -T 3 www.google.com.hk -if [ "$?" == "0" ]; then - echo "[$LOGTIME] No problem." - exit 0 -else - wget --spider --quiet -T 3 www.baidu.com - if [ "$?" == "0" ]; then - echo "[$LOGTIME] Problem decteted, restart ShadowsocksR." - /etc/init.d/shadowsocksr restart - if [ "$CURRENT" == "main" ]; then - sleep 3 - wget --spider --quiet -T 3 www.google.com.hk - if [ "$?" == "0" ]; then - echo "[$LOGTIME] ShadowsocksR recovered." - exit 0 - else - echo "[$LOGTIME] Main server down, switch to backup server." - ln -sf /etc/shadowsocksr.json.backup /etc/shadowsocksr.json - /etc/init.d/shadowsocksr restart - exit 0 - fi - fi - else - echo "[$LOGTIME] Network problem. Do nothing." - fi -fi diff --git a/package/lean/shadowsocksR-libev-full/files/watchdogr.htm b/package/lean/shadowsocksR-libev-full/files/watchdogr.htm deleted file mode 100644 index 66a59a983..000000000 --- a/package/lean/shadowsocksR-libev-full/files/watchdogr.htm +++ /dev/null @@ -1,7 +0,0 @@ -<%+header%> -

    <%:ShadowsocksR - 守护进程日志%>

    -
    ShadowsocksR 守护进程日志
    -
    - -
    -<%+footer%> diff --git a/package/lean/shadowsocksR-libev-full/patches/0001-ss-check-Backport.patch b/package/lean/shadowsocksR-libev-full/patches/0001-ss-check-Backport.patch deleted file mode 100644 index 5a9fb3f35..000000000 --- a/package/lean/shadowsocksR-libev-full/patches/0001-ss-check-Backport.patch +++ /dev/null @@ -1,315 +0,0 @@ -From 4a153bc0bb8ed20517871bddbf92ba69057bef97 Mon Sep 17 00:00:00 2001 -From: WouldChar -Date: Mon, 18 Dec 2017 19:33:51 +0800 -Subject: [PATCH 1/7] Backport ss-check - - * from https://github.com/ywb94/shadowsocks-libev ---- - src/Makefile.am | 5 ++ - src/check.c | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/redir.c | 2 +- - 3 files changed, 248 insertions(+), 1 deletion(-) - create mode 100644 src/check.c - -diff --git a/src/Makefile.am b/src/Makefile.am -index eea1300..d2c6d24 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -22,7 +22,7 @@ SS_COMMON_LIBS += $(top_builddir)/libev/libev.la \ - $(top_builddir)/libsodium/src/libsodium/libsodium.la - endif - --bin_PROGRAMS = ss-local -+bin_PROGRAMS = ss-local ss-check - #bin_PROGRAMS += ss-tunnel - if !BUILD_WINCOMPAT - #bin_PROGRAMS += ss-server ss-manager -@@ -42,6 +43,8 @@ ss_local_SOURCES = utils.c \ - local.c \ - $(sni_src) - -+ss_check_SOURCES = check.c -+ - #ss_tunnel_SOURCES = utils.c \ - # jconf.c \ - # json.c \ -@@ -69,6 +72,7 @@ ss_local_SOURCES = utils.c \ - # manager.c - - ss_local_LDADD = $(SS_COMMON_LIBS) -+ss_check_LDADD = $(SS_COMMON_LIBS) - #ss_tunnel_LDADD = $(SS_COMMON_LIBS) - #ss_server_LDADD = $(SS_COMMON_LIBS) - #ss_manager_LDADD = $(SS_COMMON_LIBS) -@@ -83,6 +87,7 @@ ss_local_LDADD += $(top_builddir)/libudns/libudns.la - endif - - ss_local_CFLAGS = $(AM_CFLAGS) -DMODULE_LOCAL -+ss_check_CFLAGS = $(AM_CFLAGS) -DMODULE_CHECK - #ss_tunnel_CFLAGS = $(AM_CFLAGS) -DMODULE_TUNNEL - #ss_server_CFLAGS = $(AM_CFLAGS) -DMODULE_REMOTE - #ss_manager_CFLAGS = $(AM_CFLAGS) -DMODULE_MANAGER -diff --git a/src/check.c b/src/check.c -new file mode 100644 -index 0000000..9243686 ---- /dev/null -+++ b/src/check.c -@@ -0,0 +1,242 @@ -+/* -+ * check.c - check remote shadowsocks server port -+ * -+ * Copyright (C) 2017, yushi studio -+ * -+ * This file is part of the 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. -+ * -+ * shadowsocks-libev 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 shadowsocks-libev; see the file COPYING. If not, see -+ * . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+//#define __DEBUG__ -+#ifdef __DEBUG__ -+#define DEBUG(format,...) printf("File: "__FILE__", Line: %05d: "format"/n", __LINE__, ##__VA_ARGS__) -+#else -+#define DEBUG(format,...) -+#endif -+ -+static sigjmp_buf jmpbuf; -+ -+static void alarm_func() -+{ -+ siglongjmp(jmpbuf, 1); -+} -+ -+static struct hostent *timeGethostbyname(const char *domain, int timeout) -+{ -+ struct hostent *ipHostent = NULL; -+ signal(SIGALRM, alarm_func); -+ if (sigsetjmp(jmpbuf, 1) != 0) { -+ alarm(0); //timout -+ signal(SIGALRM, SIG_IGN); -+ return NULL; -+ } -+ alarm(timeout); //setting alarm -+ ipHostent = gethostbyname(domain); -+ signal(SIGALRM, SIG_IGN); -+ return ipHostent; -+} -+ -+ -+#define MY_HTTP_DEFAULT_PORT 80 -+#define BUFFER_SIZE 1024 -+#define HTTP_POST "POST /%s HTTP/1.1\r\nHOST: %s:%d\r\nAccept: */*\r\n"\ -+ "Content-Type:application/x-www-form-urlencoded\r\nContent-Length: %d\r\n\r\n%s" -+#define HTTP_GET "GET /%s HTTP/1.1\r\nHOST: %s:%d\r\nAccept: */*\r\n\r\n" -+ -+static int http_parse_url(const char *url, char *host, char *file, int *port) -+{ -+ char *ptr1, *ptr2; -+ int len = 0; -+ if (!url || !host || !file || !port) -+ return 1; -+ -+ ptr1 = (char *)url; -+ -+ if (!strncmp(ptr1, "http://", strlen("http://"))) -+ ptr1 += strlen("http://"); -+ else -+ return 1; -+ -+ ptr2 = strchr(ptr1, '/'); -+ if (ptr2) { -+ len = strlen(ptr1) - strlen(ptr2); -+ memcpy(host, ptr1, len); -+ host[len] = '\0'; -+ if (*(ptr2 + 1)) { -+ memcpy(file, ptr2 + 1, strlen(ptr2) - 1); -+ file[strlen(ptr2) - 1] = '\0'; -+ } -+ } -+ else { -+ memcpy(host,ptr1,strlen(ptr1)); -+ host[strlen(ptr1)] = '\0'; -+ } -+ -+ //get host and ip -+ ptr1 = strchr(host, ':'); -+ if (ptr1) { -+ *ptr1++ = '\0'; -+ *port = atoi(ptr1); -+ } -+ else -+ *port = MY_HTTP_DEFAULT_PORT; -+ -+ return 0; -+} -+ -+static int http_tcpclient_recv(int socket, char *lpbuff) -+{ -+ int recvnum = 0; -+ -+ recvnum = recv(socket, lpbuff, BUFFER_SIZE*4, 0); -+ -+ return recvnum; -+} -+ -+static int http_tcpclient_send(int socket, char *buff, int size) -+{ -+ int sent = 0, tmpres = 0; -+ -+ while (sent < size) { -+ tmpres = send(socket, buff + sent, size - sent, 0); -+ if (tmpres == -1) -+ return 1; -+ sent += tmpres; -+ } -+ return sent; -+} -+ -+int http_get(const char *url, int socket_fd) -+{ -+ char lpbuf[BUFFER_SIZE * 4] = {'\0'}; -+ -+ char host_addr[BUFFER_SIZE] = {'\0'}; -+ char file[BUFFER_SIZE] = {'\0'}; -+ int port = 0; -+ -+ if (!url) { -+ DEBUG("url failed\n"); -+ return 1; -+ } -+ -+ if (http_parse_url(url, host_addr, file, &port)) { -+ DEBUG("http_parse_url failed\n"); -+ return 1; -+ } -+ DEBUG("url: %s\thost_addr: %s\tfile: %s\t, %d\n", url, host_addr, file, port); -+ -+ if (socket_fd < 0) { -+ DEBUG("http_tcpclient_create failed\n"); -+ return 1; -+ } -+ -+ sprintf(lpbuf, HTTP_GET, file, host_addr, port); -+ -+ if (http_tcpclient_send(socket_fd, lpbuf, strlen(lpbuf)) < 0) { -+ DEBUG("http_tcpclient_send failed\n"); -+ return 1; -+ } -+ DEBUG("request:\n%s\n", lpbuf); -+ -+ if (http_tcpclient_recv(socket_fd, lpbuf) <= 0) { -+ DEBUG("http_tcpclient_recv failed\n"); -+ close(socket_fd); -+ return 1; -+ } -+ DEBUG("rec:\n%s\n", lpbuf); -+ close(socket_fd); -+ -+ //return http_parse_result(lpbuf); -+ return 0; -+} -+ -+int main(int argc, char *argv[]) -+{ -+ int fd, http_flag = 0, http_ret = 1; -+ struct sockaddr_in addr; -+ struct hostent *host; -+ struct timeval timeo = {3, 0}; -+ socklen_t len = sizeof(timeo); -+ -+ char http_url[100] = "http://"; -+ -+ fd = socket(AF_INET, SOCK_STREAM, 0); -+ if (argc >= 4) -+ timeo.tv_sec = atoi(argv[3]); -+ if (argc >= 5) -+ http_flag=1; -+ -+ if ((host = timeGethostbyname(argv[1], timeo.tv_sec)) == NULL) { -+ DEBUG("gethostbyname err\n"); -+ return 1; -+ } -+ -+ if (setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeo, len) == -1) { -+ DEBUG("setsockopt send err\n"); -+ return 1; -+ } -+ -+ if (setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &timeo, len) == -1) { -+ DEBUG("setsockopt recv err\n"); -+ return 1; -+ } -+ -+ addr.sin_family = AF_INET; -+ addr.sin_addr = *((struct in_addr *)host->h_addr); -+ //addr.sin_addr.s_addr = inet_addr(argv[1]); -+ addr.sin_port = htons(atoi(argv[2])); -+ -+ if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) == -1) { -+ if (errno == EINPROGRESS) { -+ DEBUG("timeout err\n"); -+ return 1; -+ } -+ DEBUG("connect err\n"); -+ return 1; -+ } -+ -+ if (http_flag == 0) { -+ close(fd); -+ return 0; -+ } -+ -+ strcat(http_url, argv[1]); -+ http_ret = http_get(http_url, fd); -+ -+ if (http_ret == 1) { -+ DEBUG("recv err"); -+ return 1; -+ } -+ else { -+ DEBUG("recv ok"); -+ return 0; -+ } -+} -diff --git a/src/redir.c b/src/redir.c -index 4345a36..e2bdd0e 100644 ---- a/src/redir.c -+++ b/src/redir.c -@@ -203,7 +203,7 @@ server_recv_cb(EV_P_ ev_io *w, int revents) - // continue to wait for recv - return; - } else { -- ERROR("server recv"); -+ //ERROR("server recv"); - close_and_free_remote(EV_A_ remote); - close_and_free_server(EV_A_ server); - return; --- -2.7.4 - diff --git a/package/lean/shortcut-fe/Makefile b/package/lean/shortcut-fe/Makefile deleted file mode 100644 index 5c9a80e57..000000000 --- a/package/lean/shortcut-fe/Makefile +++ /dev/null @@ -1,121 +0,0 @@ -# -# Copyright (c) 2014 The Linux Foundation. All rights reserved. -# Permission to use, copy, modify, and/or distribute this software for -# any purpose with or without fee is hereby granted, provided that the -# above copyright notice and this permission notice appear in all copies. -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=shortcut-fe -PKG_RELEASE:=2 - -include $(INCLUDE_DIR)/package.mk - -define KernelPackage/shortcut-fe - SECTION:=kernel - CATEGORY:=Kernel modules - SUBMENU:=Network Support - DEPENDS:=@IPV6 @!LINUX_4_14 - TITLE:=Kernel driver for SFE - FILES:=$(PKG_BUILD_DIR)/shortcut-fe.ko $(PKG_BUILD_DIR)/shortcut-fe-ipv6.ko - KCONFIG:=CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_SHORTCUT_FE=y - AUTOLOAD:=$(call AutoProbe,shortcut-fe shortcut-fe-ipv6) -endef - -define KernelPackage/shortcut-fe/Description -Shortcut is an in-Linux-kernel IP packet forwarding engine. -endef - -define KernelPackage/shortcut-fe-cm - SECTION:=kernel - CATEGORY:=Kernel modules - SUBMENU:=Network Support - DEPENDS:=+kmod-ipt-conntrack +kmod-shortcut-fe - TITLE:=Kernel driver for SFE - FILES:=$(PKG_BUILD_DIR)/shortcut-fe-cm.ko - KCONFIG:=CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y CONFIG_NF_CONNTRACK_MARK=y - AUTOLOAD:=$(call AutoProbe,shortcut-fe-cm) -endef - -define KernelPackage/shortcut-fe-cm/Description -Simple connection manager for the Shortcut forwarding engine. -endef - -define KernelPackage/fast-classifier - SECTION:=kernel - CATEGORY:=Kernel modules - SUBMENU:=Network Support - DEPENDS:=+kmod-ipt-conntrack +kmod-shortcut-fe - TITLE:=Kernel driver for FAST Classifier - FILES:=$(PKG_BUILD_DIR)/fast-classifier.ko - KCONFIG:=CONFIG_NF_CONNTRACK_CHAIN_EVENTS=y CONFIG_NF_CONNTRACK_MARK=y - AUTOLOAD:=$(call AutoLoad,z,fast-classifier) - PROVIDES:=$(PKG_NAME) -endef - -define KernelPackage/fast-classifier/description -FAST Classifier connection manager for Shortcut forwarding engine. -It talks to SFE to make decisions about offloading connections. -endef - -define Package/fast-classifier-example - TITLE:=Example user space program for fast-classifier - DEPENDS:=+libnl +kmod-fast-classifier -endef - -define Package/fast-classifier-example/description -Example user space program that communicates with fast -classifier kernel module -endef - -MAKE_OPTS:= \ - ARCH="$(LINUX_KARCH)" \ - CROSS_COMPILE="$(TARGET_CROSS)" \ - SUBDIRS="$(PKG_BUILD_DIR)" \ - EXTRA_CFLAGS="$(EXTRA_CFLAGS)" - -define Build/Compile - $(MAKE) -C "$(LINUX_DIR)" \ - $(MAKE_OPTS) \ - modules - $(if $(CONFIG_PACKAGE_fast-classifier-example),$(Build/Compile/fast-classifier-example)) -endef - -define Build/Compile/fast-classifier-example - $(TARGET_CC) -o $(PKG_BUILD_DIR)/userspace_fast_classifier \ - -I $(PKG_BUILD_DIR) \ - -I$(STAGING_DIR)/usr/include/libnl \ - -I$(STAGING_DIR)/usr/include/libnl3 \ - -lnl-genl-3 -lnl-3 \ - $(PKG_BUILD_DIR)/nl_classifier_test.c -endef - -ifneq ($(CONFIG_PACKAGE_kmod-shortcut-fe)$(CONFIG_PACKAGE_kmod-shortcut-fe-cm)$(CONFIG_PACKAGE_kmod-fast-classifier),) -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include/shortcut-fe - $(CP) -rf $(PKG_BUILD_DIR)/sfe.h $(1)/usr/include/shortcut-fe -ifneq ($(CONFIG_PACKAGE_kmod-fast-classifier),) - $(INSTALL_DIR) $(1)/usr/include - $(CP) $(PKG_BUILD_DIR)/fast-classifier.h $(1)/usr/include/ -endif -endef -endif - -define Package/fast-classifier-example/install - $(INSTALL_DIR) $(1)/sbin - $(CP) $(PKG_BUILD_DIR)/userspace_fast_classifier $(1)/sbin/ -endef - -$(eval $(call KernelPackage,shortcut-fe)) -$(eval $(call KernelPackage,shortcut-fe-cm)) -$(eval $(call KernelPackage,fast-classifier)) -#$(eval $(call BuildPackage,fast-classifier-example)) - diff --git a/package/lean/shortcut-fe/src/Kconfig b/package/lean/shortcut-fe/src/Kconfig deleted file mode 100644 index 487f1e065..000000000 --- a/package/lean/shortcut-fe/src/Kconfig +++ /dev/null @@ -1,14 +0,0 @@ -# -# Shortcut forwarding engine -# - -config SHORTCUT_FE - tristate "Shortcut Forwarding Engine" - depends on NF_CONNTRACK - ---help--- - Shortcut is a fast in-kernel packet forwarding engine. - - To compile this code as a module, choose M here: the module will be - called shortcut-fe. - - If unsure, say N. diff --git a/package/lean/shortcut-fe/src/Makefile b/package/lean/shortcut-fe/src/Makefile deleted file mode 100644 index 88d95d232..000000000 --- a/package/lean/shortcut-fe/src/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# -# Makefile for Shortcut FE. -# - -obj-m += shortcut-fe.o shortcut-fe-ipv6.o shortcut-fe-cm.o fast-classifier.o - -shortcut-fe-objs := \ - sfe_ipv4.o - -shortcut-fe-ipv6-objs := \ - sfe_ipv6.o - -shortcut-fe-cm-objs := \ - sfe_cm.o diff --git a/package/lean/shortcut-fe/src/README b/package/lean/shortcut-fe/src/README deleted file mode 100644 index 1bf1cc255..000000000 --- a/package/lean/shortcut-fe/src/README +++ /dev/null @@ -1,122 +0,0 @@ -Shortcut Forwarding Engine --------------------------- - -Welcome to "Shortcut" :-) - -Here's a quick FAQ: - - -Q) What is Shortcut? - -A) Shortcut is an in-Linux-kernel IP packet forwarding engine. It's designed -to offer very high speed IP packet forwarding based on IP connection tracking. -It's dramatically faster than the standard netfilter-based NAT forwarding path -but is designed to synchronise state back to netfilter/conntrack so that it -doesn't need to deal with all of the complexities of special cases. - - -Q) What versions of IP does it support? - -A) The current version only supports IPv4 but will be extended to support IPv6 in -the future. - - -Q) What transport protocols does it support? - -A) TCP and UDP. It also knows enough about ICMP to spot ICMP error messages -related to TCP and UDP and handle things accordingly. - - -Q) Is there a design spec for this software? - -A) Not at the moment. I'll write one when I get more time. The code is -intended to be a good tutorial though - it's very heavily commented. If you -find yourself reading something and not understanding it then I take that to -mean I've probably not done a sufficently good job of explaining what it's -doing in the comments. Let me know - I will try to fix it :-) - - -Q) Why was it written? - -A) It was written as a demonstration of what can be done to provide high -performance forwarding inside the kernel. There were two initial motivations: - -1) To provide a platform to enable research into how QoS analysis systems can -offload work and avoid huge Linux overheads. - -2) To provide a tool to investigate the behaviour of various processors, SoCs -and software sets so that we can characterize and design new network processor -SoCs. - - -Q) How much faster is it than the Linux kernel forwarding path? - -A) At the time of pushing this to github it's been tested on a QCA AP135. -This has a Scorpion (QCA Scopion, not the QMC one :-)) SoC, QCA9550. The -SoC's processor is a MIPS74K running at 720 MHz and with a DDR2 memory -subsystem that offers a peak of 600 MT/s (16-bit transfers). - -Running IPv4 NAT forwarding of UDP between the board's 2 GMAC ports and -using a SmartBits 200 as a traffic generator Linux is able to forward 70k PPS. -Once the SFE code is invoked this will increase to 350k PPS! - -There's also a slightly hacky mode which causes SFE to bypass the Linux -bridge layer, but this isn't really ready for use because it doesn't have -sufficient MAC address checks or integration of statistics back to the -Ethernet bridge, but that runs at 436k PPS. - - -Q) Are there any diagnostics? - -A) Yes, this is a research tool after all! There's a complex way to do this -that's more general purpose and a simple one - here's the simple one: - - mknod /dev/sfe c 253 0 - -The file /dev/sfe is an XML-ish output and provides details of all the -network connections currently being offloaded. It also reports the numbers -of packets that took various "exception" paths within the code. In addition -it provides a summary of the number of connections, attempts to accelerate -connections, cancel accelerations, etc. It also reports the numbers of -packets that were forwarded and not forwarded by the engine and has some -stats on the effectiveness of the hashing algorithm it uses. - - -Q) How does the code interact with Linux? - -A) There are four minor patches required to make this software run with -Linux. These are currently against a 3.3.8 or 3.4.0 kernel: - -* (net/core/dev.c) adds a hook to allow packets to be extracted out. - -* (net/netfilter/nf_conntrack_proto_tcp.c) exposes a state variable inside - netfilter that's necessary to enable TCP sequence and ACK checking within - the offload path. Note that this specific patch is against the QCA QSDK - patched version of 3.3.8 - there's a slightly braindead "performance" - patch in that kernel, courtesy of the OpenWrt community that makes the - Linux forwarding path slightly faster at the expense of losing - functionality :-( - -* (net/Kconfig) adds the shortcut-fe option. - -* (net/Makefile) adds the shortcut-fe build support. - -Once these are applied and the module is loaded then everything else -is automatic :-) The patches are in this git repo. - - -Q) Are any of the pieces reused from other projects? - -A) Yes! Some of the forwarding concepts are reused from the Ubicom Network -Accelerator that morphed into part of the Akronite NSS. This code has all -been substantially changed though to accomodate Linux's needs. - -There are also some pieces that I borrowed from the QCA "FastNAT" software -written by Xiaoping Fan . Xiaoping's code was the -first actual demonstration within QCA that this in-kernel concept could yield -signficant performance gains. - - -Enjoy! -Dave Hudson - diff --git a/package/lean/shortcut-fe/src/fast-classifier.c b/package/lean/shortcut-fe/src/fast-classifier.c deleted file mode 100644 index 48a2d27f4..000000000 --- a/package/lean/shortcut-fe/src/fast-classifier.c +++ /dev/null @@ -1,1892 +0,0 @@ -/* - * fast-classifier.c - * Shortcut forwarding engine connection manager. - * fast-classifier - * - * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "sfe_backport.h" -#include "sfe.h" -#include "sfe_cm.h" -#include "fast-classifier.h" - -typedef enum fast_classifier_exception { - FAST_CL_EXCEPTION_PACKET_BROADCAST, - FAST_CL_EXCEPTION_PACKET_MULTICAST, - FAST_CL_EXCEPTION_NO_IIF, - FAST_CL_EXCEPTION_NO_CT, - FAST_CL_EXCEPTION_CT_NO_TRACK, - FAST_CL_EXCEPTION_CT_NO_CONFIRM, - FAST_CL_EXCEPTION_CT_IS_ALG, - FAST_CL_EXCEPTION_IS_IPV4_MCAST, - FAST_CL_EXCEPTION_IS_IPV6_MCAST, - FAST_CL_EXCEPTION_TCP_NOT_ASSURED, - FAST_CL_EXCEPTION_TCP_NOT_ESTABLISHED, - FAST_CL_EXCEPTION_UNKNOW_PROTOCOL, - FAST_CL_EXCEPTION_NO_SRC_DEV, - FAST_CL_EXCEPTION_NO_SRC_XLATE_DEV, - FAST_CL_EXCEPTION_NO_DEST_DEV, - FAST_CL_EXCEPTION_NO_DEST_XLATE_DEV, - FAST_CL_EXCEPTION_NO_BRIDGE, - FAST_CL_EXCEPTION_LOCAL_OUT, - FAST_CL_EXCEPTION_WAIT_FOR_ACCELERATION, - FAST_CL_EXCEPTION_UPDATE_PROTOCOL_FAIL, - FAST_CL_EXCEPTION_CT_DESTROY_MISS, - FAST_CL_EXCEPTION_MAX -} fast_classifier_exception_t; - -static char *fast_classifier_exception_events_string[FAST_CL_EXCEPTION_MAX] = { - "PACKET_BROADCAST", - "PACKET_MULTICAST", - "NO_IIF", - "NO_CT", - "CT_NO_TRACK", - "CT_NO_CONFIRM", - "CT_IS_ALG", - "IS_IPV4_MCAST", - "IS_IPV6_MCAST", - "TCP_NOT_ASSURED", - "TCP_NOT_ESTABLISHED", - "UNKNOW_PROTOCOL", - "NO_SRC_DEV", - "NO_SRC_XLATE_DEV", - "NO_DEST_DEV", - "NO_DEST_XLATE_DEV", - "NO_BRIDGE", - "LOCAL_OUT", - "WAIT_FOR_ACCELERATION", - "UPDATE_PROTOCOL_FAIL", - "CT_DESTROY_MISS", -}; - -/* - * Per-module structure. - */ -struct fast_classifier { - spinlock_t lock; /* Lock for SMP correctness */ - - /* - * Control state. - */ - struct kobject *sys_fast_classifier; /* sysfs linkage */ - - /* - * Callback notifiers. - */ - struct notifier_block dev_notifier; /* Device notifier */ - struct notifier_block inet_notifier; /* IPv4 notifier */ - struct notifier_block inet6_notifier; /* IPv6 notifier */ - u32 exceptions[FAST_CL_EXCEPTION_MAX]; -}; - -static struct fast_classifier __fsc; - -static struct nla_policy fast_classifier_genl_policy[FAST_CLASSIFIER_A_MAX + 1] = { - [FAST_CLASSIFIER_A_TUPLE] = { - .type = NLA_UNSPEC, - .len = sizeof(struct fast_classifier_tuple) - }, -}; - -static struct genl_multicast_group fast_classifier_genl_mcgrp[] = { - { - .name = FAST_CLASSIFIER_GENL_MCGRP, - }, -}; - -static struct genl_family fast_classifier_gnl_family = { - .id = GENL_ID_GENERATE, - .hdrsize = FAST_CLASSIFIER_GENL_HDRSIZE, - .name = FAST_CLASSIFIER_GENL_NAME, - .version = FAST_CLASSIFIER_GENL_VERSION, - .maxattr = FAST_CLASSIFIER_A_MAX, -}; - -static int fast_classifier_offload_genl_msg(struct sk_buff *skb, struct genl_info *info); -static int fast_classifier_nl_genl_msg_DUMP(struct sk_buff *skb, struct netlink_callback *cb); - -static struct genl_ops fast_classifier_gnl_ops[] = { - { - .cmd = FAST_CLASSIFIER_C_OFFLOAD, - .flags = 0, - .policy = fast_classifier_genl_policy, - .doit = fast_classifier_offload_genl_msg, - .dumpit = NULL, - }, - { - .cmd = FAST_CLASSIFIER_C_OFFLOADED, - .flags = 0, - .policy = fast_classifier_genl_policy, - .doit = NULL, - .dumpit = fast_classifier_nl_genl_msg_DUMP, - }, - { - .cmd = FAST_CLASSIFIER_C_DONE, - .flags = 0, - .policy = fast_classifier_genl_policy, - .doit = NULL, - .dumpit = fast_classifier_nl_genl_msg_DUMP, - }, -}; - -static atomic_t offload_msgs = ATOMIC_INIT(0); -static atomic_t offload_no_match_msgs = ATOMIC_INIT(0); -static atomic_t offloaded_msgs = ATOMIC_INIT(0); -static atomic_t done_msgs = ATOMIC_INIT(0); - -static atomic_t offloaded_fail_msgs = ATOMIC_INIT(0); -static atomic_t done_fail_msgs = ATOMIC_INIT(0); - -/* - * Accelerate incoming packets destined for bridge device - * If a incoming packet is ultimatly destined for - * a bridge device we will first see the packet coming - * from the phyiscal device, we can skip straight to - * processing the packet like it came from the bridge - * for some more performance gains - * - * This only works when the hook is above the bridge. We - * only implement ingress for now, because for egress we - * want to have the bridge devices qdiscs be used. - */ -static bool skip_to_bridge_ingress; - -/* - * fast_classifier_incr_exceptions() - * increase an exception counter. - */ -static inline void fast_classifier_incr_exceptions(fast_classifier_exception_t except) -{ - struct fast_classifier *sc = &__fsc; - - spin_lock_bh(&sc->lock); - sc->exceptions[except]++; - spin_unlock_bh(&sc->lock); -} - -/* - * fast_classifier_recv() - * Handle packet receives. - * - * Returns 1 if the packet is forwarded or 0 if it isn't. - */ -static int fast_classifier_recv(struct sk_buff *skb) -{ - struct net_device *dev; - struct net_device *master_dev = NULL; - int ret = 0; - - /* - * We know that for the vast majority of packets we need the transport - * layer header so we may as well start to fetch it now! - */ - prefetch(skb->data + 32); - barrier(); - - dev = skb->dev; - - /* - * Process packet like it arrived on the bridge device - */ - if (skip_to_bridge_ingress && - (dev->priv_flags & IFF_BRIDGE_PORT)) { - master_dev = sfe_dev_get_master(dev); - if (!master_dev) { - DEBUG_WARN("master dev is NULL %s\n"); - goto rx_exit; - } - dev = master_dev; - } - -#ifdef CONFIG_NET_CLS_ACT - /* - * If ingress Qdisc configured, and packet not processed by ingress Qdisc yet - * We cannot accelerate this packet. - */ - if (dev->ingress_queue && !(skb->tc_verd & TC_NCLS)) { - goto rx_exit; - } -#endif - - /* - * We're only interested in IPv4 and IPv6 packets. - */ - if (likely(htons(ETH_P_IP) == skb->protocol)) { - struct in_device *in_dev; - - /* - * Does our input device support IP processing? - */ - in_dev = (struct in_device *)dev->ip_ptr; - if (unlikely(!in_dev)) { - DEBUG_TRACE("no IP processing for device: %s\n", dev->name); - goto rx_exit; - } - - /* - * Does it have an IP address? If it doesn't then we can't do anything - * interesting here! - */ - if (unlikely(!in_dev->ifa_list)) { - DEBUG_TRACE("no IP address for device: %s\n", dev->name); - goto rx_exit; - } - - ret = sfe_ipv4_recv(dev, skb); - - } else if (likely(htons(ETH_P_IPV6) == skb->protocol)) { - struct inet6_dev *in_dev; - - /* - * Does our input device support IPv6 processing? - */ - in_dev = (struct inet6_dev *)dev->ip6_ptr; - if (unlikely(!in_dev)) { - DEBUG_TRACE("no IPv6 processing for device: %s\n", dev->name); - goto rx_exit; - } - - /* - * Does it have an IPv6 address? If it doesn't then we can't do anything - * interesting here! - */ - if (unlikely(list_empty(&in_dev->addr_list))) { - DEBUG_TRACE("no IPv6 address for device: %s\n", dev->name); - goto rx_exit; - } - - ret = sfe_ipv6_recv(dev, skb); - - } else { - DEBUG_TRACE("not IP packet\n"); - } - -rx_exit: - if (master_dev) { - dev_put(master_dev); - } - - return ret; -} - -/* - * fast_classifier_find_dev_and_mac_addr() - * Find the device and MAC address for a given IPv4 address. - * - * Returns true if we find the device and MAC address, otherwise false. - * - * We look up the rtable entry for the address and, from its neighbour - * structure, obtain the hardware address. This means this function also - * works if the neighbours are routers too. - */ -static bool fast_classifier_find_dev_and_mac_addr(sfe_ip_addr_t *addr, struct net_device **dev, u8 *mac_addr, bool is_v4) -{ - struct neighbour *neigh; - struct rtable *rt; - struct rt6_info *rt6; - struct dst_entry *dst; - struct net_device *mac_dev; - - /* - * Look up the rtable entry for the IP address then get the hardware - * address from its neighbour structure. This means this works when the - * neighbours are routers too. - */ - if (is_v4) { - rt = ip_route_output(&init_net, addr->ip, 0, 0, 0); - if (unlikely(IS_ERR(rt))) { - goto ret_fail; - } - - dst = (struct dst_entry *)rt; - } else { - rt6 = rt6_lookup(&init_net, (struct in6_addr *)addr->ip6, 0, 0, 0); - if (!rt6) { - goto ret_fail; - } - - dst = (struct dst_entry *)rt6; - } - - rcu_read_lock(); - neigh = dst_neigh_lookup(dst, addr); - if (unlikely(!neigh)) { - rcu_read_unlock(); - dst_release(dst); - goto ret_fail; - } - - if (unlikely(!(neigh->nud_state & NUD_VALID))) { - rcu_read_unlock(); - neigh_release(neigh); - dst_release(dst); - goto ret_fail; - } - - mac_dev = neigh->dev; - if (!mac_dev) { - rcu_read_unlock(); - neigh_release(neigh); - dst_release(dst); - goto ret_fail; - } - - memcpy(mac_addr, neigh->ha, (size_t)mac_dev->addr_len); - - dev_hold(mac_dev); - *dev = mac_dev; - rcu_read_unlock(); - neigh_release(neigh); - dst_release(dst); - - return true; - -ret_fail: - DEBUG_TRACE("failed to find MAC address for IP: %pIS\n", addr); - - return false; -} - -static DEFINE_SPINLOCK(sfe_connections_lock); - -struct sfe_connection { - struct hlist_node hl; - struct sfe_connection_create *sic; - struct nf_conn *ct; - int hits; - int offload_permit; - int offloaded; - bool is_v4; - unsigned char smac[ETH_ALEN]; - unsigned char dmac[ETH_ALEN]; -}; - -static int sfe_connections_size; - -#define FC_CONN_HASH_ORDER 13 -static DEFINE_HASHTABLE(fc_conn_ht, FC_CONN_HASH_ORDER); - -static u32 fc_conn_hash(sfe_ip_addr_t *saddr, sfe_ip_addr_t *daddr, - unsigned short sport, unsigned short dport, bool is_v4) -{ - u32 idx, cnt = ((is_v4 ? sizeof(saddr->ip) : sizeof(saddr->ip6))/sizeof(u32)); - u32 hash = 0; - - for (idx = 0; idx < cnt; idx++) { - hash ^= ((u32 *)saddr)[idx] ^ ((u32 *)daddr)[idx]; - } - - return hash ^ (sport | (dport << 16)); -} - -/* - * fast_classifier_update_protocol() - * Update sfe_ipv4_create struct with new protocol information before we offload - */ -static int fast_classifier_update_protocol(struct sfe_connection_create *p_sic, struct nf_conn *ct) -{ - switch (p_sic->protocol) { - case IPPROTO_TCP: - p_sic->src_td_window_scale = ct->proto.tcp.seen[0].td_scale; - p_sic->src_td_max_window = ct->proto.tcp.seen[0].td_maxwin; - p_sic->src_td_end = ct->proto.tcp.seen[0].td_end; - p_sic->src_td_max_end = ct->proto.tcp.seen[0].td_maxend; - p_sic->dest_td_window_scale = ct->proto.tcp.seen[1].td_scale; - p_sic->dest_td_max_window = ct->proto.tcp.seen[1].td_maxwin; - p_sic->dest_td_end = ct->proto.tcp.seen[1].td_end; - p_sic->dest_td_max_end = ct->proto.tcp.seen[1].td_maxend; - - if (nf_ct_tcp_no_window_check - || (ct->proto.tcp.seen[0].flags & IP_CT_TCP_FLAG_BE_LIBERAL) - || (ct->proto.tcp.seen[1].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) { - p_sic->flags |= SFE_CREATE_FLAG_NO_SEQ_CHECK; - } - - /* - * If the connection is shutting down do not manage it. - * state can not be SYN_SENT, SYN_RECV because connection is assured - * Not managed states: FIN_WAIT, CLOSE_WAIT, LAST_ACK, TIME_WAIT, CLOSE. - */ - spin_lock_bh(&ct->lock); - if (ct->proto.tcp.state != TCP_CONNTRACK_ESTABLISHED) { - spin_unlock_bh(&ct->lock); - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_TCP_NOT_ESTABLISHED); - DEBUG_TRACE("connection in termination state: %#x, s: %pI4:%u, d: %pI4:%u\n", - ct->proto.tcp.state, &p_sic->src_ip, ntohs(p_sic->src_port), - &p_sic->dest_ip, ntohs(p_sic->dest_port)); - return 0; - } - spin_unlock_bh(&ct->lock); - break; - - case IPPROTO_UDP: - break; - - default: - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_UNKNOW_PROTOCOL); - DEBUG_TRACE("unhandled protocol %d\n", p_sic->protocol); - return 0; - } - - return 1; -} - -/* fast_classifier_send_genl_msg() - * Function to send a generic netlink message - */ -static void fast_classifier_send_genl_msg(int msg, struct fast_classifier_tuple *fc_msg) -{ - struct sk_buff *skb; - int rc; - int buf_len; - int total_len; - void *msg_head; - - /* - * Calculate our packet payload size. - * Start with our family header. - */ - buf_len = fast_classifier_gnl_family.hdrsize; - - /* - * Add the nla_total_size of each attribute we're going to nla_put(). - */ - buf_len += nla_total_size(sizeof(*fc_msg)); - - /* - * Lastly we need to add space for the NL message header since - * genlmsg_new only accounts for the GENL header and not the - * outer NL header. To do this, we use a NL helper function which - * calculates the total size of a netlink message given a payload size. - * Note this value does not include the GENL header, but that's - * added automatically by genlmsg_new. - */ - total_len = nlmsg_total_size(buf_len); - skb = genlmsg_new(total_len, GFP_ATOMIC); - if (!skb) - return; - - msg_head = genlmsg_put(skb, 0, 0, &fast_classifier_gnl_family, 0, msg); - if (!msg_head) { - nlmsg_free(skb); - return; - } - - rc = nla_put(skb, FAST_CLASSIFIER_A_TUPLE, sizeof(struct fast_classifier_tuple), fc_msg); - if (rc != 0) { - genlmsg_cancel(skb, msg_head); - nlmsg_free(skb); - return; - } - - genlmsg_end(skb, msg_head); - if (rc < 0) { - genlmsg_cancel(skb, msg_head); - nlmsg_free(skb); - return; - } - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)) - rc = genlmsg_multicast(&fast_classifier_gnl_family, skb, 0, 0, GFP_ATOMIC); -#else - rc = genlmsg_multicast(skb, 0, fast_classifier_genl_mcgrp[0].id, GFP_ATOMIC); -#endif - switch (msg) { - case FAST_CLASSIFIER_C_OFFLOADED: - atomic_inc(&offloaded_msgs); - if (rc != 0) - atomic_inc(&offloaded_fail_msgs); - break; - case FAST_CLASSIFIER_C_DONE: - atomic_inc(&done_msgs); - if (rc != 0) - atomic_inc(&done_fail_msgs); - break; - default: - DEBUG_ERROR("fast-classifer: Unknown message type sent!\n"); - break; - } - - DEBUG_TRACE("Notify NL message %d ", msg); - DEBUG_TRACE("sip=%pIS dip=%pIS ", &fc_msg->src_saddr, &fc_msg->dst_saddr); - DEBUG_TRACE("protocol=%d sport=%d dport=%d smac=%pM dmac=%pM\n", - fc_msg->proto, fc_msg->sport, fc_msg->dport, fc_msg->smac, fc_msg->dmac); -} - -/* - * fast_classifier_find_conn() - * find a connection object in the hash table - * @pre the sfe_connection_lock must be held before calling this function - */ -static struct sfe_connection * -fast_classifier_find_conn(sfe_ip_addr_t *saddr, sfe_ip_addr_t *daddr, - unsigned short sport, unsigned short dport, - unsigned char proto, bool is_v4) -{ - struct sfe_connection_create *p_sic; - struct sfe_connection *conn; - u32 key; - - key = fc_conn_hash(saddr, daddr, sport, dport, is_v4); - - sfe_hash_for_each_possible(fc_conn_ht, conn, hl, key) { - if (conn->is_v4 != is_v4) { - continue; - } - - p_sic = conn->sic; - - if (p_sic->protocol == proto && - p_sic->src_port == sport && - p_sic->dest_port == dport && - sfe_addr_equal(&p_sic->src_ip, saddr, is_v4) && - sfe_addr_equal(&p_sic->dest_ip, daddr, is_v4)) { - return conn; - } - } - - DEBUG_TRACE("connection not found\n"); - return NULL; -} - -/* - * fast_classifier_sb_find_conn() - * find a connection object in the hash table according to information of packet - * if not found, reverse the tuple and try again. - * @pre the sfe_connection_lock must be held before calling this function - */ -static struct sfe_connection * -fast_classifier_sb_find_conn(sfe_ip_addr_t *saddr, sfe_ip_addr_t *daddr, - unsigned short sport, unsigned short dport, - unsigned char proto, bool is_v4) -{ - struct sfe_connection_create *p_sic; - struct sfe_connection *conn; - u32 key; - - key = fc_conn_hash(saddr, daddr, sport, dport, is_v4); - - sfe_hash_for_each_possible(fc_conn_ht, conn, hl, key) { - if (conn->is_v4 != is_v4) { - continue; - } - - p_sic = conn->sic; - - if (p_sic->protocol == proto && - p_sic->src_port == sport && - p_sic->dest_port_xlate == dport && - sfe_addr_equal(&p_sic->src_ip, saddr, is_v4) && - sfe_addr_equal(&p_sic->dest_ip_xlate, daddr, is_v4)) { - return conn; - } - } - - /* - * Reverse the tuple and try again - */ - key = fc_conn_hash(daddr, saddr, dport, sport, is_v4); - - sfe_hash_for_each_possible(fc_conn_ht, conn, hl, key) { - if (conn->is_v4 != is_v4) { - continue; - } - - p_sic = conn->sic; - - if (p_sic->protocol == proto && - p_sic->src_port == dport && - p_sic->dest_port_xlate == sport && - sfe_addr_equal(&p_sic->src_ip, daddr, is_v4) && - sfe_addr_equal(&p_sic->dest_ip_xlate, saddr, is_v4)) { - return conn; - } - } - - DEBUG_TRACE("connection not found\n"); - return NULL; -} - -/* - * fast_classifier_add_conn() - * add a connection object in the hash table if no duplicate - * @conn connection to add - * @return conn if successful, NULL if duplicate - */ -static struct sfe_connection * -fast_classifier_add_conn(struct sfe_connection *conn) -{ - struct sfe_connection_create *sic = conn->sic; - u32 key; - - spin_lock_bh(&sfe_connections_lock); - if (fast_classifier_find_conn(&sic->src_ip, &sic->dest_ip, sic->src_port, - sic->dest_port, sic->protocol, conn->is_v4)) { - spin_unlock_bh(&sfe_connections_lock); - return NULL; - } - - key = fc_conn_hash(&sic->src_ip, &sic->dest_ip, - sic->src_port, sic->dest_port, conn->is_v4); - - hash_add(fc_conn_ht, &conn->hl, key); - sfe_connections_size++; - spin_unlock_bh(&sfe_connections_lock); - - DEBUG_TRACE(" -> adding item to sfe_connections, new size: %d\n", sfe_connections_size); - - DEBUG_TRACE("new offloadable: key: %u proto: %d src_ip: %pIS dst_ip: %pIS, src_port: %d, dst_port: %d\n", - key, sic->protocol, &(sic->src_ip), &(sic->dest_ip), sic->src_port, sic->dest_port); - - return conn; -} - -/* - * fast_classifier_offload_genl_msg() - * Called from user space to offload a connection - */ -static int -fast_classifier_offload_genl_msg(struct sk_buff *skb, struct genl_info *info) -{ - struct nlattr *na; - struct fast_classifier_tuple *fc_msg; - struct sfe_connection *conn; - - na = info->attrs[FAST_CLASSIFIER_A_TUPLE]; - fc_msg = nla_data(na); - - DEBUG_TRACE("want to offload: %d-%d, %pIS, %pIS, %d, %d SMAC=%pM DMAC=%pM\n", - fc_msg->ethertype, - fc_msg->proto, - &fc_msg->src_saddr, - &fc_msg->dst_saddr, - fc_msg->sport, - fc_msg->dport, - fc_msg->smac, - fc_msg->dmac); - - spin_lock_bh(&sfe_connections_lock); - conn = fast_classifier_sb_find_conn((sfe_ip_addr_t *)&fc_msg->src_saddr, - (sfe_ip_addr_t *)&fc_msg->dst_saddr, - fc_msg->sport, - fc_msg->dport, - fc_msg->proto, - (fc_msg->ethertype == AF_INET)); - if (!conn) { - spin_unlock_bh(&sfe_connections_lock); - DEBUG_TRACE("REQUEST OFFLOAD NO MATCH\n"); - atomic_inc(&offload_no_match_msgs); - return 0; - } - - conn->offload_permit = 1; - spin_unlock_bh(&sfe_connections_lock); - atomic_inc(&offload_msgs); - - DEBUG_TRACE("INFO: calling sfe rule creation!\n"); - return 0; -} - -/* - * fast_classifier_nl_genl_msg_DUMP() - * ignore fast_classifier_messages OFFLOADED and DONE - */ -static int fast_classifier_nl_genl_msg_DUMP(struct sk_buff *skb, - struct netlink_callback *cb) -{ - return 0; -} - -/* auto offload connection once we have this many packets*/ -static int offload_at_pkts = 128; - -/* - * fast_classifier_post_routing() - * Called for packets about to leave the box - either locally generated or forwarded from another interface - */ -static unsigned int fast_classifier_post_routing(struct sk_buff *skb, bool is_v4) -{ - int ret; - struct sfe_connection_create sic; - struct sfe_connection_create *p_sic; - struct net_device *in; - struct nf_conn *ct; - enum ip_conntrack_info ctinfo; - struct net_device *dev; - struct net_device *src_dev; - struct net_device *dest_dev; - struct net_device *src_br_dev = NULL; - struct net_device *dest_br_dev = NULL; - struct nf_conntrack_tuple orig_tuple; - struct nf_conntrack_tuple reply_tuple; - struct sfe_connection *conn; - SFE_NF_CONN_ACCT(acct); - - /* - * Don't process broadcast or multicast packets. - */ - if (unlikely(skb->pkt_type == PACKET_BROADCAST)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_PACKET_BROADCAST); - DEBUG_TRACE("broadcast, ignoring\n"); - return NF_ACCEPT; - } - if (unlikely(skb->pkt_type == PACKET_MULTICAST)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_PACKET_MULTICAST); - DEBUG_TRACE("multicast, ignoring\n"); - return NF_ACCEPT; - } - - /* - * Don't process packets that are not being forwarded. - */ - in = dev_get_by_index(&init_net, skb->skb_iif); - if (!in) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_IIF); - DEBUG_TRACE("packet not forwarding\n"); - return NF_ACCEPT; - } - - dev_put(in); - - /* - * Don't process packets that aren't being tracked by conntrack. - */ - ct = nf_ct_get(skb, &ctinfo); - if (unlikely(!ct)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_CT); - DEBUG_TRACE("no conntrack connection, ignoring\n"); - return NF_ACCEPT; - } - - /* - * Don't process untracked connections. - */ - if (unlikely(nf_ct_is_untracked(ct))) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_CT_NO_TRACK); - DEBUG_TRACE("untracked connection\n"); - return NF_ACCEPT; - } - - /* - * Unconfirmed connection may be dropped by Linux at the final step, - * So we don't process unconfirmed connections. - */ - if (!nf_ct_is_confirmed(ct)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_CT_NO_CONFIRM); - DEBUG_TRACE("unconfirmed connection\n"); - return NF_ACCEPT; - } - - /* - * Don't process connections that require support from a 'helper' (typically a NAT ALG). - */ - if (unlikely(nfct_help(ct))) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_CT_IS_ALG); - DEBUG_TRACE("connection has helper\n"); - return NF_ACCEPT; - } - - /* - * Check if the acceleration of a flow could be rejected quickly. - */ - acct = nf_conn_acct_find(ct); - if (acct) { - long long packets = atomic64_read(&SFE_ACCT_COUNTER(acct)[CTINFO2DIR(ctinfo)].packets); - if ((packets > 0xff) && (packets & 0xff)) { - /* - * Connection hits slow path at least 256 times, so it must be not able to accelerate. - * But we also give it a chance to walk through ECM every 256 packets - */ - return NF_ACCEPT; - } - } - - memset(&sic, 0, sizeof(sic)); - - /* - * Look up the details of our connection in conntrack. - * - * Note that the data we get from conntrack is for the "ORIGINAL" direction - * but our packet may actually be in the "REPLY" direction. - */ - orig_tuple = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple; - reply_tuple = ct->tuplehash[IP_CT_DIR_REPLY].tuple; - sic.protocol = (s32)orig_tuple.dst.protonum; - - sic.flags = 0; - - /* - * Get addressing information, non-NAT first - */ - if (is_v4) { - u32 dscp; - - sic.src_ip.ip = (__be32)orig_tuple.src.u3.ip; - sic.dest_ip.ip = (__be32)orig_tuple.dst.u3.ip; - - if (ipv4_is_multicast(sic.src_ip.ip) || ipv4_is_multicast(sic.dest_ip.ip)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_IS_IPV4_MCAST); - DEBUG_TRACE("multicast address\n"); - return NF_ACCEPT; - } - - /* - * NAT'ed addresses - note these are as seen from the 'reply' direction - * When NAT does not apply to this connection these will be identical to the above. - */ - sic.src_ip_xlate.ip = (__be32)reply_tuple.dst.u3.ip; - sic.dest_ip_xlate.ip = (__be32)reply_tuple.src.u3.ip; - - dscp = ipv4_get_dsfield(ip_hdr(skb)) >> XT_DSCP_SHIFT; - if (dscp) { - sic.dest_dscp = dscp; - sic.src_dscp = sic.dest_dscp; - sic.flags |= SFE_CREATE_FLAG_REMARK_DSCP; - } - } else { - u32 dscp; - - sic.src_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.src.u3.in6); - sic.dest_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.dst.u3.in6); - - if (ipv6_addr_is_multicast((struct in6_addr *)sic.src_ip.ip6) || - ipv6_addr_is_multicast((struct in6_addr *)sic.dest_ip.ip6)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_IS_IPV6_MCAST); - DEBUG_TRACE("multicast address\n"); - return NF_ACCEPT; - } - - /* - * NAT'ed addresses - note these are as seen from the 'reply' direction - * When NAT does not apply to this connection these will be identical to the above. - */ - sic.src_ip_xlate.ip6[0] = *((struct sfe_ipv6_addr *)&reply_tuple.dst.u3.in6); - sic.dest_ip_xlate.ip6[0] = *((struct sfe_ipv6_addr *)&reply_tuple.src.u3.in6); - - dscp = ipv6_get_dsfield(ipv6_hdr(skb)) >> XT_DSCP_SHIFT; - if (dscp) { - sic.dest_dscp = dscp; - sic.src_dscp = sic.dest_dscp; - sic.flags |= SFE_CREATE_FLAG_REMARK_DSCP; - } - } - - switch (sic.protocol) { - case IPPROTO_TCP: - sic.src_port = orig_tuple.src.u.tcp.port; - sic.dest_port = orig_tuple.dst.u.tcp.port; - sic.src_port_xlate = reply_tuple.dst.u.tcp.port; - sic.dest_port_xlate = reply_tuple.src.u.tcp.port; - - /* - * Don't try to manage a non-established connection. - */ - if (!test_bit(IPS_ASSURED_BIT, &ct->status)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_TCP_NOT_ASSURED); - DEBUG_TRACE("non-established connection\n"); - return NF_ACCEPT; - } - - break; - - case IPPROTO_UDP: - sic.src_port = orig_tuple.src.u.udp.port; - sic.dest_port = orig_tuple.dst.u.udp.port; - sic.src_port_xlate = reply_tuple.dst.u.udp.port; - sic.dest_port_xlate = reply_tuple.src.u.udp.port; - break; - - default: - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_UNKNOW_PROTOCOL); - DEBUG_TRACE("unhandled protocol %d\n", sic.protocol); - return NF_ACCEPT; - } - -#ifdef CONFIG_XFRM - sic.original_accel = 1; - sic.reply_accel = 1; -#endif - - /* - * Get QoS information - */ - if (skb->priority) { - sic.dest_priority = skb->priority; - sic.src_priority = sic.dest_priority; - sic.flags |= SFE_CREATE_FLAG_REMARK_PRIORITY; - } - - DEBUG_TRACE("POST_ROUTE: checking new connection: %d src_ip: %pIS dst_ip: %pIS, src_port: %d, dst_port: %d\n", - sic.protocol, &sic.src_ip, &sic.dest_ip, sic.src_port, sic.dest_port); - - /* - * If we already have this connection in our list, skip it - * XXX: this may need to be optimized - */ - spin_lock_bh(&sfe_connections_lock); - - conn = fast_classifier_find_conn(&sic.src_ip, &sic.dest_ip, sic.src_port, sic.dest_port, sic.protocol, is_v4); - if (conn) { - conn->hits++; - - if (!conn->offloaded) { - if (conn->offload_permit || conn->hits >= offload_at_pkts) { - DEBUG_TRACE("OFFLOADING CONNECTION, TOO MANY HITS\n"); - - if (fast_classifier_update_protocol(conn->sic, conn->ct) == 0) { - spin_unlock_bh(&sfe_connections_lock); - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_UPDATE_PROTOCOL_FAIL); - DEBUG_TRACE("UNKNOWN PROTOCOL OR CONNECTION CLOSING, SKIPPING\n"); - return NF_ACCEPT; - } - - DEBUG_TRACE("INFO: calling sfe rule creation!\n"); - spin_unlock_bh(&sfe_connections_lock); - - ret = is_v4 ? sfe_ipv4_create_rule(conn->sic) : sfe_ipv6_create_rule(conn->sic); - if ((ret == 0) || (ret == -EADDRINUSE)) { - struct fast_classifier_tuple fc_msg; - - if (is_v4) { - fc_msg.ethertype = AF_INET; - fc_msg.src_saddr.in = *((struct in_addr *)&sic.src_ip); - fc_msg.dst_saddr.in = *((struct in_addr *)&sic.dest_ip_xlate); - } else { - fc_msg.ethertype = AF_INET6; - fc_msg.src_saddr.in6 = *((struct in6_addr *)&sic.src_ip); - fc_msg.dst_saddr.in6 = *((struct in6_addr *)&sic.dest_ip_xlate); - } - - fc_msg.proto = sic.protocol; - fc_msg.sport = sic.src_port; - fc_msg.dport = sic.dest_port_xlate; - memcpy(fc_msg.smac, conn->smac, ETH_ALEN); - memcpy(fc_msg.dmac, conn->dmac, ETH_ALEN); - fast_classifier_send_genl_msg(FAST_CLASSIFIER_C_OFFLOADED, &fc_msg); - conn->offloaded = 1; - } - - return NF_ACCEPT; - } - } - - spin_unlock_bh(&sfe_connections_lock); - if (conn->offloaded) { - is_v4 ? sfe_ipv4_update_rule(conn->sic) : sfe_ipv6_update_rule(conn->sic); - } - - DEBUG_TRACE("FOUND, SKIPPING\n"); - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_WAIT_FOR_ACCELERATION); - return NF_ACCEPT; - } - - spin_unlock_bh(&sfe_connections_lock); - - /* - * Get the net device and MAC addresses that correspond to the various source and - * destination host addresses. - */ - if (!fast_classifier_find_dev_and_mac_addr(&sic.src_ip, &src_dev, sic.src_mac, is_v4)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_SRC_DEV); - return NF_ACCEPT; - } - - if (!fast_classifier_find_dev_and_mac_addr(&sic.src_ip_xlate, &dev, sic.src_mac_xlate, is_v4)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_SRC_XLATE_DEV); - goto done1; - } - - dev_put(dev); - - if (!fast_classifier_find_dev_and_mac_addr(&sic.dest_ip, &dev, sic.dest_mac, is_v4)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_DEST_DEV); - goto done1; - } - - dev_put(dev); - - if (!fast_classifier_find_dev_and_mac_addr(&sic.dest_ip_xlate, &dest_dev, sic.dest_mac_xlate, is_v4)) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_DEST_XLATE_DEV); - goto done1; - } - - /* - * Our devices may actually be part of a bridge interface. If that's - * the case then find the bridge interface instead. - */ - if (src_dev->priv_flags & IFF_BRIDGE_PORT) { - src_br_dev = sfe_dev_get_master(src_dev); - if (!src_br_dev) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_BRIDGE); - DEBUG_TRACE("no bridge found for: %s\n", src_dev->name); - goto done2; - } - - src_dev = src_br_dev; - } - - if (dest_dev->priv_flags & IFF_BRIDGE_PORT) { - dest_br_dev = sfe_dev_get_master(dest_dev); - if (!dest_br_dev) { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_NO_BRIDGE); - DEBUG_TRACE("no bridge found for: %s\n", dest_dev->name); - goto done3; - } - - dest_dev = dest_br_dev; - } - - sic.src_dev = src_dev; - sic.dest_dev = dest_dev; - - sic.src_mtu = src_dev->mtu; - sic.dest_mtu = dest_dev->mtu; - - if (skb->mark) { - DEBUG_TRACE("SKB MARK NON ZERO %x\n", skb->mark); - } - sic.mark = skb->mark; - - conn = kmalloc(sizeof(*conn), GFP_ATOMIC); - if (!conn) { - printk(KERN_CRIT "ERROR: no memory for sfe\n"); - goto done3; - } - conn->hits = 0; - conn->offload_permit = 0; - conn->offloaded = 0; - conn->is_v4 = is_v4; - DEBUG_TRACE("Source MAC=%pM\n", sic.src_mac); - memcpy(conn->smac, sic.src_mac, ETH_ALEN); - memcpy(conn->dmac, sic.dest_mac_xlate, ETH_ALEN); - - p_sic = kmalloc(sizeof(*p_sic), GFP_ATOMIC); - if (!p_sic) { - printk(KERN_CRIT "ERROR: no memory for sfe\n"); - kfree(conn); - goto done3; - } - - memcpy(p_sic, &sic, sizeof(sic)); - conn->sic = p_sic; - conn->ct = ct; - - if (!fast_classifier_add_conn(conn)) { - kfree(conn->sic); - kfree(conn); - } - - /* - * If we had bridge ports then release them too. - */ - if (dest_br_dev) { - dev_put(dest_br_dev); - } - -done3: - if (src_br_dev) { - dev_put(src_br_dev); - } - -done2: - dev_put(dest_dev); - -done1: - dev_put(src_dev); - - return NF_ACCEPT; -} - -/* - * fast_classifier_ipv4_post_routing_hook() - * Called for packets about to leave the box - either locally generated or forwarded from another interface - */ -fast_classifier_ipv4_post_routing_hook(hooknum, ops, skb, in_unused, out, okfn) -{ - return fast_classifier_post_routing(skb, true); -} - -/* - * fast_classifier_ipv6_post_routing_hook() - * Called for packets about to leave the box - either locally generated or forwarded from another interface - */ -fast_classifier_ipv6_post_routing_hook(hooknum, ops, skb, in_unused, out, okfn) -{ - return fast_classifier_post_routing(skb, false); -} - -/* - * fast_classifier_update_mark() - * updates the mark for a fast-classifier connection - */ -static void fast_classifier_update_mark(struct sfe_connection_mark *mark, bool is_v4) -{ - struct sfe_connection *conn; - - spin_lock_bh(&sfe_connections_lock); - - conn = fast_classifier_find_conn(&mark->src_ip, &mark->dest_ip, - mark->src_port, mark->dest_port, - mark->protocol, is_v4); - if (conn) { - conn->sic->mark = mark->mark; - } - - spin_unlock_bh(&sfe_connections_lock); -} - -#ifdef CONFIG_NF_CONNTRACK_EVENTS -/* - * fast_classifier_conntrack_event() - * Callback event invoked when a conntrack connection's state changes. - */ -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -static int fast_classifier_conntrack_event(struct notifier_block *this, - unsigned long events, void *ptr) -#else -static int fast_classifier_conntrack_event(unsigned int events, struct nf_ct_event *item) -#endif -{ -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS - struct nf_ct_event *item = ptr; -#endif - struct sfe_connection_destroy sid; - struct nf_conn *ct = item->ct; - struct nf_conntrack_tuple orig_tuple; - struct sfe_connection *conn; - struct fast_classifier_tuple fc_msg; - int offloaded = 0; - bool is_v4; - - /* - * If we don't have a conntrack entry then we're done. - */ - if (unlikely(!ct)) { - DEBUG_WARN("no ct in conntrack event callback\n"); - return NOTIFY_DONE; - } - - /* - * If this is an untracked connection then we can't have any state either. - */ - if (unlikely(nf_ct_is_untracked(ct))) { - DEBUG_TRACE("ignoring untracked conn\n"); - return NOTIFY_DONE; - } - - orig_tuple = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple; - sid.protocol = (s32)orig_tuple.dst.protonum; - - /* - * Extract information from the conntrack connection. We're only interested - * in nominal connection information (i.e. we're ignoring any NAT information). - */ - if (likely(nf_ct_l3num(ct) == AF_INET)) { - sid.src_ip.ip = (__be32)orig_tuple.src.u3.ip; - sid.dest_ip.ip = (__be32)orig_tuple.dst.u3.ip; - is_v4 = true; - } else if (likely(nf_ct_l3num(ct) == AF_INET6)) { - sid.src_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.src.u3.in6); - sid.dest_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.dst.u3.in6); - is_v4 = false; - } else { - DEBUG_TRACE("ignoring non-IPv4 and non-IPv6 connection\n"); - return NOTIFY_DONE; - } - - switch (sid.protocol) { - case IPPROTO_TCP: - sid.src_port = orig_tuple.src.u.tcp.port; - sid.dest_port = orig_tuple.dst.u.tcp.port; - break; - - case IPPROTO_UDP: - sid.src_port = orig_tuple.src.u.udp.port; - sid.dest_port = orig_tuple.dst.u.udp.port; - break; - - default: - DEBUG_TRACE("unhandled protocol: %d\n", sid.protocol); - return NOTIFY_DONE; - } - - /* - * Check for an updated mark - */ - if ((events & (1 << IPCT_MARK)) && (ct->mark != 0)) { - struct sfe_connection_mark mark; - - mark.protocol = sid.protocol; - mark.src_ip = sid.src_ip; - mark.dest_ip = sid.dest_ip; - mark.src_port = sid.src_port; - mark.dest_port = sid.dest_port; - mark.mark = ct->mark; - - is_v4 ? sfe_ipv4_mark_rule(&mark) : sfe_ipv6_mark_rule(&mark); - fast_classifier_update_mark(&mark, is_v4); - } - - /* - * We're only interested in destroy events at this point - */ - if (unlikely(!(events & (1 << IPCT_DESTROY)))) { - DEBUG_TRACE("ignoring non-destroy event\n"); - return NOTIFY_DONE; - } - - DEBUG_TRACE("Try to clean up: proto: %d src_ip: %pIS dst_ip: %pIS, src_port: %d, dst_port: %d\n", - sid.protocol, &sid.src_ip, &sid.dest_ip, sid.src_port, sid.dest_port); - - spin_lock_bh(&sfe_connections_lock); - - conn = fast_classifier_find_conn(&sid.src_ip, &sid.dest_ip, sid.src_port, sid.dest_port, sid.protocol, is_v4); - if (conn && conn->offloaded) { - if (is_v4) { - fc_msg.ethertype = AF_INET; - fc_msg.src_saddr.in = *((struct in_addr *)&conn->sic->src_ip); - fc_msg.dst_saddr.in = *((struct in_addr *)&conn->sic->dest_ip_xlate); - } else { - fc_msg.ethertype = AF_INET6; - fc_msg.src_saddr.in6 = *((struct in6_addr *)&conn->sic->src_ip); - fc_msg.dst_saddr.in6 = *((struct in6_addr *)&conn->sic->dest_ip_xlate); - } - - fc_msg.proto = conn->sic->protocol; - fc_msg.sport = conn->sic->src_port; - fc_msg.dport = conn->sic->dest_port_xlate; - memcpy(fc_msg.smac, conn->smac, ETH_ALEN); - memcpy(fc_msg.dmac, conn->dmac, ETH_ALEN); - offloaded = 1; - } - - if (conn) { - DEBUG_TRACE("Free connection\n"); - - hash_del(&conn->hl); - sfe_connections_size--; - kfree(conn->sic); - kfree(conn); - } else { - fast_classifier_incr_exceptions(FAST_CL_EXCEPTION_CT_DESTROY_MISS); - } - - spin_unlock_bh(&sfe_connections_lock); - - is_v4 ? sfe_ipv4_destroy_rule(&sid) : sfe_ipv6_destroy_rule(&sid); - - if (offloaded) { - fast_classifier_send_genl_msg(FAST_CLASSIFIER_C_DONE, &fc_msg); - } - - return NOTIFY_DONE; -} - -/* - * Netfilter conntrack event system to monitor connection tracking changes - */ -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -static struct notifier_block fast_classifier_conntrack_notifier = { - .notifier_call = fast_classifier_conntrack_event, -}; -#else -static struct nf_ct_event_notifier fast_classifier_conntrack_notifier = { - .fcn = fast_classifier_conntrack_event, -}; -#endif -#endif - -/* - * Structure to establish a hook into the post routing netfilter point - this - * will pick up local outbound and packets going from one interface to another. - * - * Note: see include/linux/netfilter_ipv4.h for info related to priority levels. - * We want to examine packets after NAT translation and any ALG processing. - */ -static struct nf_hook_ops fast_classifier_ops_post_routing[] __read_mostly = { - SFE_IPV4_NF_POST_ROUTING_HOOK(__fast_classifier_ipv4_post_routing_hook), - SFE_IPV6_NF_POST_ROUTING_HOOK(__fast_classifier_ipv6_post_routing_hook), -}; - -/* - * fast_classifier_sync_rule() - * Synchronize a connection's state. - */ -static void fast_classifier_sync_rule(struct sfe_connection_sync *sis) -{ - struct nf_conntrack_tuple_hash *h; - struct nf_conntrack_tuple tuple; - struct nf_conn *ct; - SFE_NF_CONN_ACCT(acct); - - /* - * Create a tuple so as to be able to look up a connection - */ - memset(&tuple, 0, sizeof(tuple)); - tuple.src.u.all = (__be16)sis->src_port; - tuple.dst.dir = IP_CT_DIR_ORIGINAL; - tuple.dst.protonum = (u8)sis->protocol; - tuple.dst.u.all = (__be16)sis->dest_port; - - if (sis->is_v6) { - tuple.src.u3.in6 = *((struct in6_addr *)sis->src_ip.ip6); - tuple.dst.u3.in6 = *((struct in6_addr *)sis->dest_ip.ip6); - tuple.src.l3num = AF_INET6; - - DEBUG_TRACE("update connection - p: %d, s: %pI6:%u, d: %pI6:%u\n", - (int)tuple.dst.protonum, - &tuple.src.u3.in6, (unsigned int)ntohs(tuple.src.u.all), - &tuple.dst.u3.in6, (unsigned int)ntohs(tuple.dst.u.all)); - } else { - tuple.src.u3.ip = sis->src_ip.ip; - tuple.dst.u3.ip = sis->dest_ip.ip; - tuple.src.l3num = AF_INET; - - DEBUG_TRACE("update connection - p: %d, s: %pI4:%u, d: %pI4:%u\n", - (int)tuple.dst.protonum, - &tuple.src.u3.ip, (unsigned int)ntohs(tuple.src.u.all), - &tuple.dst.u3.ip, (unsigned int)ntohs(tuple.dst.u.all)); - } - - /* - * Update packet count for ingress on bridge device - */ - if (skip_to_bridge_ingress) { - struct rtnl_link_stats64 nlstats; - nlstats.tx_packets = 0; - nlstats.tx_bytes = 0; - - if (sis->src_dev && IFF_EBRIDGE && - (sis->src_new_packet_count || sis->src_new_byte_count)) { - nlstats.rx_packets = sis->src_new_packet_count; - nlstats.rx_bytes = sis->src_new_byte_count; - spin_lock_bh(&sfe_connections_lock); - br_dev_update_stats(sis->src_dev, &nlstats); - spin_unlock_bh(&sfe_connections_lock); - } - if (sis->dest_dev && IFF_EBRIDGE && - (sis->dest_new_packet_count || sis->dest_new_byte_count)) { - nlstats.rx_packets = sis->dest_new_packet_count; - nlstats.rx_bytes = sis->dest_new_byte_count; - spin_lock_bh(&sfe_connections_lock); - br_dev_update_stats(sis->dest_dev, &nlstats); - spin_unlock_bh(&sfe_connections_lock); - } - } - - /* - * Look up conntrack connection - */ - h = nf_conntrack_find_get(&init_net, SFE_NF_CT_DEFAULT_ZONE, &tuple); - if (unlikely(!h)) { - DEBUG_TRACE("no connection found\n"); - return; - } - - ct = nf_ct_tuplehash_to_ctrack(h); - NF_CT_ASSERT(ct->timeout.data == (unsigned long)ct); - - /* - * Only update if this is not a fixed timeout - */ - if (!test_bit(IPS_FIXED_TIMEOUT_BIT, &ct->status)) { - spin_lock_bh(&ct->lock); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)) - ct->timeout += sis->delta_jiffies; -#else - ct->timeout.expires += sis->delta_jiffies; -#endif - spin_unlock_bh(&ct->lock); - } - - acct = nf_conn_acct_find(ct); - if (acct) { - spin_lock_bh(&ct->lock); - atomic64_add(sis->src_new_packet_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_ORIGINAL].packets); - atomic64_add(sis->src_new_byte_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_ORIGINAL].bytes); - atomic64_add(sis->dest_new_packet_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_REPLY].packets); - atomic64_add(sis->dest_new_byte_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_REPLY].bytes); - spin_unlock_bh(&ct->lock); - } - - switch (sis->protocol) { - case IPPROTO_TCP: - spin_lock_bh(&ct->lock); - if (ct->proto.tcp.seen[0].td_maxwin < sis->src_td_max_window) { - ct->proto.tcp.seen[0].td_maxwin = sis->src_td_max_window; - } - if ((s32)(ct->proto.tcp.seen[0].td_end - sis->src_td_end) < 0) { - ct->proto.tcp.seen[0].td_end = sis->src_td_end; - } - if ((s32)(ct->proto.tcp.seen[0].td_maxend - sis->src_td_max_end) < 0) { - ct->proto.tcp.seen[0].td_maxend = sis->src_td_max_end; - } - if (ct->proto.tcp.seen[1].td_maxwin < sis->dest_td_max_window) { - ct->proto.tcp.seen[1].td_maxwin = sis->dest_td_max_window; - } - if ((s32)(ct->proto.tcp.seen[1].td_end - sis->dest_td_end) < 0) { - ct->proto.tcp.seen[1].td_end = sis->dest_td_end; - } - if ((s32)(ct->proto.tcp.seen[1].td_maxend - sis->dest_td_max_end) < 0) { - ct->proto.tcp.seen[1].td_maxend = sis->dest_td_max_end; - } - spin_unlock_bh(&ct->lock); - break; - - case IPPROTO_UDP: - /* - * In Linux connection track, UDP flow has two timeout values: - * /proc/sys/net/netfilter/nf_conntrack_udp_timeout: - * this is for uni-direction UDP flow, normally its value is 60 seconds - * /proc/sys/net/netfilter/nf_conntrack_udp_timeout_stream: - * this is for bi-direction UDP flow, normally its value is 180 seconds - * - * Linux will update timer of UDP flow to stream timeout once it seen packets - * in reply direction. But if flow is accelerated by NSS or SFE, Linux won't - * see any packets. So we have to do the same thing in our stats sync message. - */ - if (!test_bit(IPS_ASSURED_BIT, &ct->status) && acct) { - u_int64_t reply_pkts = atomic64_read(&SFE_ACCT_COUNTER(acct)[IP_CT_DIR_REPLY].packets); - - if (reply_pkts != 0) { - struct nf_conntrack_l4proto *l4proto; - unsigned int *timeouts; - - set_bit(IPS_SEEN_REPLY_BIT, &ct->status); - set_bit(IPS_ASSURED_BIT, &ct->status); - - l4proto = __nf_ct_l4proto_find((sis->is_v6 ? AF_INET6 : AF_INET), IPPROTO_UDP); - timeouts = nf_ct_timeout_lookup(&init_net, ct, l4proto); - - spin_lock_bh(&ct->lock); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)) - ct->timeout = nfct_time_stamp + timeouts[UDP_CT_REPLIED]; -#else - ct->timeout.expires = jiffies + timeouts[UDP_CT_REPLIED]; -#endif - spin_unlock_bh(&ct->lock); - } - } - break; - } - - /* - * Release connection - */ - nf_ct_put(ct); -} - -/* - * fast_classifier_device_event() - */ -static int fast_classifier_device_event(struct notifier_block *this, unsigned long event, void *ptr) -{ - struct net_device *dev = SFE_DEV_EVENT_PTR(ptr); - - if (dev && (event == NETDEV_DOWN)) { - sfe_ipv4_destroy_all_rules_for_dev(dev); - sfe_ipv6_destroy_all_rules_for_dev(dev); - } - - return NOTIFY_DONE; -} - -/* - * fast_classifier_inet_event() - */ -static int fast_classifier_inet_event(struct notifier_block *this, unsigned long event, void *ptr) -{ - struct net_device *dev = ((struct in_ifaddr *)ptr)->ifa_dev->dev; - - if (dev && (event == NETDEV_DOWN)) { - sfe_ipv4_destroy_all_rules_for_dev(dev); - } - - return NOTIFY_DONE; -} - -/* - * fast_classifier_inet6_event() - */ -static int fast_classifier_inet6_event(struct notifier_block *this, unsigned long event, void *ptr) -{ - struct net_device *dev = ((struct inet6_ifaddr *)ptr)->idev->dev; - - if (dev && (event == NETDEV_DOWN)) { - sfe_ipv6_destroy_all_rules_for_dev(dev); - } - - return NOTIFY_DONE; -} - -/* - * fast_classifier_get_offload_at_pkts() - */ -static ssize_t fast_classifier_get_offload_at_pkts(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - return snprintf(buf, (ssize_t)PAGE_SIZE, "%d\n", offload_at_pkts); -} - -/* - * fast_classifier_set_offload_at_pkts() - */ -static ssize_t fast_classifier_set_offload_at_pkts(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t size) -{ - long new; - int ret; - - ret = kstrtol(buf, 0, &new); - if (ret == -EINVAL || ((int)new != new)) - return -EINVAL; - - offload_at_pkts = new; - - return size; -} - -/* - * fast_classifier_get_debug_info() - */ -static ssize_t fast_classifier_get_debug_info(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - size_t len = 0; - struct sfe_connection *conn; - u32 i; - - spin_lock_bh(&sfe_connections_lock); - len += scnprintf(buf, PAGE_SIZE - len, "size=%d offload=%d offload_no_match=%d" - " offloaded=%d done=%d offl_dbg_msg_fail=%d done_dbg_msg_fail=%d\n", - sfe_connections_size, - atomic_read(&offload_msgs), - atomic_read(&offload_no_match_msgs), - atomic_read(&offloaded_msgs), - atomic_read(&done_msgs), - atomic_read(&offloaded_fail_msgs), - atomic_read(&done_fail_msgs)); - sfe_hash_for_each(fc_conn_ht, i, conn, hl) { - len += scnprintf(buf + len, PAGE_SIZE - len, - (conn->is_v4 ? "o=%d, p=%d [%pM]:%pI4:%u %pI4:%u:[%pM] m=%08x h=%d\n" : "o=%d, p=%d [%pM]:%pI6:%u %pI6:%u:[%pM] m=%08x h=%d\n"), - conn->offloaded, - conn->sic->protocol, - conn->sic->src_mac, - &conn->sic->src_ip, - conn->sic->src_port, - &conn->sic->dest_ip, - conn->sic->dest_port, - conn->sic->dest_mac_xlate, - conn->sic->mark, - conn->hits); - } - spin_unlock_bh(&sfe_connections_lock); - - return len; -} - -/* - * fast_classifier_get_skip_bridge_ingress() - */ -static ssize_t fast_classifier_get_skip_bridge_ingress(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - return snprintf(buf, (ssize_t)PAGE_SIZE, "%d\n", skip_to_bridge_ingress); -} - -/* - * fast_classifier_set_skip_bridge_ingress() - */ -static ssize_t fast_classifier_set_skip_bridge_ingress(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t size) -{ - long new; - int ret; - - ret = kstrtol(buf, 0, &new); - if (ret == -EINVAL || ((int)new != new)) - return -EINVAL; - - skip_to_bridge_ingress = new ? 1 : 0; - - return size; -} - -/* - * fast_classifier_get_exceptions - * dump exception counters - */ -static ssize_t fast_classifier_get_exceptions(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - int idx, len; - struct fast_classifier *sc = &__fsc; - - spin_lock_bh(&sc->lock); - for (len = 0, idx = 0; idx < FAST_CL_EXCEPTION_MAX; idx++) { - if (sc->exceptions[idx]) { - len += snprintf(buf + len, (ssize_t)(PAGE_SIZE - len), "%s = %d\n", fast_classifier_exception_events_string[idx], sc->exceptions[idx]); - } - } - spin_unlock_bh(&sc->lock); - - return len; -} - -/* - * sysfs attributes. - */ -static const struct device_attribute fast_classifier_attrs[] = { - __ATTR(offload_at_pkts, S_IWUSR | S_IRUGO, fast_classifier_get_offload_at_pkts, fast_classifier_set_offload_at_pkts), - __ATTR(debug_info, S_IRUGO, fast_classifier_get_debug_info, NULL), - __ATTR(skip_to_bridge_ingress, S_IWUSR | S_IRUGO, fast_classifier_get_skip_bridge_ingress, fast_classifier_set_skip_bridge_ingress), - __ATTR(exceptions, S_IRUGO, fast_classifier_get_exceptions, NULL), -}; - -/* - * fast_classifier_init() - */ -static int __init fast_classifier_init(void) -{ - struct fast_classifier *sc = &__fsc; - int result = -1; - size_t i, j; - - printk(KERN_ALERT "fast-classifier: starting up\n"); - DEBUG_INFO("SFE CM init\n"); - - hash_init(fc_conn_ht); - - /* - * Create sys/fast_classifier - */ - sc->sys_fast_classifier = kobject_create_and_add("fast_classifier", NULL); - if (!sc->sys_fast_classifier) { - DEBUG_ERROR("failed to register fast_classifier\n"); - goto exit1; - } - - for (i = 0; i < ARRAY_SIZE(fast_classifier_attrs); i++) { - result = sysfs_create_file(sc->sys_fast_classifier, &fast_classifier_attrs[i].attr); - if (result) { - DEBUG_ERROR("failed to register %s : %d\n", - fast_classifier_attrs[i].attr.name, result); - goto exit2; - } - } - - sc->dev_notifier.notifier_call = fast_classifier_device_event; - sc->dev_notifier.priority = 1; - register_netdevice_notifier(&sc->dev_notifier); - - sc->inet_notifier.notifier_call = fast_classifier_inet_event; - sc->inet_notifier.priority = 1; - register_inetaddr_notifier(&sc->inet_notifier); - - sc->inet6_notifier.notifier_call = fast_classifier_inet6_event; - sc->inet6_notifier.priority = 1; - register_inet6addr_notifier(&sc->inet6_notifier); - - /* - * Register our netfilter hooks. - */ - result = nf_register_hooks(fast_classifier_ops_post_routing, ARRAY_SIZE(fast_classifier_ops_post_routing)); - if (result < 0) { - DEBUG_ERROR("can't register nf post routing hook: %d\n", result); - goto exit3; - } - -#ifdef CONFIG_NF_CONNTRACK_EVENTS - /* - * Register a notifier hook to get fast notifications of expired connections. - * Note: In CONFIG_NF_CONNTRACK_CHAIN_EVENTS enabled case, nf_conntrack_register_notifier() - * function always returns 0. - */ - -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS - (void)nf_conntrack_register_notifier(&init_net, &fast_classifier_conntrack_notifier); -#else - result = nf_conntrack_register_notifier(&init_net, &fast_classifier_conntrack_notifier); - if (result < 0) { - DEBUG_ERROR("can't register nf notifier hook: %d\n", result); - goto exit4; - } -#endif -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)) - result = genl_register_family_with_ops_groups(&fast_classifier_gnl_family, - fast_classifier_gnl_ops, - fast_classifier_genl_mcgrp); - if (result) { - DEBUG_ERROR("failed to register genl ops: %d\n", result); - goto exit5; - } -#else - result = genl_register_family(&fast_classifier_gnl_family); - if (result) { - printk(KERN_CRIT "unable to register genl family\n"); - goto exit5; - } - - result = genl_register_ops(&fast_classifier_gnl_family, fast_classifier_gnl_ops); - if (result) { - printk(KERN_CRIT "unable to register ops\n"); - goto exit6; - } - - result = genl_register_mc_group(&fast_classifier_gnl_family, - fast_classifier_genl_mcgrp); - if (result) { - printk(KERN_CRIT "unable to register multicast group\n"); - goto exit6; - } -#endif - - printk(KERN_ALERT "fast-classifier: registered\n"); - - spin_lock_init(&sc->lock); - - /* - * Hook the receive path in the network stack. - */ - BUG_ON(fast_nat_recv); - RCU_INIT_POINTER(fast_nat_recv, fast_classifier_recv); - - /* - * Hook the shortcut sync callback. - */ - sfe_ipv4_register_sync_rule_callback(fast_classifier_sync_rule); - sfe_ipv6_register_sync_rule_callback(fast_classifier_sync_rule); - return 0; - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)) -exit6: - genl_unregister_family(&fast_classifier_gnl_family); -#endif - -exit5: -#ifdef CONFIG_NF_CONNTRACK_EVENTS - nf_conntrack_unregister_notifier(&init_net, &fast_classifier_conntrack_notifier); - -exit4: -#endif - nf_unregister_hooks(fast_classifier_ops_post_routing, ARRAY_SIZE(fast_classifier_ops_post_routing)); - -exit3: - unregister_inetaddr_notifier(&sc->inet_notifier); - unregister_inet6addr_notifier(&sc->inet6_notifier); - unregister_netdevice_notifier(&sc->dev_notifier); - -exit2: - for (j = 0; j < i; j++) { - sysfs_remove_file(sc->sys_fast_classifier, &fast_classifier_attrs[j].attr); - } - kobject_put(sc->sys_fast_classifier); - -exit1: - return result; -} - -/* - * fast_classifier_exit() - */ -static void __exit fast_classifier_exit(void) -{ - struct fast_classifier *sc = &__fsc; - int result = -1; - - DEBUG_INFO("SFE CM exit\n"); - printk(KERN_ALERT "fast-classifier: shutting down\n"); - - /* - * Unregister our sync callback. - */ - sfe_ipv4_register_sync_rule_callback(NULL); - sfe_ipv6_register_sync_rule_callback(NULL); - - /* - * Unregister our receive callback. - */ - RCU_INIT_POINTER(fast_nat_recv, NULL); - - /* - * Wait for all callbacks to complete. - */ - rcu_barrier(); - - /* - * Destroy all connections. - */ - sfe_ipv4_destroy_all_rules_for_dev(NULL); - sfe_ipv6_destroy_all_rules_for_dev(NULL); - -#if (LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)) - result = genl_unregister_ops(&fast_classifier_gnl_family, fast_classifier_gnl_ops); - if (result != 0) { - printk(KERN_CRIT "Unable to unreigster genl_ops\n"); - } -#endif - - result = genl_unregister_family(&fast_classifier_gnl_family); - if (result != 0) { - printk(KERN_CRIT "Unable to unreigster genl_family\n"); - } - -#ifdef CONFIG_NF_CONNTRACK_EVENTS - nf_conntrack_unregister_notifier(&init_net, &fast_classifier_conntrack_notifier); - -#endif - nf_unregister_hooks(fast_classifier_ops_post_routing, ARRAY_SIZE(fast_classifier_ops_post_routing)); - - unregister_inet6addr_notifier(&sc->inet6_notifier); - unregister_inetaddr_notifier(&sc->inet_notifier); - unregister_netdevice_notifier(&sc->dev_notifier); - - kobject_put(sc->sys_fast_classifier); -} - -module_init(fast_classifier_init) -module_exit(fast_classifier_exit) - -MODULE_DESCRIPTION("Shortcut Forwarding Engine - Connection Manager"); -MODULE_LICENSE("Dual BSD/GPL"); - diff --git a/package/lean/shortcut-fe/src/fast-classifier.h b/package/lean/shortcut-fe/src/fast-classifier.h deleted file mode 100644 index 6b7a18cf6..000000000 --- a/package/lean/shortcut-fe/src/fast-classifier.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * User space header to send message to the fast classifier - * - * Copyright (c) 2013,2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include - -#define FAST_CLASSIFIER_GENL_VERSION (1) -#define FAST_CLASSIFIER_GENL_NAME "FC" -#define FAST_CLASSIFIER_GENL_MCGRP "FC_MCGRP" -#define FAST_CLASSIFIER_GENL_HDRSIZE (0) - -enum { - FAST_CLASSIFIER_A_UNSPEC, - FAST_CLASSIFIER_A_TUPLE, - __FAST_CLASSIFIER_A_MAX, -}; - -#define FAST_CLASSIFIER_A_MAX (__FAST_CLASSIFIER_A_MAX - 1) - -enum { - FAST_CLASSIFIER_C_UNSPEC, - FAST_CLASSIFIER_C_OFFLOAD, - FAST_CLASSIFIER_C_OFFLOADED, - FAST_CLASSIFIER_C_DONE, - __FAST_CLASSIFIER_C_MAX, -}; - -#define FAST_CLASSIFIER_C_MAX (__FAST_CLASSIFIER_C_MAX - 1) - -struct fast_classifier_tuple { - unsigned short ethertype; - unsigned char proto; - union { - struct in_addr in; - struct in6_addr in6; - } src_saddr; - union { - struct in_addr in; - struct in6_addr in6; - } dst_saddr; - unsigned short sport; - unsigned short dport; - unsigned char smac[ETH_ALEN]; - unsigned char dmac[ETH_ALEN]; -}; diff --git a/package/lean/shortcut-fe/src/nl_classifier_test.c b/package/lean/shortcut-fe/src/nl_classifier_test.c deleted file mode 100644 index 639417964..000000000 --- a/package/lean/shortcut-fe/src/nl_classifier_test.c +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include -#include -#include -#include -#include - -#define NL_CLASSIFIER_GENL_VERSION 1 -#define NL_CLASSIFIER_GENL_FAMILY "FC" -#define NL_CLASSIFIER_GENL_GROUP "FC_MCGRP" -#define NL_CLASSIFIER_GENL_HDRSIZE 0 - -enum NL_CLASSIFIER_CMD { - NL_CLASSIFIER_CMD_UNSPEC, - NL_CLASSIFIER_CMD_ACCEL, - NL_CLASSIFIER_CMD_ACCEL_OK, - NL_CLASSIFIER_CMD_CONNECTION_CLOSED, - NL_CLASSIFIER_CMD_MAX, -}; - -enum NL_CLASSIFIER_ATTR { - NL_CLASSIFIER_ATTR_UNSPEC, - NL_CLASSIFIER_ATTR_TUPLE, - NL_CLASSIFIER_ATTR_MAX, -}; - -union nl_classifier_tuple_ip { - struct in_addr in; - struct in6_addr in6; -}; - -struct nl_classifier_tuple { - unsigned short af; - unsigned char proto; - union nl_classifier_tuple_ip src_ip; - union nl_classifier_tuple_ip dst_ip; - unsigned short sport; - unsigned short dport; - unsigned char smac[6]; - unsigned char dmac[6]; -}; - -struct nl_classifier_instance { - struct nl_sock *sock; - int family_id; - int group_id; - int stop; -}; - -struct nl_classifier_instance nl_cls_inst; - -static struct nla_policy nl_classifier_genl_policy[(NL_CLASSIFIER_ATTR_MAX+1)] = { - [NL_CLASSIFIER_ATTR_TUPLE] = { .type = NLA_UNSPEC }, -}; - -void nl_classifier_dump_nl_tuple(struct nl_classifier_tuple *tuple) -{ - char ip_str[64]; - - printf("protocol = %s\n", (tuple->proto == IPPROTO_UDP) ? "udp" : ((tuple->proto == IPPROTO_TCP) ? "tcp" : "unknown")); - printf("source ip = %s\n", inet_ntop(tuple->af, &tuple->src_ip, ip_str, sizeof(ip_str))); - printf("destination ip = %s\n", inet_ntop(tuple->af, &tuple->dst_ip, ip_str, sizeof(ip_str))); - printf("source port = %d\n", ntohs(tuple->sport)); - printf("destination port = %d\n", ntohs(tuple->dport)); -} - -int nl_classifier_msg_recv(struct nl_msg *msg, void *arg) -{ - struct nlmsghdr *nlh = nlmsg_hdr(msg); - struct genlmsghdr *gnlh = nlmsg_data(nlh); - struct nlattr *attrs[(NL_CLASSIFIER_ATTR_MAX+1)]; - - genlmsg_parse(nlh, NL_CLASSIFIER_GENL_HDRSIZE, attrs, NL_CLASSIFIER_ATTR_MAX, nl_classifier_genl_policy); - - switch (gnlh->cmd) { - case NL_CLASSIFIER_CMD_ACCEL_OK: - printf("Acceleration successful:\n"); - nl_classifier_dump_nl_tuple(nla_data(attrs[NL_CLASSIFIER_ATTR_TUPLE])); - return NL_OK; - case NL_CLASSIFIER_CMD_CONNECTION_CLOSED: - printf("Connection is closed:\n"); - nl_classifier_dump_nl_tuple(nla_data(attrs[NL_CLASSIFIER_ATTR_TUPLE])); - return NL_OK; - default: - printf("nl classifier received unknow message %d\n", gnlh->cmd); - } - - return NL_SKIP; -} - -void nl_classifier_offload(struct nl_classifier_instance *inst, - unsigned char proto, unsigned long *src_saddr, - unsigned long *dst_saddr, unsigned short sport, - unsigned short dport, int af) -{ - struct nl_msg *msg; - int ret; - struct nl_classifier_tuple classifier_msg; - - memset(&classifier_msg, 0, sizeof(classifier_msg)); - classifier_msg.af = af; - classifier_msg.proto = proto; - memcpy(&classifier_msg.src_ip, src_saddr, (af == AF_INET ? 4 : 16)); - memcpy(&classifier_msg.dst_ip, dst_saddr, (af == AF_INET ? 4 : 16)); - classifier_msg.sport = sport; - classifier_msg.dport = dport; - - msg = nlmsg_alloc(); - if (!msg) { - printf("Unable to allocate message\n"); - return; - } - - genlmsg_put(msg, NL_AUTO_PID, NL_AUTO_SEQ, inst->family_id, - NL_CLASSIFIER_GENL_HDRSIZE, NLM_F_REQUEST, - NL_CLASSIFIER_CMD_ACCEL, NL_CLASSIFIER_GENL_VERSION); - nla_put(msg, NL_CLASSIFIER_ATTR_TUPLE, sizeof(classifier_msg), &classifier_msg); - - ret = nl_send_auto(inst->sock, msg); - if (ret < 0) { - printf("send netlink message failed.\n"); - nlmsg_free(msg); - return; - } - - nlmsg_free(msg); - printf("nl classifier offload connection successful\n"); -} - -int nl_classifier_init(struct nl_classifier_instance *inst) -{ - int ret; - - inst->sock = nl_socket_alloc(); - if (!inst->sock) { - printf("Unable to allocation socket.\n"); - return -1; - } - genl_connect(inst->sock); - - inst->family_id = genl_ctrl_resolve(inst->sock, NL_CLASSIFIER_GENL_FAMILY); - if (inst->family_id < 0) { - printf("Unable to resolve family %s\n", NL_CLASSIFIER_GENL_FAMILY); - goto init_failed; - } - - inst->group_id = genl_ctrl_resolve_grp(inst->sock, NL_CLASSIFIER_GENL_FAMILY, NL_CLASSIFIER_GENL_GROUP); - if (inst->group_id < 0) { - printf("Unable to resolve mcast group %s\n", NL_CLASSIFIER_GENL_GROUP); - goto init_failed; - } - - ret = nl_socket_add_membership(inst->sock, inst->group_id); - if (ret < 0) { - printf("Unable to add membership\n"); - goto init_failed; - } - - nl_socket_disable_seq_check(inst->sock); - nl_socket_modify_cb(inst->sock, NL_CB_VALID, NL_CB_CUSTOM, nl_classifier_msg_recv, NULL); - - printf("nl classifier init successful\n"); - return 0; - -init_failed: - if (inst->sock) { - nl_close(inst->sock); - nl_socket_free(inst->sock); - inst->sock = NULL; - } - return -1; -} - -void nl_classifier_exit(struct nl_classifier_instance *inst) -{ - if (inst->sock) { - nl_close(inst->sock); - nl_socket_free(inst->sock); - inst->sock = NULL; - } - printf("nl classifier exit successful\n"); -} - -int nl_classifier_parse_arg(int argc, char *argv[], unsigned char *proto, unsigned long *src_saddr, - unsigned long *dst_saddr, unsigned short *sport, unsigned short *dport, int *af) -{ - int ret; - unsigned short port; - - if (argc < 7) { - printf("help: nl_classifier \n"); - return -1; - } - - if (0 == strncmp(argv[1], "v4", 2)) { - *af = AF_INET; - } else if (0 == strncmp(argv[1], "v6", 2)) { - *af = AF_INET6; - } else { - printf("Address family is not supported"); - return -1; - } - - if (0 == strncmp(argv[2], "udp", 3)) { - *proto = IPPROTO_UDP; - } else if (0 == strncmp(argv[2], "tcp", 3)) { - *proto = IPPROTO_TCP; - } else { - printf("Protocol is not supported"); - return -1; - } - - ret = inet_pton(*af, argv[3], src_saddr); - if (ret <= 0) { - printf("source ip has wrong format\n"); - return -1; - } - - ret = inet_pton(*af, argv[4], dst_saddr); - if (ret <= 0) { - printf("destination ip has wrong format\n"); - return -1; - } - - port = strtol(argv[5], NULL, 0); - *sport = htons(port); - port = strtol(argv[6], NULL, 0); - *dport = htons(port); - - printf("nl classifier parse arguments successful\n"); - return 0; -} - -int main(int argc, char *argv[]) -{ - struct nl_classifier_instance *inst = &nl_cls_inst; - unsigned char proto; - unsigned long src_addr[4]; - unsigned long dst_addr[4]; - unsigned short sport; - unsigned short dport; - int af; - int ret; - - ret = nl_classifier_parse_arg(argc, argv, &proto, src_addr, dst_addr, &sport, &dport, &af); - if (ret < 0) { - printf("Failed to parse arguments\n"); - return ret; - } - - ret = nl_classifier_init(inst); - if (ret < 0) { - printf("Unable to init generic netlink\n"); - return ret; - } - - nl_classifier_offload(inst, proto, src_addr, dst_addr, sport, dport, af); - - /* main loop to listen on message */ - while (!inst->stop) { - nl_recvmsgs_default(inst->sock); - } - - nl_classifier_exit(inst); - - return 0; -} diff --git a/package/lean/shortcut-fe/src/sfe.h b/package/lean/shortcut-fe/src/sfe.h deleted file mode 100644 index 21a127556..000000000 --- a/package/lean/shortcut-fe/src/sfe.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * sfe.h - * Shortcut forwarding engine. - * - * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * Debug output verbosity level. - */ -#define DEBUG_LEVEL 0 - -#if (DEBUG_LEVEL < 1) -#define DEBUG_ERROR(s, ...) -#else -#define DEBUG_ERROR(s, ...) \ -do { \ - printk("%s[%u]: ERROR:", __FILE__, __LINE__); \ - printk(s, ##__VA_ARGS__); \ -} while (0) -#endif - -#if (DEBUG_LEVEL < 2) -#define DEBUG_WARN(s, ...) -#else -#define DEBUG_WARN(s, ...) \ -do { \ - printk("%s[%u]: WARN:", __FILE__, __LINE__); \ - printk(s, ##__VA_ARGS__); \ -} while (0) -#endif - -#if (DEBUG_LEVEL < 3) -#define DEBUG_INFO(s, ...) -#else -#define DEBUG_INFO(s, ...) \ -do { \ - printk("%s[%u]: INFO:", __FILE__, __LINE__); \ - printk(s, ##__VA_ARGS__); \ -} while (0) -#endif - -#if (DEBUG_LEVEL < 4) -#define DEBUG_TRACE(s, ...) -#else -#define DEBUG_TRACE(s, ...) \ -do { \ - printk("%s[%u]: TRACE:", __FILE__, __LINE__); \ - printk(s, ##__VA_ARGS__); \ -} while (0) -#endif diff --git a/package/lean/shortcut-fe/src/sfe_backport.h b/package/lean/shortcut-fe/src/sfe_backport.h deleted file mode 100644 index b24f6e67e..000000000 --- a/package/lean/shortcut-fe/src/sfe_backport.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * sfe_backport.h - * Shortcut forwarding engine compatible header file. - * - * Copyright (c) 2014-2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) -#define sfe_define_post_routing_hook(FN_NAME, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \ -static unsigned int FN_NAME(void *priv, \ - struct sk_buff *SKB, \ - const struct nf_hook_state *state) -#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)) -#define sfe_define_post_routing_hook(FN_NAME, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \ -static unsigned int FN_NAME(const struct nf_hook_ops *OPS, \ - struct sk_buff *SKB, \ - const struct net_device *UNUSED, \ - const struct net_device *OUT, \ - int (*OKFN)(struct sk_buff *)) -#else -#define sfe_define_post_routing_hook(FN_NAME, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \ -static unsigned int FN_NAME(unsigned int HOOKNUM, \ - struct sk_buff *SKB, \ - const struct net_device *UNUSED, \ - const struct net_device *OUT, \ - int (*OKFN)(struct sk_buff *)) -#endif - -#define sfe_cm_ipv4_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \ - sfe_define_post_routing_hook(__sfe_cm_ipv4_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) -#define sfe_cm_ipv6_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \ - sfe_define_post_routing_hook(__sfe_cm_ipv6_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) -#define fast_classifier_ipv4_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \ - sfe_define_post_routing_hook(__fast_classifier_ipv4_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) -#define fast_classifier_ipv6_post_routing_hook(HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) \ - sfe_define_post_routing_hook(__fast_classifier_ipv6_post_routing_hook, HOOKNUM, OPS, SKB, UNUSED, OUT, OKFN) - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) -#define SFE_IPV4_NF_POST_ROUTING_HOOK(fn) \ - { \ - .hook = fn, \ - .pf = NFPROTO_IPV4, \ - .hooknum = NF_INET_POST_ROUTING, \ - .priority = NF_IP_PRI_NAT_SRC + 1, \ - } -#else -#define SFE_IPV4_NF_POST_ROUTING_HOOK(fn) \ - { \ - .hook = fn, \ - .owner = THIS_MODULE, \ - .pf = NFPROTO_IPV4, \ - .hooknum = NF_INET_POST_ROUTING, \ - .priority = NF_IP_PRI_NAT_SRC + 1, \ - } -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)) -#define SFE_IPV6_NF_POST_ROUTING_HOOK(fn) \ - { \ - .hook = fn, \ - .pf = NFPROTO_IPV6, \ - .hooknum = NF_INET_POST_ROUTING, \ - .priority = NF_IP_PRI_NAT_SRC + 1, \ - } -#else -#define SFE_IPV6_NF_POST_ROUTING_HOOK(fn) \ - { \ - .hook = fn, \ - .owner = THIS_MODULE, \ - .pf = NFPROTO_IPV6, \ - .hooknum = NF_INET_POST_ROUTING, \ - .priority = NF_IP6_PRI_NAT_SRC + 1, \ - } -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)) -#define SFE_NF_CT_DEFAULT_ZONE (&nf_ct_zone_dflt) -#else -#define SFE_NF_CT_DEFAULT_ZONE NF_CT_DEFAULT_ZONE -#endif - -/* - * sfe_dev_get_master - * get master of bridge port, and hold it - */ -static inline struct net_device *sfe_dev_get_master(struct net_device *dev) -{ - struct net_device *master; -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 9, 0)) - rcu_read_lock(); - master = netdev_master_upper_dev_get_rcu(dev); - if (master) - dev_hold(master); - - rcu_read_unlock(); -#else - master = dev->master; - if (master) - dev_hold(master); -#endif - return master; -} - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)) -#define SFE_DEV_EVENT_PTR(PTR) netdev_notifier_info_to_dev(PTR) -#else -#define SFE_DEV_EVENT_PTR(PTR) (struct net_device *)(PTR) -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)) -#define SFE_NF_CONN_ACCT(NM) struct nf_conn_acct *NM -#else -#define SFE_NF_CONN_ACCT(NM) struct nf_conn_counter *NM -#endif - -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)) -#define SFE_ACCT_COUNTER(NM) ((NM)->counter) -#else -#define SFE_ACCT_COUNTER(NM) (NM) -#endif - -#define sfe_hash_for_each_possible(name, obj, member, key) \ - hash_for_each_possible(name, obj, member, key) - -#define sfe_hash_for_each(name, bkt, obj, member) \ - hash_for_each(name, bkt, obj, member) diff --git a/package/lean/shortcut-fe/src/sfe_cm.c b/package/lean/shortcut-fe/src/sfe_cm.c deleted file mode 100644 index 6d3e21085..000000000 --- a/package/lean/shortcut-fe/src/sfe_cm.c +++ /dev/null @@ -1,1203 +0,0 @@ -/* - * sfe-cm.c - * Shortcut forwarding engine connection manager. - * - * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "sfe.h" -#include "sfe_cm.h" -#include "sfe_backport.h" - -typedef enum sfe_cm_exception { - SFE_CM_EXCEPTION_PACKET_BROADCAST, - SFE_CM_EXCEPTION_PACKET_MULTICAST, - SFE_CM_EXCEPTION_NO_IIF, - SFE_CM_EXCEPTION_NO_CT, - SFE_CM_EXCEPTION_CT_NO_TRACK, - SFE_CM_EXCEPTION_CT_NO_CONFIRM, - SFE_CM_EXCEPTION_CT_IS_ALG, - SFE_CM_EXCEPTION_IS_IPV4_MCAST, - SFE_CM_EXCEPTION_IS_IPV6_MCAST, - SFE_CM_EXCEPTION_TCP_NOT_ASSURED, - SFE_CM_EXCEPTION_TCP_NOT_ESTABLISHED, - SFE_CM_EXCEPTION_UNKNOW_PROTOCOL, - SFE_CM_EXCEPTION_NO_SRC_DEV, - SFE_CM_EXCEPTION_NO_SRC_XLATE_DEV, - SFE_CM_EXCEPTION_NO_DEST_DEV, - SFE_CM_EXCEPTION_NO_DEST_XLATE_DEV, - SFE_CM_EXCEPTION_NO_BRIDGE, - SFE_CM_EXCEPTION_LOCAL_OUT, - SFE_CM_EXCEPTION_MAX -} sfe_cm_exception_t; - -static char *sfe_cm_exception_events_string[SFE_CM_EXCEPTION_MAX] = { - "PACKET_BROADCAST", - "PACKET_MULTICAST", - "NO_IIF", - "NO_CT", - "CT_NO_TRACK", - "CT_NO_CONFIRM", - "CT_IS_ALG", - "IS_IPV4_MCAST", - "IS_IPV6_MCAST", - "TCP_NOT_ASSURED", - "TCP_NOT_ESTABLISHED", - "UNKNOW_PROTOCOL", - "NO_SRC_DEV", - "NO_SRC_XLATE_DEV", - "NO_DEST_DEV", - "NO_DEST_XLATE_DEV", - "NO_BRIDGE", - "LOCAL_OUT" -}; - -/* - * Per-module structure. - */ -struct sfe_cm { - spinlock_t lock; /* Lock for SMP correctness */ - - /* - * Control state. - */ - struct kobject *sys_sfe_cm; /* sysfs linkage */ - - /* - * Callback notifiers. - */ - struct notifier_block dev_notifier; /* Device notifier */ - struct notifier_block inet_notifier; /* IPv4 notifier */ - struct notifier_block inet6_notifier; /* IPv6 notifier */ - u32 exceptions[SFE_CM_EXCEPTION_MAX]; -}; - -static struct sfe_cm __sc; - - -/* - * sfe_cm_incr_exceptions() - * increase an exception counter. - */ -static inline void sfe_cm_incr_exceptions(sfe_cm_exception_t except) -{ - struct sfe_cm *sc = &__sc; - - spin_lock_bh(&sc->lock); - sc->exceptions[except]++; - spin_unlock_bh(&sc->lock); -} - -/* - * sfe_cm_recv() - * Handle packet receives. - * - * Returns 1 if the packet is forwarded or 0 if it isn't. - */ -static int sfe_cm_recv(struct sk_buff *skb) -{ - struct net_device *dev; - - /* - * We know that for the vast majority of packets we need the transport - * layer header so we may as well start to fetch it now! - */ - prefetch(skb->data + 32); - barrier(); - - dev = skb->dev; - -#ifdef CONFIG_NET_CLS_ACT - /* - * If ingress Qdisc configured, and packet not processed by ingress Qdisc yet - * We cannot accelerate this packet. - */ - if (dev->ingress_queue && !(skb->tc_verd & TC_NCLS)) { - return 0; - } -#endif - - /* - * We're only interested in IPv4 and IPv6 packets. - */ - if (likely(htons(ETH_P_IP) == skb->protocol)) { - struct in_device *in_dev; - - /* - * Does our input device support IP processing? - */ - in_dev = (struct in_device *)dev->ip_ptr; - if (unlikely(!in_dev)) { - DEBUG_TRACE("no IP processing for device: %s\n", dev->name); - return 0; - } - - /* - * Does it have an IP address? If it doesn't then we can't do anything - * interesting here! - */ - if (unlikely(!in_dev->ifa_list)) { - DEBUG_TRACE("no IP address for device: %s\n", dev->name); - return 0; - } - - return sfe_ipv4_recv(dev, skb); - } - - if (likely(htons(ETH_P_IPV6) == skb->protocol)) { - struct inet6_dev *in_dev; - - /* - * Does our input device support IPv6 processing? - */ - in_dev = (struct inet6_dev *)dev->ip6_ptr; - if (unlikely(!in_dev)) { - DEBUG_TRACE("no IPv6 processing for device: %s\n", dev->name); - return 0; - } - - /* - * Does it have an IPv6 address? If it doesn't then we can't do anything - * interesting here! - */ - if (unlikely(list_empty(&in_dev->addr_list))) { - DEBUG_TRACE("no IPv6 address for device: %s\n", dev->name); - return 0; - } - - return sfe_ipv6_recv(dev, skb); - } - - DEBUG_TRACE("not IP packet\n"); - return 0; -} - -/* - * sfe_cm_find_dev_and_mac_addr() - * Find the device and MAC address for a given IPv4/IPv6 address. - * - * Returns true if we find the device and MAC address, otherwise false. - * - * We look up the rtable entry for the address and, from its neighbour - * structure, obtain the hardware address. This means this function also - * works if the neighbours are routers too. - */ -static bool sfe_cm_find_dev_and_mac_addr(sfe_ip_addr_t *addr, struct net_device **dev, u8 *mac_addr, int is_v4) -{ - struct neighbour *neigh; - struct rtable *rt; - struct rt6_info *rt6; - struct dst_entry *dst; - struct net_device *mac_dev; - - /* - * Look up the rtable entry for the IP address then get the hardware - * address from its neighbour structure. This means this work when the - * neighbours are routers too. - */ - if (likely(is_v4)) { - rt = ip_route_output(&init_net, addr->ip, 0, 0, 0); - if (unlikely(IS_ERR(rt))) { - goto ret_fail; - } - - dst = (struct dst_entry *)rt; - } else { - rt6 = rt6_lookup(&init_net, (struct in6_addr *)addr->ip6, 0, 0, 0); - if (!rt6) { - goto ret_fail; - } - - dst = (struct dst_entry *)rt6; - } - - rcu_read_lock(); - neigh = dst_neigh_lookup(dst, addr); - if (unlikely(!neigh)) { - rcu_read_unlock(); - dst_release(dst); - goto ret_fail; - } - - if (unlikely(!(neigh->nud_state & NUD_VALID))) { - rcu_read_unlock(); - neigh_release(neigh); - dst_release(dst); - goto ret_fail; - } - - mac_dev = neigh->dev; - if (!mac_dev) { - rcu_read_unlock(); - neigh_release(neigh); - dst_release(dst); - goto ret_fail; - } - - memcpy(mac_addr, neigh->ha, (size_t)mac_dev->addr_len); - - dev_hold(mac_dev); - *dev = mac_dev; - rcu_read_unlock(); - neigh_release(neigh); - dst_release(dst); - - return true; - -ret_fail: - if (is_v4) { - DEBUG_TRACE("failed to find MAC address for IP: %pI4\n", &addr->ip); - - } else { - DEBUG_TRACE("failed to find MAC address for IP: %pI6\n", addr->ip6); - } - - return false; -} - -/* - * sfe_cm_post_routing() - * Called for packets about to leave the box - either locally generated or forwarded from another interface - */ -static unsigned int sfe_cm_post_routing(struct sk_buff *skb, int is_v4) -{ - struct sfe_connection_create sic; - struct net_device *in; - struct nf_conn *ct; - enum ip_conntrack_info ctinfo; - struct net_device *dev; - struct net_device *src_dev; - struct net_device *dest_dev; - struct net_device *src_br_dev = NULL; - struct net_device *dest_br_dev = NULL; - struct nf_conntrack_tuple orig_tuple; - struct nf_conntrack_tuple reply_tuple; - SFE_NF_CONN_ACCT(acct); - - /* - * Don't process broadcast or multicast packets. - */ - if (unlikely(skb->pkt_type == PACKET_BROADCAST)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_PACKET_BROADCAST); - DEBUG_TRACE("broadcast, ignoring\n"); - return NF_ACCEPT; - } - if (unlikely(skb->pkt_type == PACKET_MULTICAST)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_PACKET_MULTICAST); - DEBUG_TRACE("multicast, ignoring\n"); - return NF_ACCEPT; - } - -#ifdef CONFIG_XFRM - /* - * Packet to xfrm for encapsulation, we can't process it - */ - if (unlikely(skb_dst(skb)->xfrm)) { - DEBUG_TRACE("packet to xfrm, ignoring\n"); - return NF_ACCEPT; - } -#endif - - /* - * Don't process locally generated packets. - */ - if (skb->sk) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_LOCAL_OUT); - DEBUG_TRACE("skip local out packet\n"); - return NF_ACCEPT; - } - - /* - * Don't process packets that are not being forwarded. - */ - in = dev_get_by_index(&init_net, skb->skb_iif); - if (!in) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_IIF); - DEBUG_TRACE("packet not forwarding\n"); - return NF_ACCEPT; - } - - dev_put(in); - - /* - * Don't process packets that aren't being tracked by conntrack. - */ - ct = nf_ct_get(skb, &ctinfo); - if (unlikely(!ct)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_CT); - DEBUG_TRACE("no conntrack connection, ignoring\n"); - return NF_ACCEPT; - } - - /* - * Don't process untracked connections. - */ - if (unlikely(nf_ct_is_untracked(ct))) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_CT_NO_TRACK); - DEBUG_TRACE("untracked connection\n"); - return NF_ACCEPT; - } - - /* - * Unconfirmed connection may be dropped by Linux at the final step, - * So we don't process unconfirmed connections. - */ - if (!nf_ct_is_confirmed(ct)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_CT_NO_CONFIRM); - DEBUG_TRACE("unconfirmed connection\n"); - return NF_ACCEPT; - } - - /* - * Don't process connections that require support from a 'helper' (typically a NAT ALG). - */ - if (unlikely(nfct_help(ct))) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_CT_IS_ALG); - DEBUG_TRACE("connection has helper\n"); - return NF_ACCEPT; - } - - /* - * Check if the acceleration of a flow could be rejected quickly. - */ - acct = nf_conn_acct_find(ct); - if (acct) { - long long packets = atomic64_read(&SFE_ACCT_COUNTER(acct)[CTINFO2DIR(ctinfo)].packets); - if ((packets > 0xff) && (packets & 0xff)) { - /* - * Connection hits slow path at least 256 times, so it must be not able to accelerate. - * But we also give it a chance to walk through ECM every 256 packets - */ - return NF_ACCEPT; - } - } - - /* - * Look up the details of our connection in conntrack. - * - * Note that the data we get from conntrack is for the "ORIGINAL" direction - * but our packet may actually be in the "REPLY" direction. - */ - orig_tuple = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple; - reply_tuple = ct->tuplehash[IP_CT_DIR_REPLY].tuple; - sic.protocol = (s32)orig_tuple.dst.protonum; - - sic.flags = 0; - - /* - * Get addressing information, non-NAT first - */ - if (likely(is_v4)) { - u32 dscp; - - sic.src_ip.ip = (__be32)orig_tuple.src.u3.ip; - sic.dest_ip.ip = (__be32)orig_tuple.dst.u3.ip; - - if (ipv4_is_multicast(sic.src_ip.ip) || ipv4_is_multicast(sic.dest_ip.ip)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_IS_IPV4_MCAST); - DEBUG_TRACE("multicast address\n"); - return NF_ACCEPT; - } - - /* - * NAT'ed addresses - note these are as seen from the 'reply' direction - * When NAT does not apply to this connection these will be identical to the above. - */ - sic.src_ip_xlate.ip = (__be32)reply_tuple.dst.u3.ip; - sic.dest_ip_xlate.ip = (__be32)reply_tuple.src.u3.ip; - - dscp = ipv4_get_dsfield(ip_hdr(skb)) >> XT_DSCP_SHIFT; - if (dscp) { - sic.dest_dscp = dscp; - sic.src_dscp = sic.dest_dscp; - sic.flags |= SFE_CREATE_FLAG_REMARK_DSCP; - } - } else { - u32 dscp; - - sic.src_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.src.u3.in6); - sic.dest_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.dst.u3.in6); - - if (ipv6_addr_is_multicast((struct in6_addr *)sic.src_ip.ip6) || - ipv6_addr_is_multicast((struct in6_addr *)sic.dest_ip.ip6)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_IS_IPV6_MCAST); - DEBUG_TRACE("multicast address\n"); - return NF_ACCEPT; - } - - /* - * NAT'ed addresses - note these are as seen from the 'reply' direction - * When NAT does not apply to this connection these will be identical to the above. - */ - sic.src_ip_xlate.ip6[0] = *((struct sfe_ipv6_addr *)&reply_tuple.dst.u3.in6); - sic.dest_ip_xlate.ip6[0] = *((struct sfe_ipv6_addr *)&reply_tuple.src.u3.in6); - - dscp = ipv6_get_dsfield(ipv6_hdr(skb)) >> XT_DSCP_SHIFT; - if (dscp) { - sic.dest_dscp = dscp; - sic.src_dscp = sic.dest_dscp; - sic.flags |= SFE_CREATE_FLAG_REMARK_DSCP; - } - } - - switch (sic.protocol) { - case IPPROTO_TCP: - sic.src_port = orig_tuple.src.u.tcp.port; - sic.dest_port = orig_tuple.dst.u.tcp.port; - sic.src_port_xlate = reply_tuple.dst.u.tcp.port; - sic.dest_port_xlate = reply_tuple.src.u.tcp.port; - sic.src_td_window_scale = ct->proto.tcp.seen[0].td_scale; - sic.src_td_max_window = ct->proto.tcp.seen[0].td_maxwin; - sic.src_td_end = ct->proto.tcp.seen[0].td_end; - sic.src_td_max_end = ct->proto.tcp.seen[0].td_maxend; - sic.dest_td_window_scale = ct->proto.tcp.seen[1].td_scale; - sic.dest_td_max_window = ct->proto.tcp.seen[1].td_maxwin; - sic.dest_td_end = ct->proto.tcp.seen[1].td_end; - sic.dest_td_max_end = ct->proto.tcp.seen[1].td_maxend; - - if (nf_ct_tcp_no_window_check - || (ct->proto.tcp.seen[0].flags & IP_CT_TCP_FLAG_BE_LIBERAL) - || (ct->proto.tcp.seen[1].flags & IP_CT_TCP_FLAG_BE_LIBERAL)) { - sic.flags |= SFE_CREATE_FLAG_NO_SEQ_CHECK; - } - - /* - * Don't try to manage a non-established connection. - */ - if (!test_bit(IPS_ASSURED_BIT, &ct->status)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_TCP_NOT_ASSURED); - DEBUG_TRACE("non-established connection\n"); - return NF_ACCEPT; - } - - /* - * If the connection is shutting down do not manage it. - * state can not be SYN_SENT, SYN_RECV because connection is assured - * Not managed states: FIN_WAIT, CLOSE_WAIT, LAST_ACK, TIME_WAIT, CLOSE. - */ - spin_lock_bh(&ct->lock); - if (ct->proto.tcp.state != TCP_CONNTRACK_ESTABLISHED) { - spin_unlock_bh(&ct->lock); - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_TCP_NOT_ESTABLISHED); - DEBUG_TRACE("connection in termination state: %#x, s: %pI4:%u, d: %pI4:%u\n", - ct->proto.tcp.state, &sic.src_ip, ntohs(sic.src_port), - &sic.dest_ip, ntohs(sic.dest_port)); - return NF_ACCEPT; - } - spin_unlock_bh(&ct->lock); - break; - - case IPPROTO_UDP: - sic.src_port = orig_tuple.src.u.udp.port; - sic.dest_port = orig_tuple.dst.u.udp.port; - sic.src_port_xlate = reply_tuple.dst.u.udp.port; - sic.dest_port_xlate = reply_tuple.src.u.udp.port; - break; - - default: - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_UNKNOW_PROTOCOL); - DEBUG_TRACE("unhandled protocol %d\n", sic.protocol); - return NF_ACCEPT; - } - -#ifdef CONFIG_XFRM - sic.original_accel = 1; - sic.reply_accel = 1; - - /* - * For packets de-capsulated from xfrm, we still can accelerate it - * on the direction we just received the packet. - */ - if (unlikely(skb->sp)) { - if (sic.protocol == IPPROTO_TCP && - !(sic.flags & SFE_CREATE_FLAG_NO_SEQ_CHECK)) { - return NF_ACCEPT; - } - - if (CTINFO2DIR(ctinfo) == IP_CT_DIR_ORIGINAL) { - sic.reply_accel = 0; - } else { - sic.original_accel = 0; - } - } -#endif - - /* - * Get QoS information - */ - if (skb->priority) { - sic.dest_priority = skb->priority; - sic.src_priority = sic.dest_priority; - sic.flags |= SFE_CREATE_FLAG_REMARK_PRIORITY; - } - - /* - * Get the net device and MAC addresses that correspond to the various source and - * destination host addresses. - */ - if (!sfe_cm_find_dev_and_mac_addr(&sic.src_ip, &src_dev, sic.src_mac, is_v4)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_SRC_DEV); - return NF_ACCEPT; - } - - if (!sfe_cm_find_dev_and_mac_addr(&sic.src_ip_xlate, &dev, sic.src_mac_xlate, is_v4)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_SRC_XLATE_DEV); - goto done1; - } - - dev_put(dev); - - if (!sfe_cm_find_dev_and_mac_addr(&sic.dest_ip, &dev, sic.dest_mac, is_v4)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_DEST_DEV); - goto done1; - } - - dev_put(dev); - - if (!sfe_cm_find_dev_and_mac_addr(&sic.dest_ip_xlate, &dest_dev, sic.dest_mac_xlate, is_v4)) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_DEST_XLATE_DEV); - goto done1; - } - - /* - * Our devices may actually be part of a bridge interface. If that's - * the case then find the bridge interface instead. - */ - if (src_dev->priv_flags & IFF_BRIDGE_PORT) { - src_br_dev = sfe_dev_get_master(src_dev); - if (!src_br_dev) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_BRIDGE); - DEBUG_TRACE("no bridge found for: %s\n", src_dev->name); - goto done2; - } - - src_dev = src_br_dev; - } - - if (dest_dev->priv_flags & IFF_BRIDGE_PORT) { - dest_br_dev = sfe_dev_get_master(dest_dev); - if (!dest_br_dev) { - sfe_cm_incr_exceptions(SFE_CM_EXCEPTION_NO_BRIDGE); - DEBUG_TRACE("no bridge found for: %s\n", dest_dev->name); - goto done3; - } - - dest_dev = dest_br_dev; - } - - sic.src_dev = src_dev; - sic.dest_dev = dest_dev; - - sic.src_mtu = src_dev->mtu; - sic.dest_mtu = dest_dev->mtu; - sic.mark = skb->mark; - if (likely(is_v4)) { - sfe_ipv4_create_rule(&sic); - } else { - sfe_ipv6_create_rule(&sic); - } - - /* - * If we had bridge ports then release them too. - */ - if (dest_br_dev) { - dev_put(dest_br_dev); - } - -done3: - if (src_br_dev) { - dev_put(src_br_dev); - } - -done2: - dev_put(dest_dev); - -done1: - dev_put(src_dev); - - return NF_ACCEPT; -} - -/* - * sfe_cm_ipv4_post_routing_hook() - * Called for packets about to leave the box - either locally generated or forwarded from another interface - */ -sfe_cm_ipv4_post_routing_hook(hooknum, ops, skb, in_unused, out, okfn) -{ - return sfe_cm_post_routing(skb, true); -} - -/* - * sfe_cm_ipv6_post_routing_hook() - * Called for packets about to leave the box - either locally generated or forwarded from another interface - */ -sfe_cm_ipv6_post_routing_hook(hooknum, ops, skb, in_unused, out, okfn) -{ - return sfe_cm_post_routing(skb, false); -} - -#ifdef CONFIG_NF_CONNTRACK_EVENTS -/* - * sfe_cm_conntrack_event() - * Callback event invoked when a conntrack connection's state changes. - */ -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -static int sfe_cm_conntrack_event(struct notifier_block *this, - unsigned long events, void *ptr) -#else -static int sfe_cm_conntrack_event(unsigned int events, struct nf_ct_event *item) -#endif -{ -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS - struct nf_ct_event *item = ptr; -#endif - struct sfe_connection_destroy sid; - struct nf_conn *ct = item->ct; - struct nf_conntrack_tuple orig_tuple; - - /* - * If we don't have a conntrack entry then we're done. - */ - if (unlikely(!ct)) { - DEBUG_WARN("no ct in conntrack event callback\n"); - return NOTIFY_DONE; - } - - /* - * If this is an untracked connection then we can't have any state either. - */ - if (unlikely(nf_ct_is_untracked(ct))) { - DEBUG_TRACE("ignoring untracked conn\n"); - return NOTIFY_DONE; - } - - /* - * We're only interested in destroy events. - */ - if (unlikely(!(events & (1 << IPCT_DESTROY)))) { - DEBUG_TRACE("ignoring non-destroy event\n"); - return NOTIFY_DONE; - } - - orig_tuple = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple; - sid.protocol = (s32)orig_tuple.dst.protonum; - - /* - * Extract information from the conntrack connection. We're only interested - * in nominal connection information (i.e. we're ignoring any NAT information). - */ - switch (sid.protocol) { - case IPPROTO_TCP: - sid.src_port = orig_tuple.src.u.tcp.port; - sid.dest_port = orig_tuple.dst.u.tcp.port; - break; - - case IPPROTO_UDP: - sid.src_port = orig_tuple.src.u.udp.port; - sid.dest_port = orig_tuple.dst.u.udp.port; - break; - - default: - DEBUG_TRACE("unhandled protocol: %d\n", sid.protocol); - return NOTIFY_DONE; - } - - if (likely(nf_ct_l3num(ct) == AF_INET)) { - sid.src_ip.ip = (__be32)orig_tuple.src.u3.ip; - sid.dest_ip.ip = (__be32)orig_tuple.dst.u3.ip; - - sfe_ipv4_destroy_rule(&sid); - } else if (likely(nf_ct_l3num(ct) == AF_INET6)) { - sid.src_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.src.u3.in6); - sid.dest_ip.ip6[0] = *((struct sfe_ipv6_addr *)&orig_tuple.dst.u3.in6); - - sfe_ipv6_destroy_rule(&sid); - } else { - DEBUG_TRACE("ignoring non-IPv4 and non-IPv6 connection\n"); - } - - return NOTIFY_DONE; -} - -/* - * Netfilter conntrack event system to monitor connection tracking changes - */ -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -static struct notifier_block sfe_cm_conntrack_notifier = { - .notifier_call = sfe_cm_conntrack_event, -}; -#else -static struct nf_ct_event_notifier sfe_cm_conntrack_notifier = { - .fcn = sfe_cm_conntrack_event, -}; -#endif -#endif - -/* - * Structure to establish a hook into the post routing netfilter point - this - * will pick up local outbound and packets going from one interface to another. - * - * Note: see include/linux/netfilter_ipv4.h for info related to priority levels. - * We want to examine packets after NAT translation and any ALG processing. - */ -static struct nf_hook_ops sfe_cm_ops_post_routing[] __read_mostly = { - SFE_IPV4_NF_POST_ROUTING_HOOK(__sfe_cm_ipv4_post_routing_hook), - SFE_IPV6_NF_POST_ROUTING_HOOK(__sfe_cm_ipv6_post_routing_hook), -}; - -/* - * sfe_cm_sync_rule() - * Synchronize a connection's state. - */ -static void sfe_cm_sync_rule(struct sfe_connection_sync *sis) -{ - struct nf_conntrack_tuple_hash *h; - struct nf_conntrack_tuple tuple; - struct nf_conn *ct; - SFE_NF_CONN_ACCT(acct); - - /* - * Create a tuple so as to be able to look up a connection - */ - memset(&tuple, 0, sizeof(tuple)); - tuple.src.u.all = (__be16)sis->src_port; - tuple.dst.dir = IP_CT_DIR_ORIGINAL; - tuple.dst.protonum = (u8)sis->protocol; - tuple.dst.u.all = (__be16)sis->dest_port; - - if (sis->is_v6) { - tuple.src.u3.in6 = *((struct in6_addr *)sis->src_ip.ip6); - tuple.dst.u3.in6 = *((struct in6_addr *)sis->dest_ip.ip6); - tuple.src.l3num = AF_INET6; - - DEBUG_TRACE("update connection - p: %d, s: %pI6:%u, d: %pI6:%u\n", - (int)tuple.dst.protonum, - &tuple.src.u3.in6, (unsigned int)ntohs(tuple.src.u.all), - &tuple.dst.u3.in6, (unsigned int)ntohs(tuple.dst.u.all)); - } else { - tuple.src.u3.ip = sis->src_ip.ip; - tuple.dst.u3.ip = sis->dest_ip.ip; - tuple.src.l3num = AF_INET; - - DEBUG_TRACE("update connection - p: %d, s: %pI4:%u, d: %pI4:%u\n", - (int)tuple.dst.protonum, - &tuple.src.u3.ip, (unsigned int)ntohs(tuple.src.u.all), - &tuple.dst.u3.ip, (unsigned int)ntohs(tuple.dst.u.all)); - } - - /* - * Look up conntrack connection - */ - h = nf_conntrack_find_get(&init_net, SFE_NF_CT_DEFAULT_ZONE, &tuple); - if (unlikely(!h)) { - DEBUG_TRACE("no connection found\n"); - return; - } - - ct = nf_ct_tuplehash_to_ctrack(h); - NF_CT_ASSERT(ct->timeout.data == (unsigned long)ct); - - /* - * Only update if this is not a fixed timeout - */ - if (!test_bit(IPS_FIXED_TIMEOUT_BIT, &ct->status)) { - spin_lock_bh(&ct->lock); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)) - ct->timeout += sis->delta_jiffies; -#else - ct->timeout.expires += sis->delta_jiffies; -#endif - spin_unlock_bh(&ct->lock); - } - - acct = nf_conn_acct_find(ct); - if (acct) { - spin_lock_bh(&ct->lock); - atomic64_add(sis->src_new_packet_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_ORIGINAL].packets); - atomic64_add(sis->src_new_byte_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_ORIGINAL].bytes); - atomic64_add(sis->dest_new_packet_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_REPLY].packets); - atomic64_add(sis->dest_new_byte_count, &SFE_ACCT_COUNTER(acct)[IP_CT_DIR_REPLY].bytes); - spin_unlock_bh(&ct->lock); - } - - switch (sis->protocol) { - case IPPROTO_TCP: - spin_lock_bh(&ct->lock); - if (ct->proto.tcp.seen[0].td_maxwin < sis->src_td_max_window) { - ct->proto.tcp.seen[0].td_maxwin = sis->src_td_max_window; - } - if ((s32)(ct->proto.tcp.seen[0].td_end - sis->src_td_end) < 0) { - ct->proto.tcp.seen[0].td_end = sis->src_td_end; - } - if ((s32)(ct->proto.tcp.seen[0].td_maxend - sis->src_td_max_end) < 0) { - ct->proto.tcp.seen[0].td_maxend = sis->src_td_max_end; - } - if (ct->proto.tcp.seen[1].td_maxwin < sis->dest_td_max_window) { - ct->proto.tcp.seen[1].td_maxwin = sis->dest_td_max_window; - } - if ((s32)(ct->proto.tcp.seen[1].td_end - sis->dest_td_end) < 0) { - ct->proto.tcp.seen[1].td_end = sis->dest_td_end; - } - if ((s32)(ct->proto.tcp.seen[1].td_maxend - sis->dest_td_max_end) < 0) { - ct->proto.tcp.seen[1].td_maxend = sis->dest_td_max_end; - } - spin_unlock_bh(&ct->lock); - break; - case IPPROTO_UDP: - /* - * In Linux connection track, UDP flow has two timeout values: - * /proc/sys/net/netfilter/nf_conntrack_udp_timeout: - * this is for uni-direction UDP flow, normally its value is 60 seconds - * /proc/sys/net/netfilter/nf_conntrack_udp_timeout_stream: - * this is for bi-direction UDP flow, normally its value is 180 seconds - * - * Linux will update timer of UDP flow to stream timeout once it seen packets - * in reply direction. But if flow is accelerated by NSS or SFE, Linux won't - * see any packets. So we have to do the same thing in our stats sync message. - */ - if (!test_bit(IPS_ASSURED_BIT, &ct->status) && acct) { - u_int64_t reply_pkts = atomic64_read(&SFE_ACCT_COUNTER(acct)[IP_CT_DIR_REPLY].packets); - - if (reply_pkts != 0) { - struct nf_conntrack_l4proto *l4proto; - unsigned int *timeouts; - - set_bit(IPS_SEEN_REPLY_BIT, &ct->status); - set_bit(IPS_ASSURED_BIT, &ct->status); - - l4proto = __nf_ct_l4proto_find((sis->is_v6 ? AF_INET6 : AF_INET), IPPROTO_UDP); - timeouts = nf_ct_timeout_lookup(&init_net, ct, l4proto); - - spin_lock_bh(&ct->lock); -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)) - ct->timeout = nfct_time_stamp + timeouts[UDP_CT_REPLIED]; -#else - ct->timeout.expires = jiffies + timeouts[UDP_CT_REPLIED]; -#endif - spin_unlock_bh(&ct->lock); - } - } - break; - } - - /* - * Release connection - */ - nf_ct_put(ct); -} - -/* - * sfe_cm_device_event() - */ -static int sfe_cm_device_event(struct notifier_block *this, unsigned long event, void *ptr) -{ - struct net_device *dev = SFE_DEV_EVENT_PTR(ptr); - - if (dev && (event == NETDEV_DOWN)) { - sfe_ipv4_destroy_all_rules_for_dev(dev); - sfe_ipv6_destroy_all_rules_for_dev(dev); - } - - return NOTIFY_DONE; -} - -/* - * sfe_cm_inet_event() - */ -static int sfe_cm_inet_event(struct notifier_block *this, unsigned long event, void *ptr) -{ - struct net_device *dev = ((struct in_ifaddr *)ptr)->ifa_dev->dev; - - if (dev && (event == NETDEV_DOWN)) { - sfe_ipv4_destroy_all_rules_for_dev(dev); - } - - return NOTIFY_DONE; -} - -/* - * sfe_cm_inet6_event() - */ -static int sfe_cm_inet6_event(struct notifier_block *this, unsigned long event, void *ptr) -{ - struct net_device *dev = ((struct inet6_ifaddr *)ptr)->idev->dev; - - if (dev && (event == NETDEV_DOWN)) { - sfe_ipv6_destroy_all_rules_for_dev(dev); - } - - return NOTIFY_DONE; -} - -/* - * sfe_cm_get_exceptions - * dump exception counters - */ -static ssize_t sfe_cm_get_exceptions(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - int idx, len; - struct sfe_cm *sc = &__sc; - - spin_lock_bh(&sc->lock); - for (len = 0, idx = 0; idx < SFE_CM_EXCEPTION_MAX; idx++) { - if (sc->exceptions[idx]) { - len += snprintf(buf + len, (ssize_t)(PAGE_SIZE - len), "%s = %d\n", sfe_cm_exception_events_string[idx], sc->exceptions[idx]); - } - } - spin_unlock_bh(&sc->lock); - - return len; -} - -/* - * sfe_cm_get_stop - * dump stop - */ -static ssize_t sfe_cm_get_stop(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - int (*fast_recv)(struct sk_buff *skb); - rcu_read_lock(); - fast_recv = rcu_dereference(fast_nat_recv); - rcu_read_unlock(); - return snprintf(buf, (ssize_t)PAGE_SIZE, "%d\n", fast_recv ? 0 : 1); -} - -static ssize_t sfe_cm_set_stop(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - int ret; - u32 num; - int (*fast_recv)(struct sk_buff *skb); - - ret = kstrtou32(buf, 0, &num); - if (ret) - return ret; - - /* - * Hook/Unhook the receive path in the network stack. - */ - if (num) { - RCU_INIT_POINTER(fast_nat_recv, NULL); - } else { - rcu_read_lock(); - fast_recv = rcu_dereference(fast_nat_recv); - rcu_read_unlock(); - if (!fast_recv) { - BUG_ON(fast_nat_recv); - RCU_INIT_POINTER(fast_nat_recv, sfe_cm_recv); - } - } - - DEBUG_TRACE("sfe_cm_stop = %d\n", num); - return count; -} - -/* - * sfe_cm_get_defunct_all - * dump state of SFE - */ -static ssize_t sfe_cm_get_defunct_all(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - return snprintf(buf, (ssize_t)PAGE_SIZE, "%d\n", 0); -} - -static ssize_t sfe_cm_set_defunct_all(struct device *dev, - struct device_attribute *attr, - const char *buf, size_t count) -{ - sfe_ipv4_destroy_all_rules_for_dev(NULL); - sfe_ipv6_destroy_all_rules_for_dev(NULL); - return count; -} - -/* - * sysfs attributes. - */ -static const struct device_attribute sfe_attrs[] = { - __ATTR(exceptions, S_IRUGO, sfe_cm_get_exceptions, NULL), - __ATTR(stop, S_IWUSR | S_IRUGO, sfe_cm_get_stop, sfe_cm_set_stop), - __ATTR(defunct_all, S_IWUSR | S_IRUGO, sfe_cm_get_defunct_all, sfe_cm_set_defunct_all), -}; - -/* - * sfe_cm_init() - */ -static int __init sfe_cm_init(void) -{ - struct sfe_cm *sc = &__sc; - int result = -1; - size_t i, j; - - DEBUG_INFO("SFE CM init\n"); - - /* - * Create sys/sfe_cm - */ - sc->sys_sfe_cm = kobject_create_and_add("sfe_cm", NULL); - if (!sc->sys_sfe_cm) { - DEBUG_ERROR("failed to register sfe_cm\n"); - goto exit1; - } - - for (i = 0; i < ARRAY_SIZE(sfe_attrs); i++) { - result = sysfs_create_file(sc->sys_sfe_cm, &sfe_attrs[i].attr); - if (result) { - DEBUG_ERROR("failed to register %s : %d\n", - sfe_attrs[i].attr.name, result); - goto exit2; - } - } - - sc->dev_notifier.notifier_call = sfe_cm_device_event; - sc->dev_notifier.priority = 1; - register_netdevice_notifier(&sc->dev_notifier); - - sc->inet_notifier.notifier_call = sfe_cm_inet_event; - sc->inet_notifier.priority = 1; - register_inetaddr_notifier(&sc->inet_notifier); - - sc->inet6_notifier.notifier_call = sfe_cm_inet6_event; - sc->inet6_notifier.priority = 1; - register_inet6addr_notifier(&sc->inet6_notifier); - /* - * Register our netfilter hooks. - */ - result = nf_register_hooks(sfe_cm_ops_post_routing, ARRAY_SIZE(sfe_cm_ops_post_routing)); - if (result < 0) { - DEBUG_ERROR("can't register nf post routing hook: %d\n", result); - goto exit3; - } - -#ifdef CONFIG_NF_CONNTRACK_EVENTS - /* - * Register a notifier hook to get fast notifications of expired connections. - * Note: In CONFIG_NF_CONNTRACK_CHAIN_EVENTS enabled case, nf_conntrack_register_notifier() - * function always returns 0. - */ - -#ifdef CONFIG_NF_CONNTRACK_CHAIN_EVENTS - (void)nf_conntrack_register_notifier(&init_net, &sfe_cm_conntrack_notifier); -#else - result = nf_conntrack_register_notifier(&init_net, &sfe_cm_conntrack_notifier); - if (result < 0) { - DEBUG_ERROR("can't register nf notifier hook: %d\n", result); - goto exit4; - } -#endif -#endif - - spin_lock_init(&sc->lock); - - /* - * Hook the shortcut sync callback. - */ - sfe_ipv4_register_sync_rule_callback(sfe_cm_sync_rule); - sfe_ipv6_register_sync_rule_callback(sfe_cm_sync_rule); - return 0; - -#ifdef CONFIG_NF_CONNTRACK_EVENTS -#ifndef CONFIG_NF_CONNTRACK_CHAIN_EVENTS -exit4: - nf_unregister_hooks(sfe_cm_ops_post_routing, ARRAY_SIZE(sfe_cm_ops_post_routing)); -#endif -#endif -exit3: - unregister_inet6addr_notifier(&sc->inet6_notifier); - unregister_inetaddr_notifier(&sc->inet_notifier); - unregister_netdevice_notifier(&sc->dev_notifier); -exit2: - for (j = 0; j < i; j++) { - sysfs_remove_file(sc->sys_sfe_cm, &sfe_attrs[j].attr); - } - kobject_put(sc->sys_sfe_cm); - -exit1: - return result; -} - -/* - * sfe_cm_exit() - */ -static void __exit sfe_cm_exit(void) -{ - struct sfe_cm *sc = &__sc; - - DEBUG_INFO("SFE CM exit\n"); - - /* - * Unregister our sync callback. - */ - sfe_ipv4_register_sync_rule_callback(NULL); - sfe_ipv6_register_sync_rule_callback(NULL); - - /* - * Unregister our receive callback. - */ - RCU_INIT_POINTER(fast_nat_recv, NULL); - - /* - * Wait for all callbacks to complete. - */ - rcu_barrier(); - - /* - * Destroy all connections. - */ - sfe_ipv4_destroy_all_rules_for_dev(NULL); - sfe_ipv6_destroy_all_rules_for_dev(NULL); - -#ifdef CONFIG_NF_CONNTRACK_EVENTS - nf_conntrack_unregister_notifier(&init_net, &sfe_cm_conntrack_notifier); - -#endif - nf_unregister_hooks(sfe_cm_ops_post_routing, ARRAY_SIZE(sfe_cm_ops_post_routing)); - - unregister_inet6addr_notifier(&sc->inet6_notifier); - unregister_inetaddr_notifier(&sc->inet_notifier); - unregister_netdevice_notifier(&sc->dev_notifier); - - kobject_put(sc->sys_sfe_cm); -} - -module_init(sfe_cm_init) -module_exit(sfe_cm_exit) - -MODULE_DESCRIPTION("Shortcut Forwarding Engine - Connection Manager"); -MODULE_LICENSE("Dual BSD/GPL"); - diff --git a/package/lean/shortcut-fe/src/sfe_cm.h b/package/lean/shortcut-fe/src/sfe_cm.h deleted file mode 100644 index 6f2a819d1..000000000 --- a/package/lean/shortcut-fe/src/sfe_cm.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - * sfe_cm.h - * Shortcut forwarding engine. - * - * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * connection flags. - */ -#define SFE_CREATE_FLAG_NO_SEQ_CHECK BIT(0) - /* Indicates that we should not check sequence numbers */ -#define SFE_CREATE_FLAG_REMARK_PRIORITY BIT(1) - /* Indicates that we should remark priority of skb */ -#define SFE_CREATE_FLAG_REMARK_DSCP BIT(2) - /* Indicates that we should remark DSCP of packet */ - -/* - * IPv6 address structure - */ -struct sfe_ipv6_addr { - __be32 addr[4]; -}; - -typedef union { - __be32 ip; - struct sfe_ipv6_addr ip6[1]; -} sfe_ip_addr_t; - -/* - * connection creation structure. - */ -struct sfe_connection_create { - int protocol; - struct net_device *src_dev; - struct net_device *dest_dev; - u32 flags; - u32 src_mtu; - u32 dest_mtu; - sfe_ip_addr_t src_ip; - sfe_ip_addr_t src_ip_xlate; - sfe_ip_addr_t dest_ip; - sfe_ip_addr_t dest_ip_xlate; - __be16 src_port; - __be16 src_port_xlate; - __be16 dest_port; - __be16 dest_port_xlate; - u8 src_mac[ETH_ALEN]; - u8 src_mac_xlate[ETH_ALEN]; - u8 dest_mac[ETH_ALEN]; - u8 dest_mac_xlate[ETH_ALEN]; - u8 src_td_window_scale; - u32 src_td_max_window; - u32 src_td_end; - u32 src_td_max_end; - u8 dest_td_window_scale; - u32 dest_td_max_window; - u32 dest_td_end; - u32 dest_td_max_end; - u32 mark; -#ifdef CONFIG_XFRM - u32 original_accel; - u32 reply_accel; -#endif - u32 src_priority; - u32 dest_priority; - u32 src_dscp; - u32 dest_dscp; -}; - -/* - * connection destruction structure. - */ -struct sfe_connection_destroy { - int protocol; - sfe_ip_addr_t src_ip; - sfe_ip_addr_t dest_ip; - __be16 src_port; - __be16 dest_port; -}; - -typedef enum sfe_sync_reason { - SFE_SYNC_REASON_STATS, /* Sync is to synchronize stats */ - SFE_SYNC_REASON_FLUSH, /* Sync is to flush a entry */ - SFE_SYNC_REASON_DESTROY /* Sync is to destroy a entry(requested by connection manager) */ -} sfe_sync_reason_t; - -/* - * Structure used to sync connection stats/state back within the system. - * - * NOTE: The addresses here are NON-NAT addresses, i.e. the true endpoint addressing. - * 'src' is the creator of the connection. - */ -struct sfe_connection_sync { - struct net_device *src_dev; - struct net_device *dest_dev; - int is_v6; /* Is it for ipv6? */ - int protocol; /* IP protocol number (IPPROTO_...) */ - sfe_ip_addr_t src_ip; /* Non-NAT source address, i.e. the creator of the connection */ - sfe_ip_addr_t src_ip_xlate; /* NATed source address */ - __be16 src_port; /* Non-NAT source port */ - __be16 src_port_xlate; /* NATed source port */ - sfe_ip_addr_t dest_ip; /* Non-NAT destination address, i.e. to whom the connection was created */ - sfe_ip_addr_t dest_ip_xlate; /* NATed destination address */ - __be16 dest_port; /* Non-NAT destination port */ - __be16 dest_port_xlate; /* NATed destination port */ - u32 src_td_max_window; - u32 src_td_end; - u32 src_td_max_end; - u64 src_packet_count; - u64 src_byte_count; - u32 src_new_packet_count; - u32 src_new_byte_count; - u32 dest_td_max_window; - u32 dest_td_end; - u32 dest_td_max_end; - u64 dest_packet_count; - u64 dest_byte_count; - u32 dest_new_packet_count; - u32 dest_new_byte_count; - u32 reason; /* reason for stats sync message, i.e. destroy, flush, period sync */ - u64 delta_jiffies; /* Time to be added to the current timeout to keep the connection alive */ -}; - -/* - * connection mark structure - */ -struct sfe_connection_mark { - int protocol; - sfe_ip_addr_t src_ip; - sfe_ip_addr_t dest_ip; - __be16 src_port; - __be16 dest_port; - u32 mark; -}; - -/* - * Expose the hook for the receive processing. - */ -extern int (*fast_nat_recv)(struct sk_buff *skb); - -/* - * Expose what should be a static flag in the TCP connection tracker. - */ -extern int nf_ct_tcp_no_window_check; - -/* - * This callback will be called in a timer - * at 100 times per second to sync stats back to - * Linux connection track. - * - * A RCU lock is taken to prevent this callback - * from unregistering. - */ -typedef void (*sfe_sync_rule_callback_t)(struct sfe_connection_sync *); - -/* - * IPv4 APIs used by connection manager - */ -int sfe_ipv4_recv(struct net_device *dev, struct sk_buff *skb); -int sfe_ipv4_create_rule(struct sfe_connection_create *sic); -void sfe_ipv4_destroy_rule(struct sfe_connection_destroy *sid); -void sfe_ipv4_destroy_all_rules_for_dev(struct net_device *dev); -void sfe_ipv4_register_sync_rule_callback(sfe_sync_rule_callback_t callback); -void sfe_ipv4_update_rule(struct sfe_connection_create *sic); -void sfe_ipv4_mark_rule(struct sfe_connection_mark *mark); - -/* - * IPv6 APIs used by connection manager - */ -int sfe_ipv6_recv(struct net_device *dev, struct sk_buff *skb); -int sfe_ipv6_create_rule(struct sfe_connection_create *sic); -void sfe_ipv6_destroy_rule(struct sfe_connection_destroy *sid); -void sfe_ipv6_destroy_all_rules_for_dev(struct net_device *dev); -void sfe_ipv6_register_sync_rule_callback(sfe_sync_rule_callback_t callback); -void sfe_ipv6_update_rule(struct sfe_connection_create *sic); -void sfe_ipv6_mark_rule(struct sfe_connection_mark *mark); - -/* - * sfe_ipv6_addr_equal() - * compare ipv6 address - * - * return: 1, equal; 0, no equal - */ -static inline int sfe_ipv6_addr_equal(struct sfe_ipv6_addr *a, - struct sfe_ipv6_addr *b) -{ - return a->addr[0] == b->addr[0] && - a->addr[1] == b->addr[1] && - a->addr[2] == b->addr[2] && - a->addr[3] == b->addr[3]; -} - -/* - * sfe_ipv4_addr_equal() - * compare ipv4 address - * - * return: 1, equal; 0, no equal - */ -#define sfe_ipv4_addr_equal(a, b) ((u32)(a) == (u32)(b)) - -/* - * sfe_addr_equal() - * compare ipv4 or ipv6 address - * - * return: 1, equal; 0, no equal - */ -static inline int sfe_addr_equal(sfe_ip_addr_t *a, - sfe_ip_addr_t *b, int is_v4) -{ - return is_v4 ? sfe_ipv4_addr_equal(a->ip, b->ip) : sfe_ipv6_addr_equal(a->ip6, b->ip6); -} diff --git a/package/lean/shortcut-fe/src/sfe_ipv4.c b/package/lean/shortcut-fe/src/sfe_ipv4.c deleted file mode 100644 index 34ed09b58..000000000 --- a/package/lean/shortcut-fe/src/sfe_ipv4.c +++ /dev/null @@ -1,3369 +0,0 @@ -/* - * sfe_ipv4.c - * Shortcut forwarding engine - IPv4 edition. - * - * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include -#include -#include -#include -#include -#include - -#include "sfe.h" -#include "sfe_cm.h" - -/* - * By default Linux IP header and transport layer header structures are - * unpacked, assuming that such headers should be 32-bit aligned. - * Unfortunately some wireless adaptors can't cope with this requirement and - * some CPUs can't handle misaligned accesses. For those platforms we - * define SFE_IPV4_UNALIGNED_IP_HEADER and mark the structures as packed. - * When we do this the compiler will generate slightly worse code than for the - * aligned case (on most platforms) but will be much quicker than fixing - * things up in an unaligned trap handler. - */ -#define SFE_IPV4_UNALIGNED_IP_HEADER 1 -#if SFE_IPV4_UNALIGNED_IP_HEADER -#define SFE_IPV4_UNALIGNED_STRUCT __attribute__((aligned(4))) -#else -#define SFE_IPV4_UNALIGNED_STRUCT -#endif - -/* - * An Ethernet header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV4_UNALIGNED_STRUCT) - */ -struct sfe_ipv4_eth_hdr { - __be16 h_dest[ETH_ALEN / 2]; - __be16 h_source[ETH_ALEN / 2]; - __be16 h_proto; -} SFE_IPV4_UNALIGNED_STRUCT; - -#define SFE_IPV4_DSCP_MASK 0x3 -#define SFE_IPV4_DSCP_SHIFT 2 - -/* - * An IPv4 header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV4_UNALIGNED_STRUCT) - */ -struct sfe_ipv4_ip_hdr { -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u8 ihl:4, - version:4; -#elif defined (__BIG_ENDIAN_BITFIELD) - __u8 version:4, - ihl:4; -#else -#error "Please fix " -#endif - __u8 tos; - __be16 tot_len; - __be16 id; - __be16 frag_off; - __u8 ttl; - __u8 protocol; - __sum16 check; - __be32 saddr; - __be32 daddr; - - /* - * The options start here. - */ -} SFE_IPV4_UNALIGNED_STRUCT; - -/* - * A UDP header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV4_UNALIGNED_STRUCT) - */ -struct sfe_ipv4_udp_hdr { - __be16 source; - __be16 dest; - __be16 len; - __sum16 check; -} SFE_IPV4_UNALIGNED_STRUCT; - -/* - * A TCP header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV4_UNALIGNED_STRUCT) - */ -struct sfe_ipv4_tcp_hdr { - __be16 source; - __be16 dest; - __be32 seq; - __be32 ack_seq; -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u16 res1:4, - doff:4, - fin:1, - syn:1, - rst:1, - psh:1, - ack:1, - urg:1, - ece:1, - cwr:1; -#elif defined(__BIG_ENDIAN_BITFIELD) - __u16 doff:4, - res1:4, - cwr:1, - ece:1, - urg:1, - ack:1, - psh:1, - rst:1, - syn:1, - fin:1; -#else -#error "Adjust your defines" -#endif - __be16 window; - __sum16 check; - __be16 urg_ptr; -} SFE_IPV4_UNALIGNED_STRUCT; - -/* - * Specifies the lower bound on ACK numbers carried in the TCP header - */ -#define SFE_IPV4_TCP_MAX_ACK_WINDOW 65520 - -/* - * IPv4 TCP connection match additional data. - */ -struct sfe_ipv4_tcp_connection_match { - u8 win_scale; /* Window scale */ - u32 max_win; /* Maximum window size seen */ - u32 end; /* Sequence number of the next byte to send (seq + segment length) */ - u32 max_end; /* Sequence number of the last byte to ack */ -}; - -/* - * Bit flags for IPv4 connection matching entry. - */ -#define SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_SRC (1<<0) - /* Perform source translation */ -#define SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_DEST (1<<1) - /* Perform destination translation */ -#define SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK (1<<2) - /* Ignore TCP sequence numbers */ -#define SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR (1<<3) - /* Fast Ethernet header write */ -#define SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_L2_HDR (1<<4) - /* Fast Ethernet header write */ -#define SFE_IPV4_CONNECTION_MATCH_FLAG_PRIORITY_REMARK (1<<5) - /* remark priority of SKB */ -#define SFE_IPV4_CONNECTION_MATCH_FLAG_DSCP_REMARK (1<<6) - /* remark DSCP of packet */ - -/* - * IPv4 connection matching structure. - */ -struct sfe_ipv4_connection_match { - /* - * References to other objects. - */ - struct sfe_ipv4_connection_match *next; - struct sfe_ipv4_connection_match *prev; - struct sfe_ipv4_connection *connection; - struct sfe_ipv4_connection_match *counter_match; - /* Matches the flow in the opposite direction as the one in *connection */ - struct sfe_ipv4_connection_match *active_next; - struct sfe_ipv4_connection_match *active_prev; - bool active; /* Flag to indicate if we're on the active list */ - - /* - * Characteristics that identify flows that match this rule. - */ - struct net_device *match_dev; /* Network device */ - u8 match_protocol; /* Protocol */ - __be32 match_src_ip; /* Source IP address */ - __be32 match_dest_ip; /* Destination IP address */ - __be16 match_src_port; /* Source port/connection ident */ - __be16 match_dest_port; /* Destination port/connection ident */ - - /* - * Control the operations of the match. - */ - u32 flags; /* Bit flags */ -#ifdef CONFIG_XFRM - u32 flow_accel; /* The flow accelerated or not */ -#endif - - /* - * Connection state that we track once we match. - */ - union { /* Protocol-specific state */ - struct sfe_ipv4_tcp_connection_match tcp; - } protocol_state; - /* - * Stats recorded in a sync period. These stats will be added to - * rx_packet_count64/rx_byte_count64 after a sync period. - */ - u32 rx_packet_count; - u32 rx_byte_count; - - /* - * Packet translation information. - */ - __be32 xlate_src_ip; /* Address after source translation */ - __be16 xlate_src_port; /* Port/connection ident after source translation */ - u16 xlate_src_csum_adjustment; - /* Transport layer checksum adjustment after source translation */ - u16 xlate_src_partial_csum_adjustment; - /* Transport layer pseudo header checksum adjustment after source translation */ - - __be32 xlate_dest_ip; /* Address after destination translation */ - __be16 xlate_dest_port; /* Port/connection ident after destination translation */ - u16 xlate_dest_csum_adjustment; - /* Transport layer checksum adjustment after destination translation */ - u16 xlate_dest_partial_csum_adjustment; - /* Transport layer pseudo header checksum adjustment after destination translation */ - - /* - * QoS information - */ - u32 priority; - u32 dscp; - - /* - * Packet transmit information. - */ - struct net_device *xmit_dev; /* Network device on which to transmit */ - unsigned short int xmit_dev_mtu; - /* Interface MTU */ - u16 xmit_dest_mac[ETH_ALEN / 2]; - /* Destination MAC address to use when forwarding */ - u16 xmit_src_mac[ETH_ALEN / 2]; - /* Source MAC address to use when forwarding */ - - /* - * Summary stats. - */ - u64 rx_packet_count64; - u64 rx_byte_count64; -}; - -/* - * Per-connection data structure. - */ -struct sfe_ipv4_connection { - struct sfe_ipv4_connection *next; - /* Pointer to the next entry in a hash chain */ - struct sfe_ipv4_connection *prev; - /* Pointer to the previous entry in a hash chain */ - int protocol; /* IP protocol number */ - __be32 src_ip; /* Src IP addr pre-translation */ - __be32 src_ip_xlate; /* Src IP addr post-translation */ - __be32 dest_ip; /* Dest IP addr pre-translation */ - __be32 dest_ip_xlate; /* Dest IP addr post-translation */ - __be16 src_port; /* Src port pre-translation */ - __be16 src_port_xlate; /* Src port post-translation */ - __be16 dest_port; /* Dest port pre-translation */ - __be16 dest_port_xlate; /* Dest port post-translation */ - struct sfe_ipv4_connection_match *original_match; - /* Original direction matching structure */ - struct net_device *original_dev; - /* Original direction source device */ - struct sfe_ipv4_connection_match *reply_match; - /* Reply direction matching structure */ - struct net_device *reply_dev; /* Reply direction source device */ - u64 last_sync_jiffies; /* Jiffies count for the last sync */ - struct sfe_ipv4_connection *all_connections_next; - /* Pointer to the next entry in the list of all connections */ - struct sfe_ipv4_connection *all_connections_prev; - /* Pointer to the previous entry in the list of all connections */ - u32 mark; /* mark for outgoing packet */ - u32 debug_read_seq; /* sequence number for debug dump */ -}; - -/* - * IPv4 connections and hash table size information. - */ -#define SFE_IPV4_CONNECTION_HASH_SHIFT 12 -#define SFE_IPV4_CONNECTION_HASH_SIZE (1 << SFE_IPV4_CONNECTION_HASH_SHIFT) -#define SFE_IPV4_CONNECTION_HASH_MASK (SFE_IPV4_CONNECTION_HASH_SIZE - 1) - -enum sfe_ipv4_exception_events { - SFE_IPV4_EXCEPTION_EVENT_UDP_HEADER_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_UDP_NO_CONNECTION, - SFE_IPV4_EXCEPTION_EVENT_UDP_IP_OPTIONS_OR_INITIAL_FRAGMENT, - SFE_IPV4_EXCEPTION_EVENT_UDP_SMALL_TTL, - SFE_IPV4_EXCEPTION_EVENT_UDP_NEEDS_FRAGMENTATION, - SFE_IPV4_EXCEPTION_EVENT_TCP_HEADER_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_TCP_NO_CONNECTION_SLOW_FLAGS, - SFE_IPV4_EXCEPTION_EVENT_TCP_NO_CONNECTION_FAST_FLAGS, - SFE_IPV4_EXCEPTION_EVENT_TCP_IP_OPTIONS_OR_INITIAL_FRAGMENT, - SFE_IPV4_EXCEPTION_EVENT_TCP_SMALL_TTL, - SFE_IPV4_EXCEPTION_EVENT_TCP_NEEDS_FRAGMENTATION, - SFE_IPV4_EXCEPTION_EVENT_TCP_FLAGS, - SFE_IPV4_EXCEPTION_EVENT_TCP_SEQ_EXCEEDS_RIGHT_EDGE, - SFE_IPV4_EXCEPTION_EVENT_TCP_SMALL_DATA_OFFS, - SFE_IPV4_EXCEPTION_EVENT_TCP_BAD_SACK, - SFE_IPV4_EXCEPTION_EVENT_TCP_BIG_DATA_OFFS, - SFE_IPV4_EXCEPTION_EVENT_TCP_SEQ_BEFORE_LEFT_EDGE, - SFE_IPV4_EXCEPTION_EVENT_TCP_ACK_EXCEEDS_RIGHT_EDGE, - SFE_IPV4_EXCEPTION_EVENT_TCP_ACK_BEFORE_LEFT_EDGE, - SFE_IPV4_EXCEPTION_EVENT_ICMP_HEADER_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_ICMP_UNHANDLED_TYPE, - SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_HEADER_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_NON_V4, - SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_IP_OPTIONS_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_UDP_HEADER_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_TCP_HEADER_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_UNHANDLED_PROTOCOL, - SFE_IPV4_EXCEPTION_EVENT_ICMP_NO_CONNECTION, - SFE_IPV4_EXCEPTION_EVENT_ICMP_FLUSHED_CONNECTION, - SFE_IPV4_EXCEPTION_EVENT_HEADER_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_BAD_TOTAL_LENGTH, - SFE_IPV4_EXCEPTION_EVENT_NON_V4, - SFE_IPV4_EXCEPTION_EVENT_NON_INITIAL_FRAGMENT, - SFE_IPV4_EXCEPTION_EVENT_DATAGRAM_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_IP_OPTIONS_INCOMPLETE, - SFE_IPV4_EXCEPTION_EVENT_UNHANDLED_PROTOCOL, - SFE_IPV4_EXCEPTION_EVENT_CSUM_ERROR, - SFE_IPV4_EXCEPTION_EVENT_LAST -}; - -static char *sfe_ipv4_exception_events_string[SFE_IPV4_EXCEPTION_EVENT_LAST] = { - "UDP_HEADER_INCOMPLETE", - "UDP_NO_CONNECTION", - "UDP_IP_OPTIONS_OR_INITIAL_FRAGMENT", - "UDP_SMALL_TTL", - "UDP_NEEDS_FRAGMENTATION", - "TCP_HEADER_INCOMPLETE", - "TCP_NO_CONNECTION_SLOW_FLAGS", - "TCP_NO_CONNECTION_FAST_FLAGS", - "TCP_IP_OPTIONS_OR_INITIAL_FRAGMENT", - "TCP_SMALL_TTL", - "TCP_NEEDS_FRAGMENTATION", - "TCP_FLAGS", - "TCP_SEQ_EXCEEDS_RIGHT_EDGE", - "TCP_SMALL_DATA_OFFS", - "TCP_BAD_SACK", - "TCP_BIG_DATA_OFFS", - "TCP_SEQ_BEFORE_LEFT_EDGE", - "TCP_ACK_EXCEEDS_RIGHT_EDGE", - "TCP_ACK_BEFORE_LEFT_EDGE", - "ICMP_HEADER_INCOMPLETE", - "ICMP_UNHANDLED_TYPE", - "ICMP_IPV4_HEADER_INCOMPLETE", - "ICMP_IPV4_NON_V4", - "ICMP_IPV4_IP_OPTIONS_INCOMPLETE", - "ICMP_IPV4_UDP_HEADER_INCOMPLETE", - "ICMP_IPV4_TCP_HEADER_INCOMPLETE", - "ICMP_IPV4_UNHANDLED_PROTOCOL", - "ICMP_NO_CONNECTION", - "ICMP_FLUSHED_CONNECTION", - "HEADER_INCOMPLETE", - "BAD_TOTAL_LENGTH", - "NON_V4", - "NON_INITIAL_FRAGMENT", - "DATAGRAM_INCOMPLETE", - "IP_OPTIONS_INCOMPLETE", - "UNHANDLED_PROTOCOL", - "CSUM_ERROR" -}; - -/* - * Per-module structure. - */ -struct sfe_ipv4 { - spinlock_t lock; /* Lock for SMP correctness */ - struct sfe_ipv4_connection_match *active_head; - /* Head of the list of recently active connections */ - struct sfe_ipv4_connection_match *active_tail; - /* Tail of the list of recently active connections */ - struct sfe_ipv4_connection *all_connections_head; - /* Head of the list of all connections */ - struct sfe_ipv4_connection *all_connections_tail; - /* Tail of the list of all connections */ - unsigned int num_connections; /* Number of connections */ - struct timer_list timer; /* Timer used for periodic sync ops */ - sfe_sync_rule_callback_t __rcu sync_rule_callback; - /* Callback function registered by a connection manager for stats syncing */ - struct sfe_ipv4_connection *conn_hash[SFE_IPV4_CONNECTION_HASH_SIZE]; - /* Connection hash table */ - struct sfe_ipv4_connection_match *conn_match_hash[SFE_IPV4_CONNECTION_HASH_SIZE]; - /* Connection match hash table */ - - /* - * Stats recorded in a sync period. These stats will be added to - * connection_xxx64 after a sync period. - */ - u32 connection_create_requests; - /* Number of IPv4 connection create requests */ - u32 connection_create_collisions; - /* Number of IPv4 connection create requests that collided with existing hash table entries */ - u32 connection_destroy_requests; - /* Number of IPv4 connection destroy requests */ - u32 connection_destroy_misses; - /* Number of IPv4 connection destroy requests that missed our hash table */ - u32 connection_match_hash_hits; - /* Number of IPv4 connection match hash hits */ - u32 connection_match_hash_reorders; - /* Number of IPv4 connection match hash reorders */ - u32 connection_flushes; /* Number of IPv4 connection flushes */ - u32 packets_forwarded; /* Number of IPv4 packets forwarded */ - u32 packets_not_forwarded; /* Number of IPv4 packets not forwarded */ - u32 exception_events[SFE_IPV4_EXCEPTION_EVENT_LAST]; - - /* - * Summary statistics. - */ - u64 connection_create_requests64; - /* Number of IPv4 connection create requests */ - u64 connection_create_collisions64; - /* Number of IPv4 connection create requests that collided with existing hash table entries */ - u64 connection_destroy_requests64; - /* Number of IPv4 connection destroy requests */ - u64 connection_destroy_misses64; - /* Number of IPv4 connection destroy requests that missed our hash table */ - u64 connection_match_hash_hits64; - /* Number of IPv4 connection match hash hits */ - u64 connection_match_hash_reorders64; - /* Number of IPv4 connection match hash reorders */ - u64 connection_flushes64; /* Number of IPv4 connection flushes */ - u64 packets_forwarded64; /* Number of IPv4 packets forwarded */ - u64 packets_not_forwarded64; - /* Number of IPv4 packets not forwarded */ - u64 exception_events64[SFE_IPV4_EXCEPTION_EVENT_LAST]; - - /* - * Control state. - */ - struct kobject *sys_sfe_ipv4; /* sysfs linkage */ - int debug_dev; /* Major number of the debug char device */ - u32 debug_read_seq; /* sequence number for debug dump */ -}; - -/* - * Enumeration of the XML output. - */ -enum sfe_ipv4_debug_xml_states { - SFE_IPV4_DEBUG_XML_STATE_START, - SFE_IPV4_DEBUG_XML_STATE_CONNECTIONS_START, - SFE_IPV4_DEBUG_XML_STATE_CONNECTIONS_CONNECTION, - SFE_IPV4_DEBUG_XML_STATE_CONNECTIONS_END, - SFE_IPV4_DEBUG_XML_STATE_EXCEPTIONS_START, - SFE_IPV4_DEBUG_XML_STATE_EXCEPTIONS_EXCEPTION, - SFE_IPV4_DEBUG_XML_STATE_EXCEPTIONS_END, - SFE_IPV4_DEBUG_XML_STATE_STATS, - SFE_IPV4_DEBUG_XML_STATE_END, - SFE_IPV4_DEBUG_XML_STATE_DONE -}; - -/* - * XML write state. - */ -struct sfe_ipv4_debug_xml_write_state { - enum sfe_ipv4_debug_xml_states state; - /* XML output file state machine state */ - int iter_exception; /* Next exception iterator */ -}; - -typedef bool (*sfe_ipv4_debug_xml_write_method_t)(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws); - -static struct sfe_ipv4 __si; - -/* - * sfe_ipv4_gen_ip_csum() - * Generate the IP checksum for an IPv4 header. - * - * Note that this function assumes that we have only 20 bytes of IP header. - */ -static inline u16 sfe_ipv4_gen_ip_csum(struct sfe_ipv4_ip_hdr *iph) -{ - u32 sum; - u16 *i = (u16 *)iph; - - iph->check = 0; - - /* - * Generate the sum. - */ - sum = i[0] + i[1] + i[2] + i[3] + i[4] + i[5] + i[6] + i[7] + i[8] + i[9]; - - /* - * Fold it to ones-complement form. - */ - sum = (sum & 0xffff) + (sum >> 16); - sum = (sum & 0xffff) + (sum >> 16); - - return (u16)sum ^ 0xffff; -} - -/* - * sfe_ipv4_get_connection_match_hash() - * Generate the hash used in connection match lookups. - */ -static inline unsigned int sfe_ipv4_get_connection_match_hash(struct net_device *dev, u8 protocol, - __be32 src_ip, __be16 src_port, - __be32 dest_ip, __be16 dest_port) -{ - size_t dev_addr = (size_t)dev; - u32 hash = ((u32)dev_addr) ^ ntohl(src_ip ^ dest_ip) ^ protocol ^ ntohs(src_port ^ dest_port); - return ((hash >> SFE_IPV4_CONNECTION_HASH_SHIFT) ^ hash) & SFE_IPV4_CONNECTION_HASH_MASK; -} - -/* - * sfe_ipv4_find_sfe_ipv4_connection_match() - * Get the IPv4 flow match info that corresponds to a particular 5-tuple. - * - * On entry we must be holding the lock that protects the hash table. - */ -static struct sfe_ipv4_connection_match * -sfe_ipv4_find_sfe_ipv4_connection_match(struct sfe_ipv4 *si, struct net_device *dev, u8 protocol, - __be32 src_ip, __be16 src_port, - __be32 dest_ip, __be16 dest_port) -{ - struct sfe_ipv4_connection_match *cm; - struct sfe_ipv4_connection_match *head; - unsigned int conn_match_idx; - - conn_match_idx = sfe_ipv4_get_connection_match_hash(dev, protocol, src_ip, src_port, dest_ip, dest_port); - cm = si->conn_match_hash[conn_match_idx]; - - /* - * If we don't have anything in this chain then bail. - */ - if (unlikely(!cm)) { - return NULL; - } - - /* - * Hopefully the first entry is the one we want. - */ - if ((cm->match_src_port == src_port) - && (cm->match_dest_port == dest_port) - && (cm->match_src_ip == src_ip) - && (cm->match_dest_ip == dest_ip) - && (cm->match_protocol == protocol) - && (cm->match_dev == dev)) { - si->connection_match_hash_hits++; - return cm; - } - - /* - * Unfortunately we didn't find it at head, so we search it in chain and - * move matching entry to the top of the hash chain. We presume that this - * will be reused again very quickly. - */ - head = cm; - do { - cm = cm->next; - } while (cm && (cm->match_src_port != src_port - || cm->match_dest_port != dest_port - || cm->match_src_ip != src_ip - || cm->match_dest_ip != dest_ip - || cm->match_protocol != protocol - || cm->match_dev != dev)); - - /* - * Not found then we're done. - */ - if (unlikely(!cm)) { - return NULL; - } - - /* - * We found a match so move it. - */ - if (cm->next) { - cm->next->prev = cm->prev; - } - cm->prev->next = cm->next; - cm->prev = NULL; - cm->next = head; - head->prev = cm; - si->conn_match_hash[conn_match_idx] = cm; - si->connection_match_hash_reorders++; - - return cm; -} - -/* - * sfe_ipv4_connection_match_update_summary_stats() - * Update the summary stats for a connection match entry. - */ -static inline void sfe_ipv4_connection_match_update_summary_stats(struct sfe_ipv4_connection_match *cm) -{ - cm->rx_packet_count64 += cm->rx_packet_count; - cm->rx_packet_count = 0; - cm->rx_byte_count64 += cm->rx_byte_count; - cm->rx_byte_count = 0; -} - -/* - * sfe_ipv4_connection_match_compute_translations() - * Compute port and address translations for a connection match entry. - */ -static void sfe_ipv4_connection_match_compute_translations(struct sfe_ipv4_connection_match *cm) -{ - /* - * Before we insert the entry look to see if this is tagged as doing address - * translations. If it is then work out the adjustment that we need to apply - * to the transport checksum. - */ - if (cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_SRC) { - /* - * Precompute an incremental checksum adjustment so we can - * edit packets in this stream very quickly. The algorithm is from RFC1624. - */ - u16 src_ip_hi = cm->match_src_ip >> 16; - u16 src_ip_lo = cm->match_src_ip & 0xffff; - u32 xlate_src_ip = ~cm->xlate_src_ip; - u16 xlate_src_ip_hi = xlate_src_ip >> 16; - u16 xlate_src_ip_lo = xlate_src_ip & 0xffff; - u16 xlate_src_port = ~cm->xlate_src_port; - u32 adj; - - /* - * When we compute this fold it down to a 16-bit offset - * as that way we can avoid having to do a double - * folding of the twos-complement result because the - * addition of 2 16-bit values cannot cause a double - * wrap-around! - */ - adj = src_ip_hi + src_ip_lo + cm->match_src_port - + xlate_src_ip_hi + xlate_src_ip_lo + xlate_src_port; - adj = (adj & 0xffff) + (adj >> 16); - adj = (adj & 0xffff) + (adj >> 16); - cm->xlate_src_csum_adjustment = (u16)adj; - - } - - if (cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_DEST) { - /* - * Precompute an incremental checksum adjustment so we can - * edit packets in this stream very quickly. The algorithm is from RFC1624. - */ - u16 dest_ip_hi = cm->match_dest_ip >> 16; - u16 dest_ip_lo = cm->match_dest_ip & 0xffff; - u32 xlate_dest_ip = ~cm->xlate_dest_ip; - u16 xlate_dest_ip_hi = xlate_dest_ip >> 16; - u16 xlate_dest_ip_lo = xlate_dest_ip & 0xffff; - u16 xlate_dest_port = ~cm->xlate_dest_port; - u32 adj; - - /* - * When we compute this fold it down to a 16-bit offset - * as that way we can avoid having to do a double - * folding of the twos-complement result because the - * addition of 2 16-bit values cannot cause a double - * wrap-around! - */ - adj = dest_ip_hi + dest_ip_lo + cm->match_dest_port - + xlate_dest_ip_hi + xlate_dest_ip_lo + xlate_dest_port; - adj = (adj & 0xffff) + (adj >> 16); - adj = (adj & 0xffff) + (adj >> 16); - cm->xlate_dest_csum_adjustment = (u16)adj; - } - - if (cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_SRC) { - u32 adj = ~cm->match_src_ip + cm->xlate_src_ip; - if (adj < cm->xlate_src_ip) { - adj++; - } - - adj = (adj & 0xffff) + (adj >> 16); - adj = (adj & 0xffff) + (adj >> 16); - cm->xlate_src_partial_csum_adjustment = (u16)adj; - } - - if (cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_DEST) { - u32 adj = ~cm->match_dest_ip + cm->xlate_dest_ip; - if (adj < cm->xlate_dest_ip) { - adj++; - } - - adj = (adj & 0xffff) + (adj >> 16); - adj = (adj & 0xffff) + (adj >> 16); - cm->xlate_dest_partial_csum_adjustment = (u16)adj; - } - -} - -/* - * sfe_ipv4_update_summary_stats() - * Update the summary stats. - */ -static void sfe_ipv4_update_summary_stats(struct sfe_ipv4 *si) -{ - int i; - - si->connection_create_requests64 += si->connection_create_requests; - si->connection_create_requests = 0; - si->connection_create_collisions64 += si->connection_create_collisions; - si->connection_create_collisions = 0; - si->connection_destroy_requests64 += si->connection_destroy_requests; - si->connection_destroy_requests = 0; - si->connection_destroy_misses64 += si->connection_destroy_misses; - si->connection_destroy_misses = 0; - si->connection_match_hash_hits64 += si->connection_match_hash_hits; - si->connection_match_hash_hits = 0; - si->connection_match_hash_reorders64 += si->connection_match_hash_reorders; - si->connection_match_hash_reorders = 0; - si->connection_flushes64 += si->connection_flushes; - si->connection_flushes = 0; - si->packets_forwarded64 += si->packets_forwarded; - si->packets_forwarded = 0; - si->packets_not_forwarded64 += si->packets_not_forwarded; - si->packets_not_forwarded = 0; - - for (i = 0; i < SFE_IPV4_EXCEPTION_EVENT_LAST; i++) { - si->exception_events64[i] += si->exception_events[i]; - si->exception_events[i] = 0; - } -} - -/* - * sfe_ipv4_insert_sfe_ipv4_connection_match() - * Insert a connection match into the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static inline void sfe_ipv4_insert_sfe_ipv4_connection_match(struct sfe_ipv4 *si, - struct sfe_ipv4_connection_match *cm) -{ - struct sfe_ipv4_connection_match **hash_head; - struct sfe_ipv4_connection_match *prev_head; - unsigned int conn_match_idx - = sfe_ipv4_get_connection_match_hash(cm->match_dev, cm->match_protocol, - cm->match_src_ip, cm->match_src_port, - cm->match_dest_ip, cm->match_dest_port); - - hash_head = &si->conn_match_hash[conn_match_idx]; - prev_head = *hash_head; - cm->prev = NULL; - if (prev_head) { - prev_head->prev = cm; - } - - cm->next = prev_head; - *hash_head = cm; -} - -/* - * sfe_ipv4_remove_sfe_ipv4_connection_match() - * Remove a connection match object from the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static inline void sfe_ipv4_remove_sfe_ipv4_connection_match(struct sfe_ipv4 *si, struct sfe_ipv4_connection_match *cm) -{ - /* - * Unlink the connection match entry from the hash. - */ - if (cm->prev) { - cm->prev->next = cm->next; - } else { - unsigned int conn_match_idx - = sfe_ipv4_get_connection_match_hash(cm->match_dev, cm->match_protocol, - cm->match_src_ip, cm->match_src_port, - cm->match_dest_ip, cm->match_dest_port); - si->conn_match_hash[conn_match_idx] = cm->next; - } - - if (cm->next) { - cm->next->prev = cm->prev; - } - - /* - * If the connection match entry is in the active list remove it. - */ - if (cm->active) { - if (likely(cm->active_prev)) { - cm->active_prev->active_next = cm->active_next; - } else { - si->active_head = cm->active_next; - } - - if (likely(cm->active_next)) { - cm->active_next->active_prev = cm->active_prev; - } else { - si->active_tail = cm->active_prev; - } - } -} - -/* - * sfe_ipv4_get_connection_hash() - * Generate the hash used in connection lookups. - */ -static inline unsigned int sfe_ipv4_get_connection_hash(u8 protocol, __be32 src_ip, __be16 src_port, - __be32 dest_ip, __be16 dest_port) -{ - u32 hash = ntohl(src_ip ^ dest_ip) ^ protocol ^ ntohs(src_port ^ dest_port); - return ((hash >> SFE_IPV4_CONNECTION_HASH_SHIFT) ^ hash) & SFE_IPV4_CONNECTION_HASH_MASK; -} - -/* - * sfe_ipv4_find_sfe_ipv4_connection() - * Get the IPv4 connection info that corresponds to a particular 5-tuple. - * - * On entry we must be holding the lock that protects the hash table. - */ -static inline struct sfe_ipv4_connection *sfe_ipv4_find_sfe_ipv4_connection(struct sfe_ipv4 *si, u32 protocol, - __be32 src_ip, __be16 src_port, - __be32 dest_ip, __be16 dest_port) -{ - struct sfe_ipv4_connection *c; - unsigned int conn_idx = sfe_ipv4_get_connection_hash(protocol, src_ip, src_port, dest_ip, dest_port); - c = si->conn_hash[conn_idx]; - - /* - * If we don't have anything in this chain then bale. - */ - if (unlikely(!c)) { - return NULL; - } - - /* - * Hopefully the first entry is the one we want. - */ - if ((c->src_port == src_port) - && (c->dest_port == dest_port) - && (c->src_ip == src_ip) - && (c->dest_ip == dest_ip) - && (c->protocol == protocol)) { - return c; - } - - /* - * Unfortunately we didn't find it at head, so we search it in chain. - */ - do { - c = c->next; - } while (c && (c->src_port != src_port - || c->dest_port != dest_port - || c->src_ip != src_ip - || c->dest_ip != dest_ip - || c->protocol != protocol)); - - /* - * Will need connection entry for next create/destroy metadata, - * So no need to re-order entry for these requests - */ - return c; -} - -/* - * sfe_ipv4_mark_rule() - * Updates the mark for a current offloaded connection - * - * Will take hash lock upon entry - */ -void sfe_ipv4_mark_rule(struct sfe_connection_mark *mark) -{ - struct sfe_ipv4 *si = &__si; - struct sfe_ipv4_connection *c; - - spin_lock_bh(&si->lock); - c = sfe_ipv4_find_sfe_ipv4_connection(si, mark->protocol, - mark->src_ip.ip, mark->src_port, - mark->dest_ip.ip, mark->dest_port); - if (c) { - WARN_ON((0 != c->mark) && (0 == mark->mark)); - c->mark = mark->mark; - } - spin_unlock_bh(&si->lock); - - if (c) { - DEBUG_TRACE("Matching connection found for mark, " - "setting from %08x to %08x\n", - c->mark, mark->mark); - } -} - -/* - * sfe_ipv4_insert_sfe_ipv4_connection() - * Insert a connection into the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static void sfe_ipv4_insert_sfe_ipv4_connection(struct sfe_ipv4 *si, struct sfe_ipv4_connection *c) -{ - struct sfe_ipv4_connection **hash_head; - struct sfe_ipv4_connection *prev_head; - unsigned int conn_idx; - - /* - * Insert entry into the connection hash. - */ - conn_idx = sfe_ipv4_get_connection_hash(c->protocol, c->src_ip, c->src_port, - c->dest_ip, c->dest_port); - hash_head = &si->conn_hash[conn_idx]; - prev_head = *hash_head; - c->prev = NULL; - if (prev_head) { - prev_head->prev = c; - } - - c->next = prev_head; - *hash_head = c; - - /* - * Insert entry into the "all connections" list. - */ - if (si->all_connections_tail) { - c->all_connections_prev = si->all_connections_tail; - si->all_connections_tail->all_connections_next = c; - } else { - c->all_connections_prev = NULL; - si->all_connections_head = c; - } - - si->all_connections_tail = c; - c->all_connections_next = NULL; - si->num_connections++; - - /* - * Insert the connection match objects too. - */ - sfe_ipv4_insert_sfe_ipv4_connection_match(si, c->original_match); - sfe_ipv4_insert_sfe_ipv4_connection_match(si, c->reply_match); -} - -/* - * sfe_ipv4_remove_sfe_ipv4_connection() - * Remove a sfe_ipv4_connection object from the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static void sfe_ipv4_remove_sfe_ipv4_connection(struct sfe_ipv4 *si, struct sfe_ipv4_connection *c) -{ - /* - * Remove the connection match objects. - */ - sfe_ipv4_remove_sfe_ipv4_connection_match(si, c->reply_match); - sfe_ipv4_remove_sfe_ipv4_connection_match(si, c->original_match); - - /* - * Unlink the connection. - */ - if (c->prev) { - c->prev->next = c->next; - } else { - unsigned int conn_idx = sfe_ipv4_get_connection_hash(c->protocol, c->src_ip, c->src_port, - c->dest_ip, c->dest_port); - si->conn_hash[conn_idx] = c->next; - } - - if (c->next) { - c->next->prev = c->prev; - } - - /* - * Unlink connection from all_connections list - */ - if (c->all_connections_prev) { - c->all_connections_prev->all_connections_next = c->all_connections_next; - } else { - si->all_connections_head = c->all_connections_next; - } - - if (c->all_connections_next) { - c->all_connections_next->all_connections_prev = c->all_connections_prev; - } else { - si->all_connections_tail = c->all_connections_prev; - } - - si->num_connections--; -} - -/* - * sfe_ipv4_sync_sfe_ipv4_connection() - * Sync a connection. - * - * On entry to this function we expect that the lock for the connection is either - * already held or isn't required. - */ -static void sfe_ipv4_gen_sync_sfe_ipv4_connection(struct sfe_ipv4 *si, struct sfe_ipv4_connection *c, - struct sfe_connection_sync *sis, sfe_sync_reason_t reason, - u64 now_jiffies) -{ - struct sfe_ipv4_connection_match *original_cm; - struct sfe_ipv4_connection_match *reply_cm; - - /* - * Fill in the update message. - */ - sis->is_v6 = 0; - sis->protocol = c->protocol; - sis->src_ip.ip = c->src_ip; - sis->src_ip_xlate.ip = c->src_ip_xlate; - sis->dest_ip.ip = c->dest_ip; - sis->dest_ip_xlate.ip = c->dest_ip_xlate; - sis->src_port = c->src_port; - sis->src_port_xlate = c->src_port_xlate; - sis->dest_port = c->dest_port; - sis->dest_port_xlate = c->dest_port_xlate; - - original_cm = c->original_match; - reply_cm = c->reply_match; - sis->src_td_max_window = original_cm->protocol_state.tcp.max_win; - sis->src_td_end = original_cm->protocol_state.tcp.end; - sis->src_td_max_end = original_cm->protocol_state.tcp.max_end; - sis->dest_td_max_window = reply_cm->protocol_state.tcp.max_win; - sis->dest_td_end = reply_cm->protocol_state.tcp.end; - sis->dest_td_max_end = reply_cm->protocol_state.tcp.max_end; - - sis->src_new_packet_count = original_cm->rx_packet_count; - sis->src_new_byte_count = original_cm->rx_byte_count; - sis->dest_new_packet_count = reply_cm->rx_packet_count; - sis->dest_new_byte_count = reply_cm->rx_byte_count; - - sfe_ipv4_connection_match_update_summary_stats(original_cm); - sfe_ipv4_connection_match_update_summary_stats(reply_cm); - - sis->src_dev = original_cm->match_dev; - sis->src_packet_count = original_cm->rx_packet_count64; - sis->src_byte_count = original_cm->rx_byte_count64; - - sis->dest_dev = reply_cm->match_dev; - sis->dest_packet_count = reply_cm->rx_packet_count64; - sis->dest_byte_count = reply_cm->rx_byte_count64; - - sis->reason = reason; - - /* - * Get the time increment since our last sync. - */ - sis->delta_jiffies = now_jiffies - c->last_sync_jiffies; - c->last_sync_jiffies = now_jiffies; -} - -/* - * sfe_ipv4_flush_sfe_ipv4_connection() - * Flush a connection and free all associated resources. - * - * We need to be called with bottom halves disabled locally as we need to acquire - * the connection hash lock and release it again. In general we're actually called - * from within a BH and so we're fine, but we're also called when connections are - * torn down. - */ -static void sfe_ipv4_flush_sfe_ipv4_connection(struct sfe_ipv4 *si, - struct sfe_ipv4_connection *c, - sfe_sync_reason_t reason) -{ - struct sfe_connection_sync sis; - u64 now_jiffies; - sfe_sync_rule_callback_t sync_rule_callback; - - rcu_read_lock(); - spin_lock_bh(&si->lock); - si->connection_flushes++; - sync_rule_callback = rcu_dereference(si->sync_rule_callback); - spin_unlock_bh(&si->lock); - - if (sync_rule_callback) { - /* - * Generate a sync message and then sync. - */ - now_jiffies = get_jiffies_64(); - sfe_ipv4_gen_sync_sfe_ipv4_connection(si, c, &sis, reason, now_jiffies); - sync_rule_callback(&sis); - } - - rcu_read_unlock(); - - /* - * Release our hold of the source and dest devices and free the memory - * for our connection objects. - */ - dev_put(c->original_dev); - dev_put(c->reply_dev); - kfree(c->original_match); - kfree(c->reply_match); - kfree(c); -} - -/* - * sfe_ipv4_recv_udp() - * Handle UDP packet receives and forwarding. - */ -static int sfe_ipv4_recv_udp(struct sfe_ipv4 *si, struct sk_buff *skb, struct net_device *dev, - unsigned int len, struct sfe_ipv4_ip_hdr *iph, unsigned int ihl, bool flush_on_find) -{ - struct sfe_ipv4_udp_hdr *udph; - __be32 src_ip; - __be32 dest_ip; - __be16 src_port; - __be16 dest_port; - struct sfe_ipv4_connection_match *cm; - u8 ttl; - struct net_device *xmit_dev; - - /* - * Is our packet too short to contain a valid UDP header? - */ - if (unlikely(!pskb_may_pull(skb, (sizeof(struct sfe_ipv4_udp_hdr) + ihl)))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_UDP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("packet too short for UDP header\n"); - return 0; - } - - /* - * Read the IP address and port information. Read the IP header data first - * because we've almost certainly got that in the cache. We may not yet have - * the UDP header cached though so allow more time for any prefetching. - */ - src_ip = iph->saddr; - dest_ip = iph->daddr; - - udph = (struct sfe_ipv4_udp_hdr *)(skb->data + ihl); - src_port = udph->source; - dest_port = udph->dest; - - spin_lock_bh(&si->lock); - - /* - * Look for a connection match. - */ - cm = sfe_ipv4_find_sfe_ipv4_connection_match(si, dev, IPPROTO_UDP, src_ip, src_port, dest_ip, dest_port); - if (unlikely(!cm)) { - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_UDP_NO_CONNECTION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found\n"); - return 0; - } - - /* - * If our packet has beern marked as "flush on find" we can't actually - * forward it in the fast path, but now that we've found an associated - * connection we can flush that out before we process the packet. - */ - if (unlikely(flush_on_find)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_UDP_IP_OPTIONS_OR_INITIAL_FRAGMENT]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("flush on find\n"); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - -#ifdef CONFIG_XFRM - /* - * We can't accelerate the flow on this direction, just let it go - * through the slow path. - */ - if (unlikely(!cm->flow_accel)) { - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - return 0; - } -#endif - - /* - * Does our TTL allow forwarding? - */ - ttl = iph->ttl; - if (unlikely(ttl < 2)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_UDP_SMALL_TTL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("ttl too low\n"); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * If our packet is larger than the MTU of the transmit interface then - * we can't forward it easily. - */ - if (unlikely(len > cm->xmit_dev_mtu)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_UDP_NEEDS_FRAGMENTATION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("larger than mtu\n"); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * From this point on we're good to modify the packet. - */ - - /* - * Update DSCP - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_DSCP_REMARK)) { - iph->tos = (iph->tos & SFE_IPV4_DSCP_MASK) | cm->dscp; - } - - /* - * Decrement our TTL. - */ - iph->ttl = ttl - 1; - - /* - * Do we have to perform translations of the source address/port? - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_SRC)) { - u16 udp_csum; - - iph->saddr = cm->xlate_src_ip; - udph->source = cm->xlate_src_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - udp_csum = udph->check; - if (likely(udp_csum)) { - u32 sum; - - if (unlikely(skb->ip_summed == CHECKSUM_PARTIAL)) { - sum = udp_csum + cm->xlate_src_partial_csum_adjustment; - } else { - sum = udp_csum + cm->xlate_src_csum_adjustment; - } - - sum = (sum & 0xffff) + (sum >> 16); - udph->check = (u16)sum; - } - } - - /* - * Do we have to perform translations of the destination address/port? - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_DEST)) { - u16 udp_csum; - - iph->daddr = cm->xlate_dest_ip; - udph->dest = cm->xlate_dest_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - udp_csum = udph->check; - if (likely(udp_csum)) { - u32 sum; - - if (unlikely(skb->ip_summed == CHECKSUM_PARTIAL)) { - sum = udp_csum + cm->xlate_dest_partial_csum_adjustment; - } else { - sum = udp_csum + cm->xlate_dest_csum_adjustment; - } - - sum = (sum & 0xffff) + (sum >> 16); - udph->check = (u16)sum; - } - } - - /* - * Replace the IP checksum. - */ - iph->check = sfe_ipv4_gen_ip_csum(iph); - - /* - * Update traffic stats. - */ - cm->rx_packet_count++; - cm->rx_byte_count += len; - - /* - * If we're not already on the active list then insert ourselves at the tail - * of the current list. - */ - if (unlikely(!cm->active)) { - cm->active = true; - cm->active_prev = si->active_tail; - if (likely(si->active_tail)) { - si->active_tail->active_next = cm; - } else { - si->active_head = cm; - } - si->active_tail = cm; - } - - xmit_dev = cm->xmit_dev; - skb->dev = xmit_dev; - - /* - * Check to see if we need to write a header. - */ - if (likely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_L2_HDR)) { - if (unlikely(!(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR))) { - dev_hard_header(skb, xmit_dev, ETH_P_IP, - cm->xmit_dest_mac, cm->xmit_src_mac, len); - } else { - /* - * For the simple case we write this really fast. - */ - struct sfe_ipv4_eth_hdr *eth = (struct sfe_ipv4_eth_hdr *)__skb_push(skb, ETH_HLEN); - eth->h_proto = htons(ETH_P_IP); - eth->h_dest[0] = cm->xmit_dest_mac[0]; - eth->h_dest[1] = cm->xmit_dest_mac[1]; - eth->h_dest[2] = cm->xmit_dest_mac[2]; - eth->h_source[0] = cm->xmit_src_mac[0]; - eth->h_source[1] = cm->xmit_src_mac[1]; - eth->h_source[2] = cm->xmit_src_mac[2]; - } - } - - /* - * Update priority of skb. - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_PRIORITY_REMARK)) { - skb->priority = cm->priority; - } - - /* - * Mark outgoing packet. - */ - skb->mark = cm->connection->mark; - if (skb->mark) { - DEBUG_TRACE("SKB MARK is NON ZERO %x\n", skb->mark); - } - - si->packets_forwarded++; - spin_unlock_bh(&si->lock); - - /* - * We're going to check for GSO flags when we transmit the packet so - * start fetching the necessary cache line now. - */ - prefetch(skb_shinfo(skb)); - - /* - * Mark that this packet has been fast forwarded. - */ - skb->fast_forwarded = 1; - - /* - * Send the packet on its way. - */ - dev_queue_xmit(skb); - - return 1; -} - -/* - * sfe_ipv4_process_tcp_option_sack() - * Parse TCP SACK option and update ack according - */ -static bool sfe_ipv4_process_tcp_option_sack(const struct sfe_ipv4_tcp_hdr *th, const u32 data_offs, - u32 *ack) -{ - u32 length = sizeof(struct sfe_ipv4_tcp_hdr); - u8 *ptr = (u8 *)th + length; - - /* - * Ignore processing if TCP packet has only TIMESTAMP option. - */ - if (likely(data_offs == length + TCPOLEN_TIMESTAMP + 1 + 1) - && likely(ptr[0] == TCPOPT_NOP) - && likely(ptr[1] == TCPOPT_NOP) - && likely(ptr[2] == TCPOPT_TIMESTAMP) - && likely(ptr[3] == TCPOLEN_TIMESTAMP)) { - return true; - } - - /* - * TCP options. Parse SACK option. - */ - while (length < data_offs) { - u8 size; - u8 kind; - - ptr = (u8 *)th + length; - kind = *ptr; - - /* - * NOP, for padding - * Not in the switch because to fast escape and to not calculate size - */ - if (kind == TCPOPT_NOP) { - length++; - continue; - } - - if (kind == TCPOPT_SACK) { - u32 sack = 0; - u8 re = 1 + 1; - - size = *(ptr + 1); - if ((size < (1 + 1 + TCPOLEN_SACK_PERBLOCK)) - || ((size - (1 + 1)) % (TCPOLEN_SACK_PERBLOCK)) - || (size > (data_offs - length))) { - return false; - } - - re += 4; - while (re < size) { - u32 sack_re; - u8 *sptr = ptr + re; - sack_re = (sptr[0] << 24) | (sptr[1] << 16) | (sptr[2] << 8) | sptr[3]; - if (sack_re > sack) { - sack = sack_re; - } - re += TCPOLEN_SACK_PERBLOCK; - } - if (sack > *ack) { - *ack = sack; - } - length += size; - continue; - } - if (kind == TCPOPT_EOL) { - return true; - } - size = *(ptr + 1); - if (size < 2) { - return false; - } - length += size; - } - - return true; -} - -/* - * sfe_ipv4_recv_tcp() - * Handle TCP packet receives and forwarding. - */ -static int sfe_ipv4_recv_tcp(struct sfe_ipv4 *si, struct sk_buff *skb, struct net_device *dev, - unsigned int len, struct sfe_ipv4_ip_hdr *iph, unsigned int ihl, bool flush_on_find) -{ - struct sfe_ipv4_tcp_hdr *tcph; - __be32 src_ip; - __be32 dest_ip; - __be16 src_port; - __be16 dest_port; - struct sfe_ipv4_connection_match *cm; - struct sfe_ipv4_connection_match *counter_cm; - u8 ttl; - u32 flags; - struct net_device *xmit_dev; - - /* - * Is our packet too short to contain a valid UDP header? - */ - if (unlikely(!pskb_may_pull(skb, (sizeof(struct sfe_ipv4_tcp_hdr) + ihl)))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("packet too short for TCP header\n"); - return 0; - } - - /* - * Read the IP address and port information. Read the IP header data first - * because we've almost certainly got that in the cache. We may not yet have - * the TCP header cached though so allow more time for any prefetching. - */ - src_ip = iph->saddr; - dest_ip = iph->daddr; - - tcph = (struct sfe_ipv4_tcp_hdr *)(skb->data + ihl); - src_port = tcph->source; - dest_port = tcph->dest; - flags = tcp_flag_word(tcph); - - spin_lock_bh(&si->lock); - - /* - * Look for a connection match. - */ - cm = sfe_ipv4_find_sfe_ipv4_connection_match(si, dev, IPPROTO_TCP, src_ip, src_port, dest_ip, dest_port); - if (unlikely(!cm)) { - /* - * We didn't get a connection but as TCP is connection-oriented that - * may be because this is a non-fast connection (not running established). - * For diagnostic purposes we differentiate this here. - */ - if (likely((flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)) == TCP_FLAG_ACK)) { - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_NO_CONNECTION_FAST_FLAGS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found - fast flags\n"); - return 0; - } - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_NO_CONNECTION_SLOW_FLAGS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found - slow flags: 0x%x\n", - flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)); - return 0; - } - - /* - * If our packet has beern marked as "flush on find" we can't actually - * forward it in the fast path, but now that we've found an associated - * connection we can flush that out before we process the packet. - */ - if (unlikely(flush_on_find)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_IP_OPTIONS_OR_INITIAL_FRAGMENT]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("flush on find\n"); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - -#ifdef CONFIG_XFRM - /* - * We can't accelerate the flow on this direction, just let it go - * through the slow path. - */ - if (unlikely(!cm->flow_accel)) { - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - return 0; - } -#endif - /* - * Does our TTL allow forwarding? - */ - ttl = iph->ttl; - if (unlikely(ttl < 2)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_SMALL_TTL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("ttl too low\n"); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * If our packet is larger than the MTU of the transmit interface then - * we can't forward it easily. - */ - if (unlikely((len > cm->xmit_dev_mtu) && !skb_is_gso(skb))) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_NEEDS_FRAGMENTATION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("larger than mtu\n"); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Look at our TCP flags. Anything missing an ACK or that has RST, SYN or FIN - * set is not a fast path packet. - */ - if (unlikely((flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)) != TCP_FLAG_ACK)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_FLAGS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP flags: 0x%x are not fast\n", - flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - counter_cm = cm->counter_match; - - /* - * Are we doing sequence number checking? - */ - if (likely(!(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK))) { - u32 seq; - u32 ack; - u32 sack; - u32 data_offs; - u32 end; - u32 left_edge; - u32 scaled_win; - u32 max_end; - - /* - * Is our sequence fully past the right hand edge of the window? - */ - seq = ntohl(tcph->seq); - if (unlikely((s32)(seq - (cm->protocol_state.tcp.max_end + 1)) > 0)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_SEQ_EXCEEDS_RIGHT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("seq: %u exceeds right edge: %u\n", - seq, cm->protocol_state.tcp.max_end + 1); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Check that our TCP data offset isn't too short. - */ - data_offs = tcph->doff << 2; - if (unlikely(data_offs < sizeof(struct sfe_ipv4_tcp_hdr))) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_SMALL_DATA_OFFS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP data offset: %u, too small\n", data_offs); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Update ACK according to any SACK option. - */ - ack = ntohl(tcph->ack_seq); - sack = ack; - if (unlikely(!sfe_ipv4_process_tcp_option_sack(tcph, data_offs, &sack))) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_BAD_SACK]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP option SACK size is wrong\n"); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Check that our TCP data offset isn't past the end of the packet. - */ - data_offs += sizeof(struct sfe_ipv4_ip_hdr); - if (unlikely(len < data_offs)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_BIG_DATA_OFFS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP data offset: %u, past end of packet: %u\n", - data_offs, len); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - end = seq + len - data_offs; - - /* - * Is our sequence fully before the left hand edge of the window? - */ - if (unlikely((s32)(end - (cm->protocol_state.tcp.end - - counter_cm->protocol_state.tcp.max_win - 1)) < 0)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_SEQ_BEFORE_LEFT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("seq: %u before left edge: %u\n", - end, cm->protocol_state.tcp.end - counter_cm->protocol_state.tcp.max_win - 1); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Are we acking data that is to the right of what has been sent? - */ - if (unlikely((s32)(sack - (counter_cm->protocol_state.tcp.end + 1)) > 0)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_ACK_EXCEEDS_RIGHT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("ack: %u exceeds right edge: %u\n", - sack, counter_cm->protocol_state.tcp.end + 1); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Is our ack too far before the left hand edge of the window? - */ - left_edge = counter_cm->protocol_state.tcp.end - - cm->protocol_state.tcp.max_win - - SFE_IPV4_TCP_MAX_ACK_WINDOW - - 1; - if (unlikely((s32)(sack - left_edge) < 0)) { - struct sfe_ipv4_connection *c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_TCP_ACK_BEFORE_LEFT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("ack: %u before left edge: %u\n", sack, left_edge); - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Have we just seen the largest window size yet for this connection? If yes - * then we need to record the new value. - */ - scaled_win = ntohs(tcph->window) << cm->protocol_state.tcp.win_scale; - scaled_win += (sack - ack); - if (unlikely(cm->protocol_state.tcp.max_win < scaled_win)) { - cm->protocol_state.tcp.max_win = scaled_win; - } - - /* - * If our sequence and/or ack numbers have advanced then record the new state. - */ - if (likely((s32)(end - cm->protocol_state.tcp.end) >= 0)) { - cm->protocol_state.tcp.end = end; - } - - max_end = sack + scaled_win; - if (likely((s32)(max_end - counter_cm->protocol_state.tcp.max_end) >= 0)) { - counter_cm->protocol_state.tcp.max_end = max_end; - } - } - - /* - * From this point on we're good to modify the packet. - */ - - /* - * Update DSCP - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_DSCP_REMARK)) { - iph->tos = (iph->tos & SFE_IPV4_DSCP_MASK) | cm->dscp; - } - - /* - * Decrement our TTL. - */ - iph->ttl = ttl - 1; - - /* - * Do we have to perform translations of the source address/port? - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_SRC)) { - u16 tcp_csum; - u32 sum; - - iph->saddr = cm->xlate_src_ip; - tcph->source = cm->xlate_src_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - tcp_csum = tcph->check; - if (unlikely(skb->ip_summed == CHECKSUM_PARTIAL)) { - sum = tcp_csum + cm->xlate_src_partial_csum_adjustment; - } else { - sum = tcp_csum + cm->xlate_src_csum_adjustment; - } - - sum = (sum & 0xffff) + (sum >> 16); - tcph->check = (u16)sum; - } - - /* - * Do we have to perform translations of the destination address/port? - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_DEST)) { - u16 tcp_csum; - u32 sum; - - iph->daddr = cm->xlate_dest_ip; - tcph->dest = cm->xlate_dest_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - tcp_csum = tcph->check; - if (unlikely(skb->ip_summed == CHECKSUM_PARTIAL)) { - sum = tcp_csum + cm->xlate_dest_partial_csum_adjustment; - } else { - sum = tcp_csum + cm->xlate_dest_csum_adjustment; - } - - sum = (sum & 0xffff) + (sum >> 16); - tcph->check = (u16)sum; - } - - /* - * Replace the IP checksum. - */ - iph->check = sfe_ipv4_gen_ip_csum(iph); - - /* - * Update traffic stats. - */ - cm->rx_packet_count++; - cm->rx_byte_count += len; - - /* - * If we're not already on the active list then insert ourselves at the tail - * of the current list. - */ - if (unlikely(!cm->active)) { - cm->active = true; - cm->active_prev = si->active_tail; - if (likely(si->active_tail)) { - si->active_tail->active_next = cm; - } else { - si->active_head = cm; - } - si->active_tail = cm; - } - - xmit_dev = cm->xmit_dev; - skb->dev = xmit_dev; - - /* - * Check to see if we need to write a header. - */ - if (likely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_L2_HDR)) { - if (unlikely(!(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR))) { - dev_hard_header(skb, xmit_dev, ETH_P_IP, - cm->xmit_dest_mac, cm->xmit_src_mac, len); - } else { - /* - * For the simple case we write this really fast. - */ - struct sfe_ipv4_eth_hdr *eth = (struct sfe_ipv4_eth_hdr *)__skb_push(skb, ETH_HLEN); - eth->h_proto = htons(ETH_P_IP); - eth->h_dest[0] = cm->xmit_dest_mac[0]; - eth->h_dest[1] = cm->xmit_dest_mac[1]; - eth->h_dest[2] = cm->xmit_dest_mac[2]; - eth->h_source[0] = cm->xmit_src_mac[0]; - eth->h_source[1] = cm->xmit_src_mac[1]; - eth->h_source[2] = cm->xmit_src_mac[2]; - } - } - - /* - * Update priority of skb. - */ - if (unlikely(cm->flags & SFE_IPV4_CONNECTION_MATCH_FLAG_PRIORITY_REMARK)) { - skb->priority = cm->priority; - } - - /* - * Mark outgoing packet - */ - skb->mark = cm->connection->mark; - if (skb->mark) { - DEBUG_TRACE("SKB MARK is NON ZERO %x\n", skb->mark); - } - - si->packets_forwarded++; - spin_unlock_bh(&si->lock); - - /* - * We're going to check for GSO flags when we transmit the packet so - * start fetching the necessary cache line now. - */ - prefetch(skb_shinfo(skb)); - - /* - * Mark that this packet has been fast forwarded. - */ - skb->fast_forwarded = 1; - - /* - * Send the packet on its way. - */ - dev_queue_xmit(skb); - - return 1; -} - -/* - * sfe_ipv4_recv_icmp() - * Handle ICMP packet receives. - * - * ICMP packets aren't handled as a "fast path" and always have us process them - * through the default Linux stack. What we do need to do is look for any errors - * about connections we are handling in the fast path. If we find any such - * connections then we want to flush their state so that the ICMP error path - * within Linux has all of the correct state should it need it. - */ -static int sfe_ipv4_recv_icmp(struct sfe_ipv4 *si, struct sk_buff *skb, struct net_device *dev, - unsigned int len, struct sfe_ipv4_ip_hdr *iph, unsigned int ihl) -{ - struct icmphdr *icmph; - struct sfe_ipv4_ip_hdr *icmp_iph; - unsigned int icmp_ihl_words; - unsigned int icmp_ihl; - u32 *icmp_trans_h; - struct sfe_ipv4_udp_hdr *icmp_udph; - struct sfe_ipv4_tcp_hdr *icmp_tcph; - __be32 src_ip; - __be32 dest_ip; - __be16 src_port; - __be16 dest_port; - struct sfe_ipv4_connection_match *cm; - struct sfe_ipv4_connection *c; - u32 pull_len = sizeof(struct icmphdr) + ihl; - - /* - * Is our packet too short to contain a valid ICMP header? - */ - len -= ihl; - if (!pskb_may_pull(skb, pull_len)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("packet too short for ICMP header\n"); - return 0; - } - - /* - * We only handle "destination unreachable" and "time exceeded" messages. - */ - icmph = (struct icmphdr *)(skb->data + ihl); - if ((icmph->type != ICMP_DEST_UNREACH) - && (icmph->type != ICMP_TIME_EXCEEDED)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_UNHANDLED_TYPE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("unhandled ICMP type: 0x%x\n", icmph->type); - return 0; - } - - /* - * Do we have the full embedded IP header? - */ - len -= sizeof(struct icmphdr); - pull_len += sizeof(struct sfe_ipv4_ip_hdr); - if (!pskb_may_pull(skb, pull_len)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("Embedded IP header not complete\n"); - return 0; - } - - /* - * Is our embedded IP version wrong? - */ - icmp_iph = (struct sfe_ipv4_ip_hdr *)(icmph + 1); - if (unlikely(icmp_iph->version != 4)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_NON_V4]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("IP version: %u\n", icmp_iph->version); - return 0; - } - - /* - * Do we have the full embedded IP header, including any options? - */ - icmp_ihl_words = icmp_iph->ihl; - icmp_ihl = icmp_ihl_words << 2; - pull_len += icmp_ihl - sizeof(struct sfe_ipv4_ip_hdr); - if (!pskb_may_pull(skb, pull_len)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_IP_OPTIONS_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("Embedded header not large enough for IP options\n"); - return 0; - } - - len -= icmp_ihl; - icmp_trans_h = ((u32 *)icmp_iph) + icmp_ihl_words; - - /* - * Handle the embedded transport layer header. - */ - switch (icmp_iph->protocol) { - case IPPROTO_UDP: - /* - * We should have 8 bytes of UDP header - that's enough to identify - * the connection. - */ - pull_len += 8; - if (!pskb_may_pull(skb, pull_len)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_UDP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("Incomplete embedded UDP header\n"); - return 0; - } - - icmp_udph = (struct sfe_ipv4_udp_hdr *)icmp_trans_h; - src_port = icmp_udph->source; - dest_port = icmp_udph->dest; - break; - - case IPPROTO_TCP: - /* - * We should have 8 bytes of TCP header - that's enough to identify - * the connection. - */ - pull_len += 8; - if (!pskb_may_pull(skb, pull_len)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_TCP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("Incomplete embedded TCP header\n"); - return 0; - } - - icmp_tcph = (struct sfe_ipv4_tcp_hdr *)icmp_trans_h; - src_port = icmp_tcph->source; - dest_port = icmp_tcph->dest; - break; - - default: - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_IPV4_UNHANDLED_PROTOCOL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("Unhandled embedded IP protocol: %u\n", icmp_iph->protocol); - return 0; - } - - src_ip = icmp_iph->saddr; - dest_ip = icmp_iph->daddr; - - spin_lock_bh(&si->lock); - - /* - * Look for a connection match. Note that we reverse the source and destination - * here because our embedded message contains a packet that was sent in the - * opposite direction to the one in which we just received it. It will have - * been sent on the interface from which we received it though so that's still - * ok to use. - */ - cm = sfe_ipv4_find_sfe_ipv4_connection_match(si, dev, icmp_iph->protocol, dest_ip, dest_port, src_ip, src_port); - if (unlikely(!cm)) { - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_NO_CONNECTION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found\n"); - return 0; - } - - /* - * We found a connection so now remove it from the connection list and flush - * its state. - */ - c = cm->connection; - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_ICMP_FLUSHED_CONNECTION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; -} - -/* - * sfe_ipv4_recv() - * Handle packet receives and forwaring. - * - * Returns 1 if the packet is forwarded or 0 if it isn't. - */ -int sfe_ipv4_recv(struct net_device *dev, struct sk_buff *skb) -{ - struct sfe_ipv4 *si = &__si; - unsigned int len; - unsigned int tot_len; - unsigned int frag_off; - unsigned int ihl; - bool flush_on_find; - bool ip_options; - struct sfe_ipv4_ip_hdr *iph; - u32 protocol; - - /* - * Check that we have space for an IP header here. - */ - len = skb->len; - if (unlikely(!pskb_may_pull(skb, sizeof(struct sfe_ipv4_ip_hdr)))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("len: %u is too short\n", len); - return 0; - } - - /* - * Check that our "total length" is large enough for an IP header. - */ - iph = (struct sfe_ipv4_ip_hdr *)skb->data; - tot_len = ntohs(iph->tot_len); - if (unlikely(tot_len < sizeof(struct sfe_ipv4_ip_hdr))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_BAD_TOTAL_LENGTH]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("tot_len: %u is too short\n", tot_len); - return 0; - } - - /* - * Is our IP version wrong? - */ - if (unlikely(iph->version != 4)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_NON_V4]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("IP version: %u\n", iph->version); - return 0; - } - - /* - * Does our datagram fit inside the skb? - */ - if (unlikely(tot_len > len)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_DATAGRAM_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("tot_len: %u, exceeds len: %u\n", tot_len, len); - return 0; - } - - /* - * Do we have a non-initial fragment? - */ - frag_off = ntohs(iph->frag_off); - if (unlikely(frag_off & IP_OFFSET)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_NON_INITIAL_FRAGMENT]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("non-initial fragment\n"); - return 0; - } - - /* - * If we have a (first) fragment then mark it to cause any connection to flush. - */ - flush_on_find = unlikely(frag_off & IP_MF) ? true : false; - - /* - * Do we have any IP options? That's definite a slow path! If we do have IP - * options we need to recheck our header size. - */ - ihl = iph->ihl << 2; - ip_options = unlikely(ihl != sizeof(struct sfe_ipv4_ip_hdr)) ? true : false; - if (unlikely(ip_options)) { - if (unlikely(len < ihl)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_IP_OPTIONS_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("len: %u is too short for header of size: %u\n", len, ihl); - return 0; - } - - flush_on_find = true; - } - - if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_CSUM_ERROR]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("checksum of ipv4 header is invalid\n"); - return 0; - } - - protocol = iph->protocol; - if (IPPROTO_UDP == protocol) { - return sfe_ipv4_recv_udp(si, skb, dev, len, iph, ihl, flush_on_find); - } - - if (IPPROTO_TCP == protocol) { - return sfe_ipv4_recv_tcp(si, skb, dev, len, iph, ihl, flush_on_find); - } - - if (IPPROTO_ICMP == protocol) { - return sfe_ipv4_recv_icmp(si, skb, dev, len, iph, ihl); - } - - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV4_EXCEPTION_EVENT_UNHANDLED_PROTOCOL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("not UDP, TCP or ICMP: %u\n", protocol); - return 0; -} - -static void -sfe_ipv4_update_tcp_state(struct sfe_ipv4_connection *c, - struct sfe_connection_create *sic) -{ - struct sfe_ipv4_connection_match *orig_cm; - struct sfe_ipv4_connection_match *repl_cm; - struct sfe_ipv4_tcp_connection_match *orig_tcp; - struct sfe_ipv4_tcp_connection_match *repl_tcp; - - orig_cm = c->original_match; - repl_cm = c->reply_match; - orig_tcp = &orig_cm->protocol_state.tcp; - repl_tcp = &repl_cm->protocol_state.tcp; - - /* update orig */ - if (orig_tcp->max_win < sic->src_td_max_window) { - orig_tcp->max_win = sic->src_td_max_window; - } - if ((s32)(orig_tcp->end - sic->src_td_end) < 0) { - orig_tcp->end = sic->src_td_end; - } - if ((s32)(orig_tcp->max_end - sic->src_td_max_end) < 0) { - orig_tcp->max_end = sic->src_td_max_end; - } - - /* update reply */ - if (repl_tcp->max_win < sic->dest_td_max_window) { - repl_tcp->max_win = sic->dest_td_max_window; - } - if ((s32)(repl_tcp->end - sic->dest_td_end) < 0) { - repl_tcp->end = sic->dest_td_end; - } - if ((s32)(repl_tcp->max_end - sic->dest_td_max_end) < 0) { - repl_tcp->max_end = sic->dest_td_max_end; - } - - /* update match flags */ - orig_cm->flags &= ~SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - repl_cm->flags &= ~SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - if (sic->flags & SFE_CREATE_FLAG_NO_SEQ_CHECK) { - orig_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - repl_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - } -} - -static void -sfe_ipv4_update_protocol_state(struct sfe_ipv4_connection *c, - struct sfe_connection_create *sic) -{ - switch (sic->protocol) { - case IPPROTO_TCP: - sfe_ipv4_update_tcp_state(c, sic); - break; - } -} - -void sfe_ipv4_update_rule(struct sfe_connection_create *sic) -{ - struct sfe_ipv4_connection *c; - struct sfe_ipv4 *si = &__si; - - spin_lock_bh(&si->lock); - - c = sfe_ipv4_find_sfe_ipv4_connection(si, - sic->protocol, - sic->src_ip.ip, - sic->src_port, - sic->dest_ip.ip, - sic->dest_port); - if (c != NULL) { - sfe_ipv4_update_protocol_state(c, sic); - } - - spin_unlock_bh(&si->lock); -} - -/* - * sfe_ipv4_create_rule() - * Create a forwarding rule. - */ -int sfe_ipv4_create_rule(struct sfe_connection_create *sic) -{ - struct sfe_ipv4 *si = &__si; - struct sfe_ipv4_connection *c; - struct sfe_ipv4_connection_match *original_cm; - struct sfe_ipv4_connection_match *reply_cm; - struct net_device *dest_dev; - struct net_device *src_dev; - - dest_dev = sic->dest_dev; - src_dev = sic->src_dev; - - if (unlikely((dest_dev->reg_state != NETREG_REGISTERED) || - (src_dev->reg_state != NETREG_REGISTERED))) { - return -EINVAL; - } - - spin_lock_bh(&si->lock); - si->connection_create_requests++; - - /* - * Check to see if there is already a flow that matches the rule we're - * trying to create. If there is then we can't create a new one. - */ - c = sfe_ipv4_find_sfe_ipv4_connection(si, - sic->protocol, - sic->src_ip.ip, - sic->src_port, - sic->dest_ip.ip, - sic->dest_port); - if (c != NULL) { - si->connection_create_collisions++; - - /* - * If we already have the flow then it's likely that this - * request to create the connection rule contains more - * up-to-date information. Check and update accordingly. - */ - sfe_ipv4_update_protocol_state(c, sic); - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("connection already exists - mark: %08x, p: %d\n" - " s: %s:%pM:%pI4:%u, d: %s:%pM:%pI4:%u\n", - sic->mark, sic->protocol, - sic->src_dev->name, sic->src_mac, &sic->src_ip.ip, ntohs(sic->src_port), - sic->dest_dev->name, sic->dest_mac, &sic->dest_ip.ip, ntohs(sic->dest_port)); - return -EADDRINUSE; - } - - /* - * Allocate the various connection tracking objects. - */ - c = (struct sfe_ipv4_connection *)kmalloc(sizeof(struct sfe_ipv4_connection), GFP_ATOMIC); - if (unlikely(!c)) { - spin_unlock_bh(&si->lock); - return -ENOMEM; - } - - original_cm = (struct sfe_ipv4_connection_match *)kmalloc(sizeof(struct sfe_ipv4_connection_match), GFP_ATOMIC); - if (unlikely(!original_cm)) { - spin_unlock_bh(&si->lock); - kfree(c); - return -ENOMEM; - } - - reply_cm = (struct sfe_ipv4_connection_match *)kmalloc(sizeof(struct sfe_ipv4_connection_match), GFP_ATOMIC); - if (unlikely(!reply_cm)) { - spin_unlock_bh(&si->lock); - kfree(original_cm); - kfree(c); - return -ENOMEM; - } - - /* - * Fill in the "original" direction connection matching object. - * Note that the transmit MAC address is "dest_mac_xlate" because - * we always know both ends of a connection by their translated - * addresses and not their public addresses. - */ - original_cm->match_dev = src_dev; - original_cm->match_protocol = sic->protocol; - original_cm->match_src_ip = sic->src_ip.ip; - original_cm->match_src_port = sic->src_port; - original_cm->match_dest_ip = sic->dest_ip.ip; - original_cm->match_dest_port = sic->dest_port; - original_cm->xlate_src_ip = sic->src_ip_xlate.ip; - original_cm->xlate_src_port = sic->src_port_xlate; - original_cm->xlate_dest_ip = sic->dest_ip_xlate.ip; - original_cm->xlate_dest_port = sic->dest_port_xlate; - original_cm->rx_packet_count = 0; - original_cm->rx_packet_count64 = 0; - original_cm->rx_byte_count = 0; - original_cm->rx_byte_count64 = 0; - original_cm->xmit_dev = dest_dev; - original_cm->xmit_dev_mtu = sic->dest_mtu; - memcpy(original_cm->xmit_src_mac, dest_dev->dev_addr, ETH_ALEN); - memcpy(original_cm->xmit_dest_mac, sic->dest_mac_xlate, ETH_ALEN); - original_cm->connection = c; - original_cm->counter_match = reply_cm; - original_cm->flags = 0; - if (sic->flags & SFE_CREATE_FLAG_REMARK_PRIORITY) { - original_cm->priority = sic->src_priority; - original_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_PRIORITY_REMARK; - } - if (sic->flags & SFE_CREATE_FLAG_REMARK_DSCP) { - original_cm->dscp = sic->src_dscp << SFE_IPV4_DSCP_SHIFT; - original_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_DSCP_REMARK; - } -#ifdef CONFIG_XFRM - original_cm->flow_accel = sic->original_accel; -#endif - original_cm->active_next = NULL; - original_cm->active_prev = NULL; - original_cm->active = false; - - /* - * For PPP links we don't write an L2 header. For everything else we do. - */ - if (!(dest_dev->flags & IFF_POINTOPOINT)) { - original_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_L2_HDR; - - /* - * If our dev writes Ethernet headers then we can write a really fast - * version. - */ - if (dest_dev->header_ops) { - if (dest_dev->header_ops->create == eth_header) { - original_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR; - } - } - } - - /* - * Fill in the "reply" direction connection matching object. - */ - reply_cm->match_dev = dest_dev; - reply_cm->match_protocol = sic->protocol; - reply_cm->match_src_ip = sic->dest_ip_xlate.ip; - reply_cm->match_src_port = sic->dest_port_xlate; - reply_cm->match_dest_ip = sic->src_ip_xlate.ip; - reply_cm->match_dest_port = sic->src_port_xlate; - reply_cm->xlate_src_ip = sic->dest_ip.ip; - reply_cm->xlate_src_port = sic->dest_port; - reply_cm->xlate_dest_ip = sic->src_ip.ip; - reply_cm->xlate_dest_port = sic->src_port; - reply_cm->rx_packet_count = 0; - reply_cm->rx_packet_count64 = 0; - reply_cm->rx_byte_count = 0; - reply_cm->rx_byte_count64 = 0; - reply_cm->xmit_dev = src_dev; - reply_cm->xmit_dev_mtu = sic->src_mtu; - memcpy(reply_cm->xmit_src_mac, src_dev->dev_addr, ETH_ALEN); - memcpy(reply_cm->xmit_dest_mac, sic->src_mac, ETH_ALEN); - reply_cm->connection = c; - reply_cm->counter_match = original_cm; - reply_cm->flags = 0; - if (sic->flags & SFE_CREATE_FLAG_REMARK_PRIORITY) { - reply_cm->priority = sic->dest_priority; - reply_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_PRIORITY_REMARK; - } - if (sic->flags & SFE_CREATE_FLAG_REMARK_DSCP) { - reply_cm->dscp = sic->dest_dscp << SFE_IPV4_DSCP_SHIFT; - reply_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_DSCP_REMARK; - } -#ifdef CONFIG_XFRM - reply_cm->flow_accel = sic->reply_accel; -#endif - reply_cm->active_next = NULL; - reply_cm->active_prev = NULL; - reply_cm->active = false; - - /* - * For PPP links we don't write an L2 header. For everything else we do. - */ - if (!(src_dev->flags & IFF_POINTOPOINT)) { - reply_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_L2_HDR; - - /* - * If our dev writes Ethernet headers then we can write a really fast - * version. - */ - if (src_dev->header_ops) { - if (src_dev->header_ops->create == eth_header) { - reply_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR; - } - } - } - - - if (sic->dest_ip.ip != sic->dest_ip_xlate.ip || sic->dest_port != sic->dest_port_xlate) { - original_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_DEST; - reply_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_SRC; - } - - if (sic->src_ip.ip != sic->src_ip_xlate.ip || sic->src_port != sic->src_port_xlate) { - original_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_SRC; - reply_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_XLATE_DEST; - } - - c->protocol = sic->protocol; - c->src_ip = sic->src_ip.ip; - c->src_ip_xlate = sic->src_ip_xlate.ip; - c->src_port = sic->src_port; - c->src_port_xlate = sic->src_port_xlate; - c->original_dev = src_dev; - c->original_match = original_cm; - c->dest_ip = sic->dest_ip.ip; - c->dest_ip_xlate = sic->dest_ip_xlate.ip; - c->dest_port = sic->dest_port; - c->dest_port_xlate = sic->dest_port_xlate; - c->reply_dev = dest_dev; - c->reply_match = reply_cm; - c->mark = sic->mark; - c->debug_read_seq = 0; - c->last_sync_jiffies = get_jiffies_64(); - - /* - * Take hold of our source and dest devices for the duration of the connection. - */ - dev_hold(c->original_dev); - dev_hold(c->reply_dev); - - /* - * Initialize the protocol-specific information that we track. - */ - switch (sic->protocol) { - case IPPROTO_TCP: - original_cm->protocol_state.tcp.win_scale = sic->src_td_window_scale; - original_cm->protocol_state.tcp.max_win = sic->src_td_max_window ? sic->src_td_max_window : 1; - original_cm->protocol_state.tcp.end = sic->src_td_end; - original_cm->protocol_state.tcp.max_end = sic->src_td_max_end; - reply_cm->protocol_state.tcp.win_scale = sic->dest_td_window_scale; - reply_cm->protocol_state.tcp.max_win = sic->dest_td_max_window ? sic->dest_td_max_window : 1; - reply_cm->protocol_state.tcp.end = sic->dest_td_end; - reply_cm->protocol_state.tcp.max_end = sic->dest_td_max_end; - if (sic->flags & SFE_CREATE_FLAG_NO_SEQ_CHECK) { - original_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - reply_cm->flags |= SFE_IPV4_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - } - break; - } - - sfe_ipv4_connection_match_compute_translations(original_cm); - sfe_ipv4_connection_match_compute_translations(reply_cm); - sfe_ipv4_insert_sfe_ipv4_connection(si, c); - - spin_unlock_bh(&si->lock); - - /* - * We have everything we need! - */ - DEBUG_INFO("new connection - mark: %08x, p: %d\n" - " s: %s:%pM(%pM):%pI4(%pI4):%u(%u)\n" - " d: %s:%pM(%pM):%pI4(%pI4):%u(%u)\n", - sic->mark, sic->protocol, - sic->src_dev->name, sic->src_mac, sic->src_mac_xlate, - &sic->src_ip.ip, &sic->src_ip_xlate.ip, ntohs(sic->src_port), ntohs(sic->src_port_xlate), - dest_dev->name, sic->dest_mac, sic->dest_mac_xlate, - &sic->dest_ip.ip, &sic->dest_ip_xlate.ip, ntohs(sic->dest_port), ntohs(sic->dest_port_xlate)); - - return 0; -} - -/* - * sfe_ipv4_destroy_rule() - * Destroy a forwarding rule. - */ -void sfe_ipv4_destroy_rule(struct sfe_connection_destroy *sid) -{ - struct sfe_ipv4 *si = &__si; - struct sfe_ipv4_connection *c; - - spin_lock_bh(&si->lock); - si->connection_destroy_requests++; - - /* - * Check to see if we have a flow that matches the rule we're trying - * to destroy. If there isn't then we can't destroy it. - */ - c = sfe_ipv4_find_sfe_ipv4_connection(si, sid->protocol, sid->src_ip.ip, sid->src_port, - sid->dest_ip.ip, sid->dest_port); - if (!c) { - si->connection_destroy_misses++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("connection does not exist - p: %d, s: %pI4:%u, d: %pI4:%u\n", - sid->protocol, &sid->src_ip, ntohs(sid->src_port), - &sid->dest_ip, ntohs(sid->dest_port)); - return; - } - - /* - * Remove our connection details from the hash tables. - */ - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - spin_unlock_bh(&si->lock); - - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_DESTROY); - - DEBUG_INFO("connection destroyed - p: %d, s: %pI4:%u, d: %pI4:%u\n", - sid->protocol, &sid->src_ip.ip, ntohs(sid->src_port), - &sid->dest_ip.ip, ntohs(sid->dest_port)); -} - -/* - * sfe_ipv4_register_sync_rule_callback() - * Register a callback for rule synchronization. - */ -void sfe_ipv4_register_sync_rule_callback(sfe_sync_rule_callback_t sync_rule_callback) -{ - struct sfe_ipv4 *si = &__si; - - spin_lock_bh(&si->lock); - rcu_assign_pointer(si->sync_rule_callback, sync_rule_callback); - spin_unlock_bh(&si->lock); -} - -/* - * sfe_ipv4_get_debug_dev() - */ -static ssize_t sfe_ipv4_get_debug_dev(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct sfe_ipv4 *si = &__si; - ssize_t count; - int num; - - spin_lock_bh(&si->lock); - num = si->debug_dev; - spin_unlock_bh(&si->lock); - - count = snprintf(buf, (ssize_t)PAGE_SIZE, "%d\n", num); - return count; -} - -/* - * sysfs attributes. - */ -static const struct device_attribute sfe_ipv4_debug_dev_attr = - __ATTR(debug_dev, S_IWUSR | S_IRUGO, sfe_ipv4_get_debug_dev, NULL); - -/* - * sfe_ipv4_destroy_all_rules_for_dev() - * Destroy all connections that match a particular device. - * - * If we pass dev as NULL then this destroys all connections. - */ -void sfe_ipv4_destroy_all_rules_for_dev(struct net_device *dev) -{ - struct sfe_ipv4 *si = &__si; - struct sfe_ipv4_connection *c; - -another_round: - spin_lock_bh(&si->lock); - - for (c = si->all_connections_head; c; c = c->all_connections_next) { - /* - * Does this connection relate to the device we are destroying? - */ - if (!dev - || (dev == c->original_dev) - || (dev == c->reply_dev)) { - break; - } - } - - if (c) { - sfe_ipv4_remove_sfe_ipv4_connection(si, c); - } - - spin_unlock_bh(&si->lock); - - if (c) { - sfe_ipv4_flush_sfe_ipv4_connection(si, c, SFE_SYNC_REASON_DESTROY); - goto another_round; - } -} - -/* - * sfe_ipv4_periodic_sync() - */ -static void sfe_ipv4_periodic_sync(unsigned long arg) -{ - struct sfe_ipv4 *si = (struct sfe_ipv4 *)arg; - u64 now_jiffies; - int quota; - sfe_sync_rule_callback_t sync_rule_callback; - - now_jiffies = get_jiffies_64(); - - rcu_read_lock(); - sync_rule_callback = rcu_dereference(si->sync_rule_callback); - if (!sync_rule_callback) { - rcu_read_unlock(); - goto done; - } - - spin_lock_bh(&si->lock); - sfe_ipv4_update_summary_stats(si); - - /* - * Get an estimate of the number of connections to parse in this sync. - */ - quota = (si->num_connections + 63) / 64; - - /* - * Walk the "active" list and sync the connection state. - */ - while (quota--) { - struct sfe_ipv4_connection_match *cm; - struct sfe_ipv4_connection_match *counter_cm; - struct sfe_ipv4_connection *c; - struct sfe_connection_sync sis; - - cm = si->active_head; - if (!cm) { - break; - } - - /* - * There's a possibility that our counter match is in the active list too. - * If it is then remove it. - */ - counter_cm = cm->counter_match; - if (counter_cm->active) { - counter_cm->active = false; - - /* - * We must have a connection preceding this counter match - * because that's the one that got us to this point, so we don't have - * to worry about removing the head of the list. - */ - counter_cm->active_prev->active_next = counter_cm->active_next; - - if (likely(counter_cm->active_next)) { - counter_cm->active_next->active_prev = counter_cm->active_prev; - } else { - si->active_tail = counter_cm->active_prev; - } - - counter_cm->active_next = NULL; - counter_cm->active_prev = NULL; - } - - /* - * Now remove the head of the active scan list. - */ - cm->active = false; - si->active_head = cm->active_next; - if (likely(cm->active_next)) { - cm->active_next->active_prev = NULL; - } else { - si->active_tail = NULL; - } - cm->active_next = NULL; - - /* - * Sync the connection state. - */ - c = cm->connection; - sfe_ipv4_gen_sync_sfe_ipv4_connection(si, c, &sis, SFE_SYNC_REASON_STATS, now_jiffies); - - /* - * We don't want to be holding the lock when we sync! - */ - spin_unlock_bh(&si->lock); - sync_rule_callback(&sis); - spin_lock_bh(&si->lock); - } - - spin_unlock_bh(&si->lock); - rcu_read_unlock(); - -done: - mod_timer(&si->timer, jiffies + ((HZ + 99) / 100)); -} - -#define CHAR_DEV_MSG_SIZE 768 - -/* - * sfe_ipv4_debug_dev_read_start() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_start(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - int bytes_read; - - si->debug_read_seq++; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv4_debug_dev_read_connections_start() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_connections_start(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv4_debug_dev_read_connections_connection() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_connections_connection(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - struct sfe_ipv4_connection *c; - struct sfe_ipv4_connection_match *original_cm; - struct sfe_ipv4_connection_match *reply_cm; - int bytes_read; - int protocol; - struct net_device *src_dev; - __be32 src_ip; - __be32 src_ip_xlate; - __be16 src_port; - __be16 src_port_xlate; - u64 src_rx_packets; - u64 src_rx_bytes; - struct net_device *dest_dev; - __be32 dest_ip; - __be32 dest_ip_xlate; - __be16 dest_port; - __be16 dest_port_xlate; - u64 dest_rx_packets; - u64 dest_rx_bytes; - u64 last_sync_jiffies; - u32 mark, src_priority, dest_priority, src_dscp, dest_dscp; - - spin_lock_bh(&si->lock); - - for (c = si->all_connections_head; c; c = c->all_connections_next) { - if (c->debug_read_seq < si->debug_read_seq) { - c->debug_read_seq = si->debug_read_seq; - break; - } - } - - /* - * If there were no connections then move to the next state. - */ - if (!c) { - spin_unlock_bh(&si->lock); - ws->state++; - return true; - } - - original_cm = c->original_match; - reply_cm = c->reply_match; - - protocol = c->protocol; - src_dev = c->original_dev; - src_ip = c->src_ip; - src_ip_xlate = c->src_ip_xlate; - src_port = c->src_port; - src_port_xlate = c->src_port_xlate; - src_priority = original_cm->priority; - src_dscp = original_cm->dscp >> SFE_IPV4_DSCP_SHIFT; - - sfe_ipv4_connection_match_update_summary_stats(original_cm); - sfe_ipv4_connection_match_update_summary_stats(reply_cm); - - src_rx_packets = original_cm->rx_packet_count64; - src_rx_bytes = original_cm->rx_byte_count64; - dest_dev = c->reply_dev; - dest_ip = c->dest_ip; - dest_ip_xlate = c->dest_ip_xlate; - dest_port = c->dest_port; - dest_port_xlate = c->dest_port_xlate; - dest_priority = reply_cm->priority; - dest_dscp = reply_cm->dscp >> SFE_IPV4_DSCP_SHIFT; - dest_rx_packets = reply_cm->rx_packet_count64; - dest_rx_bytes = reply_cm->rx_byte_count64; - last_sync_jiffies = get_jiffies_64() - c->last_sync_jiffies; - mark = c->mark; - - spin_unlock_bh(&si->lock); - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\t\n", - protocol, - src_dev->name, - &src_ip, &src_ip_xlate, - ntohs(src_port), ntohs(src_port_xlate), - src_priority, src_dscp, - src_rx_packets, src_rx_bytes, - dest_dev->name, - &dest_ip, &dest_ip_xlate, - ntohs(dest_port), ntohs(dest_port_xlate), - dest_priority, dest_dscp, - dest_rx_packets, dest_rx_bytes, - last_sync_jiffies, mark); - - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - return true; -} - -/* - * sfe_ipv4_debug_dev_read_connections_end() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_connections_end(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv4_debug_dev_read_exceptions_start() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_exceptions_start(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv4_debug_dev_read_exceptions_exception() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_exceptions_exception(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - u64 ct; - - spin_lock_bh(&si->lock); - ct = si->exception_events64[ws->iter_exception]; - spin_unlock_bh(&si->lock); - - if (ct) { - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, - "\t\t\n", - sfe_ipv4_exception_events_string[ws->iter_exception], - ct); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - } - - ws->iter_exception++; - if (ws->iter_exception >= SFE_IPV4_EXCEPTION_EVENT_LAST) { - ws->iter_exception = 0; - ws->state++; - } - - return true; -} - -/* - * sfe_ipv4_debug_dev_read_exceptions_end() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_exceptions_end(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv4_debug_dev_read_stats() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_stats(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - int bytes_read; - unsigned int num_connections; - u64 packets_forwarded; - u64 packets_not_forwarded; - u64 connection_create_requests; - u64 connection_create_collisions; - u64 connection_destroy_requests; - u64 connection_destroy_misses; - u64 connection_flushes; - u64 connection_match_hash_hits; - u64 connection_match_hash_reorders; - - spin_lock_bh(&si->lock); - sfe_ipv4_update_summary_stats(si); - - num_connections = si->num_connections; - packets_forwarded = si->packets_forwarded64; - packets_not_forwarded = si->packets_not_forwarded64; - connection_create_requests = si->connection_create_requests64; - connection_create_collisions = si->connection_create_collisions64; - connection_destroy_requests = si->connection_destroy_requests64; - connection_destroy_misses = si->connection_destroy_misses64; - connection_flushes = si->connection_flushes64; - connection_match_hash_hits = si->connection_match_hash_hits64; - connection_match_hash_reorders = si->connection_match_hash_reorders64; - spin_unlock_bh(&si->lock); - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n", - num_connections, - packets_forwarded, - packets_not_forwarded, - connection_create_requests, - connection_create_collisions, - connection_destroy_requests, - connection_destroy_misses, - connection_flushes, - connection_match_hash_hits, - connection_match_hash_reorders); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv4_debug_dev_read_end() - * Generate part of the XML output. - */ -static bool sfe_ipv4_debug_dev_read_end(struct sfe_ipv4 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv4_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * Array of write functions that write various XML elements that correspond to - * our XML output state machine. - */ -static sfe_ipv4_debug_xml_write_method_t sfe_ipv4_debug_xml_write_methods[SFE_IPV4_DEBUG_XML_STATE_DONE] = { - sfe_ipv4_debug_dev_read_start, - sfe_ipv4_debug_dev_read_connections_start, - sfe_ipv4_debug_dev_read_connections_connection, - sfe_ipv4_debug_dev_read_connections_end, - sfe_ipv4_debug_dev_read_exceptions_start, - sfe_ipv4_debug_dev_read_exceptions_exception, - sfe_ipv4_debug_dev_read_exceptions_end, - sfe_ipv4_debug_dev_read_stats, - sfe_ipv4_debug_dev_read_end, -}; - -/* - * sfe_ipv4_debug_dev_read() - * Send info to userspace upon read request from user - */ -static ssize_t sfe_ipv4_debug_dev_read(struct file *filp, char *buffer, size_t length, loff_t *offset) -{ - char msg[CHAR_DEV_MSG_SIZE]; - int total_read = 0; - struct sfe_ipv4_debug_xml_write_state *ws; - struct sfe_ipv4 *si = &__si; - - ws = (struct sfe_ipv4_debug_xml_write_state *)filp->private_data; - while ((ws->state != SFE_IPV4_DEBUG_XML_STATE_DONE) && (length > CHAR_DEV_MSG_SIZE)) { - if ((sfe_ipv4_debug_xml_write_methods[ws->state])(si, buffer, msg, &length, &total_read, ws)) { - continue; - } - } - - return total_read; -} - -/* - * sfe_ipv4_debug_dev_write() - * Write to char device resets some stats - */ -static ssize_t sfe_ipv4_debug_dev_write(struct file *filp, const char *buffer, size_t length, loff_t *offset) -{ - struct sfe_ipv4 *si = &__si; - - spin_lock_bh(&si->lock); - sfe_ipv4_update_summary_stats(si); - - si->packets_forwarded64 = 0; - si->packets_not_forwarded64 = 0; - si->connection_create_requests64 = 0; - si->connection_create_collisions64 = 0; - si->connection_destroy_requests64 = 0; - si->connection_destroy_misses64 = 0; - si->connection_flushes64 = 0; - si->connection_match_hash_hits64 = 0; - si->connection_match_hash_reorders64 = 0; - spin_unlock_bh(&si->lock); - - return length; -} - -/* - * sfe_ipv4_debug_dev_open() - */ -static int sfe_ipv4_debug_dev_open(struct inode *inode, struct file *file) -{ - struct sfe_ipv4_debug_xml_write_state *ws; - - ws = (struct sfe_ipv4_debug_xml_write_state *)file->private_data; - if (!ws) { - ws = kzalloc(sizeof(struct sfe_ipv4_debug_xml_write_state), GFP_KERNEL); - if (!ws) { - return -ENOMEM; - } - - ws->state = SFE_IPV4_DEBUG_XML_STATE_START; - file->private_data = ws; - } - - return 0; -} - -/* - * sfe_ipv4_debug_dev_release() - */ -static int sfe_ipv4_debug_dev_release(struct inode *inode, struct file *file) -{ - struct sfe_ipv4_debug_xml_write_state *ws; - - ws = (struct sfe_ipv4_debug_xml_write_state *)file->private_data; - if (ws) { - /* - * We've finished with our output so free the write state. - */ - kfree(ws); - } - - return 0; -} - -/* - * File operations used in the debug char device - */ -static struct file_operations sfe_ipv4_debug_dev_fops = { - .read = sfe_ipv4_debug_dev_read, - .write = sfe_ipv4_debug_dev_write, - .open = sfe_ipv4_debug_dev_open, - .release = sfe_ipv4_debug_dev_release -}; - -/* - * sfe_ipv4_init() - */ -static int __init sfe_ipv4_init(void) -{ - struct sfe_ipv4 *si = &__si; - int result = -1; - - DEBUG_INFO("SFE IPv4 init\n"); - - /* - * Create sys/sfe_ipv4 - */ - si->sys_sfe_ipv4 = kobject_create_and_add("sfe_ipv4", NULL); - if (!si->sys_sfe_ipv4) { - DEBUG_ERROR("failed to register sfe_ipv4\n"); - goto exit1; - } - - /* - * Create files, one for each parameter supported by this module. - */ - result = sysfs_create_file(si->sys_sfe_ipv4, &sfe_ipv4_debug_dev_attr.attr); - if (result) { - DEBUG_ERROR("failed to register debug dev file: %d\n", result); - goto exit2; - } - - /* - * Register our debug char device. - */ - result = register_chrdev(0, "sfe_ipv4", &sfe_ipv4_debug_dev_fops); - if (result < 0) { - DEBUG_ERROR("Failed to register chrdev: %d\n", result); - goto exit3; - } - - si->debug_dev = result; - - /* - * Create a timer to handle periodic statistics. - */ - setup_timer(&si->timer, sfe_ipv4_periodic_sync, (unsigned long)si); - mod_timer(&si->timer, jiffies + ((HZ + 99) / 100)); - - spin_lock_init(&si->lock); - - return 0; - -exit3: - sysfs_remove_file(si->sys_sfe_ipv4, &sfe_ipv4_debug_dev_attr.attr); - -exit2: - kobject_put(si->sys_sfe_ipv4); - -exit1: - return result; -} - -/* - * sfe_ipv4_exit() - */ -static void __exit sfe_ipv4_exit(void) -{ - struct sfe_ipv4 *si = &__si; - - DEBUG_INFO("SFE IPv4 exit\n"); - - /* - * Destroy all connections. - */ - sfe_ipv4_destroy_all_rules_for_dev(NULL); - - del_timer_sync(&si->timer); - - unregister_chrdev(si->debug_dev, "sfe_ipv4"); - - sysfs_remove_file(si->sys_sfe_ipv4, &sfe_ipv4_debug_dev_attr.attr); - - kobject_put(si->sys_sfe_ipv4); - -} - -module_init(sfe_ipv4_init) -module_exit(sfe_ipv4_exit) - -EXPORT_SYMBOL(sfe_ipv4_recv); -EXPORT_SYMBOL(sfe_ipv4_create_rule); -EXPORT_SYMBOL(sfe_ipv4_destroy_rule); -EXPORT_SYMBOL(sfe_ipv4_destroy_all_rules_for_dev); -EXPORT_SYMBOL(sfe_ipv4_register_sync_rule_callback); -EXPORT_SYMBOL(sfe_ipv4_mark_rule); -EXPORT_SYMBOL(sfe_ipv4_update_rule); - -MODULE_DESCRIPTION("Shortcut Forwarding Engine - IPv4 edition"); -MODULE_LICENSE("Dual BSD/GPL"); - diff --git a/package/lean/shortcut-fe/src/sfe_ipv6.c b/package/lean/shortcut-fe/src/sfe_ipv6.c deleted file mode 100644 index 16f460723..000000000 --- a/package/lean/shortcut-fe/src/sfe_ipv6.c +++ /dev/null @@ -1,3361 +0,0 @@ -/* - * sfe_ipv6.c - * Shortcut forwarding engine - IPv6 support. - * - * Copyright (c) 2015-2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include -#include -#include -#include -#include - -#include "sfe.h" -#include "sfe_cm.h" - -/* - * By default Linux IP header and transport layer header structures are - * unpacked, assuming that such headers should be 32-bit aligned. - * Unfortunately some wireless adaptors can't cope with this requirement and - * some CPUs can't handle misaligned accesses. For those platforms we - * define SFE_IPV6_UNALIGNED_IP_HEADER and mark the structures as packed. - * When we do this the compiler will generate slightly worse code than for the - * aligned case (on most platforms) but will be much quicker than fixing - * things up in an unaligned trap handler. - */ -#define SFE_IPV6_UNALIGNED_IP_HEADER 1 -#if SFE_IPV6_UNALIGNED_IP_HEADER -#define SFE_IPV6_UNALIGNED_STRUCT __attribute__((aligned(4))) -#else -#define SFE_IPV6_UNALIGNED_STRUCT -#endif - -#define CHAR_DEV_MSG_SIZE 768 - -/* - * An Ethernet header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV6_UNALIGNED_STRUCT) - */ -struct sfe_ipv6_eth_hdr { - __be16 h_dest[ETH_ALEN / 2]; - __be16 h_source[ETH_ALEN / 2]; - __be16 h_proto; -} SFE_IPV6_UNALIGNED_STRUCT; - -#define SFE_IPV6_DSCP_MASK 0xf03f -#define SFE_IPV6_DSCP_SHIFT 2 - -/* - * An IPv6 header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV6_UNALIGNED_STRUCT) - */ -struct sfe_ipv6_ip_hdr { -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u8 priority:4, - version:4; -#elif defined(__BIG_ENDIAN_BITFIELD) - __u8 version:4, - priority:4; -#else -#error "Please fix " -#endif - __u8 flow_lbl[3]; - __be16 payload_len; - __u8 nexthdr; - __u8 hop_limit; - struct sfe_ipv6_addr saddr; - struct sfe_ipv6_addr daddr; - - /* - * The extension header start here. - */ -} SFE_IPV6_UNALIGNED_STRUCT; - -#define SFE_IPV6_EXT_HDR_HOP 0 -#define SFE_IPV6_EXT_HDR_ROUTING 43 -#define SFE_IPV6_EXT_HDR_FRAG 44 -#define SFE_IPV6_EXT_HDR_ESP 50 -#define SFE_IPV6_EXT_HDR_AH 51 -#define SFE_IPV6_EXT_HDR_NONE 59 -#define SFE_IPV6_EXT_HDR_DST 60 -#define SFE_IPV6_EXT_HDR_MH 135 - -/* - * fragmentation header - */ - -struct sfe_ipv6_frag_hdr { - __u8 nexthdr; - __u8 reserved; - __be16 frag_off; - __be32 identification; -}; - -#define SFE_IPV6_FRAG_OFFSET 0xfff8 - -/* - * generic IPv6 extension header - */ -struct sfe_ipv6_ext_hdr { - __u8 next_hdr; - __u8 hdr_len; - __u8 padding[6]; -} SFE_IPV6_UNALIGNED_STRUCT; - -/* - * A UDP header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV6_UNALIGNED_STRUCT) - */ -struct sfe_ipv6_udp_hdr { - __be16 source; - __be16 dest; - __be16 len; - __sum16 check; -} SFE_IPV6_UNALIGNED_STRUCT; - -/* - * A TCP header, but with an optional "packed" attribute to - * help with performance on some platforms (see the definition of - * SFE_IPV6_UNALIGNED_STRUCT) - */ -struct sfe_ipv6_tcp_hdr { - __be16 source; - __be16 dest; - __be32 seq; - __be32 ack_seq; -#if defined(__LITTLE_ENDIAN_BITFIELD) - __u16 res1:4, - doff:4, - fin:1, - syn:1, - rst:1, - psh:1, - ack:1, - urg:1, - ece:1, - cwr:1; -#elif defined(__BIG_ENDIAN_BITFIELD) - __u16 doff:4, - res1:4, - cwr:1, - ece:1, - urg:1, - ack:1, - psh:1, - rst:1, - syn:1, - fin:1; -#else -#error "Adjust your defines" -#endif - __be16 window; - __sum16 check; - __be16 urg_ptr; -} SFE_IPV6_UNALIGNED_STRUCT; - -/* - * Specifies the lower bound on ACK numbers carried in the TCP header - */ -#define SFE_IPV6_TCP_MAX_ACK_WINDOW 65520 - -/* - * IPv6 TCP connection match additional data. - */ -struct sfe_ipv6_tcp_connection_match { - u8 win_scale; /* Window scale */ - u32 max_win; /* Maximum window size seen */ - u32 end; /* Sequence number of the next byte to send (seq + segment length) */ - u32 max_end; /* Sequence number of the last byte to ack */ -}; - -/* - * Bit flags for IPv6 connection matching entry. - */ -#define SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_SRC (1<<0) - /* Perform source translation */ -#define SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_DEST (1<<1) - /* Perform destination translation */ -#define SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK (1<<2) - /* Ignore TCP sequence numbers */ -#define SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR (1<<3) - /* Fast Ethernet header write */ -#define SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_L2_HDR (1<<4) - /* Fast Ethernet header write */ -#define SFE_IPV6_CONNECTION_MATCH_FLAG_PRIORITY_REMARK (1<<5) - /* remark priority of SKB */ -#define SFE_IPV6_CONNECTION_MATCH_FLAG_DSCP_REMARK (1<<6) - /* remark DSCP of packet */ - -/* - * IPv6 connection matching structure. - */ -struct sfe_ipv6_connection_match { - /* - * References to other objects. - */ - struct sfe_ipv6_connection_match *next; - struct sfe_ipv6_connection_match *prev; - struct sfe_ipv6_connection *connection; - struct sfe_ipv6_connection_match *counter_match; - /* Matches the flow in the opposite direction as the one in connection */ - struct sfe_ipv6_connection_match *active_next; - struct sfe_ipv6_connection_match *active_prev; - bool active; /* Flag to indicate if we're on the active list */ - - /* - * Characteristics that identify flows that match this rule. - */ - struct net_device *match_dev; /* Network device */ - u8 match_protocol; /* Protocol */ - struct sfe_ipv6_addr match_src_ip[1]; /* Source IP address */ - struct sfe_ipv6_addr match_dest_ip[1]; /* Destination IP address */ - __be16 match_src_port; /* Source port/connection ident */ - __be16 match_dest_port; /* Destination port/connection ident */ - - /* - * Control the operations of the match. - */ - u32 flags; /* Bit flags */ -#ifdef CONFIG_XFRM - u32 flow_accel; /* The flow accelerated or not */ -#endif - - /* - * Connection state that we track once we match. - */ - union { /* Protocol-specific state */ - struct sfe_ipv6_tcp_connection_match tcp; - } protocol_state; - /* - * Stats recorded in a sync period. These stats will be added to - * rx_packet_count64/rx_byte_count64 after a sync period. - */ - u32 rx_packet_count; - u32 rx_byte_count; - - /* - * Packet translation information. - */ - struct sfe_ipv6_addr xlate_src_ip[1]; /* Address after source translation */ - __be16 xlate_src_port; /* Port/connection ident after source translation */ - u16 xlate_src_csum_adjustment; - /* Transport layer checksum adjustment after source translation */ - struct sfe_ipv6_addr xlate_dest_ip[1]; /* Address after destination translation */ - __be16 xlate_dest_port; /* Port/connection ident after destination translation */ - u16 xlate_dest_csum_adjustment; - /* Transport layer checksum adjustment after destination translation */ - - /* - * QoS information - */ - u32 priority; - u32 dscp; - - /* - * Packet transmit information. - */ - struct net_device *xmit_dev; /* Network device on which to transmit */ - unsigned short int xmit_dev_mtu; - /* Interface MTU */ - u16 xmit_dest_mac[ETH_ALEN / 2]; - /* Destination MAC address to use when forwarding */ - u16 xmit_src_mac[ETH_ALEN / 2]; - /* Source MAC address to use when forwarding */ - - /* - * Summary stats. - */ - u64 rx_packet_count64; - u64 rx_byte_count64; -}; - -/* - * Per-connection data structure. - */ -struct sfe_ipv6_connection { - struct sfe_ipv6_connection *next; - /* Pointer to the next entry in a hash chain */ - struct sfe_ipv6_connection *prev; - /* Pointer to the previous entry in a hash chain */ - int protocol; /* IP protocol number */ - struct sfe_ipv6_addr src_ip[1]; /* Src IP addr pre-translation */ - struct sfe_ipv6_addr src_ip_xlate[1]; /* Src IP addr post-translation */ - struct sfe_ipv6_addr dest_ip[1]; /* Dest IP addr pre-translation */ - struct sfe_ipv6_addr dest_ip_xlate[1]; /* Dest IP addr post-translation */ - __be16 src_port; /* Src port pre-translation */ - __be16 src_port_xlate; /* Src port post-translation */ - __be16 dest_port; /* Dest port pre-translation */ - __be16 dest_port_xlate; /* Dest port post-translation */ - struct sfe_ipv6_connection_match *original_match; - /* Original direction matching structure */ - struct net_device *original_dev; - /* Original direction source device */ - struct sfe_ipv6_connection_match *reply_match; - /* Reply direction matching structure */ - struct net_device *reply_dev; /* Reply direction source device */ - u64 last_sync_jiffies; /* Jiffies count for the last sync */ - struct sfe_ipv6_connection *all_connections_next; - /* Pointer to the next entry in the list of all connections */ - struct sfe_ipv6_connection *all_connections_prev; - /* Pointer to the previous entry in the list of all connections */ - u32 mark; /* mark for outgoing packet */ - u32 debug_read_seq; /* sequence number for debug dump */ -}; - -/* - * IPv6 connections and hash table size information. - */ -#define SFE_IPV6_CONNECTION_HASH_SHIFT 12 -#define SFE_IPV6_CONNECTION_HASH_SIZE (1 << SFE_IPV6_CONNECTION_HASH_SHIFT) -#define SFE_IPV6_CONNECTION_HASH_MASK (SFE_IPV6_CONNECTION_HASH_SIZE - 1) - -enum sfe_ipv6_exception_events { - SFE_IPV6_EXCEPTION_EVENT_UDP_HEADER_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_UDP_NO_CONNECTION, - SFE_IPV6_EXCEPTION_EVENT_UDP_IP_OPTIONS_OR_INITIAL_FRAGMENT, - SFE_IPV6_EXCEPTION_EVENT_UDP_SMALL_TTL, - SFE_IPV6_EXCEPTION_EVENT_UDP_NEEDS_FRAGMENTATION, - SFE_IPV6_EXCEPTION_EVENT_TCP_HEADER_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_TCP_NO_CONNECTION_SLOW_FLAGS, - SFE_IPV6_EXCEPTION_EVENT_TCP_NO_CONNECTION_FAST_FLAGS, - SFE_IPV6_EXCEPTION_EVENT_TCP_IP_OPTIONS_OR_INITIAL_FRAGMENT, - SFE_IPV6_EXCEPTION_EVENT_TCP_SMALL_TTL, - SFE_IPV6_EXCEPTION_EVENT_TCP_NEEDS_FRAGMENTATION, - SFE_IPV6_EXCEPTION_EVENT_TCP_FLAGS, - SFE_IPV6_EXCEPTION_EVENT_TCP_SEQ_EXCEEDS_RIGHT_EDGE, - SFE_IPV6_EXCEPTION_EVENT_TCP_SMALL_DATA_OFFS, - SFE_IPV6_EXCEPTION_EVENT_TCP_BAD_SACK, - SFE_IPV6_EXCEPTION_EVENT_TCP_BIG_DATA_OFFS, - SFE_IPV6_EXCEPTION_EVENT_TCP_SEQ_BEFORE_LEFT_EDGE, - SFE_IPV6_EXCEPTION_EVENT_TCP_ACK_EXCEEDS_RIGHT_EDGE, - SFE_IPV6_EXCEPTION_EVENT_TCP_ACK_BEFORE_LEFT_EDGE, - SFE_IPV6_EXCEPTION_EVENT_ICMP_HEADER_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_ICMP_UNHANDLED_TYPE, - SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_HEADER_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_NON_V6, - SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_IP_OPTIONS_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_UDP_HEADER_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_TCP_HEADER_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_UNHANDLED_PROTOCOL, - SFE_IPV6_EXCEPTION_EVENT_ICMP_NO_CONNECTION, - SFE_IPV6_EXCEPTION_EVENT_ICMP_FLUSHED_CONNECTION, - SFE_IPV6_EXCEPTION_EVENT_HEADER_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_BAD_TOTAL_LENGTH, - SFE_IPV6_EXCEPTION_EVENT_NON_V6, - SFE_IPV6_EXCEPTION_EVENT_NON_INITIAL_FRAGMENT, - SFE_IPV6_EXCEPTION_EVENT_DATAGRAM_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_IP_OPTIONS_INCOMPLETE, - SFE_IPV6_EXCEPTION_EVENT_UNHANDLED_PROTOCOL, - SFE_IPV6_EXCEPTION_EVENT_FLOW_COOKIE_ADD_FAIL, - SFE_IPV6_EXCEPTION_EVENT_LAST -}; - -static char *sfe_ipv6_exception_events_string[SFE_IPV6_EXCEPTION_EVENT_LAST] = { - "UDP_HEADER_INCOMPLETE", - "UDP_NO_CONNECTION", - "UDP_IP_OPTIONS_OR_INITIAL_FRAGMENT", - "UDP_SMALL_TTL", - "UDP_NEEDS_FRAGMENTATION", - "TCP_HEADER_INCOMPLETE", - "TCP_NO_CONNECTION_SLOW_FLAGS", - "TCP_NO_CONNECTION_FAST_FLAGS", - "TCP_IP_OPTIONS_OR_INITIAL_FRAGMENT", - "TCP_SMALL_TTL", - "TCP_NEEDS_FRAGMENTATION", - "TCP_FLAGS", - "TCP_SEQ_EXCEEDS_RIGHT_EDGE", - "TCP_SMALL_DATA_OFFS", - "TCP_BAD_SACK", - "TCP_BIG_DATA_OFFS", - "TCP_SEQ_BEFORE_LEFT_EDGE", - "TCP_ACK_EXCEEDS_RIGHT_EDGE", - "TCP_ACK_BEFORE_LEFT_EDGE", - "ICMP_HEADER_INCOMPLETE", - "ICMP_UNHANDLED_TYPE", - "ICMP_IPV6_HEADER_INCOMPLETE", - "ICMP_IPV6_NON_V6", - "ICMP_IPV6_IP_OPTIONS_INCOMPLETE", - "ICMP_IPV6_UDP_HEADER_INCOMPLETE", - "ICMP_IPV6_TCP_HEADER_INCOMPLETE", - "ICMP_IPV6_UNHANDLED_PROTOCOL", - "ICMP_NO_CONNECTION", - "ICMP_FLUSHED_CONNECTION", - "HEADER_INCOMPLETE", - "BAD_TOTAL_LENGTH", - "NON_V6", - "NON_INITIAL_FRAGMENT", - "DATAGRAM_INCOMPLETE", - "IP_OPTIONS_INCOMPLETE", - "UNHANDLED_PROTOCOL", - "FLOW_COOKIE_ADD_FAIL" -}; - -/* - * Per-module structure. - */ -struct sfe_ipv6 { - spinlock_t lock; /* Lock for SMP correctness */ - struct sfe_ipv6_connection_match *active_head; - /* Head of the list of recently active connections */ - struct sfe_ipv6_connection_match *active_tail; - /* Tail of the list of recently active connections */ - struct sfe_ipv6_connection *all_connections_head; - /* Head of the list of all connections */ - struct sfe_ipv6_connection *all_connections_tail; - /* Tail of the list of all connections */ - unsigned int num_connections; /* Number of connections */ - struct timer_list timer; /* Timer used for periodic sync ops */ - sfe_sync_rule_callback_t __rcu sync_rule_callback; - /* Callback function registered by a connection manager for stats syncing */ - struct sfe_ipv6_connection *conn_hash[SFE_IPV6_CONNECTION_HASH_SIZE]; - /* Connection hash table */ - struct sfe_ipv6_connection_match *conn_match_hash[SFE_IPV6_CONNECTION_HASH_SIZE]; - /* Connection match hash table */ - - /* - * Stats recorded in a sync period. These stats will be added to - * connection_xxx64 after a sync period. - */ - u32 connection_create_requests; - /* Number of IPv6 connection create requests */ - u32 connection_create_collisions; - /* Number of IPv6 connection create requests that collided with existing hash table entries */ - u32 connection_destroy_requests; - /* Number of IPv6 connection destroy requests */ - u32 connection_destroy_misses; - /* Number of IPv6 connection destroy requests that missed our hash table */ - u32 connection_match_hash_hits; - /* Number of IPv6 connection match hash hits */ - u32 connection_match_hash_reorders; - /* Number of IPv6 connection match hash reorders */ - u32 connection_flushes; /* Number of IPv6 connection flushes */ - u32 packets_forwarded; /* Number of IPv6 packets forwarded */ - u32 packets_not_forwarded; /* Number of IPv6 packets not forwarded */ - u32 exception_events[SFE_IPV6_EXCEPTION_EVENT_LAST]; - - /* - * Summary statistics. - */ - u64 connection_create_requests64; - /* Number of IPv6 connection create requests */ - u64 connection_create_collisions64; - /* Number of IPv6 connection create requests that collided with existing hash table entries */ - u64 connection_destroy_requests64; - /* Number of IPv6 connection destroy requests */ - u64 connection_destroy_misses64; - /* Number of IPv6 connection destroy requests that missed our hash table */ - u64 connection_match_hash_hits64; - /* Number of IPv6 connection match hash hits */ - u64 connection_match_hash_reorders64; - /* Number of IPv6 connection match hash reorders */ - u64 connection_flushes64; /* Number of IPv6 connection flushes */ - u64 packets_forwarded64; /* Number of IPv6 packets forwarded */ - u64 packets_not_forwarded64; - /* Number of IPv6 packets not forwarded */ - u64 exception_events64[SFE_IPV6_EXCEPTION_EVENT_LAST]; - - /* - * Control state. - */ - struct kobject *sys_sfe_ipv6; /* sysfs linkage */ - int debug_dev; /* Major number of the debug char device */ - u32 debug_read_seq; /* sequence number for debug dump */ -}; - -/* - * Enumeration of the XML output. - */ -enum sfe_ipv6_debug_xml_states { - SFE_IPV6_DEBUG_XML_STATE_START, - SFE_IPV6_DEBUG_XML_STATE_CONNECTIONS_START, - SFE_IPV6_DEBUG_XML_STATE_CONNECTIONS_CONNECTION, - SFE_IPV6_DEBUG_XML_STATE_CONNECTIONS_END, - SFE_IPV6_DEBUG_XML_STATE_EXCEPTIONS_START, - SFE_IPV6_DEBUG_XML_STATE_EXCEPTIONS_EXCEPTION, - SFE_IPV6_DEBUG_XML_STATE_EXCEPTIONS_END, - SFE_IPV6_DEBUG_XML_STATE_STATS, - SFE_IPV6_DEBUG_XML_STATE_END, - SFE_IPV6_DEBUG_XML_STATE_DONE -}; - -/* - * XML write state. - */ -struct sfe_ipv6_debug_xml_write_state { - enum sfe_ipv6_debug_xml_states state; - /* XML output file state machine state */ - int iter_exception; /* Next exception iterator */ -}; - -typedef bool (*sfe_ipv6_debug_xml_write_method_t)(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws); - -static struct sfe_ipv6 __si6; - -/* - * sfe_ipv6_get_debug_dev() - */ -static ssize_t sfe_ipv6_get_debug_dev(struct device *dev, struct device_attribute *attr, char *buf); - -/* - * sysfs attributes. - */ -static const struct device_attribute sfe_ipv6_debug_dev_attr = - __ATTR(debug_dev, S_IWUSR | S_IRUGO, sfe_ipv6_get_debug_dev, NULL); - -/* - * sfe_ipv6_is_ext_hdr() - * check if we recognize ipv6 extension header - */ -static inline bool sfe_ipv6_is_ext_hdr(u8 hdr) -{ - return (hdr == SFE_IPV6_EXT_HDR_HOP) || - (hdr == SFE_IPV6_EXT_HDR_ROUTING) || - (hdr == SFE_IPV6_EXT_HDR_FRAG) || - (hdr == SFE_IPV6_EXT_HDR_AH) || - (hdr == SFE_IPV6_EXT_HDR_DST) || - (hdr == SFE_IPV6_EXT_HDR_MH); -} - -/* - * sfe_ipv6_change_dsfield() - * change dscp field in IPv6 packet - */ -static inline void sfe_ipv6_change_dsfield(struct sfe_ipv6_ip_hdr *iph, u8 dscp) -{ - __be16 *p = (__be16 *)iph; - - *p = ((*p & htons(SFE_IPV6_DSCP_MASK)) | htons((u16)dscp << 4)); -} - -/* - * sfe_ipv6_get_connection_match_hash() - * Generate the hash used in connection match lookups. - */ -static inline unsigned int sfe_ipv6_get_connection_match_hash(struct net_device *dev, u8 protocol, - struct sfe_ipv6_addr *src_ip, __be16 src_port, - struct sfe_ipv6_addr *dest_ip, __be16 dest_port) -{ - u32 idx, hash = 0; - size_t dev_addr = (size_t)dev; - - for (idx = 0; idx < 4; idx++) { - hash ^= src_ip->addr[idx] ^ dest_ip->addr[idx]; - } - hash = ((u32)dev_addr) ^ hash ^ protocol ^ ntohs(src_port ^ dest_port); - return ((hash >> SFE_IPV6_CONNECTION_HASH_SHIFT) ^ hash) & SFE_IPV6_CONNECTION_HASH_MASK; -} - -/* - * sfe_ipv6_find_connection_match() - * Get the IPv6 flow match info that corresponds to a particular 5-tuple. - * - * On entry we must be holding the lock that protects the hash table. - */ -static struct sfe_ipv6_connection_match * -sfe_ipv6_find_connection_match(struct sfe_ipv6 *si, struct net_device *dev, u8 protocol, - struct sfe_ipv6_addr *src_ip, __be16 src_port, - struct sfe_ipv6_addr *dest_ip, __be16 dest_port) -{ - struct sfe_ipv6_connection_match *cm; - struct sfe_ipv6_connection_match *head; - unsigned int conn_match_idx; - - conn_match_idx = sfe_ipv6_get_connection_match_hash(dev, protocol, src_ip, src_port, dest_ip, dest_port); - cm = si->conn_match_hash[conn_match_idx]; - - /* - * If we don't have anything in this chain then bail. - */ - if (unlikely(!cm)) { - return NULL; - } - - /* - * Hopefully the first entry is the one we want. - */ - if ((cm->match_src_port == src_port) - && (cm->match_dest_port == dest_port) - && (sfe_ipv6_addr_equal(cm->match_src_ip, src_ip)) - && (sfe_ipv6_addr_equal(cm->match_dest_ip, dest_ip)) - && (cm->match_protocol == protocol) - && (cm->match_dev == dev)) { - si->connection_match_hash_hits++; - return cm; - } - - /* - * Unfortunately we didn't find it at head, so we search it in chain and - * move matching entry to the top of the hash chain. We presume that this - * will be reused again very quickly. - */ - head = cm; - do { - cm = cm->next; - } while (cm && (cm->match_src_port != src_port - || cm->match_dest_port != dest_port - || !sfe_ipv6_addr_equal(cm->match_src_ip, src_ip) - || !sfe_ipv6_addr_equal(cm->match_dest_ip, dest_ip) - || cm->match_protocol != protocol - || cm->match_dev != dev)); - - /* - * Not found then we're done. - */ - if (unlikely(!cm)) { - return NULL; - } - - /* - * We found a match so move it. - */ - if (cm->next) { - cm->next->prev = cm->prev; - } - cm->prev->next = cm->next; - cm->prev = NULL; - cm->next = head; - head->prev = cm; - si->conn_match_hash[conn_match_idx] = cm; - si->connection_match_hash_reorders++; - - return cm; -} - -/* - * sfe_ipv6_connection_match_update_summary_stats() - * Update the summary stats for a connection match entry. - */ -static inline void sfe_ipv6_connection_match_update_summary_stats(struct sfe_ipv6_connection_match *cm) -{ - cm->rx_packet_count64 += cm->rx_packet_count; - cm->rx_packet_count = 0; - cm->rx_byte_count64 += cm->rx_byte_count; - cm->rx_byte_count = 0; -} - -/* - * sfe_ipv6_connection_match_compute_translations() - * Compute port and address translations for a connection match entry. - */ -static void sfe_ipv6_connection_match_compute_translations(struct sfe_ipv6_connection_match *cm) -{ - u32 diff[9]; - u32 *idx_32; - u16 *idx_16; - - /* - * Before we insert the entry look to see if this is tagged as doing address - * translations. If it is then work out the adjustment that we need to apply - * to the transport checksum. - */ - if (cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_SRC) { - u32 adj = 0; - u32 carry = 0; - - /* - * Precompute an incremental checksum adjustment so we can - * edit packets in this stream very quickly. The algorithm is from RFC1624. - */ - idx_32 = diff; - *(idx_32++) = cm->match_src_ip->addr[0]; - *(idx_32++) = cm->match_src_ip->addr[1]; - *(idx_32++) = cm->match_src_ip->addr[2]; - *(idx_32++) = cm->match_src_ip->addr[3]; - - idx_16 = (u16 *)idx_32; - *(idx_16++) = cm->match_src_port; - *(idx_16++) = ~cm->xlate_src_port; - idx_32 = (u32 *)idx_16; - - *(idx_32++) = ~cm->xlate_src_ip->addr[0]; - *(idx_32++) = ~cm->xlate_src_ip->addr[1]; - *(idx_32++) = ~cm->xlate_src_ip->addr[2]; - *(idx_32++) = ~cm->xlate_src_ip->addr[3]; - - /* - * When we compute this fold it down to a 16-bit offset - * as that way we can avoid having to do a double - * folding of the twos-complement result because the - * addition of 2 16-bit values cannot cause a double - * wrap-around! - */ - for (idx_32 = diff; idx_32 < diff + 9; idx_32++) { - u32 w = *idx_32; - adj += carry; - adj += w; - carry = (w > adj); - } - adj += carry; - adj = (adj & 0xffff) + (adj >> 16); - adj = (adj & 0xffff) + (adj >> 16); - cm->xlate_src_csum_adjustment = (u16)adj; - } - - if (cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_DEST) { - u32 adj = 0; - u32 carry = 0; - - /* - * Precompute an incremental checksum adjustment so we can - * edit packets in this stream very quickly. The algorithm is from RFC1624. - */ - idx_32 = diff; - *(idx_32++) = cm->match_dest_ip->addr[0]; - *(idx_32++) = cm->match_dest_ip->addr[1]; - *(idx_32++) = cm->match_dest_ip->addr[2]; - *(idx_32++) = cm->match_dest_ip->addr[3]; - - idx_16 = (u16 *)idx_32; - *(idx_16++) = cm->match_dest_port; - *(idx_16++) = ~cm->xlate_dest_port; - idx_32 = (u32 *)idx_16; - - *(idx_32++) = ~cm->xlate_dest_ip->addr[0]; - *(idx_32++) = ~cm->xlate_dest_ip->addr[1]; - *(idx_32++) = ~cm->xlate_dest_ip->addr[2]; - *(idx_32++) = ~cm->xlate_dest_ip->addr[3]; - - /* - * When we compute this fold it down to a 16-bit offset - * as that way we can avoid having to do a double - * folding of the twos-complement result because the - * addition of 2 16-bit values cannot cause a double - * wrap-around! - */ - for (idx_32 = diff; idx_32 < diff + 9; idx_32++) { - u32 w = *idx_32; - adj += carry; - adj += w; - carry = (w > adj); - } - adj += carry; - adj = (adj & 0xffff) + (adj >> 16); - adj = (adj & 0xffff) + (adj >> 16); - cm->xlate_dest_csum_adjustment = (u16)adj; - } -} - -/* - * sfe_ipv6_update_summary_stats() - * Update the summary stats. - */ -static void sfe_ipv6_update_summary_stats(struct sfe_ipv6 *si) -{ - int i; - - si->connection_create_requests64 += si->connection_create_requests; - si->connection_create_requests = 0; - si->connection_create_collisions64 += si->connection_create_collisions; - si->connection_create_collisions = 0; - si->connection_destroy_requests64 += si->connection_destroy_requests; - si->connection_destroy_requests = 0; - si->connection_destroy_misses64 += si->connection_destroy_misses; - si->connection_destroy_misses = 0; - si->connection_match_hash_hits64 += si->connection_match_hash_hits; - si->connection_match_hash_hits = 0; - si->connection_match_hash_reorders64 += si->connection_match_hash_reorders; - si->connection_match_hash_reorders = 0; - si->connection_flushes64 += si->connection_flushes; - si->connection_flushes = 0; - si->packets_forwarded64 += si->packets_forwarded; - si->packets_forwarded = 0; - si->packets_not_forwarded64 += si->packets_not_forwarded; - si->packets_not_forwarded = 0; - - for (i = 0; i < SFE_IPV6_EXCEPTION_EVENT_LAST; i++) { - si->exception_events64[i] += si->exception_events[i]; - si->exception_events[i] = 0; - } -} - -/* - * sfe_ipv6_insert_connection_match() - * Insert a connection match into the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static inline void sfe_ipv6_insert_connection_match(struct sfe_ipv6 *si, - struct sfe_ipv6_connection_match *cm) -{ - struct sfe_ipv6_connection_match **hash_head; - struct sfe_ipv6_connection_match *prev_head; - unsigned int conn_match_idx - = sfe_ipv6_get_connection_match_hash(cm->match_dev, cm->match_protocol, - cm->match_src_ip, cm->match_src_port, - cm->match_dest_ip, cm->match_dest_port); - - hash_head = &si->conn_match_hash[conn_match_idx]; - prev_head = *hash_head; - cm->prev = NULL; - if (prev_head) { - prev_head->prev = cm; - } - - cm->next = prev_head; - *hash_head = cm; -} - -/* - * sfe_ipv6_remove_connection_match() - * Remove a connection match object from the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static inline void sfe_ipv6_remove_connection_match(struct sfe_ipv6 *si, struct sfe_ipv6_connection_match *cm) -{ - /* - * Unlink the connection match entry from the hash. - */ - if (cm->prev) { - cm->prev->next = cm->next; - } else { - unsigned int conn_match_idx - = sfe_ipv6_get_connection_match_hash(cm->match_dev, cm->match_protocol, - cm->match_src_ip, cm->match_src_port, - cm->match_dest_ip, cm->match_dest_port); - si->conn_match_hash[conn_match_idx] = cm->next; - } - - if (cm->next) { - cm->next->prev = cm->prev; - } - - /* - * If the connection match entry is in the active list remove it. - */ - if (cm->active) { - if (likely(cm->active_prev)) { - cm->active_prev->active_next = cm->active_next; - } else { - si->active_head = cm->active_next; - } - - if (likely(cm->active_next)) { - cm->active_next->active_prev = cm->active_prev; - } else { - si->active_tail = cm->active_prev; - } - } -} - -/* - * sfe_ipv6_get_connection_hash() - * Generate the hash used in connection lookups. - */ -static inline unsigned int sfe_ipv6_get_connection_hash(u8 protocol, struct sfe_ipv6_addr *src_ip, __be16 src_port, - struct sfe_ipv6_addr *dest_ip, __be16 dest_port) -{ - u32 idx, hash = 0; - - for (idx = 0; idx < 4; idx++) { - hash ^= src_ip->addr[idx] ^ dest_ip->addr[idx]; - } - hash = hash ^ protocol ^ ntohs(src_port ^ dest_port); - return ((hash >> SFE_IPV6_CONNECTION_HASH_SHIFT) ^ hash) & SFE_IPV6_CONNECTION_HASH_MASK; -} - -/* - * sfe_ipv6_find_connection() - * Get the IPv6 connection info that corresponds to a particular 5-tuple. - * - * On entry we must be holding the lock that protects the hash table. - */ -static inline struct sfe_ipv6_connection *sfe_ipv6_find_connection(struct sfe_ipv6 *si, u32 protocol, - struct sfe_ipv6_addr *src_ip, __be16 src_port, - struct sfe_ipv6_addr *dest_ip, __be16 dest_port) -{ - struct sfe_ipv6_connection *c; - unsigned int conn_idx = sfe_ipv6_get_connection_hash(protocol, src_ip, src_port, dest_ip, dest_port); - c = si->conn_hash[conn_idx]; - - /* - * If we don't have anything in this chain then bale. - */ - if (unlikely(!c)) { - return NULL; - } - - /* - * Hopefully the first entry is the one we want. - */ - if ((c->src_port == src_port) - && (c->dest_port == dest_port) - && (sfe_ipv6_addr_equal(c->src_ip, src_ip)) - && (sfe_ipv6_addr_equal(c->dest_ip, dest_ip)) - && (c->protocol == protocol)) { - return c; - } - - /* - * Unfortunately we didn't find it at head, so we search it in chain. - */ - do { - c = c->next; - } while (c && (c->src_port != src_port - || c->dest_port != dest_port - || !sfe_ipv6_addr_equal(c->src_ip, src_ip) - || !sfe_ipv6_addr_equal(c->dest_ip, dest_ip) - || c->protocol != protocol)); - - /* - * Will need connection entry for next create/destroy metadata, - * So no need to re-order entry for these requests - */ - return c; -} - -/* - * sfe_ipv6_mark_rule() - * Updates the mark for a current offloaded connection - * - * Will take hash lock upon entry - */ -void sfe_ipv6_mark_rule(struct sfe_connection_mark *mark) -{ - struct sfe_ipv6 *si = &__si6; - struct sfe_ipv6_connection *c; - - spin_lock_bh(&si->lock); - c = sfe_ipv6_find_connection(si, mark->protocol, - mark->src_ip.ip6, mark->src_port, - mark->dest_ip.ip6, mark->dest_port); - if (c) { - WARN_ON((0 != c->mark) && (0 == mark->mark)); - c->mark = mark->mark; - } - spin_unlock_bh(&si->lock); - - if (c) { - DEBUG_TRACE("Matching connection found for mark, " - "setting from %08x to %08x\n", - c->mark, mark->mark); - } -} - -/* - * sfe_ipv6_insert_connection() - * Insert a connection into the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static void sfe_ipv6_insert_connection(struct sfe_ipv6 *si, struct sfe_ipv6_connection *c) -{ - struct sfe_ipv6_connection **hash_head; - struct sfe_ipv6_connection *prev_head; - unsigned int conn_idx; - - /* - * Insert entry into the connection hash. - */ - conn_idx = sfe_ipv6_get_connection_hash(c->protocol, c->src_ip, c->src_port, - c->dest_ip, c->dest_port); - hash_head = &si->conn_hash[conn_idx]; - prev_head = *hash_head; - c->prev = NULL; - if (prev_head) { - prev_head->prev = c; - } - - c->next = prev_head; - *hash_head = c; - - /* - * Insert entry into the "all connections" list. - */ - if (si->all_connections_tail) { - c->all_connections_prev = si->all_connections_tail; - si->all_connections_tail->all_connections_next = c; - } else { - c->all_connections_prev = NULL; - si->all_connections_head = c; - } - - si->all_connections_tail = c; - c->all_connections_next = NULL; - si->num_connections++; - - /* - * Insert the connection match objects too. - */ - sfe_ipv6_insert_connection_match(si, c->original_match); - sfe_ipv6_insert_connection_match(si, c->reply_match); -} - -/* - * sfe_ipv6_remove_connection() - * Remove a sfe_ipv6_connection object from the hash. - * - * On entry we must be holding the lock that protects the hash table. - */ -static void sfe_ipv6_remove_connection(struct sfe_ipv6 *si, struct sfe_ipv6_connection *c) -{ - /* - * Remove the connection match objects. - */ - sfe_ipv6_remove_connection_match(si, c->reply_match); - sfe_ipv6_remove_connection_match(si, c->original_match); - - /* - * Unlink the connection. - */ - if (c->prev) { - c->prev->next = c->next; - } else { - unsigned int conn_idx = sfe_ipv6_get_connection_hash(c->protocol, c->src_ip, c->src_port, - c->dest_ip, c->dest_port); - si->conn_hash[conn_idx] = c->next; - } - - if (c->next) { - c->next->prev = c->prev; - } - - /* - * Unlink connection from all_connections list - */ - if (c->all_connections_prev) { - c->all_connections_prev->all_connections_next = c->all_connections_next; - } else { - si->all_connections_head = c->all_connections_next; - } - - if (c->all_connections_next) { - c->all_connections_next->all_connections_prev = c->all_connections_prev; - } else { - si->all_connections_tail = c->all_connections_prev; - } - - si->num_connections--; -} - -/* - * sfe_ipv6_gen_sync_connection() - * Sync a connection. - * - * On entry to this function we expect that the lock for the connection is either - * already held or isn't required. - */ -static void sfe_ipv6_gen_sync_connection(struct sfe_ipv6 *si, struct sfe_ipv6_connection *c, - struct sfe_connection_sync *sis, sfe_sync_reason_t reason, - u64 now_jiffies) -{ - struct sfe_ipv6_connection_match *original_cm; - struct sfe_ipv6_connection_match *reply_cm; - - /* - * Fill in the update message. - */ - sis->is_v6 = 1; - sis->protocol = c->protocol; - sis->src_ip.ip6[0] = c->src_ip[0]; - sis->src_ip_xlate.ip6[0] = c->src_ip_xlate[0]; - sis->dest_ip.ip6[0] = c->dest_ip[0]; - sis->dest_ip_xlate.ip6[0] = c->dest_ip_xlate[0]; - sis->src_port = c->src_port; - sis->src_port_xlate = c->src_port_xlate; - sis->dest_port = c->dest_port; - sis->dest_port_xlate = c->dest_port_xlate; - - original_cm = c->original_match; - reply_cm = c->reply_match; - sis->src_td_max_window = original_cm->protocol_state.tcp.max_win; - sis->src_td_end = original_cm->protocol_state.tcp.end; - sis->src_td_max_end = original_cm->protocol_state.tcp.max_end; - sis->dest_td_max_window = reply_cm->protocol_state.tcp.max_win; - sis->dest_td_end = reply_cm->protocol_state.tcp.end; - sis->dest_td_max_end = reply_cm->protocol_state.tcp.max_end; - - sis->src_new_packet_count = original_cm->rx_packet_count; - sis->src_new_byte_count = original_cm->rx_byte_count; - sis->dest_new_packet_count = reply_cm->rx_packet_count; - sis->dest_new_byte_count = reply_cm->rx_byte_count; - - sfe_ipv6_connection_match_update_summary_stats(original_cm); - sfe_ipv6_connection_match_update_summary_stats(reply_cm); - - sis->src_dev = original_cm->match_dev; - sis->src_packet_count = original_cm->rx_packet_count64; - sis->src_byte_count = original_cm->rx_byte_count64; - - sis->dest_dev = reply_cm->match_dev; - sis->dest_packet_count = reply_cm->rx_packet_count64; - sis->dest_byte_count = reply_cm->rx_byte_count64; - - sis->reason = reason; - - /* - * Get the time increment since our last sync. - */ - sis->delta_jiffies = now_jiffies - c->last_sync_jiffies; - c->last_sync_jiffies = now_jiffies; -} - -/* - * sfe_ipv6_flush_connection() - * Flush a connection and free all associated resources. - * - * We need to be called with bottom halves disabled locally as we need to acquire - * the connection hash lock and release it again. In general we're actually called - * from within a BH and so we're fine, but we're also called when connections are - * torn down. - */ -static void sfe_ipv6_flush_connection(struct sfe_ipv6 *si, - struct sfe_ipv6_connection *c, - sfe_sync_reason_t reason) -{ - struct sfe_connection_sync sis; - u64 now_jiffies; - sfe_sync_rule_callback_t sync_rule_callback; - - rcu_read_lock(); - spin_lock_bh(&si->lock); - si->connection_flushes++; - sync_rule_callback = rcu_dereference(si->sync_rule_callback); - spin_unlock_bh(&si->lock); - - if (sync_rule_callback) { - /* - * Generate a sync message and then sync. - */ - now_jiffies = get_jiffies_64(); - sfe_ipv6_gen_sync_connection(si, c, &sis, reason, now_jiffies); - sync_rule_callback(&sis); - } - - rcu_read_unlock(); - - /* - * Release our hold of the source and dest devices and free the memory - * for our connection objects. - */ - dev_put(c->original_dev); - dev_put(c->reply_dev); - kfree(c->original_match); - kfree(c->reply_match); - kfree(c); -} - -/* - * sfe_ipv6_recv_udp() - * Handle UDP packet receives and forwarding. - */ -static int sfe_ipv6_recv_udp(struct sfe_ipv6 *si, struct sk_buff *skb, struct net_device *dev, - unsigned int len, struct sfe_ipv6_ip_hdr *iph, unsigned int ihl, bool flush_on_find) -{ - struct sfe_ipv6_udp_hdr *udph; - struct sfe_ipv6_addr *src_ip; - struct sfe_ipv6_addr *dest_ip; - __be16 src_port; - __be16 dest_port; - struct sfe_ipv6_connection_match *cm; - struct net_device *xmit_dev; - - /* - * Is our packet too short to contain a valid UDP header? - */ - if (!pskb_may_pull(skb, (sizeof(struct sfe_ipv6_udp_hdr) + ihl))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_UDP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("packet too short for UDP header\n"); - return 0; - } - - /* - * Read the IP address and port information. Read the IP header data first - * because we've almost certainly got that in the cache. We may not yet have - * the UDP header cached though so allow more time for any prefetching. - */ - src_ip = &iph->saddr; - dest_ip = &iph->daddr; - - udph = (struct sfe_ipv6_udp_hdr *)(skb->data + ihl); - src_port = udph->source; - dest_port = udph->dest; - - spin_lock_bh(&si->lock); - - /* - * Look for a connection match. - */ - cm = sfe_ipv6_find_connection_match(si, dev, IPPROTO_UDP, src_ip, src_port, dest_ip, dest_port); - if (unlikely(!cm)) { - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_UDP_NO_CONNECTION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found\n"); - return 0; - } - - /* - * If our packet has beern marked as "flush on find" we can't actually - * forward it in the fast path, but now that we've found an associated - * connection we can flush that out before we process the packet. - */ - if (unlikely(flush_on_find)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_UDP_IP_OPTIONS_OR_INITIAL_FRAGMENT]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("flush on find\n"); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - -#ifdef CONFIG_XFRM - /* - * We can't accelerate the flow on this direction, just let it go - * through the slow path. - */ - if (unlikely(!cm->flow_accel)) { - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - return 0; - } -#endif - - /* - * Does our hop_limit allow forwarding? - */ - if (unlikely(iph->hop_limit < 2)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_UDP_SMALL_TTL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("hop_limit too low\n"); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * If our packet is larger than the MTU of the transmit interface then - * we can't forward it easily. - */ - if (unlikely(len > cm->xmit_dev_mtu)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_UDP_NEEDS_FRAGMENTATION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("larger than mtu\n"); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * From this point on we're good to modify the packet. - */ - - /* - * Update DSCP - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_DSCP_REMARK)) { - sfe_ipv6_change_dsfield(iph, cm->dscp); - } - - /* - * Decrement our hop_limit. - */ - iph->hop_limit -= 1; - - /* - * Do we have to perform translations of the source address/port? - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_SRC)) { - u16 udp_csum; - - iph->saddr = cm->xlate_src_ip[0]; - udph->source = cm->xlate_src_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - udp_csum = udph->check; - if (likely(udp_csum)) { - u32 sum = udp_csum + cm->xlate_src_csum_adjustment; - sum = (sum & 0xffff) + (sum >> 16); - udph->check = (u16)sum; - } - } - - /* - * Do we have to perform translations of the destination address/port? - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_DEST)) { - u16 udp_csum; - - iph->daddr = cm->xlate_dest_ip[0]; - udph->dest = cm->xlate_dest_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - udp_csum = udph->check; - if (likely(udp_csum)) { - u32 sum = udp_csum + cm->xlate_dest_csum_adjustment; - sum = (sum & 0xffff) + (sum >> 16); - udph->check = (u16)sum; - } - } - - /* - * Update traffic stats. - */ - cm->rx_packet_count++; - cm->rx_byte_count += len; - - /* - * If we're not already on the active list then insert ourselves at the tail - * of the current list. - */ - if (unlikely(!cm->active)) { - cm->active = true; - cm->active_prev = si->active_tail; - if (likely(si->active_tail)) { - si->active_tail->active_next = cm; - } else { - si->active_head = cm; - } - si->active_tail = cm; - } - - xmit_dev = cm->xmit_dev; - skb->dev = xmit_dev; - - /* - * Check to see if we need to write a header. - */ - if (likely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_L2_HDR)) { - if (unlikely(!(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR))) { - dev_hard_header(skb, xmit_dev, ETH_P_IPV6, - cm->xmit_dest_mac, cm->xmit_src_mac, len); - } else { - /* - * For the simple case we write this really fast. - */ - struct sfe_ipv6_eth_hdr *eth = (struct sfe_ipv6_eth_hdr *)__skb_push(skb, ETH_HLEN); - eth->h_proto = htons(ETH_P_IPV6); - eth->h_dest[0] = cm->xmit_dest_mac[0]; - eth->h_dest[1] = cm->xmit_dest_mac[1]; - eth->h_dest[2] = cm->xmit_dest_mac[2]; - eth->h_source[0] = cm->xmit_src_mac[0]; - eth->h_source[1] = cm->xmit_src_mac[1]; - eth->h_source[2] = cm->xmit_src_mac[2]; - } - } - - /* - * Update priority of skb. - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_PRIORITY_REMARK)) { - skb->priority = cm->priority; - } - - /* - * Mark outgoing packet. - */ - skb->mark = cm->connection->mark; - if (skb->mark) { - DEBUG_TRACE("SKB MARK is NON ZERO %x\n", skb->mark); - } - - si->packets_forwarded++; - spin_unlock_bh(&si->lock); - - /* - * We're going to check for GSO flags when we transmit the packet so - * start fetching the necessary cache line now. - */ - prefetch(skb_shinfo(skb)); - - /* - * Mark that this packet has been fast forwarded. - */ - skb->fast_forwarded = 1; - - /* - * Send the packet on its way. - */ - dev_queue_xmit(skb); - - return 1; -} - -/* - * sfe_ipv6_process_tcp_option_sack() - * Parse TCP SACK option and update ack according - */ -static bool sfe_ipv6_process_tcp_option_sack(const struct sfe_ipv6_tcp_hdr *th, const u32 data_offs, - u32 *ack) -{ - u32 length = sizeof(struct sfe_ipv6_tcp_hdr); - u8 *ptr = (u8 *)th + length; - - /* - * Ignore processing if TCP packet has only TIMESTAMP option. - */ - if (likely(data_offs == length + TCPOLEN_TIMESTAMP + 1 + 1) - && likely(ptr[0] == TCPOPT_NOP) - && likely(ptr[1] == TCPOPT_NOP) - && likely(ptr[2] == TCPOPT_TIMESTAMP) - && likely(ptr[3] == TCPOLEN_TIMESTAMP)) { - return true; - } - - /* - * TCP options. Parse SACK option. - */ - while (length < data_offs) { - u8 size; - u8 kind; - - ptr = (u8 *)th + length; - kind = *ptr; - - /* - * NOP, for padding - * Not in the switch because to fast escape and to not calculate size - */ - if (kind == TCPOPT_NOP) { - length++; - continue; - } - - if (kind == TCPOPT_SACK) { - u32 sack = 0; - u8 re = 1 + 1; - - size = *(ptr + 1); - if ((size < (1 + 1 + TCPOLEN_SACK_PERBLOCK)) - || ((size - (1 + 1)) % (TCPOLEN_SACK_PERBLOCK)) - || (size > (data_offs - length))) { - return false; - } - - re += 4; - while (re < size) { - u32 sack_re; - u8 *sptr = ptr + re; - sack_re = (sptr[0] << 24) | (sptr[1] << 16) | (sptr[2] << 8) | sptr[3]; - if (sack_re > sack) { - sack = sack_re; - } - re += TCPOLEN_SACK_PERBLOCK; - } - if (sack > *ack) { - *ack = sack; - } - length += size; - continue; - } - if (kind == TCPOPT_EOL) { - return true; - } - size = *(ptr + 1); - if (size < 2) { - return false; - } - length += size; - } - - return true; -} - -/* - * sfe_ipv6_recv_tcp() - * Handle TCP packet receives and forwarding. - */ -static int sfe_ipv6_recv_tcp(struct sfe_ipv6 *si, struct sk_buff *skb, struct net_device *dev, - unsigned int len, struct sfe_ipv6_ip_hdr *iph, unsigned int ihl, bool flush_on_find) -{ - struct sfe_ipv6_tcp_hdr *tcph; - struct sfe_ipv6_addr *src_ip; - struct sfe_ipv6_addr *dest_ip; - __be16 src_port; - __be16 dest_port; - struct sfe_ipv6_connection_match *cm; - struct sfe_ipv6_connection_match *counter_cm; - u32 flags; - struct net_device *xmit_dev; - - /* - * Is our packet too short to contain a valid UDP header? - */ - if (!pskb_may_pull(skb, (sizeof(struct sfe_ipv6_tcp_hdr) + ihl))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("packet too short for TCP header\n"); - return 0; - } - - /* - * Read the IP address and port information. Read the IP header data first - * because we've almost certainly got that in the cache. We may not yet have - * the TCP header cached though so allow more time for any prefetching. - */ - src_ip = &iph->saddr; - dest_ip = &iph->daddr; - - tcph = (struct sfe_ipv6_tcp_hdr *)(skb->data + ihl); - src_port = tcph->source; - dest_port = tcph->dest; - flags = tcp_flag_word(tcph); - - spin_lock_bh(&si->lock); - - /* - * Look for a connection match. - */ - cm = sfe_ipv6_find_connection_match(si, dev, IPPROTO_TCP, src_ip, src_port, dest_ip, dest_port); - if (unlikely(!cm)) { - /* - * We didn't get a connection but as TCP is connection-oriented that - * may be because this is a non-fast connection (not running established). - * For diagnostic purposes we differentiate this here. - */ - if (likely((flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)) == TCP_FLAG_ACK)) { - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_NO_CONNECTION_FAST_FLAGS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found - fast flags\n"); - return 0; - } - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_NO_CONNECTION_SLOW_FLAGS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found - slow flags: 0x%x\n", - flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)); - return 0; - } - - /* - * If our packet has beern marked as "flush on find" we can't actually - * forward it in the fast path, but now that we've found an associated - * connection we can flush that out before we process the packet. - */ - if (unlikely(flush_on_find)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_IP_OPTIONS_OR_INITIAL_FRAGMENT]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("flush on find\n"); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - -#ifdef CONFIG_XFRM - /* - * We can't accelerate the flow on this direction, just let it go - * through the slow path. - */ - if (unlikely(!cm->flow_accel)) { - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - return 0; - } -#endif - - /* - * Does our hop_limit allow forwarding? - */ - if (unlikely(iph->hop_limit < 2)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_SMALL_TTL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("hop_limit too low\n"); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * If our packet is larger than the MTU of the transmit interface then - * we can't forward it easily. - */ - if (unlikely((len > cm->xmit_dev_mtu) && !skb_is_gso(skb))) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_NEEDS_FRAGMENTATION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("larger than mtu\n"); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Look at our TCP flags. Anything missing an ACK or that has RST, SYN or FIN - * set is not a fast path packet. - */ - if (unlikely((flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)) != TCP_FLAG_ACK)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_FLAGS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP flags: 0x%x are not fast\n", - flags & (TCP_FLAG_SYN | TCP_FLAG_RST | TCP_FLAG_FIN | TCP_FLAG_ACK)); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - counter_cm = cm->counter_match; - - /* - * Are we doing sequence number checking? - */ - if (likely(!(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK))) { - u32 seq; - u32 ack; - u32 sack; - u32 data_offs; - u32 end; - u32 left_edge; - u32 scaled_win; - u32 max_end; - - /* - * Is our sequence fully past the right hand edge of the window? - */ - seq = ntohl(tcph->seq); - if (unlikely((s32)(seq - (cm->protocol_state.tcp.max_end + 1)) > 0)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_SEQ_EXCEEDS_RIGHT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("seq: %u exceeds right edge: %u\n", - seq, cm->protocol_state.tcp.max_end + 1); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Check that our TCP data offset isn't too short. - */ - data_offs = tcph->doff << 2; - if (unlikely(data_offs < sizeof(struct sfe_ipv6_tcp_hdr))) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_SMALL_DATA_OFFS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP data offset: %u, too small\n", data_offs); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Update ACK according to any SACK option. - */ - ack = ntohl(tcph->ack_seq); - sack = ack; - if (unlikely(!sfe_ipv6_process_tcp_option_sack(tcph, data_offs, &sack))) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_BAD_SACK]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP option SACK size is wrong\n"); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Check that our TCP data offset isn't past the end of the packet. - */ - data_offs += sizeof(struct sfe_ipv6_ip_hdr); - if (unlikely(len < data_offs)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_BIG_DATA_OFFS]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("TCP data offset: %u, past end of packet: %u\n", - data_offs, len); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - end = seq + len - data_offs; - - /* - * Is our sequence fully before the left hand edge of the window? - */ - if (unlikely((s32)(end - (cm->protocol_state.tcp.end - - counter_cm->protocol_state.tcp.max_win - 1)) < 0)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_SEQ_BEFORE_LEFT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("seq: %u before left edge: %u\n", - end, cm->protocol_state.tcp.end - counter_cm->protocol_state.tcp.max_win - 1); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Are we acking data that is to the right of what has been sent? - */ - if (unlikely((s32)(sack - (counter_cm->protocol_state.tcp.end + 1)) > 0)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_ACK_EXCEEDS_RIGHT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("ack: %u exceeds right edge: %u\n", - sack, counter_cm->protocol_state.tcp.end + 1); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Is our ack too far before the left hand edge of the window? - */ - left_edge = counter_cm->protocol_state.tcp.end - - cm->protocol_state.tcp.max_win - - SFE_IPV6_TCP_MAX_ACK_WINDOW - - 1; - if (unlikely((s32)(sack - left_edge) < 0)) { - struct sfe_ipv6_connection *c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_TCP_ACK_BEFORE_LEFT_EDGE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("ack: %u before left edge: %u\n", sack, left_edge); - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; - } - - /* - * Have we just seen the largest window size yet for this connection? If yes - * then we need to record the new value. - */ - scaled_win = ntohs(tcph->window) << cm->protocol_state.tcp.win_scale; - scaled_win += (sack - ack); - if (unlikely(cm->protocol_state.tcp.max_win < scaled_win)) { - cm->protocol_state.tcp.max_win = scaled_win; - } - - /* - * If our sequence and/or ack numbers have advanced then record the new state. - */ - if (likely((s32)(end - cm->protocol_state.tcp.end) >= 0)) { - cm->protocol_state.tcp.end = end; - } - - max_end = sack + scaled_win; - if (likely((s32)(max_end - counter_cm->protocol_state.tcp.max_end) >= 0)) { - counter_cm->protocol_state.tcp.max_end = max_end; - } - } - - /* - * From this point on we're good to modify the packet. - */ - - /* - * Update DSCP - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_DSCP_REMARK)) { - sfe_ipv6_change_dsfield(iph, cm->dscp); - } - - /* - * Decrement our hop_limit. - */ - iph->hop_limit -= 1; - - /* - * Do we have to perform translations of the source address/port? - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_SRC)) { - u16 tcp_csum; - u32 sum; - - iph->saddr = cm->xlate_src_ip[0]; - tcph->source = cm->xlate_src_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - tcp_csum = tcph->check; - sum = tcp_csum + cm->xlate_src_csum_adjustment; - sum = (sum & 0xffff) + (sum >> 16); - tcph->check = (u16)sum; - } - - /* - * Do we have to perform translations of the destination address/port? - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_DEST)) { - u16 tcp_csum; - u32 sum; - - iph->daddr = cm->xlate_dest_ip[0]; - tcph->dest = cm->xlate_dest_port; - - /* - * Do we have a non-zero UDP checksum? If we do then we need - * to update it. - */ - tcp_csum = tcph->check; - sum = tcp_csum + cm->xlate_dest_csum_adjustment; - sum = (sum & 0xffff) + (sum >> 16); - tcph->check = (u16)sum; - } - - /* - * Update traffic stats. - */ - cm->rx_packet_count++; - cm->rx_byte_count += len; - - /* - * If we're not already on the active list then insert ourselves at the tail - * of the current list. - */ - if (unlikely(!cm->active)) { - cm->active = true; - cm->active_prev = si->active_tail; - if (likely(si->active_tail)) { - si->active_tail->active_next = cm; - } else { - si->active_head = cm; - } - si->active_tail = cm; - } - - xmit_dev = cm->xmit_dev; - skb->dev = xmit_dev; - - /* - * Check to see if we need to write a header. - */ - if (likely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_L2_HDR)) { - if (unlikely(!(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR))) { - dev_hard_header(skb, xmit_dev, ETH_P_IPV6, - cm->xmit_dest_mac, cm->xmit_src_mac, len); - } else { - /* - * For the simple case we write this really fast. - */ - struct sfe_ipv6_eth_hdr *eth = (struct sfe_ipv6_eth_hdr *)__skb_push(skb, ETH_HLEN); - eth->h_proto = htons(ETH_P_IPV6); - eth->h_dest[0] = cm->xmit_dest_mac[0]; - eth->h_dest[1] = cm->xmit_dest_mac[1]; - eth->h_dest[2] = cm->xmit_dest_mac[2]; - eth->h_source[0] = cm->xmit_src_mac[0]; - eth->h_source[1] = cm->xmit_src_mac[1]; - eth->h_source[2] = cm->xmit_src_mac[2]; - } - } - - /* - * Update priority of skb. - */ - if (unlikely(cm->flags & SFE_IPV6_CONNECTION_MATCH_FLAG_PRIORITY_REMARK)) { - skb->priority = cm->priority; - } - - /* - * Mark outgoing packet - */ - skb->mark = cm->connection->mark; - if (skb->mark) { - DEBUG_TRACE("SKB MARK is NON ZERO %x\n", skb->mark); - } - - si->packets_forwarded++; - spin_unlock_bh(&si->lock); - - /* - * We're going to check for GSO flags when we transmit the packet so - * start fetching the necessary cache line now. - */ - prefetch(skb_shinfo(skb)); - - /* - * Mark that this packet has been fast forwarded. - */ - skb->fast_forwarded = 1; - - /* - * Send the packet on its way. - */ - dev_queue_xmit(skb); - - return 1; -} - -/* - * sfe_ipv6_recv_icmp() - * Handle ICMP packet receives. - * - * ICMP packets aren't handled as a "fast path" and always have us process them - * through the default Linux stack. What we do need to do is look for any errors - * about connections we are handling in the fast path. If we find any such - * connections then we want to flush their state so that the ICMP error path - * within Linux has all of the correct state should it need it. - */ -static int sfe_ipv6_recv_icmp(struct sfe_ipv6 *si, struct sk_buff *skb, struct net_device *dev, - unsigned int len, struct sfe_ipv6_ip_hdr *iph, unsigned int ihl) -{ - struct icmp6hdr *icmph; - struct sfe_ipv6_ip_hdr *icmp_iph; - struct sfe_ipv6_udp_hdr *icmp_udph; - struct sfe_ipv6_tcp_hdr *icmp_tcph; - struct sfe_ipv6_addr *src_ip; - struct sfe_ipv6_addr *dest_ip; - __be16 src_port; - __be16 dest_port; - struct sfe_ipv6_connection_match *cm; - struct sfe_ipv6_connection *c; - u8 next_hdr; - - /* - * Is our packet too short to contain a valid ICMP header? - */ - len -= ihl; - if (!pskb_may_pull(skb, ihl + sizeof(struct icmp6hdr))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_ICMP_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("packet too short for ICMP header\n"); - return 0; - } - - /* - * We only handle "destination unreachable" and "time exceeded" messages. - */ - icmph = (struct icmp6hdr *)(skb->data + ihl); - if ((icmph->icmp6_type != ICMPV6_DEST_UNREACH) - && (icmph->icmp6_type != ICMPV6_TIME_EXCEED)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_ICMP_UNHANDLED_TYPE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("unhandled ICMP type: 0x%x\n", icmph->icmp6_type); - return 0; - } - - /* - * Do we have the full embedded IP header? - * We should have 8 bytes of next L4 header - that's enough to identify - * the connection. - */ - len -= sizeof(struct icmp6hdr); - ihl += sizeof(struct icmp6hdr); - if (!pskb_may_pull(skb, ihl + sizeof(struct sfe_ipv6_ip_hdr) + sizeof(struct sfe_ipv6_ext_hdr))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("Embedded IP header not complete\n"); - return 0; - } - - /* - * Is our embedded IP version wrong? - */ - icmp_iph = (struct sfe_ipv6_ip_hdr *)(icmph + 1); - if (unlikely(icmp_iph->version != 6)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_NON_V6]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("IP version: %u\n", icmp_iph->version); - return 0; - } - - len -= sizeof(struct sfe_ipv6_ip_hdr); - ihl += sizeof(struct sfe_ipv6_ip_hdr); - next_hdr = icmp_iph->nexthdr; - while (unlikely(sfe_ipv6_is_ext_hdr(next_hdr))) { - struct sfe_ipv6_ext_hdr *ext_hdr; - unsigned int ext_hdr_len; - - ext_hdr = (struct sfe_ipv6_ext_hdr *)(skb->data + ihl); - if (next_hdr == SFE_IPV6_EXT_HDR_FRAG) { - struct sfe_ipv6_frag_hdr *frag_hdr = (struct sfe_ipv6_frag_hdr *)ext_hdr; - unsigned int frag_off = ntohs(frag_hdr->frag_off); - - if (frag_off & SFE_IPV6_FRAG_OFFSET) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_NON_INITIAL_FRAGMENT]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("non-initial fragment\n"); - return 0; - } - } - - ext_hdr_len = ext_hdr->hdr_len; - ext_hdr_len <<= 3; - ext_hdr_len += sizeof(struct sfe_ipv6_ext_hdr); - len -= ext_hdr_len; - ihl += ext_hdr_len; - /* - * We should have 8 bytes of next header - that's enough to identify - * the connection. - */ - if (!pskb_may_pull(skb, ihl + sizeof(struct sfe_ipv6_ext_hdr))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("extension header %d not completed\n", next_hdr); - return 0; - } - - next_hdr = ext_hdr->next_hdr; - } - - /* - * Handle the embedded transport layer header. - */ - switch (next_hdr) { - case IPPROTO_UDP: - icmp_udph = (struct sfe_ipv6_udp_hdr *)(skb->data + ihl); - src_port = icmp_udph->source; - dest_port = icmp_udph->dest; - break; - - case IPPROTO_TCP: - icmp_tcph = (struct sfe_ipv6_tcp_hdr *)(skb->data + ihl); - src_port = icmp_tcph->source; - dest_port = icmp_tcph->dest; - break; - - default: - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_ICMP_IPV6_UNHANDLED_PROTOCOL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("Unhandled embedded IP protocol: %u\n", next_hdr); - return 0; - } - - src_ip = &icmp_iph->saddr; - dest_ip = &icmp_iph->daddr; - - spin_lock_bh(&si->lock); - - /* - * Look for a connection match. Note that we reverse the source and destination - * here because our embedded message contains a packet that was sent in the - * opposite direction to the one in which we just received it. It will have - * been sent on the interface from which we received it though so that's still - * ok to use. - */ - cm = sfe_ipv6_find_connection_match(si, dev, icmp_iph->nexthdr, dest_ip, dest_port, src_ip, src_port); - if (unlikely(!cm)) { - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_ICMP_NO_CONNECTION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("no connection found\n"); - return 0; - } - - /* - * We found a connection so now remove it from the connection list and flush - * its state. - */ - c = cm->connection; - sfe_ipv6_remove_connection(si, c); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_ICMP_FLUSHED_CONNECTION]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_FLUSH); - return 0; -} - -/* - * sfe_ipv6_recv() - * Handle packet receives and forwaring. - * - * Returns 1 if the packet is forwarded or 0 if it isn't. - */ -int sfe_ipv6_recv(struct net_device *dev, struct sk_buff *skb) -{ - struct sfe_ipv6 *si = &__si6; - unsigned int len; - unsigned int payload_len; - unsigned int ihl = sizeof(struct sfe_ipv6_ip_hdr); - bool flush_on_find = false; - struct sfe_ipv6_ip_hdr *iph; - u8 next_hdr; - - /* - * Check that we have space for an IP header and an uplayer header here. - */ - len = skb->len; - if (!pskb_may_pull(skb, ihl + sizeof(struct sfe_ipv6_ext_hdr))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("len: %u is too short\n", len); - return 0; - } - - /* - * Is our IP version wrong? - */ - iph = (struct sfe_ipv6_ip_hdr *)skb->data; - if (unlikely(iph->version != 6)) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_NON_V6]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("IP version: %u\n", iph->version); - return 0; - } - - /* - * Does our datagram fit inside the skb? - */ - payload_len = ntohs(iph->payload_len); - if (unlikely(payload_len > (len - ihl))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_DATAGRAM_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("payload_len: %u, exceeds len: %u\n", payload_len, (len - sizeof(struct sfe_ipv6_ip_hdr))); - return 0; - } - - next_hdr = iph->nexthdr; - while (unlikely(sfe_ipv6_is_ext_hdr(next_hdr))) { - struct sfe_ipv6_ext_hdr *ext_hdr; - unsigned int ext_hdr_len; - - ext_hdr = (struct sfe_ipv6_ext_hdr *)(skb->data + ihl); - if (next_hdr == SFE_IPV6_EXT_HDR_FRAG) { - struct sfe_ipv6_frag_hdr *frag_hdr = (struct sfe_ipv6_frag_hdr *)ext_hdr; - unsigned int frag_off = ntohs(frag_hdr->frag_off); - - if (frag_off & SFE_IPV6_FRAG_OFFSET) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_NON_INITIAL_FRAGMENT]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("non-initial fragment\n"); - return 0; - } - } - - ext_hdr_len = ext_hdr->hdr_len; - ext_hdr_len <<= 3; - ext_hdr_len += sizeof(struct sfe_ipv6_ext_hdr); - ihl += ext_hdr_len; - if (!pskb_may_pull(skb, ihl + sizeof(struct sfe_ipv6_ext_hdr))) { - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_HEADER_INCOMPLETE]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("extension header %d not completed\n", next_hdr); - return 0; - } - - flush_on_find = true; - next_hdr = ext_hdr->next_hdr; - } - - if (IPPROTO_UDP == next_hdr) { - return sfe_ipv6_recv_udp(si, skb, dev, len, iph, ihl, flush_on_find); - } - - if (IPPROTO_TCP == next_hdr) { - return sfe_ipv6_recv_tcp(si, skb, dev, len, iph, ihl, flush_on_find); - } - - if (IPPROTO_ICMPV6 == next_hdr) { - return sfe_ipv6_recv_icmp(si, skb, dev, len, iph, ihl); - } - - spin_lock_bh(&si->lock); - si->exception_events[SFE_IPV6_EXCEPTION_EVENT_UNHANDLED_PROTOCOL]++; - si->packets_not_forwarded++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("not UDP, TCP or ICMP: %u\n", next_hdr); - return 0; -} - -/* - * sfe_ipv6_update_tcp_state() - * update TCP window variables. - */ -static void -sfe_ipv6_update_tcp_state(struct sfe_ipv6_connection *c, - struct sfe_connection_create *sic) -{ - struct sfe_ipv6_connection_match *orig_cm; - struct sfe_ipv6_connection_match *repl_cm; - struct sfe_ipv6_tcp_connection_match *orig_tcp; - struct sfe_ipv6_tcp_connection_match *repl_tcp; - - orig_cm = c->original_match; - repl_cm = c->reply_match; - orig_tcp = &orig_cm->protocol_state.tcp; - repl_tcp = &repl_cm->protocol_state.tcp; - - /* update orig */ - if (orig_tcp->max_win < sic->src_td_max_window) { - orig_tcp->max_win = sic->src_td_max_window; - } - if ((s32)(orig_tcp->end - sic->src_td_end) < 0) { - orig_tcp->end = sic->src_td_end; - } - if ((s32)(orig_tcp->max_end - sic->src_td_max_end) < 0) { - orig_tcp->max_end = sic->src_td_max_end; - } - - /* update reply */ - if (repl_tcp->max_win < sic->dest_td_max_window) { - repl_tcp->max_win = sic->dest_td_max_window; - } - if ((s32)(repl_tcp->end - sic->dest_td_end) < 0) { - repl_tcp->end = sic->dest_td_end; - } - if ((s32)(repl_tcp->max_end - sic->dest_td_max_end) < 0) { - repl_tcp->max_end = sic->dest_td_max_end; - } - - /* update match flags */ - orig_cm->flags &= ~SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - repl_cm->flags &= ~SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - if (sic->flags & SFE_CREATE_FLAG_NO_SEQ_CHECK) { - orig_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - repl_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - } -} - -/* - * sfe_ipv6_update_protocol_state() - * update protocol specified state machine. - */ -static void -sfe_ipv6_update_protocol_state(struct sfe_ipv6_connection *c, - struct sfe_connection_create *sic) -{ - switch (sic->protocol) { - case IPPROTO_TCP: - sfe_ipv6_update_tcp_state(c, sic); - break; - } -} - -/* - * sfe_ipv6_update_rule() - * update forwarding rule after rule is created. - */ -void sfe_ipv6_update_rule(struct sfe_connection_create *sic) -{ - struct sfe_ipv6_connection *c; - struct sfe_ipv6 *si = &__si6; - - spin_lock_bh(&si->lock); - - c = sfe_ipv6_find_connection(si, - sic->protocol, - sic->src_ip.ip6, - sic->src_port, - sic->dest_ip.ip6, - sic->dest_port); - if (c != NULL) { - sfe_ipv6_update_protocol_state(c, sic); - } - - spin_unlock_bh(&si->lock); -} - -/* - * sfe_ipv6_create_rule() - * Create a forwarding rule. - */ -int sfe_ipv6_create_rule(struct sfe_connection_create *sic) -{ - struct sfe_ipv6 *si = &__si6; - struct sfe_ipv6_connection *c; - struct sfe_ipv6_connection_match *original_cm; - struct sfe_ipv6_connection_match *reply_cm; - struct net_device *dest_dev; - struct net_device *src_dev; - - dest_dev = sic->dest_dev; - src_dev = sic->src_dev; - - if (unlikely((dest_dev->reg_state != NETREG_REGISTERED) || - (src_dev->reg_state != NETREG_REGISTERED))) { - return -EINVAL; - } - - spin_lock_bh(&si->lock); - si->connection_create_requests++; - - /* - * Check to see if there is already a flow that matches the rule we're - * trying to create. If there is then we can't create a new one. - */ - c = sfe_ipv6_find_connection(si, - sic->protocol, - sic->src_ip.ip6, - sic->src_port, - sic->dest_ip.ip6, - sic->dest_port); - if (c != NULL) { - si->connection_create_collisions++; - - /* - * If we already have the flow then it's likely that this - * request to create the connection rule contains more - * up-to-date information. Check and update accordingly. - */ - sfe_ipv6_update_protocol_state(c, sic); - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("connection already exists - mark: %08x, p: %d\n" - " s: %s:%pM:%pI6:%u, d: %s:%pM:%pI6:%u\n", - sic->mark, sic->protocol, - sic->src_dev->name, sic->src_mac, sic->src_ip.ip6, ntohs(sic->src_port), - sic->dest_dev->name, sic->dest_mac, sic->dest_ip.ip6, ntohs(sic->dest_port)); - return -EADDRINUSE; - } - - /* - * Allocate the various connection tracking objects. - */ - c = (struct sfe_ipv6_connection *)kmalloc(sizeof(struct sfe_ipv6_connection), GFP_ATOMIC); - if (unlikely(!c)) { - spin_unlock_bh(&si->lock); - return -ENOMEM; - } - - original_cm = (struct sfe_ipv6_connection_match *)kmalloc(sizeof(struct sfe_ipv6_connection_match), GFP_ATOMIC); - if (unlikely(!original_cm)) { - spin_unlock_bh(&si->lock); - kfree(c); - return -ENOMEM; - } - - reply_cm = (struct sfe_ipv6_connection_match *)kmalloc(sizeof(struct sfe_ipv6_connection_match), GFP_ATOMIC); - if (unlikely(!reply_cm)) { - spin_unlock_bh(&si->lock); - kfree(original_cm); - kfree(c); - return -ENOMEM; - } - - /* - * Fill in the "original" direction connection matching object. - * Note that the transmit MAC address is "dest_mac_xlate" because - * we always know both ends of a connection by their translated - * addresses and not their public addresses. - */ - original_cm->match_dev = src_dev; - original_cm->match_protocol = sic->protocol; - original_cm->match_src_ip[0] = sic->src_ip.ip6[0]; - original_cm->match_src_port = sic->src_port; - original_cm->match_dest_ip[0] = sic->dest_ip.ip6[0]; - original_cm->match_dest_port = sic->dest_port; - original_cm->xlate_src_ip[0] = sic->src_ip_xlate.ip6[0]; - original_cm->xlate_src_port = sic->src_port_xlate; - original_cm->xlate_dest_ip[0] = sic->dest_ip_xlate.ip6[0]; - original_cm->xlate_dest_port = sic->dest_port_xlate; - original_cm->rx_packet_count = 0; - original_cm->rx_packet_count64 = 0; - original_cm->rx_byte_count = 0; - original_cm->rx_byte_count64 = 0; - original_cm->xmit_dev = dest_dev; - original_cm->xmit_dev_mtu = sic->dest_mtu; - memcpy(original_cm->xmit_src_mac, dest_dev->dev_addr, ETH_ALEN); - memcpy(original_cm->xmit_dest_mac, sic->dest_mac_xlate, ETH_ALEN); - original_cm->connection = c; - original_cm->counter_match = reply_cm; - original_cm->flags = 0; - if (sic->flags & SFE_CREATE_FLAG_REMARK_PRIORITY) { - original_cm->priority = sic->src_priority; - original_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_PRIORITY_REMARK; - } - if (sic->flags & SFE_CREATE_FLAG_REMARK_DSCP) { - original_cm->dscp = sic->src_dscp << SFE_IPV6_DSCP_SHIFT; - original_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_DSCP_REMARK; - } -#ifdef CONFIG_XFRM - original_cm->flow_accel = sic->original_accel; -#endif - original_cm->active_next = NULL; - original_cm->active_prev = NULL; - original_cm->active = false; - - /* - * For PPP links we don't write an L2 header. For everything else we do. - */ - if (!(dest_dev->flags & IFF_POINTOPOINT)) { - original_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_L2_HDR; - - /* - * If our dev writes Ethernet headers then we can write a really fast - * version. - */ - if (dest_dev->header_ops) { - if (dest_dev->header_ops->create == eth_header) { - original_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR; - } - } - } - - /* - * Fill in the "reply" direction connection matching object. - */ - reply_cm->match_dev = dest_dev; - reply_cm->match_protocol = sic->protocol; - reply_cm->match_src_ip[0] = sic->dest_ip_xlate.ip6[0]; - reply_cm->match_src_port = sic->dest_port_xlate; - reply_cm->match_dest_ip[0] = sic->src_ip_xlate.ip6[0]; - reply_cm->match_dest_port = sic->src_port_xlate; - reply_cm->xlate_src_ip[0] = sic->dest_ip.ip6[0]; - reply_cm->xlate_src_port = sic->dest_port; - reply_cm->xlate_dest_ip[0] = sic->src_ip.ip6[0]; - reply_cm->xlate_dest_port = sic->src_port; - reply_cm->rx_packet_count = 0; - reply_cm->rx_packet_count64 = 0; - reply_cm->rx_byte_count = 0; - reply_cm->rx_byte_count64 = 0; - reply_cm->xmit_dev = src_dev; - reply_cm->xmit_dev_mtu = sic->src_mtu; - memcpy(reply_cm->xmit_src_mac, src_dev->dev_addr, ETH_ALEN); - memcpy(reply_cm->xmit_dest_mac, sic->src_mac, ETH_ALEN); - reply_cm->connection = c; - reply_cm->counter_match = original_cm; - reply_cm->flags = 0; - if (sic->flags & SFE_CREATE_FLAG_REMARK_PRIORITY) { - reply_cm->priority = sic->dest_priority; - reply_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_PRIORITY_REMARK; - } - if (sic->flags & SFE_CREATE_FLAG_REMARK_DSCP) { - reply_cm->dscp = sic->dest_dscp << SFE_IPV6_DSCP_SHIFT; - reply_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_DSCP_REMARK; - } -#ifdef CONFIG_XFRM - reply_cm->flow_accel = sic->reply_accel; -#endif - reply_cm->active_next = NULL; - reply_cm->active_prev = NULL; - reply_cm->active = false; - - /* - * For PPP links we don't write an L2 header. For everything else we do. - */ - if (!(src_dev->flags & IFF_POINTOPOINT)) { - reply_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_L2_HDR; - - /* - * If our dev writes Ethernet headers then we can write a really fast - * version. - */ - if (src_dev->header_ops) { - if (src_dev->header_ops->create == eth_header) { - reply_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_WRITE_FAST_ETH_HDR; - } - } - } - - - if (!sfe_ipv6_addr_equal(sic->dest_ip.ip6, sic->dest_ip_xlate.ip6) || sic->dest_port != sic->dest_port_xlate) { - original_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_DEST; - reply_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_SRC; - } - - if (!sfe_ipv6_addr_equal(sic->src_ip.ip6, sic->src_ip_xlate.ip6) || sic->src_port != sic->src_port_xlate) { - original_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_SRC; - reply_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_XLATE_DEST; - } - - c->protocol = sic->protocol; - c->src_ip[0] = sic->src_ip.ip6[0]; - c->src_ip_xlate[0] = sic->src_ip_xlate.ip6[0]; - c->src_port = sic->src_port; - c->src_port_xlate = sic->src_port_xlate; - c->original_dev = src_dev; - c->original_match = original_cm; - c->dest_ip[0] = sic->dest_ip.ip6[0]; - c->dest_ip_xlate[0] = sic->dest_ip_xlate.ip6[0]; - c->dest_port = sic->dest_port; - c->dest_port_xlate = sic->dest_port_xlate; - c->reply_dev = dest_dev; - c->reply_match = reply_cm; - c->mark = sic->mark; - c->debug_read_seq = 0; - c->last_sync_jiffies = get_jiffies_64(); - - /* - * Take hold of our source and dest devices for the duration of the connection. - */ - dev_hold(c->original_dev); - dev_hold(c->reply_dev); - - /* - * Initialize the protocol-specific information that we track. - */ - switch (sic->protocol) { - case IPPROTO_TCP: - original_cm->protocol_state.tcp.win_scale = sic->src_td_window_scale; - original_cm->protocol_state.tcp.max_win = sic->src_td_max_window ? sic->src_td_max_window : 1; - original_cm->protocol_state.tcp.end = sic->src_td_end; - original_cm->protocol_state.tcp.max_end = sic->src_td_max_end; - reply_cm->protocol_state.tcp.win_scale = sic->dest_td_window_scale; - reply_cm->protocol_state.tcp.max_win = sic->dest_td_max_window ? sic->dest_td_max_window : 1; - reply_cm->protocol_state.tcp.end = sic->dest_td_end; - reply_cm->protocol_state.tcp.max_end = sic->dest_td_max_end; - if (sic->flags & SFE_CREATE_FLAG_NO_SEQ_CHECK) { - original_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - reply_cm->flags |= SFE_IPV6_CONNECTION_MATCH_FLAG_NO_SEQ_CHECK; - } - break; - } - - sfe_ipv6_connection_match_compute_translations(original_cm); - sfe_ipv6_connection_match_compute_translations(reply_cm); - sfe_ipv6_insert_connection(si, c); - - spin_unlock_bh(&si->lock); - - /* - * We have everything we need! - */ - DEBUG_INFO("new connection - mark: %08x, p: %d\n" - " s: %s:%pM(%pM):%pI6(%pI6):%u(%u)\n" - " d: %s:%pM(%pM):%pI6(%pI6):%u(%u)\n", - sic->mark, sic->protocol, - sic->src_dev->name, sic->src_mac, sic->src_mac_xlate, - sic->src_ip.ip6, sic->src_ip_xlate.ip6, ntohs(sic->src_port), ntohs(sic->src_port_xlate), - dest_dev->name, sic->dest_mac, sic->dest_mac_xlate, - sic->dest_ip.ip6, sic->dest_ip_xlate.ip6, ntohs(sic->dest_port), ntohs(sic->dest_port_xlate)); - - return 0; -} - -/* - * sfe_ipv6_destroy_rule() - * Destroy a forwarding rule. - */ -void sfe_ipv6_destroy_rule(struct sfe_connection_destroy *sid) -{ - struct sfe_ipv6 *si = &__si6; - struct sfe_ipv6_connection *c; - - spin_lock_bh(&si->lock); - si->connection_destroy_requests++; - - /* - * Check to see if we have a flow that matches the rule we're trying - * to destroy. If there isn't then we can't destroy it. - */ - c = sfe_ipv6_find_connection(si, sid->protocol, sid->src_ip.ip6, sid->src_port, - sid->dest_ip.ip6, sid->dest_port); - if (!c) { - si->connection_destroy_misses++; - spin_unlock_bh(&si->lock); - - DEBUG_TRACE("connection does not exist - p: %d, s: %pI6:%u, d: %pI6:%u\n", - sid->protocol, sid->src_ip.ip6, ntohs(sid->src_port), - sid->dest_ip.ip6, ntohs(sid->dest_port)); - return; - } - - /* - * Remove our connection details from the hash tables. - */ - sfe_ipv6_remove_connection(si, c); - spin_unlock_bh(&si->lock); - - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_DESTROY); - - DEBUG_INFO("connection destroyed - p: %d, s: %pI6:%u, d: %pI6:%u\n", - sid->protocol, sid->src_ip.ip6, ntohs(sid->src_port), - sid->dest_ip.ip6, ntohs(sid->dest_port)); -} - -/* - * sfe_ipv6_register_sync_rule_callback() - * Register a callback for rule synchronization. - */ -void sfe_ipv6_register_sync_rule_callback(sfe_sync_rule_callback_t sync_rule_callback) -{ - struct sfe_ipv6 *si = &__si6; - - spin_lock_bh(&si->lock); - rcu_assign_pointer(si->sync_rule_callback, sync_rule_callback); - spin_unlock_bh(&si->lock); -} - -/* - * sfe_ipv6_get_debug_dev() - */ -static ssize_t sfe_ipv6_get_debug_dev(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - struct sfe_ipv6 *si = &__si6; - ssize_t count; - int num; - - spin_lock_bh(&si->lock); - num = si->debug_dev; - spin_unlock_bh(&si->lock); - - count = snprintf(buf, (ssize_t)PAGE_SIZE, "%d\n", num); - return count; -} - -/* - * sfe_ipv6_destroy_all_rules_for_dev() - * Destroy all connections that match a particular device. - * - * If we pass dev as NULL then this destroys all connections. - */ -void sfe_ipv6_destroy_all_rules_for_dev(struct net_device *dev) -{ - struct sfe_ipv6 *si = &__si6; - struct sfe_ipv6_connection *c; - -another_round: - spin_lock_bh(&si->lock); - - for (c = si->all_connections_head; c; c = c->all_connections_next) { - /* - * Does this connection relate to the device we are destroying? - */ - if (!dev - || (dev == c->original_dev) - || (dev == c->reply_dev)) { - break; - } - } - - if (c) { - sfe_ipv6_remove_connection(si, c); - } - - spin_unlock_bh(&si->lock); - - if (c) { - sfe_ipv6_flush_connection(si, c, SFE_SYNC_REASON_DESTROY); - goto another_round; - } -} - -/* - * sfe_ipv6_periodic_sync() - */ -static void sfe_ipv6_periodic_sync(unsigned long arg) -{ - struct sfe_ipv6 *si = (struct sfe_ipv6 *)arg; - u64 now_jiffies; - int quota; - sfe_sync_rule_callback_t sync_rule_callback; - - now_jiffies = get_jiffies_64(); - - rcu_read_lock(); - sync_rule_callback = rcu_dereference(si->sync_rule_callback); - if (!sync_rule_callback) { - rcu_read_unlock(); - goto done; - } - - spin_lock_bh(&si->lock); - sfe_ipv6_update_summary_stats(si); - - /* - * Get an estimate of the number of connections to parse in this sync. - */ - quota = (si->num_connections + 63) / 64; - - /* - * Walk the "active" list and sync the connection state. - */ - while (quota--) { - struct sfe_ipv6_connection_match *cm; - struct sfe_ipv6_connection_match *counter_cm; - struct sfe_ipv6_connection *c; - struct sfe_connection_sync sis; - - cm = si->active_head; - if (!cm) { - break; - } - - /* - * There's a possibility that our counter match is in the active list too. - * If it is then remove it. - */ - counter_cm = cm->counter_match; - if (counter_cm->active) { - counter_cm->active = false; - - /* - * We must have a connection preceding this counter match - * because that's the one that got us to this point, so we don't have - * to worry about removing the head of the list. - */ - counter_cm->active_prev->active_next = counter_cm->active_next; - - if (likely(counter_cm->active_next)) { - counter_cm->active_next->active_prev = counter_cm->active_prev; - } else { - si->active_tail = counter_cm->active_prev; - } - - counter_cm->active_next = NULL; - counter_cm->active_prev = NULL; - } - - /* - * Now remove the head of the active scan list. - */ - cm->active = false; - si->active_head = cm->active_next; - if (likely(cm->active_next)) { - cm->active_next->active_prev = NULL; - } else { - si->active_tail = NULL; - } - cm->active_next = NULL; - - /* - * Sync the connection state. - */ - c = cm->connection; - sfe_ipv6_gen_sync_connection(si, c, &sis, SFE_SYNC_REASON_STATS, now_jiffies); - - /* - * We don't want to be holding the lock when we sync! - */ - spin_unlock_bh(&si->lock); - sync_rule_callback(&sis); - spin_lock_bh(&si->lock); - } - - spin_unlock_bh(&si->lock); - rcu_read_unlock(); - -done: - mod_timer(&si->timer, jiffies + ((HZ + 99) / 100)); -} - -/* - * sfe_ipv6_debug_dev_read_start() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_start(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - int bytes_read; - - si->debug_read_seq++; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv6_debug_dev_read_connections_start() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_connections_start(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv6_debug_dev_read_connections_connection() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_connections_connection(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - struct sfe_ipv6_connection *c; - struct sfe_ipv6_connection_match *original_cm; - struct sfe_ipv6_connection_match *reply_cm; - int bytes_read; - int protocol; - struct net_device *src_dev; - struct sfe_ipv6_addr src_ip; - struct sfe_ipv6_addr src_ip_xlate; - __be16 src_port; - __be16 src_port_xlate; - u64 src_rx_packets; - u64 src_rx_bytes; - struct net_device *dest_dev; - struct sfe_ipv6_addr dest_ip; - struct sfe_ipv6_addr dest_ip_xlate; - __be16 dest_port; - __be16 dest_port_xlate; - u64 dest_rx_packets; - u64 dest_rx_bytes; - u64 last_sync_jiffies; - u32 mark, src_priority, dest_priority, src_dscp, dest_dscp; - - spin_lock_bh(&si->lock); - - for (c = si->all_connections_head; c; c = c->all_connections_next) { - if (c->debug_read_seq < si->debug_read_seq) { - c->debug_read_seq = si->debug_read_seq; - break; - } - } - - /* - * If there were no connections then move to the next state. - */ - if (!c) { - spin_unlock_bh(&si->lock); - ws->state++; - return true; - } - - original_cm = c->original_match; - reply_cm = c->reply_match; - - protocol = c->protocol; - src_dev = c->original_dev; - src_ip = c->src_ip[0]; - src_ip_xlate = c->src_ip_xlate[0]; - src_port = c->src_port; - src_port_xlate = c->src_port_xlate; - src_priority = original_cm->priority; - src_dscp = original_cm->dscp >> SFE_IPV6_DSCP_SHIFT; - - sfe_ipv6_connection_match_update_summary_stats(original_cm); - sfe_ipv6_connection_match_update_summary_stats(reply_cm); - - src_rx_packets = original_cm->rx_packet_count64; - src_rx_bytes = original_cm->rx_byte_count64; - dest_dev = c->reply_dev; - dest_ip = c->dest_ip[0]; - dest_ip_xlate = c->dest_ip_xlate[0]; - dest_port = c->dest_port; - dest_port_xlate = c->dest_port_xlate; - dest_priority = reply_cm->priority; - dest_dscp = reply_cm->dscp >> SFE_IPV6_DSCP_SHIFT; - dest_rx_packets = reply_cm->rx_packet_count64; - dest_rx_bytes = reply_cm->rx_byte_count64; - last_sync_jiffies = get_jiffies_64() - c->last_sync_jiffies; - mark = c->mark; - - spin_unlock_bh(&si->lock); - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\t\n", - protocol, - src_dev->name, - &src_ip, &src_ip_xlate, - ntohs(src_port), ntohs(src_port_xlate), - src_priority, src_dscp, - src_rx_packets, src_rx_bytes, - dest_dev->name, - &dest_ip, &dest_ip_xlate, - ntohs(dest_port), ntohs(dest_port_xlate), - dest_priority, dest_dscp, - dest_rx_packets, dest_rx_bytes, - last_sync_jiffies, mark); - - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - return true; -} - -/* - * sfe_ipv6_debug_dev_read_connections_end() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_connections_end(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv6_debug_dev_read_exceptions_start() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_exceptions_start(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv6_debug_dev_read_exceptions_exception() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_exceptions_exception(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - u64 ct; - - spin_lock_bh(&si->lock); - ct = si->exception_events64[ws->iter_exception]; - spin_unlock_bh(&si->lock); - - if (ct) { - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, - "\t\t\n", - sfe_ipv6_exception_events_string[ws->iter_exception], - ct); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - } - - ws->iter_exception++; - if (ws->iter_exception >= SFE_IPV6_EXCEPTION_EVENT_LAST) { - ws->iter_exception = 0; - ws->state++; - } - - return true; -} - -/* - * sfe_ipv6_debug_dev_read_exceptions_end() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_exceptions_end(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv6_debug_dev_read_stats() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_stats(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - int bytes_read; - unsigned int num_connections; - u64 packets_forwarded; - u64 packets_not_forwarded; - u64 connection_create_requests; - u64 connection_create_collisions; - u64 connection_destroy_requests; - u64 connection_destroy_misses; - u64 connection_flushes; - u64 connection_match_hash_hits; - u64 connection_match_hash_reorders; - - spin_lock_bh(&si->lock); - sfe_ipv6_update_summary_stats(si); - - num_connections = si->num_connections; - packets_forwarded = si->packets_forwarded64; - packets_not_forwarded = si->packets_not_forwarded64; - connection_create_requests = si->connection_create_requests64; - connection_create_collisions = si->connection_create_collisions64; - connection_destroy_requests = si->connection_destroy_requests64; - connection_destroy_misses = si->connection_destroy_misses64; - connection_flushes = si->connection_flushes64; - connection_match_hash_hits = si->connection_match_hash_hits64; - connection_match_hash_reorders = si->connection_match_hash_reorders64; - spin_unlock_bh(&si->lock); - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\t\n", - num_connections, - packets_forwarded, - packets_not_forwarded, - connection_create_requests, - connection_create_collisions, - connection_destroy_requests, - connection_destroy_misses, - connection_flushes, - connection_match_hash_hits, - connection_match_hash_reorders); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * sfe_ipv6_debug_dev_read_end() - * Generate part of the XML output. - */ -static bool sfe_ipv6_debug_dev_read_end(struct sfe_ipv6 *si, char *buffer, char *msg, size_t *length, - int *total_read, struct sfe_ipv6_debug_xml_write_state *ws) -{ - int bytes_read; - - bytes_read = snprintf(msg, CHAR_DEV_MSG_SIZE, "\n"); - if (copy_to_user(buffer + *total_read, msg, CHAR_DEV_MSG_SIZE)) { - return false; - } - - *length -= bytes_read; - *total_read += bytes_read; - - ws->state++; - return true; -} - -/* - * Array of write functions that write various XML elements that correspond to - * our XML output state machine. - */ -static sfe_ipv6_debug_xml_write_method_t sfe_ipv6_debug_xml_write_methods[SFE_IPV6_DEBUG_XML_STATE_DONE] = { - sfe_ipv6_debug_dev_read_start, - sfe_ipv6_debug_dev_read_connections_start, - sfe_ipv6_debug_dev_read_connections_connection, - sfe_ipv6_debug_dev_read_connections_end, - sfe_ipv6_debug_dev_read_exceptions_start, - sfe_ipv6_debug_dev_read_exceptions_exception, - sfe_ipv6_debug_dev_read_exceptions_end, - sfe_ipv6_debug_dev_read_stats, - sfe_ipv6_debug_dev_read_end, -}; - -/* - * sfe_ipv6_debug_dev_read() - * Send info to userspace upon read request from user - */ -static ssize_t sfe_ipv6_debug_dev_read(struct file *filp, char *buffer, size_t length, loff_t *offset) -{ - char msg[CHAR_DEV_MSG_SIZE]; - int total_read = 0; - struct sfe_ipv6_debug_xml_write_state *ws; - struct sfe_ipv6 *si = &__si6; - - ws = (struct sfe_ipv6_debug_xml_write_state *)filp->private_data; - while ((ws->state != SFE_IPV6_DEBUG_XML_STATE_DONE) && (length > CHAR_DEV_MSG_SIZE)) { - if ((sfe_ipv6_debug_xml_write_methods[ws->state])(si, buffer, msg, &length, &total_read, ws)) { - continue; - } - } - - return total_read; -} - -/* - * sfe_ipv6_debug_dev_write() - * Write to char device resets some stats - */ -static ssize_t sfe_ipv6_debug_dev_write(struct file *filp, const char *buffer, size_t length, loff_t *offset) -{ - struct sfe_ipv6 *si = &__si6; - - spin_lock_bh(&si->lock); - sfe_ipv6_update_summary_stats(si); - - si->packets_forwarded64 = 0; - si->packets_not_forwarded64 = 0; - si->connection_create_requests64 = 0; - si->connection_create_collisions64 = 0; - si->connection_destroy_requests64 = 0; - si->connection_destroy_misses64 = 0; - si->connection_flushes64 = 0; - si->connection_match_hash_hits64 = 0; - si->connection_match_hash_reorders64 = 0; - spin_unlock_bh(&si->lock); - - return length; -} - -/* - * sfe_ipv6_debug_dev_open() - */ -static int sfe_ipv6_debug_dev_open(struct inode *inode, struct file *file) -{ - struct sfe_ipv6_debug_xml_write_state *ws; - - ws = (struct sfe_ipv6_debug_xml_write_state *)file->private_data; - if (ws) { - return 0; - } - - ws = kzalloc(sizeof(struct sfe_ipv6_debug_xml_write_state), GFP_KERNEL); - if (!ws) { - return -ENOMEM; - } - - ws->state = SFE_IPV6_DEBUG_XML_STATE_START; - file->private_data = ws; - - return 0; -} - -/* - * sfe_ipv6_debug_dev_release() - */ -static int sfe_ipv6_debug_dev_release(struct inode *inode, struct file *file) -{ - struct sfe_ipv6_debug_xml_write_state *ws; - - ws = (struct sfe_ipv6_debug_xml_write_state *)file->private_data; - if (ws) { - /* - * We've finished with our output so free the write state. - */ - kfree(ws); - } - - return 0; -} - -/* - * File operations used in the debug char device - */ -static struct file_operations sfe_ipv6_debug_dev_fops = { - .read = sfe_ipv6_debug_dev_read, - .write = sfe_ipv6_debug_dev_write, - .open = sfe_ipv6_debug_dev_open, - .release = sfe_ipv6_debug_dev_release -}; - -/* - * sfe_ipv6_init() - */ -static int __init sfe_ipv6_init(void) -{ - struct sfe_ipv6 *si = &__si6; - int result = -1; - - DEBUG_INFO("SFE IPv6 init\n"); - - /* - * Create sys/sfe_ipv6 - */ - si->sys_sfe_ipv6 = kobject_create_and_add("sfe_ipv6", NULL); - if (!si->sys_sfe_ipv6) { - DEBUG_ERROR("failed to register sfe_ipv6\n"); - goto exit1; - } - - /* - * Create files, one for each parameter supported by this module. - */ - result = sysfs_create_file(si->sys_sfe_ipv6, &sfe_ipv6_debug_dev_attr.attr); - if (result) { - DEBUG_ERROR("failed to register debug dev file: %d\n", result); - goto exit2; - } - - /* - * Register our debug char device. - */ - result = register_chrdev(0, "sfe_ipv6", &sfe_ipv6_debug_dev_fops); - if (result < 0) { - DEBUG_ERROR("Failed to register chrdev: %d\n", result); - goto exit3; - } - - si->debug_dev = result; - - /* - * Create a timer to handle periodic statistics. - */ - setup_timer(&si->timer, sfe_ipv6_periodic_sync, (unsigned long)si); - mod_timer(&si->timer, jiffies + ((HZ + 99) / 100)); - - spin_lock_init(&si->lock); - - return 0; - -exit3: - sysfs_remove_file(si->sys_sfe_ipv6, &sfe_ipv6_debug_dev_attr.attr); - -exit2: - kobject_put(si->sys_sfe_ipv6); - -exit1: - return result; -} - -/* - * sfe_ipv6_exit() - */ -static void __exit sfe_ipv6_exit(void) -{ - struct sfe_ipv6 *si = &__si6; - - DEBUG_INFO("SFE IPv6 exit\n"); - - /* - * Destroy all connections. - */ - sfe_ipv6_destroy_all_rules_for_dev(NULL); - - del_timer_sync(&si->timer); - - unregister_chrdev(si->debug_dev, "sfe_ipv6"); - - sysfs_remove_file(si->sys_sfe_ipv6, &sfe_ipv6_debug_dev_attr.attr); - - kobject_put(si->sys_sfe_ipv6); -} - -module_init(sfe_ipv6_init) -module_exit(sfe_ipv6_exit) - -EXPORT_SYMBOL(sfe_ipv6_recv); -EXPORT_SYMBOL(sfe_ipv6_create_rule); -EXPORT_SYMBOL(sfe_ipv6_destroy_rule); -EXPORT_SYMBOL(sfe_ipv6_destroy_all_rules_for_dev); -EXPORT_SYMBOL(sfe_ipv6_register_sync_rule_callback); -EXPORT_SYMBOL(sfe_ipv6_mark_rule); -EXPORT_SYMBOL(sfe_ipv6_update_rule); - -MODULE_DESCRIPTION("Shortcut Forwarding Engine - IPv6 support"); -MODULE_LICENSE("Dual BSD/GPL"); - diff --git a/package/lean/shortcut-fe/src/userspace_example.c b/package/lean/shortcut-fe/src/userspace_example.c deleted file mode 100644 index 8bdd4670c..000000000 --- a/package/lean/shortcut-fe/src/userspace_example.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (c) 2013,2016 The Linux Foundation. All rights reserved. - * Permission to use, copy, modify, and/or distribute this software for - * any purpose with or without fee is hereby granted, provided that the - * above copyright notice and this permission notice appear in all copies. - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT - * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include -#include -#include -#include -#include - -#include "fast-classifier.h" - -static struct nl_sock *sock; -static struct nl_sock *sock_event; -static int family; -static int grp_id; - -static struct nla_policy fast_classifier_genl_policy[FAST_CLASSIFIER_A_MAX + 1] = { - [FAST_CLASSIFIER_A_TUPLE] = { .type = NLA_UNSPEC }, -}; - -void dump_fc_tuple(struct fast_classifier_tuple *fc_msg) -{ - char src_str[INET_ADDRSTRLEN]; - char dst_str[INET_ADDRSTRLEN]; - - printf("TUPLE: %d, %s, %s, %d, %d" - " SMAC=%02x:%02x:%02x:%02x:%02x:%02x", - " DMAC=%02x:%02x:%02x:%02x:%02x:%02x\n", - fc_msg->proto, - inet_ntop(AF_INET, - &fc_msg->src_saddr.in.s_addr, - src_str, - INET_ADDRSTRLEN), - inet_ntop(AF_INET, - &fc_msg->dst_saddr.in.s_addr, - dst_str, - INET_ADDRSTRLEN), - fc_msg->sport, fc_msg->dport, - fc_msg->smac[0], fc_msg->smac[1], fc_msg->smac[2], - fc_msg->smac[3], fc_msg->smac[4], fc_msg->smac[5], - fc_msg->dmac[0], fc_msg->dmac[1], fc_msg->dmac[2], - fc_msg->dmac[3], fc_msg->dmac[4], fc_msg->dmac[5]); -} - -static int parse_cb(struct nl_msg *msg, void *arg) -{ - struct nlmsghdr *nlh = nlmsg_hdr(msg); - struct genlmsghdr *gnlh = nlmsg_data(nlh); - struct nlattr *attrs[FAST_CLASSIFIER_A_MAX]; - - genlmsg_parse(nlh, 0, attrs, FAST_CLASSIFIER_A_MAX, fast_classifier_genl_policy); - - switch (gnlh->cmd) { - case FAST_CLASSIFIER_C_OFFLOADED: - printf("Got a offloaded message\n"); - dump_fc_tuple(nla_data(attrs[FAST_CLASSIFIER_A_TUPLE])); - return NL_OK; - case FAST_CLASSIFIER_C_DONE: - printf("Got a done message\n"); - dump_fc_tuple(nla_data(attrs[FAST_CLASSIFIER_A_TUPLE])); - return NL_OK; - } - - return NL_SKIP; -} - -int fast_classifier_init(void) -{ - int err; - - sock = nl_socket_alloc(); - if (!sock) { - printf("Unable to allocation socket.\n"); - return -1; - } - genl_connect(sock); - - sock_event = nl_socket_alloc(); - if (!sock_event) { - nl_close(sock); - nl_socket_free(sock); - printf("Unable to allocation socket.\n"); - return -1; - } - genl_connect(sock_event); - - family = genl_ctrl_resolve(sock, FAST_CLASSIFIER_GENL_NAME); - if (family < 0) { - nl_close(sock_event); - nl_close(sock); - nl_socket_free(sock); - nl_socket_free(sock_event); - printf("Unable to resolve family\n"); - return -1; - } - - grp_id = genl_ctrl_resolve_grp(sock, FAST_CLASSIFIER_GENL_NAME, - FAST_CLASSIFIER_GENL_MCGRP); - if (grp_id < 0) { - printf("Unable to resolve mcast group\n"); - return -1; - } - - err = nl_socket_add_membership(sock_event, grp_id); - if (err < 0) { - printf("Unable to add membership\n"); - return -1; - } - - nl_socket_disable_seq_check(sock_event); - nl_socket_modify_cb(sock_event, NL_CB_VALID, NL_CB_CUSTOM, parse_cb, NULL); - - return 0; -} - -void fast_classifier_close(void) -{ - nl_close(sock_event); - nl_close(sock); - nl_socket_free(sock_event); - nl_socket_free(sock); -} - -void fast_classifier_ipv4_offload(unsigned char proto, unsigned long src_saddr, - unsigned long dst_saddr, unsigned short sport, - unsigned short dport) -{ - struct nl_msg *msg; - int ret; -#ifdef DEBUG - char src_str[INET_ADDRSTRLEN]; - char dst_str[INET_ADDRSTRLEN]; -#endif - struct fast_classifier_tuple fc_msg; - -#ifdef DEBUG - printf("DEBUG: would offload: %d, %s, %s, %d, %d\n", proto, - inet_ntop(AF_INET, &src_saddr, src_str, INET_ADDRSTRLEN), - inet_ntop(AF_INET, &dst_saddr, dst_str, INET_ADDRSTRLEN), - sport, dport); -#endif - - fc_msg.proto = proto; - fc_msg.src_saddr.in.s_addr = src_saddr; - fc_msg.dst_saddr.in.s_addr = dst_saddr; - fc_msg.sport = sport; - fc_msg.dport = dport; - fc_msg.smac[0] = 'a'; - fc_msg.smac[1] = 'b'; - fc_msg.smac[2] = 'c'; - fc_msg.smac[3] = 'd'; - fc_msg.smac[4] = 'e'; - fc_msg.smac[5] = 'f'; - fc_msg.dmac[0] = 'f'; - fc_msg.dmac[1] = 'e'; - fc_msg.dmac[2] = 'd'; - fc_msg.dmac[3] = 'c'; - fc_msg.dmac[4] = 'b'; - fc_msg.dmac[5] = 'a'; - - if (fast_classifier_init() < 0) { - printf("Unable to init generic netlink\n"); - exit(1); - } - - msg = nlmsg_alloc(); - if (!msg) { - nl_socket_free(sock); - printf("Unable to allocate message\n"); - return; - } - - genlmsg_put(msg, NL_AUTO_PID, NL_AUTO_SEQ, family, - FAST_CLASSIFIER_GENL_HDRSIZE, NLM_F_REQUEST, - FAST_CLASSIFIER_C_OFFLOAD, FAST_CLASSIFIER_GENL_VERSION); - nla_put(msg, 1, sizeof(fc_msg), &fc_msg); - - ret = nl_send_auto_complete(sock, msg); - - nlmsg_free(msg); - if (ret < 0) { - printf("nlmsg_free failed"); - nl_close(sock); - nl_socket_free(sock); - return; - } - - ret = nl_wait_for_ack(sock); - if (ret < 0) { - printf("wait for ack failed"); - nl_close(sock); - nl_socket_free(sock); - return; - } -} - -void fast_classifier_listen_for_messages(void) -{ - printf("waiting for netlink events\n"); - - while (1) { - nl_recvmsgs_default(sock_event); - } -} - -int main(int argc, char *argv[]) -{ - if (fast_classifier_init() < 0) { - printf("Unable to init generic netlink\n"); - exit(1); - } - - fast_classifier_ipv4_offload('a', 0, 0, 0, 0); - - /* this never returns */ - fast_classifier_listen_for_messages(); - - fast_classifier_close(); - - return 0; -} diff --git a/package/lean/softethervpn5/Makefile b/package/lean/softethervpn5/Makefile deleted file mode 100644 index ef41c4c60..000000000 --- a/package/lean/softethervpn5/Makefile +++ /dev/null @@ -1,166 +0,0 @@ -# Based partially on the versions of el1n and Federico Di Marco - -include $(TOPDIR)/rules.mk - -PKG_NAME:=softethervpn -PKG_VERSION_NAME:=5.01 -PKG_RELEASE:=1 - -PKG_MAINTAINER:=Andy Walsh -PKG_LICENSE:=GPL-2.0 -PKG_LICENSE_FILES:=COPYING - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/SoftEtherVPN/SoftEtherVPN.git -PKG_SOURCE_DATE:=2018-10-03 -PKG_SOURCE_VERSION:=2271bf5fba410f815bf6834aae65d4b513cee1b2 -PKG_MIRROR_HASH:=bc921fa4646a54d523d0388e50c202943f020ebb1679d1fd858954aa585a11e3 - -HOST_BUILD_DEPENDS:=ncurses/host readline/host -PKG_BUILD_DEPENDS:=softethervpn5/host - -include $(INCLUDE_DIR)/package.mk -include $(INCLUDE_DIR)/host-build.mk -include $(INCLUDE_DIR)/nls.mk -include $(INCLUDE_DIR)/cmake.mk - -define Package/softethervpn5/Default - SECTION:=net - CATEGORY:=Network - SUBMENU:=VPN - TITLE:=softethervpn $(PKG_VERSION_NAME) - URL:=http://www.softether.org/ -endef - -define Package/softethervpn5/Default/description - SoftEther VPN supports SSL-VPN, OpenVPN, L2TP, EtherIP, L2TPv3 and IPsec as a single VPN software. - SoftEther VPN is not only an alternative VPN server to existing VPN products (OpenVPN, IPsec and MS-SSTP), - but has also original strong SSL-VPN protocol to penetrate any kinds of firewalls. - Guide: https://wordpress.tirlins.com/2015/03/setting-up-softether-vpn-on-openwrt/ -endef - -define Package/softethervpn5-libs - $(call Package/softethervpn5/Default) - DEPENDS:=+libpthread +librt +libreadline +libopenssl +libncurses +kmod-tun +zlib $(ICONV_DEPENDS) - TITLE+= libs - HIDDEN:=1 -endef - -define Package/softethervpn5-server - $(call Package/softethervpn5/Default) - TITLE+= server - DEPENDS:= +softethervpn5-libs -endef -define Package/softethervpn5-server/description - $(call Package/softethervpn5/Default/description) - - Provides the vpnserver (daemon). -endef - -define Package/softethervpn5-bridge - $(call Package/softethervpn5/Default) - TITLE+= bridge - DEPENDS:= +softethervpn5-libs -endef -define Package/softethervpn5-bridge/description - $(call Package/softethervpn5/Default/description) - - Provides the vpnbridge (daemon). -endef - -define Package/softethervpn5-client - $(call Package/softethervpn5/Default) - TITLE+= client - DEPENDS:= +softethervpn5-libs -endef -define Package/softethervpn5-client/description - $(call Package/softethervpn5/Default/description) - - Provides the vpnclient (daemon). -endef - -export USE_MUSL=YES -# BUG: outdated host/include/elf.h -HOST_CFLAGS += $(FPIC) -DAT_HWCAP2=26 -TARGET_CFLAGS += $(FPIC) - -define Host/Compile - $(call Host/Compile/Default,hamcorebuilder) -endef - -define Host/Install - $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/ - $(INSTALL_BIN) $(HOST_BUILD_DIR)/tmp/hamcorebuilder $(STAGING_DIR_HOSTPKG)/bin/ -endef - -define Build/Prepare - $(Build/Prepare/Default) - # build as shared libs - $(SED) 's,STATIC,SHARED,g' $(PKG_BUILD_DIR)/src/Mayaqua/CMakeLists.txt - $(SED) 's,STATIC,SHARED,g' $(PKG_BUILD_DIR)/src/Cedar/CMakeLists.txt -endef - -define Build/Compile - $(call Build/Compile/Default,vpnserver vpnbridge vpnclient vpncmd hamcore-archive-build) -endef - -define Build/Install -endef - -define Package/softethervpn5-libs/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_BUILD_DIR)/tmp/Cedar/libcedar.so $(1)/usr/lib/ - $(CP) $(PKG_BUILD_DIR)/tmp/Mayaqua/libmayaqua.so $(1)/usr/lib/ - $(INSTALL_DIR) $(1)/usr/libexec/softethervpn - $(CP) $(PKG_BUILD_DIR)/tmp/hamcore.se2 $(1)/usr/libexec/softethervpn/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpncmd/vpncmd $(1)/usr/libexec/softethervpn/ - $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn/ - $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/lang.config - $(INSTALL_DIR) $(1)/usr/bin - $(LN) ../../usr/libexec/softethervpn/launcher.sh $(1)/usr/bin/vpncmd -endef - -define Package/softethervpn5-server/install - $(INSTALL_DIR) $(1)/usr/libexec/softethervpn - $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnserver/vpnserver $(1)/usr/libexec/softethervpn/ - $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_server.config - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) files/vpnserver.init $(1)/etc/init.d/softethervpnserver -endef - -define Package/softethervpn5-bridge/install - $(INSTALL_DIR) $(1)/usr/libexec/softethervpn - $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnbridge/vpnbridge $(1)/usr/libexec/softethervpn/ - $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn/ - $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_bridge.config - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) files/vpnbridge.init $(1)/etc/init.d/softethervpnbridge -endef - -define Package/softethervpn5-client/install - $(INSTALL_DIR) $(1)/usr/libexec/softethervpn - $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/vpnclient/vpnclient $(1)/usr/libexec/softethervpn/ - $(INSTALL_BIN) files/launcher.sh $(1)/usr/libexec/softethervpn/ - $(INSTALL_DATA) files/dummy $(1)/usr/libexec/softethervpn/vpn_client.config - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) files/vpnclient.init $(1)/etc/init.d/softethervpnclient -endef - -define Package/softethervpn5-server/conffiles - /usr/libexec/softethervpn/vpn_server.config - /usr/libexec/softethervpn/lang.config -endef -define Package/softethervpn5-bridge/conffiles - /usr/libexec/softethervpn/vpn_bridge.config - /usr/libexec/softethervpn/lang.config -endef -define Package/softethervpn5-client/conffiles - /usr/libexec/softethervpn/vpn_client.config - /usr/libexec/softethervpn/lang.config -endef - -$(eval $(call HostBuild)) -$(eval $(call BuildPackage,softethervpn5-libs)) -$(eval $(call BuildPackage,softethervpn5-server)) -$(eval $(call BuildPackage,softethervpn5-bridge)) -$(eval $(call BuildPackage,softethervpn5-client)) diff --git a/package/lean/softethervpn5/files/dummy b/package/lean/softethervpn5/files/dummy deleted file mode 100644 index 8b1378917..000000000 --- a/package/lean/softethervpn5/files/dummy +++ /dev/null @@ -1 +0,0 @@ - diff --git a/package/lean/softethervpn5/files/launcher.sh b/package/lean/softethervpn5/files/launcher.sh deleted file mode 100644 index 79707922a..000000000 --- a/package/lean/softethervpn5/files/launcher.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec "/usr/libexec/softethervpn/${0##*/}" "$@" diff --git a/package/lean/softethervpn5/files/vpnbridge.init b/package/lean/softethervpn5/files/vpnbridge.init deleted file mode 100644 index 1311e652b..000000000 --- a/package/lean/softethervpn5/files/vpnbridge.init +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=90 -USE_PROCD=1 - -start_service(){ - logger -t 'softethervpn5' "Starting softether bridge service." - - [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn - - [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/ - [ -f /var/softethervpn/lang.config ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/ - - [ -f /var/softethervpn/vpnbridge ] || ln -sf /usr/libexec/softethervpn/vpnbridge /var/softethervpn/ - [ -f /var/softethervpn/vpn_bridge.config ] || ln -sf /usr/libexec/softethervpn/vpn_bridge.config /var/softethervpn/ - - procd_open_instance - procd_set_param env LANG=en_US.UTF-8 - procd_set_param command /var/softethervpn/vpnbridge start --foreground - procd_set_param respawn - procd_close_instance -} - -stop_service(){ - logger -t 'softethervpn5' "Stopping softether bridge service." - - /var/softethervpn/vpnbridge stop -} diff --git a/package/lean/softethervpn5/files/vpnclient.init b/package/lean/softethervpn5/files/vpnclient.init deleted file mode 100644 index e4766f0fe..000000000 --- a/package/lean/softethervpn5/files/vpnclient.init +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=92 -USE_PROCD=1 - -start_service(){ - logger -t 'softethervpn5' "Starting softether client service." - - [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn - - [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/ - [ -f /var/softethervpn/lang.config ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/ - - [ -f /var/softethervpn/vpnclient ] || ln -sf /usr/libexec/softethervpn/vpnclient /var/softethervpn/ - [ -f /var/softethervpn/vpn_client.config ] || ln -sf /usr/libexec/softethervpn/vpn_client.config /var/softethervpn/ - - procd_open_instance - procd_set_param env LANG=en_US.UTF-8 - procd_set_param command /var/softethervpn/vpnclient start --foreground - procd_set_param respawn - procd_close_instance -} - -stop_service(){ - logger -t 'softethervpn5' "Stopping softether client service." - - /var/softethervpn/vpnclient stop -} diff --git a/package/lean/softethervpn5/files/vpnserver.init b/package/lean/softethervpn5/files/vpnserver.init deleted file mode 100644 index e6f73da31..000000000 --- a/package/lean/softethervpn5/files/vpnserver.init +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=91 -USE_PROCD=1 - -start_service(){ - logger -t 'softethervpn5' "Starting softether vpnserver service." - - [ -d /var/softethervpn ] || mkdir -p -m 0775 /var/softethervpn - - [ -f /var/softethervpn/hamcore.se2 ] || ln -sf /usr/libexec/softethervpn/hamcore.se2 /var/softethervpn/ - [ -f /var/softethervpn/lang.config ] || ln -sf /usr/libexec/softethervpn/lang.config /var/softethervpn/ - - [ -f /var/softethervpn/vpnserver ] || ln -sf /usr/libexec/softethervpn/vpnserver /var/softethervpn/ - [ -f /var/softethervpn/vpn_server.config ] || ln -sf /usr/libexec/softethervpn/vpn_server.config /var/softethervpn/ - - procd_open_instance - procd_set_param env LANG=en_US.UTF-8 - procd_set_param command /var/softethervpn/vpnserver start --foreground - procd_set_param respawn - procd_close_instance -} - -stop_service(){ - logger -t 'softethervpn5' "Stopping softether vpnserver service." - - /var/softethervpn/vpnserver stop -} diff --git a/package/lean/softethervpn5/patches/100-increase-cfg-save-intervall.patch b/package/lean/softethervpn5/patches/100-increase-cfg-save-intervall.patch deleted file mode 100644 index 5ce814a7a..000000000 --- a/package/lean/softethervpn5/patches/100-increase-cfg-save-intervall.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- a/src/Cedar/Server.h 2018-07-21 -+++ b/src/Cedar/Server.h 2018-07-23 -@@ -138,10 +138,10 @@ extern char *SERVER_CONFIG_FILE_NAME; - #define SERVER_CONTROL_TCP_TIMEOUT (60 * 1000) - #define SERVER_FARM_CONTROL_INTERVAL (10 * 1000) - --#define SERVER_FILE_SAVE_INTERVAL_DEFAULT (5 * 60 * 1000) --#define SERVER_FILE_SAVE_INTERVAL_MIN (5 * 1000) --#define SERVER_FILE_SAVE_INTERVAL_MAX (3600 * 1000) --#define SERVER_FILE_SAVE_INTERVAL_USERMODE (1 * 60 * 1000) -+#define SERVER_FILE_SAVE_INTERVAL_DEFAULT (24 * 60 * 60 * 1000) -+#define SERVER_FILE_SAVE_INTERVAL_MIN (5 * 60 * 1000) -+#define SERVER_FILE_SAVE_INTERVAL_MAX (7 * 24 * 60 * 60 * 1000) -+#define SERVER_FILE_SAVE_INTERVAL_USERMODE (5 * 60 * 1000) - - #define SERVER_LICENSE_VIOLATION_SPAN (SERVER_FARM_CONTROL_INTERVAL * 2) - diff --git a/package/lean/softethervpn5/patches/101-add-config-write-syslog.patch b/package/lean/softethervpn5/patches/101-add-config-write-syslog.patch deleted file mode 100644 index 8f2ede5f9..000000000 --- a/package/lean/softethervpn5/patches/101-add-config-write-syslog.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/src/Cedar/Server.c 2018-07-25 -+++ b/src/Cedar/Server.c 2018-07-26 -@@ -110,7 +110,7 @@ - - // Server.c - // VPN Server module -- -+#include - #include "CedarPch.h" - - static SERVER *server = NULL; -@@ -6601,6 +6601,10 @@ UINT SiWriteConfigurationFile(SERVER *s) - { - return 0; - } -+ -+ openlog("softethervpn-server", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_DAEMON); -+ syslog(LOG_NOTICE, "Writing vpn_server.config (AutoSaveConfigSpan set to < %d > seconds)", (s->AutoSaveConfigSpan / 1000)); -+ closelog(); - - Lock(s->SaveCfgLock); - { diff --git a/package/lean/v2ray/Makefile b/package/lean/v2ray/Makefile deleted file mode 100644 index fd888033b..000000000 --- a/package/lean/v2ray/Makefile +++ /dev/null @@ -1,109 +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:=v2ray -PKG_VERSION:=v3.47 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) - -ifeq ($(ARCH),x86_64) - PKG_ARCH_V2RAY:=linux-64 -endif -ifeq ($(ARCH),mipsel) - PKG_ARCH_V2RAY:=linux-mipsle -endif -ifeq ($(ARCH),mips) - PKG_ARCH_V2RAY:=linux-mips -endif -ifeq ($(ARCH),i386) - PKG_ARCH_V2RAY:=linux-32 -endif -ifeq ($(ARCH),arm) - PKG_ARCH_V2RAY:=linux-arm -endif -ifeq ($(ARCH),aarch64) - PKG_ARCH_V2RAY:=linux-arm64 -endif - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=net - CATEGORY:=Network - TITLE:=V2Ray is a cross-platform proxy software - DEPENDS:= - URL:=https://github.com/v2ray/v2ray-core -endef - -define Package/$(PKG_NAME)/config -menu "V2Ray Configuration" - depends on PACKAGE_v2ray - -config PACKAGE_V2RAY_INCLUDE_V2RAY - bool "Include v2ray" - default y - -config PACKAGE_V2RAY_SOFTFLOAT - bool "Use soft-float binaries (mips/mipsle only)" - depends on PACKAGE_V2RAY_INCLUDE_V2RAY - default n - -config PACKAGE_V2RAY_INCLUDE_V2CTL - bool "Include v2ctl" - depends on PACKAGE_V2RAY_INCLUDE_V2RAY - default y - -config PACKAGE_V2RAY_INCLUDE_GEOIP - bool "Include geoip.dat" - depends on PACKAGE_V2RAY_INCLUDE_V2CTL - default n - -config PACKAGE_V2RAY_INCLUDE_GEOSITE - bool "Include geosite.dat" - depends on PACKAGE_V2RAY_INCLUDE_V2CTL - default n - -endmenu -endef - -define Package/$(PKG_NAME)/description -V2Ray is a cross-platform proxy software -endef - -define Build/Prepare - - wget https://github.com/v2ray/v2ray-core/releases/download/$(PKG_VERSION)/v2ray-$(PKG_ARCH_V2RAY).zip -O $(PKG_BUILD_DIR)/v2ray-$(PKG_VERSION)-$(PKG_ARCH_V2RAY).zip - unzip -o $(PKG_BUILD_DIR)/v2ray-$(PKG_VERSION)-$(PKG_ARCH_V2RAY).zip -d $(PKG_BUILD_DIR) -ifdef CONFIG_PACKAGE_V2RAY_SOFTFLOAT - [ -f $(PKG_BUILD_DIR)/v2ray_softfloat ] && mv $(PKG_BUILD_DIR)/v2ray_softfloat $(PKG_BUILD_DIR)/v2ray || echo "Can't find soft-float binary." - [ -f $(PKG_BUILD_DIR)/v2ctl_softfloat ] && mv $(PKG_BUILD_DIR)/v2ctl_softfloat $(PKG_BUILD_DIR)/v2ctl || echo "Can't find soft-float binary." -endif -endef - -define Build/Configure -endef - -define Build/Compile -endef - -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/usr/bin/v2ray -ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_V2RAY - $(INSTALL_BIN) $(PKG_BUILD_DIR)/v2ray $(1)/usr/bin/v2ray/ -endif -ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_V2CTL - $(INSTALL_BIN) $(PKG_BUILD_DIR)/v2ctl $(1)/usr/bin/v2ray/ -endif -ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_GEOIP - $(INSTALL_BIN) $(PKG_BUILD_DIR)/geoip.dat $(1)/usr/bin/v2ray/ -endif -ifdef CONFIG_PACKAGE_V2RAY_INCLUDE_GEOSITE - $(INSTALL_BIN) $(PKG_BUILD_DIR)/geosite.dat $(1)/usr/bin/v2ray/ -endif -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/package/lean/vlmcsd/Makefile b/package/lean/vlmcsd/Makefile deleted file mode 100644 index 201754e82..000000000 --- a/package/lean/vlmcsd/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=vlmcsd -PKG_VERSION:=svn1112 -PKG_RELEASE:=1 - -PKG_MAINTAINER:=fuyumi <280604399@qq.com> -PKG_LICENSE:=MIT -PKG_LICENSE_FILES:=LICENSE - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/etnperlong/vlmcsd.git -PKG_SOURCE_VERSION:=88007b3578cab6324241ae6e636d8e6503cd611c - -PKG_SOURCE_SUBDIR:=$(PKG_NAME) -PKG_SOURCE:=$(PKG_SOURCE_SUBDIR)-$(PKG_VERSION).tar.gz -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR) -PKG_BUILD_PARALLEL:=1 - -include $(INCLUDE_DIR)/package.mk - -define Package/vlmcsd - SECTION:=net - CATEGORY:=Network - TITLE:=vlmcsd for OpenWRT - URL:=http://forums.mydigitallife.info/threads/50234 - DEPENDS:=+libpthread -endef - -define Package/vlmcsd/description - vlmcsd is a KMS Emulator in C. -endef - -MAKE_FLAGS += \ - -C $(PKG_BUILD_DIR) - -define Package/vlmcsd/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vlmcsd $(1)/usr/bin/vlmcsd - #$(INSTALL_BIN) $(PKG_BUILD_DIR)/bin/vlmcs $(1)/usr/bin/vlmcs - $(INSTALL_DIR) $(1)/etc - $(INSTALL_BIN) ./files/vlmcsd.ini $(1)/etc/vlmcsd.ini - #$(INSTALL_DIR) $(1)/etc/init.d - #$(INSTALL_BIN) ./files/vlmcsd.init $(1)/etc/init.d/vlmcsd -endef - -$(eval $(call BuildPackage,vlmcsd)) diff --git a/package/lean/vlmcsd/files/vlmcsd.ini b/package/lean/vlmcsd/files/vlmcsd.ini deleted file mode 100644 index c69d079d1..000000000 --- a/package/lean/vlmcsd/files/vlmcsd.ini +++ /dev/null @@ -1,59 +0,0 @@ -#ePID/HwId设置为Windows显式 -;55c92734-d682-4d71-983e-d6ec3f16059f = 06401-00206-271-392041-03-1033-9600.0000-3622014 / 01 02 03 04 05 06 07 08 - -#ePID设置为Office2010(包含Visio和Project)显式 -;59a52881-a989-479d-af46-f275c6370663 = 06401-00096-199-496023-03-1033-9600.0000-3622014 - -#ePID设置为Office2013(包含Visio和Project)显式 -;0ff1ce15-a989-479d-af46-f275c6370663 = 06401-00206-234-409313-03-1033-9600.0000-3622014 - -#使用自定义TCP端口 -;Port = 1688 - -#监听所有IPv4地址(默认端口1688) -;Listen = 0.0.0.0:1688 - -#监听所有IPv6地址(默认端口1688) -;Listen = [::]:1688 - -#程序启动时随机ePIDs(只有那些未显式指定的) -;RandomizationLevel = 1 - -#在ePIDs中使用特定区域 (1033 = 美国英语),即使ePID是随机的 -;LCID = 1033 - -#设置最多4个同时工作(分叉进程或线程) -;MaxWorkers = 4 - -#闲置30秒后断开用户 -;ConnectionTimeout = 30 - -#每次请求后立即断开客户端 -;DisconnectClientsImmediately = yes - -#写一个pid文件(包含vlmcsd的进程ID的文件) -;PidFile = /var/run/vlmcsd.pid - -#写日志到/var/log/vlmcsd.log -;LogFile = /var/log/vlmcsd.log - -#创建详细日志 -;LogVerbose = true - -#设置激活间隔2小时 -;ActivationInterval = 2h - -#设置更新间隔7天 -;RenewalInterval = 7d - -#运行程序的用户为vlmcsduser -;user = vlmcsduser - -#运行程序的组为vlmcsdgroup -;group = vlmcsdgroup - -#禁用或启用RPC的NDR64传输语法(默认启用) -;UseNDR64 = true - -#禁用或启用RPC的绑定时间特性协商(默认启用) -;UseBTFN = true diff --git a/package/lean/vlmcsd/files/vlmcsd.init b/package/lean/vlmcsd/files/vlmcsd.init deleted file mode 100644 index fe628d708..000000000 --- a/package/lean/vlmcsd/files/vlmcsd.init +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (c) 2011-2015 OpenWrt.org - -START=90 - -start(){ - if [ ! -f "/tmp/vlmcsd.pid" ]; then - /usr/bin/vlmcsd -i /etc/vlmcsd.ini -p /tmp/vlmcsd.pid -L 0.0.0.0:1688 - iptables -D input_rule -p tcp --dport 1688 -j ACCEPT - iptables -A input_rule -p tcp --dport 1688 -j ACCEPT - sed -i '/## luci-app-vlmcsd/d' /etc/firewall.user - echo "iptables -A input_rule -p tcp --dport 1688 -j ACCEPT ## luci-app-vlmcsd" >> /etc/firewall.user - echo "KMS Server has started." - else - echo "KMS Server has already started." - fi -} - -stop(){ - if [ ! -f "/tmp/vlmcsd.pid" ]; then - echo "KMS Server is not running." - else - pid=`cat /tmp/vlmcsd.pid` - kill $pid - rm -f /tmp/vlmcsd.pid - iptables -D input_rule -p tcp --dport 1688 -j ACCEPT - sed -i '/## luci-app-vlmcsd/d' /etc/firewall.user - echo "KMS Server has stopped." - fi -} - -restart(){ - stop - sleep 2 - start - echo "KMS Server has restarted." -} diff --git a/package/lean/vsftpd-alt/Makefile b/package/lean/vsftpd-alt/Makefile deleted file mode 100644 index d94026d85..000000000 --- a/package/lean/vsftpd-alt/Makefile +++ /dev/null @@ -1,113 +0,0 @@ -# -# Copyright (C) 2006-2014 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=vsftpd-alt -PKG_VERSION:=3.0.3 -PKG_RELEASE:=5 - -PKG_SOURCE:=vsftpd-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://security.appspot.com/downloads/ -PKG_MD5SUM:=da119d084bd3f98664636ea05b5bb398 -PKG_LICENSE:=GPLv2 - -BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) -PKG_BUILD_DIR:=$(BUILD_DIR)/vsftpd-$(PKG_VERSION) - -include $(INCLUDE_DIR)/package.mk - -define Package/vsftpd-alt/Default - SUBMENU:=File Transfer - SECTION:=net - CATEGORY:=Network - TITLE:=A fast and secure FTP server (with aio support) - URL:=http://vsftpd.beasts.org/ - MAINTAINER:=Cezary Jackiewicz - DEPENDS=+libuci - #+PACKAGE_libpam:libpam -endef - -define Package/vsftpd-alt/conffiles -/etc/vsftpd.conf -endef - -#EXTRA_LDFLAGS:= -lcrypt -lcrypto -lssl - -define Package/vsftpd-alt/config -config VSFTPD_USE_UCI_SCRIPTS - bool "Uses UCI scripts" - depends on PACKAGE_vsftpd-alt - default y -#config VSFTPD_ENABLE_AIO -# bool "Enable async I/O (Currently Buggy)" -# depends on PACKAGE_vsftpd-alt -# default n -endef - -ifneq ($(CONFIG_USE_MUSL),) - NLSSTRING:=-lcrypt -else - NLSSTRING:=-lcrypt -lnsl -endif - -TARGET_CFLAGS += -D_GNU_SOURCE -include fcntl.h - -#ifdef CONFIG_PACKAGE_libpam -# EXTRA_LDFLAGS += -lpam -#endif - -#ifeq ($(CONFIG_VSFTPD_ENABLE_AIO),y) -#define Package/vsftpd-alt -#$(call Package/vsftpd-alt/Default) -# DEPENDS=+PACKAGE_libpam:libpam +libopenssl +libuci +libaio -#endef -# EXTRA_LDFLAGS += -laio -# EXTRA_CFLAGS += -DVSFTPD_ASYNC_IO -#else -define Package/vsftpd-alt -$(call Package/vsftpd-alt/Default) -endef -#endif - - -define Build/Compile - $(SED) 's/-lcrypt -lnsl/$(NLSSTRING)/' $(PKG_BUILD_DIR)/Makefile - $(MAKE) -C $(PKG_BUILD_DIR) \ - CC="$(TARGET_CC)" \ - CFLAGS="$(TARGET_CFLAGS)" \ - LDFLAGS="$(TARGET_LDFLAGS)" \ - vsftpd -endef - -ifeq ($(CONFIG_VSFTPD_USE_UCI_SCRIPTS),y) -define Package/vsftpd-alt/install -$(call Package/vsftpd-alt/install/default, $(1)) - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_DIR) $(1)/etc/config -ifdef CONFIG_PACKAGE_libpam - $(INSTALL_DIR) $(1)/etc/pam.d -endif - $(INSTALL_DIR) $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/vsftpd $(1)/usr/sbin - $(INSTALL_BIN) ./files/vsftpd-uci.init $(1)/etc/init.d/vsftpd - $(INSTALL_BIN) ./files/vsftpd.uci $(1)/etc/config/vsftpd - $(INSTALL_BIN) ./files/vsftpd_wrapper $(1)/usr/sbin - $(INSTALL_BIN) ./files/vsftpd_prepare $(1)/usr/sbin -endef -else -define Package/vsftpd-alt/install -$(call Package/vsftpd-alt/install/default, $(1)) - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_DIR) $(1)/usr/sbin - $(INSTALL_CONF) ./files/vsftpd.conf $(1)/etc/vsftpd.conf - $(INSTALL_BIN) ./files/vsftpd.init $(1)/etc/init.d/vsftpd - $(INSTALL_BIN) $(PKG_BUILD_DIR)/vsftpd $(1)/usr/sbin -endef -endif - -$(eval $(call BuildPackage,vsftpd-alt)) diff --git a/package/lean/vsftpd-alt/files/vsftpd-uci.init b/package/lean/vsftpd-alt/files/vsftpd-uci.init deleted file mode 100644 index a5af8b79b..000000000 --- a/package/lean/vsftpd-alt/files/vsftpd-uci.init +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2006-2011 OpenWrt.org - -START=50 - -start() { - /usr/sbin/vsftpd_prepare - service_start /usr/sbin/vsftpd_wrapper ipv4 - service_start /usr/sbin/vsftpd_wrapper ipv6 -} - -stop() { - service_stop /usr/sbin/vsftpd -} diff --git a/package/lean/vsftpd-alt/files/vsftpd.conf b/package/lean/vsftpd-alt/files/vsftpd.conf deleted file mode 100644 index 7d46506e9..000000000 --- a/package/lean/vsftpd-alt/files/vsftpd.conf +++ /dev/null @@ -1,30 +0,0 @@ -background=YES -listen=YES -anonymous_enable=NO -local_enable=YES -write_enable=YES -local_umask=022 -check_shell=NO -#dirmessage_enable=YES -#ftpd_banner=Welcome to blah FTP service. -session_support=NO -#syslog_enable=YES -#userlist_enable=YES -#userlist_deny=NO -#userlist_file=/etc/vsftpd.users -#xferlog_enable=YES -#xferlog_file=/var/log/vsftpd.log -#xferlog_std_format=YES -### -### TLS/SSL options -### example key generation: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/config/vsftpd_privkey.pem -out /etc/config/vsftpd_cert.pem -subj /C="DE"/ST="Saxony"/L="Leipzig"/CN="OpenWrt" -#ssl_enable=YES -#allow_anon_ssl=NO -#force_local_data_ssl=NO -#force_local_logins_ssl=NO -#ssl_tlsv1=YES -#ssl_sslv2=NO -#ssl_sslv3=NO -#rsa_cert_file=/etc/config/vsftpd_cert.pem -#rsa_private_key_file=/etc/config/vsftpd_privkey.pem - diff --git a/package/lean/vsftpd-alt/files/vsftpd.init b/package/lean/vsftpd-alt/files/vsftpd.init deleted file mode 100644 index ad3e23da5..000000000 --- a/package/lean/vsftpd-alt/files/vsftpd.init +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2006-2011 OpenWrt.org - -START=50 - -start() { - mkdir -m 0755 -p /var/run/vsftpd - service_start /usr/sbin/vsftpd -} - -stop() { - service_stop /usr/sbin/vsftpd -} diff --git a/package/lean/vsftpd-alt/files/vsftpd.uci b/package/lean/vsftpd-alt/files/vsftpd.uci deleted file mode 100644 index e856c16dc..000000000 --- a/package/lean/vsftpd-alt/files/vsftpd.uci +++ /dev/null @@ -1,50 +0,0 @@ - -config listen 'listen' - option enable4 '1' - option ipv4 '0.0.0.0' - option enable6 '0' - option ipv6 '::1' - option port '21' - option dataport '20' - -config local 'local' - option enabled '1' - -config global 'global' - option write '1' - option download '1' - option dotfile '0' - option umask '022' - option dirlist '1' - option dirmsgfile '.message' - -config connection 'connection' - option portmode '1' - option pasvmode '1' - option ascii 'both' - option idletimeout '1800' - option conntimeout '120' - option dataconntimeout '120' - option maxclient '0' - option maxperip '0' - option maxrate '0' - option maxretry '3' - -config anonymous 'anonymous' - option enabled '0' - option username 'ftp' - option root '/home/ftp' - option umask '022' - option writemkdir '0' - option upload '0' - option others '0' - option maxrate '0' - -config log 'log' - option syslog '0' - option xreflog '1' - option file '/var/log/vsftpd.log' - -config vuser 'vuser' - option enabled '0' - option username 'ftp' diff --git a/package/lean/vsftpd-alt/files/vsftpd_prepare b/package/lean/vsftpd-alt/files/vsftpd_prepare deleted file mode 100755 index 622671966..000000000 --- a/package/lean/vsftpd-alt/files/vsftpd_prepare +++ /dev/null @@ -1,253 +0,0 @@ -#!/bin/sh -# Copyright (C) 2005-2016 Weijie Gao - -. $IPKG_INSTROOT/lib/functions.sh - -output_field() -{ - local UCI_SECTION=$1 - local KEY=$2 - local INIFIELD=$3 - local DEFVALUE=$4 - local value - - if [ -z "$INIFIELD" ]; then INIFIELD=$KEY; fi - - config_get value "$UCI_SECTION" "$KEY" - if [ -z "$value" ]; then value=$DEFVALUE; fi - - echo "$INIFIELD=$value" >> $CONF -} - -output_bool() -{ - local UCI_SECTION=$1 - local KEY=$2 - local INIFIELD=$3 - local DEFVALUE=$4 - local value - - if [ -z "$INIFIELD" ]; then INIFIELD=$KEY; fi - - config_get value "$UCI_SECTION" "$KEY" - if [ -z "$value" ]; then value=$DEFVALUE; fi - if [ x"$value" != x0 ] && [ x"$value" != x1 ]; then value=0; fi - - if [ "$value" == 0 ]; then - value=NO - else - value=YES - fi - - echo "$INIFIELD=$value" >> $CONF -} - -output_const() -{ - local INIFIELD=$1 - local value=$2 - - echo "$INIFIELD=$value" >> $CONF -} - -get_value() -{ - local UCI_SECTION=$1 - local KEY=$2 - local value - - config_get value "$UCI_SECTION" "$KEY" - - echo $value -} - -vusers_iterate() -{ - local config=$1 - local name - local password - local owner - local home - local _umask - local maxrate - local write_enable - local upload_enable - local mkdir_enable - local others_enable - - config_get name "$config" username - config_get password "$config" password - config_get home "$config" home - config_get _umask "$config" "umask" - config_get maxrate "$config" maxrate - config_get write_enable "$config" writemkdir - config_get upload_enable "$config" upload - config_get others_enable "$config" others - - config_get owner "vuser" username - - rm -f $VUSER_CONF_DIR/$name - touch $VUSER_CONF_DIR/$name - - if [ -z $home ]; then home=$CHROOT_DIR; fi - - echo "local_root=$home" >> $VUSER_CONF_DIR/$name - - if [ x$write_enable = x1 ]; then write_enable=YES; else write_enable=NO; fi - if [ x$upload_enable = x1 ]; then upload_enable=YES; else upload_enable=NO; fi - if [ x$others_enable = x1 ]; then others_enable=YES; else others_enable=NO; fi - if [ -z $_umask ]; then _umask=022; fi - if [ -z $maxrate ]; then maxrate=0; fi - - echo "anon_world_readable_only=NO" >> $VUSER_CONF_DIR/$name - echo "anon_mkdir_write_enable=$write_enable" >> $VUSER_CONF_DIR/$name - echo "write_enable=$write_enable" >> $VUSER_CONF_DIR/$name - echo "anon_upload_enable=$upload_enable" >> $VUSER_CONF_DIR/$name - echo "anon_other_write_enable=$others_enable" >> $VUSER_CONF_DIR/$name - echo "anon_umask=$_umask" >> $VUSER_CONF_DIR/$name - echo "anon_max_rate=$maxrate" >> $VUSER_CONF_DIR/$name - - if ! [ -d "$home" ]; then - mkdir -p $home - chown $owner:$owner $home - chmod -R a+w $home - fi -} - -VAR=/var/run/vsftpd -CONF=$VAR/vsftpd.conf -VUSER_DB=$VAR/vusers -VUSER_CONF_DIR=$VAR/users -CHROOT_DIR=$VAR/empty - -rm -f $CONF -rm -rf $VUSER_CONF_DIR $CHROOT_DIR - -mkdir -m 0755 -p $VAR -mkdir -p $VUSER_CONF_DIR -mkdir -p $CHROOT_DIR - -config_load vsftpd - -# listen -output_const "background" YES -output_field listen port "listen_port" 21 -output_field listen dataport "ftp_data_port" 20 - -# global -output_bool global 'write' "write_enable" 1 -output_bool global download "download_enable" 1 -output_bool global dirlist "dirlist_enable" 1 -output_bool global lsrecurse "ls_recurse_enable" -output_bool global dotfile "force_dot_files" -output_field global 'umask' "local_umask" 022 - -ftpd_banner=`get_value global ftpd_banner` -if ! [ -z $ftpd_banner ]; then - output_const "ftpd_banner" $ftpd_banner -fi - -output_bool global dirmessage "dirmessage_enable" -output_field global dirmsgfile "message_file" ".message" - -# connection -output_bool connection portmode "port_enable" 1 -output_bool connection pasvmode "pasv_enable" 1 - -ascii_download_enable=NO -ascii_upload_enable=NO -case `get_value connection ascii` in -download) - ascii_download_enable=YES -;; -upload) - ascii_upload_enable=YES -;; -both) - ascii_download_enable=YES - ascii_upload_enable=YES -esac -output_const "ascii_download_enable" $ascii_download_enable -output_const "ascii_upload_enable" $ascii_upload_enable - -output_field connection idletimeout "idle_session_timeout" 1800 -output_field connection conntimeout "connect_timeout" 120 -output_field connection dataconntimeout "data_connection_timeout" 120 -output_field connection maxclient "max_clients" 0 -output_field connection maxperip "max_per_ip" 0 -output_field connection maxrate "local_max_rate" 0 - -max_login_fails=`get_value connection maxretry` -if [ -z $max_login_fails ] || [ $max_login_fails -lt 1 ]; then max_login_fails=3; fi -output_const "max_login_fails" $max_login_fails - -# anonymous -ftp_username=`get_value anonymous ftp_username` -if [ -z $ftp_username ]; then ftp_username="ftp"; fi -output_const "ftp_username" $ftp_username - -mkdir -m 0755 -p /home/$ftp_username -chown $ftp_username:$ftp_username /home/$ftp_username - -output_const "anon_world_readable_only" NO - -anon_enable=`get_value anonymous enabled` -if [ x$anon_enable = x1 ]; then - anon_root=`get_value anonymous root` - if [ -z $anon_root ]; then anon_root="/home/ftp"; fi - - output_const "anonymous_enable" YES - output_const "no_anon_password" YES - output_const "anon_root" $anon_root - output_field anonymous 'umask' "anon_umask" 022 - output_field anonymous maxrate "anon_max_rate" 0 - output_bool anonymous writemkdir "anon_mkdir_write_enable" 0 - output_bool anonymous upload "anon_upload_enable" 0 - output_bool anonymous others "anon_other_write_enable" 0 - - mkdir -p $anon_root - chown -R $ftp_username:$ftp_username $anon_root -else - output_const "anonymous_enable" NO -fi - -# log -output_bool log syslog "syslog_enable" 0 -output_bool log xreflog "xferlog_enable" 0 -output_field log 'file' "vsftpd_log_file" 0 - -# users -vuser_enabled=0 -if [ x`get_value vuser enabled` = x1 ]; then - vuser_enabled=1 - - output_const "guest_enable" YES - output_field vuser username "guest_username" ftp - - output_const "uci_config_name" vsftpd - output_const "user_config_dir" "/var/run/vsftpd/users" - - config_foreach vusers_iterate user -fi - -# local user -output_const "allow_writeable_chroot" YES -output_const "secure_chroot_dir" $CHROOT_DIR - -local_root=$(get_value 'local' root) -if ! [ -z $local_root ]; then - output_const "local_root" $local_root -fi - -local_enable=`get_value 'local' enabled` -if [ x$local_enable = x1 ]; then - output_const "local_enable" YES -else - if [ $vuser_enabled = 1 ]; then - output_const "local_enable" YES - else - output_const "local_enable" NO - fi -fi - -exit 0 diff --git a/package/lean/vsftpd-alt/files/vsftpd_wrapper b/package/lean/vsftpd-alt/files/vsftpd_wrapper deleted file mode 100755 index 73a2ef4ea..000000000 --- a/package/lean/vsftpd-alt/files/vsftpd_wrapper +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# Copyright (C) 2005-2016 Weijie Gao - -. $IPKG_INSTROOT/lib/functions.sh - -VAR=/var/run/vsftpd -CONF=$VAR/vsftpd.conf -listen_addr= -enabled= -param="" -listen4= -listen6= -protocol=$1 - -config_load vsftpd - -if ! [ -f $CONF ]; then - echo "/usr/bin/vsftpd_prepare must be executed before this script" - exit 1 -fi - -case $protocol in -ipv6) - config_get enabled listen enable6 - - if [ x$enabled != x1 ]; then exit 0; fi - - config_get listen_addr listen ipv6 - param="6" - listen4="-olisten=NO" - listen6="-olisten_ipv6=YES" - - if [ -z $listen_addr ]; then listen_addr="::"; fi -;; -*) - config_get enabled listen enable4 - - if [ x$enabled != x1 ]; then exit 0; fi - - config_get listen_addr listen ipv4 - listen4="-olisten=YES" - listen6="-olisten_ipv6=NO" - - if [ -z $listen_addr ]; then listen_addr="0.0.0.0"; fi -esac - -exec /usr/sbin/vsftpd "-olisten_address${param}=${listen_addr}" ${listen4} ${listen6} $CONF - -exit 1 diff --git a/package/lean/vsftpd-alt/patches/001-destdir.patch b/package/lean/vsftpd-alt/patches/001-destdir.patch deleted file mode 100644 index b0274ac86..000000000 --- a/package/lean/vsftpd-alt/patches/001-destdir.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -22,6 +22,8 @@ OBJS = main.o utility.o prelogin.o ftpcm - seccompsandbox.o - - -+DESTDIR = -+ - .c.o: - $(CC) -c $*.c $(CFLAGS) $(IFLAGS) - -@@ -29,21 +31,20 @@ vsftpd: $(OBJS) - $(CC) -o vsftpd $(OBJS) $(LINK) $(LDFLAGS) $(LIBS) - - install: -- if [ -x /usr/local/sbin ]; then \ -- $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \ -- else \ -- $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi -- if [ -x /usr/local/man ]; then \ -- $(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \ -- $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \ -- elif [ -x /usr/share/man ]; then \ -- $(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \ -- $(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \ -- else \ -- $(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \ -- $(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi -- if [ -x /etc/xinetd.d ]; then \ -- $(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi -+ mkdir -p $(DESTDIR)/usr/sbin -+ $(INSTALL) -m 755 vsftpd $(DESTDIR)/usr/sbin/ -+ mkdir -p $(DESTDIR)/usr/share/man/man8 -+ $(INSTALL) -m 644 vsftpd.8 $(DESTDIR)/usr/share/man/man8/ -+ mkdir -p $(DESTDIR)/usr/share/man/man5 -+ $(INSTALL) -m 644 vsftpd.conf.5 $(DESTDIR)/usr/share/man/man5/ -+ mkdir -p $(DESTDIR)/etc/xinetd.d -+ $(INSTALL) -m 644 xinetd.d/vsftpd $(DESTDIR)/etc/xinetd.d/ -+ -+uninstall: -+ rm -f $(DESTDIR)/usr/sbin/vsftpd -+ rm -f $(DESTDIR)/usr/share/man/man8/vsftpd.8 -+ rm -f $(DESTDIR)/usr/share/man/man5/vsftpd.conf.5 -+ rm -f $(DESTDIR)/etc/xinetd.d/vsftpd - - clean: - rm -f *.o *.swp vsftpd diff --git a/package/lean/vsftpd-alt/patches/002-find_libs.patch b/package/lean/vsftpd-alt/patches/002-find_libs.patch deleted file mode 100644 index 4e95248ce..000000000 --- a/package/lean/vsftpd-alt/patches/002-find_libs.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -8,8 +8,8 @@ CFLAGS = -O2 -fPIE -fstack-protector --p - -D_FORTIFY_SOURCE=2 \ - #-pedantic -Wconversion - --LIBS = `./vsf_findlibs.sh` --LINK = -Wl,-s -+LIBS = -lcrypt -lnsl -luci -+LINK = - LDFLAGS = -fPIE -pie -Wl,-z,relro -Wl,-z,now - - OBJS = main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \ diff --git a/package/lean/vsftpd-alt/patches/003-chroot.patch b/package/lean/vsftpd-alt/patches/003-chroot.patch deleted file mode 100644 index 8965da417..000000000 --- a/package/lean/vsftpd-alt/patches/003-chroot.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/tunables.c -+++ b/tunables.c -@@ -254,7 +254,7 @@ tunables_load_defaults() - /* -rw------- */ - tunable_chown_upload_mode = 0600; - -- install_str_setting("/usr/share/empty", &tunable_secure_chroot_dir); -+ install_str_setting("/var/run/vsftpd", &tunable_secure_chroot_dir); - install_str_setting("ftp", &tunable_ftp_username); - install_str_setting("root", &tunable_chown_username); - install_str_setting("/var/log/xferlog", &tunable_xferlog_file); diff --git a/package/lean/vsftpd-alt/patches/004-disable-capabilities.patch b/package/lean/vsftpd-alt/patches/004-disable-capabilities.patch deleted file mode 100644 index 7aa6330b8..000000000 --- a/package/lean/vsftpd-alt/patches/004-disable-capabilities.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/sysdeputil.c -+++ b/sysdeputil.c -@@ -165,6 +165,9 @@ - #endif - /* END config */ - -+#undef VSF_SYSDEP_HAVE_CAPABILITIES -+#undef VSF_SYSDEP_HAVE_LIBCAP -+ - /* PAM support - we include our own dummy version if the system lacks this */ - #include - diff --git a/package/lean/vsftpd-alt/patches/005-disable-pam.patch b/package/lean/vsftpd-alt/patches/005-disable-pam.patch deleted file mode 100644 index ebb72447f..000000000 --- a/package/lean/vsftpd-alt/patches/005-disable-pam.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/builddefs.h -+++ b/builddefs.h -@@ -2,7 +2,7 @@ - #define VSF_BUILDDEFS_H - - #undef VSF_BUILD_TCPWRAPPERS --#define VSF_BUILD_PAM -+#undef VSF_BUILD_PAM - #undef VSF_BUILD_SSL - - #endif /* VSF_BUILDDEFS_H */ diff --git a/package/lean/vsftpd-alt/patches/006-musl-compatibility.patch b/package/lean/vsftpd-alt/patches/006-musl-compatibility.patch deleted file mode 100644 index 9eefec79d..000000000 --- a/package/lean/vsftpd-alt/patches/006-musl-compatibility.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/sysdeputil.c -+++ b/sysdeputil.c -@@ -58,7 +58,9 @@ - #define VSF_SYSDEP_HAVE_SHADOW - #define VSF_SYSDEP_HAVE_USERSHELL - #define VSF_SYSDEP_HAVE_LIBCAP --#define VSF_SYSDEP_HAVE_UTMPX -+#if defined(__GLIBC__) || defined(__UCLIBC__) -+ #define VSF_SYSDEP_HAVE_UTMPX -+#endif - - #define __USE_GNU - #include diff --git a/package/lean/vsftpd-alt/patches/007-CVE-2015-1419.patch b/package/lean/vsftpd-alt/patches/007-CVE-2015-1419.patch deleted file mode 100644 index 173027a1d..000000000 --- a/package/lean/vsftpd-alt/patches/007-CVE-2015-1419.patch +++ /dev/null @@ -1,98 +0,0 @@ -Description: CVE-2015-1419: config option deny_file is not handled correctly -Author: Marcus Meissner -Origin: https://bugzilla.novell.com/show_bug.cgi?id=CVE-2015-1419 -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776922 -Last-Update: 2015-02-24 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/ls.c -+++ b/ls.c -@@ -7,6 +7,7 @@ - * Would you believe, code to handle directory listing. - */ - -+#include - #include "ls.h" - #include "access.h" - #include "defs.h" -@@ -243,11 +244,42 @@ vsf_filename_passes_filter(const struct - struct mystr temp_str = INIT_MYSTR; - struct mystr brace_list_str = INIT_MYSTR; - struct mystr new_filter_str = INIT_MYSTR; -+ struct mystr normalize_filename_str = INIT_MYSTR; -+ const char *normname; -+ const char *path; - int ret = 0; - char last_token = 0; - int must_match_at_current_pos = 1; -+ - str_copy(&filter_remain_str, p_filter_str); -- str_copy(&name_remain_str, p_filename_str); -+ -+ /* normalize filepath */ -+ path = str_strdup(p_filename_str); -+ normname = realpath(path, NULL); -+ if (normname == NULL) -+ goto out; -+ str_alloc_text(&normalize_filename_str, normname); -+ -+ if (!str_isempty (&filter_remain_str) && !str_isempty(&normalize_filename_str)) { -+ if (str_get_char_at(p_filter_str, 0) == '/') { -+ if (str_get_char_at(&normalize_filename_str, 0) != '/') { -+ str_getcwd (&name_remain_str); -+ -+ if (str_getlen(&name_remain_str) > 1) /* cwd != root dir */ -+ str_append_char (&name_remain_str, '/'); -+ -+ str_append_str (&name_remain_str, &normalize_filename_str); -+ } -+ else -+ str_copy (&name_remain_str, &normalize_filename_str); -+ } else { -+ if (str_get_char_at(p_filter_str, 0) != '{') -+ str_basename (&name_remain_str, &normalize_filename_str); -+ else -+ str_copy (&name_remain_str, &normalize_filename_str); -+ } -+ } else -+ str_copy(&name_remain_str, &normalize_filename_str); - - while (!str_isempty(&filter_remain_str) && *iters < VSFTP_MATCHITERS_MAX) - { -@@ -360,6 +392,9 @@ vsf_filename_passes_filter(const struct - ret = 0; - } - out: -+ free(normname); -+ free(path); -+ str_free(&normalize_filename_str); - str_free(&filter_remain_str); - str_free(&name_remain_str); - str_free(&temp_str); ---- a/str.c -+++ b/str.c -@@ -711,3 +711,14 @@ str_replace_unprintable(struct mystr* p_ - } - } - -+void -+str_basename (struct mystr* d_str, const struct mystr* path) -+{ -+ static struct mystr tmp; -+ -+ str_copy (&tmp, path); -+ str_split_char_reverse(&tmp, d_str, '/'); -+ -+ if (str_isempty(d_str)) -+ str_copy (d_str, path); -+} ---- a/str.h -+++ b/str.h -@@ -100,6 +100,7 @@ void str_replace_unprintable(struct myst - int str_atoi(const struct mystr* p_str); - filesize_t str_a_to_filesize_t(const struct mystr* p_str); - unsigned int str_octal_to_uint(const struct mystr* p_str); -+void str_basename (struct mystr* d_str, const struct mystr* path); - - /* PURPOSE: Extract a line of text (delimited by \n or EOF) from a string - * buffer, starting at character position 'p_pos'. The extracted line will diff --git a/package/lean/vsftpd-alt/patches/100-add-uci-auth-support.patch b/package/lean/vsftpd-alt/patches/100-add-uci-auth-support.patch deleted file mode 100644 index 3b805645d..000000000 --- a/package/lean/vsftpd-alt/patches/100-add-uci-auth-support.patch +++ /dev/null @@ -1,127 +0,0 @@ ---- a/parseconf.c -+++ b/parseconf.c -@@ -178,6 +178,7 @@ - { "rsa_private_key_file", &tunable_rsa_private_key_file }, - { "dsa_private_key_file", &tunable_dsa_private_key_file }, - { "ca_certs_file", &tunable_ca_certs_file }, -+ { "uci_config_name", &tunable_uci_config_name }, - { "cmds_denied", &tunable_cmds_denied }, - { 0, 0 } - }; ---- a/sysdeputil.c -+++ b/sysdeputil.c -@@ -175,6 +175,8 @@ - #include - #include - #include -+/* Include uci headers */ -+#include - #endif - - /* Prefer libcap based capabilities over raw syscall capabilities */ -@@ -237,14 +239,24 @@ - void vsf_remove_uwtmp(void); - - #ifndef VSF_SYSDEP_HAVE_PAM -+static int -+vsf_sysdep_check_auth_uci(struct mystr* p_user_str, -+ const struct mystr* p_pass_str); -+ - int - vsf_sysdep_check_auth(struct mystr* p_user_str, - const struct mystr* p_pass_str, - const struct mystr* p_remote_host) - { - const char* p_crypted; -- const struct passwd* p_pwd = getpwnam(str_getbuf(p_user_str)); -+ const struct passwd* p_pwd; - (void) p_remote_host; -+ -+ /* Try UCI first */ -+ if (vsf_sysdep_check_auth_uci(p_user_str, p_pass_str)) -+ return 1; -+ -+ p_pwd = getpwnam(str_getbuf(p_user_str)); - if (p_pwd == NULL) - { - return 0; -@@ -300,6 +312,51 @@ - return 0; - } - -+static int -+vsf_sysdep_check_auth_uci(struct mystr* p_user_str, -+ const struct mystr* p_pass_str) -+{ -+ struct uci_context *uctx; -+ struct uci_package *pkg = NULL; -+ struct uci_element *e = NULL; -+ struct uci_section *s; -+ const char *user, *passwd; -+ int ret = 0; -+ -+ if (!tunable_uci_config_name) -+ return 0; -+ -+ uctx = uci_alloc_context(); -+ if (!uctx) -+ return 0; -+ -+ if (uci_load(uctx, tunable_uci_config_name, &pkg) != UCI_OK) -+ goto cleanup; -+ -+ uci_foreach_element(&pkg->sections, e) -+ { -+ s = uci_to_section(e); -+ if (!(user = uci_lookup_option_string(uctx, s, "username"))) -+ continue; -+ if (vsf_sysutil_strcmp(user, str_getbuf(p_user_str))) -+ continue; -+ if (!(passwd = uci_lookup_option_string(uctx, s, "password"))) -+ continue; -+ if (!vsf_sysutil_strcmp(passwd, str_getbuf(p_pass_str))) -+ { -+ ret = 1; -+ break; -+ } -+ } -+ -+cleanup: -+ if (pkg) -+ uci_unload(uctx, pkg); -+ uci_free_context(uctx); -+ -+ return ret; -+} -+ - #else /* VSF_SYSDEP_HAVE_PAM */ - - #if (defined(__sun) || defined(__hpux)) && \ ---- a/tunables.c -+++ b/tunables.c -@@ -142,6 +142,7 @@ - const char* tunable_rsa_private_key_file; - const char* tunable_dsa_private_key_file; - const char* tunable_ca_certs_file; -+const char* tunable_uci_config_name; - - static void install_str_setting(const char* p_value, const char** p_storage); - -@@ -288,6 +289,7 @@ - install_str_setting(0, &tunable_rsa_private_key_file); - install_str_setting(0, &tunable_dsa_private_key_file); - install_str_setting(0, &tunable_ca_certs_file); -+ install_str_setting(0, &tunable_uci_config_name); - } - - void ---- a/tunables.h -+++ b/tunables.h -@@ -144,6 +144,7 @@ - extern const char* tunable_rsa_private_key_file; - extern const char* tunable_dsa_private_key_file; - extern const char* tunable_ca_certs_file; -+extern const char* tunable_uci_config_name; - extern const char* tunable_cmds_denied; - - #endif /* VSF_TUNABLES_H */ diff --git a/package/lean/vsftpd-alt/patches/101-enable-chroot-on-writable-dir.patch b/package/lean/vsftpd-alt/patches/101-enable-chroot-on-writable-dir.patch deleted file mode 100644 index c7a6b05fd..000000000 --- a/package/lean/vsftpd-alt/patches/101-enable-chroot-on-writable-dir.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/secutil.c -+++ b/secutil.c -@@ -135,10 +135,12 @@ - if ((options & VSF_SECUTIL_OPTION_CHROOT) && - !(options & VSF_SECUTIL_OPTION_ALLOW_WRITEABLE_ROOT)) - { -+ /* - if (vsf_sysutil_write_access("/")) - { - die("vsftpd: refusing to run with writable root inside chroot()"); - } -+ */ - } - } diff --git a/package/lean/vsftpd-alt/patches/102-keep-local-user-rights.patch b/package/lean/vsftpd-alt/patches/102-keep-local-user-rights.patch deleted file mode 100644 index f5ee25d76..000000000 --- a/package/lean/vsftpd-alt/patches/102-keep-local-user-rights.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/twoprocess.c -+++ b/twoprocess.c -@@ -426,7 +426,7 @@ - */ - vsf_set_die_if_parent_dies(); - priv_sock_set_child_context(p_sess); -- if (tunable_guest_enable && !anon) -+ if (tunable_guest_enable && !anon && !str_getpwnam(p_user_str)) - { - p_sess->is_guest = 1; - /* Remap to the guest user */

    37!1hBF+Yb`9A1r-v%l;>} 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

    J-bvjw^0HD)+ktk%{FQ&j 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�#3|8M0^8q;Uzw) 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 z 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