terraconstructs 0.0.17 → 0.0.18

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 (225) hide show
  1. package/.jsii +4533 -3
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.js +1 -1
  4. package/lib/aws/aws-stack.js +1 -1
  5. package/lib/aws/aws-tags.js +2 -2
  6. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  7. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  8. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  9. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  10. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  11. package/lib/aws/cloudwatch/alarm.js +1 -1
  12. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  13. package/lib/aws/cloudwatch/dashboard.js +1 -1
  14. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  15. package/lib/aws/cloudwatch/graph.js +8 -8
  16. package/lib/aws/cloudwatch/layout.js +3 -3
  17. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  18. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  19. package/lib/aws/cloudwatch/log-group.js +1 -1
  20. package/lib/aws/cloudwatch/log-query.js +1 -1
  21. package/lib/aws/cloudwatch/log-stream.js +1 -1
  22. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  23. package/lib/aws/cloudwatch/metric.js +2 -2
  24. package/lib/aws/cloudwatch/pattern.js +3 -3
  25. package/lib/aws/cloudwatch/policy.js +1 -1
  26. package/lib/aws/cloudwatch/query-definition.js +2 -2
  27. package/lib/aws/cloudwatch/stats.js +1 -1
  28. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  29. package/lib/aws/cloudwatch/text.js +1 -1
  30. package/lib/aws/cloudwatch/variable.js +3 -3
  31. package/lib/aws/cloudwatch/widget.js +1 -1
  32. package/lib/aws/compute/activity.js +1 -1
  33. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  34. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  35. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  36. package/lib/aws/compute/alb/application-listener.js +1 -1
  37. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  38. package/lib/aws/compute/alb/application-target-group.js +1 -1
  39. package/lib/aws/compute/alb/conditions.js +1 -1
  40. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  41. package/lib/aws/compute/alb/trust-store.js +1 -1
  42. package/lib/aws/compute/architecture.js +1 -1
  43. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  44. package/lib/aws/compute/bastion-host.js +1 -1
  45. package/lib/aws/compute/chain.js +1 -1
  46. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  47. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  48. package/lib/aws/compute/client-vpn-route.js +2 -2
  49. package/lib/aws/compute/condition.js +1 -1
  50. package/lib/aws/compute/connections.js +1 -1
  51. package/lib/aws/compute/event-invoke-config.js +1 -1
  52. package/lib/aws/compute/event-source-filter.js +2 -2
  53. package/lib/aws/compute/event-source-mapping.js +1 -1
  54. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  55. package/lib/aws/compute/event-sources/s3.js +1 -1
  56. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  57. package/lib/aws/compute/event-sources/sqs.js +1 -1
  58. package/lib/aws/compute/fields.js +4 -4
  59. package/lib/aws/compute/function-alias.js +1 -1
  60. package/lib/aws/compute/function-base.js +2 -2
  61. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  62. package/lib/aws/compute/function-destinations/function.js +1 -1
  63. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  64. package/lib/aws/compute/function-nodejs.js +1 -1
  65. package/lib/aws/compute/function-url.js +1 -1
  66. package/lib/aws/compute/function.js +1 -1
  67. package/lib/aws/compute/instance-types.js +1 -1
  68. package/lib/aws/compute/instance.js +1 -1
  69. package/lib/aws/compute/ip-addresses.js +2 -2
  70. package/lib/aws/compute/ipam.js +1 -1
  71. package/lib/aws/compute/key-pair.js +1 -1
  72. package/lib/aws/compute/launch-template.js +2 -2
  73. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  74. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  75. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  76. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  77. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  78. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  79. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  80. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  81. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  82. package/lib/aws/compute/load-balancer.js +3 -3
  83. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  84. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  85. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  86. package/lib/aws/compute/machine-image/common.js +1 -1
  87. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  88. package/lib/aws/compute/nat.js +5 -5
  89. package/lib/aws/compute/network-acl-types.js +2 -2
  90. package/lib/aws/compute/network-acl.js +3 -3
  91. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  92. package/lib/aws/compute/nlb/network-listener.js +1 -1
  93. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  94. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  95. package/lib/aws/compute/peer.js +1 -1
  96. package/lib/aws/compute/placement-group.js +1 -1
  97. package/lib/aws/compute/port.js +1 -1
  98. package/lib/aws/compute/prefix-list.js +1 -1
  99. package/lib/aws/compute/route.js +8 -8
  100. package/lib/aws/compute/security-group.js +1 -1
  101. package/lib/aws/compute/state-graph.js +1 -1
  102. package/lib/aws/compute/state-machine-fragment.js +1 -1
  103. package/lib/aws/compute/state-machine.js +4 -4
  104. package/lib/aws/compute/states/choice.js +1 -1
  105. package/lib/aws/compute/states/custom-state.js +1 -1
  106. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  107. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  108. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  109. package/lib/aws/compute/states/distributed-map.js +1 -1
  110. package/lib/aws/compute/states/fail.js +1 -1
  111. package/lib/aws/compute/states/map-base.js +1 -1
  112. package/lib/aws/compute/states/map.js +1 -1
  113. package/lib/aws/compute/states/parallel.js +1 -1
  114. package/lib/aws/compute/states/pass.js +2 -2
  115. package/lib/aws/compute/states/state.js +1 -1
  116. package/lib/aws/compute/states/succeed.js +1 -1
  117. package/lib/aws/compute/states/task-base.js +2 -2
  118. package/lib/aws/compute/states/task.js +1 -1
  119. package/lib/aws/compute/states/wait.js +2 -2
  120. package/lib/aws/compute/subnet-v2.js +2 -2
  121. package/lib/aws/compute/subnet.js +1 -1
  122. package/lib/aws/compute/task-credentials.js +1 -1
  123. package/lib/aws/compute/task-input.js +1 -1
  124. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  125. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  126. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  127. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  128. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  129. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  130. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  131. package/lib/aws/compute/types.js +1 -1
  132. package/lib/aws/compute/user-data.js +3 -3
  133. package/lib/aws/compute/volume.js +2 -2
  134. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  135. package/lib/aws/compute/vpc-endpoint.js +6 -6
  136. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  137. package/lib/aws/compute/vpc-v2-base.js +1 -1
  138. package/lib/aws/compute/vpc-v2.js +2 -2
  139. package/lib/aws/compute/vpc.js +4 -4
  140. package/lib/aws/compute/vpn.js +3 -3
  141. package/lib/aws/edge/certificate.js +1 -1
  142. package/lib/aws/edge/distribution.js +3 -3
  143. package/lib/aws/edge/dns-alias-record-targets.js +3 -3
  144. package/lib/aws/edge/dns-record.js +13 -13
  145. package/lib/aws/edge/dns-zone.js +1 -1
  146. package/lib/aws/edge/function.js +2 -2
  147. package/lib/aws/edge/key-value-store.js +4 -4
  148. package/lib/aws/edge/origin.js +3 -3
  149. package/lib/aws/edge/response-headers-policy.js +1 -1
  150. package/lib/aws/encryption/alias.js +1 -1
  151. package/lib/aws/encryption/key.js +1 -1
  152. package/lib/aws/encryption/via-service-principal.js +1 -1
  153. package/lib/aws/iam/grant.js +2 -2
  154. package/lib/aws/iam/group.js +1 -1
  155. package/lib/aws/iam/instance-profile.js +1 -1
  156. package/lib/aws/iam/managed-policy.js +1 -1
  157. package/lib/aws/iam/oidc-provider.js +1 -1
  158. package/lib/aws/iam/policy-document.js +1 -1
  159. package/lib/aws/iam/policy-statement.js +1 -1
  160. package/lib/aws/iam/policy.js +1 -1
  161. package/lib/aws/iam/principals.js +20 -20
  162. package/lib/aws/iam/role.js +1 -1
  163. package/lib/aws/iam/saml-provider.js +2 -2
  164. package/lib/aws/iam/unknown-principal.js +1 -1
  165. package/lib/aws/iam/user.js +1 -1
  166. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  167. package/lib/aws/network/subnet-group.js +3 -3
  168. package/lib/aws/network/subnet.js +4 -4
  169. package/lib/aws/notify/archive.js +1 -1
  170. package/lib/aws/notify/connection.js +3 -3
  171. package/lib/aws/notify/delivery-policy.d.ts +114 -0
  172. package/lib/aws/notify/delivery-policy.js +27 -0
  173. package/lib/aws/notify/event-bus.js +3 -3
  174. package/lib/aws/notify/event-pattern.js +1 -1
  175. package/lib/aws/notify/index.d.ts +11 -0
  176. package/lib/aws/notify/index.js +14 -1
  177. package/lib/aws/notify/input.js +2 -2
  178. package/lib/aws/notify/kinesis-stream.js +1 -1
  179. package/lib/aws/notify/notification-rule-source.d.ts +20 -0
  180. package/lib/aws/notify/notification-rule-source.js +4 -0
  181. package/lib/aws/notify/notification-rule-target.d.ts +24 -0
  182. package/lib/aws/notify/notification-rule-target.js +4 -0
  183. package/lib/aws/notify/notification-rule.d.ts +123 -0
  184. package/lib/aws/notify/notification-rule.js +129 -0
  185. package/lib/aws/notify/policy.d.ts +56 -0
  186. package/lib/aws/notify/policy.js +83 -0
  187. package/lib/aws/notify/queue-policy.js +1 -1
  188. package/lib/aws/notify/queue.js +1 -1
  189. package/lib/aws/notify/resource-policy.js +1 -1
  190. package/lib/aws/notify/rule.js +1 -1
  191. package/lib/aws/notify/schedule.js +1 -1
  192. package/lib/aws/notify/sns-augmentations.generated.d.ts +125 -0
  193. package/lib/aws/notify/sns-augmentations.generated.js +71 -0
  194. package/lib/aws/notify/sns-canned-metrics.generated.d.ts +33 -0
  195. package/lib/aws/notify/sns-canned-metrics.generated.js +47 -0
  196. package/lib/aws/notify/subscriber.d.ts +44 -0
  197. package/lib/aws/notify/subscriber.js +4 -0
  198. package/lib/aws/notify/subscription-filter.d.ts +129 -0
  199. package/lib/aws/notify/subscription-filter.js +105 -0
  200. package/lib/aws/notify/subscription.d.ts +219 -0
  201. package/lib/aws/notify/subscription.js +357 -0
  202. package/lib/aws/notify/targets/event-bus.js +1 -1
  203. package/lib/aws/notify/targets/function.js +1 -1
  204. package/lib/aws/notify/targets/log-group.js +2 -2
  205. package/lib/aws/notify/targets/sqs.js +1 -1
  206. package/lib/aws/notify/targets/state-machine.js +1 -1
  207. package/lib/aws/notify/topic-base.d.ts +155 -0
  208. package/lib/aws/notify/topic-base.js +175 -0
  209. package/lib/aws/notify/topic.d.ts +222 -0
  210. package/lib/aws/notify/topic.js +219 -0
  211. package/lib/aws/storage/bucket-notifications.js +1 -1
  212. package/lib/aws/storage/bucket-policy.js +1 -1
  213. package/lib/aws/storage/bucket-source.js +1 -1
  214. package/lib/aws/storage/bucket.js +2 -2
  215. package/lib/aws/storage/notification-targets/function.js +1 -1
  216. package/lib/aws/storage/notification-targets/queue.js +1 -1
  217. package/lib/aws/storage/origin-access-identity.js +1 -1
  218. package/lib/aws/storage/parameter.js +2 -2
  219. package/lib/construct-base.js +2 -2
  220. package/lib/duration.js +1 -1
  221. package/lib/expiration.js +1 -1
  222. package/lib/size.js +1 -1
  223. package/lib/stack-base.js +1 -1
  224. package/lib/terra-func.js +1 -1
  225. package/package.json +1 -1
