specific-ai-cli 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +177 -0
  3. package/README.ja.md +177 -0
  4. package/README.ko.md +177 -0
  5. package/README.md +174 -2
  6. package/README.zh-TW.md +177 -0
  7. package/assets/banner.txt +3 -0
  8. package/dist/cli/argv.js +98 -0
  9. package/dist/cli/commands/auth.js +11 -0
  10. package/dist/cli/commands/config.js +23 -0
  11. package/dist/cli/commands/doctor.js +134 -0
  12. package/dist/cli/commands/platforms.js +24 -0
  13. package/dist/cli/commands/version.js +4 -0
  14. package/dist/cli/confirm.js +22 -0
  15. package/dist/cli/dispatch.js +440 -0
  16. package/dist/cli/help.js +223 -0
  17. package/dist/cli/hints.js +60 -0
  18. package/dist/cli/main.js +18 -0
  19. package/dist/cli/output.js +66 -0
  20. package/dist/core/auth-handlers.js +41 -0
  21. package/dist/core/auth-store.js +119 -0
  22. package/dist/core/capabilities.js +163 -0
  23. package/dist/core/config.js +121 -0
  24. package/dist/core/cookies.js +164 -0
  25. package/dist/core/errors.js +37 -0
  26. package/dist/core/files.js +89 -0
  27. package/dist/core/fsutil.js +52 -0
  28. package/dist/core/hash.js +4 -0
  29. package/dist/core/http.js +331 -0
  30. package/dist/core/image.js +280 -0
  31. package/dist/core/log.js +40 -0
  32. package/dist/core/login.js +191 -0
  33. package/dist/core/mp4.js +130 -0
  34. package/dist/core/normalize.js +207 -0
  35. package/dist/core/options.js +110 -0
  36. package/dist/core/paths.js +38 -0
  37. package/dist/core/pb.js +59 -0
  38. package/dist/core/py.js +181 -0
  39. package/dist/core/rand.js +131 -0
  40. package/dist/core/registry.js +129 -0
  41. package/dist/core/schemas.js +41 -0
  42. package/dist/core/stream.js +104 -0
  43. package/dist/core/toolkit.js +35 -0
  44. package/dist/core/vm.js +73 -0
  45. package/dist/core/vocab.js +157 -0
  46. package/dist/platforms/_shared/impaas.js +410 -0
  47. package/dist/platforms/bilibili/index.js +216 -0
  48. package/dist/platforms/bilibili/web/api.js +806 -0
  49. package/dist/platforms/bilibili/web/client.js +311 -0
  50. package/dist/platforms/bilibili/web/commands.js +783 -0
  51. package/dist/platforms/bilibili/web/ddddocr.js +342 -0
  52. package/dist/platforms/bilibili/web/gaia.js +130 -0
  53. package/dist/platforms/bilibili/web/geetest-manual.js +154 -0
  54. package/dist/platforms/bilibili/web/geetest-vision.js +232 -0
  55. package/dist/platforms/bilibili/web/geetest.js +450 -0
  56. package/dist/platforms/bilibili/web/normalize.js +234 -0
  57. package/dist/platforms/bilibili/web/profile.js +135 -0
  58. package/dist/platforms/bilibili/web/resolve.js +112 -0
  59. package/dist/platforms/bilibili/web/sign.js +223 -0
  60. package/dist/platforms/bilibili/web/upos.js +102 -0
  61. package/dist/platforms/douyin/index.js +142 -0
  62. package/dist/platforms/douyin/web/api.js +863 -0
  63. package/dist/platforms/douyin/web/client.js +413 -0
  64. package/dist/platforms/douyin/web/commands.js +712 -0
  65. package/dist/platforms/douyin/web/creator.js +601 -0
  66. package/dist/platforms/douyin/web/crypto.js +247 -0
  67. package/dist/platforms/douyin/web/dtrait.js +190 -0
  68. package/dist/platforms/douyin/web/im.js +502 -0
  69. package/dist/platforms/douyin/web/image.js +5 -0
  70. package/dist/platforms/douyin/web/live.js +225 -0
  71. package/dist/platforms/douyin/web/mssdk.js +148 -0
  72. package/dist/platforms/douyin/web/normalize.js +326 -0
  73. package/dist/platforms/douyin/web/passport.js +1247 -0
  74. package/dist/platforms/douyin/web/profile.js +221 -0
  75. package/dist/platforms/douyin/web/proto.js +26 -0
  76. package/dist/platforms/douyin/web/resolve.js +88 -0
  77. package/dist/platforms/douyin/web/sign.js +436 -0
  78. package/dist/platforms/douyin/web/tos.js +78 -0
  79. package/dist/platforms/index.js +17 -0
  80. package/dist/platforms/jd/index.js +67 -0
  81. package/dist/platforms/jd/web/aks.js +115 -0
  82. package/dist/platforms/jd/web/api.js +549 -0
  83. package/dist/platforms/jd/web/chat.js +132 -0
  84. package/dist/platforms/jd/web/client.js +470 -0
  85. package/dist/platforms/jd/web/commands.js +557 -0
  86. package/dist/platforms/jd/web/jcap/helper.js +90 -0
  87. package/dist/platforms/jd/web/jcap/host.js +107 -0
  88. package/dist/platforms/jd/web/jcap/lsd.js +300 -0
  89. package/dist/platforms/jd/web/jcap/solver.js +995 -0
  90. package/dist/platforms/jd/web/jcap.js +150 -0
  91. package/dist/platforms/jd/web/js.js +420 -0
  92. package/dist/platforms/jd/web/login.js +775 -0
  93. package/dist/platforms/jd/web/normalize.js +297 -0
  94. package/dist/platforms/jd/web/profile.js +256 -0
  95. package/dist/platforms/jd/web/util.js +175 -0
  96. package/dist/platforms/jd/web/webm.js +133 -0
  97. package/dist/platforms/kuaishou/index.js +98 -0
  98. package/dist/platforms/kuaishou/web/api.js +694 -0
  99. package/dist/platforms/kuaishou/web/captcha-crypto.js +134 -0
  100. package/dist/platforms/kuaishou/web/captcha-fp.js +180 -0
  101. package/dist/platforms/kuaishou/web/captcha.js +273 -0
  102. package/dist/platforms/kuaishou/web/client.js +487 -0
  103. package/dist/platforms/kuaishou/web/commands.js +863 -0
  104. package/dist/platforms/kuaishou/web/gap.js +144 -0
  105. package/dist/platforms/kuaishou/web/gdfp.js +376 -0
  106. package/dist/platforms/kuaishou/web/gql.js +11 -0
  107. package/dist/platforms/kuaishou/web/live.js +125 -0
  108. package/dist/platforms/kuaishou/web/normalize.js +241 -0
  109. package/dist/platforms/kuaishou/web/oracle.js +329 -0
  110. package/dist/platforms/kuaishou/web/profile.js +259 -0
  111. package/dist/platforms/kuaishou/web/resolve.js +84 -0
  112. package/dist/platforms/kuaishou/web/session.js +592 -0
  113. package/dist/platforms/kuaishou/web/sign.js +568 -0
  114. package/dist/platforms/taobao/index.js +56 -0
  115. package/dist/platforms/taobao/web/api.js +96 -0
  116. package/dist/platforms/taobao/web/client.js +102 -0
  117. package/dist/platforms/taobao/web/commands.js +172 -0
  118. package/dist/platforms/taobao/web/im.js +68 -0
  119. package/dist/platforms/taobao/web/normalize.js +103 -0
  120. package/dist/platforms/taobao/web/profile.js +85 -0
  121. package/dist/platforms/taobao/web/resolve.js +51 -0
  122. package/dist/platforms/taobao/web/sign.js +35 -0
  123. package/dist/platforms/tiktok/index.js +120 -0
  124. package/dist/platforms/tiktok/web/api.js +1234 -0
  125. package/dist/platforms/tiktok/web/client.js +362 -0
  126. package/dist/platforms/tiktok/web/commands.js +821 -0
  127. package/dist/platforms/tiktok/web/im.js +133 -0
  128. package/dist/platforms/tiktok/web/jsrun.js +126 -0
  129. package/dist/platforms/tiktok/web/normalize.js +286 -0
  130. package/dist/platforms/tiktok/web/profile.js +169 -0
  131. package/dist/platforms/tiktok/web/resolve.js +156 -0
  132. package/dist/platforms/tiktok/web/sign.js +585 -0
  133. package/dist/platforms/tiktok/web/upload.js +805 -0
  134. package/dist/platforms/tiktok/web/wire.js +490 -0
  135. package/dist/platforms/weibo/index.js +91 -0
  136. package/dist/platforms/weibo/web/api.js +206 -0
  137. package/dist/platforms/weibo/web/client.js +155 -0
  138. package/dist/platforms/weibo/web/commands.js +202 -0
  139. package/dist/platforms/weibo/web/normalize.js +137 -0
  140. package/dist/platforms/weibo/web/profile.js +246 -0
  141. package/dist/platforms/weibo/web/resolve.js +60 -0
  142. package/dist/platforms/weibo/web/sign.js +85 -0
  143. package/dist/platforms/x/index.js +107 -0
  144. package/dist/platforms/x/web/api.js +443 -0
  145. package/dist/platforms/x/web/article.js +212 -0
  146. package/dist/platforms/x/web/client.js +202 -0
  147. package/dist/platforms/x/web/commands.js +363 -0
  148. package/dist/platforms/x/web/graphql.js +108 -0
  149. package/dist/platforms/x/web/normalize.js +235 -0
  150. package/dist/platforms/x/web/profile.js +99 -0
  151. package/dist/platforms/x/web/resolve.js +44 -0
  152. package/dist/platforms/x/web/transaction.js +171 -0
  153. package/dist/platforms/xhs/index.js +101 -0
  154. package/dist/platforms/xhs/web/api.js +278 -0
  155. package/dist/platforms/xhs/web/client.js +540 -0
  156. package/dist/platforms/xhs/web/commands.js +1046 -0
  157. package/dist/platforms/xhs/web/creator-api.js +609 -0
  158. package/dist/platforms/xhs/web/creator.js +203 -0
  159. package/dist/platforms/xhs/web/js.js +194 -0
  160. package/dist/platforms/xhs/web/login.js +230 -0
  161. package/dist/platforms/xhs/web/normalize.js +166 -0
  162. package/dist/platforms/xhs/web/profile.js +127 -0
  163. package/dist/platforms/xhs/web/push.js +361 -0
  164. package/dist/platforms/xhs/web/resolve.js +69 -0
  165. package/dist/platforms/xhs/web/state.js +368 -0
  166. package/dist/platforms/xianyu/index.js +59 -0
  167. package/dist/platforms/xianyu/web/api.js +312 -0
  168. package/dist/platforms/xianyu/web/client.js +134 -0
  169. package/dist/platforms/xianyu/web/commands.js +305 -0
  170. package/dist/platforms/xianyu/web/im.js +73 -0
  171. package/dist/platforms/xianyu/web/normalize.js +123 -0
  172. package/dist/platforms/xianyu/web/profile.js +146 -0
  173. package/dist/platforms/xianyu/web/resolve.js +48 -0
  174. package/dist/platforms/xianyu/web/sign.js +79 -0
  175. package/package.json +77 -4
  176. package/static/douyin/Live.proto +194 -0
  177. package/static/douyin/Request.proto +89 -0
  178. package/static/douyin/Response.proto +46 -0
  179. package/static/douyin/acrawler_runtime/ac_vm.js +2 -0
  180. package/static/douyin/acrawler_runtime/browser_window_shape.json +1 -0
  181. package/static/douyin/acrawler_runtime/canvas_actual_exact.json +1 -0
  182. package/static/douyin/acrawler_runtime/run_ac_node.js +1005 -0
  183. package/static/douyin/acrawler_runtime/runner_window_keys_baseline.txt +240 -0
  184. package/static/douyin/challenge_profile.json +801 -0
  185. package/static/douyin/challenge_template_runner.js +217 -0
  186. package/static/douyin/dtrait_profile.json +66 -0
  187. package/static/douyin/mstoken_common_profile.json +1 -0
  188. package/static/douyin/mstoken_profile.json +214 -0
  189. package/static/jd/h5st5_env.js +750 -0
  190. package/static/jd/h5st5_lib.js +5 -0
  191. package/static/jd/h5st5_server.js +49 -0
  192. package/static/jd/jcap/env/env_core.js +512 -0
  193. package/static/jd/jcap/env/run.js +1307 -0
  194. package/static/jd/jcap/run/jcap_ujb96b.js +39 -0
  195. package/static/jd/package.json +4 -0
  196. package/static/jd/pc_tk_lib.js +1 -0
  197. package/static/jd/pc_tk_server.js +63 -0
  198. package/static/jd/summer_cryptico_runner.js +50 -0
  199. package/static/jd/webm/env/run.js +453 -0
  200. package/static/jd/webm/run/jdwebm-riskhandle.js +49 -0
  201. package/static/kuaishou/bundles/weapon/kwf-0.0.2.2cee19b4b7dec496.js +1 -0
  202. package/static/kuaishou/bundles/weapon/kws-0-0.0.1-obfuscated.4b7f3de1ab0ddcc2.js +1 -0
  203. package/static/kuaishou/bundles/weapon/kws-1-0.0.1-obfuscated.346ebdb1c78df316.js +1 -0
  204. package/static/kuaishou/bundles/weapon/kws-10-0.0.1-obfuscated.a33db41897b983af.js +1 -0
  205. package/static/kuaishou/bundles/weapon/kws-11-0.0.1-obfuscated.5e0a90af726d8a7e.js +1 -0
  206. package/static/kuaishou/bundles/weapon/kws-12-0.0.1-obfuscated.20ea29345706ec8c.js +1 -0
  207. package/static/kuaishou/bundles/weapon/kws-13-0.0.1-obfuscated.6b74e9640ff18648.js +1 -0
  208. package/static/kuaishou/bundles/weapon/kws-14-0.0.1-obfuscated.551e4429d156bf66.js +1 -0
  209. package/static/kuaishou/bundles/weapon/kws-15-0.0.1-obfuscated.8625b087aaba4a60.js +1 -0
  210. package/static/kuaishou/bundles/weapon/kws-16-0.0.1-obfuscated.d5ffa4020f3be99a.js +1 -0
  211. package/static/kuaishou/bundles/weapon/kws-17-0.0.1-obfuscated.6d13e19b22f50a80.js +1 -0
  212. package/static/kuaishou/bundles/weapon/kws-18-0.0.1-obfuscated.6d31405044166289.js +1 -0
  213. package/static/kuaishou/bundles/weapon/kws-19-0.0.1-obfuscated.a9a8d925942f19e4.js +1 -0
  214. package/static/kuaishou/bundles/weapon/kws-2-0.0.1-obfuscated.b849a136ae4a6b3e.js +1 -0
  215. package/static/kuaishou/bundles/weapon/kws-3-0.0.1-obfuscated.f9e77ebf6186e2ac.js +1 -0
  216. package/static/kuaishou/bundles/weapon/kws-4-0.0.1-obfuscated.2c3c155aa52ceb0e.js +1 -0
  217. package/static/kuaishou/bundles/weapon/kws-5-0.0.1-obfuscated.4e553d17691b3c5a.js +1 -0
  218. package/static/kuaishou/bundles/weapon/kws-6-0.0.1-obfuscated.f73ddd3ff13e1217.js +1 -0
  219. package/static/kuaishou/bundles/weapon/kws-7-0.0.1-obfuscated.1628b8729beaab7e.js +1 -0
  220. package/static/kuaishou/bundles/weapon/kws-8-0.0.1-obfuscated.6da6baef7aa81fff.js +1 -0
  221. package/static/kuaishou/bundles/weapon/kws-9-0.0.1-obfuscated.8645d55e5323b743.js +1 -0
  222. package/static/kuaishou/fixtures/current_follow_script_813.network-response +2 -0
  223. package/static/kuaishou/fixtures/live_ws_maps.json +61 -0
  224. package/static/kuaishou/fixtures/live_ws_proto.json +1342 -0
  225. package/static/kuaishou/js/cp-kwf.js +1 -0
  226. package/static/kuaishou/tools/kwf_oracle.js +799 -0
  227. package/static/kuaishou/tools/kws_oracle.js +885 -0
  228. package/static/kuaishou/tools/like_token_oracle.js +70 -0
  229. package/static/taobao/taobao_js_20260407.js +570 -0
  230. package/static/tiktok/Tiktok_Request.json +597 -0
  231. package/static/tiktok/package.json +3 -0
  232. package/static/tiktok/shop_bsid/core.js +1 -0
  233. package/static/tiktok/shop_bsid/env_core.js +512 -0
  234. package/static/tiktok/shop_bsid/loader.js +1 -0
  235. package/static/tiktok/shop_bsid/run.js +753 -0
  236. package/static/tiktok/shop_bsid/sign.js +100 -0
  237. package/static/tiktok/shop_bsid/webmssdk.js +1 -0
  238. package/static/tiktok/shop_bsid/webmssdk_ex.js +1 -0
  239. package/static/tiktok/signing/env/env_core.js +512 -0
  240. package/static/tiktok/signing/env/sign.js +455 -0
  241. package/static/tiktok/signing/sdk_config.json +230 -0
  242. package/static/tiktok/signing/source/webmssdk.js +1 -0
  243. package/static/tiktok/signing/source/webmssdk_ex.js +1 -0
  244. package/static/tiktok/signing/source/webmssdk_legacy.js +1 -0
  245. package/static/x/graphql.json +7777 -0
  246. package/static/x/transaction_l1.json +12 -0
  247. package/static/xhs/package.json +3 -0
  248. package/static/xhs/xhs_core/js/b1.js +210 -0
  249. package/static/xhs/xhs_core/js/mns.js +340 -0
  250. package/static/xhs/xhs_core/js/mns_0101_keystream.json +5 -0
  251. package/static/xhs/xhs_core/js/mns_keystreams.json +1 -0
  252. package/static/xhs/xhs_core/js/sign.js +225 -0
  253. package/static/xhs/xhs_core/js/websectiga_cli.js +220 -0
  254. package/static/xhs/xhs_core/js/websectiga_env.js +512 -0
  255. package/static/xhs/xhs_core/js/xs_common.js +79 -0
  256. package/static/xhs/xhs_creator/js/profile.js +115 -0
  257. package/static/xhs/xhs_creator/js/rap_fingerprint_creator.json +6 -0
  258. package/static/xhs/xhs_creator/js/reference_profile.json +282 -0
  259. package/static/xhs/xhs_creator/js/xhs_creator_sign.js +29 -0
  260. package/static/xhs/xhs_creator/js/xhs_creator_signature.js +23 -0
  261. package/static/xhs/xhs_pc/js/aes_decrypt.js +22 -0
  262. package/static/xhs/xhs_pc/js/aes_encrypt.js +30 -0
  263. package/static/xhs/xhs_pc/js/b1.js +9 -0
  264. package/static/xhs/xhs_pc/js/deflate.js +320 -0
  265. package/static/xhs/xhs_pc/js/mns.js +4 -0
  266. package/static/xhs/xhs_pc/js/profile.js +141 -0
  267. package/static/xhs/xhs_pc/js/rap.js +173 -0
  268. package/static/xhs/xhs_pc/js/rap_cli.js +30 -0
  269. package/static/xhs/xhs_pc/js/rap_crypto.js +73 -0
  270. package/static/xhs/xhs_pc/js/rap_fingerprint_template.json +8 -0
  271. package/static/xhs/xhs_pc/js/reference_profile.json +262 -0
  272. package/static/xhs/xhs_pc/js/sign.js +6 -0
  273. package/static/xhs/xhs_pc/js/web_ssk.js +82 -0
  274. package/static/xhs/xhs_pc/js/xs_common.js +4 -0
  275. package/static/xianyu/et_f.js +2 -0
  276. package/static/xianyu/gen_tfstk.js +410 -0
  277. package/static/xianyu/goofish_js_version_2.js +568 -0
