@btc-embedded/cdk-extensions 0.23.5 → 0.23.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/.githooks/pre-commit +2 -0
  2. package/.jsii +583 -13
  3. package/API.md +880 -49
  4. package/CHANGELOG.md +26 -0
  5. package/assets/cli/catnip.js +2 -2
  6. package/assets/test/constructs/api-keys/integration/api-key-client-authorization-runner.lambda/index.js +13 -122
  7. package/assets/test/constructs/api-keys/integration/api-key-management-runner-unauthorized.lambda/index.js +13 -122
  8. package/assets/test/constructs/api-keys/integration/api-key-management-runner.lambda/index.js +67 -122
  9. package/assets/test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda/index.js +13 -122
  10. package/lib/constructs/EventPipe.js +3 -4
  11. package/lib/constructs/ExportedService.js +7 -4
  12. package/lib/constructs/S3Bucket.js +2 -4
  13. package/lib/constructs/SecureRestApi.js +7 -4
  14. package/lib/constructs/SecureRestApiV2.js +5 -4
  15. package/lib/constructs/api-keys/ApiKeyClientAuthorization.js +3 -4
  16. package/lib/constructs/api-keys/ApiKeyManagement.js +6 -4
  17. package/lib/constructs/api-keys/ApiKeyPreTokenHandler.js +2 -4
  18. package/lib/constructs/api-keys/ApiKeyStore.js +4 -4
  19. package/lib/constructs/api-keys/lambdas/api-client-authorization-function.d.ts +0 -5
  20. package/lib/constructs/api-keys/lambdas/api-client-authorization-function.js +37 -5
  21. package/lib/constructs/api-keys/lambdas/api-key-creation-function.d.ts +0 -5
  22. package/lib/constructs/api-keys/lambdas/api-key-creation-function.js +37 -5
  23. package/lib/constructs/api-keys/lambdas/api-key-update-function.d.ts +0 -5
  24. package/lib/constructs/api-keys/lambdas/api-key-update-function.js +37 -5
  25. package/lib/constructs/api-keys/lambdas/pre-token-function.d.ts +0 -5
  26. package/lib/constructs/api-keys/lambdas/pre-token-function.js +37 -5
  27. package/lib/constructs/api-keys/lambdas/pre-token.lambda.js +5 -2
  28. package/lib/extensions/ApiGatewayExtension.js +3 -4
  29. package/lib/extensions/ApplicationContainer.js +3 -4
  30. package/lib/extensions/ApplicationLoadBalancerExtension.js +9 -4
  31. package/lib/extensions/ApplicationLoadBalancerExtensionV2.js +3 -4
  32. package/lib/extensions/CloudMapExtension.js +9 -4
  33. package/lib/extensions/DeactivatableServiceExtension.js +2 -4
  34. package/lib/extensions/DeploymentConfigExtension.js +3 -4
  35. package/lib/extensions/DocumentDbAccessExtension.js +39 -5
  36. package/lib/extensions/DomainEventMessagingExtension.js +8 -6
  37. package/lib/extensions/EfsMountExtension.js +6 -4
  38. package/lib/extensions/ExecExtension.js +3 -1
  39. package/lib/extensions/ExtraContainerExtension.js +38 -5
  40. package/lib/extensions/HTTPApiExtension.js +3 -4
  41. package/lib/extensions/LogExtension.js +40 -5
  42. package/lib/extensions/ModifyContainerDefinitionExtension.js +4 -4
  43. package/lib/extensions/ModifyTaskDefinitionExtension.js +3 -4
  44. package/lib/extensions/OpenIdExtension.js +44 -5
  45. package/lib/extensions/OpenTelemetryExtension.js +4 -4
  46. package/lib/extensions/PostgresDbAccessExtension.js +50 -5
  47. package/lib/extensions/SharedVolumeExtension.js +4 -4
  48. package/lib/extensions/TcpKeepAliveExtension.js +4 -4
  49. package/lib/platform/ApiGateway.js +20 -18
  50. package/lib/platform/ApiGatewayVpcLink.js +19 -23
  51. package/lib/platform/ApplicationLoadBalancer.js +4 -4
  52. package/lib/platform/ApplicationLoadBalancerV2.d.ts +1 -0
  53. package/lib/platform/ApplicationLoadBalancerV2.js +41 -37
  54. package/lib/platform/AuroraPostgresDB.js +80 -40
  55. package/lib/platform/BTCLogGroup.js +7 -9
  56. package/lib/platform/CognitoUserPool.js +45 -45
  57. package/lib/platform/DefaultUserPoolClients.js +4 -4
  58. package/lib/platform/DocumentDB.js +20 -21
  59. package/lib/platform/EcsCluster.js +15 -19
  60. package/lib/platform/EfsFileSystem.js +4 -4
  61. package/lib/platform/HostedZone.js +17 -21
  62. package/lib/platform/PrivateDnsNamespace.js +23 -27
  63. package/lib/platform/ResourceServer.js +4 -4
  64. package/lib/platform/Vpc.js +23 -24
  65. package/lib/platform/VpcV2.js +11 -15
  66. package/lib/stacks/ApplicationStack.js +2 -4
  67. package/lib/utils/BasePlatformStackResolver.js +2 -4
  68. package/lib/utils/StackParameter.js +4 -4
  69. package/lib/utils/configFileParsing.js +37 -4
  70. package/package.json +72 -65
  71. package/renovate.json5 +4 -2
@@ -59,9 +59,9 @@ var require_typeof = __commonJS({
59
59
  }
60
60
  });
61
61
 
