@aws-cdk/aws-mediapackagev2-alpha 2.260.0-alpha.0 → 2.262.0-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.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.260.0",
11
+ "aws-cdk-lib": "^2.262.0",
12
12
  "constructs": "^10.5.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -1150,6 +1150,19 @@
1150
1150
  }
1151
1151
  }
1152
1152
  },
1153
+ "aws-cdk-lib.aws_controlcatalog": {
1154
+ "targets": {
1155
+ "dotnet": {
1156
+ "namespace": "Amazon.CDK.AWS.ControlCatalog"
1157
+ },
1158
+ "java": {
1159
+ "package": "software.amazon.awscdk.services.controlcatalog"
1160
+ },
1161
+ "python": {
1162
+ "module": "aws_cdk.aws_controlcatalog"
1163
+ }
1164
+ }
1165
+ },
1153
1166
  "aws-cdk-lib.aws_controltower": {
1154
1167
  "targets": {
1155
1168
  "dotnet": {
@@ -1202,6 +1215,19 @@
1202
1215
  }
1203
1216
  }
1204
1217
  },
1218
+ "aws-cdk-lib.aws_dataexchange": {
1219
+ "targets": {
1220
+ "dotnet": {
1221
+ "namespace": "Amazon.CDK.AWS.DataExchange"
1222
+ },
1223
+ "java": {
1224
+ "package": "software.amazon.awscdk.services.dataexchange"
1225
+ },
1226
+ "python": {
1227
+ "module": "aws_cdk.aws_dataexchange"
1228
+ }
1229
+ }
1230
+ },
1205
1231
  "aws-cdk-lib.aws_datapipeline": {
1206
1232
  "targets": {
1207
1233
  "dotnet": {
@@ -3015,6 +3041,19 @@
3015
3041
  }
3016
3042
  }
3017
3043
  },
3044
+ "aws-cdk-lib.aws_outposts": {
3045
+ "targets": {
3046
+ "dotnet": {
3047
+ "namespace": "Amazon.CDK.AWS.Outposts"
3048
+ },
3049
+ "java": {
3050
+ "package": "software.amazon.awscdk.services.outposts"
3051
+ },
3052
+ "python": {
3053
+ "module": "aws_cdk.aws_outposts"
3054
+ }
3055
+ }
3056
+ },
3018
3057
  "aws-cdk-lib.aws_panorama": {
3019
3058
  "targets": {
3020
3059
  "dotnet": {
@@ -5464,6 +5503,22 @@
5464
5503
  }
5465
5504
  }
5466
5505
  },
5506
+ "aws-cdk-lib.interfaces.aws_controlcatalog": {
5507
+ "targets": {
5508
+ "dotnet": {
5509
+ "namespace": "Amazon.CDK.Interfaces.ControlCatalog"
5510
+ },
5511
+ "go": {
5512
+ "packageName": "interfacesawscontrolcatalog"
5513
+ },
5514
+ "java": {
5515
+ "package": "software.amazon.awscdk.interfaces.controlcatalog"
5516
+ },
5517
+ "python": {
5518
+ "module": "aws_cdk.interfaces.aws_controlcatalog"
5519
+ }
5520
+ }
5521
+ },
5467
5522
  "aws-cdk-lib.interfaces.aws_controltower": {
5468
5523
  "targets": {
5469
5524
  "dotnet": {
@@ -5528,6 +5583,22 @@
5528
5583
  }
5529
5584
  }
5530
5585
  },
5586
+ "aws-cdk-lib.interfaces.aws_dataexchange": {
5587
+ "targets": {
5588
+ "dotnet": {
5589
+ "namespace": "Amazon.CDK.Interfaces.DataExchange"
5590
+ },
5591
+ "go": {
5592
+ "packageName": "interfacesawsdataexchange"
5593
+ },
5594
+ "java": {
5595
+ "package": "software.amazon.awscdk.interfaces.dataexchange"
5596
+ },
5597
+ "python": {
5598
+ "module": "aws_cdk.interfaces.aws_dataexchange"
5599
+ }
5600
+ }
5601
+ },
5531
5602
  "aws-cdk-lib.interfaces.aws_datapipeline": {
5532
5603
  "targets": {
5533
5604
  "dotnet": {
@@ -7544,6 +7615,22 @@
7544
7615
  }
7545
7616
  }
7546
7617
  },
7618
+ "aws-cdk-lib.interfaces.aws_outposts": {
7619
+ "targets": {
7620
+ "dotnet": {
7621
+ "namespace": "Amazon.CDK.Interfaces.Outposts"
7622
+ },
7623
+ "go": {
7624
+ "packageName": "interfacesawsoutposts"
7625
+ },
7626
+ "java": {
7627
+ "package": "software.amazon.awscdk.interfaces.outposts"
7628
+ },
7629
+ "python": {
7630
+ "module": "aws_cdk.interfaces.aws_outposts"
7631
+ }
7632
+ }
7633
+ },
7547
7634
  "aws-cdk-lib.interfaces.aws_panorama": {
7548
7635
  "targets": {
7549
7636
  "dotnet": {
@@ -19077,6 +19164,6 @@
19077
19164
  "symbolId": "lib/endpoint:VideoDynamicRange"
19078
19165
  }
19079
19166
  },
19080
- "version": "2.260.0-alpha.0",
19167
+ "version": "2.262.0-alpha.0",
19081
19168
  "fingerprint": "**********"
19082
19169
  }