@@ -0,0 +1,70 @@
1
+ #!/usr/bin/env node
2
+ /*
3
+ * Generate the myFollow likeData token with the exact VMP engine loaded by
4
+ * Chrome. The bundle is a captured browser asset, never a browser session:
5
+ * it contains webpack module 4953 (sorted values joined by ':') and module
6
+ * 41cb (the $encode engine). No Cookie/header is read here.
7
+ *
8
+ * stdin: {"did":"...","ts":1787590832257,"uri":"/rest/v/feed/myfollow"}
9
+ * stdout: the 56-character token only
10
+ */
11
+ const fs = require("fs");
12
+ const path = require("path");
13
+ const vm = require("vm");
14
+
15
+ const bundle = path.join(__dirname, "..", "fixtures",
16
+ "current_follow_script_813.network-response");
17
+
18
+ function loadModules() {
19
+ if (!fs.existsSync(bundle)) throw new Error(`missing captured bundle: ${bundle}`);
20
+ const source = fs.readFileSync(bundle, "utf8");
21
+ let modules;
22
+ const sandbox = {
23
+ window: { webpackJsonp: { push(value) { modules = value[1]; } } },
24
+ console: { log() {}, warn() {}, error() {}, info() {}, debug() {} },
25
+ setTimeout, clearTimeout, Buffer,
26
+ };
27
+ sandbox.self = sandbox.window;
28
+ vm.createContext(sandbox);
29
+ vm.runInContext(source, sandbox, { timeout: 20000 });
30
+ if (!modules || typeof modules["41cb"] !== "function") {
31
+ throw new Error("captured bundle has no module 41cb");
32
+ }
33
+
34
+ const cache = {};
35
+ function requireModule(id) {
36
+ // module 4953 only tests the browser bridge flag; the actual engine is
37
+ // module 41cb. 6984 is the browserify global shim used by that module.
38
+ if (id === "6c3d") return { a: true };
39
+ if (id === "6984") return (value) => value;
40
+ if (cache[id]) return cache[id].exports;
41
+ if (typeof modules[id] !== "function") throw new Error(`missing module ${id}`);
42
+ const module = { exports: {} };
43
+ cache[id] = module;
44
+ modules[id](module, module.exports, requireModule);
45
+ return module.exports;
46
+ }
47
+ // webpack helpers used by module 4953.
48
+ requireModule.d = (exports, name, getter) => {
49
+ if (!Object.prototype.hasOwnProperty.call(exports, name)) {
50
+ Object.defineProperty(exports, name, { enumerable: true, get: getter });
51
+ }
52
+ };
53
+ return requireModule("4953");
54
+ }
55
+
56
+ function main() {
57
+ const input = JSON.parse(fs.readFileSync(0, "utf8"));
58
+ const did = String(input.did || "");
59
+ const ts = Number(input.ts);
60
+ const uri = String(input.uri || "/rest/v/feed/myfollow");
61
+ if (!Number.isFinite(ts)) throw new Error("ts must be a finite number");
62
+ const signer = loadModules();
63
+ const token = signer.a({ did, ts, uri });
64
+ if (typeof token !== "string" || !/^[0-9a-f]{56}$/.test(token)) {
65
+ throw new Error(`unexpected token output: ${String(token)}`);
66
+ }
67
+ process.stdout.write(token);
68
+ }
69
+
70
+ main();
@@ -0,0 +1,570 @@
1
+ const crypto = require('crypto')
2
+
3
+ const generate_mid = () => {
4
+ return "" + Math.floor(1e3 * Math.random()) + new Date().getTime() + " 0"
5
+ }
6
+
7
+ const generate_uuid = () => {
8
+ return "_s_" + Date.now() + "_1"
9
+ }
10
+
11
+ const generate_device_id = (user_id) => {
12
+ for (var ee, et = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), en = [], eo = Math.random, ei = 0; ei < 36; ei++)
13
+ 8 === ei || 13 === ei || 18 === ei || 23 === ei ? en[ei] = "-" : 14 === ei ? en[ei] = "4" : (ee = 0 | 16 * eo(),
14
+ en[ei] = et[19 === ei ? 3 & ee | 8 : ee]);
15
+ en = en.join("")
16
+ en = en.replace(/-/g, "")
17
+ return en + "-" + new Date().getTime()
18
+ }
19
+
20
+
21
+ const generate_sign = (t, token, data) => {
22
+ const j = t
23
+ const h = 12574478
24
+ const msg = token + "&" + j + "&" + h + "&" + data
25
+ const md5 = crypto.createHash('md5')
26
+ md5.update(msg)
27
+ return md5.digest('hex')
28
+ }
29
+ eM = new TextDecoder("utf-8");
30
+ eL = null
31
+ var sv = Array(4096);
32
+
33
+ function sg() {
34
+ var ee, et = eI[aG++];
35
+ if (!(et >= 160) || !(et < 192))
36
+ return aG--,
37
+ sy(a5());
38
+ if (et -= 160,
39
+ aX >= aG)
40
+ return eR.slice(aG - aq, (aG += et) - aq);
41
+ if (!(0 == aX && eO < 180))
42
+ return se(et);
43
+ var en = (et << 5 ^ (et > 1 ? eZ.getUint16(aG) : et > 0 ? eI[aG] : 0)) & 4095
44
+ , eo = sv[en]
45
+ , ei = aG
46
+ , ec = aG + et - 3
47
+ , eu = 0;
48
+ if (eo && eo.bytes == et) {
49
+ for (; ei < ec;) {
50
+ if ((ee = eZ.getUint32(ei)) != eo[eu++]) {
51
+ ei = 1879048192;
52
+ break
53
+ }
54
+ ei += 4
55
+ }
56
+ for (ec += 3; ei < ec;)
57
+ if ((ee = eI[ei++]) != eo[eu++]) {
58
+ ei = 1879048192;
59
+ break
60
+ }
61
+ if (ei === ec)
62
+ return aG = ei,
63
+ eo.string;
64
+ ec -= 3,
65
+ ei = aG
66
+ }
67
+ for (eo = [],
68
+ sv[en] = eo,
69
+ eo.bytes = et; ei < ec;)
70
+ ee = eZ.getUint32(ei),
71
+ eo.push(ee),
72
+ ei += 4;
73
+ for (ec += 3; ei < ec;)
74
+ ee = eI[ei++],
75
+ eo.push(ee);
76
+ var ed = et < 16 ? su(et) : sl(et);
77
+ return null != ed ? eo.string = ed : eo.string = se(et)
78
+ }
79
+
80
+ function sy(ee) {
81
+ if ("string" == typeof ee)
82
+ return ee;
83
+ if ("number" == typeof ee || "boolean" == typeof ee || "bigint" == typeof ee)
84
+ return ee.toString();
85
+ if (null == ee)
86
+ return ee + "";
87
+ throw Error("Invalid property type for record", typeof ee)
88
+ }
89
+
90
+ r9 = function (ee) {
91
+ return atob(rW(ee))
92
+ }
93
+ rW = function (ee) {
94
+ return ee.replace(/[^A-Za-z0-9\+\/]/g, "")
95
+ }
96
+ aW = {
97
+ "useRecords": false,
98
+ "mapsAsObjects": true
99
+ }
100
+ aJ = false
101
+ eP = []
102
+
103
+ function a3(ee) {
104
+ if (!aW.trusted && !aJ) {
105
+ var et, en, eo = eP.sharedLength || 0;
106
+ eo < eP.length && (eP.length = eo)
107
+ }
108
+ if (aW.randomAccessStructure && eI[aG] < 64 && eI[aG] >= 32 && ej ? (et = ej(eI, aG, eO, aW),
109
+ eI = null,
110
+ !(ee && ee.lazy) && et && (et = et.toJSON()),
111
+ aG = eO) : et = a5(),
112
+ eD && (aG = eD.postBundlePosition,
113
+ eD = null),
114
+ aJ && (eP.restoreStructures = null),
115
+ aG == eO)
116
+ eP && eP.restoreStructures && a4(),
117
+ eP = null,
118
+ eI = null,
119
+ eL && (eL = null);
120
+ else if (aG > eO)
121
+ throw Error("Unexpected end of MessagePack data");
122
+ else if (!aJ) {
123
+ try {
124
+ en = JSON.stringify(et, function (ee, et) {
125
+ return "bigint" == typeof et ? "".concat(et, "n") : et
126
+ }).slice(0, 100)
127
+ } catch (ee) {
128
+ en = "(JSON view not available " + ee + ")"
129
+ }
130
+ throw Error("Data read, but end of buffer not reached " + en)
131
+ }
132
+ return et
133
+
134
+ }
135
+
136
+ function so(ee) {
137
+ if (ee < 16 && (et = su(ee)))
138
+ return et;
139
+ if (ee > 64 && eM)
140
+ return eM.decode(eI.subarray(aG, aG += ee));
141
+ var et, en = aG + ee, eo = [];
142
+ for (et = ""; aG < en;) {
143
+ var ei = eI[aG++];
144
+ if ((128 & ei) === 0)
145
+ eo.push(ei);
146
+ else if ((224 & ei) === 192) {
147
+ var ec = 63 & eI[aG++];
148
+ eo.push((31 & ei) << 6 | ec)
149
+ } else if ((240 & ei) === 224) {
150
+ var eu = 63 & eI[aG++]
151
+ , ed = 63 & eI[aG++];
152
+ eo.push((31 & ei) << 12 | eu << 6 | ed)
153
+ } else if ((248 & ei) === 240) {
154
+ var ef = (7 & ei) << 18 | (63 & eI[aG++]) << 12 | (63 & eI[aG++]) << 6 | 63 & eI[aG++];
155
+ ef > 65535 && (ef -= 65536,
156
+ eo.push(ef >>> 10 & 1023 | 55296),
157
+ ef = 56320 | 1023 & ef),
158
+ eo.push(ef)
159
+ } else
160
+ eo.push(ei);
161
+ eo.length >= 4096 && (et += sc.apply(String, eo),
162
+ eo.length = 0)
163
+ }
164
+ return eo.length > 0 && (et += sc.apply(String, eo)),
165
+ et
166
+ }
167
+
168
+ se = so;
169
+ var sc = String.fromCharCode;
170
+
171
+ function sl(ee) {
172
+ for (var et = aG, en = Array(ee), eo = 0; eo < ee; eo++) {
173
+ var ei = eI[aG++];
174
+ if ((128 & ei) > 0) {
175
+ aG = et;
176
+ return
177
+ }
178
+ en[eo] = ei
179
+ }
180
+ return sc.apply(String, en)
181
+ }
182
+
183
+ function su(ee) {
184
+ if (ee < 4) {
185
+ if (ee < 2) {
186
+ if (0 === ee)
187
+ return "";
188
+ var et = eI[aG++];
189
+ if ((128 & et) > 1) {
190
+ aG -= 1;
191
+ return
192
+ }
193
+ return sc(et)
194
+ }
195
+ var en = eI[aG++]
196
+ , eo = eI[aG++];
197
+ if ((128 & en) > 0 || (128 & eo) > 0) {
198
+ aG -= 2;
199
+ return
200
+ }
201
+ if (ee < 3)
202
+ return sc(en, eo);
203
+ var ei = eI[aG++];
204
+ if ((128 & ei) > 0) {
205
+ aG -= 3;
206
+ return
207
+ }
208
+ return sc(en, eo, ei)
209
+ }
210
+ var ec = eI[aG++]
211
+ , eu = eI[aG++]
212
+ , ed = eI[aG++]
213
+ , ef = eI[aG++];
214
+ if ((128 & ec) > 0 || (128 & eu) > 0 || (128 & ed) > 0 || (128 & ef) > 0) {
215
+ aG -= 4;
216
+ return
217
+ }
218
+ if (ee < 6) {
219
+ if (4 === ee)
220
+ return sc(ec, eu, ed, ef);
221
+ var ep = eI[aG++];
222
+ if ((128 & ep) > 0) {
223
+ aG -= 5;
224
+ return
225
+ }
226
+ return sc(ec, eu, ed, ef, ep)
227
+ }
228
+ if (ee < 8) {
229
+ var em = eI[aG++]
230
+ , eh = eI[aG++];
231
+ if ((128 & em) > 0 || (128 & eh) > 0) {
232
+ aG -= 6;
233
+ return
234
+ }
235
+ if (ee < 7)
236
+ return sc(ec, eu, ed, ef, em, eh);
237
+ var ev = eI[aG++];
238
+ if ((128 & ev) > 0) {
239
+ aG -= 7;
240
+ return
241
+ }
242
+ return sc(ec, eu, ed, ef, em, eh, ev)
243
+ }
244
+ var eg = eI[aG++]
245
+ , eC = eI[aG++]
246
+ , eS = eI[aG++]
247
+ , ew = eI[aG++];
248
+ if ((128 & eg) > 0 || (128 & eC) > 0 || (128 & eS) > 0 || (128 & ew) > 0) {
249
+ aG -= 8;
250
+ return
251
+ }
252
+ if (ee < 10) {
253
+ if (8 === ee)
254
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew);
255
+ var eE = eI[aG++];
256
+ if ((128 & eE) > 0) {
257
+ aG -= 9;
258
+ return
259
+ }
260
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew, eE)
261
+ }
262
+ if (ee < 12) {
263
+ var ek = eI[aG++]
264
+ , e_ = eI[aG++];
265
+ if ((128 & ek) > 0 || (128 & e_) > 0) {
266
+ aG -= 10;
267
+ return
268
+ }
269
+ if (ee < 11)
270
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew, ek, e_);
271
+ var eT = eI[aG++];
272
+ if ((128 & eT) > 0) {
273
+ aG -= 11;
274
+ return
275
+ }
276
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew, ek, e_, eT)
277
+ }
278
+ var eN = eI[aG++]
279
+ , eM = eI[aG++]
280
+ , eO = eI[aG++]
281
+ , eP = eI[aG++];
282
+ if ((128 & eN) > 0 || (128 & eM) > 0 || (128 & eO) > 0 || (128 & eP) > 0) {
283
+ aG -= 12;
284
+ return
285
+ }
286
+ if (ee < 14) {
287
+ if (12 === ee)
288
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP);
289
+ var eR = eI[aG++];
290
+ if ((128 & eR) > 0) {
291
+ aG -= 13;
292
+ return
293
+ }
294
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP, eR)
295
+ }
296
+ var eD = eI[aG++]
297
+ , eL = eI[aG++];
298
+ if ((128 & eD) > 0 || (128 & eL) > 0) {
299
+ aG -= 14;
300
+ return
301
+ }
302
+ if (ee < 15)
303
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP, eD, eL);
304
+ var eZ = eI[aG++];
305
+ if ((128 & eZ) > 0) {
306
+ aG -= 15;
307
+ return
308
+ }
309
+ return sc(ec, eu, ed, ef, eg, eC, eS, ew, eN, eM, eO, eP, eD, eL, eZ)
310
+ }
311
+
312
+ function ss(ee) {
313
+ if (aW.mapsAsObjects) {
314
+ for (var et = {}, en = 0; en < ee; en++) {
315
+ var eo = sg();
316
+ "__proto__" === eo && (eo = "__proto_"),
317
+ et[eo] = a5()
318
+ }
319
+ return et
320
+ }
321
+ for (var ei = new Map, ec = 0; ec < ee; ec++)
322
+ ei.set(a5(), a5());
323
+ return ei
324
+ }
325
+
326
+ function a5() {
327
+ var ee, et = eI[aG++];
328
+ if (et < 160) {
329
+ if (et < 128) {
330
+ if (et < 64)
331
+ return et;
332
+ var en = eP[63 & et] || aW.getStructures && a9()[63 & et];
333
+ return en ? (en.read || (en.read = a8(en, 63 & et)),
334
+ en.read()) : et
335
+ }
336
+ if (et < 144) {
337
+ if (et -= 128,
338
+ aW.mapsAsObjects) {
339
+ for (var eo = {}, ei = 0; ei < et; ei++) {
340
+ var ec = sg();
341
+ "__proto__" === ec && (ec = "__proto_"),
342
+ eo[ec] = a5()
343
+ }
344
+ return eo
345
+ }
346
+ for (var eu = new Map, ed = 0; ed < et; ed++)
347
+ eu.set(a5(), a5());
348
+ return eu
349
+ }
350
+ for (var ef = Array(et -= 144), ep = 0; ep < et; ep++)
351
+ ef[ep] = a5();
352
+ return aW.freezeData ? Object.freeze(ef) : ef
353
+ }
354
+ if (et < 192) {
355
+ var em = et - 160;
356
+ if (aX >= aG)
357
+ return eR.slice(aG - aq, (aG += em) - aq);
358
+ if (0 == aX && eO < 140) {
359
+ var eh = em < 16 ? su(em) : sl(em);
360
+ if (null != eh)
361
+ return eh
362
+ }
363
+ return se(em)
364
+ }
365
+ switch (et) {
366
+ case 192:
367
+ return null;
368
+ case 193:
369
+ if (eD) {
370
+ if ((ee = a5()) > 0)
371
+ return eD[1].slice(eD.position1, eD.position1 += ee);
372
+ return eD[0].slice(eD.position0, eD.position0 -= ee)
373
+ }
374
+ return aY;
375
+ case 194:
376
+ return !1;
377
+ case 195:
378
+ return !0;
379
+ case 196:
380
+ if (void 0 === (ee = eI[aG++]))
381
+ throw Error("Unexpected end of buffer");
382
+ return sm(ee);
383
+ case 197:
384
+ return ee = eZ.getUint16(aG),
385
+ aG += 2,
386
+ sm(ee);
387
+ case 198:
388
+ return ee = eZ.getUint32(aG),
389
+ aG += 4,
390
+ sm(ee);
391
+ case 199:
392
+ return sh(eI[aG++]);
393
+ case 200:
394
+ return ee = eZ.getUint16(aG),
395
+ aG += 2,
396
+ sh(ee);
397
+ case 201:
398
+ return ee = eZ.getUint32(aG),
399
+ aG += 4,
400
+ sh(ee);
401
+ case 202:
402
+ if (ee = eZ.getFloat32(aG),
403
+ aW.useFloat32 > 2) {
404
+ var ev = sT[(127 & eI[aG]) << 1 | eI[aG + 1] >> 7];
405
+ return aG += 4,
406
+ (ev * ee + (ee > 0 ? .5 : -.5) >> 0) / ev
407
+ }
408
+ return aG += 4,
409
+ ee;
410
+ case 203:
411
+ return ee = eZ.getFloat64(aG),
412
+ aG += 8,
413
+ ee;
414
+ case 204:
415
+ return eI[aG++];
416
+ case 205:
417
+ return ee = eZ.getUint16(aG),
418
+ aG += 2,
419
+ ee;
420
+ case 206:
421
+ return ee = eZ.getUint32(aG),
422
+ aG += 4,
423
+ ee;
424
+ case 207:
425
+ return "number" === aW.int64AsType ? ee = 4294967296 * eZ.getUint32(aG) + eZ.getUint32(aG + 4) : "string" === aW.int64AsType ? ee = eZ.getBigUint64(aG).toString() : "auto" === aW.int64AsType ? (ee = eZ.getBigUint64(aG)) <= BigInt(2) << BigInt(52) && (ee = Number(ee)) : ee = eZ.getBigUint64(aG),
426
+ aG += 8,
427
+ ee;
428
+ case 208:
429
+ return eZ.getInt8(aG++);
430
+ case 209:
431
+ return ee = eZ.getInt16(aG),
432
+ aG += 2,
433
+ ee;
434
+ case 210:
435
+ return ee = eZ.getInt32(aG),
436
+ aG += 4,
437
+ ee;
438
+ case 211:
439
+ return "number" === aW.int64AsType ? ee = 4294967296 * eZ.getInt32(aG) + eZ.getUint32(aG + 4) : "string" === aW.int64AsType ? ee = eZ.getBigInt64(aG).toString() : "auto" === aW.int64AsType ? (ee = eZ.getBigInt64(aG)) >= BigInt(-2) << BigInt(52) && ee <= BigInt(2) << BigInt(52) && (ee = Number(ee)) : ee = eZ.getBigInt64(aG),
440
+ aG += 8,
441
+ ee;
442
+ case 212:
443
+ if (114 == (ee = eI[aG++]))
444
+ return sC(63 & eI[aG++]);
445
+ var eg = aK[ee];
446
+ if (eg) {
447
+ if (eg.read)
448
+ return aG++,
449
+ eg.read(a5());
450
+ if (eg.noBuffer)
451
+ return aG++,
452
+ eg();
453
+ return eg(eI.subarray(aG, ++aG))
454
+ }
455
+ throw Error("Unknown extension " + ee);
456
+ case 213:
457
+ if (114 == (ee = eI[aG]))
458
+ return aG++,
459
+ sC(63 & eI[aG++], eI[aG++]);
460
+ return sh(2);
461
+ case 214:
462
+ return sh(4);
463
+ case 215:
464
+ return sh(8);
465
+ case 216:
466
+ return sh(16);
467
+ case 217:
468
+ if (ee = eI[aG++],
469
+ aX >= aG)
470
+ return eR.slice(aG - aq, (aG += ee) - aq);
471
+ return st(ee);
472
+ case 218:
473
+ if (ee = eZ.getUint16(aG),
474
+ aG += 2,
475
+ aX >= aG)
476
+ return eR.slice(aG - aq, (aG += ee) - aq);
477
+ return sn(ee);
478
+ case 219:
479
+ if (ee = eZ.getUint32(aG),
480
+ aG += 4,
481
+ aX >= aG)
482
+ return eR.slice(aG - aq, (aG += ee) - aq);
483
+ return sr(ee);
484
+ case 220:
485
+ return ee = eZ.getUint16(aG),
486
+ aG += 2,
487
+ si(ee);
488
+ case 221:
489
+ return ee = eZ.getUint32(aG),
490
+ aG += 4,
491
+ si(ee);
492
+ case 222:
493
+ return ee = eZ.getUint16(aG),
494
+ aG += 2,
495
+ ss(ee);
496
+ case 223:
497
+ return ee = eZ.getUint32(aG),
498
+ aG += 4,
499
+ ss(ee);
500
+ default:
501
+ if (et >= 224)
502
+ return et - 256;
503
+ if (void 0 === et) {
504
+ var eC = Error("Unexpected end of MessagePack data");
505
+ throw eC.incomplete = !0,
506
+ eC
507
+ }
508
+ throw Error("Unknown MessagePack token " + et)
509
+ }
510
+ }
511
+
512
+ sn = so
513
+ var a6 = /^[a-zA-Z_$][a-zA-Z\d_$]*$/;
514
+ const decrypt = (ee) => {
515
+ for (var et, en, eo = r9(ee), ei = eo.length, ec = new Uint8Array(ei), eu = 0; eu < ei; eu++) {
516
+ var ed = eo.charCodeAt(eu);
517
+ ec[eu] = ed
518
+ }
519
+ en = {}
520
+ et = ec;
521
+ et.buffer || et.constructor !== ArrayBuffer || (et = "undefined" != typeof Buffer ? Buffer.from(et) : new Uint8Array(et)),
522
+ "object" == typeof en ? (eO = en.end || et.length,
523
+ aG = en.start || 0) : (aG = 0,
524
+ eO = en > -1 ? en : et.length),
525
+ aX = 0,
526
+ eR = null,
527
+ eD = null,
528
+ eI = et;
529
+ eM = new TextDecoder("utf-8");
530
+ eL = null
531
+
532
+ eP = [];
533
+ eZ = et.dataView || (et.dataView = new DataView(et.buffer, et.byteOffset, et.byteLength))
534
+ res = a3(en)
535
+ // ec = ecc;
536
+ // rA = 0;
537
+ // rB = 0;
538
+ // ed = [];
539
+ // eu = ec.length;
540
+ // rj = {
541
+ // "useRecords": false,
542
+ // "mapsAsObjects": true
543
+ // }
544
+ // // ei 是 TextDecoder
545
+ // ei = new TextDecoder("utf-8");
546
+ // eh = new DataView(ec.buffer, ec.byteOffset, ec.byteLength);
547
+ // ec.dataView = eh;
548
+ // let res = rK()
549
+ const replacer = (key, value) => {
550
+ if (typeof value === 'bigint') {
551
+ return value.toString();
552
+ }
553
+ return value;
554
+ };
555
+
556
+ res = JSON.stringify(res, replacer);
557
+ return res;
558
+ }
559
+
560
+
561
+ // console.log(generate_mid())
562
+ // console.log(generate_uuid())
563
+ // console.log(generate_device_id())
564
+ // console.log(generate_sign('5f65b00f83994987e334f97360d69557', '{"sessionTypes":"1,19"}'))
565
+ // let msg = "ggGLAYEBtTIyMDI2NDA5MTgwNzlAZ29vZmlzaAKzNDc4MTI4NzAwMDBAZ29vZmlzaAOxMzQwMjM5MTQ3MjUwMy5QTk0EAAXPAAABlYW04bIGggFlA4UBoAKjMTExA6AEAQXaADR7ImF0VXNlcnMiOltdLCJjb250ZW50VHlwZSI6MSwidGV4dCI6eyJ0ZXh0IjoiMTExIn19BwIIAQkACoupX3BsYXRmb3Jtp2FuZHJvaWSmYml6VGFn2gBBeyJzb3VyY2VJZCI6IlM6MSIsIm1lc3NhZ2VJZCI6ImYzNjkwMmVmZjQ1NDQ1YmRiMmQxYjBmZDE2OGY4MjY0In2sZGV0YWlsTm90aWNlozExMadleHRKc29u2gBLeyJxdWlja1JlcGx5IjoiMSIsIm1lc3NhZ2VJZCI6ImYzNjkwMmVmZjQ1NDQ1YmRiMmQxYjBmZDE2OGY4MjY0IiwidGFnIjoidSJ9r3JlbWluZGVyQ29udGVudKMxMTGucmVtaW5kZXJOb3RpY2W15Y+R5p2l5LiA5p2h5paw5raI5oGvrXJlbWluZGVyVGl0bGWmc2hh5L+uq3JlbWluZGVyVXJs2gCbZmxlYW1hcmtldDovL21lc3NhZ2VfY2hhdD9pdGVtSWQ9ODk3NzQyNzQ4MDExJnBlZXJVc2VySWQ9MjIwMjY0MDkxODA3OSZwZWVyVXNlck5pY2s9dCoqKjEmc2lkPTQ3ODEyODcwMDAwJm1lc3NhZ2VJZD1mMzY5MDJlZmY0NTQ0NWJkYjJkMWIwZmQxNjhmODI2NCZhZHY9bm+sc2VuZGVyVXNlcklkrTIyMDI2NDA5MTgwNzmuc2VuZGVyVXNlclR5cGWhMKtzZXNzaW9uVHlwZaExDAEDgahuZWVkUHVzaKR0cnVl";
566
+ //
567
+ // msg = "ggGLAYEBsjMxNDk2MzcwNjNAZ29vZmlzaAKzNDc5ODMzODkwOTZAZ29vZmlzaAOxMzQxNjU2NTI3NDU0Mi5QTk0EAAXPAAABlbKji20GggFlA4UBoAK6W+aIkeW3suaLjeS4i++8jOW+heS7mOasvl0DoAQaBdoEKnsiY29udGVudFR5cGUiOjI2LCJkeENhcmQiOnsiaXRlbSI6eyJtYWluIjp7ImNsaWNrUGFyYW0iOnsiYXJnMSI6Ik1zZ0NhcmQiLCJhcmdzIjp7InNvdXJjZSI6ImltIiwidGFza19pZCI6IjNleFFKSE9UbVBVMSIsIm1zZ19pZCI6ImNjOGJjMmRmN2M5MzRkZjA4NmUwNTY3Y2I2OWYxNTczIn19LCJleENvbnRlbnQiOnsiYmdDb2xvciI6IiNGRkZGRkYiLCJidXR0b24iOnsiYmdDb2xvciI6IiNGRkU2MEYiLCJib3JkZXJDb2xvciI6IiNGRkU2MEYiLCJjbGlja1BhcmFtIjp7ImFyZzEiOiJNc2dDYXJkQWN0aW9uIiwiYXJncyI6eyJzb3VyY2UiOiJpbSIsInRhc2tfaWQiOiIzZXhRSkhPVG1QVTEiLCJtc2dfaWQiOiJjYzhiYzJkZjdjOTM0ZGYwODZlMDU2N2NiNjlmMTU3MyJ9fSwiZm9udENvbG9yIjoiIzMzMzMzMyIsInRhcmdldFVybCI6ImZsZWFtYXJrZXQ6Ly9hZGp1c3RfcHJpY2U/Zmx1dHRlcj10cnVlJmJpek9yZGVySWQ9MjUwMzY4ODEyNjM1NjYzNjM3MCIsInRleHQiOiLkv67mlLnku7fmoLwifSwiZGVzYyI6Iuivt+WPjOaWueayn+mAmuWPiuaXtuehruiupOS7t+agvCIsImRlc2NDb2xvciI6IiNBM0EzQTMiLCJ0aXRsZSI6IuaIkeW3suaLjeS4i++8jOW+heS7mOasviIsInVwZ3JhZGUiOnsidGFyZ2V0VXJsIjoiaHR0cHM6Ly9oNS5tLmdvb2Zpc2guY29tL2FwcC9pZGxlRmlzaC1GMmUvZm0tZG93bmxhb2QvaG9tZS5odG1sP25vUmVkcmllY3Q9dHJ1ZSZjYW5CYWNrPXRydWUmY2hlY2tWZXJzaW9uPXRydWUiLCJ2ZXJzaW9uIjoiNy43LjkwIn19LCJ0YXJnZXRVcmwiOiJmbGVhbWFya2V0Oi8vb3JkZXJfZGV0YWlsP2lkPTI1MDM2ODgxMjYzNTY2MzYzNzAmcm9sZT1zZWxsZXIifX0sInRlbXBsYXRlIjp7Im5hbWUiOiJpZGxlZmlzaF9tZXNzYWdlX3RyYWRlX2NoYXRfY2FyZCIsInVybCI6Imh0dHBzOi8vZGluYW1pY3guYWxpYmFiYXVzZXJjb250ZW50LmNvbS9wdWIvaWRsZWZpc2hfbWVzc2FnZV90cmFkZV9jaGF0X2NhcmQvMTY2NzIyMjA1Mjc2Ny9pZGxlZmlzaF9tZXNzYWdlX3RyYWRlX2NoYXRfY2FyZC56aXAiLCJ2ZXJzaW9uIjoiMTY2NzIyMjA1Mjc2NyJ9fX0HAQgBCQAK3gAQpmJpelRhZ9oAe3sic291cmNlSWQiOiJDMkM6M2V4UUpIT1RtUFUxIiwidGFza05hbWUiOiLlt7Lmi43kuItf5pyq5LuY5qy+X+WNluWutiIsIm1hdGVyaWFsSWQiOiIzZXhRSkhPVG1QVTEiLCJ0YXNrSWQiOiIzZXhRSkhPVG1QVTEifbFjbG9zZVB1c2hSZWNlaXZlcqVmYWxzZbFjbG9zZVVucmVhZE51bWJlcqVmYWxzZaxkZXRhaWxOb3RpY2W6W+aIkeW3suaLjeS4i++8jOW+heS7mOasvl2nZXh0SnNvbtoBr3sibXNnQXJncyI6eyJ0YXNrX2lkIjoiM2V4UUpIT1RtUFUxIiwic291cmNlIjoiaW0iLCJtc2dfaWQiOiJjYzhiYzJkZjdjOTM0ZGYwODZlMDU2N2NiNjlmMTU3MyJ9LCJxdWlja1JlcGx5IjoiMSIsIm1zZ0FyZzEiOiJNc2dDYXJkIiwidXBkYXRlS2V5IjoiNDc5ODMzODkwOTY6MjUwMzY4ODEyNjM1NjYzNjM3MDoxX25vdF9wYXlfc2VsbGVyIiwibWVzc2FnZUlkIjoiY2M4YmMyZGY3YzkzNGRmMDg2ZTA1NjdjYjY5ZjE1NzMiLCJtdWx0aUNoYW5uZWwiOnsiaHVhd2VpIjoiRVhQUkVTUyIsInhpYW9taSI6IjEwODAwMCIsIm9wcG8iOiJFWFBSRVNTIiwiaG9ub3IiOiJOT1JNQUwiLCJhZ29vIjoicHJvZHVjdCIsInZpdm8iOiJPUkRFUiJ9LCJjb250ZW50VHlwZSI6IjI2IiwiY29ycmVsYXRpb25Hcm91cElkIjoiM2V4UUpIT1RtUFUxX0ZGcjRHT1NuOE9RbyJ9qHJlY2VpdmVyrTIyMDI2NDA5MTgwNzmrcmVkUmVtaW5kZXKy562J5b6F5Lmw5a625LuY5qy+sHJlZFJlbWluZGVyU3R5bGWhMa9yZW1pbmRlckNvbnRlbnS6W+aIkeW3suaLjeS4i++8jOW+heS7mOasvl2ucmVtaW5kZXJOb3RpY2W75Lmw5a625bey5ouN5LiL77yM5b6F5LuY5qy+rXJlbWluZGVyVGl0bGW75Lmw5a625bey5ouN5LiL77yM5b6F5LuY5qy+q3JlbWluZGVyVXJs2gCaZmxlYW1hcmtldDovL21lc3NhZ2VfY2hhdD9pdGVtSWQ9OTAwMDUyNjQ0Mjc3JnBlZXJVc2VySWQ9MzE0OTYzNzA2MyZwZWVyVXNlck5pY2s955S3KioqeSZzaWQ9NDc5ODMzODkwOTYmbWVzc2FnZUlkPWNjOGJjMmRmN2M5MzRkZjA4NmUwNTY3Y2I2OWYxNTczJmFkdj1ub6xzZW5kZXJVc2VySWSqMzE0OTYzNzA2M65zZW5kZXJVc2VyVHlwZaEwq3Nlc3Npb25UeXBloTGqdXBkYXRlSGVhZKR0cnVlDAEDgahuZWVkUHVzaKR0cnVl"
568
+ // msg = "hAGzNDc5ODMzODkwOTZAZ29vZmlzaAIBA4KrcmVkUmVtaW5kZXKy562J5b6F5Lmw5a625LuY5qy+sHJlZFJlbWluZGVyU3R5bGWhMQTPAAABlbMlNng="
569
+ // res = decrypt(msg);
570
+ // console.log(res);