@aws-cdk/aws-imagebuilder-alpha 2.257.0-alpha.0 → 2.258.1-alpha.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.
@@ -1,4 +1,20 @@
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
+ });
2
18
  var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
3
19
  var useValue = arguments.length > 2;
4
20
  for (var i = 0; i < initializers.length; i++) {
@@ -33,12 +49,29 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
33
49
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
34
50
  done = true;
35
51
  };
52
+ var __importStar = (this && this.__importStar) || (function () {
53
+ var ownKeys = function(o) {
54
+ ownKeys = Object.getOwnPropertyNames || function (o) {
55
+ var ar = [];
56
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
57
+ return ar;
58
+ };
59
+ return ownKeys(o);
60
+ };
61
+ return function (mod) {
62
+ if (mod && mod.__esModule) return mod;
63
+ var result = {};
64
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
65
+ __setModuleDefault(result, mod);
66
+ return result;
67
+ };
68
+ })();
36
69
  Object.defineProperty(exports, "__esModule", { value: true });
37
70
  exports.LifecyclePolicy = exports.LifecyclePolicyResourceType = exports.LifecyclePolicyStatus = exports.LifecyclePolicyActionType = void 0;
38
71
  const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
39
72
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
40
- const cdk = require("aws-cdk-lib");
41
- const iam = require("aws-cdk-lib/aws-iam");
73
+ const cdk = __importStar(require("aws-cdk-lib"));
74
+ const iam = __importStar(require("aws-cdk-lib/aws-iam"));
42
75
  const aws_imagebuilder_1 = require("aws-cdk-lib/aws-imagebuilder");
43
76
  const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
44
77
  const metadata_resource_1 = require("aws-cdk-lib/core/lib/metadata-resource");
