├── .gitignore ├── old ├── surge │ ├── readme.md │ ├── SSEncrypt.module │ └── surge.conf ├── tools │ ├── src │ │ ├── genhttpBlacklist.sh │ │ ├── genhttpWhitelist.sh │ │ ├── genall.sh │ │ ├── gensocksBlacklist.sh │ │ ├── gensocksWhitelist.sh │ │ ├── mono.min.js │ │ ├── mono-unicode.min.js │ │ ├── mono.js │ │ ├── mono-unicode.js │ │ ├── blackList │ │ ├── make.py │ │ └── whiteList │ ├── test │ │ ├── blackgear-mono_pac-unicode.pac │ │ ├── test.js │ │ └── blackgear-mono_pac.pac │ ├── tools │ │ ├── pkulist2iplist.py │ │ ├── apnic2iplist.py │ │ └── grep.py │ ├── LICENSE │ └── README.md ├── src │ ├── global.pac │ ├── oldfiles │ │ ├── whitelists_lite.pac │ │ ├── omega.md │ │ └── whitelist.pac │ ├── WhiteListsOmegaPolicy.md │ └── httpBlackList.pac └── README.md ├── gfwlist2pac ├── resources │ ├── ban.txt │ ├── __init__.py │ ├── builtin.txt │ ├── custom.txt │ └── proxy.pac ├── __init__.py ├── __init__.pyc └── main.py ├── gen.sh ├── README.md ├── LICENSE └── main.py /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /old/surge/readme.md: -------------------------------------------------------------------------------- 1 | #1030 功能添加 2 | -------------------------------------------------------------------------------- /gfwlist2pac/resources/ban.txt: -------------------------------------------------------------------------------- 1 | tw 2 | hk 3 | github.com 4 | -------------------------------------------------------------------------------- /gfwlist2pac/resources/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | -------------------------------------------------------------------------------- /gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | python ./main.py -i gfwlist.txt -f proxy.pa -p "PROXY 127.0.0.1:8087" 3 | -------------------------------------------------------------------------------- /gfwlist2pac/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | __all__ = ['main'] 5 | -------------------------------------------------------------------------------- /gfwlist2pac/__init__.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1a57danc3/gfvvlist/HEAD/gfwlist2pac/__init__.pyc -------------------------------------------------------------------------------- /old/surge/SSEncrypt.module: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1a57danc3/gfvvlist/HEAD/old/surge/SSEncrypt.module -------------------------------------------------------------------------------- /old/tools/src/genhttpBlacklist.sh: -------------------------------------------------------------------------------- 1 | python ./make.py -b ./blackList -p "PROXY 127.0.0.1:7777" -o ./output/httpBlackList.pac 2 | -------------------------------------------------------------------------------- /old/tools/src/genhttpWhitelist.sh: -------------------------------------------------------------------------------- 1 | python ./make.py -b ./whiteList -p "PROXY 127.0.0.1:7777" -o ./output/httpWhiteList.pac 2 | -------------------------------------------------------------------------------- /gfwlist2pac/resources/builtin.txt: -------------------------------------------------------------------------------- 1 | google.com 2 | google.co.jp 3 | google.co.hk 4 | googleapis.com 5 | github.com 6 | wikipedia.org 7 | -------------------------------------------------------------------------------- /old/tools/src/genall.sh: -------------------------------------------------------------------------------- 1 | sh ./gensocksWhitelist.sh 2 | sh ./gensocksBlacklist.sh 3 | sh ./genhttpWhitelist.sh 4 | sh ./genhttpBlacklist.sh 5 | -------------------------------------------------------------------------------- /old/tools/test/blackgear-mono_pac-unicode.pac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1a57danc3/gfvvlist/HEAD/old/tools/test/blackgear-mono_pac-unicode.pac -------------------------------------------------------------------------------- /old/tools/src/gensocksBlacklist.sh: -------------------------------------------------------------------------------- 1 | python ./make.py -b ./blackList -p "SOCKS5 127.0.0.1:1080;SOCKS 127.0.0.1:1080" -o ./output/socksBlackList.pac 2 | -------------------------------------------------------------------------------- /old/tools/src/gensocksWhitelist.sh: -------------------------------------------------------------------------------- 1 | python ./make.py -b ./whiteList -p "SOCKS5 127.0.0.1:1080;SOCKS 127.0.0.1:1080" -o ./output/socksWhiteList.pac 2 | -------------------------------------------------------------------------------- /gfwlist2pac/resources/custom.txt: -------------------------------------------------------------------------------- 1 | cloudfront.net 2 | googlecode.com 3 | verisign.com 4 | qpic.cn 5 | translate-tab.com 6 | layervault.com 7 | list-manage.com 8 | goagent.co 9 | -------------------------------------------------------------------------------- /old/src/global.pac: -------------------------------------------------------------------------------- 1 | function FindProxyForURL(url, host) { 2 | if (host == '127.0.0.1' || host == 'localhost') 3 | return 'DIRECT' 4 | return 'SOCKS 127.0.0.1:1080'; 5 | } 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | SOURCE: 2 | 3 | https://raw.githubusercontent.com/1a57danc3/gfvvlist/master/pac.txt 4 | 5 | [![Powered by DartNode](https://dartnode.com/branding/DN-Open-Source-sm.png)](https://dartnode.com "Powered by DartNode - Free VPS for Open Source") 6 | 7 | -------------------------------------------------------------------------------- /old/tools/tools/pkulist2iplist.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # https://its.pku.edu.cn/oper/liebiao.jsp 4 | 5 | with open('pkulist') as f: 6 | data = f.read() 7 | 8 | for line in filter(lambda x: '.' in x, data.splitlines()): 9 | item = line.split(' ') 10 | print('{}/{}'.format(item[0], sum([bin(int(x)).count('1') for x in item[-1].split('.')]))) 11 | -------------------------------------------------------------------------------- /old/tools/tools/apnic2iplist.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # -*- coding: utf-8 -*- 3 | # https://ftp.apnic.net/stats/apnic/delegated-apnic-latest 4 | 5 | with open('delegated-apnic-latest') as f: 6 | data = f.read() 7 | 8 | for line in filter(lambda x: x.startswith('apnic|CN|ipv4'), data.splitlines()): 9 | item = line.split('|') 10 | print('{}/{}'.format(item[3], 33 - int(item[4]).bit_length())) 11 | -------------------------------------------------------------------------------- /old/tools/src/mono.min.js: -------------------------------------------------------------------------------- 1 | function r(r,e){return r[e]=1,r}function FindProxyForURL(r,u){if(isPlainHostName(u))return i;var a=u,f=0;do{if(n.hasOwnProperty(a))return e;if(t.hasOwnProperty(a))return i;f=u.indexOf(".",f)+1,a=u.substring(f)}while(f>0);var o=dnsResolve(u);if(!o)return e;if(o.indexOf(":")>=0)return i;var l=o.split("."),d=(255&l[1])<<8|255&l[2],c=l[0],h=_[c],p=s[c];if(0===h)return e;if(16===p)return i;var v=0,w=h.length,L=w>>1;do h[L]>d?w=L:v=L,L=v+w>>1;while(w>v+1);return d-h[v]>>p[v]===0?i:e}var e=__proxyList__,i="DIRECT",t="__whiteList__".split("|").reduce(r,{}),n="__blackList__".split("|").reduce(r,{}),_=__codeList__,s=__maskList__; -------------------------------------------------------------------------------- /old/tools/tools/grep.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import requests 3 | import re 4 | from collections import Counter 5 | 6 | def main(url): 7 | webpage = requests.get(url).text 8 | domains = re.findall(r'src="https?://[\w.]*\.(\w*\.\w*)/', webpage) 9 | results = Counter() 10 | for domain in domains: 11 | results[domain] += 1 12 | for result in results.most_common(): 13 | print(result[0]) 14 | 15 | if __name__ == '__main__': 16 | if len(sys.argv) == 1: 17 | pass 18 | elif sys.argv[1].startswith('http'): 19 | main(sys.argv[1]) 20 | else: 21 | main('http://' + sys.argv[1]) 22 | -------------------------------------------------------------------------------- /old/tools/src/mono-unicode.min.js: -------------------------------------------------------------------------------- 1 | function r(r,e){return r[e]=1,r}function FindProxyForURL(r,a){if(isPlainHostName(a))return t;var u=a,o=0;do{if(n.hasOwnProperty(u))return e;if(i.hasOwnProperty(u))return t;o=a.indexOf(".",o)+1,u=a.substring(o)}while(o>0);var f=dnsResolve(a);if(!f)return e;if(f.indexOf(":")>=0)return t;var d=f.split("."),l=(255&d[1])<<8|255&d[2],c=d[0],h=_[c],p=s[c];if(""===h)return e;if("10"===p)return t;var v=0,w=h.length,L=w>>1;do h[L].charCodeAt(0)>l?w=L:v=L,L=v+w>>1;while(w>v+1);return l-h[v].charCodeAt(0)>>parseInt(p[v],16)===0?t:e}var e=__proxyList__,t="DIRECT",i="__whiteList__".split("|").reduce(r,{}),n="__blackList__".split("|").reduce(r,{}),_=__codeList__,s=__maskList__; -------------------------------------------------------------------------------- /gfwlist2pac/resources/proxy.pac: -------------------------------------------------------------------------------- 1 | // Generated by gfwlist2pac 2 | // https://github.com/clowwindy/gfwlist2pac 3 | 4 | var domains = __DOMAINS__; 5 | 6 | var proxy = __PROXY__; // 'PROXY' or 'SOCKS5' or 'HTTPS' 7 | 8 | var direct = 'DIRECT;'; 9 | 10 | var hasOwnProperty = Object.hasOwnProperty; 11 | 12 | function FindProxyForURL(url, host) { 13 | var suffix; 14 | var pos = host.lastIndexOf('.'); 15 | pos = host.lastIndexOf('.', pos - 1); 16 | while(1) { 17 | if (pos == -1) { 18 | if (hasOwnProperty.call(domains, host)) { 19 | return proxy; 20 | } else { 21 | return direct; 22 | } 23 | } 24 | suffix = host.substring(pos + 1); 25 | if (hasOwnProperty.call(domains, suffix)) { 26 | return proxy; 27 | } 28 | pos = host.lastIndexOf('.', pos - 1); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 breakwa11 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /old/tools/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright (c) 2015 Daniel 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /old/tools/test/test.js: -------------------------------------------------------------------------------- 1 | function loadPAC(path) { 2 | var vm = require("vm"); 3 | var fs = require("fs"); 4 | var data = fs.readFileSync(path); 5 | var context = { 6 | dnsResolve: function(host) { return host; }, 7 | isPlainHostName: function(host) { return false; }, 8 | isInNet: function(ip, ipstart, ipmask) { return false; }, 9 | shExpMatch: function(a, b) { return false; }, 10 | console: console 11 | }; 12 | vm.runInNewContext(data, context); 13 | return context.FindProxyForURL; 14 | } 15 | 16 | function ipList(repeat) { 17 | var iplist = []; 18 | for (var i = 0; i < repeat; i++) { 19 | var atom = Array(); 20 | atom.push(Math.random()*256>>0); 21 | atom.push(Math.random()*256>>0); 22 | atom.push(Math.random()*256>>0); 23 | atom.push(Math.random()*256>>0); 24 | iplist.push(atom.join(".")); 25 | } 26 | return iplist; 27 | } 28 | 29 | function speedTest(path, iplist) { 30 | console.log("Testing pac generated by " + path); 31 | var pac = loadPAC(path); 32 | var result = []; 33 | var time = process.hrtime(); 34 | for (var i = 0; i < iplist.length; i++) { 35 | result.push(pac("", iplist[i])); 36 | } 37 | var diff = process.hrtime(time); 38 | console.log("avg: " + ((diff[0] * 1e3 + diff[1] * 1e-6) * 1e3 / iplist.length).toFixed(3) + "us"); 39 | return result; 40 | } 41 | 42 | var repeat = 3000000; 43 | iplist = ipList(repeat); 44 | 45 | oldresult = speedTest("blackgear-mono_pac.pac", iplist); 46 | newresult = speedTest("blackgear-mono_pac-unicode.pac", iplist); 47 | speedTest("Leask-Flora_Pac-mod.pac", iplist); 48 | speedTest("usufu-Flora_Pac.pac", iplist); 49 | 50 | for (var i = 0; i < repeat; i++) { 51 | if (oldresult[i] !== newresult[i]) { 52 | throw "Err"; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /old/tools/src/mono.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 BlackGear 3 | * https://github.com/BlackGear/Mono_PAC 4 | */ 5 | function merge(obj, key) { 6 | obj[key] = 1; 7 | return obj; 8 | } 9 | 10 | var tunnel = __proxyList__; 11 | var direct = "DIRECT"; 12 | var whiteList = "__whiteList__".split("|").reduce(merge, {}); 13 | var blackList = "__blackList__".split("|").reduce(merge, {}); 14 | var codeList = __codeList__; 15 | var maskList = __maskList__; 16 | 17 | function FindProxyForURL(url, host) { 18 | if (isPlainHostName(host)) { 19 | return direct; 20 | } 21 | 22 | var domain = host; 23 | var pos = 0; 24 | 25 | do { 26 | if (blackList.hasOwnProperty(domain)) { 27 | return tunnel; 28 | } 29 | if (whiteList.hasOwnProperty(domain)) { 30 | return direct; 31 | } 32 | pos = host.indexOf(".", pos) + 1; 33 | domain = host.substring(pos); 34 | } while (pos > 0); 35 | 36 | var IP = dnsResolve(host); 37 | 38 | if (!IP) { 39 | return tunnel; 40 | } 41 | 42 | if (IP.indexOf(":") >= 0) { 43 | return direct; 44 | } 45 | 46 | var atom = IP.split("."); 47 | var code = ((atom[1] & 0xff) << 8) | ((atom[2] & 0xff)); 48 | var hash = atom[0]; 49 | 50 | var codeLine = codeList[hash]; 51 | var maskLine = maskList[hash]; 52 | 53 | if (codeLine === 0) { 54 | return tunnel; 55 | } 56 | 57 | if (maskLine === 16) { 58 | return direct; 59 | } 60 | 61 | var min = 0; 62 | var max = codeLine.length; 63 | var mid = max >> 1; 64 | 65 | do { 66 | if (codeLine[mid] > code) { 67 | max = mid; 68 | } else { 69 | min = mid; 70 | } 71 | mid = (min + max) >> 1; 72 | } while (min + 1 < max); 73 | 74 | 75 | if (code - codeLine[min] >> maskLine[min] === 0) { 76 | return direct; 77 | } 78 | 79 | return tunnel; 80 | } 81 | -------------------------------------------------------------------------------- /old/tools/src/mono-unicode.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 BlackGear 3 | * https://github.com/BlackGear/Mono_PAC 4 | */ 5 | function merge(obj, key) { 6 | obj[key] = 1; 7 | return obj; 8 | } 9 | 10 | var tunnel = __proxyList__; 11 | var direct = "DIRECT"; 12 | var whiteList = "__whiteList__".split("|").reduce(merge, {}); 13 | var blackList = "__blackList__".split("|").reduce(merge, {}); 14 | var codeList = __codeList__; 15 | var maskList = __maskList__; 16 | 17 | function FindProxyForURL(url, host) { 18 | if (isPlainHostName(host)) { 19 | return direct; 20 | } 21 | 22 | var domain = host; 23 | var pos = 0; 24 | 25 | do { 26 | if (blackList.hasOwnProperty(domain)) { 27 | return tunnel; 28 | } 29 | if (whiteList.hasOwnProperty(domain)) { 30 | return direct; 31 | } 32 | pos = host.indexOf(".", pos) + 1; 33 | domain = host.substring(pos); 34 | } while (pos > 0); 35 | 36 | var IP = dnsResolve(host); 37 | 38 | if (!IP) { 39 | return tunnel; 40 | } 41 | 42 | if (IP.indexOf(":") >= 0) { 43 | return direct; 44 | } 45 | 46 | var atom = IP.split("."); 47 | var code = ((atom[1] & 0xff) << 8) | ((atom[2] & 0xff)); 48 | var hash = atom[0]; 49 | 50 | var codeLine = codeList[hash]; 51 | var maskLine = maskList[hash]; 52 | 53 | if (codeLine === "") { 54 | return tunnel; 55 | } 56 | 57 | if (maskLine === "10") { 58 | return direct; 59 | } 60 | 61 | var min = 0; 62 | var max = codeLine.length; 63 | var mid = max >> 1; 64 | 65 | do { 66 | if (codeLine[mid].charCodeAt(0) > code) { 67 | max = mid; 68 | } else { 69 | min = mid; 70 | } 71 | mid = (min + max) >> 1; 72 | } while (min + 1 < max); 73 | 74 | if (code - codeLine[min].charCodeAt(0) >> parseInt(maskLine[min], 16) === 0) { 75 | return direct; 76 | } 77 | 78 | return tunnel; 79 | } 80 | -------------------------------------------------------------------------------- /old/tools/src/blackList: -------------------------------------------------------------------------------- 1 | # TLDs 2 | 3 | 4 | # Adobe 5 | typekit.net 6 | 7 | # Adzerk 8 | adzerk.net 9 | 10 | # Akamai 11 | akamai.net 12 | akamaiedge.net 13 | akamaihd.net 14 | edgesuite.net 15 | edgekey.net 16 | srip.net 17 | akamaitechnologies.com 18 | akamaitechnologies.fr 19 | akamaitech.net 20 | akadns.net 21 | akam.net 22 | akamaistream.net 23 | 24 | # Amazon 25 | amazonaws.com 26 | cloudfront.net 27 | 28 | # Apple 29 | apple.com 30 | mzstatic.com 31 | 32 | # Automattic 33 | wordpress.com 34 | wordpress.org 35 | wp.com 36 | gravatar.com 37 | 38 | # Baidu 39 | tieba.baidu.com 40 | 41 | # Booklink 42 | booklink.me 43 | 44 | # DMM 45 | dmm.com 46 | 47 | # Dropbox 48 | dropbox.com 49 | dropboxusercontent.com 50 | dropboxforum.com 51 | dropboxstatic.com 52 | 53 | # Facebook 54 | facebook.com 55 | fbcdn.net 56 | thefacebook.com 57 | facebook.net 58 | tfbnw.net 59 | fb.me 60 | 61 | # Fastly 62 | fastly.net 63 | 64 | # Github 65 | github.com 66 | github.io 67 | githubusercontent.com 68 | 69 | # Google 70 | google.com 71 | googleapis.com 72 | googlehosted.com 73 | googlezip.net 74 | youtube.com 75 | youtu.be 76 | youtube-nocookie.com 77 | ytimg.com 78 | googlevideo.com 79 | googledrive.com 80 | appspot.com 81 | googleusercontent.com 82 | ggpht.com 83 | gstatic.com 84 | gwtproject.org 85 | googlesource.com 86 | blogger.com 87 | blogspot.com 88 | chromium.org 89 | android.com 90 | googlecode.com 91 | keyhole.com 92 | chrome.com 93 | googlesyndication.com 94 | googlelabs.com 95 | g.co 96 | gmail.com 97 | goo.gl 98 | googlemail.com 99 | google-analytics.com 100 | googleadservices.com 101 | panoramio.com 102 | webmproject.org 103 | golang.org 104 | feedburner.com 105 | androidify.com 106 | gmodules.com 107 | withgoogle.com 108 | polymer-project.org 109 | google.org 110 | 111 | # Microsoft 112 | azurewebsites.net 113 | 114 | # Pushbullet 115 | pushbullet.com 116 | 117 | # Stackoverflow 118 | stackoverflow.com 119 | sstatic.net 120 | 121 | # Tinypic 122 | tinypic.com 123 | 124 | # Twitter 125 | twitter.com 126 | t.co 127 | tweetdeck.com 128 | twimg.com 129 | 130 | # Twitpic 131 | twitpic.com 132 | 133 | # Wikimedia 134 | wikipedia.org 135 | wikimedia.org 136 | mediawiki.org 137 | wikibooks.org 138 | wikidata.org 139 | wikimediafoundation.org 140 | wikinews.org 141 | wikiquote.org 142 | wikisource.org 143 | wikiversity.org 144 | wikivoyage.org 145 | wiktionary.org 146 | 147 | # Yahoo 148 | yahoo.com 149 | yimg.com 150 | flickr.com 151 | staticflickr.com 152 | -------------------------------------------------------------------------------- /old/README.md: -------------------------------------------------------------------------------- 1 | 概述 2 | ----- 3 | 4 | 著名的 [autoproxy.pac](https://autoproxy.org) (GFW List) 是一個 GFW 黑名單,訪問名單中網站需要通過代理,不在名單中的網站直接訪問。有效使用黑名單,維護者和用戶都需要時常更新此名單,否則可能不能訪問最近被牆的網站。這些不便之處是推廣翻牆運動的阻礙之一。 5 | 6 | 白名單的方法是白名單中的網站不走代理,其它網站全部通過代理訪問。白名單的優點是對維護的要求非常低。第一次安裝後,即使很長時間不更新,也不會出現網站打不開的問題。當然,用戶會要付出稍多一些流量。 7 | 8 | 現實上 GFW 已經開始白名單化,國外稍微有點意思的網站大都已經被牆,或者隨時可能被牆。因此作者認爲有必要開始維護一份白名單的 pac 文件。 9 | 10 | ***作者收錄的國內 CDN 和“雲”相關的域名還非常有限。希望同學們能夠幫助補充。感謝。*** 11 | 12 | 使用方法 13 | --------- 14 | Chrome用戶推薦使用 moew 的新作 [Chrome擴展程序Proxy SwitchyOmega](https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif) 15 | 16 | 17 | 下載 whitelist.pac 文件後,修改代理服務器的 ip 地址和代理類型。然後將瀏覽器的代理設置中指向 whitelist.pac。 18 | 19 | 20 | ``` 21 | var ip_address = '127.0.0.1:1080'; // 需要更換成有效的域名 22 | ``` 23 | 24 | ``` 25 | var proxy_type = 'SOCKS5'; // or 'HTTPS' or 'PROXY' 26 | ``` 27 | 28 | 當 `proxy_type` 選爲 `HTTPS` 時,此 pac 文件適合用於 [Google Chrome 的安全代理](http://www.chromium.org/developers/design-documents/secure-web-proxy)。 29 | 30 | 31 | 適用於Proxy SwitchyOmega的快速存檔恢復 `http://7rfkd6.com5.z0.glb.clouddn.com/WhiteListsOmegaOptions.bak` 32 | 33 | 或者 34 | 35 | `http://7rfkd6.com5.z0.glb.clouddn.com/BlackListsOmegaOptions.bak` 36 | 37 | ![使用 pac 文件](http://ww2.sinaimg.cn/large/6d9bd6a5gw1eogqk48awgj21ci10yk01.jpg) 38 | 39 | 40 | ### Shadowsocks 代理設置 41 | 42 | 43 | 假設 Shadowsocks 開的端口是1080 44 | 45 | ``` 46 | 'SOCKS5 127.0.0.1:1080'; 47 | ``` 48 | 49 | 50 | 只需要將下面那個地址,直接貼入上圖中 “Auto Config URL” 那個位置,, 51 | 52 | 53 | 白名單 54 | 55 | Socks5 Proxy Policy 56 | ``` 57 | http://7tsyhm.com5.z0.glb.clouddn.com/socksWhiteList.pac 58 | ``` 59 | 60 | Http Proxy Policy 61 | ``` 62 | http://7tsyhm.com5.z0.glb.clouddn.com/httpWhiteList.pac 63 | ``` 64 | 65 | 66 | 黑名單 67 | 68 | Socks5 Proxy Policy 69 | ``` 70 | http://7tsyhm.com5.z0.glb.clouddn.com/socksBlackList.pac 71 | ``` 72 | 73 | 74 | Http Proxy Policy 75 | ``` 76 | http://7tsyhm.com5.z0.glb.clouddn.com/httpBlackList.pac 77 | ``` 78 | 79 | 80 | 全局 81 | ``` 82 | http://7tsyhm.com5.z0.glb.clouddn.com/global.pac 83 | ``` 84 | 85 | 86 | Google Chrome 安全代理 (SSL Secure Proxy) 87 | ----------- 88 | 89 | _Firefox 好像也有支持安全代理了。作者還沒有測試過。_ 90 | 91 | 92 | Google Chrome 已經支持基於 https 和 SPDY 的安全代理。其原理和效果與 SSH,shadowsocks 以及 goagent 類似: 93 | 94 | * 將普通流量封裝在加密通道之中,這樣 GFW 就看不見流量的內容; 95 | * 域名的解析在代理服務器這端完成,所以本地不用擔心域名污染的問題。配合 pac 的使用,可以享受國內 CDN 的服務。達到一次設置完全免維護; 96 | * 本地不從服務器端取得 ip,只適合瀏覽器內的應用,不適合 VoIP,網絡遊戲等應用。 97 | 98 | 優點有: 99 | 100 | * 在 PC 和 Mac 上 Chrome 已經原生支持,不需要依賴額外的客戶端; 101 | * 封裝的協議是 https 或 SPDY,GFW 完全沒有 DPI 識別的可能,這是翻牆終極方案的一部分; 102 | * 由 Google 支持,客戶端和服務器端的軟件成熟並且穩定,未來更新也可靠。 103 | 104 | 現有的缺點有: 105 | 106 | * 暫時只適用於 PC 和 Mac 上的 Chrome。 Android 的客戶端有待開發。iOS 客戶端的可行性暫時還不清楚。 107 | 108 | ***有興趣開發客戶端的同學,可以考慮編譯封裝 @tatsuhiro-t 的 C 程序庫 [spdylay](https://github.com/tatsuhiro-t/spdylay) 。*** 109 | 110 | ``` 111 | shrpx --client-proxy [-b ] [-f ] 112 | [OPTIONS...] [ ] 113 | ``` 114 | 115 | 116 | 其它節省流量的方法 117 | ---------------- 118 | 119 | 120 | 由於白名單的流量消耗較黑名單要高一些,在瀏覽器中安裝下面的擴展,在提高網頁瀏覽速度的同時,也能節省不少流量。 121 | 122 | ##### 屏蔽廣告: Adblock Plus + Easylist + Chinalist 123 | 124 | 在 Firefox 或 Chrome 中安裝 [Adblock Plus](http://adblockplus.org/en/) (ABP) 擴展,並在 ABP 的控制面板中加入 Easylist 和 [Chinalist](http://code.google.com/p/adblock-chinalist/)。這樣可以有效的過濾廣告大部分網站和網頁。 125 | 126 | `注意`:下載擴展和 ChinaList 的時候可能需要打開全局翻牆的代理設置 。 127 | 128 | ##### 屏蔽Flash: FlashControl 或 FlashBlock 129 | 130 | 在 Chrome 中安裝 [FlashControl](https://chrome.google.com/webstore/detail/flashcontrol/mfidmkgnfgnkihnjeklbekckimkipmoe) 或在 Firefox 中安裝 [FlashBlock](https://addons.mozilla.org/zh-cn/firefox/addon/flashblock/),可以達到屏蔽 Flash 的效果。需要打開 Flash,比如視頻,只要在被屏蔽的 Flash 上點擊一次。 131 | 132 | ![Chrome 的擴展](http://7xj4mk.com5.z0.glb.clouddn.com/chrome-extension.png) 133 | 134 | ------ 135 | 136 | 本項目基於 [mono_pac](https://github.com/blackgear/mono_pac) 137 | 本文檔修改於n0gfwall0@gmail.com 138 | 139 | MIT License 140 | 141 | 142 | 需要改進的地方歡迎fork & pull request / issue ~ 143 | 144 | 145 | 附錄 146 | 147 | 148 | Shadowsocks for iOS 149 | 150 | 本地監聽端口爲`SOCKS 127.0.0.1:1983` 151 | -------------------------------------------------------------------------------- /old/src/oldfiles/whitelists_lite.pac: -------------------------------------------------------------------------------- 1 | var direct = 'DIRECT'; 2 | var httpProxy = 'PROXY 127.0.0.1:7777; DIRECT'; 3 | 4 | var directList = [ 5 | "", 6 | "sinaapp.com", 7 | "ku6.cn", 8 | "tmall.com", 9 | "yupoo.com", 10 | "z4.cnzz.com", 11 | "cmbchina.com", 12 | "sohu.com", 13 | "alipayobjects.com", 14 | "weibo.com", 15 | "51buy.com", 16 | "taobao.com", 17 | "tdimg.com", 18 | "tudouui.com", 19 | "www.google-analytics.com", 20 | "apple.com", 21 | "icbc.com.cn", 22 | "xnimg.cn", 23 | "dpfile.com", 24 | "bdstatic.com", 25 | "ddimg.cn", 26 | "etao.com", 27 | "sinajs.cn", 28 | "paipai.com", 29 | "alipay.com", 30 | "xiaonei.com", 31 | "bdimg.com", 32 | "sogou.com", 33 | "alicdn.com", 34 | "boc.cn", 35 | "dianping.com", 36 | "douban.com", 37 | "settings.crashlytics.com", 38 | "360buyimg.com", 39 | "yihaodian.com", 40 | "xnpic.com", 41 | "95599.cn", 42 | "ccb.com", 43 | "spdb.com.cn", 44 | "macromedia.com", 45 | "fbstatic-a.akamaihd.net", 46 | "amazon.cn", 47 | "95559.com.cn", 48 | "igcdn-photos-e-a.akamaihd.net", 49 | "tbcdn.cn", 50 | "ku6.com", 51 | "163.com", 52 | "icloud.com", 53 | "youdao.com", 54 | "ku6cdn.com", 55 | "kaixin001.com", 56 | "sinaimg.cn", 57 | "bankofchina.com", 58 | "ifanr.cn", 59 | "ifanr.com", 60 | "upaiyun.com", 61 | "baidu.com", 62 | "stats.g.doubleclick.net", 63 | "tudou.com", 64 | "paipaiimg.com", 65 | "rrimg.com", 66 | "icson.com", 67 | "e.crashlytics.com", 68 | "cnzz.mmstat.com", 69 | "youku.com", 70 | "aicdn.com", 71 | "solidot.org", 72 | "bing.com", 73 | "12306.cn", 74 | "bankcomm.com", 75 | "zhihu.com", 76 | "sina.com.cn", 77 | "3qavl2wyewcyenee.igsonar.com", 78 | "xunlei.com", 79 | "yihaodianimg.com", 80 | "upyun.com", 81 | "alimama.cn", 82 | "alimama.com", 83 | "t.cn", 84 | "kankan.com", 85 | "dangdang.com", 86 | "ykimg.com", 87 | "bing.com.cn", 88 | "mmcdn.cn", 89 | "z.cn", 90 | "jd.com", 91 | "apple.com.cn", 92 | "ku6img.com", 93 | "360buy.com", 94 | "taobaocdn.com", 95 | "qq.com", 96 | "renren.com", 97 | "huaban.com", 98 | "soku.com", 99 | "abchina.com", 100 | "hexun.com", 101 | "kanimg.com" 102 | ]; 103 | 104 | var directAcc = {}; 105 | for (var i = 0; i < directList.length; i += 1) { 106 | directAcc[directList[i]] = true; 107 | } 108 | 109 | var topLevel = { 110 | "org": true, 111 | "ac": true, 112 | "co": true, 113 | "com": true, 114 | "edu": true, 115 | "gov": true, 116 | "net": true 117 | }; 118 | 119 | // hostIsIP determines whether a host address is an IP address and whether 120 | // it is private. Currenly only handles IPv4 addresses. 121 | function hostIsIP(host) { 122 | var part = host.split('.'); 123 | if (part.length != 4) { 124 | return [false, false]; 125 | } 126 | var n; 127 | for (var i = 3; i >= 0; i--) { 128 | if (part[i].length === 0 || part[i].length > 3) { 129 | return [false, false]; 130 | } 131 | n = Number(part[i]); 132 | if (isNaN(n) || n < 0 || n > 255) { 133 | return [false, false]; 134 | } 135 | } 136 | if (part[0] == '127' || part[0] == '10' || (part[0] == '192' && part[1] == '168')) { 137 | return [true, true]; 138 | } 139 | if (part[0] == '172') { 140 | n = Number(part[1]); 141 | if (16 <= n && n <= 31) { 142 | return [true, true]; 143 | } 144 | } 145 | return [true, false]; 146 | } 147 | 148 | function host2Domain(host) { 149 | var arr, isIP, isPrivate; 150 | arr = hostIsIP(host); 151 | isIP = arr[0]; 152 | isPrivate = arr[1]; 153 | if (isPrivate) { 154 | return ""; 155 | } 156 | if (isIP) { 157 | return host; 158 | } 159 | 160 | var lastDot = host.lastIndexOf('.'); 161 | if (lastDot === -1) { 162 | return ""; // simple host name has no domain 163 | } 164 | // Find the second last dot 165 | dot2ndLast = host.lastIndexOf(".", lastDot-1); 166 | if (dot2ndLast === -1) 167 | return host; 168 | 169 | var part = host.substring(dot2ndLast+1, lastDot); 170 | if (topLevel[part]) { 171 | var dot3rdLast = host.lastIndexOf(".", dot2ndLast-1); 172 | if (dot3rdLast === -1) { 173 | return host; 174 | } 175 | return host.substring(dot3rdLast+1); 176 | } 177 | return host.substring(dot2ndLast+1); 178 | } 179 | 180 | function FindProxyForURL(url, host) { 181 | if (url.substring(0,4) == "ftp:") 182 | return direct; 183 | if (host.indexOf(".local", host.length - 6) !== -1) { 184 | return direct; 185 | } 186 | var domain = host2Domain(host); 187 | if (host.length == domain.length) { 188 | return directAcc[host] ? direct : httpProxy; 189 | } 190 | return (directAcc[host] || directAcc[domain]) ? direct : httpProxy; 191 | } 192 | -------------------------------------------------------------------------------- /gfwlist2pac/main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import pkgutil 5 | import urlparse 6 | import json 7 | import logging 8 | import urllib2 9 | from argparse import ArgumentParser 10 | 11 | __all__ = ['main'] 12 | 13 | 14 | gfwlist_url = 'https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt' 15 | 16 | 17 | def parse_args(): 18 | parser = ArgumentParser() 19 | parser.add_argument('-i', '--input', dest='input', 20 | help='path to gfwlist', metavar='GFWLIST') 21 | parser.add_argument('-f', '--file', dest='output', required=True, 22 | help='path to output pac', metavar='PAC') 23 | parser.add_argument('-p', '--proxy', dest='proxy', required=True, 24 | help='the proxy parameter in the pac file, for example,\ 25 | "SOCKS5 127.0.0.1:1080;"', metavar='PROXY') 26 | parser.add_argument('--user-rule', dest='user_rule', 27 | help='user rule file, which will be appended to gfwlist') 28 | return parser.parse_args() 29 | 30 | 31 | def decode_gfwlist(content): 32 | # decode base64 if have to 33 | try: 34 | if '.' in content: 35 | raise 36 | return content.decode('base64') 37 | except: 38 | return content 39 | 40 | 41 | def get_hostname(something): 42 | try: 43 | # quite enough for GFW 44 | if not something.startswith('http:'): 45 | something = 'http://' + something 46 | r = urlparse.urlparse(something) 47 | return r.hostname 48 | except Exception as e: 49 | logging.error(e) 50 | return None 51 | 52 | 53 | def add_domain_to_set(s, something): 54 | hostname = get_hostname(something) 55 | if hostname is not None: 56 | if hostname.startswith('.'): 57 | hostname = hostname.lstrip('.') 58 | if hostname.endswith('/'): 59 | hostname = hostname.rstrip('/') 60 | if hostname: 61 | s.add(hostname) 62 | 63 | 64 | def parse_gfwlist(content, user_rule=None): 65 | builtin_rules = pkgutil.get_data('gfwlist2pac', 'resources/builtin.txt').splitlines(False) 66 | gfwlist = content.splitlines(False) 67 | if user_rule: 68 | gfwlist.extend(user_rule.splitlines(False)) 69 | domains = set(builtin_rules) 70 | for line in gfwlist: 71 | if line.find('.*') >= 0: 72 | continue 73 | elif line.find('*') >= 0: 74 | line = line.replace('*', '/') 75 | if line.startswith('!'): 76 | continue 77 | elif line.startswith('['): 78 | continue 79 | elif line.startswith('@'): 80 | # ignore white list 81 | continue 82 | elif line.startswith('||'): 83 | add_domain_to_set(domains, line.lstrip('||')) 84 | elif line.startswith('|'): 85 | add_domain_to_set(domains, line.lstrip('|')) 86 | elif line.startswith('.'): 87 | add_domain_to_set(domains, line.lstrip('.')) 88 | else: 89 | add_domain_to_set(domains, line) 90 | return domains 91 | 92 | def reduce_domains(domains): 93 | # reduce 'www.google.com' to 'google.com' 94 | # remove invalid domains 95 | tld_content = pkgutil.get_data('gfwlist2pac', 'resources/tld.txt') 96 | tlds = set(tld_content.splitlines(False)) 97 | new_domains = set() 98 | for domain in domains: 99 | domain_parts = domain.split('.') 100 | last_root_domain = None 101 | for i in xrange(0, len(domain_parts)): 102 | root_domain = '.'.join(domain_parts[len(domain_parts) - i - 1:]) 103 | if i == 0: 104 | if not tlds.__contains__(root_domain): 105 | # root_domain is not a valid tld 106 | break 107 | last_root_domain = root_domain 108 | if tlds.__contains__(root_domain): 109 | continue 110 | else: 111 | break 112 | if last_root_domain is not None: 113 | new_domains.add(last_root_domain) 114 | return new_domains 115 | 116 | 117 | def generate_pac(domains, proxy): 118 | # render the pac file 119 | proxy_content = pkgutil.get_data('gfwlist2pac', 'resources/proxy.pac') 120 | domains_dict = {} 121 | for domain in domains: 122 | domains_dict[domain] = 1 123 | proxy_content = proxy_content.replace('__PROXY__', json.dumps(str(proxy))) 124 | proxy_content = proxy_content.replace('__DOMAINS__', json.dumps(domains_dict, indent=2)) 125 | return proxy_content 126 | 127 | 128 | def main(): 129 | args = parse_args() 130 | user_rule = None 131 | if (args.input): 132 | with open(args.input, 'rb') as f: 133 | content = f.read() 134 | else: 135 | print 'Downloading gfwlist from %s' % gfwlist_url 136 | content = urllib2.urlopen(gfwlist_url, timeout=10).read() 137 | if args.user_rule: 138 | userrule_parts = urlparse.urlsplit(args.user_rule) 139 | if not userrule_parts.scheme or not userrule_parts.netloc: 140 | # It's not an URL, deal it as local file 141 | with open(args.user_rule, 'rb') as f: 142 | user_rule = f.read() 143 | else: 144 | # Yeah, it's an URL, try to download it 145 | print 'Downloading user rules file from %s' % args.user_rule 146 | user_rule = urllib2.urlopen(args.user_rule, timeout=10).read() 147 | 148 | content = decode_gfwlist(content) 149 | domains = parse_gfwlist(content, user_rule) 150 | domains = reduce_domains(domains) 151 | pac_content = generate_pac(domains, args.proxy) 152 | with open(args.output, 'wb') as f: 153 | f.write(pac_content) 154 | 155 | 156 | if __name__ == '__main__': 157 | main() 158 | 159 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: utf-8 -*- 3 | 4 | import pkgutil 5 | import urlparse 6 | import json 7 | import logging 8 | import urllib2 9 | from argparse import ArgumentParser 10 | import copy 11 | 12 | __all__ = ['main'] 13 | 14 | 15 | gfwlist_url = 'https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt' # ban with gfw, you need proxy to access 16 | 17 | 18 | def parse_args(): 19 | parser = ArgumentParser() 20 | parser.add_argument('-i', '--input', dest='input', 21 | help='path to gfwlist', metavar='GFWLIST') 22 | parser.add_argument('-f', '--file', dest='output', required=True, 23 | help='path to output pac', metavar='PAC') 24 | parser.add_argument('-p', '--proxy', dest='proxy', required=True, 25 | help='the proxy parameter in the pac file, for example,\ 26 | "SOCKS5 127.0.0.1:1080;"', metavar='PROXY') 27 | parser.add_argument('--user-rule', dest='user_rule', 28 | help='user rule file, which will be appended to gfwlist') 29 | return parser.parse_args() 30 | 31 | 32 | def decode_gfwlist(content): 33 | # decode base64 if have to 34 | try: 35 | if '.' in content: 36 | raise 37 | return content.decode('base64') 38 | except: 39 | return content 40 | 41 | 42 | def get_hostname(something): 43 | try: 44 | # quite enough for GFW 45 | if not something.startswith('http:'): 46 | something = 'http://' + something 47 | r = urlparse.urlparse(something) 48 | return r.hostname 49 | except Exception as e: 50 | logging.error(e) 51 | return None 52 | 53 | 54 | def add_domain_to_set(s, something): 55 | hostname = get_hostname(something) 56 | if hostname is not None: 57 | if hostname.startswith('.'): 58 | hostname = hostname.lstrip('.') 59 | if hostname.endswith('/'): 60 | hostname = hostname.rstrip('/') 61 | if hostname: 62 | s.add(hostname) 63 | 64 | 65 | def parse_gfwlist(content, user_rule=None): 66 | builtin_rules = pkgutil.get_data('gfwlist2pac', 'resources/builtin.txt').splitlines(False) 67 | gfwlist = content.splitlines(False) 68 | if user_rule: 69 | gfwlist.extend(user_rule.splitlines(False)) 70 | domains = set(builtin_rules) 71 | for line in gfwlist: 72 | if line.find('.*') >= 0: 73 | continue 74 | elif line.find('*') >= 0: 75 | line = line.replace('*', '/') 76 | if line.startswith('!'): 77 | continue 78 | elif line.startswith('['): 79 | continue 80 | elif line.startswith('@'): 81 | # ignore white list 82 | continue 83 | elif line.startswith('||'): 84 | add_domain_to_set(domains, line.lstrip('||')) 85 | elif line.startswith('|'): 86 | add_domain_to_set(domains, line.lstrip('|')) 87 | elif line.startswith('.'): 88 | add_domain_to_set(domains, line.lstrip('.')) 89 | else: 90 | add_domain_to_set(domains, line) 91 | return domains 92 | 93 | def reduce_domains(domains): 94 | # reduce 'www.google.com' to 'google.com' 95 | # remove invalid domains 96 | tld_content = pkgutil.get_data('gfwlist2pac', 'resources/tld.txt') 97 | tlds = set(tld_content.splitlines(False)) 98 | cus_content = pkgutil.get_data('gfwlist2pac', 'resources/custom.txt') 99 | cuss = cus_content.splitlines(False) 100 | ban_content = pkgutil.get_data('gfwlist2pac', 'resources/ban.txt') 101 | bans = set(ban_content.splitlines(False)) 102 | new_domains = set() 103 | for cus in cuss: 104 | new_domains.add(cus) 105 | for domain in domains: 106 | domain_parts = domain.split('.') 107 | last_root_domain = None 108 | for i in xrange(0, len(domain_parts)): 109 | root_domain = '.'.join(domain_parts[len(domain_parts) - i - 1:]) 110 | if i == 0: 111 | if not tlds.__contains__(root_domain): 112 | # root_domain is not a valid tld 113 | break 114 | last_root_domain = root_domain 115 | if tlds.__contains__(root_domain): 116 | continue 117 | else: 118 | break 119 | if last_root_domain is not None \ 120 | and last_root_domain not in bans \ 121 | and last_root_domain not in new_domains: 122 | same = False 123 | for cus in new_domains: 124 | if len(cus) < len(last_root_domain): 125 | if cmp(cus[::-1] + '.', last_root_domain[::-1][0:len(cus)+1]) == 0 : 126 | same = True 127 | break 128 | elif len(cus) > len(last_root_domain): 129 | if cmp(last_root_domain[::-1] + '.', cus[::-1][0:len(last_root_domain)+1]) == 0 : 130 | new_domains.remove(cus) 131 | break 132 | if not same : 133 | new_domains.add(last_root_domain) 134 | return new_domains 135 | 136 | 137 | def generate_pac(domains, proxy): 138 | # render the pac file 139 | proxy_content = pkgutil.get_data('gfwlist2pac', 'resources/proxy.pac') 140 | domains_dict = {} 141 | for domain in domains: 142 | domains_dict[domain] = 1 143 | proxy_content = proxy_content.replace('__PROXY__', json.dumps(str(proxy))) 144 | proxy_content = proxy_content.replace('__DOMAINS__', json.dumps(domains_dict, indent=2)) 145 | return proxy_content 146 | 147 | 148 | def main(): 149 | args = parse_args() 150 | user_rule = None 151 | if (args.input): 152 | with open(args.input, 'r') as f: 153 | content = f.read() 154 | else: 155 | print 'Downloading gfwlist from %s' % gfwlist_url 156 | content = urllib2.urlopen(gfwlist_url, timeout=10).read() 157 | with open('gfwlist.txt', 'w') as f: 158 | f.write(content) 159 | if args.user_rule: 160 | userrule_parts = urlparse.urlsplit(args.user_rule) 161 | if not userrule_parts.scheme or not userrule_parts.netloc: 162 | # It's not an URL, deal it as local file 163 | with open(args.user_rule, 'rb') as f: 164 | user_rule = f.read() 165 | else: 166 | # Yeah, it's an URL, try to download it 167 | print 'Downloading user rules file from %s' % args.user_rule 168 | user_rule = urllib2.urlopen(args.user_rule, timeout=10).read() 169 | 170 | content = decode_gfwlist(content) 171 | domains = parse_gfwlist(content, user_rule) 172 | domains = reduce_domains(domains) 173 | pac_content = generate_pac(domains, args.proxy) 174 | with open(args.output, 'w') as f: 175 | f.write(pac_content) 176 | 177 | 178 | if __name__ == '__main__': 179 | main() 180 | 181 | -------------------------------------------------------------------------------- /old/tools/src/make.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | import argparse 4 | import json 5 | import sys 6 | 7 | class DomainTree(object): 8 | def __init__(self, name=''): 9 | self.name = name 10 | self.node = {} 11 | self.head = False 12 | self.list = [] 13 | 14 | def insert(self, domain): 15 | domains = domain.rsplit('.', 1) 16 | node = self.node.setdefault(domains[-1], DomainTree(domains[-1])) 17 | if len(domains) == 1: 18 | node.head = True 19 | else: 20 | node.insert(domains[0]) 21 | 22 | def reduce(self, suffix=''): 23 | suffix = self.name + '.' + suffix if suffix else self.name 24 | if self.head is True: 25 | self.list = [suffix] 26 | else: 27 | self.list = [] 28 | for name in self.node: 29 | self.node[name].reduce(suffix) 30 | self.list.extend(self.node[name].list) 31 | 32 | class RouteChain(object): 33 | def __init__(self): 34 | self.list = [] 35 | self.flag = True 36 | self.insert('0.0.0.0/8') 37 | self.insert('10.0.0.0/8') 38 | self.insert('127.0.0.0/8') 39 | self.insert('169.254.0.0/16') 40 | self.insert('172.16.0.0/12') 41 | self.insert('192.0.0.0/24') 42 | self.insert('192.0.2.0/24') 43 | self.insert('192.88.99.0/24') 44 | self.insert('192.168.0.0/16') 45 | self.insert('198.18.0.0/15') 46 | self.insert('198.51.100.0/24') 47 | self.insert('203.0.113.0/24') 48 | self.insert('224.0.0.0/4') 49 | self.insert('240.0.0.0/4') 50 | 51 | def __str__(self): 52 | self.reduce() 53 | line = [] 54 | for (addr, mask) in self.list: 55 | line.append('{}.{}.{}.{}/{}'.format( 56 | (addr >> 24) % 256, 57 | (addr >> 16) % 256, 58 | (addr >> 8) % 256, 59 | (addr >> 0) % 256, 60 | (33 - mask.bit_length()))) 61 | return '\n'.join(line) 62 | 63 | def __iter__(self): 64 | self.reduce() 65 | return iter(self.list) 66 | 67 | def insert(self, ipnet): 68 | self.flag = False 69 | addr, mask = ipnet.split('/') 70 | bits = addr.split('.') 71 | addr = 0 72 | for byte in bits: 73 | addr = (addr << 8) + int(byte) 74 | if '.' in mask: 75 | mask = sum([bin(int(x)).count('1') for x in mask.split('.')]) 76 | mask = 1 << 32 - int(mask) 77 | self.list.append((addr, mask)) 78 | 79 | def reduce(self): 80 | if self.flag: 81 | return 82 | self.list.sort(key=lambda x: x[0]) 83 | head = -1 84 | rule = [] 85 | for (addr, mask) in self.list: 86 | flag = addr + mask 87 | if head >= flag: 88 | continue 89 | if head >= addr: 90 | addr, _ = rule.pop() 91 | mask = flag - addr 92 | head = flag 93 | rule.append((addr, mask)) 94 | self.list = [] 95 | for (addr, mask) in rule: 96 | while mask > 0: 97 | head = 1 << mask.bit_length() - 1 98 | if addr + head >> 24 != addr >> 24: 99 | head = (((addr >> 24) + 1) << 24) - addr 100 | self.list.append((addr, head)) 101 | mask = mask - head 102 | addr = addr + head 103 | self.flag = True 104 | 105 | def load_config(data): 106 | lines = [] 107 | for line in data.splitlines(): 108 | line = line.split('#')[0].strip() 109 | if line: 110 | lines.append(line) 111 | return lines 112 | 113 | def load_integer_range(data): 114 | lines = load_config(data) 115 | route = RouteChain() 116 | for line in lines: 117 | route.insert(line) 118 | 119 | codelist = [[] for _ in range(256)] 120 | masklist = [[] for _ in range(256)] 121 | 122 | for (addr, mask) in route: 123 | atom = addr >> 24 124 | codelist[atom].append(addr >> 8 & 0x00FFFF) 125 | masklist[atom].append(mask.bit_length() - 9) 126 | 127 | codelist = json.dumps(codelist, separators=(',', ':')).replace('[]', '0') 128 | masklist = json.dumps(masklist, separators=(',', ':')).replace('[]', '0') 129 | 130 | return codelist, masklist 131 | 132 | def load_unicode_range(data): 133 | lines = load_config(data) 134 | route = RouteChain() 135 | for line in lines: 136 | route.insert(line) 137 | 138 | codelist = ['' for _ in range(256)] 139 | masklist = ['' for _ in range(256)] 140 | 141 | for (addr, mask) in route: 142 | atom = addr >> 24 143 | codelist[atom] += unichr(addr >> 8 & 0x00FFFF) 144 | masklist[atom] += hex(mask.bit_length() - 9)[2:] 145 | 146 | templist = ''.join(codelist) 147 | splitcode = 0 148 | while unichr(splitcode) in templist: 149 | splitcode += 1 150 | codelist = unichr(splitcode).join(codelist) 151 | codelist = codelist.replace(u'\u000A', '\\n').replace(u'\u000D', '\\r') 152 | codelist = codelist.replace(u'\u2028', '\u2028').replace(u'\u2029', '\u2029') 153 | codelist = u'"{}".split("{}")'.format(codelist, unichr(splitcode)) 154 | masklist = '.'.join(masklist) 155 | masklist = u'"{}".split(".")'.format(masklist) 156 | 157 | return codelist, masklist 158 | 159 | def load_domain(data): 160 | lines = load_config(data) 161 | domains = DomainTree() 162 | for line in lines: 163 | domains.insert(line) 164 | domains.reduce() 165 | return '|'.join(domains.list) 166 | 167 | def parse_args(): 168 | parser = argparse.ArgumentParser( 169 | prog='MonoPac', 170 | description='Mono Pac Generator', 171 | epilog='Across the Great Firewall, we can reach every corner in the world.') 172 | 173 | parser.add_argument('-b', dest='blacklist', default='blackList', type=argparse.FileType('r'), 174 | metavar='blackList', help='Path of the black list') 175 | parser.add_argument('-w', dest='whitelist', default='whiteList', type=argparse.FileType('r'), 176 | metavar='whiteList', help='Path of the white list') 177 | parser.add_argument('-i', dest='iplist', default='ipList', type=argparse.FileType('r'), 178 | metavar='ipList', help='Path of the iprange list') 179 | parser.add_argument('-p', dest='proxylist', required=True, metavar='proxyList', 180 | help='Proxy parameter in the pac file') 181 | parser.add_argument('-m', dest='unicode', action='store_true', 182 | help='Use unicode compression') 183 | parser.add_argument('-o', dest='output', default=sys.stdout, type=argparse.FileType('w'), 184 | metavar='pacFile', help='Path of the output pac file') 185 | 186 | return parser.parse_args() 187 | 188 | def main(): 189 | args = parse_args() 190 | 191 | proxylist = '"{}"'.format(args.proxylist) 192 | whitelist = load_domain(args.whitelist.read()) 193 | blacklist = load_domain(args.blacklist.read()) 194 | if args.unicode == False: 195 | payload = open('mono.min.js').read() 196 | codelist, masklist = load_integer_range(args.iplist.read()) 197 | else: 198 | payload = open('mono-unicode.min.js').read() 199 | codelist, masklist = load_unicode_range(args.iplist.read()) 200 | 201 | payload = payload.replace('__proxyList__', proxylist) 202 | payload = payload.replace('__whiteList__', whitelist) 203 | payload = payload.replace('__blackList__', blacklist) 204 | payload = payload.replace('__codeList__', codelist) 205 | payload = payload.replace('__maskList__', masklist) 206 | 207 | args.output.write(payload.encode('utf-8')) 208 | 209 | if __name__ == '__main__': 210 | main() 211 | -------------------------------------------------------------------------------- /old/surge/surge.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | # warning, notify, info, verbose 3 | skip-proxy = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,localhost,*.local 4 | bypass-tun = 192.168.0.0/16,10.0.0.0/8,172.16.0.0/12 5 | loglevel = notify 6 | dns-server = 119.29.29.29, 223.5.5.5, 114.114.114.114 7 | 8 | [Proxy] 9 | DIRECT = direct 10 | JP = custom,127.0.0.1,10086,rc4-md5,fuckgfw,http://7tsyhm.com5.z0.glb.clouddn.com/SSEncrypt.module 11 | 12 | [Proxy Group] 13 | Proxy = select, JP 14 | Direct = select, DIRECT 15 | 16 | [Rule] 17 | // iOS 18 | DOMAIN-SUFFIX,lcdn-registration.apple.com,DIRECT 19 | DOMAIN-SUFFIX,ls.apple.com,DIRECT 20 | 21 | // AD Block 22 | DOMAIN-KEYWORD,adsmogo,REJECT 23 | 24 | DOMAIN-SUFFIX,acs86.com,REJECT 25 | DOMAIN-SUFFIX,adcome.cn,REJECT 26 | DOMAIN-SUFFIX,adinfuse.com,REJECT 27 | DOMAIN-SUFFIX,admaster.com.cn,REJECT 28 | DOMAIN-SUFFIX,admob.com,REJECT 29 | DOMAIN-SUFFIX,adsage.cn,REJECT 30 | DOMAIN-SUFFIX,adsage.com,REJECT 31 | DOMAIN-SUFFIX,adsmogo.org,REJECT 32 | DOMAIN-SUFFIX,ads.mobclix.com,REJECT 33 | DOMAIN-SUFFIX,adview.cn,REJECT 34 | DOMAIN-SUFFIX,adwhirl.com,REJECT 35 | DOMAIN-SUFFIX,adwo.com,REJECT 36 | DOMAIN-SUFFIX,appads.com,REJECT 37 | DOMAIN-SUFFIX,domob.cn,REJECT 38 | DOMAIN-SUFFIX,domob.com.cn,REJECT 39 | DOMAIN-SUFFIX,domob.org,REJECT 40 | DOMAIN-SUFFIX,doubleclick.net,REJECT 41 | DOMAIN-SUFFIX,duomeng.cn,REJECT 42 | DOMAIN-SUFFIX,duomeng.net,REJECT 43 | DOMAIN-SUFFIX,duomeng.org,REJECT 44 | DOMAIN-SUFFIX,googeadsserving.cn,REJECT 45 | DOMAIN-SUFFIX,guomob.com,REJECT 46 | DOMAIN-SUFFIX,immob.cn,REJECT 47 | DOMAIN-SUFFIX,inmobi.com,REJECT 48 | DOMAIN-SUFFIX,mobads.baidu.com,REJECT 49 | DOMAIN-SUFFIX,mobads-logs.baidu.com,REJECT 50 | DOMAIN-SUFFIX,reachmax.cn,REJECT 51 | DOMAIN-SUFFIX,smartadserver.com,REJECT 52 | DOMAIN-SUFFIX,tapjoyads.com,REJECT 53 | DOMAIN-SUFFIX,umeng.co,REJECT 54 | DOMAIN-SUFFIX,umeng.com,REJECT 55 | DOMAIN-SUFFIX,umtrack.com,REJECT 56 | DOMAIN-SUFFIX,uyunad.com,REJECT 57 | DOMAIN-SUFFIX,xiaozhen.com,REJECT 58 | DOMAIN-SUFFIX,youmi.net,REJECT 59 | 60 | DOMAIN,adse.ximalaya.com,REJECT 61 | 62 | // All .cn sites 63 | DOMAIN-SUFFIX,cn,Direct 64 | 65 | // Top cn sites 66 | DOMAIN-KEYWORD,360buy,Direct 67 | DOMAIN-KEYWORD,alipay,Direct 68 | DOMAIN-KEYWORD,baidu,Direct 69 | DOMAIN-KEYWORD,taobao,Direct 70 | 71 | DOMAIN-SUFFIX,126.net,Direct 72 | DOMAIN-SUFFIX,163.com,Direct 73 | DOMAIN-SUFFIX,alicdn.com,Direct 74 | DOMAIN-SUFFIX,amap.com,Direct 75 | DOMAIN-SUFFIX,bdimg.com,Direct 76 | DOMAIN-SUFFIX,bdstatic.com,Direct 77 | DOMAIN-SUFFIX,cnbeta.com,Direct 78 | DOMAIN-SUFFIX,cnzz.com,Direct 79 | DOMAIN-SUFFIX,douban.com,Direct 80 | DOMAIN-SUFFIX,gtimg.com,Direct 81 | DOMAIN-SUFFIX,hao123.com,Direct 82 | DOMAIN-SUFFIX,haosou.com,Direct 83 | DOMAIN-SUFFIX,ifeng.com,Direct 84 | DOMAIN-SUFFIX,iqiyi.com,Direct 85 | DOMAIN-SUFFIX,jd.com,Direct 86 | DOMAIN-SUFFIX,netease.com,Direct 87 | DOMAIN-SUFFIX,qhimg.com,Direct 88 | DOMAIN-SUFFIX,qq.com,Direct 89 | DOMAIN-SUFFIX,sogou.com,Direct 90 | DOMAIN-SUFFIX,sohu.com,Direct 91 | DOMAIN-SUFFIX,soso.com,Direct 92 | DOMAIN-SUFFIX,suning.com,Direct 93 | DOMAIN-SUFFIX,tmall.com,Direct 94 | DOMAIN-SUFFIX,tudou.com,Direct 95 | DOMAIN-SUFFIX,weibo.com,Direct 96 | DOMAIN-SUFFIX,youku.com,Direct 97 | DOMAIN-SUFFIX,xunlei.com,Direct 98 | DOMAIN-SUFFIX,zhihu.com,Direct 99 | 100 | // Top blocked sites with tcp 101 | DOMAIN-KEYWORD,facebook,Proxy,force-remote-dns 102 | DOMAIN-KEYWORD,gmail,Proxy,force-remote-dns 103 | DOMAIN-KEYWORD,google,Proxy,force-remote-dns 104 | DOMAIN-KEYWORD,instagram,Proxy,force-remote-dns 105 | DOMAIN-KEYWORD,twitter,Proxy,force-remote-dns 106 | DOMAIN-KEYWORD,youtube,Proxy,force-remote-dns 107 | 108 | DOMAIN-SUFFIX,appspot.com,Proxy,force-remote-dns 109 | DOMAIN-SUFFIX,t.co,Proxy,force-remote-dns 110 | DOMAIN-SUFFIX,twimg.com,Proxy,force-remote-dns 111 | 112 | // Custom 113 | DOMAIN-SUFFIX,itsliveradio.apple.com,Proxy,force-remote-dns 114 | DOMAIN-SUFFIX,cdn-apple.com,Proxy 115 | DOMAIN-SUFFIX,dmm.co.jp,Proxy 116 | DOMAIN-SUFFIX,icloud.com,Proxy 117 | DOMAIN-SUFFIX,me.com,Proxy 118 | 119 | DOMAIN,aod.itunes.apple.com,Direct 120 | DOMAIN,osxapps.itunes.apple.com,Direct 121 | DOMAIN,streamingaudio.itunes.apple.com,Direct 122 | 123 | // Top blocked sites 124 | DOMAIN-KEYWORD,blogspot,Proxy 125 | 126 | DOMAIN-SUFFIX,apple.com,Proxy 127 | DOMAIN-SUFFIX,amazonaws.com,Proxy 128 | DOMAIN-SUFFIX,android.com,Proxy 129 | DOMAIN-SUFFIX,angularjs.org,Proxy 130 | DOMAIN-SUFFIX,akamaihd.net,Proxy 131 | DOMAIN-SUFFIX,amazon.com,Proxy 132 | DOMAIN-SUFFIX,bit.ly,Proxy 133 | DOMAIN-SUFFIX,bitbucket.org,Proxy 134 | DOMAIN-SUFFIX,blog.com,Proxy 135 | DOMAIN-SUFFIX,blogcdn.com,Proxy 136 | DOMAIN-SUFFIX,blogger.com,Proxy 137 | DOMAIN-SUFFIX,blogsmithmedia.com,Proxy 138 | DOMAIN-SUFFIX,box.net,Proxy 139 | DOMAIN-SUFFIX,bloomberg.com,Proxy 140 | DOMAIN-SUFFIX,chromium.org,Proxy 141 | DOMAIN-SUFFIX,cl.ly,Proxy 142 | DOMAIN-SUFFIX,cloudfront.net,Proxy 143 | DOMAIN-SUFFIX,cloudflare.com,Proxy 144 | DOMAIN-SUFFIX,cocoapods.org,Proxy 145 | DOMAIN-SUFFIX,crashlytics.com,Proxy 146 | DOMAIN-SUFFIX,dribbble.com,Proxy 147 | DOMAIN-SUFFIX,dropbox.com,Proxy 148 | DOMAIN-SUFFIX,dropboxstatic.com,Proxy 149 | DOMAIN-SUFFIX,dropboxusercontent.com,Proxy 150 | DOMAIN-SUFFIX,docker.com,Proxy 151 | DOMAIN-SUFFIX,duckduckgo.com,Proxy 152 | DOMAIN-SUFFIX,digicert.com,Proxy 153 | DOMAIN-SUFFIX,dnsimple.com,Proxy 154 | DOMAIN-SUFFIX,edgecastcdn.net,Proxy 155 | DOMAIN-SUFFIX,engadget.com,Proxy 156 | DOMAIN-SUFFIX,eurekavpt.com,Proxy 157 | DOMAIN-SUFFIX,fb.me,Proxy 158 | DOMAIN-SUFFIX,fbcdn.net,Proxy 159 | DOMAIN-SUFFIX,fc2.com,Proxy 160 | DOMAIN-SUFFIX,feedburner.com,Proxy 161 | DOMAIN-SUFFIX,fabric.io,Proxy 162 | DOMAIN-SUFFIX,flickr.com,Proxy 163 | DOMAIN-SUFFIX,fastly.net,Proxy 164 | DOMAIN-SUFFIX,ggpht.com,Proxy 165 | DOMAIN-SUFFIX,github.com,Proxy 166 | DOMAIN-SUFFIX,github.io,Proxy 167 | DOMAIN-SUFFIX,githubusercontent.com,Proxy 168 | DOMAIN-SUFFIX,golang.org,Proxy 169 | DOMAIN-SUFFIX,goo.gl,Proxy 170 | DOMAIN-SUFFIX,gstatic.com,Proxy 171 | DOMAIN-SUFFIX,godaddy.com,Proxy 172 | DOMAIN-SUFFIX,gravatar.com,Proxy 173 | DOMAIN-SUFFIX,imageshack,Proxy 174 | DOMAIN-SUFFIX,imgur.com,Proxy 175 | DOMAIN-SUFFIX,jshint.com,Proxy 176 | DOMAIN-SUFFIX,ift.tt,Proxy 177 | DOMAIN-SUFFIX,itunes.com,Proxy 178 | DOMAIN-SUFFIX,j.mp,Proxy 179 | DOMAIN-SUFFIX,kat.cr,Proxy 180 | DOMAIN-SUFFIX,linode.com,Proxy 181 | DOMAIN-SUFFIX,linkedin.com,Proxy 182 | DOMAIN-SUFFIX,licdn.com,Proxy 183 | DOMAIN-SUFFIX,lithium.com,Proxy 184 | DOMAIN-SUFFIX,megaupload.com,Proxy 185 | DOMAIN-SUFFIX,mobile01.com,Proxy 186 | DOMAIN-SUFFIX,modmyi.com,Proxy 187 | DOMAIN-SUFFIX,mzstatic.com,Proxy 188 | DOMAIN-SUFFIX,nytimes.com,Proxy 189 | DOMAIN-SUFFIX,name.com,Proxy 190 | DOMAIN-SUFFIX,openvpn.net,Proxy 191 | DOMAIN-SUFFIX,openwrt.org,Proxy 192 | DOMAIN-SUFFIX,ow.ly,Proxy 193 | DOMAIN-SUFFIX,pinboard.in,Proxy 194 | DOMAIN-SUFFIX,ssl-images-amazon.com,Proxy 195 | DOMAIN-SUFFIX,sstatic.net,Proxy 196 | DOMAIN-SUFFIX,stackoverflow.com,Proxy 197 | DOMAIN-SUFFIX,staticflickr.com,Proxy 198 | DOMAIN-SUFFIX,squarespace.com,Proxy 199 | DOMAIN-SUFFIX,symcd.com,Proxy 200 | DOMAIN-SUFFIX,symcb.com,Proxy 201 | DOMAIN-SUFFIX,symauth.com,Proxy 202 | DOMAIN-SUFFIX,ubnt.com,Proxy 203 | DOMAIN-SUFFIX,thepiratebay.org,Proxy 204 | DOMAIN-SUFFIX,tumblr.com,Proxy 205 | DOMAIN-SUFFIX,twitch.tv,Proxy 206 | DOMAIN-SUFFIX,wikipedia.com,Proxy 207 | DOMAIN-SUFFIX,wikipedia.org,Proxy 208 | DOMAIN-SUFFIX,wikimedia.org,Proxy 209 | DOMAIN-SUFFIX,wordpress.com,Proxy 210 | DOMAIN-SUFFIX,wsj.com,Proxy 211 | DOMAIN-SUFFIX,wsj.net,Proxy 212 | DOMAIN-SUFFIX,wp.com,Proxy 213 | DOMAIN-SUFFIX,vimeo.com,Proxy 214 | DOMAIN-SUFFIX,youtu.be,Proxy 215 | DOMAIN-SUFFIX,ytimg.com,Proxy 216 | 217 | DOMAIN-SUFFIX,netflix.com,Proxy 218 | DOMAIN-SUFFIX,netflix.net,Proxy 219 | DOMAIN-SUFFIX,nflxext.com,Proxy 220 | DOMAIN-SUFFIX,nflximg.com,Proxy 221 | DOMAIN-SUFFIX,nflximg.net,Proxy 222 | DOMAIN-SUFFIX,nflxvideo.net,Proxy 223 | 224 | // Telegram 225 | IP-CIDR,91.108.4.0/22,Proxy,no-resolve 226 | IP-CIDR,91.108.56.0/22,Proxy,no-resolve 227 | IP-CIDR,109.239.140.0/24,Proxy,no-resolve 228 | IP-CIDR,149.154.160.0/20,Proxy,no-resolve 229 | 230 | // LAN 231 | IP-CIDR,10.0.0.0/8,DIRECT 232 | IP-CIDR,127.0.0.0/8,DIRECT 233 | IP-CIDR,172.16.0.0/12,DIRECT 234 | IP-CIDR,192.168.0.0/16,DIRECT 235 | 236 | GEOIP,CN,Direct 237 | FINAL,Proxy 238 | -------------------------------------------------------------------------------- /old/tools/README.md: -------------------------------------------------------------------------------- 1 | # Mono PAC 2 | 3 | A PAC(Proxy auto-config) file generator working with fetched China IP range, which helps walk around GFW. 4 | 5 | Mono generates a much smaller and faster PAC file than any other project does. 6 | 7 | This PAC file is designed to be hosted on your Openwrt routers for your mobile device, which means the size and the efficiency have the highest priority. When it's hosted on your VPS with gzip or used on your computer, we don't care that things. 8 | 9 | The minimal unit of the APNIC's IP allocation is 256, which means it's safe to do `IP >> 8` on IP range data. If you use data from some otherthings, modify my codes first. 10 | 11 | ## Installation 12 | 13 | ``` 14 | $ git clone https://github.com/blackgear/mono_pac.git 15 | ``` 16 | 17 | ## Usage 18 | 19 | ``` 20 | $ cd ./src 21 | $ python ./make.py -h 22 | usage: MonoPac [-h] [-b blackList] [-w whiteList] [-i ipList] -p proxyList 23 | [-m] [-o pacFile] 24 | 25 | Mono Pac Generator 26 | 27 | optional arguments: 28 | -h, --help show this help message and exit 29 | -b blackList Path of the black list 30 | -w whiteList Path of the white list 31 | -i ipList Path of the iprange list 32 | -p proxyList Proxy parameter in the pac file 33 | -m Use unicode compression 34 | -o pacFile Path of the output pac file 35 | 36 | Across the Great Firewall, we can reach every corner in the world. 37 | 38 | $ python ./make.py -p "SOCKS5 192.168.1.1:1080;SOCKS 192.168.1.1:1080" -o ./proxy.pac 39 | ``` 40 | 41 | **ONLY** Python 2 is supported. 42 | 43 | `-m` option reduce 45% file size with 2.8% extra efficiency loss, but it may cause some PAC management extensions like SwitchOmega crash. 44 | 45 | ## Details 46 | 47 | When you browse https://www.google.com/abc, The Pac works in this way: 48 | 49 | ``` 50 | +-----------------------+ 51 | | Grab Host: | 52 | | Host=www.google.com | 53 | +-----------------------+ 54 | | 55 | v 56 | +-----------------------+ 57 | | Domain=www.google.com | 58 | | Domain=google.com |<-+ 59 | | Domain=com | | 60 | +-----------------------+ | 61 | | | 62 | v | 63 | True +-----------------------+ | 64 | Proxy <----|If domain in blackList | | 65 | +-----------------------+ | 66 | | | 67 | v False | 68 | True +-----------------------+ | 69 | Direct <----|If domain in whiteList | | 70 | +-----------------------+ | 71 | | | 72 | v False | 73 | +-----------------------+ | 74 | | If . in domain |--+ 75 | +-----------------------+ 76 | | 77 | v False 78 | +-----------------------+ 79 | | Dns resolve | 80 | +-----------------------+ 81 | | 82 | v 83 | True +-----------------------+ 84 | Proxy <----| If IP = nil | 85 | +-----------------------+ 86 | | 87 | v False 88 | True +-----------------------+ 89 | Direct <----| If IP = IPv6 addr | 90 | +-----------------------+ 91 | | 92 | v False 93 | True +-----------------------+ 94 | Direct <----| If IP in ipList | 95 | +-----------------------+ 96 | | 97 | v False 98 | Proxy 99 | ``` 100 | 101 | When you browse http://127.0.0.1/index.html, The `Domain` will be `127.0.0.1`, `0.0.1`, `0.1`, `1`. Then `dnsResolve` will return `127.0.0.1`. 102 | 103 | `dnsResolve` return IPv4 only in IE and Chromium, `dnsResolve` can return IPv6 in Firefox. 104 | 105 | IE via http://blogs.msdn.com/b/wndp/archive/2006/07/18/ipv6-wpad-for-winhttp-and-wininet.aspx 106 | 107 | Chromium via https://code.google.com/p/chromium/issues/detail?id=24641 108 | 109 | Firefox via https://github.com/blackgear/mono_pac/pull/2 110 | 111 | ## Configs 112 | 113 | All config files can use '#' as comments, all things behind '#' is ignored, space is automatic striped. 114 | 115 | Config files like this is acceptable: 116 | 117 | ``` 118 | # Twitter 119 | twitter.com 120 | t.co 121 | tweetdeck.com 122 | twimg.com # This domain is used for images 123 | ``` 124 | 125 | It will be prased as 126 | 127 | ``` 128 | twitter.com 129 | t.co 130 | tweetdeck.com 131 | twimg.com 132 | ``` 133 | 134 | ### blackList: 135 | 136 | One domains per line. 137 | 138 | ### whiteList: 139 | 140 | One domains per line. 141 | 142 | ### ipList: 143 | 144 | One record per line with IP/CIDR or IP/Wildcard format. 145 | 146 | Both `100.100.100.0/24` and `100.100.100.0/255.255.255.0` are acceptable. 147 | 148 | ### proxyList: 149 | 150 | Proxy Configs separated by ";". 151 | 152 | Available proxy configs: 153 | ``` 154 | PROXY host:port = use HTTP proxy 155 | SOCKS5 host:port = use Socks5 proxy 156 | DIRECT = Do not use proxy 157 | ``` 158 | 159 | Example: `PROXY 127.0.0.1:8080;DIRECT` 160 | 161 | Note: The latter config is the fallback of the former one. There is no limit on the length of the fallback list. 162 | 163 | Note: Safari don't accept `SOCKS5`, use `SOCKS` instead, you can also use a more compatible form like: `SOCKS5 host:port;SOCKS host:port`, Safari will ignore the first config and use the second one. 164 | 165 | Note: The `DIRECT` in the end have a potential risk cause the dns pollution affecting blackList domains. 166 | 167 | Note: When you use socks proxy, whether dns resolve will through the proxy is determined by the Apps itself. When you use http proxy, the dns resolve will always through the proxy. 168 | 169 | ## Performance 170 | Test with Node.js: 171 | ``` 172 | $ node test.js 173 | Testing pac generated by blackgear-mono_pac.pac 174 | avg: 5.984us 175 | Testing pac generated by blackgear-mono_pac-unicode.pac 176 | avg: 6.152us 177 | Testing pac generated by Leask-Flora_Pac-mod.pac 178 | avg: 12.872us 179 | Testing pac generated by usufu-Flora_Pac.pac 180 | avg: 11.361us 181 | 182 | $ ls -la *.pac 183 | -rw-r--r-- 1 Daniel staff 165129 Feb 24 21:53 Leask-Flora_Pac-mod.pac 184 | -rw-r--r-- 1 Daniel staff 16371 Jul 30 02:55 blackgear-mono_pac-unicode.pac 185 | -rw-r--r-- 1 Daniel staff 29824 Jul 30 02:55 blackgear-mono_pac.pac 186 | -rw-r--r-- 1 Daniel staff 254539 Feb 24 21:53 usufu-Flora_Pac.pac 187 | ``` 188 | 189 | MonoPac is the fastest and smallest PAC with full feature (blacklist, whitelist and full China IP range). 190 | 191 | With the help of Unicode compress, the size become much smaller (30741 -> 17346). 192 | 193 | ## Trivia 194 | 195 | The PAC instance will be reuse instead of start new instance for every request. The code in the root scope of the PAC file will be run only once. The code in the FindProxyForURL function's scope will be run each time you browser the internet. 196 | 197 | Just test this two PAC files: 198 | 199 | ``` 200 | var unixtime_ms = new Date().getTime(); 201 | while(new Date().getTime() < unixtime_ms + 5000) {} 202 | function FindProxyForURL(url, host) { 203 | return "DIRECT;"; 204 | } 205 | ``` 206 | 207 | ``` 208 | function FindProxyForURL(url, host) { 209 | var unixtime_ms = new Date().getTime(); 210 | while(new Date().getTime() < unixtime_ms + 5000) {} 211 | return "DIRECT;"; 212 | } 213 | ``` 214 | 215 | So put all definations in the root scope will accelerate the PAC file. 216 | 217 | ## LICENSE 218 | 219 | The MIT License 220 | 221 | Copyright (c) 2015 Daniel 222 | 223 | Permission is hereby granted, free of charge, to any person obtaining a copy 224 | of this software and associated documentation files (the "Software"), to deal 225 | in the Software without restriction, including without limitation the rights 226 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 227 | copies of the Software, and to permit persons to whom the Software is 228 | furnished to do so, subject to the following conditions: 229 | 230 | The above copyright notice and this permission notice shall be included in 231 | all copies or substantial portions of the Software. 232 | 233 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 234 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 235 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 236 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 237 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 238 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 239 | THE SOFTWARE. 240 | -------------------------------------------------------------------------------- /old/tools/src/whiteList: -------------------------------------------------------------------------------- 1 | # TLDs 2 | cn 3 | local 4 | lan 5 | localhost 6 | 7 | # live 8 | panda.tv 9 | dwstatic.com 10 | pdim.gs 11 | yy.com 12 | yystatic.com 13 | douyutv.com 14 | 203.130.55.22 15 | 203.130.55.24 16 | 17 | 18 | # xiaomi 19 | mi.com 20 | miui.com 21 | 22 | # xunlei 23 | xunlei.com 24 | sandai.net 25 | kankan.com 26 | 27 | # daocloud 28 | daocloud.io 29 | daocloudapp.com 30 | 31 | # sf 32 | segmentfault.com 33 | sf.gg 34 | 35 | # gitcafe 36 | gitcafe.com 37 | gitcafe.io 38 | 39 | # coding 40 | coding.net 41 | coding.io 42 | 43 | # cn-cdn 44 | qbox.me 45 | cnzz.com 46 | qiniucdn.com 47 | clouddn.com 48 | upaiyun.com 49 | letvcdn.com 50 | 51 | # leancloud 52 | avosapps.com 53 | 54 | # ali213 55 | ali213.net 56 | 57 | # gamersky 58 | gamersky.com 59 | 60 | 61 | # Acfun 62 | acfun.tv 63 | 64 | # Ali 65 | alipay.com 66 | alicdn.com 67 | taobao.com 68 | tbcdn.cn 69 | taobaocdn.com 70 | tmall.com 71 | 72 | # Baidu 73 | baidu.com 74 | bdstatic.com 75 | tiebaimg.com 76 | 77 | # BDWM 78 | bdwm.net 79 | 80 | # Bilibili 81 | bilibili.tv 82 | bilibili.us 83 | bilibili.com 84 | acgvideo.com 85 | 86 | # Ele 87 | ele.me 88 | elemecdn.com 89 | 90 | # iapps 91 | iapps.im 92 | #mzstatic.com 93 | 94 | # NetEase 95 | 163.com 96 | 126.net 97 | netease.com 98 | 99 | # Themex 100 | themex.net 101 | 102 | # Weibo 103 | weibo.cn 104 | weibo.com 105 | sinaimg.cn 106 | 107 | # Youku 108 | youku.com 109 | ykimg.com 110 | 111 | # Zhihu 112 | zhihu.com 113 | zhimg.com 114 | zhi.hu 115 | 116 | # alexa cn top 500 117 | baidu.com 118 | qq.com 119 | taobao.com 120 | 163.com 121 | weibo.com 122 | sohu.com 123 | youku.com 124 | soso.com 125 | ifeng.com 126 | tmall.com 127 | hao123.com 128 | tudou.com 129 | 360buy.com 130 | chinaz.com 131 | alipay.com 132 | sogou.com 133 | renren.com 134 | cnzz.com 135 | douban.com 136 | pengyou.com 137 | 58.com 138 | alibaba.com 139 | 56.com 140 | xunlei.com 141 | bing.com 142 | iqiyi.com 143 | csdn.net 144 | soku.com 145 | xinhuanet.com 146 | ku6.com 147 | aizhan.com 148 | 4399.com 149 | yesky.com 150 | soufun.com 151 | youdao.com 152 | china.com 153 | hudong.com 154 | ganji.com 155 | kaixin001.com 156 | paipai.com 157 | live.com 158 | alimama.com 159 | mop.com 160 | 51.la 161 | 51job.com 162 | dianping.com 163 | 126.com 164 | admin5.com 165 | it168.com 166 | 2345.com 167 | huanqiu.com 168 | arpg2.com 169 | 777wyx.com 170 | chinanews.com 171 | letv.com 172 | jiayuan.com 173 | 39.net 174 | twcczhu.com 175 | cnblogs.com 176 | microsoft.com 177 | dangdang.com 178 | pchome.net 179 | pptv.com 180 | vancl.com 181 | zhaopin.com 182 | apple.com 183 | bitauto.com 184 | etao.com 185 | qunar.com 186 | eastmoney.com 187 | yihaodian.com 188 | 115.com 189 | 21cn.com 190 | blog.163.com 191 | hupu.com 192 | duowan.com 193 | 52pk.net 194 | baixing.com 195 | iteye.com 196 | verycd.com 197 | suning.com 198 | discuz.net 199 | 7k7k.com 200 | mtime.com 201 | msn.com 202 | ccb.com 203 | hc360.com 204 | cmbchina.com 205 | 51.com 206 | yoka.com 207 | seowhy.com 208 | chinabyte.com 209 | qidian.com 210 | ctrip.com 211 | cnbeta.com 212 | tom.com 213 | tenpay.com 214 | meituan.com 215 | 120ask.com 216 | ebay.com 217 | 51cto.com 218 | sdo.com 219 | meilishuo.com 220 | 17173.com 221 | xyxy.net 222 | 19lou.com 223 | yiqifa.com 224 | nuomi.com 225 | eastday.com 226 | onlinedown.net 227 | oschina.net 228 | zhubajie.com 229 | amazon.com 230 | babytree.com 231 | kdnet.net 232 | docin.com 233 | qq937.com 234 | tgbus.com 235 | 51buy.com 236 | nipic.com 237 | im286.com 238 | baomihua.com 239 | doubleclick.com 240 | dh818.com 241 | ads8.com 242 | hiapk.com 243 | ynet.com 244 | sootoo.com 245 | mogujie.com 246 | gfan.com 247 | ppstream.com 248 | a135.net 249 | ip138.com 250 | zx915.com 251 | lashou.com 252 | crsky.com 253 | iciba.com 254 | uuzu.com 255 | tuan800.com 256 | haodf.com 257 | youboy.com 258 | ulink.cc 259 | qiyou.com 260 | 88db.com 261 | tao123.com 262 | 178.com 263 | ci123.com 264 | yolk7.com 265 | tiexue.net 266 | stockstar.com 267 | xici.net 268 | pcpop.com 269 | linkedin.com 270 | weiphone.com 271 | doc88.com 272 | adobe.com 273 | shangdu.com 274 | aili.com 275 | anjuke.com 276 | 360doc.com 277 | cnxad.com 278 | west263.com 279 | jiathis.com 280 | gougou.com 281 | whlongda.com 282 | mnwan.com 283 | onetad.com 284 | duote.com 285 | 55bbs.com 286 | iloveyouxi.com 287 | gongchang.com 288 | meishichina.com 289 | qire123.com 290 | 55tuan.com 291 | cocoren.com 292 | xiaomi.com 293 | phpwind.net 294 | yunpian.com 295 | abchina.com 296 | thethirdmedia.com 297 | coo8.com 298 | aliexpress.com 299 | onlylady.com 300 | manzuo.com 301 | elong.com 302 | aibang.com 303 | 10010.com 304 | 3366.com 305 | 28tui.com 306 | vipshop.com 307 | 1616.net 308 | pp.cc 309 | jumei.com 310 | tui18.com 311 | 52tlbb.com 312 | yinyuetai.com 313 | eye.rs 314 | baihe.com 315 | iyaya.com 316 | imanhua.com 317 | lusongsong.com 318 | taobaocdn.com 319 | leho.com 320 | 315che.com 321 | donews.com 322 | cqnews.net 323 | 591hx.com 324 | 114la.com 325 | gamersky.com 326 | tangdou.com 327 | 91.com 328 | uuu9.com 329 | xinnet.com 330 | dedecms.com 331 | cnmo.com 332 | 51fanli.com 333 | liebiao.com 334 | yyets.com 335 | lady8844.com 336 | newsmth.net 337 | ucjoy.com 338 | duba.net 339 | cnki.net 340 | 70e.com 341 | funshion.com 342 | qjy168.com 343 | paypal.com 344 | 3dmgame.com 345 | m18.com 346 | caixin.com 347 | linezing.com 348 | 53kf.com 349 | makepolo.com 350 | dospy.com 351 | xiami.com 352 | 5173.com 353 | vjia.com 354 | hotsales.net 355 | 4738.com 356 | mydrivers.com 357 | alisoft.com 358 | titan24.com 359 | u17.com 360 | jb51.net 361 | diandian.com 362 | dzwww.com 363 | hichina.com 364 | abang.com 365 | qianlong.com 366 | m1905.com 367 | chinahr.com 368 | zhaodao123.com 369 | daqi.com 370 | sourceforge.net 371 | yaolan.com 372 | 5d6d.net 373 | fobshanghai.com 374 | q150.com 375 | l99.com 376 | ccidnet.com 377 | aifang.com 378 | aol.com 379 | theplanet.com 380 | chinaunix.net 381 | hf365.com 382 | ad1111.com 383 | zhihu.com 384 | blueidea.com 385 | net114.com 386 | 07073.com 387 | alivv.com 388 | mplife.com 389 | allyes.com 390 | jqw.com 391 | netease.com 392 | 1ting.com 393 | yougou.com 394 | dbank.com 395 | made-in-china.com 396 | 36kr.com 397 | wumii.com 398 | zoosnet.net 399 | xitek.com 400 | ali213.net 401 | exam8.com 402 | jxedt.com 403 | uniontoufang.com 404 | zqgame.com 405 | 52kmh.com 406 | yxlady.com 407 | sznews.com 408 | longhoo.net 409 | game3737.com 410 | 51auto.com 411 | booksky.org 412 | iqilu.com 413 | ddmap.com 414 | cncn.com 415 | ename.net 416 | 1778.com 417 | blogchina.com 418 | 778669.com 419 | dayoo.com 420 | ct10000.com 421 | zhibo8.cc 422 | qingdaonews.com 423 | zongheng.com 424 | 1o26.com 425 | oeeee.com 426 | tiancity.com 427 | jinti.com 428 | si.kz 429 | tuniu.com 430 | xiu.com 431 | 265.com 432 | gamestlbb.com 433 | 2hua.com 434 | moonbasa.com 435 | sf-express.com 436 | qiushibaike.com 437 | ztgame.com 438 | yupoo.com 439 | kimiss.com 440 | cnhubei.com 441 | pingan.com 442 | lafaso.com 443 | rakuten.co.jp 444 | zhenai.com 445 | tiao8.info 446 | 7c.com 447 | tianji.com 448 | kugou.com 449 | house365.com 450 | xiazaiba.com 451 | aipai.com 452 | sodu.org 453 | bankcomm.com 454 | lietou.com 455 | toocle.com 456 | fengniao.com 457 | 99bill.com 458 | bendibao.com 459 | mapbar.com 460 | nowec.com 461 | yingjiesheng.com 462 | comsenz.com 463 | meilele.com 464 | otwan.com 465 | 61.com 466 | meizu.com 467 | readnovel.com 468 | fenzhi.com 469 | up2c.com 470 | 500wan.com 471 | fx120.net 472 | ftuan.com 473 | 17u.com 474 | lehecai.com 475 | 28.com 476 | bilibili.tv 477 | huaban.com 478 | szhome.com 479 | miercn.com 480 | fblife.com 481 | chinaw3.com 482 | smzdm.com 483 | b2b168.com 484 | 265g.com 485 | anzhi.com 486 | chuangelm.com 487 | php100.com 488 | 100ye.com 489 | hefei.cc 490 | mumayi.com 491 | sttlbb.com 492 | mangocity.com 493 | fantong.com 494 | 495 | # misc 496 | cnbeta.com 497 | cnbetacdn.com 498 | ifanr.com 499 | v2ex.com 500 | baozoumanhua.com 501 | igeak.com 502 | mi.com 503 | lagou.com 504 | sf.gg 505 | segmentfault.com 506 | conoha.jp 507 | upyun.com 508 | duoshuo.com 509 | sonkwo.com 510 | steamcn.com 511 | qishu.co 512 | coding.net 513 | mindstore.io 514 | minecraftxz.com 515 | upaiyun.com 516 | qbox.me 517 | clouddn.com 518 | qiniu.com 519 | ifanr.com 520 | alitrip.com 521 | sspai.com 522 | dgtle.com 523 | useso.com 524 | gitcafe.xyz 525 | daocloud.io 526 | gitcafe.com 527 | gitcafe.io 528 | ky0n.xyz 529 | akarin.xyz 530 | zoopda.com 531 | yixun.com 532 | jd.com 533 | zdmimg.com 534 | appgame.com 535 | qiniucdn.com 536 | wangyin.com 537 | gewara.com 538 | ele.me 539 | teambition.com 540 | anquanbao.com 541 | ziroom.com 542 | guokr.com 543 | speedtest.net 544 | huazhu.com 545 | saraba1st.com 546 | icson.com 547 | 0x110.com 548 | 100tjs.com 549 | 115img.com 550 | 123cha.com 551 | 126.net 552 | 1717388.com 553 | 17cdn.com 554 | 17kuxun.com 555 | 198game.com 556 | 1uuc.com 557 | 24quan.com 558 | 293.net 559 | 2mdn.net 560 | 360buyimg.com 561 | 360tl.com 562 | 37see.com 563 | 5000pk.com 564 | 51img1.com 565 | 51jobcdn.com 566 | 51yes.com 567 | 5d6d.com 568 | 6dad.com 569 | 6rooms.com 570 | 701sou.com 571 | 766.com 572 | 859652.com 573 | 968tl.com 574 | 9787.com 575 | 99114.com 576 | a963.com 577 | acfun.tv 578 | adnxs.com 579 | adroll.com 580 | adsame.com 581 | adsonar.com 582 | adtechus.com 583 | alicdn.com 584 | aliimg.com 585 | alipayobjects.com 586 | aliyun.com 587 | appinn.com 588 | atdmt.com 589 | atpanel.com 590 | bdimg.com 591 | bdstatic.com 592 | bestb2b.com 593 | betrad.com 594 | bjbus.com 595 | blogbus.com 596 | bluekai.com 597 | bokee.net 598 | boosj.com 599 | brothersoft.com 600 | cache.netease.com 601 | caing.com 602 | cctv.com 603 | cctvcom 604 | cdn20.com 605 | changyou.com 606 | chdbits.org 607 | chetx.com 608 | chinamobile.com 609 | chinaren.com 610 | chiphell.com 611 | cnepub.com 612 | cnfol.com 613 | cngba.com 614 | cntv.net 615 | cnwest.com 616 | compete.com 617 | cqtiyu.com 618 | didatuan.com 619 | dipan.com 620 | douban.fm 621 | doubleclick.net 622 | dpfile.com 623 | dream4ever.org 624 | duapp.com 625 | duomi.com 626 | dy2018.com 627 | dytt8.net 628 | eb80.com 629 | egou.com 630 | ellechina.com 631 | et8.org 632 | eyoudi.com 633 | fantong.com 634 | fastcdn.com 635 | fastif.net 636 | fat999.com 637 | ffdy.cc 638 | ftchinese.com 639 | game3896.com 640 | gamesville.com 641 | gamewan.net 642 | gaopeng.com 643 | getfirebug.com 644 | gfw.io 645 | ggmm777.com 646 | go2map.com 647 | goodbabygroup.com 648 | google-analytics.com 649 | gtimg.com 650 | gy9y.com 651 | gzmama.com 652 | haliyuya.com 653 | harrenmedianetwork.com 654 | hdslb.com 655 | help.apple.com 656 | hi-pda.com 657 | hlwan.net 658 | homeinns.com 659 | hoopchina.com 660 | huochepiao.com 661 | iask.com 662 | ibm.com 663 | icson.com 664 | idailyapp.com 665 | ifengimg.com 666 | ifensi.com 667 | ijinshan.com 668 | img-space.com 669 | img.cctvpic.com 670 | imrworldwide.com 671 | inc.gs 672 | infzm.com 673 | invitemedia.com 674 | ipinyou.com 675 | irs01.com 676 | irs01.net 677 | is686.com 678 | iweek.ly 679 | james520.com 680 | jandan.net 681 | jianshu.io 682 | jiatx.com 683 | jiepang.com 684 | jing.fm 685 | jiuyaoyouxi.com 686 | jjwxc.net 687 | joqoo.com 688 | jstv.com 689 | junshijia.com 690 | jysq.net 691 | kandian.com 692 | kandian.net 693 | kanimg.com 694 | kankan.com 695 | keyunzhan.com 696 | koudai8.com 697 | ku6cdn.com 698 | ku6img.com 699 | kuaidi100.com 700 | kuaiwan.com 701 | lampdrive.com 702 | lashouimg.com 703 | legolas-media.com 704 | letao.com 705 | logmein.com 706 | lohas.ly 707 | loli.mg 708 | loli.vg 709 | love21cn.com 710 | lvping.com 711 | lxdns.com 712 | lycos.com 713 | lygo.com 714 | mapabc.com 715 | mathtag.com 716 | mediaplex.com 717 | mediav.com 718 | miaozhen.com 719 | mlt01.com 720 | mmstat.com 721 | mookie1.com 722 | mosso.com 723 | mozilla.org 724 | my.cl.ly 725 | nbweekly.com 726 | ngacn.cc 727 | njobt.com 728 | oadz.com 729 | okbuy.com 730 | okooo.com 731 | p5w.net 732 | pcbeta.com 733 | pixlr.com 734 | pplive.com 735 | pr56789.com 736 | ptlogin2.qq.com 737 | pubmatic.com 738 | qiyi.com 739 | qiyipic.com 740 | qqmail.com 741 | qstatic.com 742 | quantserve.com 743 | qvbuy.com 744 | ranwen.com 745 | rrimg.com 746 | rtbidder.net 747 | sanguosha.com 748 | scanscout.com 749 | scorecardresearch.com 750 | serving-sys.com 751 | sg560.com 752 | shuangtv.net 753 | sina.com 754 | sinaapp.com 755 | sinaedge.com 756 | sinahk.net 757 | sinaimg.com 758 | sinajs.com 759 | sj-tl.com 760 | skycn.com 761 | snsfun.cc 762 | snyu.com 763 | soufunimg.com 764 | stackoverflow.com 765 | staticsdo.com 766 | synacast.com 767 | tanx.com 768 | tbcache.com 769 | tdimg.com 770 | tencent.com 771 | thawte.com 772 | tianyaui.com 773 | tlbb2.com 774 | tlbb8.com 775 | tlbbsifu.com 776 | tremormedia.com 777 | tudouui.com 778 | typecho.org 779 | tvmao.com 780 | umiwi.com 781 | uusee.com 782 | v.iask.com 783 | vcimg.com 784 | vizu.com 785 | wandoujia.com 786 | wdjimg.com 787 | web887.com 788 | williamlong.info 789 | woniu.com 790 | wrating.com 791 | www.renren.com 792 | xi666.com 793 | xiachufang.com 794 | xiami.net 795 | xiaonei.com 796 | xilu.com 797 | xiyou53.com 798 | xiyou54.com 799 | xlpan.com 800 | xmfish.com 801 | xn--fiqs8s 802 | xp9365.com 803 | xtltt.com 804 | xungou.com 805 | ydstatic.com 806 | yieldmanager.com 807 | yihaodianimg.com 808 | yintai.com 809 | yiyi.cc 810 | ykimg.com 811 | yocc.net 812 | youshang.com 813 | youwo123.com 814 | zaobao.com 815 | zaojiao.com 816 | zbjimg.com 817 | zdface.com 818 | zhibo8.com 819 | zhongsou.net 820 | zx915.com 821 | jianshu.io 822 | jianshu.com 823 | -------------------------------------------------------------------------------- /old/src/oldfiles/omega.md: -------------------------------------------------------------------------------- 1 | [SwitchyOmega Conditions] 2 | @with result 3 | 4 | *.oiktv.com +Shadowsocks 5 | *.twitter.com +Shadowsocks 6 | *.miwifi.com +direct 7 | *.v2ex.com +direct 8 | *.conoha.jp +direct 9 | *.cn +direct 10 | *.upyun.com +direct 11 | *.duoshuo.com +direct 12 | *.sonkwo.com +direct 13 | *.steamcn.com +direct 14 | *.qishu.co +direct 15 | *.mindstore.io +direct 16 | *.minecraftxz.com +direct 17 | *.upaiyun.com +direct 18 | *.qbox.me +direct 19 | *.clouddn.com +direct 20 | *.qiniu.com +direct 21 | *.ifanr.com +direct 22 | *.alitrip.com +direct 23 | *.sspai.com +direct 24 | *.dgtle.com +direct 25 | *.useso.com +direct 26 | *.gitcafe.xyz +direct 27 | *.daocloud.io +direct 28 | *.gitcafe.com +direct 29 | *.gitcafe.io +direct 30 | *.akarin.xyz +direct 31 | *.zoopda.com +direct 32 | *.yixun.com +direct 33 | *.jd.com +direct 34 | *.zdmimg.com +direct 35 | *.appgame.com +direct 36 | *.qiniucdn.com +direct 37 | *.wangyin.com +direct 38 | *.gewara.com +direct 39 | *.ele.me +direct 40 | *.teambition.com +direct 41 | *.anquanbao.com +direct 42 | *.ziroom.com +direct 43 | *.guokr.com +direct 44 | *.speedtest.net +direct 45 | *.huazhu.com +direct 46 | *.saraba1st.com +direct 47 | *.icson.com +direct 48 | *.0x110.com +direct 49 | *.100tjs.com +direct 50 | *.115img.com +direct 51 | *.123cha.com +direct 52 | *.126.net +direct 53 | *.1717388.com +direct 54 | *.17cdn.com +direct 55 | *.17kuxun.com +direct 56 | *.198game.com +direct 57 | *.1uuc.com +direct 58 | *.24quan.com +direct 59 | *.293.net +direct 60 | *.2mdn.net +direct 61 | *.360buyimg.com +direct 62 | *.360tl.com +direct 63 | *.37see.com +direct 64 | *.5000pk.com +direct 65 | *.51img1.com +direct 66 | *.51jobcdn.com +direct 67 | *.51yes.com +direct 68 | *.5d6d.com +direct 69 | *.6dad.com +direct 70 | *.6rooms.com +direct 71 | *.701sou.com +direct 72 | *.766.com +direct 73 | *.859652.com +direct 74 | *.968tl.com +direct 75 | *.9787.com +direct 76 | *.99114.com +direct 77 | *.a963.com +direct 78 | *.acfun.tv +direct 79 | *.adnxs.com +direct 80 | *.adroll.com +direct 81 | *.adsame.com +direct 82 | *.adsonar.com +direct 83 | *.adtechus.com +direct 84 | *.alicdn.com +direct 85 | *.aliimg.com +direct 86 | *.alipayobjects.com +direct 87 | *.aliyun.com +direct 88 | *.appinn.com +direct 89 | *.atdmt.com +direct 90 | *.atpanel.com +direct 91 | *.bdimg.com +direct 92 | *.bdstatic.com +direct 93 | *.bestb2b.com +direct 94 | *.betrad.com +direct 95 | *.bjbus.com +direct 96 | *.blogbus.com +direct 97 | *.bluekai.com +direct 98 | *.bokee.net +direct 99 | *.boosj.com +direct 100 | *.brothersoft.com +direct 101 | *.cache.netease.com +direct 102 | *.caing.com +direct 103 | *.cctv.com +direct 104 | *.cctvcom +direct 105 | *.cdn20.com +direct 106 | *.changyou.com +direct 107 | *.chdbits.org +direct 108 | *.chetx.com +direct 109 | *.chinamobile.com +direct 110 | *.chinaren.com +direct 111 | *.chiphell.com +direct 112 | *.cnepub.com +direct 113 | *.cnfol.com +direct 114 | *.cngba.com +direct 115 | *.cntv.net +direct 116 | *.cnwest.com +direct 117 | *.compete.com +direct 118 | *.cqtiyu.com +direct 119 | *.didatuan.com +direct 120 | *.dipan.com +direct 121 | *.douban.fm +direct 122 | *.doubleclick.net +direct 123 | *.dpfile.com +direct 124 | *.dream4ever.org +direct 125 | *.duapp.com +direct 126 | *.duomi.com +direct 127 | *.dy2018.com +direct 128 | *.dytt8.net +direct 129 | *.eb80.com +direct 130 | *.egou.com +direct 131 | *.ellechina.com +direct 132 | *.et8.org +direct 133 | *.eyoudi.com +direct 134 | *.fantong.com +direct 135 | *.fastcdn.com +direct 136 | *.fastif.net +direct 137 | *.fat999.com +direct 138 | *.ffdy.cc +direct 139 | *.ftchinese.com +direct 140 | *.game3896.com +direct 141 | *.gamesville.com +direct 142 | *.gamewan.net +direct 143 | *.gaopeng.com +direct 144 | *.getfirebug.com +direct 145 | *.gfw.io +direct 146 | *.ggmm777.com +direct 147 | *.go2map.com +direct 148 | *.goodbabygroup.com +direct 149 | *.google-analytics.com +direct 150 | *.gtimg.com +direct 151 | *.gy9y.com +direct 152 | *.gzmama.com +direct 153 | *.haliyuya.com +direct 154 | *.harrenmedianetwork.com +direct 155 | *.hdslb.com +direct 156 | *.help.apple.com +direct 157 | *.hi-pda.com +direct 158 | *.hlwan.net +direct 159 | *.homeinns.com +direct 160 | *.hoopchina.com +direct 161 | *.huochepiao.com +direct 162 | *.iask.com +direct 163 | *.ibm.com +direct 164 | *.icson.com +direct 165 | *.idailyapp.com +direct 166 | *.ifengimg.com +direct 167 | *.ifensi.com +direct 168 | *.ijinshan.com +direct 169 | *.img-space.com +direct 170 | *.img.cctvpic.com +direct 171 | *.imrworldwide.com +direct 172 | *.inc.gs +direct 173 | *.infzm.com +direct 174 | *.invitemedia.com +direct 175 | *.ipinyou.com +direct 176 | *.irs01.com +direct 177 | *.irs01.net +direct 178 | *.is686.com +direct 179 | *.iweek.ly +direct 180 | *.james520.com +direct 181 | *.jandan.net +direct 182 | *.jianshu.io +direct 183 | *.jiatx.com +direct 184 | *.jiepang.com +direct 185 | *.jing.fm +direct 186 | *.jiuyaoyouxi.com +direct 187 | *.jjwxc.net +direct 188 | *.joqoo.com +direct 189 | *.jstv.com +direct 190 | *.junshijia.com +direct 191 | *.jysq.net +direct 192 | *.kandian.com +direct 193 | *.kandian.net +direct 194 | *.kanimg.com +direct 195 | *.kankan.com +direct 196 | *.keyunzhan.com +direct 197 | *.koudai8.com +direct 198 | *.ku6cdn.com +direct 199 | *.ku6img.com +direct 200 | *.kuaidi100.com +direct 201 | *.kuaiwan.com +direct 202 | *.lampdrive.com +direct 203 | *.lashouimg.com +direct 204 | *.legolas-media.com +direct 205 | *.letao.com +direct 206 | *.local +direct 207 | *.localhost +direct 208 | *.logmein.com +direct 209 | *.lohas.ly +direct 210 | *.loli.mg +direct 211 | *.loli.vg +direct 212 | *.love21cn.com +direct 213 | *.lvping.com +direct 214 | *.lxdns.com +direct 215 | *.lycos.com +direct 216 | *.lygo.com +direct 217 | *.mapabc.com +direct 218 | *.mathtag.com +direct 219 | *.mediaplex.com +direct 220 | *.mediav.com +direct 221 | *.miaozhen.com +direct 222 | *.mlt01.com +direct 223 | *.mmstat.com +direct 224 | *.mookie1.com +direct 225 | *.mosso.com +direct 226 | *.mozilla.org +direct 227 | *.my.cl.ly +direct 228 | *.nbweekly.com +direct 229 | *.ngacn.cc +direct 230 | *.njobt.com +direct 231 | *.oadz.com +direct 232 | *.okbuy.com +direct 233 | *.okooo.com +direct 234 | *.p5w.net +direct 235 | *.pcbeta.com +direct 236 | *.pixlr.com +direct 237 | *.pplive.com +direct 238 | *.pr56789.com +direct 239 | *.ptlogin2.qq.com +direct 240 | *.pubmatic.com +direct 241 | *.qiyi.com +direct 242 | *.qiyipic.com +direct 243 | *.qqmail.com +direct 244 | *.qstatic.com +direct 245 | *.quantserve.com +direct 246 | *.qvbuy.com +direct 247 | *.ranwen.com +direct 248 | *.rrimg.com +direct 249 | *.rtbidder.net +direct 250 | *.sanguosha.com +direct 251 | *.scanscout.com +direct 252 | *.scorecardresearch.com +direct 253 | *.serving-sys.com +direct 254 | *.sg560.com +direct 255 | *.shuangtv.net +direct 256 | *.sina.com +direct 257 | *.sinaapp.com +direct 258 | *.sinaedge.com +direct 259 | *.sinahk.net +direct 260 | *.sinaimg.com +direct 261 | *.sinajs.com +direct 262 | *.sj-tl.com +direct 263 | *.skycn.com +direct 264 | *.snsfun.cc +direct 265 | *.snyu.com +direct 266 | *.soufunimg.com +direct 267 | *.stackoverflow.com +direct 268 | *.staticsdo.com +direct 269 | *.synacast.com +direct 270 | *.tanx.com +direct 271 | *.tbcache.com +direct 272 | *.tdimg.com +direct 273 | *.tencent.com +direct 274 | *.thawte.com +direct 275 | *.tianyaui.com +direct 276 | *.tlbb2.com +direct 277 | *.tlbb8.com +direct 278 | *.tlbbsifu.com +direct 279 | *.tremormedia.com +direct 280 | *.tudouui.com +direct 281 | *.typecho.org +direct 282 | *.tvmao.com +direct 283 | *.umiwi.com +direct 284 | *.uusee.com +direct 285 | *.v.iask.com +direct 286 | *.vcimg.com +direct 287 | *.vizu.com +direct 288 | *.wandoujia.com +direct 289 | *.wdjimg.com +direct 290 | *.web887.com +direct 291 | *.williamlong.info +direct 292 | *.woniu.com +direct 293 | *.wrating.com +direct 294 | *.www.renren.com +direct 295 | *.xi666.com +direct 296 | *.xiachufang.com +direct 297 | *.xiami.net +direct 298 | *.xiaonei.com +direct 299 | *.xilu.com +direct 300 | *.xiyou53.com +direct 301 | *.xiyou54.com +direct 302 | *.xlpan.com +direct 303 | *.xmfish.com +direct 304 | *.xn--fiqs8s +direct 305 | *.xp9365.com +direct 306 | *.xtltt.com +direct 307 | *.xungou.com +direct 308 | *.ydstatic.com +direct 309 | *.yieldmanager.com +direct 310 | *.yihaodianimg.com +direct 311 | *.yintai.com +direct 312 | *.yiyi.cc +direct 313 | *.ykimg.com +direct 314 | *.yocc.net +direct 315 | *.youshang.com +direct 316 | *.youwo123.com +direct 317 | *.zaobao.com +direct 318 | *.zaojiao.com +direct 319 | *.zbjimg.com +direct 320 | *.zdface.com +direct 321 | *.zhi.hu +direct 322 | *.zhibo8.com +direct 323 | *.zhongsou.net +direct 324 | *.zx915.com +direct 325 | *.baidu.com +direct 326 | *.qq.com +direct 327 | *.taobao.com +direct 328 | *.163.com +direct 329 | *.weibo.com +direct 330 | *.sohu.com +direct 331 | *.youku.com +direct 332 | *.soso.com +direct 333 | *.ifeng.com +direct 334 | *.tmall.com +direct 335 | *.hao123.com +direct 336 | *.tudou.com +direct 337 | *.360buy.com +direct 338 | *.chinaz.com +direct 339 | *.alipay.com +direct 340 | *.sogou.com +direct 341 | *.renren.com +direct 342 | *.cnzz.com +direct 343 | *.douban.com +direct 344 | *.pengyou.com +direct 345 | *.58.com +direct 346 | *.alibaba.com +direct 347 | *.56.com +direct 348 | *.xunlei.com +direct 349 | *.bing.com +direct 350 | *.iqiyi.com +direct 351 | *.csdn.net +direct 352 | *.soku.com +direct 353 | *.xinhuanet.com +direct 354 | *.ku6.com +direct 355 | *.aizhan.com +direct 356 | *.4399.com +direct 357 | *.yesky.com +direct 358 | *.soufun.com +direct 359 | *.youdao.com +direct 360 | *.china.com +direct 361 | *.hudong.com +direct 362 | *.ganji.com +direct 363 | *.kaixin001.com +direct 364 | *.paipai.com +direct 365 | *.live.com +direct 366 | *.alimama.com +direct 367 | *.mop.com +direct 368 | *.51.la +direct 369 | *.51job.com +direct 370 | *.dianping.com +direct 371 | *.126.com +direct 372 | *.admin5.com +direct 373 | *.it168.com +direct 374 | *.2345.com +direct 375 | *.huanqiu.com +direct 376 | *.arpg2.com +direct 377 | *.777wyx.com +direct 378 | *.chinanews.com +direct 379 | *.letv.com +direct 380 | *.jiayuan.com +direct 381 | *.39.net +direct 382 | *.twcczhu.com +direct 383 | *.cnblogs.com +direct 384 | *.microsoft.com +direct 385 | *.dangdang.com +direct 386 | *.pchome.net +direct 387 | *.pptv.com +direct 388 | *.vancl.com +direct 389 | *.zhaopin.com +direct 390 | *.apple.com +direct 391 | *.bitauto.com +direct 392 | *.etao.com +direct 393 | *.qunar.com +direct 394 | *.eastmoney.com +direct 395 | *.yihaodian.com +direct 396 | *.115.com +direct 397 | *.21cn.com +direct 398 | *.blog.163.com +direct 399 | *.hupu.com +direct 400 | *.duowan.com +direct 401 | *.52pk.net +direct 402 | *.baixing.com +direct 403 | *.iteye.com +direct 404 | *.verycd.com +direct 405 | *.suning.com +direct 406 | *.discuz.net +direct 407 | *.7k7k.com +direct 408 | *.mtime.com +direct 409 | *.msn.com +direct 410 | *.ccb.com +direct 411 | *.hc360.com +direct 412 | *.cmbchina.com +direct 413 | *.51.com +direct 414 | *.yoka.com +direct 415 | *.seowhy.com +direct 416 | *.chinabyte.com +direct 417 | *.qidian.com +direct 418 | *.ctrip.com +direct 419 | *.cnbeta.com +direct 420 | *.tom.com +direct 421 | *.tenpay.com +direct 422 | *.meituan.com +direct 423 | *.120ask.com +direct 424 | *.ebay.com +direct 425 | *.51cto.com +direct 426 | *.sdo.com +direct 427 | *.meilishuo.com +direct 428 | *.17173.com +direct 429 | *.xyxy.net +direct 430 | *.19lou.com +direct 431 | *.yiqifa.com +direct 432 | *.nuomi.com +direct 433 | *.eastday.com +direct 434 | *.onlinedown.net +direct 435 | *.oschina.net +direct 436 | *.zhubajie.com +direct 437 | *.amazon.com +direct 438 | *.babytree.com +direct 439 | *.kdnet.net +direct 440 | *.docin.com +direct 441 | *.qq937.com +direct 442 | *.tgbus.com +direct 443 | *.51buy.com +direct 444 | *.nipic.com +direct 445 | *.im286.com +direct 446 | *.baomihua.com +direct 447 | *.doubleclick.com +direct 448 | *.dh818.com +direct 449 | *.ads8.com +direct 450 | *.hiapk.com +direct 451 | *.ynet.com +direct 452 | *.sootoo.com +direct 453 | *.mogujie.com +direct 454 | *.gfan.com +direct 455 | *.ppstream.com +direct 456 | *.a135.net +direct 457 | *.ip138.com +direct 458 | *.zx915.com +direct 459 | *.lashou.com +direct 460 | *.crsky.com +direct 461 | *.iciba.com +direct 462 | *.uuzu.com +direct 463 | *.tuan800.com +direct 464 | *.haodf.com +direct 465 | *.youboy.com +direct 466 | *.ulink.cc +direct 467 | *.qiyou.com +direct 468 | *.88db.com +direct 469 | *.tao123.com +direct 470 | *.178.com +direct 471 | *.ci123.com +direct 472 | *.yolk7.com +direct 473 | *.tiexue.net +direct 474 | *.stockstar.com +direct 475 | *.xici.net +direct 476 | *.pcpop.com +direct 477 | *.linkedin.com +direct 478 | *.weiphone.com +direct 479 | *.doc88.com +direct 480 | *.adobe.com +direct 481 | *.shangdu.com +direct 482 | *.aili.com +direct 483 | *.anjuke.com +direct 484 | *.360doc.com +direct 485 | *.cnxad.com +direct 486 | *.west263.com +direct 487 | *.jiathis.com +direct 488 | *.gougou.com +direct 489 | *.whlongda.com +direct 490 | *.mnwan.com +direct 491 | *.onetad.com +direct 492 | *.duote.com +direct 493 | *.55bbs.com +direct 494 | *.iloveyouxi.com +direct 495 | *.gongchang.com +direct 496 | *.meishichina.com +direct 497 | *.qire123.com +direct 498 | *.55tuan.com +direct 499 | *.cocoren.com +direct 500 | *.xiaomi.com +direct 501 | *.phpwind.net +direct 502 | *.abchina.com +direct 503 | *.thethirdmedia.com +direct 504 | *.coo8.com +direct 505 | *.aliexpress.com +direct 506 | *.onlylady.com +direct 507 | *.manzuo.com +direct 508 | *.elong.com +direct 509 | *.aibang.com +direct 510 | *.10010.com +direct 511 | *.3366.com +direct 512 | *.28tui.com +direct 513 | *.vipshop.com +direct 514 | *.1616.net +direct 515 | *.pp.cc +direct 516 | *.jumei.com +direct 517 | *.tui18.com +direct 518 | *.52tlbb.com +direct 519 | *.yinyuetai.com +direct 520 | *.eye.rs +direct 521 | *.baihe.com +direct 522 | *.iyaya.com +direct 523 | *.imanhua.com +direct 524 | *.lusongsong.com +direct 525 | *.taobaocdn.com +direct 526 | *.leho.com +direct 527 | *.315che.com +direct 528 | *.donews.com +direct 529 | *.cqnews.net +direct 530 | *.591hx.com +direct 531 | *.114la.com +direct 532 | *.gamersky.com +direct 533 | *.tangdou.com +direct 534 | *.91.com +direct 535 | *.uuu9.com +direct 536 | *.xinnet.com +direct 537 | *.dedecms.com +direct 538 | *.cnmo.com +direct 539 | *.51fanli.com +direct 540 | *.liebiao.com +direct 541 | *.yyets.com +direct 542 | *.lady8844.com +direct 543 | *.newsmth.net +direct 544 | *.ucjoy.com +direct 545 | *.duba.net +direct 546 | *.cnki.net +direct 547 | *.70e.com +direct 548 | *.funshion.com +direct 549 | *.qjy168.com +direct 550 | *.paypal.com +direct 551 | *.3dmgame.com +direct 552 | *.m18.com +direct 553 | *.caixin.com +direct 554 | *.linezing.com +direct 555 | *.53kf.com +direct 556 | *.makepolo.com +direct 557 | *.dospy.com +direct 558 | *.xiami.com +direct 559 | *.5173.com +direct 560 | *.vjia.com +direct 561 | *.hotsales.net +direct 562 | *.4738.com +direct 563 | *.mydrivers.com +direct 564 | *.alisoft.com +direct 565 | *.titan24.com +direct 566 | *.u17.com +direct 567 | *.jb51.net +direct 568 | *.diandian.com +direct 569 | *.dzwww.com +direct 570 | *.hichina.com +direct 571 | *.abang.com +direct 572 | *.qianlong.com +direct 573 | *.m1905.com +direct 574 | *.chinahr.com +direct 575 | *.zhaodao123.com +direct 576 | *.daqi.com +direct 577 | *.sourceforge.net +direct 578 | *.yaolan.com +direct 579 | *.5d6d.net +direct 580 | *.fobshanghai.com +direct 581 | *.q150.com +direct 582 | *.l99.com +direct 583 | *.ccidnet.com +direct 584 | *.aifang.com +direct 585 | *.aol.com +direct 586 | *.theplanet.com +direct 587 | *.chinaunix.net +direct 588 | *.hf365.com +direct 589 | *.ad1111.com +direct 590 | *.zhihu.com +direct 591 | *.blueidea.com +direct 592 | *.net114.com +direct 593 | *.07073.com +direct 594 | *.alivv.com +direct 595 | *.mplife.com +direct 596 | *.allyes.com +direct 597 | *.jqw.com +direct 598 | *.netease.com +direct 599 | *.1ting.com +direct 600 | *.yougou.com +direct 601 | *.dbank.com +direct 602 | *.made-in-china.com +direct 603 | *.36kr.com +direct 604 | *.wumii.com +direct 605 | *.zoosnet.net +direct 606 | *.xitek.com +direct 607 | *.ali213.net +direct 608 | *.exam8.com +direct 609 | *.jxedt.com +direct 610 | *.uniontoufang.com +direct 611 | *.zqgame.com +direct 612 | *.52kmh.com +direct 613 | *.yxlady.com +direct 614 | *.sznews.com +direct 615 | *.longhoo.net +direct 616 | *.game3737.com +direct 617 | *.51auto.com +direct 618 | *.booksky.org +direct 619 | *.iqilu.com +direct 620 | *.ddmap.com +direct 621 | *.cncn.com +direct 622 | *.ename.net +direct 623 | *.1778.com +direct 624 | *.blogchina.com +direct 625 | *.778669.com +direct 626 | *.dayoo.com +direct 627 | *.ct10000.com +direct 628 | *.zhibo8.cc +direct 629 | *.qingdaonews.com +direct 630 | *.zongheng.com +direct 631 | *.1o26.com +direct 632 | *.oeeee.com +direct 633 | *.tiancity.com +direct 634 | *.jinti.com +direct 635 | *.si.kz +direct 636 | *.tuniu.com +direct 637 | *.xiu.com +direct 638 | *.265.com +direct 639 | *.gamestlbb.com +direct 640 | *.2hua.com +direct 641 | *.moonbasa.com +direct 642 | *.sf-express.com +direct 643 | *.qiushibaike.com +direct 644 | *.ztgame.com +direct 645 | *.yupoo.com +direct 646 | *.kimiss.com +direct 647 | *.cnhubei.com +direct 648 | *.pingan.com +direct 649 | *.lafaso.com +direct 650 | *.rakuten.co.jp +direct 651 | *.zhenai.com +direct 652 | *.tiao8.info +direct 653 | *.7c.com +direct 654 | *.tianji.com +direct 655 | *.kugou.com +direct 656 | *.house365.com +direct 657 | *.xiazaiba.com +direct 658 | *.aipai.com +direct 659 | *.sodu.org +direct 660 | *.bankcomm.com +direct 661 | *.lietou.com +direct 662 | *.toocle.com +direct 663 | *.fengniao.com +direct 664 | *.99bill.com +direct 665 | *.bendibao.com +direct 666 | *.mapbar.com +direct 667 | *.nowec.com +direct 668 | *.yingjiesheng.com +direct 669 | *.comsenz.com +direct 670 | *.meilele.com +direct 671 | *.otwan.com +direct 672 | *.61.com +direct 673 | *.meizu.com +direct 674 | *.readnovel.com +direct 675 | *.fenzhi.com +direct 676 | *.up2c.com +direct 677 | *.500wan.com +direct 678 | *.fx120.net +direct 679 | *.ftuan.com +direct 680 | *.17u.com +direct 681 | *.lehecai.com +direct 682 | *.28.com +direct 683 | *.bilibili.tv +direct 684 | *.huaban.com +direct 685 | *.szhome.com +direct 686 | *.miercn.com +direct 687 | *.fblife.com +direct 688 | *.chinaw3.com +direct 689 | *.smzdm.com +direct 690 | *.b2b168.com +direct 691 | *.265g.com +direct 692 | *.anzhi.com +direct 693 | *.chuangelm.com +direct 694 | *.php100.com +direct 695 | *.100ye.com +direct 696 | *.hefei.cc +direct 697 | *.mumayi.com +direct 698 | *.sttlbb.com +direct 699 | *.mangocity.com +direct 700 | *.fantong.com +direct 701 | 702 | * +Shadowsocks 703 | -------------------------------------------------------------------------------- /old/src/WhiteListsOmegaPolicy.md: -------------------------------------------------------------------------------- 1 | [SwitchyOmega Conditions] 2 | @with result 3 | 4 | *.cn +direct 5 | *.panda.tv +direct 6 | *.dwstatic.com +direct 7 | *.pdim.gs +direct 8 | *.yy.com +direct 9 | *.yystatic.com +direct 10 | *.douyutv.com +direct 11 | *.203.130.55.22 +direct 12 | *.203.130.55.24 +direct 13 | *.mi.com +direct 14 | *.miui.com +direct 15 | *.xunlei.com +direct 16 | *.sandai.net +direct 17 | *.kankan.com +direct 18 | *.daocloud.io +direct 19 | *.daocloudapp.com +direct 20 | *.segmentfault.com +direct 21 | *.sf.gg +direct 22 | *.gitcafe.com +direct 23 | *.gitcafe.io +direct 24 | *.coding.net +direct 25 | *.coding.io +direct 26 | *.qbox.me +direct 27 | *.qiniucdn.com +direct 28 | *.clouddn.com +direct 29 | *.upaiyun.com +direct 30 | *.letvcdn.com +direct 31 | *.avosapps.com +direct 32 | *.ali213.net +direct 33 | *.gamersky.com +direct 34 | *.acfun.tv +direct 35 | *.alipay.com +direct 36 | *.alicdn.com +direct 37 | *.taobao.com +direct 38 | *.taobaocdn.com +direct 39 | *.tmall.com +direct 40 | *.baidu.com +direct 41 | *.bdstatic.com +direct 42 | *.tiebaimg.com +direct 43 | *.bdwm.net +direct 44 | *.bilibili.tv +direct 45 | *.bilibili.us +direct 46 | *.bilibili.com +direct 47 | *.acgvideo.com +direct 48 | *.elemecdn.com +direct 49 | *.iapps.im +direct 50 | *.163.com +direct 51 | *.126.net +direct 52 | *.netease.com +direct 53 | *.themex.net +direct 54 | *.weibo.com +direct 55 | *.youku.com +direct 56 | *.ykimg.com +direct 57 | *.zhihu.com +direct 58 | *.zhimg.com +direct 59 | *.zhi.hu +direct 60 | *.baidu.com +direct 61 | *.qq.com +direct 62 | *.taobao.com +direct 63 | *.163.com +direct 64 | *.weibo.com +direct 65 | *.sohu.com +direct 66 | *.youku.com +direct 67 | *.soso.com +direct 68 | *.ifeng.com +direct 69 | *.tmall.com +direct 70 | *.hao123.com +direct 71 | *.tudou.com +direct 72 | *.360buy.com +direct 73 | *.chinaz.com +direct 74 | *.alipay.com +direct 75 | *.sogou.com +direct 76 | *.renren.com +direct 77 | *.douban.com +direct 78 | *.pengyou.com +direct 79 | *.58.com +direct 80 | *.alibaba.com +direct 81 | *.56.com +direct 82 | *.xunlei.com +direct 83 | *.bing.com +direct 84 | *.iqiyi.com +direct 85 | *.csdn.net +direct 86 | *.soku.com +direct 87 | *.xinhuanet.com +direct 88 | *.ku6.com +direct 89 | *.aizhan.com +direct 90 | *.4399.com +direct 91 | *.yesky.com +direct 92 | *.soufun.com +direct 93 | *.youdao.com +direct 94 | *.china.com +direct 95 | *.hudong.com +direct 96 | *.ganji.com +direct 97 | *.kaixin001.com +direct 98 | *.paipai.com +direct 99 | *.live.com +direct 100 | *.alimama.com +direct 101 | *.mop.com +direct 102 | *.51.la +direct 103 | *.51job.com +direct 104 | *.dianping.com +direct 105 | *.126.com +direct 106 | *.admin5.com +direct 107 | *.it168.com +direct 108 | *.2345.com +direct 109 | *.huanqiu.com +direct 110 | *.arpg2.com +direct 111 | *.777wyx.com +direct 112 | *.chinanews.com +direct 113 | *.letv.com +direct 114 | *.jiayuan.com +direct 115 | *.39.net +direct 116 | *.twcczhu.com +direct 117 | *.microsoft.com +direct 118 | *.dangdang.com +direct 119 | *.pchome.net +direct 120 | *.pptv.com +direct 121 | *.vancl.com +direct 122 | *.zhaopin.com +direct 123 | *.apple.com +direct 124 | *.bitauto.com +direct 125 | *.etao.com +direct 126 | *.qunar.com +direct 127 | *.eastmoney.com +direct 128 | *.yihaodian.com +direct 129 | *.115.com +direct 130 | *.21cn.com +direct 131 | *.blog.163.com +direct 132 | *.hupu.com +direct 133 | *.duowan.com +direct 134 | *.52pk.net +direct 135 | *.baixing.com +direct 136 | *.iteye.com +direct 137 | *.verycd.com +direct 138 | *.suning.com +direct 139 | *.discuz.net +direct 140 | *.7k7k.com +direct 141 | *.mtime.com +direct 142 | *.msn.com +direct 143 | *.ccb.com +direct 144 | *.hc360.com +direct 145 | *.cmbchina.com +direct 146 | *.51.com +direct 147 | *.yoka.com +direct 148 | *.seowhy.com +direct 149 | *.chinabyte.com +direct 150 | *.qidian.com +direct 151 | *.ctrip.com +direct 152 | *.tom.com +direct 153 | *.tenpay.com +direct 154 | *.meituan.com +direct 155 | *.120ask.com +direct 156 | *.ebay.com +direct 157 | *.51cto.com +direct 158 | *.sdo.com +direct 159 | *.meilishuo.com +direct 160 | *.17173.com +direct 161 | *.xyxy.net +direct 162 | *.19lou.com +direct 163 | *.yiqifa.com +direct 164 | *.nuomi.com +direct 165 | *.eastday.com +direct 166 | *.onlinedown.net +direct 167 | *.oschina.net +direct 168 | *.zhubajie.com +direct 169 | *.amazon.com +direct 170 | *.babytree.com +direct 171 | *.kdnet.net +direct 172 | *.docin.com +direct 173 | *.qq937.com +direct 174 | *.tgbus.com +direct 175 | *.51buy.com +direct 176 | *.nipic.com +direct 177 | *.im286.com +direct 178 | *.baomihua.com +direct 179 | *.doubleclick.com +direct 180 | *.dh818.com +direct 181 | *.ads8.com +direct 182 | *.hiapk.com +direct 183 | *.ynet.com +direct 184 | *.sootoo.com +direct 185 | *.mogujie.com +direct 186 | *.gfan.com +direct 187 | *.ppstream.com +direct 188 | *.a135.net +direct 189 | *.ip138.com +direct 190 | *.zx915.com +direct 191 | *.lashou.com +direct 192 | *.crsky.com +direct 193 | *.iciba.com +direct 194 | *.uuzu.com +direct 195 | *.tuan800.com +direct 196 | *.haodf.com +direct 197 | *.youboy.com +direct 198 | *.ulink.cc +direct 199 | *.qiyou.com +direct 200 | *.88db.com +direct 201 | *.tao123.com +direct 202 | *.178.com +direct 203 | *.ci123.com +direct 204 | *.yolk7.com +direct 205 | *.tiexue.net +direct 206 | *.stockstar.com +direct 207 | *.xici.net +direct 208 | *.pcpop.com +direct 209 | *.linkedin.com +direct 210 | *.weiphone.com +direct 211 | *.doc88.com +direct 212 | *.adobe.com +direct 213 | *.shangdu.com +direct 214 | *.aili.com +direct 215 | *.anjuke.com +direct 216 | *.360doc.com +direct 217 | *.directxad.com +direct 218 | *.west263.com +direct 219 | *.jiathis.com +direct 220 | *.gougou.com +direct 221 | *.whlongda.com +direct 222 | *.mnwan.com +direct 223 | *.onetad.com +direct 224 | *.duote.com +direct 225 | *.55bbs.com +direct 226 | *.iloveyouxi.com +direct 227 | *.gongchang.com +direct 228 | *.meishichina.com +direct 229 | *.qire123.com +direct 230 | *.55tuan.com +direct 231 | *.cocoren.com +direct 232 | *.xiaomi.com +direct 233 | *.phpwind.net +direct 234 | *.abchina.com +direct 235 | *.thethirdmedia.com +direct 236 | *.coo8.com +direct 237 | *.aliexpress.com +direct 238 | *.onlylady.com +direct 239 | *.manzuo.com +direct 240 | *.elong.com +direct 241 | *.aibang.com +direct 242 | *.10010.com +direct 243 | *.3366.com +direct 244 | *.28tui.com +direct 245 | *.vipshop.com +direct 246 | *.1616.net +direct 247 | *.pp.cc +direct 248 | *.jumei.com +direct 249 | *.tui18.com +direct 250 | *.52tlbb.com +direct 251 | *.yinyuetai.com +direct 252 | *.eye.rs +direct 253 | *.baihe.com +direct 254 | *.iyaya.com +direct 255 | *.imanhua.com +direct 256 | *.lusongsong.com +direct 257 | *.taobaocdn.com +direct 258 | *.leho.com +direct 259 | *.315che.com +direct 260 | *.donews.com +direct 261 | *.cqnews.net +direct 262 | *.591hx.com +direct 263 | *.114la.com +direct 264 | *.gamersky.com +direct 265 | *.tangdou.com +direct 266 | *.91.com +direct 267 | *.uuu9.com +direct 268 | *.xinnet.com +direct 269 | *.dedecms.com +direct 270 | *.51fanli.com +direct 271 | *.liebiao.com +direct 272 | *.yyets.com +direct 273 | *.lady8844.com +direct 274 | *.newsmth.net +direct 275 | *.ucjoy.com +direct 276 | *.duba.net +direct 277 | *.70e.com +direct 278 | *.funshion.com +direct 279 | *.qjy168.com +direct 280 | *.paypal.com +direct 281 | *.3dmgame.com +direct 282 | *.m18.com +direct 283 | *.caixin.com +direct 284 | *.linezing.com +direct 285 | *.53kf.com +direct 286 | *.makepolo.com +direct 287 | *.dospy.com +direct 288 | *.xiami.com +direct 289 | *.5173.com +direct 290 | *.vjia.com +direct 291 | *.hotsales.net +direct 292 | *.4738.com +direct 293 | *.mydrivers.com +direct 294 | *.alisoft.com +direct 295 | *.titan24.com +direct 296 | *.u17.com +direct 297 | *.jb51.net +direct 298 | *.diandian.com +direct 299 | *.dzwww.com +direct 300 | *.hichina.com +direct 301 | *.abang.com +direct 302 | *.qianlong.com +direct 303 | *.m1905.com +direct 304 | *.chinahr.com +direct 305 | *.zhaodao123.com +direct 306 | *.daqi.com +direct 307 | *.source.org +direct 308 | *.directe.net +direct 309 | *.yaolan.com +direct 310 | *.5d6d.net +direct 311 | *.fobshanghai.com +direct 312 | *.q150.com +direct 313 | *.l99.com +direct 314 | *.ccidnet.com +direct 315 | *.aifang.com +direct 316 | *.aol.com +direct 317 | *.theplanet.com +direct 318 | *.chinaunix.net +direct 319 | *.hf365.com +direct 320 | *.ad1111.com +direct 321 | *.zhihu.com +direct 322 | *.blueidea.com +direct 323 | *.net +direct114.com +direct 324 | *.07073.com +direct 325 | *.alivv.com +direct 326 | *.mplife.com +direct 327 | *.allyes.com +direct 328 | *.jqw.com +direct 329 | *.net +directease.com +direct 330 | *.1ting.com +direct 331 | *.yougou.com +direct 332 | *.dbank.com +direct 333 | *.made-in-china.com +direct 334 | *.36kr.com +direct 335 | *.wumii.com +direct 336 | *.zoosnet.net +direct 337 | *.xitek.com +direct 338 | *.ali213.net +direct 339 | *.exam8.com +direct 340 | *.jxedt.com +direct 341 | *.uniontoufang.com +direct 342 | *.zqgame.com +direct 343 | *.52kmh.com +direct 344 | *.yxlady.com +direct 345 | *.sznews.com +direct 346 | *.longhoo.net +direct 347 | *.game3737.com +direct 348 | *.51auto.com +direct 349 | *.booksky.org +direct 350 | *.iqilu.com +direct 351 | *.ddmap.com +direct 352 | *.ename.net +direct 353 | *.1778.com +direct 354 | *.blogchina.com +direct 355 | *.778669.com +direct 356 | *.dayoo.com +direct 357 | *.ct10000.com +direct 358 | *.zhibo8.cc +direct 359 | *.qingdaonews.com +direct 360 | *.zongheng.com +direct 361 | *.1o26.com +direct 362 | *.oeeee.com +direct 363 | *.tiancity.com +direct 364 | *.jinti.com +direct 365 | *.si.kz +direct 366 | *.tuniu.com +direct 367 | *.xiu.com +direct 368 | *.265.com +direct 369 | *.gamestlbb.com +direct 370 | *.2hua.com +direct 371 | *.moonbasa.com +direct 372 | *.sf-express.com +direct 373 | *.qiushibaike.com +direct 374 | *.ztgame.com +direct 375 | *.yupoo.com +direct 376 | *.kimiss.com +direct 377 | *.pingan.com +direct 378 | *.lafaso.com +direct 379 | *.rakuten.co.jp +direct 380 | *.zhenai.com +direct 381 | *.tiao8.info +direct 382 | *.7c.com +direct 383 | *.tianji.com +direct 384 | *.kugou.com +direct 385 | *.house365.com +direct 386 | *.xiazaiba.com +direct 387 | *.aipai.com +direct 388 | *.sodu.org +direct 389 | *.bankcomm.com +direct 390 | *.lietou.com +direct 391 | *.toocle.com +direct 392 | *.fengniao.com +direct 393 | *.99bill.com +direct 394 | *.bendibao.com +direct 395 | *.mapbar.com +direct 396 | *.nowec.com +direct 397 | *.yingjiesheng.com +direct 398 | *.senz.com +direct 399 | *.meilele.com +direct 400 | *.otwan.com +direct 401 | *.61.com +direct 402 | *.meizu.com +direct 403 | *.readnovel.com +direct 404 | *.fenzhi.com +direct 405 | *.up2c.com +direct 406 | *.500wan.com +direct 407 | *.fx120.net +direct 408 | *.ftuan.com +direct 409 | *.17u.com +direct 410 | *.lehecai.com +direct 411 | *.28.com +direct 412 | *.bilibili.tv +direct 413 | *.huaban.com +direct 414 | *.szhome.com +direct 415 | *.miercn.com +direct 416 | *.fblife.com +direct 417 | *.chinaw3.com +direct 418 | *.smzdm.com +direct 419 | *.b2b168.com +direct 420 | *.265g.com +direct 421 | *.anzhi.com +direct 422 | *.chuangelm.com +direct 423 | *.php100.com +direct 424 | *.100ye.com +direct 425 | *.hefei.cc +direct 426 | *.mumayi.com +direct 427 | *.sttlbb.com +direct 428 | *.mangocity.com +direct 429 | *.fantong.com +direct 430 | *.directbetacdn.com +direct 431 | *.ifanr.com +direct 432 | *.v2ex.com +direct 433 | *.baozoumanhua.com +direct 434 | *.igeak.com +direct 435 | *.mi.com +direct 436 | *.lagou.com +direct 437 | *.sf.gg +direct 438 | *.segmentfault.com +direct 439 | *.conoha.jp +direct 440 | *.upyun.com +direct 441 | *.duoshuo.com +direct 442 | *.sonkwo.com +direct 443 | *.steamcn.com +direct 444 | *.qishu.co +direct 445 | *.coding.net +direct 446 | *.mindstore.io +direct 447 | *.minecraftxz.com +direct 448 | *.upaiyun.com +direct 449 | *.qbox.me +direct 450 | *.pingxx.com +direct 451 | *.clouddn.com +direct 452 | *.qiniu.com +direct 453 | *.ifanr.com +direct 454 | *.alitrip.com +direct 455 | *.sspai.com +direct 456 | *.dgtle.com +direct 457 | *.useso.com +direct 458 | *.gitcafe.xyz +direct 459 | *.daocloud.io +direct 460 | *.gitcafe.com +direct 461 | *.gitcafe.io +direct 462 | *.ky0n.xyz +direct 463 | *.akarin.xyz +direct 464 | *.zoopda.com +direct 465 | *.yixun.com +direct 466 | *.jd.com +direct 467 | *.zdmimg.com +direct 468 | *.appgame.com +direct 469 | *.qiniucdn.com +direct 470 | *.wangyin.com +direct 471 | *.gewara.com +direct 472 | *.ele.me +direct 473 | *.teambition.com +direct 474 | *.anquanbao.com +direct 475 | *.ziroom.com +direct 476 | *.guokr.com +direct 477 | *.speedtest.net +direct 478 | *.huazhu.com +direct 479 | *.saraba1st.com +direct 480 | *.icson.com +direct 481 | *.0x110.com +direct 482 | *.100tjs.com +direct 483 | *.115img.com +direct 484 | *.123cha.com +direct 485 | *.126.net +direct 486 | *.1717388.com +direct 487 | *.17cdn.com +direct 488 | *.17kuxun.com +direct 489 | *.198game.com +direct 490 | *.1uuc.com +direct 491 | *.24quan.com +direct 492 | *.293.net +direct 493 | *.2mdn.net +direct 494 | *.360buyimg.com +direct 495 | *.360tl.com +direct 496 | *.37see.com +direct 497 | *.5000pk.com +direct 498 | *.51img1.com +direct 499 | *.51jobcdn.com +direct 500 | *.51yes.com +direct 501 | *.5d6d.com +direct 502 | *.6dad.com +direct 503 | *.6rooms.com +direct 504 | *.701sou.com +direct 505 | *.766.com +direct 506 | *.859652.com +direct 507 | *.968tl.com +direct 508 | *.9787.com +direct 509 | *.99114.com +direct 510 | *.a963.com +direct 511 | *.acfun.tv +direct 512 | *.adnxs.com +direct 513 | *.adroll.com +direct 514 | *.adsame.com +direct 515 | *.adsonar.com +direct 516 | *.adtechus.com +direct 517 | *.alicdn.com +direct 518 | *.aliimg.com +direct 519 | *.alipayobjects.com +direct 520 | *.aliyun.com +direct 521 | *.appinn.com +direct 522 | *.atdmt.com +direct 523 | *.atpanel.com +direct 524 | *.bdimg.com +direct 525 | *.bdstatic.com +direct 526 | *.bestb2b.com +direct 527 | *.betrad.com +direct 528 | *.bjbus.com +direct 529 | *.blogbus.com +direct 530 | *.bluekai.com +direct 531 | *.bokee.net +direct 532 | *.boosj.com +direct 533 | *.brothersoft.com +direct 534 | *.cache.net +directease.com +direct 535 | *.caing.com +direct 536 | *.cctv.com +direct 537 | *.cdn20.com +direct 538 | *.changyou.com +direct 539 | *.chdbits.org +direct 540 | *.chetx.com +direct 541 | *.chinamobile.com +direct 542 | *.chinaren.com +direct 543 | *.chiphell.com +direct 544 | *.com +directpete.com +direct 545 | *.cqtiyu.com +direct 546 | *.didatuan.com +direct 547 | *.dipan.com +direct 548 | *.douban.fm +direct 549 | *.doubleclick.net +direct 550 | *.dpfile.com +direct 551 | *.dream4ever.org +direct 552 | *.duapp.com +direct 553 | *.duomi.com +direct 554 | *.dy2018.com +direct 555 | *.dytt8.net +direct 556 | *.eb80.com +direct 557 | *.egou.com +direct 558 | *.ellechina.com +direct 559 | *.et8.org +direct 560 | *.eyoudi.com +direct 561 | *.fantong.com +direct 562 | *.fastcdn.com +direct 563 | *.fastif.net +direct 564 | *.fat999.com +direct 565 | *.ffdy.cc +direct 566 | *.ftchinese.com +direct 567 | *.game3896.com +direct 568 | *.gamesville.com +direct 569 | *.gamewan.net +direct 570 | *.gaopeng.com +direct 571 | *.getfirebug.com +direct 572 | *.gfw.io +direct 573 | *.gg +directmm777.com +direct 574 | *.go2map.com +direct 575 | *.goodbabygroup.com +direct 576 | *.google-analytics.com +direct 577 | *.gtimg.com +direct 578 | *.gy9y.com +direct 579 | *.gzmama.com +direct 580 | *.haliyuya.com +direct 581 | *.harrenmedianetwork.com +direct 582 | *.hdslb.com +direct 583 | *.help.apple.com +direct 584 | *.hi-pda.com +direct 585 | *.hlwan.net +direct 586 | *.homeinns.com +direct 587 | *.hoopchina.com +direct 588 | *.huochepiao.com +direct 589 | *.iask.com +direct 590 | *.ibm.com +direct 591 | *.icson.com +direct 592 | *.idailyapp.com +direct 593 | *.ifengimg.com +direct 594 | *.ifensi.com +direct 595 | *.ijinshan.com +direct 596 | *.img-space.com +direct 597 | *.img.cctvpic.com +direct 598 | *.imrworldwide.com +direct 599 | *.inc.gs +direct 600 | *.infzm.com +direct 601 | *.invitemedia.com +direct 602 | *.ipinyou.com +direct 603 | *.irs01.com +direct 604 | *.irs01.net +direct 605 | *.is686.com +direct 606 | *.iweek.ly +direct 607 | *.james520.com +direct 608 | *.jandan.net +direct 609 | *.jianshu.io +direct 610 | *.jiatx.com +direct 611 | *.jiepang.com +direct 612 | *.jing.fm +direct 613 | *.jiuyaoyouxi.com +direct 614 | *.jjwxc.net +direct 615 | *.joqoo.com +direct 616 | *.jstv.com +direct 617 | *.junshijia.com +direct 618 | *.jysq.net +direct 619 | *.kandian.com +direct 620 | *.kandian.net +direct 621 | *.kanimg.com +direct 622 | *.kankan.com +direct 623 | *.keyunzhan.com +direct 624 | *.koudai8.com +direct 625 | *.ku6cdn.com +direct 626 | *.ku6img.com +direct 627 | *.kuaidi100.com +direct 628 | *.kuaiwan.com +direct 629 | *.lampdrive.com +direct 630 | *.lashouimg.com +direct 631 | *.legolas-media.com +direct 632 | *.letao.com +direct 633 | *.logmein.com +direct 634 | *.lohas.ly +direct 635 | *.loli.mg +direct 636 | *.loli.vg +direct 637 | *.love21cn.com +direct 638 | *.lvping.com +direct 639 | *.lxdns.com +direct 640 | *.lycos.com +direct 641 | *.lygo.com +direct 642 | *.mapabc.com +direct 643 | *.mathtag.com +direct 644 | *.mediaplex.com +direct 645 | *.mediav.com +direct 646 | *.miaozhen.com +direct 647 | *.mlt01.com +direct 648 | *.mmstat.com +direct 649 | *.mookie1.com +direct 650 | *.mosso.com +direct 651 | *.mozilla.org +direct 652 | *.my.cl.ly +direct 653 | *.nbweekly.com +direct 654 | *.ngacn.cc +direct 655 | *.njobt.com +direct 656 | *.oadz.com +direct 657 | *.okbuy.com +direct 658 | *.okooo.com +direct 659 | *.p5w.net +direct 660 | *.pcbeta.com +direct 661 | *.pixlr.com +direct 662 | *.pplive.com +direct 663 | *.pr56789.com +direct 664 | *.ptlogin2.qq.com +direct 665 | *.pubmatic.com +direct 666 | *.qiyi.com +direct 667 | *.qiyipic.com +direct 668 | *.qqmail.com +direct 669 | *.qstatic.com +direct 670 | *.quantserve.com +direct 671 | *.qvbuy.com +direct 672 | *.ranwen.com +direct 673 | *.rrimg.com +direct 674 | *.rtbidder.net +direct 675 | *.sanguosha.com +direct 676 | *.scanscout.com +direct 677 | *.scorecardresearch.com +direct 678 | *.serving-sys.com +direct 679 | *.sg560.com +direct 680 | *.shuangtv.net +direct 681 | *.sina.com +direct 682 | *.sinaapp.com +direct 683 | *.sinaedge.com +direct 684 | *.sinahk.net +direct 685 | *.sinaimg.com +direct 686 | *.sinajs.com +direct 687 | *.sj-tl.com +direct 688 | *.skycn.com +direct 689 | *.snsfun.cc +direct 690 | *.snyu.com +direct 691 | *.soufunimg.com +direct 692 | *.stackoverflow.com +direct 693 | *.staticsdo.com +direct 694 | *.synacast.com +direct 695 | *.tanx.com +direct 696 | *.tbcache.com +direct 697 | *.tdimg.com +direct 698 | *.tencent.com +direct 699 | *.thawte.com +direct 700 | *.tianyaui.com +direct 701 | *.tlbb2.com +direct 702 | *.tlbb8.com +direct 703 | *.tlbbsifu.com +direct 704 | *.tremormedia.com +direct 705 | *.tudouui.com +direct 706 | *.typecho.org +direct 707 | *.mao.com +direct 708 | *.umiwi.com +direct 709 | *.uusee.com +direct 710 | *.v.iask.com +direct 711 | *.vcimg.com +direct 712 | *.vizu.com +direct 713 | *.wandoujia.com +direct 714 | *.wdjimg.com +direct 715 | *.web887.com +direct 716 | *.williamlong.info +direct 717 | *.woniu.com +direct 718 | *.wrating.com +direct 719 | *.www.renren.com +direct 720 | *.xi666.com +direct 721 | *.xiachufang.com +direct 722 | *.xiami.net +direct 723 | *.xiaonei.com +direct 724 | *.xilu.com +direct 725 | *.xiyou53.com +direct 726 | *.xiyou54.com +direct 727 | *.xlpan.com +direct 728 | *.xmfish.com +direct 729 | *.xp9365.com +direct 730 | *.xtltt.com +direct 731 | *.xungou.com +direct 732 | *.ydstatic.com +direct 733 | *.yieldmanager.com +direct 734 | *.yihaodianimg.com +direct 735 | *.yintai.com +direct 736 | *.yiyi.cc +direct 737 | *.ykimg.com +direct 738 | *.yocc.net +direct 739 | *.youshang.com +direct 740 | *.youwo123.com +direct 741 | *.zaobao.com +direct 742 | *.zaojiao.com +direct 743 | *.zbjimg.com +direct 744 | *.zdface.com +direct 745 | *.zhibo8.com +direct 746 | *.zhongsou.net +direct 747 | *.zx915.com +direct 748 | *.jianshu.io +direct 749 | *.jianshu.com +direct 750 | 751 | * +Shadowsocks 752 | -------------------------------------------------------------------------------- /old/src/oldfiles/whitelist.pac: -------------------------------------------------------------------------------- 1 | // Version 1.3.3.0 2 | var IP_ADDRESS = '10.0.0.140:1080'; 3 | var PROXY_TYPE = 'SOCKS5'; // or 'SOCKS5' or 'HTTPS' or 'PROXY' 4 | var PROXY_METHOD = PROXY_TYPE + ' ' + IP_ADDRESS; 5 | // Feel free to add or edit custom list 6 | var RULES = [ 7 | //cn 8 | [ 9 | ".cn" 10 | ], 11 | //custom-list 12 | [ 13 | ".v2ex.com", 14 | ".baozoumanhua.com", 15 | ".igeak.com", 16 | ".mi.com", 17 | ".lagou.com", 18 | ".sf.gg", 19 | ".segmentfault.com", 20 | ".conoha.jp", 21 | ".upyun.com", 22 | ".duoshuo.com", 23 | ".sonkwo.com", 24 | ".steamcn.com", 25 | ".qishu.co", 26 | ".coding.net", 27 | ".mindstore.io", 28 | ".minecraftxz.com", 29 | ".upaiyun.com", 30 | ".qbox.me", 31 | ".clouddn.com", 32 | ".qiniu.com", 33 | ".ifanr.com", 34 | ".alitrip.com", 35 | ".sspai.com", 36 | ".dgtle.com", 37 | ".useso.com", 38 | ".gitcafe.xyz", 39 | ".daocloud.io", 40 | ".gitcafe.com", 41 | ".gitcafe.io", 42 | ".akarin.xyz", 43 | ".zoopda.com", 44 | ".yixun.com", 45 | ".jd.com", 46 | ".zdmimg.com", 47 | ".appgame.com", 48 | ".qiniucdn.com", 49 | ".wangyin.com", 50 | ".gewara.com", 51 | ".ele.me", 52 | ".teambition.com", 53 | ".anquanbao.com", 54 | ".ziroom.com", 55 | ".guokr.com", 56 | ".speedtest.net", 57 | ".huazhu.com", 58 | ".saraba1st.com" 59 | ], 60 | //"ihipop" 61 | [ 62 | ".icson.com" 63 | ], 64 | //"xream" 65 | [ 66 | ".0x110.com", 67 | ".100tjs.com", 68 | ".115img.com", 69 | ".123cha.com", 70 | ".126.net", 71 | ".1717388.com", 72 | ".17cdn.com", 73 | ".17kuxun.com", 74 | ".198game.com", 75 | ".1uuc.com", 76 | ".24quan.com", 77 | ".293.net", 78 | ".2mdn.net", 79 | ".360buyimg.com", 80 | ".360tl.com", 81 | ".37see.com", 82 | ".5000pk.com", 83 | ".51img1.com", 84 | ".51jobcdn.com", 85 | ".51yes.com", 86 | ".5d6d.com", 87 | ".6dad.com", 88 | ".6rooms.com", 89 | ".701sou.com", 90 | ".766.com", 91 | ".859652.com", 92 | ".968tl.com", 93 | ".9787.com", 94 | ".99114.com", 95 | ".a963.com", 96 | ".acfun.tv", 97 | ".adnxs.com", 98 | ".adroll.com", 99 | ".adsame.com", 100 | ".adsonar.com", 101 | ".adtechus.com", 102 | ".alicdn.com", 103 | ".aliimg.com", 104 | ".alipayobjects.com", 105 | ".aliyun.com", 106 | ".appinn.com", 107 | ".atdmt.com", 108 | ".atpanel.com", 109 | ".bdimg.com", 110 | ".bdstatic.com", 111 | ".bestb2b.com", 112 | ".betrad.com", 113 | ".bjbus.com", 114 | ".blogbus.com", 115 | ".bluekai.com", 116 | ".bokee.net", 117 | ".boosj.com", 118 | ".brothersoft.com", 119 | ".cache.netease.com", 120 | ".caing.com", 121 | ".cctv.com", 122 | ".cctvcom", 123 | ".cdn20.com", 124 | ".changyou.com", 125 | ".chdbits.org", 126 | ".chetx.com", 127 | ".chinamobile.com", 128 | ".chinaren.com", 129 | ".chiphell.com", 130 | ".cnepub.com", 131 | ".cnfol.com", 132 | ".cngba.com", 133 | ".cntv.net", 134 | ".cnwest.com", 135 | ".compete.com", 136 | ".cqtiyu.com", 137 | ".didatuan.com", 138 | ".dipan.com", 139 | ".douban.fm", 140 | ".doubleclick.net", 141 | ".dpfile.com", 142 | ".dream4ever.org", 143 | ".duapp.com", 144 | ".duomi.com", 145 | ".dy2018.com", 146 | ".dytt8.net", 147 | ".eb80.com", 148 | ".egou.com", 149 | ".ellechina.com", 150 | ".et8.org", 151 | ".eyoudi.com", 152 | ".fantong.com", 153 | ".fastcdn.com", 154 | ".fastif.net", 155 | ".fat999.com", 156 | ".ffdy.cc", 157 | ".ftchinese.com", 158 | ".game3896.com", 159 | ".gamesville.com", 160 | ".gamewan.net", 161 | ".gaopeng.com", 162 | ".getfirebug.com", 163 | ".gfw.io", 164 | ".ggmm777.com", 165 | ".go2map.com", 166 | ".goodbabygroup.com", 167 | ".google-analytics.com", 168 | ".gtimg.com", 169 | ".gy9y.com", 170 | ".gzmama.com", 171 | ".haliyuya.com", 172 | ".harrenmedianetwork.com", 173 | ".hdslb.com", 174 | ".help.apple.com", 175 | ".hi-pda.com", 176 | ".hlwan.net", 177 | ".homeinns.com", 178 | ".hoopchina.com", 179 | ".huochepiao.com", 180 | ".iask.com", 181 | ".ibm.com", 182 | ".icson.com", 183 | ".idailyapp.com", 184 | ".ifengimg.com", 185 | ".ifensi.com", 186 | ".ijinshan.com", 187 | ".img-space.com", 188 | ".img.cctvpic.com", 189 | ".imrworldwide.com", 190 | ".inc.gs", 191 | ".infzm.com", 192 | ".invitemedia.com", 193 | ".ipinyou.com", 194 | ".irs01.com", 195 | ".irs01.net", 196 | ".is686.com", 197 | ".iweek.ly", 198 | ".james520.com", 199 | ".jandan.net", 200 | ".jianshu.io", 201 | ".jiatx.com", 202 | ".jiepang.com", 203 | ".jing.fm", 204 | ".jiuyaoyouxi.com", 205 | ".jjwxc.net", 206 | ".joqoo.com", 207 | ".jstv.com", 208 | ".junshijia.com", 209 | ".jysq.net", 210 | ".kandian.com", 211 | ".kandian.net", 212 | ".kanimg.com", 213 | ".kankan.com", 214 | ".keyunzhan.com", 215 | ".koudai8.com", 216 | ".ku6cdn.com", 217 | ".ku6img.com", 218 | ".kuaidi100.com", 219 | ".kuaiwan.com", 220 | ".lampdrive.com", 221 | ".lashouimg.com", 222 | ".legolas-media.com", 223 | ".letao.com", 224 | ".local", 225 | ".localhost", 226 | ".logmein.com", 227 | ".lohas.ly", 228 | ".loli.mg", 229 | ".loli.vg", 230 | ".love21cn.com", 231 | ".lvping.com", 232 | ".lxdns.com", 233 | ".lycos.com", 234 | ".lygo.com", 235 | ".mapabc.com", 236 | ".mathtag.com", 237 | ".mediaplex.com", 238 | ".mediav.com", 239 | ".miaozhen.com", 240 | ".mlt01.com", 241 | ".mmstat.com", 242 | ".mookie1.com", 243 | ".mosso.com", 244 | ".mozilla.org", 245 | ".my.cl.ly", 246 | ".nbweekly.com", 247 | ".ngacn.cc", 248 | ".njobt.com", 249 | ".oadz.com", 250 | ".okbuy.com", 251 | ".okooo.com", 252 | ".p5w.net", 253 | ".pcbeta.com", 254 | ".pixlr.com", 255 | ".pplive.com", 256 | ".pr56789.com", 257 | ".ptlogin2.qq.com", 258 | ".pubmatic.com", 259 | ".qiyi.com", 260 | ".qiyipic.com", 261 | ".qqmail.com", 262 | ".qstatic.com", 263 | ".quantserve.com", 264 | ".qvbuy.com", 265 | ".ranwen.com", 266 | ".rrimg.com", 267 | ".rtbidder.net", 268 | ".sanguosha.com", 269 | ".scanscout.com", 270 | ".scorecardresearch.com", 271 | ".serving-sys.com", 272 | ".sg560.com", 273 | ".shuangtv.net", 274 | ".sina.com", 275 | ".sinaapp.com", 276 | ".sinaedge.com", 277 | ".sinahk.net", 278 | ".sinaimg.com", 279 | ".sinajs.com", 280 | ".sj-tl.com", 281 | ".skycn.com", 282 | ".snsfun.cc", 283 | ".snyu.com", 284 | ".soufunimg.com", 285 | ".stackoverflow.com", 286 | ".staticsdo.com", 287 | ".synacast.com", 288 | ".tanx.com", 289 | ".tbcache.com", 290 | ".tdimg.com", 291 | ".tencent.com", 292 | ".thawte.com", 293 | ".tianyaui.com", 294 | ".tlbb2.com", 295 | ".tlbb8.com", 296 | ".tlbbsifu.com", 297 | ".tremormedia.com", 298 | ".tudouui.com", 299 | ".typecho.org", 300 | ".tvmao.com", 301 | ".umiwi.com", 302 | ".uusee.com", 303 | ".v.iask.com", 304 | ".vcimg.com", 305 | ".vizu.com", 306 | ".wandoujia.com", 307 | ".wdjimg.com", 308 | ".web887.com", 309 | ".williamlong.info", 310 | ".woniu.com", 311 | ".wrating.com", 312 | ".www.renren.com", 313 | ".xi666.com", 314 | ".xiachufang.com", 315 | ".xiami.net", 316 | ".xiaonei.com", 317 | ".xilu.com", 318 | ".xiyou53.com", 319 | ".xiyou54.com", 320 | ".xlpan.com", 321 | ".xmfish.com", 322 | ".xn--fiqs8s", 323 | ".xp9365.com", 324 | ".xtltt.com", 325 | ".xungou.com", 326 | ".ydstatic.com", 327 | ".yieldmanager.com", 328 | ".yihaodianimg.com", 329 | ".yintai.com", 330 | ".yiyi.cc", 331 | ".ykimg.com", 332 | ".yocc.net", 333 | ".youshang.com", 334 | ".youwo123.com", 335 | ".zaobao.com", 336 | ".zaojiao.com", 337 | ".zbjimg.com", 338 | ".zdface.com", 339 | ".zhi.hu", 340 | ".zhibo8.com", 341 | ".zhongsou.net", 342 | ".zx915.com" 343 | ], 344 | //alexa cn 500 345 | [ 346 | ".baidu.com", 347 | ".qq.com", 348 | ".taobao.com", 349 | ".163.com", 350 | ".weibo.com", 351 | ".sohu.com", 352 | ".youku.com", 353 | ".soso.com", 354 | ".ifeng.com", 355 | ".tmall.com", 356 | ".hao123.com", 357 | ".tudou.com", 358 | ".360buy.com", 359 | ".chinaz.com", 360 | ".alipay.com", 361 | ".sogou.com", 362 | ".renren.com", 363 | ".cnzz.com", 364 | ".douban.com", 365 | ".pengyou.com", 366 | ".58.com", 367 | ".alibaba.com", 368 | ".56.com", 369 | ".xunlei.com", 370 | ".bing.com", 371 | ".iqiyi.com", 372 | ".csdn.net", 373 | ".soku.com", 374 | ".xinhuanet.com", 375 | ".ku6.com", 376 | ".aizhan.com", 377 | ".4399.com", 378 | ".yesky.com", 379 | ".soufun.com", 380 | ".youdao.com", 381 | ".china.com", 382 | ".hudong.com", 383 | ".ganji.com", 384 | ".kaixin001.com", 385 | ".paipai.com", 386 | ".live.com", 387 | ".alimama.com", 388 | ".mop.com", 389 | ".51.la", 390 | ".51job.com", 391 | ".dianping.com", 392 | ".126.com", 393 | ".admin5.com", 394 | ".it168.com", 395 | ".2345.com", 396 | ".huanqiu.com", 397 | ".arpg2.com", 398 | ".777wyx.com", 399 | ".chinanews.com", 400 | ".letv.com", 401 | ".jiayuan.com", 402 | ".39.net", 403 | ".twcczhu.com", 404 | ".cnblogs.com", 405 | ".microsoft.com", 406 | ".dangdang.com", 407 | ".pchome.net", 408 | ".pptv.com", 409 | ".vancl.com", 410 | ".zhaopin.com", 411 | ".apple.com", 412 | ".bitauto.com", 413 | ".etao.com", 414 | ".qunar.com", 415 | ".eastmoney.com", 416 | ".yihaodian.com", 417 | ".115.com", 418 | ".21cn.com", 419 | ".blog.163.com", 420 | ".hupu.com", 421 | ".duowan.com", 422 | ".52pk.net", 423 | ".baixing.com", 424 | ".iteye.com", 425 | ".verycd.com", 426 | ".suning.com", 427 | ".discuz.net", 428 | ".7k7k.com", 429 | ".mtime.com", 430 | ".msn.com", 431 | ".ccb.com", 432 | ".hc360.com", 433 | ".cmbchina.com", 434 | ".51.com", 435 | ".yoka.com", 436 | ".seowhy.com", 437 | ".chinabyte.com", 438 | ".qidian.com", 439 | ".ctrip.com", 440 | ".cnbeta.com", 441 | ".tom.com", 442 | ".tenpay.com", 443 | ".meituan.com", 444 | ".120ask.com", 445 | ".ebay.com", 446 | ".51cto.com", 447 | ".sdo.com", 448 | ".meilishuo.com", 449 | ".17173.com", 450 | ".xyxy.net", 451 | ".19lou.com", 452 | ".yiqifa.com", 453 | ".nuomi.com", 454 | ".eastday.com", 455 | ".onlinedown.net", 456 | ".oschina.net", 457 | ".zhubajie.com", 458 | ".amazon.com", 459 | ".babytree.com", 460 | ".kdnet.net", 461 | ".docin.com", 462 | ".qq937.com", 463 | ".tgbus.com", 464 | ".51buy.com", 465 | ".nipic.com", 466 | ".im286.com", 467 | ".baomihua.com", 468 | ".doubleclick.com", 469 | ".dh818.com", 470 | ".ads8.com", 471 | ".hiapk.com", 472 | ".ynet.com", 473 | ".sootoo.com", 474 | ".mogujie.com", 475 | ".gfan.com", 476 | ".ppstream.com", 477 | ".a135.net", 478 | ".ip138.com", 479 | ".zx915.com", 480 | ".lashou.com", 481 | ".crsky.com", 482 | ".iciba.com", 483 | ".uuzu.com", 484 | ".tuan800.com", 485 | ".haodf.com", 486 | ".youboy.com", 487 | ".ulink.cc", 488 | ".qiyou.com", 489 | ".88db.com", 490 | ".tao123.com", 491 | ".178.com", 492 | ".ci123.com", 493 | ".yolk7.com", 494 | ".tiexue.net", 495 | ".stockstar.com", 496 | ".xici.net", 497 | ".pcpop.com", 498 | ".linkedin.com", 499 | ".weiphone.com", 500 | ".doc88.com", 501 | ".adobe.com", 502 | ".shangdu.com", 503 | ".aili.com", 504 | ".anjuke.com", 505 | ".360doc.com", 506 | ".cnxad.com", 507 | ".west263.com", 508 | ".jiathis.com", 509 | ".gougou.com", 510 | ".whlongda.com", 511 | ".mnwan.com", 512 | ".onetad.com", 513 | ".duote.com", 514 | ".55bbs.com", 515 | ".iloveyouxi.com", 516 | ".gongchang.com", 517 | ".meishichina.com", 518 | ".qire123.com", 519 | ".55tuan.com", 520 | ".cocoren.com", 521 | ".xiaomi.com", 522 | ".phpwind.net", 523 | ".abchina.com", 524 | ".thethirdmedia.com", 525 | ".coo8.com", 526 | ".aliexpress.com", 527 | ".onlylady.com", 528 | ".manzuo.com", 529 | ".elong.com", 530 | ".aibang.com", 531 | ".10010.com", 532 | ".3366.com", 533 | ".28tui.com", 534 | ".vipshop.com", 535 | ".1616.net", 536 | ".pp.cc", 537 | ".jumei.com", 538 | ".tui18.com", 539 | ".52tlbb.com", 540 | ".yinyuetai.com", 541 | ".eye.rs", 542 | ".baihe.com", 543 | ".iyaya.com", 544 | ".imanhua.com", 545 | ".lusongsong.com", 546 | ".taobaocdn.com", 547 | ".leho.com", 548 | ".315che.com", 549 | ".donews.com", 550 | ".cqnews.net", 551 | ".591hx.com", 552 | ".114la.com", 553 | ".gamersky.com", 554 | ".tangdou.com", 555 | ".91.com", 556 | ".uuu9.com", 557 | ".xinnet.com", 558 | ".dedecms.com", 559 | ".cnmo.com", 560 | ".51fanli.com", 561 | ".liebiao.com", 562 | ".yyets.com", 563 | ".lady8844.com", 564 | ".newsmth.net", 565 | ".ucjoy.com", 566 | ".duba.net", 567 | ".cnki.net", 568 | ".70e.com", 569 | ".funshion.com", 570 | ".qjy168.com", 571 | ".paypal.com", 572 | ".3dmgame.com", 573 | ".m18.com", 574 | ".caixin.com", 575 | ".linezing.com", 576 | ".53kf.com", 577 | ".makepolo.com", 578 | ".dospy.com", 579 | ".xiami.com", 580 | ".5173.com", 581 | ".vjia.com", 582 | ".hotsales.net", 583 | ".4738.com", 584 | ".mydrivers.com", 585 | ".alisoft.com", 586 | ".titan24.com", 587 | ".u17.com", 588 | ".jb51.net", 589 | ".diandian.com", 590 | ".dzwww.com", 591 | ".hichina.com", 592 | ".abang.com", 593 | ".qianlong.com", 594 | ".m1905.com", 595 | ".chinahr.com", 596 | ".zhaodao123.com", 597 | ".daqi.com", 598 | ".sourceforge.net", 599 | ".yaolan.com", 600 | ".5d6d.net", 601 | ".fobshanghai.com", 602 | ".q150.com", 603 | ".l99.com", 604 | ".ccidnet.com", 605 | ".aifang.com", 606 | ".aol.com", 607 | ".theplanet.com", 608 | ".chinaunix.net", 609 | ".hf365.com", 610 | ".ad1111.com", 611 | ".zhihu.com", 612 | ".blueidea.com", 613 | ".net114.com", 614 | ".07073.com", 615 | ".alivv.com", 616 | ".mplife.com", 617 | ".allyes.com", 618 | ".jqw.com", 619 | ".netease.com", 620 | ".1ting.com", 621 | ".yougou.com", 622 | ".dbank.com", 623 | ".made-in-china.com", 624 | ".36kr.com", 625 | ".wumii.com", 626 | ".zoosnet.net", 627 | ".xitek.com", 628 | ".ali213.net", 629 | ".exam8.com", 630 | ".jxedt.com", 631 | ".uniontoufang.com", 632 | ".zqgame.com", 633 | ".52kmh.com", 634 | ".yxlady.com", 635 | ".sznews.com", 636 | ".longhoo.net", 637 | ".game3737.com", 638 | ".51auto.com", 639 | ".booksky.org", 640 | ".iqilu.com", 641 | ".ddmap.com", 642 | ".cncn.com", 643 | ".ename.net", 644 | ".1778.com", 645 | ".blogchina.com", 646 | ".778669.com", 647 | ".dayoo.com", 648 | ".ct10000.com", 649 | ".zhibo8.cc", 650 | ".qingdaonews.com", 651 | ".zongheng.com", 652 | ".1o26.com", 653 | ".oeeee.com", 654 | ".tiancity.com", 655 | ".jinti.com", 656 | ".si.kz", 657 | ".tuniu.com", 658 | ".xiu.com", 659 | ".265.com", 660 | ".gamestlbb.com", 661 | ".2hua.com", 662 | ".moonbasa.com", 663 | ".sf-express.com", 664 | ".qiushibaike.com", 665 | ".ztgame.com", 666 | ".yupoo.com", 667 | ".kimiss.com", 668 | ".cnhubei.com", 669 | ".pingan.com", 670 | ".lafaso.com", 671 | ".rakuten.co.jp", 672 | ".zhenai.com", 673 | ".tiao8.info", 674 | ".7c.com", 675 | ".tianji.com", 676 | ".kugou.com", 677 | ".house365.com", 678 | ".xiazaiba.com", 679 | ".aipai.com", 680 | ".sodu.org", 681 | ".bankcomm.com", 682 | ".lietou.com", 683 | ".toocle.com", 684 | ".fengniao.com", 685 | ".99bill.com", 686 | ".bendibao.com", 687 | ".mapbar.com", 688 | ".nowec.com", 689 | ".yingjiesheng.com", 690 | ".comsenz.com", 691 | ".meilele.com", 692 | ".otwan.com", 693 | ".61.com", 694 | ".meizu.com", 695 | ".readnovel.com", 696 | ".fenzhi.com", 697 | ".up2c.com", 698 | ".500wan.com", 699 | ".fx120.net", 700 | ".ftuan.com", 701 | ".17u.com", 702 | ".lehecai.com", 703 | ".28.com", 704 | ".bilibili.tv", 705 | ".huaban.com", 706 | ".szhome.com", 707 | ".miercn.com", 708 | ".fblife.com", 709 | ".chinaw3.com", 710 | ".smzdm.com", 711 | ".b2b168.com", 712 | ".265g.com", 713 | ".anzhi.com", 714 | ".chuangelm.com", 715 | ".php100.com", 716 | ".100ye.com", 717 | ".hefei.cc", 718 | ".mumayi.com", 719 | ".sttlbb.com", 720 | ".mangocity.com", 721 | ".fantong.com" 722 | ] 723 | ]; 724 | 725 | function FindProxyForURL(url, host) { 726 | 727 | function check_ipv4() { 728 | // check if the ipv4 format (TODO: ipv6) 729 | // http://home.deds.nl/~aeron/regex/ 730 | var re_ipv4 = /^\d+\.\d+\.\d+\.\d+$/g; 731 | if (re_ipv4.test(host)) { 732 | // in theory, we can add chnroutes test here. 733 | // but that is probably too much an overkill. 734 | return true; 735 | } 736 | } 737 | 738 | function isDomain(domain) { 739 | var host_length, domain_length; 740 | return ((domain[0] === '.') ? (host === domain.slice(1) || ((host_length = host.length) >= (domain_length = domain.length) && host.slice(host_length - domain_length) === domain)) : (host === domain)); 741 | } 742 | 743 | function rule_filter(callback) { 744 | // IMPORTANT: Respect the order of RULES. 745 | for (var j = 0; j < RULES.length; j++) { 746 | var rules=RULES[j] 747 | for (var i = 0; i < rules.length; i++) { 748 | if (callback(rules[i]) === true) { 749 | return true; 750 | } 751 | } 752 | } 753 | return false; 754 | } 755 | 756 | // skip local hosts 757 | if (isPlainHostName(host) === true || check_ipv4() === true || rule_filter(isDomain) === true) { 758 | return "DIRECT"; 759 | 760 | } else { 761 | // if none of above cases, it is always safe to use the proxy 762 | return PROXY_METHOD; 763 | } 764 | 765 | } 766 | -------------------------------------------------------------------------------- /old/tools/test/blackgear-mono_pac.pac: -------------------------------------------------------------------------------- 1 | function r(r,e){return r[e]=1,r}function FindProxyForURL(r,u){if(isPlainHostName(u))return i;var a=u,f=0;do{if(n.hasOwnProperty(a))return e;if(t.hasOwnProperty(a))return i;f=u.indexOf(".",f)+1,a=u.substring(f)}while(f>0);var o=dnsResolve(u);if(!o)return e;if(o.indexOf(":")>=0)return i;var l=o.split("."),d=(255&l[1])<<8|255&l[2],c=l[0],h=_[c],p=s[c];if(0===h)return e;if(16===p)return i;var v=0,w=h.length,L=w>>1;do h[L]>d?w=L:v=L,L=v+w>>1;while(w>v+1);return d-h[v]>>p[v]===0?i:e}var e="PROXY 127.0.0.1:8080",i="DIRECT",t="ele.me|lan|cn|local|zhi.hu|iapps.im|bdwm.net|themex.net|126.net|alipay.com|baidu.com|netease.com|zhimg.com|tmall.com|weibo.com|elemecdn.com|bilibili.com|youku.com|tiebaimg.com|alicdn.com|taobao.com|taobaocdn.com|bdstatic.com|zhihu.com|acgvideo.com|ykimg.com|163.com|localhost".split("|").reduce(r,{}),n="me|youtu.be|akamaitechnologies.fr|t.co|g.co|name|im|io|in|wikinews.org|google.org|gwtproject.org|wikimedia.org|wiktionary.org|wikipedia.org|wikivoyage.org|golang.org|mediawiki.org|wikiversity.org|wordpress.org|webmproject.org|wikisource.org|wikimediafoundation.org|wikidata.org|wikibooks.org|chromium.org|polymer-project.org|wikiquote.org|fbcdn.net|akam.net|akamaihd.net|sstatic.net|adzerk.net|akadns.net|akamaitech.net|srip.net|akamaiedge.net|cloudfront.net|akamaistream.net|tfbnw.net|azurewebsites.net|typekit.net|facebook.net|akamai.net|fastly.net|edgekey.net|googlezip.net|edgesuite.net|goo.gl|googlecode.com|googlesource.com|google.com|apple.com|thefacebook.com|googlehosted.com|youtube.com|twitter.com|googlelabs.com|gstatic.com|googlevideo.com|v2ex.com|akamaitechnologies.com|twitpic.com|twimg.com|gmail.com|googleadservices.com|qidian.com|gmodules.com|withgoogle.com|chrome.com|androidify.com|googleapis.com|youtube-nocookie.com|wordpress.com|dropboxforum.com|blogger.com|blogspot.com|android.com|flickr.com|tieba.baidu.com|githubusercontent.com|googlesyndication.com|staticflickr.com|mzstatic.com|tweetdeck.com|tinypic.com|yahoo.com|googlemail.com|facebook.com|appspot.com|wp.com|dropbox.com|amazonaws.com|googledrive.com|panoramio.com|ggpht.com|stackoverflow.com|googleusercontent.com|github.com|dropboxstatic.com|dropboxusercontent.com|dmm.com|ytimg.com|gravatar.com|yimg.com|keyhole.com|google-analytics.com|feedburner.com|pushbullet.com".split("|").reduce(r,{}),_=[[0],[1,3,8,32,256,258,290,306,314,318,512,514,516,580,612,628,636,768,1025,1089,1121,1137,1145,1149,1151,2048,2560,2568,2571,2635,2667,2683,2687,3072,6144,11520,12288,14336,17408,20480,29696,46080,47104,48128,50176,51712,52736],0,0,0,0,0,0,0,0,[0],0,0,0,[0,12,256,4096,26240,26268,26368,30464,32512,33280,34304,36864,49212,49228,50176,52224,53248],0,0,0,0,0,0,0,0,0,0,0,0,[2048,6144,8936,9216,11264,12840,12928,13896,13976,14016,25296,25328,25472,26368,27264,27340,27936,28672,28752,29056,29440,29740,31048,31096,32768,33756,36864,37888,39936,47104,55296,57344],0,0,0,0,0,0,0,0,[0,8,264,392,456,488,504,1024,4096,8192,9216,9472,9508,9511,9527,9535,10240,12288,13056,14336,24576,63488,65024],0,0,[0,2,130,194,226,242,250,254,16384,24576,26624,27648,32768],0,0,[0,8,24,32,128,256,288,304,312,384,1024,12288,14336,15872,16000,16032,16052,16060,16128,20480,21312,21328,21336,23384,24408,24536,24568,24640,24672,24684,24940,25068,25084,25344,25408,25440,25456,25464,25600,30720,31232,31488,31524,31652,31716,31732,31740,32768,39936,39972,44068,46116,47140,47652,47908,47972,47988,48000,49152,51456,51712,59904,60928,61440,61952,64000,65024],[57356,57368,57388,57396,57408,57416,57424,57444,57484,57504,57520,57528,57544,57560,57568,57584,57676,57684,57720,57740,57772,57780,57808,57816,57852,57888,57952,57968,57976,57984,58048,58064,58092,58140,58204,58248,58256,58264,58300,58332,58344,58360,58424,58444,58468,58484,58500,58516,58548,58556,58572,58608,58640,58664,58672,58680,58720,58732,58744,58760,58768,58792,58840,58856,58900,58912,58948,58964,59004,59016,59048,59100,59132,59168,59216,59272,59304,60416,60928,61184,61216,61232,61440,61488,61496,61508,61516,61524,61564,61596,61660,61676,61708,61716,61744,61772,61788,61808,61864,61880,61892,61904,61936,61944,61960,61976,61996,62012,62024,62040,62048,62096,62112,62120,62132,62140,62148,62156,62168,62204,62212,62232,62296,62336,62344,62352,62364,62376,62388,62396,62436,62452,62976,63040,63072,63236,63276,63300,63308,63316,63332,63340,63380,63408,63428,63492,63508,63516,63536,63544,63564,63628,63636,63664,63696,63716,63732,63744,63752,63768,63864,63876,63888,63904,63912,63936,63980,64004,64012,64020,64028,64036,64072,64096,64112,64128,64144,64160,64168,64176,64200,64212,64220,64236,64244,64260,64268,64272,64292,64372,64448,64488,64500,64552,64560,64568,64736,65024,65032,65048,65060,65068,65076,65088,65096,65108,65116,65124,65136,65152,65160,65176,65192,65204,65220,65232,65244,65260,65272,65288,65296,65328,65340,65356,65364,65376,65388,65424,65448,65456,65464,65472,65480,65504,65512,65524],0,[16496,28804,28860,28880,28900,28908,28940,28956,28968,28980,29000,29036,29072,29096,29104,29112,29128,29144,29156,29168,29180,29196,29216,29224,29236,29280,29288,29320,29380,29412,29420,29436,29484,29540,29560,29572,29584,29596,29604,29640,29652,29668,29676,29684,29708,29728,29748,29756,29792,29836,29848,29904,29960,29972,29992,30020,30076,30204,30516,30524,30568,30580,30624,30696,30820,30860,30876,30884,30940,30960,30996,31028,31040,31048,31068,31080,31148,31188,31216,31248,31264,31272,31292,31324,31340,31348,31392,31424,31440,31448,31516,31524,31532,31564,31608,31616,31624,31636,31644,31652,31668,31692,31700,31712,31744,31764,31772,31780,31788,31812,31820,31844,31868],0,[23552,31744],0,[1024,13056,14080,16384,28672,30720,32768,32770,35840,38912,53248,56320,59392,61184,61376,63200],0,0,0,0,[56832],0,0,0,[3584,5632,7680,15872,16872,16896,17536,20992,21248,22336,25472,25984,29696,32768,36864,39424,49152,61440],[8192,16384,20480,27392,28416,38656,39680,44032,48896,49136,65520],[0,14080,16128,40960,49664,51200,55296,59392,60160,62848,63232,64512,64896,65280],[1104,1200,2208,7168,7552,11648,11744,12160,12288,22464,32768,59392,60416,61440],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,256,684,1024,4096,12288,12856,13312,13668,13824,14304,16384,18432,19456,19968,20000,20480,24576,24584,24592,24704,25440,25920,25956,25958,25974,25982,26176,26212,26214,26216,26232,26624,28224,28256,28276,28284,30720,31744,32256,32768,32776,32808,32824,33024,34048,34560,36864,49152,51200,52096,52128,52140,52156,52224,57344,59392,59968,59980,60012,60028,60416,62464,63488,64256,64264,64776,65032,65160,65224,65256,65272],0,[264,276,328,344,424,620,668,676,712,852,884,900,908,916,924,1080,1192,1208,1316,1332,1532,1612,1756,1796,1820,2004,2012,2052,2080,2100,2156,2204,2248,2268,2456,2552,2560,2576,2644,2671,2700,2996,3104,3140,3208,3256,3304,3452,3472,3524,3572,3668,3696,3716,3740,3824,3844,3856,3936,4040,4148,4176,4184,4204,4220,4392,4472,4512,4556,4580,4800,4816,4832,4876,4904,4928,4936,5096,5132,5152,5232,5248,5280,5368,5488,5512,5552,5584,5616,5632,5696,5732,5748,5756,5820,5860,5884,5896,5944,6048,6064,6116,6260,6272,6288,6320,6328,6364,6372,6392,6408,6420,6436,6448,6464,6548,6556,6616,6656,6720,6812,6884,6896,6916,6924,6936,6968,7008,7120,7152,7172,7372,7440,7552,7560,7700,7776,7828,7880,7908,7916,7936,7984,8000,8084,8096,8104,8136,8192,8704,8960,8992,9008,9236,9244,9252,9272,9280,9288,9312,9348,9376,9440,9456,9472,9484,9496,9516,9524,9544,9572,9596,9608,9644,9680,9720,9728,9760,9768,9784,9804,9812,9820,9844,9860,9868,9948,9980,10000,10048,10072,10084,10092,10128,10144,10184,10216,10252,10284,10328,10340,10352,10432,10452,10460,10468,10512,10548,10612,10636,10644,10656,10716,10760,10776,10784,10816,10828,10856,10932,10984,11024,11032,11092,11104,11112,11132,11140,11172,11192,11200,11216,11228,11240,11248,11320,11344,11352,11384,11396,11408,11416,11432,11440,11488,11500,11564,11580,11592,11720,11736,11744,11768,11776,11788,11928,12020,12036,12052,12068,12080,12112,12128,12140,12148,12168,12232,12244,12252,12280,12308,12340,12380,12432,12490,12504,12556,12564,12616,12636,12652,12672,12720,12740,12792,12836,12844,12908,12924,12932,12940,12972,13020,13352,13384,13408,13416,13472,13484,13496,13508,13572,13632,13660,13668,13692,13708,13728,13748,13772,13784,13804,13816,13832,13872,13884,13984,14036,14052,14064,14104,14160,14200,14232,14252,14284,14308,14316,14344,14352,14368,14388,14396,14408,14436,14476,14488,14520,14536,14552,14604,14644,14668,14700,14728,14788,14872,15030,15180,15204,15216,15232,15252,15268,15320,15392,15404,15524,15588,15596,15676,15720,15756,15768,15776,15788,15800,15896,15924,15944,15960,15968,16000,16028,16060,16076,16092,16160,16192,16208,16216,16268,16280,16288,16304,16312,16320,16336,16368,49152,49200,49208,49236,49280,49296,49316,49340,49360,49368,49404,57384,57404,57424,57564,57684,57872,57896,57912,57936,57972,57988,58012,58036,58052,58160,58184,58192,58212,58232,58244,58308,58316,58324,58340,58380,58396,58436,58456,58496,58528,58544,58572,58596,58644,58760,58772,58796,58836,58844,58852,58860,58880,58908,58920,58976,59076,59084,59092,59116,59152,59200,59280,59316,59380,59396,59536,59604,59652,59692,59700,59752,59776,59784,59876,59904,59924,59960,60028,60076,60084,60176,60208,60216,60240,60288,60304,60344,60352,60360,60380,60508,60672,60696,60740,60760,60824,60848,60912,60928,60944,60976,60984,61016,61024,61060,61068,61088,61124,61132,61180,61224,61252,61280,61336,61360,61368,61376,61388,61408,61428,61456,61476,61512,61524,61564,61596,61612,61684,61708,61768,61788,61856,61880,61916,61960,62016,62080,62112,62120,62128,62152,62164,62172,62192,62232,62344,62460,62480,62522,62538,62546,62550,62628,62696,62716,62743,62772,62780,62800,62844,62984,63096,63108,63128,63400,63408,63432,63444,63488,63552,63588,63612,63640,63656,63680,63700,63712,63756,63796,63872,63880,63888,63908,63932,63988,63996,64032,64104,64124,64180,64192,64216,64224,64236,64248,64288,64340,64352,64380,64416,64460,64492,64540,64548,64576,64616,64684,64716,64744,64760,64772,64828,64972,64988,65000,65032,65044,65088,65136,65200,65212,65220,65244,65348,65368,65416,65464,65480,65488,65508],0,0,[0,2,18,26,30,64,512,2816,11008,13312,15360,18944,20480,27648,31744,57344],0,0,0,[1536,4096,10240,11408,12288,13056,13568,14336,16384,18432,19200,19456,19612,19640,19648,19776,20480,22528,23840,24064,32256,38912,39936,42272,42496,44224,44288,44320,44352,44480,45056,53248,58368,59424,60416,61440],[0,16896,17344,17472,18432,21760,23488,28672,29696,30408,30528,30592,30720,31744,32256,40448,42496,43520,44032,46080,47616,49152,53248,56604,56704,56960,57328,57336,57344,60256,60316,60348],[0,16384,18688,19200,20480,24576,28032,28416,29440,29952,31232,33280,33792,35120,49152,57344],[0,2048,3008,3072,4096,4608,6144,7936,11264,13472,13824,14848,15104,15328,15872,32256,33376,33392,33792,35840,49664,50532,51200,51712,52224,53344,53600,53728,54272,54372,54456,54528,54784,55808,64000],[7168,13824,15360,17408,20288,20480,24576,26624,28160,28224,28416,28576,28672,33792,34560,35328,36160,36224,50176,50936,53248,61440],[6144,7168,8192,11264,15360,17728,21504,21696,21952,25600,30720,31760,37888,39936,42560,43008,46080,48640,56832,60928],[8,24,256,2304,2816,3328,4096,12800,13312,14336,14976,15056,15360,16896,17664,17920,19456,21760,22928,23120,23224,24320,28672,29696,32768,49152,49424,49456,49584,49664,50176,50688,50944,51072,52224,52992,54016,54432,54592,54720,54816,54848,54912,55936,56192,57344,61952,64320,64512,65152,65408],[2048,5376,9472,11520,12288,13616,13744,14592,14848,15104,17152,18176,18688,19008,19072,23168,24192,24448,25600,26384,26408,26440,26496,26792,27136,28672,30784,31040,31168,31360,31744,48128],[6144,6656,7168,16384,16896,17264,18432,20480,21504,22560,22816,22944,23008,23536,26128,26144,28672,30720,31744,32256,32640,33792,36864,45568,46080,47104,47616,48128,48640,50688,51712,52736,54272,57344,58368,58880,61184,61952,62464,64512],[0,512,640,1664,2176,2560,3976,4096,4800,4816,4832,5856,6112,6976,7488,7616,7728,8128,8192,10240,10304,10368,10624,10752,10880,10976,11264,12288,14592,15232,15744,16000,16160,19408,19968,20480,21200,21504,24576,27648,28672,36864,38048,38848,41160,41344,42368,42880,45056,59392,60288,63488,64608,64752],[0,6144,7680,11776,13312,16384,18464,18560,19456,21504,22536,23040,23552,24064,32768,34944,35072,36736,49152],[8,24,1024,2048,10240,11776,11904,12416,12672,12808,13056,13472,13520,13552,14000,14080,14336,14848,14984,15104,16128,17408,19456,20352,22784,25728,25856,26064,49152,51392,51456,52224,57344,63488,65280],[64,192,1024,2048,2560,2816,3072,3584,12288,12544,13056,16384,24576,26112,26176,28672,30464,32888,34816,36992,39104,39936,48128,50688,51264,51504,52224,57344,61440,63512,63536,65344],[128,1024,3072,12672,12960,13312,15360,15872,16384,24576,25088,25472,25600,25856,26368,27776,27856,28672,32768,34896,35072,35584,36864,45116,45136,45312,47360,48384,48896,50176,51072,52736,59392,61952,62464,63744,64768],[1600,3584,5120,7360,7488,7936,10352,10416,10448,10752,12032,16384,16896,17152,19200,20224,22528,27656,27688,28000,28672,32256,34304,37760,38656,39936,40960,44032,49152,50176,51200,56320,60416,61440,61568,61952,62400,63488,63744,64256,65024],[8128,12224,14976,15744,15872,16384,24576,25088,26624,30720,43264,43776,53248,53760,54528,54880,55040,55296,65152],0,[0],0,0,0,0,0,0,0,0,0,0,0,[2304,33024,37888,39680,40704,43520,45056,46848,47616,48384,50176,54272,55552,56064,56576,57344,57856],[19200,36608,52480,52992,53760,57344,60672,61440,62208,62976,63744,65280],0,0,0,[0,1792,3072,13312,31488,65280],0,0,0,0,0,[0,29440,30976,33176,33216,33240,33276,35328,57088,61952,61960,61980,61996,62028,62044,62064,62072,62104,62120,62136,62144,62164,62176,62184,62200,65280],0,[26752],[0,768,8704,25344,25856,30208],0,0,0,[0,4608,15616,31232,37888,39936,65280],0,[57856],0,[52992],[26880],[0,12036,13568,13604,13656,13688,13704,13728,13756,13788,13808,32000,36352,45312,45824,52224],0,0,[28416],[35584,48384,56564],[40960],[65024],0,[2048,8704,10752,11776,20480,26624,30720,53248],[4096],0,0,[0,4096,6144,7680,10752,11264,11776,19968,24064,26112,27264,37376,39424,40960,45568,47232,47360,48384,48896],0,0,0,0,[19456,21504,22016,22528,24120,24160,24448,32640,33152,33408,34816,37904,38040,38104,38136,38272,38560,38912,43008,45760,47104,48128,48532,51452,51964,52220,53248,53984,54272,57056,57312,59648,59712,60224],0,[4288,4608,6072,6088,8192,12384,12544,12800,12912,13056,13824,15616,20480,22528,23552,24576,32768,36864,40192,41024,44544,51200,60544,60928,61184,61440,65024],[0,16384,20148,20916,21504,23424,23432,23448,23552,32768,40960,43008,43520,44032,46592,47104,63488],0,0,0,0,0,0,0,0,[0,2,22627,31898,43008,48298],0,0,0,0,0,[4608,13156],0,0,0,[100,122,176,896,1152,1276,1542,1602,1608,1623,1625,1628,1639,1644,1646,1650,1712,2048,2050,2060,2072,2125,2176,2240,2336,2338,2352,2355,2361,2363,2624,3073,3089,3091,3144,3156,3168,3170,3178,3183,3188,3648,3653,3657,3662,3672,3681,3688,3692,3695,3698,3702,3708,3711,3713,3719,3733,3735,3741,3743,3753,3755,3760,3768,3792,3797,3803,3806,3809,3811,3815,3819,3823,3830,3835,5186,5199,5207,5214,5234,5237,5240,5245,5247,5507,5517,5523,5526,5530,5532,5880,7048,9728,9736,9776,9840,9856,9864,9866,9868,9874,9877,9886,9892,9904,9912,9976,10244,10247,10255,10375,10380,10383,10385,10390,10395,10398,10402,10504,10507,10509,10624,10626,10648,10688,10736,11084,11152,11280,11331,11338,11393,11396,11410,11520,11522,11535,11551,11792,11794,11796,11808,11904,12000,12114,12158,12160,12162,14832,14848,15104,15316,15336,15340,15408,15456,15472,15492,15508,15516,15984,16120,16124,16127,16209,16217,16221,16223,16288,16376,16640,16648,17152,17668,17680,17920,18016,18112,18472,18512,18816,18952,19024,19198,19408,19452,19708,19792,19804,19976,20448,20472,20672,20736,21500,21516,21520,21528,21968,22265,22268,22352,22792,23016,23040,23152,23236,23264,23296,23392,23424,23472,23520,23552,23560,23600,23804,24060,24156,24320,24560,24572,28668,30716,31228,31236,31264,31296,31344,31360,31364,31584,31760,31768,32112,32176,32512,32524,32540,32552,32568,32624,32656,32672,32704,32720,32724,32756,32764,33280,33504,33552,33584,33744,34080,34362,34432,34864,35024,35303,36256,36368,36612,36624,36664,37536,37564,37572,37580,37776,37920,37952,38176,38304,38368,38416,38456,38592,38624,38656,38784,39088,39168,39216,40384,40608,41136,41539,41547,41984,42080,42336,42416,42448,42479,42481,42483,42485,42491,42495,42720,43168,43648,43736,43768,43992,44011,44032,44288,44296,44512,44608,45280,46064,46208,46288,46448,46624,46784,48384,48464,48568,48896,48964,48980,48988,49152],[4,10,18,24,42,45,47,81,83,90,96,104,113,115,122,128,130,134,137,142,144,146,148,150,152,177,224,260,274,282,321,323,326,332,346,353,357,359,364,509,576,585,624,638,652,662,664,668,672,692,708,721,726,738,741,748,836,840,843,848,864,873,880,888,891,903,907,911,1156,1158,1175,1179,1198,1204,1210,1229,1232,1251,1254,1284,1287,1289,1291,1301,1324,1326,1332,1336,1340,1394,1398,1400,1452,1460,1462,1465,1468,1470,1475,1494,1498,1667,1672,1674,1678,1686,1693,1695,1760,1784,1921,1930,1939,1942,1950,1984,1992,2048,2056,2071,2079,2118,2130,2134,2139,2158,2163,2214,2217,2221,2232,2234,2238,2240,2245,2247,2251,2257,2261,2263,2265,2268,2336,2340,2361,2367,2369,2374,2376,2379,2381,2400,2404,2412,2462,2594,2616,2634,2644,2648,2655,2685,2886,2892,2898,2900,2916,2925,2933,2938,2942,2952,2957,2959,2996,3024,3088,3091,3096,3129,3137,3142,3159,3167,3172,3175,3186,3190,3202,3209,3268,3276,3283,3291,3298,3312,3346,3352,3372,3408,3416,3420,3501,3552,3555,3561,3608,3617,3640,3645,3688,3698,3702,3746,3768,3776,3778,3798,3815,3830,3840,3860,3862,3927,3929,3945,3952,3970,3989,3991,3996,4014,4067,4072,4080,4086,4106,4108,4112,4123,4134,4145,4147,4154,4229,4257,4282,4324,4334,4336,4341,4354,4370,4380,4391,4408,4426,4440,4488,4516,4539,4542,4583,4585,4600,4607,4610,4612,4615,4639,4645,4656,4660,4680,4688,4695,4708,4713,4715,4718,4737,4739,4741,4752,4761,4807,4816,4819,4823,4882,4888,4894,4896,4905,4908,4910,4922,4924,4928,4932,4936,4965,4975,4995,4997,5008,5013,5020,5040,5042,5072,5092,5097,5106,5112,5119,5137,5160,5168,5181,5185,5204,5209,5226,5235,5237,5239,5242,5246,5255,5263,5270,5350,5352,5356,5376,5378,5384,5386,5394,5409,5417,5420,5444,5458,5472,5500,5512,5521,5582,5656,5660,5663,5700,5708,5710,5716,5719,5724,5731,5738,5754,5763,5795,5798,5802,5808,5826,5874,5877,5884,5888,5935,5949,5951,5961,5973,5980,5986,5995,6000,6018,6028,6060,6070,6074,6080,6085,6092,6112,6114,6118,6137,6139,6157,6162,6171,6187,6200,6202,6211,6218,6223,6225,6228,6230,6234,6255,6260,6266,6289,6296,6301,6305,6311,6330,6343,6346,6356,6361,6363,6388,6419,6421,6446,6448,6464,6491,6499,6506,6531,6535,6538,6547,6553,6555,6564,6566,6574,6580,6582,6591,6599,6602,6608,6629,6635,6642,6668,6690,6705,6711,6713,6716,6721,6724,6732,6736,6740,6753,6758,6771,6785,6799,6804,6810,6814,6826,6829,6832,6841,6858,6866,6870,6878,6880,6884,6888,6912,6922,6927,6932,6934,6952,6957,6965,6977,6993,7000,7014,7021,7029,7033,7035,7037,7112,7114,7145,7153,7162,7178,7180,7201,7203,7211,7222,7224,7241,7244,7254,7256,7280,7299,7304,7308,7313,7333,7337,7346,7353,7355,7364,7394,7407,7426,7432,7437,7452,7470,7481,7485,7487,7493,7497,7505,7514,7519,7524,7527,7536,7544,7606,7611,7613,7629,7634,7641,7651,7655,7657,7672,7678,7696,7705,7707,7709,7746,7761,7767,7791,7801,7803,7832,7836,7842,7853,7855,7867,7874,7897,7900,7902,7912,7915,7920,7926,7930,7981,7985,7987,7990,8005,8008,8016,8021,8033,8041,8044,8060,8098,8110,8113,8117,8123,8125,8140,8156,8158,8161,8165,8184,8189,8212,8240,8248,8252,8254,8260,8268,8273,8276,8287,8294,8297,8322,8325,8332,8344,8378,8384,8388,8395,8397,8404,8452,8455,8463,8469,8474,8480,8511,8515,8521,8527,8548,8570,8577,8579,8593,8604,8606,8622,8633,8648,8650,8652,8654,8662,8672,8674,8681,8691,8698,8708,8725,8731,8743,8752,8758,8760,8771,8773,8780,8796,8810,8817,8851,8854,8856,8865,8891,8896,8908,8936,8944,8946,8949,8955,14082,14084,14090,14093,14102,14110,14173,14181,14189,14196,14199,14208,14226,14272,14276,14298,14301,14304,14337,14340,14348,14360,14374,14376,14382,14384,14404,14418,14431,14446,14457,14497,14505,14508,14511,14519,14521,14523,14528,14534,14537,14544,14546,14550,14552,14563,14568,14576,14588,14590,14597,14604,14620,14631,14638,14650,14653,14658,14661,14663,14665,14682,14693,14701,14715,14749,14792,14794,14798,14814,14816,14838,14841,14845,14847,15874,16003,16011,16033,16069,16100,16106,16118,19616,19624,19892,20016,20224,20256,20484,20512,20537,20612,20628,20636,20736,20752,20992,21008,21248,21304,21472,22016,22270,22560,22720,22784,22792,22920,23040,23048,23168,23232,23328,23392,23416,23552,23712,23808,24064,24320,24416,24480,24544,25352,25368,25424,25632,25648,25663,25680,25712,25792,26656,26976,27392,28320,28368,28392,28394,29428,30400,30449,30456,30488,30496,30544,30549,30577,30705,30713,30717,30719,32800,32864,32992,33032,33312,33824,34544,34656,34720,36576,36960,37120,37888,37952,37968,37974,38236,38976,39040,39168,40128,40464,41064,41089,41152,41216,41396,41408,42656,43008,43578,43776,44000,44548,44551,44640,44928,44992,45120,45224,47184,48032,48384,48390,48496,48576,48736,48889,48896,48912,48960,49040,49152,49632,49784,49984,50032,50048,50176,51948,52544,52608,53056,53184,53248,53264,53280,53728,54272,54352,55272,57024,57088,57104],0,0,0,0,0,0,[512,1280,1336,1408,3072,3648,3696,3952,4016,4224,5376,5920,6400,10496,11520,12032,13056,13568,14528,18432,19456,19968,20288,20448,20992,22400,47552,49248],[16384,20480,24576,34816],0,0,0,0,0,0,[0,14336,22528,24576,25688,25816,25848,26624,27648,47552,47600,49152,61440,63744],[18432,20992,21376,32768,55296,59392,61952,62976],[26048,28672,39040,39424,40960,49152,59136,59264,59456,59904,61952,63368,63488,64512],[0,2048,3072,3200,3328,3840,31232,32896,33408,33664,34272,34816,44032,46080,49152,50176,50688,50944,51072,51136,51168,59360,61408],[4096,20480,32000,32384,32768,40960,43008,51200,55296,61440,63488],[0,5120,7096,16384,24576,28672,29696,30720,32768,36864,40960,42496,49152,50688,51456,51968,53248,56320,57264,61440,63488,64640,65024,65280,65516,65532],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]],s=[[16],[1,0,3,5,0,5,4,3,2,1,1,0,6,5,4,3,2,8,6,5,4,3,2,1,0,8,3,1,6,5,4,2,0,10,11,8,10,11,10,12,10,10,9,11,10,10,9],0,0,0,0,0,0,0,0,[16],0,0,0,[3,2,2,12,2,2,12,11,8,9,9,12,2,2,9,9,12],0,0,0,0,0,0,0,0,0,0,0,0,[12,11,3,11,10,3,7,3,3,6,5,4,7,8,6,2,5,6,4,6,7,2,3,3,9,2,8,11,10,13,11,10],0,0,0,0,0,0,0,0,[2,8,7,6,5,4,3,10,12,10,8,5,1,4,3,0,11,9,8,11,15,10,8],0,0,[0,7,6,5,4,3,2,1,13,11,10,8,14],0,0,[2,4,2,5,7,5,4,3,2,7,10,11,10,7,5,4,3,2,8,9,4,2,11,10,7,5,3,5,3,8,7,4,2,6,5,4,2,3,10,9,8,5,7,6,4,3,2,12,5,12,11,10,9,8,6,4,3,7,11,7,13,10,9,8,11,10,9],[2,2,2,3,3,2,2,2,3,2,2,2,4,2,2,2,2,2,3,2,2,3,2,5,2,6,4,3,2,6,4,3,5,6,4,3,2,5,5,2,2,6,4,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,3,2,5,3,3,2,2,3,2,2,2,2,5,2,4,5,5,4,9,8,5,4,2,2,2,3,3,2,2,4,6,2,5,3,2,2,4,2,2,4,2,2,5,2,3,4,3,4,3,4,3,2,4,3,2,2,3,2,2,3,2,4,2,2,2,2,3,2,2,2,2,3,2,6,5,2,3,3,2,2,4,2,3,3,4,6,2,2,2,2,2,6,3,2,5,2,3,2,3,2,2,2,3,4,3,2,2,2,2,3,2,3,2,2,4,3,2,3,2,3,2,2,3,2,2,2,3,2,1,2,2,2,3,2,2,2,2,2,3,2,2,2,2,2,2,2,3,2,3,3,2,4,3,3,4,3,2,4,3,4,2,2,2,4,2,2,2,2,2,2,2,2,2,4,3,2,2],0,[1,2,2,4,3,2,4,2,2,3,2,2,3,2,2,2,4,3,2,2,3,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,3,2,2,3,4,3,2,3,3,2,2,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,3,2,3,2,3,2,5,4,3,2,5,4,3,2,5,4,3,2,3,2,5,4,2,3,2,3,2,4,3,2,2,5,2,2,3,2,2,2,3,2,2],0,[13,10],0,[10,10,8,13,11,10,0,1,9,10,10,10,10,6,6,5],0,0,0,0,[9],0,0,0,[11,10,13,9,3,9,7,7,8,6,9,7,10,11,8,9,13,12],[13,12,10,10,8,7,8,10,7,14,4],[13,8,8,13,9,12,11,9,8,7,8,8,7,8],[4,4,4,7,7,6,4,6,11,6,14,10,9,10],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[2,2,2,10,13,9,2,8,2,8,3,11,10,9,2,5,12,3,2,4,7,5,5,0,4,3,1,5,1,0,4,3,10,5,4,3,2,10,9,8,2,5,4,3,10,9,8,12,11,9,5,3,4,2,10,11,9,3,5,4,2,11,10,9,2,9,8,7,6,5,4,3],0,[2,3,2,2,2,2,2,2,4,5,4,3,2,3,2,2,2,2,2,3,2,2,2,2,2,3,2,3,2,2,2,2,3,2,2,3,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,3,2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,2,2,3,3,2,2,2,2,2,2,2,2,3,3,2,2,2,6,5,4,3,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,1,4,3,2,3,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,2,2,3,2,2,2,2,2,2,2,2,4,3,2,2,2,2,9,8,5,4,2,2,2,2,3,2,2,2,3,6,4,3,2,3,2,2,3,2,3,2,5,3,4,3,2,2,3,2,2,2,3,2,2,2,4,2,2,2,2,3,2,2,5,5,2,5,2,2,2,2,2,2,2,5,2,2,2,2,3,3,4,2,3,2,3,2,2,2,2,2,2,2,3,2,2,2,2,2,3,2,3,2,2,2,2,2,3,2,2,2,2,5,2,6,4,2,7,4,3,2,2,2,7,5,3,2,2,3,2,2,2,2,3,3,2,2,2,2,2,2,2,4,1,5,2,2,3,3,2,2,3,2,2,2,5,4,2,3,2,5,5,2,4,3,2,3,3,2,2,2,3,2,2,4,3,2,2,3,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,3,2,3,2,3,2,3,2,3,3,2,2,2,2,2,2,3,2,2,2,2,2,1,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,3,2,3,3,2,2,4,2,5,3,5,3,4,3,5,4,3,2,3,2,4,3,2,4,2,4,5,3,2,5,4,2,2,2,3,2,2,3,2,2,4,2,2,2,3,2,2,2,2,2,2,2,3,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,3,2,2,3,2,2,3,2,3,2,2,2,3,3,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,3,3,4,3,2,2,2,7,3,4,3,2,2,2,6,4,3,5,3,2,3,2,2,3,5,2,2,3,3,2,2,3,3,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,3,2,3,2,2,2,3,2,3,2,2,2,2,2,2,2,2,2,4,3,2,1,2,2,2,0,2,2,2,3,3,3,2,3,3,2,2,2,1,2,2,2,2,2,2,2,3,2,2,2,2,2,4,3,2,2,2,2,2,2,2,2,2,2,3,2,2,2,3,2,2,3,2,2,2,2,2,3,2,2,2,2,2,3,2,2,2,4,2,2,2,0,2,2,3,3,2,2,3,2],0,0,[0,4,3,2,1,6,11,13,11,11,10,9,12,12,10,12],0,0,0,[9,10,10,4,8,9,8,11,9,9,8,6,2,2,7,6,11,10,5,13,9,10,9,5,9,6,5,4,6,5,13,12,10,5,9,12],[14,8,4,5,11,8,5,10,9,3,6,5,10,8,13,11,9,8,11,10,9,12,11,0,8,7,2,2,11,5,5,2],[14,10,9,8,12,11,7,10,9,8,11,9,8,3,10,13],[11,9,5,10,9,8,10,8,11,5,10,8,7,2,14,10,4,3,11,10,9,2,9,8,10,8,7,5,6,2,3,7,9,13,9],[8,9,11,8,6,12,11,10,4,6,5,5,11,8,8,9,3,6,9,3,13,12],[10,9,10,12,10,4,6,5,6,11,10,4,11,10,5,11,10,13,12,9],[3,3,11,9,8,8,12,4,10,9,4,4,10,7,8,7,10,8,4,4,3,8,10,9,14,8,5,4,3,9,8,8,7,5,9,10,8,4,7,6,5,4,10,8,7,12,11,6,9,7,7],[11,12,11,8,10,4,4,8,7,11,10,9,8,5,12,10,8,7,9,4,3,3,4,3,9,11,8,7,3,7,14,10],[9,8,10,9,8,4,11,9,9,8,7,6,5,4,4,3,11,10,9,8,5,10,10,8,10,8,9,8,11,9,10,9,9,10,9,8,8,8,11,10],[9,5,10,9,7,7,3,8,4,3,10,8,5,9,7,6,4,5,11,6,4,8,7,5,4,5,9,11,9,9,8,7,5,4,9,8,4,11,11,9,13,10,5,6,3,10,9,7,12,9,6,10,3,9],[12,10,12,10,10,11,5,7,11,10,3,9,8,9,11,6,7,5,14],[4,3,9,13,10,6,9,8,7,3,8,5,5,4,3,6,9,7,5,10,8,10,9,6,8,7,6,4,11,3,8,10,12,10,8],[7,6,10,9,8,7,9,8,8,6,8,13,9,4,5,10,8,3,11,7,6,10,11,8,6,4,10,12,11,3,4,3],[6,11,10,7,5,11,9,8,13,9,7,7,5,8,7,4,4,12,11,4,9,8,13,2,4,11,10,9,8,9,7,9,10,7,10,8,8],[6,10,10,7,6,8,6,5,4,8,6,9,7,11,10,8,11,3,3,3,11,11,9,7,9,8,11,10,9,8,11,12,10,7,6,8,6,7,9,8,6],[12,6,7,7,6,13,9,8,12,11,8,8,6,9,7,5,6,11,7],0,[16],0,0,0,0,0,0,0,0,0,0,0,[8,8,8,8,8,8,8,8,8,8,12,10,8,9,8,8,9],[8,8,9,8,8,8,8,8,8,8,9,8],0,0,0,[8,8,8,8,8,8],0,0,0,0,0,[8,8,9,2,2,2,2,9,8,3,2,2,4,3,3,3,2,4,2,3,2,2,2,4,2,8],0,[7],[8,8,10,8,8,9],0,0,0,[8,8,8,8,8,8,8],0,[8],0,[8],[8],[8,2,4,5,5,4,2,4,2,2,2,8,8,8,8,8],0,0,[8],[8,8,2],[8],[8],0,[11,11,10,9,12,12,11,12],[12],0,0,[12,11,10,9,9,8,13,12,9,8,7,11,9,12,8,6,10,9,8],0,0,0,0,[10,9,8,10,3,4,13,7,8,7,11,3,3,5,3,5,5,12,11,6,10,7,2,9,8,2,9,5,9,8,5,6,5,5],0,[5,7,3,3,12,5,8,4,4,8,7,8,11,10,8,13,12,11,8,5,9,11,7,8,5,11,8],[14,11,2,2,9,2,4,3,10,13,11,9,8,10,5,14,11],0,0,0,0,0,0,0,0,[0,0,0,0,8,0],0,0,0,0,0,[9,0],0,0,0,[1,1,2,1,5,2,1,1,1,1,0,1,0,0,1,0,4,0,2,0,0,0,5,4,0,1,1,2,1,0,4,1,1,0,0,1,0,1,0,0,0,1,0,2,1,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,1,1,0,1,1,1,0,0,2,0,0,0,0,0,2,1,0,0,0,0,0,1,1,1,2,0,0,3,1,2,3,6,4,3,1,0,2,1,3,2,3,1,6,3,1,0,0,1,0,1,0,0,1,1,0,1,1,0,0,1,3,0,4,2,4,4,0,0,0,1,1,1,0,4,0,1,0,1,5,0,4,1,0,0,1,4,0,0,2,1,0,3,3,4,4,3,2,2,2,0,0,3,2,1,0,5,2,3,1,2,2,4,5,4,4,3,4,2,3,4,1,4,2,2,3,2,3,3,2,4,2,4,2,1,3,4,0,2,4,3,3,2,4,0,4,2,4,2,4,5,2,3,4,3,2,2,5,3,12,11,9,3,2,3,5,4,0,0,4,3,2,4,4,3,4,2,4,3,5,4,3,4,1,5,3,2,5,5,3,4,4,4,0,4,4,5,0,5,4,2,5,3,4,2,3,2,4,4,6,5,5,5,5,2,4,5,2,5,4,2,4,5,5,4,0,0,4,5,4,4,4,1,0,0,0,2,0,5,5,5,5,3,3,0,2,2,3,5,4,5,4,5,3,4,4,5,6,4,3,0,4,3,2,12],[2,1,0,0,1,1,0,1,0,1,1,3,1,0,0,0,2,1,0,0,0,0,0,1,0,0,0,2,0,1,1,0,1,1,0,2,1,0,0,1,3,0,3,1,0,0,2,1,3,1,1,0,1,1,0,1,0,1,0,3,2,0,3,0,0,0,0,0,1,0,2,0,1,0,0,0,2,0,1,1,1,0,0,1,0,1,2,1,1,1,0,0,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,0,4,1,0,1,0,1,0,1,0,0,0,3,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,2,1,0,0,0,0,1,0,0,0,1,0,1,0,2,1,0,0,0,0,1,2,0,0,0,0,2,0,2,2,0,0,0,0,2,1,0,2,2,0,0,0,0,1,1,3,0,1,0,0,0,0,0,3,2,0,0,0,2,0,0,1,3,1,2,0,1,0,0,2,0,0,1,0,1,0,0,3,0,1,0,0,0,4,1,0,1,0,0,3,1,0,0,2,0,0,3,1,0,0,1,3,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,2,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,1,3,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,2,0,1,0,0,0,1,0,0,0,0,0,0,2,0,0,1,0,0,0,0,3,0,1,1,1,0,0,1,0,0,0,2,0,0,0,0,1,0,0,1,0,1,2,0,2,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,3,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,4,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,3,2,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,3,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,1,0,1,0,0,0,0,0,0,2,0,0,2,2,2,4,4,4,1,4,0,4,3,2,3,4,1,3,2,3,4,7,1,5,5,2,3,2,2,2,6,5,5,4,3,2,5,8,5,3,6,5,5,4,3,4,4,3,0,5,4,4,4,6,7,5,4,1,0,2,5,0,2,3,2,2,0,7,3,2,1,0,5,5,3,3,5,5,3,5,4,5,5,5,6,4,2,1,2,5,5,2,6,3,3,0,5,2,0,5,5,5,1,2,4,0,0,5,5,7,5,3,4,5,1,1,2,5,4,0,1,4,6,4,5,5,3,5,3,7,4,2,5,7,7,6,4,2,5,5,4,4,3,4,4,3],0,0,0,0,0,0,[5,5,3,5,9,5,8,6,4,6,9,5,12,10,9,8,9,8,5,10,9,8,6,5,9,6,6,5],[11,12,11,13],0,0,0,0,0,0,[13,13,11,10,7,5,3,10,9,5,3,12,11,8],[8,8,7,13,12,11,10,9],[6,10,7,9,13,12,6,7,6,8,9,3,10,8],[11,10,7,6,9,8,9,9,8,7,5,9,11,10,10,9,8,7,6,4,13,11,5],[14,12,8,7,12,10,13,12,11,11,9],[12,9,2,13,12,10,9,11,9,12,10,9,9,9,9,8,11,9,5,11,10,7,8,7,2,1],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16]]; -------------------------------------------------------------------------------- /old/src/httpBlackList.pac: -------------------------------------------------------------------------------- 1 | function r(r,e){return r[e]=1,r}function FindProxyForURL(r,u){if(isPlainHostName(u))return i;var a=u,f=0;do{if(n.hasOwnProperty(a))return e;if(t.hasOwnProperty(a))return i;f=u.indexOf(".",f)+1,a=u.substring(f)}while(f>0);var o=dnsResolve(u);if(!o)return e;if(o.indexOf(":")>=0)return i;var l=o.split("."),d=(255&l[1])<<8|255&l[2],c=l[0],h=_[c],p=s[c];if(0===h)return e;if(16===p)return i;var v=0,w=h.length,L=w>>1;do h[L]>d?w=L:v=L,L=v+w>>1;while(w>v+1);return d-h[v]>>p[v]===0?i:e}var e="PROXY 127.0.0.1:7777",i="DIRECT",t="pdim.gs|inc.gs|cn|loli.vg|pp.cc|snsfun.cc|hefei.cc|yiyi.cc|ulink.cc|ffdy.cc|ngacn.cc|zhibo8.cc|gitcafe.xyz|ky0n.xyz|akarin.xyz|sf.gg|iapps.im|mindstore.io|coding.io|gfw.io|jianshu.io|gitcafe.io|daocloud.io|qishu.co|203.130.55.24|203.130.55.22|51.la|bilibili.tv|panda.tv|acfun.tv|cctvcom|ename.net|dytt8.net|kdnet.net|rtbidder.net|sinahk.net|discuz.net|coding.net|xici.net|hotsales.net|csdn.net|jb51.net|themex.net|xyxy.net|onlinedown.net|cqnews.net|sandai.net|pchome.net|jandan.net|oschina.net|longhoo.net|shuangtv.net|doubleclick.net|yocc.net|p5w.net|bdwm.net|a135.net|zoosnet.net|tiexue.net|jysq.net|fx120.net|52pk.net|speedtest.net|xiami.net|cntv.net|zhongsou.net|ali213.net|phpwind.net|126.net|cnki.net|duba.net|fastif.net|newsmth.net|39.net|chinaunix.net|kandian.net|hlwan.net|sourceforge.net|jjwxc.net|1616.net|gamewan.net|5d6d.net|irs01.net|bokee.net|293.net|2mdn.net|local|localhost|lohas.ly|iweek.ly|my.cl.ly|tiao8.info|williamlong.info|lan|xn--fiqs8s|conoha.jp|rakuten.co.jp|zhi.hu|sodu.org|chdbits.org|booksky.org|et8.org|mozilla.org|typecho.org|dream4ever.org|douban.fm|jing.fm|qbox.me|ele.me|loli.mg|eye.rs|bilibili.us|si.kz|alipay.com|bjbus.com|51job.com|coo8.com|sogou.com|chinabyte.com|55bbs.com|twcczhu.com|88db.com|gtimg.com|imanhua.com|game3737.com|360doc.com|blogchina.com|okbuy.com|chuangelm.com|163.com|zhibo8.com|thethirdmedia.com|baidu.com|kuaidi100.com|0x110.com|lashouimg.com|cctv.com|51auto.com|changyou.com|fat999.com|hf365.com|jqw.com|adsame.com|vizu.com|alipayobjects.com|4738.com|mediaplex.com|fastcdn.com|taobao.com|hudong.com|51img1.com|igeak.com|manzuo.com|19lou.com|1717388.com|bendibao.com|irs01.com|bitauto.com|l99.com|miui.com|cnxad.com|game3896.com|ku6img.com|njobt.com|atpanel.com|iloveyouxi.com|boosj.com|smzdm.com|quantserve.com|tianji.com|vipshop.com|meizu.com|gamersky.com|aili.com|exam8.com|wrating.com|ggmm777.com|tvmao.com|chinaz.com|kandian.com|china.com|ccidnet.com|yesky.com|sina.com|upyun.com|youboy.com|qianlong.com|ku6.com|daqi.com|betrad.com|clouddn.com|saraba1st.com|qiyipic.com|zbjimg.com|nipic.com|apple.com|tmall.com|2hua.com|tiancity.com|cnepub.com|3dmgame.com|xiami.com|kankan.com|mookie1.com|xlpan.com|lagou.com|taobaocdn.com|lygo.com|moonbasa.com|cnwest.com|soku.com|adnxs.com|msn.com|live.com|eyoudi.com|eastday.com|hichina.com|alisoft.com|gzmama.com|pplive.com|tbcache.com|sttlbb.com|tdimg.com|91.com|tianyaui.com|17kuxun.com|ibm.com|xunlei.com|legolas-media.com|mi.com|mangocity.com|linezing.com|zhimg.com|adtechus.com|gy9y.com|ellechina.com|steamcn.com|dpfile.com|appgame.com|36kr.com|51buy.com|2345.com|kaixin001.com|hi-pda.com|tenpay.com|junshijia.com|gamesville.com|wdjimg.com|zhaopin.com|lietou.com|cnbeta.com|aifang.com|iyaya.com|liebiao.com|yixun.com|aol.com|alibaba.com|harrenmedianetwork.com|yougou.com|wandoujia.com|egou.com|sg560.com|07073.com|aliimg.com|bing.com|vancl.com|tiebaimg.com|oeeee.com|lafaso.com|5173.com|5000pk.com|rrimg.com|pixlr.com|stackoverflow.com|chinamobile.com|gamestlbb.com|aibang.com|123cha.com|invitemedia.com|mapabc.com|soufunimg.com|lampdrive.com|28.com|duomi.com|yingjiesheng.com|ku6cdn.com|cnzz.com|verycd.com|6dad.com|dh818.com|zhihu.com|xiaonei.com|douban.com|cnmo.com|yintai.com|adroll.com|pptv.com|yy.com|caing.com|aliyun.com|265g.com|jiepang.com|qqmail.com|chiphell.com|segmentfault.com|alicdn.com|staticsdo.com|tencent.com|google-analytics.com|lehecai.com|qiushibaike.com|thawte.com|bdimg.com|adobe.com|blueidea.com|55tuan.com|teambition.com|alitrip.com|youwo123.com|aliexpress.com|img.cctvpic.com|iask.com|blogbus.com|zhubajie.com|tlbb8.com|james520.com|zongheng.com|tlbb2.com|lxdns.com|docin.com|didatuan.com|cmbchina.com|gougou.com|funshion.com|tudouui.com|etao.com|yaolan.com|dayoo.com|ct10000.com|qingdaonews.com|net114.com|zaobao.com|70e.com|crsky.com|591hx.com|ykimg.com|360buy.com|php100.com|qiyi.com|duapp.com|gewara.com|bluekai.com|cnhubei.com|iteye.com|hc360.com|letao.com|lusongsong.com|kanimg.com|wumii.com|178.com|soso.com|jiathis.com|701sou.com|yiqifa.com|haliyuya.com|xp9365.com|sootoo.com|aizhan.com|ziroom.com|1uuc.com|baihe.com|xiu.com|tom.com|gitcafe.com|xilu.com|jiatx.com|huanqiu.com|qiniu.com|yystatic.com|leho.com|anzhi.com|bdstatic.com|778669.com|17u.com|10010.com|gaopeng.com|paipai.com|yinyuetai.com|sonkwo.com|idailyapp.com|iqilu.com|ebay.com|xiyou53.com|tuniu.com|xiyou54.com|chinaw3.com|mmstat.com|readnovel.com|yihaodian.com|avosapps.com|7c.com|keyunzhan.com|yyets.com|acgvideo.com|360tl.com|tlbbsifu.com|adsonar.com|jumei.com|doubleclick.com|cngba.com|a963.com|37see.com|tao123.com|jiuyaoyouxi.com|315che.com|abchina.com|zhaodao123.com|mydrivers.com|fenzhi.com|xtltt.com|kimiss.com|shangdu.com|baomihua.com|sohu.com|pengyou.com|859652.com|microsoft.com|im286.com|51jobcdn.com|xungou.com|ftuan.com|sinajs.com|pr56789.com|stockstar.com|tui18.com|53kf.com|admin5.com|115img.com|duowan.com|mlt01.com|arpg2.com|upaiyun.com|brothersoft.com|haodf.com|yihaodianimg.com|joqoo.com|amazon.com|yolk7.com|chinaren.com|126.com|jianshu.com|yupoo.com|bankcomm.com|qq.com|skycn.com|pingan.com|eb80.com|198game.com|mathtag.com|cnbetacdn.com|mediav.com|abang.com|huaban.com|wangyin.com|xi666.com|qire123.com|1ting.com|sspai.com|fblife.com|getfirebug.com|xitek.com|zdmimg.com|vcimg.com|tangdou.com|weibo.com|b2b168.com|sinaapp.com|youshang.com|xiazaiba.com|umiwi.com|bilibili.com|go2map.com|jinti.com|comsenz.com|9787.com|ifensi.com|pcbeta.com|bestb2b.com|renren.com|ifengimg.com|cocoren.com|99bill.com|allyes.com|sf-express.com|web887.com|jd.com|dy2018.com|weiphone.com|love21cn.com|snyu.com|21cn.com|atdmt.com|qstatic.com|100tjs.com|ifanr.com|koudai8.com|infzm.com|hiapk.com|sinaedge.com|28tui.com|pcpop.com|baozoumanhua.com|q150.com|61.com|m18.com|useso.com|51fanli.com|fobshanghai.com|makepolo.com|zx915.com|icson.com|letvcdn.com|24quan.com|u17.com|cnblogs.com|ydstatic.com|ifeng.com|cdn20.com|ddmap.com|52kmh.com|lady8844.com|dgtle.com|hao123.com|tuan800.com|mnwan.com|tudou.com|iciba.com|xiachufang.com|youku.com|xinnet.com|tanx.com|made-in-china.com|dipan.com|sznews.com|360buyimg.com|miaozhen.com|mtime.com|linkedin.com|sanguosha.com|mapbar.com|szhome.com|chinanews.com|gfan.com|qidian.com|fengniao.com|dospy.com|mosso.com|diandian.com|jxedt.com|daocloudapp.com|hupu.com|elong.com|jstv.com|dwstatic.com|cncn.com|uniontoufang.com|cnfol.com|ynet.com|52tlbb.com|ci123.com|cqtiyu.com|img-space.com|nowec.com|lashou.com|house365.com|alimama.com|qiniucdn.com|synacast.com|seowhy.com|otwan.com|5d6d.com|pubmatic.com|ccb.com|appinn.com|v2ex.com|6rooms.com|766.com|goodbabygroup.com|qjy168.com|up2c.com|doc88.com|lvping.com|duote.com|1778.com|ipinyou.com|miercn.com|ip138.com|letv.com|dangdang.com|ad1111.com|mop.com|logmein.com|lycos.com|ftchinese.com|265.com|yunpian.com|suning.com|58.com|ctrip.com|56.com|51.com|meilishuo.com|mplife.com|iqiyi.com|baixing.com|minecraftxz.com|ztgame.com|west263.com|115.com|m1905.com|fantong.com|nbweekly.com|zaojiao.com|kuaiwan.com|alivv.com|oadz.com|anquanbao.com|imrworldwide.com|meituan.com|soufun.com|onlylady.com|okooo.com|51cto.com|youdao.com|zoopda.com|yoka.com|hoopchina.com|serving-sys.com|jiayuan.com|it168.com|120ask.com|99114.com|scorecardresearch.com|zqgame.com|sj-tl.com|sinaimg.com|3366.com|zdface.com|dbank.com|whlongda.com|elemecdn.com|xinhuanet.com|netease.com|uuu9.com|theplanet.com|yxlady.com|1o26.com|ucjoy.com|chinahr.com|ppstream.com|kugou.com|zhenai.com|dedecms.com|anjuke.com|douyutv.com|ganji.com|huochepiao.com|scanscout.com|uuzu.com|51yes.com|eastmoney.com|dzwww.com|paypal.com|qiyou.com|ijinshan.com|777wyx.com|meishichina.com|duoshuo.com|sdo.com|100ye.com|tremormedia.com|qunar.com|hdslb.com|toocle.com|chetx.com|vjia.com|meilele.com|titan24.com|500wan.com|homeinns.com|onetad.com|huazhu.com|babytree.com|gongchang.com|is686.com|uusee.com|aipai.com|qq937.com|compete.com|nuomi.com|mogujie.com|968tl.com|guokr.com|xmfish.com|qvbuy.com|yieldmanager.com|xiaomi.com|ads8.com|caixin.com|tgbus.com|17173.com|woniu.com|ranwen.com|donews.com|4399.com|dianping.com|114la.com|17cdn.com|mumayi.com|7k7k.com".split("|").reduce(r,{}),n="fb.me|booklink.me|youtu.be|akamaitechnologies.fr|t.co|g.co|github.io|wikinews.org|google.org|gwtproject.org|wikimedia.org|wiktionary.org|wikipedia.org|wikivoyage.org|golang.org|mediawiki.org|wikiversity.org|wordpress.org|webmproject.org|wikisource.org|wikimediafoundation.org|wikidata.org|wikibooks.org|chromium.org|polymer-project.org|wikiquote.org|fbcdn.net|akam.net|akamaihd.net|sstatic.net|adzerk.net|akadns.net|akamaitech.net|srip.net|akamaiedge.net|cloudfront.net|akamaistream.net|tfbnw.net|azurewebsites.net|typekit.net|facebook.net|akamai.net|fastly.net|edgekey.net|googlezip.net|edgesuite.net|goo.gl|googlecode.com|googlesource.com|google.com|apple.com|thefacebook.com|googlehosted.com|youtube.com|twitter.com|googlelabs.com|gstatic.com|googlevideo.com|yimg.com|akamaitechnologies.com|twitpic.com|twimg.com|gmail.com|googleadservices.com|gmodules.com|withgoogle.com|chrome.com|androidify.com|googleapis.com|youtube-nocookie.com|wordpress.com|dropboxforum.com|blogger.com|blogspot.com|android.com|flickr.com|tieba.baidu.com|githubusercontent.com|googlesyndication.com|staticflickr.com|mzstatic.com|tweetdeck.com|tinypic.com|yahoo.com|googlemail.com|facebook.com|appspot.com|wp.com|dropbox.com|amazonaws.com|googledrive.com|panoramio.com|ggpht.com|stackoverflow.com|googleusercontent.com|github.com|dropboxstatic.com|dropboxusercontent.com|dmm.com|ytimg.com|gravatar.com|keyhole.com|google-analytics.com|feedburner.com|pushbullet.com".split("|").reduce(r,{}),_=[[0],[1,3,8,32,256,258,290,306,314,318,512,514,516,580,612,628,636,768,1025,1089,1121,1137,1145,1149,1151,2048,2560,2568,2571,2635,2667,2683,2687,3072,6144,11520,12288,14336,17408,20480,29696,46080,47104,48128,50176,51712,52736],0,0,0,0,0,0,0,0,[0],0,0,0,[0,12,256,280,352,364,4096,26240,26268,26368,30464,32512,33280,34304,36864,49212,49228,50176,52224,53248],0,0,0,0,0,0,0,0,0,0,0,0,[2048,6144,8936,9216,11264,12840,12928,13896,13976,14016,25296,25328,25472,26368,27264,27340,27936,28028,28672,28752,28784,29056,29440,29740,31048,31096,32768,33756,36864,37888,39936,47104,55296,57344],0,0,0,0,0,0,0,0,[0,8,264,392,456,488,504,1024,4096,8192,9216,9472,9508,9511,9527,9535,10240,12288,13056,14336,24576,63488,65024],0,0,[0,2,130,194,226,242,250,254,16384,24576,26624,27648,32768],[18432,32128,32320],0,[0,8,24,32,128,256,288,304,312,384,1024,12288,14336,15872,16000,16032,16052,16060,16128,20480,21312,21328,21336,23384,24408,24536,24568,24640,24672,24684,24940,25068,25084,25344,25408,25440,25456,25464,25600,30720,31232,31488,31524,31652,31716,31732,31740,32768,39936,39972,44068,46116,47140,47652,47908,47972,47988,48000,49152,51456,51712,59904,60928,61440,61952,64000,65024],[57356,57368,57388,57396,57408,57416,57424,57444,57484,57504,57520,57528,57544,57560,57568,57584,57676,57684,57720,57740,57772,57780,57808,57816,57852,57888,57952,57968,57976,57984,58048,58064,58092,58140,58204,58248,58256,58264,58300,58332,58344,58360,58424,58444,58468,58484,58500,58516,58548,58556,58572,58608,58640,58664,58672,58680,58720,58732,58744,58760,58768,58792,58840,58856,58900,58912,58948,58964,59004,59016,59048,59100,59132,59168,59216,59272,59304,60416,60928,61184,61216,61232,61300,61356,61440,61488,61496,61508,61516,61524,61564,61596,61660,61676,61708,61716,61744,61772,61788,61808,61864,61880,61892,61904,61936,61944,61960,61976,61996,62012,62024,62040,62048,62096,62112,62120,62132,62140,62148,62156,62168,62204,62212,62232,62296,62336,62344,62352,62364,62376,62388,62396,62436,62452,62976,63040,63072,63188,63204,63236,63276,63300,63308,63316,63332,63340,63380,63408,63428,63492,63508,63516,63536,63564,63628,63636,63664,63696,63716,63732,63744,63752,63768,63864,63876,63888,63904,63912,63936,63980,64004,64012,64020,64028,64036,64072,64096,64112,64128,64144,64160,64168,64176,64200,64212,64220,64236,64244,64260,64268,64292,64372,64448,64488,64500,64552,64560,64568,64736,65024,65032,65048,65060,65068,65076,65088,65096,65108,65116,65124,65136,65152,65160,65176,65192,65204,65220,65232,65244,65260,65272,65288,65296,65328,65340,65356,65364,65376,65388,65424,65448,65456,65464,65472,65480,65504,65512,65524],0,[28804,28860,28880,28900,28908,28940,28956,28968,28980,29000,29036,29072,29096,29104,29112,29128,29144,29156,29168,29180,29196,29216,29224,29236,29280,29288,29320,29380,29412,29420,29436,29484,29540,29560,29572,29584,29596,29604,29640,29652,29668,29676,29684,29708,29728,29748,29756,29792,29836,29848,29904,29960,29972,29992,30020,30076,30204,30516,30524,30568,30580,30624,30696,30820,30860,30876,30884,30940,30960,30996,31028,31040,31048,31068,31080,31148,31188,31216,31248,31264,31272,31292,31324,31340,31348,31392,31424,31440,31448,31516,31524,31532,31564,31608,31616,31624,31636,31644,31652,31668,31692,31700,31712,31744,31764,31772,31780,31788,31812,31820,31844,31868,31916,31952,31992,32012,32024,32032,32044,32052,32076,32136,32304,32356,32364,32468,32476,32520,32548,32608,32628,32636,32656,32668,32728],0,[23552,31744],0,[1024,13056,14080,16384,28672,30720,32768,32770,32774,35840,38912,53248,56320,59392,61184,61376,63200],0,0,[20480],0,[56832],0,0,0,[3584,5632,7680,15872,16872,16896,17536,20992,21248,22336,25472,25984,29696,32768,36864,39424,49152,61440],[8192,16384,20480,27392,28416,38656,38928,38944,38976,39024,39172,39200,39228,39260,39284,39304,39320,39332,39680,44032,48896,49136,65520],[0,14080,16128,40960,49664,51200,55296,59392,60160,62848,63232,64512,64896,65280],[1104,1200,2208,3796,3804,3824,7168,7552,11648,11744,12160,12288,22464,32768,59392,60416,61440],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[0,256,684,1024,4096,12288,12808,12856,13312,13668,13824,14304,16384,18432,19456,19968,20000,20480,24576,24584,24592,24704,25440,25920,25956,25958,25974,25982,26176,26212,26214,26216,26232,26624,28224,28256,28276,28284,30720,31744,32256,32768,32776,32808,32824,33024,34048,34560,36864,49152,51200,52096,52128,52140,52156,52224,57344,59392,59968,59980,60012,60028,60416,62464,63488,64256,64264,64776,65032,65160,65224,65256,65272],0,[264,276,328,344,424,620,668,676,712,852,884,900,908,916,924,1080,1192,1208,1248,1316,1332,1432,1448,1472,1532,1612,1644,1756,1764,1796,1820,1932,2004,2012,2052,2080,2100,2116,2156,2204,2248,2268,2312,2328,2412,2456,2552,2560,2576,2644,2700,2984,2996,3104,3140,3164,3208,3256,3304,3340,3400,3452,3472,3524,3548,3572,3668,3684,3696,3716,3740,3824,3844,3856,3936,4040,4148,4176,4184,4204,4220,4392,4472,4488,4512,4556,4580,4800,4816,4832,4864,4876,4904,4928,4936,5096,5132,5152,5164,5188,5232,5248,5280,5368,5488,5512,5552,5584,5616,5632,5696,5732,5748,5756,5820,5860,5884,5896,5944,6048,6064,6116,6260,6272,6288,6320,6328,6364,6372,6392,6408,6420,6436,6448,6464,6548,6556,6616,6656,6720,6732,6772,6788,6812,6884,6896,6916,6924,6936,6968,7008,7120,7152,7172,7372,7380,7440,7552,7560,7700,7776,7828,7880,7908,7916,7936,7984,8000,8084,8096,8104,8136,8172,8192,8704,8960,8992,9008,9064,9076,9160,9180,9236,9244,9252,9272,9280,9288,9312,9348,9376,9440,9456,9472,9484,9496,9516,9524,9544,9572,9596,9608,9644,9680,9720,9728,9760,9768,9784,9804,9812,9820,9844,9860,9868,9948,9980,10000,10048,10072,10084,10092,10144,10184,10216,10252,10284,10328,10340,10352,10432,10452,10460,10468,10512,10548,10612,10636,10644,10656,10716,10760,10776,10784,10816,10828,10856,10932,10984,11024,11092,11104,11112,11132,11140,11172,11192,11200,11216,11228,11240,11248,11320,11344,11352,11384,11396,11408,11416,11432,11440,11488,11500,11564,11580,11592,11720,11736,11744,11768,11776,11788,11928,12020,12036,12052,12068,12080,12112,12128,12140,12148,12168,12232,12244,12252,12280,12308,12340,12380,12432,12490,12504,12556,12564,12616,12636,12652,12672,12720,12740,12792,12836,12844,12908,12924,12932,12940,12972,13020,13352,13384,13408,13416,13472,13484,13496,13508,13572,13632,13660,13668,13692,13708,13728,13748,13772,13784,13804,13816,13832,13872,13884,13984,14036,14052,14064,14104,14160,14200,14232,14252,14284,14308,14316,14344,14352,14368,14388,14396,14408,14436,14476,14488,14520,14536,14552,14604,14644,14668,14700,14728,14788,14872,15030,15180,15204,15216,15232,15252,15268,15320,15392,15404,15524,15588,15596,15676,15720,15756,15768,15776,15788,15800,15896,15924,15944,15960,15968,16000,16028,16060,16076,16092,16160,16192,16208,16216,16268,16280,16288,16304,16312,16320,16336,16368,49152,49200,49208,49236,49280,49296,49316,49340,49360,49368,49404,49448,49528,49548,49556,49568,49596,49620,49680,49894,50024,50032,50056,50068,50080,50112,50236,50248,50264,50272,50344,50360,50380,50612,50660,50684,50708,50748,50760,50812,50844,50868,50884,50904,51108,51140,51172,51192,51228,51252,51264,51336,51368,51384,51392,51420,51452,51468,51476,51484,51516,51532,51564,51608,51736,51752,51768,51832,51848,51856,51864,51896,51912,51924,51940,51948,51980,51996,52020,52064,52096,52108,52132,52160,52168,52180,52248,52296,52312,52336,52360,52376,52420,52456,52484,52520,52532,52588,52596,52616,52642,52668,52716,52728,52736,52780,57360,57384,57404,57424,57564,57684,57872,57896,57912,57936,57972,57988,58012,58036,58052,58160,58184,58192,58212,58232,58244,58308,58316,58324,58340,58380,58396,58436,58456,58496,58528,58544,58572,58596,58644,58760,58772,58796,58836,58844,58852,58860,58880,58908,58920,58976,59076,59084,59092,59116,59152,59200,59280,59316,59380,59396,59536,59604,59652,59692,59700,59752,59776,59784,59876,59904,59924,59960,60028,60076,60084,60148,60176,60208,60216,60240,60288,60304,60344,60352,60360,60380,60508,60536,60600,60636,60648,60656,60696,60740,60760,60824,60848,60912,60928,60944,60976,60984,61016,61024,61060,61068,61088,61124,61132,61180,61224,61252,61280,61336,61360,61368,61376,61388,61408,61428,61456,61476,61512,61524,61564,61596,61612,61684,61708,61768,61788,61856,61880,61916,61960,62016,62080,62112,62120,62128,62152,62164,62172,62192,62344,62460,62480,62522,62538,62546,62550,62580,62628,62696,62716,62743,62772,62780,62800,62844,62984,63096,63108,63128,63400,63408,63432,63444,63488,63552,63588,63612,63640,63656,63680,63700,63708,63716,63752,63796,63848,63872,63880,63888,63908,63932,63988,63996,64032,64104,64124,64180,64192,64216,64224,64236,64248,64288,64340,64352,64380,64416,64448,64460,64492,64540,64548,64576,64616,64684,64716,64744,64760,64772,64828,64972,64988,65000,65032,65044,65088,65136,65200,65212,65220,65244,65348,65368,65416,65464,65480,65488,65508],0,0,[0,2,18,26,30,64,512,2816,11008,13312,15360,18944,20480,27648,31744,57344],0,0,0,[1536,4096,8744,10240,11276,11408,12288,13056,13568,14336,16384,18432,19200,19456,19588,19612,19640,19648,19776,20480,22528,23620,23840,24064,32256,38912,39936,42272,42496,44224,44288,44320,44352,44480,45056,53248,58368,59424,60416,61440],[0,16896,17344,17472,18432,21760,23488,23800,28672,29696,30408,30528,30592,30720,31744,32256,40448,42496,43520,44032,46080,47616,49152,53248,56604,56704,56960,57092,57328,57336,57344,60256,60316,60348],[0,16384,18688,19200,20480,24576,28032,28416,29440,29952,31232,33280,33792,35120,49152,57344],[0,2048,3008,3072,4096,4608,5608,6144,7936,11264,13472,13540,13824,14848,15104,15328,15872,32256,33376,33392,33792,35840,49664,50532,51200,51712,52224,53344,53600,53728,54272,54372,54456,54528,54784,55808,64000],[7168,8000,13824,15360,17408,20288,20480,24576,26624,28160,28224,28416,28576,28672,33792,34560,35328,36160,36176,36224,50176,50936,53248,61440],[6144,7168,8000,8192,10808,11264,15360,17728,21504,21696,21952,25600,30720,31760,37888,39936,42560,43008,46080,47872,48640,56832,60928],[8,24,256,2304,2816,3328,4096,12800,13312,14336,14976,15056,15360,16896,17544,17584,17664,17920,19456,21760,22928,23120,23224,24320,28672,29696,32768,49152,49424,49456,49560,49572,49584,49664,50176,50592,50688,50944,51072,52224,52992,54016,54432,54568,54592,54720,54816,54848,54912,55936,56192,57344,61952,64320,64512,65128,65152,65408],[2048,5376,9472,11520,12288,13616,13744,14592,14848,15104,17152,18176,18688,19008,19072,23168,24192,24448,25600,26384,26408,26440,26496,26792,27136,28672,30784,31040,31168,31360,31744,48128],[6144,6656,7168,16384,16896,17264,18432,20480,21504,22560,22816,22944,23008,23536,26128,26144,26532,28672,30720,31744,32256,32640,33792,36864,45568,46080,47104,47616,48128,48640,49152,49408,49440,49472,49504,50528,51040,51168,51712,52736,54272,57344,58368,58880,61184,61952,62464,64512],[0,512,640,1664,2176,2560,3976,4096,4800,4816,4832,5856,6112,6976,7488,7616,7728,8128,8192,10240,10304,10368,10624,10752,10880,10976,11264,12288,14592,15232,15744,16000,16160,19408,19968,20480,21200,21504,24576,27648,28672,36864,38048,38848,41160,41336,42360,42872,43000,45056,59392,60288,63488,64608,64752],[0,6144,7680,11776,13312,16384,18464,18560,19456,21504,22536,23040,23552,24064,32768,34832,34944,35072,36736,49152],[8,24,1024,2048,10240,11776,11904,12416,12672,12808,13056,13472,13520,13552,14000,14080,14336,14848,14984,15104,16128,17408,19456,20352,22784,25728,25856,26064,49152,51392,51456,52224,57344,63488,65280],[64,192,1024,2048,2560,2816,3072,3584,12288,12544,13056,16384,24576,26112,26176,28672,30464,32868,32888,34816,36992,39104,39936,48128,50688,51240,51264,51504,52224,57344,61440,63512,63536,65344],[128,1024,3072,12672,12960,13312,15360,15872,16384,24576,25088,25472,25600,25856,26368,27776,27856,28672,32768,34896,35072,35584,36864,45116,45136,45312,47360,48384,48896,50176,51072,52736,59392,61952,62144,62464,63744,64768,65120],[1600,3584,5120,7360,7488,7936,10352,10416,10448,10480,10752,12032,16384,16896,17152,19200,20224,22528,27656,27688,28000,28672,32256,34304,37760,38656,39936,40960,44032,49152,50176,51200,56320,60416,61440,61568,61952,62400,63488,63744,64256,65024],[8128,12224,14976,15744,15872,16384,24576,25088,26624,30720,43264,43776,53248,53760,54528,54880,55040,55296,65152],0,[0],0,0,0,0,0,0,0,0,0,[15192],0,[2304,33024,37888,39680,40704,43520,45056,46848,47616,48384,50176,54272,55552,56064,56576,57344,57856],[19200,36608,52480,52992,53760,57344,60672,61440,62208,62976,63744,65280],0,0,0,[0,1792,3072,13312,31488,65280],0,0,0,0,0,[0,29440,30976,33160,33176,33216,33240,33276,35328,57088,61952,61960,61980,61996,62028,62044,62064,62072,62104,62120,62136,62144,62164,62176,62184,62200,65280],0,[26752],[0,768,8704,25344,25856,30208],0,0,0,[0,4608,15616,31232,37888,39936,65280],0,[57856],0,[52992],[26880],[0,12036,13568,13604,13656,13688,13704,13728,13756,13788,13808,32000,36352,45312,45824,52224],0,0,[28416],[35584,48384,56564],[40960],[65024],0,[2048,8704,10752,11776,20480,26624,30720,53248],[4096],0,0,[0,4096,6144,7680,10752,11264,11776,19968,24064,26112,27264,28524,37376,39424,40544,40960,45212,45232,45244,45568,47232,47360,48384,48896],0,0,0,0,[19456,21504,22016,22528,24120,24160,24184,24448,32640,33152,33408,34816,37904,38040,38104,38136,38272,38560,38912,43008,45680,45760,47104,48128,48532,51452,51964,52220,53248,53972,53984,54272,57056,57312,59648,59712,59792,60224,60272,60296],0,[4240,4288,4608,6072,6088,8192,12384,12544,12800,12912,13056,13824,14068,15616,20480,22528,23552,24576,32768,36864,40192,41024,44544,51200,60544,60696,60928,61184,61440,65024],[0,16384,20128,20148,20908,20916,21504,23424,23432,23448,23552,32768,40960,43008,43520,44032,46592,47104,63488],0,0,0,0,0,0,0,0,[0,2,22627,31898,43008,48298],0,0,0,0,0,[4608,13156],0,0,0,[100,122,176,896,1152,1276,1488,1496,1542,1602,1608,1623,1625,1628,1639,1644,1646,1650,1712,2048,2050,2060,2072,2125,2176,2240,2336,2338,2352,2355,2361,2363,2624,2672,3073,3089,3091,3144,3156,3168,3170,3178,3183,3188,3648,3653,3657,3662,3672,3681,3688,3692,3695,3698,3702,3708,3711,3713,3719,3733,3735,3741,3743,3753,3768,3792,3797,3803,3806,3809,3811,3815,3819,3823,3830,3835,5186,5199,5207,5214,5234,5237,5240,5245,5247,5424,5507,5517,5523,5526,5530,5532,5880,7048,9728,9736,9776,9840,9856,9864,9866,9868,9874,9877,9886,9892,9904,9912,9976,10244,10247,10255,10375,10380,10383,10385,10390,10395,10398,10402,10504,10507,10509,10624,10626,10648,10688,10692,10736,11084,11152,11280,11312,11331,11338,11393,11396,11410,11520,11522,11535,11551,11792,11794,11796,11808,11904,12000,12114,12128,12158,12160,12162,14784,14804,14832,14848,14952,14960,15104,15316,15336,15340,15408,15456,15472,15492,15508,15516,15684,15692,15704,15984,16120,16124,16127,16209,16217,16221,16223,16288,16376,16640,16648,16736,17064,17152,17668,17680,17920,18016,18112,18208,18472,18512,18544,18816,18928,18952,19024,19176,19198,19408,19452,19708,19792,19804,19976,20448,20472,20672,20736,20912,21500,21516,21520,21528,21968,22265,22268,22352,22560,22792,22880,22892,23016,23040,23056,23136,23236,23264,23296,23392,23424,23472,23520,23552,23560,23600,23804,24060,24156,24320,24560,24572,28668,30716,31228,31236,31264,31296,31344,31360,31364,31584,31604,31760,31768,32112,32176,32512,32524,32540,32552,32568,32624,32656,32672,32704,32720,32724,32756,32764,33280,33504,33552,33584,33744,34080,34362,34432,34512,34864,35024,35064,35303,35980,35996,36256,36368,36612,36624,36664,36708,37536,37564,37572,37580,37776,37920,37952,38176,38304,38368,38416,38456,38592,38624,38656,38784,39088,39168,39216,40384,40608,41100,41116,41136,41539,41547,41984,42080,42336,42416,42448,42479,42481,42483,42485,42491,42495,42720,43088,43136,43168,43648,43736,43768,43992,44011,44032,44288,44296,44400,44408,44512,44608,44668,45280,45984,46064,46208,46288,46344,46364,46448,46624,46784,48384,48464,48568,48896,48964,48980,48988,49152],[4,10,18,24,42,45,47,81,83,90,96,104,113,115,122,128,130,134,137,142,144,146,148,150,152,177,224,260,274,282,321,323,326,332,346,353,357,359,364,509,576,585,624,638,652,662,664,668,672,692,708,721,726,738,741,748,836,840,843,848,864,873,880,888,891,903,907,911,1156,1158,1175,1179,1198,1204,1210,1229,1232,1251,1254,1284,1287,1289,1291,1301,1324,1326,1332,1336,1340,1394,1398,1400,1452,1460,1462,1465,1468,1470,1475,1494,1498,1667,1672,1674,1678,1686,1693,1695,1760,1784,1921,1930,1939,1942,1950,1984,1992,2048,2056,2071,2079,2118,2130,2134,2139,2158,2163,2214,2217,2221,2232,2234,2238,2240,2245,2247,2251,2257,2261,2263,2265,2268,2336,2340,2361,2367,2369,2374,2376,2379,2381,2400,2404,2412,2462,2594,2616,2634,2644,2648,2655,2685,2886,2892,2898,2900,2916,2925,2933,2938,2942,2952,2957,2959,2996,3024,3088,3091,3096,3129,3137,3142,3159,3167,3172,3175,3186,3190,3202,3209,3268,3276,3283,3291,3298,3312,3346,3352,3372,3408,3416,3420,3501,3552,3555,3561,3608,3617,3640,3645,3688,3698,3702,3746,3768,3776,3778,3798,3815,3830,3840,3860,3862,3927,3929,3945,3952,3970,3989,3991,3996,4014,4067,4072,4080,4086,4106,4108,4112,4123,4134,4145,4147,4154,4229,4257,4282,4324,4334,4336,4341,4354,4370,4380,4391,4408,4426,4440,4488,4516,4539,4542,4583,4585,4600,4607,4610,4612,4615,4639,4645,4656,4660,4680,4688,4695,4708,4713,4715,4718,4737,4739,4741,4752,4761,4807,4816,4819,4823,4882,4888,4894,4896,4905,4908,4910,4922,4924,4928,4932,4936,4965,4975,4995,4997,5008,5013,5020,5040,5042,5072,5092,5097,5106,5112,5119,5137,5160,5168,5181,5185,5204,5209,5226,5235,5237,5239,5242,5246,5255,5263,5270,5350,5352,5356,5376,5378,5384,5386,5394,5409,5417,5420,5444,5458,5472,5500,5512,5521,5582,5656,5660,5663,5700,5708,5710,5716,5719,5724,5731,5738,5754,5763,5795,5798,5802,5808,5826,5874,5877,5884,5888,5935,5949,5951,5961,5973,5980,5986,5995,6000,6018,6028,6060,6070,6074,6080,6085,6092,6112,6114,6118,6137,6139,6157,6162,6171,6187,6200,6202,6211,6218,6223,6225,6228,6230,6234,6255,6260,6266,6289,6296,6301,6305,6311,6330,6343,6346,6356,6361,6363,6388,6419,6421,6446,6448,6464,6491,6499,6506,6531,6535,6538,6547,6553,6555,6564,6566,6574,6580,6582,6591,6599,6602,6608,6629,6635,6642,6668,6690,6705,6711,6713,6716,6721,6724,6732,6736,6740,6753,6758,6771,6785,6799,6804,6810,6814,6826,6829,6832,6841,6858,6866,6870,6878,6880,6884,6888,6912,6922,6927,6932,6934,6952,6957,6965,6977,6993,7000,7014,7021,7029,7033,7035,7037,7112,7114,7145,7153,7162,7178,7180,7201,7203,7211,7222,7224,7241,7244,7254,7256,7280,7299,7304,7308,7313,7333,7337,7346,7353,7355,7364,7394,7407,7426,7432,7437,7452,7470,7481,7485,7487,7493,7497,7505,7514,7519,7524,7527,7536,7544,7606,7611,7613,7629,7634,7641,7651,7655,7657,7672,7678,7696,7705,7707,7709,7746,7761,7767,7791,7801,7803,7832,7836,7842,7853,7855,7867,7874,7897,7900,7902,7912,7915,7920,7926,7930,7981,7985,7987,7990,8005,8008,8016,8021,8033,8041,8044,8060,8098,8110,8113,8117,8123,8125,8140,8156,8158,8161,8165,8184,8189,8212,8240,8248,8252,8254,8260,8268,8273,8276,8287,8294,8297,8322,8325,8332,8344,8378,8384,8388,8395,8397,8404,8452,8455,8463,8469,8474,8480,8511,8515,8521,8527,8548,8570,8577,8579,8593,8604,8606,8622,8633,8648,8650,8652,8654,8662,8672,8674,8681,8691,8698,8708,8725,8731,8743,8752,8758,8760,8771,8773,8780,8796,8810,8817,8851,8854,8856,8865,8891,8896,8908,8936,8944,8946,8949,8955,14082,14084,14090,14093,14102,14110,14173,14181,14189,14196,14199,14208,14226,14272,14276,14298,14301,14304,14337,14340,14348,14360,14374,14376,14382,14384,14404,14418,14431,14446,14457,14497,14505,14508,14511,14519,14521,14523,14528,14534,14537,14544,14546,14550,14552,14563,14568,14576,14588,14590,14597,14604,14620,14631,14638,14650,14653,14658,14661,14663,14665,14682,14693,14701,14715,14749,14792,14794,14798,14814,14816,14838,14841,14845,14847,15874,16003,16011,16033,16069,16100,16106,16118,19616,19624,19664,19672,19696,19892,20016,20124,20224,20256,20484,20512,20537,20612,20628,20636,20736,20752,20980,20992,21008,21104,21216,21248,21256,21304,21472,22016,22270,22560,22720,22784,22792,22920,23040,23048,23168,23232,23328,23392,23416,23552,23712,23808,24064,24320,24416,24480,24520,24528,24544,25352,25368,25424,25632,25648,25663,25680,25712,25792,26656,26976,27392,28320,28368,28392,28394,29264,29428,30400,30449,30456,30488,30496,30544,30549,30577,30705,30713,30717,30719,32800,32864,32992,33032,33312,33824,34544,34656,34720,36576,36960,37120,37888,37952,37968,37974,38236,38976,39040,39168,40128,40464,41064,41089,41152,41216,41396,41408,42656,42780,43008,43578,43776,44000,44548,44551,44640,44928,44992,45120,45224,47184,48032,48384,48390,48496,48576,48616,48624,48736,48889,48896,48912,48960,49040,49152,49632,49784,49984,50032,50048,50176,50204,51948,52544,52608,53056,53184,53248,53264,53280,53728,54272,54352,55272,55716,57024,57088,57104],0,0,0,0,0,0,[512,1280,1336,1408,1848,3072,3648,3696,3952,4016,4224,5376,5920,6400,10496,11520,12032,13056,13568,14528,18432,19456,19968,20288,20448,20992,22400,47552,49248],[16384,20480,24576,34816],0,0,0,0,0,0,[0,14336,22528,24576,25688,25816,25848,26624,27648,47552,47600,49152,61440,63744],[18432,20992,21376,23108,23116,32768,55296,59392,61952,62976],[26048,28672,39040,39424,40688,40960,49152,59136,59264,59456,59904,61952,63368,63488,64512],[0,2048,3072,3200,3328,3840,31232,32896,33408,33664,34272,34816,44032,46080,49152,50176,50688,50944,51072,51136,51168,59360,61408],[4096,20480,32000,32384,32768,40960,43008,51200,55296,61440,63488],[0,5120,7096,7632,7676,16384,24576,28672,29696,30720,32768,33288,36864,40960,42496,49152,50688,51456,51968,53248,56320,57264,61440,63488,64640,65024,65280,65516,65532],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0],[0]],s=[[16],[1,0,3,5,0,5,4,3,2,1,1,0,6,5,4,3,2,8,6,5,4,3,2,1,0,8,3,1,6,5,4,2,0,10,11,8,10,11,10,12,10,10,9,11,10,10,9],0,0,0,0,0,0,0,0,[16],0,0,0,[3,2,2,2,2,2,12,2,2,12,11,8,9,9,12,2,2,9,9,12],0,0,0,0,0,0,0,0,0,0,0,0,[12,11,3,11,10,3,7,3,3,6,5,4,7,8,6,2,5,2,6,4,3,6,7,2,3,3,9,2,8,11,10,13,11,10],0,0,0,0,0,0,0,0,[2,8,7,6,5,4,3,10,12,10,8,5,1,4,3,0,11,9,8,11,15,10,8],0,0,[0,7,6,5,4,3,2,1,13,11,10,8,14],[9,7,6],0,[2,4,2,5,7,5,4,3,2,7,10,11,10,7,5,4,3,2,8,9,4,2,11,10,7,5,3,5,3,8,7,4,2,6,5,4,2,3,10,9,8,5,7,6,4,3,2,12,5,12,11,10,9,8,6,4,3,7,11,7,13,10,9,8,11,10,9],[2,2,2,3,3,2,2,2,3,2,2,2,4,2,2,2,2,2,3,2,2,3,2,5,2,6,4,3,2,6,4,3,5,6,4,3,2,5,5,2,2,6,4,2,2,3,3,3,2,2,2,2,2,2,2,2,2,2,2,3,2,5,3,3,2,2,3,2,2,2,2,5,2,4,5,5,4,9,8,5,4,2,3,3,2,2,3,3,2,2,4,6,2,5,3,2,2,4,2,2,4,2,2,5,2,3,4,3,4,3,4,3,2,4,3,2,2,3,2,2,3,2,4,2,2,2,2,3,2,2,2,2,3,2,6,5,2,2,2,3,3,2,2,4,2,3,3,4,6,2,2,2,2,6,3,2,5,2,3,2,3,2,2,2,3,4,3,2,2,2,2,3,2,3,2,2,4,3,2,3,2,3,2,2,3,2,2,2,3,2,2,2,2,3,2,2,2,2,2,3,2,2,2,2,2,2,2,3,2,3,3,2,4,3,3,4,3,2,4,3,4,2,2,2,4,2,2,2,2,2,2,2,2,2,4,3,2,2],0,[2,2,4,3,2,4,2,2,3,2,2,3,2,2,2,4,3,2,2,3,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,3,2,2,3,4,3,2,3,3,2,2,2,2,2,2,2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,3,2,3,2,3,2,5,4,3,2,5,4,3,2,5,4,3,2,3,2,5,4,2,3,2,3,2,4,3,2,2,5,2,2,3,2,2,2,3,2,2,3,2,3,3,3,2,2,3,5,2,3,2,4,2,2,3,2,2,2,3,3,2,2],0,[13,10],0,[10,10,8,13,11,10,0,2,1,9,10,10,10,10,6,6,5],0,0,[10],0,[9],0,0,0,[11,10,13,9,3,9,7,7,8,6,9,7,10,11,8,9,13,12],[13,12,10,10,8,7,4,3,4,3,2,2,4,2,2,2,3,5,8,10,7,14,4],[13,8,8,13,9,12,11,9,8,7,8,8,7,8],[4,4,4,3,2,3,7,7,6,4,6,11,6,14,10,9,10],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[2,2,2,10,13,9,3,2,8,2,8,3,11,10,9,2,5,12,3,2,4,7,5,5,0,4,3,1,5,1,0,4,3,10,5,4,3,2,10,9,8,2,5,4,3,10,9,8,12,11,9,5,3,4,2,10,11,9,3,5,4,2,11,10,9,2,9,8,7,6,5,4,3],0,[2,3,2,2,2,2,2,2,4,5,4,3,2,3,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,3,2,3,2,2,2,2,2,3,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,3,2,2,3,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,3,2,2,2,3,3,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,6,5,4,3,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,1,4,3,2,3,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,3,2,2,2,3,2,2,2,2,2,2,2,2,4,3,2,2,2,2,2,9,8,5,4,2,2,2,2,2,2,2,2,3,2,2,2,3,6,4,3,2,3,2,2,3,2,3,2,5,3,4,3,2,2,3,2,2,2,3,2,2,2,4,2,2,2,2,3,2,5,5,2,5,2,2,2,2,2,2,2,5,2,2,2,2,3,3,4,2,3,2,3,2,2,2,2,2,2,3,2,2,2,2,2,3,2,3,2,2,2,2,2,3,2,2,2,2,5,2,6,4,2,7,4,3,2,2,2,7,5,3,2,2,3,2,2,2,2,3,3,2,2,2,2,2,2,2,4,1,5,2,2,3,3,2,2,3,2,2,2,5,4,2,3,2,5,5,2,4,3,2,3,3,2,2,2,3,2,2,4,3,2,2,3,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,3,2,3,2,3,2,3,2,3,3,2,2,2,2,2,2,3,2,2,2,2,2,1,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,3,2,3,3,2,2,4,2,5,3,5,3,4,3,5,4,3,2,3,2,4,3,2,4,2,4,5,3,2,5,4,2,2,2,3,2,2,3,3,3,2,2,3,5,2,1,2,2,2,3,2,2,3,2,3,2,2,2,2,2,2,2,2,3,2,2,2,2,3,5,2,2,2,3,3,2,3,5,4,3,2,5,4,3,2,5,3,5,4,7,4,3,6,4,3,2,5,4,3,2,2,5,4,3,3,5,2,2,3,2,2,3,2,2,2,2,4,2,2,3,3,3,2,2,3,2,0,4,2,3,2,2,2,3,2,2,4,2,2,2,3,2,2,2,2,2,2,2,3,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,3,3,2,2,2,2,3,2,2,3,2,2,3,2,3,2,2,2,3,3,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,3,3,4,3,2,2,2,7,3,2,2,2,2,5,3,2,2,2,6,4,3,5,3,2,3,2,2,3,5,2,2,3,3,2,2,3,3,2,3,3,2,2,2,2,2,2,2,2,2,2,2,2,3,2,3,2,2,2,3,2,3,2,2,2,2,2,2,2,2,4,3,2,1,2,2,2,2,0,2,2,2,3,3,3,2,3,3,2,2,2,1,2,2,2,2,2,2,2,3,2,3,2,2,2,2,2,4,3,2,2,2,2,2,2,2,2,2,2,3,2,2,2,3,2,2,2,3,2,2,2,2,2,3,2,2,2,2,2,3,2,2,2,4,2,2,2,0,2,2,3,3,2,2,3,2],0,0,[0,4,3,2,1,6,11,13,11,11,10,9,12,12,10,12],0,0,0,[9,10,3,10,2,4,8,9,8,11,9,9,8,6,2,2,2,7,6,11,10,2,5,13,9,10,9,5,9,6,5,4,6,5,13,12,10,5,9,12],[14,8,4,5,11,8,5,3,10,9,3,6,5,10,8,13,11,9,8,11,10,9,12,11,0,8,7,4,2,2,11,5,5,2],[14,10,9,8,12,11,7,10,9,8,11,9,8,3,10,13],[11,9,5,10,9,8,3,10,8,11,5,2,10,8,7,2,14,10,4,3,11,10,9,2,9,8,10,8,7,5,6,2,3,7,9,13,9],[8,3,9,11,8,6,12,11,10,4,6,5,5,11,8,8,9,3,3,6,9,3,13,12],[10,9,4,10,2,12,10,4,6,5,6,11,10,4,11,10,5,11,10,4,13,12,9],[3,3,11,9,8,8,12,4,10,9,4,4,10,7,3,3,8,7,10,8,4,4,3,8,10,9,14,8,5,4,2,2,3,9,8,3,8,7,5,9,10,8,4,3,7,6,5,4,10,8,7,12,11,6,9,3,7,7],[11,12,11,8,10,4,4,8,7,11,10,9,8,5,12,10,8,7,9,4,3,3,4,3,9,11,8,7,3,7,14,10],[9,8,10,9,8,4,11,9,9,8,7,6,5,4,4,3,4,11,10,9,8,5,10,10,8,10,8,9,8,9,8,4,5,4,10,9,7,5,10,9,9,10,9,8,8,8,11,10],[9,5,10,9,7,7,3,8,4,3,10,8,5,9,7,6,4,5,11,6,4,8,7,5,4,5,9,11,9,9,8,7,5,4,9,8,4,11,11,9,13,10,5,6,3,10,9,7,3,12,9,6,10,3,9],[12,10,12,10,10,11,5,7,11,10,3,9,8,9,11,3,6,7,5,14],[4,3,9,13,10,6,9,8,7,3,8,5,5,4,3,6,9,7,5,10,8,10,9,6,8,7,6,4,11,3,8,10,12,10,8],[7,6,10,9,8,7,9,8,8,6,8,13,9,4,5,10,8,2,3,11,7,6,10,11,8,3,6,4,10,12,11,3,4,3],[6,11,10,7,5,11,9,8,13,9,7,7,5,8,7,4,4,12,11,4,9,8,13,2,4,11,10,9,8,9,7,9,10,7,3,10,8,8,3],[6,10,10,7,6,8,6,5,4,2,8,6,9,7,11,10,8,11,3,3,3,11,11,9,7,9,8,11,10,9,8,11,12,10,7,6,8,6,7,9,8,6],[12,6,7,7,6,13,9,8,12,11,8,8,6,9,7,5,6,11,7],0,[16],0,0,0,0,0,0,0,0,0,[2],0,[8,8,8,8,8,8,8,8,8,8,12,10,8,9,8,8,9],[8,8,9,8,8,8,8,8,8,8,9,8],0,0,0,[8,8,8,8,8,8],0,0,0,0,0,[8,8,9,2,2,2,2,2,9,8,3,2,2,4,3,3,3,2,4,2,3,2,2,2,4,2,8],0,[7],[8,8,10,8,8,9],0,0,0,[8,8,8,8,8,8,8],0,[8],0,[8],[8],[8,2,4,5,5,4,2,4,2,2,2,8,8,8,8,8],0,0,[8],[8,8,2],[8],[8],0,[11,11,10,9,12,12,11,12],[12],0,0,[12,11,10,9,9,8,13,12,9,8,7,2,11,9,2,12,2,2,2,8,6,10,9,8],0,0,0,0,[10,9,8,10,3,4,3,13,7,8,7,11,3,3,5,3,5,5,12,11,3,6,10,7,2,9,8,2,9,2,5,9,8,5,6,5,2,5,2,2],0,[3,5,7,3,3,12,5,8,4,4,8,7,2,8,11,10,8,13,12,11,8,5,9,11,7,3,8,5,11,8],[14,11,3,2,2,2,9,2,4,3,10,13,11,9,8,10,5,14,11],0,0,0,0,0,0,0,0,[0,0,0,0,8,0],0,0,0,0,0,[9,0],0,0,0,[1,1,2,1,5,2,3,2,1,1,1,1,0,1,0,0,1,0,4,0,2,0,0,0,5,4,0,1,1,2,1,0,4,4,1,1,0,0,1,0,1,0,0,0,1,0,2,1,0,0,1,1,0,1,1,1,0,0,1,0,0,1,0,3,1,1,0,1,1,1,0,0,2,0,0,0,0,0,2,1,0,0,0,0,0,4,1,1,1,2,0,0,3,1,2,3,6,4,3,1,0,2,1,3,2,3,1,6,3,1,0,0,1,0,1,0,0,1,1,0,1,1,0,0,1,3,0,3,4,2,4,4,2,0,0,0,1,1,1,0,4,0,1,0,1,5,0,4,1,4,0,0,1,4,3,4,0,2,2,0,2,1,0,3,3,4,4,3,2,2,2,2,2,2,0,0,3,2,1,0,5,2,3,1,4,2,2,2,4,5,4,4,4,3,4,4,2,4,3,4,2,1,4,2,2,3,2,3,3,2,4,2,4,4,2,1,3,4,0,2,4,2,3,2,2,3,2,4,5,0,4,2,4,2,4,5,2,3,4,3,2,2,5,3,12,11,9,3,2,3,5,4,0,0,4,3,3,2,4,4,3,4,2,4,3,5,4,3,4,1,5,3,2,5,5,3,4,4,4,0,4,4,4,5,2,0,4,2,5,4,2,5,3,3,4,2,3,2,4,4,6,5,5,5,5,2,4,5,2,5,4,2,4,5,5,2,2,4,0,0,4,5,4,4,4,1,0,0,0,2,0,5,2,4,5,5,5,3,3,0,2,2,3,2,2,5,4,2,5,4,4,5,3,2,2,4,4,5,6,4,3,0,4,3,2,12],[2,1,0,0,1,1,0,1,0,1,1,3,1,0,0,0,2,1,0,0,0,0,0,1,0,0,0,2,0,1,1,0,1,1,0,2,1,0,0,1,3,0,3,1,0,0,2,1,3,1,1,0,1,1,0,1,0,1,0,3,2,0,3,0,0,0,0,0,1,0,2,0,1,0,0,0,2,0,1,1,1,0,0,1,0,1,2,1,1,1,0,0,0,1,0,1,1,0,0,1,1,0,0,1,0,1,0,0,4,1,0,1,0,1,0,1,0,0,0,3,0,0,0,1,0,1,0,1,0,0,0,1,1,0,1,0,0,2,1,0,0,0,0,1,0,0,0,1,0,1,0,2,1,0,0,0,0,1,2,0,0,0,0,2,0,2,2,0,0,0,0,2,1,0,2,2,0,0,0,0,1,1,3,0,1,0,0,0,0,0,3,2,0,0,0,2,0,0,1,3,1,2,0,1,0,0,2,0,0,1,0,1,0,0,3,0,1,0,0,0,4,1,0,1,0,0,3,1,0,0,2,0,0,3,1,0,0,1,3,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,2,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,0,1,3,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,2,0,1,0,0,0,1,0,0,0,0,0,0,2,0,0,1,0,0,0,0,3,0,1,1,1,0,0,1,0,0,0,2,0,0,0,0,1,0,0,1,0,1,2,0,2,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,3,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,1,1,4,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,0,3,2,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,3,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,1,0,1,0,0,0,0,0,0,2,0,0,2,2,3,2,3,2,4,2,4,4,1,4,0,4,3,2,3,4,2,1,3,4,4,2,3,3,4,7,1,5,5,2,3,2,2,3,6,5,5,4,3,2,5,8,5,3,6,5,3,2,5,4,3,4,4,3,0,5,4,4,4,6,7,5,4,1,0,4,2,5,0,2,3,2,2,0,7,3,2,1,0,5,5,3,3,5,5,3,5,4,5,5,5,6,4,2,1,2,5,5,2,6,3,3,0,5,2,0,5,5,2,5,1,2,4,0,0,5,5,7,5,3,4,5,1,1,2,5,3,2,4,0,1,4,6,4,5,5,3,5,3,7,4,2,2,5,7,7,6,4,2,5,5,4,4,3,2,4,4,3],0,0,0,0,0,0,[5,5,3,5,3,9,5,8,6,4,6,9,5,12,10,9,8,9,8,5,10,9,8,6,5,9,6,6,5],[11,12,11,13],0,0,0,0,0,0,[13,13,11,10,7,5,3,10,9,5,3,12,11,8],[8,8,7,3,2,13,12,11,10,9],[6,10,7,9,2,13,12,6,7,6,8,9,3,10,8],[11,10,7,6,9,8,9,9,8,7,5,9,11,10,10,9,8,7,6,4,13,11,5],[14,12,8,7,12,10,13,12,11,11,9],[12,9,2,2,2,13,12,10,9,11,9,2,12,10,9,9,9,9,8,11,9,5,11,10,7,8,7,2,1],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16],[16]]; --------------------------------------------------------------------------------