├── .idea
└── vcs.xml
├── 1548066223468.jpg
├── README.md
├── encrypt.js
├── get_docid.js
├── gland_mmewmd
├── README.md
├── encrypt.js
├── github.png
├── main.go
├── test.js
├── vjkl5.js
└── ywtu.js
├── log-2019.2.11.txt
├── requirements.txt
├── spider_demo.py
├── spider_demo_proxy_abuyun.py
├── vl5x.js
└── ywtu.js
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/1548066223468.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sml2h3/mmewmd_crack_for_wenshu/a7cba1446474c629e9725556a3b43fa656ec622c/1548066223468.jpg
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 文书网反反爬虫SDK
2 |
3 | # 2023.06.25供应文书一手日更数据,加微信备注 文书数据
4 |
5 | 
6 |
7 | ## 数据矿工群:119794042 778910502(原来的大群因为有人传播谣言被封,现在转到这个群)
8 |
9 | ## 最新提示:文书网已经放弃使用瑞数,现在使用的是免费的sojson加密,sojson原作者在交流群里,欢迎大家加群。另外,由于本版本破解算法开元,瑞数已经于本年3月份更新了大部分站点算法,目前仅有小量网站可能还在使用本版本(需要自行研究修改)。本开源版仅供学习交流。欢迎业务合作加群私聊群主,不做违法站点,违规业务。拒绝做伸手党从我做起。接JS破解、验证码(图片,滑动,点选)识别业务。违法用途请勿打扰自行绕道,谢谢。
10 |
11 | ## 通知:在各位坚持不懈的努力下,文书网居然将瑞数给下了。你们太狠了呀!!!!现在文书网基本处于无防御状态,希望大家手下留情!据说可能会将瑞数更新到最新版本。
12 |
13 | ## TIP:由于近期有众多开发者将项目应用于某网站的爬虫,导致其现在无法很难像之前一样正常访问,在这里我呼吁各位请不要做违法的事情,如果用于采集数据,请保证数据用于非商业用途,否则后果自负!!另外如果您真的用于爬虫,希望尽量放慢速度,让网站正常访问,让想学习js“搞基”特性的朋友有机会进行调试学习。多说一句,大家都是程序员,程序员何必为难程序员,大家细水长流,别把某网站的程序员惹急了谢谢大家,再次感谢各位捧场的朋友,感谢某数的反爬工程师让我们认识了那么多有趣的加密方案,也感谢某书网提供的学习平台。大家新年快乐!!!~~另外提醒一下,无论是在哪个系统环境下调用,请安装nodejs~~。
14 | ## 前言
15 | 一月份的时候中国裁判文书网更新了据说是瑞数安全的js混淆动态加密。
16 | 特征1:params:MmEwMd
17 | 特征2:html:9DhefwqGPrzGxEp9hPaoag
18 | 特征3:cookies:FSSBBIl1UgzbN7N80T
19 |
20 | ## 项目
21 | 本项目为学习Js加密和向反爬虫工程师前辈们学习而立,请勿用于违法用途,用于违法用途产生的后果与本人无关,本版本仅供学习参考所用,所有下载者应于24小时内学习完毕后删除。
22 | 由于本次项目需求的朋友来自使用各个开发语言,本次sdk将会js的方式提供,各开发者可以根据自己开发语言考虑采用v8引擎执行或语言自带的执行js的函数或者是第三方包。
23 |
24 | ## 调用思路
25 | [请严格按照此思路调用,否则会出现大量remindkey或者202]
26 |
27 | ###定义:
28 | #### 完整生命周期
29 | 第一步:
30 | 必须至少进行一次二次跳转:
31 |
32 | ①第一次访问List页应当cookies中不含有F80系列cookies,此时必定202,并返回F80S和假F80T, 获得meta头
33 |
34 | ②第二次访问List页应当带上第一次访问返回的F80S和用第一次返回的假F80T生成的真F80T,此时会返回vjkl5, 获得meta头
35 |
36 | 第二步:
37 | 此时我们应当保存上一步最后请求时的真F80T,还有①中的F80S, vjkl5, ②中的meta头。
38 | 之后的每一次访问ListContent页面,都需要使用上一次访问时(在第一次访问ListContent的时候,用的是②中的真F80T)的真F80T去生成新的真F80T,且每次生成的F80T仅可使用一次后作废,作废后用于生成下一次新的真F80T。
39 |
40 | #### 爬虫生命周期理论
41 | 当遇到了任何一个接口返回码为202时,意味着一次上述的完整证明周期结束。需要重新按照上面的生命周期运行。
42 | 此处包含,访问时出现的202或者是更换了代理IP。
43 |
44 |
45 |
46 | ## 更新tip
47 |
48 | ### 2019.2.11-2
49 | 修复windows下兼容性问题,现在再也不需要nodejs啦
50 | 阿布云也可能没啥用了,所以改成通用的代理测试版本
51 |
52 | ### 2019.2.11-2
53 | 测试阿布云专业版可以获取到数据,做了一个加上代理IP的版本给大家参考,自行处理返回值为空和因代理IP其他报错问题。
54 | 注意,一定要是专业版的阿布云,别买错了!!
55 |
56 |
57 | ### 2019.2.11
58 | Python调用示例添加解密docid和获取详情页的方法。
59 |
60 | 重要提示:目前因为用本项目做采集的开发者较多,采集量非常大,导致瑞数现在开始疯狂地封IP。基本上百度上能搜到的那几家大代理商获取数据相对慢点,大户请各位自行开动脑经或者找关系找一些非公开销售的代理IP。
61 | 目前本项目依旧正常可使用,请严格按照demo的调用方式调用。
62 |
63 | 大量出现202基本肯定是封IP,400可以进行5-10次的重试。按照demo的调用流程相对比较省IP,我指的是获取到list的后直接去获取内容页数据,过往大家一般是存docid到队列。这里可以改成把获取到的未处理的数据放到队列,比较省IP。
64 |
65 | 附加2019.2.11调用结果log,可自行查看
66 |
67 | ### 2019.1.21
68 | 修复了大量可能会出现remind key和202的问题。
69 |
70 | 合并了来自@jjk13593527343开发者制作的go语言调用sdk,go开发者请前往gland_mmewmd文件夹调用
71 |
72 | ### 2019.1.20
73 | 在连续5天的奋战下,我们sdk最终版终于完成!本项目以jssdk为核心,本次发布python调用实例,敬请参考。
74 | 将在未来1-2天内发布java,go,c#的实例版本,欢迎大家star和加入我们这个有爱的数据矿工(下🈶群号)群体。
75 | 一测试:商标网已通杀可通过本sdk访问。
76 |
77 | python版:guid请自行找算法生成,否则会remind key!!(最新版已解决)
78 |
79 | 本次开发全程直播,将由"时光机"和老高两位志愿开发者将视频剪辑后发布,具体视频地址敬请期待(因某些原因暂不公开)。
80 | 虎牙直播间:17593443欢迎订阅
81 |
82 | [一个97少年的战斗史]
83 |
84 | ### 2019.1.17
85 | 这个版本加密里面工程师下的毒太多了,现在上传的是已经确定加密过程,但由于部分加密参数获取的生成方式依旧不是很全面,所以暂时无法通过瑞数的审核,带生成的参数访问页面会400错误。
86 | 不过现在可以肯定的是目前这个版本是整个MmEwMd的主要生成方式,待我整理思路把不确定的参数生成方式全部弄清楚,会给大家继续献上完整SDK。下次更新时间预计为2019.1.19之前。
87 |
88 | 请clone代码后,清空浏览器缓存打开文书网,把当前的cookies中的FSSBBIl1UgzbN7N80T参数值填写到python代码对应位置直接运行生成的就是MmEwMd参数。
89 | 关于MmEwMd:已经通过比对,确认生成的长度和规则是一致的。
90 |
91 | ## 快乐的爬虫群
92 | **QQ119794042**
93 |
94 |
95 |
96 | ### 鼓励
97 | 如果我的项目帮助到了你,可否通过打赏鼓励一下作者
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/get_docid.js:
--------------------------------------------------------------------------------
1 | /*
2 | * 解密DocID
3 | */
4 | window = {};
5 | (function (global) {
6 | 'use strict';
7 | if (global.Base64_Zip) {
8 | //alert("1");
9 | //return;
10 |
11 | }
12 | var version = "2.1.1";
13 | // if node.js, we use Buffer
14 | var buffer;
15 | if (typeof module !== 'undefined' && module.exports) {
16 | buffer = require('buffer').Buffer;
17 | }
18 | // constants
19 | var b64chars
20 | = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
21 | var b64tab = function (bin) {
22 | var t = {};
23 | for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
24 | return t;
25 | }(b64chars);
26 | var fromCharCode = String.fromCharCode;
27 | // encoder stuff
28 | var cb_utob = function (c) {
29 | if (c.length < 2) {
30 | var cc = c.charCodeAt(0);
31 | return cc < 0x80 ? c
32 | : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
33 | + fromCharCode(0x80 | (cc & 0x3f)))
34 | : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
35 | + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
36 | + fromCharCode(0x80 | (cc & 0x3f)));
37 | } else {
38 | var cc = 0x10000
39 | + (c.charCodeAt(0) - 0xD800) * 0x400
40 | + (c.charCodeAt(1) - 0xDC00);
41 | return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
42 | + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
43 | + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
44 | + fromCharCode(0x80 | (cc & 0x3f)));
45 | }
46 | };
47 | var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
48 | var utob = function (u) {
49 | return u.replace(re_utob, cb_utob);
50 | };
51 | var cb_encode = function (ccc) {
52 | var padlen = [0, 2, 1][ccc.length % 3],
53 | ord = ccc.charCodeAt(0) << 16
54 | | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
55 | | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
56 | chars = [
57 | b64chars.charAt(ord >>> 18),
58 | b64chars.charAt((ord >>> 12) & 63),
59 | padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
60 | padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
61 | ];
62 | return chars.join('');
63 | };
64 | var Base64_btoa = function (b) {
65 | return b.replace(/[\s\S]{1,3}/g, cb_encode);
66 | };
67 | var _encode = buffer
68 | ? function (u) {
69 | return (new buffer(u)).toString('base64')
70 | }
71 | : function (u) {
72 | return Base64_btoa(utob(u))
73 | }
74 | ;
75 | var encode = function (u, urisafe) {
76 | return !urisafe
77 | ? _encode(u)
78 | : _encode(u).replace(/[+\/]/g, function (m0) {
79 | return m0 == '+' ? '-' : '_';
80 | }).replace(/=/g, '');
81 | };
82 | var encodeURI = function (u) {
83 | return encode(u, true)
84 | };
85 | // decoder stuff
86 | var re_btou = new RegExp([
87 | '[\xC0-\xDF][\x80-\xBF]',
88 | '[\xE0-\xEF][\x80-\xBF]{2}',
89 | '[\xF0-\xF7][\x80-\xBF]{3}'
90 | ].join('|'), 'g');
91 | var cb_btou = function (cccc) {
92 | switch (cccc.length) {
93 | case 4:
94 | var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
95 | | ((0x3f & cccc.charCodeAt(1)) << 12)
96 | | ((0x3f & cccc.charCodeAt(2)) << 6)
97 | | (0x3f & cccc.charCodeAt(3)),
98 | offset = cp - 0x10000;
99 | return (fromCharCode((offset >>> 10) + 0xD800)
100 | + fromCharCode((offset & 0x3FF) + 0xDC00));
101 | case 3:
102 | return fromCharCode(
103 | ((0x0f & cccc.charCodeAt(0)) << 12)
104 | | ((0x3f & cccc.charCodeAt(1)) << 6)
105 | | (0x3f & cccc.charCodeAt(2))
106 | );
107 | default:
108 | return fromCharCode(
109 | ((0x1f & cccc.charCodeAt(0)) << 6)
110 | | (0x3f & cccc.charCodeAt(1))
111 | );
112 | }
113 | };
114 | var btou = function (b) {
115 | return b.replace(re_btou, cb_btou);
116 | };
117 | var cb_decode = function (cccc) {
118 | var len = cccc.length,
119 | padlen = len % 4,
120 | n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
121 | | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
122 | | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
123 | | (len > 3 ? b64tab[cccc.charAt(3)] : 0),
124 | chars = [
125 | fromCharCode(n >>> 16),
126 | fromCharCode((n >>> 8) & 0xff),
127 | fromCharCode(n & 0xff)
128 | ];
129 | chars.length -= [0, 0, 2, 1][padlen];
130 | return chars.join('');
131 | };
132 | var Base64_atob = function (a) {
133 | return a.replace(/[\s\S]{1,4}/g, cb_decode);
134 | };
135 | var _decode = buffer
136 | ? function (a) {
137 | return (new buffer(a, 'base64')).toString()
138 | }
139 | : function (a) {
140 | return btou(Base64_atob(a))
141 | };
142 | var decode = function (a) {
143 | return _decode(
144 | a.replace(/[-_]/g, function (m0) {
145 | return m0 == '-' ? '+' : '/'
146 | })
147 | .replace(/[^A-Za-z0-9\+\/]/g, '')
148 | );
149 | };
150 | // export Base64
151 | global.Base64_Zip = {
152 | VERSION: version,
153 | atob: Base64_atob,
154 | btoa: Base64_btoa,
155 | fromBase64: decode,
156 | toBase64: encode,
157 | utob: utob,
158 | encode: encode,
159 | encodeURI: encodeURI,
160 | btou: btou,
161 | decode: decode
162 | };
163 | // if ES5 is available, make Base64.extendString() available
164 | if (typeof Object.defineProperty === 'function') {
165 | var noEnum = function (v) {
166 | return {value: v, enumerable: false, writable: true, configurable: true};
167 | };
168 | global.Base64_Zip.extendString = function () {
169 | Object.defineProperty(
170 | String.prototype, 'fromBase64', noEnum(function () {
171 | return decode(this)
172 | }));
173 | Object.defineProperty(
174 | String.prototype, 'toBase64', noEnum(function (urisafe) {
175 | return encode(this, urisafe)
176 | }));
177 | Object.defineProperty(
178 | String.prototype, 'toBase64URI', noEnum(function () {
179 | return encode(this, true)
180 | }));
181 | };
182 | }
183 | // that's it!
184 | })(window);
185 | (function (ctx) {
186 | /* Copyright (C) 1999 Masanao Izumo
187 | * Version: 1.0.0.1
188 | * LastModified: Dec 25 1999
189 | */
190 |
191 | /* Interface:
192 | * data = zip_inflate(src);
193 | */
194 |
195 | /* constant parameters */
196 | var zip_WSIZE = 32768; // Sliding Window size
197 | var zip_STORED_BLOCK = 0;
198 | var zip_STATIC_TREES = 1;
199 | var zip_DYN_TREES = 2;
200 |
201 | /* for inflate */
202 | var zip_lbits = 9; // bits in base literal/length lookup table
203 | var zip_dbits = 6; // bits in base distance lookup table
204 | var zip_INBUFSIZ = 32768; // Input buffer size
205 | var zip_INBUF_EXTRA = 64; // Extra buffer
206 |
207 | /* variables (inflate) */
208 | var zip_slide;
209 | var zip_wp; // current position in slide
210 | var zip_fixed_tl = null; // inflate static
211 | var zip_fixed_td; // inflate static
212 | var zip_fixed_bl, zip_fixed_bd; // inflate static
213 | var zip_bit_buf; // bit buffer
214 | var zip_bit_len; // bits in bit buffer
215 | var zip_method;
216 | var zip_eof;
217 | var zip_copy_leng;
218 | var zip_copy_dist;
219 | var zip_tl, zip_td; // literal/length and distance decoder tables
220 | var zip_bl, zip_bd; // number of bits decoded by tl and td
221 |
222 | var zip_inflate_data;
223 | var zip_inflate_pos;
224 |
225 |
226 | /* constant tables (inflate) */
227 | var zip_MASK_BITS = new Array(
228 | 0x0000,
229 | 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
230 | 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff);
231 | // Tables for deflate from PKZIP's appnote.txt.
232 | var zip_cplens = new Array( // Copy lengths for literal codes 257..285
233 | 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
234 | 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0);
235 | /* note: see note #13 above about the 258 in this list. */
236 | var zip_cplext = new Array( // Extra bits for literal codes 257..285
237 | 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
238 | 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99); // 99==invalid
239 | var zip_cpdist = new Array( // Copy offsets for distance codes 0..29
240 | 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
241 | 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
242 | 8193, 12289, 16385, 24577);
243 | var zip_cpdext = new Array( // Extra bits for distance codes
244 | 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
245 | 7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
246 | 12, 12, 13, 13);
247 | var zip_border = new Array( // Order of the bit length code lengths
248 | 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15);
249 | /* objects (inflate) */
250 |
251 | var zip_HuftList = function () {
252 | this.next = null;
253 | this.list = null;
254 | }
255 |
256 | var zip_HuftNode = function () {
257 | this.e = 0; // number of extra bits or operation
258 | this.b = 0; // number of bits in this code or subcode
259 |
260 | // union
261 | this.n = 0; // literal, length base, or distance base
262 | this.t = null; // (zip_HuftNode) pointer to next level of table
263 | }
264 |
265 | var zip_HuftBuild = function (b, // code lengths in bits (all assumed <= BMAX)
266 | n, // number of codes (assumed <= N_MAX)
267 | s, // number of simple-valued codes (0..s-1)
268 | d, // list of base values for non-simple codes
269 | e, // list of extra bits for non-simple codes
270 | mm // maximum lookup bits
271 | ) {
272 | this.BMAX = 16; // maximum bit length of any code
273 | this.N_MAX = 288; // maximum number of codes in any set
274 | this.status = 0; // 0: success, 1: incomplete table, 2: bad input
275 | this.root = null; // (zip_HuftList) starting table
276 | this.m = 0; // maximum lookup bits, returns actual
277 |
278 | /* Given a list of code lengths and a maximum table size, make a set of
279 | tables to decode that set of codes. Return zero on success, one if
280 | the given code set is incomplete (the tables are still built in this
281 | case), two if the input is invalid (all zero length codes or an
282 | oversubscribed set of lengths), and three if not enough memory.
283 | The code with value 256 is special, and the tables are constructed
284 | so that no bits beyond that code are fetched when that code is
285 | decoded. */
286 | {
287 | var a; // counter for codes of length k
288 | var c = new Array(this.BMAX + 1); // bit length count table
289 | var el; // length of EOB code (value 256)
290 | var f; // i repeats in table every f entries
291 | var g; // maximum code length
292 | var h; // table level
293 | var i; // counter, current code
294 | var j; // counter
295 | var k; // number of bits in current code
296 | var lx = new Array(this.BMAX + 1); // stack of bits per table
297 | var p; // pointer into c[], b[], or v[]
298 | var pidx; // index of p
299 | var q; // (zip_HuftNode) points to current table
300 | var r = new zip_HuftNode(); // table entry for structure assignment
301 | var u = new Array(this.BMAX); // zip_HuftNode[BMAX][] table stack
302 | var v = new Array(this.N_MAX); // values in order of bit length
303 | var w;
304 | var x = new Array(this.BMAX + 1);// bit offsets, then code stack
305 | var xp; // pointer into x or c
306 | var y; // number of dummy codes added
307 | var z; // number of entries in current table
308 | var o;
309 | var tail; // (zip_HuftList)
310 |
311 | tail = this.root = null;
312 | for (i = 0; i < c.length; i++)
313 | c[i] = 0;
314 | for (i = 0; i < lx.length; i++)
315 | lx[i] = 0;
316 | for (i = 0; i < u.length; i++)
317 | u[i] = null;
318 | for (i = 0; i < v.length; i++)
319 | v[i] = 0;
320 | for (i = 0; i < x.length; i++)
321 | x[i] = 0;
322 |
323 | // Generate counts for each bit length
324 | el = n > 256 ? b[256] : this.BMAX; // set length of EOB code, if any
325 | p = b;
326 | pidx = 0;
327 | i = n;
328 | do {
329 | c[p[pidx]]++; // assume all entries <= BMAX
330 | pidx++;
331 | } while (--i > 0);
332 | if (c[0] == n) { // null input--all zero length codes
333 | this.root = null;
334 | this.m = 0;
335 | this.status = 0;
336 | return;
337 | }
338 |
339 | // Find minimum and maximum length, bound *m by those
340 | for (j = 1; j <= this.BMAX; j++)
341 | if (c[j] != 0)
342 | break;
343 | k = j; // minimum code length
344 | if (mm < j)
345 | mm = j;
346 | for (i = this.BMAX; i != 0; i--)
347 | if (c[i] != 0)
348 | break;
349 | g = i; // maximum code length
350 | if (mm > i)
351 | mm = i;
352 |
353 | // Adjust last length count to fill out codes, if needed
354 | for (y = 1 << j; j < i; j++, y <<= 1)
355 | if ((y -= c[j]) < 0) {
356 | this.status = 2; // bad input: more codes than bits
357 | this.m = mm;
358 | return;
359 | }
360 | if ((y -= c[i]) < 0) {
361 | this.status = 2;
362 | this.m = mm;
363 | return;
364 | }
365 | c[i] += y;
366 |
367 | // Generate starting offsets into the value table for each length
368 | x[1] = j = 0;
369 | p = c;
370 | pidx = 1;
371 | xp = 2;
372 | while (--i > 0) // note that i == g from above
373 | x[xp++] = (j += p[pidx++]);
374 |
375 | // Make a table of values in order of bit lengths
376 | p = b;
377 | pidx = 0;
378 | i = 0;
379 | do {
380 | if ((j = p[pidx++]) != 0)
381 | v[x[j]++] = i;
382 | } while (++i < n);
383 | n = x[g]; // set n to length of v
384 |
385 | // Generate the Huffman codes and for each, make the table entries
386 | x[0] = i = 0; // first Huffman code is zero
387 | p = v;
388 | pidx = 0; // grab values in bit order
389 | h = -1; // no tables yet--level -1
390 | w = lx[0] = 0; // no bits decoded yet
391 | q = null; // ditto
392 | z = 0; // ditto
393 |
394 | // go through the bit lengths (k already is bits in shortest code)
395 | for (; k <= g; k++) {
396 | a = c[k];
397 | while (a-- > 0) {
398 | // here i is the Huffman code of length k bits for value p[pidx]
399 | // make tables up to required level
400 | while (k > w + lx[1 + h]) {
401 | w += lx[1 + h]; // add bits already decoded
402 | h++;
403 |
404 | // compute minimum size table less than or equal to *m bits
405 | z = (z = g - w) > mm ? mm : z; // upper limit
406 | if ((f = 1 << (j = k - w)) > a + 1) { // try a k-w bit table
407 | // too few codes for k-w bit table
408 | f -= a + 1; // deduct codes from patterns left
409 | xp = k;
410 | while (++j < z) { // try smaller tables up to z bits
411 | if ((f <<= 1) <= c[++xp])
412 | break; // enough codes to use up j bits
413 | f -= c[xp]; // else deduct codes from patterns
414 | }
415 | }
416 | if (w + j > el && w < el)
417 | j = el - w; // make EOB code end at table
418 | z = 1 << j; // table entries for j-bit table
419 | lx[1 + h] = j; // set table size in stack
420 |
421 | // allocate and link in new table
422 | q = new Array(z);
423 | for (o = 0; o < z; o++) {
424 | q[o] = new zip_HuftNode();
425 | }
426 |
427 | if (tail == null)
428 | tail = this.root = new zip_HuftList();
429 | else
430 | tail = tail.next = new zip_HuftList();
431 | tail.next = null;
432 | tail.list = q;
433 | u[h] = q; // table starts after link
434 |
435 | /* connect to last table, if there is one */
436 | if (h > 0) {
437 | x[h] = i; // save pattern for backing up
438 | r.b = lx[h]; // bits to dump before this table
439 | r.e = 16 + j; // bits in this table
440 | r.t = q; // pointer to this table
441 | j = (i & ((1 << w) - 1)) >> (w - lx[h]);
442 | u[h - 1][j].e = r.e;
443 | u[h - 1][j].b = r.b;
444 | u[h - 1][j].n = r.n;
445 | u[h - 1][j].t = r.t;
446 | }
447 | }
448 |
449 | // set up table entry in r
450 | r.b = k - w;
451 | if (pidx >= n)
452 | r.e = 99; // out of values--invalid code
453 | else if (p[pidx] < s) {
454 | r.e = (p[pidx] < 256 ? 16 : 15); // 256 is end-of-block code
455 | r.n = p[pidx++]; // simple code is just the value
456 | } else {
457 | r.e = e[p[pidx] - s]; // non-simple--look up in lists
458 | r.n = d[p[pidx++] - s];
459 | }
460 |
461 | // fill code-like entries with r //
462 | f = 1 << (k - w);
463 | for (j = i >> w; j < z; j += f) {
464 | q[j].e = r.e;
465 | q[j].b = r.b;
466 | q[j].n = r.n;
467 | q[j].t = r.t;
468 | }
469 |
470 | // backwards increment the k-bit code i
471 | for (j = 1 << (k - 1); (i & j) != 0; j >>= 1)
472 | i ^= j;
473 | i ^= j;
474 |
475 | // backup over finished tables
476 | while ((i & ((1 << w) - 1)) != x[h]) {
477 | w -= lx[h]; // don't need to update q
478 | h--;
479 | }
480 | }
481 | }
482 |
483 | /* return actual size of base table */
484 | this.m = lx[1];
485 |
486 | /* Return true (1) if we were given an incomplete table */
487 | this.status = ((y != 0 && g != 1) ? 1 : 0);
488 | }
489 | /* end of constructor */
490 | }
491 |
492 |
493 | /* routines (inflate) */
494 |
495 | var zip_GET_BYTE = function () {
496 | if (zip_inflate_data.length == zip_inflate_pos)
497 | return -1;
498 | var charcode = zip_inflate_data.charCodeAt(zip_inflate_pos++);
499 | return charcode & 0xff;
500 | }
501 |
502 | var zip_NEEDBITS = function (n) {
503 | while (zip_bit_len < n) {
504 | zip_bit_buf |= zip_GET_BYTE() << zip_bit_len;
505 | zip_bit_len += 8;
506 | }
507 | }
508 |
509 | var zip_GETBITS = function (n) {
510 | return zip_bit_buf & zip_MASK_BITS[n];
511 | }
512 |
513 | var zip_DUMPBITS = function (n) {
514 | zip_bit_buf >>= n;
515 | zip_bit_len -= n;
516 | }
517 |
518 | var zip_inflate_codes = function (buff, off, size) {
519 | /* inflate (decompress) the codes in a deflated (compressed) block.
520 | Return an error code or zero if it all goes ok. */
521 | var e; // table entry flag/number of extra bits
522 | var t; // (zip_HuftNode) pointer to table entry
523 | var n;
524 |
525 | if (size == 0)
526 | return 0;
527 |
528 | // inflate the coded data
529 | n = 0;
530 | for (; ;) { // do until end of block
531 | zip_NEEDBITS(zip_bl);
532 | t = zip_tl.list[zip_GETBITS(zip_bl)];
533 | e = t.e;
534 | while (e > 16) {
535 | if (e == 99)
536 | return -1;
537 | zip_DUMPBITS(t.b);
538 | e -= 16;
539 | zip_NEEDBITS(e);
540 | t = t.t[zip_GETBITS(e)];
541 | e = t.e;
542 | }
543 | zip_DUMPBITS(t.b);
544 |
545 | if (e == 16) { // then it's a literal
546 | zip_wp &= zip_WSIZE - 1;
547 | buff[off + n++] = zip_slide[zip_wp++] = t.n;
548 | if (n == size)
549 | return size;
550 | continue;
551 | }
552 |
553 | // exit if end of block
554 | if (e == 15)
555 | break;
556 |
557 | // it's an EOB or a length
558 |
559 | // get length of block to copy
560 | zip_NEEDBITS(e);
561 | zip_copy_leng = t.n + zip_GETBITS(e);
562 | zip_DUMPBITS(e);
563 |
564 | // decode distance of block to copy
565 | zip_NEEDBITS(zip_bd);
566 | t = zip_td.list[zip_GETBITS(zip_bd)];
567 | e = t.e;
568 |
569 | while (e > 16) {
570 | if (e == 99)
571 | return -1;
572 | zip_DUMPBITS(t.b);
573 | e -= 16;
574 | zip_NEEDBITS(e);
575 | t = t.t[zip_GETBITS(e)];
576 | e = t.e;
577 | }
578 | zip_DUMPBITS(t.b);
579 | zip_NEEDBITS(e);
580 | zip_copy_dist = zip_wp - t.n - zip_GETBITS(e);
581 | zip_DUMPBITS(e);
582 |
583 | // do the copy
584 | while (zip_copy_leng > 0 && n < size) {
585 | zip_copy_leng--;
586 | zip_copy_dist &= zip_WSIZE - 1;
587 | zip_wp &= zip_WSIZE - 1;
588 | buff[off + n++] = zip_slide[zip_wp++]
589 | = zip_slide[zip_copy_dist++];
590 | }
591 |
592 | if (n == size)
593 | return size;
594 | }
595 |
596 | zip_method = -1; // done
597 | return n;
598 | }
599 |
600 | var zip_inflate_stored = function (buff, off, size) {
601 | /* "decompress" an inflated type 0 (stored) block. */
602 | var n;
603 |
604 | // go to byte boundary
605 | n = zip_bit_len & 7;
606 | zip_DUMPBITS(n);
607 |
608 | // get the length and its complement
609 | zip_NEEDBITS(16);
610 | n = zip_GETBITS(16);
611 | zip_DUMPBITS(16);
612 | zip_NEEDBITS(16);
613 | if (n != ((~zip_bit_buf) & 0xffff))
614 | return -1; // error in compressed data
615 | zip_DUMPBITS(16);
616 |
617 | // read and output the compressed data
618 | zip_copy_leng = n;
619 |
620 | n = 0;
621 | while (zip_copy_leng > 0 && n < size) {
622 | zip_copy_leng--;
623 | zip_wp &= zip_WSIZE - 1;
624 | zip_NEEDBITS(8);
625 | buff[off + n++] = zip_slide[zip_wp++] =
626 | zip_GETBITS(8);
627 | zip_DUMPBITS(8);
628 | }
629 |
630 | if (zip_copy_leng == 0)
631 | zip_method = -1; // done
632 | return n;
633 | }
634 |
635 | var zip_inflate_fixed = function (buff, off, size) {
636 | /* decompress an inflated type 1 (fixed Huffman codes) block. We should
637 | either replace this with a custom decoder, or at least precompute the
638 | Huffman tables. */
639 |
640 | // if first time, set up tables for fixed blocks
641 | if (zip_fixed_tl == null) {
642 | var i; // temporary variable
643 | var l = new Array(288); // length list for huft_build
644 | var h; // zip_HuftBuild
645 |
646 | // literal table
647 | for (i = 0; i < 144; i++)
648 | l[i] = 8;
649 | for (; i < 256; i++)
650 | l[i] = 9;
651 | for (; i < 280; i++)
652 | l[i] = 7;
653 | for (; i < 288; i++) // make a complete, but wrong code set
654 | l[i] = 8;
655 | zip_fixed_bl = 7;
656 |
657 | h = new zip_HuftBuild(l, 288, 257, zip_cplens, zip_cplext,
658 | zip_fixed_bl);
659 | if (h.status != 0) {
660 | alert("HufBuild error: " + h.status);
661 | return -1;
662 | }
663 | zip_fixed_tl = h.root;
664 | zip_fixed_bl = h.m;
665 |
666 | // distance table
667 | for (i = 0; i < 30; i++) // make an incomplete code set
668 | l[i] = 5;
669 | zip_fixed_bd = 5;
670 |
671 | h = new zip_HuftBuild(l, 30, 0, zip_cpdist, zip_cpdext, zip_fixed_bd);
672 | if (h.status > 1) {
673 | zip_fixed_tl = null;
674 | alert("HufBuild error: " + h.status);
675 | return -1;
676 | }
677 | zip_fixed_td = h.root;
678 | zip_fixed_bd = h.m;
679 | }
680 |
681 | zip_tl = zip_fixed_tl;
682 | zip_td = zip_fixed_td;
683 | zip_bl = zip_fixed_bl;
684 | zip_bd = zip_fixed_bd;
685 | return zip_inflate_codes(buff, off, size);
686 | }
687 |
688 | var zip_inflate_dynamic = function (buff, off, size) {
689 | // decompress an inflated type 2 (dynamic Huffman codes) block.
690 | var i; // temporary variables
691 | var j;
692 | var l; // last length
693 | var n; // number of lengths to get
694 | var t; // (zip_HuftNode) literal/length code table
695 | var nb; // number of bit length codes
696 | var nl; // number of literal/length codes
697 | var nd; // number of distance codes
698 | var ll = new Array(286 + 30); // literal/length and distance code lengths
699 | var h; // (zip_HuftBuild)
700 |
701 | for (i = 0; i < ll.length; i++)
702 | ll[i] = 0;
703 |
704 | // read in table lengths
705 | zip_NEEDBITS(5);
706 | nl = 257 + zip_GETBITS(5); // number of literal/length codes
707 | zip_DUMPBITS(5);
708 | zip_NEEDBITS(5);
709 | nd = 1 + zip_GETBITS(5); // number of distance codes
710 | zip_DUMPBITS(5);
711 | zip_NEEDBITS(4);
712 | nb = 4 + zip_GETBITS(4); // number of bit length codes
713 | zip_DUMPBITS(4);
714 | if (nl > 286 || nd > 30)
715 | return -1; // bad lengths
716 |
717 | // read in bit-length-code lengths
718 | for (j = 0; j < nb; j++) {
719 | zip_NEEDBITS(3);
720 | ll[zip_border[j]] = zip_GETBITS(3);
721 | zip_DUMPBITS(3);
722 | }
723 | for (; j < 19; j++)
724 | ll[zip_border[j]] = 0;
725 |
726 | // build decoding table for trees--single level, 7 bit lookup
727 | zip_bl = 7;
728 | h = new zip_HuftBuild(ll, 19, 19, null, null, zip_bl);
729 | if (h.status != 0)
730 | return -1; // incomplete code set
731 |
732 | zip_tl = h.root;
733 | zip_bl = h.m;
734 |
735 | // read in literal and distance code lengths
736 | n = nl + nd;
737 | i = l = 0;
738 | while (i < n) {
739 | zip_NEEDBITS(zip_bl);
740 | t = zip_tl.list[zip_GETBITS(zip_bl)];
741 | j = t.b;
742 | zip_DUMPBITS(j);
743 | j = t.n;
744 | if (j < 16) // length of code in bits (0..15)
745 | ll[i++] = l = j; // save last length in l
746 | else if (j == 16) { // repeat last length 3 to 6 times
747 | zip_NEEDBITS(2);
748 | j = 3 + zip_GETBITS(2);
749 | zip_DUMPBITS(2);
750 | if (i + j > n)
751 | return -1;
752 | while (j-- > 0)
753 | ll[i++] = l;
754 | } else if (j == 17) { // 3 to 10 zero length codes
755 | zip_NEEDBITS(3);
756 | j = 3 + zip_GETBITS(3);
757 | zip_DUMPBITS(3);
758 | if (i + j > n)
759 | return -1;
760 | while (j-- > 0)
761 | ll[i++] = 0;
762 | l = 0;
763 | } else { // j == 18: 11 to 138 zero length codes
764 | zip_NEEDBITS(7);
765 | j = 11 + zip_GETBITS(7);
766 | zip_DUMPBITS(7);
767 | if (i + j > n)
768 | return -1;
769 | while (j-- > 0)
770 | ll[i++] = 0;
771 | l = 0;
772 | }
773 | }
774 |
775 | // build the decoding tables for literal/length and distance codes
776 | zip_bl = zip_lbits;
777 | h = new zip_HuftBuild(ll, nl, 257, zip_cplens, zip_cplext, zip_bl);
778 | if (zip_bl == 0) // no literals or lengths
779 | h.status = 1;
780 | if (h.status != 0) {
781 | if (h.status == 1)
782 | ;// **incomplete literal tree**
783 | return -1; // incomplete code set
784 | }
785 | zip_tl = h.root;
786 | zip_bl = h.m;
787 |
788 | for (i = 0; i < nd; i++)
789 | ll[i] = ll[i + nl];
790 | zip_bd = zip_dbits;
791 | h = new zip_HuftBuild(ll, nd, 0, zip_cpdist, zip_cpdext, zip_bd);
792 | zip_td = h.root;
793 | zip_bd = h.m;
794 |
795 | if (zip_bd == 0 && nl > 257) { // lengths but no distances
796 | // **incomplete distance tree**
797 | return -1;
798 | }
799 |
800 | if (h.status == 1) {
801 | ;// **incomplete distance tree**
802 | }
803 | if (h.status != 0)
804 | return -1;
805 |
806 | // decompress until an end-of-block code
807 | return zip_inflate_codes(buff, off, size);
808 | }
809 |
810 | var zip_inflate_start = function () {
811 | var i;
812 |
813 | if (zip_slide == null)
814 | zip_slide = new Array(2 * zip_WSIZE);
815 | zip_wp = 0;
816 | zip_bit_buf = 0;
817 | zip_bit_len = 0;
818 | zip_method = -1;
819 | zip_eof = false;
820 | zip_copy_leng = zip_copy_dist = 0;
821 | zip_tl = null;
822 | }
823 |
824 | var zip_inflate_internal = function (buff, off, size) {
825 | // decompress an inflated entry
826 | var n, i;
827 |
828 | n = 0;
829 | while (n < size) {
830 | if (zip_eof && zip_method == -1)
831 | return n;
832 |
833 | if (zip_copy_leng > 0) {
834 | if (zip_method != zip_STORED_BLOCK) {
835 | // STATIC_TREES or DYN_TREES
836 | while (zip_copy_leng > 0 && n < size) {
837 | zip_copy_leng--;
838 | zip_copy_dist &= zip_WSIZE - 1;
839 | zip_wp &= zip_WSIZE - 1;
840 | buff[off + n++] = zip_slide[zip_wp++] =
841 | zip_slide[zip_copy_dist++];
842 | }
843 | } else {
844 | while (zip_copy_leng > 0 && n < size) {
845 | zip_copy_leng--;
846 | zip_wp &= zip_WSIZE - 1;
847 | zip_NEEDBITS(8);
848 | buff[off + n++] = zip_slide[zip_wp++] = zip_GETBITS(8);
849 | zip_DUMPBITS(8);
850 | }
851 | if (zip_copy_leng == 0)
852 | zip_method = -1; // done
853 | }
854 | if (n == size)
855 | return n;
856 | }
857 |
858 | if (zip_method == -1) {
859 | if (zip_eof)
860 | break;
861 |
862 | // read in last block bit
863 | zip_NEEDBITS(1);
864 | if (zip_GETBITS(1) != 0)
865 | zip_eof = true;
866 | zip_DUMPBITS(1);
867 |
868 | // read in block type
869 | zip_NEEDBITS(2);
870 | zip_method = zip_GETBITS(2);
871 | zip_DUMPBITS(2);
872 | zip_tl = null;
873 | zip_copy_leng = 0;
874 | }
875 |
876 | switch (zip_method) {
877 | case 0: // zip_STORED_BLOCK
878 | i = zip_inflate_stored(buff, off + n, size - n);
879 | break;
880 |
881 | case 1: // zip_STATIC_TREES
882 | if (zip_tl != null)
883 | i = zip_inflate_codes(buff, off + n, size - n);
884 | else
885 | i = zip_inflate_fixed(buff, off + n, size - n);
886 | break;
887 |
888 | case 2: // zip_DYN_TREES
889 | if (zip_tl != null)
890 | i = zip_inflate_codes(buff, off + n, size - n);
891 | else
892 | i = zip_inflate_dynamic(buff, off + n, size - n);
893 | break;
894 |
895 | default: // error
896 | i = -1;
897 | break;
898 | }
899 |
900 | if (i == -1) {
901 | if (zip_eof)
902 | return 0;
903 | return -1;
904 | }
905 | n += i;
906 | }
907 | return n;
908 | }
909 |
910 | var zip_inflate = function (str) {
911 | var i, j;
912 |
913 | zip_inflate_start();
914 | zip_inflate_data = str;
915 | zip_inflate_pos = 0;
916 |
917 | var buff = new Array(1024);
918 | var aout = [];
919 | while ((i = zip_inflate_internal(buff, 0, buff.length)) > 0) {
920 | var cbuf = new Array(i);
921 | for (j = 0; j < i; j++) {
922 | cbuf[j] = String.fromCharCode(buff[j]);
923 | }
924 | aout[aout.length] = cbuf.join("");
925 | }
926 | zip_inflate_data = null; // G.C.
927 | return aout.join("");
928 | }
929 |
930 | if (!ctx.RawDeflate) ctx.RawDeflate = {};
931 | ctx.RawDeflate.inflate = zip_inflate;
932 |
933 | })(window);
934 |
935 | function unzip(b64Data) {
936 | var strData;
937 | if (!window.atob) {
938 | // strData = $.base64.atob(b64Data)
939 | } else {
940 | // strData = atob(b64Data)
941 | }
942 | var charData;
943 | if (!Array.prototype.map) {
944 | // charData =iemap( strData.split(''),function (x) { return x.charCodeAt(0); },null);
945 | } else {
946 | // charData = strData.split('').map(function (x) { return x.charCodeAt(0); });
947 | }
948 |
949 | strData = window.Base64_Zip.btou(window.RawDeflate.inflate(window.Base64_Zip.fromBase64(b64Data)));
950 | // var binData = new Uint8Array(charData);
951 | // var data = pako.inflate(binData);
952 | // strData = String.fromCharCode.apply(null, new Uint16Array(data));
953 | return strData;
954 | }
955 |
956 | var CryptoJS = CryptoJS || function (u, p) {
957 | var d = {}
958 | , l = d.lib = {}
959 | , s = function () {
960 | }
961 | , t = l.Base = {
962 | extend: function (a) {
963 | s.prototype = this;
964 | var c = new s;
965 | a && c.mixIn(a);
966 | c.hasOwnProperty("init") || (c.init = function () {
967 | c.$super.init.apply(this, arguments)
968 | }
969 | );
970 | c.init.prototype = c;
971 | c.$super = this;
972 | return c
973 | },
974 | create: function () {
975 | var a = this.extend();
976 | a.init.apply(a, arguments);
977 | return a
978 | },
979 | init: function () {
980 | },
981 | mixIn: function (a) {
982 | for (var c in a)
983 | a.hasOwnProperty(c) && (this[c] = a[c]);
984 | a.hasOwnProperty("toString") && (this.toString = a.toString)
985 | },
986 | clone: function () {
987 | return this.init.prototype.extend(this)
988 | }
989 | }
990 | , r = l.WordArray = t.extend({
991 | init: function (a, c) {
992 | a = this.words = a || [];
993 | this.sigBytes = c != p ? c : 4 * a.length
994 | },
995 | toString: function (a) {
996 | return (a || v).stringify(this)
997 | },
998 | concat: function (a) {
999 | var c = this.words
1000 | , e = a.words
1001 | , j = this.sigBytes;
1002 | a = a.sigBytes;
1003 | this.clamp();
1004 | if (j % 4)
1005 | for (var k = 0; k < a; k++)
1006 | c[j + k >>> 2] |= (e[k >>> 2] >>> 24 - 8 * (k % 4) & 255) << 24 - 8 * ((j + k) % 4);
1007 | else if (65535 < e.length)
1008 | for (k = 0; k < a; k += 4)
1009 | c[j + k >>> 2] = e[k >>> 2];
1010 | else
1011 | c.push.apply(c, e);
1012 | this.sigBytes += a;
1013 | return this
1014 | },
1015 | clamp: function () {
1016 | var a = this.words
1017 | , c = this.sigBytes;
1018 | a[c >>> 2] &= 4294967295 << 32 - 8 * (c % 4);
1019 | a.length = u.ceil(c / 4)
1020 | },
1021 | clone: function () {
1022 | var a = t.clone.call(this);
1023 | a.words = this.words.slice(0);
1024 | return a
1025 | },
1026 | random: function (a) {
1027 | for (var c = [], e = 0; e < a; e += 4)
1028 | c.push(4294967296 * u.random() | 0);
1029 | return new r.init(c, a)
1030 | }
1031 | })
1032 | , w = d.enc = {}
1033 | , v = w.Hex = {
1034 | stringify: function (a) {
1035 | var c = a.words;
1036 | a = a.sigBytes;
1037 | for (var e = [], j = 0; j < a; j++) {
1038 | var k = c[j >>> 2] >>> 24 - 8 * (j % 4) & 255;
1039 | e.push((k >>> 4).toString(16));
1040 | e.push((k & 15).toString(16))
1041 | }
1042 | return e.join("")
1043 | },
1044 | parse: function (a) {
1045 | for (var c = a.length, e = [], j = 0; j < c; j += 2)
1046 | e[j >>> 3] |= parseInt(a.substr(j, 2), 16) << 24 - 4 * (j % 8);
1047 | return new r.init(e, c / 2)
1048 | }
1049 | }
1050 | , b = w.Latin1 = {
1051 | stringify: function (a) {
1052 | var c = a.words;
1053 | a = a.sigBytes;
1054 | for (var e = [], j = 0; j < a; j++)
1055 | e.push(String.fromCharCode(c[j >>> 2] >>> 24 - 8 * (j % 4) & 255));
1056 | return e.join("")
1057 | },
1058 | parse: function (a) {
1059 | for (var c = a.length, e = [], j = 0; j < c; j++)
1060 | e[j >>> 2] |= (a.charCodeAt(j) & 255) << 24 - 8 * (j % 4);
1061 | return new r.init(e, c)
1062 | }
1063 | }
1064 | , x = w.Utf8 = {
1065 | stringify: function (a) {
1066 | try {
1067 | return decodeURIComponent(escape(b.stringify(a)))
1068 | } catch (c) {
1069 | throw Error("Malformed UTF-8 data");
1070 | }
1071 | },
1072 | parse: function (a) {
1073 | return b.parse(unescape(encodeURIComponent(a)))
1074 | }
1075 | }
1076 | , q = l.BufferedBlockAlgorithm = t.extend({
1077 | reset: function () {
1078 | this._data = new r.init;
1079 | this._nDataBytes = 0
1080 | },
1081 | _append: function (a) {
1082 | "string" == typeof a && (a = x.parse(a));
1083 | this._data.concat(a);
1084 | this._nDataBytes += a.sigBytes
1085 | },
1086 | _process: function (a) {
1087 | var c = this._data
1088 | , e = c.words
1089 | , j = c.sigBytes
1090 | , k = this.blockSize
1091 | , b = j / (4 * k)
1092 | , b = a ? u.ceil(b) : u.max((b | 0) - this._minBufferSize, 0);
1093 | a = b * k;
1094 | j = u.min(4 * a, j);
1095 | if (a) {
1096 | for (var q = 0; q < a; q += k)
1097 | this._doProcessBlock(e, q);
1098 | q = e.splice(0, a);
1099 | c.sigBytes -= j
1100 | }
1101 | return new r.init(q, j)
1102 | },
1103 | clone: function () {
1104 | var a = t.clone.call(this);
1105 | a._data = this._data.clone();
1106 | return a
1107 | },
1108 | _minBufferSize: 0
1109 | });
1110 | l.Hasher = q.extend({
1111 | cfg: t.extend(),
1112 | init: function (a) {
1113 | this.cfg = this.cfg.extend(a);
1114 | this.reset()
1115 | },
1116 | reset: function () {
1117 | q.reset.call(this);
1118 | this._doReset()
1119 | },
1120 | update: function (a) {
1121 | this._append(a);
1122 | this._process();
1123 | return this
1124 | },
1125 | finalize: function (a) {
1126 | a && this._append(a);
1127 | return this._doFinalize()
1128 | },
1129 | blockSize: 16,
1130 | _createHelper: function (a) {
1131 | return function (b, e) {
1132 | return (new a.init(e)).finalize(b)
1133 | }
1134 | },
1135 | _createHmacHelper: function (a) {
1136 | return function (b, e) {
1137 | return (new n.HMAC.init(a, e)).finalize(b)
1138 | }
1139 | }
1140 | });
1141 | var n = d.algo = {};
1142 | return d
1143 | }(Math);
1144 | (function () {
1145 | var u = CryptoJS
1146 | , p = u.lib.WordArray;
1147 | u.enc.Base64 = {
1148 | stringify: function (d) {
1149 | var l = d.words
1150 | , p = d.sigBytes
1151 | , t = this._map;
1152 | d.clamp();
1153 | d = [];
1154 | for (var r = 0; r < p; r += 3)
1155 | for (var w = (l[r >>> 2] >>> 24 - 8 * (r % 4) & 255) << 16 | (l[r + 1 >>> 2] >>> 24 - 8 * ((r + 1) % 4) & 255) << 8 | l[r + 2 >>> 2] >>> 24 - 8 * ((r + 2) % 4) & 255, v = 0; 4 > v && r + 0.75 * v < p; v++)
1156 | d.push(t.charAt(w >>> 6 * (3 - v) & 63));
1157 | if (l = t.charAt(64))
1158 | for (; d.length % 4;)
1159 | d.push(l);
1160 | return d.join("")
1161 | },
1162 | parse: function (d) {
1163 | var l = d.length
1164 | , s = this._map
1165 | , t = s.charAt(64);
1166 | t && (t = d.indexOf(t),
1167 | -1 != t && (l = t));
1168 | for (var t = [], r = 0, w = 0; w < l; w++)
1169 | if (w % 4) {
1170 | var v = s.indexOf(d.charAt(w - 1)) << 2 * (w % 4)
1171 | , b = s.indexOf(d.charAt(w)) >>> 6 - 2 * (w % 4);
1172 | t[r >>> 2] |= (v | b) << 24 - 8 * (r % 4);
1173 | r++
1174 | }
1175 | return p.create(t, r)
1176 | },
1177 | _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
1178 | }
1179 | }
1180 | )();
1181 | (function (u) {
1182 | function p(b, n, a, c, e, j, k) {
1183 | b = b + (n & a | ~n & c) + e + k;
1184 | return (b << j | b >>> 32 - j) + n
1185 | }
1186 |
1187 | function d(b, n, a, c, e, j, k) {
1188 | b = b + (n & c | a & ~c) + e + k;
1189 | return (b << j | b >>> 32 - j) + n
1190 | }
1191 |
1192 | function l(b, n, a, c, e, j, k) {
1193 | b = b + (n ^ a ^ c) + e + k;
1194 | return (b << j | b >>> 32 - j) + n
1195 | }
1196 |
1197 | function s(b, n, a, c, e, j, k) {
1198 | b = b + (a ^ (n | ~c)) + e + k;
1199 | return (b << j | b >>> 32 - j) + n
1200 | }
1201 |
1202 | for (var t = CryptoJS, r = t.lib, w = r.WordArray, v = r.Hasher, r = t.algo, b = [], x = 0; 64 > x; x++)
1203 | b[x] = 4294967296 * u.abs(u.sin(x + 1)) | 0;
1204 | r = r.MD5 = v.extend({
1205 | _doReset: function () {
1206 | this._hash = new w.init([1732584193, 4023233417, 2562383102, 271733878])
1207 | },
1208 | _doProcessBlock: function (q, n) {
1209 | for (var a = 0; 16 > a; a++) {
1210 | var c = n + a
1211 | , e = q[c];
1212 | q[c] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360
1213 | }
1214 | var a = this._hash.words
1215 | , c = q[n + 0]
1216 | , e = q[n + 1]
1217 | , j = q[n + 2]
1218 | , k = q[n + 3]
1219 | , z = q[n + 4]
1220 | , r = q[n + 5]
1221 | , t = q[n + 6]
1222 | , w = q[n + 7]
1223 | , v = q[n + 8]
1224 | , A = q[n + 9]
1225 | , B = q[n + 10]
1226 | , C = q[n + 11]
1227 | , u = q[n + 12]
1228 | , D = q[n + 13]
1229 | , E = q[n + 14]
1230 | , x = q[n + 15]
1231 | , f = a[0]
1232 | , m = a[1]
1233 | , g = a[2]
1234 | , h = a[3]
1235 | , f = p(f, m, g, h, c, 7, b[0])
1236 | , h = p(h, f, m, g, e, 12, b[1])
1237 | , g = p(g, h, f, m, j, 17, b[2])
1238 | , m = p(m, g, h, f, k, 22, b[3])
1239 | , f = p(f, m, g, h, z, 7, b[4])
1240 | , h = p(h, f, m, g, r, 12, b[5])
1241 | , g = p(g, h, f, m, t, 17, b[6])
1242 | , m = p(m, g, h, f, w, 22, b[7])
1243 | , f = p(f, m, g, h, v, 7, b[8])
1244 | , h = p(h, f, m, g, A, 12, b[9])
1245 | , g = p(g, h, f, m, B, 17, b[10])
1246 | , m = p(m, g, h, f, C, 22, b[11])
1247 | , f = p(f, m, g, h, u, 7, b[12])
1248 | , h = p(h, f, m, g, D, 12, b[13])
1249 | , g = p(g, h, f, m, E, 17, b[14])
1250 | , m = p(m, g, h, f, x, 22, b[15])
1251 | , f = d(f, m, g, h, e, 5, b[16])
1252 | , h = d(h, f, m, g, t, 9, b[17])
1253 | , g = d(g, h, f, m, C, 14, b[18])
1254 | , m = d(m, g, h, f, c, 20, b[19])
1255 | , f = d(f, m, g, h, r, 5, b[20])
1256 | , h = d(h, f, m, g, B, 9, b[21])
1257 | , g = d(g, h, f, m, x, 14, b[22])
1258 | , m = d(m, g, h, f, z, 20, b[23])
1259 | , f = d(f, m, g, h, A, 5, b[24])
1260 | , h = d(h, f, m, g, E, 9, b[25])
1261 | , g = d(g, h, f, m, k, 14, b[26])
1262 | , m = d(m, g, h, f, v, 20, b[27])
1263 | , f = d(f, m, g, h, D, 5, b[28])
1264 | , h = d(h, f, m, g, j, 9, b[29])
1265 | , g = d(g, h, f, m, w, 14, b[30])
1266 | , m = d(m, g, h, f, u, 20, b[31])
1267 | , f = l(f, m, g, h, r, 4, b[32])
1268 | , h = l(h, f, m, g, v, 11, b[33])
1269 | , g = l(g, h, f, m, C, 16, b[34])
1270 | , m = l(m, g, h, f, E, 23, b[35])
1271 | , f = l(f, m, g, h, e, 4, b[36])
1272 | , h = l(h, f, m, g, z, 11, b[37])
1273 | , g = l(g, h, f, m, w, 16, b[38])
1274 | , m = l(m, g, h, f, B, 23, b[39])
1275 | , f = l(f, m, g, h, D, 4, b[40])
1276 | , h = l(h, f, m, g, c, 11, b[41])
1277 | , g = l(g, h, f, m, k, 16, b[42])
1278 | , m = l(m, g, h, f, t, 23, b[43])
1279 | , f = l(f, m, g, h, A, 4, b[44])
1280 | , h = l(h, f, m, g, u, 11, b[45])
1281 | , g = l(g, h, f, m, x, 16, b[46])
1282 | , m = l(m, g, h, f, j, 23, b[47])
1283 | , f = s(f, m, g, h, c, 6, b[48])
1284 | , h = s(h, f, m, g, w, 10, b[49])
1285 | , g = s(g, h, f, m, E, 15, b[50])
1286 | , m = s(m, g, h, f, r, 21, b[51])
1287 | , f = s(f, m, g, h, u, 6, b[52])
1288 | , h = s(h, f, m, g, k, 10, b[53])
1289 | , g = s(g, h, f, m, B, 15, b[54])
1290 | , m = s(m, g, h, f, e, 21, b[55])
1291 | , f = s(f, m, g, h, v, 6, b[56])
1292 | , h = s(h, f, m, g, x, 10, b[57])
1293 | , g = s(g, h, f, m, t, 15, b[58])
1294 | , m = s(m, g, h, f, D, 21, b[59])
1295 | , f = s(f, m, g, h, z, 6, b[60])
1296 | , h = s(h, f, m, g, C, 10, b[61])
1297 | , g = s(g, h, f, m, j, 15, b[62])
1298 | , m = s(m, g, h, f, A, 21, b[63]);
1299 | a[0] = a[0] + f | 0;
1300 | a[1] = a[1] + m | 0;
1301 | a[2] = a[2] + g | 0;
1302 | a[3] = a[3] + h | 0
1303 | },
1304 | _doFinalize: function () {
1305 | var b = this._data
1306 | , n = b.words
1307 | , a = 8 * this._nDataBytes
1308 | , c = 8 * b.sigBytes;
1309 | n[c >>> 5] |= 128 << 24 - c % 32;
1310 | var e = u.floor(a / 4294967296);
1311 | n[(c + 64 >>> 9 << 4) + 15] = (e << 8 | e >>> 24) & 16711935 | (e << 24 | e >>> 8) & 4278255360;
1312 | n[(c + 64 >>> 9 << 4) + 14] = (a << 8 | a >>> 24) & 16711935 | (a << 24 | a >>> 8) & 4278255360;
1313 | b.sigBytes = 4 * (n.length + 1);
1314 | this._process();
1315 | b = this._hash;
1316 | n = b.words;
1317 | for (a = 0; 4 > a; a++)
1318 | c = n[a],
1319 | n[a] = (c << 8 | c >>> 24) & 16711935 | (c << 24 | c >>> 8) & 4278255360;
1320 | return b
1321 | },
1322 | clone: function () {
1323 | var b = v.clone.call(this);
1324 | b._hash = this._hash.clone();
1325 | return b
1326 | }
1327 | });
1328 | t.MD5 = v._createHelper(r);
1329 | t.HmacMD5 = v._createHmacHelper(r)
1330 | }
1331 | )(Math);
1332 | (function () {
1333 | var u = CryptoJS
1334 | , p = u.lib
1335 | , d = p.Base
1336 | , l = p.WordArray
1337 | , p = u.algo
1338 | , s = p.EvpKDF = d.extend({
1339 | cfg: d.extend({
1340 | keySize: 4,
1341 | hasher: p.MD5,
1342 | iterations: 1
1343 | }),
1344 | init: function (d) {
1345 | this.cfg = this.cfg.extend(d)
1346 | },
1347 | compute: function (d, r) {
1348 | for (var p = this.cfg, s = p.hasher.create(), b = l.create(), u = b.words, q = p.keySize, p = p.iterations; u.length < q;) {
1349 | n && s.update(n);
1350 | var n = s.update(d).finalize(r);
1351 | s.reset();
1352 | for (var a = 1; a < p; a++)
1353 | n = s.finalize(n),
1354 | s.reset();
1355 | b.concat(n)
1356 | }
1357 | b.sigBytes = 4 * q;
1358 | return b
1359 | }
1360 | });
1361 | u.EvpKDF = function (d, l, p) {
1362 | return s.create(p).compute(d, l)
1363 | }
1364 | }
1365 | )();
1366 | CryptoJS.lib.Cipher || function (u) {
1367 | var p = CryptoJS
1368 | , d = p.lib
1369 | , l = d.Base
1370 | , s = d.WordArray
1371 | , t = d.BufferedBlockAlgorithm
1372 | , r = p.enc.Base64
1373 | , w = p.algo.EvpKDF
1374 | , v = d.Cipher = t.extend({
1375 | cfg: l.extend(),
1376 | createEncryptor: function (e, a) {
1377 | return this.create(this._ENC_XFORM_MODE, e, a)
1378 | },
1379 | createDecryptor: function (e, a) {
1380 | return this.create(this._DEC_XFORM_MODE, e, a)
1381 | },
1382 | init: function (e, a, b) {
1383 | this.cfg = this.cfg.extend(b);
1384 | this._xformMode = e;
1385 | this._key = a;
1386 | this.reset()
1387 | },
1388 | reset: function () {
1389 | t.reset.call(this);
1390 | this._doReset()
1391 | },
1392 | process: function (e) {
1393 | this._append(e);
1394 | return this._process()
1395 | },
1396 | finalize: function (e) {
1397 | e && this._append(e);
1398 | return this._doFinalize()
1399 | },
1400 | keySize: 4,
1401 | ivSize: 4,
1402 | _ENC_XFORM_MODE: 1,
1403 | _DEC_XFORM_MODE: 2,
1404 | _createHelper: function (e) {
1405 | return {
1406 | encrypt: function (b, k, d) {
1407 | return ("string" == typeof k ? c : a).encrypt(e, b, k, d)
1408 | },
1409 | decrypt: function (b, k, d) {
1410 | return ("string" == typeof k ? c : a).decrypt(e, b, k, d)
1411 | }
1412 | }
1413 | }
1414 | });
1415 | d.StreamCipher = v.extend({
1416 | _doFinalize: function () {
1417 | return this._process(!0)
1418 | },
1419 | blockSize: 1
1420 | });
1421 | var b = p.mode = {}
1422 | , x = function (e, a, b) {
1423 | var c = this._iv;
1424 | c ? this._iv = u : c = this._prevBlock;
1425 | for (var d = 0; d < b; d++)
1426 | e[a + d] ^= c[d]
1427 | }
1428 | , q = (d.BlockCipherMode = l.extend({
1429 | createEncryptor: function (e, a) {
1430 | return this.Encryptor.create(e, a)
1431 | },
1432 | createDecryptor: function (e, a) {
1433 | return this.Decryptor.create(e, a)
1434 | },
1435 | init: function (e, a) {
1436 | this._cipher = e;
1437 | this._iv = a
1438 | }
1439 | })).extend();
1440 | q.Encryptor = q.extend({
1441 | processBlock: function (e, a) {
1442 | var b = this._cipher
1443 | , c = b.blockSize;
1444 | x.call(this, e, a, c);
1445 | b.encryptBlock(e, a);
1446 | this._prevBlock = e.slice(a, a + c)
1447 | }
1448 | });
1449 | q.Decryptor = q.extend({
1450 | processBlock: function (e, a) {
1451 | var b = this._cipher
1452 | , c = b.blockSize
1453 | , d = e.slice(a, a + c);
1454 | b.decryptBlock(e, a);
1455 | x.call(this, e, a, c);
1456 | this._prevBlock = d
1457 | }
1458 | });
1459 | b = b.CBC = q;
1460 | q = (p.pad = {}).Pkcs7 = {
1461 | pad: function (a, b) {
1462 | for (var c = 4 * b, c = c - a.sigBytes % c, d = c << 24 | c << 16 | c << 8 | c, l = [], n = 0; n < c; n += 4)
1463 | l.push(d);
1464 | c = s.create(l, c);
1465 | a.concat(c)
1466 | },
1467 | unpad: function (a) {
1468 | a.sigBytes -= a.words[a.sigBytes - 1 >>> 2] & 255
1469 | }
1470 | };
1471 | d.BlockCipher = v.extend({
1472 | cfg: v.cfg.extend({
1473 | mode: b,
1474 | padding: q
1475 | }),
1476 | reset: function () {
1477 | v.reset.call(this);
1478 | var a = this.cfg
1479 | , b = a.iv
1480 | , a = a.mode;
1481 | if (this._xformMode == this._ENC_XFORM_MODE)
1482 | var c = a.createEncryptor;
1483 | else
1484 | c = a.createDecryptor,
1485 | this._minBufferSize = 1;
1486 | this._mode = c.call(a, this, b && b.words)
1487 | },
1488 | _doProcessBlock: function (a, b) {
1489 | this._mode.processBlock(a, b)
1490 | },
1491 | _doFinalize: function () {
1492 | var a = this.cfg.padding;
1493 | if (this._xformMode == this._ENC_XFORM_MODE) {
1494 | a.pad(this._data, this.blockSize);
1495 | var b = this._process(!0)
1496 | } else
1497 | b = this._process(!0),
1498 | a.unpad(b);
1499 | return b
1500 | },
1501 | blockSize: 4
1502 | });
1503 | var n = d.CipherParams = l.extend({
1504 | init: function (a) {
1505 | this.mixIn(a)
1506 | },
1507 | toString: function (a) {
1508 | return (a || this.formatter).stringify(this)
1509 | }
1510 | })
1511 | , b = (p.format = {}).OpenSSL = {
1512 | stringify: function (a) {
1513 | var b = a.ciphertext;
1514 | a = a.salt;
1515 | return (a ? s.create([1398893684, 1701076831]).concat(a).concat(b) : b).toString(r)
1516 | },
1517 | parse: function (a) {
1518 | a = r.parse(a);
1519 | var b = a.words;
1520 | if (1398893684 == b[0] && 1701076831 == b[1]) {
1521 | var c = s.create(b.slice(2, 4));
1522 | b.splice(0, 4);
1523 | a.sigBytes -= 16
1524 | }
1525 | return n.create({
1526 | ciphertext: a,
1527 | salt: c
1528 | })
1529 | }
1530 | }
1531 | , a = d.SerializableCipher = l.extend({
1532 | cfg: l.extend({
1533 | format: b
1534 | }),
1535 | encrypt: function (a, b, c, d) {
1536 | d = this.cfg.extend(d);
1537 | var l = a.createEncryptor(c, d);
1538 | b = l.finalize(b);
1539 | l = l.cfg;
1540 | return n.create({
1541 | ciphertext: b,
1542 | key: c,
1543 | iv: l.iv,
1544 | algorithm: a,
1545 | mode: l.mode,
1546 | padding: l.padding,
1547 | blockSize: a.blockSize,
1548 | formatter: d.format
1549 | })
1550 | },
1551 | decrypt: function (a, b, c, d) {
1552 | d = this.cfg.extend(d);
1553 | b = this._parse(b, d.format);
1554 | return a.createDecryptor(c, d).finalize(b.ciphertext)
1555 | },
1556 | _parse: function (a, b) {
1557 | return "string" == typeof a ? b.parse(a, this) : a
1558 | }
1559 | })
1560 | , p = (p.kdf = {}).OpenSSL = {
1561 | execute: function (a, b, c, d) {
1562 | d || (d = s.random(8));
1563 | a = w.create({
1564 | keySize: b + c
1565 | }).compute(a, d);
1566 | c = s.create(a.words.slice(b), 4 * c);
1567 | a.sigBytes = 4 * b;
1568 | return n.create({
1569 | key: a,
1570 | iv: c,
1571 | salt: d
1572 | })
1573 | }
1574 | }
1575 | , c = d.PasswordBasedCipher = a.extend({
1576 | cfg: a.cfg.extend({
1577 | kdf: p
1578 | }),
1579 | encrypt: function (b, c, d, l) {
1580 | l = this.cfg.extend(l);
1581 | d = l.kdf.execute(d, b.keySize, b.ivSize);
1582 | l.iv = d.iv;
1583 | b = a.encrypt.call(this, b, c, d.key, l);
1584 | b.mixIn(d);
1585 | return b
1586 | },
1587 | decrypt: function (b, c, d, l) {
1588 | l = this.cfg.extend(l);
1589 | c = this._parse(c, l.format);
1590 | d = l.kdf.execute(d, b.keySize, b.ivSize, c.salt);
1591 | l.iv = d.iv;
1592 | return a.decrypt.call(this, b, c, d.key, l)
1593 | }
1594 | })
1595 | }();
1596 | (function () {
1597 | for (var u = CryptoJS, p = u.lib.BlockCipher, d = u.algo, l = [], s = [], t = [], r = [], w = [], v = [], b = [], x = [], q = [], n = [], a = [], c = 0; 256 > c; c++)
1598 | a[c] = 128 > c ? c << 1 : c << 1 ^ 283;
1599 | for (var e = 0, j = 0, c = 0; 256 > c; c++) {
1600 | var k = j ^ j << 1 ^ j << 2 ^ j << 3 ^ j << 4
1601 | , k = k >>> 8 ^ k & 255 ^ 99;
1602 | l[e] = k;
1603 | s[k] = e;
1604 | var z = a[e]
1605 | , F = a[z]
1606 | , G = a[F]
1607 | , y = 257 * a[k] ^ 16843008 * k;
1608 | t[e] = y << 24 | y >>> 8;
1609 | r[e] = y << 16 | y >>> 16;
1610 | w[e] = y << 8 | y >>> 24;
1611 | v[e] = y;
1612 | y = 16843009 * G ^ 65537 * F ^ 257 * z ^ 16843008 * e;
1613 | b[k] = y << 24 | y >>> 8;
1614 | x[k] = y << 16 | y >>> 16;
1615 | q[k] = y << 8 | y >>> 24;
1616 | n[k] = y;
1617 | e ? (e = z ^ a[a[a[G ^ z]]],
1618 | j ^= a[a[j]]) : e = j = 1
1619 | }
1620 | var H = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54]
1621 | , d = d.AES = p.extend({
1622 | _doReset: function () {
1623 | for (var a = this._key, c = a.words, d = a.sigBytes / 4, a = 4 * ((this._nRounds = d + 6) + 1), e = this._keySchedule = [], j = 0; j < a; j++)
1624 | if (j < d)
1625 | e[j] = c[j];
1626 | else {
1627 | var k = e[j - 1];
1628 | j % d ? 6 < d && 4 == j % d && (k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255]) : (k = k << 8 | k >>> 24,
1629 | k = l[k >>> 24] << 24 | l[k >>> 16 & 255] << 16 | l[k >>> 8 & 255] << 8 | l[k & 255],
1630 | k ^= H[j / d | 0] << 24);
1631 | e[j] = e[j - d] ^ k
1632 | }
1633 | c = this._invKeySchedule = [];
1634 | for (d = 0; d < a; d++)
1635 | j = a - d,
1636 | k = d % 4 ? e[j] : e[j - 4],
1637 | c[d] = 4 > d || 4 >= j ? k : b[l[k >>> 24]] ^ x[l[k >>> 16 & 255]] ^ q[l[k >>> 8 & 255]] ^ n[l[k & 255]]
1638 | },
1639 | encryptBlock: function (a, b) {
1640 | this._doCryptBlock(a, b, this._keySchedule, t, r, w, v, l)
1641 | },
1642 | decryptBlock: function (a, c) {
1643 | var d = a[c + 1];
1644 | a[c + 1] = a[c + 3];
1645 | a[c + 3] = d;
1646 | this._doCryptBlock(a, c, this._invKeySchedule, b, x, q, n, s);
1647 | d = a[c + 1];
1648 | a[c + 1] = a[c + 3];
1649 | a[c + 3] = d
1650 | },
1651 | _doCryptBlock: function (a, b, c, d, e, j, l, f) {
1652 | for (var m = this._nRounds, g = a[b] ^ c[0], h = a[b + 1] ^ c[1], k = a[b + 2] ^ c[2], n = a[b + 3] ^ c[3], p = 4, r = 1; r < m; r++)
1653 | var q = d[g >>> 24] ^ e[h >>> 16 & 255] ^ j[k >>> 8 & 255] ^ l[n & 255] ^ c[p++]
1654 | , s = d[h >>> 24] ^ e[k >>> 16 & 255] ^ j[n >>> 8 & 255] ^ l[g & 255] ^ c[p++]
1655 | , t = d[k >>> 24] ^ e[n >>> 16 & 255] ^ j[g >>> 8 & 255] ^ l[h & 255] ^ c[p++]
1656 | , n = d[n >>> 24] ^ e[g >>> 16 & 255] ^ j[h >>> 8 & 255] ^ l[k & 255] ^ c[p++]
1657 | , g = q
1658 | , h = s
1659 | , k = t;
1660 | q = (f[g >>> 24] << 24 | f[h >>> 16 & 255] << 16 | f[k >>> 8 & 255] << 8 | f[n & 255]) ^ c[p++];
1661 | s = (f[h >>> 24] << 24 | f[k >>> 16 & 255] << 16 | f[n >>> 8 & 255] << 8 | f[g & 255]) ^ c[p++];
1662 | t = (f[k >>> 24] << 24 | f[n >>> 16 & 255] << 16 | f[g >>> 8 & 255] << 8 | f[h & 255]) ^ c[p++];
1663 | n = (f[n >>> 24] << 24 | f[g >>> 16 & 255] << 16 | f[h >>> 8 & 255] << 8 | f[k & 255]) ^ c[p++];
1664 | a[b] = q;
1665 | a[b + 1] = s;
1666 | a[b + 2] = t;
1667 | a[b + 3] = n
1668 | },
1669 | keySize: 8
1670 | });
1671 | u.AES = p._createHelper(d)
1672 | }
1673 | )();
1674 |
1675 | var com = {};
1676 | com.str = {
1677 | _KEY: "12345678900000001234567890000000",//32λ
1678 | _IV: "abcd134556abcedf",//16λ
1679 | Encrypt: function (str) {
1680 | var key = CryptoJS.enc.Utf8.parse(this._KEY);
1681 | var iv = CryptoJS.enc.Utf8.parse(this._IV);
1682 |
1683 | var encrypted = '';
1684 |
1685 | var srcs = CryptoJS.enc.Utf8.parse(str);
1686 | encrypted = CryptoJS.AES.encrypt(srcs, key, {
1687 | iv: iv,
1688 | mode: CryptoJS.mode.CBC,
1689 | padding: CryptoJS.pad.Pkcs7
1690 | });
1691 |
1692 | return encrypted.ciphertext.toString();
1693 | },
1694 |
1695 | Decrypt: function (str) {
1696 | var result = com.str.DecryptInner(str);
1697 | try {
1698 | var newstr = com.str.DecryptInner(result);
1699 | if (newstr != "") {
1700 | result = newstr;
1701 | }
1702 | } catch (ex) {
1703 | var msg = ex;
1704 | }
1705 | return result;
1706 | },
1707 | DecryptInner: function (str) {
1708 | var key = CryptoJS.enc.Utf8.parse(this._KEY);
1709 | var iv = CryptoJS.enc.Utf8.parse(this._IV);
1710 | var encryptedHexStr = CryptoJS.enc.Hex.parse(str);
1711 | var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
1712 | var decrypt = CryptoJS.AES.decrypt(srcs, key, {
1713 | iv: iv,
1714 | mode: CryptoJS.mode.CBC,
1715 | padding: CryptoJS.pad.Pkcs7
1716 | });
1717 | var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
1718 | var result = decryptedStr.toString();
1719 | try {
1720 | result = Decrypt(result);
1721 | } catch (ex) {
1722 | var msg = ex;
1723 | }
1724 | return result;
1725 | }
1726 | }
1727 |
1728 |
1729 | function iemap(myarray, callback, thisArg) {
1730 |
1731 | var T, A, k;
1732 |
1733 | if (myarray == null) {
1734 | throw new TypeError(" this is null or not defined");
1735 | }
1736 | var O = Object(myarray);
1737 |
1738 | var len = O.length >>> 0;
1739 | if (typeof callback !== "function") {
1740 | throw new TypeError(callback + " is not a function");
1741 | }
1742 |
1743 | // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
1744 | if (thisArg) {
1745 | T = thisArg;
1746 | }
1747 |
1748 | A = new Array(len);
1749 | k = 0;
1750 | while (k < len) {
1751 | var kValue, mappedValue;
1752 | if (k in O) {
1753 | kValue = O[k];
1754 | mappedValue = callback.call(T, kValue, k, O);
1755 |
1756 | A[k] = mappedValue;
1757 | }
1758 | k++;
1759 | }
1760 | return A;
1761 | };
1762 |
1763 | function GetJs(RunEval) {
1764 | return unzip(RunEval);
1765 | }
1766 |
1767 | function EvalKey(js1, js2) {
1768 | eval(js1);
1769 | $hidescript = $hidescript.split("")
1770 | return eval(js2);
1771 | }
1772 |
1773 | function UpdateKey(key) {
1774 | com.str._KEY = key;
1775 | }
1776 |
1777 | function DecryptDocID(key, id) {
1778 | if (key) {
1779 | UpdateKey(key);
1780 | }
1781 | var unzipid = unzip(id);
1782 | var realid = com.str.Decrypt(unzipid);
1783 | return realid;
1784 | }
--------------------------------------------------------------------------------
/gland_mmewmd/README.md:
--------------------------------------------------------------------------------
1 | # goland
2 |
3 |
4 | ## 项目介绍
5 | `
6 | "goquery" goland css解析器
7 | "github.com/robertkrimen/otto" 执行js类似python的execjs
8 | `
9 |
10 | `
11 | var (
12 | encryptPath = `encrypt.js` 绝对路径
13 | ywtuPath = `ywtu.js` 绝对路径
14 | vjkl5 = `vjkl5.js` 绝对路径
15 | )
16 | `
17 |
18 | `
19 | var c Cookies
20 | c.GetCookie() 获取80T,80S
21 | c.execjs() js生成新80T
22 | c.Guid = `8df4cd4f-0d91-23411994-4bd54ad7a846`
23 | c.Number = `wens`
24 | c.SetCookie() 获取vjkl5,Vl5x值
25 | c.WenShuList() 测试列表页数据
26 |
27 | `
28 |
29 |
--------------------------------------------------------------------------------
/gland_mmewmd/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/sml2h3/mmewmd_crack_for_wenshu/a7cba1446474c629e9725556a3b43fa656ec622c/gland_mmewmd/github.png
--------------------------------------------------------------------------------
/gland_mmewmd/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "net/url"
5 | "fmt"
6 | "github.com/satori/go.uuid"
7 | "net/http"
8 | "time"
9 | "strings"
10 | "io/ioutil"
11 | "goquery"
12 | "regexp"
13 | "github.com/robertkrimen/otto"
14 | "github.com/wonderivan/logger"
15 | )
16 |
17 |
18 | type Cookies struct {
19 | C80T string
20 | C80S string
21 | Meta string
22 | Guid string
23 | Number string
24 | Vjkl5 string
25 | Vl5x string
26 | }
27 |
28 | var (
29 | encryptPath = `/home/jialele/go/src/iris_test/wenshu/encrypt.js`
30 | ywtuPath = `/home/jialele/go/src/iris_test/wenshu/ywtu.js`
31 | vjkl5 = `/home/jialele/go/src/iris_test/wenshu/vjkl5.js`
32 | )
33 |
34 | func main() {
35 | var c Cookies
36 | c.GetCookie()
37 | c.execjs()
38 | c.Guid = `8df4cd4f-0d91-23411994-4bd54ad7a846`
39 | c.Number = `wens`
40 | c.SetCookie()
41 | c.WenShuList()
42 | }
43 |
44 | func (c *Cookies) execjs( ) {
45 | logger.Info("[--------Get---Cookie---80T-------]")
46 | js1,e := ioutil.ReadFile(encryptPath)
47 | js2,e := ioutil.ReadFile(ywtuPath)
48 | if e !=nil{
49 | panic(e)
50 | }
51 | mv1 := otto.New()
52 | mv2 := otto.New()
53 | mv1.Run(string(js1))
54 | mv2.Run(string(js2))
55 | ywtu ,e:= mv2.Call(`getc`,nil,c.Meta)
56 | res ,e := mv1.Call("getCookies",nil,c.Meta,c.C80T,ywtu.String())
57 | c.C80T = res.String()
58 | logger.Info("Cookie 80T : < %s >",res.String())
59 |
60 | }
61 | func(c *Cookies) SetCookie() {
62 | logger.Info("[--------Get---Vjkl5-------]")
63 | url := fmt.Sprintf("http://wenshu.court.gov.cn/list/list/?sorttype=1&guid=%s&number=%s",c.Guid,c.Number)
64 | client := http.Client{}
65 | req,err:= http.NewRequest("GET",url,nil)
66 | req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
67 | req.Header.Set("Cookie",fmt.Sprintf("FSSBBIl1UgzbN7N80S=%s;FSSBBIl1UgzbN7N80T=%s",c.C80S,c.C80T))
68 | if err != nil {
69 | fmt.Println(err)
70 | }
71 | response, err := client.Do(req)
72 | defer response.Body.Close()
73 | if err != nil {
74 | fmt.Println(err)
75 | }
76 | cookie := response.Header.Get("Set-Cookie")
77 | re := regexp.MustCompile("vjkl5=(.*?);")
78 | vjkl5 := re.FindStringSubmatch(cookie)[1]
79 | c.Vjkl5 = vjkl5
80 | c.Vl5x = GetVjkl5(vjkl5)
81 | logger.Info("vjkl5 : < %s >",c.Vjkl5)
82 | logger.Info("Vl5x : < %s >",c.Vl5x)
83 |
84 | }
85 | func GetVjkl5(key string) string{
86 |
87 | js,_ := ioutil.ReadFile(vjkl5)
88 | mv := otto.New()
89 | mv.Run(js)
90 | res,_ :=mv.Call("getKey",nil,key)
91 | return res.String()
92 |
93 | }
94 | func (c *Cookies) GetCookie() {
95 | logger.Info("[--------Get---Cookies-------]")
96 | codeUrl := "http://wenshu.court.gov.cn/list/list/?sorttype=1"
97 | client := http.Client{Timeout:60*time.Second}
98 | req,err:= http.NewRequest("GET",codeUrl,nil)
99 | if err != nil {
100 | fmt.Println(err)
101 | }
102 | req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
103 | req.Header.Set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8")
104 | response, err := client.Do(req)
105 | defer response.Body.Close()
106 | if err != nil {
107 | fmt.Println(err)
108 | }
109 | cookie := response.Cookies()
110 | FSSBBIl1UgzbN7N80T := ""
111 | FSSBBIl1UgzbN7N80S := ""
112 | for _,v := range cookie{
113 | if v.Name == `FSSBBIl1UgzbN7N80T`{
114 | FSSBBIl1UgzbN7N80T = v.Value
115 | }
116 | if v.Name == `FSSBBIl1UgzbN7N80S` {
117 | FSSBBIl1UgzbN7N80S = v.Value
118 | }
119 | }
120 | doc,_ :=goquery.NewDocumentFromReader(response.Body)
121 | meta,_ := doc.Find(`#9DhefwqGPrzGxEp9hPaoag`).Attr(`content`)
122 | c.C80S = FSSBBIl1UgzbN7N80S
123 | c.C80T = FSSBBIl1UgzbN7N80T
124 | c.Meta = strings.TrimSpace(meta)
125 | logger.Info("Cookies get Success!")
126 | }
127 |
128 | func(c *Cookies) GetNumber() {
129 | logger.Info("[--------Get---GetNumber-------]")
130 | var postData = url.Values{}
131 | gd,_ := uuid.NewV4()
132 | guid :=gd.String()
133 | codeUrl := "http://wenshu.court.gov.cn/ValiCode/GetCode?"
134 | client := http.Client{Timeout:60*time.Second}
135 | postData.Add("guid",guid)
136 | data := postData.Encode()
137 | req,err:= http.NewRequest("POST",codeUrl,strings.NewReader(data))
138 | if err != nil {
139 | fmt.Println(err)
140 | }
141 | req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
142 | req.Header.Set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8")
143 | response, err := client.Do(req)
144 | defer response.Body.Close()
145 | if err != nil {
146 | fmt.Println(err)
147 | }
148 | number,_ := ioutil.ReadAll(response.Body)
149 | if response.StatusCode == http.StatusOK{
150 | c.Guid = guid
151 | c.Number = string(number)
152 | }
153 | logger.Info("Number < %s >",number)
154 | }
155 |
156 | func (c *Cookies) WenShuList() {
157 | logger.Info("[--------Get---List--Information-------]")
158 | var postData = url.Values{}
159 | url := "http://wenshu.court.gov.cn/List/ListContent"
160 | postData.Add("Param","案件类型:民事案件")
161 | postData.Add("Index","1")
162 | postData.Add("Page","10")
163 | postData.Add("Order","法院层级")
164 | postData.Add("Direction","asc")
165 | postData.Add("vl5x",c.Vl5x)
166 | postData.Add("number",c.Number)
167 | postData.Add("guid",c.Guid)
168 | data := postData.Encode()
169 | client := &http.Client{}
170 | request, _ := http.NewRequest("POST", url, strings.NewReader(data))
171 | request.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
172 | request.Header.Set("Content-Type","application/x-www-form-urlencoded;charset=UTF-8")
173 | request.Header.Set("Cookie",fmt.Sprintf("FSSBBIl1UgzbN7N80S=%s;FSSBBIl1UgzbN7N80T=%s;vjkl5=%s",c.C80S,c.C80T,c.Vjkl5))
174 | response, err := client.Do(request)
175 | defer response.Body.Close()
176 | if err != nil {
177 | fmt.Println(err)
178 | }
179 | res,_ := ioutil.ReadAll(response.Body)
180 | fmt.Println(string(res))
181 | }
182 |
183 |
184 |
--------------------------------------------------------------------------------
/gland_mmewmd/vjkl5.js:
--------------------------------------------------------------------------------
1 | /*
2 | * 加密获取参数vl5x
3 | */
4 | var hexcase = 0;
5 | var b64pad = "";
6 | var chrsz = 8;
7 |
8 | function hex_sha1(s) {
9 | return binb2hex(core_sha1(str2binb(s), s.length * chrsz));
10 | }
11 |
12 |
13 | function sha1_vm_test() {
14 | return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d";
15 | }
16 |
17 | function core_sha1(x, len) {
18 |
19 | x[len >> 5] |= 0x80 << (24 - len % 32);
20 | x[((len + 64 >> 9) << 4) + 15] = len;
21 |
22 | var w = Array(80);
23 | var a = 1732584193;
24 | var b = -271733879;
25 | var c = -1732584194;
26 | var d = 271733878;
27 | var e = -1009589776;
28 |
29 | for (var i = 0; i < x.length; i += 16) {
30 | var olda = a;
31 | var oldb = b;
32 | var oldc = c;
33 | var oldd = d;
34 | var olde = e;
35 |
36 | for (var j = 0; j < 80; j++) {
37 | if (j < 16) w[j] = x[i + j];
38 | else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
39 | 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)));
40 | e = d;
41 | d = c;
42 | c = rol(b, 30);
43 | b = a;
44 | a = t;
45 | }
46 |
47 | a = safe_add(a, olda);
48 | b = safe_add(b, oldb);
49 | c = safe_add(c, oldc);
50 | d = safe_add(d, oldd);
51 | e = safe_add(e, olde);
52 | }
53 | return Array(a, b, c, d, e);
54 |
55 | }
56 |
57 |
58 | function sha1_ft(t, b, c, d) {
59 | if (t < 20) return (b & c) | ((~b) & d);
60 | if (t < 40) return b ^ c ^ d;
61 | if (t < 60) return (b & c) | (b & d) | (c & d);
62 | return b ^ c ^ d;
63 | }
64 |
65 |
66 | function sha1_kt(t) {
67 | return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;
68 | }
69 |
70 |
71 | function core_hmac_sha1(key, data) {
72 | var bkey = str2binb(key);
73 | if (bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
74 |
75 | var ipad = Array(16),
76 | opad = Array(16);
77 | for (var i = 0; i < 16; i++) {
78 | ipad[i] = bkey[i] ^ 0x36363636;
79 | opad[i] = bkey[i] ^ 0x5C5C5C5C;
80 | }
81 |
82 | var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
83 | return core_sha1(opad.concat(hash), 512 + 160);
84 | }
85 |
86 | function safe_add(x, y) {
87 | var lsw = (x & 0xFFFF) + (y & 0xFFFF);
88 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
89 | return (msw << 16) | (lsw & 0xFFFF);
90 | }
91 |
92 | function rol(num, cnt) {
93 | return (num << cnt) | (num >>> (32 - cnt));
94 | }
95 |
96 | function str2binb(str) {
97 | var bin = Array();
98 | var mask = (1 << chrsz) - 1;
99 | for (var i = 0; i < str.length * chrsz; i += chrsz)
100 | bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i % 32);
101 | return bin;
102 | }
103 |
104 | function binb2str(bin) {
105 | var str = "";
106 | var mask = (1 << chrsz) - 1;
107 | for (var i = 0; i < bin.length * 32; i += chrsz)
108 | str += String.fromCharCode((bin[i >> 5] >>> (24 - i % 32)) & mask);
109 | return str;
110 | }
111 |
112 | function binb2hex(binarray) {
113 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
114 | var str = "";
115 | for (var i = 0; i < binarray.length * 4; i++) {
116 | str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF);
117 | }
118 | return str;
119 | }
120 |
121 | function binb2b64(binarray) {
122 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
123 | var str = "";
124 | for (var i = 0; i < binarray.length * 4; i += 3) {
125 | 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);
126 | for (var j = 0; j < 4; j++) {
127 | if (i * 8 + j * 6 > binarray.length * 32) str += b64pad;
128 | else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);
129 | }
130 | }
131 | return str;
132 | }
133 |
134 | function Base64() {
135 |
136 | _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
137 |
138 | this.encode = function (input) {
139 | var output = "";
140 | var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
141 | var i = 0;
142 | input = _utf8_encode(input);
143 | while (i < input.length) {
144 | chr1 = input.charCodeAt(i++);
145 | chr2 = input.charCodeAt(i++);
146 | chr3 = input.charCodeAt(i++);
147 | enc1 = chr1 >> 2;
148 | enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
149 | enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
150 | enc4 = chr3 & 63;
151 | if (isNaN(chr2)) {
152 | enc3 = enc4 = 64;
153 | } else if (isNaN(chr3)) {
154 | enc4 = 64;
155 | }
156 | output = output +
157 | _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
158 | _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
159 | }
160 | return output;
161 | }
162 |
163 | this.decode = function (input) {
164 | var output = "";
165 | var chr1, chr2, chr3;
166 | var enc1, enc2, enc3, enc4;
167 | var i = 0;
168 | input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
169 | while (i < input.length) {
170 | enc1 = _keyStr.indexOf(input.charAt(i++));
171 | enc2 = _keyStr.indexOf(input.charAt(i++));
172 | enc3 = _keyStr.indexOf(input.charAt(i++));
173 | enc4 = _keyStr.indexOf(input.charAt(i++));
174 | chr1 = (enc1 << 2) | (enc2 >> 4);
175 | chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
176 | chr3 = ((enc3 & 3) << 6) | enc4;
177 | output = output + String.fromCharCode(chr1);
178 | if (enc3 != 64) {
179 | output = output + String.fromCharCode(chr2);
180 | }
181 | if (enc4 != 64) {
182 | output = output + String.fromCharCode(chr3);
183 | }
184 | }
185 | output = _utf8_decode(output);
186 | return output;
187 | }
188 |
189 | _utf8_encode = function (string) {
190 | string = string.replace(/\r\n/g, "\n");
191 | var utftext = "";
192 | for (var n = 0; n < string.length; n++) {
193 | var c = string.charCodeAt(n);
194 | if (c < 128) {
195 | utftext += String.fromCharCode(c);
196 | } else if ((c > 127) && (c < 2048)) {
197 | utftext += String.fromCharCode((c >> 6) | 192);
198 | utftext += String.fromCharCode((c & 63) | 128);
199 | } else {
200 | utftext += String.fromCharCode((c >> 12) | 224);
201 | utftext += String.fromCharCode(((c >> 6) & 63) | 128);
202 | utftext += String.fromCharCode((c & 63) | 128);
203 | }
204 |
205 | }
206 | return utftext;
207 | }
208 |
209 | _utf8_decode = function (utftext) {
210 | var string = "";
211 | var i = 0;
212 | var c = c1 = c2 = 0;
213 | while (i < utftext.length) {
214 | c = utftext.charCodeAt(i);
215 | if (c < 128) {
216 | string += String.fromCharCode(c);
217 | i++;
218 | } else if ((c > 191) && (c < 224)) {
219 | c2 = utftext.charCodeAt(i + 1);
220 | string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
221 | i += 2;
222 | } else {
223 | c2 = utftext.charCodeAt(i + 1);
224 | c3 = utftext.charCodeAt(i + 2);
225 | string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
226 | i += 3;
227 | }
228 | }
229 | return string;
230 | }
231 | }
232 |
233 | var hexcase = 0;
234 | var b64pad = "";
235 | var chrsz = 8;
236 |
237 | function hex_md5(s) {
238 | return binl2hex(core_md5(str2binl(s), s.length * chrsz));
239 | }
240 |
241 | function core_md5(x, len) {
242 |
243 | x[len >> 5] |= 0x80 << ((len) % 32);
244 | x[(((len + 64) >>> 9) << 4) + 14] = len;
245 |
246 | var a = 1732584193;
247 | var b = -271733879;
248 | var c = -1732584194;
249 | var d = 271733878;
250 |
251 | for (var i = 0; i < x.length; i += 16) {
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 | function md5_cmn(q, a, b, x, s, t) {
335 | return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
336 | }
337 |
338 | function md5_ff(a, b, c, d, x, s, t) {
339 | return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
340 | }
341 |
342 | function md5_gg(a, b, c, d, x, s, t) {
343 | return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
344 | }
345 |
346 | function md5_hh(a, b, c, d, x, s, t) {
347 | return md5_cmn(b ^ c ^ d, a, b, x, s, t);
348 | }
349 |
350 | function md5_ii(a, b, c, d, x, s, t) {
351 | return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
352 | }
353 |
354 | function core_hmac_md5(key, data) {
355 | var bkey = str2binl(key);
356 | if (bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
357 |
358 | var ipad = Array(16), opad = Array(16);
359 | for (var i = 0; i < 16; i++) {
360 | ipad[i] = bkey[i] ^ 0x36363636;
361 | opad[i] = bkey[i] ^ 0x5C5C5C5C;
362 | }
363 |
364 | var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
365 | return core_md5(opad.concat(hash), 512 + 128);
366 | }
367 |
368 | function safe_add(x, y) {
369 | var lsw = (x & 0xFFFF) + (y & 0xFFFF);
370 | var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
371 | return (msw << 16) | (lsw & 0xFFFF);
372 | }
373 |
374 | function bit_rol(num, cnt) {
375 | return (num << cnt) | (num >>> (32 - cnt));
376 | }
377 |
378 | function str2binl(str) {
379 | var bin = Array();
380 | var mask = (1 << chrsz) - 1;
381 | for (var i = 0; i < str.length * chrsz; i += chrsz)
382 | bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i % 32);
383 | return bin;
384 | }
385 |
386 | function binl2str(bin) {
387 | var str = "";
388 | var mask = (1 << chrsz) - 1;
389 | for (var i = 0; i < bin.length * 32; i += chrsz)
390 | str += String.fromCharCode((bin[i >> 5] >>> (i % 32)) & mask);
391 | return str;
392 | }
393 |
394 | function binl2hex(binarray) {
395 | var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
396 | var str = "";
397 | for (var i = 0; i < binarray.length * 4; i++) {
398 | str += hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8 + 4)) & 0xF) +
399 | hex_tab.charAt((binarray[i >> 2] >> ((i % 4) * 8)) & 0xF);
400 | }
401 | return str;
402 | }
403 |
404 | function binl2b64(binarray) {
405 | var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
406 | var str = "";
407 | for (var i = 0; i < binarray.length * 4; i += 3) {
408 | var triplet = (((binarray[i >> 2] >> 8 * (i % 4)) & 0xFF) << 16)
409 | | (((binarray[i + 1 >> 2] >> 8 * ((i + 1) % 4)) & 0xFF) << 8)
410 | | ((binarray[i + 2 >> 2] >> 8 * ((i + 2) % 4)) & 0xFF);
411 | for (var j = 0; j < 4; j++) {
412 | if (i * 8 + j * 6 > binarray.length * 32) str += b64pad;
413 | else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);
414 | }
415 | }
416 | return str;
417 | }
418 |
419 | function getKey(cookie) {
420 | function de(str, count, strReplace) {
421 | var arrReplace = strReplace.split("|");
422 | for (var i = 0; i < count; i++) {
423 | str = str.replace(new RegExp("\\{" + i + "\\}", "g"), arrReplace[i])
424 | }
425 | return str
426 | }
427 |
428 | function strToLong(str) {
429 | var long = 0;
430 | for (var i = 0; i < str.length; i++) {
431 | long += (str.charCodeAt(i) << (i % 16))
432 | }
433 | return long
434 | }
435 |
436 | function strToLongEn(str) {
437 | var long = 0;
438 | for (var i = 0; i < str.length; i++) {
439 | long += (str.charCodeAt(i) << (i % 16)) + i
440 | }
441 | return long
442 | }
443 |
444 | function strToLongEn2(str, step) {
445 | var long = 0;
446 | for (var i = 0; i < str.length; i++) {
447 | long += (str.charCodeAt(i) << (i % 16)) + (i * step)
448 | }
449 | return long
450 | }
451 |
452 | function strToLongEn3(str, step) {
453 | var long = 0;
454 | for (var i = 0; i < str.length; i++) {
455 | long += (str.charCodeAt(i) << (i % 16)) + (i + step - str.charCodeAt(i))
456 | }
457 | return long
458 | }
459 |
460 | function makeKey_0(str) {
461 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
462 | var a = str.substr(5) + str.substr(-4);
463 | var b = str.substr(4) + a.substr(-6);
464 | return hex_md5(str).substr(4, 24)
465 | }
466 |
467 | function makeKey_1(str) {
468 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
469 | var a = str.substr(5) + str.substr(4);
470 | var b = str.substr(12) + a.substr(-6);
471 | var c = str.substr(4) + a.substr(6);
472 | return hex_md5(c).substr(4, 24)
473 | }
474 |
475 | function makeKey_2(str) {
476 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
477 | var a = strToLong(str.substr(5)) + str.substr(4);
478 | var b = strToLong(str.substr(5)) + str.substr(4);
479 | var c = str.substr(4) + b.substr(5);
480 | return hex_md5(c).substr(1, 24)
481 | }
482 |
483 | function makeKey_3(str) {
484 | var str = str.substr(5, 5 * 5) + "15" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
485 | var a = strToLongEn(str.substr(5)) + str.substr(4);
486 | var b = str.substr(4) + a.substr(5);
487 | var c = strToLong(str.substr(5)) + str.substr(4);
488 | return hex_md5(b).substr(3, 24)
489 | }
490 |
491 | function makeKey_4(str) {
492 | var str = str.substr(5, 5 * 5) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
493 | var long = 0;
494 | for (var i = 0; i < str.substr(1).length; i++) {
495 | long += (str.charCodeAt(i) << (i % 16))
496 | }
497 | var aa = long + str.substr(4);
498 | var long = 0;
499 | var a = str.substr(5);
500 | for (var i = 0; i < a.length; i++) {
501 | long += (a.charCodeAt(i) << (i % 16)) + i
502 | }
503 | a = long + "" + str.substr(4);
504 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
505 | return hex_md5(b).substr(3, 24)
506 | }
507 |
508 | function makeKey_5(str) {
509 | var base = new Base64();
510 | var str = base.encode(str.substr(5, 5 * 5) + str.substr(1, 2) + "1") + str.substr((5 + 1) * (5 + 1), 3);
511 | var a = strToLongEn(str.substr(4, 10)) + str.substr(-4);
512 | var b = hex_md5(str.substr(4)) + a.substr(2);
513 | var a = str.substr(3);
514 | var c = strToLong(str.substr(5)) + str.substr(4);
515 | var aa = long + str.substr(4);
516 | var long = 0;
517 | for (var i = 0; i < a.length; i++) {
518 | long += (a.charCodeAt(i) << (i % 12)) + i
519 | }
520 | a = long + "" + str.substr(4);
521 | return hex_md5(str).substr(4, 24)
522 | }
523 |
524 | function makeKey_6(str) {
525 | var base = new Base64();
526 | var str = str.substr(5, 5 * 5) + str.substr((5 + 1) * (5 + 1), 3);
527 | var a = base.encode(str.substr(4, 10)) + str.substr(2);
528 | var b = str.substr(6) + a.substr(2);
529 | var c = strToLong(str.substr(5)) + str.substr(4);
530 | var aa = long + str.substr(4);
531 | var long = 0;
532 | var a = str.substr(5);
533 | for (var i = 0; i < a.length; i++) {
534 | long += (a.charCodeAt(i) << (i % 16)) + i
535 | }
536 | a = long + "" + str.substr(4);
537 | return hex_md5(b).substr(2, 24)
538 | }
539 |
540 | function makeKey_7(str) {
541 | var base = new Base64();
542 | var str = base.encode(str.substr(5, 5 * 4) + "55" + str.substr(1, 2)) + str.substr((5 + 1) * (5 + 1), 3);
543 | var long = 0;
544 | for (var i = 0; i < str.substr(1).length; i++) {
545 | long += (str.charCodeAt(i) << (i % 16 + 5)) + 3 + 5
546 | }
547 | var aa = long + str.substr(4);
548 | var long = 0;
549 | var a = str.substr(5);
550 | for (var i = 0; i < a.length; i++) {
551 | long += (a.charCodeAt(i) << (i % 16))
552 | }
553 | a = long + "" + str.substr(4);
554 | var b = hex_md5(str.substr(1)) + strToLong(a.substr(5));
555 | return hex_md5(b).substr(3, 24)
556 | }
557 |
558 | function makeKey_8(str) {
559 | var base = new Base64();
560 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5" + "-" + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
561 | var long = 0;
562 | for (var i = 0; i < str.substr(1).length; i++) {
563 | long += (str.charCodeAt(i) << (i % 16))
564 | }
565 | var aa = long + str.substr(4);
566 | var long = 0;
567 | var a = str.substr(5);
568 | for (var i = 0; i < a.length; i++) {
569 | long += (a.charCodeAt(i) << (i % 16))
570 | }
571 | a = long + "" + str.substr(4);
572 | var b = hex_md5(str.substr(1)) + strToLongEn(a.substr(5));
573 | return hex_md5(b).substr(4, 24)
574 | }
575 |
576 | function makeKey_9(str) {
577 | var str = str.substr(5, 5 * 5) + "5" + str.substr(1, 2) + "1" + str.substr((5 + 1) * (5 + 1), 3);
578 | var a = str.substr(5) + str.substr(4);
579 | var b = str.substr(12) + a.substr(-6);
580 | var c = hex_sha1(str.substr(4)) + a.substr(6);
581 | return hex_md5(c).substr(4, 24)
582 | }
583 |
584 | function makeKey_10(str) {
585 | var base = new Base64();
586 | var str = base.encode(str.substr(5, 5 * 5 - 1) + "5") + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
587 | var long = 0;
588 | for (var i = 0; i < str.substr(1).length; i++) {
589 | long += (str.charCodeAt(i) << (i % 16))
590 | }
591 | var aa = long + str.substr(4);
592 | var long = 0;
593 | var a = str.substr(5);
594 | for (var i = 0; i < a.length; i++) {
595 | long += (a.charCodeAt(i) << (i % 16))
596 | }
597 | a = long + "" + str.substr(4);
598 | var b = hex_md5(str.substr(1)) + hex_sha1(a.substr(5));
599 | return hex_md5(b).substr(4, 24)
600 | }
601 |
602 | function makeKey_11(str) {
603 | var base = new Base64();
604 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + str.substr((5 + 1) * (5 + 1), 3);
605 | var long = 0;
606 | for (var i = 0; i < str.substr(1).length; i++) {
607 | long += (str.charCodeAt(i) << (i % 16))
608 | }
609 | var aa = long + str.substr(4);
610 | var long = 0;
611 | var a = str.substr(5);
612 | for (var i = 0; i < a.length; i++) {
613 | long += (a.charCodeAt(i) << (i % 16))
614 | }
615 | a = long + "" + str.substr(2);
616 | var b = str.substr(1) + hex_sha1(a.substr(5));
617 | return hex_md5(b).substr(2, 24)
618 | }
619 |
620 | function makeKey_12(str) {
621 | var base = new Base64();
622 | var str = str.substr(5, 5 * 5 - 1) + str.substr((5 + 1) * (5 + 1), 3) + "2" + str.substr(1, 2);
623 | var long = 0;
624 | for (var i = 0; i < str.substr(1).length; i++) {
625 | long += (str.charCodeAt(i) << (i % 16))
626 | }
627 | var aa = long + str.substr(4);
628 | var long = 0;
629 | var a = str.substr(5);
630 | for (var i = 0; i < a.length; i++) {
631 | long += (a.charCodeAt(i) << (i % 16))
632 | }
633 | a = long + "" + str.substr(2);
634 | var b = str.substr(1) + hex_sha1(str.substr(5));
635 | return hex_md5(b).substr(1, 24)
636 | }
637 |
638 | function makeKey_13(str) {
639 | var base = new Base64();
640 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
641 | var long = 0;
642 | for (var i = 0; i < str.substr(1).length; i++) {
643 | long += (str.charCodeAt(i) << (i % 16))
644 | }
645 | var aa = long + str.substr(4);
646 | var long = 0;
647 | var a = str.substr(5);
648 | for (var i = 0; i < a.length; i++) {
649 | long += (a.charCodeAt(i) << (i % 16))
650 | }
651 | a = long + "" + str.substr(2);
652 | var b = base.encode(str.substr(1) + hex_sha1(str.substr(5)));
653 | return hex_md5(b).substr(1, 24)
654 | }
655 |
656 | function makeKey_14(str) {
657 | var base = new Base64();
658 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
659 | var long = 0;
660 | for (var i = 0; i < str.substr(1).length; i++) {
661 | long += (str.charCodeAt(i) << (i % 16))
662 | }
663 | var aa = long + str.substr(4);
664 | var long = 0;
665 | var a = str.substr(5);
666 | for (var i = 0; i < a.length; i++) {
667 | long += (a.charCodeAt(i) << (i % 16))
668 | }
669 | a = long + "" + str.substr(2);
670 | var b = base.encode(str.substr(1) + str.substr(5) + str.substr(1, 3));
671 | return hex_sha1(b).substr(1, 24)
672 | }
673 |
674 | function makeKey_15(str) {
675 | var base = new Base64();
676 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2);
677 | var long = 0;
678 | for (var i = 0; i < str.substr(1).length; i++) {
679 | long += (str.charCodeAt(i) << (i % 16))
680 | }
681 | var aa = long + str.substr(4);
682 | var long = 0;
683 | var a = str.substr(5);
684 | for (var i = 0; i < a.length; i++) {
685 | long += (a.charCodeAt(i) << (i % 16))
686 | }
687 | a = long + "" + str.substr(2);
688 | var b = base.encode(a.substr(1) + str.substr(5) + str.substr(2, 3));
689 | return hex_sha1(b).substr(1, 24)
690 | }
691 |
692 | function makeKey_16(str) {
693 | var base = new Base64();
694 | var str = str.substr(5, 5 * 5 - 1) + "2" + str.substr(1, 2) + "-" + "5";
695 | var long = 0;
696 | for (var i = 0; i < str.substr(1).length; i++) {
697 | long += (str.charCodeAt(i) << (i % 11))
698 | }
699 | var aa = long + str.substr(4);
700 | var long = 0;
701 | var a = str.substr(5);
702 | for (var i = 0; i < a.length; i++) {
703 | long += (a.charCodeAt(i) << (i % 16)) + i
704 | }
705 | a = long + "" + str.substr(2);
706 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5) + str.substr(2, 3);
707 | return hex_md5(b).substr(2, 24)
708 | }
709 |
710 | function makeKey_17(str) {
711 | var base = new Base64();
712 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "-" + "5";
713 | var long = 0;
714 | for (var i = 0; i < str.substr(1).length; i++) {
715 | long += (str.charCodeAt(i) << (i % 11))
716 | }
717 | var aa = long + str.substr(4);
718 | var long = 0;
719 | var a = str.substr(5);
720 | for (var i = 0; i < a.length; i++) {
721 | long += (a.charCodeAt(i) << (i % 16)) + i
722 | }
723 | a = long + "" + str.substr(2);
724 | var b = base.encode(a.substr(1)) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
725 | return hex_md5(b).substr(0, 24)
726 | }
727 |
728 | function makeKey_18(str) {
729 | var base = new Base64();
730 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(1, 2) + "5" + str.substr(2 + 5, 3);
731 | var long = 0;
732 | for (var i = 0; i < str.substr(1).length; i++) {
733 | long += (str.charCodeAt(i) << (i % 11))
734 | }
735 | var aa = long + str.substr(4);
736 | var long = 0;
737 | var a = str.substr(5);
738 | for (var i = 0; i < a.length; i++) {
739 | long += (a.charCodeAt(i) << (i % 16)) + i
740 | }
741 | a = long + "" + str.substr(2);
742 | var b = a.substr(1) + strToLongEn2(str.substr(5), 5 + 1) + str.substr(2 + 5, 3);
743 | return hex_md5(b).substr(0, 24)
744 | }
745 |
746 | function makeKey_19(str) {
747 | var base = new Base64();
748 | var str = str.substr(5, 5 * 5 - 1) + "7" + str.substr(5, 2) + "5" + str.substr(2 + 5, 3);
749 | var long = 0;
750 | for (var i = 0; i < str.substr(1).length; i++) {
751 | long += (str.charCodeAt(i) << (i % 11))
752 | }
753 | var aa = long + str.substr(4);
754 | var long = 0;
755 | var a = str.substr(5);
756 | for (var i = 0; i < a.length; i++) {
757 | long += (a.charCodeAt(i) << (i % 16)) + i
758 | }
759 | a = long + "" + str.substr(2);
760 | var b = a.substr(1) + strToLongEn3(str.substr(5), 5 - 1) + str.substr(2 + 5, 3);
761 | return hex_md5(b).substr(0, 24)
762 | }
763 |
764 | function makeKey_20(str) {
765 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
766 | }
767 |
768 | function makeKey_21(str) {
769 | return hex_md5(makeKey_11(str) + makeKey_3(str)).substr(2, 24)
770 | }
771 |
772 | function makeKey_22(str) {
773 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
774 | }
775 |
776 | function makeKey_23(str) {
777 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
778 | }
779 |
780 | function makeKey_24(str) {
781 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(1, 24)
782 | }
783 |
784 | function makeKey_25(str) {
785 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(2, 24)
786 | }
787 |
788 | function makeKey_26(str) {
789 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(3, 24)
790 | }
791 |
792 | function makeKey_27(str) {
793 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(4, 24)
794 | }
795 |
796 | function makeKey_28(str) {
797 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(1, 24)
798 | }
799 |
800 | function makeKey_29(str) {
801 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(2, 24)
802 | }
803 |
804 | function makeKey_30(str) {
805 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(3, 24)
806 | }
807 |
808 | function makeKey_31(str) {
809 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(4, 24)
810 | }
811 |
812 | function makeKey_32(str) {
813 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
814 | }
815 |
816 | function makeKey_33(str) {
817 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(4, 24)
818 | }
819 |
820 | function makeKey_34(str) {
821 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
822 | }
823 |
824 | function makeKey_35(str) {
825 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
826 | }
827 |
828 | function makeKey_36(str) {
829 | return hex_md5(makeKey_8(str) + makeKey_10(str)).substr(3, 24)
830 | }
831 |
832 | function makeKey_37(str) {
833 | return hex_md5(makeKey_6(str) + makeKey_17(str)).substr(1, 24)
834 | }
835 |
836 | function makeKey_38(str) {
837 | return hex_md5(makeKey_12(str) + makeKey_18(str)).substr(2, 24)
838 | }
839 |
840 | function makeKey_39(str) {
841 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
842 | }
843 |
844 | function makeKey_40(str) {
845 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
846 | }
847 |
848 | function makeKey_41(str) {
849 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
850 | }
851 |
852 | function makeKey_42(str) {
853 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
854 | }
855 |
856 | function makeKey_43(str) {
857 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
858 | }
859 |
860 | function makeKey_44(str) {
861 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
862 | }
863 |
864 | function makeKey_45(str) {
865 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
866 | }
867 |
868 | function makeKey_46(str) {
869 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(4, 24)
870 | }
871 |
872 | function makeKey_47(str) {
873 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(1, 24)
874 | }
875 |
876 | function makeKey_48(str) {
877 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(2, 24)
878 | }
879 |
880 | function makeKey_49(str) {
881 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
882 | }
883 |
884 | function makeKey_50(str) {
885 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
886 | }
887 |
888 | function makeKey_51(str) {
889 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
890 | }
891 |
892 | function makeKey_52(str) {
893 | return hex_md5(makeKey_7(str) + makeKey_14(str)).substr(2, 24)
894 | }
895 |
896 | function makeKey_53(str) {
897 | return hex_md5(makeKey_12(str) + makeKey_15(str)).substr(3, 24)
898 | }
899 |
900 | function makeKey_54(str) {
901 | return hex_md5(makeKey_14(str) + makeKey_16(str)).substr(4, 24)
902 | }
903 |
904 | function makeKey_55(str) {
905 | return hex_md5(makeKey_15(str) + makeKey_9(str)).substr(3, 24)
906 | }
907 |
908 | function makeKey_56(str) {
909 | return hex_md5(makeKey_16(str) + makeKey_10(str)).substr(4, 24)
910 | }
911 |
912 | function makeKey_57(str) {
913 | return hex_md5(makeKey_9(str) + makeKey_17(str)).substr(1, 24)
914 | }
915 |
916 | function makeKey_58(str) {
917 | return hex_md5(makeKey_10(str) + makeKey_18(str)).substr(2, 24)
918 | }
919 |
920 | function makeKey_59(str) {
921 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(3, 24)
922 | }
923 |
924 | function makeKey_60(str) {
925 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(1, 24)
926 | }
927 |
928 | function makeKey_61(str) {
929 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(2, 24)
930 | }
931 |
932 | function makeKey_62(str) {
933 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
934 | }
935 |
936 | function makeKey_63(str) {
937 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(4, 24)
938 | }
939 |
940 | function makeKey_64(str) {
941 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(3, 24)
942 | }
943 |
944 | function makeKey_65(str) {
945 | return hex_md5(makeKey_14(str) + makeKey_1(str)).substr(1, 24)
946 | }
947 |
948 | function makeKey_66(str) {
949 | return hex_md5(makeKey_15(str) + makeKey_4(str)).substr(2, 24)
950 | }
951 |
952 | function makeKey_67(str) {
953 | return hex_md5(makeKey_16(str) + makeKey_5(str)).substr(3, 24)
954 | }
955 |
956 | function makeKey_68(str) {
957 | return hex_md5(makeKey_9(str) + makeKey_3(str)).substr(4, 24)
958 | }
959 |
960 | function makeKey_69(str) {
961 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(1, 24)
962 | }
963 |
964 | function makeKey_70(str) {
965 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
966 | }
967 |
968 | function makeKey_71(str) {
969 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
970 | }
971 |
972 | function makeKey_72(str) {
973 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
974 | }
975 |
976 | function makeKey_73(str) {
977 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(1, 24)
978 | }
979 |
980 | function makeKey_74(str) {
981 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(2, 24)
982 | }
983 |
984 | function makeKey_75(str) {
985 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(3, 24)
986 | }
987 |
988 | function makeKey_76(str) {
989 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(4, 24)
990 | }
991 |
992 | function makeKey_77(str) {
993 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
994 | }
995 |
996 | function makeKey_78(str) {
997 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
998 | }
999 |
1000 | function makeKey_79(str) {
1001 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(1, 24)
1002 | }
1003 |
1004 | function makeKey_80(str) {
1005 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(2, 24)
1006 | }
1007 |
1008 | function makeKey_81(str) {
1009 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
1010 | }
1011 |
1012 | function makeKey_82(str) {
1013 | return hex_md5(makeKey_14(str) + makeKey_18(str)).substr(1, 24)
1014 | }
1015 |
1016 | function makeKey_83(str) {
1017 | return hex_md5(makeKey_15(str) + makeKey_19(str)).substr(4, 24)
1018 | }
1019 |
1020 | function makeKey_84(str) {
1021 | return hex_md5(makeKey_16(str) + makeKey_0(str)).substr(1, 24)
1022 | }
1023 |
1024 | function makeKey_85(str) {
1025 | return hex_md5(makeKey_9(str) + makeKey_1(str)).substr(2, 24)
1026 | }
1027 |
1028 | function makeKey_86(str) {
1029 | return hex_md5(makeKey_10(str) + makeKey_4(str)).substr(3, 24)
1030 | }
1031 |
1032 | function makeKey_87(str) {
1033 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(4, 24)
1034 | }
1035 |
1036 | function makeKey_88(str) {
1037 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(1, 24)
1038 | }
1039 |
1040 | function makeKey_89(str) {
1041 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(2, 24)
1042 | }
1043 |
1044 | function makeKey_90(str) {
1045 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(3, 24)
1046 | }
1047 |
1048 | function makeKey_91(str) {
1049 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(4, 24)
1050 | }
1051 |
1052 | function makeKey_92(str) {
1053 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
1054 | }
1055 |
1056 | function makeKey_93(str) {
1057 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
1058 | }
1059 |
1060 | function makeKey_94(str) {
1061 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
1062 | }
1063 |
1064 | function makeKey_95(str) {
1065 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
1066 | }
1067 |
1068 | function makeKey_96(str) {
1069 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
1070 | }
1071 |
1072 | function makeKey_97(str) {
1073 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
1074 | }
1075 |
1076 | function makeKey_98(str) {
1077 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(3, 24)
1078 | }
1079 |
1080 | function makeKey_99(str) {
1081 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(4, 24)
1082 | }
1083 |
1084 | function makeKey_100(str) {
1085 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(1, 24)
1086 | }
1087 |
1088 | function makeKey_101(str) {
1089 | return hex_md5(makeKey_10(str) + makeKey_7(str)).substr(2, 24)
1090 | }
1091 |
1092 | function makeKey_102(str) {
1093 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
1094 | }
1095 |
1096 | function makeKey_103(str) {
1097 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
1098 | }
1099 |
1100 | function makeKey_104(str) {
1101 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
1102 | }
1103 |
1104 | function makeKey_105(str) {
1105 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
1106 | }
1107 |
1108 | function makeKey_106(str) {
1109 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
1110 | }
1111 |
1112 | function makeKey_107(str) {
1113 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
1114 | }
1115 |
1116 | function makeKey_108(str) {
1117 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
1118 | }
1119 |
1120 | function makeKey_109(str) {
1121 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(4, 24)
1122 | }
1123 |
1124 | function makeKey_110(str) {
1125 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(1, 24)
1126 | }
1127 |
1128 | function makeKey_111(str) {
1129 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(2, 24)
1130 | }
1131 |
1132 | function makeKey_112(str) {
1133 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
1134 | }
1135 |
1136 | function makeKey_113(str) {
1137 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
1138 | }
1139 |
1140 | function makeKey_114(str) {
1141 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
1142 | }
1143 |
1144 | function makeKey_115(str) {
1145 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
1146 | }
1147 |
1148 | function makeKey_116(str) {
1149 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
1150 | }
1151 |
1152 | function makeKey_117(str) {
1153 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
1154 | }
1155 |
1156 | function makeKey_118(str) {
1157 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
1158 | }
1159 |
1160 | function makeKey_119(str) {
1161 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(1, 24)
1162 | }
1163 |
1164 | function makeKey_120(str) {
1165 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(1, 24)
1166 | }
1167 |
1168 | function makeKey_121(str) {
1169 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(2, 24)
1170 | }
1171 |
1172 | function makeKey_122(str) {
1173 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
1174 | }
1175 |
1176 | function makeKey_123(str) {
1177 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
1178 | }
1179 |
1180 | function makeKey_124(str) {
1181 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(1, 24)
1182 | }
1183 |
1184 | function makeKey_125(str) {
1185 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(2, 24)
1186 | }
1187 |
1188 | function makeKey_126(str) {
1189 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(3, 24)
1190 | }
1191 |
1192 | function makeKey_127(str) {
1193 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(4, 24)
1194 | }
1195 |
1196 | function makeKey_128(str) {
1197 | return hex_md5(makeKey_7(str) + makeKey_5(str)).substr(1, 24)
1198 | }
1199 |
1200 | function makeKey_129(str) {
1201 | return hex_md5(makeKey_8(str) + makeKey_3(str)).substr(2, 24)
1202 | }
1203 |
1204 | function makeKey_130(str) {
1205 | return hex_md5(makeKey_14(str) + makeKey_7(str)).substr(3, 24)
1206 | }
1207 |
1208 | function makeKey_131(str) {
1209 | return hex_md5(makeKey_15(str) + makeKey_10(str)).substr(4, 24)
1210 | }
1211 |
1212 | function makeKey_132(str) {
1213 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(3, 24)
1214 | }
1215 |
1216 | function makeKey_133(str) {
1217 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(4, 24)
1218 | }
1219 |
1220 | function makeKey_134(str) {
1221 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(1, 24)
1222 | }
1223 |
1224 | function makeKey_135(str) {
1225 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(2, 24)
1226 | }
1227 |
1228 | function makeKey_136(str) {
1229 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(1, 24)
1230 | }
1231 |
1232 | function makeKey_137(str) {
1233 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(2, 24)
1234 | }
1235 |
1236 | function makeKey_138(str) {
1237 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(3, 24)
1238 | }
1239 |
1240 | function makeKey_139(str) {
1241 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(4, 24)
1242 | }
1243 |
1244 | function makeKey_140(str) {
1245 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(1, 24)
1246 | }
1247 |
1248 | function makeKey_141(str) {
1249 | return hex_md5(makeKey_5(str) + makeKey_10(str)).substr(2, 24)
1250 | }
1251 |
1252 | function makeKey_142(str) {
1253 | return hex_md5(makeKey_3(str) + makeKey_17(str)).substr(3, 24)
1254 | }
1255 |
1256 | function makeKey_143(str) {
1257 | return hex_md5(makeKey_7(str) + makeKey_18(str)).substr(4, 24)
1258 | }
1259 |
1260 | function makeKey_144(str) {
1261 | return hex_md5(makeKey_17(str) + makeKey_19(str)).substr(1, 24)
1262 | }
1263 |
1264 | function makeKey_145(str) {
1265 | return hex_md5(makeKey_18(str) + makeKey_0(str)).substr(2, 24)
1266 | }
1267 |
1268 | function makeKey_146(str) {
1269 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(3, 24)
1270 | }
1271 |
1272 | function makeKey_147(str) {
1273 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(4, 24)
1274 | }
1275 |
1276 | function makeKey_148(str) {
1277 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(3, 24)
1278 | }
1279 |
1280 | function makeKey_149(str) {
1281 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(4, 24)
1282 | }
1283 |
1284 | function makeKey_150(str) {
1285 | return hex_md5(makeKey_14(str) + makeKey_19(str)).substr(1, 24)
1286 | }
1287 |
1288 | function makeKey_151(str) {
1289 | return hex_md5(makeKey_15(str) + makeKey_0(str)).substr(2, 24)
1290 | }
1291 |
1292 | function makeKey_152(str) {
1293 | return hex_md5(makeKey_16(str) + makeKey_1(str)).substr(3, 24)
1294 | }
1295 |
1296 | function makeKey_153(str) {
1297 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
1298 | }
1299 |
1300 | function makeKey_154(str) {
1301 | return hex_md5(makeKey_10(str) + makeKey_5(str)).substr(1, 24)
1302 | }
1303 |
1304 | function makeKey_155(str) {
1305 | return hex_md5(makeKey_17(str) + makeKey_3(str)).substr(2, 24)
1306 | }
1307 |
1308 | function makeKey_156(str) {
1309 | return hex_md5(makeKey_18(str) + makeKey_7(str)).substr(3, 24)
1310 | }
1311 |
1312 | function makeKey_157(str) {
1313 | return hex_md5(makeKey_19(str) + makeKey_3(str)).substr(4, 24)
1314 | }
1315 |
1316 | function makeKey_158(str) {
1317 | return hex_md5(makeKey_0(str) + makeKey_7(str)).substr(1, 24)
1318 | }
1319 |
1320 | function makeKey_159(str) {
1321 | return hex_md5(makeKey_1(str) + makeKey_8(str)).substr(2, 24)
1322 | }
1323 |
1324 | function makeKey_160(str) {
1325 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(3, 24)
1326 | }
1327 |
1328 | function makeKey_161(str) {
1329 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(4, 24)
1330 | }
1331 |
1332 | function makeKey_162(str) {
1333 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(1, 24)
1334 | }
1335 |
1336 | function makeKey_163(str) {
1337 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(2, 24)
1338 | }
1339 |
1340 | function makeKey_164(str) {
1341 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(3, 24)
1342 | }
1343 |
1344 | function makeKey_165(str) {
1345 | return hex_md5(makeKey_5(str) + makeKey_17(str)).substr(4, 24)
1346 | }
1347 |
1348 | function makeKey_166(str) {
1349 | return hex_md5(makeKey_3(str) + makeKey_18(str)).substr(3, 24)
1350 | }
1351 |
1352 | function makeKey_167(str) {
1353 | return hex_md5(makeKey_7(str) + makeKey_19(str)).substr(4, 24)
1354 | }
1355 |
1356 | function makeKey_168(str) {
1357 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
1358 | }
1359 |
1360 | function makeKey_169(str) {
1361 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
1362 | }
1363 |
1364 | function makeKey_170(str) {
1365 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
1366 | }
1367 |
1368 | function makeKey_171(str) {
1369 | return hex_md5(makeKey_17(str) + makeKey_5(str)).substr(1, 24)
1370 | }
1371 |
1372 | function makeKey_172(str) {
1373 | return hex_md5(makeKey_18(str) + makeKey_3(str)).substr(2, 24)
1374 | }
1375 |
1376 | function makeKey_173(str) {
1377 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(3, 24)
1378 | }
1379 |
1380 | function makeKey_174(str) {
1381 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(4, 24)
1382 | }
1383 |
1384 | function makeKey_175(str) {
1385 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(1, 24)
1386 | }
1387 |
1388 | function makeKey_176(str) {
1389 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
1390 | }
1391 |
1392 | function makeKey_177(str) {
1393 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
1394 | }
1395 |
1396 | function makeKey_178(str) {
1397 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
1398 | }
1399 |
1400 | function makeKey_179(str) {
1401 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
1402 | }
1403 |
1404 | function makeKey_180(str) {
1405 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(3, 24)
1406 | }
1407 |
1408 | function makeKey_181(str) {
1409 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(1, 24)
1410 | }
1411 |
1412 | function makeKey_182(str) {
1413 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(2, 24)
1414 | }
1415 |
1416 | function makeKey_183(str) {
1417 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
1418 | }
1419 |
1420 | function makeKey_184(str) {
1421 | return hex_md5(makeKey_4(str) + makeKey_10(str)).substr(4, 24)
1422 | }
1423 |
1424 | function makeKey_185(str) {
1425 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
1426 | }
1427 |
1428 | function makeKey_186(str) {
1429 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
1430 | }
1431 |
1432 | function makeKey_187(str) {
1433 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(4, 24)
1434 | }
1435 |
1436 | function makeKey_188(str) {
1437 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
1438 | }
1439 |
1440 | function makeKey_189(str) {
1441 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
1442 | }
1443 |
1444 | function makeKey_190(str) {
1445 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
1446 | }
1447 |
1448 | function makeKey_191(str) {
1449 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
1450 | }
1451 |
1452 | function makeKey_192(str) {
1453 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(1, 24)
1454 | }
1455 |
1456 | function makeKey_193(str) {
1457 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(2, 24)
1458 | }
1459 |
1460 | function makeKey_194(str) {
1461 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(3, 24)
1462 | }
1463 |
1464 | function makeKey_195(str) {
1465 | return hex_md5(makeKey_4(str) + makeKey_14(str)).substr(4, 24)
1466 | }
1467 |
1468 | function makeKey_196(str) {
1469 | return hex_md5(makeKey_5(str) + makeKey_15(str)).substr(3, 24)
1470 | }
1471 |
1472 | function makeKey_197(str) {
1473 | return hex_md5(makeKey_3(str) + makeKey_16(str)).substr(4, 24)
1474 | }
1475 |
1476 | function makeKey_198(str) {
1477 | return hex_md5(makeKey_3(str) + makeKey_9(str)).substr(1, 24)
1478 | }
1479 |
1480 | function makeKey_199(str) {
1481 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
1482 | }
1483 |
1484 | function makeKey_200(str) {
1485 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
1486 | }
1487 |
1488 | function makeKey_201(str) {
1489 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
1490 | }
1491 |
1492 | function makeKey_202(str) {
1493 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
1494 | }
1495 |
1496 | function makeKey_203(str) {
1497 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
1498 | }
1499 |
1500 | function makeKey_204(str) {
1501 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
1502 | }
1503 |
1504 | function makeKey_205(str) {
1505 | return hex_md5(makeKey_14(str) + makeKey_3(str)).substr(4, 24)
1506 | }
1507 |
1508 | function makeKey_206(str) {
1509 | return hex_md5(makeKey_15(str) + makeKey_7(str)).substr(1, 24)
1510 | }
1511 |
1512 | function makeKey_207(str) {
1513 | return hex_md5(makeKey_16(str) + makeKey_17(str)).substr(2, 24)
1514 | }
1515 |
1516 | function makeKey_208(str) {
1517 | return hex_md5(makeKey_9(str) + makeKey_18(str)).substr(3, 24)
1518 | }
1519 |
1520 | function makeKey_209(str) {
1521 | return hex_md5(makeKey_10(str) + makeKey_19(str)).substr(4, 24)
1522 | }
1523 |
1524 | function makeKey_210(str) {
1525 | return hex_md5(makeKey_17(str) + makeKey_0(str)).substr(1, 24)
1526 | }
1527 |
1528 | function makeKey_211(str) {
1529 | return hex_md5(makeKey_18(str) + makeKey_1(str)).substr(3, 24)
1530 | }
1531 |
1532 | function makeKey_212(str) {
1533 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(1, 24)
1534 | }
1535 |
1536 | function makeKey_213(str) {
1537 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(2, 24)
1538 | }
1539 |
1540 | function makeKey_214(str) {
1541 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(3, 24)
1542 | }
1543 |
1544 | function makeKey_215(str) {
1545 | return hex_md5(makeKey_4(str) + makeKey_16(str)).substr(4, 24)
1546 | }
1547 |
1548 | function makeKey_216(str) {
1549 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
1550 | }
1551 |
1552 | function makeKey_217(str) {
1553 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
1554 | }
1555 |
1556 | function makeKey_218(str) {
1557 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(4, 24)
1558 | }
1559 |
1560 | function makeKey_219(str) {
1561 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(1, 24)
1562 | }
1563 |
1564 | function makeKey_220(str) {
1565 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(2, 24)
1566 | }
1567 |
1568 | function makeKey_221(str) {
1569 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(3, 24)
1570 | }
1571 |
1572 | function makeKey_222(str) {
1573 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(4, 24)
1574 | }
1575 |
1576 | function makeKey_223(str) {
1577 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(1, 24)
1578 | }
1579 |
1580 | function makeKey_224(str) {
1581 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(2, 24)
1582 | }
1583 |
1584 | function makeKey_225(str) {
1585 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(3, 24)
1586 | }
1587 |
1588 | function makeKey_226(str) {
1589 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
1590 | }
1591 |
1592 | function makeKey_227(str) {
1593 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
1594 | }
1595 |
1596 | function makeKey_228(str) {
1597 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
1598 | }
1599 |
1600 | function makeKey_229(str) {
1601 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
1602 | }
1603 |
1604 | function makeKey_230(str) {
1605 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
1606 | }
1607 |
1608 | function makeKey_231(str) {
1609 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
1610 | }
1611 |
1612 | function makeKey_232(str) {
1613 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(4, 24)
1614 | }
1615 |
1616 | function makeKey_233(str) {
1617 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(1, 24)
1618 | }
1619 |
1620 | function makeKey_234(str) {
1621 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(2, 24)
1622 | }
1623 |
1624 | function makeKey_235(str) {
1625 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(3, 24)
1626 | }
1627 |
1628 | function makeKey_236(str) {
1629 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(4, 24)
1630 | }
1631 |
1632 | function makeKey_237(str) {
1633 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(1, 24)
1634 | }
1635 |
1636 | function makeKey_238(str) {
1637 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
1638 | }
1639 |
1640 | function makeKey_239(str) {
1641 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(1, 24)
1642 | }
1643 |
1644 | function makeKey_240(str) {
1645 | return hex_md5(makeKey_14(str) + makeKey_0(str)).substr(2, 24)
1646 | }
1647 |
1648 | function makeKey_241(str) {
1649 | return hex_md5(makeKey_15(str) + makeKey_1(str)).substr(3, 24)
1650 | }
1651 |
1652 | function makeKey_242(str) {
1653 | return hex_md5(makeKey_16(str) + makeKey_4(str)).substr(4, 24)
1654 | }
1655 |
1656 | function makeKey_243(str) {
1657 | return hex_md5(makeKey_9(str) + makeKey_5(str)).substr(3, 24)
1658 | }
1659 |
1660 | function makeKey_244(str) {
1661 | return hex_md5(makeKey_10(str) + makeKey_3(str)).substr(4, 24)
1662 | }
1663 |
1664 | function makeKey_245(str) {
1665 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(4, 24)
1666 | }
1667 |
1668 | function makeKey_246(str) {
1669 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(2, 24)
1670 | }
1671 |
1672 | function makeKey_247(str) {
1673 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(3, 24)
1674 | }
1675 |
1676 | function makeKey_248(str) {
1677 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
1678 | }
1679 |
1680 | function makeKey_249(str) {
1681 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
1682 | }
1683 |
1684 | function makeKey_250(str) {
1685 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(3, 24)
1686 | }
1687 |
1688 | function makeKey_251(str) {
1689 | return hex_md5(makeKey_19(str) + makeKey_4(str)).substr(4, 24)
1690 | }
1691 |
1692 | function makeKey_252(str) {
1693 | return hex_md5(makeKey_0(str) + makeKey_14(str)).substr(1, 24)
1694 | }
1695 |
1696 | function makeKey_253(str) {
1697 | return hex_md5(makeKey_1(str) + makeKey_15(str)).substr(2, 24)
1698 | }
1699 |
1700 | function makeKey_254(str) {
1701 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
1702 | }
1703 |
1704 | function makeKey_255(str) {
1705 | return hex_md5(makeKey_5(str) + makeKey_14(str)).substr(4, 24)
1706 | }
1707 |
1708 | function makeKey_256(str) {
1709 | return hex_md5(makeKey_3(str) + makeKey_15(str)).substr(1, 24)
1710 | }
1711 |
1712 | function makeKey_257(str) {
1713 | return hex_md5(makeKey_7(str) + makeKey_16(str)).substr(3, 24)
1714 | }
1715 |
1716 | function makeKey_258(str) {
1717 | return hex_md5(makeKey_0(str) + makeKey_9(str)).substr(1, 24)
1718 | }
1719 |
1720 | function makeKey_259(str) {
1721 | return hex_md5(makeKey_1(str) + makeKey_10(str)).substr(2, 24)
1722 | }
1723 |
1724 | function makeKey_260(str) {
1725 | return hex_md5(makeKey_4(str) + makeKey_17(str)).substr(3, 24)
1726 | }
1727 |
1728 | function makeKey_261(str) {
1729 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(4, 24)
1730 | }
1731 |
1732 | function makeKey_262(str) {
1733 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(3, 24)
1734 | }
1735 |
1736 | function makeKey_263(str) {
1737 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
1738 | }
1739 |
1740 | function makeKey_264(str) {
1741 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
1742 | }
1743 |
1744 | function makeKey_265(str) {
1745 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
1746 | }
1747 |
1748 | function makeKey_266(str) {
1749 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(2, 24)
1750 | }
1751 |
1752 | function makeKey_267(str) {
1753 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
1754 | }
1755 |
1756 | function makeKey_268(str) {
1757 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(4, 24)
1758 | }
1759 |
1760 | function makeKey_269(str) {
1761 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(1, 24)
1762 | }
1763 |
1764 | function makeKey_270(str) {
1765 | return hex_md5(makeKey_18(str) + makeKey_14(str)).substr(2, 24)
1766 | }
1767 |
1768 | function makeKey_271(str) {
1769 | return hex_md5(makeKey_19(str) + makeKey_15(str)).substr(3, 24)
1770 | }
1771 |
1772 | function makeKey_272(str) {
1773 | return hex_md5(makeKey_0(str) + makeKey_16(str)).substr(4, 24)
1774 | }
1775 |
1776 | function makeKey_273(str) {
1777 | return hex_md5(makeKey_1(str) + makeKey_9(str)).substr(3, 24)
1778 | }
1779 |
1780 | function makeKey_274(str) {
1781 | return hex_md5(makeKey_19(str) + makeKey_1(str)).substr(4, 24)
1782 | }
1783 |
1784 | function makeKey_275(str) {
1785 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(1, 24)
1786 | }
1787 |
1788 | function makeKey_276(str) {
1789 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(2, 24)
1790 | }
1791 |
1792 | function makeKey_277(str) {
1793 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(2, 24)
1794 | }
1795 |
1796 | function makeKey_278(str) {
1797 | return hex_md5(makeKey_5(str) + makeKey_4(str)).substr(3, 24)
1798 | }
1799 |
1800 | function makeKey_279(str) {
1801 | return hex_md5(makeKey_3(str) + makeKey_5(str)).substr(1, 24)
1802 | }
1803 |
1804 | function makeKey_280(str) {
1805 | return hex_md5(makeKey_7(str) + makeKey_3(str)).substr(2, 24)
1806 | }
1807 |
1808 | function makeKey_281(str) {
1809 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
1810 | }
1811 |
1812 | function makeKey_282(str) {
1813 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
1814 | }
1815 |
1816 | function makeKey_283(str) {
1817 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
1818 | }
1819 |
1820 | function makeKey_284(str) {
1821 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
1822 | }
1823 |
1824 | function makeKey_285(str) {
1825 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
1826 | }
1827 |
1828 | function makeKey_286(str) {
1829 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
1830 | }
1831 |
1832 | function makeKey_287(str) {
1833 | return hex_md5(makeKey_14(str) + makeKey_4(str)).substr(1, 24)
1834 | }
1835 |
1836 | function makeKey_288(str) {
1837 | return hex_md5(makeKey_15(str) + makeKey_14(str)).substr(3, 24)
1838 | }
1839 |
1840 | function makeKey_289(str) {
1841 | return hex_md5(makeKey_16(str) + makeKey_15(str)).substr(1, 24)
1842 | }
1843 |
1844 | function makeKey_290(str) {
1845 | return hex_md5(makeKey_9(str) + makeKey_16(str)).substr(2, 24)
1846 | }
1847 |
1848 | function makeKey_291(str) {
1849 | return hex_md5(makeKey_10(str) + makeKey_9(str)).substr(3, 24)
1850 | }
1851 |
1852 | function makeKey_292(str) {
1853 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(4, 24)
1854 | }
1855 |
1856 | function makeKey_293(str) {
1857 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(3, 24)
1858 | }
1859 |
1860 | function makeKey_294(str) {
1861 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
1862 | }
1863 |
1864 | function makeKey_295(str) {
1865 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
1866 | }
1867 |
1868 | function makeKey_296(str) {
1869 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(1, 24)
1870 | }
1871 |
1872 | function makeKey_297(str) {
1873 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(2, 24)
1874 | }
1875 |
1876 | function makeKey_298(str) {
1877 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(3, 24)
1878 | }
1879 |
1880 | function makeKey_299(str) {
1881 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(4, 24)
1882 | }
1883 |
1884 | function makeKey_300(str) {
1885 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(1, 24)
1886 | }
1887 |
1888 | function makeKey_301(str) {
1889 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(2, 24)
1890 | }
1891 |
1892 | function makeKey_302(str) {
1893 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(3, 24)
1894 | }
1895 |
1896 | function makeKey_303(str) {
1897 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(4, 24)
1898 | }
1899 |
1900 | function makeKey_304(str) {
1901 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(3, 24)
1902 | }
1903 |
1904 | function makeKey_305(str) {
1905 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(4, 24)
1906 | }
1907 |
1908 | function makeKey_306(str) {
1909 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(1, 24)
1910 | }
1911 |
1912 | function makeKey_307(str) {
1913 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(2, 24)
1914 | }
1915 |
1916 | function makeKey_308(str) {
1917 | return hex_md5(makeKey_14(str) + makeKey_14(str)).substr(2, 24)
1918 | }
1919 |
1920 | function makeKey_309(str) {
1921 | return hex_md5(makeKey_15(str) + makeKey_15(str)).substr(3, 24)
1922 | }
1923 |
1924 | function makeKey_310(str) {
1925 | return hex_md5(makeKey_16(str) + makeKey_16(str)).substr(1, 24)
1926 | }
1927 |
1928 | function makeKey_311(str) {
1929 | return hex_md5(makeKey_9(str) + makeKey_9(str)).substr(2, 24)
1930 | }
1931 |
1932 | function makeKey_312(str) {
1933 | return hex_md5(makeKey_10(str) + makeKey_10(str)).substr(3, 24)
1934 | }
1935 |
1936 | function makeKey_313(str) {
1937 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(4, 24)
1938 | }
1939 |
1940 | function makeKey_314(str) {
1941 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(1, 24)
1942 | }
1943 |
1944 | function makeKey_315(str) {
1945 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(2, 24)
1946 | }
1947 |
1948 | function makeKey_316(str) {
1949 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(3, 24)
1950 | }
1951 |
1952 | function makeKey_317(str) {
1953 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
1954 | }
1955 |
1956 | function makeKey_318(str) {
1957 | return hex_md5(makeKey_5(str) + makeKey_5(str)).substr(1, 24)
1958 | }
1959 |
1960 | function makeKey_319(str) {
1961 | return hex_md5(makeKey_3(str) + makeKey_3(str)).substr(3, 24)
1962 | }
1963 |
1964 | function makeKey_320(str) {
1965 | return hex_md5(makeKey_7(str) + makeKey_7(str)).substr(1, 24)
1966 | }
1967 |
1968 | function makeKey_321(str) {
1969 | return hex_md5(makeKey_17(str) + makeKey_17(str)).substr(2, 24)
1970 | }
1971 |
1972 | function makeKey_322(str) {
1973 | return hex_md5(makeKey_18(str) + makeKey_18(str)).substr(3, 24)
1974 | }
1975 |
1976 | function makeKey_323(str) {
1977 | return hex_md5(makeKey_19(str) + makeKey_19(str)).substr(4, 24)
1978 | }
1979 |
1980 | function makeKey_324(str) {
1981 | return hex_md5(makeKey_0(str) + makeKey_0(str)).substr(3, 24)
1982 | }
1983 |
1984 | function makeKey_325(str) {
1985 | return hex_md5(makeKey_1(str) + makeKey_1(str)).substr(4, 24)
1986 | }
1987 |
1988 | function makeKey_326(str) {
1989 | return hex_md5(makeKey_4(str) + makeKey_4(str)).substr(4, 24)
1990 | }
1991 |
1992 | function makeKey_327(str) {
1993 | return hex_md5(makeKey_19(str) + makeKey_14(str)).substr(1, 24)
1994 | }
1995 |
1996 | function makeKey_328(str) {
1997 | return hex_md5(makeKey_0(str) + makeKey_15(str)).substr(2, 24)
1998 | }
1999 |
2000 | function makeKey_329(str) {
2001 | return hex_md5(makeKey_1(str) + makeKey_16(str)).substr(3, 24)
2002 | }
2003 |
2004 | function makeKey_330(str) {
2005 | return hex_md5(makeKey_4(str) + makeKey_9(str)).substr(4, 24)
2006 | }
2007 |
2008 | function makeKey_331(str) {
2009 | return hex_md5(makeKey_19(str) + makeKey_10(str)).substr(1, 24)
2010 | }
2011 |
2012 | function makeKey_332(str) {
2013 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
2014 | }
2015 |
2016 | function makeKey_333(str) {
2017 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
2018 | }
2019 |
2020 | function makeKey_334(str) {
2021 | return hex_md5(makeKey_4(str) + makeKey_18(str)).substr(4, 24)
2022 | }
2023 |
2024 | function makeKey_335(str) {
2025 | return hex_md5(makeKey_5(str) + makeKey_19(str)).substr(3, 24)
2026 | }
2027 |
2028 | function makeKey_336(str) {
2029 | return hex_md5(makeKey_3(str) + makeKey_0(str)).substr(4, 24)
2030 | }
2031 |
2032 | function makeKey_337(str) {
2033 | return hex_md5(makeKey_7(str) + makeKey_1(str)).substr(2, 24)
2034 | }
2035 |
2036 | function makeKey_338(str) {
2037 | return hex_md5(makeKey_0(str) + makeKey_4(str)).substr(3, 24)
2038 | }
2039 |
2040 | function makeKey_339(str) {
2041 | return hex_md5(makeKey_1(str) + makeKey_5(str)).substr(1, 24)
2042 | }
2043 |
2044 | function makeKey_340(str) {
2045 | return hex_md5(makeKey_4(str) + makeKey_3(str)).substr(2, 24)
2046 | }
2047 |
2048 | function makeKey_341(str) {
2049 | return hex_md5(makeKey_17(str) + makeKey_7(str)).substr(3, 24)
2050 | }
2051 |
2052 | function makeKey_342(str) {
2053 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
2054 | }
2055 |
2056 | function makeKey_343(str) {
2057 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
2058 | }
2059 |
2060 | function makeKey_344(str) {
2061 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
2062 | }
2063 |
2064 | function makeKey_345(str) {
2065 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
2066 | }
2067 |
2068 | function makeKey_346(str) {
2069 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
2070 | }
2071 |
2072 | function makeKey_347(str) {
2073 | return hex_md5(makeKey_9(str) + makeKey_4(str)).substr(1, 24)
2074 | }
2075 |
2076 | function makeKey_348(str) {
2077 | return hex_md5(makeKey_10(str) + makeKey_14(str)).substr(3, 24)
2078 | }
2079 |
2080 | function makeKey_349(str) {
2081 | return hex_md5(makeKey_17(str) + makeKey_15(str)).substr(1, 24)
2082 | }
2083 |
2084 | function makeKey_350(str) {
2085 | return hex_md5(makeKey_18(str) + makeKey_16(str)).substr(2, 24)
2086 | }
2087 |
2088 | function makeKey_351(str) {
2089 | return hex_md5(makeKey_19(str) + makeKey_9(str)).substr(3, 24)
2090 | }
2091 |
2092 | function makeKey_352(str) {
2093 | return hex_md5(makeKey_0(str) + makeKey_10(str)).substr(4, 24)
2094 | }
2095 |
2096 | function makeKey_353(str) {
2097 | return hex_md5(makeKey_1(str) + makeKey_17(str)).substr(3, 24)
2098 | }
2099 |
2100 | function makeKey_354(str) {
2101 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(4, 24)
2102 | }
2103 |
2104 | function makeKey_355(str) {
2105 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(4, 24)
2106 | }
2107 |
2108 | function makeKey_356(str) {
2109 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(1, 24)
2110 | }
2111 |
2112 | function makeKey_357(str) {
2113 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(2, 24)
2114 | }
2115 |
2116 | function makeKey_358(str) {
2117 | return hex_md5(makeKey_4(str) + makeKey_5(str)).substr(3, 24)
2118 | }
2119 |
2120 | function makeKey_359(str) {
2121 | return hex_md5(makeKey_5(str) + makeKey_3(str)).substr(4, 24)
2122 | }
2123 |
2124 | function makeKey_360(str) {
2125 | return hex_md5(makeKey_3(str) + makeKey_7(str)).substr(2, 24)
2126 | }
2127 |
2128 | function makeKey_361(str) {
2129 | return hex_md5(makeKey_7(str) + makeKey_17(str)).substr(3, 24)
2130 | }
2131 |
2132 | function makeKey_362(str) {
2133 | return hex_md5(makeKey_17(str) + makeKey_18(str)).substr(1, 24)
2134 | }
2135 |
2136 | function makeKey_363(str) {
2137 | return hex_md5(makeKey_18(str) + makeKey_19(str)).substr(2, 24)
2138 | }
2139 |
2140 | function makeKey_364(str) {
2141 | return hex_md5(makeKey_19(str) + makeKey_0(str)).substr(3, 24)
2142 | }
2143 |
2144 | function makeKey_365(str) {
2145 | return hex_md5(makeKey_0(str) + makeKey_1(str)).substr(4, 24)
2146 | }
2147 |
2148 | function makeKey_366(str) {
2149 | return hex_md5(makeKey_1(str) + makeKey_4(str)).substr(1, 24)
2150 | }
2151 |
2152 | function makeKey_367(str) {
2153 | return hex_md5(makeKey_4(str) + makeKey_7(str)).substr(2, 24)
2154 | }
2155 |
2156 | function makeKey_368(str) {
2157 | return hex_md5(makeKey_14(str) + makeKey_17(str)).substr(3, 24)
2158 | }
2159 |
2160 | function makeKey_369(str) {
2161 | return hex_md5(makeKey_15(str) + makeKey_18(str)).substr(4, 24)
2162 | }
2163 |
2164 | function makeKey_370(str) {
2165 | return hex_md5(makeKey_16(str) + makeKey_19(str)).substr(1, 24)
2166 | }
2167 |
2168 | function makeKey_371(str) {
2169 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(3, 24)
2170 | }
2171 |
2172 | function makeKey_372(str) {
2173 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(1, 24)
2174 | }
2175 |
2176 | function makeKey_373(str) {
2177 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(2, 24)
2178 | }
2179 |
2180 | function makeKey_374(str) {
2181 | return hex_md5(makeKey_19(str) + makeKey_17(str)).substr(3, 24)
2182 | }
2183 |
2184 | function makeKey_375(str) {
2185 | return hex_md5(makeKey_0(str) + makeKey_18(str)).substr(4, 24)
2186 | }
2187 |
2188 | function makeKey_376(str) {
2189 | return hex_md5(makeKey_1(str) + makeKey_19(str)).substr(3, 24)
2190 | }
2191 |
2192 | function makeKey_377(str) {
2193 | return hex_md5(makeKey_4(str) + makeKey_0(str)).substr(4, 24)
2194 | }
2195 |
2196 | function makeKey_378(str) {
2197 | return hex_md5(makeKey_5(str) + makeKey_1(str)).substr(4, 24)
2198 | }
2199 |
2200 | function makeKey_379(str) {
2201 | return hex_md5(makeKey_3(str) + makeKey_4(str)).substr(1, 24)
2202 | }
2203 |
2204 | function makeKey_380(str) {
2205 | return hex_md5(makeKey_7(str) + makeKey_9(str)).substr(2, 24)
2206 | }
2207 |
2208 | function makeKey_381(str) {
2209 | return hex_md5(makeKey_17(str) + makeKey_10(str)).substr(3, 24)
2210 | }
2211 |
2212 | function makeKey_382(str) {
2213 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
2214 | }
2215 |
2216 | function makeKey_383(str) {
2217 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
2218 | }
2219 |
2220 | function makeKey_384(str) {
2221 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(2, 24)
2222 | }
2223 |
2224 | function makeKey_385(str) {
2225 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(3, 24)
2226 | }
2227 |
2228 | function makeKey_386(str) {
2229 | return hex_md5(makeKey_4(str) + makeKey_1(str)).substr(4, 24)
2230 | }
2231 |
2232 | function makeKey_387(str) {
2233 | return hex_md5(makeKey_17(str) + makeKey_1(str)).substr(2, 24)
2234 | }
2235 |
2236 | function makeKey_388(str) {
2237 | return hex_md5(makeKey_18(str) + makeKey_4(str)).substr(3, 24)
2238 | }
2239 |
2240 | function makeKey_389(str) {
2241 | return hex_md5(makeKey_19(str) + makeKey_7(str)).substr(1, 24)
2242 | }
2243 |
2244 | function makeKey_390(str) {
2245 | return hex_md5(makeKey_0(str) + makeKey_17(str)).substr(2, 24)
2246 | }
2247 |
2248 | function makeKey_391(str) {
2249 | return hex_md5(makeKey_1(str) + makeKey_18(str)).substr(3, 24)
2250 | }
2251 |
2252 | function makeKey_392(str) {
2253 | return hex_md5(makeKey_4(str) + makeKey_19(str)).substr(4, 24)
2254 | }
2255 |
2256 | function makeKey_393(str) {
2257 | return hex_md5(makeKey_9(str) + makeKey_0(str)).substr(1, 24)
2258 | }
2259 |
2260 | function makeKey_394(str) {
2261 | return hex_md5(makeKey_10(str) + makeKey_1(str)).substr(2, 24)
2262 | }
2263 |
2264 | function makeKey_395(str) {
2265 | return hex_md5(makeKey_17(str) + makeKey_4(str)).substr(3, 24)
2266 | }
2267 |
2268 | function makeKey_396(str) {
2269 | return hex_md5(makeKey_18(str) + makeKey_17(str)).substr(4, 24)
2270 | }
2271 |
2272 | function makeKey_397(str) {
2273 | return hex_md5(makeKey_19(str) + makeKey_18(str)).substr(1, 24)
2274 | }
2275 |
2276 | function makeKey_398(str) {
2277 | return hex_md5(makeKey_0(str) + makeKey_19(str)).substr(3, 24)
2278 | }
2279 |
2280 | function makeKey_399(str) {
2281 | return hex_md5(makeKey_1(str) + makeKey_0(str)).substr(1, 24)
2282 | }
2283 | 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];
2284 | var funIndex = strToLong(cookie) % arrFun.length;
2285 | var fun = arrFun[funIndex];
2286 | var result = fun(cookie);
2287 | return result;
2288 | }
--------------------------------------------------------------------------------
/gland_mmewmd/ywtu.js:
--------------------------------------------------------------------------------
1 | function _$go(_$EO) {
2 | function _$az() {
3 | var _$BF = _$h7[_$EO.charCodeAt(_$fq++)];
4 | if (_$BF < 0) {
5 | return _$h7[_$EO.charCodeAt(_$fq++)] * 7396 + _$h7[_$EO.charCodeAt(_$fq++)] * 86 + _$h7[_$EO.charCodeAt(_$fq++)];
6 | } else if (_$BF < 64) {
7 | return _$BF;
8 | } else if (_$BF <= 86) {
9 | return _$BF * 86 + _$h7[_$EO.charCodeAt(_$fq++)] - 5440;
10 | }
11 | }
12 |
13 | var _$pM = _$EO.length, _$fq = 0, _$EA, _$Cz = 0, _$h7 = _$z0()[5];
14 | var _$Ea = _$az();
15 | _$kI = _$Hi(_$kI);
16 | _$FM = _$Hi(_$FM);
17 | var _$zG = new Array(_$Ea);
18 | while (_$fq < _$pM) {
19 | _$EA = _$az();
20 | _$zG[_$Cz++] = _$EO.substr(_$fq, _$EA);
21 | _$fq += _$EA;
22 | }
23 | _$Hc = function (_$BF) {
24 | var _$Cl = _$BF % 64;
25 | var _$Cs = _$BF - _$Cl;
26 | _$Cl = _$nM(_$Cl);
27 | _$Cl ^= _$kI;
28 | _$Cs += _$Cl;
29 | return _$zG[_$Cs];
30 | };
31 | }
32 | function _$nM(_$Cz) {
33 | var _$h7 = [0, 1, 3, 7, 0xf, 0x1f];
34 | return (_$Cz >> _$FM) | ((_$Cz & _$h7[_$FM]) << (6 - _$FM));
35 | }
36 | function _$Hi(_$Cz, _$h7) {
37 | _$Cz = parseInt(_$Cz);
38 | if (!isNaN(_$Cz)) return _$Cz;
39 | if (arguments.length > 1) return _$h7;
40 | return NaN;
41 | }
42 |
43 | function _$pZ(){
44 | return ""
45 | }
46 |
47 | function _$xR() {
48 | return "qrcklmDoExthWJiHAp1sVYKU3RFMQw8IGfPO92bvLNj.7zXBaSnu0TC6gy_4Ze5d{}|~ !#$%()*+,-:=?@[]^".split(_$pZ());
49 | }
50 |
51 | function _$zh(_$h7, _$Cz, _$fq, _$Ea) {
52 | for (; _$Cz < _$fq; _$Cz++) {
53 | _$h7[_$Cz] = _$Ea;
54 | }
55 | }
56 |
57 | function _$wV() {
58 | var _$fq = _$xR();
59 | var _$Cz = [];
60 | for (var _$az = 0; _$az < 6; _$az++) {
61 | _$Cz[_$az] = [];
62 | }
63 | _$z0 = function () {
64 | return _$Cz;
65 | };
66 | var _$pM = _$Cz[0], _$Ea = _$Cz[1], _$EA = _$Cz[2], _$EO = _$Cz[3], _$ht = _$Cz[4], _$h7 = _$Cz[5];
67 | _$zh(_$h7, 0, 255, -1);
68 | for (_$az = 0; _$az < _$fq.length; _$az++) {
69 | var _$zG = _$fq[_$az].charCodeAt(0);
70 | _$pM[_$zG] = _$az << 2;
71 | _$Ea[_$zG] = _$az >> 4;
72 | _$EA[_$zG] = (_$az & 15) << 4;
73 | _$EO[_$zG] = _$az >> 2;
74 | _$ht[_$zG] = (_$az & 3) << 6;
75 | _$h7[_$zG] = _$az;
76 | }
77 | }
78 |
79 | function _$Em() {
80 | return _$BI._$b0();
81 | }
82 | function _$vz() {
83 | return _$BI._$ap();
84 | }
85 | function _$qy(meta) {
86 | function _$Ea() {
87 | var _$zG = _$Cz.charCodeAt(_$pM);
88 | if (_$zG >= 40) {
89 | _$pM++;
90 | return _$zG - 40;
91 | }
92 | var _$EA = 39 - _$zG;
93 | _$zG = 0;
94 | for (var _$az = 0; _$az < _$EA; _$az++) {
95 | _$zG *= 87;
96 | _$zG += _$Cz.charCodeAt(_$pM + 1 + _$az) - 40;
97 | }
98 | _$pM += _$EA + 1;
99 | return _$zG + 87;
100 | }
101 |
102 | function _$EO() {
103 | var _$EA = _$Ea();
104 | var _$az = _$Cz.substr(_$pM, _$EA);
105 | _$pM += _$EA;
106 | return _$az;
107 | }
108 |
109 | function _$h7() {
110 | return _$Cz.substr(_$pM);
111 | }
112 |
113 | var _$Cz = meta, _$pM = 0, _$fq = {};
114 | _$fq._$b0 = _$EO;
115 | _$fq._$ap = _$h7;
116 | return _$fq;
117 | }
118 | var _$Hc = undefined;
119 | // _$go(meta);
120 | var _$BI = undefined;
121 | var _$z0 = undefined;
122 | function _$kw(){
123 | return "`"
124 | }
125 | function _$uV() {
126 | var _$h7 = _$DY(_$Em()).split(_$kw());
127 | for (var _$Cz = 0; _$Cz < _$h7.length; _$Cz++) _$h7[_$Cz] = _$Hi(_$h7[_$Cz]);
128 | return _$h7;
129 | }
130 |
131 | _$yS = _$Aw("qzs|u`v");
132 |
133 | function _$fU(_$h7) {
134 | return _$h7[_$yS];
135 | }
136 |
137 | function _$Aw(_$fq) {
138 | var _$h7, _$EO = _$fq.length, _$EA = new Array(_$EO - 1);
139 | var _$Cz = _$fq.charCodeAt(0) - 93;
140 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) {
141 | _$h7 = _$fq.charCodeAt(_$Ea);
142 | if (_$h7 >= 40 && _$h7 < 92) {
143 | _$h7 += _$Cz;
144 | if (_$h7 >= 92) _$h7 = _$h7 - 52;
145 | } else if (_$h7 >= 93 && _$h7 < 127) {
146 | _$h7 += _$Cz;
147 | if (_$h7 >= 127) _$h7 = _$h7 - 34;
148 | }
149 | _$EA[_$pM++] = _$h7;
150 | }
151 | return String.fromCharCode.apply(null, _$EA);
152 | }
153 |
154 | function _$DY(_$fq) {
155 | var _$h7, _$EO = _$fU(_$fq), _$EA = new Array(_$EO - 1);
156 | var _$Cz = _$fq.charCodeAt(0) - 40;
157 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) {
158 | _$h7 = _$fq.charCodeAt(_$Ea);
159 | if (_$h7 >= 40 && _$h7 < 127) {
160 | _$h7 += _$Cz;
161 | if (_$h7 >= 127) _$h7 = _$h7 - 87;
162 | }
163 | _$EA[_$pM++] = _$h7;
164 | }
165 | return String.fromCharCode.apply(null, _$EA);
166 | }
167 |
168 | function getc(meta){
169 | _$BI = _$qy(meta);
170 | for(var i = 0; i < 11; i++){
171 | var _$Ea = _$uV();
172 | }
173 | _$kI = _$Ea[1];
174 | _$D1 = _$Ea[0];
175 | _$FM = _$Ea[2];
176 | _$Em();
177 | var r = _$vz();
178 | _$wV();
179 | _$go(r);
180 | return _$Hc(26)
181 | }
182 |
183 | /**
184 | *
185 | * developer: sml2h3
186 | * time: 2019.1.20
187 | * GitHub:https://github.com/sml2h3
188 | * QQ group:119794042
189 | */
190 |
191 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | PyExecJS
2 | requests
3 | lxml
--------------------------------------------------------------------------------
/spider_demo.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 |
4 | """
5 |
6 | @author: sml2h3
7 |
8 | @license: (C) Copyright 2018-2020
9 |
10 | @contact: sml2h3@gmail.com
11 |
12 | @software: mmewmd_crack_for_wenshu
13 |
14 | @file: spider_demo
15 |
16 | @time: 2019-01-21
17 | """
18 | import requests
19 | import time
20 | import execjs
21 | from lxml import etree
22 | import random
23 | from urllib import parse
24 | import re
25 | import os
26 | import json
27 |
28 | with open('encrypt.js', 'r', encoding="utf-8") as f:
29 | js1 = f.read()
30 | ctx1 = execjs.compile(js1)
31 | with open('ywtu.js', 'r', encoding="utf-8") as f:
32 | js2 = f.read()
33 | ctx2 = execjs.compile(js2)
34 | with open('vl5x.js', 'r', encoding="utf-8") as fp:
35 | js = fp.read()
36 | ctx = execjs.compile(js)
37 | with open('get_docid.js', 'r', encoding="utf-8") as fp:
38 | js = fp.read()
39 | get_docid = execjs.compile(js)
40 |
41 |
42 | class SpiderManager(object):
43 |
44 | def __init__(self, debug=False):
45 | self.f80t = ""
46 | self.f80t_n = ""
47 | self.meta = ""
48 | self.f80s = ""
49 | self.ywtu = ""
50 | self.vjkl5 = ""
51 | self.list = ""
52 | self.debug = debug
53 | self.conditions = ""
54 | self.url = "http://wenshu.court.gov.cn/List/List?sorttype=1&conditions={}"
55 | self.url_for_content = "http://wenshu.court.gov.cn/List/ListContent"
56 | self.headers = {
57 | "Accept": "*/*",
58 | "Accept-Encoding": "gzip, deflate",
59 | "Accept-Language": "zh-CN,zh;q=0.9",
60 | "Connection": "keep-alive",
61 | "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
62 | "Host": "wenshu.court.gov.cn",
63 | "Origin": "http://wenshu.court.gov.cn",
64 | "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) "
65 | "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
66 | }
67 | self.cookies = {
68 | "ccpassport": "1ff98c661b8f424096c234ce889da9b0",
69 | "_gscu_2116842793": "47626758817stt18",
70 | "_gscs_2116842793": "47659453ttzz3o20|pv:14",
71 | "_gscbrs_2116842793": "1",
72 | "wzwsconfirm": "0e561c10c60c2f0d44410644eb3c2403",
73 | "wzwstemplate": "NQ==",
74 | "wzwschallenge": "-1",
75 | "wzwsvtime": ""
76 | }
77 | self.data = {
78 | "Param": "案件类型:民事案件",
79 | "Index": "",
80 | "Page": "20",
81 | "Order": "法院层级",
82 | "Direction": "asc",
83 | "vl5x": "",
84 | "number": "wens",
85 | "guid": ""
86 | }
87 |
88 | def setconditions(self, conditions: str):
89 | self.conditions = conditions
90 |
91 | def init(self):
92 | self.f80t = ""
93 | self.f80t_n = ""
94 | self.meta = ""
95 | self.f80s = ""
96 | self.ywtu = ""
97 | self.vjkl5 = ""
98 | if not self.conditions:
99 | if self.debug:
100 | print("条件不能为空")
101 | return False
102 | request_url = self.url.format(self.conditions)
103 | headers = self.headers
104 | cookies = self.cookies
105 | cookies['wzwsvtime'] = str(int(time.time()))
106 | # cookies = "; ".join(cookies)
107 | try:
108 |
109 | rsp = requests.get(request_url, headers=headers, cookies=cookies)
110 | rsp.close()
111 | except Exception as e:
112 | if self.debug:
113 | print(e)
114 | print("网络连接出错,稍等2秒后重新执行")
115 | time.sleep(2)
116 | return self.init()
117 |
118 | self.f80s = rsp.cookies['FSSBBIl1UgzbN7N80S']
119 | self.f80t = rsp.cookies['FSSBBIl1UgzbN7N80T']
120 | if rsp.status_code == 400:
121 | if self.debug:
122 | print("网络连接出错,稍等2秒后重新执行")
123 | time.sleep(2)
124 | return self.init()
125 | if rsp.text == "":
126 | if self.debug:
127 | print("网络连接出错,稍等2秒后重新执行")
128 | time.sleep(2)
129 | return self.init()
130 | html = etree.HTML(rsp.text)
131 | try:
132 | self.meta = html.xpath('//*[@id="9DhefwqGPrzGxEp9hPaoag"]/@content')[0]
133 | self.ywtu = ctx2.call("getc", self.meta)
134 | except AttributeError as e:
135 | print(e)
136 | print(rsp.status_code)
137 | print(rsp.text)
138 | return False
139 | return True
140 |
141 | def getvjkl5(self):
142 | request_url = self.url.format(self.conditions)
143 | headers = self.headers
144 | cookies = self.cookies
145 | cookies['wzwsvtime'] = str(int(time.time()))
146 | # self.ywtu = ctx2.call("getc", self.meta)
147 | # print(self.meta)
148 | # print(self.f80t)
149 | # print(self.ywtu)
150 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu)
151 | cookies['FSSBBIl1UgzbN7Nenable'] = "true"
152 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s
153 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n
154 | cookies['wzwsvtime'] = str(int(time.time()))
155 | try:
156 | rsp = requests.get(request_url, headers=headers, cookies=cookies)
157 | rsp.close()
158 | except Exception as e:
159 | if self.debug:
160 | print(e)
161 | print("获取vjkl5失败:网络连接出错")
162 | return False
163 | if rsp.status_code == 200 and "vjkl5" in rsp.cookies:
164 | self.vjkl5 = rsp.cookies['vjkl5']
165 | return True
166 | else:
167 | if self.debug:
168 | print(self.meta)
169 | print(self.ywtu)
170 | print(self.f80t)
171 | print(self.f80t_n)
172 | print("获取vjkl5失败,code:{}".format(rsp.status_code))
173 | if rsp.status_code == 200:
174 | print(rsp.text)
175 | print(rsp.cookies)
176 | return False
177 |
178 | def get_vl5x(self):
179 | """
180 | 根据vjkl5获取参数vl5x
181 | """
182 | vl5x = (ctx.call('getKey', self.vjkl5))
183 | return vl5x
184 |
185 | def createGuid(self):
186 | return str(hex((int(((1 + random.random()) * 0x10000)) | 0)))[3:]
187 |
188 | def getguid(self):
189 | return '{}{}-{}-{}{}-{}{}{}' \
190 | .format(
191 | self.createGuid(), self.createGuid(),
192 | self.createGuid(), self.createGuid(),
193 | self.createGuid(), self.createGuid(),
194 | self.createGuid(), self.createGuid()
195 | )
196 |
197 | def getList(self, page):
198 | url = self.url_for_content
199 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu)
200 | vl5x = self.get_vl5x()
201 | data = self.data
202 | data['Index'] = str(page)
203 | data['vl5x'] = vl5x
204 | data['guid'] = self.getguid()
205 | cookies = self.cookies
206 | cookies['wzwsvtime'] = str(int(time.time()))
207 | cookies['FSSBBIl1UgzbN7Nenable'] = "true"
208 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s
209 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n
210 | cookies['vjkl5'] = self.vjkl5
211 | headers = self.headers
212 | headers['Referer'] = self.url.format(parse.quote(self.conditions))
213 | try:
214 | rsp = requests.post(url, headers=headers, cookies=cookies, data=data)
215 | except Exception as e:
216 | if self.debug:
217 | print(e)
218 | print("获取列表页时网络请求出错")
219 | return False
220 | if rsp.status_code == 200 and "验证码" not in rsp.text:
221 | if rsp.text[0:1] == '"':
222 | list = rsp.text[1:]
223 | list = list[0: len(list) - 1]
224 | else:
225 | list = rsp.text
226 | list = list.replace('\\', '')
227 | self.list = list
228 | return True
229 | else:
230 | if self.debug:
231 | print("获取列表页出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code))
232 | return False
233 |
234 | def getListData(self):
235 | return self.list
236 |
237 | def getDocIds(self):
238 |
239 | list_json = json.loads(self.list)
240 | # print(list_json)
241 | # list_json = [{'RunEval': 'w61aS27CgzAQPQtRFsK2wqh6AcKUVcKOw5DDpcOIQhVJGhYNwpVDV1HDrl7CoMKEAnYCKcOBHcOKwpPDkETCtsOnw7PDpsONYGMpw4t9wrzDmR4jHX/CpMKrwpdUw4fCh8K3w6fCnU7DnsOXw7tXwr1ONlvDoXs+KQjDlsOiCSRAw4zCo0PDvkMiM3ldwrErwqHCthDDoB3DjELCoHpgDMOFBTsgAUwga8Kkwo7DvMKRMMKIASfCoAM8ITnCpMKECkDCoBEYChkEw6FqESXCh2PCqj/CozTDkcKLIMKkUGXCjxDDvsOpwpzCq1XDj8OpLMOpw5vCkjLCocKUL8K8YkFSw5Nnwr7DkMK9UgzClz/Dv04gwpFPZxrDpMOlK8KkKMO7aQVswqp7wqXDgcO1YC3DnFbDncKbwpjDqsOew6zDs1XCqALCtUnCkQHDgcKaw4MNw58Vw4h+wozDlsKGwp3CsHtqw5zCo3bCt8Ouw68MBlgNNX3CiD0zJw/DtjTChsK7w5F8cizChSvDh8Kld8ORw5oywozDscKVw43CjW3Dp8K1ExjCkz7CjsO9w6Mgw6MJIG7CnMK+w6M1wpvCg8Omw6rDu0LClsO5XsK+wp0mw5wPPMOiwrgPNsORwojDrhF3wofDvSNMTmNPw6VowptDCMOmAEoUw6bCt17Cj8OLL0vCvix3XcOzwpxswpzCh8O2w5nCukMacFtnRB7DsMOUw4JKIcKDLw==', 'Count': '39847561'}, {'裁判要旨段原文': '本院认为,山东省农业科学院中心实验室计量认证合格证书因未参加年检而过期,以及案涉樱桃园存在受气候因素影响而减产的事实,一、二审法院均已作出确认,山东省工业产品生产许可证办公室出具的《证明》以及中国农业新闻网的相关报道均无新的证明对象和证明内容,不构成“足以推翻', '案件类型': '2', '裁判日期': '2015-06-26', '案件名称': '山东富海实业股份有限公司、曲忠全与山东富海实业股份有限公司、曲忠全等环境污染责任纠纷再审复查与审判监督民事裁定书', '文书ID': 'FcKMwrkRA0EIw4Baw6JnCXnDuy/DicOnVCPDiR5cGB7Cj8KYbsKqdm3DtsOIwoTCssK8WcOkJsOMUBrCjcOSAW90AcKEanzDmlHCg3jCisKvwobClhJOTGJbwp5ZLMO1ZmXDlRoXw7FnwpvCtztKwoDDhTAZfcOYPxduwozDqSvDn8OhwqDDl3DCpsKGw43CuWc8w4gBwpwdw5vDr0nDh8KxwrJowooFw4jCm8KLecKTw7/ClGAswrrDncOuwrxLNADCsGR/', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第1782号', '法院名称': '最高人民法院'}, {'案件类型': '2', '裁判日期': '2014-06-23', '案件名称': '章瀚与厦门金原融资担保有限公司一般借款合同纠纷申请再审民事裁定书', '文书ID': 'DcOOw5sBADEEBcORwpbDhCPDuETDnMO+S8OabWDDjiRJVWnDq8KdKcKZFMORw7Bzw6IGw6HCvXfCscKawq0ywrMAw4Uaw7XCgSbCkTzCp8OAw4w7w6DCpngrUwvDncOkS8OuHVQmbMOZcWwFw4zDmMKJayTDok3DrxchYsKuR8Obwrx4wonDmnhRw6QXw6JnL3PChMOPCC4fKRo4TcOOwo1/dcOTQxJVFnlhMy3DkMOowoFFw6RLw7otw4gew6bDvEvDtQE=', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第966号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:本案申请再审的焦点是库柏公司超额交付的金额为1471162元增值税发票是否构成税务损失。根据国家税务总局2006年10月17日修订的《增值税专用发票使用规定》第十四条第一款“一般纳税人取得专用发票后,发生销货退回、开票有误等情形但不符合作废条件的,或', '案件类型': '2', '裁判日期': '2014-12-17', '案件名称': '厦门聚亿电气设备有限公司与库柏电气(上海)有限公司一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'HcONwrcRA0EMw4DDgMKWw6hNSHPDrMK/JMO9KELCthjChcKYZ8KVwoMKNWo5MMOtMMOOwr02GC5+woZvSsOVw7vCsFUBU8OIXMOeSsKlw4HCo8KOPMKrwrE9w7bCtcOyERE0wqkVLUXCocKewoULw4LCqMODRMKiAVrCjsOtJMKXw6LDrWLDuG5MwqDCjAHDuFw5w7dlAx7Co2JPw4QLw689ccOww7bDvsKyI3TCrsKCw6kQwrExfy3CnF4/PS3Cu8OjwrrDjMO6AQ==', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第454号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:一、关于胡素娟、许春红是否为适格原告的问题。虽然《房地产买卖协议书》并非胡素娟、许春红亲笔所签,从协议签订到履行均由胡素娟之父胡国安代为办理,但是胡素娟、许春红对协议内容并无异议,在一、二审以及再审审查阶段均明确认可胡国安的代理行为,胡国安亦认可该事', '案件类型': '2', '裁判日期': '2014-08-28', '案件名称': '襄阳市房屋租赁修缮公司与胡素娟、许春红一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'FcKMwrcNA0EMw4BWUsOWwqlUw5x/JMK/GxYEw4HCiQBTwpLCj8O3w4LClEvCtgXCisKwdgtZe8OXKcK1w7FNVRfCjFDChk3CjsOpHsKHFzsqTcOhwq7ChQRaIFTCm8OZwoLDosK6w6ljb8Ozwqc8OlDCnxMgXynCi8KJw5fClzF5woEDEMOmw5TCgnBMSXDCnRPCrRvDu8OgAMOZR8ObwrRIw6ErFcKzw7/CqzhRacK3wpsdw47Dg2o5AsOhw4tkw5c7wqsf', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第227号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,虽然案涉房屋尚未完成竣工验收备案,不具备《昆山市商品房购销合同》中约定的交付条件。但是,根据缪永红于购房当日与东方广场公司签订的《租赁及委托经营管理合同》的约定,缪永红已经将其所购买的房屋出租给东方广场公司经营使用,并在支付装修费用后将收房、装修事项', '案件类型': '2', '裁判日期': '2014-10-23', '案件名称': '缪永红 昆山红枫房地产有限公司 昆山东方云顶广场有限公司与中信信托有限责任公司其他合同纠纷二审民事判决书5', '文书ID': 'DcKOwrcRw4BADMODVlIOwqVeYcO/wpHDrMKOBcKAYxNww4B5w7sAc8KHT8Ojwr7Cq2PCqgfDnMOiwpU1RMKuwovDoS7DssKsw6I1wrTCt0AswoElERLDrcOrwpwsLlXCjMKfZ8OWYhXDrcKSHMKTwpo9w4HCiMKKw5/Ds3jCrsO/w5BAU8KefMO5w75kwpEgw6nDlWhddxtTwrLDjcKbGQjDu8K7w67Chhk2wrnCuwjDh1DCtMK+Ox4lcTgGw41ZCHMnw7JfPXYPw7sA', '审判程序': '二审', '案号': '(2014)民一终字第122号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院审查认为,(一)关于处理本案当事人争议的合同依据问题。双方签订的《1.47亿元施工合同》表明,华兴公司承包了整个“天成国贸中心”的土建及安装工程;双方签订的《天成国贸中心工程施工补充协议》(以下简称《补充协议》)表明华兴公司承包“天成国贸中心”整个土建及安', '案件类型': '2', '裁判日期': '2014-03-27', '案件名称': '天成润华集团有限公司与中国核工业华兴建设有限公司建设工程施工合同纠纷申请再审审查民事裁定书', '文书ID': 'DcKOw4kJAEEIw4BaUsOHw7PDqcOZf0nCu8K/QCDDhMKGw5LDoATDhHvCiMORwprDjcKQRsOCG8OgfsKrViM9dsOgdMKpLWQlc8KDbcKYAVvChcKWwrDDpmd8Djs/U3LDu8OEwrbCjMKyw7FowqguUi89wo9bKMONeGvDu8K3JmtXw7gWwrPCgcKAwpTCicOWI14+wrzCmMKdwpDCksKrCMKrOh1HfcKvwp3Cq8KaRBJ5VVlRw745wrdAw5Ycd8Osw4rCo1cOw68D', '审判程序': '再审', '案号': '(2013)民申字第1929号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,执行异议之诉的关键是审查购房者享有的实体权利是否足以阻却执行措施。\n其一,“二轻大厦”系繁荣公司与二轻联社共同开发建设,繁荣公司依约可取得“二轻大厦”中49%的权益。而阜承公司因受让繁荣公司在“二轻大厦”项目中所享有的49%权益分得“二轻大厦”第6', '案件类型': '2', '裁判日期': '2014-11-14', '案件名称': '方希源、蔡福英等民间借贷纠纷、案外人执行异议之诉民事判决书', '文书ID': 'DcOORxHDgDAMADBKHsOxenrDssKHw5QSw5ApwoLCn8KuHUAKQ3Baw6HDhsKOcsKnwoPCn8K5wo3Dgwssw5FyL0rCucKgworDrGYePkrCrVIIw4J6wqzDhWLCqcKvw7gxw5nCu33Cky/DosK4wogNwpHDrMOWwpPCqilBDsOnJ8KXV0jCrlzDh1zDu0UVDsOgw5EGw7UkA8KnUMKjwoDCtTLCl8OfbMOpw54QwrDDvkdDHsKiwrZVw6LDtcK+dhYcE8OCQVFqwroP', '审判程序': '二审', '案号': '(2014)民一终字第174号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,四海公司的上诉理由缺乏事实和法律依据,本院不予支持。原审判决认定事实清楚,适用法律正确,依法应予维持。本院依照《中华人民共和国民事诉讼法》第一百七十条第一款第(一)项之规定,判决如下', '案件类型': '2', '裁判日期': '2014-12-20', '案件名称': '中国信达资产管理股份有限公司黑龙江省分公司与哈尔滨四海数控科技股份有限公司、刘安丽金融借款合同纠纷二审民事判决书', '文书ID': 'FcKMw4sRRDEIw4NaCl/DgzEEw6jCv8KkfXvDs8OIGlHDucK+w6TClgXDo8OeUMKcUcO3M0zCr2HCmQjCqsKcXUotdsOOAmnChCoTwpoSw6RtVnrDix/DlsOdw6rCjsO4a8O5wqp2wrxdGEXClMOuUsO9w61gw7kaw6EHwpnDscKGTsO/VWvCiB1zEE9cwphEdMOcN1jCuiwwHiU3fCbDuMKgP8KkYsKUw51rw4QWw4dnw7bDu3RWw57Dg8Ozw6PCglfDncOBw7sD', '审判程序': '二审', '案号': '(2014)民二终字第251号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,本案再审争议的焦点问题为:(一)郑少春与中医院之间法律关系的性质与效力;(二)郑少春应否将案涉土地退还给中医院,应否以及如何支付土地占用费。\n(一)关于郑少春与中医院之间法律关系的性质与效力问题。《中华人民共和国城镇国有土地使用权出让转让暂行条例》', '案件类型': '2', '裁判日期': '2014-11-15', '案件名称': '莆田市中医院与福建省莆田市闽中田野汽车贸易有限公司、莆田市志强汽车贸易有限公司建设用地使用权纠纷审判监督民事判决书', '文书ID': 'DcOMRwHDgEAIADBLw6zDscKEA8O8S2ojIHjDtsOQTCpUw43CkyfDsw7Co0/Co8KTw4w1woN0wr15ZMODFlYHwoTCjUXCpkteBhYIFcO7Iw/ClGHCmHhGDhTDjy1DDVFyw4HDgsO9wqTCiDbCjcOGwpjDnsKEwrB2OcKiw4vCk8KGw57Cs8KgKsOEbcOUwoLDjkcsMMK8DsKqwrJkW8OjNGfCh8KKcFDCsMKlw40pWsKLwrRoFV05w7rCj8KsFEzDgMKyHw==', '审判程序': '再审', '案号': '(2014)民提字第125号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,腾远公司的再审申请不符合《中华人民共和国民事诉讼法》第二百条第六项规定的情形。本院依照《中华人民共和国民事诉讼法》第二百零四条第一款之规定,裁定如下', '案件类型': '2', '裁判日期': '2015-04-29', '案件名称': '许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司与许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司建设工程施工合同纠纷申请再审民事裁定书', '文书ID': 'DcOOwrERBDEIBMOBwpRALAtvAhLDucKHw7TDp8K2MTXCuXJLwrTDuynDhcK8w6UJYsKswqw/wo1reFdzcMOdDcO6aMKnwq/CthbCpcOyZMKbw7nDj8OAWGXCtDHDkCwtXXUQwoDDs27DrhTDpFppUibDscKww4RQwqsHwprDqcOewp8Ra8OIW8KNO8KuwqHDssOQGsOrwp7DvMO1wpbCvcKewq5XW8ODdcOBw5HCkMKnJsOCwrDCs8Kff8OJcyptEWx+wosyw7JbdsO1Hw==', '审判程序': '再审审查与审判监督', '案号': '(2015)民申字第739号', '法院名称': '最高人民法院'}]
242 |
243 | if len(list_json) > 1:
244 | runeval = list_json[0]['RunEval']
245 | docids = []
246 | for item in list_json[1:]:
247 | docid = item['文书ID']
248 | jsa = get_docid.call("GetJs", runeval)
249 | js_objs = jsa.split(";;")
250 | jsa1 = js_objs[0] + ';'
251 |
252 | jsa2 = re.findall(r"_\[_\]\[_\]\((.*?)\)\(\);", js_objs[1])[0]
253 | # jsa1 = jsa1 + jsa2
254 | jsa2 = jsa2.replace('(!![]+[])', json.dumps(list("true")))
255 | jsa2 = jsa2.replace('(![]+[])', json.dumps(list("false")))
256 | jsa2 = jsa2.replace('([![]]+{})', json.dumps(list("false[object Object]")))
257 | jsa2 = jsa2.replace('(+{}+[]+[]+[]+[]+{})', json.dumps(list("NaN[object Object]")))
258 | jsa2 = jsa2.replace('[![]]+[][[]]', json.dumps(list("falseundefined")))
259 | jsa2 = jsa2.replace('[]+[]+{}', json.dumps(list("[object Object]")))
260 | jsa2 = jsa2.replace('[]+[]+[][[]]', json.dumps(list("undefined")))
261 | key = get_docid.call("EvalKey", jsa1, jsa2)
262 | # print(key)
263 | # key = key.replace("undefined", '')
264 | key = re.findall(r"\"([0-9a-z]{32})\"", key)[0]
265 | # key = key[22:50]
266 | docid = get_docid.call("DecryptDocID", key, docid)
267 | docids.append(docid)
268 | print(docids)
269 | return docids
270 | else:
271 | return False
272 |
273 | def getContent(self, docid):
274 | url = "http://wenshu.court.gov.cn/CreateContentJS/CreateContentJS.aspx?DocID={}".format(docid)
275 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu)
276 | cookies = self.cookies
277 | cookies['wzwsvtime'] = str(int(time.time()))
278 | cookies['FSSBBIl1UgzbN7Nenable'] = "true"
279 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s
280 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n
281 | cookies['vjkl5'] = self.vjkl5
282 | headers = self.headers
283 | headers['Referer'] = self.url.format(parse.quote(self.conditions))
284 | try:
285 | rsp = requests.get(url, headers=headers, cookies=cookies)
286 | except Exception as e:
287 | if self.debug:
288 | print(e)
289 | print("获取内容时网络请求出错")
290 | return False
291 | if rsp.status_code == 200 and "验证码" not in rsp.text:
292 | print(rsp.text)
293 | return True
294 | else:
295 | if self.debug:
296 | print("获取内容出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code))
297 | return False
298 |
299 |
300 | if __name__ == '__main__':
301 |
302 | # # 实例化并开启调试模式,会返回报错信息
303 | # for i in range(10):
304 | spider = SpiderManager(debug=True)
305 | # 设置采集条件
306 | spider.setconditions("searchWord+2+AJLX++案件类型:民事案件")
307 | # 初始化
308 | init_status = spider.init()
309 | if init_status:
310 | print("初始化成功")
311 | status = spider.getvjkl5()
312 | if status:
313 | print("获取vjkl5成功")
314 | status = spider.getList(page=1)
315 | if status:
316 | print("获取列表页内容成功")
317 | print(spider.getListData())
318 | docids = spider.getDocIds()
319 | if docids:
320 | for item in docids:
321 | spider.getContent(item)
322 | else:
323 | print("解密失败")
324 | else:
325 | print("获取列表页内容失败")
326 |
327 | else:
328 | # 自己写,重新获得getvjkl5
329 | pass
330 |
331 | else:
332 | print("初始化失败")
333 | # continue
334 |
--------------------------------------------------------------------------------
/spider_demo_proxy_abuyun.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # coding=utf-8
3 |
4 | """
5 |
6 | @author: sml2h3
7 |
8 | @license: (C) Copyright 2018-2020
9 |
10 | @contact: sml2h3@gmail.com
11 |
12 | @software: mmewmd_crack_for_wenshu
13 |
14 | @file: spider_demo
15 |
16 | @time: 2019-01-21
17 | """
18 | import requests
19 | import time
20 | import execjs
21 | from lxml import etree
22 | import random
23 | from urllib import parse
24 | import re
25 | import json
26 |
27 | # 改成你的代理IP,格式为:http://ip:port
28 | proxyMeta = "http://127.0.0.1:8080"
29 |
30 | proxies = {
31 | "http": proxyMeta,
32 | "https": proxyMeta,
33 | }
34 |
35 | with open('encrypt.js', 'r', encoding="utf-8") as f:
36 | js1 = f.read()
37 | ctx1 = execjs.compile(js1)
38 | with open('ywtu.js', 'r', encoding="utf-8") as f:
39 | js2 = f.read()
40 | ctx2 = execjs.compile(js2)
41 | with open('vl5x.js', 'r', encoding="utf-8") as fp:
42 | js = fp.read()
43 | ctx = execjs.compile(js)
44 | with open('get_docid.js', 'r', encoding="utf-8") as fp:
45 | js = fp.read()
46 | get_docid = execjs.compile(js)
47 |
48 |
49 |
50 |
51 | class SpiderManager(object):
52 |
53 | def __init__(self, debug=False):
54 | self.f80t = ""
55 | self.f80t_n = ""
56 | self.meta = ""
57 | self.f80s = ""
58 | self.ywtu = ""
59 | self.vjkl5 = ""
60 | self.list = ""
61 | self.debug = debug
62 | self.conditions = ""
63 | self.url = "http://wenshu.court.gov.cn/List/List?sorttype=1&conditions={}"
64 | self.url_for_content = "http://wenshu.court.gov.cn/List/ListContent"
65 | self.headers = {
66 | "Accept": "*/*",
67 | "Accept-Encoding": "gzip, deflate",
68 | "Accept-Language": "zh-CN,zh;q=0.9",
69 | "Connection": "keep-alive",
70 | "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
71 | "Host": "wenshu.court.gov.cn",
72 | "Origin": "http://wenshu.court.gov.cn",
73 | "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) "
74 | "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36"
75 | }
76 | self.cookies = {
77 | "ccpassport": "1ff98c661b8f424096c234ce889da9b0",
78 | "_gscu_2116842793": "47626758817stt18",
79 | "_gscs_2116842793": "47659453ttzz3o20|pv:14",
80 | "_gscbrs_2116842793": "1",
81 | "wzwsconfirm": "0e561c10c60c2f0d44410644eb3c2403",
82 | "wzwstemplate": "NQ==",
83 | "wzwschallenge": "-1",
84 | "wzwsvtime": ""
85 | }
86 | self.data = {
87 | "Param": "案件类型:民事案件",
88 | "Index": "",
89 | "Page": "20",
90 | "Order": "法院层级",
91 | "Direction": "asc",
92 | "vl5x": "",
93 | "number": "wens",
94 | "guid": ""
95 | }
96 |
97 | def setconditions(self, conditions: str):
98 | self.conditions = conditions
99 |
100 | def init(self):
101 | self.f80t = ""
102 | self.f80t_n = ""
103 | self.meta = ""
104 | self.f80s = ""
105 | self.ywtu = ""
106 | self.vjkl5 = ""
107 | if not self.conditions:
108 | if self.debug:
109 | print("条件不能为空")
110 | return False
111 | request_url = self.url.format(self.conditions)
112 | headers = self.headers
113 | cookies = self.cookies
114 | cookies['wzwsvtime'] = str(int(time.time()))
115 | # cookies = "; ".join(cookies)
116 | try:
117 |
118 | rsp = requests.get(request_url, headers=headers, cookies=cookies, proxies=proxies)
119 | rsp.close()
120 | except Exception as e:
121 | if self.debug:
122 | print(e)
123 | print("网络连接出错,稍等5秒后重新执行")
124 | time.sleep(5)
125 | return self.init()
126 |
127 | self.f80s = rsp.cookies['FSSBBIl1UgzbN7N80S']
128 | self.f80t = rsp.cookies['FSSBBIl1UgzbN7N80T']
129 | html = etree.HTML(rsp.text)
130 | try:
131 | self.meta = html.xpath('//*[@id="9DhefwqGPrzGxEp9hPaoag"]/@content')[0]
132 | self.ywtu = ctx2.call("getc", self.meta)
133 | except AttributeError as e:
134 | print(e)
135 | print(rsp.status_code)
136 | print(rsp.text)
137 | return False
138 | return True
139 |
140 | def getvjkl5(self):
141 | request_url = self.url.format(self.conditions)
142 | headers = self.headers
143 | cookies = self.cookies
144 | cookies['wzwsvtime'] = str(int(time.time()))
145 | # self.ywtu = ctx2.call("getc", self.meta)
146 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu)
147 |
148 | cookies['FSSBBIl1UgzbN7Nenable'] = "true"
149 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s
150 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n
151 | cookies['wzwsvtime'] = str(int(time.time()))
152 | try:
153 | rsp = requests.get(request_url, headers=headers, cookies=cookies, proxies=proxies)
154 | rsp.close()
155 | except Exception as e:
156 | if self.debug:
157 | print(e)
158 | print("获取vjkl5失败:网络连接出错")
159 | return False
160 | if rsp.status_code == 200 and "vjkl5" in rsp.cookies:
161 | self.vjkl5 = rsp.cookies['vjkl5']
162 | return True
163 | else:
164 | if self.debug:
165 | print(self.meta)
166 | print(self.ywtu)
167 | print(self.f80t)
168 | print(self.f80t_n)
169 | print("获取vjkl5失败,code:{}".format(rsp.status_code))
170 | if rsp.status_code == 200:
171 | print(rsp.text)
172 | print(rsp.cookies)
173 | return False
174 |
175 | def get_vl5x(self):
176 | """
177 | 根据vjkl5获取参数vl5x
178 | """
179 | vl5x = (ctx.call('getKey', self.vjkl5))
180 | return vl5x
181 |
182 | def createGuid(self):
183 | return str(hex((int(((1 + random.random()) * 0x10000)) | 0)))[3:]
184 |
185 | def getguid(self):
186 | return '{}{}-{}-{}{}-{}{}{}' \
187 | .format(
188 | self.createGuid(), self.createGuid(),
189 | self.createGuid(), self.createGuid(),
190 | self.createGuid(), self.createGuid(),
191 | self.createGuid(), self.createGuid()
192 | )
193 |
194 | def getList(self, page):
195 | url = self.url_for_content
196 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu)
197 | vl5x = self.get_vl5x()
198 | data = self.data
199 | data['Index'] = str(page)
200 | data['vl5x'] = vl5x
201 | data['guid'] = self.getguid()
202 | cookies = self.cookies
203 | cookies['wzwsvtime'] = str(int(time.time()))
204 | cookies['FSSBBIl1UgzbN7Nenable'] = "true"
205 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s
206 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n
207 | cookies['vjkl5'] = self.vjkl5
208 | headers = self.headers
209 | headers['Referer'] = self.url.format(parse.quote(self.conditions))
210 | try:
211 | rsp = requests.post(url, headers=headers, cookies=cookies, data=data, proxies=proxies)
212 | except Exception as e:
213 | if self.debug:
214 | print(e)
215 | print("获取列表页时网络请求出错")
216 | return False
217 | if rsp.status_code == 200 and "验证码" not in rsp.text:
218 | self.list = rsp.text
219 | return True
220 | else:
221 | if self.debug:
222 | print("获取列表页出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code))
223 | return False
224 |
225 | def getListData(self):
226 | return self.list
227 |
228 | def getDocIds(self):
229 | list_json = json.loads(json.loads(self.list))
230 | # print(list_json)
231 | # list_json = [{'RunEval': 'w61aS27CgzAQPQtRFsK2wqh6AcKUVcKOw5DDpcOIQhVJGhYNwpVDV1HDrl7CoMKEAnYCKcOBHcOKwpPDkETCtsOnw7PDpsONYGMpw4t9wrzDmR4jHX/CpMKrwpdUw4fCh8K3w6fCnU7DnsOXw7tXwr1ONlvDoXs+KQjDlsOiCSRAw4zCo0PDvkMiM3ldwrErwqHCthDDoB3DjELCoHpgDMOFBTsgAUwga8Kkwo7DvMKRMMKIASfCoAM8ITnCpMKECkDCoBEYChkEw6FqESXCh2PCqj/CozTDkcKLIMKkUGXCjxDDvsOpwpzCq1XDj8OpLMOpw5vCkjLCocKUL8K8YkFSw5Nnwr7DkMK9UgzClz/Dv04gwpFPZxrDpMOlK8KkKMO7aQVswqp7wqXDgcO1YC3DnFbDncKbwpjDqsOew6zDs1XCqALCtUnCkQHDgcKaw4MNw58Vw4h+wozDlsKGwp3CsHtqw5zCo3bCt8Ouw68MBlgNNX3CiD0zJw/DtjTChsK7w5F8cizChSvDh8Kld8ORw5oywozDscKVw43CjW3Dp8K1ExjCkz7CjsO9w6Mgw6MJIG7CnMK+w6M1wpvCg8Omw6rDu0LClsO5XsK+wp0mw5wPPMOiwrgPNsORwojDrhF3wofDvSNMTmNPw6VowptDCMOmAEoUw6bCt17Cj8OLL0vCvix3XcOzwpxswpzCh8O2w5nCukMacFtnRB7DsMOUw4JKIcKDLw==', 'Count': '39847561'}, {'裁判要旨段原文': '本院认为,山东省农业科学院中心实验室计量认证合格证书因未参加年检而过期,以及案涉樱桃园存在受气候因素影响而减产的事实,一、二审法院均已作出确认,山东省工业产品生产许可证办公室出具的《证明》以及中国农业新闻网的相关报道均无新的证明对象和证明内容,不构成“足以推翻', '案件类型': '2', '裁判日期': '2015-06-26', '案件名称': '山东富海实业股份有限公司、曲忠全与山东富海实业股份有限公司、曲忠全等环境污染责任纠纷再审复查与审判监督民事裁定书', '文书ID': 'FcKMwrkRA0EIw4Baw6JnCXnDuy/DicOnVCPDiR5cGB7Cj8KYbsKqdm3DtsOIwoTCssK8WcOkJsOMUBrCjcOSAW90AcKEanzDmlHCg3jCisKvwobClhJOTGJbwp5ZLMO1ZmXDlRoXw7FnwpvCtztKwoDDhTAZfcOYPxduwozDqSvDn8OhwqDDl3DCpsKGw43CuWc8w4gBwpwdw5vDr0nDh8KxwrJowooFw4jCm8KLecKTw7/ClGAswrrDncOuwrxLNADCsGR/', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第1782号', '法院名称': '最高人民法院'}, {'案件类型': '2', '裁判日期': '2014-06-23', '案件名称': '章瀚与厦门金原融资担保有限公司一般借款合同纠纷申请再审民事裁定书', '文书ID': 'DcOOw5sBADEEBcORwpbDhCPDuETDnMO+S8OabWDDjiRJVWnDq8KdKcKZFMORw7Bzw6IGw6HCvXfCscKawq0ywrMAw4Uaw7XCgSbCkTzCp8OAw4w7w6DCpngrUwvDncOkS8OuHVQmbMOZcWwFw4zDmMKJayTDok3DrxchYsKuR8Obwrx4wonDmnhRw6QXw6JnL3PChMOPCC4fKRo4TcOOwo1/dcOTQxJVFnlhMy3DkMOowoFFw6RLw7otw4gew6bDvEvDtQE=', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第966号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:本案申请再审的焦点是库柏公司超额交付的金额为1471162元增值税发票是否构成税务损失。根据国家税务总局2006年10月17日修订的《增值税专用发票使用规定》第十四条第一款“一般纳税人取得专用发票后,发生销货退回、开票有误等情形但不符合作废条件的,或', '案件类型': '2', '裁判日期': '2014-12-17', '案件名称': '厦门聚亿电气设备有限公司与库柏电气(上海)有限公司一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'HcONwrcRA0EMw4DDgMKWw6hNSHPDrMK/JMO9KELCthjChcKYZ8KVwoMKNWo5MMOtMMOOwr02GC5+woZvSsOVw7vCsFUBU8OIXMOeSsKlw4HCo8KOPMKrwrE9w7bCtcOyERE0wqkVLUXCocKewoULw4LCqMODRMKiAVrCjsOtJMKXw6LDrWLDuG5MwqDCjAHDuFw5w7dlAx7Co2JPw4QLw689ccOww7bDvsKyI3TCrsKCw6kQwrExfy3CnF4/PS3Cu8OjwrrDjMO6AQ==', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第454号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为:一、关于胡素娟、许春红是否为适格原告的问题。虽然《房地产买卖协议书》并非胡素娟、许春红亲笔所签,从协议签订到履行均由胡素娟之父胡国安代为办理,但是胡素娟、许春红对协议内容并无异议,在一、二审以及再审审查阶段均明确认可胡国安的代理行为,胡国安亦认可该事', '案件类型': '2', '裁判日期': '2014-08-28', '案件名称': '襄阳市房屋租赁修缮公司与胡素娟、许春红一般买卖合同纠纷申请再审民事裁定书', '文书ID': 'FcKMwrcNA0EMw4BWUsOWwqlUw5x/JMK/GxYEw4HCiQBTwpLCj8O3w4LClEvCtgXCisKwdgtZe8OXKcK1w7FNVRfCjFDChk3CjsOpHsKHFzsqTcOhwq7ChQRaIFTCm8OZwoLDosK6w6ljb8Ozwqc8OlDCnxMgXynCi8KJw5fClzF5woEDEMOmw5TCgnBMSXDCnRPCrRvDu8OgAMOZR8ObwrRIw6ErFcKzw7/CqzhRacK3wpsdw47Dg2o5AsOhw4tkw5c7wqsf', '审判程序': '再审审查与审判监督', '案号': '(2014)民申字第227号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,虽然案涉房屋尚未完成竣工验收备案,不具备《昆山市商品房购销合同》中约定的交付条件。但是,根据缪永红于购房当日与东方广场公司签订的《租赁及委托经营管理合同》的约定,缪永红已经将其所购买的房屋出租给东方广场公司经营使用,并在支付装修费用后将收房、装修事项', '案件类型': '2', '裁判日期': '2014-10-23', '案件名称': '缪永红 昆山红枫房地产有限公司 昆山东方云顶广场有限公司与中信信托有限责任公司其他合同纠纷二审民事判决书5', '文书ID': 'DcKOwrcRw4BADMODVlIOwqVeYcO/wpHDrMKOBcKAYxNww4B5w7sAc8KHT8Ojwr7Cq2PCqgfDnMOiwpU1RMKuwovDoS7DssKsw6I1wrTCt0AswoElERLDrcOrwpwsLlXCjMKfZ8OWYhXDrcKSHMKTwpo9w4HCiMKKw5/Ds3jCrsO/w5BAU8KefMO5w75kwpEgw6nDlWhddxtTwrLDjcKbGQjDu8K7w67Chhk2wrnCuwjDh1DCtMK+Ox4lcTgGw41ZCHMnw7JfPXYPw7sA', '审判程序': '二审', '案号': '(2014)民一终字第122号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院审查认为,(一)关于处理本案当事人争议的合同依据问题。双方签订的《1.47亿元施工合同》表明,华兴公司承包了整个“天成国贸中心”的土建及安装工程;双方签订的《天成国贸中心工程施工补充协议》(以下简称《补充协议》)表明华兴公司承包“天成国贸中心”整个土建及安', '案件类型': '2', '裁判日期': '2014-03-27', '案件名称': '天成润华集团有限公司与中国核工业华兴建设有限公司建设工程施工合同纠纷申请再审审查民事裁定书', '文书ID': 'DcKOw4kJAEEIw4BaUsOHw7PDqcOZf0nCu8K/QCDDhMKGw5LDoATDhHvCiMORwprDjcKQRsOCG8OgfsKrViM9dsOgdMKpLWQlc8KDbcKYAVvChcKWwrDDpmd8Djs/U3LDu8OEwrbCjMKyw7FowqguUi89wo9bKMONeGvDu8K3JmtXw7gWwrPCgcKAwpTCicOWI14+wrzCmMKdwpDCksKrCMKrOh1HfcKvwp3Cq8KaRBJ5VVlRw745wrdAw5Ycd8Osw4rCo1cOw68D', '审判程序': '再审', '案号': '(2013)民申字第1929号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,执行异议之诉的关键是审查购房者享有的实体权利是否足以阻却执行措施。\n其一,“二轻大厦”系繁荣公司与二轻联社共同开发建设,繁荣公司依约可取得“二轻大厦”中49%的权益。而阜承公司因受让繁荣公司在“二轻大厦”项目中所享有的49%权益分得“二轻大厦”第6', '案件类型': '2', '裁判日期': '2014-11-14', '案件名称': '方希源、蔡福英等民间借贷纠纷、案外人执行异议之诉民事判决书', '文书ID': 'DcOORxHDgDAMADBKHsOxenrDssKHw5QSw5ApwoLCn8KuHUAKQ3Baw6HDhsKOcsKnwoPCn8K5wo3Dgwssw5FyL0rCucKgworDrGYePkrCrVIIw4J6wqzDhWLCqcKvw7gxw5nCu33Cky/DosK4wogNwpHDrMOWwpPCqilBDsOnJ8KXV0jCrlzDh1zDu0UVDsOgw5EGw7UkA8KnUMKjwoDCtTLCl8OfbMOpw54QwrDDvkdDHsKiwrZVw6LDtcK+dhYcE8OCQVFqwroP', '审判程序': '二审', '案号': '(2014)民一终字第174号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,四海公司的上诉理由缺乏事实和法律依据,本院不予支持。原审判决认定事实清楚,适用法律正确,依法应予维持。本院依照《中华人民共和国民事诉讼法》第一百七十条第一款第(一)项之规定,判决如下', '案件类型': '2', '裁判日期': '2014-12-20', '案件名称': '中国信达资产管理股份有限公司黑龙江省分公司与哈尔滨四海数控科技股份有限公司、刘安丽金融借款合同纠纷二审民事判决书', '文书ID': 'FcKMw4sRRDEIw4NaCl/DgzEEw6jCv8KkfXvDs8OIGlHDucK+w6TClgXDo8OeUMKcUcO3M0zCr2HCmQjCqsKcXUotdsOOAmnChCoTwpoSw6RtVnrDix/DlsOdw6rCjsO4a8O5wqp2wrxdGEXClMOuUsO9w61gw7kaw6EHwpnDscKGTsO/VWvCiB1zEE9cwphEdMOcN1jCuiwwHiU3fCbDuMKgP8KkYsKUw51rw4QWw4dnw7bDu3RWw57Dg8Ozw6PCglfDncOBw7sD', '审判程序': '二审', '案号': '(2014)民二终字第251号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '本院认为,本案再审争议的焦点问题为:(一)郑少春与中医院之间法律关系的性质与效力;(二)郑少春应否将案涉土地退还给中医院,应否以及如何支付土地占用费。\n(一)关于郑少春与中医院之间法律关系的性质与效力问题。《中华人民共和国城镇国有土地使用权出让转让暂行条例》', '案件类型': '2', '裁判日期': '2014-11-15', '案件名称': '莆田市中医院与福建省莆田市闽中田野汽车贸易有限公司、莆田市志强汽车贸易有限公司建设用地使用权纠纷审判监督民事判决书', '文书ID': 'DcOMRwHDgEAIADBLw6zDscKEA8O8S2ojIHjDtsOQTCpUw43CkyfDsw7Co0/Co8KTw4w1woN0wr15ZMODFlYHwoTCjUXCpkteBhYIFcO7Iw/ClGHCmHhGDhTDjy1DDVFyw4HDgsO9wqTCiDbCjcOGwpjDnsKEwrB2OcKiw4vCk8KGw57Cs8KgKsOEbcOUwoLDjkcsMMK8DsKqwrJkW8OjNGfCh8KKcFDCsMKlw40pWsKLwrRoFV05w7rCj8KsFEzDgMKyHw==', '审判程序': '再审', '案号': '(2014)民提字第125号', '法院名称': '最高人民法院'}, {'裁判要旨段原文': '综上,腾远公司的再审申请不符合《中华人民共和国民事诉讼法》第二百条第六项规定的情形。本院依照《中华人民共和国民事诉讼法》第二百零四条第一款之规定,裁定如下', '案件类型': '2', '裁判日期': '2015-04-29', '案件名称': '许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司与许昌市腾远房地产开发有限公司、郑州市第二建筑工程有限责任公司建设工程施工合同纠纷申请再审民事裁定书', '文书ID': 'DcOOwrERBDEIBMOBwpRALAtvAhLDucKHw7TDp8K2MTXCuXJLwrTDuynDhcK8w6UJYsKswqw/wo1reFdzcMOdDcO6aMKnwq/CthbCpcOyZMKbw7nDj8OAWGXCtDHDkCwtXXUQwoDDs27DrhTDpFppUibDscKww4RQwqsHwprDqcOewp8Ra8OIW8KNO8KuwqHDssOQGsOrwp7DvMO1wpbCvcKewq5XW8ODdcOBw5HCkMKnJsOCwrDCs8Kff8OJcyptEWx+wosyw7JbdsO1Hw==', '审判程序': '再审审查与审判监督', '案号': '(2015)民申字第739号', '法院名称': '最高人民法院'}]
232 | if len(list_json) > 1:
233 | runeval = list_json[0]['RunEval']
234 | if runeval[0: 3] == "w63":
235 | print("经检测,此为脏数据,请更换IP后重试")
236 | return False
237 | docids = []
238 | for item in list_json[1:]:
239 | docid = item['文书ID']
240 | js = get_docid.call("GetJs", runeval)
241 | js_objs = js.split(";;")
242 | js1 = js_objs[0] + ';'
243 | js2 = re.findall(r"_\[_\]\[_\]\((.*?)\)\(\);", js_objs[1])[0]
244 | key = get_docid.call("EvalKey", js1, js2)
245 | key = re.findall(r"\"([0-9a-z]{32})\"", key)[0]
246 | docid = get_docid.call("DecryptDocID", key, docid)
247 | docids.append(docid)
248 | return docids
249 | else:
250 | return False
251 |
252 | def getContent(self, docid):
253 | url = "http://wenshu.court.gov.cn/CreateContentJS/CreateContentJS.aspx?DocID={}".format(docid)
254 | self.f80t_n = ctx1.call("getCookies", self.meta, self.f80t, self.ywtu)
255 | cookies = self.cookies
256 | cookies['wzwsvtime'] = str(int(time.time()))
257 | cookies['FSSBBIl1UgzbN7Nenable'] = "true"
258 | cookies['FSSBBIl1UgzbN7N80S'] = self.f80s
259 | cookies['FSSBBIl1UgzbN7N80T'] = self.f80t_n
260 | cookies['vjkl5'] = self.vjkl5
261 | headers = self.headers
262 | headers['Referer'] = self.url.format(parse.quote(self.conditions))
263 | try:
264 | rsp = requests.get(url, headers=headers, cookies=cookies, proxies=proxies)
265 | except Exception as e:
266 | if self.debug:
267 | print(e)
268 | print("获取内容时网络请求出错")
269 | return False
270 | if rsp.status_code == 200 and "验证码" not in rsp.text:
271 | print(rsp.text)
272 | return True
273 | else:
274 | if self.debug:
275 | print("获取内容出错,code:{},若code为200,可能出现了验证码".format(rsp.status_code))
276 | return False
277 |
278 |
279 | if __name__ == '__main__':
280 | # # 实例化并开启调试模式,会返回报错信息
281 | for i in range(10):
282 |
283 | spider = SpiderManager(debug=True)
284 | # 设置采集条件
285 | spider.setconditions("searchWord+2+AJLX++案件类型:民事案件")
286 | # 初始化
287 | init_status = spider.init()
288 | if init_status:
289 | print("初始化成功")
290 | status = spider.getvjkl5()
291 | if status:
292 | print("获取vjkl5成功")
293 | status = spider.getList(page=i)
294 | if status:
295 | print("获取列表页内容成功")
296 | print(spider.getListData())
297 | docids = spider.getDocIds()
298 | if docids:
299 | for item in docids:
300 | spider.getContent(item)
301 | else:
302 | print("解密失败")
303 | else:
304 | print("获取列表页内容失败")
305 |
306 | else:
307 | # 自己写,重新获得getvjkl5
308 | pass
309 |
310 | else:
311 | print("初始化失败")
312 | # continue
313 | requests.get("http://proxy.abuyun.com/switch-ip", proxies=proxies)
314 |
315 |
316 |
--------------------------------------------------------------------------------
/ywtu.js:
--------------------------------------------------------------------------------
1 | function _$go(_$EO) {
2 | function _$az() {
3 | var _$BF = _$h7[_$EO.charCodeAt(_$fq++)];
4 | if (_$BF < 0) {
5 | return _$h7[_$EO.charCodeAt(_$fq++)] * 7396 + _$h7[_$EO.charCodeAt(_$fq++)] * 86 + _$h7[_$EO.charCodeAt(_$fq++)];
6 | } else if (_$BF < 64) {
7 | return _$BF;
8 | } else if (_$BF <= 86) {
9 | return _$BF * 86 + _$h7[_$EO.charCodeAt(_$fq++)] - 5440;
10 | }
11 | }
12 |
13 | var _$pM = _$EO.length, _$fq = 0, _$EA, _$Cz = 0, _$h7 = _$z0()[5];
14 | var _$Ea = _$az();
15 | _$kI = _$Hi(_$kI);
16 | _$FM = _$Hi(_$FM);
17 | var _$zG = new Array(_$Ea);
18 | while (_$fq < _$pM) {
19 | _$EA = _$az();
20 | _$zG[_$Cz++] = _$EO.substr(_$fq, _$EA);
21 | _$fq += _$EA;
22 | }
23 | _$Hc = function (_$BF) {
24 | var _$Cl = _$BF % 64;
25 | var _$Cs = _$BF - _$Cl;
26 | _$Cl = _$nM(_$Cl);
27 | _$Cl ^= _$kI;
28 | _$Cs += _$Cl;
29 | return _$zG[_$Cs];
30 | };
31 | }
32 | function _$nM(_$Cz) {
33 | var _$h7 = [0, 1, 3, 7, 0xf, 0x1f];
34 | return (_$Cz >> _$FM) | ((_$Cz & _$h7[_$FM]) << (6 - _$FM));
35 | }
36 | function _$Hi(_$Cz, _$h7) {
37 | _$Cz = parseInt(_$Cz);
38 | if (!isNaN(_$Cz)) return _$Cz;
39 | if (arguments.length > 1) return _$h7;
40 | return NaN;
41 | }
42 |
43 | function _$pZ(){
44 | return ""
45 | }
46 |
47 | function _$xR() {
48 | return "qrcklmDoExthWJiHAp1sVYKU3RFMQw8IGfPO92bvLNj.7zXBaSnu0TC6gy_4Ze5d{}|~ !#$%()*+,-:=?@[]^".split(_$pZ());
49 | }
50 |
51 | function _$zh(_$h7, _$Cz, _$fq, _$Ea) {
52 | for (; _$Cz < _$fq; _$Cz++) {
53 | _$h7[_$Cz] = _$Ea;
54 | }
55 | }
56 |
57 | function _$wV() {
58 | var _$fq = _$xR();
59 | var _$Cz = [];
60 | for (var _$az = 0; _$az < 6; _$az++) {
61 | _$Cz[_$az] = [];
62 | }
63 | _$z0 = function () {
64 | return _$Cz;
65 | };
66 | var _$pM = _$Cz[0], _$Ea = _$Cz[1], _$EA = _$Cz[2], _$EO = _$Cz[3], _$ht = _$Cz[4], _$h7 = _$Cz[5];
67 | _$zh(_$h7, 0, 255, -1);
68 | for (_$az = 0; _$az < _$fq.length; _$az++) {
69 | var _$zG = _$fq[_$az].charCodeAt(0);
70 | _$pM[_$zG] = _$az << 2;
71 | _$Ea[_$zG] = _$az >> 4;
72 | _$EA[_$zG] = (_$az & 15) << 4;
73 | _$EO[_$zG] = _$az >> 2;
74 | _$ht[_$zG] = (_$az & 3) << 6;
75 | _$h7[_$zG] = _$az;
76 | }
77 | }
78 |
79 | function _$Em() {
80 | return _$BI._$b0();
81 | }
82 | function _$vz() {
83 | return _$BI._$ap();
84 | }
85 | function _$qy(meta) {
86 | function _$Ea() {
87 | var _$zG = _$Cz.charCodeAt(_$pM);
88 | if (_$zG >= 40) {
89 | _$pM++;
90 | return _$zG - 40;
91 | }
92 | var _$EA = 39 - _$zG;
93 | _$zG = 0;
94 | for (var _$az = 0; _$az < _$EA; _$az++) {
95 | _$zG *= 87;
96 | _$zG += _$Cz.charCodeAt(_$pM + 1 + _$az) - 40;
97 | }
98 | _$pM += _$EA + 1;
99 | return _$zG + 87;
100 | }
101 |
102 | function _$EO() {
103 | var _$EA = _$Ea();
104 | var _$az = _$Cz.substr(_$pM, _$EA);
105 | _$pM += _$EA;
106 | return _$az;
107 | }
108 |
109 | function _$h7() {
110 | return _$Cz.substr(_$pM);
111 | }
112 |
113 | var _$Cz = meta, _$pM = 0, _$fq = {};
114 | _$fq._$b0 = _$EO;
115 | _$fq._$ap = _$h7;
116 | return _$fq;
117 | }
118 | var _$Hc = undefined;
119 | // _$go(meta);
120 | var _$BI = undefined;
121 | var _$z0 = undefined;
122 | function _$kw(){
123 | return "`"
124 | }
125 | function _$uV() {
126 | var _$h7 = _$DY(_$Em()).split(_$kw());
127 | for (var _$Cz = 0; _$Cz < _$h7.length; _$Cz++) _$h7[_$Cz] = _$Hi(_$h7[_$Cz]);
128 | return _$h7;
129 | }
130 |
131 | _$yS = _$Aw("qzs|u`v");
132 |
133 | function _$fU(_$h7) {
134 | return _$h7[_$yS];
135 | }
136 |
137 | function _$Aw(_$fq) {
138 | var _$h7, _$EO = _$fq.length, _$EA = new Array(_$EO - 1);
139 | var _$Cz = _$fq.charCodeAt(0) - 93;
140 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) {
141 | _$h7 = _$fq.charCodeAt(_$Ea);
142 | if (_$h7 >= 40 && _$h7 < 92) {
143 | _$h7 += _$Cz;
144 | if (_$h7 >= 92) _$h7 = _$h7 - 52;
145 | } else if (_$h7 >= 93 && _$h7 < 127) {
146 | _$h7 += _$Cz;
147 | if (_$h7 >= 127) _$h7 = _$h7 - 34;
148 | }
149 | _$EA[_$pM++] = _$h7;
150 | }
151 | return String.fromCharCode.apply(null, _$EA);
152 | }
153 |
154 | function _$DY(_$fq) {
155 | var _$h7, _$EO = _$fU(_$fq), _$EA = new Array(_$EO - 1);
156 | var _$Cz = _$fq.charCodeAt(0) - 40;
157 | for (var _$pM = 0, _$Ea = 1; _$Ea < _$EO; ++_$Ea) {
158 | _$h7 = _$fq.charCodeAt(_$Ea);
159 | if (_$h7 >= 40 && _$h7 < 127) {
160 | _$h7 += _$Cz;
161 | if (_$h7 >= 127) _$h7 = _$h7 - 87;
162 | }
163 | _$EA[_$pM++] = _$h7;
164 | }
165 | return String.fromCharCode.apply(null, _$EA);
166 | }
167 |
168 | function getc(meta){
169 | _$BI = _$qy(meta);
170 | for(var i = 0; i < 11; i++){
171 | var _$Ea = _$uV();
172 | }
173 | _$kI = _$Ea[1];
174 | _$D1 = _$Ea[0];
175 | _$FM = _$Ea[2];
176 | _$Em();
177 | var r = _$vz();
178 | _$wV();
179 | _$go(r);
180 | return _$Hc(26)
181 | }
182 |
183 | /**
184 | *
185 | * developer: sml2h3
186 | * time: 2019.1.20
187 | * GitHub:https://github.com/sml2h3
188 | * QQ group:119794042
189 | */
190 |
191 |
--------------------------------------------------------------------------------