@cdklabs/cdk-appmod-catalog-blueprints 1.16.0 → 1.17.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 (66) hide show
  1. package/.jsii +992 -168
  2. package/lib/document-processing/adapter/queued-s3-adapter.js +1 -1
  3. package/lib/document-processing/agentic-document-processing.js +1 -1
  4. package/lib/document-processing/base-document-processing.js +1 -1
  5. package/lib/document-processing/bedrock-document-processing.d.ts +1 -0
  6. package/lib/document-processing/bedrock-document-processing.js +10 -6
  7. package/lib/document-processing/default-document-processing-config.js +1 -1
  8. package/lib/document-processing/index.d.ts +2 -0
  9. package/lib/document-processing/index.js +3 -1
  10. package/lib/document-processing/localstack-agentic-document-processing.d.ts +20 -0
  11. package/lib/document-processing/localstack-agentic-document-processing.js +66 -0
  12. package/lib/document-processing/localstack-bedrock-document-processing.d.ts +16 -0
  13. package/lib/document-processing/localstack-bedrock-document-processing.js +38 -0
  14. package/lib/document-processing/resources/cleanup/handler.py +16 -1
  15. package/lib/document-processing/resources/default-localstack-invoke/index.py +184 -0
  16. package/lib/document-processing/resources/default-localstack-invoke/provider_runtime.py +251 -0
  17. package/lib/document-processing/resources/default-localstack-invoke/requirements.txt +5 -0
  18. package/lib/document-processing/resources/default-sqs-consumer/index.py +17 -2
  19. package/lib/document-processing/resources/pdf-chunking/handler.py +16 -1
  20. package/lib/document-processing/tests/localstack-agentic-document-processing.test.d.ts +1 -0
  21. package/lib/document-processing/tests/localstack-agentic-document-processing.test.js +78 -0
  22. package/lib/document-processing/tests/localstack-document-processing.test.d.ts +1 -0
  23. package/lib/document-processing/tests/localstack-document-processing.test.js +116 -0
  24. package/lib/framework/agents/base-agent.js +1 -1
  25. package/lib/framework/agents/batch-agent.d.ts +1 -0
  26. package/lib/framework/agents/batch-agent.js +7 -4
  27. package/lib/framework/agents/default-agent-config.js +1 -1
  28. package/lib/framework/agents/index.d.ts +1 -0
  29. package/lib/framework/agents/index.js +2 -1
  30. package/lib/framework/agents/interactive-agent.js +88 -11
  31. package/lib/framework/agents/knowledge-base/base-knowledge-base.js +1 -1
  32. package/lib/framework/agents/knowledge-base/bedrock-knowledge-base.js +1 -1
  33. package/lib/framework/agents/localstack-batch-agent.d.ts +15 -0
  34. package/lib/framework/agents/localstack-batch-agent.js +33 -0
  35. package/lib/framework/agents/resources/default-ollama-agent/batch.py +396 -0
  36. package/lib/framework/agents/resources/default-ollama-agent/models.py +7 -0
  37. package/lib/framework/agents/resources/default-ollama-agent/requirements.txt +9 -0
  38. package/lib/framework/agents/resources/default-ollama-agent/runtime_support.py +237 -0
  39. package/lib/framework/agents/resources/default-ollama-agent/utils.py +77 -0
  40. package/lib/framework/bedrock/bedrock.d.ts +9 -0
  41. package/lib/framework/bedrock/bedrock.js +20 -10
  42. package/lib/framework/custom-resource/default-runtimes.js +1 -1
  43. package/lib/framework/foundation/access-log.js +1 -1
  44. package/lib/framework/foundation/eventbridge-broker.js +1 -1
  45. package/lib/framework/foundation/network.d.ts +1 -1
  46. package/lib/framework/foundation/network.js +8 -3
  47. package/lib/framework/index.d.ts +1 -0
  48. package/lib/framework/index.js +2 -1
  49. package/lib/framework/localstack/index.d.ts +1 -0
  50. package/lib/framework/localstack/index.js +18 -0
  51. package/lib/framework/localstack/localstack-config.d.ts +79 -0
  52. package/lib/framework/localstack/localstack-config.js +49 -0
  53. package/lib/framework/tests/localstack-batch-agent.test.d.ts +1 -0
  54. package/lib/framework/tests/localstack-batch-agent.test.js +67 -0
  55. package/lib/tsconfig.tsbuildinfo +1 -1
  56. package/lib/utilities/data-loader.js +1 -1
  57. package/lib/utilities/lambda-iam-utils.js +1 -1
  58. package/lib/utilities/observability/cloudfront-distribution-observability-property-injector.js +1 -1
  59. package/lib/utilities/observability/cloudwatch-transaction-search.js +1 -1
  60. package/lib/utilities/observability/default-observability-config.js +1 -1
  61. package/lib/utilities/observability/lambda-observability-property-injector.js +1 -1
  62. package/lib/utilities/observability/log-group-data-protection-utils.js +1 -1
  63. package/lib/utilities/observability/powertools-config.js +1 -1
  64. package/lib/utilities/observability/state-machine-observability-property-injector.js +1 -1
  65. package/lib/webapp/frontend-construct.js +1 -1
  66. package/package.json +1 -1
@@ -240,5 +240,5 @@ class QueuedS3Adapter {
240
240
  }
241
241
  exports.QueuedS3Adapter = QueuedS3Adapter;
242
242
  _a = JSII_RTTI_SYMBOL_1;
