@aws-cdk/aws-glue-alpha 2.269.0-alpha.0 → 2.271.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/lib/connection.js CHANGED
@@ -85,7 +85,7 @@ const secret_detection_1 = require("./private/secret-detection");
85
85
  * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-connection-connectioninput.html#cfn-glue-connection-connectioninput-connectiontype
86
86
  */
87
87
  class ConnectionType {
88
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionType", version: "2.269.0-alpha.0" };
88
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionType", version: "2.271.0-alpha.0" };
89
89
  /**
90
90
  * Designates a connection to a database through Java Database Connectivity (JDBC).
91
91
  */
@@ -253,12 +253,30 @@ class ConnectionType {
253
253
  */
254
254
  name;
255
255
  constructor(name) {
256
+ try {
257
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ConnectionType", "");
258
+ }
259
+ catch (error) {
260
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
261
+ Error.captureStackTrace(error, ConnectionType);
262
+ }
263
+ throw error;
264
+ }
256
265
  this.name = name;
257
266
  }
258
267
  /**
259
268
  * The connection type name as expected by Connection resource.
260
269
  */
261
270
  toString() {
271
+ try {
272
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ConnectionType#toString", "");
273
+ }
274
+ catch (error) {
275
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
276
+ Error.captureStackTrace(error, this.toString);
277
+ }
278
+ throw error;
279
+ }
262
280
  return this.name;
263
281
  }
264
282
  }
@@ -272,13 +290,22 @@ exports.ConnectionType = ConnectionType;
272
290
  * cannot be expressed.
273
291
  */
274
292
  class ConnectionNetwork {
275
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionNetwork", version: "2.269.0-alpha.0" };
293
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ConnectionNetwork", version: "2.271.0-alpha.0" };
276
294
  /**
277
295
  * Pin the connection to a specific subnet.
278
296
  *
279
297
  * @param subnet the subnet the connection targets.
280
298
  */
281
299
  static subnet(subnet) {
300
+ try {
301
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ConnectionNetwork#subnet", "");
302
+ }
303
+ catch (error) {
304
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
305
+ Error.captureStackTrace(error, this.subnet);
306
+ }
307
+ throw error;
308
+ }
282
309
  return new ConnectionNetwork(subnet, undefined, undefined);
283
310
  }
284
311
  /**
@@ -290,6 +317,15 @@ class ConnectionNetwork {
290
317
  * @default vpcSubnets - private subnets
291
318
  */
292
319
  static vpc(vpc, vpcSubnets) {
320
+ try {
321
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ConnectionNetwork#vpc", "");
322
+ }
323
+ catch (error) {
324
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
325
+ Error.captureStackTrace(error, this.vpc);
326
+ }
327
+ throw error;
328
+ }
293
329
  return new ConnectionNetwork(undefined, vpc, vpcSubnets);
294
330
  }
295
331
  /** @internal */
