@aws-cdk/toolkit-lib 1.30.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/build-info.json +2 -2
  2. package/lib/actions/bootstrap/index.d.ts +5 -0
  3. package/lib/actions/bootstrap/index.js +35 -2
  4. package/lib/actions/deploy/index.d.ts +6 -0
  5. package/lib/actions/deploy/index.js +1 -1
  6. package/lib/actions/destroy/index.d.ts +6 -0
  7. package/lib/actions/destroy/index.js +1 -1
  8. package/lib/actions/diff/private/helpers.js +36 -3
  9. package/lib/api/aws-auth/account-cache.js +36 -3
  10. package/lib/api/aws-auth/sdk-provider.js +36 -3
  11. package/lib/api/aws-auth/sdk.d.ts +2 -1
  12. package/lib/api/aws-auth/sdk.js +2 -1
  13. package/lib/api/aws-auth/user-agent.js +35 -2
  14. package/lib/api/aws-auth/util.js +35 -2
  15. package/lib/api/bootstrap/bootstrap-environment.js +35 -2
  16. package/lib/api/bootstrap/bootstrap-props.d.ts +6 -0
  17. package/lib/api/bootstrap/bootstrap-props.js +1 -1
  18. package/lib/api/bootstrap/deploy-bootstrap.js +39 -4
  19. package/lib/api/cloud-assembly/context-store.js +36 -3
  20. package/lib/api/cloud-assembly/environment.js +37 -4
  21. package/lib/api/cloud-assembly/private/context-aware-source.js +35 -2
  22. package/lib/api/cloud-assembly/private/exec.js +35 -2
  23. package/lib/api/cloud-assembly/private/prepare-source.js +39 -6
  24. package/lib/api/cloud-assembly/source-builder.js +37 -4
  25. package/lib/api/cloud-assembly/stack-assembly.js +8 -4
  26. package/lib/api/cloudformation/logical-id-map.js +35 -2
  27. package/lib/api/cloudformation/nested-stack-helpers.js +36 -3
  28. package/lib/api/cloudformation/template-body-parameter.js +42 -6
  29. package/lib/api/deployments/asset-manifest-builder.js +35 -2
  30. package/lib/api/deployments/assets.js +42 -6
  31. package/lib/api/deployments/cfn-api.d.ts +4 -2
  32. package/lib/api/deployments/cfn-api.js +47 -6
  33. package/lib/api/deployments/deploy-stack.d.ts +13 -0
  34. package/lib/api/deployments/deploy-stack.js +29 -9
  35. package/lib/api/deployments/deployment-result.d.ts +7 -1
  36. package/lib/api/deployments/deployment-result.js +1 -1
  37. package/lib/api/deployments/deployments.d.ts +5 -0
  38. package/lib/api/deployments/deployments.js +42 -4
  39. package/lib/api/diagnosing/format-utils.d.ts +29 -0
  40. package/lib/api/diagnosing/format-utils.js +141 -1
  41. package/lib/api/diagnosing/investigate-custom-resource.d.ts +17 -0
  42. package/lib/api/diagnosing/investigate-custom-resource.js +247 -0
  43. package/lib/api/diagnosing/investigate-ecs-service.d.ts +20 -0
  44. package/lib/api/diagnosing/investigate-ecs-service.js +242 -0
  45. package/lib/api/diagnosing/resource-identifiers.d.ts +39 -0
  46. package/lib/api/diagnosing/resource-identifiers.js +90 -0
  47. package/lib/api/diagnosing/resource-investigation.d.ts +2 -30
  48. package/lib/api/diagnosing/resource-investigation.js +9 -289
  49. package/lib/api/diff/diff-formatter.js +11 -8
  50. package/lib/api/drift/drift-formatter.js +20 -17
  51. package/lib/api/garbage-collection/garbage-collector.js +7 -4
  52. package/lib/api/garbage-collection/progress-printer.js +7 -4
  53. package/lib/api/hotswap/hotswap-deployments.js +47 -10
  54. package/lib/api/hotswap/hotswap-template-cache.js +36 -3
  55. package/lib/api/io/private/io-default-messages.js +35 -2
  56. package/lib/api/io/private/message-maker.d.ts +4 -0
  57. package/lib/api/io/private/message-maker.js +3 -1
  58. package/lib/api/io/private/messages.d.ts +5 -0
  59. package/lib/api/io/private/messages.js +55 -2
  60. package/lib/api/io/private/span.js +35 -2
  61. package/lib/api/logs-monitor/logs-monitor.js +40 -4
  62. package/lib/api/network-detector/network-detector.js +37 -4
  63. package/lib/api/notices/cached-data-source.js +35 -2
  64. package/lib/api/notices/filter.js +35 -2
  65. package/lib/api/notices/notices.js +35 -2
  66. package/lib/api/notices/web-data-source.js +35 -2
  67. package/lib/api/refactoring/digest.js +35 -2
  68. package/lib/api/refactoring/stack-definitions.js +40 -4
  69. package/lib/api/resource-import/importer.js +60 -17
  70. package/lib/api/resource-import/migrator.js +42 -6
  71. package/lib/api/rwlock.js +35 -2
  72. package/lib/api/settings.js +38 -5
  73. package/lib/api/source-tracing/private/stack-source-tracing.js +38 -5
  74. package/lib/api/stack-events/resource-errors.d.ts +12 -0
  75. package/lib/api/stack-events/resource-errors.js +2 -1
  76. package/lib/api/stack-events/stack-activity-monitor.d.ts +5 -0
  77. package/lib/api/stack-events/stack-activity-monitor.js +42 -2
  78. package/lib/api/stack-events/stack-event-poller.d.ts +8 -1
  79. package/lib/api/stack-events/stack-event-poller.js +19 -1
  80. package/lib/api/stack-events/stack-progress-monitor.js +35 -2
  81. package/lib/api/toolkit-info.js +7 -4
  82. package/lib/api/tree.js +36 -3
  83. package/lib/api/validate/validate-formatting.js +53 -17
  84. package/lib/api/work-graph/build-destroy-work-graph.js +35 -2
  85. package/lib/api/work-graph/work-graph-builder.js +35 -2
  86. package/lib/context-providers/index.js +35 -2
  87. package/lib/private/activity-printer/current.d.ts +19 -0
  88. package/lib/private/activity-printer/current.js +109 -17
  89. package/lib/private/activity-printer/history.js +50 -14
  90. package/lib/private/tools.js +38 -1
  91. package/lib/toolkit/non-interactive-io-host.js +11 -8
  92. package/lib/toolkit/private/collect-annotation-report.js +35 -2
  93. package/lib/toolkit/private/validation-report.js +36 -3
  94. package/lib/toolkit/toolkit-error.d.ts +20 -0
  95. package/lib/toolkit/toolkit-error.js +30 -2
  96. package/lib/toolkit/toolkit.d.ts +8 -0
  97. package/lib/toolkit/toolkit.js +107 -41
  98. package/lib/toolkit/types.d.ts +22 -0
  99. package/lib/toolkit/types.js +1 -1
  100. package/lib/util/cfn-express.d.ts +24 -0
  101. package/lib/util/cfn-express.js +55 -0
  102. package/lib/util/content-hash.js +35 -2
  103. package/lib/util/directories.js +38 -5
  104. package/lib/util/guess-language.js +36 -3
  105. package/lib/util/index.d.ts +1 -0
  106. package/lib/util/index.js +2 -1
  107. package/lib/util/package-info.js +35 -2
  108. package/lib/util/serialize.js +36 -3
  109. package/lib/util/version-range.js +35 -2
  110. package/lib/util/yaml-cfn.js +36 -3
  111. package/package.json +2 -2
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2026-06-22T16:46:14Z by build-info.sh",
3
- "commit": "d179981"
2
+ "comment": "Generated at 2026-07-01T12:53:33Z by build-info.sh",
3
+ "commit": "629ca49"
4
4
  }
@@ -59,6 +59,11 @@ export interface BootstrapOptions {
59
59
  * @default false
60
60
  */
61
61
  readonly forceDeployment?: boolean;
62
+ /**
63
+ * Whether to deploy the bootstrap stack using CloudFormation Express mode
64
+ * @default false
65
+ */
66
+ readonly express?: boolean;
62
67
  }