@@ -0,0 +1,222 @@
1
+ import { Construct } from "constructs";
2
+ import { AwsConstructProps } from "../aws-construct";
3
+ import * as encryption from "../encryption";
4
+ import * as iam from "../iam";
5
+ import { ITopic, TopicBase } from "./topic-base";
6
+ /**
7
+ * Properties for a new SNS topic
8
+ */
9
+ export interface TopicProps extends AwsConstructProps {
10
+ /**
11
+ * A developer-defined string that can be used to identify this SNS topic.
12
+ *
13
+ * The display name must be maximum 100 characters long, including hyphens (-),
14
+ * underscores (_), spaces, and tabs.
15
+ *
16
+ * @default None
17
+ */
18
+ readonly displayName?: string;
19
+ /**
20
+ * A name for the topic.
21
+ *
22
+ * If you don't specify a name, AWS CloudFormation generates a unique
23
+ * physical ID and uses that ID for the topic name. For more information,
24
+ * see Name Type.
25
+ *
26
+ * @default Generated name
27
+ */
28
+ readonly topicName?: string;
29
+ /**
30
+ * A KMS Key, either managed by this CDK app, or imported.
31
+ *
32
+ * @default None
33
+ */
34
+ readonly masterKey?: encryption.IKey;
35
+ /**
36
+ * Enables content-based deduplication for FIFO topics.
37
+ *
38
+ * @default None
39
+ */
40
+ readonly contentBasedDeduplication?: boolean;
41
+ /**
42
+ * Set to true to create a FIFO topic.
43
+ *
44
+ * @default None
45
+ */
46
+ readonly fifo?: boolean;
47
+ /**
48
+ * The list of delivery status logging configurations for the topic.
49
+ *
50
+ * @see https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.
51
+ *
52
+ * @default None
53
+ */
54
+ readonly loggingConfigs?: LoggingConfig[];
55
+ /**
56
+ * The number of days Amazon SNS retains messages.
57
+ *
58
+ * It can only be set for FIFO topics.
59
+ *
60
+ * @see https://docs.aws.amazon.com/sns/latest/dg/fifo-message-archiving-replay.html
61
+ *
62
+ * @default - do not archive messages
63
+ */
64
+ readonly messageRetentionPeriodInDays?: number;
65
+ /**
66
+ * Adds a statement to enforce encryption of data in transit when publishing to the topic.
67
+ *
68
+ * @see https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit.
69
+ *
70
+ * @default false
71
+ */
72
+ readonly enforceSSL?: boolean;
73
+ /**
74
+ * The signature version corresponds to the hashing algorithm used while creating the signature of the notifications,
75
+ * subscription confirmations, or unsubscribe confirmation messages sent by Amazon SNS.
76
+ *
77
+ * @see https://docs.aws.amazon.com/sns/latest/dg/sns-verify-signature-of-message.html.
78
+ *
79
+ * @default 1
80
+ */
81
+ readonly signatureVersion?: string;
82
+ /**
83
+ * Tracing mode of an Amazon SNS topic.
84
+ *
85
+ * @see https://docs.aws.amazon.com/sns/latest/dg/sns-active-tracing.html
86
+ *
87
+ * @default TracingConfig.PASS_THROUGH
88
+ */
89
+ readonly tracingConfig?: TracingConfig;
90
+ }
91
+ /**
92
+ * A logging configuration for delivery status of messages sent from SNS topic to subscribed endpoints.
93
+ *
94
+ * @see https://docs.aws.amazon.com/sns/latest/dg/sns-topic-attributes.html.
95
+ */
96
+ export interface LoggingConfig {
97
+ /**
98
+ * Indicates one of the supported protocols for the SNS topic.
99
+ */
100
+ readonly protocol: LoggingProtocol;
101
+ /**
102
+ * The IAM role to be used when logging failed message deliveries in Amazon CloudWatch.
103
+ *
104
+ * @default None
105
+ */
106
+ readonly failureFeedbackRole?: iam.IRole;
107
+ /**
108
+ * The IAM role to be used when logging successful message deliveries in Amazon CloudWatch.
109
+ *
110
+ * @default None
111
+ */
112
+ readonly successFeedbackRole?: iam.IRole;
113
+ /**
114
+ * The percentage of successful message deliveries to be logged in Amazon CloudWatch.
115
+ *
116
+ * Valid values are integer between 0-100
117
+ *
118
+ * @default None
119
+ */
120
+ readonly successFeedbackSampleRate?: number;
121
+ }
122
+ /**
123
+ * The type of supported protocol for delivery status logging.
124
+ */
125
+ export declare enum LoggingProtocol {
126
+ /**
127
+ * HTTP
128
+ */
129
+ HTTP = "http",// NOTE: AWSCDK enum value = "http/s",
130
+ /**
131
+ * Amazon Simple Queue Service
132
+ */
133
+ SQS = "sqs",
134
+ /**
135
+ * AWS Lambda
136
+ */
137
+ LAMBDA = "lambda",
138
+ /**
139
+ * Amazon Data Firehose
140
+ */
141
+ FIREHOSE = "firehose",
142
+ /**
143
+ * Platform application endpoint
144
+ */
145
+ APPLICATION = "application"
146
+ }
147
+ /**
148
+ * The tracing mode of an Amazon SNS topic
149
+ */
150
+ export declare enum TracingConfig {
151
+ /**
152
+ * The mode that topic passes trace headers received from the Amazon SNS publisher to its subscription.
153
+ */
154
+ PASS_THROUGH = "PassThrough",
155
+ /**
156
+ * The mode that Amazon SNS vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true.
157
+ */
158
+ ACTIVE = "Active"
159
+ }
160
+ /**
161
+ * Represents an SNS topic defined outside of this stack.
162
+ */
163
+ export interface TopicAttributes {
164
+ /**
165
+ * The ARN of the SNS topic.
166
+ */
167
+ readonly topicArn: string;
168
+ /**
169
+ * KMS encryption key ARN, if this topic is server-side encrypted by a KMS key.
170
+ *
171
+ * @default - None
172
+ */
173
+ readonly keyArn?: string;
174
+ /**
175
+ * Whether content-based deduplication is enabled.
176
+ * Only applicable for FIFO topics.
177
+ *
178
+ * @default false
179
+ */
180
+ readonly contentBasedDeduplication?: boolean;
181
+ }
182
+ /**
183
+ * A new SNS topic
184
+ *
185
+ * @resource aws_sns_topic
186
+ */
187
+ export declare class Topic extends TopicBase {
188
+ /**
189
+ * Import an existing SNS topic provided an ARN
190
+ *
191
+ * @param scope The parent creating construct
192
+ * @param id The construct's name
193
+ * @param topicArn topic ARN (i.e. arn:aws:sns:us-east-2:444455556666:MyTopic)
194
+ */
195
+ static fromTopicArn(scope: Construct, id: string, topicArn: string): ITopic;
196
+ /**
197
+ * Import an existing SNS topic provided a topic attributes
198
+ *
199
+ * @param scope The parent creating construct
200
+ * @param id The construct's name
201
+ * @param attrs the attributes of the topic to import
202
+ */
203
+ static fromTopicAttributes(scope: Construct, id: string, attrs: TopicAttributes): ITopic;
204
+ readonly topicArn: string;
205
+ readonly topicName: string;
206
+ readonly masterKey?: encryption.IKey;
207
+ readonly contentBasedDeduplication: boolean;
208
+ readonly fifo: boolean;
209
+ protected readonly autoCreatePolicy: boolean;
210
+ private readonly resource;
211
+ constructor(scope: Construct, id: string, props?: TopicProps);
212
+ /**
213
+ * Adds a delivery status logging configuration to the topic.
214
+ */
215
+ addLoggingConfig(config: LoggingConfig): void;
216
+ /**
217
+ * Adds an IAM policy statement to enforce the use of TLS for publishing to this topic.
218
+ *
219
+ * @see https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit
220
+ */
221
+ protected addSSLPolicy(): void;
222
+ }
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Topic = exports.TracingConfig = exports.LoggingProtocol = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ // https://github.com/aws/aws-cdk/blob/a7633a98ce325a620f364bfdeda354342751900a/packages/aws-cdk-lib/aws-sns/lib/topic.ts
7
+ const provider_aws_1 = require("@cdktf/provider-aws");
8
+ const cdktf_1 = require("cdktf");
9
+ const __1 = require("..");
10
+ const encryption = require("../encryption");
11
+ const iam = require("../iam");
12
+ const topic_base_1 = require("./topic-base");
13
+ /**
14
+ * The type of supported protocol for delivery status logging.
15
+ */
16
+ var LoggingProtocol;
17
+ (function (LoggingProtocol) {
18
+ /**
19
+ * HTTP
20
+ */
21
+ LoggingProtocol["HTTP"] = "http";
22
+ /**
23
+ * Amazon Simple Queue Service
24
+ */
25
+ LoggingProtocol["SQS"] = "sqs";
26
+ /**
27
+ * AWS Lambda
28
+ */
29
+ LoggingProtocol["LAMBDA"] = "lambda";
30
+ /**
31
+ * Amazon Data Firehose
32
+ */
33
+ LoggingProtocol["FIREHOSE"] = "firehose";
34
+ /**
35
+ * Platform application endpoint
36
+ */
37
+ LoggingProtocol["APPLICATION"] = "application";
38
+ })(LoggingProtocol || (exports.LoggingProtocol = LoggingProtocol = {}));
39
+ /**
40
+ * The tracing mode of an Amazon SNS topic
41
+ */
42
+ var TracingConfig;
43
+ (function (TracingConfig) {
44
+ /**
45
+ * The mode that topic passes trace headers received from the Amazon SNS publisher to its subscription.
46
+ */
47
+ TracingConfig["PASS_THROUGH"] = "PassThrough";
48
+ /**
49
+ * The mode that Amazon SNS vend X-Ray segment data to topic owner account if the sampled flag in the tracing header is true.
50
+ */
51
+ TracingConfig["ACTIVE"] = "Active";
52
+ })(TracingConfig || (exports.TracingConfig = TracingConfig = {}));
53
+ /**
54
+ * A new SNS topic
55
+ *
56
+ * @resource aws_sns_topic
57
+ */
58
+ class Topic extends topic_base_1.TopicBase {
59
+ /**
60
+ * Import an existing SNS topic provided an ARN
61
+ *
62
+ * @param scope The parent creating construct
63
+ * @param id The construct's name
64
+ * @param topicArn topic ARN (i.e. arn:aws:sns:us-east-2:444455556666:MyTopic)
65
+ */
66
+ static fromTopicArn(scope, id, topicArn) {
67
+ return Topic.fromTopicAttributes(scope, id, { topicArn });
68
+ }
69
+ /**
70
+ * Import an existing SNS topic provided a topic attributes
71
+ *
72
+ * @param scope The parent creating construct
73
+ * @param id The construct's name
74
+ * @param attrs the attributes of the topic to import
75
+ */
76
+ static fromTopicAttributes(scope, id, attrs) {
77
+ const stack = __1.AwsStack.ofAwsConstruct(scope);
78
+ const topicName = stack.splitArn(attrs.topicArn, __1.ArnFormat.NO_RESOURCE_NAME).resource;
79
+ const fifo = topicName.endsWith(".fifo");
80
+ if (attrs.contentBasedDeduplication && !fifo) {
81
+ throw new Error("Cannot import topic; contentBasedDeduplication is only available for FIFO SNS topics.");
82
+ }
83
+ class Import extends topic_base_1.TopicBase {
84
+ constructor() {
85
+ super(...arguments);
86
+ this.topicArn = attrs.topicArn;
87
+ this.topicName = topicName;
88
+ this.masterKey = attrs.keyArn
89
+ ? encryption.Key.fromKeyArn(this, "Key", attrs.keyArn)
90
+ : undefined;
91
+ this.fifo = fifo;
92
+ this.contentBasedDeduplication = attrs.contentBasedDeduplication || false;
93
+ this.autoCreatePolicy = false;
94
+ }
95
+ }
96
+ return new Import(scope, id, {
97
+ environmentFromArn: attrs.topicArn,
98
+ });
99
+ }
100
+ constructor(scope, id, props = {}) {
101
+ super(scope, id, props);
102
+ this.autoCreatePolicy = true;
103
+ this.enforceSSL = props.enforceSSL;
104
+ if (props.contentBasedDeduplication && !props.fifo) {
105
+ throw new Error("Content based deduplication can only be enabled for FIFO SNS topics.");
106
+ }
107
+ if (props.messageRetentionPeriodInDays && !props.fifo) {
108
+ throw new Error("`messageRetentionPeriodInDays` is only valid for FIFO SNS topics.");
109
+ }
110
+ // TODO: fifoThroughputScope validation removed as property is not supported
111
+ // if (props.fifoThroughputScope && !props.fifo) {
112
+ // throw new Error('`fifoThroughputScope` can only be set for FIFO SNS topics.');
113
+ // }
114
+ if (props.messageRetentionPeriodInDays !== undefined &&
115
+ !cdktf_1.Token.isUnresolved(props.messageRetentionPeriodInDays) &&
116
+ (!Number.isInteger(props.messageRetentionPeriodInDays) ||
117
+ props.messageRetentionPeriodInDays > 365 ||
118
+ props.messageRetentionPeriodInDays < 1)) {
119
+ throw new Error("`messageRetentionPeriodInDays` must be an integer between 1 and 365");
120
+ }
121
+ let topicName = props.topicName;
122
+ if (props.fifo && props.topicName && !props.topicName.endsWith(".fifo")) {
123
+ topicName = props.topicName + ".fifo";
124
+ }
125
+ else if (props.fifo && !props.topicName) {
126
+ // Max length allowed by CloudFormation is 256, we subtract 5 to allow for ".fifo" suffix
127
+ const prefixName = this.stack.uniqueResourceName(this, {
128
+ maxLength: 256 - 5,
129
+ separator: "-",
130
+ });
131
+ topicName = `${prefixName}.fifo`;
132
+ }
133
+ if (props.signatureVersion &&
134
+ !cdktf_1.Token.isUnresolved(props.signatureVersion) &&
135
+ props.signatureVersion !== "1" &&
136
+ props.signatureVersion !== "2") {
137
+ throw new Error(`signatureVersion must be "1" or "2", received: "${props.signatureVersion}"`);
138
+ }
139
+ if (props.displayName &&
140
+ !cdktf_1.Token.isUnresolved(props.displayName) &&
141
+ props.displayName.length > 100) {
142
+ throw new Error(`displayName must be less than or equal to 100 characters, got ${props.displayName.length}`);
143
+ }
144
+ this.resource = new provider_aws_1.snsTopic.SnsTopic(this, "Resource", {
145
+ name: topicName,
146
+ displayName: props.displayName,
147
+ kmsMasterKeyId: props.masterKey?.keyArn,
148
+ contentBasedDeduplication: props.contentBasedDeduplication,
149
+ fifoTopic: props.fifo,
150
+ signatureVersion: props.signatureVersion
151
+ ? parseInt(props.signatureVersion, 10)
152
+ : undefined,
153
+ tracingConfig: props.tracingConfig,
154
+ archivePolicy: props.messageRetentionPeriodInDays
155
+ ? JSON.stringify({
156
+ MessageRetentionPeriod: props.messageRetentionPeriodInDays,
157
+ })
158
+ : undefined,
159
+ // TODO: fifoThroughputScope is not supported in Terraform as of provider v5.93.0
160
+ });
161
+ // add logging config overrides
162
+ if (props.loggingConfigs) {
163
+ props.loggingConfigs.forEach((c) => this.addLoggingConfig(c));
164
+ }
165
+ this.topicArn = this.resource.arn;
166
+ this.topicName = this.resource.name;
167
+ this.masterKey = props.masterKey;
168
+ this.fifo = props.fifo || false;
169
+ this.contentBasedDeduplication = props.contentBasedDeduplication || false;
170
+ if (this.enforceSSL) {
171
+ this.addSSLPolicy();
172
+ }
173
+ }
174
+ /**
175
+ * Adds a delivery status logging configuration to the topic.
176
+ */
177
+ addLoggingConfig(config) {
178
+ if (config.successFeedbackSampleRate !== undefined) {
179
+ const rate = config.successFeedbackSampleRate;
180
+ if (!Number.isInteger(rate) || rate < 0 || rate > 100) {
181
+ throw new Error("Success feedback sample rate must be an integer between 0 and 100");
182
+ }
183
+ }
184
+ if (config.failureFeedbackRole) {
185
+ this.resource.addOverride(`${config.protocol}_failure_feedback_role_arn`, config.failureFeedbackRole.roleArn);
186
+ }
187
+ if (config.successFeedbackRole) {
188
+ this.resource.addOverride(`${config.protocol}_success_feedback_role_arn`, config.successFeedbackRole.roleArn);
189
+ }
190
+ if (config.successFeedbackSampleRate !== undefined) {
191
+ this.resource.addOverride(`${config.protocol}_success_feedback_sample_rate`, config.successFeedbackSampleRate.toString());
192
+ }
193
+ }
194
+ /**
195
+ * Adds an IAM policy statement to enforce the use of TLS for publishing to this topic.
196
+ *
197
+ * @see https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#enforce-encryption-data-in-transit
198
+ */
199
+ addSSLPolicy() {
200
+ this.addToResourcePolicy(new iam.PolicyStatement({
201
+ sid: "EnforcePublishSSL",
202
+ actions: ["sns:Publish"],
203
+ effect: iam.Effect.DENY,
204
+ resources: [this.topicArn],
205
+ principals: [new iam.AnyPrincipal()],
206
+ condition: [
207
+ {
208
+ test: "Bool",
209
+ variable: "aws:SecureTransport",
210
+ values: ["false"],
211
+ },
212
+ ],
213
+ }));
214
+ }
215
+ }
216
+ exports.Topic = Topic;
217
+ _a = JSII_RTTI_SYMBOL_1;
218
+ Topic[_a] = { fqn: "terraconstructs.aws.notify.Topic", version: "0.0.18" };
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS90b3BpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlIQUF5SDtBQUV6SCxzREFBK0M7QUFDL0MsaUNBQThCO0FBRTlCLDBCQUF5QztBQUV6Qyw0Q0FBNEM7QUFDNUMsOEJBQThCO0FBQzlCLDZDQUFpRDtBQWtLakQ7O0dBRUc7QUFDSCxJQUFZLGVBeUJYO0FBekJELFdBQVksZUFBZTtJQUN6Qjs7T0FFRztJQUNILGdDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDhCQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILG9DQUFpQixDQUFBO0lBRWpCOztPQUVHO0lBQ0gsd0NBQXFCLENBQUE7SUFFckI7O09BRUc7SUFDSCw4Q0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBekJXLGVBQWUsK0JBQWYsZUFBZSxRQXlCMUI7QUFFRDs7R0FFRztBQUNILElBQVksYUFVWDtBQVZELFdBQVksYUFBYTtJQUN2Qjs7T0FFRztJQUNILDZDQUE0QixDQUFBO0lBRTVCOztPQUVHO0lBQ0gsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLGFBQWEsNkJBQWIsYUFBYSxRQVV4QjtBQTJCRDs7OztHQUlHO0FBQ0gsTUFBYSxLQUFNLFNBQVEsc0JBQVM7SUFDbEM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FDeEIsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFFBQWdCO1FBRWhCLE9BQU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQy9CLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFzQjtRQUV0QixNQUFNLEtBQUssR0FBRyxZQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQzlCLEtBQUssQ0FBQyxRQUFRLEVBQ2QsYUFBUyxDQUFDLGdCQUFnQixDQUMzQixDQUFDLFFBQVEsQ0FBQztRQUNYLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsSUFBSSxLQUFLLENBQUMseUJBQXlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QyxNQUFNLElBQUksS0FBSyxDQUNiLHVGQUF1RixDQUN4RixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sTUFBTyxTQUFRLHNCQUFTO1lBQTlCOztnQkFDa0IsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQzFCLGNBQVMsR0FBRyxTQUFTLENBQUM7Z0JBQ3RCLGNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTTtvQkFDdEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztvQkFDdEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDRSxTQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNaLDhCQUF5QixHQUN2QyxLQUFLLENBQUMseUJBQXlCLElBQUksS0FBSyxDQUFDO2dCQUNqQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7WUFDOUMsQ0FBQztTQUFBO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzNCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFZRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQW9CLEVBQUU7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFMUCxxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFPbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRW5DLElBQUksS0FBSyxDQUFDLHlCQUF5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELE1BQU0sSUFBSSxLQUFLLENBQ2Isc0VBQXNFLENBQ3ZFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsNEJBQTRCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FDYixtRUFBbUUsQ0FDcEUsQ0FBQztRQUNKLENBQUM7UUFDRCw0RUFBNEU7UUFDNUUsa0RBQWtEO1FBQ2xELG1GQUFtRjtRQUNuRixJQUFJO1FBQ0osSUFDRSxLQUFLLENBQUMsNEJBQTRCLEtBQUssU0FBUztZQUNoRCxDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDO1lBQ3ZELENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQztnQkFDcEQsS0FBSyxDQUFDLDRCQUE0QixHQUFHLEdBQUc7Z0JBQ3hDLEtBQUssQ0FBQyw0QkFBNEIsR0FBRyxDQUFDLENBQUMsRUFDekMsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEUsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUMseUZBQXlGO1lBQ3pGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUNyRCxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUM7Z0JBQ2xCLFNBQVMsRUFBRSxHQUFHO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsU0FBUyxHQUFHLEdBQUcsVUFBVSxPQUFPLENBQUM7UUFDbkMsQ0FBQztRQUVELElBQ0UsS0FBSyxDQUFDLGdCQUFnQjtZQUN0QixDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1lBQzNDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxHQUFHO1lBQzlCLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxHQUFHLEVBQzlCLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLG1EQUFtRCxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsQ0FDN0UsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUNFLEtBQUssQ0FBQyxXQUFXO1lBQ2pCLENBQUMsYUFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3RDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFDOUIsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsaUVBQWlFLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQzVGLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVCQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDdEQsSUFBSSxFQUFFLFNBQVM7WUFDZixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsTUFBTTtZQUN2Qyx5QkFBeUIsRUFBRSxLQUFLLENBQUMseUJBQXlCO1lBQzFELFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNyQixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO2dCQUN0QyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxTQUFTO1lBQ2IsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLGFBQWEsRUFBRSxLQUFLLENBQUMsNEJBQTRCO2dCQUMvQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDYixzQkFBc0IsRUFBRSxLQUFLLENBQUMsNEJBQTRCO2lCQUMzRCxDQUFDO2dCQUNKLENBQUMsQ0FBQyxTQUFTO1lBQ2IsaUZBQWlGO1NBQ2xGLENBQUMsQ0FBQztRQUVILCtCQUErQjtRQUMvQixJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixJQUFJLEtBQUssQ0FBQztRQUUxRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLE1BQXFCO1FBQzNDLElBQUksTUFBTSxDQUFDLHlCQUF5QixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztZQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDdEQsTUFBTSxJQUFJLEtBQUssQ0FDYixtRUFBbUUsQ0FDcEUsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FDdkIsR0FBRyxNQUFNLENBQUMsUUFBUSw0QkFBNEIsRUFDOUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FDbkMsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUN2QixHQUFHLE1BQU0sQ0FBQyxRQUFRLDRCQUE0QixFQUM5QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUNuQyxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLHlCQUF5QixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUN2QixHQUFHLE1BQU0sQ0FBQyxRQUFRLCtCQUErQixFQUNqRCxNQUFNLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQzVDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxtQkFBbUIsQ0FDdEIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLEdBQUcsRUFBRSxtQkFBbUI7WUFDeEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUk7WUFDdkIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMxQixVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQjthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOztBQS9OSCxzQkFnT0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi9hNzYzM2E5OGNlMzI1YTYyMGYzNjRiZmRlZGEzNTQzNDI3NTE5MDBhL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1zbnMvbGliL3RvcGljLnRzXG5cbmltcG9ydCB7IHNuc1RvcGljIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0LCBBd3NTdGFjayB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0ICogYXMgZW5jcnlwdGlvbiBmcm9tIFwiLi4vZW5jcnlwdGlvblwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi9pYW1cIjtcbmltcG9ydCB7IElUb3BpYywgVG9waWNCYXNlIH0gZnJvbSBcIi4vdG9waWMtYmFzZVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgbmV3IFNOUyB0b3BpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvcGljUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGRldmVsb3Blci1kZWZpbmVkIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoaXMgU05TIHRvcGljLlxuICAgKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIG11c3QgYmUgbWF4aW11bSAxMDAgY2hhcmFjdGVycyBsb25nLCBpbmNsdWRpbmcgaHlwaGVucyAoLSksXG4gICAqIHVuZGVyc2NvcmVzIChfKSwgc3BhY2VzLCBhbmQgdGFicy5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbmFtZSBmb3IgdGhlIHRvcGljLlxuICAgKlxuICAgKiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIG5hbWUsIEFXUyBDbG91ZEZvcm1hdGlvbiBnZW5lcmF0ZXMgYSB1bmlxdWVcbiAgICogcGh5c2ljYWwgSUQgYW5kIHVzZXMgdGhhdCBJRCBmb3IgdGhlIHRvcGljIG5hbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLFxuICAgKiBzZWUgTmFtZSBUeXBlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBHZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIEtNUyBLZXksIGVpdGhlciBtYW5hZ2VkIGJ5IHRoaXMgQ0RLIGFwcCwgb3IgaW1wb3J0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IG1hc3RlcktleT86IGVuY3J5cHRpb24uSUtleTtcblxuICAvKipcbiAgICogRW5hYmxlcyBjb250ZW50LWJhc2VkIGRlZHVwbGljYXRpb24gZm9yIEZJRk8gdG9waWNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gY3JlYXRlIGEgRklGTyB0b3BpYy5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZmlmbz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGRlbGl2ZXJ5IHN0YXR1cyBsb2dnaW5nIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgdG9waWMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXRvcGljLWF0dHJpYnV0ZXMuaHRtbC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ0NvbmZpZ3M/OiBMb2dnaW5nQ29uZmlnW107XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGF5cyBBbWF6b24gU05TIHJldGFpbnMgbWVzc2FnZXMuXG4gICAqXG4gICAqIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgRklGTyB0b3BpY3MuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvZmlmby1tZXNzYWdlLWFyY2hpdmluZy1yZXBsYXkuaHRtbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBhcmNoaXZlIG1lc3NhZ2VzXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXQgd2hlbiBwdWJsaXNoaW5nIHRvIHRoZSB0b3BpYy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtc2VjdXJpdHktYmVzdC1wcmFjdGljZXMuaHRtbCNlbmZvcmNlLWVuY3J5cHRpb24tZGF0YS1pbi10cmFuc2l0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5mb3JjZVNTTD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzaWduYXR1cmUgdmVyc2lvbiBjb3JyZXNwb25kcyB0byB0aGUgaGFzaGluZyBhbGdvcml0aG0gdXNlZCB3aGlsZSBjcmVhdGluZyB0aGUgc2lnbmF0dXJlIG9mIHRoZSBub3RpZmljYXRpb25zLFxuICAgKiBzdWJzY3JpcHRpb24gY29uZmlybWF0aW9ucywgb3IgdW5zdWJzY3JpYmUgY29uZmlybWF0aW9uIG1lc3NhZ2VzIHNlbnQgYnkgQW1hem9uIFNOUy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc25zL2xhdGVzdC9kZy9zbnMtdmVyaWZ5LXNpZ25hdHVyZS1vZi1tZXNzYWdlLmh0bWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IHNpZ25hdHVyZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRyYWNpbmcgbW9kZSBvZiBhbiBBbWF6b24gU05TIHRvcGljLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zbnMvbGF0ZXN0L2RnL3Nucy1hY3RpdmUtdHJhY2luZy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IFRyYWNpbmdDb25maWcuUEFTU19USFJPVUdIXG4gICAqL1xuICByZWFkb25seSB0cmFjaW5nQ29uZmlnPzogVHJhY2luZ0NvbmZpZztcblxuICAvLyBUT0RPOiBmaWZvVGhyb3VnaHB1dFNjb3BlIGlzIG5vdCBkaXJlY3RseSBzdXBwb3J0ZWQgYnkgYXdzX3Nuc190b3BpYyBpbiBUZXJyYWZvcm0gYXMgb2YgcHJvdmlkZXIgdjUuOTMuMFxuICAvLyAvKipcbiAgLy8gICogU3BlY2lmaWVzIHRoZSB0aHJvdWdocHV0IHF1b3RhIGFuZCBkZWR1cGxpY2F0aW9uIGJlaGF2aW9yIHRvIGFwcGx5IGZvciB0aGUgRklGTyB0b3BpYy5cbiAgLy8gICpcbiAgLy8gICogWW91IGNhbiBvbmx5IHNldCB0aGlzIHByb3BlcnR5IHdoZW4gYGZpZm9gIGlzIGB0cnVlYC5cbiAgLy8gICpcbiAgLy8gICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gU05TIGRlZmF1bHQgc2V0dGluZyBpcyBGaWZvVGhyb3VnaHB1dFNjb3BlLlRPUElDXG4gIC8vICAqL1xuICAvLyByZWFkb25seSBmaWZvVGhyb3VnaHB1dFNjb3BlPzogRmlmb1Rocm91Z2hwdXRTY29wZTtcbn1cblxuLy8gVE9ETzogZmlmb1Rocm91Z2hwdXRTY29wZSBpcyBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGJ5IGF3c19zbnNfdG9waWMgaW4gVGVycmFmb3JtIGFzIG9mIHByb3ZpZGVyIHY1LjkzLjBcbi8vIC8qKlxuLy8gICogVGhlIHRocm91Z2hwdXQgcXVvdGEgYW5kIGRlZHVwbGljYXRpb24gYmVoYXZpb3IgdG8gYXBwbHkgZm9yIHRoZSBGSUZPIHRvcGljLlxuLy8gICovXG4vLyBleHBvcnQgZW51bSBGaWZvVGhyb3VnaHB1dFNjb3BlIHtcbi8vICAgLyoqXG4vLyAgICAqIFRvcGljIHNjb3BlXG4vLyAgICAqIC0gVGhyb3VnaHB1dDogMzAwMCBtZXNzYWdlcyBwZXIgc2Vjb25kIGFuZCBhIGJhbmR3aWR0aCBvZiAyME1CIHBlciBzZWNvbmQuXG4vLyAgICAqIC0gRGVkdXBsaWNhdGlvbjogTWVzc2FnZSBkZWR1cGxpY2F0aW9uIGlzIHZlcmlmaWVkIG9uIHRoZSBlbnRpcmUgRklGTyB0b3BpYy5cbi8vICAgICovXG4vLyAgIFRPUElDID0gJ1RvcGljJyxcblxuLy8gICAvKipcbi8vICAgICogTWVzc2FnZSBncm91cCBzY29wZVxuLy8gICAgKiAtIFRocm91Z2hwdXQ6IE1heGltdW0gcmVnaW9uYWwgbGltaXRzLlxuLy8gICAgKiAtIERlZHVwbGljYXRpb246IE1lc3NhZ2UgZGVkdXBsaWNhdGlvbiBpcyBvbmx5IHZlcmlmaWVkIHdpdGhpbiBhIG1lc3NhZ2UgZ3JvdXAuXG4vLyAgICAqL1xuLy8gICBNRVNTQUdFX0dST1VQID0gJ01lc3NhZ2VHcm91cCcsXG4vLyB9XG5cbi8qKlxuICogQSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGRlbGl2ZXJ5IHN0YXR1cyBvZiBtZXNzYWdlcyBzZW50IGZyb20gU05TIHRvcGljIHRvIHN1YnNjcmliZWQgZW5kcG9pbnRzLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXRvcGljLWF0dHJpYnV0ZXMuaHRtbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dnaW5nQ29uZmlnIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBvbmUgb2YgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgZm9yIHRoZSBTTlMgdG9waWMuXG4gICAqL1xuICByZWFkb25seSBwcm90b2NvbDogTG9nZ2luZ1Byb3RvY29sO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgdG8gYmUgdXNlZCB3aGVuIGxvZ2dpbmcgZmFpbGVkIG1lc3NhZ2UgZGVsaXZlcmllcyBpbiBBbWF6b24gQ2xvdWRXYXRjaC5cbiAgICpcbiAgICogQGRlZmF1bHQgTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZmFpbHVyZUZlZWRiYWNrUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRvIGJlIHVzZWQgd2hlbiBsb2dnaW5nIHN1Y2Nlc3NmdWwgbWVzc2FnZSBkZWxpdmVyaWVzIGluIEFtYXpvbiBDbG91ZFdhdGNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBOb25lXG4gICAqL1xuICByZWFkb25seSBzdWNjZXNzRmVlZGJhY2tSb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgcGVyY2VudGFnZSBvZiBzdWNjZXNzZnVsIG1lc3NhZ2UgZGVsaXZlcmllcyB0byBiZSBsb2dnZWQgaW4gQW1hem9uIENsb3VkV2F0Y2guXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgaW50ZWdlciBiZXR3ZWVuIDAtMTAwXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHN1Y2Nlc3NGZWVkYmFja1NhbXBsZVJhdGU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2Ygc3VwcG9ydGVkIHByb3RvY29sIGZvciBkZWxpdmVyeSBzdGF0dXMgbG9nZ2luZy5cbiAqL1xuZXhwb3J0IGVudW0gTG9nZ2luZ1Byb3RvY29sIHtcbiAgLyoqXG4gICAqIEhUVFBcbiAgICovXG4gIEhUVFAgPSBcImh0dHBcIiwgLy8gTk9URTogQVdTQ0RLIGVudW0gdmFsdWUgPSBcImh0dHAvc1wiLFxuXG4gIC8qKlxuICAgKiBBbWF6b24gU2ltcGxlIFF1ZXVlIFNlcnZpY2VcbiAgICovXG4gIFNRUyA9IFwic3FzXCIsXG5cbiAgLyoqXG4gICAqIEFXUyBMYW1iZGFcbiAgICovXG4gIExBTUJEQSA9IFwibGFtYmRhXCIsXG5cbiAgLyoqXG4gICAqIEFtYXpvbiBEYXRhIEZpcmVob3NlXG4gICAqL1xuICBGSVJFSE9TRSA9IFwiZmlyZWhvc2VcIixcblxuICAvKipcbiAgICogUGxhdGZvcm0gYXBwbGljYXRpb24gZW5kcG9pbnRcbiAgICovXG4gIEFQUExJQ0FUSU9OID0gXCJhcHBsaWNhdGlvblwiLFxufVxuXG4vKipcbiAqIFRoZSB0cmFjaW5nIG1vZGUgb2YgYW4gQW1hem9uIFNOUyB0b3BpY1xuICovXG5leHBvcnQgZW51bSBUcmFjaW5nQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBtb2RlIHRoYXQgdG9waWMgcGFzc2VzIHRyYWNlIGhlYWRlcnMgcmVjZWl2ZWQgZnJvbSB0aGUgQW1hem9uIFNOUyBwdWJsaXNoZXIgdG8gaXRzIHN1YnNjcmlwdGlvbi5cbiAgICovXG4gIFBBU1NfVEhST1VHSCA9IFwiUGFzc1Rocm91Z2hcIixcblxuICAvKipcbiAgICogVGhlIG1vZGUgdGhhdCBBbWF6b24gU05TIHZlbmQgWC1SYXkgc2VnbWVudCBkYXRhIHRvIHRvcGljIG93bmVyIGFjY291bnQgaWYgdGhlIHNhbXBsZWQgZmxhZyBpbiB0aGUgdHJhY2luZyBoZWFkZXIgaXMgdHJ1ZS5cbiAgICovXG4gIEFDVElWRSA9IFwiQWN0aXZlXCIsXG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBTTlMgdG9waWMgZGVmaW5lZCBvdXRzaWRlIG9mIHRoaXMgc3RhY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG9waWNBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIFNOUyB0b3BpYy5cbiAgICovXG4gIHJlYWRvbmx5IHRvcGljQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEtNUyBlbmNyeXB0aW9uIGtleSBBUk4sIGlmIHRoaXMgdG9waWMgaXMgc2VydmVyLXNpZGUgZW5jcnlwdGVkIGJ5IGEgS01TIGtleS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBrZXlBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY29udGVudC1iYXNlZCBkZWR1cGxpY2F0aW9uIGlzIGVuYWJsZWQuXG4gICAqIE9ubHkgYXBwbGljYWJsZSBmb3IgRklGTyB0b3BpY3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIG5ldyBTTlMgdG9waWNcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX3Nuc190b3BpY1xuICovXG5leHBvcnQgY2xhc3MgVG9waWMgZXh0ZW5kcyBUb3BpY0Jhc2Uge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIFNOUyB0b3BpYyBwcm92aWRlZCBhbiBBUk5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBwYXJlbnQgY3JlYXRpbmcgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gdG9waWNBcm4gdG9waWMgQVJOIChpLmUuIGFybjphd3M6c25zOnVzLWVhc3QtMjo0NDQ0NTU1NTY2NjY6TXlUb3BpYylcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVRvcGljQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB0b3BpY0Fybjogc3RyaW5nLFxuICApOiBJVG9waWMge1xuICAgIHJldHVybiBUb3BpYy5mcm9tVG9waWNBdHRyaWJ1dGVzKHNjb3BlLCBpZCwgeyB0b3BpY0FybiB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgU05TIHRvcGljIHByb3ZpZGVkIGEgdG9waWMgYXR0cmlidXRlc1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QncyBuYW1lXG4gICAqIEBwYXJhbSBhdHRycyB0aGUgYXR0cmlidXRlcyBvZiB0aGUgdG9waWMgdG8gaW1wb3J0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Ub3BpY0F0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBUb3BpY0F0dHJpYnV0ZXMsXG4gICk6IElUb3BpYyB7XG4gICAgY29uc3Qgc3RhY2sgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSk7XG4gICAgY29uc3QgdG9waWNOYW1lID0gc3RhY2suc3BsaXRBcm4oXG4gICAgICBhdHRycy50b3BpY0FybixcbiAgICAgIEFybkZvcm1hdC5OT19SRVNPVVJDRV9OQU1FLFxuICAgICkucmVzb3VyY2U7XG4gICAgY29uc3QgZmlmbyA9IHRvcGljTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpO1xuXG4gICAgaWYgKGF0dHJzLmNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gJiYgIWZpZm8pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDYW5ub3QgaW1wb3J0IHRvcGljOyBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGZvciBGSUZPIFNOUyB0b3BpY3MuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFRvcGljQmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdG9waWNBcm4gPSBhdHRycy50b3BpY0FybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0b3BpY05hbWUgPSB0b3BpY05hbWU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbWFzdGVyS2V5ID0gYXR0cnMua2V5QXJuXG4gICAgICAgID8gZW5jcnlwdGlvbi5LZXkuZnJvbUtleUFybih0aGlzLCBcIktleVwiLCBhdHRycy5rZXlBcm4pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGZpZm8gPSBmaWZvO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gPVxuICAgICAgICBhdHRycy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uIHx8IGZhbHNlO1xuICAgICAgcHJvdGVjdGVkIGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQsIHtcbiAgICAgIGVudmlyb25tZW50RnJvbUFybjogYXR0cnMudG9waWNBcm4sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgdG9waWNBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRvcGljTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWFzdGVyS2V5PzogZW5jcnlwdGlvbi5JS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbjogYm9vbGVhbjtcbiAgcHVibGljIHJlYWRvbmx5IGZpZm86IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dG9DcmVhdGVQb2xpY3k6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2U6IHNuc1RvcGljLlNuc1RvcGljO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBUb3BpY1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMuZW5mb3JjZVNTTCA9IHByb3BzLmVuZm9yY2VTU0w7XG5cbiAgICBpZiAocHJvcHMuY29udGVudEJhc2VkRGVkdXBsaWNhdGlvbiAmJiAhcHJvcHMuZmlmbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNvbnRlbnQgYmFzZWQgZGVkdXBsaWNhdGlvbiBjYW4gb25seSBiZSBlbmFibGVkIGZvciBGSUZPIFNOUyB0b3BpY3MuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cyAmJiAhcHJvcHMuZmlmbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzYCBpcyBvbmx5IHZhbGlkIGZvciBGSUZPIFNOUyB0b3BpY3MuXCIsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBUT0RPOiBmaWZvVGhyb3VnaHB1dFNjb3BlIHZhbGlkYXRpb24gcmVtb3ZlZCBhcyBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkXG4gICAgLy8gaWYgKHByb3BzLmZpZm9UaHJvdWdocHV0U2NvcGUgJiYgIXByb3BzLmZpZm8pIHtcbiAgICAvLyAgIHRocm93IG5ldyBFcnJvcignYGZpZm9UaHJvdWdocHV0U2NvcGVgIGNhbiBvbmx5IGJlIHNldCBmb3IgRklGTyBTTlMgdG9waWNzLicpO1xuICAgIC8vIH1cbiAgICBpZiAoXG4gICAgICBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cykgJiZcbiAgICAgICghTnVtYmVyLmlzSW50ZWdlcihwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzKSB8fFxuICAgICAgICBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzID4gMzY1IHx8XG4gICAgICAgIHByb3BzLm1lc3NhZ2VSZXRlbnRpb25QZXJpb2RJbkRheXMgPCAxKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzYCBtdXN0IGJlIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzNjVcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IHRvcGljTmFtZSA9IHByb3BzLnRvcGljTmFtZTtcbiAgICBpZiAocHJvcHMuZmlmbyAmJiBwcm9wcy50b3BpY05hbWUgJiYgIXByb3BzLnRvcGljTmFtZS5lbmRzV2l0aChcIi5maWZvXCIpKSB7XG4gICAgICB0b3BpY05hbWUgPSBwcm9wcy50b3BpY05hbWUgKyBcIi5maWZvXCI7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5maWZvICYmICFwcm9wcy50b3BpY05hbWUpIHtcbiAgICAgIC8vIE1heCBsZW5ndGggYWxsb3dlZCBieSBDbG91ZEZvcm1hdGlvbiBpcyAyNTYsIHdlIHN1YnRyYWN0IDUgdG8gYWxsb3cgZm9yIFwiLmZpZm9cIiBzdWZmaXhcbiAgICAgIGNvbnN0IHByZWZpeE5hbWUgPSB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIG1heExlbmd0aDogMjU2IC0gNSxcbiAgICAgICAgc2VwYXJhdG9yOiBcIi1cIixcbiAgICAgIH0pO1xuICAgICAgdG9waWNOYW1lID0gYCR7cHJlZml4TmFtZX0uZmlmb2A7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuc2lnbmF0dXJlVmVyc2lvbiAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5zaWduYXR1cmVWZXJzaW9uKSAmJlxuICAgICAgcHJvcHMuc2lnbmF0dXJlVmVyc2lvbiAhPT0gXCIxXCIgJiZcbiAgICAgIHByb3BzLnNpZ25hdHVyZVZlcnNpb24gIT09IFwiMlwiXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBzaWduYXR1cmVWZXJzaW9uIG11c3QgYmUgXCIxXCIgb3IgXCIyXCIsIHJlY2VpdmVkOiBcIiR7cHJvcHMuc2lnbmF0dXJlVmVyc2lvbn1cImAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLmRpc3BsYXlOYW1lICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRpc3BsYXlOYW1lKSAmJlxuICAgICAgcHJvcHMuZGlzcGxheU5hbWUubGVuZ3RoID4gMTAwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBkaXNwbGF5TmFtZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAxMDAgY2hhcmFjdGVycywgZ290ICR7cHJvcHMuZGlzcGxheU5hbWUubGVuZ3RofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgc25zVG9waWMuU25zVG9waWModGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOiB0b3BpY05hbWUsXG4gICAgICBkaXNwbGF5TmFtZTogcHJvcHMuZGlzcGxheU5hbWUsXG4gICAgICBrbXNNYXN0ZXJLZXlJZDogcHJvcHMubWFzdGVyS2V5Py5rZXlBcm4sXG4gICAgICBjb250ZW50QmFzZWREZWR1cGxpY2F0aW9uOiBwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uLFxuICAgICAgZmlmb1RvcGljOiBwcm9wcy5maWZvLFxuICAgICAgc2lnbmF0dXJlVmVyc2lvbjogcHJvcHMuc2lnbmF0dXJlVmVyc2lvblxuICAgICAgICA/IHBhcnNlSW50KHByb3BzLnNpZ25hdHVyZVZlcnNpb24sIDEwKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHRyYWNpbmdDb25maWc6IHByb3BzLnRyYWNpbmdDb25maWcsXG4gICAgICBhcmNoaXZlUG9saWN5OiBwcm9wcy5tZXNzYWdlUmV0ZW50aW9uUGVyaW9kSW5EYXlzXG4gICAgICAgID8gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgTWVzc2FnZVJldGVudGlvblBlcmlvZDogcHJvcHMubWVzc2FnZVJldGVudGlvblBlcmlvZEluRGF5cyxcbiAgICAgICAgICB9KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIC8vIFRPRE86IGZpZm9UaHJvdWdocHV0U2NvcGUgaXMgbm90IHN1cHBvcnRlZCBpbiBUZXJyYWZvcm0gYXMgb2YgcHJvdmlkZXIgdjUuOTMuMFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIGxvZ2dpbmcgY29uZmlnIG92ZXJyaWRlc1xuICAgIGlmIChwcm9wcy5sb2dnaW5nQ29uZmlncykge1xuICAgICAgcHJvcHMubG9nZ2luZ0NvbmZpZ3MuZm9yRWFjaCgoYykgPT4gdGhpcy5hZGRMb2dnaW5nQ29uZmlnKGMpKTtcbiAgICB9XG5cbiAgICB0aGlzLnRvcGljQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gICAgdGhpcy50b3BpY05hbWUgPSB0aGlzLnJlc291cmNlLm5hbWU7XG4gICAgdGhpcy5tYXN0ZXJLZXkgPSBwcm9wcy5tYXN0ZXJLZXk7XG4gICAgdGhpcy5maWZvID0gcHJvcHMuZmlmbyB8fCBmYWxzZTtcbiAgICB0aGlzLmNvbnRlbnRCYXNlZERlZHVwbGljYXRpb24gPSBwcm9wcy5jb250ZW50QmFzZWREZWR1cGxpY2F0aW9uIHx8IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuZW5mb3JjZVNTTCkge1xuICAgICAgdGhpcy5hZGRTU0xQb2xpY3koKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGRlbGl2ZXJ5IHN0YXR1cyBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gdG8gdGhlIHRvcGljLlxuICAgKi9cbiAgcHVibGljIGFkZExvZ2dpbmdDb25maWcoY29uZmlnOiBMb2dnaW5nQ29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tTYW1wbGVSYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHJhdGUgPSBjb25maWcuc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZTtcbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihyYXRlKSB8fCByYXRlIDwgMCB8fCByYXRlID4gMTAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIlN1Y2Nlc3MgZmVlZGJhY2sgc2FtcGxlIHJhdGUgbXVzdCBiZSBhbiBpbnRlZ2VyIGJldHdlZW4gMCBhbmQgMTAwXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5mYWlsdXJlRmVlZGJhY2tSb2xlKSB7XG4gICAgICB0aGlzLnJlc291cmNlLmFkZE92ZXJyaWRlKFxuICAgICAgICBgJHtjb25maWcucHJvdG9jb2x9X2ZhaWx1cmVfZmVlZGJhY2tfcm9sZV9hcm5gLFxuICAgICAgICBjb25maWcuZmFpbHVyZUZlZWRiYWNrUm9sZS5yb2xlQXJuLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnN1Y2Nlc3NGZWVkYmFja1JvbGUpIHtcbiAgICAgIHRoaXMucmVzb3VyY2UuYWRkT3ZlcnJpZGUoXG4gICAgICAgIGAke2NvbmZpZy5wcm90b2NvbH1fc3VjY2Vzc19mZWVkYmFja19yb2xlX2FybmAsXG4gICAgICAgIGNvbmZpZy5zdWNjZXNzRmVlZGJhY2tSb2xlLnJvbGVBcm4sXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlc291cmNlLmFkZE92ZXJyaWRlKFxuICAgICAgICBgJHtjb25maWcucHJvdG9jb2x9X3N1Y2Nlc3NfZmVlZGJhY2tfc2FtcGxlX3JhdGVgLFxuICAgICAgICBjb25maWcuc3VjY2Vzc0ZlZWRiYWNrU2FtcGxlUmF0ZS50b1N0cmluZygpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhbiBJQU0gcG9saWN5IHN0YXRlbWVudCB0byBlbmZvcmNlIHRoZSB1c2Ugb2YgVExTIGZvciBwdWJsaXNoaW5nIHRvIHRoaXMgdG9waWMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nucy9sYXRlc3QvZGcvc25zLXNlY3VyaXR5LWJlc3QtcHJhY3RpY2VzLmh0bWwjZW5mb3JjZS1lbmNyeXB0aW9uLWRhdGEtaW4tdHJhbnNpdFxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFNTTFBvbGljeSgpOiB2b2lkIHtcbiAgICB0aGlzLmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHNpZDogXCJFbmZvcmNlUHVibGlzaFNTTFwiLFxuICAgICAgICBhY3Rpb25zOiBbXCJzbnM6UHVibGlzaFwiXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkRFTlksXG4gICAgICAgIHJlc291cmNlczogW3RoaXMudG9waWNBcm5dLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5BbnlQcmluY2lwYWwoKV0sXG4gICAgICAgIGNvbmRpdGlvbjogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRlc3Q6IFwiQm9vbFwiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNlY3VyZVRyYW5zcG9ydFwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbXCJmYWxzZVwiXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -165,5 +165,5 @@ class BucketNotifications extends aws_construct_1.AwsConstructBase {
165
165
  }
