@cdklabs/cdk-appmod-catalog-blueprints 1.5.0 → 1.6.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.
Files changed (92) hide show
  1. package/.jsii +2537 -204
  2. package/lib/document-processing/adapter/adapter.d.ts +4 -2
  3. package/lib/document-processing/adapter/adapter.js +1 -1
  4. package/lib/document-processing/adapter/queued-s3-adapter.d.ts +9 -2
  5. package/lib/document-processing/adapter/queued-s3-adapter.js +29 -15
  6. package/lib/document-processing/agentic-document-processing.d.ts +4 -0
  7. package/lib/document-processing/agentic-document-processing.js +20 -10
  8. package/lib/document-processing/base-document-processing.d.ts +54 -2
  9. package/lib/document-processing/base-document-processing.js +136 -82
  10. package/lib/document-processing/bedrock-document-processing.d.ts +202 -2
  11. package/lib/document-processing/bedrock-document-processing.js +717 -77
  12. package/lib/document-processing/chunking-config.d.ts +614 -0
  13. package/lib/document-processing/chunking-config.js +5 -0
  14. package/lib/document-processing/default-document-processing-config.js +1 -1
  15. package/lib/document-processing/index.d.ts +1 -0
  16. package/lib/document-processing/index.js +2 -1
  17. package/lib/document-processing/resources/aggregation/handler.py +567 -0
  18. package/lib/document-processing/resources/aggregation/requirements.txt +7 -0
  19. package/lib/document-processing/resources/aggregation/test_handler.py +362 -0
  20. package/lib/document-processing/resources/cleanup/handler.py +276 -0
  21. package/lib/document-processing/resources/cleanup/requirements.txt +5 -0
  22. package/lib/document-processing/resources/cleanup/test_handler.py +436 -0
  23. package/lib/document-processing/resources/default-bedrock-invoke/index.py +85 -3
  24. package/lib/document-processing/resources/default-bedrock-invoke/test_index.py +622 -0
  25. package/lib/document-processing/resources/pdf-chunking/README.md +313 -0
  26. package/lib/document-processing/resources/pdf-chunking/chunking_strategies.py +460 -0
  27. package/lib/document-processing/resources/pdf-chunking/error_handling.py +491 -0
  28. package/lib/document-processing/resources/pdf-chunking/handler.py +958 -0
  29. package/lib/document-processing/resources/pdf-chunking/metrics.py +435 -0
  30. package/lib/document-processing/resources/pdf-chunking/requirements.txt +3 -0
  31. package/lib/document-processing/resources/pdf-chunking/strategy_selection.py +420 -0
  32. package/lib/document-processing/resources/pdf-chunking/structured_logging.py +457 -0
  33. package/lib/document-processing/resources/pdf-chunking/test_chunking_strategies.py +353 -0
  34. package/lib/document-processing/resources/pdf-chunking/test_error_handling.py +487 -0
  35. package/lib/document-processing/resources/pdf-chunking/test_handler.py +609 -0
  36. package/lib/document-processing/resources/pdf-chunking/test_integration.py +694 -0
  37. package/lib/document-processing/resources/pdf-chunking/test_metrics.py +532 -0
  38. package/lib/document-processing/resources/pdf-chunking/test_strategy_selection.py +471 -0
  39. package/lib/document-processing/resources/pdf-chunking/test_structured_logging.py +449 -0
  40. package/lib/document-processing/resources/pdf-chunking/test_token_estimation.py +374 -0
  41. package/lib/document-processing/resources/pdf-chunking/token_estimation.py +189 -0
  42. package/lib/document-processing/tests/agentic-document-processing-nag.test.js +4 -3
  43. package/lib/document-processing/tests/agentic-document-processing.test.js +488 -4
  44. package/lib/document-processing/tests/base-document-processing-nag.test.js +9 -2
  45. package/lib/document-processing/tests/base-document-processing-schema.test.d.ts +1 -0
  46. package/lib/document-processing/tests/base-document-processing-schema.test.js +337 -0
  47. package/lib/document-processing/tests/base-document-processing.test.js +114 -8
  48. package/lib/document-processing/tests/bedrock-document-processing-chunking-nag.test.d.ts +1 -0
  49. package/lib/document-processing/tests/bedrock-document-processing-chunking-nag.test.js +382 -0
  50. package/lib/document-processing/tests/bedrock-document-processing-nag.test.js +4 -3
  51. package/lib/document-processing/tests/bedrock-document-processing-security.test.d.ts +1 -0
  52. package/lib/document-processing/tests/bedrock-document-processing-security.test.js +389 -0
  53. package/lib/document-processing/tests/bedrock-document-processing.test.js +808 -8
  54. package/lib/document-processing/tests/chunking-config.test.d.ts +1 -0
  55. package/lib/document-processing/tests/chunking-config.test.js +238 -0
  56. package/lib/document-processing/tests/queued-s3-adapter-nag.test.js +9 -2
  57. package/lib/document-processing/tests/queued-s3-adapter.test.js +17 -6
  58. package/lib/framework/agents/base-agent.js +1 -1
  59. package/lib/framework/agents/batch-agent.js +1 -1
  60. package/lib/framework/agents/default-agent-config.js +1 -1
  61. package/lib/framework/bedrock/bedrock.js +1 -1
  62. package/lib/framework/custom-resource/default-runtimes.js +1 -1
  63. package/lib/framework/foundation/access-log.js +1 -1
  64. package/lib/framework/foundation/eventbridge-broker.js +1 -1
  65. package/lib/framework/foundation/network.js +1 -1
  66. package/lib/framework/tests/access-log.test.js +5 -2
  67. package/lib/framework/tests/batch-agent.test.js +5 -2
  68. package/lib/framework/tests/bedrock.test.js +5 -2
  69. package/lib/framework/tests/eventbridge-broker.test.js +5 -2
  70. package/lib/framework/tests/framework-nag.test.js +16 -8
  71. package/lib/framework/tests/network.test.js +9 -4
  72. package/lib/tsconfig.tsbuildinfo +1 -1
  73. package/lib/utilities/data-loader.js +1 -1
  74. package/lib/utilities/lambda-iam-utils.js +1 -1
  75. package/lib/utilities/observability/cloudfront-distribution-observability-property-injector.js +1 -1
  76. package/lib/utilities/observability/default-observability-config.js +1 -1
  77. package/lib/utilities/observability/lambda-observability-property-injector.js +1 -1
  78. package/lib/utilities/observability/log-group-data-protection-utils.js +1 -1
  79. package/lib/utilities/observability/powertools-config.d.ts +10 -1
  80. package/lib/utilities/observability/powertools-config.js +19 -3
  81. package/lib/utilities/observability/state-machine-observability-property-injector.js +1 -1
  82. package/lib/utilities/test-utils.d.ts +43 -0
  83. package/lib/utilities/test-utils.js +56 -0
  84. package/lib/utilities/tests/data-loader-nag.test.js +3 -2
  85. package/lib/utilities/tests/data-loader.test.js +3 -2
  86. package/lib/webapp/frontend-construct.js +1 -1
  87. package/lib/webapp/tests/frontend-construct-nag.test.js +3 -2
  88. package/lib/webapp/tests/frontend-construct.test.js +3 -2
  89. package/package.json +6 -5
  90. package/lib/document-processing/resources/default-error-handler/index.js +0 -46
  91. package/lib/document-processing/resources/default-pdf-processor/index.js +0 -46
  92. package/lib/document-processing/resources/default-pdf-validator/index.js +0 -36
@@ -444,5 +444,5 @@ def handler(event, context):
444
444
  }
445
445
  exports.DataLoader = DataLoader;
446
446
  _a = JSII_RTTI_SYMBOL_1;