63
68
  /**
64
69
  * Parameter values for the bootstrapping template
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
3
36
  if (value !== null && value !== void 0) {
4
37
  if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
@@ -53,7 +86,7 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
53
86
  });
54
87
  Object.defineProperty(exports, "__esModule", { value: true });
55
88
  exports.BootstrapTemplate = exports.BootstrapSource = exports.BootstrapStackParameters = exports.BootstrapEnvironments = void 0;
56
- const path = require("path");
89
+ const path = __importStar(require("path"));
57
90
  const private_1 = require("./private");
58
91
  const private_2 = require("../../api/cloud-assembly/private");
59
92
  const private_3 = require("../../api/io/private");
@@ -208,4 +241,4 @@ class BootstrapTemplate {
208
241
  }
209
242
  }
210
243
  exports.BootstrapTemplate = BootstrapTemplate;
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBRTdCLHVDQUF3RDtBQUV4RCw4REFBOEQ7QUFFOUQsa0RBQWtEO0FBRWxELG1EQUEyRDtBQUMzRCxxQ0FBMkY7QUFFM0Y7O0dBRUc7QUFDSCxNQUFhLHFCQUFxQjtJQXFCSztJQXBCckM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFzQjtRQUNwQyxPQUFPLElBQUkscUJBQXFCLENBQUMsSUFBQSxxQ0FBMkIsRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUF3QjtRQUNyRCxPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQWUsRUFBRSxFQUFFOzs7Z0JBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUEsb0JBQVUsRUFBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ2pELE1BQVksUUFBUSxrQ0FBRyxNQUFNLElBQUEsNEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFBLENBQUM7Z0JBQzlELE1BQU0sZUFBZSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBVSxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7O1NBQ3ZFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxXQUFzRjtRQUF0RixnQkFBVyxHQUFYLFdBQVcsQ0FBMkU7SUFFM0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQWU7UUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQXBDRCxzREFvQ0M7QUFxSkQ7O0dBRUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNuQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUEyQjtRQUMvQyxPQUFPLElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBMkI7UUFDcEQsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxVQUFVLENBQXVCO0lBQ2pDLHNCQUFzQixDQUFVO0lBRWhELFlBQW9CLE1BQTRCLEVBQUUscUJBQXFCLEdBQUcsSUFBSTtRQUM1RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBaENELDREQWdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBb0I7UUFDeEMsT0FBTztZQUNMLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFlBQVk7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBakJELDBDQWlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFzQlM7SUFyQnJDOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBcUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ2hGLElBQUksUUFBYSxDQUFDO1FBRWxCLFFBQVEsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLEtBQUssUUFBUTtnQkFDWCxRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekQsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSw0QkFBcUIsRUFBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZJLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFxQyxRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUExQ0QsOENBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IGVudmlyb25tZW50c0Zyb21EZXNjcmlwdG9ycyB9IGZyb20gJy4vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEFMTF9TVEFDS1MgfSBmcm9tICcuLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElJb0hvc3QgfSBmcm9tICcuLi8uLi9hcGkvaW8nO1xuaW1wb3J0IHsgYXNJb0hlbHBlciB9IGZyb20gJy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tU291cmNlIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IGJ1bmRsZWRQYWNrYWdlUm9vdERpciwgbG9hZFN0cnVjdHVyZWRGaWxlLCBzZXJpYWxpemVTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBDcmVhdGUgbWFuYWdlIGJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgZnJvbSBhIGxpc3Qgb2YgZW52aXJvbm1lbnQgZGVzY3JpcHRvcnNcbiAgICogTGlzdCBvZiBzdHJpbmdzIGxpa2UgYFsnYXdzOi8vMDEyMzQ1Njc4OTEyL3VzLWVhc3QtMScsICdhd3M6Ly8yMzQ1Njc4OTAxMjMvZXUtd2VzdC0xJ11gXG4gICAqL1xuICBzdGF0aWMgZnJvbUxpc3QoZW52aXJvbm1lbnRzOiBzdHJpbmdbXSk6IEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBFbnZpcm9ubWVudHMoZW52aXJvbm1lbnRzRnJvbURlc2NyaXB0b3JzKGVudmlyb25tZW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBzdGF0aWMgZnJvbUNsb3VkQXNzZW1ibHlTb3VyY2UoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlKTogQm9vdHN0cmFwRW52aXJvbm1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcEVudmlyb25tZW50cyhhc3luYyAoaW9Ib3N0OiBJSW9Ib3N0KSA9PiB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIoaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZShpb0hlbHBlciwgY3gpO1xuICAgICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoQUxMX1NUQUNLUyk7XG4gICAgICByZXR1cm4gc3RhY2tDb2xsZWN0aW9uLnN0YWNrQXJ0aWZhY3RzLm1hcChzdGFjayA9PiBzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW52UHJvdmlkZXI6IGN4YXBpLkVudmlyb25tZW50W10gfCAoKGlvSG9zdDogSUlvSG9zdCkgPT4gUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPikpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdGhlIGJvb3RzdHJhcCBlbnZpb3JubWVudHNcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBnZXRFbnZpcm9ubWVudHMoaW9Ib3N0OiBJSW9Ib3N0KTogUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5lbnZQcm92aWRlcikpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudlByb3ZpZGVyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnZQcm92aWRlcihpb0hvc3QpO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIHdoZW4gZGVwbG95aW5nIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwRW52aXJvbm1lbnRQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgc291cmNlIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBvbmx5IGNyZWF0ZSBpdCBhbmQgbGVhdmUgaXQgaW4gcmV2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIGZvciBjZGt0b29sa2l0IHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tcHJvdGVjdC1zdGFja3MuaHRtbFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIGRlcGxveW1lbnQgaWYgYSBib290c3RyYXAgc3RhY2sgYWxyZWFkeSBleGlzdHNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGFyYW1ldGVyIHZhbHVlcyBmb3IgdGhlIGJvb3RzdHJhcHBpbmcgdGVtcGxhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRvIGJlIGdpdmVuIHRvIHRoZSBDREsgQm9vdHN0cmFwIGJ1Y2tldFxuICAgKiBCeSBkZWZhdWx0LCBhIG5hbWUgaXMgZ2VuZXJhdGVkIGJ5IENsb3VkRm9ybWF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgYW4gZXhpc3RpbmcgS01TIGtleSB0byBiZSB1c2VkIGZvciBlbmNyeXB0aW5nIGl0ZW1zIGluIHRoZSBidWNrZXRcbiAgICogQnkgZGVmYXVsdCwgdGhlIGRlZmF1bHQgS01TIGtleSBpcyB1c2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSBrbXNLZXlJZD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gY3JlYXRlIGEgbmV3IGN1c3RvbWVyIG1hc3RlciBrZXkgKENNSylcbiAgICpcbiAgICogT25seSBhcHBsaWVzIHRvIG1vZGVybiBib290c3RyYXBwaW5nXG4gICAqIExlZ2FjeSBib290c3RyYXBwaW5nIHdpbGwgbmV2ZXIgY3JlYXRlIGEgQ01LLCBvbmx5IHVzZSB0aGUgZGVmYXVsdCBTMyBrZXlcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUN1c3RvbWVyTWFzdGVyS2V5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgYXJlIHRydXN0ZWQgdG8gZGVwbG95IGludG8gdGhlIGVudmlyb25tZW50IGJlaW5nIGJvb3RzdHJhcHBlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdHJ1c3RlZEFjY291bnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IGFyZSB0cnVzdGVkIHRvIGxvb2sgdXAgdmFsdWVzIGluIHRoZSBlbnZpcm9ubWVudCBiZWluZyBib290c3RyYXBwZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRBY2NvdW50c0Zvckxvb2t1cD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBzaG91bGQgbm90IGJlIHRydXN0ZWQgYnkgdGhlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudFxuICAgKiBJZiB0aGVzZSBhY2NvdW50cyBhcmUgYWxyZWFkeSB0cnVzdGVkLCB0aGV5IHdpbGwgYmUgcmVtb3ZlZCBvbiBib290c3RyYXBwaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB1bnRydXN0ZWRBY2NvdW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOcyBvZiB0aGUgSUFNIG1hbmFnZWQgcG9saWNpZXMgdGhhdCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIHJvbGUgcGVyZm9ybWluZyBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50c1xuICAgKiBJbiBtb3N0IGNhc2VzLCB0aGlzIHdpbGwgYmUgdGhlIEFkbWluaXN0cmF0b3JBY2Nlc3MgcG9saWN5XG4gICAqIEF0IGxlYXN0IG9uZSBwb2xpY3kgaXMgcmVxdWlyZWQgaWYgYHRydXN0ZWRBY2NvdW50c2Agd2VyZSBwYXNzZWRcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUG9saWNpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllciB0byBkaXN0aW5ndWlzaCBtdWx0aXBsZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRzXG4gICAqIFRoZSBkZWZhdWx0IHF1YWxpZmllciBpcyBhbiBhcmJpdHJhcnkgYnV0IHVuaXF1ZSBzdHJpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgJ2huYjY1OWZkcydcbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gZW5hYmxlIFMzIFN0YWdpbmcgQnVja2V0IFB1YmxpYyBBY2Nlc3MgQmxvY2sgQ29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGZvciB1c2luZyB0aGUgZGVmYXVsdCBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZVBlcm1pc3Npb25zQm91bmRhcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGUgY3VzdG9tZXIncyBjdXN0b20gcGVybWlzc2lvbnMgYm91bmRhcnkgZm9yIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbVBlcm1pc3Npb25zQm91bmRhcnk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQ7XG4gIHN0YXR1czogJ3N1Y2Nlc3MnIHwgJ25vLW9wJztcbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb290c3RyYXBSZXN1bHQge1xuICBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50Qm9vdHN0cmFwUmVzdWx0W107XG4gIGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBvZiB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZSB3aXRoIGZsZXhpYmxlIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IEJvb3RzdHJhcFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RhY2ssIHdoaWxlIGtlZXBpbmcgZXhpc3RpbmcgcGFyYW1ldGVycyBmb3IgdW5zcGVjaWZpZWQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoRXhpc3RpbmcocGFyYW1zOiBCb290c3RyYXBQYXJhbWV0ZXJzKSB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBhcyBhIE1hcCBmb3IgZWFzeSBhY2Nlc3MgYW5kIG1hbmlwdWxhdGlvblxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBCb290c3RyYXBQYXJhbWV0ZXJzO1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtcz86IEJvb3RzdHJhcFBhcmFtZXRlcnMsIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1zO1xuICB9XG59XG5cbi8qKlxuICogU291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIGJvb3RzdHJhcCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTb3VyY2Uge1xuICAvKipcbiAgICogVXNlIHRoZSBkZWZhdWx0IGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGRlZmF1bHQoKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7IHNvdXJjZTogJ2RlZmF1bHQnIH07XG4gIH1cblxuICAvKipcbiAgICogVXNlIGEgY3VzdG9tIGJvb3RzdHJhcCB0ZW1wbGF0ZVxuICAgKi9cbiAgc3RhdGljIGN1c3RvbVRlbXBsYXRlKHRlbXBsYXRlRmlsZTogc3RyaW5nKTogQm9vdHN0cmFwT3B0aW9uc1snc291cmNlJ10ge1xuICAgIHJldHVybiB7XG4gICAgICBzb3VyY2U6ICdjdXN0b20nLFxuICAgICAgdGVtcGxhdGVGaWxlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYm9vdHN0cmFwIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHNlcmlhbGl6ZWQgdG8gWUFNTCBvciBKU09OXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBUZW1wbGF0ZSB7XG4gIC8qKlxuICAgKiBMb2FkIGEgYm9vdHN0cmFwIHRlbXBsYXRlIGZyb20gYSBzb3VyY2VcbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZSAtIFRoZSBib290c3RyYXAgdGVtcGxhdGUgc291cmNlIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQSBCb290c3RyYXBUZW1wbGF0ZSBpbnN0YW5jZVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGZyb21Tb3VyY2Uoc291cmNlOiBCb290c3RyYXBPcHRpb25zWydzb3VyY2UnXSA9IHsgc291cmNlOiAnZGVmYXVsdCcgfSk6IFByb21pc2U8Qm9vdHN0cmFwVGVtcGxhdGU+IHtcbiAgICBsZXQgdGVtcGxhdGU6IGFueTtcblxuICAgIHN3aXRjaCAoc291cmNlLnNvdXJjZSkge1xuICAgICAgY2FzZSAnY3VzdG9tJzpcbiAgICAgICAgdGVtcGxhdGUgPSBhd2FpdCBsb2FkU3RydWN0dXJlZEZpbGUoc291cmNlLnRlbXBsYXRlRmlsZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVmYXVsdCc6XG4gICAgICAgIHRlbXBsYXRlID0gYXdhaXQgbG9hZFN0cnVjdHVyZWRGaWxlKHBhdGguam9pbihidW5kbGVkUGFja2FnZVJvb3REaXIoX19kaXJuYW1lKSwgJ2xpYicsICdhcGknLCAnYm9vdHN0cmFwJywgJ2Jvb3RzdHJhcC10ZW1wbGF0ZS55YW1sJykpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFRlbXBsYXRlKHRlbXBsYXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0ZW1wbGF0ZTogYW55KSB7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0ZW1wbGF0ZSBhcyBZQU1MXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0ZW1wbGF0ZSBhcyBhIFlBTUwgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgYXNZQU1MKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZSh0aGlzLnRlbXBsYXRlLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRoZSB0ZW1wbGF0ZSBhcyBKU09OXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0ZW1wbGF0ZSBhcyBhIEpTT04gc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgYXNKU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZSh0aGlzLnRlbXBsYXRlLCB0cnVlKTtcbiAgfVxufVxuIl19
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBRTdCLHVDQUF3RDtBQUV4RCw4REFBOEQ7QUFFOUQsa0RBQWtEO0FBRWxELG1EQUEyRDtBQUMzRCxxQ0FBMkY7QUFFM0Y7O0dBRUc7QUFDSCxNQUFhLHFCQUFxQjtJQXFCSztJQXBCckM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFzQjtRQUNwQyxPQUFPLElBQUkscUJBQXFCLENBQUMsSUFBQSxxQ0FBMkIsRUFBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUF3QjtRQUNyRCxPQUFPLElBQUkscUJBQXFCLENBQUMsS0FBSyxFQUFFLE1BQWUsRUFBRSxFQUFFOzs7Z0JBQ3pELE1BQU0sUUFBUSxHQUFHLElBQUEsb0JBQVUsRUFBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ2pELE1BQVksUUFBUSxrQ0FBRyxNQUFNLElBQUEsNEJBQWtCLEVBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxPQUFBLENBQUM7Z0JBQzlELE1BQU0sZUFBZSxHQUFHLE1BQU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBVSxDQUFDLENBQUM7Z0JBQ2xFLE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7O1NBQ3ZFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFxQyxXQUFzRjtRQUF0RixnQkFBVyxHQUFYLFdBQVcsQ0FBMkU7SUFFM0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLE1BQWU7UUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDRjtBQXBDRCxzREFvQ0M7QUEySkQ7O0dBRUc7QUFDSCxNQUFhLHdCQUF3QjtJQUNuQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUEyQjtRQUMvQyxPQUFPLElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBMkI7UUFDcEQsT0FBTyxJQUFJLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDYSxVQUFVLENBQXVCO0lBQ2pDLHNCQUFzQixDQUFVO0lBRWhELFlBQW9CLE1BQTRCLEVBQUUscUJBQXFCLEdBQUcsSUFBSTtRQUM1RSxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBaENELDREQWdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBb0I7UUFDeEMsT0FBTztZQUNMLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFlBQVk7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBakJELDBDQWlCQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxpQkFBaUI7SUFzQlM7SUFyQnJDOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBcUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ2hGLElBQUksUUFBYSxDQUFDO1FBRWxCLFFBQVEsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLEtBQUssUUFBUTtnQkFDWCxRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekQsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixRQUFRLEdBQUcsTUFBTSxJQUFBLHlCQUFrQixFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSw0QkFBcUIsRUFBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZJLE1BQU07UUFDVixDQUFDO1FBRUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFxQyxRQUFhO1FBQWIsYUFBUSxHQUFSLFFBQVEsQ0FBSztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU07UUFDWCxPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUExQ0QsOENBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB7IGVudmlyb25tZW50c0Zyb21EZXNjcmlwdG9ycyB9IGZyb20gJy4vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB7IEFMTF9TVEFDS1MgfSBmcm9tICcuLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElJb0hvc3QgfSBmcm9tICcuLi8uLi9hcGkvaW8nO1xuaW1wb3J0IHsgYXNJb0hlbHBlciB9IGZyb20gJy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuaW1wb3J0IHsgYXNzZW1ibHlGcm9tU291cmNlIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IGJ1bmRsZWRQYWNrYWdlUm9vdERpciwgbG9hZFN0cnVjdHVyZWRGaWxlLCBzZXJpYWxpemVTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBDcmVhdGUgbWFuYWdlIGJvb3RzdHJhcCBlbnZpcm9ubWVudHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gIC8qKlxuICAgKiBDcmVhdGUgZnJvbSBhIGxpc3Qgb2YgZW52aXJvbm1lbnQgZGVzY3JpcHRvcnNcbiAgICogTGlzdCBvZiBzdHJpbmdzIGxpa2UgYFsnYXdzOi8vMDEyMzQ1Njc4OTEyL3VzLWVhc3QtMScsICdhd3M6Ly8yMzQ1Njc4OTAxMjMvZXUtd2VzdC0xJ11gXG4gICAqL1xuICBzdGF0aWMgZnJvbUxpc3QoZW52aXJvbm1lbnRzOiBzdHJpbmdbXSk6IEJvb3RzdHJhcEVudmlyb25tZW50cyB7XG4gICAgcmV0dXJuIG5ldyBCb290c3RyYXBFbnZpcm9ubWVudHMoZW52aXJvbm1lbnRzRnJvbURlc2NyaXB0b3JzKGVudmlyb25tZW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBmcm9tIGEgY2xvdWQgYXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBzdGF0aWMgZnJvbUNsb3VkQXNzZW1ibHlTb3VyY2UoY3g6IElDbG91ZEFzc2VtYmx5U291cmNlKTogQm9vdHN0cmFwRW52aXJvbm1lbnRzIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcEVudmlyb25tZW50cyhhc3luYyAoaW9Ib3N0OiBJSW9Ib3N0KSA9PiB7XG4gICAgICBjb25zdCBpb0hlbHBlciA9IGFzSW9IZWxwZXIoaW9Ib3N0LCAnYm9vdHN0cmFwJyk7XG4gICAgICBhd2FpdCB1c2luZyBhc3NlbWJseSA9IGF3YWl0IGFzc2VtYmx5RnJvbVNvdXJjZShpb0hlbHBlciwgY3gpO1xuICAgICAgY29uc3Qgc3RhY2tDb2xsZWN0aW9uID0gYXdhaXQgYXNzZW1ibHkuc2VsZWN0U3RhY2tzVjIoQUxMX1NUQUNLUyk7XG4gICAgICByZXR1cm4gc3RhY2tDb2xsZWN0aW9uLnN0YWNrQXJ0aWZhY3RzLm1hcChzdGFjayA9PiBzdGFjay5lbnZpcm9ubWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZW52UHJvdmlkZXI6IGN4YXBpLkVudmlyb25tZW50W10gfCAoKGlvSG9zdDogSUlvSG9zdCkgPT4gUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPikpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgdGhlIGJvb3RzdHJhcCBlbnZpb3JubWVudHNcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBhc3luYyBnZXRFbnZpcm9ubWVudHMoaW9Ib3N0OiBJSW9Ib3N0KTogUHJvbWlzZTxjeGFwaS5FbnZpcm9ubWVudFtdPiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5lbnZQcm92aWRlcikpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudlByb3ZpZGVyO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbnZQcm92aWRlcihpb0hvc3QpO1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQm9vdHN0cmFwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIEJvb3RzdHJhcCBlbnZpcm9ubWVudCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIHdoZW4gZGVwbG95aW5nIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwRW52aXJvbm1lbnRQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgc291cmNlIG9mIHRoZSBib290c3RyYXAgc3RhY2tcbiAgICpcbiAgICogQGRlZmF1bHQgQm9vdHN0cmFwU291cmNlLmRlZmF1bHQoKVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogeyBzb3VyY2U6ICdkZWZhdWx0JyB9IHwgeyBzb3VyY2U6ICdjdXN0b20nOyB0ZW1wbGF0ZUZpbGU6IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBvbmx5IGNyZWF0ZSBpdCBhbmQgbGVhdmUgaXQgaW4gcmV2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUYWdzIGZvciBjZGt0b29sa2l0IHN0YWNrXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrcyBjcmVhdGVkIGJ5IHRoZSBib290c3RyYXAgcHJvY2VzcyBzaG91bGQgYmUgcHJvdGVjdGVkIGZyb20gdGVybWluYXRpb25cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tcHJvdGVjdC1zdGFja3MuaHRtbFxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB0ZXJtaW5hdGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGZvcmNlIGRlcGxveW1lbnQgaWYgYSBib290c3RyYXAgc3RhY2sgYWxyZWFkeSBleGlzdHNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVwbG95IHRoZSBib290c3RyYXAgc3RhY2sgdXNpbmcgQ2xvdWRGb3JtYXRpb24gRXhwcmVzcyBtb2RlXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBleHByZXNzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXIgdmFsdWVzIGZvciB0aGUgYm9vdHN0cmFwcGluZyB0ZW1wbGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcFBhcmFtZXRlcnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgdG8gYmUgZ2l2ZW4gdG8gdGhlIENESyBCb290c3RyYXAgYnVja2V0XG4gICAqIEJ5IGRlZmF1bHQsIGEgbmFtZSBpcyBnZW5lcmF0ZWQgYnkgQ2xvdWRGb3JtYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiBhbiBleGlzdGluZyBLTVMga2V5IHRvIGJlIHVzZWQgZm9yIGVuY3J5cHRpbmcgaXRlbXMgaW4gdGhlIGJ1Y2tldFxuICAgKiBCeSBkZWZhdWx0LCB0aGUgZGVmYXVsdCBLTVMga2V5IGlzIHVzZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YWx1ZSwgb3B0aW9uYWwgYXJndW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBjcmVhdGUgYSBuZXcgY3VzdG9tZXIgbWFzdGVyIGtleSAoQ01LKVxuICAgKlxuICAgKiBPbmx5IGFwcGxpZXMgdG8gbW9kZXJuIGJvb3RzdHJhcHBpbmdcbiAgICogTGVnYWN5IGJvb3RzdHJhcHBpbmcgd2lsbCBuZXZlciBjcmVhdGUgYSBDTUssIG9ubHkgdXNlIHRoZSBkZWZhdWx0IFMzIGtleVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQ3VzdG9tZXJNYXN0ZXJLZXk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBBV1MgYWNjb3VudCBJRHMgdGhhdCBhcmUgdHJ1c3RlZCB0byBkZXBsb3kgaW50byB0aGUgZW52aXJvbm1lbnQgYmVpbmcgYm9vdHN0cmFwcGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICByZWFkb25seSB0cnVzdGVkQWNjb3VudHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgQVdTIGFjY291bnQgSURzIHRoYXQgYXJlIHRydXN0ZWQgdG8gbG9vayB1cCB2YWx1ZXMgaW4gdGhlIGVudmlyb25tZW50IGJlaW5nIGJvb3RzdHJhcHBlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgdHJ1c3RlZEFjY291bnRzRm9yTG9va3VwPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIEFXUyBhY2NvdW50IElEcyB0aGF0IHNob3VsZCBub3QgYmUgdHJ1c3RlZCBieSB0aGUgYm9vdHN0cmFwcGVkIGVudmlyb25tZW50XG4gICAqIElmIHRoZXNlIGFjY291bnRzIGFyZSBhbHJlYWR5IHRydXN0ZWQsIHRoZXkgd2lsbCBiZSByZW1vdmVkIG9uIGJvb3RzdHJhcHBpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIHJlYWRvbmx5IHVudHJ1c3RlZEFjY291bnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBBUk5zIG9mIHRoZSBJQU0gbWFuYWdlZCBwb2xpY2llcyB0aGF0IHNob3VsZCBiZSBhdHRhY2hlZCB0byB0aGUgcm9sZSBwZXJmb3JtaW5nIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnRzXG4gICAqIEluIG1vc3QgY2FzZXMsIHRoaXMgd2lsbCBiZSB0aGUgQWRtaW5pc3RyYXRvckFjY2VzcyBwb2xpY3lcbiAgICogQXQgbGVhc3Qgb25lIHBvbGljeSBpcyByZXF1aXJlZCBpZiBgdHJ1c3RlZEFjY291bnRzYCB3ZXJlIHBhc3NlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXVxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGb3JtYXRpb25FeGVjdXRpb25Qb2xpY2llcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIHRvIGRpc3Rpbmd1aXNoIG11bHRpcGxlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudHNcbiAgICogVGhlIGRlZmF1bHQgcXVhbGlmaWVyIGlzIGFuIGFyYml0cmFyeSBidXQgdW5pcXVlIHN0cmluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAnaG5iNjU5ZmRzJ1xuICAgKi9cbiAgcmVhZG9ubHkgcXVhbGlmaWVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBlbmFibGUgUzMgU3RhZ2luZyBCdWNrZXQgUHVibGljIEFjY2VzcyBCbG9jayBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FjY2Vzc0Jsb2NrQ29uZmlndXJhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZsYWcgZm9yIHVzaW5nIHRoZSBkZWZhdWx0IHBlcm1pc3Npb25zIGJvdW5kYXJ5IGZvciBib290c3RyYXBwaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gdmFsdWUsIG9wdGlvbmFsIGFyZ3VtZW50XG4gICAqL1xuICByZWFkb25seSBleGFtcGxlUGVybWlzc2lvbnNCb3VuZGFyeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgZm9yIHRoZSBjdXN0b21lcidzIGN1c3RvbSBwZXJtaXNzaW9ucyBib3VuZGFyeSBmb3IgYm9vdHN0cmFwcGluZ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHZhbHVlLCBvcHRpb25hbCBhcmd1bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tUGVybWlzc2lvbnNCb3VuZGFyeT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudEJvb3RzdHJhcFJlc3VsdCB7XG4gIGVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudDtcbiAgc3RhdHVzOiAnc3VjY2VzcycgfCAnbm8tb3AnO1xuICBkdXJhdGlvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJvb3RzdHJhcFJlc3VsdCB7XG4gIGVudmlyb25tZW50czogRW52aXJvbm1lbnRCb290c3RyYXBSZXN1bHRbXTtcbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIG9mIHRoZSBib290c3RyYXBwaW5nIHRlbXBsYXRlIHdpdGggZmxleGlibGUgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTdGFja1BhcmFtZXRlcnMge1xuICAvKipcbiAgICogVXNlIG9ubHkgZXhpc3RpbmcgcGFyYW1ldGVycyBvbiB0aGUgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9ubHlFeGlzdGluZygpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFN0YWNrUGFyYW1ldGVycyh7fSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGV4YWN0bHkgdGhlc2UgcGFyYW1ldGVycyBhbmQgcmVtb3ZlIGFueSBvdGhlciBleGlzdGluZyBwYXJhbWV0ZXJzIGZyb20gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleGFjdGx5KHBhcmFtczogQm9vdHN0cmFwUGFyYW1ldGVycykge1xuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwU3RhY2tQYXJhbWV0ZXJzKHBhcmFtcywgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBzdGFjaywgd2hpbGUga2VlcGluZyBleGlzdGluZyBwYXJhbWV0ZXJzIGZvciB1bnNwZWNpZmllZCB2YWx1ZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhFeGlzdGluZyhwYXJhbXM6IEJvb3RzdHJhcFBhcmFtZXRlcnMpIHtcbiAgICByZXR1cm4gbmV3IEJvb3RzdHJhcFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXJzIGFzIGEgTWFwIGZvciBlYXN5IGFjY2VzcyBhbmQgbWFuaXB1bGF0aW9uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVycz86IEJvb3RzdHJhcFBhcmFtZXRlcnM7XG4gIHB1YmxpYyByZWFkb25seSBrZWVwRXhpc3RpbmdQYXJhbWV0ZXJzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocGFyYW1zPzogQm9vdHN0cmFwUGFyYW1ldGVycywgdXNlUHJldmlvdXNQYXJhbWV0ZXJzID0gdHJ1ZSkge1xuICAgIHRoaXMua2VlcEV4aXN0aW5nUGFyYW1ldGVycyA9IHVzZVByZXZpb3VzUGFyYW1ldGVycztcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbXM7XG4gIH1cbn1cblxuLyoqXG4gKiBTb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgYm9vdHN0cmFwIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcFNvdXJjZSB7XG4gIC8qKlxuICAgKiBVc2UgdGhlIGRlZmF1bHQgYm9vdHN0cmFwIHRlbXBsYXRlXG4gICAqL1xuICBzdGF0aWMgZGVmYXVsdCgpOiBCb290c3RyYXBPcHRpb25zWydzb3VyY2UnXSB7XG4gICAgcmV0dXJuIHsgc291cmNlOiAnZGVmYXVsdCcgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgYSBjdXN0b20gYm9vdHN0cmFwIHRlbXBsYXRlXG4gICAqL1xuICBzdGF0aWMgY3VzdG9tVGVtcGxhdGUodGVtcGxhdGVGaWxlOiBzdHJpbmcpOiBCb290c3RyYXBPcHRpb25zWydzb3VyY2UnXSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNvdXJjZTogJ2N1c3RvbScsXG4gICAgICB0ZW1wbGF0ZUZpbGUsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBib290c3RyYXAgdGVtcGxhdGUgdGhhdCBjYW4gYmUgc2VyaWFsaXplZCB0byBZQU1MIG9yIEpTT05cbiAqL1xuZXhwb3J0IGNsYXNzIEJvb3RzdHJhcFRlbXBsYXRlIHtcbiAgLyoqXG4gICAqIExvYWQgYSBib290c3RyYXAgdGVtcGxhdGUgZnJvbSBhIHNvdXJjZVxuICAgKlxuICAgKiBAcGFyYW0gc291cmNlIC0gVGhlIGJvb3RzdHJhcCB0ZW1wbGF0ZSBzb3VyY2UgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJucyBBIEJvb3RzdHJhcFRlbXBsYXRlIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZnJvbVNvdXJjZShzb3VyY2U6IEJvb3RzdHJhcE9wdGlvbnNbJ3NvdXJjZSddID0geyBzb3VyY2U6ICdkZWZhdWx0JyB9KTogUHJvbWlzZTxCb290c3RyYXBUZW1wbGF0ZT4ge1xuICAgIGxldCB0ZW1wbGF0ZTogYW55O1xuXG4gICAgc3dpdGNoIChzb3VyY2Uuc291cmNlKSB7XG4gICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICB0ZW1wbGF0ZSA9IGF3YWl0IGxvYWRTdHJ1Y3R1cmVkRmlsZShzb3VyY2UudGVtcGxhdGVGaWxlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgdGVtcGxhdGUgPSBhd2FpdCBsb2FkU3RydWN0dXJlZEZpbGUocGF0aC5qb2luKGJ1bmRsZWRQYWNrYWdlUm9vdERpcihfX2Rpcm5hbWUpLCAnbGliJywgJ2FwaScsICdib290c3RyYXAnLCAnYm9vdHN0cmFwLXRlbXBsYXRlLnlhbWwnKSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgQm9vdHN0cmFwVGVtcGxhdGUodGVtcGxhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlOiBhbnkpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhlIHRlbXBsYXRlIGFzIFlBTUxcbiAgICpcbiAgICogQHJldHVybnMgVGhlIHRlbXBsYXRlIGFzIGEgWUFNTCBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBhc1lBTUwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VyaWFsaXplU3RydWN0dXJlKHRoaXMudGVtcGxhdGUsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXJpYWxpemUgdGhlIHRlbXBsYXRlIGFzIEpTT05cbiAgICpcbiAgICogQHJldHVybnMgVGhlIHRlbXBsYXRlIGFzIGEgSlNPTiBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyBhc0pTT04oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VyaWFsaXplU3RydWN0dXJlKHRoaXMudGVtcGxhdGUsIHRydWUpO1xuICB9XG59XG4iXX0=
@@ -169,6 +169,12 @@ export interface BaseDeployOptions {
169
169
  * @default false
170
170
  */
