js-confuser 1.7.2 → 2.0.0-alpha.0

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 (263) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +6 -4
  2. package/.github/workflows/node.js.yml +1 -1
  3. package/CHANGELOG.md +105 -0
  4. package/Migration.md +57 -0
  5. package/README.md +23 -913
  6. package/dist/constants.js +69 -13
  7. package/dist/index.js +108 -152
  8. package/dist/obfuscator.js +316 -118
  9. package/dist/options.js +1 -109
  10. package/dist/order.js +30 -30
  11. package/dist/presets.js +47 -45
  12. package/dist/probability.js +25 -32
  13. package/dist/templates/bufferToStringTemplate.js +9 -0
  14. package/dist/templates/deadCodeTemplates.js +9 -0
  15. package/dist/templates/getGlobalTemplate.js +19 -0
  16. package/dist/templates/integrityTemplate.js +30 -0
  17. package/dist/templates/setFunctionLengthTemplate.js +9 -0
  18. package/dist/templates/stringCompressionTemplate.js +10 -0
  19. package/dist/templates/tamperProtectionTemplates.js +21 -0
  20. package/dist/templates/template.js +213 -93
  21. package/dist/transforms/astScrambler.js +100 -0
  22. package/dist/transforms/calculator.js +70 -127
  23. package/dist/transforms/controlFlowFlattening.js +1182 -0
  24. package/dist/transforms/deadCode.js +62 -577
  25. package/dist/transforms/dispatcher.js +300 -309
  26. package/dist/transforms/extraction/duplicateLiteralsRemoval.js +88 -189
  27. package/dist/transforms/extraction/objectExtraction.js +131 -215
  28. package/dist/transforms/finalizer.js +56 -59
  29. package/dist/transforms/flatten.js +275 -276
  30. package/dist/transforms/functionOutlining.js +230 -0
  31. package/dist/transforms/identifier/globalConcealing.js +217 -103
  32. package/dist/transforms/identifier/movedDeclarations.js +167 -91
  33. package/dist/transforms/identifier/renameVariables.js +240 -187
  34. package/dist/transforms/lock/integrity.js +61 -184
  35. package/dist/transforms/lock/lock.js +263 -303
  36. package/dist/transforms/minify.js +431 -436
  37. package/dist/transforms/opaquePredicates.js +65 -118
  38. package/dist/transforms/pack.js +160 -0
  39. package/dist/transforms/plugin.js +179 -0
  40. package/dist/transforms/preparation.js +263 -163
  41. package/dist/transforms/renameLabels.js +132 -56
  42. package/dist/transforms/rgf.js +142 -240
  43. package/dist/transforms/shuffle.js +52 -145
  44. package/dist/transforms/string/encoding.js +45 -173
  45. package/dist/transforms/string/stringCompression.js +81 -126
  46. package/dist/transforms/string/stringConcealing.js +189 -224
  47. package/dist/transforms/string/stringEncoding.js +32 -40
  48. package/dist/transforms/string/stringSplitting.js +54 -55
  49. package/dist/transforms/variableMasking.js +232 -0
  50. package/dist/utils/ControlObject.js +125 -0
  51. package/dist/utils/IntGen.js +46 -0
  52. package/dist/utils/NameGen.js +106 -0
  53. package/dist/utils/ast-utils.js +560 -0
  54. package/dist/utils/function-utils.js +56 -0
  55. package/dist/utils/gen-utils.js +48 -0
  56. package/dist/utils/node.js +77 -0
  57. package/dist/utils/object-utils.js +21 -0
  58. package/dist/utils/random-utils.js +91 -0
  59. package/dist/utils/static-utils.js +64 -0
  60. package/dist/validateOptions.js +122 -0
  61. package/index.d.ts +1 -17
  62. package/package.json +27 -22
  63. package/src/constants.ts +139 -77
  64. package/src/index.ts +70 -163
  65. package/src/obfuscationResult.ts +43 -0
  66. package/src/obfuscator.ts +328 -135
  67. package/src/options.ts +154 -623
  68. package/src/order.ts +14 -14
  69. package/src/presets.ts +39 -34
  70. package/src/probability.ts +21 -36
  71. package/src/templates/{bufferToString.ts → bufferToStringTemplate.ts} +5 -54
  72. package/src/templates/deadCodeTemplates.ts +1185 -0
  73. package/src/templates/getGlobalTemplate.ts +72 -0
  74. package/src/templates/integrityTemplate.ts +69 -0
  75. package/src/templates/setFunctionLengthTemplate.ts +11 -0
  76. package/src/templates/stringCompressionTemplate.ts +42 -0
  77. package/src/templates/tamperProtectionTemplates.ts +116 -0
  78. package/src/templates/template.ts +183 -92
  79. package/src/transforms/astScrambler.ts +99 -0
  80. package/src/transforms/calculator.ts +96 -224
  81. package/src/transforms/controlFlowFlattening.ts +1594 -0
  82. package/src/transforms/deadCode.ts +85 -628
  83. package/src/transforms/dispatcher.ts +431 -636
  84. package/src/transforms/extraction/duplicateLiteralsRemoval.ts +147 -299
  85. package/src/transforms/extraction/objectExtraction.ts +160 -333
  86. package/src/transforms/finalizer.ts +63 -64
  87. package/src/transforms/flatten.ts +439 -557
  88. package/src/transforms/functionOutlining.ts +225 -0
  89. package/src/transforms/identifier/globalConcealing.ts +261 -189
  90. package/src/transforms/identifier/movedDeclarations.ts +228 -142
  91. package/src/transforms/identifier/renameVariables.ts +252 -258
  92. package/src/transforms/lock/integrity.ts +84 -260
  93. package/src/transforms/lock/lock.ts +342 -491
  94. package/src/transforms/minify.ts +523 -663
  95. package/src/transforms/opaquePredicates.ts +90 -229
  96. package/src/transforms/pack.ts +195 -0
  97. package/src/transforms/plugin.ts +185 -0
  98. package/src/transforms/preparation.ts +337 -215
  99. package/src/transforms/renameLabels.ts +176 -77
  100. package/src/transforms/rgf.ts +293 -386
  101. package/src/transforms/shuffle.ts +80 -254
  102. package/src/transforms/string/encoding.ts +26 -129
  103. package/src/transforms/string/stringCompression.ts +118 -236
  104. package/src/transforms/string/stringConcealing.ts +255 -339
  105. package/src/transforms/string/stringEncoding.ts +28 -47
  106. package/src/transforms/string/stringSplitting.ts +61 -75
  107. package/src/transforms/variableMasking.ts +257 -0
  108. package/src/utils/ControlObject.ts +141 -0
  109. package/src/utils/IntGen.ts +33 -0
  110. package/src/utils/NameGen.ts +106 -0
  111. package/src/utils/ast-utils.ts +667 -0
  112. package/src/utils/function-utils.ts +50 -0
  113. package/src/utils/gen-utils.ts +48 -0
  114. package/src/utils/node.ts +78 -0
  115. package/src/utils/object-utils.ts +21 -0
  116. package/src/utils/random-utils.ts +79 -0
  117. package/src/utils/static-utils.ts +66 -0
  118. package/src/validateOptions.ts +256 -0
  119. package/tsconfig.json +13 -8
  120. package/babel.config.js +0 -12
  121. package/dev.js +0 -8
  122. package/dist/compiler.js +0 -34
  123. package/dist/parser.js +0 -59
  124. package/dist/precedence.js +0 -66
  125. package/dist/templates/bufferToString.js +0 -108
  126. package/dist/templates/crash.js +0 -59
  127. package/dist/templates/es5.js +0 -137
  128. package/dist/templates/functionLength.js +0 -34
  129. package/dist/templates/globals.js +0 -9
  130. package/dist/transforms/antiTooling.js +0 -88
  131. package/dist/transforms/controlFlowFlattening/controlFlowFlattening.js +0 -1281
  132. package/dist/transforms/controlFlowFlattening/expressionObfuscation.js +0 -131
  133. package/dist/transforms/es5/antiClass.js +0 -164
  134. package/dist/transforms/es5/antiDestructuring.js +0 -193
  135. package/dist/transforms/es5/antiES6Object.js +0 -185
  136. package/dist/transforms/es5/antiSpreadOperator.js +0 -35
  137. package/dist/transforms/es5/antiTemplate.js +0 -66
  138. package/dist/transforms/es5/es5.js +0 -123
  139. package/dist/transforms/extraction/classExtraction.js +0 -83
  140. package/dist/transforms/identifier/globalAnalysis.js +0 -70
  141. package/dist/transforms/identifier/variableAnalysis.js +0 -104
  142. package/dist/transforms/lock/antiDebug.js +0 -76
  143. package/dist/transforms/stack.js +0 -343
  144. package/dist/transforms/transform.js +0 -350
  145. package/dist/traverse.js +0 -110
  146. package/dist/util/compare.js +0 -145
  147. package/dist/util/gen.js +0 -564
  148. package/dist/util/guard.js +0 -9
  149. package/dist/util/identifiers.js +0 -355
  150. package/dist/util/insert.js +0 -362
  151. package/dist/util/math.js +0 -19
  152. package/dist/util/object.js +0 -40
  153. package/dist/util/random.js +0 -130
  154. package/dist/util/scope.js +0 -20
  155. package/docs/ControlFlowFlattening.md +0 -595
  156. package/docs/Countermeasures.md +0 -63
  157. package/docs/ES5.md +0 -197
  158. package/docs/Integrity.md +0 -75
  159. package/docs/RGF.md +0 -419
  160. package/samples/example.js +0 -15
  161. package/samples/high.js +0 -1
  162. package/samples/input.js +0 -3
  163. package/samples/javascriptobfuscator.com.js +0 -8
  164. package/samples/jscrambler_advanced.js +0 -1894
  165. package/samples/jscrambler_light.js +0 -1134
  166. package/samples/low.js +0 -1
  167. package/samples/medium.js +0 -1
  168. package/samples/obfuscator.io.js +0 -1686
  169. package/samples/preemptive.com.js +0 -16
  170. package/src/compiler.ts +0 -35
  171. package/src/parser.ts +0 -49
  172. package/src/precedence.ts +0 -61
  173. package/src/templates/crash.ts +0 -55
  174. package/src/templates/es5.ts +0 -131
  175. package/src/templates/functionLength.ts +0 -32
  176. package/src/templates/globals.ts +0 -3
  177. package/src/transforms/antiTooling.ts +0 -102
  178. package/src/transforms/controlFlowFlattening/controlFlowFlattening.ts +0 -2146
  179. package/src/transforms/controlFlowFlattening/expressionObfuscation.ts +0 -179
  180. package/src/transforms/es5/antiClass.ts +0 -272
  181. package/src/transforms/es5/antiDestructuring.ts +0 -294
  182. package/src/transforms/es5/antiES6Object.ts +0 -267
  183. package/src/transforms/es5/antiSpreadOperator.ts +0 -56
  184. package/src/transforms/es5/antiTemplate.ts +0 -98
  185. package/src/transforms/es5/es5.ts +0 -149
  186. package/src/transforms/extraction/classExtraction.ts +0 -168
  187. package/src/transforms/identifier/globalAnalysis.ts +0 -85
  188. package/src/transforms/identifier/variableAnalysis.ts +0 -118
  189. package/src/transforms/lock/antiDebug.ts +0 -112
  190. package/src/transforms/stack.ts +0 -551
  191. package/src/transforms/transform.ts +0 -453
  192. package/src/traverse.ts +0 -120
  193. package/src/types.ts +0 -131
  194. package/src/util/compare.ts +0 -181
  195. package/src/util/gen.ts +0 -651
  196. package/src/util/guard.ts +0 -7
  197. package/src/util/identifiers.ts +0 -494
  198. package/src/util/insert.ts +0 -419
  199. package/src/util/math.ts +0 -15
  200. package/src/util/object.ts +0 -39
  201. package/src/util/random.ts +0 -141
  202. package/src/util/scope.ts +0 -21
  203. package/test/code/Cash.src.js +0 -1011
  204. package/test/code/Cash.test.ts +0 -49
  205. package/test/code/Dynamic.src.js +0 -118
  206. package/test/code/Dynamic.test.ts +0 -49
  207. package/test/code/ES6.src.js +0 -235
  208. package/test/code/ES6.test.ts +0 -42
  209. package/test/code/NewFeatures.test.ts +0 -19
  210. package/test/code/StrictMode.src.js +0 -65
  211. package/test/code/StrictMode.test.js +0 -37
  212. package/test/compare.test.ts +0 -104
  213. package/test/index.test.ts +0 -249
  214. package/test/options.test.ts +0 -132
  215. package/test/presets.test.ts +0 -22
  216. package/test/probability.test.ts +0 -44
  217. package/test/templates/template.test.ts +0 -14
  218. package/test/transforms/antiTooling.test.ts +0 -52
  219. package/test/transforms/calculator.test.ts +0 -78
  220. package/test/transforms/controlFlowFlattening/controlFlowFlattening.test.ts +0 -1274
  221. package/test/transforms/controlFlowFlattening/expressionObfuscation.test.ts +0 -192
  222. package/test/transforms/deadCode.test.ts +0 -85
  223. package/test/transforms/dispatcher.test.ts +0 -457
  224. package/test/transforms/es5/antiClass.test.ts +0 -427
  225. package/test/transforms/es5/antiDestructuring.test.ts +0 -157
  226. package/test/transforms/es5/antiES6Object.test.ts +0 -245
  227. package/test/transforms/es5/antiTemplate.test.ts +0 -116
  228. package/test/transforms/es5/es5.test.ts +0 -110
  229. package/test/transforms/extraction/classExtraction.test.ts +0 -86
  230. package/test/transforms/extraction/duplicateLiteralsRemoval.test.ts +0 -200
  231. package/test/transforms/extraction/objectExtraction.test.ts +0 -491
  232. package/test/transforms/flatten.test.ts +0 -721
  233. package/test/transforms/hexadecimalNumbers.test.ts +0 -62
  234. package/test/transforms/identifier/globalConcealing.test.ts +0 -72
  235. package/test/transforms/identifier/movedDeclarations.test.ts +0 -275
  236. package/test/transforms/identifier/renameVariables.test.ts +0 -621
  237. package/test/transforms/lock/antiDebug.test.ts +0 -66
  238. package/test/transforms/lock/browserLock.test.ts +0 -129
  239. package/test/transforms/lock/countermeasures.test.ts +0 -100
  240. package/test/transforms/lock/integrity.test.ts +0 -161
  241. package/test/transforms/lock/lock.test.ts +0 -204
  242. package/test/transforms/lock/osLock.test.ts +0 -312
  243. package/test/transforms/lock/selfDefending.test.ts +0 -68
  244. package/test/transforms/minify.test.ts +0 -575
  245. package/test/transforms/opaquePredicates.test.ts +0 -43
  246. package/test/transforms/preparation.test.ts +0 -157
  247. package/test/transforms/renameLabels.test.ts +0 -95
  248. package/test/transforms/rgf.test.ts +0 -378
  249. package/test/transforms/shuffle.test.ts +0 -135
  250. package/test/transforms/stack.test.ts +0 -573
  251. package/test/transforms/string/stringCompression.test.ts +0 -120
  252. package/test/transforms/string/stringConcealing.test.ts +0 -299
  253. package/test/transforms/string/stringEncoding.test.ts +0 -95
  254. package/test/transforms/string/stringSplitting.test.ts +0 -135
  255. package/test/transforms/transform.test.ts +0 -66
  256. package/test/traverse.test.ts +0 -139
  257. package/test/util/compare.test.ts +0 -34
  258. package/test/util/gen.test.ts +0 -121
  259. package/test/util/identifiers.test.ts +0 -253
  260. package/test/util/insert.test.ts +0 -142
  261. package/test/util/math.test.ts +0 -5
  262. package/test/util/random.test.ts +0 -71
  263. /package/dist/{types.js → obfuscationResult.js} +0 -0