166
166
  exports.BucketNotifications = BucketNotifications;
167
167
  _a = JSII_RTTI_SYMBOL_1;
168
- BucketNotifications[_a] = { fqn: "terraconstructs.aws.storage.BucketNotifications", version: "0.0.17" };
168
+ BucketNotifications[_a] = { fqn: "terraconstructs.aws.storage.BucketNotifications", version: "0.0.18" };
169
169
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LW5vdGlmaWNhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL3N0b3JhZ2UvYnVja2V0LW5vdGlmaWNhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBMkQ7QUFDM0QsaUNBQTZCO0FBRTdCLG9EQUF1RTtBQUV2RSw2REFHOEI7QUFTOUI7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLG1CQUFvQixTQUFRLGdDQUFnQjtJQUV2RCxJQUFXLE9BQU87UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBV0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBVlgsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLHdCQUFtQixHQUNsQyxJQUFJLEtBQUssRUFBMkQsQ0FBQztRQUN0RCx1QkFBa0IsR0FDakMsSUFBSSxLQUFLLEVBQWtELENBQUM7UUFDN0MsdUJBQWtCLEdBQ2pDLElBQUksS0FBSyxFQUFrRCxDQUFDO1FBSzVELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FDcEIsS0FBZ0IsRUFDaEIsTUFBc0MsRUFDdEMsR0FBRyxPQUFnQztRQUVuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQyxpRkFBaUY7UUFDakYseUJBQXlCO1FBQ3pCLHlCQUF5QjtRQUN6QixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzdCLDBDQUEwQztZQUMxQyxxQkFBcUI7WUFDckIscUVBQXFFO1lBQ3JFLE9BQU87WUFDUCxJQUFJO1lBQ0osdUJBQXVCO1lBQ3ZCLHFCQUFxQjtZQUNyQix1QkFBdUI7WUFDdkIsaUVBQWlFO1lBQ2pFLFNB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WUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDbkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQzt3QkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNoQyxtQ0FBb0IsQ0FBQyxvQ0FBb0MsQ0FDdkQsQ0FBQyxDQUNGLENBQ0Y7d0JBQ0gsQ0FBQyxDQUFDLFNBQVM7aUJBQ2hCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFlBQUksQ0FBQyxRQUFRLENBQUM7b0JBQ25CLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FDWixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUM7d0JBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDaEMsbUNBQW9CLENBQUMsb0NBQW9DLENBQ3ZELENBQUMsQ0FDRixDQUNGO3dCQUNILENBQUMsQ0FBQyxTQUFTO2lCQUNoQixDQUFDO2FBQ0gsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVc7UUFDaEIsd0VBQXdFO1FBQ3hFLDRGQUE0RjtRQUM1RixrREFBa0Q7UUFDbEQscUhBQXFIO1FBQ3JILGtHQUFrRztRQUNsRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOztBQXBMSCxrREFxTEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzM0J1Y2tldE5vdGlmaWNhdGlvbiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBMYXp5IH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgSUJ1Y2tldCwgRXZlbnRUeXBlLCBOb3RpZmljYXRpb25LZXlGaWx0ZXIgfSBmcm9tIFwiLi9idWNrZXRcIjtcbmltcG9ydCB7XG4gIEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZSxcbiAgSUJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uLFxufSBmcm9tIFwiLi9idWNrZXQtZGVzdGluYXRpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25zUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgYnVja2V0IHRvIG1hbmFnZSBub3RpZmljYXRpb25zIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbn1cblxuLyoqXG4gKiBBIGN1c3RvbSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSB0aGF0IHVwZGF0ZXMgYnVja2V0IG5vdGlmaWNhdGlvbnMgZm9yIGFcbiAqIGJ1Y2tldC4gVGhlIHJlYXNvbiB3ZSBuZWVkIGl0IGlzIGJlY2F1c2UgdGhlIEFXUzo6UzM6OkJ1Y2tldCBub3RpZmljYXRpb25cbiAqIGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5lZCBvbiB0aGUgYnVja2V0IGl0c2VsZiwgd2hpY2ggbWFrZXMgaXQgaW1wb3NzaWJsZSB0b1xuICogcHJvdmlzaW9uIG5vdGlmaWNhdGlvbnMgYXQgdGhlIHNhbWUgdGltZSBhcyB0aGUgdGFyZ2V0IChzaW5jZVxuICogUHV0QnVja2V0Tm90aWZpY2F0aW9ucyB2YWxpZGF0ZXMgdGhlIHRhcmdldHMpLlxuICpcbiAqIFNpbmNlIG9ubHkgYSBzaW5nbGUgQnVja2V0Tm90aWZpY2F0aW9ucyByZXNvdXJjZSBpcyBhbGxvd2VkIGZvciBlYWNoIEJ1Y2tldCxcbiAqIHRoaXMgY29uc3RydWN0IGlzIG5vdCBleHBvcnRlZCBpbiB0aGUgcHVibGljIEFQSSBvZiB0aGlzIG1vZHVsZS4gSW5zdGVhZCwgaXRcbiAqIGlzIGNyZWF0ZWQganVzdC1pbi10aW1lIGJ5IGBzMy5CdWNrZXQub25FdmVudGAsIHNvIGEgMToxIHJlbGF0aW9uc2hpcCBpc1xuICogZW5zdXJlZC5cbiAqXG4gKiBAc2VlXG4gKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1zMy1idWNrZXQtbm90aWZpY2F0aW9uY29uZmlnLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIEJ1Y2tldE5vdGlmaWNhdGlvbnMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgcHVibGljIHJlc291cmNlPzogczNCdWNrZXROb3RpZmljYXRpb24uUzNCdWNrZXROb3RpZmljYXRpb247XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBwcml2YXRlIGV2ZW50QnJpZGdlRW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGxhbWJkYU5vdGlmaWNhdGlvbnMgPVxuICAgIG5ldyBBcnJheTxzM0J1Y2tldE5vdGlmaWNhdGlvbi5TM0J1Y2tldE5vdGlmaWNhdGlvbkxhbWJkYUZ1bmN0aW9uPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHF1ZXVlTm90aWZpY2F0aW9ucyA9XG4gICAgbmV3IEFycmF5PHMzQnVja2V0Tm90aWZpY2F0aW9uLlMzQnVja2V0Tm90aWZpY2F0aW9uUXVldWU+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9waWNOb3RpZmljYXRpb25zID1cbiAgICBuZXcgQXJyYXk8czNCdWNrZXROb3RpZmljYXRpb24uUzNCdWNrZXROb3RpZmljYXRpb25Ub3BpYz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5vdGlmaWNhdGlvbnNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5idWNrZXQgPSBwcm9wcy5idWNrZXQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5vdGlmaWNhdGlvbiBzdWJzY3JpcHRpb24gZm9yIHRoaXMgYnVja2V0LlxuICAgKiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBub3RpZmljYXRpb24sIGEgQnVja2V0Tm90aWZpY2F0aW9uIHJlc291cmNlIGlzIGFkZGVkIHRvIHRoZSBzdGFjay5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IFRoZSB0eXBlIG9mIGV2ZW50XG4gICAqIEBwYXJhbSB0YXJnZXQgVGhlIHRhcmdldCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGZpbHRlcnMgQSBzZXQgb2YgUzMga2V5IGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBhZGROb3RpZmljYXRpb24oXG4gICAgZXZlbnQ6IEV2ZW50VHlwZSxcbiAgICB0YXJnZXQ6IElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbixcbiAgICAuLi5maWx0ZXJzOiBOb3RpZmljYXRpb25LZXlGaWx0ZXJbXVxuICApIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IHRoaXMuY3JlYXRlUmVzb3VyY2VPbmNlKCk7XG4gICAgLy8gVE9ETzogU2VlbXMgVGVycmFmb3JtIHByb3ZpZGVyIGRvZXMgbm90IGhhdmUgbGltaXRhdGlvbnMgb24gcHJlZml4IGFuZCBzdWZmaXg/XG4gICAgLy8gbGV0IGhhc1ByZWZpeCA9IGZhbHNlO1xuICAgIC8vIGxldCBoYXNTdWZmaXggPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICAvLyBpZiAoIWZpbHRlci5zdWZmaXggJiYgIWZpbHRlci5wcmVmaXgpIHtcbiAgICAgIC8vICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgLy8gICAgIFwiTm90aWZpY2F0aW9uS2V5RmlsdGVyIG11c3Qgc3BlY2lmeSBgcHJlZml4YCBhbmQvb3IgYHN1ZmZpeGBcIixcbiAgICAgIC8vICAgKTtcbiAgICAgIC8vIH1cbiAgICAgIC8vIGlmIChmaWx0ZXIuc3VmZml4KSB7XG4gICAgICAvLyAgIGlmIChoYXNTdWZmaXgpIHtcbiAgICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAvLyAgICAgICBcIkNhbm5vdCBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgc3VmZml4IHJ1bGUgaW4gYSBmaWx0ZXIuXCIsXG4gICAgICAvLyAgICAgKTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gICBoYXNTdWZmaXggPSB0cnVlO1xuICAgICAgLy8gfVxuICAgICAgLy8gaWYgKGZpbHRlci5wcmVmaXgpIHtcbiAgICAgIC8vICAgaWYgKGhhc1ByZWZpeCkge1xuICAgICAgLy8gICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIC8vICAgICAgIFwiQ2Fubm90IHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBwcmVmaXggcnVsZSBpbiBhIGZpbHRlci5cIixcbiAgICAgIC8vICAgICApO1xuICAgICAgLy8gICB9XG4gICAgICAvLyAgIGhhc1ByZWZpeCA9IHRydWU7XG4gICAgICAvLyB9XG4gICAgICAvLyByZXNvbHZlIHRhcmdldC4gdGhpcyBhbHNvIHByb3ZpZGVzIGFuIG9wcG9ydHVuaXR5IGZvciB0aGUgdGFyZ2V0IHRvIGUuZy4gdXBkYXRlXG4gICAgICAvLyBwb2xpY2llcyB0byBhbGxvdyB0aGlzIG5vdGlmaWNhdGlvbiB0byBoYXBwZW4uXG4gICAgICBjb25zdCB0YXJnZXRQcm9wcyA9IHRhcmdldC5iaW5kKHRoaXMsIHRoaXMuYnVja2V0KTtcbiAgICAgIGNvbnN0IGNvbW1vbkNvbmZpZzogQ29tbW9uQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgZXZlbnRzOiBbZXZlbnRdLFxuICAgICAgICBpZDogZmlsdGVyLmlkLFxuICAgICAgICBmaWx0ZXJQcmVmaXg6IGZpbHRlci5wcmVmaXgsXG4gICAgICAgIGZpbHRlclN1ZmZpeDogZmlsdGVyLnN1ZmZpeCxcbiAgICAgIH07XG5cbiAgICAgIC8vIGlmIHRoZSB0YXJnZXQgc3BlY2lmaWVzIGFueSBkZXBlbmRlbmNpZXMsIGFkZCB0aGVtIGhlcmUuXG4gICAgICAvLyBmb3IgZXhhbXBsZSwgdGhlIFNOUyB0b3BpYyBwb2xpY3kgbXVzdCBiZSBjcmVhdGVkIC9iZWZvcmUvIHRoZSBub3RpZmljYXRpb24gcmVzb3VyY2UuXG4gICAgICAvLyBvdGhlcndpc2UsIFMzIHdvbid0IGJlIGFibGUgdG8gY29uZmlybSB0aGUgc3Vic2NyaXB0aW9uLlxuICAgICAgaWYgKHRhcmdldFByb3BzLmRlcGVuZGVuY2llcykge1xuICAgICAgICByZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3koLi4udGFyZ2V0UHJvcHMuZGVwZW5kZW5jaWVzKTtcbiAgICAgIH1cblxuICAgICAgLy8gYmFzZWQgb24gdGhlIHRhcmdldCB0eXBlLCBhZGQgdGhlIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb25zIGFycmF5XG4gICAgICBzd2l0Y2ggKHRhcmdldFByb3BzLnR5cGUpIHtcbiAgICAgICAgY2FzZSBCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvblR5cGUuTEFNQkRBOlxuICAgICAgICAgIHRoaXMubGFtYmRhTm90aWZpY2F0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIC4uLmNvbW1vbkNvbmZpZyxcbiAgICAgICAgICAgIGxhbWJkYUZ1bmN0aW9uQXJuOiB0YXJnZXRQcm9wcy5hcm4sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvblR5cGUuUVVFVUU6XG4gICAgICAgICAgdGhpcy5xdWV1ZU5vdGlmaWNhdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAuLi5jb21tb25Db25maWcsXG4gICAgICAgICAgICBxdWV1ZUFybjogdGFyZ2V0UHJvcHMuYXJuLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIC8vIFRPRE86IHJlLWFkZCBTTlMgc3VwcG9ydFxuICAgICAgICBjYXNlIEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZS5UT1BJQzpcbiAgICAgICAgICB0aGlzLnRvcGljTm90aWZpY2F0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgIC4uLmNvbW1vbkNvbmZpZyxcbiAgICAgICAgICAgIHRvcGljQXJuOiB0YXJnZXRQcm9wcy5hcm4sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBcIlVuc3VwcG9ydGVkIG5vdGlmaWNhdGlvbiB0YXJnZXQgdHlwZTpcIiArXG4gICAgICAgICAgICAgIEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZVt0YXJnZXRQcm9wcy50eXBlXSxcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVFdmVudEJyaWRnZU5vdGlmaWNhdGlvbigpIHtcbiAgICB0aGlzLmNyZWF0ZVJlc291cmNlT25jZSgpO1xuICAgIHRoaXMuZXZlbnRCcmlkZ2VFbmFibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBidWNrZXQgbm90aWZpY2F0aW9ucyByZXNvdXJjZXMgaW4gdGhlIHN0YWNrIG9ubHkgb25jZS5cbiAgICogVGhpcyBpcyBjYWxsZWQgbGF6aWx5IGFzIHdlIGFkZCBub3RpZmljYXRpb25zLCBzbyB0aGF0IGlmIG5vdGlmaWNhdGlvbnMgYXJlIG5vdCBhZGRlZCxcbiAgICogdGhlcmUgaXMgbm8gbm90aWZpY2F0aW9ucyByZXNvdXJjZS5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlUmVzb3VyY2VPbmNlKCkge1xuICAgIGlmICghdGhpcy5yZXNvdXJjZSkge1xuICAgICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzM0J1Y2tldE5vdGlmaWNhdGlvbi5TM0J1Y2tldE5vdGlmaWNhdGlvbihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgYnVja2V0OiB0aGlzLmJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgICAgIGV2ZW50YnJpZGdlOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuZXZlbnRCcmlkZ2VFbmFibGVkLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGxhbWJkYUZ1bmN0aW9uOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgICAgIHByb2R1Y2U6ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMubGFtYmRhTm90aWZpY2F0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgPyB0aGlzLmxhbWJkYU5vdGlmaWNhdGlvbnMubWFwKChsKSA9PlxuICAgICAgICAgICAgICAgICAgICBzM0J1Y2tldE5vdGlmaWNhdGlvbi5zM0J1Y2tldE5vdGlmaWNhdGlvbkxhbWJkYUZ1bmN0aW9uVG9UZXJyYWZvcm0oXG4gICAgICAgICAgICAgICAgICAgICAgbCxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBxdWV1ZTogTGF6eS5hbnlWYWx1ZSh7XG4gICAgICAgICAgICBwcm9kdWNlOiAoKSA9PlxuICAgICAgICAgICAgICB0aGlzLnF1ZXVlTm90aWZpY2F0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgPyB0aGlzLnF1ZXVlTm90aWZpY2F0aW9ucy5tYXAoKHEpID0+XG4gICAgICAgICAgICAgICAgICAgIHMzQnVja2V0Tm90aWZpY2F0aW9uLnMzQnVja2V0Tm90aWZpY2F0aW9uUXVldWVUb1RlcnJhZm9ybShcbiAgICAgICAgICAgICAgICAgICAgICBxLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRvcGljOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgICAgIHByb2R1Y2U6ICgpID0+XG4gICAgICAgICAgICAgIHRoaXMudG9waWNOb3RpZmljYXRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICA/IHRoaXMudG9waWNOb3RpZmljYXRpb25zLm1hcCgodCkgPT5cbiAgICAgICAgICAgICAgICAgICAgczNCdWNrZXROb3RpZmljYXRpb24uczNCdWNrZXROb3RpZmljYXRpb25Ub3BpY1RvVGVycmFmb3JtKFxuICAgICAgICAgICAgICAgICAgICAgIHQsXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHJlc291cmNlIHRvIHRoZSBUZXJyYWZvcm0gSlNPTiBvdXRwdXQgYXQgU3ludGggdGltZS5cbiAgICpcbiAgICogY2FsbGVkIGJ5IFRlcnJhZm9ybVN0YWNrLnByZXBhcmVTdGFjaygpXG4gICAqL1xuICBwdWJsaWMgdG9UZXJyYWZvcm0oKTogYW55IHtcbiAgICAvLyBBZGQgZGVwZW5kZW5jeSBvbiBidWNrZXQgcG9saWN5IGlmIGl0IGV4aXN0cyB0byBhdm9pZCByYWNlIGNvbmRpdGlvbnNcbiAgICAvLyBTMyBkb2VzIG5vdCBhbGxvdyBjYWxsaW5nIFB1dEJ1Y2tldFBvbGljeSBhbmQgUHV0QnVja2V0Tm90aWZpY2F0aW9uIEFQSXMgYXQgdGhlIHNhbWUgdGltZVxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzI3NjAwXG4gICAgLy8gcHJlcGFyZVN0YWNrIGFyZSB1c2VkIGhlcmUgYmVjYXVzZSBidWNrZXQgcG9saWN5IG1heWJlIGFkZGVkIHRvIGNvbnN0cnVjdCBhZnRlciBhZGRpdGlvbiBvZiBub3RpZmljYXRpb24gcmVzb3VyY2UuXG4gICAgLy8gYnV0IHdlIG5lZWQgdGhpcyBkZWZpbmVkIGJlZm9yZSBzdGFjayBBc3BlY3QgbWFwcyBjb25zdHJ1Y3QgZGVwZW5kZW5jaWVzIHRvIFRlcnJhZm9ybSBkZXBlbmRzT25cbiAgICBpZiAodGhpcy5idWNrZXQucG9saWN5KSB7XG4gICAgICB0aGlzLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLmJ1Y2tldC5wb2xpY3kpO1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cbn1cblxuaW50ZXJmYWNlIENvbW1vbkNvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvczNfYnVja2V0X25vdGlmaWNhdGlvbiNpZCBTM0J1Y2tldE5vdGlmaWNhdGlvbiNpZH1cbiAgICpcbiAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhlIGlkIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gYWxsIHJlc291cmNlcyBpbiBUZXJyYWZvcm0gcHJvdmlkZXJzIHVzaW5nIGEgVGVycmFmb3JtIHByb3ZpZGVyIFNESyB2ZXJzaW9uIGJlbG93IDIuXG4gICAqIElmIHlvdSBleHBlcmllbmNlIHByb2JsZW1zIHNldHRpbmcgdGhpcyB2YWx1ZSBpdCBtaWdodCBub3QgYmUgc2V0dGFibGUuIFBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgcHJvdmlkZXIgZG9jdW1lbnRhdGlvbiB0byBlbnN1cmUgaXQgc2hvdWxkIGJlIHNldHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGV2ZW50czogc3RyaW5nW107XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9zM19idWNrZXRfbm90aWZpY2F0aW9uI2ZpbHRlcl9wcmVmaXggUzNCdWNrZXROb3RpZmljYXRpb24jZmlsdGVyX3ByZWZpeH1cbiAgICovXG4gIHJlYWRvbmx5IGZpbHRlclByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL3MzX2J1Y2tldF9ub3RpZmljYXRpb24jZmlsdGVyX3N1ZmZpeCBTM0J1Y2tldE5vdGlmaWNhdGlvbiNmaWx0ZXJfc3VmZml4fVxuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyU3VmZml4Pzogc3RyaW5nO1xufVxuIl19
@@ -49,5 +49,5 @@ class BucketPolicy extends aws_construct_1.AwsConstructBase {
49
49
  }