171
171
  readonly traceLogs?: boolean;
172
+ /**
173
+ * Whether to deploy with express mode
174
+ *
175
+ * @default false
176
+ */
177
+ readonly express?: boolean;
172
178
  }
173
179
  export interface DeployOptions extends BaseDeployOptions {
174
180
  /**
@@ -45,4 +45,4 @@ class StackParameters {
45
45
  }
46
46
  }
47
47
  exports.StackParameters = StackParameters;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1RkE7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxNQUFhLGVBQWU7SUFDMUI7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQThDO1FBQ2xFLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBOEM7UUFDdkUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVlLFVBQVUsQ0FBa0M7SUFDNUMsc0JBQXNCLENBQVU7SUFFaEQsWUFBb0IsTUFBOEMsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1FBQzlGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE3QkQsMENBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQgfCBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudCB8IEhvdHN3YXBEZXBsb3ltZW50O1xuXG4vKipcbiAqIFVzZSBzdGFjayBBUElzIHRvIHRoZSBkZXBsb3kgc3RhY2sgY2hhbmdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdERlcGxveW1lbnQge1xuICByZWFkb25seSBtZXRob2Q6ICdkaXJlY3QnO1xufVxuXG4vKipcbiAqIFVzZSBjaGFuZ2Utc2V0IEFQSXMgdG8gZGVwbG95IGEgc3RhY2sgY2hhbmdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVNldERlcGxveW1lbnQge1xuICByZWFkb25seSBtZXRob2Q6ICdjaGFuZ2Utc2V0JztcblxuICAvKipcbiAgICogV2hldGhlciB0byBleGVjdXRlIHRoZSBjaGFuZ2VzZXQgb3IgbGVhdmUgaXQgaW4gcmV2aWV3LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBleGVjdXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmFtZSB0byB1c2UgZm9yIHRoZSBDbG91ZEZvcm1hdGlvbiBjaGFuZ2Ugc2V0LlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGEgbmFtZSB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGRyaWZ0LWF3YXJlIGNoYW5nZSBzZXQgdGhhdCBicmluZ3MgYWN0dWFsIHJlc291cmNlIHN0YXRlcyBpbiBsaW5lIHdpdGggdGVtcGxhdGUgZGVmaW5pdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXZlcnREcmlmdD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXhlY3V0ZSBhbiBleGlzdGluZyBjaGFuZ2Ugc2V0IHRoYXQgd2FzIHByZXZpb3VzbHkgY3JlYXRlZFxuICpcbiAqIFRoaXMgYnlwYXNzZXMgY2hhbmdlIHNldCBjcmVhdGlvbiBhbmQgYXNzZXQgcHVibGlzaGluZyBlbnRpcmVseS5cbiAqIFRoZSBzdGFjayBuYW1lIGFuZCBjaGFuZ2Ugc2V0IG5hbWUgbXVzdCByZWZlciB0byBhbiBleGlzdGluZyBjaGFuZ2Ugc2V0XG4gKiBpbiBDUkVBVEVfQ09NUExFVEUgc3RhdHVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZXhlY3V0ZS1jaGFuZ2Utc2V0JztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNoYW5nZSBzZXQgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQZXJmb3JtIGEgJ2hvdHN3YXAnIGRlcGxveW1lbnQgdG8gZGVwbG95IGEgc3RhY2sgY2hhbmdlc1xuICpcbiAqIEEgJ2hvdHN3YXAnIGRlcGxveW1lbnQgd2lsbCBhdHRlbXB0IHRvIHNob3J0LWNpcmN1aXQgQ2xvdWRGb3JtYXRpb25cbiAqIGFuZCB1cGRhdGUgdGhlIGFmZmVjdGVkIHJlc291cmNlcyBsaWtlIExhbWJkYSBmdW5jdGlvbnMgZGlyZWN0bHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3dhcERlcGxveW1lbnQge1xuICByZWFkb25seSBtZXRob2Q6ICdob3Rzd2FwJztcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAgICogQ3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGJ5IEVDUy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBIb3Rzd2FwUHJvcGVydGllcztcblxuICAvKipcbiAgICogRmFsbCBiYWNrIHRvIGEgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCB3aGVuIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgZGV0ZWN0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEbyBub3QgZmFsbCBiYWNrIHRvIGEgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2s/OiBEaXJlY3REZXBsb3ltZW50IHwgQ2hhbmdlU2V0RGVwbG95bWVudDtcbn1cblxuLyoqXG4gKiBXaGVuIHRvIGJ1aWxkIGFzc2V0c1xuICovXG5leHBvcnQgZW51bSBBc3NldEJ1aWxkVGltZSB7XG4gIC8qKlxuICAgKiBCdWlsZCBhbGwgYXNzZXRzIGJlZm9yZSBkZXBsb3lpbmcgdGhlIGZpcnN0IHN0YWNrXG4gICAqXG4gICAqIFRoaXMgaXMgaW50ZW5kZWQgZm9yIGV4cGVuc2l2ZSBEb2NrZXIgaW1hZ2UgYnVpbGRzOyBzbyB0aGF0IGlmIHRoZSBEb2NrZXIgaW1hZ2UgYnVpbGRcbiAgICogZmFpbHMsIG5vIHN0YWNrcyBhcmUgdW5uZWNlc3NhcmlseSBkZXBsb3llZCAod2l0aCB0aGUgYXR0ZW5kYW50IHdhaXQgdGltZSkuXG4gICAqL1xuICBBTExfQkVGT1JFX0RFUExPWSA9ICdhbGwtYmVmb3JlLWRlcGxveScsXG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFzc2V0cyBqdXN0LWluLXRpbWUsIGJlZm9yZSBwdWJsaXNoaW5nXG4gICAqL1xuICBKVVNUX0lOX1RJTUUgPSAnanVzdC1pbi10aW1lJyxcbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBVc2Ugb25seSBleGlzdGluZyBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb25seUV4aXN0aW5nKCkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHt9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgZXhhY3RseSB0aGVzZSBwYXJhbWV0ZXJzIGFuZCByZW1vdmUgYW55IG90aGVyIGV4aXN0aW5nIHBhcmFtZXRlcnMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4YWN0bHkocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHBhcmFtcywgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBzdGFjaywgd2hpbGUga2VlcGluZyBleGlzdGluZyBwYXJhbWV0ZXJzIGZvciB1bnNwZWNpZmllZCB2YWx1ZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhFeGlzdGluZyhwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0sIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gbmV3IE1hcChPYmplY3QuZW50cmllcyhwYXJhbXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIENyaXRlcmlhIGZvciBzZWxlY3Rpbmcgc3RhY2tzIHRvIGRlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRGVwbG95IGV2ZW4gaWYgdGhlIGRlcGxveWVkIHRlbXBsYXRlIGlzIGlkZW50aWNhbCB0byB0aGUgb25lIHdlIGFyZSBhYm91dCB0byBkZXBsb3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZURlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IG1ldGhvZFxuICAgKlxuICAgKiBAZGVmYXVsdCBDaGFuZ2VTZXREZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kPzogRGVwbG95bWVudE1ldGhvZDtcblxuICAvKipcbiAgICogUm9sbGJhY2sgZmFpbGVkIGRlcGxveW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgZmFpbGVkIGR1cmluZyByb2xsYmFja1xuICAgKlxuICAgKiBIYXMgbm8gZWZmZWN0IGlmIGByb2xsYmFja2AgaXMgYGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkZhaWxlZFJlc291cmNlc0R1cmluZ1JvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRm9yY2UgYXNzZXQgcHVibGlzaGluZyBldmVuIGlmIHRoZSBhc3NldHMgaGF2ZSBub3QgY2hhbmdlZFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VBc3NldFB1Ymxpc2hpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXVzZSB0aGUgYXNzZXRzIHdpdGggdGhlIGdpdmVuIGFzc2V0IElEc1xuICAgKi9cbiAgcmVhZG9ubHkgcmV1c2VBc3NldHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGRlcGxveW1lbnRzIChkZXBlbmRlbmN5IHBlcm1pdHRpbmcpIHRvIGV4ZWN1dGUuXG4gICAqIFRoZSBkZWZhdWx0IGlzICcxJywgd2hpY2ggZXhlY3V0ZXMgYWxsIGRlcGxveW1lbnRzIHNlcmlhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzZW5kIGxvZ3MgZnJvbSBhbGwgQ2xvdWRXYXRjaCBsb2cgZ3JvdXBzIGluIHRoZSB0ZW1wbGF0ZVxuICAgKiB0byB0aGUgSW9Ib3N0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFjZUxvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveU9wdGlvbnMgZXh0ZW5kcyBCYXNlRGVwbG95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBUk5zIG9mIFNOUyB0b3BpY3MgdGhhdCBDbG91ZEZvcm1hdGlvbiB3aWxsIG5vdGlmeSB3aXRoIHN0YWNrIHJlbGF0ZWQgZXZlbnRzXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIGF0IGRlcGxveSB0aW1lXG4gICAqIEBkZWZhdWx0IFN0YWNrUGFyYW1ldGVycy5vbmx5RXhpc3RpbmcoKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFN0YWNrUGFyYW1ldGVycztcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQvcHVibGlzaCBhc3NldHMgZm9yIGEgc2luZ2xlIHN0YWNrIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEluZGVwZW5kZW50IG9mIHdoZXRoZXIgc3RhY2tzIGFyZSBiZWluZyBkb25lIGluIHBhcmFsbGVsIG9yIG5vLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldFBhcmFsbGVsaXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgYXNzZXQgYnVpbGRzIHRvIHJ1biBpbiBwYXJhbGxlbFxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgb25seSBoYXMgYW4gZWZmZWN0IGlmIGBhc3NldFBhcmFsbGVsaXNtYCBpcyBzZXQgdG8gYHRydWVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBhc3NldEJ1aWxkQ29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZW4gdG8gYnVpbGQgYXNzZXRzXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGlzIHRoZSBEb2NrZXItZnJpZW5kbHkgZGVmYXVsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgQXNzZXRCdWlsZFRpbWUuQUxMX0JFRk9SRV9ERVBMT1lcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0QnVpbGRUaW1lPzogQXNzZXRCdWlsZFRpbWU7XG59XG5cbi8qKlxuICogUHJvcGVydHkgb3ZlcnJpZGVzIGZvciBFQ1MgaG90c3dhcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY3NIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBUaGUgbG93ZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IG11c3QgcmVtYWluXG4gICAqIGluIHRoZSBSVU5OSU5HIHN0YXRlIGR1cmluZyBhIGRlcGxveW1lbnQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgZGVzaXJlZENvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bUhlYWx0aHlQZXJjZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdXBwZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IGFyZSBhbGxvd2VkXG4gICAqIGluIHRoZSBSVU5OSU5HIG9yIFBFTkRJTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGZvciBhIHNpbmdsZSBzZXJ2aWNlIHRvIHJlYWNoIHN0YWJsZSBzdGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWJpbGl6YXRpb25UaW1lb3V0U2Vjb25kcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3dhcFByb3BlcnRpZXMge1xuICAvKipcbiAgICogRUNTIHNwZWNpZmljIGhvdHN3YXAgcHJvcGVydHkgb3ZlcnJpZGVzXG4gICAqL1xuICByZWFkb25seSBlY3M/OiBFY3NIb3Rzd2FwUHJvcGVydGllcztcbn1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1RkE7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxNQUFhLGVBQWU7SUFDMUI7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQThDO1FBQ2xFLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBOEM7UUFDdkUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVlLFVBQVUsQ0FBa0M7SUFDNUMsc0JBQXNCLENBQVU7SUFFaEQsWUFBb0IsTUFBOEMsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1FBQzlGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE3QkQsMENBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQgfCBFeGVjdXRlQ2hhbmdlU2V0RGVwbG95bWVudCB8IEhvdHN3YXBEZXBsb3ltZW50O1xuXG4vKipcbiAqIFVzZSBzdGFjayBBUElzIHRvIHRoZSBkZXBsb3kgc3RhY2sgY2hhbmdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIERpcmVjdERlcGxveW1lbnQge1xuICByZWFkb25seSBtZXRob2Q6ICdkaXJlY3QnO1xufVxuXG4vKipcbiAqIFVzZSBjaGFuZ2Utc2V0IEFQSXMgdG8gZGVwbG95IGEgc3RhY2sgY2hhbmdlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVNldERlcGxveW1lbnQge1xuICByZWFkb25seSBtZXRob2Q6ICdjaGFuZ2Utc2V0JztcblxuICAvKipcbiAgICogV2hldGhlciB0byBleGVjdXRlIHRoZSBjaGFuZ2VzZXQgb3IgbGVhdmUgaXQgaW4gcmV2aWV3LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBleGVjdXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgbmFtZSB0byB1c2UgZm9yIHRoZSBDbG91ZEZvcm1hdGlvbiBjaGFuZ2Ugc2V0LlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGEgbmFtZSB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbmdlU2V0TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBjaGFuZ2Ugc2V0IGltcG9ydHMgcmVzb3VyY2VzIHRoYXQgYWxyZWFkeSBleGlzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGRyaWZ0LWF3YXJlIGNoYW5nZSBzZXQgdGhhdCBicmluZ3MgYWN0dWFsIHJlc291cmNlIHN0YXRlcyBpbiBsaW5lIHdpdGggdGVtcGxhdGUgZGVmaW5pdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXZlcnREcmlmdD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRXhlY3V0ZSBhbiBleGlzdGluZyBjaGFuZ2Ugc2V0IHRoYXQgd2FzIHByZXZpb3VzbHkgY3JlYXRlZFxuICpcbiAqIFRoaXMgYnlwYXNzZXMgY2hhbmdlIHNldCBjcmVhdGlvbiBhbmQgYXNzZXQgcHVibGlzaGluZyBlbnRpcmVseS5cbiAqIFRoZSBzdGFjayBuYW1lIGFuZCBjaGFuZ2Ugc2V0IG5hbWUgbXVzdCByZWZlciB0byBhbiBleGlzdGluZyBjaGFuZ2Ugc2V0XG4gKiBpbiBDUkVBVEVfQ09NUExFVEUgc3RhdHVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZXhlY3V0ZS1jaGFuZ2Utc2V0JztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNoYW5nZSBzZXQgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQZXJmb3JtIGEgJ2hvdHN3YXAnIGRlcGxveW1lbnQgdG8gZGVwbG95IGEgc3RhY2sgY2hhbmdlc1xuICpcbiAqIEEgJ2hvdHN3YXAnIGRlcGxveW1lbnQgd2lsbCBhdHRlbXB0IHRvIHNob3J0LWNpcmN1aXQgQ2xvdWRGb3JtYXRpb25cbiAqIGFuZCB1cGRhdGUgdGhlIGFmZmVjdGVkIHJlc291cmNlcyBsaWtlIExhbWJkYSBmdW5jdGlvbnMgZGlyZWN0bHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3dhcERlcGxveW1lbnQge1xuICByZWFkb25seSBtZXRob2Q6ICdob3Rzd2FwJztcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAgICogQ3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGJ5IEVDUy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBIb3Rzd2FwUHJvcGVydGllcztcblxuICAvKipcbiAgICogRmFsbCBiYWNrIHRvIGEgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCB3aGVuIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgZGV0ZWN0ZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEbyBub3QgZmFsbCBiYWNrIHRvIGEgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2s/OiBEaXJlY3REZXBsb3ltZW50IHwgQ2hhbmdlU2V0RGVwbG95bWVudDtcbn1cblxuLyoqXG4gKiBXaGVuIHRvIGJ1aWxkIGFzc2V0c1xuICovXG5leHBvcnQgZW51bSBBc3NldEJ1aWxkVGltZSB7XG4gIC8qKlxuICAgKiBCdWlsZCBhbGwgYXNzZXRzIGJlZm9yZSBkZXBsb3lpbmcgdGhlIGZpcnN0IHN0YWNrXG4gICAqXG4gICAqIFRoaXMgaXMgaW50ZW5kZWQgZm9yIGV4cGVuc2l2ZSBEb2NrZXIgaW1hZ2UgYnVpbGRzOyBzbyB0aGF0IGlmIHRoZSBEb2NrZXIgaW1hZ2UgYnVpbGRcbiAgICogZmFpbHMsIG5vIHN0YWNrcyBhcmUgdW5uZWNlc3NhcmlseSBkZXBsb3llZCAod2l0aCB0aGUgYXR0ZW5kYW50IHdhaXQgdGltZSkuXG4gICAqL1xuICBBTExfQkVGT1JFX0RFUExPWSA9ICdhbGwtYmVmb3JlLWRlcGxveScsXG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFzc2V0cyBqdXN0LWluLXRpbWUsIGJlZm9yZSBwdWJsaXNoaW5nXG4gICAqL1xuICBKVVNUX0lOX1RJTUUgPSAnanVzdC1pbi10aW1lJyxcbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBVc2Ugb25seSBleGlzdGluZyBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb25seUV4aXN0aW5nKCkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHt9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgZXhhY3RseSB0aGVzZSBwYXJhbWV0ZXJzIGFuZCByZW1vdmUgYW55IG90aGVyIGV4aXN0aW5nIHBhcmFtZXRlcnMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4YWN0bHkocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHBhcmFtcywgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBzdGFjaywgd2hpbGUga2VlcGluZyBleGlzdGluZyBwYXJhbWV0ZXJzIGZvciB1bnNwZWNpZmllZCB2YWx1ZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhFeGlzdGluZyhwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0sIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gbmV3IE1hcChPYmplY3QuZW50cmllcyhwYXJhbXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIENyaXRlcmlhIGZvciBzZWxlY3Rpbmcgc3RhY2tzIHRvIGRlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogRGVwbG95IGV2ZW4gaWYgdGhlIGRlcGxveWVkIHRlbXBsYXRlIGlzIGlkZW50aWNhbCB0byB0aGUgb25lIHdlIGFyZSBhYm91dCB0byBkZXBsb3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBmb3JjZURlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IG1ldGhvZFxuICAgKlxuICAgKiBAZGVmYXVsdCBDaGFuZ2VTZXREZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSBkZXBsb3ltZW50TWV0aG9kPzogRGVwbG95bWVudE1ldGhvZDtcblxuICAvKipcbiAgICogUm9sbGJhY2sgZmFpbGVkIGRlcGxveW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBvcnBoYW4gcmVzb3VyY2VzIHRoYXQgZmFpbGVkIGR1cmluZyByb2xsYmFja1xuICAgKlxuICAgKiBIYXMgbm8gZWZmZWN0IGlmIGByb2xsYmFja2AgaXMgYGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IG9ycGhhbkZhaWxlZFJlc291cmNlc0R1cmluZ1JvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRm9yY2UgYXNzZXQgcHVibGlzaGluZyBldmVuIGlmIHRoZSBhc3NldHMgaGF2ZSBub3QgY2hhbmdlZFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VBc3NldFB1Ymxpc2hpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXVzZSB0aGUgYXNzZXRzIHdpdGggdGhlIGdpdmVuIGFzc2V0IElEc1xuICAgKi9cbiAgcmVhZG9ubHkgcmV1c2VBc3NldHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGRlcGxveW1lbnRzIChkZXBlbmRlbmN5IHBlcm1pdHRpbmcpIHRvIGV4ZWN1dGUuXG4gICAqIFRoZSBkZWZhdWx0IGlzICcxJywgd2hpY2ggZXhlY3V0ZXMgYWxsIGRlcGxveW1lbnRzIHNlcmlhbGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBjb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzZW5kIGxvZ3MgZnJvbSBhbGwgQ2xvdWRXYXRjaCBsb2cgZ3JvdXBzIGluIHRoZSB0ZW1wbGF0ZVxuICAgKiB0byB0aGUgSW9Ib3N0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFjZUxvZ3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRlcGxveSB3aXRoIGV4cHJlc3MgbW9kZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwcmVzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFSTnMgb2YgU05TIHRvcGljcyB0aGF0IENsb3VkRm9ybWF0aW9uIHdpbGwgbm90aWZ5IHdpdGggc3RhY2sgcmVsYXRlZCBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGFncyB0byBwYXNzIHRvIENsb3VkRm9ybWF0aW9uIGZvciBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSB0YWdzPzogVGFnW107XG5cbiAgLyoqXG4gICAqIFN0YWNrIHBhcmFtZXRlcnMgZm9yIENsb3VkRm9ybWF0aW9uIHVzZWQgYXQgZGVwbG95IHRpbWVcbiAgICogQGRlZmF1bHQgU3RhY2tQYXJhbWV0ZXJzLm9ubHlFeGlzdGluZygpXG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogU3RhY2tQYXJhbWV0ZXJzO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIGZpbGUgd2hlcmUgc3RhY2sgb3V0cHV0cyB3aWxsIGJlIHdyaXR0ZW4gYWZ0ZXIgYSBzdWNjZXNzZnVsIGRlcGxveSBhcyBKU09OXG4gICAqIEBkZWZhdWx0IC0gT3V0cHV0cyBhcmUgbm90IHdyaXR0ZW4gdG8gYW55IGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dHNGaWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCdWlsZC9wdWJsaXNoIGFzc2V0cyBmb3IgYSBzaW5nbGUgc3RhY2sgaW4gcGFyYWxsZWxcbiAgICpcbiAgICogSW5kZXBlbmRlbnQgb2Ygd2hldGhlciBzdGFja3MgYXJlIGJlaW5nIGRvbmUgaW4gcGFyYWxsZWwgb3Igbm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0UGFyYWxsZWxpc20/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBhc3NldCBidWlsZHMgdG8gcnVuIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBvbmx5IGhhcyBhbiBlZmZlY3QgaWYgYGFzc2V0UGFyYWxsZWxpc21gIGlzIHNldCB0byBgdHJ1ZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0QnVpbGRDb25jdXJyZW5jeT86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIEVDUyBob3Rzd2Fwc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjc0hvdHN3YXBQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBsb3dlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgbXVzdCByZW1haW5cbiAgICogaW4gdGhlIFJVTk5JTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB1cHBlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgYXJlIGFsbG93ZWRcbiAgICogaW4gdGhlIFJVTk5JTkcgb3IgUEVORElORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgdG8gcmVhY2ggc3RhYmxlIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBFQ1Mgc3BlY2lmaWMgaG90c3dhcCBwcm9wZXJ0eSBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGVjcz86IEVjc0hvdHN3YXBQcm9wZXJ0aWVzO1xufVxuIl19
@@ -16,5 +16,11 @@ export interface DestroyOptions {
16
16
  * @default 1
17
17
  */
18
18
  readonly concurrency?: number;
19
+ /**
20
+ * Whether to use express mode to destroy the stack(s)
21
+ *
22
+ * @default false
23
+ */
24
+ readonly express?: boolean;
19
25
  }
