├── .gitignore ├── LICENSE ├── README.md ├── data └── 2016-01-02.txt ├── result1.jpg ├── result2.jpg ├── spider.py └── utils ├── __init__.py ├── __pycache__ ├── __init__.cpython-36.pyc └── docid.cpython-36.pyc ├── docid.js ├── docid.py ├── getGuid.js └── getVl5x.js /.gitignore: -------------------------------------------------------------------------------- 1 | processing.py 2 | utils/行政区划代码.txt 3 | .idea 4 | 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Yifan Wu 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A spider for China Judgements Online 2 | ## ***This project is no longer maintained and for reference only*** 3 | 4 | ***It is only used for personal study and technical exchange, and cannot be used for commercial purposes.*** 5 | ## Overview 6 | This is a spider for [中国裁判文书网](http://wenshu.court.gov.cn/). 7 | ## Features 8 | - Support IP proxy 9 | - Support multiple processes 10 | - Support full crawling 11 | - Divide data according to decision time, region and court 12 | ## Run 13 | ```Shell 14 | python spider.py -num_processes 1 -start_time 2016-1-2 -end_time 2016-1-2 15 | ``` 16 | ## Results 17 | - raw data 18 | 19 | ![image](https://github.com/wuyifan18/spider/blob/master/result1.jpg) 20 | - processed data 21 | 22 | ![image](https://github.com/wuyifan18/spider/blob/master/result2.jpg) 23 | 24 | 推荐一个付费好用的代理SmartProxy: 25 | 代理IP池项目,它主打1亿真实住宅IP资源,专业海外http代理商,千万级优质资源,覆盖全球城市,高匿稳定提供100%原生住宅IP,支持社交账户、电商平台、网络数据收集等服务。 26 | 提供API和账密提取使用方式,动态和静态住宅代理均有,大部分是真人住宅IP,成功率很赞,本人测试用过之后感觉很不错。 27 | 现在付费套餐选择多样,春季价格很优惠,动态住宅代理只要65折!需要高质量代理IP的可以注册后联系客服购买,比直接购买会优惠一点。 28 | 29 |
30 | 31 |
32 | 33 | 官网链接:https://www.smartproxy.cn/ 34 | 35 | 专属注册链接:[https://www.smartproxy.cn/regist](https://www.smartproxy.cn/regist?invite=3LPPK2) 36 | -------------------------------------------------------------------------------- /result1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/result1.jpg -------------------------------------------------------------------------------- /result2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/result2.jpg -------------------------------------------------------------------------------- /spider.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding=utf-8 3 | import argparse 4 | import requests 5 | import execjs 6 | import json 7 | import multiprocessing 8 | import time 9 | import re 10 | import datetime 11 | from utils.docid import getkey, decode_docid 12 | import os 13 | import random 14 | 15 | 16 | class SpiderManager(object): 17 | 18 | def __init__(self): 19 | 20 | self.url = "http://wenshu.court.gov.cn/List/List?sorttype=1{}" 21 | self.detailurl = "http://wenshu.court.gov.cn/CreateContentJS/CreateContentJS.aspx?DocID={}" 22 | self.conditions = [] 23 | self.url_for_content = "http://wenshu.court.gov.cn/List/ListContent" 24 | self.proxies = [] 25 | self.headers_getvjkl5 = { 26 | "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", 27 | "Accept-Language": "zh-CN,zh;q=0.9", 28 | "Connection": "keep-alive", 29 | "Cookie": "", 30 | "DNT": "1", 31 | "Host": "wenshu.court.gov.cn", 32 | "Upgrade-Insecure-Requests": "1", 33 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" 34 | } 35 | self.headers_getdata = { 36 | "Accept": "*/*", 37 | "Accept-Language": "zh-CN,zh;q=0.9", 38 | "Connection": "keep-alive", 39 | "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", 40 | "Cookie": "", 41 | "DNT": "1", 42 | "Host": "wenshu.court.gov.cn", 43 | "Origin": "http://wenshu.court.gov.cn", 44 | "Referer": "http://wenshu.court.gov.cn/list/list/?sorttype=1&conditions=searchWord+5+AJLX++%E6%A1%88%E4%BB%B6%E7%B1%BB%E5%9E%8B:%E6%89%A7%E8%A1%8C%E6%A1%88%E4%BB%B6&conditions=searchWord++CPRQ++%E8%A3%81%E5%88%A4%E6%97%A5%E6%9C%9F:2016-01-04%20TO%202016-01-04&conditions=searchWord+%E5%8C%97%E4%BA%AC%E5%B8%82+++%E6%B3%95%E9%99%A2%E5%9C%B0%E5%9F%9F:%E5%8C%97%E4%BA%AC%E5%B8%82", 45 | "X-Requested-With": "XMLHttpRequest", 46 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" 47 | } 48 | self.headers_getdetail = { 49 | "Accept": "text/javascript, application/javascript, */*", 50 | "Accept-Language": "zh-CN,zh;q=0.9", 51 | "Connection": "keep-alive", 52 | "Cookie": "", 53 | "DNT": "1", 54 | "Host": "wenshu.court.gov.cn", 55 | "Referer": "http://wenshu.court.gov.cn/content/content?DocID=e282e679-92f9-49ce-afae-c401fbafedec&KeyWord=", 56 | "X-Requested-With": "XMLHttpRequest", 57 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" 58 | } 59 | self.data = { 60 | "Param": "案件类型:执行案件,", 61 | "Index": "1", 62 | "Page": "10", 63 | "Order": "法院层级", 64 | "Direction": "asc", 65 | "vl5x": "", 66 | "number": "wens", 67 | "guid": "" 68 | } 69 | 70 | def setconditions(self, conditions): 71 | self.conditions = conditions 72 | 73 | def setdatacookies(self, cookies): 74 | self.headers_getdata["Cookie"] = cookies 75 | 76 | def setdetailcookies(self, cookies): 77 | self.headers_getdetail["Cookie"] = cookies 78 | 79 | @staticmethod 80 | def getguid(): 81 | with open('utils/getGuid.js') as fp: 82 | js = fp.read() 83 | ctx = execjs.compile(js) 84 | return ctx.call('getGuid') 85 | 86 | def getvjkl5(self): 87 | request_url = self.url.format(self.conditions) 88 | while True: 89 | try: 90 | response = requests.post(request_url, headers=self.headers_getvjkl5, timeout=(3.05, 27), proxies={'http': self.proxies}) 91 | response.close() 92 | break 93 | except (requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e: 94 | print('id: {}, getvjk15: {}'.format(os.getpid(), e)) 95 | self.proxies = getIP() 96 | return response.cookies["vjkl5"], response.cookies["wzws_cid"] 97 | 98 | @staticmethod 99 | def getvl5x(vjkl5): 100 | with open('utils/getVl5x.js') as fp: 101 | js = fp.read() 102 | ctx = execjs.compile(js) 103 | return ctx.call('getVl5x', vjkl5) 104 | 105 | def getData(self, page, date, area, court): 106 | if court == '中级法院:': 107 | self.data['Param'] = self.data['Param'] + date + ',' + area 108 | else: 109 | self.data['Param'] = self.data['Param'] + date + ',' + area + ',' + court 110 | self.data["Index"] = page 111 | q = 0 112 | while True: 113 | try: 114 | vjkl5, wzws_cid = self.getvjkl5() 115 | self.data["vl5x"] = self.getvl5x(vjkl5) 116 | self.data["guid"] = self.getguid() 117 | self.setdatacookies("wzws_cid={}; vjkl5={}".format(wzws_cid, vjkl5)) 118 | self.setdetailcookies("wzws_cid={}; vjkl5={}".format(wzws_cid, vjkl5)) 119 | rsp = requests.post(self.url_for_content, headers=self.headers_getdata, data=self.data, timeout=(3.05, 27), proxies={'http': self.proxies}) 120 | rsp.close() 121 | if rsp.text[-3] == ',' and q == 1: 122 | q = 0 123 | return 'null', 'null' 124 | if rsp.text[-3] == ',': 125 | q = q + 1 126 | continue 127 | infodata = json.loads(json.loads(rsp.text)) 128 | htmldata = self.getDetails(infodata) 129 | break 130 | except (KeyError, requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e: 131 | print('id: {}, getData: {}'.format(os.getpid(), e)) 132 | self.proxies = getIP() 133 | except (ValueError, execjs._exceptions.ProcessExitedWithNonZeroStatus, UnicodeDecodeError, IndexError) as e: 134 | print('id: {}, getKey: {}'.format(os.getpid(), e)) 135 | self.proxies = getIP() 136 | return infodata, htmldata 137 | 138 | def getDetails(self, infodata): 139 | htmldata = [] 140 | format_key_str = infodata[0]['RunEval'] 141 | key = getkey(format_key_str).encode('utf-8') 142 | for x in infodata[1:]: 143 | iid = x['文书ID'] 144 | docid = decode_docid(iid, key) 145 | if docid == '': 146 | continue 147 | request_url = self.detailurl.format(docid) 148 | while True: 149 | try: 150 | response = requests.post(request_url, headers=self.headers_getdetail, timeout=(3.05, 27), proxies={'http': self.proxies}) 151 | response.close() 152 | jsonHtmlData = re.findall('var jsonHtmlData = "({.*?}";)', response.text) 153 | jsonHtmlData = json.loads(jsonHtmlData[0][:-2].replace('\\', ''), strict=False)['Html'] 154 | htmldata.append(jsonHtmlData) 155 | break 156 | except (requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e: 157 | print('id: {}, getDetails: {}'.format(os.getpid(), e)) 158 | self.proxies = getIP() 159 | except IndexError: 160 | print('id: {}, 验证码: {}'.format(os.getpid(), response.text)) 161 | self.proxies = getIP() 162 | return htmldata 163 | 164 | @staticmethod 165 | def save(infodata, htmldata, area, date): 166 | with open('data/' + date + '.txt', 'a+', encoding='utf-8') as fp: 167 | for item, html in zip(infodata, htmldata): 168 | row = '\t'.join( 169 | (item.get('裁判日期', ""), area, item.get('案件名称', ""), item.get('法院名称', ""), item.get('案号', ""), html)) 170 | fp.write(row + '\n') 171 | 172 | 173 | def getIP(): 174 | # while True: 175 | # try: 176 | # time.sleep(random.randint(2, 3)) 177 | # response = requests.get('http://webapi.http.zhimacangku.com/getip?num=1&type=1&pro=&city=0&yys=0&port=1&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=45&mr=1®ions=') 178 | # ip = response.text.strip() 179 | # return ip 180 | # except (requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, requests.exceptions.ReadTimeout)as e: 181 | # print('id: {}, getIP: {}'.format(os.getpid(), e)) 182 | return '' 183 | 184 | 185 | def f(para): 186 | page, date, area, proxies, court = para.split(',') 187 | spider = SpiderManager() 188 | if court == '': 189 | spider.setconditions('&conditions=searchWord+5+AJLX++案件类型:执行案件&conditions=searchWord++CPRQ++{0}&conditions=searchWord+{1}+++法院地域:{1}'.format(date, area)) 190 | else: 191 | spider.setconditions('&conditions=searchWord+5+AJLX++案件类型:执行案件&conditions=searchWord++CPRQ++{0}&conditions=searchWord+{1}+++法院地域:{1}&conditions=searchWord+{2}+++中级法院:{2}'.format(date, area, court)) 192 | spider.proxies = proxies 193 | infodata, htmldata = spider.getData(page=page, date=date, area='法院地域:' + area, court='中级法院:' + court) 194 | if infodata == 'null': 195 | return 0, spider.proxies 196 | if court == '' and int(infodata[0]['Count']) > 200: 197 | spider.data['parval'] = area 198 | while True: 199 | try: 200 | rsp = requests.post('http://wenshu.court.gov.cn/List/CourtTreeContent', headers=spider.headers_getdata, data=spider.data, timeout=(3.05, 27), proxies={'http': spider.proxies}) 201 | rsp.close() 202 | courtlist = [i['Key'] for i in json.loads(json.loads(rsp.text))[0]['Child'] if i['Key'] != ''] 203 | break 204 | except (json.decoder.JSONDecodeError, requests.exceptions.ChunkedEncodingError, requests.exceptions.InvalidURL, requests.exceptions.ProxyError, requests.exceptions.ConnectionError, requests.exceptions.ConnectTimeout, 205 | requests.exceptions.ReadTimeout) as e: 206 | print('id: {}, getCourt: {}'.format(os.getpid(), e)) 207 | spider.proxies = getIP() 208 | return courtlist, spider.proxies 209 | if infodata != 'null': 210 | spider.save(infodata[1:], htmldata, area, date.split()[-1]) 211 | return int(infodata[0]['Count']), spider.proxies 212 | 213 | 214 | def getCount(page, date, area, ip, court): 215 | page_start = time.time() 216 | count, _ = f(page + ',' + date + ',' + area + ',' + ip + ',' + court) 217 | page_end = time.time() 218 | if isinstance(count, list): 219 | return 'null', count 220 | total = count 221 | count = min(count, 200) 222 | page_count = count // 10 if count % 10 == 0 and count >= 10 else count // 10 + 1 223 | if court == '': 224 | print('id: {}, date: {}, area: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], area, total, 1, page_count, page_end - page_start)) 225 | else: 226 | print('id: {}, date: {}, area: {}, court: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], area, court, total, 1, page_count, page_end - page_start)) 227 | return page_count, total 228 | 229 | 230 | def fun(date): 231 | area = ['北京市', '天津市', '上海市', '重庆市', '河北省', '山西省', '辽宁省', '吉林省', '黑龙江省', '江苏省', '浙江省', '安徽省', '福建省', '江西省', 232 | '山东省', '河南省', '湖北省', '湖南省', '广东省', '海南省', '四川省', '贵州省', '云南省', '陕西省', '甘肃省', '青海省', 233 | '内蒙古自治区', '广西壮族自治区', '西藏自治区', '宁夏回族自治区', '新疆维吾尔自治区', '新疆维吾尔自治区高级人民法院生产建设兵团分院'] 234 | # while True: 235 | # try: 236 | # response = requests.get('http://webapi.http.zhimacangku.com/getip?num=1&type=1&pro=&city=0&yys=0&port=1&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=45&mr=1®ions=') 237 | # ip = response.text.strip() 238 | # if ip.find('"code":111,"success":false') == -1: 239 | # break 240 | # time.sleep(random.randint(2, 3)) 241 | # except Exception as e: 242 | # print('id: {}, getIP: {}'.format(os.getpid(), e)) 243 | ip = '' 244 | for a in area: 245 | page_count, count = getCount('1', date, a, ip, '') 246 | if isinstance(count, list): 247 | for court in count: 248 | page_count, total = getCount('1', date, a, ip, court) 249 | for page in range(2, page_count + 1): 250 | page_start = time.time() 251 | _, proxies = f(str(page) + ',' + date + ',' + a + ',' + ip + ',' + court) 252 | page_end = time.time() 253 | ip = proxies 254 | print('id: {}, date: {}, area: {}, court: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], a, court, total, page, page_count, page_end - page_start)) 255 | else: 256 | for page in range(2, page_count + 1): 257 | page_start = time.time() 258 | _, proxies = f(str(page) + ',' + date + ',' + a + ',' + ip + ',' + '') 259 | page_end = time.time() 260 | ip = proxies 261 | print('id: {}, date: {}, area: {}, total_count: {}, done: {}/{}, using time: {:.2f}'.format(os.getpid(), date.split()[-1], a, count, page, page_count, page_end - page_start)) 262 | return date 263 | 264 | 265 | if __name__ == '__main__': 266 | start = time.time() 267 | parser = argparse.ArgumentParser() 268 | parser.add_argument('-num_processes', default=1, type=int) 269 | parser.add_argument('-start_time', default='2016-1-2') 270 | parser.add_argument('-end_time', default='2016-1-2') 271 | args = parser.parse_args() 272 | enabled_proxy = args.start_time 273 | pool = multiprocessing.Pool(processes=args.num_processes) 274 | begin = datetime.datetime.strptime(args.start_time, "%Y-%m-%d") 275 | end = datetime.datetime.strptime(args.end_time, "%Y-%m-%d") 276 | t = [] 277 | while begin <= end: 278 | t.append("裁判日期:{} TO {}".format(begin.strftime("%Y-%m-%d"), begin.strftime("%Y-%m-%d"))) 279 | begin += datetime.timedelta(days=1) 280 | for d in pool.imap(fun, iter(t)): 281 | print('id: {}, date: {} finished.'.format(os.getpid(), d.split()[-1])) 282 | pool.close() 283 | pool.join() 284 | end = time.time() 285 | print('id: {}, using time: {:.2f}'.format(os.getpid(), end - start)) 286 | -------------------------------------------------------------------------------- /utils/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # -*- coding: UTF-8 -*- -------------------------------------------------------------------------------- /utils/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/utils/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /utils/__pycache__/docid.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wuyifan18/spider/d96f53f0a8091b18d24dfa677fbc54416a122881/utils/__pycache__/docid.cpython-36.pyc -------------------------------------------------------------------------------- /utils/docid.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1999 Masanao Izumo 2 | * Version: 1.0.0.1 3 | * LastModified: Dec 25 1999 4 | */ 5 | 6 | /* Interface: 7 | * data = zip_inflate(src); 8 | */ 9 | 10 | /* constant parameters */ 11 | var zip_WSIZE = 32768; // Sliding Window size 12 | var zip_STORED_BLOCK = 0; 13 | var zip_STATIC_TREES = 1; 14 | var zip_DYN_TREES = 2; 15 | 16 | /* for inflate */ 17 | var zip_lbits = 9; // bits in base literal/length lookup table 18 | var zip_dbits = 6; // bits in base distance lookup table 19 | var zip_INBUFSIZ = 32768; // Input buffer size 20 | var zip_INBUF_EXTRA = 64; // Extra buffer 21 | 22 | /* variables (inflate) */ 23 | var zip_slide; 24 | var zip_wp; // current position in slide 25 | var zip_fixed_tl = null; // inflate static 26 | var zip_fixed_td; // inflate static 27 | var zip_fixed_bl, zip_fixed_bd; // inflate static 28 | var zip_bit_buf; // bit buffer 29 | var zip_bit_len; // bits in bit buffer 30 | var zip_method; 31 | var zip_eof; 32 | var zip_copy_leng; 33 | var zip_copy_dist; 34 | var zip_tl, zip_td; // literal/length and distance decoder tables 35 | var zip_bl, zip_bd; // number of bits decoded by tl and td 36 | 37 | var zip_inflate_data; 38 | var zip_inflate_pos; 39 | 40 | 41 | /* constant tables (inflate) */ 42 | var zip_MASK_BITS = new Array( 43 | 0x0000, 44 | 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, 45 | 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff); 46 | // Tables for deflate from PKZIP's appnote.txt. 47 | var zip_cplens = new Array( // Copy lengths for literal codes 257..285 48 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 49 | 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0); 50 | /* note: see note #13 above about the 258 in this list. */ 51 | var zip_cplext = new Array( // Extra bits for literal codes 257..285 52 | 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 53 | 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99); // 99==invalid 54 | var zip_cpdist = new Array( // Copy offsets for distance codes 0..29 55 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 56 | 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 57 | 8193, 12289, 16385, 24577); 58 | var zip_cpdext = new Array( // Extra bits for distance codes 59 | 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 60 | 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 61 | 12, 12, 13, 13); 62 | var zip_border = new Array( // Order of the bit length code lengths 63 | 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15); 64 | /* objects (inflate) */ 65 | 66 | var zip_HuftList = function() { 67 | this.next = null; 68 | this.list = null; 69 | }; 70 | 71 | var zip_HuftNode = function() { 72 | this.e = 0; // number of extra bits or operation 73 | this.b = 0; // number of bits in this code or subcode 74 | 75 | // union 76 | this.n = 0; // literal, length base, or distance base 77 | this.t = null; // (zip_HuftNode) pointer to next level of table 78 | } 79 | 80 | var zip_HuftBuild = function(b, // code lengths in bits (all assumed <= BMAX) 81 | n, // number of codes (assumed <= N_MAX) 82 | s, // number of simple-valued codes (0..s-1) 83 | d, // list of base values for non-simple codes 84 | e, // list of extra bits for non-simple codes 85 | mm // maximum lookup bits 86 | ) { 87 | this.BMAX = 16; // maximum bit length of any code 88 | this.N_MAX = 288; // maximum number of codes in any set 89 | this.status = 0; // 0: success, 1: incomplete table, 2: bad input 90 | this.root = null; // (zip_HuftList) starting table 91 | this.m = 0; // maximum lookup bits, returns actual 92 | 93 | /* Given a list of code lengths and a maximum table size, make a set of 94 | tables to decode that set of codes. Return zero on success, one if 95 | the given code set is incomplete (the tables are still built in this 96 | case), two if the input is invalid (all zero length codes or an 97 | oversubscribed set of lengths), and three if not enough memory. 98 | The code with value 256 is special, and the tables are constructed 99 | so that no bits beyond that code are fetched when that code is 100 | decoded. */ 101 | { 102 | var a; // counter for codes of length k 103 | var c = new Array(this.BMAX+1); // bit length count table 104 | var el; // length of EOB code (value 256) 105 | var f; // i repeats in table every f entries 106 | var g; // maximum code length 107 | var h; // table level 108 | var i; // counter, current code 109 | var j; // counter 110 | var k; // number of bits in current code 111 | var lx = new Array(this.BMAX+1); // stack of bits per table 112 | var p; // pointer into c[], b[], or v[] 113 | var pidx; // index of p 114 | var q; // (zip_HuftNode) points to current table 115 | var r = new zip_HuftNode(); // table entry for structure assignment 116 | var u = new Array(this.BMAX); // zip_HuftNode[BMAX][] table stack 117 | var v = new Array(this.N_MAX); // values in order of bit length 118 | var w; 119 | var x = new Array(this.BMAX+1);// bit offsets, then code stack 120 | var xp; // pointer into x or c 121 | var y; // number of dummy codes added 122 | var z; // number of entries in current table 123 | var o; 124 | var tail; // (zip_HuftList) 125 | 126 | tail = this.root = null; 127 | for(i = 0; i < c.length; i++) 128 | c[i] = 0; 129 | for(i = 0; i < lx.length; i++) 130 | lx[i] = 0; 131 | for(i = 0; i < u.length; i++) 132 | u[i] = null; 133 | for(i = 0; i < v.length; i++) 134 | v[i] = 0; 135 | for(i = 0; i < x.length; i++) 136 | x[i] = 0; 137 | 138 | // Generate counts for each bit length 139 | el = n > 256 ? b[256] : this.BMAX; // set length of EOB code, if any 140 | p = b; pidx = 0; 141 | i = n; 142 | do { 143 | c[p[pidx]]++; // assume all entries <= BMAX 144 | pidx++; 145 | } while(--i > 0); 146 | if(c[0] == n) { // null input--all zero length codes 147 | this.root = null; 148 | this.m = 0; 149 | this.status = 0; 150 | return; 151 | } 152 | 153 | // Find minimum and maximum length, bound *m by those 154 | for(j = 1; j <= this.BMAX; j++) 155 | if(c[j] != 0) 156 | break; 157 | k = j; // minimum code length 158 | if(mm < j) 159 | mm = j; 160 | for(i = this.BMAX; i != 0; i--) 161 | if(c[i] != 0) 162 | break; 163 | g = i; // maximum code length 164 | if(mm > i) 165 | mm = i; 166 | 167 | // Adjust last length count to fill out codes, if needed 168 | for(y = 1 << j; j < i; j++, y <<= 1) 169 | if((y -= c[j]) < 0) { 170 | this.status = 2; // bad input: more codes than bits 171 | this.m = mm; 172 | return; 173 | } 174 | if((y -= c[i]) < 0) { 175 | this.status = 2; 176 | this.m = mm; 177 | return; 178 | } 179 | c[i] += y; 180 | 181 | // Generate starting offsets into the value table for each length 182 | x[1] = j = 0; 183 | p = c; 184 | pidx = 1; 185 | xp = 2; 186 | while(--i > 0) // note that i == g from above 187 | x[xp++] = (j += p[pidx++]); 188 | 189 | // Make a table of values in order of bit lengths 190 | p = b; pidx = 0; 191 | i = 0; 192 | do { 193 | if((j = p[pidx++]) != 0) 194 | v[x[j]++] = i; 195 | } while(++i < n); 196 | n = x[g]; // set n to length of v 197 | 198 | // Generate the Huffman codes and for each, make the table entries 199 | x[0] = i = 0; // first Huffman code is zero 200 | p = v; pidx = 0; // grab values in bit order 201 | h = -1; // no tables yet--level -1 202 | w = lx[0] = 0; // no bits decoded yet 203 | q = null; // ditto 204 | z = 0; // ditto 205 | 206 | // go through the bit lengths (k already is bits in shortest code) 207 | for(; k <= g; k++) { 208 | a = c[k]; 209 | while(a-- > 0) { 210 | // here i is the Huffman code of length k bits for value p[pidx] 211 | // make tables up to required level 212 | while(k > w + lx[1 + h]) { 213 | w += lx[1 + h]; // add bits already decoded 214 | h++; 215 | 216 | // compute minimum size table less than or equal to *m bits 217 | z = (z = g - w) > mm ? mm : z; // upper limit 218 | if((f = 1 << (j = k - w)) > a + 1) { // try a k-w bit table 219 | // too few codes for k-w bit table 220 | f -= a + 1; // deduct codes from patterns left 221 | xp = k; 222 | while(++j < z) { // try smaller tables up to z bits 223 | if((f <<= 1) <= c[++xp]) 224 | break; // enough codes to use up j bits 225 | f -= c[xp]; // else deduct codes from patterns 226 | } 227 | } 228 | if(w + j > el && w < el) 229 | j = el - w; // make EOB code end at table 230 | z = 1 << j; // table entries for j-bit table 231 | lx[1 + h] = j; // set table size in stack 232 | 233 | // allocate and link in new table 234 | q = new Array(z); 235 | for(o = 0; o < z; o++) { 236 | q[o] = new zip_HuftNode(); 237 | } 238 | 239 | if(tail == null) 240 | tail = this.root = new zip_HuftList(); 241 | else 242 | tail = tail.next = new zip_HuftList(); 243 | tail.next = null; 244 | tail.list = q; 245 | u[h] = q; // table starts after link 246 | 247 | /* connect to last table, if there is one */ 248 | if(h > 0) { 249 | x[h] = i; // save pattern for backing up 250 | r.b = lx[h]; // bits to dump before this table 251 | r.e = 16 + j; // bits in this table 252 | r.t = q; // pointer to this table 253 | j = (i & ((1 << w) - 1)) >> (w - lx[h]); 254 | u[h-1][j].e = r.e; 255 | u[h-1][j].b = r.b; 256 | u[h-1][j].n = r.n; 257 | u[h-1][j].t = r.t; 258 | } 259 | } 260 | 261 | // set up table entry in r 262 | r.b = k - w; 263 | if(pidx >= n) 264 | r.e = 99; // out of values--invalid code 265 | else if(p[pidx] < s) { 266 | r.e = (p[pidx] < 256 ? 16 : 15); // 256 is end-of-block code 267 | r.n = p[pidx++]; // simple code is just the value 268 | } else { 269 | r.e = e[p[pidx] - s]; // non-simple--look up in lists 270 | r.n = d[p[pidx++] - s]; 271 | } 272 | 273 | // fill code-like entries with r // 274 | f = 1 << (k - w); 275 | for(j = i >> w; j < z; j += f) { 276 | q[j].e = r.e; 277 | q[j].b = r.b; 278 | q[j].n = r.n; 279 | q[j].t = r.t; 280 | } 281 | 282 | // backwards increment the k-bit code i 283 | for(j = 1 << (k - 1); (i & j) != 0; j >>= 1) 284 | i ^= j; 285 | i ^= j; 286 | 287 | // backup over finished tables 288 | while((i & ((1 << w) - 1)) != x[h]) { 289 | w -= lx[h]; // don't need to update q 290 | h--; 291 | } 292 | } 293 | } 294 | 295 | /* return actual size of base table */ 296 | this.m = lx[1]; 297 | 298 | /* Return true (1) if we were given an incomplete table */ 299 | this.status = ((y != 0 && g != 1) ? 1 : 0); 300 | } /* end of constructor */ 301 | }; 302 | 303 | 304 | /* routines (inflate) */ 305 | 306 | var zip_GET_BYTE = function() { 307 | if(zip_inflate_data.length == zip_inflate_pos) 308 | return -1; 309 | var charcode = zip_inflate_data.charCodeAt(zip_inflate_pos++); 310 | return charcode & 0xff; 311 | }; 312 | 313 | var zip_NEEDBITS = function(n) { 314 | while(zip_bit_len < n) { 315 | zip_bit_buf |= zip_GET_BYTE() << zip_bit_len; 316 | zip_bit_len += 8; 317 | } 318 | }; 319 | 320 | var zip_GETBITS = function(n) { 321 | return zip_bit_buf & zip_MASK_BITS[n]; 322 | }; 323 | 324 | var zip_DUMPBITS = function(n) { 325 | zip_bit_buf >>= n; 326 | zip_bit_len -= n; 327 | }; 328 | 329 | var zip_inflate_codes = function(buff, off, size) { 330 | /* inflate (decompress) the codes in a deflated (compressed) block. 331 | Return an error code or zero if it all goes ok. */ 332 | var e; // table entry flag/number of extra bits 333 | var t; // (zip_HuftNode) pointer to table entry 334 | var n; 335 | 336 | if(size == 0) 337 | return 0; 338 | 339 | // inflate the coded data 340 | n = 0; 341 | for(;;) { // do until end of block 342 | zip_NEEDBITS(zip_bl); 343 | t = zip_tl.list[zip_GETBITS(zip_bl)]; 344 | e = t.e; 345 | while(e > 16) { 346 | if(e == 99) 347 | return -1; 348 | zip_DUMPBITS(t.b); 349 | e -= 16; 350 | zip_NEEDBITS(e); 351 | t = t.t[zip_GETBITS(e)]; 352 | e = t.e; 353 | } 354 | zip_DUMPBITS(t.b); 355 | 356 | if(e == 16) { // then it's a literal 357 | zip_wp &= zip_WSIZE - 1; 358 | buff[off + n++] = zip_slide[zip_wp++] = t.n; 359 | if(n == size) 360 | return size; 361 | continue; 362 | } 363 | 364 | // exit if end of block 365 | if(e == 15) 366 | break; 367 | 368 | // it's an EOB or a length 369 | 370 | // get length of block to copy 371 | zip_NEEDBITS(e); 372 | zip_copy_leng = t.n + zip_GETBITS(e); 373 | zip_DUMPBITS(e); 374 | 375 | // decode distance of block to copy 376 | zip_NEEDBITS(zip_bd); 377 | t = zip_td.list[zip_GETBITS(zip_bd)]; 378 | e = t.e; 379 | 380 | while(e > 16) { 381 | if(e == 99) 382 | return -1; 383 | zip_DUMPBITS(t.b); 384 | e -= 16; 385 | zip_NEEDBITS(e); 386 | t = t.t[zip_GETBITS(e)]; 387 | e = t.e; 388 | } 389 | zip_DUMPBITS(t.b); 390 | zip_NEEDBITS(e); 391 | zip_copy_dist = zip_wp - t.n - zip_GETBITS(e); 392 | zip_DUMPBITS(e); 393 | 394 | // do the copy 395 | while(zip_copy_leng > 0 && n < size) { 396 | zip_copy_leng--; 397 | zip_copy_dist &= zip_WSIZE - 1; 398 | zip_wp &= zip_WSIZE - 1; 399 | buff[off + n++] = zip_slide[zip_wp++] 400 | = zip_slide[zip_copy_dist++]; 401 | } 402 | 403 | if(n == size) 404 | return size; 405 | } 406 | 407 | zip_method = -1; // done 408 | return n; 409 | }; 410 | 411 | var zip_inflate_stored = function(buff, off, size) { 412 | /* "decompress" an inflated type 0 (stored) block. */ 413 | var n; 414 | 415 | // go to byte boundary 416 | n = zip_bit_len & 7; 417 | zip_DUMPBITS(n); 418 | 419 | // get the length and its complement 420 | zip_NEEDBITS(16); 421 | n = zip_GETBITS(16); 422 | zip_DUMPBITS(16); 423 | zip_NEEDBITS(16); 424 | if(n != ((~zip_bit_buf) & 0xffff)) 425 | return -1; // error in compressed data 426 | zip_DUMPBITS(16); 427 | 428 | // read and output the compressed data 429 | zip_copy_leng = n; 430 | 431 | n = 0; 432 | while(zip_copy_leng > 0 && n < size) { 433 | zip_copy_leng--; 434 | zip_wp &= zip_WSIZE - 1; 435 | zip_NEEDBITS(8); 436 | buff[off + n++] = zip_slide[zip_wp++] = 437 | zip_GETBITS(8); 438 | zip_DUMPBITS(8); 439 | } 440 | 441 | if(zip_copy_leng == 0) 442 | zip_method = -1; // done 443 | return n; 444 | }; 445 | 446 | var zip_inflate_fixed = function(buff, off, size) { 447 | /* decompress an inflated type 1 (fixed Huffman codes) block. We should 448 | either replace this with a custom decoder, or at least precompute the 449 | Huffman tables. */ 450 | 451 | // if first time, set up tables for fixed blocks 452 | if(zip_fixed_tl == null) { 453 | var i; // temporary variable 454 | var l = new Array(288); // length list for huft_build 455 | var h; // zip_HuftBuild 456 | 457 | // literal table 458 | for(i = 0; i < 144; i++) 459 | l[i] = 8; 460 | for(; i < 256; i++) 461 | l[i] = 9; 462 | for(; i < 280; i++) 463 | l[i] = 7; 464 | for(; i < 288; i++) // make a complete, but wrong code set 465 | l[i] = 8; 466 | zip_fixed_bl = 7; 467 | 468 | h = new zip_HuftBuild(l, 288, 257, zip_cplens, zip_cplext, 469 | zip_fixed_bl); 470 | if(h.status != 0) { 471 | alert("HufBuild error: "+h.status); 472 | return -1; 473 | } 474 | zip_fixed_tl = h.root; 475 | zip_fixed_bl = h.m; 476 | 477 | // distance table 478 | for(i = 0; i < 30; i++) // make an incomplete code set 479 | l[i] = 5; 480 | zip_fixed_bd = 5; 481 | 482 | h = new zip_HuftBuild(l, 30, 0, zip_cpdist, zip_cpdext, zip_fixed_bd); 483 | if(h.status > 1) { 484 | zip_fixed_tl = null; 485 | alert("HufBuild error: "+h.status); 486 | return -1; 487 | } 488 | zip_fixed_td = h.root; 489 | zip_fixed_bd = h.m; 490 | } 491 | 492 | zip_tl = zip_fixed_tl; 493 | zip_td = zip_fixed_td; 494 | zip_bl = zip_fixed_bl; 495 | zip_bd = zip_fixed_bd; 496 | return zip_inflate_codes(buff, off, size); 497 | }; 498 | 499 | var zip_inflate_dynamic = function(buff, off, size) { 500 | // decompress an inflated type 2 (dynamic Huffman codes) block. 501 | var i; // temporary variables 502 | var j; 503 | var l; // last length 504 | var n; // number of lengths to get 505 | var t; // (zip_HuftNode) literal/length code table 506 | var nb; // number of bit length codes 507 | var nl; // number of literal/length codes 508 | var nd; // number of distance codes 509 | var ll = new Array(286+30); // literal/length and distance code lengths 510 | var h; // (zip_HuftBuild) 511 | 512 | for(i = 0; i < ll.length; i++) 513 | ll[i] = 0; 514 | 515 | // read in table lengths 516 | zip_NEEDBITS(5); 517 | nl = 257 + zip_GETBITS(5); // number of literal/length codes 518 | zip_DUMPBITS(5); 519 | zip_NEEDBITS(5); 520 | nd = 1 + zip_GETBITS(5); // number of distance codes 521 | zip_DUMPBITS(5); 522 | zip_NEEDBITS(4); 523 | nb = 4 + zip_GETBITS(4); // number of bit length codes 524 | zip_DUMPBITS(4); 525 | if(nl > 286 || nd > 30) 526 | return -1; // bad lengths 527 | 528 | // read in bit-length-code lengths 529 | for(j = 0; j < nb; j++) 530 | { 531 | zip_NEEDBITS(3); 532 | ll[zip_border[j]] = zip_GETBITS(3); 533 | zip_DUMPBITS(3); 534 | } 535 | for(; j < 19; j++) 536 | ll[zip_border[j]] = 0; 537 | 538 | // build decoding table for trees--single level, 7 bit lookup 539 | zip_bl = 7; 540 | h = new zip_HuftBuild(ll, 19, 19, null, null, zip_bl); 541 | if(h.status != 0) 542 | return -1; // incomplete code set 543 | 544 | zip_tl = h.root; 545 | zip_bl = h.m; 546 | 547 | // read in literal and distance code lengths 548 | n = nl + nd; 549 | i = l = 0; 550 | while(i < n) { 551 | zip_NEEDBITS(zip_bl); 552 | t = zip_tl.list[zip_GETBITS(zip_bl)]; 553 | j = t.b; 554 | zip_DUMPBITS(j); 555 | j = t.n; 556 | if(j < 16) // length of code in bits (0..15) 557 | ll[i++] = l = j; // save last length in l 558 | else if(j == 16) { // repeat last length 3 to 6 times 559 | zip_NEEDBITS(2); 560 | j = 3 + zip_GETBITS(2); 561 | zip_DUMPBITS(2); 562 | if(i + j > n) 563 | return -1; 564 | while(j-- > 0) 565 | ll[i++] = l; 566 | } else if(j == 17) { // 3 to 10 zero length codes 567 | zip_NEEDBITS(3); 568 | j = 3 + zip_GETBITS(3); 569 | zip_DUMPBITS(3); 570 | if(i + j > n) 571 | return -1; 572 | while(j-- > 0) 573 | ll[i++] = 0; 574 | l = 0; 575 | } else { // j == 18: 11 to 138 zero length codes 576 | zip_NEEDBITS(7); 577 | j = 11 + zip_GETBITS(7); 578 | zip_DUMPBITS(7); 579 | if(i + j > n) 580 | return -1; 581 | while(j-- > 0) 582 | ll[i++] = 0; 583 | l = 0; 584 | } 585 | } 586 | 587 | // build the decoding tables for literal/length and distance codes 588 | zip_bl = zip_lbits; 589 | h = new zip_HuftBuild(ll, nl, 257, zip_cplens, zip_cplext, zip_bl); 590 | if(zip_bl == 0) // no literals or lengths 591 | h.status = 1; 592 | if(h.status != 0) { 593 | if(h.status == 1) 594 | ;// **incomplete literal tree** 595 | return -1; // incomplete code set 596 | } 597 | zip_tl = h.root; 598 | zip_bl = h.m; 599 | 600 | for(i = 0; i < nd; i++) 601 | ll[i] = ll[i + nl]; 602 | zip_bd = zip_dbits; 603 | h = new zip_HuftBuild(ll, nd, 0, zip_cpdist, zip_cpdext, zip_bd); 604 | zip_td = h.root; 605 | zip_bd = h.m; 606 | 607 | if(zip_bd == 0 && nl > 257) { // lengths but no distances 608 | // **incomplete distance tree** 609 | return -1; 610 | } 611 | 612 | if(h.status == 1) { 613 | ;// **incomplete distance tree** 614 | } 615 | if(h.status != 0) 616 | return -1; 617 | 618 | // decompress until an end-of-block code 619 | return zip_inflate_codes(buff, off, size); 620 | }; 621 | 622 | var zip_inflate_start = function() { 623 | var i; 624 | 625 | if(zip_slide == null) 626 | zip_slide = new Array(2 * zip_WSIZE); 627 | zip_wp = 0; 628 | zip_bit_buf = 0; 629 | zip_bit_len = 0; 630 | zip_method = -1; 631 | zip_eof = false; 632 | zip_copy_leng = zip_copy_dist = 0; 633 | zip_tl = null; 634 | }; 635 | 636 | var zip_inflate_internal = function(buff, off, size) { 637 | // decompress an inflated entry 638 | var n, i; 639 | 640 | n = 0; 641 | while(n < size) { 642 | if(zip_eof && zip_method == -1) 643 | return n; 644 | 645 | if(zip_copy_leng > 0) { 646 | if(zip_method != zip_STORED_BLOCK) { 647 | // STATIC_TREES or DYN_TREES 648 | while(zip_copy_leng > 0 && n < size) { 649 | zip_copy_leng--; 650 | zip_copy_dist &= zip_WSIZE - 1; 651 | zip_wp &= zip_WSIZE - 1; 652 | buff[off + n++] = zip_slide[zip_wp++] = 653 | zip_slide[zip_copy_dist++]; 654 | } 655 | } else { 656 | while(zip_copy_leng > 0 && n < size) { 657 | zip_copy_leng--; 658 | zip_wp &= zip_WSIZE - 1; 659 | zip_NEEDBITS(8); 660 | buff[off + n++] = zip_slide[zip_wp++] = zip_GETBITS(8); 661 | zip_DUMPBITS(8); 662 | } 663 | if(zip_copy_leng == 0) 664 | zip_method = -1; // done 665 | } 666 | if(n == size) 667 | return n; 668 | } 669 | 670 | if(zip_method == -1) { 671 | if(zip_eof) 672 | break; 673 | 674 | // read in last block bit 675 | zip_NEEDBITS(1); 676 | if(zip_GETBITS(1) != 0) 677 | zip_eof = true; 678 | zip_DUMPBITS(1); 679 | 680 | // read in block type 681 | zip_NEEDBITS(2); 682 | zip_method = zip_GETBITS(2); 683 | zip_DUMPBITS(2); 684 | zip_tl = null; 685 | zip_copy_leng = 0; 686 | } 687 | 688 | switch(zip_method) { 689 | case 0: // zip_STORED_BLOCK 690 | i = zip_inflate_stored(buff, off + n, size - n); 691 | break; 692 | 693 | case 1: // zip_STATIC_TREES 694 | if(zip_tl != null) 695 | i = zip_inflate_codes(buff, off + n, size - n); 696 | else 697 | i = zip_inflate_fixed(buff, off + n, size - n); 698 | break; 699 | 700 | case 2: // zip_DYN_TREES 701 | if(zip_tl != null) 702 | i = zip_inflate_codes(buff, off + n, size - n); 703 | else 704 | i = zip_inflate_dynamic(buff, off + n, size - n); 705 | break; 706 | 707 | default: // error 708 | i = -1; 709 | break; 710 | } 711 | 712 | if(i == -1) { 713 | if(zip_eof) 714 | return 0; 715 | return -1; 716 | } 717 | n += i; 718 | } 719 | return n; 720 | }; 721 | 722 | var zip_inflate = function(str) { 723 | var i, j; 724 | 725 | zip_inflate_start(); 726 | zip_inflate_data = str; 727 | zip_inflate_pos = 0; 728 | 729 | var buff = new Array(1024); 730 | var aout = []; 731 | while((i = zip_inflate_internal(buff, 0, buff.length)) > 0) { 732 | var cbuf = new Array(i); 733 | for(j = 0; j < i; j++){ 734 | cbuf[j] = String.fromCharCode(buff[j]); 735 | } 736 | aout[aout.length] = cbuf.join(""); 737 | } 738 | zip_inflate_data = null; // G.C. 739 | return aout.join(""); 740 | }; -------------------------------------------------------------------------------- /utils/docid.py: -------------------------------------------------------------------------------- 1 | # coding:utf-8 2 | 3 | import re 4 | import zlib 5 | 6 | import execjs 7 | from Crypto.Cipher import AES 8 | 9 | 10 | def DecryptInner(pwd, key): 11 | mode = AES.MODE_CBC 12 | cipher = AES.new(key, mode, 'abcd134556abcedf'.encode('utf-8')) 13 | decrypted = cipher.decrypt(bytes.fromhex(pwd)) 14 | return decrypted.split(b'\x10')[0].decode() 15 | 16 | 17 | def Decrypt(str1, key): 18 | result = DecryptInner(str1, key) 19 | return DecryptInner(result, key) 20 | 21 | 22 | b64tab = {'0': 52, '1': 53, '2': 54, '3': 55, '4': 56, '5': 57, '6': 58, '7': 59, '8': 60, '9': 61, '+': 62, '/': 63, 23 | 'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5, 'G': 6, 'H': 7, 'I': 8, 'J': 9, 'K': 10, 'L': 11, 'M': 12, 24 | 'N': 13, 'O': 14, 'P': 15, 'Q': 16, 'R': 17, 'S': 18, 'T': 19, 'U': 20, 'V': 21, 'W': 22, 'X': 23, 'Y': 24, 25 | 'Z': 25, 'a': 26, 'b': 27, 'c': 28, 'd': 29, 'e': 30, 'f': 31, 'g': 32, 'h': 33, 'i': 34, 'j': 35, 'k': 36, 26 | 'l': 37, 'm': 38, 'n': 39, 'o': 40, 'p': 41, 'q': 42, 'r': 43, 's': 44, 't': 45, 'u': 46, 'v': 47, 'w': 48, 27 | 'x': 49, 'y': 50, 'z': 51} 28 | 29 | 30 | def fromBase64(str1): 31 | str1 = str1.replace('-', '+').replace('_', '/') 32 | str2 = re.sub('[^A-Za-z0-9\+\/]', '', str1) 33 | return _decode(str2) 34 | 35 | 36 | def _decode(a): 37 | return btou(Base64_atob(a)) 38 | 39 | 40 | def Base64_atob(a): 41 | return re.sub('[\s\S]{1,4}', cb_decode, a) 42 | 43 | 44 | def fromCharCode(n): 45 | return chr(n % 256) 46 | 47 | 48 | def cb_decode(cccc): 49 | cccc = cccc.group() 50 | l = len(cccc) 51 | padlen = l % 4 52 | n = (b64tab[cccc[0]] << 18 if l > 0 else 0) | (b64tab[cccc[1]] << 12 if l > 1 else 0) | ( 53 | b64tab[cccc[2]] << 6 if l > 2 else 0) | (b64tab[cccc[3]] if l > 3 else 0) 54 | # print n 55 | # chars = [ 56 | # fromCharCode(n >>> 16), 57 | # fromCharCode((n >>> 8) & 0xff), 58 | # fromCharCode(n & 0xff)] 59 | chars = [ 60 | fromCharCode(n >> 16), 61 | fromCharCode((n >> 8) & 0xff), 62 | fromCharCode(n & 0xff) 63 | ] 64 | p = len(chars) - [0, 0, 2, 1][padlen] 65 | chars = chars[0:p] 66 | return ''.join(chars) 67 | 68 | 69 | re_btou = '|'.join(['[\xC0-\xDF][\x80-\xBF]', '[\xE0-\xEF][\x80-\xBF]{2}', '[\xF0-\xF7][\x80-\xBF]{3}']) 70 | 71 | 72 | def cb_btou(cccc): 73 | cccc = cccc.group() 74 | if len(cccc) == 4: 75 | cp = ((0x07 & ord(cccc[0])) << 18) | ((0x3f & ord(cccc[1])) << 12) | ((0x3f & ord(cccc[2])) << 6) | ( 76 | 0x3f & ord(cccc[3])), 77 | offset = cp - 0x10000 78 | # print offsetoffset 79 | # return (fromCharCode((offset >>> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00)) 80 | return fromCharCode((offset >> 10) + 0xD800) + fromCharCode((offset & 0x3FF) + 0xDC00) 81 | elif len(cccc) == 3: 82 | return fromCharCode(((0x0f & ord(cccc[0])) << 12) | ((0x3f & ord(cccc[1])) << 6) | (0x3f & ord(cccc[2]))) 83 | else: 84 | return fromCharCode(((0x1f & ord(cccc[0])) << 6) | (0x3f & ord(cccc[1]))) 85 | 86 | 87 | def btou(b): 88 | return re.sub(re_btou, cb_btou, b) 89 | 90 | 91 | def get_js(data): 92 | with open('utils/docid.js', 'r') as f: 93 | js_data = f.read() 94 | eval_js = execjs.compile(js_data) 95 | data = eval_js.call('zip_inflate', data) 96 | return data 97 | 98 | 99 | def unzip(str1): 100 | return btou(get_js(fromBase64(str1))) 101 | 102 | 103 | def getkey(str1): 104 | js_str = unzip(str1).replace('_[_][_](', 'return ')[:-4] 105 | c = execjs.compile(js_str) 106 | return re.findall('KEY="(\w+)"', c.eval(''))[0] 107 | 108 | 109 | def decode_docid(docid, key): 110 | return Decrypt(unzip(docid), key).replace('\f', '') 111 | 112 | 113 | if __name__ == '__main__': 114 | RunEval = "w61Zw43CjsKCMBB+FsKMwoc2bHwBw6LDiUfDmMOjwqQhBlE5KMKbw4rCnsKMw68uIAHDpEdhwqHCpcKsX0LChsOQw458M8OzTVtKWR7Cg8Kdf8OxZMOwE8Ktwr8jGcKcD8Krwr0MT8Kbw6NWbsOCwp3Dj2zDiyYBYcK0w7gCCRDCnzFCw75DIh8yXcKxKsKhwrYQw6Adw4xCwqB6YAzDhUXDviAGJMKACcKkDjrDgAnCskbDgsOgCcOJwqFewqgABAbDgkTCgjvCjsK7XnjDocO5EsOJXy8Kw6XDgnHDiRXDscOFwph9wr0lasO5dcK9cXpYUizChMKwwpnClXZwesOGTDrDnsO3wqTCj8OLw6LDvzvCscKkOcOWICvDqSFBw7HCrcOiw7BZw53DigzDmsKdVcOibsOUfRlTGcKtwrk9d8KVRl3Cp8KoFkJjDi/CsMOzIMK7MVp6fBt2R8KNPmrCvXXDv2Yww4BqwqjDqSjDtsOjwoEYwovCpAJOGcOmTMKBNcKgw6tywpHDuWEdwpZicxPDk8OFwpPCvsK6wpfDnl8KHMKPwonDlMK+DcOQWsKTwrbCjcOAPFYAwoVLIMOrwrkvwpnDkSQxwr7CtsK6w6fCgMKiUhvCsWsbw4/Co8O+cAzCqwfCnE05DibDt8KdBVBdLTp9wo7Cm8OGUsODwod3LS/Dig5Swqg4w5jCqMK1wpYBacOAw5HCgRnCvCEUw4EZd8Ou" 115 | key = getkey(RunEval).encode('utf-8') 116 | # docid = "FcKPwrkRA0EIw4BaAsKWN8Okw63CvyTCn1Mpw5BIEFbDs8KIwpfCrQB4wpJYw57Diig4M8O6wpAdZ8KxI8KTFyXCuMOYwoo2RGjDnMKASX8wDsKvw7E9LcKKTMOTw5HCugbDtsK3FMKXI8ONVAPDkMOtXsOjw4Muw6rCscKPJMO1wrTCoMOmw58Xw6XDgMKxw57DmkXDocKWw7tSY0B8L8OBwpbDscOzw44qwrlrwqVhXS7Ct8Oww5rDrsKoOmEqwqA5ICRzw6HCm0LDvAE=" 117 | docid = "7Cu8Oxb1hzw6FJesOIwpnDqcK5w5ZlwqjDucOOwrMWw5DCscOAAh9kw4zCgRwecsKaf8OJw5jCi8O2w4d4Z0vChcOsF8KSw5LCp8OZAcKEfFVka8OgwoELNivDuwE=" 118 | print(decode_docid(docid, key)) 119 | assert decode_docid(docid, key) == '532bd8ed-4ba8-48b7-ad70-0063f64ede05' 120 | -------------------------------------------------------------------------------- /utils/getGuid.js: -------------------------------------------------------------------------------- 1 | var getGuid = function () { 2 | return createGuid() + createGuid() + "-" + createGuid() + "-" + createGuid() + createGuid() + "-" + createGuid() + createGuid() + createGuid(); //CreateGuid(); 3 | } 4 | var createGuid = function () { 5 | return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); 6 | } -------------------------------------------------------------------------------- /utils/getVl5x.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* 4 | * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined 5 | * in FIPS PUB 180-1 6 | * Version 2.1-BETA Copyright Paul Johnston 2000 - 2002. 7 | * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet 8 | * Distributed under the BSD License 9 | * See http://pajhome.org.uk/crypt/md5 for details. 10 | */ 11 | /* 12 | * Configurable variables. You may need to tweak these to be compatible with 13 | * the server-side, but the defaults work in most cases. 14 | */ 15 | var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ 16 | var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ 17 | var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ 18 | 19 | /* 20 | * These are the functions you'll usually want to call 21 | * They take string arguments and return either hex or base-64 encoded strings 22 | */ 23 | function hex_sha1(s) { 24 | return binb2hex(core_sha1(str2binb(s), s.length * chrsz)); 25 | } 26 | 27 | function b64_sha1(s) { 28 | return binb2b64(core_sha1(str2binb(s), s.length * chrsz)); 29 | } 30 | 31 | function str_sha1(s) { 32 | return binb2str(core_sha1(str2binb(s), s.length * chrsz)); 33 | } 34 | 35 | function hex_hmac_sha1(key, data) { 36 | return binb2hex(core_hmac_sha1(key, data)); 37 | } 38 | 39 | function b64_hmac_sha1(key, data) { 40 | return binb2b64(core_hmac_sha1(key, data)); 41 | } 42 | 43 | function str_hmac_sha1(key, data) { 44 | return binb2str(core_hmac_sha1(key, data)); 45 | } 46 | 47 | /* 48 | * Perform a simple self-test to see if the VM is working 49 | */ 50 | function sha1_vm_test() { 51 | return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d"; 52 | } 53 | 54 | /* 55 | * Calculate the SHA-1 of an array of big-endian words, and a bit length 56 | */ 57 | function core_sha1(x, len) { 58 | /* append padding */ 59 | x[len >> 5] |= 0x80 << (24 - len % 32); 60 | x[((len + 64 >> 9) << 4) + 15] = len; 61 | 62 | var w = Array(80); 63 | var a = 1732584193; 64 | var b = -271733879; 65 | var c = -1732584194; 66 | var d = 271733878; 67 | var e = -1009589776; 68 | 69 | for (var i = 0; i < x.length; i += 16) { 70 | var olda = a; 71 | var oldb = b; 72 | var oldc = c; 73 | var oldd = d; 74 | var olde = e; 75 | 76 | for (var j = 0; j < 80; j++) { 77 | if (j < 16) w[j] = x[i + j]; 78 | else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1); 79 | var t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)), safe_add(safe_add(e, w[j]), sha1_kt(j))); 80 | e = d; 81 | d = c; 82 | c = rol(b, 30); 83 | b = a; 84 | a = t; 85 | } 86 | 87 | a = safe_add(a, olda); 88 | b = safe_add(b, oldb); 89 | c = safe_add(c, oldc); 90 | d = safe_add(d, oldd); 91 | e = safe_add(e, olde); 92 | } 93 | return Array(a, b, c, d, e); 94 | 95 | } 96 | 97 | /* 98 | * Perform the appropriate triplet combination function for the current 99 | * iteration 100 | */ 101 | function sha1_ft(t, b, c, d) { 102 | if (t < 20) return (b & c) | ((~b) & d); 103 | if (t < 40) return b ^ c ^ d; 104 | if (t < 60) return (b & c) | (b & d) | (c & d); 105 | return b ^ c ^ d; 106 | } 107 | 108 | /* 109 | * Determine the appropriate additive constant for the current iteration 110 | */ 111 | function sha1_kt(t) { 112 | return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514; 113 | } 114 | 115 | /* 116 | * Calculate the HMAC-SHA1 of a key and some data 117 | */ 118 | function core_hmac_sha1(key, data) { 119 | var bkey = str2binb(key); 120 | if (bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz); 121 | 122 | var ipad = Array(16), 123 | opad = Array(16); 124 | for (var i = 0; i < 16; i++) { 125 | ipad[i] = bkey[i] ^ 0x36363636; 126 | opad[i] = bkey[i] ^ 0x5C5C5C5C; 127 | } 128 | 129 | var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz); 130 | return core_sha1(opad.concat(hash), 512 + 160); 131 | } 132 | 133 | /* 134 | * Add integers, wrapping at 2^32. This uses 16-bit operations internally 135 | * to work around bugs in some JS interpreters. 136 | */ 137 | function safe_add(x, y) { 138 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); 139 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 140 | return (msw << 16) | (lsw & 0xFFFF); 141 | } 142 | 143 | /* 144 | * Bitwise rotate a 32-bit number to the left. 145 | */ 146 | function rol(num, cnt) { 147 | return (num << cnt) | (num >>> (32 - cnt)); 148 | } 149 | 150 | /* 151 | * Convert an 8-bit or 16-bit string to an array of big-endian words 152 | * In 8-bit function, characters >255 have their hi-byte silently ignored. 153 | */ 154 | function str2binb(str) { 155 | var bin = Array(); 156 | var mask = (1 << chrsz) - 1; 157 | for (var i = 0; i < str.length * chrsz; i += chrsz) 158 | bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i % 32); 159 | return bin; 160 | } 161 | 162 | /* 163 | * Convert an array of big-endian words to a string 164 | */ 165 | function binb2str(bin) { 166 | var str = ""; 167 | var mask = (1 << chrsz) - 1; 168 | for (var i = 0; i < bin.length * 32; i += chrsz) 169 | str += String.fromCharCode((bin[i >> 5] >>> (24 - i % 32)) & mask); 170 | return str; 171 | } 172 | 173 | /* 174 | * Convert an array of big-endian words to a hex string. 175 | */ 176 | function binb2hex(binarray) { 177 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 178 | var str = ""; 179 | for (var i = 0; i < binarray.length * 4; i++) { 180 | str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF); 181 | } 182 | return str; 183 | } 184 | 185 | /* 186 | * Convert an array of big-endian words to a base-64 string 187 | */ 188 | function binb2b64(binarray) { 189 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 190 | var str = ""; 191 | for (var i = 0; i < binarray.length * 4; i += 3) { 192 | var triplet = (((binarray[i >> 2] >> 8 * (3 - i % 4)) & 0xFF) << 16) | (((binarray[i + 1 >> 2] >> 8 * (3 - (i + 1) % 4)) & 0xFF) << 8) | ((binarray[i + 2 >> 2] >> 8 * (3 - (i + 2) % 4)) & 0xFF); 193 | for (var j = 0; j < 4; j++) { 194 | if (i * 8 + j * 6 > binarray.length * 32) str += b64pad; 195 | else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F); 196 | } 197 | } 198 | return str; 199 | } 200 | /* 201 | * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message 202 | * Digest Algorithm, as defined in RFC 1321. 203 | * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. 204 | * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet 205 | * Distributed under the BSD License 206 | * See http://pajhome.org.uk/crypt/md5 for more info. 207 | */ 208 | 209 | /* 210 | * Configurable variables. You may need to tweak these to be compatible with 211 | * the server-side, but the defaults work in most cases. 212 | */ 213 | var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ 214 | var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ 215 | var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ 216 | 217 | /* 218 | * These are the functions you'll usually want to call 219 | * They take string arguments and return either hex or base-64 encoded strings 220 | */ 221 | function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));} 222 | function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));} 223 | function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));} 224 | function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); } 225 | function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); } 226 | function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); } 227 | 228 | /* 229 | * Perform a simple self-test to see if the VM is working 230 | */ 231 | function md5_vm_test() 232 | { 233 | return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72"; 234 | } 235 | 236 | /* 237 | * Calculate the MD5 of an array of little-endian words, and a bit length 238 | */ 239 | function core_md5(x, len) 240 | { 241 | /* append padding */ 242 | x[len >> 5] |= 0x80 << ((len) % 32); 243 | x[(((len + 64) >>> 9) << 4) + 14] = len; 244 | 245 | var a = 1732584193; 246 | var b = -271733879; 247 | var c = -1732584194; 248 | var d = 271733878; 249 | 250 | for(var i = 0; i < x.length; i += 16) 251 | { 252 | var olda = a; 253 | var oldb = b; 254 | var oldc = c; 255 | var oldd = d; 256 | 257 | a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936); 258 | d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586); 259 | c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819); 260 | b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330); 261 | a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897); 262 | d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426); 263 | c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341); 264 | b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983); 265 | a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416); 266 | d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417); 267 | c = md5_ff(c, d, a, b, x[i+10], 17, -42063); 268 | b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162); 269 | a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682); 270 | d = md5_ff(d, a, b, c, x[i+13], 12, -40341101); 271 | c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290); 272 | b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329); 273 | 274 | a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510); 275 | d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632); 276 | c = md5_gg(c, d, a, b, x[i+11], 14, 643717713); 277 | b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302); 278 | a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691); 279 | d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083); 280 | c = md5_gg(c, d, a, b, x[i+15], 14, -660478335); 281 | b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848); 282 | a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438); 283 | d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690); 284 | c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961); 285 | b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501); 286 | a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467); 287 | d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784); 288 | c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473); 289 | b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734); 290 | 291 | a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558); 292 | d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463); 293 | c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562); 294 | b = md5_hh(b, c, d, a, x[i+14], 23, -35309556); 295 | a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060); 296 | d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353); 297 | c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632); 298 | b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640); 299 | a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174); 300 | d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222); 301 | c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979); 302 | b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189); 303 | a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487); 304 | d = md5_hh(d, a, b, c, x[i+12], 11, -421815835); 305 | c = md5_hh(c, d, a, b, x[i+15], 16, 530742520); 306 | b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651); 307 | 308 | a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844); 309 | d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415); 310 | c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905); 311 | b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055); 312 | a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571); 313 | d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606); 314 | c = md5_ii(c, d, a, b, x[i+10], 15, -1051523); 315 | b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799); 316 | a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359); 317 | d = md5_ii(d, a, b, c, x[i+15], 10, -30611744); 318 | c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380); 319 | b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649); 320 | a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070); 321 | d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379); 322 | c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259); 323 | b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551); 324 | 325 | a = safe_add(a, olda); 326 | b = safe_add(b, oldb); 327 | c = safe_add(c, oldc); 328 | d = safe_add(d, oldd); 329 | } 330 | return Array(a, b, c, d); 331 | 332 | } 333 | 334 | /* 335 | * These functions implement the four basic operations the algorithm uses. 336 | */ 337 | function md5_cmn(q, a, b, x, s, t) 338 | { 339 | return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b); 340 | } 341 | function md5_ff(a, b, c, d, x, s, t) 342 | { 343 | return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t); 344 | } 345 | function md5_gg(a, b, c, d, x, s, t) 346 | { 347 | return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t); 348 | } 349 | function md5_hh(a, b, c, d, x, s, t) 350 | { 351 | return md5_cmn(b ^ c ^ d, a, b, x, s, t); 352 | } 353 | function md5_ii(a, b, c, d, x, s, t) 354 | { 355 | return md5_cmn(c ^ (b | (~d)), a, b, x, s, t); 356 | } 357 | 358 | /* 359 | * Calculate the HMAC-MD5, of a key and some data 360 | */ 361 | function core_hmac_md5(key, data) 362 | { 363 | var bkey = str2binl(key); 364 | if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz); 365 | 366 | var ipad = Array(16), opad = Array(16); 367 | for(var i = 0; i < 16; i++) 368 | { 369 | ipad[i] = bkey[i] ^ 0x36363636; 370 | opad[i] = bkey[i] ^ 0x5C5C5C5C; 371 | } 372 | 373 | var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz); 374 | return core_md5(opad.concat(hash), 512 + 128); 375 | } 376 | 377 | /* 378 | * Add integers, wrapping at 2^32. This uses 16-bit operations internally 379 | * to work around bugs in some JS interpreters. 380 | */ 381 | function safe_add(x, y) 382 | { 383 | var lsw = (x & 0xFFFF) + (y & 0xFFFF); 384 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16); 385 | return (msw << 16) | (lsw & 0xFFFF); 386 | } 387 | 388 | /* 389 | * Bitwise rotate a 32-bit number to the left. 390 | */ 391 | function bit_rol(num, cnt) 392 | { 393 | return (num << cnt) | (num >>> (32 - cnt)); 394 | } 395 | 396 | /* 397 | * Convert a string to an array of little-endian words 398 | * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. 399 | */ 400 | function str2binl(str) 401 | { 402 | var bin = Array(); 403 | var mask = (1 << chrsz) - 1; 404 | for(var i = 0; i < str.length * chrsz; i += chrsz) 405 | bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); 406 | return bin; 407 | } 408 | 409 | /* 410 | * Convert an array of little-endian words to a string 411 | */ 412 | function binl2str(bin) 413 | { 414 | var str = ""; 415 | var mask = (1 << chrsz) - 1; 416 | for(var i = 0; i < bin.length * 32; i += chrsz) 417 | str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); 418 | return str; 419 | } 420 | 421 | /* 422 | * Convert an array of little-endian words to a hex string. 423 | */ 424 | function binl2hex(binarray) 425 | { 426 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; 427 | var str = ""; 428 | for(var i = 0; i < binarray.length * 4; i++) 429 | { 430 | str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + 431 | hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); 432 | } 433 | return str; 434 | } 435 | 436 | /* 437 | * Convert an array of little-endian words to a base-64 string 438 | */ 439 | function binl2b64(binarray) 440 | { 441 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 442 | var str = ""; 443 | for(var i = 0; i < binarray.length * 4; i += 3) 444 | { 445 | var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) 446 | | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) 447 | | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); 448 | for(var j = 0; j < 4; j++) 449 | { 450 | if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; 451 | else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); 452 | } 453 | } 454 | return str; 455 | } 456 | 457 | 458 | 459 | function Base64() { 460 | 461 | // private property 462 | _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 463 | 464 | // public method for encoding 465 | this.encode = function (input) { 466 | var output = ""; 467 | var chr1, chr2, chr3, enc1, enc2, enc3, enc4; 468 | var i = 0; 469 | input = _utf8_encode(input); 470 | while (i < input.length) { 471 | chr1 = input.charCodeAt(i++); 472 | chr2 = input.charCodeAt(i++); 473 | chr3 = input.charCodeAt(i++); 474 | enc1 = chr1 >> 2; 475 | enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); 476 | enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); 477 | enc4 = chr3 & 63; 478 | if (isNaN(chr2)) { 479 | enc3 = enc4 = 64; 480 | } else if (isNaN(chr3)) { 481 | enc4 = 64; 482 | } 483 | output = output + 484 | _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + 485 | _keyStr.charAt(enc3) + _keyStr.charAt(enc4); 486 | } 487 | return output; 488 | } 489 | 490 | // public method for decoding 491 | this.decode = function (input) { 492 | var output = ""; 493 | var chr1, chr2, chr3; 494 | var enc1, enc2, enc3, enc4; 495 | var i = 0; 496 | input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); 497 | while (i < input.length) { 498 | enc1 = _keyStr.indexOf(input.charAt(i++)); 499 | enc2 = _keyStr.indexOf(input.charAt(i++)); 500 | enc3 = _keyStr.indexOf(input.charAt(i++)); 501 | enc4 = _keyStr.indexOf(input.charAt(i++)); 502 | chr1 = (enc1 << 2) | (enc2 >> 4); 503 | chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); 504 | chr3 = ((enc3 & 3) << 6) | enc4; 505 | output = output + String.fromCharCode(chr1); 506 | if (enc3 != 64) { 507 | output = output + String.fromCharCode(chr2); 508 | } 509 | if (enc4 != 64) { 510 | output = output + String.fromCharCode(chr3); 511 | } 512 | } 513 | output = _utf8_decode(output); 514 | return output; 515 | } 516 | 517 | // private method for UTF-8 encoding 518 | _utf8_encode = function (string) { 519 | string = string.replace(/\r\n/g,"\n"); 520 | var utftext = ""; 521 | for (var n = 0; n < string.length; n++) { 522 | var c = string.charCodeAt(n); 523 | if (c < 128) { 524 | utftext += String.fromCharCode(c); 525 | } else if((c > 127) && (c < 2048)) { 526 | utftext += String.fromCharCode((c >> 6) | 192); 527 | utftext += String.fromCharCode((c & 63) | 128); 528 | } else { 529 | utftext += String.fromCharCode((c >> 12) | 224); 530 | utftext += String.fromCharCode(((c >> 6) & 63) | 128); 531 | utftext += String.fromCharCode((c & 63) | 128); 532 | } 533 | 534 | } 535 | return utftext; 536 | } 537 | 538 | // private method for UTF-8 decoding 539 | _utf8_decode = function (utftext) { 540 | var string = ""; 541 | var i = 0; 542 | var c = c1 = c2 = 0; 543 | while ( i < utftext.length ) { 544 | c = utftext.charCodeAt(i); 545 | if (c < 128) { 546 | string += String.fromCharCode(c); 547 | i++; 548 | } else if((c > 191) && (c < 224)) { 549 | c2 = utftext.charCodeAt(i+1); 550 | string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); 551 | i += 2; 552 | } else { 553 | c2 = utftext.charCodeAt(i+1); 554 | c3 = utftext.charCodeAt(i+2); 555 | string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); 556 | i += 3; 557 | } 558 | } 559 | return string; 560 | } 561 | } 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | var _fxxx = function(p, a, c, k, e, d) { 585 | e = function(c) { 586 | return (c < a ? "" : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) 587 | } 588 | ; 589 | if (!"".replace(/^/, String)) { 590 | while (c--) { 591 | d[e(c)] = k[c] || e(c) 592 | } 593 | k = [function(e) { 594 | return d[e] 595 | } 596 | ]; 597 | e = function() { 598 | return "\\w+" 599 | } 600 | ; 601 | c = 1 602 | } 603 | while (c--) { 604 | if (k[c]) { 605 | p = p.replace(new RegExp("\\b" + e(c) + "\\b","g"), k[c]) 606 | } 607 | } 608 | return p 609 | }; 610 | function de(str, count, strReplace) { 611 | var arrReplace = strReplace.split("|"); 612 | for (var i = 0; i < count; i++) { 613 | str = str.replace(new RegExp("\\{" + i + "\\}","g"), arrReplace[i]) 614 | } 615 | return str 616 | } 617 | 618 | function getVl5x(cookie) { 619 | 620 | function strToLong(str) { 621 | var long = 0; 622 | for (var i = 0; i < str.length; i++) { 623 | long += (str.charCodeAt(i) << (i % 16)) 624 | } 625 | return long 626 | } 627 | 628 | function strToLongEn(str) { 629 | var long = 0; 630 | for (var i = 0; i < str.length; i++) { 631 | long += (str.charCodeAt(i) << (i % 16)) + i 632 | } 633 | return long 634 | } 635 | 636 | function strToLongEn2(str, step) { 637 | var long = 0; 638 | for (var i = 0; i < str.length; i++) { 639 | long += (str.charCodeAt(i) << (i % 16)) + (i * step) 640 | } 641 | return long 642 | } 643 | 644 | function strToLongEn3(str, step) { 645 | var long = 0; 646 | for (var i = 0; i < str.length; i++) { 647 | long += (str.charCodeAt(i) << (i % 16)) + (i + step - str.charCodeAt(i)) 648 | } 649 | return long 650 | } 651 | 652 | function makeKey_0(str) { 653 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3); 654 | var a = str.substr(5) + str.substr(-4); 655 | var b = str.substr(4) + a.substr(-6); 656 | return hex_md5(str).substr(4, 24) 657 | } 658 | 659 | function makeKey_1(str) { 660 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3); 661 | var a = str.substr(5) + str.substr(4); 662 | var b = str.substr(12) + a.substr(-6); 663 | var c = str.substr(4) + a.substr(6); 664 | return hex_md5(c).substr(4, 24) 665 | } 666 | 667 | function makeKey_2(str) { 668 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 669 | var a = strToLong(str.substr(5)) + str.substr(4); 670 | var b = strToLong(str.substr(5)) + str.substr(4); 671 | var c = str.substr(4) + b.substr(5); 672 | return hex_md5(c).substr(1, 24) 673 | } 674 | 675 | function makeKey_3(str) { 676 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 677 | var a = strToLongEn(str.substr(5)) + str.substr(4); 678 | var b = str.substr(4) + a.substr(5); 679 | var c = strToLong(str.substr(5)) + str.substr(4); 680 | return hex_md5(b).substr(3, 24) 681 | } 682 | 683 | function makeKey_4(str) { 684 | var str = str.substr(5, 5 * 5) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 685 | var long = 0; 686 | for (var i = 0; i < str.substr(1).length; i++) { 687 | long += (str.charCodeAt(i) << (i % 16)) 688 | } 689 | var aa = long + str.substr(4); 690 | var long = 0; 691 | var a = str.substr(5); 692 | for (var i = 0; i < a.length; i++) { 693 | long += (a.charCodeAt(i) << (i % 16)) + i 694 | } 695 | a = long + "" + str.substr(4); 696 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5)); 697 | return hex_md5(b).substr(3, 24) 698 | } 699 | 700 | function makeKey_5(str) { 701 | var base = new Base64(); 702 | var str = base.encode(str.substr(5, 5 * 5) + str.substr(1, 2) + "1") + str.substr((5 + 1) * (5 + 1), 3); 703 | var a = strToLongEn(str.substr(4, 10)) + str.substr(-4); 704 | var b = hex_md5(str.substr(4)) + a.substr(2); 705 | var a = str.substr(3); 706 | var c = strToLong(str.substr(5)) + str.substr(4); 707 | var aa = long + str.substr(4); 708 | var long = 0; 709 | for (var i = 0; i < a.length; i++) { 710 | long += (a.charCodeAt(i) << (i % 12)) + i 711 | } 712 | a = long + "" + str.substr(4); 713 | return hex_md5(str).substr(4, 24) 714 | } 715 | 716 | 717 | function makeKey_6(str) { 718 | var base = new Base64(); 719 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3); 720 | var a = base.encode(str.substr(4, 10)) + str.substr(2); 721 | var b = str.substr(6) + a.substr(2); 722 | var c = strToLong(str.substr(5)) + str.substr(4); 723 | var aa = long + str.substr(4); 724 | var long = 0; 725 | var a = str.substr(5); 726 | for (var i = 0; i < a.length; i++) { 727 | long += (a.charCodeAt(i) << (i % 16)) + i 728 | } 729 | a = long + "" + str.substr(4); 730 | return hex_md5(b).substr(2, 24) 731 | } 732 | 733 | function makeKey_7(str) { 734 | var base = new Base64(); 735 | var str = base.encode(str.substr(5, 5 * 4) + "55" + str.substr(1, 2)) + str.substr((5 + 1) * (5 + 1), 3); 736 | var long = 0; 737 | for (var i = 0; i < str.substr(1).length; i++) { 738 | long += (str.charCodeAt(i) << (i % 16 + 5)) + 3 + 5 739 | } 740 | var aa = long + str.substr(4); 741 | var long = 0; 742 | var a = str.substr(5); 743 | for (var i = 0; i < a.length; i++) { 744 | long += (a.charCodeAt(i) << (i % 16)) 745 | } 746 | a = long + "" + str.substr(4); 747 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5)); 748 | return hex_md5(b).substr(3, 24) 749 | } 750 | 751 | function makeKey_8(str) { 752 | var base = new Base64(); 753 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5" + "-" + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 754 | var long = 0; 755 | for (var i = 0; i < str.substr(1).length; i++) { 756 | long += (str.charCodeAt(i) << (i % 16)) 757 | } 758 | var aa = long + str.substr(4); 759 | var long = 0; 760 | var a = str.substr(5); 761 | for (var i = 0; i < a.length; i++) { 762 | long += (a.charCodeAt(i) << (i % 16)) 763 | } 764 | a = long + "" + str.substr(4); 765 | var b = hex_md5(str.substr(1)) + strToLongEn(a.substr(5)); 766 | return hex_md5(b).substr(4, 24) 767 | } 768 | 769 | function makeKey_9(str) { 770 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3); 771 | var a = str.substr(5) + str.substr(4); 772 | var b = str.substr(12) + a.substr(-6); 773 | var c = hex_sha1(str.substr(4)) + a.substr(6); 774 | return hex_md5(c).substr(4, 24) 775 | } 776 | 777 | function makeKey_10(str) { 778 | var base = new Base64(); 779 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 780 | var long = 0; 781 | for (var i = 0; i < str.substr(1).length; i++) { 782 | long += (str.charCodeAt(i) << (i % 16)) 783 | } 784 | var aa = long + str.substr(4); 785 | var long = 0; 786 | var a = str.substr(5); 787 | for (var i = 0; i < a.length; i++) { 788 | long += (a.charCodeAt(i) << (i % 16)) 789 | } 790 | a = long + "" + str.substr(4); 791 | var b = hex_md5(str.substr(1)) + hex_sha1(a.substr(5)); 792 | return hex_md5(b).substr(4, 24) 793 | } 794 | 795 | function makeKey_11(str) { 796 | var base = new Base64(); 797 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3); 798 | var long = 0; 799 | for (var i = 0; i < str.substr(1).length; i++) { 800 | long += (str.charCodeAt(i) << (i % 16)) 801 | } 802 | var aa = long + str.substr(4); 803 | var long = 0; 804 | var a = str.substr(5); 805 | for (var i = 0; i < a.length; i++) { 806 | long += (a.charCodeAt(i) << (i % 16)) 807 | } 808 | a = long + "" + str.substr(2); 809 | var b = str.substr(1) + hex_sha1(a.substr(5)); 810 | return hex_md5(b).substr(2, 24) 811 | } 812 | 813 | function makeKey_12(str) { 814 | var base = new Base64(); 815 | var str = str.substr(5, 5 * 5 - 1) + str.substr((5 + 1) * (5 + 1), 3) + "2" + str.substr(1, 2); 816 | var long = 0; 817 | for (var i = 0; i < str.substr(1).length; i++) { 818 | long += (str.charCodeAt(i) << (i % 16)) 819 | } 820 | var aa = long + str.substr(4); 821 | var long = 0; 822 | var a = str.substr(5); 823 | for (var i = 0; i < a.length; i++) { 824 | long += (a.charCodeAt(i) << (i % 16)) 825 | } 826 | a = long + "" + str.substr(2); 827 | var b = str.substr(1) + hex_sha1(str.substr(5)); 828 | return hex_md5(b).substr(1, 24) 829 | } 830 | 831 | function makeKey_13(str) { 832 | var base = new Base64(); 833 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 834 | var long = 0; 835 | for (var i = 0; i < str.substr(1).length; i++) { 836 | long += (str.charCodeAt(i) << (i % 16)) 837 | } 838 | var aa = long + str.substr(4); 839 | var long = 0; 840 | var a = str.substr(5); 841 | for (var i = 0; i < a.length; i++) { 842 | long += (a.charCodeAt(i) << (i % 16)) 843 | } 844 | a = long + "" + str.substr(2); 845 | var b = base.encode(str.substr(1) + hex_sha1(str.substr(5))); 846 | return hex_md5(b).substr(1, 24) 847 | } 848 | 849 | function makeKey_14(str) { 850 | var base = new Base64(); 851 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 852 | var long = 0; 853 | for (var i = 0; i < str.substr(1).length; i++) { 854 | long += (str.charCodeAt(i) << (i % 16)) 855 | } 856 | var aa = long + str.substr(4); 857 | var long = 0; 858 | var a = str.substr(5); 859 | for (var i = 0; i < a.length; i++) { 860 | long += (a.charCodeAt(i) << (i % 16)) 861 | } 862 | a = long + "" + str.substr(2); 863 | var b = base.encode(str.substr(1) + str.substr(5) + str.substr(1, 3)); 864 | return hex_sha1(b).substr(1, 24) 865 | } 866 | 867 | function makeKey_15(str) { 868 | var base = new Base64(); 869 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2); 870 | var long = 0; 871 | for (var i = 0; i < str.substr(1).length; i++) { 872 | long += (str.charCodeAt(i) << (i % 16)) 873 | } 874 | var aa = long + str.substr(4); 875 | var long = 0; 876 | var a = str.substr(5); 877 | for (var i = 0; i < a.length; i++) { 878 | long += (a.charCodeAt(i) << (i % 16)) 879 | } 880 | a = long + "" + str.substr(2); 881 | var b = base.encode(a.substr(1) + str.substr(5) + str.substr(2, 3)); 882 | return hex_sha1(b).substr(1, 24) 883 | } 884 | 885 | function makeKey_16(str) { 886 | var base = new Base64(); 887 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + "-" + "5"; 888 | var long = 0; 889 | for (var i = 0; i < str.substr(1).length; i++) { 890 | long += (str.charCodeAt(i) << (i % 11)) 891 | } 892 | var aa = long + str.substr(4); 893 | var long = 0; 894 | var a = str.substr(5); 895 | for (var i = 0; i < a.length; i++) { 896 | long += (a.charCodeAt(i) << (i % 16)) + i 897 | } 898 | a = long + "" + str.substr(2); 899 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5) + str.substr(2, 3); 900 | return hex_md5(b).substr(2, 24) 901 | } 902 | 903 | function makeKey_17(str) { 904 | var base = new Base64(); 905 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "-" + "5"; 906 | var long = 0; 907 | for (var i = 0; i < str.substr(1).length; i++) { 908 | long += (str.charCodeAt(i) << (i % 11)) 909 | } 910 | var aa = long + str.substr(4); 911 | var long = 0; 912 | var a = str.substr(5); 913 | for (var i = 0; i < a.length; i++) { 914 | long += (a.charCodeAt(i) << (i % 16)) + i 915 | } 916 | a = long + "" + str.substr(2); 917 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3); 918 | return hex_md5(b).substr(0, 24) 919 | } 920 | 921 | function makeKey_18(str) { 922 | var base = new Base64(); 923 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "5" + str.substr(2 + 5, 3); 924 | var long = 0; 925 | for (var i = 0; i < str.substr(1).length; i++) { 926 | long += (str.charCodeAt(i) << (i % 11)) 927 | } 928 | var aa = long + str.substr(4); 929 | var long = 0; 930 | var a = str.substr(5); 931 | for (var i = 0; i < a.length; i++) { 932 | long += (a.charCodeAt(i) << (i % 16)) + i 933 | } 934 | a = long + "" + str.substr(2); 935 | var b = a.substr(1) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3); 936 | return hex_md5(b).substr(0, 24) 937 | } 938 | 939 | function makeKey_19(str) { 940 | var base = new Base64(); 941 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(5, 2) + "5" + str.substr(2 + 5, 3); 942 | var long = 0; 943 | for (var i = 0; i < str.substr(1).length; i++) { 944 | long += (str.charCodeAt(i) << (i % 11)) 945 | } 946 | var aa = long + str.substr(4); 947 | var long = 0; 948 | var a = str.substr(5); 949 | for (var i = 0; i < a.length; i++) { 950 | long += (a.charCodeAt(i) << (i % 16)) + i 951 | } 952 | a = long + "" + str.substr(2); 953 | var b = a.substr(1) + strToLongEn3(str.substr(5), 5 - 1) + str.substr(2 + 5, 3); 954 | return hex_md5(b).substr(0, 24) 955 | } 956 | 957 | function makeKey_20(str) { 958 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 959 | } 960 | 961 | 962 | function makeKey_21(str) { 963 | return hex_md5(makeKey_11(str) + makeKey_3(str)).substr(2, 24) 964 | } 965 | 966 | function makeKey_22(str) { 967 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 968 | } 969 | 970 | function makeKey_23(str) { 971 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 972 | } 973 | 974 | function makeKey_24(str) { 975 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(1, 24) 976 | } 977 | 978 | function makeKey_25(str) { 979 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(2, 24) 980 | } 981 | 982 | function makeKey_26(str) { 983 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(3, 24) 984 | } 985 | 986 | function makeKey_27(str) { 987 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(4, 24) 988 | } 989 | 990 | function makeKey_28(str) { 991 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(1, 24) 992 | } 993 | 994 | function makeKey_29(str) { 995 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(2, 24) 996 | } 997 | 998 | function makeKey_30(str) { 999 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(3, 24) 1000 | } 1001 | 1002 | function makeKey_31(str) { 1003 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(4, 24) 1004 | } 1005 | 1006 | function makeKey_32(str) { 1007 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24) 1008 | } 1009 | 1010 | function makeKey_33(str) { 1011 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(4, 24) 1012 | } 1013 | 1014 | function makeKey_34(str) { 1015 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24) 1016 | } 1017 | 1018 | function makeKey_35(str) { 1019 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24) 1020 | } 1021 | 1022 | function makeKey_36(str) { 1023 | return hex_md5(makeKey_8(str) + makeKey_10(str)).substr(3, 24) 1024 | } 1025 | 1026 | function makeKey_37(str) { 1027 | return hex_md5(makeKey_6(str) + makeKey_17(str)).substr(1, 24) 1028 | } 1029 | 1030 | function makeKey_38(str) { 1031 | return hex_md5(makeKey_12(str) + makeKey_18(str)).substr(2, 24) 1032 | } 1033 | 1034 | function makeKey_39(str) { 1035 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 1036 | } 1037 | 1038 | function makeKey_40(str) { 1039 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 1040 | } 1041 | 1042 | function makeKey_41(str) { 1043 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 1044 | } 1045 | 1046 | function makeKey_42(str) { 1047 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 1048 | } 1049 | 1050 | function makeKey_43(str) { 1051 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 1052 | } 1053 | 1054 | function makeKey_44(str) { 1055 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24) 1056 | } 1057 | 1058 | function makeKey_45(str) { 1059 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24) 1060 | } 1061 | 1062 | function makeKey_46(str) { 1063 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(4, 24) 1064 | } 1065 | 1066 | function makeKey_47(str) { 1067 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(1, 24) 1068 | } 1069 | 1070 | function makeKey_48(str) { 1071 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(2, 24) 1072 | } 1073 | 1074 | function makeKey_49(str) { 1075 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24) 1076 | } 1077 | 1078 | function makeKey_50(str) { 1079 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24) 1080 | } 1081 | 1082 | function makeKey_51(str) { 1083 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24) 1084 | } 1085 | 1086 | function makeKey_52(str) { 1087 | return hex_md5(makeKey_7(str) + makeKey_14(str)).substr(2, 24) 1088 | } 1089 | 1090 | function makeKey_53(str) { 1091 | return hex_md5(makeKey_12(str) + makeKey_15(str)).substr(3, 24) 1092 | } 1093 | 1094 | function makeKey_54(str) { 1095 | return hex_md5(makeKey_14(str) + makeKey_16(str)).substr(4, 24) 1096 | } 1097 | 1098 | function makeKey_55(str) { 1099 | return hex_md5(makeKey_15(str) + makeKey_9(str)).substr(3, 24) 1100 | } 1101 | 1102 | function makeKey_56(str) { 1103 | return hex_md5(makeKey_16(str) + makeKey_10(str)).substr(4, 24) 1104 | } 1105 | 1106 | function makeKey_57(str) { 1107 | return hex_md5(makeKey_9(str) + makeKey_17(str)).substr(1, 24) 1108 | } 1109 | 1110 | function makeKey_58(str) { 1111 | return hex_md5(makeKey_10(str) + makeKey_18(str)).substr(2, 24) 1112 | } 1113 | 1114 | function makeKey_59(str) { 1115 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(3, 24) 1116 | } 1117 | 1118 | function makeKey_60(str) { 1119 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(1, 24) 1120 | } 1121 | 1122 | function makeKey_61(str) { 1123 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(2, 24) 1124 | } 1125 | 1126 | function makeKey_62(str) { 1127 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24) 1128 | } 1129 | 1130 | function makeKey_63(str) { 1131 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(4, 24) 1132 | } 1133 | 1134 | function makeKey_64(str) { 1135 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24) 1136 | } 1137 | 1138 | function makeKey_65(str) { 1139 | return hex_md5(makeKey_14(str) + makeKey_1(str)).substr(1, 24) 1140 | } 1141 | 1142 | function makeKey_66(str) { 1143 | return hex_md5(makeKey_15(str) + makeKey_4(str)).substr(2, 24) 1144 | } 1145 | 1146 | function makeKey_67(str) { 1147 | return hex_md5(makeKey_16(str) + makeKey_5(str)).substr(3, 24) 1148 | } 1149 | 1150 | function makeKey_68(str) { 1151 | return hex_md5(makeKey_9(str) + makeKey_3(str)).substr(4, 24) 1152 | } 1153 | 1154 | function makeKey_69(str) { 1155 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(1, 24) 1156 | } 1157 | 1158 | function makeKey_70(str) { 1159 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24) 1160 | } 1161 | 1162 | function makeKey_71(str) { 1163 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24) 1164 | } 1165 | 1166 | function makeKey_72(str) { 1167 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24) 1168 | } 1169 | 1170 | function makeKey_73(str) { 1171 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(1, 24) 1172 | } 1173 | 1174 | function makeKey_74(str) { 1175 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(2, 24) 1176 | } 1177 | 1178 | function makeKey_75(str) { 1179 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24) 1180 | } 1181 | 1182 | function makeKey_76(str) { 1183 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24) 1184 | } 1185 | 1186 | function makeKey_77(str) { 1187 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 1188 | } 1189 | 1190 | function makeKey_78(str) { 1191 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 1192 | } 1193 | 1194 | function makeKey_79(str) { 1195 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(1, 24) 1196 | } 1197 | 1198 | function makeKey_80(str) { 1199 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(2, 24) 1200 | } 1201 | 1202 | function makeKey_81(str) { 1203 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24) 1204 | } 1205 | 1206 | function makeKey_82(str) { 1207 | return hex_md5(makeKey_14(str) + makeKey_18(str)).substr(1, 24) 1208 | } 1209 | 1210 | function makeKey_83(str) { 1211 | return hex_md5(makeKey_15(str) + makeKey_19(str)).substr(4, 24) 1212 | } 1213 | 1214 | function makeKey_84(str) { 1215 | return hex_md5(makeKey_16(str) + makeKey_0(str)).substr(1, 24) 1216 | } 1217 | 1218 | function makeKey_85(str) { 1219 | return hex_md5(makeKey_9(str) + makeKey_1(str)).substr(2, 24) 1220 | } 1221 | 1222 | function makeKey_86(str) { 1223 | return hex_md5(makeKey_10(str) + makeKey_4(str)).substr(3, 24) 1224 | } 1225 | 1226 | function makeKey_87(str) { 1227 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(4, 24) 1228 | } 1229 | 1230 | function makeKey_88(str) { 1231 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(1, 24) 1232 | } 1233 | 1234 | function makeKey_89(str) { 1235 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(2, 24) 1236 | } 1237 | 1238 | function makeKey_90(str) { 1239 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(3, 24) 1240 | } 1241 | 1242 | function makeKey_91(str) { 1243 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(4, 24) 1244 | } 1245 | 1246 | function makeKey_92(str) { 1247 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 1248 | } 1249 | 1250 | function makeKey_93(str) { 1251 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1252 | } 1253 | 1254 | function makeKey_94(str) { 1255 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24) 1256 | } 1257 | 1258 | function makeKey_95(str) { 1259 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24) 1260 | } 1261 | 1262 | function makeKey_96(str) { 1263 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24) 1264 | } 1265 | 1266 | function makeKey_97(str) { 1267 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 1268 | } 1269 | 1270 | function makeKey_98(str) { 1271 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(3, 24) 1272 | } 1273 | 1274 | function makeKey_99(str) { 1275 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(4, 24) 1276 | } 1277 | 1278 | function makeKey_100(str) { 1279 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(1, 24) 1280 | } 1281 | 1282 | function makeKey_101(str) { 1283 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(2, 24) 1284 | } 1285 | 1286 | function makeKey_102(str) { 1287 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24) 1288 | } 1289 | 1290 | function makeKey_103(str) { 1291 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 1292 | } 1293 | 1294 | function makeKey_104(str) { 1295 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 1296 | } 1297 | 1298 | function makeKey_105(str) { 1299 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 1300 | } 1301 | 1302 | function makeKey_106(str) { 1303 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 1304 | } 1305 | 1306 | function makeKey_107(str) { 1307 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24) 1308 | } 1309 | 1310 | function makeKey_108(str) { 1311 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24) 1312 | } 1313 | 1314 | function makeKey_109(str) { 1315 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(4, 24) 1316 | } 1317 | 1318 | function makeKey_110(str) { 1319 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(1, 24) 1320 | } 1321 | 1322 | function makeKey_111(str) { 1323 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(2, 24) 1324 | } 1325 | 1326 | function makeKey_112(str) { 1327 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 1328 | } 1329 | 1330 | function makeKey_113(str) { 1331 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 1332 | } 1333 | 1334 | function makeKey_114(str) { 1335 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24) 1336 | } 1337 | 1338 | function makeKey_115(str) { 1339 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 1340 | } 1341 | 1342 | function makeKey_116(str) { 1343 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 1344 | } 1345 | 1346 | function makeKey_117(str) { 1347 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24) 1348 | } 1349 | 1350 | function makeKey_118(str) { 1351 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24) 1352 | } 1353 | 1354 | function makeKey_119(str) { 1355 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24) 1356 | } 1357 | 1358 | function makeKey_120(str) { 1359 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(1, 24) 1360 | } 1361 | 1362 | function makeKey_121(str) { 1363 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(2, 24) 1364 | } 1365 | 1366 | function makeKey_122(str) { 1367 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 1368 | } 1369 | 1370 | function makeKey_123(str) { 1371 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24) 1372 | } 1373 | 1374 | function makeKey_124(str) { 1375 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(1, 24) 1376 | } 1377 | 1378 | function makeKey_125(str) { 1379 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(2, 24) 1380 | } 1381 | 1382 | function makeKey_126(str) { 1383 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(3, 24) 1384 | } 1385 | 1386 | function makeKey_127(str) { 1387 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(4, 24) 1388 | } 1389 | 1390 | function makeKey_128(str) { 1391 | return hex_md5(makeKey_7(str) + makeKey_5(str)).substr(1, 24) 1392 | } 1393 | 1394 | function makeKey_129(str) { 1395 | return hex_md5(makeKey_8(str) + makeKey_3(str)).substr(2, 24) 1396 | } 1397 | 1398 | function makeKey_130(str) { 1399 | return hex_md5(makeKey_14(str) + makeKey_7(str)).substr(3, 24) 1400 | } 1401 | 1402 | function makeKey_131(str) { 1403 | return hex_md5(makeKey_15(str) + makeKey_10(str)).substr(4, 24) 1404 | } 1405 | 1406 | function makeKey_132(str) { 1407 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(3, 24) 1408 | } 1409 | 1410 | function makeKey_133(str) { 1411 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(4, 24) 1412 | } 1413 | 1414 | function makeKey_134(str) { 1415 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(1, 24) 1416 | } 1417 | 1418 | function makeKey_135(str) { 1419 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24) 1420 | } 1421 | 1422 | function makeKey_136(str) { 1423 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(1, 24) 1424 | } 1425 | 1426 | function makeKey_137(str) { 1427 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(2, 24) 1428 | } 1429 | 1430 | function makeKey_138(str) { 1431 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(3, 24) 1432 | } 1433 | 1434 | function makeKey_139(str) { 1435 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(4, 24) 1436 | } 1437 | 1438 | function makeKey_140(str) { 1439 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(1, 24) 1440 | } 1441 | 1442 | function makeKey_141(str) { 1443 | return hex_md5(makeKey_5(str) + makeKey_10(str)).substr(2, 24) 1444 | } 1445 | 1446 | function makeKey_142(str) { 1447 | return hex_md5(makeKey_3(str) + makeKey_17(str)).substr(3, 24) 1448 | } 1449 | 1450 | function makeKey_143(str) { 1451 | return hex_md5(makeKey_7(str) + makeKey_18(str)).substr(4, 24) 1452 | } 1453 | 1454 | function makeKey_144(str) { 1455 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(1, 24) 1456 | } 1457 | 1458 | function makeKey_145(str) { 1459 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(2, 24) 1460 | } 1461 | 1462 | function makeKey_146(str) { 1463 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(3, 24) 1464 | } 1465 | 1466 | function makeKey_147(str) { 1467 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(4, 24) 1468 | } 1469 | 1470 | function makeKey_148(str) { 1471 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(3, 24) 1472 | } 1473 | 1474 | function makeKey_149(str) { 1475 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(4, 24) 1476 | } 1477 | 1478 | function makeKey_150(str) { 1479 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(1, 24) 1480 | } 1481 | 1482 | function makeKey_151(str) { 1483 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(2, 24) 1484 | } 1485 | 1486 | function makeKey_152(str) { 1487 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24) 1488 | } 1489 | 1490 | function makeKey_153(str) { 1491 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24) 1492 | } 1493 | 1494 | function makeKey_154(str) { 1495 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24) 1496 | } 1497 | 1498 | function makeKey_155(str) { 1499 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24) 1500 | } 1501 | 1502 | function makeKey_156(str) { 1503 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24) 1504 | } 1505 | 1506 | function makeKey_157(str) { 1507 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(4, 24) 1508 | } 1509 | 1510 | function makeKey_158(str) { 1511 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(1, 24) 1512 | } 1513 | 1514 | function makeKey_159(str) { 1515 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(2, 24) 1516 | } 1517 | 1518 | function makeKey_160(str) { 1519 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24) 1520 | } 1521 | 1522 | function makeKey_161(str) { 1523 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(4, 24) 1524 | } 1525 | 1526 | function makeKey_162(str) { 1527 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(1, 24) 1528 | } 1529 | 1530 | function makeKey_163(str) { 1531 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(2, 24) 1532 | } 1533 | 1534 | function makeKey_164(str) { 1535 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(3, 24) 1536 | } 1537 | 1538 | function makeKey_165(str) { 1539 | return hex_md5(makeKey_5(str) + makeKey_17(str)).substr(4, 24) 1540 | } 1541 | 1542 | function makeKey_166(str) { 1543 | return hex_md5(makeKey_3(str) + makeKey_18(str)).substr(3, 24) 1544 | } 1545 | 1546 | function makeKey_167(str) { 1547 | return hex_md5(makeKey_7(str) + makeKey_19(str)).substr(4, 24) 1548 | } 1549 | 1550 | function makeKey_168(str) { 1551 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24) 1552 | } 1553 | 1554 | function makeKey_169(str) { 1555 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24) 1556 | } 1557 | 1558 | function makeKey_170(str) { 1559 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 1560 | } 1561 | 1562 | function makeKey_171(str) { 1563 | return hex_md5(makeKey_17(str) + makeKey_5(str)).substr(1, 24) 1564 | } 1565 | 1566 | function makeKey_172(str) { 1567 | return hex_md5(makeKey_18(str) + makeKey_3(str)).substr(2, 24) 1568 | } 1569 | 1570 | function makeKey_173(str) { 1571 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(3, 24) 1572 | } 1573 | 1574 | function makeKey_174(str) { 1575 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(4, 24) 1576 | } 1577 | 1578 | function makeKey_175(str) { 1579 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(1, 24) 1580 | } 1581 | 1582 | function makeKey_176(str) { 1583 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24) 1584 | } 1585 | 1586 | function makeKey_177(str) { 1587 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 1588 | } 1589 | 1590 | function makeKey_178(str) { 1591 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24) 1592 | } 1593 | 1594 | function makeKey_179(str) { 1595 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24) 1596 | } 1597 | 1598 | function makeKey_180(str) { 1599 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(3, 24) 1600 | } 1601 | 1602 | function makeKey_181(str) { 1603 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(1, 24) 1604 | } 1605 | 1606 | function makeKey_182(str) { 1607 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(2, 24) 1608 | } 1609 | 1610 | function makeKey_183(str) { 1611 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24) 1612 | } 1613 | 1614 | function makeKey_184(str) { 1615 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(4, 24) 1616 | } 1617 | 1618 | function makeKey_185(str) { 1619 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24) 1620 | } 1621 | 1622 | function makeKey_186(str) { 1623 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24) 1624 | } 1625 | 1626 | function makeKey_187(str) { 1627 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(4, 24) 1628 | } 1629 | 1630 | function makeKey_188(str) { 1631 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24) 1632 | } 1633 | 1634 | function makeKey_189(str) { 1635 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24) 1636 | } 1637 | 1638 | function makeKey_190(str) { 1639 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24) 1640 | } 1641 | 1642 | function makeKey_191(str) { 1643 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24) 1644 | } 1645 | 1646 | function makeKey_192(str) { 1647 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(1, 24) 1648 | } 1649 | 1650 | function makeKey_193(str) { 1651 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(2, 24) 1652 | } 1653 | 1654 | function makeKey_194(str) { 1655 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(3, 24) 1656 | } 1657 | 1658 | function makeKey_195(str) { 1659 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(4, 24) 1660 | } 1661 | 1662 | function makeKey_196(str) { 1663 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24) 1664 | } 1665 | 1666 | function makeKey_197(str) { 1667 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(4, 24) 1668 | } 1669 | 1670 | function makeKey_198(str) { 1671 | return hex_md5(makeKey_3(str) + makeKey_9(str)).substr(1, 24) 1672 | } 1673 | 1674 | function makeKey_199(str) { 1675 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24) 1676 | } 1677 | 1678 | function makeKey_200(str) { 1679 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 1680 | } 1681 | 1682 | function makeKey_201(str) { 1683 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 1684 | } 1685 | 1686 | function makeKey_202(str) { 1687 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24) 1688 | } 1689 | 1690 | function makeKey_203(str) { 1691 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24) 1692 | } 1693 | 1694 | function makeKey_204(str) { 1695 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24) 1696 | } 1697 | 1698 | function makeKey_205(str) { 1699 | return hex_md5(makeKey_14(str) + makeKey_3(str)).substr(4, 24) 1700 | } 1701 | 1702 | function makeKey_206(str) { 1703 | return hex_md5(makeKey_15(str) + makeKey_7(str)).substr(1, 24) 1704 | } 1705 | 1706 | function makeKey_207(str) { 1707 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(2, 24) 1708 | } 1709 | 1710 | function makeKey_208(str) { 1711 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(3, 24) 1712 | } 1713 | 1714 | function makeKey_209(str) { 1715 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(4, 24) 1716 | } 1717 | 1718 | function makeKey_210(str) { 1719 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(1, 24) 1720 | } 1721 | 1722 | function makeKey_211(str) { 1723 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24) 1724 | } 1725 | 1726 | function makeKey_212(str) { 1727 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(1, 24) 1728 | } 1729 | 1730 | function makeKey_213(str) { 1731 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(2, 24) 1732 | } 1733 | 1734 | function makeKey_214(str) { 1735 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(3, 24) 1736 | } 1737 | 1738 | function makeKey_215(str) { 1739 | return hex_md5(makeKey_4(str) + makeKey_16(str)).substr(4, 24) 1740 | } 1741 | 1742 | function makeKey_216(str) { 1743 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24) 1744 | } 1745 | 1746 | function makeKey_217(str) { 1747 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24) 1748 | } 1749 | 1750 | function makeKey_218(str) { 1751 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(4, 24) 1752 | } 1753 | 1754 | function makeKey_219(str) { 1755 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(1, 24) 1756 | } 1757 | 1758 | function makeKey_220(str) { 1759 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(2, 24) 1760 | } 1761 | 1762 | function makeKey_221(str) { 1763 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(3, 24) 1764 | } 1765 | 1766 | function makeKey_222(str) { 1767 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(4, 24) 1768 | } 1769 | 1770 | function makeKey_223(str) { 1771 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(1, 24) 1772 | } 1773 | 1774 | function makeKey_224(str) { 1775 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(2, 24) 1776 | } 1777 | 1778 | function makeKey_225(str) { 1779 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(3, 24) 1780 | } 1781 | 1782 | function makeKey_226(str) { 1783 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24) 1784 | } 1785 | 1786 | function makeKey_227(str) { 1787 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24) 1788 | } 1789 | 1790 | function makeKey_228(str) { 1791 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24) 1792 | } 1793 | 1794 | function makeKey_229(str) { 1795 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 1796 | } 1797 | 1798 | function makeKey_230(str) { 1799 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1800 | } 1801 | 1802 | function makeKey_231(str) { 1803 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24) 1804 | } 1805 | 1806 | function makeKey_232(str) { 1807 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24) 1808 | } 1809 | 1810 | function makeKey_233(str) { 1811 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(1, 24) 1812 | } 1813 | 1814 | function makeKey_234(str) { 1815 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(2, 24) 1816 | } 1817 | 1818 | function makeKey_235(str) { 1819 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(3, 24) 1820 | } 1821 | 1822 | function makeKey_236(str) { 1823 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(4, 24) 1824 | } 1825 | 1826 | function makeKey_237(str) { 1827 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(1, 24) 1828 | } 1829 | 1830 | function makeKey_238(str) { 1831 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 1832 | } 1833 | 1834 | function makeKey_239(str) { 1835 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(1, 24) 1836 | } 1837 | 1838 | function makeKey_240(str) { 1839 | return hex_md5(makeKey_14(str) + makeKey_0(str)).substr(2, 24) 1840 | } 1841 | 1842 | function makeKey_241(str) { 1843 | return hex_md5(makeKey_15(str) + makeKey_1(str)).substr(3, 24) 1844 | } 1845 | 1846 | function makeKey_242(str) { 1847 | return hex_md5(makeKey_16(str) + makeKey_4(str)).substr(4, 24) 1848 | } 1849 | 1850 | function makeKey_243(str) { 1851 | return hex_md5(makeKey_9(str) + makeKey_5(str)).substr(3, 24) 1852 | } 1853 | 1854 | function makeKey_244(str) { 1855 | return hex_md5(makeKey_10(str) + makeKey_3(str)).substr(4, 24) 1856 | } 1857 | 1858 | function makeKey_245(str) { 1859 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24) 1860 | } 1861 | 1862 | function makeKey_246(str) { 1863 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24) 1864 | } 1865 | 1866 | function makeKey_247(str) { 1867 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24) 1868 | } 1869 | 1870 | function makeKey_248(str) { 1871 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 1872 | } 1873 | 1874 | function makeKey_249(str) { 1875 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1876 | } 1877 | 1878 | function makeKey_250(str) { 1879 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24) 1880 | } 1881 | 1882 | function makeKey_251(str) { 1883 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24) 1884 | } 1885 | 1886 | function makeKey_252(str) { 1887 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(1, 24) 1888 | } 1889 | 1890 | function makeKey_253(str) { 1891 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(2, 24) 1892 | } 1893 | 1894 | function makeKey_254(str) { 1895 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 1896 | } 1897 | 1898 | function makeKey_255(str) { 1899 | return hex_md5(makeKey_5(str) + makeKey_14(str)).substr(4, 24) 1900 | } 1901 | 1902 | function makeKey_256(str) { 1903 | return hex_md5(makeKey_3(str) + makeKey_15(str)).substr(1, 24) 1904 | } 1905 | 1906 | function makeKey_257(str) { 1907 | return hex_md5(makeKey_7(str) + makeKey_16(str)).substr(3, 24) 1908 | } 1909 | 1910 | function makeKey_258(str) { 1911 | return hex_md5(makeKey_0(str) + makeKey_9(str)).substr(1, 24) 1912 | } 1913 | 1914 | function makeKey_259(str) { 1915 | return hex_md5(makeKey_1(str) + makeKey_10(str)).substr(2, 24) 1916 | } 1917 | 1918 | function makeKey_260(str) { 1919 | return hex_md5(makeKey_4(str) + makeKey_17(str)).substr(3, 24) 1920 | } 1921 | 1922 | function makeKey_261(str) { 1923 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(4, 24) 1924 | } 1925 | 1926 | function makeKey_262(str) { 1927 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(3, 24) 1928 | } 1929 | 1930 | function makeKey_263(str) { 1931 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24) 1932 | } 1933 | 1934 | function makeKey_264(str) { 1935 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24) 1936 | } 1937 | 1938 | function makeKey_265(str) { 1939 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24) 1940 | } 1941 | 1942 | function makeKey_266(str) { 1943 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24) 1944 | } 1945 | 1946 | function makeKey_267(str) { 1947 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 1948 | } 1949 | 1950 | function makeKey_268(str) { 1951 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24) 1952 | } 1953 | 1954 | function makeKey_269(str) { 1955 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24) 1956 | } 1957 | 1958 | function makeKey_270(str) { 1959 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(2, 24) 1960 | } 1961 | 1962 | function makeKey_271(str) { 1963 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(3, 24) 1964 | } 1965 | 1966 | function makeKey_272(str) { 1967 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(4, 24) 1968 | } 1969 | 1970 | function makeKey_273(str) { 1971 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24) 1972 | } 1973 | 1974 | function makeKey_274(str) { 1975 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(4, 24) 1976 | } 1977 | 1978 | function makeKey_275(str) { 1979 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24) 1980 | } 1981 | 1982 | function makeKey_276(str) { 1983 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24) 1984 | } 1985 | 1986 | function makeKey_277(str) { 1987 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(2, 24) 1988 | } 1989 | 1990 | function makeKey_278(str) { 1991 | return hex_md5(makeKey_5(str) + makeKey_4(str)).substr(3, 24) 1992 | } 1993 | 1994 | function makeKey_279(str) { 1995 | return hex_md5(makeKey_3(str) + makeKey_5(str)).substr(1, 24) 1996 | } 1997 | 1998 | function makeKey_280(str) { 1999 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(2, 24) 2000 | } 2001 | 2002 | function makeKey_281(str) { 2003 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24) 2004 | } 2005 | 2006 | function makeKey_282(str) { 2007 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 2008 | } 2009 | 2010 | function makeKey_283(str) { 2011 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 2012 | } 2013 | 2014 | function makeKey_284(str) { 2015 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 2016 | } 2017 | 2018 | function makeKey_285(str) { 2019 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 2020 | } 2021 | 2022 | function makeKey_286(str) { 2023 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 2024 | } 2025 | 2026 | function makeKey_287(str) { 2027 | return hex_md5(makeKey_14(str) + makeKey_4(str)).substr(1, 24) 2028 | } 2029 | 2030 | function makeKey_288(str) { 2031 | return hex_md5(makeKey_15(str) + makeKey_14(str)).substr(3, 24) 2032 | } 2033 | 2034 | function makeKey_289(str) { 2035 | return hex_md5(makeKey_16(str) + makeKey_15(str)).substr(1, 24) 2036 | } 2037 | 2038 | function makeKey_290(str) { 2039 | return hex_md5(makeKey_9(str) + makeKey_16(str)).substr(2, 24) 2040 | } 2041 | 2042 | function makeKey_291(str) { 2043 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(3, 24) 2044 | } 2045 | 2046 | function makeKey_292(str) { 2047 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(4, 24) 2048 | } 2049 | 2050 | function makeKey_293(str) { 2051 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24) 2052 | } 2053 | 2054 | function makeKey_294(str) { 2055 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 2056 | } 2057 | 2058 | function makeKey_295(str) { 2059 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24) 2060 | } 2061 | 2062 | function makeKey_296(str) { 2063 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24) 2064 | } 2065 | 2066 | function makeKey_297(str) { 2067 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24) 2068 | } 2069 | 2070 | function makeKey_298(str) { 2071 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24) 2072 | } 2073 | 2074 | function makeKey_299(str) { 2075 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(4, 24) 2076 | } 2077 | 2078 | function makeKey_300(str) { 2079 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(1, 24) 2080 | } 2081 | 2082 | function makeKey_301(str) { 2083 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(2, 24) 2084 | } 2085 | 2086 | function makeKey_302(str) { 2087 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24) 2088 | } 2089 | 2090 | function makeKey_303(str) { 2091 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24) 2092 | } 2093 | 2094 | function makeKey_304(str) { 2095 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24) 2096 | } 2097 | 2098 | function makeKey_305(str) { 2099 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24) 2100 | } 2101 | 2102 | function makeKey_306(str) { 2103 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24) 2104 | } 2105 | 2106 | function makeKey_307(str) { 2107 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24) 2108 | } 2109 | 2110 | function makeKey_308(str) { 2111 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24) 2112 | } 2113 | 2114 | function makeKey_309(str) { 2115 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24) 2116 | } 2117 | 2118 | function makeKey_310(str) { 2119 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(1, 24) 2120 | } 2121 | 2122 | function makeKey_311(str) { 2123 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(2, 24) 2124 | } 2125 | 2126 | function makeKey_312(str) { 2127 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(3, 24) 2128 | } 2129 | 2130 | function makeKey_313(str) { 2131 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(4, 24) 2132 | } 2133 | 2134 | function makeKey_314(str) { 2135 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24) 2136 | } 2137 | 2138 | function makeKey_315(str) { 2139 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24) 2140 | } 2141 | 2142 | function makeKey_316(str) { 2143 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24) 2144 | } 2145 | 2146 | function makeKey_317(str) { 2147 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 2148 | } 2149 | 2150 | function makeKey_318(str) { 2151 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(1, 24) 2152 | } 2153 | 2154 | function makeKey_319(str) { 2155 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(3, 24) 2156 | } 2157 | 2158 | function makeKey_320(str) { 2159 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(1, 24) 2160 | } 2161 | 2162 | function makeKey_321(str) { 2163 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(2, 24) 2164 | } 2165 | 2166 | function makeKey_322(str) { 2167 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(3, 24) 2168 | } 2169 | 2170 | function makeKey_323(str) { 2171 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24) 2172 | } 2173 | 2174 | function makeKey_324(str) { 2175 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(3, 24) 2176 | } 2177 | 2178 | function makeKey_325(str) { 2179 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(4, 24) 2180 | } 2181 | 2182 | function makeKey_326(str) { 2183 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24) 2184 | } 2185 | 2186 | function makeKey_327(str) { 2187 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(1, 24) 2188 | } 2189 | 2190 | function makeKey_328(str) { 2191 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(2, 24) 2192 | } 2193 | 2194 | function makeKey_329(str) { 2195 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(3, 24) 2196 | } 2197 | 2198 | function makeKey_330(str) { 2199 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(4, 24) 2200 | } 2201 | 2202 | function makeKey_331(str) { 2203 | return hex_md5(makeKey_19(str) + makeKey_10(str)).substr(1, 24) 2204 | } 2205 | 2206 | function makeKey_332(str) { 2207 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24) 2208 | } 2209 | 2210 | function makeKey_333(str) { 2211 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24) 2212 | } 2213 | 2214 | function makeKey_334(str) { 2215 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24) 2216 | } 2217 | 2218 | function makeKey_335(str) { 2219 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(3, 24) 2220 | } 2221 | 2222 | function makeKey_336(str) { 2223 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(4, 24) 2224 | } 2225 | 2226 | function makeKey_337(str) { 2227 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24) 2228 | } 2229 | 2230 | function makeKey_338(str) { 2231 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24) 2232 | } 2233 | 2234 | function makeKey_339(str) { 2235 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(1, 24) 2236 | } 2237 | 2238 | function makeKey_340(str) { 2239 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(2, 24) 2240 | } 2241 | 2242 | function makeKey_341(str) { 2243 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24) 2244 | } 2245 | 2246 | function makeKey_342(str) { 2247 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 2248 | } 2249 | 2250 | function makeKey_343(str) { 2251 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 2252 | } 2253 | 2254 | function makeKey_344(str) { 2255 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 2256 | } 2257 | 2258 | function makeKey_345(str) { 2259 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 2260 | } 2261 | 2262 | function makeKey_346(str) { 2263 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 2264 | } 2265 | 2266 | function makeKey_347(str) { 2267 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24) 2268 | } 2269 | 2270 | function makeKey_348(str) { 2271 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(3, 24) 2272 | } 2273 | 2274 | function makeKey_349(str) { 2275 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(1, 24) 2276 | } 2277 | 2278 | function makeKey_350(str) { 2279 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(2, 24) 2280 | } 2281 | 2282 | function makeKey_351(str) { 2283 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24) 2284 | } 2285 | 2286 | function makeKey_352(str) { 2287 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24) 2288 | } 2289 | 2290 | function makeKey_353(str) { 2291 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24) 2292 | } 2293 | 2294 | function makeKey_354(str) { 2295 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24) 2296 | } 2297 | 2298 | function makeKey_355(str) { 2299 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24) 2300 | } 2301 | 2302 | function makeKey_356(str) { 2303 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24) 2304 | } 2305 | 2306 | function makeKey_357(str) { 2307 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24) 2308 | } 2309 | 2310 | function makeKey_358(str) { 2311 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24) 2312 | } 2313 | 2314 | function makeKey_359(str) { 2315 | return hex_md5(makeKey_5(str) + makeKey_3(str)).substr(4, 24) 2316 | } 2317 | 2318 | function makeKey_360(str) { 2319 | return hex_md5(makeKey_3(str) + makeKey_7(str)).substr(2, 24) 2320 | } 2321 | 2322 | function makeKey_361(str) { 2323 | return hex_md5(makeKey_7(str) + makeKey_17(str)).substr(3, 24) 2324 | } 2325 | 2326 | function makeKey_362(str) { 2327 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24) 2328 | } 2329 | 2330 | function makeKey_363(str) { 2331 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24) 2332 | } 2333 | 2334 | function makeKey_364(str) { 2335 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24) 2336 | } 2337 | 2338 | function makeKey_365(str) { 2339 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24) 2340 | } 2341 | 2342 | function makeKey_366(str) { 2343 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24) 2344 | } 2345 | 2346 | function makeKey_367(str) { 2347 | return hex_md5(makeKey_4(str) + makeKey_7(str)).substr(2, 24) 2348 | } 2349 | 2350 | function makeKey_368(str) { 2351 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24) 2352 | } 2353 | 2354 | function makeKey_369(str) { 2355 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24) 2356 | } 2357 | 2358 | function makeKey_370(str) { 2359 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(1, 24) 2360 | } 2361 | 2362 | function makeKey_371(str) { 2363 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24) 2364 | } 2365 | 2366 | function makeKey_372(str) { 2367 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(1, 24) 2368 | } 2369 | 2370 | function makeKey_373(str) { 2371 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(2, 24) 2372 | } 2373 | 2374 | function makeKey_374(str) { 2375 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(3, 24) 2376 | } 2377 | 2378 | function makeKey_375(str) { 2379 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(4, 24) 2380 | } 2381 | 2382 | function makeKey_376(str) { 2383 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(3, 24) 2384 | } 2385 | 2386 | function makeKey_377(str) { 2387 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(4, 24) 2388 | } 2389 | 2390 | function makeKey_378(str) { 2391 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24) 2392 | } 2393 | 2394 | function makeKey_379(str) { 2395 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24) 2396 | } 2397 | 2398 | function makeKey_380(str) { 2399 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24) 2400 | } 2401 | 2402 | function makeKey_381(str) { 2403 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(3, 24) 2404 | } 2405 | 2406 | function makeKey_382(str) { 2407 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 2408 | } 2409 | 2410 | function makeKey_383(str) { 2411 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 2412 | } 2413 | 2414 | function makeKey_384(str) { 2415 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24) 2416 | } 2417 | 2418 | function makeKey_385(str) { 2419 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24) 2420 | } 2421 | 2422 | function makeKey_386(str) { 2423 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24) 2424 | } 2425 | 2426 | function makeKey_387(str) { 2427 | return hex_md5(makeKey_17(str) + makeKey_1(str)).substr(2, 24) 2428 | } 2429 | 2430 | function makeKey_388(str) { 2431 | return hex_md5(makeKey_18(str) + makeKey_4(str)).substr(3, 24) 2432 | } 2433 | 2434 | function makeKey_389(str) { 2435 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(1, 24) 2436 | } 2437 | 2438 | function makeKey_390(str) { 2439 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24) 2440 | } 2441 | 2442 | function makeKey_391(str) { 2443 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24) 2444 | } 2445 | 2446 | function makeKey_392(str) { 2447 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(4, 24) 2448 | } 2449 | 2450 | function makeKey_393(str) { 2451 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24) 2452 | } 2453 | 2454 | function makeKey_394(str) { 2455 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24) 2456 | } 2457 | 2458 | function makeKey_395(str) { 2459 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24) 2460 | } 2461 | 2462 | function makeKey_396(str) { 2463 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24) 2464 | } 2465 | 2466 | function makeKey_397(str) { 2467 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24) 2468 | } 2469 | 2470 | function makeKey_398(str) { 2471 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(3, 24) 2472 | } 2473 | 2474 | function makeKey_399(str) { 2475 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(1, 24) 2476 | } 2477 | 2478 | // var cookie = getCookie('vjkl5'); 2479 | var arrFun = [makeKey_0, makeKey_1, makeKey_2, makeKey_3, makeKey_4, makeKey_5, makeKey_6, makeKey_7, makeKey_8, makeKey_9, makeKey_10, makeKey_11, makeKey_12, makeKey_13, makeKey_14, makeKey_15, makeKey_16, makeKey_17, makeKey_18, makeKey_19, makeKey_20, makeKey_21, makeKey_22, makeKey_23, makeKey_24, makeKey_25, makeKey_26, makeKey_27, makeKey_28, makeKey_29, makeKey_30, makeKey_31, makeKey_32, makeKey_33, makeKey_34, makeKey_35, makeKey_36, makeKey_37, makeKey_38, makeKey_39, makeKey_40, makeKey_41, makeKey_42, makeKey_43, makeKey_44, makeKey_45, makeKey_46, makeKey_47, makeKey_48, makeKey_49, makeKey_50, makeKey_51, makeKey_52, makeKey_53, makeKey_54, makeKey_55, makeKey_56, makeKey_57, makeKey_58, makeKey_59, makeKey_60, makeKey_61, makeKey_62, makeKey_63, makeKey_64, makeKey_65, makeKey_66, makeKey_67, makeKey_68, makeKey_69, makeKey_70, makeKey_71, makeKey_72, makeKey_73, makeKey_74, makeKey_75, makeKey_76, makeKey_77, makeKey_78, makeKey_79, makeKey_80, makeKey_81, makeKey_82, makeKey_83, makeKey_84, makeKey_85, makeKey_86, makeKey_87, makeKey_88, makeKey_89, makeKey_90, makeKey_91, makeKey_92, makeKey_93, makeKey_94, makeKey_95, makeKey_96, makeKey_97, makeKey_98, makeKey_99, makeKey_100, makeKey_101, makeKey_102, makeKey_103, makeKey_104, makeKey_105, makeKey_106, makeKey_107, makeKey_108, makeKey_109, makeKey_110, makeKey_111, makeKey_112, makeKey_113, makeKey_114, makeKey_115, makeKey_116, makeKey_117, makeKey_118, makeKey_119, makeKey_120, makeKey_121, makeKey_122, makeKey_123, makeKey_124, makeKey_125, makeKey_126, makeKey_127, makeKey_128, makeKey_129, makeKey_130, makeKey_131, makeKey_132, makeKey_133, makeKey_134, makeKey_135, makeKey_136, makeKey_137, makeKey_138, makeKey_139, makeKey_140, makeKey_141, makeKey_142, makeKey_143, makeKey_144, makeKey_145, makeKey_146, makeKey_147, makeKey_148, makeKey_149, makeKey_150, makeKey_151, makeKey_152, makeKey_153, makeKey_154, makeKey_155, makeKey_156, makeKey_157, makeKey_158, makeKey_159, makeKey_160, makeKey_161, makeKey_162, makeKey_163, makeKey_164, makeKey_165, makeKey_166, makeKey_167, makeKey_168, makeKey_169, makeKey_170, makeKey_171, makeKey_172, makeKey_173, makeKey_174, makeKey_175, makeKey_176, makeKey_177, makeKey_178, makeKey_179, makeKey_180, makeKey_181, makeKey_182, makeKey_183, makeKey_184, makeKey_185, makeKey_186, makeKey_187, makeKey_188, makeKey_189, makeKey_190, makeKey_191, makeKey_192, makeKey_193, makeKey_194, makeKey_195, makeKey_196, makeKey_197, makeKey_198, makeKey_199, makeKey_200, makeKey_201, makeKey_202, makeKey_203, makeKey_204, makeKey_205, makeKey_206, makeKey_207, makeKey_208, makeKey_209, makeKey_210, makeKey_211, makeKey_212, makeKey_213, makeKey_214, makeKey_215, makeKey_216, makeKey_217, makeKey_218, makeKey_219, makeKey_220, makeKey_221, makeKey_222, makeKey_223, makeKey_224, makeKey_225, makeKey_226, makeKey_227, makeKey_228, makeKey_229, makeKey_230, makeKey_231, makeKey_232, makeKey_233, makeKey_234, makeKey_235, makeKey_236, makeKey_237, makeKey_238, makeKey_239, makeKey_240, makeKey_241, makeKey_242, makeKey_243, makeKey_244, makeKey_245, makeKey_246, makeKey_247, makeKey_248, makeKey_249, makeKey_250, makeKey_251, makeKey_252, makeKey_253, makeKey_254, makeKey_255, makeKey_256, makeKey_257, makeKey_258, makeKey_259, makeKey_260, makeKey_261, makeKey_262, makeKey_263, makeKey_264, makeKey_265, makeKey_266, makeKey_267, makeKey_268, makeKey_269, makeKey_270, makeKey_271, makeKey_272, makeKey_273, makeKey_274, makeKey_275, makeKey_276, makeKey_277, makeKey_278, makeKey_279, makeKey_280, makeKey_281, makeKey_282, makeKey_283, makeKey_284, makeKey_285, makeKey_286, makeKey_287, makeKey_288, makeKey_289, makeKey_290, makeKey_291, makeKey_292, makeKey_293, makeKey_294, makeKey_295, makeKey_296, makeKey_297, makeKey_298, makeKey_299, makeKey_300, makeKey_301, makeKey_302, makeKey_303, makeKey_304, makeKey_305, makeKey_306, makeKey_307, makeKey_308, makeKey_309, makeKey_310, makeKey_311, makeKey_312, makeKey_313, makeKey_314, makeKey_315, makeKey_316, makeKey_317, makeKey_318, makeKey_319, makeKey_320, makeKey_321, makeKey_322, makeKey_323, makeKey_324, makeKey_325, makeKey_326, makeKey_327, makeKey_328, makeKey_329, makeKey_330, makeKey_331, makeKey_332, makeKey_333, makeKey_334, makeKey_335, makeKey_336, makeKey_337, makeKey_338, makeKey_339, makeKey_340, makeKey_341, makeKey_342, makeKey_343, makeKey_344, makeKey_345, makeKey_346, makeKey_347, makeKey_348, makeKey_349, makeKey_350, makeKey_351, makeKey_352, makeKey_353, makeKey_354, makeKey_355, makeKey_356, makeKey_357, makeKey_358, makeKey_359, makeKey_360, makeKey_361, makeKey_362, makeKey_363, makeKey_364, makeKey_365, makeKey_366, makeKey_367, makeKey_368, makeKey_369, makeKey_370, makeKey_371, makeKey_372, makeKey_373, makeKey_374, makeKey_375, makeKey_376, makeKey_377, makeKey_378, makeKey_379, makeKey_380, makeKey_381, makeKey_382, makeKey_383, makeKey_384, makeKey_385, makeKey_386, makeKey_387, makeKey_388, makeKey_389, makeKey_390, makeKey_391, makeKey_392, makeKey_393, makeKey_394, makeKey_395, makeKey_396, makeKey_397, makeKey_398, makeKey_399]; 2480 | var funIndex = strToLong(cookie) % arrFun.length; 2481 | var fun = arrFun[funIndex]; 2482 | var result = fun(cookie); 2483 | return result 2484 | } --------------------------------------------------------------------------------