@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
|
@@ -282,4 +282,4 @@ export function testPlugin(program) {
|
|
|
282
282
|
}
|
|
283
283
|
});
|
|
284
284
|
}
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdGVzdC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQ0wsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsOEJBQThCLEdBQ3ZILE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNHLE9BQU8sRUFDTCxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsR0FDeEYsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEYsd0ZBQXdGO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFlBQVksQ0FBQztBQVloRCxvRUFBb0U7QUFDcEUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLEtBQUs7SUFDMUMsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztDQUNGO0FBRUQsdUVBQXVFO0FBQ3ZFLE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBMkIsRUFBRSxJQUFZO0lBQ3RFLE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7SUFDdkMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7UUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQUUsTUFBTSxJQUFJLGVBQWUsQ0FBQyxHQUFHLElBQUksNEJBQTRCLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFhLEVBQUUsUUFBUSxHQUFhLEVBQUUsRUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQW1CM0Y7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUE2QixFQUM3QixLQUF5RyxFQUN6RyxPQUFPLEdBQXNCLE9BQU8sQ0FBQyxHQUFHO0lBRXhDLE1BQU0sUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFxRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdEgsSUFBSSxRQUFpQyxDQUFDO0lBQ3RDLElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxJQUFhLEVBQUU7WUFDL0MsUUFBUSxFQUFFO2dCQUNSLFdBQVcsRUFBRSxhQUFhO2dCQUMxQixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsWUFBWSxFQUFFLE9BQU87Z0JBQ3JCLFlBQVksRUFBRSxhQUFhO2dCQUMzQixRQUFRO2dCQUNSLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7YUFDdkI7U0FDRixDQUF1QyxDQUFDO0lBQzNDLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLGlCQUFpQixDQUFDLEdBQUksR0FBYSxDQUFDLE9BQU8sa0VBQWtFLENBQUMsQ0FBQztJQUMzSCxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFVLEVBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hILE1BQU0sR0FBRyxHQUEyQjtRQUNsQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQTZCLElBQUksRUFBRSxDQUFDO1FBQ2pELEdBQUcsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztLQUNyQixDQUFDO0lBRUYsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFxRCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDOUcsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdGLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxtREFBbUQsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUN4SixDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUUsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXO1FBQUUsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakQsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLENBQzVDLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDN0QsSUFBSSxDQUFDLGVBQXlELENBQy9ELENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxDQUFDLFFBQWtCLEVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFekcsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsZUFBZTtRQUNmLEdBQUc7UUFDSCxXQUFXO1FBQ1gsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzdGLGFBQWEsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4RCxXQUFXLEVBQUUsTUFBTSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDaEcsc0JBQXNCLEVBQUUsT0FBTyxJQUFJLENBQUMsc0JBQXNCLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2hKLFNBQVMsRUFBRSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDbkcsU0FBUyxFQUFFLE9BQU87S0FDbkIsQ0FBQztBQUNKLENBQUM7QUFFRCw4RUFBOEU7QUFDOUUsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxJQUEyQyxFQUFFLE1BQWM7SUFDekgsT0FBTztRQUNMLEtBQUssRUFBRSxNQUFNO1FBQ2IsSUFBSSxFQUFFLEdBQUcsU0FBUyxJQUFJLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLG1CQUFtQjtRQUN0RSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRCx3RUFBd0U7UUFDeEUsY0FBYyxFQUFFLFNBQVM7UUFDekIsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQscUZBQXFGO0FBQ3JGLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUEwQjtJQUN6RCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLCtCQUErQixDQUFDLENBQUMsQ0FBQztJQUNuRixJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQUUsTUFBTSxJQUFJLGVBQWUsQ0FBQyxtQ0FBbUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xKLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCx3RUFBd0U7SUFDeEUseUVBQXlFO0lBQ3pFLDhEQUE4RDtJQUM5RCxNQUFNLElBQUksR0FBRyxDQUFDLENBQVMsRUFBUSxFQUFFO1FBQy9CLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFO1lBQUUsT0FBTztRQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckUsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQUUsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUM7SUFDRixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCx1RkFBdUY7QUFDdkYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxTQUFpQixFQUFFLElBQXNEO0lBQ2xHLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdEgsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLE9BQU8sSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWEsQ0FBQyxPQUEwQixFQUFFLElBQUksR0FBUyxTQUFTO0lBQ3BGLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxNQUFNLFFBQVEsR0FBRyxNQUFNLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVE7WUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sSUFBSSxlQUFlLENBQUMsa0JBQWtCLFFBQVEsQ0FBQyxNQUFNLGtFQUFrRSxDQUFDLENBQUM7SUFDakksQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUEwQyxDQUFDO0lBQzVELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxvQkFBb0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sSUFBSSxlQUFlLENBQUMsb0VBQW9FLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO1FBQUUsTUFBTSxJQUFJLGlCQUFpQixDQUFDLG9FQUFvRSxDQUFDLENBQUM7SUFFaEksTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLElBQUksRUFBRTtRQUNoQyxHQUFHLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1FBQ3pDLFFBQVEsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7UUFDeEQsSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztLQUMzQyxDQUFDLENBQUM7SUFFSCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMxQixJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBQ2hDLElBQUksQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxhQUFhLEVBQUUsQ0FBQztnQkFDcEMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0MsWUFBWSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN0QyxNQUFNLFNBQVMsR0FBSSxJQUFJLENBQUMsU0FBb0MsSUFBSSxFQUFFLENBQUM7Z0JBQ25FLE1BQU0sS0FBSyxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDbEksSUFBSSxLQUFLO29CQUFFLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNoQixDQUFDO2lCQUFNLElBQUksR0FBRyxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUUsTUFBTSxNQUFNLEdBQUcsNkJBQTZCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFBRSxNQUFNLElBQUksaUJBQWlCLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM3SCxLQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksZUFBZSxDQUFDLHdGQUF3RixDQUFDLENBQUM7WUFDdEgsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSztZQUFFLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxPQUFPLElBQUksSUFBSTtZQUFFLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0QsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLGlCQUFpQixDQUFDLGlDQUFpQyxJQUFJLENBQUMsSUFBSSxJQUFJLFNBQVMsZ0RBQWdELENBQUMsQ0FBQztRQUN2SSxDQUFDO1FBRUQsU0FBUyxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLEtBQUs7WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDakIsU0FBUztZQUNULGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVztTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNO1lBQUUsWUFBWSxDQUFDLHVEQUF1RCxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7UUFFeEosS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBVSxFQUFFLENBQUM7WUFDdEcsWUFBWSxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3RILElBQUksQ0FBQyxDQUFDLEtBQUs7Z0JBQUUsTUFBTSxJQUFJLGlCQUFpQixDQUFDLEdBQUcsS0FBSyw0QkFBNEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO2dCQUFFLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLEtBQUssdUJBQXVCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFFRCxJQUFJLFdBQVcsR0FBa0IsSUFBSSxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLElBQUksR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hELFlBQVksQ0FBQyx3RkFBd0YsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7YUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7Z0JBQzNELE1BQU0sSUFBSSxpQkFBaUIsQ0FBQywyQkFBMkIsSUFBSSxDQUFDLHNCQUFzQixtQkFBbUIsQ0FBQyxDQUFDO1lBQ3pHLENBQUM7WUFDRCxXQUFXLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDekMsSUFBSSxXQUFXLEtBQUssQ0FBQztnQkFBRSxNQUFNLElBQUksaUJBQWlCLENBQUMsMkJBQTJCLElBQUksQ0FBQyxzQkFBc0IsWUFBWSxDQUFDLENBQUM7WUFDdkgsWUFBWSxDQUFDLDJCQUEyQixJQUFJLENBQUMsc0JBQXNCLFNBQVMsV0FBVyxRQUFRLFdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwSSxDQUFDO2FBQU0sQ0FBQztZQUNOLFlBQVksQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdkgsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxNQUFNLElBQUksaUJBQWlCLENBQUMscUJBQXFCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDO1lBQVMsQ0FBQztRQUNULElBQUksT0FBTyxDQUFDLElBQUk7WUFBRSxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDOztZQUN4RCxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsT0FBZ0I7SUFDekMsT0FBTztTQUNKLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDZixXQUFXLENBQUMsMEZBQTBGLENBQUM7U0FDdkcsTUFBTSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLENBQUM7U0FDL0MsTUFBTSxDQUFDLGVBQWUsRUFBRSw2REFBNkQsQ0FBQztTQUN0RixNQUFNLENBQUMsb0JBQW9CLEVBQUUsbUVBQW1FLENBQUM7U0FDakcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLHlDQUF5QyxFQUFFLE9BQU8sQ0FBQztTQUMvRSxNQUFNLENBQUMsd0JBQXdCLEVBQUUsZ0ZBQWdGLEVBQUUsT0FBTyxDQUFDO1NBQzNILE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxxREFBcUQsRUFBRSxPQUFPLENBQUM7U0FDM0YsTUFBTSxDQUFDLFFBQVEsRUFBRSwyREFBMkQsRUFBRSxLQUFLLENBQUM7U0FDcEYsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUEwQixFQUFFLEVBQUU7UUFDM0MsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxZQUFZLGVBQWUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtnQkFDOUYsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRTthQUNqRCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBTVEVQX0JPT1RTVFJBUF9DTUQsIGV4dHJhY3RNZXRhZGF0YUVudiwgcmVzb2x2ZUZhaWx1cmVCZWhhdmlvciwgcmVzb2x2ZVBsdWdpblRlbXBsYXRlcywgd3JhcENvbW1hbmRzRm9yRmFpbHVyZUJlaGF2aW9yLFxufSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7XG4gIGJ1aWxkUGx1Z2luSW1hZ2UsIGhhc1Rvb2wsIGltYWdlVXNlciwgaXNSb290VXNlciwgbG9jYWxJbWFnZVRhZywgcmVtb3ZlSW1hZ2UsIHNwYXduRXhlYywgdHlwZSBFeGVjLFxufSBmcm9tICcuLi91dGlscy9wbHVnaW4tZG9ja2VyLmpzJztcbmltcG9ydCB7IHBhY2thZ2VQcm9ibGVtcywgcmVhZFBsdWdpblBhY2thZ2UgfSBmcm9tICcuLi91dGlscy9wbHVnaW4tcGFja2FnZS5qcyc7XG5cbi8qKiBNb3VudCBwb2ludCBvZiB0aGUgc2FtcGxlIHdvcmtzcGFjZSBpbnNpZGUgdGhlIGNvbnRhaW5lciAodGhlIHN0ZXAncyBzb3VyY2UgZGlyKS4gKi9cbmV4cG9ydCBjb25zdCBDT05UQUlORVJfV09SS1NQQUNFID0gJy93b3Jrc3BhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RQbHVnaW5PcHRpb25zIHtcbiAgZGlyOiBzdHJpbmc7XG4gIGltYWdlPzogc3RyaW5nO1xuICB3b3Jrc3BhY2U/OiBzdHJpbmc7XG4gIGVudj86IHN0cmluZ1tdO1xuICBtZXRhZGF0YT86IHN0cmluZ1tdO1xuICB2YXI/OiBzdHJpbmdbXTtcbiAga2VlcD86IGJvb2xlYW47XG59XG5cbi8qKiBBIHBsdWdpbiBydW4gdGhhdCBmYWlsZWQ6IHRoZSBzdGVwIHdvdWxkIGJlIHJlZCBpbiBDb2RlQnVpbGQuICovXG5leHBvcnQgY2xhc3MgUGx1Z2luVGVzdEZhaWx1cmUgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdQbHVnaW5UZXN0RmFpbHVyZSc7XG4gIH1cbn1cblxuLyoqIGBLRVk9VkFMVUVgIGZsYWdzIOKGkiBhIHJlY29yZCAodGhlIHZhbHVlIG1heSBpdHNlbGYgY29udGFpbiBgPWApLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlS2V5VmFsdWVzKHBhaXJzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCwgZmxhZzogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IG91dDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBmb3IgKGNvbnN0IHBhaXIgb2YgcGFpcnMgPz8gW10pIHtcbiAgICBjb25zdCBlcSA9IHBhaXIuaW5kZXhPZignPScpO1xuICAgIGlmIChlcSA8PSAwKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGAke2ZsYWd9IGV4cGVjdHMgS0VZPVZBTFVFIChnb3QgXCIke3BhaXJ9XCIpYCwgZmxhZywgcGFpcik7XG4gICAgb3V0W3BhaXIuc2xpY2UoMCwgZXEpXSA9IHBhaXIuc2xpY2UoZXEgKyAxKTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5jb25zdCBjb2xsZWN0ID0gKHZhbHVlOiBzdHJpbmcsIHByZXZpb3VzOiBzdHJpbmdbXSA9IFtdKTogc3RyaW5nW10gPT4gWy4uLnByZXZpb3VzLCB2YWx1ZV07XG5cbi8qKiBXaGF0IGEgcnVuIG5lZWRzLCByZXNvbHZlZCBmcm9tIHRoZSBzcGVjICsgZmxhZ3MgKG5vIHNpZGUgZWZmZWN0cykuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlc3RQbGFuIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGZhaWx1cmVCZWhhdmlvcjogJ2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZSc7XG4gIC8qKiBQbGFpbiBlbnYgcGFzc2VkIGFzIGAtZSBLRVk9VkFMVUVgLiAqL1xuICBlbnY6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBTZWNyZXQgTkFNRVMgcGFzc2VkIGFzIGAtZSBOQU1FYCAoZG9ja2VyIHJlYWRzIHRoZSB2YWx1ZSBmcm9tIHRoaXMgcHJvY2VzcydzIGVudikuICovXG4gIHNlY3JldE5hbWVzOiBzdHJpbmdbXTtcbiAgbWlzc2luZ09wdGlvbmFsU2VjcmV0czogc3RyaW5nW107XG4gIGluc3RhbGxTY3JpcHQ6IHN0cmluZztcbiAgYnVpbGRTY3JpcHQ6IHN0cmluZztcbiAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBzbW9rZVRlc3Q6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdGltZW91dE1zOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgc3BlYyB0aGUgd2F5IHRoZSBwaXBlbGluZSBzdGVwIGRvZXM6IGB7eyDigKYgfX1gIHRlbXBsYXRlcyBhZ2FpbnN0XG4gKiB0aGUgZ2l2ZW4gcGlwZWxpbmUgbWV0YWRhdGEvdmFycywgZW52ID0gc3BlYyBlbnYg4oaQIG5vbi1uYW1lc3BhY2VkIG1ldGFkYXRhIOKGkFxuICogYC0tZW52YCwgdGhlIHN0ZXAncyBXT1JLRElSIGJvb3RzdHJhcCwgYW5kIHRoZSBidWlsZCBjb21tYW5kcyB3cmFwcGVkIGZvciB0aGVcbiAqIGVmZmVjdGl2ZSBmYWlsdXJlQmVoYXZpb3IgKGEgc2VjdXJpdHktY2F0ZWdvcnkgcGx1Z2luIGlzIGFsd2F5cyBgZmFpbGApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGxhblBsdWdpblRlc3QoXG4gIHNwZWM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBmbGFnczogeyBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+OyBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IHZhcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0sXG4gIGhvc3RFbnY6IE5vZGVKUy5Qcm9jZXNzRW52ID0gcHJvY2Vzcy5lbnYsXG4pOiBUZXN0UGxhbiB7XG4gIGNvbnN0IG1ldGFkYXRhID0geyAuLi4oc3BlYy5tZXRhZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiA/PyB7fSksIC4uLihmbGFncy5tZXRhZGF0YSA/PyB7fSkgfTtcbiAgbGV0IHJlc29sdmVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdHJ5IHtcbiAgICByZXNvbHZlZCA9IHJlc29sdmVQbHVnaW5UZW1wbGF0ZXMoc3BlYyBhcyBuZXZlciwge1xuICAgICAgcGlwZWxpbmU6IHtcbiAgICAgICAgcHJvamVjdE5hbWU6ICdwbHVnaW4tdGVzdCcsXG4gICAgICAgIHByb2plY3Q6ICdwbHVnaW4tdGVzdCcsXG4gICAgICAgIG9yZ0lkOiAnbG9jYWwnLFxuICAgICAgICBvcmdhbml6YXRpb246ICdsb2NhbCcsXG4gICAgICAgIHBpcGVsaW5lTmFtZTogJ3BsdWdpbi10ZXN0JyxcbiAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIHZhcnM6IGZsYWdzLnZhcnMgPz8ge30sXG4gICAgICB9LFxuICAgIH0pIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZShgJHsoZXJyIGFzIEVycm9yKS5tZXNzYWdlfSDigJQgc3VwcGx5IHRoZSB2YWx1ZSB3aXRoIC0tbWV0YWRhdGEgS0VZPVZBTFVFIG9yIC0tdmFyIEtFWT1WQUxVRWApO1xuICB9XG5cbiAgY29uc3Qgc3RyaW5ncyA9ICh2OiB1bmtub3duKTogc3RyaW5nW10gPT4gKEFycmF5LmlzQXJyYXkodikgPyB2LmZpbHRlcigoYyk6IGMgaXMgc3RyaW5nID0+IHR5cGVvZiBjID09PSAnc3RyaW5nJykgOiBbXSk7XG4gIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAuLi4ocmVzb2x2ZWQuZW52IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPz8ge30pLFxuICAgIC4uLmV4dHJhY3RNZXRhZGF0YUVudihtZXRhZGF0YSksXG4gICAgLi4uKGZsYWdzLmVudiA/PyB7fSksXG4gIH07XG5cbiAgY29uc3Qgc2VjcmV0cyA9IEFycmF5LmlzQXJyYXkoc3BlYy5zZWNyZXRzKSA/IHNwZWMuc2VjcmV0cyBhcyBBcnJheTx7IG5hbWU6IHN0cmluZzsgcmVxdWlyZWQ6IGJvb2xlYW4gfT4gOiBbXTtcbiAgY29uc3QgbWlzc2luZ1JlcXVpcmVkID0gc2VjcmV0cy5maWx0ZXIocyA9PiBzLnJlcXVpcmVkICYmICFob3N0RW52W3MubmFtZV0pLm1hcChzID0+IHMubmFtZSk7XG4gIGlmIChtaXNzaW5nUmVxdWlyZWQubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGBSZXF1aXJlZCBzZWNyZXQocykgbm90IHNldCBpbiB5b3VyIGVudmlyb25tZW50OiAke21pc3NpbmdSZXF1aXJlZC5qb2luKCcsICcpfSDigJQgZXhwb3J0IHRoZW0gYmVmb3JlIHJ1bm5pbmcgcGx1Z2luIHRlc3RgKTtcbiAgfVxuICBjb25zdCBzZWNyZXROYW1lcyA9IHNlY3JldHMuZmlsdGVyKHMgPT4gaG9zdEVudltzLm5hbWVdKS5tYXAocyA9PiBzLm5hbWUpO1xuICBmb3IgKGNvbnN0IG5hbWUgb2Ygc2VjcmV0TmFtZXMpIGRlbGV0ZSBlbnZbbmFtZV07XG5cbiAgY29uc3QgZmFpbHVyZUJlaGF2aW9yID0gcmVzb2x2ZUZhaWx1cmVCZWhhdmlvcihcbiAgICB0eXBlb2Ygc3BlYy5jYXRlZ29yeSA9PT0gJ3N0cmluZycgPyBzcGVjLmNhdGVnb3J5IDogdW5kZWZpbmVkLFxuICAgIHNwZWMuZmFpbHVyZUJlaGF2aW9yIGFzICdmYWlsJyB8ICd3YXJuJyB8ICdpZ25vcmUnIHwgdW5kZWZpbmVkLFxuICApO1xuICBjb25zdCBzY3JpcHQgPSAoY29tbWFuZHM6IHN0cmluZ1tdKTogc3RyaW5nID0+IFsnc2V0IC1lJywgU1RFUF9CT09UU1RSQVBfQ01ELCAuLi5jb21tYW5kc10uam9pbignXFxuJyk7XG4gIGNvbnN0IHRpbWVvdXQgPSB0eXBlb2Ygc3BlYy50aW1lb3V0ID09PSAnbnVtYmVyJyAmJiBzcGVjLnRpbWVvdXQgPiAwID8gc3BlYy50aW1lb3V0ICogNjBfMDAwIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZTogU3RyaW5nKHNwZWMubmFtZSksXG4gICAgdmVyc2lvbjogU3RyaW5nKHNwZWMudmVyc2lvbiksXG4gICAgZmFpbHVyZUJlaGF2aW9yLFxuICAgIGVudixcbiAgICBzZWNyZXROYW1lcyxcbiAgICBtaXNzaW5nT3B0aW9uYWxTZWNyZXRzOiBzZWNyZXRzLmZpbHRlcihzID0+ICFzLnJlcXVpcmVkICYmICFob3N0RW52W3MubmFtZV0pLm1hcChzID0+IHMubmFtZSksXG4gICAgaW5zdGFsbFNjcmlwdDogc2NyaXB0KHN0cmluZ3MocmVzb2x2ZWQuaW5zdGFsbENvbW1hbmRzKSksXG4gICAgYnVpbGRTY3JpcHQ6IHNjcmlwdCh3cmFwQ29tbWFuZHNGb3JGYWlsdXJlQmVoYXZpb3Ioc3RyaW5ncyhyZXNvbHZlZC5jb21tYW5kcyksIGZhaWx1cmVCZWhhdmlvcikpLFxuICAgIHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6IHR5cGVvZiBzcGVjLnByaW1hcnlPdXRwdXREaXJlY3RvcnkgPT09ICdzdHJpbmcnICYmIHNwZWMucHJpbWFyeU91dHB1dERpcmVjdG9yeSA/IHNwZWMucHJpbWFyeU91dHB1dERpcmVjdG9yeSA6IHVuZGVmaW5lZCxcbiAgICBzbW9rZVRlc3Q6IHR5cGVvZiBzcGVjLnNtb2tlVGVzdCA9PT0gJ3N0cmluZycgJiYgc3BlYy5zbW9rZVRlc3QudHJpbSgpID8gc3BlYy5zbW9rZVRlc3QgOiB1bmRlZmluZWQsXG4gICAgdGltZW91dE1zOiB0aW1lb3V0LFxuICB9O1xufVxuXG4vKiogYGRvY2tlciBydW5gIGFyZ3VtZW50cyBmb3Igb25lIHBoYXNlIChzZWNyZXQgVkFMVUVTIG5ldmVyIGFwcGVhciBoZXJlKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb2NrZXJSdW5BcmdzKGltYWdlOiBzdHJpbmcsIHdvcmtzcGFjZTogc3RyaW5nLCBwbGFuOiBQaWNrPFRlc3RQbGFuLCAnZW52JyB8ICdzZWNyZXROYW1lcyc+LCBzY3JpcHQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFtcbiAgICAncnVuJywgJy0tcm0nLFxuICAgICctdicsIGAke3dvcmtzcGFjZX06JHtDT05UQUlORVJfV09SS1NQQUNFfWAsICctdycsIENPTlRBSU5FUl9XT1JLU1BBQ0UsXG4gICAgLi4uT2JqZWN0LmVudHJpZXMocGxhbi5lbnYpLmZsYXRNYXAoKFtrLCB2XSkgPT4gWyctZScsIGAke2t9PSR7dn1gXSksXG4gICAgLi4ucGxhbi5zZWNyZXROYW1lcy5mbGF0TWFwKG5hbWUgPT4gWyctZScsIG5hbWVdKSxcbiAgICAvLyBDb2RlQnVpbGQgcnVucyBhIHN0ZXAncyBjb21tYW5kcyB1bmRlciAvYmluL3NoLCBzbyB0aGUgdGVzdCBkb2VzIHRvby5cbiAgICAnLS1lbnRyeXBvaW50JywgJy9iaW4vc2gnLFxuICAgIGltYWdlLCAnLWMnLCBzY3JpcHQsXG4gIF07XG59XG5cbi8qKiBDb3B5IHRoZSBzYW1wbGUgd29ya3NwYWNlIHRvIGEgc2NyYXRjaCBkaXIgdGhlIGNvbnRhaW5lcidzIHVpZCAxMDAwIGNhbiB3cml0ZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlV29ya3NwYWNlKHNvdXJjZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3Qgd3MgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICdwaXBlbGluZS1tYW5hZ2VyLXBsdWdpbi10ZXN0LScpKTtcbiAgaWYgKHNvdXJjZSkge1xuICAgIGNvbnN0IHNyYyA9IHBhdGgucmVzb2x2ZShzb3VyY2UpO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhzcmMpIHx8ICFmcy5zdGF0U3luYyhzcmMpLmlzRGlyZWN0b3J5KCkpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYC0td29ya3NwYWNlIGlzIG5vdCBhIGRpcmVjdG9yeTogJHtzcmN9YCwgJ3dvcmtzcGFjZScsIHNyYyk7XG4gICAgZnMuY3BTeW5jKHNyYywgd3MsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB9XG4gIC8vIFRoZSBjb250YWluZXIgcnVucyBhcyB0aGUgaW1hZ2UncyB1c2VyICh1aWQgMTAwMCksIG5vdCB0aGUgaG9zdCB1c2VyLlxuICAvLyBFeGVjdXRhYmxlIGJpdHMgYXJlIGtlcHQgKGEgYGdyYWRsZXdgKSwgc3ltbGlua3MgYXJlIGxlZnQgYWxvbmUgKG5ldmVyXG4gIC8vIGNobW9kIHRocm91Z2ggYSBsaW5rIHRvIHNvbWV0aGluZyBvdXRzaWRlIHRoZSBzY3JhdGNoIGRpcikuXG4gIGNvbnN0IG9wZW4gPSAocDogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgc3QgPSBmcy5sc3RhdFN5bmMocCk7XG4gICAgaWYgKHN0LmlzU3ltYm9saWNMaW5rKCkpIHJldHVybjtcbiAgICBjb25zdCBvd25lckV4ZWN1dGFibGUgPSBNYXRoLmZsb29yKChzdC5tb2RlICUgMG8xMDAwKSAvIDBvMTAwKSAlIDIgPT09IDE7XG4gICAgZnMuY2htb2RTeW5jKHAsIHN0LmlzRGlyZWN0b3J5KCkgfHwgb3duZXJFeGVjdXRhYmxlID8gMG83NzcgOiAwbzY2Nik7XG4gICAgaWYgKHN0LmlzRGlyZWN0b3J5KCkpIGZvciAoY29uc3QgZSBvZiBmcy5yZWFkZGlyU3luYyhwKSkgb3BlbihwYXRoLmpvaW4ocCwgZSkpO1xuICB9O1xuICBvcGVuKHdzKTtcbiAgcmV0dXJuIHdzO1xufVxuXG4vKiogV2hlcmUgdGhlIHN0ZXAncyBwcmltYXJ5IG91dHB1dCBsYW5kcyBvbiB0aGUgaG9zdCwgaG9ub3VyaW5nIGEgcmVsYXRpdmUgV09SS0RJUi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvdXRwdXRQYXRoKHdvcmtzcGFjZTogc3RyaW5nLCBwbGFuOiBQaWNrPFRlc3RQbGFuLCAnZW52JyB8ICdwcmltYXJ5T3V0cHV0RGlyZWN0b3J5Jz4pOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFwbGFuLnByaW1hcnlPdXRwdXREaXJlY3RvcnkpIHJldHVybiBudWxsO1xuICBjb25zdCB3b3JrZGlyID0gcGxhbi5lbnYuV09SS0RJUiA/PyAnLi8nO1xuICBjb25zdCBiYXNlID0gd29ya2Rpci5zdGFydHNXaXRoKCcvJylcbiAgICA/ICh3b3JrZGlyLnN0YXJ0c1dpdGgoQ09OVEFJTkVSX1dPUktTUEFDRSkgPyBwYXRoLmpvaW4od29ya3NwYWNlLCBwYXRoLnJlbGF0aXZlKENPTlRBSU5FUl9XT1JLU1BBQ0UsIHdvcmtkaXIpKSA6IG51bGwpXG4gICAgOiBwYXRoLmpvaW4od29ya3NwYWNlLCB3b3JrZGlyKTtcbiAgcmV0dXJuIGJhc2UgPT09IG51bGwgPyBudWxsIDogcGF0aC5qb2luKGJhc2UsIHBsYW4ucHJpbWFyeU91dHB1dERpcmVjdG9yeSk7XG59XG5cbi8qKlxuICogQnVpbGQgKG9yIHRha2UpIHRoZSBpbWFnZSwgdGhlbiBydW4gdGhlIHBsdWdpbiBhcyBpdHMgQ29kZUJ1aWxkIHN0ZXAgd291bGQ6XG4gKiBpbnN0YWxsIHBoYXNlLCBidWlsZCBwaGFzZSAoZmFpbHVyZUJlaGF2aW9yIGFwcGxpZWQpLCB0aGUgcHJpbWFyeSBvdXRwdXRcbiAqIGNoZWNrLCB0aGVuIHRoZSBzcGVjJ3Mgc21va2VUZXN0LiBBbnkgZmFpbHVyZSB0aHJvd3Mg4oCUIGEgc3RlcCB0aGF0IGNhbid0IHJ1blxuICogb3IgdGhhdCBmYWlscyBpcyByZWQsIG5ldmVyIGdyZWVuLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuUGx1Z2luVGVzdChvcHRpb25zOiBUZXN0UGx1Z2luT3B0aW9ucywgZXhlYzogRXhlYyA9IHNwYXduRXhlYyk6IFByb21pc2U8eyBvdXRwdXRGaWxlczogbnVtYmVyIHwgbnVsbCB9PiB7XG4gIGNvbnN0IHBrZyA9IHJlYWRQbHVnaW5QYWNrYWdlKG9wdGlvbnMuZGlyKTtcbiAgY29uc3QgcHJvYmxlbXMgPSBhd2FpdCBwYWNrYWdlUHJvYmxlbXMocGtnKTtcbiAgaWYgKHByb2JsZW1zLmxlbmd0aCkge1xuICAgIGZvciAoY29uc3QgcCBvZiBwcm9ibGVtcykgcHJpbnRFcnJvcihgICDigKIgJHtwfWApO1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYFRoZSBwbHVnaW4gaGFzICR7cHJvYmxlbXMubGVuZ3RofSB2YWxpZGF0aW9uIHByb2JsZW0ocyk7IHJ1biBcInBsdWdpbiB2YWxpZGF0ZVwiIGFuZCBmaXggdGhlbSBmaXJzdGApO1xuICB9XG4gIGNvbnN0IHNwZWMgPSBwa2cuc3BlYyBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAoc3BlYy5wbHVnaW5UeXBlID09PSAnTWFudWFsQXBwcm92YWxTdGVwJykge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0EgTWFudWFsQXBwcm92YWxTdGVwIHJ1bnMgbm8gY29tbWFuZHMsIHNvIHRoZXJlIGlzIG5vdGhpbmcgdG8gdGVzdCcpO1xuICB9XG4gIGlmICghaGFzVG9vbChleGVjLCAnZG9ja2VyJykpIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZSgnZG9ja2VyIGlzIG5vdCBhdmFpbGFibGUg4oCUIHBsdWdpbiB0ZXN0IHJ1bnMgdGhlIHBsdWdpbiBpbiBpdHMgaW1hZ2UnKTtcblxuICBjb25zdCBwbGFuID0gcGxhblBsdWdpblRlc3Qoc3BlYywge1xuICAgIGVudjogcGFyc2VLZXlWYWx1ZXMob3B0aW9ucy5lbnYsICctLWVudicpLFxuICAgIG1ldGFkYXRhOiBwYXJzZUtleVZhbHVlcyhvcHRpb25zLm1ldGFkYXRhLCAnLS1tZXRhZGF0YScpLFxuICAgIHZhcnM6IHBhcnNlS2V5VmFsdWVzKG9wdGlvbnMudmFyLCAnLS12YXInKSxcbiAgfSk7XG5cbiAgY29uc3Qgd29ya3NwYWNlID0gcHJlcGFyZVdvcmtzcGFjZShvcHRpb25zLndvcmtzcGFjZSk7XG4gIGxldCBpbWFnZSA9IG9wdGlvbnMuaW1hZ2U7XG4gIGxldCBidWlsdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHRyeSB7XG4gICAgaWYgKCFpbWFnZSkge1xuICAgICAgaWYgKHBrZy5idWlsZFR5cGUgPT09ICdidWlsZF9pbWFnZScpIHtcbiAgICAgICAgYnVpbHQgPSBsb2NhbEltYWdlVGFnKHBsYW4ubmFtZSwgcGxhbi52ZXJzaW9uKTtcbiAgICAgICAgcHJpbnRTZWN0aW9uKCdCdWlsZGluZyBpbWFnZScsIGJ1aWx0KTtcbiAgICAgICAgY29uc3QgYnVpbGRBcmdzID0gKHNwZWMuYnVpbGRBcmdzIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID8/IHt9O1xuICAgICAgICBjb25zdCBlcnJvciA9IGJ1aWxkUGx1Z2luSW1hZ2UoZXhlYywgeyBkaXI6IHBrZy5kaXIsIGRvY2tlcmZpbGU6IHBhdGguam9pbihwa2cuZGlyLCBwa2cuZG9ja2VyZmlsZU5hbWUpLCB0YWc6IGJ1aWx0LCBidWlsZEFyZ3MgfSk7XG4gICAgICAgIGlmIChlcnJvcikgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGVycm9yKTtcbiAgICAgICAgaW1hZ2UgPSBidWlsdDtcbiAgICAgIH0gZWxzZSBpZiAocGtnLmJ1aWxkVHlwZSA9PT0gJ3ByZWJ1aWx0Jykge1xuICAgICAgICBjb25zdCByID0gZXhlYygnZG9ja2VyJywgWydsb2FkJywgJy1pJywgcGF0aC5qb2luKHBrZy5kaXIsICdpbWFnZS50YXInKV0pO1xuICAgICAgICBjb25zdCBsb2FkZWQgPSAvTG9hZGVkIGltYWdlKD86IElEKT86IChcXFMrKS8uZXhlYyhyLnN0ZG91dCk/LlsxXTtcbiAgICAgICAgaWYgKHIuc3RhdHVzICE9PSAwIHx8ICFsb2FkZWQpIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZShgZG9ja2VyIGxvYWQgaW1hZ2UudGFyIGZhaWxlZDogJHsoci5zdGRlcnIgfHwgci5zdGRvdXQpLnRyaW0oKX1gKTtcbiAgICAgICAgaW1hZ2UgPSBsb2FkZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdBIG1ldGFkYXRhX29ubHkgcGx1Z2luIGhhcyBubyBpbWFnZSBvZiBpdHMgb3duOyBwYXNzIHRoZSBpbWFnZSBpdCBydW5zIGluIHdpdGggLS1pbWFnZScpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWltYWdlKSB0aHJvdyBuZXcgUGx1Z2luVGVzdEZhaWx1cmUoJ05vIGltYWdlIHRvIHJ1bicpO1xuICAgIGNvbnN0IHVzZXIgPSBpbWFnZVVzZXIoZXhlYywgaW1hZ2UpO1xuICAgIGlmICgnZXJyb3InIGluIHVzZXIpIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZSh1c2VyLmVycm9yKTtcbiAgICBpZiAoaXNSb290VXNlcih1c2VyLnVzZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgUGx1Z2luVGVzdEZhaWx1cmUoYFRoZSBpbWFnZSBydW5zIGFzIHJvb3QgKFVTRVIgJyR7dXNlci51c2VyIHx8ICcodW5zZXQpJ30nKTsgZW5kIHRoZSBEb2NrZXJmaWxlIHdpdGggXFxgVVNFUiAxMDAwOjEwMDBcXGBgKTtcbiAgICB9XG5cbiAgICBwcmludEluZm8oJ1J1bm5pbmcgcGx1Z2luJywge1xuICAgICAgaW1hZ2UsXG4gICAgICBydW5zQXM6IHVzZXIudXNlcixcbiAgICAgIHdvcmtzcGFjZSxcbiAgICAgIGZhaWx1cmVCZWhhdmlvcjogcGxhbi5mYWlsdXJlQmVoYXZpb3IsXG4gICAgICBlbnY6IE9iamVjdC5rZXlzKHBsYW4uZW52KSxcbiAgICAgIHNlY3JldHM6IHBsYW4uc2VjcmV0TmFtZXMsXG4gICAgfSk7XG4gICAgaWYgKHBsYW4ubWlzc2luZ09wdGlvbmFsU2VjcmV0cy5sZW5ndGgpIHByaW50V2FybmluZygnT3B0aW9uYWwgc2VjcmV0cyBub3Qgc2V0ICh0aGUgc3RlcCBydW5zIHdpdGhvdXQgdGhlbSknLCB7IHNlY3JldHM6IHBsYW4ubWlzc2luZ09wdGlvbmFsU2VjcmV0cyB9KTtcblxuICAgIGZvciAoY29uc3QgW3BoYXNlLCBzY3JpcHRdIG9mIFtbJ2luc3RhbGwnLCBwbGFuLmluc3RhbGxTY3JpcHRdLCBbJ2J1aWxkJywgcGxhbi5idWlsZFNjcmlwdF1dIGFzIGNvbnN0KSB7XG4gICAgICBwcmludFNlY3Rpb24oYFBoYXNlOiAke3BoYXNlfWApO1xuICAgICAgY29uc3QgciA9IGV4ZWMoJ2RvY2tlcicsIGRvY2tlclJ1bkFyZ3MoaW1hZ2UsIHdvcmtzcGFjZSwgcGxhbiwgc2NyaXB0KSwgeyBpbmhlcml0OiB0cnVlLCB0aW1lb3V0TXM6IHBsYW4udGltZW91dE1zIH0pO1xuICAgICAgaWYgKHIuZXJyb3IpIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZShgJHtwaGFzZX0gcGhhc2UgZGlkIG5vdCBjb21wbGV0ZTogJHtyLmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICBpZiAoci5zdGF0dXMgIT09IDApIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZShgJHtwaGFzZX0gcGhhc2UgZmFpbGVkIChleGl0ICR7ci5zdGF0dXN9KWApO1xuICAgIH1cblxuICAgIGxldCBvdXRwdXRGaWxlczogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3Qgb3V0ID0gb3V0cHV0UGF0aCh3b3Jrc3BhY2UsIHBsYW4pO1xuICAgIGlmIChwbGFuLnByaW1hcnlPdXRwdXREaXJlY3RvcnkgJiYgb3V0ID09PSBudWxsKSB7XG4gICAgICBwcmludFdhcm5pbmcoJ1dPUktESVIgaXMgb3V0c2lkZSB0aGUgd29ya3NwYWNlOyBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5IGNhbm5vdCBiZSBjaGVja2VkIG9uIHRoZSBob3N0Jyk7XG4gICAgfSBlbHNlIGlmIChvdXQpIHtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhvdXQpIHx8ICFmcy5zdGF0U3luYyhvdXQpLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5ICcke3BsYW4ucHJpbWFyeU91dHB1dERpcmVjdG9yeX0nIHdhcyBub3QgY3JlYXRlZGApO1xuICAgICAgfVxuICAgICAgb3V0cHV0RmlsZXMgPSBmcy5yZWFkZGlyU3luYyhvdXQpLmxlbmd0aDtcbiAgICAgIGlmIChvdXRwdXRGaWxlcyA9PT0gMCkgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5ICcke3BsYW4ucHJpbWFyeU91dHB1dERpcmVjdG9yeX0nIGlzIGVtcHR5YCk7XG4gICAgICBwcmludFN1Y2Nlc3MoYHByaW1hcnlPdXRwdXREaXJlY3RvcnkgJyR7cGxhbi5wcmltYXJ5T3V0cHV0RGlyZWN0b3J5fScgaGFzICR7b3V0cHV0RmlsZXN9IGVudHIke291dHB1dEZpbGVzID09PSAxID8gJ3knIDogJ2llcyd9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByaW50V2FybmluZygnVGhlIHNwZWMgZGVjbGFyZXMgbm8gcHJpbWFyeU91dHB1dERpcmVjdG9yeTsgbm8gb3V0cHV0IHRvIGNoZWNrJyk7XG4gICAgfVxuXG4gICAgaWYgKHBsYW4uc21va2VUZXN0KSB7XG4gICAgICBwcmludFNlY3Rpb24oJ1Ntb2tlIHRlc3QnLCBwbGFuLnNtb2tlVGVzdCk7XG4gICAgICBjb25zdCByID0gZXhlYygnZG9ja2VyJywgWydydW4nLCAnLS1ybScsICctLWVudHJ5cG9pbnQnLCAnL2Jpbi9iYXNoJywgaW1hZ2UsICctYycsIHBsYW4uc21va2VUZXN0XSwgeyBpbmhlcml0OiB0cnVlIH0pO1xuICAgICAgaWYgKHIuZXJyb3IgfHwgci5zdGF0dXMgIT09IDApIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZShgc21va2VUZXN0IGZhaWxlZDogJHtwbGFuLnNtb2tlVGVzdH1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJpbnRXYXJuaW5nKCdUaGUgc3BlYyBkZWNsYXJlcyBubyBzbW9rZVRlc3QnKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgb3V0cHV0RmlsZXMgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAob3B0aW9ucy5rZWVwKSBwcmludEluZm8oJ1dvcmtzcGFjZSBrZXB0JywgeyB3b3Jrc3BhY2UgfSk7XG4gICAgZWxzZSBmcy5ybVN5bmMod29ya3NwYWNlLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgaWYgKGJ1aWx0ICYmICFvcHRpb25zLmtlZXApIHJlbW92ZUltYWdlKGV4ZWMsIGJ1aWx0KTtcbiAgfVxufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGBwbHVnaW4gdGVzdGAg4oCUIHJ1biBhIHBsdWdpbidzIGluc3RhbGwgKyBidWlsZCBjb21tYW5kcyBsb2NhbGx5IGluXG4gKiBpdHMgaW1hZ2UgYWdhaW5zdCBhIHNhbXBsZSB3b3Jrc3BhY2UsIGNoZWNrIGl0cyBwcmltYXJ5IG91dHB1dCwgYW5kIHJ1biBpdHNcbiAqIHNtb2tlVGVzdC4gRXhpdHMgbm9uLXplcm8gb24gYW55IGZhaWx1cmUuXG4gKlxuICogVXNhZ2U6XG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHRlc3QgLS1kaXIgLi9teS1saW50ZXIgLS13b3Jrc3BhY2UgLi9zYW1wbGUtYXBwXG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHRlc3QgLS1kaXIgLi9teS1saW50ZXIgLS1pbWFnZSBteS1saW50ZXI6ZGV2IC0tbWV0YWRhdGEgU1RBR0U9ZGV2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0UGx1Z2luKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCd0ZXN0JylcbiAgICAuZGVzY3JpcHRpb24oJ1J1biBhIHBsdWdpblxcJ3MgaW5zdGFsbCArIGJ1aWxkIGNvbW1hbmRzIGxvY2FsbHkgaW4gaXRzIGltYWdlIGFnYWluc3QgYSBzYW1wbGUgd29ya3NwYWNlJylcbiAgICAub3B0aW9uKCctLWRpciA8cGF0aD4nLCAnUGx1Z2luIGRpcmVjdG9yeScsICcuJylcbiAgICAub3B0aW9uKCctLWltYWdlIDxyZWY+JywgJ1VzZSB0aGlzIGltYWdlIGluc3RlYWQgb2YgYnVpbGRpbmcgdGhlIHBsdWdpblxcJ3MgRG9ja2VyZmlsZScpXG4gICAgLm9wdGlvbignLS13b3Jrc3BhY2UgPHBhdGg+JywgJ1NhbXBsZSB3b3Jrc3BhY2UgY29waWVkIGluIGFzIHRoZSBzdGVwXFwncyBzb3VyY2UgKGRlZmF1bHQ6IGVtcHR5KScpXG4gICAgLm9wdGlvbignLS1lbnYgPEtFWT1WQUxVRT4nLCAnRXh0cmEgZW52aXJvbm1lbnQgdmFyaWFibGUgKHJlcGVhdGFibGUpJywgY29sbGVjdClcbiAgICAub3B0aW9uKCctLW1ldGFkYXRhIDxLRVk9VkFMVUU+JywgJ1BpcGVsaW5lIG1ldGFkYXRhIHZhbHVlIChyZXBlYXRhYmxlOyBhbHNvIGV4cG9ydGVkIGFzIGVudiwgYXMgaW4gdGhlIHBpcGVsaW5lKScsIGNvbGxlY3QpXG4gICAgLm9wdGlvbignLS12YXIgPEtFWT1WQUxVRT4nLCAnUGlwZWxpbmUgdmFyIGZvciB7eyBwaXBlbGluZS52YXJzLiogfX0gKHJlcGVhdGFibGUpJywgY29sbGVjdClcbiAgICAub3B0aW9uKCctLWtlZXAnLCAnS2VlcCB0aGUgc2NyYXRjaCB3b3Jrc3BhY2UgYW5kIGJ1aWx0IGltYWdlIGZvciBpbnNwZWN0aW9uJywgZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogVGVzdFBsdWdpbk9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdUZXN0IFBsdWdpbicpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnVuUGx1Z2luVGVzdChvcHRpb25zKTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdQbHVnaW4gdGVzdCBwYXNzZWQnLCB7IGV4ZWN1dGlvbklkLCBvdXRwdXRFbnRyaWVzOiByZXN1bHQub3V0cHV0RmlsZXMgfSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyLCBlcnIgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IgPyBFUlJPUl9DT0RFUy5WQUxJREFUSU9OIDogRVJST1JfQ09ERVMuR0VORVJBTCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3BsdWdpbiB0ZXN0JywgZXhlY3V0aW9uSWQgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC1wbHVnaW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy90ZXN0LXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFDTCxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSw4QkFBOEIsR0FDdkgsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0csT0FBTyxFQUNMLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxHQUN4RixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRix3RkFBd0Y7QUFDeEYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsWUFBWSxDQUFDO0FBWWhELG9FQUFvRTtBQUNwRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsS0FBSztJQUMxQyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztJ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S0FBSyxFQUFFLE9BQTBCLEVBQUUsRUFBRTtRQUMzQyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFlBQVksZUFBZSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO2dCQUM5RixLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFO2FBQ2pELENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIFNURVBfQk9PVFNUUkFQX0NNRCwgZXh0cmFjdE1ldGFkYXRhRW52LCByZXNvbHZlRmFpbHVyZUJlaGF2aW9yLCByZXNvbHZlUGx1Z2luVGVtcGxhdGVzLCB3cmFwQ29tbWFuZHNGb3JGYWlsdXJlQmVoYXZpb3IsXG59IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBwcmludENvbW1hbmRIZWFkZXIgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHtcbiAgYnVpbGRQbHVnaW5JbWFnZSwgaGFzVG9vbCwgaW1hZ2VVc2VyLCBpc1Jvb3RVc2VyLCBsb2NhbEltYWdlVGFnLCByZW1vdmVJbWFnZSwgc3Bhd25FeGVjLCB0eXBlIEV4ZWMsXG59IGZyb20gJy4uL3V0aWxzL3BsdWdpbi1kb2NrZXIuanMnO1xuaW1wb3J0IHsgcGFja2FnZVByb2JsZW1zLCByZWFkUGx1Z2luUGFja2FnZSB9IGZyb20gJy4uL3V0aWxzL3BsdWdpbi1wYWNrYWdlLmpzJztcblxuLyoqIE1vdW50IHBvaW50IG9mIHRoZSBzYW1wbGUgd29ya3NwYWNlIGluc2lkZSB0aGUgY29udGFpbmVyICh0aGUgc3RlcCdzIHNvdXJjZSBkaXIpLiAqL1xuZXhwb3J0IGNvbnN0IENPTlRBSU5FUl9XT1JLU1BBQ0UgPSAnL3dvcmtzcGFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdFBsdWdpbk9wdGlvbnMge1xuICBkaXI6IHN0cmluZztcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIHdvcmtzcGFjZT86IHN0cmluZztcbiAgZW52Pzogc3RyaW5nW107XG4gIG1ldGFkYXRhPzogc3RyaW5nW107XG4gIHZhcj86IHN0cmluZ1tdO1xuICBrZWVwPzogYm9vbGVhbjtcbn1cblxuLyoqIEEgcGx1Z2luIHJ1biB0aGF0IGZhaWxlZDogdGhlIHN0ZXAgd291bGQgYmUgcmVkIGluIENvZGVCdWlsZC4gKi9cbmV4cG9ydCBjbGFzcyBQbHVnaW5UZXN0RmFpbHVyZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gJ1BsdWdpblRlc3RGYWlsdXJlJztcbiAgfVxufVxuXG4vKiogYEtFWT1WQUxVRWAgZmxhZ3Mg4oaSIGEgcmVjb3JkICh0aGUgdmFsdWUgbWF5IGl0c2VsZiBjb250YWluIGA9YCkuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VLZXlWYWx1ZXMocGFpcnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLCBmbGFnOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3Qgb3V0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGZvciAoY29uc3QgcGFpciBvZiBwYWlycyA/PyBbXSkge1xuICAgIGNvbnN0IGVxID0gcGFpci5pbmRleE9mKCc9Jyk7XG4gICAgaWYgKGVxIDw9IDApIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYCR7ZmxhZ30gZXhwZWN0cyBLRVk9VkFMVUUgKGdvdCBcIiR7cGFpcn1cIilgLCBmbGFnLCBwYWlyKTtcbiAgICBvdXRbcGFpci5zbGljZSgwLCBlcSldID0gcGFpci5zbGljZShlcSArIDEpO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmNvbnN0IGNvbGxlY3QgPSAodmFsdWU6IHN0cmluZywgcHJldmlvdXM6IHN0cmluZ1tdID0gW10pOiBzdHJpbmdbXSA9PiBbLi4ucHJldmlvdXMsIHZhbHVlXTtcblxuLyoqIFdoYXQgYSBydW4gbmVlZHMsIHJlc29sdmVkIGZyb20gdGhlIHNwZWMgKyBmbGFncyAobm8gc2lkZSBlZmZlY3RzKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVzdFBsYW4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgZmFpbHVyZUJlaGF2aW9yOiAnZmFpbCcgfCAnd2FybicgfCAnaWdub3JlJztcbiAgLyoqIFBsYWluIGVudiBwYXNzZWQgYXMgYC1lIEtFWT1WQUxVRWAuICovXG4gIGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFNlY3JldCBOQU1FUyBwYXNzZWQgYXMgYC1lIE5BTUVgIChkb2NrZXIgcmVhZHMgdGhlIHZhbHVlIGZyb20gdGhpcyBwcm9jZXNzJ3MgZW52KS4gKi9cbiAgc2VjcmV0TmFtZXM6IHN0cmluZ1tdO1xuICBtaXNzaW5nT3B0aW9uYWxTZWNyZXRzOiBzdHJpbmdbXTtcbiAgaW5zdGFsbFNjcmlwdDogc3RyaW5nO1xuICBidWlsZFNjcmlwdDogc3RyaW5nO1xuICBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHNtb2tlVGVzdDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB0aW1lb3V0TXM6IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBzcGVjIHRoZSB3YXkgdGhlIHBpcGVsaW5lIHN0ZXAgZG9lczogYHt7IOKApiB9fWAgdGVtcGxhdGVzIGFnYWluc3RcbiAqIHRoZSBnaXZlbiBwaXBlbGluZSBtZXRhZGF0YS92YXJzLCBlbnYgPSBzcGVjIGVudiDihpAgbm9uLW5hbWVzcGFjZWQgbWV0YWRhdGEg4oaQXG4gKiBgLS1lbnZgLCB0aGUgc3RlcCdzIFdPUktESVIgYm9vdHN0cmFwLCBhbmQgdGhlIGJ1aWxkIGNvbW1hbmRzIHdyYXBwZWQgZm9yIHRoZVxuICogZWZmZWN0aXZlIGZhaWx1cmVCZWhhdmlvciAoYSBzZWN1cml0eS1jYXRlZ29yeSBwbHVnaW4gaXMgYWx3YXlzIGBmYWlsYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwbGFuUGx1Z2luVGVzdChcbiAgc3BlYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIGZsYWdzOiB7IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47IG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgdmFycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfSxcbiAgaG9zdEVudjogTm9kZUpTLlByb2Nlc3NFbnYgPSBwcm9jZXNzLmVudixcbik6IFRlc3RQbGFuIHtcbiAgY29uc3QgbWV0YWRhdGEgPSB7IC4uLihzcGVjLm1ldGFkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+ID8/IHt9KSwgLi4uKGZsYWdzLm1ldGFkYXRhID8/IHt9KSB9O1xuICBsZXQgcmVzb2x2ZWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0cnkge1xuICAgIHJlc29sdmVkID0gcmVzb2x2ZVBsdWdpblRlbXBsYXRlcyhzcGVjIGFzIG5ldmVyLCB7XG4gICAgICBwaXBlbGluZToge1xuICAgICAgICBwcm9qZWN0TmFtZTogJ3BsdWdpbi10ZXN0JyxcbiAgICAgICAgcHJvamVjdDogJ3BsdWdpbi10ZXN0JyxcbiAgICAgICAgb3JnSWQ6ICdsb2NhbCcsXG4gICAgICAgIG9yZ2FuaXphdGlvbjogJ2xvY2FsJyxcbiAgICAgICAgcGlwZWxpbmVOYW1lOiAncGx1Z2luLXRlc3QnLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgdmFyczogZmxhZ3MudmFycyA/PyB7fSxcbiAgICAgIH0sXG4gICAgfSkgYXMgdW5rbm93biBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9IOKAlCBzdXBwbHkgdGhlIHZhbHVlIHdpdGggLS1tZXRhZGF0YSBLRVk9VkFMVUUgb3IgLS12YXIgS0VZPVZBTFVFYCk7XG4gIH1cblxuICBjb25zdCBzdHJpbmdzID0gKHY6IHVua25vd24pOiBzdHJpbmdbXSA9PiAoQXJyYXkuaXNBcnJheSh2KSA/IHYuZmlsdGVyKChjKTogYyBpcyBzdHJpbmcgPT4gdHlwZW9mIGMgPT09ICdzdHJpbmcnKSA6IFtdKTtcbiAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIC4uLihyZXNvbHZlZC5lbnYgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPiA/PyB7fSksXG4gICAgLi4uZXh0cmFjdE1ldGFkYXRhRW52KG1ldGFkYXRhKSxcbiAgICAuLi4oZmxhZ3MuZW52ID8/IHt9KSxcbiAgfTtcblxuICBjb25zdCBzZWNyZXRzID0gQXJyYXkuaXNBcnJheShzcGVjLnNlY3JldHMpID8gc3BlYy5zZWNyZXRzIGFzIEFycmF5PHsgbmFtZTogc3RyaW5nOyByZXF1aXJlZDogYm9vbGVhbiB9PiA6IFtdO1xuICBjb25zdCBtaXNzaW5nUmVxdWlyZWQgPSBzZWNyZXRzLmZpbHRlcihzID0+IHMucmVxdWlyZWQgJiYgIWhvc3RFbnZbcy5uYW1lXSkubWFwKHMgPT4gcy5uYW1lKTtcbiAgaWYgKG1pc3NpbmdSZXF1aXJlZC5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgUGx1Z2luVGVzdEZhaWx1cmUoYFJlcXVpcmVkIHNlY3JldChzKSBub3Qgc2V0IGluIHlvdXIgZW52aXJvbm1lbnQ6ICR7bWlzc2luZ1JlcXVpcmVkLmpvaW4oJywgJyl9IOKAlCBleHBvcnQgdGhlbSBiZWZvcmUgcnVubmluZyBwbHVnaW4gdGVzdGApO1xuICB9XG4gIGNvbnN0IHNlY3JldE5hbWVzID0gc2VjcmV0cy5maWx0ZXIocyA9PiBob3N0RW52W3MubmFtZV0pLm1hcChzID0+IHMubmFtZSk7XG4gIGZvciAoY29uc3QgbmFtZSBvZiBzZWNyZXROYW1lcykgZGVsZXRlIGVudltuYW1lXTtcblxuICBjb25zdCBmYWlsdXJlQmVoYXZpb3IgPSByZXNvbHZlRmFpbHVyZUJlaGF2aW9yKFxuICAgIHR5cGVvZiBzcGVjLmNhdGVnb3J5ID09PSAnc3RyaW5nJyA/IHNwZWMuY2F0ZWdvcnkgOiB1bmRlZmluZWQsXG4gICAgc3BlYy5mYWlsdXJlQmVoYXZpb3IgYXMgJ2ZhaWwnIHwgJ3dhcm4nIHwgJ2lnbm9yZScgfCB1bmRlZmluZWQsXG4gICk7XG4gIGNvbnN0IHNjcmlwdCA9IChjb21tYW5kczogc3RyaW5nW10pOiBzdHJpbmcgPT4gWydzZXQgLWUnLCBTVEVQX0JPT1RTVFJBUF9DTUQsIC4uLmNvbW1hbmRzXS5qb2luKCdcXG4nKTtcbiAgY29uc3QgdGltZW91dCA9IHR5cGVvZiBzcGVjLnRpbWVvdXQgPT09ICdudW1iZXInICYmIHNwZWMudGltZW91dCA+IDAgPyBzcGVjLnRpbWVvdXQgKiA2MF8wMDAgOiB1bmRlZmluZWQ7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBTdHJpbmcoc3BlYy5uYW1lKSxcbiAgICB2ZXJzaW9uOiBTdHJpbmcoc3BlYy52ZXJzaW9uKSxcbiAgICBmYWlsdXJlQmVoYXZpb3IsXG4gICAgZW52LFxuICAgIHNlY3JldE5hbWVzLFxuICAgIG1pc3NpbmdPcHRpb25hbFNlY3JldHM6IHNlY3JldHMuZmlsdGVyKHMgPT4gIXMucmVxdWlyZWQgJiYgIWhvc3RFbnZbcy5uYW1lXSkubWFwKHMgPT4gcy5uYW1lKSxcbiAgICBpbnN0YWxsU2NyaXB0OiBzY3JpcHQoc3RyaW5ncyhyZXNvbHZlZC5pbnN0YWxsQ29tbWFuZHMpKSxcbiAgICBidWlsZFNjcmlwdDogc2NyaXB0KHdyYXBDb21tYW5kc0ZvckZhaWx1cmVCZWhhdmlvcihzdHJpbmdzKHJlc29sdmVkLmNvbW1hbmRzKSwgZmFpbHVyZUJlaGF2aW9yKSksXG4gICAgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogdHlwZW9mIHNwZWMucHJpbWFyeU91dHB1dERpcmVjdG9yeSA9PT0gJ3N0cmluZycgJiYgc3BlYy5wcmltYXJ5T3V0cHV0RGlyZWN0b3J5ID8gc3BlYy5wcmltYXJ5T3V0cHV0RGlyZWN0b3J5IDogdW5kZWZpbmVkLFxuICAgIHNtb2tlVGVzdDogdHlwZW9mIHNwZWMuc21va2VUZXN0ID09PSAnc3RyaW5nJyAmJiBzcGVjLnNtb2tlVGVzdC50cmltKCkgPyBzcGVjLnNtb2tlVGVzdCA6IHVuZGVmaW5lZCxcbiAgICB0aW1lb3V0TXM6IHRpbWVvdXQsXG4gIH07XG59XG5cbi8qKiBgZG9ja2VyIHJ1bmAgYXJndW1lbnRzIGZvciBvbmUgcGhhc2UgKHNlY3JldCBWQUxVRVMgbmV2ZXIgYXBwZWFyIGhlcmUpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRvY2tlclJ1bkFyZ3MoaW1hZ2U6IHN0cmluZywgd29ya3NwYWNlOiBzdHJpbmcsIHBsYW46IFBpY2s8VGVzdFBsYW4sICdlbnYnIHwgJ3NlY3JldE5hbWVzJz4sIHNjcmlwdDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gW1xuICAgICdydW4nLCAnLS1ybScsXG4gICAgJy12JywgYCR7d29ya3NwYWNlfToke0NPTlRBSU5FUl9XT1JLU1BBQ0V9YCwgJy13JywgQ09OVEFJTkVSX1dPUktTUEFDRSxcbiAgICAuLi5PYmplY3QuZW50cmllcyhwbGFuLmVudikuZmxhdE1hcCgoW2ssIHZdKSA9PiBbJy1lJywgYCR7a309JHt2fWBdKSxcbiAgICAuLi5wbGFuLnNlY3JldE5hbWVzLmZsYXRNYXAobmFtZSA9PiBbJy1lJywgbmFtZV0pLFxuICAgIC8vIENvZGVCdWlsZCBydW5zIGEgc3RlcCdzIGNvbW1hbmRzIHVuZGVyIC9iaW4vc2gsIHNvIHRoZSB0ZXN0IGRvZXMgdG9vLlxuICAgICctLWVudHJ5cG9pbnQnLCAnL2Jpbi9zaCcsXG4gICAgaW1hZ2UsICctYycsIHNjcmlwdCxcbiAgXTtcbn1cblxuLyoqIENvcHkgdGhlIHNhbXBsZSB3b3Jrc3BhY2UgdG8gYSBzY3JhdGNoIGRpciB0aGUgY29udGFpbmVyJ3MgdWlkIDEwMDAgY2FuIHdyaXRlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVXb3Jrc3BhY2Uoc291cmNlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICBjb25zdCB3cyA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ3BpcGVsaW5lLW1hbmFnZXItcGx1Z2luLXRlc3QtJykpO1xuICBpZiAoc291cmNlKSB7XG4gICAgY29uc3Qgc3JjID0gcGF0aC5yZXNvbHZlKHNvdXJjZSk7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKHNyYykgfHwgIWZzLnN0YXRTeW5jKHNyYykuaXNEaXJlY3RvcnkoKSkgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgLS13b3Jrc3BhY2UgaXMgbm90IGEgZGlyZWN0b3J5OiAke3NyY31gLCAnd29ya3NwYWNlJywgc3JjKTtcbiAgICBmcy5jcFN5bmMoc3JjLCB3cywgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIH1cbiAgLy8gVGhlIGNvbnRhaW5lciBydW5zIGFzIHRoZSBpbWFnZSdzIHVzZXIgKHVpZCAxMDAwKSwgbm90IHRoZSBob3N0IHVzZXIuXG4gIC8vIEV4ZWN1dGFibGUgYml0cyBhcmUga2VwdCAoYSBgZ3JhZGxld2ApLCBzeW1saW5rcyBhcmUgbGVmdCBhbG9uZSAobmV2ZXJcbiAgLy8gY2htb2QgdGhyb3VnaCBhIGxpbmsgdG8gc29tZXRoaW5nIG91dHNpZGUgdGhlIHNjcmF0Y2ggZGlyKS5cbiAgY29uc3Qgb3BlbiA9IChwOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBjb25zdCBzdCA9IGZzLmxzdGF0U3luYyhwKTtcbiAgICBpZiAoc3QuaXNTeW1ib2xpY0xpbmsoKSkgcmV0dXJuO1xuICAgIGNvbnN0IG93bmVyRXhlY3V0YWJsZSA9IE1hdGguZmxvb3IoKHN0Lm1vZGUgJSAwbzEwMDApIC8gMG8xMDApICUgMiA9PT0gMTtcbiAgICBmcy5jaG1vZFN5bmMocCwgc3QuaXNEaXJlY3RvcnkoKSB8fCBvd25lckV4ZWN1dGFibGUgPyAwbzc3NyA6IDBvNjY2KTtcbiAgICBpZiAoc3QuaXNEaXJlY3RvcnkoKSkgZm9yIChjb25zdCBlIG9mIGZzLnJlYWRkaXJTeW5jKHApKSBvcGVuKHBhdGguam9pbihwLCBlKSk7XG4gIH07XG4gIG9wZW4od3MpO1xuICByZXR1cm4gd3M7XG59XG5cbi8qKiBXaGVyZSB0aGUgc3RlcCdzIHByaW1hcnkgb3V0cHV0IGxhbmRzIG9uIHRoZSBob3N0LCBob25vdXJpbmcgYSByZWxhdGl2ZSBXT1JLRElSLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG91dHB1dFBhdGgod29ya3NwYWNlOiBzdHJpbmcsIHBsYW46IFBpY2s8VGVzdFBsYW4sICdlbnYnIHwgJ3ByaW1hcnlPdXRwdXREaXJlY3RvcnknPik6IHN0cmluZyB8IG51bGwge1xuICBpZiAoIXBsYW4ucHJpbWFyeU91dHB1dERpcmVjdG9yeSkgcmV0dXJuIG51bGw7XG4gIGNvbnN0IHdvcmtkaXIgPSBwbGFuLmVudi5XT1JLRElSID8/ICcuLyc7XG4gIGNvbnN0IGJhc2UgPSB3b3JrZGlyLnN0YXJ0c1dpdGgoJy8nKVxuICAgID8gKHdvcmtkaXIuc3RhcnRzV2l0aChDT05UQUlORVJfV09SS1NQQUNFKSA/IHBhdGguam9pbih3b3Jrc3BhY2UsIHBhdGgucmVsYXRpdmUoQ09OVEFJTkVSX1dPUktTUEFDRSwgd29ya2RpcikpIDogbnVsbClcbiAgICA6IHBhdGguam9pbih3b3Jrc3BhY2UsIHdvcmtkaXIpO1xuICByZXR1cm4gYmFzZSA9PT0gbnVsbCA/IG51bGwgOiBwYXRoLmpvaW4oYmFzZSwgcGxhbi5wcmltYXJ5T3V0cHV0RGlyZWN0b3J5KTtcbn1cblxuLyoqXG4gKiBCdWlsZCAob3IgdGFrZSkgdGhlIGltYWdlLCB0aGVuIHJ1biB0aGUgcGx1Z2luIGFzIGl0cyBDb2RlQnVpbGQgc3RlcCB3b3VsZDpcbiAqIGluc3RhbGwgcGhhc2UsIGJ1aWxkIHBoYXNlIChmYWlsdXJlQmVoYXZpb3IgYXBwbGllZCksIHRoZSBwcmltYXJ5IG91dHB1dFxuICogY2hlY2ssIHRoZW4gdGhlIHNwZWMncyBzbW9rZVRlc3QuIEFueSBmYWlsdXJlIHRocm93cyDigJQgYSBzdGVwIHRoYXQgY2FuJ3QgcnVuXG4gKiBvciB0aGF0IGZhaWxzIGlzIHJlZCwgbmV2ZXIgZ3JlZW4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5QbHVnaW5UZXN0KG9wdGlvbnM6IFRlc3RQbHVnaW5PcHRpb25zLCBleGVjOiBFeGVjID0gc3Bhd25FeGVjKTogUHJvbWlzZTx7IG91dHB1dEZpbGVzOiBudW1iZXIgfCBudWxsIH0+IHtcbiAgY29uc3QgcGtnID0gcmVhZFBsdWdpblBhY2thZ2Uob3B0aW9ucy5kaXIpO1xuICBjb25zdCBwcm9ibGVtcyA9IGF3YWl0IHBhY2thZ2VQcm9ibGVtcyhwa2cpO1xuICBpZiAocHJvYmxlbXMubGVuZ3RoKSB7XG4gICAgZm9yIChjb25zdCBwIG9mIHByb2JsZW1zKSBwcmludEVycm9yKGAgIOKAoiAke3B9YCk7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVGhlIHBsdWdpbiBoYXMgJHtwcm9ibGVtcy5sZW5ndGh9IHZhbGlkYXRpb24gcHJvYmxlbShzKTsgcnVuIFwicGx1Z2luIHZhbGlkYXRlXCIgYW5kIGZpeCB0aGVtIGZpcnN0YCk7XG4gIH1cbiAgY29uc3Qgc3BlYyA9IHBrZy5zcGVjIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmIChzcGVjLnBsdWdpblR5cGUgPT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnKSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignQSBNYW51YWxBcHByb3ZhbFN0ZXAgcnVucyBubyBjb21tYW5kcywgc28gdGhlcmUgaXMgbm90aGluZyB0byB0ZXN0Jyk7XG4gIH1cbiAgaWYgKCFoYXNUb29sKGV4ZWMsICdkb2NrZXInKSkgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKCdkb2NrZXIgaXMgbm90IGF2YWlsYWJsZSDigJQgcGx1Z2luIHRlc3QgcnVucyB0aGUgcGx1Z2luIGluIGl0cyBpbWFnZScpO1xuXG4gIGNvbnN0IHBsYW4gPSBwbGFuUGx1Z2luVGVzdChzcGVjLCB7XG4gICAgZW52OiBwYXJzZUtleVZhbHVlcyhvcHRpb25zLmVudiwgJy0tZW52JyksXG4gICAgbWV0YWRhdGE6IHBhcnNlS2V5VmFsdWVzKG9wdGlvbnMubWV0YWRhdGEsICctLW1ldGFkYXRhJyksXG4gICAgdmFyczogcGFyc2VLZXlWYWx1ZXMob3B0aW9ucy52YXIsICctLXZhcicpLFxuICB9KTtcblxuICBjb25zdCB3b3Jrc3BhY2UgPSBwcmVwYXJlV29ya3NwYWNlKG9wdGlvbnMud29ya3NwYWNlKTtcbiAgbGV0IGltYWdlID0gb3B0aW9ucy5pbWFnZTtcbiAgbGV0IGJ1aWx0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgdHJ5IHtcbiAgICBpZiAoIWltYWdlKSB7XG4gICAgICBpZiAocGtnLmJ1aWxkVHlwZSA9PT0gJ2J1aWxkX2ltYWdlJykge1xuICAgICAgICBidWlsdCA9IGxvY2FsSW1hZ2VUYWcocGxhbi5uYW1lLCBwbGFuLnZlcnNpb24pO1xuICAgICAgICBwcmludFNlY3Rpb24oJ0J1aWxkaW5nIGltYWdlJywgYnVpbHQpO1xuICAgICAgICBjb25zdCBidWlsZEFyZ3MgPSAoc3BlYy5idWlsZEFyZ3MgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPz8ge307XG4gICAgICAgIGNvbnN0IGVycm9yID0gYnVpbGRQbHVnaW5JbWFnZShleGVjLCB7IGRpcjogcGtnLmRpciwgZG9ja2VyZmlsZTogcGF0aC5qb2luKHBrZy5kaXIsIHBrZy5kb2NrZXJmaWxlTmFtZSksIHRhZzogYnVpbHQsIGJ1aWxkQXJncyB9KTtcbiAgICAgICAgaWYgKGVycm9yKSB0aHJvdyBuZXcgUGx1Z2luVGVzdEZhaWx1cmUoZXJyb3IpO1xuICAgICAgICBpbWFnZSA9IGJ1aWx0O1xuICAgICAgfSBlbHNlIGlmIChwa2cuYnVpbGRUeXBlID09PSAncHJlYnVpbHQnKSB7XG4gICAgICAgIGNvbnN0IHIgPSBleGVjKCdkb2NrZXInLCBbJ2xvYWQnLCAnLWknLCBwYXRoLmpvaW4ocGtnLmRpciwgJ2ltYWdlLnRhcicpXSk7XG4gICAgICAgIGNvbnN0IGxvYWRlZCA9IC9Mb2FkZWQgaW1hZ2UoPzogSUQpPzogKFxcUyspLy5leGVjKHIuc3Rkb3V0KT8uWzFdO1xuICAgICAgICBpZiAoci5zdGF0dXMgIT09IDAgfHwgIWxvYWRlZCkgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGBkb2NrZXIgbG9hZCBpbWFnZS50YXIgZmFpbGVkOiAkeyhyLnN0ZGVyciB8fCByLnN0ZG91dCkudHJpbSgpfWApO1xuICAgICAgICBpbWFnZSA9IGxvYWRlZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0EgbWV0YWRhdGFfb25seSBwbHVnaW4gaGFzIG5vIGltYWdlIG9mIGl0cyBvd247IHBhc3MgdGhlIGltYWdlIGl0IHJ1bnMgaW4gd2l0aCAtLWltYWdlJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghaW1hZ2UpIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZSgnTm8gaW1hZ2UgdG8gcnVuJyk7XG4gICAgY29uc3QgdXNlciA9IGltYWdlVXNlcihleGVjLCBpbWFnZSk7XG4gICAgaWYgKCdlcnJvcicgaW4gdXNlcikgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKHVzZXIuZXJyb3IpO1xuICAgIGlmIChpc1Jvb3RVc2VyKHVzZXIudXNlcikpIHtcbiAgICAgIHRocm93IG5ldyBQbHVnaW5UZXN0RmFpbHVyZShgVGhlIGltYWdlIHJ1bnMgYXMgcm9vdCAoVVNFUiAnJHt1c2VyLnVzZXIgfHwgJyh1bnNldCknfScpOyBlbmQgdGhlIERvY2tlcmZpbGUgd2l0aCBcXGBVU0VSIDEwMDA6MTAwMFxcYGApO1xuICAgIH1cblxuICAgIHByaW50SW5mbygnUnVubmluZyBwbHVnaW4nLCB7XG4gICAgICBpbWFnZSxcbiAgICAgIHJ1bnNBczogdXNlci51c2VyLFxuICAgICAgd29ya3NwYWNlLFxuICAgICAgZmFpbHVyZUJlaGF2aW9yOiBwbGFuLmZhaWx1cmVCZWhhdmlvcixcbiAgICAgIGVudjogT2JqZWN0LmtleXMocGxhbi5lbnYpLFxuICAgICAgc2VjcmV0czogcGxhbi5zZWNyZXROYW1lcyxcbiAgICB9KTtcbiAgICBpZiAocGxhbi5taXNzaW5nT3B0aW9uYWxTZWNyZXRzLmxlbmd0aCkgcHJpbnRXYXJuaW5nKCdPcHRpb25hbCBzZWNyZXRzIG5vdCBzZXQgKHRoZSBzdGVwIHJ1bnMgd2l0aG91dCB0aGVtKScsIHsgc2VjcmV0czogcGxhbi5taXNzaW5nT3B0aW9uYWxTZWNyZXRzIH0pO1xuXG4gICAgZm9yIChjb25zdCBbcGhhc2UsIHNjcmlwdF0gb2YgW1snaW5zdGFsbCcsIHBsYW4uaW5zdGFsbFNjcmlwdF0sIFsnYnVpbGQnLCBwbGFuLmJ1aWxkU2NyaXB0XV0gYXMgY29uc3QpIHtcbiAgICAgIHByaW50U2VjdGlvbihgUGhhc2U6ICR7cGhhc2V9YCk7XG4gICAgICBjb25zdCByID0gZXhlYygnZG9ja2VyJywgZG9ja2VyUnVuQXJncyhpbWFnZSwgd29ya3NwYWNlLCBwbGFuLCBzY3JpcHQpLCB7IGluaGVyaXQ6IHRydWUsIHRpbWVvdXRNczogcGxhbi50aW1lb3V0TXMgfSk7XG4gICAgICBpZiAoci5lcnJvcikgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGAke3BoYXNlfSBwaGFzZSBkaWQgbm90IGNvbXBsZXRlOiAke3IuZXJyb3IubWVzc2FnZX1gKTtcbiAgICAgIGlmIChyLnN0YXR1cyAhPT0gMCkgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGAke3BoYXNlfSBwaGFzZSBmYWlsZWQgKGV4aXQgJHtyLnN0YXR1c30pYCk7XG4gICAgfVxuXG4gICAgbGV0IG91dHB1dEZpbGVzOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBjb25zdCBvdXQgPSBvdXRwdXRQYXRoKHdvcmtzcGFjZSwgcGxhbik7XG4gICAgaWYgKHBsYW4ucHJpbWFyeU91dHB1dERpcmVjdG9yeSAmJiBvdXQgPT09IG51bGwpIHtcbiAgICAgIHByaW50V2FybmluZygnV09SS0RJUiBpcyBvdXRzaWRlIHRoZSB3b3Jrc3BhY2U7IHByaW1hcnlPdXRwdXREaXJlY3RvcnkgY2Fubm90IGJlIGNoZWNrZWQgb24gdGhlIGhvc3QnKTtcbiAgICB9IGVsc2UgaWYgKG91dCkge1xuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKG91dCkgfHwgIWZzLnN0YXRTeW5jKG91dCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICB0aHJvdyBuZXcgUGx1Z2luVGVzdEZhaWx1cmUoYHByaW1hcnlPdXRwdXREaXJlY3RvcnkgJyR7cGxhbi5wcmltYXJ5T3V0cHV0RGlyZWN0b3J5fScgd2FzIG5vdCBjcmVhdGVkYCk7XG4gICAgICB9XG4gICAgICBvdXRwdXRGaWxlcyA9IGZzLnJlYWRkaXJTeW5jKG91dCkubGVuZ3RoO1xuICAgICAgaWYgKG91dHB1dEZpbGVzID09PSAwKSB0aHJvdyBuZXcgUGx1Z2luVGVzdEZhaWx1cmUoYHByaW1hcnlPdXRwdXREaXJlY3RvcnkgJyR7cGxhbi5wcmltYXJ5T3V0cHV0RGlyZWN0b3J5fScgaXMgZW1wdHlgKTtcbiAgICAgIHByaW50U3VjY2VzcyhgcHJpbWFyeU91dHB1dERpcmVjdG9yeSAnJHtwbGFuLnByaW1hcnlPdXRwdXREaXJlY3Rvcnl9JyBoYXMgJHtvdXRwdXRGaWxlc30gZW50ciR7b3V0cHV0RmlsZXMgPT09IDEgPyAneScgOiAnaWVzJ31gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJpbnRXYXJuaW5nKCdUaGUgc3BlYyBkZWNsYXJlcyBubyBwcmltYXJ5T3V0cHV0RGlyZWN0b3J5OyBubyBvdXRwdXQgdG8gY2hlY2snKTtcbiAgICB9XG5cbiAgICBpZiAocGxhbi5zbW9rZVRlc3QpIHtcbiAgICAgIHByaW50U2VjdGlvbignU21va2UgdGVzdCcsIHBsYW4uc21va2VUZXN0KTtcbiAgICAgIGNvbnN0IHIgPSBleGVjKCdkb2NrZXInLCBbJ3J1bicsICctLXJtJywgJy0tZW50cnlwb2ludCcsICcvYmluL2Jhc2gnLCBpbWFnZSwgJy1jJywgcGxhbi5zbW9rZVRlc3RdLCB7IGluaGVyaXQ6IHRydWUgfSk7XG4gICAgICBpZiAoci5lcnJvciB8fCByLnN0YXR1cyAhPT0gMCkgdGhyb3cgbmV3IFBsdWdpblRlc3RGYWlsdXJlKGBzbW9rZVRlc3QgZmFpbGVkOiAke3BsYW4uc21va2VUZXN0fWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcmludFdhcm5pbmcoJ1RoZSBzcGVjIGRlY2xhcmVzIG5vIHNtb2tlVGVzdCcpO1xuICAgIH1cbiAgICByZXR1cm4geyBvdXRwdXRGaWxlcyB9O1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChvcHRpb25zLmtlZXApIHByaW50SW5mbygnV29ya3NwYWNlIGtlcHQnLCB7IHdvcmtzcGFjZSB9KTtcbiAgICBlbHNlIGZzLnJtU3luYyh3b3Jrc3BhY2UsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICBpZiAoYnVpbHQgJiYgIW9wdGlvbnMua2VlcCkgcmVtb3ZlSW1hZ2UoZXhlYywgYnVpbHQpO1xuICB9XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYHBsdWdpbiB0ZXN0YCDigJQgcnVuIGEgcGx1Z2luJ3MgaW5zdGFsbCArIGJ1aWxkIGNvbW1hbmRzIGxvY2FsbHkgaW5cbiAqIGl0cyBpbWFnZSBhZ2FpbnN0IGEgc2FtcGxlIHdvcmtzcGFjZSwgY2hlY2sgaXRzIHByaW1hcnkgb3V0cHV0LCBhbmQgcnVuIGl0c1xuICogc21va2VUZXN0LiBFeGl0cyBub24temVybyBvbiBhbnkgZmFpbHVyZS5cbiAqXG4gKiBVc2FnZTpcbiAqICAgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdGVzdCAtLWRpciAuL215LWxpbnRlciAtLXdvcmtzcGFjZSAuL3NhbXBsZS1hcHBcbiAqICAgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdGVzdCAtLWRpciAuL215LWxpbnRlciAtLWltYWdlIG15LWxpbnRlcjpkZXYgLS1tZXRhZGF0YSBTVEFHRT1kZXZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3RQbHVnaW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3Rlc3QnKVxuICAgIC5kZXNjcmlwdGlvbignUnVuIGEgcGx1Z2luXFwncyBpbnN0YWxsICsgYnVpbGQgY29tbWFuZHMgbG9jYWxseSBpbiBpdHMgaW1hZ2UgYWdhaW5zdCBhIHNhbXBsZSB3b3Jrc3BhY2UnKVxuICAgIC5vcHRpb24oJy0tZGlyIDxwYXRoPicsICdQbHVnaW4gZGlyZWN0b3J5JywgJy4nKVxuICAgIC5vcHRpb24oJy0taW1hZ2UgPHJlZj4nLCAnVXNlIHRoaXMgaW1hZ2UgaW5zdGVhZCBvZiBidWlsZGluZyB0aGUgcGx1Z2luXFwncyBEb2NrZXJmaWxlJylcbiAgICAub3B0aW9uKCctLXdvcmtzcGFjZSA8cGF0aD4nLCAnU2FtcGxlIHdvcmtzcGFjZSBjb3BpZWQgaW4gYXMgdGhlIHN0ZXBcXCdzIHNvdXJjZSAoZGVmYXVsdDogZW1wdHkpJylcbiAgICAub3B0aW9uKCctLWVudiA8S0VZPVZBTFVFPicsICdFeHRyYSBlbnZpcm9ubWVudCB2YXJpYWJsZSAocmVwZWF0YWJsZSknLCBjb2xsZWN0KVxuICAgIC5vcHRpb24oJy0tbWV0YWRhdGEgPEtFWT1WQUxVRT4nLCAnUGlwZWxpbmUgbWV0YWRhdGEgdmFsdWUgKHJlcGVhdGFibGU7IGFsc28gZXhwb3J0ZWQgYXMgZW52LCBhcyBpbiB0aGUgcGlwZWxpbmUpJywgY29sbGVjdClcbiAgICAub3B0aW9uKCctLXZhciA8S0VZPVZBTFVFPicsICdQaXBlbGluZSB2YXIgZm9yIHt7IHBpcGVsaW5lLnZhcnMuKiB9fSAocmVwZWF0YWJsZSknLCBjb2xsZWN0KVxuICAgIC5vcHRpb24oJy0ta2VlcCcsICdLZWVwIHRoZSBzY3JhdGNoIHdvcmtzcGFjZSBhbmQgYnVpbHQgaW1hZ2UgZm9yIGluc3BlY3Rpb24nLCBmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBUZXN0UGx1Z2luT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1Rlc3QgUGx1Z2luJyk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBydW5QbHVnaW5UZXN0KG9wdGlvbnMpO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ1BsdWdpbiB0ZXN0IHBhc3NlZCcsIHsgZXhlY3V0aW9uSWQsIG91dHB1dEVudHJpZXM6IHJlc3VsdC5vdXRwdXRGaWxlcyB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnIsIGVyciBpbnN0YW5jZW9mIFZhbGlkYXRpb25FcnJvciA/IEVSUk9SX0NPREVTLlZBTElEQVRJT04gOiBFUlJPUl9DT0RFUy5HRU5FUkFMLCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAncGx1Z2luIHRlc3QnLCBleGVjdXRpb25JZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-plugin.d.ts","
|
|
1
|
+
{"version":3,"file":"upload-plugin.d.ts","sources":["../../src/commands/upload-plugin.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8IpC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6FnD"}
|
|
@@ -211,4 +211,4 @@ export function uploadPlugin(program) {
|
|
|
211
211
|
}
|
|
212
212
|
});
|
|
213
213
|
}
|
|
214
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy91cGxvYWQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDekIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVk1RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztBQUU3Qjs7O0dBR0c7QUFDSCxTQUFTLGlCQUFpQixDQUFDLElBQWE7SUFDdEMscUJBQXFCO0lBQ3JCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVB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WUFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLFNBQVMsQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUTtvQkFDbkIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixRQUFRLENBQUMsUUFBUSwwQkFBMEIsRUFBRTtvQkFDL0UsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLHFFQUFxRSxFQUFFLENBQUM7Z0JBQ3JGLElBQUksRUFBRSxzQ0FBc0M7YUFDN0MsQ0FBQyxDQUFDO1FBRUwsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSztnQkFDM0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRSxlQUFlO29CQUN4QixXQUFXO29CQUNYLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtvQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO29CQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7aUJBQzdCO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZXJyb3JNZXNzYWdlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgRm9ybURhdGEgZnJvbSAnZm9ybS1kYXRhJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgRklMRV9TSVpFX0xJTUlUUywgZm9ybWF0RmlsZVNpemUgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5pbXBvcnQgeyBwcmludENvbW1hbmRIZWFkZXIsIHByaW50U3NsV2FybmluZywgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudCwgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBmaWxlRXhpc3RzLCBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgdW53cmFwRW52ZWxvcGUgfSBmcm9tICcuLi91dGlscy9yZXNwb25zZS11dGlscy5qcyc7XG5cbi8qKiBUaGUgdXBsb2FkIHJvdXRlJ3Mgc3VjY2VzcyBwYXlsb2FkIChgUE9TVCAvcGx1Z2lucy91cGxvYWRgKS4gKi9cbmludGVyZmFjZSBQbHVnaW5VcGxvYWRSZXN1bHQge1xuICByZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIHBsdWdpbk5hbWU/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKiBQcmVzZW50IG9ubHkgb24gMjAxIChtZXRhZGF0YS1vbmx5IHBsdWdpbiwgZGVwbG95ZWQgd2l0aG91dCBhIGJ1aWxkKS4gKi9cbiAgcGx1Z2luSWQ/OiBzdHJpbmc7XG4gIGJ1aWxkVHlwZT86IHN0cmluZztcbn1cblxuY29uc3QgeyBib2xkLCBncmVlbiB9ID0gcGljbztcblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGUgcGx1Z2luIFpJUCAobm9uLWVtcHR5IHBhdGgsIGV4aXN0cywgYC56aXBgLCBzaXplIGNhcCwgcmVhZGFibGUpLlxuICogUmV0dXJucyB0aGUgcmVzb2x2ZWQgcGF0aCBhbmQgaXRzIGZvcm1hdHRlZCBzaXplLlxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVBsdWdpblppcChmaWxlOiB1bmtub3duKTogeyBmaWxlUGF0aDogc3RyaW5nOyBzaXplRm9ybWF0dGVkOiBzdHJpbmcgfSB7XG4gIC8vIFZhbGlkYXRlIGZpbGUgcGF0aFxuICBpZiAodHlwZW9mIGZpbGUgIT09ICdzdHJpbmcnIHx8IGZpbGUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHByaW50RXJyb3IoJ0ludmFsaWQgZmlsZSBwYXRoJywgeyBwcm92aWRlZDogZmlsZSB9KTtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdGaWxlIHBhdGggbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnLCAnZmlsZScsIGZpbGUpO1xuICB9XG5cbiAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUoZmlsZSk7XG5cbiAgLy8gVmFsaWRhdGUgZmlsZSBleGlzdHNcbiAgcHJpbnRJbmZvKCdWYWxpZGF0aW5nIHBsdWdpbiBmaWxlJywgeyBwYXRoOiBmaWxlUGF0aCB9KTtcblxuICBpZiAoIWZpbGVFeGlzdHMoZmlsZVBhdGgpKSB7XG4gICAgcHJpbnRFcnJvcignUGx1Z2luIGZpbGUgbm90IGZvdW5kJywgeyBwYXRoOiBmaWxlUGF0aCB9KTtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBQbHVnaW4gZmlsZSBub3QgZm91bmQ6ICR7ZmlsZVBhdGh9YCwgJ2ZpbGUnLCBmaWxlUGF0aCk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBmaWxlIGV4dGVuc2lvblxuICBjb25zdCBmaWxlRXh0ID0gcGF0aC5leHRuYW1lKGZpbGVQYXRoKS50b0xvd2VyQ2FzZSgpO1xuICBpZiAoZmlsZUV4dCAhPT0gJy56aXAnKSB7XG4gICAgcHJpbnRXYXJuaW5nKCdGaWxlIGV4dGVuc2lvbiBpcyBub3QgLnppcCcsIHtcbiAgICAgIHByb3ZpZGVkOiBmaWxlRXh0LFxuICAgICAgZXhwZWN0ZWQ6ICcuemlwJyxcbiAgICB9KTtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdQbHVnaW4gZmlsZSBtdXN0IGJlIGEgWklQIGFyY2hpdmUnLCAnZmlsZScsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8vIEdldCBmaWxlIHN0YXRzXG4gIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMoZmlsZVBhdGgpO1xuICBjb25zdCBzaXplQnl0ZXMgPSBzdGF0cy5zaXplO1xuICBjb25zdCBzaXplRm9ybWF0dGVkID0gZm9ybWF0RmlsZVNpemUoc2l6ZUJ5dGVzKTtcblxuICBwcmludFN1Y2Nlc3MoJ1BsdWdpbiBmaWxlIGZvdW5kJywge1xuICAgIHBhdGg6IGZpbGVQYXRoLFxuICAgIHNpemU6IHNpemVGb3JtYXR0ZWQsXG4gICAgbW9kaWZpZWQ6IG5ldyBEYXRlKHN0YXRzLm10aW1lKS50b0xvY2FsZVN0cmluZygpLFxuICB9KTtcblxuICAvLyBDaGVjayBmaWxlIHNpemVcbiAgaWYgKHNpemVCeXRlcyA+IEZJTEVfU0laRV9MSU1JVFMuUExVR0lOKSB7XG4gICAgcHJpbnRFcnJvcignUGx1Z2luIGZpbGUgdG9vIGxhcmdlJywge1xuICAgICAgc2l6ZTogc2l6ZUZvcm1hdHRlZCxcbiAgICAgIG1heGltdW06IGZvcm1hdEZpbGVTaXplKEZJTEVfU0laRV9MSU1JVFMuUExVR0lOKSxcbiAgICAgIGV4Y2VlZGVkQnk6IGZvcm1hdEZpbGVTaXplKHNpemVCeXRlcyAtIEZJTEVfU0laRV9MSU1JVFMuUExVR0lOKSxcbiAgICB9KTtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgYFBsdWdpbiBmaWxlIGV4Y2VlZHMgbWF4aW11bSBzaXplIG9mICR7Zm9ybWF0RmlsZVNpemUoRklMRV9TSVpFX0xJTUlUUy5QTFVHSU4pfSAoYWN0dWFsOiAke3NpemVGb3JtYXR0ZWR9KWAsXG4gICAgICAnZmlsZS5zaXplJyxcbiAgICAgIHNpemVCeXRlcyxcbiAgICApO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgZmlsZSBpcyByZWFkYWJsZVxuICB0cnkge1xuICAgIGZzLmFjY2Vzc1N5bmMoZmlsZVBhdGgsIGZzLmNvbnN0YW50cy5SX09LKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBwcmludEVycm9yKCdDYW5ub3QgcmVhZCBwbHVnaW4gZmlsZScsIHtcbiAgICAgIHBhdGg6IGZpbGVQYXRoLFxuICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZShlcnJvciksXG4gICAgfSk7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignUGx1Z2luIGZpbGUgaXMgbm90IHJlYWRhYmxlJywgJ2ZpbGUnLCBmaWxlUGF0aCk7XG4gIH1cblxuICBwcmludFN1Y2Nlc3MoJ1BsdWdpbiBmaWxlIHZhbGlkYXRlZCcpO1xuICByZXR1cm4geyBmaWxlUGF0aCwgc2l6ZUZvcm1hdHRlZCB9O1xufVxuXG4vKiogUE9TVCB0aGUgWklQIGFzIG11bHRpcGFydCBmb3JtIGRhdGE7IHJldHVybnMgdGhlIHJhdyByZXNwb25zZSBhbmQgaXRzIGR1cmF0aW9uLiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9zdFBsdWdpblppcChcbiAgY2xpZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50PixcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgc2l6ZUZvcm1hdHRlZDogc3RyaW5nLFxuICBpc1B1YmxpYzogYm9vbGVhbixcbik6IFByb21pc2U8eyByYXdSZXNwb25zZTogdW5rbm93bjsgZHVyYXRpb246IG51bWJlciB9PiB7XG4gIGNvbnN0IGNvbmZpZyA9IGNsaWVudC5nZXRDb25maWcoKTtcbiAgLy8gQ3JlYXRlIGZvcm0gZGF0YVxuICBjb25zb2xlLmxvZygnJyk7XG4gIHByaW50U2VjdGlvbignVXBsb2FkaW5nIFBsdWdpbicpO1xuICBwcmludEluZm8oJ1ByZXBhcmluZyB1cGxvYWQnLCB7XG4gICAgZmlsZTogcGF0aC5iYXNlbmFtZShmaWxlUGF0aCksXG4gICAgc2l6ZTogc2l6ZUZvcm1hdHRlZCxcbiAgfSk7XG5cbiAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgZm9ybURhdGEuYXBwZW5kKCdwbHVnaW4nLCBmcy5jcmVhdGVSZWFkU3RyZWFtKGZpbGVQYXRoKSwge1xuICAgIGZpbGVuYW1lOiBwYXRoLmJhc2VuYW1lKGZpbGVQYXRoKSxcbiAgICBjb250ZW50VHlwZTogJ2FwcGxpY2F0aW9uL3ppcCcsXG4gIH0pO1xuICAvLyBUaGUgdXBsb2FkIEFQSSByZWFkcyBgdmlzaWJpbGl0eWAgKHByaXZhdGUgfCBvcmcgfCBwdWJsaWMpOyB3aXRob3V0XG4gIC8vIGl0IHRoZSB2ZXJzaW9uIGlzIGBvcmdgLiBgcHVibGljYCBuZWVkcyBwbHVnaW5zOnB1Ymxpc2guIE5hbWUgYW5kXG4gIC8vIHZlcnNpb24gY29tZSBmcm9tIHRoZSBwYWNrYWdlJ3Mgc3BlYzsgdGhlIG9yZyBmcm9tIHRoZSBzZXNzaW9uLlxuICBpZiAoaXNQdWJsaWMpIGZvcm1EYXRhLmFwcGVuZCgndmlzaWJpbGl0eScsICdwdWJsaWMnKTtcblxuICAvLyBNYWtlIEFQSSByZXF1ZXN0XG4gIGNvbnN0IGVuZHBvaW50ID0gY29uZmlnLmFwaS5wbHVnaW5VcGxvYWRVcmw7XG4gIHByaW50SW5mbygnVXBsb2FkaW5nIHRvIEFQSScsIHtcbiAgICBlbmRwb2ludDogYCR7Y29uZmlnLmFwaS5iYXNlVXJsfSR7ZW5kcG9pbnR9YCxcbiAgfSk7XG5cbiAgY29uc29sZS5sb2coJycpO1xuXG4gIGNvbnN0IHNwaW5uZXIgPSBvcmEoJ1VwbG9hZGluZyBwbHVnaW4uLi4nKS5zdGFydCgpO1xuICBsZXQgcmF3UmVzcG9uc2U6IHVua25vd247XG4gIGxldCBkdXJhdGlvbjogbnVtYmVyO1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgcmF3UmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdEZvcm08dW5rbm93bj4oZW5kcG9pbnQsIGZvcm1EYXRhKTtcbiAgICBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG4gICAgc3Bpbm5lci5zdWNjZWVkKCdQbHVnaW4gdXBsb2FkZWQnKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBzcGlubmVyLmZhaWwoJ1VwbG9hZCBmYWlsZWQnKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuICByZXR1cm4geyByYXdSZXNwb25zZSwgZHVyYXRpb24gfTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgdGhlIGB1cGxvYWQtcGx1Z2luYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIFZhbGlkYXRlcyBhIGxvY2FsIHBsdWdpbiBaSVAgZmlsZSAoc2l6ZSwgZXh0ZW5zaW9uLCByZWFkYWJpbGl0eSksXG4gKiBidWlsZHMgYSBtdWx0aXBhcnQgZm9ybSwgYW5kIHVwbG9hZHMgaXQgdG8gdGhlIHBsYXRmb3JtIEFQSS4gVGhlXG4gKiBwbHVnaW4ncyBuYW1lIGFuZCB2ZXJzaW9uIGFsd2F5cyBjb21lIGZyb20gdGhlIHBhY2thZ2Unc1xuICogYHBsdWdpbi1zcGVjLnlhbWxgLCBhbmQgdGhlIG9yZ2FuaXphdGlvbiBmcm9tIHRoZSBzaWduZWQtaW4gc2Vzc2lvbi5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSAtIFRoZSByb290IENvbW1hbmRlciBwcm9ncmFtIGluc3RhbmNlIHRvIGF0dGFjaCB0aGUgY29tbWFuZCB0by5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogY2xpIHBsdWdpbiB1cGxvYWQgLS1maWxlIHBsdWdpbi56aXBcbiAqIGNsaSBwbHVnaW4gdXBsb2FkIC0tZmlsZSBwbHVnaW4uemlwIC0tcHVibGljXG4gKiBjbGkgcGx1Z2luIHVwbG9hZCAtLWZpbGUgcGx1Z2luLnppcCAtLW5vLXZlcmlmeS1zc2xcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXBsb2FkUGx1Z2luKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCd1cGxvYWQnKVxuICAgIC5kZXNjcmlwdGlvbignVXBsb2FkIGFuZCBkZXBsb3kgYSBwbHVnaW4gcGFja2FnZScpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctZiwgLS1maWxlIDxmaWxlPicsICdQYXRoIHRvIHBsdWdpbiBaSVAgZmlsZScpXG4gICAgLm9wdGlvbignLS1wdWJsaWMnLCAnTWFrZSBwbHVnaW4gcHVibGljbHkgYWNjZXNzaWJsZSAobmVlZHMgcGx1Z2luczpwdWJsaXNoKScsIGZhbHNlKSlcbiAgICAub3B0aW9uKCctLWRyeS1ydW4nLCAnVmFsaWRhdGUgZmlsZSB3aXRob3V0IHVwbG9hZGluZycsIGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdVcGxvYWQgUGx1Z2luJyk7XG5cbiAgICAgIHRyeSB7XG5cbiAgICAgICAgLy8gRGlzcGxheSBwYXJhbWV0ZXJzXG4gICAgICAgIHByaW50SW5mbygnVXBsb2FkIHBhcmFtZXRlcnMnLCB7XG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxuICAgICAgICAgIHB1YmxpYzogb3B0aW9ucy5wdWJsaWMgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICAgZHJ5UnVuOiBvcHRpb25zLmRyeVJ1bixcbiAgICAgICAgICB2ZXJpZnlTc2w6IG9wdGlvbnMudmVyaWZ5U3NsLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTZWN1cml0eSB3YXJuaW5nIGZvciBTU0wgdmVyaWZpY2F0aW9uIGRpc2FibGVkXG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgICAgY29uc3QgeyBmaWxlUGF0aCwgc2l6ZUZvcm1hdHRlZCB9ID0gdmFsaWRhdGVQbHVnaW5aaXAob3B0aW9ucy5maWxlKTtcblxuICAgICAgICAvLyBEcnkgcnVuIG1vZGVcbiAgICAgICAgaWYgKG9wdGlvbnMuZHJ5UnVuKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICAgIHByaW50U2VjdGlvbignRHJ5IFJ1biAtIFZhbGlkYXRpb24gQ29tcGxldGUnKTtcbiAgICAgICAgICBwcmludFN1Y2Nlc3MoJ0ZpbGUgdmFsaWRhdGlvbiBwYXNzZWQgLSBubyB1cGxvYWQgcGVyZm9ybWVkJyk7XG5cbiAgICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAgIEZpbGU6IGZpbGVQYXRoLFxuICAgICAgICAgICAgU2l6ZTogc2l6ZUZvcm1hdHRlZCxcbiAgICAgICAgICAgIFB1YmxpYzogb3B0aW9ucy5wdWJsaWMgPyAnWWVzJyA6ICdObycsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjbGllbnQgPSBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50KG9wdGlvbnMpO1xuICAgICAgICBjb25zdCB7IHJhd1Jlc3BvbnNlLCBkdXJhdGlvbiB9ID0gYXdhaXQgcG9zdFBsdWdpblppcChjbGllbnQsIGZpbGVQYXRoLCBzaXplRm9ybWF0dGVkLCAhIW9wdGlvbnMucHVibGljKTtcblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IHVud3JhcEVudmVsb3BlKHJhd1Jlc3BvbnNlKSBhcyBQbHVnaW5VcGxvYWRSZXN1bHQ7XG4gICAgICAgIGlmICghcmVzcG9uc2UucGx1Z2luTmFtZSkge1xuICAgICAgICAgIHByaW50RXJyb3IoJ05vIHZhbGlkIHVwbG9hZCByZXN1bHQgaW4gcmVzcG9uc2UnLCB7XG4gICAgICAgICAgICByZXNwb25zZUtleXM6IE9iamVjdC5rZXlzKHJlc3BvbnNlKS5qb2luKCcsICcpIHx8ICcobm9uZSknLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVXBsb2FkIGZhaWxlZCAtIG5vIHZhbGlkIHVwbG9hZCByZXN1bHQgcmVjZWl2ZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIDIwMTogYSBtZXRhZGF0YS1vbmx5IHBsdWdpbiwgZGVwbG95ZWQgZGlyZWN0bHkgKGhhcyBhIHBsdWdpbklkKS5cbiAgICAgICAgLy8gMjAyOiB0aGUgaW1hZ2UgYnVpbGQgd2FzIHF1ZXVlZDsgdGhlIHdvcmtlciBwZXJzaXN0cyB0aGUgdmVyc2lvbi5cbiAgICAgICAgY29uc3QgcXVldWVkID0gIXJlc3BvbnNlLnBsdWdpbklkO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50U2VjdGlvbihxdWV1ZWQgPyAnUGx1Z2luIEJ1aWxkIFF1ZXVlZCcgOiAnUGx1Z2luIERlcGxveWVkJyk7XG4gICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICdQbHVnaW4nOiBncmVlbihib2xkKGAke3Jlc3BvbnNlLnBsdWdpbk5hbWV9QCR7cmVzcG9uc2UudmVyc2lvbiA/PyAnPyd9YCkpLFxuICAgICAgICAgIC4uLihyZXNwb25zZS5wbHVnaW5JZCA/IHsgJ1BsdWdpbiBJRCc6IHJlc3BvbnNlLnBsdWdpbklkIH0gOiB7fSksXG4gICAgICAgICAgJ1JlcXVlc3QgSUQnOiByZXNwb25zZS5yZXF1ZXN0SWQgPz8gJyhub3QgYXZhaWxhYmxlKScsXG4gICAgICAgICAgJ1Zpc2liaWxpdHknOiBvcHRpb25zLnB1YmxpYyA/ICdwdWJsaWMnIDogJ29yZycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAgICAgJ0V4ZWN1dGlvbiBJRCc6IGV4ZWN1dGlvbklkLFxuICAgICAgICAgICdVcGxvYWQgRHVyYXRpb24nOiBgJHsoZHVyYXRpb24gLyAxMDAwKS50b0ZpeGVkKDIpfXNgLFxuICAgICAgICAgICdTdGF0dXMnOiBncmVlbign4pyTIFN1Y2Nlc3MnKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTmV4dCBzdGVwc1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50SW5mbygnTmV4dCBzdGVwcycsIHtcbiAgICAgICAgICAuLi4ocmVzcG9uc2UucGx1Z2luSWRcbiAgICAgICAgICAgID8geyB2aWV3OiBgVXNlIFwicGx1Z2luIGdldCAtLWlkICR7cmVzcG9uc2UucGx1Z2luSWR9XCIgdG8gdmlldyBwbHVnaW4gZGV0YWlsc2AgfVxuICAgICAgICAgICAgOiB7IGJ1aWxkOiAnVGhlIHZlcnNpb24gYXBwZWFycyBpbiBcInBsdWdpbiBsaXN0XCIgb25jZSBpdHMgaW1hZ2UgYnVpbGQgY29tcGxldGVzJyB9KSxcbiAgICAgICAgICBsaXN0OiAnVXNlIFwicGx1Z2luIGxpc3RcIiB0byBzZWUgYWxsIHBsdWdpbnMnLFxuICAgICAgICB9KTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgY29tbWFuZDogJ3VwbG9hZC1wbHVnaW4nLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXG4gICAgICAgICAgICBwdWJsaWM6IG9wdGlvbnMucHVibGljLFxuICAgICAgICAgICAgdmVyaWZ5U3NsOiBvcHRpb25zLnZlcmlmeVNzbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
214
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXBsdWdpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3VwbG9hZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBQ3RCLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQztBQUM5QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBWTVELE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRTdCOzs7R0FHRztBQUNILFNBQVMsaUJBQWlCLENBQUMsSUFBYTtJQUN0QyxxQkFBcUI7SUFDckIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FB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QUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEIsU0FBUyxDQUFDLFlBQVksRUFBRTtnQkFDdEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRO29CQUNuQixDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLFFBQVEsQ0FBQyxRQUFRLDBCQUEwQixFQUFFO29CQUMvRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUscUVBQXFFLEVBQUUsQ0FBQztnQkFDckYsSUFBSSxFQUFFLHNDQUFzQzthQUM3QyxDQUFDLENBQUM7UUFFTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUU7b0JBQ1AsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFdBQVc7b0JBQ1gsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07b0JBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztpQkFDN0I7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBGb3JtRGF0YSBmcm9tICdmb3JtLWRhdGEnO1xuaW1wb3J0IG9yYSBmcm9tICdvcmEnO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBGSUxFX1NJWkVfTElNSVRTLCBmb3JtYXRGaWxlU2l6ZSB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nLCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50LCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IGZpbGVFeGlzdHMsIHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRLZXlWYWx1ZSwgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5pbXBvcnQgeyB1bndyYXBFbnZlbG9wZSB9IGZyb20gJy4uL3V0aWxzL3Jlc3BvbnNlLXV0aWxzLmpzJztcblxuLyoqIFRoZSB1cGxvYWQgcm91dGUncyBzdWNjZXNzIHBheWxvYWQgKGBQT1NUIC9wbHVnaW5zL3VwbG9hZGApLiAqL1xuaW50ZXJmYWNlIFBsdWdpblVwbG9hZFJlc3VsdCB7XG4gIHJlcXVlc3RJZD86IHN0cmluZztcbiAgcGx1Z2luTmFtZT86IHN0cmluZztcbiAgdmVyc2lvbj86IHN0cmluZztcbiAgLyoqIFByZXNlbnQgb25seSBvbiAyMDEgKG1ldGFkYXRhLW9ubHkgcGx1Z2luLCBkZXBsb3llZCB3aXRob3V0IGEgYnVpbGQpLiAqL1xuICBwbHVnaW5JZD86IHN0cmluZztcbiAgYnVpbGRUeXBlPzogc3RyaW5nO1xufVxuXG5jb25zdCB7IGJvbGQsIGdyZWVuIH0gPSBwaWNvO1xuXG4vKipcbiAqIFZhbGlkYXRlIHRoZSBwbHVnaW4gWklQIChub24tZW1wdHkgcGF0aCwgZXhpc3RzLCBgLnppcGAsIHNpemUgY2FwLCByZWFkYWJsZSkuXG4gKiBSZXR1cm5zIHRoZSByZXNvbHZlZCBwYXRoIGFuZCBpdHMgZm9ybWF0dGVkIHNpemUuXG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlUGx1Z2luWmlwKGZpbGU6IHVua25vd24pOiB7IGZpbGVQYXRoOiBzdHJpbmc7IHNpemVGb3JtYXR0ZWQ6IHN0cmluZyB9IHtcbiAgLy8gVmFsaWRhdGUgZmlsZSBwYXRoXG4gIGlmICh0eXBlb2YgZmlsZSAhPT0gJ3N0cmluZycgfHwgZmlsZS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgcHJpbnRFcnJvcignSW52YWxpZCBmaWxlIHBhdGgnLCB7IHByb3ZpZGVkOiBmaWxlIH0pO1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0ZpbGUgcGF0aCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZycsICdmaWxlJywgZmlsZSk7XG4gIH1cblxuICBjb25zdCBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShmaWxlKTtcblxuICAvLyBWYWxpZGF0ZSBmaWxlIGV4aXN0c1xuICBwcmludEluZm8oJ1ZhbGlkYXRpbmcgcGx1Z2luIGZpbGUnLCB7IHBhdGg6IGZpbGVQYXRoIH0pO1xuXG4gIGlmICghZmlsZUV4aXN0cyhmaWxlUGF0aCkpIHtcbiAgICBwcmludEVycm9yKCdQbHVnaW4gZmlsZSBub3QgZm91bmQnLCB7IHBhdGg6IGZpbGVQYXRoIH0pO1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYFBsdWdpbiBmaWxlIG5vdCBmb3VuZDogJHtmaWxlUGF0aH1gLCAnZmlsZScsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGZpbGUgZXh0ZW5zaW9uXG4gIGNvbnN0IGZpbGVFeHQgPSBwYXRoLmV4dG5hbWUoZmlsZVBhdGgpLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChmaWxlRXh0ICE9PSAnLnppcCcpIHtcbiAgICBwcmludFdhcm5pbmcoJ0ZpbGUgZXh0ZW5zaW9uIGlzIG5vdCAuemlwJywge1xuICAgICAgcHJvdmlkZWQ6IGZpbGVFeHQsXG4gICAgICBleHBlY3RlZDogJy56aXAnLFxuICAgIH0pO1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ1BsdWdpbiBmaWxlIG11c3QgYmUgYSBaSVAgYXJjaGl2ZScsICdmaWxlJywgZmlsZVBhdGgpO1xuICB9XG5cbiAgLy8gR2V0IGZpbGUgc3RhdHNcbiAgY29uc3Qgc3RhdHMgPSBmcy5zdGF0U3luYyhmaWxlUGF0aCk7XG4gIGNvbnN0IHNpemVCeXRlcyA9IHN0YXRzLnNpemU7XG4gIGNvbnN0IHNpemVGb3JtYXR0ZWQgPSBmb3JtYXRGaWxlU2l6ZShzaXplQnl0ZXMpO1xuXG4gIHByaW50U3VjY2VzcygnUGx1Z2luIGZpbGUgZm91bmQnLCB7XG4gICAgcGF0aDogZmlsZVBhdGgsXG4gICAgc2l6ZTogc2l6ZUZvcm1hdHRlZCxcbiAgICBtb2RpZmllZDogbmV3IERhdGUoc3RhdHMubXRpbWUpLnRvTG9jYWxlU3RyaW5nKCksXG4gIH0pO1xuXG4gIC8vIENoZWNrIGZpbGUgc2l6ZVxuICBpZiAoc2l6ZUJ5dGVzID4gRklMRV9TSVpFX0xJTUlUUy5QTFVHSU4pIHtcbiAgICBwcmludEVycm9yKCdQbHVnaW4gZmlsZSB0b28gbGFyZ2UnLCB7XG4gICAgICBzaXplOiBzaXplRm9ybWF0dGVkLFxuICAgICAgbWF4aW11bTogZm9ybWF0RmlsZVNpemUoRklMRV9TSVpFX0xJTUlUUy5QTFVHSU4pLFxuICAgICAgZXhjZWVkZWRCeTogZm9ybWF0RmlsZVNpemUoc2l6ZUJ5dGVzIC0gRklMRV9TSVpFX0xJTUlUUy5QTFVHSU4pLFxuICAgIH0pO1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBgUGx1Z2luIGZpbGUgZXhjZWVkcyBtYXhpbXVtIHNpemUgb2YgJHtmb3JtYXRGaWxlU2l6ZShGSUxFX1NJWkVfTElNSVRTLlBMVUdJTil9IChhY3R1YWw6ICR7c2l6ZUZvcm1hdHRlZH0pYCxcbiAgICAgICdmaWxlLnNpemUnLFxuICAgICAgc2l6ZUJ5dGVzLFxuICAgICk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBmaWxlIGlzIHJlYWRhYmxlXG4gIHRyeSB7XG4gICAgZnMuYWNjZXNzU3luYyhmaWxlUGF0aCwgZnMuY29uc3RhbnRzLlJfT0spO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50RXJyb3IoJ0Nhbm5vdCByZWFkIHBsdWdpbiBmaWxlJywge1xuICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICBlcnJvcjogZXJyb3JNZXNzYWdlKGVycm9yKSxcbiAgICB9KTtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdQbHVnaW4gZmlsZSBpcyBub3QgcmVhZGFibGUnLCAnZmlsZScsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIHByaW50U3VjY2VzcygnUGx1Z2luIGZpbGUgdmFsaWRhdGVkJyk7XG4gIHJldHVybiB7IGZpbGVQYXRoLCBzaXplRm9ybWF0dGVkIH07XG59XG5cbi8qKiBQT1NUIHRoZSBaSVAgYXMgbXVsdGlwYXJ0IGZvcm0gZGF0YTsgcmV0dXJucyB0aGUgcmF3IHJlc3BvbnNlIGFuZCBpdHMgZHVyYXRpb24uICovXG5hc3luYyBmdW5jdGlvbiBwb3N0UGx1Z2luWmlwKFxuICBjbGllbnQ6IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQ+LFxuICBmaWxlUGF0aDogc3RyaW5nLFxuICBzaXplRm9ybWF0dGVkOiBzdHJpbmcsXG4gIGlzUHVibGljOiBib29sZWFuLFxuKTogUHJvbWlzZTx7IHJhd1Jlc3BvbnNlOiB1bmtub3duOyBkdXJhdGlvbjogbnVtYmVyIH0+IHtcbiAgY29uc3QgY29uZmlnID0gY2xpZW50LmdldENvbmZpZygpO1xuICAvLyBDcmVhdGUgZm9ybSBkYXRhXG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgcHJpbnRTZWN0aW9uKCdVcGxvYWRpbmcgUGx1Z2luJyk7XG4gIHByaW50SW5mbygnUHJlcGFyaW5nIHVwbG9hZCcsIHtcbiAgICBmaWxlOiBwYXRoLmJhc2VuYW1lKGZpbGVQYXRoKSxcbiAgICBzaXplOiBzaXplRm9ybWF0dGVkLFxuICB9KTtcblxuICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICBmb3JtRGF0YS5hcHBlbmQoJ3BsdWdpbicsIGZzLmNyZWF0ZVJlYWRTdHJlYW0oZmlsZVBhdGgpLCB7XG4gICAgZmlsZW5hbWU6IHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpLFxuICAgIGNvbnRlbnRUeXBlOiAnYXBwbGljYXRpb24vemlwJyxcbiAgfSk7XG4gIC8vIFRoZSB1cGxvYWQgQVBJIHJlYWRzIGB2aXNpYmlsaXR5YCAocHJpdmF0ZSB8IG9yZyB8IHB1YmxpYyk7IHdpdGhvdXRcbiAgLy8gaXQgdGhlIHZlcnNpb24gaXMgYG9yZ2AuIGBwdWJsaWNgIG5lZWRzIHBsdWdpbnM6cHVibGlzaC4gTmFtZSBhbmRcbiAgLy8gdmVyc2lvbiBjb21lIGZyb20gdGhlIHBhY2thZ2UncyBzcGVjOyB0aGUgb3JnIGZyb20gdGhlIHNlc3Npb24uXG4gIGlmIChpc1B1YmxpYykgZm9ybURhdGEuYXBwZW5kKCd2aXNpYmlsaXR5JywgJ3B1YmxpYycpO1xuXG4gIC8vIE1ha2UgQVBJIHJlcXVlc3RcbiAgY29uc3QgZW5kcG9pbnQgPSBjb25maWcuYXBpLnBsdWdpblVwbG9hZFVybDtcbiAgcHJpbnRJbmZvKCdVcGxvYWRpbmcgdG8gQVBJJywge1xuICAgIGVuZHBvaW50OiBgJHtjb25maWcuYXBpLmJhc2VVcmx9JHtlbmRwb2ludH1gLFxuICB9KTtcblxuICBjb25zb2xlLmxvZygnJyk7XG5cbiAgY29uc3Qgc3Bpbm5lciA9IG9yYSgnVXBsb2FkaW5nIHBsdWdpbi4uLicpLnN0YXJ0KCk7XG4gIGxldCByYXdSZXNwb25zZTogdW5rbm93bjtcbiAgbGV0IGR1cmF0aW9uOiBudW1iZXI7XG4gIHRyeSB7XG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICByYXdSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0Rm9ybTx1bmtub3duPihlbmRwb2ludCwgZm9ybURhdGEpO1xuICAgIGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICBzcGlubmVyLnN1Y2NlZWQoJ1BsdWdpbiB1cGxvYWRlZCcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHNwaW5uZXIuZmFpbCgnVXBsb2FkIGZhaWxlZCcpO1xuICAgIHRocm93IGVycm9yO1xuICB9XG4gIHJldHVybiB7IHJhd1Jlc3BvbnNlLCBkdXJhdGlvbiB9O1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHVwbG9hZC1wbHVnaW5gIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogVmFsaWRhdGVzIGEgbG9jYWwgcGx1Z2luIFpJUCBmaWxlIChzaXplLCBleHRlbnNpb24sIHJlYWRhYmlsaXR5KSxcbiAqIGJ1aWxkcyBhIG11bHRpcGFydCBmb3JtLCBhbmQgdXBsb2FkcyBpdCB0byB0aGUgcGxhdGZvcm0gQVBJLiBUaGVcbiAqIHBsdWdpbidzIG5hbWUgYW5kIHZlcnNpb24gYWx3YXlzIGNvbWUgZnJvbSB0aGUgcGFja2FnZSdzXG4gKiBgcGx1Z2luLXNwZWMueWFtbGAsIGFuZCB0aGUgb3JnYW5pemF0aW9uIGZyb20gdGhlIHNpZ25lZC1pbiBzZXNzaW9uLlxuICpcbiAqIEBwYXJhbSBwcm9ncmFtIC0gVGhlIHJvb3QgQ29tbWFuZGVyIHByb2dyYW0gaW5zdGFuY2UgdG8gYXR0YWNoIHRoZSBjb21tYW5kIHRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBjbGkgcGx1Z2luIHVwbG9hZCAtLWZpbGUgcGx1Z2luLnppcFxuICogY2xpIHBsdWdpbiB1cGxvYWQgLS1maWxlIHBsdWdpbi56aXAgLS1wdWJsaWNcbiAqIGNsaSBwbHVnaW4gdXBsb2FkIC0tZmlsZSBwbHVnaW4uemlwIC0tbm8tdmVyaWZ5LXNzbFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1cGxvYWRQbHVnaW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3VwbG9hZCcpXG4gICAgLmRlc2NyaXB0aW9uKCdVcGxvYWQgYW5kIGRlcGxveSBhIHBsdWdpbiBwYWNrYWdlJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1mLCAtLWZpbGUgPGZpbGU+JywgJ1BhdGggdG8gcGx1Z2luIFpJUCBmaWxlJylcbiAgICAub3B0aW9uKCctLXB1YmxpYycsICdNYWtlIHBsdWdpbiBwdWJsaWNseSBhY2Nlc3NpYmxlIChuZWVkcyBwbHVnaW5zOnB1Ymxpc2gpJywgZmFsc2UpKVxuICAgIC5vcHRpb24oJy0tZHJ5LXJ1bicsICdWYWxpZGF0ZSBmaWxlIHdpdGhvdXQgdXBsb2FkaW5nJywgZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1VwbG9hZCBQbHVnaW4nKTtcblxuICAgICAgdHJ5IHtcblxuICAgICAgICAvLyBEaXNwbGF5IHBhcmFtZXRlcnNcbiAgICAgICAgcHJpbnRJbmZvKCdVcGxvYWQgcGFyYW1ldGVycycsIHtcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXG4gICAgICAgICAgcHVibGljOiBvcHRpb25zLnB1YmxpYyA/ICdZZXMnIDogJ05vJyxcbiAgICAgICAgICBkcnlSdW46IG9wdGlvbnMuZHJ5UnVuLFxuICAgICAgICAgIHZlcmlmeVNzbDogb3B0aW9ucy52ZXJpZnlTc2wsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFNlY3VyaXR5IHdhcm5pbmcgZm9yIFNTTCB2ZXJpZmljYXRpb24gZGlzYWJsZWRcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICBjb25zdCB7IGZpbGVQYXRoLCBzaXplRm9ybWF0dGVkIH0gPSB2YWxpZGF0ZVBsdWdpblppcChvcHRpb25zLmZpbGUpO1xuXG4gICAgICAgIC8vIERyeSBydW4gbW9kZVxuICAgICAgICBpZiAob3B0aW9ucy5kcnlSdW4pIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgICAgcHJpbnRTZWN0aW9uKCdEcnkgUnVuIC0gVmFsaWRhdGlvbiBDb21wbGV0ZScpO1xuICAgICAgICAgIHByaW50U3VjY2VzcygnRmlsZSB2YWxpZGF0aW9uIHBhc3NlZCAtIG5vIHVwbG9hZCBwZXJmb3JtZWQnKTtcblxuICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgRmlsZTogZmlsZVBhdGgsXG4gICAgICAgICAgICBTaXplOiBzaXplRm9ybWF0dGVkLFxuICAgICAgICAgICAgUHVibGljOiBvcHRpb25zLnB1YmxpYyA/ICdZZXMnIDogJ05vJyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHsgcmF3UmVzcG9uc2UsIGR1cmF0aW9uIH0gPSBhd2FpdCBwb3N0UGx1Z2luWmlwKGNsaWVudCwgZmlsZVBhdGgsIHNpemVGb3JtYXR0ZWQsICEhb3B0aW9ucy5wdWJsaWMpO1xuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdW53cmFwRW52ZWxvcGUocmF3UmVzcG9uc2UpIGFzIFBsdWdpblVwbG9hZFJlc3VsdDtcbiAgICAgICAgaWYgKCFyZXNwb25zZS5wbHVnaW5OYW1lKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcignTm8gdmFsaWQgdXBsb2FkIHJlc3VsdCBpbiByZXNwb25zZScsIHtcbiAgICAgICAgICAgIHJlc3BvbnNlS2V5czogT2JqZWN0LmtleXMocmVzcG9uc2UpLmpvaW4oJywgJykgfHwgJyhub25lKScsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVcGxvYWQgZmFpbGVkIC0gbm8gdmFsaWQgdXBsb2FkIHJlc3VsdCByZWNlaXZlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gMjAxOiBhIG1ldGFkYXRhLW9ubHkgcGx1Z2luLCBkZXBsb3llZCBkaXJlY3RseSAoaGFzIGEgcGx1Z2luSWQpLlxuICAgICAgICAvLyAyMDI6IHRoZSBpbWFnZSBidWlsZCB3YXMgcXVldWVkOyB0aGUgd29ya2VyIHBlcnNpc3RzIHRoZSB2ZXJzaW9uLlxuICAgICAgICBjb25zdCBxdWV1ZWQgPSAhcmVzcG9uc2UucGx1Z2luSWQ7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRTZWN0aW9uKHF1ZXVlZCA/ICdQbHVnaW4gQnVpbGQgUXVldWVkJyA6ICdQbHVnaW4gRGVwbG95ZWQnKTtcbiAgICAgICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAgICAgJ1BsdWdpbic6IGdyZWVuKGJvbGQoYCR7cmVzcG9uc2UucGx1Z2luTmFtZX1AJHtyZXNwb25zZS52ZXJzaW9uID8/ICc/J31gKSksXG4gICAgICAgICAgLi4uKHJlc3BvbnNlLnBsdWdpbklkID8geyAnUGx1Z2luIElEJzogcmVzcG9uc2UucGx1Z2luSWQgfSA6IHt9KSxcbiAgICAgICAgICAnUmVxdWVzdCBJRCc6IHJlc3BvbnNlLnJlcXVlc3RJZCA/PyAnKG5vdCBhdmFpbGFibGUpJyxcbiAgICAgICAgICAnVmlzaWJpbGl0eSc6IG9wdGlvbnMucHVibGljID8gJ3B1YmxpYycgOiAnb3JnJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAnRXhlY3V0aW9uIElEJzogZXhlY3V0aW9uSWQsXG4gICAgICAgICAgJ1VwbG9hZCBEdXJhdGlvbic6IGAkeyhkdXJhdGlvbiAvIDEwMDApLnRvRml4ZWQoMil9c2AsXG4gICAgICAgICAgJ1N0YXR1cyc6IGdyZWVuKCfinJMgU3VjY2VzcycpLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBOZXh0IHN0ZXBzXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRJbmZvKCdOZXh0IHN0ZXBzJywge1xuICAgICAgICAgIC4uLihyZXNwb25zZS5wbHVnaW5JZFxuICAgICAgICAgICAgPyB7IHZpZXc6IGBVc2UgXCJwbHVnaW4gZ2V0IC0taWQgJHtyZXNwb25zZS5wbHVnaW5JZH1cIiB0byB2aWV3IHBsdWdpbiBkZXRhaWxzYCB9XG4gICAgICAgICAgICA6IHsgYnVpbGQ6ICdUaGUgdmVyc2lvbiBhcHBlYXJzIGluIFwicGx1Z2luIGxpc3RcIiBvbmNlIGl0cyBpbWFnZSBidWlsZCBjb21wbGV0ZXMnIH0pLFxuICAgICAgICAgIGxpc3Q6ICdVc2UgXCJwbHVnaW4gbGlzdFwiIHRvIHNlZSBhbGwgcGx1Z2lucycsXG4gICAgICAgIH0pO1xuXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBjb21tYW5kOiAndXBsb2FkLXBsdWdpbicsXG4gICAgICAgICAgICBleGVjdXRpb25JZCxcbiAgICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcbiAgICAgICAgICAgIHB1YmxpYzogb3B0aW9ucy5wdWJsaWMsXG4gICAgICAgICAgICB2ZXJpZnlTc2w6IG9wdGlvbnMudmVyaWZ5U3NsLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-plugin.d.ts","
|
|
1
|
+
{"version":3,"file":"validate-plugin.d.ts","sources":["../../src/commands/validate-plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EACrH,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EACwF,KAAK,aAAa,EAChH,MAAM,4BAA4B,CAAC;AAIpC,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,kBAAkB,CAAkC,CAAC;AAEvG,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8DAA8D;IAC9D,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,yDAAyD;IACzD,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,+FAA+F;IAC/F,UAAU,EAAE,gBAAgB,EAAE,CAAC;CAChC;AAED,0GAA0G;AAC1G,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,SAAQ,GAAG,mBAAmB,EAAE,CAqB7F;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,4FAA4F;AAC5F,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWvG;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG;IAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAAC,iBAAiB,EAAE,aAAa,EAAE,CAAA;CAAE,CAKvH;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAgBhE;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsDrD"}
|
|
@@ -157,4 +157,4 @@ export function validatePlugin(program) {
|
|
|
157
157
|
}
|
|
158
158
|
});
|
|
159
159
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3ZhbGlkYXRlLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUNMLHlCQUF5QixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSwwQkFBMEIsR0FFNUYsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQztBQUM5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEcsT0FBTyxFQUNMLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEdBQzVGLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztBQUV6Qyx1RkFBdUY7QUFDdkYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW9DLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFjdkcsMEdBQTBHO0FBQzFHLE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxHQUFXLEVBQUUsR0FBRyxHQUFHLEtBQUs7SUFDcEUsTUFBTSxHQUFHLEdBQTBCLEVB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LENBQUMsT0FBTyxFQUFFO2dCQUM5RixLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUU7YUFDckQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBIRVVSSVNUSUNTX01BWF9GSUxFX0JZVEVTLCBsaW50UGx1Z2luRG9ja2VyZmlsZSwgbGludFBsdWdpblNwZWMsIHNjYW5QbHVnaW5Tb3VyY2VIZXVyaXN0aWNzLFxuICB0eXBlIERldGVjdGVkRmllbGQsIHR5cGUgSGV1cmlzdGljRmluZGluZywgdHlwZSBIZXVyaXN0aWNzSW5wdXRGaWxlLCB0eXBlIFBsdWdpbkNhdGFsb2dGaWVsZCwgdHlwZSBQbHVnaW5MaW50RmluZGluZyxcbn0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50RXJyb3IsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHtcbiAgU09VUkNFX0xBQkVMUywgZGV0ZWN0UGFja2FnZUNhdGFsb2csIGZvcm1hdENhdGFsb2dWYWx1ZSwgcGFja2FnZVByb2JsZW1zLCByZWFkUGx1Z2luUGFja2FnZSwgdHlwZSBQbHVnaW5QYWNrYWdlLFxufSBmcm9tICcuLi91dGlscy9wbHVnaW4tcGFja2FnZS5qcyc7XG5cbmNvbnN0IHsgZGltLCBncmVlbiwgcmVkLCB5ZWxsb3cgfSA9IHBpY287XG5cbi8qKiBGaWVsZHMgYSB2ZXJzaW9uIG5lZWRzIGJlZm9yZSBhIHB1Ymxpc2ggcmVxdWVzdCBpcyBhY2NlcHRlZCAodGhlIHB1Ymxpc2ggZ2F0ZXMpLiAqL1xuZXhwb3J0IGNvbnN0IFBVQkxJU0hfUkVRVUlSRURfRklFTERTOiBSZWFkb25seVNldDxQbHVnaW5DYXRhbG9nRmllbGQ+ID0gbmV3IFNldChbJ2xpY2Vuc2UnLCAncmVhZG1lJ10pO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25SZXBvcnQge1xuICBwa2c6IFBsdWdpblBhY2thZ2U7XG4gIC8qKiBXaGF0IHRoZSB1cGxvYWQgd291bGQgcmVmdXNlLiAqL1xuICBwcm9ibGVtczogc3RyaW5nW107XG4gIC8qKiB0ZXN0LXBsdWdpbnMuc2gtZXF1aXZhbGVudCBmaW5kaW5ncyAob25seSB3aGVuIGxpbnRlZCkuICovXG4gIGxpbnQ6IFBsdWdpbkxpbnRGaW5kaW5nW107XG4gIC8qKiBUaGUgY2F0YWxvZyBmaWVsZHMgYXMgdGhlIHNlcnZlciB3aWxsIGRldGVjdCB0aGVtLiAqL1xuICBmaWVsZHM6IERldGVjdGVkRmllbGRbXTtcbiAgLyoqIFRoZSBtYWx3YXJlIGhldXJpc3RpY3MgdGhlIGFub255bW91cy1zdWJtaXNzaW9uIGdhdGUgcnVuczogYGhpZ2hgIGZhaWxzLCBgbWVkaXVtYCB3YXJucy4gKi9cbiAgaGV1cmlzdGljczogSGV1cmlzdGljRmluZGluZ1tdO1xufVxuXG4vKiogRXZlcnkgcmVndWxhciBmaWxlIHVuZGVyIHRoZSBwbHVnaW4gZGlyICh3aGF0IHRoZSB6aXAgd291bGQgY2FycnkpLCBib3VuZGVkIGxpa2UgdGhlIHNlcnZlcidzIHJlYWQuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFBhY2thZ2VGaWxlc0ZvckhldXJpc3RpY3MoZGlyOiBzdHJpbmcsIG1heCA9IDJfMDAwKTogSGV1cmlzdGljc0lucHV0RmlsZVtdIHtcbiAgY29uc3Qgb3V0OiBIZXVyaXN0aWNzSW5wdXRGaWxlW10gPSBbXTtcbiAgY29uc3Qgd2FsayA9IChkOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGZzLnJlYWRkaXJTeW5jKGQsIHsgd2l0aEZpbGVUeXBlczogdHJ1ZSB9KS5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKSkge1xuICAgICAgaWYgKG91dC5sZW5ndGggPj0gbWF4KSByZXR1cm47XG4gICAgICBpZiAoZW50cnkubmFtZSA9PT0gJy5naXQnIHx8IGVudHJ5Lm5hbWUgPT09ICdub2RlX21vZHVsZXMnKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IGZ1bGwgPSBwYXRoLmpvaW4oZCwgZW50cnkubmFtZSk7XG4gICAgICBpZiAoZW50cnkuaXNEaXJlY3RvcnkoKSkge3dhbGsoZnVsbCk7fSBlbHNlIGlmIChlbnRyeS5pc0ZpbGUoKSkge1xuICAgICAgICBjb25zdCBmZCA9IGZzLm9wZW5TeW5jKGZ1bGwsICdyJyk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jKEhFVVJJU1RJQ1NfTUFYX0ZJTEVfQllURVMgKyAxKTtcbiAgICAgICAgICBjb25zdCBuID0gZnMucmVhZFN5bmMoZmQsIGJ1ZiwgMCwgYnVmLmxlbmd0aCwgMCk7XG4gICAgICAgICAgb3V0LnB1c2goeyBwYXRoOiBwYXRoLnJlbGF0aXZlKGRpciwgZnVsbCkuc3BsaXQocGF0aC5zZXApLmpvaW4oJy8nKSwgY29udGVudDogYnVmLnN1YmFycmF5KDAsIG4pIH0pO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGZzLmNsb3NlU3luYyhmZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHdhbGsoZGlyKTtcbiAgcmV0dXJuIG91dDtcbn1cblxuLyoqIEEgaGV1cmlzdGljIGZpbmRpbmcgYXMgb25lIGxpbmUgb2YgQ0xJIG91dHB1dC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRIZXVyaXN0aWMoZjogSGV1cmlzdGljRmluZGluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgaGV1cmlzdGljczogJHtmLm1lc3NhZ2V9ICgke2YucGF0aH06JHtmLmxpbmV9KSDigJQgJHtmLmV4Y2VycHR9YDtcbn1cblxuLyoqIFZhbGlkYXRlIGEgcGx1Z2luIGRpcmVjdG9yeTogc2VydmVyIGNoZWNrcywgb3B0aW9uYWwgY2F0YWxvZyBsaW50LCBjYXRhbG9nIGRldGVjdGlvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2YWxpZGF0ZVBsdWdpbkRpcihkaXI6IHN0cmluZywgb3B0czogeyBsaW50OiBib29sZWFuIH0pOiBQcm9taXNlPFZhbGlkYXRpb25SZXBvcnQ+IHtcbiAgY29uc3QgcGtnID0gcmVhZFBsdWdpblBhY2thZ2UoZGlyKTtcbiAgY29uc3QgcHJvYmxlbXMgPSBhd2FpdCBwYWNrYWdlUHJvYmxlbXMocGtnKTtcbiAgY29uc3QgbGludDogUGx1Z2luTGludEZpbmRpbmdbXSA9IFtdO1xuICBpZiAob3B0cy5saW50KSB7XG4gICAgY29uc3Qgc3BlY1RleHQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHBrZy5kaXIsIHBrZy5zcGVjRmlsZSksICd1dGYtOCcpO1xuICAgIGxpbnQucHVzaCguLi5saW50UGx1Z2luU3BlYyhwa2cucmF3U3BlYywgc3BlY1RleHQpKTtcbiAgICBpZiAocGtnLmRvY2tlcmZpbGVDb250ZW50ICE9PSBudWxsKSBsaW50LnB1c2goLi4ubGludFBsdWdpbkRvY2tlcmZpbGUocGtnLmRvY2tlcmZpbGVDb250ZW50KSk7XG4gIH1cbiAgY29uc3QgaGV1cmlzdGljcyA9IHNjYW5QbHVnaW5Tb3VyY2VIZXVyaXN0aWNzKHJlYWRQYWNrYWdlRmlsZXNGb3JIZXVyaXN0aWNzKHBrZy5kaXIpKS5maW5kaW5ncztcbiAgcmV0dXJuIHsgcGtnLCBwcm9ibGVtcywgbGludCwgZmllbGRzOiBkZXRlY3RQYWNrYWdlQ2F0YWxvZyhwa2cpLCBoZXVyaXN0aWNzIH07XG59XG5cbi8qKiBJbnZhbGlkIGRldGVjdGVkIHZhbHVlcyAoYmxhbmtlZCBieSB0aGUgc2VydmVyKSBhbmQgcHVibGlzaC1yZXF1aXJlZCBmaWVsZHMgbGVmdCBlbXB0eS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXRhbG9nSXNzdWVzKGZpZWxkczogRGV0ZWN0ZWRGaWVsZFtdKTogeyBpbnZhbGlkOiBEZXRlY3RlZEZpZWxkW107IG1pc3NpbmdGb3JQdWJsaXNoOiBEZXRlY3RlZEZpZWxkW10gfSB7XG4gIHJldHVybiB7XG4gICAgaW52YWxpZDogZmllbGRzLmZpbHRlcihmID0+IGYuZXJyb3IpLFxuICAgIG1pc3NpbmdGb3JQdWJsaXNoOiBmaWVsZHMuZmlsdGVyKGYgPT4gIWYuZXJyb3IgJiYgZi52YWx1ZSA9PT0gbnVsbCAmJiBQVUJMSVNIX1JFUVVJUkVEX0ZJRUxEUy5oYXMoZi5maWVsZCkpLFxuICB9O1xufVxuXG4vKiogUHJpbnQgZWFjaCBjYXRhbG9nIGZpZWxkIHdpdGggaXRzIHZhbHVlIChvciB3aHkgaXQncyBibGFuaykgYW5kIHdoZXJlIGl0IGNhbWUgZnJvbS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludENhdGFsb2dSZXBvcnQoZmllbGRzOiBEZXRlY3RlZEZpZWxkW10pOiB2b2lkIHtcbiAgcHJpbnRTZWN0aW9uKCdDYXRhbG9nIG1ldGFkYXRhJywgJ2FzIHRoZSBzZXJ2ZXIgd2lsbCBkZXRlY3QgaXQgKHNwZWMg4oaSIFJFQURNRSDihpIgRG9ja2VyZmlsZSBsYWJlbCDihpIgZ2VuZXJhdGVkKScpO1xuICBjb25zdCB3aWR0aCA9IE1hdGgubWF4KC4uLmZpZWxkcy5tYXAoZiA9PiBmLmZpZWxkLmxlbmd0aCkpO1xuICBmb3IgKGNvbnN0IGYgb2YgZmllbGRzKSB7XG4gICAgY29uc3QgbGFiZWwgPSBmLmZpZWxkLnBhZEVuZCh3aWR0aCk7XG4gICAgY29uc3Qgc291cmNlID0gZi5zb3VyY2UgPyBkaW0oYFske1NPVVJDRV9MQUJFTFNbZi5zb3VyY2VdID8/IGYuc291cmNlfV1gKSA6ICcnO1xuICAgIGlmIChmLmVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAke3JlZCgn4pyXJyl9ICR7bGFiZWx9ICAke3JlZChgaW52YWxpZCDigJQgJHtmLmVycm9yfWApfSAke3NvdXJjZX1gKTtcbiAgICB9IGVsc2UgaWYgKGYudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHJlcXVpcmVkID0gUFVCTElTSF9SRVFVSVJFRF9GSUVMRFMuaGFzKGYuZmllbGQpO1xuICAgICAgY29uc29sZS5sb2coYCAgJHtyZXF1aXJlZCA/IHllbGxvdygnIScpIDogZGltKCfCtycpfSAke2xhYmVsfSAgJHtkaW0oJyhlbXB0eSknKX0ke3JlcXVpcmVkID8geWVsbG93KCcgIHJlcXVpcmVkIHRvIHB1Ymxpc2gnKSA6ICcnfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2dyZWVuKCfinJMnKX0gJHtsYWJlbH0gICR7Zm9ybWF0Q2F0YWxvZ1ZhbHVlKGYudmFsdWUpfSAke3NvdXJjZX1gKTtcbiAgICB9XG4gIH1cbiAgY29uc29sZS5sb2coJycpO1xufVxuXG5pbnRlcmZhY2UgVmFsaWRhdGVQbHVnaW5PcHRpb25zIHtcbiAgZGlyOiBzdHJpbmc7XG4gIGxpbnQ/OiBib29sZWFuO1xuICBqc29uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBgcGx1Z2luIHZhbGlkYXRlYCDigJQgdGhlIHVwbG9hZCdzIG93biBjaGVja3MgYWdhaW5zdCBhIExPQ0FMIHBsdWdpblxuICogZGlyZWN0b3J5ICh0aGUgc2VydmVyJ3MgWm9kIHNwZWMvY29uZmlnIHNjaGVtYXMgYW5kIHRlbXBsYXRlIGNvbnRyYWN0LCBzaGFyZWRcbiAqIGZyb20gYXBpLWNvcmUpLCBwbHVzIGEgcmVwb3J0IG9mIGV2ZXJ5IGNhdGFsb2cgZmllbGQ6IGl0cyBkZXRlY3RlZCB2YWx1ZSwgaXRzXG4gKiBzb3VyY2UsIGFuZCB3aGV0aGVyIGl0IHdvdWxkIGJlIGVtcHR5IG9yIGludmFsaWQuIGAtLWxpbnRgIGFkZHMgdGhlXG4gKiBjYXRhbG9nJ3MgRG9ja2VyZmlsZSBydWxlcyAodGVzdC1wbHVnaW5zLnNoKS4gRXhpdHMgbm9uLXplcm8gb24gYW55IHByb2JsZW0sXG4gKiBhbnkgaW52YWxpZCBkZXRlY3RlZCBjYXRhbG9nIHZhbHVlIG9yIGFueSBsaW50IGVycm9yIChDSS1mcmllbmRseSkuXG4gKlxuICogVXNhZ2U6XG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHZhbGlkYXRlIC0tZGlyIC4vbXktbGludGVyXG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHZhbGlkYXRlIC0tZGlyIC4vbXktbGludGVyIC0tbGludCAtLWpzb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGx1Z2luKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgcHJvZ3JhbVxuICAgIC5jb21tYW5kKCd2YWxpZGF0ZScpXG4gICAgLmRlc2NyaXB0aW9uKCdWYWxpZGF0ZSBhIGxvY2FsIHBsdWdpbiB3aXRoIHRoZSBzZXJ2ZXJcXCdzIHNjaGVtYXMgYW5kIHJlcG9ydCBpdHMgY2F0YWxvZyBtZXRhZGF0YScpXG4gICAgLm9wdGlvbignLS1kaXIgPHBhdGg+JywgJ1BhdGggdG8gdGhlIHBsdWdpbiBkaXJlY3RvcnknLCAnLicpXG4gICAgLm9wdGlvbignLS1saW50JywgJ0Fsc28gYXBwbHkgdGhlIGNhdGFsb2dcXCdzIERvY2tlcmZpbGUgYW5kIHNwZWMgcnVsZXMgKHRlc3QtcGx1Z2lucy5zaCknLCBmYWxzZSlcbiAgICAub3B0aW9uKCctLWpzb24nLCAnUHJpbnQgdGhlIHJlcG9ydCBhcyBKU09OJywgZmFsc2UpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9uczogVmFsaWRhdGVQbHVnaW5PcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignVmFsaWRhdGUgUGx1Z2luJywgdW5kZWZpbmVkLCB7IHF1aWV0OiBvcHRpb25zLmpzb24gfSk7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXBvcnQgPSBhd2FpdCB2YWxpZGF0ZVBsdWdpbkRpcihvcHRpb25zLmRpciwgeyBsaW50OiAhIW9wdGlvbnMubGludCB9KTtcbiAgICAgICAgY29uc3QgeyBpbnZhbGlkLCBtaXNzaW5nRm9yUHVibGlzaCB9ID0gY2F0YWxvZ0lzc3VlcyhyZXBvcnQuZmllbGRzKTtcbiAgICAgICAgY29uc3QgbGludEVycm9ycyA9IHJlcG9ydC5saW50LmZpbHRlcihsID0+IGwubGV2ZWwgPT09ICdlcnJvcicpO1xuICAgICAgICBjb25zdCBoaWdoSGV1cmlzdGljcyA9IHJlcG9ydC5oZXVyaXN0aWNzLmZpbHRlcihoID0+IGguc2V2ZXJpdHkgPT09ICdoaWdoJyk7XG4gICAgICAgIGNvbnN0IGZhaWxlZCA9IHJlcG9ydC5wcm9ibGVtcy5sZW5ndGggPiAwIHx8IGludmFsaWQubGVuZ3RoID4gMCB8fCBsaW50RXJyb3JzLmxlbmd0aCA+IDAgfHwgaGlnaEhldXJpc3RpY3MubGVuZ3RoID4gMDtcblxuICAgICAgICBpZiAob3B0aW9ucy5qc29uKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgdmFsaWQ6ICFmYWlsZWQsXG4gICAgICAgICAgICBwcm9ibGVtczogcmVwb3J0LnByb2JsZW1zLFxuICAgICAgICAgICAgbGludDogcmVwb3J0LmxpbnQsXG4gICAgICAgICAgICBoZXVyaXN0aWNzOiByZXBvcnQuaGV1cmlzdGljcyxcbiAgICAgICAgICAgIGNhdGFsb2c6IHJlcG9ydC5maWVsZHMsXG4gICAgICAgICAgICBtaXNzaW5nRm9yUHVibGlzaDogbWlzc2luZ0ZvclB1Ymxpc2gubWFwKGYgPT4gZi5maWVsZCksXG4gICAgICAgICAgfSwgbnVsbCwgMikpO1xuICAgICAgICAgIGlmIChmYWlsZWQpIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwcmludENhdGFsb2dSZXBvcnQocmVwb3J0LmZpZWxkcyk7XG4gICAgICAgIGZvciAoY29uc3QgdyBvZiByZXBvcnQubGludC5maWx0ZXIobCA9PiBsLmxldmVsID09PSAnd2FybmluZycpKSBwcmludFdhcm5pbmcody5tZXNzYWdlKTtcbiAgICAgICAgZm9yIChjb25zdCBoIG9mIHJlcG9ydC5oZXVyaXN0aWNzLmZpbHRlcih4ID0+IHguc2V2ZXJpdHkgPT09ICdtZWRpdW0nKSkgcHJpbnRXYXJuaW5nKGZvcm1hdEhldXJpc3RpYyhoKSk7XG4gICAgICAgIGlmIChtaXNzaW5nRm9yUHVibGlzaC5sZW5ndGgpIHByaW50V2FybmluZyhgTmVlZGVkIGJlZm9yZSBhIHB1Ymxpc2ggcmVxdWVzdDogJHttaXNzaW5nRm9yUHVibGlzaC5tYXAoZiA9PiBmLmZpZWxkKS5qb2luKCcsICcpfWApO1xuICAgICAgICBpZiAoIWZhaWxlZCkge1xuICAgICAgICAgIHByaW50U3VjY2VzcyhgUGx1Z2luICcke1N0cmluZyhyZXBvcnQucGtnLnJhd1NwZWMubmFtZSl9JyBpcyB2YWxpZGAsIHsgZXhlY3V0aW9uSWQsIGJ1aWxkVHlwZTogcmVwb3J0LnBrZy5idWlsZFR5cGUgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFsbCA9IFtcbiAgICAgICAgICAuLi5yZXBvcnQucHJvYmxlbXMsXG4gICAgICAgICAgLi4uaW52YWxpZC5tYXAoZiA9PiBgY2F0YWxvZzogJHtmLmZpZWxkfSB3b3VsZCBiZSBibGFuayDigJQgJHtmLmVycm9yfWApLFxuICAgICAgICAgIC4uLmxpbnRFcnJvcnMubWFwKGwgPT4gbC5tZXNzYWdlKSxcbiAgICAgICAgICAuLi5oaWdoSGV1cmlzdGljcy5tYXAoZm9ybWF0SGV1cmlzdGljKSxcbiAgICAgICAgXTtcbiAgICAgICAgcHJpbnRXYXJuaW5nKGBGb3VuZCAke2FsbC5sZW5ndGh9IHByb2JsZW0ocyk6YCk7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBhbGwpIHByaW50RXJyb3IoYCAg4oCiICR7cH1gKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVyciwgZXJyIGluc3RhbmNlb2YgVmFsaWRhdGlvbkVycm9yID8gRVJST1JfQ09ERVMuVkFMSURBVElPTiA6IEVSUk9SX0NPREVTLkdFTkVSQUwsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdwbHVnaW4gdmFsaWRhdGUnLCBleGVjdXRpb25JZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcGx1Z2luLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdmFsaWRhdGUtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQ0wseUJBQXlCLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLDBCQUEwQixHQUU1RixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsYUFBYSxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsR0FDNUYsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRXpDLHVGQUF1RjtBQUN2RixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBb0MsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQWN2RywwR0FBMEc7QUFDMUcsTUFBTSxVQUFVLDZCQUE2QixDQUFDLEdBQVcsRUFBRSxHQUFHLEdBQUcsS0FBSztJQUNwRSxNQUFNLEdBQUcsR0FBMEIsRUFBRSxDQUFDO0lBQ3RDLE1B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Z0JBQzlGLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSztnQkFDM0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRTthQUNyRCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIEhFVVJJU1RJQ1NfTUFYX0ZJTEVfQllURVMsIGxpbnRQbHVnaW5Eb2NrZXJmaWxlLCBsaW50UGx1Z2luU3BlYywgc2NhblBsdWdpblNvdXJjZUhldXJpc3RpY3MsXG4gIHR5cGUgRGV0ZWN0ZWRGaWVsZCwgdHlwZSBIZXVyaXN0aWNGaW5kaW5nLCB0eXBlIEhldXJpc3RpY3NJbnB1dEZpbGUsIHR5cGUgUGx1Z2luQ2F0YWxvZ0ZpZWxkLCB0eXBlIFBsdWdpbkxpbnRGaW5kaW5nLFxufSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciwgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5pbXBvcnQge1xuICBTT1VSQ0VfTEFCRUxTLCBkZXRlY3RQYWNrYWdlQ2F0YWxvZywgZm9ybWF0Q2F0YWxvZ1ZhbHVlLCBwYWNrYWdlUHJvYmxlbXMsIHJlYWRQbHVnaW5QYWNrYWdlLCB0eXBlIFBsdWdpblBhY2thZ2UsXG59IGZyb20gJy4uL3V0aWxzL3BsdWdpbi1wYWNrYWdlLmpzJztcblxuY29uc3QgeyBkaW0sIGdyZWVuLCByZWQsIHllbGxvdyB9ID0gcGljbztcblxuLyoqIEZpZWxkcyBhIHZlcnNpb24gbmVlZHMgYmVmb3JlIGEgcHVibGlzaCByZXF1ZXN0IGlzIGFjY2VwdGVkICh0aGUgcHVibGlzaCBnYXRlcykuICovXG5leHBvcnQgY29uc3QgUFVCTElTSF9SRVFVSVJFRF9GSUVMRFM6IFJlYWRvbmx5U2V0PFBsdWdpbkNhdGFsb2dGaWVsZD4gPSBuZXcgU2V0KFsnbGljZW5zZScsICdyZWFkbWUnXSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJlcG9ydCB7XG4gIHBrZzogUGx1Z2luUGFja2FnZTtcbiAgLyoqIFdoYXQgdGhlIHVwbG9hZCB3b3VsZCByZWZ1c2UuICovXG4gIHByb2JsZW1zOiBzdHJpbmdbXTtcbiAgLyoqIHRlc3QtcGx1Z2lucy5zaC1lcXVpdmFsZW50IGZpbmRpbmdzIChvbmx5IHdoZW4gbGludGVkKS4gKi9cbiAgbGludDogUGx1Z2luTGludEZpbmRpbmdbXTtcbiAgLyoqIFRoZSBjYXRhbG9nIGZpZWxkcyBhcyB0aGUgc2VydmVyIHdpbGwgZGV0ZWN0IHRoZW0uICovXG4gIGZpZWxkczogRGV0ZWN0ZWRGaWVsZFtdO1xuICAvKiogVGhlIG1hbHdhcmUgaGV1cmlzdGljcyB0aGUgYW5vbnltb3VzLXN1Ym1pc3Npb24gZ2F0ZSBydW5zOiBgaGlnaGAgZmFpbHMsIGBtZWRpdW1gIHdhcm5zLiAqL1xuICBoZXVyaXN0aWNzOiBIZXVyaXN0aWNGaW5kaW5nW107XG59XG5cbi8qKiBFdmVyeSByZWd1bGFyIGZpbGUgdW5kZXIgdGhlIHBsdWdpbiBkaXIgKHdoYXQgdGhlIHppcCB3b3VsZCBjYXJyeSksIGJvdW5kZWQgbGlrZSB0aGUgc2VydmVyJ3MgcmVhZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWFkUGFja2FnZUZpbGVzRm9ySGV1cmlzdGljcyhkaXI6IHN0cmluZywgbWF4ID0gMl8wMDApOiBIZXVyaXN0aWNzSW5wdXRGaWxlW10ge1xuICBjb25zdCBvdXQ6IEhldXJpc3RpY3NJbnB1dEZpbGVbXSA9IFtdO1xuICBjb25zdCB3YWxrID0gKGQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIGZvciAoY29uc3QgZW50cnkgb2YgZnMucmVhZGRpclN5bmMoZCwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpKSB7XG4gICAgICBpZiAob3V0Lmxlbmd0aCA+PSBtYXgpIHJldHVybjtcbiAgICAgIGlmIChlbnRyeS5uYW1lID09PSAnLmdpdCcgfHwgZW50cnkubmFtZSA9PT0gJ25vZGVfbW9kdWxlcycpIGNvbnRpbnVlO1xuICAgICAgY29uc3QgZnVsbCA9IHBhdGguam9pbihkLCBlbnRyeS5uYW1lKTtcbiAgICAgIGlmIChlbnRyeS5pc0RpcmVjdG9yeSgpKSB7d2FsayhmdWxsKTt9IGVsc2UgaWYgKGVudHJ5LmlzRmlsZSgpKSB7XG4gICAgICAgIGNvbnN0IGZkID0gZnMub3BlblN5bmMoZnVsbCwgJ3InKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2MoSEVVUklTVElDU19NQVhfRklMRV9CWVRFUyArIDEpO1xuICAgICAgICAgIGNvbnN0IG4gPSBmcy5yZWFkU3luYyhmZCwgYnVmLCAwLCBidWYubGVuZ3RoLCAwKTtcbiAgICAgICAgICBvdXQucHVzaCh7IHBhdGg6IHBhdGgucmVsYXRpdmUoZGlyLCBmdWxsKS5zcGxpdChwYXRoLnNlcCkuam9pbignLycpLCBjb250ZW50OiBidWYuc3ViYXJyYXkoMCwgbikgfSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgZnMuY2xvc2VTeW5jKGZkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgd2FsayhkaXIpO1xuICByZXR1cm4gb3V0O1xufVxuXG4vKiogQSBoZXVyaXN0aWMgZmluZGluZyBhcyBvbmUgbGluZSBvZiBDTEkgb3V0cHV0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEhldXJpc3RpYyhmOiBIZXVyaXN0aWNGaW5kaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBoZXVyaXN0aWNzOiAke2YubWVzc2FnZX0gKCR7Zi5wYXRofToke2YubGluZX0pIOKAlCAke2YuZXhjZXJwdH1gO1xufVxuXG4vKiogVmFsaWRhdGUgYSBwbHVnaW4gZGlyZWN0b3J5OiBzZXJ2ZXIgY2hlY2tzLCBvcHRpb25hbCBjYXRhbG9nIGxpbnQsIGNhdGFsb2cgZGV0ZWN0aW9uLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlUGx1Z2luRGlyKGRpcjogc3RyaW5nLCBvcHRzOiB7IGxpbnQ6IGJvb2xlYW4gfSk6IFByb21pc2U8VmFsaWRhdGlvblJlcG9ydD4ge1xuICBjb25zdCBwa2cgPSByZWFkUGx1Z2luUGFja2FnZShkaXIpO1xuICBjb25zdCBwcm9ibGVtcyA9IGF3YWl0IHBhY2thZ2VQcm9ibGVtcyhwa2cpO1xuICBjb25zdCBsaW50OiBQbHVnaW5MaW50RmluZGluZ1tdID0gW107XG4gIGlmIChvcHRzLmxpbnQpIHtcbiAgICBjb25zdCBzcGVjVGV4dCA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocGtnLmRpciwgcGtnLnNwZWNGaWxlKSwgJ3V0Zi04Jyk7XG4gICAgbGludC5wdXNoKC4uLmxpbnRQbHVnaW5TcGVjKHBrZy5yYXdTcGVjLCBzcGVjVGV4dCkpO1xuICAgIGlmIChwa2cuZG9ja2VyZmlsZUNvbnRlbnQgIT09IG51bGwpIGxpbnQucHVzaCguLi5saW50UGx1Z2luRG9ja2VyZmlsZShwa2cuZG9ja2VyZmlsZUNvbnRlbnQpKTtcbiAgfVxuICBjb25zdCBoZXVyaXN0aWNzID0gc2NhblBsdWdpblNvdXJjZUhldXJpc3RpY3MocmVhZFBhY2thZ2VGaWxlc0ZvckhldXJpc3RpY3MocGtnLmRpcikpLmZpbmRpbmdzO1xuICByZXR1cm4geyBwa2csIHByb2JsZW1zLCBsaW50LCBmaWVsZHM6IGRldGVjdFBhY2thZ2VDYXRhbG9nKHBrZyksIGhldXJpc3RpY3MgfTtcbn1cblxuLyoqIEludmFsaWQgZGV0ZWN0ZWQgdmFsdWVzIChibGFua2VkIGJ5IHRoZSBzZXJ2ZXIpIGFuZCBwdWJsaXNoLXJlcXVpcmVkIGZpZWxkcyBsZWZ0IGVtcHR5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhdGFsb2dJc3N1ZXMoZmllbGRzOiBEZXRlY3RlZEZpZWxkW10pOiB7IGludmFsaWQ6IERldGVjdGVkRmllbGRbXTsgbWlzc2luZ0ZvclB1Ymxpc2g6IERldGVjdGVkRmllbGRbXSB9IHtcbiAgcmV0dXJuIHtcbiAgICBpbnZhbGlkOiBmaWVsZHMuZmlsdGVyKGYgPT4gZi5lcnJvciksXG4gICAgbWlzc2luZ0ZvclB1Ymxpc2g6IGZpZWxkcy5maWx0ZXIoZiA9PiAhZi5lcnJvciAmJiBmLnZhbHVlID09PSBudWxsICYmIFBVQkxJU0hfUkVRVUlSRURfRklFTERTLmhhcyhmLmZpZWxkKSksXG4gIH07XG59XG5cbi8qKiBQcmludCBlYWNoIGNhdGFsb2cgZmllbGQgd2l0aCBpdHMgdmFsdWUgKG9yIHdoeSBpdCdzIGJsYW5rKSBhbmQgd2hlcmUgaXQgY2FtZSBmcm9tLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50Q2F0YWxvZ1JlcG9ydChmaWVsZHM6IERldGVjdGVkRmllbGRbXSk6IHZvaWQge1xuICBwcmludFNlY3Rpb24oJ0NhdGFsb2cgbWV0YWRhdGEnLCAnYXMgdGhlIHNlcnZlciB3aWxsIGRldGVjdCBpdCAoc3BlYyDihpIgUkVBRE1FIOKGkiBEb2NrZXJmaWxlIGxhYmVsIOKGkiBnZW5lcmF0ZWQpJyk7XG4gIGNvbnN0IHdpZHRoID0gTWF0aC5tYXgoLi4uZmllbGRzLm1hcChmID0+IGYuZmllbGQubGVuZ3RoKSk7XG4gIGZvciAoY29uc3QgZiBvZiBmaWVsZHMpIHtcbiAgICBjb25zdCBsYWJlbCA9IGYuZmllbGQucGFkRW5kKHdpZHRoKTtcbiAgICBjb25zdCBzb3VyY2UgPSBmLnNvdXJjZSA/IGRpbShgWyR7U09VUkNFX0xBQkVMU1tmLnNvdXJjZV0gPz8gZi5zb3VyY2V9XWApIDogJyc7XG4gICAgaWYgKGYuZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7cmVkKCfinJcnKX0gJHtsYWJlbH0gICR7cmVkKGBpbnZhbGlkIOKAlCAke2YuZXJyb3J9YCl9ICR7c291cmNlfWApO1xuICAgIH0gZWxzZSBpZiAoZi52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgcmVxdWlyZWQgPSBQVUJMSVNIX1JFUVVJUkVEX0ZJRUxEUy5oYXMoZi5maWVsZCk7XG4gICAgICBjb25zb2xlLmxvZyhgICAke3JlcXVpcmVkID8geWVsbG93KCchJykgOiBkaW0oJ8K3Jyl9ICR7bGFiZWx9ICAke2RpbSgnKGVtcHR5KScpfSR7cmVxdWlyZWQgPyB5ZWxsb3coJyAgcmVxdWlyZWQgdG8gcHVibGlzaCcpIDogJyd9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICR7Z3JlZW4oJ+KckycpfSAke2xhYmVsfSAgJHtmb3JtYXRDYXRhbG9nVmFsdWUoZi52YWx1ZSl9ICR7c291cmNlfWApO1xuICAgIH1cbiAgfVxuICBjb25zb2xlLmxvZygnJyk7XG59XG5cbmludGVyZmFjZSBWYWxpZGF0ZVBsdWdpbk9wdGlvbnMge1xuICBkaXI6IHN0cmluZztcbiAgbGludD86IGJvb2xlYW47XG4gIGpzb24/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGBwbHVnaW4gdmFsaWRhdGVgIOKAlCB0aGUgdXBsb2FkJ3Mgb3duIGNoZWNrcyBhZ2FpbnN0IGEgTE9DQUwgcGx1Z2luXG4gKiBkaXJlY3RvcnkgKHRoZSBzZXJ2ZXIncyBab2Qgc3BlYy9jb25maWcgc2NoZW1hcyBhbmQgdGVtcGxhdGUgY29udHJhY3QsIHNoYXJlZFxuICogZnJvbSBhcGktY29yZSksIHBsdXMgYSByZXBvcnQgb2YgZXZlcnkgY2F0YWxvZyBmaWVsZDogaXRzIGRldGVjdGVkIHZhbHVlLCBpdHNcbiAqIHNvdXJjZSwgYW5kIHdoZXRoZXIgaXQgd291bGQgYmUgZW1wdHkgb3IgaW52YWxpZC4gYC0tbGludGAgYWRkcyB0aGVcbiAqIGNhdGFsb2cncyBEb2NrZXJmaWxlIHJ1bGVzICh0ZXN0LXBsdWdpbnMuc2gpLiBFeGl0cyBub24temVybyBvbiBhbnkgcHJvYmxlbSxcbiAqIGFueSBpbnZhbGlkIGRldGVjdGVkIGNhdGFsb2cgdmFsdWUgb3IgYW55IGxpbnQgZXJyb3IgKENJLWZyaWVuZGx5KS5cbiAqXG4gKiBVc2FnZTpcbiAqICAgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdmFsaWRhdGUgLS1kaXIgLi9teS1saW50ZXJcbiAqICAgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdmFsaWRhdGUgLS1kaXIgLi9teS1saW50ZXIgLS1saW50IC0tanNvblxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQbHVnaW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3ZhbGlkYXRlJylcbiAgICAuZGVzY3JpcHRpb24oJ1ZhbGlkYXRlIGEgbG9jYWwgcGx1Z2luIHdpdGggdGhlIHNlcnZlclxcJ3Mgc2NoZW1hcyBhbmQgcmVwb3J0IGl0cyBjYXRhbG9nIG1ldGFkYXRhJylcbiAgICAub3B0aW9uKCctLWRpciA8cGF0aD4nLCAnUGF0aCB0byB0aGUgcGx1Z2luIGRpcmVjdG9yeScsICcuJylcbiAgICAub3B0aW9uKCctLWxpbnQnLCAnQWxzbyBhcHBseSB0aGUgY2F0YWxvZ1xcJ3MgRG9ja2VyZmlsZSBhbmQgc3BlYyBydWxlcyAodGVzdC1wbHVnaW5zLnNoKScsIGZhbHNlKVxuICAgIC5vcHRpb24oJy0tanNvbicsICdQcmludCB0aGUgcmVwb3J0IGFzIEpTT04nLCBmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBWYWxpZGF0ZVBsdWdpbk9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdWYWxpZGF0ZSBQbHVnaW4nLCB1bmRlZmluZWQsIHsgcXVpZXQ6IG9wdGlvbnMuanNvbiB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IHZhbGlkYXRlUGx1Z2luRGlyKG9wdGlvbnMuZGlyLCB7IGxpbnQ6ICEhb3B0aW9ucy5saW50IH0pO1xuICAgICAgICBjb25zdCB7IGludmFsaWQsIG1pc3NpbmdGb3JQdWJsaXNoIH0gPSBjYXRhbG9nSXNzdWVzKHJlcG9ydC5maWVsZHMpO1xuICAgICAgICBjb25zdCBsaW50RXJyb3JzID0gcmVwb3J0LmxpbnQuZmlsdGVyKGwgPT4gbC5sZXZlbCA9PT0gJ2Vycm9yJyk7XG4gICAgICAgIGNvbnN0IGhpZ2hIZXVyaXN0aWNzID0gcmVwb3J0LmhldXJpc3RpY3MuZmlsdGVyKGggPT4gaC5zZXZlcml0eSA9PT0gJ2hpZ2gnKTtcbiAgICAgICAgY29uc3QgZmFpbGVkID0gcmVwb3J0LnByb2JsZW1zLmxlbmd0aCA+IDAgfHwgaW52YWxpZC5sZW5ndGggPiAwIHx8IGxpbnRFcnJvcnMubGVuZ3RoID4gMCB8fCBoaWdoSGV1cmlzdGljcy5sZW5ndGggPiAwO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICB2YWxpZDogIWZhaWxlZCxcbiAgICAgICAgICAgIHByb2JsZW1zOiByZXBvcnQucHJvYmxlbXMsXG4gICAgICAgICAgICBsaW50OiByZXBvcnQubGludCxcbiAgICAgICAgICAgIGhldXJpc3RpY3M6IHJlcG9ydC5oZXVyaXN0aWNzLFxuICAgICAgICAgICAgY2F0YWxvZzogcmVwb3J0LmZpZWxkcyxcbiAgICAgICAgICAgIG1pc3NpbmdGb3JQdWJsaXNoOiBtaXNzaW5nRm9yUHVibGlzaC5tYXAoZiA9PiBmLmZpZWxkKSxcbiAgICAgICAgICB9LCBudWxsLCAyKSk7XG4gICAgICAgICAgaWYgKGZhaWxlZCkgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaW50Q2F0YWxvZ1JlcG9ydChyZXBvcnQuZmllbGRzKTtcbiAgICAgICAgZm9yIChjb25zdCB3IG9mIHJlcG9ydC5saW50LmZpbHRlcihsID0+IGwubGV2ZWwgPT09ICd3YXJuaW5nJykpIHByaW50V2FybmluZyh3Lm1lc3NhZ2UpO1xuICAgICAgICBmb3IgKGNvbnN0IGggb2YgcmVwb3J0LmhldXJpc3RpY3MuZmlsdGVyKHggPT4geC5zZXZlcml0eSA9PT0gJ21lZGl1bScpKSBwcmludFdhcm5pbmcoZm9ybWF0SGV1cmlzdGljKGgpKTtcbiAgICAgICAgaWYgKG1pc3NpbmdGb3JQdWJsaXNoLmxlbmd0aCkgcHJpbnRXYXJuaW5nKGBOZWVkZWQgYmVmb3JlIGEgcHVibGlzaCByZXF1ZXN0OiAke21pc3NpbmdGb3JQdWJsaXNoLm1hcChmID0+IGYuZmllbGQpLmpvaW4oJywgJyl9YCk7XG4gICAgICAgIGlmICghZmFpbGVkKSB7XG4gICAgICAgICAgcHJpbnRTdWNjZXNzKGBQbHVnaW4gJyR7U3RyaW5nKHJlcG9ydC5wa2cucmF3U3BlYy5uYW1lKX0nIGlzIHZhbGlkYCwgeyBleGVjdXRpb25JZCwgYnVpbGRUeXBlOiByZXBvcnQucGtnLmJ1aWxkVHlwZSB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWxsID0gW1xuICAgICAgICAgIC4uLnJlcG9ydC5wcm9ibGVtcyxcbiAgICAgICAgICAuLi5pbnZhbGlkLm1hcChmID0+IGBjYXRhbG9nOiAke2YuZmllbGR9IHdvdWxkIGJlIGJsYW5rIOKAlCAke2YuZXJyb3J9YCksXG4gICAgICAgICAgLi4ubGludEVycm9ycy5tYXAobCA9PiBsLm1lc3NhZ2UpLFxuICAgICAgICAgIC4uLmhpZ2hIZXVyaXN0aWNzLm1hcChmb3JtYXRIZXVyaXN0aWMpLFxuICAgICAgICBdO1xuICAgICAgICBwcmludFdhcm5pbmcoYEZvdW5kICR7YWxsLmxlbmd0aH0gcHJvYmxlbShzKTpgKTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIGFsbCkgcHJpbnRFcnJvcihgICDigKIgJHtwfWApO1xuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyLCBlcnIgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IgPyBFUlJPUl9DT0RFUy5WQUxJREFUSU9OIDogRVJST1JfQ09ERVMuR0VORVJBTCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3BsdWdpbiB2YWxpZGF0ZScsIGV4ZWN1dGlvbklkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-templates.d.ts","
|
|
1
|
+
{"version":3,"file":"validate-templates.d.ts","sources":["../../src/commands/validate-templates.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkF/D"}
|
|
@@ -112,4 +112,4 @@ function validatePipelineDoc(core, doc) {
|
|
|
112
112
|
const cycles = core.detectCycles(doc, isTpl, (f) => isTpl(f) ? f : null);
|
|
113
113
|
return [...errors, ...cycles];
|
|
114
114
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3ZhbGlkYXRlLXRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLG9CQUFvQixFQUE2QixNQUFNLDRCQUE0QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsOEJBQThCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEksT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFTN0Y7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxPQUFnQjtJQUN2RCxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ25CLFdBQVcsQ0FBQyxxRUFBcUUsQ0FBQztTQUNsRixNQUFNLENBQUMsaUJBQWlCLEVBQUUsb0NBQW9DLENBQUM7U0FDL0QsTUFBTSxDQUFDLHlCQUF5QixFQUFFLGdEQUFnRCxDQUFDO1NBQ25GLE1BQU0sQ0FBQyxlQUFlLEVBQUUseURBQXlELENBQUMsQ0FBQztTQUNuRixNQUFNLENBQUMsS0FBSyxFQUFFLE9BQXdCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQztZQUNILGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7WUFFN0QsTUFBTSxRQUFRLEdBQTRGLEVBQUUsQ0FBQztZQUU3RyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUU3RSx5RUFBeUU7Z0JBQ3pFLE1BQU0sUUFBUSxHQUFHLE9BQVEsR0FBZ0MsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDO2dCQUNsRixNQUFNLE1BQU0sR0FBRyxRQUFRO29CQUNyQixDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztvQkFDOUIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxNQUFNLENBQUMsTUFBTTtvQkFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDckIsU0FBUyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLE1BQU0sR0FBRyxNQUFNLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM3RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sR0FBRyxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBb0MsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDOUcsTUFBTSxHQUFHLEdBQUksR0FBeUMsQ0FBQyxRQUFRLEVBQUUsS0FBSzt1QkFDaEUsR0FBb0QsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQztnQkFDakYsSUFBSSxDQUFDLEdBQUc7b0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLE9BQU8sQ0FBQyxRQUFRLFlBQVksQ0FBQyxDQUFDO2dCQUNwRSxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzlDLElBQUksTUFBTSxDQUFDLE1BQU07b0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxZQUFZLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLENBQUM7WUFFRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbkIsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU87b0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2dCQUNsRixTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixNQUFNLEdBQUcsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQzFCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLGNBQWMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksa0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDcEcsQ0FBQztnQkFDRixNQUFNLEdBQUcsR0FBSSxHQUE0QixDQUFDLE1BQU07dUJBQzFDLEdBQXVDLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztnQkFDM0QsSUFBSSxDQUFDLEdBQUc7b0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLElBQUksSUFBSSxPQUFPLFlBQVksQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLElBQUksTUFBTSxDQUFDLE1BQU07b0JBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLElBQUksSUFBSSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3BGLENBQUM7WUFFRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELE9BQU87WUFDVCxDQUFDO1lBRUQsWUFBWSxDQUFDLFNBQVMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUM5RixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUN6QixVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNyQixLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3JGLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLFdBQVcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDeEMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFO2FBQ3hELENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxpRkFBaUY7QUFDakYsU0FBUyxpQkFBaUIsQ0FBQyxJQUEwQixFQUFFLEdBQVk7SUFDakUsT0FBTyxvQkFBb0IsQ0FBQyxHQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSztRQUMzRixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO0tBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQUMsSUFBeUIsRUFBRSxHQUFZO0lBQ2xFLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FDMUIsQ0FBQyxLQUFLLGFBQWE7UUFDbkIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUN0RCxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pGLE9BQU8sQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgY2hlY2tQbHVnaW5UZW1wbGF0ZXMsIHR5cGUgUGx1Z2luVGVtcGxhdGVFbmdpbmUgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnY29tbWFuZGVyJztcbmltcG9ydCBZQU1MIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCBwcmludFNzbFdhcm5pbmcsIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYywgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciB9IGZyb20gJy4uL3V0aWxzL2Vycm9yLWhhbmRsZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5cbmludGVyZmFjZSBWYWxpZGF0ZU9wdGlvbnMge1xuICBwaXBlbGluZT86IHN0cmluZztcbiAgcGx1Z2luPzogc3RyaW5nO1xuICBmaWxlPzogc3RyaW5nO1xuICB2ZXJpZnlTc2w/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIHRoZSBgdmFsaWRhdGUtdGVtcGxhdGVzYCBjb21tYW5kLlxuICpcbiAqIFVzYWdlOlxuICogICBwaXBlbGluZS1tYW5hZ2VyIHRlbXBsYXRlIHZhbGlkYXRlIC0tcGlwZWxpbmUgPHV1aWQ+XG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgdGVtcGxhdGUgdmFsaWRhdGUgLS1wbHVnaW4gPG5hbWU6dmVyc2lvbj5cbiAqICAgcGlwZWxpbmUtbWFuYWdlciB0ZW1wbGF0ZSB2YWxpZGF0ZSAtLWZpbGUgLi9wbHVnaW4tc3BlYy55YW1sXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlbXBsYXRlc0NvbW1hbmQocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3ZhbGlkYXRlJylcbiAgICAuZGVzY3JpcHRpb24oJ1BhcnNlIGFuZCB2YWxpZGF0ZSB7eyAuLi4gfX0gdGVtcGxhdGVzIGluIGEgcGlwZWxpbmUgb3IgcGx1Z2luIHNwZWMnKVxuICAgIC5vcHRpb24oJy0tcGlwZWxpbmUgPGlkPicsICdWYWxpZGF0ZSB0aGUgcGlwZWxpbmUgd2l0aCB0aGlzIElEJylcbiAgICAub3B0aW9uKCctLXBsdWdpbiA8bmFtZTp2ZXJzaW9uPicsICdWYWxpZGF0ZSB0aGUgcGx1Z2luIHdpdGggdGhpcyBuYW1lIGFuZCB2ZXJzaW9uJylcbiAgICAub3B0aW9uKCctLWZpbGUgPHBhdGg+JywgJ1ZhbGlkYXRlIGEgbG9jYWwgcGx1Z2luLXNwZWMueWFtbCBvciBwaXBlbGluZS5qc29uIGZpbGUnKSlcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBWYWxpZGF0ZU9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdWYWxpZGF0ZSBUZW1wbGF0ZXMnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnBpcGVsaW5lICYmICFvcHRpb25zLnBsdWdpbiAmJiAhb3B0aW9ucy5maWxlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPbmUgb2YgLS1waXBlbGluZSwgLS1wbHVnaW4sIG9yIC0tZmlsZSBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29yZSA9IGF3YWl0IGltcG9ydCgnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtY29yZScpO1xuXG4gICAgICAgIGNvbnN0IHByb2JsZW1zOiBBcnJheTx7IHNvdXJjZTogc3RyaW5nOyBlcnJvcnM6IHsgZmllbGQ/OiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgY29kZT86IHN0cmluZyB9W10gfT4gPSBbXTtcblxuICAgICAgICBpZiAob3B0aW9ucy5maWxlKSB7XG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLnJlc29sdmUob3B0aW9ucy5maWxlKTtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgICBjb25zdCBkb2MgPSBmaWxlUGF0aC5lbmRzV2l0aCgnLmpzb24nKSA/IEpTT04ucGFyc2UodGV4dCkgOiBZQU1MLnBhcnNlKHRleHQpO1xuXG4gICAgICAgICAgLy8gR3Vlc3M6IGlmIGBwbHVnaW5UeXBlYCBpcyBwcmVzZW50LCB0cmVhdCBhcyBwbHVnaW4gc3BlYzsgZWxzZSBwaXBlbGluZVxuICAgICAgICAgIGNvbnN0IGlzUGx1Z2luID0gdHlwZW9mIChkb2MgYXMgeyBwbHVnaW5UeXBlPzogdW5rbm93biB9KS5wbHVnaW5UeXBlID09PSAnc3RyaW5nJztcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSBpc1BsdWdpblxuICAgICAgICAgICAgPyB2YWxpZGF0ZVBsdWdpbkRvYyhjb3JlLCBkb2MpXG4gICAgICAgICAgICA6IHZhbGlkYXRlUGlwZWxpbmVEb2MoY29yZSwgZG9jKTtcbiAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCkgcHJvYmxlbXMucHVzaCh7IHNvdXJjZTogZmlsZVBhdGgsIGVycm9ycyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnBpcGVsaW5lKSB7XG4gICAgICAgICAgcHJpbnRJbmZvKCdGZXRjaGluZyBwaXBlbGluZScsIHsgaWQ6IG9wdGlvbnMucGlwZWxpbmUgfSk7XG4gICAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICAgICAgICAgIGNvbnN0IGNmZyA9IGNsaWVudC5nZXRDb25maWcoKTtcbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBjbGllbnQuZ2V0PHsgcGlwZWxpbmU/OiB7IHByb3BzOiB1bmtub3duIH0gfT4oYCR7Y2ZnLmFwaS5waXBlbGluZVVybH0vJHtvcHRpb25zLnBpcGVsaW5lfWApO1xuICAgICAgICAgIGNvbnN0IGRvYyA9IChyZXMgYXMgeyBwaXBlbGluZT86IHsgcHJvcHM6IHVua25vd24gfSB9KS5waXBlbGluZT8ucHJvcHNcbiAgICAgICAgICAgID8/IChyZXMgYXMgeyBkYXRhPzogeyBwaXBlbGluZT86IHsgcHJvcHM6IHVua25vd24gfSB9IH0pLmRhdGE/LnBpcGVsaW5lPy5wcm9wcztcbiAgICAgICAgICBpZiAoIWRvYykgdGhyb3cgbmV3IEVycm9yKGBQaXBlbGluZSAke29wdGlvbnMucGlwZWxpbmV9IG5vdCBmb3VuZGApO1xuICAgICAgICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRlUGlwZWxpbmVEb2MoY29yZSwgZG9jKTtcbiAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCkgcHJvYmxlbXMucHVzaCh7IHNvdXJjZTogYHBpcGVsaW5lLyR7b3B0aW9ucy5waXBlbGluZX1gLCBlcnJvcnMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5wbHVnaW4pIHtcbiAgICAgICAgICBjb25zdCBbbmFtZSwgdmVyc2lvbl0gPSBvcHRpb25zLnBsdWdpbi5zcGxpdCgnOicpO1xuICAgICAgICAgIGlmICghbmFtZSB8fCAhdmVyc2lvbikgdGhyb3cgbmV3IEVycm9yKCctLXBsdWdpbiByZXF1aXJlcyA8bmFtZTp2ZXJzaW9uPiBmb3JtYXQnKTtcbiAgICAgICAgICBwcmludEluZm8oJ0ZldGNoaW5nIHBsdWdpbicsIHsgbmFtZSwgdmVyc2lvbiB9KTtcbiAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMob3B0aW9ucyk7XG4gICAgICAgICAgY29uc3QgY2ZnID0gY2xpZW50LmdldENvbmZpZygpO1xuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5nZXQ8eyBwbHVnaW46IHVua25vd24gfT4oXG4gICAgICAgICAgICBgJHtjZmcuYXBpLnBsdWdpblVybH0vZmluZD9uYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfSZ2ZXJzaW9uPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZlcnNpb24pfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBkb2MgPSAocmVzIGFzIHsgcGx1Z2luPzogdW5rbm93biB9KS5wbHVnaW5cbiAgICAgICAgICAgID8/IChyZXMgYXMgeyBkYXRhPzogeyBwbHVnaW4/OiB1bmtub3duIH0gfSkuZGF0YT8ucGx1Z2luO1xuICAgICAgICAgIGlmICghZG9jKSB0aHJvdyBuZXcgRXJyb3IoYFBsdWdpbiAke25hbWV9OiR7dmVyc2lvbn0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGVQbHVnaW5Eb2MoY29yZSwgZG9jKTtcbiAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCkgcHJvYmxlbXMucHVzaCh7IHNvdXJjZTogYHBsdWdpbi8ke25hbWV9OiR7dmVyc2lvbn1gLCBlcnJvcnMgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvYmxlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcHJpbnRTdWNjZXNzKCdBbGwgdGVtcGxhdGVzIHZhbGlkJywgeyBleGVjdXRpb25JZCB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwcmludFdhcm5pbmcoYEZvdW5kICR7cHJvYmxlbXMucmVkdWNlKChhLCBwKSA9PiBhICsgcC5lcnJvcnMubGVuZ3RoLCAwKX0gdGVtcGxhdGUgZXJyb3Iocyk6YCk7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwcm9ibGVtcykge1xuICAgICAgICAgIHByaW50RXJyb3IocC5zb3VyY2UpO1xuICAgICAgICAgIGZvciAoY29uc3QgZSBvZiBwLmVycm9ycykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCAgICBbJHtlLmZpZWxkID8/ICc/J31dICR7ZS5tZXNzYWdlfSR7ZS5jb2RlID8gYCAoJHtlLmNvZGV9KWAgOiAnJ31gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVyciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICd2YWxpZGF0ZS10ZW1wbGF0ZXMnLCBleGVjdXRpb25JZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqIFRoZSBwbHVnaW4gdGVtcGxhdGUgY29udHJhY3QgdGhlIHVwbG9hZCBhcHBsaWVzIChhcGktY29yZSdzIHNoYXJlZCBjaGVjaykuICovXG5mdW5jdGlvbiB2YWxpZGF0ZVBsdWdpbkRvYyhjb3JlOiBQbHVnaW5UZW1wbGF0ZUVuZ2luZSwgZG9jOiB1bmtub3duKTogQXJyYXk8eyBmaWVsZD86IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyBjb2RlPzogc3RyaW5nIH0+IHtcbiAgcmV0dXJuIGNoZWNrUGx1Z2luVGVtcGxhdGVzKGRvYyBhcyBvYmplY3QsIGNvcmUpLm1hcCgoaXNzdWUpID0+ICh7XG4gICAgZmllbGQ6IGlzc3VlLmxpbmUgIT09IHVuZGVmaW5lZCA/IGAke2lzc3VlLmZpZWxkfToke2lzc3VlLmxpbmV9OiR7aXNzdWUuY29sfWAgOiBpc3N1ZS5maWVsZCxcbiAgICBtZXNzYWdlOiBpc3N1ZS5tZXNzYWdlLFxuICAgIGNvZGU6IGlzc3VlLmtpbmQsXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVQaXBlbGluZURvYyhjb3JlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBkb2M6IHVua25vd24pOiBBcnJheTx7IGZpZWxkPzogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IGNvZGU/OiBzdHJpbmcgfT4ge1xuICBjb25zdCBpc1RwbCA9IChmOiBzdHJpbmcpID0+XG4gICAgZiA9PT0gJ3Byb2plY3ROYW1lJyB8fFxuICAgIGYuc3RhcnRzV2l0aCgnbWV0YWRhdGEuJykgfHwgZi5zdGFydHNXaXRoKCdtZXRhZGF0YVsnKSB8fFxuICAgIGYuc3RhcnRzV2l0aCgndmFycy4nKSB8fCBmLnN0YXJ0c1dpdGgoJ3ZhcnNbJyk7XG4gIGNvbnN0IGlzS25vd24gPSBjb3JlLmFsbG93ZWRTY29wZVJvb3RzKFsnbWV0YWRhdGEnLCAndmFycyddKTtcbiAgY29uc3QgeyBlcnJvcnMgfSA9IGNvcmUudmFsaWRhdGVUZW1wbGF0ZXMoZG9jLCBpc1RwbCwgaXNLbm93bik7XG4gIGNvbnN0IGN5Y2xlcyA9IGNvcmUuZGV0ZWN0Q3ljbGVzKGRvYywgaXNUcGwsIChmOiBzdHJpbmcpID0+IGlzVHBsKGYpID8gZiA6IG51bGwpO1xuICByZXR1cm4gWy4uLmVycm9ycywgLi4uY3ljbGVzXTtcbn1cbiJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdGVtcGxhdGVzLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdmFsaWRhdGUtdGVtcGxhdGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsb0JBQW9CLEVBQTZCLE1BQU0sNEJBQTRCLENBQUM7QUFDN0YsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVM3Rjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE9BQWdCO0lBQ3ZELGNBQWMsQ0FBQyxPQUFPO1NBQ25CLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDbkIsV0FBVyxDQUFDLHFFQUFxRSxDQUFDO1NBQ2xGLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxvQ0FBb0MsQ0FBQztTQUMvRCxNQUFNLENBQUMseUJBQXlCLEVBQUUsZ0RBQWdELENBQUM7U0FDbkYsTUFBTSxDQUFDLGVBQWUsRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1NBQ25GLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBd0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFD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LEtBQUssQ0FBQyxLQUFLO1FBQzNGLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztRQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7S0FDakIsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxJQUF5QixFQUFFLEdBQVk7SUFDbEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUMxQixDQUFDLEtBQUssYUFBYTtRQUNuQixDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakYsT0FBTyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBjaGVja1BsdWdpblRlbXBsYXRlcywgdHlwZSBQbHVnaW5UZW1wbGF0ZUVuZ2luZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IFlBTUwgZnJvbSAneWFtbCc7XG5pbXBvcnQgeyBwcmludENvbW1hbmRIZWFkZXIsIHByaW50U3NsV2FybmluZywgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuaW50ZXJmYWNlIFZhbGlkYXRlT3B0aW9ucyB7XG4gIHBpcGVsaW5lPzogc3RyaW5nO1xuICBwbHVnaW4/OiBzdHJpbmc7XG4gIGZpbGU/OiBzdHJpbmc7XG4gIHZlcmlmeVNzbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgdGhlIGB2YWxpZGF0ZS10ZW1wbGF0ZXNgIGNvbW1hbmQuXG4gKlxuICogVXNhZ2U6XG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgdGVtcGxhdGUgdmFsaWRhdGUgLS1waXBlbGluZSA8dXVpZD5cbiAqICAgcGlwZWxpbmUtbWFuYWdlciB0ZW1wbGF0ZSB2YWxpZGF0ZSAtLXBsdWdpbiA8bmFtZTp2ZXJzaW9uPlxuICogICBwaXBlbGluZS1tYW5hZ2VyIHRlbXBsYXRlIHZhbGlkYXRlIC0tZmlsZSAuL3BsdWdpbi1zcGVjLnlhbWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVGVtcGxhdGVzQ29tbWFuZChwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHdpdGhTc2xPcHRpb25zKHByb2dyYW1cbiAgICAuY29tbWFuZCgndmFsaWRhdGUnKVxuICAgIC5kZXNjcmlwdGlvbignUGFyc2UgYW5kIHZhbGlkYXRlIHt7IC4uLiB9fSB0ZW1wbGF0ZXMgaW4gYSBwaXBlbGluZSBvciBwbHVnaW4gc3BlYycpXG4gICAgLm9wdGlvbignLS1waXBlbGluZSA8aWQ+JywgJ1ZhbGlkYXRlIHRoZSBwaXBlbGluZSB3aXRoIHRoaXMgSUQnKVxuICAgIC5vcHRpb24oJy0tcGx1Z2luIDxuYW1lOnZlcnNpb24+JywgJ1ZhbGlkYXRlIHRoZSBwbHVnaW4gd2l0aCB0aGlzIG5hbWUgYW5kIHZlcnNpb24nKVxuICAgIC5vcHRpb24oJy0tZmlsZSA8cGF0aD4nLCAnVmFsaWRhdGUgYSBsb2NhbCBwbHVnaW4tc3BlYy55YW1sIG9yIHBpcGVsaW5lLmpzb24gZmlsZScpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IFZhbGlkYXRlT3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ1ZhbGlkYXRlIFRlbXBsYXRlcycpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMucGlwZWxpbmUgJiYgIW9wdGlvbnMucGx1Z2luICYmICFvcHRpb25zLmZpbGUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09uZSBvZiAtLXBpcGVsaW5lLCAtLXBsdWdpbiwgb3IgLS1maWxlIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb3JlID0gYXdhaXQgaW1wb3J0KCdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJyk7XG5cbiAgICAgICAgY29uc3QgcHJvYmxlbXM6IEFycmF5PHsgc291cmNlOiBzdHJpbmc7IGVycm9yczogeyBmaWVsZD86IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyBjb2RlPzogc3RyaW5nIH1bXSB9PiA9IFtdO1xuXG4gICAgICAgIGlmIChvcHRpb25zLmZpbGUpIHtcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IHBhdGgucmVzb2x2ZShvcHRpb25zLmZpbGUpO1xuICAgICAgICAgIGNvbnN0IHRleHQgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGYtOCcpO1xuICAgICAgICAgIGNvbnN0IGRvYyA9IGZpbGVQYXRoLmVuZHNXaXRoKCcuanNvbicpID8gSlNPTi5wYXJzZSh0ZXh0KSA6IFlBTUwucGFyc2UodGV4dCk7XG5cbiAgICAgICAgICAvLyBHdWVzczogaWYgYHBsdWdpblR5cGVgIGlzIHByZXNlbnQsIHRyZWF0IGFzIHBsdWdpbiBzcGVjOyBlbHNlIHBpcGVsaW5lXG4gICAgICAgICAgY29uc3QgaXNQbHVnaW4gPSB0eXBlb2YgKGRvYyBhcyB7IHBsdWdpblR5cGU/OiB1bmtub3duIH0pLnBsdWdpblR5cGUgPT09ICdzdHJpbmcnO1xuICAgICAgICAgIGNvbnN0IGVycm9ycyA9IGlzUGx1Z2luXG4gICAgICAgICAgICA/IHZhbGlkYXRlUGx1Z2luRG9jKGNvcmUsIGRvYylcbiAgICAgICAgICAgIDogdmFsaWRhdGVQaXBlbGluZURvYyhjb3JlLCBkb2MpO1xuICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSBwcm9ibGVtcy5wdXNoKHsgc291cmNlOiBmaWxlUGF0aCwgZXJyb3JzIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucGlwZWxpbmUpIHtcbiAgICAgICAgICBwcmludEluZm8oJ0ZldGNoaW5nIHBpcGVsaW5lJywgeyBpZDogb3B0aW9ucy5waXBlbGluZSB9KTtcbiAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMob3B0aW9ucyk7XG4gICAgICAgICAgY29uc3QgY2ZnID0gY2xpZW50LmdldENvbmZpZygpO1xuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5nZXQ8eyBwaXBlbGluZT86IHsgcHJvcHM6IHVua25vd24gfSB9PihgJHtjZmcuYXBpLnBpcGVsaW5lVXJsfS8ke29wdGlvbnMucGlwZWxpbmV9YCk7XG4gICAgICAgICAgY29uc3QgZG9jID0gKHJlcyBhcyB7IHBpcGVsaW5lPzogeyBwcm9wczogdW5rbm93biB9IH0pLnBpcGVsaW5lPy5wcm9wc1xuICAgICAgICAgICAgPz8gKHJlcyBhcyB7IGRhdGE/OiB7IHBpcGVsaW5lPzogeyBwcm9wczogdW5rbm93biB9IH0gfSkuZGF0YT8ucGlwZWxpbmU/LnByb3BzO1xuICAgICAgICAgIGlmICghZG9jKSB0aHJvdyBuZXcgRXJyb3IoYFBpcGVsaW5lICR7b3B0aW9ucy5waXBlbGluZX0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGVQaXBlbGluZURvYyhjb3JlLCBkb2MpO1xuICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSBwcm9ibGVtcy5wdXNoKHsgc291cmNlOiBgcGlwZWxpbmUvJHtvcHRpb25zLnBpcGVsaW5lfWAsIGVycm9ycyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLnBsdWdpbikge1xuICAgICAgICAgIGNvbnN0IFtuYW1lLCB2ZXJzaW9uXSA9IG9wdGlvbnMucGx1Z2luLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgaWYgKCFuYW1lIHx8ICF2ZXJzaW9uKSB0aHJvdyBuZXcgRXJyb3IoJy0tcGx1Z2luIHJlcXVpcmVzIDxuYW1lOnZlcnNpb24+IGZvcm1hdCcpO1xuICAgICAgICAgIHByaW50SW5mbygnRmV0Y2hpbmcgcGx1Z2luJywgeyBuYW1lLCB2ZXJzaW9uIH0pO1xuICAgICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgICAgICAgICBjb25zdCBjZmcgPSBjbGllbnQuZ2V0Q29uZmlnKCk7XG4gICAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgY2xpZW50LmdldDx7IHBsdWdpbjogdW5rbm93biB9PihcbiAgICAgICAgICAgIGAke2NmZy5hcGkucGx1Z2luVXJsfS9maW5kP25hbWU9JHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9JnZlcnNpb249JHtlbmNvZGVVUklDb21wb25lbnQodmVyc2lvbil9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGRvYyA9IChyZXMgYXMgeyBwbHVnaW4/OiB1bmtub3duIH0pLnBsdWdpblxuICAgICAgICAgICAgPz8gKHJlcyBhcyB7IGRhdGE/OiB7IHBsdWdpbj86IHVua25vd24gfSB9KS5kYXRhPy5wbHVnaW47XG4gICAgICAgICAgaWYgKCFkb2MpIHRocm93IG5ldyBFcnJvcihgUGx1Z2luICR7bmFtZX06JHt2ZXJzaW9ufSBub3QgZm91bmRgKTtcbiAgICAgICAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVBsdWdpbkRvYyhjb3JlLCBkb2MpO1xuICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSBwcm9ibGVtcy5wdXNoKHsgc291cmNlOiBgcGx1Z2luLyR7bmFtZX06JHt2ZXJzaW9ufWAsIGVycm9ycyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9ibGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBwcmludFN1Y2Nlc3MoJ0FsbCB0ZW1wbGF0ZXMgdmFsaWQnLCB7IGV4ZWN1dGlvbklkIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaW50V2FybmluZyhgRm91bmQgJHtwcm9ibGVtcy5yZWR1Y2UoKGEsIHApID0+IGEgKyBwLmVycm9ycy5sZW5ndGgsIDApfSB0ZW1wbGF0ZSBlcnJvcihzKTpgKTtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHByb2JsZW1zKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcihwLnNvdXJjZSk7XG4gICAgICAgICAgZm9yIChjb25zdCBlIG9mIHAuZXJyb3JzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgICAgIFske2UuZmllbGQgPz8gJz8nfV0gJHtlLm1lc3NhZ2V9JHtlLmNvZGUgPyBgICgke2UuY29kZX0pYCA6ICcnfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3ZhbGlkYXRlLXRlbXBsYXRlcycsIGV4ZWN1dGlvbklkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG4vKiogVGhlIHBsdWdpbiB0ZW1wbGF0ZSBjb250cmFjdCB0aGUgdXBsb2FkIGFwcGxpZXMgKGFwaS1jb3JlJ3Mgc2hhcmVkIGNoZWNrKS4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlUGx1Z2luRG9jKGNvcmU6IFBsdWdpblRlbXBsYXRlRW5naW5lLCBkb2M6IHVua25vd24pOiBBcnJheTx7IGZpZWxkPzogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmc7IGNvZGU/OiBzdHJpbmcgfT4ge1xuICByZXR1cm4gY2hlY2tQbHVnaW5UZW1wbGF0ZXMoZG9jIGFzIG9iamVjdCwgY29yZSkubWFwKChpc3N1ZSkgPT4gKHtcbiAgICBmaWVsZDogaXNzdWUubGluZSAhPT0gdW5kZWZpbmVkID8gYCR7aXNzdWUuZmllbGR9OiR7aXNzdWUubGluZX06JHtpc3N1ZS5jb2x9YCA6IGlzc3VlLmZpZWxkLFxuICAgIG1lc3NhZ2U6IGlzc3VlLm1lc3NhZ2UsXG4gICAgY29kZTogaXNzdWUua2luZCxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZVBpcGVsaW5lRG9jKGNvcmU6IFJlY29yZDxzdHJpbmcsIGFueT4sIGRvYzogdW5rbm93bik6IEFycmF5PHsgZmllbGQ/OiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZzsgY29kZT86IHN0cmluZyB9PiB7XG4gIGNvbnN0IGlzVHBsID0gKGY6IHN0cmluZykgPT5cbiAgICBmID09PSAncHJvamVjdE5hbWUnIHx8XG4gICAgZi5zdGFydHNXaXRoKCdtZXRhZGF0YS4nKSB8fCBmLnN0YXJ0c1dpdGgoJ21ldGFkYXRhWycpIHx8XG4gICAgZi5zdGFydHNXaXRoKCd2YXJzLicpIHx8IGYuc3RhcnRzV2l0aCgndmFyc1snKTtcbiAgY29uc3QgaXNLbm93biA9IGNvcmUuYWxsb3dlZFNjb3BlUm9vdHMoWydtZXRhZGF0YScsICd2YXJzJ10pO1xuICBjb25zdCB7IGVycm9ycyB9ID0gY29yZS52YWxpZGF0ZVRlbXBsYXRlcyhkb2MsIGlzVHBsLCBpc0tub3duKTtcbiAgY29uc3QgY3ljbGVzID0gY29yZS5kZXRlY3RDeWNsZXMoZG9jLCBpc1RwbCwgKGY6IHN0cmluZykgPT4gaXNUcGwoZikgPyBmIDogbnVsbCk7XG4gIHJldHVybiBbLi4uZXJyb3JzLCAuLi5jeWNsZXNdO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-plugins.d.ts","
|
|
1
|
+
{"version":3,"file":"verify-plugins.d.ts","sources":["../../src/commands/verify-plugins.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAWxD,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,UAAU,CAAC,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,gBAAgB,EAAE,CAiBhJ;AAED,2EAA2E;AAC3E,wBAAsB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOzI;AAUD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsDpD"}
|
|
@@ -131,4 +131,4 @@ export function verifyPlugins(program) {
|
|
|
131
131
|
}
|
|
132
132
|
});
|
|
133
133
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvdmVyaWZ5LXBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixzQkFBc0IsR0FJdkIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQztBQUU5QixPQUFPLEVBQ0wsOEJBQThCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsR0FDekgsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBY3pDOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBc0QsRUFBRSxHQUFHLEdBQXNCLE9BQU8sQ0FBQyxHQUFHO0lBQzFILElBQUksS0FBeUIsQ0FBQztJQUM5QixJQUFJLE9BQU8sQ0FBQyxT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Q0FBQztnQkFDaEgsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDdEUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLElBQUk7Z0JBQUUsWUFBWSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7O2dCQUMzRSxZQUFZLENBQUMsMEJBQTBCLE9BQU8sa0NBQWtDLE1BQU0sQ0FBQyxPQUFPLDRCQUE0QixDQUFDLENBQUM7UUFDbkksQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixXQUFXLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUU7Z0JBQzFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSztnQkFDM0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUU7YUFDbkYsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGVycm9yTWVzc2FnZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7XG4gIHBhcnNlUnVudGltZUNoZWNrU3RlcHMsXG4gIFJVTlRJTUVfQ0hFQ0tfU1RFUFNfRU5WLFxuICBSVU5USU1FX0NIRUNLX1ZFUkRJQ1RTLFxuICB0eXBlIFJ1bnRpbWVDaGVja1Jlc3VsdCxcbiAgdHlwZSBSdW50aW1lQ2hlY2tTdGVwLFxuICB0eXBlIFN0ZXBNYW5pZmVzdEVudHJ5LFxufSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgdHlwZSB7IEFwaUNsaWVudCB9IGZyb20gJy4uL3V0aWxzL2FwaS1jbGllbnQuanMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jLCBwcmludENvbW1hbmRIZWFkZXIsIHByaW50U3NsV2FybmluZywgd2l0aFByb2ZpbGVPcHRpb24sIHdpdGhSZWdpb25PcHRpb24sIHdpdGhTc2xPcHRpb25zLFxufSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgc2V0UGlwZWxpbmVJZCB9IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QtY29udGV4dC5qcyc7XG5pbXBvcnQgeyB1bndyYXBFbnZlbG9wZSB9IGZyb20gJy4uL3V0aWxzL3Jlc3BvbnNlLXV0aWxzLmpzJztcblxuY29uc3QgeyBib2xkLCBjeWFuLCByZWQsIHllbGxvdyB9ID0gcGljbztcblxuaW50ZXJmYWNlIFZlcmlmeU9wdGlvbnMge1xuICBwaXBlbGluZUlkOiBzdHJpbmc7XG4gIHN0ZXBzRmlsZT86IHN0cmluZztcbiAgbWFuaWZlc3Q/OiBzdHJpbmc7XG4gIHN0b3JlVG9rZW5zPzogYm9vbGVhbjtcbiAgdmVyaWZ5U3NsPzogYm9vbGVhbjtcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBwcm9maWxlPzogc3RyaW5nO1xuICBqc29uPzogYm9vbGVhbjtcbiAgc3RyaWN0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgc3RlcHMgdG8gYXNrIGFib3V0LCBmcm9tIChmaXJzdCBtYXRjaCk6IGAtLXN0ZXBzLWZpbGVgIChKU09OXG4gKiBgW3sgc3RlcEtleSwgaW1hZ2VEaWdlc3QgfV1gKSwgYC0tbWFuaWZlc3RgIChhIHN5bnRoJ3MgYHBiLXN0ZXAtbWFuaWZlc3QuanNvbmBcbiAqIOKAlCByb3dzIGNhcnJ5aW5nIGEgc3RlcEtleSBhbmQgYSBkaWdlc3QpLCBvciB0aGUgYFBCX1ZFUklGWV9TVEVQU2AgZW52IHZhciB0aGVcbiAqIHN5bnRoZXNpemVkIHZlcmlmeSBzdGVwIGNhcnJpZXMuIE5vIHNvdXJjZSwgb3IgYW4gZW1wdHkgbGlzdCwgaXMgYW4gZXJyb3I6IGFcbiAqIGNoZWNrIHRoYXQgYXNrZWQgYWJvdXQgbm90aGluZyBtdXN0IG5vdCBwYXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9hZFZlcmlmeVN0ZXBzKG9wdGlvbnM6IFBpY2s8VmVyaWZ5T3B0aW9ucywgJ3N0ZXBzRmlsZScgfCAnbWFuaWZlc3QnPiwgZW52OiBOb2RlSlMuUHJvY2Vzc0VudiA9IHByb2Nlc3MuZW52KTogUnVudGltZUNoZWNrU3RlcFtdIHtcbiAgbGV0IHN0ZXBzOiBSdW50aW1lQ2hlY2tTdGVwW107XG4gIGlmIChvcHRpb25zLnN0ZXBzRmlsZSkge1xuICAgIHN0ZXBzID0gcGFyc2VSdW50aW1lQ2hlY2tTdGVwcyhyZWFkRmlsZVN5bmMob3B0aW9ucy5zdGVwc0ZpbGUsICd1dGY4JykpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMubWFuaWZlc3QpIHtcbiAgICBjb25zdCByb3dzID0gSlNPTi5wYXJzZShyZWFkRmlsZVN5bmMob3B0aW9ucy5tYW5pZmVzdCwgJ3V0ZjgnKSkgYXMgU3RlcE1hbmlmZXN0RW50cnlbXTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocm93cykpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJy0tbWFuaWZlc3QgbXVzdCBiZSBhIHN0ZXAgbWFuaWZlc3QgKGEgSlNPTiBhcnJheSknLCAnbWFuaWZlc3QnKTtcbiAgICBzdGVwcyA9IHBhcnNlUnVudGltZUNoZWNrU3RlcHMoSlNPTi5zdHJpbmdpZnkocm93c1xuICAgICAgLmZpbHRlcigocikgPT4gci5zdGVwS2V5ICYmIHIuaW1hZ2VEaWdlc3QpXG4gICAgICAubWFwKChyKSA9PiAoeyBzdGVwS2V5OiByLnN0ZXBLZXksIGltYWdlRGlnZXN0OiByLmltYWdlRGlnZXN0IH0pKSkpO1xuICB9IGVsc2UgaWYgKGVudltSVU5USU1FX0NIRUNLX1NURVBTX0VOVl0pIHtcbiAgICBzdGVwcyA9IHBhcnNlUnVudGltZUNoZWNrU3RlcHMoZW52W1JVTlRJTUVfQ0hFQ0tfU1RFUFNfRU5WXSEpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYE5vIHN0ZXBzIHRvIHZlcmlmeTogcGFzcyAtLXN0ZXBzLWZpbGUgb3IgLS1tYW5pZmVzdCwgb3Igc2V0ICR7UlVOVElNRV9DSEVDS19TVEVQU19FTlZ9YCwgJ3N0ZXBzJyk7XG4gIH1cbiAgaWYgKHN0ZXBzLmxlbmd0aCA9PT0gMCkgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignTm8gaW1hZ2UtYmFja2VkIHN0ZXBzIHRvIHZlcmlmeScsICdzdGVwcycpO1xuICByZXR1cm4gc3RlcHM7XG59XG5cbi8qKiBgUE9TVCAvYXBpL3BsdWdpbnMvcnVudGltZS1jaGVja2AgKGNvbnRyYWN0IEMyKSwgZW52ZWxvcGUgdW53cmFwcGVkLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bnRpbWVDaGVjayhjbGllbnQ6IEFwaUNsaWVudCwgcGlwZWxpbmVJZDogc3RyaW5nLCBzdGVwczogcmVhZG9ubHkgUnVudGltZUNoZWNrU3RlcFtdKTogUHJvbWlzZTxSdW50aW1lQ2hlY2tSZXN1bHQ+IHtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDx1bmtub3duPihgJHtjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLnBsdWdpblVybH0vcnVudGltZS1jaGVja2AsIHsgcGlwZWxpbmVJZCwgc3RlcHMgfSk7XG4gIGNvbnN0IGJvZHkgPSB1bndyYXBFbnZlbG9wZShyZXNwb25zZSkgYXMgUGFydGlhbDxSdW50aW1lQ2hlY2tSZXN1bHQ+O1xuICBpZiAoIWJvZHkudmVyZGljdCB8fCAhUlVOVElNRV9DSEVDS19WRVJESUNUUy5pbmNsdWRlcyhib2R5LnZlcmRpY3QpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdydW50aW1lLWNoZWNrIHJldHVybmVkIG5vIHJlYWRhYmxlIHZlcmRpY3QnKTtcbiAgfVxuICByZXR1cm4geyB2ZXJkaWN0OiBib2R5LnZlcmRpY3QsIHN0ZXBzOiBBcnJheS5pc0FycmF5KGJvZHkuc3RlcHMpID8gYm9keS5zdGVwcyA6IFtdIH07XG59XG5cbmNvbnN0IFZFUkRJQ1RfU1RZTEU6IFJlY29yZDxzdHJpbmcsIChzOiBzdHJpbmcpID0+IHN0cmluZz4gPSB7XG4gIG9rOiAodCkgPT4gdCxcbiAgaW5mbzogY3lhbixcbiAgd2FybmluZzogeWVsbG93LFxuICBlcnJvcjogcmVkLFxuICBjcml0aWNhbDogKHQpID0+IGJvbGQocmVkKHQpKSxcbn07XG5cbi8qKlxuICogUmVnaXN0ZXJzIGBwbHVnaW4gdmVyaWZ5YDogYXNrIHRoZSBwbGF0Zm9ybSB3aGF0IGl0IG5vdyBrbm93cyBhYm91dCB0aGVcbiAqIHBsdWdpbiBpbWFnZXMgYSBwaXBlbGluZSBydW5zIOKAlCBhIENWRSBmbGFnZ2VkLCBhIEtFViBsaXN0aW5nIG9yIGFuXG4gKiBvcmctcG9saWN5IGNoYW5nZSBzaW5jZSB0aGUgc3ludGggdGhhdCBwaW5uZWQgdGhlbSDigJQgYW5kIHByaW50IHRoZSBncmFkZWRcbiAqIHZlcmRpY3QuIFZ1bG5lcmFiaWxpdHkgc3RhdGUgaXMgUkVQT1JURUQsIG5ldmVyIGVuZm9yY2VkOiB0aGUgY29tbWFuZCBleGl0c1xuICogMCB3aGF0ZXZlciB0aGUgdmVyZGljdCAodGhlIHBsYXRmb3JtIGFsc28gbm90aWZpZXMgb24gYSBwaXBlbGluZSBydW5uaW5nIGFcbiAqIHZ1bG5lcmFibGUgcGx1Z2luKS4gSWYgdGhlIGNoZWNrIGl0c2VsZiBjYW5ub3QgcnVuIChwbGF0Zm9ybSB1bnJlYWNoYWJsZSxcbiAqIHVucmVhZGFibGUgYW5zd2VyKSBpdCB3YXJucyBhbmQgZXhpdHMgMCwgb3IgZXhpdHMgbm9uLXplcm8gd2l0aCBgLS1zdHJpY3RgLlxuICpcbiAqIFRoZSBzeW50aGVzaXplZCBwaXBlbGluZSBydW5zIHRoaXMgYXMgYSByZXBvcnQtb25seSBzdGVwIGluIGVhY2ggc3RhZ2Ugd2hlblxuICogdGhlIGBhd3M6Y2RrOm9wZXJhdGlvbnM6cnVudGltZXZ1bG5jaGVja2AgbWV0YWRhdGEgZmxhZyBpcyBvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdmVyaWZ5IC0tcGlwZWxpbmUtaWQgPGlkPiAtLW1hbmlmZXN0IGNkay5vdXQvcGItc3RlcC1tYW5pZmVzdC5qc29uXG4gKiBwaXBlbGluZS1tYW5hZ2VyIHBsdWdpbiB2ZXJpZnkgLS1waXBlbGluZS1pZCBcIiRQSVBFTElORV9JRFwiIC0tc3RvcmUtdG9rZW5zICAgIyBpbiBDb2RlQnVpbGQgKFBCX1ZFUklGWV9TVEVQUylcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5UGx1Z2lucyhwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHdpdGhTc2xPcHRpb25zKFxuICAgIHdpdGhSZWdpb25PcHRpb24oXG4gICAgICB3aXRoUHJvZmlsZU9wdGlvbihwcm9ncmFtXG4gICAgICAgIC5jb21tYW5kKCd2ZXJpZnknKVxuICAgICAgICAuZGVzY3JpcHRpb24oJ1JlcG9ydCwgYXQgcnVuIHRpbWUsIHRoZSBjdXJyZW50IHZ1bG5lcmFiaWxpdHkgc3RhdGUgb2YgYSBwaXBlbGluZVxcJ3MgcGlubmVkIHBsdWdpbiBpbWFnZXMgKG5ldmVyIGZhaWxzIG9uIGl0KScpXG4gICAgICAgIC5yZXF1aXJlZE9wdGlvbignLXAsIC0tcGlwZWxpbmUtaWQgPGlkPicsICdQaXBlbGluZSBJRCcpXG4gICAgICAgIC5vcHRpb24oJy0tc3RlcHMtZmlsZSA8ZmlsZT4nLCAnSlNPTiBbeyBzdGVwS2V5LCBpbWFnZURpZ2VzdCB9XSB0byBjaGVjaycpXG4gICAgICAgIC5vcHRpb24oJy0tbWFuaWZlc3QgPGZpbGU+JywgJ0Egc3ludGhcXCdzIHBiLXN0ZXAtbWFuaWZlc3QuanNvbiB0byBjaGVjaycpXG4gICAgICAgIC5vcHRpb24oJy0tc3RvcmUtdG9rZW5zJywgJ0F1dGhlbnRpY2F0ZSB1c2luZyB0aGUga2V5IGluIEFXUyBTZWNyZXRzIE1hbmFnZXIgKFBMQVRGT1JNX1NFQ1JFVF9OQU1FKScsIGZhbHNlKVxuICAgICAgICAub3B0aW9uKCctLXN0cmljdCcsICdFeGl0IG5vbi16ZXJvIHdoZW4gdGhlIGNoZWNrIGl0c2VsZiBjYW5ub3QgcnVuIChuZXZlciBmb3IgdnVsbmVyYWJpbGl0eSBzdGF0ZSknLCBmYWxzZSlcbiAgICAgICAgLm9wdGlvbignLS1qc29uJywgJ1ByaW50IHRoZSB2ZXJkaWN0IGFzIEpTT04nLCBmYWxzZSkpLFxuICAgICksXG4gIClcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zOiBWZXJpZnlPcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignUGx1Z2luIFJ1bi10aW1lIENoZWNrJywgdW5kZWZpbmVkLCB7IHF1aWV0OiBvcHRpb25zLmpzb24gfSk7XG4gICAgICB0cnkge1xuICAgICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuICAgICAgICAvLyBCYWQgaW5wdXQgaXMgdGhlIGNhbGxlcidzIGJ1Zywgbm90IGFuIG91dGFnZTogYWx3YXlzIGFuIGVycm9yLlxuICAgICAgICBjb25zdCBzdGVwcyA9IGxvYWRWZXJpZnlTdGVwcyhvcHRpb25zKTtcbiAgICAgICAgcHJpbnRJbmZvKCdDaGVja2luZyBwbHVnaW4gaW1hZ2VzJywgeyBwaXBlbGluZUlkOiBvcHRpb25zLnBpcGVsaW5lSWQsIHN0ZXBzOiBzdGVwcy5sZW5ndGggfSk7XG4gICAgICAgIHNldFBpcGVsaW5lSWQob3B0aW9ucy5waXBlbGluZUlkKTtcblxuICAgICAgICBsZXQgcmVzdWx0OiBSdW50aW1lQ2hlY2tSZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHJ1bnRpbWVDaGVjayhjbGllbnQsIG9wdGlvbnMucGlwZWxpbmVJZCwgc3RlcHMpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGlmIChvcHRpb25zLnN0cmljdCkgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgcHJpbnRXYXJuaW5nKCdSdW4tdGltZSBwbHVnaW4gY2hlY2sgY291bGQgbm90IHJ1biDigJQgY29udGludWluZyAocGFzcyAtLXN0cmljdCB0byBmYWlsIGluc3RlYWQpJywgeyBlcnJvcjogZXJyb3JNZXNzYWdlKGVycm9yKSB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5qc29uKSBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXN1bHQsIG51bGwsIDIpKTtcbiAgICAgICAgcHJpbnRTZWN0aW9uKGBWZXJkaWN0OiAke1ZFUkRJQ1RfU1RZTEVbcmVzdWx0LnZlcmRpY3RdIShyZXN1bHQudmVyZGljdC50b1VwcGVyQ2FzZSgpKX1gKTtcbiAgICAgICAgZm9yIChjb25zdCBzdGVwIG9mIHJlc3VsdC5zdGVwcykge1xuICAgICAgICAgIGlmIChzdGVwLnZlcmRpY3QgPT09ICdvaycpIGNvbnRpbnVlO1xuICAgICAgICAgIGZvciAoY29uc3QgcmVhc29uIG9mIHN0ZXAucmVhc29ucykge1xuICAgICAgICAgICAgY29uc3Qgc2V2ID0gcmVhc29uLnNldmVyaXR5ID8/IHN0ZXAudmVyZGljdDtcbiAgICAgICAgICAgIGNvbnN0IHRhZyA9IChWRVJESUNUX1NUWUxFW3Nldl0gPz8geWVsbG93KShgWyR7c2V2LnRvVXBwZXJDYXNlKCl9XWApO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCAgJHt0YWd9ICR7c3RlcC5zdGVwS2V5fSAoJHtzdGVwLmltYWdlRGlnZXN0LnNsaWNlKDAsIDE5KX3igKYpICR7cmVhc29uLmNvZGV9OiAke3JlYXNvbi5tZXNzYWdlfWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmbGFnZ2VkID0gcmVzdWx0LnN0ZXBzLmZpbHRlcigocykgPT4gcy52ZXJkaWN0ICE9PSAnb2snKS5sZW5ndGg7XG4gICAgICAgIGlmIChyZXN1bHQudmVyZGljdCA9PT0gJ29rJykgcHJpbnRTdWNjZXNzKCdSdW4tdGltZSBwbHVnaW4gY2hlY2s6IG5vIGZpbmRpbmdzJyk7XG4gICAgICAgIGVsc2UgcHJpbnRXYXJuaW5nKGBSdW4tdGltZSBwbHVnaW4gY2hlY2s6ICR7ZmxhZ2dlZH0gc3RlcChzKSB3aXRoIGZpbmRpbmdzICh3b3JzdDogJHtyZXN1bHQudmVyZGljdH0pIOKAlCByZXBvcnRlZCwgbm90IGVuZm9yY2VkYCk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdwbHVnaW4tdmVyaWZ5JywgZXhlY3V0aW9uSWQsIHBpcGVsaW5lSWQ6IG9wdGlvbnMucGlwZWxpbmVJZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXBsdWdpbnMuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy92ZXJpZnktcGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixHQUl2QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBRTlCLE9BQU8sRUFDTCw4QkFBOEIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxHQUN6SCxNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFjekM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUFzRCxFQUFFLEdBQUcsR0FBc0IsT0FBTyxDQUFDLEdBQUc7SUFDMUgsSUFBSSxLQUF5QixDQUFDO0lBQzlCLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RCLEtBQUssR0FBRyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7U0FBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUF3QixDQUFDO1FBQ3ZGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUFFLE1BQU0sSUFBSSxlQUFlLENBQUMsbURBQW1ELEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckgsS0FBSyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTthQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQzthQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztTQUFNLElBQUksR0FBRyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQztRQUN4QyxLQUFLLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sSUFBSSxlQUFlLENBQUMsK0RBQStELHVCQUF1QixFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0gsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsTUFBTSxJQUFJLGVBQWUsQ0FBQyxpQ0FBaUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQUMsTUFBaUIsRUFBRSxVQUFrQixFQUFFLEtBQWtDO0lBQzFHLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxnQkFBZ0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hILE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQWdDLENBQUM7SUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDcEUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztBQUN2RixDQUFDO0FBRUQsTUFBTSxhQUFhLEdBQTBDO0lBQzNELEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNaLElBQUksRUFBRSxJQUFJO0lBQ1YsT0FBTyxFQUFFLE1BQU07SUFDZixLQUFLLEVBQUUsR0FBRztJQUNWLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUM5QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFnQjtJQUM1QyxjQUFjLENBQ1osZ0JBQWdCLENBQ2QsaUJBQWlCLENBQUMsT0FBTztTQUN0QixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQyxnSEFBZ0gsQ0FBQztTQUM3SCxjQUFjLENBQUMsd0JBQXdCLEVBQUUsYUFBYSxDQUFDO1NBQ3ZELE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSwwQ0FBMEMsQ0FBQztTQUN6RSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsMkNBQTJDLENBQUM7U0FDeEUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLDBFQUEwRSxFQUFFLEtBQUssQ0FBQztTQUMzRyxNQUFNLENBQUMsVUFBVSxFQUFFLGdGQUFnRixFQUFFLEtBQUssQ0FBQztTQUMzRyxNQUFNLENBQUMsUUFBUSxFQUFFLDJCQUEyQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQ3pELENBQ0Y7U0FDRSxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQXNCLEVBQUUsRUFBRTtRQUN2QyxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEcsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQyxpRUFBaUU7WUFDakUsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUM3RixhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRWxDLElBQUksTUFBMEIsQ0FBQztZQUMvQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0QsTUFBTSxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksT0FBTyxDQUFDLE1BQU07b0JBQUUsTUFBTSxLQUFLLENBQUM7Z0JBQ2hDLFlBQVksQ0FBQyxrRkFBa0YsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNqSSxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksT0FBTyxDQUFDLElBQUk7Z0JBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRCxZQUFZLENBQUMsWUFBWSxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekYsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJO29CQUFFLFNBQVM7Z0JBQ3BDLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNsQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQzVDLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUNoSCxDQUFDO1lBQ0gsQ0FBQztZQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN0RSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssSUFBSTtnQkFBRSxZQUFZLENBQUMsb0NBQW9DLENBQUMsQ0FBQzs7Z0JBQzNFLFlBQVksQ0FBQywwQkFBMEIsT0FBTyxrQ0FBa0MsTUFBTSxDQUFDLE9BQU8sNEJBQTRCLENBQUMsQ0FBQztRQUNuSSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRTthQUNuRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgZXJyb3JNZXNzYWdlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHtcbiAgcGFyc2VSdW50aW1lQ2hlY2tTdGVwcyxcbiAgUlVOVElNRV9DSEVDS19TVEVQU19FTlYsXG4gIFJVTlRJTUVfQ0hFQ0tfVkVSRElDVFMsXG4gIHR5cGUgUnVudGltZUNoZWNrUmVzdWx0LFxuICB0eXBlIFJ1bnRpbWVDaGVja1N0ZXAsXG4gIHR5cGUgU3RlcE1hbmlmZXN0RW50cnksXG59IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCB0eXBlIHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vdXRpbHMvYXBpLWNsaWVudC5qcyc7XG5pbXBvcnQge1xuICBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMsIHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nLCB3aXRoUHJvZmlsZU9wdGlvbiwgd2l0aFJlZ2lvbk9wdGlvbiwgd2l0aFNzbE9wdGlvbnMsXG59IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50SW5mbywgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4uL3V0aWxzL291dHB1dC11dGlscy5qcyc7XG5pbXBvcnQgeyBzZXRQaXBlbGluZUlkIH0gZnJvbSAnLi4vdXRpbHMvcmVxdWVzdC1jb250ZXh0LmpzJztcbmltcG9ydCB7IHVud3JhcEVudmVsb3BlIH0gZnJvbSAnLi4vdXRpbHMvcmVzcG9uc2UtdXRpbHMuanMnO1xuXG5jb25zdCB7IGJvbGQsIGN5YW4sIHJlZCwgeWVsbG93IH0gPSBwaWNvO1xuXG5pbnRlcmZhY2UgVmVyaWZ5T3B0aW9ucyB7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgc3RlcHNGaWxlPzogc3RyaW5nO1xuICBtYW5pZmVzdD86IHN0cmluZztcbiAgc3RvcmVUb2tlbnM/OiBib29sZWFuO1xuICB2ZXJpZnlTc2w/OiBib29sZWFuO1xuICByZWdpb24/OiBzdHJpbmc7XG4gIHByb2ZpbGU/OiBzdHJpbmc7XG4gIGpzb24/OiBib29sZWFuO1xuICBzdHJpY3Q/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBzdGVwcyB0byBhc2sgYWJvdXQsIGZyb20gKGZpcnN0IG1hdGNoKTogYC0tc3RlcHMtZmlsZWAgKEpTT05cbiAqIGBbeyBzdGVwS2V5LCBpbWFnZURpZ2VzdCB9XWApLCBgLS1tYW5pZmVzdGAgKGEgc3ludGgncyBgcGItc3RlcC1tYW5pZmVzdC5qc29uYFxuICog4oCUIHJvd3MgY2FycnlpbmcgYSBzdGVwS2V5IGFuZCBhIGRpZ2VzdCksIG9yIHRoZSBgUEJfVkVSSUZZX1NURVBTYCBlbnYgdmFyIHRoZVxuICogc3ludGhlc2l6ZWQgdmVyaWZ5IHN0ZXAgY2Fycmllcy4gTm8gc291cmNlLCBvciBhbiBlbXB0eSBsaXN0LCBpcyBhbiBlcnJvcjogYVxuICogY2hlY2sgdGhhdCBhc2tlZCBhYm91dCBub3RoaW5nIG11c3Qgbm90IHBhc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkVmVyaWZ5U3RlcHMob3B0aW9uczogUGljazxWZXJpZnlPcHRpb25zLCAnc3RlcHNGaWxlJyB8ICdtYW5pZmVzdCc+LCBlbnY6IE5vZGVKUy5Qcm9jZXNzRW52ID0gcHJvY2Vzcy5lbnYpOiBSdW50aW1lQ2hlY2tTdGVwW10ge1xuICBsZXQgc3RlcHM6IFJ1bnRpbWVDaGVja1N0ZXBbXTtcbiAgaWYgKG9wdGlvbnMuc3RlcHNGaWxlKSB7XG4gICAgc3RlcHMgPSBwYXJzZVJ1bnRpbWVDaGVja1N0ZXBzKHJlYWRGaWxlU3luYyhvcHRpb25zLnN0ZXBzRmlsZSwgJ3V0ZjgnKSk7XG4gIH0gZWxzZSBpZiAob3B0aW9ucy5tYW5pZmVzdCkge1xuICAgIGNvbnN0IHJvd3MgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhvcHRpb25zLm1hbmlmZXN0LCAndXRmOCcpKSBhcyBTdGVwTWFuaWZlc3RFbnRyeVtdO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShyb3dzKSkgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignLS1tYW5pZmVzdCBtdXN0IGJlIGEgc3RlcCBtYW5pZmVzdCAoYSBKU09OIGFycmF5KScsICdtYW5pZmVzdCcpO1xuICAgIHN0ZXBzID0gcGFyc2VSdW50aW1lQ2hlY2tTdGVwcyhKU09OLnN0cmluZ2lmeShyb3dzXG4gICAgICAuZmlsdGVyKChyKSA9PiByLnN0ZXBLZXkgJiYgci5pbWFnZURpZ2VzdClcbiAgICAgIC5tYXAoKHIpID0+ICh7IHN0ZXBLZXk6IHIuc3RlcEtleSwgaW1hZ2VEaWdlc3Q6IHIuaW1hZ2VEaWdlc3QgfSkpKSk7XG4gIH0gZWxzZSBpZiAoZW52W1JVTlRJTUVfQ0hFQ0tfU1RFUFNfRU5WXSkge1xuICAgIHN0ZXBzID0gcGFyc2VSdW50aW1lQ2hlY2tTdGVwcyhlbnZbUlVOVElNRV9DSEVDS19TVEVQU19FTlZdISk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgTm8gc3RlcHMgdG8gdmVyaWZ5OiBwYXNzIC0tc3RlcHMtZmlsZSBvciAtLW1hbmlmZXN0LCBvciBzZXQgJHtSVU5USU1FX0NIRUNLX1NURVBTX0VOVn1gLCAnc3RlcHMnKTtcbiAgfVxuICBpZiAoc3RlcHMubGVuZ3RoID09PSAwKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdObyBpbWFnZS1iYWNrZWQgc3RlcHMgdG8gdmVyaWZ5JywgJ3N0ZXBzJyk7XG4gIHJldHVybiBzdGVwcztcbn1cblxuLyoqIGBQT1NUIC9hcGkvcGx1Z2lucy9ydW50aW1lLWNoZWNrYCAoY29udHJhY3QgQzIpLCBlbnZlbG9wZSB1bndyYXBwZWQuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVudGltZUNoZWNrKGNsaWVudDogQXBpQ2xpZW50LCBwaXBlbGluZUlkOiBzdHJpbmcsIHN0ZXBzOiByZWFkb25seSBSdW50aW1lQ2hlY2tTdGVwW10pOiBQcm9taXNlPFJ1bnRpbWVDaGVja1Jlc3VsdD4ge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0PHVua25vd24+KGAke2NsaWVudC5nZXRDb25maWcoKS5hcGkucGx1Z2luVXJsfS9ydW50aW1lLWNoZWNrYCwgeyBwaXBlbGluZUlkLCBzdGVwcyB9KTtcbiAgY29uc3QgYm9keSA9IHVud3JhcEVudmVsb3BlKHJlc3BvbnNlKSBhcyBQYXJ0aWFsPFJ1bnRpbWVDaGVja1Jlc3VsdD47XG4gIGlmICghYm9keS52ZXJkaWN0IHx8ICFSVU5USU1FX0NIRUNLX1ZFUkRJQ1RTLmluY2x1ZGVzKGJvZHkudmVyZGljdCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3J1bnRpbWUtY2hlY2sgcmV0dXJuZWQgbm8gcmVhZGFibGUgdmVyZGljdCcpO1xuICB9XG4gIHJldHVybiB7IHZlcmRpY3Q6IGJvZHkudmVyZGljdCwgc3RlcHM6IEFycmF5LmlzQXJyYXkoYm9keS5zdGVwcykgPyBib2R5LnN0ZXBzIDogW10gfTtcbn1cblxuY29uc3QgVkVSRElDVF9TVFlMRTogUmVjb3JkPHN0cmluZywgKHM6IHN0cmluZykgPT4gc3RyaW5nPiA9IHtcbiAgb2s6ICh0KSA9PiB0LFxuICBpbmZvOiBjeWFuLFxuICB3YXJuaW5nOiB5ZWxsb3csXG4gIGVycm9yOiByZWQsXG4gIGNyaXRpY2FsOiAodCkgPT4gYm9sZChyZWQodCkpLFxufTtcblxuLyoqXG4gKiBSZWdpc3RlcnMgYHBsdWdpbiB2ZXJpZnlgOiBhc2sgdGhlIHBsYXRmb3JtIHdoYXQgaXQgbm93IGtub3dzIGFib3V0IHRoZVxuICogcGx1Z2luIGltYWdlcyBhIHBpcGVsaW5lIHJ1bnMg4oCUIGEgQ1ZFIGZsYWdnZWQsIGEgS0VWIGxpc3Rpbmcgb3IgYW5cbiAqIG9yZy1wb2xpY3kgY2hhbmdlIHNpbmNlIHRoZSBzeW50aCB0aGF0IHBpbm5lZCB0aGVtIOKAlCBhbmQgcHJpbnQgdGhlIGdyYWRlZFxuICogdmVyZGljdC4gVnVsbmVyYWJpbGl0eSBzdGF0ZSBpcyBSRVBPUlRFRCwgbmV2ZXIgZW5mb3JjZWQ6IHRoZSBjb21tYW5kIGV4aXRzXG4gKiAwIHdoYXRldmVyIHRoZSB2ZXJkaWN0ICh0aGUgcGxhdGZvcm0gYWxzbyBub3RpZmllcyBvbiBhIHBpcGVsaW5lIHJ1bm5pbmcgYVxuICogdnVsbmVyYWJsZSBwbHVnaW4pLiBJZiB0aGUgY2hlY2sgaXRzZWxmIGNhbm5vdCBydW4gKHBsYXRmb3JtIHVucmVhY2hhYmxlLFxuICogdW5yZWFkYWJsZSBhbnN3ZXIpIGl0IHdhcm5zIGFuZCBleGl0cyAwLCBvciBleGl0cyBub24temVybyB3aXRoIGAtLXN0cmljdGAuXG4gKlxuICogVGhlIHN5bnRoZXNpemVkIHBpcGVsaW5lIHJ1bnMgdGhpcyBhcyBhIHJlcG9ydC1vbmx5IHN0ZXAgaW4gZWFjaCBzdGFnZSB3aGVuXG4gKiB0aGUgYGF3czpjZGs6b3BlcmF0aW9uczpydW50aW1ldnVsbmNoZWNrYCBtZXRhZGF0YSBmbGFnIGlzIG9uLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBwaXBlbGluZS1tYW5hZ2VyIHBsdWdpbiB2ZXJpZnkgLS1waXBlbGluZS1pZCA8aWQ+IC0tbWFuaWZlc3QgY2RrLm91dC9wYi1zdGVwLW1hbmlmZXN0Lmpzb25cbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHZlcmlmeSAtLXBpcGVsaW5lLWlkIFwiJFBJUEVMSU5FX0lEXCIgLS1zdG9yZS10b2tlbnMgICAjIGluIENvZGVCdWlsZCAoUEJfVkVSSUZZX1NURVBTKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2ZXJpZnlQbHVnaW5zKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMoXG4gICAgd2l0aFJlZ2lvbk9wdGlvbihcbiAgICAgIHdpdGhQcm9maWxlT3B0aW9uKHByb2dyYW1cbiAgICAgICAgLmNvbW1hbmQoJ3ZlcmlmeScpXG4gICAgICAgIC5kZXNjcmlwdGlvbignUmVwb3J0LCBhdCBydW4gdGltZSwgdGhlIGN1cnJlbnQgdnVsbmVyYWJpbGl0eSBzdGF0ZSBvZiBhIHBpcGVsaW5lXFwncyBwaW5uZWQgcGx1Z2luIGltYWdlcyAobmV2ZXIgZmFpbHMgb24gaXQpJylcbiAgICAgICAgLnJlcXVpcmVkT3B0aW9uKCctcCwgLS1waXBlbGluZS1pZCA8aWQ+JywgJ1BpcGVsaW5lIElEJylcbiAgICAgICAgLm9wdGlvbignLS1zdGVwcy1maWxlIDxmaWxlPicsICdKU09OIFt7IHN0ZXBLZXksIGltYWdlRGlnZXN0IH1dIHRvIGNoZWNrJylcbiAgICAgICAgLm9wdGlvbignLS1tYW5pZmVzdCA8ZmlsZT4nLCAnQSBzeW50aFxcJ3MgcGItc3RlcC1tYW5pZmVzdC5qc29uIHRvIGNoZWNrJylcbiAgICAgICAgLm9wdGlvbignLS1zdG9yZS10b2tlbnMnLCAnQXV0aGVudGljYXRlIHVzaW5nIHRoZSBrZXkgaW4gQVdTIFNlY3JldHMgTWFuYWdlciAoUExBVEZPUk1fU0VDUkVUX05BTUUpJywgZmFsc2UpXG4gICAgICAgIC5vcHRpb24oJy0tc3RyaWN0JywgJ0V4aXQgbm9uLXplcm8gd2hlbiB0aGUgY2hlY2sgaXRzZWxmIGNhbm5vdCBydW4gKG5ldmVyIGZvciB2dWxuZXJhYmlsaXR5IHN0YXRlKScsIGZhbHNlKVxuICAgICAgICAub3B0aW9uKCctLWpzb24nLCAnUHJpbnQgdGhlIHZlcmRpY3QgYXMgSlNPTicsIGZhbHNlKSksXG4gICAgKSxcbiAgKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IFZlcmlmeU9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdQbHVnaW4gUnVuLXRpbWUgQ2hlY2snLCB1bmRlZmluZWQsIHsgcXVpZXQ6IG9wdGlvbnMuanNvbiB9KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG4gICAgICAgIC8vIEJhZCBpbnB1dCBpcyB0aGUgY2FsbGVyJ3MgYnVnLCBub3QgYW4gb3V0YWdlOiBhbHdheXMgYW4gZXJyb3IuXG4gICAgICAgIGNvbnN0IHN0ZXBzID0gbG9hZFZlcmlmeVN0ZXBzKG9wdGlvbnMpO1xuICAgICAgICBwcmludEluZm8oJ0NoZWNraW5nIHBsdWdpbiBpbWFnZXMnLCB7IHBpcGVsaW5lSWQ6IG9wdGlvbnMucGlwZWxpbmVJZCwgc3RlcHM6IHN0ZXBzLmxlbmd0aCB9KTtcbiAgICAgICAgc2V0UGlwZWxpbmVJZChvcHRpb25zLnBpcGVsaW5lSWQpO1xuXG4gICAgICAgIGxldCByZXN1bHQ6IFJ1bnRpbWVDaGVja1Jlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMob3B0aW9ucyk7XG4gICAgICAgICAgcmVzdWx0ID0gYXdhaXQgcnVudGltZUNoZWNrKGNsaWVudCwgb3B0aW9ucy5waXBlbGluZUlkLCBzdGVwcyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMuc3RyaWN0KSB0aHJvdyBlcnJvcjtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ1J1bi10aW1lIHBsdWdpbiBjaGVjayBjb3VsZCBub3QgcnVuIOKAlCBjb250aW51aW5nIChwYXNzIC0tc3RyaWN0IHRvIGZhaWwgaW5zdGVhZCknLCB7IGVycm9yOiBlcnJvck1lc3NhZ2UoZXJyb3IpIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmpzb24pIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlc3VsdCwgbnVsbCwgMikpO1xuICAgICAgICBwcmludFNlY3Rpb24oYFZlcmRpY3Q6ICR7VkVSRElDVF9TVFlMRVtyZXN1bHQudmVyZGljdF0hKHJlc3VsdC52ZXJkaWN0LnRvVXBwZXJDYXNlKCkpfWApO1xuICAgICAgICBmb3IgKGNvbnN0IHN0ZXAgb2YgcmVzdWx0LnN0ZXBzKSB7XG4gICAgICAgICAgaWYgKHN0ZXAudmVyZGljdCA9PT0gJ29rJykgY29udGludWU7XG4gICAgICAgICAgZm9yIChjb25zdCByZWFzb24gb2Ygc3RlcC5yZWFzb25zKSB7XG4gICAgICAgICAgICBjb25zdCBzZXYgPSByZWFzb24uc2V2ZXJpdHkgPz8gc3RlcC52ZXJkaWN0O1xuICAgICAgICAgICAgY29uc3QgdGFnID0gKFZFUkRJQ1RfU1RZTEVbc2V2XSA/PyB5ZWxsb3cpKGBbJHtzZXYudG9VcHBlckNhc2UoKX1dYCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgICAke3RhZ30gJHtzdGVwLnN0ZXBLZXl9ICgke3N0ZXAuaW1hZ2VEaWdlc3Quc2xpY2UoMCwgMTkpfeKApikgJHtyZWFzb24uY29kZX06ICR7cmVhc29uLm1lc3NhZ2V9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZsYWdnZWQgPSByZXN1bHQuc3RlcHMuZmlsdGVyKChzKSA9PiBzLnZlcmRpY3QgIT09ICdvaycpLmxlbmd0aDtcbiAgICAgICAgaWYgKHJlc3VsdC52ZXJkaWN0ID09PSAnb2snKSBwcmludFN1Y2Nlc3MoJ1J1bi10aW1lIHBsdWdpbiBjaGVjazogbm8gZmluZGluZ3MnKTtcbiAgICAgICAgZWxzZSBwcmludFdhcm5pbmcoYFJ1bi10aW1lIHBsdWdpbiBjaGVjazogJHtmbGFnZ2VkfSBzdGVwKHMpIHdpdGggZmluZGluZ3MgKHdvcnN0OiAke3Jlc3VsdC52ZXJkaWN0fSkg4oCUIHJlcG9ydGVkLCBub3QgZW5mb3JjZWRgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3BsdWdpbi12ZXJpZnknLCBleGVjdXRpb25JZCwgcGlwZWxpbmVJZDogb3B0aW9ucy5waXBlbGluZUlkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","
|
|
1
|
+
{"version":3,"file":"version.d.ts","sources":["../../src/commands/version.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoFpC;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuJ9C"}
|