@@ -351,7 +387,7 @@ let Connection = (() => {
351
387
  Connection = _classThis = _classDescriptor.value;
352
388
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
353
389
  }
354
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Connection", version: "2.269.0-alpha.0" };
390
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.Connection", version: "2.271.0-alpha.0" };
355
391
  /** Uniquely identifies this class. */
356
392
  static PROPERTY_INJECTION_ID = '@aws-cdk.aws-glue-alpha.Connection';
357
393
  /**
@@ -362,6 +398,15 @@ let Connection = (() => {
362
398
  * @param connectionArn arn of external connection.
363
399
  */
364
400
  static fromConnectionArn(scope, id, connectionArn) {
401
+ try {
402
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Connection#fromConnectionArn", "");
403
+ }
404
+ catch (error) {
405
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
406
+ Error.captureStackTrace(error, this.fromConnectionArn);
407
+ }
408
+ throw error;
409
+ }
365
410
  class Import extends cdk.Resource {
366
411
  connectionName = cdk.Arn.extractResourceName(connectionArn, 'connection');
367
412
  connectionArn = connectionArn;
@@ -376,6 +421,15 @@ let Connection = (() => {
376
421
  * @param connectionName name of external connection.
377
422
  */
378
423
  static fromConnectionName(scope, id, connectionName) {
424
+ try {
425
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Connection#fromConnectionName", "");
426
+ }
427
+ catch (error) {
428
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
429
+ Error.captureStackTrace(error, this.fromConnectionName);
430
+ }
431
+ throw error;
432
+ }
379
433
  class Import extends cdk.Resource {
380
434
  connectionName = connectionName;
381
435
  connectionArn = Connection.buildConnectionArn(scope, connectionName);
@@ -396,6 +450,7 @@ let Connection = (() => {
396
450
  physicalName: props.connectionName,
397
451
  });
398
452
  try {
453
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Connection", "");
399
454
  jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_ConnectionProps(props);
400
455
  }
401
456
  catch (error) {
@@ -447,12 +502,30 @@ let Connection = (() => {
447
502
  * The name of the connection
448
503
  */
449
504
  get connectionName() {
505
+ try {
506
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Connection#connectionName", "");
507
+ }
508
+ catch (error) {
509
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
510
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "connectionName").get);
511
+ }
512
+ throw error;
513
+ }
450
514
  return this.getResourceNameAttribute(this.resource.ref);
451
515
  }
452
516
  /**
453
517
  * The ARN of the connection
454
518
  */
455
519
  get connectionArn() {
520
+ try {
521
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Connection#connectionArn", "");
522
+ }
523
+ catch (error) {
524
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
525
+ Error.captureStackTrace(error, jsiiDeprecationWarnings.getPropertyDescriptor(this, "connectionArn").get);
526
+ }
527
+ throw error;
528
+ }
456
529
  return Connection.buildConnectionArn(this, this.connectionName);
457
530
  }
458
531
  /**
@@ -461,6 +534,15 @@ let Connection = (() => {
461
534
  * @param value parameter value
462
535
  */
463
536
  addProperty(key, value) {
537
+ try {
538
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.Connection#addProperty", "");
539
+ }
540
+ catch (error) {
541
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
542
+ Error.captureStackTrace(error, this.addProperty);
543
+ }
544
+ throw error;
545
+ }
464
546
  this.properties[key] = value;
465
547
  }
466
548
  static {
@@ -470,4 +552,4 @@ let Connection = (() => {
470
552
  return Connection = _classThis;
471
553
  })();
472
554
  exports.Connection = Connection;
473
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbURBQXFEO0FBRXJELHNEQUF3QztBQUN4Qyw0RUFBNEU7QUFDNUUsOEVBQThGO0FBQzlGLDBFQUEwRTtBQUUxRSxpRUFBb0U7QUFFcEU7Ozs7Ozs7R0FPRztBQUNILE1BQWEsY0FBYzs7SUFDekI7O09BRUc7SUFDSSxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpEOztPQUVHO0lBQ0ksTUFBTSxDQUFVLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUzRDs7T0FFRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0Q7O09BRUc7SUFDSSxNQUFNLENBQVUsd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUVqRzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRTdGOztPQUVHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvRDs7O09BR0c7SUFDSSxNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXZFOzs7T0FHRztJQUNJLE1BQU0sQ0FBVSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0Q7O09BRUc7SUFDSSxNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lB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LEVBQUUsS0FBYTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUM5Qjs7WUE3SFUsdURBQVU7Ozs7O0FBQVYsZ0NBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IENmbkNvbm5lY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZ2x1ZSc7XG5pbXBvcnQgdHlwZSB7IElTZWNyZXRSZWYgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgbGl0LCBtZW1vaXplZEdldHRlciB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL2hlbHBlcnMtaW50ZXJuYWwnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEsIE1ldGhvZE1ldGFkYXRhIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvbWV0YWRhdGEtcmVzb3VyY2UnO1xuaW1wb3J0IHsgcHJvcGVydHlJbmplY3RhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZS9saWIvcHJvcC1pbmplY3RhYmxlJztcbmltcG9ydCB0eXBlICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IHdhcm5PblBsYWludGV4dFNlY3JldHMgfSBmcm9tICcuL3ByaXZhdGUvc2VjcmV0LWRldGVjdGlvbic7XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIGdsdWUgY29ubmVjdGlvblxuICpcbiAqIElmIHlvdSBuZWVkIHRvIHVzZSBhIGNvbm5lY3Rpb24gdHlwZSB0aGF0IGRvZXNuJ3QgZXhpc3QgYXMgYSBzdGF0aWMgbWVtYmVyLCB5b3VcbiAqIGNhbiBpbnN0YW50aWF0ZSBhIGBDb25uZWN0aW9uVHlwZWAgb2JqZWN0LCBlLmc6IGBuZXcgQ29ubmVjdGlvblR5cGUoJ05FV19UWVBFJylgLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZ2x1ZS1jb25uZWN0aW9uLWNvbm5lY3Rpb25pbnB1dC5odG1sI2Nmbi1nbHVlLWNvbm5lY3Rpb24tY29ubmVjdGlvbmlucHV0LWNvbm5lY3Rpb250eXBlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uVHlwZSB7XG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBhIGRhdGFiYXNlIHRocm91Z2ggSmF2YSBEYXRhYmFzZSBDb25uZWN0aXZpdHkgKEpEQkMpLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBKREJDID0gbmV3IENvbm5lY3Rpb25UeXBlKCdKREJDJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIGFuIEFwYWNoZSBLYWZrYSBzdHJlYW1pbmcgcGxhdGZvcm0uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEtBRktBID0gbmV3IENvbm5lY3Rpb25UeXBlKCdLQUZLQScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBhIE1vbmdvREIgZG9jdW1lbnQgZGF0YWJhc2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1PTkdPREIgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ01PTkdPREInKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdXNlZCBmb3IgdmlldyB2YWxpZGF0aW9uIGJ5IEFtYXpvbiBSZWRzaGlmdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVklFV19WQUxJREFUSU9OX1JFRFNISUZUID0gbmV3IENvbm5lY3Rpb25UeXBlKCdWSUVXX1ZBTElEQVRJT05fUkVEU0hJRlQnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdXNlZCBmb3IgdmlldyB2YWxpZGF0aW9uIGJ5IEFtYXpvbiBBdGhlbmEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFZJRVdfVkFMSURBVElPTl9BVEhFTkEgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1ZJRVdfVkFMSURBVElPTl9BVEhFTkEnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIG5ldHdvcmsgY29ubmVjdGlvbiB0byBhIGRhdGEgc291cmNlIHdpdGhpbiBhbiBBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIGVudmlyb25tZW50IChBbWF6b24gVlBDKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkVUV09SSyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnTkVUV09SSycpO1xuXG4gIC8qKlxuICAgKiBVc2VzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgY29udGFpbmVkIGluIGEgY29ubmVjdG9yIHB1cmNoYXNlZCBmcm9tIEFXUyBNYXJrZXRwbGFjZVxuICAgKiB0byByZWFkIGZyb20gYW5kIHdyaXRlIHRvIGRhdGEgc3RvcmVzIHRoYXQgYXJlIG5vdCBuYXRpdmVseSBzdXBwb3J0ZWQgYnkgQVdTIEdsdWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1BUktFVFBMQUNFID0gbmV3IENvbm5lY3Rpb25UeXBlKCdNQVJLRVRQTEFDRScpO1xuXG4gIC8qKlxuICAgKiBVc2VzIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgY29udGFpbmVkIGluIGEgY3VzdG9tIGNvbm5lY3RvciB0byByZWFkIGZyb20gYW5kIHdyaXRlIHRvIGRhdGEgc3RvcmVzXG4gICAqIHRoYXQgYXJlIG5vdCBuYXRpdmVseSBzdXBwb3J0ZWQgYnkgQVdTIEdsdWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENVU1RPTSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnQ1VTVE9NJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEZhY2Vib29rIEFkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRkFDRUJPT0tBRFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0ZBQ0VCT09LQURTJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEdvb2dsZSBBZHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdPT0dMRUFEUyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnR09PR0xFQURTJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEdvb2dsZSBTaGVldHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdPT0dMRVNIRUVUUyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnR09PR0xFU0hFRVRTJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEdvb2dsZSBBbmFseXRpY3MgNC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR09PR0xFQU5BTFlUSUNTNCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnR09PR0xFQU5BTFlUSUNTNCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBIdWJTcG90LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBIVUJTUE9UID0gbmV3IENvbm5lY3Rpb25UeXBlKCdIVUJTUE9UJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEluc3RhZ3JhbSBBZHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOU1RBR1JBTUFEUyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSU5TVEFHUkFNQURTJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEludGVyY29tLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlRFUkNPTSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSU5URVJDT00nKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gSmlyYSBDbG91ZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSklSQUNMT1VEID0gbmV3IENvbm5lY3Rpb25UeXBlKCdKSVJBQ0xPVUQnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gQWRvYmUgTWFya2V0byBFbmdhZ2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1BUktFVE8gPSBuZXcgQ29ubmVjdGlvblR5cGUoJ01BUktFVE8nKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gT3JhY2xlIE5ldFN1aXRlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBORVRTVUlURUVSUCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnTkVUU1VJVEVFUlAnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU2FsZXNmb3JjZSB1c2luZyBPQXV0aCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0FMRVNGT1JDRSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0FMRVNGT1JDRScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTYWxlc2ZvcmNlIE1hcmtldGluZyBDbG91ZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0FMRVNGT1JDRU1BUktFVElOR0NMT1VEID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTQUxFU0ZPUkNFTUFSS0VUSU5HQ0xPVUQnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU2FsZXNmb3JjZSBNYXJrZXRpbmcgQ2xvdWQgQWNjb3VudCBFbmdhZ2VtZW50IChNQ0FFKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0FMRVNGT1JDRVBBUkRPVCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0FMRVNGT1JDRVBBUkRPVCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTQVAgT0RhdGEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBUE9EQVRBID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTQVBPREFUQScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTZXJ2aWNlTm93LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRVJWSUNFTk9XID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTRVJWSUNFTk9XJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNsYWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTTEFDSyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0xBQ0snKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU25hcGNoYXQgQWRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTTkFQQ0hBVEFEUyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU05BUENIQVRBRFMnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU3RyaXBlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTVFJJUEUgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NUUklQRScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBaZW5kZXNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBaRU5ERVNLID0gbmV3IENvbm5lY3Rpb25UeXBlKCdaRU5ERVNLJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFpvaG8gQ1JNLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBaT0hPQ1JNID0gbmV3IENvbm5lY3Rpb25UeXBlKCdaT0hPQ1JNJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEdvb2dsZSBCaWdRdWVyeS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQklHUVVFUlkgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0JJR1FVRVJZJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEF6dXJlIFNRTCBEYXRhYmFzZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVpVUkVTUUwgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0FaVVJFU1FMJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEF6dXJlIENvc21vcyBEQi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVpVUkVDT1NNT1MgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0FaVVJFQ09TTU9TJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEFtYXpvbiBPcGVuU2VhcmNoIFNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9QRU5TRUFSQ0ggPSBuZXcgQ29ubmVjdGlvblR5cGUoJ09QRU5TRUFSQ0gnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gTXlTUUwuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE1ZU1FMID0gbmV3IENvbm5lY3Rpb25UeXBlKCdNWVNRTCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBQb3N0Z3JlU1FMLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQT1NUR1JFU1FMID0gbmV3IENvbm5lY3Rpb25UeXBlKCdQT1NUR1JFU1FMJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIE9yYWNsZSBEYXRhYmFzZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JBQ0xFID0gbmV3IENvbm5lY3Rpb25UeXBlKCdPUkFDTEUnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gTWljcm9zb2Z0IFNRTCBTZXJ2ZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNRTFNFUlZFUiA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU1FMU0VSVkVSJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNBUCBIQU5BLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQVBIQU5BID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTQVBIQU5BJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFRlcmFkYXRhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBURVJBREFUQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnVEVSQURBVEEnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gVmVydGljYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVkVSVElDQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnVkVSVElDQScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBBbWF6b24gRHluYW1vREIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERZTkFNT0RCID0gbmV3IENvbm5lY3Rpb25UeXBlKCdEWU5BTU9EQicpO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGlzIENvbm5lY3Rpb25UeXBlLCBhcyBleHBlY3RlZCBieSBDb25uZWN0aW9uIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb25uZWN0aW9uIHR5cGUgbmFtZSBhcyBleHBlY3RlZCBieSBDb25uZWN0aW9uIHJlc291cmNlLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBjcmVhdGVkIG9yIGFuIGltcG9ydGVkIGBDb25uZWN0aW9uYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25uZWN0aW9uIGV4dGVuZHMgY2RrLklSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29ubmVjdGlvblxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBWUEMgbmV0d29yayBwbGFjZW1lbnQgZm9yIGEgR2x1ZSBgQ29ubmVjdGlvbmAuXG4gKlxuICogQSBHbHVlIGNvbm5lY3Rpb24gdGFyZ2V0cyBhIHNpbmdsZSBzdWJuZXQuIENob29zZSB0aGUgcGxhY2VtZW50IHdpdGggb25lIG9mXG4gKiB0aGUgbXV0dWFsbHktZXhjbHVzaXZlIGZhY3RvcmllcyDigJQgYW4gZXhwbGljaXQgc3VibmV0LCBvciBhIFZQQyB0byBzZWxlY3Qgb25lXG4gKiBmcm9tIOKAlCBzbyBhIHN1Ym5ldCBwYWlyZWQgd2l0aCBhIFZQQywgb3IgYSBzdWJuZXQgc2VsZWN0aW9uIHdpdGhvdXQgYSBWUEMsXG4gKiBjYW5ub3QgYmUgZXhwcmVzc2VkLlxuICovXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbk5ldHdvcmsge1xuICAvKipcbiAgICogUGluIHRoZSBjb25uZWN0aW9uIHRvIGEgc3BlY2lmaWMgc3VibmV0LlxuICAgKlxuICAgKiBAcGFyYW0gc3VibmV0IHRoZSBzdWJuZXQgdGhlIGNvbm5lY3Rpb24gdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3VibmV0KHN1Ym5ldDogZWMyLklTdWJuZXQpOiBDb25uZWN0aW9uTmV0d29yayB7XG4gICAgcmV0dXJuIG5ldyBDb25uZWN0aW9uTmV0d29yayhzdWJuZXQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIGNvbm5lY3Rpb24ncyBzdWJuZXQgZnJvbSBhIFZQQy4gU2luY2UgYSBHbHVlIGNvbm5lY3Rpb24gdGFyZ2V0c1xuICAgKiBhIHNpbmdsZSBzdWJuZXQsIHRoZSBmaXJzdCBzdWJuZXQgb2YgdGhlIHNlbGVjdGlvbiBpcyB1c2VkLlxuICAgKlxuICAgKiBAcGFyYW0gdnBjIHRoZSBWUEMgdG8gc2VsZWN0IGEgc3VibmV0IGZyb20uXG4gICAqIEBwYXJhbSB2cGNTdWJuZXRzIHdoaWNoIHN1Ym5ldHMgdG8gc2VsZWN0IGZyb20uXG4gICAqIEBkZWZhdWx0IHZwY1N1Ym5ldHMgLSBwcml2YXRlIHN1Ym5ldHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdnBjKHZwYzogZWMyLklWcGMsIHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uKTogQ29ubmVjdGlvbk5ldHdvcmsge1xuICAgIHJldHVybiBuZXcgQ29ubmVjdGlvbk5ldHdvcmsodW5kZWZpbmVkLCB2cGMsIHZwY1N1Ym5ldHMpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgX3N1Ym5ldD86IGVjMi5JU3VibmV0O1xuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyByZWFkb25seSBfdnBjPzogZWMyLklWcGM7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIHJlYWRvbmx5IF92cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHN1Ym5ldD86IGVjMi5JU3VibmV0LCB2cGM/OiBlYzIuSVZwYywgdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb24pIHtcbiAgICB0aGlzLl9zdWJuZXQgPSBzdWJuZXQ7XG4gICAgdGhpcy5fdnBjID0gdnBjO1xuICAgIHRoaXMuX3ZwY1N1Ym5ldHMgPSB2cGNTdWJuZXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIHNpbmdsZSBzdWJuZXQgdGhpcyBuZXR3b3JrIHRhcmdldHMuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIF9yZXNvbHZlU3VibmV0KHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCk6IGVjMi5JU3VibmV0IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5fc3VibmV0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3VibmV0O1xuICAgIH1cbiAgICAvLyBBIEdsdWUgY29ubmVjdGlvbiB0YXJnZXRzIGEgc2luZ2xlIHN1Ym5ldCwgc28gdXNlIHRoZSBmaXJzdCBzdWJuZXQgb2YgdGhlIHNlbGVjdGlvbi5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuX3ZwYyEuc2VsZWN0U3VibmV0cyh0aGlzLl92cGNTdWJuZXRzKTtcbiAgICAvLyBgaXNQZW5kaW5nTG9va3VwYCBpcyB0cnVlIGZvciBpbXBvcnRlZCBWUENzIHdob3NlIHN1Ym5ldHMgYXJlIG5vdCB5ZXRcbiAgICAvLyByZXNvbHZlZCAoZS5nLiBgZnJvbUxvb2t1cGApLCB3aGVyZSBhbiBlbXB0eSBzZWxlY3Rpb24gaXMgZXhwZWN0ZWQgYW5kXG4gICAgLy8gd2lsbCBtYXRlcmlhbGl6ZSBvbiBhIGxhdGVyIHN5bnRoLiBPbmx5IGZhaWwgb24gYSBnZW51aW5lbHkgZW1wdHkgc2VsZWN0aW9uLlxuICAgIGlmICghc2VsZWN0ZWQuaXNQZW5kaW5nTG9va3VwICYmIHNlbGVjdGVkLnN1Ym5ldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgY2RrLlZhbGlkYXRpb25FcnJvcihsaXRgQ29ubmVjdGlvbk5vU3VibmV0c1NlbGVjdGVkYCwgJ2B2cGNTdWJuZXRzYCBzZWxlY3RlZCBubyBzdWJuZXRzIGZyb20gdGhlIHByb3ZpZGVkIGB2cGNgOyBhZGp1c3QgdGhlIHNlbGVjdGlvbiBvciB1c2UgYENvbm5lY3Rpb25OZXR3b3JrLnN1Ym5ldCguLi4pYCB0byB0YXJnZXQgYSBzcGVjaWZpYyBzdWJuZXQnLCBzY29wZSk7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZC5zdWJuZXRzWzBdO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBDb25uZWN0aW9uIE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29ubmVjdGlvblxuICAgKiBAZGVmYXVsdCBjbG91ZGZvcm1hdGlvbiBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgY29ubmVjdGlvbi5cbiAgICogQGRlZmF1bHQgbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAgS2V5LVZhbHVlIHBhaXJzIHRoYXQgZGVmaW5lIHBhcmFtZXRlcnMgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKiAgQGRlZmF1bHQgZW1wdHkgcHJvcGVydGllc1xuICAgKiAgQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWNvbm5lY3QuaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIGEgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBob2xkaW5nIHRoZSBjcmVkZW50aWFscyBmb3IgdGhpcyBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBUaGUgc2VjcmV0IGlzIHJlZmVyZW5jZWQgdGhyb3VnaCB0aGUgY29ubmVjdGlvbidzIGBTRUNSRVRfSURgIHByb3BlcnR5LCBzb1xuICAgKiBHbHVlIHJlYWRzIHRoZSBjcmVkZW50aWFscyBhdCBydW50aW1lIGFuZCB0aGUgc2VjcmV0IHZhbHVlIG5ldmVyIGFwcGVhcnMgaW5cbiAgICogdGhlIHN5bnRoZXNpemVkIHRlbXBsYXRlLiBQcmVmZXIgdGhpcyBvdmVyIHBsYWNpbmcgY3JlZGVudGlhbHMgZGlyZWN0bHkgaW5cbiAgICogYHByb3BlcnRpZXNgLiBBY2NlcHRzIGFueSBgc2VjcmV0c21hbmFnZXIuSVNlY3JldGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc2VjcmV0OyBhbnkgY3JlZGVudGlhbHMgbXVzdCBiZSBzdXBwbGllZCB2aWEgYHByb3BlcnRpZXNgXG4gICAqL1xuICByZWFkb25seSBzZWNyZXQ/OiBJU2VjcmV0UmVmO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgY3JpdGVyaWEgdGhhdCBjYW4gYmUgdXNlZCBpbiBzZWxlY3RpbmcgdGhpcyBjb25uZWN0aW9uLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgZmlsdGVyaW5nIHRoZSByZXN1bHRzIG9mIGh0dHBzOi8vYXdzY2xpLmFtYXpvbmF3cy5jb20vdjIvZG9jdW1lbnRhdGlvbi9hcGkvbGF0ZXN0L3JlZmVyZW5jZS9nbHVlL2dldC1jb25uZWN0aW9ucy5odG1sXG4gICAqIEBkZWZhdWx0IG5vIG1hdGNoIGNyaXRlcmlhXG4gICAqL1xuICByZWFkb25seSBtYXRjaENyaXRlcmlhPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyBuZWVkZWQgdG8gc3VjY2Vzc2Z1bGx5IG1ha2UgdGhpcyBjb25uZWN0aW9uIGUuZy4gdG8gc3VjY2Vzc2Z1bGx5IGNvbm5lY3QgdG8gVlBDLlxuICAgKiBAZGVmYXVsdCBubyBzZWN1cml0eSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIFZQQyBuZXR3b3JrIHBsYWNlbWVudCBmb3IgdGhpcyBjb25uZWN0aW9uLCBzbyBpdCBjYW4gcmVhY2ggcmVzb3VyY2VzXG4gICAqIGluc2lkZSBhIFZQQy4gU2VlIG1vcmUgYXQgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL3N0YXJ0LWNvbm5lY3RpbmcuaHRtbC5cbiAgICpcbiAgICogQnVpbGQgaXQgd2l0aCBgQ29ubmVjdGlvbk5ldHdvcmsuc3VibmV0KHN1Ym5ldClgIHRvIHBpbiBhIHNwZWNpZmljIHN1Ym5ldCxcbiAgICogb3IgYENvbm5lY3Rpb25OZXR3b3JrLnZwYyh2cGMsIHZwY1N1Ym5ldHM/KWAgdG8gbGV0IHRoZSBDREsgc2VsZWN0IG9uZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBWUEMgbmV0d29yayBwbGFjZW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcms/OiBDb25uZWN0aW9uTmV0d29yaztcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3Rpb24gcHJvcGVydGllcyBmb3IgYENvbm5lY3Rpb25gXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgQ29ubmVjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIGNvbm5lY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IENvbm5lY3Rpb25UeXBlO1xufVxuXG4vKipcbiAqIEFuIEFXUyBHbHVlIGNvbm5lY3Rpb24gdG8gYSBkYXRhIHNvdXJjZS5cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb24gZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQ29ubmVjdGlvbiB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWdsdWUtYWxwaGEuQ29ubmVjdGlvbic7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb25uZWN0aW9uIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBpZC5cbiAgICogQHBhcmFtIGNvbm5lY3Rpb25Bcm4gYXJuIG9mIGV4dGVybmFsIGNvbm5lY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Db25uZWN0aW9uQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29ubmVjdGlvbkFybjogc3RyaW5nKTogSUNvbm5lY3Rpb24ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZSA9IGNkay5Bcm4uZXh0cmFjdFJlc291cmNlTmFtZShjb25uZWN0aW9uQXJuLCAnY29ubmVjdGlvbicpO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm4gPSBjb25uZWN0aW9uQXJuO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENvbm5lY3Rpb24gY29uc3RydWN0IHRoYXQgcmVwcmVzZW50cyBhbiBleHRlcm5hbCBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHNjb3BlIGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApLlxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIGlkLlxuICAgKiBAcGFyYW0gY29ubmVjdGlvbk5hbWUgbmFtZSBvZiBleHRlcm5hbCBjb25uZWN0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbk5hbWUoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBjb25uZWN0aW9uTmFtZTogc3RyaW5nKTogSUNvbm5lY3Rpb24ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZSA9IGNvbm5lY3Rpb25OYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm4gPSBDb25uZWN0aW9uLmJ1aWxkQ29ubmVjdGlvbkFybihzY29wZSwgY29ubmVjdGlvbk5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBidWlsZENvbm5lY3Rpb25Bcm4oc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBjb25uZWN0aW9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2RrLlN0YWNrLm9mKHNjb3BlKS5mb3JtYXRBcm4oe1xuICAgICAgc2VydmljZTogJ2dsdWUnLFxuICAgICAgcmVzb3VyY2U6ICdjb25uZWN0aW9uJyxcbiAgICAgIHJlc291cmNlTmFtZTogY29ubmVjdGlvbk5hbWUsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3BlcnRpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IENmbkNvbm5lY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29ubmVjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmNvbm5lY3Rpb25OYW1lLFxuICAgIH0pO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcHMucHJvcGVydGllcyB8fCB7fTtcblxuICAgIGNvbnN0IHN1Ym5ldCA9IHByb3BzLm5ldHdvcms/Ll9yZXNvbHZlU3VibmV0KHRoaXMpO1xuXG4gICAgY29uc3QgcGh5c2ljYWxDb25uZWN0aW9uUmVxdWlyZW1lbnRzID0gc3VibmV0IHx8IHByb3BzLnNlY3VyaXR5R3JvdXBzID8ge1xuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogc3VibmV0ID8gc3VibmV0LmF2YWlsYWJpbGl0eVpvbmUgOiB1bmRlZmluZWQsXG4gICAgICBzdWJuZXRJZDogc3VibmV0ID8gc3VibmV0LnN1Ym5ldElkIDogdW5kZWZpbmVkLFxuICAgICAgc2VjdXJpdHlHcm91cElkTGlzdDogcHJvcHMuc2VjdXJpdHlHcm91cHMgPyBwcm9wcy5zZWN1cml0eUdyb3Vwcy5tYXAoc2cgPT4gc2cuc2VjdXJpdHlHcm91cElkKSA6IHVuZGVmaW5lZCxcbiAgICB9IDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgc2VjcmV0SWQgPSBwcm9wcy5zZWNyZXQ/LnNlY3JldFJlZi5zZWNyZXRJZDtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQ2ZuQ29ubmVjdGlvbih0aGlzLCAnUmVzb3VyY2UnLCB7XG4gICAgICBjYXRhbG9nSWQ6IGNkay5TdGFjay5vZih0aGlzKS5hY2NvdW50LFxuICAgICAgY29ubmVjdGlvbklucHV0OiB7XG4gICAgICAgIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzOiBjZGsuTGF6eS5hbnkoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IHtcbiAgICAgICAgICAgIC8vIEluc3BlY3QgdGhlIGZpbmFsIHByb3BlcnR5IHNldCBhdCBzeW50aGVzaXMgdGltZSBzbyBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAvLyBhZGRlZCB2aWEgYGFkZFByb3BlcnR5YCBhcmUgY292ZXJlZCBhcyB3ZWxsIOKAlCBhIGBTRUNSRVRfSURgIGFkZGVkXG4gICAgICAgICAgICAvLyBhZnRlciBjb25zdHJ1Y3Rpb24gd291bGQgb3RoZXJ3aXNlIGJlIHNpbGVudGx5IG92ZXJ3cml0dGVuIGJ5IHRoZVxuICAgICAgICAgICAgLy8gb25lIGluamVjdGVkIGZyb20gYHNlY3JldGAuXG4gICAgICAgICAgICBpZiAoc2VjcmV0SWQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnByb3BlcnRpZXMuU0VDUkVUX0lEICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YENvbm5lY3Rpb25TZWNyZXRDb25mbGljdGAsICdjYW5ub3Qgc2V0IGJvdGggYHNlY3JldGAgYW5kIGEgYFNFQ1JFVF9JRGAgY29ubmVjdGlvbiBwcm9wZXJ0eScsIHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVGhlIGBTRUNSRVRfSURgIGluamVjdGVkIGZyb20gYHNlY3JldGAgaXMgYSByZWZlcmVuY2UsIG5vdCBhXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsLCBzbyBpdCBpcyBtZXJnZWQgaW4gYWZ0ZXIgdGhpcyBzY2FuLlxuICAgICAgICAgICAgd2Fybk9uUGxhaW50ZXh0U2VjcmV0cyhcbiAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAnQGF3cy1jZGsvYXdzLWdsdWUtYWxwaGE6cGxhaW50ZXh0Q29ubmVjdGlvblNlY3JldCcsXG4gICAgICAgICAgICAgICdQYXNzIGEgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB2aWEgdGhlIGNvbm5lY3Rpb25cXCdzIGBzZWNyZXRgIHByb3BlcnR5IGluc3RlYWQuJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gc2VjcmV0SWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHsgLi4udGhpcy5wcm9wZXJ0aWVzLCBTRUNSRVRfSUQ6IHNlY3JldElkIH1cbiAgICAgICAgICAgICAgOiB0aGlzLnByb3BlcnRpZXM7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocHJvcGVydGllcykubGVuZ3RoID4gMCA/IHByb3BlcnRpZXMgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIGNvbm5lY3Rpb25UeXBlOiBwcm9wcy50eXBlLm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgbWF0Y2hDcml0ZXJpYTogcHJvcHMubWF0Y2hDcml0ZXJpYSxcbiAgICAgICAgbmFtZTogcHJvcHMuY29ubmVjdGlvbk5hbWUsXG4gICAgICAgIHBoeXNpY2FsQ29ubmVjdGlvblJlcXVpcmVtZW50cyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb25cbiAgICovXG4gIEBtZW1vaXplZEdldHRlclxuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25OYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVzb3VyY2VOYW1lQXR0cmlidXRlKHRoaXMucmVzb3VyY2UucmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBjb25uZWN0aW9uQXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIENvbm5lY3Rpb24uYnVpbGRDb25uZWN0aW9uQXJuKHRoaXMsIHRoaXMuY29ubmVjdGlvbk5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhZGRpdGlvbmFsIGNvbm5lY3Rpb24gcGFyYW1ldGVyc1xuICAgKiBAcGFyYW0ga2V5IHBhcmFtZXRlciBrZXlcbiAgICogQHBhcmFtIHZhbHVlIHBhcmFtZXRlciB2YWx1ZVxuICAgKi9cbiAgQE1ldGhvZE1ldGFkYXRhKClcbiAgcHVibGljIGFkZFByb3BlcnR5KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzW2tleV0gPSB2YWx1ZTtcbiAgfVxufVxuIl19
555
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbURBQXFEO0FBRXJELHNEQUF3QztBQUN4Qyw0RUFBNEU7QUFDNUUsOEVBQThGO0FBQzlGLDBFQUEwRTtBQUUxRSxpRUFBb0U7QUFFcEU7Ozs7Ozs7R0FPRztBQUNILE1BQWEsY0FBYzs7SUFDekI7O09BRUc7SUFDSSxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpEOztPQUVHO0lBQ0ksTUFBTSxDQUFVLEtBQUssR0FBRyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUUzRDs7T0FFRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0Q7O09BRUc7SUFDSSxNQUFNLENBQVUsd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUVqRzs7T0FFRztJQUNJLE1BQU0sQ0FBVSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRTdGOztPQUVHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUUvRDs7O09BR0c7SUFDSSxNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXZFOzs7T0FHRztJQUNJLE1BQU0sQ0FBVSxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFN0Q7O09BRUc7SUFDSSxNQUFNLENBQVUsV0FBVyxHQUFHLElBQUksY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lB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a0JBQWtCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUVEOzs7O1dBSUc7UUFFSSxXQUFXLENBQUMsR0FBVyxFQUFFLEtBQWE7Ozs7Ozs7Ozs7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDOUI7O1lBN0hVLHVEQUFVOzs7OztBQUFWLGdDQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBDZm5Db25uZWN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWdsdWUnO1xuaW1wb3J0IHR5cGUgeyBJU2VjcmV0UmVmIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYi9jb3JlJztcbmltcG9ydCB7IGxpdCwgbWVtb2l6ZWRHZXR0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9oZWxwZXJzLWludGVybmFsJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgdHlwZSAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyB3YXJuT25QbGFpbnRleHRTZWNyZXRzIH0gZnJvbSAnLi9wcml2YXRlL3NlY3JldC1kZXRlY3Rpb24nO1xuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHRoZSBnbHVlIGNvbm5lY3Rpb25cbiAqXG4gKiBJZiB5b3UgbmVlZCB0byB1c2UgYSBjb25uZWN0aW9uIHR5cGUgdGhhdCBkb2Vzbid0IGV4aXN0IGFzIGEgc3RhdGljIG1lbWJlciwgeW91XG4gKiBjYW4gaW5zdGFudGlhdGUgYSBgQ29ubmVjdGlvblR5cGVgIG9iamVjdCwgZS5nOiBgbmV3IENvbm5lY3Rpb25UeXBlKCdORVdfVFlQRScpYC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWdsdWUtY29ubmVjdGlvbi1jb25uZWN0aW9uaW5wdXQuaHRtbCNjZm4tZ2x1ZS1jb25uZWN0aW9uLWNvbm5lY3Rpb25pbnB1dC1jb25uZWN0aW9udHlwZVxuICovXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvblR5cGUge1xuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gYSBkYXRhYmFzZSB0aHJvdWdoIEphdmEgRGF0YWJhc2UgQ29ubmVjdGl2aXR5IChKREJDKS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSkRCQyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSkRCQycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBhbiBBcGFjaGUgS2Fma2Egc3RyZWFtaW5nIHBsYXRmb3JtLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBLQUZLQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnS0FGS0EnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gYSBNb25nb0RCIGRvY3VtZW50IGRhdGFiYXNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNT05HT0RCID0gbmV3IENvbm5lY3Rpb25UeXBlKCdNT05HT0RCJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHVzZWQgZm9yIHZpZXcgdmFsaWRhdGlvbiBieSBBbWF6b24gUmVkc2hpZnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFZJRVdfVkFMSURBVElPTl9SRURTSElGVCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnVklFV19WQUxJREFUSU9OX1JFRFNISUZUJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHVzZWQgZm9yIHZpZXcgdmFsaWRhdGlvbiBieSBBbWF6b24gQXRoZW5hLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWSUVXX1ZBTElEQVRJT05fQVRIRU5BID0gbmV3IENvbm5lY3Rpb25UeXBlKCdWSUVXX1ZBTElEQVRJT05fQVRIRU5BJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBuZXR3b3JrIGNvbm5lY3Rpb24gdG8gYSBkYXRhIHNvdXJjZSB3aXRoaW4gYW4gQW1hem9uIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCBlbnZpcm9ubWVudCAoQW1hem9uIFZQQykuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE5FVFdPUksgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ05FVFdPUksnKTtcblxuICAvKipcbiAgICogVXNlcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGNvbnRhaW5lZCBpbiBhIGNvbm5lY3RvciBwdXJjaGFzZWQgZnJvbSBBV1MgTWFya2V0cGxhY2VcbiAgICogdG8gcmVhZCBmcm9tIGFuZCB3cml0ZSB0byBkYXRhIHN0b3JlcyB0aGF0IGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IEFXUyBHbHVlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVJLRVRQTEFDRSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnTUFSS0VUUExBQ0UnKTtcblxuICAvKipcbiAgICogVXNlcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGNvbnRhaW5lZCBpbiBhIGN1c3RvbSBjb25uZWN0b3IgdG8gcmVhZCBmcm9tIGFuZCB3cml0ZSB0byBkYXRhIHN0b3Jlc1xuICAgKiB0aGF0IGFyZSBub3QgbmF0aXZlbHkgc3VwcG9ydGVkIGJ5IEFXUyBHbHVlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDVVNUT00gPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0NVU1RPTScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBGYWNlYm9vayBBZHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZBQ0VCT09LQURTID0gbmV3IENvbm5lY3Rpb25UeXBlKCdGQUNFQk9PS0FEUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBHb29nbGUgQWRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHT09HTEVBRFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0dPT0dMRUFEUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBHb29nbGUgU2hlZXRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHT09HTEVTSEVFVFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0dPT0dMRVNIRUVUUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBHb29nbGUgQW5hbHl0aWNzIDQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdPT0dMRUFOQUxZVElDUzQgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0dPT0dMRUFOQUxZVElDUzQnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gSHViU3BvdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSFVCU1BPVCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSFVCU1BPVCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBJbnN0YWdyYW0gQWRzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlNUQUdSQU1BRFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0lOU1RBR1JBTUFEUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBJbnRlcmNvbS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5URVJDT00gPSBuZXcgQ29ubmVjdGlvblR5cGUoJ0lOVEVSQ09NJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEppcmEgQ2xvdWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpJUkFDTE9VRCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnSklSQUNMT1VEJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIEFkb2JlIE1hcmtldG8gRW5nYWdlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVJLRVRPID0gbmV3IENvbm5lY3Rpb25UeXBlKCdNQVJLRVRPJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIE9yYWNsZSBOZXRTdWl0ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkVUU1VJVEVFUlAgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ05FVFNVSVRFRVJQJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNhbGVzZm9yY2UgdXNpbmcgT0F1dGggYXV0aGVudGljYXRpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBTEVTRk9SQ0UgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NBTEVTRk9SQ0UnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU2FsZXNmb3JjZSBNYXJrZXRpbmcgQ2xvdWQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBTEVTRk9SQ0VNQVJLRVRJTkdDTE9VRCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0FMRVNGT1JDRU1BUktFVElOR0NMT1VEJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNhbGVzZm9yY2UgTWFya2V0aW5nIENsb3VkIEFjY291bnQgRW5nYWdlbWVudCAoTUNBRSkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNBTEVTRk9SQ0VQQVJET1QgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NBTEVTRk9SQ0VQQVJET1QnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU0FQIE9EYXRhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTQVBPREFUQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0FQT0RBVEEnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gU2VydmljZU5vdy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VSVklDRU5PVyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0VSVklDRU5PVycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTbGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0xBQ0sgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NMQUNLJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFNuYXBjaGF0IEFkcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU05BUENIQVRBRFMgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NOQVBDSEFUQURTJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFN0cmlwZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1RSSVBFID0gbmV3IENvbm5lY3Rpb25UeXBlKCdTVFJJUEUnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gWmVuZGVzay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWkVOREVTSyA9IG5ldyBDb25uZWN0aW9uVHlwZSgnWkVOREVTSycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBab2hvIENSTS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWk9IT0NSTSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnWk9IT0NSTScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBHb29nbGUgQmlnUXVlcnkuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJJR1FVRVJZID0gbmV3IENvbm5lY3Rpb25UeXBlKCdCSUdRVUVSWScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBBenVyZSBTUUwgRGF0YWJhc2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFaVVJFU1FMID0gbmV3IENvbm5lY3Rpb25UeXBlKCdBWlVSRVNRTCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBBenVyZSBDb3Ntb3MgREIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFaVVJFQ09TTU9TID0gbmV3IENvbm5lY3Rpb25UeXBlKCdBWlVSRUNPU01PUycpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBBbWF6b24gT3BlblNlYXJjaCBTZXJ2aWNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUEVOU0VBUkNIID0gbmV3IENvbm5lY3Rpb25UeXBlKCdPUEVOU0VBUkNIJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIE15U1FMLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNWVNRTCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnTVlTUUwnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gUG9zdGdyZVNRTC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUE9TVEdSRVNRTCA9IG5ldyBDb25uZWN0aW9uVHlwZSgnUE9TVEdSRVNRTCcpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBPcmFjbGUgRGF0YWJhc2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQUNMRSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnT1JBQ0xFJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIE1pY3Jvc29mdCBTUUwgU2VydmVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTUUxTRVJWRVIgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1NRTFNFUlZFUicpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBTQVAgSEFOQS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0FQSEFOQSA9IG5ldyBDb25uZWN0aW9uVHlwZSgnU0FQSEFOQScpO1xuXG4gIC8qKlxuICAgKiBEZXNpZ25hdGVzIGEgY29ubmVjdGlvbiB0byBUZXJhZGF0YS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEVSQURBVEEgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1RFUkFEQVRBJyk7XG5cbiAgLyoqXG4gICAqIERlc2lnbmF0ZXMgYSBjb25uZWN0aW9uIHRvIFZlcnRpY2EuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFZFUlRJQ0EgPSBuZXcgQ29ubmVjdGlvblR5cGUoJ1ZFUlRJQ0EnKTtcblxuICAvKipcbiAgICogRGVzaWduYXRlcyBhIGNvbm5lY3Rpb24gdG8gQW1hem9uIER5bmFtb0RCLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEWU5BTU9EQiA9IG5ldyBDb25uZWN0aW9uVHlwZSgnRFlOQU1PREInKTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBDb25uZWN0aW9uVHlwZSwgYXMgZXhwZWN0ZWQgYnkgQ29ubmVjdGlvbiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29ubmVjdGlvbiB0eXBlIG5hbWUgYXMgZXhwZWN0ZWQgYnkgQ29ubmVjdGlvbiByZXNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgY3JlYXRlZCBvciBhbiBpbXBvcnRlZCBgQ29ubmVjdGlvbmBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ29ubmVjdGlvbiBleHRlbmRzIGNkay5JUmVzb3VyY2Uge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb25cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgY29ubmVjdGlvblxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVlBDIG5ldHdvcmsgcGxhY2VtZW50IGZvciBhIEdsdWUgYENvbm5lY3Rpb25gLlxuICpcbiAqIEEgR2x1ZSBjb25uZWN0aW9uIHRhcmdldHMgYSBzaW5nbGUgc3VibmV0LiBDaG9vc2UgdGhlIHBsYWNlbWVudCB3aXRoIG9uZSBvZlxuICogdGhlIG11dHVhbGx5LWV4Y2x1c2l2ZSBmYWN0b3JpZXMg4oCUIGFuIGV4cGxpY2l0IHN1Ym5ldCwgb3IgYSBWUEMgdG8gc2VsZWN0IG9uZVxuICogZnJvbSDigJQgc28gYSBzdWJuZXQgcGFpcmVkIHdpdGggYSBWUEMsIG9yIGEgc3VibmV0IHNlbGVjdGlvbiB3aXRob3V0IGEgVlBDLFxuICogY2Fubm90IGJlIGV4cHJlc3NlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25OZXR3b3JrIHtcbiAgLyoqXG4gICAqIFBpbiB0aGUgY29ubmVjdGlvbiB0byBhIHNwZWNpZmljIHN1Ym5ldC5cbiAgICpcbiAgICogQHBhcmFtIHN1Ym5ldCB0aGUgc3VibmV0IHRoZSBjb25uZWN0aW9uIHRhcmdldHMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1Ym5ldChzdWJuZXQ6IGVjMi5JU3VibmV0KTogQ29ubmVjdGlvbk5ldHdvcmsge1xuICAgIHJldHVybiBuZXcgQ29ubmVjdGlvbk5ldHdvcmsoc3VibmV0LCB1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IHRoZSBjb25uZWN0aW9uJ3Mgc3VibmV0IGZyb20gYSBWUEMuIFNpbmNlIGEgR2x1ZSBjb25uZWN0aW9uIHRhcmdldHNcbiAgICogYSBzaW5nbGUgc3VibmV0LCB0aGUgZmlyc3Qgc3VibmV0IG9mIHRoZSBzZWxlY3Rpb24gaXMgdXNlZC5cbiAgICpcbiAgICogQHBhcmFtIHZwYyB0aGUgVlBDIHRvIHNlbGVjdCBhIHN1Ym5ldCBmcm9tLlxuICAgKiBAcGFyYW0gdnBjU3VibmV0cyB3aGljaCBzdWJuZXRzIHRvIHNlbGVjdCBmcm9tLlxuICAgKiBAZGVmYXVsdCB2cGNTdWJuZXRzIC0gcHJpdmF0ZSBzdWJuZXRzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHZwYyh2cGM6IGVjMi5JVnBjLCB2cGNTdWJuZXRzPzogZWMyLlN1Ym5ldFNlbGVjdGlvbik6IENvbm5lY3Rpb25OZXR3b3JrIHtcbiAgICByZXR1cm4gbmV3IENvbm5lY3Rpb25OZXR3b3JrKHVuZGVmaW5lZCwgdnBjLCB2cGNTdWJuZXRzKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIHJlYWRvbmx5IF9zdWJuZXQ/OiBlYzIuSVN1Ym5ldDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgX3ZwYz86IGVjMi5JVnBjO1xuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyByZWFkb25seSBfdnBjU3VibmV0cz86IGVjMi5TdWJuZXRTZWxlY3Rpb247XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihzdWJuZXQ/OiBlYzIuSVN1Ym5ldCwgdnBjPzogZWMyLklWcGMsIHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uKSB7XG4gICAgdGhpcy5fc3VibmV0ID0gc3VibmV0O1xuICAgIHRoaXMuX3ZwYyA9IHZwYztcbiAgICB0aGlzLl92cGNTdWJuZXRzID0gdnBjU3VibmV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSBzaW5nbGUgc3VibmV0IHRoaXMgbmV0d29yayB0YXJnZXRzLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBfcmVzb2x2ZVN1Ym5ldChzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QpOiBlYzIuSVN1Ym5ldCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuX3N1Ym5ldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3N1Ym5ldDtcbiAgICB9XG4gICAgLy8gQSBHbHVlIGNvbm5lY3Rpb24gdGFyZ2V0cyBhIHNpbmdsZSBzdWJuZXQsIHNvIHVzZSB0aGUgZmlyc3Qgc3VibmV0IG9mIHRoZSBzZWxlY3Rpb24uXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl92cGMhLnNlbGVjdFN1Ym5ldHModGhpcy5fdnBjU3VibmV0cyk7XG4gICAgLy8gYGlzUGVuZGluZ0xvb2t1cGAgaXMgdHJ1ZSBmb3IgaW1wb3J0ZWQgVlBDcyB3aG9zZSBzdWJuZXRzIGFyZSBub3QgeWV0XG4gICAgLy8gcmVzb2x2ZWQgKGUuZy4gYGZyb21Mb29rdXBgKSwgd2hlcmUgYW4gZW1wdHkgc2VsZWN0aW9uIGlzIGV4cGVjdGVkIGFuZFxuICAgIC8vIHdpbGwgbWF0ZXJpYWxpemUgb24gYSBsYXRlciBzeW50aC4gT25seSBmYWlsIG9uIGEgZ2VudWluZWx5IGVtcHR5IHNlbGVjdGlvbi5cbiAgICBpZiAoIXNlbGVjdGVkLmlzUGVuZGluZ0xvb2t1cCAmJiBzZWxlY3RlZC5zdWJuZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IGNkay5WYWxpZGF0aW9uRXJyb3IobGl0YENvbm5lY3Rpb25Ob1N1Ym5ldHNTZWxlY3RlZGAsICdgdnBjU3VibmV0c2Agc2VsZWN0ZWQgbm8gc3VibmV0cyBmcm9tIHRoZSBwcm92aWRlZCBgdnBjYDsgYWRqdXN0IHRoZSBzZWxlY3Rpb24gb3IgdXNlIGBDb25uZWN0aW9uTmV0d29yay5zdWJuZXQoLi4uKWAgdG8gdGFyZ2V0IGEgc3BlY2lmaWMgc3VibmV0Jywgc2NvcGUpO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWQuc3VibmV0c1swXTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgQ29ubmVjdGlvbiBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb25cbiAgICogQGRlZmF1bHQgY2xvdWRmb3JtYXRpb24gZ2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqIEBkZWZhdWx0IG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogIEtleS1WYWx1ZSBwYWlycyB0aGF0IGRlZmluZSBwYXJhbWV0ZXJzIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogIEBkZWZhdWx0IGVtcHR5IHByb3BlcnRpZXNcbiAgICogIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1jb25uZWN0Lmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byBhIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgaG9sZGluZyB0aGUgY3JlZGVudGlhbHMgZm9yIHRoaXMgY29ubmVjdGlvbi5cbiAgICpcbiAgICogVGhlIHNlY3JldCBpcyByZWZlcmVuY2VkIHRocm91Z2ggdGhlIGNvbm5lY3Rpb24ncyBgU0VDUkVUX0lEYCBwcm9wZXJ0eSwgc29cbiAgICogR2x1ZSByZWFkcyB0aGUgY3JlZGVudGlhbHMgYXQgcnVudGltZSBhbmQgdGhlIHNlY3JldCB2YWx1ZSBuZXZlciBhcHBlYXJzIGluXG4gICAqIHRoZSBzeW50aGVzaXplZCB0ZW1wbGF0ZS4gUHJlZmVyIHRoaXMgb3ZlciBwbGFjaW5nIGNyZWRlbnRpYWxzIGRpcmVjdGx5IGluXG4gICAqIGBwcm9wZXJ0aWVzYC4gQWNjZXB0cyBhbnkgYHNlY3JldHNtYW5hZ2VyLklTZWNyZXRgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNlY3JldDsgYW55IGNyZWRlbnRpYWxzIG11c3QgYmUgc3VwcGxpZWQgdmlhIGBwcm9wZXJ0aWVzYFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjcmV0PzogSVNlY3JldFJlZjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgaW4gc2VsZWN0aW5nIHRoaXMgY29ubmVjdGlvbi5cbiAgICogVGhpcyBpcyB1c2VmdWwgZm9yIGZpbHRlcmluZyB0aGUgcmVzdWx0cyBvZiBodHRwczovL2F3c2NsaS5hbWF6b25hd3MuY29tL3YyL2RvY3VtZW50YXRpb24vYXBpL2xhdGVzdC9yZWZlcmVuY2UvZ2x1ZS9nZXQtY29ubmVjdGlvbnMuaHRtbFxuICAgKiBAZGVmYXVsdCBubyBtYXRjaCBjcml0ZXJpYVxuICAgKi9cbiAgcmVhZG9ubHkgbWF0Y2hDcml0ZXJpYT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBzZWN1cml0eSBncm91cHMgbmVlZGVkIHRvIHN1Y2Nlc3NmdWxseSBtYWtlIHRoaXMgY29ubmVjdGlvbiBlLmcuIHRvIHN1Y2Nlc3NmdWxseSBjb25uZWN0IHRvIFZQQy5cbiAgICogQGRlZmF1bHQgbm8gc2VjdXJpdHkgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzPzogZWMyLklTZWN1cml0eUdyb3VwW107XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgbmV0d29yayBwbGFjZW1lbnQgZm9yIHRoaXMgY29ubmVjdGlvbiwgc28gaXQgY2FuIHJlYWNoIHJlc291cmNlc1xuICAgKiBpbnNpZGUgYSBWUEMuIFNlZSBtb3JlIGF0IGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9zdGFydC1jb25uZWN0aW5nLmh0bWwuXG4gICAqXG4gICAqIEJ1aWxkIGl0IHdpdGggYENvbm5lY3Rpb25OZXR3b3JrLnN1Ym5ldChzdWJuZXQpYCB0byBwaW4gYSBzcGVjaWZpYyBzdWJuZXQsXG4gICAqIG9yIGBDb25uZWN0aW9uTmV0d29yay52cGModnBjLCB2cGNTdWJuZXRzPylgIHRvIGxldCB0aGUgQ0RLIHNlbGVjdCBvbmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gVlBDIG5ldHdvcmsgcGxhY2VtZW50XG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrPzogQ29ubmVjdGlvbk5ldHdvcms7XG59XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgZm9yIGBDb25uZWN0aW9uYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25Qcm9wcyBleHRlbmRzIENvbm5lY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBDb25uZWN0aW9uVHlwZTtcbn1cblxuLyoqXG4gKiBBbiBBV1MgR2x1ZSBjb25uZWN0aW9uIHRvIGEgZGF0YSBzb3VyY2UuXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uIGV4dGVuZHMgY2RrLlJlc291cmNlIGltcGxlbWVudHMgSUNvbm5lY3Rpb24ge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1nbHVlLWFscGhhLkNvbm5lY3Rpb24nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ29ubmVjdGlvbiBjb25zdHJ1Y3QgdGhhdCByZXByZXNlbnRzIGFuIGV4dGVybmFsIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgY3JlYXRpbmcgY29uc3RydWN0ICh1c3VhbGx5IGB0aGlzYCkuXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgaWQuXG4gICAqIEBwYXJhbSBjb25uZWN0aW9uQXJuIGFybiBvZiBleHRlcm5hbCBjb25uZWN0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbkFybihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbm5lY3Rpb25Bcm46IHN0cmluZyk6IElDb25uZWN0aW9uIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQ29ubmVjdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWUgPSBjZGsuQXJuLmV4dHJhY3RSZXNvdXJjZU5hbWUoY29ubmVjdGlvbkFybiwgJ2Nvbm5lY3Rpb24nKTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuID0gY29ubmVjdGlvbkFybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb25uZWN0aW9uIGNvbnN0cnVjdCB0aGF0IHJlcHJlc2VudHMgYW4gZXh0ZXJuYWwgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKS5cbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBpZC5cbiAgICogQHBhcmFtIGNvbm5lY3Rpb25OYW1lIG5hbWUgb2YgZXh0ZXJuYWwgY29ubmVjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbm5lY3Rpb25OYW1lKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgY29ubmVjdGlvbk5hbWU6IHN0cmluZyk6IElDb25uZWN0aW9uIHtcbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJQ29ubmVjdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbk5hbWUgPSBjb25uZWN0aW9uTmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuID0gQ29ubmVjdGlvbi5idWlsZENvbm5lY3Rpb25Bcm4oc2NvcGUsIGNvbm5lY3Rpb25OYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYnVpbGRDb25uZWN0aW9uQXJuKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgY29ubmVjdGlvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNkay5TdGFjay5vZihzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdnbHVlJyxcbiAgICAgIHJlc291cmNlOiAnY29ubmVjdGlvbicsXG4gICAgICByZXNvdXJjZU5hbWU6IGNvbm5lY3Rpb25OYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBDZm5Db25uZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENvbm5lY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgcGh5c2ljYWxOYW1lOiBwcm9wcy5jb25uZWN0aW9uTmFtZSxcbiAgICB9KTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BzLnByb3BlcnRpZXMgfHwge307XG5cbiAgICBjb25zdCBzdWJuZXQgPSBwcm9wcy5uZXR3b3JrPy5fcmVzb2x2ZVN1Ym5ldCh0aGlzKTtcblxuICAgIGNvbnN0IHBoeXNpY2FsQ29ubmVjdGlvblJlcXVpcmVtZW50cyA9IHN1Ym5ldCB8fCBwcm9wcy5zZWN1cml0eUdyb3VwcyA/IHtcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHN1Ym5ldCA/IHN1Ym5ldC5hdmFpbGFiaWxpdHlab25lIDogdW5kZWZpbmVkLFxuICAgICAgc3VibmV0SWQ6IHN1Ym5ldCA/IHN1Ym5ldC5zdWJuZXRJZCA6IHVuZGVmaW5lZCxcbiAgICAgIHNlY3VyaXR5R3JvdXBJZExpc3Q6IHByb3BzLnNlY3VyaXR5R3JvdXBzID8gcHJvcHMuc2VjdXJpdHlHcm91cHMubWFwKHNnID0+IHNnLnNlY3VyaXR5R3JvdXBJZCkgOiB1bmRlZmluZWQsXG4gICAgfSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHNlY3JldElkID0gcHJvcHMuc2VjcmV0Py5zZWNyZXRSZWYuc2VjcmV0SWQ7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IENmbkNvbm5lY3Rpb24odGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgY2F0YWxvZ0lkOiBjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudCxcbiAgICAgIGNvbm5lY3Rpb25JbnB1dDoge1xuICAgICAgICBjb25uZWN0aW9uUHJvcGVydGllczogY2RrLkxhenkuYW55KHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PiB7XG4gICAgICAgICAgICAvLyBJbnNwZWN0IHRoZSBmaW5hbCBwcm9wZXJ0eSBzZXQgYXQgc3ludGhlc2lzIHRpbWUgc28gcHJvcGVydGllc1xuICAgICAgICAgICAgLy8gYWRkZWQgdmlhIGBhZGRQcm9wZXJ0eWAgYXJlIGNvdmVyZWQgYXMgd2VsbCDigJQgYSBgU0VDUkVUX0lEYCBhZGRlZFxuICAgICAgICAgICAgLy8gYWZ0ZXIgY29uc3RydWN0aW9uIHdvdWxkIG90aGVyd2lzZSBiZSBzaWxlbnRseSBvdmVyd3JpdHRlbiBieSB0aGVcbiAgICAgICAgICAgIC8vIG9uZSBpbmplY3RlZCBmcm9tIGBzZWNyZXRgLlxuICAgICAgICAgICAgaWYgKHNlY3JldElkICE9PSB1bmRlZmluZWQgJiYgdGhpcy5wcm9wZXJ0aWVzLlNFQ1JFVF9JRCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBjZGsuVmFsaWRhdGlvbkVycm9yKGxpdGBDb25uZWN0aW9uU2VjcmV0Q29uZmxpY3RgLCAnY2Fubm90IHNldCBib3RoIGBzZWNyZXRgIGFuZCBhIGBTRUNSRVRfSURgIGNvbm5lY3Rpb24gcHJvcGVydHknLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoZSBgU0VDUkVUX0lEYCBpbmplY3RlZCBmcm9tIGBzZWNyZXRgIGlzIGEgcmVmZXJlbmNlLCBub3QgYVxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbCwgc28gaXQgaXMgbWVyZ2VkIGluIGFmdGVyIHRoaXMgc2Nhbi5cbiAgICAgICAgICAgIHdhcm5PblBsYWludGV4dFNlY3JldHMoXG4gICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgIHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgJ0Bhd3MtY2RrL2F3cy1nbHVlLWFscGhhOnBsYWludGV4dENvbm5lY3Rpb25TZWNyZXQnLFxuICAgICAgICAgICAgICAnUGFzcyBhIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdmlhIHRoZSBjb25uZWN0aW9uXFwncyBgc2VjcmV0YCBwcm9wZXJ0eSBpbnN0ZWFkLicsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IHNlY3JldElkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyB7IC4uLnRoaXMucHJvcGVydGllcywgU0VDUkVUX0lEOiBzZWNyZXRJZCB9XG4gICAgICAgICAgICAgIDogdGhpcy5wcm9wZXJ0aWVzO1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLmxlbmd0aCA+IDAgPyBwcm9wZXJ0aWVzIDogdW5kZWZpbmVkO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgICBjb25uZWN0aW9uVHlwZTogcHJvcHMudHlwZS5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIG1hdGNoQ3JpdGVyaWE6IHByb3BzLm1hdGNoQ3JpdGVyaWEsXG4gICAgICAgIG5hbWU6IHByb3BzLmNvbm5lY3Rpb25OYW1lLFxuICAgICAgICBwaHlzaWNhbENvbm5lY3Rpb25SZXF1aXJlbWVudHMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uXG4gICAqL1xuICBAbWVtb2l6ZWRHZXR0ZXJcbiAgcHVibGljIGdldCBjb25uZWN0aW9uTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZSh0aGlzLnJlc291cmNlLnJlZik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgY29ubmVjdGlvblxuICAgKi9cbiAgQG1lbW9pemVkR2V0dGVyXG4gIHB1YmxpYyBnZXQgY29ubmVjdGlvbkFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiBDb25uZWN0aW9uLmJ1aWxkQ29ubmVjdGlvbkFybih0aGlzLCB0aGlzLmNvbm5lY3Rpb25OYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYWRkaXRpb25hbCBjb25uZWN0aW9uIHBhcmFtZXRlcnNcbiAgICogQHBhcmFtIGtleSBwYXJhbWV0ZXIga2V5XG4gICAqIEBwYXJhbSB2YWx1ZSBwYXJhbWV0ZXIgdmFsdWVcbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBhZGRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucHJvcGVydGllc1trZXldID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
@@ -8,7 +8,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
8
8
  */
9
9
  class InputFormat {
10
10
  className;
11
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.269.0-alpha.0" };
11
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.InputFormat", version: "2.271.0-alpha.0" };
12
12
  /**
13
13
  * InputFormat for Avro files.
14
14
  *
@@ -44,6 +44,15 @@ class InputFormat {
44
44
  static TEXT = new InputFormat('org.apache.hadoop.mapred.TextInputFormat');
45
45
  constructor(className) {
46
46
  this.className = className;
47
+ try {
48
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.InputFormat", "");
49
+ }
50
+ catch (error) {
51
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
52
+ Error.captureStackTrace(error, InputFormat);
53
+ }
54
+ throw error;
55
+ }
47
56
  }
48
57
  }
49
58
  exports.InputFormat = InputFormat;
@@ -52,7 +61,7 @@ exports.InputFormat = InputFormat;
52
61
  */
53
62
  class OutputFormat {
54
63
  className;
55
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.269.0-alpha.0" };
64
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.OutputFormat", version: "2.271.0-alpha.0" };
56
65
  /**
57
66
  * Writes text data with a null key (value only).
58
67
  *
@@ -79,6 +88,15 @@ class OutputFormat {
79
88
  static PARQUET = new OutputFormat('org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat');
80
89
  constructor(className) {
81
90
  this.className = className;
91
+ try {
92
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.OutputFormat", "");
93
+ }
94
+ catch (error) {
95
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
96
+ Error.captureStackTrace(error, OutputFormat);
97
+ }
98
+ throw error;
99
+ }
82
100
  }
83
101
  }
84
102
  exports.OutputFormat = OutputFormat;
@@ -89,7 +107,7 @@ exports.OutputFormat = OutputFormat;
89
107
  */
90
108
  class SerializationLibrary {
91
109
  className;
92
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.269.0-alpha.0" };
110
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.SerializationLibrary", version: "2.271.0-alpha.0" };
93
111
  /**
94
112
  * @see https://svn.apache.org/repos/infra/websites/production/hive/content/javadocs/r3.1.3/api/org/apache/hadoop/hive/serde2/avro/AvroSerDe.html
95
113
  */
@@ -132,6 +150,15 @@ class SerializationLibrary {
132
150
  static REGEXP = new SerializationLibrary('org.apache.hadoop.hive.serde2.RegexSerDe');
133
151
  constructor(className) {
134
152
  this.className = className;
153
+ try {
154
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.SerializationLibrary", "");
155
+ }
156
+ catch (error) {
157
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
158
+ Error.captureStackTrace(error, SerializationLibrary);
159
+ }
160
+ throw error;
161
+ }
135
162
  }
136
163
  }
137
164
  exports.SerializationLibrary = SerializationLibrary;
@@ -142,7 +169,7 @@ exports.SerializationLibrary = SerializationLibrary;
142
169
  */
143
170
  class ClassificationString {
144
171
  value;
145
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.269.0-alpha.0" };
172
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.ClassificationString", version: "2.271.0-alpha.0" };
146
173
  /**
147
174
  * @see https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html#aws-glue-programming-etl-format-avro
148
175
  */
@@ -169,6 +196,15 @@ class ClassificationString {
169
196
  static ORC = new ClassificationString('orc');
170
197
  constructor(value) {
171
198
  this.value = value;
199
+ try {
200
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.ClassificationString", "");
201
+ }
202
+ catch (error) {
203
+ if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
204
+ Error.captureStackTrace(error, ClassificationString);
205
+ }
206
+ throw error;
207
+ }
172
208
  }
173
209
  }
174
210
  exports.ClassificationString = ClassificationString;
@@ -176,7 +212,7 @@ exports.ClassificationString = ClassificationString;
176
212
  * Defines the input/output formats and ser/de for a single DataFormat.
177
213
  */
178
214
  class DataFormat {
179
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.269.0-alpha.0" };
215
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-glue-alpha.DataFormat", version: "2.271.0-alpha.0" };
180
216
  /**
181
217
  * DataFormat for Apache Web Server Logs. Also works for CloudFront logs
182
218
  *
@@ -291,6 +327,7 @@ class DataFormat {
291
327
  classificationString;
292
328
  constructor(props) {
293
329
  try {
330
+ jsiiDeprecationWarnings.print("@aws-cdk/aws-glue-alpha.DataFormat", "");
294
331
  jsiiDeprecationWarnings._aws_cdk_aws_glue_alpha_DataFormatProps(props);
295
332
  }
296
333
  catch (error) {
@@ -306,4 +343,4 @@ class DataFormat {
306
343
  }
307
344
  }
308
345
  exports.DataFormat = DataFormat;
309
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBdUNNOztJQXRDNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsNERBQTRELENBQUMsQ0FBQztJQUU1Rzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBRXZHOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFFaEc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBRTFGLFlBQTRCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7S0FBSTs7QUF2Q25ELGtDQXdDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxZQUFZO0lBNkJLOztJQTVCNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxvQkFBb0IsR0FBRyxJQUFJLFlBQVksQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBRTdIOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsSUFBSSxHQUFHLElBQUksWUFBWSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFFOUc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxHQUFHLEdBQUcsSUFBSSxZQUFZLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUVsRzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLFlBQVksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBRXBILFlBQTRCLFNB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RztLQUMvQyxDQUFDLENBQUM7SUFFSDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUM5QyxXQUFXLEVBQUUsV0FBVyxDQUFDLE9BQU87UUFDaEMsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPO1FBQ2xDLG9CQUFvQixFQUFFLG9CQUFvQixDQUFDLE9BQU87UUFDbEQsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsT0FBTztLQUNuRCxDQUFDLENBQUM7SUFFSDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUMxQyxXQUFXLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDN0IsWUFBWSxFQUFFLFlBQVksQ0FBQyxvQkFBb0I7UUFDL0Msb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsV0FBVztLQUN2RCxDQUFDLENBQUM7SUFFSDs7T0FFRztJQUNhLFdBQVcsQ0FBYztJQUV6Qzs7T0FFRztJQUNhLFlBQVksQ0FBZTtJQUUzQzs7T0FFRztJQUNhLG9CQUFvQixDQUF1QjtJQUUzRDs7T0FFRztJQUNhLG9CQUFvQixDQUF3QjtJQUU1RCxZQUFtQixLQUFzQjs7Ozs7OytDQTlIOUIsVUFBVTs7OztRQStIbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1FBQ3ZELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUM7S0FDeEQ7O0FBbklILGdDQW9JQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWJzb2x1dGUgY2xhc3MgbmFtZSBvZiB0aGUgSGFkb29wIGBJbnB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gcmVhZGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0IHtcbiAgLyoqXG4gICAqIElucHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lcklucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVZSTyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5hdnJvLkF2cm9Db250YWluZXJJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgQ2xvdWR0cmFpbCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IElucHV0Rm9ybWF0KCdjb20uYW1hem9uLmVtci5jbG91ZHRyYWlsLkNsb3VkVHJhaWxJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNJbnB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjSW5wdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogSW5wdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0SW5wdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IElucHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuTWFwcmVkUGFycXVldElucHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIEFuIElucHV0Rm9ybWF0IGZvciBwbGFpbiB0ZXh0IGZpbGVzLiBGaWxlcyBhcmUgYnJva2VuIGludG8gbGluZXMuIEVpdGhlciBsaW5lZmVlZCBvclxuICAgKiBjYXJyaWFnZS1yZXR1cm4gYXJlIHVzZWQgdG8gc2lnbmFsIGVuZCBvZiBsaW5lLiBLZXlzIGFyZSB0aGUgcG9zaXRpb24gaW4gdGhlIGZpbGUsIGFuZFxuICAgKiB2YWx1ZXMgYXJlIHRoZSBsaW5lIG9mIHRleHQuXG4gICAqIEpTT04gJiBDU1YgZmlsZXMgYXJlIGV4YW1wbGVzIG9mIHRoaXMgSW5wdXRGb3JtYXRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2hhZG9vcC5hcGFjaGUub3JnL2RvY3Mvc3RhYmxlL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9tYXByZWQvVGV4dElucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEVYVCA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLlRleHRJbnB1dEZvcm1hdCcpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBBYnNvbHV0ZSBjbGFzcyBuYW1lIG9mIHRoZSBIYWRvb3AgYE91dHB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gd3JpdGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dEZvcm1hdCB7XG4gIC8qKlxuICAgKiBXcml0ZXMgdGV4dCBkYXRhIHdpdGggYSBudWxsIGtleSAodmFsdWUgb25seSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBISVZFX0lHTk9SRV9LRVlfVEVYVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogT3V0cHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgT3V0cHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLmF2cm8uQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRGb3JtYXQgZm9yIE9yYyBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9vcmMvT3JjT3V0cHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjT3V0cHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIE91dHB1dEZvcm1hdCBmb3IgUGFycXVldCBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9wYXJxdWV0L01hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5wYXJxdWV0Lk1hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IHRvIHVzZSB3aGVuIHNlcmlhbGl6aW5nL2Rlc2VyaWFsaXppbmcgKFNlckRlKSB0YWJsZSByZWNvcmRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9IaXZlL1NlckRlXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemF0aW9uTGlicmFyeSB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3NlcmRlMi9hdnJvL0F2cm9TZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLmF2cm8uQXZyb1NlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY2xvdWR0cmFpbC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEVFJBSUwgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b24uZW1yLmhpdmUuc2VyZGUuQ2xvdWRUcmFpbFNlcmRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvZ3Jvay5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdST0sgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b25hd3MuZ2x1ZS5zZXJkZS5Hcm9rU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oaXZlL2hjYXRhbG9nL2RhdGEvSnNvblNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSElWRV9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhpdmUuaGNhdGFsb2cuZGF0YS5Kc29uU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvbGF6eS9MYXp5U2ltcGxlU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMQVpZX1NJTVBMRSA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5zZXJkZTIubGF6eS5MYXp5U2ltcGxlU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvT3BlbkNTVlNlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1BFTl9DU1YgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLk9wZW5DU1ZTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yY29uZ2l1L0hpdmUtSlNPTi1TZXJkZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUEVOWF9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcub3BlbnguZGF0YS5qc29uc2VyZGUuSnNvblNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vb3JjL09yY1NlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLm9yYy5PcmNTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL3BhcnF1ZXQvc2VyZGUvUGFycXVldEhpdmVTZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ucGFycXVldC5zZXJkZS5QYXJxdWV0SGl2ZVNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL1JlZ2V4U2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUdFWFAgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLlJlZ2V4U2VyRGUnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogQ2xhc3NpZmljYXRpb24gc3RyaW5nIGdpdmVuIHRvIHRhYmxlcyB3aXRoIHRoaXMgZGF0YSBmb3JtYXQuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYWRkLWNsYXNzaWZpZXIuaHRtbCNjbGFzc2lmaWVyLWJ1aWx0LWluXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGFzc2lmaWNhdGlvblN0cmluZyB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1hdnJvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2F2cm8nKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtY3N2XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENTViA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnY3N2Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LWpzb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSlNPTiA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnanNvbicpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC14bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWE1MID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCd4bWwnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtcGFycXVldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdwYXJxdWV0Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LW9yY1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUkMgPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ29yYycpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBEYXRhRm9ybWF0IGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGb3JtYXRQcm9wcyB7XG4gIC8qKlxuICAgKiBgSW5wdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBgT3V0cHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnk7XG5cbiAgLyoqXG4gICAqIENsYXNzaWZpY2F0aW9uIHN0cmluZyBnaXZlbiB0byB0YWJsZXMgd2l0aCB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNsYXNzaWZpY2F0aW9uIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzaWZpY2F0aW9uU3RyaW5nPzogQ2xhc3NpZmljYXRpb25TdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgaW5wdXQvb3V0cHV0IGZvcm1hdHMgYW5kIHNlci9kZSBmb3IgYSBzaW5nbGUgRGF0YUZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFGb3JtYXQge1xuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQXBhY2hlIFdlYiBTZXJ2ZXIgTG9ncy4gQWxzbyB3b3JrcyBmb3IgQ2xvdWRGcm9udCBsb2dzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXBhY2hlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVBBQ0hFX0xPR1MgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LlJFR0VYUCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBBdnJvXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXZyby5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LkFWUk8sXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuQVZSTyxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuQVZSTyxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQVZSTyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIENsb3VkVHJhaWwgbG9ncyBzdG9yZWQgb24gUzNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9jbG91ZHRyYWlsLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xPVURUUkFJTF9MT0dTID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5DTE9VRFRSQUlMLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5DTE9VRFRSQUlMLFxuICB9KTtcblxuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQ1NWIEZpbGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY3N2Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1NWID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUEVOX0NTVixcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQ1NWLFxuICB9KTtcblxuICAvKipcbiAgICogU3RvcmVkIGFzIHBsYWluIHRleHQgZmlsZXMgaW4gSlNPTiBmb3JtYXQuXG4gICAqIFVzZXMgT3BlblggSnNvbiBTZXJEZSBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJhbGl6YXRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvanNvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpTT04gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5Lk9QRU5YX0pTT04sXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkpTT04sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBMb2dzdGFzaCBMb2dzLCB1c2luZyB0aGUgR1JPSyBTZXJEZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2dyb2suaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0dTVEFTSCA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuVEVYVCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuR1JPSyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBPUkMgKE9wdGltaXplZCBSb3cgQ29sdW1uYXIpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvb3JjLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5PUkMsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuT1JDLFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUkMsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLk9SQyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBQYXJxdWV0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvcGFycXVldC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlBBUlFVRVQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuUEFSUVVFVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuUEFSUVVFVCxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuUEFSUVVFVCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIFRTViAoVGFiLVNlcGFyYXRlZCBWYWx1ZXMpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvbGF6eS1zaW1wbGUtc2VyZGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUU1YgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkxBWllfU0lNUExFLFxuICB9KTtcblxuICAvKipcbiAgICogYElucHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIGBPdXRwdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5O1xuXG4gIC8qKlxuICAgKiBDbGFzc2lmaWNhdGlvbiBzdHJpbmcgZ2l2ZW4gdG8gdGFibGVzIHdpdGggdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbGFzc2lmaWNhdGlvblN0cmluZz86IENsYXNzaWZpY2F0aW9uU3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogRGF0YUZvcm1hdFByb3BzKSB7XG4gICAgdGhpcy5pbnB1dEZvcm1hdCA9IHByb3BzLmlucHV0Rm9ybWF0O1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gcHJvcHMub3V0cHV0Rm9ybWF0O1xuICAgIHRoaXMuc2VyaWFsaXphdGlvbkxpYnJhcnkgPSBwcm9wcy5zZXJpYWxpemF0aW9uTGlicmFyeTtcbiAgICB0aGlzLmNsYXNzaWZpY2F0aW9uU3RyaW5nID0gcHJvcHMuY2xhc3NpZmljYXRpb25TdHJpbmc7XG4gIH1cbn1cbiJdfQ==
346
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkYXRhLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBdUNNOztJQXRDNUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsNERBQTRELENBQUMsQ0FBQztJQUU1Rzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBRXZHOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFFaEc7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFVLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBRTFGLFlBQTRCLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7Ozs7OzsrQ0F2Q2xDLFdBQVc7Ozs7S0F1QzJCOztBQXZDbkQsa0NBd0NDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUE2Qks7O0lBNUI1Qjs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLG9CQUFvQixHQUFHLElBQUksWUFBWSxDQUFDLDREQUE0RCxDQUFDLENBQUM7SUFFN0g7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBVSxJQUFJLEdBQUcsSUFBSSxZQUFZLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUU5Rzs7OztPQUlHO0lBQ0ksTUFBTSxDQUFVLEdBQUcsR0FBRyxJQUFJLFlBQVksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBRWxHOzs7O09BSUc7SUFDSSxNQUFNLENBQVUsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLGdFQUFnRSxD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aGUgSGFkb29wIGBJbnB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gcmVhZGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIElucHV0Rm9ybWF0IHtcbiAgLyoqXG4gICAqIElucHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lcklucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVZSTyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5hdnJvLkF2cm9Db250YWluZXJJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgQ2xvdWR0cmFpbCBMb2dzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2Nsb3VkdHJhaWwuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTE9VRFRSQUlMID0gbmV3IElucHV0Rm9ybWF0KCdjb20uYW1hem9uLmVtci5jbG91ZHRyYWlsLkNsb3VkVHJhaWxJbnB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBJbnB1dEZvcm1hdCBmb3IgT3JjIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL29yYy9PcmNJbnB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SQyA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjSW5wdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogSW5wdXRGb3JtYXQgZm9yIFBhcnF1ZXQgZmlsZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vcGFycXVldC9NYXByZWRQYXJxdWV0SW5wdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IElucHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLnBhcnF1ZXQuTWFwcmVkUGFycXVldElucHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIEFuIElucHV0Rm9ybWF0IGZvciBwbGFpbiB0ZXh0IGZpbGVzLiBGaWxlcyBhcmUgYnJva2VuIGludG8gbGluZXMuIEVpdGhlciBsaW5lZmVlZCBvclxuICAgKiBjYXJyaWFnZS1yZXR1cm4gYXJlIHVzZWQgdG8gc2lnbmFsIGVuZCBvZiBsaW5lLiBLZXlzIGFyZSB0aGUgcG9zaXRpb24gaW4gdGhlIGZpbGUsIGFuZFxuICAgKiB2YWx1ZXMgYXJlIHRoZSBsaW5lIG9mIHRleHQuXG4gICAqIEpTT04gJiBDU1YgZmlsZXMgYXJlIGV4YW1wbGVzIG9mIHRoaXMgSW5wdXRGb3JtYXRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2hhZG9vcC5hcGFjaGUub3JnL2RvY3Mvc3RhYmxlL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9tYXByZWQvVGV4dElucHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEVYVCA9IG5ldyBJbnB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AubWFwcmVkLlRleHRJbnB1dEZvcm1hdCcpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjbGFzc05hbWU6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBBYnNvbHV0ZSBjbGFzcyBuYW1lIG9mIHRoZSBIYWRvb3AgYE91dHB1dEZvcm1hdGAgdG8gdXNlIHdoZW4gd3JpdGluZyB0YWJsZSBmaWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIE91dHB1dEZvcm1hdCB7XG4gIC8qKlxuICAgKiBXcml0ZXMgdGV4dCBkYXRhIHdpdGggYSBudWxsIGtleSAodmFsdWUgb25seSkuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBISVZFX0lHTk9SRV9LRVlfVEVYVCA9IG5ldyBPdXRwdXRGb3JtYXQoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8uSGl2ZUlnbm9yZUtleVRleHRPdXRwdXRGb3JtYXQnKTtcblxuICAvKipcbiAgICogT3V0cHV0Rm9ybWF0IGZvciBBdnJvIGZpbGVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL2F2cm8vQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgT3V0cHV0Rm9ybWF0KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLmF2cm8uQXZyb0NvbnRhaW5lck91dHB1dEZvcm1hdCcpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXRGb3JtYXQgZm9yIE9yYyBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9vcmMvT3JjT3V0cHV0Rm9ybWF0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5vcmMuT3JjT3V0cHV0Rm9ybWF0Jyk7XG5cbiAgLyoqXG4gICAqIE91dHB1dEZvcm1hdCBmb3IgUGFycXVldCBmaWxlcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9xbC9pby9wYXJxdWV0L01hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IE91dHB1dEZvcm1hdCgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5wYXJxdWV0Lk1hcHJlZFBhcnF1ZXRPdXRwdXRGb3JtYXQnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogU2VyaWFsaXphdGlvbiBsaWJyYXJ5IHRvIHVzZSB3aGVuIHNlcmlhbGl6aW5nL2Rlc2VyaWFsaXppbmcgKFNlckRlKSB0YWJsZSByZWNvcmRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9IaXZlL1NlckRlXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXJpYWxpemF0aW9uTGlicmFyeSB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3NlcmRlMi9hdnJvL0F2cm9TZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLmF2cm8uQXZyb1NlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY2xvdWR0cmFpbC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEVFJBSUwgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b24uZW1yLmhpdmUuc2VyZGUuQ2xvdWRUcmFpbFNlcmRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvZ3Jvay5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdST0sgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ2NvbS5hbWF6b25hd3MuZ2x1ZS5zZXJkZS5Hcm9rU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oaXZlL2hjYXRhbG9nL2RhdGEvSnNvblNlckRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSElWRV9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhpdmUuaGNhdGFsb2cuZGF0YS5Kc29uU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvbGF6eS9MYXp5U2ltcGxlU2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMQVpZX1NJTVBMRSA9IG5ldyBTZXJpYWxpemF0aW9uTGlicmFyeSgnb3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5zZXJkZTIubGF6eS5MYXp5U2ltcGxlU2VyRGUnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vaGl2ZS9jb250ZW50L2phdmFkb2NzL3IzLjEuMy9hcGkvb3JnL2FwYWNoZS9oYWRvb3AvaGl2ZS9zZXJkZTIvT3BlbkNTVlNlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1BFTl9DU1YgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLk9wZW5DU1ZTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9yY29uZ2l1L0hpdmUtSlNPTi1TZXJkZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUEVOWF9KU09OID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcub3BlbnguZGF0YS5qc29uc2VyZGUuSnNvblNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvcWwvaW8vb3JjL09yY1NlcmRlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IFNlcmlhbGl6YXRpb25MaWJyYXJ5KCdvcmcuYXBhY2hlLmhhZG9vcC5oaXZlLnFsLmlvLm9yYy5PcmNTZXJkZScpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9oaXZlL2NvbnRlbnQvamF2YWRvY3MvcjMuMS4zL2FwaS9vcmcvYXBhY2hlL2hhZG9vcC9oaXZlL3FsL2lvL3BhcnF1ZXQvc2VyZGUvUGFycXVldEhpdmVTZXJEZS5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUucWwuaW8ucGFycXVldC5zZXJkZS5QYXJxdWV0SGl2ZVNlckRlJyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL2hpdmUvY29udGVudC9qYXZhZG9jcy9yMy4xLjMvYXBpL29yZy9hcGFjaGUvaGFkb29wL2hpdmUvc2VyZGUyL1JlZ2V4U2VyRGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUdFWFAgPSBuZXcgU2VyaWFsaXphdGlvbkxpYnJhcnkoJ29yZy5hcGFjaGUuaGFkb29wLmhpdmUuc2VyZGUyLlJlZ2V4U2VyRGUnKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2xhc3NOYW1lOiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogQ2xhc3NpZmljYXRpb24gc3RyaW5nIGdpdmVuIHRvIHRhYmxlcyB3aXRoIHRoaXMgZGF0YSBmb3JtYXQuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYWRkLWNsYXNzaWZpZXIuaHRtbCNjbGFzc2lmaWVyLWJ1aWx0LWluXG4gKi9cbmV4cG9ydCBjbGFzcyBDbGFzc2lmaWNhdGlvblN0cmluZyB7XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC1hdnJvXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ2F2cm8nKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtY3N2XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENTViA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnY3N2Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LWpzb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSlNPTiA9IG5ldyBDbGFzc2lmaWNhdGlvblN0cmluZygnanNvbicpO1xuXG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nbHVlL2xhdGVzdC9kZy9hd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0Lmh0bWwjYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC14bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgWE1MID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCd4bWwnKTtcblxuICAvKipcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZ2x1ZS9sYXRlc3QvZGcvYXdzLWdsdWUtcHJvZ3JhbW1pbmctZXRsLWZvcm1hdC5odG1sI2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQtcGFycXVldFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJRVUVUID0gbmV3IENsYXNzaWZpY2F0aW9uU3RyaW5nKCdwYXJxdWV0Jyk7XG5cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dsdWUvbGF0ZXN0L2RnL2F3cy1nbHVlLXByb2dyYW1taW5nLWV0bC1mb3JtYXQuaHRtbCNhd3MtZ2x1ZS1wcm9ncmFtbWluZy1ldGwtZm9ybWF0LW9yY1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUkMgPSBuZXcgQ2xhc3NpZmljYXRpb25TdHJpbmcoJ29yYycpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogc3RyaW5nKSB7fVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgb2YgYSBEYXRhRm9ybWF0IGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFGb3JtYXRQcm9wcyB7XG4gIC8qKlxuICAgKiBgSW5wdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBgT3V0cHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICByZWFkb25seSBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnk7XG5cbiAgLyoqXG4gICAqIENsYXNzaWZpY2F0aW9uIHN0cmluZyBnaXZlbiB0byB0YWJsZXMgd2l0aCB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGNsYXNzaWZpY2F0aW9uIGlzIHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IGNsYXNzaWZpY2F0aW9uU3RyaW5nPzogQ2xhc3NpZmljYXRpb25TdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgaW5wdXQvb3V0cHV0IGZvcm1hdHMgYW5kIHNlci9kZSBmb3IgYSBzaW5nbGUgRGF0YUZvcm1hdC5cbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFGb3JtYXQge1xuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQXBhY2hlIFdlYiBTZXJ2ZXIgTG9ncy4gQWxzbyB3b3JrcyBmb3IgQ2xvdWRGcm9udCBsb2dzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXBhY2hlLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVBBQ0hFX0xPR1MgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LlJFR0VYUCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBBdnJvXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvYXZyby5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFWUk8gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LkFWUk8sXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuQVZSTyxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuQVZSTyxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQVZSTyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIENsb3VkVHJhaWwgbG9ncyBzdG9yZWQgb24gUzNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXRoZW5hL2xhdGVzdC91Zy9jbG91ZHRyYWlsLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xPVURUUkFJTF9MT0dTID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5DTE9VRFRSQUlMLFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5DTE9VRFRSQUlMLFxuICB9KTtcblxuICAvKipcbiAgICogRGF0YUZvcm1hdCBmb3IgQ1NWIEZpbGVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvY3N2Lmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ1NWID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5URVhULFxuICAgIG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0LkhJVkVfSUdOT1JFX0tFWV9URVhULFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUEVOX0NTVixcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuQ1NWLFxuICB9KTtcblxuICAvKipcbiAgICogU3RvcmVkIGFzIHBsYWluIHRleHQgZmlsZXMgaW4gSlNPTiBmb3JtYXQuXG4gICAqIFVzZXMgT3BlblggSnNvbiBTZXJEZSBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJhbGl6YXRpb24uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvanNvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEpTT04gPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5Lk9QRU5YX0pTT04sXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLkpTT04sXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBEYXRhRm9ybWF0IGZvciBMb2dzdGFzaCBMb2dzLCB1c2luZyB0aGUgR1JPSyBTZXJEZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdGhlbmEvbGF0ZXN0L3VnL2dyb2suaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMT0dTVEFTSCA9IG5ldyBEYXRhRm9ybWF0KHtcbiAgICBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQuVEVYVCxcbiAgICBvdXRwdXRGb3JtYXQ6IE91dHB1dEZvcm1hdC5ISVZFX0lHTk9SRV9LRVlfVEVYVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuR1JPSyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBPUkMgKE9wdGltaXplZCBSb3cgQ29sdW1uYXIpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvb3JjLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JDID0gbmV3IERhdGFGb3JtYXQoe1xuICAgIGlucHV0Rm9ybWF0OiBJbnB1dEZvcm1hdC5PUkMsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuT1JDLFxuICAgIHNlcmlhbGl6YXRpb25MaWJyYXJ5OiBTZXJpYWxpemF0aW9uTGlicmFyeS5PUkMsXG4gICAgY2xhc3NpZmljYXRpb25TdHJpbmc6IENsYXNzaWZpY2F0aW9uU3RyaW5nLk9SQyxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIEFwYWNoZSBQYXJxdWV0XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvcGFycXVldC5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUlFVRVQgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlBBUlFVRVQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuUEFSUVVFVCxcbiAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogU2VyaWFsaXphdGlvbkxpYnJhcnkuUEFSUVVFVCxcbiAgICBjbGFzc2lmaWNhdGlvblN0cmluZzogQ2xhc3NpZmljYXRpb25TdHJpbmcuUEFSUVVFVCxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIERhdGFGb3JtYXQgZm9yIFRTViAoVGFiLVNlcGFyYXRlZCBWYWx1ZXMpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F0aGVuYS9sYXRlc3QvdWcvbGF6eS1zaW1wbGUtc2VyZGUuaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBUU1YgPSBuZXcgRGF0YUZvcm1hdCh7XG4gICAgaW5wdXRGb3JtYXQ6IElucHV0Rm9ybWF0LlRFWFQsXG4gICAgb3V0cHV0Rm9ybWF0OiBPdXRwdXRGb3JtYXQuSElWRV9JR05PUkVfS0VZX1RFWFQsXG4gICAgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5LkxBWllfU0lNUExFLFxuICB9KTtcblxuICAvKipcbiAgICogYElucHV0Rm9ybWF0YCBmb3IgdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEZvcm1hdDogSW5wdXRGb3JtYXQ7XG5cbiAgLyoqXG4gICAqIGBPdXRwdXRGb3JtYXRgIGZvciB0aGlzIGRhdGEgZm9ybWF0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dEZvcm1hdDogT3V0cHV0Rm9ybWF0O1xuXG4gIC8qKlxuICAgKiBTZXJpYWxpemF0aW9uIGxpYnJhcnkgZm9yIHRoaXMgZGF0YSBmb3JtYXQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VyaWFsaXphdGlvbkxpYnJhcnk6IFNlcmlhbGl6YXRpb25MaWJyYXJ5O1xuXG4gIC8qKlxuICAgKiBDbGFzc2lmaWNhdGlvbiBzdHJpbmcgZ2l2ZW4gdG8gdGFibGVzIHdpdGggdGhpcyBkYXRhIGZvcm1hdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjbGFzc2lmaWNhdGlvblN0cmluZz86IENsYXNzaWZpY2F0aW9uU3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm9wczogRGF0YUZvcm1hdFByb3BzKSB7XG4gICAgdGhpcy5pbnB1dEZvcm1hdCA9IHByb3BzLmlucHV0Rm9ybWF0O1xuICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gcHJvcHMub3V0cHV0Rm9ybWF0O1xuICAgIHRoaXMuc2VyaWFsaXphdGlvbkxpYnJhcnkgPSBwcm9wcy5zZXJpYWxpemF0aW9uTGlicmFyeTtcbiAgICB0aGlzLmNsYXNzaWZpY2F0aW9uU3RyaW5nID0gcHJvcHMuY2xhc3NpZmljYXRpb25TdHJpbmc7XG4gIH1cbn1cbiJdfQ==