447
- DataLoader[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.DataLoader", version: "1.5.0" };
447
+ DataLoader[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.DataLoader", version: "1.6.0" };
448
448
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91c2UtY2FzZXMvdXRpbGl0aWVzL2RhdGEtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUV0Qyw2QkFBNkI7QUFDN0IsOEVBQWtFO0FBQ2xFLDZDQUFtRjtBQUNuRixpREFBZ0Y7QUFDaEYsaURBQXFIO0FBQ3JILHVEQUFpRztBQUVqRywrQ0FBaUY7QUFDakYscUVBQXlFO0FBRXpFLHFFQUE2RjtBQUM3RixpRkFBbUU7QUFDbkUsbUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2Qyw0Q0FBK0M7QUFFL0M7O0dBRUc7QUFDSCxJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDeEIsaUNBQWUsQ0FBQTtJQUNmLDJDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFIVyxjQUFjLDhCQUFkLGNBQWMsUUFHekI7QUFFRDs7R0FFRztBQUNILElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNsQix3QkFBd0I7SUFDeEIsdUJBQVcsQ0FBQTtJQUNYLDZDQUE2QztJQUM3QyxtQ0FBdUIsQ0FBQTtJQUN2QixnREFBZ0Q7SUFDaEQsNkJBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVBXLFFBQVEsd0JBQVIsUUFBUSxRQU9uQjtBQW9ERDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQWdCdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFFbkMsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0Isa0NBQWtDO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLEtBQUss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LEdBQUcsQ0FBQyxDQUFDLENBQUMscUJBQXFCO1lBQ3hELENBQUM7aUJBQU0sQ0FBQztnQkFDTixtREFBbUQ7Z0JBQ25ELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLGNBQWMsUUFBUSxFQUFFLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUEvYkgsZ0NBZ2NDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgUHl0aG9uRnVuY3Rpb24gfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhLXB5dGhvbi1hbHBoYSc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSwgQ3VzdG9tUmVzb3VyY2UsIERvY2tlckltYWdlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSVZwYywgU2VjdXJpdHlHcm91cCwgUG9ydCwgSVNlY3VyaXR5R3JvdXAgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgUm9sZSwgU2VydmljZVByaW5jaXBhbCwgTWFuYWdlZFBvbGljeSwgUG9saWN5RG9jdW1lbnQsIEVmZmVjdCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBDb2RlLCBGdW5jdGlvbiBhcyBMYW1iZGFGdW5jdGlvbiwgUnVudGltZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgSURhdGFiYXNlQ2x1c3RlciwgSURhdGFiYXNlSW5zdGFuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcmRzJztcbmltcG9ydCB7IEJ1Y2tldCwgQnVja2V0RW5jcnlwdGlvbiwgQmxvY2tQdWJsaWNBY2Nlc3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQnVja2V0RGVwbG95bWVudCwgU291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnQnO1xuaW1wb3J0IHsgSVNlY3JldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBTdGF0ZU1hY2hpbmUsIERlZmluaXRpb25Cb2R5LCBNYXAsIFRhc2tJbnB1dCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCB7IExhbWJkYUludm9rZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IERlZmF1bHRSdW50aW1lcyB9IGZyb20gJy4uL2ZyYW1ld29yayc7XG5cbi8qKlxuICogU3VwcG9ydGVkIGRhdGFiYXNlIGVuZ2luZXNcbiAqL1xuZXhwb3J0IGVudW0gRGF0YWJhc2VFbmdpbmUge1xuICBNWVNRTCA9ICdteXNxbCcsXG4gIFBPU1RHUkVTUUwgPSAncG9zdGdyZXNxbCcsXG59XG5cbi8qKlxuICogU3VwcG9ydGVkIGZpbGUgdHlwZXMgZm9yIGRhdGEgbG9hZGluZ1xuICovXG5leHBvcnQgZW51bSBGaWxlVHlwZSB7XG4gIC8qKiBTdGFuZGFyZCBTUUwgZmlsZSAqL1xuICBTUUwgPSAnc3FsJyxcbiAgLyoqIE15U1FMIGR1bXAgZmlsZSBnZW5lcmF0ZWQgYnkgbXlzcWxkdW1wICovXG4gIE1ZU1FMRFVNUCA9ICdteXNxbGR1bXAnLFxuICAvKiogUG9zdGdyZVNRTCBkdW1wIGZpbGUgZ2VuZXJhdGVkIGJ5IHBnX2R1bXAgKi9cbiAgUEdEVU1QID0gJ3BnZHVtcCcsXG59XG5cbi8qKlxuICogRGF0YWJhc2UgY29ubmVjdGlvbiBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VDb25maWcge1xuICAvKiogRGF0YWJhc2UgZW5naW5lIHR5cGUgKi9cbiAgcmVhZG9ubHkgZW5naW5lOiBEYXRhYmFzZUVuZ2luZTtcbiAgLyoqIERhdGFiYXNlIGNsdXN0ZXIgKGZvciBBdXJvcmEpICovXG4gIHJlYWRvbmx5IGNsdXN0ZXI/OiBJRGF0YWJhc2VDbHVzdGVyO1xuICAvKiogRGF0YWJhc2UgaW5zdGFuY2UgKGZvciBSRFMpICovXG4gIHJlYWRvbmx5IGluc3RhbmNlPzogSURhdGFiYXNlSW5zdGFuY2U7XG4gIC8qKiBEYXRhYmFzZSBjcmVkZW50aWFscyBzZWNyZXQgKi9cbiAgcmVhZG9ubHkgc2VjcmV0OiBJU2VjcmV0O1xuICAvKiogRGF0YWJhc2UgbmFtZSB0byBjb25uZWN0IHRvICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlTmFtZTogc3RyaW5nO1xuICAvKiogVlBDIHdoZXJlIHRoZSBkYXRhYmFzZSBpcyBsb2NhdGVkICovXG4gIHJlYWRvbmx5IHZwYzogSVZwYztcbiAgLyoqIFNlY3VyaXR5IGdyb3VwIGZvciBkYXRhYmFzZSBhY2Nlc3MgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG59XG5cbi8qKlxuICogRmlsZSBpbnB1dCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUlucHV0IHtcbiAgLyoqIFBhdGggdG8gdGhlIGZpbGUgKGxvY2FsIHBhdGggb3IgUzMgVVJJKSAqL1xuICByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xuICAvKiogVHlwZSBvZiBmaWxlICovXG4gIHJlYWRvbmx5IGZpbGVUeXBlOiBGaWxlVHlwZTtcbiAgLyoqIEV4ZWN1dGlvbiBvcmRlciAobG93ZXIgbnVtYmVycyBleGVjdXRlIGZpcnN0KSAqL1xuICByZWFkb25seSBleGVjdXRpb25PcmRlcj86IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgdG8gY29udGludWUgb24gZXJyb3IgKi9cbiAgcmVhZG9ubHkgY29udGludWVPbkVycm9yPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgRGF0YUxvYWRlciBjb25zdHJ1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhTG9hZGVyUHJvcHMge1xuICAvKiogRGF0YWJhc2UgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBkYXRhYmFzZUNvbmZpZzogRGF0YWJhc2VDb25maWc7XG4gIC8qKiBMaXN0IG9mIGZpbGVzIHRvIGxvYWQgKi9cbiAgcmVhZG9ubHkgZmlsZUlucHV0czogRmlsZUlucHV0W107XG4gIC8qKiBPcHRpb25hbCByZW1vdmFsIHBvbGljeSBmb3IgcmVzb3VyY2VzIChkZWZhdWx0cyB0byBERVNUUk9ZKSAqL1xuICByZWFkb25seSByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbiAgLyoqIE9wdGlvbmFsIHRpbWVvdXQgZm9yIExhbWJkYSBmdW5jdGlvbiAoZGVmYXVsdHMgdG8gMTUgbWludXRlcykgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IER1cmF0aW9uO1xuICAvKiogT3B0aW9uYWwgbWVtb3J5IHNpemUgZm9yIExhbWJkYSBmdW5jdGlvbiAoZGVmYXVsdHMgdG8gMTAyNCBNQikgKi9cbiAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBEYXRhTG9hZGVyIGNvbnN0cnVjdCBmb3IgbG9hZGluZyBkYXRhIGludG8gQXVyb3JhL1JEUyBkYXRhYmFzZXNcbiAqXG4gKiBUaGlzIGNvbnN0cnVjdCBwcm92aWRlcyBhIHNpbXBsaWZpZWQgc29sdXRpb24gZm9yIGxvYWRpbmcgZGF0YSBmcm9tIHZhcmlvdXMgZmlsZSBmb3JtYXRzXG4gKiAoU1FMLCBteXNxbGR1bXAsIHBnX2R1bXApIGludG8gTXlTUUwgb3IgUG9zdGdyZVNRTCBkYXRhYmFzZXMuIEl0IHVzZXMgUzMgZm9yIGZpbGUgc3RvcmFnZSxcbiAqIFN0ZXAgRnVuY3Rpb25zIGZvciBvcmNoZXN0cmF0aW9uLCBhbmQgTGFtYmRhIGZvciBwcm9jZXNzaW5nLlxuICpcbiAqIEFyY2hpdGVjdHVyZTpcbiAqIDEuIEZpbGVzIGFyZSB1cGxvYWRlZCB0byBTMyBidWNrZXRcbiAqIDIuIFN0ZXAgRnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdpdGggbGlzdCBvZiBTMyBrZXlzXG4gKiAzLiBTdGVwIEZ1bmN0aW9uIGl0ZXJhdGVzIG92ZXIgZmlsZXMgaW4gZXhlY3V0aW9uIG9yZGVyXG4gKiA0LiBMYW1iZGEgZnVuY3Rpb24gcHJvY2Vzc2VzIGVhY2ggZmlsZSBhZ2FpbnN0IHRoZSBkYXRhYmFzZVxuICpcbiAqIEV4YW1wbGUgdXNhZ2U6XG4gKiBDcmVhdGUgYSBEYXRhTG9hZGVyIHdpdGggZGF0YWJhc2UgY29uZmlndXJhdGlvbiBhbmQgZmlsZSBpbnB1dHMuXG4gKiBUaGUgY29uc3RydWN0IHdpbGwgaGFuZGxlIHVwbG9hZGluZyBmaWxlcyB0byBTMywgY3JlYXRpbmcgYSBTdGVwIEZ1bmN0aW9uXG4gKiB0byBvcmNoZXN0cmF0ZSBwcm9jZXNzaW5nLCBhbmQgZXhlY3V0aW5nIHRoZSBkYXRhIGxvYWRpbmcgcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhTG9hZGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqIFRoZSBTMyBidWNrZXQgdXNlZCBmb3Igc3RvcmluZyBmaWxlcyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBCdWNrZXQ7XG4gIC8qKiBUaGUgU3RlcCBGdW5jdGlvbnMgc3RhdGUgbWFjaGluZSBmb3Igb3JjaGVzdHJhdGlvbiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGVNYWNoaW5lOiBTdGF0ZU1hY2hpbmU7XG4gIC8qKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcHJvY2Vzc2VzIHRoZSBkYXRhIGxvYWRpbmcgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NvckZ1bmN0aW9uOiBMYW1iZGFGdW5jdGlvbjtcbiAgLyoqIFRoZSBidWNrZXQgZGVwbG95bWVudCBmb3IgdXBsb2FkaW5nIGZpbGVzICovXG4gIHB1YmxpYyBidWNrZXREZXBsb3ltZW50PzogQnVja2V0RGVwbG95bWVudDtcbiAgLyoqIFRoZSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZXIgZm9yIHRyaWdnZXJpbmcgc3RhdGUgbWFjaGluZSBleGVjdXRpb24gKi9cbiAgcHVibGljIHJlYWRvbmx5IGN1c3RvbVJlc291cmNlUHJvdmlkZXI6IFByb3ZpZGVyO1xuICAvKiogVGhlIGN1c3RvbSByZXNvdXJjZSB0aGF0IHRyaWdnZXJzIHRoZSBzdGF0ZSBtYWNoaW5lICovXG4gIHB1YmxpYyByZWFkb25seSBleGVjdXRpb25UcmlnZ2VyOiBDdXN0b21SZXNvdXJjZTtcbiAgLyoqIFRoZSBmaWxlIGlucHV0cyBjb25maWd1cmF0aW9uICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZUlucHV0czogRmlsZUlucHV0W107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFMb2FkZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBTdG9yZSBmaWxlIGlucHV0cyBmb3IgbGF0ZXIgdXNlXG4gICAgdGhpcy5maWxlSW5wdXRzID0gcHJvcHMuZmlsZUlucHV0cztcblxuICAgIC8vIFZhbGlkYXRlIHByb3BzXG4gICAgdGhpcy5fdmFsaWRhdGVQcm9wcyhwcm9wcyk7XG5cbiAgICAvLyBHZXQgcmVtb3ZhbCBwb2xpY3kgd2l0aCBkZWZhdWx0XG4gICAgY29uc3QgcmVtb3ZhbFBvbGljeSA9IHByb3BzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZO1xuXG4gICAgLy8gQ3JlYXRlIFMzIGJ1Y2tldCBmb3Igc3RvcmluZyBmaWxlc1xuICAgIHRoaXMuYnVja2V0ID0gdGhpcy5fY3JlYXRlQnVja2V0KHJlbW92YWxQb2xpY3kpO1xuXG4gICAgLy8gQ3JlYXRlIExhbWJkYSBmdW5jdGlvbiBmb3IgcHJvY2Vzc2luZ1xuICAgIHRoaXMucHJvY2Vzc29yRnVuY3Rpb24gPSB0aGlzLl9jcmVhdGVQcm9jZXNzb3JGdW5jdGlvbihwcm9wcyk7XG5cbiAgICAvLyBDcmVhdGUgU3RlcCBGdW5jdGlvbnMgc3RhdGUgbWFjaGluZVxuICAgIHRoaXMuc3RhdGVNYWNoaW5lID0gdGhpcy5fY3JlYXRlU3RhdGVNYWNoaW5lKCk7XG5cbiAgICAvLyBDcmVhdGUgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIGZvciB0cmlnZ2VyaW5nIGV4ZWN1dGlvblxuICAgIHRoaXMuY3VzdG9tUmVzb3VyY2VQcm92aWRlciA9IHRoaXMuX2NyZWF0ZUN1c3RvbVJlc291cmNlUHJvdmlkZXIoKTtcblxuICAgIC8vIFVwbG9hZCBmaWxlcyB0byBTM1xuICAgIHRoaXMuX3NldHVwRmlsZVByb2Nlc3NpbmcocHJvcHMpO1xuXG4gICAgLy8gQ3JlYXRlIGN1c3RvbSByZXNvdXJjZSB0byB0cmlnZ2VyIGV4ZWN1dGlvbiBhZnRlciBmaWxlcyBhcmUgdXBsb2FkZWRcbiAgICB0aGlzLmV4ZWN1dGlvblRyaWdnZXIgPSB0aGlzLl9jcmVhdGVFeGVjdXRpb25UcmlnZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIGFkZGl0aW9uYWwgSUFNIHBlcm1pc3Npb25zIHRvIHRoZSBleGVjdXRpb24gdHJpZ2dlciBMYW1iZGEgZnVuY3Rpb25cbiAgICogQHBhcmFtIHN0YXRlbWVudCBUaGUgSUFNIHBvbGljeSBzdGF0ZW1lbnQgdG8gYWRkXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRFeGVjdXRpb25UcmlnZ2VyUGVybWlzc2lvbnMoc3RhdGVtZW50OiBQb2xpY3lTdGF0ZW1lbnQpOiB2b2lkIHtcbiAgICAvLyBHZXQgdGhlIExhbWJkYSBmdW5jdGlvbiBmcm9tIHRoZSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZXJcbiAgICBjb25zdCB0cmlnZ2VyRnVuY3Rpb24gPSB0aGlzLmN1c3RvbVJlc291cmNlUHJvdmlkZXIub25FdmVudEhhbmRsZXI7XG4gICAgaWYgKHRyaWdnZXJGdW5jdGlvbikge1xuICAgICAgdHJpZ2dlckZ1bmN0aW9uLmFkZFRvUm9sZVBvbGljeShzdGF0ZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGNvbnN0cnVjdCBwcm9wZXJ0aWVzXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgRGF0YUxvYWRlciBwcm9wZXJ0aWVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVByb3BzKHByb3BzOiBEYXRhTG9hZGVyUHJvcHMpOiB2b2lkIHtcbiAgICBpZiAoIXByb3BzLmRhdGFiYXNlQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2RhdGFiYXNlQ29uZmlnIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcy5kYXRhYmFzZUNvbmZpZy5jbHVzdGVyICYmICFwcm9wcy5kYXRhYmFzZUNvbmZpZy5pbnN0YW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgY2x1c3RlciBvciBpbnN0YW5jZSBtdXN0IGJlIHByb3ZpZGVkIGluIGRhdGFiYXNlQ29uZmlnJyk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcy5maWxlSW5wdXRzIHx8IHByb3BzLmZpbGVJbnB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0IGxlYXN0IG9uZSBmaWxlIGlucHV0IGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgLy8gVmFsaWRhdGUgZmlsZSBpbnB1dHNcbiAgICBmb3IgKGNvbnN0IGZpbGVJbnB1dCBvZiBwcm9wcy5maWxlSW5wdXRzKSB7XG4gICAgICBpZiAoIWZpbGVJbnB1dC5maWxlUGF0aCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZpbGVQYXRoIGlzIHJlcXVpcmVkIGZvciBlYWNoIGZpbGUgaW5wdXQnKTtcbiAgICAgIH1cbiAgICAgIGlmICghZmlsZUlucHV0LmZpbGVUeXBlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignZmlsZVR5cGUgaXMgcmVxdWlyZWQgZm9yIGVhY2ggZmlsZSBpbnB1dCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIGVuZ2luZSBjb21wYXRpYmlsaXR5XG4gICAgZm9yIChjb25zdCBmaWxlSW5wdXQgb2YgcHJvcHMuZmlsZUlucHV0cykge1xuICAgICAgaWYgKHByb3BzLmRhdGFiYXNlQ29uZmlnLmVuZ2luZSA9PT0gRGF0YWJhc2VFbmdpbmUuTVlTUUwgJiZcbiAgICAgICAgICBmaWxlSW5wdXQuZmlsZVR5cGUgPT09IEZpbGVUeXBlLlBHRFVNUCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Bvc3RncmVTUUwgZHVtcCBmaWxlcyBjYW5ub3QgYmUgdXNlZCB3aXRoIE15U1FMIGRhdGFiYXNlcycpO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmRhdGFiYXNlQ29uZmlnLmVuZ2luZSA9PT0gRGF0YWJhc2VFbmdpbmUuUE9TVEdSRVNRTCAmJlxuICAgICAgICAgIGZpbGVJbnB1dC5maWxlVHlwZSA9PT0gRmlsZVR5cGUuTVlTUUxEVU1QKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTXlTUUwgZHVtcCBmaWxlcyBjYW5ub3QgYmUgdXNlZCB3aXRoIFBvc3RncmVTUUwgZGF0YWJhc2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIFMzIGJ1Y2tldCBmb3Igc3RvcmluZyBmaWxlc1xuICAgKiBAcGFyYW0gcmVtb3ZhbFBvbGljeSBUaGUgcmVtb3ZhbCBwb2xpY3kgdG8gYXBwbHlcbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgUzMgYnVja2V0XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVCdWNrZXQocmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeSk6IEJ1Y2tldCB7XG4gICAgY29uc3QgYnVja2V0ID0gbmV3IEJ1Y2tldCh0aGlzLCAnRGF0YUxvYWRlckJ1Y2tldCcsIHtcbiAgICAgIGVuY3J5cHRpb246IEJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBCbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICByZW1vdmFsUG9saWN5OiByZW1vdmFsUG9saWN5LFxuICAgICAgYXV0b0RlbGV0ZU9iamVjdHM6IHJlbW92YWxQb2xpY3kgPT09IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcblxuICAgIHJldHVybiBidWNrZXQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgTGFtYmRhIGZ1bmN0aW9uIGZvciBwcm9jZXNzaW5nIGRhdGEgbG9hZGluZ1xuICAgKiBAcGFyYW0gcHJvcHMgVGhlIERhdGFMb2FkZXIgcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCBMYW1iZGEgZnVuY3Rpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZVByb2Nlc3NvckZ1bmN0aW9uKHByb3BzOiBEYXRhTG9hZGVyUHJvcHMpOiBMYW1iZGFGdW5jdGlvbiB7XG4gICAgLy8gQ3JlYXRlIGEgZGVkaWNhdGVkIHNlY3VyaXR5IGdyb3VwIGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAgY29uc3QgbGFtYmRhU2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKHRoaXMsICdEYXRhTG9hZGVyUHJvY2Vzc29yU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgIHZwYzogcHJvcHMuZGF0YWJhc2VDb25maWcudnBjLFxuICAgICAgZGVzY3JpcHRpb246ICdTZWN1cml0eSBncm91cCBmb3IgRGF0YUxvYWRlciBwcm9jZXNzb3IgTGFtYmRhIGZ1bmN0aW9uJyxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsIC8vIExhbWJkYSBuZWVkcyBvdXRib3VuZCBhY2Nlc3MgZm9yIEFXUyBzZXJ2aWNlcyBhbmQgaW50ZXJuZXRcbiAgICB9KTtcblxuICAgIC8vIEFsbG93IExhbWJkYSB0byBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZVxuICAgIC8vIEFkZCBpbmdyZXNzIHJ1bGUgdG8gZGF0YWJhc2Ugc2VjdXJpdHkgZ3JvdXAgdG8gYWxsb3cgY29ubmVjdGlvbnMgZnJvbSBMYW1iZGFcbiAgICBwcm9wcy5kYXRhYmFzZUNvbmZpZy5zZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgbGFtYmRhU2VjdXJpdHlHcm91cCxcbiAgICAgIFBvcnQudGNwKHByb3BzLmRhdGFiYXNlQ29uZmlnLmVuZ2luZSA9PT0gRGF0YWJhc2VFbmdpbmUuTVlTUUwgPyAzMzA2IDogNTQzMiksXG4gICAgICBgQWxsb3cgRGF0YUxvYWRlciBMYW1iZGEgdG8gY29ubmVjdCB0byAke3Byb3BzLmRhdGFiYXNlQ29uZmlnLmVuZ2luZX0gZGF0YWJhc2VgLFxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgTGFtYmRhIGZ1bmN0aW9uIHdpdGggYXV0b21hdGljIGRlcGVuZGVuY3kgYnVuZGxpbmdcbiAgICBjb25zdCBsYW1iZGFGdW5jdGlvbiA9IG5ldyBQeXRob25GdW5jdGlvbih0aGlzLCAnRGF0YUxvYWRlclByb2Nlc3NvcicsIHtcbiAgICAgIGVudHJ5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZGF0YS1sb2FkZXItbGFtYmRhJyksXG4gICAgICBydW50aW1lOiBSdW50aW1lLlBZVEhPTl8zXzEzLFxuICAgICAgaGFuZGxlcjogJ2hhbmRsZXInLFxuICAgICAgaW5kZXg6ICdpbmRleC5weScsXG4gICAgICB0aW1lb3V0OiBwcm9wcy50aW1lb3V0IHx8IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5U2l6ZSB8fCAxMDI0LFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgdnBjOiBwcm9wcy5kYXRhYmFzZUNvbmZpZy52cGMsXG4gICAgICBzZWN1cml0eUdyb3VwczogW2xhbWJkYVNlY3VyaXR5R3JvdXBdLCAvLyBVc2UgdGhlIGRlZGljYXRlZCBMYW1iZGEgc2VjdXJpdHkgZ3JvdXBcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIERBVEFCQVNFX0VOR0lORTogcHJvcHMuZGF0YWJhc2VDb25maWcuZW5naW5lLFxuICAgICAgICBEQVRBQkFTRV9TRUNSRVRfQVJOOiBwcm9wcy5kYXRhYmFzZUNvbmZpZy5zZWNyZXQuc2VjcmV0QXJuLFxuICAgICAgICBEQVRBQkFTRV9OQU1FOiBwcm9wcy5kYXRhYmFzZUNvbmZpZy5kYXRhYmFzZU5hbWUsXG4gICAgICAgIFMzX0JVQ0tFVDogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIH0sXG4gICAgICBidW5kbGluZzoge1xuICAgICAgICAvLyBVc2UgY3VzdG9tIGJ1bmRsaW5nIGNvbW1hbmRzIHRvIGF2b2lkIFBvZXRyeSBjb25mbGljdHNcbiAgICAgICAgY29tbWFuZDogW1xuICAgICAgICAgICdiYXNoJywgJy1jJywgW1xuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgY2xlYW4gdmlydHVhbCBlbnZpcm9ubWVudFxuICAgICAgICAgICAgJ3B5dGhvbiAtbSB2ZW52IC90bXAvdmVudicsXG4gICAgICAgICAgICAvLyBBY3RpdmF0ZSB0aGUgdmlydHVhbCBlbnZpcm9ubWVudFxuICAgICAgICAgICAgJ3NvdXJjZSAvdG1wL3ZlbnYvYmluL2FjdGl2YXRlJyxcbiAgICAgICAgICAgIC8vIEluc3RhbGwgZGVwZW5kZW5jaWVzIGluIHRoZSB2aXJ0dWFsIGVudmlyb25tZW50XG4gICAgICAgICAgICAncGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcCcsXG4gICAgICAgICAgICAncGlwIGluc3RhbGwgLXIgcmVxdWlyZW1lbnRzLnR4dCAtdCAvYXNzZXQtb3V0cHV0JyxcbiAgICAgICAgICAgIC8vIENvcHkgc291cmNlIGZpbGVzXG4gICAgICAgICAgICAnY3AgLXIgLiAvYXNzZXQtb3V0cHV0JyxcbiAgICAgICAgICAgIC8vIENsZWFuIHVwIF9fcHljYWNoZV9fIGFuZCBvdGhlciB1bm5lY2Vzc2FyeSBmaWxlc1xuICAgICAgICAgICAgJ2ZpbmQgL2Fzc2V0LW91dHB1dCAtdHlwZSBkIC1uYW1lIF9fcHljYWNoZV9fIC1leGVjIHJtIC1yZiB7fSArIHx8IHRydWUnLFxuICAgICAgICAgICAgJ2ZpbmQgL2Fzc2V0LW91dHB1dCAtbmFtZSBcIioucHljXCIgLWRlbGV0ZSB8fCB0cnVlJyxcbiAgICAgICAgICBdLmpvaW4oJyAmJiAnKSxcbiAgICAgICAgXSxcbiAgICAgICAgLy8gVXNlIHRoZSBzdGFuZGFyZCBQeXRob24gaW1hZ2UgdG8gYXZvaWQgcHJlLWluc3RhbGxlZCBwYWNrYWdlc1xuICAgICAgICBpbWFnZTogRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KERlZmF1bHRSdW50aW1lcy5QWVRIT05fQlVORExJTkdfSU1BR0UpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEdyYW50IHBlcm1pc3Npb25zXG4gICAgdGhpcy5fZ3JhbnRQZXJtaXNzaW9ucyhsYW1iZGFGdW5jdGlvbiwgcHJvcHMpO1xuXG4gICAgcmV0dXJuIGxhbWJkYUZ1bmN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIFN0ZXAgRnVuY3Rpb25zIHN0YXRlIG1hY2hpbmVcbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgc3RhdGUgbWFjaGluZVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlU3RhdGVNYWNoaW5lKCk6IFN0YXRlTWFjaGluZSB7XG4gICAgLy8gQ3JlYXRlIGEgTWFwIHN0YXRlIHRvIGl0ZXJhdGUgb3ZlciBmaWxlIGtleXNcbiAgICBjb25zdCBwcm9jZXNzRmlsZVRhc2sgPSBuZXcgTGFtYmRhSW52b2tlKHRoaXMsICdQcm9jZXNzRmlsZVRhc2snLCB7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5wcm9jZXNzb3JGdW5jdGlvbixcbiAgICAgIHBheWxvYWQ6IFRhc2tJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgJ3MzS2V5LiQnOiAnJCcsXG4gICAgICAgICdidWNrZXROYW1lJzogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBzdGF0ZSBtYWNoaW5lIGRlZmluaXRpb25cbiAgICBjb25zdCBkZWZpbml0aW9uID0gbmV3IE1hcCh0aGlzLCAnUHJvY2Vzc0ZpbGVzTWFwJywge1xuICAgICAgaXRlbXNQYXRoOiAnJC5maWxlS2V5cycsXG4gICAgICBtYXhDb25jdXJyZW5jeTogMSwgLy8gUHJvY2VzcyBmaWxlcyBzZXF1ZW50aWFsbHkgdG8gbWFpbnRhaW4gb3JkZXJcbiAgICB9KS5pdGVtUHJvY2Vzc29yKHByb2Nlc3NGaWxlVGFzayk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIHN0YXRlIG1hY2hpbmVcbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgU3RhdGVNYWNoaW5lKHRoaXMsICdEYXRhTG9hZGVyU3RhdGVNYWNoaW5lJywge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IERlZmluaXRpb25Cb2R5LmZyb21DaGFpbmFibGUoZGVmaW5pdGlvbiksXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5ob3VycygyKSwgLy8gQWxsb3cgdXAgdG8gMiBob3VycyBmb3IgdGhlIGVudGlyZSBwcm9jZXNzXG4gICAgfSk7XG5cbiAgICAvLyBHcmFudCB0aGUgc3RhdGUgbWFjaGluZSBwZXJtaXNzaW9uIHRvIGludm9rZSB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAgdGhpcy5wcm9jZXNzb3JGdW5jdGlvbi5ncmFudEludm9rZShzdGF0ZU1hY2hpbmUpO1xuXG4gICAgcmV0dXJuIHN0YXRlTWFjaGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHRvIHRoZSBMYW1iZGEgZnVuY3Rpb25cbiAgICogQHBhcmFtIGxhbWJkYUZ1bmN0aW9uIFRoZSBMYW1iZGEgZnVuY3Rpb25cbiAgICogQHBhcmFtIHByb3BzIFRoZSBEYXRhTG9hZGVyIHByb3BlcnRpZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dyYW50UGVybWlzc2lvbnMobGFtYmRhRnVuY3Rpb246IExhbWJkYUZ1bmN0aW9uLCBwcm9wczogRGF0YUxvYWRlclByb3BzKTogdm9pZCB7XG4gICAgLy8gR3JhbnQgUzMgcGVybWlzc2lvbnNcbiAgICB0aGlzLmJ1Y2tldC5ncmFudFJlYWQobGFtYmRhRnVuY3Rpb24pO1xuXG4gICAgLy8gR3JhbnQgU2VjcmV0cyBNYW5hZ2VyIHBlcm1pc3Npb25zXG4gICAgcHJvcHMuZGF0YWJhc2VDb25maWcuc2VjcmV0LmdyYW50UmVhZChsYW1iZGFGdW5jdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBmaWxlIHByb2Nlc3NpbmcgYnkgdXBsb2FkaW5nIGZpbGVzIHRvIFMzXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgRGF0YUxvYWRlciBwcm9wZXJ0aWVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIF9zZXR1cEZpbGVQcm9jZXNzaW5nKHByb3BzOiBEYXRhTG9hZGVyUHJvcHMpOiB2b2lkIHtcbiAgICAvLyBTZXBhcmF0ZSBsb2NhbCBmaWxlcyBmcm9tIFMzIFVSSXNcbiAgICBjb25zdCBsb2NhbEZpbGVzID0gcHJvcHMuZmlsZUlucHV0cy5maWx0ZXIoZiA9PiAhZi5maWxlUGF0aC5zdGFydHNXaXRoKCdzMzovLycpKTtcblxuICAgIC8vIFVwbG9hZCBsb2NhbCBmaWxlcyB0byBTMyBpZiBhbnlcbiAgICBpZiAobG9jYWxGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBQcm9jZXNzIGVhY2ggZmlsZSBpbmRpdmlkdWFsbHkgdG8gaGFuZGxlIGJvdGggZmlsZXMgYW5kIGRpcmVjdG9yaWVzXG4gICAgICBsb2NhbEZpbGVzLmZvckVhY2goKGZpbGVJbnB1dCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlSW5wdXQuZmlsZVBhdGg7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgICAgIGNvbnN0IGZzID0gcmVxdWlyZSgnZnMnKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICAgICAgY29uc3QgcGF0aE1vZHVsZSA9IHJlcXVpcmUoJ3BhdGgnKTtcblxuICAgICAgICBsZXQgcmVzb2x2ZWRQYXRoOiBzdHJpbmc7XG4gICAgICAgIGlmIChwYXRoTW9kdWxlLmlzQWJzb2x1dGUoZmlsZVBhdGgpKSB7XG4gICAgICAgICAgcmVzb2x2ZWRQYXRoID0gZmlsZVBhdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gUmVzb2x2ZSByZWxhdGl2ZSBwYXRocyBmcm9tIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAgICAgICAgcmVzb2x2ZWRQYXRoID0gcGF0aE1vZHVsZS5yZXNvbHZlKGZpbGVQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSBwYXRoIGV4aXN0c1xuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocmVzb2x2ZWRQYXRoKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSBub3QgZm91bmQ6ICR7cmVzb2x2ZWRQYXRofWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZzLnN0YXRTeW5jKHJlc29sdmVkUGF0aCkuaXNGaWxlKCkpIHtcbiAgICAgICAgICAvLyBGb3IgaW5kaXZpZHVhbCBmaWxlcywgZGVwbG95IGZyb20gcGFyZW50IGRpcmVjdG9yeSB3aXRoIGluY2x1ZGUgZmlsdGVyXG4gICAgICAgICAgY29uc3QgcGFyZW50RGlyID0gcGF0aE1vZHVsZS5kaXJuYW1lKHJlc29sdmVkUGF0aCk7XG4gICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBwYXRoTW9kdWxlLmJhc2VuYW1lKHJlc29sdmVkUGF0aCk7XG5cbiAgICAgICAgICBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgRGF0YUxvYWRlckZpbGVEZXBsb3ltZW50JHtpbmRleH1gLCB7XG4gICAgICAgICAgICBzb3VyY2VzOiBbU291cmNlLmFzc2V0KHBhcmVudERpcildLFxuICAgICAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6ICdkYXRhLWZpbGVzLycsXG4gICAgICAgICAgICBpbmNsdWRlOiBbZmlsZU5hbWVdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEZvciBkaXJlY3RvcmllcywgZGVwbG95IGVudGlyZSBkaXJlY3RvcnlcbiAgICAgICAgICBuZXcgQnVja2V0RGVwbG95bWVudCh0aGlzLCBgRGF0YUxvYWRlckZpbGVEZXBsb3ltZW50JHtpbmRleH1gLCB7XG4gICAgICAgICAgICBzb3VyY2VzOiBbU291cmNlLmFzc2V0KHJlc29sdmVkUGF0aCldLFxuICAgICAgICAgICAgZGVzdGluYXRpb25CdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgICAgICAgZGVzdGluYXRpb25LZXlQcmVmaXg6ICdkYXRhLWZpbGVzLycsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIGZvciB0cmlnZ2VyaW5nIHN0YXRlIG1hY2hpbmUgZXhlY3V0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZXJcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUN1c3RvbVJlc291cmNlUHJvdmlkZXIoKTogUHJvdmlkZXIge1xuICAgIC8vIENyZWF0ZSBJQU0gcm9sZSBmb3IgdGhlIGN1c3RvbSByZXNvdXJjZSBMYW1iZGEgZnVuY3Rpb24gd2l0aCBhbGwgbmVjZXNzYXJ5IHBvbGljaWVzXG4gICAgY29uc3QgY3VzdG9tUmVzb3VyY2VSb2xlID0gbmV3IFJvbGUodGhpcywgJ1N0YXRlTWFjaGluZUV4ZWN1dGlvblRyaWdnZXJSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnSUFNIHJvbGUgZm9yIERhdGFMb2FkZXIgY3VzdG9tIHJlc291cmNlIExhbWJkYSBmdW5jdGlvbicsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoJ3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnKSxcbiAgICAgIF0sXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBTdGF0ZU1hY2hpbmVFeGVjdXRpb25Qb2xpY3k6IG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3N0YXRlczpTdGFydEV4ZWN1dGlvbicsXG4gICAgICAgICAgICAgICAgJ3N0YXRlczpEZXNjcmliZUV4ZWN1dGlvbicsXG4gICAgICAgICAgICAgICAgJ3N0YXRlczpTdG9wRXhlY3V0aW9uJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuLFxuICAgICAgICAgICAgICAgIGAke3RoaXMuc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybn06KmAsIC8vIEZvciBleGVjdXRpb24gQVJOc1xuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIExhbWJkYSBmdW5jdGlvbiBmb3IgY3VzdG9tIHJlc291cmNlIHdpdGggdGhlIHByZS1jb25maWd1cmVkIHJvbGVcbiAgICBjb25zdCBjdXN0b21SZXNvdXJjZUZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdTdGF0ZU1hY2hpbmVFeGVjdXRpb25UcmlnZ2VyJywge1xuICAgICAgcnVudGltZTogUnVudGltZS5QWVRIT05fM18xMSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIHJvbGU6IGN1c3RvbVJlc291cmNlUm9sZSwgLy8gQXR0YWNoIHRoZSByb2xlIGR1cmluZyBjcmVhdGlvblxuICAgICAgY29kZTogQ29kZS5mcm9tSW5saW5lKGBcbmltcG9ydCBqc29uXG5pbXBvcnQgYm90bzNcbmltcG9ydCBsb2dnaW5nXG5cbmxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKClcbmxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLklORk8pXG5cbnN0ZXBmdW5jdGlvbnMgPSBib3RvMy5jbGllbnQoJ3N0ZXBmdW5jdGlvbnMnKVxuXG5kZWYgaGFuZGxlcihldmVudCwgY29udGV4dCk6XG4gICAgbG9nZ2VyLmluZm8oZlwiUmVjZWl2ZWQgZXZlbnQ6IHtqc29uLmR1bXBzKGV2ZW50KX1cIilcbiAgICBcbiAgICByZXF1ZXN0X3R5cGUgPSBldmVudFsnUmVxdWVzdFR5cGUnXVxuICAgIFxuICAgIGlmIHJlcXVlc3RfdHlwZSA9PSAnQ3JlYXRlJyBvciByZXF1ZXN0X3R5cGUgPT0gJ1VwZGF0ZSc6XG4gICAgICAgIHRyeTpcbiAgICAgICAgICAgICMgR2V0IHBhcmFtZXRlcnMgZnJvbSBldmVudFxuICAgICAgICAgICAgc3RhdGVfbWFjaGluZV9hcm4gPSBldmVudFsnUmVzb3VyY2VQcm9wZXJ0aWVzJ11bJ1N0YXRlTWFjaGluZUFybiddXG4gICAgICAgICAgICBmaWxlX2tleXMgPSBldmVudFsnUmVzb3VyY2VQcm9wZXJ0aWVzJ11bJ0ZpbGVLZXlzJ11cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgIyBTdGFydCBleGVjdXRpb25cbiAgICAgICAgICAgIHJlc3BvbnNlID0gc3RlcGZ1bmN0aW9ucy5zdGFydF9leGVjdXRpb24oXG4gICAgICAgICAgICAgICAgc3RhdGVNYWNoaW5lQXJuPXN0YXRlX21hY2hpbmVfYXJuLFxuICAgICAgICAgICAgICAgIGlucHV0PWpzb24uZHVtcHMoe1xuICAgICAgICAgICAgICAgICAgICAnZmlsZUtleXMnOiBmaWxlX2tleXNcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBleGVjdXRpb25fYXJuID0gcmVzcG9uc2VbJ2V4ZWN1dGlvbkFybiddXG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhmXCJTdGFydGVkIGV4ZWN1dGlvbjoge2V4ZWN1dGlvbl9hcm59XCIpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJ1N0YXR1cyc6ICdTVUNDRVNTJyxcbiAgICAgICAgICAgICAgICAnUGh5c2ljYWxSZXNvdXJjZUlkJzogZXhlY3V0aW9uX2FybixcbiAgICAgICAgICAgICAgICAnRGF0YSc6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0V4ZWN1dGlvbkFybic6IGV4ZWN1dGlvbl9hcm5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOlxuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGZcIkVycm9yIHN0YXJ0aW5nIGV4ZWN1dGlvbjoge3N0cihlKX1cIilcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJ1N0YXR1cyc6ICdGQUlMRUQnLFxuICAgICAgICAgICAgICAgICdSZWFzb24nOiBzdHIoZSksXG4gICAgICAgICAgICAgICAgJ1BoeXNpY2FsUmVzb3VyY2VJZCc6ICdmYWlsZWQnXG4gICAgICAgICAgICB9XG4gICAgXG4gICAgZWxpZiByZXF1ZXN0X3R5cGUgPT0gJ0RlbGV0ZSc6XG4gICAgICAgICMgRm9yIGRlbGV0ZSwgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZyBzcGVjaWFsXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnU3RhdHVzJzogJ1NVQ0NFU1MnLFxuICAgICAgICAgICAgJ1BoeXNpY2FsUmVzb3VyY2VJZCc6IGV2ZW50LmdldCgnUGh5c2ljYWxSZXNvdXJjZUlkJywgJ25vbmUnKVxuICAgICAgICB9XG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgICAgJ1N0YXR1cyc6ICdTVUNDRVNTJyxcbiAgICAgICAgJ1BoeXNpY2FsUmVzb3VyY2VJZCc6ICdub25lJ1xuICAgIH1cbiAgICAgIGApLFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBwcm92aWRlciB3aXRoIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBhbHJlYWR5IGhhcyB0aGUgY29ycmVjdCByb2xlXG4gICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgUHJvdmlkZXIodGhpcywgJ1N0YXRlTWFjaGluZUV4ZWN1dGlvblByb3ZpZGVyJywge1xuICAgICAgb25FdmVudEhhbmRsZXI6IGN1c3RvbVJlc291cmNlRnVuY3Rpb24sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvdmlkZXI7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGN1c3RvbSByZXNvdXJjZSB0byB0cmlnZ2VyIHN0YXRlIG1hY2hpbmUgZXhlY3V0aW9uXG4gICAqIEByZXR1cm5zIFRoZSBjdXN0b20gcmVzb3VyY2VcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUV4ZWN1dGlvblRyaWdnZXIoKTogQ3VzdG9tUmVzb3VyY2Uge1xuICAgIC8vIEdldCBvcmRlcmVkIGZpbGUga2V5c1xuICAgIGNvbnN0IG9yZGVyZWRGaWxlS2V5cyA9IHRoaXMuX2dldE9yZGVyZWRGaWxlS2V5cygpO1xuXG4gICAgY29uc3QgY3VzdG9tUmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0V4ZWN1dGlvblRyaWdnZXJSZXNvdXJjZScsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogdGhpcy5jdXN0b21SZXNvdXJjZVByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgU3RhdGVNYWNoaW5lQXJuOiB0aGlzLnN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgICAgIEZpbGVLZXlzOiBvcmRlcmVkRmlsZUtleXMsXG4gICAgICAgIC8vIEFkZCBhIHRpbWVzdGFtcCB0byBmb3JjZSB1cGRhdGVzIHdoZW4gbmVlZGVkXG4gICAgICAgIFRpbWVzdGFtcDogRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEVuc3VyZSB0aGUgY3VzdG9tIHJlc291cmNlIHJ1bnMgYWZ0ZXIgYnVja2V0IGRlcGxveW1lbnQgKGlmIGV4aXN0cylcbiAgICBpZiAodGhpcy5idWNrZXREZXBsb3ltZW50KSB7XG4gICAgICBjdXN0b21SZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5zdGF0ZU1hY2hpbmUpO1xuICAgICAgY3VzdG9tUmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuYnVja2V0RGVwbG95bWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1c3RvbVJlc291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG9yZGVyZWQgZmlsZSBrZXlzIGZvciBleGVjdXRpb25cbiAgICogQHJldHVybnMgQXJyYXkgb2YgUzMga2V5cyBpbiBleGVjdXRpb24gb3JkZXJcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgX2dldE9yZGVyZWRGaWxlS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgLy8gU29ydCBmaWxlcyBieSBleGVjdXRpb24gb3JkZXJcbiAgICBjb25zdCBzb3J0ZWRGaWxlcyA9IFsuLi50aGlzLmZpbGVJbnB1dHNdLnNvcnQoXG4gICAgICAoYSwgYikgPT4gKGEuZXhlY3V0aW9uT3JkZXIgfHwgMCkgLSAoYi5leGVjdXRpb25PcmRlciB8fCAwKSxcbiAgICApO1xuXG4gICAgLy8gQ29udmVydCBmaWxlIHBhdGhzIHRvIFMzIGtleXNcbiAgICByZXR1cm4gc29ydGVkRmlsZXMubWFwKGZpbGUgPT4ge1xuICAgICAgaWYgKGZpbGUuZmlsZVBhdGguc3RhcnRzV2l0aCgnczM6Ly8nKSkge1xuICAgICAgICAvLyBFeHRyYWN0IGtleSBmcm9tIFMzIFVSSVxuICAgICAgICBjb25zdCBwYXJ0cyA9IGZpbGUuZmlsZVBhdGgucmVwbGFjZSgnczM6Ly8nLCAnJykuc3BsaXQoJy8nKTtcbiAgICAgICAgcmV0dXJuIHBhcnRzLnNsaWNlKDEpLmpvaW4oJy8nKTsgLy8gUmVtb3ZlIGJ1Y2tldCBuYW1lXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBMb2NhbCBmaWxlcyBhcmUgdXBsb2FkZWQgd2l0aCBkYXRhLWZpbGVzLyBwcmVmaXhcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBwYXRoLmJhc2VuYW1lKGZpbGUuZmlsZVBhdGgpO1xuICAgICAgICByZXR1cm4gYGRhdGEtZmlsZXMvJHtmaWxlTmFtZX1gO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -233,6 +233,6 @@ class LambdaIamUtils {
233
233
  }
234
234
  exports.LambdaIamUtils = LambdaIamUtils;
235
235
  _a = JSII_RTTI_SYMBOL_1;
236
- LambdaIamUtils[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LambdaIamUtils", version: "1.5.0" };
236
+ LambdaIamUtils[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LambdaIamUtils", version: "1.6.0" };
237
237
  LambdaIamUtils.OBSERVABILITY_SUFFIX = '-secured';
238
238
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWlhbS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3VzZS1jYXNlcy91dGlsaXRpZXMvbGFtYmRhLWlhbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFDdEMsbUNBQW1DO0FBQ25DLDZDQUFvQztBQUNwQywyQ0FBMkM7QUFpRTNDOztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBRXpCOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEtBQWlDO1FBQ25FLDBEQUEwRDtRQUMxRCxNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLGVBQWUsa0JBQWtCLEVBQUUsQ0FBQztRQUM3RSxZQUFZLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRixJQUFJLFdBQVcsR0FBRyxnQkFBZ0IsS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxjQUFjLFlBQVksRUFBRSxDQUFDO1FBQzVGLE1BQU0sZ0JBQWdCLEdBQUc7WUFDdkIsaUNBQWlDO1lBQ2pDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDeEIsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ2hDLFNBQVMsRUFBRTtvQkFDVCxXQUFXO2lCQUNaO2FBQ0YsQ0FBQztZQUNGLHNEQUFzRDtZQUN0RCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3RCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7Z0JB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TUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTztZQUNQLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLG1DQUFtQyxDQUMvQyxTQUFpQixFQUNqQixVQUFvQixDQUFDLCtCQUErQixDQUFDO1FBRXJELE9BQU8sSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQzdCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDeEIsT0FBTztZQUNQLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLHdCQUF3QixDQUNwQyxNQUFjLEVBQ2QsVUFBb0IsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUM7UUFFMUQsT0FBTyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDN0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixPQUFPO1lBQ1AsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBL1BILHdDQWdRQzs7O0FBL1B3QixtQ0FBb0IsR0FBRyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgTmFtZXMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBTdGFjayBpbmZvcm1hdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUlhbVV0aWxzU3RhY2tJbmZvIHtcbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIExhbWJkYSBDbG91ZFdhdGNoIExvZ3MgcGVybWlzc2lvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFMb2dzUGVybWlzc2lvbnNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgY29uc3RydWN0IHNjb3BlICh1c2VkIHRvIGdlbmVyYXRlIHVuaXF1ZSBuYW1lcylcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG5cbiAgLyoqXG4gICAqIFRoZSBiYXNlIG5hbWUgb2YgdGhlIExhbWJkYSBmdW5jdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBsb2cgZ3JvdXAgbmFtZSBwYXR0ZXJuXG4gICAqIEBkZWZhdWx0ICcvYXdzL2xhbWJkYS97dW5pcXVlRnVuY3Rpb25OYW1lfSdcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIHJlZ2lvbiBmb3IgdGhlIGxvZyBncm91cCBBUk5cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBV1MgYWNjb3VudCBJRCBmb3IgdGhlIGxvZyBncm91cCBBUk5cbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBvYnNlcnZhYmlsaXR5IGlzIGVuYWJsZWQgb3Igbm90LiBUaGlzIHdvdWxkIGhhdmUgYW4gaW1wYWN0XG4gICAqIG9uIHRoZSByZXN1bHQgSUFNIHBvbGljeSBmb3IgdGhlIExvZ0dyb3VwIGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVPYnNlcnZhYmlsaXR5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXN1bHQgb2YgY3JlYXRpbmcgTGFtYmRhIGxvZ3MgcGVybWlzc2lvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFMb2dzUGVybWlzc2lvbnNSZXN1bHQge1xuICAvKipcbiAgICogVGhlIHBvbGljeSBzdGF0ZW1lbnRzIGZvciBDbG91ZFdhdGNoIExvZ3NcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeVN0YXRlbWVudHM6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXTtcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBmdW5jdGlvbiBuYW1lIHRoYXQgd2FzIGdlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgdW5pcXVlRnVuY3Rpb25OYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVXRpbGl0eSBjbGFzcyBmb3IgY3JlYXRpbmcgc2VjdXJlIExhbWJkYSBJQU0gcG9saWN5IHN0YXRlbWVudHMgd2l0aCBtaW5pbWFsIHBlcm1pc3Npb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFJYW1VdGlscyB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT0JTRVJWQUJJTElUWV9TVUZGSVggPSAnLXNlY3VyZWQnO1xuICAvKipcbiAgICogQ3JlYXRlcyBDbG91ZFdhdGNoIExvZ3MgcG9saWN5IHN0YXRlbWVudHMgZm9yIExhbWJkYSBleGVjdXRpb25cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIENvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyBwb2xpY3kgc3RhdGVtZW50cyBhbmQgdGhlIHVuaXF1ZSBmdW5jdGlvbiBuYW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUxvZ3NQZXJtaXNzaW9ucyhwcm9wczogTGFtYmRhTG9nc1Blcm1pc3Npb25zUHJvcHMpOiBMYW1iZGFMb2dzUGVybWlzc2lvbnNSZXN1bHQge1xuICAgIC8vIEdlbmVyYXRlIHVuaXF1ZSBmdW5jdGlvbiBuYW1lIHVzaW5nIGNvbnN0cnVjdCBub2RlIHBhdGhcbiAgICBjb25zdCB1bmlxdWVGdW5jdGlvbk5hbWUgPSBMYW1iZGFJYW1VdGlscy5nZW5lcmF0ZVVuaXF1ZUZ1bmN0aW9uTmFtZShwcm9wcy5zY29wZSwgcHJvcHMuZnVuY3Rpb25OYW1lKTtcbiAgICBsZXQgbG9nR3JvdXBOYW1lID0gcHJvcHMubG9nR3JvdXBOYW1lIHx8IGAvYXdzL2xhbWJkYS8ke3VuaXF1ZUZ1bmN0aW9uTmFtZX1gO1xuICAgIGxvZ0dyb3VwTmFtZSArPSBwcm9wcy5lbmFibGVPYnNlcnZhYmlsaXR5ID8gTGFtYmRhSWFtVXRpbHMuT0JTRVJWQUJJTElUWV9TVUZGSVggOiAnJztcbiAgICBsZXQgbG9nR3JvdXBBcm4gPSBgYXJuOmF3czpsb2dzOiR7cHJvcHMucmVnaW9ufToke3Byb3BzLmFjY291bnR9OmxvZy1ncm91cDoke2xvZ0dyb3VwTmFtZX1gO1xuICAgIGNvbnN0IHBvbGljeVN0YXRlbWVudHMgPSBbXG4gICAgICAvLyBQZXJtaXNzaW9uIHRvIGNyZWF0ZSBsb2cgZ3JvdXBcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbJ2xvZ3M6Q3JlYXRlTG9nR3JvdXAnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgbG9nR3JvdXBBcm4sXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICAgIC8vIFBlcm1pc3Npb24gdG8gY3JlYXRlIGxvZyBzdHJlYW1zIGFuZCBwdXQgbG9nIGV2ZW50c1xuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnbG9nczpDcmVhdGVMb2dTdHJlYW0nLFxuICAgICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cycsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGAke2xvZ0dyb3VwQXJufToqYCxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIF07XG5cbiAgICByZXR1cm4ge1xuICAgICAgcG9saWN5U3RhdGVtZW50cyxcbiAgICAgIHVuaXF1ZUZ1bmN0aW9uTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZUxhbWJkYVZQQ1Blcm1pc3Npb25zKCk6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQge1xuICAgIHJldHVybiBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgICdlYzI6Q3JlYXRlTmV0d29ya0ludGVyZmFjZScsXG4gICAgICAgICdlYzI6RGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlcycsXG4gICAgICAgICdlYzI6RGVzY3JpYmVTdWJuZXRzJyxcbiAgICAgICAgJ2VjMjpEZWxldGVOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgJ2VjMjpBc3NpZ25Qcml2YXRlSXBBZGRyZXNzZXMnLFxuICAgICAgICAnZWMyOlVuYXNzaWduUHJpdmF0ZUlwQWRkcmVzc2VzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZVNlY3VyaXR5R3JvdXBzJyxcbiAgICAgICAgJ2VjMjpEZXNjcmliZVZwY3MnLFxuICAgICAgICAnZWMyOkdldFNlY3VyaXR5R3JvdXBzRm9yVnBjJyxcbiAgICAgIF0sXG4gICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBmdW5jdGlvbiBuYW1lIHVzaW5nIENESydzIGJ1aWx0LWluIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGJhc2VOYW1lIFRoZSBiYXNlIG5hbWUgZm9yIHRoZSBmdW5jdGlvblxuICAgKiBAcmV0dXJucyBVbmlxdWUgZnVuY3Rpb24gbmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZVVuaXF1ZUZ1bmN0aW9uTmFtZShzY29wZTogQ29uc3RydWN0LCBiYXNlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7YmFzZU5hbWV9LSR7TmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHNjb3BlLCB7IG1heExlbmd0aDogNjQgLSAoYmFzZU5hbWUubGVuZ3RoICsgMSkgfSkudG9Mb3dlckNhc2UoKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgVlBDIHBlcm1pc3Npb25zIGZvciBMYW1iZGEgZnVuY3Rpb25zIHJ1bm5pbmcgaW4gVlBDXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIElBTSBQb2xpY3lTdGF0ZW1lbnRzIGZvciBWUEMgYWNjZXNzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVZwY1Blcm1pc3Npb25zKCk6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgJ2VjMjpDcmVhdGVOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlTmV0d29ya0ludGVyZmFjZXMnLFxuICAgICAgICAgICdlYzI6RGVsZXRlTmV0d29ya0ludGVyZmFjZScsXG4gICAgICAgICAgJ2VjMjpBdHRhY2hOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgICAnZWMyOkRldGFjaE5ldHdvcmtJbnRlcmZhY2UnLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLCAvLyBWUEMgcGVybWlzc2lvbnMgcmVxdWlyZSB3aWxkY2FyZCByZXNvdXJjZXNcbiAgICAgIH0pLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBYLVJheSB0cmFjaW5nIHBlcm1pc3Npb25zIGZvciBMYW1iZGEgZnVuY3Rpb25zXG4gICAqXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIElBTSBQb2xpY3lTdGF0ZW1lbnRzIGZvciBYLVJheSB0cmFjaW5nXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVhSYXlQZXJtaXNzaW9ucygpOiBpYW0uUG9saWN5U3RhdGVtZW50W10ge1xuICAgIHJldHVybiBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICd4cmF5OlB1dFRyYWNlU2VnbWVudHMnLFxuICAgICAgICAgICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLCAvLyBYLVJheSBwZXJtaXNzaW9ucyByZXF1aXJlIHdpbGRjYXJkIHJlc291cmNlc1xuICAgICAgfSksXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGdldCByZWdpb24gYW5kIGFjY291bnQgZnJvbSBhIGNvbnN0cnVjdFxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcmV0dXJucyBMYW1iZGFJYW1VdGlsc1N0YWNrSW5mb1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRTdGFja0luZm8oc2NvcGU6IENvbnN0cnVjdCk6IExhbWJkYUlhbVV0aWxzU3RhY2tJbmZvIHtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZ2lvbjogc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogc3RhY2suYWNjb3VudCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwb2xpY3kgc3RhdGVtZW50IGZvciBEeW5hbW9EQiB0YWJsZSBhY2Nlc3NcbiAgICpcbiAgICogQHBhcmFtIHRhYmxlQXJuIFRoZSBBUk4gb2YgdGhlIER5bmFtb0RCIHRhYmxlXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBEeW5hbW9EQiBhY3Rpb25zIHRvIGFsbG93XG4gICAqIEByZXR1cm5zIFBvbGljeVN0YXRlbWVudCBmb3IgRHluYW1vREIgYWNjZXNzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUR5bmFtb0RiUG9saWN5U3RhdGVtZW50KFxuICAgIHRhYmxlQXJuOiBzdHJpbmcsXG4gICAgYWN0aW9uczogc3RyaW5nW10gPSBbJ2R5bmFtb2RiOkdldEl0ZW0nLCAnZHluYW1vZGI6UHV0SXRlbScsICdkeW5hbW9kYjpVcGRhdGVJdGVtJywgJ2R5bmFtb2RiOkRlbGV0ZUl0ZW0nLCAnZHluYW1vZGI6UXVlcnknLCAnZHluYW1vZGI6U2NhbiddLFxuICApOiBpYW0uUG9saWN5U3RhdGVtZW50IHtcbiAgICByZXR1cm4gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlczogW3RhYmxlQXJuLCBgJHt0YWJsZUFybn0vaW5kZXgvKmBdLCAvLyBJbmNsdWRlIEdTSSBhY2Nlc3NcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcG9saWN5IHN0YXRlbWVudCBmb3IgUzMgYnVja2V0IGFjY2Vzc1xuICAgKlxuICAgKiBAcGFyYW0gYnVja2V0QXJuIFRoZSBBUk4gb2YgdGhlIFMzIGJ1Y2tldFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgUzMgYWN0aW9ucyB0byBhbGxvd1xuICAgKiBAcGFyYW0gaW5jbHVkZU9iamVjdHMgV2hldGhlciB0byBpbmNsdWRlIG9iamVjdC1sZXZlbCBwZXJtaXNzaW9uc1xuICAgKiBAcmV0dXJucyBQb2xpY3lTdGF0ZW1lbnQgZm9yIFMzIGFjY2Vzc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVTM1BvbGljeVN0YXRlbWVudChcbiAgICBidWNrZXRBcm46IHN0cmluZyxcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsnczM6R2V0T2JqZWN0JywgJ3MzOlB1dE9iamVjdCddLFxuICAgIGluY2x1ZGVPYmplY3RzOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogaWFtLlBvbGljeVN0YXRlbWVudCB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gW2J1Y2tldEFybl07XG4gICAgaWYgKGluY2x1ZGVPYmplY3RzKSB7XG4gICAgICByZXNvdXJjZXMucHVzaChgJHtidWNrZXRBcm59LypgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcG9saWN5IHN0YXRlbWVudCBmb3IgU1FTIHF1ZXVlIGFjY2Vzc1xuICAgKlxuICAgKiBAcGFyYW0gcXVldWVBcm4gVGhlIEFSTiBvZiB0aGUgU1FTIHF1ZXVlXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBTUVMgYWN0aW9ucyB0byBhbGxvd1xuICAgKiBAcmV0dXJucyBQb2xpY3lTdGF0ZW1lbnQgZm9yIFNRUyBhY2Nlc3NcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlU3FzUG9saWN5U3RhdGVtZW50KFxuICAgIHF1ZXVlQXJuOiBzdHJpbmcsXG4gICAgYWN0aW9uczogc3RyaW5nW10gPSBbJ3NxczpSZWNlaXZlTWVzc2FnZScsICdzcXM6RGVsZXRlTWVzc2FnZScsICdzcXM6R2V0UXVldWVBdHRyaWJ1dGVzJ10sXG4gICk6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQge1xuICAgIHJldHVybiBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VzOiBbcXVldWVBcm5dLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwb2xpY3kgc3RhdGVtZW50IGZvciBTTlMgdG9waWMgYWNjZXNzXG4gICAqXG4gICAqIEBwYXJhbSB0b3BpY0FybiBUaGUgQVJOIG9mIHRoZSBTTlMgdG9waWNcbiAgICogQHBhcmFtIGFjdGlvbnMgVGhlIFNOUyBhY3Rpb25zIHRvIGFsbG93XG4gICAqIEByZXR1cm5zIFBvbGljeVN0YXRlbWVudCBmb3IgU05TIGFjY2Vzc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVTbnNQb2xpY3lTdGF0ZW1lbnQoXG4gICAgdG9waWNBcm46IHN0cmluZyxcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsnc25zOlB1Ymxpc2gnXSxcbiAgKTogaWFtLlBvbGljeVN0YXRlbWVudCB7XG4gICAgcmV0dXJuIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZXM6IFt0b3BpY0Fybl0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBvbGljeSBzdGF0ZW1lbnQgZm9yIFN0ZXAgRnVuY3Rpb25zIGV4ZWN1dGlvblxuICAgKlxuICAgKiBAcGFyYW0gc3RhdGVNYWNoaW5lQXJuIFRoZSBBUk4gb2YgdGhlIFN0ZXAgRnVuY3Rpb25zIHN0YXRlIG1hY2hpbmVcbiAgICogQHBhcmFtIGFjdGlvbnMgVGhlIFN0ZXAgRnVuY3Rpb25zIGFjdGlvbnMgdG8gYWxsb3dcbiAgICogQHJldHVybnMgUG9saWN5U3RhdGVtZW50IGZvciBTdGVwIEZ1bmN0aW9ucyBhY2Nlc3NcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlU3RlcEZ1bmN0aW9uc1BvbGljeVN0YXRlbWVudChcbiAgICBzdGF0ZU1hY2hpbmVBcm46IHN0cmluZyxcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsnc3RhdGVzOlN0YXJ0RXhlY3V0aW9uJ10sXG4gICk6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQge1xuICAgIHJldHVybiBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICBhY3Rpb25zLFxuICAgICAgcmVzb3VyY2VzOiBbc3RhdGVNYWNoaW5lQXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcG9saWN5IHN0YXRlbWVudCBmb3IgU2VjcmV0cyBNYW5hZ2VyIGFjY2Vzc1xuICAgKlxuICAgKiBAcGFyYW0gc2VjcmV0QXJuIFRoZSBBUk4gb2YgdGhlIHNlY3JldFxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgU2VjcmV0cyBNYW5hZ2VyIGFjdGlvbnMgdG8gYWxsb3dcbiAgICogQHJldHVybnMgUG9saWN5U3RhdGVtZW50IGZvciBTZWNyZXRzIE1hbmFnZXIgYWNjZXNzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVNlY3JldHNNYW5hZ2VyUG9saWN5U3RhdGVtZW50KFxuICAgIHNlY3JldEFybjogc3RyaW5nLFxuICAgIGFjdGlvbnM6IHN0cmluZ1tdID0gWydzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZSddLFxuICApOiBpYW0uUG9saWN5U3RhdGVtZW50IHtcbiAgICByZXR1cm4gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlczogW3NlY3JldEFybl0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBvbGljeSBzdGF0ZW1lbnQgZm9yIEtNUyBrZXkgYWNjZXNzXG4gICAqXG4gICAqIEBwYXJhbSBrZXlBcm4gVGhlIEFSTiBvZiB0aGUgS01TIGtleVxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgS01TIGFjdGlvbnMgdG8gYWxsb3dcbiAgICogQHJldHVybnMgUG9saWN5U3RhdGVtZW50IGZvciBLTVMgYWNjZXNzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNyZWF0ZUttc1BvbGljeVN0YXRlbWVudChcbiAgICBrZXlBcm46IHN0cmluZyxcbiAgICBhY3Rpb25zOiBzdHJpbmdbXSA9IFsna21zOkRlY3J5cHQnLCAna21zOkdlbmVyYXRlRGF0YUtleSddLFxuICApOiBpYW0uUG9saWN5U3RhdGVtZW50IHtcbiAgICByZXR1cm4gbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHJlc291cmNlczogW2tleUFybl0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -18,5 +18,5 @@ class CloudfrontDistributionObservabilityPropertyInjector {
18
18
  }
19
19
  exports.CloudfrontDistributionObservabilityPropertyInjector = CloudfrontDistributionObservabilityPropertyInjector;
20
20
  _a = JSII_RTTI_SYMBOL_1;
21
- CloudfrontDistributionObservabilityPropertyInjector[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.CloudfrontDistributionObservabilityPropertyInjector", version: "1.5.0" };
21
+ CloudfrontDistributionObservabilityPropertyInjector[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.CloudfrontDistributionObservabilityPropertyInjector", version: "1.6.0" };
22
22
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24tb2JzZXJ2YWJpbGl0eS1wcm9wZXJ0eS1pbmplY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3VzZS1jYXNlcy91dGlsaXRpZXMvb2JzZXJ2YWJpbGl0eS9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1vYnNlcnZhYmlsaXR5LXByb3BlcnR5LWluamVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsK0RBQTBEO0FBRTFELE1BQWEsbURBQW1EO0lBRzlEO1FBQ0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLDZCQUFZLENBQUMscUJBQXFCLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFrQixFQUFFLE9BQXlCO1FBQ2xELE9BQU87WUFDTCxhQUFhLEVBQUUsSUFBSTtZQUNuQixhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxnQkFBZ0I7WUFDNUMsR0FBRyxhQUFhO1NBQ2pCLENBQUM7SUFDSixDQUFDOztBQWJILGtIQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uQ29udGV4dCwgSVByb3BlcnR5SW5qZWN0b3IgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEaXN0cmlidXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udCc7XG5cbmV4cG9ydCBjbGFzcyBDbG91ZGZyb250RGlzdHJpYnV0aW9uT2JzZXJ2YWJpbGl0eVByb3BlcnR5SW5qZWN0b3IgaW1wbGVtZW50cyBJUHJvcGVydHlJbmplY3RvciB7XG4gIHJlYWRvbmx5IGNvbnN0cnVjdFVuaXF1ZUlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jb25zdHJ1Y3RVbmlxdWVJZCA9IERpc3RyaWJ1dGlvbi5QUk9QRVJUWV9JTkpFQ1RJT05fSUQ7XG4gIH1cblxuICBpbmplY3Qob3JpZ2luYWxQcm9wczogYW55LCBjb250ZXh0OiBJbmplY3Rpb25Db250ZXh0KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcbiAgICAgIGxvZ0ZpbGVQcmVmaXg6IGAke2NvbnRleHQuaWR9LWRpc3RyaWJ1dGlvbi1gLFxuICAgICAgLi4ub3JpZ2luYWxQcm9wcyxcbiAgICB9O1xuICB9XG5cbn0iXX0=
@@ -12,7 +12,7 @@ class DefaultObservabilityConfig {
12
12
  }
13
13
  exports.DefaultObservabilityConfig = DefaultObservabilityConfig;
14
14
  _a = JSII_RTTI_SYMBOL_1;
15
- DefaultObservabilityConfig[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.DefaultObservabilityConfig", version: "1.5.0" };
15
+ DefaultObservabilityConfig[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.DefaultObservabilityConfig", version: "1.6.0" };
16
16
  /**
17
17
  * Default namespace for powertools
18
18
  */
@@ -40,5 +40,5 @@ class LambdaObservabilityPropertyInjector {
40
40
  }
41
41
  exports.LambdaObservabilityPropertyInjector = LambdaObservabilityPropertyInjector;
42
42
  _a = JSII_RTTI_SYMBOL_1;
43
- LambdaObservabilityPropertyInjector[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LambdaObservabilityPropertyInjector", version: "1.5.0" };
43
+ LambdaObservabilityPropertyInjector[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LambdaObservabilityPropertyInjector", version: "1.6.0" };
44
44
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLW9ic2VydmFiaWxpdHktcHJvcGVydHktaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvdXRpbGl0aWVzL29ic2VydmFiaWxpdHkvbGFtYmRhLW9ic2VydmFiaWxpdHktcHJvcGVydHktaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBd0Y7QUFDeEYsaURBQXVEO0FBQ3ZELHVEQUEyRDtBQUMzRCxtREFBc0U7QUFFdEUsMERBQXFEO0FBRXJELE1BQWEsbUNBQW1DO0lBSTlDLFlBQVksc0JBQW1EO1FBQzdELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBUSxDQUFDLHFCQUFxQixDQUFDO1FBQ3hELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztJQUN2RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWtCLEVBQUUsUUFBMEI7UUFDbkQsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcsZUFBZSxhQUFhLENBQUMsWUFBWSxHQUFHLGlDQUFjLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUN2RyxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsTUFBTSxJQUFJLE9BQU8sY0FBYyxZQUFZLEVBQUUsQ0FBQztRQUNsRixJQUFJLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsSUFBSSwwQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRTtZQUNoSCxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFO29CQUNULG9DQUFvQyxFQUFFLFdBQVc7aUJBQ2xEO2FBQ0Y7U0FDRixDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxtQkFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUU7Z0JBQ2hFLFlBQVk7Z0JBQ1osYUFBYSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUI7Z0JBQ2hFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsSUFBSSwrQkFBb0IsQ0FBQztvQkFDckcsV0FBVyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx5QkFBeUI7aUJBQ25FLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDZCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO2FBQ3JDLENBQUM7WUFDRixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxNQUFNO1lBQ3ZCLEdBQUcsYUFBYTtTQUNqQixDQUFDO0lBQ0osQ0FBQzs7QUFqQ0gsa0ZBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uQ29udGV4dCwgSVByb3BlcnR5SW5qZWN0b3IsIFJlbW92YWxQb2xpY3ksIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgU2VydmljZVByaW5jaXBhbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgRnVuY3Rpb24sIFRyYWNpbmcgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IERhdGFQcm90ZWN0aW9uUG9saWN5LCBMb2dHcm91cCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB7IExvZ0dyb3VwRGF0YVByb3RlY3Rpb25Qcm9wcyB9IGZyb20gJy4vbG9nLWdyb3VwLWRhdGEtcHJvdGVjdGlvbi1wcm9wcyc7XG5pbXBvcnQgeyBMYW1iZGFJYW1VdGlscyB9IGZyb20gJy4uL2xhbWJkYS1pYW0tdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgTGFtYmRhT2JzZXJ2YWJpbGl0eVByb3BlcnR5SW5qZWN0b3IgaW1wbGVtZW50cyBJUHJvcGVydHlJbmplY3RvciB7XG4gIHJlYWRvbmx5IGNvbnN0cnVjdFVuaXF1ZUlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvZ0dyb3VwRGF0YVByb3RlY3Rpb246IExvZ0dyb3VwRGF0YVByb3RlY3Rpb25Qcm9wcztcblxuICBjb25zdHJ1Y3Rvcihsb2dHcm91cERhdGFQcm90ZWN0aW9uOiBMb2dHcm91cERhdGFQcm90ZWN0aW9uUHJvcHMpIHtcbiAgICB0aGlzLmNvbnN0cnVjdFVuaXF1ZUlkID0gRnVuY3Rpb24uUFJPUEVSVFlfSU5KRUNUSU9OX0lEO1xuICAgIHRoaXMubG9nR3JvdXBEYXRhUHJvdGVjdGlvbiA9IGxvZ0dyb3VwRGF0YVByb3RlY3Rpb247XG4gIH1cblxuICBpbmplY3Qob3JpZ2luYWxQcm9wczogYW55LCBfY29udGV4dDogSW5qZWN0aW9uQ29udGV4dCk6IGFueSB7XG4gICAgY29uc3QgeyByZWdpb24sIGFjY291bnQgfSA9IFN0YWNrLm9mKF9jb250ZXh0LnNjb3BlKTtcbiAgICBjb25zdCBsb2dHcm91cE5hbWUgPSBgL2F3cy9sYW1iZGEvJHtvcmlnaW5hbFByb3BzLmZ1bmN0aW9uTmFtZX0ke0xhbWJkYUlhbVV0aWxzLk9CU0VSVkFCSUxJVFlfU1VGRklYfWA7XG4gICAgY29uc3QgbG9nR3JvdXBBcm4gPSBgYXJuOmF3czpsb2dzOiR7cmVnaW9ufToke2FjY291bnR9OmxvZy1ncm91cDoke2xvZ0dyb3VwTmFtZX1gO1xuICAgIHRoaXMubG9nR3JvdXBEYXRhUHJvdGVjdGlvbi5sb2dHcm91cEVuY3J5cHRpb25LZXk/LmdyYW50RW5jcnlwdERlY3J5cHQobmV3IFNlcnZpY2VQcmluY2lwYWwoJ2xvZ3MuYW1hem9uYXdzLmNvbScsIHtcbiAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgQXJuRXF1YWxzOiB7XG4gICAgICAgICAgJ2ttczpFbmNyeXB0aW9uQ29udGV4dDphd3M6bG9nczphcm4nOiBsb2dHcm91cEFybixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ0dyb3VwOiBuZXcgTG9nR3JvdXAoX2NvbnRleHQuc2NvcGUsIGAke19jb250ZXh0LmlkfS1Mb2dHcm91cGAsIHtcbiAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICBlbmNyeXB0aW9uS2V5OiB0aGlzLmxvZ0dyb3VwRGF0YVByb3RlY3Rpb24ubG9nR3JvdXBFbmNyeXB0aW9uS2V5LFxuICAgICAgICBkYXRhUHJvdGVjdGlvblBvbGljeTogdGhpcy5sb2dHcm91cERhdGFQcm90ZWN0aW9uLmRhdGFQcm90ZWN0aW9uSWRlbnRpZmllcnMgPyBuZXcgRGF0YVByb3RlY3Rpb25Qb2xpY3koe1xuICAgICAgICAgIGlkZW50aWZpZXJzOiB0aGlzLmxvZ0dyb3VwRGF0YVByb3RlY3Rpb24uZGF0YVByb3RlY3Rpb25JZGVudGlmaWVycyxcbiAgICAgICAgfSkgOiB1bmRlZmluZWQsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pLFxuICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgICAuLi5vcmlnaW5hbFByb3BzLFxuICAgIH07XG4gIH1cblxufSJdfQ==
@@ -33,5 +33,5 @@ class LogGroupDataProtectionUtils {
33
33
  }
34
34
  exports.LogGroupDataProtectionUtils = LogGroupDataProtectionUtils;
35
35
  _a = JSII_RTTI_SYMBOL_1;
36
- LogGroupDataProtectionUtils[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LogGroupDataProtectionUtils", version: "1.5.0" };
36
+ LogGroupDataProtectionUtils[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.LogGroupDataProtectionUtils", version: "1.6.0" };
37
37
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWdyb3VwLWRhdGEtcHJvdGVjdGlvbi11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3VzZS1jYXNlcy91dGlsaXRpZXMvb2JzZXJ2YWJpbGl0eS9sb2ctZ3JvdXAtZGF0YS1wcm90ZWN0aW9uLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUV0Qyw2Q0FBNEM7QUFDNUMsaURBQTBDO0FBSTFDLE1BQWEsMkJBQTJCO0lBQy9CLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBZ0IsRUFBRSxLQUFtQyxFQUFFLGFBQTZCO1FBQzlHLElBQUksc0JBQW1ELENBQUM7UUFDeEQsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLElBQUk7WUFDMUMscUJBQXFCLEVBQUUsSUFBSSxhQUFHLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFO2dCQUM3RCxpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixhQUFhLEVBQUUsYUFBYSxJQUFJLDJCQUFhLENBQUMsT0FBTzthQUN0RCxDQUFDO1NBQ0gsQ0FBQztRQUVGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3RELHNCQUFzQixHQUFHO2dCQUN2Qix5QkFBeUIsRUFBRSwwQkFBMEIsQ0FBQyx5QkFBeUI7Z0JBQy9FLHFCQUFxQixFQUFFLElBQUksYUFBRyxDQUFDLEtBQUssRUFBRSx1QkFBdUIsRUFBRTtvQkFDN0QsaUJBQWlCLEVBQUUsSUFBSTtvQkFDdkIsYUFBYSxFQUFFLGFBQWEsSUFBSSwyQkFBYSxDQUFDLE9BQU87aUJBQ3RELENBQUM7YUFDSCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixzQkFBc0IsR0FBRywwQkFBMEIsQ0FBQztRQUN0RCxDQUFDO1FBRUQsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDOztBQXZCSCxrRUF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTG9nR3JvdXBEYXRhUHJvdGVjdGlvblByb3BzIH0gZnJvbSAnLi9sb2ctZ3JvdXAtZGF0YS1wcm90ZWN0aW9uLXByb3BzJztcblxuZXhwb3J0IGNsYXNzIExvZ0dyb3VwRGF0YVByb3RlY3Rpb25VdGlscyB7XG4gIHB1YmxpYyBzdGF0aWMgaGFuZGxlRGVmYXVsdChzY29wZTogQ29uc3RydWN0LCBwcm9wcz86IExvZ0dyb3VwRGF0YVByb3RlY3Rpb25Qcm9wcywgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3kpOiBMb2dHcm91cERhdGFQcm90ZWN0aW9uUHJvcHMge1xuICAgIGxldCBsb2dHcm91cERhdGFQcm90ZWN0aW9uOiBMb2dHcm91cERhdGFQcm90ZWN0aW9uUHJvcHM7XG4gICAgY29uc3QgdGVtcExvZ0dyb3VwRGF0YVByb3RlY3Rpb24gPSBwcm9wcyB8fCB7XG4gICAgICBsb2dHcm91cEVuY3J5cHRpb25LZXk6IG5ldyBLZXkoc2NvcGUsICdMb2dHcm91cEVuY3J5cHRpb25LZXknLCB7XG4gICAgICAgIGVuYWJsZUtleVJvdGF0aW9uOiB0cnVlLFxuICAgICAgICByZW1vdmFsUG9saWN5OiByZW1vdmFsUG9saWN5IHx8IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBpZiAoIXRlbXBMb2dHcm91cERhdGFQcm90ZWN0aW9uLmxvZ0dyb3VwRW5jcnlwdGlvbktleSkge1xuICAgICAgbG9nR3JvdXBEYXRhUHJvdGVjdGlvbiA9IHtcbiAgICAgICAgZGF0YVByb3RlY3Rpb25JZGVudGlmaWVyczogdGVtcExvZ0dyb3VwRGF0YVByb3RlY3Rpb24uZGF0YVByb3RlY3Rpb25JZGVudGlmaWVycyxcbiAgICAgICAgbG9nR3JvdXBFbmNyeXB0aW9uS2V5OiBuZXcgS2V5KHNjb3BlLCAnTG9nR3JvdXBFbmNyeXB0aW9uS2V5Jywge1xuICAgICAgICAgIGVuYWJsZUtleVJvdGF0aW9uOiB0cnVlLFxuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IHJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxvZ0dyb3VwRGF0YVByb3RlY3Rpb24gPSB0ZW1wTG9nR3JvdXBEYXRhUHJvdGVjdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gbG9nR3JvdXBEYXRhUHJvdGVjdGlvbjtcbiAgfVxufSJdfQ==
@@ -1,3 +1,12 @@
1
1
  export declare class PowertoolsConfig {
2
- static generateDefaultLambdaConfig(enableObservability?: boolean, metricsNamespace?: string, serviceName?: string): Record<string, string>;
2
+ /**
3
+ * Generate default Lambda configuration for Powertools.
4
+ *
5
+ * @param enableObservability - Whether observability is enabled
6
+ * @param metricsNamespace - CloudWatch metrics namespace
7
+ * @param serviceName - Service name for logging and metrics
8
+ * @param logLevel - Log level (INFO, ERROR, DEBUG, WARNING). Defaults to INFO.
9
+ * @returns Record of environment variables for Lambda configuration
10
+ */
11
+ static generateDefaultLambdaConfig(enableObservability?: boolean, metricsNamespace?: string, serviceName?: string, logLevel?: string): Record<string, string>;
3
12
  }
@@ -4,22 +4,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.PowertoolsConfig = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  class PowertoolsConfig {
7
- static generateDefaultLambdaConfig(enableObservability = false, metricsNamespace = 'appmod-catalog', serviceName = 'appmod-catalog-service') {
7
+ /**
8
+ * Generate default Lambda configuration for Powertools.
9
+ *
10
+ * @param enableObservability - Whether observability is enabled
11
+ * @param metricsNamespace - CloudWatch metrics namespace
12
+ * @param serviceName - Service name for logging and metrics
13
+ * @param logLevel - Log level (INFO, ERROR, DEBUG, WARNING). Defaults to INFO.
14
+ * @returns Record of environment variables for Lambda configuration
15
+ */
16
+ static generateDefaultLambdaConfig(enableObservability = false, metricsNamespace = 'appmod-catalog', serviceName = 'appmod-catalog-service', logLevel = 'INFO') {
17
+ // Validate log level
18
+ const validLogLevels = ['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'];
19
+ const normalizedLogLevel = validLogLevels.includes(logLevel.toUpperCase())
20
+ ? logLevel.toUpperCase()
21
+ : 'INFO';
8
22
  if (enableObservability) {
9
23
  return {
10
24
  POWERTOOLS_METRICS_NAMESPACE: metricsNamespace,
11
25
  POWERTOOLS_SERVICE_NAME: serviceName,
26
+ LOG_LEVEL: normalizedLogLevel,
12
27
  };
13
28
  }
14
29
  else {
15
30
  return {
16
31
  POWERTOOLS_METRICS_DISABLED: 'true',
17
32
  POWERTOOLS_TRACE_DISABLED: 'true',
33
+ LOG_LEVEL: normalizedLogLevel,
18
34
  };
19
35
  }
20
36
  }
21
37
  }
22
38
  exports.PowertoolsConfig = PowertoolsConfig;
23
39
  _a = JSII_RTTI_SYMBOL_1;
24
- PowertoolsConfig[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.PowertoolsConfig", version: "1.5.0" };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXJ0b29scy1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvdXRpbGl0aWVzL29ic2VydmFiaWxpdHkvcG93ZXJ0b29scy1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFhLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsMkJBQTJCLENBQUMsc0JBQStCLEtBQUssRUFBRSxtQkFBMkIsZ0JBQWdCLEVBQUUsY0FBc0Isd0JBQXdCO1FBQ3pLLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixPQUFPO2dCQUNMLDRCQUE0QixFQUFFLGdCQUFnQjtnQkFDOUMsdUJBQXVCLEVBQUUsV0FBVzthQUNyQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPO2dCQUNMLDJCQUEyQixFQUFFLE1BQU07Z0JBQ25DLHlCQUF5QixFQUFFLE1BQU07YUFDbEMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOztBQWJILDRDQWNDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFBvd2VydG9vbHNDb25maWcge1xuICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlRGVmYXVsdExhbWJkYUNvbmZpZyhlbmFibGVPYnNlcnZhYmlsaXR5OiBib29sZWFuID0gZmFsc2UsIG1ldHJpY3NOYW1lc3BhY2U6IHN0cmluZyA9ICdhcHBtb2QtY2F0YWxvZycsIHNlcnZpY2VOYW1lOiBzdHJpbmcgPSAnYXBwbW9kLWNhdGFsb2ctc2VydmljZScpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBpZiAoZW5hYmxlT2JzZXJ2YWJpbGl0eSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUE9XRVJUT09MU19NRVRSSUNTX05BTUVTUEFDRTogbWV0cmljc05hbWVzcGFjZSxcbiAgICAgICAgUE9XRVJUT09MU19TRVJWSUNFX05BTUU6IHNlcnZpY2VOYW1lLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUE9XRVJUT09MU19NRVRSSUNTX0RJU0FCTEVEOiAndHJ1ZScsXG4gICAgICAgIFBPV0VSVE9PTFNfVFJBQ0VfRElTQUJMRUQ6ICd0cnVlJyxcbiAgICAgIH07XG4gICAgfVxuICB9XG59Il19
40
+ PowertoolsConfig[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.PowertoolsConfig", version: "1.6.0" };
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG93ZXJ0b29scy1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvdXRpbGl0aWVzL29ic2VydmFiaWxpdHkvcG93ZXJ0b29scy1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFhLGdCQUFnQjtJQUMzQjs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQywyQkFBMkIsQ0FDdkMsc0JBQStCLEtBQUssRUFDcEMsbUJBQTJCLGdCQUFnQixFQUMzQyxjQUFzQix3QkFBd0IsRUFDOUMsV0FBbUIsTUFBTTtRQUV6QixxQkFBcUI7UUFDckIsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDekUsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4RSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDO1FBRVgsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1lBQ3hCLE9BQU87Z0JBQ0wsNEJBQTRCLEVBQUUsZ0JBQWdCO2dCQUM5Qyx1QkFBdUIsRUFBRSxXQUFXO2dCQUNwQyxTQUFTLEVBQUUsa0JBQWtCO2FBQzlCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU87Z0JBQ0wsMkJBQTJCLEVBQUUsTUFBTTtnQkFDbkMseUJBQXlCLEVBQUUsTUFBTTtnQkFDakMsU0FBUyxFQUFFLGtCQUFrQjthQUM5QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7O0FBbkNILDRDQW9DQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQb3dlcnRvb2xzQ29uZmlnIHtcbiAgLyoqXG4gICAqIEdlbmVyYXRlIGRlZmF1bHQgTGFtYmRhIGNvbmZpZ3VyYXRpb24gZm9yIFBvd2VydG9vbHMuXG4gICAqXG4gICAqIEBwYXJhbSBlbmFibGVPYnNlcnZhYmlsaXR5IC0gV2hldGhlciBvYnNlcnZhYmlsaXR5IGlzIGVuYWJsZWRcbiAgICogQHBhcmFtIG1ldHJpY3NOYW1lc3BhY2UgLSBDbG91ZFdhdGNoIG1ldHJpY3MgbmFtZXNwYWNlXG4gICAqIEBwYXJhbSBzZXJ2aWNlTmFtZSAtIFNlcnZpY2UgbmFtZSBmb3IgbG9nZ2luZyBhbmQgbWV0cmljc1xuICAgKiBAcGFyYW0gbG9nTGV2ZWwgLSBMb2cgbGV2ZWwgKElORk8sIEVSUk9SLCBERUJVRywgV0FSTklORykuIERlZmF1bHRzIHRvIElORk8uXG4gICAqIEByZXR1cm5zIFJlY29yZCBvZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIExhbWJkYSBjb25maWd1cmF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlRGVmYXVsdExhbWJkYUNvbmZpZyhcbiAgICBlbmFibGVPYnNlcnZhYmlsaXR5OiBib29sZWFuID0gZmFsc2UsXG4gICAgbWV0cmljc05hbWVzcGFjZTogc3RyaW5nID0gJ2FwcG1vZC1jYXRhbG9nJyxcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nID0gJ2FwcG1vZC1jYXRhbG9nLXNlcnZpY2UnLFxuICAgIGxvZ0xldmVsOiBzdHJpbmcgPSAnSU5GTycsXG4gICk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIC8vIFZhbGlkYXRlIGxvZyBsZXZlbFxuICAgIGNvbnN0IHZhbGlkTG9nTGV2ZWxzID0gWydERUJVRycsICdJTkZPJywgJ1dBUk5JTkcnLCAnRVJST1InLCAnQ1JJVElDQUwnXTtcbiAgICBjb25zdCBub3JtYWxpemVkTG9nTGV2ZWwgPSB2YWxpZExvZ0xldmVscy5pbmNsdWRlcyhsb2dMZXZlbC50b1VwcGVyQ2FzZSgpKVxuICAgICAgPyBsb2dMZXZlbC50b1VwcGVyQ2FzZSgpXG4gICAgICA6ICdJTkZPJztcblxuICAgIGlmIChlbmFibGVPYnNlcnZhYmlsaXR5KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBQT1dFUlRPT0xTX01FVFJJQ1NfTkFNRVNQQUNFOiBtZXRyaWNzTmFtZXNwYWNlLFxuICAgICAgICBQT1dFUlRPT0xTX1NFUlZJQ0VfTkFNRTogc2VydmljZU5hbWUsXG4gICAgICAgIExPR19MRVZFTDogbm9ybWFsaXplZExvZ0xldmVsLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUE9XRVJUT09MU19NRVRSSUNTX0RJU0FCTEVEOiAndHJ1ZScsXG4gICAgICAgIFBPV0VSVE9PTFNfVFJBQ0VfRElTQUJMRUQ6ICd0cnVlJyxcbiAgICAgICAgTE9HX0xFVkVMOiBub3JtYWxpemVkTG9nTGV2ZWwsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufSJdfQ==
@@ -45,5 +45,5 @@ class StateMachineObservabilityPropertyInjector {
45
45
  }
46
46
  exports.StateMachineObservabilityPropertyInjector = StateMachineObservabilityPropertyInjector;
47
47
  _a = JSII_RTTI_SYMBOL_1;
48
- StateMachineObservabilityPropertyInjector[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.StateMachineObservabilityPropertyInjector", version: "1.5.0" };
48
+ StateMachineObservabilityPropertyInjector[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.StateMachineObservabilityPropertyInjector", version: "1.6.0" };
49
49
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtbWFjaGluZS1vYnNlcnZhYmlsaXR5LXByb3BlcnR5LWluamVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdXNlLWNhc2VzL3V0aWxpdGllcy9vYnNlcnZhYmlsaXR5L3N0YXRlLW1hY2hpbmUtb2JzZXJ2YWJpbGl0eS1wcm9wZXJ0eS1pbmplY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUErRjtBQUMvRixpREFBdUQ7QUFDdkQsbURBQXNFO0FBQ3RFLHFFQUF1RTtBQUd2RSxNQUFhLHlDQUF5QztJQUlwRCxZQUFZLHNCQUFtRDtRQUM3RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0NBQVksQ0FBQyxxQkFBcUIsQ0FBQztRQUM1RCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsc0JBQXNCLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFrQixFQUFFLFFBQTBCO1FBQ25ELE1BQU0sVUFBVSxHQUFHLG1CQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUMxRCxTQUFTLEVBQUUsR0FBRztTQUNmLENBQUMsQ0FBQztRQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLHlCQUF5QixVQUFVLGVBQWUsQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsTUFBTSxJQUFJLE9BQU8sY0FBYyxZQUFZLEVBQUUsQ0FBQztRQUNsRixJQUFJLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLENBQUMsSUFBSSwwQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRTtZQUNoSCxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFO29CQUNULG9DQUFvQyxFQUFFLFdBQVc7aUJBQ2xEO2FBQ0Y7U0FDRixDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU87WUFDTCxjQUFjLEVBQUUsSUFBSTtZQUNwQixJQUFJLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLElBQUksbUJBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsUUFBUSxDQUFDLEVBQUUsV0FBVyxFQUFFO29CQUNuRSxZQUFZO29CQUNaLGFBQWEsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMscUJBQXFCO29CQUNoRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLElBQUksK0JBQW9CLENBQUM7d0JBQ3JHLFdBQVcsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMseUJBQXlCO3FCQUNuRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ2QsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztpQkFDckMsQ0FBQztnQkFDRixLQUFLLEVBQUUsNEJBQVEsQ0FBQyxHQUFHO2FBQ3BCO1lBQ0QsR0FBRyxhQUFhO1NBQ2pCLENBQUM7SUFDSixDQUFDOztBQXZDSCw4RkF5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Db250ZXh0LCBJUHJvcGVydHlJbmplY3RvciwgTmFtZXMsIFJlbW92YWxQb2xpY3ksIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgU2VydmljZVByaW5jaXBhbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgRGF0YVByb3RlY3Rpb25Qb2xpY3ksIExvZ0dyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgTG9nTGV2ZWwsIFN0YXRlTWFjaGluZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCB7IExvZ0dyb3VwRGF0YVByb3RlY3Rpb25Qcm9wcyB9IGZyb20gJy4vbG9nLWdyb3VwLWRhdGEtcHJvdGVjdGlvbi1wcm9wcyc7XG5cbmV4cG9ydCBjbGFzcyBTdGF0ZU1hY2hpbmVPYnNlcnZhYmlsaXR5UHJvcGVydHlJbmplY3RvciBpbXBsZW1lbnRzIElQcm9wZXJ0eUluamVjdG9yIHtcbiAgcmVhZG9ubHkgY29uc3RydWN0VW5pcXVlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbG9nR3JvdXBEYXRhUHJvdGVjdGlvbjogTG9nR3JvdXBEYXRhUHJvdGVjdGlvblByb3BzO1xuXG4gIGNvbnN0cnVjdG9yKGxvZ0dyb3VwRGF0YVByb3RlY3Rpb246IExvZ0dyb3VwRGF0YVByb3RlY3Rpb25Qcm9wcykge1xuICAgIHRoaXMuY29uc3RydWN0VW5pcXVlSWQgPSBTdGF0ZU1hY2hpbmUuUFJPUEVSVFlfSU5KRUNUSU9OX0lEO1xuICAgIHRoaXMubG9nR3JvdXBEYXRhUHJvdGVjdGlvbiA9IGxvZ0dyb3VwRGF0YVByb3RlY3Rpb247XG4gIH1cblxuICBpbmplY3Qob3JpZ2luYWxQcm9wczogYW55LCBfY29udGV4dDogSW5qZWN0aW9uQ29udGV4dCk6IGFueSB7XG4gICAgY29uc3QgbmFtZVByZWZpeCA9IE5hbWVzLnVuaXF1ZVJlc291cmNlTmFtZShfY29udGV4dC5zY29wZSwge1xuICAgICAgbWF4TGVuZ3RoOiAxMDAsXG4gICAgfSk7XG4gICAgY29uc3QgeyByZWdpb24sIGFjY291bnQgfSA9IFN0YWNrLm9mKF9jb250ZXh0LnNjb3BlKTtcbiAgICBjb25zdCBsb2dHcm91cE5hbWUgPSBgL2F3cy9zZm4tc3RhdGVtYWNoaW5lLyR7bmFtZVByZWZpeH0tc3RhdGVtYWNoaW5lYDtcbiAgICBjb25zdCBsb2dHcm91cEFybiA9IGBhcm46YXdzOmxvZ3M6JHtyZWdpb259OiR7YWNjb3VudH06bG9nLWdyb3VwOiR7bG9nR3JvdXBOYW1lfWA7XG4gICAgdGhpcy5sb2dHcm91cERhdGFQcm90ZWN0aW9uLmxvZ0dyb3VwRW5jcnlwdGlvbktleT8uZ3JhbnRFbmNyeXB0RGVjcnlwdChuZXcgU2VydmljZVByaW5jaXBhbCgnbG9ncy5hbWF6b25hd3MuY29tJywge1xuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBBcm5FcXVhbHM6IHtcbiAgICAgICAgICAna21zOkVuY3J5cHRpb25Db250ZXh0OmF3czpsb2dzOmFybic6IGxvZ0dyb3VwQXJuLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHJhY2luZ0VuYWJsZWQ6IHRydWUsXG4gICAgICBsb2dzOiB7XG4gICAgICAgIGRlc3RpbmF0aW9uOiBuZXcgTG9nR3JvdXAoX2NvbnRleHQuc2NvcGUsIGAke19jb250ZXh0LmlkfS1Mb2dHcm91cGAsIHtcbiAgICAgICAgICBsb2dHcm91cE5hbWUsXG4gICAgICAgICAgZW5jcnlwdGlvbktleTogdGhpcy5sb2dHcm91cERhdGFQcm90ZWN0aW9uLmxvZ0dyb3VwRW5jcnlwdGlvbktleSxcbiAgICAgICAgICBkYXRhUHJvdGVjdGlvblBvbGljeTogdGhpcy5sb2dHcm91cERhdGFQcm90ZWN0aW9uLmRhdGFQcm90ZWN0aW9uSWRlbnRpZmllcnMgPyBuZXcgRGF0YVByb3RlY3Rpb25Qb2xpY3koe1xuICAgICAgICAgICAgaWRlbnRpZmllcnM6IHRoaXMubG9nR3JvdXBEYXRhUHJvdGVjdGlvbi5kYXRhUHJvdGVjdGlvbklkZW50aWZpZXJzLFxuICAgICAgICAgIH0pIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgfSksXG4gICAgICAgIGxldmVsOiBMb2dMZXZlbC5BTEwsXG4gICAgICB9LFxuICAgICAgLi4ub3JpZ2luYWxQcm9wcyxcbiAgICB9O1xuICB9XG5cbn0iXX0=
@@ -0,0 +1,43 @@
1
+ import { App, AppProps } from 'aws-cdk-lib';
2
+ /**
3
+ * Default context for test Apps that skips bundling.
4
+ *
5
+ * Setting BUNDLING_STACKS to an empty array tells CDK to skip
6
+ * bundling (esbuild/Docker) for all stacks during synthesis.
7
+ * This significantly speeds up unit tests since bundling is
8
+ * typically already tested separately.
9
+ *
10
+ * @see https://dev.to/aws-heroes/aws-cdk-unit-testing-advanced-tips-aligning-feature-flags-and-skipping-bundling-1fbk
11
+ */
12
+ export declare const TEST_CONTEXT: {
13
+ /**
14
+ * Skip bundling for all stacks during tests.
15
+ * This prevents esbuild/Docker bundling which can be slow.
16
+ */
17
+ 'aws:cdk:bundling-stacks': never[];
18
+ };
19
+ /**
20
+ * Creates a CDK App configured for testing with bundling disabled.
21
+ *
22
+ * Use this instead of `new App()` in tests to skip Lambda bundling
23
+ * and significantly speed up test execution.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * import { createTestApp } from '../../test-utils';
28
+ *
29
+ * describe('MyConstruct', () => {
30
+ * let app: App;
31
+ * let stack: Stack;
32
+ *
33
+ * beforeEach(() => {
34
+ * app = createTestApp();
35
+ * stack = new Stack(app, 'TestStack');
36
+ * });
37
+ * });
38
+ * ```
39
+ *
40
+ * @param props - Additional App props to merge with test defaults
41
+ * @returns A CDK App configured for fast testing
42
+ */
43
+ export declare function createTestApp(props?: AppProps): App;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEST_CONTEXT = void 0;
4
+ exports.createTestApp = createTestApp;
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ /**
7
+ * Default context for test Apps that skips bundling.
8
+ *
9
+ * Setting BUNDLING_STACKS to an empty array tells CDK to skip
10
+ * bundling (esbuild/Docker) for all stacks during synthesis.
11
+ * This significantly speeds up unit tests since bundling is
12
+ * typically already tested separately.
13
+ *
14
+ * @see https://dev.to/aws-heroes/aws-cdk-unit-testing-advanced-tips-aligning-feature-flags-and-skipping-bundling-1fbk
15
+ */
16
+ exports.TEST_CONTEXT = {
17
+ /**
18
+ * Skip bundling for all stacks during tests.
19
+ * This prevents esbuild/Docker bundling which can be slow.
20
+ */
21
+ 'aws:cdk:bundling-stacks': [],
22
+ };
23
+ /**
24
+ * Creates a CDK App configured for testing with bundling disabled.
25
+ *
26
+ * Use this instead of `new App()` in tests to skip Lambda bundling
27
+ * and significantly speed up test execution.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * import { createTestApp } from '../../test-utils';
32
+ *
33
+ * describe('MyConstruct', () => {
34
+ * let app: App;
35
+ * let stack: Stack;
36
+ *
37
+ * beforeEach(() => {
38
+ * app = createTestApp();
39
+ * stack = new Stack(app, 'TestStack');
40
+ * });
41
+ * });
42
+ * ```
43
+ *
44
+ * @param props - Additional App props to merge with test defaults
45
+ * @returns A CDK App configured for fast testing
46
+ */
47
+ function createTestApp(props) {
48
+ return new aws_cdk_lib_1.App({
49
+ ...props,
50
+ context: {
51
+ ...exports.TEST_CONTEXT,
52
+ ...props?.context,
53
+ },
54
+ });
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3VzZS1jYXNlcy91dGlsaXRpZXMvdGVzdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE0Q0Esc0NBUUM7QUFwREQsNkNBQTRDO0FBRTVDOzs7Ozs7Ozs7R0FTRztBQUNVLFFBQUEsWUFBWSxHQUFHO0lBQzFCOzs7T0FHRztJQUNILHlCQUF5QixFQUFFLEVBQUU7Q0FDOUIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxLQUFnQjtJQUM1QyxPQUFPLElBQUksaUJBQUcsQ0FBQztRQUNiLEdBQUcsS0FBSztRQUNSLE9BQU8sRUFBRTtZQUNQLEdBQUcsb0JBQVk7WUFDZixHQUFHLEtBQUssRUFBRSxPQUFPO1NBQ2xCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcCwgQXBwUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogRGVmYXVsdCBjb250ZXh0IGZvciB0ZXN0IEFwcHMgdGhhdCBza2lwcyBidW5kbGluZy5cbiAqXG4gKiBTZXR0aW5nIEJVTkRMSU5HX1NUQUNLUyB0byBhbiBlbXB0eSBhcnJheSB0ZWxscyBDREsgdG8gc2tpcFxuICogYnVuZGxpbmcgKGVzYnVpbGQvRG9ja2VyKSBmb3IgYWxsIHN0YWNrcyBkdXJpbmcgc3ludGhlc2lzLlxuICogVGhpcyBzaWduaWZpY2FudGx5IHNwZWVkcyB1cCB1bml0IHRlc3RzIHNpbmNlIGJ1bmRsaW5nIGlzXG4gKiB0eXBpY2FsbHkgYWxyZWFkeSB0ZXN0ZWQgc2VwYXJhdGVseS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGV2LnRvL2F3cy1oZXJvZXMvYXdzLWNkay11bml0LXRlc3RpbmctYWR2YW5jZWQtdGlwcy1hbGlnbmluZy1mZWF0dXJlLWZsYWdzLWFuZC1za2lwcGluZy1idW5kbGluZy0xZmJrXG4gKi9cbmV4cG9ydCBjb25zdCBURVNUX0NPTlRFWFQgPSB7XG4gIC8qKlxuICAgKiBTa2lwIGJ1bmRsaW5nIGZvciBhbGwgc3RhY2tzIGR1cmluZyB0ZXN0cy5cbiAgICogVGhpcyBwcmV2ZW50cyBlc2J1aWxkL0RvY2tlciBidW5kbGluZyB3aGljaCBjYW4gYmUgc2xvdy5cbiAgICovXG4gICdhd3M6Y2RrOmJ1bmRsaW5nLXN0YWNrcyc6IFtdLFxufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgQ0RLIEFwcCBjb25maWd1cmVkIGZvciB0ZXN0aW5nIHdpdGggYnVuZGxpbmcgZGlzYWJsZWQuXG4gKlxuICogVXNlIHRoaXMgaW5zdGVhZCBvZiBgbmV3IEFwcCgpYCBpbiB0ZXN0cyB0byBza2lwIExhbWJkYSBidW5kbGluZ1xuICogYW5kIHNpZ25pZmljYW50bHkgc3BlZWQgdXAgdGVzdCBleGVjdXRpb24uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IGNyZWF0ZVRlc3RBcHAgfSBmcm9tICcuLi8uLi90ZXN0LXV0aWxzJztcbiAqXG4gKiBkZXNjcmliZSgnTXlDb25zdHJ1Y3QnLCAoKSA9PiB7XG4gKiAgIGxldCBhcHA6IEFwcDtcbiAqICAgbGV0IHN0YWNrOiBTdGFjaztcbiAqXG4gKiAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICogICAgIGFwcCA9IGNyZWF0ZVRlc3RBcHAoKTtcbiAqICAgICBzdGFjayA9IG5ldyBTdGFjayhhcHAsICdUZXN0U3RhY2snKTtcbiAqICAgfSk7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBwcm9wcyAtIEFkZGl0aW9uYWwgQXBwIHByb3BzIHRvIG1lcmdlIHdpdGggdGVzdCBkZWZhdWx0c1xuICogQHJldHVybnMgQSBDREsgQXBwIGNvbmZpZ3VyZWQgZm9yIGZhc3QgdGVzdGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGVzdEFwcChwcm9wcz86IEFwcFByb3BzKTogQXBwIHtcbiAgcmV0dXJuIG5ldyBBcHAoe1xuICAgIC4uLnByb3BzLFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIC4uLlRFU1RfQ09OVEVYVCxcbiAgICAgIC4uLnByb3BzPy5jb250ZXh0LFxuICAgIH0sXG4gIH0pO1xufVxuIl19
@@ -8,8 +8,9 @@ const aws_rds_1 = require("aws-cdk-lib/aws-rds");
8
8
  const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
9
9
  const cdk_nag_1 = require("cdk-nag");
10
10
  const data_loader_1 = require("../data-loader");
11
+ const test_utils_1 = require("../test-utils");
11
12
  // Create app and stack
12
- const app = new aws_cdk_lib_1.App();
13
+ const app = (0, test_utils_1.createTestApp)();
13
14
  const stack = new aws_cdk_lib_1.Stack(app, 'TestStack', {
14
15
  env: {
15
16
  account: '123456789012',
@@ -429,4 +430,4 @@ test('No unsuppressed errors', () => {
429
430
  }
430
431
  expect(errors).toHaveLength(0);
431
432
  });
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb2FkZXItbmFnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvdXRpbGl0aWVzL3Rlc3RzL2RhdGEtbG9hZGVyLW5hZy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQWlFO0FBQ2pFLHVEQUFzRTtBQUN0RSxpREFBc0o7QUFDdEosaURBQTBDO0FBQzFDLGlEQUEySDtBQUMzSCx1RUFBd0Q7QUFDeEQscUNBQThEO0FBQzlELGdEQUFzRTtBQUV0RSx1QkFBdUI7QUFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUU7SUFDeEMsR0FBRyxFQUFFO1FBQ0gsT0FBTyxFQUFFLGNBQWM7UUFDdkIsTUFBTSxFQUFFLFdBQVc7S0FDcEI7Q0FDRixDQUFDLENBQUM7QUFFSCx3Q0FBd0M7QUFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFHLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRTtJQUNwRCxpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLFdBQVcsRUFBRSwyQ0FBMkM7Q0FDekQsQ0FBQyxDQUFDO0FBRUgscURBQXFEO0FBQ3JELE1BQU0sR0FBRyxHQUFHLElBQUksYUFBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7SUFDcEMsTUFBTSxFQUFFLENBQUM7Q0FDVixDQUFDLENBQUM7QUFFSCw2Q0FBNkM7QUFDN0MsSUFBSSxpQkFBTyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7SUFDL0IsWUFBWSxFQUFFLDZCQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDOUMsV0FBVyxFQUFFLDRCQUFrQixDQUFDLEdBQUc7Q0FDcEMsQ0FBQyxDQUFDO0FBRUgsNENBQTRDO0FBQzVDLE1BQU0sZUFBZSxHQUFHLElBQUksdUJBQWEsQ0FBQyxLQUFLLEVBQUUsdUJB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J2F3cy1jZGstbGliJztcbmltcG9ydCB7IFRlbXBsYXRlLCBBbm5vdGF0aW9ucywgTWF0Y2ggfSBmcm9tICdhd3MtY2RrLWxpYi9hc3NlcnRpb25zJztcbmltcG9ydCB7IFZwYywgRmxvd0xvZywgRmxvd0xvZ1Jlc291cmNlVHlwZSwgRmxvd0xvZ1RyYWZmaWNUeXBlLCBTZWN1cml0eUdyb3VwLCBJbnN0YW5jZVR5cGUsIEluc3RhbmNlQ2xhc3MsIEluc3RhbmNlU2l6ZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBEYXRhYmFzZUNsdXN0ZXIsIERhdGFiYXNlQ2x1c3RlckVuZ2luZSwgQXVyb3JhUG9zdGdyZXNFbmdpbmVWZXJzaW9uLCBDbHVzdGVySW5zdGFuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcmRzJztcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgeyBBd3NTb2x1dGlvbnNDaGVja3MsIE5hZ1N1cHByZXNzaW9ucyB9IGZyb20gJ2Nkay1uYWcnO1xuaW1wb3J0IHsgRGF0YUxvYWRlciwgRGF0YWJhc2VFbmdpbmUsIEZpbGVUeXBlIH0gZnJvbSAnLi4vZGF0YS1sb2FkZXInO1xuXG4vLyBDcmVhdGUgYXBwIGFuZCBzdGFja1xuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCAnVGVzdFN0YWNrJywge1xuICBlbnY6IHtcbiAgICBhY2NvdW50OiAnMTIzNDU2Nzg5MDEyJyxcbiAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICB9LFxufSk7XG5cbi8vIENyZWF0ZSBLTVMga2V5IGZvciBlbmNyeXB0aW9uIGF0IHJlc3RcbmNvbnN0IGVuY3J5cHRpb25LZXkgPSBuZXcgS2V5KHN0YWNrLCAnRW5jcnlwdGlvbktleScsIHtcbiAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gIGRlc2NyaXB0aW9uOiAnS01TIGtleSBmb3IgRGF0YUxvYWRlciBlbmNyeXB0aW9uIGF0IHJlc3QnLFxufSk7XG5cbi8vIENyZWF0ZSBWUEMgd2l0aCBGbG93IExvZ3MgdG8gZml4IEF3c1NvbHV0aW9ucy1WUEM3XG5jb25zdCB2cGMgPSBuZXcgVnBjKHN0YWNrLCAnVGVzdFZwYycsIHtcbiAgbWF4QXpzOiAyLFxufSk7XG5cbi8vIEFkZCBWUEMgRmxvdyBMb2dzIHRvIGZpeCBBd3NTb2x1dGlvbnMtVlBDN1xubmV3IEZsb3dMb2coc3RhY2ssICdWcGNGbG93TG9nJywge1xuICByZXNvdXJjZVR5cGU6IEZsb3dMb2dSZXNvdXJjZVR5cGUuZnJvbVZwYyh2cGMpLFxuICB0cmFmZmljVHlwZTogRmxvd0xvZ1RyYWZmaWNUeXBlLkFMTCxcbn0pO1xuXG4vLyBDcmVhdGUgc2VjdXJpdHkgZ3JvdXAgZm9yIGRhdGFiYXNlIGFjY2Vzc1xuY29uc3QgZGJTZWN1cml0eUdyb3VwID0gbmV3IFNlY3VyaXR5R3JvdXAoc3RhY2ssICdEYXRhYmFzZVNlY3VyaXR5R3JvdXAnLCB7XG4gIHZwYzogdnBjLFxuICBkZXNjcmlwdGlvbjogJ1NlY3VyaXR5IGdyb3VwIGZvciBEYXRhTG9hZGVyIGRhdGFiYXNlIGFjY2VzcycsXG4gIGFsbG93QWxsT3V0Ym91bmQ6IGZhbHNlLFxufSk7XG5cbi8vIENyZWF0ZSBkYXRhYmFzZSBjcmVkZW50aWFscyBzZWNyZXRcbmNvbnN0IGRiU2VjcmV0ID0gbmV3IFNlY3JldChzdGFjaywgJ0RhdGFiYXNlU2VjcmV0Jywge1xuICBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIGNyZWRlbnRpYWxzIGZvciBEYXRhTG9hZGVyJyxcbiAgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHtcbiAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoeyB1c2VybmFtZTogJ3Bvc3RncmVzJyB9KSxcbiAgICBnZW5lcmF0ZVN0cmluZ0tleTogJ3Bhc3N3b3JkJyxcbiAgICBleGNsdWRlQ2hhcmFjdGVyczogJ1wiQC9cXFxcJyxcbiAgfSxcbiAgZW5jcnlwdGlvbktleTogZW5jcnlwdGlvbktleSxcbn0pO1xuXG4vLyBDcmVhdGUgQXVyb3JhIFBvc3RncmVTUUwgY2x1c3RlciBmb3IgdGVzdGluZ1xuY29uc3QgZGJDbHVzdGVyID0gbmV3IERhdGFiYXNlQ2x1c3RlcihzdGFjaywgJ1Rlc3REYXRhYmFzZUNsdXN0ZXInLCB7XG4gIGVuZ2luZTogRGF0YWJhc2VDbHVzdGVyRW5naW5lLmF1cm9yYVBvc3RncmVzKHtcbiAgICB2ZXJzaW9uOiBBdXJvcmFQb3N0Z3Jlc0VuZ2luZVZlcnNpb24uVkVSXzE1XzQsXG4gIH0pLFxuICB2cGM6IHZwYyxcbiAgY3JlZGVudGlhbHM6IHtcbiAgICB1c2VybmFtZTogJ3Bvc3RncmVzJyxcbiAgICBwYXNzd29yZDogZGJTZWNyZXQuc2VjcmV0VmFsdWVGcm9tSnNvbigncGFzc3dvcmQnKSxcbiAgfSxcbiAgZGVmYXVsdERhdGFiYXNlTmFtZTogJ3Rlc3RkYicsXG4gIHNlY3VyaXR5R3JvdXBzOiBbZGJTZWN1cml0eUdyb3VwXSxcbiAgc3RvcmFnZUVuY3J5cHRpb25LZXk6IGVuY3J5cHRpb25LZXksXG4gIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSwgLy8gRm9yIHRlc3QgZW52aXJvbm1lbnRcbiAgd3JpdGVyOiBDbHVzdGVySW5zdGFuY2UucHJvdmlzaW9uZWQoJ3dyaXRlcicsIHtcbiAgICBpbnN0YW5jZVR5cGU6IEluc3RhbmNlVHlwZS5vZihJbnN0YW5jZUNsYXNzLlQzLCBJbnN0YW5jZVNpemUuTUVESVVNKSxcbiAgfSksXG59KTtcblxuLy8gQ3JlYXRlIERhdGFMb2FkZXIgY29uc3RydWN0XG5jb25zdCBkYXRhTG9hZGVyID0gbmV3IERhdGFMb2FkZXIoc3RhY2ssICdEYXRhTG9hZGVyJywge1xuICBkYXRhYmFzZUNvbmZpZzoge1xuICAgIGVuZ2luZTogRGF0YWJhc2VFbmdpbmUuUE9TVEdSRVNRTCxcbiAgICBjbHVzdGVyOiBkYkNsdXN0ZXIsXG4gICAgc2VjcmV0OiBkYlNlY3JldCxcbiAgICBkYXRhYmFzZU5hbWU6ICd0ZXN0ZGInLFxuICAgIHZwYzogdnBjLFxuICAgIHNlY3VyaXR5R3JvdXA6IGRiU2VjdXJpdHlHcm91cCxcbiAgfSxcbiAgZmlsZUlucHV0czogW1xuICAgIHtcbiAgICAgIGZpbGVQYXRoOiAnczM6Ly90ZXN0LWJ1Y2tldC9zY2hlbWEuc3FsJyxcbiAgICAgIGZpbGVUeXBlOiBGaWxlVHlwZS5TUUwsXG4gICAgICBleGVjdXRpb25PcmRlcjogMSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGZpbGVQYXRoOiAnczM6Ly90ZXN0LWJ1Y2tldC9kYXRhLnNxbCcsXG4gICAgICBmaWxlVHlwZTogRmlsZVR5cGUuU1FMLFxuICAgICAgZXhlY3V0aW9uT3JkZXI6IDIsXG4gICAgfSxcbiAgXSxcbiAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLCAvLyBGb3IgdGVzdCBlbnZpcm9ubWVudFxufSk7XG5cbi8vIEFkZCBDREsgTmFnIHN1cHByZXNzaW9ucyBmb3IgYWNjZXB0YWJsZSB2aW9sYXRpb25zXG5cbi8vIFN1cHByZXNzIFZQQy1yZWxhdGVkIHdhcm5pbmdzIGZvciB0ZXN0IGVudmlyb25tZW50XG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL1Rlc3RWcGMnLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1WUEM3JyxcbiAgICByZWFzb246ICdWUEMgRmxvdyBMb2dzIGFyZSBhZGRlZCBzZXBhcmF0ZWx5IGluIHRoZSB0ZXN0IHNldHVwJyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBSRFMtcmVsYXRlZCB3YXJuaW5ncyBmb3IgdGVzdCBlbnZpcm9ubWVudFxuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zQnlQYXRoKHN0YWNrLCAnL1Rlc3RTdGFjay9UZXN0RGF0YWJhc2VDbHVzdGVyJywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUkRTMicsXG4gICAgcmVhc29uOiAnRGF0YWJhc2UgZW5jcnlwdGlvbiBpcyBlbmFibGVkIHdpdGggY3VzdG9tZXItbWFuYWdlZCBLTVMga2V5JyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVJEUzMnLFxuICAgIHJlYXNvbjogJ011bHRpLUFaIGRpc2FibGVkIGZvciB0ZXN0IGVudmlyb25tZW50IGNvc3Qgb3B0aW1pemF0aW9uJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVJEUzYnLFxuICAgIHJlYXNvbjogJ0lBTSBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiBub3QgcmVxdWlyZWQgZm9yIHRoaXMgdXNlIGNhc2UnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUkRTMTAnLFxuICAgIHJlYXNvbjogJ0RlbGV0aW9uIHByb3RlY3Rpb24gZGlzYWJsZWQgZm9yIHRlc3QgZW52aXJvbm1lbnQgdG8gYWxsb3cgY2xlYW51cCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1SRFMxMScsXG4gICAgcmVhc29uOiAnRGVmYXVsdCBwb3J0IGFjY2VwdGFibGUgd2l0aGluIFZQQyBzZWN1cml0eSBib3VuZGFyaWVzJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVJEUzE0JyxcbiAgICByZWFzb246ICdCYWNrdHJhY2sgbm90IGF2YWlsYWJsZSBmb3IgUG9zdGdyZVNRTCBlbmdpbmUnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUkRTMTYnLFxuICAgIHJlYXNvbjogJ1BlcmZvcm1hbmNlIEluc2lnaHRzIGRpc2FibGVkIGZvciBjb3N0IG9wdGltaXphdGlvbiBpbiB0ZXN0IGVudmlyb25tZW50JyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBTZWNyZXRzIE1hbmFnZXIgd2FybmluZ3Ncbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YWJhc2VTZWNyZXQnLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TTUc0JyxcbiAgICByZWFzb246ICdTZWNyZXQgcm90YXRpb24gbm90IHJlcXVpcmVkIGZvciB0ZXN0IGVudmlyb25tZW50JyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBTMyBidWNrZXQgd2FybmluZ3MgZm9yIERhdGFMb2FkZXIgYnVja2V0XG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlckJ1Y2tldCcsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVMxJyxcbiAgICByZWFzb246ICdTMyBhY2Nlc3MgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIGludGVybmFsIGRhdGEgbG9hZGluZyBidWNrZXQnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUzInLFxuICAgIHJlYXNvbjogJ1MzIGJ1Y2tldCBwdWJsaWMgcmVhZCBhY2Nlc3MgaXMgYmxvY2tlZCBieSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24nLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUzMnLFxuICAgIHJlYXNvbjogJ1NTTC1vbmx5IGFjY2VzcyBpcyBlbmZvcmNlZCB0aHJvdWdoIGJ1Y2tldCBwb2xpY3knLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUzEwJyxcbiAgICByZWFzb246ICdNRkEgZGVsZXRlIG5vdCByZXF1aXJlZCBmb3IgZGF0YSBsb2FkaW5nIGJ1Y2tldCcsXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgUzMgYnVja2V0IHBvbGljeSB3YXJuaW5nc1xuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zQnlQYXRoKHN0YWNrLCAnL1Rlc3RTdGFjay9EYXRhTG9hZGVyL0RhdGFMb2FkZXJCdWNrZXQvUG9saWN5JywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUzEwJyxcbiAgICByZWFzb246ICdTU0wtb25seSBhY2Nlc3MgcG9saWN5IGlzIGVuZm9yY2VkIGZvciBkYXRhIGxvYWRpbmcgYnVja2V0IHNlY3VyaXR5JyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBMYW1iZGEgZnVuY3Rpb24gd2FybmluZ3MgZm9yIERhdGFMb2FkZXIgcHJvY2Vzc29yXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlclByb2Nlc3NvcicsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUwxJyxcbiAgICByZWFzb246ICdMYW1iZGEgcnVudGltZSB2ZXJzaW9uIGlzIG1hbmFnZWQgYXQgZGVwbG95bWVudCB0aW1lJyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBzZWN1cml0eSBncm91cCB3YXJuaW5ncyBmb3IgRGF0YUxvYWRlciBwcm9jZXNzb3Jcbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9EYXRhTG9hZGVyUHJvY2Vzc29yU2VjdXJpdHlHcm91cCcsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUVDMjMnLFxuICAgIHJlYXNvbjogJ0xhbWJkYSBzZWN1cml0eSBncm91cCBhbGxvd3MgYWxsIG91dGJvdW5kIHRyYWZmaWMgZm9yIEFXUyBzZXJ2aWNlIGFjY2VzcyBhbmQgZGVwZW5kZW5jeSBkb3dubG9hZHMnLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIElBTSByb2xlIHdhcm5pbmdzIGZvciBEYXRhTG9hZGVyIHByb2Nlc3NvclxuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zQnlQYXRoKHN0YWNrLCAnL1Rlc3RTdGFjay9EYXRhTG9hZGVyL0RhdGFMb2FkZXJQcm9jZXNzb3IvU2VydmljZVJvbGUnLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU00JyxcbiAgICByZWFzb246ICdBV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlIGlzIHJlcXVpcmVkIGZvciBWUEMgTGFtYmRhIGZ1bmN0aW9ucycsXG4gICAgYXBwbGllc1RvOiBbJ1BvbGljeTo6YXJuOjxBV1M6OlBhcnRpdGlvbj46aWFtOjphd3M6cG9saWN5L3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFWUENBY2Nlc3NFeGVjdXRpb25Sb2xlJ10sXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdMYW1iZGEgZnVuY3Rpb24gbmVlZHMgQ2xvdWRXYXRjaCBMb2dzIHBlcm1pc3Npb25zIHdpdGggd2lsZGNhcmQgZm9yIGxvZyBzdHJlYW0gY3JlYXRpb24nLFxuICAgIGFwcGxpZXNUbzogWydSZXNvdXJjZTo6YXJuOjxBV1M6OlBhcnRpdGlvbj46bG9nczoqOio6bG9nLWdyb3VwOi9hd3MvbGFtYmRhLyo6KiddLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIElBTSBwb2xpY3kgd2FybmluZ3MgZm9yIERhdGFMb2FkZXIgcHJvY2Vzc29yXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlclByb2Nlc3Nvci9TZXJ2aWNlUm9sZS9EZWZhdWx0UG9saWN5JywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNScsXG4gICAgcmVhc29uOiAnTGFtYmRhIGZ1bmN0aW9uIG5lZWRzIFMzIHJlYWQgcGVybWlzc2lvbnMgZm9yIGRhdGEgbG9hZGluZyBmaWxlcycsXG4gICAgYXBwbGllc1RvOiBbXG4gICAgICAnQWN0aW9uOjpzMzpHZXRPYmplY3QqJyxcbiAgICAgICdBY3Rpb246OnMzOkdldEJ1Y2tldConLFxuICAgICAgJ0FjdGlvbjo6czM6TGlzdConLFxuICAgIF0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdMYW1iZGEgZnVuY3Rpb24gbmVlZHMgYWNjZXNzIHRvIGFsbCBvYmplY3RzIGluIHRoZSBkYXRhIGxvYWRpbmcgYnVja2V0JyxcbiAgICBhcHBsaWVzVG86IFsnUmVzb3VyY2U6OjxEYXRhTG9hZGVyRGF0YUxvYWRlckJ1Y2tldEY5OURBREUyLkFybj4vKiddLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIFN0ZXAgRnVuY3Rpb25zIHdhcm5pbmdzXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlclN0YXRlTWFjaGluZScsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVNGMScsXG4gICAgcmVhc29uOiAnU3RlcCBGdW5jdGlvbnMgbG9nZ2luZyBjb25maWd1cmF0aW9uIGlzIGVudmlyb25tZW50LXNwZWNpZmljJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVNGMicsXG4gICAgcmVhc29uOiAnWC1SYXkgdHJhY2luZyBjb25maWd1cmF0aW9uIGlzIGVudmlyb25tZW50LXNwZWNpZmljJyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBTdGVwIEZ1bmN0aW9ucyByb2xlIHdhcm5pbmdzXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlclN0YXRlTWFjaGluZS9Sb2xlJywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNScsXG4gICAgcmVhc29uOiAnU3RlcCBGdW5jdGlvbnMgbmVlZHMgdG8gaW52b2tlIExhbWJkYSBmdW5jdGlvbnMgd2l0aCBzcGVjaWZpYyBwZXJtaXNzaW9ucycsXG4gICAgYXBwbGllc1RvOiBbJ1Jlc291cmNlOjo8RGF0YUxvYWRlckRhdGFMb2FkZXJQcm9jZXNzb3IqPiddLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIFN0ZXAgRnVuY3Rpb25zIHJvbGUgcG9saWN5IHdhcm5pbmdzXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlclN0YXRlTWFjaGluZS9Sb2xlL0RlZmF1bHRQb2xpY3knLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdTdGVwIEZ1bmN0aW9ucyBuZWVkcyB0byBpbnZva2UgdGhlIERhdGFMb2FkZXIgcHJvY2Vzc29yIExhbWJkYSBmdW5jdGlvbicsXG4gICAgYXBwbGllc1RvOiBbJ1Jlc291cmNlOjo8RGF0YUxvYWRlckRhdGFMb2FkZXJQcm9jZXNzb3I2OTNENzVEMi5Bcm4+OionXSxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBjdXN0b20gcmVzb3VyY2UgTGFtYmRhIHdhcm5pbmdzXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvU3RhdGVNYWNoaW5lRXhlY3V0aW9uVHJpZ2dlcicsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUwxJyxcbiAgICByZWFzb246ICdDdXN0b20gcmVzb3VyY2UgTGFtYmRhIHJ1bnRpbWUgdmVyc2lvbiBpcyBtYW5hZ2VkIGF0IGRlcGxveW1lbnQgdGltZScsXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgY3VzdG9tIHJlc291cmNlIElBTSB3YXJuaW5ncyBmb3IgdGhlIGRlZGljYXRlZCByb2xlXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvU3RhdGVNYWNoaW5lRXhlY3V0aW9uVHJpZ2dlclJvbGUnLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU00JyxcbiAgICByZWFzb246ICdBV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUgaXMgdGhlIHN0YW5kYXJkIG1pbmltYWwgcG9saWN5IGZvciBMYW1iZGEgZXhlY3V0aW9uJyxcbiAgICBhcHBsaWVzVG86IFsnUG9saWN5Ojphcm46PEFXUzo6UGFydGl0aW9uPjppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSddLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNScsXG4gICAgcmVhc29uOiAnQ3VzdG9tIHJlc291cmNlIG5lZWRzIFN0ZXAgRnVuY3Rpb25zIGV4ZWN1dGlvbiBwZXJtaXNzaW9ucyB3aXRoIHdpbGRjYXJkIGZvciBleGVjdXRpb24gQVJOcy4gJyArXG4gICAgICAgICAgICAnRXhlY3V0aW9uIEFSTnMgaW5jbHVkZSBkeW5hbWljIGV4ZWN1dGlvbiBuYW1lcyB0aGF0IGNhbm5vdCBiZSBwcmVkZXRlcm1pbmVkLicsXG4gICAgYXBwbGllc1RvOiBbJ1Jlc291cmNlOjo8RGF0YUxvYWRlckRhdGFMb2FkZXJTdGF0ZU1hY2hpbmUyMDcxQzNEQz46KiddLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlciB3YXJuaW5nc1xuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zQnlQYXRoKHN0YWNrLCAnL1Rlc3RTdGFjay9EYXRhTG9hZGVyL1N0YXRlTWFjaGluZUV4ZWN1dGlvblByb3ZpZGVyJywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtTDEnLFxuICAgIHJlYXNvbjogJ0N1c3RvbSByZXNvdXJjZSBwcm92aWRlciBMYW1iZGEgcnVudGltZSB2ZXJzaW9uIGlzIG1hbmFnZWQgYXQgZGVwbG95bWVudCB0aW1lJyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZXIgSUFNIHdhcm5pbmdzXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvU3RhdGVNYWNoaW5lRXhlY3V0aW9uUHJvdmlkZXIvZnJhbWV3b3JrLW9uRXZlbnQvU2VydmljZVJvbGUnLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU00JyxcbiAgICByZWFzb246ICdBV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUgaXMgdGhlIHN0YW5kYXJkIG1pbmltYWwgcG9saWN5IGZvciBMYW1iZGEgZXhlY3V0aW9uJyxcbiAgICBhcHBsaWVzVG86IFsnUG9saWN5Ojphcm46PEFXUzo6UGFydGl0aW9uPjppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSddLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlciBwb2xpY3kgd2FybmluZ3Ncbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9TdGF0ZU1hY2hpbmVFeGVjdXRpb25Qcm92aWRlci9mcmFtZXdvcmstb25FdmVudC9TZXJ2aWNlUm9sZS9EZWZhdWx0UG9saWN5JywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNScsXG4gICAgcmVhc29uOiAnQ3VzdG9tIHJlc291cmNlIG5lZWRzIFN0ZXAgRnVuY3Rpb25zIGV4ZWN1dGlvbiBwZXJtaXNzaW9ucycsXG4gICAgYXBwbGllc1RvOiBbJ1Jlc291cmNlOjo8RGF0YUxvYWRlclN0YXRlTWFjaGluZUV4ZWN1dGlvblRyaWdnZXI5NDE5OUUwMC5Bcm4+OionXSxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBidWNrZXQgZGVwbG95bWVudCB3YXJuaW5ncyBpZiBwcmVzZW50XG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnMoc3RhY2ssIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTQnLFxuICAgIHJlYXNvbjogJ0NESyBtYW5hZ2VkIGJ1Y2tldCBkZXBsb3ltZW50IHJlc291cmNlcyB1c2UgQVdTIG1hbmFnZWQgcG9saWNpZXMnLFxuICAgIGFwcGxpZXNUbzogWydQb2xpY3k6OmFybjo8QVdTOjpQYXJ0aXRpb24+OmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlJ10sXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdCdWNrZXQgZGVwbG95bWVudCByZXF1aXJlcyB3aWxkY2FyZCBwZXJtaXNzaW9ucyBmb3IgUzMgb3BlcmF0aW9ucycsXG4gICAgYXBwbGllc1RvOiBbJ1Jlc291cmNlOjoqJ10sXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgcmVhc29uOiAnQ0RLIG1hbmFnZWQgYnVja2V0IGRlcGxveW1lbnQgTGFtYmRhIHJ1bnRpbWUgaXMgbWFuYWdlZCBieSBDREsnLFxuICB9LFxuXSwgdHJ1ZSk7XG5cbi8vIEFwcGx5IENESyBOYWcgY2hlY2tzXG5Bc3BlY3RzLm9mKGFwcCkuYWRkKG5ldyBBd3NTb2x1dGlvbnNDaGVja3MoeyB2ZXJib3NlOiB0cnVlIH0pKTtcblxuLy8gU3ludGhlc2l6ZSB0aGUgc3RhY2tcblRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbi8vIENoZWNrIGZvciB1bnN1cHByZXNzZWQgd2FybmluZ3MgYW5kIGVycm9yc1xuY29uc3Qgd2FybmluZ3MgPSBBbm5vdGF0aW9ucy5mcm9tU3RhY2soc3RhY2spLmZpbmRXYXJuaW5nKCcqJywgTWF0Y2guc3RyaW5nTGlrZVJlZ2V4cCgnQXdzU29sdXRpb25zLS4qJykpO1xuY29uc3QgZXJyb3JzID0gQW5ub3RhdGlvbnMuZnJvbVN0YWNrKHN0YWNrKS5maW5kRXJyb3IoJyonLCBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdBd3NTb2x1dGlvbnMtLionKSk7XG5cbi8vIFRlc3Q6IERhdGFMb2FkZXIgY29uc3RydWN0IGlzIHByb3Blcmx5IGNyZWF0ZWRcbnRlc3QoJ0RhdGFMb2FkZXIgY29uc3RydWN0IGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5JywgKCkgPT4ge1xuICBleHBlY3QoZGF0YUxvYWRlcikudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGRhdGFMb2FkZXIubm9kZS5pZCkudG9CZSgnRGF0YUxvYWRlcicpO1xuICBleHBlY3QoZGF0YUxvYWRlci5idWNrZXQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChkYXRhTG9hZGVyLnN0YXRlTWFjaGluZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGRhdGFMb2FkZXIucHJvY2Vzc29yRnVuY3Rpb24pLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChkYXRhTG9hZGVyLmN1c3RvbVJlc291cmNlUHJvdmlkZXIpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChkYXRhTG9hZGVyLmV4ZWN1dGlvblRyaWdnZXIpLnRvQmVEZWZpbmVkKCk7XG59KTtcblxuLy8gVGVzdDogRGF0YUxvYWRlciBoYXMgZXhwZWN0ZWQgcHJvcGVydGllc1xudGVzdCgnRGF0YUxvYWRlciBoYXMgZXhwZWN0ZWQgcHJvcGVydGllcycsICgpID0+IHtcbiAgZXhwZWN0KGRhdGFMb2FkZXIuYnVja2V0LmJ1Y2tldE5hbWUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChkYXRhTG9hZGVyLnN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4pLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChkYXRhTG9hZGVyLnByb2Nlc3NvckZ1bmN0aW9uLmZ1bmN0aW9uQXJuKS50b0JlRGVmaW5lZCgpO1xufSk7XG5cbi8vIFRlc3Q6IFRlbXBsYXRlIGNvbnRhaW5zIGV4cGVjdGVkIERhdGFMb2FkZXIgcmVzb3VyY2VzXG50ZXN0KCdUZW1wbGF0ZSBjb250YWlucyBleHBlY3RlZCBEYXRhTG9hZGVyIHJlc291cmNlcycsICgpID0+IHtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gIC8vIFZlcmlmeSBTMyBidWNrZXQgZXhpc3RzIHdpdGggZW5jcnlwdGlvblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6UzM6OkJ1Y2tldCcsIHtcbiAgICBCdWNrZXRFbmNyeXB0aW9uOiB7XG4gICAgICBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQnlEZWZhdWx0OiB7XG4gICAgICAgICAgICBTU0VBbGdvcml0aG06ICdBRVMyNTYnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICBCbG9ja1B1YmxpY0FjbHM6IHRydWUsXG4gICAgICBCbG9ja1B1YmxpY1BvbGljeTogdHJ1ZSxcbiAgICAgIElnbm9yZVB1YmxpY0FjbHM6IHRydWUsXG4gICAgICBSZXN0cmljdFB1YmxpY0J1Y2tldHM6IHRydWUsXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gVmVyaWZ5IExhbWJkYSBmdW5jdGlvbiBleGlzdHMgd2l0aCBWUEMgY29uZmlndXJhdGlvblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsIHtcbiAgICBSdW50aW1lOiAncHl0aG9uMy4xMycsXG4gICAgVnBjQ29uZmlnOiB7XG4gICAgICBTZWN1cml0eUdyb3VwSWRzOiBNYXRjaC5hbnlWYWx1ZSgpLFxuICAgICAgU3VibmV0SWRzOiBNYXRjaC5hbnlWYWx1ZSgpLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBTdGVwIEZ1bmN0aW9ucyBzdGF0ZSBtYWNoaW5lIGV4aXN0c1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJywge1xuICAgIERlZmluaXRpb25TdHJpbmc6IE1hdGNoLmFueVZhbHVlKCksXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBBdXJvcmEgY2x1c3RlciBleGlzdHMgd2l0aCBlbmNyeXB0aW9uXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpSRFM6OkRCQ2x1c3RlcicsIHtcbiAgICBFbmdpbmU6ICdhdXJvcmEtcG9zdGdyZXNxbCcsXG4gICAgU3RvcmFnZUVuY3J5cHRlZDogdHJ1ZSxcbiAgfSk7XG5cbiAgLy8gVmVyaWZ5IGN1c3RvbSByZXNvdXJjZSBleGlzdHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsIHtcbiAgICBTZXJ2aWNlVG9rZW46IE1hdGNoLmFueVZhbHVlKCksXG4gIH0pO1xufSk7XG5cbi8vIFRlc3Q6IFNlY3VyaXR5IGNvbmZpZ3VyYXRpb25zIGFyZSBwcm9wZXJseSBhcHBsaWVkXG50ZXN0KCdTZWN1cml0eSBjb25maWd1cmF0aW9ucyBhcmUgcHJvcGVybHkgYXBwbGllZCcsICgpID0+IHtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gIC8vIFZlcmlmeSBLTVMga2V5IGV4aXN0cyB3aXRoIHJvdGF0aW9uIGVuYWJsZWRcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OktNUzo6S2V5Jywge1xuICAgIEVuYWJsZUtleVJvdGF0aW9uOiB0cnVlLFxuICB9KTtcblxuICAvLyBWZXJpZnkgVlBDIEZsb3cgTG9ncyBleGlzdFxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6RUMyOjpGbG93TG9nJywge1xuICAgIFJlc291cmNlVHlwZTogJ1ZQQycsXG4gICAgVHJhZmZpY1R5cGU6ICdBTEwnLFxuICB9KTtcblxuICAvLyBWZXJpZnkgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBleGlzdHMgd2l0aCBLTVMgZW5jcnlwdGlvblxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6U2VjcmV0c01hbmFnZXI6OlNlY3JldCcsIHtcbiAgICBLbXNLZXlJZDogTWF0Y2guYW55VmFsdWUoKSxcbiAgfSk7XG5cbiAgLy8gVmVyaWZ5IHNlY3VyaXR5IGdyb3VwIGV4aXN0c1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywge1xuICAgIEdyb3VwRGVzY3JpcHRpb246ICdTZWN1cml0eSBncm91cCBmb3IgRGF0YUxvYWRlciBkYXRhYmFzZSBhY2Nlc3MnLFxuICB9KTtcblxuICAvLyBWZXJpZnkgTGFtYmRhIHNlY3VyaXR5IGdyb3VwIGV4aXN0c1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywge1xuICAgIEdyb3VwRGVzY3JpcHRpb246ICdTZWN1cml0eSBncm91cCBmb3IgRGF0YUxvYWRlciBwcm9jZXNzb3IgTGFtYmRhIGZ1bmN0aW9uJyxcbiAgfSk7XG59KTtcblxuLy8gVGVzdDogSUFNIHBlcm1pc3Npb25zIGFyZSBwcm9wZXJseSBjb25maWd1cmVkXG50ZXN0KCdJQU0gcGVybWlzc2lvbnMgYXJlIHByb3Blcmx5IGNvbmZpZ3VyZWQnLCAoKSA9PiB7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuICAvLyBWZXJpZnkgTGFtYmRhIGV4ZWN1dGlvbiByb2xlIGV4aXN0c1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6SUFNOjpSb2xlJywge1xuICAgIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246ICdzdHM6QXNzdW1lUm9sZScsXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFByaW5jaXBhbDoge1xuICAgICAgICAgICAgU2VydmljZTogJ2xhbWJkYS5hbWF6b25hd3MuY29tJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBWZXJpZnkgU3RlcCBGdW5jdGlvbnMgcm9sZSBleGlzdHNcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OklBTTo6Um9sZScsIHtcbiAgICBBc3N1bWVSb2xlUG9saWN5RG9jdW1lbnQ6IHtcbiAgICAgIFN0YXRlbWVudDogW1xuICAgICAgICB7XG4gICAgICAgICAgQWN0aW9uOiAnc3RzOkFzc3VtZVJvbGUnLFxuICAgICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgICBQcmluY2lwYWw6IHtcbiAgICAgICAgICAgIFNlcnZpY2U6ICdzdGF0ZXMuYW1hem9uYXdzLmNvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSk7XG59KTtcblxuLy8gVGVzdDogTm8gdW5zdXBwcmVzc2VkIHdhcm5pbmdzXG50ZXN0KCdObyB1bnN1cHByZXNzZWQgd2FybmluZ3MnLCAoKSA9PiB7XG4gIGlmICh3YXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coJ0NESyBOYWcgV2FybmluZ3M6JywgSlNPTi5zdHJpbmdpZnkod2FybmluZ3MsIG51bGwsIDIpKTtcbiAgfVxuICBleHBlY3Qod2FybmluZ3MpLnRvSGF2ZUxlbmd0aCgwKTtcbn0pO1xuXG4vLyBUZXN0OiBObyB1bnN1cHByZXNzZWQgZXJyb3JzXG50ZXN0KCdObyB1bnN1cHByZXNzZWQgZXJyb3JzJywgKCkgPT4ge1xuICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmxvZygnQ0RLIE5hZyBFcnJvcnM6JywgSlNPTi5zdHJpbmdpZnkoZXJyb3JzLCBudWxsLCAyKSk7XG4gIH1cbiAgZXhwZWN0KGVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xufSk7XG4iXX0=
433
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sb2FkZXItbmFnLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvdXRpbGl0aWVzL3Rlc3RzL2RhdGEtbG9hZGVyLW5hZy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQTREO0FBQzVELHVEQUFzRTtBQUN0RSxpREFBc0o7QUFDdEosaURBQTBDO0FBQzFDLGlEQUEySDtBQUMzSCx1RUFBd0Q7QUFDeEQscUNBQThEO0FBQzlELGdEQUFzRTtBQUN0RSw4Q0FBOEM7QUFFOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sR0FBRyxHQUFHLElBQUEsMEJBQWEsR0FBRSxDQUFDO0FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFO0lBQ3hDLEdBQUcsRUFBRTtRQUNILE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLE1BQU0sRUFBRSxXQUFXO0tBQ3BCO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsd0NBQXdDO0FBQ3hDLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBRyxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUU7SUFDcEQsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixXQUFXLEVBQUUsMkNBQTJDO0NBQ3pELENBQUMsQ0FBQztBQUVILHFEQUFxRDtBQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLGFBQUcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BDLE1BQU0sRUFBRSxDQUFDO0NBQ1YsQ0FBQyxDQUFDO0FBRUgsNkNBQTZDO0FBQzdDLElBQUksaUJBQU8sQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQy9CLFlBQVksRUFBRSw2QkFBbUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQzlDLFdBQVcsRUFBRSw0QkFBa0IsQ0FBQyxHQUFHO0NBQ3BDLENBQUMsQ0FBQztBQUVILDRDQUE0QztBQUM1QyxNQUFNLGVBQWUsR0FBRyxJQUFJLHVCQUFhLENBQUMs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IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgVGVtcGxhdGUsIEFubm90YXRpb25zLCBNYXRjaCB9IGZyb20gJ2F3cy1jZGstbGliL2Fzc2VydGlvbnMnO1xuaW1wb3J0IHsgVnBjLCBGbG93TG9nLCBGbG93TG9nUmVzb3VyY2VUeXBlLCBGbG93TG9nVHJhZmZpY1R5cGUsIFNlY3VyaXR5R3JvdXAsIEluc3RhbmNlVHlwZSwgSW5zdGFuY2VDbGFzcywgSW5zdGFuY2VTaXplIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBLZXkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCB7IERhdGFiYXNlQ2x1c3RlciwgRGF0YWJhc2VDbHVzdGVyRW5naW5lLCBBdXJvcmFQb3N0Z3Jlc0VuZ2luZVZlcnNpb24sIENsdXN0ZXJJbnN0YW5jZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1yZHMnO1xuaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB7IEF3c1NvbHV0aW9uc0NoZWNrcywgTmFnU3VwcHJlc3Npb25zIH0gZnJvbSAnY2RrLW5hZyc7XG5pbXBvcnQgeyBEYXRhTG9hZGVyLCBEYXRhYmFzZUVuZ2luZSwgRmlsZVR5cGUgfSBmcm9tICcuLi9kYXRhLWxvYWRlcic7XG5pbXBvcnQgeyBjcmVhdGVUZXN0QXBwIH0gZnJvbSAnLi4vdGVzdC11dGlscyc7XG5cbi8vIENyZWF0ZSBhcHAgYW5kIHN0YWNrXG5jb25zdCBhcHAgPSBjcmVhdGVUZXN0QXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsICdUZXN0U3RhY2snLCB7XG4gIGVudjoge1xuICAgIGFjY291bnQ6ICcxMjM0NTY3ODkwMTInLFxuICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gIH0sXG59KTtcblxuLy8gQ3JlYXRlIEtNUyBrZXkgZm9yIGVuY3J5cHRpb24gYXQgcmVzdFxuY29uc3QgZW5jcnlwdGlvbktleSA9IG5ldyBLZXkoc3RhY2ssICdFbmNyeXB0aW9uS2V5Jywge1xuICBlbmFibGVLZXlSb3RhdGlvbjogdHJ1ZSxcbiAgZGVzY3JpcHRpb246ICdLTVMga2V5IGZvciBEYXRhTG9hZGVyIGVuY3J5cHRpb24gYXQgcmVzdCcsXG59KTtcblxuLy8gQ3JlYXRlIFZQQyB3aXRoIEZsb3cgTG9ncyB0byBmaXggQXdzU29sdXRpb25zLVZQQzdcbmNvbnN0IHZwYyA9IG5ldyBWcGMoc3RhY2ssICdUZXN0VnBjJywge1xuICBtYXhBenM6IDIsXG59KTtcblxuLy8gQWRkIFZQQyBGbG93IExvZ3MgdG8gZml4IEF3c1NvbHV0aW9ucy1WUEM3XG5uZXcgRmxvd0xvZyhzdGFjaywgJ1ZwY0Zsb3dMb2cnLCB7XG4gIHJlc291cmNlVHlwZTogRmxvd0xvZ1Jlc291cmNlVHlwZS5mcm9tVnBjKHZwYyksXG4gIHRyYWZmaWNUeXBlOiBGbG93TG9nVHJhZmZpY1R5cGUuQUxMLFxufSk7XG5cbi8vIENyZWF0ZSBzZWN1cml0eSBncm91cCBmb3IgZGF0YWJhc2UgYWNjZXNzXG5jb25zdCBkYlNlY3VyaXR5R3JvdXAgPSBuZXcgU2VjdXJpdHlHcm91cChzdGFjaywgJ0RhdGFiYXNlU2VjdXJpdHlHcm91cCcsIHtcbiAgdnBjOiB2cGMsXG4gIGRlc2NyaXB0aW9uOiAnU2VjdXJpdHkgZ3JvdXAgZm9yIERhdGFMb2FkZXIgZGF0YWJhc2UgYWNjZXNzJyxcbiAgYWxsb3dBbGxPdXRib3VuZDogZmFsc2UsXG59KTtcblxuLy8gQ3JlYXRlIGRhdGFiYXNlIGNyZWRlbnRpYWxzIHNlY3JldFxuY29uc3QgZGJTZWNyZXQgPSBuZXcgU2VjcmV0KHN0YWNrLCAnRGF0YWJhc2VTZWNyZXQnLCB7XG4gIGRlc2NyaXB0aW9uOiAnRGF0YWJhc2UgY3JlZGVudGlhbHMgZm9yIERhdGFMb2FkZXInLFxuICBnZW5lcmF0ZVNlY3JldFN0cmluZzoge1xuICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7IHVzZXJuYW1lOiAncG9zdGdyZXMnIH0pLFxuICAgIGdlbmVyYXRlU3RyaW5nS2V5OiAncGFzc3dvcmQnLFxuICAgIGV4Y2x1ZGVDaGFyYWN0ZXJzOiAnXCJAL1xcXFwnLFxuICB9LFxuICBlbmNyeXB0aW9uS2V5OiBlbmNyeXB0aW9uS2V5LFxufSk7XG5cbi8vIENyZWF0ZSBBdXJvcmEgUG9zdGdyZVNRTCBjbHVzdGVyIGZvciB0ZXN0aW5nXG5jb25zdCBkYkNsdXN0ZXIgPSBuZXcgRGF0YWJhc2VDbHVzdGVyKHN0YWNrLCAnVGVzdERhdGFiYXNlQ2x1c3RlcicsIHtcbiAgZW5naW5lOiBEYXRhYmFzZUNsdXN0ZXJFbmdpbmUuYXVyb3JhUG9zdGdyZXMoe1xuICAgIHZlcnNpb246IEF1cm9yYVBvc3RncmVzRW5naW5lVmVyc2lvbi5WRVJfMTVfNCxcbiAgfSksXG4gIHZwYzogdnBjLFxuICBjcmVkZW50aWFsczoge1xuICAgIHVzZXJuYW1lOiAncG9zdGdyZXMnLFxuICAgIHBhc3N3b3JkOiBkYlNlY3JldC5zZWNyZXRWYWx1ZUZyb21Kc29uKCdwYXNzd29yZCcpLFxuICB9LFxuICBkZWZhdWx0RGF0YWJhc2VOYW1lOiAndGVzdGRiJyxcbiAgc2VjdXJpdHlHcm91cHM6IFtkYlNlY3VyaXR5R3JvdXBdLFxuICBzdG9yYWdlRW5jcnlwdGlvbktleTogZW5jcnlwdGlvbktleSxcbiAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLCAvLyBGb3IgdGVzdCBlbnZpcm9ubWVudFxuICB3cml0ZXI6IENsdXN0ZXJJbnN0YW5jZS5wcm92aXNpb25lZCgnd3JpdGVyJywge1xuICAgIGluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlLm9mKEluc3RhbmNlQ2xhc3MuVDMsIEluc3RhbmNlU2l6ZS5NRURJVU0pLFxuICB9KSxcbn0pO1xuXG4vLyBDcmVhdGUgRGF0YUxvYWRlciBjb25zdHJ1Y3RcbmNvbnN0IGRhdGFMb2FkZXIgPSBuZXcgRGF0YUxvYWRlcihzdGFjaywgJ0RhdGFMb2FkZXInLCB7XG4gIGRhdGFiYXNlQ29uZmlnOiB7XG4gICAgZW5naW5lOiBEYXRhYmFzZUVuZ2luZS5QT1NUR1JFU1FMLFxuICAgIGNsdXN0ZXI6IGRiQ2x1c3RlcixcbiAgICBzZWNyZXQ6IGRiU2VjcmV0LFxuICAgIGRhdGFiYXNlTmFtZTogJ3Rlc3RkYicsXG4gICAgdnBjOiB2cGMsXG4gICAgc2VjdXJpdHlHcm91cDogZGJTZWN1cml0eUdyb3VwLFxuICB9LFxuICBmaWxlSW5wdXRzOiBbXG4gICAge1xuICAgICAgZmlsZVBhdGg6ICdzMzovL3Rlc3QtYnVja2V0L3NjaGVtYS5zcWwnLFxuICAgICAgZmlsZVR5cGU6IEZpbGVUeXBlLlNRTCxcbiAgICAgIGV4ZWN1dGlvbk9yZGVyOiAxLFxuICAgIH0sXG4gICAge1xuICAgICAgZmlsZVBhdGg6ICdzMzovL3Rlc3QtYnVja2V0L2RhdGEuc3FsJyxcbiAgICAgIGZpbGVUeXBlOiBGaWxlVHlwZS5TUUwsXG4gICAgICBleGVjdXRpb25PcmRlcjogMixcbiAgICB9LFxuICBdLFxuICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksIC8vIEZvciB0ZXN0IGVudmlyb25tZW50XG59KTtcblxuLy8gQWRkIENESyBOYWcgc3VwcHJlc3Npb25zIGZvciBhY2NlcHRhYmxlIHZpb2xhdGlvbnNcblxuLy8gU3VwcHJlc3MgVlBDLXJlbGF0ZWQgd2FybmluZ3MgZm9yIHRlc3QgZW52aXJvbm1lbnRcbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svVGVzdFZwYycsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVZQQzcnLFxuICAgIHJlYXNvbjogJ1ZQQyBGbG93IExvZ3MgYXJlIGFkZGVkIHNlcGFyYXRlbHkgaW4gdGhlIHRlc3Qgc2V0dXAnLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIFJEUy1yZWxhdGVkIHdhcm5pbmdzIGZvciB0ZXN0IGVudmlyb25tZW50XG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL1Rlc3REYXRhYmFzZUNsdXN0ZXInLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1SRFMyJyxcbiAgICByZWFzb246ICdEYXRhYmFzZSBlbmNyeXB0aW9uIGlzIGVuYWJsZWQgd2l0aCBjdXN0b21lci1tYW5hZ2VkIEtNUyBrZXknLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUkRTMycsXG4gICAgcmVhc29uOiAnTXVsdGktQVogZGlzYWJsZWQgZm9yIHRlc3QgZW52aXJvbm1lbnQgY29zdCBvcHRpbWl6YXRpb24nLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUkRTNicsXG4gICAgcmVhc29uOiAnSUFNIGRhdGFiYXNlIGF1dGhlbnRpY2F0aW9uIG5vdCByZXF1aXJlZCBmb3IgdGhpcyB1c2UgY2FzZScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1SRFMxMCcsXG4gICAgcmVhc29uOiAnRGVsZXRpb24gcHJvdGVjdGlvbiBkaXNhYmxlZCBmb3IgdGVzdCBlbnZpcm9ubWVudCB0byBhbGxvdyBjbGVhbnVwJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVJEUzExJyxcbiAgICByZWFzb246ICdEZWZhdWx0IHBvcnQgYWNjZXB0YWJsZSB3aXRoaW4gVlBDIHNlY3VyaXR5IGJvdW5kYXJpZXMnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUkRTMTQnLFxuICAgIHJlYXNvbjogJ0JhY2t0cmFjayBub3QgYXZhaWxhYmxlIGZvciBQb3N0Z3JlU1FMIGVuZ2luZScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1SRFMxNicsXG4gICAgcmVhc29uOiAnUGVyZm9ybWFuY2UgSW5zaWdodHMgZGlzYWJsZWQgZm9yIGNvc3Qgb3B0aW1pemF0aW9uIGluIHRlc3QgZW52aXJvbm1lbnQnLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIFNlY3JldHMgTWFuYWdlciB3YXJuaW5nc1xuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zQnlQYXRoKHN0YWNrLCAnL1Rlc3RTdGFjay9EYXRhYmFzZVNlY3JldCcsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLVNNRzQnLFxuICAgIHJlYXNvbjogJ1NlY3JldCByb3RhdGlvbiBub3QgcmVxdWlyZWQgZm9yIHRlc3QgZW52aXJvbm1lbnQnLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIFMzIGJ1Y2tldCB3YXJuaW5ncyBmb3IgRGF0YUxvYWRlciBidWNrZXRcbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9EYXRhTG9hZGVyQnVja2V0JywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtUzEnLFxuICAgIHJlYXNvbjogJ1MzIGFjY2VzcyBsb2dnaW5nIG5vdCByZXF1aXJlZCBmb3IgaW50ZXJuYWwgZGF0YSBsb2FkaW5nIGJ1Y2tldCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMicsXG4gICAgcmVhc29uOiAnUzMgYnVja2V0IHB1YmxpYyByZWFkIGFjY2VzcyBpcyBibG9ja2VkIGJ5IGRlZmF1bHQgY29uZmlndXJhdGlvbicsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMycsXG4gICAgcmVhc29uOiAnU1NMLW9ubHkgYWNjZXNzIGlzIGVuZm9yY2VkIHRocm91Z2ggYnVja2V0IHBvbGljeScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMTAnLFxuICAgIHJlYXNvbjogJ01GQSBkZWxldGUgbm90IHJlcXVpcmVkIGZvciBkYXRhIGxvYWRpbmcgYnVja2V0JyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBTMyBidWNrZXQgcG9saWN5IHdhcm5pbmdzXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlckJ1Y2tldC9Qb2xpY3knLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1TMTAnLFxuICAgIHJlYXNvbjogJ1NTTC1vbmx5IGFjY2VzcyBwb2xpY3kgaXMgZW5mb3JjZWQgZm9yIGRhdGEgbG9hZGluZyBidWNrZXQgc2VjdXJpdHknLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIExhbWJkYSBmdW5jdGlvbiB3YXJuaW5ncyBmb3IgRGF0YUxvYWRlciBwcm9jZXNzb3Jcbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9EYXRhTG9hZGVyUHJvY2Vzc29yJywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtTDEnLFxuICAgIHJlYXNvbjogJ0xhbWJkYSBydW50aW1lIHZlcnNpb24gaXMgbWFuYWdlZCBhdCBkZXBsb3ltZW50IHRpbWUnLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIHNlY3VyaXR5IGdyb3VwIHdhcm5pbmdzIGZvciBEYXRhTG9hZGVyIHByb2Nlc3NvclxuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zQnlQYXRoKHN0YWNrLCAnL1Rlc3RTdGFjay9EYXRhTG9hZGVyL0RhdGFMb2FkZXJQcm9jZXNzb3JTZWN1cml0eUdyb3VwJywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtRUMyMycsXG4gICAgcmVhc29uOiAnTGFtYmRhIHNlY3VyaXR5IGdyb3VwIGFsbG93cyBhbGwgb3V0Ym91bmQgdHJhZmZpYyBmb3IgQVdTIHNlcnZpY2UgYWNjZXNzIGFuZCBkZXBlbmRlbmN5IGRvd25sb2FkcycsXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgSUFNIHJvbGUgd2FybmluZ3MgZm9yIERhdGFMb2FkZXIgcHJvY2Vzc29yXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvRGF0YUxvYWRlclByb2Nlc3Nvci9TZXJ2aWNlUm9sZScsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTQnLFxuICAgIHJlYXNvbjogJ0FXU0xhbWJkYVZQQ0FjY2Vzc0V4ZWN1dGlvblJvbGUgaXMgcmVxdWlyZWQgZm9yIFZQQyBMYW1iZGEgZnVuY3Rpb25zJyxcbiAgICBhcHBsaWVzVG86IFsnUG9saWN5Ojphcm46PEFXUzo6UGFydGl0aW9uPjppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYVZQQ0FjY2Vzc0V4ZWN1dGlvblJvbGUnXSxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgIHJlYXNvbjogJ0xhbWJkYSBmdW5jdGlvbiBuZWVkcyBDbG91ZFdhdGNoIExvZ3MgcGVybWlzc2lvbnMgd2l0aCB3aWxkY2FyZCBmb3IgbG9nIHN0cmVhbSBjcmVhdGlvbicsXG4gICAgYXBwbGllc1RvOiBbJ1Jlc291cmNlOjphcm46PEFXUzo6UGFydGl0aW9uPjpsb2dzOio6Kjpsb2ctZ3JvdXA6L2F3cy9sYW1iZGEvKjoqJ10sXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgSUFNIHBvbGljeSB3YXJuaW5ncyBmb3IgRGF0YUxvYWRlciBwcm9jZXNzb3Jcbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9EYXRhTG9hZGVyUHJvY2Vzc29yL1NlcnZpY2VSb2xlL0RlZmF1bHRQb2xpY3knLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdMYW1iZGEgZnVuY3Rpb24gbmVlZHMgUzMgcmVhZCBwZXJtaXNzaW9ucyBmb3IgZGF0YSBsb2FkaW5nIGZpbGVzJyxcbiAgICBhcHBsaWVzVG86IFtcbiAgICAgICdBY3Rpb246OnMzOkdldE9iamVjdConLFxuICAgICAgJ0FjdGlvbjo6czM6R2V0QnVja2V0KicsXG4gICAgICAnQWN0aW9uOjpzMzpMaXN0KicsXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgIHJlYXNvbjogJ0xhbWJkYSBmdW5jdGlvbiBuZWVkcyBhY2Nlc3MgdG8gYWxsIG9iamVjdHMgaW4gdGhlIGRhdGEgbG9hZGluZyBidWNrZXQnLFxuICAgIGFwcGxpZXNUbzogWydSZXNvdXJjZTo6PERhdGFMb2FkZXJEYXRhTG9hZGVyQnVja2V0Rjk5REFERTIuQXJuPi8qJ10sXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgU3RlcCBGdW5jdGlvbnMgd2FybmluZ3Ncbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9EYXRhTG9hZGVyU3RhdGVNYWNoaW5lJywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtU0YxJyxcbiAgICByZWFzb246ICdTdGVwIEZ1bmN0aW9ucyBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gaXMgZW52aXJvbm1lbnQtc3BlY2lmaWMnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtU0YyJyxcbiAgICByZWFzb246ICdYLVJheSB0cmFjaW5nIGNvbmZpZ3VyYXRpb24gaXMgZW52aXJvbm1lbnQtc3BlY2lmaWMnLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIFN0ZXAgRnVuY3Rpb25zIHJvbGUgd2FybmluZ3Ncbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9EYXRhTG9hZGVyU3RhdGVNYWNoaW5lL1JvbGUnLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdTdGVwIEZ1bmN0aW9ucyBuZWVkcyB0byBpbnZva2UgTGFtYmRhIGZ1bmN0aW9ucyB3aXRoIHNwZWNpZmljIHBlcm1pc3Npb25zJyxcbiAgICBhcHBsaWVzVG86IFsnUmVzb3VyY2U6OjxEYXRhTG9hZGVyRGF0YUxvYWRlclByb2Nlc3Nvcio+J10sXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgU3RlcCBGdW5jdGlvbnMgcm9sZSBwb2xpY3kgd2FybmluZ3Ncbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9EYXRhTG9hZGVyU3RhdGVNYWNoaW5lL1JvbGUvRGVmYXVsdFBvbGljeScsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgIHJlYXNvbjogJ1N0ZXAgRnVuY3Rpb25zIG5lZWRzIHRvIGludm9rZSB0aGUgRGF0YUxvYWRlciBwcm9jZXNzb3IgTGFtYmRhIGZ1bmN0aW9uJyxcbiAgICBhcHBsaWVzVG86IFsnUmVzb3VyY2U6OjxEYXRhTG9hZGVyRGF0YUxvYWRlclByb2Nlc3NvcjY5M0Q3NUQyLkFybj46KiddLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIGN1c3RvbSByZXNvdXJjZSBMYW1iZGEgd2FybmluZ3Ncbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9TdGF0ZU1hY2hpbmVFeGVjdXRpb25UcmlnZ2VyJywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtTDEnLFxuICAgIHJlYXNvbjogJ0N1c3RvbSByZXNvdXJjZSBMYW1iZGEgcnVudGltZSB2ZXJzaW9uIGlzIG1hbmFnZWQgYXQgZGVwbG95bWVudCB0aW1lJyxcbiAgfSxcbl0pO1xuXG4vLyBTdXBwcmVzcyBjdXN0b20gcmVzb3VyY2UgSUFNIHdhcm5pbmdzIGZvciB0aGUgZGVkaWNhdGVkIHJvbGVcbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9TdGF0ZU1hY2hpbmVFeGVjdXRpb25UcmlnZ2VyUm9sZScsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTQnLFxuICAgIHJlYXNvbjogJ0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSBpcyB0aGUgc3RhbmRhcmQgbWluaW1hbCBwb2xpY3kgZm9yIExhbWJkYSBleGVjdXRpb24nLFxuICAgIGFwcGxpZXNUbzogWydQb2xpY3k6OmFybjo8QVdTOjpQYXJ0aXRpb24+OmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlJ10sXG4gIH0sXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdDdXN0b20gcmVzb3VyY2UgbmVlZHMgU3RlcCBGdW5jdGlvbnMgZXhlY3V0aW9uIHBlcm1pc3Npb25zIHdpdGggd2lsZGNhcmQgZm9yIGV4ZWN1dGlvbiBBUk5zLiAnICtcbiAgICAgICAgICAgICdFeGVjdXRpb24gQVJOcyBpbmNsdWRlIGR5bmFtaWMgZXhlY3V0aW9uIG5hbWVzIHRoYXQgY2Fubm90IGJlIHByZWRldGVybWluZWQuJyxcbiAgICBhcHBsaWVzVG86IFsnUmVzb3VyY2U6OjxEYXRhTG9hZGVyRGF0YUxvYWRlclN0YXRlTWFjaGluZTIwNzFDM0RDPjoqJ10sXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIHdhcm5pbmdzXG5OYWdTdXBwcmVzc2lvbnMuYWRkUmVzb3VyY2VTdXBwcmVzc2lvbnNCeVBhdGgoc3RhY2ssICcvVGVzdFN0YWNrL0RhdGFMb2FkZXIvU3RhdGVNYWNoaW5lRXhlY3V0aW9uUHJvdmlkZXInLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1MMScsXG4gICAgcmVhc29uOiAnQ3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIExhbWJkYSBydW50aW1lIHZlcnNpb24gaXMgbWFuYWdlZCBhdCBkZXBsb3ltZW50IHRpbWUnLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIGN1c3RvbSByZXNvdXJjZSBwcm92aWRlciBJQU0gd2FybmluZ3Ncbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9uc0J5UGF0aChzdGFjaywgJy9UZXN0U3RhY2svRGF0YUxvYWRlci9TdGF0ZU1hY2hpbmVFeGVjdXRpb25Qcm92aWRlci9mcmFtZXdvcmstb25FdmVudC9TZXJ2aWNlUm9sZScsIFtcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTQnLFxuICAgIHJlYXNvbjogJ0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSBpcyB0aGUgc3RhbmRhcmQgbWluaW1hbCBwb2xpY3kgZm9yIExhbWJkYSBleGVjdXRpb24nLFxuICAgIGFwcGxpZXNUbzogWydQb2xpY3k6OmFybjo8QVdTOjpQYXJ0aXRpb24+OmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlJ10sXG4gIH0sXG5dKTtcblxuLy8gU3VwcHJlc3MgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVyIHBvbGljeSB3YXJuaW5nc1xuTmFnU3VwcHJlc3Npb25zLmFkZFJlc291cmNlU3VwcHJlc3Npb25zQnlQYXRoKHN0YWNrLCAnL1Rlc3RTdGFjay9EYXRhTG9hZGVyL1N0YXRlTWFjaGluZUV4ZWN1dGlvblByb3ZpZGVyL2ZyYW1ld29yay1vbkV2ZW50L1NlcnZpY2VSb2xlL0RlZmF1bHRQb2xpY3knLCBbXG4gIHtcbiAgICBpZDogJ0F3c1NvbHV0aW9ucy1JQU01JyxcbiAgICByZWFzb246ICdDdXN0b20gcmVzb3VyY2UgbmVlZHMgU3RlcCBGdW5jdGlvbnMgZXhlY3V0aW9uIHBlcm1pc3Npb25zJyxcbiAgICBhcHBsaWVzVG86IFsnUmVzb3VyY2U6OjxEYXRhTG9hZGVyU3RhdGVNYWNoaW5lRXhlY3V0aW9uVHJpZ2dlcjk0MTk5RTAwLkFybj46KiddLFxuICB9LFxuXSk7XG5cbi8vIFN1cHByZXNzIGJ1Y2tldCBkZXBsb3ltZW50IHdhcm5pbmdzIGlmIHByZXNlbnRcbk5hZ1N1cHByZXNzaW9ucy5hZGRSZXNvdXJjZVN1cHByZXNzaW9ucyhzdGFjaywgW1xuICB7XG4gICAgaWQ6ICdBd3NTb2x1dGlvbnMtSUFNNCcsXG4gICAgcmVhc29uOiAnQ0RLIG1hbmFnZWQgYnVja2V0IGRlcGxveW1lbnQgcmVzb3VyY2VzIHVzZSBBV1MgbWFuYWdlZCBwb2xpY2llcycsXG4gICAgYXBwbGllc1RvOiBbJ1BvbGljeTo6YXJuOjxBV1M6OlBhcnRpdGlvbj46aWFtOjphd3M6cG9saWN5L3NlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGUnXSxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUlBTTUnLFxuICAgIHJlYXNvbjogJ0J1Y2tldCBkZXBsb3ltZW50IHJlcXVpcmVzIHdpbGRjYXJkIHBlcm1pc3Npb25zIGZvciBTMyBvcGVyYXRpb25zJyxcbiAgICBhcHBsaWVzVG86IFsnUmVzb3VyY2U6OionXSxcbiAgfSxcbiAge1xuICAgIGlkOiAnQXdzU29sdXRpb25zLUwxJyxcbiAgICByZWFzb246ICdDREsgbWFuYWdlZCBidWNrZXQgZGVwbG95bWVudCBMYW1iZGEgcnVudGltZSBpcyBtYW5hZ2VkIGJ5IENESycsXG4gIH0sXG5dLCB0cnVlKTtcblxuLy8gQXBwbHkgQ0RLIE5hZyBjaGVja3NcbkFzcGVjdHMub2YoYXBwKS5hZGQobmV3IEF3c1NvbHV0aW9uc0NoZWNrcyh7IHZlcmJvc2U6IHRydWUgfSkpO1xuXG4vLyBTeW50aGVzaXplIHRoZSBzdGFja1xuVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcblxuLy8gQ2hlY2sgZm9yIHVuc3VwcHJlc3NlZCB3YXJuaW5ncyBhbmQgZXJyb3JzXG5jb25zdCB3YXJuaW5ncyA9IEFubm90YXRpb25zLmZyb21TdGFjayhzdGFjaykuZmluZFdhcm5pbmcoJyonLCBNYXRjaC5zdHJpbmdMaWtlUmVnZXhwKCdBd3NTb2x1dGlvbnMtLionKSk7XG5jb25zdCBlcnJvcnMgPSBBbm5vdGF0aW9ucy5mcm9tU3RhY2soc3RhY2spLmZpbmRFcnJvcignKicsIE1hdGNoLnN0cmluZ0xpa2VSZWdleHAoJ0F3c1NvbHV0aW9ucy0uKicpKTtcblxuLy8gVGVzdDogRGF0YUxvYWRlciBjb25zdHJ1Y3QgaXMgcHJvcGVybHkgY3JlYXRlZFxudGVzdCgnRGF0YUxvYWRlciBjb25zdHJ1Y3QgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHknLCAoKSA9PiB7XG4gIGV4cGVjdChkYXRhTG9hZGVyKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZGF0YUxvYWRlci5ub2RlLmlkKS50b0JlKCdEYXRhTG9hZGVyJyk7XG4gIGV4cGVjdChkYXRhTG9hZGVyLmJ1Y2tldCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGRhdGFMb2FkZXIuc3RhdGVNYWNoaW5lKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QoZGF0YUxvYWRlci5wcm9jZXNzb3JGdW5jdGlvbikudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGRhdGFMb2FkZXIuY3VzdG9tUmVzb3VyY2VQcm92aWRlcikudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGRhdGFMb2FkZXIuZXhlY3V0aW9uVHJpZ2dlcikudG9CZURlZmluZWQoKTtcbn0pO1xuXG4vLyBUZXN0OiBEYXRhTG9hZGVyIGhhcyBleHBlY3RlZCBwcm9wZXJ0aWVzXG50ZXN0KCdEYXRhTG9hZGVyIGhhcyBleHBlY3RlZCBwcm9wZXJ0aWVzJywgKCkgPT4ge1xuICBleHBlY3QoZGF0YUxvYWRlci5idWNrZXQuYnVja2V0TmFtZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGRhdGFMb2FkZXIuc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybikudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGRhdGFMb2FkZXIucHJvY2Vzc29yRnVuY3Rpb24uZnVuY3Rpb25Bcm4pLnRvQmVEZWZpbmVkKCk7XG59KTtcblxuLy8gVGVzdDogVGVtcGxhdGUgY29udGFpbnMgZXhwZWN0ZWQgRGF0YUxvYWRlciByZXNvdXJjZXNcbnRlc3QoJ1RlbXBsYXRlIGNvbnRhaW5zIGV4cGVjdGVkIERhdGFMb2FkZXIgcmVzb3VyY2VzJywgKCkgPT4ge1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgLy8gVmVyaWZ5IFMzIGJ1Y2tldCBleGlzdHMgd2l0aCBlbmNyeXB0aW9uXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpTMzo6QnVja2V0Jywge1xuICAgIEJ1Y2tldEVuY3J5cHRpb246IHtcbiAgICAgIFNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ6IHtcbiAgICAgICAgICAgIFNTRUFsZ29yaXRobTogJ0FFUzI1NicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb246IHtcbiAgICAgIEJsb2NrUHVibGljQWNsczogdHJ1ZSxcbiAgICAgIEJsb2NrUHVibGljUG9saWN5OiB0cnVlLFxuICAgICAgSWdub3JlUHVibGljQWNsczogdHJ1ZSxcbiAgICAgIFJlc3RyaWN0UHVibGljQnVja2V0czogdHJ1ZSxcbiAgICB9LFxuICB9KTtcblxuICAvLyBWZXJpZnkgTGFtYmRhIGZ1bmN0aW9uIGV4aXN0cyB3aXRoIFZQQyBjb25maWd1cmF0aW9uXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJywge1xuICAgIFJ1bnRpbWU6ICdweXRob24zLjEzJyxcbiAgICBWcGNDb25maWc6IHtcbiAgICAgIFNlY3VyaXR5R3JvdXBJZHM6IE1hdGNoLmFueVZhbHVlKCksXG4gICAgICBTdWJuZXRJZHM6IE1hdGNoLmFueVZhbHVlKCksXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gVmVyaWZ5IFN0ZXAgRnVuY3Rpb25zIHN0YXRlIG1hY2hpbmUgZXhpc3RzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnLCB7XG4gICAgRGVmaW5pdGlvblN0cmluZzogTWF0Y2guYW55VmFsdWUoKSxcbiAgfSk7XG5cbiAgLy8gVmVyaWZ5IEF1cm9yYSBjbHVzdGVyIGV4aXN0cyB3aXRoIGVuY3J5cHRpb25cbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKCdBV1M6OlJEUzo6REJDbHVzdGVyJywge1xuICAgIEVuZ2luZTogJ2F1cm9yYS1wb3N0Z3Jlc3FsJyxcbiAgICBTdG9yYWdlRW5jcnlwdGVkOiB0cnVlLFxuICB9KTtcblxuICAvLyBWZXJpZnkgY3VzdG9tIHJlc291cmNlIGV4aXN0c1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJywge1xuICAgIFNlcnZpY2VUb2tlbjogTWF0Y2guYW55VmFsdWUoKSxcbiAgfSk7XG59KTtcblxuLy8gVGVzdDogU2VjdXJpdHkgY29uZmlndXJhdGlvbnMgYXJlIHByb3Blcmx5IGFwcGxpZWRcbnRlc3QoJ1NlY3VyaXR5IGNvbmZpZ3VyYXRpb25zIGFyZSBwcm9wZXJseSBhcHBsaWVkJywgKCkgPT4ge1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG5cbiAgLy8gVmVyaWZ5IEtNUyBrZXkgZXhpc3RzIHdpdGggcm90YXRpb24gZW5hYmxlZFxuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6S01TOjpLZXknLCB7XG4gICAgRW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBWUEMgRmxvdyBMb2dzIGV4aXN0XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpFQzI6OkZsb3dMb2cnLCB7XG4gICAgUmVzb3VyY2VUeXBlOiAnVlBDJyxcbiAgICBUcmFmZmljVHlwZTogJ0FMTCcsXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0IGV4aXN0cyB3aXRoIEtNUyBlbmNyeXB0aW9uXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpTZWNyZXRzTWFuYWdlcjo6U2VjcmV0Jywge1xuICAgIEttc0tleUlkOiBNYXRjaC5hbnlWYWx1ZSgpLFxuICB9KTtcblxuICAvLyBWZXJpZnkgc2VjdXJpdHkgZ3JvdXAgZXhpc3RzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLCB7XG4gICAgR3JvdXBEZXNjcmlwdGlvbjogJ1NlY3VyaXR5IGdyb3VwIGZvciBEYXRhTG9hZGVyIGRhdGFiYXNlIGFjY2VzcycsXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBMYW1iZGEgc2VjdXJpdHkgZ3JvdXAgZXhpc3RzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLCB7XG4gICAgR3JvdXBEZXNjcmlwdGlvbjogJ1NlY3VyaXR5IGdyb3VwIGZvciBEYXRhTG9hZGVyIHByb2Nlc3NvciBMYW1iZGEgZnVuY3Rpb24nLFxuICB9KTtcbn0pO1xuXG4vLyBUZXN0OiBJQU0gcGVybWlzc2lvbnMgYXJlIHByb3Blcmx5IGNvbmZpZ3VyZWRcbnRlc3QoJ0lBTSBwZXJtaXNzaW9ucyBhcmUgcHJvcGVybHkgY29uZmlndXJlZCcsICgpID0+IHtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuXG4gIC8vIFZlcmlmeSBMYW1iZGEgZXhlY3V0aW9uIHJvbGUgZXhpc3RzXG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcygnQVdTOjpJQU06OlJvbGUnLCB7XG4gICAgQXNzdW1lUm9sZVBvbGljeURvY3VtZW50OiB7XG4gICAgICBTdGF0ZW1lbnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIEFjdGlvbjogJ3N0czpBc3N1bWVSb2xlJyxcbiAgICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgICAgUHJpbmNpcGFsOiB7XG4gICAgICAgICAgICBTZXJ2aWNlOiAnbGFtYmRhLmFtYXpvbmF3cy5jb20nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIFZlcmlmeSBTdGVwIEZ1bmN0aW9ucyByb2xlIGV4aXN0c1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6SUFNOjpSb2xlJywge1xuICAgIEFzc3VtZVJvbGVQb2xpY3lEb2N1bWVudDoge1xuICAgICAgU3RhdGVtZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBBY3Rpb246ICdzdHM6QXNzdW1lUm9sZScsXG4gICAgICAgICAgRWZmZWN0OiAnQWxsb3cnLFxuICAgICAgICAgIFByaW5jaXBhbDoge1xuICAgICAgICAgICAgU2VydmljZTogJ3N0YXRlcy5hbWF6b25hd3MuY29tJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9KTtcbn0pO1xuXG4vLyBUZXN0OiBObyB1bnN1cHByZXNzZWQgd2FybmluZ3NcbnRlc3QoJ05vIHVuc3VwcHJlc3NlZCB3YXJuaW5ncycsICgpID0+IHtcbiAgaWYgKHdhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICBjb25zb2xlLmxvZygnQ0RLIE5hZyBXYXJuaW5nczonLCBKU09OLnN0cmluZ2lmeSh3YXJuaW5ncywgbnVsbCwgMikpO1xuICB9XG4gIGV4cGVjdCh3YXJuaW5ncykudG9IYXZlTGVuZ3RoKDApO1xufSk7XG5cbi8vIFRlc3Q6IE5vIHVuc3VwcHJlc3NlZCBlcnJvcnNcbnRlc3QoJ05vIHVuc3VwcHJlc3NlZCBlcnJvcnMnLCAoKSA9PiB7XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGNvbnNvbGUubG9nKCdDREsgTmFnIEVycm9yczonLCBKU09OLnN0cmluZ2lmeShlcnJvcnMsIG51bGwsIDIpKTtcbiAgfVxuICBleHBlY3QoZXJyb3JzKS50b0hhdmVMZW5ndGgoMCk7XG59KTtcbiJdfQ==