20
26
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJuIG9mIHRoZSBJQU0gcm9sZSB0byB1c2UgZm9yIHRoZSBzdGFjayBkZXN0cm95IG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGRlc3Ryb3lzIChkZXBlbmRlbmN5IHBlcm1pdHRpbmcpIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogbnVtYmVyO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJuIG9mIHRoZSBJQU0gcm9sZSB0byB1c2UgZm9yIHRoZSBzdGFjayBkZXN0cm95IG9wZXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGRlc3Ryb3lzIChkZXBlbmRlbmN5IHBlcm1pdHRpbmcpIHRvIGV4ZWN1dGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmN1cnJlbmN5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBleHByZXNzIG1vZGUgdG8gZGVzdHJveSB0aGUgc3RhY2socylcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGV4cHJlc3M/OiBib29sZWFuO1xufVxuIl19
@@ -1,11 +1,44 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.prepareDiff = prepareDiff;
4
37
  exports.appendObject = appendObject;
5
38
  const node_crypto_1 = require("node:crypto");
6
- const fs = require("fs-extra");
39
+ const fs = __importStar(require("fs-extra"));
7
40
  const __1 = require("..");
8
- const cfnApi = require("../../../api/deployments/cfn-api");
41
+ const cfnApi = __importStar(require("../../../api/deployments/cfn-api"));
9
42
  const resource_import_1 = require("../../../api/resource-import");
