@aws-cdk/integ-runner 2.197.8 → 2.197.9

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.
@@ -72,30 +72,36 @@ class ToolkitLibRunnerEngine {
72
72
  // We always create this for ourselves to emit warnings, but potentially
73
73
  // don't pass it to the toolkit.
74
74
  this.ioHost = new IntegRunnerIoHost();
75
- this.toolkit = new toolkit_lib_1.Toolkit({
75
+ this.toolkit = this.createToolkit(options.profile, options.region);
76
+ // @TODO - these options are currently available on the action calls
77
+ // but toolkit-lib needs them at the constructor level.
78
+ // Need to decide what to do with them.
79
+ //
80
+ // Validations
81
+ // - assemblyFailureAt: options.strict ?? options.ignoreErrors
82
+ // Logging
83
+ // - options.color
84
+ // SDK
85
+ // - options.proxy
86
+ // - options.caBundlePath
87
+ // @TODO - similar to the above, but in toolkit-lib these options would go on the IoHost
88
+ // - options.trace
89
+ // - options.verbose
90
+ // - options.json
91
+ }
92
+ /**
93
+ * Creates a Toolkit instance with the given profile and region.
94
+ */
95
+ createToolkit(profile, region) {
96
+ return new toolkit_lib_1.Toolkit({
76
97
  ioHost: this.showOutput ? this.ioHost : new NoopIoHost(),
77
98
  sdkConfig: {
78
99
  baseCredentials: toolkit_lib_1.BaseCredentials.awsCliCompatible({
79
- profile: options.profile,
80
- defaultRegion: options.region,
100
+ profile,
101
+ defaultRegion: region,
81
102
  }),
82
103
  },
83
- // @TODO - these options are currently available on the action calls
84
- // but toolkit-lib needs them at the constructor level.
85
- // Need to decide what to do with them.
86
- //
87
- // Validations
88
- // - assemblyFailureAt: options.strict ?? options.ignoreErrors
89
- // Logging
90
- // - options.color
91
- // SDK
92
- // - options.proxy
93
- // - options.caBundlePath
94
104
  });
95
- // @TODO - similar to the above, but in toolkit-lib these options would go on the IoHost
96
- // - options.trace
97
- // - options.verbose
98
- // - options.json
99
105
  }
100
106
  /**
101
107
  * Synthesizes the CDK app
@@ -149,8 +155,9 @@ class ToolkitLibRunnerEngine {
149
155
  * Lists the stacks in the CDK app
150
156
  */
151
157
  async list(options) {
158
+ const toolkit = this.createToolkit(options.profile ?? this.options.profile, this.options.region);
152
159
  const cx = await this.cx(options);
153
- const stacks = await this.toolkit.list(cx, {
160
+ const stacks = await toolkit.list(cx, {
154
161
  stacks: this.stackSelector(options),
155
162
  });
156
163
  return stacks.map(s => s.name);
@@ -159,8 +166,9 @@ class ToolkitLibRunnerEngine {
159
166
  * Deploys the CDK app
160
167
  */
161
168
  async deploy(options) {
169
+ const toolkit = this.createToolkit(options.profile ?? this.options.profile, this.options.region);
162
170
  const cx = await this.cx(options);
163
- await this.toolkit.deploy(cx, {
171
+ await toolkit.deploy(cx, {
164
172
  roleArn: options.roleArn,
165
173
  traceLogs: options.traceLogs,
166
174
  stacks: this.stackSelector(options),
@@ -174,9 +182,10 @@ class ToolkitLibRunnerEngine {
174
182
  * Watches the CDK app for changes and deploys them automatically
175
183
  */
176
184
  async watch(options, events) {
185
+ const toolkit = this.createToolkit(options.profile ?? this.options.profile, this.options.region);
177
186
  const cx = await this.cx(options);
178
187
  try {
179
- const watcher = await this.toolkit.watch(cx, {
188
+ const watcher = await toolkit.watch(cx, {
180
189
  roleArn: options.roleArn,
181
190
  traceLogs: options.traceLogs,
182
191
  stacks: this.stackSelector(options),
@@ -201,8 +210,9 @@ class ToolkitLibRunnerEngine {
201
210
  * Destroys the CDK app
202
211
  */
203
212
  async destroy(options) {
213
+ const toolkit = this.createToolkit(options.profile ?? this.options.profile, this.options.region);
204
214
  const cx = await this.cx(options);
205
- await this.toolkit.destroy(cx, {
215
+ await toolkit.destroy(cx, {
206
216
  roleArn: options.roleArn,
207
217
  stacks: this.stackSelector(options),
208
218
  });
@@ -341,4 +351,4 @@ class NoopIoHost {
341
351
  return msg.defaultResponse;
342
352
  }
343
353
  }
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sa2l0LWxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLG9FQUE2RDtBQUc3RCxzREFBbUo7QUFDbkosK0JBQStCO0FBQy9CLCtCQUErQjtBQXNDL0I7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQUNoQixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUEwQjtJQUNqQyxVQUFVLENBQVU7SUFDcEIsTUFBTSxDQUFvQjtJQUUzQyxZQUFtQixPQUFnQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRTlDLHdFQUF3RTtRQUN4RSxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFFdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHFCQUFPLENBQUM7WUFDekIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxFQUFFO1lBQ3hELFNBQVMsRUFBRTtnQkFDVCxlQUFlLEVBQUUsNkJBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEQsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO29CQUN4QixhQUFhLEVBQUUsT0FBTyxDQUFDLE1BQU07aUJBQzlCLENBQUM7YUFDSDtZQUNELG9FQUFvRTtZQUNwRSx1REFBdUQ7WUFDdkQsdUNBQXVDO1lBQ3ZDLEVBQUU7WUFDRixjQUFjO1lBQ2QsK0RBQStEO1lBQy9ELFVBQVU7WUFDVixtQkFBbUI7WUFDbkIsTUFBTTtZQUNOLG1CQUFtQjtZQUNuQiwwQkFB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QUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUNsQixHQUFHLEdBQUc7WUFDTixPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVU7SUFDUCxLQUFLLENBQUMsTUFBTTtJQUNuQixDQUFDO0lBQ00sS0FBSyxDQUFDLGVBQWUsQ0FBSSxHQUEwQjtRQUN4RCxPQUFPLEdBQUcsQ0FBQyxlQUFlLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgVU5LTk9XTl9SRUdJT04gfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IHR5cGUgeyBEZWZhdWx0Q2RrT3B0aW9ucyB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYS9saWIvaW50ZWctdGVzdHMnO1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRBc3NlbWJseVNvdXJjZSwgSUlvSG9zdCwgSW9NZXNzYWdlLCBJb1JlcXVlc3QsIElSZWFkYWJsZUNsb3VkQXNzZW1ibHksIE5vbkludGVyYWN0aXZlSW9Ib3N0UHJvcHMsIFN0YWNrU2VsZWN0b3IgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgeyBCYXNlQ3JlZGVudGlhbHMsIEV4cGFuZFN0YWNrU2VsZWN0aW9uLCBNZW1vcnlDb250ZXh0LCBOb25JbnRlcmFjdGl2ZUlvSG9zdCwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSwgVG9vbGtpdCB9IGZyb20gJ0Bhd3MtY2RrL3Rvb2xraXQtbGliJztcbmltcG9ydCAqIGFzIGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgQ3hPcHRpb25zLCBEZXBsb3lPcHRpb25zLCBEZXN0cm95T3B0aW9ucywgSUNkaywgTGlzdE9wdGlvbnMsIFN5bnRoT3B0aW9ucywgV2F0Y2hFdmVudHMsIFdhdGNoT3B0aW9ucyB9IGZyb20gJy4vY2RrLWludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9vbGtpdExpYkVuZ2luZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0byBydW4gdGhlIGNkayBjb21tYW5kcyBmcm9tXG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldFxuICAgKiBpbiB0aGUgZXhlY3V0aW9uIGVudmlyb25tZW50IHRoYXQgd2lsbCBiZSBydW5uaW5nXG4gICAqIHRoZSBjZGsgYXBwXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBlbnYgdmFyc1xuICAgKi9cbiAgcmVhZG9ubHkgZW52PzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNob3cgdGhlIG91dHB1dCBmcm9tIHJ1bm5pbmcgdGhlIENESyBDTElcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNob3dPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIHRoZSBDREsgYXBwIHNob3VsZCBzeW50aGVzaXplIGl0c2VsZiBmb3JcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdG8gdXNlIHdoZW4gYXV0aGVudGljYXRpbmdcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwcm9maWxlIGlzIHBhc3NlZCwgdGhlIGRlZmF1bHQgcHJvZmlsZSBpcyB1c2VkXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgcnVubmVyIGVuZ2luZSBwb3dlcmVkIGRpcmVjdGx5IGJ5IHRoZSB0b29sa2l0LWxpYlxuICovXG5leHBvcnQgY2xhc3MgVG9vbGtpdExpYlJ1bm5lckVuZ2luZSBpbXBsZW1lbnRzIElDZGsge1xuICBwcml2YXRlIHJlYWRvbmx5IHRvb2xraXQ6IFRvb2xraXQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVG9vbGtpdExpYkVuZ2luZU9wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvd091dHB1dDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hvc3Q6IEludGVnUnVubmVySW9Ib3N0O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBUb29sa2l0TGliRW5naW5lT3B0aW9ucykge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5zaG93T3V0cHV0ID0gb3B0aW9ucy5zaG93T3V0cHV0ID8/IGZhbHNlO1xuXG4gICAgLy8gV2UgYWx3YXlzIGNyZWF0ZSB0aGlzIGZvciBvdXJzZWx2ZXMgdG8gZW1pdCB3YXJuaW5ncywgYnV0IHBvdGVudGlhbGx5XG4gICAgLy8gZG9uJ3QgcGFzcyBpdCB0byB0aGUgdG9vbGtpdC5cbiAgICB0aGlzLmlvSG9zdCA9IG5ldyBJbnRlZ1J1bm5lcklvSG9zdCgpO1xuXG4gICAgdGhpcy50b29sa2l0ID0gbmV3IFRvb2xraXQoe1xuICAgICAgaW9Ib3N0OiB0aGlzLnNob3dPdXRwdXQgPyB0aGlzLmlvSG9zdCA6IG5ldyBOb29wSW9Ib3N0KCksXG4gICAgICBzZGtDb25maWc6IHtcbiAgICAgICAgYmFzZUNyZWRlbnRpYWxzOiBCYXNlQ3JlZGVudGlhbHMuYXdzQ2xpQ29tcGF0aWJsZSh7XG4gICAgICAgICAgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlLFxuICAgICAgICAgIGRlZmF1bHRSZWdpb246IG9wdGlvbnMucmVnaW9uLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgICAvLyBAVE9ETyAtIHRoZXNlIG9wdGlvbnMgYXJlIGN1cnJlbnRseSBhdmFpbGFibGUgb24gdGhlIGFjdGlvbiBjYWxsc1xuICAgICAgLy8gYnV0IHRvb2xraXQtbGliIG5lZWRzIHRoZW0gYXQgdGhlIGNvbnN0cnVjdG9yIGxldmVsLlxuICAgICAgLy8gTmVlZCB0byBkZWNpZGUgd2hhdCB0byBkbyB3aXRoIHRoZW0uXG4gICAgICAvL1xuICAgICAgLy8gVmFsaWRhdGlvbnNcbiAgICAgIC8vICAtIGFzc2VtYmx5RmFpbHVyZUF0OiBvcHRpb25zLnN0cmljdCA/PyBvcHRpb25zLmlnbm9yZUVycm9yc1xuICAgICAgLy8gTG9nZ2luZ1xuICAgICAgLy8gIC0gb3B0aW9ucy5jb2xvclxuICAgICAgLy8gU0RLXG4gICAgICAvLyAgLSBvcHRpb25zLnByb3h5XG4gICAgICAvLyAgLSBvcHRpb25zLmNhQnVuZGxlUGF0aFxuICAgIH0pO1xuXG4gICAgLy8gQFRPRE8gLSBzaW1pbGFyIHRvIHRoZSBhYm92ZSwgYnV0IGluIHRvb2xraXQtbGliIHRoZXNlIG9wdGlvbnMgd291bGQgZ28gb24gdGhlIElvSG9zdFxuICAgIC8vICAtIG9wdGlvbnMudHJhY2VcbiAgICAvLyAgLSBvcHRpb25zLnZlcmJvc2VcbiAgICAvLyAgLSBvcHRpb25zLmpzb25cbiAgfVxuXG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyB0aGUgQ0RLIGFwcFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHN5bnRoKG9wdGlvbnM6IFN5bnRoT3B0aW9ucykge1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy5jeCh7XG4gICAgICBhcHA6IG9wdGlvbnMuYXBwLFxuICAgICAgb3V0cHV0OiBvcHRpb25zLm91dHB1dCxcbiAgICAgIGNvbnRleHQ6IG9wdGlvbnMuY29udGV4dCxcbiAgICAgIGxvb2t1cHM6IGZhbHNlLFxuICAgICAgcmVzb2x2ZURlZmF1bHRFbnZpcm9ubWVudDogZmFsc2UsXG4gICAgICBlbnY6IG9wdGlvbnMuZW52LFxuICAgICAgdmVyc2lvblJlcG9ydGluZzogZmFsc2UsXG4gICAgICBwYXRoTWV0YWRhdGE6IGZhbHNlLFxuICAgICAgYXNzZXRNZXRhZGF0YTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdXNpbmcgbG9jayA9IGF3YWl0IHRoaXMudG9vbGtpdC5zeW50aChjeCwge1xuICAgICAgICB2YWxpZGF0ZVN0YWNrczogZmFsc2UsXG4gICAgICAgIHN0YWNrczoge1xuICAgICAgICAgIHN0cmF0ZWd5OiBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LkFMTF9TVEFDS1MsXG4gICAgICAgICAgZmFpbE9uRW1wdHk6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLnZhbGlkYXRlUmVnaW9uKGxvY2spO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUubWVzc2FnZS5pbmNsdWRlcygnTWlzc2luZyBjb250ZXh0IGtleXMnKSkge1xuICAgICAgICAvLyBAVE9ETyAtIHNpbGVudGx5IGlnbm9yZSBtaXNzaW5nIGNvbnRleHRcbiAgICAgICAgLy8gVGhpcyBpcyBhY3R1YWxseSBhbiB1bmRlZmluZWQgY2FzZSBpbiB0aGUgb2xkIGltcGxlbWVudGF0aW9uLCB3aGljaCBkb2Vzbid0IHVzZSB0aGUgdG9vbGtpdCBjb2RlXG4gICAgICAgIC8vIGFuZCB3b24ndCBmYWlsIGZvciBtaXNzaW5nIGNvbnRleHQuIFRvIHByZXNlcnZlIGV4aXN0aW5nIGJlaGF2aW9yLCB3ZSBkbyB0aGUgc2FtZSBoZXJlLlxuICAgICAgICAvLyBIb3dldmVyIGluIGZ1dHVyZSB3ZSBuZWVkIHRvIGZpbmQgYSB3YXkgZm9yIGludGVnIHRlc3RzIHRvIHByb3ZpZGUgY29udGV4dCB0aHJvdWdoIHNuYXBzaG90cy5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdHMgdGhlIHN0YWNrcyBpbiB0aGUgQ0RLIGFwcFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3Qob3B0aW9uczogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgY3ggPSBhd2FpdCB0aGlzLmN4KG9wdGlvbnMpO1xuICAgIGNvbnN0IHN0YWNrcyA9IGF3YWl0IHRoaXMudG9vbGtpdC5saXN0KGN4LCB7XG4gICAgICBzdGFja3M6IHRoaXMuc3RhY2tTZWxlY3RvcihvcHRpb25zKSxcbiAgICB9KTtcblxuICAgIHJldHVybiBzdGFja3MubWFwKHMgPT4gcy5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXBsb3lzIHRoZSBDREsgYXBwXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVwbG95KG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG4gICAgYXdhaXQgdGhpcy50b29sa2l0LmRlcGxveShjeCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgdHJhY2VMb2dzOiBvcHRpb25zLnRyYWNlTG9ncyxcbiAgICAgIHN0YWNrczogdGhpcy5zdGFja1NlbGVjdG9yKG9wdGlvbnMpLFxuICAgICAgZGVwbG95bWVudE1ldGhvZDoge1xuICAgICAgICBtZXRob2Q6ICdjaGFuZ2Utc2V0JyxcbiAgICAgIH0sXG4gICAgICBvdXRwdXRzRmlsZTogb3B0aW9ucy5vdXRwdXRzRmlsZSA/IHBhdGguam9pbih0aGlzLm9wdGlvbnMud29ya2luZ0RpcmVjdG9yeSwgb3B0aW9ucy5vdXRwdXRzRmlsZSkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2hlcyB0aGUgQ0RLIGFwcCBmb3IgY2hhbmdlcyBhbmQgZGVwbG95cyB0aGVtIGF1dG9tYXRpY2FsbHlcbiAgICovXG4gIHB1YmxpYyBhc3luYyB3YXRjaChvcHRpb25zOiBXYXRjaE9wdGlvbnMsIGV2ZW50cz86IFdhdGNoRXZlbnRzKSB7XG4gICAgY29uc3QgY3ggPSBhd2FpdCB0aGlzLmN4KG9wdGlvbnMpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB3YXRjaGVyID0gYXdhaXQgdGhpcy50b29sa2l0LndhdGNoKGN4LCB7XG4gICAgICAgIHJvbGVBcm46IG9wdGlvbnMucm9sZUFybixcbiAgICAgICAgdHJhY2VMb2dzOiBvcHRpb25zLnRyYWNlTG9ncyxcbiAgICAgICAgc3RhY2tzOiB0aGlzLnN0YWNrU2VsZWN0b3Iob3B0aW9ucyksXG4gICAgICAgIGRlcGxveW1lbnRNZXRob2Q6IG9wdGlvbnMuZGVwbG95bWVudE1ldGhvZCxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgd2F0Y2hlci53YWl0Rm9yRW5kKCk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgaWYgKGV2ZW50cz8ub25TdGRlcnIpIHtcbiAgICAgICAgZXZlbnRzLm9uU3RkZXJyKFN0cmluZyhlKSk7XG4gICAgICB9XG4gICAgICBpZiAoZXZlbnRzPy5vbkNsb3NlKSB7XG4gICAgICAgIGV2ZW50cy5vbkNsb3NlKDEpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChldmVudHM/Lm9uQ2xvc2UpIHtcbiAgICAgIGV2ZW50cy5vbkNsb3NlKDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95cyB0aGUgQ0RLIGFwcFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlc3Ryb3kob3B0aW9uczogRGVzdHJveU9wdGlvbnMpIHtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0aGlzLnRvb2xraXQuZGVzdHJveShjeCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgc3RhY2tzOiB0aGlzLnN0YWNrU2VsZWN0b3Iob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkIEFzc2VtYmx5IFNvdXJjZSBmcm9tIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjeChvcHRpb25zOiBDeE9wdGlvbnMpOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgaWYgKCFvcHRpb25zLmFwcCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBhcHAgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiB0aGUgYXBwIGlzIGEgcGF0aCB0byBleGlzdGluZyBzbmFwc2hvdCBhbmQgdGhlbiB1c2UgaXQgYXMgYW4gYXNzZW1ibHkgZGlyZWN0b3J5XG4gICAgY29uc3QgcG90ZW50aWFsQ3hQYXRoID0gcGF0aC5qb2luKHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5LCBvcHRpb25zLmFwcCk7XG4gICAgaWYgKGZzLnBhdGhFeGlzdHNTeW5jKHBvdGVudGlhbEN4UGF0aCkgJiYgZnMuc3RhdFN5bmMocG90ZW50aWFsQ3hQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy50b29sa2l0LmZyb21Bc3NlbWJseURpcmVjdG9yeShwb3RlbnRpYWxDeFBhdGgpO1xuICAgIH1cblxuICAgIGxldCBvdXRkaXI7XG4gICAgaWYgKG9wdGlvbnMub3V0cHV0KSB7XG4gICAgICBvdXRkaXIgPSBwYXRoLmpvaW4odGhpcy5vcHRpb25zLndvcmtpbmdEaXJlY3RvcnksIG9wdGlvbnMub3V0cHV0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50b29sa2l0LmZyb21DZGtBcHAob3B0aW9ucy5hcHAsIHtcbiAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5LFxuICAgICAgb3V0ZGlyLFxuICAgICAgbG9va3Vwczogb3B0aW9ucy5sb29rdXBzLFxuICAgICAgY29udGV4dFN0b3JlOiBuZXcgTWVtb3J5Q29udGV4dChvcHRpb25zLmNvbnRleHQpLFxuICAgICAgcmVzb2x2ZURlZmF1bHRFbnZpcm9ubWVudDogb3B0aW9ucy5yZXNvbHZlRGVmYXVsdEVudmlyb25tZW50LFxuICAgICAgZW52OiB7XG4gICAgICAgIC4uLnRoaXMub3B0aW9ucy5lbnYsXG4gICAgICAgIC4uLm9wdGlvbnMuZW52LFxuICAgICAgfSxcbiAgICAgIHN5bnRoT3B0aW9uczoge1xuICAgICAgICBkZWJ1Zzogb3B0aW9ucy5kZWJ1ZyxcbiAgICAgICAgdmVyc2lvblJlcG9ydGluZzogb3B0aW9ucy52ZXJzaW9uUmVwb3J0aW5nID8/IGZhbHNlLFxuICAgICAgICBwYXRoTWV0YWRhdGE6IG9wdGlvbnMucGF0aE1ldGFkYXRhID8/IGZhbHNlLFxuICAgICAgICBhc3NldE1ldGFkYXRhOiBvcHRpb25zLmFzc2V0TWV0YWRhdGEgPz8gZmFsc2UsXG4gICAgICAgIGFzc2V0U3RhZ2luZzogb3B0aW9ucy5zdGFnaW5nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgU3RhY2tTZWxlY3RvciBmcm9tIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGFja1NlbGVjdG9yKG9wdGlvbnM6IERlZmF1bHRDZGtPcHRpb25zICYgeyByZWFkb25seSBleGNsdXNpdmVseT86IGJvb2xlYW4gfSk6IFN0YWNrU2VsZWN0b3Ige1xuICAgIHJldHVybiB7XG4gICAgICBzdHJhdGVneTogb3B0aW9ucy5hbGwgPyBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LkFMTF9TVEFDS1MgOiBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSCxcbiAgICAgIHBhdHRlcm5zOiBvcHRpb25zLnN0YWNrcyA/PyBbJyoqJ10sXG4gICAgICBleHBhbmQ6IG9wdGlvbnMuZXhjbHVzaXZlbHkgPyBFeHBhbmRTdGFja1NlbGVjdGlvbi5OT05FIDogRXhwYW5kU3RhY2tTZWxlY3Rpb24uVVBTVFJFQU0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB0aGF0IHRoZSByZWdpb25zIGZvciB0aGUgc3RhY2tzIGluIHRoZSBDbG91ZEFzc2VtYmx5IG1hdGNoIHRoZSByZWdpb25zIHJlcXVlc3RlZCBvbiB0aGUgZW5naW5lXG4gICAqXG4gICAqIFRoaXMgcHJldmVudHMgbWlzY29uZmlndXJhdGlvbiBvZiB0aGUgaW50ZWcgdGVzdCBhcHAuIFBlb3BsZSB0ZW5kIHRvIHB1dDpcbiAgICpcbiAgICogYGBgdHNcbiAgICogbmV3IFN0YWNrKGFwcCwgJ1N0YWNrJywge1xuICAgKiAgIGVudjoge1xuICAgKiAgICAgcmVnaW9uOiAnc29tZS1yZWdpb24tdGhhdC1zdWl0cy1tZScsXG4gICAqICAgfVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIEludG8gdGhlaXIgaW50ZWcgdGVzdHMsIGluc3RlYWQgb2Y6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHtcbiAgICogICByZWdpb246IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTixcbiAgICogfVxuICAgKiBgYGBcbiAgICpcbiAgICogVGhpcyBjYXRjaGVzIHRoYXQgbWlzY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGVSZWdpb24oYXNtOiBJUmVhZGFibGVDbG91ZEFzc2VtYmx5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gdGhpcyBoYXBwZW5zIGZvciBleGlzdGluZyBzbmFwc2hvdHMsIGluIHRoYXQgY2FzZSBub3RoaW5nIHRvIGNoZWNrXG4gICAgaWYgKHRoaXMub3B0aW9ucy5yZWdpb24gPT09IFVOS05PV05fUkVHSU9OKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzdGFjayBvZiBhc20uY2xvdWRBc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseSkge1xuICAgICAgaWYgKHN0YWNrLmVudmlyb25tZW50LnJlZ2lvbiAhPT0gdGhpcy5vcHRpb25zLnJlZ2lvbiAmJiBzdGFjay5lbnZpcm9ubWVudC5yZWdpb24gIT09IFVOS05PV05fUkVHSU9OKSB7XG4gICAgICAgIHRoaXMuaW9Ib3N0Lm5vdGlmeSh7XG4gICAgICAgICAgYWN0aW9uOiAnZGVwbG95JyxcbiAgICAgICAgICBjb2RlOiAnQ0RLX1JVTk5FUl9XMDAwMCcsXG4gICAgICAgICAgdGltZTogbmV3IERhdGUoKSxcbiAgICAgICAgICBsZXZlbDogJ3dhcm4nLFxuICAgICAgICAgIG1lc3NhZ2U6IGBTdGFjayAke3N0YWNrLmRpc3BsYXlOYW1lfSBzeW50aGVzaXplcyBmb3IgcmVnaW9uICR7c3RhY2suZW52aXJvbm1lbnQucmVnaW9ufSwgZXZlbiB0aG91Z2ggJHt0aGlzLm9wdGlvbnMucmVnaW9ufSB3YXMgcmVxdWVzdGVkLiBQbGVhc2UgY29uZmlndXJlIFxcYHsgZW52OiB7IHJlZ2lvbjogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OLCBhY2NvdW50OiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9BQ0NPVU5UIH0gfVxcYCwgb3IgdXNlIG5vIGVudiBhdCBhbGwuIERvIG5vdCBoYXJkY29kZSBhIHJlZ2lvbiBvciBhY2NvdW50LmAsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgc3RhY2tOYW1lOiBzdGFjay5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgIHN0YWNrUmVnaW9uOiBzdGFjay5lbnZpcm9ubWVudC5yZWdpb24sXG4gICAgICAgICAgICByZXF1ZXN0ZWRSZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICBpZiAoZSkge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJb0hvc3QgdXNlZCBpbiB0aGUgaW50ZWctcnVubmVyIHRvIHByb3ZpZGUgbm9uLWludGVyYWN0aXZlIG91dHB1dFxuICovXG5jbGFzcyBJbnRlZ1J1bm5lcklvSG9zdCBleHRlbmRzIE5vbkludGVyYWN0aXZlSW9Ib3N0IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzOiBOb25JbnRlcmFjdGl2ZUlvSG9zdFByb3BzID0ge30pIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGlzVFRZOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuICBwdWJsaWMgYXN5bmMgbm90aWZ5KG1zZzogSW9NZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGNvbG9yO1xuICAgIHN3aXRjaCAobXNnLmxldmVsKSB7XG4gICAgICBjYXNlICdlcnJvcic6IGNvbG9yID0gY2hhbGsucmVkOyBicmVhaztcbiAgICAgIGNhc2UgJ3dhcm4nOiBjb2xvciA9IGNoYWxrLnllbGxvdzsgYnJlYWs7XG4gICAgICBkZWZhdWx0OiBjb2xvciA9IGNoYWxrLmdyYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLm5vdGlmeSh7XG4gICAgICAuLi5tc2csXG4gICAgICBtZXNzYWdlOiBjb2xvcihtc2cubWVzc2FnZSksXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJb0hvc3QgdGhhdCBkb2Vzbid0IGRvIGFueXRoaW5nXG4gKi9cbmNsYXNzIE5vb3BJb0hvc3QgaW1wbGVtZW50cyBJSW9Ib3N0IHtcbiAgcHVibGljIGFzeW5jIG5vdGlmeSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgfVxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdFJlc3BvbnNlPFQ+KG1zZzogSW9SZXF1ZXN0PHVua25vd24sIFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIG1zZy5kZWZhdWx0UmVzcG9uc2U7XG4gIH1cbn1cbiJdfQ==
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1saWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sa2l0LWxpYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0NBQWtDO0FBQ2xDLG9FQUE2RDtBQUc3RCxzREFBbUo7QUFDbkosK0JBQStCO0FBQy9CLCtCQUErQjtBQXNDL0I7O0dBRUc7QUFDSCxNQUFhLHNCQUFzQjtJQUNoQixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUEwQjtJQUNqQyxVQUFVLENBQVU7SUFDcEIsTUFBTSxDQUFvQjtJQUUzQyxZQUFtQixPQUFnQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRTlDLHdFQUF3RTtRQUN4RSxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFFdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5FLG9FQUFvRTtRQUNwRSx1REFBdUQ7UUFDdkQsdUNBQXVDO1FBQ3ZDLEVBQUU7UUFDRixjQUFjO1FBQ2QsK0RBQStEO1FBQy9ELFVBQVU7UUFDVixtQkFBbUI7UUFDbkIsTUFBTTtRQUNOLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFFMUIsd0ZBQXdGO1FBQ3hGLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsa0JBQWtCO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxPQUEyQixFQUFFLE1BQWM7UUFDL0QsT0FBTyxJQUFJLHFCQUFPLENBQUM7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxD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IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcbmltcG9ydCB7IFVOS05PV05fUkVHSU9OIH0gZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCB0eXBlIHsgRGVmYXVsdENka09wdGlvbnMgfSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEvbGliL2ludGVnLXRlc3RzJztcbmltcG9ydCB0eXBlIHsgSUNsb3VkQXNzZW1ibHlTb3VyY2UsIElJb0hvc3QsIElvTWVzc2FnZSwgSW9SZXF1ZXN0LCBJUmVhZGFibGVDbG91ZEFzc2VtYmx5LCBOb25JbnRlcmFjdGl2ZUlvSG9zdFByb3BzLCBTdGFja1NlbGVjdG9yIH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHsgQmFzZUNyZWRlbnRpYWxzLCBFeHBhbmRTdGFja1NlbGVjdGlvbiwgTWVtb3J5Q29udGV4dCwgTm9uSW50ZXJhY3RpdmVJb0hvc3QsIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3ksIFRvb2xraXQgfSBmcm9tICdAYXdzLWNkay90b29sa2l0LWxpYic7XG5pbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IEN4T3B0aW9ucywgRGVwbG95T3B0aW9ucywgRGVzdHJveU9wdGlvbnMsIElDZGssIExpc3RPcHRpb25zLCBTeW50aE9wdGlvbnMsIFdhdGNoRXZlbnRzLCBXYXRjaE9wdGlvbnMgfSBmcm9tICcuL2Nkay1pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xraXRMaWJFbmdpbmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdG8gcnVuIHRoZSBjZGsgY29tbWFuZHMgZnJvbVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXRcbiAgICogaW4gdGhlIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCB0aGF0IHdpbGwgYmUgcnVubmluZ1xuICAgKiB0aGUgY2RrIGFwcFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFkZGl0aW9uYWwgZW52IHZhcnNcbiAgICovXG4gIHJlYWRvbmx5IGVudj86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBTaG93IHRoZSBvdXRwdXQgZnJvbSBydW5uaW5nIHRoZSBDREsgQ0xJXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzaG93T3V0cHV0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiB0aGUgQ0RLIGFwcCBzaG91bGQgc3ludGhlc2l6ZSBpdHNlbGYgZm9yXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyBwcm9maWxlIHRvIHVzZSB3aGVuIGF1dGhlbnRpY2F0aW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcHJvZmlsZSBpcyBwYXNzZWQsIHRoZSBkZWZhdWx0IHByb2ZpbGUgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZmlsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHJ1bm5lciBlbmdpbmUgcG93ZXJlZCBkaXJlY3RseSBieSB0aGUgdG9vbGtpdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIFRvb2xraXRMaWJSdW5uZXJFbmdpbmUgaW1wbGVtZW50cyBJQ2RrIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0b29sa2l0OiBUb29sa2l0O1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFRvb2xraXRMaWJFbmdpbmVPcHRpb25zO1xuICBwcml2YXRlIHJlYWRvbmx5IHNob3dPdXRwdXQ6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9Ib3N0OiBJbnRlZ1J1bm5lcklvSG9zdDtcblxuICBwdWJsaWMgY29uc3RydWN0b3Iob3B0aW9uczogVG9vbGtpdExpYkVuZ2luZU9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIHRoaXMuc2hvd091dHB1dCA9IG9wdGlvbnMuc2hvd091dHB1dCA/PyBmYWxzZTtcblxuICAgIC8vIFdlIGFsd2F5cyBjcmVhdGUgdGhpcyBmb3Igb3Vyc2VsdmVzIHRvIGVtaXQgd2FybmluZ3MsIGJ1dCBwb3RlbnRpYWxseVxuICAgIC8vIGRvbid0IHBhc3MgaXQgdG8gdGhlIHRvb2xraXQuXG4gICAgdGhpcy5pb0hvc3QgPSBuZXcgSW50ZWdSdW5uZXJJb0hvc3QoKTtcblxuICAgIHRoaXMudG9vbGtpdCA9IHRoaXMuY3JlYXRlVG9vbGtpdChvcHRpb25zLnByb2ZpbGUsIG9wdGlvbnMucmVnaW9uKTtcblxuICAgIC8vIEBUT0RPIC0gdGhlc2Ugb3B0aW9ucyBhcmUgY3VycmVudGx5IGF2YWlsYWJsZSBvbiB0aGUgYWN0aW9uIGNhbGxzXG4gICAgLy8gYnV0IHRvb2xraXQtbGliIG5lZWRzIHRoZW0gYXQgdGhlIGNvbnN0cnVjdG9yIGxldmVsLlxuICAgIC8vIE5lZWQgdG8gZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCB0aGVtLlxuICAgIC8vXG4gICAgLy8gVmFsaWRhdGlvbnNcbiAgICAvLyAgLSBhc3NlbWJseUZhaWx1cmVBdDogb3B0aW9ucy5zdHJpY3QgPz8gb3B0aW9ucy5pZ25vcmVFcnJvcnNcbiAgICAvLyBMb2dnaW5nXG4gICAgLy8gIC0gb3B0aW9ucy5jb2xvclxuICAgIC8vIFNES1xuICAgIC8vICAtIG9wdGlvbnMucHJveHlcbiAgICAvLyAgLSBvcHRpb25zLmNhQnVuZGxlUGF0aFxuXG4gICAgLy8gQFRPRE8gLSBzaW1pbGFyIHRvIHRoZSBhYm92ZSwgYnV0IGluIHRvb2xraXQtbGliIHRoZXNlIG9wdGlvbnMgd291bGQgZ28gb24gdGhlIElvSG9zdFxuICAgIC8vICAtIG9wdGlvbnMudHJhY2VcbiAgICAvLyAgLSBvcHRpb25zLnZlcmJvc2VcbiAgICAvLyAgLSBvcHRpb25zLmpzb25cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgVG9vbGtpdCBpbnN0YW5jZSB3aXRoIHRoZSBnaXZlbiBwcm9maWxlIGFuZCByZWdpb24uXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVRvb2xraXQocHJvZmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkLCByZWdpb246IHN0cmluZyk6IFRvb2xraXQge1xuICAgIHJldHVybiBuZXcgVG9vbGtpdCh7XG4gICAgICBpb0hvc3Q6IHRoaXMuc2hvd091dHB1dCA/IHRoaXMuaW9Ib3N0IDogbmV3IE5vb3BJb0hvc3QoKSxcbiAgICAgIHNka0NvbmZpZzoge1xuICAgICAgICBiYXNlQ3JlZGVudGlhbHM6IEJhc2VDcmVkZW50aWFscy5hd3NDbGlDb21wYXRpYmxlKHtcbiAgICAgICAgICBwcm9maWxlLFxuICAgICAgICAgIGRlZmF1bHRSZWdpb246IHJlZ2lvbixcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFN5bnRoZXNpemVzIHRoZSBDREsgYXBwXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3ludGgob3B0aW9uczogU3ludGhPcHRpb25zKSB7XG4gICAgY29uc3QgY3ggPSBhd2FpdCB0aGlzLmN4KHtcbiAgICAgIGFwcDogb3B0aW9ucy5hcHAsXG4gICAgICBvdXRwdXQ6IG9wdGlvbnMub3V0cHV0LFxuICAgICAgY29udGV4dDogb3B0aW9ucy5jb250ZXh0LFxuICAgICAgbG9va3VwczogZmFsc2UsXG4gICAgICByZXNvbHZlRGVmYXVsdEVudmlyb25tZW50OiBmYWxzZSxcbiAgICAgIGVudjogb3B0aW9ucy5lbnYsXG4gICAgICB2ZXJzaW9uUmVwb3J0aW5nOiBmYWxzZSxcbiAgICAgIHBhdGhNZXRhZGF0YTogZmFsc2UsXG4gICAgICBhc3NldE1ldGFkYXRhOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB1c2luZyBsb2NrID0gYXdhaXQgdGhpcy50b29sa2l0LnN5bnRoKGN4LCB7XG4gICAgICAgIHZhbGlkYXRlU3RhY2tzOiBmYWxzZSxcbiAgICAgICAgc3RhY2tzOiB7XG4gICAgICAgICAgc3RyYXRlZ3k6IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuQUxMX1NUQUNLUyxcbiAgICAgICAgICBmYWlsT25FbXB0eTogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHRoaXMudmFsaWRhdGVSZWdpb24obG9jayk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZS5tZXNzYWdlLmluY2x1ZGVzKCdNaXNzaW5nIGNvbnRleHQga2V5cycpKSB7XG4gICAgICAgIC8vIEBUT0RPIC0gc2lsZW50bHkgaWdub3JlIG1pc3NpbmcgY29udGV4dFxuICAgICAgICAvLyBUaGlzIGlzIGFjdHVhbGx5IGFuIHVuZGVmaW5lZCBjYXNlIGluIHRoZSBvbGQgaW1wbGVtZW50YXRpb24sIHdoaWNoIGRvZXNuJ3QgdXNlIHRoZSB0b29sa2l0IGNvZGVcbiAgICAgICAgLy8gYW5kIHdvbid0IGZhaWwgZm9yIG1pc3NpbmcgY29udGV4dC4gVG8gcHJlc2VydmUgZXhpc3RpbmcgYmVoYXZpb3IsIHdlIGRvIHRoZSBzYW1lIGhlcmUuXG4gICAgICAgIC8vIEhvd2V2ZXIgaW4gZnV0dXJlIHdlIG5lZWQgdG8gZmluZCBhIHdheSBmb3IgaW50ZWcgdGVzdHMgdG8gcHJvdmlkZSBjb250ZXh0IHRocm91Z2ggc25hcHNob3RzLlxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0cyB0aGUgc3RhY2tzIGluIHRoZSBDREsgYXBwXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGlzdChvcHRpb25zOiBMaXN0T3B0aW9ucyk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBjb25zdCB0b29sa2l0ID0gdGhpcy5jcmVhdGVUb29sa2l0KG9wdGlvbnMucHJvZmlsZSA/PyB0aGlzLm9wdGlvbnMucHJvZmlsZSwgdGhpcy5vcHRpb25zLnJlZ2lvbik7XG4gICAgY29uc3QgY3ggPSBhd2FpdCB0aGlzLmN4KG9wdGlvbnMpO1xuICAgIGNvbnN0IHN0YWNrcyA9IGF3YWl0IHRvb2xraXQubGlzdChjeCwge1xuICAgICAgc3RhY2tzOiB0aGlzLnN0YWNrU2VsZWN0b3Iob3B0aW9ucyksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gc3RhY2tzLm1hcChzID0+IHMubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVwbG95cyB0aGUgQ0RLIGFwcFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlcGxveShvcHRpb25zOiBEZXBsb3lPcHRpb25zKSB7XG4gICAgY29uc3QgdG9vbGtpdCA9IHRoaXMuY3JlYXRlVG9vbGtpdChvcHRpb25zLnByb2ZpbGUgPz8gdGhpcy5vcHRpb25zLnByb2ZpbGUsIHRoaXMub3B0aW9ucy5yZWdpb24pO1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy5jeChvcHRpb25zKTtcbiAgICBhd2FpdCB0b29sa2l0LmRlcGxveShjeCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgdHJhY2VMb2dzOiBvcHRpb25zLnRyYWNlTG9ncyxcbiAgICAgIHN0YWNrczogdGhpcy5zdGFja1NlbGVjdG9yKG9wdGlvbnMpLFxuICAgICAgZGVwbG95bWVudE1ldGhvZDoge1xuICAgICAgICBtZXRob2Q6ICdjaGFuZ2Utc2V0JyxcbiAgICAgIH0sXG4gICAgICBvdXRwdXRzRmlsZTogb3B0aW9ucy5vdXRwdXRzRmlsZSA/IHBhdGguam9pbih0aGlzLm9wdGlvbnMud29ya2luZ0RpcmVjdG9yeSwgb3B0aW9ucy5vdXRwdXRzRmlsZSkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogV2F0Y2hlcyB0aGUgQ0RLIGFwcCBmb3IgY2hhbmdlcyBhbmQgZGVwbG95cyB0aGVtIGF1dG9tYXRpY2FsbHlcbiAgICovXG4gIHB1YmxpYyBhc3luYyB3YXRjaChvcHRpb25zOiBXYXRjaE9wdGlvbnMsIGV2ZW50cz86IFdhdGNoRXZlbnRzKSB7XG4gICAgY29uc3QgdG9vbGtpdCA9IHRoaXMuY3JlYXRlVG9vbGtpdChvcHRpb25zLnByb2ZpbGUgPz8gdGhpcy5vcHRpb25zLnByb2ZpbGUsIHRoaXMub3B0aW9ucy5yZWdpb24pO1xuICAgIGNvbnN0IGN4ID0gYXdhaXQgdGhpcy5jeChvcHRpb25zKTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgd2F0Y2hlciA9IGF3YWl0IHRvb2xraXQud2F0Y2goY3gsIHtcbiAgICAgICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgICAgICB0cmFjZUxvZ3M6IG9wdGlvbnMudHJhY2VMb2dzLFxuICAgICAgICBzdGFja3M6IHRoaXMuc3RhY2tTZWxlY3RvcihvcHRpb25zKSxcbiAgICAgICAgZGVwbG95bWVudE1ldGhvZDogb3B0aW9ucy5kZXBsb3ltZW50TWV0aG9kLFxuICAgICAgfSk7XG4gICAgICBhd2FpdCB3YXRjaGVyLndhaXRGb3JFbmQoKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZXZlbnRzPy5vblN0ZGVycikge1xuICAgICAgICBldmVudHMub25TdGRlcnIoU3RyaW5nKGUpKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudHM/Lm9uQ2xvc2UpIHtcbiAgICAgICAgZXZlbnRzLm9uQ2xvc2UoMSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50cz8ub25DbG9zZSkge1xuICAgICAgZXZlbnRzLm9uQ2xvc2UoMCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3Ryb3lzIHRoZSBDREsgYXBwXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVzdHJveShvcHRpb25zOiBEZXN0cm95T3B0aW9ucykge1xuICAgIGNvbnN0IHRvb2xraXQgPSB0aGlzLmNyZWF0ZVRvb2xraXQob3B0aW9ucy5wcm9maWxlID8/IHRoaXMub3B0aW9ucy5wcm9maWxlLCB0aGlzLm9wdGlvbnMucmVnaW9uKTtcbiAgICBjb25zdCBjeCA9IGF3YWl0IHRoaXMuY3gob3B0aW9ucyk7XG5cbiAgICBhd2FpdCB0b29sa2l0LmRlc3Ryb3koY3gsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMucm9sZUFybixcbiAgICAgIHN0YWNrczogdGhpcy5zdGFja1NlbGVjdG9yKG9wdGlvbnMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZCBBc3NlbWJseSBTb3VyY2UgZnJvbSB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3gob3B0aW9uczogQ3hPcHRpb25zKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGlmICghb3B0aW9ucy5hcHApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gYXBwIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgLy8gY2hlY2sgaWYgdGhlIGFwcCBpcyBhIHBhdGggdG8gZXhpc3Rpbmcgc25hcHNob3QgYW5kIHRoZW4gdXNlIGl0IGFzIGFuIGFzc2VtYmx5IGRpcmVjdG9yeVxuICAgIGNvbnN0IHBvdGVudGlhbEN4UGF0aCA9IHBhdGguam9pbih0aGlzLm9wdGlvbnMud29ya2luZ0RpcmVjdG9yeSwgb3B0aW9ucy5hcHApO1xuICAgIGlmIChmcy5wYXRoRXhpc3RzU3luYyhwb3RlbnRpYWxDeFBhdGgpICYmIGZzLnN0YXRTeW5jKHBvdGVudGlhbEN4UGF0aCkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgcmV0dXJuIHRoaXMudG9vbGtpdC5mcm9tQXNzZW1ibHlEaXJlY3RvcnkocG90ZW50aWFsQ3hQYXRoKTtcbiAgICB9XG5cbiAgICBsZXQgb3V0ZGlyO1xuICAgIGlmIChvcHRpb25zLm91dHB1dCkge1xuICAgICAgb3V0ZGlyID0gcGF0aC5qb2luKHRoaXMub3B0aW9ucy53b3JraW5nRGlyZWN0b3J5LCBvcHRpb25zLm91dHB1dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudG9vbGtpdC5mcm9tQ2RrQXBwKG9wdGlvbnMuYXBwLCB7XG4gICAgICB3b3JraW5nRGlyZWN0b3J5OiB0aGlzLm9wdGlvbnMud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgIG91dGRpcixcbiAgICAgIGxvb2t1cHM6IG9wdGlvbnMubG9va3VwcyxcbiAgICAgIGNvbnRleHRTdG9yZTogbmV3IE1lbW9yeUNvbnRleHQob3B0aW9ucy5jb250ZXh0KSxcbiAgICAgIHJlc29sdmVEZWZhdWx0RW52aXJvbm1lbnQ6IG9wdGlvbnMucmVzb2x2ZURlZmF1bHRFbnZpcm9ubWVudCxcbiAgICAgIGVudjoge1xuICAgICAgICAuLi50aGlzLm9wdGlvbnMuZW52LFxuICAgICAgICAuLi5vcHRpb25zLmVudixcbiAgICAgIH0sXG4gICAgICBzeW50aE9wdGlvbnM6IHtcbiAgICAgICAgZGVidWc6IG9wdGlvbnMuZGVidWcsXG4gICAgICAgIHZlcnNpb25SZXBvcnRpbmc6IG9wdGlvbnMudmVyc2lvblJlcG9ydGluZyA/PyBmYWxzZSxcbiAgICAgICAgcGF0aE1ldGFkYXRhOiBvcHRpb25zLnBhdGhNZXRhZGF0YSA/PyBmYWxzZSxcbiAgICAgICAgYXNzZXRNZXRhZGF0YTogb3B0aW9ucy5hc3NldE1ldGFkYXRhID8/IGZhbHNlLFxuICAgICAgICBhc3NldFN0YWdpbmc6IG9wdGlvbnMuc3RhZ2luZyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFN0YWNrU2VsZWN0b3IgZnJvbSB0aGUgcHJvdmlkZWQgb3B0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgc3RhY2tTZWxlY3RvcihvcHRpb25zOiBEZWZhdWx0Q2RrT3B0aW9ucyAmIHsgcmVhZG9ubHkgZXhjbHVzaXZlbHk/OiBib29sZWFuIH0pOiBTdGFja1NlbGVjdG9yIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RyYXRlZ3k6IG9wdGlvbnMuYWxsID8gU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTIDogU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5QQVRURVJOX01VU1RfTUFUQ0gsXG4gICAgICBwYXR0ZXJuczogb3B0aW9ucy5zdGFja3MgPz8gWycqKiddLFxuICAgICAgZXhwYW5kOiBvcHRpb25zLmV4Y2x1c2l2ZWx5ID8gRXhwYW5kU3RhY2tTZWxlY3Rpb24uTk9ORSA6IEV4cGFuZFN0YWNrU2VsZWN0aW9uLlVQU1RSRUFNLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgdGhhdCB0aGUgcmVnaW9ucyBmb3IgdGhlIHN0YWNrcyBpbiB0aGUgQ2xvdWRBc3NlbWJseSBtYXRjaCB0aGUgcmVnaW9ucyByZXF1ZXN0ZWQgb24gdGhlIGVuZ2luZVxuICAgKlxuICAgKiBUaGlzIHByZXZlbnRzIG1pc2NvbmZpZ3VyYXRpb24gb2YgdGhlIGludGVnIHRlc3QgYXBwLiBQZW9wbGUgdGVuZCB0byBwdXQ6XG4gICAqXG4gICAqIGBgYHRzXG4gICAqIG5ldyBTdGFjayhhcHAsICdTdGFjaycsIHtcbiAgICogICBlbnY6IHtcbiAgICogICAgIHJlZ2lvbjogJ3NvbWUtcmVnaW9uLXRoYXQtc3VpdHMtbWUnLFxuICAgKiAgIH1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBJbnRvIHRoZWlyIGludGVnIHRlc3RzLCBpbnN0ZWFkIG9mOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiB7XG4gICAqICAgcmVnaW9uOiBwcm9jZXNzLmVudi5DREtfREVGQVVMVF9SRUdJT04sXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIFRoaXMgY2F0Y2hlcyB0aGF0IG1pc2NvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlUmVnaW9uKGFzbTogSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIHRoaXMgaGFwcGVucyBmb3IgZXhpc3Rpbmcgc25hcHNob3RzLCBpbiB0aGF0IGNhc2Ugbm90aGluZyB0byBjaGVja1xuICAgIGlmICh0aGlzLm9wdGlvbnMucmVnaW9uID09PSBVTktOT1dOX1JFR0lPTikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgYXNtLmNsb3VkQXNzZW1ibHkuc3RhY2tzUmVjdXJzaXZlbHkpIHtcbiAgICAgIGlmIChzdGFjay5lbnZpcm9ubWVudC5yZWdpb24gIT09IHRoaXMub3B0aW9ucy5yZWdpb24gJiYgc3RhY2suZW52aXJvbm1lbnQucmVnaW9uICE9PSBVTktOT1dOX1JFR0lPTikge1xuICAgICAgICB0aGlzLmlvSG9zdC5ub3RpZnkoe1xuICAgICAgICAgIGFjdGlvbjogJ2RlcGxveScsXG4gICAgICAgICAgY29kZTogJ0NES19SVU5ORVJfVzAwMDAnLFxuICAgICAgICAgIHRpbWU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgbGV2ZWw6ICd3YXJuJyxcbiAgICAgICAgICBtZXNzYWdlOiBgU3RhY2sgJHtzdGFjay5kaXNwbGF5TmFtZX0gc3ludGhlc2l6ZXMgZm9yIHJlZ2lvbiAke3N0YWNrLmVudmlyb25tZW50LnJlZ2lvbn0sIGV2ZW4gdGhvdWdoICR7dGhpcy5vcHRpb25zLnJlZ2lvbn0gd2FzIHJlcXVlc3RlZC4gUGxlYXNlIGNvbmZpZ3VyZSBcXGB7IGVudjogeyByZWdpb246IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTiwgYWNjb3VudDogcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVCB9IH1cXGAsIG9yIHVzZSBubyBlbnYgYXQgYWxsLiBEbyBub3QgaGFyZGNvZGUgYSByZWdpb24gb3IgYWNjb3VudC5gLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHN0YWNrTmFtZTogc3RhY2suZGlzcGxheU5hbWUsXG4gICAgICAgICAgICBzdGFja1JlZ2lvbjogc3RhY2suZW52aXJvbm1lbnQucmVnaW9uLFxuICAgICAgICAgICAgcmVxdWVzdGVkUmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQW4gSW9Ib3N0IHVzZWQgaW4gdGhlIGludGVnLXJ1bm5lciB0byBwcm92aWRlIG5vbi1pbnRlcmFjdGl2ZSBvdXRwdXRcbiAqL1xuY2xhc3MgSW50ZWdSdW5uZXJJb0hvc3QgZXh0ZW5kcyBOb25JbnRlcmFjdGl2ZUlvSG9zdCB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogTm9uSW50ZXJhY3RpdmVJb0hvc3RQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBpc1RUWTogZmFsc2UsXG4gICAgfSk7XG4gIH1cbiAgcHVibGljIGFzeW5jIG5vdGlmeShtc2c6IElvTWVzc2FnZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBjb2xvcjtcbiAgICBzd2l0Y2ggKG1zZy5sZXZlbCkge1xuICAgICAgY2FzZSAnZXJyb3InOiBjb2xvciA9IGNoYWxrLnJlZDsgYnJlYWs7XG4gICAgICBjYXNlICd3YXJuJzogY29sb3IgPSBjaGFsay55ZWxsb3c7IGJyZWFrO1xuICAgICAgZGVmYXVsdDogY29sb3IgPSBjaGFsay5ncmF5O1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5ub3RpZnkoe1xuICAgICAgLi4ubXNnLFxuICAgICAgbWVzc2FnZTogY29sb3IobXNnLm1lc3NhZ2UpLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQW4gSW9Ib3N0IHRoYXQgZG9lc24ndCBkbyBhbnl0aGluZ1xuICovXG5jbGFzcyBOb29wSW9Ib3N0IGltcGxlbWVudHMgSUlvSG9zdCB7XG4gIHB1YmxpYyBhc3luYyBub3RpZnkoKTogUHJvbWlzZTx2b2lkPiB7XG4gIH1cbiAgcHVibGljIGFzeW5jIHJlcXVlc3RSZXNwb25zZTxUPihtc2c6IElvUmVxdWVzdDx1bmtub3duLCBUPik6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBtc2cuZGVmYXVsdFJlc3BvbnNlO1xuICB9XG59XG4iXX0=
@@ -80,5 +80,7 @@
80
80
  "@aws-cdk/aws-lambda:useCdkManagedLogGroup": true,
81
81
  "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": true,
82
82
  "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": true,
83
- "@aws-cdk/aws-route53-patterns:useDistribution": true
83
+ "@aws-cdk/aws-route53-patterns:useDistribution": true,
84
+ "@aws-cdk/aws-cloudfront:defaultFunctionRuntimeV2_0": true,
85
+ "@aws-cdk/aws-elasticloadbalancingv2:usePostQuantumTlsPolicy": true
84
86
  }
@@ -308,5 +308,7 @@ export declare function currentlyRecommendedAwsCdkLibFlags(): {
308
308
  "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": boolean;
309
309
  "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": boolean;
310
310
  "@aws-cdk/aws-route53-patterns:useDistribution": boolean;
311
+ "@aws-cdk/aws-cloudfront:defaultFunctionRuntimeV2_0": boolean;
312
+ "@aws-cdk/aws-elasticloadbalancingv2:usePostQuantumTlsPolicy": boolean;
311
313
  };
312
314
  //# sourceMappingURL=runner-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner-base.d.ts","sourceRoot":"","sources":["runner-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-base.d.ts","sourceRoot":"","sources":["runner-base.ts"],"names":[],"mappings":"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"}