quantaroute-geocoding 1.0.3 → 1.1.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.
- package/README.md +35 -16
- package/dist/client.d.ts +6 -49
- package/dist/client.js +1 -274
- package/dist/index.d.ts +2 -7
- package/dist/index.js +6 -10
- package/dist/location-lookup.d.ts +6 -22
- package/dist/location-lookup.js +1 -133
- package/dist/offline.d.ts +0 -21
- package/dist/offline.js +2 -27
- package/dist/rasp.d.ts +75 -0
- package/dist/rasp.js +533 -0
- package/dist/security.d.ts +17 -0
- package/dist/security.js +1 -0
- package/dist/types.d.ts +37 -9
- package/dist/types.js +0 -4
- package/package.json +13 -4
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/location-lookup.d.ts.map +0 -1
- package/dist/location-lookup.js.map +0 -1
- package/dist/offline.d.ts.map +0 -1
- package/dist/offline.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
package/dist/rasp.js
ADDED
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RASPEventType = void 0;
|
|
37
|
+
exports.initializeRASP = initializeRASP;
|
|
38
|
+
exports.getRASP = getRASP;
|
|
39
|
+
exports.createRASPProtection = createRASPProtection;
|
|
40
|
+
const crypto = __importStar(require("crypto"));
|
|
41
|
+
const fs_1 = require("fs");
|
|
42
|
+
var RASPEventType;
|
|
43
|
+
(function (RASPEventType) {
|
|
44
|
+
RASPEventType["CODE_TAMPERING"] = "code_tampering";
|
|
45
|
+
RASPEventType["DEBUGGER_DETECTED"] = "debugger_detected";
|
|
46
|
+
RASPEventType["UNAUTHORIZED_ACCESS"] = "unauthorized_access";
|
|
47
|
+
RASPEventType["ENVIRONMENT_SUSPICIOUS"] = "environment_suspicious";
|
|
48
|
+
RASPEventType["INTEGRITY_CHECK_FAILED"] = "integrity_check_failed";
|
|
49
|
+
RASPEventType["INJECTION_DETECTED"] = "injection_detected";
|
|
50
|
+
RASPEventType["RATE_LIMIT_ABUSE"] = "rate_limit_abuse";
|
|
51
|
+
})(RASPEventType || (exports.RASPEventType = RASPEventType = {}));
|
|
52
|
+
class RASPProtection {
|
|
53
|
+
constructor(options = {}) {
|
|
54
|
+
this.lastIntegrityCheck = 0;
|
|
55
|
+
this.securityEvents = [];
|
|
56
|
+
this.isInitialized = false;
|
|
57
|
+
this.INTEGRITY_CHECK_INTERVAL = 30000;
|
|
58
|
+
this.BEHAVIOR_WINDOW = 60000;
|
|
59
|
+
this.options = {
|
|
60
|
+
enableAntiDebugging: options.enableAntiDebugging ?? true,
|
|
61
|
+
enableIntegrityChecks: options.enableIntegrityChecks ?? true,
|
|
62
|
+
enableBehaviorMonitoring: options.enableBehaviorMonitoring ?? true,
|
|
63
|
+
enableEnvironmentDetection: options.enableEnvironmentDetection ?? true,
|
|
64
|
+
reportToServer: options.reportToServer ?? false,
|
|
65
|
+
onSecurityEvent: options.onSecurityEvent ?? this.defaultEventHandler.bind(this),
|
|
66
|
+
integrityHashes: options.integrityHashes ?? {},
|
|
67
|
+
includePayloadInMetadata: options.includePayloadInMetadata ?? false,
|
|
68
|
+
enableGlobalHooks: options.enableGlobalHooks ?? false,
|
|
69
|
+
serverEndpoint: options.serverEndpoint,
|
|
70
|
+
serverAuthToken: options.serverAuthToken,
|
|
71
|
+
serverAuthHeader: options.serverAuthHeader ?? 'Authorization'
|
|
72
|
+
};
|
|
73
|
+
this.integrityHashes = new Map(Object.entries(this.options.integrityHashes));
|
|
74
|
+
this.behaviorMetrics = new Map();
|
|
75
|
+
}
|
|
76
|
+
initialize() {
|
|
77
|
+
if (this.isInitialized) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.isInitialized = true;
|
|
81
|
+
if (this.options.enableAntiDebugging) {
|
|
82
|
+
this.startAntiDebugging();
|
|
83
|
+
}
|
|
84
|
+
if (this.options.enableIntegrityChecks) {
|
|
85
|
+
this.startIntegrityChecks();
|
|
86
|
+
}
|
|
87
|
+
if (this.options.enableEnvironmentDetection) {
|
|
88
|
+
this.detectSuspiciousEnvironment();
|
|
89
|
+
}
|
|
90
|
+
this.setupProtectionHooks();
|
|
91
|
+
}
|
|
92
|
+
defaultEventHandler(event) {
|
|
93
|
+
this.securityEvents.push(event);
|
|
94
|
+
if (event.severity === 'critical' || event.severity === 'high') {
|
|
95
|
+
console.error(`[RASP] ${event.severity.toUpperCase()}: ${event.message}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
startAntiDebugging() {
|
|
99
|
+
if (typeof process === 'undefined') {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const checkDebugger = () => {
|
|
103
|
+
try {
|
|
104
|
+
const start = Date.now();
|
|
105
|
+
debugger;
|
|
106
|
+
const end = Date.now();
|
|
107
|
+
if (end - start > 100) {
|
|
108
|
+
this.reportSecurityEvent({
|
|
109
|
+
type: RASPEventType.DEBUGGER_DETECTED,
|
|
110
|
+
timestamp: Date.now(),
|
|
111
|
+
severity: 'high',
|
|
112
|
+
message: 'Debugger detected via timing check',
|
|
113
|
+
metadata: { delay: end - start }
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
this.reportSecurityEvent({
|
|
119
|
+
type: RASPEventType.DEBUGGER_DETECTED,
|
|
120
|
+
timestamp: Date.now(),
|
|
121
|
+
severity: 'high',
|
|
122
|
+
message: 'Debugger detection triggered',
|
|
123
|
+
metadata: { error: String(e) }
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
this.antiDebugInterval = setInterval(checkDebugger, 5000);
|
|
128
|
+
}
|
|
129
|
+
startIntegrityChecks() {
|
|
130
|
+
const performIntegrityCheck = async () => {
|
|
131
|
+
try {
|
|
132
|
+
await this.checkCodeIntegrity();
|
|
133
|
+
this.lastIntegrityCheck = Date.now();
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.reportSecurityEvent({
|
|
137
|
+
type: RASPEventType.INTEGRITY_CHECK_FAILED,
|
|
138
|
+
timestamp: Date.now(),
|
|
139
|
+
severity: 'critical',
|
|
140
|
+
message: 'Code integrity check failed',
|
|
141
|
+
metadata: { error: String(error) }
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
performIntegrityCheck();
|
|
146
|
+
this.integrityCheckInterval = setInterval(() => {
|
|
147
|
+
performIntegrityCheck().catch(() => {
|
|
148
|
+
});
|
|
149
|
+
}, this.INTEGRITY_CHECK_INTERVAL);
|
|
150
|
+
}
|
|
151
|
+
async checkCodeIntegrity() {
|
|
152
|
+
const criticalFunctions = [
|
|
153
|
+
'getApiKey',
|
|
154
|
+
'signRequest',
|
|
155
|
+
'makeRequest'
|
|
156
|
+
];
|
|
157
|
+
for (const funcName of criticalFunctions) {
|
|
158
|
+
const func = this.getFunctionByName(funcName);
|
|
159
|
+
if (func) {
|
|
160
|
+
const hash = this.hashFunction(func);
|
|
161
|
+
const expectedHash = this.integrityHashes.get(funcName);
|
|
162
|
+
if (expectedHash && hash !== expectedHash) {
|
|
163
|
+
this.reportSecurityEvent({
|
|
164
|
+
type: RASPEventType.CODE_TAMPERING,
|
|
165
|
+
timestamp: Date.now(),
|
|
166
|
+
severity: 'critical',
|
|
167
|
+
message: `Function ${funcName} has been tampered with`,
|
|
168
|
+
metadata: { function: funcName, expectedHash, actualHash: hash }
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
await this.checkModuleIntegrity();
|
|
174
|
+
}
|
|
175
|
+
async checkModuleIntegrity() {
|
|
176
|
+
try {
|
|
177
|
+
if (typeof require === 'undefined' || typeof require.resolve !== 'function') {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const modulePath = require.resolve('./security');
|
|
181
|
+
const moduleContent = await fs_1.promises.readFile(modulePath, 'utf8');
|
|
182
|
+
const hash = crypto.createHash('sha256').update(moduleContent).digest('hex');
|
|
183
|
+
const expectedHash = this.integrityHashes.get('security.ts');
|
|
184
|
+
if (expectedHash && hash !== expectedHash) {
|
|
185
|
+
this.reportSecurityEvent({
|
|
186
|
+
type: RASPEventType.CODE_TAMPERING,
|
|
187
|
+
timestamp: Date.now(),
|
|
188
|
+
severity: 'critical',
|
|
189
|
+
message: 'Security module has been tampered with',
|
|
190
|
+
metadata: { module: 'security.ts', expectedHash, actualHash: hash }
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
this.reportSecurityEvent({
|
|
196
|
+
type: RASPEventType.INTEGRITY_CHECK_FAILED,
|
|
197
|
+
timestamp: Date.now(),
|
|
198
|
+
severity: 'medium',
|
|
199
|
+
message: 'Could not perform module integrity check',
|
|
200
|
+
metadata: { error: String(error) }
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
getFunctionByName(name) {
|
|
205
|
+
try {
|
|
206
|
+
const securityModule = require('./security');
|
|
207
|
+
if (securityModule && typeof securityModule[name] === 'function') {
|
|
208
|
+
return securityModule[name];
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
hashFunction(func) {
|
|
217
|
+
const funcString = func.toString();
|
|
218
|
+
return crypto.createHash('sha256').update(funcString).digest('hex');
|
|
219
|
+
}
|
|
220
|
+
detectSuspiciousEnvironment() {
|
|
221
|
+
const checks = [
|
|
222
|
+
{
|
|
223
|
+
name: 'devtools',
|
|
224
|
+
check: () => {
|
|
225
|
+
try {
|
|
226
|
+
const win = globalThis.window;
|
|
227
|
+
if (win && typeof win.outerHeight === 'number' && typeof win.innerHeight === 'number') {
|
|
228
|
+
const threshold = 160;
|
|
229
|
+
const heightDiff = win.outerHeight - win.innerHeight;
|
|
230
|
+
const widthDiff = win.outerWidth - win.innerWidth;
|
|
231
|
+
return heightDiff > threshold || widthDiff > threshold;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
catch (e) {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
return false;
|
|
238
|
+
},
|
|
239
|
+
severity: 'medium'
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
name: 'node_inspector',
|
|
243
|
+
check: () => {
|
|
244
|
+
if (typeof process !== 'undefined') {
|
|
245
|
+
return process.env.NODE_OPTIONS?.includes('--inspect') ||
|
|
246
|
+
process.env.NODE_OPTIONS?.includes('--inspect-brk') ||
|
|
247
|
+
process.execArgv.some(arg => arg.includes('--inspect'));
|
|
248
|
+
}
|
|
249
|
+
return false;
|
|
250
|
+
},
|
|
251
|
+
severity: 'high'
|
|
252
|
+
},
|
|
253
|
+
];
|
|
254
|
+
for (const check of checks) {
|
|
255
|
+
try {
|
|
256
|
+
if (check.check()) {
|
|
257
|
+
this.reportSecurityEvent({
|
|
258
|
+
type: RASPEventType.ENVIRONMENT_SUSPICIOUS,
|
|
259
|
+
timestamp: Date.now(),
|
|
260
|
+
severity: check.severity,
|
|
261
|
+
message: `Suspicious environment detected: ${check.name}`,
|
|
262
|
+
metadata: { check: check.name }
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch (e) {
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
setupProtectionHooks() {
|
|
272
|
+
if (!this.options.enableGlobalHooks) {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (typeof Object !== 'undefined' && Object.defineProperty) {
|
|
276
|
+
this.originalDefineProperty = Object.defineProperty;
|
|
277
|
+
const self = this;
|
|
278
|
+
try {
|
|
279
|
+
Object.defineProperty = function (obj, prop, descriptor) {
|
|
280
|
+
const propStr = String(prop);
|
|
281
|
+
if (propStr.includes('apiKey') || propStr.includes('keyStorage') || propStr.includes('_k')) {
|
|
282
|
+
self.reportSecurityEvent({
|
|
283
|
+
type: RASPEventType.UNAUTHORIZED_ACCESS,
|
|
284
|
+
timestamp: Date.now(),
|
|
285
|
+
severity: 'high',
|
|
286
|
+
message: 'Attempted unauthorized property definition',
|
|
287
|
+
metadata: { property: propStr, object: obj.constructor?.name }
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
return self.originalDefineProperty.call(Object, obj, prop, descriptor);
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
if (this.originalDefineProperty) {
|
|
295
|
+
Object.defineProperty = this.originalDefineProperty;
|
|
296
|
+
}
|
|
297
|
+
console.warn('[RASP] Failed to set up Object.defineProperty hook:', error);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
if (typeof Function !== 'undefined' && Function.prototype.toString) {
|
|
301
|
+
this.originalFunctionToString = Function.prototype.toString;
|
|
302
|
+
const self = this;
|
|
303
|
+
try {
|
|
304
|
+
Function.prototype.toString = function () {
|
|
305
|
+
const funcName = this.name || 'anonymous';
|
|
306
|
+
if (funcName.includes('getApiKey') || funcName.includes('SecureKeyStorage')) {
|
|
307
|
+
self.reportSecurityEvent({
|
|
308
|
+
type: RASPEventType.UNAUTHORIZED_ACCESS,
|
|
309
|
+
timestamp: Date.now(),
|
|
310
|
+
severity: 'medium',
|
|
311
|
+
message: 'Attempted to inspect protected function',
|
|
312
|
+
metadata: { function: funcName }
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
return self.originalFunctionToString.call(this);
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
if (this.originalFunctionToString) {
|
|
320
|
+
Function.prototype.toString = this.originalFunctionToString;
|
|
321
|
+
}
|
|
322
|
+
console.warn('[RASP] Failed to set up Function.prototype.toString hook:', error);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
monitorBehavior(action, metadata) {
|
|
327
|
+
if (!this.options.enableBehaviorMonitoring) {
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
const now = Date.now();
|
|
331
|
+
const key = `${action}_${Math.floor(now / this.BEHAVIOR_WINDOW)}`;
|
|
332
|
+
const count = (this.behaviorMetrics.get(key) || 0) + 1;
|
|
333
|
+
this.behaviorMetrics.set(key, count);
|
|
334
|
+
if (count > 100) {
|
|
335
|
+
this.reportSecurityEvent({
|
|
336
|
+
type: RASPEventType.RATE_LIMIT_ABUSE,
|
|
337
|
+
timestamp: now,
|
|
338
|
+
severity: 'high',
|
|
339
|
+
message: `Suspicious behavior detected: ${action}`,
|
|
340
|
+
metadata: { action, count, ...metadata }
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
this.cleanupOldMetrics();
|
|
344
|
+
}
|
|
345
|
+
cleanupOldMetrics() {
|
|
346
|
+
const now = Date.now();
|
|
347
|
+
const cutoff = now - (this.BEHAVIOR_WINDOW * 2);
|
|
348
|
+
for (const [key, timestamp] of this.behaviorMetrics.entries()) {
|
|
349
|
+
const keyTimestamp = parseInt(key.split('_')[1]) * this.BEHAVIOR_WINDOW;
|
|
350
|
+
if (keyTimestamp < cutoff) {
|
|
351
|
+
this.behaviorMetrics.delete(key);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
sanitizePayload(payload, maxLength = 100) {
|
|
356
|
+
if (!payload || payload.length === 0) {
|
|
357
|
+
return '';
|
|
358
|
+
}
|
|
359
|
+
let sanitized = payload.substring(0, maxLength);
|
|
360
|
+
const sensitivePatterns = [
|
|
361
|
+
/(password|passwd|pwd)\s*[:=]\s*["']?([^"'\s]{3,})["']?/gi,
|
|
362
|
+
/(api[_-]?key|apikey|token|secret|auth[_-]?token)\s*[:=]\s*["']?([^"'\s]{8,})["']?/gi,
|
|
363
|
+
/\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g,
|
|
364
|
+
/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,
|
|
365
|
+
/\b\d{3}[-\s]?\d{3}[-\s]?\d{4}\b/g,
|
|
366
|
+
/\b\d{3}-\d{2}-\d{4}\b/g,
|
|
367
|
+
/bearer\s+[A-Za-z0-9._-]{20,}/gi,
|
|
368
|
+
/eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g
|
|
369
|
+
];
|
|
370
|
+
for (const pattern of sensitivePatterns) {
|
|
371
|
+
sanitized = sanitized.replace(pattern, (match) => {
|
|
372
|
+
return match.substring(0, Math.min(10, match.length)) + '[REDACTED]';
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
return sanitized;
|
|
376
|
+
}
|
|
377
|
+
createPayloadFingerprint(payload) {
|
|
378
|
+
if (!payload || payload.length === 0) {
|
|
379
|
+
return 'empty';
|
|
380
|
+
}
|
|
381
|
+
const hash = crypto.createHash('sha256').update(payload).digest('hex');
|
|
382
|
+
return `hash:${hash.substring(0, 16)}...length:${payload.length}`;
|
|
383
|
+
}
|
|
384
|
+
detectInjection(payload, silent = false) {
|
|
385
|
+
const dangerousPatterns = [
|
|
386
|
+
/eval\s*\(/i,
|
|
387
|
+
/Function\s*\(/i,
|
|
388
|
+
/setTimeout\s*\(/i,
|
|
389
|
+
/setInterval\s*\(/i,
|
|
390
|
+
/<script/i,
|
|
391
|
+
/javascript:/i,
|
|
392
|
+
/on\w+\s*=/i
|
|
393
|
+
];
|
|
394
|
+
for (const pattern of dangerousPatterns) {
|
|
395
|
+
if (pattern.test(payload)) {
|
|
396
|
+
if (!silent) {
|
|
397
|
+
const metadata = {
|
|
398
|
+
pattern: pattern.toString(),
|
|
399
|
+
payloadFingerprint: this.createPayloadFingerprint(payload)
|
|
400
|
+
};
|
|
401
|
+
if (this.options.includePayloadInMetadata) {
|
|
402
|
+
metadata.payload = this.sanitizePayload(payload, 100);
|
|
403
|
+
}
|
|
404
|
+
this.reportSecurityEvent({
|
|
405
|
+
type: RASPEventType.INJECTION_DETECTED,
|
|
406
|
+
timestamp: Date.now(),
|
|
407
|
+
severity: 'critical',
|
|
408
|
+
message: 'Code injection detected',
|
|
409
|
+
metadata
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
return true;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return false;
|
|
416
|
+
}
|
|
417
|
+
validateRequest(requestData) {
|
|
418
|
+
try {
|
|
419
|
+
const requestString = typeof requestData === 'string'
|
|
420
|
+
? requestData
|
|
421
|
+
: JSON.stringify(requestData || {});
|
|
422
|
+
if (this.detectInjection(requestString, true)) {
|
|
423
|
+
const metadata = {
|
|
424
|
+
endpoint: requestData?.endpoint,
|
|
425
|
+
payloadFingerprint: this.createPayloadFingerprint(requestString)
|
|
426
|
+
};
|
|
427
|
+
if (this.options.includePayloadInMetadata) {
|
|
428
|
+
metadata.payload = this.sanitizePayload(requestString, 100);
|
|
429
|
+
}
|
|
430
|
+
this.reportSecurityEvent({
|
|
431
|
+
type: RASPEventType.INJECTION_DETECTED,
|
|
432
|
+
timestamp: Date.now(),
|
|
433
|
+
severity: 'critical',
|
|
434
|
+
message: 'Code injection detected in request',
|
|
435
|
+
metadata
|
|
436
|
+
});
|
|
437
|
+
return false;
|
|
438
|
+
}
|
|
439
|
+
this.monitorBehavior('api_request', { endpoint: requestData?.endpoint });
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
catch (error) {
|
|
443
|
+
return false;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
reportSecurityEvent(event) {
|
|
447
|
+
if (this.options.onSecurityEvent) {
|
|
448
|
+
this.options.onSecurityEvent(event);
|
|
449
|
+
}
|
|
450
|
+
if (this.options.reportToServer && event.severity === 'critical') {
|
|
451
|
+
this.sendSecurityEventToServer(event);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
async sendSecurityEventToServer(event) {
|
|
455
|
+
try {
|
|
456
|
+
if (typeof fetch === 'undefined') {
|
|
457
|
+
return;
|
|
458
|
+
}
|
|
459
|
+
const endpoint = this.options.serverEndpoint || 'https://api.quantaroute.com/v1/security/events';
|
|
460
|
+
const headers = {
|
|
461
|
+
'Content-Type': 'application/json'
|
|
462
|
+
};
|
|
463
|
+
if (this.options.serverAuthToken) {
|
|
464
|
+
const authHeaderName = this.options.serverAuthHeader || 'Authorization';
|
|
465
|
+
const tokenValue = authHeaderName.toLowerCase() === 'authorization'
|
|
466
|
+
? `Bearer ${this.options.serverAuthToken}`
|
|
467
|
+
: this.options.serverAuthToken;
|
|
468
|
+
headers[authHeaderName] = tokenValue;
|
|
469
|
+
}
|
|
470
|
+
await fetch(endpoint, {
|
|
471
|
+
method: 'POST',
|
|
472
|
+
headers,
|
|
473
|
+
body: JSON.stringify(event)
|
|
474
|
+
});
|
|
475
|
+
}
|
|
476
|
+
catch (error) {
|
|
477
|
+
console.error('[RASP] Failed to report security event:', error);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
getSecurityEvents() {
|
|
481
|
+
return [...this.securityEvents];
|
|
482
|
+
}
|
|
483
|
+
getSecurityStatus() {
|
|
484
|
+
const criticalEvents = this.securityEvents.filter(e => e.severity === 'critical' || e.severity === 'high').length;
|
|
485
|
+
return {
|
|
486
|
+
initialized: this.isInitialized,
|
|
487
|
+
lastIntegrityCheck: this.lastIntegrityCheck,
|
|
488
|
+
eventCount: this.securityEvents.length,
|
|
489
|
+
criticalEvents
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
destroy() {
|
|
493
|
+
if (this.antiDebugInterval) {
|
|
494
|
+
clearInterval(this.antiDebugInterval);
|
|
495
|
+
}
|
|
496
|
+
if (this.integrityCheckInterval) {
|
|
497
|
+
clearInterval(this.integrityCheckInterval);
|
|
498
|
+
}
|
|
499
|
+
if (this.options.enableGlobalHooks) {
|
|
500
|
+
if (this.originalDefineProperty && typeof Object !== 'undefined') {
|
|
501
|
+
try {
|
|
502
|
+
Object.defineProperty = this.originalDefineProperty;
|
|
503
|
+
}
|
|
504
|
+
catch (error) {
|
|
505
|
+
console.warn('[RASP] Failed to restore Object.defineProperty:', error);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
if (this.originalFunctionToString && typeof Function !== 'undefined') {
|
|
509
|
+
try {
|
|
510
|
+
Function.prototype.toString = this.originalFunctionToString;
|
|
511
|
+
}
|
|
512
|
+
catch (error) {
|
|
513
|
+
console.warn('[RASP] Failed to restore Function.prototype.toString:', error);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
this.isInitialized = false;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
let globalRASPInstance = null;
|
|
521
|
+
function initializeRASP(options) {
|
|
522
|
+
if (!globalRASPInstance) {
|
|
523
|
+
globalRASPInstance = new RASPProtection(options);
|
|
524
|
+
globalRASPInstance.initialize();
|
|
525
|
+
}
|
|
526
|
+
return globalRASPInstance;
|
|
527
|
+
}
|
|
528
|
+
function getRASP() {
|
|
529
|
+
return globalRASPInstance;
|
|
530
|
+
}
|
|
531
|
+
function createRASPProtection(options) {
|
|
532
|
+
return new RASPProtection(options);
|
|
533
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare const KEY_STORAGE_SYMBOL: unique symbol;
|
|
2
|
+
declare const SALT_SYMBOL: unique symbol;
|
|
3
|
+
declare class SecureKeyStorage {
|
|
4
|
+
private [KEY_STORAGE_SYMBOL];
|
|
5
|
+
private [SALT_SYMBOL];
|
|
6
|
+
private obfuscated;
|
|
7
|
+
constructor(apiKey: string);
|
|
8
|
+
private obfuscateKey;
|
|
9
|
+
private deobfuscateKey;
|
|
10
|
+
getApiKey(): string;
|
|
11
|
+
signRequest(method: string, endpoint: string, body: string, timestamp: number): string;
|
|
12
|
+
destroy(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createSecureStorage(apiKey: string): SecureKeyStorage;
|
|
15
|
+
export declare function generateRequestSignature(apiKey: string, method: string, endpoint: string, body: string, timestamp: number): string;
|
|
16
|
+
export declare function getCurrentTimestamp(): number;
|
|
17
|
+
export {};
|
package/dist/security.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';(function(_0x104733,_0x24c504){const _0x28d221={_0x564c8f:0x4ec,_0x3f22c8:0x53a,_0x3bbefa:0x509,_0x42eefe:0x503,_0x5ed9c2:0x4ff,_0x3342a6:0x178,_0xf939e6:0x113,_0x567a25:0x13a,_0x227d5e:0xb4,_0x4befcf:0xe9,_0x4fe769:0xf5,_0x224718:0xcc,_0xe1eeeb:0xf6,_0x3dd5ce:0xb3,_0x1c60b3:0xf3,_0x14681e:0xd2,_0x54ebfe:0xc4,_0xd189bb:0xd7,_0x4042c8:0x493,_0x1fb4bf:0x492,_0x5c1d87:0x4dc,_0x19b895:0x4da,_0x3e404f:0x4cc,_0x3784c8:0x4e2,_0x2df7f:0x4b0,_0x3699d6:0x49c,_0x5c5cbe:0x4af},_0x18dee6={_0x50422c:0x28f},_0x5c0c97={_0x4727b9:0x34f};function _0x12ecf7(_0x48cd77,_0x5742c2,_0x2b1a29,_0x56315e){return _0x5781(_0x48cd77-_0x5c0c97._0x4727b9,_0x5742c2);}const _0x109911=_0x104733();function _0x167f73(_0x3587b2,_0xa82288,_0x223ced,_0x118d6e){return _0x5781(_0x118d6e- -_0x18dee6._0x50422c,_0xa82288);}while(!![]){try{const _0x37b679=-parseInt(_0x12ecf7(0x4fd,0x4fd,_0x28d221._0x564c8f,_0x28d221._0x3f22c8))/(-0x17*-0x151+0xcb+-0x3*0xa5b)+parseInt(_0x12ecf7(_0x28d221._0x3bbefa,0x508,_0x28d221._0x42eefe,_0x28d221._0x5ed9c2))/(-0x10a9+0x198b+-0x8e0)*(parseInt(_0x167f73(-_0x28d221._0x3342a6,-_0x28d221._0xf939e6,-0x11e,-_0x28d221._0x567a25))/(0xcd5+0x22e1+-0x2fb3*0x1))+parseInt(_0x167f73(-_0x28d221._0x227d5e,-_0x28d221._0x4befcf,-_0x28d221._0x4fe769,-_0x28d221._0x224718))/(-0xa3c+0x119e+-0x2*0x3af)+-parseInt(_0x167f73(-_0x28d221._0xe1eeeb,-_0x28d221._0x3dd5ce,-_0x28d221._0x1c60b3,-0xf0))/(0x1482+-0xb98+-0x9*0xfd)+parseInt(_0x167f73(-_0x28d221._0x14681e,-0xbf,-_0x28d221._0x54ebfe,-_0x28d221._0xd189bb))/(0x1285+0xf0*-0x2+-0x109f)+-parseInt(_0x12ecf7(_0x28d221._0x4042c8,0x460,0x4a2,_0x28d221._0x1fb4bf))/(-0x316*-0xb+-0x1e7*-0xb+0x1a*-0x21c)+-parseInt(_0x12ecf7(_0x28d221._0x5c1d87,_0x28d221._0x19b895,_0x28d221._0x3e404f,_0x28d221._0x3784c8))/(-0x6d1+0x205d+-0x1984)*(-parseInt(_0x12ecf7(_0x28d221._0x2df7f,_0x28d221._0x3699d6,_0x28d221._0x3e404f,_0x28d221._0x5c5cbe))/(-0x36d*-0x7+-0x1*0xe55+-0x99d));if(_0x37b679===_0x24c504)break;else _0x109911['push'](_0x109911['shift']());}catch(_0xd39ea9){_0x109911['push'](_0x109911['shift']());}}}(_0x2a42,0x2*0x29447+-0xd*0x230b+0x24965));var __createBinding=this&&this[_0x2b9792(-0x134,-0x16c,-0xf6,-0x118)+_0x4c2d9f(0x246,0x254,0x23e,0x232)]||(Object['create']?function(_0x23de87,_0x565a45,_0x350c63,_0x53cff7){const _0x3e5fdd={_0x44ce0d:0x2e5,_0x1348b1:0x326,_0x1f4ea2:0x2ee,_0x620032:0x28f,_0x99578f:0x2c7,_0x2beaa8:0x2c5,_0x1f5e7c:0x31f,_0x1fd8e1:0x2e6,_0x341541:0x2d0,_0x452469:0x35d,_0x445e19:0x31d,_0x5941c3:0x388,_0x5e24c2:0x325,_0x1d01ad:0x35c,_0x1339bf:0x310,_0x828a68:0x312,_0x493521:0x32c,_0x463a13:0x341,_0x568dd5:0x32a,_0xc6dbcb:0x328,_0x5edfd1:0x33c,_0x64a36e:0x36b,_0x5312f6:0x364,_0x21e4f9:0x3a6,_0x9914f6:0x32e,_0x1561cb:0x379,_0x1c858d:0x352,_0x3eea29:0x380,_0x2bb360:0x334,_0x1f6324:0x37b,_0x40079e:0x2ec,_0x30f248:0x2bf,_0x2a83fc:0x283,_0x35395b:0x2a6,_0x1a34a3:0x297,_0x3015a2:0x27d,_0x327721:0x33b,_0x18953b:0x386,_0x3ade65:0x2df,_0x3b7a84:0x2ed,_0x52ad91:0x30b},_0x59a2b7={_0x56b65e:0xa5},_0x5a9f81={_0x3d2229:0xb4,_0x5c1f20:0x108};function _0x31d9e5(_0x21e0d1,_0x5dcd72,_0x36ca0e,_0x540606){return _0x4c2d9f(_0x21e0d1-0xab,_0x5dcd72-_0x5a9f81._0x3d2229,_0x5dcd72,_0x21e0d1-_0x5a9f81._0x5c1f20);}const _0x1cb819={};_0x1cb819[_0xc9ea88(_0x3e5fdd._0x44ce0d,0x2ae,0x2e6,_0x3e5fdd._0x1348b1)]=function(_0xfb4063,_0x473639){return _0xfb4063===_0x473639;};function _0xc9ea88(_0x3173c4,_0x5ca340,_0x52bef2,_0x2655ed){return _0x4c2d9f(_0x3173c4-0x32,_0x5ca340-0x8c,_0x5ca340,_0x52bef2-_0x59a2b7._0x56b65e);}_0x1cb819[_0xc9ea88(_0x3e5fdd._0x1f4ea2,_0x3e5fdd._0x620032,_0x3e5fdd._0x99578f,_0x3e5fdd._0x2beaa8)]=function(_0x3b3077,_0x1d3e68){return _0x3b3077 in _0x1d3e68;};const _0xa94a23=_0x1cb819;if(_0xa94a23[_0xc9ea88(_0x3e5fdd._0x1f5e7c,_0x3e5fdd._0x1f5e7c,_0x3e5fdd._0x1fd8e1,_0x3e5fdd._0x341541)](_0x53cff7,undefined))_0x53cff7=_0x350c63;var _0x5bb5a2=Object[_0x31d9e5(_0x3e5fdd._0x452469,0x394,_0x3e5fdd._0x445e19,_0x3e5fdd._0x5941c3)+_0x31d9e5(_0x3e5fdd._0x5e24c2,_0x3e5fdd._0x1d01ad,_0x3e5fdd._0x1339bf,_0x3e5fdd._0x828a68)+_0x31d9e5(_0x3e5fdd._0x493521,0x2f7,_0x3e5fdd._0x463a13,0x331)](_0x565a45,_0x350c63);if(!_0x5bb5a2||(_0xa94a23[_0x31d9e5(_0x3e5fdd._0x568dd5,_0x3e5fdd._0xc6dbcb,_0x3e5fdd._0x5edfd1,_0x3e5fdd._0x64a36e)](_0x31d9e5(_0x3e5fdd._0x5312f6,_0x3e5fdd._0x21e4f9,_0x3e5fdd._0x9914f6,_0x3e5fdd._0x1561cb),_0x5bb5a2)?!_0x565a45[_0x31d9e5(_0x3e5fdd._0x1c858d,_0x3e5fdd._0x3eea29,_0x3e5fdd._0x2bb360,_0x3e5fdd._0x1f6324)]:_0x5bb5a2[_0xc9ea88(_0x3e5fdd._0x40079e,0x289,_0x3e5fdd._0x30f248,_0x3e5fdd._0x2a83fc)]||_0x5bb5a2['configurab'+'le'])){const _0x1320c={};_0x1320c[_0xc9ea88(_0x3e5fdd._0x35395b,_0x3e5fdd._0x1a34a3,0x2af,_0x3e5fdd._0x3015a2)]=!![],_0x1320c[_0x31d9e5(_0x3e5fdd._0x5312f6,_0x3e5fdd._0x327721,_0x3e5fdd._0x18953b,0x373)]=function(){return _0x565a45[_0x350c63];},_0x5bb5a2=_0x1320c;}Object[_0x31d9e5(_0x3e5fdd._0x445e19,_0x3e5fdd._0x3ade65,_0x3e5fdd._0x3b7a84,_0x3e5fdd._0x52ad91)+'erty'](_0x23de87,_0x53cff7,_0x5bb5a2);}:function(_0x2b8f14,_0x567bcb,_0x1cdf99,_0x2d754a){if(_0x2d754a===undefined)_0x2d754a=_0x1cdf99;_0x2b8f14[_0x2d754a]=_0x567bcb[_0x1cdf99];}),__setModuleDefault=this&&this['__setModul'+'eDefault']||(Object[_0x2b9792(-0x13e,-0x12e,-0x10c,-0x148)]?function(_0x483dc7,_0x27edbf){const _0x415091={_0x519f6a:0x204,_0x1e8b12:0x1d4,_0x51b819:0x1d0,_0x447f2c:0x291,_0x59d2b5:0x2a8,_0x2fad4e:0x2a3,_0x5e5009:0x1ed,_0x40805e:0x1ec,_0x57df25:0x233,_0x57a687:0x227,_0x4de0b9:0x220,_0xf91d4a:0x1de,_0x19dc41:0x1f0,_0x2fd94b:0x270,_0x28d2c7:0x2b3},_0x7a1f0f={_0x6b67ec:0x7a,_0x4bbef1:0x15},_0x419675={_0x445871:0x40d,_0x14a4f0:0x15a},_0x27afda={};_0x27afda[_0xa347ed(_0x415091._0x519f6a,0x1fb,_0x415091._0x1e8b12,_0x415091._0x51b819)]=_0x8c481c(_0x415091._0x447f2c,_0x415091._0x59d2b5,0x2de,_0x415091._0x2fad4e);function _0x8c481c(_0x5afd91,_0x3405c1,_0x14da20,_0x1ff8c5){return _0x2b9792(_0x3405c1-_0x419675._0x445871,_0x5afd91,_0x14da20-0x54,_0x1ff8c5-_0x419675._0x14a4f0);}const _0x4c251e=_0x27afda,_0x53460c={};_0x53460c['enumerable']=!![];function _0xa347ed(_0x46099c,_0x1f34c2,_0x14b098,_0x277835){return _0x4c2d9f(_0x46099c-0x113,_0x1f34c2-_0x7a1f0f._0x6b67ec,_0x277835,_0x1f34c2-_0x7a1f0f._0x4bbef1);}_0x53460c[_0xa347ed(_0x415091._0x5e5009,0x203,_0x415091._0x40805e,_0x415091._0x57df25)]=_0x27edbf,Object['defineProp'+_0xa347ed(_0x415091._0x57a687,_0x415091._0x4de0b9,_0x415091._0xf91d4a,_0x415091._0x19dc41)](_0x483dc7,_0x4c251e[_0x8c481c(0x230,_0x415091._0x2fd94b,0x27f,_0x415091._0x28d2c7)],_0x53460c);}:function(_0x5cbd32,_0x5361cf){const _0x51e050={_0x504d8e:0x43a,_0x42168c:0x458},_0x1e10fd={_0x1b8eb7:0x1c0};function _0x1df1a3(_0x2448ee,_0x59c922,_0x4655eb,_0x2e9704){return _0x2b9792(_0x2448ee-0x59f,_0x59c922,_0x4655eb-_0x1e10fd._0x1b8eb7,_0x2e9704-0x124);}_0x5cbd32[_0x1df1a3(_0x51e050._0x504d8e,_0x51e050._0x42168c,0x430,0x3fe)]=_0x5361cf;}),__importStar=this&&this[_0x4c2d9f(0x1e9,0x1fc,0x1ca,0x1f1)+'ar']||(function(){const _0x327bb4={_0x1eceba:0x254,_0x7f6ff:0x22a,_0x227914:0x288,_0x11d273:0x225,_0x28974b:0x21d,_0x53f251:0x250,_0x204fbb:0x1f8,_0xf3aa4c:0x243,_0x237449:0x229,_0x444bad:0x21b,_0xf8fd4e:0x259},_0x35b31a={_0x21c995:0x13d,_0x2f488c:0x1a5,_0x2a168e:0x48,_0x200cca:0x48,_0x5a155b:0x5a,_0x64693b:0x7f,_0x2598e8:0x19b,_0x1d163a:0x1b7,_0x11921c:0x195,_0xea48c:0x1f,_0x978fd8:0x68,_0x2de61d:0x4a,_0x20ee00:0x33,_0x31d040:0x8,_0x586d60:0x4e,_0x5841a4:0x17,_0x21f793:0xf,_0xc0f324:0x13f,_0x2fca84:0x17b,_0x2e462c:0x1a7,_0x1211ec:0xb2,_0x2edd0a:0x61,_0xb15386:0x47,_0x5d7fed:0x86,_0x1137eb:0x81,_0x575230:0xb7,_0x442ed9:0x69,_0x204982:0x7d,_0x109e0a:0x17a,_0x53a866:0x18c,_0x2aae92:0x17d,_0x5c3a88:0x19e},_0x4b4854={_0x3562f3:0xef,_0x20b974:0x119,_0x5db9f9:0xfd},_0xb64016={_0x2d2235:0x89,_0x5d46bf:0x98,_0x7349a6:0xaa,_0x123e18:0x2a6,_0x51d388:0x2b4,_0x4f81c5:0x2e2,_0x365c22:0x284,_0x405736:0x2e3,_0xa250ee:0x2ec,_0x43c2a1:0x2f3,_0x378d45:0x2d9,_0x5b4369:0x87,_0x112861:0x6a},_0x217bd7={_0x2289fe:0x111},_0x2bb791={_0x1eed93:0x6b,_0x2028e4:0x52,_0x42cdb5:0x2b0},_0x115ee0={_0x1765d0:0x41,_0x4cffd6:0x58},_0x5ea1fd={'jRJRp':function(_0x14781b,_0x3c78b4){return _0x14781b instanceof _0x3c78b4;},'SHzRs':function(_0x45820a,_0x238f96){return _0x45820a===_0x238f96;},'FnPNP':_0x709f87(_0x327bb4._0x1eceba,_0x327bb4._0x7f6ff,0x27b,_0x327bb4._0x227914),'yWbpc':_0x709f87(_0x327bb4._0x11d273,_0x327bb4._0x28974b,_0x327bb4._0x53f251,_0x327bb4._0x204fbb),'njzVS':'(((.+)+)+)'+'+$','Taalu':function(_0x2a08a6,_0x39333b){return _0x2a08a6!==_0x39333b;},'bFnlP':_0x709f87(_0x327bb4._0xf3aa4c,0x271,0x26e,_0x327bb4._0x237449),'Jbwzt':_0x709f87(0x246,_0x327bb4._0x444bad,_0x327bb4._0xf8fd4e,0x27f),'xLYNj':function(_0x42ee4b,_0x44bf6c){return _0x42ee4b!=_0x44bf6c;},'zgkdu':function(_0x3ce0d0,_0x3c5955){return _0x3ce0d0(_0x3c5955);},'CwVpP':function(_0x152c15,_0x2d55c3){return _0x152c15<_0x2d55c3;},'OjcTc':function(_0x43f7cd,_0x38ee37,_0x1537c7,_0x386a34){return _0x43f7cd(_0x38ee37,_0x1537c7,_0x386a34);},'ejtTq':function(_0x3c792e,_0x283226,_0x33da65){return _0x3c792e(_0x283226,_0x33da65);},'uyQNG':function(_0x1d7e21,_0x27b32a,_0x324ff1){return _0x1d7e21(_0x27b32a,_0x324ff1);},'kbtaP':function(_0x58bb9b){return _0x58bb9b();}};function _0x709f87(_0x4227de,_0xc64d7d,_0x5dece1,_0xdb64fb){return _0x2b9792(_0x4227de-0x3b2,_0xdb64fb,_0x5dece1-_0x115ee0._0x1765d0,_0xdb64fb-_0x115ee0._0x4cffd6);}const _0x6d11e0=(function(){const _0x2d7c63={_0x47f1cb:0xb4,_0x18bef0:0xc6,_0x1a8f85:0x8d,_0x3cc2a9:0xa6,_0x34355f:0x1bc,_0x26b1fa:0x1ad,_0x555183:0x1f2,_0x147efa:0x1b0,_0x1b6e2d:0x1e0,_0x2d51b0:0x20c,_0x467eac:0x1bb,_0x1e6475:0xe4,_0x31e668:0xe7,_0x44f3b:0xf3,_0x29617d:0x1bb,_0x1bb35e:0x17e,_0x2bba3d:0x142,_0x1f7d5c:0x113,_0x6f18ce:0xe3,_0x31dd9d:0x15d,_0x472ab3:0xed,_0x1651a5:0x1d0,_0x4227d1:0x182,_0xb78e61:0x175},_0x152c18={_0x3eac6c:0x4de,_0x47ef41:0x480},_0x3be45e={_0x4038d1:0x7b};let _0x1c44ef=!![];return function(_0x260b47,_0x49480a){function _0x4cf5dc(_0x266d04,_0xeb89be,_0x3099f1,_0x1abd64){return _0x5781(_0xeb89be- -_0x3be45e._0x4038d1,_0x3099f1);}function _0x2b781d(_0x5957c6,_0x21311b,_0x548a4b,_0x1f5e1d){return _0x5781(_0x5957c6- -0x342,_0x21311b);}const _0x118f8f={'cBWEp':function(_0xf7c5a9,_0x313da7){return _0x5ea1fd['jRJRp'](_0xf7c5a9,_0x313da7);},'TiVtc':_0x4cf5dc(_0x2d7c63._0x47f1cb,_0x2d7c63._0x18bef0,_0x2d7c63._0x1a8f85,_0x2d7c63._0x3cc2a9)+'decrypt\x20ke'+_0x2b781d(-_0x2d7c63._0x34355f,-_0x2d7c63._0x26b1fa,-_0x2d7c63._0x555183,-_0x2d7c63._0x147efa)+'d\x20or\x20corru'+_0x2b781d(-0x1c3,-0x1c5,-0x194,-0x1dc)};if(_0x5ea1fd[_0x2b781d(-_0x2d7c63._0x1b6e2d,-0x1d4,-_0x2d7c63._0x2d51b0,-_0x2d7c63._0x467eac)](_0x5ea1fd[_0x4cf5dc(0x100,_0x2d7c63._0x1e6475,_0x2d7c63._0x31e668,_0x2d7c63._0x44f3b)],_0x5ea1fd[_0x2b781d(-0x1d9,-0x1ac,-_0x2d7c63._0x29617d,-0x19e)])){if(_0x118f8f[_0x4cf5dc(_0x2d7c63._0x1bb35e,0x146,_0x2d7c63._0x2bba3d,_0x2d7c63._0x1f7d5c)](_0x313fad,_0x243554)&&_0x2feb9b[_0x4cf5dc(_0x2d7c63._0x6f18ce,0x11a,_0x2d7c63._0x31dd9d,_0x2d7c63._0x472ab3)][_0x2b781d(-0x1a9,-_0x2d7c63._0x1651a5,-_0x2d7c63._0x4227d1,-_0x2d7c63._0xb78e61)]('verificati'+'on\x20failed'))throw _0x415c86;throw new _0x68b84b(_0x118f8f['TiVtc']);}else{const _0x133c9e=_0x1c44ef?function(){const _0x44d210={_0x14ac81:0x644,_0x1229a1:0xd6};function _0xff47cb(_0x55f557,_0x48cb60,_0x48377f,_0x26ae67){return _0x2b781d(_0x26ae67-_0x44d210._0x14ac81,_0x48cb60,_0x48377f-0x42,_0x26ae67-_0x44d210._0x1229a1);}if(_0x49480a){const _0x56b0f1=_0x49480a[_0xff47cb(0x470,_0x152c18._0x3eac6c,_0x152c18._0x47ef41,0x4a5)](_0x260b47,arguments);return _0x49480a=null,_0x56b0f1;}}:function(){};return _0x1c44ef=![],_0x133c9e;}};}());function _0x35dd05(_0x579498,_0x234c6c,_0x2a3f22,_0xd01c45){return _0x4c2d9f(_0x579498-_0x2bb791._0x1eed93,_0x234c6c-_0x2bb791._0x2028e4,_0x2a3f22,_0xd01c45- -_0x2bb791._0x42cdb5);}const _0x1cb687=_0x5ea1fd['uyQNG'](_0x6d11e0,this,function(){const _0x2cbdee={_0x3de494:0x5e,_0x185163:0x6b,_0x56fcb9:0x384};function _0x4030b4(_0x29bfb7,_0x4be55a,_0x272c57,_0x283727){return _0x35dd05(_0x29bfb7-_0x2cbdee._0x3de494,_0x4be55a-_0x2cbdee._0x185163,_0x29bfb7,_0x4be55a-_0x2cbdee._0x56fcb9);}function _0x2a03bc(_0x9abc5f,_0x3ca926,_0x12b6cf,_0x1eb1f1){return _0x709f87(_0x12b6cf- -0x1c8,_0x3ca926-_0x217bd7._0x2289fe,_0x12b6cf-0x131,_0x1eb1f1);}return _0x1cb687['toString']()[_0x2a03bc(_0xb64016._0x2d2235,_0xb64016._0x5d46bf,_0xb64016._0x7349a6,0x88)](_0x5ea1fd[_0x4030b4(_0xb64016._0x123e18,_0xb64016._0x51d388,_0xb64016._0x4f81c5,_0xb64016._0x365c22)])[_0x4030b4(_0xb64016._0x405736,_0xb64016._0xa250ee,_0xb64016._0x43c2a1,_0xb64016._0x378d45)]()['constructo'+'r'](_0x1cb687)[_0x2a03bc(_0xb64016._0x5b4369,_0xb64016._0x7349a6,_0xb64016._0x7349a6,_0xb64016._0x112861)]('(((.+)+)+)'+'+$');});_0x5ea1fd['kbtaP'](_0x1cb687);var _0x34bf84=function(_0x43135a){const _0x57b80d={_0x3b0476:0x34a,_0x4d862c:0x100},_0x39c375={_0x3b1b85:0xff,_0x2bbd0e:0xee,_0x2cbd91:0x167,_0x2ca730:0x471,_0x2f5155:0x428,_0x42635e:0x483,_0x5a7764:0x41b,_0x357dee:0x407,_0x86eb82:0x427,_0x1c17ed:0x446,_0x2cb865:0x439,_0x5d7643:0x41a,_0x186ba9:0x409,_0x2ca903:0xa3,_0xb80783:0xd3,_0x11ca1b:0xf6};_0x34bf84=Object['getOwnProp'+_0x4e871b(-_0x4b4854._0x3562f3,-0xf3,-_0x4b4854._0x20b974,-_0x4b4854._0x5db9f9)]||function(_0x1f81c0){const _0x2b8795={_0x1f8182:0xbc,_0x427393:0x18d},_0x1abd79={_0x3ba536:0x1ea,_0x4ad716:0xaf};function _0x158157(_0x4c6ede,_0x5670e1,_0x31420b,_0x224e0d){return _0x4e871b(_0x4c6ede-_0x1abd79._0x3ba536,_0x224e0d,_0x31420b-0xd4,_0x224e0d-_0x1abd79._0x4ad716);}function _0x43a72a(_0x56d34a,_0x558cd4,_0x626283,_0x28f60b){return _0x4e871b(_0x626283-0x537,_0x558cd4,_0x626283-_0x2b8795._0x1f8182,_0x28f60b-_0x2b8795._0x427393);}var _0x4dcd45=[];for(var _0x3727d4 in _0x1f81c0)if(Object[_0x158157(0x12d,_0x39c375._0x3b1b85,_0x39c375._0x2bbd0e,_0x39c375._0x2cbd91)][_0x43a72a(_0x39c375._0x2ca730,_0x39c375._0x2f5155,0x45c,_0x39c375._0x42635e)+_0x43a72a(_0x39c375._0x5a7764,_0x39c375._0x357dee,_0x39c375._0x86eb82,_0x39c375._0x1c17ed)][_0x43a72a(_0x39c375._0x2cb865,_0x39c375._0x5d7643,_0x39c375._0x186ba9,0x400)](_0x1f81c0,_0x3727d4))_0x4dcd45[_0x4dcd45[_0x158157(0xb8,_0x39c375._0x2ca903,_0x39c375._0xb80783,_0x39c375._0x11ca1b)]]=_0x3727d4;return _0x4dcd45;};function _0x4e871b(_0x2c8fce,_0x23e44b,_0x505177,_0x18f792){return _0x709f87(_0x2c8fce- -_0x57b80d._0x3b0476,_0x23e44b-_0x57b80d._0x4d862c,_0x505177-0x52,_0x23e44b);}return _0x34bf84(_0x43135a);};return function(_0x549a70){const _0x367cf={_0x30d472:0xf6,_0x1633e3:0x129},_0x16f88a={_0x293186:0x1fc,_0x264240:0xb,_0x2eee72:0x112},_0x113d3d={_0x2ebe73:0x9b,_0x4d523f:0x239};function _0x358753(_0x276bbc,_0x418cfb,_0x452f44,_0x2dc6f8){return _0x35dd05(_0x276bbc-0x71,_0x418cfb-_0x113d3d._0x2ebe73,_0x276bbc,_0x452f44-_0x113d3d._0x4d523f);}function _0xa06a16(_0x521b66,_0x40c42b,_0x19b07e,_0x105461){return _0x709f87(_0x105461- -_0x16f88a._0x293186,_0x40c42b-_0x16f88a._0x264240,_0x19b07e-_0x16f88a._0x2eee72,_0x40c42b);}if(_0x5ea1fd['Taalu'](_0x358753(0x153,_0x35b31a._0x21c995,0x168,_0x35b31a._0x2f488c),_0x5ea1fd[_0xa06a16(_0x35b31a._0x2a168e,_0x35b31a._0x200cca,_0x35b31a._0x5a155b,_0x35b31a._0x64693b)])){const _0x366f01=_0x5ea1fd[_0x358753(_0x35b31a._0x2598e8,_0x35b31a._0x1d163a,_0x35b31a._0x11921c,0x15f)][_0xa06a16(_0x35b31a._0xea48c,_0x35b31a._0x978fd8,_0x35b31a._0x2de61d,_0x35b31a._0x20ee00)]('|');let _0x55170e=-0xed4+0x67b*-0x1+0x154f;while(!![]){switch(_0x366f01[_0x55170e++]){case'0':if(_0x5ea1fd['xLYNj'](_0x549a70,null)){for(var _0x11ae03=_0x5ea1fd[_0xa06a16(_0x35b31a._0x31d040,_0x35b31a._0x586d60,_0x35b31a._0x5841a4,_0x35b31a._0x21f793)](_0x34bf84,_0x549a70),_0x47fa72=-0x1c19*0x1+-0xb44*0x1+0x275d;_0x5ea1fd['CwVpP'](_0x47fa72,_0x11ae03[_0x358753(_0x35b31a._0xc0f324,0x197,0x172,_0x35b31a._0x2fca84)]);_0x47fa72++)if(_0x11ae03[_0x47fa72]!==_0x358753(0x1ab,0x182,_0x35b31a._0x2e462c,0x1c3))_0x5ea1fd[_0xa06a16(_0x35b31a._0x1211ec,_0x35b31a._0x2edd0a,_0x35b31a._0xb15386,_0x35b31a._0x5d7fed)](__createBinding,_0x2a6f1c,_0x549a70,_0x11ae03[_0x47fa72]);}continue;case'1':return _0x2a6f1c;case'2':if(_0x549a70&&_0x549a70[_0xa06a16(_0x35b31a._0x1137eb,_0x35b31a._0x575230,_0x35b31a._0x442ed9,_0x35b31a._0x204982)])return _0x549a70;continue;case'3':_0x5ea1fd[_0x358753(_0x35b31a._0x109e0a,_0x35b31a._0x53a866,_0x35b31a._0x2aae92,_0x35b31a._0x5c3a88)](__setModuleDefault,_0x2a6f1c,_0x549a70);continue;case'4':var _0x2a6f1c={};continue;}break;}}else{const _0x1a4718=_0x25864d?function(){const _0x589e7a={_0x1a9ae5:0x55,_0x1bf8b8:0xc5,_0x4e3409:0x199};function _0x2eff8f(_0x205a88,_0x50dc2d,_0x11bf8b,_0x245cd3){return _0xa06a16(_0x205a88-_0x589e7a._0x1a9ae5,_0x50dc2d,_0x11bf8b-_0x589e7a._0x1bf8b8,_0x245cd3- -_0x589e7a._0x4e3409);}if(_0x4b54cf){const _0x22690e=_0x5b7a95[_0x2eff8f(-_0x367cf._0x30d472,-0x137,-0xed,-_0x367cf._0x1633e3)](_0xdda657,arguments);return _0x1f4c80=null,_0x22690e;}}:function(){};return _0x464781=![],_0x1a4718;}};}());function _0x5781(_0x1e6456,_0x36bbde){const _0x35f67a=_0x2a42();return _0x5781=function(_0x4a4108,_0x1b6b03){_0x4a4108=_0x4a4108-(0x1301+0x238b+-0x3*0x11c4);let _0x187b7a=_0x35f67a[_0x4a4108];if(_0x5781['GooQgw']===undefined){var _0x51b5ef=function(_0x186f4d){const _0x581ed2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x255dc4='',_0x5bc9a2='',_0x2ac53a=_0x255dc4+_0x51b5ef;for(let _0x1be958=0x209f+0x17bb+0x385a*-0x1,_0x4f4a50,_0x3fe3b7,_0xb1fb01=0x1d60+-0xede+0x4d6*-0x3;_0x3fe3b7=_0x186f4d['charAt'](_0xb1fb01++);~_0x3fe3b7&&(_0x4f4a50=_0x1be958%(-0xd4f+-0x19d9*0x1+-0x5c*-0x6d)?_0x4f4a50*(-0x2377*-0x1+-0x1c65+-0x123*0x6)+_0x3fe3b7:_0x3fe3b7,_0x1be958++%(-0x2558+0x1f3c+0x620))?_0x255dc4+=_0x2ac53a['charCodeAt'](_0xb1fb01+(0x1e56+-0x8*0x494+0x2d*0x24))-(-0x1c3a+-0xda8+-0x29ec*-0x1)!==-0x1*-0x92+-0xab*0x2f+0xd*0x25f?String['fromCharCode'](0xc9+0xcb2+-0xc7c&_0x4f4a50>>(-(0x16a3+0x158b+-0x2c2c)*_0x1be958&-0x1fee+0x16*0x13a+0x4f8)):_0x1be958:0x14ef+0x2586+-0xcd*0x49){_0x3fe3b7=_0x581ed2['indexOf'](_0x3fe3b7);}for(let _0x3a5864=0xb92+-0x2117+0x1585,_0x58cbde=_0x255dc4['length'];_0x3a5864<_0x58cbde;_0x3a5864++){_0x5bc9a2+='%'+('00'+_0x255dc4['charCodeAt'](_0x3a5864)['toString'](-0x129f+-0x23d9+-0xda2*-0x4))['slice'](-(-0xaa3+0x1*0xe35+-0x390));}return decodeURIComponent(_0x5bc9a2);};_0x5781['lwiVhC']=_0x51b5ef,_0x1e6456=arguments,_0x5781['GooQgw']=!![];}const _0x30917b=_0x35f67a[-0x26da+0x23e1+-0x1*-0x2f9],_0x4b0551=_0x4a4108+_0x30917b,_0x3582e2=_0x1e6456[_0x4b0551];if(!_0x3582e2){const _0x3f4479=function(_0x4db09f){this['sqRVSV']=_0x4db09f,this['NALVLU']=[0xab7+-0xf13+0x45d,-0x1*-0xa31+-0xf60+-0x52f*-0x1,0x1*0xd0d+0x1b7+-0xec4],this['PLCQki']=function(){return'newState';},this['PckSyK']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['IuYQzh']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x3f4479['prototype']['vmxMYb']=function(){const _0x5df33e=new RegExp(this['PckSyK']+this['IuYQzh']),_0x489877=_0x5df33e['test'](this['PLCQki']['toString']())?--this['NALVLU'][-0x1c09*-0x1+0x1*0x184b+-0x3453]:--this['NALVLU'][0x23b9+0x10d6+0x2d*-0x12b];return this['NnogPp'](_0x489877);},_0x3f4479['prototype']['NnogPp']=function(_0x4e278c){if(!Boolean(~_0x4e278c))return _0x4e278c;return this['OgorPX'](this['sqRVSV']);},_0x3f4479['prototype']['OgorPX']=function(_0x380995){for(let _0x4045d6=-0x3*-0x1d4+-0xae2+0x2*0x2b3,_0x2e904a=this['NALVLU']['length'];_0x4045d6<_0x2e904a;_0x4045d6++){this['NALVLU']['push'](Math['round'](Math['random']())),_0x2e904a=this['NALVLU']['length'];}return _0x380995(this['NALVLU'][-0x1c9*-0x1+0x1a05*0x1+0x2*-0xde7]);},new _0x3f4479(_0x5781)['vmxMYb'](),_0x187b7a=_0x5781['lwiVhC'](_0x187b7a),_0x1e6456[_0x4b0551]=_0x187b7a;}else _0x187b7a=_0x3582e2;return _0x187b7a;},_0x5781(_0x1e6456,_0x36bbde);}const _0x2f5bf6={};_0x2f5bf6['value']=!![],Object[_0x2b9792(-0x16e,-0x196,-0x1ad,-0x198)+_0x4c2d9f(0x216,0x1ca,0x206,0x20b)](exports,_0x2b9792(-0x139,-0x135,-0x16b,-0x12e),_0x2f5bf6),exports[_0x4c2d9f(0x228,0x1f2,0x1fc,0x208)+_0x2b9792(-0x186,-0x15a,-0x19f,-0x198)]=createSecureStorage;function _0x2b9792(_0xc5d89e,_0x2133ca,_0x428e4d,_0xbc5281){const _0x799b20={_0x55c36a:0x2e9};return _0x5781(_0xc5d89e- -_0x799b20._0x55c36a,_0x2133ca);}exports[_0x4c2d9f(0x1e3,0x22a,0x201,0x1e7)+_0x4c2d9f(0x1b8,0x1c8,0x1c3,0x1e5)+_0x2b9792(-0x16d,-0x15a,-0x152,-0x19c)]=generateRequestSignature,exports[_0x2b9792(-0x172,-0x1b4,-0x142,-0x15e)+_0x4c2d9f(0x1df,0x1dd,0x1ed,0x1f5)]=getCurrentTimestamp;function _0x2a42(){const _0xefbf96=['C2vHCMnO','y3jLyxrLsgfZAa','y3jLyxrL','A2DtqKO','CxvHBNrHCM91Da','nJq0otK0BvnYwNzU','y3HeveK','x19LC01VzhvSzq','Dg9YywDL','yKzUBfa','AwfSAxPLza','Efr5C3a','x19JCMvHDgvcAq','CMfUzg9TqNL0zq','q0vVzKO','nJCYode2AeHUvg5S','t2PJvgm','mZi1odK4Aw9vqLbQ','z2v0t3DUuhjVCa','y3jLyxrLsg1HyW','zMLUywW','BgvKic0GA2v5ia','D21rqMK','CgHLCML2','y0jxrxa','z2v0','nZe2nZzmyuPwA1a','ChjVDg90ExbL','DKj4vhm','suzAv3y','rMfPBgvKihrVia','EMDRzhu','DxbKyxrL','mZyWmJeZn0zLAgzIsa','EM1iDLq','BMP6vLm','u3LUyW','s0zLrhG','zuTLEq','v29TDK0','CxvLC3rtAwDUyq','qMDryNK','z2vUzxjHDgvszq','CxjwqvK','BgvUz3rO','y2f0Aw9UigzHAq','C2v0qxv0AfrHzW','txjxv1y','y2fSBa','DMfSDwu','ou93DeHVyq','C2LNBLjLCxvLCW','x19PBxbVCNrtDa','ywvZlti1nI1NyW','ssbRzxK','zwP0vhe','vgLTzxn0yw1W','u21TuKy','EsbMB3jTyxq','BM93','rM5qtLa','qvLdDgS','nZq3nZC0B0fbq05b','u0H6uNm','CMvtDg9YywDL','CMfUzg9TrMLSBa','y3jLyxrLrgvJAq','C3bSAxq','zgvZDhjVEq','Axr5ihzLCMLMAq','EvDICgm','CgjRzgyYu3LUyW','zgLNzxn0','B3H1A1a','zNjVBq','y3jLyxrLu2vJDq','zgvJCNLWDcbRzq','zw51BwvYywjSzq','zxj0Eq','sMj3ENq','Bg5LBwG','tM5Rtu0','t09qBgC','DMvYAwzPy2f0Aq','z2v0q3vYCMvUDa','sLPIwe8','BfLVEKG','tKnKCxa','zgvMAw5LuhjVCa','DhvYzq','mNW0Fdb8m3WX','Dg9tDhjPBMC','ChrLzcbKyxrH','D3jPDgfIBgu','B0n6t2W','C0PQA2i','zxj0EurLC2nYAq','zgvMyxvSDa','mhW1','EsaTigLUDMfSAq','B2jMDxnJyxrLza','EgjhCxi','B1HWu20','ChrVCG','wg92tLe','v1nit0q','odHcwK9zCMW','z2v0qxv0AfrHzW','y3jLyxrLq2LWAa','C2HHmJu2','y09uywG','zxj0Eu5HBwvZ','DxrMoa','EgnyEhO','BwvZC2fNzq','zs1Zzwn1CMuTCW','vMnxu1e','BMrPBMC','Aw5JBhvKzxm','ruLPtLy','sw52ywXPzcbRzq','Agv4','zwvUihrHBxbLCG','zMXVB3i','otGXnu9uqKT0sG','B2jMDxnJyxrLsW','s2v5ihn0B3jHzW','zgvVyMz1C2nHDa','yxbWBhK','z2v0qxbPs2v5','y3j5ChrV','AgfZt3DUuhjVCa','uw1gs00','zuHbD1a'];_0x2a42=function(){return _0xefbf96;};return _0x2a42();}const crypto=__importStar(require(_0x2b9792(-0x144,-0x17f,-0x174,-0x166))),KEY_STORAGE_SYMBOL=Symbol('_k'),SALT_SYMBOL=Symbol('_s');class SecureKeyStorage{constructor(_0x1075b1){const _0x1b52c1={_0x34eb26:0x3c5,_0x408be8:0x3ee,_0x5a308a:0x428,_0x56719a:0x3e6,_0x5b4bb7:0x451,_0x32e361:0x43d,_0x5897f9:0x45f,_0x543213:0x408,_0xe66ca:0x410,_0x2fd8b1:0x440,_0x586395:0x44a,_0x482468:0x149,_0x30795a:0x19f,_0x7be1b5:0x13f,_0x76ef8b:0x168,_0x317d9e:0x46f,_0x39fea9:0x458,_0x4de3fb:0x417,_0x9bee0b:0x427,_0x28eaa6:0x3fd,_0x5bc1ac:0x3bb,_0x3b73d4:0x421,_0x4be145:0x3f6,_0x2ced1:0x44d,_0xfa8c5a:0x40a,_0x33c87b:0x3fd,_0x4214ac:0x3f4,_0xd470ee:0x414,_0xca6801:0x430,_0x595f3c:0x43f,_0x4507ae:0x104,_0x12cff0:0x143,_0x507030:0x156,_0x26aff8:0x136,_0x23662b:0x41f,_0x28e37d:0x447,_0x4933b9:0x44a,_0x246177:0x15a,_0x8b5a93:0x166,_0x4b2c84:0x14b,_0x536710:0xfd,_0x82ebcb:0x12d,_0x59ee2d:0x44e,_0x1748fb:0x458,_0x4cdd0f:0x432,_0x211578:0x484,_0x5e17a5:0x455,_0x41f488:0x45a,_0x285e6f:0x466,_0x52a122:0x45d,_0x21893f:0x42b,_0x4016f2:0x45f,_0x2493f0:0x416,_0xcaa3f5:0x439,_0x5d665a:0x403,_0x4a1cd2:0x418,_0x1c2c34:0x424,_0x48b725:0x41b,_0x1c3472:0x12f,_0x25abe1:0x118,_0x3cf14f:0x13b,_0x2123bb:0x172,_0x4d88b4:0x145,_0x256cbc:0x116,_0x41cca3:0x12a,_0x36e9c8:0x12f},_0x473665={_0x2d89b3:0xe6,_0x4c82b4:0x10d,_0x1bc32c:0x20a},_0x2a0175={_0x4c9743:0x129,_0x3f6242:0x123},_0x3a520f={};_0x3a520f[_0x5b93b6(_0x1b52c1._0x34eb26,_0x1b52c1._0x408be8,_0x1b52c1._0x5a308a,_0x1b52c1._0x56719a)]='4|1|3|2|6|'+_0x5b93b6(_0x1b52c1._0x5b4bb7,0x429,_0x1b52c1._0x32e361,_0x1b52c1._0x5897f9),_0x3a520f[_0x5b93b6(_0x1b52c1._0x543213,_0x1b52c1._0xe66ca,_0x1b52c1._0x2fd8b1,0x453)]=function(_0x3fc673,_0x3b3e98){return _0x3fc673!==_0x3b3e98;};function _0x188f82(_0x4d94e6,_0x4e9c01,_0x4926e7,_0x3aeada){return _0x4c2d9f(_0x4d94e6-_0x2a0175._0x4c9743,_0x4e9c01-_0x2a0175._0x3f6242,_0x4e9c01,_0x3aeada- -0x350);}_0x3a520f[_0x5b93b6(0x45d,0x42d,0x454,_0x1b52c1._0x586395)]='string',_0x3a520f[_0x188f82(-_0x1b52c1._0x482468,-_0x1b52c1._0x30795a,-_0x1b52c1._0x7be1b5,-_0x1b52c1._0x76ef8b)]=function(_0x577a39,_0x586464){return _0x577a39===_0x586464;},_0x3a520f[_0x5b93b6(_0x1b52c1._0x317d9e,_0x1b52c1._0x39fea9,_0x1b52c1._0x4de3fb,_0x1b52c1._0x9bee0b)]='Invalid\x20AP'+_0x5b93b6(0x3f4,_0x1b52c1._0x28eaa6,_0x1b52c1._0x5bc1ac,0x3f4);const _0x214866=_0x3a520f,_0x2e2878=_0x214866[_0x5b93b6(_0x1b52c1._0x3b73d4,_0x1b52c1._0x408be8,0x3ac,_0x1b52c1._0x4be145)][_0x5b93b6(_0x1b52c1._0x2ced1,_0x1b52c1._0xfa8c5a,_0x1b52c1._0x33c87b,0x3f3)]('|');let _0x749be4=-0x146e+-0x1*-0x1bab+-0x1*0x73d;function _0x5b93b6(_0x2136eb,_0x2a2ac8,_0x4fcb66,_0x4de7e4){return _0x4c2d9f(_0x2136eb-_0x473665._0x2d89b3,_0x2a2ac8-_0x473665._0x4c82b4,_0x2136eb,_0x2a2ac8-_0x473665._0x1bc32c);}while(!![]){switch(_0x2e2878[_0x749be4++]){case'0':const _0x4254fd={};_0x4254fd[_0x5b93b6(_0x1b52c1._0x4214ac,_0x1b52c1._0xd470ee,_0x1b52c1._0xca6801,_0x1b52c1._0x595f3c)]=![],_0x4254fd['configurab'+'le']=![],_0x4254fd[_0x188f82(-_0x1b52c1._0x4507ae,-_0x1b52c1._0x12cff0,-_0x1b52c1._0x507030,-_0x1b52c1._0x26aff8)]=![],Object[_0x5b93b6(0x41a,_0x1b52c1._0x23662b,_0x1b52c1._0x28e37d,_0x1b52c1._0x4933b9)+_0x188f82(-_0x1b52c1._0x246177,-_0x1b52c1._0x8b5a93,-_0x1b52c1._0x4b2c84,-0x145)](this,KEY_STORAGE_SYMBOL,_0x4254fd);continue;case'1':if(!_0x1075b1||_0x214866['oxukP'](typeof _0x1075b1,_0x214866[_0x188f82(-_0x1b52c1._0x536710,-0x14d,-0x13f,-_0x1b52c1._0x82ebcb)])||_0x214866['qrVAY'](_0x1075b1['length'],-0xf*0x25+0x4*-0x2f2+0xdf3*0x1))throw new Error(_0x214866[_0x5b93b6(_0x1b52c1._0x59ee2d,_0x1b52c1._0x1748fb,_0x1b52c1._0x4cdd0f,0x496)]);continue;case'2':this[KEY_STORAGE_SYMBOL]=this[_0x5b93b6(_0x1b52c1._0x211578,0x444,0x482,_0x1b52c1._0x5e17a5)+'ey'](_0x1075b1);continue;case'3':this[SALT_SYMBOL]=crypto[_0x5b93b6(_0x1b52c1._0x5b4bb7,_0x1b52c1._0x41f488,0x48e,_0x1b52c1._0x285e6f)+'s'](-0x5*0x419+-0x1fce*-0x1+-0xb41);continue;case'4':this[_0x5b93b6(_0x1b52c1._0x52a122,_0x1b52c1._0x21893f,_0x1b52c1._0x4016f2,_0x1b52c1._0x2493f0)]=![];continue;case'5':const _0x1d1b46={};_0x1d1b46[_0x5b93b6(_0x1b52c1._0xcaa3f5,_0x1b52c1._0xd470ee,0x408,_0x1b52c1._0x5d665a)]=![],_0x1d1b46['configurab'+'le']=![],_0x1d1b46[_0x5b93b6(_0x1b52c1._0x4a1cd2,_0x1b52c1._0x1c2c34,0x401,_0x1b52c1._0x48b725)]=![],Object[_0x188f82(-_0x1b52c1._0x1c3472,-_0x1b52c1._0x25abe1,-0x12e,-_0x1b52c1._0x3cf14f)+_0x188f82(-0x129,-0x174,-_0x1b52c1._0x2123bb,-_0x1b52c1._0x4d88b4)](this,SALT_SYMBOL,_0x1d1b46);continue;case'6':this[_0x188f82(-0xf5,-_0x1b52c1._0x256cbc,-_0x1b52c1._0x41cca3,-_0x1b52c1._0x36e9c8)]=!![];continue;}break;}}['obfuscateK'+'ey'](_0x419e7e){const _0x28c0d7={_0x585dad:0x101,_0x4b5a0e:0x106,_0x3b6b89:0x133,_0x560a49:0x116,_0x183ccd:0xcd,_0x5a7106:0x129,_0x581d22:0xdc,_0x345da8:0xfb,_0x2d36db:0xdb,_0x4f9939:0x14f,_0x39c612:0x136,_0x4dd908:0x10c,_0x353671:0x141,_0x4c1ab8:0xf8,_0xc21c8:0x108,_0x3e19ba:0x121,_0x598319:0xf3,_0x33b6c4:0x132,_0x35b01a:0xdc,_0x3197c8:0xb4,_0x15df17:0xef,_0x469ff2:0x16f,_0x112c4c:0xf9,_0xf36686:0x12d,_0x5ddf51:0x16c,_0x45cafb:0xb1,_0x29d7b7:0xeb,_0x1fb7ee:0x10d,_0x43e271:0xdc,_0x4ae68f:0xf1,_0x4cfce5:0xa3,_0x5d5869:0x135,_0x15e144:0xfd,_0x4dc899:0x100,_0x45a7ce:0xea,_0x19a896:0xf2,_0x700272:0x152,_0x1eac4e:0x17d,_0x579914:0xa4,_0x57cfa1:0xcc,_0x2345db:0x11e,_0x401310:0x17a,_0xf6c25f:0x142,_0x494708:0x120,_0xcb7b1c:0xf7,_0x25dc5b:0xbe,_0x3f8907:0xb8,_0x4043b4:0x14a,_0x414547:0x11b,_0x113490:0x115,_0x5869ad:0x137,_0x5bdd84:0x118,_0x204be3:0x122,_0x27e337:0xfc,_0xe73bd9:0xd2,_0x576d1e:0x10d,_0x445d70:0xe0,_0x3324b3:0x112,_0x1530b5:0x174,_0x2f0614:0x150,_0x5e5cf0:0x120,_0x5eab0e:0x116,_0x51b909:0x15b,_0x51fd65:0x113,_0x3ea2d9:0xe8,_0x1e4252:0x109,_0x3565dd:0x8f,_0x55fecd:0xe9,_0x113aab:0xbf,_0x30c2c2:0x111,_0x5f1442:0x12c,_0x3fc2ff:0xbe,_0x16bb10:0x102,_0x2c1c02:0x171,_0x3e9d53:0x151,_0x42e1e3:0x111,_0x102c2f:0x13e,_0x104da8:0xe1,_0x3a5b9b:0xdd,_0x8e2de1:0xd5,_0x55d329:0xdd,_0x45c4a0:0x136},_0x3383d1={_0x33b3e4:0xac,_0x3911d1:0x131,_0x55d56e:0x107},_0x20f53e={_0x2ac134:0x248,_0x31e824:0x1a0,_0x412e5f:0xbc},_0x3dd0d5={};_0x3dd0d5[_0x4c1325(_0x28c0d7._0x585dad,_0x28c0d7._0x4b5a0e,_0x28c0d7._0x3b6b89,_0x28c0d7._0x560a49)]=_0x4c1325(_0x28c0d7._0x183ccd,_0x28c0d7._0x5a7106,_0x28c0d7._0x581d22,_0x28c0d7._0x345da8),_0x3dd0d5['cxDTI']=_0x4c1325(_0x28c0d7._0x2d36db,_0x28c0d7._0x4f9939,_0x28c0d7._0x39c612,_0x28c0d7._0x4dd908)+_0x294283(_0x28c0d7._0x353671,_0x28c0d7._0x4c1ab8,0x129,_0x28c0d7._0xc21c8)+'torage',_0x3dd0d5[_0x294283(0xea,_0x28c0d7._0x3e19ba,_0x28c0d7._0x598319,_0x28c0d7._0x33b6c4)]=_0x4c1325(_0x28c0d7._0x35b01a,_0x28c0d7._0x3197c8,0xb2,_0x28c0d7._0x15df17);function _0x4c1325(_0x56e8b0,_0x5b68bc,_0x50597a,_0x3179c4){return _0x2b9792(_0x3179c4-_0x20f53e._0x2ac134,_0x50597a,_0x50597a-_0x20f53e._0x31e824,_0x3179c4-_0x20f53e._0x412e5f);}_0x3dd0d5[_0x294283(_0x28c0d7._0x469ff2,_0x28c0d7._0x112c4c,_0x28c0d7._0xf36686,_0x28c0d7._0x5ddf51)]=_0x294283(_0x28c0d7._0x45cafb,_0x28c0d7._0x35b01a,_0x28c0d7._0x29d7b7,_0x28c0d7._0x1fb7ee)+'m',_0x3dd0d5[_0x4c1325(_0x28c0d7._0x43e271,_0x28c0d7._0x4ae68f,_0x28c0d7._0x4cfce5,0xd4)]='utf8';const _0x12439b=_0x3dd0d5,_0x568489=this[SALT_SYMBOL],_0x2cd085=crypto[_0x294283(_0x28c0d7._0x5d5869,0x123,_0x28c0d7._0x15e144,_0x28c0d7._0x4dc899)](_0x568489[_0x294283(0xcf,_0x28c0d7._0x45a7ce,0x111,_0x28c0d7._0x19a896)](_0x12439b[_0x294283(_0x28c0d7._0x700272,_0x28c0d7._0x1eac4e,0x14a,0x14e)]),Buffer[_0x4c1325(0xb0,0xb1,_0x28c0d7._0x579914,_0x28c0d7._0x57cfa1)](_0x12439b[_0x294283(_0x28c0d7._0x2345db,_0x28c0d7._0x401310,_0x28c0d7._0xf6c25f,0x133)],_0x4c1325(_0x28c0d7._0x494708,_0x28c0d7._0xcb7b1c,0xbc,_0x28c0d7._0x19a896)),-0x2a7ca+0xe5e0+0x3488a,0x1a22+-0x1b53*0x1+0x151,_0x12439b[_0x294283(_0x28c0d7._0x25dc5b,0x126,_0x28c0d7._0x598319,_0x28c0d7._0x3f8907)]),_0xad19d3=crypto[_0x4c1325(_0x28c0d7._0x353671,_0x28c0d7._0x4043b4,_0x28c0d7._0x414547,_0x28c0d7._0x113490)+'s'](0x1958*0x1+0x4a9*-0x5+-0x49*0x7),_0x246afc=crypto[_0x294283(_0x28c0d7._0x5869ad,_0x28c0d7._0x5bdd84,_0x28c0d7._0x204be3,0x148)+'eriv'](_0x12439b[_0x4c1325(_0x28c0d7._0x27e337,_0x28c0d7._0xe73bd9,_0x28c0d7._0x5869ad,_0x28c0d7._0x112c4c)],_0x2cd085,_0xad19d3);let _0x3e7621=_0x246afc['update'](_0x419e7e,_0x12439b[_0x294283(_0x28c0d7._0x576d1e,_0x28c0d7._0x445d70,0x108,0xe0)],_0x12439b['CEofJ']);function _0x294283(_0x101fc4,_0x1d39a7,_0x2442b1,_0x58c225){return _0x4c2d9f(_0x101fc4-_0x3383d1._0x33b3e4,_0x1d39a7-_0x3383d1._0x3911d1,_0x101fc4,_0x2442b1- -_0x3383d1._0x55d56e);}_0x3e7621+=_0x246afc[_0x294283(_0x28c0d7._0x3324b3,_0x28c0d7._0x1530b5,_0x28c0d7._0x2f0614,0x127)](_0x12439b[_0x4c1325(_0x28c0d7._0x5e5cf0,_0x28c0d7._0xf36686,_0x28c0d7._0x598319,_0x28c0d7._0x5eab0e)]);const _0x305910=_0x246afc[_0x294283(_0x28c0d7._0x39c612,_0x28c0d7._0x51b909,0x121,_0x28c0d7._0x4b5a0e)](),_0x1431ee=crypto[_0x4c1325(_0x28c0d7._0x51fd65,0x100,_0x28c0d7._0x3ea2d9,_0x28c0d7._0x1e4252)](_0x12439b[_0x4c1325(_0x28c0d7._0x3565dd,_0x28c0d7._0x55fecd,0xa8,_0x28c0d7._0x113aab)])['update'](_0x419e7e+_0x568489[_0x294283(0x114,0x106,_0x28c0d7._0x30c2c2,_0x28c0d7._0x5f1442)](_0x4c1325(_0x28c0d7._0x3fc2ff,0xd0,_0x28c0d7._0x16bb10,_0x28c0d7._0x345da8)))['digest'](_0x12439b[_0x294283(0x122,_0x28c0d7._0x2c1c02,_0x28c0d7._0x4043b4,_0x28c0d7._0x3e9d53)]);return _0xad19d3[_0x294283(0x154,_0x28c0d7._0x51fd65,_0x28c0d7._0x42e1e3,_0x28c0d7._0x102c2f)](_0x12439b['CEofJ'])+':'+_0x3e7621+':'+_0x305910[_0x4c1325(_0x28c0d7._0x104da8,_0x28c0d7._0x3a5b9b,_0x28c0d7._0x8e2de1,_0x28c0d7._0x55d329)](_0x12439b[_0x294283(0x185,_0x28c0d7._0x401310,0x14a,_0x28c0d7._0x45c4a0)])+':'+_0x1431ee;}[_0x4c2d9f(0x21b,0x22b,0x243,0x23c)+_0x4c2d9f(0x1ed,0x226,0x20e,0x1e3)](_0x4dd88b){const _0x26862a={_0x201ec3:0x530,_0x3f6fca:0x522,_0x22fe3c:0x529,_0x12c234:0x4f1,_0x59da05:0x1c1,_0x345ed3:0x1ff,_0x2b2b73:0x1ec,_0x352a5c:0x228,_0x5c94da:0x1f7,_0x6149bc:0x1b0,_0x374fc0:0x19f,_0x38e779:0x1d4,_0x53705c:0x1cd,_0x3f49e2:0x1ac,_0x51d630:0x1c9,_0x470841:0x1d3,_0x525af1:0x1e1,_0x3d6708:0x1ea,_0x36ed36:0x219,_0x29e248:0x1d7,_0x41d5d7:0x4f0,_0x1771fb:0x4ca,_0x7a52a1:0x1e7,_0x42c352:0x1ae,_0x57a71a:0x1b4,_0x131408:0x1bb,_0xa0523b:0x172,_0x281df7:0x1b7,_0x280e65:0x19a,_0x500a3c:0x1a5,_0x3dbfa1:0x1ce,_0x2d71ff:0x1f5,_0x358345:0x4ea,_0x48e519:0x4c6,_0x3e527b:0x18f,_0x3eb29d:0x193,_0x4b606f:0x1fa,_0x16af5f:0x53a,_0x24ce76:0x504,_0x297665:0x234,_0x2913d0:0x206,_0x2ad1d2:0x20c,_0x45f019:0x207,_0x236f95:0x1d8,_0x442b39:0x1a4,_0x4497ae:0x1c3,_0x2ac180:0x498,_0x149858:0x4fd,_0x441d66:0x484,_0x423e80:0x4c4,_0x5b2900:0x4e9,_0x454b4a:0x4c9,_0x2a43b2:0x4ab,_0x2de3dc:0x4f6,_0x539273:0x531,_0x47d095:0x4f1,_0x4edb6d:0x220,_0x50766e:0x1c7,_0x4257e7:0x222,_0x463d1c:0x466,_0x3b001b:0x451,_0x2b8724:0x4aa,_0xf1e04f:0x48d,_0x3fcf2f:0x175,_0x3e1c1a:0x19e,_0x5171bc:0x1b5,_0x33a74b:0x1ab,_0x546e33:0x1f3,_0x1a1626:0x1b0,_0xb4498f:0x1f2,_0x41eed4:0x1a5,_0x496779:0x1da,_0x33949a:0x1b2,_0x31c8c9:0x1e8,_0x283f7f:0x17c,_0x3bbde7:0x1c9,_0x5de739:0x204,_0x4d6c50:0x49b,_0x43231c:0x4ba,_0x2b59e2:0x4d9,_0x1aa42c:0x4dc,_0x3afb09:0x4a1,_0x2c38c8:0x1a3,_0x444939:0x1c4,_0x265d8d:0x186,_0xd195e8:0x4c4,_0x19f575:0x511,_0x11c0b3:0x538,_0x3041fa:0x4fe,_0xbf96f8:0x1f5,_0x242f59:0x22c,_0x4b60ab:0x1b1,_0x42b46b:0x4d8,_0x369a13:0x532,_0xd763b2:0x505,_0x5c648c:0x1af,_0x129bfb:0x200,_0x38c915:0x1f6,_0x2d6739:0x205,_0x19f31c:0x1df,_0xd20018:0x4b1,_0x3343b4:0x4fa,_0x3c2e45:0x4b2,_0x49a8e7:0x4e1,_0x681942:0x4e0,_0x406cd3:0x4ed,_0x1bfb8c:0x499,_0x44e8c2:0x224,_0x524caf:0x1f5,_0x3e6072:0x1f0,_0x17345e:0x211,_0x29993f:0x1d9,_0x2608a6:0x1c9,_0x188404:0x1cb,_0x26389e:0x508,_0x125da8:0x4bd,_0x4c570b:0x4c6,_0x13d9a4:0x542,_0x318fe5:0x4fb,_0x55b97e:0x50a,_0x32d327:0x1cd,_0xa36f3b:0x1be,_0x3f92ff:0x1a1,_0x5ceb07:0x239,_0x16ddcf:0x213,_0x2de4c3:0x517,_0x565538:0x4f8,_0x1cb823:0x53b,_0x32df84:0x503,_0x2972a9:0x1aa,_0x40c8f5:0x1ea,_0x595142:0x18e,_0x4838b0:0x1a9,_0x3de640:0x18b,_0x58a4dc:0x1c5,_0x41caef:0x192,_0x4e2244:0x1c3,_0x3f9a06:0x1e9,_0x17ea73:0x1d2,_0x3ed2dc:0x20b,_0x4b274d:0x1b2,_0x5ebf64:0x1dc,_0x1c4ca0:0x1ce,_0x407a69:0x1ae,_0x2ff4a6:0x175,_0x1237ce:0x176,_0x5d8b8c:0x497,_0x1e5998:0x4e0,_0x1dc9a8:0x4bc,_0xdc80b2:0x4bd,_0x308834:0x530,_0x5c4c72:0x4eb,_0x2f8146:0x504},_0x21bbb2={_0x499ccf:0xe6},_0x37b2e5={_0x5f30db:0x1db,_0x834dec:0x169,_0x43c7a2:0x3e1},_0x52ff83={};_0x52ff83['sJjkb']=function(_0x1a7dfe,_0x48641f){return _0x1a7dfe/_0x48641f;},_0x52ff83[_0x5a531d(_0x26862a._0x201ec3,_0x26862a._0x3f6fca,_0x26862a._0x22fe3c,_0x26862a._0x12c234)]=function(_0x439314,_0x5057b7){return _0x439314!==_0x5057b7;},_0x52ff83[_0xf95ccf(-_0x26862a._0x59da05,-_0x26862a._0x345ed3,-_0x26862a._0x2b2b73,-0x1e1)]=_0xf95ccf(-_0x26862a._0x352a5c,-0x207,-0x236,-_0x26862a._0x5c94da),_0x52ff83[_0xf95ccf(-_0x26862a._0x6149bc,-_0x26862a._0x374fc0,-_0x26862a._0x38e779,-_0x26862a._0x53705c)]=_0xf95ccf(-0x1be,-_0x26862a._0x3f49e2,-_0x26862a._0x51d630,-_0x26862a._0x470841)+_0xf95ccf(-_0x26862a._0x525af1,-_0x26862a._0x3d6708,-_0x26862a._0x36ed36,-_0x26862a._0x29e248);function _0xf95ccf(_0x5c8609,_0x13d0c2,_0x390959,_0x2b2288){return _0x4c2d9f(_0x5c8609-_0x37b2e5._0x5f30db,_0x13d0c2-_0x37b2e5._0x834dec,_0x5c8609,_0x13d0c2- -_0x37b2e5._0x43c7a2);}_0x52ff83[_0x5a531d(0x4e6,_0x26862a._0x41d5d7,_0x26862a._0x1771fb,0x4dc)]=_0xf95ccf(-_0x26862a._0x7a52a1,-0x1ab,-_0x26862a._0x42c352,-0x17d),_0x52ff83['TUeSB']=_0xf95ccf(-0x1be,-_0x26862a._0x57a71a,-_0x26862a._0x131408,-_0x26862a._0xa0523b),_0x52ff83['MrWWV']=_0xf95ccf(-0x1e3,-_0x26862a._0x281df7,-_0x26862a._0x280e65,-_0x26862a._0x500a3c),_0x52ff83[_0xf95ccf(-0x197,-_0x26862a._0x3dbfa1,-0x1f7,-_0x26862a._0x2d71ff)]=function(_0x4d226d,_0x3d603a){return _0x4d226d+_0x3d603a;};function _0x5a531d(_0x172b07,_0x1c9df2,_0x182f38,_0x361763){return _0x4c2d9f(_0x172b07-0x17,_0x1c9df2-_0x21bbb2._0x499ccf,_0x172b07,_0x361763-0x2ab);}_0x52ff83['AnhHj']=_0x5a531d(_0x26862a._0x358345,0x493,0x4fc,_0x26862a._0x48e519),_0x52ff83['JZbXO']=_0xf95ccf(-_0x26862a._0x3e527b,-0x1d1,-_0x26862a._0x3eb29d,-_0x26862a._0x4b606f)+'on\x20failed',_0x52ff83[_0x5a531d(_0x26862a._0x16af5f,0x4ed,0x537,_0x26862a._0x24ce76)]=_0xf95ccf(-_0x26862a._0x297665,-_0x26862a._0x2913d0,-_0x26862a._0x2ad1d2,-_0x26862a._0x45f019)+_0xf95ccf(-_0x26862a._0x525af1,-_0x26862a._0x236f95,-_0x26862a._0x442b39,-_0x26862a._0x4497ae)+'y\x20-\x20invali'+'d\x20or\x20corru'+_0x5a531d(_0x26862a._0x2ac180,_0x26862a._0x149858,_0x26862a._0x441d66,_0x26862a._0x423e80);const _0xe66f86=_0x52ff83,_0x115de9=_0x4dd88b[_0x5a531d(_0x26862a._0x5b2900,0x4bf,_0x26862a._0x454b4a,_0x26862a._0x2a43b2)](':');if(_0xe66f86[_0x5a531d(_0x26862a._0x2de3dc,_0x26862a._0x539273,_0x26862a._0x41d5d7,_0x26862a._0x47d095)](_0x115de9[_0xf95ccf(-_0x26862a._0x36ed36,-0x1f8,-_0x26862a._0x4edb6d,-_0x26862a._0x50766e)],0x3*-0x211+0x241*0x2+-0x1b5*-0x1)){if(_0xf95ccf(-_0x26862a._0x4257e7,-0x207,-0x218,-0x1e6)!==_0xe66f86[_0x5a531d(_0x26862a._0x463d1c,_0x26862a._0x3b001b,_0x26862a._0x2b8724,_0x26862a._0xf1e04f)])throw new _0x4c899c(_0xf95ccf(-_0x26862a._0x53705c,-0x1ac,-_0x26862a._0x3fcf2f,-_0x26862a._0x3e1c1a)+'y\x20format');else throw new Error(_0xe66f86[_0xf95ccf(-0x1c9,-0x19f,-0x1b6,-_0x26862a._0x5171bc)]);}const [_0x3c2148,_0x4b0f71,_0x50d724,_0xe7ae68]=_0x115de9;try{const _0x318690=Buffer[_0xf95ccf(-_0x26862a._0x33a74b,-0x1da,-0x1cf,-0x210)](_0x3c2148,_0xe66f86[_0xf95ccf(-_0x26862a._0x546e33,-_0x26862a._0x1a1626,-_0x26862a._0xb4498f,-_0x26862a._0x281df7)]),_0x5896da=Buffer[_0xf95ccf(-_0x26862a._0x41eed4,-_0x26862a._0x496779,-_0x26862a._0x33949a,-_0x26862a._0x31c8c9)](_0x50d724,_0xe66f86[_0xf95ccf(-0x1d8,-_0x26862a._0x6149bc,-_0x26862a._0x283f7f,-0x19b)]),_0x21126e=this[SALT_SYMBOL],_0xfdd1d7=crypto['pbkdf2Sync'](_0x21126e[_0xf95ccf(-_0x26862a._0x53705c,-_0x26862a._0x3bbde7,-_0x26862a._0x5de739,-0x1de)](_0xe66f86[_0x5a531d(_0x26862a._0x4d6c50,_0x26862a._0x43231c,_0x26862a._0x2b59e2,_0x26862a._0x1aa42c)]),Buffer[_0x5a531d(_0x26862a._0x48e519,_0x26862a._0x2a43b2,_0x26862a._0x3afb09,0x4b2)](_0xf95ccf(-_0x26862a._0x2c38c8,-_0x26862a._0x280e65,-_0x26862a._0x444939,-_0x26862a._0x265d8d)+_0x5a531d(_0x26862a._0xd195e8,0x4cf,_0x26862a._0x19f575,0x4db)+_0x5a531d(_0x26862a._0x11c0b3,_0x26862a._0x149858,_0x26862a._0x3041fa,_0x26862a._0x2de3dc),_0xe66f86['TUeSB']),0x2bd81+0x9469+-0x1cb4a,-0x8f*-0xe+0x1*-0x765+-0x4d,_0xe66f86[_0xf95ccf(-0x22a,-_0x26862a._0xbf96f8,-_0x26862a._0x444939,-_0x26862a._0x242f59)]),_0x212b1a=crypto[_0xf95ccf(-_0x26862a._0x4b60ab,-0x1e2,-0x20d,-_0x26862a._0x31c8c9)+_0x5a531d(_0x26862a._0x42b46b,0x513,_0x26862a._0x369a13,_0x26862a._0xd763b2)](_0xf95ccf(-_0x26862a._0x5c648c,-0x1ef,-_0x26862a._0x3f49e2,-_0x26862a._0x129bfb)+'m',_0xfdd1d7,_0x318690);_0x212b1a[_0xf95ccf(-0x1dd,-_0x26862a._0x38c915,-_0x26862a._0x2d6739,-_0x26862a._0x19f31c)](_0x5896da);let _0x1ccf5a=_0x212b1a['update'](_0x4b0f71,_0x5a531d(_0x26862a._0xd20018,_0x26862a._0x3343b4,_0x26862a._0x3c2e45,_0x26862a._0x49a8e7),_0x5a531d(_0x26862a._0x681942,_0x26862a._0x406cd3,_0x26862a._0x1bfb8c,_0x26862a._0x42b46b));_0x1ccf5a+=_0x212b1a['final'](_0xe66f86['TUeSB']);const _0x59644f=crypto['createHash'](_0xe66f86[_0xf95ccf(-_0x26862a._0x44e8c2,-_0x26862a._0x524caf,-0x231,-_0x26862a._0x3e6072)])['update'](_0xe66f86[_0xf95ccf(-0x1ed,-0x1ce,-_0x26862a._0x17345e,-_0x26862a._0x2b2b73)](_0x1ccf5a,_0x21126e[_0xf95ccf(-_0x26862a._0x29993f,-_0x26862a._0x2608a6,-_0x26862a._0x33949a,-_0x26862a._0x188404)](_0x5a531d(_0x26862a._0x26389e,0x4ee,0x50a,0x4e1))))['digest'](_0x5a531d(_0x26862a._0x125da8,_0x26862a._0x4c570b,0x4ad,_0x26862a._0x49a8e7));if(_0xe66f86['kgSBJ'](_0x59644f,_0xe7ae68)){if(_0xe66f86['AnhHj']!==_0x5a531d(_0x26862a._0x13d9a4,_0x26862a._0x318fe5,0x510,_0x26862a._0x55b97e))throw new Error('Key\x20integr'+_0xf95ccf(-_0x26862a._0x32d327,-_0x26862a._0x19f31c,-_0x26862a._0xa36f3b,-_0x26862a._0x3f92ff)+_0xf95ccf(-_0x26862a._0x5ceb07,-_0x26862a._0x5c94da,-_0x26862a._0x16ddcf,-0x1d1)+_0x5a531d(_0x26862a._0x2de4c3,_0x26862a._0x565538,_0x26862a._0x1cb823,_0x26862a._0x32df84)+'may\x20have\x20b'+_0xf95ccf(-0x1cc,-_0x26862a._0x2972a9,-_0x26862a._0x40c8f5,-_0x26862a._0x595142)+'ed\x20with');else return _0x22c8c5[_0xf95ccf(-0x1b2,-_0x26862a._0x4838b0,-_0x26862a._0x3de640,-_0x26862a._0x29e248)](_0xe66f86[_0xf95ccf(-0x190,-_0x26862a._0x58a4dc,-_0x26862a._0x41caef,-_0x26862a._0x496779)](_0x2edd21[_0xf95ccf(-_0x26862a._0x4e2244,-_0x26862a._0x3f9a06,-_0x26862a._0x17ea73,-_0x26862a._0x3ed2dc)](),-0x4f5*-0x7+0x1973+-0x272*0x17));}return _0x1ccf5a;}catch(_0xb3c358){if(_0xb3c358 instanceof Error&&_0xb3c358[_0xf95ccf(-0x1f2,-_0x26862a._0x4b274d,-_0x26862a._0x5ebf64,-_0x26862a._0x1c4ca0)][_0xf95ccf(-_0x26862a._0x131408,-_0x26862a._0x407a69,-_0x26862a._0x2ff4a6,-_0x26862a._0x1237ce)](_0xe66f86[_0x5a531d(_0x26862a._0x5d8b8c,_0x26862a._0x1e5998,_0x26862a._0x1dc9a8,_0x26862a._0xdc80b2)]))throw _0xb3c358;throw new Error(_0xe66f86[_0x5a531d(0x4db,_0x26862a._0x308834,_0x26862a._0x5c4c72,_0x26862a._0x2f8146)]);}}[_0x4c2d9f(0x23b,0x26f,0x232,0x23e)](){const _0x72aef7={_0x5a6895:0x147,_0x4827bd:0x16e,_0xe5c58e:0x18c,_0x3587db:0x15f,_0x555ec8:0x44b,_0x58e6a1:0x444,_0x18cd67:0x44e,_0x43a834:0x41c,_0xada584:0x418,_0x62f0e:0x41a,_0x33f55a:0x3f7,_0x4b63a9:0x404,_0x5132c7:0x3e8,_0x31236e:0x409,_0xb9dc3b:0x3a9,_0x2a6c51:0x3da,_0x9b72cc:0x398},_0x4a0ee9={_0x439b4a:0x57a,_0x11e3df:0x1b5,_0x1fcfe1:0x18e},_0x17d255={};function _0x480cce(_0x2317e6,_0x38a162,_0x49b0e9,_0xe38d1){return _0x4c2d9f(_0x2317e6-0xc1,_0x38a162-0x184,_0x49b0e9,_0x38a162- -0xcd);}function _0x235caa(_0x4b9566,_0x2d9155,_0x53083d,_0x55bfd0){return _0x2b9792(_0x2d9155-_0x4a0ee9._0x439b4a,_0x4b9566,_0x53083d-_0x4a0ee9._0x11e3df,_0x55bfd0-_0x4a0ee9._0x1fcfe1);}_0x17d255['lnemh']=_0x480cce(_0x72aef7._0x5a6895,_0x72aef7._0x4827bd,_0x72aef7._0xe5c58e,_0x72aef7._0x3587db)+'e\x20not\x20init'+_0x235caa(_0x72aef7._0x555ec8,_0x72aef7._0x58e6a1,_0x72aef7._0x18cd67,_0x72aef7._0x43a834);const _0x2f65b4=_0x17d255;if(!this[_0x235caa(0x42f,_0x72aef7._0xada584,_0x72aef7._0x62f0e,0x3f4)])throw new Error(_0x2f65b4[_0x235caa(_0x72aef7._0x33f55a,_0x72aef7._0x4b63a9,_0x72aef7._0x5132c7,_0x72aef7._0x31236e)]);return this['deobfuscat'+_0x235caa(_0x72aef7._0xb9dc3b,_0x72aef7._0x2a6c51,_0x72aef7._0x9b72cc,0x414)](this[KEY_STORAGE_SYMBOL]);}[_0x2b9792(-0x193,-0x1a0,-0x1b5,-0x1a8)+'t'](_0x5d7eb2,_0x246092,_0x3520a2,_0x6b24bc){const _0x476e3c={_0x45b859:0x30c,_0xea9ae3:0x354,_0x152728:0x377,_0x3115c7:0x33d,_0x35333f:0x350,_0x358972:0x388,_0x15134e:0x359,_0x257707:0x3bb,_0x2ef2fd:0x393,_0x275204:0x385,_0x128626:0x31e,_0x1d3e46:0x367,_0x313f28:0x2fe,_0x2d7474:0x33d,_0x254b27:0x2fd,_0x5414ce:0x324,_0x540ccd:0x34c,_0x148430:0x30c,_0x72a50f:0x64,_0x1656d0:0x1d,_0x3026ef:0x52},_0x1aefd6={_0x51fecb:0x143,_0xe70f2e:0x117},_0x248235={_0x20e655:0x184,_0x23e746:0x19,_0x3e76f4:0x12f},_0xcef553={};function _0x4b0a12(_0x4d5b6e,_0x3f3474,_0x1560d7,_0x3529ad){return _0x4c2d9f(_0x4d5b6e-_0x248235._0x20e655,_0x3f3474-_0x248235._0x23e746,_0x1560d7,_0x3529ad-_0x248235._0x3e76f4);}function _0x5db9a4(_0x4282e3,_0x1d0aa3,_0x1950a1,_0x3f071d){return _0x4c2d9f(_0x4282e3-_0x1aefd6._0x51fecb,_0x1d0aa3-_0x1aefd6._0xe70f2e,_0x1950a1,_0x3f071d- -0x257);}_0xcef553[_0x4b0a12(_0x476e3c._0x45b859,_0x476e3c._0xea9ae3,_0x476e3c._0x152728,_0x476e3c._0x3115c7)]=_0x4b0a12(0x334,_0x476e3c._0x35333f,_0x476e3c._0x358972,_0x476e3c._0x15134e);const _0x279eb3=_0xcef553,_0x8a2d62=this['getApiKey'](),_0x20e79b=_0x5d7eb2+'|'+_0x246092+'|'+_0x3520a2+'|'+_0x6b24bc,_0x3e479e=crypto[_0x4b0a12(0x343,_0x476e3c._0x257707,_0x476e3c._0x2ef2fd,_0x476e3c._0x275204)](_0x279eb3[_0x4b0a12(_0x476e3c._0x128626,_0x476e3c._0x1d3e46,_0x476e3c._0x313f28,_0x476e3c._0x2d7474)],_0x8a2d62)[_0x4b0a12(_0x476e3c._0x254b27,_0x476e3c._0x5414ce,_0x476e3c._0x540ccd,_0x476e3c._0x148430)](_0x20e79b)[_0x5db9a4(-_0x476e3c._0x72a50f,-0x19,-_0x476e3c._0x1656d0,-_0x476e3c._0x3026ef)]('hex');return _0x3e479e;}[_0x2b9792(-0x182,-0x158,-0x140,-0x1ba)](){const _0x32d4ce={_0x9536ff:0x7b,_0x4e60e7:0x5e,_0xd8705e:0x37,_0x55f8bc:0x93,_0x59a1e1:0xdf,_0x3b80d7:0xde,_0x355eaa:0xa9,_0x218380:0x30,_0x4e1165:0x63,_0x5a7158:0x9b,_0x1580b2:0x9e,_0x1f2fd6:0x8b,_0x42ebfe:0xbc,_0x2a4d7c:0x7b,_0x4799e8:0xa8,_0x15d029:0x95},_0x3ace4d={_0x59235a:0x206,_0x1c3424:0x133},_0x19f75e={_0x2c9436:0xc,_0x5a0759:0x289},_0x4a7ad6={};function _0x357b18(_0x23afe3,_0x3f6a99,_0x3f80f7,_0x225083){return _0x4c2d9f(_0x23afe3-_0x19f75e._0x2c9436,_0x3f6a99-0x5,_0x225083,_0x3f6a99- -_0x19f75e._0x5a0759);}function _0x6f00b1(_0x1204af,_0x1ac8da,_0x3dd7a4,_0x2d5cbf){return _0x2b9792(_0x2d5cbf-_0x3ace4d._0x59235a,_0x3dd7a4,_0x3dd7a4-0x15b,_0x2d5cbf-_0x3ace4d._0x1c3424);}_0x4a7ad6['WSHOD']=_0x357b18(-_0x32d4ce._0x9536ff,-_0x32d4ce._0x4e60e7,-_0x32d4ce._0xd8705e,-_0x32d4ce._0x55f8bc);const _0xd823c8=_0x4a7ad6;this[KEY_STORAGE_SYMBOL]&&(this[KEY_STORAGE_SYMBOL]='');if(this[SALT_SYMBOL]){if(_0xd823c8[_0x6f00b1(_0x32d4ce._0x59a1e1,0x7e,_0x32d4ce._0x3b80d7,_0x32d4ce._0x355eaa)]===_0xd823c8[_0x357b18(-_0x32d4ce._0x218380,-_0x32d4ce._0x4e1165,-0x97,-_0x32d4ce._0x5a7158)])crypto[_0x357b18(-_0x32d4ce._0x1580b2,-_0x32d4ce._0x1f2fd6,-0x7d,-_0x32d4ce._0x42ebfe)+_0x357b18(-_0x32d4ce._0x2a4d7c,-_0x32d4ce._0x4799e8,-_0x32d4ce._0x15d029,-0x6b)](this[SALT_SYMBOL]);else throw _0xe3d4a5;}}}function createSecureStorage(_0x440be9){return new SecureKeyStorage(_0x440be9);}function generateRequestSignature(_0x2b4608,_0x344e00,_0xfb228e,_0x3a4347,_0x40bcc4){const _0x48e4b1={_0x57bf13:0x485,_0x1ccf16:0x475,_0x592ca3:0x499,_0x1bf6a1:0xce,_0x410dc6:0xc3,_0x43e03b:0xf4,_0xfeb29d:0xcd,_0x249734:0x4ad,_0x1b70d4:0x49e,_0x43ccbd:0x4ac,_0x47c834:0x481,_0x2347c6:0x484,_0x5da688:0x49c,_0x107bb5:0x4ae,_0x54d609:0x11c,_0x20d128:0xfe},_0x41213c={_0x37206b:0x5da,_0x539e2f:0xb4},_0x3a167f={_0x45200d:0x303};function _0x1e2573(_0x10192a,_0x1baa79,_0x35e45b,_0xa40fb0){return _0x4c2d9f(_0x10192a-0xa7,_0x1baa79-0x132,_0x1baa79,_0xa40fb0- -_0x3a167f._0x45200d);}const _0x1da032={};_0x1da032[_0x384803(_0x48e4b1._0x57bf13,_0x48e4b1._0x1ccf16,_0x48e4b1._0x592ca3,0x477)]='sha256';function _0x384803(_0x2e9d2c,_0x4e5c9b,_0x263ede,_0x43a9a9){return _0x2b9792(_0x2e9d2c-_0x41213c._0x37206b,_0x263ede,_0x263ede-_0x41213c._0x539e2f,_0x43a9a9-0x17d);}_0x1da032['RlWhM']=_0x1e2573(-_0x48e4b1._0x1bf6a1,-_0x48e4b1._0x410dc6,-_0x48e4b1._0x43e03b,-_0x48e4b1._0xfeb29d);const _0x229c72=_0x1da032,_0x28c7c4=_0x344e00+'|'+_0xfb228e+'|'+_0x3a4347+'|'+_0x40bcc4;return crypto[_0x384803(_0x48e4b1._0x249734,_0x48e4b1._0x1b70d4,_0x48e4b1._0x43ccbd,_0x48e4b1._0x47c834)](_0x229c72[_0x384803(_0x48e4b1._0x57bf13,_0x48e4b1._0x2347c6,_0x48e4b1._0x5da688,_0x48e4b1._0x107bb5)],_0x2b4608)['update'](_0x28c7c4)[_0x1e2573(-0xc4,-0xf9,-_0x48e4b1._0x54d609,-_0x48e4b1._0x20d128)](_0x229c72['RlWhM']);}function _0x4c2d9f(_0x2079af,_0x4f22db,_0x43ca5b,_0x2180e7){return _0x5781(_0x2180e7-0x9a,_0x43ca5b);}function getCurrentTimestamp(){const _0x1a7e25={_0x5a343c:0x136,_0x4d8195:0xfd,_0x3381b3:0x148},_0x3cd6a3={_0x200592:0x1e,_0xc9441d:0x92,_0x264211:0x32e};function _0x199115(_0x3c86a4,_0x4d9cd7,_0x2ab897,_0x4c138d){return _0x4c2d9f(_0x3c86a4-_0x3cd6a3._0x200592,_0x4d9cd7-_0x3cd6a3._0xc9441d,_0x2ab897,_0x4d9cd7- -_0x3cd6a3._0x264211);}return Math['floor'](Date[_0x199115(-0x169,-_0x1a7e25._0x5a343c,-_0x1a7e25._0x4d8195,-_0x1a7e25._0x3381b3)]()/(-0xc7d+-0x1a2e+0x2a93));}
|