Binary file
@@ -76,7 +76,7 @@ let ChannelPolicy = (() => {
76
76
  ChannelPolicy = _classThis = _classDescriptor.value;
77
77
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
78
78
  }
79
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.ChannelPolicy", version: "2.260.0-alpha.0" };
79
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.ChannelPolicy", version: "2.262.0-alpha.0" };
80
80
  /** Uniquely identifies this class. */
81
81
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediapackagev2-alpha.ChannelPolicy';
82
82
  /**
package/lib/channel.js CHANGED
@@ -80,7 +80,7 @@ var IngestEndpoint;
80
80
  */
81
81
  class HeadersCMSD {
82
82
  value;
83
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.HeadersCMSD", version: "2.260.0-alpha.0" };
83
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.HeadersCMSD", version: "2.262.0-alpha.0" };
84
84
  /**
85
85
  * Media Quality Confidence Score
86
86
  */
@@ -111,7 +111,7 @@ class InputConfiguration {
111
111
  inputType;
112
112
  inputSwitchConfiguration;
113
113
  outputHeaders;
114
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.InputConfiguration", version: "2.260.0-alpha.0" };
114
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.InputConfiguration", version: "2.262.0-alpha.0" };
115
115
  /**
116
116
  * Create an HLS input configuration
117
117
  */
@@ -357,7 +357,7 @@ let Channel = (() => {
357
357
  Channel = _classThis = _classDescriptor.value;
358
358
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
359
359
  }
360
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.Channel", version: "2.260.0-alpha.0" };
360
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.Channel", version: "2.262.0-alpha.0" };
361
361
  /** Uniquely identifies this class. */
362
362
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-mediapackagev2-alpha.Channel';
363
363
  channelGroupName;
@@ -439,7 +439,7 @@ let Channel = (() => {
439
439
  // For imported constructs, defaultChild is undefined (no CFN resource to order against).
440
440
  const groupCfn = props.channelGroup.node.defaultChild;
441
441
  if (groupCfn && aws_cdk_lib_1.CfnResource.isCfnResource(groupCfn)) {
442
- channel.addDependency(groupCfn);
442
+ channel.addResourceDependency(groupCfn);
443
443
  }
444
444
  }
445
445
  static {
@@ -449,4 +449,4 @@ let Channel = (() => {
449
449
  return Channel = _classThis;
450
450
  })();
451
451
  exports.Channel = Channel;
452
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoYW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQXdJO0FBRXhJLCtEQUEwRDtBQUUxRCx1RUFBNEQ7QUFFNUQsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFHMUUsd0JBQWtEO0FBRWxELHVGQUFrRTtBQUNsRSxxREFBOEM7QUFFOUM7O0dBRUc7QUFDSCxJQUFZLFNBVVg7QUFWRCxXQUFZLFNBQVM7SUFDbkI7OztPQUdHO0lBQ0gsMEJBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsd0JBQVMsQ0FBQTtBQUNYLENBQUMsRUFWVyxTQUFTLHlCQUFULFNBQVMsUUFVcEI7QUFtSUQ7O0dBRUc7QUFDSCxJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCwrREFBWSxDQUFBO0lBQ1o7O09BRUc7SUFDSCwrREFBWSxDQUFBO0FBQ2QsQ0FBQyxFQVRXLGNBQWMsOEJBQWQsY0FBYyxRQVN6QjtBQXdCRDs7R0FFRztBQUNILE1BQWEsV0FBVztJQWlCSjs7SUFoQmxCOztPQUVHO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQy9CO0lBRUQ7SUFDRTs7T0FFRztJQUNhLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0tBQUk7O0FBakJyQyxrQ0FrQkM7QUFxQkQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxrQkFBa0I7SUF5Qlg7SUFJQTtJQUlBOztJQWhDbEI7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBRztRQUNmLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLENB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QVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLGdCQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxnQkFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUV2SCxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTFFLDBGQUEwRjtZQUMxRix3RkFBd0Y7WUFDeEYsMEVBQTBFO1lBQzFFLHlGQUF5RjtZQUN6RixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUF1QyxDQUFDO1lBQ2pGLElBQUksUUFBUSxJQUFJLHlCQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsQ0FBQztTQUNGOztZQXhGVSx1REFBTzs7Ozs7QUFBUCwwQkFBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSwgUmVzb3VyY2UsIFN0YWNrLCBBcm5Gb3JtYXQsIExhenksIE5hbWVzLCBGbiwgRHVyYXRpb24sIFZhbGlkYXRpb25FcnJvciwgQ2ZuUmVzb3VyY2UsIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHR5cGUgeyBNZXRyaWNPcHRpb25zIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgTWV0cmljLCBVbml0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHR5cGUgeyBQb2xpY3lTdGF0ZW1lbnQsIEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENmbkNoYW5uZWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbWVkaWFwYWNrYWdldjInO1xuaW1wb3J0IHR5cGUgeyBJQ2hhbm5lbFJlZiwgQ2hhbm5lbFJlZmVyZW5jZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYXBhY2thZ2V2Mic7XG5pbXBvcnQgeyBsaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlIHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IE9yaWdpbkVuZHBvaW50T3B0aW9ucyB9IGZyb20gJy4nO1xuaW1wb3J0IHsgQ2hhbm5lbFBvbGljeSwgT3JpZ2luRW5kcG9pbnQgfSBmcm9tICcuJztcbmltcG9ydCB0eXBlIHsgSUNoYW5uZWxHcm91cCB9IGZyb20gJy4vZ3JvdXAnO1xuaW1wb3J0IHsgQ2hhbm5lbEdyYW50cyB9IGZyb20gJy4vbWVkaWFwYWNrYWdldjItZ3JhbnRzLmdlbmVyYXRlZCc7XG5pbXBvcnQgeyByZW5kZXJUYWdzIH0gZnJvbSAnLi9zaGFyZWQtaGVscGVycyc7XG5cbi8qKlxuICogVGhlIGlucHV0IHR5cGUgd2lsbCBiZSBhbiBpbW11dGFibGUgZmllbGQgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIGRlZmluZSB3aGV0aGVyIHRoZSBjaGFubmVsIHdpbGwgYWxsb3cgQ01BRiBpbmdlc3Qgb3IgSExTIGluZ2VzdC5cbiAqL1xuZXhwb3J0IGVudW0gSW5wdXRUeXBlIHtcbiAgLyoqXG4gICAqIFRoZSBEQVNILUlGIENNQUYgSW5nZXN0IHNwZWNpZmljYXRpb24gKHdoaWNoIGRlZmluZXMgQ01BRiBzZWdtZW50cyB3aXRoXG4gICAqIG9wdGlvbmFsIERBU0ggbWFuaWZlc3RzKS5cbiAgICovXG4gIENNQUY9J0NNQUYnLFxuICAvKipcbiAgICogVGhlIEhMUyBzdHJlYW1pbmcgc3BlY2lmaWNhdGlvbiAod2hpY2ggZGVmaW5lcyBNM1U4IG1hbmlmZXN0cyBhbmQgVFMgc2VnbWVudHMpLlxuICAgKi9cbiAgSExTPSdITFMnLFxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBNZWRpYVBhY2thZ2UgVjIgQ2hhbm5lbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDaGFubmVsIGV4dGVuZHMgSVJlc291cmNlLCBJQ2hhbm5lbFJlZiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0aGF0IGRlc2NyaWJlcyB0aGUgY2hhbm5lbCBncm91cC4gVGhlIG5hbWUgaXMgdGhlIHByaW1hcnkgaWRlbnRpZmllciBmb3IgdGhlIGNoYW5uZWwgZ3JvdXAuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWxHcm91cE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgdGhhdCBkZXNjcmliZXMgdGhlIGNoYW5uZWwuIFRoZSBuYW1lIGlzIHRoZSBwcmltYXJ5IGlkZW50aWZpZXIgZm9yIHRoZSBjaGFubmVsLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjaGFubmVsTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgY2hhbm5lbCB3YXMgY3JlYXRlZC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgY2hhbm5lbCB3YXMgbW9kaWZpZWQuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmdlc3QgZW5kcG9pbnQgVVJMcyBmb3IgdGhlIGNoYW5uZWwuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluZ2VzdEVuZHBvaW50VXJsczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBjaGFubmVsIGdyb3VwIHRoaXMgY2hhbm5lbCBiZWxvbmdzIHRvLlxuICAgKiBPbmx5IGF2YWlsYWJsZSB3aGVuIHRoZSBjaGFubmVsIHdhcyBjcmVhdGVkIGluIHRoZSBzYW1lIHN0YWNrLlxuICAgKiBVbmRlZmluZWQgZm9yIGltcG9ydGVkIGNoYW5uZWxzLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjaGFubmVsR3JvdXA/OiBJQ2hhbm5lbEdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlZ2lvbiB3aGVyZSB0aGlzIGNoYW5uZWwgbGl2ZXMuXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogR3JhbnRzIElBTSByZXNvdXJjZSBwb2xpY3kgdG8gdGhlIHJvbGUgdXNlZCB0byB3cml0ZSB0byBNZWRpYVBhY2thZ2UgVjIgQ2hhbm5lbC5cbiAgICovXG4gIHJlYWRvbmx5IGdyYW50czogQ2hhbm5lbEdyYW50cztcblxuICAvKipcbiAgICogQWRkIE9yaWdpbiBFbmRwb2ludCBmb3IgdGhpcyBDaGFubmVsLlxuICAgKi9cbiAgYWRkT3JpZ2luRW5kcG9pbnQoaWQ6IHN0cmluZywgb3B0aW9uczogT3JpZ2luRW5kcG9pbnRPcHRpb25zKTogT3JpZ2luRW5kcG9pbnQ7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBjaGFubmVsIHBvbGljeS5cbiAgICpcbiAgICogWW91IGNhbiBvbmx5IGFkZCAxIENoYW5uZWxQb2xpY3kgdG8gYSBDaGFubmVsLlxuICAgKiBJZiB5b3UgaGF2ZSBhbHJlYWR5IGRlZmluZWQgb25lLCBmdW5jdGlvbiB3aWxsIGFwcGVuZCB0aGUgcG9saWN5IGFscmVhZHkgY3JlYXRlZC5cbiAgICovXG4gIGFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQpOiBBZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZFdhdGNoIG1ldHJpYy5cbiAgICpcbiAgICogQHBhcmFtIG1ldHJpY05hbWUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBwcm9wcyBtZXRyaWMgb3B0aW9ucy5cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEluZ3Jlc3MgQnl0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdW0gb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNJbmdyZXNzQnl0ZXMob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgTWV0cmljIGZvciBFZ3Jlc3MgQnl0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdW0gb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNFZ3Jlc3NCeXRlcyhvcHRpb25zPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEluZ3Jlc3MgcmVzcG9uc2UgdGltZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF2ZXJhZ2Ugb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNJbmdyZXNzUmVzcG9uc2VUaW1lKG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgRWdyZXNzIFJlc3BvbnNlIHRpbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdmVyYWdlIG92ZXIgNjAgc2Vjb25kc1xuICAgKi9cbiAgbWV0cmljRWdyZXNzUmVzcG9uc2VUaW1lKG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgSW5ncmVzcyBSZXF1ZXN0IENvdW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3VtIG92ZXIgNjAgc2Vjb25kc1xuICAgKi9cbiAgbWV0cmljSW5ncmVzc1JlcXVlc3RDb3VudChvcHRpb25zPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEVncmVzcyBSZXF1ZXN0IENvdW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3VtIG92ZXIgNjAgc2Vjb25kc1xuICAgKi9cbiAgbWV0cmljRWdyZXNzUmVxdWVzdENvdW50KG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xufVxuXG4vKipcbiAqIEluZ2VzdCBFbmRwb2ludCBvcHRpb25zXG4gKi9cbmV4cG9ydCBlbnVtIEluZ2VzdEVuZHBvaW50IHtcbiAgLyoqXG4gICAqIEZpcnN0IGluZ2VzdCBlbmRwb2ludFxuICAgKi9cbiAgRU5EUE9JTlRfMT0xLFxuICAvKipcbiAgICogU2Vjb25kIGluZ2VzdCBlbmRwb2ludFxuICAgKi9cbiAgRU5EUE9JTlRfMj0yLFxufVxuXG4vKipcbiAqIElucHV0IFN3aXRjaCBDb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRTd2l0Y2hDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgQVdTIEVsZW1lbnRhbCBNZWRpYVBhY2thZ2UgcGVyZm9ybXMgaW5wdXQgc3dpdGNoaW5nIGJhc2VkIG9uIHRoZSBNUUNTLlxuICAgKlxuICAgKiBUaGlzIHNldHRpbmcgaXMgdmFsaWQgb25seSB3aGVuIElucHV0VHlwZSBpcyBDTUFGLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbXFjc0lucHV0U3dpdGNoaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZvciBDTUFGIGlucHV0cywgaW5kaWNhdGVzIHdoaWNoIGlucHV0IE1lZGlhUGFja2FnZSBzaG91bGQgcHJlZmVyIHdoZW4gYm90aCBpbnB1dHMgaGF2ZSBlcXVhbCBNUUNTIHNjb3Jlcy5cbiAgICogU2VsZWN0IDEgdG8gcHJlZmVyIHRoZSBmaXJzdCBpbmdlc3QgZW5kcG9pbnQsIG9yIDIgdG8gcHJlZmVyIHRoZSBzZWNvbmQgaW5nZXN0IGVuZHBvaW50LlxuICAgKiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHByZWZlcnJlZCBpbnB1dCwgTWVkaWFQYWNrYWdlIHVzZXMgaXRzIGRlZmF1bHQgc3dpdGNoaW5nIGJlaGF2aW9yIHdoZW4gTVFDUyBzY29yZXMgYXJlIGVxdWFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE1lZGlhUGFja2FnZSB1c2VzIGl0cyBkZWZhdWx0IHN3aXRjaGluZyBiZWhhdmlvclxuICAgKi9cbiAgcmVhZG9ubHkgcHJlZmVycmVkSW5wdXQ/OiBJbmdlc3RFbmRwb2ludDtcbn1cblxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgZm9yIHdoYXQgY29tbW9uIG1lZGlhIHNlcnZlciBkYXRhIChDTVNEKSBoZWFkZXJzIEFXUyBFbGVtZW50YWwgTWVkaWFQYWNrYWdlIGluY2x1ZGVzIGluIHJlc3BvbnNlcyB0byB0aGUgQ0ROLlxuICovXG5leHBvcnQgY2xhc3MgSGVhZGVyc0NNU0Qge1xuICAvKipcbiAgICogTWVkaWEgUXVhbGl0eSBDb25maWRlbmNlIFNjb3JlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1RQ1MgPSBuZXcgSGVhZGVyc0NNU0QoJ21xY3MnKTtcblxuICAvKipcbiAgICogRXNjYXBlIGhhdGNoIGZvciBuZXcgQ01TRCBoZWFkZXJzIG5vdCB5ZXQgc3VwcG9ydGVkIGJ5IHRoZSBjb25zdHJ1Y3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHZhbHVlOiBzdHJpbmcpOiBIZWFkZXJzQ01TRCB7XG4gICAgcmV0dXJuIG5ldyBIZWFkZXJzQ01TRCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIENNU0QgaGVhZGVyXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgQ01BRiBpbnB1dCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ21hZklucHV0UHJvcHMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIGlucHV0IHN3aXRjaGluZyBiYXNlZCBvbiB0aGUgbWVkaWEgcXVhbGl0eSBjb25maWRlbmNlIHNjb3JlIChNUUNTKSBhcyBwcm92aWRlZCBmcm9tIEFXUyBFbGVtZW50YWwgTWVkaWFMaXZlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBjdXN0b21pemVkIGlucHV0IHN3aXRjaCBjb25maWd1cmF0aW9uIGFkZGVkXG4gICAqL1xuICByZWFkb25seSBpbnB1dFN3aXRjaENvbmZpZ3VyYXRpb24/OiBJbnB1dFN3aXRjaENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBzZXR0aW5ncyBmb3Igd2hhdCBjb21tb24gbWVkaWEgc2VydmVyIGRhdGEgKENNU0QpIGhlYWRlcnMgQVdTIEVsZW1lbnRhbCBNZWRpYVBhY2thZ2UgaW5jbHVkZXMgaW4gcmVzcG9uc2VzIHRvIHRoZSBDRE4uXG4gICAqXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dEhlYWRlcnM/OiBIZWFkZXJzQ01TRFtdO1xufVxuXG4vKipcbiAqIElucHV0IGNvbmZpZ3VyYXRpb24gZm9yIGEgTWVkaWFQYWNrYWdlIFYyIENoYW5uZWxcbiAqXG4gKiBVc2UgdGhlIHN0YXRpYyBmYWN0b3J5IG1ldGhvZHMgdG8gY3JlYXRlIGluc3RhbmNlczpcbiAqIC0gSW5wdXRDb25maWd1cmF0aW9uLmhscygpIGZvciBITFMgaW5wdXRcbiAqIC0gSW5wdXRDb25maWd1cmF0aW9uLmNtYWYoKSBmb3IgQ01BRiBpbnB1dCB3aXRoIG9wdGlvbmFsIENNQUYtc3BlY2lmaWMgZmVhdHVyZXNcbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0Q29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gSExTIGlucHV0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaGxzKCk6IElucHV0Q29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBJbnB1dENvbmZpZ3VyYXRpb24oSW5wdXRUeXBlLkhMUywgdW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENNQUYgaW5wdXQgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgQ01BRi1zcGVjaWZpYyBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBpbnB1dCBzd2l0Y2hpbmcgYW5kIG91dHB1dCBoZWFkZXJzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNtYWYocHJvcHM/OiBDbWFmSW5wdXRQcm9wcyk6IElucHV0Q29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBJbnB1dENvbmZpZ3VyYXRpb24oXG4gICAgICBJbnB1dFR5cGUuQ01BRixcbiAgICAgIHByb3BzPy5pbnB1dFN3aXRjaENvbmZpZ3VyYXRpb24sXG4gICAgICBwcm9wcz8ub3V0cHV0SGVhZGVycyxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgaW5wdXQgdHlwZSAoSExTIG9yIENNQUYpXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlucHV0VHlwZTogSW5wdXRUeXBlLFxuICAgIC8qKlxuICAgICAqIElucHV0IHN3aXRjaCBjb25maWd1cmF0aW9uIChDTUFGIG9ubHkpXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlucHV0U3dpdGNoQ29uZmlndXJhdGlvbj86IElucHV0U3dpdGNoQ29uZmlndXJhdGlvbixcbiAgICAvKipcbiAgICAgKiBPdXRwdXQgaGVhZGVycyBjb25maWd1cmF0aW9uIChDTUFGIG9ubHkpXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG91dHB1dEhlYWRlcnM/OiBIZWFkZXJzQ01TRFtdLFxuICApIHt9XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhbiBBV1MgRWxlbWVudGFsIE1lZGlhUGFja2FnZSBWMiBDaGFubmVsLlxuICpcbiAqIFVzZWQgd2hlbiBjcmVhdGluZyBhIGNoYW5uZWwgdmlhIGBDaGFubmVsR3JvdXAuYWRkQ2hhbm5lbCgpYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFubmVsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0aGF0IGRlc2NyaWJlcyB0aGUgY2hhbm5lbC4gVGhlIG5hbWUgaXMgdGhlIHByaW1hcnkgaWRlbnRpZmllciBmb3IgdGhlIGNoYW5uZWwsIGFuZCBtdXN0IGJlIHVuaXF1ZSBmb3IgeW91ciBhY2NvdW50IGluIHRoZSBBV1MgUmVnaW9uIGFuZCBjaGFubmVsIGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCBhdXRvZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBjaGFubmVsTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW5wdXQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNoYW5uZWwuXG4gICAqIFVzZSBJbnB1dENvbmZpZ3VyYXRpb24uaGxzKCkgb3IgSW5wdXRDb25maWd1cmF0aW9uLmNtYWYoKSB0byBjcmVhdGUgdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IElucHV0Q29uZmlndXJhdGlvbi5jbWFmKClcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0PzogSW5wdXRDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBFbnRlciBhbnkgZGVzY3JpcHRpdmUgdGV4dCB0aGF0IGhlbHBzIHlvdSB0byBpZGVudGlmeSB0aGUgY2hhbm5lbC5cbiAgICpcbiAgICogQGRlZmF1bHQgbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGFkZCB0byB0aGUgQ2hhbm5lbFxuICAgKlxuICAgKiBAZGVmYXVsdCBObyB0YWdnaW5nXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogUG9saWN5IHRvIGFwcGx5IHdoZW4gdGhlIGNoYW5uZWwgaXMgcmVtb3ZlZCBmcm9tIHRoZSBzdGFja1xuICAgKlxuICAgKiBFdmVuIHRob3VnaCBNZWRpYVBhY2thZ2UgQ2hhbm5lbEdyb3VwcywgQ2hhbm5lbHMgYW5kIE9yaWdpbkVuZHBvaW50cyBhcmUgdGVjaG5pY2FsbHkgc3RhdGVmdWwsXG4gICAqIHRoZWlyIGNvbnRlbnRzIGFyZSB0cmFuc2llbnQgYW5kIGl0IGlzIGNvbW1vbiB0byBhZGQgYW5kIHJlbW92ZSB0aGVzZSB3aGlsZSByZWFyY2hpdGVjdGluZyB5b3VyIGFwcGxpY2F0aW9uLlxuICAgKiBUaGUgZGVmYXVsdCBpcyB0aGVyZWZvcmUgYERFU1RST1lgLiBDaGFuZ2UgaXQgdG8gYFJFVEFJTmAgaWYgdGhlIGNvbnRlbnQgKGluIGEgbG9va2JhY2sgd2luZG93KSBhcmUgc29cbiAgICogdmFsdWFibGUgdGhhdCBhY2NpZGVudGFsbHkgbG9zaW5nIGl0IHdvdWxkIGJlIHVuYWNjZXB0YWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZXG4gICAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIHNldCBvbiBhIENoYW5uZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbm5lbFByb3BzIGV4dGVuZHMgQ2hhbm5lbE9wdGlvbnMge1xuICAvKipcbiAgICogQ2hhbm5lbCBHcm91cCB0byBhZGQgdGhpcyBDaGFubmVsIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbEdyb3VwOiBJQ2hhbm5lbEdyb3VwO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBDaGFubmVsIGRlZmluZWQgb3V0c2lkZSBvZiB0aGlzIHN0YWNrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5uZWxBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRoYXQgZGVzY3JpYmVzIHRoZSBjaGFubmVsLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjaGFubmVsTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0aGF0IGRlc2NyaWJlcyB0aGUgY2hhbm5lbCBncm91cC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbEdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlZ2lvbiB3aGVyZSB0aGUgY2hhbm5lbCBsaXZlcy5cbiAgICpcbiAgICogUmVxdWlyZWQgZm9yIGNyb3NzLXJlZ2lvbiBpbXBvcnRzIHRvIGNvbnN0cnVjdCB0aGUgY29ycmVjdCBBUk4uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGltcG9ydGluZyBzdGFjaydzIHJlZ2lvblxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbmV3IG9yIGltcG9ydGVkIENoYW5uZWwuXG4gKi9cbmFic3RyYWN0IGNsYXNzIENoYW5uZWxCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJQ2hhbm5lbCB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2hhbm5lbCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIChpbXBvcnRlZCkgQ2hhbm5lbCBmcm9tIGl0cyBBUk4uXG4gICAqXG4gICAqIFRoZSBBUk4gaXMgZXhwZWN0ZWQgdG8gYmUgaW4gdGhlIGZvcm1hdDpcbiAgICogYGFybjo8cGFydGl0aW9uPjptZWRpYXBhY2thZ2V2Mjo8cmVnaW9uPjo8YWNjb3VudD46Y2hhbm5lbEdyb3VwLzxncm91cE5hbWU+L2NoYW5uZWwvPGNoYW5uZWxOYW1lPmBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNoYW5uZWxBcm4oc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgY2hhbm5lbEFybjogc3RyaW5nKTogSUNoYW5uZWwge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoY2hhbm5lbEFybikpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBUb2tlbkFybk5vdFN1cHBvcnRlZGAsXG4gICAgICAgICdDYW5ub3QgcGFyc2UgYSB0b2tlbiBBUk4uIFVzZSBDaGFubmVsLmZyb21DaGFubmVsQXR0cmlidXRlcygpIHdpdGggZXhwbGljaXQgY2hhbm5lbE5hbWUsIGNoYW5uZWxHcm91cE5hbWUsIGFuZCByZWdpb24gdmFsdWVzIGluc3RlYWQuJyxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZWRBcm4gPSBTdGFjay5vZihzY29wZSkuc3BsaXRBcm4oY2hhbm5lbEFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpO1xuICAgIC8vIHJlc291cmNlTmFtZSBpcyBcIjxncm91cE5hbWU+L2NoYW5uZWwvPGNoYW5uZWxOYW1lPlwiXG4gICAgY29uc3QgW2NoYW5uZWxHcm91cE5hbWUsICwgY2hhbm5lbE5hbWVdID0gcGFyc2VkQXJuLnJlc291cmNlTmFtZT8uc3BsaXQoJy8nKSA/PyBbXTtcbiAgICBpZiAoIWNoYW5uZWxHcm91cE5hbWUgfHwgIWNoYW5uZWxOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBsaXRgSW52YWxpZENoYW5uZWxBcm5gLFxuICAgICAgICBgQ291bGQgbm90IHBhcnNlIGNoYW5uZWwgQVJOOiAke2NoYW5uZWxBcm59LiBFeHBlY3RlZCBmb3JtYXQ6IGFybjo8cGFydGl0aW9uPjptZWRpYXBhY2thZ2V2Mjo8cmVnaW9uPjo8YWNjb3VudD46Y2hhbm5lbEdyb3VwLzxncm91cE5hbWU+L2NoYW5uZWwvPGNoYW5uZWxOYW1lPmAsXG4gICAgICAgIHNjb3BlLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIENoYW5uZWxCYXNlLmZyb21DaGFubmVsQXR0cmlidXRlcyhzY29wZSwgaWQsIHtcbiAgICAgIGNoYW5uZWxHcm91cE5hbWUsXG4gICAgICBjaGFubmVsTmFtZSxcbiAgICAgIHJlZ2lvbjogcGFyc2VkQXJuLnJlZ2lvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2hhbm5lbCBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIChpbXBvcnRlZCkgQ2hhbm5lbC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNoYW5uZWxBdHRyaWJ1dGVzKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGF0dHJzOiBDaGFubmVsQXR0cmlidXRlcyk6IElDaGFubmVsIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBDaGFubmVsQmFzZSBpbXBsZW1lbnRzIElDaGFubmVsIHtcbiAgICAgIHB1YmxpYyBwb2xpY3k/OiBDaGFubmVsUG9saWN5ID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxHcm91cE5hbWUgPSBhdHRycy5jaGFubmVsR3JvdXBOYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxOYW1lID0gYXR0cnMuY2hhbm5lbE5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG1vZGlmaWVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmVnaW9uID0gYXR0cnMucmVnaW9uID8/IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbjtcbiAgICAgIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5ID0gZmFsc2U7XG5cbiAgICAgIHB1YmxpYyBnZXQgaW5nZXN0RW5kcG9pbnRVcmxzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICBsaXRgSW5nZXN0RW5kcG9pbnRVcmxzTm90UHJvdmlkZWRgLFxuICAgICAgICAgIGAnaW5nZXN0RW5kcG9pbnRVcmxzJyBpcyBub3QgYXZhaWxhYmxlIG9uIGltcG9ydGVkIENoYW5uZWwgJHt0aGlzLm5vZGUucGF0aH0uIFVzZSBhIGNyZWF0ZWQgQ2hhbm5lbCBvciBwYXNzIHRoZSBVUkxzIGRpcmVjdGx5LmAsXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyByZWFkb25seSBjaGFubmVsQXJuID0gU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ21lZGlhcGFja2FnZXYyJyxcbiAgICAgICAgcmVzb3VyY2U6IGBjaGFubmVsR3JvdXAvJHthdHRycy5jaGFubmVsR3JvdXBOYW1lfS9jaGFubmVsYCxcbiAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLmNoYW5uZWxOYW1lLFxuICAgICAgICByZWdpb246IHRoaXMucmVnaW9uLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjaGFubmVsR3JvdXBOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjaGFubmVsTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2hhbm5lbEFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbW9kaWZpZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGluZ2VzdEVuZHBvaW50VXJsczogc3RyaW5nW107XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhpcyBDaGFubmVsIHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNoYW5uZWxSZWYoKTogQ2hhbm5lbFJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoYW5uZWxBcm46IHRoaXMuY2hhbm5lbEFybixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2hhbm5lbC5cbiAgICpcbiAgICogSWYgYGF1dG9DcmVhdGVQb2xpY3lgIGlzIHRydWUsIGEgYENoYW5uZWxQb2xpY3lgIHdpbGwgYmUgY3JlYXRlZCB1cG9uIHRoZVxuICAgKiBmaXJzdCBjYWxsIHRvIGFkZFRvUmVzb3VyY2VQb2xpY3kocykuXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgcG9saWN5PzogQ2hhbm5lbFBvbGljeTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIGEgY2hhbm5lbCByZXNvdXJjZSBwb2xpY3kgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB1cG9uXG4gICAqIHRoZSBmaXJzdCBjYWxsIHRvIGBhZGRUb1Jlc291cmNlUG9saWN5YC5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhdXRvQ3JlYXRlUG9saWN5OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIG9mIGdyYW50IG1ldGhvZHMgZm9yIHRoaXMgY2hhbm5lbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGdyYW50cyA9IENoYW5uZWxHcmFudHMuZnJvbUNoYW5uZWwodGhpcyk7XG5cbiAgLyoqXG4gICAqIEFkZCBPcmlnaW4gRW5kcG9pbnQgZm9yIHRoaXMgQ2hhbm5lbC5cbiAgICovXG4gIHB1YmxpYyBhZGRPcmlnaW5FbmRwb2ludChpZDogc3RyaW5nLCBvcHRpb25zOiBPcmlnaW5FbmRwb2ludE9wdGlvbnMpOiBPcmlnaW5FbmRwb2ludCB7XG4gICAgcmV0dXJuIG5ldyBPcmlnaW5FbmRwb2ludCh0aGlzLCBpZCwge1xuICAgICAgY2hhbm5lbDogdGhpcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlIGNoYW5uZWwgcG9saWN5LlxuICAgKlxuICAgKiBZb3UgY2FuIG9ubHkgYWRkIDEgQ2hhbm5lbFBvbGljeSB0byBhIENoYW5uZWwuXG4gICAqIElmIHlvdSBoYXZlIGFscmVhZHkgZGVmaW5lZCBvbmUsIGZ1bmN0aW9uIHdpbGwgYXBwZW5kIHRoZSBwb2xpY3kgYWxyZWFkeSBjcmVhdGVkLlxuICAgKi9cbiAgcHVibGljIGFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQpOiBBZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICBpZiAoIXRoaXMucG9saWN5ICYmIHRoaXMuYXV0b0NyZWF0ZVBvbGljeSkge1xuICAgICAgdGhpcy5wb2xpY3kgPSBuZXcgQ2hhbm5lbFBvbGljeSh0aGlzLCAnUG9saWN5Jywge1xuICAgICAgICBjaGFubmVsOiB0aGlzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucG9saWN5KSB7XG4gICAgICB0aGlzLnBvbGljeS5kb2N1bWVudC5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy5wb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZFdhdGNoIG1ldHJpYy5cbiAgICpcbiAgICogQHBhcmFtIG1ldHJpY05hbWUgbmFtZSBvZiB0aGUgbWV0cmljXG4gICAqIEBwYXJhbSBvcHRpb25zIG1ldHJpYyBvcHRpb25zLlxuICAgKi9cbiAgcHVibGljIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgbmFtZXNwYWNlOiAnQVdTL01lZGlhUGFja2FnZScsXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIENoYW5uZWxHcm91cDogdGhpcy5jaGFubmVsR3JvdXBOYW1lLFxuICAgICAgICBDaGFubmVsOiB0aGlzLmNoYW5uZWxOYW1lLFxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSkuYXR0YWNoVG8odGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEluZ3Jlc3MgQnl0ZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdW0gb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW5ncmVzc0J5dGVzKG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0luZ3Jlc3NCeXRlcycsIHtcbiAgICAgIHN0YXRpc3RpYzogJ3N1bScsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgdW5pdDogVW5pdC5CWVRFUyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEVncmVzcyBCeXRlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNFZ3Jlc3NCeXRlcyhvcHRpb25zPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdFZ3Jlc3NCeXRlcycsIHtcbiAgICAgIHN0YXRpc3RpYzogJ3N1bScsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgdW5pdDogVW5pdC5CWVRFUyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEluZ3Jlc3MgcmVzcG9uc2UgdGltZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF2ZXJhZ2Ugb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW5ncmVzc1Jlc3BvbnNlVGltZShvcHRpb25zPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdJbmdyZXNzUmVzcG9uc2VUaW1lJywge1xuICAgICAgc3RhdGlzdGljOiAnYXZnJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICB1bml0OiBVbml0Lk1JTExJU0VDT05EUyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEVncmVzcyBSZXNwb25zZSB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXZlcmFnZSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNFZ3Jlc3NSZXNwb25zZVRpbWUob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnRWdyZXNzUmVzcG9uc2VUaW1lJywge1xuICAgICAgc3RhdGlzdGljOiAnYXZnJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICB1bml0OiBVbml0Lk1JTExJU0VDT05EUyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEluZ3Jlc3MgUmVxdWVzdCBDb3VudFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbmdyZXNzUmVxdWVzdENvdW50KG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0luZ3Jlc3NSZXF1ZXN0Q291bnQnLCB7XG4gICAgICBzdGF0aXN0aWM6ICdzdW0nLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgTWV0cmljIGZvciBFZ3Jlc3MgUmVxdWVzdCBDb3VudFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNFZ3Jlc3NSZXF1ZXN0Q291bnQob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnRWdyZXNzUmVxdWVzdENvdW50Jywge1xuICAgICAgc3RhdGlzdGljOiAnc3VtJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICB1bml0OiBVbml0LkNPVU5ULFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIERlZmluZXMgYW4gQVdTIEVsZW1lbnRhbCBNZWRpYVBhY2thZ2UgVjIgQ2hhbm5lbFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgQ2hhbm5lbCBleHRlbmRzIENoYW5uZWxCYXNlIGltcGxlbWVudHMgSUNoYW5uZWwge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1tZWRpYXBhY2thZ2V2Mi1hbHBoYS5DaGFubmVsJztcblxuICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbEdyb3VwTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbE5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxHcm91cD86IElDaGFubmVsR3JvdXA7XG4gIHB1YmxpYyByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGUgYW5kIHRpbWUgdGhlIGNoYW5uZWwgd2FzIGNyZWF0ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgY2hhbm5lbCB3YXMgbW9kaWZpZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbW9kaWZpZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgaW5nZXN0IGVuZHBvaW50cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbmdlc3RFbmRwb2ludFVybHM6IHN0cmluZ1tdO1xuXG4gIHB1YmxpYyBwb2xpY3k/OiBDaGFubmVsUG9saWN5O1xuICBwcm90ZWN0ZWQgYXV0b0NyZWF0ZVBvbGljeSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENoYW5uZWxQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcz8uY2hhbm5lbE5hbWUgPz8gTGF6eS5zdHJpbmcoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywge1xuICAgICAgICAgIG1heExlbmd0aDogMjU2LFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgLy8gVmFsaWRhdGUgY2hhbm5lbE5hbWUgaWYgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMuY2hhbm5lbE5hbWUgIT0gbnVsbCAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmNoYW5uZWxOYW1lKSkge1xuICAgICAgaWYgKHByb3BzLmNoYW5uZWxOYW1lLmxlbmd0aCA8IDEgfHwgcHJvcHMuY2hhbm5lbE5hbWUubGVuZ3RoID4gMjU2KSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YENoYW5uZWxOYW1lTGVuZ3RoYCwgJ0NoYW5uZWwgbmFtZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjU2IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLicsIHRoaXMpO1xuICAgICAgfVxuICAgICAgaWYgKCFwcm9wcy5jaGFubmVsTmFtZS5tYXRjaCgvXlthLXpBLVowLTlfLV0rJC8pKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YENoYW5uZWxOYW1lUGF0dGVybmAsICdDaGFubmVsIG5hbWUgbXVzdCBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsIGh5cGhlbnMsIGFuZCB1bmRlcnNjb3Jlcy4nLCB0aGlzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBkZXNjcmlwdGlvbiBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRlc2NyaXB0aW9uKSAmJiBwcm9wcy5kZXNjcmlwdGlvbi5sZW5ndGggPiAxMDI0KSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGxpdGBDaGFubmVsRGVzY3JpcHRpb25MZW5ndGhgLCAnQ2hhbm5lbCBkZXNjcmlwdGlvbiBtdXN0IG5vdCBleGNlZWQgMTAyNCBjaGFyYWN0ZXJzLicsIHRoaXMpO1xuICAgIH1cblxuICAgIC8vIERlZmF1bHQgdG8gQ01BRiBpZiBubyBpbnB1dCBjb25maWd1cmF0aW9uIHByb3ZpZGVkXG4gICAgY29uc3QgaW5wdXRDb25maWcgPSBwcm9wcy5pbnB1dCA/PyBJbnB1dENvbmZpZ3VyYXRpb24uY21hZigpO1xuXG4gICAgY29uc3QgY2hhbm5lbCA9IG5ldyBDZm5DaGFubmVsKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGNoYW5uZWxOYW1lOiB0aGlzLnBoeXNpY2FsTmFtZSxcbiAgICAgIGNoYW5uZWxHcm91cE5hbWU6IHByb3BzLmNoYW5uZWxHcm91cC5jaGFubmVsR3JvdXBOYW1lLFxuICAgICAgaW5wdXRUeXBlOiBpbnB1dENvbmZpZy5pbnB1dFR5cGUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBpbnB1dFN3aXRjaENvbmZpZ3VyYXRpb246IGlucHV0Q29uZmlnLmlucHV0U3dpdGNoQ29uZmlndXJhdGlvbixcbiAgICAgIHRhZ3M6IHByb3BzPy50YWdzID8gcmVuZGVyVGFncyhwcm9wcy50YWdzKSA6IHVuZGVmaW5lZCxcbiAgICAgIG91dHB1dEhlYWRlckNvbmZpZ3VyYXRpb246IGlucHV0Q29uZmlnLm91dHB1dEhlYWRlcnMgJiYgaW5wdXRDb25maWcub3V0cHV0SGVhZGVycy5sZW5ndGggPiAwID8ge1xuICAgICAgICBwdWJsaXNoTXFjczogaW5wdXRDb25maWcub3V0cHV0SGVhZGVycz8uc29tZShoID0+IGgudmFsdWUgPT09IEhlYWRlcnNDTVNELk1RQ1MudmFsdWUpLFxuICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcblxuICAgIHRoaXMuY2hhbm5lbEdyb3VwID0gcHJvcHMuY2hhbm5lbEdyb3VwO1xuICAgIHRoaXMuY2hhbm5lbEdyb3VwTmFtZSA9IGNoYW5uZWwuY2hhbm5lbEdyb3VwTmFtZTtcbiAgICB0aGlzLmNoYW5uZWxOYW1lID0gY2hhbm5lbC5jaGFubmVsTmFtZTtcbiAgICB0aGlzLmNoYW5uZWxBcm4gPSBjaGFubmVsLmF0dHJBcm47XG4gICAgdGhpcy5jcmVhdGVkQXQgPSBjaGFubmVsLmF0dHJDcmVhdGVkQXQ7XG4gICAgdGhpcy5tb2RpZmllZEF0ID0gY2hhbm5lbC5hdHRyTW9kaWZpZWRBdDtcbiAgICB0aGlzLnJlZ2lvbiA9IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbjtcbiAgICB0aGlzLmluZ2VzdEVuZHBvaW50VXJscyA9IFtGbi5zZWxlY3QoMCwgY2hhbm5lbC5hdHRySW5nZXN0RW5kcG9pbnRVcmxzKSwgRm4uc2VsZWN0KDEsIGNoYW5uZWwuYXR0ckluZ2VzdEVuZHBvaW50VXJscyldO1xuXG4gICAgY2hhbm5lbC5hcHBseVJlbW92YWxQb2xpY3kocHJvcHM/LnJlbW92YWxQb2xpY3kgPz8gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcblxuICAgIC8vIFRoZSBjaGFubmVsR3JvdXBOYW1lIGlzIHJlbmRlcmVkIGFzIGEgbGl0ZXJhbCBzdHJpbmcgKG5vdCBhIENGTiBSZWYpLCBzbyBDbG91ZEZvcm1hdGlvblxuICAgIC8vIGNhbm5vdCBpbmZlciB0aGUgZGVwZW5kZW5jeS4gV2UgYWRkIGEgZGlyZWN0IENmblJlc291cmNlLWxldmVsIERlcGVuZHNPbiB0byBndWFyYW50ZWVcbiAgICAvLyBkZXBsb3kgb3JkZXJpbmcgd2l0aG91dCB0cmlnZ2VyaW5nIENESydzIHN1YnRyZWUtbGV2ZWwgY3ljbGUgZGV0ZWN0aW9uLlxuICAgIC8vIEZvciBpbXBvcnRlZCBjb25zdHJ1Y3RzLCBkZWZhdWx0Q2hpbGQgaXMgdW5kZWZpbmVkIChubyBDRk4gcmVzb3VyY2UgdG8gb3JkZXIgYWdhaW5zdCkuXG4gICAgY29uc3QgZ3JvdXBDZm4gPSBwcm9wcy5jaGFubmVsR3JvdXAubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuUmVzb3VyY2UgfCB1bmRlZmluZWQ7XG4gICAgaWYgKGdyb3VwQ2ZuICYmIENmblJlc291cmNlLmlzQ2ZuUmVzb3VyY2UoZ3JvdXBDZm4pKSB7XG4gICAgICBjaGFubmVsLmFkZERlcGVuZGVuY3koZ3JvdXBDZm4pO1xuICAgIH1cbiAgfVxufVxuIl19
452
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNoYW5uZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQXdJO0FBRXhJLCtEQUEwRDtBQUUxRCx1RUFBNEQ7QUFFNUQsNEVBQTREO0FBQzVELDhFQUE4RTtBQUM5RSwwRUFBMEU7QUFHMUUsd0JBQWtEO0FBRWxELHVGQUFrRTtBQUNsRSxxREFBOEM7QUFFOUM7O0dBRUc7QUFDSCxJQUFZLFNBVVg7QUFWRCxXQUFZLFNBQVM7SUFDbkI7OztPQUdHO0lBQ0gsMEJBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsd0JBQVMsQ0FBQTtBQUNYLENBQUMsRUFWVyxTQUFTLHlCQUFULFNBQVMsUUFVcEI7QUFtSUQ7O0dBRUc7QUFDSCxJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCwrREFBWSxDQUFBO0lBQ1o7O09BRUc7SUFDSCwrREFBWSxDQUFBO0FBQ2QsQ0FBQyxFQVRXLGNBQWMsOEJBQWQsY0FBYyxRQVN6QjtBQXdCRDs7R0FFRztBQUNILE1BQWEsV0FBVztJQWlCSjs7SUFoQmxCOztPQUVHO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQy9CO0lBRUQ7SUFDRTs7T0FFRztJQUNhLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO0tBQUk7O0FBakJyQyxrQ0FrQkM7QUFxQkQ7Ozs7OztHQU1HO0FBQ0gsTUFBYSxrQkFBa0I7SUF5Qlg7SUFJQTtJQUlBOztJQWhDbEI7O09BRUc7SUFDSSxNQUFNLENBQUMsR0FBRztRQUNmLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLENB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QVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7WUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLGdCQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsc0JBQXNCLENBQUMsRUFBRSxnQkFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUV2SCxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTFFLDBGQUEwRjtZQUMxRix3RkFBd0Y7WUFDeEYsMEVBQTBFO1lBQzFFLHlGQUF5RjtZQUN6RixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUF1QyxDQUFDO1lBQ2pGLElBQUksUUFBUSxJQUFJLHlCQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDO1NBQ0Y7O1lBeEZVLHVEQUFPOzs7OztBQUFQLDBCQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJUmVzb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZSwgU3RhY2ssIEFybkZvcm1hdCwgTGF6eSwgTmFtZXMsIEZuLCBEdXJhdGlvbiwgVmFsaWRhdGlvbkVycm9yLCBDZm5SZXNvdXJjZSwgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IE1ldHJpY09wdGlvbnMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBNZXRyaWMsIFVuaXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgdHlwZSB7IFBvbGljeVN0YXRlbWVudCwgQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ2ZuQ2hhbm5lbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1tZWRpYXBhY2thZ2V2Mic7XG5pbXBvcnQgdHlwZSB7IElDaGFubmVsUmVmLCBDaGFubmVsUmVmZXJlbmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLW1lZGlhcGFja2FnZXYyJztcbmltcG9ydCB7IGxpdCB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB0eXBlIHsgT3JpZ2luRW5kcG9pbnRPcHRpb25zIH0gZnJvbSAnLic7XG5pbXBvcnQgeyBDaGFubmVsUG9saWN5LCBPcmlnaW5FbmRwb2ludCB9IGZyb20gJy4nO1xuaW1wb3J0IHR5cGUgeyBJQ2hhbm5lbEdyb3VwIH0gZnJvbSAnLi9ncm91cCc7XG5pbXBvcnQgeyBDaGFubmVsR3JhbnRzIH0gZnJvbSAnLi9tZWRpYXBhY2thZ2V2Mi1ncmFudHMuZ2VuZXJhdGVkJztcbmltcG9ydCB7IHJlbmRlclRhZ3MgfSBmcm9tICcuL3NoYXJlZC1oZWxwZXJzJztcblxuLyoqXG4gKiBUaGUgaW5wdXQgdHlwZSB3aWxsIGJlIGFuIGltbXV0YWJsZSBmaWVsZCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gZGVmaW5lIHdoZXRoZXIgdGhlIGNoYW5uZWwgd2lsbCBhbGxvdyBDTUFGIGluZ2VzdCBvciBITFMgaW5nZXN0LlxuICovXG5leHBvcnQgZW51bSBJbnB1dFR5cGUge1xuICAvKipcbiAgICogVGhlIERBU0gtSUYgQ01BRiBJbmdlc3Qgc3BlY2lmaWNhdGlvbiAod2hpY2ggZGVmaW5lcyBDTUFGIHNlZ21lbnRzIHdpdGhcbiAgICogb3B0aW9uYWwgREFTSCBtYW5pZmVzdHMpLlxuICAgKi9cbiAgQ01BRj0nQ01BRicsXG4gIC8qKlxuICAgKiBUaGUgSExTIHN0cmVhbWluZyBzcGVjaWZpY2F0aW9uICh3aGljaCBkZWZpbmVzIE0zVTggbWFuaWZlc3RzIGFuZCBUUyBzZWdtZW50cykuXG4gICAqL1xuICBITFM9J0hMUycsXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIE1lZGlhUGFja2FnZSBWMiBDaGFubmVsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYW5uZWwgZXh0ZW5kcyBJUmVzb3VyY2UsIElDaGFubmVsUmVmIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRoYXQgZGVzY3JpYmVzIHRoZSBjaGFubmVsIGdyb3VwLiBUaGUgbmFtZSBpcyB0aGUgcHJpbWFyeSBpZGVudGlmaWVyIGZvciB0aGUgY2hhbm5lbCBncm91cC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hhbm5lbEdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSB0aGF0IGRlc2NyaWJlcyB0aGUgY2hhbm5lbC4gVGhlIG5hbWUgaXMgdGhlIHByaW1hcnkgaWRlbnRpZmllciBmb3IgdGhlIGNoYW5uZWwuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWxOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc291cmNlLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjaGFubmVsQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIGFuZCB0aW1lIHRoZSBjaGFubmVsIHdhcyBjcmVhdGVkLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIGFuZCB0aW1lIHRoZSBjaGFubmVsIHdhcyBtb2RpZmllZC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kaWZpZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGluZ2VzdCBlbmRwb2ludCBVUkxzIGZvciB0aGUgY2hhbm5lbC5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5nZXN0RW5kcG9pbnRVcmxzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNoYW5uZWwgZ3JvdXAgdGhpcyBjaGFubmVsIGJlbG9uZ3MgdG8uXG4gICAqIE9ubHkgYXZhaWxhYmxlIHdoZW4gdGhlIGNoYW5uZWwgd2FzIGNyZWF0ZWQgaW4gdGhlIHNhbWUgc3RhY2suXG4gICAqIFVuZGVmaW5lZCBmb3IgaW1wb3J0ZWQgY2hhbm5lbHMuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWxHcm91cD86IElDaGFubmVsR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoaXMgY2hhbm5lbCBsaXZlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIHJlc291cmNlIHBvbGljeSB0byB0aGUgcm9sZSB1c2VkIHRvIHdyaXRlIHRvIE1lZGlhUGFja2FnZSBWMiBDaGFubmVsLlxuICAgKi9cbiAgcmVhZG9ubHkgZ3JhbnRzOiBDaGFubmVsR3JhbnRzO1xuXG4gIC8qKlxuICAgKiBBZGQgT3JpZ2luIEVuZHBvaW50IGZvciB0aGlzIENoYW5uZWwuXG4gICAqL1xuICBhZGRPcmlnaW5FbmRwb2ludChpZDogc3RyaW5nLCBvcHRpb25zOiBPcmlnaW5FbmRwb2ludE9wdGlvbnMpOiBPcmlnaW5FbmRwb2ludDtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGNoYW5uZWwgcG9saWN5LlxuICAgKlxuICAgKiBZb3UgY2FuIG9ubHkgYWRkIDEgQ2hhbm5lbFBvbGljeSB0byBhIENoYW5uZWwuXG4gICAqIElmIHlvdSBoYXZlIGFscmVhZHkgZGVmaW5lZCBvbmUsIGZ1bmN0aW9uIHdpbGwgYXBwZW5kIHRoZSBwb2xpY3kgYWxyZWFkeSBjcmVhdGVkLlxuICAgKi9cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCk6IEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggbWV0cmljLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBuYW1lIG9mIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIHByb3BzIG1ldHJpYyBvcHRpb25zLlxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgSW5ncmVzcyBCeXRlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIG1ldHJpY0luZ3Jlc3NCeXRlcyhvcHRpb25zPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEVncmVzcyBCeXRlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIG1ldHJpY0VncmVzc0J5dGVzKG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgSW5ncmVzcyByZXNwb25zZSB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXZlcmFnZSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIG1ldHJpY0luZ3Jlc3NSZXNwb25zZVRpbWUob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgTWV0cmljIGZvciBFZ3Jlc3MgUmVzcG9uc2UgdGltZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGF2ZXJhZ2Ugb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNFZ3Jlc3NSZXNwb25zZVRpbWUob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgTWV0cmljIGZvciBJbmdyZXNzIFJlcXVlc3QgQ291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdW0gb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNJbmdyZXNzUmVxdWVzdENvdW50KG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgRWdyZXNzIFJlcXVlc3QgQ291bnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBzdW0gb3ZlciA2MCBzZWNvbmRzXG4gICAqL1xuICBtZXRyaWNFZ3Jlc3NSZXF1ZXN0Q291bnQob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG59XG5cbi8qKlxuICogSW5nZXN0IEVuZHBvaW50IG9wdGlvbnNcbiAqL1xuZXhwb3J0IGVudW0gSW5nZXN0RW5kcG9pbnQge1xuICAvKipcbiAgICogRmlyc3QgaW5nZXN0IGVuZHBvaW50XG4gICAqL1xuICBFTkRQT0lOVF8xPTEsXG4gIC8qKlxuICAgKiBTZWNvbmQgaW5nZXN0IGVuZHBvaW50XG4gICAqL1xuICBFTkRQT0lOVF8yPTIsXG59XG5cbi8qKlxuICogSW5wdXQgU3dpdGNoIENvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dFN3aXRjaENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBBV1MgRWxlbWVudGFsIE1lZGlhUGFja2FnZSBwZXJmb3JtcyBpbnB1dCBzd2l0Y2hpbmcgYmFzZWQgb24gdGhlIE1RQ1MuXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBpcyB2YWxpZCBvbmx5IHdoZW4gSW5wdXRUeXBlIGlzIENNQUYuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBtcWNzSW5wdXRTd2l0Y2hpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogRm9yIENNQUYgaW5wdXRzLCBpbmRpY2F0ZXMgd2hpY2ggaW5wdXQgTWVkaWFQYWNrYWdlIHNob3VsZCBwcmVmZXIgd2hlbiBib3RoIGlucHV0cyBoYXZlIGVxdWFsIE1RQ1Mgc2NvcmVzLlxuICAgKiBTZWxlY3QgMSB0byBwcmVmZXIgdGhlIGZpcnN0IGluZ2VzdCBlbmRwb2ludCwgb3IgMiB0byBwcmVmZXIgdGhlIHNlY29uZCBpbmdlc3QgZW5kcG9pbnQuXG4gICAqIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgcHJlZmVycmVkIGlucHV0LCBNZWRpYVBhY2thZ2UgdXNlcyBpdHMgZGVmYXVsdCBzd2l0Y2hpbmcgYmVoYXZpb3Igd2hlbiBNUUNTIHNjb3JlcyBhcmUgZXF1YWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTWVkaWFQYWNrYWdlIHVzZXMgaXRzIGRlZmF1bHQgc3dpdGNoaW5nIGJlaGF2aW9yXG4gICAqL1xuICByZWFkb25seSBwcmVmZXJyZWRJbnB1dD86IEluZ2VzdEVuZHBvaW50O1xufVxuXG4vKipcbiAqIFRoZSBzZXR0aW5ncyBmb3Igd2hhdCBjb21tb24gbWVkaWEgc2VydmVyIGRhdGEgKENNU0QpIGhlYWRlcnMgQVdTIEVsZW1lbnRhbCBNZWRpYVBhY2thZ2UgaW5jbHVkZXMgaW4gcmVzcG9uc2VzIHRvIHRoZSBDRE4uXG4gKi9cbmV4cG9ydCBjbGFzcyBIZWFkZXJzQ01TRCB7XG4gIC8qKlxuICAgKiBNZWRpYSBRdWFsaXR5IENvbmZpZGVuY2UgU2NvcmVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTVFDUyA9IG5ldyBIZWFkZXJzQ01TRCgnbXFjcycpO1xuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggZm9yIG5ldyBDTVNEIGhlYWRlcnMgbm90IHlldCBzdXBwb3J0ZWQgYnkgdGhlIGNvbnN0cnVjdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YodmFsdWU6IHN0cmluZyk6IEhlYWRlcnNDTVNEIHtcbiAgICByZXR1cm4gbmV3IEhlYWRlcnNDTVNEKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgQ01TRCBoZWFkZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBDTUFGIGlucHV0IGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbWFmSW5wdXRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgaW5wdXQgc3dpdGNoaW5nIGJhc2VkIG9uIHRoZSBtZWRpYSBxdWFsaXR5IGNvbmZpZGVuY2Ugc2NvcmUgKE1RQ1MpIGFzIHByb3ZpZGVkIGZyb20gQVdTIEVsZW1lbnRhbCBNZWRpYUxpdmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIGN1c3RvbWl6ZWQgaW5wdXQgc3dpdGNoIGNvbmZpZ3VyYXRpb24gYWRkZWRcbiAgICovXG4gIHJlYWRvbmx5IGlucHV0U3dpdGNoQ29uZmlndXJhdGlvbj86IElucHV0U3dpdGNoQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNldHRpbmdzIGZvciB3aGF0IGNvbW1vbiBtZWRpYSBzZXJ2ZXIgZGF0YSAoQ01TRCkgaGVhZGVycyBBV1MgRWxlbWVudGFsIE1lZGlhUGFja2FnZSBpbmNsdWRlcyBpbiByZXNwb25zZXMgdG8gdGhlIENETi5cbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0SGVhZGVycz86IEhlYWRlcnNDTVNEW107XG59XG5cbi8qKlxuICogSW5wdXQgY29uZmlndXJhdGlvbiBmb3IgYSBNZWRpYVBhY2thZ2UgVjIgQ2hhbm5lbFxuICpcbiAqIFVzZSB0aGUgc3RhdGljIGZhY3RvcnkgbWV0aG9kcyB0byBjcmVhdGUgaW5zdGFuY2VzOlxuICogLSBJbnB1dENvbmZpZ3VyYXRpb24uaGxzKCkgZm9yIEhMUyBpbnB1dFxuICogLSBJbnB1dENvbmZpZ3VyYXRpb24uY21hZigpIGZvciBDTUFGIGlucHV0IHdpdGggb3B0aW9uYWwgQ01BRi1zcGVjaWZpYyBmZWF0dXJlc1xuICovXG5leHBvcnQgY2xhc3MgSW5wdXRDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBITFMgaW5wdXQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBobHMoKTogSW5wdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IElucHV0Q29uZmlndXJhdGlvbihJbnB1dFR5cGUuSExTLCB1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ01BRiBpbnB1dCBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBDTUFGLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIGlucHV0IHN3aXRjaGluZyBhbmQgb3V0cHV0IGhlYWRlcnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY21hZihwcm9wcz86IENtYWZJbnB1dFByb3BzKTogSW5wdXRDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IElucHV0Q29uZmlndXJhdGlvbihcbiAgICAgIElucHV0VHlwZS5DTUFGLFxuICAgICAgcHJvcHM/LmlucHV0U3dpdGNoQ29uZmlndXJhdGlvbixcbiAgICAgIHByb3BzPy5vdXRwdXRIZWFkZXJzLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbnB1dCB0eXBlIChITFMgb3IgQ01BRilcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRUeXBlOiBJbnB1dFR5cGUsXG4gICAgLyoqXG4gICAgICogSW5wdXQgc3dpdGNoIGNvbmZpZ3VyYXRpb24gKENNQUYgb25seSlcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRTd2l0Y2hDb25maWd1cmF0aW9uPzogSW5wdXRTd2l0Y2hDb25maWd1cmF0aW9uLFxuICAgIC8qKlxuICAgICAqIE91dHB1dCBoZWFkZXJzIGNvbmZpZ3VyYXRpb24gKENNQUYgb25seSlcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0SGVhZGVycz86IEhlYWRlcnNDTVNEW10sXG4gICkge31cbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGFuIEFXUyBFbGVtZW50YWwgTWVkaWFQYWNrYWdlIFYyIENoYW5uZWwuXG4gKlxuICogVXNlZCB3aGVuIGNyZWF0aW5nIGEgY2hhbm5lbCB2aWEgYENoYW5uZWxHcm91cC5hZGRDaGFubmVsKClgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENoYW5uZWxPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRoYXQgZGVzY3JpYmVzIHRoZSBjaGFubmVsLiBUaGUgbmFtZSBpcyB0aGUgcHJpbWFyeSBpZGVudGlmaWVyIGZvciB0aGUgY2hhbm5lbCwgYW5kIG11c3QgYmUgdW5pcXVlIGZvciB5b3VyIGFjY291bnQgaW4gdGhlIEFXUyBSZWdpb24gYW5kIGNoYW5uZWwgZ3JvdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGF1dG9nZW5lcmF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWxOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBjb25maWd1cmF0aW9uIGZvciB0aGUgY2hhbm5lbC5cbiAgICogVXNlIElucHV0Q29uZmlndXJhdGlvbi5obHMoKSBvciBJbnB1dENvbmZpZ3VyYXRpb24uY21hZigpIHRvIGNyZWF0ZSB0aGUgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgSW5wdXRDb25maWd1cmF0aW9uLmNtYWYoKVxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXQ/OiBJbnB1dENvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIEVudGVyIGFueSBkZXNjcmlwdGl2ZSB0ZXh0IHRoYXQgaGVscHMgeW91IHRvIGlkZW50aWZ5IHRoZSBjaGFubmVsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gYWRkIHRvIHRoZSBDaGFubmVsXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vIHRhZ2dpbmdcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBQb2xpY3kgdG8gYXBwbHkgd2hlbiB0aGUgY2hhbm5lbCBpcyByZW1vdmVkIGZyb20gdGhlIHN0YWNrXG4gICAqXG4gICAqIEV2ZW4gdGhvdWdoIE1lZGlhUGFja2FnZSBDaGFubmVsR3JvdXBzLCBDaGFubmVscyBhbmQgT3JpZ2luRW5kcG9pbnRzIGFyZSB0ZWNobmljYWxseSBzdGF0ZWZ1bCxcbiAgICogdGhlaXIgY29udGVudHMgYXJlIHRyYW5zaWVudCBhbmQgaXQgaXMgY29tbW9uIHRvIGFkZCBhbmQgcmVtb3ZlIHRoZXNlIHdoaWxlIHJlYXJjaGl0ZWN0aW5nIHlvdXIgYXBwbGljYXRpb24uXG4gICAqIFRoZSBkZWZhdWx0IGlzIHRoZXJlZm9yZSBgREVTVFJPWWAuIENoYW5nZSBpdCB0byBgUkVUQUlOYCBpZiB0aGUgY29udGVudCAoaW4gYSBsb29rYmFjayB3aW5kb3cpIGFyZSBzb1xuICAgKiB2YWx1YWJsZSB0aGF0IGFjY2lkZW50YWxseSBsb3NpbmcgaXQgd291bGQgYmUgdW5hY2NlcHRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LkRFU1RST1lcbiAgICovXG4gIHJlYWRvbmx5IHJlbW92YWxQb2xpY3k/OiBSZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gc2V0IG9uIGEgQ2hhbm5lbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFubmVsUHJvcHMgZXh0ZW5kcyBDaGFubmVsT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDaGFubmVsIEdyb3VwIHRvIGFkZCB0aGlzIENoYW5uZWwgdG8uXG4gICAqL1xuICByZWFkb25seSBjaGFubmVsR3JvdXA6IElDaGFubmVsR3JvdXA7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIENoYW5uZWwgZGVmaW5lZCBvdXRzaWRlIG9mIHRoaXMgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbm5lbEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgdGhhdCBkZXNjcmliZXMgdGhlIGNoYW5uZWwuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5uZWxOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRoYXQgZGVzY3JpYmVzIHRoZSBjaGFubmVsIGdyb3VwLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjaGFubmVsR3JvdXBOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoZSBjaGFubmVsIGxpdmVzLlxuICAgKlxuICAgKiBSZXF1aXJlZCBmb3IgY3Jvc3MtcmVnaW9uIGltcG9ydHMgdG8gY29uc3RydWN0IHRoZSBjb3JyZWN0IEFSTi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgaW1wb3J0aW5nIHN0YWNrJ3MgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBuZXcgb3IgaW1wb3J0ZWQgQ2hhbm5lbC5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgQ2hhbm5lbEJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElDaGFubmVsIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDaGFubmVsIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgKGltcG9ydGVkKSBDaGFubmVsIGZyb20gaXRzIEFSTi5cbiAgICpcbiAgICogVGhlIEFSTiBpcyBleHBlY3RlZCB0byBiZSBpbiB0aGUgZm9ybWF0OlxuICAgKiBgYXJuOjxwYXJ0aXRpb24+Om1lZGlhcGFja2FnZXYyOjxyZWdpb24+OjxhY2NvdW50PjpjaGFubmVsR3JvdXAvPGdyb3VwTmFtZT4vY2hhbm5lbC88Y2hhbm5lbE5hbWU+YFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ2hhbm5lbEFybihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjaGFubmVsQXJuOiBzdHJpbmcpOiBJQ2hhbm5lbCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChjaGFubmVsQXJuKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgbGl0YFRva2VuQXJuTm90U3VwcG9ydGVkYCxcbiAgICAgICAgJ0Nhbm5vdCBwYXJzZSBhIHRva2VuIEFSTi4gVXNlIENoYW5uZWwuZnJvbUNoYW5uZWxBdHRyaWJ1dGVzKCkgd2l0aCBleHBsaWNpdCBjaGFubmVsTmFtZSwgY2hhbm5lbEdyb3VwTmFtZSwgYW5kIHJlZ2lvbiB2YWx1ZXMgaW5zdGVhZC4nLFxuICAgICAgICBzY29wZSxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZEFybiA9IFN0YWNrLm9mKHNjb3BlKS5zcGxpdEFybihjaGFubmVsQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSk7XG4gICAgLy8gcmVzb3VyY2VOYW1lIGlzIFwiPGdyb3VwTmFtZT4vY2hhbm5lbC88Y2hhbm5lbE5hbWU+XCJcbiAgICBjb25zdCBbY2hhbm5lbEdyb3VwTmFtZSwgLCBjaGFubmVsTmFtZV0gPSBwYXJzZWRBcm4ucmVzb3VyY2VOYW1lPy5zcGxpdCgnLycpID8/IFtdO1xuICAgIGlmICghY2hhbm5lbEdyb3VwTmFtZSB8fCAhY2hhbm5lbE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIGxpdGBJbnZhbGlkQ2hhbm5lbEFybmAsXG4gICAgICAgIGBDb3VsZCBub3QgcGFyc2UgY2hhbm5lbCBBUk46ICR7Y2hhbm5lbEFybn0uIEV4cGVjdGVkIGZvcm1hdDogYXJuOjxwYXJ0aXRpb24+Om1lZGlhcGFja2FnZXYyOjxyZWdpb24+OjxhY2NvdW50PjpjaGFubmVsR3JvdXAvPGdyb3VwTmFtZT4vY2hhbm5lbC88Y2hhbm5lbE5hbWU+YCxcbiAgICAgICAgc2NvcGUsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gQ2hhbm5lbEJhc2UuZnJvbUNoYW5uZWxBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgY2hhbm5lbEdyb3VwTmFtZSxcbiAgICAgIGNoYW5uZWxOYW1lLFxuICAgICAgcmVnaW9uOiBwYXJzZWRBcm4ucmVnaW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDaGFubmVsIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgKGltcG9ydGVkKSBDaGFubmVsLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ2hhbm5lbEF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IENoYW5uZWxBdHRyaWJ1dGVzKTogSUNoYW5uZWwge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIENoYW5uZWxCYXNlIGltcGxlbWVudHMgSUNoYW5uZWwge1xuICAgICAgcHVibGljIHBvbGljeT86IENoYW5uZWxQb2xpY3kgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbEdyb3VwTmFtZSA9IGF0dHJzLmNoYW5uZWxHcm91cE5hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbE5hbWUgPSBhdHRycy5jaGFubmVsTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbW9kaWZpZWRBdCA9IHVuZGVmaW5lZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSByZWdpb24gPSBhdHRycy5yZWdpb24gPz8gU3RhY2sub2YodGhpcykucmVnaW9uO1xuICAgICAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3kgPSBmYWxzZTtcblxuICAgICAgcHVibGljIGdldCBpbmdlc3RFbmRwb2ludFVybHMoKTogc3RyaW5nW10ge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgIGxpdGBJbmdlc3RFbmRwb2ludFVybHNOb3RQcm92aWRlZGAsXG4gICAgICAgICAgYCdpbmdlc3RFbmRwb2ludFVybHMnIGlzIG5vdCBhdmFpbGFibGUgb24gaW1wb3J0ZWQgQ2hhbm5lbCAke3RoaXMubm9kZS5wYXRofS4gVXNlIGEgY3JlYXRlZCBDaGFubmVsIG9yIHBhc3MgdGhlIFVSTHMgZGlyZWN0bHkuYCxcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxBcm4gPSBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiAnbWVkaWFwYWNrYWdldjInLFxuICAgICAgICByZXNvdXJjZTogYGNoYW5uZWxHcm91cC8ke2F0dHJzLmNoYW5uZWxHcm91cE5hbWV9L2NoYW5uZWxgLFxuICAgICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICAgICByZXNvdXJjZU5hbWU6IHRoaXMuY2hhbm5lbE5hbWUsXG4gICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNoYW5uZWxHcm91cE5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNoYW5uZWxOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjaGFubmVsQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBtb2RpZmllZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgaW5nZXN0RW5kcG9pbnRVcmxzOiBzdHJpbmdbXTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGlzIENoYW5uZWwgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgY2hhbm5lbFJlZigpOiBDaGFubmVsUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgY2hhbm5lbEFybjogdGhpcy5jaGFubmVsQXJuLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIHBvbGljeSBhc3NvY2lhdGVkIHdpdGggdGhpcyBjaGFubmVsLlxuICAgKlxuICAgKiBJZiBgYXV0b0NyZWF0ZVBvbGljeWAgaXMgdHJ1ZSwgYSBgQ2hhbm5lbFBvbGljeWAgd2lsbCBiZSBjcmVhdGVkIHVwb24gdGhlXG4gICAqIGZpcnN0IGNhbGwgdG8gYWRkVG9SZXNvdXJjZVBvbGljeShzKS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBwb2xpY3k/OiBDaGFubmVsUG9saWN5O1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSBjaGFubmVsIHJlc291cmNlIHBvbGljeSBzaG91bGQgYXV0b21hdGljYWxseSBjcmVhdGVkIHVwb25cbiAgICogdGhlIGZpcnN0IGNhbGwgdG8gYGFkZFRvUmVzb3VyY2VQb2xpY3lgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbGxlY3Rpb24gb2YgZ3JhbnQgbWV0aG9kcyBmb3IgdGhpcyBjaGFubmVsXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRzID0gQ2hhbm5lbEdyYW50cy5mcm9tQ2hhbm5lbCh0aGlzKTtcblxuICAvKipcbiAgICogQWRkIE9yaWdpbiBFbmRwb2ludCBmb3IgdGhpcyBDaGFubmVsLlxuICAgKi9cbiAgcHVibGljIGFkZE9yaWdpbkVuZHBvaW50KGlkOiBzdHJpbmcsIG9wdGlvbnM6IE9yaWdpbkVuZHBvaW50T3B0aW9ucyk6IE9yaWdpbkVuZHBvaW50IHtcbiAgICByZXR1cm4gbmV3IE9yaWdpbkVuZHBvaW50KHRoaXMsIGlkLCB7XG4gICAgICBjaGFubmVsOiB0aGlzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgY2hhbm5lbCBwb2xpY3kuXG4gICAqXG4gICAqIFlvdSBjYW4gb25seSBhZGQgMSBDaGFubmVsUG9saWN5IHRvIGEgQ2hhbm5lbC5cbiAgICogSWYgeW91IGhhdmUgYWxyZWFkeSBkZWZpbmVkIG9uZSwgZnVuY3Rpb24gd2lsbCBhcHBlbmQgdGhlIHBvbGljeSBhbHJlYWR5IGNyZWF0ZWQuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCk6IEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy5wb2xpY3kgJiYgdGhpcy5hdXRvQ3JlYXRlUG9saWN5KSB7XG4gICAgICB0aGlzLnBvbGljeSA9IG5ldyBDaGFubmVsUG9saWN5KHRoaXMsICdQb2xpY3knLCB7XG4gICAgICAgIGNoYW5uZWw6IHRoaXMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHMoc3RhdGVtZW50KTtcbiAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiB0aGlzLnBvbGljeSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiBmYWxzZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIENsb3VkV2F0Y2ggbWV0cmljLlxuICAgKlxuICAgKiBAcGFyYW0gbWV0cmljTmFtZSBuYW1lIG9mIHRoZSBtZXRyaWNcbiAgICogQHBhcmFtIG9wdGlvbnMgbWV0cmljIG9wdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgb3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWUsXG4gICAgICBuYW1lc3BhY2U6ICdBV1MvTWVkaWFQYWNrYWdlJyxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgQ2hhbm5lbEdyb3VwOiB0aGlzLmNoYW5uZWxHcm91cE5hbWUsXG4gICAgICAgIENoYW5uZWw6IHRoaXMuY2hhbm5lbE5hbWUsXG4gICAgICB9LFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KS5hdHRhY2hUbyh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgSW5ncmVzcyBCeXRlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIHN1bSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbmdyZXNzQnl0ZXMob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnSW5ncmVzc0J5dGVzJywge1xuICAgICAgc3RhdGlzdGljOiAnc3VtJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICB1bml0OiBVbml0LkJZVEVTLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgRWdyZXNzIEJ5dGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3VtIG92ZXIgNjAgc2Vjb25kc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY0VncmVzc0J5dGVzKG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0VncmVzc0J5dGVzJywge1xuICAgICAgc3RhdGlzdGljOiAnc3VtJyxcbiAgICAgIHBlcmlvZDogRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICB1bml0OiBVbml0LkJZVEVTLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgSW5ncmVzcyByZXNwb25zZSB0aW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXZlcmFnZSBvdmVyIDYwIHNlY29uZHNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbmdyZXNzUmVzcG9uc2VUaW1lKG9wdGlvbnM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0luZ3Jlc3NSZXNwb25zZVRpbWUnLCB7XG4gICAgICBzdGF0aXN0aWM6ICdhdmcnLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIHVuaXQ6IFVuaXQuTUlMTElTRUNPTkRTLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgRWdyZXNzIFJlc3BvbnNlIHRpbWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdmVyYWdlIG92ZXIgNjAgc2Vjb25kc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY0VncmVzc1Jlc3BvbnNlVGltZShvcHRpb25zPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdFZ3Jlc3NSZXNwb25zZVRpbWUnLCB7XG4gICAgICBzdGF0aXN0aWM6ICdhdmcnLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIHVuaXQ6IFVuaXQuTUlMTElTRUNPTkRTLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE1ldHJpYyBmb3IgSW5ncmVzcyBSZXF1ZXN0IENvdW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3VtIG92ZXIgNjAgc2Vjb25kc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY0luZ3Jlc3NSZXF1ZXN0Q291bnQob3B0aW9ucz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpYygnSW5ncmVzc1JlcXVlc3RDb3VudCcsIHtcbiAgICAgIHN0YXRpc3RpYzogJ3N1bScsXG4gICAgICBwZXJpb2Q6IER1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgdW5pdDogVW5pdC5DT1VOVCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBNZXRyaWMgZm9yIEVncmVzcyBSZXF1ZXN0IENvdW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc3VtIG92ZXIgNjAgc2Vjb25kc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY0VncmVzc1JlcXVlc3RDb3VudChvcHRpb25zPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdFZ3Jlc3NSZXF1ZXN0Q291bnQnLCB7XG4gICAgICBzdGF0aXN0aWM6ICdzdW0nLFxuICAgICAgcGVyaW9kOiBEdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIHVuaXQ6IFVuaXQuQ09VTlQsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogRGVmaW5lcyBhbiBBV1MgRWxlbWVudGFsIE1lZGlhUGFja2FnZSBWMiBDaGFubmVsXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBDaGFubmVsIGV4dGVuZHMgQ2hhbm5lbEJhc2UgaW1wbGVtZW50cyBJQ2hhbm5lbCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLW1lZGlhcGFja2FnZXYyLWFscGhhLkNoYW5uZWwnO1xuXG4gIHB1YmxpYyByZWFkb25seSBjaGFubmVsR3JvdXBOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjaGFubmVsTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbEFybjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2hhbm5lbEdyb3VwPzogSUNoYW5uZWxHcm91cDtcbiAgcHVibGljIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB0aGUgY2hhbm5lbCB3YXMgY3JlYXRlZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIGFuZCB0aW1lIHRoZSBjaGFubmVsIHdhcyBtb2RpZmllZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtb2RpZmllZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBpbmdlc3QgZW5kcG9pbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluZ2VzdEVuZHBvaW50VXJsczogc3RyaW5nW107XG5cbiAgcHVibGljIHBvbGljeT86IENoYW5uZWxQb2xpY3k7XG4gIHByb3RlY3RlZCBhdXRvQ3JlYXRlUG9saWN5ID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2hhbm5lbFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzPy5jaGFubmVsTmFtZSA/PyBMYXp5LnN0cmluZyh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgICAgbWF4TGVuZ3RoOiAyNTYsXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgfSk7XG4gICAgLy8gRW5oYW5jZWQgQ0RLIEFuYWx5dGljcyBUZWxlbWV0cnlcbiAgICBhZGRDb25zdHJ1Y3RNZXRhZGF0YSh0aGlzLCBwcm9wcyk7XG5cbiAgICAvLyBWYWxpZGF0ZSBjaGFubmVsTmFtZSBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5jaGFubmVsTmFtZSAhPSBudWxsICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuY2hhbm5lbE5hbWUpKSB7XG4gICAgICBpZiAocHJvcHMuY2hhbm5lbE5hbWUubGVuZ3RoIDwgMSB8fCBwcm9wcy5jaGFubmVsTmFtZS5sZW5ndGggPiAyNTYpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgQ2hhbm5lbE5hbWVMZW5ndGhgLCAnQ2hhbm5lbCBuYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAyNTYgY2hhcmFjdGVycyBpbiBsZW5ndGguJywgdGhpcyk7XG4gICAgICB9XG4gICAgICBpZiAoIXByb3BzLmNoYW5uZWxOYW1lLm1hdGNoKC9eW2EtekEtWjAtOV8tXSskLykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihsaXRgQ2hhbm5lbE5hbWVQYXR0ZXJuYCwgJ0NoYW5uZWwgbmFtZSBtdXN0IG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycywgaHlwaGVucywgYW5kIHVuZGVyc2NvcmVzLicsIHRoaXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIGRlc2NyaXB0aW9uIGlmIHByb3ZpZGVkXG4gICAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZGVzY3JpcHRpb24pICYmIHByb3BzLmRlc2NyaXB0aW9uLmxlbmd0aCA+IDEwMjQpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IobGl0YENoYW5uZWxEZXNjcmlwdGlvbkxlbmd0aGAsICdDaGFubmVsIGRlc2NyaXB0aW9uIG11c3Qgbm90IGV4Y2VlZCAxMDI0IGNoYXJhY3RlcnMuJywgdGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCB0byBDTUFGIGlmIG5vIGlucHV0IGNvbmZpZ3VyYXRpb24gcHJvdmlkZWRcbiAgICBjb25zdCBpbnB1dENvbmZpZyA9IHByb3BzLmlucHV0ID8/IElucHV0Q29uZmlndXJhdGlvbi5jbWFmKCk7XG5cbiAgICBjb25zdCBjaGFubmVsID0gbmV3IENmbkNoYW5uZWwodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2hhbm5lbE5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgICAgY2hhbm5lbEdyb3VwTmFtZTogcHJvcHMuY2hhbm5lbEdyb3VwLmNoYW5uZWxHcm91cE5hbWUsXG4gICAgICBpbnB1dFR5cGU6IGlucHV0Q29uZmlnLmlucHV0VHlwZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGlucHV0U3dpdGNoQ29uZmlndXJhdGlvbjogaW5wdXRDb25maWcuaW5wdXRTd2l0Y2hDb25maWd1cmF0aW9uLFxuICAgICAgdGFnczogcHJvcHM/LnRhZ3MgPyByZW5kZXJUYWdzKHByb3BzLnRhZ3MpIDogdW5kZWZpbmVkLFxuICAgICAgb3V0cHV0SGVhZGVyQ29uZmlndXJhdGlvbjogaW5wdXRDb25maWcub3V0cHV0SGVhZGVycyAmJiBpbnB1dENvbmZpZy5vdXRwdXRIZWFkZXJzLmxlbmd0aCA+IDAgPyB7XG4gICAgICAgIHB1Ymxpc2hNcWNzOiBpbnB1dENvbmZpZy5vdXRwdXRIZWFkZXJzPy5zb21lKGggPT4gaC52YWx1ZSA9PT0gSGVhZGVyc0NNU0QuTVFDUy52YWx1ZSksXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jaGFubmVsR3JvdXAgPSBwcm9wcy5jaGFubmVsR3JvdXA7XG4gICAgdGhpcy5jaGFubmVsR3JvdXBOYW1lID0gY2hhbm5lbC5jaGFubmVsR3JvdXBOYW1lO1xuICAgIHRoaXMuY2hhbm5lbE5hbWUgPSBjaGFubmVsLmNoYW5uZWxOYW1lO1xuICAgIHRoaXMuY2hhbm5lbEFybiA9IGNoYW5uZWwuYXR0ckFybjtcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IGNoYW5uZWwuYXR0ckNyZWF0ZWRBdDtcbiAgICB0aGlzLm1vZGlmaWVkQXQgPSBjaGFubmVsLmF0dHJNb2RpZmllZEF0O1xuICAgIHRoaXMucmVnaW9uID0gU3RhY2sub2YodGhpcykucmVnaW9uO1xuICAgIHRoaXMuaW5nZXN0RW5kcG9pbnRVcmxzID0gW0ZuLnNlbGVjdCgwLCBjaGFubmVsLmF0dHJJbmdlc3RFbmRwb2ludFVybHMpLCBGbi5zZWxlY3QoMSwgY2hhbm5lbC5hdHRySW5nZXN0RW5kcG9pbnRVcmxzKV07XG5cbiAgICBjaGFubmVsLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcz8ucmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LkRFU1RST1kpO1xuXG4gICAgLy8gVGhlIGNoYW5uZWxHcm91cE5hbWUgaXMgcmVuZGVyZWQgYXMgYSBsaXRlcmFsIHN0cmluZyAobm90IGEgQ0ZOIFJlZiksIHNvIENsb3VkRm9ybWF0aW9uXG4gICAgLy8gY2Fubm90IGluZmVyIHRoZSBkZXBlbmRlbmN5LiBXZSBhZGQgYSBkaXJlY3QgQ2ZuUmVzb3VyY2UtbGV2ZWwgRGVwZW5kc09uIHRvIGd1YXJhbnRlZVxuICAgIC8vIGRlcGxveSBvcmRlcmluZyB3aXRob3V0IHRyaWdnZXJpbmcgQ0RLJ3Mgc3VidHJlZS1sZXZlbCBjeWNsZSBkZXRlY3Rpb24uXG4gICAgLy8gRm9yIGltcG9ydGVkIGNvbnN0cnVjdHMsIGRlZmF1bHRDaGlsZCBpcyB1bmRlZmluZWQgKG5vIENGTiByZXNvdXJjZSB0byBvcmRlciBhZ2FpbnN0KS5cbiAgICBjb25zdCBncm91cENmbiA9IHByb3BzLmNoYW5uZWxHcm91cC5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5SZXNvdXJjZSB8IHVuZGVmaW5lZDtcbiAgICBpZiAoZ3JvdXBDZm4gJiYgQ2ZuUmVzb3VyY2UuaXNDZm5SZXNvdXJjZShncm91cENmbikpIHtcbiAgICAgIGNoYW5uZWwuYWRkUmVzb3VyY2VEZXBlbmRlbmN5KGdyb3VwQ2ZuKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -67,7 +67,7 @@ const helpers_internal_1 = require("aws-cdk-lib/core/lib/helpers-internal");
67
67
  * @see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-mediapackage.html
68
68
  */
69
69
  class MediaPackageV2Origin extends cloudfront.OriginBase {
70
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.MediaPackageV2Origin", version: "2.260.0-alpha.0" };
70
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-mediapackagev2-alpha.MediaPackageV2Origin", version: "2.262.0-alpha.0" };
71
71
  originAccessControl;
72
72
  endpoint;
73
73
  constructor(endpoint, props) {