@@ -1,1134 +0,0 @@
1
- l1cc.l = (function () {
2
- var f = 2;
3
- for (; f !== 9; ) {
4
- switch (f) {
5
- case 1:
6
- return globalThis;
7
- break;
8
- case 2:
9
- f = typeof globalThis === "\x6f\u0062\u006a\x65\u0063\x74" ? 1 : 5;
10
- break;
11
- case 5:
12
- var l;
13
- try {
14
- var S = 2;
15
- for (; S !== 6; ) {
16
- switch (S) {
17
- case 9:
18
- delete l["\x6d\u004b\x37\x63\u0039"];
19
- var o = Object["\u0070\x72\u006f\x74\x6f\x74\x79\x70\u0065"];
20
- delete o["\x4e\u0034\x6b\u0064\u006b"];
21
- S = 6;
22
- break;
23
- case 3:
24
- throw "";
25
- S = 9;
26
- break;
27
- case 4:
28
- S =
29
- typeof mK7c9 ===
30
- "\u0075\u006e\u0064\x65\x66\u0069\x6e\u0065\x64"
31
- ? 3
32
- : 9;
33
- break;
34
- case 2:
35
- Object[
36
- "\u0064\x65\u0066\u0069\u006e\u0065\u0050\x72\u006f\x70\x65\u0072\u0074\u0079"
37
- ](
38
- Object["\x70\x72\x6f\x74\x6f\x74\u0079\u0070\u0065"],
39
- "\u004e\x34\x6b\u0064\x6b",
40
- {
41
- "\x67\x65\x74": function () {
42
- var O = 2;
43
- for (; O !== 1; ) {
44
- switch (O) {
45
- case 2:
46
- return this;
47
- break;
48
- }
49
- }
50
- },
51
- "\x63\x6f\x6e\x66\x69\x67\x75\x72\x61\x62\x6c\x65": true,
52
- }
53
- );
54
- l = N4kdk;
55
- l["\u006d\u004b\x37\u0063\u0039"] = l;
56
- S = 4;
57
- break;
58
- }
59
- }
60
- } catch (z) {
61
- l = window;
62
- }
63
- return l;
64
- break;
65
- }
66
- }
67
- })();
68
- l1cc.J = o755(l1cc.l);
69
- l1cc.x2 = y522(l1cc.l);
70
- function o755(y4) {
71
- function I(T4) {
72
- var M4 = 2;
73
- for (; M4 !== 5; ) {
74
- switch (M4) {
75
- case 2:
76
- var R4 = [arguments];
77
- return R4[0][0].String;
78
- break;
79
- }
80
- }
81
- }
82
- function k(u4) {
83
- var Y4 = 2;
84
- for (; Y4 !== 5; ) {
85
- switch (Y4) {
86
- case 2:
87
- var Q4 = [arguments];
88
- return Q4[0][0].Array;
89
- break;
90
- }
91
- }
92
- }
93
- var k4 = 2;
94
- for (; k4 !== 24; ) {
95
- switch (k4) {
96
- case 3:
97
- B4[2] = "7";
98
- B4[6] = "";
99
- B4[6] = "x";
100
- B4[9] = "";
101
- B4[8] = "5";
102
- k4 = 14;
103
- break;
104
- case 2:
105
- var B4 = [arguments];
106
- B4[1] = "";
107
- B4[1] = "55";
108
- B4[2] = "";
109
- k4 = 3;
110
- break;
111
- case 10:
112
- B4[4] = 1;
113
- B4[3] = B4[7];
114
- B4[3] += B4[9];
115
- B4[3] += B4[8];
116
- k4 = 17;
117
- break;
118
- case 14:
119
- B4[9] = "";
120
- B4[9] = "75";
121
- B4[7] = "";
122
- B4[7] = "Y";
123
- k4 = 10;
124
- break;
125
- case 17:
126
- B4[5] = B4[6];
127
- B4[5] += B4[2];
128
- B4[5] += B4[1];
129
- k4 = 27;
130
- break;
131
- case 27:
132
- var X = function (V4, X4, z4, n4) {
133
- var S4 = 2;
134
- for (; S4 !== 5; ) {
135
- switch (S4) {
136
- case 2:
137
- var C4 = [arguments];
138
- S(B4[0][0], C4[0][0], C4[0][1], C4[0][2], C4[0][3]);
139
- S4 = 5;
140
- break;
141
- }
142
- }
143
- };
144
- k4 = 26;
145
- break;
146
- case 25:
147
- X(k, "map", B4[4], B4[3]);
148
- k4 = 24;
149
- break;
150
- case 26:
151
- X(I, "replace", B4[4], B4[5]);
152
- k4 = 25;
153
- break;
154
- }
155
- }
156
- function S(G4, I4, L4, t4, F4) {
157
- var a4 = 2;
158
- for (; a4 !== 7; ) {
159
- switch (a4) {
160
- case 2:
161
- var d4 = [arguments];
162
- d4[1] = "neProperty";
163
- d4[3] = "";
164
- d4[3] = "efi";
165
- a4 = 3;
166
- break;
167
- case 3:
168
- d4[7] = "";
169
- d4[7] = "d";
170
- try {
171
- var e4 = 2;
172
- for (; e4 !== 8; ) {
173
- switch (e4) {
174
- case 3:
175
- try {
176
- var h4 = 2;
177
- for (; h4 !== 3; ) {
178
- switch (h4) {
179
- case 2:
180
- d4[5] = d4[7];
181
- d4[5] += d4[3];
182
- d4[5] += d4[1];
183
- h4 = 4;
184
- break;
185
- case 4:
186
- d4[0][0].Object[d4[5]](d4[8], d4[0][4], d4[6]);
187
- h4 = 3;
188
- break;
189
- }
190
- }
191
- } catch (c4) {}
192
- d4[8][d4[0][4]] = d4[6].value;
193
- e4 = 8;
194
- break;
195
- case 2:
196
- d4[6] = {};
197
- d4[9] = (1, d4[0][1])(d4[0][0]);
198
- d4[8] = [B4[4], d4[9].prototype][d4[0][3]];
199
- d4[6].value = d4[8][d4[0][2]];
200
- e4 = 3;
201
- break;
202
- }
203
- }
204
- } catch (H4) {}
205
- a4 = 7;
206
- break;
207
- }
208
- }
209
- }
210
- }
211
- l1cc.t7 = function () {
212
- return typeof l1cc.f7.S0 === "function"
213
- ? l1cc.f7.S0.apply(l1cc.f7, arguments)
214
- : l1cc.f7.S0;
215
- };
216
- l1cc.E5 = function () {
217
- return typeof l1cc.v5.x === "function"
218
- ? l1cc.v5.x.apply(l1cc.v5, arguments)
219
- : l1cc.v5.x;
220
- };
221
- l1cc.w5 = function () {
222
- return typeof l1cc.v5.x === "function"
223
- ? l1cc.v5.x.apply(l1cc.v5, arguments)
224
- : l1cc.v5.x;
225
- };
226
- function l1cc() {}
227
- function y522(c7) {
228
- function D5(T7) {
229
- var A7 = 2;
230
- for (; A7 !== 5; ) {
231
- switch (A7) {
232
- case 2:
233
- var y7 = [arguments];
234
- return y7[0][0];
235
- break;
236
- }
237
- }
238
- }
239
- var M7 = 2;
240
- for (; M7 !== 70; ) {
241
- switch (M7) {
242
- case 10:
243
- h7[3] = "";
244
- h7[8] = "__a";
245
- h7[3] = "22";
246
- h7[1] = "b";
247
- h7[4] = "";
248
- h7[4] = "5";
249
- h7[62] = "";
250
- M7 = 27;
251
- break;
252
- case 50:
253
- h7[54] += h7[56];
254
- h7[54] += h7[56];
255
- h7[14] = h7[62];
256
- h7[14] += h7[4];
257
- h7[14] += h7[3];
258
- h7[55] = h7[8];
259
- h7[55] += h7[1];
260
- M7 = 64;
261
- break;
262
- case 32:
263
- h7[23] = "";
264
- h7[23] = "52";
265
- h7[15] = "H";
266
- h7[91] = 9;
267
- h7[91] = 7;
268
- M7 = 44;
269
- break;
270
- case 36:
271
- h7[90] += h7[56];
272
- h7[34] = h7[66];
273
- h7[34] += h7[66];
274
- h7[34] += h7[71];
275
- h7[54] = h7[40];
276
- M7 = 50;
277
- break;
278
- case 71:
279
- h5(g6, "apply", h7[91], h7[11]);
280
- M7 = 70;
281
- break;
282
- case 2:
283
- var h7 = [arguments];
284
- h7[2] = "";
285
- h7[2] = "z5";
286
- h7[5] = "";
287
- M7 = 3;
288
- break;
289
- case 60:
290
- h7[84] = h7[66];
291
- h7[84] += h7[7];
292
- h7[84] += h7[5];
293
- h7[68] = h7[2];
294
- M7 = 56;
295
- break;
296
- case 3:
297
- h7[5] = "ize";
298
- h7[7] = "";
299
- h7[7] = "_optim";
300
- h7[6] = "";
301
- M7 = 6;
302
- break;
303
- case 27:
304
- h7[62] = "g";
305
- h7[40] = "J5";
306
- h7[71] = "";
307
- h7[71] = "";
308
- h7[71] = "residual";
309
- h7[92] = "";
310
- M7 = 21;
311
- break;
312
- case 44:
313
- h7[91] = 1;
314
- h7[93] = 1;
315
- h7[93] = 0;
316
- h7[11] = h7[15];
317
- M7 = 40;
318
- break;
319
- case 75:
320
- h5(D5, h7[84], h7[93], h7[64]);
321
- M7 = 74;
322
- break;
323
- case 77:
324
- var h5 = function (U7, i7, Y7, J7) {
325
- var d7 = 2;
326
- for (; d7 !== 5; ) {
327
- switch (d7) {
328
- case 2:
329
- var I7 = [arguments];
330
- x6(h7[0][0], I7[0][0], I7[0][1], I7[0][2], I7[0][3]);
331
- d7 = 5;
332
- break;
333
- }
334
- }
335
- };
336
- M7 = 76;
337
- break;
338
- case 76:
339
- h5(I6, "test", h7[91], h7[68]);
340
- M7 = 75;
341
- break;
342
- case 73:
343
- h5(h6, "push", h7[91], h7[54]);
344
- M7 = 72;
345
- break;
346
- case 6:
347
- h7[6] = "";
348
- h7[6] = "m";
349
- h7[9] = "";
350
- h7[9] = "stract";
351
- h7[3] = "";
352
- M7 = 10;
353
- break;
354
- case 64:
355
- h7[55] += h7[9];
356
- h7[64] = h7[6];
357
- h7[64] += h7[4];
358
- h7[64] += h7[3];
359
- M7 = 60;
360
- break;
361
- case 40:
362
- h7[11] += h7[23];
363
- h7[11] += h7[56];
364
- h7[90] = h7[92];
365
- h7[90] += h7[56];
366
- M7 = 36;
367
- break;
368
- case 56:
369
- h7[68] += h7[56];
370
- h7[68] += h7[56];
371
- M7 = 77;
372
- break;
373
- case 21:
374
- h7[66] = "_";
375
- h7[92] = "u5";
376
- h7[56] = "";
377
- h7[56] = "2";
378
- M7 = 32;
379
- break;
380
- case 72:
381
- h5(D5, h7[34], h7[93], h7[90]);
382
- M7 = 71;
383
- break;
384
- case 74:
385
- h5(D5, h7[55], h7[93], h7[14]);
386
- M7 = 73;
387
- break;
388
- }
389
- }
390
- function I6(p7) {
391
- var O7 = 2;
392
- for (; O7 !== 5; ) {
393
- switch (O7) {
394
- case 2:
395
- var w7 = [arguments];
396
- return w7[0][0].RegExp;
397
- break;
398
- }
399
- }
400
- }
401
- function x6(q7, V7, r7, m7, S7) {
402
- var D7 = 2;
403
- for (; D7 !== 8; ) {
404
- switch (D7) {
405
- case 3:
406
- b7[1] = "defineProp";
407
- try {
408
- var P7 = 2;
409
- for (; P7 !== 8; ) {
410
- switch (P7) {
411
- case 2:
412
- b7[2] = {};
413
- b7[3] = (1, b7[0][1])(b7[0][0]);
414
- b7[9] = [b7[3], b7[3].prototype][b7[0][3]];
415
- b7[2].value = b7[9][b7[0][2]];
416
- P7 = 3;
417
- break;
418
- case 3:
419
- try {
420
- var B7 = 2;
421
- for (; B7 !== 3; ) {
422
- switch (B7) {
423
- case 2:
424
- b7[5] = b7[1];
425
- b7[5] += b7[8];
426
- B7 = 5;
427
- break;
428
- case 5:
429
- b7[5] += b7[4];
430
- b7[0][0].Object[b7[5]](b7[9], b7[0][4], b7[2]);
431
- B7 = 3;
432
- break;
433
- }
434
- }
435
- } catch (r6) {}
436
- b7[9][b7[0][4]] = b7[2].value;
437
- P7 = 8;
438
- break;
439
- }
440
- }
441
- } catch (m6) {}
442
- D7 = 8;
443
- break;
444
- case 2:
445
- var b7 = [arguments];
446
- b7[8] = "";
447
- b7[4] = "y";
448
- b7[8] = "ert";
449
- D7 = 3;
450
- break;
451
- }
452
- }
453
- }
454
- function g6(v7) {
455
- var C7 = 2;
456
- for (; C7 !== 5; ) {
457
- switch (C7) {
458
- case 2:
459
- var L7 = [arguments];
460
- return L7[0][0].Function;
461
- break;
462
- }
463
- }
464
- }
465
- function h6(H7) {
466
- var Q7 = 2;
467
- for (; Q7 !== 5; ) {
468
- switch (Q7) {
469
- case 2:
470
- var u7 = [arguments];
471
- return u7[0][0].Array;
472
- break;
473
- }
474
- }
475
- }
476
- }
477
- l1cc.v5 = (function (O) {
478
- function b(H) {
479
- var b5 = 2;
480
- for (; b5 !== 15; ) {
481
- switch (b5) {
482
- case 9:
483
- b5 = !Y-- ? 8 : 7;
484
- break;
485
- case 5:
486
- n = a[O[4]];
487
- b5 = 4;
488
- break;
489
- case 14:
490
- b5 = !Y-- ? 13 : 12;
491
- break;
492
- case 2:
493
- var w, V, f, p, T, j, n;
494
- b5 = 1;
495
- break;
496
- case 3:
497
- V = 26;
498
- b5 = 9;
499
- break;
500
- case 20:
501
- w = H - j > V && p - H > V;
502
- b5 = 19;
503
- break;
504
- case 13:
505
- T = O[7];
506
- b5 = 12;
507
- break;
508
- case 17:
509
- w = H - j > V;
510
- b5 = 19;
511
- break;
512
- case 11:
513
- j = (T || T === 0) && n(T, V);
514
- b5 = 10;
515
- break;
516
- case 16:
517
- w = p - H > V;
518
- b5 = 19;
519
- break;
520
- case 6:
521
- p = f && n(f, V);
522
- b5 = 14;
523
- break;
524
- case 1:
525
- b5 = !Y-- ? 5 : 4;
526
- break;
527
- case 18:
528
- b5 = j >= 0 ? 17 : 16;
529
- break;
530
- case 12:
531
- b5 = !Y-- ? 11 : 10;
532
- break;
533
- case 8:
534
- f = O[6];
535
- b5 = 7;
536
- break;
537
- case 4:
538
- b5 = !Y-- ? 3 : 9;
539
- break;
540
- case 7:
541
- b5 = !Y-- ? 6 : 14;
542
- break;
543
- case 19:
544
- return w;
545
- break;
546
- case 10:
547
- b5 = j >= 0 && p >= 0 ? 20 : 18;
548
- break;
549
- }
550
- }
551
- }
552
- var D4 = 2;
553
- for (; D4 !== 10; ) {
554
- switch (D4) {
555
- case 4:
556
- var P = "fromCharCode",
557
- o = "RegExp";
558
- D4 = 3;
559
- break;
560
- case 14:
561
- O = O.Y755(function (U) {
562
- var i5 = 2;
563
- for (; i5 !== 13; ) {
564
- switch (i5) {
565
- case 9:
566
- L += a[m][P](U[u] + 116);
567
- i5 = 8;
568
- break;
569
- case 3:
570
- i5 = u < U.length ? 9 : 7;
571
- break;
572
- case 7:
573
- i5 = !L ? 6 : 14;
574
- break;
575
- case 4:
576
- var u = 0;
577
- i5 = 3;
578
- break;
579
- case 5:
580
- L = "";
581
- i5 = 4;
582
- break;
583
- case 6:
584
- return;
585
- break;
586
- case 14:
587
- return L;
588
- break;
589
- case 1:
590
- i5 = !Y-- ? 5 : 4;
591
- break;
592
- case 2:
593
- var L;
594
- i5 = 1;
595
- break;
596
- case 8:
597
- u++;
598
- i5 = 3;
599
- break;
600
- }
601
- }
602
- });
603
- D4 = 13;
604
- break;
605
- case 9:
606
- g = typeof P;
607
- D4 = 8;
608
- break;
609
- case 3:
610
- D4 = !Y-- ? 9 : 8;
611
- break;
612
- case 5:
613
- a = l1cc.l;
614
- D4 = 4;
615
- break;
616
- case 8:
617
- D4 = !Y-- ? 7 : 6;
618
- break;
619
- case 6:
620
- D4 = !Y-- ? 14 : 13;
621
- break;
622
- case 7:
623
- m = g.x755(new a[o]("^['-|]"), "S");
624
- D4 = 6;
625
- break;
626
- case 1:
627
- D4 = !Y-- ? 5 : 4;
628
- break;
629
- case 12:
630
- var M,
631
- G = 0;
632
- D4 = 11;
633
- break;
634
- case 11:
635
- return {
636
- x: function (Z) {
637
- var Z5 = 2;
638
- for (; Z5 !== 6; ) {
639
- switch (Z5) {
640
- case 3:
641
- Z5 = !Y-- ? 9 : 8;
642
- break;
643
- case 4:
644
- M = b(F);
645
- Z5 = 3;
646
- break;
647
- case 9:
648
- G = F + 60000;
649
- Z5 = 8;
650
- break;
651
- case 5:
652
- Z5 = !Y-- ? 4 : 3;
653
- break;
654
- case 8:
655
- var d = (function (E, B) {
656
- var P5 = 2;
657
- for (; P5 !== 10; ) {
658
- switch (P5) {
659
- case 13:
660
- C++;
661
- P5 = 9;
662
- break;
663
- case 4:
664
- B = O;
665
- P5 = 3;
666
- break;
667
- case 5:
668
- P5 =
669
- typeof B === "undefined" && typeof O !== "undefined"
670
- ? 4
671
- : 3;
672
- break;
673
- case 12:
674
- y = y ^ R;
675
- P5 = 13;
676
- break;
677
- case 1:
678
- E = Z;
679
- P5 = 5;
680
- break;
681
- case 8:
682
- var t = a[B[4]](E[B[2]](C), 16)[B[3]](2);
683
- var R = t[B[2]](t[B[5]] - 1);
684
- P5 = 6;
685
- break;
686
- case 3:
687
- var y,
688
- C = 0;
689
- P5 = 9;
690
- break;
691
- case 6:
692
- P5 = C === 0 ? 14 : 12;
693
- break;
694
- case 11:
695
- return y;
696
- break;
697
- case 2:
698
- P5 =
699
- typeof E === "undefined" && typeof Z !== "undefined"
700
- ? 1
701
- : 5;
702
- break;
703
- case 14:
704
- y = R;
705
- P5 = 13;
706
- break;
707
- case 9:
708
- P5 = C < E[B[5]] ? 8 : 11;
709
- break;
710
- }
711
- }
712
- })(undefined, undefined);
713
- return d ? M : !M;
714
- break;
715
- case 1:
716
- Z5 = F > G ? 5 : 8;
717
- break;
718
- case 2:
719
- var F = new a[O[0]]()[O[1]]();
720
- Z5 = 1;
721
- break;
722
- }
723
- }
724
- },
725
- };
726
- break;
727
- case 13:
728
- D4 = !Y-- ? 12 : 11;
729
- break;
730
- case 2:
731
- var a, g, m, Y;
732
- D4 = 1;
733
- break;
734
- }
735
- }
736
- })([
737
- [-48, -19, 0, -15],
738
- [-13, -15, 0, -32, -11, -7, -15],
739
- [-17, -12, -19, -2, -51, 0],
740
- [0, -5, -33, 0, -2, -11, -6, -13],
741
- [-4, -19, -2, -1, -15, -43, -6, 0],
742
- [-8, -15, -6, -13, 0, -12],
743
- [-61, -10, -4, -65, -13, -12, -60, -19, -9],
744
- [],
745
- ]);
746
- l1cc.f7 = (function () {
747
- var e7 = 2;
748
- for (; e7 !== 9; ) {
749
- switch (e7) {
750
- case 4:
751
- F7[5].S0 = function () {
752
- var n7 = 2;
753
- for (; n7 !== 90; ) {
754
- switch (n7) {
755
- case 54:
756
- z7[3].J522(z7[85]);
757
- z7[3].J522(z7[46]);
758
- z7[3].J522(z7[9]);
759
- n7 = 51;
760
- break;
761
- case 2:
762
- var z7 = [arguments];
763
- n7 = 1;
764
- break;
765
- case 4:
766
- z7[3] = [];
767
- z7[1] = {};
768
- z7[1].r5 = ["R5"];
769
- z7[1].N5 = function () {
770
- var n8 = function () {
771
- return (
772
- "\u0041\u030A".normalize("NFC") ===
773
- "\u212B".normalize("NFC")
774
- );
775
- };
776
- var q8 = /\u0074\u0072\u0075\u0065/.z522(n8 + []);
777
- return q8;
778
- };
779
- z7[6] = z7[1];
780
- z7[2] = {};
781
- z7[2].r5 = ["t5"];
782
- n7 = 13;
783
- break;
784
- case 35:
785
- z7[53] = z7[90];
786
- z7[73] = {};
787
- z7[73].r5 = ["t5"];
788
- z7[73].N5 = function () {
789
- var c8 = typeof g522 === "function";
790
- return c8;
791
- };
792
- n7 = 31;
793
- break;
794
- case 71:
795
- z7[86]++;
796
- n7 = 76;
797
- break;
798
- case 18:
799
- z7[7] = {};
800
- z7[7].r5 = ["R5"];
801
- z7[7].N5 = function () {
802
- var B8 = function () {
803
- return "aaaa|a".substr(0, 3);
804
- };
805
- var C8 = !/\x7c/.z522(B8 + []);
806
- return C8;
807
- };
808
- z7[4] = z7[7];
809
- z7[34] = {};
810
- n7 = 26;
811
- break;
812
- case 1:
813
- n7 = F7[3] ? 5 : 4;
814
- break;
815
- case 38:
816
- z7[14].r5 = ["t5"];
817
- z7[14].N5 = function () {
818
- var s8 = typeof u522 === "function";
819
- return s8;
820
- };
821
- n7 = 36;
822
- break;
823
- case 69:
824
- n7 = (function (j7) {
825
- var R7 = 2;
826
- for (; R7 !== 22; ) {
827
- switch (R7) {
828
- case 25:
829
- W7[1] = true;
830
- R7 = 24;
831
- break;
832
- case 19:
833
- W7[9]++;
834
- R7 = 7;
835
- break;
836
- case 4:
837
- W7[5] = {};
838
- W7[4] = [];
839
- W7[9] = 0;
840
- R7 = 8;
841
- break;
842
- case 13:
843
- W7[5][W7[6][z7[97]]] = function () {
844
- var s7 = 2;
845
- for (; s7 !== 9; ) {
846
- switch (s7) {
847
- case 5:
848
- Z7[7].h = 0;
849
- Z7[7].t = 0;
850
- return Z7[7];
851
- break;
852
- case 2:
853
- var Z7 = [arguments];
854
- Z7[7] = {};
855
- s7 = 5;
856
- break;
857
- }
858
- }
859
- }.H522(this, arguments);
860
- R7 = 12;
861
- break;
862
- case 2:
863
- var W7 = [arguments];
864
- R7 = 1;
865
- break;
866
- case 10:
867
- R7 = W7[6][z7[50]] === z7[66] ? 20 : 19;
868
- break;
869
- case 20:
870
- W7[5][W7[6][z7[97]]].h += true;
871
- R7 = 19;
872
- break;
873
- case 11:
874
- W7[5][W7[6][z7[97]]].t += true;
875
- R7 = 10;
876
- break;
877
- case 23:
878
- return W7[1];
879
- break;
880
- case 15:
881
- W7[3] = W7[4][W7[9]];
882
- W7[2] = W7[5][W7[3]].h / W7[5][W7[3]].t;
883
- R7 = 26;
884
- break;
885
- case 16:
886
- R7 = W7[9] < W7[4].length ? 15 : 23;
887
- break;
888
- case 14:
889
- R7 =
890
- typeof W7[5][W7[6][z7[97]]] === "undefined" ? 13 : 11;
891
- break;
892
- case 18:
893
- W7[1] = false;
894
- R7 = 17;
895
- break;
896
- case 1:
897
- R7 = W7[0][0].length === 0 ? 5 : 4;
898
- break;
899
- case 24:
900
- W7[9]++;
901
- R7 = 16;
902
- break;
903
- case 17:
904
- W7[9] = 0;
905
- R7 = 16;
906
- break;
907
- case 8:
908
- W7[9] = 0;
909
- R7 = 7;
910
- break;
911
- case 5:
912
- return;
913
- break;
914
- case 7:
915
- R7 = W7[9] < W7[0][0].length ? 6 : 18;
916
- break;
917
- case 12:
918
- W7[4].J522(W7[6][z7[97]]);
919
- R7 = 11;
920
- break;
921
- case 26:
922
- R7 = W7[2] >= 0.5 ? 25 : 24;
923
- break;
924
- case 6:
925
- W7[6] = W7[0][0][W7[9]];
926
- R7 = 14;
927
- break;
928
- }
929
- }
930
- })(z7[16])
931
- ? 68
932
- : 67;
933
- break;
934
- case 75:
935
- z7[63] = {};
936
- z7[63][z7[97]] = z7[48][z7[55]][z7[86]];
937
- z7[63][z7[50]] = z7[54];
938
- z7[16].J522(z7[63]);
939
- n7 = 71;
940
- break;
941
- case 5:
942
- return 64;
943
- break;
944
- case 41:
945
- z7[78].N5 = function () {
946
- var p8 = false;
947
- var W8 = [];
948
- try {
949
- for (var r8 in console) {
950
- W8.J522(r8);
951
- }
952
- p8 = W8.length === 0;
953
- } catch (L8) {}
954
- var E8 = p8;
955
- return E8;
956
- };
957
- z7[46] = z7[78];
958
- z7[14] = {};
959
- n7 = 38;
960
- break;
961
- case 57:
962
- n7 = z7[52] < z7[3].length ? 56 : 69;
963
- break;
964
- case 51:
965
- z7[3].J522(z7[32]);
966
- z7[3].J522(z7[6]);
967
- n7 = 49;
968
- break;
969
- case 68:
970
- n7 = 64 ? 68 : 67;
971
- break;
972
- case 70:
973
- z7[52]++;
974
- n7 = 57;
975
- break;
976
- case 76:
977
- n7 = z7[86] < z7[48][z7[55]].length ? 75 : 70;
978
- break;
979
- case 11:
980
- z7[8] = {};
981
- z7[8].r5 = ["R5"];
982
- z7[8].N5 = function () {
983
- var h8 = function () {
984
- return escape("=");
985
- };
986
- var O8 = /\u0033\x44/.z522(h8 + []);
987
- return O8;
988
- };
989
- z7[9] = z7[8];
990
- n7 = 18;
991
- break;
992
- case 49:
993
- z7[3].J522(z7[53]);
994
- z7[3].J522(z7[83]);
995
- z7[3].J522(z7[4]);
996
- z7[3].J522(z7[5]);
997
- n7 = 45;
998
- break;
999
- case 59:
1000
- z7[97] = "p5";
1001
- n7 = 58;
1002
- break;
1003
- case 13:
1004
- z7[2].N5 = function () {
1005
- var t8 = typeof m522 === "function";
1006
- return t8;
1007
- };
1008
- z7[5] = z7[2];
1009
- n7 = 11;
1010
- break;
1011
- case 36:
1012
- z7[85] = z7[14];
1013
- n7 = 54;
1014
- break;
1015
- case 67:
1016
- F7[3] = 100;
1017
- return 43;
1018
- break;
1019
- case 56:
1020
- z7[48] = z7[3][z7[52]];
1021
- try {
1022
- z7[54] = z7[48][z7[64]]() ? z7[66] : z7[37];
1023
- } catch (d8) {
1024
- z7[54] = z7[37];
1025
- }
1026
- n7 = 77;
1027
- break;
1028
- case 45:
1029
- z7[3].J522(z7[57]);
1030
- z7[16] = [];
1031
- z7[66] = "K5";
1032
- z7[37] = "j5";
1033
- z7[55] = "r5";
1034
- z7[50] = "A5";
1035
- z7[64] = "N5";
1036
- n7 = 59;
1037
- break;
1038
- case 31:
1039
- z7[57] = z7[73];
1040
- z7[95] = {};
1041
- z7[95].r5 = ["R5"];
1042
- z7[95].N5 = function () {
1043
- var T8 = function () {
1044
- return "aaa".includes("a");
1045
- };
1046
- var Y8 = /\x74\u0072\u0075\x65/.z522(T8 + []);
1047
- return Y8;
1048
- };
1049
- n7 = 44;
1050
- break;
1051
- case 26:
1052
- z7[34].r5 = ["R5"];
1053
- z7[34].N5 = function () {
1054
- var y8 = function () {
1055
- return "a|a".split("|");
1056
- };
1057
- var F8 = !/\x7c/.z522(y8 + []);
1058
- return F8;
1059
- };
1060
- z7[83] = z7[34];
1061
- z7[90] = {};
1062
- z7[90].r5 = ["R5"];
1063
- z7[90].N5 = function () {
1064
- var f8 = function () {
1065
- return "a".codePointAt(0);
1066
- };
1067
- var Q8 = /\u0039\x37/.z522(f8 + []);
1068
- return Q8;
1069
- };
1070
- n7 = 35;
1071
- break;
1072
- case 77:
1073
- z7[86] = 0;
1074
- n7 = 76;
1075
- break;
1076
- case 44:
1077
- z7[32] = z7[95];
1078
- z7[78] = {};
1079
- z7[78].r5 = ["t5"];
1080
- n7 = 41;
1081
- break;
1082
- case 58:
1083
- z7[52] = 0;
1084
- n7 = 57;
1085
- break;
1086
- }
1087
- }
1088
- };
1089
- return F7[5];
1090
- break;
1091
- case 2:
1092
- var F7 = [arguments];
1093
- F7[3] = undefined;
1094
- F7[5] = {};
1095
- e7 = 4;
1096
- break;
1097
- }
1098
- }
1099
- })();
1100
- l1cc.o7 = function () {
1101
- return typeof l1cc.f7.S0 === "function"
1102
- ? l1cc.f7.S0.apply(l1cc.f7, arguments)
1103
- : l1cc.f7.S0;
1104
- };
1105
- l1cc.m5 = function (U5) {
1106
- l1cc.t7();
1107
- if (l1cc) return l1cc.w5(U5);
1108
- };
1109
- l1cc.H5 = function (c5) {
1110
- l1cc.t7();
1111
- if (l1cc) return l1cc.E5(c5);
1112
- };
1113
- l1cc.o5 = function (x5) {
1114
- l1cc.o7();
1115
- if (l1cc && x5) return l1cc.E5(x5);
1116
- };
1117
- l1cc.o7();
1118
- l1cc.J5 = function (q5) {
1119
- l1cc.t7();
1120
- if (l1cc && q5) return l1cc.E5(q5);
1121
- };
1122
- var result =
1123
- (l1cc.J5("\x37\x64\u0064\u0065") ? 1 : 8) +
1124
- (l1cc.o5("\u0037\x37\x65\u0065") ? 2 : 1);
1125
- console.log(
1126
- (l1cc.H5("\x65\u0062\u0038\u0032")
1127
- ? "\u0031\x20\u002b\x20\x31\u0020\u0069\u0073\x20"
1128
- : "") + result
1129
- );
1130
- console.log(
1131
- l1cc.m5("\x66\x61\u0036\x34")
1132
- ? "\u0054\x68\x65\x20\u0073\x6f\x75\x72\u0063\u0065\u0020\u0063\u006f\u0064\x65\u0020\u0069\x73\u0020\x6f\x6e\x6c\x79\u0020\u0074\u0068\u0072\x65\x65\x20\x6c\x69\u006e\u0065\x73\u0020\u006c\u006f\u006e\x67\u0021"
1133
- : ""
1134
- );