@brainfish-ai/devdoc 0.1.34 → 0.1.35
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.
|
@@ -34,7 +34,6 @@ interface CreateOptions {
|
|
|
34
34
|
install?: boolean;
|
|
35
35
|
url?: string;
|
|
36
36
|
subdomain?: string;
|
|
37
|
-
ai?: boolean | 'claude' | 'cursor' | 'both';
|
|
38
37
|
}
|
|
39
38
|
export declare function create(projectDirectory: string | undefined, options: CreateOptions): Promise<void>;
|
|
40
39
|
export {};
|
|
@@ -640,25 +640,15 @@ async function create(projectDirectory, options) {
|
|
|
640
640
|
logger_1.logger.warn('Could not install dependencies');
|
|
641
641
|
}
|
|
642
642
|
}
|
|
643
|
-
// Install AI agents
|
|
643
|
+
// Install AI agents - always prompt as part of create flow
|
|
644
644
|
let aiTool = null;
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
];
|
|
653
|
-
const selection = await promptSelect('Set up AI agent configuration?', aiChoices);
|
|
654
|
-
if (selection !== 'skip') {
|
|
655
|
-
aiTool = selection;
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
else if (typeof options.ai === 'string') {
|
|
659
|
-
// If --ai=claude, --ai=cursor, or --ai=both is passed
|
|
660
|
-
aiTool = options.ai;
|
|
661
|
-
}
|
|
645
|
+
const aiChoices = [
|
|
646
|
+
{ value: 'both', label: 'Both - Claude Code and Cursor (recommended)' },
|
|
647
|
+
{ value: 'cursor', label: 'Cursor - Rules for Cursor IDE' },
|
|
648
|
+
{ value: 'claude', label: 'Claude Code - Skills and CLAUDE.md' },
|
|
649
|
+
];
|
|
650
|
+
const aiSelection = await promptSelect('Which AI coding assistant do you use?', aiChoices);
|
|
651
|
+
aiTool = aiSelection;
|
|
662
652
|
if (aiTool) {
|
|
663
653
|
console.log();
|
|
664
654
|
logger_1.logger.info('Setting up AI agent configuration...');
|
|
@@ -706,22 +696,25 @@ async function create(projectDirectory, options) {
|
|
|
706
696
|
console.log(` cd ${projectName}`);
|
|
707
697
|
console.log(' npm run dev');
|
|
708
698
|
console.log();
|
|
709
|
-
// Show AI agent
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
console.log(' Claude Code: /bootstrap-docs');
|
|
714
|
-
}
|
|
715
|
-
if (aiTool === 'cursor' || aiTool === 'both') {
|
|
716
|
-
console.log(' Cursor: Ask "generate initial documentation from this repo"');
|
|
717
|
-
}
|
|
718
|
-
console.log();
|
|
699
|
+
// Show AI agent quick start tips
|
|
700
|
+
console.log('AI Agent Quick Start:');
|
|
701
|
+
if (aiTool === 'claude' || aiTool === 'both') {
|
|
702
|
+
console.log(' Claude Code: /bootstrap-docs');
|
|
719
703
|
}
|
|
720
|
-
|
|
721
|
-
console.log('
|
|
722
|
-
console.log();
|
|
704
|
+
if (aiTool === 'cursor' || aiTool === 'both') {
|
|
705
|
+
console.log(' Cursor: Ask "generate initial documentation from this repo"');
|
|
723
706
|
}
|
|
724
|
-
console.log(
|
|
707
|
+
console.log();
|
|
708
|
+
// ASCII art banner
|
|
709
|
+
console.log(`
|
|
710
|
+
____ ____
|
|
711
|
+
| _ \\ _____ __| _ \\ ___ ___
|
|
712
|
+
| | | |/ _ \\ \\ / /| | | |/ _ \\ / __|
|
|
713
|
+
| |_| | __/\\ V / | |_| | (_) | (__
|
|
714
|
+
|____/ \\___| \\_/ |____/ \\___/ \\___|
|
|
715
|
+
|
|
716
|
+
`);
|
|
717
|
+
console.log('Happy documenting!');
|
|
725
718
|
console.log();
|
|
726
719
|
}
|
|
727
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxZEEsd0JBK1VDO0FBcHlCRCxpREFBeUM7QUFDekMsZ0RBQXdCO0FBQ3hCLHdEQUEwQjtBQUMxQixpQ0FBeUM7QUFDekMsK0NBQTRDO0FBQzVDLCtDQUFrRDtBQUVsRCx1REFBdUQ7QUFDdkQsTUFBTSxhQUFhLEdBQUcsOENBQThDLENBQUM7QUFFckUsdUZBQXVGO0FBQ3ZGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsV0FBVyxFQUFFLGlEQUFpRDtRQUM5RCxLQUFLLEVBQUUsU0FBUztLQUNqQjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLHlEQUF5RDtRQUN0RSxLQUFLLEVBQUUsU0FBUztLQUNqQjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxLQUFLLEVBQUUsU0FBUztLQUNqQjtDQUNPLENBQUM7QUFJWCxzQkFBc0I7QUFDdEIsTUFBTSxTQUFTLEdBQUc7SUFDaEIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsdURBQXVEO0tBQ3JFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsV0FBVyxFQUFFLDREQUE0RDtLQUMxRTtDQUNPLENBQUM7QUFvQlgsc0NBQXNDO0FBQ3RDLEtBQUssVUFBVSxNQUFNLENBQUMsUUFBZ0IsRUFBRSxZQUFxQjtJQUMzRCxNQUFNLFFBQVEsR0FBRyx3REFBYSxVQUFVLEdBQUMsQ0FBQztJQUMxQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxD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QyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsSUFBSSxNQUFNLEtBQUssUUFBUSxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNoQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0ZBQWtGLENBQUMsQ0FBQztRQUNoRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNyQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBkb3dubG9hZFRlbXBsYXRlIH0gZnJvbSAnZ2lnZXQnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nZ2VyJztcbmltcG9ydCB7IERFRkFVTFRfQVBJX1VSTCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbi8vIFJlbW90ZSB0ZW1wbGF0ZSByZXBvc2l0b3J5IC0gc2luZ2xlIHN0YXJ0ZXIgdGVtcGxhdGVcbmNvbnN0IFRFTVBMQVRFX1JFUE8gPSAnZ2l0aHViOmJyYWluZmlzaC1haS9kZXZkb2MvdGVtcGxhdGVzL3N0YXJ0ZXInO1xuXG4vLyBBdmFpbGFibGUgdGVtcGxhdGUgdHlwZXMgKGFsbCB1c2UgdGhlIHNhbWUgc3RhcnRlciB0ZW1wbGF0ZSwganVzdCBkaWZmZXJlbnQgY29uZmlncylcbmNvbnN0IFRFTVBMQVRFUyA9IHtcbiAgYmFzaWM6IHtcbiAgICBuYW1lOiAnQmFzaWMnLFxuICAgIGRlc2NyaXB0aW9uOiAnU2ltcGxlIGRvY3VtZW50YXRpb24gc2l0ZSB3aXRoIGd1aWRlcyBhbmQgcGFnZXMnLFxuICAgIGNvbG9yOiAnIzEwYjk4MScsXG4gIH0sXG4gIG9wZW5hcGk6IHtcbiAgICBuYW1lOiAnT3BlbkFQSScsXG4gICAgZGVzY3JpcHRpb246ICdEb2N1bWVudGF0aW9uIHdpdGggUkVTVCBBUEkgcmVmZXJlbmNlIChPcGVuQVBJL1N3YWdnZXIpJyxcbiAgICBjb2xvcjogJyMxMGI5ODEnLFxuICB9LFxuICBncmFwaHFsOiB7XG4gICAgbmFtZTogJ0dyYXBoUUwnLFxuICAgIGRlc2NyaXB0aW9uOiAnRG9jdW1lbnRhdGlvbiB3aXRoIEdyYXBoUUwgQVBJIHBsYXlncm91bmQnLFxuICAgIGNvbG9yOiAnI2U1MzVhYicsXG4gIH0sXG59IGFzIGNvbnN0O1xuXG50eXBlIFRlbXBsYXRlVHlwZSA9IGtleW9mIHR5cGVvZiBURU1QTEFURVM7XG5cbi8vIERvY3VtZW50YXRpb24gdHlwZXNcbmNvbnN0IERPQ19UWVBFUyA9IHtcbiAgcHVibGljOiB7XG4gICAgbmFtZTogJ1B1YmxpYycsXG4gICAgZGVzY3JpcHRpb246ICdVc2VyLWZhY2luZyBkb2NzIHdpdGggY3VzdG9tIHN1YmRvbWFpbiBhbmQgZGVwbG95bWVudCcsXG4gIH0sXG4gIGludGVybmFsOiB7XG4gICAgbmFtZTogJ0ludGVybmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RldmVsb3BlciBkb2NzIGZvciBsb2NhbC9wcml2YXRlIHVzZSAobm8gc3ViZG9tYWluIG5lZWRlZCknLFxuICB9LFxufSBhcyBjb25zdDtcblxudHlwZSBEb2NUeXBlID0ga2V5b2YgdHlwZW9mIERPQ19UWVBFUztcblxuaW50ZXJmYWNlIENyZWF0ZU9wdGlvbnMge1xuICB0ZW1wbGF0ZT86IFRlbXBsYXRlVHlwZTtcbiAgZG9jVHlwZT86IERvY1R5cGU7XG4gIGdpdD86IGJvb2xlYW47XG4gIGluc3RhbGw/OiBib29sZWFuO1xuICB1cmw/OiBzdHJpbmc7XG4gIHN1YmRvbWFpbj86IHN0cmluZztcbiAgYWk/OiBib29sZWFuIHwgJ2NsYXVkZScgfCAnY3Vyc29yJyB8ICdib3RoJztcbn1cblxuaW50ZXJmYWNlIENoZWNrU3ViZG9tYWluUmVzcG9uc2Uge1xuICBhdmFpbGFibGU6IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuICBzdWdnZXN0aW9uPzogc3RyaW5nO1xufVxuXG4vLyBTaW1wbGUgcHJvbXB0IGhlbHBlciB1c2luZyByZWFkbGluZVxuYXN5bmMgZnVuY3Rpb24gcHJvbXB0KHF1ZXN0aW9uOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHJlYWRsaW5lID0gYXdhaXQgaW1wb3J0KCdyZWFkbGluZScpO1xuICBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCxcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgZGlzcGxheVF1ZXN0aW9uID0gZGVmYXVsdFZhbHVlIFxuICAgICAgPyBgJHtxdWVzdGlvbn0gKCR7ZGVmYXVsdFZhbHVlfSk6IGBcbiAgICAgIDogYCR7cXVlc3Rpb259OiBgO1xuICAgIFxuICAgIHJsLnF1ZXN0aW9uKGRpc3BsYXlRdWVzdGlvbiwgKGFuc3dlcikgPT4ge1xuICAgICAgcmwuY2xvc2UoKTtcbiAgICAgIHJlc29sdmUoYW5zd2VyLnRyaW0oKSB8fCBkZWZhdWx0VmFsdWUgfHwgJycpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvbXB0U2VsZWN0KHF1ZXN0aW9uOiBzdHJpbmcsIGNob2ljZXM6IHsgdmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZyB9W10pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zb2xlLmxvZyhgXFxuJHtxdWVzdGlvbn1cXG5gKTtcbiAgY2hvaWNlcy5mb3JFYWNoKChjaG9pY2UsIGkpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgICAke2kgKyAxfS4gJHtjaG9pY2UubGFiZWx9YCk7XG4gIH0pO1xuICBjb25zb2xlLmxvZygpO1xuICBcbiAgY29uc3QgcmVhZGxpbmUgPSBhd2FpdCBpbXBvcnQoJ3JlYWRsaW5lJyk7XG4gIGNvbnN0IHJsID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcbiAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICB9KTtcblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBybC5xdWVzdGlvbignRW50ZXIgbnVtYmVyOiAnLCAoYW5zd2VyKSA9PiB7XG4gICAgICBybC5jbG9zZSgpO1xuICAgICAgY29uc3QgaW5kZXggPSBwYXJzZUludChhbnN3ZXIudHJpbSgpLCAxMCkgLSAxO1xuICAgICAgaWYgKGluZGV4ID49IDAgJiYgaW5kZXggPCBjaG9pY2VzLmxlbmd0aCkge1xuICAgICAgICByZXNvbHZlKGNob2ljZXNbaW5kZXhdLnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERlZmF1bHQgdG8gZmlyc3QgY2hvaWNlXG4gICAgICAgIHJlc29sdmUoY2hvaWNlc1swXS52YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9tcHRDb25maXJtKHF1ZXN0aW9uOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSA9IGZhbHNlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHJlYWRsaW5lID0gYXdhaXQgaW1wb3J0KCdyZWFkbGluZScpO1xuICBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCxcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgaGludCA9IGRlZmF1bHRWYWx1ZSA/ICdbWS9uXScgOiAnW3kvTl0nO1xuICAgIHJsLnF1ZXN0aW9uKGAke3F1ZXN0aW9ufSAke2hpbnR9OiBgLCAoYW5zd2VyKSA9PiB7XG4gICAgICBybC5jbG9zZSgpO1xuICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IGFuc3dlci50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChub3JtYWxpemVkID09PSAnJykge1xuICAgICAgICByZXNvbHZlKGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKG5vcm1hbGl6ZWQgPT09ICd5JyB8fCBub3JtYWxpemVkID09PSAneWVzJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb2plY3ROYW1lKG5hbWU6IHN0cmluZyk6IHsgdmFsaWQ6IGJvb2xlYW47IGVycm9yPzogc3RyaW5nIH0ge1xuICBpZiAoIW5hbWUpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiAnUHJvamVjdCBuYW1lIGlzIHJlcXVpcmVkJyB9O1xuICB9XG4gIFxuICAvLyBDaGVjayBmb3IgdmFsaWQgbnBtIHBhY2thZ2UgbmFtZVxuICBpZiAoIS9eW2EtejAtOV1bYS16MC05LS5fXSokL2kudGVzdChuYW1lKSkge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdJbnZhbGlkIHByb2plY3QgbmFtZS4gVXNlIGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgZGFzaGVzLicgfTtcbiAgfVxuICBcbiAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbn1cblxuLyoqXG4gKiBCYXNpYyBzdWJkb21haW4gZm9ybWF0IHZhbGlkYXRpb24gKHNlcnZlciBkb2VzIGZ1bGwgdmFsaWRhdGlvbiBpbmNsdWRpbmcgYmxhY2tsaXN0KVxuICovXG5mdW5jdGlvbiBpc1ZhbGlkU3ViZG9tYWluRm9ybWF0KHN1YmRvbWFpbjogc3RyaW5nKTogeyB2YWxpZDogYm9vbGVhbjsgZXJyb3I/OiBzdHJpbmcgfSB7XG4gIGlmICghc3ViZG9tYWluKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogJ1N1YmRvbWFpbiBpcyByZXF1aXJlZCcgfTtcbiAgfVxuICBcbiAgaWYgKHN1YmRvbWFpbi5sZW5ndGggPCAzKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogJ1N1YmRvbWFpbiBtdXN0IGJlIGF0IGxlYXN0IDMgY2hhcmFjdGVycycgfTtcbiAgfVxuICBcbiAgaWYgKHN1YmRvbWFpbi5sZW5ndGggPiA2Mykge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdTdWJkb21haW4gbXVzdCBiZSA2MyBjaGFyYWN0ZXJzIG9yIGxlc3MnIH07XG4gIH1cbiAgXG4gIGlmICghL15bYS16MC05XShbYS16MC05LV0qW2EtejAtOV0pPyQvLnRlc3Qoc3ViZG9tYWluKSkge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdTdWJkb21haW4gbXVzdCBzdGFydCBhbmQgZW5kIHdpdGggYWxwaGFudW1lcmljLCBjYW4gY29udGFpbiBoeXBoZW5zJyB9O1xuICB9XG4gIFxuICBpZiAoLy0tLy50ZXN0KHN1YmRvbWFpbikpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiAnU3ViZG9tYWluIGNhbm5vdCBjb250YWluIGNvbnNlY3V0aXZlIGh5cGhlbnMnIH07XG4gIH1cbiAgXG4gIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG59XG5cbi8qKlxuICogQ2hlY2sgc3ViZG9tYWluIGF2YWlsYWJpbGl0eSB2aWEgQVBJIChhbHNvIHZhbGlkYXRlcyBhZ2FpbnN0IHNlcnZlciBibGFja2xpc3QpXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNoZWNrU3ViZG9tYWluQXZhaWxhYmlsaXR5KFxuICBzdWJkb21haW46IHN0cmluZyxcbiAgYXBpVXJsOiBzdHJpbmdcbik6IFByb21pc2U8Q2hlY2tTdWJkb21haW5SZXNwb25zZT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7YXBpVXJsfS9hcGkvc3ViZG9tYWlucy9jaGVja2AsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHsgc3ViZG9tYWluIH0pLFxuICAgIH0pO1xuICAgIFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKSBhcyBDaGVja1N1YmRvbWFpblJlc3BvbnNlO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gY2F0Y2gge1xuICAgIC8vIElmIEFQSSBpcyB1bmF2YWlsYWJsZSwgYWxsb3cgcHJvY2VlZGluZyAod2lsbCBmYWlsIGF0IHJlZ2lzdHJhdGlvbiBpZiBpbnZhbGlkKVxuICAgIHJldHVybiB7IGF2YWlsYWJsZTogdHJ1ZSB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFByb2plY3ROYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBuYW1lXG4gICAgLnJlcGxhY2UoLy0vZywgJyAnKVxuICAgIC5yZXBsYWNlKC9cXGJcXHcvZywgKGNoYXIpID0+IGNoYXIudG9VcHBlckNhc2UoKSk7XG59XG5cbmZ1bmN0aW9uIGdldFBhY2thZ2VNYW5hZ2VyKCk6IHN0cmluZyB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IHByb2Nlc3MuZW52Lm5wbV9jb25maWdfdXNlcl9hZ2VudCB8fCAnJztcbiAgXG4gIGlmICh1c2VyQWdlbnQuc3RhcnRzV2l0aCgneWFybicpKSB7XG4gICAgcmV0dXJuICd5YXJuJztcbiAgfVxuICBcbiAgaWYgKHVzZXJBZ2VudC5zdGFydHNXaXRoKCdwbnBtJykpIHtcbiAgICByZXR1cm4gJ3BucG0nO1xuICB9XG4gIFxuICByZXR1cm4gJ25wbSc7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgZG9jcy5qc29uIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGVtcGxhdGUgdHlwZVxuICovXG5mdW5jdGlvbiBnZW5lcmF0ZURvY3NDb25maWcocHJvamVjdE5hbWU6IHN0cmluZywgdGVtcGxhdGVUeXBlOiBUZW1wbGF0ZVR5cGUpOiBvYmplY3Qge1xuICBjb25zdCBmb3JtYXR0ZWROYW1lID0gZm9ybWF0UHJvamVjdE5hbWUocHJvamVjdE5hbWUpO1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRFTVBMQVRFU1t0ZW1wbGF0ZVR5cGVdO1xuICBcbiAgLy8gQmFzZSBjb25maWd1cmF0aW9uIChzaGFyZWQgYWNyb3NzIGFsbCB0ZW1wbGF0ZXMpXG4gIGNvbnN0IGJhc2VDb25maWcgPSB7XG4gICAgJHNjaGVtYTogJ2h0dHBzOi8vZGV2ZG9jLnNoL2RvY3MuanNvbicsXG4gICAgbmFtZTogZm9ybWF0dGVkTmFtZSxcbiAgICBmYXZpY29uOiAnL2Zhdmljb24uc3ZnJyxcbiAgICBsb2dvOiB7XG4gICAgICBsaWdodDogJy9sb2dvLnN2ZycsXG4gICAgICBkYXJrOiAnL2xvZ28uc3ZnJyxcbiAgICB9LFxuICAgIGNvbG9yczoge1xuICAgICAgcHJpbWFyeTogdGVtcGxhdGUuY29sb3IsXG4gICAgfSxcbiAgICBuYXZpZ2F0aW9uOiB7XG4gICAgICB0YWJzOiBbXSBhcyBvYmplY3RbXSxcbiAgICAgIGdsb2JhbDoge1xuICAgICAgICBhbmNob3JzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYW5jaG9yOiAnR2l0SHViJyxcbiAgICAgICAgICAgIGhyZWY6ICdodHRwczovL2dpdGh1Yi5jb20veW91ci1vcmcveW91ci1yZXBvJyxcbiAgICAgICAgICAgIGljb246ICdnaXRodWItbG9nbycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICAvLyBEb2N1bWVudGF0aW9uIHRhYiAoYWx3YXlzIHByZXNlbnQpXG4gIGNvbnN0IGRvY3NUYWIgPSB7XG4gICAgdGFiOiAnRG9jdW1lbnRhdGlvbicsXG4gICAgdHlwZTogJ2RvY3MnLFxuICAgIGdyb3VwczogW1xuICAgICAge1xuICAgICAgICBncm91cDogJ0dldHRpbmcgU3RhcnRlZCcsXG4gICAgICAgIGljb246ICdyb2NrZXQtbGF1bmNoJyxcbiAgICAgICAgcGFnZXM6IFsnaW5kZXgnLCAncXVpY2tzdGFydCddLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZ3JvdXA6ICdHdWlkZXMnLFxuICAgICAgICBpY29uOiAnYm9vay1vcGVuJyxcbiAgICAgICAgcGFnZXM6IFsnZ3VpZGVzL292ZXJ2aWV3JywgJ2d1aWRlcy9jb25maWd1cmF0aW9uJ10sXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgYmFzZUNvbmZpZy5uYXZpZ2F0aW9uLnRhYnMucHVzaChkb2NzVGFiKTtcblxuICAvLyBBZGQgQVBJIHJlZmVyZW5jZSB0YWIgYmFzZWQgb24gdGVtcGxhdGUgdHlwZVxuICBpZiAodGVtcGxhdGVUeXBlID09PSAnb3BlbmFwaScpIHtcbiAgICBiYXNlQ29uZmlnLm5hdmlnYXRpb24udGFicy5wdXNoKHtcbiAgICAgIHRhYjogJ0FQSSBSZWZlcmVuY2UnLFxuICAgICAgdHlwZTogJ29wZW5hcGknLFxuICAgICAgcGF0aDogJy9hcGktcmVmZXJlbmNlJyxcbiAgICAgIHZlcnNpb25zOiBbXG4gICAgICAgIHsgdmVyc2lvbjogJ3YxJywgc3BlYzogJ2FwaS1yZWZlcmVuY2Uvb3BlbmFwaS5qc29uJywgZGVmYXVsdDogdHJ1ZSB9LFxuICAgICAgXSxcbiAgICAgIGdyb3VwczogW1xuICAgICAgICB7XG4gICAgICAgICAgZ3JvdXA6ICdPdmVydmlldycsXG4gICAgICAgICAgaWNvbjogJ2Jvb2stb3BlbicsXG4gICAgICAgICAgcGFnZXM6IFtcbiAgICAgICAgICAgICdhcGktcmVmZXJlbmNlL2ludHJvZHVjdGlvbicsXG4gICAgICAgICAgICAnYXBpLXJlZmVyZW5jZS9hdXRoZW50aWNhdGlvbicsXG4gICAgICAgICAgICAnYXBpLXJlZmVyZW5jZS9lcnJvcnMnLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIEFQSSBwbGF5Z3JvdW5kIGNvbmZpZ1xuICAgIChiYXNlQ29uZmlnIGFzIGFueSkuYXBpID0ge1xuICAgICAgYmFzZVVybDogJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tJyxcbiAgICAgIHBsYXlncm91bmQ6IHtcbiAgICAgICAgbW9kZTogJ3Nob3cnLFxuICAgICAgfSxcbiAgICB9O1xuICB9IGVsc2UgaWYgKHRlbXBsYXRlVHlwZSA9PT0gJ2dyYXBocWwnKSB7XG4gICAgYmFzZUNvbmZpZy5uYXZpZ2F0aW9uLnRhYnMucHVzaCh7XG4gICAgICB0YWI6ICdHcmFwaFFMIEFQSScsXG4gICAgICB0eXBlOiAnZ3JhcGhxbCcsXG4gICAgICBwYXRoOiAnL2dyYXBocWwtYXBpJyxcbiAgICAgIHNjaGVtYTogJ2FwaS1yZWZlcmVuY2Uvc2NoZW1hLmdyYXBocWwnLFxuICAgICAgZW5kcG9pbnQ6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbS9ncmFwaHFsJyxcbiAgICAgIGdyb3VwczogW1xuICAgICAgICB7XG4gICAgICAgICAgZ3JvdXA6ICdPdmVydmlldycsXG4gICAgICAgICAgaWNvbjogJ2Jvb2stb3BlbicsXG4gICAgICAgICAgcGFnZXM6IFtcbiAgICAgICAgICAgICdhcGktcmVmZXJlbmNlL2ludHJvZHVjdGlvbicsXG4gICAgICAgICAgICAnYXBpLXJlZmVyZW5jZS9hdXRoZW50aWNhdGlvbicsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gYmFzZUNvbmZpZztcbn1cblxuLy8gQ2xhdWRlIENvZGUgc2tpbGxzIHRvIGNyZWF0ZVxuY29uc3QgQ0xBVURFX1NLSUxMUyA9IFtcbiAgJ2Jvb3RzdHJhcC1kb2NzJyxcbiAgJ21pZ3JhdGUtZG9jcycsXG4gICdpbXBvcnQtYXBpLXNwZWMnLFxuICAnY2hlY2stZG9jcycsXG4gICdibGFtZS1kb2MnLFxuICAnY3JlYXRlLWRvYycsXG4gICd1cGRhdGUtZG9jJyxcbiAgJ2RlbGV0ZS1kb2MnLFxuICAnY29tbWl0LWRvYycsXG5dO1xuXG4vLyBDdXJzb3IgcnVsZXMgdG8gY3JlYXRlXG5jb25zdCBDVVJTT1JfUlVMRVMgPSBbXG4gICdkZXZkb2MubWRjJyxcbiAgJ2RldmRvYy1ib290c3RyYXAubWRjJyxcbiAgJ2RldmRvYy1taWdyYXRlLm1kYycsXG4gICdkZXZkb2MtYmxhbWUubWRjJyxcbiAgJ2RldmRvYy1jcmVhdGUubWRjJyxcbiAgJ2RldmRvYy11cGRhdGUubWRjJyxcbiAgJ2RldmRvYy1kZWxldGUubWRjJyxcbiAgJ2RldmRvYy1jb21taXQubWRjJyxcbl07XG5cbi8qKlxuICogR2V0IHRoZSBBSSBhZ2VudHMgdGVtcGxhdGUgZGlyZWN0b3J5IHBhdGhcbiAqL1xuZnVuY3Rpb24gZ2V0QUlBZ2VudHNEaXIoKTogc3RyaW5nIHwgbnVsbCB7XG4gIC8vIFRyeSByZWxhdGl2ZSB0byBjb21waWxlZCBkaXN0IChwYWNrYWdlcy9kZXZkb2MvZGlzdC9jbGkvY29tbWFuZHMgLT4gcGFja2FnZXMvZGV2ZG9jL2FpLWFnZW50cylcbiAgbGV0IGFnZW50c0RpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICcuLicsICdhaS1hZ2VudHMnKTtcbiAgXG4gIGlmIChmcy5leGlzdHNTeW5jKGFnZW50c0RpcikpIHtcbiAgICByZXR1cm4gYWdlbnRzRGlyO1xuICB9XG4gIFxuICAvLyBUcnkgZGV2ZG9jL3RlbXBsYXRlcyBhdCByZXBvIHJvb3QgKGRldmVsb3BtZW50KVxuICBhZ2VudHNEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAnLi4nLCAnLi4nLCAnZGV2ZG9jJywgJ3RlbXBsYXRlcycsICdzdGFydGVyJyk7XG4gIFxuICBpZiAoZnMuZXhpc3RzU3luYyhhZ2VudHNEaXIpKSB7XG4gICAgcmV0dXJuIGFnZW50c0RpcjtcbiAgfVxuICBcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogSW5zdGFsbCBBSSBhZ2VudCBjb25maWd1cmF0aW9uIGZpbGVzXG4gKi9cbmZ1bmN0aW9uIGluc3RhbGxBSUFnZW50cyhcbiAgcHJvamVjdFBhdGg6IHN0cmluZywgXG4gIHRvb2w6ICdjbGF1ZGUnIHwgJ2N1cnNvcicgfCAnYm90aCdcbik6IHsgY2xhdWRlTWQ6IGJvb2xlYW47IGNsYXVkZVNraWxsczogc3RyaW5nW107IGN1cnNvclJ1bGVzOiBzdHJpbmdbXSB9IHtcbiAgY29uc3QgcmVzdWx0cyA9IHtcbiAgICBjbGF1ZGVNZDogZmFsc2UsXG4gICAgY2xhdWRlU2tpbGxzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBjdXJzb3JSdWxlczogW10gYXMgc3RyaW5nW10sXG4gIH07XG5cbiAgY29uc3QgYWdlbnRzRGlyID0gZ2V0QUlBZ2VudHNEaXIoKTtcbiAgaWYgKCFhZ2VudHNEaXIpIHtcbiAgICBsb2dnZXIud2FybignQUkgYWdlbnQgdGVtcGxhdGVzIG5vdCBmb3VuZCcpO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgLy8gSW5zdGFsbCBDbGF1ZGUgQ29kZSBmaWxlc1xuICBpZiAodG9vbCA9PT0gJ2NsYXVkZScgfHwgdG9vbCA9PT0gJ2JvdGgnKSB7XG4gICAgLy8gQ29weSBDTEFVREUubWRcbiAgICBjb25zdCBjbGF1ZGVNZFNvdXJjZSA9IHBhdGguam9pbihhZ2VudHNEaXIsICdDTEFVREUubWQnKTtcbiAgICBjb25zdCBjbGF1ZGVNZERlc3QgPSBwYXRoLmpvaW4ocHJvamVjdFBhdGgsICdDTEFVREUubWQnKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhjbGF1ZGVNZFNvdXJjZSkpIHtcbiAgICAgIGZzLmNvcHlTeW5jKGNsYXVkZU1kU291cmNlLCBjbGF1ZGVNZERlc3QpO1xuICAgICAgcmVzdWx0cy5jbGF1ZGVNZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gQ29weSBza2lsbHNcbiAgICBjb25zdCBzb3VyY2VTa2lsbHNEaXIgPSBwYXRoLmpvaW4oYWdlbnRzRGlyLCAnLmNsYXVkZScsICdza2lsbHMnKTtcbiAgICBjb25zdCBkZXN0U2tpbGxzRGlyID0gcGF0aC5qb2luKHByb2plY3RQYXRoLCAnLmNsYXVkZScsICdza2lsbHMnKTtcbiAgICBcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhzb3VyY2VTa2lsbHNEaXIpKSB7XG4gICAgICBmcy5lbnN1cmVEaXJTeW5jKGRlc3RTa2lsbHNEaXIpO1xuICAgICAgXG4gICAgICBmb3IgKGNvbnN0IHNraWxsIG9mIENMQVVERV9TS0lMTFMpIHtcbiAgICAgICAgY29uc3Qgc291cmNlRGlyID0gcGF0aC5qb2luKHNvdXJjZVNraWxsc0Rpciwgc2tpbGwpO1xuICAgICAgICBjb25zdCBkZXN0RGlyID0gcGF0aC5qb2luKGRlc3RTa2lsbHNEaXIsIHNraWxsKTtcbiAgICAgICAgXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHNvdXJjZURpcikpIHtcbiAgICAgICAgICBmcy5jb3B5U3luYyhzb3VyY2VEaXIsIGRlc3REaXIpO1xuICAgICAgICAgIHJlc3VsdHMuY2xhdWRlU2tpbGxzLnB1c2goc2tpbGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSW5zdGFsbCBDdXJzb3IgZmlsZXNcbiAgaWYgKHRvb2wgPT09ICdjdXJzb3InIHx8IHRvb2wgPT09ICdib3RoJykge1xuICAgIGNvbnN0IHNvdXJjZVJ1bGVzRGlyID0gcGF0aC5qb2luKGFnZW50c0RpciwgJy5jdXJzb3InLCAncnVsZXMnKTtcbiAgICBjb25zdCBkZXN0UnVsZXNEaXIgPSBwYXRoLmpvaW4ocHJvamVjdFBhdGgsICcuY3Vyc29yJywgJ3J1bGVzJyk7XG4gICAgXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoc291cmNlUnVsZXNEaXIpKSB7XG4gICAgICBmcy5lbnN1cmVEaXJTeW5jKGRlc3RSdWxlc0Rpcik7XG4gICAgICBcbiAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBDVVJTT1JfUlVMRVMpIHtcbiAgICAgICAgY29uc3Qgc291cmNlUGF0aCA9IHBhdGguam9pbihzb3VyY2VSdWxlc0RpciwgcnVsZSk7XG4gICAgICAgIGNvbnN0IGRlc3RQYXRoID0gcGF0aC5qb2luKGRlc3RSdWxlc0RpciwgcnVsZSk7XG4gICAgICAgIFxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhzb3VyY2VQYXRoKSkge1xuICAgICAgICAgIGZzLmNvcHlTeW5jKHNvdXJjZVBhdGgsIGRlc3RQYXRoKTtcbiAgICAgICAgICByZXN1bHRzLmN1cnNvclJ1bGVzLnB1c2gocnVsZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbn1cblxuLyoqXG4gKiBDbGVhbiB1cCB1bnVzZWQgQVBJIGZpbGVzIGJhc2VkIG9uIHRlbXBsYXRlIHR5cGVcbiAqL1xuZnVuY3Rpb24gY2xlYW51cFVudXNlZEZpbGVzKHJlc29sdmVkUGF0aDogc3RyaW5nLCB0ZW1wbGF0ZVR5cGU6IFRlbXBsYXRlVHlwZSk6IHZvaWQge1xuICBjb25zdCBhcGlSZWZQYXRoID0gcGF0aC5qb2luKHJlc29sdmVkUGF0aCwgJ2FwaS1yZWZlcmVuY2UnKTtcbiAgXG4gIGlmICh0ZW1wbGF0ZVR5cGUgPT09ICdiYXNpYycpIHtcbiAgICAvLyBSZW1vdmUgZW50aXJlIGFwaS1yZWZlcmVuY2UgZm9sZGVyIGZvciBiYXNpYyB0ZW1wbGF0ZVxuICAgIGlmIChmcy5leGlzdHNTeW5jKGFwaVJlZlBhdGgpKSB7XG4gICAgICBmcy5yZW1vdmVTeW5jKGFwaVJlZlBhdGgpO1xuICAgICAgbG9nZ2VyLmRlYnVnKCdSZW1vdmVkIGFwaS1yZWZlcmVuY2UgZm9sZGVyIChub3QgbmVlZGVkIGZvciBiYXNpYyB0ZW1wbGF0ZSknKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodGVtcGxhdGVUeXBlID09PSAnb3BlbmFwaScpIHtcbiAgICAvLyBSZW1vdmUgR3JhcGhRTCBzY2hlbWEgZm9yIE9wZW5BUEkgdGVtcGxhdGVcbiAgICBjb25zdCBncmFwaHFsU2NoZW1hID0gcGF0aC5qb2luKGFwaVJlZlBhdGgsICdzY2hlbWEuZ3JhcGhxbCcpO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKGdyYXBocWxTY2hlbWEpKSB7XG4gICAgICBmcy5yZW1vdmVTeW5jKGdyYXBocWxTY2hlbWEpO1xuICAgICAgbG9nZ2VyLmRlYnVnKCdSZW1vdmVkIHNjaGVtYS5ncmFwaHFsIChub3QgbmVlZGVkIGZvciBPcGVuQVBJIHRlbXBsYXRlKScpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0ZW1wbGF0ZVR5cGUgPT09ICdncmFwaHFsJykge1xuICAgIC8vIFJlbW92ZSBPcGVuQVBJIHNwZWMgYW5kIGVycm9ycy5tZHggZm9yIEdyYXBoUUwgdGVtcGxhdGVcbiAgICBjb25zdCBvcGVuYXBpU3BlYyA9IHBhdGguam9pbihhcGlSZWZQYXRoLCAnb3BlbmFwaS5qc29uJyk7XG4gICAgY29uc3QgZXJyb3JzRmlsZSA9IHBhdGguam9pbihhcGlSZWZQYXRoLCAnZXJyb3JzLm1keCcpO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKG9wZW5hcGlTcGVjKSkge1xuICAgICAgZnMucmVtb3ZlU3luYyhvcGVuYXBpU3BlYyk7XG4gICAgICBsb2dnZXIuZGVidWcoJ1JlbW92ZWQgb3BlbmFwaS5qc29uIChub3QgbmVlZGVkIGZvciBHcmFwaFFMIHRlbXBsYXRlKScpO1xuICAgIH1cbiAgICBpZiAoZnMuZXhpc3RzU3luYyhlcnJvcnNGaWxlKSkge1xuICAgICAgZnMucmVtb3ZlU3luYyhlcnJvcnNGaWxlKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZygnUmVtb3ZlZCBlcnJvcnMubWR4IChub3QgbmVlZGVkIGZvciBHcmFwaFFMIHRlbXBsYXRlKScpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlKHByb2plY3REaXJlY3Rvcnk6IHN0cmluZyB8IHVuZGVmaW5lZCwgb3B0aW9uczogQ3JlYXRlT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zb2xlLmxvZygpO1xuICBsb2dnZXIuaW5mbygn8J+QnyBDcmVhdGUgRGV2RG9jIERvYycpO1xuICBjb25zb2xlLmxvZygpO1xuXG4gIGNvbnN0IGFwaVVybCA9IG9wdGlvbnMudXJsIHx8IHByb2Nlc3MuZW52LkRFVkRPQ19BUElfVVJMIHx8IERFRkFVTFRfQVBJX1VSTDtcblxuICAvLyBHZXQgcHJvamVjdCBuYW1lIGlmIG5vdCBwcm92aWRlZFxuICBsZXQgcHJvamVjdFBhdGggPSBwcm9qZWN0RGlyZWN0b3J5O1xuXG4gIGlmICghcHJvamVjdFBhdGgpIHtcbiAgICBwcm9qZWN0UGF0aCA9IGF3YWl0IHByb21wdCgnV2hhdCBpcyB5b3VyIHByb2plY3QgbmFtZWQ/JywgJ215LWRvY3MnKTtcbiAgICBcbiAgICBpZiAoIXByb2plY3RQYXRoKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoJ1Byb2plY3QgbmFtZSBpcyByZXF1aXJlZCcpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHByb2plY3QgbmFtZVxuICBjb25zdCB2YWxpZGF0aW9uID0gdmFsaWRhdGVQcm9qZWN0TmFtZShwcm9qZWN0UGF0aCk7XG4gIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgIGxvZ2dlci5lcnJvcih2YWxpZGF0aW9uLmVycm9yIHx8ICdJbnZhbGlkIHByb2plY3QgbmFtZScpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIC8vIEdldCBkb2MgdHlwZSBzZWxlY3Rpb24gaWYgbm90IHByb3ZpZGVkXG4gIGxldCBkb2NUeXBlOiBEb2NUeXBlID0gb3B0aW9ucy5kb2NUeXBlIHx8ICdwdWJsaWMnO1xuICBcbiAgaWYgKCFvcHRpb25zLmRvY1R5cGUpIHtcbiAgICBjb25zdCBkb2NUeXBlQ2hvaWNlcyA9IE9iamVjdC5lbnRyaWVzKERPQ19UWVBFUykubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICB2YWx1ZToga2V5LFxuICAgICAgbGFiZWw6IGAke3ZhbHVlLm5hbWV9IC0gJHt2YWx1ZS5kZXNjcmlwdGlvbn1gLFxuICAgIH0pKTtcblxuICAgIGRvY1R5cGUgPSBhd2FpdCBwcm9tcHRTZWxlY3QoJ1doYXQgdHlwZSBvZiBkb2N1bWVudGF0aW9uIGFyZSB5b3UgY3JlYXRpbmc/JywgZG9jVHlwZUNob2ljZXMpIGFzIERvY1R5cGU7XG4gIH1cblxuICBjb25zdCBpc0ludGVybmFsRG9jcyA9IGRvY1R5cGUgPT09ICdpbnRlcm5hbCc7XG5cbiAgLy8gR2V0IHRlbXBsYXRlIHNlbGVjdGlvbiBpZiBub3QgcHJvdmlkZWRcbiAgbGV0IHRlbXBsYXRlOiBUZW1wbGF0ZVR5cGUgPSBvcHRpb25zLnRlbXBsYXRlIHx8ICdiYXNpYyc7XG4gIFxuICBpZiAoIW9wdGlvbnMudGVtcGxhdGUpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZUNob2ljZXMgPSBPYmplY3QuZW50cmllcyhURU1QTEFURVMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoe1xuICAgICAgdmFsdWU6IGtleSxcbiAgICAgIGxhYmVsOiBgJHt2YWx1ZS5uYW1lfSAtICR7dmFsdWUuZGVzY3JpcHRpb259YCxcbiAgICB9KSk7XG5cbiAgICB0ZW1wbGF0ZSA9IGF3YWl0IHByb21wdFNlbGVjdCgnV2hpY2ggdGVtcGxhdGUgd291bGQgeW91IGxpa2UgdG8gdXNlPycsIHRlbXBsYXRlQ2hvaWNlcykgYXMgVGVtcGxhdGVUeXBlO1xuICB9XG5cbiAgLy8gUmVzb2x2ZSBmdWxsIHBhdGhcbiAgY29uc3QgcmVzb2x2ZWRQYXRoID0gcGF0aC5yZXNvbHZlKHByb2plY3RQYXRoKTtcbiAgY29uc3QgcHJvamVjdE5hbWUgPSBwYXRoLmJhc2VuYW1lKHJlc29sdmVkUGF0aCk7XG4gIGNvbnN0IHNsdWcgPSBwcm9qZWN0TmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XSsvZywgJy0nKS5yZXBsYWNlKC9eLXwtJC9nLCAnJyk7XG5cbiAgLy8gR2V0IHN1YmRvbWFpbiAtIG9ubHkgZm9yIHB1YmxpYyBkb2NzXG4gIGxldCBzdWJkb21haW46IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnMuc3ViZG9tYWluO1xuICBcbiAgaWYgKCFpc0ludGVybmFsRG9jcykge1xuICAgIGlmICghc3ViZG9tYWluKSB7XG4gICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgc3ViZG9tYWluID0gYXdhaXQgcHJvbXB0KGBFbnRlciBzdWJkb21haW4gZm9yIHlvdXIgZG9jcyAoJHtzbHVnfS5kZXZkb2Muc2gpYCwgc2x1Zyk7XG4gICAgICBzdWJkb21haW4gPSBzdWJkb21haW4udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOS1dL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHN1YmRvbWFpbiBmb3JtYXQgbG9jYWxseVxuICAgIGNvbnN0IGZvcm1hdENoZWNrID0gaXNWYWxpZFN1YmRvbWFpbkZvcm1hdChzdWJkb21haW4pO1xuICAgIGlmICghZm9ybWF0Q2hlY2sudmFsaWQpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihmb3JtYXRDaGVjay5lcnJvciEpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIHN1YmRvbWFpbiBhdmFpbGFiaWxpdHkgdmlhIEFQSSAoc2VydmVyIHZhbGlkYXRlcyBibGFja2xpc3QpXG4gICAgLy8gTG9vcCB1bnRpbCB3ZSBmaW5kIGFuIGF2YWlsYWJsZSBzdWJkb21haW5cbiAgICBsZXQgc3ViZG9tYWluQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgd2hpbGUgKCFzdWJkb21haW5BdmFpbGFibGUpIHtcbiAgICAgIGxvZ2dlci5pbmZvKGBDaGVja2luZyBpZiAke3N1YmRvbWFpbn0uZGV2ZG9jLnNoIGlzIGF2YWlsYWJsZS4uLmApO1xuICAgICAgY29uc3QgYXZhaWxhYmlsaXR5ID0gYXdhaXQgY2hlY2tTdWJkb21haW5BdmFpbGFiaWxpdHkoc3ViZG9tYWluLCBhcGlVcmwpO1xuICAgICAgXG4gICAgICBpZiAoIWF2YWlsYWJpbGl0eS5hdmFpbGFibGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgbG9nZ2VyLndhcm4oYXZhaWxhYmlsaXR5LmVycm9yIHx8IGBTdWJkb21haW4gXCIke3N1YmRvbWFpbn1cIiBpcyBub3QgYXZhaWxhYmxlYCk7XG4gICAgICAgIFxuICAgICAgICBjb25zdCBzdWdnZXN0aW9uID0gYXZhaWxhYmlsaXR5LnN1Z2dlc3Rpb24gfHwgYCR7c3ViZG9tYWlufS1kb2NzYDtcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgICAgbG9nZ2VyLmluZm8oYFN1Z2dlc3Rpb246ICR7c3VnZ2VzdGlvbn0uZGV2ZG9jLnNoYCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIFxuICAgICAgICAvLyBQcm9tcHQgZm9yIG5ldyBzdWJkb21haW5cbiAgICAgICAgc3ViZG9tYWluID0gYXdhaXQgcHJvbXB0KCdFbnRlciBhIGRpZmZlcmVudCBzdWJkb21haW4nLCBzdWdnZXN0aW9uKTtcbiAgICAgICAgc3ViZG9tYWluID0gc3ViZG9tYWluLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTktXS9nLCAnLScpLnJlcGxhY2UoL14tfC0kL2csICcnKTtcbiAgICAgICAgXG4gICAgICAgIC8vIFZhbGlkYXRlIGZvcm1hdFxuICAgICAgICBjb25zdCBmb3JtYXRDaGVjayA9IGlzVmFsaWRTdWJkb21haW5Gb3JtYXQoc3ViZG9tYWluKTtcbiAgICAgICAgaWYgKCFmb3JtYXRDaGVjay52YWxpZCkge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcihmb3JtYXRDaGVjay5lcnJvciEpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3ViZG9tYWluQXZhaWxhYmxlID0gdHJ1ZTtcbiAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoYOKckyAke3N1YmRvbWFpbn0uZGV2ZG9jLnNoIGlzIGF2YWlsYWJsZSFgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDaGVjayBpZiBkaXJlY3RvcnkgZXhpc3RzXG4gIGlmIChmcy5leGlzdHNTeW5jKHJlc29sdmVkUGF0aCkpIHtcbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKHJlc29sdmVkUGF0aCk7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG92ZXJ3cml0ZSA9IGF3YWl0IHByb21wdENvbmZpcm0oYERpcmVjdG9yeSAke3Byb2plY3ROYW1lfSBpcyBub3QgZW1wdHkuIENvbnRpbnVlIGFueXdheT9gLCBmYWxzZSk7XG4gICAgICBcbiAgICAgIGlmICghb3ZlcndyaXRlKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignT3BlcmF0aW9uIGNhbmNlbGxlZCcpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2VsZWN0ZWRUZW1wbGF0ZSA9IFRFTVBMQVRFU1t0ZW1wbGF0ZV07XG4gIGNvbnNvbGUubG9nKCk7XG4gIGxvZ2dlci5pbmZvKGBDcmVhdGluZyBhIG5ldyAke3NlbGVjdGVkVGVtcGxhdGUubmFtZX0gRGV2RG9jIGRvY3VtZW50YXRpb24gc2l0ZSBpbiAke3Jlc29sdmVkUGF0aH1gKTtcbiAgY29uc29sZS5sb2coKTtcblxuICAvLyBDcmVhdGUgcHJvamVjdCBkaXJlY3RvcnlcbiAgZnMuZW5zdXJlRGlyU3luYyhyZXNvbHZlZFBhdGgpO1xuXG4gIC8vIERvd25sb2FkIHRlbXBsYXRlIGZyb20gcmVtb3RlIHJlcG9zaXRvcnkgKGFsd2F5cyB1c2Ugc3RhcnRlciB0ZW1wbGF0ZSlcbiAgbG9nZ2VyLmluZm8oJ0Rvd25sb2FkaW5nIHRlbXBsYXRlLi4uJyk7XG4gIFxuICB0cnkge1xuICAgIC8vIFRyeSB0byBkb3dubG9hZCBmcm9tIHJlbW90ZSByZXBvc2l0b3J5IGZpcnN0XG4gICAgYXdhaXQgZG93bmxvYWRUZW1wbGF0ZShURU1QTEFURV9SRVBPLCB7XG4gICAgICBkaXI6IHJlc29sdmVkUGF0aCxcbiAgICAgIGZvcmNlOiB0cnVlLFxuICAgIH0pO1xuICAgIGxvZ2dlci5zdWNjZXNzKCdEb3dubG9hZGVkIHN0YXJ0ZXIgdGVtcGxhdGUnKTtcbiAgfSBjYXRjaCAoZG93bmxvYWRFcnJvcikge1xuICAgIC8vIEZhbGwgYmFjayB0byBsb2NhbCB0ZW1wbGF0ZXMgKGZvciBkZXZlbG9wbWVudCBvciBvZmZsaW5lIHVzYWdlKVxuICAgIGxvZ2dlci5kZWJ1ZyhgUmVtb3RlIGRvd25sb2FkIGZhaWxlZDogJHtkb3dubG9hZEVycm9yfWApO1xuICAgIGxvZ2dlci5pbmZvKCdGYWxsaW5nIGJhY2sgdG8gbG9jYWwgdGVtcGxhdGUuLi4nKTtcbiAgICBcbiAgICBjb25zdCB0ZW1wbGF0ZURpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICcuLicsICcuLicsICd0ZW1wbGF0ZXMnLCAnc3RhcnRlcicpO1xuICAgIFxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0ZW1wbGF0ZURpcikpIHtcbiAgICAgIGxvZ2dlci5lcnJvcignVGVtcGxhdGUgXCJzdGFydGVyXCIgbm90IGZvdW5kJyk7XG4gICAgICBsb2dnZXIuZGVidWcoYExvb2tlZCBmb3IgdGVtcGxhdGUgYXQ6ICR7dGVtcGxhdGVEaXJ9YCk7XG4gICAgICBsb2dnZXIuZGVidWcoJ1JlbW90ZSBzb3VyY2U6ICcgKyBURU1QTEFURV9SRVBPKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBmcy5jb3B5U3luYyh0ZW1wbGF0ZURpciwgcmVzb2x2ZWRQYXRoLCB7IG92ZXJ3cml0ZTogdHJ1ZSB9KTtcbiAgICBsb2dnZXIuc3VjY2VzcygnQ29waWVkIGxvY2FsIHRlbXBsYXRlJyk7XG4gIH1cblxuICAvLyBVcGRhdGUgcGFja2FnZS5qc29uIHdpdGggcHJvamVjdCBuYW1lXG4gIGNvbnN0IHBrZ1BhdGggPSBwYXRoLmpvaW4ocmVzb2x2ZWRQYXRoLCAncGFja2FnZS5qc29uJyk7XG4gIGlmIChmcy5leGlzdHNTeW5jKHBrZ1BhdGgpKSB7XG4gICAgY29uc3QgcGtnID0gZnMucmVhZEpzb25TeW5jKHBrZ1BhdGgpO1xuICAgIHBrZy5uYW1lID0gcHJvamVjdE5hbWU7XG4gICAgZnMud3JpdGVKc29uU3luYyhwa2dQYXRoLCBwa2csIHsgc3BhY2VzOiAyIH0pO1xuICB9XG5cbiAgLy8gR2VuZXJhdGUgZG9jcy5qc29uIGJhc2VkIG9uIHRlbXBsYXRlIHR5cGVcbiAgY29uc3QgZG9jc0NvbmZpZyA9IGdlbmVyYXRlRG9jc0NvbmZpZyhwcm9qZWN0TmFtZSwgdGVtcGxhdGUpO1xuICBjb25zdCBkb2NzUGF0aCA9IHBhdGguam9pbihyZXNvbHZlZFBhdGgsICdkb2NzLmpzb24nKTtcbiAgZnMud3JpdGVKc29uU3luYyhkb2NzUGF0aCwgZG9jc0NvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gIGxvZ2dlci5zdWNjZXNzKGBHZW5lcmF0ZWQgZG9jcy5qc29uIGZvciAke3NlbGVjdGVkVGVtcGxhdGUubmFtZX0gdGVtcGxhdGVgKTtcblxuICAvLyBVcGRhdGUgdGhlbWUuanNvbiB3aXRoIHRlbXBsYXRlIGNvbG9yXG4gIGNvbnN0IHRoZW1lUGF0aCA9IHBhdGguam9pbihyZXNvbHZlZFBhdGgsICd0aGVtZS5qc29uJyk7XG4gIGlmIChmcy5leGlzdHNTeW5jKHRoZW1lUGF0aCkpIHtcbiAgICBjb25zdCB0aGVtZSA9IGZzLnJlYWRKc29uU3luYyh0aGVtZVBhdGgpO1xuICAgIHRoZW1lLmNvbG9ycyA9IHtcbiAgICAgIHByaW1hcnk6IHNlbGVjdGVkVGVtcGxhdGUuY29sb3IsXG4gICAgICBwcmltYXJ5TGlnaHQ6IHNlbGVjdGVkVGVtcGxhdGUuY29sb3IsXG4gICAgICBwcmltYXJ5RGFyazogc2VsZWN0ZWRUZW1wbGF0ZS5jb2xvcixcbiAgICB9O1xuICAgIGZzLndyaXRlSnNvblN5bmModGhlbWVQYXRoLCB0aGVtZSwgeyBzcGFjZXM6IDIgfSk7XG4gIH1cblxuICAvLyBDbGVhbiB1cCB1bnVzZWQgZmlsZXMgYmFzZWQgb24gdGVtcGxhdGUgdHlwZVxuICBjbGVhbnVwVW51c2VkRmlsZXMocmVzb2x2ZWRQYXRoLCB0ZW1wbGF0ZSk7XG5cbiAgLy8gQ3JlYXRlIC5kZXZkb2MuanNvbiB3aXRoIHByb2plY3QgY29uZmlnXG4gIC8vIEZvciBwdWJsaWMgZG9jczogc3ViZG9tYWluIHdpbGwgb25seSBiZSByZXNlcnZlZCB3aGVuIHRoZSB1c2VyIGFjdHVhbGx5IGRlcGxveXNcbiAgLy8gRm9yIGludGVybmFsIGRvY3M6IG5vIHN1YmRvbWFpbiBuZWVkZWRcbiAgY29uc3QgZGV2ZG9jQ29uZmlnUGF0aCA9IHBhdGguam9pbihyZXNvbHZlZFBhdGgsICcuZGV2ZG9jLmpzb24nKTtcbiAgXG4gIGNvbnN0IGRldmRvY0NvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgcHJvamVjdElkOiBgJHtzbHVnfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyLCA4KX1gLFxuICAgIG5hbWU6IGZvcm1hdFByb2plY3ROYW1lKHByb2plY3ROYW1lKSxcbiAgICBzbHVnOiBzbHVnLFxuICAgIGRvY1R5cGU6IGRvY1R5cGUsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIH07XG5cbiAgLy8gT25seSBhZGQgc3ViZG9tYWluIGZvciBwdWJsaWMgZG9jc1xuICBpZiAoIWlzSW50ZXJuYWxEb2NzICYmIHN1YmRvbWFpbikge1xuICAgIGRldmRvY0NvbmZpZy5zdWJkb21haW4gPSBzdWJkb21haW47XG4gIH1cblxuICBmcy53cml0ZUpzb25TeW5jKGRldmRvY0NvbmZpZ1BhdGgsIGRldmRvY0NvbmZpZywgeyBzcGFjZXM6IDIgfSk7XG4gIGxvZ2dlci5zdWNjZXNzKCdDcmVhdGVkIC5kZXZkb2MuanNvbicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBEb2MgVHlwZTonLCBET0NfVFlQRVNbZG9jVHlwZV0ubmFtZSk7XG4gIGlmICghaXNJbnRlcm5hbERvY3MgJiYgc3ViZG9tYWluKSB7XG4gICAgY29uc29sZS5sb2coJyAgU3ViZG9tYWluOicsIGAke3N1YmRvbWFpbn0uZGV2ZG9jLnNoYCk7XG4gICAgY29uc29sZS5sb2coJyAgU3RhdHVzOicsICdOb3QgeWV0IGRlcGxveWVkIChzdWJkb21haW4gd2lsbCBiZSByZXNlcnZlZCBvbiBmaXJzdCBkZXBsb3kpJyk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJyAgU3RhdHVzOicsICdJbnRlcm5hbCBkb2NzIChsb2NhbCBkZXZlbG9wbWVudCBvbmx5KScpO1xuICB9XG5cbiAgLy8gSW5pdGlhbGl6ZSBnaXRcbiAgaWYgKG9wdGlvbnMuZ2l0ICE9PSBmYWxzZSkge1xuICAgIGxvZ2dlci5pbmZvKCdJbml0aWFsaXppbmcgZ2l0IHJlcG9zaXRvcnkuLi4nKTtcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBpbml0JywgeyBjd2Q6IHJlc29sdmVkUGF0aCwgc3RkaW86ICdpZ25vcmUnIH0pO1xuICAgICAgZXhlY1N5bmMoJ2dpdCBhZGQgLUEnLCB7IGN3ZDogcmVzb2x2ZWRQYXRoLCBzdGRpbzogJ2lnbm9yZScgfSk7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIkluaXRpYWwgY29tbWl0IGZyb20gZGV2ZG9jIGNyZWF0ZVwiJywge1xuICAgICAgICBjd2Q6IHJlc29sdmVkUGF0aCxcbiAgICAgICAgc3RkaW86ICdpZ25vcmUnLFxuICAgICAgfSk7XG4gICAgICBsb2dnZXIuc3VjY2VzcygnR2l0IHJlcG9zaXRvcnkgaW5pdGlhbGl6ZWQnKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGxvZ2dlci53YXJuKCdDb3VsZCBub3QgaW5pdGlhbGl6ZSBnaXQgcmVwb3NpdG9yeScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEluc3RhbGwgZGVwZW5kZW5jaWVzXG4gIGlmIChvcHRpb25zLmluc3RhbGwgIT09IGZhbHNlKSB7XG4gICAgbG9nZ2VyLmluZm8oJ0luc3RhbGxpbmcgZGVwZW5kZW5jaWVzLi4uJyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhY2thZ2VNYW5hZ2VyID0gZ2V0UGFja2FnZU1hbmFnZXIoKTtcbiAgICAgIGV4ZWNTeW5jKGAke3BhY2thZ2VNYW5hZ2VyfSBpbnN0YWxsYCwge1xuICAgICAgICBjd2Q6IHJlc29sdmVkUGF0aCxcbiAgICAgICAgc3RkaW86ICdpbmhlcml0JyxcbiAgICAgIH0pO1xuICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ0RlcGVuZGVuY2llcyBpbnN0YWxsZWQnKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIGxvZ2dlci53YXJuKCdDb3VsZCBub3QgaW5zdGFsbCBkZXBlbmRlbmNpZXMnKTtcbiAgICB9XG4gIH1cblxuICAvLyBJbnN0YWxsIEFJIGFnZW50cyBpZiByZXF1ZXN0ZWRcbiAgbGV0IGFpVG9vbDogJ2NsYXVkZScgfCAnY3Vyc29yJyB8ICdib3RoJyB8IG51bGwgPSBudWxsO1xuICBcbiAgaWYgKG9wdGlvbnMuYWkgPT09IHRydWUpIHtcbiAgICAvLyBJZiAtLWFpIGZsYWcgaXMgcGFzc2VkIHdpdGhvdXQgdmFsdWUsIHByb21wdCBmb3Igc2VsZWN0aW9uXG4gICAgY29uc3QgYWlDaG9pY2VzID0gW1xuICAgICAgeyB2YWx1ZTogJ2JvdGgnLCBsYWJlbDogJ0JvdGggLSBDbGF1ZGUgQ29kZSBhbmQgQ3Vyc29yJyB9LFxuICAgICAgeyB2YWx1ZTogJ2NsYXVkZScsIGxhYmVsOiAnQ2xhdWRlIENvZGUgLSBTa2lsbHMgYW5kIENMQVVERS5tZCcgfSxcbiAgICAgIHsgdmFsdWU6ICdjdXJzb3InLCBsYWJlbDogJ0N1cnNvciAtIFJ1bGVzICguY3Vyc29yL3J1bGVzLyknIH0sXG4gICAgICB7IHZhbHVlOiAnc2tpcCcsIGxhYmVsOiAnU2tpcCAtIElcXCdsbCBzZXQgdGhpcyB1cCBsYXRlcicgfSxcbiAgICBdO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IGF3YWl0IHByb21wdFNlbGVjdCgnU2V0IHVwIEFJIGFnZW50IGNvbmZpZ3VyYXRpb24/JywgYWlDaG9pY2VzKTtcbiAgICBpZiAoc2VsZWN0aW9uICE9PSAnc2tpcCcpIHtcbiAgICAgIGFpVG9vbCA9IHNlbGVjdGlvbiBhcyAnY2xhdWRlJyB8ICdjdXJzb3InIHwgJ2JvdGgnO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9ucy5haSA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyBJZiAtLWFpPWNsYXVkZSwgLS1haT1jdXJzb3IsIG9yIC0tYWk9Ym90aCBpcyBwYXNzZWRcbiAgICBhaVRvb2wgPSBvcHRpb25zLmFpIGFzICdjbGF1ZGUnIHwgJ2N1cnNvcicgfCAnYm90aCc7XG4gIH1cblxuICBpZiAoYWlUb29sKSB7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBsb2dnZXIuaW5mbygnU2V0dGluZyB1cCBBSSBhZ2VudCBjb25maWd1cmF0aW9uLi4uJyk7XG4gICAgY29uc3QgYWlSZXN1bHRzID0gaW5zdGFsbEFJQWdlbnRzKHJlc29sdmVkUGF0aCwgYWlUb29sKTtcbiAgICBcbiAgICBpZiAoYWlSZXN1bHRzLmNsYXVkZU1kKSB7XG4gICAgICBsb2dnZXIuc3VjY2VzcygnQ3JlYXRlZCBDTEFVREUubWQnKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBza2lsbCBvZiBhaVJlc3VsdHMuY2xhdWRlU2tpbGxzKSB7XG4gICAgICBsb2dnZXIuc3VjY2VzcyhgQ3JlYXRlZCAuY2xhdWRlL3NraWxscy8ke3NraWxsfS9TS0lMTC5tZGApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgYWlSZXN1bHRzLmN1cnNvclJ1bGVzKSB7XG4gICAgICBsb2dnZXIuc3VjY2VzcyhgQ3JlYXRlZCAuY3Vyc29yL3J1bGVzLyR7cnVsZX1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBTdWNjZXNzIG1lc3NhZ2VcbiAgY29uc29sZS5sb2coKTtcbiAgbG9nZ2VyLnN1Y2Nlc3MoYENyZWF0ZWQgJHtwcm9qZWN0TmFtZX0gYXQgJHtyZXNvbHZlZFBhdGh9YCk7XG4gIGNvbnNvbGUubG9nKCk7XG5cbiAgaWYgKCFpc0ludGVybmFsRG9jcyAmJiBzdWJkb21haW4pIHtcbiAgICBjb25zb2xlLmxvZygnWW91ciBkb2NzIHdpbGwgYmUgYXZhaWxhYmxlIGF0OicpO1xuICAgIGNvbnNvbGUubG9nKGAgIGh0dHBzOi8vJHtzdWJkb21haW59LmRldmRvYy5zaGApO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgbG9nZ2VyLmluZm8oJ05vdGU6IFRoZSBzdWJkb21haW4gd2lsbCBiZSByZXNlcnZlZCB3aGVuIHlvdSBydW4gXCJkZXZkb2MgZGVwbG95XCInKTtcbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKCdJbnNpZGUgdGhhdCBkaXJlY3RvcnksIHlvdSBjYW4gcnVuIHNldmVyYWwgY29tbWFuZHM6Jyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZygnICBucG0gcnVuIGRldicpO1xuICAgIGNvbnNvbGUubG9nKCcgICAgU3RhcnRzIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIuJyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZygnICBkZXZkb2MgZGVwbG95Jyk7XG4gICAgY29uc29sZS5sb2coJyAgICBEZXBsb3lzIGFuZCBjbGFpbXMgeW91ciBzdWJkb21haW4uJyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnVGhpcyBpcyBhbiBpbnRlcm5hbCBkb2N1bWVudGF0aW9uIHByb2plY3QgZm9yIGxvY2FsIGRldmVsb3BtZW50LicpO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coJ0luc2lkZSB0aGF0IGRpcmVjdG9yeSwgeW91IGNhbiBydW46Jyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZygnICBucG0gcnVuIGRldicpO1xuICAgIGNvbnNvbGUubG9nKCcgICAgU3RhcnRzIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgYXQgaHR0cDovL2xvY2FsaG9zdDozMDAwJyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKCdXZSBzdWdnZXN0IHRoYXQgeW91IGJlZ2luIGJ5IHR5cGluZzonKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coYCAgY2QgJHtwcm9qZWN0TmFtZX1gKTtcbiAgY29uc29sZS5sb2coJyAgbnBtIHJ1biBkZXYnKTtcbiAgY29uc29sZS5sb2coKTtcblxuICAvLyBTaG93IEFJIGFnZW50IHRpcHMgaWYgaW5zdGFsbGVkXG4gIGlmIChhaVRvb2wpIHtcbiAgICBjb25zb2xlLmxvZygnQUkgQWdlbnQgUXVpY2sgU3RhcnQ6Jyk7XG4gICAgaWYgKGFpVG9vbCA9PT0gJ2NsYXVkZScgfHwgYWlUb29sID09PSAnYm90aCcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCcgIENsYXVkZSBDb2RlOiAvYm9vdHN0cmFwLWRvY3MnKTtcbiAgICB9XG4gICAgaWYgKGFpVG9vbCA9PT0gJ2N1cnNvcicgfHwgYWlUb29sID09PSAnYm90aCcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCcgIEN1cnNvcjogQXNrIFwiZ2VuZXJhdGUgaW5pdGlhbCBkb2N1bWVudGF0aW9uIGZyb20gdGhpcyByZXBvXCInKTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnVGlwOiBSdW4gXCJkZXZkb2MgYWlcIiB0byBzZXQgdXAgQUkgYWdlbnQgY29uZmlndXJhdGlvbiBmb3IgQ2xhdWRlIENvZGUgb3IgQ3Vyc29yLicpO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gIH1cblxuICBjb25zb2xlLmxvZygnSGFwcHkgZG9jdW1lbnRpbmchIPCfk5onKTtcbiAgY29uc29sZS5sb2coKTtcbn1cbiJdfQ==
|
|
720
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9jb21tYW5kcy9jcmVhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvZEEsd0JBMFVDO0FBOXhCRCxpREFBeUM7QUFDekMsZ0RBQXdCO0FBQ3hCLHdEQUEwQjtBQUMxQixpQ0FBeUM7QUFDekMsK0NBQTRDO0FBQzVDLCtDQUFrRDtBQUVsRCx1REFBdUQ7QUFDdkQsTUFBTSxhQUFhLEdBQUcsOENBQThDLENBQUM7QUFFckUsdUZBQXVGO0FBQ3ZGLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsV0FBVyxFQUFFLGlEQUFpRDtRQUM5RCxLQUFLLEVBQUUsU0FBUztLQUNqQjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLHlEQUF5RDtRQUN0RSxLQUFLLEVBQUUsU0FBUztLQUNqQjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxLQUFLLEVBQUUsU0FBUztLQUNqQjtDQUNPLENBQUM7QUFJWCxzQkFBc0I7QUFDdEIsTUFBTSxTQUFTLEdBQUc7SUFDaEIsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsdURBQXVEO0tBQ3JFO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLFVBQVU7UUFDaEIsV0FBVyxFQUFFLDREQUE0RDtLQUMxRTtDQUNPLENBQUM7QUFtQlgsc0NBQXNDO0FBQ3RDLEtBQUssVUFBVSxNQUFNLENBQUMsUUFBZ0IsRUFBRSxZQUFxQjtJQUMzRCxNQUFNLFFBQVEsR0FBRyx3REFBYSxVQUFVLEdBQUMsQ0FBQztJQUMxQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxD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RSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgZG93bmxvYWRUZW1wbGF0ZSB9IGZyb20gJ2dpZ2V0JztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uLy4uL3V0aWxzL2xvZ2dlcic7XG5pbXBvcnQgeyBERUZBVUxUX0FQSV9VUkwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG4vLyBSZW1vdGUgdGVtcGxhdGUgcmVwb3NpdG9yeSAtIHNpbmdsZSBzdGFydGVyIHRlbXBsYXRlXG5jb25zdCBURU1QTEFURV9SRVBPID0gJ2dpdGh1YjpicmFpbmZpc2gtYWkvZGV2ZG9jL3RlbXBsYXRlcy9zdGFydGVyJztcblxuLy8gQXZhaWxhYmxlIHRlbXBsYXRlIHR5cGVzIChhbGwgdXNlIHRoZSBzYW1lIHN0YXJ0ZXIgdGVtcGxhdGUsIGp1c3QgZGlmZmVyZW50IGNvbmZpZ3MpXG5jb25zdCBURU1QTEFURVMgPSB7XG4gIGJhc2ljOiB7XG4gICAgbmFtZTogJ0Jhc2ljJyxcbiAgICBkZXNjcmlwdGlvbjogJ1NpbXBsZSBkb2N1bWVudGF0aW9uIHNpdGUgd2l0aCBndWlkZXMgYW5kIHBhZ2VzJyxcbiAgICBjb2xvcjogJyMxMGI5ODEnLFxuICB9LFxuICBvcGVuYXBpOiB7XG4gICAgbmFtZTogJ09wZW5BUEknLFxuICAgIGRlc2NyaXB0aW9uOiAnRG9jdW1lbnRhdGlvbiB3aXRoIFJFU1QgQVBJIHJlZmVyZW5jZSAoT3BlbkFQSS9Td2FnZ2VyKScsXG4gICAgY29sb3I6ICcjMTBiOTgxJyxcbiAgfSxcbiAgZ3JhcGhxbDoge1xuICAgIG5hbWU6ICdHcmFwaFFMJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RvY3VtZW50YXRpb24gd2l0aCBHcmFwaFFMIEFQSSBwbGF5Z3JvdW5kJyxcbiAgICBjb2xvcjogJyNlNTM1YWInLFxuICB9LFxufSBhcyBjb25zdDtcblxudHlwZSBUZW1wbGF0ZVR5cGUgPSBrZXlvZiB0eXBlb2YgVEVNUExBVEVTO1xuXG4vLyBEb2N1bWVudGF0aW9uIHR5cGVzXG5jb25zdCBET0NfVFlQRVMgPSB7XG4gIHB1YmxpYzoge1xuICAgIG5hbWU6ICdQdWJsaWMnLFxuICAgIGRlc2NyaXB0aW9uOiAnVXNlci1mYWNpbmcgZG9jcyB3aXRoIGN1c3RvbSBzdWJkb21haW4gYW5kIGRlcGxveW1lbnQnLFxuICB9LFxuICBpbnRlcm5hbDoge1xuICAgIG5hbWU6ICdJbnRlcm5hbCcsXG4gICAgZGVzY3JpcHRpb246ICdEZXZlbG9wZXIgZG9jcyBmb3IgbG9jYWwvcHJpdmF0ZSB1c2UgKG5vIHN1YmRvbWFpbiBuZWVkZWQpJyxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbnR5cGUgRG9jVHlwZSA9IGtleW9mIHR5cGVvZiBET0NfVFlQRVM7XG5cbmludGVyZmFjZSBDcmVhdGVPcHRpb25zIHtcbiAgdGVtcGxhdGU/OiBUZW1wbGF0ZVR5cGU7XG4gIGRvY1R5cGU/OiBEb2NUeXBlO1xuICBnaXQ/OiBib29sZWFuO1xuICBpbnN0YWxsPzogYm9vbGVhbjtcbiAgdXJsPzogc3RyaW5nO1xuICBzdWJkb21haW4/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDaGVja1N1YmRvbWFpblJlc3BvbnNlIHtcbiAgYXZhaWxhYmxlOiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbiAgc3VnZ2VzdGlvbj86IHN0cmluZztcbn1cblxuLy8gU2ltcGxlIHByb21wdCBoZWxwZXIgdXNpbmcgcmVhZGxpbmVcbmFzeW5jIGZ1bmN0aW9uIHByb21wdChxdWVzdGlvbjogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCByZWFkbGluZSA9IGF3YWl0IGltcG9ydCgncmVhZGxpbmUnKTtcbiAgY29uc3QgcmwgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2Uoe1xuICAgIGlucHV0OiBwcm9jZXNzLnN0ZGluLFxuICAgIG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG4gIH0pO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IGRpc3BsYXlRdWVzdGlvbiA9IGRlZmF1bHRWYWx1ZSBcbiAgICAgID8gYCR7cXVlc3Rpb259ICgke2RlZmF1bHRWYWx1ZX0pOiBgXG4gICAgICA6IGAke3F1ZXN0aW9ufTogYDtcbiAgICBcbiAgICBybC5xdWVzdGlvbihkaXNwbGF5UXVlc3Rpb24sIChhbnN3ZXIpID0+IHtcbiAgICAgIHJsLmNsb3NlKCk7XG4gICAgICByZXNvbHZlKGFuc3dlci50cmltKCkgfHwgZGVmYXVsdFZhbHVlIHx8ICcnKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByb21wdFNlbGVjdChxdWVzdGlvbjogc3RyaW5nLCBjaG9pY2VzOiB7IHZhbHVlOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVtdKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc29sZS5sb2coYFxcbiR7cXVlc3Rpb259XFxuYCk7XG4gIGNob2ljZXMuZm9yRWFjaCgoY2hvaWNlLCBpKSA9PiB7XG4gICAgY29uc29sZS5sb2coYCAgJHtpICsgMX0uICR7Y2hvaWNlLmxhYmVsfWApO1xuICB9KTtcbiAgY29uc29sZS5sb2coKTtcbiAgXG4gIGNvbnN0IHJlYWRsaW5lID0gYXdhaXQgaW1wb3J0KCdyZWFkbGluZScpO1xuICBjb25zdCBybCA9IHJlYWRsaW5lLmNyZWF0ZUludGVyZmFjZSh7XG4gICAgaW5wdXQ6IHByb2Nlc3Muc3RkaW4sXG4gICAgb3V0cHV0OiBwcm9jZXNzLnN0ZG91dCxcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgcmwucXVlc3Rpb24oJ0VudGVyIG51bWJlcjogJywgKGFuc3dlcikgPT4ge1xuICAgICAgcmwuY2xvc2UoKTtcbiAgICAgIGNvbnN0IGluZGV4ID0gcGFyc2VJbnQoYW5zd2VyLnRyaW0oKSwgMTApIC0gMTtcbiAgICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgY2hvaWNlcy5sZW5ndGgpIHtcbiAgICAgICAgcmVzb2x2ZShjaG9pY2VzW2luZGV4XS52YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEZWZhdWx0IHRvIGZpcnN0IGNob2ljZVxuICAgICAgICByZXNvbHZlKGNob2ljZXNbMF0udmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvbXB0Q29uZmlybShxdWVzdGlvbjogc3RyaW5nLCBkZWZhdWx0VmFsdWUgPSBmYWxzZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCByZWFkbGluZSA9IGF3YWl0IGltcG9ydCgncmVhZGxpbmUnKTtcbiAgY29uc3QgcmwgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2Uoe1xuICAgIGlucHV0OiBwcm9jZXNzLnN0ZGluLFxuICAgIG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG4gIH0pO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgIGNvbnN0IGhpbnQgPSBkZWZhdWx0VmFsdWUgPyAnW1kvbl0nIDogJ1t5L05dJztcbiAgICBybC5xdWVzdGlvbihgJHtxdWVzdGlvbn0gJHtoaW50fTogYCwgKGFuc3dlcikgPT4ge1xuICAgICAgcmwuY2xvc2UoKTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBhbnN3ZXIudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAobm9ybWFsaXplZCA9PT0gJycpIHtcbiAgICAgICAgcmVzb2x2ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzb2x2ZShub3JtYWxpemVkID09PSAneScgfHwgbm9ybWFsaXplZCA9PT0gJ3llcycpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQcm9qZWN0TmFtZShuYW1lOiBzdHJpbmcpOiB7IHZhbGlkOiBib29sZWFuOyBlcnJvcj86IHN0cmluZyB9IHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogJ1Byb2plY3QgbmFtZSBpcyByZXF1aXJlZCcgfTtcbiAgfVxuICBcbiAgLy8gQ2hlY2sgZm9yIHZhbGlkIG5wbSBwYWNrYWdlIG5hbWVcbiAgaWYgKCEvXlthLXowLTldW2EtejAtOS0uX10qJC9pLnRlc3QobmFtZSkpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiAnSW52YWxpZCBwcm9qZWN0IG5hbWUuIFVzZSBsb3dlcmNhc2UgbGV0dGVycywgbnVtYmVycywgYW5kIGRhc2hlcy4nIH07XG4gIH1cbiAgXG4gIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG59XG5cbi8qKlxuICogQmFzaWMgc3ViZG9tYWluIGZvcm1hdCB2YWxpZGF0aW9uIChzZXJ2ZXIgZG9lcyBmdWxsIHZhbGlkYXRpb24gaW5jbHVkaW5nIGJsYWNrbGlzdClcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZFN1YmRvbWFpbkZvcm1hdChzdWJkb21haW46IHN0cmluZyk6IHsgdmFsaWQ6IGJvb2xlYW47IGVycm9yPzogc3RyaW5nIH0ge1xuICBpZiAoIXN1YmRvbWFpbikge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdTdWJkb21haW4gaXMgcmVxdWlyZWQnIH07XG4gIH1cbiAgXG4gIGlmIChzdWJkb21haW4ubGVuZ3RoIDwgMykge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgZXJyb3I6ICdTdWJkb21haW4gbXVzdCBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMnIH07XG4gIH1cbiAgXG4gIGlmIChzdWJkb21haW4ubGVuZ3RoID4gNjMpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiAnU3ViZG9tYWluIG11c3QgYmUgNjMgY2hhcmFjdGVycyBvciBsZXNzJyB9O1xuICB9XG4gIFxuICBpZiAoIS9eW2EtejAtOV0oW2EtejAtOS1dKlthLXowLTldKT8kLy50ZXN0KHN1YmRvbWFpbikpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIGVycm9yOiAnU3ViZG9tYWluIG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFscGhhbnVtZXJpYywgY2FuIGNvbnRhaW4gaHlwaGVucycgfTtcbiAgfVxuICBcbiAgaWYgKC8tLS8udGVzdChzdWJkb21haW4pKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCBlcnJvcjogJ1N1YmRvbWFpbiBjYW5ub3QgY29udGFpbiBjb25zZWN1dGl2ZSBoeXBoZW5zJyB9O1xuICB9XG4gIFxuICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIENoZWNrIHN1YmRvbWFpbiBhdmFpbGFiaWxpdHkgdmlhIEFQSSAoYWxzbyB2YWxpZGF0ZXMgYWdhaW5zdCBzZXJ2ZXIgYmxhY2tsaXN0KVxuICovXG5hc3luYyBmdW5jdGlvbiBjaGVja1N1YmRvbWFpbkF2YWlsYWJpbGl0eShcbiAgc3ViZG9tYWluOiBzdHJpbmcsXG4gIGFwaVVybDogc3RyaW5nXG4pOiBQcm9taXNlPENoZWNrU3ViZG9tYWluUmVzcG9uc2U+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2FwaVVybH0vYXBpL3N1YmRvbWFpbnMvY2hlY2tgLCB7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IHN1YmRvbWFpbiB9KSxcbiAgICB9KTtcbiAgICBcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS5qc29uKCkgYXMgQ2hlY2tTdWJkb21haW5SZXNwb25zZTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9IGNhdGNoIHtcbiAgICAvLyBJZiBBUEkgaXMgdW5hdmFpbGFibGUsIGFsbG93IHByb2NlZWRpbmcgKHdpbGwgZmFpbCBhdCByZWdpc3RyYXRpb24gaWYgaW52YWxpZClcbiAgICByZXR1cm4geyBhdmFpbGFibGU6IHRydWUgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBmb3JtYXRQcm9qZWN0TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gbmFtZVxuICAgIC5yZXBsYWNlKC8tL2csICcgJylcbiAgICAucmVwbGFjZSgvXFxiXFx3L2csIChjaGFyKSA9PiBjaGFyLnRvVXBwZXJDYXNlKCkpO1xufVxuXG5mdW5jdGlvbiBnZXRQYWNrYWdlTWFuYWdlcigpOiBzdHJpbmcge1xuICBjb25zdCB1c2VyQWdlbnQgPSBwcm9jZXNzLmVudi5ucG1fY29uZmlnX3VzZXJfYWdlbnQgfHwgJyc7XG4gIFxuICBpZiAodXNlckFnZW50LnN0YXJ0c1dpdGgoJ3lhcm4nKSkge1xuICAgIHJldHVybiAneWFybic7XG4gIH1cbiAgXG4gIGlmICh1c2VyQWdlbnQuc3RhcnRzV2l0aCgncG5wbScpKSB7XG4gICAgcmV0dXJuICdwbnBtJztcbiAgfVxuICBcbiAgcmV0dXJuICducG0nO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGRvY3MuanNvbiBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHRlbXBsYXRlIHR5cGVcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVEb2NzQ29uZmlnKHByb2plY3ROYW1lOiBzdHJpbmcsIHRlbXBsYXRlVHlwZTogVGVtcGxhdGVUeXBlKTogb2JqZWN0IHtcbiAgY29uc3QgZm9ybWF0dGVkTmFtZSA9IGZvcm1hdFByb2plY3ROYW1lKHByb2plY3ROYW1lKTtcbiAgY29uc3QgdGVtcGxhdGUgPSBURU1QTEFURVNbdGVtcGxhdGVUeXBlXTtcbiAgXG4gIC8vIEJhc2UgY29uZmlndXJhdGlvbiAoc2hhcmVkIGFjcm9zcyBhbGwgdGVtcGxhdGVzKVxuICBjb25zdCBiYXNlQ29uZmlnID0ge1xuICAgICRzY2hlbWE6ICdodHRwczovL2RldmRvYy5zaC9kb2NzLmpzb24nLFxuICAgIG5hbWU6IGZvcm1hdHRlZE5hbWUsXG4gICAgZmF2aWNvbjogJy9mYXZpY29uLnN2ZycsXG4gICAgbG9nbzoge1xuICAgICAgbGlnaHQ6ICcvbG9nby5zdmcnLFxuICAgICAgZGFyazogJy9sb2dvLnN2ZycsXG4gICAgfSxcbiAgICBjb2xvcnM6IHtcbiAgICAgIHByaW1hcnk6IHRlbXBsYXRlLmNvbG9yLFxuICAgIH0sXG4gICAgbmF2aWdhdGlvbjoge1xuICAgICAgdGFiczogW10gYXMgb2JqZWN0W10sXG4gICAgICBnbG9iYWw6IHtcbiAgICAgICAgYW5jaG9yczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFuY2hvcjogJ0dpdEh1YicsXG4gICAgICAgICAgICBocmVmOiAnaHR0cHM6Ly9naXRodWIuY29tL3lvdXItb3JnL3lvdXItcmVwbycsXG4gICAgICAgICAgICBpY29uOiAnZ2l0aHViLWxvZ28nLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgLy8gRG9jdW1lbnRhdGlvbiB0YWIgKGFsd2F5cyBwcmVzZW50KVxuICBjb25zdCBkb2NzVGFiID0ge1xuICAgIHRhYjogJ0RvY3VtZW50YXRpb24nLFxuICAgIHR5cGU6ICdkb2NzJyxcbiAgICBncm91cHM6IFtcbiAgICAgIHtcbiAgICAgICAgZ3JvdXA6ICdHZXR0aW5nIFN0YXJ0ZWQnLFxuICAgICAgICBpY29uOiAncm9ja2V0LWxhdW5jaCcsXG4gICAgICAgIHBhZ2VzOiBbJ2luZGV4JywgJ3F1aWNrc3RhcnQnXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGdyb3VwOiAnR3VpZGVzJyxcbiAgICAgICAgaWNvbjogJ2Jvb2stb3BlbicsXG4gICAgICAgIHBhZ2VzOiBbJ2d1aWRlcy9vdmVydmlldycsICdndWlkZXMvY29uZmlndXJhdGlvbiddLFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xuXG4gIGJhc2VDb25maWcubmF2aWdhdGlvbi50YWJzLnB1c2goZG9jc1RhYik7XG5cbiAgLy8gQWRkIEFQSSByZWZlcmVuY2UgdGFiIGJhc2VkIG9uIHRlbXBsYXRlIHR5cGVcbiAgaWYgKHRlbXBsYXRlVHlwZSA9PT0gJ29wZW5hcGknKSB7XG4gICAgYmFzZUNvbmZpZy5uYXZpZ2F0aW9uLnRhYnMucHVzaCh7XG4gICAgICB0YWI6ICdBUEkgUmVmZXJlbmNlJyxcbiAgICAgIHR5cGU6ICdvcGVuYXBpJyxcbiAgICAgIHBhdGg6ICcvYXBpLXJlZmVyZW5jZScsXG4gICAgICB2ZXJzaW9uczogW1xuICAgICAgICB7IHZlcnNpb246ICd2MScsIHNwZWM6ICdhcGktcmVmZXJlbmNlL29wZW5hcGkuanNvbicsIGRlZmF1bHQ6IHRydWUgfSxcbiAgICAgIF0sXG4gICAgICBncm91cHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGdyb3VwOiAnT3ZlcnZpZXcnLFxuICAgICAgICAgIGljb246ICdib29rLW9wZW4nLFxuICAgICAgICAgIHBhZ2VzOiBbXG4gICAgICAgICAgICAnYXBpLXJlZmVyZW5jZS9pbnRyb2R1Y3Rpb24nLFxuICAgICAgICAgICAgJ2FwaS1yZWZlcmVuY2UvYXV0aGVudGljYXRpb24nLFxuICAgICAgICAgICAgJ2FwaS1yZWZlcmVuY2UvZXJyb3JzJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIEFkZCBBUEkgcGxheWdyb3VuZCBjb25maWdcbiAgICAoYmFzZUNvbmZpZyBhcyBhbnkpLmFwaSA9IHtcbiAgICAgIGJhc2VVcmw6ICdodHRwczovL2FwaS5leGFtcGxlLmNvbScsXG4gICAgICBwbGF5Z3JvdW5kOiB7XG4gICAgICAgIG1vZGU6ICdzaG93JyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSBlbHNlIGlmICh0ZW1wbGF0ZVR5cGUgPT09ICdncmFwaHFsJykge1xuICAgIGJhc2VDb25maWcubmF2aWdhdGlvbi50YWJzLnB1c2goe1xuICAgICAgdGFiOiAnR3JhcGhRTCBBUEknLFxuICAgICAgdHlwZTogJ2dyYXBocWwnLFxuICAgICAgcGF0aDogJy9ncmFwaHFsLWFwaScsXG4gICAgICBzY2hlbWE6ICdhcGktcmVmZXJlbmNlL3NjaGVtYS5ncmFwaHFsJyxcbiAgICAgIGVuZHBvaW50OiAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vZ3JhcGhxbCcsXG4gICAgICBncm91cHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGdyb3VwOiAnT3ZlcnZpZXcnLFxuICAgICAgICAgIGljb246ICdib29rLW9wZW4nLFxuICAgICAgICAgIHBhZ2VzOiBbXG4gICAgICAgICAgICAnYXBpLXJlZmVyZW5jZS9pbnRyb2R1Y3Rpb24nLFxuICAgICAgICAgICAgJ2FwaS1yZWZlcmVuY2UvYXV0aGVudGljYXRpb24nLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGJhc2VDb25maWc7XG59XG5cbi8vIENsYXVkZSBDb2RlIHNraWxscyB0byBjcmVhdGVcbmNvbnN0IENMQVVERV9TS0lMTFMgPSBbXG4gICdib290c3RyYXAtZG9jcycsXG4gICdtaWdyYXRlLWRvY3MnLFxuICAnaW1wb3J0LWFwaS1zcGVjJyxcbiAgJ2NoZWNrLWRvY3MnLFxuICAnYmxhbWUtZG9jJyxcbiAgJ2NyZWF0ZS1kb2MnLFxuICAndXBkYXRlLWRvYycsXG4gICdkZWxldGUtZG9jJyxcbiAgJ2NvbW1pdC1kb2MnLFxuXTtcblxuLy8gQ3Vyc29yIHJ1bGVzIHRvIGNyZWF0ZVxuY29uc3QgQ1VSU09SX1JVTEVTID0gW1xuICAnZGV2ZG9jLm1kYycsXG4gICdkZXZkb2MtYm9vdHN0cmFwLm1kYycsXG4gICdkZXZkb2MtbWlncmF0ZS5tZGMnLFxuICAnZGV2ZG9jLWJsYW1lLm1kYycsXG4gICdkZXZkb2MtY3JlYXRlLm1kYycsXG4gICdkZXZkb2MtdXBkYXRlLm1kYycsXG4gICdkZXZkb2MtZGVsZXRlLm1kYycsXG4gICdkZXZkb2MtY29tbWl0Lm1kYycsXG5dO1xuXG4vKipcbiAqIEdldCB0aGUgQUkgYWdlbnRzIHRlbXBsYXRlIGRpcmVjdG9yeSBwYXRoXG4gKi9cbmZ1bmN0aW9uIGdldEFJQWdlbnRzRGlyKCk6IHN0cmluZyB8IG51bGwge1xuICAvLyBUcnkgcmVsYXRpdmUgdG8gY29tcGlsZWQgZGlzdCAocGFja2FnZXMvZGV2ZG9jL2Rpc3QvY2xpL2NvbW1hbmRzIC0+IHBhY2thZ2VzL2RldmRvYy9haS1hZ2VudHMpXG4gIGxldCBhZ2VudHNEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAnYWktYWdlbnRzJyk7XG4gIFxuICBpZiAoZnMuZXhpc3RzU3luYyhhZ2VudHNEaXIpKSB7XG4gICAgcmV0dXJuIGFnZW50c0RpcjtcbiAgfVxuICBcbiAgLy8gVHJ5IGRldmRvYy90ZW1wbGF0ZXMgYXQgcmVwbyByb290IChkZXZlbG9wbWVudClcbiAgYWdlbnRzRGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJy4uJywgJy4uJywgJy4uJywgJ2RldmRvYycsICd0ZW1wbGF0ZXMnLCAnc3RhcnRlcicpO1xuICBcbiAgaWYgKGZzLmV4aXN0c1N5bmMoYWdlbnRzRGlyKSkge1xuICAgIHJldHVybiBhZ2VudHNEaXI7XG4gIH1cbiAgXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEluc3RhbGwgQUkgYWdlbnQgY29uZmlndXJhdGlvbiBmaWxlc1xuICovXG5mdW5jdGlvbiBpbnN0YWxsQUlBZ2VudHMoXG4gIHByb2plY3RQYXRoOiBzdHJpbmcsIFxuICB0b29sOiAnY2xhdWRlJyB8ICdjdXJzb3InIHwgJ2JvdGgnXG4pOiB7IGNsYXVkZU1kOiBib29sZWFuOyBjbGF1ZGVTa2lsbHM6IHN0cmluZ1tdOyBjdXJzb3JSdWxlczogc3RyaW5nW10gfSB7XG4gIGNvbnN0IHJlc3VsdHMgPSB7XG4gICAgY2xhdWRlTWQ6IGZhbHNlLFxuICAgIGNsYXVkZVNraWxsczogW10gYXMgc3RyaW5nW10sXG4gICAgY3Vyc29yUnVsZXM6IFtdIGFzIHN0cmluZ1tdLFxuICB9O1xuXG4gIGNvbnN0IGFnZW50c0RpciA9IGdldEFJQWdlbnRzRGlyKCk7XG4gIGlmICghYWdlbnRzRGlyKSB7XG4gICAgbG9nZ2VyLndhcm4oJ0FJIGFnZW50IHRlbXBsYXRlcyBub3QgZm91bmQnKTtcbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIC8vIEluc3RhbGwgQ2xhdWRlIENvZGUgZmlsZXNcbiAgaWYgKHRvb2wgPT09ICdjbGF1ZGUnIHx8IHRvb2wgPT09ICdib3RoJykge1xuICAgIC8vIENvcHkgQ0xBVURFLm1kXG4gICAgY29uc3QgY2xhdWRlTWRTb3VyY2UgPSBwYXRoLmpvaW4oYWdlbnRzRGlyLCAnQ0xBVURFLm1kJyk7XG4gICAgY29uc3QgY2xhdWRlTWREZXN0ID0gcGF0aC5qb2luKHByb2plY3RQYXRoLCAnQ0xBVURFLm1kJyk7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoY2xhdWRlTWRTb3VyY2UpKSB7XG4gICAgICBmcy5jb3B5U3luYyhjbGF1ZGVNZFNvdXJjZSwgY2xhdWRlTWREZXN0KTtcbiAgICAgIHJlc3VsdHMuY2xhdWRlTWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIENvcHkgc2tpbGxzXG4gICAgY29uc3Qgc291cmNlU2tpbGxzRGlyID0gcGF0aC5qb2luKGFnZW50c0RpciwgJy5jbGF1ZGUnLCAnc2tpbGxzJyk7XG4gICAgY29uc3QgZGVzdFNraWxsc0RpciA9IHBhdGguam9pbihwcm9qZWN0UGF0aCwgJy5jbGF1ZGUnLCAnc2tpbGxzJyk7XG4gICAgXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoc291cmNlU2tpbGxzRGlyKSkge1xuICAgICAgZnMuZW5zdXJlRGlyU3luYyhkZXN0U2tpbGxzRGlyKTtcbiAgICAgIFxuICAgICAgZm9yIChjb25zdCBza2lsbCBvZiBDTEFVREVfU0tJTExTKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZURpciA9IHBhdGguam9pbihzb3VyY2VTa2lsbHNEaXIsIHNraWxsKTtcbiAgICAgICAgY29uc3QgZGVzdERpciA9IHBhdGguam9pbihkZXN0U2tpbGxzRGlyLCBza2lsbCk7XG4gICAgICAgIFxuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhzb3VyY2VEaXIpKSB7XG4gICAgICAgICAgZnMuY29weVN5bmMoc291cmNlRGlyLCBkZXN0RGlyKTtcbiAgICAgICAgICByZXN1bHRzLmNsYXVkZVNraWxscy5wdXNoKHNraWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEluc3RhbGwgQ3Vyc29yIGZpbGVzXG4gIGlmICh0b29sID09PSAnY3Vyc29yJyB8fCB0b29sID09PSAnYm90aCcpIHtcbiAgICBjb25zdCBzb3VyY2VSdWxlc0RpciA9IHBhdGguam9pbihhZ2VudHNEaXIsICcuY3Vyc29yJywgJ3J1bGVzJyk7XG4gICAgY29uc3QgZGVzdFJ1bGVzRGlyID0gcGF0aC5qb2luKHByb2plY3RQYXRoLCAnLmN1cnNvcicsICdydWxlcycpO1xuICAgIFxuICAgIGlmIChmcy5leGlzdHNTeW5jKHNvdXJjZVJ1bGVzRGlyKSkge1xuICAgICAgZnMuZW5zdXJlRGlyU3luYyhkZXN0UnVsZXNEaXIpO1xuICAgICAgXG4gICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgQ1VSU09SX1JVTEVTKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZVBhdGggPSBwYXRoLmpvaW4oc291cmNlUnVsZXNEaXIsIHJ1bGUpO1xuICAgICAgICBjb25zdCBkZXN0UGF0aCA9IHBhdGguam9pbihkZXN0UnVsZXNEaXIsIHJ1bGUpO1xuICAgICAgICBcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoc291cmNlUGF0aCkpIHtcbiAgICAgICAgICBmcy5jb3B5U3luYyhzb3VyY2VQYXRoLCBkZXN0UGF0aCk7XG4gICAgICAgICAgcmVzdWx0cy5jdXJzb3JSdWxlcy5wdXNoKHJ1bGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG59XG5cbi8qKlxuICogQ2xlYW4gdXAgdW51c2VkIEFQSSBmaWxlcyBiYXNlZCBvbiB0ZW1wbGF0ZSB0eXBlXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXBVbnVzZWRGaWxlcyhyZXNvbHZlZFBhdGg6IHN0cmluZywgdGVtcGxhdGVUeXBlOiBUZW1wbGF0ZVR5cGUpOiB2b2lkIHtcbiAgY29uc3QgYXBpUmVmUGF0aCA9IHBhdGguam9pbihyZXNvbHZlZFBhdGgsICdhcGktcmVmZXJlbmNlJyk7XG4gIFxuICBpZiAodGVtcGxhdGVUeXBlID09PSAnYmFzaWMnKSB7XG4gICAgLy8gUmVtb3ZlIGVudGlyZSBhcGktcmVmZXJlbmNlIGZvbGRlciBmb3IgYmFzaWMgdGVtcGxhdGVcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhhcGlSZWZQYXRoKSkge1xuICAgICAgZnMucmVtb3ZlU3luYyhhcGlSZWZQYXRoKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZygnUmVtb3ZlZCBhcGktcmVmZXJlbmNlIGZvbGRlciAobm90IG5lZWRlZCBmb3IgYmFzaWMgdGVtcGxhdGUpJyk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHRlbXBsYXRlVHlwZSA9PT0gJ29wZW5hcGknKSB7XG4gICAgLy8gUmVtb3ZlIEdyYXBoUUwgc2NoZW1hIGZvciBPcGVuQVBJIHRlbXBsYXRlXG4gICAgY29uc3QgZ3JhcGhxbFNjaGVtYSA9IHBhdGguam9pbihhcGlSZWZQYXRoLCAnc2NoZW1hLmdyYXBocWwnKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhncmFwaHFsU2NoZW1hKSkge1xuICAgICAgZnMucmVtb3ZlU3luYyhncmFwaHFsU2NoZW1hKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZygnUmVtb3ZlZCBzY2hlbWEuZ3JhcGhxbCAobm90IG5lZWRlZCBmb3IgT3BlbkFQSSB0ZW1wbGF0ZSknKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAodGVtcGxhdGVUeXBlID09PSAnZ3JhcGhxbCcpIHtcbiAgICAvLyBSZW1vdmUgT3BlbkFQSSBzcGVjIGFuZCBlcnJvcnMubWR4IGZvciBHcmFwaFFMIHRlbXBsYXRlXG4gICAgY29uc3Qgb3BlbmFwaVNwZWMgPSBwYXRoLmpvaW4oYXBpUmVmUGF0aCwgJ29wZW5hcGkuanNvbicpO1xuICAgIGNvbnN0IGVycm9yc0ZpbGUgPSBwYXRoLmpvaW4oYXBpUmVmUGF0aCwgJ2Vycm9ycy5tZHgnKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhvcGVuYXBpU3BlYykpIHtcbiAgICAgIGZzLnJlbW92ZVN5bmMob3BlbmFwaVNwZWMpO1xuICAgICAgbG9nZ2VyLmRlYnVnKCdSZW1vdmVkIG9wZW5hcGkuanNvbiAobm90IG5lZWRlZCBmb3IgR3JhcGhRTCB0ZW1wbGF0ZSknKTtcbiAgICB9XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZXJyb3JzRmlsZSkpIHtcbiAgICAgIGZzLnJlbW92ZVN5bmMoZXJyb3JzRmlsZSk7XG4gICAgICBsb2dnZXIuZGVidWcoJ1JlbW92ZWQgZXJyb3JzLm1keCAobm90IG5lZWRlZCBmb3IgR3JhcGhRTCB0ZW1wbGF0ZSknKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZShwcm9qZWN0RGlyZWN0b3J5OiBzdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM6IENyZWF0ZU9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc29sZS5sb2coKTtcbiAgbG9nZ2VyLmluZm8oJ/CfkJ8gQ3JlYXRlIERldkRvYyBEb2MnKTtcbiAgY29uc29sZS5sb2coKTtcblxuICBjb25zdCBhcGlVcmwgPSBvcHRpb25zLnVybCB8fCBwcm9jZXNzLmVudi5ERVZET0NfQVBJX1VSTCB8fCBERUZBVUxUX0FQSV9VUkw7XG5cbiAgLy8gR2V0IHByb2plY3QgbmFtZSBpZiBub3QgcHJvdmlkZWRcbiAgbGV0IHByb2plY3RQYXRoID0gcHJvamVjdERpcmVjdG9yeTtcblxuICBpZiAoIXByb2plY3RQYXRoKSB7XG4gICAgcHJvamVjdFBhdGggPSBhd2FpdCBwcm9tcHQoJ1doYXQgaXMgeW91ciBwcm9qZWN0IG5hbWVkPycsICdteS1kb2NzJyk7XG4gICAgXG4gICAgaWYgKCFwcm9qZWN0UGF0aCkge1xuICAgICAgbG9nZ2VyLmVycm9yKCdQcm9qZWN0IG5hbWUgaXMgcmVxdWlyZWQnKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBwcm9qZWN0IG5hbWVcbiAgY29uc3QgdmFsaWRhdGlvbiA9IHZhbGlkYXRlUHJvamVjdE5hbWUocHJvamVjdFBhdGgpO1xuICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICBsb2dnZXIuZXJyb3IodmFsaWRhdGlvbi5lcnJvciB8fCAnSW52YWxpZCBwcm9qZWN0IG5hbWUnKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICAvLyBHZXQgZG9jIHR5cGUgc2VsZWN0aW9uIGlmIG5vdCBwcm92aWRlZFxuICBsZXQgZG9jVHlwZTogRG9jVHlwZSA9IG9wdGlvbnMuZG9jVHlwZSB8fCAncHVibGljJztcbiAgXG4gIGlmICghb3B0aW9ucy5kb2NUeXBlKSB7XG4gICAgY29uc3QgZG9jVHlwZUNob2ljZXMgPSBPYmplY3QuZW50cmllcyhET0NfVFlQRVMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiAoe1xuICAgICAgdmFsdWU6IGtleSxcbiAgICAgIGxhYmVsOiBgJHt2YWx1ZS5uYW1lfSAtICR7dmFsdWUuZGVzY3JpcHRpb259YCxcbiAgICB9KSk7XG5cbiAgICBkb2NUeXBlID0gYXdhaXQgcHJvbXB0U2VsZWN0KCdXaGF0IHR5cGUgb2YgZG9jdW1lbnRhdGlvbiBhcmUgeW91IGNyZWF0aW5nPycsIGRvY1R5cGVDaG9pY2VzKSBhcyBEb2NUeXBlO1xuICB9XG5cbiAgY29uc3QgaXNJbnRlcm5hbERvY3MgPSBkb2NUeXBlID09PSAnaW50ZXJuYWwnO1xuXG4gIC8vIEdldCB0ZW1wbGF0ZSBzZWxlY3Rpb24gaWYgbm90IHByb3ZpZGVkXG4gIGxldCB0ZW1wbGF0ZTogVGVtcGxhdGVUeXBlID0gb3B0aW9ucy50ZW1wbGF0ZSB8fCAnYmFzaWMnO1xuICBcbiAgaWYgKCFvcHRpb25zLnRlbXBsYXRlKSB7XG4gICAgY29uc3QgdGVtcGxhdGVDaG9pY2VzID0gT2JqZWN0LmVudHJpZXMoVEVNUExBVEVTKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHtcbiAgICAgIHZhbHVlOiBrZXksXG4gICAgICBsYWJlbDogYCR7dmFsdWUubmFtZX0gLSAke3ZhbHVlLmRlc2NyaXB0aW9ufWAsXG4gICAgfSkpO1xuXG4gICAgdGVtcGxhdGUgPSBhd2FpdCBwcm9tcHRTZWxlY3QoJ1doaWNoIHRlbXBsYXRlIHdvdWxkIHlvdSBsaWtlIHRvIHVzZT8nLCB0ZW1wbGF0ZUNob2ljZXMpIGFzIFRlbXBsYXRlVHlwZTtcbiAgfVxuXG4gIC8vIFJlc29sdmUgZnVsbCBwYXRoXG4gIGNvbnN0IHJlc29sdmVkUGF0aCA9IHBhdGgucmVzb2x2ZShwcm9qZWN0UGF0aCk7XG4gIGNvbnN0IHByb2plY3ROYW1lID0gcGF0aC5iYXNlbmFtZShyZXNvbHZlZFBhdGgpO1xuICBjb25zdCBzbHVnID0gcHJvamVjdE5hbWUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtejAtOV0rL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpO1xuXG4gIC8vIEdldCBzdWJkb21haW4gLSBvbmx5IGZvciBwdWJsaWMgZG9jc1xuICBsZXQgc3ViZG9tYWluOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zLnN1YmRvbWFpbjtcbiAgXG4gIGlmICghaXNJbnRlcm5hbERvY3MpIHtcbiAgICBpZiAoIXN1YmRvbWFpbikge1xuICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIHN1YmRvbWFpbiA9IGF3YWl0IHByb21wdChgRW50ZXIgc3ViZG9tYWluIGZvciB5b3VyIGRvY3MgKCR7c2x1Z30uZGV2ZG9jLnNoKWAsIHNsdWcpO1xuICAgICAgc3ViZG9tYWluID0gc3ViZG9tYWluLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTktXS9nLCAnLScpLnJlcGxhY2UoL14tfC0kL2csICcnKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBzdWJkb21haW4gZm9ybWF0IGxvY2FsbHlcbiAgICBjb25zdCBmb3JtYXRDaGVjayA9IGlzVmFsaWRTdWJkb21haW5Gb3JtYXQoc3ViZG9tYWluKTtcbiAgICBpZiAoIWZvcm1hdENoZWNrLnZhbGlkKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoZm9ybWF0Q2hlY2suZXJyb3IhKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBzdWJkb21haW4gYXZhaWxhYmlsaXR5IHZpYSBBUEkgKHNlcnZlciB2YWxpZGF0ZXMgYmxhY2tsaXN0KVxuICAgIC8vIExvb3AgdW50aWwgd2UgZmluZCBhbiBhdmFpbGFibGUgc3ViZG9tYWluXG4gICAgbGV0IHN1YmRvbWFpbkF2YWlsYWJsZSA9IGZhbHNlO1xuICAgIHdoaWxlICghc3ViZG9tYWluQXZhaWxhYmxlKSB7XG4gICAgICBsb2dnZXIuaW5mbyhgQ2hlY2tpbmcgaWYgJHtzdWJkb21haW59LmRldmRvYy5zaCBpcyBhdmFpbGFibGUuLi5gKTtcbiAgICAgIGNvbnN0IGF2YWlsYWJpbGl0eSA9IGF3YWl0IGNoZWNrU3ViZG9tYWluQXZhaWxhYmlsaXR5KHN1YmRvbWFpbiwgYXBpVXJsKTtcbiAgICAgIFxuICAgICAgaWYgKCFhdmFpbGFiaWxpdHkuYXZhaWxhYmxlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIGxvZ2dlci53YXJuKGF2YWlsYWJpbGl0eS5lcnJvciB8fCBgU3ViZG9tYWluIFwiJHtzdWJkb21haW59XCIgaXMgbm90IGF2YWlsYWJsZWApO1xuICAgICAgICBcbiAgICAgICAgY29uc3Qgc3VnZ2VzdGlvbiA9IGF2YWlsYWJpbGl0eS5zdWdnZXN0aW9uIHx8IGAke3N1YmRvbWFpbn0tZG9jc2A7XG4gICAgICAgIGNvbnNvbGUubG9nKCk7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBTdWdnZXN0aW9uOiAke3N1Z2dlc3Rpb259LmRldmRvYy5zaGApO1xuICAgICAgICBjb25zb2xlLmxvZygpO1xuICAgICAgICBcbiAgICAgICAgLy8gUHJvbXB0IGZvciBuZXcgc3ViZG9tYWluXG4gICAgICAgIHN1YmRvbWFpbiA9IGF3YWl0IHByb21wdCgnRW50ZXIgYSBkaWZmZXJlbnQgc3ViZG9tYWluJywgc3VnZ2VzdGlvbik7XG4gICAgICAgIHN1YmRvbWFpbiA9IHN1YmRvbWFpbi50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05LV0vZywgJy0nKS5yZXBsYWNlKC9eLXwtJC9nLCAnJyk7XG4gICAgICAgIFxuICAgICAgICAvLyBWYWxpZGF0ZSBmb3JtYXRcbiAgICAgICAgY29uc3QgZm9ybWF0Q2hlY2sgPSBpc1ZhbGlkU3ViZG9tYWluRm9ybWF0KHN1YmRvbWFpbik7XG4gICAgICAgIGlmICghZm9ybWF0Q2hlY2sudmFsaWQpIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoZm9ybWF0Q2hlY2suZXJyb3IhKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2coKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1YmRvbWFpbkF2YWlsYWJsZSA9IHRydWU7XG4gICAgICAgIGxvZ2dlci5zdWNjZXNzKGDinJMgJHtzdWJkb21haW59LmRldmRvYy5zaCBpcyBhdmFpbGFibGUhYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgZGlyZWN0b3J5IGV4aXN0c1xuICBpZiAoZnMuZXhpc3RzU3luYyhyZXNvbHZlZFBhdGgpKSB7XG4gICAgY29uc3QgZmlsZXMgPSBmcy5yZWFkZGlyU3luYyhyZXNvbHZlZFBhdGgpO1xuICAgIGlmIChmaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBvdmVyd3JpdGUgPSBhd2FpdCBwcm9tcHRDb25maXJtKGBEaXJlY3RvcnkgJHtwcm9qZWN0TmFtZX0gaXMgbm90IGVtcHR5LiBDb250aW51ZSBhbnl3YXk/YCwgZmFsc2UpO1xuICAgICAgXG4gICAgICBpZiAoIW92ZXJ3cml0ZSkge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ09wZXJhdGlvbiBjYW5jZWxsZWQnKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNlbGVjdGVkVGVtcGxhdGUgPSBURU1QTEFURVNbdGVtcGxhdGVdO1xuICBjb25zb2xlLmxvZygpO1xuICBsb2dnZXIuaW5mbyhgQ3JlYXRpbmcgYSBuZXcgJHtzZWxlY3RlZFRlbXBsYXRlLm5hbWV9IERldkRvYyBkb2N1bWVudGF0aW9uIHNpdGUgaW4gJHtyZXNvbHZlZFBhdGh9YCk7XG4gIGNvbnNvbGUubG9nKCk7XG5cbiAgLy8gQ3JlYXRlIHByb2plY3QgZGlyZWN0b3J5XG4gIGZzLmVuc3VyZURpclN5bmMocmVzb2x2ZWRQYXRoKTtcblxuICAvLyBEb3dubG9hZCB0ZW1wbGF0ZSBmcm9tIHJlbW90ZSByZXBvc2l0b3J5IChhbHdheXMgdXNlIHN0YXJ0ZXIgdGVtcGxhdGUpXG4gIGxvZ2dlci5pbmZvKCdEb3dubG9hZGluZyB0ZW1wbGF0ZS4uLicpO1xuICBcbiAgdHJ5IHtcbiAgICAvLyBUcnkgdG8gZG93bmxvYWQgZnJvbSByZW1vdGUgcmVwb3NpdG9yeSBmaXJzdFxuICAgIGF3YWl0IGRvd25sb2FkVGVtcGxhdGUoVEVNUExBVEVfUkVQTywge1xuICAgICAgZGlyOiByZXNvbHZlZFBhdGgsXG4gICAgICBmb3JjZTogdHJ1ZSxcbiAgICB9KTtcbiAgICBsb2dnZXIuc3VjY2VzcygnRG93bmxvYWRlZCBzdGFydGVyIHRlbXBsYXRlJyk7XG4gIH0gY2F0Y2ggKGRvd25sb2FkRXJyb3IpIHtcbiAgICAvLyBGYWxsIGJhY2sgdG8gbG9jYWwgdGVtcGxhdGVzIChmb3IgZGV2ZWxvcG1lbnQgb3Igb2ZmbGluZSB1c2FnZSlcbiAgICBsb2dnZXIuZGVidWcoYFJlbW90ZSBkb3dubG9hZCBmYWlsZWQ6ICR7ZG93bmxvYWRFcnJvcn1gKTtcbiAgICBsb2dnZXIuaW5mbygnRmFsbGluZyBiYWNrIHRvIGxvY2FsIHRlbXBsYXRlLi4uJyk7XG4gICAgXG4gICAgY29uc3QgdGVtcGxhdGVEaXIgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAnLi4nLCAndGVtcGxhdGVzJywgJ3N0YXJ0ZXInKTtcbiAgICBcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGVtcGxhdGVEaXIpKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoJ1RlbXBsYXRlIFwic3RhcnRlclwiIG5vdCBmb3VuZCcpO1xuICAgICAgbG9nZ2VyLmRlYnVnKGBMb29rZWQgZm9yIHRlbXBsYXRlIGF0OiAke3RlbXBsYXRlRGlyfWApO1xuICAgICAgbG9nZ2VyLmRlYnVnKCdSZW1vdGUgc291cmNlOiAnICsgVEVNUExBVEVfUkVQTyk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgZnMuY29weVN5bmModGVtcGxhdGVEaXIsIHJlc29sdmVkUGF0aCwgeyBvdmVyd3JpdGU6IHRydWUgfSk7XG4gICAgbG9nZ2VyLnN1Y2Nlc3MoJ0NvcGllZCBsb2NhbCB0ZW1wbGF0ZScpO1xuICB9XG5cbiAgLy8gVXBkYXRlIHBhY2thZ2UuanNvbiB3aXRoIHByb2plY3QgbmFtZVxuICBjb25zdCBwa2dQYXRoID0gcGF0aC5qb2luKHJlc29sdmVkUGF0aCwgJ3BhY2thZ2UuanNvbicpO1xuICBpZiAoZnMuZXhpc3RzU3luYyhwa2dQYXRoKSkge1xuICAgIGNvbnN0IHBrZyA9IGZzLnJlYWRKc29uU3luYyhwa2dQYXRoKTtcbiAgICBwa2cubmFtZSA9IHByb2plY3ROYW1lO1xuICAgIGZzLndyaXRlSnNvblN5bmMocGtnUGF0aCwgcGtnLCB7IHNwYWNlczogMiB9KTtcbiAgfVxuXG4gIC8vIEdlbmVyYXRlIGRvY3MuanNvbiBiYXNlZCBvbiB0ZW1wbGF0ZSB0eXBlXG4gIGNvbnN0IGRvY3NDb25maWcgPSBnZW5lcmF0ZURvY3NDb25maWcocHJvamVjdE5hbWUsIHRlbXBsYXRlKTtcbiAgY29uc3QgZG9jc1BhdGggPSBwYXRoLmpvaW4ocmVzb2x2ZWRQYXRoLCAnZG9jcy5qc29uJyk7XG4gIGZzLndyaXRlSnNvblN5bmMoZG9jc1BhdGgsIGRvY3NDb25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICBsb2dnZXIuc3VjY2VzcyhgR2VuZXJhdGVkIGRvY3MuanNvbiBmb3IgJHtzZWxlY3RlZFRlbXBsYXRlLm5hbWV9IHRlbXBsYXRlYCk7XG5cbiAgLy8gVXBkYXRlIHRoZW1lLmpzb24gd2l0aCB0ZW1wbGF0ZSBjb2xvclxuICBjb25zdCB0aGVtZVBhdGggPSBwYXRoLmpvaW4ocmVzb2x2ZWRQYXRoLCAndGhlbWUuanNvbicpO1xuICBpZiAoZnMuZXhpc3RzU3luYyh0aGVtZVBhdGgpKSB7XG4gICAgY29uc3QgdGhlbWUgPSBmcy5yZWFkSnNvblN5bmModGhlbWVQYXRoKTtcbiAgICB0aGVtZS5jb2xvcnMgPSB7XG4gICAgICBwcmltYXJ5OiBzZWxlY3RlZFRlbXBsYXRlLmNvbG9yLFxuICAgICAgcHJpbWFyeUxpZ2h0OiBzZWxlY3RlZFRlbXBsYXRlLmNvbG9yLFxuICAgICAgcHJpbWFyeURhcms6IHNlbGVjdGVkVGVtcGxhdGUuY29sb3IsXG4gICAgfTtcbiAgICBmcy53cml0ZUpzb25TeW5jKHRoZW1lUGF0aCwgdGhlbWUsIHsgc3BhY2VzOiAyIH0pO1xuICB9XG5cbiAgLy8gQ2xlYW4gdXAgdW51c2VkIGZpbGVzIGJhc2VkIG9uIHRlbXBsYXRlIHR5cGVcbiAgY2xlYW51cFVudXNlZEZpbGVzKHJlc29sdmVkUGF0aCwgdGVtcGxhdGUpO1xuXG4gIC8vIENyZWF0ZSAuZGV2ZG9jLmpzb24gd2l0aCBwcm9qZWN0IGNvbmZpZ1xuICAvLyBGb3IgcHVibGljIGRvY3M6IHN1YmRvbWFpbiB3aWxsIG9ubHkgYmUgcmVzZXJ2ZWQgd2hlbiB0aGUgdXNlciBhY3R1YWxseSBkZXBsb3lzXG4gIC8vIEZvciBpbnRlcm5hbCBkb2NzOiBubyBzdWJkb21haW4gbmVlZGVkXG4gIGNvbnN0IGRldmRvY0NvbmZpZ1BhdGggPSBwYXRoLmpvaW4ocmVzb2x2ZWRQYXRoLCAnLmRldmRvYy5qc29uJyk7XG4gIFxuICBjb25zdCBkZXZkb2NDb25maWc6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIHByb2plY3RJZDogYCR7c2x1Z30tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMiwgOCl9YCxcbiAgICBuYW1lOiBmb3JtYXRQcm9qZWN0TmFtZShwcm9qZWN0TmFtZSksXG4gICAgc2x1Zzogc2x1ZyxcbiAgICBkb2NUeXBlOiBkb2NUeXBlLFxuICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICB9O1xuXG4gIC8vIE9ubHkgYWRkIHN1YmRvbWFpbiBmb3IgcHVibGljIGRvY3NcbiAgaWYgKCFpc0ludGVybmFsRG9jcyAmJiBzdWJkb21haW4pIHtcbiAgICBkZXZkb2NDb25maWcuc3ViZG9tYWluID0gc3ViZG9tYWluO1xuICB9XG5cbiAgZnMud3JpdGVKc29uU3luYyhkZXZkb2NDb25maWdQYXRoLCBkZXZkb2NDb25maWcsIHsgc3BhY2VzOiAyIH0pO1xuICBsb2dnZXIuc3VjY2VzcygnQ3JlYXRlZCAuZGV2ZG9jLmpzb24nKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgRG9jIFR5cGU6JywgRE9DX1RZUEVTW2RvY1R5cGVdLm5hbWUpO1xuICBpZiAoIWlzSW50ZXJuYWxEb2NzICYmIHN1YmRvbWFpbikge1xuICAgIGNvbnNvbGUubG9nKCcgIFN1YmRvbWFpbjonLCBgJHtzdWJkb21haW59LmRldmRvYy5zaGApO1xuICAgIGNvbnNvbGUubG9nKCcgIFN0YXR1czonLCAnTm90IHlldCBkZXBsb3llZCAoc3ViZG9tYWluIHdpbGwgYmUgcmVzZXJ2ZWQgb24gZmlyc3QgZGVwbG95KScpO1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUubG9nKCcgIFN0YXR1czonLCAnSW50ZXJuYWwgZG9jcyAobG9jYWwgZGV2ZWxvcG1lbnQgb25seSknKTtcbiAgfVxuXG4gIC8vIEluaXRpYWxpemUgZ2l0XG4gIGlmIChvcHRpb25zLmdpdCAhPT0gZmFsc2UpIHtcbiAgICBsb2dnZXIuaW5mbygnSW5pdGlhbGl6aW5nIGdpdCByZXBvc2l0b3J5Li4uJyk7XG4gICAgdHJ5IHtcbiAgICAgIGV4ZWNTeW5jKCdnaXQgaW5pdCcsIHsgY3dkOiByZXNvbHZlZFBhdGgsIHN0ZGlvOiAnaWdub3JlJyB9KTtcbiAgICAgIGV4ZWNTeW5jKCdnaXQgYWRkIC1BJywgeyBjd2Q6IHJlc29sdmVkUGF0aCwgc3RkaW86ICdpZ25vcmUnIH0pO1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJJbml0aWFsIGNvbW1pdCBmcm9tIGRldmRvYyBjcmVhdGVcIicsIHtcbiAgICAgICAgY3dkOiByZXNvbHZlZFBhdGgsXG4gICAgICAgIHN0ZGlvOiAnaWdub3JlJyxcbiAgICAgIH0pO1xuICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ0dpdCByZXBvc2l0b3J5IGluaXRpYWxpemVkJyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBsb2dnZXIud2FybignQ291bGQgbm90IGluaXRpYWxpemUgZ2l0IHJlcG9zaXRvcnknKTtcbiAgICB9XG4gIH1cblxuICAvLyBJbnN0YWxsIGRlcGVuZGVuY2llc1xuICBpZiAob3B0aW9ucy5pbnN0YWxsICE9PSBmYWxzZSkge1xuICAgIGxvZ2dlci5pbmZvKCdJbnN0YWxsaW5nIGRlcGVuZGVuY2llcy4uLicpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYWNrYWdlTWFuYWdlciA9IGdldFBhY2thZ2VNYW5hZ2VyKCk7XG4gICAgICBleGVjU3luYyhgJHtwYWNrYWdlTWFuYWdlcn0gaW5zdGFsbGAsIHtcbiAgICAgICAgY3dkOiByZXNvbHZlZFBhdGgsXG4gICAgICAgIHN0ZGlvOiAnaW5oZXJpdCcsXG4gICAgICB9KTtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKCdEZXBlbmRlbmNpZXMgaW5zdGFsbGVkJyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICBsb2dnZXIud2FybignQ291bGQgbm90IGluc3RhbGwgZGVwZW5kZW5jaWVzJyk7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5zdGFsbCBBSSBhZ2VudHMgLSBhbHdheXMgcHJvbXB0IGFzIHBhcnQgb2YgY3JlYXRlIGZsb3dcbiAgbGV0IGFpVG9vbDogJ2NsYXVkZScgfCAnY3Vyc29yJyB8ICdib3RoJyB8IG51bGwgPSBudWxsO1xuICBcbiAgY29uc3QgYWlDaG9pY2VzID0gW1xuICAgIHsgdmFsdWU6ICdib3RoJywgbGFiZWw6ICdCb3RoIC0gQ2xhdWRlIENvZGUgYW5kIEN1cnNvciAocmVjb21tZW5kZWQpJyB9LFxuICAgIHsgdmFsdWU6ICdjdXJzb3InLCBsYWJlbDogJ0N1cnNvciAtIFJ1bGVzIGZvciBDdXJzb3IgSURFJyB9LFxuICAgIHsgdmFsdWU6ICdjbGF1ZGUnLCBsYWJlbDogJ0NsYXVkZSBDb2RlIC0gU2tpbGxzIGFuZCBDTEFVREUubWQnIH0sXG4gIF07XG4gIGNvbnN0IGFpU2VsZWN0aW9uID0gYXdhaXQgcHJvbXB0U2VsZWN0KCdXaGljaCBBSSBjb2RpbmcgYXNzaXN0YW50IGRvIHlvdSB1c2U/JywgYWlDaG9pY2VzKTtcbiAgYWlUb29sID0gYWlTZWxlY3Rpb24gYXMgJ2NsYXVkZScgfCAnY3Vyc29yJyB8ICdib3RoJztcblxuICBpZiAoYWlUb29sKSB7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBsb2dnZXIuaW5mbygnU2V0dGluZyB1cCBBSSBhZ2VudCBjb25maWd1cmF0aW9uLi4uJyk7XG4gICAgY29uc3QgYWlSZXN1bHRzID0gaW5zdGFsbEFJQWdlbnRzKHJlc29sdmVkUGF0aCwgYWlUb29sKTtcbiAgICBcbiAgICBpZiAoYWlSZXN1bHRzLmNsYXVkZU1kKSB7XG4gICAgICBsb2dnZXIuc3VjY2VzcygnQ3JlYXRlZCBDTEFVREUubWQnKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBza2lsbCBvZiBhaVJlc3VsdHMuY2xhdWRlU2tpbGxzKSB7XG4gICAgICBsb2dnZXIuc3VjY2VzcyhgQ3JlYXRlZCAuY2xhdWRlL3NraWxscy8ke3NraWxsfS9TS0lMTC5tZGApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgYWlSZXN1bHRzLmN1cnNvclJ1bGVzKSB7XG4gICAgICBsb2dnZXIuc3VjY2VzcyhgQ3JlYXRlZCAuY3Vyc29yL3J1bGVzLyR7cnVsZX1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBTdWNjZXNzIG1lc3NhZ2VcbiAgY29uc29sZS5sb2coKTtcbiAgbG9nZ2VyLnN1Y2Nlc3MoYENyZWF0ZWQgJHtwcm9qZWN0TmFtZX0gYXQgJHtyZXNvbHZlZFBhdGh9YCk7XG4gIGNvbnNvbGUubG9nKCk7XG5cbiAgaWYgKCFpc0ludGVybmFsRG9jcyAmJiBzdWJkb21haW4pIHtcbiAgICBjb25zb2xlLmxvZygnWW91ciBkb2NzIHdpbGwgYmUgYXZhaWxhYmxlIGF0OicpO1xuICAgIGNvbnNvbGUubG9nKGAgIGh0dHBzOi8vJHtzdWJkb21haW59LmRldmRvYy5zaGApO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgbG9nZ2VyLmluZm8oJ05vdGU6IFRoZSBzdWJkb21haW4gd2lsbCBiZSByZXNlcnZlZCB3aGVuIHlvdSBydW4gXCJkZXZkb2MgZGVwbG95XCInKTtcbiAgICBjb25zb2xlLmxvZygpO1xuICAgIGNvbnNvbGUubG9nKCdJbnNpZGUgdGhhdCBkaXJlY3RvcnksIHlvdSBjYW4gcnVuIHNldmVyYWwgY29tbWFuZHM6Jyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZygnICBucG0gcnVuIGRldicpO1xuICAgIGNvbnNvbGUubG9nKCcgICAgU3RhcnRzIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIuJyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZygnICBkZXZkb2MgZGVwbG95Jyk7XG4gICAgY29uc29sZS5sb2coJyAgICBEZXBsb3lzIGFuZCBjbGFpbXMgeW91ciBzdWJkb21haW4uJyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnVGhpcyBpcyBhbiBpbnRlcm5hbCBkb2N1bWVudGF0aW9uIHByb2plY3QgZm9yIGxvY2FsIGRldmVsb3BtZW50LicpO1xuICAgIGNvbnNvbGUubG9nKCk7XG4gICAgY29uc29sZS5sb2coJ0luc2lkZSB0aGF0IGRpcmVjdG9yeSwgeW91IGNhbiBydW46Jyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgICBjb25zb2xlLmxvZygnICBucG0gcnVuIGRldicpO1xuICAgIGNvbnNvbGUubG9nKCcgICAgU3RhcnRzIHRoZSBkZXZlbG9wbWVudCBzZXJ2ZXIgYXQgaHR0cDovL2xvY2FsaG9zdDozMDAwJyk7XG4gICAgY29uc29sZS5sb2coKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKCdXZSBzdWdnZXN0IHRoYXQgeW91IGJlZ2luIGJ5IHR5cGluZzonKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coYCAgY2QgJHtwcm9qZWN0TmFtZX1gKTtcbiAgY29uc29sZS5sb2coJyAgbnBtIHJ1biBkZXYnKTtcbiAgY29uc29sZS5sb2coKTtcblxuICAvLyBTaG93IEFJIGFnZW50IHF1aWNrIHN0YXJ0IHRpcHNcbiAgY29uc29sZS5sb2coJ0FJIEFnZW50IFF1aWNrIFN0YXJ0OicpO1xuICBpZiAoYWlUb29sID09PSAnY2xhdWRlJyB8fCBhaVRvb2wgPT09ICdib3RoJykge1xuICAgIGNvbnNvbGUubG9nKCcgIENsYXVkZSBDb2RlOiAvYm9vdHN0cmFwLWRvY3MnKTtcbiAgfVxuICBpZiAoYWlUb29sID09PSAnY3Vyc29yJyB8fCBhaVRvb2wgPT09ICdib3RoJykge1xuICAgIGNvbnNvbGUubG9nKCcgIEN1cnNvcjogQXNrIFwiZ2VuZXJhdGUgaW5pdGlhbCBkb2N1bWVudGF0aW9uIGZyb20gdGhpcyByZXBvXCInKTtcbiAgfVxuICBjb25zb2xlLmxvZygpO1xuXG4gIC8vIEFTQ0lJIGFydCBiYW5uZXJcbiAgY29uc29sZS5sb2coYFxuICBfX19fICAgICAgICAgICAgICBfX19fICAgICAgICAgICAgIFxuIHwgIF8gXFxcXCAgX19fX18gICBfX3wgIF8gXFxcXCAgX19fICAgX19fIFxuIHwgfCB8IHwvIF8gXFxcXCBcXFxcIC8gL3wgfCB8IHwvIF8gXFxcXCAvIF9ffFxuIHwgfF98IHwgIF9fL1xcXFwgViAvIHwgfF98IHwgKF8pIHwgKF9fIFxuIHxfX19fLyBcXFxcX19ffCBcXFxcXy8gIHxfX19fLyBcXFxcX19fLyBcXFxcX19ffFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgYCk7XG4gIGNvbnNvbGUubG9nKCdIYXBweSBkb2N1bWVudGluZyEnKTtcbiAgY29uc29sZS5sb2coKTtcbn1cbiJdfQ==
|
package/dist/cli/index.js
CHANGED
|
@@ -27,7 +27,6 @@ program
|
|
|
27
27
|
.option('-s, --subdomain <subdomain>', 'Subdomain for your docs (e.g., my-docs.devdoc.sh)')
|
|
28
28
|
.option('--no-git', 'Skip git initialization')
|
|
29
29
|
.option('--no-install', 'Skip installing dependencies')
|
|
30
|
-
.option('--ai [tool]', 'Set up AI agents (claude, cursor, both, or just --ai to choose)')
|
|
31
30
|
.option('-u, --url <url>', 'API URL (default: https://devdoc.sh)')
|
|
32
31
|
.action(create_1.create);
|
|
33
32
|
program
|
|
@@ -144,4 +143,4 @@ domainCmd
|
|
|
144
143
|
.option('-k, --api-key <key>', 'API key for authentication')
|
|
145
144
|
.action(domain_1.domainRemove);
|
|
146
145
|
program.parse(process.argv);
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQW9DO0FBQ3BDLDhDQUEyQztBQUMzQywwQ0FBdUM7QUFDdkMsd0NBQXFDO0FBQ3JDLDRDQUF5QztBQUN6Qyw0Q0FBeUM7QUFDekMsNENBQXlDO0FBQ3pDLDhDQUEyQztBQUMzQywwQ0FBMEQ7QUFDMUQsOENBQTJDO0FBQzNDLDhDQUF1RDtBQUN2RCxzQ0FBbUM7QUFDbkMsOENBQXdGO0FBRXhGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxELE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQU8sRUFBRSxDQUFDO0FBRTlCLE9BQU87S0FDSixJQUFJLENBQUMsUUFBUSxDQUFDO0tBQ2QsV0FBVyxDQUFDLHdDQUF3QyxDQUFDO0tBQ3JELE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFaEMsT0FBTztLQUNKLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztLQUNyQyxXQUFXLENBQUMsd0NBQXdDLENBQUM7S0FDckQsTUFBTSxDQUFDLHVCQUF1QixFQUFFLDJDQUEyQyxDQUFDO0tBQzVFLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx1Q0FBdUMsQ0FBQztLQUN4RSxNQUFNLENBQUMsNkJBQTZCLEVBQUUsbURBQW1ELENBQUM7S0FDMUYsTUFBTSxDQUFDLFVBQVUsRUFBRSx5QkFBeUIsQ0FBQztLQUM3QyxNQUFNLENBQUMsY0FBYyxFQUFFLDhCQUE4QixDQUFDO0tBQ3RELE1BQU0sQ0FBQyxhQUFhLEVBQUUsaUVBQWlFLENBQUM7S0FDeEYsTUFBTSxDQUFDLGlCQUFpQixFQUFFLHNDQUFzQyxDQUFDO0tBQ2pFLE1BQU0sQ0FBQyxlQUFNLENBQUMsQ0FBQztBQUVsQixPQUFPO0tBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUNmLFdBQVcsQ0FBQyw0Q0FBNEMsQ0FBQztLQUN6RCxNQUFNLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDO0tBQzNDLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxtREFBbUQsQ0FBQztLQUN0RixNQUFNLENBQUMsYUFBYSxFQUFFLGlDQUFpQyxDQUFDO0tBQ3hELE1BQU0sQ0FBQyxhQUFhLEVBQUUsaUVBQWlFLENBQUM7S0FDeEYsTUFBTSxDQUFDLGlCQUFpQixFQUFFLHNDQUFzQyxDQUFDO0tBQ2pFLE1BQU0sQ0FBQyxXQUFJLENBQUMsQ0FBQztBQUVoQixPQUFPO0tBQ0osT0FBTyxDQUFDLEtBQUssQ0FBQztLQUNkLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQztLQUN2RCxNQUFNLENBQUMsbUJBQW1CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxDQUFDO0tBQ2hFLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSw0QkFBNEIsRUFBRSxXQUFXLENBQUM7S0FDdEUsTUFBTSxDQUFDLFlBQVksRUFBRSw0QkFBNEIsRUFBRSxJQUFJLENBQUM7S0FDeEQsTUFBTSxDQUFDLFdBQVcsRUFBRSxtQ0FBbUMsQ0FBQztLQUN4RCxNQUFNLENBQUMsU0FBRyxDQUFDLENBQUM7QUFFZixPQUFPO0tBQ0osT0FBTyxDQUFDLE9BQU8sQ0FBQztLQUNoQixXQUFXLENBQUMsb0NBQW9DLENBQUM7S0FDakQsTUFBTSxDQUFDLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztLQUN4RCxNQUFNLENBQUMsYUFBSyxDQUFDLENBQUM7QUFFakIsT0FBTztLQUNKLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDaEIsV0FBVyxDQUFDLHlCQUF5QixDQUFDO0tBQ3RDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLENBQUM7S0FDaEUsTUFBTSxDQUFDLGFBQUssQ0FBQyxDQUFDO0FBRWpCLE9BQU87S0FDSixPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ2hCLFdBQVcsQ0FBQyxrQ0FBa0MsQ0FBQztLQUMvQyxNQUFNLENBQUMsYUFBSyxDQUFDLENBQUM7QUFFakIsT0FBTztLQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDYixXQUFXLENBQUMsNEVBQTRFLENBQUM7S0FDekYsTUFBTSxDQUFDLG1CQUFtQixFQUFFLDZDQUE2QyxDQUFDO0tBQzFFLE1BQU0sQ0FBQyxVQUFVLEVBQUUsZ0RBQWdELENBQUM7S0FDcEUsTUFBTSxDQUFDLE9BQUUsQ0FBQyxDQUFDO0FBRWQsT0FBTztLQUNKLE9BQU8sQ0FBQyxRQUFRLENBQUM7S0FDakIsV0FBVyxDQUFDLHlDQUF5QyxDQUFDO0tBQ3RELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxzQ0FBc0MsQ0FBQztLQUNqRSxNQUFNLENBQUMscUJBQXFCLEVBQUUsNEJBQTRCLENBQUM7S0FDM0QsTUFBTSxDQUFDLGVBQU0sQ0FBQyxDQUFDO0FBRWxCLGtCQUFrQjtBQUNsQixNQUFNLE9BQU8sR0FBRyxPQUFPO0tBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDZixXQUFXLENBQUMsa0NBQWtDLENBQUMsQ0FBQztBQUVuRCxPQUFPO0tBQ0osT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUNmLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQztLQUN4QyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxlQUFRLENBQUMsQ0FBQztBQUVwQixPQUFPO0tBQ0osT0FBTyxDQUFDLFlBQVksQ0FBQztLQUNyQixXQUFXLENBQUMsa0RBQWtELENBQUM7S0FDL0QsTUFBTSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztLQUNwQyxNQUFNLENBQUMsb0JBQWEsQ0FBQyxDQUFDO0FBRXpCLE9BQU87S0FDSixPQUFPLENBQUMsUUFBUSxDQUFDO0tBQ2pCLFdBQVcsQ0FBQyxrQ0FBa0MsQ0FBQztLQUMvQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxlQUFNLENBQUMsQ0FBQztBQUVsQixvQkFBb0I7QUFDcEIsTUFBTSxTQUFTLEdBQUcsT0FBTztLQUN0QixPQUFPLENBQUMsUUFBUSxDQUFDO0tBQ2pCLFdBQVcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBRXhELFNBQVM7S0FDTixPQUFPLENBQUMsbUJBQW1CLENBQUM7S0FDNUIsV0FBVyxDQUFDLDhDQUE4QyxDQUFDO0tBQzNELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUM7S0FDcEMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLDRCQUE0QixDQUFDO0tBQzNELE1BQU0sQ0FBQyxlQUFNLENBQUMsQ0FBQztBQUVsQixTQUFTO0tBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUNmLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQztLQUNuQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsQ0FBQztLQUMzRCxNQUFNLENBQUMsbUJBQVUsQ0FBQyxDQUFDO0FBRXRCLHNCQUFzQjtBQUN0QixPQUFPO0tBQ0osT0FBTyxDQUFDLG1CQUFtQixDQUFDO0tBQzVCLFdBQVcsQ0FBQyxnRUFBZ0UsQ0FBQztLQUM3RSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsQ0FBQztLQUMzRCxNQUFNLENBQUMsZUFBTSxDQUFDLENBQUM7QUFFbEIsNkRBQTZEO0FBQzdELE1BQU0sU0FBUyxHQUFHLE9BQU87S0FDdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUNqQixXQUFXLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUU5RCxTQUFTO0tBQ04sT0FBTyxDQUFDLHFCQUFxQixDQUFDO0tBQzlCLFdBQVcsQ0FBQyw4Q0FBOEMsQ0FBQztLQUMzRCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsQ0FBQztLQUMzRCxNQUFNLENBQUMsa0JBQVMsQ0FBQyxDQUFDO0FBRXJCLFNBQVM7S0FDTixPQUFPLENBQUMsUUFBUSxDQUFDO0tBQ2pCLFdBQVcsQ0FBQyxrREFBa0QsQ0FBQztLQUMvRCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsQ0FBQztLQUMzRCxNQUFNLENBQUMscUJBQVksQ0FBQyxDQUFDO0FBRXhCLFNBQVM7S0FDTixPQUFPLENBQUMsUUFBUSxDQUFDO0tBQ2pCLFdBQVcsQ0FBQyxpREFBaUQsQ0FBQztLQUM5RCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsQ0FBQztLQUMzRCxNQUFNLENBQUMscUJBQVksQ0FBQyxDQUFDO0FBRXhCLFNBQVM7S0FDTixPQUFPLENBQUMsd0JBQXdCLENBQUM7S0FDakMsV0FBVyxDQUFDLG1DQUFtQyxDQUFDO0tBQ2hELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUM7S0FDcEMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLDRCQUE0QixDQUFDO0tBQzNELE1BQU0sQ0FBQyxxQkFBWSxDQUFDLENBQUM7QUFFeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IGNyZWF0ZSB9IGZyb20gJy4vY29tbWFuZHMvY3JlYXRlJztcbmltcG9ydCB7IGluaXQgfSBmcm9tICcuL2NvbW1hbmRzL2luaXQnO1xuaW1wb3J0IHsgZGV2IH0gZnJvbSAnLi9jb21tYW5kcy9kZXYnO1xuaW1wb3J0IHsgYnVpbGQgfSBmcm9tICcuL2NvbW1hbmRzL2J1aWxkJztcbmltcG9ydCB7IHN0YXJ0IH0gZnJvbSAnLi9jb21tYW5kcy9zdGFydCc7XG5pbXBvcnQgeyBjaGVjayB9IGZyb20gJy4vY29tbWFuZHMvY2hlY2snO1xuaW1wb3J0IHsgZGVwbG95IH0gZnJvbSAnLi9jb21tYW5kcy9kZXBsb3knO1xuaW1wb3J0IHsgbGlzdEtleXMsIHJlZ2VuZXJhdGVLZXkgfSBmcm9tICcuL2NvbW1hbmRzL2tleXMnO1xuaW1wb3J0IHsgd2hvYW1pIH0gZnJvbSAnLi9jb21tYW5kcy93aG9hbWknO1xuaW1wb3J0IHsgdXBsb2FkLCBsaXN0QXNzZXRzIH0gZnJvbSAnLi9jb21tYW5kcy91cGxvYWQnO1xuaW1wb3J0IHsgYWkgfSBmcm9tICcuL2NvbW1hbmRzL2FpJztcbmltcG9ydCB7IGRvbWFpbkFkZCwgZG9tYWluU3RhdHVzLCBkb21haW5WZXJpZnksIGRvbWFpblJlbW92ZSB9IGZyb20gJy4vY29tbWFuZHMvZG9tYWluJztcblxuY29uc3QgcGFja2FnZUpzb24gPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKTtcblxuY29uc3QgcHJvZ3JhbSA9IG5ldyBDb21tYW5kKCk7XG5cbnByb2dyYW1cbiAgLm5hbWUoJ2RldmRvYycpXG4gIC5kZXNjcmlwdGlvbignRG9jdW1lbnRhdGlvbiBmcmFtZXdvcmsgZm9yIGRldmVsb3BlcnMnKVxuICAudmVyc2lvbihwYWNrYWdlSnNvbi52ZXJzaW9uKTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnY3JlYXRlIFtwcm9qZWN0LWRpcmVjdG9yeV0nKVxuICAuZGVzY3JpcHRpb24oJ0NyZWF0ZSBhIG5ldyBEZXZEb2MgZG9jdW1lbnRhdGlvbiBzaXRlJylcbiAgLm9wdGlvbignLXQsIC0tdGVtcGxhdGUgPHR5cGU+JywgJ1RlbXBsYXRlIHRvIHVzZSAoYmFzaWMsIG9wZW5hcGksIGdyYXBocWwpJylcbiAgLm9wdGlvbignLWQsIC0tZG9jLXR5cGUgPHR5cGU+JywgJ0RvY3VtZW50YXRpb24gdHlwZSAocHVibGljLCBpbnRlcm5hbCknKVxuICAub3B0aW9uKCctcywgLS1zdWJkb21haW4gPHN1YmRvbWFpbj4nLCAnU3ViZG9tYWluIGZvciB5b3VyIGRvY3MgKGUuZy4sIG15LWRvY3MuZGV2ZG9jLnNoKScpXG4gIC5vcHRpb24oJy0tbm8tZ2l0JywgJ1NraXAgZ2l0IGluaXRpYWxpemF0aW9uJylcbiAgLm9wdGlvbignLS1uby1pbnN0YWxsJywgJ1NraXAgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXMnKVxuICAub3B0aW9uKCctLWFpIFt0b29sXScsICdTZXQgdXAgQUkgYWdlbnRzIChjbGF1ZGUsIGN1cnNvciwgYm90aCwgb3IganVzdCAtLWFpIHRvIGNob29zZSknKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCAoZGVmYXVsdDogaHR0cHM6Ly9kZXZkb2Muc2gpJylcbiAgLmFjdGlvbihjcmVhdGUpO1xuXG5wcm9ncmFtXG4gIC5jb21tYW5kKCdpbml0JylcbiAgLmRlc2NyaXB0aW9uKCdJbml0aWFsaXplL3JlZ2lzdGVyIHByb2plY3Qgd2l0aCBCcmFpbmZpc2gnKVxuICAub3B0aW9uKCctcywgLS1zbHVnIDxzbHVnPicsICdQcm9qZWN0IHNsdWcnKVxuICAub3B0aW9uKCctLXN1YmRvbWFpbiA8c3ViZG9tYWluPicsICdTdWJkb21haW4gZm9yIHlvdXIgZG9jcyAoZS5nLiwgbXktZG9jcy5kZXZkb2Muc2gpJylcbiAgLm9wdGlvbignLWYsIC0tZm9yY2UnLCAnT3ZlcndyaXRlIGV4aXN0aW5nIC5kZXZkb2MuanNvbicpXG4gIC5vcHRpb24oJy0tYWkgW3Rvb2xdJywgJ1NldCB1cCBBSSBhZ2VudHMgKGNsYXVkZSwgY3Vyc29yLCBib3RoLCBvciBqdXN0IC0tYWkgdG8gY2hvb3NlKScpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMIChkZWZhdWx0OiBodHRwczovL2RldmRvYy5zaCknKVxuICAuYWN0aW9uKGluaXQpO1xuXG5wcm9ncmFtXG4gIC5jb21tYW5kKCdkZXYnKVxuICAuZGVzY3JpcHRpb24oJ1N0YXJ0IGRldmVsb3BtZW50IHNlcnZlciB3aXRoIGhvdCByZWxvYWQnKVxuICAub3B0aW9uKCctcCwgLS1wb3J0IDxwb3J0PicsICdQb3J0IHRvIHJ1biB0aGUgc2VydmVyIG9uJywgJzMzMzMnKVxuICAub3B0aW9uKCctSCwgLS1ob3N0IDxob3N0PicsICdIb3N0IHRvIGJpbmQgdGhlIHNlcnZlciB0bycsICdsb2NhbGhvc3QnKVxuICAub3B0aW9uKCctbywgLS1vcGVuJywgJ09wZW4gYnJvd3NlciBhdXRvbWF0aWNhbGx5JywgdHJ1ZSlcbiAgLm9wdGlvbignLS1uby1vcGVuJywgJ0RvIG5vdCBvcGVuIGJyb3dzZXIgYXV0b21hdGljYWxseScpXG4gIC5hY3Rpb24oZGV2KTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnYnVpbGQnKVxuICAuZGVzY3JpcHRpb24oJ0J1aWxkIGRvY3VtZW50YXRpb24gZm9yIHByb2R1Y3Rpb24nKVxuICAub3B0aW9uKCctbywgLS1vdXRwdXQgPGRpcj4nLCAnT3V0cHV0IGRpcmVjdG9yeScsICdkaXN0JylcbiAgLmFjdGlvbihidWlsZCk7XG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoJ3N0YXJ0JylcbiAgLmRlc2NyaXB0aW9uKCdTdGFydCBwcm9kdWN0aW9uIHNlcnZlcicpXG4gIC5vcHRpb24oJy1wLCAtLXBvcnQgPHBvcnQ+JywgJ1BvcnQgdG8gcnVuIHRoZSBzZXJ2ZXIgb24nLCAnMzAwMCcpXG4gIC5hY3Rpb24oc3RhcnQpO1xuXG5wcm9ncmFtXG4gIC5jb21tYW5kKCdjaGVjaycpXG4gIC5kZXNjcmlwdGlvbignVmFsaWRhdGUgZG9jcy5qc29uIGFuZCBNRFggZmlsZXMnKVxuICAuYWN0aW9uKGNoZWNrKTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnYWknKVxuICAuZGVzY3JpcHRpb24oJ1NldCB1cCBvciB1cGRhdGUgQUkgYWdlbnQgY29uZmlndXJhdGlvbiAoQ2xhdWRlIENvZGUgc2tpbGxzLCBDdXJzb3IgcnVsZXMpJylcbiAgLm9wdGlvbignLXQsIC0tdG9vbCA8dG9vbD4nLCAnQUkgdG9vbCB0byBjb25maWd1cmUgKGNsYXVkZSwgY3Vyc29yLCBib3RoKScpXG4gIC5vcHRpb24oJy0tdXBkYXRlJywgJ1VwZGF0ZSBleGlzdGluZyBza2lsbHMvcnVsZXMgdG8gbGF0ZXN0IHZlcnNpb24nKVxuICAuYWN0aW9uKGFpKTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnZGVwbG95JylcbiAgLmRlc2NyaXB0aW9uKCdEZXBsb3kgZG9jdW1lbnRhdGlvbiB0byBEZXZEb2MgcGxhdGZvcm0nKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCAoZGVmYXVsdDogaHR0cHM6Ly9kZXZkb2Muc2gpJylcbiAgLm9wdGlvbignLWssIC0tYXBpLWtleSA8a2V5PicsICdBUEkga2V5IGZvciBhdXRoZW50aWNhdGlvbicpXG4gIC5hY3Rpb24oZGVwbG95KTtcblxuLy8gS2V5cyBtYW5hZ2VtZW50XG5jb25zdCBrZXlzQ21kID0gcHJvZ3JhbVxuICAuY29tbWFuZCgna2V5cycpXG4gIC5kZXNjcmlwdGlvbignTWFuYWdlIEFQSSBrZXlzIGZvciB5b3VyIHByb2plY3QnKTtcblxua2V5c0NtZFxuICAuY29tbWFuZCgnbGlzdCcpXG4gIC5kZXNjcmlwdGlvbignU2hvdyBjdXJyZW50IEFQSSBrZXkgaW5mbycpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLmFjdGlvbihsaXN0S2V5cyk7XG5cbmtleXNDbWRcbiAgLmNvbW1hbmQoJ3JlZ2VuZXJhdGUnKVxuICAuZGVzY3JpcHRpb24oJ0dlbmVyYXRlIGEgbmV3IEFQSSBrZXkgKGludmFsaWRhdGVzIHRoZSBvbGQgb25lKScpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLmFjdGlvbihyZWdlbmVyYXRlS2V5KTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnd2hvYW1pJylcbiAgLmRlc2NyaXB0aW9uKCdTaG93IGN1cnJlbnQgcHJvamVjdCBpbmZvcm1hdGlvbicpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLmFjdGlvbih3aG9hbWkpO1xuXG4vLyBBc3NldHMgbWFuYWdlbWVudFxuY29uc3QgYXNzZXRzQ21kID0gcHJvZ3JhbVxuICAuY29tbWFuZCgnYXNzZXRzJylcbiAgLmRlc2NyaXB0aW9uKCdNYW5hZ2UgcHJvamVjdCBhc3NldHMgKGltYWdlcywgZmlsZXMpJyk7XG5cbmFzc2V0c0NtZFxuICAuY29tbWFuZCgndXBsb2FkIDxmaWxlcy4uLj4nKVxuICAuZGVzY3JpcHRpb24oJ1VwbG9hZCBhc3NldHMgdG8gc3RvcmFnZSAobWF4IDI1TUIgcGVyIGZpbGUpJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwnKVxuICAub3B0aW9uKCctaywgLS1hcGkta2V5IDxrZXk+JywgJ0FQSSBrZXkgZm9yIGF1dGhlbnRpY2F0aW9uJylcbiAgLmFjdGlvbih1cGxvYWQpO1xuXG5hc3NldHNDbWRcbiAgLmNvbW1hbmQoJ2xpc3QnKVxuICAuZGVzY3JpcHRpb24oJ0xpc3QgdXBsb2FkZWQgYXNzZXRzJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwnKVxuICAub3B0aW9uKCctaywgLS1hcGkta2V5IDxrZXk+JywgJ0FQSSBrZXkgZm9yIGF1dGhlbnRpY2F0aW9uJylcbiAgLmFjdGlvbihsaXN0QXNzZXRzKTtcblxuLy8gU2hvcnRjdXQgZm9yIHVwbG9hZFxucHJvZ3JhbVxuICAuY29tbWFuZCgndXBsb2FkIDxmaWxlcy4uLj4nKVxuICAuZGVzY3JpcHRpb24oJ1VwbG9hZCBhc3NldHMgdG8gc3RvcmFnZSAoc2hvcnRjdXQgZm9yIFwiZGV2ZG9jIGFzc2V0cyB1cGxvYWRcIiknKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCcpXG4gIC5vcHRpb24oJy1rLCAtLWFwaS1rZXkgPGtleT4nLCAnQVBJIGtleSBmb3IgYXV0aGVudGljYXRpb24nKVxuICAuYWN0aW9uKHVwbG9hZCk7XG5cbi8vIERvbWFpbiBtYW5hZ2VtZW50IC0gY3VzdG9tIGRvbWFpbnMgKG9uZSBwZXIgcHJvamVjdCwgZnJlZSlcbmNvbnN0IGRvbWFpbkNtZCA9IHByb2dyYW1cbiAgLmNvbW1hbmQoJ2RvbWFpbicpXG4gIC5kZXNjcmlwdGlvbignTWFuYWdlIGN1c3RvbSBkb21haW4gZm9yIHlvdXIgZG9jdW1lbnRhdGlvbicpO1xuXG5kb21haW5DbWRcbiAgLmNvbW1hbmQoJ2FkZCA8Y3VzdG9tLWRvbWFpbj4nKVxuICAuZGVzY3JpcHRpb24oJ0FkZCBhIGN1c3RvbSBkb21haW4gKGUuZy4sIGRvY3MuZXhhbXBsZS5jb20pJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwnKVxuICAub3B0aW9uKCctaywgLS1hcGkta2V5IDxrZXk+JywgJ0FQSSBrZXkgZm9yIGF1dGhlbnRpY2F0aW9uJylcbiAgLmFjdGlvbihkb21haW5BZGQpO1xuXG5kb21haW5DbWRcbiAgLmNvbW1hbmQoJ3N0YXR1cycpXG4gIC5kZXNjcmlwdGlvbignQ2hlY2sgY3VzdG9tIGRvbWFpbiBzdGF0dXMgYW5kIEROUyBjb25maWd1cmF0aW9uJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwnKVxuICAub3B0aW9uKCctaywgLS1hcGkta2V5IDxrZXk+JywgJ0FQSSBrZXkgZm9yIGF1dGhlbnRpY2F0aW9uJylcbiAgLmFjdGlvbihkb21haW5TdGF0dXMpO1xuXG5kb21haW5DbWRcbiAgLmNvbW1hbmQoJ3ZlcmlmeScpXG4gIC5kZXNjcmlwdGlvbignVmVyaWZ5IEROUyBjb25maWd1cmF0aW9uIGZvciB5b3VyIGN1c3RvbSBkb21haW4nKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCcpXG4gIC5vcHRpb24oJy1rLCAtLWFwaS1rZXkgPGtleT4nLCAnQVBJIGtleSBmb3IgYXV0aGVudGljYXRpb24nKVxuICAuYWN0aW9uKGRvbWFpblZlcmlmeSk7XG5cbmRvbWFpbkNtZFxuICAuY29tbWFuZCgncmVtb3ZlIFtjdXN0b20tZG9tYWluXScpXG4gIC5kZXNjcmlwdGlvbignUmVtb3ZlIGN1c3RvbSBkb21haW4gZnJvbSBwcm9qZWN0JylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwnKVxuICAub3B0aW9uKCctaywgLS1hcGkta2V5IDxrZXk+JywgJ0FQSSBrZXkgZm9yIGF1dGhlbnRpY2F0aW9uJylcbiAgLmFjdGlvbihkb21haW5SZW1vdmUpO1xuXG5wcm9ncmFtLnBhcnNlKHByb2Nlc3MuYXJndik7XG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQW9DO0FBQ3BDLDhDQUEyQztBQUMzQywwQ0FBdUM7QUFDdkMsd0NBQXFDO0FBQ3JDLDRDQUF5QztBQUN6Qyw0Q0FBeUM7QUFDekMsNENBQXlDO0FBQ3pDLDhDQUEyQztBQUMzQywwQ0FBMEQ7QUFDMUQsOENBQTJDO0FBQzNDLDhDQUF1RDtBQUN2RCxzQ0FBbUM7QUFDbkMsOENBQXdGO0FBRXhGLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRWxELE1BQU0sT0FBTyxHQUFHLElBQUksbUJBQU8sRUFBRSxDQUFDO0FBRTlCLE9BQU87S0FDSixJQUFJLENBQUMsUUFBUSxDQUFDO0tBQ2QsV0FBVyxDQUFDLHdDQUF3QyxDQUFDO0tBQ3JELE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFaEMsT0FBTztLQUNKLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQztLQUNyQyxXQUFXLENBQUMsd0NBQXdDLENBQUM7S0FDckQsTUFBTSxDQUFDLHVCQUF1QixFQUFFLDJDQUEyQyxDQUFDO0tBQzVFLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSx1Q0FBdUMsQ0FBQztLQUN4RSxNQUFNLENBQUMsNkJBQTZCLEVBQUUsbURBQW1ELENBQUM7S0FDMUYsTUFBTSxDQUFDLFVBQVUsRUFBRSx5QkFBeUIsQ0FBQztLQUM3QyxNQUFNLENBQUMsY0FBYyxFQUFFLDhCQUE4QixDQUFDO0tBQ3RELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxzQ0FBc0MsQ0FBQztLQUNqRSxNQUFNLENBQUMsZUFBTSxDQUFDLENBQUM7QUFFbEIsT0FBTztLQUNKLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDZixXQUFXLENBQUMsNENBQTRDLENBQUM7S0FDekQsTUFBTSxDQUFDLG1CQUFtQixFQUFFLGNBQWMs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QVMsQ0FBQztLQUNwQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsNEJBQTRCLENBQUM7S0FDM0QsTUFBTSxDQUFDLHFCQUFZLENBQUMsQ0FBQztBQUV4QixTQUFTO0tBQ04sT0FBTyxDQUFDLFFBQVEsQ0FBQztLQUNqQixXQUFXLENBQUMsaURBQWlELENBQUM7S0FDOUQsTUFBTSxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQztLQUNwQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsNEJBQTRCLENBQUM7S0FDM0QsTUFBTSxDQUFDLHFCQUFZLENBQUMsQ0FBQztBQUV4QixTQUFTO0tBQ04sT0FBTyxDQUFDLHdCQUF3QixDQUFDO0tBQ2pDLFdBQVcsQ0FBQyxtQ0FBbUMsQ0FBQztLQUNoRCxNQUFNLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO0tBQ3BDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSw0QkFBNEIsQ0FBQztLQUMzRCxNQUFNLENBQUMscUJBQVksQ0FBQyxDQUFDO0FBRXhCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBjcmVhdGUgfSBmcm9tICcuL2NvbW1hbmRzL2NyZWF0ZSc7XG5pbXBvcnQgeyBpbml0IH0gZnJvbSAnLi9jb21tYW5kcy9pbml0JztcbmltcG9ydCB7IGRldiB9IGZyb20gJy4vY29tbWFuZHMvZGV2JztcbmltcG9ydCB7IGJ1aWxkIH0gZnJvbSAnLi9jb21tYW5kcy9idWlsZCc7XG5pbXBvcnQgeyBzdGFydCB9IGZyb20gJy4vY29tbWFuZHMvc3RhcnQnO1xuaW1wb3J0IHsgY2hlY2sgfSBmcm9tICcuL2NvbW1hbmRzL2NoZWNrJztcbmltcG9ydCB7IGRlcGxveSB9IGZyb20gJy4vY29tbWFuZHMvZGVwbG95JztcbmltcG9ydCB7IGxpc3RLZXlzLCByZWdlbmVyYXRlS2V5IH0gZnJvbSAnLi9jb21tYW5kcy9rZXlzJztcbmltcG9ydCB7IHdob2FtaSB9IGZyb20gJy4vY29tbWFuZHMvd2hvYW1pJztcbmltcG9ydCB7IHVwbG9hZCwgbGlzdEFzc2V0cyB9IGZyb20gJy4vY29tbWFuZHMvdXBsb2FkJztcbmltcG9ydCB7IGFpIH0gZnJvbSAnLi9jb21tYW5kcy9haSc7XG5pbXBvcnQgeyBkb21haW5BZGQsIGRvbWFpblN0YXR1cywgZG9tYWluVmVyaWZ5LCBkb21haW5SZW1vdmUgfSBmcm9tICcuL2NvbW1hbmRzL2RvbWFpbic7XG5cbmNvbnN0IHBhY2thZ2VKc29uID0gcmVxdWlyZSgnLi4vLi4vcGFja2FnZS5qc29uJyk7XG5cbmNvbnN0IHByb2dyYW0gPSBuZXcgQ29tbWFuZCgpO1xuXG5wcm9ncmFtXG4gIC5uYW1lKCdkZXZkb2MnKVxuICAuZGVzY3JpcHRpb24oJ0RvY3VtZW50YXRpb24gZnJhbWV3b3JrIGZvciBkZXZlbG9wZXJzJylcbiAgLnZlcnNpb24ocGFja2FnZUpzb24udmVyc2lvbik7XG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoJ2NyZWF0ZSBbcHJvamVjdC1kaXJlY3RvcnldJylcbiAgLmRlc2NyaXB0aW9uKCdDcmVhdGUgYSBuZXcgRGV2RG9jIGRvY3VtZW50YXRpb24gc2l0ZScpXG4gIC5vcHRpb24oJy10LCAtLXRlbXBsYXRlIDx0eXBlPicsICdUZW1wbGF0ZSB0byB1c2UgKGJhc2ljLCBvcGVuYXBpLCBncmFwaHFsKScpXG4gIC5vcHRpb24oJy1kLCAtLWRvYy10eXBlIDx0eXBlPicsICdEb2N1bWVudGF0aW9uIHR5cGUgKHB1YmxpYywgaW50ZXJuYWwpJylcbiAgLm9wdGlvbignLXMsIC0tc3ViZG9tYWluIDxzdWJkb21haW4+JywgJ1N1YmRvbWFpbiBmb3IgeW91ciBkb2NzIChlLmcuLCBteS1kb2NzLmRldmRvYy5zaCknKVxuICAub3B0aW9uKCctLW5vLWdpdCcsICdTa2lwIGdpdCBpbml0aWFsaXphdGlvbicpXG4gIC5vcHRpb24oJy0tbm8taW5zdGFsbCcsICdTa2lwIGluc3RhbGxpbmcgZGVwZW5kZW5jaWVzJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwgKGRlZmF1bHQ6IGh0dHBzOi8vZGV2ZG9jLnNoKScpXG4gIC5hY3Rpb24oY3JlYXRlKTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnaW5pdCcpXG4gIC5kZXNjcmlwdGlvbignSW5pdGlhbGl6ZS9yZWdpc3RlciBwcm9qZWN0IHdpdGggQnJhaW5maXNoJylcbiAgLm9wdGlvbignLXMsIC0tc2x1ZyA8c2x1Zz4nLCAnUHJvamVjdCBzbHVnJylcbiAgLm9wdGlvbignLS1zdWJkb21haW4gPHN1YmRvbWFpbj4nLCAnU3ViZG9tYWluIGZvciB5b3VyIGRvY3MgKGUuZy4sIG15LWRvY3MuZGV2ZG9jLnNoKScpXG4gIC5vcHRpb24oJy1mLCAtLWZvcmNlJywgJ092ZXJ3cml0ZSBleGlzdGluZyAuZGV2ZG9jLmpzb24nKVxuICAub3B0aW9uKCctLWFpIFt0b29sXScsICdTZXQgdXAgQUkgYWdlbnRzIChjbGF1ZGUsIGN1cnNvciwgYm90aCwgb3IganVzdCAtLWFpIHRvIGNob29zZSknKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCAoZGVmYXVsdDogaHR0cHM6Ly9kZXZkb2Muc2gpJylcbiAgLmFjdGlvbihpbml0KTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnZGV2JylcbiAgLmRlc2NyaXB0aW9uKCdTdGFydCBkZXZlbG9wbWVudCBzZXJ2ZXIgd2l0aCBob3QgcmVsb2FkJylcbiAgLm9wdGlvbignLXAsIC0tcG9ydCA8cG9ydD4nLCAnUG9ydCB0byBydW4gdGhlIHNlcnZlciBvbicsICczMzMzJylcbiAgLm9wdGlvbignLUgsIC0taG9zdCA8aG9zdD4nLCAnSG9zdCB0byBiaW5kIHRoZSBzZXJ2ZXIgdG8nLCAnbG9jYWxob3N0JylcbiAgLm9wdGlvbignLW8sIC0tb3BlbicsICdPcGVuIGJyb3dzZXIgYXV0b21hdGljYWxseScsIHRydWUpXG4gIC5vcHRpb24oJy0tbm8tb3BlbicsICdEbyBub3Qgb3BlbiBicm93c2VyIGF1dG9tYXRpY2FsbHknKVxuICAuYWN0aW9uKGRldik7XG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoJ2J1aWxkJylcbiAgLmRlc2NyaXB0aW9uKCdCdWlsZCBkb2N1bWVudGF0aW9uIGZvciBwcm9kdWN0aW9uJylcbiAgLm9wdGlvbignLW8sIC0tb3V0cHV0IDxkaXI+JywgJ091dHB1dCBkaXJlY3RvcnknLCAnZGlzdCcpXG4gIC5hY3Rpb24oYnVpbGQpO1xuXG5wcm9ncmFtXG4gIC5jb21tYW5kKCdzdGFydCcpXG4gIC5kZXNjcmlwdGlvbignU3RhcnQgcHJvZHVjdGlvbiBzZXJ2ZXInKVxuICAub3B0aW9uKCctcCwgLS1wb3J0IDxwb3J0PicsICdQb3J0IHRvIHJ1biB0aGUgc2VydmVyIG9uJywgJzMwMDAnKVxuICAuYWN0aW9uKHN0YXJ0KTtcblxucHJvZ3JhbVxuICAuY29tbWFuZCgnY2hlY2snKVxuICAuZGVzY3JpcHRpb24oJ1ZhbGlkYXRlIGRvY3MuanNvbiBhbmQgTURYIGZpbGVzJylcbiAgLmFjdGlvbihjaGVjayk7XG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoJ2FpJylcbiAgLmRlc2NyaXB0aW9uKCdTZXQgdXAgb3IgdXBkYXRlIEFJIGFnZW50IGNvbmZpZ3VyYXRpb24gKENsYXVkZSBDb2RlIHNraWxscywgQ3Vyc29yIHJ1bGVzKScpXG4gIC5vcHRpb24oJy10LCAtLXRvb2wgPHRvb2w+JywgJ0FJIHRvb2wgdG8gY29uZmlndXJlIChjbGF1ZGUsIGN1cnNvciwgYm90aCknKVxuICAub3B0aW9uKCctLXVwZGF0ZScsICdVcGRhdGUgZXhpc3Rpbmcgc2tpbGxzL3J1bGVzIHRvIGxhdGVzdCB2ZXJzaW9uJylcbiAgLmFjdGlvbihhaSk7XG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoJ2RlcGxveScpXG4gIC5kZXNjcmlwdGlvbignRGVwbG95IGRvY3VtZW50YXRpb24gdG8gRGV2RG9jIHBsYXRmb3JtJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwgKGRlZmF1bHQ6IGh0dHBzOi8vZGV2ZG9jLnNoKScpXG4gIC5vcHRpb24oJy1rLCAtLWFwaS1rZXkgPGtleT4nLCAnQVBJIGtleSBmb3IgYXV0aGVudGljYXRpb24nKVxuICAuYWN0aW9uKGRlcGxveSk7XG5cbi8vIEtleXMgbWFuYWdlbWVudFxuY29uc3Qga2V5c0NtZCA9IHByb2dyYW1cbiAgLmNvbW1hbmQoJ2tleXMnKVxuICAuZGVzY3JpcHRpb24oJ01hbmFnZSBBUEkga2V5cyBmb3IgeW91ciBwcm9qZWN0Jyk7XG5cbmtleXNDbWRcbiAgLmNvbW1hbmQoJ2xpc3QnKVxuICAuZGVzY3JpcHRpb24oJ1Nob3cgY3VycmVudCBBUEkga2V5IGluZm8nKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCcpXG4gIC5hY3Rpb24obGlzdEtleXMpO1xuXG5rZXlzQ21kXG4gIC5jb21tYW5kKCdyZWdlbmVyYXRlJylcbiAgLmRlc2NyaXB0aW9uKCdHZW5lcmF0ZSBhIG5ldyBBUEkga2V5IChpbnZhbGlkYXRlcyB0aGUgb2xkIG9uZSknKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCcpXG4gIC5hY3Rpb24ocmVnZW5lcmF0ZUtleSk7XG5cbnByb2dyYW1cbiAgLmNvbW1hbmQoJ3dob2FtaScpXG4gIC5kZXNjcmlwdGlvbignU2hvdyBjdXJyZW50IHByb2plY3QgaW5mb3JtYXRpb24nKVxuICAub3B0aW9uKCctdSwgLS11cmwgPHVybD4nLCAnQVBJIFVSTCcpXG4gIC5hY3Rpb24od2hvYW1pKTtcblxuLy8gQXNzZXRzIG1hbmFnZW1lbnRcbmNvbnN0IGFzc2V0c0NtZCA9IHByb2dyYW1cbiAgLmNvbW1hbmQoJ2Fzc2V0cycpXG4gIC5kZXNjcmlwdGlvbignTWFuYWdlIHByb2plY3QgYXNzZXRzIChpbWFnZXMsIGZpbGVzKScpO1xuXG5hc3NldHNDbWRcbiAgLmNvbW1hbmQoJ3VwbG9hZCA8ZmlsZXMuLi4+JylcbiAgLmRlc2NyaXB0aW9uKCdVcGxvYWQgYXNzZXRzIHRvIHN0b3JhZ2UgKG1heCAyNU1CIHBlciBmaWxlKScpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLm9wdGlvbignLWssIC0tYXBpLWtleSA8a2V5PicsICdBUEkga2V5IGZvciBhdXRoZW50aWNhdGlvbicpXG4gIC5hY3Rpb24odXBsb2FkKTtcblxuYXNzZXRzQ21kXG4gIC5jb21tYW5kKCdsaXN0JylcbiAgLmRlc2NyaXB0aW9uKCdMaXN0IHVwbG9hZGVkIGFzc2V0cycpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLm9wdGlvbignLWssIC0tYXBpLWtleSA8a2V5PicsICdBUEkga2V5IGZvciBhdXRoZW50aWNhdGlvbicpXG4gIC5hY3Rpb24obGlzdEFzc2V0cyk7XG5cbi8vIFNob3J0Y3V0IGZvciB1cGxvYWRcbnByb2dyYW1cbiAgLmNvbW1hbmQoJ3VwbG9hZCA8ZmlsZXMuLi4+JylcbiAgLmRlc2NyaXB0aW9uKCdVcGxvYWQgYXNzZXRzIHRvIHN0b3JhZ2UgKHNob3J0Y3V0IGZvciBcImRldmRvYyBhc3NldHMgdXBsb2FkXCIpJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwnKVxuICAub3B0aW9uKCctaywgLS1hcGkta2V5IDxrZXk+JywgJ0FQSSBrZXkgZm9yIGF1dGhlbnRpY2F0aW9uJylcbiAgLmFjdGlvbih1cGxvYWQpO1xuXG4vLyBEb21haW4gbWFuYWdlbWVudCAtIGN1c3RvbSBkb21haW5zIChvbmUgcGVyIHByb2plY3QsIGZyZWUpXG5jb25zdCBkb21haW5DbWQgPSBwcm9ncmFtXG4gIC5jb21tYW5kKCdkb21haW4nKVxuICAuZGVzY3JpcHRpb24oJ01hbmFnZSBjdXN0b20gZG9tYWluIGZvciB5b3VyIGRvY3VtZW50YXRpb24nKTtcblxuZG9tYWluQ21kXG4gIC5jb21tYW5kKCdhZGQgPGN1c3RvbS1kb21haW4+JylcbiAgLmRlc2NyaXB0aW9uKCdBZGQgYSBjdXN0b20gZG9tYWluIChlLmcuLCBkb2NzLmV4YW1wbGUuY29tKScpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLm9wdGlvbignLWssIC0tYXBpLWtleSA8a2V5PicsICdBUEkga2V5IGZvciBhdXRoZW50aWNhdGlvbicpXG4gIC5hY3Rpb24oZG9tYWluQWRkKTtcblxuZG9tYWluQ21kXG4gIC5jb21tYW5kKCdzdGF0dXMnKVxuICAuZGVzY3JpcHRpb24oJ0NoZWNrIGN1c3RvbSBkb21haW4gc3RhdHVzIGFuZCBETlMgY29uZmlndXJhdGlvbicpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLm9wdGlvbignLWssIC0tYXBpLWtleSA8a2V5PicsICdBUEkga2V5IGZvciBhdXRoZW50aWNhdGlvbicpXG4gIC5hY3Rpb24oZG9tYWluU3RhdHVzKTtcblxuZG9tYWluQ21kXG4gIC5jb21tYW5kKCd2ZXJpZnknKVxuICAuZGVzY3JpcHRpb24oJ1ZlcmlmeSBETlMgY29uZmlndXJhdGlvbiBmb3IgeW91ciBjdXN0b20gZG9tYWluJylcbiAgLm9wdGlvbignLXUsIC0tdXJsIDx1cmw+JywgJ0FQSSBVUkwnKVxuICAub3B0aW9uKCctaywgLS1hcGkta2V5IDxrZXk+JywgJ0FQSSBrZXkgZm9yIGF1dGhlbnRpY2F0aW9uJylcbiAgLmFjdGlvbihkb21haW5WZXJpZnkpO1xuXG5kb21haW5DbWRcbiAgLmNvbW1hbmQoJ3JlbW92ZSBbY3VzdG9tLWRvbWFpbl0nKVxuICAuZGVzY3JpcHRpb24oJ1JlbW92ZSBjdXN0b20gZG9tYWluIGZyb20gcHJvamVjdCcpXG4gIC5vcHRpb24oJy11LCAtLXVybCA8dXJsPicsICdBUEkgVVJMJylcbiAgLm9wdGlvbignLWssIC0tYXBpLWtleSA8a2V5PicsICdBUEkga2V5IGZvciBhdXRoZW50aWNhdGlvbicpXG4gIC5hY3Rpb24oZG9tYWluUmVtb3ZlKTtcblxucHJvZ3JhbS5wYXJzZShwcm9jZXNzLmFyZ3YpO1xuIl19
|
package/package.json
CHANGED