python 中國裁決文書網 爬蟲,完整版!!!
程式碼:
import execjs import requests headers={ "Accept":"*/*", "Accept-Encoding":"gzip, deflate", "Accept-Language":"zh-CN,zh;q=0.8", "Cache-Control":"max-age=0", "Connection":"keep-alive", "Content-Length":"40", "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8", "Cookie":"_gscu_2116842793=389615802hdkze57; _gscbrs_2116842793=1; Hm_lvt_d2caefee2de09b8a6ea438d74fd98db2=1538961580; ASP.NET_SessionId=rvjjcq0lq41gqsrphevulxqd; Hm_lpvt_d2caefee2de09b8a6ea438d74fd98db2=1538988174; vjkl5=a8289f8999ff4e57810148185fad76048086c78b", "Host":"wenshu.court.gov.cn", "Origin":"http://wenshu.court.gov.cn", "Referer":"http://wenshu.court.gov.cn/list/list/?sorttype=1&number=&guid=690f1e5d-fc1b-c74024a3-b1c2ed7f4032&conditions=searchWord+QWJS+++%E5%85%A8%E6%96%87%E6%A3%80%E7%B4%A2:%E5%A4%A7%E8%BF%9E%20%E4%B8%9C%E8%BD%AF", "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0", "X-Requested-With":"XMLHttpRequest" } def get_guid(): ctx = execjs.compile(""" var createGuid = function () { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); } function aa(){ return createGuid() + createGuid() + "-" + createGuid() + "-" + createGuid() + createGuid() + "-" + createGuid() + createGuid() + createGuid();; } """) func = ctx.call("aa") return func def get_number(): guid=get_guid() url='http://wenshu.court.gov.cn/ValiCode/GetCode' data ={'guid':guid} res=requests.post(url,headers=headers,data=data) return res.text.strip() def getvlx5(): with open('getkey.js') as fp: js = fp.read() ctx = execjs.compile(js) vl5x = ctx.call("getKey", "a8289f8999ff4e57810148185fad76048086c78b") return vl5x
上面是分別獲取 vlx5,number 和guid的三個引數
vl5x = ctx.call("getKey", "a8289f8999ff4e57810148185fad76048086c78b") 第二個引數是上面header中的cookies裡面的 vlx5的值 所以每次請求都得獲取最新的cookies ,第一個引數就是 getkey.js中的方法名,getKey程式碼在西面
def postUrl(): guid = get_guid() print(guid) number = get_number() print(number) vl5x=getvlx5() print(vl5x) payload = {'Param': '案件型別:刑事案件', 'Index': '1','Page': '10', 'Order': '法院層級','Direction': 'asc', 'vl5x': vl5x,'number':number, 'guid': guid} res=requests.post("http://wenshu.court.gov.cn/List/ListContent",data=payload,headers=headers) print(res.text)
然後post請求,獲取的就是json物件 其中值有
runEval的值(這個值 是總的一個列表就一個) 和每條資訊對應的文書ID
下面的就是詳情頁 的url例如:
所以我們要獲取的docID
headers={ "Accept":"*/*", "Accept-Encoding":"gzip, deflate", "Accept-Language":"zh-CN,zh;q=0.8", "Cache-Control":"max-age=0", "Connection":"keep-alive", "Content-Length":"40", "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8", "Cookie":"_gscu_2116842793=389615802hdkze57; _gscbrs_2116842793=1; Hm_lvt_d2caefee2de09b8a6ea438d74fd98db2=1538961580; ASP.NET_SessionId=rvjjcq0lq41gqsrphevulxqd; Hm_lpvt_d2caefee2de09b8a6ea438d74fd98db2=1538988174; vjkl5=a8289f8999ff4e57810148185fad76048086c78b", "Host":"wenshu.court.gov.cn", "Origin":"http://wenshu.court.gov.cn", "Referer":"http://wenshu.court.gov.cn/list/list/?sorttype=1&number=&guid=690f1e5d-fc1b-c74024a3-b1c2ed7f4032&conditions=searchWord+QWJS+++%E5%85%A8%E6%96%87%E6%A3%80%E7%B4%A2:%E5%A4%A7%E8%BF%9E%20%E4%B8%9C%E8%BD%AF", "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0", "X-Requested-With":"XMLHttpRequest" } rid="w61aw43CjsKCMBB+FsKMwoc2wph9AcOiw4lHw5jDo8KkIRvDlMKVw4PCisKpeDLCvsO7AsK6w4hPEVjCqEzDtEvDiBjDmsOpw4w3w5/DjMK0NHHCvgvDl8KbY8Kgw4NDwrzDvMKMdcK4w7/DvsOYw6rDqGfCtcO7w5LCq2jCvRHCrsOjwpLCgmAtFiABw6I9KsOkFQJ5wpN2w4XCrsKEw5xCwoB3MAvCgcOswoExJBdRwoMdw5ABYsOABEgAJ8KIH8KhwoMnBMKHwoAREjIAwoFCYCjCpMOnw7nDi1kQw63Cj8KxPgVxwqRnwp5Pwr5KHiHDnMOzJVXDi8Kfw7NFw5J1JSVCKVc4w5nChMKkwrLDjXTCon0me8Kdw5/Dv8KdQCIdTjTDiElnSFHDslNxWFZ3bgvCmsKdVXAbdR9iKlozwo/Dp8KuMsOUdcKKahDCjDE8wrDCncKDw6zDhmjDocK1FXZHwo0+asK9dcO/wrdgw4DCqsKhS8OLwrXDtVfCpsKjWWZmwoQjHBvDpsKqXWbDicKDHSZEw4/ClsKfwpxowrZFw5rCrz7CqsK8W8OdE3hQYCdzw41Hw7jCiD4oP8KJw60TNsOSwo7DmcO0VcOBfmPDosOQCzYSw77DlA5rw7fDuHw4w5bDnE4UCnxPw6TCmwfCgBvCisOaQcOew6VGw4jCki/DgwXCsMOlK8OFPFo0SAPCrsKwwozDiAPCnsKrRynCpMO3Cw==" weshuid="DcKOwrcNw4BADMOEVlJ6woVSccO/wpHDrCsJEjjDgjcjwplvZ8Kzw4fDq8KiKzXDqMOgw6duPCskL8O3YcKrNyXCp2DDnMKhX8KwwppowoXCnS7DqMOUw7rCr8K+w4ATw4LDjkbCmsOqw6ZMwowKecOGHG3CvsO/HsOFwp8vw5BQAMOzwoJPEk7DssO2aBFew6F7w5dgEUrDrUnDtcObw6QxViVIwqpCBsK2w7fCp8KOwqPCuAHCosKGXcO8w7LCiCXDv8Onw5jDlFYAHw==" payload = {'runEval': rid, 'docIds': weshuid} res=requests.post("http://wenku.jwzlai.com/common/decode/docId",data=payload,headers=headers) print(res.text)
rid就是runEval的值 都複製過來,a就是每條資料對應的文書ID 請求結果為下面
{"msg":"","code":0,"data":{"DcKOwrcNw4BADMOEVlJ6woVSccO/wpHDrCsJEjjDgjcjwplvZ8Kzw4fDq8KiKzXDqMOgw6duPCskL8O3YcKrNyXCp2DDnMKhX8KwwppowoXCnS7DqMOUw7rCr8K+w4ATw4LDjkbCmsOqw6ZMwowKecOGHG3CvsO/HsOFwp8vw5BQAMOzwoJPEk7DssO2aBFew6F7w5dgEUrDrUnDtcObw6QxViVIwqpCBsK2w7fCp8KOwqPCuAHCosKGXcO8w7LCiCXDv8Onw5jDlFYAHw==":"c4f382e9-394c-408e-8ad5-a878010c71af"}} code是0就表示對了
可能出現的錯誤
remind key :出現這個就是表示上面的header 中的cookies過期了
請求docid的時候出現html文字 是nignx錯誤什麼的 那表示 runEval和文書ID過期了 需要重新替換了 還有cookies過期
如果請求的文書ID對應的docid對應為空 那麼就是cookies過期或runEval和文書ID過期了
怎麼實施自動獲取cookies 用的是selenium 可以自動獲取 或者你自己模擬登陸 然後獲取
哪個地方有問題 或者不明白 請留言 一起討論
至於getKey.js 複製到一個js檔案中 然後讀取就行了
var return_key;
var _fxxx = function (p, a, c, k, e, d) { e = function (c) { return (c < a ? "" : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) d[e(c)] = k[c] || e(c); k = [function (e) { return d[e] }]; e = function () { return '\\w+' }; c = 1; }; while (c--) if (k[c]) p = p.replace(new RegExp('\\b' + e(c) + '\\b', 'g'), k[c]); return p; };
function de(str, count, strReplace) {
var arrReplace = strReplace.split('|');
for (var i = 0; i < count; i++) {
str = str.replace(new RegExp('\\{' + i + '\\}', 'g'), arrReplace[i]);
}
return str;
}
function getKey(key) {
return_key = key;
eval(de("eval(_fxxx('e n(7){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))}f d}e p(7){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))+i}f d}e E(7,o){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))+(i*o)}f d}e x(7,o){9 d=0;j(9 i=0;i<7.k;i++){d+=(7.g(i)<<(i%m))+(i+o-7.g(i))}f d}e z(7){9 7=7.8(5,5*5)+7.8((5+1)*(5+1),3);9 a=7.8(5)+7.8(-4);9 b=7.8(4)+a.8(-6);f h(7).8(4,l)}e w(7){9 7=7.8(5,5*5)+\"5\"+7.8(1,2)+\"1\"+7.8((5+1)*(5+1),3);9 a=7.8(5)+7.8(4);9 b=7.8(t)+a.8(-6);9 c=7.8(4)+a.8(6);f h(c).8(4,l)}e A(7){9 7=7.8(5,5*5)+\"r\"+7.8(1,2)+7.8((5+1)*(5+1),3);9 a=n(7.8(5))+7.8(4);9 b=n(7.8(5))+7.8(4);9 c=7.8(4)+b.8(5);f h(c).8(1,l)}e y(7){9 7=7.8(5,5*5)+\"r\"+7.8(1,2)+7.8((5+1)*(5+1),3);9 a=p(7.8(5))+7.8(4);9 b=7.8(4)+a.8(5);9 c=n(7.8(5))+7.8(4);f h(b).8(3,l)}e B(7){9 7=7.8(5,5*5)+\"2\"+7.8(1,2)+7.8((5+1)*(5+1),3);9 d=0;j(9 i=0;i<7.8(1).k;i++){d+=(7.g(i)<<(i%m))}9 s=d+7.8(4);9 d=0;9 a=7.8(5);j(9 i=0;i<a.k;i++){d+=(a.g(i)<<(i%m))+i}a=d+\"\"+7.8(4);9 b=h(7.8(1))+n(a.8(5));f h(b).8(3,l)}e v(7){9 q=u C();9 7=q.F(7.8(5,5*5)+7.8(1,2)+\"1\")+7.8((5+1)*(5+1),3);9 a=p(7.8(4,D))+7.8(-4);9 b=h(7.8(4))+a.8(2);9 a=7.8(3);9 c=n(7.8(5))+7.8(4);9 s=d+7.8(4);9 d=0;j(9 i=0;i<a.k;i++){d+=(a.g(i)<<(i%t))+i}a=d+\"\"+7.8(4);f h(7).8(4,l)}', 42, 42, '|||||||str|substr|var||||long|{0}|return|charCodeAt|hex_md5||for|length|24|16|strToLong|step|strToLongEn|base|15|aa|12|new|{1}5|{1}1|strToLongEn3|{1}3|{1}0|{1}2|{1}4|Base64|10|strToLongEn2|encode'.split('|'), 0, {}))", 4, "function|makeKey_|(k(0)+|(c(0)+"))
eval(_fxxx('o B(8){d j=p q();d 8=8.9(5,5*5)+8.9((5+1)*(5+1),3);d a=j.s(8.9(4,G))+8.9(2);d b=8.9(6)+a.9(2);d c=x(8.9(5))+8.9(4);d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))+i}a=e+""+8.9(4);n l(b).9(2,m)}o F(8){d j=p q();d 8=j.s(8.9(5,5*4)+"E"+8.9(1,2))+8.9((5+1)*(5+1),3);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k+5))+3+5}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(4);d b=l(8.9(1))+x(a.9(5));n l(b).9(3,m)}o H(8){d j=p q();d 8=j.s(8.9(5,5*5-1)+"5"+"-"+"5")+8.9(1,2)+8.9((5+1)*(5+1),3);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(4);d b=l(8.9(1))+K(a.9(5));n l(b).9(4,m)}o J(8){d 8=8.9(5,5*5)+"5"+8.9(1,2)+"1"+8.9((5+1)*(5+1),3);d a=8.9(5)+8.9(4);d b=8.9(I)+a.9(-6);d c=t(8.9(4))+a.9(6);n l(c).9(4,m)}o w(8){d j=p q();d 8=j.s(8.9(5,5*5-1)+"5")+8.9(1,2)+8.9((5+1)*(5+1),3);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(4);d b=l(8.9(1))+t(a.9(5));n l(b).9(4,m)}o D(8){d j=p q();d 8=8.9(5,5*5-1)+"2"+8.9(1,2)+8.9((5+1)*(5+1),3);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(2);d b=8.9(1)+t(a.9(5));n l(b).9(2,m)}o y(8){d j=p q();d 8=8.9(5,5*5-1)+8.9((5+1)*(5+1),3)+"2"+8.9(1,2);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(2);d b=8.9(1)+t(8.9(5));n l(b).9(1,m)}o z(8){d j=p q();d 8=8.9(5,5*5-1)+"2"+8.9(1,2);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(2);d b=j.s(8.9(1)+t(8.9(5)));n l(b).9(1,m)}o C(8){d j=p q();d 8=8.9(5,5*5-1)+"2"+8.9(1,2);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(2);d b=j.s(8.9(1)+8.9(5)+8.9(1,3));n t(b).9(1,m)}o A(8){d j=p q();d 8=8.9(5,5*5-1)+"2"+8.9(1,2);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%k))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))}a=e+""+8.9(2);d b=j.s(a.9(1)+8.9(5)+8.9(2,3));n t(b).9(1,m)}o N(8){d j=p q();d 8=8.9(5,5*5-1)+"2"+8.9(1,2)+"-"+"5";d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%u))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))+i}a=e+""+8.9(2);d b=j.s(a.9(1))+v(8.9(5),5)+8.9(2,3);n l(b).9(2,m)}o L(8){d j=p q();d 8=8.9(5,5*5-1)+"7"+8.9(1,2)+"-"+"5";d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%u))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))+i}a=e+""+8.9(2);d b=j.s(a.9(1))+v(8.9(5),5+1)+8.9(2+5,3);n l(b).9(0,m)}o R(8){d j=p q();d 8=8.9(5,5*5-1)+"7"+8.9(1,2)+"5"+8.9(2+5,3);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%u))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))+i}a=e+""+8.9(2);d b=a.9(1)+v(8.9(5),5+1)+8.9(2+5,3);n l(b).9(0,m)}o P(8){d j=p q();d 8=8.9(5,5*5-1)+"7"+8.9(5,2)+"5"+8.9(2+5,3);d e=0;h(d i=0;i<8.9(1).g;i++){e+=(8.f(i)<<(i%u))}d r=e+8.9(4);d e=0;d a=8.9(5);h(d i=0;i<a.g;i++){e+=(a.f(i)<<(i%k))+i}a=e+""+8.9(2);d b=a.9(1)+O(8.9(5),5-1)+8.9(2+5,3);n l(b).9(0,m)}o M(8){n l(w(8)+Q(8)).9(1,m)}', 54, 54, '||||||||str|substr||||var|long|charCodeAt|length|for||base|16|hex_md5|24|return|function|new|Base64|aa|encode|hex_sha1|11|strToLongEn2|makeKey_10|strToLong|makeKey_12|makeKey_13|makeKey_15|makeKey_6|makeKey_14|makeKey_11|55|makeKey_7|10|makeKey_8|12|makeKey_9|strToLongEn|makeKey_17|makeKey_20|makeKey_16|strToLongEn3|makeKey_19|makeKey_5|makeKey_18'.split('|'), 0, {}))
eval(_fxxx('6 3f(0){7 5(1v(0)+g(0)).8(2,24)}6 1w(0){7 5(k(0)+b(0)).8(3,24)}6 1x(0){7 5(i(0)+9(0)).8(4,24)}6 1s(0){7 5(j(0)+a(0)).8(1,24)}6 1t(0){7 5(h(0)+c(0)).8(2,24)}6 1u(0){7 5(f(0)+m(0)).8(3,24)}6 1y(0){7 5(e(0)+g(0)).8(4,24)}6 1C(0){7 5(d(0)+l(0)).8(1,24)}6 1D(0){7 5(b(0)+g(0)).8(2,24)}6 1E(0){7 5(9(0)+l(0)).8(3,24)}6 1z(0){7 5(a(0)+n(0)).8(4,24)}6 1A(0){7 5(c(0)+k(0)).8(3,24)}6 1B(0){7 5(m(0)+i(0)).8(4,24)}6 1i(0){7 5(g(0)+j(0)).8(1,24)}6 1j(0){7 5(l(0)+h(0)).8(2,24)}6 1k(0){7 5(n(0)+f(0)).8(3,24)}6 1f(0){7 5(1g(0)+e(0)).8(1,24)}6 1h(0){7 5(o(0)+d(0)).8(2,24)}6 1l(0){7 5(k(0)+b(0)).8(3,24)}6 1p(0){7 5(i(0)+9(0)).8(4,24)}6 1q(0){7 5(j(0)+a(0)).8(3,24)}6 1r(0){7 5(h(0)+c(0)).8(4,24)}6 1m(0){7 5(f(0)+m(0)).8(1,24)}6 1n(0){7 5(e(0)+g(0)).8(2,24)}6 1o(0){7 5(d(0)+l(0)).8(3,24)}6 1V(0){7 5(b(0)+e(0)).8(4,24)}6 1W(0){7 5(9(0)+d(0)).8(1,24)}6 1X(0){7 5(a(0)+b(0)).8(2,24)}6 1S(0){7 5(c(0)+9(0)).8(3,24)}6 1T(0){7 5(m(0)+a(0)).8(4,24)}6 1U(0){7 5(g(0)+c(0)).8(1,24)}6 1Y(0){7 5(l(0)+k(0)).8(2,24)}6 22(0){7 5(o(0)+i(0)).8(3,24)}6 23(0){7 5(k(0)+j(0)).8(4,24)}6 25(0){7 5(i(0)+h(0)).8(3,24)}6 1Z(0){7 5(j(0)+f(0)).8(4,24)}6 20(0){7 5(h(0)+e(0)).8(1,24)}6 21(0){7 5(f(0)+d(0)).8(2,24)}6 1I(0){7 5(e(0)+b(0)).8(3,24)}6 1J(0){7 5(d(0)+9(0)).8(1,24)}6 1K(0){7 5(b(0)+a(0)).8(2,24)}6 1F(0){7 5(9(0)+c(0)).8(3,24)}6 1G(0){7 5(a(0)+b(0)).8(4,24)}6 1H(0){7 5(c(0)+9(0)).8(3,24)}6 1L(0){7 5(k(0)+a(0)).8(1,24)}6 1P(0){7 5(i(0)+c(0)).8(2,24)}6 1Q(0){7 5(j(0)+m(0)).8(3,24)}6 1R(0){7 5(h(0)+g(0)).8(4,24)}6 1M(0){7 5(f(0)+l(0)).8(1,24)}6 1N(0){7 5(e(0)+9(0)).8(2,24)}6 1O(0){7 5(d(0)+a(0)).8(3,24)}6 1e(0){7 5(b(0)+c(0)).8(4,24)}6 M(0){7 5(9(0)+e(0)).8(1,24)}6 D(0){7 5(a(0)+d(0)).8(2,24)}6 E(0){7 5(k(0)+b(0)).8(3,24)}6 F(0){7 5(i(0)+9(0)).8(4,24)}6 C(0){7 5(j(0)+a(0)).8(3,24)}6 z(0){7 5(h(0)+c(0)).8(4,24)}6 A(0){7 5(f(0)+h(0)).8(1,24)}6 B(0){7 5(e(0)+f(0)).8(2,24)}6 K(0){7 5(d(0)+e(0)).8(3,24)}6 L(0){7 5(k(0)+d(0)).8(1,24)}6 J(0){7 5(i(0)+b(0)).8(4,24)}6 G(0){7 5(j(0)+9(0)).8(1,24)}6 H(0){7 5(h(0)+a(0)).8(2,24)}6 I(0){7 5(f(0)+c(0)).8(3,24)}6 s(0){7 5(k(0)+k(0)).8(4,24)}6 x(0){7 5(i(0)+i(0)).8(1,24)}6 u(0){7 5(j(0)+j(0)).8(2,24)}6 p(0){7 5(h(0)+h(0)).8(3,24)}6 t(0){7 5(f(0)+f(0)).8(4,24)}6 w(0){7 5(e(0)+e(0)).8(3,24)}6 v(0){7 5(d(0)+d(0)).8(4,24)}6 y(0){7 5(b(0)+b(0)).8(1,24)}6 q(0){7 5(9(0)+9(0)).8(2,24)}6 r(0){7 5(a(0)+a(0)).8(3,24)}6 N(0){7 5(c(0)+c(0)).8(4,24)}6 14(0){7 5(m(0)+m(0)).8(3,24)}6 15(0){7 5(g(0)+g(0)).8(4,24)}6 16(0){7 5(l(0)+g(0)).8(1,24)}6 11(0){7 5(f(0)+l(0)).8(2,24)}6 12(0){7 5(e(0)+d(0)).8(1,24)}6 13(0){7 5(d(0)+b(0)).8(2,24)}6 17(0){7 5(b(0)+9(0)).8(3,24)}6 1b(0){7 5(9(0)+9(0)).8(4,24)}6 1c(0){7 5(a(0)+a(0)).8(1,24)}6 1d(0){7 5(k(0)+k(0)).8(2,24)}6 18(0){7 5(i(0)+i(0)).8(3,24)}6 19(0){7 5(j(0)+j(0)).8(4,24)}6 1a(0){7 5(h(0)+h(0)).8(1,24)}6 R(0){7 5(f(0)+f(0)).8(2,24)}6 S(0){7 5(e(0)+e(0)).8(3,24)}6 T(0){7 5(d(0)+d(0)).8(4,24)}6 O(0){7 5(b(0)+b(0)).8(3,24)}6 P(0){7 5(9(0)+9(0)).8(4,24)}6 Q(0){7 5(a(0)+a(0)).8(1,24)}6 U(0){7 5(c(0)+c(0)).8(2,24)}6 Y(0){7 5(m(0)+i(0)).8(3,24)}6 Z(0){7 5(g(0)+j(0)).8(1,24)}6 10(0){7 5(b(0)+h(0)).8(1,24)}6 V(0){7 5(9(0)+f(0)).8(2,24)}6 W(0){7 5(a(0)+e(0)).8(3,24)}6 X(0){7 5(c(0)+d(0)).8(4,24)}6 26(0){7 5(m(0)+b(0)).8(1,24)}6 3c(0){7 5(g(0)+9(0)).8(2,24)}6 3d(0){7 5(l(0)+a(0)).8(3,24)}6 3e(0){7 5(g(0)+c(0)).8(4,24)}6 39(0){7 5(l(0)+m(0)).8(1,24)}6 3a(0){7 5(n(0)+g(0)).8(2,24)}6 3b(0){7 5(k(0)+l(0)).8(3,24)}6 3i(0){7 5(i(0)+f(0)).8(4,24)}6 3j(0){7 5(j(0)+e(0)).8(3,24)}6 3k(0){7 5(h(0)+d(0)).8(4,24)}6 2E(0){7 5(f(0)+b(0)).8(1,24)}6 3g(0){7 5(e(0)+9(0)).8(2,24)}6 3h(0){7 5(d(0)+a(0)).8(1,24)}6 38(0){7 5(b(0)+k(0)).8(2,24)}6 2Z(0){7 5(9(0)+i(0)).8(3,24)}6 30(0){7 5(a(0)+j(0)).8(4,24)}6 31(0){7 5(c(0)+h(0)).8(1,24)}6 2W(0){7 5(m(0)+f(0)).8(2,24)}6 2X(0){7 5(g(0)+e(0)).8(3,24)}6 2Y(0){7 5(l(0)+d(0)).8(4,24)}6 35(0){7 5(e(0)+b(0)).8(1,24)}6 36(0){7 5(d(0)+9(0)).8(2,24)}6 37(0){7 5(b(0)+a(0)).8(3,24)}6 32(0){7 5(9(0)+c(0)).8(4,24)}6 33(0){7 5(a(0)+m(0)).8(3,24)}6 34(0){7 5(c(0)+g(0)).8(4,24)}6 3D(0){7 5(k(0)+b(0)).8(1,24)}6 3B(0){7 5(i(0)+9(0)).8(2,24)}6 3C(0){7 5(j(0)+a(0)).8(3,24)}6 3y(0){7 5(h(0)+c(0)).8(1,24)}6 3z(0){7 5(f(0)+m(0)).8(1,24)}6 3A(0){7 5(e(0)+g(0)).8(2,24)}6 3I(0){7 5(d(0)+l(0)).8(3,24)}6 3J(0){7 5(b(0)+g(0)).8(4,24)}6 3H(0){7 5(9(0)+l(0)).8(1,24)}6 3E(0){7 5(a(0)+n(0)).8(2,24)}6 3F(0){7 5(c(0)+k(0)).8(3,24)}6 3G(0){7 5(b(0)+i(0)).8(4,24)}6 3x(0){7 5(9(0)+j(0)).8(1,24)}6 3o(0){7 5(a(0)+h(0)).8(2,24)}6 3p(0){7 5(c(0)+f(0)).8(3,24)}6 3q(0){7 5(m(0)+e(0)).8(4,24)}6 3l(0){7 5(g(0)+d(0)).8(3,24)}6 3m(0){7 5(l(0)+b(0)).8(4,24)}6 3n(0){7 5(9(0)+9(0)).8(1,24)}6 3u(0){7 5(a(0)+a(0)).8(2,24)}6 3v(0){7 5(c(0)+c(0)).8(3,24)}6 3w(0){7 5(e(0)+m(0)).8(1,24)}6 3r(0){7 5(d(0)+g(0)).8(2,24)}6 3s(0){7 5(b(0)+l(0)).8(3,24)}6 3t(0){7 5(9(0)+e(0)).8(4,24)}6 2V(0){7 5(a(0)+d(0)).8(1,24)}6 2n(0){7 5(c(0)+b(0)).8(2,24)}6 2o(0){7 5(h(0)+9(0)).8(3,24)}6 2p(0){7 5(f(0)+a(0)).8(4,24)}6 2k(0){7 5(e(0)+c(0)).8(1,24)}6 2l(0){7 5(d(0)+k(0)).8(3,24)}6 2m(0){7 5(b(0)+i(0)).8(1,24)}6 2t(0){7 5(9(0)+j(0)).8(2,24)}6 2u(0){7 5(a(0)+h(0)).8(3,24)}6 2v(0){7 5(c(0)+f(0)).8(4,24)}6 2q(0){7 5(k(0)+e(0)).8(3,24)}6 2r(0){7 5(i(0)+d(0)).8(4,24)}6 2s(0){7 5(j(0)+b(0)).8(4,24)}6 2j(0){7 5(h(0)+9(0)).8(1,24)}6 2a(0){7 5(f(0)+a(0)).8(2,24)}6 2b(0){7 5(e(0)+c(0)).8(3,24)}6 2c(0){7 5(d(0)+b(0)).8(4,24)}6 27(0){7 5(b(0)+9(0)).8(1,24)}6 28(0){7 5(9(0)+a(0)).8(2,24)}6 29(0){7 5(a(0)+c(0)).8(3,24)}6 2g(0){7 5(c(0)+k(0)).8(4,24)}6 2h(0){7 5(m(0)+i(0)).8(3,24)}6 2i(0){7 5(g(0)+j(0)).8(4,24)}6 2d(0){7 5(g(0)+h(0)).8(1,24)}6 2e(0){7 5(l(0)+a(0)).8(2,24)}6 2f(0){7 5(d(0)+b(0)).8(2,24)}6 2M(0){7 5(b(0)+9(0)).8(3,24)}6 2N(0){7 5(9(0)+a(0)).8(1,24)}6 2O(0){7 5(a(0)+c(0)).8(2,24)}6 2J(0){7 5(c(0)+m(0)).8(3,24)}6 2K(0){7 5(k(0)+g(0)).8(4,24)}6 2L(0){7 5(i(0)+l(0)).8(1,24)}6 2S(0){7 5(j(0)+e(0)).8(2,24)}6 2T(0){7 5(h(0)+d(0)).8(3,24)}6 2U(0){7 5(f(0)+b(0)).8(4,24)}6 2P(0){7 5(e(0)+9(0)).8(1,24)}6 2Q(0){7 5(d(0)+a(0)).8(3,24)}6 2R(0){7 5(b(0)+c(0)).8(1,24)}6 2I(0){7 5(9(0)+k(0)).8(2,24)}6 2z(0){7 5(a(0)+i(0)).8(3,24)}6 2A(0){7 5(c(0)+j(0)).8(4,24)}6 2B(0){7 5(b(0)+h(0)).8(3,24)}6 2w(0){7 5(9(0)+f(0)).8(4,24)}6 2x(0){7 5(a(0)+e(0)).8(4,24)}6 2y(0){7 5(c(0)+d(0)).8(1,24)}6 2F(0){7 5(m(0)+b(0)).8(2,24)}6 2G(0){7 5(g(0)+9(0)).8(3,24)}6 2H(0){7 5(l(0)+a(0)).8(4,24)}6 2C(0){7 5(9(0)+c(0)).8(1,24)}6 2D(0){7 5(a(0)+m(0)).8(2,24)}', 62, 232, 'str|||||hex_md5|function|return|substr|makeKey_0|makeKey_1|makeKey_19|makeKey_4|makeKey_18|makeKey_17|makeKey_10|makeKey_3|makeKey_9|makeKey_15|makeKey_16|makeKey_14|makeKey_7|makeKey_5|makeKey_8|makeKey_12|makeKey_90|makeKey_95|makeKey_96|makeKey_87|makeKey_91|makeKey_89|makeKey_93|makeKey_92|makeKey_88|makeKey_94|makeKey_78|makeKey_79|makeKey_80|makeKey_77|makeKey_74|makeKey_75|makeKey_76|makeKey_84|makeKey_85|makeKey_86|makeKey_83|makeKey_81|makeKey_82|makeKey_73|makeKey_97|makeKey_114|makeKey_115|makeKey_116|makeKey_111|makeKey_112|makeKey_113|makeKey_117|makeKey_121|makeKey_122|makeKey_123|makeKey_118|makeKey_119|makeKey_120|makeKey_101|makeKey_102|makeKey_103|makeKey_98|makeKey_99|makeKey_100|makeKey_104|makeKey_108|makeKey_109|makeKey_110|makeKey_105|makeKey_106|makeKey_107|makeKey_72|makeKey_37|makeKey_6|makeKey_38|makeKey_34|makeKey_35|makeKey_36|makeKey_39|makeKey_43|makeKey_44|makeKey_45|makeKey_40|makeKey_41|makeKey_42|makeKey_24|makeKey_25|makeKey_26|makeKey_11|makeKey_22|makeKey_23|makeKey_27|makeKey_31|makeKey_32|makeKey_33|makeKey_28|makeKey_29|makeKey_30|makeKey_62|makeKey_63|makeKey_64|makeKey_59|makeKey_60|makeKey_61|makeKey_65|makeKey_69|makeKey_70|makeKey_71|makeKey_66|makeKey_67|makeKey_68|makeKey_49|makeKey_50|makeKey_51|makeKey_46|makeKey_47|makeKey_48|makeKey_52|makeKey_56|makeKey_57|makeKey_58|makeKey_53|makeKey_54||makeKey_55|makeKey_124|makeKey_192|makeKey_193|makeKey_194|makeKey_189|makeKey_190|makeKey_191|makeKey_198|makeKey_199|makeKey_200|makeKey_195|makeKey_196|makeKey_197|makeKey_188|makeKey_179|makeKey_180|makeKey_181|makeKey_176|makeKey_177|makeKey_178|makeKey_185|makeKey_186|makeKey_187|makeKey_182|makeKey_183|makeKey_184|makeKey_217|makeKey_218|makeKey_219|makeKey_214|makeKey_215|makeKey_216|makeKey_223|makeKey_224|makeKey_134|makeKey_220|makeKey_221|makeKey_222|makeKey_213|makeKey_204|makeKey_205|makeKey_206|makeKey_201|makeKey_202|makeKey_203|makeKey_210|makeKey_211|makeKey_212|makeKey_207|makeKey_208|makeKey_209|makeKey_175|makeKey_141|makeKey_142|makeKey_143|makeKey_138|makeKey_139|makeKey_140|makeKey_147|makeKey_148|makeKey_149|makeKey_144|makeKey_145|makeKey_146|makeKey_137|makeKey_128|makeKey_129|makeKey_130|makeKey_125|makeKey_126|makeKey_127|makeKey_21|makeKey_135|makeKey_136|makeKey_131|makeKey_132|makeKey_133|makeKey_166|makeKey_167|makeKey_168|makeKey_163|makeKey_164|makeKey_165|makeKey_172|makeKey_173|makeKey_174|makeKey_169|makeKey_170|makeKey_171|makeKey_162|makeKey_153|makeKey_154|makeKey_155|makeKey_151|makeKey_152|makeKey_150|makeKey_159|makeKey_160|makeKey_161|makeKey_158|makeKey_156|makeKey_157'.split('|'), 0, {}))
eval(_fxxx('5 y(0){7 6(d(0)+m(0)).9(3,8)}5 z(0){7 6(e(0)+l(0)).9(4,8)}5 w(0){7 6(f(0)+e(0)).9(2,8)}5 x(0){7 6(a(0)+f(0)).9(3,8)}5 C(0){7 6(b(0)+a(0)).9(1,8)}5 D(0){7 6(c(0)+b(0)).9(2,8)}5 A(0){7 6(d(0)+c(0)).9(3,8)}5 B(0){7 6(h(0)+d(0)).9(4,8)}5 v(0){7 6(i(0)+j(0)).9(1,8)}5 p(0){7 6(e(0)+g(0)).9(2,8)}5 q(0){7 6(f(0)+k(0)).9(3,8)}5 n(0){7 6(a(0)+h(0)).9(4,8)}5 o(0){7 6(b(0)+i(0)).9(1,8)}5 t(0){7 6(c(0)+e(0)).9(3,8)}5 u(0){7 6(d(0)+a(0)).9(1,8)}5 r(0){7 6(j(0)+b(0)).9(2,8)}5 s(0){7 6(g(0)+c(0)).9(3,8)}5 N(0){7 6(k(0)+d(0)).9(4,8)}5 O(0){7 6(h(0)+M(0)).9(3,8)}5 Q(0){7 6(i(0)+m(0)).9(4,8)}5 G(0){7 6(e(0)+l(0)).9(4,8)}5 F(0){7 6(f(0)+e(0)).9(2,8)}5 H(0){7 6(a(0)+f(0)).9(3,8)}5 K(0){7 6(b(0)+a(0)).9(1,8)}5 J(0){7 6(c(0)+b(0)).9(2,8)}5 I(0){7 6(d(0)+c(0)).9(3,8)}5 E(0){7 6(a(0)+d(0)).9(4,8)}5 L(0){7 6(b(0)+j(0)).9(1,8)}5 P(0){7 6(c(0)+g(0)).9(2,8)}', 53, 53, 'str|||||function|hex_md5|return|24|substr|makeKey_19|makeKey_0|makeKey_1|makeKey_4|makeKey_17|makeKey_18|makeKey_15|makeKey_9|makeKey_10|makeKey_14|makeKey_16|makeKey_7|makeKey_3|makeKey_236|makeKey_237|makeKey_234|makeKey_235|makeKey_240|makeKey_241|makeKey_238|makeKey_239|makeKey_233|makeKey_227|makeKey_228|makeKey_225|makeKey_226|makeKey_231|makeKey_232|makeKey_229|makeKey_230|makeKey_251|makeKey_246|makeKey_245|makeKey_247|makeKey_250|makeKey_249|makeKey_248|makeKey_252|makeKey_5|makeKey_242|makeKey_243|makeKey_253|makeKey_244'.split('|'), 0, {}))
eval(_fxxx('7 p(0){6 5(a(0)+a(0)).8(3,9)}7 G(0){6 5(n(0)+i(0)).8(4,9)}7 E(0){6 5(l(0)+j(0)).8(1,9)}7 I(0){6 5(m(0)+h(0)).8(3,9)}7 z(0){6 5(c(0)+g(0)).8(1,9)}7 C(0){6 5(b(0)+k(0)).8(2,9)}7 B(0){6 5(a(0)+f(0)).8(3,9)}7 D(0){6 5(f(0)+e(0)).8(4,9)}7 y(0){6 5(e(0)+d(0)).8(3,9)}7 A(0){6 5(d(0)+c(0)).8(4,9)}7 H(0){6 5(c(0)+b(0)).8(4,9)}7 J(0){6 5(b(0)+a(0)).8(1,9)}7 F(0){6 5(a(0)+d(0)).8(2,9)}7 x(0){6 5(g(0)+c(0)).8(3,9)}7 r(0){6 5(k(0)+b(0)).8(4,9)}7 q(0){6 5(f(0)+a(0)).8(1,9)}7 o(0){6 5(e(0)+i(0)).8(2,9)}7 v(0){6 5(d(0)+j(0)).8(3,9)}7 u(0){6 5(c(0)+h(0)).8(4,9)}7 s(0){6 5(b(0)+g(0)).8(3,9)}7 t(0){6 5(d(0)+b(0)).8(4,9)}7 w(0){6 5(c(0)+d(0)).8(1,9)}7 K(0){6 5(b(0)+c(0)).8(2,9)}7 U(0){6 5(a(0)+b(0)).8(2,9)}7 Y(0){6 5(n(0)+a(0)).8(3,9)}7 W(0){6 5(l(0)+n(0)).8(1,9)}7 X(0){6 5(m(0)+l(0)).8(2,9)}7 V(0){6 5(f(0)+m(0)).8(3,9)}7 11(0){6 5(e(0)+f(0)).8(4,9)}7 12(0){6 5(d(0)+e(0)).8(1,9)}7 Z(0){6 5(c(0)+d(0)).8(2,9)}7 10(0){6 5(b(0)+c(0)).8(3,9)}7 N(0){6 5(a(0)+b(0)).8(4,9)}7 O(0){6 5(i(0)+a(0)).8(1,9)}7 L(0){6 5(j(0)+i(0)).8(3,9)}7 M(0){6 5(h(0)+j(0)).8(1,9)}7 P(0){6 5(g(0)+h(0)).8(2,9)}7 S(0){6 5(k(0)+g(0)).8(3,9)}7 T(0){6 5(f(0)+k(0)).8(4,9)}7 Q(0){6 5(e(0)+f(0)).8(3,9)}7 R(0){6 5(e(0)+e(0)).8(4,9)}', 62, 65, 'str|||||hex_md5|return|function|substr|24|makeKey_4|makeKey_1|makeKey_0|makeKey_19|makeKey_18|makeKey_17|makeKey_9|makeKey_16|makeKey_14|makeKey_15|makeKey_10|makeKey_3|makeKey_7|makeKey_5|makeKey_270|makeKey_254|makeKey_269|makeKey_268|makeKey_273|makeKey_274|makeKey_272|makeKey_271|makeKey_275|makeKey_267|makeKey_262|makeKey_258|makeKey_263|makeKey_260|makeKey_259|makeKey_261|makeKey_256|makeKey_266|makeKey_255|makeKey_264|makeKey_257|makeKey_265|makeKey_276|makeKey_288|makeKey_289|makeKey_286|makeKey_287|makeKey_290|makeKey_293|makeKey_294|makeKey_291|makeKey_292|makeKey_277|makeKey_281|makeKey_279|makeKey_280|makeKey_278|makeKey_284|makeKey_285|makeKey_282|makeKey_283'.split('|'), 0, {}))
eval(de("eval(_fxxx('6 1F(0){5 7(b(0)+b(0)).8(4,24)}6 W(0){5 7(9(0)+9(0)).8(1,24)}6 V(0){5 7(a(0)+a(0)).8(2,24)}6 U(0){5 7{3}c(0)).8(3,24)}6 X(0){5 7(h(0)+h(0)).8(4,24)}6 10(0){5 7(g(0)+g(0)).8(1,24)}6 Z(0){5 7(f(0)+f(0)).8(2,24)}6 Y(0){5 7(d(0)+d(0)).8(3,24)}6 P(0){5 7(e(0)+e(0)).8(4,24)}6 O(0){5 7(b(0)+b(0)).8(3,24)}6 N(0){5 7(9(0)+9(0)).8(4,24)}6 Q(0){5 7(a(0)+a(0)).8(1,24)}6 T(0){5 7{3}c(0)).8(2,24)}6 S(0){5 7{2}k(0)).8(2,24)}6 R(0){5 7(m(0)+m(0)).8(3,24)}6 1a(0){5 7(l(0)+l(0)).8(1,24)}6 19(0){5 7(i(0)+i(0)).8(2,24)}6 18(0){5 7(j(0)+j(0)).8(3,24)}6 1b(0){5 7(d(0)+d(0)).8(4,24)}6 1e(0){5 7(b(0)+b(0)).8(1,24)}6 1d(0){5 7(9(0)+9(0)).8(2,24)}6 1c(0){5 7(a(0)+a(0)).8(3,24)}6 13(0){5 7{3}c(0)).8(4,24)}6 12(0){5 7(h(0)+h(0)).8(1,24)}6 11(0){5 7(g(0)+g(0)).8(3,24)}6 14(0){5 7(f(0)+f(0)).8(1,24)}6 17(0){5 7(d(0)+d(0)).8(2,24)}6 16(0){5 7(e(0)+e(0)).8(3,24)}6 15(0){5 7(b(0)+b(0)).8(4,24)}6 M(0){5 7(9(0)+9(0)).8(3,24)}6 w(0){5 7(a(0)+a(0)).8(4,24)}6 s(0){5 7{3}c(0)).8(4,24)}6 o(0){5 7(b(0)+k(0)).8(1,24)}6 t(0){5 7(9(0)+m(0)).8(2,24)}6 r(0){5 7(a(0)+l(0)).8(3,24)}6 v(0){5 7{3}i(0)).8(4,24)}6 u(0){5 7(b(0)+j(0)).8(1,24)}6 q(0){5 7(9(0)+d(0)).8(2,24)}6 n(0){5 7(a(0)+e(0)).8(3,24)}6 p(0){5 7{3}e(0)).8(4,24)}6 H(0){5 7(h(0)+b(0)).8(3,24)}6 G(0){5 7(g(0)+9(0)).8(4,24)}6 F(0){5 7(f(0)+a(0)).8(2,24)}6 I(0){5 7(9(0)+c(0)).8(3,24)}6 L(0){5 7(a(0)+h(0)).8(1,24)}6 J(0){5 7{3}g(0)).8(2,24)}6 E(0){5 7(d(0)+f(0)).8(3,24)}6 z(0){5 7(e(0)+d(0)).8(4,24)}6 y(0){5 7(b(0)+e(0)).8(1,24)}6 x(0){5 7(9(0)+b(0)).8(2,24)}6 A(0){5 7(a(0)+9(0)).8(3,24)}6 D(0){5 7{3}a(0)).8(4,24)}6 C(0){5 7(i(0)+c(0)).8(1,24)}6 B(0){5 7(j(0)+k(0)).8(3,24)}6 K(0){5 7(d(0)+m(0)).8(1,24)}6 1f(0){5 7(e(0)+l(0)).8(2,24)}6 1N(0){5 7(b(0)+i(0)).8(3,24)}6 1M(0){5 7(9(0)+j(0)).8(4,24)}6 1L(0){5 7(a(0)+d(0)).8(3,24)}6 1Q(0){5 7(e(0)+b(0)).8(4,24)}6 1P(0){5 7(b(0)+9(0)).8(4,24)}6 1O(0){5 7(9(0)+a(0)).8(1,24)}6 1H(0){5 7(a(0)+c(0)).8(2,24)}6 1G(0){5 7{3}h(0)).8(3,24)}6 1w(0){5 7(h(0)+g(0)).8(4,24)}6 1K(0){5 7(g(0)+f(0)).8(2,24)}6 1J(0){5 7(f(0)+d(0)).8(3,24)}6 1I(0){5 7(d(0)+e(0)).8(1,24)}6 1R(0){5 7(e(0)+b(0)).8(2,24)}6 20(0){5 7(b(0)+9(0)).8(3,24)}6 1Y(0){5 7(9(0)+a(0)).8(4,24)}6 21(0){5 7(a(0)+c(0)).8(1,24)}6 1Z(0){5 7{3}f(0)).8(2,24)}6 23(0){5 7{2}d(0)).8(3,24)}6 22(0){5 7(m(0)+e(0)).8(4,24)}6 1U(0){5 7(l(0)+b(0)).8(1,24)}6 1T(0){5 7(i(0)+9(0)).8(3,24)}6 1S(0){5 7(j(0)+a(0)).8(1,24)}6 1X(0){5 7(d(0)+c(0)).8(2,24)}6 1W(0){5 7(b(0)+d(0)).8(3,24)}6 1V(0){5 7(9(0)+e(0)).8(4,24)}6 1o(0){5 7(a(0)+b(0)).8(3,24)}6 1n(0){5 7{3}9(0)).8(4,24)}6 1m(0){5 7(h(0)+a(0)).8(4,24)}6 1r(0){5 7(g(0)+c(0)).8(1,24)}6 1q(0){5 7(f(0)+i(0)).8(2,24)}6 1p(0){5 7(d(0)+j(0)).8(3,24)}6 1i(0){5 7(e(0)+d(0)).8(4,24)}6 1h(0){5 7(b(0)+e(0)).8(1,24)}6 1g(0){5 7(9(0)+b(0)).8(2,24)}6 1l(0){5 7(a(0)+9(0)).8(3,24)}6 1k(0){5 7{3}a(0)).8(4,24)}6 1j(0){5 7(d(0)+a(0)).8(2,24)}6 1s(0){5 7(e(0)+c(0)).8(3,24)}6 1B(0){5 7(b(0)+f(0)).8(1,24)}6 1A(0){5 7(9(0)+d(0)).8(2,24)}6 1z(0){5 7(a(0)+e(0)).8(3,24)}6 1E(0){5 7{3}b(0)).8(4,24)}6 1D(0){5 7(i(0)+9(0)).8(1,24)}6 1C(0){5 7(j(0)+a(0)).8(2,24)}6 1v(0){5 7(d(0)+c(0)).8(3,24)}6 1u(0){5 7(e(0)+d(0)).8(4,24)}6 1t(0){5 7(b(0)+e(0)).8(1,24)}6 1y(0){5 7(9(0)+b(0)).8(3,24)}6 1x(0){5 7(a(0)+9(0)).8(1,24)}', 62, 129, 'str|||||return|{0}|hex_md5|substr|{1}0|{1}1|{1}19|{1}4|{1}17|{1}18|{1}7|{1}3|{1}5|{1}9|{1}10|{1}14|{1}16|{1}15|{1}333|{1}327|{1}334|{1}332|{1}329|{1}326|{1}328|{1}331|{1}330|{1}325|{1}344|{1}343|{1}342|{1}345|{1}348|{1}347|{1}346|{1}341|{1}337|{1}336|{1}335|{1}338|{1}340|{1}349|{1}339|{1}324|{1}305|{1}304|{1}303|{1}306|{1}309|{1}308|{1}307|{1}298|{1}297|{1}296|{1}299|{1}302|{1}301|{1}300|{1}319|{1}318|{1}317|{1}320|{1}323|{1}322|{1}321|{1}312|{1}311|{1}310|{1}313|{1}316|{1}315|{1}314|{1}350|{1}384|{1}383|{1}382|{1}387|{1}386|{1}385|{1}378|{1}377|{1}376|{1}381|{1}380|{1}379|{1}388|{1}397|{1}396|{1}395|{1}359|{1}399|{1}398|{1}391|{1}390|{1}389|{1}394|{1}393|{1}392|{1}295|{1}358|{1}357|{1}362|{1}361|{1}360|{1}353|{1}352|{1}351|{1}356|{1}355|{1}354|{1}363|{1}372|{1}371|{1}370|{1}375|{1}374|{1}373|{1}365|{1}367|{1}364|{1}366|{1}369|{1}368|'.split('|'), 0, {}))", 4, "function|makeKey_|(k(0)+|(c(0)+"))
eval(_fxxx('0 2=2f(\'2e\');0 1=[2d,2i,2h,2g,29,28,27,2c,2b,2a,2j,2s,2r,2q,2v,2u,2t,2m,2l,2k,2p,2o,2n,1Q,1P,1O,1T,1S,1R,1K,1J,1I,1N,1M,1L,1U,23,22,21,26,25,24,1X,1W,1V,20,1Z,1Y,2w,34,33,32,37,36,35,2Y,2X,2W,31,30,2Z,38,3h,3g,3f,3k,3j,3i,3b,3a,39,3e,3d,3c,2F,2E,2D,2I,2H,2G,2z,2y,2x,2C,2B,2A,2J,2S,2R,2Q,2V,2U,2T,2M,2L,2K,2P,2O,2N,C,B,A,F,E,D,w,v,u,z,y,x,G,P,O,N,S,R,Q,J,I,H,M,L,K,d,c,b,g,f,e,7,6,5,a,9,8,h,q,p,o,t,s,r,k,j,i,n,m,l,T,1r,1q,1p,1u,1t,1s,1l,1k,1j,1o,1n,1m,1v,1E,1D,1C,1H,1G,1F,1y,1x,1w,1B,1A,1z,12,11,10,15,14,13,W,V,U,Z,Y,X,16,1f,1e,1d,1i,1h,1g,19,18,17,1c,1b,1a,3l,5w,5v,5u,5z,5y,5x,5q,5p,5o,5t,5s,5r,5A,5J,5I,5H,5M,5L,5K,5D,5C,5B,5G,5F,5E,57,56,55,5a,59,58,51,50,4Z,54,53,52,5b,5k,5j,5i,5n,5m,5l,5e,5d,5c,5h,5g,5f,5N,6l,6k,6j,6o,6n,6m,6f,6e,6d,6i,6h,6g,6p,6y,6x,6w,6B,6A,6z,6s,6r,6q,6v,6u,6t,5W,5V,5U,5Z,5Y,5X,5Q,5P,5O,5T,5S,5R,60,69,68,67,6c,6b,6a,63,62,61,66,65,64,3T,3S,3R,3W,3V,3U,3N,3M,3L,3Q,3P,3O,3X,46,45,44,49,48,47,40,3Z,3Y,43,42,41,3u,3t,3s,3x,3w,3v,3o,3n,3m,3r,3q,3p,3y,3H,3G,3F,3K,3J,3I,3B,3A,3z,3E,3D,3C,4a,4I,4H,4G,4L,4K,4J,4C,4B,4A,4F,4E,4D,4M,4V,4U,4T,4Y,4X,4W,4P,4O,4N,4S,4R,4Q,4j,4i,4h,4m,4l,4k,4d,4c,4b,4g,4f,4e,4n,4w,4v,4u,4z,4y,4x,4q,4p,4o];0 3=4t(2)%1.4s;0 4=1[3];0 4r=4(2);', 62, 410, eval(de("'var|arrFun|cookie|funIndex|fun|{0}132|{0}131|{0}130|{0}135|{0}134|{0}133|{0}126|{0}125|{0}124|{0}129|{0}128|{0}127|{0}136|{0}145|{0}144|{0}143|{0}148|{0}147|{0}146|{0}139|{0}138|{0}137|{0}142|{0}141|{0}140|{0}107|{0}106|{0}105|{0}110|{0}109|{0}108|{0}101|{0}100|{0}99|{0}104|{0}103|{0}102|{0}111|{0}120|{0}119|{0}118|{0}123|{0}122|{0}121|{0}114|{0}113|{0}112|{0}117|{0}116|{0}115|{0}149|{0}183|{0}182|{0}181|{0}186|{0}185|{0}184|{0}177|{0}176|{0}175|{0}180|{0}179|{0}178|{0}187|{0}196|{0}195|{0}194|{0}199|{0}198|{0}197|{0}190|{0}189|{0}188|{0}193|{0}192|{0}191|{0}158|{0}157|{0}156|{0}161|{0}160|{0}159|{0}152|{0}151|{0}150|{0}155|{0}154|{0}153|{0}162|{0}171|{0}170|{0}169|{0}174|{0}173|{0}172|{0}165|{0}164|{0}163|{0}168|{0}167|{0}166|{0}31|{0}30|{0}29|{0}34|{0}33|{0}32|{0}25|{0}24|{0}23|{0}28|{0}27|{0}26|{0}35|{0}44|{0}43|{0}42|{0}47|{0}46|{0}45|{0}38|{0}37|{0}36|{0}41|{0}40|{0}39|{0}6|{0}5|{0}4|{0}9|{0}8|{0}7|{0}0|vjkl5|getCookie|{0}3|{0}2|{0}1|{0}10|{0}19|{0}18|{0}17|{0}22|{0}21|{0}20|{0}13|{0}12|{0}11|{0}16|{0}15|{0}14|{0}48|{0}82|{0}81|{0}80|{0}85|{0}84|{0}83|{0}76|{0}75|{0}74|{0}79|{0}78|{0}77|{0}86|{0}95|{0}94|{0}93|{0}98|{0}97|{0}96|{0}89|{0}88|{0}87|{0}92|{0}91|{0}90|{0}57|{0}56|{0}55|{0}60|{0}59|{0}58|{0}51|{0}50|{0}49|{0}54|{0}53|{0}52|{0}61|{0}70|{0}69|{0}68|{0}73|{0}72|{0}71|{0}64|{0}63|{0}62|{0}67|{0}66|{0}65|{0}200|{0}335|{0}334|{0}333|{0}338|{0}337|{0}336|{0}329|{0}328|{0}327|{0}332|{0}331|{0}330|{0}339|{0}348|{0}347|{0}346|{0}351|{0}350|{0}349|{0}342|{0}341|{0}340|{0}345|{0}344|{0}343|{0}310|{0}309|{0}308|{0}313|{0}312|{0}311|{0}304|{0}303|{0}302|{0}307|{0}306|{0}305|{0}314|{0}323|{0}322|{0}321|{0}326|{0}325|{0}324|{0}317|{0}316|{0}315|{0}320|{0}319|{0}318|{0}352|{0}386|{0}385|{0}384|{0}389|{0}388|{0}387|{0}380|{0}379|{0}378|{0}383|{0}382|{0}381|{0}390|{0}399|{0}398|{0}397|result|length|strToLong|{0}393|{0}392|{0}391|{0}396|{0}395|{0}394|{0}361|{0}360|{0}359|{0}364|{0}363|{0}362|{0}355|{0}354|{0}353|{0}358|{0}357|{0}356|{0}365|{0}374|{0}373|{0}372|{0}377|{0}376|{0}375|{0}368|{0}367|{0}366|{0}371|{0}370|{0}369|{0}234|{0}233|{0}232|{0}237|{0}236|{0}235|{0}228|{0}227|{0}226|{0}231|{0}230|{0}229|{0}238|{0}247|{0}246|{0}245|{0}250|{0}249|{0}248|{0}241|{0}240|{0}239|{0}244|{0}243|{0}242|{0}209|{0}208|{0}207|{0}212|{0}211|{0}210|{0}203|{0}202|{0}201|{0}206|{0}205|{0}204|{0}213|{0}222|{0}221|{0}220|{0}225|{0}224|{0}223|{0}216|{0}215|{0}214|{0}219|{0}218|{0}217|{0}251|{0}285|{0}284|{0}283|{0}288|{0}287|{0}286|{0}279|{0}278|{0}277|{0}282|{0}281|{0}280|{0}289|{0}298|{0}297|{0}296|{0}301|{0}300|{0}299|{0}292|{0}291|{0}290|{0}295|{0}294|{0}293|{0}260|{0}259|{0}258|{0}263|{0}262|{0}261|{0}254|{0}253|{0}252|{0}257|{0}256|{0}255|{0}264|{0}273|{0}272|{0}271|{0}276|{0}275|{0}274|{0}267|{0}266|{0}265|{0}270|{0}269|{0}268'", 1, "makeKey_")).split('|'), 0, {}))
return result;
}
function getCookie(arg) {
console.log(return_key);
return return_key;
}
//md5.js
/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }
/*
* Perform a simple self-test to see if the VM is working
*/
function md5_vm_test()
{
return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length
*/
function core_md5(x, len)
{
/* append padding */
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);
d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);
d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);
b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);
a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);
d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);
c = md5_ff(c, d, a, b, x[i+10], 17, -42063);
b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);
a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);
d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);
c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);
b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);
a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);
d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);
b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);
a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);
d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);
c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);
b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);
a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);
d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);
c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);
b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);
a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);
d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);
c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);
b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);
a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);
d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);
c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);
b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);
a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);
c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);
b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);
a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);
d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);
c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);
b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);
a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);
d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);
c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);
b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);
a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);
d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);
c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);
b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);
a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);
d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);
c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);
b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);
a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);
d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);
c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);
b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);
a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);
d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);
c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);
b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}
/*
* Calculate the HMAC-MD5, of a key and some data
*/
function core_hmac_md5(key, data)
{
var bkey = str2binl(key);
if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);
var ipad = Array(16), opad = Array(16);
for(var i = 0; i < 16; i++)
{
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5C5C5C5C;
}
var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);
return core_md5(opad.concat(hash), 512 + 128);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}
/*
* Convert a string to an array of little-endian words
* If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
*/
function str2binl(str)
{
var bin = Array();
var mask = (1 << chrsz) - 1;
for(var i = 0; i < str.length * chrsz; i += chrsz)
bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);
return bin;
}
/*
* Convert an array of little-endian words to a string
*/
function binl2str(bin)
{
var str = "";
var mask = (1 << chrsz) - 1;
for(var i = 0; i < bin.length * 32; i += chrsz)
str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask);
return str;
}
/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for(var i = 0; i < binarray.length * 4; i++)
{
str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF);
}
return str;
}
/*
* Convert an array of little-endian words to a base-64 string
*/
function binl2b64(binarray)
{
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var str = "";
for(var i = 0; i < binarray.length * 4; i += 3)
{
var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16)
| (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )
| ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);
for(var j = 0; j < 4; j++)
{
if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;
else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
}
}
return str;
}
/*
sha1.js*/
/*
* A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
* in FIPS PUB 180-1
* Version 2.1-BETA Copyright Paul Johnston 2000 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for details.
*/
/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */
var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */
var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */
/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function hex_sha1(s) {
return binb2hex(core_sha1(str2binb(s), s.length * chrsz));
}
function b64_sha1(s) {
return binb2b64(core_sha1(str2binb(s), s.length * chrsz));
}
function str_sha1(s) {
return binb2str(core_sha1(str2binb(s), s.length * chrsz));
}
function hex_hmac_sha1(key, data) {
return binb2hex(core_hmac_sha1(key, data));
}
function b64_hmac_sha1(key, data) {
return binb2b64(core_hmac_sha1(key, data));
}
function str_hmac_sha1(key, data) {
return binb2str(core_hmac_sha1(key, data));
}
/*
* Perform a simple self-test to see if the VM is working
*/
function sha1_vm_test() {
return hex_sha1("abc") == "a9993e364706816aba3e25717850c26c9cd0d89d";
}
/*
* Calculate the SHA-1 of an array of big-endian words, and a bit length
*/
function core_sha1(x, len) {
/* append padding */
x[len >> 5] |= 0x80 << (24 - len % 32);
x[((len + 64 >> 9) << 4) + 15] = len;
var w = Array(80);
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
var e = -1009589776;
for (var i = 0; i < x.length; i += 16) {
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
var olde = e;
for (var j = 0; j < 80; j++) {
if (j < 16) w[j] = x[i + j];
else w[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
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)));
e = d;
d = c;
c = rol(b, 30);
b = a;
a = t;
}
a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
e = safe_add(e, olde);
}
return Array(a, b, c, d, e);
}
/*
* Perform the appropriate triplet combination function for the current
* iteration
*/
function sha1_ft(t, b, c, d) {
if (t < 20) return (b & c) | ((~b) & d);
if (t < 40) return b ^ c ^ d;
if (t < 60) return (b & c) | (b & d) | (c & d);
return b ^ c ^ d;
}
/*
* Determine the appropriate additive constant for the current iteration
*/
function sha1_kt(t) {
return (t < 20) ? 1518500249 : (t < 40) ? 1859775393 : (t < 60) ? -1894007588 : -899497514;
}
/*
* Calculate the HMAC-SHA1 of a key and some data
*/
function core_hmac_sha1(key, data) {
var bkey = str2binb(key);
if (bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);
var ipad = Array(16),
opad = Array(16);
for (var i = 0; i < 16; i++) {
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5C5C5C5C;
}
var hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);
return core_sha1(opad.concat(hash), 512 + 160);
}
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y) {
var lsw = (x & 0xFFFF) + (y & 0xFFFF);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return (msw << 16) | (lsw & 0xFFFF);
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function rol(num, cnt) {
return (num << cnt) | (num >>> (32 - cnt));
}
/*
* Convert an 8-bit or 16-bit string to an array of big-endian words
* In 8-bit function, characters >255 have their hi-byte silently ignored.
*/
function str2binb(str) {
var bin = Array();
var mask = (1 << chrsz) - 1;
for (var i = 0; i < str.length * chrsz; i += chrsz)
bin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (24 - i % 32);
return bin;
}
/*
* Convert an array of big-endian words to a string
*/
function binb2str(bin) {
var str = "";
var mask = (1 << chrsz) - 1;
for (var i = 0; i < bin.length * 32; i += chrsz)
str += String.fromCharCode((bin[i >> 5] >>> (24 - i % 32)) & mask);
return str;
}
/*
* Convert an array of big-endian words to a hex string.
*/
function binb2hex(binarray) {
var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
var str = "";
for (var i = 0; i < binarray.length * 4; i++) {
str += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) + hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF);
}
return str;
}
/*
* Convert an array of big-endian words to a base-64 string
*/
function binb2b64(binarray) {
var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var str = "";
for (var i = 0; i < binarray.length * 4; i += 3) {
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);
for (var j = 0; j < 4; j++) {
if (i * 8 + j * 6 > binarray.length * 32) str += b64pad;
else str += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);
}
}
return str;
}
/*
base64.js*/
function Base64() {
// private property
_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
// public method for encoding
this.encode = function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
input = _utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
// public method for decoding
this.decode = function (input) {
var output = "";
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
var i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
while (i < input.length) {
enc1 = _keyStr.indexOf(input.charAt(i++));
enc2 = _keyStr.indexOf(input.charAt(i++));
enc3 = _keyStr.indexOf(input.charAt(i++));
enc4 = _keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
}
output = _utf8_decode(output);
return output;
}
// private method for UTF-8 encoding
_utf8_encode = function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
// private method for UTF-8 decoding
_utf8_decode = function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}