50
50
  exports.BucketPolicy = BucketPolicy;
51
51
  _a = JSII_RTTI_SYMBOL_1;
52
- BucketPolicy[_a] = { fqn: "terraconstructs.aws.storage.BucketPolicy", version: "0.0.17" };
52
+ BucketPolicy[_a] = { fqn: "terraconstructs.aws.storage.BucketPolicy", version: "0.0.18" };
53
53
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvc3RvcmFnZS9idWNrZXQtcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0RBQXFEO0FBRXJELG9EQUF1RTtBQUV2RSxnQ0FBd0M7QUFTeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsZ0NBQWdCO0lBR2hELElBQVcsT0FBTztRQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFZRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBYyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksNkJBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNsRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUEzQkgsb0NBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgczNCdWNrZXRQb2xpY3kgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdFByb3BzLCBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiLi9idWNrZXRcIjtcbmltcG9ydCB7IFBvbGljeURvY3VtZW50IH0gZnJvbSBcIi4uL2lhbVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldFBvbGljeVByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIEFtYXpvbiBTMyBidWNrZXQgdGhhdCB0aGUgcG9saWN5IGFwcGxpZXMgdG8uXG4gICAqL1xuICByZWFkb25seSBidWNrZXQ6IElCdWNrZXQ7XG59XG5cbi8qKlxuICogVGhlIGJ1Y2tldCBwb2xpY3kgZm9yIGFuIEFtYXpvbiBTMyBidWNrZXRcbiAqXG4gKiBQb2xpY2llcyBkZWZpbmUgdGhlIG9wZXJhdGlvbnMgdGhhdCBhcmUgYWxsb3dlZCBvbiB0aGlzIHJlc291cmNlLlxuICpcbiAqIFlvdSBhbG1vc3QgbmV2ZXIgbmVlZCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QgZGlyZWN0bHkuXG4gKlxuICogQWxsIEFXUyByZXNvdXJjZXMgdGhhdCBzdXBwb3J0IHJlc291cmNlIHBvbGljaWVzIGhhdmUgYSBtZXRob2QgY2FsbGVkXG4gKiBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCwgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIG5ldyByZXNvdXJjZVxuICogcG9saWN5IGlmIG9uZSBkb2Vzbid0IGV4aXN0IHlldCwgb3RoZXJ3aXNlIGl0IHdpbGwgYWRkIHRvIHRoZSBleGlzdGluZ1xuICogcG9saWN5LlxuICpcbiAqIFRoZSBidWNrZXQgcG9saWN5IG1ldGhvZCBpcyBpbXBsZW1lbnRlZCBkaWZmZXJlbnRseSB0aGFuIGBhZGRUb1Jlc291cmNlUG9saWN5KClgXG4gKiBhcyBgQnVja2V0UG9saWN5KClgIGNyZWF0ZXMgYSBuZXcgcG9saWN5IHdpdGhvdXQga25vd2luZyBvbmUgZWFybGllciBleGlzdGVkLlxuICogZS5nLiBpZiBkdXJpbmcgQnVja2V0IGNyZWF0aW9uLCBpZiBgYXV0b0RlbGV0ZU9iamVjdDp0cnVlYCwgdGhlc2UgcG9saWNpZXMgYXJlXG4gKiBhZGRlZCB0byB0aGUgYnVja2V0IHBvbGljeTpcbiAqICAgIFtcInMzOkRlbGV0ZU9iamVjdCpcIiwgXCJzMzpHZXRCdWNrZXQqXCIsIFwiczM6TGlzdCpcIiwgXCJzMzpQdXRCdWNrZXRQb2xpY3lcIl0sXG4gKiBhbmQgd2hlbiB5b3UgYWRkIGEgbmV3IEJ1Y2tldFBvbGljeSB3aXRoIFtcInMzOkdldE9iamVjdFwiLCBcInMzOkxpc3RCdWNrZXRcIl0gb25cbiAqIHRoaXMgZXhpc3RpbmcgYnVja2V0LCBpbnZva2luZyBgQnVja2V0UG9saWN5KClgIHdpbGwgY3JlYXRlIGEgbmV3IFBvbGljeVxuICogd2l0aG91dCBrbm93aW5nIG9uZSBlYXJsaWVyIGV4aXN0cyBhbHJlYWR5LCBzbyBpdCBjcmVhdGVzIGEgbmV3IG9uZS5cbiAqIEluIHRoaXMgY2FzZSwgdGhlIGN1c3RvbSByZXNvdXJjZSBoYW5kbGVyIHdpbGwgbm90IGhhdmUgYWNjZXNzIHRvXG4gKiBgczM6R2V0QnVja2V0VGFnZ2luZ2AgYWN0aW9uIHdoaWNoIHdpbGwgY2F1c2UgZmFpbHVyZSBkdXJpbmcgZGVsZXRpb24gb2Ygc3RhY2suXG4gKlxuICogSGVuY2UgaXRzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHVzZSBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCBtZXRob2QgdG8gYWRkXG4gKiBuZXcgcGVybWlzc2lvbnMgdG8gZXhpc3RpbmcgcG9saWN5LlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEJ1Y2tldFBvbGljeSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvLyBUT0RPOiByZS1hZGQgc3RhdGljIGZyb20gTWV0aG9kXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogczNCdWNrZXRQb2xpY3kuUzNCdWNrZXRQb2xpY3k7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogQSBwb2xpY3kgZG9jdW1lbnQgY29udGFpbmluZyBwZXJtaXNzaW9ucyB0byBhZGQgdG8gdGhlIHNwZWNpZmllZCBidWNrZXQuXG4gICAqIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgQWNjZXNzIFBvbGljeSBMYW5ndWFnZSBPdmVydmlldyBpbiB0aGUgQW1hem9uXG4gICAqIFNpbXBsZSBTdG9yYWdlIFNlcnZpY2UgRGV2ZWxvcGVyIEd1aWRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50OiBQb2xpY3lEb2N1bWVudDtcblxuICAvKiogVGhlIEJ1Y2tldCB0aGlzIFBvbGljeSBhcHBsaWVzIHRvLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVja2V0OiBJQnVja2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdWNrZXRQb2xpY3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmJ1Y2tldCA9IHByb3BzLmJ1Y2tldDtcbiAgICB0aGlzLmRvY3VtZW50ID0gbmV3IFBvbGljeURvY3VtZW50KHRoaXMsIFwiUG9saWN5XCIpO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBzM0J1Y2tldFBvbGljeS5TM0J1Y2tldFBvbGljeSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGJ1Y2tldDogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIHBvbGljeTogdGhpcy5kb2N1bWVudC5qc29uLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -75,5 +75,5 @@ class BucketSource extends aws_construct_1.AwsConstructBase {
75
75
  }