10
43
  const toolkit_error_1 = require("../../../toolkit/toolkit-error");
11
44
  const util_1 = require("../../../util");
@@ -131,4 +164,4 @@ function appendObject(obj1, obj2) {
131
164
  // Return the modified obj1
132
165
  return obj1;
133
166
  }
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsa0NBaUJDO0FBK0lELG9DQVdDO0FBN0xELDZDQUF5QztBQUd6QywrQkFBK0I7QUFFL0IsMEJBQWdDO0FBS2hDLDJEQUEyRDtBQUczRCxrRUFBMEY7QUFDMUYsa0VBQThEO0FBQzlELHdDQUF5RTtBQUN6RSw0RUFBK0U7QUFFL0UsU0FBZ0IsV0FBVyxDQUN6QixRQUFrQixFQUNsQixNQUF1QixFQUN2QixXQUF3QixFQUN4QixXQUF3QixFQUN4QixPQUFvQjtJQUVwQixRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLGNBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxLQUFLLFlBQVk7WUFDZixPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0UsS0FBSyxZQUFZO1lBQ2YsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RTtZQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUEseUJBQWtCLEVBQUMsdUJBQXVCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQXVCLEVBQUUsT0FBb0I7SUFDeEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQXlCLENBQUM7SUFFOUUsOENBQThD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LENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixDQUFDO1lBQ2xELGFBQWEsRUFBRSxFQUFFLENBQUMsV0FBVztZQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxpQkFBaUI7U0FDekQsQ0FBQyxDQUFDO1FBRUgseURBQXlEO1FBQ3hELFlBQW9CLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUc7WUFDNUMsR0FBRyxNQUFNO1lBQ1QsU0FBUyxFQUFFLGVBQWU7U0FDM0IsQ0FBQztRQUVGLHFDQUFxQztRQUNyQyxJQUFJLGVBQWUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzRSxNQUFNLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixJQUEyQixFQUMzQixJQUEyQjtJQUUzQiwwREFBMEQ7SUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0ICogYXMgY2ZuQXBpIGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cy9jZm4tYXBpJztcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVJbmZvIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2RpZmYnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB7IHJlbW92ZU5vbkltcG9ydFJlc291cmNlcywgUmVzb3VyY2VNaWdyYXRvciB9IGZyb20gJy4uLy4uLy4uL2FwaS9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGRlc2VyaWFsaXplU3RydWN0dXJlLCBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlsJztcbmltcG9ydCB7IG1hcHBpbmdzQnlFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3JlZmFjdG9yL3ByaXZhdGUvbWFwcGluZy1oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVEaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIHN3aXRjaCAob3B0aW9ucy5tZXRob2Q/Lm1ldGhvZCA/PyBEaWZmTWV0aG9kLkNoYW5nZVNldCgpLm1ldGhvZCkge1xuICAgIGNhc2UgJ2xvY2FsLWZpbGUnOlxuICAgICAgcmV0dXJuIGxvY2FsRmlsZURpZmYoc3RhY2tzLCBvcHRpb25zKTtcbiAgICBjYXNlICd0ZW1wbGF0ZS1vbmx5JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgZmFsc2UpO1xuICAgIGNhc2UgJ2NoYW5nZS1zZXQnOlxuICAgICAgcmV0dXJuIGNmbkRpZmYoaW9IZWxwZXIsIHN0YWNrcywgZGVwbG95bWVudHMsIG9wdGlvbnMsIHNka1Byb3ZpZGVyLCB0cnVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5rbm93bkRpZmZNZXRob2QnLCBmb3JtYXRFcnJvck1lc3NhZ2UoYFVua25vd24gZGlmZiBtZXRob2QgJHtvcHRpb25zLm1ldGhvZH1gKSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9jYWxGaWxlRGlmZihzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgb3B0aW9uczogRGlmZk9wdGlvbnMpOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSAob3B0aW9ucy5tZXRob2Q/Lm9wdGlvbnMgPz8ge30pIGFzIExvY2FsRmlsZURpZmZPcHRpb25zO1xuXG4gIC8vIENvbXBhcmUgc2luZ2xlIHN0YWNrIGFnYWluc3QgZml4ZWQgdGVtcGxhdGVcbiAgaWYgKHN0YWNrcy5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdTaW5nbGVTdGFja1JlcXVpcmVkJyxcbiAgICAgICdDYW4gb25seSBzZWxlY3Qgb25lIHN0YWNrIHdoZW4gY29tcGFyaW5nIHRvIGZpeGVkIHRlbXBsYXRlLiBVc2UgLS1leGNsdXNpdmVseSB0byBhdm9pZCBzZWxlY3RpbmcgbXVsdGlwbGUgc3RhY2tzLicsXG4gICAgKTtcbiAgfVxuXG4gIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMobWV0aG9kT3B0aW9ucy5wYXRoKSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUZW1wbGF0ZUZpbGVOb3RGb3VuZCcsIGBUaGVyZSBpcyBubyBmaWxlIGF0ICR7bWV0aG9kT3B0aW9ucy5wYXRofWApO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGZzLnJlYWRGaWxlU3luYyhtZXRob2RPcHRpb25zLnBhdGgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gZGVzZXJpYWxpemVTdHJ1Y3R1cmUoZmlsZSk7XG5cbiAgcmV0dXJuIFt7XG4gICAgb2xkVGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBzdGFja3MuZmlyc3RTdGFjayxcbiAgfV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNmbkRpZmYoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW5jbHVkZUNoYW5nZVNldDogYm9vbGVhbixcbik6IFByb21pc2U8VGVtcGxhdGVJbmZvW10+IHtcbiAgY29uc3QgdGVtcGxhdGVJbmZvcyA9IFtdO1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBDaGFuZ2VTZXREaWZmT3B0aW9ucztcblxuICBjb25zdCBhbGxNYXBwaW5ncyA9IG9wdGlvbnMuaW5jbHVkZU1vdmVzXG4gICAgPyBhd2FpdCBtYXBwaW5nc0J5RW52aXJvbm1lbnQoc3RhY2tzLnN0YWNrQXJ0aWZhY3RzLCBzZGtQcm92aWRlciwgdHJ1ZSlcbiAgICA6IFtdO1xuXG4gIC8vIENvbXBhcmUgTiBzdGFja3MgYWdhaW5zdCBkZXBsb3llZCB0ZW1wbGF0ZXNcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3Muc3RhY2tBcnRpZmFjdHMpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MgPSBhd2FpdCBkZXBsb3ltZW50cy5yZWFkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhcbiAgICAgIHN0YWNrLFxuICAgICAgbWV0aG9kT3B0aW9ucy5jb21wYXJlQWdhaW5zdFByb2Nlc3NlZFRlbXBsYXRlLFxuICAgICk7XG4gICAgY29uc3QgY3VycmVudFRlbXBsYXRlID0gdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLmRlcGxveWVkUm9vdFRlbXBsYXRlO1xuICAgIGNvbnN0IG5lc3RlZFN0YWNrcyA9IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcy5uZXN0ZWRTdGFja3M7XG5cbiAgICBjb25zdCBtaWdyYXRvciA9IG5ldyBSZXNvdXJjZU1pZ3JhdG9yKHsgZGVwbG95bWVudHMsIGlvSGVscGVyIH0pO1xuICAgIGNvbnN0IHJlc291cmNlc1RvSW1wb3J0ID0gYXdhaXQgbWlncmF0b3IudHJ5R2V0UmVzb3VyY2VzKGF3YWl0IGRlcGxveW1lbnRzLnJlc29sdmVFbnZpcm9ubWVudChzdGFjaykpO1xuICAgIGlmIChyZXNvdXJjZXNUb0ltcG9ydCkge1xuICAgICAgcmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKHN0YWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFuZ2VTZXQgPSBpbmNsdWRlQ2hhbmdlU2V0ID8gYXdhaXQgY2ZuQXBpLmNyZWF0ZURpZmZDaGFuZ2VTZXQoaW9IZWxwZXIsIHtcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgc3RhY2ssXG4gICAgICBzZGtQcm92aWRlcixcbiAgICAgIHJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgcGFyYW1ldGVyczogbWV0aG9kT3B0aW9ucy5wYXJhbWV0ZXJzID8/IHt9LFxuICAgICAgZmFpbE9uRXJyb3I6ICEobWV0aG9kT3B0aW9ucy5mYWxsYmFja1RvVGVtcGxhdGUgPz8gdHJ1ZSksXG4gICAgICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlczogbWV0aG9kT3B0aW9ucy5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgICAgIHV1aWQ6IHJhbmRvbVVVSUQoKSxcbiAgICAgIHdpbGxFeGVjdXRlOiBmYWxzZSxcbiAgICB9KSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIElmIHRoZSBjaGFuZ2VzZXQgaW5jbHVkZXMgbmVzdGVkIHN0YWNrcywgZGVzY3JpYmUgZWFjaCBuZXN0ZWQgY2hhbmdlc2V0XG4gICAgLy8gYW5kIGF0dGFjaCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBlbnRyeSBpbiBuZXN0ZWRTdGFja3MuXG4gICAgaWYgKGNoYW5nZVNldCkge1xuICAgICAgYXdhaXQgYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShkZXBsb3ltZW50cywgc3RhY2ssIGNoYW5nZVNldCwgbmVzdGVkU3RhY2tzKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBwaW5ncyA9IGFsbE1hcHBpbmdzLmZpbmQobSA9PlxuICAgICAgbS5lbnZpcm9ubWVudC5yZWdpb24gPT09IHN0YWNrLmVudmlyb25tZW50LnJlZ2lvbiAmJiBtLmVudmlyb25tZW50LmFjY291bnQgPT09IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgKT8ubWFwcGluZ3MgPz8ge307XG5cbiAgICB0ZW1wbGF0ZUluZm9zLnB1c2goe1xuICAgICAgb2xkVGVtcGxhdGU6IGN1cnJlbnRUZW1wbGF0ZSxcbiAgICAgIG5ld1RlbXBsYXRlOiBzdGFjayxcbiAgICAgIGlzSW1wb3J0OiAhIXJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbmVzdGVkU3RhY2tzLFxuICAgICAgY2hhbmdlU2V0LFxuICAgICAgbWFwcGluZ3MsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVtcGxhdGVJbmZvcztcbn1cblxuLyoqXG4gKiBXYWxrIHRoZSByb290IGNoYW5nZXNldCdzIENoYW5nZXMgbG9va2luZyBmb3IgbmVzdGVkIHN0YWNrIHJlc291cmNlc1xuICogdGhhdCBoYXZlIHRoZWlyIG93biBDaGFuZ2VTZXRJZC4gRGVzY3JpYmUgZWFjaCBuZXN0ZWQgY2hhbmdlc2V0IGFuZFxuICogYXR0YWNoIGl0IHRvIHRoZSBtYXRjaGluZyBlbnRyeSBpbiB0aGUgbmVzdGVkU3RhY2tzIG1hcC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzLFxuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICByb290Q2hhbmdlU2V0OiBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIG5lc3RlZFN0YWNrczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudiA9IGF3YWl0IGRlcGxveW1lbnRzLmVudnMuYWNjZXNzU3RhY2tGb3JSZWFkT25seVN0YWNrT3BlcmF0aW9ucyhzdGFjayk7XG4gIGNvbnN0IGNmbiA9IGVudi5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICBmb3IgKGNvbnN0IGNoYW5nZSBvZiByb290Q2hhbmdlU2V0LkNoYW5nZXMgPz8gW10pIHtcbiAgICBjb25zdCByYyA9IGNoYW5nZS5SZXNvdXJjZUNoYW5nZTtcbiAgICBpZiAocmM/LlJlc291cmNlVHlwZSAhPT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyB8fCAhcmMuQ2hhbmdlU2V0SWQgfHwgIXJjLkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXN0ZWQgPSBuZXN0ZWRTdGFja3NbcmMuTG9naWNhbFJlc291cmNlSWRdO1xuICAgIGlmICghbmVzdGVkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXN0ZWRDaGFuZ2VTZXQgPSBhd2FpdCBjZm4uZGVzY3JpYmVDaGFuZ2VTZXQoe1xuICAgICAgQ2hhbmdlU2V0TmFtZTogcmMuQ2hhbmdlU2V0SWQsXG4gICAgICBTdGFja05hbWU6IHJjLlBoeXNpY2FsUmVzb3VyY2VJZCA/PyByYy5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICB9KTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGVudHJ5IHdpdGggb25lIHRoYXQgaW5jbHVkZXMgdGhlIGNoYW5nZXNldFxuICAgIChuZXN0ZWRTdGFja3MgYXMgYW55KVtyYy5Mb2dpY2FsUmVzb3VyY2VJZF0gPSB7XG4gICAgICAuLi5uZXN0ZWQsXG4gICAgICBjaGFuZ2VTZXQ6IG5lc3RlZENoYW5nZVNldCxcbiAgICB9O1xuXG4gICAgLy8gUmVjdXJzZSBpbnRvIGRlZXBlciBuZXN0aW5nIGxldmVsc1xuICAgIGlmIChuZXN0ZWRDaGFuZ2VTZXQgJiYgT2JqZWN0LmtleXMobmVzdGVkLm5lc3RlZFN0YWNrVGVtcGxhdGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBhdHRhY2hOZXN0ZWRDaGFuZ2VTZXREYXRhKGRlcGxveW1lbnRzLCBzdGFjaywgbmVzdGVkQ2hhbmdlU2V0LCBuZXN0ZWQubmVzdGVkU3RhY2tUZW1wbGF0ZXMpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGVuZHMgYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyIHRvIG9iajEuXG4gKiBvYmoyIHZhbHVlcyB0YWtlIHByaW9yaXR5IGluIHRoZSBjYXNlIG9mIGNvbGxpc2lvbnMuXG4gKlxuICogQHBhcmFtIG9iajEgLSBUaGUgb2JqZWN0IHRvIG1vZGlmeVxuICogQHBhcmFtIG9iajIgLSBUaGUgb2JqZWN0IHRvIGNvbnN1bWVcbiAqXG4gKiBAcmV0dXJucyBvYmoxIHdpdGggYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRPYmplY3Q8VD4oXG4gIG9iajE6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbiAgb2JqMjogeyBbbmFtZTogc3RyaW5nXTogVCB9LFxuKTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgLy8gRGlyZWN0bHkgbW9kaWZ5IG9iajEgYnkgYWRkaW5nIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmoyKSB7XG4gICAgb2JqMVtrZXldID0gb2JqMltrZXldO1xuICB9XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmoxXG4gIHJldHVybiBvYmoxO1xufVxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQkEsa0NBaUJDO0FBK0lELG9DQVdDO0FBN0xELDZDQUF5QztBQUd6Qyw2Q0FBK0I7QUFFL0IsMEJBQWdDO0FBS2hDLHlFQUEyRDtBQUczRCxrRUFBMEY7QUFDMUYsa0VBQThEO0FBQzlELHdDQUF5RTtBQUN6RSw0RUFBK0U7QUFFL0UsU0FBZ0IsV0FBVyxDQUN6QixRQUFrQixFQUNsQixNQUF1QixFQUN2QixXQUF3QixFQUN4QixXQUF3QixFQUN4QixPQUFvQjtJQUVwQixRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLGNBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoRSxLQUFLLFlBQVk7WUFDZixPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsS0FBSyxlQUFlO1lBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDN0UsS0FBSyxZQUFZO1lBQ2YsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RTtZQUNFLE1BQU0sSUFBSSw0QkFBWSxDQUFDLG1CQUFtQixFQUFFLElBQUEseUJBQWtCLEVBQUMsdUJBQXVCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztBQUNILENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUFDLE1BQXVCLEVBQUUsT0FBb0I7SUFDeEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8s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LENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixDQUFDO1lBQ2xELGFBQWEsRUFBRSxFQUFFLENBQUMsV0FBVztZQUM3QixTQUFTLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxpQkFBaUI7U0FDekQsQ0FBQyxDQUFDO1FBRUgseURBQXlEO1FBQ3hELFlBQW9CLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEdBQUc7WUFDNUMsR0FBRyxNQUFNO1lBQ1QsU0FBUyxFQUFFLGVBQWU7U0FDM0IsQ0FBQztRQUVGLHFDQUFxQztRQUNyQyxJQUFJLGVBQWUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzRSxNQUFNLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixJQUEyQixFQUMzQixJQUEyQjtJQUUzQiwwREFBMEQ7SUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgRGVzY3JpYmVDaGFuZ2VTZXRDb21tYW5kT3V0cHV0IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IE5lc3RlZFN0YWNrVGVtcGxhdGVzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2Nsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0ICogYXMgY2ZuQXBpIGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cy9jZm4tYXBpJztcbmltcG9ydCB0eXBlIHsgVGVtcGxhdGVJbmZvIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2RpZmYnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uLy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB7IHJlbW92ZU5vbkltcG9ydFJlc291cmNlcywgUmVzb3VyY2VNaWdyYXRvciB9IGZyb20gJy4uLy4uLy4uL2FwaS9yZXNvdXJjZS1pbXBvcnQnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGRlc2VyaWFsaXplU3RydWN0dXJlLCBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi91dGlsJztcbmltcG9ydCB7IG1hcHBpbmdzQnlFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL3JlZmFjdG9yL3ByaXZhdGUvbWFwcGluZy1oZWxwZXJzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmVEaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIHN3aXRjaCAob3B0aW9ucy5tZXRob2Q/Lm1ldGhvZCA/PyBEaWZmTWV0aG9kLkNoYW5nZVNldCgpLm1ldGhvZCkge1xuICAgIGNhc2UgJ2xvY2FsLWZpbGUnOlxuICAgICAgcmV0dXJuIGxvY2FsRmlsZURpZmYoc3RhY2tzLCBvcHRpb25zKTtcbiAgICBjYXNlICd0ZW1wbGF0ZS1vbmx5JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgZmFsc2UpO1xuICAgIGNhc2UgJ2NoYW5nZS1zZXQnOlxuICAgICAgcmV0dXJuIGNmbkRpZmYoaW9IZWxwZXIsIHN0YWNrcywgZGVwbG95bWVudHMsIG9wdGlvbnMsIHNka1Byb3ZpZGVyLCB0cnVlKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVW5rbm93bkRpZmZNZXRob2QnLCBmb3JtYXRFcnJvck1lc3NhZ2UoYFVua25vd24gZGlmZiBtZXRob2QgJHtvcHRpb25zLm1ldGhvZH1gKSk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9jYWxGaWxlRGlmZihzdGFja3M6IFN0YWNrQ29sbGVjdGlvbiwgb3B0aW9uczogRGlmZk9wdGlvbnMpOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IG1ldGhvZE9wdGlvbnMgPSAob3B0aW9ucy5tZXRob2Q/Lm9wdGlvbnMgPz8ge30pIGFzIExvY2FsRmlsZURpZmZPcHRpb25zO1xuXG4gIC8vIENvbXBhcmUgc2luZ2xlIHN0YWNrIGFnYWluc3QgZml4ZWQgdGVtcGxhdGVcbiAgaWYgKHN0YWNrcy5zdGFja0NvdW50ICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICdTaW5nbGVTdGFja1JlcXVpcmVkJyxcbiAgICAgICdDYW4gb25seSBzZWxlY3Qgb25lIHN0YWNrIHdoZW4gY29tcGFyaW5nIHRvIGZpeGVkIHRlbXBsYXRlLiBVc2UgLS1leGNsdXNpdmVseSB0byBhdm9pZCBzZWxlY3RpbmcgbXVsdGlwbGUgc3RhY2tzLicsXG4gICAgKTtcbiAgfVxuXG4gIGlmICghKGF3YWl0IGZzLnBhdGhFeGlzdHMobWV0aG9kT3B0aW9ucy5wYXRoKSkpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUZW1wbGF0ZUZpbGVOb3RGb3VuZCcsIGBUaGVyZSBpcyBubyBmaWxlIGF0ICR7bWV0aG9kT3B0aW9ucy5wYXRofWApO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IGZzLnJlYWRGaWxlU3luYyhtZXRob2RPcHRpb25zLnBhdGgpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHRlbXBsYXRlID0gZGVzZXJpYWxpemVTdHJ1Y3R1cmUoZmlsZSk7XG5cbiAgcmV0dXJuIFt7XG4gICAgb2xkVGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgIG5ld1RlbXBsYXRlOiBzdGFja3MuZmlyc3RTdGFjayxcbiAgfV07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNmbkRpZmYoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgb3B0aW9uczogRGlmZk9wdGlvbnMsXG4gIHNka1Byb3ZpZGVyOiBTZGtQcm92aWRlcixcbiAgaW5jbHVkZUNoYW5nZVNldDogYm9vbGVhbixcbik6IFByb21pc2U8VGVtcGxhdGVJbmZvW10+IHtcbiAgY29uc3QgdGVtcGxhdGVJbmZvcyA9IFtdO1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBDaGFuZ2VTZXREaWZmT3B0aW9ucztcblxuICBjb25zdCBhbGxNYXBwaW5ncyA9IG9wdGlvbnMuaW5jbHVkZU1vdmVzXG4gICAgPyBhd2FpdCBtYXBwaW5nc0J5RW52aXJvbm1lbnQoc3RhY2tzLnN0YWNrQXJ0aWZhY3RzLCBzZGtQcm92aWRlciwgdHJ1ZSlcbiAgICA6IFtdO1xuXG4gIC8vIENvbXBhcmUgTiBzdGFja3MgYWdhaW5zdCBkZXBsb3llZCB0ZW1wbGF0ZXNcbiAgZm9yIChjb25zdCBzdGFjayBvZiBzdGFja3Muc3RhY2tBcnRpZmFjdHMpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MgPSBhd2FpdCBkZXBsb3ltZW50cy5yZWFkQ3VycmVudFRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyhcbiAgICAgIHN0YWNrLFxuICAgICAgbWV0aG9kT3B0aW9ucy5jb21wYXJlQWdhaW5zdFByb2Nlc3NlZFRlbXBsYXRlLFxuICAgICk7XG4gICAgY29uc3QgY3VycmVudFRlbXBsYXRlID0gdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLmRlcGxveWVkUm9vdFRlbXBsYXRlO1xuICAgIGNvbnN0IG5lc3RlZFN0YWNrcyA9IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcy5uZXN0ZWRTdGFja3M7XG5cbiAgICBjb25zdCBtaWdyYXRvciA9IG5ldyBSZXNvdXJjZU1pZ3JhdG9yKHsgZGVwbG95bWVudHMsIGlvSGVscGVyIH0pO1xuICAgIGNvbnN0IHJlc291cmNlc1RvSW1wb3J0ID0gYXdhaXQgbWlncmF0b3IudHJ5R2V0UmVzb3VyY2VzKGF3YWl0IGRlcGxveW1lbnRzLnJlc29sdmVFbnZpcm9ubWVudChzdGFjaykpO1xuICAgIGlmIChyZXNvdXJjZXNUb0ltcG9ydCkge1xuICAgICAgcmVtb3ZlTm9uSW1wb3J0UmVzb3VyY2VzKHN0YWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFuZ2VTZXQgPSBpbmNsdWRlQ2hhbmdlU2V0ID8gYXdhaXQgY2ZuQXBpLmNyZWF0ZURpZmZDaGFuZ2VTZXQoaW9IZWxwZXIsIHtcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgc3RhY2ssXG4gICAgICBzZGtQcm92aWRlcixcbiAgICAgIHJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgcGFyYW1ldGVyczogbWV0aG9kT3B0aW9ucy5wYXJhbWV0ZXJzID8/IHt9LFxuICAgICAgZmFpbE9uRXJyb3I6ICEobWV0aG9kT3B0aW9ucy5mYWxsYmFja1RvVGVtcGxhdGUgPz8gdHJ1ZSksXG4gICAgICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlczogbWV0aG9kT3B0aW9ucy5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgICAgIHV1aWQ6IHJhbmRvbVVVSUQoKSxcbiAgICAgIHdpbGxFeGVjdXRlOiBmYWxzZSxcbiAgICB9KSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIElmIHRoZSBjaGFuZ2VzZXQgaW5jbHVkZXMgbmVzdGVkIHN0YWNrcywgZGVzY3JpYmUgZWFjaCBuZXN0ZWQgY2hhbmdlc2V0XG4gICAgLy8gYW5kIGF0dGFjaCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBlbnRyeSBpbiBuZXN0ZWRTdGFja3MuXG4gICAgaWYgKGNoYW5nZVNldCkge1xuICAgICAgYXdhaXQgYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShkZXBsb3ltZW50cywgc3RhY2ssIGNoYW5nZVNldCwgbmVzdGVkU3RhY2tzKTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXBwaW5ncyA9IGFsbE1hcHBpbmdzLmZpbmQobSA9PlxuICAgICAgbS5lbnZpcm9ubWVudC5yZWdpb24gPT09IHN0YWNrLmVudmlyb25tZW50LnJlZ2lvbiAmJiBtLmVudmlyb25tZW50LmFjY291bnQgPT09IHN0YWNrLmVudmlyb25tZW50LmFjY291bnQsXG4gICAgKT8ubWFwcGluZ3MgPz8ge307XG5cbiAgICB0ZW1wbGF0ZUluZm9zLnB1c2goe1xuICAgICAgb2xkVGVtcGxhdGU6IGN1cnJlbnRUZW1wbGF0ZSxcbiAgICAgIG5ld1RlbXBsYXRlOiBzdGFjayxcbiAgICAgIGlzSW1wb3J0OiAhIXJlc291cmNlc1RvSW1wb3J0LFxuICAgICAgbmVzdGVkU3RhY2tzLFxuICAgICAgY2hhbmdlU2V0LFxuICAgICAgbWFwcGluZ3MsXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVtcGxhdGVJbmZvcztcbn1cblxuLyoqXG4gKiBXYWxrIHRoZSByb290IGNoYW5nZXNldCdzIENoYW5nZXMgbG9va2luZyBmb3IgbmVzdGVkIHN0YWNrIHJlc291cmNlc1xuICogdGhhdCBoYXZlIHRoZWlyIG93biBDaGFuZ2VTZXRJZC4gRGVzY3JpYmUgZWFjaCBuZXN0ZWQgY2hhbmdlc2V0IGFuZFxuICogYXR0YWNoIGl0IHRvIHRoZSBtYXRjaGluZyBlbnRyeSBpbiB0aGUgbmVzdGVkU3RhY2tzIG1hcC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gYXR0YWNoTmVzdGVkQ2hhbmdlU2V0RGF0YShcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzLFxuICBzdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICByb290Q2hhbmdlU2V0OiBEZXNjcmliZUNoYW5nZVNldENvbW1hbmRPdXRwdXQsXG4gIG5lc3RlZFN0YWNrczogeyBbbG9naWNhbElkOiBzdHJpbmddOiBOZXN0ZWRTdGFja1RlbXBsYXRlcyB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGVudiA9IGF3YWl0IGRlcGxveW1lbnRzLmVudnMuYWNjZXNzU3RhY2tGb3JSZWFkT25seVN0YWNrT3BlcmF0aW9ucyhzdGFjayk7XG4gIGNvbnN0IGNmbiA9IGVudi5zZGsuY2xvdWRGb3JtYXRpb24oKTtcblxuICBmb3IgKGNvbnN0IGNoYW5nZSBvZiByb290Q2hhbmdlU2V0LkNoYW5nZXMgPz8gW10pIHtcbiAgICBjb25zdCByYyA9IGNoYW5nZS5SZXNvdXJjZUNoYW5nZTtcbiAgICBpZiAocmM/LlJlc291cmNlVHlwZSAhPT0gJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyB8fCAhcmMuQ2hhbmdlU2V0SWQgfHwgIXJjLkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXN0ZWQgPSBuZXN0ZWRTdGFja3NbcmMuTG9naWNhbFJlc291cmNlSWRdO1xuICAgIGlmICghbmVzdGVkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXN0ZWRDaGFuZ2VTZXQgPSBhd2FpdCBjZm4uZGVzY3JpYmVDaGFuZ2VTZXQoe1xuICAgICAgQ2hhbmdlU2V0TmFtZTogcmMuQ2hhbmdlU2V0SWQsXG4gICAgICBTdGFja05hbWU6IHJjLlBoeXNpY2FsUmVzb3VyY2VJZCA/PyByYy5Mb2dpY2FsUmVzb3VyY2VJZCxcbiAgICB9KTtcblxuICAgIC8vIFJlcGxhY2UgdGhlIGVudHJ5IHdpdGggb25lIHRoYXQgaW5jbHVkZXMgdGhlIGNoYW5nZXNldFxuICAgIChuZXN0ZWRTdGFja3MgYXMgYW55KVtyYy5Mb2dpY2FsUmVzb3VyY2VJZF0gPSB7XG4gICAgICAuLi5uZXN0ZWQsXG4gICAgICBjaGFuZ2VTZXQ6IG5lc3RlZENoYW5nZVNldCxcbiAgICB9O1xuXG4gICAgLy8gUmVjdXJzZSBpbnRvIGRlZXBlciBuZXN0aW5nIGxldmVsc1xuICAgIGlmIChuZXN0ZWRDaGFuZ2VTZXQgJiYgT2JqZWN0LmtleXMobmVzdGVkLm5lc3RlZFN0YWNrVGVtcGxhdGVzKS5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCBhdHRhY2hOZXN0ZWRDaGFuZ2VTZXREYXRhKGRlcGxveW1lbnRzLCBzdGFjaywgbmVzdGVkQ2hhbmdlU2V0LCBuZXN0ZWQubmVzdGVkU3RhY2tUZW1wbGF0ZXMpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFwcGVuZHMgYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyIHRvIG9iajEuXG4gKiBvYmoyIHZhbHVlcyB0YWtlIHByaW9yaXR5IGluIHRoZSBjYXNlIG9mIGNvbGxpc2lvbnMuXG4gKlxuICogQHBhcmFtIG9iajEgLSBUaGUgb2JqZWN0IHRvIG1vZGlmeVxuICogQHBhcmFtIG9iajIgLSBUaGUgb2JqZWN0IHRvIGNvbnN1bWVcbiAqXG4gKiBAcmV0dXJucyBvYmoxIHdpdGggYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRPYmplY3Q8VD4oXG4gIG9iajE6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbiAgb2JqMjogeyBbbmFtZTogc3RyaW5nXTogVCB9LFxuKTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgLy8gRGlyZWN0bHkgbW9kaWZ5IG9iajEgYnkgYWRkaW5nIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmoyKSB7XG4gICAgb2JqMVtrZXldID0gb2JqMltrZXldO1xuICB9XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmoxXG4gIHJldHVybiBvYmoxO1xufVxuIl19
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.AccountAccessKeyCache = void 0;
4
- const path = require("path");
5
- const fs = require("fs-extra");
37
+ const path = __importStar(require("path"));
38
+ const fs = __importStar(require("fs-extra"));
6
39
  const util_1 = require("../../util");