62
- // node_modules/aws-api-gateway-client/node_modules/url-template/lib/url-template.js
62
+ // node_modules/url-template/lib/url-template.js
63
63
  var require_url_template = __commonJS({
64
- "node_modules/aws-api-gateway-client/node_modules/url-template/lib/url-template.js"(exports2, module2) {
64
+ "node_modules/url-template/lib/url-template.js"(exports2, module2) {
65
65
  "use strict";
66
66
  (function(root, factory) {
67
67
  if (typeof exports2 === "object") {
@@ -7318,137 +7318,28 @@ var Logger = class _Logger extends Utility {
7318
7318
  // test/constructs/api-keys/integration/api-key-management-runner.lambda.ts
7319
7319
  var import_aws_api_gateway_client = __toESM(require_apigClient());
7320
7320
 
7321
- // node_modules/url-template/lib/url-template.js
7322
- function encodeReserved(str) {
7323
- return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {
7324
- if (!/%[0-9A-Fa-f]/.test(part)) {
7325
- part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
7321
+ // test/constructs/api-keys/integration/common.ts
7322
+ var logger = new Logger({ logLevel: LogLevel.INFO });
7323
+ function expandPathTemplate(path, parameters) {
7324
+ return path.replace(/\{([^}]+)\}/g, (_match, key) => {
7325
+ const value = parameters[key];
7326
+ if (value === void 0) {
7327
+ throw new Error(`Missing path parameter '${key}' for path '${path}'.`);
7326
7328
  }
7327
- return part;
7328
- }).join("");
7329
- }
7330
- function encodeUnreserved(str) {
7331
- return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
7332
- return "%" + c.charCodeAt(0).toString(16).toUpperCase();
7329
+ return encodeURIComponent(String(value));
7333
7330
  });
7334
7331
  }
7335
- function encodeValue(operator, value, key) {
7336
- value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value);
7337
- if (key) {
7338
- return encodeUnreserved(key) + "=" + value;
7339
- } else {
7340
- return value;
7341
- }
7342
- }
7343
- function isDefined(value) {
7344
- return value !== void 0 && value !== null;
7345
- }
7346
- function isKeyOperator(operator) {
7347
- return operator === ";" || operator === "&" || operator === "?";
7348
- }
7349
- function getValues(context, operator, key, modifier) {
7350
- var value = context[key], result = [];
7351
- if (isDefined(value) && value !== "") {
7352
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
7353
- value = value.toString();
7354
- if (modifier && modifier !== "*") {
7355
- value = value.substring(0, parseInt(modifier, 10));
7356
- }
7357
- result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
7358
- } else {
7359
- if (modifier === "*") {
7360
- if (Array.isArray(value)) {
7361
- value.filter(isDefined).forEach(function(value2) {
7362
- result.push(encodeValue(operator, value2, isKeyOperator(operator) ? key : null));
7363
- });
7364
- } else {
7365
- Object.keys(value).forEach(function(k) {
7366
- if (isDefined(value[k])) {
7367
- result.push(encodeValue(operator, value[k], k));
7368
- }
7369
- });
7370
- }
7371
- } else {
7372
- var tmp = [];
7373
- if (Array.isArray(value)) {
7374
- value.filter(isDefined).forEach(function(value2) {
7375
- tmp.push(encodeValue(operator, value2));
7376
- });
7377
- } else {
7378
- Object.keys(value).forEach(function(k) {
7379
- if (isDefined(value[k])) {
7380
- tmp.push(encodeUnreserved(k));
7381
- tmp.push(encodeValue(operator, value[k].toString()));
7382
- }
7383
- });
7384
- }
7385
- if (isKeyOperator(operator)) {
7386
- result.push(encodeUnreserved(key) + "=" + tmp.join(","));
7387
- } else if (tmp.length !== 0) {
7388
- result.push(tmp.join(","));
7389
- }
7390
- }
7391
- }
7392
- } else {
7393
- if (operator === ";") {
7394
- if (isDefined(value)) {
7395
- result.push(encodeUnreserved(key));
7396
- }
7397
- } else if (value === "" && (operator === "&" || operator === "?")) {
7398
- result.push(encodeUnreserved(key) + "=");
7399
- } else if (value === "") {
7400
- result.push("");
7401
- }
7402
- }
7403
- return result;
7404
- }
7405
- function parseTemplate(template) {
7406
- var operators = ["+", "#", ".", "/", ";", "?", "&"];
7407
- return {
7408
- expand: function(context) {
7409
- return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function(_, expression, literal) {
7410
- if (expression) {
7411
- var operator = null, values = [];
7412
- if (operators.indexOf(expression.charAt(0)) !== -1) {
7413
- operator = expression.charAt(0);
7414
- expression = expression.substr(1);
7415
- }
7416
- expression.split(/,/g).forEach(function(variable) {
7417
- var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
7418
- values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
7419
- });
7420
- if (operator && operator !== "+") {
7421
- var separator = ",";
7422
- if (operator === "?") {
7423
- separator = "&";
7424
- } else if (operator !== "#") {
7425
- separator = operator;
7426
- }
7427
- return (values.length !== 0 ? operator : "") + values.join(separator);
7428
- } else {
7429
- return values.join(",");
7430
- }
7431
- } else {
7432
- return encodeReserved(literal);
7433
- }
7434
- });
7435
- }
7436
- };
7437
- }
7438
-
7439
- // test/constructs/api-keys/integration/common.ts
7440
- var logger = new Logger({ logLevel: LogLevel.INFO });
7441
7332
  async function callAndValidate(client2, name, requestOptions, validationOptions) {
7442
7333
  logger.info(`Executing test "${name}".`);
7443
- const path = requestOptions.pathParameters ? parseTemplate(requestOptions.path).expand(requestOptions.pathParameters) : requestOptions.path;
7334
+ const path = requestOptions.pathParameters ? expandPathTemplate(requestOptions.path, requestOptions.pathParameters) : requestOptions.path;
7444
7335
  logger.info(`calling ${requestOptions.method} /${path}`);
7445
- await client2.invokeApi({}, path, requestOptions.method, {}, requestOptions.body).then(function(result) {
7336
+ await client2.invokeApi({}, path, requestOptions.method, {}, requestOptions.body).then(async function(result) {
7446
7337
  if (result.status !== validationOptions.code) {
7447
7338
  throw new ValidationError(
7448
7339
  `Invalid API response code: ${result.status}`
7449
7340
  );
7450
7341
  }
7451
- validationOptions.validation(result.data);
7342
+ await validationOptions.validation(result.data);
7452
7343
  logger.info(`Test "${name}" has been executed.`);
7453
7344
  }).catch(function(error) {
7454
7345
  if (error.name == ValidationError.name) {
@@ -7498,6 +7389,7 @@ var handler = async () => {
7498
7389
  secretKey: process.env.AWS_SECRET_ACCESS_KEY,
7499
7390
  sessionToken: process.env.AWS_SESSION_TOKEN
7500
7391
  });
7392
+ await removeExistingKeys(path, pathWithId);
7501
7393
  await callAndValidate(
7502
7394
  client,
7503
7395
  "Empty database",
@@ -7759,6 +7651,22 @@ var handler = async () => {
7759
7651
  }
7760
7652
  }
7761
7653
  );
7654
+ await callAndValidate(
7655
+ client,
7656
+ "Delete remaining key",
7657
+ {
7658
+ path: pathWithId,
7659
+ method: "DELETE",
7660
+ pathParameters: { id: apiKey2 }
7661
+ },
7662
+ {
7663
+ code: 200,
7664
+ validation: function(data) {
7665
+ logger2.info("Delete:", data);
7666
+ validateResult({ message: "Item deleted successfully" }, data);
7667
+ }
7668
+ }
7669
+ );
7762
7670
  const unauthorizedRequest = await fetch(url + path);
7763
7671
  if (unauthorizedRequest.status != 403) {
7764
7672
  throw new Error(
@@ -7766,6 +7674,43 @@ var handler = async () => {
7766
7674
  );
7767
7675
  }
7768
7676
  };
7677
+ async function removeExistingKeys(path, pathWithId) {
7678
+ await callAndValidate(
7679
+ client,
7680
+ "Clean up existing keys",
7681
+ {
7682
+ path,
7683
+ method: "GET"
7684
+ },
7685
+ {
7686
+ code: 200,
7687
+ validation: async function(data) {
7688
+ logger2.info("Existing keys:", data);
7689
+ for (const key of data.keys ?? []) {
7690
+ await callAndValidate(
7691
+ client,
7692
+ `Delete existing key ${key.id}`,
7693
+ {
7694
+ path: pathWithId,
7695
+ method: "DELETE",
7696
+ pathParameters: { id: key.id }
7697
+ },
7698
+ {
7699
+ code: 200,
7700
+ validation: function(deleteData) {
7701
+ logger2.info("Delete:", deleteData);
7702
+ validateResult(
7703
+ { message: "Item deleted successfully" },
7704
+ deleteData
7705
+ );
7706
+ }
7707
+ }
7708
+ );
7709
+ }
7710
+ }
7711
+ }
7712
+ );
7713
+ }
7769
7714
  function validateResult(expected, actual) {
7770
7715
  if (typeof expected !== typeof actual) {
7771
7716
  throw new ValidationError(
@@ -59,9 +59,9 @@ var require_typeof = __commonJS({
59
59
  }
60
60
  });
61
61
 
62
- // node_modules/aws-api-gateway-client/node_modules/url-template/lib/url-template.js
62
+ // node_modules/url-template/lib/url-template.js
63
63
  var require_url_template = __commonJS({
64
- "node_modules/aws-api-gateway-client/node_modules/url-template/lib/url-template.js"(exports2, module2) {
64
+ "node_modules/url-template/lib/url-template.js"(exports2, module2) {
65
65
  "use strict";
66
66
  (function(root, factory) {
67
67
  if (typeof exports2 === "object") {
@@ -7318,137 +7318,28 @@ var Logger = class _Logger extends Utility {
7318
7318
  // test/constructs/api-keys/integration/api-key-pre-token-handler-runner.lambda.ts
7319
7319
  var import_aws_api_gateway_client = __toESM(require_apigClient());
7320
7320
 
7321
- // node_modules/url-template/lib/url-template.js
7322
- function encodeReserved(str) {
7323
- return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) {
7324
- if (!/%[0-9A-Fa-f]/.test(part)) {
7325
- part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]");
7321
+ // test/constructs/api-keys/integration/common.ts
7322
+ var logger = new Logger({ logLevel: LogLevel.INFO });
7323
+ function expandPathTemplate(path, parameters) {
7324
+ return path.replace(/\{([^}]+)\}/g, (_match, key) => {
7325
+ const value = parameters[key];
7326
+ if (value === void 0) {
7327
+ throw new Error(`Missing path parameter '${key}' for path '${path}'.`);
7326
7328
  }
7327
- return part;
7328
- }).join("");
7329
- }
7330
- function encodeUnreserved(str) {
7331
- return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
7332
- return "%" + c.charCodeAt(0).toString(16).toUpperCase();
7329
+ return encodeURIComponent(String(value));
7333
7330
  });
7334
7331
  }
7335
- function encodeValue(operator, value, key) {
7336
- value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value);
7337
- if (key) {
7338
- return encodeUnreserved(key) + "=" + value;
7339
- } else {
7340
- return value;
7341
- }
7342
- }
7343
- function isDefined(value) {
7344
- return value !== void 0 && value !== null;
7345
- }
7346
- function isKeyOperator(operator) {
7347
- return operator === ";" || operator === "&" || operator === "?";
7348
- }
7349
- function getValues(context, operator, key, modifier) {
7350
- var value = context[key], result = [];
7351
- if (isDefined(value) && value !== "") {
7352
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
7353
- value = value.toString();
7354
- if (modifier && modifier !== "*") {
7355
- value = value.substring(0, parseInt(modifier, 10));
7356
- }
7357
- result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));
7358
- } else {
7359
- if (modifier === "*") {
7360
- if (Array.isArray(value)) {
7361
- value.filter(isDefined).forEach(function(value2) {
7362
- result.push(encodeValue(operator, value2, isKeyOperator(operator) ? key : null));
7363
- });
7364
- } else {
7365
- Object.keys(value).forEach(function(k) {
7366
- if (isDefined(value[k])) {
7367
- result.push(encodeValue(operator, value[k], k));
7368
- }
7369
- });
7370
- }
7371
- } else {
7372
- var tmp = [];
7373
- if (Array.isArray(value)) {
7374
- value.filter(isDefined).forEach(function(value2) {
7375
- tmp.push(encodeValue(operator, value2));
7376
- });
7377
- } else {
7378
- Object.keys(value).forEach(function(k) {
7379
- if (isDefined(value[k])) {
7380
- tmp.push(encodeUnreserved(k));
7381
- tmp.push(encodeValue(operator, value[k].toString()));
7382
- }
7383
- });
7384
- }
7385
- if (isKeyOperator(operator)) {
7386
- result.push(encodeUnreserved(key) + "=" + tmp.join(","));
7387
- } else if (tmp.length !== 0) {
7388
- result.push(tmp.join(","));
7389
- }
7390
- }
7391
- }
7392
- } else {
7393
- if (operator === ";") {
7394
- if (isDefined(value)) {
7395
- result.push(encodeUnreserved(key));
7396
- }
7397
- } else if (value === "" && (operator === "&" || operator === "?")) {
7398
- result.push(encodeUnreserved(key) + "=");
7399
- } else if (value === "") {
7400
- result.push("");
7401
- }
7402
- }
7403
- return result;
7404
- }
7405
- function parseTemplate(template) {
7406
- var operators = ["+", "#", ".", "/", ";", "?", "&"];
7407
- return {
7408
- expand: function(context) {
7409
- return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function(_, expression, literal) {
7410
- if (expression) {
7411
- var operator = null, values = [];
7412
- if (operators.indexOf(expression.charAt(0)) !== -1) {
7413
- operator = expression.charAt(0);
7414
- expression = expression.substr(1);
7415
- }
7416
- expression.split(/,/g).forEach(function(variable) {
7417
- var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable);
7418
- values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));
7419
- });
7420
- if (operator && operator !== "+") {
7421
- var separator = ",";
7422
- if (operator === "?") {
7423
- separator = "&";
7424
- } else if (operator !== "#") {
7425
- separator = operator;
7426
- }
7427
- return (values.length !== 0 ? operator : "") + values.join(separator);
7428
- } else {
7429
- return values.join(",");
7430
- }
7431
- } else {
7432
- return encodeReserved(literal);
7433
- }
7434
- });
7435
- }
7436
- };
7437
- }
7438
-
7439
- // test/constructs/api-keys/integration/common.ts
7440
- var logger = new Logger({ logLevel: LogLevel.INFO });
7441
7332
  async function callAndValidate(client2, name, requestOptions, validationOptions) {
7442
7333
  logger.info(`Executing test "${name}".`);
7443
- const path = requestOptions.pathParameters ? parseTemplate(requestOptions.path).expand(requestOptions.pathParameters) : requestOptions.path;
7334
+ const path = requestOptions.pathParameters ? expandPathTemplate(requestOptions.path, requestOptions.pathParameters) : requestOptions.path;
7444
7335
  logger.info(`calling ${requestOptions.method} /${path}`);
7445
- await client2.invokeApi({}, path, requestOptions.method, {}, requestOptions.body).then(function(result) {
7336
+ await client2.invokeApi({}, path, requestOptions.method, {}, requestOptions.body).then(async function(result) {
7446
7337
  if (result.status !== validationOptions.code) {
7447
7338
  throw new ValidationError(
7448
7339
  `Invalid API response code: ${result.status}`
7449
7340
  );
7450
7341
  }
7451
- validationOptions.validation(result.data);
7342
+ await validationOptions.validation(result.data);
7452
7343
  logger.info(`Test "${name}" has been executed.`);
7453
7344
  }).catch(function(error) {
7454
7345
  if (error.name == ValidationError.name) {
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.EventPipe = exports.InvocationType = exports.LogLevel = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -51,6 +50,8 @@ var InvocationType;
51
50
  * A wrapper for the L1 event pipe with the ability to deactivate it within the stack.
52
51
  */
53
52
  class EventPipe extends construct_1.Construct {
53
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@btc-embedded/cdk-extensions.EventPipe", version: "0.23.7" };
54
+ role;
54
55
  constructor(scope, id, props) {
55
56
  super(scope, id);
56
57
  let targetStepFunction = "stepFunction" in props.target ? props.target.stepFunction : undefined;
@@ -144,6 +145,4 @@ class EventPipe extends construct_1.Construct {
144
145
  }
145
146
  }
146
147
  exports.EventPipe = EventPipe;
147
- _a = JSII_RTTI_SYMBOL_1;
148
- EventPipe[_a] = { fqn: "@btc-embedded/cdk-extensions.EventPipe", version: "0.23.5" };
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRQaXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXZlbnRQaXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLGlEQUE2RDtBQUU3RCxxREFBZ0Q7QUFHaEQsd0RBQXFEO0FBQ3JELDBDQUEwQztBQUMxQyx3RUFBdUU7QUFzQ3ZFLElBQVksUUFpQlg7QUFqQkQsV0FBWSxRQUFRO0lBQ2xCOztPQUVHO0lBQ0gsdUJBQVcsQ0FBQTtJQUNYOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtJQUNmOztPQUVHO0lBQ0gseUJBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBakJXLFFBQVEsd0JBQVIsUUFBUSxRQWlCbkI7QUFFRDs7R0FFRztBQUNILElBQVksY0FjWDtBQWRELFdBQVksY0FBYztJQUN4Qjs7Ozs7T0FLRztJQUNILDJFQUFnQixDQUFBO0lBQ2hCOzs7O09BSUc7SUFDSCx5RUFBZSxDQUFBO0FBQ2pCLENBQUMsRUFkVyxjQUFjLDhCQUFkLGNBQWMsUUFjekI7QUEyRkQ7O0dBRUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxxQkFBUztJQUd0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFCO1FBQzdELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxrQkFBa0IsR0FDcEIsY0FBYyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekUsSUFBSSw0QkFBNEIsR0FDOUIsWUFBWSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFckUsSUFBSSxXQUFXLEdBQUcsT0FBTyxJ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QUUsQ0FBQztRQUVQLElBQUksbUJBQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzdCLEdBQUcsaUJBQWlCO1lBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUM3QixNQUFNLEVBQUUsU0FBUztZQUNqQixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELFFBQVEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBcUI7UUFDMUMsT0FBTyxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDekUsQ0FBQzs7QUE5R0gsOEJBK0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgSUxvZ0dyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQgeyBDZm5QaXBlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1waXBlc1wiO1xuaW1wb3J0IHsgSVF1ZXVlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIjtcbmltcG9ydCB7IElTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzL2xpYi9jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEJUQ0xvZ0dyb3VwIH0gZnJvbSBcIi4uL3BsYXRmb3JtXCI7XG5pbXBvcnQgeyBpc0RlYWN0aXZhdGVkQ29uc3RydWN0IH0gZnJvbSBcIi4uL3V0aWxzL2RlYWN0aXZhdGVkQ29uc3RydWN0XCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgcGlwZSBjb25zdHJ1Y3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQaXBlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHNvdXJjZSBTUVMgcXVldWUuIE5vIG90aGVyIHNvdXJjZSB0eXBlcyBhcmUgc3VwcG9ydGVkIGF0IHRoZSBtb21lbnQuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2U6IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIHRhcmdldCBTUVMgcXVldWUgb3IgdGFyZ2V0IHN0ZXAgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSB0YXJnZXQ6IFRhcmdldFF1ZXVlIHwgVGFyZ2V0U3RlcEZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9sZSB1c2VkIGJ5IHRoZSBldmVudCBwaXBlLiBJZiBvbWl0dGVkLCBhIG5ldyByb2xlIGlzIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSByb2xlPzogUm9sZTtcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgZmlsdGVyIGZvciB0aGUgcGlwZS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlcj86IFBpcGVGaWx0ZXI7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbG9nIGxldmVsIGZvciB0aGUgcGlwZS4gQ3JlYXRlcyBhIG5ldyBsb2cgZ3JvdXAsIGlmIGVuYWJsZWQuXG4gICAqIERlZmF1bHQ6IERpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBMb2dMZXZlbDtcblxuICAvKipcbiAgICogVXNlIGFuIGV4aXN0aW5nIGxvZyBncm91cC4gSWYgbm9uZSBpcyBnaXZlbiBhbmQgbG9nZ2luZyBpcyBlbmFibGVkLCBhIG5ldyBsb2cgZ3JvdXAgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA/OiBJTG9nR3JvdXA7XG59XG5cbmV4cG9ydCBlbnVtIExvZ0xldmVsIHtcbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgbG9nZ2luZy4gTm8gbG9nIGdyb3VwIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIE9GRiA9IFwiT0ZGXCIsXG4gIC8qKlxuICAgKiBPbmx5IGxvZyBlcnJvcnMuXG4gICAqL1xuICBFUlJPUiA9IFwiRVJST1JcIixcbiAgLyoqXG4gICAqIExvZyBlcnJvcnMgYW5kIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMuXG4gICAqL1xuICBJTkZPID0gXCJJTkZPXCIsXG4gIC8qKlxuICAgKiBMb2cgdmVyeSB2ZXJib3NlLlxuICAgKi9cbiAgVFJBQ0UgPSBcIlRSQUNFXCIsXG59XG5cbi8qKlxuICogVGhlIGludm9jYXRpb24gdHlwZSBvZiB0aGUgc3RlcCBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGVudW0gSW52b2NhdGlvblR5cGUge1xuICAvKipcbiAgICogKGRlZmF1bHQpIC0gSW52b2tlIHN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0U3luY0V4ZWN1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX1N0YXJ0U3luY0V4ZWN1dGlvbi5odG1sKVxuICAgKiBpbiB0aGUgKkFXUyBTdGVwIEZ1bmN0aW9ucyBBUEkgUmVmZXJlbmNlKi5cbiAgICogPiBgUkVRVUVTVF9SRVNQT05TRWAgaXMgbm90IHN1cHBvcnRlZCBmb3IgYFNUQU5EQVJEYCBzdGF0ZSBtYWNoaW5lIHdvcmtmbG93cy5cbiAgICovXG4gIFJFUVVFU1RfUkVTUE9OU0UsXG4gIC8qKlxuICAgKiBJbnZva2UgYXN5bmNocm9ub3VzbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1N0YXJ0RXhlY3V0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2FwaXJlZmVyZW5jZS9BUElfU3RhcnRFeGVjdXRpb24uaHRtbClcbiAgICogaW4gdGhlICpBV1MgU3RlcCBGdW5jdGlvbnMgQVBJIFJlZmVyZW5jZSouXG4gICAqL1xuICBGSVJFX0FORF9GT1JHRVQsXG59XG5cbi8qKlxuICogVGhlIGlucHV0IHRlbXBsYXRlLlxuICogTm90ZSB0aGF0IHNvbWUgdmFsdWVzIGluIHRoZSByZXN1bHRpbmcgY29kZSBzaG91bGQgbm90IGhhdmUgcXVvdGVzIGFyb3VuZCB0aGUgdmFsdWUsIGUuZy4gaWYgYW4gb2JqZWN0XG4gKiBzaGFsbCBiZSBhZGRlZC4gVG8gcmVmbGVjdCB0aGlzLCBhZGQgY3VybHkgYnJhY2tldHMgYXJvdW5kIHRoZSB2YWx1ZSwgZS5nLiBge3s8JC5ib2R5Pn19YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dFRlbXBsYXRlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNRUyBxdWV1ZSBhcyBwaXBlIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRRdWV1ZSB7XG4gIHJlYWRvbmx5IHF1ZXVlOiBJUXVldWU7XG59XG5cbi8qKlxuICogU3RlcEZ1bmN0aW9uIGFzIHBpcGUgdGFyZ2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFN0ZXBGdW5jdGlvbiB7XG4gIHJlYWRvbmx5IHN0ZXBGdW5jdGlvbjogSVN0YXRlTWFjaGluZTtcbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgYSBzdGVwIGZ1bmN0aW9uIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzIHtcbiAgcmVhZG9ubHkgaW5wdXRUZW1wbGF0ZT86IElucHV0VGVtcGxhdGU7XG4gIHJlYWRvbmx5IGludm9jYXRpb25UeXBlPzogSW52b2NhdGlvblR5cGU7XG59XG5cbi8qKlxuICogQmFzZSB0eXBlIGZvciBmaWx0ZXIgcnVsZXMuIE5vdCBhbGwgYXZhaWxhYmxlIHJ1bGVzIGFyZSBjdXJyZW50bHkgaW1wbGVtZW50ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlclJ1bGUgPVxuICB8IFByZWZpeEZpbHRlclJ1bGVcbiAgfCBTdWZmaXhGaWx0ZXJSdWxlXG4gIHwgQW55dGhpbmdCdXRGaWx0ZXJSdWxlXG4gIHwgRmlsdGVyRXF1YWxzSWdub3JlQ2FzZTtcblxuLyoqXG4gKiBSdWxlIHRoYXQgYSBwcm9wZXJ0eSBoYXMgdG8gc3RhcnQgd2l0aCBhIHByZWZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgcHJlZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhIHByb3BlcnR5IGhhcyB0byBlbmQgd2l0aCBhIHN1ZmZpeC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWZmaXhGaWx0ZXJSdWxlIHtcbiAgcmVhZG9ubHkgc3VmZml4OiBzdHJpbmcgfCBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBhbGxvd3MgYWxsIHZhbHVlcyBleGNlcHQgdGhlIGdpdmVuIG9uZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQW55dGhpbmdCdXRGaWx0ZXJSdWxlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJhbnl0aGluZy1idXRcIjogc3RyaW5nW10gfCBGaWx0ZXJSdWxlO1xufVxuXG4vKipcbiAqIFJ1bGUgdGhhdCBtYXRjaGVzIGEgc3RyaW5nLCBpZ25vcmluZyB0aGUgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJFcXVhbHNJZ25vcmVDYXNlIHtcbiAgLyoqXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8qKlxuICogQSBmaWx0ZXIgZm9yIG1lc3NhZ2VzIGluIHRoZSBwaXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVGaWx0ZXIge1xuICAvKipcbiAgICogVGhlIHJ1bGVzIGZvciBlYWNoIGF0dHJpYnV0ZSBvZiB0aGUgYm9keS5cbiAgICogQGpzaWkgaWdub3JlXG4gICAqL1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBGaWx0ZXJSdWxlW107XG59XG5cbi8qKlxuICogQSB3cmFwcGVyIGZvciB0aGUgTDEgZXZlbnQgcGlwZSB3aXRoIHRoZSBhYmlsaXR5IHRvIGRlYWN0aXZhdGUgaXQgd2l0aGluIHRoZSBzdGFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50UGlwZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBSb2xlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudFBpcGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uID1cbiAgICAgIFwic3RlcEZ1bmN0aW9uXCIgaW4gcHJvcHMudGFyZ2V0ID8gcHJvcHMudGFyZ2V0LnN0ZXBGdW5jdGlvbiA6IHVuZGVmaW5lZDtcbiAgICBsZXQgdGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycyA9XG4gICAgICBcInBhcmFtZXRlcnNcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucGFyYW1ldGVycyA6IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRRdWV1ZSA9IFwicXVldWVcIiBpbiBwcm9wcy50YXJnZXQgPyBwcm9wcy50YXJnZXQucXVldWUgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgc3FzVGFyZ2V0ID0gdGFyZ2V0UXVldWUgIT09IHVuZGVmaW5lZDtcblxuICAgIGxldCB0YXJnZXRBcm4gPSBzcXNUYXJnZXRcbiAgICAgID8gdGFyZ2V0UXVldWUhLnF1ZXVlQXJuXG4gICAgICA6IHRhcmdldFN0ZXBGdW5jdGlvbiEuc3RhdGVNYWNoaW5lQXJuO1xuXG4gICAgbGV0IGRlc2lyZWRTdGF0ZSA9IFwiUlVOTklOR1wiO1xuICAgIGlmIChpc0RlYWN0aXZhdGVkQ29uc3RydWN0KGlkKSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkSW5mbyhgJHtpZH0gaXMgc2V0IGRvIGJlIGRlYWN0aXZhdGVkLmApO1xuICAgICAgZGVzaXJlZFN0YXRlID0gXCJTVE9QUEVEXCI7XG4gICAgfVxuXG4gICAgdGhpcy5yb2xlID1cbiAgICAgIHByb3BzLnJvbGUgfHxcbiAgICAgIG5ldyBSb2xlKHRoaXMsIFwiRXZlbnRQaXBlUm9sZVwiLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IFNlcnZpY2VQcmluY2lwYWwoXCJwaXBlcy5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgfSk7XG5cbiAgICBsZXQgZmlsdGVyQ3JpdGVyaWEgPSBwcm9wcy5maWx0ZXJcbiAgICAgID8ge1xuICAgICAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGF0dGVybjogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgIC4uLnByb3BzLmZpbHRlcixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgdGFyZ2V0UGFyYW1ldGVyczogQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5ID0ge307XG4gICAgaWYgKHRhcmdldFF1ZXVlKSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBtZXNzYWdlR3JvdXBJZDogXCJkZWZhdWx0XCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRQYXJhbWV0ZXJzID0ge1xuICAgICAgICBzdGVwRnVuY3Rpb25TdGF0ZU1hY2hpbmVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgaW52b2NhdGlvblR5cGU6IHRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM/Lmludm9jYXRpb25UeXBlXG4gICAgICAgICAgICA/IEludm9jYXRpb25UeXBlW3RhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnMuaW52b2NhdGlvblR5cGVdXG4gICAgICAgICAgICA6IEludm9jYXRpb25UeXBlW0ludm9jYXRpb25UeXBlLlJFUVVFU1RfUkVTUE9OU0VdLFxuICAgICAgICB9LFxuICAgICAgICAuLi4odGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycz8uaW5wdXRUZW1wbGF0ZSAmJiB7XG4gICAgICAgICAgaW5wdXRUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB0YXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzLmlucHV0VGVtcGxhdGUsXG4gICAgICAgICAgKS5yZXBsYWNlKC9cIlxce1xceyguKz8pXFx9XFx9XCIvLCBcIiQxXCIpLFxuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHNvdXJjZVBhcmFtZXRlcnMgPSB7XG4gICAgICBzcXNRdWV1ZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgYmF0Y2hTaXplOiAxLFxuICAgICAgfSxcbiAgICAgIC4uLihmaWx0ZXJDcml0ZXJpYSAmJiB7IGZpbHRlckNyaXRlcmlhOiBmaWx0ZXJDcml0ZXJpYSB9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyAocHJvcHMubG9nR3JvdXAgPz9cbiAgICAgICAgbmV3IEJUQ0xvZ0dyb3VwKHRoaXMsIFwiRXZlbnRQaXBlTG9nR3JvdXBcIiwge1xuICAgICAgICAgIGxvZ1R5cGU6IFwiZXZlbnQtcGlwZVwiLFxuICAgICAgICB9KSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcGlwZUNvbmZpZ3VyYXRpb24gPSB0aGlzLmxvZ2dpbmdFbmFibGVkKHByb3BzKVxuICAgICAgPyB7XG4gICAgICAgICAgbG9nQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgICAgY2xvdWR3YXRjaExvZ3NMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICAgICAgICBsb2dHcm91cEFybjogbG9nR3JvdXAhLmxvZ0dyb3VwQXJuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxldmVsOiBwcm9wcy5sb2dMZXZlbCxcbiAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgICA6IHt9O1xuXG4gICAgbmV3IENmblBpcGUodGhpcywgXCJFdmVudFBpcGVcIiwge1xuICAgICAgLi4ucGlwZUNvbmZpZ3VyYXRpb24sXG4gICAgICByb2xlQXJuOiB0aGlzLnJvbGUucm9sZUFybixcbiAgICAgIHNvdXJjZTogcHJvcHMuc291cmNlLnF1ZXVlQXJuLFxuICAgICAgdGFyZ2V0OiB0YXJnZXRBcm4sXG4gICAgICBzb3VyY2VQYXJhbWV0ZXJzOiBzb3VyY2VQYXJhbWV0ZXJzLFxuICAgICAgdGFyZ2V0UGFyYW1ldGVyczogdGFyZ2V0UGFyYW1ldGVycyxcbiAgICAgIGRlc2lyZWRTdGF0ZTogZGVzaXJlZFN0YXRlLFxuICAgIH0pO1xuXG4gICAgcHJvcHMuc291cmNlLmdyYW50Q29uc3VtZU1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0UXVldWU/LmdyYW50U2VuZE1lc3NhZ2VzKHRoaXMucm9sZSk7XG4gICAgdGFyZ2V0U3RlcEZ1bmN0aW9uPy5ncmFudFN0YXJ0RXhlY3V0aW9uKHRoaXMucm9sZSk7XG4gICAgbG9nR3JvdXA/LmdyYW50V3JpdGUodGhpcy5yb2xlKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9nZ2luZ0VuYWJsZWQocHJvcHM6IEV2ZW50UGlwZVByb3BzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByb3BzLmxvZ0xldmVsICE9PSB1bmRlZmluZWQgJiYgcHJvcHMubG9nTGV2ZWwgIT09IExvZ0xldmVsLk9GRjtcbiAgfVxufVxuIl19
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRQaXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXZlbnRQaXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FBMEM7QUFDMUMsaURBQTZEO0FBRTdELHFEQUFnRDtBQUdoRCx3REFBcUQ7QUFDckQsMENBQTBDO0FBQzFDLHdFQUF1RTtBQXNDdkUsSUFBWSxRQWlCWDtBQWpCRCxXQUFZLFFBQVE7SUFDbEI7O09BRUc7SUFDSCx1QkFBVyxDQUFBO0lBQ1g7O09BRUc7SUFDSCwyQkFBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCx5QkFBYSxDQUFBO0lBQ2I7O09BRUc7SUFDSCwyQkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFqQlcsUUFBUSx3QkFBUixRQUFRLFFBaUJuQjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxjQWNYO0FBZEQsV0FBWSxjQUFjO0lBQ3hCOzs7OztPQUtHO0lBQ0gsMkVBQWdCLENBQUE7SUFDaEI7Ozs7T0FJRztJQUNILHlFQUFlLENBQUE7QUFDakIsQ0FBQyxFQWRXLGNBQWMsOEJBQWQsY0FBYyxRQWN6QjtBQTJGRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLHFCQUFTOztJQUN0QixJQUFJLENBQU87SUFFM0IsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksa0JBQWtCLEdBQ3BCLGNBQWMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pFLElBQUksNEJBQTRCLEdBQzlCLFlBQVksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXJFLElBQUks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QUNILENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFUCxJQUFJLG1CQUFPLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM3QixHQUFHLGlCQUFpQjtZQUNwQixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQzFCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDN0IsTUFBTSxFQUFFLFNBQVM7WUFDakIsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLGtCQUFrQixFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxRQUFRLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQXFCO1FBQzFDLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQ3pFLENBQUM7O0FBOUdILDhCQStHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb25zIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSb2xlLCBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IElMb2dHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHsgQ2ZuUGlwZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtcGlwZXNcIjtcbmltcG9ydCB7IElRdWV1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQgeyBJU3RhdGVNYWNoaW5lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0cy9saWIvY29uc3RydWN0XCI7XG5pbXBvcnQgeyBCVENMb2dHcm91cCB9IGZyb20gXCIuLi9wbGF0Zm9ybVwiO1xuaW1wb3J0IHsgaXNEZWFjdGl2YXRlZENvbnN0cnVjdCB9IGZyb20gXCIuLi91dGlscy9kZWFjdGl2YXRlZENvbnN0cnVjdFwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHBpcGUgY29uc3RydWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50UGlwZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgU1FTIHF1ZXVlLiBObyBvdGhlciBzb3VyY2UgdHlwZXMgYXJlIHN1cHBvcnRlZCBhdCB0aGUgbW9tZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBJUXVldWU7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgU1FTIHF1ZXVlIG9yIHRhcmdldCBzdGVwIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0OiBUYXJnZXRRdWV1ZSB8IFRhcmdldFN0ZXBGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIHJvbGUgdXNlZCBieSB0aGUgZXZlbnQgcGlwZS4gSWYgb21pdHRlZCwgYSBuZXcgcm9sZSBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IFJvbGU7XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIGZpbHRlciBmb3IgdGhlIHBpcGUuXG4gICAqL1xuICByZWFkb25seSBmaWx0ZXI/OiBQaXBlRmlsdGVyO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGxvZyBsZXZlbCBmb3IgdGhlIHBpcGUuIENyZWF0ZXMgYSBuZXcgbG9nIGdyb3VwLCBpZiBlbmFibGVkLlxuICAgKiBEZWZhdWx0OiBEaXNhYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogTG9nTGV2ZWw7XG5cbiAgLyoqXG4gICAqIFVzZSBhbiBleGlzdGluZyBsb2cgZ3JvdXAuIElmIG5vbmUgaXMgZ2l2ZW4gYW5kIGxvZ2dpbmcgaXMgZW5hYmxlZCwgYSBuZXcgbG9nIGdyb3VwIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwPzogSUxvZ0dyb3VwO1xufVxuXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIGxvZ2dpbmcuIE5vIGxvZyBncm91cCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICBPRkYgPSBcIk9GRlwiLFxuICAvKipcbiAgICogT25seSBsb2cgZXJyb3JzLlxuICAgKi9cbiAgRVJST1IgPSBcIkVSUk9SXCIsXG4gIC8qKlxuICAgKiBMb2cgZXJyb3JzIGFuZCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzLlxuICAgKi9cbiAgSU5GTyA9IFwiSU5GT1wiLFxuICAvKipcbiAgICogTG9nIHZlcnkgdmVyYm9zZS5cbiAgICovXG4gIFRSQUNFID0gXCJUUkFDRVwiLFxufVxuXG4vKipcbiAqIFRoZSBpbnZvY2F0aW9uIHR5cGUgb2YgdGhlIHN0ZXAgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBlbnVtIEludm9jYXRpb25UeXBlIHtcbiAgLyoqXG4gICAqIChkZWZhdWx0KSAtIEludm9rZSBzeW5jaHJvbm91c2x5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAqIFtTdGFydFN5bmNFeGVjdXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvYXBpcmVmZXJlbmNlL0FQSV9TdGFydFN5bmNFeGVjdXRpb24uaHRtbClcbiAgICogaW4gdGhlICpBV1MgU3RlcCBGdW5jdGlvbnMgQVBJIFJlZmVyZW5jZSouXG4gICAqID4gYFJFUVVFU1RfUkVTUE9OU0VgIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGBTVEFOREFSRGAgc3RhdGUgbWFjaGluZSB3b3JrZmxvd3MuXG4gICAqL1xuICBSRVFVRVNUX1JFU1BPTlNFLFxuICAvKipcbiAgICogSW52b2tlIGFzeW5jaHJvbm91c2x5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gICAqIFtTdGFydEV4ZWN1dGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9hcGlyZWZlcmVuY2UvQVBJX1N0YXJ0RXhlY3V0aW9uLmh0bWwpXG4gICAqIGluIHRoZSAqQVdTIFN0ZXAgRnVuY3Rpb25zIEFQSSBSZWZlcmVuY2UqLlxuICAgKi9cbiAgRklSRV9BTkRfRk9SR0VULFxufVxuXG4vKipcbiAqIFRoZSBpbnB1dCB0ZW1wbGF0ZS5cbiAqIE5vdGUgdGhhdCBzb21lIHZhbHVlcyBpbiB0aGUgcmVzdWx0aW5nIGNvZGUgc2hvdWxkIG5vdCBoYXZlIHF1b3RlcyBhcm91bmQgdGhlIHZhbHVlLCBlLmcuIGlmIGFuIG9iamVjdFxuICogc2hhbGwgYmUgYWRkZWQuIFRvIHJlZmxlY3QgdGhpcywgYWRkIGN1cmx5IGJyYWNrZXRzIGFyb3VuZCB0aGUgdmFsdWUsIGUuZy4gYHt7PCQuYm9keT59fWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRUZW1wbGF0ZSB7XG4gIC8qKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuLyoqXG4gKiBTUVMgcXVldWUgYXMgcGlwZSB0YXJnZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0UXVldWUge1xuICByZWFkb25seSBxdWV1ZTogSVF1ZXVlO1xufVxuXG4vKipcbiAqIFN0ZXBGdW5jdGlvbiBhcyBwaXBlIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRTdGVwRnVuY3Rpb24ge1xuICByZWFkb25seSBzdGVwRnVuY3Rpb246IElTdGF0ZU1hY2hpbmU7XG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBUYXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGEgc3RlcCBmdW5jdGlvbiB0YXJnZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycyB7XG4gIHJlYWRvbmx5IGlucHV0VGVtcGxhdGU/OiBJbnB1dFRlbXBsYXRlO1xuICByZWFkb25seSBpbnZvY2F0aW9uVHlwZT86IEludm9jYXRpb25UeXBlO1xufVxuXG4vKipcbiAqIEJhc2UgdHlwZSBmb3IgZmlsdGVyIHJ1bGVzLiBOb3QgYWxsIGF2YWlsYWJsZSBydWxlcyBhcmUgY3VycmVudGx5IGltcGxlbWVudGVkLlxuICovXG5leHBvcnQgdHlwZSBGaWx0ZXJSdWxlID1cbiAgfCBQcmVmaXhGaWx0ZXJSdWxlXG4gIHwgU3VmZml4RmlsdGVyUnVsZVxuICB8IEFueXRoaW5nQnV0RmlsdGVyUnVsZVxuICB8IEZpbHRlckVxdWFsc0lnbm9yZUNhc2U7XG5cbi8qKlxuICogUnVsZSB0aGF0IGEgcHJvcGVydHkgaGFzIHRvIHN0YXJ0IHdpdGggYSBwcmVmaXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZml4RmlsdGVyUnVsZSB7XG4gIHJlYWRvbmx5IHByZWZpeDogc3RyaW5nIHwgRmlsdGVyRXF1YWxzSWdub3JlQ2FzZTtcbn1cblxuLyoqXG4gKiBSdWxlIHRoYXQgYSBwcm9wZXJ0eSBoYXMgdG8gZW5kIHdpdGggYSBzdWZmaXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VmZml4RmlsdGVyUnVsZSB7XG4gIHJlYWRvbmx5IHN1ZmZpeDogc3RyaW5nIHwgRmlsdGVyRXF1YWxzSWdub3JlQ2FzZTtcbn1cblxuLyoqXG4gKiBSdWxlIHRoYXQgYWxsb3dzIGFsbCB2YWx1ZXMgZXhjZXB0IHRoZSBnaXZlbiBvbmVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFueXRoaW5nQnV0RmlsdGVyUnVsZSB7XG4gIC8qKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IFwiYW55dGhpbmctYnV0XCI6IHN0cmluZ1tdIHwgRmlsdGVyUnVsZTtcbn1cblxuLyoqXG4gKiBSdWxlIHRoYXQgbWF0Y2hlcyBhIHN0cmluZywgaWdub3JpbmcgdGhlIGNhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRXF1YWxzSWdub3JlQ2FzZSB7XG4gIC8qKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IFwiZXF1YWxzLWlnbm9yZS1jYXNlXCI6IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEEgZmlsdGVyIGZvciBtZXNzYWdlcyBpbiB0aGUgcGlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlRmlsdGVyIHtcbiAgLyoqXG4gICAqIFRoZSBydWxlcyBmb3IgZWFjaCBhdHRyaWJ1dGUgb2YgdGhlIGJvZHkuXG4gICAqIEBqc2lpIGlnbm9yZVxuICAgKi9cbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogRmlsdGVyUnVsZVtdO1xufVxuXG4vKipcbiAqIEEgd3JhcHBlciBmb3IgdGhlIEwxIGV2ZW50IHBpcGUgd2l0aCB0aGUgYWJpbGl0eSB0byBkZWFjdGl2YXRlIGl0IHdpdGhpbiB0aGUgc3RhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudFBpcGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogUm9sZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRQaXBlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IHRhcmdldFN0ZXBGdW5jdGlvbiA9XG4gICAgICBcInN0ZXBGdW5jdGlvblwiIGluIHByb3BzLnRhcmdldCA/IHByb3BzLnRhcmdldC5zdGVwRnVuY3Rpb24gOiB1bmRlZmluZWQ7XG4gICAgbGV0IHRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnMgPVxuICAgICAgXCJwYXJhbWV0ZXJzXCIgaW4gcHJvcHMudGFyZ2V0ID8gcHJvcHMudGFyZ2V0LnBhcmFtZXRlcnMgOiB1bmRlZmluZWQ7XG5cbiAgICBsZXQgdGFyZ2V0UXVldWUgPSBcInF1ZXVlXCIgaW4gcHJvcHMudGFyZ2V0ID8gcHJvcHMudGFyZ2V0LnF1ZXVlIDogdW5kZWZpbmVkO1xuXG4gICAgbGV0IHNxc1RhcmdldCA9IHRhcmdldFF1ZXVlICE9PSB1bmRlZmluZWQ7XG5cbiAgICBsZXQgdGFyZ2V0QXJuID0gc3FzVGFyZ2V0XG4gICAgICA/IHRhcmdldFF1ZXVlIS5xdWV1ZUFyblxuICAgICAgOiB0YXJnZXRTdGVwRnVuY3Rpb24hLnN0YXRlTWFjaGluZUFybjtcblxuICAgIGxldCBkZXNpcmVkU3RhdGUgPSBcIlJVTk5JTkdcIjtcbiAgICBpZiAoaXNEZWFjdGl2YXRlZENvbnN0cnVjdChpZCkpIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZEluZm8oYCR7aWR9IGlzIHNldCBkbyBiZSBkZWFjdGl2YXRlZC5gKTtcbiAgICAgIGRlc2lyZWRTdGF0ZSA9IFwiU1RPUFBFRFwiO1xuICAgIH1cblxuICAgIHRoaXMucm9sZSA9XG4gICAgICBwcm9wcy5yb2xlIHx8XG4gICAgICBuZXcgUm9sZSh0aGlzLCBcIkV2ZW50UGlwZVJvbGVcIiwge1xuICAgICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFwicGlwZXMuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIH0pO1xuXG4gICAgbGV0IGZpbHRlckNyaXRlcmlhID0gcHJvcHMuZmlsdGVyXG4gICAgICA/IHtcbiAgICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdHRlcm46IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAuLi5wcm9wcy5maWx0ZXIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgbGV0IHRhcmdldFBhcmFtZXRlcnM6IENmblBpcGUuUGlwZVRhcmdldFBhcmFtZXRlcnNQcm9wZXJ0eSA9IHt9O1xuICAgIGlmICh0YXJnZXRRdWV1ZSkge1xuICAgICAgdGFyZ2V0UGFyYW1ldGVycyA9IHtcbiAgICAgICAgc3FzUXVldWVQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgbWVzc2FnZUdyb3VwSWQ6IFwiZGVmYXVsdFwiLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0UGFyYW1ldGVycyA9IHtcbiAgICAgICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgICAgIGludm9jYXRpb25UeXBlOiB0YXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzPy5pbnZvY2F0aW9uVHlwZVxuICAgICAgICAgICAgPyBJbnZvY2F0aW9uVHlwZVt0YXJnZXRTdGVwRnVuY3Rpb25QYXJhbWV0ZXJzLmludm9jYXRpb25UeXBlXVxuICAgICAgICAgICAgOiBJbnZvY2F0aW9uVHlwZVtJbnZvY2F0aW9uVHlwZS5SRVFVRVNUX1JFU1BPTlNFXSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uKHRhcmdldFN0ZXBGdW5jdGlvblBhcmFtZXRlcnM/LmlucHV0VGVtcGxhdGUgJiYge1xuICAgICAgICAgIGlucHV0VGVtcGxhdGU6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgdGFyZ2V0U3RlcEZ1bmN0aW9uUGFyYW1ldGVycy5pbnB1dFRlbXBsYXRlLFxuICAgICAgICAgICkucmVwbGFjZSgvXCJcXHtcXHsoLis/KVxcfVxcfVwiLywgXCIkMVwiKSxcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGxldCBzb3VyY2VQYXJhbWV0ZXJzID0ge1xuICAgICAgc3FzUXVldWVQYXJhbWV0ZXJzOiB7XG4gICAgICAgIGJhdGNoU2l6ZTogMSxcbiAgICAgIH0sXG4gICAgICAuLi4oZmlsdGVyQ3JpdGVyaWEgJiYgeyBmaWx0ZXJDcml0ZXJpYTogZmlsdGVyQ3JpdGVyaWEgfSksXG4gICAgfTtcblxuICAgIGNvbnN0IGxvZ0dyb3VwID0gdGhpcy5sb2dnaW5nRW5hYmxlZChwcm9wcylcbiAgICAgID8gKHByb3BzLmxvZ0dyb3VwID8/XG4gICAgICAgIG5ldyBCVENMb2dHcm91cCh0aGlzLCBcIkV2ZW50UGlwZUxvZ0dyb3VwXCIsIHtcbiAgICAgICAgICBsb2dUeXBlOiBcImV2ZW50LXBpcGVcIixcbiAgICAgICAgfSkpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHBpcGVDb25maWd1cmF0aW9uID0gdGhpcy5sb2dnaW5nRW5hYmxlZChwcm9wcylcbiAgICAgID8ge1xuICAgICAgICAgIGxvZ0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIGNsb3Vkd2F0Y2hMb2dzTG9nRGVzdGluYXRpb246IHtcbiAgICAgICAgICAgICAgbG9nR3JvdXBBcm46IGxvZ0dyb3VwIS5sb2dHcm91cEFybixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsZXZlbDogcHJvcHMubG9nTGV2ZWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgOiB7fTtcblxuICAgIG5ldyBDZm5QaXBlKHRoaXMsIFwiRXZlbnRQaXBlXCIsIHtcbiAgICAgIC4uLnBpcGVDb25maWd1cmF0aW9uLFxuICAgICAgcm9sZUFybjogdGhpcy5yb2xlLnJvbGVBcm4sXG4gICAgICBzb3VyY2U6IHByb3BzLnNvdXJjZS5xdWV1ZUFybixcbiAgICAgIHRhcmdldDogdGFyZ2V0QXJuLFxuICAgICAgc291cmNlUGFyYW1ldGVyczogc291cmNlUGFyYW1ldGVycyxcbiAgICAgIHRhcmdldFBhcmFtZXRlcnM6IHRhcmdldFBhcmFtZXRlcnMsXG4gICAgICBkZXNpcmVkU3RhdGU6IGRlc2lyZWRTdGF0ZSxcbiAgICB9KTtcblxuICAgIHByb3BzLnNvdXJjZS5ncmFudENvbnN1bWVNZXNzYWdlcyh0aGlzLnJvbGUpO1xuICAgIHRhcmdldFF1ZXVlPy5ncmFudFNlbmRNZXNzYWdlcyh0aGlzLnJvbGUpO1xuICAgIHRhcmdldFN0ZXBGdW5jdGlvbj8uZ3JhbnRTdGFydEV4ZWN1dGlvbih0aGlzLnJvbGUpO1xuICAgIGxvZ0dyb3VwPy5ncmFudFdyaXRlKHRoaXMucm9sZSk7XG4gIH1cblxuICBwcml2YXRlIGxvZ2dpbmdFbmFibGVkKHByb3BzOiBFdmVudFBpcGVQcm9wcyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwcm9wcy5sb2dMZXZlbCAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmxvZ0xldmVsICE9PSBMb2dMZXZlbC5PRkY7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.ExportedService = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -14,6 +13,10 @@ const common_1 = require("../utils/common");
14
13
  * ECS services, including API URL generation and connection management.
15
14
  */
16
15
  class ExportedServiceBase extends constructs_1.Construct {
16
+ serviceName;
17
+ namespaceName;
18
+ port;
19
+ securityGroup;
17
20
  constructor(scope, id, serviceName, namespaceName, port, securityGroup) {
18
21
  super(scope, id);
19
22
  this.serviceName = serviceName;
@@ -84,6 +87,7 @@ class ExportedServiceBase extends constructs_1.Construct {
84
87
  * const url = exportedService.apiUrl();
85
88
  */
86
89
  class ExportedService extends ExportedServiceBase {
90
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@btc-embedded/cdk-extensions.ExportedService", version: "0.23.7" };
87
91
  /**
88
92
  * Import an ExportedService from another stack.
89
93
  *
@@ -123,6 +127,7 @@ class ExportedService extends ExportedServiceBase {
123
127
  }),
124
128
  };
125
129
  }
130
+ stackParameters;
126
131
  constructor(scope, id, props) {
127
132
  const normalizedServiceName = (0, common_1.kebabCase)(props.serviceName);
128
133
  super(scope, id, normalizedServiceName, props.namespaceName, 0, // Default port - actual port is specified on consumer side
@@ -134,6 +139,4 @@ class ExportedService extends ExportedServiceBase {
134
139
  }
135
140
  }
136
141
  exports.ExportedService = ExportedService;
137
- _a = JSII_RTTI_SYMBOL_1;
138
- ExportedService[_a] = { fqn: "@btc-embedded/cdk-extensions.ExportedService", version: "0.23.5" };
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0ZWRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXhwb3J0ZWRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsaURBSzZCO0FBQzdCLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFDMUMsNENBQTRDO0FBOEQ1Qzs7Ozs7R0FLRztBQUNILE1BQWUsbUJBQ2IsU0FBUSxzQkFBUztJQVFqQixZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixXQUFtQixFQUNuQixhQUFxQixFQUNyQixJQUFZLEVBQ1osYUFBNkI7UUFFN0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTTtRQUNYLE9BQU8sVUFBVSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksU0FBUyxDQUNkLE9BQWdCLEVBQ2hCLGNBQXNCLG1DQUFtQztRQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3RDLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLGNBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNuQixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxtQkFBbUI7SUFDdEQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUMxQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUM7UUFFbkMsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLGtCQUFTLEVBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNELE1BQU0sZUFBZSxHQUFHLGVBQWUsQ0FBQyxxQkFBcUIsQ0FDM0QscUJBQXFCLENBQ3RCLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUNuRSxLQUFLLEVBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FDaEIsQ0FBQztRQUNGLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQzdELEtBQUssRUFDTCxLQUFLLENBQUMsU0FBUyxDQUNoQixDQUFDO1FBRUYsTUFBTSxhQUFhLEdBQUcsdUJBQWEsQ0FBQyxtQkFBbUIsQ0FDckQsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixlQUFlLEVBQ2YsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztRQUVGLE1BQU0sTUFBTyxTQUFRLG1CQUFtQjtZQUN0QztnQkFDRSxLQUFLLENBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLEtBQUssQ0FBQyxJQUFJLEVBQ1YsYUFBYSxDQUNkLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFFRCxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxXQUFtQjtRQUN0RCxPQUFPO1lBQ0wsc0JBQXNCLEVBQUUsSUFBSSxzQkFBYyxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUM7Z0JBQ3pDLEdBQUcsRUFBRSxtQkFBbUI7Z0JBQ3hCLFdBQVcsRUFBRSwrQ0FBK0M7YUFDN0QsQ0FBQztZQUNGLGtCQUFrQixFQUFFLElBQUksc0JBQWMsQ0FBQztnQkFDckMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO2dCQUN6QyxHQUFHLEVBQUUsV0FBVztnQkFDaEIsV0FBVyxFQUFFLGdEQUFnRDthQUM5RCxDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUM7SUFNRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLE1BQU0scUJBQXFCLEdBQUcsSUFBQSxrQkFBUyxFQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxLQUFLLENBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixxQkFBcUIsRUFDckIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsQ0FBQyxFQUFFLDJEQUEyRDtRQUM5RCxLQUFLLENBQUMsYUFBYSxDQUNwQixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQzFELHFCQUFxQixDQUN0QixDQUFDO1FBRUYsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUNoRCxJQUFJLEVBQ0osS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQ3BDLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7O0FBOUZILDBDQStGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2UgfSBmcm9tIFwiQGF3cy1jZGstY29udGFpbmVycy9lY3Mtc2VydmljZS1leHRlbnNpb25zXCI7XG5pbXBvcnQge1xuICBJQ29ubmVjdGFibGUsXG4gIElTZWN1cml0eUdyb3VwLFxuICBQb3J0LFxuICBTZWN1cml0eUdyb3VwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFN0YWNrUGFyYW1ldGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBrZWJhYkNhc2UgfSBmcm9tIFwiLi4vdXRpbHMvY29tbW9uXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaW1wb3J0aW5nIGFuIEV4cG9ydGVkU2VydmljZSBmcm9tIGFub3RoZXIgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0ZWRTZXJ2aWNlTG9va3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgd2hlcmUgdGhlIHNlcnZpY2Ugd2FzIGV4cG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwb3J0IG9uIHdoaWNoIHRoZSBzZXJ2aWNlIGlzIGxpc3RlbmluZy5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQdWJsaWMgaW50ZXJmYWNlIGZvciBhbiBFeHBvcnRlZFNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4cG9ydGVkU2VydmljZSBleHRlbmRzIElDb25uZWN0YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAgb2YgdGhlIGV4cG9ydGVkIEVDUyBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaW50ZXJuYWwgQVBJIFVSTCBvZiB0aGUgc2VydmljZS5cbiAgICovXG4gIGFwaVVybCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93IGFuIEVDUyBzZXJ2aWNlIHRvIGNvbm5lY3QgdG8gdGhpcyBleHBvcnRlZCBzZXJ2aWNlLlxuICAgKi9cbiAgYWxsb3dGcm9tKHNlcnZpY2U6IFNlcnZpY2UsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZDtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBFeHBvcnRlZFNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0ZWRTZXJ2aWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEVDUyBzZXJ2aWNlIGJlaW5nIGV4cG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwIG9mIHRoZSBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG5hbWUgd2hlcmUgdGhlIHNlcnZpY2UgaXMgcmVnaXN0ZXJlZCAoQ2xvdWRNYXAgbmFtZXNwYWNlKS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbiBFQ1Mgc2VydmljZSB0aGF0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdGFjayBib3VuZGFyaWVzLlxuICpcbiAqIFRoaXMgYWJzdHJhY3QgY2xhc3MgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIHdvcmtpbmcgd2l0aCBleHBvcnRlZFxuICogRUNTIHNlcnZpY2VzLCBpbmNsdWRpbmcgQVBJIFVSTCBnZW5lcmF0aW9uIGFuZCBjb25uZWN0aW9uIG1hbmFnZW1lbnQuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEV4cG9ydGVkU2VydmljZUJhc2VcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJRXhwb3J0ZWRTZXJ2aWNlXG57XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlTmFtZTogc3RyaW5nLFxuICAgIHBvcnQ6IG51bWJlcixcbiAgICBzZWN1cml0eUdyb3VwOiBJU2VjdXJpdHlHcm91cCxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XG4gICAgdGhpcy5uYW1lc3BhY2VOYW1lID0gbmFtZXNwYWNlTmFtZTtcbiAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IHNlY3VyaXR5R3JvdXA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBpbnRlcm5hbCBBUEkgVVJMIG9mIHRoZSBzZXJ2aWNlLlxuICAgKlxuICAgKiBUaGUgVVJMIGZvcm1hdCBpczogaHR0cDovLzxzZXJ2aWNlLW5hbWU+LjxuYW1lc3BhY2U+Ojxwb3J0Pi9cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGludGVybmFsIEFQSSBVUkxcbiAgICovXG4gIHB1YmxpYyBhcGlVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGh0dHA6Ly8ke3RoaXMuc2VydmljZU5hbWV9LiR7dGhpcy5uYW1lc3BhY2VOYW1lfToke3RoaXMucG9ydH0vYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNvbm5lY3Rpb25zIG9iamVjdCBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKlxuICAgKiBUaGlzIGFsbG93cyB0aGUgRXhwb3J0ZWRTZXJ2aWNlIHRvIGJlIHVzZWQgd2l0aCB0aGUgc3RhbmRhcmQgQ0RLIElDb25uZWN0YWJsZVxuICAgKiBwYXR0ZXJuIGZvciBzZWN1cml0eSBncm91cCBtYW5hZ2VtZW50LlxuICAgKi9cbiAgZ2V0IGNvbm5lY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgYW4gRUNTIHNlcnZpY2UgdG8gY29ubmVjdCB0byB0aGlzIGV4cG9ydGVkIHNlcnZpY2UuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGFkZHMgYSBzZWN1cml0eSBncm91cCBpbmdyZXNzIHJ1bGUgYWxsb3dpbmcgdHJhZmZpYyBmcm9tIHRoZVxuICAgKiBnaXZlbiBzZXJ2aWNlIHRvIHRoaXMgZXhwb3J0ZWQgc2VydmljZSBvbiBpdHMgY29uZmlndXJlZCBwb3J0LlxuICAgKlxuICAgKiBAcGFyYW0gc2VydmljZSAtIFRoZSBFQ1Mgc2VydmljZSB0byBhbGxvdyBjb25uZWN0aW9ucyBmcm9tXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgc2VjdXJpdHkgZ3JvdXAgcnVsZVxuICAgKi9cbiAgcHVibGljIGFsbG93RnJvbShcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIkFsbG93IGNvbm5lY3Rpb24gZnJvbSBFQ1Mgc2VydmljZVwiLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnMuYWxsb3dGcm9tKFxuICAgICAgc2VydmljZS5lY3NTZXJ2aWNlLFxuICAgICAgUG9ydC50Y3AodGhpcy5wb3J0KSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEVDUyBzZXJ2aWNlIGV4cG9ydGVkIGZyb20gYW5vdGhlciBDREsgc3RhY2suXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgZW5hYmxlcyBjcm9zcy1zdGFjayBzZXJ2aWNlIGNvbm5lY3Rpdml0eSBieSB0cmFuc3BvcnRpbmcgc2VydmljZVxuICogbWV0YWRhdGEgKHNlY3VyaXR5IGdyb3VwIElEIGFuZCBuYW1lc3BhY2UpIGFjcm9zcyBzdGFjayBib3VuZGFyaWVzIHVzaW5nIFN0YWNrUGFyYW1ldGVyLlxuICogVGhlIHBvcnQgbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbXBvcnRpbmcgdGhlIHNlcnZpY2UuXG4gKlxuICogT24gdGhlIHByb3ZpZGVyIHNpZGUgKHdoZXJlIHRoZSBzZXJ2aWNlIGlzIGRlZmluZWQpLCB1c2UgRXhwb3J0ZWRTZXJ2aWNlXG4gKiB3aXRoaW4gdGhlIENsb3VkTWFwRXh0ZW5zaW9uIHRvIGV4cG9zZSB0aGUgc2VydmljZS4gT24gdGhlIGNvbnN1bWVyIHNpZGUsXG4gKiB1c2UgRXhwb3J0ZWRTZXJ2aWNlLmZyb21BdHRyaWJ1dGVzKCkgdG8gaW1wb3J0IHRoZSBzZXJ2aWNlIHdpdGggdGhlIHBvcnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFByb3ZpZGVyIHNpZGVcbiAqIGNvbnN0IGV4cG9ydGVkU2VydmljZSA9IG5ldyBFeHBvcnRlZFNlcnZpY2UodGhpcywgXCJFeHBvcnRlZFNlcnZpY2VcIiwge1xuICogICBzZXJ2aWNlTmFtZTogJ215LXNlcnZpY2UnLFxuICogICBzZWN1cml0eUdyb3VwOiBzZXJ2aWNlLmNvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzWzBdLFxuICogICBuYW1lc3BhY2VOYW1lOiAnbXktbmFtZXNwYWNlJyxcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb25zdW1lciBzaWRlXG4gKiBjb25zdCBleHBvcnRlZFNlcnZpY2UgPSBFeHBvcnRlZFNlcnZpY2UuZnJvbUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gKiAgIHN0YWNrTmFtZTogJ215LXNlcnZpY2Utc3RhY2snLFxuICogICBzZXJ2aWNlTmFtZTogJ215LXNlcnZpY2UnLFxuICogICBwb3J0OiA4MDgwLFxuICogfSk7XG4gKlxuICogZXhwb3J0ZWRTZXJ2aWNlLmFsbG93RnJvbShteVNlcnZpY2UpO1xuICogY29uc3QgdXJsID0gZXhwb3J0ZWRTZXJ2aWNlLmFwaVVybCgpO1xuICovXG5leHBvcnQgY2xhc3MgRXhwb3J0ZWRTZXJ2aWNlIGV4dGVuZHMgRXhwb3J0ZWRTZXJ2aWNlQmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gRXhwb3J0ZWRTZXJ2aWNlIGZyb20gYW5vdGhlciBzdGFjay5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgaW1wb3J0cyB0aGUgc2VydmljZSBtZXRhZGF0YSAoc2VjdXJpdHkgZ3JvdXAgYW5kIG5hbWVzcGFjZSlcbiAgICogdGhhdCB3YXMgZXhwb3J0ZWQgYnkgdGhlIHByb3ZpZGVyIHN0YWNrIGFuZCBjb25zdHJ1Y3RzIGFuIElFeHBvcnRlZFNlcnZpY2VcbiAgICogaW5zdGFuY2UgdGhhdCBjYW4gYmUgdXNlZCBmb3IgZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIGNvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gYXR0cnMgLSBUaGUgZXhwb3J0ZWQgc2VydmljZSBsb29rdXAgb3B0aW9ucyAoc3RhY2tOYW1lLCBzZXJ2aWNlTmFtZSwgYW5kIHBvcnQpXG4gICAqIEByZXR1cm5zIEFuIElFeHBvcnRlZFNlcnZpY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBFeHBvcnRlZFNlcnZpY2VMb29rdXBPcHRpb25zLFxuICApOiBJRXhwb3J0ZWRTZXJ2aWNlIHtcbiAgICBjb25zdCBub3JtYWxpemVkU2VydmljZU5hbWUgPSBrZWJhYkNhc2UoYXR0cnMuc2VydmljZU5hbWUpO1xuICAgIGNvbnN0IHN0YWNrUGFyYW1ldGVycyA9IEV4cG9ydGVkU2VydmljZS5jcmVhdGVTdGFja1BhcmFtZXRlcnMoXG4gICAgICBub3JtYWxpemVkU2VydmljZU5hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBJZCA9IHN0YWNrUGFyYW1ldGVycy5zZWN1cml0eUdyb3VwUGFyYW1ldGVyLmltcG9ydChcbiAgICAgIHNjb3BlLFxuICAgICAgYXR0cnMuc3RhY2tOYW1lLFxuICAgICk7XG4gICAgY29uc3QgbmFtZXNwYWNlTmFtZSA9IHN0YWNrUGFyYW1ldGVycy5uYW1lc3BhY2VQYXJhbWV0ZXIuaW1wb3J0KFxuICAgICAgc2NvcGUsXG4gICAgICBhdHRycy5zdGFja05hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXAgPSBTZWN1cml0eUdyb3VwLmZyb21TZWN1cml0eUdyb3VwSWQoXG4gICAgICBzY29wZSxcbiAgICAgIFwiSW1wb3J0ZWRTZWN1cml0eUdyb3VwXCIsXG4gICAgICBzZWN1cml0eUdyb3VwSWQsXG4gICAgICB7IGFsbG93QWxsT3V0Ym91bmQ6IHRydWUgfSxcbiAgICApO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRXhwb3J0ZWRTZXJ2aWNlQmFzZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbm9ybWFsaXplZFNlcnZpY2VOYW1lLFxuICAgICAgICAgIG5hbWVzcGFjZU5hbWUsXG4gICAgICAgICAgYXR0cnMucG9ydCxcbiAgICAgICAgICBzZWN1cml0eUdyb3VwLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KCk7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlU3RhY2tQYXJhbWV0ZXJzKHNlcnZpY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VjdXJpdHlHcm91cFBhcmFtZXRlcjogbmV3IFN0YWNrUGFyYW1ldGVyKHtcbiAgICAgICAgcHJlZml4OiBbXCJleHBvcnRlZC1zZXJ2aWNlXCIsIHNlcnZpY2VOYW1lXSxcbiAgICAgICAga2V5OiBcInNlY3VyaXR5LWdyb3VwLWlkXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlNlY3VyaXR5IEdyb3VwIElEIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgICBuYW1lc3BhY2VQYXJhbWV0ZXI6IG5ldyBTdGFja1BhcmFtZXRlcih7XG4gICAgICAgIHByZWZpeDogW1wiZXhwb3J0ZWQtc2VydmljZVwiLCBzZXJ2aWNlTmFtZV0sXG4gICAgICAgIGtleTogXCJuYW1lc3BhY2VcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ2xvdWRNYXAgbmFtZXNwYWNlIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tQYXJhbWV0ZXJzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBFeHBvcnRlZFNlcnZpY2UuY3JlYXRlU3RhY2tQYXJhbWV0ZXJzXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV4cG9ydGVkU2VydmljZVByb3BzKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNlcnZpY2VOYW1lID0ga2ViYWJDYXNlKHByb3BzLnNlcnZpY2VOYW1lKTtcbiAgICBzdXBlcihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBub3JtYWxpemVkU2VydmljZU5hbWUsXG4gICAgICBwcm9wcy5uYW1lc3BhY2VOYW1lLFxuICAgICAgMCwgLy8gRGVmYXVsdCBwb3J0IC0gYWN0dWFsIHBvcnQgaXMgc3BlY2lmaWVkIG9uIGNvbnN1bWVyIHNpZGVcbiAgICAgIHByb3BzLnNlY3VyaXR5R3JvdXAsXG4gICAgKTtcblxuICAgIHRoaXMuc3RhY2tQYXJhbWV0ZXJzID0gRXhwb3J0ZWRTZXJ2aWNlLmNyZWF0ZVN0YWNrUGFyYW1ldGVycyhcbiAgICAgIG5vcm1hbGl6ZWRTZXJ2aWNlTmFtZSxcbiAgICApO1xuXG4gICAgLy8gRXhwb3J0IHNlcnZpY2UgbWV0YWRhdGEgZm9yIGNyb3NzLXN0YWNrIGNvbnN1bXB0aW9uXG4gICAgdGhpcy5zdGFja1BhcmFtZXRlcnMuc2VjdXJpdHlHcm91cFBhcmFtZXRlci5leHBvcnQoXG4gICAgICB0aGlzLFxuICAgICAgcHJvcHMuc2VjdXJpdHlHcm91cC5zZWN1cml0eUdyb3VwSWQsXG4gICAgKTtcbiAgICB0aGlzLnN0YWNrUGFyYW1ldGVycy5uYW1lc3BhY2VQYXJhbWV0ZXIuZXhwb3J0KHRoaXMsIHByb3BzLm5hbWVzcGFjZU5hbWUpO1xuICB9XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0ZWRTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0cnVjdHMvRXhwb3J0ZWRTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxpREFLNkI7QUFDN0IsMkNBQXVDO0FBQ3ZDLG9DQUEwQztBQUMxQyw0Q0FBNEM7QUE4RDVDOzs7OztHQUtHO0FBQ0gsTUFBZSxtQkFDYixTQUFRLHNCQUFTO0lBR0UsV0FBVyxDQUFTO0lBQ3BCLGFBQWEsQ0FBUztJQUN0QixJQUFJLENBQVM7SUFDaEIsYUFBYSxDQUFpQjtJQUU5QyxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixXQUFtQixFQUNuQixhQUFxQixFQUNyQixJQUFZLEVBQ1osYUFBNkI7UUFFN0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTTtRQUNYLE9BQU8sVUFBVSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksU0FBUyxDQUNkLE9BQWdCLEVBQ2hCLGNBQXNCLG1DQUFtQztRQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQ3RDLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLGNBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUNuQixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxtQkFBbUI7O0lBQ3REOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FDMUIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQW1DO1FBRW5DLE1BQU0scUJBQXFCLEdBQUcsSUFBQSxrQkFBUyxFQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQzNELHFCQUFxQixDQUN0QixDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FDbkUsS0FBSyxFQUNMLEtBQUssQ0FBQyxTQUFTLENBQ2hCLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUM3RCxLQUFLLEVBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FDaEIsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFHLHVCQUFhLENBQUMsbUJBQW1CLENBQ3JELEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsZUFBZSxFQUNmLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQzNCLENBQUM7UUFFRixNQUFNLE1BQU8sU0FBUSxtQkFBbUI7WUFDdEM7Z0JBQ0UsS0FBSyxDQUNILEtBQUssRUFDTCxFQUFFLEVBQ0YscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixLQUFLLENBQUMsSUFBSSxFQUNWLGFBQWEsQ0FDZCxDQUFDO1lBQ0osQ0FBQztTQUNGO1FBRUQsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDTyxNQUFNLENBQUMscUJBQXFCLENBQUMsV0FBbUI7UUFDdEQsT0FBTztZQUNMLHNCQUFzQixFQUFFLElBQUksc0JBQWMsQ0FBQztnQkFDekMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDO2dCQUN6QyxHQUFHLEVBQUUsbUJBQW1CO2dCQUN4QixXQUFXLEVBQUUsK0NBQStDO2FBQzdELENBQUM7WUFDRixrQkFBa0IsRUFBRSxJQUFJLHNCQUFjLENBQUM7Z0JBQ3JDLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsQ0FBQztnQkFDekMsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLFdBQVcsRUFBRSxnREFBZ0Q7YUFDOUQsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0lBRWdCLGVBQWUsQ0FFOUI7SUFFRixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLE1BQU0scUJBQXFCLEdBQUcsSUFBQSxrQkFBUyxFQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxLQUFLLENBQ0gsS0FBSyxFQUNMLEVBQUUsRUFDRixxQkFBcUIsRUFDckIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsQ0FBQyxFQUFFLDJEQUEyRDtRQUM5RCxLQUFLLENBQUMsYUFBYSxDQUNwQixDQUFDO1FBRUYsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUMscUJBQXFCLENBQzFELHFCQUFxQixDQUN0QixDQUFDO1FBRUYsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUNoRCxJQUFJLEVBQ0osS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQ3BDLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7O0FBOUZILDBDQStGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2UgfSBmcm9tIFwiQGF3cy1jZGstY29udGFpbmVycy9lY3Mtc2VydmljZS1leHRlbnNpb25zXCI7XG5pbXBvcnQge1xuICBJQ29ubmVjdGFibGUsXG4gIElTZWN1cml0eUdyb3VwLFxuICBQb3J0LFxuICBTZWN1cml0eUdyb3VwLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFN0YWNrUGFyYW1ldGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBrZWJhYkNhc2UgfSBmcm9tIFwiLi4vdXRpbHMvY29tbW9uXCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaW1wb3J0aW5nIGFuIEV4cG9ydGVkU2VydmljZSBmcm9tIGFub3RoZXIgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0ZWRTZXJ2aWNlTG9va3VwT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3RhY2sgd2hlcmUgdGhlIHNlcnZpY2Ugd2FzIGV4cG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwb3J0IG9uIHdoaWNoIHRoZSBzZXJ2aWNlIGlzIGxpc3RlbmluZy5cbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQdWJsaWMgaW50ZXJmYWNlIGZvciBhbiBFeHBvcnRlZFNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4cG9ydGVkU2VydmljZSBleHRlbmRzIElDb25uZWN0YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VjdXJpdHkgZ3JvdXAgb2YgdGhlIGV4cG9ydGVkIEVDUyBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaW50ZXJuYWwgQVBJIFVSTCBvZiB0aGUgc2VydmljZS5cbiAgICovXG4gIGFwaVVybCgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG93IGFuIEVDUyBzZXJ2aWNlIHRvIGNvbm5lY3QgdG8gdGhpcyBleHBvcnRlZCBzZXJ2aWNlLlxuICAgKi9cbiAgYWxsb3dGcm9tKHNlcnZpY2U6IFNlcnZpY2UsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogdm9pZDtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIG5ldyBFeHBvcnRlZFNlcnZpY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3J0ZWRTZXJ2aWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEVDUyBzZXJ2aWNlIGJlaW5nIGV4cG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwIG9mIHRoZSBFQ1Mgc2VydmljZS5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG5hbWUgd2hlcmUgdGhlIHNlcnZpY2UgaXMgcmVnaXN0ZXJlZCAoQ2xvdWRNYXAgbmFtZXNwYWNlKS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbiBFQ1Mgc2VydmljZSB0aGF0IGNhbiBiZSB1c2VkIGFjcm9zcyBzdGFjayBib3VuZGFyaWVzLlxuICpcbiAqIFRoaXMgYWJzdHJhY3QgY2xhc3MgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIHdvcmtpbmcgd2l0aCBleHBvcnRlZFxuICogRUNTIHNlcnZpY2VzLCBpbmNsdWRpbmcgQVBJIFVSTCBnZW5lcmF0aW9uIGFuZCBjb25uZWN0aW9uIG1hbmFnZW1lbnQuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEV4cG9ydGVkU2VydmljZUJhc2VcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJRXhwb3J0ZWRTZXJ2aWNlXG57XG4gIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmFtZXNwYWNlTmFtZTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlTmFtZTogc3RyaW5nLFxuICAgIHBvcnQ6IG51bWJlcixcbiAgICBzZWN1cml0eUdyb3VwOiBJU2VjdXJpdHlHcm91cCxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gc2VydmljZU5hbWU7XG4gICAgdGhpcy5uYW1lc3BhY2VOYW1lID0gbmFtZXNwYWNlTmFtZTtcbiAgICB0aGlzLnBvcnQgPSBwb3J0O1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IHNlY3VyaXR5R3JvdXA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBpbnRlcm5hbCBBUEkgVVJMIG9mIHRoZSBzZXJ2aWNlLlxuICAgKlxuICAgKiBUaGUgVVJMIGZvcm1hdCBpczogaHR0cDovLzxzZXJ2aWNlLW5hbWU+LjxuYW1lc3BhY2U+Ojxwb3J0Pi9cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGludGVybmFsIEFQSSBVUkxcbiAgICovXG4gIHB1YmxpYyBhcGlVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGh0dHA6Ly8ke3RoaXMuc2VydmljZU5hbWV9LiR7dGhpcy5uYW1lc3BhY2VOYW1lfToke3RoaXMucG9ydH0vYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNvbm5lY3Rpb25zIG9iamVjdCBmb3IgdGhpcyBzZXJ2aWNlLlxuICAgKlxuICAgKiBUaGlzIGFsbG93cyB0aGUgRXhwb3J0ZWRTZXJ2aWNlIHRvIGJlIHVzZWQgd2l0aCB0aGUgc3RhbmRhcmQgQ0RLIElDb25uZWN0YWJsZVxuICAgKiBwYXR0ZXJuIGZvciBzZWN1cml0eSBncm91cCBtYW5hZ2VtZW50LlxuICAgKi9cbiAgZ2V0IGNvbm5lY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgYW4gRUNTIHNlcnZpY2UgdG8gY29ubmVjdCB0byB0aGlzIGV4cG9ydGVkIHNlcnZpY2UuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGFkZHMgYSBzZWN1cml0eSBncm91cCBpbmdyZXNzIHJ1bGUgYWxsb3dpbmcgdHJhZmZpYyBmcm9tIHRoZVxuICAgKiBnaXZlbiBzZXJ2aWNlIHRvIHRoaXMgZXhwb3J0ZWQgc2VydmljZSBvbiBpdHMgY29uZmlndXJlZCBwb3J0LlxuICAgKlxuICAgKiBAcGFyYW0gc2VydmljZSAtIFRoZSBFQ1Mgc2VydmljZSB0byBhbGxvdyBjb25uZWN0aW9ucyBmcm9tXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiAtIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgc2VjdXJpdHkgZ3JvdXAgcnVsZVxuICAgKi9cbiAgcHVibGljIGFsbG93RnJvbShcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIkFsbG93IGNvbm5lY3Rpb24gZnJvbSBFQ1Mgc2VydmljZVwiLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXAuY29ubmVjdGlvbnMuYWxsb3dGcm9tKFxuICAgICAgc2VydmljZS5lY3NTZXJ2aWNlLFxuICAgICAgUG9ydC50Y3AodGhpcy5wb3J0KSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEVDUyBzZXJ2aWNlIGV4cG9ydGVkIGZyb20gYW5vdGhlciBDREsgc3RhY2suXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgZW5hYmxlcyBjcm9zcy1zdGFjayBzZXJ2aWNlIGNvbm5lY3Rpdml0eSBieSB0cmFuc3BvcnRpbmcgc2VydmljZVxuICogbWV0YWRhdGEgKHNlY3VyaXR5IGdyb3VwIElEIGFuZCBuYW1lc3BhY2UpIGFjcm9zcyBzdGFjayBib3VuZGFyaWVzIHVzaW5nIFN0YWNrUGFyYW1ldGVyLlxuICogVGhlIHBvcnQgbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbXBvcnRpbmcgdGhlIHNlcnZpY2UuXG4gKlxuICogT24gdGhlIHByb3ZpZGVyIHNpZGUgKHdoZXJlIHRoZSBzZXJ2aWNlIGlzIGRlZmluZWQpLCB1c2UgRXhwb3J0ZWRTZXJ2aWNlXG4gKiB3aXRoaW4gdGhlIENsb3VkTWFwRXh0ZW5zaW9uIHRvIGV4cG9zZSB0aGUgc2VydmljZS4gT24gdGhlIGNvbnN1bWVyIHNpZGUsXG4gKiB1c2UgRXhwb3J0ZWRTZXJ2aWNlLmZyb21BdHRyaWJ1dGVzKCkgdG8gaW1wb3J0IHRoZSBzZXJ2aWNlIHdpdGggdGhlIHBvcnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFByb3ZpZGVyIHNpZGVcbiAqIGNvbnN0IGV4cG9ydGVkU2VydmljZSA9IG5ldyBFeHBvcnRlZFNlcnZpY2UodGhpcywgXCJFeHBvcnRlZFNlcnZpY2VcIiwge1xuICogICBzZXJ2aWNlTmFtZTogJ215LXNlcnZpY2UnLFxuICogICBzZWN1cml0eUdyb3VwOiBzZXJ2aWNlLmNvbm5lY3Rpb25zLnNlY3VyaXR5R3JvdXBzWzBdLFxuICogICBuYW1lc3BhY2VOYW1lOiAnbXktbmFtZXNwYWNlJyxcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb25zdW1lciBzaWRlXG4gKiBjb25zdCBleHBvcnRlZFNlcnZpY2UgPSBFeHBvcnRlZFNlcnZpY2UuZnJvbUF0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gKiAgIHN0YWNrTmFtZTogJ215LXNlcnZpY2Utc3RhY2snLFxuICogICBzZXJ2aWNlTmFtZTogJ215LXNlcnZpY2UnLFxuICogICBwb3J0OiA4MDgwLFxuICogfSk7XG4gKlxuICogZXhwb3J0ZWRTZXJ2aWNlLmFsbG93RnJvbShteVNlcnZpY2UpO1xuICogY29uc3QgdXJsID0gZXhwb3J0ZWRTZXJ2aWNlLmFwaVVybCgpO1xuICovXG5leHBvcnQgY2xhc3MgRXhwb3J0ZWRTZXJ2aWNlIGV4dGVuZHMgRXhwb3J0ZWRTZXJ2aWNlQmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gRXhwb3J0ZWRTZXJ2aWNlIGZyb20gYW5vdGhlciBzdGFjay5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgaW1wb3J0cyB0aGUgc2VydmljZSBtZXRhZGF0YSAoc2VjdXJpdHkgZ3JvdXAgYW5kIG5hbWVzcGFjZSlcbiAgICogdGhhdCB3YXMgZXhwb3J0ZWQgYnkgdGhlIHByb3ZpZGVyIHN0YWNrIGFuZCBjb25zdHJ1Y3RzIGFuIElFeHBvcnRlZFNlcnZpY2VcbiAgICogaW5zdGFuY2UgdGhhdCBjYW4gYmUgdXNlZCBmb3IgZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIGNvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gYXR0cnMgLSBUaGUgZXhwb3J0ZWQgc2VydmljZSBsb29rdXAgb3B0aW9ucyAoc3RhY2tOYW1lLCBzZXJ2aWNlTmFtZSwgYW5kIHBvcnQpXG4gICAqIEByZXR1cm5zIEFuIElFeHBvcnRlZFNlcnZpY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBFeHBvcnRlZFNlcnZpY2VMb29rdXBPcHRpb25zLFxuICApOiBJRXhwb3J0ZWRTZXJ2aWNlIHtcbiAgICBjb25zdCBub3JtYWxpemVkU2VydmljZU5hbWUgPSBrZWJhYkNhc2UoYXR0cnMuc2VydmljZU5hbWUpO1xuICAgIGNvbnN0IHN0YWNrUGFyYW1ldGVycyA9IEV4cG9ydGVkU2VydmljZS5jcmVhdGVTdGFja1BhcmFtZXRlcnMoXG4gICAgICBub3JtYWxpemVkU2VydmljZU5hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBJZCA9IHN0YWNrUGFyYW1ldGVycy5zZWN1cml0eUdyb3VwUGFyYW1ldGVyLmltcG9ydChcbiAgICAgIHNjb3BlLFxuICAgICAgYXR0cnMuc3RhY2tOYW1lLFxuICAgICk7XG4gICAgY29uc3QgbmFtZXNwYWNlTmFtZSA9IHN0YWNrUGFyYW1ldGVycy5uYW1lc3BhY2VQYXJhbWV0ZXIuaW1wb3J0KFxuICAgICAgc2NvcGUsXG4gICAgICBhdHRycy5zdGFja05hbWUsXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXAgPSBTZWN1cml0eUdyb3VwLmZyb21TZWN1cml0eUdyb3VwSWQoXG4gICAgICBzY29wZSxcbiAgICAgIFwiSW1wb3J0ZWRTZWN1cml0eUdyb3VwXCIsXG4gICAgICBzZWN1cml0eUdyb3VwSWQsXG4gICAgICB7IGFsbG93QWxsT3V0Ym91bmQ6IHRydWUgfSxcbiAgICApO1xuXG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgRXhwb3J0ZWRTZXJ2aWNlQmFzZSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoXG4gICAgICAgICAgc2NvcGUsXG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbm9ybWFsaXplZFNlcnZpY2VOYW1lLFxuICAgICAgICAgIG5hbWVzcGFjZU5hbWUsXG4gICAgICAgICAgYXR0cnMucG9ydCxcbiAgICAgICAgICBzZWN1cml0eUdyb3VwLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KCk7XG4gIH1cbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlU3RhY2tQYXJhbWV0ZXJzKHNlcnZpY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VjdXJpdHlHcm91cFBhcmFtZXRlcjogbmV3IFN0YWNrUGFyYW1ldGVyKHtcbiAgICAgICAgcHJlZml4OiBbXCJleHBvcnRlZC1zZXJ2aWNlXCIsIHNlcnZpY2VOYW1lXSxcbiAgICAgICAga2V5OiBcInNlY3VyaXR5LWdyb3VwLWlkXCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlNlY3VyaXR5IEdyb3VwIElEIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgICBuYW1lc3BhY2VQYXJhbWV0ZXI6IG5ldyBTdGFja1BhcmFtZXRlcih7XG4gICAgICAgIHByZWZpeDogW1wiZXhwb3J0ZWQtc2VydmljZVwiLCBzZXJ2aWNlTmFtZV0sXG4gICAgICAgIGtleTogXCJuYW1lc3BhY2VcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQ2xvdWRNYXAgbmFtZXNwYWNlIG9mIHRoZSBleHBvcnRlZCBFQ1Mgc2VydmljZVwiLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhY2tQYXJhbWV0ZXJzOiBSZXR1cm5UeXBlPFxuICAgIHR5cGVvZiBFeHBvcnRlZFNlcnZpY2UuY3JlYXRlU3RhY2tQYXJhbWV0ZXJzXG4gID47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV4cG9ydGVkU2VydmljZVByb3BzKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNlcnZpY2VOYW1lID0ga2ViYWJDYXNlKHByb3BzLnNlcnZpY2VOYW1lKTtcbiAgICBzdXBlcihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBub3JtYWxpemVkU2VydmljZU5hbWUsXG4gICAgICBwcm9wcy5uYW1lc3BhY2VOYW1lLFxuICAgICAgMCwgLy8gRGVmYXVsdCBwb3J0IC0gYWN0dWFsIHBvcnQgaXMgc3BlY2lmaWVkIG9uIGNvbnN1bWVyIHNpZGVcbiAgICAgIHByb3BzLnNlY3VyaXR5R3JvdXAsXG4gICAgKTtcblxuICAgIHRoaXMuc3RhY2tQYXJhbWV0ZXJzID0gRXhwb3J0ZWRTZXJ2aWNlLmNyZWF0ZVN0YWNrUGFyYW1ldGVycyhcbiAgICAgIG5vcm1hbGl6ZWRTZXJ2aWNlTmFtZSxcbiAgICApO1xuXG4gICAgLy8gRXhwb3J0IHNlcnZpY2UgbWV0YWRhdGEgZm9yIGNyb3NzLXN0YWNrIGNvbnN1bXB0aW9uXG4gICAgdGhpcy5zdGFja1BhcmFtZXRlcnMuc2VjdXJpdHlHcm91cFBhcmFtZXRlci5leHBvcnQoXG4gICAgICB0aGlzLFxuICAgICAgcHJvcHMuc2VjdXJpdHlHcm91cC5zZWN1cml0eUdyb3VwSWQsXG4gICAgKTtcbiAgICB0aGlzLnN0YWNrUGFyYW1ldGVycy5uYW1lc3BhY2VQYXJhbWV0ZXIuZXhwb3J0KHRoaXMsIHByb3BzLm5hbWVzcGFjZU5hbWUpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- var _a;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.S3Bucket = void 0;
5
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
@@ -29,11 +28,10 @@ function adjustProps(scope, id, props) {
29
28
  * bucket and all its contents, if the stack is deleted.
30
29
  */
31
30
  class S3Bucket extends aws_s3_1.Bucket {
31
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@btc-embedded/cdk-extensions.S3Bucket", version: "0.23.7" };
32
32
  constructor(scope, id, props) {
33
33
  super(scope, id, adjustProps(scope, id, props));
34
34
  }
35
35
  }
36
36
  exports.S3Bucket = S3Bucket;
37
- _a = JSII_RTTI_SYMBOL_1;
38
- S3Bucket[_a] = { fqn: "@btc-embedded/cdk-extensions.S3Bucket", version: "0.23.5" };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNCdWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9TM0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFtRTtBQUNuRSwrQ0FBeUQ7QUFFekQsb0NBQTRDO0FBRTVDLFNBQVMsV0FBVyxDQUNsQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBbUI7SUFFbkIsSUFBSSxJQUFBLHdCQUFnQixHQUFFLEVBQUUsQ0FBQztRQUN2Qix5QkFBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQzNCLEdBQUcsRUFBRSx5RUFBeUUsQ0FDL0UsQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1lBQ3BDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsY0FBYyxFQUFFO2dCQUNkO29CQUNFLFVBQVUsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzVCLG1DQUFtQyxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDdEQ7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxlQUFNO0lBQ2xDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7UUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOztBQUhILDRCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBCdWNrZXQsIEJ1Y2tldFByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGlzRGV2ZWxvcGVyU3RhY2sgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gYWRqdXN0UHJvcHMoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzPzogQnVja2V0UHJvcHMsXG4pOiBCdWNrZXRQcm9wcyB7XG4gIGlmIChpc0RldmVsb3BlclN0YWNrKCkpIHtcbiAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkSW5mbyhcbiAgICAgIGAke2lkfSBpcyBkZXBsb3llZCBpbiBhIGRldmVsb3BlciB2YXJpYW50LiBGaWxlcyB3aWxsIGJlIHJldGFpbmVkIGZvciAzIGRheXMuYCxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMyksXG4gICAgICAgICAgYWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQWZ0ZXI6IER1cmF0aW9uLmRheXMoMSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHsgLi4ucHJvcHMgfTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciB0aGUge0BsaW5rIEJ1Y2tldH0gY29uc3RydWN0cyB0aGF0IGFkZHMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCBpZiBhIGRldmVsb3BlclxuICogc3RhY2sgaXMgZGV0ZWN0ZWQuIFdpbGwgY2F1c2UgZmlsZXMgdG8gZXhwaXJlIGFmdGVyIHRyZWUgZGF5cyBhbmQgYWxsb3dzIHRvIGRlbGV0ZSB0aGVcbiAqIGJ1Y2tldCBhbmQgYWxsIGl0cyBjb250ZW50cywgaWYgdGhlIHN0YWNrIGlzIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0J1Y2tldCBleHRlbmRzIEJ1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGFkanVzdFByb3BzKHNjb3BlLCBpZCwgcHJvcHMpKTtcbiAgfVxufVxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNCdWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9TM0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkNBQW1FO0FBQ25FLCtDQUF5RDtBQUV6RCxvQ0FBNEM7QUFFNUMsU0FBUyxXQUFXLENBQ2xCLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFtQjtJQUVuQixJQUFJLElBQUEsd0JBQWdCLEdBQUUsRUFBRSxDQUFDO1FBQ3ZCLHlCQUFXLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FDM0IsR0FBRyxFQUFFLHlFQUF5RSxDQUMvRSxDQUFDO1FBQ0YsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87WUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtZQUN2QixjQUFjLEVBQUU7Z0JBQ2Q7b0JBQ0UsVUFBVSxFQUFFLHNCQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDNUIsbUNBQW1DLEVBQUUsc0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN0RDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUN0QixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLGVBQU07O0lBQ2xDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBbUI7UUFDM0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOztBQUhILDRCQUlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBCdWNrZXQsIEJ1Y2tldFByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGlzRGV2ZWxvcGVyU3RhY2sgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZnVuY3Rpb24gYWRqdXN0UHJvcHMoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzPzogQnVja2V0UHJvcHMsXG4pOiBCdWNrZXRQcm9wcyB7XG4gIGlmIChpc0RldmVsb3BlclN0YWNrKCkpIHtcbiAgICBBbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkSW5mbyhcbiAgICAgIGAke2lkfSBpcyBkZXBsb3llZCBpbiBhIGRldmVsb3BlciB2YXJpYW50LiBGaWxlcyB3aWxsIGJlIHJldGFpbmVkIGZvciAzIGRheXMuYCxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMyksXG4gICAgICAgICAgYWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkQWZ0ZXI6IER1cmF0aW9uLmRheXMoMSksXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHsgLi4ucHJvcHMgfTtcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciB0aGUge0BsaW5rIEJ1Y2tldH0gY29uc3RydWN0cyB0aGF0IGFkZHMgYWRkaXRpb25hbCBwcm9wZXJ0aWVzLCBpZiBhIGRldmVsb3BlclxuICogc3RhY2sgaXMgZGV0ZWN0ZWQuIFdpbGwgY2F1c2UgZmlsZXMgdG8gZXhwaXJlIGFmdGVyIHRyZWUgZGF5cyBhbmQgYWxsb3dzIHRvIGRlbGV0ZSB0aGVcbiAqIGJ1Y2tldCBhbmQgYWxsIGl0cyBjb250ZW50cywgaWYgdGhlIHN0YWNrIGlzIGRlbGV0ZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTM0J1Y2tldCBleHRlbmRzIEJ1Y2tldCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQnVja2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIGFkanVzdFByb3BzKHNjb3BlLCBpZCwgcHJvcHMpKTtcbiAgfVxufVxuIl19