76
76
  exports.BucketSource = BucketSource;
77
77
  _a = JSII_RTTI_SYMBOL_1;
78
- BucketSource[_a] = { fqn: "terraconstructs.aws.storage.BucketSource", version: "0.0.17" };
78
+ BucketSource[_a] = { fqn: "terraconstructs.aws.storage.BucketSource", version: "0.0.18" };
79
79
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvc3RvcmFnZS9idWNrZXQtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixzREFBK0M7QUFDL0MsaUNBQTRFO0FBRTVFLG1DQUFtQztBQUNuQyx3QkFBMEQ7QUFDMUQsb0RBSTBCO0FBMkIxQjs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLGdDQUFnQjtJQUloRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFPRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBakJWLFlBQU8sR0FBd0IsRUFBRSxDQUFDO1FBV2pDLGNBQVMsR0FBMkIsRUFBRSxDQUFDO1FBUXRELE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFbkQsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxpRUFBaUU7UUFFakUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUUzQixNQUFNLEtBQUssR0FBRyxJQUFJLHNCQUFjLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDdkIsSUFBSSxFQUFFLGlCQUFTLENBQUMsU0FBUztTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHO1lBQzFCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDMUIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQ1gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRztvQkFDYixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7aUJBQzNCLENBQUM7Z0JBQ0YsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDLEVBQ0QsRUFBd0MsQ0FDekM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxxTEFBcUw7SUFDN0ssY0FBYyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDeEQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDbkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQ3pELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxNQUFNLEVBQ1gsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUN4QyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBQSxhQUFVLEVBQUMsWUFBWSxDQUFDLENBQUM7UUFFekMsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNmLElBQUksdUJBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNqRSxHQUFHLEVBQUUsT0FBTztZQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQ3ZDLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFVBQVUsRUFBRSxVQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNqQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksU0FBUztZQUNuRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2xFLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUFqRkgsb0NBa0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBzM09iamVjdCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBUZXJyYWZvcm1Bc3NldCwgQXNzZXRUeXBlLCBGbiwgSVRlcnJhZm9ybURlcGVuZGFibGUgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBtaW1lIGZyb20gXCJtaW1lLXR5cGVzXCI7XG5pbXBvcnQgeyBub3JtYWxQYXRoLCBJQnVja2V0LCBBZGRTb3VyY2VPcHRpb25zIH0gZnJvbSBcIi5cIjtcbmltcG9ydCB7XG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldFNvdXJjZVByb3BzIGV4dGVuZHMgQWRkU291cmNlT3B0aW9ucywgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGFyZ2V0IGJ1Y2tldCB0byB1cGxvYWQgdG9cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRPYmplY3RPdXRwdXQge1xuICAvKipcbiAgICogVGhlIG9iamVjdCBzb3VyY2UgSGFzaFxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSGFzaDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldFNvdXJjZU91dHB1dHMge1xuICAvKipcbiAgICogVGhlIG9iamVjdHMgdXBsb2FkZWQgdG8gdGhlIGJ1Y2tldCBpbmRleGVkIGJ5IGtleVxuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0czogUmVjb3JkPHN0cmluZywgQnVja2V0T2JqZWN0T3V0cHV0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQnVja2V0U291cmNlIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IGJ1Y2tldFNvdXJjZU91dHB1dHM6IEJ1Y2tldFNvdXJjZU91dHB1dHM7XG59XG5cbi8qKlxuICogQSBCdWNrZXQgU291cmNlIHdoaWNoIHJlYWRzIGZpbGVzIGZyb20gZGlzayBhbmQgY3JlYXRlcyB1cGxvYWRzIHRvIHMzLlxuICovXG5leHBvcnQgY2xhc3MgQnVja2V0U291cmNlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElCdWNrZXRTb3VyY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgb2JqZWN0czogczNPYmplY3QuUzNPYmplY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2J1Y2tldFNvdXJjZU91dHB1dHM6IEJ1Y2tldFNvdXJjZU91dHB1dHM7XG4gIHB1YmxpYyBnZXQgYnVja2V0U291cmNlT3V0cHV0cygpOiBCdWNrZXRTb3VyY2VPdXRwdXRzIHtcbiAgICByZXR1cm4gdGhpcy5fYnVja2V0U291cmNlT3V0cHV0cztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5idWNrZXRTb3VyY2VPdXRwdXRzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRzT246IElUZXJyYWZvcm1EZXBlbmRhYmxlW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlZFBhdGg6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwcmVmaXg6IHN0cmluZztcbiAgcHJpdmF0ZSBfYnVja2V0OiBJQnVja2V0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdWNrZXRTb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3QgeyBidWNrZXQsIHBhdGg6IHNvdXJjZVBhdGgsIHByZWZpeCB9ID0gcHJvcHM7XG5cbiAgICB0aGlzLl9idWNrZXQgPSBidWNrZXQ7XG4gICAgdGhpcy5kZXBlbmRzT24gPSBwcm9wcy5kZXBlbmRzT24gPz8gW107XG4gICAgLy8gc2hvdWxkIHdlIHN1cHBvcnQgYWJzb2x1dGUgcGF0aHM/IHBhdGguaXNBYnNvbHV0ZShwcm9wcy5wYXRoKT9cblxuICAgIHRoaXMucmVzb2x2ZWRQYXRoID0gcGF0aC5yZXNvbHZlKHNvdXJjZVBhdGgpO1xuICAgIHRoaXMucHJlZml4ID0gcHJlZml4ID8/IFwiXCI7XG5cbiAgICBjb25zdCBhc3NldCA9IG5ldyBUZXJyYWZvcm1Bc3NldCh0aGlzLCBcIlBhdGhBc3NldFwiLCB7XG4gICAgICBwYXRoOiB0aGlzLnJlc29sdmVkUGF0aCxcbiAgICAgIHR5cGU6IEFzc2V0VHlwZS5ESVJFQ1RPUlksXG4gICAgfSk7XG4gICAgdGhpcy51cGxvYWRBc3NldERpcihzb3VyY2VQYXRoLCBhc3NldC5wYXRoKTtcblxuICAgIHRoaXMuX2J1Y2tldFNvdXJjZU91dHB1dHMgPSB7XG4gICAgICBvYmplY3RzOiB0aGlzLm9iamVjdHMucmVkdWNlKFxuICAgICAgICAoYWNjLCBvYmopID0+IHtcbiAgICAgICAgICBhY2Nbb2JqLmtleV0gPSB7XG4gICAgICAgICAgICBzb3VyY2VIYXNoOiBvYmouc291cmNlSGFzaCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIEJ1Y2tldE9iamVjdE91dHB1dD4sXG4gICAgICApLFxuICAgIH07XG4gIH1cblxuICAvLyBUT0RPOiBIYW5kbGUgZGVwbG95bWVudHMgd2l0aCBjdXN0b20gbGFtYmRhcyBpbnN0ZWFkP1xuICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi85OTQ2YWIwMzY3MmJmNjY2NGU4ZWM5NWE4MWRkYjY3YzNiYjJmNjNiL3BhY2thZ2VzLyU0MGF3cy1jZGsvY3VzdG9tLXJlc291cmNlLWhhbmRsZXJzL2xpYi9hd3MtczMtZGVwbG95bWVudC9idWNrZXQtZGVwbG95bWVudC1oYW5kbGVyL2luZGV4LnB5XG4gIHByaXZhdGUgdXBsb2FkQXNzZXREaXIoYmFzZVBhdGg6IHN0cmluZywgYXNzZXRQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmaWxlcyA9IGZzLnJlYWRkaXJTeW5jKGJhc2VQYXRoLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSk7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBwYXRoLmpvaW4oYmFzZVBhdGgsIGZpbGUubmFtZSk7XG4gICAgICBjb25zdCBhc3NldEZpbGVuYW1lID0gcGF0aC5qb2luKGFzc2V0UGF0aCwgZmlsZS5uYW1lKTtcbiAgICAgIGlmIChmaWxlLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgdGhpcy51cGxvYWRBc3NldERpcihiYXNlRmlsZW5hbWUsIGFzc2V0RmlsZW5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51cGxvYWRBc3NldEZpbGUoYmFzZUZpbGVuYW1lLCBhc3NldEZpbGVuYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwbG9hZEFzc2V0RmlsZShiYXNlUGF0aDogc3RyaW5nLCBhc3NldFBhdGg6IHN0cmluZykge1xuICAgIGxldCByZWxhdGl2ZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICB0aGlzLnByZWZpeCxcbiAgICAgIGJhc2VQYXRoLnJlcGxhY2UodGhpcy5yZXNvbHZlZFBhdGgsIFwiXCIpLFxuICAgICk7XG4gICAgY29uc3QgZmlsZUtleSA9IG5vcm1hbFBhdGgocmVsYXRpdmVQYXRoKTtcblxuICAgIC8vIGNvcHkgZnJvbSBhc3NldCBkaXJlY3RvcnlcbiAgICB0aGlzLm9iamVjdHMucHVzaChcbiAgICAgIG5ldyBzM09iamVjdC5TM09iamVjdCh0aGlzLCBgRmlsZSR7ZmlsZUtleS5yZXBsYWNlKC9cXC8vZywgXCItLVwiKX1gLCB7XG4gICAgICAgIGtleTogZmlsZUtleSxcbiAgICAgICAgYnVja2V0OiB0aGlzLl9idWNrZXQuYnVja2V0T3V0cHV0cy5uYW1lLFxuICAgICAgICBzb3VyY2U6IGFzc2V0UGF0aCxcbiAgICAgICAgc291cmNlSGFzaDogRm4uZmlsZW1kNShhc3NldFBhdGgpLFxuICAgICAgICBjb250ZW50VHlwZTogbWltZS5jb250ZW50VHlwZShwYXRoLmV4dG5hbWUoYXNzZXRQYXRoKSkgfHwgdW5kZWZpbmVkLFxuICAgICAgICBkZXBlbmRzT246IHRoaXMuZGVwZW5kc09uLmxlbmd0aCA+IDAgPyB0aGlzLmRlcGVuZHNPbiA6IHVuZGVmaW5lZCxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -396,7 +396,7 @@ class BucketBase extends aws_construct_1.AwsConstructBase {
396
396
  }
