geetest-for-bili

哔哩哔哩极验破解,需要有图形识别的服务器,服务器地址和响应数据的处理在2693行附近更改

  1. // ==UserScript==
  2. // @name geetest-for-bili
  3. // @namespace Violentmonkey Scripts
  4. // @license Mit
  5. // @match https://www.bilibili.com/blackboard/new-award-exchange.html?task_id=*
  6. // @require https://cdn.bootcdn.net/ajax/libs/axios/1.7.2/axios.js
  7. // @grant GM_addStyle
  8. // @grant unsafeWindow
  9. // @version 1.0.0
  10. // @author vurses
  11. // @description 哔哩哔哩极验破解,需要有图形识别的服务器,服务器地址和响应数据的处理在2693行附近更改
  12. // @icon https://www.bilibili.com/favicon.ico
  13. // ==/UserScript==
  14. (function() {
  15. /*参考https://github.com/cycyup/crack_geetest*/
  16. // getestCrack:19-2458
  17. var ae = function() {
  18. function S4() {
  19. return ((1 + Math["random"]()) * 65536 | 0)["toString"](16)["substring"](1);
  20. }
  21.  
  22. return function() {
  23. return S4() + S4() + S4() + S4();
  24. };
  25. }()
  26.  
  27. gCdf = function() {
  28. var t = ae();
  29. return function(e) {
  30. if (e === true) {
  31. t = ae();
  32. }
  33.  
  34. return t;
  35. }
  36. }()
  37.  
  38. var K = function(window) {
  39. function LPUe() {
  40. this["i"] = 0;
  41. this["j"] = 0;
  42. this["S"] = [];
  43. }
  44.  
  45. function Mqpr(e) {
  46. var t, r, n;
  47.  
  48. for (t = 0; t < 256; ++t) this["S"][t] = t;
  49.  
  50. r = 0;
  51.  
  52. for (t = 0; t < 256; ++t) {
  53. r = r + this["S"][t] + e[t % e["length"]] & 255;
  54. n = this["S"][t];
  55. this["S"][t] = this["S"][r];
  56. this["S"][r] = n;
  57. }
  58.  
  59. this["i"] = 0;
  60. this["j"] = 0;
  61. }
  62.  
  63. function NSqO() {
  64. var e;
  65. this["i"] = this["i"] + 1 & 255;
  66. this["j"] = this["j"] + this["S"][this["i"]] & 255;
  67. e = this["S"][this["i"]];
  68. this["S"][this["i"]] = this["S"][this["j"]];
  69. this["S"][this["j"]] = e;
  70. return this["S"][e + this["S"][this["i"]] & 255];
  71. }
  72.  
  73. LPUe["prototype"]["init"] = Mqpr;
  74. LPUe["prototype"]["next"] = NSqO;
  75.  
  76. function OGRQ() {
  77. return new LPUe();
  78. }
  79.  
  80. var n = 256;
  81. var t;
  82. var i;
  83. var s;
  84.  
  85. if (i == null) {
  86. i = [];
  87. s = 0;
  88. var e;
  89.  
  90. if (window["crypto"] && window["crypto"]["getRandomValues"]) {
  91. var r = new Uint32Array(256);
  92. window["crypto"]["getRandomValues"](r);
  93.  
  94. for (e = 0; e < r["length"]; ++e) i[s++] = r[e] & 255;
  95. }
  96.  
  97. var o = 0;
  98.  
  99. function a(e) {
  100. o = o || 0;
  101.  
  102. if (o >= 256 || s >= n) {
  103. if (window["removeEventListener"]) {
  104. o = 0;
  105. window["removeEventListener"]("mousemove", a, false);
  106. } else if (window["detachEvent"]) {
  107. o = 0;
  108. window["detachEvent"]("onmousemove", a);
  109. }
  110.  
  111. return;
  112. }
  113.  
  114. try {
  115. var t = e["x"] + e["y"];
  116. i[s++] = t & 255;
  117. o += 1;
  118. } catch (r) {}
  119. }
  120.  
  121. if (window["addEventListener"]) window["addEventListener"]("mousemove", a, false);
  122. else if (window["attachEvent"]) window["attachEvent"]("onmousemove", a);
  123. }
  124.  
  125. function PUAG() {
  126. if (t == null) {
  127. t = OGRQ();
  128.  
  129. while (s < n) {
  130. var e = Math["floor"](65536 * Math["random"]());
  131. i[s++] = e & 255;
  132. }
  133.  
  134. t["init"](i);
  135.  
  136. for (s = 0; s < i["length"]; ++s) i[s] = 0;
  137.  
  138. s = 0;
  139. }
  140.  
  141. return t["next"]();
  142. }
  143.  
  144. function QiCL(e) {
  145. var t;
  146.  
  147. for (t = 0; t < e["length"]; ++t) e[t] = PUAG();
  148. }
  149.  
  150. function RjYI() {}
  151.  
  152. RjYI["prototype"]["nextBytes"] = QiCL;
  153.  
  154. var _;
  155.  
  156. var c = 0xdeadbeefcafe;
  157. var l = (c & 16777215) == 15715070;
  158.  
  159. function SlGn(e, t, r) {
  160. if (e != null)
  161. if ("number" == typeof e) this["fromNumber"](e, t, r);
  162. else if (t == null && "string" != typeof e) this["fromString"](e, 256);
  163. else this["fromString"](e, t);
  164. }
  165.  
  166. function TLtn() {
  167. return new SlGn(null);
  168. }
  169.  
  170. function UJSW(e, t, r, n, i, s) {
  171. while (--s >= 0) {
  172. var o = t * this[e++] + r[n] + i;
  173. i = Math["floor"](o / 67108864);
  174. r[n++] = o & 67108863;
  175. }
  176.  
  177. return i;
  178. }
  179.  
  180. function VaAF(e, t, r, n, i, s) {
  181. var o = t & 32767,
  182. a = t >> 15;
  183.  
  184. while (--s >= 0) {
  185. var _ = this[e] & 32767;
  186.  
  187. var c = this[e++] >> 15;
  188. var l = a * _ + c * o;
  189. _ = o * _ + ((l & 32767) << 15) + r[n] + (i & 1073741823);
  190. i = (_ >>> 30) + (l >>> 15) + a * c + (i >>> 30);
  191. r[n++] = _ & 1073741823;
  192. }
  193.  
  194. return i;
  195. }
  196.  
  197. function Wn_B(e, t, r, n, i, s) {
  198. var o = t & 16383,
  199. a = t >> 14;
  200.  
  201. while (--s >= 0) {
  202. var _ = this[e] & 16383;
  203.  
  204. var c = this[e++] >> 14;
  205. var l = a * _ + c * o;
  206. _ = o * _ + ((l & 16383) << 14) + r[n] + i;
  207. i = (_ >> 28) + (l >> 14) + a * c;
  208. r[n++] = _ & 268435455;
  209. }
  210.  
  211. return i;
  212. }
  213.  
  214. if (true) {
  215. SlGn["prototype"]["am"] = UJSW;
  216. _ = 26;
  217. }
  218.  
  219. SlGn["prototype"]["DB"] = _;
  220. SlGn["prototype"]["DM"] = (1 << _) - 1;
  221. SlGn["prototype"]["DV"] = 1 << _;
  222. var u = 52;
  223. SlGn["prototype"]["FV"] = Math["pow"](2, u);
  224. SlGn["prototype"]["F1"] = u - _;
  225. SlGn["prototype"]["F2"] = 2 * _ - u;
  226. var f = "0123456789abcdefghijklmnopqrstuvwxyz";
  227. var p = [];
  228. var d, g;
  229. d = "0" ["charCodeAt"](0);
  230.  
  231. for (g = 0; g <= 9; ++g) p[d++] = g;
  232.  
  233. d = "a" ["charCodeAt"](0);
  234.  
  235. for (g = 10; g < 36; ++g) p[d++] = g;
  236.  
  237. d = "A" ["charCodeAt"](0);
  238.  
  239. for (g = 10; g < 36; ++g) p[d++] = g;
  240.  
  241. function XDVb(e) {
  242. return f["charAt"](e);
  243. }
  244.  
  245. function YqON(e, t) {
  246. var r = p[e["charCodeAt"](t)];
  247. return r == null ? -1 : r;
  248. }
  249.  
  250. function ZXaR(e) {
  251. for (var t = this["t"] - 1; t >= 0; --t) e[t] = this[t];
  252.  
  253. e["t"] = this["t"];
  254. e["s"] = this["s"];
  255. }
  256.  
  257. function aLiX(e) {
  258. this["t"] = 1;
  259. this["s"] = e < 0 ? -1 : 0;
  260. if (e > 0) this[0] = e;
  261. else if (e < -1) this[0] = e + this["DV"];
  262. else this["t"] = 0;
  263. }
  264.  
  265. function bFtP(e) {
  266. var t = TLtn();
  267. t["fromInt"](e);
  268. return t;
  269. }
  270.  
  271. function cGbW(e, t) {
  272. var r;
  273. if (t == 16) r = 4;
  274. else if (t == 8) r = 3;
  275. else if (t == 256) r = 8;
  276. else if (t == 2) r = 1;
  277. else if (t == 32) r = 5;
  278. else if (t == 4) r = 2;
  279. else {
  280. this["fromRadix"](e, t);
  281. return;
  282. }
  283. this["t"] = 0;
  284. this["s"] = 0;
  285. var n = e["length"],
  286. i = false,
  287. s = 0;
  288.  
  289. while (--n >= 0) {
  290. var o = r == 8 ? e[n] & 255 : YqON(e, n);
  291.  
  292. if (o < 0) {
  293. if (e["charAt"](n) == "-") i = true;
  294. continue;
  295. }
  296.  
  297. i = false;
  298. if (s == 0) this[this["t"]++] = o;
  299. else if (s + r > this["DB"]) {
  300. this[this["t"] - 1] |= (o & (1 << this["DB"] - s) - 1) << s;
  301. this[this["t"]++] = o >> this["DB"] - s;
  302. } else this[this["t"] - 1] |= o << s;
  303. s += r;
  304. if (s >= this["DB"]) s -= this["DB"];
  305. }
  306.  
  307. if (r == 8 && (e[0] & 128) != 0) {
  308. this["s"] = -1;
  309. if (s > 0) this[this["t"] - 1] |= (1 << this["DB"] - s) - 1 << s;
  310. }
  311.  
  312. this["clamp"]();
  313. if (i) SlGn["ZERO"]["subTo"](this, this);
  314. }
  315.  
  316. function dPLT() {
  317. var e = this["s"] & this["DM"];
  318.  
  319. while (this["t"] > 0 && this[this["t"] - 1] == e) --this["t"];
  320. }
  321.  
  322. function egCX(e) {
  323. if (this["s"] < 0) return "-" + this["negate"]()["toString"](e);
  324. var t;
  325. if (e == 16) t = 4;
  326. else if (e == 8) t = 3;
  327. else if (e == 2) t = 1;
  328. else if (e == 32) t = 5;
  329. else if (e == 4) t = 2;
  330. else return this["toRadix"](e);
  331. var r = (1 << t) - 1,
  332. n,
  333. i = false,
  334. s = "",
  335. o = this["t"];
  336. var a = this["DB"] - o * this["DB"] % t;
  337.  
  338. if (o-- > 0) {
  339. if (a < this["DB"] && (n = this[o] >> a) > 0) {
  340. i = true;
  341. s = XDVb(n);
  342. }
  343.  
  344. while (o >= 0) {
  345. if (a < t) {
  346. n = (this[o] & (1 << a) - 1) << t - a;
  347. n |= this[--o] >> (a += this["DB"] - t);
  348. } else {
  349. n = this[o] >> (a -= t) & r;
  350.  
  351. if (a <= 0) {
  352. a += this["DB"];
  353. --o;
  354. }
  355. }
  356.  
  357. if (n > 0) i = true;
  358. if (i) s += XDVb(n);
  359. }
  360. }
  361.  
  362. return i ? s : "0";
  363. }
  364.  
  365. function fvGD() {
  366. var e = TLtn();
  367. SlGn["ZERO"]["subTo"](this, e);
  368. return e;
  369. }
  370.  
  371. function gOFo() {
  372. return this["s"] < 0 ? this["negate"]() : this;
  373. }
  374.  
  375. function hEAN(e) {
  376. var t = this["s"] - e["s"];
  377. if (t != 0) return t;
  378. var r = this["t"];
  379. t = r - e["t"];
  380. if (t != 0) return this["s"] < 0 ? -t : t;
  381.  
  382. while (--r >= 0)
  383. if ((t = this[r] - e[r]) != 0) return t;
  384.  
  385. return 0;
  386. }
  387.  
  388. function iUN_(e) {
  389. var t = 1,
  390. r;
  391.  
  392. if ((r = e >>> 16) != 0) {
  393. e = r;
  394. t += 16;
  395. }
  396.  
  397. if ((r = e >> 8) != 0) {
  398. e = r;
  399. t += 8;
  400. }
  401.  
  402. if ((r = e >> 4) != 0) {
  403. e = r;
  404. t += 4;
  405. }
  406.  
  407. if ((r = e >> 2) != 0) {
  408. e = r;
  409. t += 2;
  410. }
  411.  
  412. if ((r = e >> 1) != 0) {
  413. e = r;
  414. t += 1;
  415. }
  416.  
  417. return t;
  418. }
  419.  
  420. function jSDM() {
  421. if (this["t"] <= 0) return 0;
  422. return this["DB"] * (this["t"] - 1) + iUN_(this[this["t"] - 1] ^ this["s"] & this["DM"]);
  423. }
  424.  
  425. function kfDt(e, t) {
  426. var r;
  427.  
  428. for (r = this["t"] - 1; r >= 0; --r) t[r + e] = this[r];
  429.  
  430. for (r = e - 1; r >= 0; --r) t[r] = 0;
  431.  
  432. t["t"] = this["t"] + e;
  433. t["s"] = this["s"];
  434. }
  435.  
  436. function lHjF(e, t) {
  437. for (var r = e; r < this["t"]; ++r) t[r - e] = this[r];
  438.  
  439. t["t"] = Math["max"](this["t"] - e, 0);
  440. t["s"] = this["s"];
  441. }
  442.  
  443. function mM__(e, t) {
  444. var r = e % this["DB"];
  445. var n = this["DB"] - r;
  446. var i = (1 << n) - 1;
  447. var s = Math["floor"](e / this["DB"]),
  448. o = this["s"] << r & this["DM"],
  449. a;
  450.  
  451. for (a = this["t"] - 1; a >= 0; --a) {
  452. t[a + s + 1] = this[a] >> n | o;
  453. o = (this[a] & i) << r;
  454. }
  455.  
  456. for (a = s - 1; a >= 0; --a) t[a] = 0;
  457.  
  458. t[s] = o;
  459. t["t"] = this["t"] + s + 1;
  460. t["s"] = this["s"];
  461. t["clamp"]();
  462. }
  463.  
  464. function nIr_(e, t) {
  465. t["s"] = this["s"];
  466. var r = Math["floor"](e / this["DB"]);
  467.  
  468. if (r >= this["t"]) {
  469. t["t"] = 0;
  470. return;
  471. }
  472.  
  473. var n = e % this["DB"];
  474. var i = this["DB"] - n;
  475. var s = (1 << n) - 1;
  476. t[0] = this[r] >> n;
  477.  
  478. for (var o = r + 1; o < this["t"]; ++o) {
  479. t[o - r - 1] |= (this[o] & s) << i;
  480. t[o - r] = this[o] >> n;
  481. }
  482.  
  483. if (n > 0) t[this["t"] - r - 1] |= (this["s"] & s) << i;
  484. t["t"] = this["t"] - r;
  485. t["clamp"]();
  486. }
  487.  
  488. function okAI(e, t) {
  489. var r = 0,
  490. n = 0,
  491. i = Math["min"](e["t"], this["t"]);
  492.  
  493. while (r < i) {
  494. n += this[r] - e[r];
  495. t[r++] = n & this["DM"];
  496. n >>= this["DB"];
  497. }
  498.  
  499. if (e["t"] < this["t"]) {
  500. n -= e["s"];
  501.  
  502. while (r < this["t"]) {
  503. n += this[r];
  504. t[r++] = n & this["DM"];
  505. n >>= this["DB"];
  506. }
  507.  
  508. n += this["s"];
  509. } else {
  510. n += this["s"];
  511.  
  512. while (r < e["t"]) {
  513. n -= e[r];
  514. t[r++] = n & this["DM"];
  515. n >>= this["DB"];
  516. }
  517.  
  518. n -= e["s"];
  519. }
  520.  
  521. t["s"] = n < 0 ? -1 : 0;
  522. if (n < -1) t[r++] = this["DV"] + n;
  523. else if (n > 0) t[r++] = n;
  524. t["t"] = r;
  525. t["clamp"]();
  526. }
  527.  
  528. function pTAY(e, t) {
  529. var r = this["abs"](),
  530. n = e["abs"]();
  531. var i = r["t"];
  532. t["t"] = i + n["t"];
  533.  
  534. while (--i >= 0) t[i] = 0;
  535.  
  536. for (i = 0; i < n["t"]; ++i) t[i + r["t"]] = r["am"](0, n[i], t, i, 0, r["t"]);
  537.  
  538. t["s"] = 0;
  539. t["clamp"]();
  540. if (this["s"] != e["s"]) SlGn["ZERO"]["subTo"](t, t);
  541. }
  542.  
  543. function qmMy(e) {
  544. var t = this["abs"]();
  545. var r = e["t"] = 2 * t["t"];
  546.  
  547. while (--r >= 0) e[r] = 0;
  548.  
  549. for (r = 0; r < t["t"] - 1; ++r) {
  550. var n = t["am"](r, t[r], e, 2 * r, 0, 1);
  551.  
  552. if ((e[r + t["t"]] += t["am"](r + 1, 2 * t[r], e, 2 * r + 1, n, t["t"] - r - 1)) >= t["DV"]) {
  553. e[r + t["t"]] -= t["DV"];
  554. e[r + t["t"] + 1] = 1;
  555. }
  556. }
  557.  
  558. if (e["t"] > 0) e[e["t"] - 1] += t["am"](r, t[r], e, 2 * r, 0, 1);
  559. e["s"] = 0;
  560. e["clamp"]();
  561. }
  562.  
  563. function riso(e, t, r) {
  564. var n = e["abs"]();
  565. if (n["t"] <= 0) return;
  566. var i = this["abs"]();
  567.  
  568. if (i["t"] < n["t"]) {
  569. if (t != null) t["fromInt"](0);
  570. if (r != null) this["copyTo"](r);
  571. return;
  572. }
  573.  
  574. if (r == null) r = TLtn();
  575. var s = TLtn(),
  576. o = this["s"],
  577. a = e["s"];
  578.  
  579. var _ = this["DB"] - iUN_(n[n["t"] - 1]);
  580.  
  581. if (_ > 0) {
  582. n["lShiftTo"](_, s);
  583. i["lShiftTo"](_, r);
  584. } else {
  585. n["copyTo"](s);
  586. i["copyTo"](r);
  587. }
  588.  
  589. var c = s["t"];
  590. var l = s[c - 1];
  591. if (l == 0) return;
  592. var u = l * (1 << this["F1"]) + (c > 1 ? s[c - 2] >> this["F2"] : 0);
  593. var f = this["FV"] / u,
  594. p = (1 << this["F1"]) / u,
  595. d = 1 << this["F2"];
  596. var g = r["t"],
  597. h = g - c,
  598. v = t == null ? TLtn() : t;
  599. s["dlShiftTo"](h, v);
  600.  
  601. if (r["compareTo"](v) >= 0) {
  602. r[r["t"]++] = 1;
  603. r["subTo"](v, r);
  604. }
  605.  
  606. SlGn["ONE"]["dlShiftTo"](c, v);
  607. v["subTo"](s, s);
  608.  
  609. while (s["t"] < c) s[s["t"]++] = 0;
  610.  
  611. while (--h >= 0) {
  612. var m = r[--g] == l ? this["DM"] : Math["floor"](r[g] * f + (r[g - 1] + d) * p);
  613.  
  614. if ((r[g] += s["am"](0, m, r, h, 0, c)) < m) {
  615. s["dlShiftTo"](h, v);
  616. r["subTo"](v, r);
  617.  
  618. while (r[g] < --m) r["subTo"](v, r);
  619. }
  620. }
  621.  
  622. if (t != null) {
  623. r["drShiftTo"](c, t);
  624. if (o != a) SlGn["ZERO"]["subTo"](t, t);
  625. }
  626.  
  627. r["t"] = c;
  628. r["clamp"]();
  629. if (_ > 0) r["rShiftTo"](_, r);
  630. if (o < 0) SlGn["ZERO"]["subTo"](r, r);
  631. }
  632.  
  633. function sWag(e) {
  634. var t = TLtn();
  635. this["abs"]()["divRemTo"](e, null, t);
  636. if (this["s"] < 0 && t["compareTo"](SlGn["ZERO"]) > 0) e["subTo"](t, t);
  637. return t;
  638. }
  639.  
  640. function tetZ(e) {
  641. this["m"] = e;
  642. }
  643.  
  644. function uMON(e) {
  645. if (e["s"] < 0 || e["compareTo"](this["m"]) >= 0) return e["mod"](this["m"]);
  646. else return e;
  647. }
  648.  
  649. function vEng(e) {
  650. return e;
  651. }
  652.  
  653. function wEZo(e) {
  654. e["divRemTo"](this["m"], null, e);
  655. }
  656.  
  657. function xFTL(e, t, r) {
  658. e["multiplyTo"](t, r);
  659. this["reduce"](r);
  660. }
  661.  
  662. function yoJT(e, t) {
  663. e["squareTo"](t);
  664. this["reduce"](t);
  665. }
  666.  
  667. tetZ["prototype"]["convert"] = uMON;
  668. tetZ["prototype"]["revert"] = vEng;
  669. tetZ["prototype"]["reduce"] = wEZo;
  670. tetZ["prototype"]["mulTo"] = xFTL;
  671. tetZ["prototype"]["sqrTo"] = yoJT;
  672.  
  673. function Aqse() {
  674. if (this["t"] < 1) return 0;
  675. var e = this[0];
  676. if ((e & 1) == 0) return 0;
  677. var t = e & 3;
  678. t = t * (2 - (e & 15) * t) & 15;
  679. t = t * (2 - (e & 255) * t) & 255;
  680. t = t * (2 - ((e & 65535) * t & 65535)) & 65535;
  681. t = t * (2 - e * t % this["DV"]) % this["DV"];
  682. return t > 0 ? this["DV"] - t : -t;
  683. }
  684.  
  685. function BISX(e) {
  686. this["m"] = e;
  687. this["mp"] = e["invDigit"]();
  688. this["mpl"] = this["mp"] & 32767;
  689. this["mph"] = this["mp"] >> 15;
  690. this["um"] = (1 << e["DB"] - 15) - 1;
  691. this["mt2"] = 2 * e["t"];
  692. }
  693.  
  694. function Cmsb(e) {
  695. var t = TLtn();
  696. e["abs"]()["dlShiftTo"](this["m"]["t"], t);
  697. t["divRemTo"](this["m"], null, t);
  698. if (e["s"] < 0 && t["compareTo"](SlGn["ZERO"]) > 0) this["m"]["subTo"](t, t);
  699. return t;
  700. }
  701.  
  702. function DboQ(e) {
  703. var t = TLtn();
  704. e["copyTo"](t);
  705. this["reduce"](t);
  706. return t;
  707. }
  708.  
  709. function EwjL(e) {
  710. while (e["t"] <= this["mt2"]) e[e["t"]++] = 0;
  711.  
  712. for (var t = 0; t < this["m"]["t"]; ++t) {
  713. var r = e[t] & 32767;
  714. var n = r * this["mpl"] + ((r * this["mph"] + (e[t] >> 15) * this["mpl"] & this["um"]) << 15) & e["DM"];
  715. r = t + this["m"]["t"];
  716. e[r] += this["m"]["am"](0, n, e, t, 0, this["m"]["t"]);
  717.  
  718. while (e[r] >= e["DV"]) {
  719. e[r] -= e["DV"];
  720. e[++r]++;
  721. }
  722. }
  723.  
  724. e["clamp"]();
  725. e["drShiftTo"](this["m"]["t"], e);
  726. if (e["compareTo"](this["m"]) >= 0) e["subTo"](this["m"], e);
  727. }
  728.  
  729. function FXWH(e, t) {
  730. e["squareTo"](t);
  731. this["reduce"](t);
  732. }
  733.  
  734. function GuEn(e, t, r) {
  735. e["multiplyTo"](t, r);
  736. this["reduce"](r);
  737. }
  738.  
  739. BISX["prototype"]["convert"] = Cmsb;
  740. BISX["prototype"]["revert"] = DboQ;
  741. BISX["prototype"]["reduce"] = EwjL;
  742. BISX["prototype"]["mulTo"] = GuEn;
  743. BISX["prototype"]["sqrTo"] = FXWH;
  744.  
  745. function HAbs() {
  746. return (this["t"] > 0 ? this[0] & 1 : this["s"]) == 0;
  747. }
  748.  
  749. function IQbr(e, t) {
  750. if (e > 4294967295 || e < 1) return SlGn["ONE"];
  751. var r = TLtn(),
  752. n = TLtn(),
  753. i = t["convert"](this),
  754. s = iUN_(e) - 1;
  755. i["copyTo"](r);
  756.  
  757. while (--s >= 0) {
  758. t["sqrTo"](r, n);
  759. if ((e & 1 << s) > 0) t["mulTo"](n, i, r);
  760. else {
  761. var o = r;
  762. r = n;
  763. n = o;
  764. }
  765. }
  766.  
  767. return t["revert"](r);
  768. }
  769.  
  770. function JOEm(e, t) {
  771. var r;
  772. if (e < 256 || t["isEven"]()) r = new tetZ(t);
  773. else r = new BISX(t);
  774. return this["exp"](e, r);
  775. }
  776.  
  777. SlGn["prototype"]["copyTo"] = ZXaR;
  778. SlGn["prototype"]["fromInt"] = aLiX;
  779. SlGn["prototype"]["fromString"] = cGbW;
  780. SlGn["prototype"]["clamp"] = dPLT;
  781. SlGn["prototype"]["dlShiftTo"] = kfDt;
  782. SlGn["prototype"]["drShiftTo"] = lHjF;
  783. SlGn["prototype"]["lShiftTo"] = mM__;
  784. SlGn["prototype"]["rShiftTo"] = nIr_;
  785. SlGn["prototype"]["subTo"] = okAI;
  786. SlGn["prototype"]["multiplyTo"] = pTAY;
  787. SlGn["prototype"]["squareTo"] = qmMy;
  788. SlGn["prototype"]["divRemTo"] = riso;
  789. SlGn["prototype"]["invDigit"] = Aqse;
  790. SlGn["prototype"]["isEven"] = HAbs;
  791. SlGn["prototype"]["exp"] = IQbr;
  792. SlGn["prototype"]["toString"] = egCX;
  793. SlGn["prototype"]["negate"] = fvGD;
  794. SlGn["prototype"]["abs"] = gOFo;
  795. SlGn["prototype"]["compareTo"] = hEAN;
  796. SlGn["prototype"]["bitLength"] = jSDM;
  797. SlGn["prototype"]["mod"] = sWag;
  798. SlGn["prototype"]["modPowInt"] = JOEm;
  799. SlGn["ZERO"] = bFtP(0);
  800. SlGn["ONE"] = bFtP(1);
  801.  
  802. function KMag(e, t) {
  803. return new SlGn(e, t);
  804. }
  805.  
  806. function LnoK(e, t) {
  807. if (t < e["length"] + 11) {
  808. console && console["error"] && console["error"]("Message too long for RSA");
  809. return null;
  810. }
  811.  
  812. var r = [];
  813. var n = e["length"] - 1;
  814.  
  815. while (n >= 0 && t > 0) {
  816. var i = e["charCodeAt"](n--);
  817.  
  818. if (i < 128) {
  819. r[--t] = i;
  820. } else if (i > 127 && i < 2048) {
  821. r[--t] = i & 63 | 128;
  822. r[--t] = i >> 6 | 192;
  823. } else {
  824. r[--t] = i & 63 | 128;
  825. r[--t] = i >> 6 & 63 | 128;
  826. r[--t] = i >> 12 | 224;
  827. }
  828. }
  829.  
  830. r[--t] = 0;
  831. var s = new RjYI();
  832. var o = [];
  833.  
  834. while (t > 2) {
  835. o[0] = 0;
  836.  
  837. while (o[0] == 0) s["nextBytes"](o);
  838.  
  839. r[--t] = o[0];
  840. }
  841.  
  842. r[--t] = 2;
  843. r[--t] = 0;
  844. return new SlGn(r);
  845. }
  846.  
  847. function MhPM() {
  848. this["n"] = null;
  849. this["e"] = 0;
  850. this["d"] = null;
  851. this["p"] = null;
  852. this["q"] = null;
  853. this["dmp1"] = null;
  854. this["dmq1"] = null;
  855. this["coeff"] = null;
  856. var e = "00C1E3934D1614465B33053E7F48EE4EC87B14B95EF88947713D25EECBFF7E74C7977D02DC1D9451F79DD5D1C10C29ACB6A9B4D6FB7D0A0279B6719E1772565F09AF627715919221AEF91899CAE08C0D686D748B20A3603BE2318CA6BC2B59706592A9219D0BF05C9F65023A21D2330807252AE0066D59CEEFA5F2748EA80BAB81";
  857. var t = "10001";
  858. this["setPublic"](e, t);
  859. }
  860.  
  861. function NZVt(e, t) {
  862. if (e != null && t != null && e["length"] > 0 && t["length"] > 0) {
  863. this["n"] = KMag(e, 16);
  864. this["e"] = parseInt(t, 16);
  865. } else console && console["error"] && console["error"]("Invalid RSA public key");
  866. }
  867.  
  868. function OTwL(e) {
  869. return e["modPowInt"](this["e"], this["n"]);
  870. }
  871.  
  872. function PlQk(e) {
  873. var t = LnoK(e, this["n"]["bitLength"]() + 7 >> 3);
  874. if (t == null) return null;
  875. var r = this["doPublic"](t);
  876. if (r == null) return null;
  877. var n = r["toString"](16);
  878. if ((n["length"] & 1) == 0) return n;
  879. else return "0" + n;
  880. }
  881.  
  882. MhPM["prototype"]["doPublic"] = OTwL;
  883. MhPM["prototype"]["setPublic"] = NZVt;
  884. MhPM["prototype"]["encrypt"] = PlQk;
  885. return MhPM;
  886. }(this);
  887.  
  888. fTbG = function(e) {
  889. var t = this;
  890. var r = new K()["encrypt"](gCdf(e));
  891.  
  892. while (!r || r["length"] !== 256) {
  893. r = new K()["encrypt"](t["gCdf"](true));
  894. }
  895.  
  896. return r;
  897. }
  898.  
  899. EhLr = function(click) {
  900. uQfn = function(se, e) {
  901. this["lNGg"] = se
  902. var t = this;
  903. var r = t["lNGg"];
  904.  
  905. if (!r["indexOf"]) {
  906. for (var n = 0, i = r["length"]; n < i; n = n + 1) {
  907. if (r[n] === e) {
  908. return n;
  909. }
  910. }
  911.  
  912. return -1;
  913. }
  914. return r["indexOf"](e);
  915. };
  916. AWWe = function(e) {
  917. var t = (1 << 15) - 1;
  918.  
  919. if (typeof e !== "number") {
  920. return e;
  921. } else if (e > t) {
  922. e = t;
  923. } else if (e < -t) {
  924. e = -t;
  925. }
  926.  
  927. return Math["round"](e);
  928. };
  929. Cscb = function(e) {
  930. var t = "",
  931. r = 0;
  932. var n = (e || [])["length"];
  933.  
  934. while (!t && e[r]) {
  935. t = e[r] && e[r][4];
  936. r++;
  937. }
  938.  
  939. if (!t) {
  940. return e;
  941. }
  942.  
  943. var i = "";
  944. var s = ["mouse", "touch", "pointer", "MSPointer"];
  945.  
  946. for (var o = 0, a = s["length"]; o < a; o++) {
  947. if (t["indexOf"](s[o]) === 0) {
  948. i = s[o];
  949. }
  950. }
  951.  
  952. var _ = e["slice"]();
  953.  
  954. for (var c = _["length"] - 1; c >= 0; c--) {
  955. var l = _[c];
  956. var u = l[0];
  957.  
  958. if (uQfn(["move", "down", "up"], u) > -1) {
  959. var f = l[4] || "";
  960.  
  961. if (f["indexOf"](i) !== 0) {
  962. _["splice"](c, 1);
  963. }
  964. }
  965. }
  966.  
  967. return _;
  968. };
  969.  
  970. Xkir = function encode(e) {
  971. var i = "()*,-./0123456789:?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~";
  972.  
  973. function gEko(e) {
  974. var t = "";
  975. var r = e["length"] / 6;
  976.  
  977. for (var n = 0; n < r; n = n + 1) {
  978. t += i["charAt"](parseInt(e["slice"](n * 6, (n + 1) * 6), 2));
  979. }
  980.  
  981. return t;
  982. }
  983.  
  984. function t(e) {
  985. var t = [];
  986. var r = [];
  987. var n = [];
  988. var i = [];
  989.  
  990. for (var s = 0, o = e["length"]; s < o; s = s + 1) {
  991. var a = e[s];
  992. var _ = a["length"];
  993. t["push"](a[0]);
  994. r["push"](_ === 2 ? a[1] : a[2]);
  995.  
  996. if (_ === 3) {
  997. n["push"](a[1][0]);
  998. i["push"](a[1][1]);
  999. }
  1000. }
  1001.  
  1002. var c = g(t);
  1003. var l = mUTp(r, false);
  1004. var u = mUTp(n, true);
  1005. var f = mUTp(i, true);
  1006. var p = c + l + u + f;
  1007. var d = p["length"];
  1008.  
  1009. if (d % 6 != 0) {
  1010. p += heAo(0, 6 - d % 6);
  1011. }
  1012.  
  1013. return gEko(p);
  1014. }
  1015.  
  1016. var p = {
  1017. "move": 0,
  1018. "down": 1,
  1019. "up": 2,
  1020. "scroll": 3,
  1021. "focus": 4,
  1022. "blur": 5,
  1023. "unload": 6,
  1024. "unknown": 7
  1025. };
  1026. var d = 8;
  1027.  
  1028. function heAo(e, t) {
  1029. var r = e["toString"](2);
  1030. var n = r["length"];
  1031. var i = "";
  1032.  
  1033. for (var s = n + 1; s <= t; s = s + 1) {
  1034. i += "0";
  1035. }
  1036.  
  1037. r = i + r;
  1038. return r;
  1039. }
  1040.  
  1041. function g(e) {
  1042. var t = [];
  1043. var r = e["length"];
  1044. var n = 0;
  1045.  
  1046. while (n < r) {
  1047. var i = e[n];
  1048. var s = 0;
  1049.  
  1050. while (true) {
  1051. if (s >= 1 << 4) {
  1052. break;
  1053. }
  1054.  
  1055. var o = n + s + 1;
  1056.  
  1057. if (o >= r) {
  1058. break;
  1059. }
  1060.  
  1061. var a = e[o];
  1062.  
  1063. if (a !== i) {
  1064. break;
  1065. }
  1066.  
  1067. s += 1;
  1068. }
  1069.  
  1070. n = n + 1 + s;
  1071. var _ = p[i];
  1072.  
  1073. if (s != 0) {
  1074. t["push"](_ | d);
  1075. t["push"](s - 1);
  1076. } else {
  1077. t["push"](_);
  1078. }
  1079. }
  1080.  
  1081. var c = heAo(r | 32768, 16);
  1082. var l = "";
  1083.  
  1084. for (var u = 0, f = t["length"]; u < f; u = u + 1) {
  1085. l += heAo(t[u], 4);
  1086. }
  1087.  
  1088. return c + l;
  1089. }
  1090.  
  1091. function iU_q(e, t) {
  1092. var r = [];
  1093.  
  1094. for (var n = 0, i = e["length"]; n < i; n = n + 1) {
  1095. r["push"](t(e[n]));
  1096. }
  1097.  
  1098. return r;
  1099. }
  1100.  
  1101. function jdXS(e, t) {
  1102. var r = [];
  1103. iU_q(e, function(e) {
  1104. if (t(e)) {
  1105. r["push"](e);
  1106. }
  1107. });
  1108. return r;
  1109. }
  1110.  
  1111. function kuls(e) {
  1112. var t = (1 << 15) - 1;
  1113. e = iU_q(e, function(e) {
  1114. if (e > t) {
  1115. return t;
  1116. } else if (e < -t) {
  1117. return -t;
  1118. }
  1119.  
  1120. return e;
  1121. });
  1122. var r = e["length"];
  1123. var n = 0;
  1124. var i = [];
  1125.  
  1126. while (n < r) {
  1127. var s = 1;
  1128. var o = e[n];
  1129. var a = Math["abs"](o);
  1130.  
  1131. while (true) {
  1132. if (n + s >= r) {
  1133. break;
  1134. }
  1135.  
  1136. if (e[n + s] !== o) {
  1137. break;
  1138. }
  1139.  
  1140. if (a >= 127 || s >= 127) {
  1141. break;
  1142. }
  1143.  
  1144. s += 1;
  1145. }
  1146.  
  1147. if (s > 1) {
  1148. i["push"]((o < 0 ? 49152 : 32768) | s << 7 | a);
  1149. } else {
  1150. i["push"](o);
  1151. }
  1152.  
  1153. n += s;
  1154. }
  1155.  
  1156. return i;
  1157. }
  1158.  
  1159. function lNYw(e, t) {
  1160. if (e === 0) {
  1161. return 0;
  1162. }
  1163.  
  1164. return Math["log"](e) / Math["log"](t);
  1165. }
  1166.  
  1167. function mUTp(e, t) {
  1168. e = kuls(e);
  1169. var r = [],
  1170. n = [],
  1171. i;
  1172. iU_q(e, function(e) {
  1173. var t = Math["ceil"](lNYw(Math["abs"](e) + 1, 16));
  1174.  
  1175. if (t === 0) {
  1176. t = 1;
  1177. }
  1178.  
  1179. r["push"](heAo(t - 1, 2));
  1180. n["push"](heAo(Math["abs"](e), t * 4));
  1181. });
  1182. var s = r["join"]("");
  1183. var o = n["join"]("");
  1184.  
  1185. if (!t) {
  1186. i = "";
  1187. } else {
  1188. i = iU_q(jdXS(e, function(e) {
  1189. return e != 0 && e >> 15 != 1;
  1190. }), function(e) {
  1191. return e < 0 ? "1" : "0";
  1192. })["join"]("");
  1193. }
  1194.  
  1195. var a = heAo(e["length"] | 32768, 16);
  1196. return a + s + o + i;
  1197. }
  1198.  
  1199. return t(e);
  1200. };
  1201.  
  1202. BjJO = function(e) {
  1203. var t = 0,
  1204. r = 0,
  1205. n = 0,
  1206. i = 0;
  1207. var s = [];
  1208. var o = this;
  1209. var a = e[0][1];
  1210.  
  1211. if (e["length"] <= 0) {
  1212. return [];
  1213. }
  1214.  
  1215. var _ = null;
  1216. var c = null;
  1217. var l = o["Cscb"](e);
  1218. var u = l["length"];
  1219. var f = 0;
  1220.  
  1221. for (; f < u; f = f + 1) {
  1222. var p = l[f];
  1223. var d = p[0];
  1224.  
  1225. if (uQfn(["down", "move", "up", "scroll"], d) > -1) {
  1226. if (!_) {
  1227. _ = p;
  1228. }
  1229.  
  1230. c = p;
  1231. s["push"]([d, [p[1] - t, p[2] - r], o["AWWe"](a ? p[3] - a : a)]);
  1232. t = p[1];
  1233. r = p[2];
  1234. a = p[3];
  1235. } else if (uQfn(["blur", "focus", "unload"], d) > -1) {
  1236. s["push"]([d, o["AWWe"](a ? p[1] - a : a)]);
  1237. a = p[1];
  1238. }
  1239. }
  1240.  
  1241. o["qGfk"] = _;
  1242. o["rXhS"] = c;
  1243. return s;
  1244. };
  1245. var t = click;
  1246.  
  1247. return Xkir(BjJO(click));
  1248. };
  1249.  
  1250. function pe(e, t, r) {
  1251. if (!t || !r) {
  1252. return e;
  1253. }
  1254.  
  1255. var n = 0;
  1256. var i = 2;
  1257. var s;
  1258. var o = e;
  1259. var a = t[0],
  1260. _ = t[2],
  1261. c = t[4];
  1262.  
  1263. while (s = r["substr"](n, i)) {
  1264. n += i;
  1265. var l = parseInt(s, 16);
  1266. var u = String["fromCharCode"](l);
  1267. var f = (a * l * l + _ * l + c) % e["length"];
  1268. o = o["substr"](0, f) + u + o["substr"](f);
  1269. }
  1270.  
  1271. return o;
  1272. }
  1273.  
  1274. var Q = function() {
  1275. var r = Object["create"] || function() {
  1276. function F() {}
  1277.  
  1278. return function(e) {
  1279. var t;
  1280. F["prototype"] = e;
  1281. t = new F();
  1282. F["prototype"] = null;
  1283. return t;
  1284. };
  1285. }();
  1286.  
  1287. var e = {};
  1288. var t = e["lib"] = {};
  1289.  
  1290. var n = t["Base"] = function() {
  1291. return {
  1292. "extend": function(e) {
  1293. var t = r(this);
  1294.  
  1295. if (e) {
  1296. t["mixIn"](e);
  1297. }
  1298.  
  1299. if (!t["hasOwnProperty"]("init") || this["init"] === t["init"]) {
  1300. t["init"] = function() {
  1301. t["$super"]["init"]["apply"](this, arguments);
  1302. };
  1303. }
  1304.  
  1305. t["init"]["prototype"] = t;
  1306. t["$super"] = this;
  1307. return t;
  1308. },
  1309. "create": function() {
  1310. var e = this["extend"]();
  1311. e["init"]["apply"](e, arguments);
  1312. return e;
  1313. },
  1314. "init": function() {},
  1315. "mixIn": function(e) {
  1316. for (var t in e) {
  1317. if (e["hasOwnProperty"](t)) {
  1318. this[t] = e[t];
  1319. }
  1320. }
  1321.  
  1322. if (e["hasOwnProperty"]("toString")) {
  1323. this["toString"] = e["toString"];
  1324. }
  1325. }
  1326. };
  1327. }();
  1328.  
  1329. var u = t["WordArray"] = n["extend"]({
  1330. "init": function(e, t) {
  1331. e = this["words"] = e || [];
  1332.  
  1333. if (t != undefined) {
  1334. this["sigBytes"] = t;
  1335. } else {
  1336. this["sigBytes"] = e["length"] * 4;
  1337. }
  1338. },
  1339. "concat": function(e) {
  1340. var t = this["words"];
  1341. var r = e["words"];
  1342. var n = this["sigBytes"];
  1343. var i = e["sigBytes"];
  1344. this["clamp"]();
  1345.  
  1346. if (n % 4) {
  1347. for (var s = 0; s < i; s++) {
  1348. var o = r[s >>> 2] >>> 24 - s % 4 * 8 & 255;
  1349. t[n + s >>> 2] |= o << 24 - (n + s) % 4 * 8;
  1350. }
  1351. } else {
  1352. for (var s = 0; s < i; s += 4) {
  1353. t[n + s >>> 2] = r[s >>> 2];
  1354. }
  1355. }
  1356.  
  1357. this["sigBytes"] += i;
  1358. return this;
  1359. },
  1360. "clamp": function() {
  1361. var e = this["words"];
  1362. var t = this["sigBytes"];
  1363. e[t >>> 2] &= 4294967295 << 32 - t % 4 * 8;
  1364. e["length"] = Math["ceil"](t / 4);
  1365. }
  1366. });
  1367. var i = e["enc"] = {};
  1368. var l = i["Latin1"] = {
  1369. "parse": function(e) {
  1370. var t = e["length"];
  1371. var r = [];
  1372.  
  1373. for (var n = 0; n < t; n++) {
  1374. r[n >>> 2] |= (e["charCodeAt"](n) & 255) << 24 - n % 4 * 8;
  1375. }
  1376.  
  1377. return new u["init"](r, t);
  1378. }
  1379. };
  1380. var s = i["Utf8"] = {
  1381. "parse": function(e) {
  1382. return l["parse"](unescape(encodeURIComponent(e)));
  1383. }
  1384. };
  1385. var o = t["BufferedBlockAlgorithm"] = n["extend"]({
  1386. "reset": function() {
  1387. this["pjsI"] = new u["init"]();
  1388. this["qfkV"] = 0;
  1389. },
  1390. "rgzc": function(e) {
  1391. if (typeof e == "string") {
  1392. e = s["parse"](e);
  1393. }
  1394.  
  1395. this["pjsI"]["concat"](e);
  1396. this["qfkV"] += e["sigBytes"];
  1397. },
  1398. "sEps": function(e) {
  1399. var t = this["pjsI"];
  1400. var r = t["words"];
  1401. var n = t["sigBytes"];
  1402. var i = this["blockSize"];
  1403. var s = i * 4;
  1404. var o = n / s;
  1405.  
  1406. if (e) {
  1407. o = Math["ceil"](o);
  1408. } else {
  1409. o = Math["max"]((o | 0) - this["tDkA"], 0);
  1410. }
  1411.  
  1412. var a = o * i;
  1413.  
  1414. var _ = Math["min"](a * 4, n);
  1415.  
  1416. if (a) {
  1417. for (var c = 0; c < a; c += i) {
  1418. this["udln"](r, c);
  1419. }
  1420.  
  1421. var l = r["splice"](0, a);
  1422. t["sigBytes"] -= _;
  1423. }
  1424.  
  1425. return new u["init"](l, _);
  1426. },
  1427. "tDkA": 0
  1428. });
  1429. var a = e["algo"] = {};
  1430.  
  1431. var _ = t["Cipher"] = o["extend"]({
  1432. "cfg": n["extend"](),
  1433. "createEncryptor": function(e, t) {
  1434. return this["create"](this["vZjj"], e, t);
  1435. },
  1436. "init": function(e, t, r) {
  1437. this["cfg"] = this["cfg"]["extend"](r);
  1438. this["wqSk"] = e;
  1439. this["xjne"] = t;
  1440. this["reset"]();
  1441. },
  1442. "reset": function() {
  1443. o["reset"]["call"](this);
  1444. this["yEXF"]();
  1445. },
  1446. "process": function(e) {
  1447. this["rgzc"](e);
  1448. return this["sEps"]();
  1449. },
  1450. "finalize": function(e) {
  1451. if (e) {
  1452. this["rgzc"](e);
  1453. }
  1454.  
  1455. var t = this["AXVn"]();
  1456. return t;
  1457. },
  1458. "keySize": 128 / 32,
  1459. "ivSize": 128 / 32,
  1460. "vZjj": 1,
  1461. "BmoS": 2,
  1462. "CwJD": function() {
  1463. return function(c) {
  1464. return {
  1465. "encrypt": function(e, t, r) {
  1466. var t = l["parse"](t);
  1467.  
  1468. if (!r || !r["iv"]) {
  1469. r = r || {};
  1470. r["iv"] = l["parse"]("0000000000000000");
  1471. }
  1472.  
  1473. var n = m["encrypt"](c, e, t, r);
  1474. var i = n["ciphertext"]["words"];
  1475. var s = n["ciphertext"]["sigBytes"];
  1476. var o = [];
  1477.  
  1478. for (var a = 0; a < s; a++) {
  1479. var _ = i[a >>> 2] >>> 24 - a % 4 * 8 & 255;
  1480.  
  1481. o["push"](_);
  1482. }
  1483.  
  1484. return o;
  1485. }
  1486. };
  1487. };
  1488. }()
  1489. });
  1490.  
  1491. var c = e["mode"] = {};
  1492. var f = t["BlockCipherMode"] = n["extend"]({
  1493. "createEncryptor": function(e, t) {
  1494. return this["Encryptor"]["create"](e, t);
  1495. },
  1496. "init": function(e, t) {
  1497. this["DPYF"] = e;
  1498. this["Ejxb"] = t;
  1499. }
  1500. });
  1501.  
  1502. var p = c["CBC"] = function() {
  1503. var e = f["extend"]();
  1504. e["Encryptor"] = e["extend"]({
  1505. "processBlock": function(e, t) {
  1506. var r = this["DPYF"];
  1507. var n = r["blockSize"];
  1508. QENL["call"](this, e, t, n);
  1509. r["encryptBlock"](e, t);
  1510. this["FSli"] = e["slice"](t, t + n);
  1511. }
  1512. });
  1513.  
  1514. function QENL(e, t, r) {
  1515. var n = this["Ejxb"];
  1516.  
  1517. if (n) {
  1518. var i = n;
  1519. this["Ejxb"] = undefined;
  1520. } else {
  1521. var i = this["FSli"];
  1522. }
  1523.  
  1524. for (var s = 0; s < r; s++) {
  1525. e[t + s] ^= i[s];
  1526. }
  1527. }
  1528.  
  1529. return e;
  1530. }();
  1531.  
  1532. var d = e["pad"] = {};
  1533. var g = d["Pkcs7"] = {
  1534. "pad": function(e, t) {
  1535. var r = t * 4;
  1536. var n = r - e["sigBytes"] % r;
  1537. var i = n << 24 | n << 16 | n << 8 | n;
  1538. var s = [];
  1539.  
  1540. for (var o = 0; o < n; o += 4) {
  1541. s["push"](i);
  1542. }
  1543.  
  1544. var a = u["create"](s, n);
  1545. e["concat"](a);
  1546. }
  1547. };
  1548.  
  1549. var h = t["BlockCipher"] = _["extend"]({
  1550. "cfg": _["cfg"]["extend"]({
  1551. "mode": p,
  1552. "padding": g
  1553. }),
  1554. "reset": function() {
  1555. _["reset"]["call"](this);
  1556.  
  1557. var e = this["cfg"];
  1558. var t = e["iv"];
  1559. var r = e["mode"];
  1560.  
  1561. if (this["wqSk"] == this["vZjj"]) {
  1562. var n = r["createEncryptor"];
  1563. }
  1564.  
  1565. if (this["GCBR"] && this["GCBR"]["HeND"] == n) {
  1566. this["GCBR"]["init"](this, t && t["words"]);
  1567. } else {
  1568. this["GCBR"] = n["call"](r, this, t && t["words"]);
  1569. this["GCBR"]["HeND"] = n;
  1570. }
  1571. },
  1572. "udln": function(e, t) {
  1573. this["GCBR"]["processBlock"](e, t);
  1574. },
  1575. "AXVn": function() {
  1576. var e = this["cfg"]["padding"];
  1577.  
  1578. if (this["wqSk"] == this["vZjj"]) {
  1579. e["pad"](this["pjsI"], this["blockSize"]);
  1580. var t = this["sEps"](!!"flush");
  1581. }
  1582.  
  1583. return t;
  1584. },
  1585. "blockSize": 128 / 32
  1586. });
  1587.  
  1588. var v = t["CipherParams"] = n["extend"]({
  1589. "init": function(e) {
  1590. this["mixIn"](e);
  1591. }
  1592. });
  1593. var m = t["SerializableCipher"] = n["extend"]({
  1594. "cfg": n["extend"](),
  1595. "encrypt": function(e, t, r, n) {
  1596. n = this["cfg"]["extend"](n);
  1597. var i = e["createEncryptor"](r, n);
  1598. var s = i["finalize"](t);
  1599. var o = i["cfg"];
  1600. return v["create"]({
  1601. "ciphertext": s,
  1602. "key": r,
  1603. "iv": o["iv"],
  1604. "algorithm": e,
  1605. "mode": o["mode"],
  1606. "padding": o["padding"],
  1607. "blockSize": e["blockSize"],
  1608. "formatter": n["format"]
  1609. });
  1610. }
  1611. });
  1612. var w = [];
  1613. var y = [];
  1614. var x = [];
  1615. var b = [];
  1616. var E = [];
  1617. var S = [];
  1618. var k = [];
  1619. var C = [];
  1620. var T = [];
  1621. var A = [];
  1622.  
  1623. (function() {
  1624. var e = [];
  1625.  
  1626. for (var t = 0; t < 256; t++) {
  1627. if (t < 128) {
  1628. e[t] = t << 1;
  1629. } else {
  1630. e[t] = t << 1 ^ 283;
  1631. }
  1632. }
  1633.  
  1634. var r = 0;
  1635. var n = 0;
  1636.  
  1637. for (var t = 0; t < 256; t++) {
  1638. var i = n ^ n << 1 ^ n << 2 ^ n << 3 ^ n << 4;
  1639. i = i >>> 8 ^ i & 255 ^ 99;
  1640. w[r] = i;
  1641. y[i] = r;
  1642. var s = e[r];
  1643. var o = e[s];
  1644. var a = e[o];
  1645.  
  1646. var _ = e[i] * 257 ^ i * 16843008;
  1647.  
  1648. x[r] = _ << 24 | _ >>> 8;
  1649. b[r] = _ << 16 | _ >>> 16;
  1650. E[r] = _ << 8 | _ >>> 24;
  1651. S[r] = _;
  1652.  
  1653. var _ = a * 16843009 ^ o * 65537 ^ s * 257 ^ r * 16843008;
  1654.  
  1655. k[i] = _ << 24 | _ >>> 8;
  1656. C[i] = _ << 16 | _ >>> 16;
  1657. T[i] = _ << 8 | _ >>> 24;
  1658. A[i] = _;
  1659.  
  1660. if (!r) {
  1661. r = n = 1;
  1662. } else {
  1663. r = s ^ e[e[e[a ^ s]]];
  1664. n ^= e[e[n]];
  1665. }
  1666. }
  1667. })();
  1668.  
  1669. var I = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54];
  1670. var B = a["AES"] = h["extend"]({
  1671. "yEXF": function() {
  1672. if (this["IPYP"] && this["JGZB"] === this["xjne"]) {
  1673. return;
  1674. }
  1675.  
  1676. var e = this["JGZB"] = this["xjne"];
  1677. var t = e["words"];
  1678. var r = e["sigBytes"] / 4;
  1679. var n = this["IPYP"] = r + 6;
  1680. var i = (n + 1) * 4;
  1681. var s = this["KUID"] = [];
  1682.  
  1683. for (var o = 0; o < i; o++) {
  1684. if (o < r) {
  1685. s[o] = t[o];
  1686. } else {
  1687. var a = s[o - 1];
  1688.  
  1689. if (!(o % r)) {
  1690. a = a << 8 | a >>> 24;
  1691. a = w[a >>> 24] << 24 | w[a >>> 16 & 255] << 16 | w[a >>> 8 & 255] << 8 | w[a & 255];
  1692. a ^= I[o / r | 0] << 24;
  1693. } else if (r > 6 && o % r == 4) {
  1694. a = w[a >>> 24] << 24 | w[a >>> 16 & 255] << 16 | w[a >>> 8 & 255] << 8 | w[a & 255];
  1695. }
  1696.  
  1697. s[o] = s[o - r] ^ a;
  1698. }
  1699. }
  1700.  
  1701. var _ = this["LmzG"] = [];
  1702.  
  1703. for (var c = 0; c < i; c++) {
  1704. var o = i - c;
  1705.  
  1706. if (c % 4) {
  1707. var a = s[o];
  1708. } else {
  1709. var a = s[o - 4];
  1710. }
  1711.  
  1712. if (c < 4 || o <= 4) {
  1713. _[c] = a;
  1714. } else {
  1715. _[c] = k[w[a >>> 24]] ^ C[w[a >>> 16 & 255]] ^ T[w[a >>> 8 & 255]] ^ A[w[a & 255]];
  1716. }
  1717. }
  1718. },
  1719. "encryptBlock": function(e, t) {
  1720. this["MCdb"](e, t, this["KUID"], x, b, E, S, w);
  1721. },
  1722. "MCdb": function(e, t, r, n, i, s, o, a) {
  1723. var _ = this["IPYP"];
  1724. var c = e[t] ^ r[0];
  1725. var l = e[t + 1] ^ r[1];
  1726. var u = e[t + 2] ^ r[2];
  1727. var f = e[t + 3] ^ r[3];
  1728. var p = 4;
  1729.  
  1730. for (var d = 1; d < _; d++) {
  1731. var g = n[c >>> 24] ^ i[l >>> 16 & 255] ^ s[u >>> 8 & 255] ^ o[f & 255] ^ r[p++];
  1732. var h = n[l >>> 24] ^ i[u >>> 16 & 255] ^ s[f >>> 8 & 255] ^ o[c & 255] ^ r[p++];
  1733. var v = n[u >>> 24] ^ i[f >>> 16 & 255] ^ s[c >>> 8 & 255] ^ o[l & 255] ^ r[p++];
  1734. var m = n[f >>> 24] ^ i[c >>> 16 & 255] ^ s[l >>> 8 & 255] ^ o[u & 255] ^ r[p++];
  1735. c = g;
  1736. l = h;
  1737. u = v;
  1738. f = m;
  1739. }
  1740.  
  1741. var g = (a[c >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[f & 255]) ^ r[p++];
  1742. var h = (a[l >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[c & 255]) ^ r[p++];
  1743. var v = (a[u >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[c >>> 8 & 255] << 8 | a[l & 255]) ^ r[p++];
  1744. var m = (a[f >>> 24] << 24 | a[c >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[u & 255]) ^ r[p++];
  1745. e[t] = g;
  1746. e[t + 1] = h;
  1747. e[t + 2] = v;
  1748. e[t + 3] = m;
  1749. },
  1750. "keySize": 256 / 32
  1751. });
  1752. e["AES"] = h["CwJD"](B);
  1753. return e["AES"];
  1754. }();
  1755.  
  1756. var de = function() {
  1757. "use strict";
  1758.  
  1759. var e = {};
  1760. var t = /^[\],:{}\s]*$/;
  1761. var r = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g;
  1762. var n = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;
  1763. var i = /(?:^|:|,)(?:\s*\[)+/g;
  1764. var s = /[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
  1765. var o = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
  1766.  
  1767. function f(e) {
  1768. return e < 10 ? "0" + e : e;
  1769. }
  1770.  
  1771. function cEov() {
  1772. return this["valueOf"]();
  1773. }
  1774.  
  1775. if (typeof Date["prototype"]["toJSON"] !== "function") {
  1776. Date["prototype"]["toJSON"] = function() {
  1777. return isFinite(this["valueOf"]()) ? this["getUTCFullYear"]() + "-" + f(this["getUTCMonth"]() + 1) + "-" + f(this["getUTCDate"]()) + "T" + f(this["getUTCHours"]()) + ":" + f(this["getUTCMinutes"]()) + ":" + f(this["getUTCSeconds"]()) + "Z" : null;
  1778. };
  1779.  
  1780. Boolean["prototype"]["toJSON"] = cEov;
  1781. Number["prototype"]["toJSON"] = cEov;
  1782. String["prototype"]["toJSON"] = cEov;
  1783. }
  1784.  
  1785. var c;
  1786. var l;
  1787. var a;
  1788. var u;
  1789.  
  1790. function dCpX(e) {
  1791. s["lastIndex"] = 0;
  1792. return s["test"](e) ? "\"" + e["replace"](s, function(e) {
  1793. var t = a[e];
  1794. return typeof t === "string" ? t : "\\u" + ("0000" + e["charCodeAt"](0)["toString"](16))["slice"](-4);
  1795. }) + "\"" : "\"" + e + "\"";
  1796. }
  1797.  
  1798. function eTjc(e, t) {
  1799. var r;
  1800. var n;
  1801. var i;
  1802. var s;
  1803. var o = c;
  1804. var a;
  1805. var _ = t[e];
  1806.  
  1807. if (_ && typeof _ === "object" && typeof _["toJSON"] === "function") {
  1808. _ = _["toJSON"](e);
  1809. }
  1810.  
  1811. if (typeof u === "function") {
  1812. _ = u["call"](t, e, _);
  1813. }
  1814.  
  1815. switch (typeof _) {
  1816. case "string":
  1817. return dCpX(_);
  1818.  
  1819. case "number":
  1820. return isFinite(_) ? String(_) : "null";
  1821.  
  1822. case "boolean":
  1823. case "null":
  1824. return String(_);
  1825.  
  1826. case "object":
  1827. if (!_) {
  1828. return "null";
  1829. }
  1830.  
  1831. c += l;
  1832. a = [];
  1833.  
  1834. if (Object["prototype"]["toString"]["apply"](_) === "[object Array]") {
  1835. s = _["length"];
  1836.  
  1837. for (r = 0; r < s; r += 1) {
  1838. a[r] = eTjc(r, _) || "null";
  1839. }
  1840.  
  1841. i = a["length"] === 0 ? "[]" : c ? "[\n" + c + a["join"](",\n" + c) + "\n" + o + "]" : "[" + a["join"](",") + "]";
  1842. c = o;
  1843. return i;
  1844. }
  1845.  
  1846. if (u && typeof u === "object") {
  1847. s = u["length"];
  1848.  
  1849. for (r = 0; r < s; r += 1) {
  1850. if (typeof u[r] === "string") {
  1851. n = u[r];
  1852. i = eTjc(n, _);
  1853.  
  1854. if (i) {
  1855. a["push"](dCpX(n) + (c ? ": " : ":") + i);
  1856. }
  1857. }
  1858. }
  1859. } else {
  1860. for (n in _) {
  1861. if (Object["prototype"]["hasOwnProperty"]["call"](_, n)) {
  1862. i = eTjc(n, _);
  1863.  
  1864. if (i) {
  1865. a["push"](dCpX(n) + (c ? ": " : ":") + i);
  1866. }
  1867. }
  1868. }
  1869. }
  1870.  
  1871. i = a["length"] === 0 ? "{}" : c ? "{\n" + c + a["join"](",\n" + c) + "\n" + o + "}" : "{" + a["join"](",") + "}";
  1872. c = o;
  1873. return i;
  1874. }
  1875. }
  1876.  
  1877. a = {
  1878. "\b": "\\b",
  1879. "\t": "\\t",
  1880. "\n": "\\n",
  1881. "\f": "\\f",
  1882. "\r": "\\r",
  1883. "\"": "\\\"",
  1884. "\\": "\\\\"
  1885. };
  1886.  
  1887. e["stringify"] = function(e, t, r) {
  1888. var n;
  1889. c = "";
  1890. l = "";
  1891.  
  1892. if (typeof r === "number") {
  1893. for (n = 0; n < r; n += 1) {
  1894. l += " ";
  1895. }
  1896. } else if (typeof r === "string") {
  1897. l = r;
  1898. }
  1899.  
  1900. u = t;
  1901.  
  1902. if (t && typeof t !== "function" && (typeof t !== "object" || typeof t["length"] !== "number")) {
  1903. throw new Error("JSON.stringify");
  1904. }
  1905.  
  1906. return eTjc("", {
  1907. "": e
  1908. });
  1909. };
  1910.  
  1911. return e;
  1912. }();
  1913.  
  1914. function Z(e) {
  1915. function GAkw(e, t) {
  1916. return e << t | e >>> 32 - t;
  1917. }
  1918.  
  1919. function HSRH(e, t) {
  1920. var r, n, i, s, o;
  1921. i = e & 2147483648;
  1922. s = t & 2147483648;
  1923. r = e & 1073741824;
  1924. n = t & 1073741824;
  1925. o = (e & 1073741823) + (t & 1073741823);
  1926.  
  1927. if (r & n) {
  1928. return o ^ 2147483648 ^ i ^ s;
  1929. }
  1930.  
  1931. if (r | n) {
  1932. if (o & 1073741824) {
  1933. return o ^ 3221225472 ^ i ^ s;
  1934. } else {
  1935. return o ^ 1073741824 ^ i ^ s;
  1936. }
  1937. } else {
  1938. return o ^ i ^ s;
  1939. }
  1940. }
  1941.  
  1942. function F(e, t, r) {
  1943. return e & t | ~e & r;
  1944. }
  1945.  
  1946. function G(e, t, r) {
  1947. return e & r | t & ~r;
  1948. }
  1949.  
  1950. function H(e, t, r) {
  1951. return e ^ t ^ r;
  1952. }
  1953.  
  1954. function I(e, t, r) {
  1955. return t ^ (e | ~r);
  1956. }
  1957.  
  1958. function FF(e, t, r, n, i, s, o) {
  1959. e = HSRH(e, HSRH(HSRH(F(t, r, n), i), o));
  1960. return HSRH(GAkw(e, s), t);
  1961. }
  1962.  
  1963. function GG(e, t, r, n, i, s, o) {
  1964. e = HSRH(e, HSRH(HSRH(G(t, r, n), i), o));
  1965. return HSRH(GAkw(e, s), t);
  1966. }
  1967.  
  1968. function HH(e, t, r, n, i, s, o) {
  1969. e = HSRH(e, HSRH(HSRH(H(t, r, n), i), o));
  1970. return HSRH(GAkw(e, s), t);
  1971. }
  1972.  
  1973. function II(e, t, r, n, i, s, o) {
  1974. e = HSRH(e, HSRH(HSRH(I(t, r, n), i), o));
  1975. return HSRH(GAkw(e, s), t);
  1976. }
  1977.  
  1978. function IC_r(e) {
  1979. var t;
  1980. var r = e["length"];
  1981. var n = r + 8;
  1982. var i = (n - n % 64) / 64;
  1983. var s = (i + 1) * 16;
  1984. var o = Array(s - 1);
  1985. var a = 0;
  1986. var _ = 0;
  1987.  
  1988. while (_ < r) {
  1989. t = (_ - _ % 4) / 4;
  1990. a = _ % 4 * 8;
  1991. o[t] = o[t] | e["charCodeAt"](_) << a;
  1992. _++;
  1993. }
  1994.  
  1995. t = (_ - _ % 4) / 4;
  1996. a = _ % 4 * 8;
  1997. o[t] = o[t] | 128 << a;
  1998. o[s - 2] = r << 3;
  1999. o[s - 1] = r >>> 29;
  2000. return o;
  2001. }
  2002.  
  2003. function JjuX(e) {
  2004. var t = "",
  2005. r = "",
  2006. n,
  2007. i;
  2008.  
  2009. for (i = 0; i <= 3; i++) {
  2010. n = e >>> i * 8 & 255;
  2011. r = "0" + n["toString"](16);
  2012. t = t + r["substr"](r["length"] - 2, 2);
  2013. }
  2014.  
  2015. return t;
  2016. }
  2017.  
  2018. function KeB_(e) {
  2019. e = e["replace"](/\r\n/g, "\n");
  2020. var t = "";
  2021.  
  2022. for (var r = 0; r < e["length"]; r++) {
  2023. var n = e["charCodeAt"](r);
  2024.  
  2025. if (n < 128) {
  2026. t += String["fromCharCode"](n);
  2027. } else if (n > 127 && n < 2048) {
  2028. t += String["fromCharCode"](n >> 6 | 192);
  2029. t += String["fromCharCode"](n & 63 | 128);
  2030. } else {
  2031. t += String["fromCharCode"](n >> 12 | 224);
  2032. t += String["fromCharCode"](n >> 6 & 63 | 128);
  2033. t += String["fromCharCode"](n & 63 | 128);
  2034. }
  2035. }
  2036.  
  2037. return t;
  2038. }
  2039.  
  2040. var t = [];
  2041.  
  2042. var r, n, i, s, o, a, _, c, l;
  2043.  
  2044. var u = 7,
  2045. f = 12,
  2046. p = 17,
  2047. d = 22;
  2048. var g = 5,
  2049. h = 9,
  2050. v = 14,
  2051. m = 20;
  2052. var w = 4,
  2053. y = 11,
  2054. x = 16,
  2055. b = 23;
  2056. var E = 6,
  2057. S = 10,
  2058. k = 15,
  2059. C = 21;
  2060. e = KeB_(e);
  2061. t = IC_r(e);
  2062. a = 1732584193;
  2063. _ = 4023233417;
  2064. c = 2562383102;
  2065. l = 271733878;
  2066.  
  2067. for (r = 0; r < t["length"]; r += 16) {
  2068. n = a;
  2069. i = _;
  2070. s = c;
  2071. o = l;
  2072. a = FF(a, _, c, l, t[r + 0], u, 3614090360);
  2073. l = FF(l, a, _, c, t[r + 1], f, 3905402710);
  2074. c = FF(c, l, a, _, t[r + 2], p, 606105819);
  2075. _ = FF(_, c, l, a, t[r + 3], d, 3250441966);
  2076. a = FF(a, _, c, l, t[r + 4], u, 4118548399);
  2077. l = FF(l, a, _, c, t[r + 5], f, 1200080426);
  2078. c = FF(c, l, a, _, t[r + 6], p, 2821735955);
  2079. _ = FF(_, c, l, a, t[r + 7], d, 4249261313);
  2080. a = FF(a, _, c, l, t[r + 8], u, 1770035416);
  2081. l = FF(l, a, _, c, t[r + 9], f, 2336552879);
  2082. c = FF(c, l, a, _, t[r + 10], p, 4294925233);
  2083. _ = FF(_, c, l, a, t[r + 11], d, 2304563134);
  2084. a = FF(a, _, c, l, t[r + 12], u, 1804603682);
  2085. l = FF(l, a, _, c, t[r + 13], f, 4254626195);
  2086. c = FF(c, l, a, _, t[r + 14], p, 2792965006);
  2087. _ = FF(_, c, l, a, t[r + 15], d, 1236535329);
  2088. a = GG(a, _, c, l, t[r + 1], g, 4129170786);
  2089. l = GG(l, a, _, c, t[r + 6], h, 3225465664);
  2090. c = GG(c, l, a, _, t[r + 11], v, 643717713);
  2091. _ = GG(_, c, l, a, t[r + 0], m, 3921069994);
  2092. a = GG(a, _, c, l, t[r + 5], g, 3593408605);
  2093. l = GG(l, a, _, c, t[r + 10], h, 38016083);
  2094. c = GG(c, l, a, _, t[r + 15], v, 3634488961);
  2095. _ = GG(_, c, l, a, t[r + 4], m, 3889429448);
  2096. a = GG(a, _, c, l, t[r + 9], g, 568446438);
  2097. l = GG(l, a, _, c, t[r + 14], h, 3275163606);
  2098. c = GG(c, l, a, _, t[r + 3], v, 4107603335);
  2099. _ = GG(_, c, l, a, t[r + 8], m, 1163531501);
  2100. a = GG(a, _, c, l, t[r + 13], g, 2850285829);
  2101. l = GG(l, a, _, c, t[r + 2], h, 4243563512);
  2102. c = GG(c, l, a, _, t[r + 7], v, 1735328473);
  2103. _ = GG(_, c, l, a, t[r + 12], m, 2368359562);
  2104. a = HH(a, _, c, l, t[r + 5], w, 4294588738);
  2105. l = HH(l, a, _, c, t[r + 8], y, 2272392833);
  2106. c = HH(c, l, a, _, t[r + 11], x, 1839030562);
  2107. _ = HH(_, c, l, a, t[r + 14], b, 4259657740);
  2108. a = HH(a, _, c, l, t[r + 1], w, 2763975236);
  2109. l = HH(l, a, _, c, t[r + 4], y, 1272893353);
  2110. c = HH(c, l, a, _, t[r + 7], x, 4139469664);
  2111. _ = HH(_, c, l, a, t[r + 10], b, 3200236656);
  2112. a = HH(a, _, c, l, t[r + 13], w, 681279174);
  2113. l = HH(l, a, _, c, t[r + 0], y, 3936430074);
  2114. c = HH(c, l, a, _, t[r + 3], x, 3572445317);
  2115. _ = HH(_, c, l, a, t[r + 6], b, 76029189);
  2116. a = HH(a, _, c, l, t[r + 9], w, 3654602809);
  2117. l = HH(l, a, _, c, t[r + 12], y, 3873151461);
  2118. c = HH(c, l, a, _, t[r + 15], x, 530742520);
  2119. _ = HH(_, c, l, a, t[r + 2], b, 3299628645);
  2120. a = II(a, _, c, l, t[r + 0], E, 4096336452);
  2121. l = II(l, a, _, c, t[r + 7], S, 1126891415);
  2122. c = II(c, l, a, _, t[r + 14], k, 2878612391);
  2123. _ = II(_, c, l, a, t[r + 5], C, 4237533241);
  2124. a = II(a, _, c, l, t[r + 12], E, 1700485571);
  2125. l = II(l, a, _, c, t[r + 3], S, 2399980690);
  2126. c = II(c, l, a, _, t[r + 10], k, 4293915773);
  2127. _ = II(_, c, l, a, t[r + 1], C, 2240044497);
  2128. a = II(a, _, c, l, t[r + 8], E, 1873313359);
  2129. l = II(l, a, _, c, t[r + 15], S, 4264355552);
  2130. c = II(c, l, a, _, t[r + 6], k, 2734768916);
  2131. _ = II(_, c, l, a, t[r + 13], C, 1309151649);
  2132. a = II(a, _, c, l, t[r + 4], E, 4149444226);
  2133. l = II(l, a, _, c, t[r + 11], S, 3174756917);
  2134. c = II(c, l, a, _, t[r + 2], k, 718787259);
  2135. _ = II(_, c, l, a, t[r + 9], C, 3951481745);
  2136. a = HSRH(a, n);
  2137. _ = HSRH(_, i);
  2138. c = HSRH(c, s);
  2139. l = HSRH(l, o);
  2140. }
  2141.  
  2142. var T = JjuX(a) + JjuX(_) + JjuX(c) + JjuX(l);
  2143. return T["toLowerCase"]();
  2144. }
  2145.  
  2146. Tddu = function(e) {
  2147. var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789()";
  2148.  
  2149. if (e < 0 || e >= t["length"]) {
  2150. return ".";
  2151. }
  2152.  
  2153. return t["charAt"](e);
  2154. };
  2155.  
  2156. var h = {
  2157. "JHlg": {
  2158. "KaBO": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789()",
  2159. "LErz": ".",
  2160. "MrTK": 7274496,
  2161. "NopF": 9483264,
  2162. "ObcT": 19220,
  2163. "Pqeu": 235,
  2164. "QeXe": 24
  2165. },
  2166. "KaBO": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789()",
  2167. "LErz": ".",
  2168. "MrTK": 7274496,
  2169. "NopF": 9483264,
  2170. "ObcT": 19220,
  2171. "Pqeu": 235,
  2172. "QeXe": 24,
  2173. "Ryha": function(e) {
  2174. var t = [];
  2175.  
  2176. for (var r = 0, n = e["length"]; r < n; r += 1) {
  2177. t["push"](e["charCodeAt"](r));
  2178. }
  2179.  
  2180. return t;
  2181. },
  2182. "SfaP": function(e) {
  2183. var t = "";
  2184.  
  2185. for (var r = 0, n = e["length"]; r < n; r += 1) {
  2186. t += String["fromCharCode"](e[r]);
  2187. }
  2188.  
  2189. return t;
  2190. },
  2191. "Tddu": function(e) {
  2192. var t = this["KaBO"];
  2193.  
  2194. if (e < 0 || e >= t["length"]) {
  2195. return ".";
  2196. }
  2197.  
  2198. return t["charAt"](e);
  2199. },
  2200. "UYYM": function(e) {
  2201. var t = this["KaBO"];
  2202. return t["indexOf"](e);
  2203. },
  2204. "VphP": function(e, t) {
  2205. return e >> t & 1;
  2206. },
  2207. "WWko": function(e, i) {
  2208. var s = this;
  2209.  
  2210. if (!i) {
  2211. i = s;
  2212. }
  2213.  
  2214. function t(e, t) {
  2215. var r = 0;
  2216.  
  2217. for (var n = i["QeXe"] - 1; n >= 0; n -= 1) {
  2218. if (s["VphP"](t, n) === 1) {
  2219. r = (r << 1) + s["VphP"](e, n);
  2220. }
  2221. }
  2222.  
  2223. return r;
  2224. }
  2225.  
  2226. var r = "",
  2227. n = "";
  2228. var o = e["length"];
  2229.  
  2230. for (var a = 0; a < o; a += 3) {
  2231. var _;
  2232.  
  2233. if (a + 2 < o) {
  2234. _ = (e[a] << 16) + (e[a + 1] << 8) + e[a + 2];
  2235. r += s["Tddu"](t(_, i["MrTK"])) + s["Tddu"](t(_, i["NopF"])) + s["Tddu"](t(_, i["ObcT"])) + s["Tddu"](t(_, i["Pqeu"]));
  2236. } else {
  2237. var c = o % 3;
  2238.  
  2239. if (c === 2) {
  2240. _ = (e[a] << 16) + (e[a + 1] << 8);
  2241. r += s["Tddu"](t(_, i["MrTK"])) + s["Tddu"](t(_, i["NopF"])) + s["Tddu"](t(_, i["ObcT"]));
  2242. n = i["LErz"];
  2243. } else if (c === 1) {
  2244. _ = e[a] << 16;
  2245. r += s["Tddu"](t(_, i["MrTK"])) + s["Tddu"](t(_, i["NopF"]));
  2246. n = i["LErz"] + i["LErz"];
  2247. }
  2248. }
  2249. }
  2250.  
  2251. return {
  2252. "res": r,
  2253. "end": n
  2254. };
  2255. },
  2256. "Xkir": function(e) {
  2257. var t = this;
  2258. var r = t["WWko"](t["Ryha"](e));
  2259. return r["res"] + r["end"];
  2260. },
  2261. "YQee": function(e) {
  2262. var t = this;
  2263. var r = t["WWko"](e);
  2264. return r["res"] + r["end"];
  2265. },
  2266. "Zxuq": function(e, s) {
  2267. var o = this;
  2268.  
  2269. if (!s) {
  2270. s = o;
  2271. }
  2272.  
  2273. function t(e, t) {
  2274. if (e < 0) {
  2275. return 0;
  2276. }
  2277.  
  2278. var r = 5;
  2279. var n = 0;
  2280.  
  2281. for (var i = s["QeXe"] - 1; i >= 0; i -= 1) {
  2282. if (o["VphP"](t, i) === 1) {
  2283. n += o["VphP"](e, r) << i;
  2284. r -= 1;
  2285. }
  2286. }
  2287.  
  2288. return n;
  2289. }
  2290.  
  2291. var r = e["length"];
  2292. var n = "";
  2293.  
  2294. for (var i = 0; i < r; i += 4) {
  2295. var a = t(o["UYYM"](e["charAt"](i)), s["MrTK"]) + t(o["UYYM"](e["charAt"](i + 1)), s["NopF"]) + t(o["UYYM"](e["charAt"](i + 2)), s["ObcT"]) + t(o["UYYM"](e["charAt"](i + 3)), s["Pqeu"]);
  2296.  
  2297. var _ = a >> 16 & 255;
  2298.  
  2299. n += String["fromCharCode"](_);
  2300.  
  2301. if (e["charAt"](i + 2) !== s["LErz"]) {
  2302. var c = a >> 8 & 255;
  2303. n += String["fromCharCode"](c);
  2304.  
  2305. if (e["charAt"](i + 3) !== s["LErz"]) {
  2306. var l = a & 255;
  2307. n += String["fromCharCode"](l);
  2308. }
  2309. }
  2310. }
  2311.  
  2312. return n;
  2313. },
  2314. "aUoe": function(e) {
  2315. var t = this;
  2316. var r = 4 - e["length"] % 4;
  2317.  
  2318. if (r < 4) {
  2319. for (var n = 0; n < r; n += 1) {
  2320. e += t["LErz"];
  2321. }
  2322. }
  2323.  
  2324. return t["Zxuq"](e);
  2325. },
  2326. "bowZ": function(e) {
  2327. var t = this;
  2328. return t["aUoe"](e);
  2329. }
  2330. };
  2331.  
  2332. // 调用这个函数就可以获取w
  2333. getW = function(click, xy, pic_url, nc, ns, gt, challenge, passtime) {
  2334. r = this
  2335. var o = {
  2336. "lang": "zh-cn",
  2337. "passtime": passtime,
  2338. "a": xy,
  2339. "pic": pic_url,
  2340. "tt": pe(EhLr(click), nc, ns),
  2341. "ep": {}
  2342. };
  2343. o["rp"] = Z(gt + challenge + passtime)
  2344.  
  2345. gCdf = function() {
  2346. var t = ae();
  2347. return function(e) {
  2348. if (e === true) {
  2349. t = ae();
  2350. }
  2351.  
  2352. return t;
  2353. };
  2354. }();
  2355.  
  2356. var f = Q["encrypt"](de["stringify"](o), r["gCdf"]());
  2357.  
  2358. var p = h.YQee(f);
  2359. return p + fTbG()
  2360. }
  2361. const t = new Date().getTime()
  2362. const click = [
  2363. [
  2364. "blur",
  2365. t
  2366. ],
  2367. [
  2368. "focus",
  2369. t + 100
  2370. ],
  2371. [
  2372. "focus",
  2373. t + 100
  2374. ],
  2375. [
  2376. "down",
  2377. 318,
  2378. 349,
  2379. t + 200,
  2380. "pointerdown"
  2381. ],
  2382. [
  2383. "move",
  2384. 318,
  2385. 349,
  2386. t + 250,
  2387. "pointermove"
  2388. ],
  2389. [
  2390. "up",
  2391. 318,
  2392. 349,
  2393. t + 300,
  2394. "pointerup"
  2395. ],
  2396. [
  2397. "move",
  2398. 318,
  2399. 349,
  2400. t + 302,
  2401. "mousemove"
  2402. ],
  2403. [
  2404. "down",
  2405. 318,
  2406. 349,
  2407. t + 303,
  2408. "mousedown"
  2409. ],
  2410. [
  2411. "up",
  2412. 318,
  2413. 349,
  2414. t + 304,
  2415. "mouseup"
  2416. ],
  2417. [
  2418. "down",
  2419. 327,
  2420. 520,
  2421. t + 400,
  2422. "pointerdown"
  2423. ],
  2424. [
  2425. "up",
  2426. 327,
  2427. 520,
  2428. t + 450,
  2429. "pointerup"
  2430. ],
  2431. [
  2432. "move",
  2433. 327,
  2434. 520,
  2435. t + 470,
  2436. "mousemove"
  2437. ],
  2438. [
  2439. "down",
  2440. 327,
  2441. 520,
  2442. t + 470,
  2443. "mousedown"
  2444. ],
  2445. [
  2446. "focus",
  2447. t + 470
  2448. ],
  2449. [
  2450. "up",
  2451. 327,
  2452. 520,
  2453. t + 471,
  2454. "mouseup"
  2455. ]
  2456. ]
  2457. // 截取cookie
  2458. function getCookie(name) {
  2459. // 获取所有cookie并以"; "分割
  2460. const cookies = document.cookie.split("; ");
  2461. for (let i = 0; i < cookies.length; i++) {
  2462. // 分割键值对
  2463. const cookie = cookies[i].split("=");
  2464. // 删除cookie名两边的空白字符
  2465. const cookieName = cookie[0].trim();
  2466. // 如果找到了所需的cookie键
  2467. if (cookieName === name) {
  2468. // 返回对应的cookie值(去掉值两边的空白字符)
  2469. return decodeURIComponent(cookie[1].trim());
  2470. }
  2471. }
  2472. // 如果找不到指定的cookie,返回空字符串
  2473. return "";
  2474. }
  2475. // 格式化服务器返回的坐标
  2476. function formatTextCoordinates(coordinates){
  2477.  
  2478. const scaleFactor = 10000 / 344;
  2479.  
  2480. // 计算平均值并应用比例因子,然后格式化输出
  2481. const resultStrings = coordinates.map(coords => {
  2482. const xAvg = Math.round(((coords[0] + coords[2]) / 2) * scaleFactor);
  2483. const yAvg = Math.round(((coords[1] + coords[3]) / 2) * scaleFactor);
  2484. return `${xAvg}_${yAvg}`;
  2485. });
  2486.  
  2487. return resultStrings.join(',');
  2488.  
  2489.  
  2490. }
  2491. const http = axios.create({
  2492. baseURL: "https://api.bilibili.com",
  2493. timeout: 5000,
  2494. withCredentials: "true",
  2495. headers: {
  2496. post: {
  2497. "Content-Type": "application/x-www-form-urlencoded"
  2498. }
  2499. }
  2500. });
  2501. const geetest_http = axios.create({
  2502. baseURL: "https://api.geetest.com",
  2503. timeout: 5000,
  2504. headers: {
  2505. post: {
  2506. "Content-Type": "application/x-www-form-urlencoded"
  2507. }
  2508. }
  2509. });
  2510. // 请求拦截器
  2511. http.interceptors.request.use((config) => {
  2512. // 避免浏览器对请求进行缓存
  2513. config.params = {
  2514. ...config.params,
  2515. wts:1,
  2516. w_rid:'1'
  2517. };
  2518. return config;
  2519. });
  2520. // getInfo=>activity_id
  2521. // 获取info所需的参数
  2522. const params = {
  2523. task_id: new URLSearchParams(window.location.search).get("task_id") || "",
  2524. web_location: document.querySelector('meta[name="spm_prefix"]').content || ""
  2525. };
  2526. // 获取activity_id
  2527. setTimeout(async()=>{
  2528. let activity_id = await
  2529. http
  2530. .get("/x/activity_components/mission/info", {
  2531. params: {
  2532. ...params
  2533. }
  2534. })
  2535. .then(function(response) {
  2536. console.log("activity_id:"+response.data.data.act_id)
  2537. return response.data.data.act_id;
  2538. })
  2539. .catch(function(error) {
  2540. console.log(error);
  2541. });
  2542. // receive
  2543. // 获取voucher
  2544. let voucher = await
  2545. http
  2546. .post("/x/activity_components/mission/receive", {
  2547. task_id: new URLSearchParams(window.location.search).get("task_id") || "",
  2548. activity_id,
  2549. activity_name: "",
  2550. task_name: "",
  2551. reward_name: "",
  2552. gaia_vtoken: "",
  2553. receive_from: "missionPage",
  2554. csrf: getCookie("bili_jct") || ""
  2555. })
  2556. .then(function(response) {
  2557. let code = response.data.code || 114514;
  2558. let info = response.data.message || "......";
  2559. if (code >= 202100) {
  2560. console.log(`%c${code}:${info}`, "font-size: 10px; color: red;");
  2561. return code===202100?response.data.data:''
  2562. } else if (code === 75086) {
  2563. console.log(`%c${code}:${info}`, "font-size: 15px; color: green;");
  2564. } else {
  2565. console.log(
  2566. `%c${code}:${info}`,
  2567. "font-size: 10px; color: orange;"
  2568. );
  2569. }
  2570. })
  2571. .catch(function(error) {
  2572. console.log(error);
  2573. });
  2574. // register
  2575. let {challenge,gt,token} = await
  2576. http.post("/x/gaia-vgate/v1/register",{
  2577. csrf:getCookie('bili_jct') || '',
  2578. v_voucher:voucher
  2579. })
  2580. .then(function(response){
  2581. return {
  2582. challenge:response.data.data.geetest.challenge||'',
  2583. gt:response.data.data.geetest.gt||'',
  2584. token:response.data.data.token || '',
  2585. }
  2586. })
  2587. .catch(function(error){
  2588. console.log(error)
  2589. })
  2590. // gettype.php
  2591. console.log('challenge:'+challenge)
  2592. console.log('gt:'+gt)
  2593. console.log('token:'+token)
  2594. await geetest_http
  2595. .get("/gettype.php", {
  2596. params:{
  2597. gt,
  2598. callback:"geetest_" + (parseInt(1e4 * Math.random()) + new Date().getTime())
  2599. }
  2600. })
  2601. .then(function(response) {
  2602. // console.log(response.data)
  2603. })
  2604. .catch(function(error) {
  2605. console.log(error);
  2606. });
  2607. // get.php
  2608. await geetest_http
  2609. .get("/get.php", {
  2610. params:{
  2611. gt,
  2612. challenge,
  2613. lang:"zh-cn",
  2614. pt:0,
  2615. client_type:'web',
  2616. w:'',
  2617. callback:"geetest_" + (parseInt(1e4 * Math.random()) + new Date().getTime())
  2618. }
  2619. })
  2620. .then(function(response) {
  2621. // console.log(response.data)
  2622. })
  2623. .catch(function(error) {
  2624. console.log(error);
  2625. });
  2626. // ajax.php
  2627. await geetest_http
  2628. .get("/ajax.php", {
  2629. params:{
  2630. gt,
  2631. challenge,
  2632. lang:"zh-cn",
  2633. pt:0,
  2634. client_type:'web',
  2635. w:'',
  2636. callback:"geetest_" + (parseInt(1e4 * Math.random()) + new Date().getTime())
  2637. }
  2638. })
  2639. .then(function(response) {
  2640. // console.log(response.data)
  2641. })
  2642. .catch(function(error) {
  2643. console.log(error);
  2644. });
  2645.  
  2646. // click.js
  2647. // 略
  2648. // get.php?is_next,获取c,s,img_url值
  2649. // 1、通过c,s,img_url得到加密后的w值
  2650. // 2、通过第三方服务器获取img的文字坐标
  2651. // 3、处理成geetest需要的格式
  2652. // 4、发送ajax.php获取validation
  2653. // 5、将validation发给b站
  2654. // 通过unsafeWindow访问window对象,将geetest的重要参数挂载到其身上
  2655. let callback_name = "geetest_" + (parseInt(1e4 * Math.random()) + new Date().getTime())
  2656. console.log("callback_name:"+callback_name)
  2657. //
  2658. unsafeWindow[callback_name] = function(obj){
  2659. this.geetestParams = {...obj}
  2660. }
  2661. await
  2662. geetest_http
  2663. .get("/get.php", {
  2664. params:{
  2665. is_next: true,
  2666. type: "click",
  2667. gt,
  2668. challenge,
  2669. lang: "zh-cn",
  2670. https: false,
  2671. protocol: "https://",
  2672. offline: false,
  2673. product: "embed",
  2674. api_server: "api.geetest.com",
  2675. isPC: true,
  2676. autoReset: true,
  2677. width: "100%",
  2678. callback: callback_name
  2679. }
  2680. })
  2681. .then(function(response) {
  2682. // jsonP函数执行获取
  2683. const s = document.createElement('script')
  2684. s.innerHTML = `${response.data}`
  2685. document.body.appendChild(s)
  2686. // 释放不再使用的函数
  2687. delete unsafeWindow[callback_name]
  2688. // size:344*384
  2689. let geetest_pic = "https://static.geetest.com"+unsafeWindow.geetestParams.data.pic
  2690. let geetest_c = unsafeWindow.geetestParams.data.c
  2691. let geetest_s= unsafeWindow.geetestParams.data.s
  2692.  
  2693.  
  2694. axios.post("http://127.0.0.1:8000/clickOn",{
  2695. dataType:1,//图片类型为url
  2696. imageSource:geetest_pic,//图片链接
  2697. imageID:"1",//可选
  2698. })
  2699. .then((response)=>{
  2700. let coordinates = response.data.data.res
  2701. console.log("pic_url:"+unsafeWindow.geetestParams.data.pic)
  2702. console.log("c值:"+unsafeWindow.geetestParams.data.c)
  2703. console.log("s值:"+unsafeWindow.geetestParams.data.s)
  2704. // getW对应参数:click,xy,img_url,c,s,gt,challenge,passtime
  2705. // click已给出、xy格式:'1788_123,4511_5112',以扩大为10000^2的图片尺寸为标准、passtime:请求响应时间,单位ms
  2706. console.log("w值:"+getW(click, '1788_123,4511_5112', geetest_pic, geetest_c, geetest_s, gt, challenge, 888));
  2707. // getCoordinates,获取文字坐标
  2708. console.log("文字坐标:"+coordinates)
  2709. console.log("格式化文字坐标:"+formatTextCoordinates(coordinates))
  2710. return formatTextCoordinates(coordinates)
  2711. }).then(function(result){
  2712. // ajax.php
  2713. // 定时器避免验证通过太快
  2714. setTimeout(function(){
  2715. let callback_name = "geetest_" + (parseInt(1e4 * Math.random()) + new Date().getTime())
  2716. console.log("callback_name:"+callback_name)
  2717.  
  2718. unsafeWindow[callback_name] = function(obj){
  2719. this.geetestParams = {...obj}
  2720. }
  2721. geetest_http
  2722. .get("/ajax.php", {
  2723. params:{
  2724. gt,
  2725. challenge,
  2726. lang:"zh-cn",
  2727. pt:0,
  2728. client_type:'web',
  2729. w:getW(click, result, geetest_pic, geetest_c, geetest_s, gt, challenge, 888),
  2730. callback:callback_name,
  2731. }
  2732. })
  2733. .then(function(response) {
  2734. // 如果fail了
  2735. // 向refresh.php发get请求重新获取img_url重新生成w
  2736. // gt=&challenge=&lang=zh-cn&type=click&callback=
  2737. // 如果success
  2738. // 向https://api.bilibili.com/x/gaia-vgate/v1/validate发post请求
  2739. // challenge=&csrf=&seccode=&token=&validate=
  2740. // seccode = validate+'|jordan',token、gt、challenge都是register时获取
  2741. // validate响应成功后
  2742. // 再次向reset.php发送get请求注销gt和challenge
  2743. // gt=&challenge=&lang=zh-cn&w=&pt=0&client_type=web&callback=
  2744. // 这里只发送validate请求
  2745. //
  2746. // jsonP函数执行获取
  2747. const s = document.createElement('script')
  2748. s.innerHTML = `${response.data}`
  2749. document.body.appendChild(s)
  2750. // 释放不再使用的函数
  2751. delete unsafeWindow[callback_name]
  2752. // size:344*384
  2753. let validate = unsafeWindow.geetestParams.data.validate
  2754. console.log(validate)
  2755. http.post("/x/gaia-vgate/v1/validate",{
  2756. challenge,
  2757. csrf:getCookie('bili_jct') || '',
  2758. seccode:validate+'|jordan',
  2759. token,
  2760. validate,
  2761. }).then(function(response){console.log(response.data)})
  2762. })
  2763. .catch(function(error) {
  2764. console.log(error);
  2765. });
  2766. },2000)
  2767. })
  2768. })
  2769. .catch(function(error) {
  2770. console.log(error);
  2771. });
  2772. },1100)
  2773. })();