@pipeline-builder/pipeline-manager 4.4.16 → 4.4.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/ai.d.ts.map +1 -1
- package/dist/agent/ai.js +1 -1
- package/dist/agent/bootstrap.d.ts.map +1 -1
- package/dist/agent/bootstrap.js +1 -1
- package/dist/agent/env-file.d.ts.map +1 -1
- package/dist/agent/env-file.js +1 -1
- package/dist/agent/executor.d.ts.map +1 -1
- package/dist/agent/executor.js +1 -1
- package/dist/agent/health.d.ts.map +1 -1
- package/dist/agent/health.js +1 -1
- package/dist/agent/ports.d.ts.map +1 -1
- package/dist/agent/ports.js +1 -1
- package/dist/agent/post-steps.d.ts.map +1 -1
- package/dist/agent/post-steps.js +1 -1
- package/dist/agent/prereqs.d.ts.map +1 -1
- package/dist/agent/prereqs.js +1 -1
- package/dist/agent/targets.d.ts.map +1 -1
- package/dist/agent/targets.js +1 -1
- package/dist/agent/tools.d.ts.map +1 -1
- package/dist/agent/tools.js +1 -1
- package/dist/agent/troubleshoot.d.ts.map +1 -1
- package/dist/agent/troubleshoot.js +1 -1
- package/dist/boilerplate.d.ts.map +1 -1
- package/dist/boilerplate.js +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/commands/audit-stacks.d.ts.map +1 -1
- package/dist/commands/audit-stacks.js +1 -1
- package/dist/commands/audit-tokens.d.ts.map +1 -1
- package/dist/commands/audit-tokens.js +1 -1
- package/dist/commands/bootstrap.d.ts.map +1 -1
- package/dist/commands/bootstrap.js +1 -1
- package/dist/commands/create-pat.d.ts.map +1 -1
- package/dist/commands/create-pat.js +1 -1
- package/dist/commands/create-pipeline.d.ts.map +1 -1
- package/dist/commands/create-pipeline.js +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +1 -1
- package/dist/commands/entity-get.d.ts.map +1 -1
- package/dist/commands/entity-get.js +1 -1
- package/dist/commands/entity-list.d.ts.map +1 -1
- package/dist/commands/entity-list.js +1 -1
- package/dist/commands/get-pipeline.d.ts.map +1 -1
- package/dist/commands/get-pipeline.js +1 -1
- package/dist/commands/get-plugin.d.ts.map +1 -1
- package/dist/commands/get-plugin.js +1 -1
- package/dist/commands/instantiate-template.d.ts.map +1 -1
- package/dist/commands/instantiate-template.js +1 -1
- package/dist/commands/list-pipelines.d.ts.map +1 -1
- package/dist/commands/list-pipelines.js +1 -1
- package/dist/commands/list-plugins.d.ts.map +1 -1
- package/dist/commands/list-plugins.js +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +1 -1
- package/dist/commands/new-plugin.d.ts.map +1 -1
- package/dist/commands/new-plugin.js +1 -1
- package/dist/commands/org-export.d.ts.map +1 -1
- package/dist/commands/org-export.js +1 -1
- package/dist/commands/plugin-lifecycle.d.ts.map +1 -1
- package/dist/commands/plugin-lifecycle.js +1 -1
- package/dist/commands/provision-steps.d.ts.map +1 -1
- package/dist/commands/provision-steps.js +1 -1
- package/dist/commands/provision.d.ts.map +1 -1
- package/dist/commands/provision.js +1 -1
- package/dist/commands/publish-plugin.d.ts.map +1 -1
- package/dist/commands/publish-plugin.js +1 -1
- package/dist/commands/redrive-events.d.ts.map +1 -1
- package/dist/commands/redrive-events.js +1 -1
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +1 -1
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +1 -1
- package/dist/commands/security-report.d.ts.map +1 -1
- package/dist/commands/security-report.js +1 -1
- package/dist/commands/setup-events.d.ts.map +1 -1
- package/dist/commands/setup-events.js +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/store-token.d.ts.map +1 -1
- package/dist/commands/store-token.js +1 -1
- package/dist/commands/synth.d.ts.map +1 -1
- package/dist/commands/synth.js +1 -1
- package/dist/commands/test-plugin.d.ts.map +1 -1
- package/dist/commands/test-plugin.js +1 -1
- package/dist/commands/upload-plugin.d.ts.map +1 -1
- package/dist/commands/upload-plugin.js +1 -1
- package/dist/commands/validate-plugin.d.ts.map +1 -1
- package/dist/commands/validate-plugin.js +1 -1
- package/dist/commands/validate-templates.d.ts.map +1 -1
- package/dist/commands/validate-templates.js +1 -1
- package/dist/commands/verify-plugins.d.ts.map +1 -1
- package/dist/commands/verify-plugins.js +1 -1
- package/dist/commands/version.d.ts.map +1 -1
- package/dist/commands/version.js +1 -1
- package/dist/config/cli.constants.d.ts.map +1 -1
- package/dist/config/cli.constants.js +1 -1
- package/dist/config/plugin-catalog-assets.d.ts.map +1 -1
- package/dist/config/plugin-catalog-assets.js +1 -1
- package/dist/lambda/token-renew-handler.d.ts.map +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +1 -1
- package/dist/types/error.d.ts.map +1 -1
- package/dist/types/error.js +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/pipeline-template.d.ts.map +1 -1
- package/dist/types/pipeline-template.js +1 -1
- package/dist/types/pipeline.d.ts.map +1 -1
- package/dist/types/pipeline.js +1 -1
- package/dist/types/plugin.d.ts.map +1 -1
- package/dist/types/plugin.js +1 -1
- package/dist/utils/api-client.d.ts.map +1 -1
- package/dist/utils/api-client.js +1 -1
- package/dist/utils/audit-log.d.ts.map +1 -1
- package/dist/utils/audit-log.js +1 -1
- package/dist/utils/auth-guard.d.ts.map +1 -1
- package/dist/utils/auth-guard.js +1 -1
- package/dist/utils/auth-utils.d.ts.map +1 -1
- package/dist/utils/auth-utils.js +1 -1
- package/dist/utils/aws-env.d.ts.map +1 -1
- package/dist/utils/aws-env.js +1 -1
- package/dist/utils/aws-secrets.d.ts.map +1 -1
- package/dist/utils/aws-secrets.js +1 -1
- package/dist/utils/banner.d.ts.map +1 -1
- package/dist/utils/banner.js +1 -1
- package/dist/utils/catalog-prompt.d.ts.map +1 -1
- package/dist/utils/catalog-prompt.js +1 -1
- package/dist/utils/cdk-utils.d.ts.map +1 -1
- package/dist/utils/cdk-utils.js +1 -1
- package/dist/utils/command-utils.d.ts.map +1 -1
- package/dist/utils/command-utils.js +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +1 -1
- package/dist/utils/credential-store.d.ts.map +1 -1
- package/dist/utils/credential-store.js +1 -1
- package/dist/utils/cron.d.ts.map +1 -1
- package/dist/utils/cron.js +1 -1
- package/dist/utils/deploy-runner.d.ts.map +1 -1
- package/dist/utils/deploy-runner.js +1 -1
- package/dist/utils/device-auth.d.ts.map +1 -1
- package/dist/utils/device-auth.js +1 -1
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +1 -1
- package/dist/utils/list-command-utils.d.ts.map +1 -1
- package/dist/utils/list-command-utils.js +1 -1
- package/dist/utils/output-utils.d.ts.map +1 -1
- package/dist/utils/output-utils.js +1 -1
- package/dist/utils/pipeline-config.d.ts.map +1 -1
- package/dist/utils/pipeline-config.js +1 -1
- package/dist/utils/platform-secret.d.ts.map +1 -1
- package/dist/utils/platform-secret.js +1 -1
- package/dist/utils/plugin-docker.d.ts.map +1 -1
- package/dist/utils/plugin-docker.js +1 -1
- package/dist/utils/plugin-package.d.ts.map +1 -1
- package/dist/utils/plugin-package.js +1 -1
- package/dist/utils/plugin-resolver.d.ts.map +1 -1
- package/dist/utils/plugin-resolver.js +1 -1
- package/dist/utils/plugin-scan.d.ts.map +1 -1
- package/dist/utils/plugin-scan.js +1 -1
- package/dist/utils/plugin-zip.d.ts.map +1 -1
- package/dist/utils/plugin-zip.js +1 -1
- package/dist/utils/preflight.d.ts.map +1 -1
- package/dist/utils/preflight.js +1 -1
- package/dist/utils/registration-client.d.ts.map +1 -1
- package/dist/utils/registration-client.js +1 -1
- package/dist/utils/registry.d.ts.map +1 -1
- package/dist/utils/registry.js +1 -1
- package/dist/utils/request-context.d.ts.map +1 -1
- package/dist/utils/request-context.js +1 -1
- package/dist/utils/response-utils.d.ts.map +1 -1
- package/dist/utils/response-utils.js +1 -1
- package/dist/utils/service-account.d.ts.map +1 -1
- package/dist/utils/service-account.js +1 -1
- package/dist/utils/tls.d.ts.map +1 -1
- package/dist/utils/tls.js +1 -1
- package/package.json +9 -9
|
@@ -179,4 +179,4 @@ export function setupEvents(program) {
|
|
|
179
179
|
}
|
|
180
180
|
});
|
|
181
181
|
}
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3NldHVwLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEUsMERBQTBEO0FBQzFE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LENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgZXhlY0ZpbGVTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDbG91ZEZvcm1hdGlvbkNsaWVudCwgRGVzY3JpYmVTdGFja3NDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IExhbWJkYUNsaWVudCwgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBFVkVOVFNfU1RBQ0tfTkFNRSB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IGF1ZGl0TG9nIH0gZnJvbSAnLi4vdXRpbHMvYXVkaXQtbG9nLmpzJztcbmltcG9ydCB7IGFwcGx5QXdzUHJvZmlsZSwgcmVzb2x2ZUF3c1JlZ2lvbiB9IGZyb20gJy4uL3V0aWxzL2F3cy1lbnYuanMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCB3aXRoUHJvZmlsZU9wdGlvbiwgd2l0aFJlZ2lvbk9wdGlvbiB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IHJlc29sdmVQbGF0Zm9ybVNlY3JldE5hbWUgfSBmcm9tICcuLi91dGlscy9wbGF0Zm9ybS1zZWNyZXQuanMnO1xuXG4vLyBFU00gaGFzIG5vIF9fZGlybmFtZTsgZGVyaXZlIGl0IGZyb20gdGhpcyBtb2R1bGUncyBVUkwuXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcblxuY29uc3QgU1RBQ0tfTkFNRSA9IEVWRU5UU19TVEFDS19OQU1FO1xuLy8gRXhpc3RpbmcgQ0ZOLW1hbmFnZWQgTGFtYmRhIGZ1bmN0aW9uIG5hbWUg4oCUIGRvIE5PVCByZW5hbWUgd2l0aG91dCBhIG1pZ3JhdGlvbiBwbGFuXG5jb25zdCBMQU1CREFfTkFNRSA9ICdwaXBlbGluZS1idWlsZGVyLWV2ZW50LWluZ2VzdGlvbic7XG5jb25zdCBQQUNLQUdFX05BTUUgPSAnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZXZlbnRzJztcblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGBzZXR1cC1ldmVudHNgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogRGVwbG95cyBFdmVudEJyaWRnZSDihpIgU1FTIOKGkiBMYW1iZGEgaW5mcmFzdHJ1Y3R1cmUgZm9yIHBpcGVsaW5lIHJlcG9ydGluZy5cbiAqXG4gKiAxLiBEZXBsb3lzIENsb3VkRm9ybWF0aW9uIHN0YWNrIChydWxlICsgcXVldWUgKyBMYW1iZGEgc2hlbGwgKyBJQU0pXG4gKiAyLiBEb3dubG9hZHMgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZXZlbnRzIGZyb20gbnBtIHJlZ2lzdHJ5XG4gKiAzLiBVcGxvYWRzIGhhbmRsZXIgY29kZSBkaXJlY3RseSB0byBMYW1iZGEgKG5vIFMzIG5lZWRlZClcbiAqXG4gKiBVc2VzIFBMQVRGT1JNX0JBU0VfVVJMIGZyb20gZW52aXJvbm1lbnQgKHNhbWUgYXMgYWxsIG90aGVyIGNvbW1hbmRzKS5cbiAqIElkZW1wb3RlbnQg4oCUIHJ1bm5pbmcgYWdhaW4gdXBkYXRlcyB0aGUgc3RhY2sgYW5kIGNvZGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cEV2ZW50cyhwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHdpdGhQcm9maWxlT3B0aW9uKFxuICAgIHdpdGhSZWdpb25PcHRpb24ocHJvZ3JhbVxuICAgICAgLmNvbW1hbmQoJ3NldHVwLWV2ZW50cycpXG4gICAgICAuZGVzY3JpcHRpb24oJ0RlcGxveSBFdmVudEJyaWRnZSBldmVudCBpbmdlc3Rpb24gaW5mcmFzdHJ1Y3R1cmUgZm9yIHBpcGVsaW5lIHJlcG9ydGluZycpXG4gICAgICAub3B0aW9uKCctLXBhY2thZ2UtdmVyc2lvbiA8dmVyc2lvbj4nLCAncGlwZWxpbmUtZXZlbnRzIHBhY2thZ2UgdmVyc2lvbiAoZGVmYXVsdDogbGF0ZXN0KScpXG4gICAgICAub3B0aW9uKCctdSwgLS1pZGVudGlmaWVyIDxpZGVudGlmaWVyPicsICdVc2VybmFtZSBvciBlbWFpbCB0byBtaW50IGEgdG9rZW4gd2hlbiBQTEFURk9STV9UT0tFTiBpcyB1bnNldCAoZm9yIGRlcml2aW5nIHRoZSBzZWNyZXQgbmFtZSknKVxuICAgICAgLm9wdGlvbignLXAsIC0tcGFzc3dvcmQgPHBhc3N3b3JkPicsICdMb2dpbiBwYXNzd29yZCAodXNlZCB3aXRoIC0taWRlbnRpZmllciknKSksXG4gIClcbiAgICAub3B0aW9uKCctLXNjb3BlZC1pbmdlc3QnLCAnUG9pbnQgdGhlIGluZ2VzdGlvbiBMYW1iZGEgYXQgdGhlIGRlZGljYXRlZCBsZWFzdC1wcml2aWxlZ2UgcmVwb3J0aW5nLWluZ2VzdCBzZWNyZXQg4oCUIHRoZSBzZXJ2aWNlLWFjY291bnQga2V5IHByb3Zpc2lvbmVkIGJ5IGBzdG9yZS10b2tlbiAtLXNjb3BlIHJlcG9ydGluZzppbmdlc3QgLS1zY2hlZHVsZWAuIFRoZSByZXBvcnRpbmcgc2VydmljZSBhbHdheXMgcmVxdWlyZXMgdGhlIGByZXBvcnRpbmc6aW5nZXN0YCBzY29wZSBvbiBQT1NUIC9yZXBvcnRzL2V2ZW50cywgc28gd2l0aG91dCB0aGF0IHNlY3JldCB0aGUgTGFtYmRhIDQwM3MuJylcbiAgICAub3B0aW9uKCctLXdpdGgtZG9yYScsICdFbmFibGUgRE9SQSBsZWFkLXRpbWUgZW5yaWNobWVudCBpbiB0aGUgaW5nZXN0aW9uIExhbWJkYTogaXQgcmVzb2x2ZXMgY29tbWl0IHRpbWVzdGFtcHMgaW4tYWNjb3VudCAoQ29kZUNvbW1pdCAvIHRoZSBvcmcgZ2l0aHViLXRva2VuIHNlY3JldCAvIENvZGVDb25uZWN0aW9ucykuIE9mZiBieSBkZWZhdWx0IOKAlCBleHRyYSBTQ00vc2VjcmV0IGNvc3QuIEVuYWJsZSBvbmx5IGZvciBvcmdzIHdpdGggdGhlIGFkdmFuY2VkX3JlcG9ydGluZyBhZGQtb247IHJlLXJ1biBzZXR1cC1ldmVudHMgdG8gdG9nZ2xlIGFmdGVyIHB1cmNoYXNlLicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1NldHVwIEV2ZW50IEluZ2VzdGlvbicpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWdpb24gPSByZXNvbHZlQXdzUmVnaW9uKG9wdGlvbnMucmVnaW9uKTtcbiAgICAgICAgLy8gSG9ub3IgLS1wcm9maWxlIGZvciB0aGUgU0RLIExhbWJkYS9DbG91ZEZvcm1hdGlvbiBjbGllbnRzIGJlbG93LiBUaGVcbiAgICAgICAgLy8gYGNsb3VkZm9ybWF0aW9uIGRlcGxveWAgQ0xJIGNhbGwgYWxyZWFkeSBnZXRzIC0tcHJvZmlsZTsgd2l0aG91dCB0aGlzIHRoZVxuICAgICAgICAvLyBTREsgY2xpZW50cyBoaXQgdGhlIERFRkFVTFQgYWNjb3VudCDihpIgZGVwbG95IGFuZCBjb2RlLXVwZGF0ZS9vdXRwdXRzXG4gICAgICAgIC8vIHRhcmdldCBkaWZmZXJlbnQgYWNjb3VudHMgKHNpbGVudCBzcGxpdC1icmFpbikuXG4gICAgICAgIGFwcGx5QXdzUHJvZmlsZShvcHRpb25zLnByb2ZpbGUpO1xuXG4gICAgICAgIGNvbnN0IHBsYXRmb3JtVXJsID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkw7XG4gICAgICAgIGlmICghcGxhdGZvcm1VcmwpIHtcbiAgICAgICAgICBwcmludEVycm9yKCdQTEFURk9STV9CQVNFX1VSTCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyByZXF1aXJlZCcpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUExBVEZPUk1fQkFTRV9VUkwgbm90IHNldCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVyaXZlIHRoZSBzZWNyZXQgcGF0aCBmcm9tIHRoZSBwbGF0Zm9ybSB0b2tlbiAodGhlIG9uZSBpbml0LXBsYXRmb3JtLnNoXG4gICAgICAgIC8vIG1pbnRlZCkgd2hlbiBQTEFURk9STV9TRUNSRVRfTkFNRSBpc24ndCBzZXQg4oCUIG1hdGNoaW5nIHN0b3JlLXRva2VuLCB3aGljaFxuICAgICAgICAvLyBXUk9URSB0aGUgc2VjcmV0IGF0IHRoZSBzYW1lIGRlcml2ZWQgcGF0aC4gTG9ncyBpbiB3aXRoXG4gICAgICAgIC8vIC0tZW1haWwvLS1wYXNzd29yZCBvciBQTEFURk9STV9JREVOVElGSUVSL1BMQVRGT1JNX1BBU1NXT1JEIGlmIG5vIHRva2VuIHlldC5cbiAgICAgICAgLy8gV2l0aCAtLXNjb3BlZC1pbmdlc3QsIHBvaW50IGF0IHRoZSBkZWRpY2F0ZWQgcmVwb3J0aW5nLWluZ2VzdCBzZWNyZXQg4oCUXG4gICAgICAgIC8vIGEgc2VydmljZS1hY2NvdW50IGtleSBzY29wZWQgdG8gZXhhY3RseSBgcmVwb3J0aW5nOmluZ2VzdGAgYW5kIG5vdGhpbmdcbiAgICAgICAgLy8gZWxzZSDigJQgaW5zdGVhZCBvZiB0aGUgb3JnJ3MgZnVsbC1wcml2aWxlZ2UgcGxhdGZvcm0gY3JlZGVudGlhbC4gUHJvdmlzaW9uXG4gICAgICAgIC8vIGl0IHdpdGggYHN0b3JlLXRva2VuIC0tc2NvcGUgcmVwb3J0aW5nOmluZ2VzdGAuXG4gICAgICAgIGxldCBzZWNyZXROYW1lID0gYXdhaXQgcmVzb2x2ZVBsYXRmb3JtU2VjcmV0TmFtZShvcHRpb25zKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2NvcGVkSW5nZXN0KSB7XG4gICAgICAgICAgc2VjcmV0TmFtZSA9IHNlY3JldE5hbWUucmVwbGFjZSgvXFwvcGxhdGZvcm0kLywgJy9yZXBvcnRpbmctaW5nZXN0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWNvcmRlZCBiZWZvcmUgdGhlIGRlcGxveSAoYXMgc3RvcmUtdG9rZW4gZG9lcyBiZWZvcmUgaXRzIHdyaXRlKTogdGhlXG4gICAgICAgIC8vIG9wZXJhdG9yJ3MgaW50ZW50IHRvIHJlcG9pbnQgaW5nZXN0aW9uIGF0IGEgc2VjcmV0IGlzIHRoZSBzZW5zaXRpdmUgcGFydC5cbiAgICAgICAgYXVkaXRMb2coJ3NldHVwLWV2ZW50cycsIHtcbiAgICAgICAgICBleGVjdXRpb25JZCxcbiAgICAgICAgICBzdGFjazogU1RBQ0tfTkFNRSxcbiAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgc2VjcmV0TmFtZSxcbiAgICAgICAgICBzY29wZWRJbmdlc3Q6IEJvb2xlYW4ob3B0aW9ucy5zY29wZWRJbmdlc3QpLFxuICAgICAgICAgIGRvcmE6IEJvb2xlYW4ob3B0aW9ucy53aXRoRG9yYSksXG4gICAgICAgICAgcGFja2FnZVZlcnNpb246IG9wdGlvbnMucGFja2FnZVZlcnNpb24gPz8gJ2xhdGVzdCcsXG4gICAgICAgICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgICAgICB9KTtcblxuICAgICAgICBwcmludEluZm8oJ1BhcmFtZXRlcnMnLCB7XG4gICAgICAgICAgc3RhY2s6IFNUQUNLX05BTUUsXG4gICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgIHBsYXRmb3JtVXJsLFxuICAgICAgICAgIHNlY3JldE5hbWUsXG4gICAgICAgICAgcGFja2FnZVZlcnNpb246IG9wdGlvbnMucGFja2FnZVZlcnNpb24gfHwgJ2xhdGVzdCcsXG4gICAgICAgICAgZG9yYTogb3B0aW9ucy53aXRoRG9yYSA/ICdlbmFibGVkIChjb21taXQgZW5yaWNobWVudCknIDogJ2Rpc2FibGVkJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3RlcCAxOiBEZXBsb3kgQ2xvdWRGb3JtYXRpb24gKGluZnJhIG9ubHkg4oCUIExhbWJkYSBnZXRzIHBsYWNlaG9sZGVyIGNvZGUpXG4gICAgICAgIHByaW50U2VjdGlvbignRGVwbG95IEluZnJhc3RydWN0dXJlJyk7XG5cbiAgICAgICAgY29uc3QgdGVtcGxhdGVQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL3RlbXBsYXRlcy9ldmVudHMtc3RhY2suanNvbicpO1xuXG4gICAgICAgIGNvbnN0IGNmbkFyZ3MgPSBbXG4gICAgICAgICAgJ2Nsb3VkZm9ybWF0aW9uJywgJ2RlcGxveScsXG4gICAgICAgICAgJy0tc3RhY2stbmFtZScsIFNUQUNLX05BTUUsXG4gICAgICAgICAgJy0tdGVtcGxhdGUtZmlsZScsIHRlbXBsYXRlUGF0aCxcbiAgICAgICAgICAnLS1wYXJhbWV0ZXItb3ZlcnJpZGVzJyxcbiAgICAgICAgICBgUGxhdGZvcm1CYXNlVXJsPSR7cGxhdGZvcm1Vcmx9YCxcbiAgICAgICAgICBgUGxhdGZvcm1TZWNyZXROYW1lPSR7c2VjcmV0TmFtZX1gLFxuICAgICAgICAgIGBEb3JhRW5hYmxlZD0ke29wdGlvbnMud2l0aERvcmEgPyAndHJ1ZScgOiAnZmFsc2UnfWAsXG4gICAgICAgICAgJy0tY2FwYWJpbGl0aWVzJywgJ0NBUEFCSUxJVFlfTkFNRURfSUFNJyxcbiAgICAgICAgICAnLS1uby1mYWlsLW9uLWVtcHR5LWNoYW5nZXNldCcsXG4gICAgICAgICAgJy0tcmVnaW9uJywgcmVnaW9uLFxuICAgICAgICBdO1xuICAgICAgICBpZiAob3B0aW9ucy5wcm9maWxlKSBjZm5BcmdzLnB1c2goJy0tcHJvZmlsZScsIG9wdGlvbnMucHJvZmlsZSk7XG5cbiAgICAgICAgZXhlY0ZpbGVTeW5jKCdhd3MnLCBjZm5BcmdzLCB7IHN0ZGlvOiAnaW5oZXJpdCcgfSk7XG5cbiAgICAgICAgcHJpbnRTdWNjZXNzKCdJbmZyYXN0cnVjdHVyZSBkZXBsb3llZCcpO1xuXG4gICAgICAgIC8vIFN0ZXAgMjogRG93bmxvYWQgaGFuZGxlciBmcm9tIHJlZ2lzdHJ5IGFuZCB1cGxvYWQgdG8gTGFtYmRhXG4gICAgICAgIHByaW50U2VjdGlvbignRGVwbG95IExhbWJkYSBDb2RlJyk7XG5cbiAgICAgICAgY29uc3QgdG1wRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnZXZlbnQtaW5nZXN0aW9uLScpKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHZlcnNpb25TcGVjID0gb3B0aW9ucy5wYWNrYWdlVmVyc2lvbiA/IGAke1BBQ0tBR0VfTkFNRX1AJHtvcHRpb25zLnBhY2thZ2VWZXJzaW9ufWAgOiBQQUNLQUdFX05BTUU7XG4gICAgICAgICAgcHJpbnRJbmZvKCdJbnN0YWxsaW5nIGZyb20gcmVnaXN0cnknLCB7IHBhY2thZ2U6IHZlcnNpb25TcGVjIH0pO1xuXG4gICAgICAgICAgLy8gSXNvbGF0ZSB0aGUgbnBtIGNhY2hlIGluc2lkZSB0aGUgdGVtcCBkaXIgc28gdGhlIGRlcGxveSBuZXZlciBkZXBlbmRzIG9uXG4gICAgICAgICAgLy8gKG9yIHRyaXBzIG92ZXIpIGEgbWlzY29uZmlndXJlZCBzaGFyZWQgfi8ubnBtIGNhY2hlIOKAlCBlLmcuIEVBQ0NFUy9FRVhJU1RcbiAgICAgICAgICAvLyBsZWZ0IGJlaGluZCBieSBhIHByaW9yIGBzdWRvIG5wbWAgcnVuLiBNaXJyb3JzIHRoZSB0b2tlbi1yZW5ldyBoYW5kbGVyLlxuICAgICAgICAgIGV4ZWNGaWxlU3luYygnbnBtJywgWydpbnN0YWxsJywgJy0tcHJlZml4JywgdG1wRGlyLCAnLS1uby1hdWRpdCcsICctLW5vLWZ1bmQnLCB2ZXJzaW9uU3BlY10sIHtcbiAgICAgICAgICAgIHN0ZGlvOiAncGlwZScsXG4gICAgICAgICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYsIG5wbV9jb25maWdfY2FjaGU6IHBhdGguam9pbih0bXBEaXIsICcubnBtLWNhY2hlJykgfSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IGhhbmRsZXJTcmMgPSBwYXRoLmpvaW4odG1wRGlyLCAnbm9kZV9tb2R1bGVzJywgUEFDS0FHRV9OQU1FLCAnbGliJywgJ2luZGV4LmpzJyk7XG4gICAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGhhbmRsZXJTcmMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhhbmRsZXIgbm90IGZvdW5kIGF0ICR7aGFuZGxlclNyY30uIEVuc3VyZSB0aGUgcGFja2FnZSBpcyBwdWJsaXNoZWQuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gR2V0IHZlcnNpb24gZnJvbSBpbnN0YWxsZWQgcGFja2FnZVxuICAgICAgICAgIGNvbnN0IHBrZ0pzb25QYXRoID0gcGF0aC5qb2luKHRtcERpciwgJ25vZGVfbW9kdWxlcycsIFBBQ0tBR0VfTkFNRSwgJ3BhY2thZ2UuanNvbicpO1xuICAgICAgICAgIGNvbnN0IHBrZ0pzb24gPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwa2dKc29uUGF0aCwgJ3V0Zi04JykpO1xuICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSBwa2dKc29uLnZlcnNpb24gfHwgJ3Vua25vd24nO1xuXG4gICAgICAgICAgLy8gcGlwZWxpbmUtZXZlbnRzIGlzIEVTTSAoXCJ0eXBlXCI6XCJtb2R1bGVcIiksIHNvIHRoZSBMYW1iZGEgZW50cnkgbXVzdCBiZVxuICAgICAgICAgIC8vIGluZGV4Lm1qcy4gQSBwbGFpbiBpbmRleC5qcyB3aXRoIG5vIHBhY2thZ2UuanNvbiBpbiB0aGUgemlwIGlzIGxvYWRlZCBhc1xuICAgICAgICAgIC8vIENvbW1vbkpTIGJ5IG5vZGVqczI2LnggYW5kIGZhaWxzIGF0IGluaXQgd2l0aCBcIkNhbm5vdCB1c2UgaW1wb3J0IHN0YXRlbWVudFxuICAgICAgICAgIC8vIG91dHNpZGUgYSBtb2R1bGVcIi4gVGhlIC5tanMgZXh0ZW5zaW9uIGZvcmNlcyBFU007IEhhbmRsZXIgc3RheXNcbiAgICAgICAgICAvLyBpbmRleC5oYW5kbGVyICh0aGUgcnVudGltZSByZXNvbHZlcyB0aGUgLm1qcyBmaWxlKS4gbGliL2luZGV4LmpzIGlzIGFcbiAgICAgICAgICAvLyBzZWxmLWNvbnRhaW5lZCBidW5kbGUgKG5vIHJlbGF0aXZlIGltcG9ydHMpLCBzbyB0aGUgc2luZ2xlIGZpbGUgc3VmZmljZXMuXG4gICAgICAgICAgY29uc3QgbWpzUGF0aCA9IHBhdGguam9pbih0bXBEaXIsICdpbmRleC5tanMnKTtcbiAgICAgICAgICBmcy5jb3B5RmlsZVN5bmMoaGFuZGxlclNyYywgbWpzUGF0aCk7XG4gICAgICAgICAgY29uc3QgemlwUGF0aCA9IHBhdGguam9pbih0bXBEaXIsICdpbmRleC56aXAnKTtcbiAgICAgICAgICBleGVjRmlsZVN5bmMoJ3ppcCcsIFsnLWonLCB6aXBQYXRoLCAnaW5kZXgubWpzJ10sIHsgY3dkOiB0bXBEaXIsIHN0ZGlvOiAncGlwZScgfSk7XG5cbiAgICAgICAgICAvLyBVcGxvYWQgZGlyZWN0bHkgdG8gTGFtYmRhIHZpYSBTREsgKG5vIFMzIG5lZWRlZClcbiAgICAgICAgICBwcmludEluZm8oJ1VwbG9hZGluZyBjb2RlIHRvIExhbWJkYScsIHsgZnVuY3Rpb246IExBTUJEQV9OQU1FLCB2ZXJzaW9uIH0pO1xuXG4gICAgICAgICAgY29uc3QgbGFtYmRhQ2xpZW50ID0gbmV3IExhbWJkYUNsaWVudCh7IHJlZ2lvbiB9KTtcbiAgICAgICAgICBhd2FpdCBsYW1iZGFDbGllbnQuc2VuZChuZXcgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCh7XG4gICAgICAgICAgICBGdW5jdGlvbk5hbWU6IExBTUJEQV9OQU1FLFxuICAgICAgICAgICAgWmlwRmlsZTogZnMucmVhZEZpbGVTeW5jKHppcFBhdGgpLFxuICAgICAgICAgIH0pKTtcblxuICAgICAgICAgIHByaW50U3VjY2VzcyhgTGFtYmRhIGNvZGUgZGVwbG95ZWQgKCR7UEFDS0FHRV9OQU1FfUAke3ZlcnNpb259KWApO1xuXG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgZnMucm1TeW5jKHRtcERpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU3RlcCAzOiBTaG93IG91dHB1dHMgdmlhIFNES1xuICAgICAgICBjb25zdCBjZm5DbGllbnQgPSBuZXcgQ2xvdWRGb3JtYXRpb25DbGllbnQoeyByZWdpb24gfSk7XG4gICAgICAgIGNvbnN0IGRlc2NyaWJlUmVzdWx0ID0gYXdhaXQgY2ZuQ2xpZW50LnNlbmQobmV3IERlc2NyaWJlU3RhY2tzQ29tbWFuZCh7IFN0YWNrTmFtZTogU1RBQ0tfTkFNRSB9KSk7XG4gICAgICAgIGNvbnN0IG91dHB1dHMgPSBkZXNjcmliZVJlc3VsdC5TdGFja3M/LlswXT8uT3V0cHV0cyA/PyBbXTtcbiAgICAgICAgY29uc3Qgb3V0cHV0TWFwID0gT2JqZWN0LmZyb21FbnRyaWVzKG91dHB1dHMubWFwKG8gPT4gW28uT3V0cHV0S2V5ID8/ICcnLCBvLk91dHB1dFZhbHVlID8/ICcnXSkpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRTZWN0aW9uKCdFdmVudCBJbmdlc3Rpb24gUmVhZHknKTtcblxuICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAnU3RhY2snOiBTVEFDS19OQU1FLFxuICAgICAgICAgICdSZWdpb24nOiByZWdpb24sXG4gICAgICAgICAgJ1BsYXRmb3JtIFVSTCc6IHBsYXRmb3JtVXJsLFxuICAgICAgICAgICdMYW1iZGEnOiBvdXRwdXRNYXAuTGFtYmRhRnVuY3Rpb25Bcm4gfHwgTEFNQkRBX05BTUUsXG4gICAgICAgICAgJ0V2ZW50IFF1ZXVlJzogb3V0cHV0TWFwLkV2ZW50UXVldWVVcmwgfHwgJyhzZWUgQVdTIGNvbnNvbGUpJyxcbiAgICAgICAgICAnRGVhZCBMZXR0ZXIgUXVldWUnOiBvdXRwdXRNYXAuRGVhZExldHRlclF1ZXVlVXJsIHx8ICcoc2VlIEFXUyBjb25zb2xlKScsXG4gICAgICAgICAgJ0V2ZW50QnJpZGdlIFJ1bGUnOiBvdXRwdXRNYXAuRXZlbnRSdWxlTmFtZSB8fCAnKHNlZSBBV1MgY29uc29sZSknLFxuICAgICAgICAgICdTdGF0dXMnOiAn4pyTIERlcGxveWVkJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ0V2ZW50QnJpZGdlIGV2ZW50IGluZ2VzdGlvbiBpcyBhY3RpdmUuJyk7XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3NldHVwLWV2ZW50cycsIGV4ZWN1dGlvbklkLCBzdGFjazogU1RBQ0tfTkFNRSB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtZXZlbnRzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc2V0dXAtZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RSwwREFBMEQ7QUFDMUQsTUFBTSxTQUFTLEdBQUcs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Q0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBleGVjRmlsZVN5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENsb3VkRm9ybWF0aW9uQ2xpZW50LCBEZXNjcmliZVN0YWNrc0NvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgTGFtYmRhQ2xpZW50LCBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWxhbWJkYSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IEVWRU5UU19TVEFDS19OQU1FIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHsgYXVkaXRMb2cgfSBmcm9tICcuLi91dGlscy9hdWRpdC1sb2cuanMnO1xuaW1wb3J0IHsgYXBwbHlBd3NQcm9maWxlLCByZXNvbHZlQXdzUmVnaW9uIH0gZnJvbSAnLi4vdXRpbHMvYXdzLWVudi5qcyc7XG5pbXBvcnQgeyBwcmludENvbW1hbmRIZWFkZXIsIHdpdGhQcm9maWxlT3B0aW9uLCB3aXRoUmVnaW9uT3B0aW9uIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRLZXlWYWx1ZSwgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVBsYXRmb3JtU2VjcmV0TmFtZSB9IGZyb20gJy4uL3V0aWxzL3BsYXRmb3JtLXNlY3JldC5qcyc7XG5cbi8vIEVTTSBoYXMgbm8gX19kaXJuYW1lOyBkZXJpdmUgaXQgZnJvbSB0aGlzIG1vZHVsZSdzIFVSTC5cbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5jb25zdCBTVEFDS19OQU1FID0gRVZFTlRTX1NUQUNLX05BTUU7XG4vLyBFeGlzdGluZyBDRk4tbWFuYWdlZCBMYW1iZGEgZnVuY3Rpb24gbmFtZSDigJQgZG8gTk9UIHJlbmFtZSB3aXRob3V0IGEgbWlncmF0aW9uIHBsYW5cbmNvbnN0IExBTUJEQV9OQU1FID0gJ3BpcGVsaW5lLWJ1aWxkZXItZXZlbnQtaW5nZXN0aW9uJztcbmNvbnN0IFBBQ0tBR0VfTkFNRSA9ICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1ldmVudHMnO1xuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHNldHVwLWV2ZW50c2AgY29tbWFuZCB3aXRoIHRoZSBDTEkgcHJvZ3JhbS5cbiAqXG4gKiBEZXBsb3lzIEV2ZW50QnJpZGdlIOKGkiBTUVMg4oaSIExhbWJkYSBpbmZyYXN0cnVjdHVyZSBmb3IgcGlwZWxpbmUgcmVwb3J0aW5nLlxuICpcbiAqIDEuIERlcGxveXMgQ2xvdWRGb3JtYXRpb24gc3RhY2sgKHJ1bGUgKyBxdWV1ZSArIExhbWJkYSBzaGVsbCArIElBTSlcbiAqIDIuIERvd25sb2FkcyBAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1ldmVudHMgZnJvbSBucG0gcmVnaXN0cnlcbiAqIDMuIFVwbG9hZHMgaGFuZGxlciBjb2RlIGRpcmVjdGx5IHRvIExhbWJkYSAobm8gUzMgbmVlZGVkKVxuICpcbiAqIFVzZXMgUExBVEZPUk1fQkFTRV9VUkwgZnJvbSBlbnZpcm9ubWVudCAoc2FtZSBhcyBhbGwgb3RoZXIgY29tbWFuZHMpLlxuICogSWRlbXBvdGVudCDigJQgcnVubmluZyBhZ2FpbiB1cGRhdGVzIHRoZSBzdGFjayBhbmQgY29kZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldHVwRXZlbnRzKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFByb2ZpbGVPcHRpb24oXG4gICAgd2l0aFJlZ2lvbk9wdGlvbihwcm9ncmFtXG4gICAgICAuY29tbWFuZCgnc2V0dXAtZXZlbnRzJylcbiAgICAgIC5kZXNjcmlwdGlvbignRGVwbG95IEV2ZW50QnJpZGdlIGV2ZW50IGluZ2VzdGlvbiBpbmZyYXN0cnVjdHVyZSBmb3IgcGlwZWxpbmUgcmVwb3J0aW5nJylcbiAgICAgIC5vcHRpb24oJy0tcGFja2FnZS12ZXJzaW9uIDx2ZXJzaW9uPicsICdwaXBlbGluZS1ldmVudHMgcGFja2FnZSB2ZXJzaW9uIChkZWZhdWx0OiBsYXRlc3QpJylcbiAgICAgIC5vcHRpb24oJy11LCAtLWlkZW50aWZpZXIgPGlkZW50aWZpZXI+JywgJ1VzZXJuYW1lIG9yIGVtYWlsIHRvIG1pbnQgYSB0b2tlbiB3aGVuIFBMQVRGT1JNX1RPS0VOIGlzIHVuc2V0IChmb3IgZGVyaXZpbmcgdGhlIHNlY3JldCBuYW1lKScpXG4gICAgICAub3B0aW9uKCctcCwgLS1wYXNzd29yZCA8cGFzc3dvcmQ+JywgJ0xvZ2luIHBhc3N3b3JkICh1c2VkIHdpdGggLS1pZGVudGlmaWVyKScpKSxcbiAgKVxuICAgIC5vcHRpb24oJy0tc2NvcGVkLWluZ2VzdCcsICdQb2ludCB0aGUgaW5nZXN0aW9uIExhbWJkYSBhdCB0aGUgZGVkaWNhdGVkIGxlYXN0LXByaXZpbGVnZSByZXBvcnRpbmctaW5nZXN0IHNlY3JldCDigJQgdGhlIHNlcnZpY2UtYWNjb3VudCBrZXkgcHJvdmlzaW9uZWQgYnkgYHN0b3JlLXRva2VuIC0tc2NvcGUgcmVwb3J0aW5nOmluZ2VzdCAtLXNjaGVkdWxlYC4gVGhlIHJlcG9ydGluZyBzZXJ2aWNlIGFsd2F5cyByZXF1aXJlcyB0aGUgYHJlcG9ydGluZzppbmdlc3RgIHNjb3BlIG9uIFBPU1QgL3JlcG9ydHMvZXZlbnRzLCBzbyB3aXRob3V0IHRoYXQgc2VjcmV0IHRoZSBMYW1iZGEgNDAzcy4nKVxuICAgIC5vcHRpb24oJy0td2l0aC1kb3JhJywgJ0VuYWJsZSBET1JBIGxlYWQtdGltZSBlbnJpY2htZW50IGluIHRoZSBpbmdlc3Rpb24gTGFtYmRhOiBpdCByZXNvbHZlcyBjb21taXQgdGltZXN0YW1wcyBpbi1hY2NvdW50IChDb2RlQ29tbWl0IC8gdGhlIG9yZyBnaXRodWItdG9rZW4gc2VjcmV0IC8gQ29kZUNvbm5lY3Rpb25zKS4gT2ZmIGJ5IGRlZmF1bHQg4oCUIGV4dHJhIFNDTS9zZWNyZXQgY29zdC4gRW5hYmxlIG9ubHkgZm9yIG9yZ3Mgd2l0aCB0aGUgYWR2YW5jZWRfcmVwb3J0aW5nIGFkZC1vbjsgcmUtcnVuIHNldHVwLWV2ZW50cyB0byB0b2dnbGUgYWZ0ZXIgcHVyY2hhc2UuJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignU2V0dXAgRXZlbnQgSW5nZXN0aW9uJyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlZ2lvbiA9IHJlc29sdmVBd3NSZWdpb24ob3B0aW9ucy5yZWdpb24pO1xuICAgICAgICAvLyBIb25vciAtLXByb2ZpbGUgZm9yIHRoZSBTREsgTGFtYmRhL0Nsb3VkRm9ybWF0aW9uIGNsaWVudHMgYmVsb3cuIFRoZVxuICAgICAgICAvLyBgY2xvdWRmb3JtYXRpb24gZGVwbG95YCBDTEkgY2FsbCBhbHJlYWR5IGdldHMgLS1wcm9maWxlOyB3aXRob3V0IHRoaXMgdGhlXG4gICAgICAgIC8vIFNESyBjbGllbnRzIGhpdCB0aGUgREVGQVVMVCBhY2NvdW50IOKGkiBkZXBsb3kgYW5kIGNvZGUtdXBkYXRlL291dHB1dHNcbiAgICAgICAgLy8gdGFyZ2V0IGRpZmZlcmVudCBhY2NvdW50cyAoc2lsZW50IHNwbGl0LWJyYWluKS5cbiAgICAgICAgYXBwbHlBd3NQcm9maWxlKG9wdGlvbnMucHJvZmlsZSk7XG5cbiAgICAgICAgY29uc3QgcGxhdGZvcm1VcmwgPSBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTDtcbiAgICAgICAgaWYgKCFwbGF0Zm9ybVVybCkge1xuICAgICAgICAgIHByaW50RXJyb3IoJ1BMQVRGT1JNX0JBU0VfVVJMIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQTEFURk9STV9CQVNFX1VSTCBub3Qgc2V0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZXJpdmUgdGhlIHNlY3JldCBwYXRoIGZyb20gdGhlIHBsYXRmb3JtIHRva2VuICh0aGUgb25lIGluaXQtcGxhdGZvcm0uc2hcbiAgICAgICAgLy8gbWludGVkKSB3aGVuIFBMQVRGT1JNX1NFQ1JFVF9OQU1FIGlzbid0IHNldCDigJQgbWF0Y2hpbmcgc3RvcmUtdG9rZW4sIHdoaWNoXG4gICAgICAgIC8vIFdST1RFIHRoZSBzZWNyZXQgYXQgdGhlIHNhbWUgZGVyaXZlZCBwYXRoLiBMb2dzIGluIHdpdGhcbiAgICAgICAgLy8gLS1lbWFpbC8tLXBhc3N3b3JkIG9yIFBMQVRGT1JNX0lERU5USUZJRVIvUExBVEZPUk1fUEFTU1dPUkQgaWYgbm8gdG9rZW4geWV0LlxuICAgICAgICAvLyBXaXRoIC0tc2NvcGVkLWluZ2VzdCwgcG9pbnQgYXQgdGhlIGRlZGljYXRlZCByZXBvcnRpbmctaW5nZXN0IHNlY3JldCDigJRcbiAgICAgICAgLy8gYSBzZXJ2aWNlLWFjY291bnQga2V5IHNjb3BlZCB0byBleGFjdGx5IGByZXBvcnRpbmc6aW5nZXN0YCBhbmQgbm90aGluZ1xuICAgICAgICAvLyBlbHNlIOKAlCBpbnN0ZWFkIG9mIHRoZSBvcmcncyBmdWxsLXByaXZpbGVnZSBwbGF0Zm9ybSBjcmVkZW50aWFsLiBQcm92aXNpb25cbiAgICAgICAgLy8gaXQgd2l0aCBgc3RvcmUtdG9rZW4gLS1zY29wZSByZXBvcnRpbmc6aW5nZXN0YC5cbiAgICAgICAgbGV0IHNlY3JldE5hbWUgPSBhd2FpdCByZXNvbHZlUGxhdGZvcm1TZWNyZXROYW1lKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5zY29wZWRJbmdlc3QpIHtcbiAgICAgICAgICBzZWNyZXROYW1lID0gc2VjcmV0TmFtZS5yZXBsYWNlKC9cXC9wbGF0Zm9ybSQvLCAnL3JlcG9ydGluZy1pbmdlc3QnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlY29yZGVkIGJlZm9yZSB0aGUgZGVwbG95IChhcyBzdG9yZS10b2tlbiBkb2VzIGJlZm9yZSBpdHMgd3JpdGUpOiB0aGVcbiAgICAgICAgLy8gb3BlcmF0b3IncyBpbnRlbnQgdG8gcmVwb2ludCBpbmdlc3Rpb24gYXQgYSBzZWNyZXQgaXMgdGhlIHNlbnNpdGl2ZSBwYXJ0LlxuICAgICAgICBhdWRpdExvZygnc2V0dXAtZXZlbnRzJywge1xuICAgICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICAgIHN0YWNrOiBTVEFDS19OQU1FLFxuICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICBzZWNyZXROYW1lLFxuICAgICAgICAgIHNjb3BlZEluZ2VzdDogQm9vbGVhbihvcHRpb25zLnNjb3BlZEluZ2VzdCksXG4gICAgICAgICAgZG9yYTogQm9vbGVhbihvcHRpb25zLndpdGhEb3JhKSxcbiAgICAgICAgICBwYWNrYWdlVmVyc2lvbjogb3B0aW9ucy5wYWNrYWdlVmVyc2lvbiA/PyAnbGF0ZXN0JyxcbiAgICAgICAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByaW50SW5mbygnUGFyYW1ldGVycycsIHtcbiAgICAgICAgICBzdGFjazogU1RBQ0tfTkFNRSxcbiAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgcGxhdGZvcm1VcmwsXG4gICAgICAgICAgc2VjcmV0TmFtZSxcbiAgICAgICAgICBwYWNrYWdlVmVyc2lvbjogb3B0aW9ucy5wYWNrYWdlVmVyc2lvbiB8fCAnbGF0ZXN0JyxcbiAgICAgICAgICBkb3JhOiBvcHRpb25zLndpdGhEb3JhID8gJ2VuYWJsZWQgKGNvbW1pdCBlbnJpY2htZW50KScgOiAnZGlzYWJsZWQnLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTdGVwIDE6IERlcGxveSBDbG91ZEZvcm1hdGlvbiAoaW5mcmEgb25seSDigJQgTGFtYmRhIGdldHMgcGxhY2Vob2xkZXIgY29kZSlcbiAgICAgICAgcHJpbnRTZWN0aW9uKCdEZXBsb3kgSW5mcmFzdHJ1Y3R1cmUnKTtcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vdGVtcGxhdGVzL2V2ZW50cy1zdGFjay5qc29uJyk7XG5cbiAgICAgICAgY29uc3QgY2ZuQXJncyA9IFtcbiAgICAgICAgICAnY2xvdWRmb3JtYXRpb24nLCAnZGVwbG95JyxcbiAgICAgICAgICAnLS1zdGFjay1uYW1lJywgU1RBQ0tfTkFNRSxcbiAgICAgICAgICAnLS10ZW1wbGF0ZS1maWxlJywgdGVtcGxhdGVQYXRoLFxuICAgICAgICAgICctLXBhcmFtZXRlci1vdmVycmlkZXMnLFxuICAgICAgICAgIGBQbGF0Zm9ybUJhc2VVcmw9JHtwbGF0Zm9ybVVybH1gLFxuICAgICAgICAgIGBQbGF0Zm9ybVNlY3JldE5hbWU9JHtzZWNyZXROYW1lfWAsXG4gICAgICAgICAgYERvcmFFbmFibGVkPSR7b3B0aW9ucy53aXRoRG9yYSA/ICd0cnVlJyA6ICdmYWxzZSd9YCxcbiAgICAgICAgICAnLS1jYXBhYmlsaXRpZXMnLCAnQ0FQQUJJTElUWV9OQU1FRF9JQU0nLFxuICAgICAgICAgICctLW5vLWZhaWwtb24tZW1wdHktY2hhbmdlc2V0JyxcbiAgICAgICAgICAnLS1yZWdpb24nLCByZWdpb24sXG4gICAgICAgIF07XG4gICAgICAgIGlmIChvcHRpb25zLnByb2ZpbGUpIGNmbkFyZ3MucHVzaCgnLS1wcm9maWxlJywgb3B0aW9ucy5wcm9maWxlKTtcblxuICAgICAgICBleGVjRmlsZVN5bmMoJ2F3cycsIGNmbkFyZ3MsIHsgc3RkaW86ICdpbmhlcml0JyB9KTtcblxuICAgICAgICBwcmludFN1Y2Nlc3MoJ0luZnJhc3RydWN0dXJlIGRlcGxveWVkJyk7XG5cbiAgICAgICAgLy8gU3RlcCAyOiBEb3dubG9hZCBoYW5kbGVyIGZyb20gcmVnaXN0cnkgYW5kIHVwbG9hZCB0byBMYW1iZGFcbiAgICAgICAgcHJpbnRTZWN0aW9uKCdEZXBsb3kgTGFtYmRhIENvZGUnKTtcblxuICAgICAgICBjb25zdCB0bXBEaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdldmVudC1pbmdlc3Rpb24tJykpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdmVyc2lvblNwZWMgPSBvcHRpb25zLnBhY2thZ2VWZXJzaW9uID8gYCR7UEFDS0FHRV9OQU1FfUAke29wdGlvbnMucGFja2FnZVZlcnNpb259YCA6IFBBQ0tBR0VfTkFNRTtcbiAgICAgICAgICBwcmludEluZm8oJ0luc3RhbGxpbmcgZnJvbSByZWdpc3RyeScsIHsgcGFja2FnZTogdmVyc2lvblNwZWMgfSk7XG5cbiAgICAgICAgICAvLyBJc29sYXRlIHRoZSBucG0gY2FjaGUgaW5zaWRlIHRoZSB0ZW1wIGRpciBzbyB0aGUgZGVwbG95IG5ldmVyIGRlcGVuZHMgb25cbiAgICAgICAgICAvLyAob3IgdHJpcHMgb3ZlcikgYSBtaXNjb25maWd1cmVkIHNoYXJlZCB+Ly5ucG0gY2FjaGUg4oCUIGUuZy4gRUFDQ0VTL0VFWElTVFxuICAgICAgICAgIC8vIGxlZnQgYmVoaW5kIGJ5IGEgcHJpb3IgYHN1ZG8gbnBtYCBydW4uIE1pcnJvcnMgdGhlIHRva2VuLXJlbmV3IGhhbmRsZXIuXG4gICAgICAgICAgZXhlY0ZpbGVTeW5jKCducG0nLCBbJ2luc3RhbGwnLCAnLS1wcmVmaXgnLCB0bXBEaXIsICctLW5vLWF1ZGl0JywgJy0tbm8tZnVuZCcsIHZlcnNpb25TcGVjXSwge1xuICAgICAgICAgICAgc3RkaW86ICdwaXBlJyxcbiAgICAgICAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiwgbnBtX2NvbmZpZ19jYWNoZTogcGF0aC5qb2luKHRtcERpciwgJy5ucG0tY2FjaGUnKSB9LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3QgaGFuZGxlclNyYyA9IHBhdGguam9pbih0bXBEaXIsICdub2RlX21vZHVsZXMnLCBQQUNLQUdFX05BTUUsICdsaWInLCAnaW5kZXguanMnKTtcbiAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoaGFuZGxlclNyYykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSGFuZGxlciBub3QgZm91bmQgYXQgJHtoYW5kbGVyU3JjfS4gRW5zdXJlIHRoZSBwYWNrYWdlIGlzIHB1Ymxpc2hlZC5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBHZXQgdmVyc2lvbiBmcm9tIGluc3RhbGxlZCBwYWNrYWdlXG4gICAgICAgICAgY29uc3QgcGtnSnNvblBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCAnbm9kZV9tb2R1bGVzJywgUEFDS0FHRV9OQU1FLCAncGFja2FnZS5qc29uJyk7XG4gICAgICAgICAgY29uc3QgcGtnSnNvbiA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBrZ0pzb25QYXRoLCAndXRmLTgnKSk7XG4gICAgICAgICAgY29uc3QgdmVyc2lvbiA9IHBrZ0pzb24udmVyc2lvbiB8fCAndW5rbm93bic7XG5cbiAgICAgICAgICAvLyBwaXBlbGluZS1ldmVudHMgaXMgRVNNIChcInR5cGVcIjpcIm1vZHVsZVwiKSwgc28gdGhlIExhbWJkYSBlbnRyeSBtdXN0IGJlXG4gICAgICAgICAgLy8gaW5kZXgubWpzLiBBIHBsYWluIGluZGV4LmpzIHdpdGggbm8gcGFja2FnZS5qc29uIGluIHRoZSB6aXAgaXMgbG9hZGVkIGFzXG4gICAgICAgICAgLy8gQ29tbW9uSlMgYnkgbm9kZWpzMjYueCBhbmQgZmFpbHMgYXQgaW5pdCB3aXRoIFwiQ2Fubm90IHVzZSBpbXBvcnQgc3RhdGVtZW50XG4gICAgICAgICAgLy8gb3V0c2lkZSBhIG1vZHVsZVwiLiBUaGUgLm1qcyBleHRlbnNpb24gZm9yY2VzIEVTTTsgSGFuZGxlciBzdGF5c1xuICAgICAgICAgIC8vIGluZGV4LmhhbmRsZXIgKHRoZSBydW50aW1lIHJlc29sdmVzIHRoZSAubWpzIGZpbGUpLiBsaWIvaW5kZXguanMgaXMgYVxuICAgICAgICAgIC8vIHNlbGYtY29udGFpbmVkIGJ1bmRsZSAobm8gcmVsYXRpdmUgaW1wb3J0cyksIHNvIHRoZSBzaW5nbGUgZmlsZSBzdWZmaWNlcy5cbiAgICAgICAgICBjb25zdCBtanNQYXRoID0gcGF0aC5qb2luKHRtcERpciwgJ2luZGV4Lm1qcycpO1xuICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhoYW5kbGVyU3JjLCBtanNQYXRoKTtcbiAgICAgICAgICBjb25zdCB6aXBQYXRoID0gcGF0aC5qb2luKHRtcERpciwgJ2luZGV4LnppcCcpO1xuICAgICAgICAgIGV4ZWNGaWxlU3luYygnemlwJywgWyctaicsIHppcFBhdGgsICdpbmRleC5tanMnXSwgeyBjd2Q6IHRtcERpciwgc3RkaW86ICdwaXBlJyB9KTtcblxuICAgICAgICAgIC8vIFVwbG9hZCBkaXJlY3RseSB0byBMYW1iZGEgdmlhIFNESyAobm8gUzMgbmVlZGVkKVxuICAgICAgICAgIHByaW50SW5mbygnVXBsb2FkaW5nIGNvZGUgdG8gTGFtYmRhJywgeyBmdW5jdGlvbjogTEFNQkRBX05BTUUsIHZlcnNpb24gfSk7XG5cbiAgICAgICAgICBjb25zdCBsYW1iZGFDbGllbnQgPSBuZXcgTGFtYmRhQ2xpZW50KHsgcmVnaW9uIH0pO1xuICAgICAgICAgIGF3YWl0IGxhbWJkYUNsaWVudC5zZW5kKG5ldyBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kKHtcbiAgICAgICAgICAgIEZ1bmN0aW9uTmFtZTogTEFNQkRBX05BTUUsXG4gICAgICAgICAgICBaaXBGaWxlOiBmcy5yZWFkRmlsZVN5bmMoemlwUGF0aCksXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgICAgcHJpbnRTdWNjZXNzKGBMYW1iZGEgY29kZSBkZXBsb3llZCAoJHtQQUNLQUdFX05BTUV9QCR7dmVyc2lvbn0pYCk7XG5cbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBmcy5ybVN5bmModG1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdGVwIDM6IFNob3cgb3V0cHV0cyB2aWEgU0RLXG4gICAgICAgIGNvbnN0IGNmbkNsaWVudCA9IG5ldyBDbG91ZEZvcm1hdGlvbkNsaWVudCh7IHJlZ2lvbiB9KTtcbiAgICAgICAgY29uc3QgZGVzY3JpYmVSZXN1bHQgPSBhd2FpdCBjZm5DbGllbnQuc2VuZChuZXcgRGVzY3JpYmVTdGFja3NDb21tYW5kKHsgU3RhY2tOYW1lOiBTVEFDS19OQU1FIH0pKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0cyA9IGRlc2NyaWJlUmVzdWx0LlN0YWNrcz8uWzBdPy5PdXRwdXRzID8/IFtdO1xuICAgICAgICBjb25zdCBvdXRwdXRNYXAgPSBPYmplY3QuZnJvbUVudHJpZXMob3V0cHV0cy5tYXAobyA9PiBbby5PdXRwdXRLZXkgPz8gJycsIG8uT3V0cHV0VmFsdWUgPz8gJyddKSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFNlY3Rpb24oJ0V2ZW50IEluZ2VzdGlvbiBSZWFkeScpO1xuXG4gICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICdTdGFjayc6IFNUQUNLX05BTUUsXG4gICAgICAgICAgJ1JlZ2lvbic6IHJlZ2lvbixcbiAgICAgICAgICAnUGxhdGZvcm0gVVJMJzogcGxhdGZvcm1VcmwsXG4gICAgICAgICAgJ0xhbWJkYSc6IG91dHB1dE1hcC5MYW1iZGFGdW5jdGlvbkFybiB8fCBMQU1CREFfTkFNRSxcbiAgICAgICAgICAnRXZlbnQgUXVldWUnOiBvdXRwdXRNYXAuRXZlbnRRdWV1ZVVybCB8fCAnKHNlZSBBV1MgY29uc29sZSknLFxuICAgICAgICAgICdEZWFkIExldHRlciBRdWV1ZSc6IG91dHB1dE1hcC5EZWFkTGV0dGVyUXVldWVVcmwgfHwgJyhzZWUgQVdTIGNvbnNvbGUpJyxcbiAgICAgICAgICAnRXZlbnRCcmlkZ2UgUnVsZSc6IG91dHB1dE1hcC5FdmVudFJ1bGVOYW1lIHx8ICcoc2VlIEFXUyBjb25zb2xlKScsXG4gICAgICAgICAgJ1N0YXR1cyc6ICfinJMgRGVwbG95ZWQnLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50U3VjY2VzcygnRXZlbnRCcmlkZ2UgZXZlbnQgaW5nZXN0aW9uIGlzIGFjdGl2ZS4nKTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAnc2V0dXAtZXZlbnRzJywgZXhlY3V0aW9uSWQsIHN0YWNrOiBTVEFDS19OQU1FIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","
|
|
1
|
+
{"version":3,"file":"status.d.ts","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqE7C"}
|
package/dist/commands/status.js
CHANGED
|
@@ -84,4 +84,4 @@ export function status(program) {
|
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5EOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLE9BQWdCO0lBQ3JDLE9BQU87U0FDSixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQztTQUN2RCxNQUFNLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLEtBQUssQ0FBQztTQUNoRCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFckYsSUFBSSxDQUFDO1lBQ0gsTUFB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QyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2FBQzVDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgaXNPcGFxdWVBcGlLZXkgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBFTlZfVkFSUywgVElNRU9VVFMgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBkZWNvZGVUb2tlblBheWxvYWQgfSBmcm9tICcuLi91dGlscy9hdXRoLWd1YXJkLmpzJztcbmltcG9ydCB7IGNoZWNrQ2RrQXZhaWxhYmxlIH0gZnJvbSAnLi4vdXRpbHMvY2RrLXV0aWxzLmpzJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24gfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgaHR0cHNBZ2VudEZvclVybCB9IGZyb20gJy4uL3V0aWxzL3Rscy5qcyc7XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgc3RhdHVzYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIENoZWNrcyBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIENESyBhdmFpbGFiaWxpdHksIHBsYXRmb3JtIGNvbm5lY3Rpdml0eSxcbiAqIGFuZCB0b2tlbiBleHBpcnkgdG8gZ2l2ZSBhIHF1aWNrIG92ZXJ2aWV3IG9mIHRoZSBjdXJyZW50IHNldHVwLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIHJvb3QgQ29tbWFuZGVyIHByb2dyYW0gaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RhdHVzKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCdzdGF0dXMnKVxuICAgIC5kZXNjcmlwdGlvbignU2hvdyBlbnZpcm9ubWVudCBhbmQgY29ubmVjdGl2aXR5IHN0YXR1cycpXG4gICAgLm9wdGlvbignLS1qc29uJywgJ091dHB1dCByZXN1bHQgYXMgSlNPTicsIGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdTdGF0dXMnLCB1bmRlZmluZWQsIHsgcXVpZXQ6IG9wdGlvbnMuanNvbiB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgICAgIC8vIDEuIENoZWNrIFBMQVRGT1JNX1RPS0VOXG4gICAgICAgIGNvbnN0IHRva2VuID0gcHJvY2Vzcy5lbnZbRU5WX1ZBUlMuUExBVEZPUk1fVE9LRU5dO1xuICAgICAgICByZXN1bHRzLlBMQVRGT1JNX1RPS0VOID0gdG9rZW4gPyAnc2V0JyA6ICdub3Qgc2V0JztcblxuICAgICAgICAvLyAyLiBDaGVjayBQTEFURk9STV9TRUNSRVRfTkFNRVxuICAgICAgICBjb25zdCBzZWNyZXROYW1lID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fU0VDUkVUX05BTUU7XG4gICAgICAgIHJlc3VsdHMuUExBVEZPUk1fU0VDUkVUX05BTUUgPSBzZWNyZXROYW1lIHx8ICdub3Qgc2V0JztcblxuICAgICAgICAvLyAzLiBDaGVjayBDREsgYXZhaWxhYmlsaXR5XG4gICAgICAgIHJlc3VsdHNbJ0NESyBBdmFpbGFibGUnXSA9IGNoZWNrQ2RrQXZhaWxhYmxlKCkgPyAneWVzJyA6ICdubyc7XG5cbiAgICAgICAgLy8gNC4gQ2hlY2sgcGxhdGZvcm0gaGVhbHRoXG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSBwcm9jZXNzLmVudltFTlZfVkFSUy5QTEFURk9STV9CQVNFX1VSTF0gfHwgJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnO1xuICAgICAgICByZXN1bHRzLlBMQVRGT1JNX0JBU0VfVVJMID0gYmFzZVVybDtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIFNraXAgY2VydCB2ZXJpZmljYXRpb24gb25seSBmb3IgbG9jYWwvc2VsZi1zaWduZWQgaG9zdHM7IHZlcmlmeSByZWFsIGRvbWFpbnMuXG4gICAgICAgICAgYXdhaXQgYXhpb3MuZ2V0KGAke2Jhc2VVcmx9L2hlYWx0aGAsIHtcbiAgICAgICAgICAgIHRpbWVvdXQ6IFRJTUVPVVRTLkhFQUxUSF9DSEVDSyxcbiAgICAgICAgICAgIGh0dHBzQWdlbnQ6IGh0dHBzQWdlbnRGb3JVcmwoYmFzZVVybCksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzdWx0c1snUGxhdGZvcm0gSGVhbHRoJ10gPSAncmVhY2hhYmxlJztcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmVzdWx0c1snUGxhdGZvcm0gSGVhbHRoJ10gPSAndW5yZWFjaGFibGUnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNS4gRGVjb2RlIHRva2VuIGV4cGlyeSAoc2hhcmVkIGRlY29kZXIg4oCUIHNhbWUgYmFzZTY0dXJsICsgZXhwIGxvZ2ljXG4gICAgICAgIC8vIHVzZWQgYnkgYXVkaXQtdG9rZW5zIC8gYXBpLWNsaWVudCkuIEFuIEFDQ0VTUyBLRVkgY2FycmllcyBubyBjbGFpbXMgYXRcbiAgICAgICAgLy8gYWxsLCBzbyB0aGVyZSBpcyBub3RoaW5nIGxvY2FsIHRvIHJlYWQ6IGl0cyBleHBpcnkgbGl2ZXMgb24gaXRzIHJlY29yZFxuICAgICAgICAvLyBhbmQgaXMgc2hvd24gb24gdGhlIGtleXMgcGFnZS5cbiAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRlY29kZVRva2VuUGF5bG9hZCh0b2tlbik7XG4gICAgICAgICAgaWYgKGlzT3BhcXVlQXBpS2V5KHRva2VuKSkge1xuICAgICAgICAgICAgcmVzdWx0c1snVG9rZW4gRXhwaXJlcyddID0gJ24vYSAoYWNjZXNzIGtleSDigJQgc2VlIERhc2hib2FyZCDihpIgQVBJIFRva2VucyknO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIXBheWxvYWQpIHtcbiAgICAgICAgICAgIHJlc3VsdHNbJ1Rva2VuIEV4cGlyZXMnXSA9ICd1bmFibGUgdG8gZGVjb2RlJztcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwYXlsb2FkLmV4cCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cGlyZXNBdCA9IG5ldyBEYXRlKHBheWxvYWQuZXhwICogMTAwMCk7XG4gICAgICAgICAgICByZXN1bHRzWydUb2tlbiBFeHBpcmVzJ10gPSBleHBpcmVzQXQudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIHJlc3VsdHNbJ1Rva2VuIEV4cGlyZWQnXSA9IGV4cGlyZXNBdC5nZXRUaW1lKCkgPCBEYXRlLm5vdygpID8gJ3llcycgOiAnbm8nO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IHN1Y2Nlc3M6IHRydWUsIGV4ZWN1dGlvbklkLCAuLi5yZXN1bHRzIH0sIG51bGwsIDIpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmludFNlY3Rpb24oJ0Vudmlyb25tZW50IFN0YXR1cycpO1xuICAgICAgICAgIHByaW50S2V5VmFsdWUocmVzdWx0cyk7XG4gICAgICAgIH1cblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkdFTkVSQUwsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdzdGF0dXMnLCBleGVjdXRpb25JZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-token.d.ts","
|
|
1
|
+
{"version":3,"file":"store-token.d.ts","sources":["../../src/commands/store-token.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AASxD,OAAO,EAAuD,KAAK,cAAc,EAAE,MAAM,6BAA6B,CAAC;AA0KvH,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAgBzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAcnH;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,cAAc,EAC3B,QAAQ,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,cAAc,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC,GAAG,IAAI,CA6CP;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuKjD"}
|
|
@@ -434,4 +434,4 @@ export function storeToken(program) {
|
|
|
434
434
|
}
|
|
435
435
|
});
|
|
436
436
|
}
|
|
437
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3RvcmUtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNySyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFP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QWtCLENBQUM7Z0JBQzdGLGtCQUFrQixHQUFHLE1BQU0sbUJBQW1CLENBQUM7b0JBQzdDLFVBQVU7b0JBQ1YsSUFBSTtvQkFDSixhQUFhO29CQUNiLE1BQU07b0JBQ04sT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2lCQUN6QixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsY0FBYyxDQUFDO2dCQUNiLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUk7Z0JBQ3BCLFVBQVU7Z0JBQ1YsR0FBRztnQkFDSCxNQUFNO2dCQUNOLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxJQUFJO2dCQUNKLGtCQUFrQjthQUNuQixDQUFDLENBQUM7UUFFTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUU7b0JBQ1AsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFdBQVc7b0JBQ1gsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLElBQUksd0JBQXdCO2lCQUN6RTthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgZXhlY0ZpbGVTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBMYW1iZGFDbGllbnQsIFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtbGFtYmRhJztcbmltcG9ydCB7IEFVVE9NQVRJT05fQUNDT1VOVF9CVU5ETEVTLCBlcnJvck1lc3NhZ2UsIFNFRURfQlVORExFUyB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB0eXBlIHsgU2VlZEJ1bmRsZUlkLCBUb2tlblNjb3BlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgUElQRUxJTkVfUkVHSVNUUkFUSU9OX0NBUEFCSUxJVFkgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQVBQX1ZFUlNJT04sIHZhbGlkYXRlTnVtYmVyIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHR5cGUgeyBBcGlDbGllbnQgfSBmcm9tICcuLi91dGlscy9hcGktY2xpZW50LmpzJztcbmltcG9ydCB7IGF1ZGl0TG9nIH0gZnJvbSAnLi4vdXRpbHMvYXVkaXQtbG9nLmpzJztcbmltcG9ydCB7IHJlc29sdmVBd3NSZWdpb24gfSBmcm9tICcuLi91dGlscy9hd3MtZW52LmpzJztcbmltcG9ydCB7IHVwc2VydFNlY3JldCwgZ2V0U2VjcmV0QXJuLCBnZXRTZWNyZXRWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL2F3cy1zZWNyZXRzLmpzJztcbmltcG9ydCB7IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYywgcHJpbnRDb21tYW5kSGVhZGVyLCBwcmludFNzbFdhcm5pbmcsIHdpdGhQcm9maWxlT3B0aW9uLCB3aXRoUmVnaW9uT3B0aW9uLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgdG9FdmVudEJyaWRnZUNyb24gfSBmcm9tICcuLi91dGlscy9jcm9uLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRJbmZvLCBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IGVuc3VyZVBsYXRmb3JtVG9rZW4sIHNjb3BlU2VjcmV0TGVhZiwgc2VjcmV0TmFtZUZvck9yZyB9IGZyb20gJy4uL3V0aWxzL3BsYXRmb3JtLXNlY3JldC5qcyc7XG5pbXBvcnQgeyBwcm92aXNpb25TZXJ2aWNlQWNjb3VudEtleSwgcmV2b2tlU2VydmljZUFjY291bnRLZXksIHR5cGUgUHJvdmlzaW9uZWRLZXkgfSBmcm9tICcuLi91dGlscy9zZXJ2aWNlLWFjY291bnQuanMnO1xuXG4vLyBFU00gaGFzIG5vIF9fZGlybmFtZTsgZGVyaXZlIGl0IGZyb20gdGhpcyBtb2R1bGUncyBVUkwuXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcblxuY29uc3QgUkVORVdfU1RBQ0tfTkFNRSA9ICdwaXBlbGluZS1idWlsZGVyLXRva2VuLXJlbmV3Jztcbi8vIENGTi1tYW5hZ2VkIExhbWJkYSBmdW5jdGlvbiBuYW1lIOKAlCBrZWVwIGluIHN5bmMgd2l0aCB0b2tlbi1yZW5ldy1zdGFjay5qc29uLlxuY29uc3QgUkVORVdfTEFNQkRBX05BTUUgPSAncGlwZWxpbmUtYnVpbGRlci10b2tlbi1yZW5ldyc7XG4vLyBEZWZhdWx0IDUtZmllbGQgY3JvbiAoZGFpbHkgYXQgbWlkbmlnaHQpIHdoZW4gbmVpdGhlciAtLWNyb24gbm9yIFRPS0VOX1JFTkVXX1NDSEVEVUxFIGlzIHNldC5cbmNvbnN0IERFRkFVTFRfUkVORVdfQ1JPTiA9ICcwIDAgKiAqIConO1xuXG4vKiogT25lIGxlYXN0LXByaXZpbGVnZSBtYWNoaW5lIGlkZW50aXR5IGBzdG9yZS10b2tlbmAgY2FuIHByb3Zpc2lvbi4gKi9cbmludGVyZmFjZSBDYXRhbG9nRW50cnkge1xuICAvKiogVGhlIHNlcnZpY2UgYWNjb3VudCB0aGUga2V5IGlzIGlzc3VlZCBvbi4gKi9cbiAgYWNjb3VudDoga2V5b2YgdHlwZW9mIEFVVE9NQVRJT05fQUNDT1VOVF9CVU5ETEVTO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogQSBjYXBhYmlsaXR5IFNDT1BFIHN0YW1wZWQgb24gdGhlIEtFWTogdGhlIGV4Y2hhbmdlZCB0b2tlbiBjYXJyaWVzIHRoaXMgb25lXG4gICAqIHNjb3BlIGFuZCBubyBwZXJtaXNzaW9ucyBhdCBhbGwsIHNvIHRoZSBhY2NvdW50IG5lZWRzIG5vIFJvbGUuXG4gICAqL1xuICBrZXlTY29wZT86IFRva2VuU2NvcGU7XG59XG5cbi8qKlxuICogVGhlIGxlYXN0LXByaXZpbGVnZSBjcmVkZW50aWFscyBgLS1zY29wZWAgc2VsZWN0cywgYW5kIHdoYXQgZWFjaCBvbmUgaXMgRk9SLlxuICpcbiAqIFR3byBzaGFwZXMsIG9uZSBmbGFnOlxuICogIC0gYSBLRVkgc2NvcGUgKGByZXBvcnRpbmc6aW5nZXN0YCwgYHJlZ2lzdHJ5OnB1c2hgKTogdGhlIGtleSBleGNoYW5nZXMgdG8gYVxuICogICAgdG9rZW4gY2Fycnlpbmcgb25seSB0aGF0IHNjb3BlIOKAlCBubyBwZXJtaXNzaW9ucywgbm8gYWRtaW4gZmxhZ3Mg4oCUIGZvciBhXG4gKiAgICByb3V0ZSB0aGF0IGNoZWNrcyB0aGUgc2NvcGUgaXRzZWxmO1xuICogIC0gYSBDQVBBQklMSVRZIChgcGlwZWxpbmVfcmVnaXN0cnk6d3JpdGVgKTogYW4gb3JkaW5hcnkgcGVybWlzc2lvbiwgc28gdGhlIGtleVxuICogICAgaXMgdW5zY29wZWQgYW5kIGl0cyBhY2NvdW50IGhvbGRzIHRoZSBvbmUgYnVpbHQtaW4gUm9sZSBjYXJyeWluZyBpdFxuICogICAgKFBpcGVsaW5lIFJlZ2lzdHJhdGlvbikuIFVzZWQgd2hlcmUgdGhlIHJvdXRlIGlzIGdhdGVkIGJ5XG4gKiAgICBgcmVxdWlyZVBlcm1pc3Npb25gLCB3aGljaCBwZW9wbGUgc2F0aXNmeSB0aHJvdWdoIHRoZWlyIG93biBSb2xlcy5cbiAqXG4gKiBXaGljaCBSb2xlIGVhY2ggYWNjb3VudCBob2xkcyBjb21lcyBmcm9tIGFwaS1jb3JlJ3NcbiAqIGBBVVRPTUFUSU9OX0FDQ09VTlRfQlVORExFU2Ag4oCUIHRoZSBzYW1lIHRhYmxlIHRoZSBwbGF0Zm9ybSdzIHN0YXJ0dXAgYmFja2ZpbGxcbiAqIG1vdmVzIGV4aXN0aW5nIGFjY291bnRzIHdpdGguXG4gKi9cbmNvbnN0IFNDT1BFX0NBVEFMT0c6IFJlY29yZDxzdHJpbmcsIENhdGFsb2dFbnRyeT4gPSB7XG4gICdyZXBvcnRpbmc6aW5nZXN0Jzoge1xuICAgIGFjY291bnQ6ICdyZXBvcnRpbmctaW5nZXN0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0FXUyBwaXBlbGluZS1ldmVudCBpbmdlc3Rpb24gYW5kIHN0ZXAgc2VjdXJpdHktcmVwb3J0IHVwbG9hZHMgKHRoZSByZXBvcnRpbmc6aW5nZXN0IHNjb3BlKScsXG4gICAga2V5U2NvcGU6ICdyZXBvcnRpbmc6aW5nZXN0JyxcbiAgfSxcbiAgJ3JlZ2lzdHJ5OnB1c2gnOiB7XG4gICAgYWNjb3VudDogJ3JlZ2lzdHJ5LXB1c2gnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ0kgaW1hZ2UgcHVzaGVzIGFuZCBwdWxscyBpbnRvIHRoaXMgb3Jn4oCZcyByZWdpc3RyeSBuYW1lc3BhY2UgKENvZGVCdWlsZCDihpIgL3Rva2VuKScsXG4gICAga2V5U2NvcGU6ICdyZWdpc3RyeTpwdXNoJyxcbiAgfSxcbiAgW1BJUEVMSU5FX1JFR0lTVFJBVElPTl9DQVBBQklMSVRZXToge1xuICAgIGFjY291bnQ6ICdwaXBlbGluZS1yZWdpc3RlcicsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgQ29kZUJ1aWxkIHN5bnRoIHJlZ2lzdGVyaW5nIGl0cyBzdGVwIG1hbmlmZXN0IChQT1NUL0RFTEVURSAvcGlwZWxpbmVzL3JlZ2lzdHJ5KScsXG4gIH0sXG59O1xuXG4vKipcbiAqIFRoZSBhY2NvdW50IGJlaGluZCB0aGUgZGVmYXVsdCAobm8gYC0tc2NvcGVgKSBjcmVkZW50aWFsOiB0aGUgQ29kZUJ1aWxkIHN5bnRoLFxuICogYHBpcGVsaW5lIGRlcGxveSAtLXN0b3JlLXRva2Vuc2AsIHRoZSBwbHVnaW4tbG9va3VwIExhbWJkYSBhbmQgdGhlIHJ1bi10aW1lXG4gKiB2dWxuZXJhYmlsaXR5IGNoZWNrLiBJdCBob2xkcyB0aGUgUGlwZWxpbmUgQXV0b21hdGlvbiBSb2xlIOKAlCBwaXBlbGluZSBhbmRcbiAqIHBsdWdpbiByZWFkcyDigJQgYW5kIG5vdGhpbmcgbW9yZTsgaXQgaXMgbm8gbG9uZ2VyIGFuIG9yZyBhZG1pbi5cbiAqL1xuY29uc3QgUExBVEZPUk1fQUNDT1VOVDogQ2F0YWxvZ0VudHJ5ID0ge1xuICBhY2NvdW50OiAncGxhdGZvcm0tYXV0b21hdGlvbicsXG4gIGRlc2NyaXB0aW9uOiAnU3RvcmVkIHBsYXRmb3JtIGNyZWRlbnRpYWwgZm9yIENESyBzeW50aC9kZXBsb3ksIHBsdWdpbiBsb29rdXAgYW5kIHRoZSBydW4tdGltZSB2dWxuZXJhYmlsaXR5IGNoZWNrJyxcbn07XG5cbi8qKiBUaGUgYnVpbHQtaW4gUm9sZSAoc2VlZCBidW5kbGUpIGEgTkVXIGFjY291bnQgZm9yIGBlbnRyeWAgaXMgZ3JhbnRlZCwgaWYgYW55LiAqL1xuZnVuY3Rpb24gcm9sZUZvcihlbnRyeTogQ2F0YWxvZ0VudHJ5KTogU2VlZEJ1bmRsZUlkIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIEFVVE9NQVRJT05fQUNDT1VOVF9CVU5ETEVTW2VudHJ5LmFjY291bnRdID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBEZXBsb3kgKG9yIHVwZGF0ZSkgdGhlIG9uY2UtYS1kYXkgS0VZIFJPVEFUSU9OIHN0YWNrOiBhIHNjaGVkdWxlZCBMYW1iZGEgdGhhdFxuICogcmVwbGFjZXMgdGhlIHNlcnZpY2UtYWNjb3VudCBrZXkgaW4gdGhpcyBzZWNyZXQgYmVmb3JlIGl0IGV4cGlyZXMuIE1pcnJvcnNcbiAqIHNldHVwLWV2ZW50cyDigJQgYGF3cyBjbG91ZGZvcm1hdGlvbiBkZXBsb3lgIGZvciB0aGUgaW5mcmEsIHRoZW4gYSBkaXJlY3RcbiAqIFVwZGF0ZUZ1bmN0aW9uQ29kZSB3aXRoIHRoZSByb3RhdG9yIGhhbmRsZXIgY29tcGlsZWQgYWxvbmdzaWRlIHRoaXMgQ0xJIChzZWVcbiAqIHNyYy9sYW1iZGEvdG9rZW4tcmVuZXctaGFuZGxlci50cykuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRlcGxveVJlbmV3U2NoZWR1bGUob3B0czoge1xuICBzZWNyZXROYW1lOiBzdHJpbmc7XG4gIGRheXM6IG51bWJlcjtcbiAgZml2ZUZpZWxkQ3Jvbjogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgcHJvZmlsZT86IHN0cmluZztcbn0pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBzY2hlZHVsZUV4cHJlc3Npb24gPSB0b0V2ZW50QnJpZGdlQ3JvbihvcHRzLmZpdmVGaWVsZENyb24pOyAvLyB2YWxpZGF0ZXMgKyAxNS1taW4gZ3VhcmRcblxuICAvLyBOYW1lIHJlbmV3YWwgcmVzb3VyY2VzIHBlci1zZWNyZXQgc28gYSBzY29wZWQtY3JlZGVudGlhbCBzdGFjayAoZS5nLiB0aGVcbiAgLy8gcmVwb3J0aW5nLWluZ2VzdCBrZXkgdGhlIGV2ZW50IExhbWJkYSByZWFkcykgY29leGlzdHMgd2l0aCB0aGVcbiAgLy8gcGxhdGZvcm0tY3JlZGVudGlhbCBzdGFjayBpbnN0ZWFkIG9mIGNvbGxpZGluZyBvbiB0aGUgKGFjY291bnQtZ2xvYmFsKSBJQU1cbiAgLy8gcm9sZSAvIExhbWJkYSAvIHJ1bGUgbmFtZXMuIFRoZSBwbGF0Zm9ybSBzZWNyZXQga2VlcHMgdGhlIGJhcmUgbmFtZVxuICAvLyAoc3VmZml4ICcnKSBzbyBleGlzdGluZyBkZXBsb3ltZW50cycgc3RhY2sgaXMgdXBkYXRlZCBpbiBwbGFjZSwgbm90XG4gIC8vIGR1cGxpY2F0ZWQ7IGFueSBvdGhlciBzZWNyZXQgYXBwZW5kcyBpdHMgdHJhaWxpbmcgcGF0aCBzZWdtZW50LlxuICBjb25zdCBzZWNyZXRMZWFmID0gb3B0cy5zZWNyZXROYW1lLnJlcGxhY2UoLy4qXFwvLywgJycpOyAvLyAncGxhdGZvcm0nIHwgJ3JlcG9ydGluZy1pbmdlc3QnIHwg4oCmXG4gIGNvbnN0IG5hbWVTdWZmaXggPSBzZWNyZXRMZWFmID09PSAncGxhdGZvcm0nID8gJycgOiBgLSR7c2VjcmV0TGVhZi5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCAnLScpfWA7XG4gIGNvbnN0IHN0YWNrTmFtZSA9IGAke1JFTkVXX1NUQUNLX05BTUV9JHtuYW1lU3VmZml4fWA7XG4gIGNvbnN0IGxhbWJkYU5hbWUgPSBgJHtSRU5FV19MQU1CREFfTkFNRX0ke25hbWVTdWZmaXh9YDtcblxuICBwcmludFNlY3Rpb24oJ1NjaGVkdWxlIFJvdGF0aW9uJyk7XG4gIHByaW50SW5mbygnUGFyYW1ldGVycycsIHtcbiAgICBzdGFjazogc3RhY2tOYW1lLFxuICAgIHNjaGVkdWxlOiBvcHRzLmZpdmVGaWVsZENyb24sXG4gICAgZXZlbnRicmlkZ2U6IHNjaGVkdWxlRXhwcmVzc2lvbixcbiAgICByZW5ld0RheXM6IG9wdHMuZGF5cyxcbiAgfSk7XG5cbiAgLy8gU3RlcCAxOiBpbmZyYSAoTGFtYmRhIGdldHMgcGxhY2Vob2xkZXIgY29kZSBvbiBmaXJzdCBjcmVhdGUpLlxuICBjb25zdCB0ZW1wbGF0ZVBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vdGVtcGxhdGVzL3Rva2VuLXJlbmV3LXN0YWNrLmpzb24nKTtcbiAgY29uc3QgY2ZuQXJncyA9IFtcbiAgICAnY2xvdWRmb3JtYXRpb24nLCAnZGVwbG95JyxcbiAgICAnLS1zdGFjay1uYW1lJywgc3RhY2tOYW1lLFxuICAgICctLXRlbXBsYXRlLWZpbGUnLCB0ZW1wbGF0ZVBhdGgsXG4gICAgJy0tcGFyYW1ldGVyLW92ZXJyaWRlcycsXG4gICAgYFBsYXRmb3JtU2VjcmV0TmFtZT0ke29wdHMuc2VjcmV0TmFtZX1gLFxuICAgIGBSZW5ld0RheXM9JHtvcHRzLmRheXN9YCxcbiAgICBgU2NoZWR1bGVFeHByZXNzaW9uPSR7c2NoZWR1bGVFeHByZXNzaW9ufWAsXG4gICAgYE5hbWVTdWZmaXg9JHtuYW1lU3VmZml4fWAsXG4gICAgLy8gUmVjb3JkZWQgZm9yIHByb3ZlbmFuY2Ugb25seSDigJQgdGhlIHJvdGF0b3IgZG9lcyBub3QgaW5zdGFsbCB0aGUgQ0xJIGF0XG4gICAgLy8gcnVudGltZSAoaXQgc3BlYWtzIHRvIHRoZSBwbGF0Zm9ybSBkaXJlY3RseSksIGJ1dCBrbm93aW5nIHdoaWNoIENMSVxuICAgIC8vIGRlcGxveWVkIGEgc3RhY2sgaXMgd29ydGgga2VlcGluZy5cbiAgICBgUGlwZWxpbmVNYW5hZ2VyVmVyc2lvbj0ke0FQUF9WRVJTSU9OfWAsXG4gICAgJy0tY2FwYWJpbGl0aWVzJywgJ0NBUEFCSUxJVFlfTkFNRURfSUFNJyxcbiAgICAnLS1uby1mYWlsLW9uLWVtcHR5LWNoYW5nZXNldCcsXG4gICAgJy0tcmVnaW9uJywgb3B0cy5yZWdpb24sXG4gIF07XG4gIGlmIChvcHRzLnByb2ZpbGUpIGNmbkFyZ3MucHVzaCgnLS1wcm9maWxlJywgb3B0cy5wcm9maWxlKTtcbiAgZXhlY0ZpbGVTeW5jKCdhd3MnLCBjZm5BcmdzLCB7IHN0ZGlvOiAnaW5oZXJpdCcgfSk7XG5cbiAgLy8gU3RlcCAyOiB1cGxvYWQgdGhlIHJlYWwgaGFuZGxlci4gSXQncyBFU00sIHNvIHRoZSB6aXAgZW50cnkgbXVzdCBiZSBpbmRleC5tanNcbiAgLy8gKEhhbmRsZXIgc3RheXMgaW5kZXguaGFuZGxlciDigJQgbm9kZWpzMjYueCByZXNvbHZlcyB0aGUgLm1qcyBleHRlbnNpb24pLlxuICBjb25zdCBoYW5kbGVyU3JjID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJy4uL2xhbWJkYS90b2tlbi1yZW5ldy1oYW5kbGVyLmpzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhoYW5kbGVyU3JjKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVG9rZW4tcmVuZXcgaGFuZGxlciBub3QgZm91bmQgYXQgJHtoYW5kbGVyU3JjfSDigJQgd2FzIHRoZSBwYWNrYWdlIGJ1aWx0P2ApO1xuICB9XG4gIGNvbnN0IHRtcERpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ3Rva2VuLXJlbmV3LScpKTtcbiAgdHJ5IHtcbiAgICBmcy5jb3B5RmlsZVN5bmMoaGFuZGxlclNyYywgcGF0aC5qb2luKHRtcERpciwgJ2luZGV4Lm1qcycpKTtcbiAgICBjb25zdCB6aXBQYXRoID0gcGF0aC5qb2luKHRtcERpciwgJ2luZGV4LnppcCcpO1xuICAgIGV4ZWNGaWxlU3luYygnemlwJywgWyctaicsIHppcFBhdGgsICdpbmRleC5tanMnXSwgeyBjd2Q6IHRtcERpciwgc3RkaW86ICdwaXBlJyB9KTtcblxuICAgIGNvbnN0IGxhbWJkYUNsaWVudCA9IG5ldyBMYW1iZGFDbGllbnQoeyByZWdpb246IG9wdHMucmVnaW9uIH0pO1xuICAgIGF3YWl0IGxhbWJkYUNsaWVudC5zZW5kKG5ldyBVcGRhdGVGdW5jdGlvbkNvZGVDb21tYW5kKHtcbiAgICAgIEZ1bmN0aW9uTmFtZTogbGFtYmRhTmFtZSxcbiAgICAgIFppcEZpbGU6IGZzLnJlYWRGaWxlU3luYyh6aXBQYXRoKSxcbiAgICB9KSk7XG4gIH0gZmluYWxseSB7XG4gICAgZnMucm1TeW5jKHRtcERpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpbnRTdWNjZXNzKGBSb3RhdGlvbiBzY2hlZHVsZWQgKCR7c2NoZWR1bGVFeHByZXNzaW9ufSlgKTtcbiAgcmV0dXJuIHNjaGVkdWxlRXhwcmVzc2lvbjtcbn1cblxuLyoqIFJlYWQgdGhlIGtleSBpZCBhIHByZXZpb3VzIHJ1biBzdG9yZWQsIHNvIHRoaXMgcnVuIGNhbiByZXRpcmUgaXQuICovXG5hc3luYyBmdW5jdGlvbiBwcmV2aW91c0tleUlkKFxuICBzZWNyZXROYW1lOiBzdHJpbmcsXG4gIGF3czogeyByZWdpb246IHN0cmluZzsgcHJvZmlsZT86IHN0cmluZyB9LFxuKTogUHJvbWlzZTx7IGtleUlkPzogc3RyaW5nOyBzZXJ2aWNlQWNjb3VudElkPzogc3RyaW5nIH0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByYXcgPSBhd2FpdCBnZXRTZWNyZXRWYWx1ZShzZWNyZXROYW1lLCBhd3MpO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KSBhcyB7IGtleUlkPzogc3RyaW5nOyBzZXJ2aWNlQWNjb3VudElkPzogc3RyaW5nIH07XG4gICAgcmV0dXJuIHsga2V5SWQ6IHBhcnNlZC5rZXlJZCwgc2VydmljZUFjY291bnRJZDogcGFyc2VkLnNlcnZpY2VBY2NvdW50SWQgfTtcbiAgfSBjYXRjaCB7XG4gICAgLy8gTm8gc2VjcmV0IHlldCAoZmlyc3QgcnVuKSwgb3Igb25lIHdyaXR0ZW4gYmVmb3JlIHRoZSBzZXJ2aWNlLWFjY291bnRcbiAgICAvLyBjdXRvdmVyIChubyBrZXlJZCkuIEVpdGhlciB3YXkgdGhlcmUgaXMgbm90aGluZyB0aGlzIHJ1biBjYW4gcmV0aXJlLlxuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKiogV2hhdCBhIGRyeSBydW4gcmVwb3J0cyBpdCBXT1VMRCBwcm92aXNpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JlVG9rZW5QbGFuIHtcbiAgc2VydmljZUFjY291bnQ6IHN0cmluZztcbiAgcm9sZXM6IHN0cmluZztcbiAgc2NvcGU6IHN0cmluZztcbiAgc2VjcmV0TmFtZTogc3RyaW5nO1xuICByZWdpb246IHN0cmluZztcbiAgZXhwaXJlc0luRGF5czogbnVtYmVyO1xufVxuXG4vKiogUHJpbnQgdGhlIGRyeS1ydW4gcGxhbiAoSlNPTiBvciBodW1hbikuIFN0YXlzIGVudGlyZWx5IG9mZmxpbmUuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnREcnlSdW5QbGFuKHBsYW46IFN0b3JlVG9rZW5QbGFuLCBqc29uOiBib29sZWFuKTogdm9pZCB7XG4gIGlmIChqc29uKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoeyBzdWNjZXNzOiB0cnVlLCBkcnlSdW46IHRydWUsIC4uLnBsYW4gfSwgbnVsbCwgMikpO1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zb2xlLmxvZygnJyk7XG4gIHByaW50U2VjdGlvbignRHJ5IFJ1biDigJQgTm8gQ2hhbmdlcyBNYWRlJyk7XG4gIHByaW50S2V5VmFsdWUoe1xuICAgICdTZXJ2aWNlIEFjY291bnQnOiBwbGFuLnNlcnZpY2VBY2NvdW50LFxuICAgICdSb2xlcyc6IHBsYW4ucm9sZXMsXG4gICAgJ0tleSBTY29wZSc6IHBsYW4uc2NvcGUsXG4gICAgJ1NlY3JldCBOYW1lJzogcGxhbi5zZWNyZXROYW1lLFxuICAgICdSZWdpb24nOiBwbGFuLnJlZ2lvbixcbiAgICAnRXhwaXJlcyBJbic6IGAke3BsYW4uZXhwaXJlc0luRGF5c30gZGF5c2AsXG4gIH0pO1xuICBwcmludFN1Y2Nlc3MoJ0RyeSBydW4gY29tcGxldGUg4oCUIG5vIGFjY291bnQsIGtleSBvciBzZWNyZXQgd2FzIGNyZWF0ZWQnKTtcbn1cblxuLyoqXG4gKiBUaGUgU2VjcmV0cyBNYW5hZ2VyIHBheWxvYWQ6IGB7IHVzZXJuYW1lOiBvcmdJZCwgcGFzc3dvcmQ6IDxwYl9zYV8ga2V5PiwgLi4ubWV0YWRhdGEgfWAuXG4gKiAtIHVzZXJuYW1lL3Bhc3N3b3JkIHNhdGlzZnkgQ29kZUJ1aWxkJ3MgYHNlY3JldHNNYW5hZ2VyQ3JlZGVudGlhbHNgIChIVFRQXG4gKiAgIEJhc2ljLCBzZW50IHRvIHBpcGVsaW5lLWltYWdlLXJlZ2lzdHJ5J3MgL3Rva2VuIGVuZHBvaW50LCB3aGljaCBleGNoYW5nZXNcbiAqICAgdGhlIG9wYXF1ZSBrZXkgbGlrZSBldmVyeSBvdGhlciBzZXJ2aWNlIGRvZXMpLlxuICogLSBgcGFzc3dvcmRgIGlzIHRoZSBjYW5vbmljYWwgZmllbGQ6IHRoZSBwbHVnaW4tbG9va3VwIExhbWJkYSwgdGhlIGV2ZW50c1xuICogICBMYW1iZGEgYW5kIGAtLXN0b3JlLXRva2Vuc2AgYWxsIHJlYWQgaXQuXG4gKiAtIGtleUlkIC8gc2VydmljZUFjY291bnRJZCBhcmUgd2hhdCB0aGUgcm90YXRpb24gTGFtYmRhIG5lZWRzIHRvIHJldGlyZSB0aGVcbiAqICAga2V5IGl0IHJlcGxhY2VzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTZWNyZXRWYWx1ZShwcm92aXNpb25lZDogUHJvdmlzaW9uZWRLZXksIHBsYXRmb3JtVXJsOiBzdHJpbmcsIGV4cGlyZXNJblNlY29uZHM6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgdXNlcm5hbWU6IHByb3Zpc2lvbmVkLm9yZ2FuaXphdGlvbklkLFxuICAgIHBhc3N3b3JkOiBwcm92aXNpb25lZC5rZXksXG4gICAgcGxhdGZvcm1VcmwsXG4gICAgb3JnYW5pemF0aW9uSWQ6IHByb3Zpc2lvbmVkLm9yZ2FuaXphdGlvbklkLFxuICAgIHNlcnZpY2VBY2NvdW50SWQ6IHByb3Zpc2lvbmVkLnNlcnZpY2VBY2NvdW50SWQsXG4gICAgc2VydmljZUFjY291bnROYW1lOiBwcm92aXNpb25lZC5zZXJ2aWNlQWNjb3VudE5hbWUsXG4gICAga2V5SWQ6IHByb3Zpc2lvbmVkLmtleUlkLFxuICAgIHNjb3BlOiBwcm92aXNpb25lZC5zY29wZSxcbiAgICBleHBpcmVzSW46IGV4cGlyZXNJblNlY29uZHMsXG4gICAgZXhwaXJlc0F0OiBwcm92aXNpb25lZC5leHBpcmVzQXQsXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIH0pO1xufVxuXG4vKipcbiAqIFJldGlyZSB0aGUgY3JlZGVudGlhbCB0aGlzIHJ1biByZXBsYWNlZCDigJQgQUZURVIgdGhlIG5ldyBvbmUgaXMgc3RvcmVkLCBuZXZlclxuICogYmVmb3JlLiBBIGZhaWx1cmUgaGVyZSBsZWF2ZXMgYSBzdXBlcmZsdW91cyBrZXkgdGhhdCBleHBpcmVzIG9uIGl0cyBvd247XG4gKiBkb2luZyBpdCBpbiB0aGUgb3RoZXIgb3JkZXIgd291bGQgbGVhdmUgdGhlIHNlY3JldCBuYW1pbmcgYSByZXZva2VkIGtleSBpZlxuICogdGhlIHdyaXRlIGZhaWxlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJldGlyZVByZXZpb3VzS2V5KFxuICBjbGllbnQ6IEFwaUNsaWVudCxcbiAgcGFzc3dvcmQ6IHN0cmluZyxcbiAgcHJvdmlzaW9uZWQ6IFByb3Zpc2lvbmVkS2V5LFxuICBwcmV2aW91czogeyBrZXlJZD86IHN0cmluZzsgc2VydmljZUFjY291bnRJZD86IHN0cmluZyB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghcHJldmlvdXMua2V5SWQgfHwgcHJldmlvdXMuc2VydmljZUFjY291bnRJZCAhPT0gcHJvdmlzaW9uZWQuc2VydmljZUFjY291bnRJZCkgcmV0dXJuO1xuICB0cnkge1xuICAgIGF3YWl0IHJldm9rZVNlcnZpY2VBY2NvdW50S2V5KFxuICAgICAgY2xpZW50LCBwYXNzd29yZCwgcHJvdmlzaW9uZWQub3JnYW5pemF0aW9uSWQsIHByb3Zpc2lvbmVkLnNlcnZpY2VBY2NvdW50SWQsIHByZXZpb3VzLmtleUlkLFxuICAgICk7XG4gICAgcHJpbnRTdWNjZXNzKGBSZXRpcmVkIHRoZSBwcmV2aW91cyBrZXkgKCR7cHJldmlvdXMua2V5SWR9KWApO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBwcmludFdhcm5pbmcoXG4gICAgICBgU3RvcmVkIHRoZSBuZXcga2V5LCBidXQgY291bGQgbm90IHJldm9rZSB0aGUgcHJldmlvdXMgb25lICgke3ByZXZpb3VzLmtleUlkfSk6IGBcbiAgICAgICsgYCR7ZXJyb3JNZXNzYWdlKGVycil9LiBJdCBleHBpcmVzIG9uIGl0cyBvd247IHJldm9rZSBpdCBmcm9tIGBcbiAgICAgICsgJ1NldHRpbmdzIOKGkiBTZXJ2aWNlIGFjY291bnRzIGlmIHlvdSB3YW50IGl0IGdvbmUgbm93LicsXG4gICAgKTtcbiAgfVxufVxuXG4vKiogUHJpbnQgdGhlIHN0b3JlZCBrZXkncyBzdW1tYXJ5IChKU09OIG9yIGh1bWFuKSBwbHVzIHRoZSBuZXh0IHN0ZXBzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50U3RvcmVkS2V5KHI6IHtcbiAganNvbjogYm9vbGVhbjtcbiAgc2VjcmV0TmFtZTogc3RyaW5nO1xuICBhcm46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVnaW9uOiBzdHJpbmc7XG4gIGFjY291bnROYW1lOiBzdHJpbmc7XG4gIHByb3Zpc2lvbmVkOiBQcm92aXNpb25lZEtleTtcbiAgZGF5czogbnVtYmVyO1xuICBzY2hlZHVsZUV4cHJlc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbn0pOiB2b2lkIHtcbiAgY29uc3QgeyBzZWNyZXROYW1lLCBhcm4sIHJlZ2lvbiwgYWNjb3VudE5hbWUsIHByb3Zpc2lvbmVkLCBkYXlzLCBzY2hlZHVsZUV4cHJlc3Npb24gfSA9IHI7XG4gIGlmIChyLmpzb24pIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgc2VjcmV0TmFtZSxcbiAgICAgIHNlY3JldEFybjogYXJuLFxuICAgICAgcmVnaW9uLFxuICAgICAgc2VydmljZUFjY291bnQ6IGFjY291bnROYW1lLFxuICAgICAgc2VydmljZUFjY291bnRJZDogcHJvdmlzaW9uZWQuc2VydmljZUFjY291bnRJZCxcbiAgICAgIGtleUlkOiBwcm92aXNpb25lZC5rZXlJZCxcbiAgICAgIHNjb3BlOiBwcm92aXNpb25lZC5zY29wZSxcbiAgICAgIGV4cGlyZXNJbkRheXM6IGRheXMsXG4gICAgICBleHBpcmVzQXQ6IHByb3Zpc2lvbmVkLmV4cGlyZXNBdCxcbiAgICAgIHNjaGVkdWxlOiBzY2hlZHVsZUV4cHJlc3Npb24gPz8gbnVsbCxcbiAgICB9LCBudWxsLCAyKSk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJycpO1xuICAgIHByaW50U2VjdGlvbignS2V5IFN0b3JlZCcpO1xuXG4gICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAnU2VjcmV0IE5hbWUnOiBzZWNyZXROYW1lLFxuICAgICAgJ1NlY3JldCBBUk4nOiBhcm4sXG4gICAgICAnUmVnaW9uJzogcmVnaW9uLFxuICAgICAgJ1NlcnZpY2UgQWNjb3VudCc6IGFjY291bnROYW1lLFxuICAgICAgJ0tleSBTY29wZSc6IHByb3Zpc2lvbmVkLnNjb3BlID8/ICcobm9uZSDigJQgdGhlIGFjY291bnRcXCdzIFJvbGUgaXMgaXRzIGF1dGhvcml0eSknLFxuICAgICAgJ0tleSBJZCc6IHByb3Zpc2lvbmVkLmtleUlkLFxuICAgICAgJ0V4cGlyZXMgSW4nOiBgJHtkYXlzfSBkYXlzYCxcbiAgICAgICdSZW5ldyBCeSc6IHByb3Zpc2lvbmVkLmV4cGlyZXNBdCxcbiAgICAgICdBdXRvLVJvdGF0ZSc6IHNjaGVkdWxlRXhwcmVzc2lvbiA/IGDinJMgJHtzY2hlZHVsZUV4cHJlc3Npb259YCA6ICdvZmYgKHBhc3MgLS1zY2hlZHVsZSB0byBlbmFibGUpJyxcbiAgICAgICdTdGF0dXMnOiAn4pyTIFN0b3JlZCcsXG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgcHJpbnRTdWNjZXNzKCdLZXkgc3RvcmVkLiBUbyB1c2Ugd2l0aCBzeW50aC9kZXBsb3k6Jyk7XG4gICAgcHJpbnRJbmZvKGAgIGV4cG9ydCBQTEFURk9STV9TRUNSRVRfTkFNRT0ke3NlY3JldE5hbWV9YCk7XG4gICAgcHJpbnRJbmZvKCcgIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgc3ludGggLS1pZCA8cGlwZWxpbmUtaWQ+IC0tc3RvcmUtdG9rZW5zJyk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICAgIGlmIChzY2hlZHVsZUV4cHJlc3Npb24pIHtcbiAgICAgIHByaW50SW5mbyhgQXV0by1yb3RhdGlvbiBpcyBhY3RpdmUgKCR7c2NoZWR1bGVFeHByZXNzaW9ufSk7IHRoZSBzZWNyZXQgaXMgcmVwbGFjZWQgYmVmb3JlICR7cHJvdmlzaW9uZWQuZXhwaXJlc0F0fS5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJpbnRJbmZvKGBSb3RhdGUgYmVmb3JlICR7cHJvdmlzaW9uZWQuZXhwaXJlc0F0fSB3aXRoOiBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tZGF5cyAke2RheXN9YCk7XG4gICAgICBwcmludEluZm8oJyAgKG9yIHBhc3MgLS1zY2hlZHVsZSB0byBpbnN0YWxsIGEgZGFpbHkgYXV0by1yb3RhdGlvbiBzdGFjayknKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGBzdG9yZS10b2tlbmAgY29tbWFuZCB3aXRoIHRoZSBDTEkgcHJvZ3JhbS5cbiAqXG4gKiBQcm92aXNpb25zIHRoZSBvcmcncyBtYWNoaW5lIGlkZW50aXR5IOKAlCBhIFNFUlZJQ0UgQUNDT1VOVCBhbmQgb25lIGBwYl9zYV/igKZgXG4gKiBrZXkg4oCUIGFuZCBzdG9yZXMgdGhlIGtleSBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGZvciBDREsgZGVwbG95bWVudHMsXG4gKiBDb2RlQnVpbGQncyByZWdpc3RyeSBjcmVkZW50aWFscywgdGhlIHBsdWdpbi1sb29rdXAgTGFtYmRhIGFuZCB0aGUgZXZlbnRcbiAqIGluZ2VzdGlvbiBMYW1iZGEuIE5vdGhpbmcgc3RvcmVkIGlzIHRpZWQgdG8gYSBwZXJzb24ncyBzZXNzaW9uIGFueVxuICogbW9yZTogdGhlIGFjY291bnQgb3V0bGl2ZXMgaXRzIGNyZWF0b3IsIHRha2VzIG5vIHNlYXQsIGFuZCBldmVyeSBhdWRpdCByb3cgaXRcbiAqIHByb2R1Y2VzIG5hbWVzIHRoZSBhY2NvdW50LlxuICpcbiAqIEJlY2F1c2UgY3JlYXRpbmcgYW4gYWNjb3VudCBhbmQgaXNzdWluZyBpdHMga2V5IGFyZSBzdGVwLXVwIGdhdGVkLCB0aGlzIG5lZWRzXG4gKiB0aGUgb3BlcmF0b3IncyBwYXNzd29yZCDigJQgYC0tcGFzc3dvcmRgLCBvciB0aGUgYFBMQVRGT1JNX1BBU1NXT1JEYCBlbnYgdmFyXG4gKiAocHJlZmVycmVkOiBpdCBrZWVwcyB0aGUgcGFzc3dvcmQgb3V0IG9mIHNoZWxsIGhpc3RvcnkgYW5kIHBsYW4gb3V0cHV0KS5cbiAqXG4gKiBCeSBkZWZhdWx0IGl0IE9OTFkgd3JpdGVzIHRoZSBzZWNyZXQuIFBhc3MgLS1zY2hlZHVsZSB0byBhbHNvIGRlcGxveSB0aGUgZGFpbHlcbiAqIEtFWSBST1RBVElPTiBzdGFjayAoYSBMYW1iZGEgdGhhdCByZXBsYWNlcyB0aGUga2V5IGJlZm9yZSBpdCBleHBpcmVzKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogUExBVEZPUk1fUEFTU1dPUkQ9KioqIHBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW4gLS1yZWdpb24gdXMtZWFzdC0xXG4gKiBQTEFURk9STV9QQVNTV09SRD0qKiogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLWRheXMgOTAgLS1yZWdpb24gdXMtZWFzdC0xXG4gKiBQTEFURk9STV9QQVNTV09SRD0qKiogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLXNjaGVkdWxlIC0tcmVnaW9uIHVzLWVhc3QtMSAgICAgIyArIGRhaWx5IHJvdGF0aW9uXG4gKiBQTEFURk9STV9QQVNTV09SRD0qKiogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLXNjb3BlIHJlcG9ydGluZzppbmdlc3QgLS1zY2hlZHVsZVxuICogUExBVEZPUk1fUEFTU1dPUkQ9KioqIHBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW4gLS1zY29wZSByZWdpc3RyeTpwdXNoIC0tc2NoZWR1bGVcbiAqIFBMQVRGT1JNX1BBU1NXT1JEPSoqKiBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tc2NvcGUgcGlwZWxpbmVfcmVnaXN0cnk6d3JpdGUgLS1zY2hlZHVsZVxuICogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLWRyeS1ydW5cbiAqIHBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW4gLXUgYWRtaW4gLXAgJyoqKicgLS1yZWdpb24gdXMtZWFzdC0xXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlVG9rZW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhcbiAgICB3aXRoUHJvZmlsZU9wdGlvbihcbiAgICAgIHdpdGhSZWdpb25PcHRpb24ocHJvZ3JhbVxuICAgICAgICAuY29tbWFuZCgnc3RvcmUtdG9rZW4nKVxuICAgICAgICAuZGVzY3JpcHRpb24oJ1Byb3Zpc2lvbiBhbiBvcmcgc2VydmljZS1hY2NvdW50IGtleSAoaXRzIG93biBtYWNoaW5lIGlkZW50aXR5KSBhbmQgc3RvcmUgaXQgaW4gQVdTIFNlY3JldHMgTWFuYWdlciBmb3IgQ0RLIGRlcGxveW1lbnRzJylcbiAgICAgICAgLm9wdGlvbignLXUsIC0taWRlbnRpZmllciA8aWRlbnRpZmllcj4nLCAnVXNlcm5hbWUgb3IgZW1haWwgKHNraXBzIFBMQVRGT1JNX1RPS0VOIHJlcXVpcmVtZW50KScpXG4gICAgICAgIC5vcHRpb24oJy1wLCAtLXBhc3N3b3JkIDxwYXNzd29yZD4nLCAnTG9naW4gcGFzc3dvcmQg4oCUIGFsc28gdXNlZCBmb3IgdGhlIHN0ZXAtdXAgZXZlcnkga2V5IHdyaXRlIHJlcXVpcmVzIChwcmVmZXIgUExBVEZPUk1fUEFTU1dPUkQpJylcbiAgICAgICAgLm9wdGlvbignLS1kYXlzIDxkYXlzPicsICdLZXkgbGlmZXRpbWUgaW4gZGF5cyAobWF4IDM2NSknLCAnMzAnKVxuICAgICAgICAub3B0aW9uKCctLXNjb3BlIDxzY29wZT4nLCBgUHJvdmlzaW9uIGEgc2luZ2xlLXB1cnBvc2UgY3JlZGVudGlhbCBpbnN0ZWFkIG9mIHRoZSBwbGF0Zm9ybSBvbmUuIE9uZSBvZjogJHtPYmplY3Qua2V5cyhTQ09QRV9DQVRBTE9HKS5qb2luKCcsICcpfWApXG4gICAgICAgIC5vcHRpb24oJy0tYWNjb3VudCA8bmFtZT4nLCAnT3ZlcnJpZGUgdGhlIHNlcnZpY2UtYWNjb3VudCBuYW1lIHRoaXMga2V5IGlzIGlzc3VlZCBvbiAoZGVmYXVsdDogZGVyaXZlZCBmcm9tIC0tc2NvcGUpJylcbiAgICAgICAgLm9wdGlvbignLS1kcnktcnVuJywgJ1Nob3cgd2hhdCB3b3VsZCBiZSBwcm92aXNpb25lZCB3aXRob3V0IGNhbGxpbmcgdGhlIHBsYXRmb3JtIG9yIHdyaXRpbmcgdG8gU2VjcmV0cyBNYW5hZ2VyJywgZmFsc2UpKSxcbiAgICApXG4gICAgICAub3B0aW9uKCctLXNjaGVkdWxlJywgJ0Fsc28gZGVwbG95IHRoZSBkYWlseSBrZXktcm90YXRpb24gc3RhY2sgdGhhdCByZXBsYWNlcyB0aGlzIGtleSBiZWZvcmUgaXQgZXhwaXJlcyAob2ZmIGJ5IGRlZmF1bHQpJywgZmFsc2UpXG4gICAgICAub3B0aW9uKCctLWNyb24gPGV4cHI+JywgJ1JvdGF0aW9uIHNjaGVkdWxlIGFzIGEgNS1maWVsZCBjcm9uLCB1c2VkIHdpdGggLS1zY2hlZHVsZSAoZGVmYXVsdDogVE9LRU5fUkVORVdfU0NIRURVTEUgZW52IG9yIFwiMCAwICogKiAqXCI7IG1pbiBldmVyeSAxNSBtaW51dGVzKScpXG4gICAgICAub3B0aW9uKCctLWpzb24nLCAnT3V0cHV0IHJlc3VsdCBhcyBKU09OJywgZmFsc2UpLFxuICApXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1N0b3JlIFRva2VuJywgdW5kZWZpbmVkLCB7IHF1aWV0OiBvcHRpb25zLmpzb24gfSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgICAgY29uc3QgcmVnaW9uID0gcmVzb2x2ZUF3c1JlZ2lvbihvcHRpb25zLnJlZ2lvbik7XG4gICAgICAgIGNvbnN0IGF3cyA9IHsgcmVnaW9uLCBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkIH07XG5cbiAgICAgICAgY29uc3QgZGF5cyA9IHZhbGlkYXRlTnVtYmVyKG9wdGlvbnMuZGF5cywgJ2RheXMnLCAxLCAzNjUpO1xuICAgICAgICBjb25zdCBleHBpcmVzSW5TZWNvbmRzID0gZGF5cyAqIDI0ICogNjAgKiA2MDtcblxuICAgICAgICBjb25zdCBzY29wZSA9IG9wdGlvbnMuc2NvcGUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBjYXRhbG9ndWVkID0gc2NvcGUgPyBTQ09QRV9DQVRBTE9HW3Njb3BlXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHNjb3BlICYmICFjYXRhbG9ndWVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIC0tc2NvcGUgXCIke3Njb3BlfVwiLiBTdXBwb3J0ZWQ6ICR7T2JqZWN0LmtleXMoU0NPUEVfQ0FUQUxPRykuam9pbignLCAnKX1gKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBXaGljaCBtYWNoaW5lIGlkZW50aXR5IHRoaXMgY3JlZGVudGlhbCBiZWxvbmdzIHRvOiB0aGUgc2NvcGUncyBvd25cbiAgICAgICAgLy8gYWNjb3VudCwgb3IgdGhlIG9yZydzIHBsYXRmb3JtIGF1dG9tYXRpb24gYWNjb3VudC5cbiAgICAgICAgY29uc3QgaWRlbnRpdHkgPSBjYXRhbG9ndWVkID8/IFBMQVRGT1JNX0FDQ09VTlQ7XG4gICAgICAgIGNvbnN0IGFjY291bnROYW1lID0gKG9wdGlvbnMuYWNjb3VudCBhcyBzdHJpbmcgfCB1bmRlZmluZWQpID8/IGlkZW50aXR5LmFjY291bnQ7XG4gICAgICAgIGNvbnN0IHJvbGUgPSByb2xlRm9yKGlkZW50aXR5KTtcbiAgICAgICAgY29uc3Qga2V5U2NvcGUgPSBpZGVudGl0eS5rZXlTY29wZTtcblxuICAgICAgICAvLyBTdGVwIDA6IGxvZyBpbiBmaXJzdCB3aGVuIGNyZWRzIGFyZSBhdmFpbGFibGUgYW5kIG5vIFBMQVRGT1JNX1RPS0VOIGlzXG4gICAgICAgIC8vIHNldCAoc2hhcmVkIHdpdGggc2V0dXAtZXZlbnRzKS4gQ3JlZHMgY29tZSBmcm9tIC0taWRlbnRpZmllci8tLXBhc3N3b3JkXG4gICAgICAgIC8vIE9SIHRoZSBlbnYgdmFycyBQTEFURk9STV9JREVOVElGSUVSL1BMQVRGT1JNX1BBU1NXT1JEIOKAlCB0aGUgZW52IHBhdGhcbiAgICAgICAgLy8gbGV0cyBjYWxsZXJzIGxpa2UgYHByb3Zpc2lvbiAtLXdpdGgtZXZlbnRzYCBwYXNzIHRoZW0gd2l0aG91dCBwdXR0aW5nXG4gICAgICAgIC8vIHRoZSBwYXNzd29yZCBvbiB0aGUgY29tbWFuZCBsaW5lICh3aGVyZSBpdCB3b3VsZCBzaG93IGluIHBsYW5zL2xvZ3MpLlxuICAgICAgICBhd2FpdCBlbnN1cmVQbGF0Zm9ybVRva2VuKG9wdGlvbnMpO1xuXG4gICAgICAgIC8vIFRoZSBwYXNzd29yZCBpcyBBTFNPIHRoZSBzdGVwLXVwIGZhY3RvciBmb3IgYm90aCB3cml0ZXMgYmVsb3csIHNvIGl0IGlzXG4gICAgICAgIC8vIHJlcXVpcmVkIGV2ZW4gd2hlbiBQTEFURk9STV9UT0tFTiBpcyBhbHJlYWR5IHNldC4gU2F5IHRoYXQgcGxhaW5seVxuICAgICAgICAvLyByYXRoZXIgdGhhbiBmYWlsaW5nIHRocmVlIGNhbGxzIGxhdGVyIHdpdGggYSA0MDMuXG4gICAgICAgIGNvbnN0IHBhc3N3b3JkID0gKG9wdGlvbnMucGFzc3dvcmQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSB8fCBwcm9jZXNzLmVudi5QTEFURk9STV9QQVNTV09SRDtcbiAgICAgICAgaWYgKCFwYXNzd29yZCAmJiAhb3B0aW9ucy5kcnlSdW4pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnQSBwYXNzd29yZCBpcyByZXF1aXJlZDogY3JlYXRpbmcgYSBzZXJ2aWNlIGFjY291bnQgYW5kIGlzc3VpbmcgaXRzIGtleSBhcmUgYm90aCBzdGVwLXVwIGdhdGVkLiAnXG4gICAgICAgICAgICArICdTZXQgUExBVEZPUk1fUEFTU1dPUkQgKHByZWZlcnJlZCkgb3IgcGFzcyAtLXBhc3N3b3JkLicsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaW50U2VjdGlvbignUHJvdmlzaW9uIFNlcnZpY2UtQWNjb3VudCBLZXknKTtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMob3B0aW9ucyk7XG5cbiAgICAgICAgaWYgKG9wdGlvbnMuZHJ5UnVuKSB7XG4gICAgICAgICAgLy8gRHJ5IHJ1biBzdGF5cyBlbnRpcmVseSBPRkZMSU5FIOKAlCBpdCBtdXN0IG5vdCBjcmVhdGUgYW4gYWNjb3VudCBvclxuICAgICAgICAgIC8vIGJ1cm4gYSBrZXkganVzdCB0byBzaG93IHdoYXQgaXQgd291bGQgZG8uXG4gICAgICAgICAgcHJpbnREcnlSdW5QbGFuKHtcbiAgICAgICAgICAgIHNlcnZpY2VBY2NvdW50OiBhY2NvdW50TmFtZSxcbiAgICAgICAgICAgIHJvbGVzOiByb2xlID8gU0VFRF9CVU5ETEVTW3JvbGVdLm5hbWUgOiAnbm9uZSAoc2NvcGVkIGtleSwgbGVhc3QgcHJpdmlsZWdlKScsXG4gICAgICAgICAgICBzY29wZToga2V5U2NvcGUgPz8gJyhub25lIOKAlCB0aGUgYWNjb3VudFxcJ3MgUm9sZSBpcyBpdHMgYXV0aG9yaXR5KScsXG4gICAgICAgICAgICBzZWNyZXROYW1lOiBwcm9jZXNzLmVudi5QTEFURk9STV9TRUNSRVRfTkFNRSB8fCBgJHtzZWNyZXROYW1lRm9yT3JnKCc8b3JnSWQ+Jywgc2NvcGUgPyBzY29wZVNlY3JldExlYWYoc2NvcGUpIDogJ3BsYXRmb3JtJyl9YCxcbiAgICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICAgIGV4cGlyZXNJbkRheXM6IGRheXMsXG4gICAgICAgICAgfSwgISFvcHRpb25zLmpzb24pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleU5hbWUgPSBgJHthY2NvdW50TmFtZX0tJHtuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTApfWA7XG4gICAgICAgIGNvbnN0IHByb3Zpc2lvbmVkID0gYXdhaXQgcHJvdmlzaW9uU2VydmljZUFjY291bnRLZXkoe1xuICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQhLFxuICAgICAgICAgIGFjY291bnROYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBpZGVudGl0eS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAuLi4ocm9sZSA/IHsgcm9sZSB9IDoge30pLFxuICAgICAgICAgIC4uLihrZXlTY29wZSA/IHsgc2NvcGU6IGtleVNjb3BlIH0gOiB7fSksXG4gICAgICAgICAgZXhwaXJlc0luU2Vjb25kcyxcbiAgICAgICAgICBrZXlOYW1lLFxuICAgICAgICB9KTtcblxuICAgICAgICBwcmludFN1Y2Nlc3MoYEtleSBpc3N1ZWQgb24gc2VydmljZSBhY2NvdW50ICcke2FjY291bnROYW1lfScgKGV4cGlyZXMgJHtwcm92aXNpb25lZC5leHBpcmVzQXR9KWApO1xuXG4gICAgICAgIC8vIEFuIGV4cGxpY2l0IFBMQVRGT1JNX1NFQ1JFVF9OQU1FIHN0aWxsIHdpbnMgKHRoZSBlc2NhcGUgaGF0Y2ggZm9yXG4gICAgICAgIC8vIGhhbmQtbWFuYWdlZCBwYXRocyk7IG90aGVyd2lzZSBkZXJpdmUgaXQgZnJvbSB0aGUgb3JnIHRoZSBwbGF0Zm9ybVxuICAgICAgICAvLyByZXBvcnRlZCwgd2hpY2ggd29ya3Mgd2l0aCBhbiBvcGFxdWUgYWNjZXNzIGtleSBhcyBQTEFURk9STV9UT0tFTiDigJRcbiAgICAgICAgLy8gYSBrZXkgY2FycmllcyBubyBvcmcgY2xhaW0gdG8gZGVjb2RlLlxuICAgICAgICBjb25zdCBzZWNyZXROYW1lID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fU0VDUkVUX05BTUVcbiAgICAgICAgICB8fCBzZWNyZXROYW1lRm9yT3JnKHByb3Zpc2lvbmVkLm9yZ2FuaXphdGlvbklkLCBzY29wZSA/IHNjb3BlU2VjcmV0TGVhZihzY29wZSkgOiAncGxhdGZvcm0nKTtcblxuICAgICAgICBhdWRpdExvZygnc3RvcmUtdG9rZW4nLCB7XG4gICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgc2VjcmV0TmFtZSxcbiAgICAgICAgICBkYXlzLFxuICAgICAgICAgIHNlcnZpY2VBY2NvdW50OiBhY2NvdW50TmFtZSxcbiAgICAgICAgICBzY29wZTogc2NvcGUgPz8gbnVsbCxcbiAgICAgICAgICBrZXlJZDogcHJvdmlzaW9uZWQua2V5SWQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByaW50SW5mbygnUGFyYW1ldGVycycsIHtcbiAgICAgICAgICBzZWNyZXROYW1lLFxuICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICBzZXJ2aWNlQWNjb3VudDogYWNjb3VudE5hbWUsXG4gICAgICAgICAgc2NvcGU6IHNjb3BlID8/ICcobm9uZSknLFxuICAgICAgICAgIGRheXMsXG4gICAgICAgICAgZXhwaXJlc0luOiBgJHtleHBpcmVzSW5TZWNvbmRzfXNgLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBXaGF0IHRoaXMgcnVuIGlzIFJFUExBQ0lORywgcmVhZCBiZWZvcmUgdGhlIHdyaXRlIHNvIHRoZSBvbGQga2V5IGNhbiBiZVxuICAgICAgICAvLyByZXRpcmVkIGFmdGVyIHRoZSBuZXcgb25lIGlzIHNhZmVseSBzdG9yZWQuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzID0gYXdhaXQgcHJldmlvdXNLZXlJZChzZWNyZXROYW1lLCBhd3MpO1xuXG4gICAgICAgIGNvbnN0IHNlY3JldFZhbHVlID0gYnVpbGRTZWNyZXRWYWx1ZShwcm92aXNpb25lZCwgY2xpZW50LmdldEJhc2VVcmwoKSwgZXhwaXJlc0luU2Vjb25kcyk7XG5cbiAgICAgICAgcHJpbnRTZWN0aW9uKCdTdG9yZSBLZXknKTtcblxuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGBQaXBlbGluZSBCdWlsZGVyIHNlcnZpY2UtYWNjb3VudCBrZXkgKCR7YWNjb3VudE5hbWV9OyByZW5ldyBieSAke3Byb3Zpc2lvbmVkLmV4cGlyZXNBdH0pYDtcbiAgICAgICAgYXdhaXQgdXBzZXJ0U2VjcmV0KHNlY3JldE5hbWUsIHNlY3JldFZhbHVlLCBkZXNjcmlwdGlvbiwgYXdzKTtcblxuICAgICAgICBjb25zdCBhcm4gPSBhd2FpdCBnZXRTZWNyZXRBcm4oc2VjcmV0TmFtZSwgYXdzKTtcblxuICAgICAgICBhd2FpdCByZXRpcmVQcmV2aW91c0tleShjbGllbnQsIHBhc3N3b3JkISwgcHJvdmlzaW9uZWQsIHByZXZpb3VzKTtcblxuICAgICAgICAvLyBPcHRpb25hbGx5IGluc3RhbGwgdGhlIG9uY2UtYS1kYXkgcm90YXRpb24gc3RhY2sgc28gdGhpcyBrZXkgbmV2ZXIgbGFwc2VzLlxuICAgICAgICBsZXQgc2NoZWR1bGVFeHByZXNzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChvcHRpb25zLnNjaGVkdWxlKSB7XG4gICAgICAgICAgY29uc3QgZml2ZUZpZWxkQ3JvbiA9IG9wdGlvbnMuY3JvbiB8fCBwcm9jZXNzLmVudi5UT0tFTl9SRU5FV19TQ0hFRFVMRSB8fCBERUZBVUxUX1JFTkVXX0NST047XG4gICAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uID0gYXdhaXQgZGVwbG95UmVuZXdTY2hlZHVsZSh7XG4gICAgICAgICAgICBzZWNyZXROYW1lLFxuICAgICAgICAgICAgZGF5cyxcbiAgICAgICAgICAgIGZpdmVGaWVsZENyb24sXG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcmludFN0b3JlZEtleSh7XG4gICAgICAgICAganNvbjogISFvcHRpb25zLmpzb24sXG4gICAgICAgICAgc2VjcmV0TmFtZSxcbiAgICAgICAgICBhcm4sXG4gICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgIGFjY291bnROYW1lLFxuICAgICAgICAgIHByb3Zpc2lvbmVkLFxuICAgICAgICAgIGRheXMsXG4gICAgICAgICAgc2NoZWR1bGVFeHByZXNzaW9uLFxuICAgICAgICB9KTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgY29tbWFuZDogJ3N0b3JlLXRva2VuJyxcbiAgICAgICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgc2VjcmV0TmFtZTogcHJvY2Vzcy5lbnYuUExBVEZPUk1fU0VDUkVUX05BTUUgfHwgJyhkZXJpdmVkIGZyb20gdGhlIG9yZyknLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdG9rZW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9zdG9yZS10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLFlBQVksRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUs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a0JBQWtCLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQztvQkFDN0MsVUFBVTtvQkFDVixJQUFJO29CQUNKLGFBQWE7b0JBQ2IsTUFBTTtvQkFDTixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87aUJBQ3pCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxjQUFjLENBQUM7Z0JBQ2IsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSTtnQkFDcEIsVUFBVTtnQkFDVixHQUFHO2dCQUNILE1BQU07Z0JBQ04sV0FBVztnQkFDWCxXQUFXO2dCQUNYLElBQUk7Z0JBQ0osa0JBQWtCO2FBQ25CLENBQUMsQ0FBQztRQUVMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMxQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRTtvQkFDUCxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsV0FBVztvQkFDWCxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsSUFBSSx3QkFBd0I7aUJBQ3pFO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBleGVjRmlsZVN5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IExhbWJkYUNsaWVudCwgVXBkYXRlRnVuY3Rpb25Db2RlQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1sYW1iZGEnO1xuaW1wb3J0IHsgQVVUT01BVElPTl9BQ0NPVU5UX0JVTkRMRVMsIGVycm9yTWVzc2FnZSwgU0VFRF9CVU5ETEVTIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBTZWVkQnVuZGxlSWQsIFRva2VuU2NvcGUgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBQSVBFTElORV9SRUdJU1RSQVRJT05fQ0FQQUJJTElUWSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBBUFBfVkVSU0lPTiwgdmFsaWRhdGVOdW1iZXIgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFwaUNsaWVudCB9IGZyb20gJy4uL3V0aWxzL2FwaS1jbGllbnQuanMnO1xuaW1wb3J0IHsgYXVkaXRMb2cgfSBmcm9tICcuLi91dGlscy9hdWRpdC1sb2cuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZUF3c1JlZ2lvbiB9IGZyb20gJy4uL3V0aWxzL2F3cy1lbnYuanMnO1xuaW1wb3J0IHsgdXBzZXJ0U2VjcmV0LCBnZXRTZWNyZXRBcm4sIGdldFNlY3JldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvYXdzLXNlY3JldHMuanMnO1xuaW1wb3J0IHsgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jLCBwcmludENvbW1hbmRIZWFkZXIsIHByaW50U3NsV2FybmluZywgd2l0aFByb2ZpbGVPcHRpb24sIHdpdGhSZWdpb25PcHRpb24sIHdpdGhTc2xPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyB0b0V2ZW50QnJpZGdlQ3JvbiB9IGZyb20gJy4uL3V0aWxzL2Nyb24uanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgZW5zdXJlUGxhdGZvcm1Ub2tlbiwgc2NvcGVTZWNyZXRMZWFmLCBzZWNyZXROYW1lRm9yT3JnIH0gZnJvbSAnLi4vdXRpbHMvcGxhdGZvcm0tc2VjcmV0LmpzJztcbmltcG9ydCB7IHByb3Zpc2lvblNlcnZpY2VBY2NvdW50S2V5LCByZXZva2VTZXJ2aWNlQWNjb3VudEtleSwgdHlwZSBQcm92aXNpb25lZEtleSB9IGZyb20gJy4uL3V0aWxzL3NlcnZpY2UtYWNjb3VudC5qcyc7XG5cbi8vIEVTTSBoYXMgbm8gX19kaXJuYW1lOyBkZXJpdmUgaXQgZnJvbSB0aGlzIG1vZHVsZSdzIFVSTC5cbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5jb25zdCBSRU5FV19TVEFDS19OQU1FID0gJ3BpcGVsaW5lLWJ1aWxkZXItdG9rZW4tcmVuZXcnO1xuLy8gQ0ZOLW1hbmFnZWQgTGFtYmRhIGZ1bmN0aW9uIG5hbWUg4oCUIGtlZXAgaW4gc3luYyB3aXRoIHRva2VuLXJlbmV3LXN0YWNrLmpzb24uXG5jb25zdCBSRU5FV19MQU1CREFfTkFNRSA9ICdwaXBlbGluZS1idWlsZGVyLXRva2VuLXJlbmV3Jztcbi8vIERlZmF1bHQgNS1maWVsZCBjcm9uIChkYWlseSBhdCBtaWRuaWdodCkgd2hlbiBuZWl0aGVyIC0tY3JvbiBub3IgVE9LRU5fUkVORVdfU0NIRURVTEUgaXMgc2V0LlxuY29uc3QgREVGQVVMVF9SRU5FV19DUk9OID0gJzAgMCAqICogKic7XG5cbi8qKiBPbmUgbGVhc3QtcHJpdmlsZWdlIG1hY2hpbmUgaWRlbnRpdHkgYHN0b3JlLXRva2VuYCBjYW4gcHJvdmlzaW9uLiAqL1xuaW50ZXJmYWNlIENhdGFsb2dFbnRyeSB7XG4gIC8qKiBUaGUgc2VydmljZSBhY2NvdW50IHRoZSBrZXkgaXMgaXNzdWVkIG9uLiAqL1xuICBhY2NvdW50OiBrZXlvZiB0eXBlb2YgQVVUT01BVElPTl9BQ0NPVU5UX0JVTkRMRVM7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGNhcGFiaWxpdHkgU0NPUEUgc3RhbXBlZCBvbiB0aGUgS0VZOiB0aGUgZXhjaGFuZ2VkIHRva2VuIGNhcnJpZXMgdGhpcyBvbmVcbiAgICogc2NvcGUgYW5kIG5vIHBlcm1pc3Npb25zIGF0IGFsbCwgc28gdGhlIGFjY291bnQgbmVlZHMgbm8gUm9sZS5cbiAgICovXG4gIGtleVNjb3BlPzogVG9rZW5TY29wZTtcbn1cblxuLyoqXG4gKiBUaGUgbGVhc3QtcHJpdmlsZWdlIGNyZWRlbnRpYWxzIGAtLXNjb3BlYCBzZWxlY3RzLCBhbmQgd2hhdCBlYWNoIG9uZSBpcyBGT1IuXG4gKlxuICogVHdvIHNoYXBlcywgb25lIGZsYWc6XG4gKiAgLSBhIEtFWSBzY29wZSAoYHJlcG9ydGluZzppbmdlc3RgLCBgcmVnaXN0cnk6cHVzaGApOiB0aGUga2V5IGV4Y2hhbmdlcyB0byBhXG4gKiAgICB0b2tlbiBjYXJyeWluZyBvbmx5IHRoYXQgc2NvcGUg4oCUIG5vIHBlcm1pc3Npb25zLCBubyBhZG1pbiBmbGFncyDigJQgZm9yIGFcbiAqICAgIHJvdXRlIHRoYXQgY2hlY2tzIHRoZSBzY29wZSBpdHNlbGY7XG4gKiAgLSBhIENBUEFCSUxJVFkgKGBwaXBlbGluZV9yZWdpc3RyeTp3cml0ZWApOiBhbiBvcmRpbmFyeSBwZXJtaXNzaW9uLCBzbyB0aGUga2V5XG4gKiAgICBpcyB1bnNjb3BlZCBhbmQgaXRzIGFjY291bnQgaG9sZHMgdGhlIG9uZSBidWlsdC1pbiBSb2xlIGNhcnJ5aW5nIGl0XG4gKiAgICAoUGlwZWxpbmUgUmVnaXN0cmF0aW9uKS4gVXNlZCB3aGVyZSB0aGUgcm91dGUgaXMgZ2F0ZWQgYnlcbiAqICAgIGByZXF1aXJlUGVybWlzc2lvbmAsIHdoaWNoIHBlb3BsZSBzYXRpc2Z5IHRocm91Z2ggdGhlaXIgb3duIFJvbGVzLlxuICpcbiAqIFdoaWNoIFJvbGUgZWFjaCBhY2NvdW50IGhvbGRzIGNvbWVzIGZyb20gYXBpLWNvcmUnc1xuICogYEFVVE9NQVRJT05fQUNDT1VOVF9CVU5ETEVTYCDigJQgdGhlIHNhbWUgdGFibGUgdGhlIHBsYXRmb3JtJ3Mgc3RhcnR1cCBiYWNrZmlsbFxuICogbW92ZXMgZXhpc3RpbmcgYWNjb3VudHMgd2l0aC5cbiAqL1xuY29uc3QgU0NPUEVfQ0FUQUxPRzogUmVjb3JkPHN0cmluZywgQ2F0YWxvZ0VudHJ5PiA9IHtcbiAgJ3JlcG9ydGluZzppbmdlc3QnOiB7XG4gICAgYWNjb3VudDogJ3JlcG9ydGluZy1pbmdlc3QnLFxuICAgIGRlc2NyaXB0aW9uOiAnQVdTIHBpcGVsaW5lLWV2ZW50IGluZ2VzdGlvbiBhbmQgc3RlcCBzZWN1cml0eS1yZXBvcnQgdXBsb2FkcyAodGhlIHJlcG9ydGluZzppbmdlc3Qgc2NvcGUpJyxcbiAgICBrZXlTY29wZTogJ3JlcG9ydGluZzppbmdlc3QnLFxuICB9LFxuICAncmVnaXN0cnk6cHVzaCc6IHtcbiAgICBhY2NvdW50OiAncmVnaXN0cnktcHVzaCcsXG4gICAgZGVzY3JpcHRpb246ICdDSSBpbWFnZSBwdXNoZXMgYW5kIHB1bGxzIGludG8gdGhpcyBvcmfigJlzIHJlZ2lzdHJ5IG5hbWVzcGFjZSAoQ29kZUJ1aWxkIOKGkiAvdG9rZW4pJyxcbiAgICBrZXlTY29wZTogJ3JlZ2lzdHJ5OnB1c2gnLFxuICB9LFxuICBbUElQRUxJTkVfUkVHSVNUUkFUSU9OX0NBUEFCSUxJVFldOiB7XG4gICAgYWNjb3VudDogJ3BpcGVsaW5lLXJlZ2lzdGVyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBDb2RlQnVpbGQgc3ludGggcmVnaXN0ZXJpbmcgaXRzIHN0ZXAgbWFuaWZlc3QgKFBPU1QvREVMRVRFIC9waXBlbGluZXMvcmVnaXN0cnkpJyxcbiAgfSxcbn07XG5cbi8qKlxuICogVGhlIGFjY291bnQgYmVoaW5kIHRoZSBkZWZhdWx0IChubyBgLS1zY29wZWApIGNyZWRlbnRpYWw6IHRoZSBDb2RlQnVpbGQgc3ludGgsXG4gKiBgcGlwZWxpbmUgZGVwbG95IC0tc3RvcmUtdG9rZW5zYCwgdGhlIHBsdWdpbi1sb29rdXAgTGFtYmRhIGFuZCB0aGUgcnVuLXRpbWVcbiAqIHZ1bG5lcmFiaWxpdHkgY2hlY2suIEl0IGhvbGRzIHRoZSBQaXBlbGluZSBBdXRvbWF0aW9uIFJvbGUg4oCUIHBpcGVsaW5lIGFuZFxuICogcGx1Z2luIHJlYWRzIOKAlCBhbmQgbm90aGluZyBtb3JlOyBpdCBpcyBubyBsb25nZXIgYW4gb3JnIGFkbWluLlxuICovXG5jb25zdCBQTEFURk9STV9BQ0NPVU5UOiBDYXRhbG9nRW50cnkgPSB7XG4gIGFjY291bnQ6ICdwbGF0Zm9ybS1hdXRvbWF0aW9uJyxcbiAgZGVzY3JpcHRpb246ICdTdG9yZWQgcGxhdGZvcm0gY3JlZGVudGlhbCBmb3IgQ0RLIHN5bnRoL2RlcGxveSwgcGx1Z2luIGxvb2t1cCBhbmQgdGhlIHJ1bi10aW1lIHZ1bG5lcmFiaWxpdHkgY2hlY2snLFxufTtcblxuLyoqIFRoZSBidWlsdC1pbiBSb2xlIChzZWVkIGJ1bmRsZSkgYSBORVcgYWNjb3VudCBmb3IgYGVudHJ5YCBpcyBncmFudGVkLCBpZiBhbnkuICovXG5mdW5jdGlvbiByb2xlRm9yKGVudHJ5OiBDYXRhbG9nRW50cnkpOiBTZWVkQnVuZGxlSWQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gQVVUT01BVElPTl9BQ0NPVU5UX0JVTkRMRVNbZW50cnkuYWNjb3VudF0gPz8gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIERlcGxveSAob3IgdXBkYXRlKSB0aGUgb25jZS1hLWRheSBLRVkgUk9UQVRJT04gc3RhY2s6IGEgc2NoZWR1bGVkIExhbWJkYSB0aGF0XG4gKiByZXBsYWNlcyB0aGUgc2VydmljZS1hY2NvdW50IGtleSBpbiB0aGlzIHNlY3JldCBiZWZvcmUgaXQgZXhwaXJlcy4gTWlycm9yc1xuICogc2V0dXAtZXZlbnRzIOKAlCBgYXdzIGNsb3VkZm9ybWF0aW9uIGRlcGxveWAgZm9yIHRoZSBpbmZyYSwgdGhlbiBhIGRpcmVjdFxuICogVXBkYXRlRnVuY3Rpb25Db2RlIHdpdGggdGhlIHJvdGF0b3IgaGFuZGxlciBjb21waWxlZCBhbG9uZ3NpZGUgdGhpcyBDTEkgKHNlZVxuICogc3JjL2xhbWJkYS90b2tlbi1yZW5ldy1oYW5kbGVyLnRzKS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGVwbG95UmVuZXdTY2hlZHVsZShvcHRzOiB7XG4gIHNlY3JldE5hbWU6IHN0cmluZztcbiAgZGF5czogbnVtYmVyO1xuICBmaXZlRmllbGRDcm9uOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBwcm9maWxlPzogc3RyaW5nO1xufSk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHNjaGVkdWxlRXhwcmVzc2lvbiA9IHRvRXZlbnRCcmlkZ2VDcm9uKG9wdHMuZml2ZUZpZWxkQ3Jvbik7IC8vIHZhbGlkYXRlcyArIDE1LW1pbiBndWFyZFxuXG4gIC8vIE5hbWUgcmVuZXdhbCByZXNvdXJjZXMgcGVyLXNlY3JldCBzbyBhIHNjb3BlZC1jcmVkZW50aWFsIHN0YWNrIChlLmcuIHRoZVxuICAvLyByZXBvcnRpbmctaW5nZXN0IGtleSB0aGUgZXZlbnQgTGFtYmRhIHJlYWRzKSBjb2V4aXN0cyB3aXRoIHRoZVxuICAvLyBwbGF0Zm9ybS1jcmVkZW50aWFsIHN0YWNrIGluc3RlYWQgb2YgY29sbGlkaW5nIG9uIHRoZSAoYWNjb3VudC1nbG9iYWwpIElBTVxuICAvLyByb2xlIC8gTGFtYmRhIC8gcnVsZSBuYW1lcy4gVGhlIHBsYXRmb3JtIHNlY3JldCBrZWVwcyB0aGUgYmFyZSBuYW1lXG4gIC8vIChzdWZmaXggJycpIHNvIGV4aXN0aW5nIGRlcGxveW1lbnRzJyBzdGFjayBpcyB1cGRhdGVkIGluIHBsYWNlLCBub3RcbiAgLy8gZHVwbGljYXRlZDsgYW55IG90aGVyIHNlY3JldCBhcHBlbmRzIGl0cyB0cmFpbGluZyBwYXRoIHNlZ21lbnQuXG4gIGNvbnN0IHNlY3JldExlYWYgPSBvcHRzLnNlY3JldE5hbWUucmVwbGFjZSgvLipcXC8vLCAnJyk7IC8vICdwbGF0Zm9ybScgfCAncmVwb3J0aW5nLWluZ2VzdCcgfCDigKZcbiAgY29uc3QgbmFtZVN1ZmZpeCA9IHNlY3JldExlYWYgPT09ICdwbGF0Zm9ybScgPyAnJyA6IGAtJHtzZWNyZXRMZWFmLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksICctJyl9YDtcbiAgY29uc3Qgc3RhY2tOYW1lID0gYCR7UkVORVdfU1RBQ0tfTkFNRX0ke25hbWVTdWZmaXh9YDtcbiAgY29uc3QgbGFtYmRhTmFtZSA9IGAke1JFTkVXX0xBTUJEQV9OQU1FfSR7bmFtZVN1ZmZpeH1gO1xuXG4gIHByaW50U2VjdGlvbignU2NoZWR1bGUgUm90YXRpb24nKTtcbiAgcHJpbnRJbmZvKCdQYXJhbWV0ZXJzJywge1xuICAgIHN0YWNrOiBzdGFja05hbWUsXG4gICAgc2NoZWR1bGU6IG9wdHMuZml2ZUZpZWxkQ3JvbixcbiAgICBldmVudGJyaWRnZTogc2NoZWR1bGVFeHByZXNzaW9uLFxuICAgIHJlbmV3RGF5czogb3B0cy5kYXlzLFxuICB9KTtcblxuICAvLyBTdGVwIDE6IGluZnJhIChMYW1iZGEgZ2V0cyBwbGFjZWhvbGRlciBjb2RlIG9uIGZpcnN0IGNyZWF0ZSkuXG4gIGNvbnN0IHRlbXBsYXRlUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLi90ZW1wbGF0ZXMvdG9rZW4tcmVuZXctc3RhY2suanNvbicpO1xuICBjb25zdCBjZm5BcmdzID0gW1xuICAgICdjbG91ZGZvcm1hdGlvbicsICdkZXBsb3knLFxuICAgICctLXN0YWNrLW5hbWUnLCBzdGFja05hbWUsXG4gICAgJy0tdGVtcGxhdGUtZmlsZScsIHRlbXBsYXRlUGF0aCxcbiAgICAnLS1wYXJhbWV0ZXItb3ZlcnJpZGVzJyxcbiAgICBgUGxhdGZvcm1TZWNyZXROYW1lPSR7b3B0cy5zZWNyZXROYW1lfWAsXG4gICAgYFJlbmV3RGF5cz0ke29wdHMuZGF5c31gLFxuICAgIGBTY2hlZHVsZUV4cHJlc3Npb249JHtzY2hlZHVsZUV4cHJlc3Npb259YCxcbiAgICBgTmFtZVN1ZmZpeD0ke25hbWVTdWZmaXh9YCxcbiAgICAvLyBSZWNvcmRlZCBmb3IgcHJvdmVuYW5jZSBvbmx5IOKAlCB0aGUgcm90YXRvciBkb2VzIG5vdCBpbnN0YWxsIHRoZSBDTEkgYXRcbiAgICAvLyBydW50aW1lIChpdCBzcGVha3MgdG8gdGhlIHBsYXRmb3JtIGRpcmVjdGx5KSwgYnV0IGtub3dpbmcgd2hpY2ggQ0xJXG4gICAgLy8gZGVwbG95ZWQgYSBzdGFjayBpcyB3b3J0aCBrZWVwaW5nLlxuICAgIGBQaXBlbGluZU1hbmFnZXJWZXJzaW9uPSR7QVBQX1ZFUlNJT059YCxcbiAgICAnLS1jYXBhYmlsaXRpZXMnLCAnQ0FQQUJJTElUWV9OQU1FRF9JQU0nLFxuICAgICctLW5vLWZhaWwtb24tZW1wdHktY2hhbmdlc2V0JyxcbiAgICAnLS1yZWdpb24nLCBvcHRzLnJlZ2lvbixcbiAgXTtcbiAgaWYgKG9wdHMucHJvZmlsZSkgY2ZuQXJncy5wdXNoKCctLXByb2ZpbGUnLCBvcHRzLnByb2ZpbGUpO1xuICBleGVjRmlsZVN5bmMoJ2F3cycsIGNmbkFyZ3MsIHsgc3RkaW86ICdpbmhlcml0JyB9KTtcblxuICAvLyBTdGVwIDI6IHVwbG9hZCB0aGUgcmVhbCBoYW5kbGVyLiBJdCdzIEVTTSwgc28gdGhlIHppcCBlbnRyeSBtdXN0IGJlIGluZGV4Lm1qc1xuICAvLyAoSGFuZGxlciBzdGF5cyBpbmRleC5oYW5kbGVyIOKAlCBub2RlanMyNi54IHJlc29sdmVzIHRoZSAubWpzIGV4dGVuc2lvbikuXG4gIGNvbnN0IGhhbmRsZXJTcmMgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbGFtYmRhL3Rva2VuLXJlbmV3LWhhbmRsZXIuanMnKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGhhbmRsZXJTcmMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUb2tlbi1yZW5ldyBoYW5kbGVyIG5vdCBmb3VuZCBhdCAke2hhbmRsZXJTcmN9IOKAlCB3YXMgdGhlIHBhY2thZ2UgYnVpbHQ/YCk7XG4gIH1cbiAgY29uc3QgdG1wRGlyID0gZnMubWtkdGVtcFN5bmMocGF0aC5qb2luKG9zLnRtcGRpcigpLCAndG9rZW4tcmVuZXctJykpO1xuICB0cnkge1xuICAgIGZzLmNvcHlGaWxlU3luYyhoYW5kbGVyU3JjLCBwYXRoLmpvaW4odG1wRGlyLCAnaW5kZXgubWpzJykpO1xuICAgIGNvbnN0IHppcFBhdGggPSBwYXRoLmpvaW4odG1wRGlyLCAnaW5kZXguemlwJyk7XG4gICAgZXhlY0ZpbGVTeW5jKCd6aXAnLCBbJy1qJywgemlwUGF0aCwgJ2luZGV4Lm1qcyddLCB7IGN3ZDogdG1wRGlyLCBzdGRpbzogJ3BpcGUnIH0pO1xuXG4gICAgY29uc3QgbGFtYmRhQ2xpZW50ID0gbmV3IExhbWJkYUNsaWVudCh7IHJlZ2lvbjogb3B0cy5yZWdpb24gfSk7XG4gICAgYXdhaXQgbGFtYmRhQ2xpZW50LnNlbmQobmV3IFVwZGF0ZUZ1bmN0aW9uQ29kZUNvbW1hbmQoe1xuICAgICAgRnVuY3Rpb25OYW1lOiBsYW1iZGFOYW1lLFxuICAgICAgWmlwRmlsZTogZnMucmVhZEZpbGVTeW5jKHppcFBhdGgpLFxuICAgIH0pKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBmcy5ybVN5bmModG1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gIH1cblxuICBwcmludFN1Y2Nlc3MoYFJvdGF0aW9uIHNjaGVkdWxlZCAoJHtzY2hlZHVsZUV4cHJlc3Npb259KWApO1xuICByZXR1cm4gc2NoZWR1bGVFeHByZXNzaW9uO1xufVxuXG4vKiogUmVhZCB0aGUga2V5IGlkIGEgcHJldmlvdXMgcnVuIHN0b3JlZCwgc28gdGhpcyBydW4gY2FuIHJldGlyZSBpdC4gKi9cbmFzeW5jIGZ1bmN0aW9uIHByZXZpb3VzS2V5SWQoXG4gIHNlY3JldE5hbWU6IHN0cmluZyxcbiAgYXdzOiB7IHJlZ2lvbjogc3RyaW5nOyBwcm9maWxlPzogc3RyaW5nIH0sXG4pOiBQcm9taXNlPHsga2V5SWQ/OiBzdHJpbmc7IHNlcnZpY2VBY2NvdW50SWQ/OiBzdHJpbmcgfT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJhdyA9IGF3YWl0IGdldFNlY3JldFZhbHVlKHNlY3JldE5hbWUsIGF3cyk7XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpIGFzIHsga2V5SWQ/OiBzdHJpbmc7IHNlcnZpY2VBY2NvdW50SWQ/OiBzdHJpbmcgfTtcbiAgICByZXR1cm4geyBrZXlJZDogcGFyc2VkLmtleUlkLCBzZXJ2aWNlQWNjb3VudElkOiBwYXJzZWQuc2VydmljZUFjY291bnRJZCB9O1xuICB9IGNhdGNoIHtcbiAgICAvLyBObyBzZWNyZXQgeWV0IChmaXJzdCBydW4pLCBvciBvbmUgd3JpdHRlbiBiZWZvcmUgdGhlIHNlcnZpY2UtYWNjb3VudFxuICAgIC8vIGN1dG92ZXIgKG5vIGtleUlkKS4gRWl0aGVyIHdheSB0aGVyZSBpcyBub3RoaW5nIHRoaXMgcnVuIGNhbiByZXRpcmUuXG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbi8qKiBXaGF0IGEgZHJ5IHJ1biByZXBvcnRzIGl0IFdPVUxEIHByb3Zpc2lvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVUb2tlblBsYW4ge1xuICBzZXJ2aWNlQWNjb3VudDogc3RyaW5nO1xuICByb2xlczogc3RyaW5nO1xuICBzY29wZTogc3RyaW5nO1xuICBzZWNyZXROYW1lOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBleHBpcmVzSW5EYXlzOiBudW1iZXI7XG59XG5cbi8qKiBQcmludCB0aGUgZHJ5LXJ1biBwbGFuIChKU09OIG9yIGh1bWFuKS4gU3RheXMgZW50aXJlbHkgb2ZmbGluZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludERyeVJ1blBsYW4ocGxhbjogU3RvcmVUb2tlblBsYW4sIGpzb246IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKGpzb24pIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IHN1Y2Nlc3M6IHRydWUsIGRyeVJ1bjogdHJ1ZSwgLi4ucGxhbiB9LCBudWxsLCAyKSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgcHJpbnRTZWN0aW9uKCdEcnkgUnVuIOKAlCBObyBDaGFuZ2VzIE1hZGUnKTtcbiAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgJ1NlcnZpY2UgQWNjb3VudCc6IHBsYW4uc2VydmljZUFjY291bnQsXG4gICAgJ1JvbGVzJzogcGxhbi5yb2xlcyxcbiAgICAnS2V5IFNjb3BlJzogcGxhbi5zY29wZSxcbiAgICAnU2VjcmV0IE5hbWUnOiBwbGFuLnNlY3JldE5hbWUsXG4gICAgJ1JlZ2lvbic6IHBsYW4ucmVnaW9uLFxuICAgICdFeHBpcmVzIEluJzogYCR7cGxhbi5leHBpcmVzSW5EYXlzfSBkYXlzYCxcbiAgfSk7XG4gIHByaW50U3VjY2VzcygnRHJ5IHJ1biBjb21wbGV0ZSDigJQgbm8gYWNjb3VudCwga2V5IG9yIHNlY3JldCB3YXMgY3JlYXRlZCcpO1xufVxuXG4vKipcbiAqIFRoZSBTZWNyZXRzIE1hbmFnZXIgcGF5bG9hZDogYHsgdXNlcm5hbWU6IG9yZ0lkLCBwYXNzd29yZDogPHBiX3NhXyBrZXk+LCAuLi5tZXRhZGF0YSB9YC5cbiAqIC0gdXNlcm5hbWUvcGFzc3dvcmQgc2F0aXNmeSBDb2RlQnVpbGQncyBgc2VjcmV0c01hbmFnZXJDcmVkZW50aWFsc2AgKEhUVFBcbiAqICAgQmFzaWMsIHNlbnQgdG8gcGlwZWxpbmUtaW1hZ2UtcmVnaXN0cnkncyAvdG9rZW4gZW5kcG9pbnQsIHdoaWNoIGV4Y2hhbmdlc1xuICogICB0aGUgb3BhcXVlIGtleSBsaWtlIGV2ZXJ5IG90aGVyIHNlcnZpY2UgZG9lcykuXG4gKiAtIGBwYXNzd29yZGAgaXMgdGhlIGNhbm9uaWNhbCBmaWVsZDogdGhlIHBsdWdpbi1sb29rdXAgTGFtYmRhLCB0aGUgZXZlbnRzXG4gKiAgIExhbWJkYSBhbmQgYC0tc3RvcmUtdG9rZW5zYCBhbGwgcmVhZCBpdC5cbiAqIC0ga2V5SWQgLyBzZXJ2aWNlQWNjb3VudElkIGFyZSB3aGF0IHRoZSByb3RhdGlvbiBMYW1iZGEgbmVlZHMgdG8gcmV0aXJlIHRoZVxuICogICBrZXkgaXQgcmVwbGFjZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNlY3JldFZhbHVlKHByb3Zpc2lvbmVkOiBQcm92aXNpb25lZEtleSwgcGxhdGZvcm1Vcmw6IHN0cmluZywgZXhwaXJlc0luU2Vjb25kczogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICB1c2VybmFtZTogcHJvdmlzaW9uZWQub3JnYW5pemF0aW9uSWQsXG4gICAgcGFzc3dvcmQ6IHByb3Zpc2lvbmVkLmtleSxcbiAgICBwbGF0Zm9ybVVybCxcbiAgICBvcmdhbml6YXRpb25JZDogcHJvdmlzaW9uZWQub3JnYW5pemF0aW9uSWQsXG4gICAgc2VydmljZUFjY291bnRJZDogcHJvdmlzaW9uZWQuc2VydmljZUFjY291bnRJZCxcbiAgICBzZXJ2aWNlQWNjb3VudE5hbWU6IHByb3Zpc2lvbmVkLnNlcnZpY2VBY2NvdW50TmFtZSxcbiAgICBrZXlJZDogcHJvdmlzaW9uZWQua2V5SWQsXG4gICAgc2NvcGU6IHByb3Zpc2lvbmVkLnNjb3BlLFxuICAgIGV4cGlyZXNJbjogZXhwaXJlc0luU2Vjb25kcyxcbiAgICBleHBpcmVzQXQ6IHByb3Zpc2lvbmVkLmV4cGlyZXNBdCxcbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0aXJlIHRoZSBjcmVkZW50aWFsIHRoaXMgcnVuIHJlcGxhY2VkIOKAlCBBRlRFUiB0aGUgbmV3IG9uZSBpcyBzdG9yZWQsIG5ldmVyXG4gKiBiZWZvcmUuIEEgZmFpbHVyZSBoZXJlIGxlYXZlcyBhIHN1cGVyZmx1b3VzIGtleSB0aGF0IGV4cGlyZXMgb24gaXRzIG93bjtcbiAqIGRvaW5nIGl0IGluIHRoZSBvdGhlciBvcmRlciB3b3VsZCBsZWF2ZSB0aGUgc2VjcmV0IG5hbWluZyBhIHJldm9rZWQga2V5IGlmXG4gKiB0aGUgd3JpdGUgZmFpbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0aXJlUHJldmlvdXNLZXkoXG4gIGNsaWVudDogQXBpQ2xpZW50LFxuICBwYXNzd29yZDogc3RyaW5nLFxuICBwcm92aXNpb25lZDogUHJvdmlzaW9uZWRLZXksXG4gIHByZXZpb3VzOiB7IGtleUlkPzogc3RyaW5nOyBzZXJ2aWNlQWNjb3VudElkPzogc3RyaW5nIH0sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFwcmV2aW91cy5rZXlJZCB8fCBwcmV2aW91cy5zZXJ2aWNlQWNjb3VudElkICE9PSBwcm92aXNpb25lZC5zZXJ2aWNlQWNjb3VudElkKSByZXR1cm47XG4gIHRyeSB7XG4gICAgYXdhaXQgcmV2b2tlU2VydmljZUFjY291bnRLZXkoXG4gICAgICBjbGllbnQsIHBhc3N3b3JkLCBwcm92aXNpb25lZC5vcmdhbml6YXRpb25JZCwgcHJvdmlzaW9uZWQuc2VydmljZUFjY291bnRJZCwgcHJldmlvdXMua2V5SWQsXG4gICAgKTtcbiAgICBwcmludFN1Y2Nlc3MoYFJldGlyZWQgdGhlIHByZXZpb3VzIGtleSAoJHtwcmV2aW91cy5rZXlJZH0pYCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHByaW50V2FybmluZyhcbiAgICAgIGBTdG9yZWQgdGhlIG5ldyBrZXksIGJ1dCBjb3VsZCBub3QgcmV2b2tlIHRoZSBwcmV2aW91cyBvbmUgKCR7cHJldmlvdXMua2V5SWR9KTogYFxuICAgICAgKyBgJHtlcnJvck1lc3NhZ2UoZXJyKX0uIEl0IGV4cGlyZXMgb24gaXRzIG93bjsgcmV2b2tlIGl0IGZyb20gYFxuICAgICAgKyAnU2V0dGluZ3Mg4oaSIFNlcnZpY2UgYWNjb3VudHMgaWYgeW91IHdhbnQgaXQgZ29uZSBub3cuJyxcbiAgICApO1xuICB9XG59XG5cbi8qKiBQcmludCB0aGUgc3RvcmVkIGtleSdzIHN1bW1hcnkgKEpTT04gb3IgaHVtYW4pIHBsdXMgdGhlIG5leHQgc3RlcHMuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRTdG9yZWRLZXkocjoge1xuICBqc29uOiBib29sZWFuO1xuICBzZWNyZXROYW1lOiBzdHJpbmc7XG4gIGFybjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZWdpb246IHN0cmluZztcbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgcHJvdmlzaW9uZWQ6IFByb3Zpc2lvbmVkS2V5O1xuICBkYXlzOiBudW1iZXI7XG4gIHNjaGVkdWxlRXhwcmVzc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xufSk6IHZvaWQge1xuICBjb25zdCB7IHNlY3JldE5hbWUsIGFybiwgcmVnaW9uLCBhY2NvdW50TmFtZSwgcHJvdmlzaW9uZWQsIGRheXMsIHNjaGVkdWxlRXhwcmVzc2lvbiB9ID0gcjtcbiAgaWYgKHIuanNvbikge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBzZWNyZXROYW1lLFxuICAgICAgc2VjcmV0QXJuOiBhcm4sXG4gICAgICByZWdpb24sXG4gICAgICBzZXJ2aWNlQWNjb3VudDogYWNjb3VudE5hbWUsXG4gICAgICBzZXJ2aWNlQWNjb3VudElkOiBwcm92aXNpb25lZC5zZXJ2aWNlQWNjb3VudElkLFxuICAgICAga2V5SWQ6IHByb3Zpc2lvbmVkLmtleUlkLFxuICAgICAgc2NvcGU6IHByb3Zpc2lvbmVkLnNjb3BlLFxuICAgICAgZXhwaXJlc0luRGF5czogZGF5cyxcbiAgICAgIGV4cGlyZXNBdDogcHJvdmlzaW9uZWQuZXhwaXJlc0F0LFxuICAgICAgc2NoZWR1bGU6IHNjaGVkdWxlRXhwcmVzc2lvbiA/PyBudWxsLFxuICAgIH0sIG51bGwsIDIpKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgcHJpbnRTZWN0aW9uKCdLZXkgU3RvcmVkJyk7XG5cbiAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICdTZWNyZXQgTmFtZSc6IHNlY3JldE5hbWUsXG4gICAgICAnU2VjcmV0IEFSTic6IGFybixcbiAgICAgICdSZWdpb24nOiByZWdpb24sXG4gICAgICAnU2VydmljZSBBY2NvdW50JzogYWNjb3VudE5hbWUsXG4gICAgICAnS2V5IFNjb3BlJzogcHJvdmlzaW9uZWQuc2NvcGUgPz8gJyhub25lIOKAlCB0aGUgYWNjb3VudFxcJ3MgUm9sZSBpcyBpdHMgYXV0aG9yaXR5KScsXG4gICAgICAnS2V5IElkJzogcHJvdmlzaW9uZWQua2V5SWQsXG4gICAgICAnRXhwaXJlcyBJbic6IGAke2RheXN9IGRheXNgLFxuICAgICAgJ1JlbmV3IEJ5JzogcHJvdmlzaW9uZWQuZXhwaXJlc0F0LFxuICAgICAgJ0F1dG8tUm90YXRlJzogc2NoZWR1bGVFeHByZXNzaW9uID8gYOKckyAke3NjaGVkdWxlRXhwcmVzc2lvbn1gIDogJ29mZiAocGFzcyAtLXNjaGVkdWxlIHRvIGVuYWJsZSknLFxuICAgICAgJ1N0YXR1cyc6ICfinJMgU3RvcmVkJyxcbiAgICB9KTtcblxuICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICBwcmludFN1Y2Nlc3MoJ0tleSBzdG9yZWQuIFRvIHVzZSB3aXRoIHN5bnRoL2RlcGxveTonKTtcbiAgICBwcmludEluZm8oYCAgZXhwb3J0IFBMQVRGT1JNX1NFQ1JFVF9OQU1FPSR7c2VjcmV0TmFtZX1gKTtcbiAgICBwcmludEluZm8oJyAgcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBzeW50aCAtLWlkIDxwaXBlbGluZS1pZD4gLS1zdG9yZS10b2tlbnMnKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgaWYgKHNjaGVkdWxlRXhwcmVzc2lvbikge1xuICAgICAgcHJpbnRJbmZvKGBBdXRvLXJvdGF0aW9uIGlzIGFjdGl2ZSAoJHtzY2hlZHVsZUV4cHJlc3Npb259KTsgdGhlIHNlY3JldCBpcyByZXBsYWNlZCBiZWZvcmUgJHtwcm92aXNpb25lZC5leHBpcmVzQXR9LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmludEluZm8oYFJvdGF0ZSBiZWZvcmUgJHtwcm92aXNpb25lZC5leHBpcmVzQXR9IHdpdGg6IHBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW4gLS1kYXlzICR7ZGF5c31gKTtcbiAgICAgIHByaW50SW5mbygnICAob3IgcGFzcyAtLXNjaGVkdWxlIHRvIGluc3RhbGwgYSBkYWlseSBhdXRvLXJvdGF0aW9uIHN0YWNrKScpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHN0b3JlLXRva2VuYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIFByb3Zpc2lvbnMgdGhlIG9yZydzIG1hY2hpbmUgaWRlbnRpdHkg4oCUIGEgU0VSVklDRSBBQ0NPVU5UIGFuZCBvbmUgYHBiX3NhX+KApmBcbiAqIGtleSDigJQgYW5kIHN0b3JlcyB0aGUga2V5IGluIEFXUyBTZWNyZXRzIE1hbmFnZXIgZm9yIENESyBkZXBsb3ltZW50cyxcbiAqIENvZGVCdWlsZCdzIHJlZ2lzdHJ5IGNyZWRlbnRpYWxzLCB0aGUgcGx1Z2luLWxvb2t1cCBMYW1iZGEgYW5kIHRoZSBldmVudFxuICogaW5nZXN0aW9uIExhbWJkYS4gTm90aGluZyBzdG9yZWQgaXMgdGllZCB0byBhIHBlcnNvbidzIHNlc3Npb24gYW55XG4gKiBtb3JlOiB0aGUgYWNjb3VudCBvdXRsaXZlcyBpdHMgY3JlYXRvciwgdGFrZXMgbm8gc2VhdCwgYW5kIGV2ZXJ5IGF1ZGl0IHJvdyBpdFxuICogcHJvZHVjZXMgbmFtZXMgdGhlIGFjY291bnQuXG4gKlxuICogQmVjYXVzZSBjcmVhdGluZyBhbiBhY2NvdW50IGFuZCBpc3N1aW5nIGl0cyBrZXkgYXJlIHN0ZXAtdXAgZ2F0ZWQsIHRoaXMgbmVlZHNcbiAqIHRoZSBvcGVyYXRvcidzIHBhc3N3b3JkIOKAlCBgLS1wYXNzd29yZGAsIG9yIHRoZSBgUExBVEZPUk1fUEFTU1dPUkRgIGVudiB2YXJcbiAqIChwcmVmZXJyZWQ6IGl0IGtlZXBzIHRoZSBwYXNzd29yZCBvdXQgb2Ygc2hlbGwgaGlzdG9yeSBhbmQgcGxhbiBvdXRwdXQpLlxuICpcbiAqIEJ5IGRlZmF1bHQgaXQgT05MWSB3cml0ZXMgdGhlIHNlY3JldC4gUGFzcyAtLXNjaGVkdWxlIHRvIGFsc28gZGVwbG95IHRoZSBkYWlseVxuICogS0VZIFJPVEFUSU9OIHN0YWNrIChhIExhbWJkYSB0aGF0IHJlcGxhY2VzIHRoZSBrZXkgYmVmb3JlIGl0IGV4cGlyZXMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBQTEFURk9STV9QQVNTV09SRD0qKiogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLXJlZ2lvbiB1cy1lYXN0LTFcbiAqIFBMQVRGT1JNX1BBU1NXT1JEPSoqKiBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tZGF5cyA5MCAtLXJlZ2lvbiB1cy1lYXN0LTFcbiAqIFBMQVRGT1JNX1BBU1NXT1JEPSoqKiBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tc2NoZWR1bGUgLS1yZWdpb24gdXMtZWFzdC0xICAgICAjICsgZGFpbHkgcm90YXRpb25cbiAqIFBMQVRGT1JNX1BBU1NXT1JEPSoqKiBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tc2NvcGUgcmVwb3J0aW5nOmluZ2VzdCAtLXNjaGVkdWxlXG4gKiBQTEFURk9STV9QQVNTV09SRD0qKiogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtLXNjb3BlIHJlZ2lzdHJ5OnB1c2ggLS1zY2hlZHVsZVxuICogUExBVEZPUk1fUEFTU1dPUkQ9KioqIHBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW4gLS1zY29wZSBwaXBlbGluZV9yZWdpc3RyeTp3cml0ZSAtLXNjaGVkdWxlXG4gKiBwaXBlbGluZS1tYW5hZ2VyIGluZnJhIHN0b3JlLXRva2VuIC0tZHJ5LXJ1blxuICogcGlwZWxpbmUtbWFuYWdlciBpbmZyYSBzdG9yZS10b2tlbiAtdSBhZG1pbiAtcCAnKioqJyAtLXJlZ2lvbiB1cy1lYXN0LTFcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RvcmVUb2tlbihwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHdpdGhTc2xPcHRpb25zKFxuICAgIHdpdGhQcm9maWxlT3B0aW9uKFxuICAgICAgd2l0aFJlZ2lvbk9wdGlvbihwcm9ncmFtXG4gICAgICAgIC5jb21tYW5kKCdzdG9yZS10b2tlbicpXG4gICAgICAgIC5kZXNjcmlwdGlvbignUHJvdmlzaW9uIGFuIG9yZyBzZXJ2aWNlLWFjY291bnQga2V5IChpdHMgb3duIG1hY2hpbmUgaWRlbnRpdHkpIGFuZCBzdG9yZSBpdCBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGZvciBDREsgZGVwbG95bWVudHMnKVxuICAgICAgICAub3B0aW9uKCctdSwgLS1pZGVudGlmaWVyIDxpZGVudGlmaWVyPicsICdVc2VybmFtZSBvciBlbWFpbCAoc2tpcHMgUExBVEZPUk1fVE9LRU4gcmVxdWlyZW1lbnQpJylcbiAgICAgICAgLm9wdGlvbignLXAsIC0tcGFzc3dvcmQgPHBhc3N3b3JkPicsICdMb2dpbiBwYXNzd29yZCDigJQgYWxzbyB1c2VkIGZvciB0aGUgc3RlcC11cCBldmVyeSBrZXkgd3JpdGUgcmVxdWlyZXMgKHByZWZlciBQTEFURk9STV9QQVNTV09SRCknKVxuICAgICAgICAub3B0aW9uKCctLWRheXMgPGRheXM+JywgJ0tleSBsaWZldGltZSBpbiBkYXlzIChtYXggMzY1KScsICczMCcpXG4gICAgICAgIC5vcHRpb24oJy0tc2NvcGUgPHNjb3BlPicsIGBQcm92aXNpb24gYSBzaW5nbGUtcHVycG9zZSBjcmVkZW50aWFsIGluc3RlYWQgb2YgdGhlIHBsYXRmb3JtIG9uZS4gT25lIG9mOiAke09iamVjdC5rZXlzKFNDT1BFX0NBVEFMT0cpLmpvaW4oJywgJyl9YClcbiAgICAgICAgLm9wdGlvbignLS1hY2NvdW50IDxuYW1lPicsICdPdmVycmlkZSB0aGUgc2VydmljZS1hY2NvdW50IG5hbWUgdGhpcyBrZXkgaXMgaXNzdWVkIG9uIChkZWZhdWx0OiBkZXJpdmVkIGZyb20gLS1zY29wZSknKVxuICAgICAgICAub3B0aW9uKCctLWRyeS1ydW4nLCAnU2hvdyB3aGF0IHdvdWxkIGJlIHByb3Zpc2lvbmVkIHdpdGhvdXQgY2FsbGluZyB0aGUgcGxhdGZvcm0gb3Igd3JpdGluZyB0byBTZWNyZXRzIE1hbmFnZXInLCBmYWxzZSkpLFxuICAgIClcbiAgICAgIC5vcHRpb24oJy0tc2NoZWR1bGUnLCAnQWxzbyBkZXBsb3kgdGhlIGRhaWx5IGtleS1yb3RhdGlvbiBzdGFjayB0aGF0IHJlcGxhY2VzIHRoaXMga2V5IGJlZm9yZSBpdCBleHBpcmVzIChvZmYgYnkgZGVmYXVsdCknLCBmYWxzZSlcbiAgICAgIC5vcHRpb24oJy0tY3JvbiA8ZXhwcj4nLCAnUm90YXRpb24gc2NoZWR1bGUgYXMgYSA1LWZpZWxkIGNyb24sIHVzZWQgd2l0aCAtLXNjaGVkdWxlIChkZWZhdWx0OiBUT0tFTl9SRU5FV19TQ0hFRFVMRSBlbnYgb3IgXCIwIDAgKiAqICpcIjsgbWluIGV2ZXJ5IDE1IG1pbnV0ZXMpJylcbiAgICAgIC5vcHRpb24oJy0tanNvbicsICdPdXRwdXQgcmVzdWx0IGFzIEpTT04nLCBmYWxzZSksXG4gIClcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignU3RvcmUgVG9rZW4nLCB1bmRlZmluZWQsIHsgcXVpZXQ6IG9wdGlvbnMuanNvbiB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICBjb25zdCByZWdpb24gPSByZXNvbHZlQXdzUmVnaW9uKG9wdGlvbnMucmVnaW9uKTtcbiAgICAgICAgY29uc3QgYXdzID0geyByZWdpb24sIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQgfTtcblxuICAgICAgICBjb25zdCBkYXlzID0gdmFsaWRhdGVOdW1iZXIob3B0aW9ucy5kYXlzLCAnZGF5cycsIDEsIDM2NSk7XG4gICAgICAgIGNvbnN0IGV4cGlyZXNJblNlY29uZHMgPSBkYXlzICogMjQgKiA2MCAqIDYwO1xuXG4gICAgICAgIGNvbnN0IHNjb3BlID0gb3B0aW9ucy5zY29wZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGNhdGFsb2d1ZWQgPSBzY29wZSA/IFNDT1BFX0NBVEFMT0dbc2NvcGVdIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAoc2NvcGUgJiYgIWNhdGFsb2d1ZWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gLS1zY29wZSBcIiR7c2NvcGV9XCIuIFN1cHBvcnRlZDogJHtPYmplY3Qua2V5cyhTQ09QRV9DQVRBTE9HKS5qb2luKCcsICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFdoaWNoIG1hY2hpbmUgaWRlbnRpdHkgdGhpcyBjcmVkZW50aWFsIGJlbG9uZ3MgdG86IHRoZSBzY29wZSdzIG93blxuICAgICAgICAvLyBhY2NvdW50LCBvciB0aGUgb3JnJ3MgcGxhdGZvcm0gYXV0b21hdGlvbiBhY2NvdW50LlxuICAgICAgICBjb25zdCBpZGVudGl0eSA9IGNhdGFsb2d1ZWQgPz8gUExBVEZPUk1fQUNDT1VOVDtcbiAgICAgICAgY29uc3QgYWNjb3VudE5hbWUgPSAob3B0aW9ucy5hY2NvdW50IGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgPz8gaWRlbnRpdHkuYWNjb3VudDtcbiAgICAgICAgY29uc3Qgcm9sZSA9IHJvbGVGb3IoaWRlbnRpdHkpO1xuICAgICAgICBjb25zdCBrZXlTY29wZSA9IGlkZW50aXR5LmtleVNjb3BlO1xuXG4gICAgICAgIC8vIFN0ZXAgMDogbG9nIGluIGZpcnN0IHdoZW4gY3JlZHMgYXJlIGF2YWlsYWJsZSBhbmQgbm8gUExBVEZPUk1fVE9LRU4gaXNcbiAgICAgICAgLy8gc2V0IChzaGFyZWQgd2l0aCBzZXR1cC1ldmVudHMpLiBDcmVkcyBjb21lIGZyb20gLS1pZGVudGlmaWVyLy0tcGFzc3dvcmRcbiAgICAgICAgLy8gT1IgdGhlIGVudiB2YXJzIFBMQVRGT1JNX0lERU5USUZJRVIvUExBVEZPUk1fUEFTU1dPUkQg4oCUIHRoZSBlbnYgcGF0aFxuICAgICAgICAvLyBsZXRzIGNhbGxlcnMgbGlrZSBgcHJvdmlzaW9uIC0td2l0aC1ldmVudHNgIHBhc3MgdGhlbSB3aXRob3V0IHB1dHRpbmdcbiAgICAgICAgLy8gdGhlIHBhc3N3b3JkIG9uIHRoZSBjb21tYW5kIGxpbmUgKHdoZXJlIGl0IHdvdWxkIHNob3cgaW4gcGxhbnMvbG9ncykuXG4gICAgICAgIGF3YWl0IGVuc3VyZVBsYXRmb3JtVG9rZW4ob3B0aW9ucyk7XG5cbiAgICAgICAgLy8gVGhlIHBhc3N3b3JkIGlzIEFMU08gdGhlIHN0ZXAtdXAgZmFjdG9yIGZvciBib3RoIHdyaXRlcyBiZWxvdywgc28gaXQgaXNcbiAgICAgICAgLy8gcmVxdWlyZWQgZXZlbiB3aGVuIFBMQVRGT1JNX1RPS0VOIGlzIGFscmVhZHkgc2V0LiBTYXkgdGhhdCBwbGFpbmx5XG4gICAgICAgIC8vIHJhdGhlciB0aGFuIGZhaWxpbmcgdGhyZWUgY2FsbHMgbGF0ZXIgd2l0aCBhIDQwMy5cbiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSAob3B0aW9ucy5wYXNzd29yZCBhcyBzdHJpbmcgfCB1bmRlZmluZWQpIHx8IHByb2Nlc3MuZW52LlBMQVRGT1JNX1BBU1NXT1JEO1xuICAgICAgICBpZiAoIXBhc3N3b3JkICYmICFvcHRpb25zLmRyeVJ1bikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdBIHBhc3N3b3JkIGlzIHJlcXVpcmVkOiBjcmVhdGluZyBhIHNlcnZpY2UgYWNjb3VudCBhbmQgaXNzdWluZyBpdHMga2V5IGFyZSBib3RoIHN0ZXAtdXAgZ2F0ZWQuICdcbiAgICAgICAgICAgICsgJ1NldCBQTEFURk9STV9QQVNTV09SRCAocHJlZmVycmVkKSBvciBwYXNzIC0tcGFzc3dvcmQuJyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpbnRTZWN0aW9uKCdQcm92aXNpb24gU2VydmljZS1BY2NvdW50IEtleScpO1xuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcblxuICAgICAgICBpZiAob3B0aW9ucy5kcnlSdW4pIHtcbiAgICAgICAgICAvLyBEcnkgcnVuIHN0YXlzIGVudGlyZWx5IE9GRkxJTkUg4oCUIGl0IG11c3Qgbm90IGNyZWF0ZSBhbiBhY2NvdW50IG9yXG4gICAgICAgICAgLy8gYnVybiBhIGtleSBqdXN0IHRvIHNob3cgd2hhdCBpdCB3b3VsZCBkby5cbiAgICAgICAgICBwcmludERyeVJ1blBsYW4oe1xuICAgICAgICAgICAgc2VydmljZUFjY291bnQ6IGFjY291bnROYW1lLFxuICAgICAgICAgICAgcm9sZXM6IHJvbGUgPyBTRUVEX0JVTkRMRVNbcm9sZV0ubmFtZSA6ICdub25lIChzY29wZWQga2V5LCBsZWFzdCBwcml2aWxlZ2UpJyxcbiAgICAgICAgICAgIHNjb3BlOiBrZXlTY29wZSA/PyAnKG5vbmUg4oCUIHRoZSBhY2NvdW50XFwncyBSb2xlIGlzIGl0cyBhdXRob3JpdHkpJyxcbiAgICAgICAgICAgIHNlY3JldE5hbWU6IHByb2Nlc3MuZW52LlBMQVRGT1JNX1NFQ1JFVF9OQU1FIHx8IGAke3NlY3JldE5hbWVGb3JPcmcoJzxvcmdJZD4nLCBzY29wZSA/IHNjb3BlU2VjcmV0TGVhZihzY29wZSkgOiAncGxhdGZvcm0nKX1gLFxuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgZXhwaXJlc0luRGF5czogZGF5cyxcbiAgICAgICAgICB9LCAhIW9wdGlvbnMuanNvbik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qga2V5TmFtZSA9IGAke2FjY291bnROYW1lfS0ke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zbGljZSgwLCAxMCl9YDtcbiAgICAgICAgY29uc3QgcHJvdmlzaW9uZWQgPSBhd2FpdCBwcm92aXNpb25TZXJ2aWNlQWNjb3VudEtleSh7XG4gICAgICAgICAgY2xpZW50LFxuICAgICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCEsXG4gICAgICAgICAgYWNjb3VudE5hbWUsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGlkZW50aXR5LmRlc2NyaXB0aW9uLFxuICAgICAgICAgIC4uLihyb2xlID8geyByb2xlIH0gOiB7fSksXG4gICAgICAgICAgLi4uKGtleVNjb3BlID8geyBzY29wZToga2V5U2NvcGUgfSA6IHt9KSxcbiAgICAgICAgICBleHBpcmVzSW5TZWNvbmRzLFxuICAgICAgICAgIGtleU5hbWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByaW50U3VjY2VzcyhgS2V5IGlzc3VlZCBvbiBzZXJ2aWNlIGFjY291bnQgJyR7YWNjb3VudE5hbWV9JyAoZXhwaXJlcyAke3Byb3Zpc2lvbmVkLmV4cGlyZXNBdH0pYCk7XG5cbiAgICAgICAgLy8gQW4gZXhwbGljaXQgUExBVEZPUk1fU0VDUkVUX05BTUUgc3RpbGwgd2lucyAodGhlIGVzY2FwZSBoYXRjaCBmb3JcbiAgICAgICAgLy8gaGFuZC1tYW5hZ2VkIHBhdGhzKTsgb3RoZXJ3aXNlIGRlcml2ZSBpdCBmcm9tIHRoZSBvcmcgdGhlIHBsYXRmb3JtXG4gICAgICAgIC8vIHJlcG9ydGVkLCB3aGljaCB3b3JrcyB3aXRoIGFuIG9wYXF1ZSBhY2Nlc3Mga2V5IGFzIFBMQVRGT1JNX1RPS0VOIOKAlFxuICAgICAgICAvLyBhIGtleSBjYXJyaWVzIG5vIG9yZyBjbGFpbSB0byBkZWNvZGUuXG4gICAgICAgIGNvbnN0IHNlY3JldE5hbWUgPSBwcm9jZXNzLmVudi5QTEFURk9STV9TRUNSRVRfTkFNRVxuICAgICAgICAgIHx8IHNlY3JldE5hbWVGb3JPcmcocHJvdmlzaW9uZWQub3JnYW5pemF0aW9uSWQsIHNjb3BlID8gc2NvcGVTZWNyZXRMZWFmKHNjb3BlKSA6ICdwbGF0Zm9ybScpO1xuXG4gICAgICAgIGF1ZGl0TG9nKCdzdG9yZS10b2tlbicsIHtcbiAgICAgICAgICBleGVjdXRpb25JZCxcbiAgICAgICAgICBzZWNyZXROYW1lLFxuICAgICAgICAgIGRheXMsXG4gICAgICAgICAgc2VydmljZUFjY291bnQ6IGFjY291bnROYW1lLFxuICAgICAgICAgIHNjb3BlOiBzY29wZSA/PyBudWxsLFxuICAgICAgICAgIGtleUlkOiBwcm92aXNpb25lZC5rZXlJZCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcHJpbnRJbmZvKCdQYXJhbWV0ZXJzJywge1xuICAgICAgICAgIHNlY3JldE5hbWUsXG4gICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgIHNlcnZpY2VBY2NvdW50OiBhY2NvdW50TmFtZSxcbiAgICAgICAgICBzY29wZTogc2NvcGUgPz8gJyhub25lKScsXG4gICAgICAgICAgZGF5cyxcbiAgICAgICAgICBleHBpcmVzSW46IGAke2V4cGlyZXNJblNlY29uZHN9c2AsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFdoYXQgdGhpcyBydW4gaXMgUkVQTEFDSU5HLCByZWFkIGJlZm9yZSB0aGUgd3JpdGUgc28gdGhlIG9sZCBrZXkgY2FuIGJlXG4gICAgICAgIC8vIHJldGlyZWQgYWZ0ZXIgdGhlIG5ldyBvbmUgaXMgc2FmZWx5IHN0b3JlZC5cbiAgICAgICAgY29uc3QgcHJldmlvdXMgPSBhd2FpdCBwcmV2aW91c0tleUlkKHNlY3JldE5hbWUsIGF3cyk7XG5cbiAgICAgICAgY29uc3Qgc2VjcmV0VmFsdWUgPSBidWlsZFNlY3JldFZhbHVlKHByb3Zpc2lvbmVkLCBjbGllbnQuZ2V0QmFzZVVybCgpLCBleHBpcmVzSW5TZWNvbmRzKTtcblxuICAgICAgICBwcmludFNlY3Rpb24oJ1N0b3JlIEtleScpO1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gYFBpcGVsaW5lIEJ1aWxkZXIgc2VydmljZS1hY2NvdW50IGtleSAoJHthY2NvdW50TmFtZX07IHJlbmV3IGJ5ICR7cHJvdmlzaW9uZWQuZXhwaXJlc0F0fSlgO1xuICAgICAgICBhd2FpdCB1cHNlcnRTZWNyZXQoc2VjcmV0TmFtZSwgc2VjcmV0VmFsdWUsIGRlc2NyaXB0aW9uLCBhd3MpO1xuXG4gICAgICAgIGNvbnN0IGFybiA9IGF3YWl0IGdldFNlY3JldEFybihzZWNyZXROYW1lLCBhd3MpO1xuXG4gICAgICAgIGF3YWl0IHJldGlyZVByZXZpb3VzS2V5KGNsaWVudCwgcGFzc3dvcmQhLCBwcm92aXNpb25lZCwgcHJldmlvdXMpO1xuXG4gICAgICAgIC8vIE9wdGlvbmFsbHkgaW5zdGFsbCB0aGUgb25jZS1hLWRheSByb3RhdGlvbiBzdGFjayBzbyB0aGlzIGtleSBuZXZlciBsYXBzZXMuXG4gICAgICAgIGxldCBzY2hlZHVsZUV4cHJlc3Npb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKG9wdGlvbnMuc2NoZWR1bGUpIHtcbiAgICAgICAgICBjb25zdCBmaXZlRmllbGRDcm9uID0gb3B0aW9ucy5jcm9uIHx8IHByb2Nlc3MuZW52LlRPS0VOX1JFTkVXX1NDSEVEVUxFIHx8IERFRkFVTFRfUkVORVdfQ1JPTjtcbiAgICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb24gPSBhd2FpdCBkZXBsb3lSZW5ld1NjaGVkdWxlKHtcbiAgICAgICAgICAgIHNlY3JldE5hbWUsXG4gICAgICAgICAgICBkYXlzLFxuICAgICAgICAgICAgZml2ZUZpZWxkQ3JvbixcbiAgICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICAgIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaW50U3RvcmVkS2V5KHtcbiAgICAgICAgICBqc29uOiAhIW9wdGlvbnMuanNvbixcbiAgICAgICAgICBzZWNyZXROYW1lLFxuICAgICAgICAgIGFybixcbiAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgYWNjb3VudE5hbWUsXG4gICAgICAgICAgcHJvdmlzaW9uZWQsXG4gICAgICAgICAgZGF5cyxcbiAgICAgICAgICBzY2hlZHVsZUV4cHJlc3Npb24sXG4gICAgICAgIH0pO1xuXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBjb21tYW5kOiAnc3RvcmUtdG9rZW4nLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICBzZWNyZXROYW1lOiBwcm9jZXNzLmVudi5QTEFURk9STV9TRUNSRVRfTkFNRSB8fCAnKGRlcml2ZWQgZnJvbSB0aGUgb3JnKScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synth.d.ts","
|
|
1
|
+
{"version":3,"file":"synth.d.ts","sources":["../../src/commands/synth.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwDpC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAMrD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6I5C"}
|
package/dist/commands/synth.js
CHANGED
|
@@ -217,4 +217,4 @@ async function showResolvedPipeline(pipelineId, options) {
|
|
|
217
217
|
const { propsWithIds } = await fetchPipelineProps(client, pipelineId);
|
|
218
218
|
await printResolvedOrExit(propsWithIds);
|
|
219
219
|
}
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3ludGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNySyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUcsT0FBTyxFQUF3QixrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FB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Q0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsb0JBQW9CLENBQ2pDLFVBQThCLEVBQzlCLE9BQTBGO0lBRTFGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICdub2RlOnVybCc7XG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBmb3JtYXRTeW50aEZhaWx1cmUsIHN5bnRoRmFpbHVyZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBhc3NlcnRTaGVsbFNhZmUgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgdHlwZSB7IEFwaUNsaWVudCB9IGZyb20gJy4uL3V0aWxzL2FwaS1jbGllbnQuanMnO1xuaW1wb3J0IHsgYXVkaXRMb2cgfSBmcm9tICcuLi91dGlscy9hdWRpdC1sb2cuanMnO1xuaW1wb3J0IHsgZXhlY3V0ZUNka1NoZWxsQ29tbWFuZCwgcmVzb2x2ZUJvaWxlcnBsYXRlUGF0aCB9IGZyb20gJy4uL3V0aWxzL2Nkay11dGlscy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMsIHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nLCB3aXRoUHJvZmlsZU9wdGlvbiwgd2l0aFJlZ2lvbk9wdGlvbiwgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IHJlZ2lzdGVyUGlwZWxpbmUgfSBmcm9tICcuLi91dGlscy9kZXBsb3ktcnVubmVyLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRJbmZvLCBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IHR5cGUgRmV0Y2hlZFBpcGVsaW5lLCBmZXRjaFBpcGVsaW5lUHJvcHMsIHByaW50UmVzb2x2ZWRPckV4aXQgfSBmcm9tICcuLi91dGlscy9waXBlbGluZS1jb25maWcuanMnO1xuaW1wb3J0IHsgUGx1Z2luUmVzb2x1dGlvbkVycm9yLCBwcmludExvb2t1cFdhcm5pbmdTdW1tYXJ5IH0gZnJvbSAnLi4vdXRpbHMvcGx1Z2luLXJlc29sdmVyLmpzJztcbmltcG9ydCB7IHJlc29sdmVSZWdpc3RyYXRpb25DbGllbnQgfSBmcm9tICcuLi91dGlscy9yZWdpc3RyYXRpb24tY2xpZW50LmpzJztcbmltcG9ydCB7IHNldFBpcGVsaW5lSWQgfSBmcm9tICcuLi91dGlscy9yZXF1ZXN0LWNvbnRleHQuanMnO1xuaW1wb3J0IHsgcmVsYXhUbHNGb3JDbGkgfSBmcm9tICcuLi91dGlscy90bHMuanMnO1xuXG4vLyBFU00gaGFzIG5vIF9fZGlybmFtZTsgZGVyaXZlIGl0IGZyb20gdGhpcyBtb2R1bGUncyBVUkwuXG5jb25zdCBfX2Rpcm5hbWUgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbi8qKiBXaGF0IGEgZmV0Y2hlZCBzeW50aCBuZWVkcyBhZnRlcndhcmRzIHRvIHJlZ2lzdGVyIHRoZSBzdGVwIG1hbmlmZXN0LiAqL1xuaW50ZXJmYWNlIEZldGNoZWRGb3JTeW50aCB7XG4gIGNsaWVudDogQXBpQ2xpZW50O1xuICBwaXBlbGluZTogRmV0Y2hlZFBpcGVsaW5lWydwaXBlbGluZSddO1xuICBwbHVnaW5XYXJuaW5nczogRmV0Y2hlZFBpcGVsaW5lWydwbHVnaW5XYXJuaW5ncyddO1xufVxuXG4vKipcbiAqIEZldGNoIHBpcGVsaW5lIGNvbmZpZyBhbmQgc2V0IFBJUEVMSU5FX1BST1BTIGVudiB2YXIgZm9yIHRoZSBib2lsZXJwbGF0ZSBhcHAuXG4gKiBVc2VzIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyB3aGljaCBzdXBwb3J0cyBhbGwgdGhyZWUgYXV0aCBtZXRob2RzLlxuICovXG5hc3luYyBmdW5jdGlvbiBmZXRjaFBpcGVsaW5lQ29uZmlnKFxuICBwaXBlbGluZUlkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IHsgc3RvcmVUb2tlbnM/OiBib29sZWFuOyB2ZXJpZnlTc2w/OiBib29sZWFuOyByZWdpb24/OiBzdHJpbmc7IHByb2ZpbGU/OiBzdHJpbmcgfSxcbik6IFByb21pc2U8RmV0Y2hlZEZvclN5bnRoPiB7XG4gIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgY29uc3QgeyBwaXBlbGluZSwgcHJvcHNXaXRoSWRzLCBiYXNlVXJsLCBwbHVnaW5XYXJuaW5ncyB9ID0gYXdhaXQgZmV0Y2hQaXBlbGluZVByb3BzKGNsaWVudCwgcGlwZWxpbmVJZCk7XG5cbiAgcHJvY2Vzcy5lbnYuUElQRUxJTkVfUFJPUFMgPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShwcm9wc1dpdGhJZHMpKS50b1N0cmluZygnYmFzZTY0Jyk7XG5cbiAgLy8gUHJvcGFnYXRlIHRoZSByZXNvbHZlZCBwbGF0Zm9ybSBiYXNlIFVSTCBpbnRvIHRoZSBib2lsZXJwbGF0ZSBzeW50aCAod2hpY2hcbiAgLy8gaW5oZXJpdHMgcHJvY2Vzcy5lbnYpLiBUaGUgc3ludGggdXNlcyBpdCBmb3Igc2VydmVyQ29uZmlnLnBsYXRmb3JtVXJsICh0aGVcbiAgLy8gUGx1Z2luTG9va3VwIExhbWJkYSBlbmRwb2ludCkgYW5kIGFzIHRoZSBsb2FkUmVnaXN0cnlDb25maWcgcHVsbC1ob3N0XG4gIC8vIGZhbGxiYWNrLiBXaXRob3V0IHRoaXMsIGEgVVJMIGNvbmZpZ3VyZWQgdmlhIH4vLnBpcGVsaW5lLW1hbmFnZXIvY29uZmlnLnltbFxuICAvLyBpcyBpbnZpc2libGUgdG8gdGhlIHN5bnRoIHN1YnByb2Nlc3MgKGl0IHJlYWRzIG9ubHkgdGhlIGVudikuXG4gIGlmIChiYXNlVXJsKSB7XG4gICAgcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgPSBiYXNlVXJsO1xuICB9XG5cbiAgcHJpbnRTdWNjZXNzKCdQaXBlbGluZSBjb25maWd1cmF0aW9uIGxvYWRlZCcpO1xuICByZXR1cm4geyBjbGllbnQsIHBpcGVsaW5lOiB7IC4uLnBpcGVsaW5lLCBpZDogcGlwZWxpbmUuaWQgfHwgcGlwZWxpbmVJZCB9LCBwbHVnaW5XYXJuaW5ncyB9O1xufVxuXG4vKiogVHJ1ZSBpbnNpZGUgYW4gQVdTIENvZGVCdWlsZCBidWlsZCAodGhlIHNlbGYtbXV0YXRpbmcgc3ludGgpLiAqL1xuZnVuY3Rpb24gaW5Db2RlQnVpbGQoKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIXByb2Nlc3MuZW52LkNPREVCVUlMRF9CVUlMRF9JRDtcbn1cblxuLyoqXG4gKiBQcmludCB0aGUgb25lLWxpbmUgbWFjaGluZS1yZWFkYWJsZSBmYWlsdXJlIChgUEJfU1lOVEhfRkFJTFVSRSB74oCmfWApIHRoZVxuICogZXZlbnRzIExhbWJkYSBsaWZ0cyBvdXQgb2YgdGhlIGZhaWxlZCBidWlsZCdzIGxvZyBhbmQgYXR0YWNoZXMgdG8gdGhlXG4gKiBleGVjdXRpb24gZXZlbnQuIE9ubHkgaW5zaWRlIENvZGVCdWlsZCDigJQgZWxzZXdoZXJlIGEgaHVtYW4gcmVhZHMgdGhlIGVycm9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1pdFN5bnRoRmFpbHVyZShlcnJvcjogdW5rbm93bik6IHZvaWQge1xuICBpZiAoIWluQ29kZUJ1aWxkKCkpIHJldHVybjtcbiAgY29uc3QgZmFpbHVyZSA9IGVycm9yIGluc3RhbmNlb2YgUGx1Z2luUmVzb2x1dGlvbkVycm9yXG4gICAgPyBzeW50aEZhaWx1cmUoZXJyb3IubWVzc2FnZSwgZXJyb3IucmVmdXNhbHMpXG4gICAgOiBzeW50aEZhaWx1cmUoZXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gIGNvbnNvbGUuZXJyb3IoZm9ybWF0U3ludGhGYWlsdXJlKGZhaWx1cmUpKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGBzeW50aGAgY29tbWFuZCB3aXRoIHRoZSBDTEkgcHJvZ3JhbS5cbiAqXG4gKiBSdW5zIENESyBzeW50aGVzaXMgdXNpbmcgdGhlIGJvaWxlcnBsYXRlIGFwcC4gUGlwZWxpbmUgY29uZmlnIGlzIHJlc29sdmVkIGZyb206XG4gKiAxLiAtLWlkIGZsYWcgb3IgUElQRUxJTkVfSUQgZW52IHZhciDihpIgZmV0Y2hlcyBjb25maWcgZnJvbSBwbGF0Zm9ybSBBUElcbiAqIDIuIFBJUEVMSU5FX1BST1BTIGVudiB2YXIgKHByZS1lbmNvZGVkLCBmcm9tIGRlcGxveSBjb21tYW5kKVxuICpcbiAqIEF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgKGluIHByaW9yaXR5IG9yZGVyKTpcbiAqIC0gUExBVEZPUk1fVE9LRU4gZW52IHZhclxuICogLSAtLXN0b3JlLXRva2VucyDihpIgZmV0Y2ggZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgc3ludGggLS1pZCA8cGlwZWxpbmUtaWQ+XG4gKiBwaXBlbGluZS1tYW5hZ2VyIHBpcGVsaW5lIHN5bnRoIC0taWQgPHBpcGVsaW5lLWlkPiAtLXN0b3JlLXRva2Vuc1xuICogcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBzeW50aCAtLXF1aWV0IC0tbm8tbm90aWNlcyAgICAgICAgICAjIENvZGVQaXBlbGluZSAodXNlcyBlbnYgdmFycylcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ludGgocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhcbiAgICB3aXRoUmVnaW9uT3B0aW9uKFxuICAgICAgd2l0aFByb2ZpbGVPcHRpb24ocHJvZ3JhbVxuICAgICAgICAuY29tbWFuZCgnc3ludGgnKVxuICAgICAgICAuZGVzY3JpcHRpb24oJ1J1biBDREsgc3ludGhlc2lzIHVzaW5nIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24nKVxuICAgICAgICAub3B0aW9uKCctaSwgLS1pZCA8aWQ+JywgJ1BpcGVsaW5lIElEIChvciBzZXQgUElQRUxJTkVfSUQgZW52IHZhciknKVxuICAgICAgICAub3B0aW9uKCctLXN0b3JlLXRva2VucycsICdBdXRoZW50aWNhdGUgdXNpbmcgdG9rZW4gZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyIChyZXF1aXJlcyBQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyKScsIGZhbHNlKVxuICAgICAgICAub3B0aW9uKCctLW91dHB1dCA8ZGlyPicsICdDREsgb3V0cHV0IGRpcmVjdG9yeScsICdjZGsub3V0JykpLFxuICAgIClcbiAgICAgIC5vcHRpb24oJy0tcXVpZXQnLCAnU3VwcHJlc3MgQ0RLIG91dHB1dCcsIGZhbHNlKVxuICAgICAgLm9wdGlvbignLS1uby1ub3RpY2VzJywgJ1N1cHByZXNzIENESyBub3RpY2VzJylcbiAgICAgIC5vcHRpb24oJy0tdmVyYm9zZScsICdTaG93IHZlcmJvc2UgQ0RLIG91dHB1dCcsIGZhbHNlKVxuICAgICAgLm9wdGlvbignLS1qc29uJywgJ091dHB1dCByZXN1bHQgYXMgSlNPTicsIGZhbHNlKSxcbiAgKVxuICAgIC5vcHRpb24oJy0tc2hvdy1yZXNvbHZlZCcsICdQcmludCB0aGUgcmVzb2x2ZWQgcGlwZWxpbmUgY29uZmlnICh3aXRoIHt7IC4uLiB9fSB0ZW1wbGF0ZXMgZXhwYW5kZWQpIGFuZCBleGl0IHdpdGhvdXQgcnVubmluZyBDREsnLCBmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignQ0RLIFN5bnRoZXNpcycsIHVuZGVmaW5lZCwgeyBxdWlldDogb3B0aW9ucy5qc29uIH0pO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwaXBlbGluZUlkID0gb3B0aW9ucy5pZCB8fCBwcm9jZXNzLmVudi5QSVBFTElORV9JRDtcbiAgICAgICAgLy8gRXZlcnkgcGxhdGZvcm0gY2FsbCBiZWxvdyBjYXJyaWVzIGl0LCBzbyB0aGUgdXNhZ2UgbGVkZ2VyIGNhbiBzYXkgd2hpY2hcbiAgICAgICAgLy8gcGlwZWxpbmUncyBzeW50aCBzcGVudCB0aGUgY2FsbHMuXG4gICAgICAgIHNldFBpcGVsaW5lSWQocGlwZWxpbmVJZCk7XG5cbiAgICAgICAgLy8gLS1zaG93LXJlc29sdmVkOiBwcmV2aWV3IHRlbXBsYXRlcyBhbmQgZXhpdFxuICAgICAgICBpZiAob3B0aW9ucy5zaG93UmVzb2x2ZWQpIHtcbiAgICAgICAgICBhd2FpdCBzaG93UmVzb2x2ZWRQaXBlbGluZShwaXBlbGluZUlkLCBvcHRpb25zKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhdWRpdExvZygnc3ludGgnLCB7IGV4ZWN1dGlvbklkLCBwaXBlbGluZUlkLCBvdXRwdXQ6IG9wdGlvbnMub3V0cHV0LCBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUgfSk7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgICAgLy8gUHJvcGFnYXRlIHRvIHByb2Nlc3MuZW52IHNvIENESyBjb25zdHJ1Y3RzIChMYW1iZGEsIENvZGVCdWlsZCkgaW5oZXJpdCBpdCxcbiAgICAgICAgLy8gYnV0IHJlZnVzZSBpbiBwcm9kdWN0aW9uIChzZWUgcmVsYXhUbHNGb3JDbGkpIOKAlCB0aGUgZmxhZyBkaXNhYmxlcyBjZXJ0XG4gICAgICAgIC8vIHZhbGlkYXRpb24gZm9yIEFMTCBvdXRib3VuZCBUTFMsIGluY2x1ZGluZyB0aGUgQVdTIFNESy5cbiAgICAgICAgcmVsYXhUbHNGb3JDbGkob3B0aW9ucy52ZXJpZnlTc2wsIHByaW50V2FybmluZyk7XG5cbiAgICAgICAgLy8gRmV0Y2ggcGlwZWxpbmUgY29uZmlnIGlmIElEIGlzIGF2YWlsYWJsZSBhbmQgUElQRUxJTkVfUFJPUFMgbm90IGFscmVhZHkgc2V0XG4gICAgICAgIGxldCBmZXRjaGVkOiBGZXRjaGVkRm9yU3ludGggfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChwaXBlbGluZUlkICYmICFwcm9jZXNzLmVudi5QSVBFTElORV9QUk9QUykge1xuICAgICAgICAgIHByaW50SW5mbygnRmV0Y2hpbmcgcGlwZWxpbmUgY29uZmlndXJhdGlvbicsIHsgaWQ6IHBpcGVsaW5lSWQgfSk7XG4gICAgICAgICAgZmV0Y2hlZCA9IGF3YWl0IGZldGNoUGlwZWxpbmVDb25maWcocGlwZWxpbmVJZCwgb3B0aW9ucyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXBpcGVsaW5lSWQgJiYgIXByb2Nlc3MuZW52LlBJUEVMSU5FX1BST1BTKSB7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdObyBwaXBlbGluZSBJRCBvciBQSVBFTElORV9QUk9QUyBzZXQnKTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BpcGVsaW5lIElEIGlzIHJlcXVpcmVkLiBVc2UgLS1pZCA8aWQ+IG9yIHNldCBQSVBFTElORV9JRCBlbnYgdmFyLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTG9jYWwtdG9vbCBwcmVyZXF1aXNpdGVzIChjZGsgKyBlc2J1aWxkL3BucG0pIGFyZSB2ZXJpZmllZCB1cCBmcm9udCBieVxuICAgICAgICAvLyB0aGUgQ0xJJ3MgcHJlQWN0aW9uIGhvb2ssIHNvIGJ5IGhlcmUgdGhleSdyZSBndWFyYW50ZWVkIHByZXNlbnQuXG5cbiAgICAgICAgLy8gQnVpbGQgY2RrIHN5bnRoIGNvbW1hbmRcbiAgICAgICAgaWYgKG9wdGlvbnMub3V0cHV0KSBhc3NlcnRTaGVsbFNhZmUob3B0aW9ucy5vdXRwdXQsICdvdXRwdXQnKTtcbiAgICAgICAgaWYgKG9wdGlvbnMucHJvZmlsZSkgYXNzZXJ0U2hlbGxTYWZlKG9wdGlvbnMucHJvZmlsZSwgJ3Byb2ZpbGUnKTtcblxuICAgICAgICBjb25zdCBib2lsZXJwbGF0ZVBhdGggPSByZXNvbHZlQm9pbGVycGxhdGVQYXRoKF9fZGlybmFtZSk7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gW1xuICAgICAgICAgICdjZGsgc3ludGgnLFxuICAgICAgICAgIGAtLWFwcD1cIm5vZGUgJHtib2lsZXJwbGF0ZVBhdGh9XCJgLFxuICAgICAgICAgIGAtLW91dHB1dD0ke29wdGlvbnMub3V0cHV0fWAsXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucHJvZmlsZSkgcGFydHMucHVzaChgLS1wcm9maWxlPSR7b3B0aW9ucy5wcm9maWxlfWApO1xuICAgICAgICBpZiAob3B0aW9ucy5xdWlldCkgcGFydHMucHVzaCgnLS1xdWlldCcpO1xuICAgICAgICBpZiAob3B0aW9ucy5ub3RpY2VzID09PSBmYWxzZSkgcGFydHMucHVzaCgnLS1uby1ub3RpY2VzJyk7XG4gICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHBhcnRzLnB1c2goJy0tdmVyYm9zZScpO1xuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBwYXJ0cy5qb2luKCcgJyk7XG5cbiAgICAgICAgcHJpbnRJbmZvKCdFeGVjdXRpbmcnLCB7IGNvbW1hbmQ6IChjb21tYW5kLnNwbGl0KCctLWFwcCcpWzBdID8/ICcnKS50cmltKCkgKyAnIC4uLicgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBleGVjdXRlQ2RrU2hlbGxDb21tYW5kKGNvbW1hbmQsIHtcbiAgICAgICAgICBzaG93T3V0cHV0OiAhb3B0aW9ucy5xdWlldCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFNlY3Rpb24oJ1N5bnRoZXNpcyBDb21wbGV0ZScpO1xuXG4gICAgICAgIC8vIEEgc2VsZi1tdXRhdGluZyBwaXBlbGluZSByZS1zeW50aGVzaXplcyBpbiBDb2RlQnVpbGQgb24gZXZlcnkgcnVuIGFuZFxuICAgICAgICAvLyBuZXZlciBwYXNzZXMgdGhyb3VnaCBgcGlwZWxpbmUgZGVwbG95YCwgc28gcmVnaXN0ZXIgaXRzIHN0ZXAgbWFuaWZlc3RcbiAgICAgICAgLy8gaGVyZSDigJQgb3RoZXJ3aXNlIHRoZSBwbGF0Zm9ybSBrZWVwcyB0aGUgZGlnZXN0cyBvZiB0aGUgTEFTVCBtYW51YWxcbiAgICAgICAgLy8gZGVwbG95IGFuZCBpdHMgZGVwbG95ZWQtZXhwb3N1cmUgdmlldyBnb2VzIHN0YWxlLiBCZXN0LWVmZm9ydDogYVxuICAgICAgICAvLyBmYWlsZWQgcmVnaXN0cmF0aW9uIGlzIGxvZ2dlZCBsb3VkbHksIG5ldmVyIGZhaWxzIHRoZSBzeW50aC5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gUmVnaXN0ZXJlZCB3aXRoIHRoZSBgcGlwZWxpbmUtcmVnaXN0ZXJgIGtleSwgTk9UIHRoZSBwbGF0Zm9ybSBrZXkgdGhlXG4gICAgICAgIC8vIHN5bnRoIGZldGNoZWQgd2l0aDogdGhhdCBvbmUgcmVhZHMgcGlwZWxpbmVzIGFuZCBwbHVnaW5zIG9ubHkuIEFcbiAgICAgICAgLy8gbWlzc2luZyByZWdpc3RyYXRpb24ga2V5IHNraXBzIHRoaXMgd2l0aCBhIHdhcm5pbmcgKG5vIGZhbGxiYWNrKS5cbiAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzICYmIGZldGNoZWQgJiYgaW5Db2RlQnVpbGQoKSkge1xuICAgICAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbkNsaWVudCA9IGF3YWl0IHJlc29sdmVSZWdpc3RyYXRpb25DbGllbnQoe1xuICAgICAgICAgICAgY2xpZW50OiBmZXRjaGVkLmNsaWVudCxcbiAgICAgICAgICAgIHN0b3JlVG9rZW5zOiBvcHRpb25zLnN0b3JlVG9rZW5zLFxuICAgICAgICAgICAgb3JnSWQ6IGZldGNoZWQucGlwZWxpbmUub3JnSWQsXG4gICAgICAgICAgICByZWdpb246IG9wdGlvbnMucmVnaW9uLFxuICAgICAgICAgICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChyZWdpc3RyYXRpb25DbGllbnQpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlZ2lzdGVyUGlwZWxpbmUoe1xuICAgICAgICAgICAgICBjbGllbnQ6IHJlZ2lzdHJhdGlvbkNsaWVudCxcbiAgICAgICAgICAgICAgcGlwZWxpbmVVcmw6IHJlZ2lzdHJhdGlvbkNsaWVudC5nZXRDb25maWcoKS5hcGkucGlwZWxpbmVVcmwsXG4gICAgICAgICAgICAgIHBpcGVsaW5lOiBmZXRjaGVkLnBpcGVsaW5lLFxuICAgICAgICAgICAgICByZWdpb246IG9wdGlvbnMucmVnaW9uLFxuICAgICAgICAgICAgICBvdXRwdXQ6IG9wdGlvbnMub3V0cHV0LFxuICAgICAgICAgICAgICBxdWV1ZU9uRmFpbHVyZTogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWdWxuZXJhYmlsaXR5L2xpZmVjeWNsZSBzdGF0ZSBpcyByZXBvcnRlZCwgbmV2ZXIgZW5mb3JjZWQ6IG9uZSBncmFkZWRcbiAgICAgICAgLy8gc3VtbWFyeSBsaW5lIHNvIHRoZSB3YXJuaW5ncyBwcmludGVkIGR1cmluZyByZXNvbHV0aW9uIGFyZW4ndCBsb3N0XG4gICAgICAgIC8vIGFib3ZlIHRoZSBDREsgb3V0cHV0LlxuICAgICAgICBpZiAoZmV0Y2hlZCkgcHJpbnRMb29rdXBXYXJuaW5nU3VtbWFyeShmZXRjaGVkLnBsdWdpbldhcm5pbmdzKTtcblxuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5qc29uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogcmVzdWx0LmR1cmF0aW9uLFxuICAgICAgICAgICAgICBvdXRwdXQ6IG9wdGlvbnMub3V0cHV0LFxuICAgICAgICAgICAgfSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAgICAgJ0V4ZWN1dGlvbiBJRCc6IGV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgICAnRHVyYXRpb24nOiBgJHtyZXN1bHQuZHVyYXRpb259bXNgLFxuICAgICAgICAgICAgICAnT3V0cHV0Jzogb3B0aW9ucy5vdXRwdXQsXG4gICAgICAgICAgICAgICdTdGF0dXMnOiAn4pyTIFN1Y2Nlc3MnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVtaXRTeW50aEZhaWx1cmUoZXJyb3IpO1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdzeW50aCcsIGV4ZWN1dGlvbklkLCBwaXBlbGluZUlkOiBvcHRpb25zLmlkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKipcbiAqIEZldGNoIHRoZSBwaXBlbGluZSBieSBJRCwgYXBwbHkgcGFzcy0xIHNlbGYtcmVmZXJlbmNpbmcgdGVtcGxhdGVcbiAqIHJlc29sdXRpb24sIGFuZCBwcmludCBpdCB0byBzdGRvdXQuIFVzZWQgYnkgYHN5bnRoIC0tc2hvdy1yZXNvbHZlZGBcbiAqIGFuZCBgZGVwbG95IC0tc2hvdy1yZXNvbHZlZGAgdG8gcHJldmlldyBzdWJzdGl0dXRpb24gYmVmb3JlIHJ1bm5pbmcgQ0RLLlxuICovXG5hc3luYyBmdW5jdGlvbiBzaG93UmVzb2x2ZWRQaXBlbGluZShcbiAgcGlwZWxpbmVJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBvcHRpb25zOiB7IHByb2ZpbGU/OiBzdHJpbmc7IHJlZ2lvbj86IHN0cmluZzsgc3RvcmVUb2tlbnM/OiBib29sZWFuOyB2ZXJpZnlTc2w/OiBib29sZWFuIH0sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgaWYgKCFwaXBlbGluZUlkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCctLXNob3ctcmVzb2x2ZWQgcmVxdWlyZXMgLS1pZCBvciBQSVBFTElORV9JRCBlbnYgdmFyJyk7XG4gIH1cbiAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICBjb25zdCB7IHByb3BzV2l0aElkcyB9ID0gYXdhaXQgZmV0Y2hQaXBlbGluZVByb3BzKGNsaWVudCwgcGlwZWxpbmVJZCk7XG4gIGF3YWl0IHByaW50UmVzb2x2ZWRPckV4aXQocHJvcHNXaXRoSWRzKTtcbn1cbiJdfQ==
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9zeW50aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RyxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUFFLHlC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QUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILEtBQUssVUFBVSxvQkFBb0IsQ0FDakMsVUFBOEIsRUFDOUIsT0FBMEY7SUFFMUYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEUsTUFBTSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IGVycm9yTWVzc2FnZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IGZvcm1hdFN5bnRoRmFpbHVyZSwgc3ludGhGYWlsdXJlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCB7IGFzc2VydFNoZWxsU2FmZSB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB0eXBlIHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vdXRpbHMvYXBpLWNsaWVudC5qcyc7XG5pbXBvcnQgeyBhdWRpdExvZyB9IGZyb20gJy4uL3V0aWxzL2F1ZGl0LWxvZy5qcyc7XG5pbXBvcnQgeyBleGVjdXRlQ2RrU2hlbGxDb21tYW5kLCByZXNvbHZlQm9pbGVycGxhdGVQYXRoIH0gZnJvbSAnLi4vdXRpbHMvY2RrLXV0aWxzLmpzJztcbmltcG9ydCB7IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYywgcHJpbnRDb21tYW5kSGVhZGVyLCBwcmludFNzbFdhcm5pbmcsIHdpdGhQcm9maWxlT3B0aW9uLCB3aXRoUmVnaW9uT3B0aW9uLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQaXBlbGluZSB9IGZyb20gJy4uL3V0aWxzL2RlcGxveS1ydW5uZXIuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgdHlwZSBGZXRjaGVkUGlwZWxpbmUsIGZldGNoUGlwZWxpbmVQcm9wcywgcHJpbnRSZXNvbHZlZE9yRXhpdCB9IGZyb20gJy4uL3V0aWxzL3BpcGVsaW5lLWNvbmZpZy5qcyc7XG5pbXBvcnQgeyBQbHVnaW5SZXNvbHV0aW9uRXJyb3IsIHByaW50TG9va3VwV2FybmluZ1N1bW1hcnkgfSBmcm9tICcuLi91dGlscy9wbHVnaW4tcmVzb2x2ZXIuanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVJlZ2lzdHJhdGlvbkNsaWVudCB9IGZyb20gJy4uL3V0aWxzL3JlZ2lzdHJhdGlvbi1jbGllbnQuanMnO1xuaW1wb3J0IHsgc2V0UGlwZWxpbmVJZCB9IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QtY29udGV4dC5qcyc7XG5pbXBvcnQgeyByZWxheFRsc0ZvckNsaSB9IGZyb20gJy4uL3V0aWxzL3Rscy5qcyc7XG5cbi8vIEVTTSBoYXMgbm8gX19kaXJuYW1lOyBkZXJpdmUgaXQgZnJvbSB0aGlzIG1vZHVsZSdzIFVSTC5cbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcblxuLyoqIFdoYXQgYSBmZXRjaGVkIHN5bnRoIG5lZWRzIGFmdGVyd2FyZHMgdG8gcmVnaXN0ZXIgdGhlIHN0ZXAgbWFuaWZlc3QuICovXG5pbnRlcmZhY2UgRmV0Y2hlZEZvclN5bnRoIHtcbiAgY2xpZW50OiBBcGlDbGllbnQ7XG4gIHBpcGVsaW5lOiBGZXRjaGVkUGlwZWxpbmVbJ3BpcGVsaW5lJ107XG4gIHBsdWdpbldhcm5pbmdzOiBGZXRjaGVkUGlwZWxpbmVbJ3BsdWdpbldhcm5pbmdzJ107XG59XG5cbi8qKlxuICogRmV0Y2ggcGlwZWxpbmUgY29uZmlnIGFuZCBzZXQgUElQRUxJTkVfUFJPUFMgZW52IHZhciBmb3IgdGhlIGJvaWxlcnBsYXRlIGFwcC5cbiAqIFVzZXMgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jIHdoaWNoIHN1cHBvcnRzIGFsbCB0aHJlZSBhdXRoIG1ldGhvZHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoUGlwZWxpbmVDb25maWcoXG4gIHBpcGVsaW5lSWQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzdG9yZVRva2Vucz86IGJvb2xlYW47IHZlcmlmeVNzbD86IGJvb2xlYW47IHJlZ2lvbj86IHN0cmluZzsgcHJvZmlsZT86IHN0cmluZyB9LFxuKTogUHJvbWlzZTxGZXRjaGVkRm9yU3ludGg+IHtcbiAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICBjb25zdCB7IHBpcGVsaW5lLCBwcm9wc1dpdGhJZHMsIGJhc2VVcmwsIHBsdWdpbldhcm5pbmdzIH0gPSBhd2FpdCBmZXRjaFBpcGVsaW5lUHJvcHMoY2xpZW50LCBwaXBlbGluZUlkKTtcblxuICBwcm9jZXNzLmVudi5QSVBFTElORV9QUk9QUyA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHByb3BzV2l0aElkcykpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuICAvLyBQcm9wYWdhdGUgdGhlIHJlc29sdmVkIHBsYXRmb3JtIGJhc2UgVVJMIGludG8gdGhlIGJvaWxlcnBsYXRlIHN5bnRoICh3aGljaFxuICAvLyBpbmhlcml0cyBwcm9jZXNzLmVudikuIFRoZSBzeW50aCB1c2VzIGl0IGZvciBzZXJ2ZXJDb25maWcucGxhdGZvcm1VcmwgKHRoZVxuICAvLyBQbHVnaW5Mb29rdXAgTGFtYmRhIGVuZHBvaW50KSBhbmQgYXMgdGhlIGxvYWRSZWdpc3RyeUNvbmZpZyBwdWxsLWhvc3RcbiAgLy8gZmFsbGJhY2suIFdpdGhvdXQgdGhpcywgYSBVUkwgY29uZmlndXJlZCB2aWEgfi8ucGlwZWxpbmUtbWFuYWdlci9jb25maWcueW1sXG4gIC8vIGlzIGludmlzaWJsZSB0byB0aGUgc3ludGggc3VicHJvY2VzcyAoaXQgcmVhZHMgb25seSB0aGUgZW52KS5cbiAgaWYgKGJhc2VVcmwpIHtcbiAgICBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTCA9IGJhc2VVcmw7XG4gIH1cblxuICBwcmludFN1Y2Nlc3MoJ1BpcGVsaW5lIGNvbmZpZ3VyYXRpb24gbG9hZGVkJyk7XG4gIHJldHVybiB7IGNsaWVudCwgcGlwZWxpbmU6IHsgLi4ucGlwZWxpbmUsIGlkOiBwaXBlbGluZS5pZCB8fCBwaXBlbGluZUlkIH0sIHBsdWdpbldhcm5pbmdzIH07XG59XG5cbi8qKiBUcnVlIGluc2lkZSBhbiBBV1MgQ29kZUJ1aWxkIGJ1aWxkICh0aGUgc2VsZi1tdXRhdGluZyBzeW50aCkuICovXG5mdW5jdGlvbiBpbkNvZGVCdWlsZCgpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhcHJvY2Vzcy5lbnYuQ09ERUJVSUxEX0JVSUxEX0lEO1xufVxuXG4vKipcbiAqIFByaW50IHRoZSBvbmUtbGluZSBtYWNoaW5lLXJlYWRhYmxlIGZhaWx1cmUgKGBQQl9TWU5USF9GQUlMVVJFIHvigKZ9YCkgdGhlXG4gKiBldmVudHMgTGFtYmRhIGxpZnRzIG91dCBvZiB0aGUgZmFpbGVkIGJ1aWxkJ3MgbG9nIGFuZCBhdHRhY2hlcyB0byB0aGVcbiAqIGV4ZWN1dGlvbiBldmVudC4gT25seSBpbnNpZGUgQ29kZUJ1aWxkIOKAlCBlbHNld2hlcmUgYSBodW1hbiByZWFkcyB0aGUgZXJyb3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWl0U3ludGhGYWlsdXJlKGVycm9yOiB1bmtub3duKTogdm9pZCB7XG4gIGlmICghaW5Db2RlQnVpbGQoKSkgcmV0dXJuO1xuICBjb25zdCBmYWlsdXJlID0gZXJyb3IgaW5zdGFuY2VvZiBQbHVnaW5SZXNvbHV0aW9uRXJyb3JcbiAgICA/IHN5bnRoRmFpbHVyZShlcnJvci5tZXNzYWdlLCBlcnJvci5yZWZ1c2FscylcbiAgICA6IHN5bnRoRmFpbHVyZShlcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgY29uc29sZS5lcnJvcihmb3JtYXRTeW50aEZhaWx1cmUoZmFpbHVyZSkpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHN5bnRoYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIFJ1bnMgQ0RLIHN5bnRoZXNpcyB1c2luZyB0aGUgYm9pbGVycGxhdGUgYXBwLiBQaXBlbGluZSBjb25maWcgaXMgcmVzb2x2ZWQgZnJvbTpcbiAqIDEuIC0taWQgZmxhZyBvciBQSVBFTElORV9JRCBlbnYgdmFyIOKGkiBmZXRjaGVzIGNvbmZpZyBmcm9tIHBsYXRmb3JtIEFQSVxuICogMi4gUElQRUxJTkVfUFJPUFMgZW52IHZhciAocHJlLWVuY29kZWQsIGZyb20gZGVwbG95IGNvbW1hbmQpXG4gKlxuICogQXV0aGVudGljYXRpb24gbWV0aG9kcyAoaW4gcHJpb3JpdHkgb3JkZXIpOlxuICogLSBQTEFURk9STV9UT0tFTiBlbnYgdmFyXG4gKiAtIC0tc3RvcmUtdG9rZW5zIOKGkiBmZXRjaCBmcm9tIEFXUyBTZWNyZXRzIE1hbmFnZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBzeW50aCAtLWlkIDxwaXBlbGluZS1pZD5cbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgc3ludGggLS1pZCA8cGlwZWxpbmUtaWQ+IC0tc3RvcmUtdG9rZW5zXG4gKiBwaXBlbGluZS1tYW5hZ2VyIHBpcGVsaW5lIHN5bnRoIC0tcXVpZXQgLS1uby1ub3RpY2VzICAgICAgICAgICMgQ29kZVBpcGVsaW5lICh1c2VzIGVudiB2YXJzKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW50aChwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHdpdGhTc2xPcHRpb25zKFxuICAgIHdpdGhSZWdpb25PcHRpb24oXG4gICAgICB3aXRoUHJvZmlsZU9wdGlvbihwcm9ncmFtXG4gICAgICAgIC5jb21tYW5kKCdzeW50aCcpXG4gICAgICAgIC5kZXNjcmlwdGlvbignUnVuIENESyBzeW50aGVzaXMgdXNpbmcgcGlwZWxpbmUgY29uZmlndXJhdGlvbicpXG4gICAgICAgIC5vcHRpb24oJy1pLCAtLWlkIDxpZD4nLCAnUGlwZWxpbmUgSUQgKG9yIHNldCBQSVBFTElORV9JRCBlbnYgdmFyKScpXG4gICAgICAgIC5vcHRpb24oJy0tc3RvcmUtdG9rZW5zJywgJ0F1dGhlbnRpY2F0ZSB1c2luZyB0b2tlbiBmcm9tIEFXUyBTZWNyZXRzIE1hbmFnZXIgKHJlcXVpcmVzIFBMQVRGT1JNX1NFQ1JFVF9OQU1FIGVudiB2YXIpJywgZmFsc2UpXG4gICAgICAgIC5vcHRpb24oJy0tb3V0cHV0IDxkaXI+JywgJ0NESyBvdXRwdXQgZGlyZWN0b3J5JywgJ2Nkay5vdXQnKSksXG4gICAgKVxuICAgICAgLm9wdGlvbignLS1xdWlldCcsICdTdXBwcmVzcyBDREsgb3V0cHV0JywgZmFsc2UpXG4gICAgICAub3B0aW9uKCctLW5vLW5vdGljZXMnLCAnU3VwcHJlc3MgQ0RLIG5vdGljZXMnKVxuICAgICAgLm9wdGlvbignLS12ZXJib3NlJywgJ1Nob3cgdmVyYm9zZSBDREsgb3V0cHV0JywgZmFsc2UpXG4gICAgICAub3B0aW9uKCctLWpzb24nLCAnT3V0cHV0IHJlc3VsdCBhcyBKU09OJywgZmFsc2UpLFxuICApXG4gICAgLm9wdGlvbignLS1zaG93LXJlc29sdmVkJywgJ1ByaW50IHRoZSByZXNvbHZlZCBwaXBlbGluZSBjb25maWcgKHdpdGgge3sgLi4uIH19IHRlbXBsYXRlcyBleHBhbmRlZCkgYW5kIGV4aXQgd2l0aG91dCBydW5uaW5nIENESycsIGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdDREsgU3ludGhlc2lzJywgdW5kZWZpbmVkLCB7IHF1aWV0OiBvcHRpb25zLmpzb24gfSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBpcGVsaW5lSWQgPSBvcHRpb25zLmlkIHx8IHByb2Nlc3MuZW52LlBJUEVMSU5FX0lEO1xuICAgICAgICAvLyBFdmVyeSBwbGF0Zm9ybSBjYWxsIGJlbG93IGNhcnJpZXMgaXQsIHNvIHRoZSB1c2FnZSBsZWRnZXIgY2FuIHNheSB3aGljaFxuICAgICAgICAvLyBwaXBlbGluZSdzIHN5bnRoIHNwZW50IHRoZSBjYWxscy5cbiAgICAgICAgc2V0UGlwZWxpbmVJZChwaXBlbGluZUlkKTtcblxuICAgICAgICAvLyAtLXNob3ctcmVzb2x2ZWQ6IHByZXZpZXcgdGVtcGxhdGVzIGFuZCBleGl0XG4gICAgICAgIGlmIChvcHRpb25zLnNob3dSZXNvbHZlZCkge1xuICAgICAgICAgIGF3YWl0IHNob3dSZXNvbHZlZFBpcGVsaW5lKHBpcGVsaW5lSWQsIG9wdGlvbnMpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF1ZGl0TG9nKCdzeW50aCcsIHsgZXhlY3V0aW9uSWQsIHBpcGVsaW5lSWQsIG91dHB1dDogb3B0aW9ucy5vdXRwdXQsIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSB9KTtcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICAvLyBQcm9wYWdhdGUgdG8gcHJvY2Vzcy5lbnYgc28gQ0RLIGNvbnN0cnVjdHMgKExhbWJkYSwgQ29kZUJ1aWxkKSBpbmhlcml0IGl0LFxuICAgICAgICAvLyBidXQgcmVmdXNlIGluIHByb2R1Y3Rpb24gKHNlZSByZWxheFRsc0ZvckNsaSkg4oCUIHRoZSBmbGFnIGRpc2FibGVzIGNlcnRcbiAgICAgICAgLy8gdmFsaWRhdGlvbiBmb3IgQUxMIG91dGJvdW5kIFRMUywgaW5jbHVkaW5nIHRoZSBBV1MgU0RLLlxuICAgICAgICByZWxheFRsc0ZvckNsaShvcHRpb25zLnZlcmlmeVNzbCwgcHJpbnRXYXJuaW5nKTtcblxuICAgICAgICAvLyBGZXRjaCBwaXBlbGluZSBjb25maWcgaWYgSUQgaXMgYXZhaWxhYmxlIGFuZCBQSVBFTElORV9QUk9QUyBub3QgYWxyZWFkeSBzZXRcbiAgICAgICAgbGV0IGZldGNoZWQ6IEZldGNoZWRGb3JTeW50aCB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHBpcGVsaW5lSWQgJiYgIXByb2Nlc3MuZW52LlBJUEVMSU5FX1BST1BTKSB7XG4gICAgICAgICAgcHJpbnRJbmZvKCdGZXRjaGluZyBwaXBlbGluZSBjb25maWd1cmF0aW9uJywgeyBpZDogcGlwZWxpbmVJZCB9KTtcbiAgICAgICAgICBmZXRjaGVkID0gYXdhaXQgZmV0Y2hQaXBlbGluZUNvbmZpZyhwaXBlbGluZUlkLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIGlmICghcGlwZWxpbmVJZCAmJiAhcHJvY2Vzcy5lbnYuUElQRUxJTkVfUFJPUFMpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ05vIHBpcGVsaW5lIElEIG9yIFBJUEVMSU5FX1BST1BTIHNldCcpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGlwZWxpbmUgSUQgaXMgcmVxdWlyZWQuIFVzZSAtLWlkIDxpZD4gb3Igc2V0IFBJUEVMSU5FX0lEIGVudiB2YXIuJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb2NhbC10b29sIHByZXJlcXVpc2l0ZXMgKGNkayArIGVzYnVpbGQvcG5wbSkgYXJlIHZlcmlmaWVkIHVwIGZyb250IGJ5XG4gICAgICAgIC8vIHRoZSBDTEkncyBwcmVBY3Rpb24gaG9vaywgc28gYnkgaGVyZSB0aGV5J3JlIGd1YXJhbnRlZWQgcHJlc2VudC5cblxuICAgICAgICAvLyBCdWlsZCBjZGsgc3ludGggY29tbWFuZFxuICAgICAgICBpZiAob3B0aW9ucy5vdXRwdXQpIGFzc2VydFNoZWxsU2FmZShvcHRpb25zLm91dHB1dCwgJ291dHB1dCcpO1xuICAgICAgICBpZiAob3B0aW9ucy5wcm9maWxlKSBhc3NlcnRTaGVsbFNhZmUob3B0aW9ucy5wcm9maWxlLCAncHJvZmlsZScpO1xuXG4gICAgICAgIGNvbnN0IGJvaWxlcnBsYXRlUGF0aCA9IHJlc29sdmVCb2lsZXJwbGF0ZVBhdGgoX19kaXJuYW1lKTtcbiAgICAgICAgY29uc3QgcGFydHMgPSBbXG4gICAgICAgICAgJ2NkayBzeW50aCcsXG4gICAgICAgICAgYC0tYXBwPVwibm9kZSAke2JvaWxlcnBsYXRlUGF0aH1cImAsXG4gICAgICAgICAgYC0tb3V0cHV0PSR7b3B0aW9ucy5vdXRwdXR9YCxcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAob3B0aW9ucy5wcm9maWxlKSBwYXJ0cy5wdXNoKGAtLXByb2ZpbGU9JHtvcHRpb25zLnByb2ZpbGV9YCk7XG4gICAgICAgIGlmIChvcHRpb25zLnF1aWV0KSBwYXJ0cy5wdXNoKCctLXF1aWV0Jyk7XG4gICAgICAgIGlmIChvcHRpb25zLm5vdGljZXMgPT09IGZhbHNlKSBwYXJ0cy5wdXNoKCctLW5vLW5vdGljZXMnKTtcbiAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkgcGFydHMucHVzaCgnLS12ZXJib3NlJyk7XG5cbiAgICAgICAgY29uc3QgY29tbWFuZCA9IHBhcnRzLmpvaW4oJyAnKTtcblxuICAgICAgICBwcmludEluZm8oJ0V4ZWN1dGluZycsIHsgY29tbWFuZDogKGNvbW1hbmQuc3BsaXQoJy0tYXBwJylbMF0gPz8gJycpLnRyaW0oKSArICcgLi4uJyB9KTtcbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGV4ZWN1dGVDZGtTaGVsbENvbW1hbmQoY29tbWFuZCwge1xuICAgICAgICAgIHNob3dPdXRwdXQ6ICFvcHRpb25zLnF1aWV0LFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50U2VjdGlvbignU3ludGhlc2lzIENvbXBsZXRlJyk7XG5cbiAgICAgICAgLy8gQSBzZWxmLW11dGF0aW5nIHBpcGVsaW5lIHJlLXN5bnRoZXNpemVzIGluIENvZGVCdWlsZCBvbiBldmVyeSBydW4gYW5kXG4gICAgICAgIC8vIG5ldmVyIHBhc3NlcyB0aHJvdWdoIGBwaXBlbGluZSBkZXBsb3lgLCBzbyByZWdpc3RlciBpdHMgc3RlcCBtYW5pZmVzdFxuICAgICAgICAvLyBoZXJlIOKAlCBvdGhlcndpc2UgdGhlIHBsYXRmb3JtIGtlZXBzIHRoZSBkaWdlc3RzIG9mIHRoZSBMQVNUIG1hbnVhbFxuICAgICAgICAvLyBkZXBsb3kgYW5kIGl0cyBkZXBsb3llZC1leHBvc3VyZSB2aWV3IGdvZXMgc3RhbGUuIEJlc3QtZWZmb3J0OiBhXG4gICAgICAgIC8vIGZhaWxlZCByZWdpc3RyYXRpb24gaXMgbG9nZ2VkIGxvdWRseSwgbmV2ZXIgZmFpbHMgdGhlIHN5bnRoLlxuICAgICAgICAvL1xuICAgICAgICAvLyBSZWdpc3RlcmVkIHdpdGggdGhlIGBwaXBlbGluZS1yZWdpc3RlcmAga2V5LCBOT1QgdGhlIHBsYXRmb3JtIGtleSB0aGVcbiAgICAgICAgLy8gc3ludGggZmV0Y2hlZCB3aXRoOiB0aGF0IG9uZSByZWFkcyBwaXBlbGluZXMgYW5kIHBsdWdpbnMgb25seS4gQVxuICAgICAgICAvLyBtaXNzaW5nIHJlZ2lzdHJhdGlvbiBrZXkgc2tpcHMgdGhpcyB3aXRoIGEgd2FybmluZyAobm8gZmFsbGJhY2spLlxuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MgJiYgZmV0Y2hlZCAmJiBpbkNvZGVCdWlsZCgpKSB7XG4gICAgICAgICAgY29uc3QgcmVnaXN0cmF0aW9uQ2xpZW50ID0gYXdhaXQgcmVzb2x2ZVJlZ2lzdHJhdGlvbkNsaWVudCh7XG4gICAgICAgICAgICBjbGllbnQ6IGZldGNoZWQuY2xpZW50LFxuICAgICAgICAgICAgc3RvcmVUb2tlbnM6IG9wdGlvbnMuc3RvcmVUb2tlbnMsXG4gICAgICAgICAgICBvcmdJZDogZmV0Y2hlZC5waXBlbGluZS5vcmdJZCxcbiAgICAgICAgICAgIHJlZ2lvbjogb3B0aW9ucy5yZWdpb24sXG4gICAgICAgICAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbkNsaWVudCkge1xuICAgICAgICAgICAgYXdhaXQgcmVnaXN0ZXJQaXBlbGluZSh7XG4gICAgICAgICAgICAgIGNsaWVudDogcmVnaXN0cmF0aW9uQ2xpZW50LFxuICAgICAgICAgICAgICBwaXBlbGluZVVybDogcmVnaXN0cmF0aW9uQ2xpZW50LmdldENvbmZpZygpLmFwaS5waXBlbGluZVVybCxcbiAgICAgICAgICAgICAgcGlwZWxpbmU6IGZldGNoZWQucGlwZWxpbmUsXG4gICAgICAgICAgICAgIHJlZ2lvbjogb3B0aW9ucy5yZWdpb24sXG4gICAgICAgICAgICAgIG91dHB1dDogb3B0aW9ucy5vdXRwdXQsXG4gICAgICAgICAgICAgIHF1ZXVlT25GYWlsdXJlOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZ1bG5lcmFiaWxpdHkvbGlmZWN5Y2xlIHN0YXRlIGlzIHJlcG9ydGVkLCBuZXZlciBlbmZvcmNlZDogb25lIGdyYWRlZFxuICAgICAgICAvLyBzdW1tYXJ5IGxpbmUgc28gdGhlIHdhcm5pbmdzIHByaW50ZWQgZHVyaW5nIHJlc29sdXRpb24gYXJlbid0IGxvc3RcbiAgICAgICAgLy8gYWJvdmUgdGhlIENESyBvdXRwdXQuXG4gICAgICAgIGlmIChmZXRjaGVkKSBwcmludExvb2t1cFdhcm5pbmdTdW1tYXJ5KGZldGNoZWQucGx1Z2luV2FybmluZ3MpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiByZXN1bHQuZHVyYXRpb24sXG4gICAgICAgICAgICAgIG91dHB1dDogb3B0aW9ucy5vdXRwdXQsXG4gICAgICAgICAgICB9LCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgICAnRXhlY3V0aW9uIElEJzogZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICAgICdEdXJhdGlvbic6IGAke3Jlc3VsdC5kdXJhdGlvbn1tc2AsXG4gICAgICAgICAgICAgICdPdXRwdXQnOiBvcHRpb25zLm91dHB1dCxcbiAgICAgICAgICAgICAgJ1N0YXR1cyc6ICfinJMgU3VjY2VzcycsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgZW1pdFN5bnRoRmFpbHVyZShlcnJvcik7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3N5bnRoJywgZXhlY3V0aW9uSWQsIHBpcGVsaW5lSWQ6IG9wdGlvbnMuaWQgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbi8qKlxuICogRmV0Y2ggdGhlIHBpcGVsaW5lIGJ5IElELCBhcHBseSBwYXNzLTEgc2VsZi1yZWZlcmVuY2luZyB0ZW1wbGF0ZVxuICogcmVzb2x1dGlvbiwgYW5kIHByaW50IGl0IHRvIHN0ZG91dC4gVXNlZCBieSBgc3ludGggLS1zaG93LXJlc29sdmVkYFxuICogYW5kIGBkZXBsb3kgLS1zaG93LXJlc29sdmVkYCB0byBwcmV2aWV3IHN1YnN0aXR1dGlvbiBiZWZvcmUgcnVubmluZyBDREsuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNob3dSZXNvbHZlZFBpcGVsaW5lKFxuICBwaXBlbGluZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM6IHsgcHJvZmlsZT86IHN0cmluZzsgcmVnaW9uPzogc3RyaW5nOyBzdG9yZVRva2Vucz86IGJvb2xlYW47IHZlcmlmeVNzbD86IGJvb2xlYW4gfSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXBpcGVsaW5lSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJy0tc2hvdy1yZXNvbHZlZCByZXF1aXJlcyAtLWlkIG9yIFBJUEVMSU5FX0lEIGVudiB2YXInKTtcbiAgfVxuICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMob3B0aW9ucyk7XG4gIGNvbnN0IHsgcHJvcHNXaXRoSWRzIH0gPSBhd2FpdCBmZXRjaFBpcGVsaW5lUHJvcHMoY2xpZW50LCBwaXBlbGluZUlkKTtcbiAgYXdhaXQgcHJpbnRSZXNvbHZlZE9yRXhpdChwcm9wc1dpdGhJZHMpO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-plugin.d.ts","
|
|
1
|
+
{"version":3,"file":"test-plugin.d.ts","sources":["../../src/commands/test-plugin.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,EACoF,KAAK,IAAI,EACnG,MAAM,2BAA2B,CAAC;AAGnC,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,oEAAoE;AACpE,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQhG;AAID,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC5C,0CAA0C;IAC1C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,yFAAyF;IACzF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,KAAK,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EACzG,OAAO,GAAE,MAAM,CAAC,UAAwB,GACvC,QAAQ,CAsDV;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAUrI;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAmBnE;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,wBAAwB,CAAC,GAAG,MAAM,GAAG,IAAI,CAOnH;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,GAAE,IAAgB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA4F/H;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwBjD"}
|