397
397
  exports.BucketBase = BucketBase;
398
398
  _a = JSII_RTTI_SYMBOL_1;
399
- BucketBase[_a] = { fqn: "terraconstructs.aws.storage.BucketBase", version: "0.0.17" };
399
+ BucketBase[_a] = { fqn: "terraconstructs.aws.storage.BucketBase", version: "0.0.18" };
400
400
  /**
401
401
  * The `Bucket` provides an [AWS S3 Bucket](https://aws.amazon.com/s3/).
402
402
  *
@@ -890,7 +890,7 @@ class Bucket extends BucketBase {
890
890
  }
891
891
  exports.Bucket = Bucket;
892
892
  _b = JSII_RTTI_SYMBOL_1;
893
- Bucket[_b] = { fqn: "terraconstructs.aws.storage.Bucket", version: "0.0.17" };
893
+ Bucket[_b] = { fqn: "terraconstructs.aws.storage.Bucket", version: "0.0.18" };
894
894
  /**
895
895
  * Storage class to move an object to
896
896
  */
@@ -44,5 +44,5 @@ class FunctionDestination {
44
44
  }
45
45
  exports.FunctionDestination = FunctionDestination;
46
46
  _a = JSII_RTTI_SYMBOL_1;
47
- FunctionDestination[_a] = { fqn: "terraconstructs.aws.storage.targets.FunctionDestination", version: "0.0.17" };
47
+ FunctionDestination[_a] = { fqn: "terraconstructs.aws.storage.targets.FunctionDestination", version: "0.0.18" };
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3N0b3JhZ2Uvbm90aWZpY2F0aW9uLXRhcmdldHMvZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyQ0FBdUM7QUFDdkMsOEJBQThCO0FBQzlCLCtDQUEyQztBQUUzQyxpQ0FBaUM7QUFFakM7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUc5QixZQUE2QixFQUFhO1FBQWIsT0FBRSxHQUFGLEVBQUUsQ0FBVztJQUFHLENBQUM7SUFFdkMsSUFBSSxDQUNULE1BQWlCLEVBQ2pCLE1BQXVCO1FBRXZCLCtDQUErQztRQUMvQyxNQUFNLFlBQVksR0FBRyw2QkFBNkIsb0JBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBRS9GLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxzQkFBUyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxvQkFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQzttQ0FDL0QsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO2dCQUNsQyxhQUFhLEVBQUUsb0JBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTztnQkFDdEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO2dCQUN2RCxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7Z0JBQzNCLG1FQUFtRTtnQkFDbkUsK0RBQStEO2dCQUMvRCxxREFBcUQ7Z0JBQ3JELEtBQUssRUFBRSxNQUFNO2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELGlGQUFpRjtRQUNqRixxRUFBcUU7UUFDckUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUUzQyxDQUFDO1FBRWQsT0FBTztZQUNMLElBQUksRUFBRSxPQUFPLENBQUMsaUNBQWlDLENBQUMsTUFBTTtZQUN0RCxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXO1lBQ3hCLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDcEQsQ0FBQztJQUNKLENBQUM7O0FBeENILGtEQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlcnJhZm9ybVJlc291cmNlIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgc3RvcmFnZSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uLy4uL2F3cy1zdGFja1wiO1xuaW1wb3J0IHsgSUZ1bmN0aW9uIH0gZnJvbSBcIi4uLy4uL2NvbXB1dGVcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vaWFtXCI7XG5cbi8qKlxuICogVXNlIGEgTGFtYmRhIGZ1bmN0aW9uIGFzIGEgYnVja2V0IG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvblxuICovXG5leHBvcnQgY2xhc3MgRnVuY3Rpb25EZXN0aW5hdGlvblxuICBpbXBsZW1lbnRzIHN0b3JhZ2UuSUJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uXG57XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZm46IElGdW5jdGlvbikge31cblxuICBwdWJsaWMgYmluZChcbiAgICBfc2NvcGU6IENvbnN0cnVjdCxcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgKTogc3RvcmFnZS5CdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgLy8gY29uc3QgdW5pcXVlSWQgPSBBd3NTdGFjay51bmlxdWVJZCh0aGlzLmZuKTtcbiAgICBjb25zdCBwZXJtaXNzaW9uSWQgPSBgQWxsb3dCdWNrZXROb3RpZmljYXRpb25zVG8ke0F3c1N0YWNrLnVuaXF1ZUlkKHRoaXMuZm4ucGVybWlzc2lvbnNOb2RlKX1gO1xuXG4gICAgaWYgKCEoYnVja2V0IGluc3RhbmNlb2YgQ29uc3RydWN0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBMYW1iZGFEZXN0aW5hdGlvbiBmb3IgZnVuY3Rpb24gJHtBd3NTdGFjay51bmlxdWVJZCh0aGlzLmZuLnBlcm1pc3Npb25zTm9kZSl9IGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgb24gYVxuICAgICAgICBidWNrZXQgY29uc3RydWN0IChCdWNrZXQgJHtidWNrZXQuYnVja2V0TmFtZX0pYCk7XG4gICAgfVxuXG4gICAgaWYgKGJ1Y2tldC5ub2RlLnRyeUZpbmRDaGlsZChwZXJtaXNzaW9uSWQpID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZm4uYWRkUGVybWlzc2lvbihwZXJtaXNzaW9uSWQsIHtcbiAgICAgICAgc291cmNlQWNjb3VudDogQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QoYnVja2V0KS5hY2NvdW50LFxuICAgICAgICBwcmluY2lwYWw6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInMzLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICAgIHNvdXJjZUFybjogYnVja2V0LmJ1Y2tldEFybixcbiAgICAgICAgLy8gUGxhY2luZyB0aGUgcGVybWlzc2lvbnMgbm9kZSBpbiB0aGUgc2FtZSBzY29wZSBhcyB0aGUgczMgYnVja2V0LlxuICAgICAgICAvLyBPdGhlcndpc2UsIHRoZXJlIGlzIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSB3aGVuIHRoZSBzMyBidWNrZXRcbiAgICAgICAgLy8gYW5kIGxhbWJkYSBmdW5jdGlvbnMgZGVjbGFyZWQgaW4gZGlmZmVyZW50IHN0YWNrcy5cbiAgICAgICAgc2NvcGU6IGJ1Y2tldCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGhhdmUgYSBwZXJtaXNzaW9uIHJlc291cmNlIGZvciB0aGlzIHJlbGF0aW9uc2hpcCwgYWRkIGl0IGFzIGEgZGVwZW5kZW5jeVxuICAgIC8vIHRvIHRoZSBidWNrZXQgbm90aWZpY2F0aW9ucyByZXNvdXJjZSwgc28gaXQgd2lsbCBiZSBjcmVhdGVkIGZpcnN0LlxuICAgIGNvbnN0IHBlcm1pc3Npb24gPSBidWNrZXQubm9kZS50cnlGaW5kQ2hpbGQocGVybWlzc2lvbklkKSBhc1xuICAgICAgfCBUZXJyYWZvcm1SZXNvdXJjZVxuICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogc3RvcmFnZS5CdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvblR5cGUuTEFNQkRBLFxuICAgICAgYXJuOiB0aGlzLmZuLmZ1bmN0aW9uQXJuLFxuICAgICAgZGVwZW5kZW5jaWVzOiBwZXJtaXNzaW9uID8gW3Blcm1pc3Npb25dIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -54,5 +54,5 @@ class QueueDestination {
54
54
  }