243
- QueuedS3Adapter[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.QueuedS3Adapter", version: "1.16.0" };
243
+ QueuedS3Adapter[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.QueuedS3Adapter", version: "1.17.0" };
244
244
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVkLXMzLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi91c2UtY2FzZXMvZG9jdW1lbnQtcHJvY2Vzc2luZy9hZGFwdGVyL3F1ZXVlZC1zMy1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUV0QyxrQ0FBa0M7QUFDbEMsOEVBQWtFO0FBQ2xFLDZDQUFzRDtBQUN0RCxpREFBcUU7QUFDckUsaURBQXNHO0FBQ3RHLGlEQUEwQztBQUUxQyxtRkFBc0U7QUFDdEUsK0NBQXlFO0FBQ3pFLDJFQUFrRTtBQUNsRSxpREFBNkQ7QUFDN0QscUVBQThFO0FBQzlFLGlGQUFxRTtBQUlyRSwrQ0FBa0Q7QUFDbEQsK0NBQStGO0FBQy9GLDhGQUF3RjtBQTREeEY7OztHQUdHO0FBQ0gsTUFBYSxlQUFlO0lBSzFCLFlBQVksZUFBcUMsRUFBRTtRQUNqRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO1lBQzlELFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztZQUNoRixNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUM7U0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGVBQWUsQ0FBQyxNQUEwQixFQUFFLFlBQW9CO1FBQ3RFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7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QUMsU0FBUyxJQUFJLENBQUM7WUFDdkMsVUFBVSxFQUFFLDRCQUFRLENBQUMsT0FBTztTQUM3QixDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7QUFqUUgsMENBa1FDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBQeXRob25GdW5jdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtcHl0aG9uLWFscGhhJztcbmltcG9ydCB7IER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBFZmZlY3QsIFBvbGljeURvY3VtZW50LCBQb2xpY3lTdGF0ZW1lbnQsIFJvbGUsIFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEtleSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHsgRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFNxc0V2ZW50U291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ldmVudC1zb3VyY2VzJztcbmltcG9ydCB7IEJ1Y2tldCwgQnVja2V0RW5jcnlwdGlvbiwgRXZlbnRUeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IFNxc0Rlc3RpbmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLW5vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHsgUXVldWUsIFF1ZXVlRW5jcnlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zcXMnO1xuaW1wb3J0IHsgQ2hhaW4sIEpzb25QYXRoLCBTdGF0ZU1hY2hpbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBDYWxsQXdzU2VydmljZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQmFzZURvY3VtZW50UHJvY2Vzc2luZ1Byb3BzIH0gZnJvbSAnLi4vYmFzZS1kb2N1bWVudC1wcm9jZXNzaW5nJztcbmltcG9ydCB7IElBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVyJztcbmltcG9ydCB7IERlZmF1bHRSdW50aW1lcyB9IGZyb20gJy4uLy4uL2ZyYW1ld29yayc7XG5pbXBvcnQgeyBEZWZhdWx0T2JzZXJ2YWJpbGl0eUNvbmZpZywgTGFtYmRhSWFtVXRpbHMsIFBvd2VydG9vbHNDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGVmYXVsdERvY3VtZW50UHJvY2Vzc2luZ0NvbmZpZyB9IGZyb20gJy4uL2RlZmF1bHQtZG9jdW1lbnQtcHJvY2Vzc2luZy1jb25maWcnO1xuXG4vKipcbiAqIFN0cnVjdCBmb3IgUzMgUHJlZml4ZXNcbiAqL1xuaW50ZXJmYWNlIFMzUHJlZml4ZXMge1xuICByZWFkb25seSByYXc6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvY2Vzc2VkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZhaWxlZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgUXVldWVkIFMzIEFkYXB0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZWRTM0FkYXB0ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBTMyBidWNrZXQgZm9yIGRvY3VtZW50IHN0b3JhZ2Ugd2l0aCBvcmdhbml6ZWQgcHJlZml4ZXMgKHJhdy8sIHByb2Nlc3NlZC8sIGZhaWxlZC8pLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGEgbmV3IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBhdXRvLWRlbGV0ZSBlbmFibGVkIGJhc2VkIG9uIHJlbW92YWxQb2xpY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0IGNyZWF0ZSBhIG5ldyBidWNrZXRcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldD86IEJ1Y2tldDtcblxuICAvKipcbiAgICogUzMgcHJlZml4IHdoZXJlIHRoZSByYXcgZmlsZXMgd291bGQgYmUgc3RvcmVkLlxuICAgKiBUaGlzIHNlcnZlcyBhcyB0aGUgdHJpZ2dlciBwb2ludCBmb3IgcHJvY2Vzc2luZ1xuICAgKlxuICAgKiBAZGVmYXVsdCBcInJhdy9cIlxuICAgKi9cbiAgcmVhZG9ubHkgcmF3UHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTMyBwcmVmaXggd2hlcmUgdGhlIHByb2Nlc3NlZCBmaWxlcyB3b3VsZCBiZSBzdG9yZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwicHJvY2Vzc2VkL1wiXG4gICAqL1xuICByZWFkb25seSBwcm9jZXNzZWRQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFMzIHByZWZpeCB3aGVyZSB0aGUgZmlsZXMgdGhhdCBmYWlsZWQgcHJvY2Vzc2luZyB3b3VsZCBiZSBzdG9yZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwiZmFpbGVkL1wiXG4gICAqL1xuICByZWFkb25seSBmYWlsZWRQcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNRUyBxdWV1ZSB2aXNpYmlsaXR5IHRpbWVvdXQgZm9yIHByb2Nlc3NpbmcgbWVzc2FnZXMuXG4gICAqIFNob3VsZCBiZSBsb25nZXIgdGhhbiBleHBlY3RlZCBwcm9jZXNzaW5nIHRpbWUgdG8gcHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZy5cbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzMDApXG4gICAqL1xuICByZWFkb25seSBxdWV1ZVZpc2liaWxpdHlUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGltZXMgYSBtZXNzYWdlIGNhbiBiZSB1bnN1Y2Nlc3NmdWxseSBkZXF1ZXVlZCBiZWZvcmUgYmVpbmcgbW92ZWQgdG8gdGhlIGRlYWQtbGV0dGVyIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCA1XG4gICAqL1xuICByZWFkb25seSBkbHFNYXhSZWNlaXZlQ291bnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhpcyBhZGFwdGVyIGFsbG93cyB0aGUgaW50ZWxsaWdlbnQgZG9jdW1lbnQgcHJvY2Vzc2luZyB3b3JrZmxvd1xuICogdG8gYmUgdHJpZ2dlcmVkIGJ5IGZpbGVzIHRoYXQgYXJlIHVwbG9hZGVkIGludG8gYSBTMyBCdWNrZXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZWRTM0FkYXB0ZXIgaW1wbGVtZW50cyBJQWRhcHRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlclByb3BzOiBRdWV1ZWRTM0FkYXB0ZXJQcm9wcztcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJlZml4ZXM6IFMzUHJlZml4ZXM7XG5cbiAgY29uc3RydWN0b3IoYWRhcHRlclByb3BzOiBRdWV1ZWRTM0FkYXB0ZXJQcm9wcyA9IHt9KSB7XG4gICAgdGhpcy5hZGFwdGVyUHJvcHMgPSBhZGFwdGVyUHJvcHM7XG4gICAgdGhpcy5yZXNvdXJjZXMgPSB7fTtcbiAgICB0aGlzLnByZWZpeGVzID0ge1xuICAgICAgcmF3OiB0aGlzLm5vcm1hbGl6ZVByZWZpeCh0aGlzLmFkYXB0ZXJQcm9wcy5yYXdQcmVmaXgsICdyYXcvJyksXG4gICAgICBwcm9jZXNzZWQ6IHRoaXMubm9ybWFsaXplUHJlZml4KHRoaXMuYWRhcHRlclByb3BzLnByb2Nlc3NlZFByZWZpeCwgJ3Byb2Nlc3NlZC8nKSxcbiAgICAgIGZhaWxlZDogdGhpcy5ub3JtYWxpemVQcmVmaXgodGhpcy5hZGFwdGVyUHJvcHMuZmFpbGVkUHJlZml4LCAnZmFpbGVkLycpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyBhIHByZWZpeCBlbmRzIHdpdGggJy8nLlxuICAgKiBAcGFyYW0gcHJlZml4IC0gVGhlIHByZWZpeCB0byBub3JtYWxpemVcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIERlZmF1bHQgdmFsdWUgaWYgcHJlZml4IGlzIHVuZGVmaW5lZFxuICAgKiBAcmV0dXJucyBUaGUgbm9ybWFsaXplZCBwcmVmaXggZW5kaW5nIHdpdGggJy8nXG4gICAqL1xuICBwcml2YXRlIG5vcm1hbGl6ZVByZWZpeChwcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCwgZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChwcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHByZWZpeC5lbmRzV2l0aCgnLycpID8gcHJlZml4IDogYCR7cHJlZml4fS9gO1xuICB9XG5cbiAgaW5pdChzY29wZTogQ29uc3RydWN0LCBwcm9wczogQmFzZURvY3VtZW50UHJvY2Vzc2luZ1Byb3BzKTogdm9pZCB7XG4gICAgaWYgKHByb3BzLm5ldHdvcmspIHtcbiAgICAgIHByb3BzLm5ldHdvcmsuY3JlYXRlU2VydmljZUVuZHBvaW50KCd2cGNlLXNxcycsIEludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5TUVMpO1xuICAgICAgcHJvcHMubmV0d29yay5jcmVhdGVTZXJ2aWNlRW5kcG9pbnQoJ3ZwY2UtczMnLCBJbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuUzMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVuY3J5cHRpb25LZXkgPSBwcm9wcy5lbmNyeXB0aW9uS2V5IHx8IG5ldyBLZXkoc2NvcGUsICdRdWV1ZWRTM0FkYXB0ZXJFbmNyeXB0aW9uS2V5Jywge1xuICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBwcm9wcy5yZW1vdmFsUG9saWN5IHx8IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICB9KTtcblxuICAgIHRoaXMucmVzb3VyY2VzLmVuY3J5cHRpb25LZXkgPSBlbmNyeXB0aW9uS2V5O1xuXG4gICAgY29uc3QgYnVja2V0ID0gdGhpcy5hZGFwdGVyUHJvcHMuYnVja2V0IHx8IG5ldyBCdWNrZXQoc2NvcGUsICdEb2N1bWVudFByb2Nlc3NpbmdCdWNrZXQnLCB7XG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogKHByb3BzLnJlbW92YWxQb2xpY3kgJiYgcHJvcHMucmVtb3ZhbFBvbGljeSA9PT0gUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKSB8fCAhcHJvcHMucmVtb3ZhbFBvbGljeSA/IHRydWUgOiBmYWxzZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgZW5jcnlwdGlvbjogQnVja2V0RW5jcnlwdGlvbi5LTVMsIC8vIFVzZXMgQVdTLW1hbmFnZWQgS01TIGtleSBmb3IgZW5jcnlwdGlvbiBhdCByZXN0XG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgYnVja2V0S2V5RW5hYmxlZDogdHJ1ZSwgLy8gUmVkdWNlcyBLTVMgY29zdHMgYnkgdXNpbmcgUzMgQnVja2V0IEtleXNcbiAgICB9KTtcblxuICAgIHRoaXMucmVzb3VyY2VzLmJ1Y2tldCA9IGJ1Y2tldDtcblxuICAgIGNvbnN0IGRlYWRMZXR0ZXJRdWV1ZSA9IG5ldyBRdWV1ZShzY29wZSwgJ0RvY3VtZW50UHJvY2Vzc2luZ0RMUScsIHtcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiB0aGlzLmFkYXB0ZXJQcm9wcy5xdWV1ZVZpc2liaWxpdHlUaW1lb3V0IHx8IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIGVuY3J5cHRpb246IFF1ZXVlRW5jcnlwdGlvbi5LTVMsXG4gICAgICBlbmNyeXB0aW9uTWFzdGVyS2V5OiBlbmNyeXB0aW9uS2V5LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcXVldWUgPSBuZXcgUXVldWUoc2NvcGUsICdEb2N1bWVudFByb2Nlc3NpbmdRdWV1ZScsIHtcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiB0aGlzLmFkYXB0ZXJQcm9wcy5xdWV1ZVZpc2liaWxpdHlUaW1lb3V0IHx8IER1cmF0aW9uLnNlY29uZHMoMzAwKSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIGRlYWRMZXR0ZXJRdWV1ZToge1xuICAgICAgICBtYXhSZWNlaXZlQ291bnQ6IHRoaXMuYWRhcHRlclByb3BzLmRscU1heFJlY2VpdmVDb3VudCB8fCA1LFxuICAgICAgICBxdWV1ZTogZGVhZExldHRlclF1ZXVlLFxuICAgICAgfSxcbiAgICAgIGVuY3J5cHRpb246IFF1ZXVlRW5jcnlwdGlvbi5LTVMsXG4gICAgICBlbmNyeXB0aW9uTWFzdGVyS2V5OiBlbmNyeXB0aW9uS2V5LFxuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNvdXJjZXMuZGVhZExldHRlclF1ZXVlID0gZGVhZExldHRlclF1ZXVlO1xuICAgIHRoaXMucmVzb3VyY2VzLnF1ZXVlID0gcXVldWU7XG4gIH1cblxuICBjcmVhdGVJbmdyZXNzVHJpZ2dlcihzY29wZTogQ29uc3RydWN0LCBzdGF0ZU1hY2hpbmU6IFN0YXRlTWFjaGluZSwgcHJvcHM6IEJhc2VEb2N1bWVudFByb2Nlc3NpbmdQcm9wcyk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGNvbnN0IGJ1Y2tldDogQnVja2V0ID0gdGhpcy5yZXNvdXJjZXMuYnVja2V0O1xuICAgIGNvbnN0IHF1ZXVlOiBRdWV1ZSA9IHRoaXMucmVzb3VyY2VzLnF1ZXVlO1xuICAgIGNvbnN0IGVuY3J5cHRpb25LZXk6IEtleSA9IHRoaXMucmVzb3VyY2VzLmVuY3J5cHRpb25LZXk7XG5cbiAgICBidWNrZXQuYWRkRXZlbnROb3RpZmljYXRpb24oRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVELCBuZXcgU3FzRGVzdGluYXRpb24ocXVldWUpLCB7XG4gICAgICBwcmVmaXg6IHRoaXMucHJlZml4ZXMucmF3LFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3FzQ29uc3VtZXJMYW1iZGFGbiA9IHRoaXMuY3JlYXRlU1FTQ29uc3VtZXJMYW1iZGEoc2NvcGUsIHN0YXRlTWFjaGluZSwgcHJvcHMsIGVuY3J5cHRpb25LZXksIHF1ZXVlKTtcblxuICAgIHRoaXMucmVzb3VyY2VzLnNxc0NvbnN1bWVyTGFtYmRhRnVuY3Rpb24gPSBzcXNDb25zdW1lckxhbWJkYUZuO1xuXG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTUVNDb25zdW1lckxhbWJkYShzY29wZTogQ29uc3RydWN0LCBzdGF0ZU1hY2hpbmU6IFN0YXRlTWFjaGluZVxuICAgICwgcHJvcHM6IEJhc2VEb2N1bWVudFByb2Nlc3NpbmdQcm9wcywgZW5jcnlwdGlvbktleTogS2V5LCBxdWV1ZTogUXVldWUpOiBGdW5jdGlvbiB7XG4gICAgY29uc3QgbWV0cmljTmFtZXNwYWNlID0gcHJvcHMubWV0cmljTmFtZXNwYWNlIHx8IERlZmF1bHRPYnNlcnZhYmlsaXR5Q29uZmlnLkRFRkFVTFRfTUVUUklDX05BTUVTUEFDRTtcbiAgICBjb25zdCBtZXRyaWNTZXJ2aWNlTmFtZSA9IHByb3BzLm1ldHJpY1NlcnZpY2VOYW1lIHx8IERlZmF1bHREb2N1bWVudFByb2Nlc3NpbmdDb25maWcuREVGQVVMVF9PQlNFUlZBQklMSVRZX01FVFJJQ19TVkNfTkFNRTtcblxuICAgIGNvbnN0IHsgcmVnaW9uLCBhY2NvdW50IH0gPSBMYW1iZGFJYW1VdGlscy5nZXRTdGFja0luZm8oc2NvcGUpO1xuICAgIC8vIENyZWF0ZSBsb2dzIHBlcm1pc3Npb25zIGFuZCBnZXQgdW5pcXVlIGZ1bmN0aW9uIG5hbWVcbiAgICBjb25zdCBsb2dzUGVybWlzc2lvbnMgPSBMYW1iZGFJYW1VdGlscy5jcmVhdGVMb2dzUGVybWlzc2lvbnMoe1xuICAgICAgc2NvcGUsXG4gICAgICBmdW5jdGlvbk5hbWU6ICdTUVNDb25zdW1lcicsXG4gICAgICByZWdpb24sXG4gICAgICBhY2NvdW50LFxuICAgICAgZW5hYmxlT2JzZXJ2YWJpbGl0eTogcHJvcHMuZW5hYmxlT2JzZXJ2YWJpbGl0eSxcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBwb2xpY3kgc3RhdGVtZW50cyBmb3IgU1FTIGNvbnN1bWVyIExhbWJkYVxuICAgIGNvbnN0IHBvbGljeVN0YXRlbWVudHMgPSBbXG4gICAgICAuLi5sb2dzUGVybWlzc2lvbnMucG9saWN5U3RhdGVtZW50cyxcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogWydzdGF0ZXM6U3RhcnRFeGVjdXRpb24nXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybl0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgaWYgKHByb3BzLm5ldHdvcmspIHtcbiAgICAgIHBvbGljeVN0YXRlbWVudHMucHVzaChMYW1iZGFJYW1VdGlscy5nZW5lcmF0ZUxhbWJkYVZQQ1Blcm1pc3Npb25zKCkpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBJQU0gcm9sZSBmb3IgU1FTIGNvbnN1bWVyIExhbWJkYVxuICAgIGNvbnN0IHNxc0NvbnN1bWVyUm9sZSA9IG5ldyBSb2xlKHNjb3BlLCAnU1FTQ29uc3VtZXJSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIFNRU0NvbnN1bWVyRXhlY3V0aW9uUG9saWN5OiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IHBvbGljeVN0YXRlbWVudHMsXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGVuY3J5cHRpb25LZXkuZ3JhbnRFbmNyeXB0RGVjcnlwdChzcXNDb25zdW1lclJvbGUpO1xuXG4gICAgLy8gQ3JlYXRlIFNRUyBjb25zdW1lciBMYW1iZGEgZnVuY3Rpb25cbiAgICBjb25zdCBzcXNDb25zdW1lckxhbWJkYSA9IG5ldyBQeXRob25GdW5jdGlvbihzY29wZSwgJ1NRU0NvbnN1bWVyJywge1xuICAgICAgZnVuY3Rpb25OYW1lOiBsb2dzUGVybWlzc2lvbnMudW5pcXVlRnVuY3Rpb25OYW1lLFxuICAgICAgcnVudGltZTogRGVmYXVsdFJ1bnRpbWVzLlBZVEhPTixcbiAgICAgIHJvbGU6IHNxc0NvbnN1bWVyUm9sZSxcbiAgICAgIGVudHJ5OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLy4uL3Jlc291cmNlcy9kZWZhdWx0LXNxcy1jb25zdW1lcicpLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgU1RBVEVfTUFDSElORV9BUk46IHN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgICAgIFJBV19QUkVGSVg6IHRoaXMucHJlZml4ZXMucmF3LFxuICAgICAgICAuLi5Qb3dlcnRvb2xzQ29uZmlnLmdlbmVyYXRlRGVmYXVsdExhbWJkYUNvbmZpZyhwcm9wcy5lbmFibGVPYnNlcnZhYmlsaXR5LCBtZXRyaWNOYW1lc3BhY2UsIG1ldHJpY1NlcnZpY2VOYW1lKSxcbiAgICAgIH0sXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgZGVzY3JpcHRpb246ICdDb25zdW1lcyBTUVMgbWVzc2FnZXMgYW5kIHRyaWdnZXJzIFN0ZXAgRnVuY3Rpb25zIGV4ZWN1dGlvbnMgZm9yIGRvY3VtZW50IHByb2Nlc3NpbmcnLFxuICAgICAgZW52aXJvbm1lbnRFbmNyeXB0aW9uOiBlbmNyeXB0aW9uS2V5LFxuICAgICAgdnBjOiBwcm9wcy5uZXR3b3JrID8gcHJvcHMubmV0d29yay52cGMgOiB1bmRlZmluZWQsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy5uZXR3b3JrID8gcHJvcHMubmV0d29yay5hcHBsaWNhdGlvblN1Ym5ldFNlbGVjdGlvbigpIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIFNRUyBldmVudCBzb3VyY2UgdG8gTGFtYmRhXG4gICAgc3FzQ29uc3VtZXJMYW1iZGEuYWRkRXZlbnRTb3VyY2UoXG4gICAgICBuZXcgU3FzRXZlbnRTb3VyY2UocXVldWUsIHtcbiAgICAgICAgYmF0Y2hTaXplOiAxMCxcbiAgICAgICAgbWF4QmF0Y2hpbmdXaW5kb3c6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIHJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiBzcXNDb25zdW1lckxhbWJkYTtcbiAgfVxuXG4gIGdlbmVyYXRlQWRhcHRlcklBTVBvbGljaWVzKGFkZGl0aW9uYWxJQU1BY3Rpb25zPzogc3RyaW5nW10sIG5hcnJvd0FjdGlvbnM/OiBib29sZWFuKTogUG9saWN5U3RhdGVtZW50W10ge1xuICAgIGNvbnN0IGJ1Y2tldDogQnVja2V0ID0gdGhpcy5yZXNvdXJjZXMuYnVja2V0O1xuXG4gICAgY29uc3Qgbm9ybWFsaXplZElBTUFjdGlvbnMgPSBhZGRpdGlvbmFsSUFNQWN0aW9ucyB8fCBbXTtcblxuICAgIGNvbnN0IHN0YXRlbWVudHMgPSBbXTtcbiAgICBpZiAoIW5hcnJvd0FjdGlvbnMpIHtcbiAgICAgIHN0YXRlbWVudHMucHVzaChuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0JywgJ3MzOkNvcHlPYmplY3QnLCAnczM6RGVsZXRlT2JqZWN0JywgJ3MzOlB1dE9iamVjdCcsICdzMzpMaXN0KicsIC4uLm5vcm1hbGl6ZWRJQU1BY3Rpb25zXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7YnVja2V0LmJ1Y2tldEFybn0vKmAsIGJ1Y2tldC5idWNrZXRBcm5dLFxuICAgICAgfSkpO1xuXG4gICAgICBpZiAoYnVja2V0LmVuY3J5cHRpb25LZXkpIHtcbiAgICAgICAgc3RhdGVtZW50cy5wdXNoKG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdrbXM6RW5jcnlwdCcsXG4gICAgICAgICAgICAna21zOlJlRW5jcnlwdConLFxuICAgICAgICAgICAgJ2ttczpHZW5lcmF0ZURhdGFLZXkqJyxcbiAgICAgICAgICAgICdrbXM6RGVjcnlwdCcsXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtidWNrZXQuZW5jcnlwdGlvbktleS5rZXlBcm5dLFxuICAgICAgICB9KSk7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGVtZW50cy5wdXNoKG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgYWN0aW9uczogbm9ybWFsaXplZElBTUFjdGlvbnMsXG4gICAgICAgIHJlc291cmNlczogW2Ake2J1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50cztcbiAgfVxuXG4gIGNyZWF0ZUZhaWxlZENoYWluKHNjb3BlOiBDb25zdHJ1Y3QsIGlkUHJlZml4Pzogc3RyaW5nKTogQ2hhaW4ge1xuICAgIGNvbnN0IGJ1Y2tldDogQnVja2V0ID0gdGhpcy5yZXNvdXJjZXMuYnVja2V0O1xuICAgIGNvbnN0IHByZWZpeCA9IGlkUHJlZml4ID8gYCR7aWRQcmVmaXh9LWAgOiAnJztcblxuICAgIGNvbnN0IGZhaWxlZENoYWluID0gbmV3IENhbGxBd3NTZXJ2aWNlKHNjb3BlLCBgJHtwcmVmaXh9Q29weVRvRmFpbGVkYCwge1xuICAgICAgc2VydmljZTogJ3MzJyxcbiAgICAgIGFjdGlvbjogJ2NvcHlPYmplY3QnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBCdWNrZXQ6IEpzb25QYXRoLnN0cmluZ0F0KCckLmNvbnRlbnQuYnVja2V0JyksXG4gICAgICAgIENvcHlTb3VyY2U6IEpzb25QYXRoLmZvcm1hdCgne30ve30nLCBKc29uUGF0aC5zdHJpbmdBdCgnJC5jb250ZW50LmJ1Y2tldCcpLCBKc29uUGF0aC5zdHJpbmdBdCgnJC5jb250ZW50LmtleScpKSxcbiAgICAgICAgS2V5OiBKc29uUGF0aC5mb3JtYXQoYCR7dGhpcy5wcmVmaXhlcy5mYWlsZWR9e30ve31gLCBKc29uUGF0aC5zdHJpbmdBdCgnJC5kb2N1bWVudElkJyksIEpzb25QYXRoLnN0cmluZ0F0KCckLmNvbnRlbnQuZmlsZW5hbWUnKSksXG4gICAgICB9LFxuICAgICAgaWFtUmVzb3VyY2VzOiBbYCR7YnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICB9KS5uZXh0KFxuICAgICAgbmV3IENhbGxBd3NTZXJ2aWNlKHNjb3BlLCBgJHtwcmVmaXh9RGVsZXRlRnJvbVJhd2AsIHtcbiAgICAgICAgc2VydmljZTogJ3MzJyxcbiAgICAgICAgYWN0aW9uOiAnZGVsZXRlT2JqZWN0JyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEJ1Y2tldDogSnNvblBhdGguc3RyaW5nQXQoJyQuY29udGVudC5idWNrZXQnKSxcbiAgICAgICAgICBLZXk6IEpzb25QYXRoLnN0cmluZ0F0KCckLmNvbnRlbnQua2V5JyksXG4gICAgICAgIH0sXG4gICAgICAgIGlhbVJlc291cmNlczogW2Ake2J1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gZmFpbGVkQ2hhaW47XG4gIH1cblxuICBjcmVhdGVTdWNjZXNzQ2hhaW4oc2NvcGU6IENvbnN0cnVjdCwgaWRQcmVmaXg/OiBzdHJpbmcpOiBDaGFpbiB7XG4gICAgY29uc3QgYnVja2V0OiBCdWNrZXQgPSB0aGlzLnJlc291cmNlcy5idWNrZXQ7XG4gICAgY29uc3QgcHJlZml4ID0gaWRQcmVmaXggPyBgJHtpZFByZWZpeH0tYCA6ICcnO1xuXG4gICAgY29uc3QgY2hhaW4gPSBuZXcgQ2FsbEF3c1NlcnZpY2Uoc2NvcGUsIGAke3ByZWZpeH1Db3B5VG9Qcm9jZXNzZWRgLCB7XG4gICAgICBzZXJ2aWNlOiAnczMnLFxuICAgICAgYWN0aW9uOiAnY29weU9iamVjdCcsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIEJ1Y2tldDogSnNvblBhdGguc3RyaW5nQXQoJyQuY29udGVudC5idWNrZXQnKSxcbiAgICAgICAgQ29weVNvdXJjZTogSnNvblBhdGguZm9ybWF0KCd7fS97fScsIEpzb25QYXRoLnN0cmluZ0F0KCckLmNvbnRlbnQuYnVja2V0JyksIEpzb25QYXRoLnN0cmluZ0F0KCckLmNvbnRlbnQua2V5JykpLFxuICAgICAgICBLZXk6IEpzb25QYXRoLmZvcm1hdChgJHt0aGlzLnByZWZpeGVzLnByb2Nlc3NlZH17fS97fWAsIEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSwgSnNvblBhdGguc3RyaW5nQXQoJyQuY29udGVudC5maWxlbmFtZScpKSxcbiAgICAgIH0sXG4gICAgICBpYW1SZXNvdXJjZXM6IFtgJHtidWNrZXQuYnVja2V0QXJufS8qYF0sXG4gICAgICByZXN1bHRQYXRoOiBKc29uUGF0aC5ESVNDQVJELFxuICAgIH0pLm5leHQoXG4gICAgICBuZXcgQ2FsbEF3c1NlcnZpY2Uoc2NvcGUsIGAke3ByZWZpeH1EZWxldGVGcm9tUmF3U3VjY2Vzc2AsIHtcbiAgICAgICAgc2VydmljZTogJ3MzJyxcbiAgICAgICAgYWN0aW9uOiAnZGVsZXRlT2JqZWN0JyxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIEJ1Y2tldDogSnNvblBhdGguc3RyaW5nQXQoJyQuY29udGVudC5idWNrZXQnKSxcbiAgICAgICAgICBLZXk6IEpzb25QYXRoLnN0cmluZ0F0KCckLmNvbnRlbnQua2V5JyksXG4gICAgICAgIH0sXG4gICAgICAgIGlhbVJlc291cmNlczogW2Ake2J1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gY2hhaW47XG4gIH1cbn0iXX0=
@@ -39,5 +39,5 @@ class AgenticDocumentProcessing extends bedrock_document_processing_1.BedrockDoc
39
39
  }
40
40
  exports.AgenticDocumentProcessing = AgenticDocumentProcessing;
41
41
  _a = JSII_RTTI_SYMBOL_1;
42
- AgenticDocumentProcessing[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.AgenticDocumentProcessing", version: "1.16.0" };
42
+ AgenticDocumentProcessing[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.AgenticDocumentProcessing", version: "1.17.0" };
43
43
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRpYy1kb2N1bWVudC1wcm9jZXNzaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXNlLWNhc2VzL2RvY3VtZW50LXByb2Nlc3NpbmcvYWdlbnRpYy1kb2N1bWVudC1wcm9jZXNzaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUZBQW1FO0FBR25FLCtFQUEwRztBQUMxRyw0Q0FBMkQ7QUFXM0QsTUFBYSx5QkFBMEIsU0FBUSx1REFBeUI7SUFNdEUsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRVMsY0FBYztRQUN0Qiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsOEJBQWdFLENBQUM7WUFDekYsTUFBTSxvQkFBb0IsR0FBRyxVQUFVLENBQUMseUJBQXlCLENBQUM7WUFDbEUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHNCQUFVLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBRS9FLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ2pGLEtBQUssTUFBTSxTQUFTLElBQUksdUJBQXVCLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsQ0FBQztRQUNILENBQUM7UUFFRCx1R0FBdUc7UUFDdkcsSUFBSSxJQUFJLENBQUMsNkJBQTZCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsdUVBQXVFO1FBQ3ZFLE1BQU0sTUFBTSxHQUFHLGtCQUFrQixJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUVyQyxPQUFPLElBQUksc0NBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3BDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWM7WUFDL0MsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxjQUFjLEVBQUU7Z0JBQ2QsVUFBVSxFQUFFLGtCQUFrQjthQUMvQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdkNILDhEQXdDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbWJkYUludm9rZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgRG9jdW1lbnRQcm9jZXNzaW5nU3RlcFR5cGUgfSBmcm9tICcuL2Jhc2UtZG9jdW1lbnQtcHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBCZWRyb2NrRG9jdW1lbnRQcm9jZXNzaW5nLCBCZWRyb2NrRG9jdW1lbnRQcm9jZXNzaW5nUHJvcHMgfSBmcm9tICcuL2JlZHJvY2stZG9jdW1lbnQtcHJvY2Vzc2luZyc7XG5pbXBvcnQgeyBCYXRjaEFnZW50LCBCYXRjaEFnZW50UHJvcHMgfSBmcm9tICcuLi9mcmFtZXdvcmsnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdlbnRpY0RvY3VtZW50UHJvY2Vzc2luZ1Byb3BzIGV4dGVuZHMgQmVkcm9ja0RvY3VtZW50UHJvY2Vzc2luZ1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoaXMgcGFyYW1ldGVyIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGVcbiAgICogYHByb2Nlc3NpbmdCZWRyb2NrTW9kZWxgIHBhcmFtZXRlci5cbiAgICovXG4gIHJlYWRvbmx5IHByb2Nlc3NpbmdBZ2VudFBhcmFtZXRlcnM6IEJhdGNoQWdlbnRQcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIEFnZW50aWNEb2N1bWVudFByb2Nlc3NpbmcgZXh0ZW5kcyBCZWRyb2NrRG9jdW1lbnRQcm9jZXNzaW5nIHtcbiAgLyoqIENhY2hlZCBiYXRjaCBhZ2VudCB0byBhdm9pZCBkdXBsaWNhdGUgcmVzb3VyY2UgY3JlYXRpb24gKi9cbiAgcHJpdmF0ZSBfYmF0Y2hBZ2VudD86IEJhdGNoQWdlbnQ7XG4gIC8qKiBDb3VudGVyIGZvciBnZW5lcmF0aW5nIHVuaXF1ZSBwcm9jZXNzaW5nIHN0ZXAgSURzICovXG4gIHByaXZhdGUgX2FnZW50aWNQcm9jZXNzaW5nU3RlcENvdW50ZXI/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFnZW50aWNEb2N1bWVudFByb2Nlc3NpbmdQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByb2Nlc3NpbmdTdGVwKCk6IERvY3VtZW50UHJvY2Vzc2luZ1N0ZXBUeXBlIHtcbiAgICAvLyBDcmVhdGUgQmF0Y2hBZ2VudCBvbmx5IG9uY2VcbiAgICBpZiAoIXRoaXMuX2JhdGNoQWdlbnQpIHtcbiAgICAgIGNvbnN0IGFnZW50UHJvcHMgPSB0aGlzLmJlZHJvY2tEb2N1bWVudFByb2Nlc3NpbmdQcm9wcyBhcyBBZ2VudGljRG9jdW1lbnRQcm9jZXNzaW5nUHJvcHM7XG4gICAgICBjb25zdCBwcm9jZXNzaW5nQWdlbnRQcm9wcyA9IGFnZW50UHJvcHMucHJvY2Vzc2luZ0FnZW50UGFyYW1ldGVycztcbiAgICAgIHRoaXMuX2JhdGNoQWdlbnQgPSBuZXcgQmF0Y2hBZ2VudCh0aGlzLCAnSURQQmF0Y2hBZ2VudCcsIHByb2Nlc3NpbmdBZ2VudFByb3BzKTtcblxuICAgICAgY29uc3QgYWRhcHRlclBvbGljeVN0YXRlbWVudHMgPSB0aGlzLmluZ3Jlc3NBZGFwdGVyLmdlbmVyYXRlQWRhcHRlcklBTVBvbGljaWVzKCk7XG4gICAgICBmb3IgKGNvbnN0IHN0YXRlbWVudCBvZiBhZGFwdGVyUG9saWN5U3RhdGVtZW50cykge1xuICAgICAgICB0aGlzLl9iYXRjaEFnZW50LmFnZW50Um9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgY291bnRlciBpZiBub3QgeWV0IHNldCAoaGFuZGxlcyBjYXNlIHdoZXJlIG1ldGhvZCBpcyBjYWxsZWQgYmVmb3JlIGNvbnN0cnVjdG9yIGNvbXBsZXRlcylcbiAgICBpZiAodGhpcy5fYWdlbnRpY1Byb2Nlc3NpbmdTdGVwQ291bnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9hZ2VudGljUHJvY2Vzc2luZ1N0ZXBDb3VudGVyID0gMDtcbiAgICB9XG5cbiAgICAvLyBBbHdheXMgY3JlYXRlIGEgbmV3IExhbWJkYUludm9rZSB0YXNrIHRvIGFsbG93IHByb3BlciBzdGF0ZSBjaGFpbmluZ1xuICAgIGNvbnN0IHN0ZXBJZCA9IGBQcm9jZXNzaW5nU3RlcC0ke3RoaXMuX2FnZW50aWNQcm9jZXNzaW5nU3RlcENvdW50ZXJ9YDtcbiAgICB0aGlzLl9hZ2VudGljUHJvY2Vzc2luZ1N0ZXBDb3VudGVyKys7XG5cbiAgICByZXR1cm4gbmV3IExhbWJkYUludm9rZSh0aGlzLCBzdGVwSWQsIHtcbiAgICAgIGxhbWJkYUZ1bmN0aW9uOiB0aGlzLl9iYXRjaEFnZW50LmFnZW50RnVuY3Rpb24hLFxuICAgICAgcmVzdWx0UGF0aDogJyQucHJvY2Vzc2luZ1Jlc3VsdCcsXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICAncmVzdWx0LiQnOiAnJC5QYXlsb2FkLnJlc3VsdCcsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59Il19
@@ -377,5 +377,5 @@ class BaseDocumentProcessing extends constructs_1.Construct {
377
377
  }
378
378
  exports.BaseDocumentProcessing = BaseDocumentProcessing;
379
379
  _a = JSII_RTTI_SYMBOL_1;
380
- BaseDocumentProcessing[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing", version: "1.16.0" };
380
+ BaseDocumentProcessing[_a] = { fqn: "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing", version: "1.17.0" };
381
381
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1kb2N1bWVudC1wcm9jZXNzaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXNlLWNhc2VzL2RvY3VtZW50LXByb2Nlc3NpbmcvYmFzZS1kb2N1bWVudC1wcm9jZXNzaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUV0Qyw2Q0FBeUU7QUFFekUsMkRBQThGO0FBQzlGLGlEQUFxRTtBQUNyRSxpREFBc0c7QUFDdEcsaURBQTBDO0FBQzFDLHFFQUEySTtBQUMzSSxpRkFBMks7QUFDM0ssMkNBQXVDO0FBQ3ZDLHVDQUFzRDtBQUN0RCw2RkFBdUY7QUFHdkYsNENBQXdGO0FBQ3hGLDBHQUFxRztBQUNyRyw4SEFBd0g7QUFFeEgsNElBQXFJO0FBNkRySTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBc0Isc0JBQXVCLFNBQVEsc0JBQVM7SUFnQjVEOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBa0M7UUFDMUUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksSUFBSSx5QkFBZSxFQUFFLENBQUM7UUFFcEUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsd0NBQThCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDL0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsd0NBQThCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0YsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDOUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIs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Q2pHLHlCQUF5QixFQUFFO2dCQUN6QixZQUFZLEVBQUUsOENBQW9CLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RSx1QkFBdUIsRUFBRSw4Q0FBb0IsQ0FBQyxVQUFVLENBQUMsNEJBQVEsQ0FBQyxZQUFZLENBQUMsNEJBQVEsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO2FBQzdIO1lBQ0QsVUFBVSxFQUFFLDRCQUFRLENBQUMsT0FBTztTQUM3QixDQUFDLENBQ0g7YUFDQSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFekIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDOztBQWhiSCx3REF5ZEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IER1cmF0aW9uLCBQcm9wZXJ0eUluamVjdG9ycywgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElNZXRyaWMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVUeXBlLCBCaWxsaW5nTW9kZSwgVGFibGUsIFRhYmxlRW5jcnlwdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBJbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IEVmZmVjdCwgUG9saWN5RG9jdW1lbnQsIFBvbGljeVN0YXRlbWVudCwgUm9sZSwgU2VydmljZVByaW5jaXBhbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBDdXN0b21lck1hbmFnZWRFbmNyeXB0aW9uQ29uZmlndXJhdGlvbiwgRGVmaW5pdGlvbkJvZHksIElDaGFpbmFibGUsIEpzb25QYXRoLCBTdGF0ZU1hY2hpbmUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgeyBCZWRyb2NrSW52b2tlTW9kZWwsIER5bmFtb0F0dHJpYnV0ZVZhbHVlLCBEeW5hbW9QdXRJdGVtLCBEeW5hbW9VcGRhdGVJdGVtLCBMYW1iZGFJbnZva2UsIFN0ZXBGdW5jdGlvbnNTdGFydEV4ZWN1dGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUFkYXB0ZXIsIFF1ZXVlZFMzQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlcic7XG5pbXBvcnQgeyBEZWZhdWx0RG9jdW1lbnRQcm9jZXNzaW5nQ29uZmlnIH0gZnJvbSAnLi9kZWZhdWx0LWRvY3VtZW50LXByb2Nlc3NpbmctY29uZmlnJztcbmltcG9ydCB7IE5ldHdvcmsgfSBmcm9tICcuLi9mcmFtZXdvcmsnO1xuaW1wb3J0IHsgRXZlbnRicmlkZ2VCcm9rZXIgfSBmcm9tICcuLi9mcmFtZXdvcmsvZm91bmRhdGlvbi9ldmVudGJyaWRnZS1icm9rZXInO1xuaW1wb3J0IHsgTG9nR3JvdXBEYXRhUHJvdGVjdGlvblByb3BzLCBMb2dHcm91cERhdGFQcm90ZWN0aW9uVXRpbHMgfSBmcm9tICcuLi91dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGVmYXVsdE9ic2VydmFiaWxpdHlDb25maWcgfSBmcm9tICcuLi91dGlsaXRpZXMvb2JzZXJ2YWJpbGl0eS9kZWZhdWx0LW9ic2VydmFiaWxpdHktY29uZmlnJztcbmltcG9ydCB7IExhbWJkYU9ic2VydmFiaWxpdHlQcm9wZXJ0eUluamVjdG9yIH0gZnJvbSAnLi4vdXRpbGl0aWVzL29ic2VydmFiaWxpdHkvbGFtYmRhLW9ic2VydmFiaWxpdHktcHJvcGVydHktaW5qZWN0b3InO1xuaW1wb3J0IHsgSU9ic2VydmFibGUsIE9ic2VydmFibGVQcm9wcyB9IGZyb20gJy4uL3V0aWxpdGllcy9vYnNlcnZhYmlsaXR5L29ic2VydmFibGUnO1xuaW1wb3J0IHsgU3RhdGVNYWNoaW5lT2JzZXJ2YWJpbGl0eVByb3BlcnR5SW5qZWN0b3IgfSBmcm9tICcuLi91dGlsaXRpZXMvb2JzZXJ2YWJpbGl0eS9zdGF0ZS1tYWNoaW5lLW9ic2VydmFiaWxpdHktcHJvcGVydHktaW5qZWN0b3InO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgQmFzZURvY3VtZW50UHJvY2Vzc2luZyBjb25zdHJ1Y3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURvY3VtZW50UHJvY2Vzc2luZ1Byb3BzIGV4dGVuZHMgT2JzZXJ2YWJsZVByb3BzIHtcblxuICAvKipcbiAgICogQWRhcHRlciB0aGF0IGRlZmluZXMgaG93IHRoZSBkb2N1bWVudCBwcm9jZXNzaW5nIHdvcmtmbG93IGlzIHRyaWdnZXJlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBRdWV1ZWRTM0FkYXB0ZXJcbiAgICovXG4gIHJlYWRvbmx5IGluZ3Jlc3NBZGFwdGVyPzogSUFkYXB0ZXI7XG5cbiAgLyoqXG4gICAqIER5bmFtb0RCIHRhYmxlIGZvciBzdG9yaW5nIGRvY3VtZW50IHByb2Nlc3NpbmcgbWV0YWRhdGEgYW5kIHdvcmtmbG93IHN0YXRlLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGEgbmV3IHRhYmxlIHdpbGwgYmUgY3JlYXRlZCB3aXRoIERvY3VtZW50SWQgYXMgcGFydGl0aW9uIGtleS5cbiAgICovXG4gIHJlYWRvbmx5IGRvY3VtZW50UHJvY2Vzc2luZ1RhYmxlPzogVGFibGU7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gZXhlY3V0aW9uIHRpbWUgZm9yIHRoZSBTdGVwIEZ1bmN0aW9ucyB3b3JrZmxvdy5cbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtmbG93VGltZW91dD86IER1cmF0aW9uO1xuICAvKipcbiAgICogUmVtb3ZhbCBwb2xpY3kgZm9yIGNyZWF0ZWQgcmVzb3VyY2VzIChidWNrZXQsIHRhYmxlLCBxdWV1ZSkuXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBFdmVudEJyaWRnZSBicm9rZXIgZm9yIHB1Ymxpc2hpbmcgY3VzdG9tIGV2ZW50cyBkdXJpbmcgcHJvY2Vzc2luZy5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBubyBjdXN0b20gZXZlbnRzIHdpbGwgYmUgc2VudCBvdXQuXG4gICAqL1xuICByZWFkb25seSBldmVudGJyaWRnZUJyb2tlcj86IEV2ZW50YnJpZGdlQnJva2VyO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgbG9nZ2luZyBhbmQgdHJhY2luZyBmb3IgYWxsIHN1cHBvcnRpbmcgcmVzb3VyY2VcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU9ic2VydmFiaWxpdHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBjYW4gcnVuIGluc2lkZSBhIFZQQyB3aWxsIGZvbGxvdyB0aGUgcHJvdmlkZWQgbmV0d29yayBjb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IHJlc291cmNlcyB3aWxsIHJ1biBvdXRzaWRlIG9mIGEgVlBDXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrPzogTmV0d29yaztcblxuICAvKipcbiAgICogS01TIGtleSB0byBiZSB1c2VkLlxuICAgKiBAZGVmYXVsdCBBIG5ldyBrZXkgd291bGQgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IEtleTtcbn1cblxuLyoqXG4gKiBVbmlvbiB0eXBlIGZvciBTdGVwIEZ1bmN0aW9ucyB0YXNrcyB0aGF0IGNhbiBiZSB1c2VkIGluIGRvY3VtZW50IHByb2Nlc3Npbmcgd29ya2Zsb3dzLlxuICogU3VwcG9ydHMgQmVkcm9jayBtb2RlbCBpbnZvY2F0aW9uLCBMYW1iZGEgZnVuY3Rpb24gaW52b2NhdGlvbiwgYW5kIG5lc3RlZCBTdGVwIEZ1bmN0aW9ucyBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCB0eXBlIERvY3VtZW50UHJvY2Vzc2luZ1N0ZXBUeXBlID0gQmVkcm9ja0ludm9rZU1vZGVsIHwgTGFtYmRhSW52b2tlIHwgU3RlcEZ1bmN0aW9uc1N0YXJ0RXhlY3V0aW9uO1xuXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHNlcnZlcmxlc3MgZG9jdW1lbnQgcHJvY2Vzc2luZyB3b3JrZmxvd3MuXG4gKlxuICogUHJvdmlkZXMgYSBjb21wbGV0ZSBkb2N1bWVudCBwcm9jZXNzaW5nIHBpcGVsaW5lIHdpdGg6XG4gKiAtICoqUzMgU3RvcmFnZSoqOiBPcmdhbml6ZWQgd2l0aCBwcmVmaXhlcyAocmF3LywgcHJvY2Vzc2VkLywgZmFpbGVkLykgZm9yIGRvY3VtZW50IGxpZmVjeWNsZSBtYW5hZ2VtZW50XG4gKiAtICoqU1FTIFF1ZXVlKio6IFJlbGlhYmxlIG1lc3NhZ2UgcHJvY2Vzc2luZyB3aXRoIGNvbmZpZ3VyYWJsZSB2aXNpYmlsaXR5IHRpbWVvdXQgYW5kIGRlYWQgbGV0dGVyIHF1ZXVlXG4gKiAtICoqRHluYW1vREIgVGFibGUqKjogV29ya2Zsb3cgbWV0YWRhdGEgdHJhY2tpbmcgd2l0aCBEb2N1bWVudElkIGFzIHBhcnRpdGlvbiBrZXlcbiAqIC0gKipTdGVwIEZ1bmN0aW9ucyoqOiBPcmNoZXN0cmF0ZWQgd29ya2Zsb3cgd2l0aCBhdXRvbWF0aWMgZmlsZSBtb3ZlbWVudCBiYXNlZCBvbiBwcm9jZXNzaW5nIG91dGNvbWVcbiAqIC0gKipBdXRvLXRyaWdnZXJpbmcqKjogUzMgZXZlbnQgbm90aWZpY2F0aW9ucyBhdXRvbWF0aWNhbGx5IHN0YXJ0IHByb2Nlc3Npbmcgd2hlbiBmaWxlcyBhcmUgdXBsb2FkZWQgdG8gcmF3LyBwcmVmaXhcbiAqIC0gKipFcnJvciBIYW5kbGluZyoqOiBGYWlsZWQgZG9jdW1lbnRzIGFyZSBtb3ZlZCB0byBmYWlsZWQvIHByZWZpeCB3aXRoIGVycm9yIGRldGFpbHMgc3RvcmVkIGluIER5bmFtb0RCXG4gKiAtICoqRXZlbnRCcmlkZ2UgSW50ZWdyYXRpb24qKjogT3B0aW9uYWwgY3VzdG9tIGV2ZW50IHB1Ymxpc2hpbmcgZm9yIHdvcmtmbG93IHN0YXRlIGNoYW5nZXNcbiAqXG4gKiAjIyBBcmNoaXRlY3R1cmUgRmxvd1xuICogUzMgVXBsb2FkIChyYXcvKSDihpIgU1FTIOKGkiBMYW1iZGEgQ29uc3VtZXIg4oaSIFN0ZXAgRnVuY3Rpb25zIOKGkiBQcm9jZXNzaW5nIFN0ZXBzIOKGkiBTMyAocHJvY2Vzc2VkL2ZhaWxlZC8pXG4gKlxuICogIyMgSW1wbGVtZW50YXRpb24gUmVxdWlyZW1lbnRzXG4gKiBTdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IGZvdXIgYWJzdHJhY3QgbWV0aG9kcyB0byBkZWZpbmUgdGhlIHByb2Nlc3Npbmcgd29ya2Zsb3c6XG4gKiAtIGBjbGFzc2lmaWNhdGlvblN0ZXAoKWA6IERvY3VtZW50IHR5cGUgY2xhc3NpZmljYXRpb25cbiAqIC0gYGV4dHJhY3Rpb25TdGVwKClgOiBEYXRhIGV4dHJhY3Rpb24gZnJvbSBkb2N1bWVudHNcbiAqIC0gYGVucmljaG1lbnRTdGVwKClgOiBPcHRpb25hbCBkYXRhIGVucmljaG1lbnQgKHJldHVybiB1bmRlZmluZWQgdG8gc2tpcClcbiAqIC0gYHBvc3RQcm9jZXNzaW5nU3RlcCgpYDogT3B0aW9uYWwgcG9zdC1wcm9jZXNzaW5nIChyZXR1cm4gdW5kZWZpbmVkIHRvIHNraXApXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRG9jdW1lbnRQcm9jZXNzaW5nIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSU9ic2VydmFibGUge1xuICAvKiogQnVzaW5lc3MgbWV0cmljIHNlcnZpY2UgbmFtZS4gVGhpcyBpcyBwYXJ0IG9mIHRoZSBpbml0aWFsIHNlcnZpY2UgZGltZW5zaW9uICovXG4gIHJlYWRvbmx5IG1ldHJpY1NlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIC8qKiBCdXNpbmVzcyBtZXRyaWMgbmFtZXNwYWNlLiAqL1xuICByZWFkb25seSBtZXRyaWNOYW1lc3BhY2U6IHN0cmluZztcbiAgLyoqIGxvZyBncm91cCBkYXRhIHByb3RlY3Rpb24gY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBsb2dHcm91cERhdGFQcm90ZWN0aW9uOiBMb2dHcm91cERhdGFQcm90ZWN0aW9uUHJvcHM7XG4gIC8qKiBEeW5hbW9EQiB0YWJsZSBmb3Igc3RvcmluZyBkb2N1bWVudCBwcm9jZXNzaW5nIG1ldGFkYXRhIGFuZCB3b3JrZmxvdyBzdGF0ZSAqL1xuICByZWFkb25seSBkb2N1bWVudFByb2Nlc3NpbmdUYWJsZTogVGFibGU7XG4gIC8qKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBkb2N1bWVudCBwcm9jZXNzaW5nIHBpcGVsaW5lICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IEJhc2VEb2N1bWVudFByb2Nlc3NpbmdQcm9wcztcbiAgLyoqIEtNUyBrZXkgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleTogS2V5O1xuICAvKiogSW5ncmVzcyBhZGFwdGVyLCByZXNwb25zaWJsZSBmb3IgdHJpZ2dlcmluZyB3b3JrZmxvdyAqL1xuICByZWFkb25seSBpbmdyZXNzQWRhcHRlcjogSUFkYXB0ZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQmFzZURvY3VtZW50UHJvY2Vzc2luZyBjb25zdHJ1Y3QuXG4gICAqXG4gICAqIEluaXRpYWxpemVzIHRoZSBjb21wbGV0ZSBkb2N1bWVudCBwcm9jZXNzaW5nIGluZnJhc3RydWN0dXJlIGluY2x1ZGluZyBTMyBidWNrZXQsXG4gICAqIFNRUyBxdWV1ZSwgRHluYW1vREIgdGFibGUsIGFuZCBzZXRzIHVwIFMzIGV2ZW50IG5vdGlmaWNhdGlvbnMgdG8gdHJpZ2dlciBwcm9jZXNzaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHNjb3BlLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBkb2N1bWVudCBwcm9jZXNzaW5nIHBpcGVsaW5lXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQmFzZURvY3VtZW50UHJvY2Vzc2luZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5pbmdyZXNzQWRhcHRlciA9IHByb3BzLmluZ3Jlc3NBZGFwdGVyIHx8IG5ldyBRdWV1ZWRTM0FkYXB0ZXIoKTtcblxuICAgIGlmIChwcm9wcy5uZXR3b3JrKSB7XG4gICAgICBwcm9wcy5uZXR3b3JrLmNyZWF0ZVNlcnZpY2VFbmRwb2ludCgndnBjZS1zZm4nLCBJbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuU1RFUF9GVU5DVElPTlMpO1xuICAgICAgcHJvcHMubmV0d29yay5jcmVhdGVTZXJ2aWNlRW5kcG9pbnQoJ3ZwY2UtZWInLCBJbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuRVZFTlRCUklER0UpO1xuICAgICAgaWYgKHByb3BzLmVuYWJsZU9ic2VydmFiaWxpdHkpIHtcbiAgICAgICAgcHJvcHMubmV0d29yay5jcmVhdGVTZXJ2aWNlRW5kcG9pbnQoJ3ZwY2UtbG9ncycsIEludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5DTE9VRFdBVENIX0xPR1MpO1xuICAgICAgICBwcm9wcy5uZXR3b3JrLmNyZWF0ZVNlcnZpY2VFbmRwb2ludCgndnBjZS1tZXRyaWNzJywgSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLkNMT1VEV0FUQ0hfTU9OSVRPUklORyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5pbmdyZXNzQWRhcHRlci5pbml0KHRoaXMsIHByb3BzKTtcblxuICAgIHRoaXMuZW5jcnlwdGlvbktleSA9IHByb3BzLmVuY3J5cHRpb25LZXkgfHwgbmV3IEtleSh0aGlzLCAnSURQRW5jcnlwdGlvbktleScsIHtcbiAgICAgIGVuYWJsZUtleVJvdGF0aW9uOiB0cnVlLFxuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMucmVtb3ZhbFBvbGljeSB8fCBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvZ0dyb3VwRGF0YVByb3RlY3Rpb24gPSBMb2dHcm91cERhdGFQcm90ZWN0aW9uVXRpbHMuaGFuZGxlRGVmYXVsdCh0aGlzLCBwcm9wcy5sb2dHcm91cERhdGFQcm90ZWN0aW9uLCBwcm9wcy5yZW1vdmFsUG9saWN5KTtcblxuICAgIHRoaXMuZG9jdW1lbnRQcm9jZXNzaW5nVGFibGUgPSBwcm9wcy5kb2N1bWVudFByb2Nlc3NpbmdUYWJsZSB8fCBuZXcgVGFibGUodGhpcywgJ0RvY3VtZW50UHJvY2Vzc2luZ1RhYmxlJywge1xuICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgIG5hbWU6ICdEb2N1bWVudElkJyxcbiAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICB9LFxuICAgICAgYmlsbGluZ01vZGU6IEJpbGxpbmdNb2RlLlBBWV9QRVJfUkVRVUVTVCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IHByb3BzLnJlbW92YWxQb2xpY3kgfHwgUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgZW5jcnlwdGlvbjogVGFibGVFbmNyeXB0aW9uLkNVU1RPTUVSX01BTkFHRUQsXG4gICAgICBlbmNyeXB0aW9uS2V5OiB0aGlzLmVuY3J5cHRpb25LZXksXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMuZW5hYmxlT2JzZXJ2YWJpbGl0eSkge1xuICAgICAgUHJvcGVydHlJbmplY3RvcnMub2YodGhpcykuYWRkKFxuICAgICAgICBuZXcgU3RhdGVNYWNoaW5lT2JzZXJ2YWJpbGl0eVByb3BlcnR5SW5qZWN0b3IodGhpcy5sb2dHcm91cERhdGFQcm90ZWN0aW9uKSxcbiAgICAgICAgbmV3IExhbWJkYU9ic2VydmFiaWxpdHlQcm9wZXJ0eUluamVjdG9yKHRoaXMubG9nR3JvdXBEYXRhUHJvdGVjdGlvbiksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMubWV0cmljTmFtZXNwYWNlID0gcHJvcHMubWV0cmljTmFtZXNwYWNlIHx8IERlZmF1bHRPYnNlcnZhYmlsaXR5Q29uZmlnLkRFRkFVTFRfTUVUUklDX05BTUVTUEFDRTtcbiAgICB0aGlzLm1ldHJpY1NlcnZpY2VOYW1lID0gcHJvcHMubWV0cmljU2VydmljZU5hbWUgfHwgRGVmYXVsdERvY3VtZW50UHJvY2Vzc2luZ0NvbmZpZy5ERUZBVUxUX09CU0VSVkFCSUxJVFlfTUVUUklDX1NWQ19OQU1FO1xuICB9XG5cblxuICBwcm90ZWN0ZWQgaGFuZGxlU3RhdGVNYWNoaW5lQ3JlYXRpb24oc3RhdGVNYWNoaW5lSWQ6IHN0cmluZykge1xuICAgIC8vIENoZWNrIGlmIHByZXByb2Nlc3NpbmcgaXMgbmVlZGVkIChlLmcuLCBmb3IgY2h1bmtpbmcgbGFyZ2UgZG9jdW1lbnRzKVxuICAgIGNvbnN0IHByZXByb2Nlc3NpbmdTdGVwID0gdGhpcy5wcmVwcm9jZXNzaW5nU3RlcCgpO1xuXG4gICAgLy8gSW5pdGlhbGl6ZSBtZXRhZGF0YSBlbnRyeSBpbiBEeW5hbW9EQlxuICAgIC8vIEJhc2UgY2xhc3Mgb25seSBrbm93cyBhYm91dCBjb3JlIGRvY3VtZW50IGZpZWxkc1xuICAgIGNvbnN0IGJhc2VJdGVtOiBSZWNvcmQ8c3RyaW5nLCBEeW5hbW9BdHRyaWJ1dGVWYWx1ZT4gPSB7XG4gICAgICBEb2N1bWVudElkOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSksXG4gICAgICBDb250ZW50VHlwZTogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZyhKc29uUGF0aC5zdHJpbmdBdCgnJC5jb250ZW50VHlwZScpKSxcbiAgICAgIENvbnRlbnQ6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoSnNvblBhdGguanNvblRvU3RyaW5nKEpzb25QYXRoLm9iamVjdEF0KCckLmNvbnRlbnQnKSkpLFxuICAgICAgV29ya2Zsb3dTdGF0dXM6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoJ3BlbmRpbmcnKSxcbiAgICAgIFN0YXRlTWFjaGluZUV4ZWNJZDogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZyhKc29uUGF0aC5zdHJpbmdBdCgnJCQuRXhlY3V0aW9uLklkJykpLFxuICAgIH07XG5cbiAgICAvLyBBbGxvdyBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgdG8gYWRkIHByZXByb2Nlc3Npbmctc3BlY2lmaWMgbWV0YWRhdGFcbiAgICAvLyBUaGlzIGlzIGEgaG9vayBmb3Igc3ViY2xhc3NlcyB0byBleHRlbmQgdGhlIHNjaGVtYSB3aXRob3V0IGJhc2UgY2xhc3Mga25vd2luZyB0aGUgZGV0YWlsc1xuICAgIGNvbnN0IGFkZGl0aW9uYWxNZXRhZGF0YSA9IHRoaXMucHJlcHJvY2Vzc2luZ01ldGFkYXRhKCk7XG4gICAgT2JqZWN0LmFzc2lnbihiYXNlSXRlbSwgYWRkaXRpb25hbE1ldGFkYXRhKTtcblxuICAgIGNvbnN0IGluaXRNZXRhZGF0YUVudHJ5ID0gbmV3IER5bmFtb1B1dEl0ZW0odGhpcywgJ0luaXRNZXRhZGF0YUVudHJ5Jywge1xuICAgICAgdGFibGU6IHRoaXMuZG9jdW1lbnRQcm9jZXNzaW5nVGFibGUsXG4gICAgICBpdGVtOiBiYXNlSXRlbSxcbiAgICAgIHJlc3VsdFBhdGg6IEpzb25QYXRoLkRJU0NBUkQsXG4gICAgfSk7XG5cbiAgICAvLyBCdWlsZCB3b3JrZmxvdzogaWYgcHJlcHJvY2Vzc2luZyBleGlzdHMsIGNoYWluIGl0IGJlZm9yZSB0aGUgbWFpbiB3b3JrZmxvd1xuICAgIGxldCB3b3JrZmxvd0RlZmluaXRpb246IElDaGFpbmFibGU7XG4gICAgaWYgKHByZXByb2Nlc3NpbmdTdGVwKSB7XG4gICAgICAvLyBQcmVwcm9jZXNzaW5nIOKGkiBJbml0TWV0YWRhdGEg4oaSIEN1c3RvbSBQcm9jZXNzaW5nIFdvcmtmbG93XG4gICAgICB3b3JrZmxvd0RlZmluaXRpb24gPSBwcmVwcm9jZXNzaW5nU3RlcFxuICAgICAgICAubmV4dChpbml0TWV0YWRhdGFFbnRyeSlcbiAgICAgICAgLm5leHQodGhpcy5jcmVhdGVQcm9jZXNzaW5nV29ya2Zsb3coKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEluaXRNZXRhZGF0YSDihpIgU3RhbmRhcmQgUHJvY2Vzc2luZyBXb3JrZmxvdyAoYmFja3dhcmQgY29tcGF0aWJsZSlcbiAgICAgIHdvcmtmbG93RGVmaW5pdGlvbiA9IGluaXRNZXRhZGF0YUVudHJ5XG4gICAgICAgIC5uZXh0KHRoaXMuY3JlYXRlU3RhbmRhcmRQcm9jZXNzaW5nV29ya2Zsb3coKSk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZSA9IHRoaXMuY3JlYXRlU3RhdGVNYWNoaW5lUm9sZSgpO1xuICAgIHRoaXMuZW5jcnlwdGlvbktleS5ncmFudEVuY3J5cHREZWNyeXB0KHJvbGUpO1xuXG4gICAgY29uc3Qgc3RhdGVNYWNoaW5lID0gbmV3IFN0YXRlTWFjaGluZSh0aGlzLCBzdGF0ZU1hY2hpbmVJZCwge1xuICAgICAgZGVmaW5pdGlvbkJvZHk6IERlZmluaXRpb25Cb2R5LmZyb21DaGFpbmFibGUod29ya2Zsb3dEZWZpbml0aW9uKSxcbiAgICAgIHRpbWVvdXQ6IHRoaXMucHJvcHMud29ya2Zsb3dUaW1lb3V0IHx8IER1cmF0aW9uLm1pbnV0ZXMoMTUpLFxuICAgICAgcm9sZSxcbiAgICAgIGVuY3J5cHRpb25Db25maWd1cmF0aW9uOiBuZXcgQ3VzdG9tZXJNYW5hZ2VkRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24odGhpcy5lbmNyeXB0aW9uS2V5KSxcbiAgICB9KTtcblxuICAgIHRoaXMuaW5ncmVzc0FkYXB0ZXIuY3JlYXRlSW5ncmVzc1RyaWdnZXIodGhpcywgc3RhdGVNYWNoaW5lLCB0aGlzLnByb3BzKTtcblxuICAgIHJldHVybiBzdGF0ZU1hY2hpbmU7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN0YXRlTWFjaGluZVJvbGUoKTogUm9sZSB7XG4gICAgcmV0dXJuIG5ldyBSb2xlKHRoaXMsICdTdGF0ZU1hY2hpbmVSb2xlJywge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgU2VydmljZVByaW5jaXBhbCgnc3RhdGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIFN0YXRlTWFjaGluZUV4ZWN1dGlvblBvbGljeTogbmV3IFBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICAuLi50aGlzLmluZ3Jlc3NBZGFwdGVyLmdlbmVyYXRlQWRhcHRlcklBTVBvbGljaWVzKCksXG4gICAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnZHluYW1vZGI6UHV0SXRlbScsICdkeW5hbW9kYjpVcGRhdGVJdGVtJ10sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW3RoaXMuZG9jdW1lbnRQcm9jZXNzaW5nVGFibGUudGFibGVBcm5dLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNb3ZlVG9GYWlsZWRDaGFpbihpZFByZWZpeD86IHN0cmluZykge1xuICAgIGNvbnN0IGZhaWxlZENoYWluID0gdGhpcy5pbmdyZXNzQWRhcHRlci5jcmVhdGVGYWlsZWRDaGFpbih0aGlzLCBpZFByZWZpeCk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5ldmVudGJyaWRnZUJyb2tlcikge1xuICAgICAgY29uc3QgZWJDaGFpbiA9IHRoaXMucHJvcHMuZXZlbnRicmlkZ2VCcm9rZXIuc2VuZFZpYVNmbkNoYWluKFxuICAgICAgICAnZG9jdW1lbnQtcHJvY2Vzc2luZy1mYWlsZWQnLFxuICAgICAgICB7XG4gICAgICAgICAgZG9jdW1lbnRJZDogSnNvblBhdGguc3RyaW5nQXQoJyQuZG9jdW1lbnRJZCcpLFxuICAgICAgICAgIGNvbnRlbnRUeXBlOiBKc29uUGF0aC5zdHJpbmdBdCgnJC5jb250ZW50VHlwZScpLFxuICAgICAgICAgIGNvbnRlbnQ6IEpzb25QYXRoLmpzb25Ub1N0cmluZyhKc29uUGF0aC5vYmplY3RBdCgnJC5jb250ZW50JykpLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZmFpbGVkQ2hhaW4ubmV4dChlYkNoYWluKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFpbGVkQ2hhaW47XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1vdmVUb1Byb2Nlc3NlZENoYWluKGlkUHJlZml4Pzogc3RyaW5nKSB7XG4gICAgY29uc3QgcHJvY2Vzc2VkQ2hhaW4gPSB0aGlzLmluZ3Jlc3NBZGFwdGVyLmNyZWF0ZVN1Y2Nlc3NDaGFpbih0aGlzLCBpZFByZWZpeCk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5ldmVudGJyaWRnZUJyb2tlcikge1xuICAgICAgcHJvY2Vzc2VkQ2hhaW4ubmV4dChcbiAgICAgICAgdGhpcy5wcm9wcy5ldmVudGJyaWRnZUJyb2tlci5zZW5kVmlhU2ZuQ2hhaW4oXG4gICAgICAgICAgJ2RvY3VtZW50LXByb2Nlc3NlZC1zdWNjZXNzZnVsJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkb2N1bWVudElkOiBKc29uUGF0aC5zdHJpbmdBdCgnJC5kb2N1bWVudElkJyksXG4gICAgICAgICAgICBjb250ZW50VHlwZTogSnNvblBhdGguc3RyaW5nQXQoJyQuY29udGVudFR5cGUnKSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IEpzb25QYXRoLmpzb25Ub1N0cmluZyhKc29uUGF0aC5vYmplY3RBdCgnJC5jb250ZW50JykpLFxuICAgICAgICAgICAgY2xhc3NpZmljYXRpb246IEpzb25QYXRoLnN0cmluZ0F0KCckLmNsYXNzaWZpY2F0aW9uUmVzdWx0LmRvY3VtZW50Q2xhc3NpZmljYXRpb24nKSxcbiAgICAgICAgICB9LFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkQ2hhaW47XG4gIH1cblxuICBwdWJsaWMgbWV0cmljcygpOiBJTWV0cmljW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBvcHRpb25hbCBwcmVwcm9jZXNzaW5nIHN0ZXAgb2YgdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiBUaGlzIHN0ZXAgcnVucyBCRUZPUkUgSW5pdCBNZXRhZGF0YSBhbmQgY2FuIGJlIHVzZWQgZm9yOlxuICAgKiAtIERvY3VtZW50IGNodW5raW5nIGZvciBsYXJnZSBmaWxlc1xuICAgKiAtIERvY3VtZW50IHZhbGlkYXRpb25cbiAgICogLSBGb3JtYXQgY29udmVyc2lvblxuICAgKiAtIEFueSBvdGhlciBwcmVwcm9jZXNzaW5nIG5lZWRlZCBiZWZvcmUgY2xhc3NpZmljYXRpb25cbiAgICpcbiAgICogQ29uY3JldGUgaW1wbGVtZW50YXRpb25zIGNhbiByZXR1cm4gdW5kZWZpbmVkIHRvIHNraXAgcHJlcHJvY2Vzc2luZyxcbiAgICogbWFpbnRhaW5pbmcgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIHdvcmtmbG93cy5cbiAgICpcbiAgICogQHJldHVybnMgU3RlcCBGdW5jdGlvbnMgdGFzayBmb3IgcHJlcHJvY2Vzc2luZywgb3IgdW5kZWZpbmVkIHRvIHNraXAgdGhpcyBzdGVwXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJlcHJvY2Vzc2luZ1N0ZXAoKTogRG9jdW1lbnRQcm9jZXNzaW5nU3RlcFR5cGUgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEhvb2sgZm9yIGNvbmNyZXRlIGltcGxlbWVudGF0aW9ucyB0byBhZGQgcHJlcHJvY2Vzc2luZy1zcGVjaWZpYyBtZXRhZGF0YSB0byBEeW5hbW9EQi5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyBJbml0TWV0YWRhdGEgY3JlYXRpb24gYW5kIGFsbG93cyBzdWJjbGFzc2VzIHRvIGV4dGVuZFxuICAgKiB0aGUgRHluYW1vREIgc2NoZW1hIHdpdGggdGhlaXIgb3duIGZpZWxkcyB3aXRob3V0IHRoZSBiYXNlIGNsYXNzIGtub3dpbmcgdGhlIGRldGFpbHMuXG4gICAqXG4gICAqIFRoZSBiYXNlIGNsYXNzIHByb3ZpZGVzIHRoZSBjb3JlIGRvY3VtZW50IGZpZWxkcyAoRG9jdW1lbnRJZCwgQ29udGVudFR5cGUsIGV0Yy4pLFxuICAgKiBhbmQgc3ViY2xhc3NlcyBjYW4gYWRkIHRoZWlyIG93biBmaWVsZHMgKGUuZy4sIGNodW5raW5nIG1ldGFkYXRhKSBieSBvdmVycmlkaW5nIHRoaXMgbWV0aG9kLlxuICAgKlxuICAgKiBAcmV0dXJucyBSZWNvcmQgb2YgYWRkaXRpb25hbCBEeW5hbW9EQiBhdHRyaWJ1dGUgdmFsdWVzIHRvIGluY2x1ZGUgaW4gSW5pdE1ldGFkYXRhXG4gICAqIEBkZWZhdWx0IHt9IChubyBhZGRpdGlvbmFsIG1ldGFkYXRhKVxuICAgKi9cbiAgcHJvdGVjdGVkIHByZXByb2Nlc3NpbmdNZXRhZGF0YSgpOiBSZWNvcmQ8c3RyaW5nLCBEeW5hbW9BdHRyaWJ1dGVWYWx1ZT4ge1xuICAgIC8vIERlZmF1bHQ6IG5vIGFkZGl0aW9uYWwgbWV0YWRhdGFcbiAgICAvLyBTdWJjbGFzc2VzIG92ZXJyaWRlIHRoaXMgdG8gYWRkIHRoZWlyIG93biBwcmVwcm9jZXNzaW5nLXNwZWNpZmljIGZpZWxkc1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSBwcm9jZXNzaW5nIHdvcmtmbG93IGFmdGVyIHByZXByb2Nlc3NpbmcgYW5kIGluaXRpYWxpemF0aW9uLlxuICAgKlxuICAgKiBDb25jcmV0ZSBpbXBsZW1lbnRhdGlvbnMgY2FuIGN1c3RvbWl6ZSB0aGlzIHRvIGhhbmRsZSBwcmVwcm9jZXNzaW5nIHJlc3VsdHMuXG4gICAqIEZvciBleGFtcGxlLCBCZWRyb2NrRG9jdW1lbnRQcm9jZXNzaW5nIHVzZXMgdGhpcyB0byBhZGQgY29uZGl0aW9uYWwgYnJhbmNoaW5nXG4gICAqIGZvciBjaHVua2VkIHZzIG5vbi1jaHVua2VkIGRvY3VtZW50cy5cbiAgICpcbiAgICogSW1wbGVtZW50YXRpb25zIGNhbiBjYWxsIGBjcmVhdGVTdGFuZGFyZFByb2Nlc3NpbmdXb3JrZmxvdygpYCB0byByZXVzZSB0aGVcbiAgICogc3RhbmRhcmQgcHJvY2Vzc2luZyBmbG93IChDbGFzc2lmaWNhdGlvbiDihpIgUHJvY2Vzc2luZyDihpIgRW5yaWNobWVudCDihpIgUG9zdFByb2Nlc3NpbmcpLlxuICAgKlxuICAgKiBAcmV0dXJucyBTdGVwIEZ1bmN0aW9ucyBjaGFpbiBmb3IgcHJvY2Vzc2luZyB0aGUgZG9jdW1lbnRcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVQcm9jZXNzaW5nV29ya2Zsb3coKTogSUNoYWluYWJsZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgc3RhbmRhcmQgcHJvY2Vzc2luZyB3b3JrZmxvdyAobm8gcHJlcHJvY2Vzc2luZyBjdXN0b21pemF0aW9uKS5cbiAgICpcbiAgICogVGhpcyBpcyB0aGUgZXhpc3Rpbmcgd29ya2Zsb3c6IENsYXNzaWZpY2F0aW9uIOKGkiBQcm9jZXNzaW5nIOKGkiBFbnJpY2htZW50IOKGkiBQb3N0UHJvY2Vzc2luZ1xuICAgKiBDb25jcmV0ZSBjbGFzc2VzIGNhbiBjYWxsIHRoaXMgbWV0aG9kIHRvIHJldXNlIHRoZSBzdGFuZGFyZCBmbG93IHdoZW4gdGhleSBkb24ndFxuICAgKiBuZWVkIGN1c3RvbSB3b3JrZmxvdyBicmFuY2hpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBpZFByZWZpeCBPcHRpb25hbCBwcmVmaXggZm9yIGNvbnN0cnVjdCBJRHMgdG8gZW5zdXJlIHVuaXF1ZW5lc3Mgd2hlbiBjYWxsZWQgbXVsdGlwbGUgdGltZXNcbiAgICogQHJldHVybnMgU3RlcCBGdW5jdGlvbnMgY2hhaW4gZm9yIHN0YW5kYXJkIHByb2Nlc3NpbmdcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVTdGFuZGFyZFByb2Nlc3NpbmdXb3JrZmxvdyhpZFByZWZpeD86IHN0cmluZyk6IElDaGFpbmFibGUge1xuICAgIGNvbnN0IGNsYXNzaWZpY2F0aW9uU3RlcCA9IHRoaXMuY2xhc3NpZmljYXRpb25TdGVwKCk7XG4gICAgY29uc3QgcHJvY2Vzc2luZ1N0ZXAgPSB0aGlzLnByb2Nlc3NpbmdTdGVwKCk7XG4gICAgY29uc3QgZW5yaWNobWVudFN0ZXAgPSB0aGlzLmVucmljaG1lbnRTdGVwKCk7XG4gICAgY29uc3QgcG9zdFByb2Nlc3NpbmdTdGVwID0gdGhpcy5wb3N0UHJvY2Vzc2luZ1N0ZXAoKTtcblxuICAgIC8vIEZpbGUgbW92ZW1lbnQgb3BlcmF0aW9uc1xuICAgIGNvbnN0IG1vdmVUb0ZhaWxlZCA9IHRoaXMuY3JlYXRlTW92ZVRvRmFpbGVkQ2hhaW4oaWRQcmVmaXgpO1xuICAgIGNvbnN0IG1vdmVUb1Byb2Nlc3NlZCA9IHRoaXMuY3JlYXRlTW92ZVRvUHJvY2Vzc2VkQ2hhaW4oaWRQcmVmaXgpO1xuXG4gICAgY29uc3QgcHJlZml4ID0gaWRQcmVmaXggPyBgJHtpZFByZWZpeH0tYCA6ICcnO1xuXG4gICAgY29uc3QgcHJvY2Vzc2luZ0NoYWluID0gcHJvY2Vzc2luZ1N0ZXBcbiAgICAgIC5hZGRDYXRjaChuZXcgRHluYW1vVXBkYXRlSXRlbSh0aGlzLCBgJHtwcmVmaXh9UHJvY2Vzc2luZ0ZhaWxEREJVcGRhdGVgLCB7XG4gICAgICAgIHRhYmxlOiB0aGlzLmRvY3VtZW50UHJvY2Vzc2luZ1RhYmxlLFxuICAgICAgICBrZXk6IHtcbiAgICAgICAgICBEb2N1bWVudElkOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSksXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZUV4cHJlc3Npb246ICdTRVQgV29ya2Zsb3dTdGF0dXMgPSA6bmV3U3RhdHVzJyxcbiAgICAgICAgZXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgICAgICc6bmV3U3RhdHVzJzogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZygncHJvY2Vzc2luZy1mYWlsdXJlJyksXG4gICAgICAgIH0sXG4gICAgICAgIHJlc3VsdFBhdGg6IEpzb25QYXRoLkRJU0NBUkQsXG4gICAgICB9KS5uZXh0KG1vdmVUb0ZhaWxlZCksIHtcbiAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgIH0pXG4gICAgICAubmV4dChcbiAgICAgICAgbmV3IER5bmFtb1VwZGF0ZUl0ZW0odGhpcywgYCR7cHJlZml4fVByb2Nlc3NpbmdTdWNjZXNzVXBkYXRlYCwge1xuICAgICAgICAgIHRhYmxlOiB0aGlzLmRvY3VtZW50UHJvY2Vzc2luZ1RhYmxlLFxuICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgRG9jdW1lbnRJZDogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZyhKc29uUGF0aC5zdHJpbmdBdCgnJC5kb2N1bWVudElkJykpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdXBkYXRlRXhwcmVzc2lvbjogJ1NFVCBXb3JrZmxvd1N0YXR1cyA9IDpuZXdTdGF0dXMsIFByb2Nlc3NpbmdSZXN1bHQgPSA6cHJvY2Vzc2luZ1Jlc3VsdCcsXG4gICAgICAgICAgZXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgICAgICAgJzpuZXdTdGF0dXMnOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKCdwcm9jZXNzaW5nLWNvbXBsZXRlJyksXG4gICAgICAgICAgICAnOnByb2Nlc3NpbmdSZXN1bHQnOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLmpzb25Ub1N0cmluZyhKc29uUGF0aC5vYmplY3RBdCgnJC5wcm9jZXNzaW5nUmVzdWx0JykpKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3VsdFBhdGg6IEpzb25QYXRoLkRJU0NBUkQsXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIC8vIEJ1aWxkIHRoZSBjb21wbGV0ZSBjaGFpbiBpbmNsdWRpbmcgb3B0aW9uYWwgc3RlcHNcbiAgICBpZiAoZW5yaWNobWVudFN0ZXApIHtcbiAgICAgIGNvbnN0IGVucmljaG1lbnRDaGFpbiA9IGVucmljaG1lbnRTdGVwXG4gICAgICAgIC5hZGRDYXRjaChuZXcgRHluYW1vVXBkYXRlSXRlbSh0aGlzLCBgJHtwcmVmaXh9RW5yaWNobWVudEZhaWxEREJVcGRhdGVgLCB7XG4gICAgICAgICAgdGFibGU6IHRoaXMuZG9jdW1lbnRQcm9jZXNzaW5nVGFibGUsXG4gICAgICAgICAga2V5OiB7XG4gICAgICAgICAgICBEb2N1bWVudElkOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1cGRhdGVFeHByZXNzaW9uOiAnU0VUIFdvcmtmbG93U3RhdHVzID0gOm5ld1N0YXR1cycsXG4gICAgICAgICAgZXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgICAgICAgJzpuZXdTdGF0dXMnOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKCdlbnJpY2htZW50LWZhaWx1cmUnKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3VsdFBhdGg6IEpzb25QYXRoLkRJU0NBUkQsXG4gICAgICAgIH0pLm5leHQobW92ZVRvRmFpbGVkKSwge1xuICAgICAgICAgIHJlc3VsdFBhdGg6IEpzb25QYXRoLkRJU0NBUkQsXG4gICAgICAgIH0pXG4gICAgICAgIC5uZXh0KFxuICAgICAgICAgIG5ldyBEeW5hbW9VcGRhdGVJdGVtKHRoaXMsIGAke3ByZWZpeH1FbnJpY2htZW50U3VjY2Vzc1VwZGF0ZWAsIHtcbiAgICAgICAgICAgIHRhYmxlOiB0aGlzLmRvY3VtZW50UHJvY2Vzc2luZ1RhYmxlLFxuICAgICAgICAgICAga2V5OiB7XG4gICAgICAgICAgICAgIERvY3VtZW50SWQ6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoSnNvblBhdGguc3RyaW5nQXQoJyQuZG9jdW1lbnRJZCcpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVFeHByZXNzaW9uOiAnU0VUIFdvcmtmbG93U3RhdHVzID0gOm5ld1N0YXR1cywgRW5yaWNobWVudFJlc3VsdCA9IDplbnJpY2htZW50UmVzdWx0JyxcbiAgICAgICAgICAgIGV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXM6IHtcbiAgICAgICAgICAgICAgJzpuZXdTdGF0dXMnOiBwb3N0UHJvY2Vzc2luZ1N0ZXAgPyBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKCdlbnJpY2htZW50LWNvbXBsZXRlJykgOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKCdjb21wbGV0ZScpLFxuICAgICAgICAgICAgICAnOmVucmljaG1lbnRSZXN1bHQnOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLmpzb25Ub1N0cmluZyhKc29uUGF0aC5vYmplY3RBdCgnJC5lbnJpY2hlZFJlc3VsdCcpKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgcHJvY2Vzc2luZ0NoYWluLm5leHQoZW5yaWNobWVudENoYWluKTtcblxuICAgICAgaWYgKHBvc3RQcm9jZXNzaW5nU3RlcCkge1xuICAgICAgICBjb25zdCBwb3N0UHJvY2Vzc2luZ0NoYWluID0gcG9zdFByb2Nlc3NpbmdTdGVwXG4gICAgICAgICAgLmFkZENhdGNoKG5ldyBEeW5hbW9VcGRhdGVJdGVtKHRoaXMsIGAke3ByZWZpeH1Qb3N0UHJvY2Vzc2luZ0ZhaWxEREJVcGRhdGVgLCB7XG4gICAgICAgICAgICB0YWJsZTogdGhpcy5kb2N1bWVudFByb2Nlc3NpbmdUYWJsZSxcbiAgICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgICBEb2N1bWVudElkOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlRXhwcmVzc2lvbjogJ1NFVCBXb3JrZmxvd1N0YXR1cyA9IDpuZXdTdGF0dXMnLFxuICAgICAgICAgICAgZXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgICAgICAgICAnOm5ld1N0YXR1cyc6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoJ3Bvc3QtcHJvY2Vzc2luZy1mYWlsdXJlJyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgICAgICB9KS5uZXh0KG1vdmVUb0ZhaWxlZCksIHtcbiAgICAgICAgICAgIHJlc3VsdFBhdGg6IEpzb25QYXRoLkRJU0NBUkQsXG4gICAgICAgICAgfSlcbiAgICAgICAgICAubmV4dChcbiAgICAgICAgICAgIG5ldyBEeW5hbW9VcGRhdGVJdGVtKHRoaXMsIGAke3ByZWZpeH1Qb3N0UHJvY2Vzc2luZ1N1Y2Nlc3NVcGRhdGVgLCB7XG4gICAgICAgICAgICAgIHRhYmxlOiB0aGlzLmRvY3VtZW50UHJvY2Vzc2luZ1RhYmxlLFxuICAgICAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgICAgICBEb2N1bWVudElkOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHVwZGF0ZUV4cHJlc3Npb246ICdTRVQgV29ya2Zsb3dTdGF0dXMgPSA6bmV3U3RhdHVzLCBQb3N0UHJvY2Vzc2luZ1Jlc3VsdCA9IDpwb3N0UHJvY2Vzc2luZ1Jlc3VsdCcsXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXM6IHtcbiAgICAgICAgICAgICAgICAnOm5ld1N0YXR1cyc6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoJ2NvbXBsZXRlJyksXG4gICAgICAgICAgICAgICAgJzpwb3N0UHJvY2Vzc2luZ1Jlc3VsdCc6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoSnNvblBhdGguanNvblRvU3RyaW5nKEpzb25QYXRoLm9iamVjdEF0KCckLnBvc3RQcm9jZXNzZWRSZXN1bHQnKSkpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICByZXN1bHRQYXRoOiBKc29uUGF0aC5ESVNDQVJELFxuICAgICAgICAgICAgfSkubmV4dChtb3ZlVG9Qcm9jZXNzZWQpLFxuICAgICAgICAgICk7XG4gICAgICAgIGVucmljaG1lbnRDaGFpbi5uZXh0KHBvc3RQcm9jZXNzaW5nQ2hhaW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5yaWNobWVudENoYWluLm5leHQobW92ZVRvUHJvY2Vzc2VkKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHBvc3RQcm9jZXNzaW5nU3RlcCkge1xuICAgICAgY29uc3QgcG9zdFByb2Nlc3NpbmdDaGFpbiA9IHBvc3RQcm9jZXNzaW5nU3RlcFxuICAgICAgICAuYWRkQ2F0Y2gobmV3IER5bmFtb1VwZGF0ZUl0ZW0odGhpcywgYCR7cHJlZml4fVBvc3RQcm9jZXNzaW5nRmFpbEREQlVwZGF0ZTJgLCB7XG4gICAgICAgICAgdGFibGU6IHRoaXMuZG9jdW1lbnRQcm9jZXNzaW5nVGFibGUsXG4gICAgICAgICAga2V5OiB7XG4gICAgICAgICAgICBEb2N1bWVudElkOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1cGRhdGVFeHByZXNzaW9uOiAnU0VUIFdvcmtmbG93U3RhdHVzID0gOm5ld1N0YXR1cycsXG4gICAgICAgICAgZXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgICAgICAgJzpuZXdTdGF0dXMnOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKCdwb3N0LXByb2Nlc3NpbmctZmFpbHVyZScpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgICAgfSkubmV4dChtb3ZlVG9GYWlsZWQpLCB7XG4gICAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgICAgfSlcbiAgICAgICAgLm5leHQoXG4gICAgICAgICAgbmV3IER5bmFtb1VwZGF0ZUl0ZW0odGhpcywgYCR7cHJlZml4fVBvc3RQcm9jZXNzaW5nU3VjY2Vzc1VwZGF0ZTJgLCB7XG4gICAgICAgICAgICB0YWJsZTogdGhpcy5kb2N1bWVudFByb2Nlc3NpbmdUYWJsZSxcbiAgICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgICBEb2N1bWVudElkOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKEpzb25QYXRoLnN0cmluZ0F0KCckLmRvY3VtZW50SWQnKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlRXhwcmVzc2lvbjogJ1NFVCBXb3JrZmxvd1N0YXR1cyA9IDpuZXdTdGF0dXMsIFBvc3RQcm9jZXNzaW5nUmVzdWx0ID0gOnBvc3RQcm9jZXNzaW5nUmVzdWx0JyxcbiAgICAgICAgICAgIGV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXM6IHtcbiAgICAgICAgICAgICAgJzpuZXdTdGF0dXMnOiBEeW5hbW9BdHRyaWJ1dGVWYWx1ZS5mcm9tU3RyaW5nKCdjb21wbGV0ZScpLFxuICAgICAgICAgICAgICAnOnBvc3RQcm9jZXNzaW5nUmVzdWx0JzogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZyhKc29uUGF0aC5qc29uVG9TdHJpbmcoSnNvblBhdGgub2JqZWN0QXQoJyQucG9zdFByb2Nlc3NlZFJlc3VsdCcpKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgICAgICB9KS5uZXh0KG1vdmVUb1Byb2Nlc3NlZCksXG4gICAgICAgICk7XG4gICAgICBwcm9jZXNzaW5nQ2hhaW4ubmV4dChwb3N0UHJvY2Vzc2luZ0NoYWluKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gb3B0aW9uYWwgc3RlcHMgLSBtYXJrIGFzIGNvbXBsZXRlIGFmdGVyIGV4dHJhY3Rpb25cbiAgICAgIHByb2Nlc3NpbmdDaGFpbi5uZXh0KFxuICAgICAgICBuZXcgRHluYW1vVXBkYXRlSXRlbSh0aGlzLCBgJHtwcmVmaXh9V29ya2Zsb3dDb21wbGV0ZVVwZGF0ZWAsIHtcbiAgICAgICAgICB0YWJsZTogdGhpcy5kb2N1bWVudFByb2Nlc3NpbmdUYWJsZSxcbiAgICAgICAgICBrZXk6IHtcbiAgICAgICAgICAgIERvY3VtZW50SWQ6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoSnNvblBhdGguc3RyaW5nQXQoJyQuZG9jdW1lbnRJZCcpKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVwZGF0ZUV4cHJlc3Npb246ICdTRVQgV29ya2Zsb3dTdGF0dXMgPSA6bmV3U3RhdHVzJyxcbiAgICAgICAgICBleHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAgICAgICAgICAnOm5ld1N0YXR1cyc6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoJ2NvbXBsZXRlJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXN1bHRQYXRoOiBKc29uUGF0aC5ESVNDQVJELFxuICAgICAgICB9KS5uZXh0KG1vdmVUb1Byb2Nlc3NlZCksXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGNsYXNzaWZpY2F0aW9uQ2hhaW4gPSBjbGFzc2lmaWNhdGlvblN0ZXBcbiAgICAgIC5hZGRDYXRjaChuZXcgRHluYW1vVXBkYXRlSXRlbSh0aGlzLCBgJHtwcmVmaXh9Q2xhc3NpZmljYXRpb25GYWlsRERCVXBkYXRlYCwge1xuICAgICAgICB0YWJsZTogdGhpcy5kb2N1bWVudFByb2Nlc3NpbmdUYWJsZSxcbiAgICAgICAga2V5OiB7XG4gICAgICAgICAgRG9jdW1lbnRJZDogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZyhKc29uUGF0aC5zdHJpbmdBdCgnJC5kb2N1bWVudElkJykpLFxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVFeHByZXNzaW9uOiAnU0VUIFdvcmtmbG93U3RhdHVzID0gOm5ld1N0YXR1cycsXG4gICAgICAgIGV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXM6IHtcbiAgICAgICAgICAnOm5ld1N0YXR1cyc6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoJ2NsYXNzaWZpY2F0aW9uLWZhaWx1cmUnKSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgIH0pLm5leHQobW92ZVRvRmFpbGVkKSwge1xuICAgICAgICByZXN1bHRQYXRoOiBKc29uUGF0aC5ESVNDQVJELFxuICAgICAgfSlcbiAgICAgIC5uZXh0KFxuICAgICAgICBuZXcgRHluYW1vVXBkYXRlSXRlbSh0aGlzLCBgJHtwcmVmaXh9Q2xhc3NpZmljYXRpb25TdWNjZXNzVXBkYXRlYCwge1xuICAgICAgICAgIHRhYmxlOiB0aGlzLmRvY3VtZW50UHJvY2Vzc2luZ1RhYmxlLFxuICAgICAgICAgIGtleToge1xuICAgICAgICAgICAgRG9jdW1lbnRJZDogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZyhKc29uUGF0aC5zdHJpbmdBdCgnJC5kb2N1bWVudElkJykpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdXBkYXRlRXhwcmVzc2lvbjogJ1NFVCBXb3JrZmxvd1N0YXR1cyA9IDpuZXdTdGF0dXMsIENsYXNzaWZpY2F0aW9uUmVzdWx0ID0gOmNsYXNzaWZpY2F0aW9uUmVzdWx0JyxcbiAgICAgICAgICBleHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAgICAgICAgICAnOm5ld1N0YXR1cyc6IER5bmFtb0F0dHJpYnV0ZVZhbHVlLmZyb21TdHJpbmcoJ2NsYXNzaWZpY2F0aW9uLWNvbXBsZXRlJyksXG4gICAgICAgICAgICAnOmNsYXNzaWZpY2F0aW9uUmVzdWx0JzogRHluYW1vQXR0cmlidXRlVmFsdWUuZnJvbVN0cmluZyhKc29uUGF0aC5qc29uVG9TdHJpbmcoSnNvblBhdGgub2JqZWN0QXQoJyQuY2xhc3NpZmljYXRpb25SZXN1bHQnKSkpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzdWx0UGF0aDogSnNvblBhdGguRElTQ0FSRCxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAubmV4dChwcm9jZXNzaW5nQ2hhaW4pO1xuXG4gICAgcmV0dXJuIGNsYXNzaWZpY2F0aW9uQ2hhaW47XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgZG9jdW1lbnQgY2xhc3NpZmljYXRpb24gc3RlcCBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqICoqQ1JJVElDQUwqKjogTXVzdCBzZXQgYG91dHB1dFBhdGhgIHRvIHByZXNlcnZlIHdvcmtmbG93IHN0YXRlIGZvciBzdWJzZXF1ZW50IHN0ZXBzLlxuICAgKiBUaGUgY2xhc3NpZmljYXRpb24gcmVzdWx0IHNob3VsZCBiZSBhdmFpbGFibGUgYXQgYCQuY2xhc3NpZmljYXRpb25SZXN1bHRgIGZvciBEeW5hbW9EQiBzdG9yYWdlLlxuICAgKlxuICAgKiBAcmV0dXJucyBTdGVwIEZ1bmN0aW9ucyB0YXNrIGZvciBkb2N1bWVudCBjbGFzc2lmaWNhdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNsYXNzaWZpY2F0aW9uU3RlcCgpOiBEb2N1bWVudFByb2Nlc3NpbmdTdGVwVHlwZTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgZG9jdW1lbnQgcHJvY2Vzc2luZyBzdGVwIG9mIHRoZSB3b3JrZmxvdy5cbiAgICpcbiAgICogKipDUklUSUNBTCoqOiBNdXN0IHNldCBgb3V0cHV0UGF0aGAgdG8gcHJlc2VydmUgd29ya2Zsb3cgc3RhdGUgZm9yIHN1YnNlcXVlbnQgc3RlcHMuXG4gICAqIFRoZSBleHRyYWN0aW9uIHJlc3VsdCBzaG91bGQgYmUgYXZhaWxhYmxlIGF0IGAkLnByb2Nlc3NpbmdSZXN1bHRgIGZvciBEeW5hbW9EQiBzdG9yYWdlLlxuICAgKlxuICAgKiBAcmV0dXJucyBTdGVwIEZ1bmN0aW9ucyB0YXNrIGZvciBkb2N1bWVudCBleHRyYWN0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJvY2Vzc2luZ1N0ZXAoKTogRG9jdW1lbnRQcm9jZXNzaW5nU3RlcFR5cGU7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG9wdGlvbmFsIGRvY3VtZW50IGVucmljaG1lbnQgc3RlcCBvZiB0aGUgd29ya2Zsb3cuXG4gICAqXG4gICAqICoqQ1JJVElDQUwqKjogSWYgaW1wbGVtZW50ZWQsIG11c3Qgc2V0IGBvdXRwdXRQYXRoYCB0byBwcmVzZXJ2ZSB3b3JrZmxvdyBzdGF0ZS5cbiAgICogVGhlIGVucmljaG1lbnQgcmVzdWx0IHNob3VsZCBiZSBhdmFpbGFibGUgYXQgYCQuZW5yaWNoZWRSZXN1bHRgIGZvciBEeW5hbW9EQiBzdG9yYWdlLlxuICAgKlxuICAgKiBAcmV0dXJucyBTdGVwIEZ1bmN0aW9ucyB0YXNrIGZvciBkb2N1bWVudCBlbnJpY2htZW50LCBvciB1bmRlZmluZWQgdG8gc2tpcCB0aGlzIHN0ZXBcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBlbnJpY2htZW50U3RlcCgpOiBEb2N1bWVudFByb2Nlc3NpbmdTdGVwVHlwZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgb3B0aW9uYWwgcG9zdC1wcm9jZXNzaW5nIHN0ZXAgb2YgdGhlIHdvcmtmbG93LlxuICAgKlxuICAgKiAqKkNSSVRJQ0FMKio6IElmIGltcGxlbWVudGVkLCBtdXN0IHNldCBgb3V0cHV0UGF0aGAgdG8gcHJlc2VydmUgd29ya2Zsb3cgc3RhdGUuXG4gICAqIFRoZSBwb3N0LXByb2Nlc3NpbmcgcmVzdWx0IHNob3VsZCBiZSBhdmFpbGFibGUgYXQgYCQucG9zdFByb2Nlc3NlZFJlc3VsdGAgZm9yIER5bmFtb0RCIHN0b3JhZ2UuXG4gICAqXG4gICAqIEByZXR1cm5zIFN0ZXAgRnVuY3Rpb25zIHRhc2sgZm9yIHBvc3QtcHJvY2Vzc2luZywgb3IgdW5kZWZpbmVkIHRvIHNraXAgdGhpcyBzdGVwXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcG9zdFByb2Nlc3NpbmdTdGVwKCk6IERvY3VtZW50UHJvY2Vzc2luZ1N0ZXBUeXBlIHwgdW5kZWZpbmVkO1xufVxuIl19
@@ -226,6 +226,7 @@ export declare class BedrockDocumentProcessing extends BaseDocumentProcessing {
226
226
  */
227
227
  protected processingStep(): DocumentProcessingStepType;
228
228
  protected generateLambdaRoleForBedrock(id: string, model?: BedrockModelProps): Role;
229
+ protected resolveBedrockInvokeEntry(): string;
229
230
  /**
230
231
  * Implements the optional document enrichment step.
231
232
  *