7
40
  /**
8
41
  * Disk cache which maps access key IDs to account IDs.
@@ -105,4 +138,4 @@ class AccountAccessKeyCache {
105
138
  }
106
139
  }
107
140
  exports.AccountAccessKeyCache = AccountAccessKeyCache;
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFjY291bnQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixxQ0FBeUM7QUFFekM7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFxQjtJQUNoQzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRTFDOztPQUVHO0lBQ0ksTUFBTSxLQUFLLFlBQVk7UUFDNUIsd0ZBQXdGO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGtCQUFXLEdBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFZ0IsU0FBUyxDQUFTO0lBRWxCLEtBQUssQ0FBaUM7SUFFdkQ7O09BRUc7SUFDSCxZQUFZLFdBQW1CLHFCQUFxQixDQUFDLFlBQVksRUFBRSxPQUF1QztRQUN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQW9CLFdBQW1CLEVBQUUsUUFBMEI7UUFDbkYsK0RBQStEO1FBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixNQUFNLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELHlFQUF5RTtJQUNsRSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQW1CO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFtQixFQUFFLE9BQWdCO1FBQ3BELElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRS9CLDhCQUE4QjtRQUM5QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDWCxDQUFDO1FBRUQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUMzQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQiwwREFBMEQ7WUFDMUQsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QscUVBQXFFO1lBQ3JFLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsWUFBWSxXQUFXLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBdUM7UUFDM0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixrRUFBa0U7WUFDbEUscUNBQXFDO1lBQ3JDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDckUsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDOztBQXZHSCxzREF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBY2NvdW50IH0gZnJvbSAnLi9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHsgY2RrQ2FjaGVEaXIgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBEaXNrIGNhY2hlIHdoaWNoIG1hcHMgYWNjZXNzIGtleSBJRHMgdG8gYWNjb3VudCBJRHMuXG4gKiBVc2FnZTpcbiAqICAgY2FjaGUuZ2V0KGFjY2Vzc0tleSkgPT4gYWNjb3VudElkIHwgdW5kZWZpbmVkXG4gKiAgIGNhY2hlLnB1dChhY2Nlc3NLZXksIGFjY291bnRJZClcbiAqL1xuZXhwb3J0IGNsYXNzIEFjY291bnRBY2Nlc3NLZXlDYWNoZSB7XG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGNhY2hlLCBhZnRlciB3aGljaCB0aGUgY2FjaGUgd2lsbCBiZSByZXNldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFYX0VOVFJJRVMgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBwYXRoIHVzZWQgZm9yIHRoZSBhY2NvdW50cyBhY2Nlc3Mga2V5IGNhY2hlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBERUZBVUxUX1BBVEgoKTogc3RyaW5nIHtcbiAgICAvLyBuZWVkcyB0byBiZSBhIGdldHRlciBiZWNhdXNlIGNka0NhY2hlRGlyIGNhbiBiZSBzZXQgdmlhIGVudiB2YXJpYWJsZSBhbmQgbWlnaHQgY2hhbmdlXG4gICAgcmV0dXJuIHBhdGguam9pbihjZGtDYWNoZURpcigpLCAnYWNjb3VudHNfcGFydGl0aW9ucy5qc29uJyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRmlsZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWc6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gUGF0aCB0byB0aGUgY2FjaGUgZmlsZVxuICAgKi9cbiAgY29uc3RydWN0b3IoZmlsZVBhdGg6IHN0cmluZyA9IEFjY291bnRBY2Nlc3NLZXlDYWNoZS5ERUZBVUxUX1BBVEgsIGRlYnVnRm46IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgIHRoaXMuY2FjaGVGaWxlID0gZmlsZVBhdGg7XG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnRm47XG4gIH1cblxuICAvKipcbiAgICogVHJpZXMgdG8gZmV0Y2ggdGhlIGFjY291bnQgSUQgZnJvbSBjYWNoZS4gSWYgaXQncyBub3QgaW4gdGhlIGNhY2hlLCBpbnZva2VzXG4gICAqIHRoZSByZXNvbHZlciBmdW5jdGlvbiB3aGljaCBzaG91bGQgcmV0cmlldmUgdGhlIGFjY291bnQgSUQgYW5kIHJldHVybiBpdC5cbiAgICogVGhlbiwgaXQgd2lsbCBiZSBzdG9yZWQgaW50byBkaXNrIGNhY2hlIHJldHVybmVkLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiAgICBjb25zdCBhY2NvdW50SWQgPSBjYWNoZS5mZXRjaChhY2Nlc3NLZXksIGFzeW5jICgpID0+IHtcbiAgICogICAgICByZXR1cm4gYXdhaXQgZmV0Y2hBY2NvdW50SWRGcm9tU29tZXdoZXJlKGFjY2Vzc0tleSk7XG4gICAqICAgIH0pO1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGZldGNoPEEgZXh0ZW5kcyBBY2NvdW50PihhY2Nlc3NLZXlJZDogc3RyaW5nLCByZXNvbHZlcjogKCkgPT4gUHJvbWlzZTxBPikge1xuICAgIC8vIHRyeSB0byBnZXQgYWNjb3VudCBJRCBiYXNlZCBvbiB0aGlzIGFjY2VzcyBrZXkgSUQgZnJvbSBkaXNrLlxuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0KGFjY2Vzc0tleUlkKTtcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlYnVnKGBSZXRyaWV2ZWQgYWNjb3VudCBJRCAke2NhY2hlZC5hY2NvdW50SWR9IGZyb20gZGlzayBjYWNoZWApO1xuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG5cbiAgICAvLyBpZiBpdCdzIG5vdCBpbiB0aGUgY2FjaGUsIHJlc29sdmUgYW5kIHB1dCBpbiBjYWNoZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgcmVzb2x2ZXIoKTtcbiAgICBpZiAoYWNjb3VudCkge1xuICAgICAgYXdhaXQgdGhpcy5wdXQoYWNjZXNzS2V5SWQsIGFjY291bnQpO1xuICAgIH1cblxuICAgIHJldHVybiBhY2NvdW50O1xuICB9XG5cbiAgLyoqIEdldCB0aGUgYWNjb3VudCBJRCBmcm9tIGFuIGFjY2VzcyBrZXkgb3IgdW5kZWZpbmVkIGlmIG5vdCBpbiBjYWNoZSAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0KGFjY2Vzc0tleUlkOiBzdHJpbmcpOiBQcm9taXNlPEFjY291bnQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLmxvYWRNYXAoKTtcbiAgICByZXR1cm4gbWFwW2FjY2Vzc0tleUlkXTtcbiAgfVxuXG4gIC8qKiBQdXQgYSBtYXBwaW5nIGJldHdlZW4gYWNjZXNzIGtleSBhbmQgYWNjb3VudCBJRCAqL1xuICBwdWJsaWMgYXN5bmMgcHV0KGFjY2Vzc0tleUlkOiBzdHJpbmcsIGFjY291bnQ6IEFjY291bnQpIHtcbiAgICBsZXQgbWFwID0gYXdhaXQgdGhpcy5sb2FkTWFwKCk7XG5cbiAgICAvLyBudWtlIGNhY2hlIGlmIGl0J3MgdG9vIGJpZy5cbiAgICBpZiAoT2JqZWN0LmtleXMobWFwKS5sZW5ndGggPj0gQWNjb3VudEFjY2Vzc0tleUNhY2hlLk1BWF9FTlRSSUVTKSB7XG4gICAgICBtYXAgPSB7fTtcbiAgICB9XG5cbiAgICBtYXBbYWNjZXNzS2V5SWRdID0gYWNjb3VudDtcbiAgICBhd2FpdCB0aGlzLnNhdmVNYXAobWFwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1hcCgpOiBQcm9taXNlPHsgW2FjY2Vzc0tleUlkOiBzdHJpbmddOiBBY2NvdW50IH0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRKc29uKHRoaXMuY2FjaGVGaWxlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBpcyBub3QgcmVhZGFibGUuIFRoaXMgaXMgYSBjYWNoZSxcbiAgICAgIC8vIHByZXRlbmQgd2Ugc3VjY2Vzc2Z1bGx5IGxvYWRlZCBhbiBlbXB0eSBtYXAuXG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJyB8fCBlLmNvZGUgPT09ICdFQUNDRVMnKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIC8vIEZpbGUgaXMgbm90IEpTT04sIGNvdWxkIGJlIGNvcnJ1cHRlZCBiZWNhdXNlIG9mIGNvbmN1cnJlbnQgd3JpdGVzLlxuICAgICAgLy8gQWdhaW4sIGFuIGVtcHR5IGNhY2hlIGlzIGZpbmUuXG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlTWFwKG1hcDogeyBbYWNjZXNzS2V5SWQ6IHN0cmluZ106IEFjY291bnQgfSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5lbnN1cmVGaWxlKHRoaXMuY2FjaGVGaWxlKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSnNvbih0aGlzLmNhY2hlRmlsZSwgbWFwLCB7IHNwYWNlczogMiB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBmaWxlL2RpciBpc24ndCB3cml0YWJsZS4gVGhpcyBpcyBhIGNhY2hlLFxuICAgICAgLy8gaWYgd2UgY2FuJ3Qgd3JpdGUgaXQgdGhlbiB0b28gYmFkLlxuICAgICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcgfHwgZS5jb2RlID09PSAnRUFDQ0VTJyB8fCBlLmNvZGUgPT09ICdFUk9GUycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC1jYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFjY291bnQtY2FjaGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUUvQixxQ0FBeUM7QUFFekM7Ozs7O0dBS0c7QUFDSCxNQUFhLHFCQUFxQjtJQUNoQzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRTFDOztPQUVHO0lBQ0ksTUFBTSxLQUFLLFlBQVk7UUFDNUIsd0ZBQXdGO1FBQ3hGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLGtCQUFXLEdBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFZ0IsU0FBUyxDQUFTO0lBRWxCLEtBQUssQ0FBaUM7SUFFdkQ7O09BRUc7SUFDSCxZQUFZLFdBQW1CLHFCQUFxQixDQUFDLFlBQVksRUFBRSxPQUF1QztRQUN4RyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQW9CLFdBQW1CLEVBQUUsUUFBMEI7UUFDbkYsK0RBQStEO1FBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixNQUFNLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELHlFQUF5RTtJQUNsRSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQW1CO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFtQixFQUFFLE9BQWdCO1FBQ3BELElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRS9CLDhCQUE4QjtRQUM5QixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDWCxDQUFDO1FBRUQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUMzQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPO1FBQ25CLElBQUksQ0FBQztZQUNILE9BQU8sTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQiwwREFBMEQ7WUFDMUQsK0NBQStDO1lBQy9DLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDL0MsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QscUVBQXFFO1lBQ3JFLGlDQUFpQztZQUNqQyxJQUFJLENBQUMsWUFBWSxXQUFXLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBdUM7UUFDM0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixrRUFBa0U7WUFDbEUscUNBQXFDO1lBQ3JDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDckUsT0FBTztZQUNULENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDOztBQXZHSCxzREF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBY2NvdW50IH0gZnJvbSAnLi9zZGstcHJvdmlkZXInO1xuaW1wb3J0IHsgY2RrQ2FjaGVEaXIgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBEaXNrIGNhY2hlIHdoaWNoIG1hcHMgYWNjZXNzIGtleSBJRHMgdG8gYWNjb3VudCBJRHMuXG4gKiBVc2FnZTpcbiAqICAgY2FjaGUuZ2V0KGFjY2Vzc0tleSkgPT4gYWNjb3VudElkIHwgdW5kZWZpbmVkXG4gKiAgIGNhY2hlLnB1dChhY2Nlc3NLZXksIGFjY291bnRJZClcbiAqL1xuZXhwb3J0IGNsYXNzIEFjY291bnRBY2Nlc3NLZXlDYWNoZSB7XG4gIC8qKlxuICAgKiBNYXggbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIGNhY2hlLCBhZnRlciB3aGljaCB0aGUgY2FjaGUgd2lsbCBiZSByZXNldC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTUFYX0VOVFJJRVMgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBwYXRoIHVzZWQgZm9yIHRoZSBhY2NvdW50cyBhY2Nlc3Mga2V5IGNhY2hlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdldCBERUZBVUxUX1BBVEgoKTogc3RyaW5nIHtcbiAgICAvLyBuZWVkcyB0byBiZSBhIGdldHRlciBiZWNhdXNlIGNka0NhY2hlRGlyIGNhbiBiZSBzZXQgdmlhIGVudiB2YXJpYWJsZSBhbmQgbWlnaHQgY2hhbmdlXG4gICAgcmV0dXJuIHBhdGguam9pbihjZGtDYWNoZURpcigpLCAnYWNjb3VudHNfcGFydGl0aW9ucy5qc29uJyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRmlsZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVidWc6IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQHBhcmFtIGZpbGVQYXRoIC0gUGF0aCB0byB0aGUgY2FjaGUgZmlsZVxuICAgKi9cbiAgY29uc3RydWN0b3IoZmlsZVBhdGg6IHN0cmluZyA9IEFjY291bnRBY2Nlc3NLZXlDYWNoZS5ERUZBVUxUX1BBVEgsIGRlYnVnRm46IChtc2c6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPikge1xuICAgIHRoaXMuY2FjaGVGaWxlID0gZmlsZVBhdGg7XG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnRm47XG4gIH1cblxuICAvKipcbiAgICogVHJpZXMgdG8gZmV0Y2ggdGhlIGFjY291bnQgSUQgZnJvbSBjYWNoZS4gSWYgaXQncyBub3QgaW4gdGhlIGNhY2hlLCBpbnZva2VzXG4gICAqIHRoZSByZXNvbHZlciBmdW5jdGlvbiB3aGljaCBzaG91bGQgcmV0cmlldmUgdGhlIGFjY291bnQgSUQgYW5kIHJldHVybiBpdC5cbiAgICogVGhlbiwgaXQgd2lsbCBiZSBzdG9yZWQgaW50byBkaXNrIGNhY2hlIHJldHVybmVkLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiAgICBjb25zdCBhY2NvdW50SWQgPSBjYWNoZS5mZXRjaChhY2Nlc3NLZXksIGFzeW5jICgpID0+IHtcbiAgICogICAgICByZXR1cm4gYXdhaXQgZmV0Y2hBY2NvdW50SWRGcm9tU29tZXdoZXJlKGFjY2Vzc0tleSk7XG4gICAqICAgIH0pO1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGZldGNoPEEgZXh0ZW5kcyBBY2NvdW50PihhY2Nlc3NLZXlJZDogc3RyaW5nLCByZXNvbHZlcjogKCkgPT4gUHJvbWlzZTxBPikge1xuICAgIC8vIHRyeSB0byBnZXQgYWNjb3VudCBJRCBiYXNlZCBvbiB0aGlzIGFjY2VzcyBrZXkgSUQgZnJvbSBkaXNrLlxuICAgIGNvbnN0IGNhY2hlZCA9IGF3YWl0IHRoaXMuZ2V0KGFjY2Vzc0tleUlkKTtcbiAgICBpZiAoY2FjaGVkKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlYnVnKGBSZXRyaWV2ZWQgYWNjb3VudCBJRCAke2NhY2hlZC5hY2NvdW50SWR9IGZyb20gZGlzayBjYWNoZWApO1xuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG5cbiAgICAvLyBpZiBpdCdzIG5vdCBpbiB0aGUgY2FjaGUsIHJlc29sdmUgYW5kIHB1dCBpbiBjYWNoZS5cbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgcmVzb2x2ZXIoKTtcbiAgICBpZiAoYWNjb3VudCkge1xuICAgICAgYXdhaXQgdGhpcy5wdXQoYWNjZXNzS2V5SWQsIGFjY291bnQpO1xuICAgIH1cblxuICAgIHJldHVybiBhY2NvdW50O1xuICB9XG5cbiAgLyoqIEdldCB0aGUgYWNjb3VudCBJRCBmcm9tIGFuIGFjY2VzcyBrZXkgb3IgdW5kZWZpbmVkIGlmIG5vdCBpbiBjYWNoZSAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0KGFjY2Vzc0tleUlkOiBzdHJpbmcpOiBQcm9taXNlPEFjY291bnQgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLmxvYWRNYXAoKTtcbiAgICByZXR1cm4gbWFwW2FjY2Vzc0tleUlkXTtcbiAgfVxuXG4gIC8qKiBQdXQgYSBtYXBwaW5nIGJldHdlZW4gYWNjZXNzIGtleSBhbmQgYWNjb3VudCBJRCAqL1xuICBwdWJsaWMgYXN5bmMgcHV0KGFjY2Vzc0tleUlkOiBzdHJpbmcsIGFjY291bnQ6IEFjY291bnQpIHtcbiAgICBsZXQgbWFwID0gYXdhaXQgdGhpcy5sb2FkTWFwKCk7XG5cbiAgICAvLyBudWtlIGNhY2hlIGlmIGl0J3MgdG9vIGJpZy5cbiAgICBpZiAoT2JqZWN0LmtleXMobWFwKS5sZW5ndGggPj0gQWNjb3VudEFjY2Vzc0tleUNhY2hlLk1BWF9FTlRSSUVTKSB7XG4gICAgICBtYXAgPSB7fTtcbiAgICB9XG5cbiAgICBtYXBbYWNjZXNzS2V5SWRdID0gYWNjb3VudDtcbiAgICBhd2FpdCB0aGlzLnNhdmVNYXAobWFwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE1hcCgpOiBQcm9taXNlPHsgW2FjY2Vzc0tleUlkOiBzdHJpbmddOiBBY2NvdW50IH0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGZzLnJlYWRKc29uKHRoaXMuY2FjaGVGaWxlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBpcyBub3QgcmVhZGFibGUuIFRoaXMgaXMgYSBjYWNoZSxcbiAgICAgIC8vIHByZXRlbmQgd2Ugc3VjY2Vzc2Z1bGx5IGxvYWRlZCBhbiBlbXB0eSBtYXAuXG4gICAgICBpZiAoZS5jb2RlID09PSAnRU5PRU5UJyB8fCBlLmNvZGUgPT09ICdFQUNDRVMnKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIC8vIEZpbGUgaXMgbm90IEpTT04sIGNvdWxkIGJlIGNvcnJ1cHRlZCBiZWNhdXNlIG9mIGNvbmN1cnJlbnQgd3JpdGVzLlxuICAgICAgLy8gQWdhaW4sIGFuIGVtcHR5IGNhY2hlIGlzIGZpbmUuXG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlTWFwKG1hcDogeyBbYWNjZXNzS2V5SWQ6IHN0cmluZ106IEFjY291bnQgfSkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5lbnN1cmVGaWxlKHRoaXMuY2FjaGVGaWxlKTtcbiAgICAgIGF3YWl0IGZzLndyaXRlSnNvbih0aGlzLmNhY2hlRmlsZSwgbWFwLCB7IHNwYWNlczogMiB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIEZpbGUgZG9lc24ndCBleGlzdCBvciBmaWxlL2RpciBpc24ndCB3cml0YWJsZS4gVGhpcyBpcyBhIGNhY2hlLFxuICAgICAgLy8gaWYgd2UgY2FuJ3Qgd3JpdGUgaXQgdGhlbiB0b28gYmFkLlxuICAgICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcgfHwgZS5jb2RlID09PSAnRUFDQ0VTJyB8fCBlLmNvZGUgPT09ICdFUk9GUycpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==