55
55
  exports.QueueDestination = QueueDestination;
56
56
  _a = JSII_RTTI_SYMBOL_1;
57
- QueueDestination[_a] = { fqn: "terraconstructs.aws.storage.targets.QueueDestination", version: "0.0.17" };
57
+ QueueDestination[_a] = { fqn: "terraconstructs.aws.storage.targets.QueueDestination", version: "0.0.18" };
58
58
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL3N0b3JhZ2Uvbm90aWZpY2F0aW9uLXRhcmdldHMvcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw4QkFBOEI7QUFDOUIsaUNBQWlDO0FBR2pDOztHQUVHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFHM0IsWUFBNkIsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFBRyxDQUFDO0lBRTlDOzs7T0FHRztJQUNJLElBQUksQ0FDVCxNQUFpQixFQUNqQixNQUF1QjtRQUV2QixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUMxQixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQyxVQUFVLEVBQUU7Z0JBQ1Y7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7aUJBQzNCO2FBQ0Y7U0FDRixDQUFDLENBQ0gsQ0FBQztRQUVGLDhCQUE4QjtRQUM5Qix1RkFBdUY7UUFDdkYsMkVBQTJFO1FBQzNFLHdDQUF3QztRQUN4QyxnREFBZ0Q7UUFDaEQsa0VBQWtFO1FBQ2xFLHdEQUF3RDtRQUN4RCx3QkFBd0I7UUFDeEIsUUFBUTtRQUNSLDBFQUEwRTtRQUMxRSxpQkFBaUI7UUFDakIsNEJBQTRCO1FBQzVCLE9BQU87UUFDUCxxQ0FBcUM7UUFDckMsaUVBQWlFO1FBQ2pFLDJLQUEySztRQUMzSyxTQUFTO1FBQ1QsTUFBTTtRQUNOLElBQUk7UUFFSixPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLEtBQUs7WUFDckQsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUMzQixDQUFDO0lBQ0osQ0FBQzs7QUFsREgsNENBbURDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBzdG9yYWdlIGZyb20gXCIuLlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi8uLi9pYW1cIjtcbmltcG9ydCB7IElRdWV1ZSB9IGZyb20gXCIuLi8uLi9ub3RpZnlcIjtcblxuLyoqXG4gKiBVc2UgYW4gU1FTIHF1ZXVlIGFzIGEgYnVja2V0IG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvblxuICovXG5leHBvcnQgY2xhc3MgUXVldWVEZXN0aW5hdGlvblxuICBpbXBsZW1lbnRzIHN0b3JhZ2UuSUJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uXG57XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcXVldWU6IElRdWV1ZSkge31cblxuICAvKipcbiAgICogQWxsb3dzIHVzaW5nIFNRUyBxdWV1ZXMgYXMgZGVzdGluYXRpb25zIGZvciBidWNrZXQgbm90aWZpY2F0aW9ucy5cbiAgICogVXNlIGBidWNrZXQub25FdmVudChldmVudCwgcXVldWUpYCB0byBzdWJzY3JpYmUuXG4gICAqL1xuICBwdWJsaWMgYmluZChcbiAgICBfc2NvcGU6IENvbnN0cnVjdCxcbiAgICBidWNrZXQ6IHN0b3JhZ2UuSUJ1Y2tldCxcbiAgKTogc3RvcmFnZS5CdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbkNvbmZpZyB7XG4gICAgdGhpcy5xdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhcbiAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInMzLmFtYXpvbmF3cy5jb21cIiwge1xuICAgICAgICBjb25kaXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJBcm5MaWtlXCIsXG4gICAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQXJuXCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtidWNrZXQuYnVja2V0QXJuXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIC8vIFRPRE86IFJlLWFkZCBLTVMgU3VwcG9ydFxuICAgIC8vIC8vIGlmIHRoaXMgcXVldWUgaXMgZW5jcnlwdGVkLCB3ZSBuZWVkIHRvIGFsbG93IFMzIHRvIHJlYWQgbWVzc2FnZXMgc2luY2UgdGhhdCdzIGhvd1xuICAgIC8vIC8vIGl0IHZlcmlmaWVzIHRoYXQgdGhlIG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvbiBjb25maWd1cmF0aW9uIGlzIHZhbGlkLlxuICAgIC8vIGlmICh0aGlzLnF1ZXVlLmVuY3J5cHRpb25NYXN0ZXJLZXkpIHtcbiAgICAvLyAgIGNvbnN0IHN0YXRlbWVudCA9IG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAvLyAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uU2VydmljZVByaW5jaXBhbChcInMzLmFtYXpvbmF3cy5jb21cIildLFxuICAgIC8vICAgICBhY3Rpb25zOiBbXCJrbXM6R2VuZXJhdGVEYXRhS2V5KlwiLCBcImttczpEZWNyeXB0XCJdLFxuICAgIC8vICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgLy8gICB9KTtcbiAgICAvLyAgIGNvbnN0IGFkZFJlc3VsdCA9IHRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIC8vICAgICBzdGF0ZW1lbnQsXG4gICAgLy8gICAgIC8qIGFsbG93Tm9PcCAqLyB0cnVlLFxuICAgIC8vICAgKTtcbiAgICAvLyAgIGlmICghYWRkUmVzdWx0LnN0YXRlbWVudEFkZGVkKSB7XG4gICAgLy8gICAgIEFubm90YXRpb25zLm9mKHRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleSkuYWRkV2FybmluZyhcbiAgICAvLyAgICAgICBgQ2FuIG5vdCBjaGFuZ2Uga2V5IHBvbGljeSBvZiBpbXBvcnRlZCBrbXMga2V5LiBFbnN1cmUgdGhhdCB5b3VyIGtleSBwb2xpY3kgY29udGFpbnMgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9uczogXFxuJHtKU09OLnN0cmluZ2lmeShzdGF0ZW1lbnQudG9KU09OKCksIG51bGwsIDIpfWAsXG4gICAgLy8gICAgICk7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFybjogdGhpcy5xdWV1ZS5xdWV1ZUFybixcbiAgICAgIHR5cGU6IHN0b3JhZ2UuQnVja2V0Tm90aWZpY2F0aW9uRGVzdGluYXRpb25UeXBlLlFVRVVFLFxuICAgICAgZGVwZW5kZW5jaWVzOiBbdGhpcy5xdWV1ZV0sXG4gICAgfTtcbiAgfVxufVxuIl19