@@ -135,7 +168,7 @@ let LifecyclePolicy = (() => {
135
168
  LifecyclePolicy = _classThis = _classDescriptor.value;
136
169
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
137
170
  }
138
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.LifecyclePolicy", version: "2.257.0-alpha.0" };
171
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.LifecyclePolicy", version: "2.258.1-alpha.0" };
139
172
  /** Uniquely identifies this class. */
140
173
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-imagebuilder-alpha.LifecyclePolicy';
141
174
  /**
@@ -468,4 +501,4 @@ let LifecyclePolicy = (() => {
468
501
  return LifecyclePolicy = _classThis;
469
502
  })();
470
503
  exports.LifecyclePolicy = LifecyclePolicy;
471
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpZmVjeWNsZS1wb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyxtRUFBa0U7QUFDbEUsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFJMUUsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFvQzlGOztHQUVHO0FBQ0gsSUFBWSx5QkFhWDtBQWJELFdBQVkseUJBQXlCO0lBQ25DOztPQUVHO0lBQ0gsOENBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxvREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGdEQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFiVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWFwQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxxQkFVWDtBQVZELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsNENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCw4Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFVaEM7QUFFRDs7R0FFRztBQUNILElBQVksMkJBVVg7QUFWRCxXQUFZLDJCQUEyQjtJQUNyQzs7T0FFRztJQUNILHNEQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsa0VBQW1DLENBQUE7QUFDckMsQ0FBQyxFQVZXLDJCQUEyQiwyQ0FBM0IsMkJBQTJCLFFBVXRDO0FBeVBELE1BQWUsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFJckQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTztZQUNQ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Qyw2RkFBNkY7WUFDdkcsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSw0QkFBNEIsRUFBRSw4REFBOEQsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2SSxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsbUNBQW1DLEVBQUUsK0NBQStDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0gsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLHdDQUF3QyxFQUFFLG9EQUFvRCxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pJLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUMxRCxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsaUNBQWlDLEVBQUUsMkNBQTJDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekgsQ0FBQztTQUNGOztZQS9aVSx1REFBZTs7Ozs7QUFBZiwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5MaWZlY3ljbGVQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaW1hZ2VidWlsZGVyJztcbmltcG9ydCB7IG1lbW9pemVkR2V0dGVyLCBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElSZWNpcGVCYXNlIH0gZnJvbSAnLi9yZWNpcGUtYmFzZSc7XG5cbmNvbnN0IExJRkVDWUNMRV9QT0xJQ1lfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWltYWdlYnVpbGRlci1hbHBoYS5MaWZlY3ljbGVQb2xpY3knKTtcblxuLyoqXG4gKiBBbiBFQzIgSW1hZ2UgQnVpbGRlciBMaWZlY3ljbGUgUG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElMaWZlY3ljbGVQb2xpY3kgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY3VzdG9tIGFjdGlvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyAtIFRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiB0byBwZXJmb3JtIG9uIHRoZSByZXNvdXJjZXMgd2hpY2ggdGhlIHBvbGljeSBhcHBsaWVzIHRvXG4gKi9cbmV4cG9ydCBlbnVtIExpZmVjeWNsZVBvbGljeUFjdGlvblR5cGUge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHJ1bGUgc2hvdWxkIGRlbGV0ZSB0aGUgcmVzb3VyY2Ugd2hlbiBpdCBpcyBhcHBsaWVkXG4gICAqL1xuICBERUxFVEUgPSAnREVMRVRFJyxcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBydWxlIHNob3VsZCBkZXByZWNhdGUgdGhlIHJlc291cmNlIHdoZW4gaXQgaXMgYXBwbGllZFxuICAgKi9cbiAgREVQUkVDQVRFID0gJ0RFUFJFQ0FURScsXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcnVsZSBzaG91bGQgZGlzYWJsZSB0aGUgcmVzb3VyY2Ugd2hlbiBpdCBpcyBhcHBsaWVkXG4gICAqL1xuICBESVNBQkxFID0gJ0RJU0FCTEUnLFxufVxuXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3ksIGluZGljYXRpbmcgd2hldGhlciBpdCB3aWxsIHJ1blxuICovXG5leHBvcnQgZW51bSBMaWZlY3ljbGVQb2xpY3lTdGF0dXMge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGxpZmVjeWNsZSBwb2xpY3kgc2hvdWxkIGJlIGVuYWJsZWRcbiAgICovXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IHNob3VsZCBiZSBkaXNhYmxlZFxuICAgKi9cbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSB0eXBlIHdoaWNoIHRoZSBsaWZlY3ljbGUgcG9saWN5IGlzIGFwcGxpZWQgdG9cbiAqL1xuZXhwb3J0IGVudW0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgcG9saWN5IGFwcGxpZXMgdG8gQU1JLWJhc2VkIGltYWdlc1xuICAgKi9cbiAgQU1JX0lNQUdFID0gJ0FNSV9JTUFHRScsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgcG9saWN5IGFwcGxpZXMgdG8gY29udGFpbmVyIGltYWdlc1xuICAgKi9cbiAgQ09OVEFJTkVSX0lNQUdFID0gJ0NPTlRBSU5FUl9JTUFHRScsXG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiB0byBwZXJmb3JtIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lBY3Rpb24ge1xuICAvKipcbiAgICogVGhlIGFjdGlvbiB0byBwZXJmb3JtIG9uIHRoZSByZXNvdXJjZXMgc2VsZWN0ZWQgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogTGlmZWN5Y2xlUG9saWN5QWN0aW9uVHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIEFNSXMgaW4gdGhlIHNjb3BlIG9mIHRoZSBsaWZlY3ljbGUgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWUgZm9yIEFNSS1iYXNlZCBwb2xpY2llcywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlQW1pcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSBjb250YWluZXJzIGluIHRoZSBzY29wZSBvZiB0aGUgbGlmZWN5Y2xlIHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGZvciBjb250YWluZXItYmFzZWQgcG9saWNpZXMsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZUNvbnRhaW5lcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgc25hcHNob3RzIGluIHRoZSBzY29wZSBvZiB0aGUgbGlmZWN5Y2xlIHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGZvciBBTUktYmFzZWQgcG9saWNpZXMsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVNuYXBzaG90cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGZpbHRlcmluZyB0byBhcHBseSBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5RmlsdGVyIHtcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBhZ2UgZmlsdGVyIHRvIGFwcGx5IGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIGEgY291bnQgZmlsdGVyIGlzIHByb3ZpZGVkLiBPdGhlcndpc2UsIGFuIGFnZSBmaWx0ZXIgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZWFkb25seSBhZ2VGaWx0ZXI/OiBMaWZlY3ljbGVQb2xpY3lBZ2VGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBjb3VudCBmaWx0ZXIgdG8gYXBwbHkgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgYW4gYWdlIGZpbHRlciBpcyBwcm92aWRlZC4gT3RoZXJ3aXNlLCBhIGNvdW50IGZpbHRlciBpcyByZXF1aXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvdW50RmlsdGVyPzogTGlmZWN5Y2xlUG9saWN5Q291bnRGaWx0ZXI7XG59XG5cbi8qKlxuICogVGhlIGNvdW50LWJhc2VkIGZpbHRlcmluZyB0byBhcHBseSBpbiBhIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUNvdW50RmlsdGVyIHtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiByZXNvdXJjZXMgdG8ga2VlcCBvbiBoYW5kIGFzIHBhcnQgb2YgcmVzb3VyY2UgZmlsdGVyaW5nXG4gICAqL1xuICByZWFkb25seSBjb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBhZ2UtYmFzZWQgZmlsdGVyaW5nIHRvIGFwcGx5IGluIGEgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5QWdlRmlsdGVyIHtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGFnZSBvZiB0aGUgcmVzb3VyY2UgdG8gZmlsdGVyLiBUaGUgcHJvdmlkZWQgZHVyYXRpb24gd2lsbCBiZSByb3VuZGVkIHVwIHRvIHRoZSBuZWFyZXN0XG4gICAqIGRheS93ZWVrL21vbnRoL3llYXIgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBhZ2U6IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogRm9yIGFnZS1iYXNlZCBmaWx0ZXJzLCB0aGUgbnVtYmVyIG9mIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyB0byBrZWVwIG9uIGhhbmQgb25jZSB0aGUgcnVsZSBpcyBhcHBsaWVkLiBUaGUgdmFsdWVcbiAgICogbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSByZXRhaW5BdExlYXN0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lJbWFnZUV4Y2x1c2lvblJ1bGVzIHtcbiAgLyoqXG4gICAqIEV4Y2x1ZGVzIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyB3aXRoIGFueSBvZiB0aGUgcHJvdmlkZWQgdGFncyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogVGhlIHJ1bGVzIHRvIGFwcGx5IGZvciBleGNsdWRpbmcgQU1JcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lBbWlFeGNsdXNpb25SdWxlcyB7XG4gIC8qKlxuICAgKiBFeGNsdWRlcyBwdWJsaWMgQU1JcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGUgaWYgdHJ1ZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNQdWJsaWM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFeGNsdWRlcyBBTUlzIHdoaWNoIHdlcmUgbGF1bmNoZWQgZnJvbSB3aXRoaW4gdGhlIHByb3ZpZGVkIGR1cmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGxhc3RMYXVuY2hlZD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogRXhjbHVkZXMgQU1JcyB3aGljaCByZXNpZGUgaW4gYW55IG9mIHRoZSBwcm92aWRlZCByZWdpb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRXhjbHVkZXMgQU1JcyB3aGljaCBhcmUgc2hhcmVkIHdpdGggYW55IG9mIHRoZSBwcm92aWRlZCBzaGFyZWQgYWNjb3VudHNcbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkQWNjb3VudHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRXhjbHVkZXMgQU1JcyB3aGljaCBoYXZlIGFueSBvZiB0aGUgcHJvdmlkZWQgdGFncyBhcHBsaWVkIHRvIGl0XG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIHJlc291cmNlcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lFeGNsdXNpb25SdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgcnVsZXMgdG8gYXBwbHkgZm9yIGV4Y2x1ZGluZyBFQzIgSW1hZ2UgQnVpbGRlciBpbWFnZXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhjbHVzaW9uIHJ1bGVzIGFyZSBhcHBsaWVkIG9uIHRoZSBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VFeGNsdXNpb25SdWxlcz86IExpZmVjeWNsZVBvbGljeUltYWdlRXhjbHVzaW9uUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIEFNSXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhjbHVzaW9uIHJ1bGVzIGFyZSBhcHBsaWVkIG9uIHRoZSBBTUlcbiAgICovXG4gIHJlYWRvbmx5IGFtaUV4Y2x1c2lvblJ1bGVzPzogTGlmZWN5Y2xlUG9saWN5QW1pRXhjbHVzaW9uUnVsZXM7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBkZXRhaWxzIGZvciB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeURldGFpbCB7XG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHRvIHBlcmZvcm0gaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uOiBMaWZlY3ljbGVQb2xpY3lBY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBmaWx0ZXJpbmcgdG8gYXBwbHkgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyOiBMaWZlY3ljbGVQb2xpY3lGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIHJlc291cmNlcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleGNsdXNpb24gcnVsZXMgYXJlIGFwcGxpZWQgb24gYW55IHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBleGNsdXNpb25SdWxlcz86IExpZmVjeWNsZVBvbGljeUV4Y2x1c2lvblJ1bGVzO1xufVxuXG4vKipcbiAqIFNlbGVjdGlvbiBjcml0ZXJpYSBmb3IgdGhlIHJlc291cmNlcyB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IGFwcGxpZXMgdG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVNlbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpbWFnZSByZWNpcGVzIG9yIGNvbnRhaW5lciByZWNpcGVzIHRvIGFwcGx5IHRoZSBsaWZlY3ljbGUgcG9saWN5IHRvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiB0YWcgc2VsZWN0aW9ucyBhcmUgcHJvdmlkZWQuIE90aGVyd2lzZSwgYXQgbGVhc3Qgb25lIHJlY2lwZSBvciB0YWcgc2VsZWN0aW9uIG11c3QgYmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlY2lwZXM/OiBJUmVjaXBlQmFzZVtdO1xuXG4gIC8qKlxuICAgKiBTZWxlY3RzIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyBjb250YWluaW5nIGFueSBvZiB0aGUgcHJvdmlkZWQgdGFnc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgcmVjaXBlIHNlbGVjdGlvbnMgYXJlIHByb3ZpZGVkLiBPdGhlcndpc2UsIGF0IGxlYXN0IG9uZSByZWNpcGUgb3IgdGFnIHNlbGVjdGlvbiBtdXN0IGJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIExpZmVjeWNsZSBQb2xpY3kgcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBJbWFnZSBCdWlsZGVyIHJlc291cmNlIHRoYXQgdGhlIGxpZmVjeWNsZSBwb2xpY3kgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGRldGFpbHMgZm9yIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsczogTGlmZWN5Y2xlUG9saWN5RGV0YWlsW107XG5cbiAgLyoqXG4gICAqIFNlbGVjdGlvbiBjcml0ZXJpYSBmb3IgdGhlIHJlc291cmNlcyB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZVNlbGVjdGlvbjogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmFtZSBpcyBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IExpZmVjeWNsZVBvbGljeVN0YXR1cy5FTkFCTEVEXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBMaWZlY3ljbGVQb2xpY3lTdGF0dXM7XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjdXRpb24gcm9sZSB0aGF0IGdyYW50cyBJbWFnZSBCdWlsZGVyIGFjY2VzcyB0byBydW4gbGlmZWN5Y2xlIGFjdGlvbnMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGFuIGV4ZWN1dGlvbiByb2xlIHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSBtaW5pbWFsIHBlcm1pc3Npb25zIG5lZWRlZCB0byBleGVjdXRlIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqIGFjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYW4gZXhlY3V0aW9uIHJvbGUgd2lsbCBiZSBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWdzIHRvIGFwcGx5IHRvIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmFic3RyYWN0IGNsYXNzIExpZmVjeWNsZVBvbGljeUJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJTGlmZWN5Y2xlUG9saWN5IHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5QXJuOiBzdHJpbmc7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5saWZlY3ljbGVQb2xpY3lBcm5dLFxuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAnaW1hZ2VidWlsZGVyOkdldExpZmVjeWNsZVBvbGljeScpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBFQzIgSW1hZ2UgQnVpbGRlciBMaWZlY3ljbGUgUG9saWN5LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ltYWdlYnVpbGRlci9sYXRlc3QvdXNlcmd1aWRlL21hbmFnZS1pbWFnZS1saWZlY3ljbGVzLmh0bWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIExpZmVjeWNsZVBvbGljeSBleHRlbmRzIExpZmVjeWNsZVBvbGljeUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1pbWFnZWJ1aWxkZXItYWxwaGEuTGlmZWN5Y2xlUG9saWN5JztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGxpZmVjeWNsZSBwb2xpY3kgZ2l2ZW4gaXRzIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUxpZmVjeWNsZVBvbGljeUFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBsaWZlY3ljbGVQb2xpY3lBcm46IHN0cmluZyk6IElMaWZlY3ljbGVQb2xpY3kge1xuICAgIGNvbnN0IGxpZmVjeWNsZVBvbGljeU5hbWUgPSBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKFxuICAgICAgbGlmZWN5Y2xlUG9saWN5QXJuLFxuICAgICAgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICkucmVzb3VyY2VOYW1lITtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIExpZmVjeWNsZVBvbGljeUJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeUFybiA9IGxpZmVjeWNsZVBvbGljeUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lOYW1lID0gbGlmZWN5Y2xlUG9saWN5TmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBsaWZlY3ljbGUgcG9saWN5IGdpdmVuIGl0cyBuYW1lLiBJZiB0aGUgbmFtZSBpcyBhIHRva2VuIHJlcHJlc2VudGluZyBhIGR5bmFtaWMgQ2xvdWRGb3JtYXRpb25cbiAgICogZXhwcmVzc2lvbiwgeW91IG11c3QgZW5zdXJlIGFsbCBhbHBoYWJldGljIGNoYXJhY3RlcnMgaW4gdGhlIGV4cHJlc3Npb24gYXJlIGFscmVhZHkgbG93ZXJjYXNlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTGlmZWN5Y2xlUG9saWN5TmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBsaWZlY3ljbGVQb2xpY3lOYW1lOiBzdHJpbmcpOiBJTGlmZWN5Y2xlUG9saWN5IHtcbiAgICByZXR1cm4gTGlmZWN5Y2xlUG9saWN5LmZyb21MaWZlY3ljbGVQb2xpY3lBcm4oXG4gICAgICBzY29wZSxcbiAgICAgIGlkLFxuICAgICAgY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiAnaW1hZ2VidWlsZGVyJyxcbiAgICAgICAgcmVzb3VyY2U6ICdsaWZlY3ljbGUtcG9saWN5JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBsaWZlY3ljbGVQb2xpY3lOYW1lLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgTGlmZWN5Y2xlUG9saWN5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0xpZmVjeWNsZVBvbGljeSh4OiBhbnkpOiB4IGlzIExpZmVjeWNsZVBvbGljeSB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmIExJRkVDWUNMRV9QT0xJQ1lfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiByb2xlIHVzZWQgZm9yIGxpZmVjeWNsZSBwb2xpY3kgZXhlY3V0aW9uc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU6IGlhbS5JUm9sZTtcblxuICBwcml2YXRlIHJlc291cmNlOiBDZm5MaWZlY3ljbGVQb2xpY3k7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMaWZlY3ljbGVQb2xpY3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOlxuICAgICAgICBwcm9wcy5saWZlY3ljbGVQb2xpY3lOYW1lID8/XG4gICAgICAgIGNkay5MYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT5cbiAgICAgICAgICAgIGNkay5OYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICAgICAgICBtYXhMZW5ndGg6IDEyOCxcbiAgICAgICAgICAgICAgc2VwYXJhdG9yOiAnLScsXG4gICAgICAgICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogJy0nLFxuICAgICAgICAgICAgfSkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgTElGRUNZQ0xFX1BPTElDWV9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlTGlmZWN5Y2xlUG9saWN5TmFtZSgpO1xuICAgIHRoaXMudmFsaWRhdGVQb2xpY3kocHJvcHMpO1xuXG4gICAgdGhpcy5leGVjdXRpb25Sb2xlID1cbiAgICAgIHByb3BzLmV4ZWN1dGlvblJvbGUgPz9cbiAgICAgIG5ldyBpYW0uUm9sZSh0aGlzLCAnRXhlY3V0aW9uUm9sZScsIHtcbiAgICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2ltYWdlYnVpbGRlci5hbWF6b25hd3MuY29tJyksXG4gICAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0VDMkltYWdlQnVpbGRlckxpZmVjeWNsZUV4ZWN1dGlvblBvbGljeScpLFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICBjb25zdCBsaWZlY3ljbGVQb2xpY3kgPSBuZXcgQ2ZuTGlmZWN5Y2xlUG9saWN5KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiBwcm9wcy5yZXNvdXJjZVR5cGUsXG4gICAgICBleGVjdXRpb25Sb2xlOiB0aGlzLmV4ZWN1dGlvblJvbGUucm9sZUFybixcbiAgICAgIHBvbGljeURldGFpbHM6IHRoaXMuYnVpbGRQb2xpY3lEZXRhaWxzKHByb3BzLnJlc291cmNlVHlwZSwgcHJvcHMuZGV0YWlscyksXG4gICAgICByZXNvdXJjZVNlbGVjdGlvbjoge1xuICAgICAgICAuLi4ocHJvcHMucmVzb3VyY2VTZWxlY3Rpb24ucmVjaXBlcyAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgICByZWNpcGVzOiB0aGlzLmJ1aWxkUmVjaXBlcyhwcm9wcy5yZXNvdXJjZVR5cGUsIHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnJlY2lwZXMpLFxuICAgICAgICB9KSxcbiAgICAgICAgdGFnTWFwOiBwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi50YWdzLFxuICAgICAgfSxcbiAgICAgIHN0YXR1czogcHJvcHMuc3RhdHVzLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBsaWZlY3ljbGVQb2xpY3k7XG4gIH1cblxuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBsaWZlY3ljbGVQb2xpY3lOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IGxpZmVjeWNsZVBvbGljeUFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKHRoaXMucmVzb3VyY2UuYXR0ckFybiwge1xuICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICByZXNvdXJjZTogJ2xpZmVjeWNsZS1wb2xpY3knLFxuICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIHBvbGljeSBkZXRhaWxzIHByb3BlcnR5IGludG8gdGhlIGBQb2xpY3lEZXRhaWxgIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgVGhlIHJlc291cmNlIHR5cGUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogQHBhcmFtIGRldGFpbHMgVGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRQb2xpY3lEZXRhaWxzKFxuICAgIHJlc291cmNlVHlwZTogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLFxuICAgIGRldGFpbHM6IExpZmVjeWNsZVBvbGljeURldGFpbFtdLFxuICApOiBDZm5MaWZlY3ljbGVQb2xpY3kuUG9saWN5RGV0YWlsUHJvcGVydHlbXSB7XG4gICAgcmV0dXJuIGRldGFpbHMubWFwKChkZXRhaWwpOiBDZm5MaWZlY3ljbGVQb2xpY3kuUG9saWN5RGV0YWlsUHJvcGVydHkgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5idWlsZEFjdGlvbihyZXNvdXJjZVR5cGUsIGRldGFpbC5hY3Rpb24pO1xuICAgICAgY29uc3QgZXhjbHVzaW9uUnVsZXMgPVxuICAgICAgICBkZXRhaWwuZXhjbHVzaW9uUnVsZXMgIT09IHVuZGVmaW5lZCA/IHRoaXMuYnVpbGRFeGNsdXNpb25SdWxlcyhkZXRhaWwuZXhjbHVzaW9uUnVsZXMpIDogdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlUG9saWN5RGV0YWlsQWN0aW9uKHJlc291cmNlVHlwZSwgZGV0YWlsLmFjdGlvbiwgZXhjbHVzaW9uUnVsZXM/LmFtaXMpO1xuICAgICAgdGhpcy52YWxpZGF0ZVBvbGljeURldGFpbEZpbHRlcihkZXRhaWwuZmlsdGVyKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgIHJldGFpbkF0TGVhc3Q6IGRldGFpbC5maWx0ZXIuYWdlRmlsdGVyPy5yZXRhaW5BdExlYXN0LFxuICAgICAgICAgIHR5cGU6IGRldGFpbC5maWx0ZXIuYWdlRmlsdGVyICE9PSB1bmRlZmluZWQgPyAnQUdFJyA6ICdDT1VOVCcsXG4gICAgICAgICAgLi4uKGRldGFpbC5maWx0ZXIuYWdlRmlsdGVyICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdGhpcy5jb252ZXJ0RHVyYXRpb25Ub1RpbWVVbml0VmFsdWUoZGV0YWlsLmZpbHRlci5hZ2VGaWx0ZXIuYWdlKVxuICAgICAgICAgICAgOiB7IHZhbHVlOiBkZXRhaWwuZmlsdGVyLmNvdW50RmlsdGVyIS5jb3VudCB9KSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzICE9PSB1bmRlZmluZWQgJiYgeyBleGNsdXNpb25SdWxlcyB9KSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSByZWNpcGVzIHByb3BlcnR5IGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gaW50byB0aGUgYFJlY2lwZVNlbGVjdGlvbmAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gTDFcbiAgICogZGVmaW5pdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSBUaGUgcmVzb3VyY2UgdHlwZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKiBAcGFyYW0gcmVjaXBlcyBUaGUgcmVjaXBlcyBwYXNzZWQgaW4gdGhlIHByb3BzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUmVjaXBlcyhcbiAgICByZXNvdXJjZVR5cGU6IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZSxcbiAgICByZWNpcGVzOiBJUmVjaXBlQmFzZVtdLFxuICApOiBDZm5MaWZlY3ljbGVQb2xpY3kuUmVjaXBlU2VsZWN0aW9uUHJvcGVydHlbXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHJlY2lwZXM/Lm1hcCgocmVjaXBlKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LlJlY2lwZVNlbGVjdGlvblByb3BlcnR5ID0+IHtcbiAgICAgIGlmIChyZWNpcGUuX2lzSW1hZ2VSZWNpcGUoKSkge1xuICAgICAgICBpZiAocmVzb3VyY2VUeXBlID09PSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQ09OVEFJTkVSX0lNQUdFKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBsaXRgUmVjaXBlVHlwZU1pc21hdGNoRm9yQ29udGFpbmVyUG9saWN5YCxcbiAgICAgICAgICAgIGByZWNpcGVzIGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gbXVzdCBhbGwgYmUgY29udGFpbmVyIHJlY2lwZXMgZm9yIHBvbGljeSB0eXBlICR7TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkNPTlRBSU5FUl9JTUFHRX1gLFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiByZWNpcGUuaW1hZ2VSZWNpcGVOYW1lLFxuICAgICAgICAgIHNlbWFudGljVmVyc2lvbjogcmVjaXBlLmltYWdlUmVjaXBlVmVyc2lvbixcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY2lwZS5faXNDb250YWluZXJSZWNpcGUoKSkge1xuICAgICAgICBpZiAocmVzb3VyY2VUeXBlID09PSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQU1JX0lNQUdFKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBsaXRgUmVjaXBlVHlwZU1pc21hdGNoRm9yQW1pUG9saWN5YCxcbiAgICAgICAgICAgIGByZWNpcGVzIGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gbXVzdCBhbGwgYmUgaW1hZ2UgcmVjaXBlcyBmb3IgcG9saWN5IHR5cGUgJHtMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQU1JX0lNQUdFfWAsXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IHJlY2lwZS5jb250YWluZXJSZWNpcGVOYW1lLFxuICAgICAgICAgIHNlbWFudGljVmVyc2lvbjogcmVjaXBlLmNvbnRhaW5lclJlY2lwZVZlcnNpb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFJlY2lwZVR5cGVgLFxuICAgICAgICAncmVjaXBlcyBpbiB0aGUgcmVzb3VyY2Ugc2VsZWN0aW9uIG11c3QgZWl0aGVyIGJlIGFuIElJbWFnZVJlY2lwZSBvciBJQ29udGFpbmVyUmVjaXBlJyxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBleGNsdXNpb24gcnVsZXMgcHJvcGVydHkgaW50byB0aGUgYEV4Y2x1c2lvblJ1bGVzYCB0eXBlIGluIHRoZSBDbG91ZEZvcm1hdGlvbiBMMSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZXhjbHVzaW9uUnVsZXMgVGhlIGV4Y2x1c2lvbiBydWxlcyBmb3IgcmVzb3VyY2VzIGFwcGxpZWQgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEV4Y2x1c2lvblJ1bGVzKFxuICAgIGV4Y2x1c2lvblJ1bGVzOiBMaWZlY3ljbGVQb2xpY3lFeGNsdXNpb25SdWxlcyxcbiAgKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LkV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFtaUV4Y2x1c2lvblJ1bGVzOiBDZm5MaWZlY3ljbGVQb2xpY3kuQW1pRXhjbHVzaW9uUnVsZXNQcm9wZXJ0eSA9IHtcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8uaXNQdWJsaWMgJiYgeyBpc1B1YmxpYzogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMuaXNQdWJsaWMgfSksXG4gICAgICAuLi4oZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXM/Lmxhc3RMYXVuY2hlZCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgbGFzdExhdW5jaGVkOiB0aGlzLmNvbnZlcnREdXJhdGlvblRvVGltZVVuaXRWYWx1ZShleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy5sYXN0TGF1bmNoZWQsIDM2NSksXG4gICAgICB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8ucmVnaW9ucz8ubGVuZ3RoICYmIHsgcmVnaW9uczogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMucmVnaW9ucyB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8uc2hhcmVkQWNjb3VudHM/Lmxlbmd0aCAmJiB7XG4gICAgICAgIHNoYXJlZEFjY291bnRzOiBleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy5zaGFyZWRBY2NvdW50cyxcbiAgICAgIH0pLFxuICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzLmFtaUV4Y2x1c2lvblJ1bGVzPy50YWdzICYmIHsgdGFnTWFwOiBleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy50YWdzIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCBjZm5FeGNsdXNpb25SdWxlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgPSB7XG4gICAgICAuLi4oT2JqZWN0LmtleXMoYW1pRXhjbHVzaW9uUnVsZXMpLmxlbmd0aCAmJiB7IGFtaXM6IGFtaUV4Y2x1c2lvblJ1bGVzIH0pLFxuICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzLmltYWdlRXhjbHVzaW9uUnVsZXMgIT09IHVuZGVmaW5lZCAmJiB7IHRhZ01hcDogZXhjbHVzaW9uUnVsZXMuaW1hZ2VFeGNsdXNpb25SdWxlcy50YWdzIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXhjbHVzaW9uUnVsZXMpLmxlbmd0aCA/IGNmbkV4Y2x1c2lvblJ1bGVzIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgYWN0aW9uIHByb3BlcnR5IGludG8gdGhlIGBBY3Rpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgVGhlIHJlc291cmNlIHR5cGUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIGJlaW5nIHRha2VuIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRBY3Rpb24oXG4gICAgcmVzb3VyY2VUeXBlOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUsXG4gICAgYWN0aW9uOiBMaWZlY3ljbGVQb2xpY3lBY3Rpb24sXG4gICk6IENmbkxpZmVjeWNsZVBvbGljeS5BY3Rpb25Qcm9wZXJ0eSB7XG4gICAgY29uc3QgaXNDb250YWluZXJQb2xpY3kgPVxuICAgICAgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocmVzb3VyY2VUeXBlKSAmJiByZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5DT05UQUlORVJfSU1BR0U7XG4gICAgY29uc3QgaXNBbWlQb2xpY3kgPSAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChyZXNvdXJjZVR5cGUpICYmIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkFNSV9JTUFHRTtcblxuICAgIGNvbnN0IGFtaXMgPSBhY3Rpb24uaW5jbHVkZUFtaXMgPz8gKGlzQW1pUG9saWN5ID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3Qgc25hcHNob3RzID0gYWN0aW9uLmluY2x1ZGVTbmFwc2hvdHMgPz8gKGlzQW1pUG9saWN5ID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgY29udGFpbmVycyA9IGFjdGlvbi5pbmNsdWRlQ29udGFpbmVycyA/PyAoaXNDb250YWluZXJQb2xpY3kgPyB0cnVlIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBpbmNsdWRlUmVzb3VyY2VzOiBDZm5MaWZlY3ljbGVQb2xpY3kuSW5jbHVkZVJlc291cmNlc1Byb3BlcnR5ID0ge1xuICAgICAgLi4uKGFtaXMgIT09IHVuZGVmaW5lZCAmJiB7IGFtaXMgfSksXG4gICAgICAuLi4oc25hcHNob3RzICE9PSB1bmRlZmluZWQgJiYgeyBzbmFwc2hvdHMgfSksXG4gICAgICAuLi4oY29udGFpbmVycyAhPT0gdW5kZWZpbmVkICYmIHsgY29udGFpbmVycyB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGFjdGlvbi50eXBlLFxuICAgICAgLi4uKE9iamVjdC5rZXlzKGluY2x1ZGVSZXNvdXJjZXMpLmxlbmd0aCAmJiB7IGluY2x1ZGVSZXNvdXJjZXMgfSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRvcC1sZXZlbCBwcm9wZXJ0aWVzIG9mIHRoZSBwb2xpY3lcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wcyBwYXNzZWQgYXMgaW5wdXQgdG8gdGhlIGNvbnN0cnVjdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBvbGljeShwcm9wczogTGlmZWN5Y2xlUG9saWN5UHJvcHMpOiB2b2lkIHtcbiAgICBpZiAocHJvcHMucmVzb3VyY2VTZWxlY3Rpb24ucmVjaXBlcz8ubGVuZ3RoICYmIE9iamVjdC5rZXlzKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnRhZ3MgfHwge30pLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFJlc291cmNlU2VsZWN0aW9uQ2Fubm90Q29udGFpbkJvdGhSZWNpcGVzQW5kVGFnc2AsICdyZXNvdXJjZSBzZWxlY3Rpb24gY2Fubm90IGNvbnRhaW4gYm90aCByZWNpcGVzIGFuZCB0YWdzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi5yZWNpcGVzPy5sZW5ndGggJiYgIU9iamVjdC5rZXlzKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnRhZ3MgfHwge30pLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFJlc291cmNlU2VsZWN0aW9uUmVxdWlyZWRgLCAncmVzb3VyY2Ugc2VsZWN0aW9uIG11c3QgY29udGFpbiBlaXRoZXIgcmVjaXBlcyBvciB0YWdzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmRldGFpbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgTWluaW11bU9uZVJ1bGVSZXF1aXJlZGAsICdhIGxpZmVjeWNsZSBwb2xpY3kgbXVzdCBoYXZlIGF0IGxlYXN0IDEgcnVsZScsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5kZXRhaWxzLmxlbmd0aCA+IDMpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBNYXhpbXVtVGhyZWVSdWxlc0V4Y2VlZGVkYCwgJ2EgbGlmZWN5Y2xlIHBvbGljeSBjYW4gb25seSBoYXZlIHVwIHRvIDMgcnVsZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb25zID0gcHJvcHMuZGV0YWlscy5tYXAoKGRldGFpbCkgPT4gZGV0YWlsLmFjdGlvbi50eXBlKTtcbiAgICBpZiAobmV3IFNldChhY3Rpb25zKS5zaXplICE9IGFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgRHVwbGljYXRlQWN0aW9uc2AsICdsaWZlY3ljbGUgcG9saWN5IHJ1bGVzIG1heSBub3QgaGF2ZSBkdXBsaWNhdGUgYWN0aW9ucycsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYSBwb2xpY3kgZGV0YWlsIGZpbHRlciB3aXRoaW4gYSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSBUaGUgcmVzb3VyY2UgdHlwZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gYmVpbmcgdGFrZW4gaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcGFyYW0gYW1pRXhjbHVzaW9uUnVsZXMgVGhlIEFNSSBleGNsdXNpb24gcnVsZXMgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBvbGljeURldGFpbEFjdGlvbihcbiAgICByZXNvdXJjZVR5cGU6IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZSxcbiAgICBhY3Rpb246IExpZmVjeWNsZVBvbGljeUFjdGlvbixcbiAgICBhbWlFeGNsdXNpb25SdWxlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkFtaUV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgfCBjZGsuSVJlc29sdmFibGUgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIGlmICghY2RrLlRva2VuLmlzVW5yZXNvbHZlZChyZXNvdXJjZVR5cGUpICYmIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkNPTlRBSU5FUl9JTUFHRSkge1xuICAgICAgaWYgKCFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGFjdGlvbi50eXBlKSAmJiBhY3Rpb24udHlwZSAhPT0gTGlmZWN5Y2xlUG9saWN5QWN0aW9uVHlwZS5ERUxFVEUpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YE9ubHlEZWxldGVSdWxlc0ZvckNvbnRhaW5lclBvbGljaWVzYCwgJ3lvdSBtYXkgb25seSBzcGVjaWZ5IERFTEVURSBydWxlcyBmb3IgY29udGFpbmVyIHBvbGljaWVzJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24uaW5jbHVkZUFtaXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YENhbm5vdEluY2x1ZGVBbWlzSW5Db250YWluZXJQb2xpY3lgLCAneW91IGNhbm5vdCBpbmNsdWRlIEFNSXMgaW4gYSBjb250YWluZXIgcG9saWN5JywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24uaW5jbHVkZVNuYXBzaG90cykge1xuICAgICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQ2Fubm90SW5jbHVkZVNuYXBzaG90c0luQ29udGFpbmVyUG9saWN5YCwgJ3lvdSBjYW5ub3QgaW5jbHVkZSBzbmFwc2hvdHMgaW4gYSBjb250YWluZXIgcG9saWN5JywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhbWlFeGNsdXNpb25SdWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBDYW5ub3RFeGNsdWRlQW1pc0luQ29udGFpbmVyUG9saWN5YCwgJ3lvdSBjYW5ub3QgZXhjbHVkZSBBTUlzIGluIGEgY29udGFpbmVyIHBvbGljeScsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHJlc291cmNlVHlwZSkgJiZcbiAgICAgIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkFNSV9JTUFHRSAmJlxuICAgICAgYWN0aW9uLmluY2x1ZGVDb250YWluZXJzXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQ2Fubm90SW5jbHVkZUNvbnRhaW5lcnNJbkFtaVBvbGljeWAsICd5b3UgY2Fubm90IGluY2x1ZGUgY29udGFpbmVycyBpbiBhbiBBTUkgcG9saWN5JywgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhIHBvbGljeSBkZXRhaWwgZmlsdGVyXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXIgVGhlIGxpZmVjeWNsZSBwb2xpY3kgcmVzb3VyY2UgZmlsdGVyIGFwcGxpZWQgaW4gdGhlIHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQb2xpY3lEZXRhaWxGaWx0ZXIoZmlsdGVyOiBMaWZlY3ljbGVQb2xpY3lGaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyLmFnZUZpbHRlciAhPT0gdW5kZWZpbmVkICYmIGZpbHRlci5jb3VudEZpbHRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQWdlQW5kQ291bnRGaWx0ZXJDb25mbGljdGAsICdlaXRoZXIgYWdlIGNvdW50IGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBwb2xpY3kgZmlsdGVyLCBidXQgbm90IGJvdGgnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyLmFnZUZpbHRlciA9PT0gdW5kZWZpbmVkICYmIGZpbHRlci5jb3VudEZpbHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQWdlT3JDb3VudEZpbHRlclJlcXVpcmVkYCwgJ3lvdSBtdXN0IHByb3ZpZGUgYW4gYWdlIG9yIGNvdW50IGZpbHRlciBpbiB0aGUgcG9saWN5JywgdGhpcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmV0YWluQXRMZWFzdCA9IGZpbHRlci5hZ2VGaWx0ZXI/LnJldGFpbkF0TGVhc3Q7XG4gICAgaWYgKHJldGFpbkF0TGVhc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHJldGFpbkF0TGVhc3QgPCAxKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBSZXRhaW5BdExlYXN0VG9vTG93YCwgJ3RoZSByZXRhaW5BdExlYXN0IGZpbHRlciB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDEnLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXRhaW5BdExlYXN0ID4gMTApIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFJldGFpbkF0TGVhc3RUb29IaWdoYCwgJ3RoZSByZXRhaW5BdExlYXN0IGZpbHRlciB2YWx1ZSBtdXN0IGJlIGF0IG1vc3QgMTAnLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBgY2RrLkR1cmF0aW9uYCBpbnRvIHRoZSB2YWx1ZSBhbmQgdW5pdCB3aGljaCBpcyBhY2NlcHRlZCBhcyBmaWx0ZXIgYWdlIGFuZCBsYXN0IGxhdW5jaGVkIGFnZSBpbiB0aGVcbiAgICogbGlmZWN5Y2xlIHBvbGljeS4gVGhlIHZhbHVlIGlzIHJvdW5kZWQgdXAgdG8gdGhlIG5lYXJlc3Qgd2hvbGUgbnVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0gZHVyYXRpb24gVGhlIGR1cmF0aW9uIHRvIGNvbnZlcnRcbiAgICogQHBhcmFtIHZhbHVlTGltaXQgVGhlIG1heGltdW0gdmFsdWUgdGhhdCBjYW4gYmUgc3BlY2lmaWVkXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnREdXJhdGlvblRvVGltZVVuaXRWYWx1ZShcbiAgICBkdXJhdGlvbjogY2RrLkR1cmF0aW9uLFxuICAgIHZhbHVlTGltaXQ6IG51bWJlciA9IDEwMDAsXG4gICk6IHsgdmFsdWU6IG51bWJlcjsgdW5pdDogJ0RBWVMnIHwgJ1dFRUtTJyB8ICdNT05USFMnIHwgJ1lFQVJTJyB9IHtcbiAgICBjb25zdCBEQVlTX1BFUl9XRUVLID0gNztcbiAgICBjb25zdCBEQVlTX1BFUl9NT05USCA9IDMwO1xuICAgIGNvbnN0IERBWVNfUEVSX1lFQVIgPSAzNjU7XG5cbiAgICBjb25zdCB2YWx1ZUluRGF5cyA9IE1hdGguY2VpbChkdXJhdGlvbi50b0RheXMoKSk7XG4gICAgaWYgKHZhbHVlSW5EYXlzIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YER1cmF0aW9uVG9vU2hvcnRgLCAndGhlIHByb3ZpZGVkIGR1cmF0aW9uIG11c3QgYmUgYXQgbGVhc3QgMSBkYXknLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWVJbkRheXMgPD0gdmFsdWVMaW1pdCkge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlSW5EYXlzLCB1bml0OiAnREFZUycgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZUluV2Vla3MgPSBNYXRoLmNlaWwodmFsdWVJbkRheXMgLyBEQVlTX1BFUl9XRUVLKTtcbiAgICBpZiAodmFsdWVJbldlZWtzIDw9IHZhbHVlTGltaXQpIHtcbiAgICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZUluV2Vla3MsIHVuaXQ6ICdXRUVLUycgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZUluTW9udGhzID0gTWF0aC5jZWlsKHZhbHVlSW5EYXlzIC8gREFZU19QRVJfTU9OVEgpO1xuICAgIGlmICh2YWx1ZUluTW9udGhzIDw9IHZhbHVlTGltaXQpIHtcbiAgICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZUluTW9udGhzLCB1bml0OiAnTU9OVEhTJyB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlSW5ZZWFycyA9IE1hdGguY2VpbCh2YWx1ZUluRGF5cyAvIERBWVNfUEVSX1lFQVIpO1xuICAgIGlmICh2YWx1ZUluWWVhcnMgPD0gdmFsdWVMaW1pdCkge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlSW5ZZWFycywgdW5pdDogJ1lFQVJTJyB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBEdXJhdGlvblRvb0xvbmdgLCBgdGhlIHByb3ZpZGVkIGR1cmF0aW9uIG11c3QgYmUgbGVzcyB0aGFuICR7dmFsdWVMaW1pdH0geWVhcnNgLCB0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVMaWZlY3ljbGVQb2xpY3lOYW1lKCkge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucGh5c2ljYWxOYW1lKSkge1xuICAgICAgcmV0dXJuOyAvLyBDYW5ub3QgdmFsaWRhdGUgdW5yZXNvbHZlZCB0b2tlbnMsIGdpdmVuIHRoZWlyIGFjdHVhbCB2YWx1ZSBpcyByZW5kZXJlZCBhdCBkZXBsb3ltZW50IHRpbWVcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgTGlmZWN5Y2xlUG9saWN5TmFtZVRvb0xvbmdgLCAnVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgY2Fubm90IGJlIGxvbmdlciB0aGFuIDEyOCBjaGFyYWN0ZXJzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmluY2x1ZGVzKCcgJykpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBMaWZlY3ljbGVQb2xpY3lOYW1lQ29udGFpbnNTcGFjZXNgLCAnVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgY2Fubm90IGNvbnRhaW4gc3BhY2VzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmluY2x1ZGVzKCdfJykpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBMaWZlY3ljbGVQb2xpY3lOYW1lQ29udGFpbnNVbmRlcnNjb3Jlc2AsICdUaGUgbGlmZWN5Y2xlUG9saWN5TmFtZSBjYW5ub3QgY29udGFpbiB1bmRlcnNjb3JlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZSAhPT0gdGhpcy5waHlzaWNhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YExpZmVjeWNsZVBvbGljeU5hbWVOb3RMb3dlcmNhc2VgLCAnVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgbXVzdCBiZSBsb3dlcmNhc2UnLCB0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
504
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpZmVjeWNsZS1wb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW1DO0FBQ25DLHlEQUEyQztBQUMzQyxtRUFBa0U7QUFDbEUsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFJMUUsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFvQzlGOztHQUVHO0FBQ0gsSUFBWSx5QkFhWDtBQWJELFdBQVkseUJBQXlCO0lBQ25DOztPQUVHO0lBQ0gsOENBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCxvREFBdUIsQ0FBQTtJQUN2Qjs7T0FFRztJQUNILGdEQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFiVyx5QkFBeUIseUNBQXpCLHlCQUF5QixRQWFwQztBQUVEOztHQUVHO0FBQ0gsSUFBWSxxQkFVWDtBQVZELFdBQVkscUJBQXFCO0lBQy9COztPQUVHO0lBQ0gsNENBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCw4Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBVlcscUJBQXFCLHFDQUFyQixxQkFBcUIsUUFVaEM7QUFFRDs7R0FFRztBQUNILElBQVksMkJBVVg7QUFWRCxXQUFZLDJCQUEyQjtJQUNyQzs7T0FFRztJQUNILHNEQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsa0VBQW1DLENBQUE7QUFDckMsQ0FBQyxFQVZXLDJCQUEyQiwyQ0FBM0IsMkJBQTJCLFFBVXRDO0FBeVBELE1BQWUsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFJckQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBdUIsRUFBRSxHQUFHLE9BQWlCO1FBQ3hELE9BQU8sR0FBRyxDQUFDLEtB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QVksQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyw2RkFBNkY7WUFDdkcsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSw0QkFBNEIsRUFBRSw4REFBOEQsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2SSxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwQyxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsbUNBQW1DLEVBQUUsK0NBQStDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0gsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLHdDQUF3QyxFQUFFLG9EQUFvRCxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pJLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUMxRCxNQUFNLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFBLHNCQUFHLEVBQUEsaUNBQWlDLEVBQUUsMkNBQTJDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekgsQ0FBQztTQUNGOztZQS9aVSx1REFBZTs7Ozs7QUFBZiwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDZm5MaWZlY3ljbGVQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaW1hZ2VidWlsZGVyJztcbmltcG9ydCB7IG1lbW9pemVkR2V0dGVyLCBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IElSZWNpcGVCYXNlIH0gZnJvbSAnLi9yZWNpcGUtYmFzZSc7XG5cbmNvbnN0IExJRkVDWUNMRV9QT0xJQ1lfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvYXdzLWltYWdlYnVpbGRlci1hbHBoYS5MaWZlY3ljbGVQb2xpY3knKTtcblxuLyoqXG4gKiBBbiBFQzIgSW1hZ2UgQnVpbGRlciBMaWZlY3ljbGUgUG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElMaWZlY3ljbGVQb2xpY3kgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnQgY3VzdG9tIGFjdGlvbnMgdG8gdGhlIGdpdmVuIGdyYW50ZWUgZm9yIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIHByaW5jaXBhbFxuICAgKiBAcGFyYW0gYWN0aW9ucyAtIFRoZSBsaXN0IG9mIGFjdGlvbnNcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogR3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0byB0aGUgZ2l2ZW4gZ3JhbnRlZSBmb3IgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgcHJpbmNpcGFsXG4gICAqL1xuICBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiB0byBwZXJmb3JtIG9uIHRoZSByZXNvdXJjZXMgd2hpY2ggdGhlIHBvbGljeSBhcHBsaWVzIHRvXG4gKi9cbmV4cG9ydCBlbnVtIExpZmVjeWNsZVBvbGljeUFjdGlvblR5cGUge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHJ1bGUgc2hvdWxkIGRlbGV0ZSB0aGUgcmVzb3VyY2Ugd2hlbiBpdCBpcyBhcHBsaWVkXG4gICAqL1xuICBERUxFVEUgPSAnREVMRVRFJyxcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBydWxlIHNob3VsZCBkZXByZWNhdGUgdGhlIHJlc291cmNlIHdoZW4gaXQgaXMgYXBwbGllZFxuICAgKi9cbiAgREVQUkVDQVRFID0gJ0RFUFJFQ0FURScsXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcnVsZSBzaG91bGQgZGlzYWJsZSB0aGUgcmVzb3VyY2Ugd2hlbiBpdCBpcyBhcHBsaWVkXG4gICAqL1xuICBESVNBQkxFID0gJ0RJU0FCTEUnLFxufVxuXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3ksIGluZGljYXRpbmcgd2hldGhlciBpdCB3aWxsIHJ1blxuICovXG5leHBvcnQgZW51bSBMaWZlY3ljbGVQb2xpY3lTdGF0dXMge1xuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgdGhlIGxpZmVjeWNsZSBwb2xpY3kgc2hvdWxkIGJlIGVuYWJsZWRcbiAgICovXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IHNob3VsZCBiZSBkaXNhYmxlZFxuICAgKi9cbiAgRElTQUJMRUQgPSAnRElTQUJMRUQnLFxufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSB0eXBlIHdoaWNoIHRoZSBsaWZlY3ljbGUgcG9saWN5IGlzIGFwcGxpZWQgdG9cbiAqL1xuZXhwb3J0IGVudW0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgcG9saWN5IGFwcGxpZXMgdG8gQU1JLWJhc2VkIGltYWdlc1xuICAgKi9cbiAgQU1JX0lNQUdFID0gJ0FNSV9JTUFHRScsXG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGUgcG9saWN5IGFwcGxpZXMgdG8gY29udGFpbmVyIGltYWdlc1xuICAgKi9cbiAgQ09OVEFJTkVSX0lNQUdFID0gJ0NPTlRBSU5FUl9JTUFHRScsXG59XG5cbi8qKlxuICogVGhlIGFjdGlvbiB0byBwZXJmb3JtIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lBY3Rpb24ge1xuICAvKipcbiAgICogVGhlIGFjdGlvbiB0byBwZXJmb3JtIG9uIHRoZSByZXNvdXJjZXMgc2VsZWN0ZWQgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogTGlmZWN5Y2xlUG9saWN5QWN0aW9uVHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBpbmNsdWRlIEFNSXMgaW4gdGhlIHNjb3BlIG9mIHRoZSBsaWZlY3ljbGUgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWUgZm9yIEFNSS1iYXNlZCBwb2xpY2llcywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlQW1pcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gaW5jbHVkZSBjb250YWluZXJzIGluIHRoZSBzY29wZSBvZiB0aGUgbGlmZWN5Y2xlIHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGZvciBjb250YWluZXItYmFzZWQgcG9saWNpZXMsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZUNvbnRhaW5lcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgc25hcHNob3RzIGluIHRoZSBzY29wZSBvZiB0aGUgbGlmZWN5Y2xlIHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlIGZvciBBTUktYmFzZWQgcG9saWNpZXMsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5jbHVkZVNuYXBzaG90cz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGZpbHRlcmluZyB0byBhcHBseSBpbiB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5RmlsdGVyIHtcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBhZ2UgZmlsdGVyIHRvIGFwcGx5IGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lIGlmIGEgY291bnQgZmlsdGVyIGlzIHByb3ZpZGVkLiBPdGhlcndpc2UsIGFuIGFnZSBmaWx0ZXIgaXMgcmVxdWlyZWQuXG4gICAqL1xuICByZWFkb25seSBhZ2VGaWx0ZXI/OiBMaWZlY3ljbGVQb2xpY3lBZ2VGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBjb3VudCBmaWx0ZXIgdG8gYXBwbHkgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgYW4gYWdlIGZpbHRlciBpcyBwcm92aWRlZC4gT3RoZXJ3aXNlLCBhIGNvdW50IGZpbHRlciBpcyByZXF1aXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvdW50RmlsdGVyPzogTGlmZWN5Y2xlUG9saWN5Q291bnRGaWx0ZXI7XG59XG5cbi8qKlxuICogVGhlIGNvdW50LWJhc2VkIGZpbHRlcmluZyB0byBhcHBseSBpbiBhIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeUNvdW50RmlsdGVyIHtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiByZXNvdXJjZXMgdG8ga2VlcCBvbiBoYW5kIGFzIHBhcnQgb2YgcmVzb3VyY2UgZmlsdGVyaW5nXG4gICAqL1xuICByZWFkb25seSBjb3VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBhZ2UtYmFzZWQgZmlsdGVyaW5nIHRvIGFwcGx5IGluIGEgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5QWdlRmlsdGVyIHtcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGFnZSBvZiB0aGUgcmVzb3VyY2UgdG8gZmlsdGVyLiBUaGUgcHJvdmlkZWQgZHVyYXRpb24gd2lsbCBiZSByb3VuZGVkIHVwIHRvIHRoZSBuZWFyZXN0XG4gICAqIGRheS93ZWVrL21vbnRoL3llYXIgdmFsdWUuXG4gICAqL1xuICByZWFkb25seSBhZ2U6IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogRm9yIGFnZS1iYXNlZCBmaWx0ZXJzLCB0aGUgbnVtYmVyIG9mIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyB0byBrZWVwIG9uIGhhbmQgb25jZSB0aGUgcnVsZSBpcyBhcHBsaWVkLiBUaGUgdmFsdWVcbiAgICogbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEwLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSByZXRhaW5BdExlYXN0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lJbWFnZUV4Y2x1c2lvblJ1bGVzIHtcbiAgLyoqXG4gICAqIEV4Y2x1ZGVzIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyB3aXRoIGFueSBvZiB0aGUgcHJvdmlkZWQgdGFncyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogVGhlIHJ1bGVzIHRvIGFwcGx5IGZvciBleGNsdWRpbmcgQU1JcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lBbWlFeGNsdXNpb25SdWxlcyB7XG4gIC8qKlxuICAgKiBFeGNsdWRlcyBwdWJsaWMgQU1JcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGUgaWYgdHJ1ZVxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNQdWJsaWM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFeGNsdWRlcyBBTUlzIHdoaWNoIHdlcmUgbGF1bmNoZWQgZnJvbSB3aXRoaW4gdGhlIHByb3ZpZGVkIGR1cmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGxhc3RMYXVuY2hlZD86IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogRXhjbHVkZXMgQU1JcyB3aGljaCByZXNpZGUgaW4gYW55IG9mIHRoZSBwcm92aWRlZCByZWdpb25zXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRXhjbHVkZXMgQU1JcyB3aGljaCBhcmUgc2hhcmVkIHdpdGggYW55IG9mIHRoZSBwcm92aWRlZCBzaGFyZWQgYWNjb3VudHNcbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkQWNjb3VudHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRXhjbHVkZXMgQU1JcyB3aGljaCBoYXZlIGFueSBvZiB0aGUgcHJvdmlkZWQgdGFncyBhcHBsaWVkIHRvIGl0XG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIHJlc291cmNlcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lFeGNsdXNpb25SdWxlcyB7XG4gIC8qKlxuICAgKiBUaGUgcnVsZXMgdG8gYXBwbHkgZm9yIGV4Y2x1ZGluZyBFQzIgSW1hZ2UgQnVpbGRlciBpbWFnZXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhjbHVzaW9uIHJ1bGVzIGFyZSBhcHBsaWVkIG9uIHRoZSBpbWFnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2VFeGNsdXNpb25SdWxlcz86IExpZmVjeWNsZVBvbGljeUltYWdlRXhjbHVzaW9uUnVsZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIEFNSXMgZnJvbSB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZXhjbHVzaW9uIHJ1bGVzIGFyZSBhcHBsaWVkIG9uIHRoZSBBTUlcbiAgICovXG4gIHJlYWRvbmx5IGFtaUV4Y2x1c2lvblJ1bGVzPzogTGlmZWN5Y2xlUG9saWN5QW1pRXhjbHVzaW9uUnVsZXM7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBkZXRhaWxzIGZvciB0aGUgbGlmZWN5Y2xlIHBvbGljeSBydWxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVBvbGljeURldGFpbCB7XG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHRvIHBlcmZvcm0gaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uOiBMaWZlY3ljbGVQb2xpY3lBY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBmaWx0ZXJpbmcgdG8gYXBwbHkgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyOiBMaWZlY3ljbGVQb2xpY3lGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBydWxlcyB0byBhcHBseSBmb3IgZXhjbHVkaW5nIHJlc291cmNlcyBmcm9tIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBleGNsdXNpb24gcnVsZXMgYXJlIGFwcGxpZWQgb24gYW55IHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBleGNsdXNpb25SdWxlcz86IExpZmVjeWNsZVBvbGljeUV4Y2x1c2lvblJ1bGVzO1xufVxuXG4vKipcbiAqIFNlbGVjdGlvbiBjcml0ZXJpYSBmb3IgdGhlIHJlc291cmNlcyB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IGFwcGxpZXMgdG9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVNlbGVjdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpbWFnZSByZWNpcGVzIG9yIGNvbnRhaW5lciByZWNpcGVzIHRvIGFwcGx5IHRoZSBsaWZlY3ljbGUgcG9saWN5IHRvXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZSBpZiB0YWcgc2VsZWN0aW9ucyBhcmUgcHJvdmlkZWQuIE90aGVyd2lzZSwgYXQgbGVhc3Qgb25lIHJlY2lwZSBvciB0YWcgc2VsZWN0aW9uIG11c3QgYmUgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlY2lwZXM/OiBJUmVjaXBlQmFzZVtdO1xuXG4gIC8qKlxuICAgKiBTZWxlY3RzIEVDMiBJbWFnZSBCdWlsZGVyIGltYWdlcyBjb250YWluaW5nIGFueSBvZiB0aGUgcHJvdmlkZWQgdGFnc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmUgaWYgcmVjaXBlIHNlbGVjdGlvbnMgYXJlIHByb3ZpZGVkLiBPdGhlcndpc2UsIGF0IGxlYXN0IG9uZSByZWNpcGUgb3IgdGFnIHNlbGVjdGlvbiBtdXN0IGJlIHByb3ZpZGVkXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIExpZmVjeWNsZSBQb2xpY3kgcmVzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVQb2xpY3lQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBJbWFnZSBCdWlsZGVyIHJlc291cmNlIHRoYXQgdGhlIGxpZmVjeWNsZSBwb2xpY3kgYXBwbGllcyB0by5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlVHlwZTogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGRldGFpbHMgZm9yIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsczogTGlmZWN5Y2xlUG9saWN5RGV0YWlsW107XG5cbiAgLyoqXG4gICAqIFNlbGVjdGlvbiBjcml0ZXJpYSBmb3IgdGhlIHJlc291cmNlcyB0aGF0IHRoZSBsaWZlY3ljbGUgcG9saWN5IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZVNlbGVjdGlvbjogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VTZWxlY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsaWZlY3ljbGUgcG9saWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgbmFtZSBpcyBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeS5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IExpZmVjeWNsZVBvbGljeVN0YXR1cy5FTkFCTEVEXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBMaWZlY3ljbGVQb2xpY3lTdGF0dXM7XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjdXRpb24gcm9sZSB0aGF0IGdyYW50cyBJbWFnZSBCdWlsZGVyIGFjY2VzcyB0byBydW4gbGlmZWN5Y2xlIGFjdGlvbnMuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGFuIGV4ZWN1dGlvbiByb2xlIHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSBtaW5pbWFsIHBlcm1pc3Npb25zIG5lZWRlZCB0byBleGVjdXRlIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqIGFjdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYW4gZXhlY3V0aW9uIHJvbGUgd2lsbCBiZSBnZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWdzIHRvIGFwcGx5IHRvIHRoZSBsaWZlY3ljbGUgcG9saWN5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmFic3RyYWN0IGNsYXNzIExpZmVjeWNsZVBvbGljeUJhc2UgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJTGlmZWN5Y2xlUG9saWN5IHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgbGlmZWN5Y2xlUG9saWN5QXJuOiBzdHJpbmc7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5saWZlY3ljbGVQb2xpY3lBcm5dLFxuICAgICAgc2NvcGU6IHRoaXMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRSZWFkKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChncmFudGVlLCAnaW1hZ2VidWlsZGVyOkdldExpZmVjeWNsZVBvbGljeScpO1xuICB9XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBFQzIgSW1hZ2UgQnVpbGRlciBMaWZlY3ljbGUgUG9saWN5LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ltYWdlYnVpbGRlci9sYXRlc3QvdXNlcmd1aWRlL21hbmFnZS1pbWFnZS1saWZlY3ljbGVzLmh0bWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIExpZmVjeWNsZVBvbGljeSBleHRlbmRzIExpZmVjeWNsZVBvbGljeUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1pbWFnZWJ1aWxkZXItYWxwaGEuTGlmZWN5Y2xlUG9saWN5JztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGxpZmVjeWNsZSBwb2xpY3kgZ2l2ZW4gaXRzIEFSTi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUxpZmVjeWNsZVBvbGljeUFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBsaWZlY3ljbGVQb2xpY3lBcm46IHN0cmluZyk6IElMaWZlY3ljbGVQb2xpY3kge1xuICAgIGNvbnN0IGxpZmVjeWNsZVBvbGljeU5hbWUgPSBjZGsuU3RhY2sub2Yoc2NvcGUpLnNwbGl0QXJuKFxuICAgICAgbGlmZWN5Y2xlUG9saWN5QXJuLFxuICAgICAgY2RrLkFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICkucmVzb3VyY2VOYW1lITtcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIExpZmVjeWNsZVBvbGljeUJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGxpZmVjeWNsZVBvbGljeUFybiA9IGxpZmVjeWNsZVBvbGljeUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBsaWZlY3ljbGVQb2xpY3lOYW1lID0gbGlmZWN5Y2xlUG9saWN5TmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBsaWZlY3ljbGUgcG9saWN5IGdpdmVuIGl0cyBuYW1lLiBJZiB0aGUgbmFtZSBpcyBhIHRva2VuIHJlcHJlc2VudGluZyBhIGR5bmFtaWMgQ2xvdWRGb3JtYXRpb25cbiAgICogZXhwcmVzc2lvbiwgeW91IG11c3QgZW5zdXJlIGFsbCBhbHBoYWJldGljIGNoYXJhY3RlcnMgaW4gdGhlIGV4cHJlc3Npb24gYXJlIGFscmVhZHkgbG93ZXJjYXNlZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tTGlmZWN5Y2xlUG9saWN5TmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBsaWZlY3ljbGVQb2xpY3lOYW1lOiBzdHJpbmcpOiBJTGlmZWN5Y2xlUG9saWN5IHtcbiAgICByZXR1cm4gTGlmZWN5Y2xlUG9saWN5LmZyb21MaWZlY3ljbGVQb2xpY3lBcm4oXG4gICAgICBzY29wZSxcbiAgICAgIGlkLFxuICAgICAgY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiAnaW1hZ2VidWlsZGVyJyxcbiAgICAgICAgcmVzb3VyY2U6ICdsaWZlY3ljbGUtcG9saWN5JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBsaWZlY3ljbGVQb2xpY3lOYW1lLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgTGlmZWN5Y2xlUG9saWN5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0xpZmVjeWNsZVBvbGljeSh4OiBhbnkpOiB4IGlzIExpZmVjeWNsZVBvbGljeSB7XG4gICAgcmV0dXJuIHggIT09IG51bGwgJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmIExJRkVDWUNMRV9QT0xJQ1lfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGV4ZWN1dGlvbiByb2xlIHVzZWQgZm9yIGxpZmVjeWNsZSBwb2xpY3kgZXhlY3V0aW9uc1xuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU6IGlhbS5JUm9sZTtcblxuICBwcml2YXRlIHJlc291cmNlOiBDZm5MaWZlY3ljbGVQb2xpY3k7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMaWZlY3ljbGVQb2xpY3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOlxuICAgICAgICBwcm9wcy5saWZlY3ljbGVQb2xpY3lOYW1lID8/XG4gICAgICAgIGNkay5MYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT5cbiAgICAgICAgICAgIGNkay5OYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICAgICAgICBtYXhMZW5ndGg6IDEyOCxcbiAgICAgICAgICAgICAgc2VwYXJhdG9yOiAnLScsXG4gICAgICAgICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogJy0nLFxuICAgICAgICAgICAgfSkudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgTElGRUNZQ0xFX1BPTElDWV9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlTGlmZWN5Y2xlUG9saWN5TmFtZSgpO1xuICAgIHRoaXMudmFsaWRhdGVQb2xpY3kocHJvcHMpO1xuXG4gICAgdGhpcy5leGVjdXRpb25Sb2xlID1cbiAgICAgIHByb3BzLmV4ZWN1dGlvblJvbGUgPz9cbiAgICAgIG5ldyBpYW0uUm9sZSh0aGlzLCAnRXhlY3V0aW9uUm9sZScsIHtcbiAgICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2ltYWdlYnVpbGRlci5hbWF6b25hd3MuY29tJyksXG4gICAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0VDMkltYWdlQnVpbGRlckxpZmVjeWNsZUV4ZWN1dGlvblBvbGljeScpLFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICBjb25zdCBsaWZlY3ljbGVQb2xpY3kgPSBuZXcgQ2ZuTGlmZWN5Y2xlUG9saWN5KHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiBwcm9wcy5yZXNvdXJjZVR5cGUsXG4gICAgICBleGVjdXRpb25Sb2xlOiB0aGlzLmV4ZWN1dGlvblJvbGUucm9sZUFybixcbiAgICAgIHBvbGljeURldGFpbHM6IHRoaXMuYnVpbGRQb2xpY3lEZXRhaWxzKHByb3BzLnJlc291cmNlVHlwZSwgcHJvcHMuZGV0YWlscyksXG4gICAgICByZXNvdXJjZVNlbGVjdGlvbjoge1xuICAgICAgICAuLi4ocHJvcHMucmVzb3VyY2VTZWxlY3Rpb24ucmVjaXBlcyAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgICByZWNpcGVzOiB0aGlzLmJ1aWxkUmVjaXBlcyhwcm9wcy5yZXNvdXJjZVR5cGUsIHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnJlY2lwZXMpLFxuICAgICAgICB9KSxcbiAgICAgICAgdGFnTWFwOiBwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi50YWdzLFxuICAgICAgfSxcbiAgICAgIHN0YXR1czogcHJvcHMuc3RhdHVzLFxuICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICB9KTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBsaWZlY3ljbGVQb2xpY3k7XG4gIH1cblxuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBsaWZlY3ljbGVQb2xpY3lOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IGxpZmVjeWNsZVBvbGljeUFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlQXJuQXR0cmlidXRlKHRoaXMucmVzb3VyY2UuYXR0ckFybiwge1xuICAgICAgc2VydmljZTogJ2ltYWdlYnVpbGRlcicsXG4gICAgICByZXNvdXJjZTogJ2xpZmVjeWNsZS1wb2xpY3knLFxuICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIHBvbGljeSBkZXRhaWxzIHByb3BlcnR5IGludG8gdGhlIGBQb2xpY3lEZXRhaWxgIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgVGhlIHJlc291cmNlIHR5cGUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogQHBhcmFtIGRldGFpbHMgVGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRQb2xpY3lEZXRhaWxzKFxuICAgIHJlc291cmNlVHlwZTogTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLFxuICAgIGRldGFpbHM6IExpZmVjeWNsZVBvbGljeURldGFpbFtdLFxuICApOiBDZm5MaWZlY3ljbGVQb2xpY3kuUG9saWN5RGV0YWlsUHJvcGVydHlbXSB7XG4gICAgcmV0dXJuIGRldGFpbHMubWFwKChkZXRhaWwpOiBDZm5MaWZlY3ljbGVQb2xpY3kuUG9saWN5RGV0YWlsUHJvcGVydHkgPT4ge1xuICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5idWlsZEFjdGlvbihyZXNvdXJjZVR5cGUsIGRldGFpbC5hY3Rpb24pO1xuICAgICAgY29uc3QgZXhjbHVzaW9uUnVsZXMgPVxuICAgICAgICBkZXRhaWwuZXhjbHVzaW9uUnVsZXMgIT09IHVuZGVmaW5lZCA/IHRoaXMuYnVpbGRFeGNsdXNpb25SdWxlcyhkZXRhaWwuZXhjbHVzaW9uUnVsZXMpIDogdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlUG9saWN5RGV0YWlsQWN0aW9uKHJlc291cmNlVHlwZSwgZGV0YWlsLmFjdGlvbiwgZXhjbHVzaW9uUnVsZXM/LmFtaXMpO1xuICAgICAgdGhpcy52YWxpZGF0ZVBvbGljeURldGFpbEZpbHRlcihkZXRhaWwuZmlsdGVyKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgIHJldGFpbkF0TGVhc3Q6IGRldGFpbC5maWx0ZXIuYWdlRmlsdGVyPy5yZXRhaW5BdExlYXN0LFxuICAgICAgICAgIHR5cGU6IGRldGFpbC5maWx0ZXIuYWdlRmlsdGVyICE9PSB1bmRlZmluZWQgPyAnQUdFJyA6ICdDT1VOVCcsXG4gICAgICAgICAgLi4uKGRldGFpbC5maWx0ZXIuYWdlRmlsdGVyICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdGhpcy5jb252ZXJ0RHVyYXRpb25Ub1RpbWVVbml0VmFsdWUoZGV0YWlsLmZpbHRlci5hZ2VGaWx0ZXIuYWdlKVxuICAgICAgICAgICAgOiB7IHZhbHVlOiBkZXRhaWwuZmlsdGVyLmNvdW50RmlsdGVyIS5jb3VudCB9KSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzICE9PSB1bmRlZmluZWQgJiYgeyBleGNsdXNpb25SdWxlcyB9KSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSByZWNpcGVzIHByb3BlcnR5IGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gaW50byB0aGUgYFJlY2lwZVNlbGVjdGlvbmAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gTDFcbiAgICogZGVmaW5pdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSBUaGUgcmVzb3VyY2UgdHlwZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKiBAcGFyYW0gcmVjaXBlcyBUaGUgcmVjaXBlcyBwYXNzZWQgaW4gdGhlIHByb3BzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUmVjaXBlcyhcbiAgICByZXNvdXJjZVR5cGU6IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZSxcbiAgICByZWNpcGVzOiBJUmVjaXBlQmFzZVtdLFxuICApOiBDZm5MaWZlY3ljbGVQb2xpY3kuUmVjaXBlU2VsZWN0aW9uUHJvcGVydHlbXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHJlY2lwZXM/Lm1hcCgocmVjaXBlKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LlJlY2lwZVNlbGVjdGlvblByb3BlcnR5ID0+IHtcbiAgICAgIGlmIChyZWNpcGUuX2lzSW1hZ2VSZWNpcGUoKSkge1xuICAgICAgICBpZiAocmVzb3VyY2VUeXBlID09PSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQ09OVEFJTkVSX0lNQUdFKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBsaXRgUmVjaXBlVHlwZU1pc21hdGNoRm9yQ29udGFpbmVyUG9saWN5YCxcbiAgICAgICAgICAgIGByZWNpcGVzIGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gbXVzdCBhbGwgYmUgY29udGFpbmVyIHJlY2lwZXMgZm9yIHBvbGljeSB0eXBlICR7TGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkNPTlRBSU5FUl9JTUFHRX1gLFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBuYW1lOiByZWNpcGUuaW1hZ2VSZWNpcGVOYW1lLFxuICAgICAgICAgIHNlbWFudGljVmVyc2lvbjogcmVjaXBlLmltYWdlUmVjaXBlVmVyc2lvbixcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlY2lwZS5faXNDb250YWluZXJSZWNpcGUoKSkge1xuICAgICAgICBpZiAocmVzb3VyY2VUeXBlID09PSBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQU1JX0lNQUdFKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBsaXRgUmVjaXBlVHlwZU1pc21hdGNoRm9yQW1pUG9saWN5YCxcbiAgICAgICAgICAgIGByZWNpcGVzIGluIHRoZSByZXNvdXJjZSBzZWxlY3Rpb24gbXVzdCBhbGwgYmUgaW1hZ2UgcmVjaXBlcyBmb3IgcG9saWN5IHR5cGUgJHtMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUuQU1JX0lNQUdFfWAsXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG5hbWU6IHJlY2lwZS5jb250YWluZXJSZWNpcGVOYW1lLFxuICAgICAgICAgIHNlbWFudGljVmVyc2lvbjogcmVjaXBlLmNvbnRhaW5lclJlY2lwZVZlcnNpb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZFJlY2lwZVR5cGVgLFxuICAgICAgICAncmVjaXBlcyBpbiB0aGUgcmVzb3VyY2Ugc2VsZWN0aW9uIG11c3QgZWl0aGVyIGJlIGFuIElJbWFnZVJlY2lwZSBvciBJQ29udGFpbmVyUmVjaXBlJyxcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIHRoZSBleGNsdXNpb24gcnVsZXMgcHJvcGVydHkgaW50byB0aGUgYEV4Y2x1c2lvblJ1bGVzYCB0eXBlIGluIHRoZSBDbG91ZEZvcm1hdGlvbiBMMSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gZXhjbHVzaW9uUnVsZXMgVGhlIGV4Y2x1c2lvbiBydWxlcyBmb3IgcmVzb3VyY2VzIGFwcGxpZWQgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEV4Y2x1c2lvblJ1bGVzKFxuICAgIGV4Y2x1c2lvblJ1bGVzOiBMaWZlY3ljbGVQb2xpY3lFeGNsdXNpb25SdWxlcyxcbiAgKTogQ2ZuTGlmZWN5Y2xlUG9saWN5LkV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGFtaUV4Y2x1c2lvblJ1bGVzOiBDZm5MaWZlY3ljbGVQb2xpY3kuQW1pRXhjbHVzaW9uUnVsZXNQcm9wZXJ0eSA9IHtcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8uaXNQdWJsaWMgJiYgeyBpc1B1YmxpYzogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMuaXNQdWJsaWMgfSksXG4gICAgICAuLi4oZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXM/Lmxhc3RMYXVuY2hlZCAhPT0gdW5kZWZpbmVkICYmIHtcbiAgICAgICAgbGFzdExhdW5jaGVkOiB0aGlzLmNvbnZlcnREdXJhdGlvblRvVGltZVVuaXRWYWx1ZShleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy5sYXN0TGF1bmNoZWQsIDM2NSksXG4gICAgICB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8ucmVnaW9ucz8ubGVuZ3RoICYmIHsgcmVnaW9uczogZXhjbHVzaW9uUnVsZXMuYW1pRXhjbHVzaW9uUnVsZXMucmVnaW9ucyB9KSxcbiAgICAgIC4uLihleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcz8uc2hhcmVkQWNjb3VudHM/Lmxlbmd0aCAmJiB7XG4gICAgICAgIHNoYXJlZEFjY291bnRzOiBleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy5zaGFyZWRBY2NvdW50cyxcbiAgICAgIH0pLFxuICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzLmFtaUV4Y2x1c2lvblJ1bGVzPy50YWdzICYmIHsgdGFnTWFwOiBleGNsdXNpb25SdWxlcy5hbWlFeGNsdXNpb25SdWxlcy50YWdzIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCBjZm5FeGNsdXNpb25SdWxlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgPSB7XG4gICAgICAuLi4oT2JqZWN0LmtleXMoYW1pRXhjbHVzaW9uUnVsZXMpLmxlbmd0aCAmJiB7IGFtaXM6IGFtaUV4Y2x1c2lvblJ1bGVzIH0pLFxuICAgICAgLi4uKGV4Y2x1c2lvblJ1bGVzLmltYWdlRXhjbHVzaW9uUnVsZXMgIT09IHVuZGVmaW5lZCAmJiB7IHRhZ01hcDogZXhjbHVzaW9uUnVsZXMuaW1hZ2VFeGNsdXNpb25SdWxlcy50YWdzIH0pLFxuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZXhjbHVzaW9uUnVsZXMpLmxlbmd0aCA/IGNmbkV4Y2x1c2lvblJ1bGVzIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgYWN0aW9uIHByb3BlcnR5IGludG8gdGhlIGBBY3Rpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxIGRlZmluaXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSByZXNvdXJjZVR5cGUgVGhlIHJlc291cmNlIHR5cGUgb2YgdGhlIGxpZmVjeWNsZSBwb2xpY3lcbiAgICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIGJlaW5nIHRha2VuIGluIHRoZSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYnVpbGRBY3Rpb24oXG4gICAgcmVzb3VyY2VUeXBlOiBMaWZlY3ljbGVQb2xpY3lSZXNvdXJjZVR5cGUsXG4gICAgYWN0aW9uOiBMaWZlY3ljbGVQb2xpY3lBY3Rpb24sXG4gICk6IENmbkxpZmVjeWNsZVBvbGljeS5BY3Rpb25Qcm9wZXJ0eSB7XG4gICAgY29uc3QgaXNDb250YWluZXJQb2xpY3kgPVxuICAgICAgIWNkay5Ub2tlbi5pc1VucmVzb2x2ZWQocmVzb3VyY2VUeXBlKSAmJiByZXNvdXJjZVR5cGUgPT09IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZS5DT05UQUlORVJfSU1BR0U7XG4gICAgY29uc3QgaXNBbWlQb2xpY3kgPSAhY2RrLlRva2VuLmlzVW5yZXNvbHZlZChyZXNvdXJjZVR5cGUpICYmIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkFNSV9JTUFHRTtcblxuICAgIGNvbnN0IGFtaXMgPSBhY3Rpb24uaW5jbHVkZUFtaXMgPz8gKGlzQW1pUG9saWN5ID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3Qgc25hcHNob3RzID0gYWN0aW9uLmluY2x1ZGVTbmFwc2hvdHMgPz8gKGlzQW1pUG9saWN5ID8gdHJ1ZSA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgY29udGFpbmVycyA9IGFjdGlvbi5pbmNsdWRlQ29udGFpbmVycyA/PyAoaXNDb250YWluZXJQb2xpY3kgPyB0cnVlIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBpbmNsdWRlUmVzb3VyY2VzOiBDZm5MaWZlY3ljbGVQb2xpY3kuSW5jbHVkZVJlc291cmNlc1Byb3BlcnR5ID0ge1xuICAgICAgLi4uKGFtaXMgIT09IHVuZGVmaW5lZCAmJiB7IGFtaXMgfSksXG4gICAgICAuLi4oc25hcHNob3RzICE9PSB1bmRlZmluZWQgJiYgeyBzbmFwc2hvdHMgfSksXG4gICAgICAuLi4oY29udGFpbmVycyAhPT0gdW5kZWZpbmVkICYmIHsgY29udGFpbmVycyB9KSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGFjdGlvbi50eXBlLFxuICAgICAgLi4uKE9iamVjdC5rZXlzKGluY2x1ZGVSZXNvdXJjZXMpLmxlbmd0aCAmJiB7IGluY2x1ZGVSZXNvdXJjZXMgfSksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRvcC1sZXZlbCBwcm9wZXJ0aWVzIG9mIHRoZSBwb2xpY3lcbiAgICpcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wcyBwYXNzZWQgYXMgaW5wdXQgdG8gdGhlIGNvbnN0cnVjdFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBvbGljeShwcm9wczogTGlmZWN5Y2xlUG9saWN5UHJvcHMpOiB2b2lkIHtcbiAgICBpZiAocHJvcHMucmVzb3VyY2VTZWxlY3Rpb24ucmVjaXBlcz8ubGVuZ3RoICYmIE9iamVjdC5rZXlzKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnRhZ3MgfHwge30pLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFJlc291cmNlU2VsZWN0aW9uQ2Fubm90Q29udGFpbkJvdGhSZWNpcGVzQW5kVGFnc2AsICdyZXNvdXJjZSBzZWxlY3Rpb24gY2Fubm90IGNvbnRhaW4gYm90aCByZWNpcGVzIGFuZCB0YWdzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcy5yZXNvdXJjZVNlbGVjdGlvbi5yZWNpcGVzPy5sZW5ndGggJiYgIU9iamVjdC5rZXlzKHByb3BzLnJlc291cmNlU2VsZWN0aW9uLnRhZ3MgfHwge30pLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFJlc291cmNlU2VsZWN0aW9uUmVxdWlyZWRgLCAncmVzb3VyY2Ugc2VsZWN0aW9uIG11c3QgY29udGFpbiBlaXRoZXIgcmVjaXBlcyBvciB0YWdzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmRldGFpbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgTWluaW11bU9uZVJ1bGVSZXF1aXJlZGAsICdhIGxpZmVjeWNsZSBwb2xpY3kgbXVzdCBoYXZlIGF0IGxlYXN0IDEgcnVsZScsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5kZXRhaWxzLmxlbmd0aCA+IDMpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBNYXhpbXVtVGhyZWVSdWxlc0V4Y2VlZGVkYCwgJ2EgbGlmZWN5Y2xlIHBvbGljeSBjYW4gb25seSBoYXZlIHVwIHRvIDMgcnVsZXMnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb25zID0gcHJvcHMuZGV0YWlscy5tYXAoKGRldGFpbCkgPT4gZGV0YWlsLmFjdGlvbi50eXBlKTtcbiAgICBpZiAobmV3IFNldChhY3Rpb25zKS5zaXplICE9IGFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgRHVwbGljYXRlQWN0aW9uc2AsICdsaWZlY3ljbGUgcG9saWN5IHJ1bGVzIG1heSBub3QgaGF2ZSBkdXBsaWNhdGUgYWN0aW9ucycsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYSBwb2xpY3kgZGV0YWlsIGZpbHRlciB3aXRoaW4gYSBsaWZlY3ljbGUgcG9saWN5IHJ1bGVcbiAgICpcbiAgICogQHBhcmFtIHJlc291cmNlVHlwZSBUaGUgcmVzb3VyY2UgdHlwZSBvZiB0aGUgbGlmZWN5Y2xlIHBvbGljeVxuICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gYmVpbmcgdGFrZW4gaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcGFyYW0gYW1pRXhjbHVzaW9uUnVsZXMgVGhlIEFNSSBleGNsdXNpb24gcnVsZXMgaW4gdGhlIGxpZmVjeWNsZSBwb2xpY3kgcnVsZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBvbGljeURldGFpbEFjdGlvbihcbiAgICByZXNvdXJjZVR5cGU6IExpZmVjeWNsZVBvbGljeVJlc291cmNlVHlwZSxcbiAgICBhY3Rpb246IExpZmVjeWNsZVBvbGljeUFjdGlvbixcbiAgICBhbWlFeGNsdXNpb25SdWxlczogQ2ZuTGlmZWN5Y2xlUG9saWN5LkFtaUV4Y2x1c2lvblJ1bGVzUHJvcGVydHkgfCBjZGsuSVJlc29sdmFibGUgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIGlmICghY2RrLlRva2VuLmlzVW5yZXNvbHZlZChyZXNvdXJjZVR5cGUpICYmIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkNPTlRBSU5FUl9JTUFHRSkge1xuICAgICAgaWYgKCFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGFjdGlvbi50eXBlKSAmJiBhY3Rpb24udHlwZSAhPT0gTGlmZWN5Y2xlUG9saWN5QWN0aW9uVHlwZS5ERUxFVEUpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YE9ubHlEZWxldGVSdWxlc0ZvckNvbnRhaW5lclBvbGljaWVzYCwgJ3lvdSBtYXkgb25seSBzcGVjaWZ5IERFTEVURSBydWxlcyBmb3IgY29udGFpbmVyIHBvbGljaWVzJywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24uaW5jbHVkZUFtaXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YENhbm5vdEluY2x1ZGVBbWlzSW5Db250YWluZXJQb2xpY3lgLCAneW91IGNhbm5vdCBpbmNsdWRlIEFNSXMgaW4gYSBjb250YWluZXIgcG9saWN5JywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24uaW5jbHVkZVNuYXBzaG90cykge1xuICAgICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQ2Fubm90SW5jbHVkZVNuYXBzaG90c0luQ29udGFpbmVyUG9saWN5YCwgJ3lvdSBjYW5ub3QgaW5jbHVkZSBzbmFwc2hvdHMgaW4gYSBjb250YWluZXIgcG9saWN5JywgdGhpcyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChhbWlFeGNsdXNpb25SdWxlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBDYW5ub3RFeGNsdWRlQW1pc0luQ29udGFpbmVyUG9saWN5YCwgJ3lvdSBjYW5ub3QgZXhjbHVkZSBBTUlzIGluIGEgY29udGFpbmVyIHBvbGljeScsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHJlc291cmNlVHlwZSkgJiZcbiAgICAgIHJlc291cmNlVHlwZSA9PT0gTGlmZWN5Y2xlUG9saWN5UmVzb3VyY2VUeXBlLkFNSV9JTUFHRSAmJlxuICAgICAgYWN0aW9uLmluY2x1ZGVDb250YWluZXJzXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQ2Fubm90SW5jbHVkZUNvbnRhaW5lcnNJbkFtaVBvbGljeWAsICd5b3UgY2Fubm90IGluY2x1ZGUgY29udGFpbmVycyBpbiBhbiBBTUkgcG9saWN5JywgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhIHBvbGljeSBkZXRhaWwgZmlsdGVyXG4gICAqXG4gICAqIEBwYXJhbSBmaWx0ZXIgVGhlIGxpZmVjeWNsZSBwb2xpY3kgcmVzb3VyY2UgZmlsdGVyIGFwcGxpZWQgaW4gdGhlIHJ1bGVcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVQb2xpY3lEZXRhaWxGaWx0ZXIoZmlsdGVyOiBMaWZlY3ljbGVQb2xpY3lGaWx0ZXIpIHtcbiAgICBpZiAoZmlsdGVyLmFnZUZpbHRlciAhPT0gdW5kZWZpbmVkICYmIGZpbHRlci5jb3VudEZpbHRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQWdlQW5kQ291bnRGaWx0ZXJDb25mbGljdGAsICdlaXRoZXIgYWdlIGNvdW50IGNhbiBiZSBzcGVjaWZpZWQgaW4gYSBwb2xpY3kgZmlsdGVyLCBidXQgbm90IGJvdGgnLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyLmFnZUZpbHRlciA9PT0gdW5kZWZpbmVkICYmIGZpbHRlci5jb3VudEZpbHRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQWdlT3JDb3VudEZpbHRlclJlcXVpcmVkYCwgJ3lvdSBtdXN0IHByb3ZpZGUgYW4gYWdlIG9yIGNvdW50IGZpbHRlciBpbiB0aGUgcG9saWN5JywgdGhpcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmV0YWluQXRMZWFzdCA9IGZpbHRlci5hZ2VGaWx0ZXI/LnJldGFpbkF0TGVhc3Q7XG4gICAgaWYgKHJldGFpbkF0TGVhc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHJldGFpbkF0TGVhc3QgPCAxKSB7XG4gICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBSZXRhaW5BdExlYXN0VG9vTG93YCwgJ3RoZSByZXRhaW5BdExlYXN0IGZpbHRlciB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0IDEnLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXRhaW5BdExlYXN0ID4gMTApIHtcbiAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YFJldGFpbkF0TGVhc3RUb29IaWdoYCwgJ3RoZSByZXRhaW5BdExlYXN0IGZpbHRlciB2YWx1ZSBtdXN0IGJlIGF0IG1vc3QgMTAnLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBgY2RrLkR1cmF0aW9uYCBpbnRvIHRoZSB2YWx1ZSBhbmQgdW5pdCB3aGljaCBpcyBhY2NlcHRlZCBhcyBmaWx0ZXIgYWdlIGFuZCBsYXN0IGxhdW5jaGVkIGFnZSBpbiB0aGVcbiAgICogbGlmZWN5Y2xlIHBvbGljeS4gVGhlIHZhbHVlIGlzIHJvdW5kZWQgdXAgdG8gdGhlIG5lYXJlc3Qgd2hvbGUgbnVtYmVyLlxuICAgKlxuICAgKiBAcGFyYW0gZHVyYXRpb24gVGhlIGR1cmF0aW9uIHRvIGNvbnZlcnRcbiAgICogQHBhcmFtIHZhbHVlTGltaXQgVGhlIG1heGltdW0gdmFsdWUgdGhhdCBjYW4gYmUgc3BlY2lmaWVkXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnREdXJhdGlvblRvVGltZVVuaXRWYWx1ZShcbiAgICBkdXJhdGlvbjogY2RrLkR1cmF0aW9uLFxuICAgIHZhbHVlTGltaXQ6IG51bWJlciA9IDEwMDAsXG4gICk6IHsgdmFsdWU6IG51bWJlcjsgdW5pdDogJ0RBWVMnIHwgJ1dFRUtTJyB8ICdNT05USFMnIHwgJ1lFQVJTJyB9IHtcbiAgICBjb25zdCBEQVlTX1BFUl9XRUVLID0gNztcbiAgICBjb25zdCBEQVlTX1BFUl9NT05USCA9IDMwO1xuICAgIGNvbnN0IERBWVNfUEVSX1lFQVIgPSAzNjU7XG5cbiAgICBjb25zdCB2YWx1ZUluRGF5cyA9IE1hdGguY2VpbChkdXJhdGlvbi50b0RheXMoKSk7XG4gICAgaWYgKHZhbHVlSW5EYXlzIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YER1cmF0aW9uVG9vU2hvcnRgLCAndGhlIHByb3ZpZGVkIGR1cmF0aW9uIG11c3QgYmUgYXQgbGVhc3QgMSBkYXknLCB0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWVJbkRheXMgPD0gdmFsdWVMaW1pdCkge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlSW5EYXlzLCB1bml0OiAnREFZUycgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZUluV2Vla3MgPSBNYXRoLmNlaWwodmFsdWVJbkRheXMgLyBEQVlTX1BFUl9XRUVLKTtcbiAgICBpZiAodmFsdWVJbldlZWtzIDw9IHZhbHVlTGltaXQpIHtcbiAgICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZUluV2Vla3MsIHVuaXQ6ICdXRUVLUycgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZUluTW9udGhzID0gTWF0aC5jZWlsKHZhbHVlSW5EYXlzIC8gREFZU19QRVJfTU9OVEgpO1xuICAgIGlmICh2YWx1ZUluTW9udGhzIDw9IHZhbHVlTGltaXQpIHtcbiAgICAgIHJldHVybiB7IHZhbHVlOiB2YWx1ZUluTW9udGhzLCB1bml0OiAnTU9OVEhTJyB9O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlSW5ZZWFycyA9IE1hdGguY2VpbCh2YWx1ZUluRGF5cyAvIERBWVNfUEVSX1lFQVIpO1xuICAgIGlmICh2YWx1ZUluWWVhcnMgPD0gdmFsdWVMaW1pdCkge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IHZhbHVlSW5ZZWFycywgdW5pdDogJ1lFQVJTJyB9O1xuICAgIH1cblxuICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBEdXJhdGlvblRvb0xvbmdgLCBgdGhlIHByb3ZpZGVkIGR1cmF0aW9uIG11c3QgYmUgbGVzcyB0aGFuICR7dmFsdWVMaW1pdH0geWVhcnNgLCB0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVMaWZlY3ljbGVQb2xpY3lOYW1lKCkge1xuICAgIGlmIChjZGsuVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucGh5c2ljYWxOYW1lKSkge1xuICAgICAgcmV0dXJuOyAvLyBDYW5ub3QgdmFsaWRhdGUgdW5yZXNvbHZlZCB0b2tlbnMsIGdpdmVuIHRoZWlyIGFjdHVhbCB2YWx1ZSBpcyByZW5kZXJlZCBhdCBkZXBsb3ltZW50IHRpbWVcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waHlzaWNhbE5hbWUubGVuZ3RoID4gMTI4KSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgTGlmZWN5Y2xlUG9saWN5TmFtZVRvb0xvbmdgLCAnVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgY2Fubm90IGJlIGxvbmdlciB0aGFuIDEyOCBjaGFyYWN0ZXJzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmluY2x1ZGVzKCcgJykpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBMaWZlY3ljbGVQb2xpY3lOYW1lQ29udGFpbnNTcGFjZXNgLCAnVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgY2Fubm90IGNvbnRhaW4gc3BhY2VzJywgdGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGh5c2ljYWxOYW1lLmluY2x1ZGVzKCdfJykpIHtcbiAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBMaWZlY3ljbGVQb2xpY3lOYW1lQ29udGFpbnNVbmRlcnNjb3Jlc2AsICdUaGUgbGlmZWN5Y2xlUG9saWN5TmFtZSBjYW5ub3QgY29udGFpbiB1bmRlcnNjb3JlcycsIHRoaXMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBoeXNpY2FsTmFtZSAhPT0gdGhpcy5waHlzaWNhbE5hbWUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YExpZmVjeWNsZVBvbGljeU5hbWVOb3RMb3dlcmNhc2VgLCAnVGhlIGxpZmVjeWNsZVBvbGljeU5hbWUgbXVzdCBiZSBsb3dlcmNhc2UnLCB0aGlzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
package/lib/os-version.js CHANGED
@@ -25,7 +25,7 @@ var Platform;
25
25
  * Represents an OS version for an EC2 Image Builder image
26
26
  */
27
27
  class OSVersion {
28
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.OSVersion", version: "2.257.0-alpha.0" };
28
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-imagebuilder-alpha.OSVersion", version: "2.258.1-alpha.0" };
29
29
  /**
30
30
  * OS version for all Linux images
31
31
  */
@@ -1,7 +1,40 @@
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.buildWorkflows = exports.buildImageScanningConfiguration = exports.buildImageTestsConfiguration = void 0;
4
- const cdk = require("aws-cdk-lib");
37
+ const cdk = __importStar(require("aws-cdk-lib"));
5
38
  const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
6
39
  /**
7
40
  * Generates the image tests configuration property into the `ImageTestsConfiguration` type in the CloudFormation L1
@@ -65,4 +98,4 @@ const buildWorkflows = (props) => {
65
98
  return cfnWorkflows?.length ? cfnWorkflows : undefined;
66
99
  };
67
100
  exports.buildWorkflows = buildWorkflows;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYW5kLXBpcGVsaW5lLXByb3BzLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImltYWdlLWFuZC1waXBlbGluZS1wcm9wcy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLDRFQUE0RDtBQUs1RDs7Ozs7R0FLRztBQUNJLE1BQU0sNEJBQTRCLEdBQUcsQ0FJMUMsS0FBYSxFQUNRLEVBQUU7SUFDdkIsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQWEsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFYVyxRQUFBLDRCQUE0QixnQ0FXdkM7QUFFRjs7Ozs7O0dBTUc7QUFDSSxNQUFNLCtCQUErQixHQUFHLENBSTdDLEtBQWdCLEVBQ2hCLEtBQWEsRUFDUSxFQUFFO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSw4Q0FBOEMsRUFBRSwwRUFBMEUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0SyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbkYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLHdDQUF3QyxFQUFFLG9FQUFvRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFKLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUE4QztRQUNsRSxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVMsSUFBSTtZQUNwRCxjQUFjLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixDQUFDLGNBQWM7U0FDaEUsQ0FBQztRQUNGLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7S0FDaEcsQ0FBQztJQUVGLE1BQU0sMEJBQTBCLEdBQUc7UUFDakMsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLElBQUksRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNyRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7S0FDbEUsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsMEJBQXNDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM5RyxDQUFDLENBQUM7QUE1QlcsUUFBQSwrQkFBK0IsbUNBNEIxQztBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSxjQUFjLEdBQUcsQ0FJNUIsS0FBYSxFQUNRLEVBQUU7SUFDdkIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNyRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkYsSUFBSTtZQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU87WUFDTCxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQzFDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7WUFDckMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztTQUN6QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFFLFlBQXdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN0RSxDQUFDLENBQUM7QUFwQlcsUUFBQSxjQUFjLGtCQW9CekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDZm5JbWFnZSwgQ2ZuSW1hZ2VQaXBlbGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pbWFnZWJ1aWxkZXInO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVByb3BzIH0gZnJvbSAnLi4vaW1hZ2UnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVBpcGVsaW5lUHJvcHMgfSBmcm9tICcuLi9pbWFnZS1waXBlbGluZSc7XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSBpbWFnZSB0ZXN0cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IGludG8gdGhlIGBJbWFnZVRlc3RzQ29uZmlndXJhdGlvbmAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gTDFcbiAqIGRlZmluaXRpb24uXG4gKlxuICogQHBhcmFtIHByb3BzIFByb3BzIGlucHV0IGZvciB0aGUgY29uc3RydWN0XG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZEltYWdlVGVzdHNDb25maWd1cmF0aW9uID0gPFxuICBQcm9wc1QgZXh0ZW5kcyBJbWFnZVBpcGVsaW5lUHJvcHMgfCBJbWFnZVByb3BzLFxuICBPdXRwdXRUIGV4dGVuZHMgQ2ZuSW1hZ2VQaXBlbGluZS5JbWFnZVRlc3RzQ29uZmlndXJhdGlvblByb3BlcnR5IHwgQ2ZuSW1hZ2UuSW1hZ2VUZXN0c0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSxcbj4oXG4gIHByb3BzOiBQcm9wc1QsXG4pOiBPdXRwdXRUIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKHByb3BzLmltYWdlVGVzdHNFbmFibGVkID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHsgaW1hZ2VUZXN0c0VuYWJsZWQ6IHByb3BzLmltYWdlVGVzdHNFbmFibGVkIH0gYXMgT3V0cHV0VDtcbn07XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSBpbWFnZSBzY2FubmluZyBjb25maWd1cmF0aW9uIHByb3BlcnR5IGludG8gdGhlIGBJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbmAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb25cbiAqIEwxIGRlZmluaXRpb24uXG4gKlxuICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbiA9IDxcbiAgUHJvcHNUIGV4dGVuZHMgSW1hZ2VQaXBlbGluZVByb3BzIHwgSW1hZ2VQcm9wcyxcbiAgT3V0cHV0VCBleHRlbmRzIENmbkltYWdlUGlwZWxpbmUuSW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IENmbkltYWdlLkltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uUHJvcGVydHksXG4+KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBwcm9wczogUHJvcHNULFxuKTogT3V0cHV0VCB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghcHJvcHMucmVjaXBlLl9pc0NvbnRhaW5lclJlY2lwZSgpICYmIHByb3BzLmltYWdlU2Nhbm5pbmdFY3JSZXBvc2l0b3J5ICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgRWNyUmVwb3NpdG9yeU9ubHlTdXBwb3J0ZWRGb3JDb250YWluZXJSZWNpcGVgLCAnaW1hZ2VTY2FubmluZ0VjclJlcG9zaXRvcnkgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNvbnRhaW5lciByZWNpcGUgYnVpbGRzJywgc2NvcGUpO1xuICB9XG5cbiAgaWYgKCFwcm9wcy5yZWNpcGUuX2lzQ29udGFpbmVyUmVjaXBlKCkgJiYgcHJvcHMuaW1hZ2VTY2FubmluZ0VjclRhZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBFY3JUYWdzT25seVN1cHBvcnRlZEZvckNvbnRhaW5lclJlY2lwZWAsICdpbWFnZVNjYW5uaW5nRWNyVGFncyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY29udGFpbmVyIHJlY2lwZSBidWlsZHMnLCBzY29wZSk7XG4gIH1cblxuICBjb25zdCBlY3JDb25maWd1cmF0aW9uOiBDZm5JbWFnZVBpcGVsaW5lLkVjckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSA9IHtcbiAgICAuLi4ocHJvcHMuaW1hZ2VTY2FubmluZ0VjclJlcG9zaXRvcnkgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICByZXBvc2l0b3J5TmFtZTogcHJvcHMuaW1hZ2VTY2FubmluZ0VjclJlcG9zaXRvcnkucmVwb3NpdG9yeU5hbWUsXG4gICAgfSksXG4gICAgLi4uKChwcm9wcy5pbWFnZVNjYW5uaW5nRWNyVGFncyA/PyBbXSkubGVuZ3RoICYmIHsgY29udGFpbmVyVGFnczogcHJvcHMuaW1hZ2VTY2FubmluZ0VjclRhZ3MgfSksXG4gIH07XG5cbiAgY29uc3QgaW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgLi4uKHByb3BzLmltYWdlU2Nhbm5pbmdFbmFibGVkICE9PSB1bmRlZmluZWQgJiYgeyBpbWFnZVNjYW5uaW5nRW5hYmxlZDogcHJvcHMuaW1hZ2VTY2FubmluZ0VuYWJsZWQgfSksXG4gICAgLi4uKE9iamVjdC5rZXlzKGVjckNvbmZpZ3VyYXRpb24pLmxlbmd0aCAmJiB7IGVjckNvbmZpZ3VyYXRpb24gfSksXG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKGltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uKS5sZW5ndGggPyAoaW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb24gYXMgT3V0cHV0VCkgOiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgd29ya2Zsb3dzIHByb3BlcnR5IGludG8gdGhlIGBXb3JrZmxvd0NvbmZpZ3VyYXRpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxXG4gKiBkZWZpbml0aW9uLlxuICpcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRXb3JrZmxvd3MgPSA8XG4gIFByb3BzVCBleHRlbmRzIEltYWdlUGlwZWxpbmVQcm9wcyB8IEltYWdlUHJvcHMsXG4gIE91dHB1dFQgZXh0ZW5kcyBDZm5JbWFnZVBpcGVsaW5lLldvcmtmbG93Q29uZmlndXJhdGlvblByb3BlcnR5W10gfCBDZm5JbWFnZS5Xb3JrZmxvd0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eVtdLFxuPihcbiAgcHJvcHM6IFByb3BzVCxcbik6IE91dHB1dFQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjZm5Xb3JrZmxvd3MgPSBwcm9wcy53b3JrZmxvd3M/Lm1hcCgod29ya2Zsb3cpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gT2JqZWN0LmVudHJpZXMod29ya2Zsb3cucGFyYW1ldGVycyA/PyB7fSkubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdvcmtmbG93QXJuOiB3b3JrZmxvdy53b3JrZmxvdy53b3JrZmxvd0FybixcbiAgICAgIG9uRmFpbHVyZTogd29ya2Zsb3cub25GYWlsdXJlLFxuICAgICAgcGFyYWxsZWxHcm91cDogd29ya2Zsb3cucGFyYWxsZWxHcm91cCxcbiAgICAgIC4uLihwYXJhbWV0ZXJzLmxlbmd0aCAmJiB7IHBhcmFtZXRlcnMgfSksXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNmbldvcmtmbG93cz8ubGVuZ3RoID8gKGNmbldvcmtmbG93cyBhcyBPdXRwdXRUKSA6IHVuZGVmaW5lZDtcbn07XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYW5kLXBpcGVsaW5lLXByb3BzLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImltYWdlLWFuZC1waXBlbGluZS1wcm9wcy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW1DO0FBRW5DLDRFQUE0RDtBQUs1RDs7Ozs7R0FLRztBQUNJLE1BQU0sNEJBQTRCLEdBQUcsQ0FJMUMsS0FBYSxFQUNRLEVBQUU7SUFDdkIsSUFBSSxLQUFLLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCLEVBQWEsQ0FBQztBQUNuRSxDQUFDLENBQUM7QUFYVyxRQUFBLDRCQUE0QixnQ0FXdkM7QUFFRjs7Ozs7O0dBTUc7QUFDSSxNQUFNLCtCQUErQixHQUFHLENBSTdDLEtBQWdCLEVBQ2hCLEtBQWEsRUFDUSxFQUFFO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFLElBQUksS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUEsc0JBQUcsRUFBQSw4Q0FBOEMsRUFBRSwwRUFBMEUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0SyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbkYsTUFBTSxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBQSxzQkFBRyxFQUFBLHdDQUF3QyxFQUFFLG9FQUFvRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFKLENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUE4QztRQUNsRSxHQUFHLENBQUMsS0FBSyxDQUFDLDBCQUEwQixLQUFLLFNBQVMsSUFBSTtZQUNwRCxjQUFjLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixDQUFDLGNBQWM7U0FDaEUsQ0FBQztRQUNGLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixFQUFFLENBQUM7S0FDaEcsQ0FBQztJQUVGLE1BQU0sMEJBQTBCLEdBQUc7UUFDakMsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLElBQUksRUFBRSxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNyRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7S0FDbEUsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsMEJBQXNDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM5RyxDQUFDLENBQUM7QUE1QlcsUUFBQSwrQkFBK0IsbUNBNEIxQztBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSxjQUFjLEdBQUcsQ0FJNUIsS0FBYSxFQUNRLEVBQUU7SUFDdkIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNyRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkYsSUFBSTtZQUNKLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU87WUFDTCxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQzFDLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWE7WUFDckMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztTQUN6QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFFLFlBQXdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN0RSxDQUFDLENBQUM7QUFwQlcsUUFBQSxjQUFjLGtCQW9CekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBDZm5JbWFnZSwgQ2ZuSW1hZ2VQaXBlbGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pbWFnZWJ1aWxkZXInO1xuaW1wb3J0IHsgbGl0IH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvaGVscGVycy1pbnRlcm5hbCc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVByb3BzIH0gZnJvbSAnLi4vaW1hZ2UnO1xuaW1wb3J0IHR5cGUgeyBJbWFnZVBpcGVsaW5lUHJvcHMgfSBmcm9tICcuLi9pbWFnZS1waXBlbGluZSc7XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSBpbWFnZSB0ZXN0cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IGludG8gdGhlIGBJbWFnZVRlc3RzQ29uZmlndXJhdGlvbmAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb24gTDFcbiAqIGRlZmluaXRpb24uXG4gKlxuICogQHBhcmFtIHByb3BzIFByb3BzIGlucHV0IGZvciB0aGUgY29uc3RydWN0XG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZEltYWdlVGVzdHNDb25maWd1cmF0aW9uID0gPFxuICBQcm9wc1QgZXh0ZW5kcyBJbWFnZVBpcGVsaW5lUHJvcHMgfCBJbWFnZVByb3BzLFxuICBPdXRwdXRUIGV4dGVuZHMgQ2ZuSW1hZ2VQaXBlbGluZS5JbWFnZVRlc3RzQ29uZmlndXJhdGlvblByb3BlcnR5IHwgQ2ZuSW1hZ2UuSW1hZ2VUZXN0c0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSxcbj4oXG4gIHByb3BzOiBQcm9wc1QsXG4pOiBPdXRwdXRUIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKHByb3BzLmltYWdlVGVzdHNFbmFibGVkID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHsgaW1hZ2VUZXN0c0VuYWJsZWQ6IHByb3BzLmltYWdlVGVzdHNFbmFibGVkIH0gYXMgT3V0cHV0VDtcbn07XG5cbi8qKlxuICogR2VuZXJhdGVzIHRoZSBpbWFnZSBzY2FubmluZyBjb25maWd1cmF0aW9uIHByb3BlcnR5IGludG8gdGhlIGBJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbmAgdHlwZSBpbiB0aGUgQ2xvdWRGb3JtYXRpb25cbiAqIEwxIGRlZmluaXRpb24uXG4gKlxuICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRJbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbiA9IDxcbiAgUHJvcHNUIGV4dGVuZHMgSW1hZ2VQaXBlbGluZVByb3BzIHwgSW1hZ2VQcm9wcyxcbiAgT3V0cHV0VCBleHRlbmRzIENmbkltYWdlUGlwZWxpbmUuSW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB8IENmbkltYWdlLkltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uUHJvcGVydHksXG4+KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBwcm9wczogUHJvcHNULFxuKTogT3V0cHV0VCB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghcHJvcHMucmVjaXBlLl9pc0NvbnRhaW5lclJlY2lwZSgpICYmIHByb3BzLmltYWdlU2Nhbm5pbmdFY3JSZXBvc2l0b3J5ICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgRWNyUmVwb3NpdG9yeU9ubHlTdXBwb3J0ZWRGb3JDb250YWluZXJSZWNpcGVgLCAnaW1hZ2VTY2FubmluZ0VjclJlcG9zaXRvcnkgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNvbnRhaW5lciByZWNpcGUgYnVpbGRzJywgc2NvcGUpO1xuICB9XG5cbiAgaWYgKCFwcm9wcy5yZWNpcGUuX2lzQ29udGFpbmVyUmVjaXBlKCkgJiYgcHJvcHMuaW1hZ2VTY2FubmluZ0VjclRhZ3MgIT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBFY3JUYWdzT25seVN1cHBvcnRlZEZvckNvbnRhaW5lclJlY2lwZWAsICdpbWFnZVNjYW5uaW5nRWNyVGFncyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY29udGFpbmVyIHJlY2lwZSBidWlsZHMnLCBzY29wZSk7XG4gIH1cblxuICBjb25zdCBlY3JDb25maWd1cmF0aW9uOiBDZm5JbWFnZVBpcGVsaW5lLkVjckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSA9IHtcbiAgICAuLi4ocHJvcHMuaW1hZ2VTY2FubmluZ0VjclJlcG9zaXRvcnkgIT09IHVuZGVmaW5lZCAmJiB7XG4gICAgICByZXBvc2l0b3J5TmFtZTogcHJvcHMuaW1hZ2VTY2FubmluZ0VjclJlcG9zaXRvcnkucmVwb3NpdG9yeU5hbWUsXG4gICAgfSksXG4gICAgLi4uKChwcm9wcy5pbWFnZVNjYW5uaW5nRWNyVGFncyA/PyBbXSkubGVuZ3RoICYmIHsgY29udGFpbmVyVGFnczogcHJvcHMuaW1hZ2VTY2FubmluZ0VjclRhZ3MgfSksXG4gIH07XG5cbiAgY29uc3QgaW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgLi4uKHByb3BzLmltYWdlU2Nhbm5pbmdFbmFibGVkICE9PSB1bmRlZmluZWQgJiYgeyBpbWFnZVNjYW5uaW5nRW5hYmxlZDogcHJvcHMuaW1hZ2VTY2FubmluZ0VuYWJsZWQgfSksXG4gICAgLi4uKE9iamVjdC5rZXlzKGVjckNvbmZpZ3VyYXRpb24pLmxlbmd0aCAmJiB7IGVjckNvbmZpZ3VyYXRpb24gfSksXG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKGltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uKS5sZW5ndGggPyAoaW1hZ2VTY2FubmluZ0NvbmZpZ3VyYXRpb24gYXMgT3V0cHV0VCkgOiB1bmRlZmluZWQ7XG59O1xuXG4vKipcbiAqIEdlbmVyYXRlcyB0aGUgd29ya2Zsb3dzIHByb3BlcnR5IGludG8gdGhlIGBXb3JrZmxvd0NvbmZpZ3VyYXRpb25gIHR5cGUgaW4gdGhlIENsb3VkRm9ybWF0aW9uIEwxXG4gKiBkZWZpbml0aW9uLlxuICpcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICovXG5leHBvcnQgY29uc3QgYnVpbGRXb3JrZmxvd3MgPSA8XG4gIFByb3BzVCBleHRlbmRzIEltYWdlUGlwZWxpbmVQcm9wcyB8IEltYWdlUHJvcHMsXG4gIE91dHB1dFQgZXh0ZW5kcyBDZm5JbWFnZVBpcGVsaW5lLldvcmtmbG93Q29uZmlndXJhdGlvblByb3BlcnR5W10gfCBDZm5JbWFnZS5Xb3JrZmxvd0NvbmZpZ3VyYXRpb25Qcm9wZXJ0eVtdLFxuPihcbiAgcHJvcHM6IFByb3BzVCxcbik6IE91dHB1dFQgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBjZm5Xb3JrZmxvd3MgPSBwcm9wcy53b3JrZmxvd3M/Lm1hcCgod29ya2Zsb3cpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gT2JqZWN0LmVudHJpZXMod29ya2Zsb3cucGFyYW1ldGVycyA/PyB7fSkubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZS52YWx1ZSxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdvcmtmbG93QXJuOiB3b3JrZmxvdy53b3JrZmxvdy53b3JrZmxvd0FybixcbiAgICAgIG9uRmFpbHVyZTogd29ya2Zsb3cub25GYWlsdXJlLFxuICAgICAgcGFyYWxsZWxHcm91cDogd29ya2Zsb3cucGFyYWxsZWxHcm91cCxcbiAgICAgIC4uLihwYXJhbWV0ZXJzLmxlbmd0aCAmJiB7IHBhcmFtZXRlcnMgfSksXG4gICAgfTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNmbldvcmtmbG93cz8ubGVuZ3RoID8gKGNmbldvcmtmbG93cyBhcyBPdXRwdXRUKSA6IHVuZGVmaW5lZDtcbn07XG4iXX0=
@@ -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.getExecutionRole = exports.defaultExecutionRolePolicy = void 0;
4
- const cdk = require("aws-cdk-lib");
5
- const iam = require("aws-cdk-lib/aws-iam");
37
+ const cdk = __importStar(require("aws-cdk-lib"));
38
+ const iam = __importStar(require("aws-cdk-lib/aws-iam"));
6
39
  /**
7
40
  * Returns the default execution role policy, for auto-generated execution roles.
8
41
  *
@@ -417,4 +450,4 @@ const getExecutionRoleRequirements = ({ workflows, imageLogGroup, imagePipelineL
417
450
  applyGrants: (role) => granters.forEach((granter) => granter(role)),
418
451
  };
419
452
  };
420
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvbGljeS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQU8zQzs7Ozs7OztHQU9HO0FBQ0ksTUFBTSwwQkFBMEIsR0FBRyxDQUN4QyxLQUFnQixFQUNoQixLQUFjLEVBQ1MsRUFBRTtJQUN6QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDNUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUU5QixrSUFBa0k7SUFDbEksbUdBQW1HO0lBQ25HLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsU0FBUyxFQUFFLENBQUMsT0FBTyxTQUFTLGlCQUFpQixDQUFDO1lBQzlDLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osMEJBQTBCLEVBQUUsbUJBQW1CO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLE9BQU8sU0FBUyxvQkFBb0IsQ0FBQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFO29CQUNaLDJCQUEyQixFQUFFLG1CQUFtQjtpQkFDakQ7YUFDRjtTQUNGLENBQUM7UUFD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SUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTztRQUNMLHFCQUFxQixFQUFFLFlBQVksSUFBSSwyQkFBMkIsSUFBSSw4QkFBOEI7UUFDcEcsV0FBVyxFQUFFLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDL0UsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQcm9wcyB9IGZyb20gJy4uL2ltYWdlJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQaXBlbGluZVByb3BzIH0gZnJvbSAnLi4vaW1hZ2UtcGlwZWxpbmUnO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd0NvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi93b3JrZmxvdyc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZGVmYXVsdCBleGVjdXRpb24gcm9sZSBwb2xpY3ksIGZvciBhdXRvLWdlbmVyYXRlZCBleGVjdXRpb24gcm9sZXMuXG4gKlxuICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3cy1tYW5hZ2VkLXBvbGljeS9sYXRlc3QvcmVmZXJlbmNlL0FXU1NlcnZpY2VSb2xlRm9ySW1hZ2VCdWlsZGVyLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFeGVjdXRpb25Sb2xlUG9saWN5ID0gPFByb3BzVCBleHRlbmRzIEltYWdlUGlwZWxpbmVQcm9wcyB8IEltYWdlUHJvcHM+KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBwcm9wcz86IFByb3BzVCxcbik6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHNjb3BlKTtcbiAgY29uc3QgcGFydGl0aW9uID0gc3RhY2sucGFydGl0aW9uO1xuICBjb25zdCByZWdpb24gPSBzdGFjay5yZWdpb247XG4gIGNvbnN0IGFjY291bnQgPSBzdGFjay5hY2NvdW50O1xuXG4gIC8vIFBlcm1pc3Npb25zIGFyZSBpZGVudGljYWwgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3cy1tYW5hZ2VkLXBvbGljeS9sYXRlc3QvcmVmZXJlbmNlL0FXU1NlcnZpY2VSb2xlRm9ySW1hZ2VCdWlsZGVyLmh0bWxcbiAgLy8gU0xSIHBvbGljaWVzIGNhbm5vdCBiZSBhdHRhY2hlZCB0byByb2xlcywgYW5kIG5vIG1hbmFnZWQgcG9saWN5IGV4aXN0cyBmb3IgdGhlc2UgcGVybWlzc2lvbnMgeWV0XG4gIGNvbnN0IHBvbGljaWVzID0gW1xuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJlZ2lzdGVySW1hZ2UnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdhd3M6UmVxdWVzdFRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpSZWdpc3RlckltYWdlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJ1bkluc3RhbmNlcyddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OnNuYXBzaG90LypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOnN1Ym5ldC8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpuZXR3b3JrLWludGVyZmFjZS8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpzZWN1cml0eS1ncm91cC8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjprZXktcGFpci8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpsYXVuY2gtdGVtcGxhdGUvKmAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmxpY2Vuc2UtbWFuYWdlcjoqOio6bGljZW5zZS1jb25maWd1cmF0aW9uOipgLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpSdW5JbnN0YW5jZXMnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6dm9sdW1lLypgLCBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmluc3RhbmNlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6IFsnRUMyIEltYWdlIEJ1aWxkZXInLCAnRUMyIEZhc3QgTGF1bmNoJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnaWFtOlBhc3NSb2xlJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnaWFtOlBhc3NlZFRvU2VydmljZSc6IFsnZWMyLmFtYXpvbmF3cy5jb20nLCAnZWMyLmFtYXpvbmF3cy5jb20uY24nLCAndm1pZS5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlN0b3BJbnN0YW5jZXMnLCAnZWMyOlN0YXJ0SW5zdGFuY2VzJywgJ2VjMjpUZXJtaW5hdGVJbnN0YW5jZXMnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZWMyOkNvcHlJbWFnZScsXG4gICAgICAgICdlYzI6Q3JlYXRlSW1hZ2UnLFxuICAgICAgICAnZWMyOkNyZWF0ZUxhdW5jaFRlbXBsYXRlJyxcbiAgICAgICAgJ2VjMjpEZXJlZ2lzdGVySW1hZ2UnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW1hZ2VzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlQXR0cmlidXRlJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlU3RhdHVzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVJbnN0YW5jZVR5cGVPZmZlcmluZ3MnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW5zdGFuY2VUeXBlcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVTdWJuZXRzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZVRhZ3MnLFxuICAgICAgICAnZWMyOk1vZGlmeUltYWdlQXR0cmlidXRlJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUltcG9ydEltYWdlVGFza3MnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlU25hcHNob3RzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUhvc3RzJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOk1vZGlmeVNuYXBzaG90QXR0cmlidXRlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOkNyZWF0ZVRhZ3MnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6Q3JlYXRlQWN0aW9uJzogWydSdW5JbnN0YW5jZXMnLCAnQ3JlYXRlSW1hZ2UnXSxcbiAgICAgICAgICAnYXdzOlJlcXVlc3RUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlcicsICdFQzIgRmFzdCBMYXVuY2gnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6Q3JlYXRlVGFncyddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OmltYWdlLypgLCBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmV4cG9ydC1pbWFnZS10YXNrLypgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpDcmVhdGVUYWdzJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6bGF1bmNoLXRlbXBsYXRlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6IFsnRUMyIEltYWdlIEJ1aWxkZXInLCAnRUMyIEZhc3QgTGF1bmNoJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnNuczoke3JlZ2lvbn06JHthY2NvdW50fToqYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc3NtOkxpc3RDb21tYW5kcycsXG4gICAgICAgICdzc206TGlzdENvbW1hbmRJbnZvY2F0aW9ucycsXG4gICAgICAgICdzc206QWRkVGFnc1RvUmVzb3VyY2UnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlSW5zdGFuY2VJbmZvcm1hdGlvbicsXG4gICAgICAgICdzc206TGlzdEludmVudG9yeUVudHJpZXMnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlSW5zdGFuY2VBc3NvY2lhdGlvbnNTdGF0dXMnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlQXNzb2NpYXRpb25FeGVjdXRpb25zJyxcbiAgICAgICAgJ3NzbTpHZXRDb21tYW5kSW52b2NhdGlvbicsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpTZW5kQ29tbWFuZCddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTLVJ1blBvd2VyU2hlbGxTY3JpcHRgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzc206KjoqOmRvY3VtZW50L0FXUy1SdW5TaGVsbFNjcmlwdGAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTRUMyLVJ1blN5c3ByZXBgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzMzo6OipgLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpTZW5kQ29tbWFuZCddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjppbnN0YW5jZS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdzc206cmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlciddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpDcmVhdGVBc3NvY2lhdGlvbicsICdzc206RGVsZXRlQXNzb2NpYXRpb24nXSxcbiAgICAgIHJlc291cmNlczogW1xuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzc206KjoqOmRvY3VtZW50L0FXUy1HYXRoZXJTb2Z0d2FyZUludmVudG9yeWAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6YXNzb2NpYXRpb24vKmAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6aW5zdGFuY2UvKmAsXG4gICAgICBdLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2ttczpFbmNyeXB0JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHRGcm9tJyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHRUbycsXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgJ0ZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHMnOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dEtleXMnOiBbJ2F3czplYnM6aWQnXSxcbiAgICAgICAgfSxcbiAgICAgICAgJ1N0cmluZ0xpa2UnOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsna21zOkRlc2NyaWJlS2V5J10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsna21zOkNyZWF0ZUdyYW50J10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBCb29sOiB7XG4gICAgICAgICAgJ2ttczpHcmFudElzRm9yQVdTUmVzb3VyY2UnOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnbG9nczpDcmVhdGVMb2dTdHJlYW0nLCAnbG9nczpDcmVhdGVMb2dHcm91cCcsICdsb2dzOlB1dExvZ0V2ZW50cyddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06bG9nczoqOio6bG9nLWdyb3VwOi9hd3MvaW1hZ2VidWlsZGVyLypgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2lhbTpDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZSddLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2lhbTpBV1NTZXJ2aWNlTmFtZSc6IFsnc3NtLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZXZlbnRzOkRlbGV0ZVJ1bGUnLFxuICAgICAgICAnZXZlbnRzOkRlc2NyaWJlUnVsZScsXG4gICAgICAgICdldmVudHM6UHV0UnVsZScsXG4gICAgICAgICdldmVudHM6UHV0VGFyZ2V0cycsXG4gICAgICAgICdldmVudHM6UmVtb3ZlVGFyZ2V0cycsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZXZlbnRzOio6KjpydWxlL0ltYWdlQnVpbGRlci0qYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzc206R2V0UGFyYW1ldGVyJywgJ3NzbTpQdXRQYXJhbWV0ZXInXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnNzbToqOio6cGFyYW1ldGVyL2ltYWdlYnVpbGRlci8qYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzc206R2V0UGFyYW1ldGVyJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpzc206Kjo6cGFyYW1ldGVyL2F3cy9zZXJ2aWNlLypgXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBoYXNQcm9wcyA9IHByb3BzICE9PSB1bmRlZmluZWQ7XG4gIGlmICghaGFzUHJvcHMgfHwgKHByb3BzLnJlY2lwZS5faXNJbWFnZVJlY2lwZSgpICYmIHByb3BzLmRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gIT09IHVuZGVmaW5lZCkpIHtcbiAgICAvLyBEaXN0cmlidXRpb24tc3BlY2lmaWMgcGVybWlzc2lvbnMgaWYgZGlzdHJpYnV0aW9uIHNldHRpbmdzIGFyZSBwcm92aWRlZC4gQWxsIHBlcm1pc3Npb25zIGhlcmUgYXJlIGZvciBBTUkgYnVpbGRzXG4gICAgLy8gc3BlY2lmaWNhbGx5LlxuICAgIHBvbGljaWVzLnB1c2goXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RGVzY3JpYmVFeHBvcnRJbWFnZVRhc2tzJ10sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2xpY2Vuc2UtbWFuYWdlcjpVcGRhdGVMaWNlbnNlU3BlY2lmaWNhdGlvbnNGb3JSZXNvdXJjZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpsaWNlbnNlLW1hbmFnZXI6Kjoke2FjY291bnR9OmxpY2Vuc2UtY29uZmlndXJhdGlvbjoqYF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ3N0czpBc3N1bWVSb2xlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmlhbTo6Kjpyb2xlL0VDMkltYWdlQnVpbGRlckRpc3RyaWJ1dGlvbkNyb3NzQWNjb3VudFJvbGVgXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkRlc2NyaWJlTGF1bmNoVGVtcGxhdGVzJywgJ2VjMjpEZXNjcmliZUxhdW5jaFRlbXBsYXRlVmVyc2lvbnMnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkNyZWF0ZUxhdW5jaFRlbXBsYXRlVmVyc2lvbicsICdlYzI6TW9kaWZ5TGF1bmNoVGVtcGxhdGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOiR7cmVnaW9ufToke2FjY291bnR9OmxhdW5jaC10ZW1wbGF0ZS8qYF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2VjMjpFeHBvcnRJbWFnZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6aW1hZ2UvKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkV4cG9ydEltYWdlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6ZXhwb3J0LWltYWdlLXRhc2svKmBdLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6Q2FuY2VsRXhwb3J0VGFzayddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmV4cG9ydC1pbWFnZS10YXNrLypgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgJ2VjMjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2lhbTpDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZSddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnaWFtOkFXU1NlcnZpY2VOYW1lJzogWydlYzJmYXN0bGF1bmNoLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RW5hYmxlRmFzdExhdW5jaCddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6aW1hZ2UvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6bGF1bmNoLXRlbXBsYXRlLypgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgJ2VjMjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wcyB8fCBwcm9wcy5pbWFnZVNjYW5uaW5nRW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICAvLyBBZGQgSW5zcGVjdG9yIHBlcm1pc3Npb25zIGlmIHNjYW5uaW5nIGlzIGVuYWJsZWRcbiAgICBwb2xpY2llcy5wdXNoKFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnaW5zcGVjdG9yMjpMaXN0Q292ZXJhZ2UnLCAnaW5zcGVjdG9yMjpMaXN0RmluZGluZ3MnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBBZGQgaW1hZ2Ugc2Nhbm5pbmcgRUNSIHBlcm1pc3Npb25zIGZvciBjb250YWluZXIgYnVpbGRzXG4gICAgaWYgKCFoYXNQcm9wcyB8fCBwcm9wcy5yZWNpcGUuX2lzQ29udGFpbmVyUmVjaXBlKCkpIHtcbiAgICAgIHBvbGljaWVzLnB1c2goXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydlY3I6Q3JlYXRlUmVwb3NpdG9yeSddLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdhd3M6UmVxdWVzdFRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2VjcjpUYWdSZXNvdXJjZSddLFxuICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjcjoqOio6cmVwb3NpdG9yeS9pbWFnZS1idWlsZGVyLSpgXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnZWNyOkJhdGNoRGVsZXRlSW1hZ2UnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplY3I6KjoqOnJlcG9zaXRvcnkvaW1hZ2UtYnVpbGRlci0qYF0sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdlY3I6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwb2xpY2llcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFeGVjdXRpb25Sb2xlID0gKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBncmFudERlZmF1bHRFeGVjdXRpb25Sb2xlUGVybWlzc2lvbnM6IChncmFudGVlOiBpYW0uSUdyYW50YWJsZSkgPT4gdm9pZCxcbiAge1xuICAgIGV4ZWN1dGlvblJvbGUsXG4gICAgd29ya2Zsb3dzLFxuICAgIGltYWdlTG9nR3JvdXAsXG4gICAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLFxuICB9OiB7XG4gICAgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcbiAgICBpbWFnZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gICAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gICAgd29ya2Zsb3dzPzogV29ya2Zsb3dDb25maWd1cmF0aW9uW107XG4gIH0sXG4pOiBpYW0uSVJvbGUgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB7IGV4ZWN1dGlvblJvbGVSZXF1aXJlZCwgYXBwbHlHcmFudHMgfSA9IGdldEV4ZWN1dGlvblJvbGVSZXF1aXJlbWVudHMoe1xuICAgIHdvcmtmbG93cyxcbiAgICBpbWFnZUxvZ0dyb3VwLFxuICAgIGltYWdlUGlwZWxpbmVMb2dHcm91cCxcbiAgfSk7XG4gIGlmICghZXhlY3V0aW9uUm9sZVJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJvbGU7XG4gIH1cblxuICBpZiAoZXhlY3V0aW9uUm9sZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYXBwbHlHcmFudHMoZXhlY3V0aW9uUm9sZSk7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJvbGU7XG4gIH1cblxuICBjb25zdCBhdXRvR2VuZXJhdGVkRXhlY3V0aW9uUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgJ0V4ZWN1dGlvblJvbGUnLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2ltYWdlYnVpbGRlci5hbWF6b25hd3MuY29tJyksXG4gIH0pO1xuICBncmFudERlZmF1bHRFeGVjdXRpb25Sb2xlUGVybWlzc2lvbnMoYXV0b0dlbmVyYXRlZEV4ZWN1dGlvblJvbGUpO1xuICBhcHBseUdyYW50cyhhdXRvR2VuZXJhdGVkRXhlY3V0aW9uUm9sZSk7XG5cbiAgcmV0dXJuIGF1dG9HZW5lcmF0ZWRFeGVjdXRpb25Sb2xlO1xufTtcblxuY29uc3QgZ2V0RXhlY3V0aW9uUm9sZVJlcXVpcmVtZW50cyA9ICh7XG4gIHdvcmtmbG93cyxcbiAgaW1hZ2VMb2dHcm91cCxcbiAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLFxufToge1xuICBpbWFnZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gIGltYWdlUGlwZWxpbmVMb2dHcm91cD86IGxvZ3MuSUxvZ0dyb3VwO1xuICB3b3JrZmxvd3M/OiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25bXTtcbn0pOiB7IGV4ZWN1dGlvblJvbGVSZXF1aXJlZDogYm9vbGVhbjsgYXBwbHlHcmFudHM6IChyb2xlOiBpYW0uSVJvbGUpID0+IHZvaWQgfSA9PiB7XG4gIGNvbnN0IGdyYW50ZXJzOiBBcnJheTwocm9sZTogaWFtLklSb2xlKSA9PiB2b2lkPiA9IFtdO1xuXG4gIGNvbnN0IGhhc1dvcmtmbG93cyA9IEJvb2xlYW4od29ya2Zsb3dzPy5sZW5ndGgpO1xuICBjb25zdCBhZGRJbWFnZUxvZ0dyb3VwUGVybWlzc2lvbnMgPVxuICAgIGltYWdlTG9nR3JvdXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGltYWdlTG9nR3JvdXAubG9nR3JvdXBOYW1lKSAmJlxuICAgICFpbWFnZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZS5zdGFydHNXaXRoKCcvYXdzL2ltYWdlYnVpbGRlci8nKTtcbiAgY29uc3QgYWRkUGlwZWxpbmVMb2dHcm91cFBlcm1pc3Npb25zID1cbiAgICBpbWFnZVBpcGVsaW5lTG9nR3JvdXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGltYWdlUGlwZWxpbmVMb2dHcm91cC5sb2dHcm91cE5hbWUpICYmXG4gICAgIWltYWdlUGlwZWxpbmVMb2dHcm91cC5sb2dHcm91cE5hbWUuc3RhcnRzV2l0aCgnL2F3cy9pbWFnZWJ1aWxkZXIvJyk7XG5cbiAgaWYgKGFkZEltYWdlTG9nR3JvdXBQZXJtaXNzaW9ucykge1xuICAgIGdyYW50ZXJzLnB1c2goKHJvbGUpID0+IGltYWdlTG9nR3JvdXAhLmdyYW50V3JpdGUocm9sZSkpO1xuICB9XG5cbiAgaWYgKGFkZFBpcGVsaW5lTG9nR3JvdXBQZXJtaXNzaW9ucykge1xuICAgIGdyYW50ZXJzLnB1c2goKHJvbGUpID0+IGltYWdlUGlwZWxpbmVMb2dHcm91cCEuZ3JhbnRXcml0ZShyb2xlKSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4ZWN1dGlvblJvbGVSZXF1aXJlZDogaGFzV29ya2Zsb3dzIHx8IGFkZEltYWdlTG9nR3JvdXBQZXJtaXNzaW9ucyB8fCBhZGRQaXBlbGluZUxvZ0dyb3VwUGVybWlzc2lvbnMsXG4gICAgYXBwbHlHcmFudHM6IChyb2xlOiBpYW0uSVJvbGUpID0+IGdyYW50ZXJzLmZvckVhY2goKGdyYW50ZXIpID0+IGdyYW50ZXIocm9sZSkpLFxuICB9O1xufTtcbiJdfQ==
453
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInBvbGljeS1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaURBQW1DO0FBQ25DLHlEQUEyQztBQU8zQzs7Ozs7OztHQU9HO0FBQ0ksTUFBTSwwQkFBMEIsR0FBRyxDQUN4QyxLQUFnQixFQUNoQixLQUFjLEVBQ1MsRUFBRTtJQUN6QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ2xDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDNUIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUU5QixrSUFBa0k7SUFDbEksbUdBQW1HO0lBQ25HLE1BQU0sUUFBUSxHQUFHO1FBQ2YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsU0FBUyxFQUFFLENBQUMsT0FBTyxTQUFTLGlCQUFpQixDQUFDO1lBQzlDLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUU7b0JBQ1osMEJBQTBCLEVBQUUsbUJBQW1CO2lCQUNoRDthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO1lBQzlCLFNBQVMsRUFBRSxDQUFDLE9BQU8sU0FBUyxvQkFBb0IsQ0FBQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFO29CQUNaLDJCQUEyQixFQUFF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LEVBQUUsQ0FBQyxxQkFBc0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTztRQUNMLHFCQUFxQixFQUFFLFlBQVksSUFBSSwyQkFBMkIsSUFBSSw4QkFBOEI7UUFDcEcsV0FBVyxFQUFFLENBQUMsSUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDL0UsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgdHlwZSAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQcm9wcyB9IGZyb20gJy4uL2ltYWdlJztcbmltcG9ydCB0eXBlIHsgSW1hZ2VQaXBlbGluZVByb3BzIH0gZnJvbSAnLi4vaW1hZ2UtcGlwZWxpbmUnO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd0NvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi93b3JrZmxvdyc7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZGVmYXVsdCBleGVjdXRpb24gcm9sZSBwb2xpY3ksIGZvciBhdXRvLWdlbmVyYXRlZCBleGVjdXRpb24gcm9sZXMuXG4gKlxuICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAqIEBwYXJhbSBwcm9wcyBQcm9wcyBpbnB1dCBmb3IgdGhlIGNvbnN0cnVjdFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3cy1tYW5hZ2VkLXBvbGljeS9sYXRlc3QvcmVmZXJlbmNlL0FXU1NlcnZpY2VSb2xlRm9ySW1hZ2VCdWlsZGVyLmh0bWxcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRFeGVjdXRpb25Sb2xlUG9saWN5ID0gPFByb3BzVCBleHRlbmRzIEltYWdlUGlwZWxpbmVQcm9wcyB8IEltYWdlUHJvcHM+KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBwcm9wcz86IFByb3BzVCxcbik6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gY2RrLlN0YWNrLm9mKHNjb3BlKTtcbiAgY29uc3QgcGFydGl0aW9uID0gc3RhY2sucGFydGl0aW9uO1xuICBjb25zdCByZWdpb24gPSBzdGFjay5yZWdpb247XG4gIGNvbnN0IGFjY291bnQgPSBzdGFjay5hY2NvdW50O1xuXG4gIC8vIFBlcm1pc3Npb25zIGFyZSBpZGVudGljYWwgdG8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F3cy1tYW5hZ2VkLXBvbGljeS9sYXRlc3QvcmVmZXJlbmNlL0FXU1NlcnZpY2VSb2xlRm9ySW1hZ2VCdWlsZGVyLmh0bWxcbiAgLy8gU0xSIHBvbGljaWVzIGNhbm5vdCBiZSBhdHRhY2hlZCB0byByb2xlcywgYW5kIG5vIG1hbmFnZWQgcG9saWN5IGV4aXN0cyBmb3IgdGhlc2UgcGVybWlzc2lvbnMgeWV0XG4gIGNvbnN0IHBvbGljaWVzID0gW1xuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJlZ2lzdGVySW1hZ2UnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdhd3M6UmVxdWVzdFRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpSZWdpc3RlckltYWdlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlJ1bkluc3RhbmNlcyddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOjppbWFnZS8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OnNuYXBzaG90LypgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOnN1Ym5ldC8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpuZXR3b3JrLWludGVyZmFjZS8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpzZWN1cml0eS1ncm91cC8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjprZXktcGFpci8qYCxcbiAgICAgICAgYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjpsYXVuY2gtdGVtcGxhdGUvKmAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmxpY2Vuc2UtbWFuYWdlcjoqOio6bGljZW5zZS1jb25maWd1cmF0aW9uOipgLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpSdW5JbnN0YW5jZXMnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6dm9sdW1lLypgLCBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmluc3RhbmNlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6IFsnRUMyIEltYWdlIEJ1aWxkZXInLCAnRUMyIEZhc3QgTGF1bmNoJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnaWFtOlBhc3NSb2xlJ10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnaWFtOlBhc3NlZFRvU2VydmljZSc6IFsnZWMyLmFtYXpvbmF3cy5jb20nLCAnZWMyLmFtYXpvbmF3cy5jb20uY24nLCAndm1pZS5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOlN0b3BJbnN0YW5jZXMnLCAnZWMyOlN0YXJ0SW5zdGFuY2VzJywgJ2VjMjpUZXJtaW5hdGVJbnN0YW5jZXMnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZWMyOkNvcHlJbWFnZScsXG4gICAgICAgICdlYzI6Q3JlYXRlSW1hZ2UnLFxuICAgICAgICAnZWMyOkNyZWF0ZUxhdW5jaFRlbXBsYXRlJyxcbiAgICAgICAgJ2VjMjpEZXJlZ2lzdGVySW1hZ2UnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW1hZ2VzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlQXR0cmlidXRlJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlU3RhdHVzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUluc3RhbmNlcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVJbnN0YW5jZVR5cGVPZmZlcmluZ3MnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlSW5zdGFuY2VUeXBlcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVTdWJuZXRzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZVRhZ3MnLFxuICAgICAgICAnZWMyOk1vZGlmeUltYWdlQXR0cmlidXRlJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUltcG9ydEltYWdlVGFza3MnLFxuICAgICAgICAnZWMyOkRlc2NyaWJlU25hcHNob3RzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZUhvc3RzJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOk1vZGlmeVNuYXBzaG90QXR0cmlidXRlJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmBdLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnZWMyOkNyZWF0ZVRhZ3MnXSxcbiAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdlYzI6Q3JlYXRlQWN0aW9uJzogWydSdW5JbnN0YW5jZXMnLCAnQ3JlYXRlSW1hZ2UnXSxcbiAgICAgICAgICAnYXdzOlJlcXVlc3RUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlcicsICdFQzIgRmFzdCBMYXVuY2gnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydlYzI6Q3JlYXRlVGFncyddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6OmltYWdlLypgLCBgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmV4cG9ydC1pbWFnZS10YXNrLypgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2VjMjpDcmVhdGVUYWdzJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6c25hcHNob3QvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6bGF1bmNoLXRlbXBsYXRlLypgXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6IFsnRUMyIEltYWdlIEJ1aWxkZXInLCAnRUMyIEZhc3QgTGF1bmNoJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnc25zOlB1Ymxpc2gnXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnNuczoke3JlZ2lvbn06JHthY2NvdW50fToqYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc3NtOkxpc3RDb21tYW5kcycsXG4gICAgICAgICdzc206TGlzdENvbW1hbmRJbnZvY2F0aW9ucycsXG4gICAgICAgICdzc206QWRkVGFnc1RvUmVzb3VyY2UnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlSW5zdGFuY2VJbmZvcm1hdGlvbicsXG4gICAgICAgICdzc206TGlzdEludmVudG9yeUVudHJpZXMnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlSW5zdGFuY2VBc3NvY2lhdGlvbnNTdGF0dXMnLFxuICAgICAgICAnc3NtOkRlc2NyaWJlQXNzb2NpYXRpb25FeGVjdXRpb25zJyxcbiAgICAgICAgJ3NzbTpHZXRDb21tYW5kSW52b2NhdGlvbicsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpTZW5kQ29tbWFuZCddLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTLVJ1blBvd2VyU2hlbGxTY3JpcHRgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzc206KjoqOmRvY3VtZW50L0FXUy1SdW5TaGVsbFNjcmlwdGAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6ZG9jdW1lbnQvQVdTRUMyLVJ1blN5c3ByZXBgLFxuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzMzo6OipgLFxuICAgICAgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpTZW5kQ29tbWFuZCddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOio6KjppbnN0YW5jZS8qYF0sXG4gICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICdzc206cmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogWydFQzIgSW1hZ2UgQnVpbGRlciddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ3NzbTpDcmVhdGVBc3NvY2lhdGlvbicsICdzc206RGVsZXRlQXNzb2NpYXRpb24nXSxcbiAgICAgIHJlc291cmNlczogW1xuICAgICAgICBgYXJuOiR7cGFydGl0aW9ufTpzc206KjoqOmRvY3VtZW50L0FXUy1HYXRoZXJTb2Z0d2FyZUludmVudG9yeWAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OnNzbToqOio6YXNzb2NpYXRpb24vKmAsXG4gICAgICAgIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6aW5zdGFuY2UvKmAsXG4gICAgICBdLFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgJ2ttczpFbmNyeXB0JyxcbiAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHRGcm9tJyxcbiAgICAgICAgJ2ttczpSZUVuY3J5cHRUbycsXG4gICAgICAgICdrbXM6R2VuZXJhdGVEYXRhS2V5V2l0aG91dFBsYWludGV4dCcsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgJ0ZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHMnOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dEtleXMnOiBbJ2F3czplYnM6aWQnXSxcbiAgICAgICAgfSxcbiAgICAgICAgJ1N0cmluZ0xpa2UnOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsna21zOkRlc2NyaWJlS2V5J10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsna21zOkNyZWF0ZUdyYW50J10sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBCb29sOiB7XG4gICAgICAgICAgJ2ttczpHcmFudElzRm9yQVdTUmVzb3VyY2UnOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBTdHJpbmdMaWtlOiB7XG4gICAgICAgICAgJ2ttczpWaWFTZXJ2aWNlJzogWydlYzIuKi5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnM6IFsnbG9nczpDcmVhdGVMb2dTdHJlYW0nLCAnbG9nczpDcmVhdGVMb2dHcm91cCcsICdsb2dzOlB1dExvZ0V2ZW50cyddLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06bG9nczoqOio6bG9nLWdyb3VwOi9hd3MvaW1hZ2VidWlsZGVyLypgXSxcbiAgICB9KSxcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbJ2lhbTpDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZSddLFxuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgJ2lhbTpBV1NTZXJ2aWNlTmFtZSc6IFsnc3NtLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZXZlbnRzOkRlbGV0ZVJ1bGUnLFxuICAgICAgICAnZXZlbnRzOkRlc2NyaWJlUnVsZScsXG4gICAgICAgICdldmVudHM6UHV0UnVsZScsXG4gICAgICAgICdldmVudHM6UHV0VGFyZ2V0cycsXG4gICAgICAgICdldmVudHM6UmVtb3ZlVGFyZ2V0cycsXG4gICAgICBdLFxuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZXZlbnRzOio6KjpydWxlL0ltYWdlQnVpbGRlci0qYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzc206R2V0UGFyYW1ldGVyJywgJ3NzbTpQdXRQYXJhbWV0ZXInXSxcbiAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OnNzbToqOio6cGFyYW1ldGVyL2ltYWdlYnVpbGRlci8qYF0sXG4gICAgfSksXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9uczogWydzc206R2V0UGFyYW1ldGVyJ10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpzc206Kjo6cGFyYW1ldGVyL2F3cy9zZXJ2aWNlLypgXSxcbiAgICB9KSxcbiAgXTtcblxuICBjb25zdCBoYXNQcm9wcyA9IHByb3BzICE9PSB1bmRlZmluZWQ7XG4gIGlmICghaGFzUHJvcHMgfHwgKHByb3BzLnJlY2lwZS5faXNJbWFnZVJlY2lwZSgpICYmIHByb3BzLmRpc3RyaWJ1dGlvbkNvbmZpZ3VyYXRpb24gIT09IHVuZGVmaW5lZCkpIHtcbiAgICAvLyBEaXN0cmlidXRpb24tc3BlY2lmaWMgcGVybWlzc2lvbnMgaWYgZGlzdHJpYnV0aW9uIHNldHRpbmdzIGFyZSBwcm92aWRlZC4gQWxsIHBlcm1pc3Npb25zIGhlcmUgYXJlIGZvciBBTUkgYnVpbGRzXG4gICAgLy8gc3BlY2lmaWNhbGx5LlxuICAgIHBvbGljaWVzLnB1c2goXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RGVzY3JpYmVFeHBvcnRJbWFnZVRhc2tzJ10sXG4gICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2xpY2Vuc2UtbWFuYWdlcjpVcGRhdGVMaWNlbnNlU3BlY2lmaWNhdGlvbnNGb3JSZXNvdXJjZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTpsaWNlbnNlLW1hbmFnZXI6Kjoke2FjY291bnR9OmxpY2Vuc2UtY29uZmlndXJhdGlvbjoqYF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ3N0czpBc3N1bWVSb2xlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmlhbTo6Kjpyb2xlL0VDMkltYWdlQnVpbGRlckRpc3RyaWJ1dGlvbkNyb3NzQWNjb3VudFJvbGVgXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkRlc2NyaWJlTGF1bmNoVGVtcGxhdGVzJywgJ2VjMjpEZXNjcmliZUxhdW5jaFRlbXBsYXRlVmVyc2lvbnMnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkNyZWF0ZUxhdW5jaFRlbXBsYXRlVmVyc2lvbicsICdlYzI6TW9kaWZ5TGF1bmNoVGVtcGxhdGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke3BhcnRpdGlvbn06ZWMyOiR7cmVnaW9ufToke2FjY291bnR9OmxhdW5jaC10ZW1wbGF0ZS8qYF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2VjMjpFeHBvcnRJbWFnZSddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6aW1hZ2UvKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnZWMyOlJlc291cmNlVGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnZWMyOkV4cG9ydEltYWdlJ10sXG4gICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6ZXhwb3J0LWltYWdlLXRhc2svKmBdLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6Q2FuY2VsRXhwb3J0VGFzayddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6KjoqOmV4cG9ydC1pbWFnZS10YXNrLypgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgJ2VjMjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2lhbTpDcmVhdGVTZXJ2aWNlTGlua2VkUm9sZSddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAnaWFtOkFXU1NlcnZpY2VOYW1lJzogWydlYzJmYXN0bGF1bmNoLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydlYzI6RW5hYmxlRmFzdExhdW5jaCddLFxuICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplYzI6Kjo6aW1hZ2UvKmAsIGBhcm46JHtwYXJ0aXRpb259OmVjMjoqOio6bGF1bmNoLXRlbXBsYXRlLypgXSxcbiAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgJ2VjMjpSZXNvdXJjZVRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKCFoYXNQcm9wcyB8fCBwcm9wcy5pbWFnZVNjYW5uaW5nRW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICAvLyBBZGQgSW5zcGVjdG9yIHBlcm1pc3Npb25zIGlmIHNjYW5uaW5nIGlzIGVuYWJsZWRcbiAgICBwb2xpY2llcy5wdXNoKFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnaW5zcGVjdG9yMjpMaXN0Q292ZXJhZ2UnLCAnaW5zcGVjdG9yMjpMaXN0RmluZGluZ3MnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICAvLyBBZGQgaW1hZ2Ugc2Nhbm5pbmcgRUNSIHBlcm1pc3Npb25zIGZvciBjb250YWluZXIgYnVpbGRzXG4gICAgaWYgKCFoYXNQcm9wcyB8fCBwcm9wcy5yZWNpcGUuX2lzQ29udGFpbmVyUmVjaXBlKCkpIHtcbiAgICAgIHBvbGljaWVzLnB1c2goXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgYWN0aW9uczogWydlY3I6Q3JlYXRlUmVwb3NpdG9yeSddLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdhd3M6UmVxdWVzdFRhZy9DcmVhdGVkQnknOiAnRUMyIEltYWdlIEJ1aWxkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2VjcjpUYWdSZXNvdXJjZSddLFxuICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtwYXJ0aXRpb259OmVjcjoqOio6cmVwb3NpdG9yeS9pbWFnZS1idWlsZGVyLSpgXSxcbiAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgJ2F3czpSZXF1ZXN0VGFnL0NyZWF0ZWRCeSc6ICdFQzIgSW1hZ2UgQnVpbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFsnZWNyOkJhdGNoRGVsZXRlSW1hZ2UnXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7cGFydGl0aW9ufTplY3I6KjoqOnJlcG9zaXRvcnkvaW1hZ2UtYnVpbGRlci0qYF0sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdlY3I6UmVzb3VyY2VUYWcvQ3JlYXRlZEJ5JzogJ0VDMiBJbWFnZSBCdWlsZGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwb2xpY2llcztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFeGVjdXRpb25Sb2xlID0gKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBncmFudERlZmF1bHRFeGVjdXRpb25Sb2xlUGVybWlzc2lvbnM6IChncmFudGVlOiBpYW0uSUdyYW50YWJsZSkgPT4gdm9pZCxcbiAge1xuICAgIGV4ZWN1dGlvblJvbGUsXG4gICAgd29ya2Zsb3dzLFxuICAgIGltYWdlTG9nR3JvdXAsXG4gICAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLFxuICB9OiB7XG4gICAgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcbiAgICBpbWFnZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gICAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gICAgd29ya2Zsb3dzPzogV29ya2Zsb3dDb25maWd1cmF0aW9uW107XG4gIH0sXG4pOiBpYW0uSVJvbGUgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB7IGV4ZWN1dGlvblJvbGVSZXF1aXJlZCwgYXBwbHlHcmFudHMgfSA9IGdldEV4ZWN1dGlvblJvbGVSZXF1aXJlbWVudHMoe1xuICAgIHdvcmtmbG93cyxcbiAgICBpbWFnZUxvZ0dyb3VwLFxuICAgIGltYWdlUGlwZWxpbmVMb2dHcm91cCxcbiAgfSk7XG4gIGlmICghZXhlY3V0aW9uUm9sZVJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJvbGU7XG4gIH1cblxuICBpZiAoZXhlY3V0aW9uUm9sZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYXBwbHlHcmFudHMoZXhlY3V0aW9uUm9sZSk7XG4gICAgcmV0dXJuIGV4ZWN1dGlvblJvbGU7XG4gIH1cblxuICBjb25zdCBhdXRvR2VuZXJhdGVkRXhlY3V0aW9uUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgJ0V4ZWN1dGlvblJvbGUnLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2ltYWdlYnVpbGRlci5hbWF6b25hd3MuY29tJyksXG4gIH0pO1xuICBncmFudERlZmF1bHRFeGVjdXRpb25Sb2xlUGVybWlzc2lvbnMoYXV0b0dlbmVyYXRlZEV4ZWN1dGlvblJvbGUpO1xuICBhcHBseUdyYW50cyhhdXRvR2VuZXJhdGVkRXhlY3V0aW9uUm9sZSk7XG5cbiAgcmV0dXJuIGF1dG9HZW5lcmF0ZWRFeGVjdXRpb25Sb2xlO1xufTtcblxuY29uc3QgZ2V0RXhlY3V0aW9uUm9sZVJlcXVpcmVtZW50cyA9ICh7XG4gIHdvcmtmbG93cyxcbiAgaW1hZ2VMb2dHcm91cCxcbiAgaW1hZ2VQaXBlbGluZUxvZ0dyb3VwLFxufToge1xuICBpbWFnZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gIGltYWdlUGlwZWxpbmVMb2dHcm91cD86IGxvZ3MuSUxvZ0dyb3VwO1xuICB3b3JrZmxvd3M/OiBXb3JrZmxvd0NvbmZpZ3VyYXRpb25bXTtcbn0pOiB7IGV4ZWN1dGlvblJvbGVSZXF1aXJlZDogYm9vbGVhbjsgYXBwbHlHcmFudHM6IChyb2xlOiBpYW0uSVJvbGUpID0+IHZvaWQgfSA9PiB7XG4gIGNvbnN0IGdyYW50ZXJzOiBBcnJheTwocm9sZTogaWFtLklSb2xlKSA9PiB2b2lkPiA9IFtdO1xuXG4gIGNvbnN0IGhhc1dvcmtmbG93cyA9IEJvb2xlYW4od29ya2Zsb3dzPy5sZW5ndGgpO1xuICBjb25zdCBhZGRJbWFnZUxvZ0dyb3VwUGVybWlzc2lvbnMgPVxuICAgIGltYWdlTG9nR3JvdXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGltYWdlTG9nR3JvdXAubG9nR3JvdXBOYW1lKSAmJlxuICAgICFpbWFnZUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZS5zdGFydHNXaXRoKCcvYXdzL2ltYWdlYnVpbGRlci8nKTtcbiAgY29uc3QgYWRkUGlwZWxpbmVMb2dHcm91cFBlcm1pc3Npb25zID1cbiAgICBpbWFnZVBpcGVsaW5lTG9nR3JvdXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICFjZGsuVG9rZW4uaXNVbnJlc29sdmVkKGltYWdlUGlwZWxpbmVMb2dHcm91cC5sb2dHcm91cE5hbWUpICYmXG4gICAgIWltYWdlUGlwZWxpbmVMb2dHcm91cC5sb2dHcm91cE5hbWUuc3RhcnRzV2l0aCgnL2F3cy9pbWFnZWJ1aWxkZXIvJyk7XG5cbiAgaWYgKGFkZEltYWdlTG9nR3JvdXBQZXJtaXNzaW9ucykge1xuICAgIGdyYW50ZXJzLnB1c2goKHJvbGUpID0+IGltYWdlTG9nR3JvdXAhLmdyYW50V3JpdGUocm9sZSkpO1xuICB9XG5cbiAgaWYgKGFkZFBpcGVsaW5lTG9nR3JvdXBQZXJtaXNzaW9ucykge1xuICAgIGdyYW50ZXJzLnB1c2goKHJvbGUpID0+IGltYWdlUGlwZWxpbmVMb2dHcm91cCEuZ3JhbnRXcml0ZShyb2xlKSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4ZWN1dGlvblJvbGVSZXF1aXJlZDogaGFzV29ya2Zsb3dzIHx8IGFkZEltYWdlTG9nR3JvdXBQZXJtaXNzaW9ucyB8fCBhZGRQaXBlbGluZUxvZ0dyb3VwUGVybWlzc2lvbnMsXG4gICAgYXBwbHlHcmFudHM6IChyb2xlOiBpYW0uSVJvbGUpID0+IGdyYW50ZXJzLmZvckVhY2goKGdyYW50ZXIpID0+IGdyYW50ZXIocm9sZSkpLFxuICB9O1xufTtcbiJdfQ==