terraconstructs 0.1.8 → 0.1.9

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 (272) hide show
  1. package/.jsii +1118 -953
  2. package/lib/asset-staging.js +1 -1
  3. package/lib/aws/arn.js +1 -1
  4. package/lib/aws/aws-asset-manager.js +1 -1
  5. package/lib/aws/aws-construct.js +1 -1
  6. package/lib/aws/aws-stack.js +1 -1
  7. package/lib/aws/aws-tags.js +2 -2
  8. package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
  9. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  10. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  11. package/lib/aws/cloudwatch/actions/sns.js +1 -1
  12. package/lib/aws/cloudwatch/actions/ssm.js +2 -2
  13. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  14. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  15. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  16. package/lib/aws/cloudwatch/alarm.js +9 -8
  17. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  18. package/lib/aws/cloudwatch/dashboard.js +1 -1
  19. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  20. package/lib/aws/cloudwatch/graph.js +8 -8
  21. package/lib/aws/cloudwatch/layout.js +3 -3
  22. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  23. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  24. package/lib/aws/cloudwatch/log-group.js +1 -1
  25. package/lib/aws/cloudwatch/log-query.js +1 -1
  26. package/lib/aws/cloudwatch/log-stream.js +1 -1
  27. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  28. package/lib/aws/cloudwatch/metric.js +2 -2
  29. package/lib/aws/cloudwatch/pattern.js +3 -3
  30. package/lib/aws/cloudwatch/policy.js +1 -1
  31. package/lib/aws/cloudwatch/query-definition.js +2 -2
  32. package/lib/aws/cloudwatch/stats.js +1 -1
  33. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  34. package/lib/aws/cloudwatch/text.js +1 -1
  35. package/lib/aws/cloudwatch/variable.js +3 -3
  36. package/lib/aws/cloudwatch/widget.js +1 -1
  37. package/lib/aws/compute/access-log.js +9 -7
  38. package/lib/aws/compute/activity.js +1 -1
  39. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  40. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  41. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  42. package/lib/aws/compute/alb/application-listener.js +1 -1
  43. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  44. package/lib/aws/compute/alb/application-target-group.js +1 -1
  45. package/lib/aws/compute/alb/conditions.js +1 -1
  46. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  47. package/lib/aws/compute/alb/trust-store.js +1 -1
  48. package/lib/aws/compute/api-definition.d.ts +1 -1
  49. package/lib/aws/compute/api-definition.js +11 -16
  50. package/lib/aws/compute/api-key.js +7 -8
  51. package/lib/aws/compute/apigateway-util.js +10 -21
  52. package/lib/aws/compute/architecture.js +1 -1
  53. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  54. package/lib/aws/compute/authorizer.js +1 -1
  55. package/lib/aws/compute/authorizers/identity-source.js +4 -5
  56. package/lib/aws/compute/authorizers/lambda.js +8 -11
  57. package/lib/aws/compute/autoscaling-common/interval-utils.js +7 -11
  58. package/lib/aws/compute/base-path-mapping.js +6 -8
  59. package/lib/aws/compute/base-scalable-attribute.js +1 -1
  60. package/lib/aws/compute/bastion-host.js +1 -1
  61. package/lib/aws/compute/chain.js +1 -1
  62. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  63. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  64. package/lib/aws/compute/client-vpn-route.js +2 -2
  65. package/lib/aws/compute/code.js +23 -40
  66. package/lib/aws/compute/condition.js +1 -1
  67. package/lib/aws/compute/connections.js +1 -1
  68. package/lib/aws/compute/cors.js +1 -1
  69. package/lib/aws/compute/deployment.js +1 -1
  70. package/lib/aws/compute/domain-name.js +9 -8
  71. package/lib/aws/compute/event-invoke-config.js +1 -1
  72. package/lib/aws/compute/event-source-filter.js +2 -2
  73. package/lib/aws/compute/event-source-mapping.js +1 -1
  74. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  75. package/lib/aws/compute/event-sources/s3.js +1 -1
  76. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  77. package/lib/aws/compute/event-sources/sqs.js +1 -1
  78. package/lib/aws/compute/fields.js +4 -4
  79. package/lib/aws/compute/function-alias.js +1 -1
  80. package/lib/aws/compute/function-base.js +12 -12
  81. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  82. package/lib/aws/compute/function-destinations/function.js +1 -1
  83. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  84. package/lib/aws/compute/function-nodejs/function.js +1 -1
  85. package/lib/aws/compute/function-url.js +1 -1
  86. package/lib/aws/compute/function.js +4 -3
  87. package/lib/aws/compute/gateway-response.js +2 -2
  88. package/lib/aws/compute/handler.js +1 -1
  89. package/lib/aws/compute/instance-types.js +1 -1
  90. package/lib/aws/compute/instance.js +1 -1
  91. package/lib/aws/compute/integration.js +10 -16
  92. package/lib/aws/compute/integrations/aws.js +4 -4
  93. package/lib/aws/compute/integrations/http.js +1 -1
  94. package/lib/aws/compute/integrations/lambda.js +1 -1
  95. package/lib/aws/compute/integrations/mock.js +1 -1
  96. package/lib/aws/compute/integrations/stepfunctions.js +4 -5
  97. package/lib/aws/compute/ip-addresses.js +2 -2
  98. package/lib/aws/compute/ipam.js +1 -1
  99. package/lib/aws/compute/key-pair.js +1 -1
  100. package/lib/aws/compute/lambda-api.js +7 -10
  101. package/lib/aws/compute/launch-template.js +2 -2
  102. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  103. package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
  104. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  105. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  106. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  107. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  108. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  109. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  110. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  111. package/lib/aws/compute/load-balancer.js +3 -3
  112. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  113. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  114. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  115. package/lib/aws/compute/machine-image/common.js +1 -1
  116. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  117. package/lib/aws/compute/method.js +1 -1
  118. package/lib/aws/compute/model.js +3 -3
  119. package/lib/aws/compute/nat.js +5 -5
  120. package/lib/aws/compute/network-acl-types.js +2 -2
  121. package/lib/aws/compute/network-acl.js +3 -3
  122. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  123. package/lib/aws/compute/nlb/network-listener.js +1 -1
  124. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  125. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  126. package/lib/aws/compute/peer.js +1 -1
  127. package/lib/aws/compute/placement-group.js +1 -1
  128. package/lib/aws/compute/port.js +1 -1
  129. package/lib/aws/compute/prefix-list.js +1 -1
  130. package/lib/aws/compute/requestvalidator.js +1 -1
  131. package/lib/aws/compute/resource.js +3 -3
  132. package/lib/aws/compute/restapi.js +9 -10
  133. package/lib/aws/compute/route.js +8 -8
  134. package/lib/aws/compute/runtime.js +1 -1
  135. package/lib/aws/compute/scalable-target.js +1 -1
  136. package/lib/aws/compute/schedule.js +6 -12
  137. package/lib/aws/compute/security-group.js +1 -1
  138. package/lib/aws/compute/stage.js +8 -11
  139. package/lib/aws/compute/state-graph.js +1 -1
  140. package/lib/aws/compute/state-machine-fragment.js +1 -1
  141. package/lib/aws/compute/state-machine.js +4 -4
  142. package/lib/aws/compute/states/choice.js +1 -1
  143. package/lib/aws/compute/states/custom-state.js +1 -1
  144. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  145. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  146. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  147. package/lib/aws/compute/states/distributed-map.js +1 -1
  148. package/lib/aws/compute/states/fail.js +1 -1
  149. package/lib/aws/compute/states/map-base.js +1 -1
  150. package/lib/aws/compute/states/map.js +1 -1
  151. package/lib/aws/compute/states/parallel.js +1 -1
  152. package/lib/aws/compute/states/pass.js +2 -2
  153. package/lib/aws/compute/states/state.js +1 -1
  154. package/lib/aws/compute/states/succeed.js +1 -1
  155. package/lib/aws/compute/states/task-base.js +2 -2
  156. package/lib/aws/compute/states/task.js +1 -1
  157. package/lib/aws/compute/states/wait.js +2 -2
  158. package/lib/aws/compute/step-scaling-action.js +1 -1
  159. package/lib/aws/compute/step-scaling-policy.js +9 -14
  160. package/lib/aws/compute/stepfunctions-api.js +5 -6
  161. package/lib/aws/compute/subnet-v2.js +2 -2
  162. package/lib/aws/compute/subnet.js +1 -1
  163. package/lib/aws/compute/target-tracking-scaling-policy.js +9 -12
  164. package/lib/aws/compute/task-credentials.js +1 -1
  165. package/lib/aws/compute/task-input.js +1 -1
  166. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  167. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  168. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  169. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  170. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  171. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  172. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  173. package/lib/aws/compute/types.js +1 -1
  174. package/lib/aws/compute/usage-plan.js +1 -1
  175. package/lib/aws/compute/user-data.js +3 -3
  176. package/lib/aws/compute/volume.js +2 -2
  177. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  178. package/lib/aws/compute/vpc-endpoint.js +6 -6
  179. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  180. package/lib/aws/compute/vpc-link.js +1 -1
  181. package/lib/aws/compute/vpc-v2-base.js +1 -1
  182. package/lib/aws/compute/vpc-v2.js +2 -2
  183. package/lib/aws/compute/vpc.js +4 -4
  184. package/lib/aws/compute/vpn.js +3 -3
  185. package/lib/aws/edge/certificate.js +1 -1
  186. package/lib/aws/edge/distribution.js +3 -3
  187. package/lib/aws/edge/dns-alias-record-targets.js +6 -6
  188. package/lib/aws/edge/dns-record.js +13 -13
  189. package/lib/aws/edge/dns-zone.d.ts +1 -1
  190. package/lib/aws/edge/dns-zone.js +8 -7
  191. package/lib/aws/edge/function.js +2 -2
  192. package/lib/aws/edge/key-value-store.js +4 -4
  193. package/lib/aws/edge/origin.js +3 -3
  194. package/lib/aws/edge/response-headers-policy.js +1 -1
  195. package/lib/aws/encryption/alias.js +1 -1
  196. package/lib/aws/encryption/key.js +1 -1
  197. package/lib/aws/encryption/via-service-principal.js +1 -1
  198. package/lib/aws/iam/grant.js +2 -2
  199. package/lib/aws/iam/group.js +1 -1
  200. package/lib/aws/iam/instance-profile.js +1 -1
  201. package/lib/aws/iam/managed-policy.js +1 -1
  202. package/lib/aws/iam/oidc-provider.js +1 -1
  203. package/lib/aws/iam/policy-document.js +1 -1
  204. package/lib/aws/iam/policy-statement.js +1 -1
  205. package/lib/aws/iam/policy.js +1 -1
  206. package/lib/aws/iam/principals.js +20 -20
  207. package/lib/aws/iam/role.js +1 -1
  208. package/lib/aws/iam/saml-provider.js +2 -2
  209. package/lib/aws/iam/unknown-principal.js +1 -1
  210. package/lib/aws/iam/user.js +1 -1
  211. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  212. package/lib/aws/network/subnet-group.js +3 -3
  213. package/lib/aws/network/subnet.js +4 -4
  214. package/lib/aws/notify/archive.js +1 -1
  215. package/lib/aws/notify/connection.js +3 -3
  216. package/lib/aws/notify/event-bus.d.ts +19 -0
  217. package/lib/aws/notify/event-bus.js +22 -26
  218. package/lib/aws/notify/event-pattern.js +1 -1
  219. package/lib/aws/notify/input.js +2 -2
  220. package/lib/aws/notify/kinesis-stream.js +1 -1
  221. package/lib/aws/notify/notification-rule.js +1 -1
  222. package/lib/aws/notify/policy.js +1 -1
  223. package/lib/aws/notify/queue-policy.js +1 -1
  224. package/lib/aws/notify/queue.js +1 -1
  225. package/lib/aws/notify/resource-policy.js +1 -1
  226. package/lib/aws/notify/rule.js +1 -1
  227. package/lib/aws/notify/schedule.js +1 -1
  228. package/lib/aws/notify/subscription-filter.js +7 -8
  229. package/lib/aws/notify/subscription.js +23 -25
  230. package/lib/aws/notify/subscriptions/email.js +1 -1
  231. package/lib/aws/notify/subscriptions/lambda.js +1 -1
  232. package/lib/aws/notify/subscriptions/sms.js +1 -1
  233. package/lib/aws/notify/subscriptions/sqs.js +1 -1
  234. package/lib/aws/notify/subscriptions/url.js +1 -1
  235. package/lib/aws/notify/targets/event-bus.js +1 -1
  236. package/lib/aws/notify/targets/function.js +1 -1
  237. package/lib/aws/notify/targets/log-group.js +2 -2
  238. package/lib/aws/notify/targets/sqs.js +1 -1
  239. package/lib/aws/notify/targets/state-machine.js +1 -1
  240. package/lib/aws/notify/topic-base.js +4 -4
  241. package/lib/aws/notify/topic.js +1 -1
  242. package/lib/aws/storage/assets/image-asset.js +8 -12
  243. package/lib/aws/storage/assets/s3.js +4 -4
  244. package/lib/aws/storage/auth-token.js +2 -2
  245. package/lib/aws/storage/billing.js +1 -1
  246. package/lib/aws/storage/bucket-notifications.js +1 -1
  247. package/lib/aws/storage/bucket-policy.js +1 -1
  248. package/lib/aws/storage/bucket-source.js +1 -1
  249. package/lib/aws/storage/bucket.js +2 -2
  250. package/lib/aws/storage/capacity.js +1 -1
  251. package/lib/aws/storage/ecr-repository.js +19 -32
  252. package/lib/aws/storage/encryption.js +1 -1
  253. package/lib/aws/storage/notification-targets/function.js +1 -1
  254. package/lib/aws/storage/notification-targets/queue.js +1 -1
  255. package/lib/aws/storage/origin-access-identity.js +1 -1
  256. package/lib/aws/storage/parameter.js +2 -2
  257. package/lib/aws/storage/table.js +50 -101
  258. package/lib/bundling.js +7 -6
  259. package/lib/construct-base.js +2 -2
  260. package/lib/duration.js +1 -1
  261. package/lib/errors.js +5 -3
  262. package/lib/expiration.js +1 -1
  263. package/lib/fs/ignore.js +4 -4
  264. package/lib/fs/index.js +1 -1
  265. package/lib/index.d.ts +1 -0
  266. package/lib/index.js +2 -1
  267. package/lib/private/asset-staging.js +3 -2
  268. package/lib/size.js +1 -1
  269. package/lib/stack-base.js +1 -1
  270. package/lib/terra-func.js +1 -1
  271. package/lib/time-zone.js +1 -1
  272. package/package.json +1 -1
@@ -5,6 +5,7 @@ exports.PredefinedMetric = exports.TargetTrackingScalingPolicy = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  // https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/aws-applicationautoscaling/lib/target-tracking-scaling-policy.ts
7
7
  const provider_aws_1 = require("@cdktf/provider-aws");
8
+ const errors_1 = require("../../errors");
8
9
  const aws_construct_1 = require("../aws-construct");
9
10
  /**
10
11
  * Defines a target tracking scaling policy for Application Auto Scaling.
@@ -19,12 +20,10 @@ class TargetTrackingScalingPolicy extends aws_construct_1.AwsConstructBase {
19
20
  super(scope, id, props);
20
21
  if ((props.customMetric === undefined) ===
21
22
  (props.predefinedMetric === undefined)) {
22
- // Assuming ValidationError is available, otherwise use standard Error
23
- throw new Error("Exactly one of 'customMetric' or 'predefinedMetric' must be specified.");
23
+ throw new errors_1.ValidationError("Exactly one of 'customMetric' or 'predefinedMetric' must be specified.", this);
24
24
  }
25
25
  if (props.customMetric && !props.customMetric.toMetricConfig().metricStat) {
26
- // Assuming ValidationError is available, otherwise use standard Error
27
- throw new Error("Only direct metrics are supported for Target Tracking. Use Step Scaling or supply a Metric object.");
26
+ throw new errors_1.ValidationError("Only direct metrics are supported for Target Tracking. Use Step Scaling or supply a Metric object.", this);
28
27
  }
29
28
  // replace dummy value in DYNAMODB_WRITE_CAPACITY_UTILIZATION due to a jsii bug (https://github.com/aws/jsii/issues/2782)
30
29
  const predefinedMetricValue = props.predefinedMetric ===
@@ -39,7 +38,7 @@ class TargetTrackingScalingPolicy extends aws_construct_1.AwsConstructBase {
39
38
  scalableDimension: props.scalingTarget.scalableDimension,
40
39
  serviceNamespace: props.scalingTarget.serviceNamespace,
41
40
  targetTrackingScalingPolicyConfiguration: {
42
- customizedMetricSpecification: renderCustomMetric(props.customMetric),
41
+ customizedMetricSpecification: renderCustomMetric(this, props.customMetric),
43
42
  disableScaleIn: props.disableScaleIn,
44
43
  predefinedMetricSpecification: predefinedMetricValue !== undefined
45
44
  ? {
@@ -57,21 +56,19 @@ class TargetTrackingScalingPolicy extends aws_construct_1.AwsConstructBase {
57
56
  }
58
57
  exports.TargetTrackingScalingPolicy = TargetTrackingScalingPolicy;
59
58
  _a = JSII_RTTI_SYMBOL_1;
60
- TargetTrackingScalingPolicy[_a] = { fqn: "terraconstructs.aws.compute.TargetTrackingScalingPolicy", version: "0.1.8" };
61
- function renderCustomMetric(metric) {
59
+ TargetTrackingScalingPolicy[_a] = { fqn: "terraconstructs.aws.compute.TargetTrackingScalingPolicy", version: "0.1.9" };
60
+ function renderCustomMetric(scope, metric) {
62
61
  if (!metric) {
63
62
  return undefined;
64
63
  }
65
64
  const metricConfig = metric.toMetricConfig();
66
65
  // Target tracking only supports metrics with a single metric stat
67
66
  if (!metricConfig.metricStat) {
68
- // Assuming ValidationError is available, otherwise use standard Error
69
- throw new Error("Target tracking custom metric must be a single metric stat.");
67
+ throw new errors_1.ValidationError("Target tracking custom metric must be a single metric stat.", scope);
70
68
  }
71
69
  const c = metricConfig.metricStat;
72
70
  if (c.statistic.startsWith("p")) {
73
- // Assuming ValidationError is available, otherwise use standard Error
74
- throw new Error(`Cannot use statistic '${c.statistic}' for Target Tracking: only 'Average', 'Minimum', 'Maximum', 'SampleCount', and 'Sum' are supported.`);
71
+ throw new errors_1.ValidationError(`Cannot use statistic '${c.statistic}' for Target Tracking: only 'Average', 'Minimum', 'Maximum', 'SampleCount', and 'Sum' are supported.`, scope);
75
72
  }
76
73
  const dimensions = Object.entries(c.dimensions ?? {}).map(([name, value]) => ({
77
74
  name,
@@ -231,4 +228,4 @@ var PredefinedMetric;
231
228
  */
232
229
  PredefinedMetric["WORKSPACES_AVERAGE_USER_SESSIONS_CAPACITY_UTILIZATION"] = "WorkSpacesAverageUserSessionsCapacityUtilization";
233
230
  })(PredefinedMetric || (exports.PredefinedMetric = PredefinedMetric = {}));
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LXRyYWNraW5nLXNjYWxpbmctcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3RhcmdldC10cmFja2luZy1zY2FsaW5nLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFJQUFxSTtBQUVySSxzREFBMkQ7QUFJM0Qsb0RBQXVFO0FBMEh2RTs7R0FFRztBQUNILE1BQWEsMkJBQTRCLFNBQVEsZ0NBQWdCO0lBUS9ELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtTQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQXVDO1FBRXZDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQ0UsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQztZQUNsQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsRUFDdEMsQ0FBQztZQUNELHNFQUFzRTtZQUN0RSxNQUFNLElBQUksS0FBSyxDQUNiLHdFQUF3RSxDQUN6RSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDMUUsc0VBQXNFO1lBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0dBQW9HLENBQ3JHLENBQUM7UUFDSixDQUFDO1FBRUQseUhBQXlIO1FBQ3pILE1BQU0scUJBQXFCLEdBQ3pCLEtBQUssQ0FBQyxnQkFBZ0I7WUFDdEIsZ0JBQWdCLENBQUMsbUNBQW1DO1lBQ2xELENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxtQ0FBbUM7WUFDdEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztRQUU3QixN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UUc7SUFDSCxrR0FBOEUsQ0FBQTtJQUM5RTs7OztPQUlHO0lBQ0gsNEZBQXdFLENBQUE7SUFDeEU7OztPQUdHO0lBQ0gsNkVBQXlELENBQUE7SUFDekQ7OztPQUdHO0lBQ0gseUZBQXFFLENBQUE7SUFDckU7OztPQUdHO0lBQ0gsbUdBQStFLENBQUE7SUFDL0U7OztPQUdHO0lBQ0gsK0dBQTJGLENBQUE7SUFDM0Y7OztPQUdHO0lBQ0gscUdBQWlGLENBQUE7SUFDakY7OztPQUdHO0lBQ0gsdUdBQW1GLENBQUE7SUFDbkY7OztPQUdHO0lBQ0gseUdBQXFGLENBQUE7SUFDckY7OztPQUdHO0lBQ0gsK0hBQTJHLENBQUE7SUFDM0c7OztPQUdHO0lBQ0gsd0hBQW9HLENBQUE7SUFDcEc7OztPQUdHO0lBQ0gsMkZBQXVFLENBQUE7SUFDdkU7OztPQUdHO0lBQ0gsaUdBQTZFLENBQUE7SUFDN0U7OztPQUdHO0lBQ0gsMEdBQXNGLENBQUE7SUFDdEY7OztPQUdHO0lBQ0gsc0ZBQWtFLENBQUE7SUFDbEU7OztPQUdHO0lBQ0gseUdBQXFGLENBQUE7SUFDckY7OztPQUdHO0lBQ0gseUdBQXFGLENBQUE7SUFDckY7OztPQUdHO0lBQ0gsOElBQTBILENBQUE7SUFDMUg7OztPQUdHO0lBQ0gsa0pBQThILENBQUE7SUFDOUg7OztPQUdHO0lBQ0gscUtBQWlKLENBQUE7SUFDako7OztPQUdHO0lBQ0gsZ0pBQTRILENBQUE7SUFDNUg7OztPQUdHO0lBQ0gsOEhBQTBHLENBQUE7QUFDNUcsQ0FBQyxFQTdJVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQTZJM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xODYuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtYXBwbGljYXRpb25hdXRvc2NhbGluZy9saWIvdGFyZ2V0LXRyYWNraW5nLXNjYWxpbmctcG9saWN5LnRzXG5cbmltcG9ydCB7IGFwcGF1dG9zY2FsaW5nUG9saWN5IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJU2NhbGFibGVUYXJnZXQgfSBmcm9tIFwiLi9zY2FsYWJsZS10YXJnZXRcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCIuLi9jbG91ZHdhdGNoXCI7XG4vLyBUT0RPIEFkdXB0IFZhbGlkYXRpb25FcnJvciBpcyBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2Ugc3RhbmRhcmQgRXJyb3Jcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMzMzODIvXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzMzMDQ1XG4vLyBpbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tIFwiLi4vY29yZS9lcnJvcnNcIjtcblxuLyoqXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgdGFyZ2V0IHRyYWNraW5nIHByb3BzXG4gKlxuICogQ29udGFpbnMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29tbW9uIHRvIHRhcmdldCB0cmFja2luZyBwb2xpY2llcyxcbiAqIGV4Y2VwdCB0aGUgb25lcyByZWxhdGluZyB0byB0aGUgbWV0cmljIGFuZCB0byB0aGUgc2NhbGFibGUgdGFyZ2V0LlxuICpcbiAqIFRoaXMgaW50ZXJmYWNlIGlzIHJldXNlZCBieSBtb3JlIHNwZWNpZmljIHRhcmdldCB0cmFja2luZyBwcm9wcyBvYmplY3RzXG4gKiBpbiBvdGhlciBzZXJ2aWNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlVGFyZ2V0VHJhY2tpbmdQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBzY2FsaW5nIHBvbGljeVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEZyaWVuZGx5IG5hbWUgb2YgdGhlIGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHNjYWxlIGluIGJ5IHRoZSB0YXJnZXQgdHJhY2tpbmcgcG9saWN5IGlzIGRpc2FibGVkLlxuICAgKlxuICAgKiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgc2NhbGUgaW4gaXMgZGlzYWJsZWQgYW5kIHRoZSB0YXJnZXQgdHJhY2tpbmcgcG9saWN5XG4gICAqIHdvbid0IHJlbW92ZSBjYXBhY2l0eSBmcm9tIHRoZSBzY2FsYWJsZSByZXNvdXJjZS4gT3RoZXJ3aXNlLCBzY2FsZSBpbiBpc1xuICAgKiBlbmFibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHBvbGljeSBjYW4gcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlXG4gICAqIHNjYWxhYmxlIHJlc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVNjYWxlSW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQZXJpb2QgYWZ0ZXIgYSBzY2FsZSBpbiBhY3Rpdml0eSBjb21wbGV0ZXMgYmVmb3JlIGFub3RoZXIgc2NhbGUgaW4gYWN0aXZpdHkgY2FuIHN0YXJ0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDMwMCkgZm9yIHRoZSBmb2xsb3dpbmcgc2NhbGFibGUgdGFyZ2V0czogRUNTIHNlcnZpY2VzLFxuICAgKiBTcG90IEZsZWV0IHJlcXVlc3RzLCBFTVIgY2x1c3RlcnMsIEFwcFN0cmVhbSAyLjAgZmxlZXRzLCBBdXJvcmEgREIgY2x1c3RlcnMsXG4gICAqIEFtYXpvbiBTYWdlTWFrZXIgZW5kcG9pbnQgdmFyaWFudHMsIEN1c3RvbSByZXNvdXJjZXMuIEZvciBhbGwgb3RoZXIgc2NhbGFibGVcbiAgICogdGFyZ2V0cywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgRHVyYXRpb24uc2Vjb25kcygwKTogRHluYW1vREIgdGFibGVzLCBEeW5hbW9EQlxuICAgKiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50cyxcbiAgICogTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XG4gICAqL1xuICByZWFkb25seSBzY2FsZUluQ29vbGRvd24/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogUGVyaW9kIGFmdGVyIGEgc2NhbGUgb3V0IGFjdGl2aXR5IGNvbXBsZXRlcyBiZWZvcmUgYW5vdGhlciBzY2FsZSBvdXQgYWN0aXZpdHkgY2FuIHN0YXJ0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDMwMCkgZm9yIHRoZSBmb2xsb3dpbmcgc2NhbGFibGUgdGFyZ2V0czogRUNTIHNlcnZpY2VzLFxuICAgKiBTcG90IEZsZWV0IHJlcXVlc3RzLCBFTVIgY2x1c3RlcnMsIEFwcFN0cmVhbSAyLjAgZmxlZXRzLCBBdXJvcmEgREIgY2x1c3RlcnMsXG4gICAqIEFtYXpvbiBTYWdlTWFrZXIgZW5kcG9pbnQgdmFyaWFudHMsIEN1c3RvbSByZXNvdXJjZXMuIEZvciBhbGwgb3RoZXIgc2NhbGFibGVcbiAgICogdGFyZ2V0cywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgRHVyYXRpb24uc2Vjb25kcygwKTogRHluYW1vREIgdGFibGVzLCBEeW5hbW9EQlxuICAgKiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50cyxcbiAgICogTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XG4gICAqL1xuICByZWFkb25seSBzY2FsZU91dENvb2xkb3duPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBUYXJnZXQgVHJhY2tpbmcgcG9saWN5IHRoYXQgaW5jbHVkZSB0aGUgbWV0cmljIGJ1dCBleGNsdWRlIHRoZSB0YXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpY1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeVByb3BzXG4gIGV4dGVuZHMgQmFzZVRhcmdldFRyYWNraW5nUHJvcHMge1xuICAvKipcbiAgICogVGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIG1ldHJpYy5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFZhbHVlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgcHJlZGVmaW5lZCBtZXRyaWMgZm9yIGFwcGxpY2F0aW9uIGF1dG9zY2FsaW5nXG4gICAqXG4gICAqIFRoZSBtZXRyaWMgbXVzdCB0cmFjayB1dGlsaXphdGlvbi4gU2NhbGluZyBvdXQgd2lsbCBoYXBwZW4gaWYgdGhlIG1ldHJpYyBpcyBoaWdoZXIgdGhhblxuICAgKiB0aGUgdGFyZ2V0IHZhbHVlLCBzY2FsaW5nIGluIHdpbGwgaGFwcGVuIGluIHRoZSBtZXRyaWMgaXMgbG93ZXIgdGhhbiB0aGUgdGFyZ2V0IHZhbHVlLlxuICAgKlxuICAgKiBFeGFjdGx5IG9uZSBvZiBjdXN0b21NZXRyaWMgb3IgcHJlZGVmaW5lZE1ldHJpYyBtdXN0IGJlIHNwZWNpZmllZC46XG4gICAgICBPYmplY3QuZW50cmllcyhjLmRpbWVuc2lvbnMpLm1hcCgpIGFzIGFwcGF1dG9zY2FsaW5nUG9saWN5LkFwcGF1dG9zY2FsaW5nUG9saWN5VGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uRGltZW5zaW9uc1tdLFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHByZWRlZmluZWQgbWV0cmljcy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWRlZmluZWRNZXRyaWM/OiBQcmVkZWZpbmVkTWV0cmljO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmeSB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXRyaWMgdHlwZS5cbiAgICpcbiAgICogT25seSB1c2VkIGZvciBwcmVkZWZpbmVkIG1ldHJpYyBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXQuXG4gICAqXG4gICAqIEV4YW1wbGUgdmFsdWU6IGBhcHAvPGxvYWQtYmFsYW5jZXItbmFtZT4vPGxvYWQtYmFsYW5jZXItaWQ+L3RhcmdldGdyb3VwLzx0YXJnZXQtZ3JvdXAtbmFtZT4vPHRhcmdldC1ncm91cC1pZD5gXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVzb3VyY2UgbGFiZWwuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBtZXRyaWMgZm9yIGFwcGxpY2F0aW9uIGF1dG9zY2FsaW5nXG4gICAqXG4gICAqIFRoZSBtZXRyaWMgbXVzdCB0cmFjayB1dGlsaXphdGlvbi4gU2NhbGluZyBvdXQgd2lsbCBoYXBwZW4gaWYgdGhlIG1ldHJpYyBpcyBoaWdoZXIgdGhhblxuICAgKiB0aGUgdGFyZ2V0IHZhbHVlLCBzY2FsaW5nIGluIHdpbGwgaGFwcGVuIGluIHRoZSBtZXRyaWMgaXMgbG93ZXIgdGhhbiB0aGUgdGFyZ2V0IHZhbHVlLlxuICAgKlxuICAgKiBFeGFjdGx5IG9uZSBvZiBjdXN0b21NZXRyaWMgb3IgcHJlZGVmaW5lZE1ldHJpYyBtdXN0IGJlIHNwZWNpZmllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gbWV0cmljLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tTWV0cmljPzogY2xvdWR3YXRjaC5JTWV0cmljO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgY29uY3JldGUgVGFyZ2V0VHJhY2tpbmdQb2xpY3lcbiAqXG4gKiBBZGRzIHRoZSBzY2FsaW5nVGFyZ2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeVByb3BzXG4gIGV4dGVuZHMgQmFzaWNUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lQcm9wcyxcbiAgICBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qXG4gICAqIFRoZSBzY2FsYWJsZSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHNjYWxpbmdUYXJnZXQ6IElTY2FsYWJsZVRhcmdldDtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGZvciBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIEFSTiBvZiB0aGUgc2NhbGluZyBwb2xpY3lcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY2FsaW5nUG9saWN5QXJuOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogYXBwYXV0b3NjYWxpbmdQb2xpY3kuQXBwYXV0b3NjYWxpbmdQb2xpY3k7XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBzY2FsaW5nUG9saWN5QXJuOiB0aGlzLnNjYWxpbmdQb2xpY3lBcm4sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKFxuICAgICAgKHByb3BzLmN1c3RvbU1ldHJpYyA9PT0gdW5kZWZpbmVkKSA9PT1cbiAgICAgIChwcm9wcy5wcmVkZWZpbmVkTWV0cmljID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICAvLyBBc3N1bWluZyBWYWxpZGF0aW9uRXJyb3IgaXMgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIHN0YW5kYXJkIEVycm9yXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiRXhhY3RseSBvbmUgb2YgJ2N1c3RvbU1ldHJpYycgb3IgJ3ByZWRlZmluZWRNZXRyaWMnIG11c3QgYmUgc3BlY2lmaWVkLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuY3VzdG9tTWV0cmljICYmICFwcm9wcy5jdXN0b21NZXRyaWMudG9NZXRyaWNDb25maWcoKS5tZXRyaWNTdGF0KSB7XG4gICAgICAvLyBBc3N1bWluZyBWYWxpZGF0aW9uRXJyb3IgaXMgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIHN0YW5kYXJkIEVycm9yXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiT25seSBkaXJlY3QgbWV0cmljcyBhcmUgc3VwcG9ydGVkIGZvciBUYXJnZXQgVHJhY2tpbmcuIFVzZSBTdGVwIFNjYWxpbmcgb3Igc3VwcGx5IGEgTWV0cmljIG9iamVjdC5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gcmVwbGFjZSBkdW1teSB2YWx1ZSBpbiBEWU5BTU9EQl9XUklURV9DQVBBQ0lUWV9VVElMSVpBVElPTiBkdWUgdG8gYSBqc2lpIGJ1ZyAoaHR0cHM6Ly9naXRodWIuY29tL2F3cy9qc2lpL2lzc3Vlcy8yNzgyKVxuICAgIGNvbnN0IHByZWRlZmluZWRNZXRyaWNWYWx1ZSA9XG4gICAgICBwcm9wcy5wcmVkZWZpbmVkTWV0cmljID09PVxuICAgICAgUHJlZGVmaW5lZE1ldHJpYy5EWU5BTU9EQl9XUklURV9DQVBBQ0lUWV9VVElMSVpBVElPTlxuICAgICAgICA/IFByZWRlZmluZWRNZXRyaWMuRFlBTk1PREJfV1JJVEVfQ0FQQUNJVFlfVVRJTElaQVRJT05cbiAgICAgICAgOiBwcm9wcy5wcmVkZWZpbmVkTWV0cmljO1xuXG4gICAgY29uc3QgcG9saWN5TmFtZSA9IHByb3BzLnBvbGljeU5hbWUgPz8gdGhpcy5mcmllbmRseU5hbWU7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGFwcGF1dG9zY2FsaW5nUG9saWN5LkFwcGF1dG9zY2FsaW5nUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogcG9saWN5TmFtZSxcbiAgICAgICAgcG9saWN5VHlwZTogXCJUYXJnZXRUcmFja2luZ1NjYWxpbmdcIixcbiAgICAgICAgcmVzb3VyY2VJZDogcHJvcHMuc2NhbGluZ1RhcmdldC5yZXNvdXJjZUlkLFxuICAgICAgICBzY2FsYWJsZURpbWVuc2lvbjogcHJvcHMuc2NhbGluZ1RhcmdldC5zY2FsYWJsZURpbWVuc2lvbixcbiAgICAgICAgc2VydmljZU5hbWVzcGFjZTogcHJvcHMuc2NhbGluZ1RhcmdldC5zZXJ2aWNlTmFtZXNwYWNlLFxuICAgICAgICB0YXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgY3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb246IHJlbmRlckN1c3RvbU1ldHJpYyhwcm9wcy5jdXN0b21NZXRyaWMpLFxuICAgICAgICAgIGRpc2FibGVTY2FsZUluOiBwcm9wcy5kaXNhYmxlU2NhbGVJbixcbiAgICAgICAgICBwcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbjpcbiAgICAgICAgICAgIHByZWRlZmluZWRNZXRyaWNWYWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgcHJlZGVmaW5lZE1ldHJpY1R5cGU6IHByZWRlZmluZWRNZXRyaWNWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlTGFiZWw6IHByb3BzLnJlc291cmNlTGFiZWwsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzY2FsZUluQ29vbGRvd246IHByb3BzLnNjYWxlSW5Db29sZG93bj8udG9TZWNvbmRzKCksXG4gICAgICAgICAgc2NhbGVPdXRDb29sZG93bjogcHJvcHMuc2NhbGVPdXRDb29sZG93bj8udG9TZWNvbmRzKCksXG4gICAgICAgICAgdGFyZ2V0VmFsdWU6IHByb3BzLnRhcmdldFZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5zY2FsaW5nUG9saWN5QXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyQ3VzdG9tTWV0cmljKFxuICBtZXRyaWM/OiBjbG91ZHdhdGNoLklNZXRyaWMsXG4pOlxuICB8IGFwcGF1dG9zY2FsaW5nUG9saWN5LkFwcGF1dG9zY2FsaW5nUG9saWN5VGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG4gIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFtZXRyaWMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IG1ldHJpY0NvbmZpZyA9IG1ldHJpYy50b01ldHJpY0NvbmZpZygpO1xuXG4gIC8vIFRhcmdldCB0cmFja2luZyBvbmx5IHN1cHBvcnRzIG1ldHJpY3Mgd2l0aCBhIHNpbmdsZSBtZXRyaWMgc3RhdFxuICBpZiAoIW1ldHJpY0NvbmZpZy5tZXRyaWNTdGF0KSB7XG4gICAgLy8gQXNzdW1pbmcgVmFsaWRhdGlvbkVycm9yIGlzIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHVzZSBzdGFuZGFyZCBFcnJvclxuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiVGFyZ2V0IHRyYWNraW5nIGN1c3RvbSBtZXRyaWMgbXVzdCBiZSBhIHNpbmdsZSBtZXRyaWMgc3RhdC5cIixcbiAgICApO1xuICB9XG4gIGNvbnN0IGMgPSBtZXRyaWNDb25maWcubWV0cmljU3RhdDtcblxuICBpZiAoYy5zdGF0aXN0aWMuc3RhcnRzV2l0aChcInBcIikpIHtcbiAgICAvLyBBc3N1bWluZyBWYWxpZGF0aW9uRXJyb3IgaXMgYXZhaWxhYmxlLCBvdGhlcndpc2UgdXNlIHN0YW5kYXJkIEVycm9yXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCB1c2Ugc3RhdGlzdGljICcke2Muc3RhdGlzdGljfScgZm9yIFRhcmdldCBUcmFja2luZzogb25seSAnQXZlcmFnZScsICdNaW5pbXVtJywgJ01heGltdW0nLCAnU2FtcGxlQ291bnQnLCBhbmQgJ1N1bScgYXJlIHN1cHBvcnRlZC5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBkaW1lbnNpb25zOiBhcHBhdXRvc2NhbGluZ1BvbGljeS5BcHBhdXRvc2NhbGluZ1BvbGljeVRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25DdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvbkRpbWVuc2lvbnNbXSA9XG4gICAgT2JqZWN0LmVudHJpZXMoYy5kaW1lbnNpb25zID8/IHt9KS5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgfSkpO1xuXG4gIHJldHVybiB7XG4gICAgZGltZW5zaW9ucyxcbiAgICBtZXRyaWNOYW1lOiBjLm1ldHJpY05hbWUsXG4gICAgbmFtZXNwYWNlOiBjLm5hbWVzcGFjZSxcbiAgICBzdGF0aXN0aWM6IGMuc3RhdGlzdGljLFxuICAgIHVuaXQ6IGMudW5pdEZpbHRlcixcbiAgfTtcbn1cblxuLyoqXG4gKiBPbmUgb2YgdGhlIHByZWRlZmluZWQgYXV0b3NjYWxpbmcgbWV0cmljc1xuICovXG5leHBvcnQgZW51bSBQcmVkZWZpbmVkTWV0cmljIHtcbiAgLyoqXG4gICAqIEF2ZXJhZ2UgcGVyY2VudGFnZSBvZiBpbnN0YW5jZXMgaW4gYW4gQXBwU3RyZWFtIGZsZWV0IHRoYXQgYXJlIGJlaW5nIHVzZWQuXG4gICAqL1xuICBBUFBTVFJFQU1fQVZFUkFHRV9DQVBBQ0lUWV9VVElMSVpBVElPTiA9IFwiQXBwU3RyZWFtQXZlcmFnZUNhcGFjaXR5VXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIFBlcmNlbnRhZ2Ugb2YgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSB1bml0cyB1dGlsaXplZCBieSBhIEtleXNwYWNlcyB0YWJsZS5cbiAgICovXG4gIENBU1NBTkRSQV9SRUFEX0NBUEFDSVRZX1VUSUxJWkFUSU9OID0gXCJDYXNzYW5kcmFSZWFkQ2FwYWNpdHlVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogUGVyY2VudGFnZSBvZiBwcm92aXNpb25lZCB3cml0ZSBjYXBhY2l0eSB1bml0cyB1dGlsaXplZCBieSBhIEtleXNwYWNlcyB0YWJsZS5cbiAgICovXG4gIENBU1NBTkRSQV9XUklURV9DQVBBQ0lUWV9VVElMSVpBVElPTiA9IFwiQ2Fzc2FuZHJhV3JpdGVDYXBhY2l0eVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBQZXJjZW50YWdlIG9mIHByb3Zpc2lvbmVkIGluZmVyZW5jZSB1bml0cyB1dGlsaXplZCBieSBhIENvbXByZWhlbmQgZW5kcG9pbnQuXG4gICAqL1xuICBDT01QUkVIRU5EX0lORkVSRU5DRV9VVElMSVpBVElPTiA9IFwiQ29tcHJlaGVuZEluZmVyZW5jZVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBBdmVyYWdlIENQVSBVdGlsaXphdGlvbiBvZiByZWFkIHJlcGxpY2EgaW5zdGFuY2VzIGluIGEgTmVwdHVuZSBEQiBjbHVzdGVyLlxuICAgKi9cbiAgTkVQVFVSRV9SRUFERVJfQVZFUkFHRV9DUFVfVVRJTElaQVRJT04gPSBcIk5lcHR1bmVSZWFkZXJBdmVyYWdlQ1BVVXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIFBlcmNlbnRhZ2Ugb2YgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSB1bml0cyBjb25zdW1lZCBieSBhIER5bmFtb0RCIHRhYmxlLlxuICAgKi9cbiAgRFlOQU1PREJfUkVBRF9DQVBBQ0lUWV9VVElMSVpBVElPTiA9IFwiRHluYW1vREJSZWFkQ2FwYWNpdHlVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogUGVyY2VudGFnZSBvZiBwcm92aXNpb25lZCB3cml0ZSBjYXBhY2l0eSB1bml0cyBjb25zdW1lZCBieSBhIER5bmFtb0RCIHRhYmxlLlxuICAgKlxuICAgKiBTdWZmaXggYGR1bW15YCBpcyBuZWNlc3NhcnkgZHVlIHRvIGpzaWkgYnVnIChodHRwczovL2dpdGh1Yi5jb20vYXdzL2pzaWkvaXNzdWVzLzI3ODIpLlxuICAgKiBEdXBsaWNhdGUgdmFsdWVzIHdpbGwgYmUgZHJvcHBlZCwgc28gdGhpcyBzdWZmaXggaXMgYWRkZWQgYXMgYSB3b3JrYXJvdW5kLlxuICAgKiBUaGUgdmFsdWUgd2lsbCBiZSByZXBsYWNlZCB3aGVuIHRoaXMgZW51bSBpcyB1c2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIERZTkFNT0RCX1dSSVRFX0NBUEFDSVRZX1VUSUxJWkFUSU9OID0gXCJEeW5hbW9EQldyaXRlQ2FwYWNpdHlVdGlsaXphdGlvbi1kdW1teVwiLFxuICAvKipcbiAgICogRFlBTk1PREJfV1JJVEVfQ0FQQUNJVFlfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgUHJlZGVmaW5lZE1ldHJpYy5EWU5BTU9EQl9XUklURV9DQVBBQ0lUWV9VVElMSVpBVElPTmBcbiAgICovXG4gIERZQU5NT0RCX1dSSVRFX0NBUEFDSVRZX1VUSUxJWkFUSU9OID0gXCJEeW5hbW9EQldyaXRlQ2FwYWNpdHlVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogQUxCX1JFUVVFU1RfQ09VTlRfUEVSX1RBUkdFVFxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEFMQl9SRVFVRVNUX0NPVU5UX1BFUl9UQVJHRVQgPSBcIkFMQlJlcXVlc3RDb3VudFBlclRhcmdldFwiLFxuICAvKipcbiAgICogUkRTX1JFQURFUl9BVkVSQUdFX0NQVV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIFJEU19SRUFERVJfQVZFUkFHRV9DUFVfVVRJTElaQVRJT04gPSBcIlJEU1JlYWRlckF2ZXJhZ2VDUFVVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogUkRTX1JFQURFUl9BVkVSQUdFX0RBVEFCQVNFX0NPTk5FQ1RJT05TXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgUkRTX1JFQURFUl9BVkVSQUdFX0RBVEFCQVNFX0NPTk5FQ1RJT05TID0gXCJSRFNSZWFkZXJBdmVyYWdlRGF0YWJhc2VDb25uZWN0aW9uc1wiLFxuICAvKipcbiAgICogRUMyX1NQT1RfRkxFRVRfUkVRVUVTVF9BVkVSQUdFX0NQVV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEVDMl9TUE9UX0ZMRUVUX1JFUVVFU1RfQVZFUkFHRV9DUFVfVVRJTElaQVRJT04gPSBcIkVDMlNwb3RGbGVldFJlcXVlc3RBdmVyYWdlQ1BVVXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIEVDMl9TUE9UX0ZMRUVUX1JFUVVFU1RfQVZFUkFHRV9ORVRXT1JLX0lOXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgRUMyX1NQT1RfRkxFRVRfUkVRVUVTVF9BVkVSQUdFX05FVFdPUktfSU4gPSBcIkVDMlNwb3RGbGVldFJlcXVlc3RBdmVyYWdlTmV0d29ya0luXCIsXG4gIC8qKlxuICAgKiBFQzJfU1BPVF9GTEVFVF9SRVFVRVNUX0FWRVJBR0VfTkVUV09SS19PVVRcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBFQzJfU1BPVF9GTEVFVF9SRVFVRVNUX0FWRVJBR0VfTkVUV09SS19PVVQgPSBcIkVDMlNwb3RGbGVldFJlcXVlc3RBdmVyYWdlTmV0d29ya091dFwiLFxuICAvKipcbiAgICogU0FHRU1BS0VSX1ZBUklBTlRfSU5WT0NBVElPTlNfUEVSX0lOU1RBTkNFXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgU0FHRU1BS0VSX1ZBUklBTlRfSU5WT0NBVElPTlNfUEVSX0lOU1RBTkNFID0gXCJTYWdlTWFrZXJWYXJpYW50SW52b2NhdGlvbnNQZXJJbnN0YW5jZVwiLFxuICAvKipcbiAgICogU0FHRU1BS0VSX1ZBUklBTlRfUFJPVklTSU9ORURfQ09OQ1VSUkVOQ1lfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBTQUdFTUFLRVJfVkFSSUFOVF9QUk9WSVNJT05FRF9DT05DVVJSRU5DWV9VVElMSVpBVElPTiA9IFwiU2FnZU1ha2VyVmFyaWFudFByb3Zpc2lvbmVkQ29uY3VycmVuY3lVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogU0FHRU1BS0VSX0lORkVSRU5DRV9DT01QT05FTlRfSU5WT0NBVElPTlNfUEVSX0NPUFlcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBTQUdFTUFLRVJfSU5GRVJFTkNFX0NPTVBPTkVOVF9JTlZPQ0FUSU9OU19QRVJfQ09QWSA9IFwiU2FnZU1ha2VySW5mZXJlbmNlQ29tcG9uZW50SW52b2NhdGlvbnNQZXJDb3B5XCIsXG4gIC8qKlxuICAgKiBFQ1NfU0VSVklDRV9BVkVSQUdFX0NQVV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEVDU19TRVJWSUNFX0FWRVJBR0VfQ1BVX1VUSUxJWkFUSU9OID0gXCJFQ1NTZXJ2aWNlQXZlcmFnZUNQVVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBFQ1NfU0VSVklDRV9BVkVSQUdFX01FTU9SWV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEVDU19TRVJWSUNFX0FWRVJBR0VfTUVNT1JZX1VUSUxJWkFUSU9OID0gXCJFQ1NTZXJ2aWNlQXZlcmFnZU1lbW9yeVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBMQU1CREFfUFJPVklTSU9ORURfQ09OQ1VSUkVOQ1lfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9tb25pdG9yaW5nLW1ldHJpY3MuaHRtbCNtb25pdG9yaW5nLW1ldHJpY3MtY29uY3VycmVuY3lcbiAgICovXG4gIExBTUJEQV9QUk9WSVNJT05FRF9DT05DVVJSRU5DWV9VVElMSVpBVElPTiA9IFwiTGFtYmRhUHJvdmlzaW9uZWRDb25jdXJyZW5jeVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBLQUZLQV9CUk9LRVJfU1RPUkFHRV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEtBRktBX0JST0tFUl9TVE9SQUdFX1VUSUxJWkFUSU9OID0gXCJLYWZrYUJyb2tlclN0b3JhZ2VVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogRUxBU1RJQ0FDSEVfUFJJTUFSWV9FTkdJTkVfQ1BVX1VUSUxJWkFUSU9OXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgRUxBU1RJQ0FDSEVfUFJJTUFSWV9FTkdJTkVfQ1BVX1VUSUxJWkFUSU9OID0gXCJFbGFzdGlDYWNoZVByaW1hcnlFbmdpbmVDUFVVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogRUxBU1RJQ0FDSEVfUkVQTElDQV9FTkdJTkVfQ1BVX1VUSUxJWkFUSU9OXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgRUxBU1RJQ0FDSEVfUkVQTElDQV9FTkdJTkVfQ1BVX1VUSUxJWkFUSU9OID0gXCJFbGFzdGlDYWNoZVJlcGxpY2FFbmdpbmVDUFVVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogRUxBU1RJQ0FDSEVfREFUQUJBU0VfTUVNT1JZX1VTQUdFX0NPVU5URURfRk9SX0VWSUNUX1BFUkNFTlRBR0VcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBFTEFTVElDQUNIRV9EQVRBQkFTRV9NRU1PUllfVVNBR0VfQ09VTlRFRF9GT1JfRVZJQ1RfUEVSQ0VOVEFHRSA9IFwiRWxhc3RpQ2FjaGVEYXRhYmFzZU1lbW9yeVVzYWdlQ291bnRlZEZvckV2aWN0UGVyY2VudGFnZVwiLFxuICAvKipcbiAgICogRUxBU1RJQ0FDSEVfREFUQUJBU0VfQ0FQQUNJVFlfVVNBR0VfQ09VTlRFRF9GT1JfRVZJQ1RfUEVSQ0VOVEFHRVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEVMQVNUSUNBQ0hFX0RBVEFCQVNFX0NBUEFDSVRZX1VTQUdFX0NPVU5URURfRk9SX0VWSUNUX1BFUkNFTlRBR0UgPSBcIkVsYXN0aUNhY2hlRGF0YWJhc2VDYXBhY2l0eVVzYWdlQ291bnRlZEZvckV2aWN0UGVyY2VudGFnZVwiLFxuICAvKipcbiAgICogU0FHRU1BS0VSX0lORkVSRU5DRV9DT01QT05FTlRfQ09OQ1VSUkVOVF9SRVFVRVNUU19QRVJfQ09QWV9ISUdIX1JFU09MVVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBTQUdFTUFLRVJfSU5GRVJFTkNFX0NPTVBPTkVOVF9DT05DVVJSRU5UX1JFUVVFU1RTX1BFUl9DT1BZX0hJR0hfUkVTT0xVVElPTiA9IFwiU2FnZU1ha2VySW5mZXJlbmNlQ29tcG9uZW50Q29uY3VycmVudFJlcXVlc3RzUGVyQ29weUhpZ2hSZXNvbHV0aW9uXCIsXG4gIC8qKlxuICAgKiBTQUdFTUFLRVJfVkFSSUFOVF9DT05DVVJSRU5UX1JFUVVFU1RTX1BFUl9NT0RFTF9ISUdIX1JFU09MVVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBTQUdFTUFLRVJfVkFSSUFOVF9DT05DVVJSRU5UX1JFUVVFU1RTX1BFUl9NT0RFTF9ISUdIX1JFU09MVVRJT04gPSBcIlNhZ2VNYWtlclZhcmlhbnRDb25jdXJyZW50UmVxdWVzdHNQZXJNb2RlbEhpZ2hSZXNvbHV0aW9uXCIsXG4gIC8qKlxuICAgKiBXT1JLU1BBQ0VTX0FWRVJBR0VfVVNFUl9TRVNTSU9OU19DQVBBQ0lUWV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIFdPUktTUEFDRVNfQVZFUkFHRV9VU0VSX1NFU1NJT05TX0NBUEFDSVRZX1VUSUxJWkFUSU9OID0gXCJXb3JrU3BhY2VzQXZlcmFnZVVzZXJTZXNzaW9uc0NhcGFjaXR5VXRpbGl6YXRpb25cIixcbn1cbiJdfQ==
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LXRyYWNraW5nLXNjYWxpbmctcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3RhcmdldC10cmFja2luZy1zY2FsaW5nLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFJQUFxSTtBQUVySSxzREFBMkQ7QUFJM0QseUNBQStDO0FBQy9DLG9EQUF1RTtBQXNIdkU7O0dBRUc7QUFDSCxNQUFhLDJCQUE0QixTQUFRLGdDQUFnQjtJQVEvRCxJQUFXLE9BQU87UUFDaEIsT0FBTztZQUNMLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDeEMsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUF1QztRQUV2QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUNFLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUM7WUFDbEMsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxDQUFDLEVBQ3RDLENBQUM7WUFDRCxNQUFNLElBQUksd0JBQWUsQ0FDdkIsd0VBQXdFLEVBQ3hFLElBQUksQ0FDTCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDMUUsTUFBTSxJQUFJLHdCQUFlLENBQ3ZCLG9HQUFvRyxFQUNwRyxJQUFJLENBQ0wsQ0FBQztRQUNKLENBQUM7UUFFRCx5SEFBeUg7UUFDekgsTUFBTSxxQkFBcUIsR0FDekIsS0FBSyxDQUFDLGdCQUFnQjtZQUN0QixnQkFBZ0IsQ0FBQyxtQ0FBbUM7WUFDbEQsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLG1DQUFtQztZQUN0RCxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixD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SUFDSCwwRkFBc0UsQ0FBQTtJQUN0RTs7Ozs7Ozs7T0FRRztJQUNILGtHQUE4RSxDQUFBO0lBQzlFOzs7O09BSUc7SUFDSCw0RkFBd0UsQ0FBQTtJQUN4RTs7O09BR0c7SUFDSCw2RUFBeUQsQ0FBQTtJQUN6RDs7O09BR0c7SUFDSCx5RkFBcUUsQ0FBQTtJQUNyRTs7O09BR0c7SUFDSCxtR0FBK0UsQ0FBQTtJQUMvRTs7O09BR0c7SUFDSCwrR0FBMkYsQ0FBQTtJQUMzRjs7O09BR0c7SUFDSCxxR0FBaUYsQ0FBQTtJQUNqRjs7O09BR0c7SUFDSCx1R0FBbUYsQ0FBQTtJQUNuRjs7O09BR0c7SUFDSCx5R0FBcUYsQ0FBQTtJQUNyRjs7O09BR0c7SUFDSCwrSEFBMkcsQ0FBQTtJQUMzRzs7O09BR0c7SUFDSCx3SEFBb0csQ0FBQTtJQUNwRzs7O09BR0c7SUFDSCwyRkFBdUUsQ0FBQTtJQUN2RTs7O09BR0c7SUFDSCxpR0FBNkUsQ0FBQTtJQUM3RTs7O09BR0c7SUFDSCwwR0FBc0YsQ0FBQTtJQUN0Rjs7O09BR0c7SUFDSCxzRkFBa0UsQ0FBQTtJQUNsRTs7O09BR0c7SUFDSCx5R0FBcUYsQ0FBQTtJQUNyRjs7O09BR0c7SUFDSCx5R0FBcUYsQ0FBQTtJQUNyRjs7O09BR0c7SUFDSCw4SUFBMEgsQ0FBQTtJQUMxSDs7O09BR0c7SUFDSCxrSkFBOEgsQ0FBQTtJQUM5SDs7O09BR0c7SUFDSCxxS0FBaUosQ0FBQTtJQUNqSjs7O09BR0c7SUFDSCxnSkFBNEgsQ0FBQTtJQUM1SDs7O09BR0c7SUFDSCw4SEFBMEcsQ0FBQTtBQUM1RyxDQUFDLEVBN0lXLGdCQUFnQixnQ0FBaEIsZ0JBQWdCLFFBNkkzQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nL2xpYi90YXJnZXQtdHJhY2tpbmctc2NhbGluZy1wb2xpY3kudHNcblxuaW1wb3J0IHsgYXBwYXV0b3NjYWxpbmdQb2xpY3kgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElTY2FsYWJsZVRhcmdldCB9IGZyb20gXCIuL3NjYWxhYmxlLXRhcmdldFwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vZHVyYXRpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSBcIi4uL2Nsb3Vkd2F0Y2hcIjtcblxuLyoqXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgdGFyZ2V0IHRyYWNraW5nIHByb3BzXG4gKlxuICogQ29udGFpbnMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29tbW9uIHRvIHRhcmdldCB0cmFja2luZyBwb2xpY2llcyxcbiAqIGV4Y2VwdCB0aGUgb25lcyByZWxhdGluZyB0byB0aGUgbWV0cmljIGFuZCB0byB0aGUgc2NhbGFibGUgdGFyZ2V0LlxuICpcbiAqIFRoaXMgaW50ZXJmYWNlIGlzIHJldXNlZCBieSBtb3JlIHNwZWNpZmljIHRhcmdldCB0cmFja2luZyBwcm9wcyBvYmplY3RzXG4gKiBpbiBvdGhlciBzZXJ2aWNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlVGFyZ2V0VHJhY2tpbmdQcm9wcyB7XG4gIC8qKlxuICAgKiBBIG5hbWUgZm9yIHRoZSBzY2FsaW5nIHBvbGljeVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEZyaWVuZGx5IG5hbWUgb2YgdGhlIGNvbnN0cnVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHNjYWxlIGluIGJ5IHRoZSB0YXJnZXQgdHJhY2tpbmcgcG9saWN5IGlzIGRpc2FibGVkLlxuICAgKlxuICAgKiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgc2NhbGUgaW4gaXMgZGlzYWJsZWQgYW5kIHRoZSB0YXJnZXQgdHJhY2tpbmcgcG9saWN5XG4gICAqIHdvbid0IHJlbW92ZSBjYXBhY2l0eSBmcm9tIHRoZSBzY2FsYWJsZSByZXNvdXJjZS4gT3RoZXJ3aXNlLCBzY2FsZSBpbiBpc1xuICAgKiBlbmFibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHBvbGljeSBjYW4gcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlXG4gICAqIHNjYWxhYmxlIHJlc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZVNjYWxlSW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQZXJpb2QgYWZ0ZXIgYSBzY2FsZSBpbiBhY3Rpdml0eSBjb21wbGV0ZXMgYmVmb3JlIGFub3RoZXIgc2NhbGUgaW4gYWN0aXZpdHkgY2FuIHN0YXJ0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDMwMCkgZm9yIHRoZSBmb2xsb3dpbmcgc2NhbGFibGUgdGFyZ2V0czogRUNTIHNlcnZpY2VzLFxuICAgKiBTcG90IEZsZWV0IHJlcXVlc3RzLCBFTVIgY2x1c3RlcnMsIEFwcFN0cmVhbSAyLjAgZmxlZXRzLCBBdXJvcmEgREIgY2x1c3RlcnMsXG4gICAqIEFtYXpvbiBTYWdlTWFrZXIgZW5kcG9pbnQgdmFyaWFudHMsIEN1c3RvbSByZXNvdXJjZXMuIEZvciBhbGwgb3RoZXIgc2NhbGFibGVcbiAgICogdGFyZ2V0cywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgRHVyYXRpb24uc2Vjb25kcygwKTogRHluYW1vREIgdGFibGVzLCBEeW5hbW9EQlxuICAgKiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50cyxcbiAgICogTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XG4gICAqL1xuICByZWFkb25seSBzY2FsZUluQ29vbGRvd24/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogUGVyaW9kIGFmdGVyIGEgc2NhbGUgb3V0IGFjdGl2aXR5IGNvbXBsZXRlcyBiZWZvcmUgYW5vdGhlciBzY2FsZSBvdXQgYWN0aXZpdHkgY2FuIHN0YXJ0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDMwMCkgZm9yIHRoZSBmb2xsb3dpbmcgc2NhbGFibGUgdGFyZ2V0czogRUNTIHNlcnZpY2VzLFxuICAgKiBTcG90IEZsZWV0IHJlcXVlc3RzLCBFTVIgY2x1c3RlcnMsIEFwcFN0cmVhbSAyLjAgZmxlZXRzLCBBdXJvcmEgREIgY2x1c3RlcnMsXG4gICAqIEFtYXpvbiBTYWdlTWFrZXIgZW5kcG9pbnQgdmFyaWFudHMsIEN1c3RvbSByZXNvdXJjZXMuIEZvciBhbGwgb3RoZXIgc2NhbGFibGVcbiAgICogdGFyZ2V0cywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgRHVyYXRpb24uc2Vjb25kcygwKTogRHluYW1vREIgdGFibGVzLCBEeW5hbW9EQlxuICAgKiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50cyxcbiAgICogTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5XG4gICAqL1xuICByZWFkb25seSBzY2FsZU91dENvb2xkb3duPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBUYXJnZXQgVHJhY2tpbmcgcG9saWN5IHRoYXQgaW5jbHVkZSB0aGUgbWV0cmljIGJ1dCBleGNsdWRlIHRoZSB0YXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNpY1RhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeVByb3BzXG4gIGV4dGVuZHMgQmFzZVRhcmdldFRyYWNraW5nUHJvcHMge1xuICAvKipcbiAgICogVGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIG1ldHJpYy5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldFZhbHVlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEEgcHJlZGVmaW5lZCBtZXRyaWMgZm9yIGFwcGxpY2F0aW9uIGF1dG9zY2FsaW5nXG4gICAqXG4gICAqIFRoZSBtZXRyaWMgbXVzdCB0cmFjayB1dGlsaXphdGlvbi4gU2NhbGluZyBvdXQgd2lsbCBoYXBwZW4gaWYgdGhlIG1ldHJpYyBpcyBoaWdoZXIgdGhhblxuICAgKiB0aGUgdGFyZ2V0IHZhbHVlLCBzY2FsaW5nIGluIHdpbGwgaGFwcGVuIGluIHRoZSBtZXRyaWMgaXMgbG93ZXIgdGhhbiB0aGUgdGFyZ2V0IHZhbHVlLlxuICAgKlxuICAgKiBFeGFjdGx5IG9uZSBvZiBjdXN0b21NZXRyaWMgb3IgcHJlZGVmaW5lZE1ldHJpYyBtdXN0IGJlIHNwZWNpZmllZC46XG4gICAgICBPYmplY3QuZW50cmllcyhjLmRpbWVuc2lvbnMpLm1hcCgpIGFzIGFwcGF1dG9zY2FsaW5nUG9saWN5LkFwcGF1dG9zY2FsaW5nUG9saWN5VGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uRGltZW5zaW9uc1tdLFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHByZWRlZmluZWQgbWV0cmljcy5cbiAgICovXG4gIHJlYWRvbmx5IHByZWRlZmluZWRNZXRyaWM/OiBQcmVkZWZpbmVkTWV0cmljO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmeSB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXRyaWMgdHlwZS5cbiAgICpcbiAgICogT25seSB1c2VkIGZvciBwcmVkZWZpbmVkIG1ldHJpYyBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXQuXG4gICAqXG4gICAqIEV4YW1wbGUgdmFsdWU6IGBhcHAvPGxvYWQtYmFsYW5jZXItbmFtZT4vPGxvYWQtYmFsYW5jZXItaWQ+L3RhcmdldGdyb3VwLzx0YXJnZXQtZ3JvdXAtbmFtZT4vPHRhcmdldC1ncm91cC1pZD5gXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVzb3VyY2UgbGFiZWwuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGN1c3RvbSBtZXRyaWMgZm9yIGFwcGxpY2F0aW9uIGF1dG9zY2FsaW5nXG4gICAqXG4gICAqIFRoZSBtZXRyaWMgbXVzdCB0cmFjayB1dGlsaXphdGlvbi4gU2NhbGluZyBvdXQgd2lsbCBoYXBwZW4gaWYgdGhlIG1ldHJpYyBpcyBoaWdoZXIgdGhhblxuICAgKiB0aGUgdGFyZ2V0IHZhbHVlLCBzY2FsaW5nIGluIHdpbGwgaGFwcGVuIGluIHRoZSBtZXRyaWMgaXMgbG93ZXIgdGhhbiB0aGUgdGFyZ2V0IHZhbHVlLlxuICAgKlxuICAgKiBFeGFjdGx5IG9uZSBvZiBjdXN0b21NZXRyaWMgb3IgcHJlZGVmaW5lZE1ldHJpYyBtdXN0IGJlIHNwZWNpZmllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjdXN0b20gbWV0cmljLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tTWV0cmljPzogY2xvdWR3YXRjaC5JTWV0cmljO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgY29uY3JldGUgVGFyZ2V0VHJhY2tpbmdQb2xpY3lcbiAqXG4gKiBBZGRzIHRoZSBzY2FsaW5nVGFyZ2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeVByb3BzXG4gIGV4dGVuZHMgQmFzaWNUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lQcm9wcyxcbiAgICBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qXG4gICAqIFRoZSBzY2FsYWJsZSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHNjYWxpbmdUYXJnZXQ6IElTY2FsYWJsZVRhcmdldDtcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGZvciBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIEFSTiBvZiB0aGUgc2NhbGluZyBwb2xpY3lcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY2FsaW5nUG9saWN5QXJuOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogYXBwYXV0b3NjYWxpbmdQb2xpY3kuQXBwYXV0b3NjYWxpbmdQb2xpY3k7XG5cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICBzY2FsaW5nUG9saWN5QXJuOiB0aGlzLnNjYWxpbmdQb2xpY3lBcm4sXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKFxuICAgICAgKHByb3BzLmN1c3RvbU1ldHJpYyA9PT0gdW5kZWZpbmVkKSA9PT1cbiAgICAgIChwcm9wcy5wcmVkZWZpbmVkTWV0cmljID09PSB1bmRlZmluZWQpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcIkV4YWN0bHkgb25lIG9mICdjdXN0b21NZXRyaWMnIG9yICdwcmVkZWZpbmVkTWV0cmljJyBtdXN0IGJlIHNwZWNpZmllZC5cIixcbiAgICAgICAgdGhpcyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmN1c3RvbU1ldHJpYyAmJiAhcHJvcHMuY3VzdG9tTWV0cmljLnRvTWV0cmljQ29uZmlnKCkubWV0cmljU3RhdCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCJPbmx5IGRpcmVjdCBtZXRyaWNzIGFyZSBzdXBwb3J0ZWQgZm9yIFRhcmdldCBUcmFja2luZy4gVXNlIFN0ZXAgU2NhbGluZyBvciBzdXBwbHkgYSBNZXRyaWMgb2JqZWN0LlwiLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyByZXBsYWNlIGR1bW15IHZhbHVlIGluIERZTkFNT0RCX1dSSVRFX0NBUEFDSVRZX1VUSUxJWkFUSU9OIGR1ZSB0byBhIGpzaWkgYnVnIChodHRwczovL2dpdGh1Yi5jb20vYXdzL2pzaWkvaXNzdWVzLzI3ODIpXG4gICAgY29uc3QgcHJlZGVmaW5lZE1ldHJpY1ZhbHVlID1cbiAgICAgIHByb3BzLnByZWRlZmluZWRNZXRyaWMgPT09XG4gICAgICBQcmVkZWZpbmVkTWV0cmljLkRZTkFNT0RCX1dSSVRFX0NBUEFDSVRZX1VUSUxJWkFUSU9OXG4gICAgICAgID8gUHJlZGVmaW5lZE1ldHJpYy5EWUFOTU9EQl9XUklURV9DQVBBQ0lUWV9VVElMSVpBVElPTlxuICAgICAgICA6IHByb3BzLnByZWRlZmluZWRNZXRyaWM7XG5cbiAgICBjb25zdCBwb2xpY3lOYW1lID0gcHJvcHMucG9saWN5TmFtZSA/PyB0aGlzLmZyaWVuZGx5TmFtZTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgYXBwYXV0b3NjYWxpbmdQb2xpY3kuQXBwYXV0b3NjYWxpbmdQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lOiBwb2xpY3lOYW1lLFxuICAgICAgICBwb2xpY3lUeXBlOiBcIlRhcmdldFRyYWNraW5nU2NhbGluZ1wiLFxuICAgICAgICByZXNvdXJjZUlkOiBwcm9wcy5zY2FsaW5nVGFyZ2V0LnJlc291cmNlSWQsXG4gICAgICAgIHNjYWxhYmxlRGltZW5zaW9uOiBwcm9wcy5zY2FsaW5nVGFyZ2V0LnNjYWxhYmxlRGltZW5zaW9uLFxuICAgICAgICBzZXJ2aWNlTmFtZXNwYWNlOiBwcm9wcy5zY2FsaW5nVGFyZ2V0LnNlcnZpY2VOYW1lc3BhY2UsXG4gICAgICAgIHRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBjdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvbjogcmVuZGVyQ3VzdG9tTWV0cmljKFxuICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgIHByb3BzLmN1c3RvbU1ldHJpYyxcbiAgICAgICAgICApLFxuICAgICAgICAgIGRpc2FibGVTY2FsZUluOiBwcm9wcy5kaXNhYmxlU2NhbGVJbixcbiAgICAgICAgICBwcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbjpcbiAgICAgICAgICAgIHByZWRlZmluZWRNZXRyaWNWYWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgcHJlZGVmaW5lZE1ldHJpY1R5cGU6IHByZWRlZmluZWRNZXRyaWNWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlTGFiZWw6IHByb3BzLnJlc291cmNlTGFiZWwsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBzY2FsZUluQ29vbGRvd246IHByb3BzLnNjYWxlSW5Db29sZG93bj8udG9TZWNvbmRzKCksXG4gICAgICAgICAgc2NhbGVPdXRDb29sZG93bjogcHJvcHMuc2NhbGVPdXRDb29sZG93bj8udG9TZWNvbmRzKCksXG4gICAgICAgICAgdGFyZ2V0VmFsdWU6IHByb3BzLnRhcmdldFZhbHVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5zY2FsaW5nUG9saWN5QXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyQ3VzdG9tTWV0cmljKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBtZXRyaWM/OiBjbG91ZHdhdGNoLklNZXRyaWMsXG4pOlxuICB8IGFwcGF1dG9zY2FsaW5nUG9saWN5LkFwcGF1dG9zY2FsaW5nUG9saWN5VGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbkN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG4gIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFtZXRyaWMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIGNvbnN0IG1ldHJpY0NvbmZpZyA9IG1ldHJpYy50b01ldHJpY0NvbmZpZygpO1xuXG4gIC8vIFRhcmdldCB0cmFja2luZyBvbmx5IHN1cHBvcnRzIG1ldHJpY3Mgd2l0aCBhIHNpbmdsZSBtZXRyaWMgc3RhdFxuICBpZiAoIW1ldHJpY0NvbmZpZy5tZXRyaWNTdGF0KSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIFwiVGFyZ2V0IHRyYWNraW5nIGN1c3RvbSBtZXRyaWMgbXVzdCBiZSBhIHNpbmdsZSBtZXRyaWMgc3RhdC5cIixcbiAgICAgIHNjb3BlLFxuICAgICk7XG4gIH1cbiAgY29uc3QgYyA9IG1ldHJpY0NvbmZpZy5tZXRyaWNTdGF0O1xuXG4gIGlmIChjLnN0YXRpc3RpYy5zdGFydHNXaXRoKFwicFwiKSkge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXG4gICAgICBgQ2Fubm90IHVzZSBzdGF0aXN0aWMgJyR7Yy5zdGF0aXN0aWN9JyBmb3IgVGFyZ2V0IFRyYWNraW5nOiBvbmx5ICdBdmVyYWdlJywgJ01pbmltdW0nLCAnTWF4aW11bScsICdTYW1wbGVDb3VudCcsIGFuZCAnU3VtJyBhcmUgc3VwcG9ydGVkLmAsXG4gICAgICBzY29wZSxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgZGltZW5zaW9uczogYXBwYXV0b3NjYWxpbmdQb2xpY3kuQXBwYXV0b3NjYWxpbmdQb2xpY3lUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25EaW1lbnNpb25zW10gPVxuICAgIE9iamVjdC5lbnRyaWVzKGMuZGltZW5zaW9ucyA/PyB7fSkubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlLFxuICAgIH0pKTtcblxuICByZXR1cm4ge1xuICAgIGRpbWVuc2lvbnMsXG4gICAgbWV0cmljTmFtZTogYy5tZXRyaWNOYW1lLFxuICAgIG5hbWVzcGFjZTogYy5uYW1lc3BhY2UsXG4gICAgc3RhdGlzdGljOiBjLnN0YXRpc3RpYyxcbiAgICB1bml0OiBjLnVuaXRGaWx0ZXIsXG4gIH07XG59XG5cbi8qKlxuICogT25lIG9mIHRoZSBwcmVkZWZpbmVkIGF1dG9zY2FsaW5nIG1ldHJpY3NcbiAqL1xuZXhwb3J0IGVudW0gUHJlZGVmaW5lZE1ldHJpYyB7XG4gIC8qKlxuICAgKiBBdmVyYWdlIHBlcmNlbnRhZ2Ugb2YgaW5zdGFuY2VzIGluIGFuIEFwcFN0cmVhbSBmbGVldCB0aGF0IGFyZSBiZWluZyB1c2VkLlxuICAgKi9cbiAgQVBQU1RSRUFNX0FWRVJBR0VfQ0FQQUNJVFlfVVRJTElaQVRJT04gPSBcIkFwcFN0cmVhbUF2ZXJhZ2VDYXBhY2l0eVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBQZXJjZW50YWdlIG9mIHByb3Zpc2lvbmVkIHJlYWQgY2FwYWNpdHkgdW5pdHMgdXRpbGl6ZWQgYnkgYSBLZXlzcGFjZXMgdGFibGUuXG4gICAqL1xuICBDQVNTQU5EUkFfUkVBRF9DQVBBQ0lUWV9VVElMSVpBVElPTiA9IFwiQ2Fzc2FuZHJhUmVhZENhcGFjaXR5VXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIFBlcmNlbnRhZ2Ugb2YgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgdW5pdHMgdXRpbGl6ZWQgYnkgYSBLZXlzcGFjZXMgdGFibGUuXG4gICAqL1xuICBDQVNTQU5EUkFfV1JJVEVfQ0FQQUNJVFlfVVRJTElaQVRJT04gPSBcIkNhc3NhbmRyYVdyaXRlQ2FwYWNpdHlVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogUGVyY2VudGFnZSBvZiBwcm92aXNpb25lZCBpbmZlcmVuY2UgdW5pdHMgdXRpbGl6ZWQgYnkgYSBDb21wcmVoZW5kIGVuZHBvaW50LlxuICAgKi9cbiAgQ09NUFJFSEVORF9JTkZFUkVOQ0VfVVRJTElaQVRJT04gPSBcIkNvbXByZWhlbmRJbmZlcmVuY2VVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogQXZlcmFnZSBDUFUgVXRpbGl6YXRpb24gb2YgcmVhZCByZXBsaWNhIGluc3RhbmNlcyBpbiBhIE5lcHR1bmUgREIgY2x1c3Rlci5cbiAgICovXG4gIE5FUFRVUkVfUkVBREVSX0FWRVJBR0VfQ1BVX1VUSUxJWkFUSU9OID0gXCJOZXB0dW5lUmVhZGVyQXZlcmFnZUNQVVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBQZXJjZW50YWdlIG9mIHByb3Zpc2lvbmVkIHJlYWQgY2FwYWNpdHkgdW5pdHMgY29uc3VtZWQgYnkgYSBEeW5hbW9EQiB0YWJsZS5cbiAgICovXG4gIERZTkFNT0RCX1JFQURfQ0FQQUNJVFlfVVRJTElaQVRJT04gPSBcIkR5bmFtb0RCUmVhZENhcGFjaXR5VXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIFBlcmNlbnRhZ2Ugb2YgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgdW5pdHMgY29uc3VtZWQgYnkgYSBEeW5hbW9EQiB0YWJsZS5cbiAgICpcbiAgICogU3VmZml4IGBkdW1teWAgaXMgbmVjZXNzYXJ5IGR1ZSB0byBqc2lpIGJ1ZyAoaHR0cHM6Ly9naXRodWIuY29tL2F3cy9qc2lpL2lzc3Vlcy8yNzgyKS5cbiAgICogRHVwbGljYXRlIHZhbHVlcyB3aWxsIGJlIGRyb3BwZWQsIHNvIHRoaXMgc3VmZml4IGlzIGFkZGVkIGFzIGEgd29ya2Fyb3VuZC5cbiAgICogVGhlIHZhbHVlIHdpbGwgYmUgcmVwbGFjZWQgd2hlbiB0aGlzIGVudW0gaXMgdXNlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBEWU5BTU9EQl9XUklURV9DQVBBQ0lUWV9VVElMSVpBVElPTiA9IFwiRHluYW1vREJXcml0ZUNhcGFjaXR5VXRpbGl6YXRpb24tZHVtbXlcIixcbiAgLyoqXG4gICAqIERZQU5NT0RCX1dSSVRFX0NBUEFDSVRZX1VUSUxJWkFUSU9OXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYFByZWRlZmluZWRNZXRyaWMuRFlOQU1PREJfV1JJVEVfQ0FQQUNJVFlfVVRJTElaQVRJT05gXG4gICAqL1xuICBEWUFOTU9EQl9XUklURV9DQVBBQ0lUWV9VVElMSVpBVElPTiA9IFwiRHluYW1vREJXcml0ZUNhcGFjaXR5VXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIEFMQl9SRVFVRVNUX0NPVU5UX1BFUl9UQVJHRVRcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBBTEJfUkVRVUVTVF9DT1VOVF9QRVJfVEFSR0VUID0gXCJBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXRcIixcbiAgLyoqXG4gICAqIFJEU19SRUFERVJfQVZFUkFHRV9DUFVfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBSRFNfUkVBREVSX0FWRVJBR0VfQ1BVX1VUSUxJWkFUSU9OID0gXCJSRFNSZWFkZXJBdmVyYWdlQ1BVVXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIFJEU19SRUFERVJfQVZFUkFHRV9EQVRBQkFTRV9DT05ORUNUSU9OU1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIFJEU19SRUFERVJfQVZFUkFHRV9EQVRBQkFTRV9DT05ORUNUSU9OUyA9IFwiUkRTUmVhZGVyQXZlcmFnZURhdGFiYXNlQ29ubmVjdGlvbnNcIixcbiAgLyoqXG4gICAqIEVDMl9TUE9UX0ZMRUVUX1JFUVVFU1RfQVZFUkFHRV9DUFVfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBFQzJfU1BPVF9GTEVFVF9SRVFVRVNUX0FWRVJBR0VfQ1BVX1VUSUxJWkFUSU9OID0gXCJFQzJTcG90RmxlZXRSZXF1ZXN0QXZlcmFnZUNQVVV0aWxpemF0aW9uXCIsXG4gIC8qKlxuICAgKiBFQzJfU1BPVF9GTEVFVF9SRVFVRVNUX0FWRVJBR0VfTkVUV09SS19JTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEVDMl9TUE9UX0ZMRUVUX1JFUVVFU1RfQVZFUkFHRV9ORVRXT1JLX0lOID0gXCJFQzJTcG90RmxlZXRSZXF1ZXN0QXZlcmFnZU5ldHdvcmtJblwiLFxuICAvKipcbiAgICogRUMyX1NQT1RfRkxFRVRfUkVRVUVTVF9BVkVSQUdFX05FVFdPUktfT1VUXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgRUMyX1NQT1RfRkxFRVRfUkVRVUVTVF9BVkVSQUdFX05FVFdPUktfT1VUID0gXCJFQzJTcG90RmxlZXRSZXF1ZXN0QXZlcmFnZU5ldHdvcmtPdXRcIixcbiAgLyoqXG4gICAqIFNBR0VNQUtFUl9WQVJJQU5UX0lOVk9DQVRJT05TX1BFUl9JTlNUQU5DRVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIFNBR0VNQUtFUl9WQVJJQU5UX0lOVk9DQVRJT05TX1BFUl9JTlNUQU5DRSA9IFwiU2FnZU1ha2VyVmFyaWFudEludm9jYXRpb25zUGVySW5zdGFuY2VcIixcbiAgLyoqXG4gICAqIFNBR0VNQUtFUl9WQVJJQU5UX1BST1ZJU0lPTkVEX0NPTkNVUlJFTkNZX1VUSUxJWkFUSU9OXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgU0FHRU1BS0VSX1ZBUklBTlRfUFJPVklTSU9ORURfQ09OQ1VSUkVOQ1lfVVRJTElaQVRJT04gPSBcIlNhZ2VNYWtlclZhcmlhbnRQcm92aXNpb25lZENvbmN1cnJlbmN5VXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIFNBR0VNQUtFUl9JTkZFUkVOQ0VfQ09NUE9ORU5UX0lOVk9DQVRJT05TX1BFUl9DT1BZXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgU0FHRU1BS0VSX0lORkVSRU5DRV9DT01QT05FTlRfSU5WT0NBVElPTlNfUEVSX0NPUFkgPSBcIlNhZ2VNYWtlckluZmVyZW5jZUNvbXBvbmVudEludm9jYXRpb25zUGVyQ29weVwiLFxuICAvKipcbiAgICogRUNTX1NFUlZJQ0VfQVZFUkFHRV9DUFVfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBFQ1NfU0VSVklDRV9BVkVSQUdFX0NQVV9VVElMSVpBVElPTiA9IFwiRUNTU2VydmljZUF2ZXJhZ2VDUFVVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogRUNTX1NFUlZJQ0VfQVZFUkFHRV9NRU1PUllfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBFQ1NfU0VSVklDRV9BVkVSQUdFX01FTU9SWV9VVElMSVpBVElPTiA9IFwiRUNTU2VydmljZUF2ZXJhZ2VNZW1vcnlVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogTEFNQkRBX1BST1ZJU0lPTkVEX0NPTkNVUlJFTkNZX1VUSUxJWkFUSU9OXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbW9uaXRvcmluZy1tZXRyaWNzLmh0bWwjbW9uaXRvcmluZy1tZXRyaWNzLWNvbmN1cnJlbmN5XG4gICAqL1xuICBMQU1CREFfUFJPVklTSU9ORURfQ09OQ1VSUkVOQ1lfVVRJTElaQVRJT04gPSBcIkxhbWJkYVByb3Zpc2lvbmVkQ29uY3VycmVuY3lVdGlsaXphdGlvblwiLFxuICAvKipcbiAgICogS0FGS0FfQlJPS0VSX1NUT1JBR0VfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBLQUZLQV9CUk9LRVJfU1RPUkFHRV9VVElMSVpBVElPTiA9IFwiS2Fma2FCcm9rZXJTdG9yYWdlVXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIEVMQVNUSUNBQ0hFX1BSSU1BUllfRU5HSU5FX0NQVV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEVMQVNUSUNBQ0hFX1BSSU1BUllfRU5HSU5FX0NQVV9VVElMSVpBVElPTiA9IFwiRWxhc3RpQ2FjaGVQcmltYXJ5RW5naW5lQ1BVVXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIEVMQVNUSUNBQ0hFX1JFUExJQ0FfRU5HSU5FX0NQVV9VVElMSVpBVElPTlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi9BUElSZWZlcmVuY2UvQVBJX1ByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uLmh0bWxcbiAgICovXG4gIEVMQVNUSUNBQ0hFX1JFUExJQ0FfRU5HSU5FX0NQVV9VVElMSVpBVElPTiA9IFwiRWxhc3RpQ2FjaGVSZXBsaWNhRW5naW5lQ1BVVXRpbGl6YXRpb25cIixcbiAgLyoqXG4gICAqIEVMQVNUSUNBQ0hFX0RBVEFCQVNFX01FTU9SWV9VU0FHRV9DT1VOVEVEX0ZPUl9FVklDVF9QRVJDRU5UQUdFXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgRUxBU1RJQ0FDSEVfREFUQUJBU0VfTUVNT1JZX1VTQUdFX0NPVU5URURfRk9SX0VWSUNUX1BFUkNFTlRBR0UgPSBcIkVsYXN0aUNhY2hlRGF0YWJhc2VNZW1vcnlVc2FnZUNvdW50ZWRGb3JFdmljdFBlcmNlbnRhZ2VcIixcbiAgLyoqXG4gICAqIEVMQVNUSUNBQ0hFX0RBVEFCQVNFX0NBUEFDSVRZX1VTQUdFX0NPVU5URURfRk9SX0VWSUNUX1BFUkNFTlRBR0VcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBFTEFTVElDQUNIRV9EQVRBQkFTRV9DQVBBQ0lUWV9VU0FHRV9DT1VOVEVEX0ZPUl9FVklDVF9QRVJDRU5UQUdFID0gXCJFbGFzdGlDYWNoZURhdGFiYXNlQ2FwYWNpdHlVc2FnZUNvdW50ZWRGb3JFdmljdFBlcmNlbnRhZ2VcIixcbiAgLyoqXG4gICAqIFNBR0VNQUtFUl9JTkZFUkVOQ0VfQ09NUE9ORU5UX0NPTkNVUlJFTlRfUkVRVUVTVFNfUEVSX0NPUFlfSElHSF9SRVNPTFVUSU9OXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgU0FHRU1BS0VSX0lORkVSRU5DRV9DT01QT05FTlRfQ09OQ1VSUkVOVF9SRVFVRVNUU19QRVJfQ09QWV9ISUdIX1JFU09MVVRJT04gPSBcIlNhZ2VNYWtlckluZmVyZW5jZUNvbXBvbmVudENvbmN1cnJlbnRSZXF1ZXN0c1BlckNvcHlIaWdoUmVzb2x1dGlvblwiLFxuICAvKipcbiAgICogU0FHRU1BS0VSX1ZBUklBTlRfQ09OQ1VSUkVOVF9SRVFVRVNUU19QRVJfTU9ERUxfSElHSF9SRVNPTFVUSU9OXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL0FQSVJlZmVyZW5jZS9BUElfUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb24uaHRtbFxuICAgKi9cbiAgU0FHRU1BS0VSX1ZBUklBTlRfQ09OQ1VSUkVOVF9SRVFVRVNUU19QRVJfTU9ERUxfSElHSF9SRVNPTFVUSU9OID0gXCJTYWdlTWFrZXJWYXJpYW50Q29uY3VycmVudFJlcXVlc3RzUGVyTW9kZWxIaWdoUmVzb2x1dGlvblwiLFxuICAvKipcbiAgICogV09SS1NQQUNFU19BVkVSQUdFX1VTRVJfU0VTU0lPTlNfQ0FQQUNJVFlfVVRJTElaQVRJT05cbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vQVBJUmVmZXJlbmNlL0FQSV9QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbi5odG1sXG4gICAqL1xuICBXT1JLU1BBQ0VTX0FWRVJBR0VfVVNFUl9TRVNTSU9OU19DQVBBQ0lUWV9VVElMSVpBVElPTiA9IFwiV29ya1NwYWNlc0F2ZXJhZ2VVc2VyU2Vzc2lvbnNDYXBhY2l0eVV0aWxpemF0aW9uXCIsXG59XG4iXX0=
@@ -34,7 +34,7 @@ class TaskRole {
34
34
  }
35
35
  exports.TaskRole = TaskRole;
36
36
  _a = JSII_RTTI_SYMBOL_1;
37
- TaskRole[_a] = { fqn: "terraconstructs.aws.compute.TaskRole", version: "0.1.8" };
37
+ TaskRole[_a] = { fqn: "terraconstructs.aws.compute.TaskRole", version: "0.1.9" };
38
38
  class JsonExpressionTaskRole extends TaskRole {
39
39
  constructor(expression) {
40
40
  super();
@@ -74,7 +74,7 @@ class TaskInput {
74
74
  }
75
75
  exports.TaskInput = TaskInput;
76
76
  _a = JSII_RTTI_SYMBOL_1;
77
- TaskInput[_a] = { fqn: "terraconstructs.aws.compute.TaskInput", version: "0.1.8" };
77
+ TaskInput[_a] = { fqn: "terraconstructs.aws.compute.TaskInput", version: "0.1.9" };
78
78
  /**
79
79
  * The type of task input
80
80
  */
@@ -65,5 +65,5 @@ class CallAwsService extends compute.TaskStateBase {
65
65
  }
66
66
  exports.CallAwsService = CallAwsService;
67
67
  _a = JSII_RTTI_SYMBOL_1;
68
- CallAwsService[_a] = { fqn: "terraconstructs.aws.compute.tasks.CallAwsService", version: "0.1.8" };
68
+ CallAwsService[_a] = { fqn: "terraconstructs.aws.compute.tasks.CallAwsService", version: "0.1.9" };
69
69
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbC1hd3Mtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS90YXNrcy9hd3Mtc2RrL2NhbGwtYXdzLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEI7QUFFOUIsa0NBQWtDO0FBQ2xDLG9DQUFvQztBQUNwQyxzREFBK0Q7QUFnRS9EOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsT0FBTyxDQUFDLGFBQWE7SUFJdkQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ08sS0FBMEI7UUFFM0MsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFGUCxVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUkzQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEtBQUssT0FBTyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pFLE1BQU0sSUFBSSxLQUFLLENBQ2IscUVBQXFFLENBQ3RFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFDRSxDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFDbEUsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQzNELENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQ2hELENBQUM7WUFDRixJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FDYiw0Q0FBNEMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNyRSxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCw0Q0FBNEM7UUFDNUMsTUFBTSxhQUFhLEdBQTJCO1lBQzVDLEdBQUcsRUFBRSxRQUFRO1lBQ2IsY0FBYyxFQUFFLE1BQU07WUFDdEIsZUFBZSxFQUFFLGtCQUFrQjtZQUNuQyxJQUFJLEVBQUUsU0FBUztZQUNmLEdBQUcsRUFBRSxtQkFBbUI7U0FDekIsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUVqRSxJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUM3QixzREFBc0Q7Z0JBQ3RELDJGQUEyRjtnQkFDM0YsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxHQUFHLFVBQVUsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDOUQsQ0FBQztZQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDO1NBQ3pDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ25CLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRWpDLElBQUksQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsb0dBQW9HO1FBQ3BHLGdHQUFnRztRQUNoRyx3REFBd0Q7UUFDeEQsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFBLG1DQUFzQixFQUM5QixJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQzlCO1lBQ0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLHFDQUFxQztTQUNoSCxDQUFDO0lBQ0osQ0FBQzs7QUE1RUgsd0NBNkVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjb21wdXRlIGZyb20gXCIuLi8uLi9cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG5pbXBvcnQgeyBpbnRlZ3JhdGlvblJlc291cmNlQXJuIH0gZnJvbSBcIi4uL3ByaXZhdGUvdGFzay11dGlsc1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNhbGxpbmcgYW4gQVdTIHNlcnZpY2UncyBBUEkgYWN0aW9uIGZyb20geW91clxuICogc3RhdGUgbWFjaGluZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvc3VwcG9ydGVkLXNlcnZpY2VzLWF3c3Nkay5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsbEF3c1NlcnZpY2VQcm9wcyBleHRlbmRzIGNvbXB1dGUuVGFza1N0YXRlQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBV1Mgc2VydmljZSB0byBjYWxsLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvc3VwcG9ydGVkLXNlcnZpY2VzLWF3c3Nkay5odG1sXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUEkgYWN0aW9uIHRvIGNhbGwuXG4gICAqXG4gICAqIFVzZSBjYW1lbENhc2UuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVycyBmb3IgdGhlIEFQSSBhY3Rpb24gY2FsbC5cbiAgICpcbiAgICogVXNlIFBhc2NhbENhc2UgZm9yIHRoZSBwYXJhbWV0ZXIgbmFtZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG5cbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZXMgZm9yIHRoZSBJQU0gc3RhdGVtZW50IHRoYXQgd2lsbCBiZSBhZGRlZCB0byB0aGUgc3RhdGVcbiAgICogbWFjaGluZSByb2xlJ3MgcG9saWN5IHRvIGFsbG93IHRoZSBzdGF0ZSBtYWNoaW5lIHRvIG1ha2UgdGhlIEFQSSBjYWxsLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0IHRoZSBhY3Rpb24gZm9yIHRoaXMgSUFNIHN0YXRlbWVudCB3aWxsIGJlIGBzZXJ2aWNlOmFjdGlvbmAuXG4gICAqL1xuICByZWFkb25seSBpYW1SZXNvdXJjZXM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIGZvciB0aGUgSUFNIHN0YXRlbWVudCB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHN0YXRlXG4gICAqIG1hY2hpbmUgcm9sZSdzIHBvbGljeSB0byBhbGxvdyB0aGUgc3RhdGUgbWFjaGluZSB0byBtYWtlIHRoZSBBUEkgY2FsbC5cbiAgICpcbiAgICogVXNlIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBJQU0gYWN0aW9uIG5hbWUgZG9lcyBub3QgbWF0Y2ggd2l0aCB0aGVcbiAgICogQVBJIHNlcnZpY2UvYWN0aW9uIG5hbWUsIGUuZy4gYHMzOkxpc3RCdWNrZXRzYCByZXF1aXJlcyBgczM6TGlzdEFsbE15QnVja2V0c2AuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gc2VydmljZTphY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IGlhbUFjdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBJQU0gc3RhdGVtZW50cyB0aGF0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHN0YXRlIG1hY2hpbmVcbiAgICogcm9sZSdzIHBvbGljeS5cbiAgICpcbiAgICogVXNlIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBjYWxsIHJlcXVpcmVzIG1vcmUgdGhhbiBhIHNpbmdsZSBzdGF0ZW1lbnQgdG9cbiAgICogYmUgZXhlY3V0ZWQsIGUuZy4gYHJla29nbml0aW9uOmRldGVjdExhYmVsc2AgcmVxdWlyZXMgYWxzbyBTMyBwZXJtaXNzaW9uc1xuICAgKiB0byByZWFkIHRoZSBvYmplY3Qgb24gd2hpY2ggaXQgbXVzdCBhY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBzdGF0ZW1lbnRzIGFyZSBhZGRlZFxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRpb25hbElhbVN0YXRlbWVudHM/OiBpYW0uUG9saWN5U3RhdGVtZW50W107XG59XG5cbi8qKlxuICogQSBTdGVwRnVuY3Rpb25zIHRhc2sgdG8gY2FsbCBhbiBBV1Mgc2VydmljZSBBUElcbiAqL1xuZXhwb3J0IGNsYXNzIENhbGxBd3NTZXJ2aWNlIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlIHtcbiAgLy8gcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tNZXRyaWNzPzogc2ZuLlRhc2tNZXRyaWNzQ29uZmlnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza1BvbGljaWVzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBDYWxsQXdzU2VydmljZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmludGVncmF0aW9uUGF0dGVybiA9PT0gY29tcHV0ZS5JbnRlZ3JhdGlvblBhdHRlcm4uUlVOX0pPQikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRoZSBSVU5fSk9CIGludGVncmF0aW9uIHBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBmb3IgQ2FsbEF3c1NlcnZpY2VcIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5wcm9wcy5hY3Rpb24pICYmXG4gICAgICAhdGhpcy5wcm9wcy5hY3Rpb24uc3RhcnRzV2l0aCh0aGlzLnByb3BzLmFjdGlvblswXT8udG9Mb3dlckNhc2UoKSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgYWN0aW9uIG11c3QgYmUgY2FtZWxDYXNlLCBnb3Q6ICR7dGhpcy5wcm9wcy5hY3Rpb259YCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByb3BzLnBhcmFtZXRlcnMpIHtcbiAgICAgIGNvbnN0IGludmFsaWRLZXlzID0gT2JqZWN0LmtleXModGhpcy5wcm9wcy5wYXJhbWV0ZXJzKS5maWx0ZXIoXG4gICAgICAgIChrZXkpID0+ICFrZXkuc3RhcnRzV2l0aChrZXlbMF0/LnRvVXBwZXJDYXNlKCkpLFxuICAgICAgKTtcbiAgICAgIGlmIChpbnZhbGlkS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBwYXJhbWV0ZXIgbmFtZXMgbXVzdCBiZSBQYXNjYWxDYXNlLCBnb3Q6ICR7aW52YWxpZEtleXMuam9pbihcIiwgXCIpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL3B1bGwvMjc2MjNcbiAgICBjb25zdCBpYW1TZXJ2aWNlTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgc2ZuOiBcInN0YXRlc1wiLFxuICAgICAgY2xvdWR3YXRjaGxvZ3M6IFwibG9nc1wiLFxuICAgICAgbWVkaWFwYWNrYWdldm9kOiBcIm1lZGlhcGFja2FnZS12b2RcIixcbiAgICAgIG13YWE6IFwiYWlyZmxvd1wiLFxuICAgICAgZWZzOiBcImVsYXN0aWNmaWxlc3lzdGVtXCIsXG4gICAgfTtcbiAgICBjb25zdCBpYW1TZXJ2aWNlID0gaWFtU2VydmljZU1hcFtwcm9wcy5zZXJ2aWNlXSA/PyBwcm9wcy5zZXJ2aWNlO1xuXG4gICAgdGhpcy50YXNrUG9saWNpZXMgPSBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogcHJvcHMuaWFtUmVzb3VyY2VzLFxuICAgICAgICAvLyBUaGUgcHJlZml4IGFuZCB0aGUgYWN0aW9uIG5hbWUgYXJlIGNhc2UgaW5zZW5zaXRpdmVcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19hY3Rpb24uaHRtbFxuICAgICAgICBhY3Rpb25zOiBbcHJvcHMuaWFtQWN0aW9uID8/IGAke2lhbVNlcnZpY2V9OiR7cHJvcHMuYWN0aW9ufWBdLFxuICAgICAgfSksXG4gICAgICAuLi4ocHJvcHMuYWRkaXRpb25hbElhbVN0YXRlbWVudHMgPz8gW10pLFxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgX3JlbmRlclRhc2soKTogYW55IHtcbiAgICBsZXQgc2VydmljZSA9IHRoaXMucHJvcHMuc2VydmljZTtcblxuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHNlcnZpY2UpKSB7XG4gICAgICBzZXJ2aWNlID0gc2VydmljZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cblxuICAgIC8vIFRoZSBwYXR0ZXJuIGhlcmUgaXM6IFwiYXJuOmF3czpzdGF0ZXM6Ojphd3Mtc2RrOnNlcnZpY2VOYW1lOmFwaUFjdGlvbi5bc2VydmljZUludGVncmF0aW9uUGF0dGVybl1cIlxuICAgIC8vIFNlZSBoZXJlOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL3N1cHBvcnRlZC1zZXJ2aWNlcy1hd3NzZGsuaHRtbFxuICAgIC8vIFRoaXMgZG9lcyBub3QgY2hhbmdlIHdpdGggc2RrIHVwZ3JhZGVzLCBUVDpQMTI1Mzg4Mzg4XG4gICAgcmV0dXJuIHtcbiAgICAgIFJlc291cmNlOiBpbnRlZ3JhdGlvblJlc291cmNlQXJuKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcImF3cy1zZGtcIixcbiAgICAgICAgYCR7c2VydmljZX06JHt0aGlzLnByb3BzLmFjdGlvbn1gLFxuICAgICAgICB0aGlzLnByb3BzLmludGVncmF0aW9uUGF0dGVybixcbiAgICAgICksXG4gICAgICBQYXJhbWV0ZXJzOiBjb21wdXRlLkZpZWxkVXRpbHMucmVuZGVyT2JqZWN0KHRoaXMucHJvcHMucGFyYW1ldGVycykgPz8ge30sIC8vIFBhcmFtZXRlcnMgaXMgcmVxdWlyZWQgZm9yIGF3cy1zZGtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -86,7 +86,7 @@ class EventBridgePutEvents extends compute.TaskStateBase {
86
86
  }
87
87
  exports.EventBridgePutEvents = EventBridgePutEvents;
88
88
  _a = JSII_RTTI_SYMBOL_1;
89
- EventBridgePutEvents[_a] = { fqn: "terraconstructs.aws.compute.tasks.EventBridgePutEvents", version: "0.1.8" };
89
+ EventBridgePutEvents[_a] = { fqn: "terraconstructs.aws.compute.tasks.EventBridgePutEvents", version: "0.1.9" };
90
90
  EventBridgePutEvents.SUPPORTED_INTEGRATION_PATTERNS = [
91
91
  compute.IntegrationPattern.REQUEST_RESPONSE,
92
92
  compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
@@ -113,5 +113,5 @@ class HttpInvoke extends compute.TaskStateBase {
113
113
  }
114
114
  exports.HttpInvoke = HttpInvoke;
115
115
  _a = JSII_RTTI_SYMBOL_1;
116
- HttpInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.HttpInvoke", version: "0.1.8" };
116
+ HttpInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.HttpInvoke", version: "0.1.9" };
117
117
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3Rhc2tzL2h0dHAvaW52b2tlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esa0NBQWtDO0FBQ2xDLG9DQUFvQztBQUVwQyxzREFBK0Q7QUFFL0Q7O0dBRUc7QUFDSCxJQUFZLGlCQXlCWDtBQXpCRCxXQUFZLGlCQUFpQjtJQUMzQjs7T0FFRztJQUNILDBDQUFxQixDQUFBO0lBQ3JCOztPQUVHO0lBQ0gsc0NBQWlCLENBQUE7SUFDakI7O09BRUc7SUFDSCx3Q0FBbUIsQ0FBQTtJQUNuQjs7T0FFRztJQUNILHdDQUFtQixDQUFBO0lBQ25COztPQUVHO0lBQ0gsa0NBQWEsQ0FBQTtJQUNiOztPQUVHO0lBQ0gsc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQXpCVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQXlCNUI7QUFxRkQ7O0dBRUc7QUFDSCxNQUFhLFVBQVcsU0FBUSxPQUFPLENBQUMsYUFBYTtJQUluRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDTyxLQUFzQjtRQUV2QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZQLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBSXZDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxXQUFXO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBQSxtQ0FBc0IsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUN4RCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFUyx5QkFBeUI7UUFDakMsT0FBTztZQUNMLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsT0FBTyxFQUFFLENBQUMsc0NBQXNDLENBQUM7Z0JBQ2pELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQzthQUNqRCxDQUFDO1lBQ0YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixPQUFPLEVBQUU7b0JBQ1AsK0JBQStCO29CQUMvQiwrQkFBK0I7aUJBQ2hDO2dCQUNELFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDO2FBQ3ZELENBQUM7WUFDRixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUN0QyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxJQUFJLEVBQUUsWUFBWTt3QkFDbEIsUUFBUSxFQUFFLHFCQUFxQjt3QkFDL0IsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDO3FCQUNuQztpQkFDRjthQUNGLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLFVBQVUsR0FBbUI7WUFDakMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3BFLGNBQWMsRUFBRTtnQkFDZCxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYTthQUNuRDtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLO1lBQ2xDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLO1lBQ25DLGVBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEtBQUs7U0FDekQsQ0FBQztRQUVGLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCLENBQUMsSUFBSSxFQUN2RCxDQUFDO1lBQ0QsVUFBVSxDQUFDLE9BQU8sR0FBRztnQkFDbkIsR0FBRyxVQUFVLENBQUMsT0FBTztnQkFDckIsY0FBYyxFQUFFLG1DQUFtQzthQUNwRCxDQUFDO1lBQ0YsVUFBVSxDQUFDLFNBQVMsR0FBRztnQkFDckIsbUJBQW1CLEVBQUUsYUFBYTthQUNuQyxDQUFDO1lBRUYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixLQUFLLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvRCxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixHQUFHO29CQUM1QyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7aUJBQzFDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7O0FBckZILGdDQXNGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjb21wdXRlIGZyb20gXCIuLi8uLi9cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uLy4uLy4uL25vdGlmeVwiO1xuaW1wb3J0IHsgaW50ZWdyYXRpb25SZXNvdXJjZUFybiB9IGZyb20gXCIuLi9wcml2YXRlL3Rhc2stdXRpbHNcIjtcblxuLyoqXG4gKiBUaGUgc3R5bGUgdXNlZCB3aGVuIGFwcGx5aW5nIFVSTCBlbmNvZGluZyB0byBhcnJheSB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBlbnVtIFVSTEVuY29kaW5nRm9ybWF0IHtcbiAgLyoqXG4gICAqIEVuY29kZSBhcnJheXMgdXNpbmcgYnJhY2tldHMuIEZvciBleGFtcGxlLCB7J2FycmF5JzogWydhJywnYicsJ2MnXX0gZW5jb2RlcyB0byAnYXJyYXlbXT1hJmFycmF5W109YiZhcnJheVtdPWMnXG4gICAqL1xuICBCUkFDS0VUUyA9IFwiQlJBQ0tFVFNcIixcbiAgLyoqXG4gICAqIEVuY29kZSBhcnJheXMgdXNpbmcgY29tbWFzLiBGb3IgZXhhbXBsZSwgeydhcnJheSc6IFsnYScsJ2InLCdjJ119IGVuY29kZXMgdG8gJ2FycmF5PWEsYixjLGQnXG4gICAqL1xuICBDT01NQVMgPSBcIkNPTU1BU1wiLFxuICAvKipcbiAgICogQXBwbHkgdGhlIGRlZmF1bHQgVVJMIGVuY29kaW5nIHN0eWxlIChJTkRJQ0VTKS5cbiAgICovXG4gIERFRkFVTFQgPSBcIkRFRkFVTFRcIixcbiAgLyoqXG4gICAqIEVuY29kZSBhcnJheXMgdXNpbmcgdGhlIGluZGV4IHZhbHVlLiBGb3IgZXhhbXBsZSwgeydhcnJheSc6IFsnYScsJ2InLCdjJ119IGVuY29kZXMgdG8gJ2FycmF5WzBdPWEmYXJyYXlbMV09YiZhcnJheVsyXT1jJ1xuICAgKi9cbiAgSU5ESUNFUyA9IFwiSU5ESUNFU1wiLFxuICAvKipcbiAgICogRG8gbm90IGFwcGx5IFVSTCBlbmNvZGluZy5cbiAgICovXG4gIE5PTkUgPSBcIk5PTkVcIixcbiAgLyoqXG4gICAqIFJlcGVhdCBrZXkgZm9yIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkuIEZvciBleGFtcGxlLCB7J2FycmF5JzogWydhJywnYicsJ2MnXX0gZW5jb2RlcyB0byAnYXJyYXlbXT1hJmFycmF5W109YiZhcnJheVtdPWMnXG4gICAqL1xuICBSRVBFQVQgPSBcIlJFUEVBVFwiLFxufVxuXG4vKipcbiAqIFRoZSBTdGVwRnVuY3Rpb25zIHBhcmFtZXRlcnMgZm9yIHRoZSBodHRwOmludm9rZSB0YXNrLlxuICovXG5pbnRlcmZhY2UgVGFza1BhcmFtZXRlcnMge1xuICBBcGlFbmRwb2ludDogc3RyaW5nO1xuICBBdXRoZW50aWNhdGlvbjoge1xuICAgIENvbm5lY3Rpb25Bcm46IHN0cmluZztcbiAgfTtcbiAgTWV0aG9kOiBzdHJpbmc7XG4gIEhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICBSZXF1ZXN0Qm9keT86IHN0cmluZztcbiAgUXVlcnlQYXJhbWV0ZXJzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgVHJhbnNmb3JtPzoge1xuICAgIFJlcXVlc3RCb2R5RW5jb2Rpbmc6IHN0cmluZztcbiAgICBSZXF1ZXN0RW5jb2RpbmdPcHRpb25zPzoge1xuICAgICAgQXJyYXlGb3JtYXQ6IHN0cmluZztcbiAgICB9O1xuICB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNhbGxpbmcgYW4gZXh0ZXJuYWwgSFRUUCBlbmRwb2ludCB3aXRoIEh0dHBJbnZva2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEludm9rZVByb3BzIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlUHJvcHMge1xuICAvKipcbiAgICogUGVybWlzc2lvbnMgYXJlIGdyYW50ZWQgdG8gY2FsbCBhbGwgcmVzb3VyY2VzIHVuZGVyIHRoaXMgcGF0aC5cbiAgICpcbiAgICogQGV4YW1wbGUgJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tJ1xuICAgKi9cbiAgcmVhZG9ubHkgYXBpUm9vdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVBJIGVuZHBvaW50IHRvIGNhbGwsIHJlbGF0aXZlIHRvIGBhcGlSb290YC5cbiAgICogQGV4YW1wbGUgY29tcHV0ZS5UYXNrSW5wdXQuZnJvbVRleHQoJ3BhdGgvdG8vcmVzb3VyY2UnKVxuICAgKi9cbiAgcmVhZG9ubHkgYXBpRW5kcG9pbnQ6IGNvbXB1dGUuVGFza0lucHV0O1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUCBtZXRob2QgdG8gdXNlLlxuICAgKlxuICAgKiBAZXhhbXBsZSBjb21wdXRlLlRhc2tJbnB1dC5mcm9tVGV4dCgnR0VUJylcbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZDogY29tcHV0ZS5UYXNrSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBFdmVudEJyaWRnZSBDb25uZWN0aW9uIHRvIHVzZSBmb3IgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uOiBub3RpZnkuSUNvbm5lY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBib2R5IHRvIHNlbmQgdG8gdGhlIEhUVFAgZW5kcG9pbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYm9keSBpcyBzZW50IHdpdGggdGhlIHJlcXVlc3QuXG4gICAqL1xuICByZWFkb25seSBib2R5PzogY29tcHV0ZS5UYXNrSW5wdXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFkZXJzIHRvIHNlbmQgdG8gdGhlIEhUVFAgZW5kcG9pbnQuXG4gICAqXG4gICAqIEBleGFtcGxlIGNvbXB1dGUuVGFza0lucHV0LmZyb21PYmplY3QoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBoZWFkZXJzIGFyZSBhZGRlZCB0byB0aGUgcmVxdWVzdC5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlcnM/OiBjb21wdXRlLlRhc2tJbnB1dDtcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIHRvIHNlbmQgdG8gdGhlIEhUVFAgZW5kcG9pbnQuXG4gICAqIEBkZWZhdWx0IC0gTm8gcXVlcnkgc3RyaW5nIHBhcmFtZXRlcnMgYXJlIHNlbnQgaW4gdGhlIHJlcXVlc3QuXG4gICAqL1xuICByZWFkb25seSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBjb21wdXRlLlRhc2tJbnB1dDtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGFwcGx5IFVSTCBlbmNvZGluZyB0byB0aGUgcmVxdWVzdCBib2R5LCBhbmQgd2hpY2ggYXJyYXkgZW5jb2RpbmcgZm9ybWF0IHRvIHVzZS5cbiAgICpcbiAgICogYFVSTEVuY29kaW5nRm9ybWF0Lk5PTkVgIHBhc3NlcyB0aGUgSlNPTi1zZXJpYWxpemVkIGBSZXF1ZXN0Qm9keWAgZmllbGQgYXMgdGhlIEhUVFAgcmVxdWVzdCBib2R5LlxuICAgKiBPdGhlcndpc2UsIHRoZSBIVFRQIHJlcXVlc3QgYm9keSBpcyB0aGUgVVJMLWVuY29kZWQgZm9ybSBkYXRhIG9mIHRoZSBgUmVxdWVzdEJvZHlgIGZpZWxkIHVzaW5nIHRoZVxuICAgKiBzcGVjaWZpZWQgYXJyYXkgZW5jb2RpbmcgZm9ybWF0LCBhbmQgdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlciBpcyBzZXQgdG8gYGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVVJMRW5jb2RpbmdGb3JtYXQuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdXJsRW5jb2RpbmdGb3JtYXQ/OiBVUkxFbmNvZGluZ0Zvcm1hdDtcbn1cblxuLyoqXG4gKiBBIFN0ZXAgRnVuY3Rpb25zIFRhc2sgdG8gY2FsbCBhIHB1YmxpYyB0aGlyZC1wYXJ0eSBBUEkuXG4gKi9cbmV4cG9ydCBjbGFzcyBIdHRwSW52b2tlIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlIHtcbiAgLy8gcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tNZXRyaWNzPzogY29tcHV0ZS5UYXNrTWV0cmljc0NvbmZpZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tQb2xpY2llcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogSHR0cEludm9rZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMudGFza1BvbGljaWVzID0gdGhpcy5idWlsZFRhc2tQb2xpY3lTdGF0ZW1lbnRzKCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgdGhlIEhUVFAgSW52b2tlIHNlcnZpY2UgaW50ZWdyYXRpb24gdGFzayBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfcmVuZGVyVGFzaygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBSZXNvdXJjZTogaW50ZWdyYXRpb25SZXNvdXJjZUFybih0aGlzLCBcImh0dHBcIiwgXCJpbnZva2VcIiksXG4gICAgICBQYXJhbWV0ZXJzOiBjb21wdXRlLkZpZWxkVXRpbHMucmVuZGVyT2JqZWN0KHRoaXMuYnVpbGRUYXNrUGFyYW1ldGVycygpKSxcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkVGFza1BvbGljeVN0YXRlbWVudHMoKTogaWFtLlBvbGljeVN0YXRlbWVudFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJldmVudHM6UmV0cmlldmVDb25uZWN0aW9uQ3JlZGVudGlhbHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW3RoaXMucHJvcHMuY29ubmVjdGlvbi5jb25uZWN0aW9uQXJuXSxcbiAgICAgIH0pLFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJzZWNyZXRzbWFuYWdlcjpHZXRTZWNyZXRWYWx1ZVwiLFxuICAgICAgICAgIFwic2VjcmV0c21hbmFnZXI6RGVzY3JpYmVTZWNyZXRcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm9wcy5jb25uZWN0aW9uLmNvbm5lY3Rpb25TZWNyZXRBcm5dLFxuICAgICAgfSksXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcInN0YXRlczpJbnZva2VIVFRQRW5kcG9pbnRcIl0sXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgY29uZGl0aW9uOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGVzdDogXCJTdHJpbmdMaWtlXCIsXG4gICAgICAgICAgICB2YXJpYWJsZTogXCJzdGF0ZXM6SFRUUEVuZHBvaW50XCIsXG4gICAgICAgICAgICB2YWx1ZXM6IFtgJHt0aGlzLnByb3BzLmFwaVJvb3R9KmBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRhc2tQYXJhbWV0ZXJzKCkge1xuICAgIGNvbnN0IHBhcmFtZXRlcnM6IFRhc2tQYXJhbWV0ZXJzID0ge1xuICAgICAgQXBpRW5kcG9pbnQ6IGAke3RoaXMucHJvcHMuYXBpUm9vdH0vJHt0aGlzLnByb3BzLmFwaUVuZHBvaW50LnZhbHVlfWAsXG4gICAgICBBdXRoZW50aWNhdGlvbjoge1xuICAgICAgICBDb25uZWN0aW9uQXJuOiB0aGlzLnByb3BzLmNvbm5lY3Rpb24uY29ubmVjdGlvbkFybixcbiAgICAgIH0sXG4gICAgICBNZXRob2Q6IHRoaXMucHJvcHMubWV0aG9kLnZhbHVlLFxuICAgICAgSGVhZGVyczogdGhpcy5wcm9wcy5oZWFkZXJzPy52YWx1ZSxcbiAgICAgIFJlcXVlc3RCb2R5OiB0aGlzLnByb3BzLmJvZHk/LnZhbHVlLFxuICAgICAgUXVlcnlQYXJhbWV0ZXJzOiB0aGlzLnByb3BzLnF1ZXJ5U3RyaW5nUGFyYW1ldGVycz8udmFsdWUsXG4gICAgfTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMucHJvcHMudXJsRW5jb2RpbmdGb3JtYXQgIT0gbnVsbCAmJlxuICAgICAgdGhpcy5wcm9wcy51cmxFbmNvZGluZ0Zvcm1hdCAhPT0gVVJMRW5jb2RpbmdGb3JtYXQuTk9ORVxuICAgICkge1xuICAgICAgcGFyYW1ldGVycy5IZWFkZXJzID0ge1xuICAgICAgICAuLi5wYXJhbWV0ZXJzLkhlYWRlcnMsXG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICB9O1xuICAgICAgcGFyYW1ldGVycy5UcmFuc2Zvcm0gPSB7XG4gICAgICAgIFJlcXVlc3RCb2R5RW5jb2Rpbmc6IFwiVVJMX0VOQ09ERURcIixcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLnVybEVuY29kaW5nRm9ybWF0ICE9PSBVUkxFbmNvZGluZ0Zvcm1hdC5ERUZBVUxUKSB7XG4gICAgICAgIHBhcmFtZXRlcnMuVHJhbnNmb3JtLlJlcXVlc3RFbmNvZGluZ09wdGlvbnMgPSB7XG4gICAgICAgICAgQXJyYXlGb3JtYXQ6IHRoaXMucHJvcHMudXJsRW5jb2RpbmdGb3JtYXQsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gIH1cbn1cbiJdfQ==
@@ -93,7 +93,7 @@ class LambdaInvoke extends compute.TaskStateBase {
93
93
  }
94
94
  exports.LambdaInvoke = LambdaInvoke;
95
95
  _a = JSII_RTTI_SYMBOL_1;
96
- LambdaInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.LambdaInvoke", version: "0.1.8" };
96
+ LambdaInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.LambdaInvoke", version: "0.1.9" };
97
97
  LambdaInvoke.SUPPORTED_INTEGRATION_PATTERNS = [
98
98
  compute.IntegrationPattern.REQUEST_RESPONSE,
99
99
  compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
@@ -62,7 +62,7 @@ class SqsSendMessage extends compute.TaskStateBase {
62
62
  }
63
63
  exports.SqsSendMessage = SqsSendMessage;
64
64
  _a = JSII_RTTI_SYMBOL_1;
65
- SqsSendMessage[_a] = { fqn: "terraconstructs.aws.compute.tasks.SqsSendMessage", version: "0.1.8" };
65
+ SqsSendMessage[_a] = { fqn: "terraconstructs.aws.compute.tasks.SqsSendMessage", version: "0.1.9" };
66
66
  SqsSendMessage.SUPPORTED_INTEGRATION_PATTERNS = [
67
67
  compute.IntegrationPattern.REQUEST_RESPONSE,
68
68
  compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
@@ -41,5 +41,5 @@ class StepFunctionsInvokeActivity extends compute.TaskStateBase {
41
41
  }
42
42
  exports.StepFunctionsInvokeActivity = StepFunctionsInvokeActivity;
43
43
  _a = JSII_RTTI_SYMBOL_1;
44
- StepFunctionsInvokeActivity[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsInvokeActivity", version: "0.1.8" };
44
+ StepFunctionsInvokeActivity[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsInvokeActivity", version: "0.1.9" };
45
45
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLWFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3Rhc2tzL3N0ZXBmdW5jdGlvbnMvaW52b2tlLWFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esa0NBQWtDO0FBeUJsQzs7OztHQUlHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxPQUFPLENBQUMsYUFBYTtJQUtwRSxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDTyxLQUF1QztRQUV4RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZQLFVBQUssR0FBTCxLQUFLLENBQWtDO1FBSXhELE9BQU87UUFDUCwyREFBMkQ7UUFDM0QsMkNBQTJDO1FBQzNDLE1BQU07UUFDTixxREFBcUQ7UUFDckQsMERBQTBEO1FBQzFELE9BQU87UUFDUCxJQUFJO1FBQ0osdUJBQXVCO1FBQ3ZCLHdFQUF3RTtRQUN4RSxzQ0FBc0M7UUFDdEMsc0NBQXNDO1FBQ3RDLEtBQUs7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2dCQUMvQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7O0FBckNILGtFQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjb21wdXRlIGZyb20gXCIuLi8uLi9cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG4vLyBpbXBvcnQgeyBJS2V5IH0gZnJvbSBcIi4uLy4uLy4uL2VuY3J5cHRpb25cIjtcbi8vIGltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEVuY3J5cHRpb25Db25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2N1c3RvbWVyLW1hbmFnZWQta2V5LWVuY3J5cHRpb24tY29uZmlndXJhdGlvblwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGludm9raW5nIGFuIEFjdGl2aXR5IHdvcmtlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBGdW5jdGlvbnNJbnZva2VBY3Rpdml0eVByb3BzXG4gIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlUHJvcHMge1xuICAvKipcbiAgICogU3RlcCBGdW5jdGlvbnMgQWN0aXZpdHkgdG8gaW52b2tlXG4gICAqL1xuICByZWFkb25seSBhY3Rpdml0eTogY29tcHV0ZS5JQWN0aXZpdHk7XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlcnMgcGFzcyBhIGNvbGxlY3Rpb24gb2Yga2V5LXZhbHVlIHBhaXJzLCBlaXRoZXIgc3RhdGljIHZhbHVlcyBvciBKU09OUGF0aCBleHByZXNzaW9ucyB0aGF0IHNlbGVjdCBmcm9tIHRoZSBpbnB1dC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2lucHV0LW91dHB1dC1pbnB1dHBhdGgtcGFyYW1zLmh0bWwjaW5wdXQtb3V0cHV0LXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIEEgU3RlcCBGdW5jdGlvbnMgVGFzayB0byBpbnZva2UgYW4gQWN0aXZpdHkgd29ya2VyLlxuICpcbiAqIEFuIEFjdGl2aXR5IGNhbiBiZSB1c2VkIGRpcmVjdGx5IGFzIGEgUmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGVwRnVuY3Rpb25zSW52b2tlQWN0aXZpdHkgZXh0ZW5kcyBjb21wdXRlLlRhc2tTdGF0ZUJhc2Uge1xuICAvLyBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza01ldHJpY3M/OiBjb21wdXRlLlRhc2tNZXRyaWNzQ29uZmlnO1xuICAvLyBObyBJQU0gcGVybWlzc2lvbnMgbmVjZXNzYXJ5IHVubGVzcyB0aGUgQWN0aXZpdHkgdXNlcyBhIGN1c3RvbWVyIG1hbmFnZWQgS01TIGtleVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza1BvbGljaWVzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTdGVwRnVuY3Rpb25zSW52b2tlQWN0aXZpdHlQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBpZiAoXG4gICAgLy8gICB0aGlzLnByb3BzLmFjdGl2aXR5LmVuY3J5cHRpb25Db25maWd1cmF0aW9uIGluc3RhbmNlb2ZcbiAgICAvLyAgIEN1c3RvbWVyTWFuYWdlZEVuY3J5cHRpb25Db25maWd1cmF0aW9uXG4gICAgLy8gKSB7XG4gICAgLy8gICB0aGlzLnRhc2tQb2xpY2llcyA9IHRoaXMuY3JlYXRlUG9saWN5U3RhdGVtZW50cyhcbiAgICAvLyAgICAgdGhpcy5wcm9wcy5hY3Rpdml0eS5lbmNyeXB0aW9uQ29uZmlndXJhdGlvbi5rbXNLZXksXG4gICAgLy8gICApO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLnRhc2tNZXRyaWNzID0ge1xuICAgIC8vICAgbWV0cmljRGltZW5zaW9uczogeyBBY3Rpdml0eUFybjogdGhpcy5wcm9wcy5hY3Rpdml0eS5hY3Rpdml0eUFybiB9LFxuICAgIC8vICAgbWV0cmljUHJlZml4U2luZ3VsYXI6IFwiQWN0aXZpdHlcIixcbiAgICAvLyAgIG1ldHJpY1ByZWZpeFBsdXJhbDogXCJBY3Rpdml0aWVzXCIsXG4gICAgLy8gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfcmVuZGVyVGFzaygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBSZXNvdXJjZTogdGhpcy5wcm9wcy5hY3Rpdml0eS5hY3Rpdml0eUFybixcbiAgICAgIFBhcmFtZXRlcnM6IHRoaXMucHJvcHMucGFyYW1ldGVyc1xuICAgICAgICA/IGNvbXB1dGUuRmllbGRVdGlscy5yZW5kZXJPYmplY3QodGhpcy5wcm9wcy5wYXJhbWV0ZXJzKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gLy8gSUFNIHBvbGljeSBmb3IgdGhlIFN0YXRlIE1hY2hpbmUgZXhlY3V0aW9uIHJvbGUgdG8gdXNlIHRoZSBBY3Rpdml0eSBLTVMga2V5IHdoZW4gZW5jcnlwdGluZyBpbnB1dHNcbiAgLy8gcHJpdmF0ZSBjcmVhdGVQb2xpY3lTdGF0ZW1lbnRzKGttc2tleTogSUtleSk6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSB7XG4gIC8vICAgcmV0dXJuIFtcbiAgLy8gICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgLy8gICAgICAgYWN0aW9uczogW1wia21zOkRlY3J5cHRcIiwgXCJrbXM6R2VuZXJhdGVEYXRhS2V5XCJdLFxuICAvLyAgICAgICByZXNvdXJjZXM6IFtgJHtrbXNrZXkua2V5QXJufWBdLFxuICAvLyAgICAgICBjb25kaXRpb246IFtcbiAgLy8gICAgICAgICB7XG4gIC8vICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAvLyAgICAgICAgICAgdmFyaWFibGU6IFwia21zOkVuY3J5cHRpb25Db250ZXh0OmF3czpzdGF0ZXM6YWN0aXZpdHlBcm5cIixcbiAgLy8gICAgICAgICAgIHZhbHVlczogW3RoaXMucHJvcHMuYWN0aXZpdHkuYWN0aXZpdHlBcm5dLFxuICAvLyAgICAgICAgIH0sXG4gIC8vICAgICAgIF0sXG4gIC8vICAgICB9KSxcbiAgLy8gICBdO1xuICAvLyB9XG59XG4iXX0=
@@ -114,7 +114,7 @@ class StepFunctionsStartExecution extends compute.TaskStateBase {
114
114
  }
115
115
  exports.StepFunctionsStartExecution = StepFunctionsStartExecution;
116
116
  _a = JSII_RTTI_SYMBOL_1;
117
- StepFunctionsStartExecution[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsStartExecution", version: "0.1.8" };
117
+ StepFunctionsStartExecution[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsStartExecution", version: "0.1.9" };
118
118
  StepFunctionsStartExecution.SUPPORTED_INTEGRATION_PATTERNS = [
119
119
  compute.IntegrationPattern.REQUEST_RESPONSE,
120
120
  compute.IntegrationPattern.RUN_JOB,
@@ -26,7 +26,7 @@ class Errors {
26
26
  }
27
27
  exports.Errors = Errors;
28
28
  _a = JSII_RTTI_SYMBOL_1;
29
- Errors[_a] = { fqn: "terraconstructs.aws.compute.Errors", version: "0.1.8" };
29
+ Errors[_a] = { fqn: "terraconstructs.aws.compute.Errors", version: "0.1.9" };
30
30
  /**
31
31
  * Matches any Error.
32
32
  */
@@ -170,5 +170,5 @@ class UsagePlan extends UsagePlanBase {
170
170
  }
171
171
  exports.UsagePlan = UsagePlan;
172
172
  _a = JSII_RTTI_SYMBOL_1;
173
- UsagePlan[_a] = { fqn: "terraconstructs.aws.compute.UsagePlan", version: "0.1.8" };
173
+ UsagePlan[_a] = { fqn: "terraconstructs.aws.compute.UsagePlan", version: "0.1.9" };
174
174
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNhZ2UtcGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS91c2FnZS1wbGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUdBQXFHO0FBRXJHLHNEQUc2QjtBQUM3QixpQ0FBNkI7QUFFN0IsdURBQW9FO0FBQ3BFLG9EQUkwQjtBQUMxQiw0Q0FBd0M7QUF3QnhDOztHQUVHO0FBQ0gsSUFBWSxNQUlYO0FBSkQsV0FBWSxNQUFNO0lBQ2hCLHFCQUFXLENBQUE7SUFDWCx1QkFBYSxDQUFBO0lBQ2IseUJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsTUFBTSxzQkFBTixNQUFNLFFBSWpCO0FBd0NEOztHQUVHO0FBQ0gsSUFBSyxnQkFFSjtBQUZELFdBQUssZ0JBQWdCO0lBQ25CLHVDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGSSxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRXBCO0FBcUdELE1BQWUsYUFBYyxTQUFRLGdDQUFnQjtJQU9uRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPO1lBQ0wsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFNBQVMsQ0FBQyxNQUFlLEVBQUUsT0FBMEI7UUFDMUQsTUFBTSxNQUFNLEdBQUcsc0JBQXNCLENBQUM7UUFDdEMsZ0RBQWdEO1FBQ2hELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxDQUFDLENBQUMsR0FBRyxNQUFNLElBQUksb0JBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQy9DLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFWCxNQUFNLFFBQVEsR0FBRyxJQUFJLHFDQUFzQixD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QUVELE9BQU87WUFDTCxLQUFLLEVBQUUsU0FBUztZQUNoQixLQUFLLEVBQUUsU0FBUztZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7U0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFTyxXQUFXLENBQ2pCLEtBQXFCO1FBRXJCLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxJQUFJLElBQUEsaUNBQWUsRUFBQyxLQUFLLENBQUMsS0FBSyxFQUFFLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxPQUFPO2dCQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztnQkFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU87YUFDdEIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sY0FBYyxDQUNwQixLQUF3QjtRQUV4QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFBLGlDQUFlLEVBQUMsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFDcEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFBLGdDQUFjLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFakQsT0FBTztZQUNMLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7U0FDM0IsQ0FBQztJQUNKLENBQUM7O0FBbEtILDhCQW1LQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5L2xpYi91c2FnZS1wbGFuLnRzXG5cbmltcG9ydCB7XG4gIGFwaUdhdGV3YXlVc2FnZVBsYW4sXG4gIGFwaUdhdGV3YXlVc2FnZVBsYW5LZXksXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBMYXp5IH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVEb3VibGUsIHZhbGlkYXRlSW50ZWdlciB9IGZyb20gXCIuL2FwaWdhdGV3YXktdXRpbFwiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG4gIElBd3NDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IElBcGlLZXkgfSBmcm9tIFwiLi4vY29tcHV0ZS9hcGkta2V5XCI7XG5pbXBvcnQgeyBNZXRob2QgfSBmcm9tIFwiLi4vY29tcHV0ZS9tZXRob2RcIjtcbmltcG9ydCB7IElSZXN0QXBpIH0gZnJvbSBcIi4uL2NvbXB1dGUvcmVzdGFwaVwiO1xuaW1wb3J0IHsgU3RhZ2UgfSBmcm9tIFwiLi4vY29tcHV0ZS9zdGFnZVwiO1xuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgZGVmaW5pbmcgdGhyb3R0bGluZyBwYXJhbWV0ZXJzIHRvIEFQSSBzdGFnZXMgb3IgbWV0aG9kcy5cbiAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcGlnYXRld2F5L2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hcGktZ2F0ZXdheS1yZXF1ZXN0LXRocm90dGxpbmcuaHRtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRocm90dGxlU2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIEFQSSByZXF1ZXN0IHN0ZWFkeS1zdGF0ZSByYXRlIGxpbWl0IChhdmVyYWdlIHJlcXVlc3RzIHBlciBzZWNvbmQgb3ZlciBhbiBleHRlbmRlZCBwZXJpb2Qgb2YgdGltZSlcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgcmF0ZUxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBBUEkgcmVxdWVzdCByYXRlIGxpbWl0IG92ZXIgYSB0aW1lIHJhbmdpbmcgZnJvbSBvbmUgdG8gYSBmZXcgc2Vjb25kcy5cbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgYnVyc3RMaW1pdD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaW1lIHBlcmlvZCBmb3Igd2hpY2ggcXVvdGEgc2V0dGluZ3MgYXBwbHkuXG4gKi9cbmV4cG9ydCBlbnVtIFBlcmlvZCB7XG4gIERBWSA9IFwiREFZXCIsXG4gIFdFRUsgPSBcIldFRUtcIixcbiAgTU9OVEggPSBcIk1PTlRIXCIsXG59XG5cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXF1ZXN0cyB0aGF0IGNsaWVudHMgY2FuIG1ha2UgdG8gQVBJIEdhdGV3YXkgQVBJcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdW90YVNldHRpbmdzIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZXF1ZXN0cyB0aGF0IHVzZXJzIGNhbiBtYWtlIHdpdGhpbiB0aGUgc3BlY2lmaWVkIHRpbWUgcGVyaW9kLlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSBsaW1pdD86IG51bWJlcjtcblxuICAvKipcbiAgICogRm9yIHRoZSBpbml0aWFsIHRpbWUgcGVyaW9kLCB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHRvIHN1YnRyYWN0IGZyb20gdGhlIHNwZWNpZmllZCBsaW1pdC5cbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgb2Zmc2V0PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBwZXJpb2QgZm9yIHdoaWNoIHRoZSBtYXhpbXVtIGxpbWl0IG9mIHJlcXVlc3RzIGFwcGxpZXMuXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZD86IFBlcmlvZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHBlci1tZXRob2QgdGhyb3R0bGluZyBmb3IgYSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaHJvdHRsaW5nUGVyTWV0aG9kIHtcbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgZm9yIHdoaWNoIHlvdSBzcGVjaWZ5IHRoZSB0aHJvdHRsaW5nIHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiBNZXRob2Q7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgb3ZlcmFsbCByZXF1ZXN0IHJhdGUgKGF2ZXJhZ2UgcmVxdWVzdHMgcGVyIHNlY29uZCkgYW5kIGJ1cnN0IGNhcGFjaXR5LlxuICAgKi9cbiAgcmVhZG9ubHkgdGhyb3R0bGU6IFRocm90dGxlU2V0dGluZ3M7XG59XG5cbi8qKlxuICogVHlwZSBvZiBVc2FnZSBQbGFuIEtleS4gQ3VycmVudGx5IHRoZSBvbmx5IHN1cHBvcnRlZCB0eXBlIGlzICdBcGlLZXknXG4gKi9cbmVudW0gVXNhZ2VQbGFuS2V5VHlwZSB7XG4gIEFQSV9LRVkgPSBcIkFQSV9LRVlcIixcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBBUEkgc3RhZ2VzIHRoYXQgYSB1c2FnZSBwbGFuIGFwcGxpZXMgdG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2VQbGFuUGVyQXBpU3RhZ2Uge1xuICAvKipcbiAgICogVGhlIEFQSSB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIHVzYWdlIHBsYW4gc3RhZ2UuXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGFwaT86IElSZXN0QXBpO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhZ2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyB1c2FnZSBwbGFuLlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSBzdGFnZT86IFN0YWdlO1xuXG4gIC8qKlxuICAgKiBUaHJvdHRsZSBzZXR0aW5ncyBmb3Igc3BlY2lmaWMgbWV0aG9kcyBpbiB0aGlzIHN0YWdlLlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSB0aHJvdHRsZT86IFRocm90dGxpbmdQZXJNZXRob2RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2FnZVBsYW5Qcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIEFQSSBTdGFnZXMgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2FnZSBwbGFuLlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqL1xuICByZWFkb25seSBhcGlTdGFnZXM/OiBVc2FnZVBsYW5QZXJBcGlTdGFnZVtdO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHVzYWdlIHBsYW4gcHVycG9zZS5cbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiByZXF1ZXN0cyBjbGllbnRzIGNhbiBtYWtlIGluIGEgZ2l2ZW4gdGltZSBwZXJpb2QuXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHF1b3RhPzogUXVvdGFTZXR0aW5ncztcblxuICAvKipcbiAgICogT3ZlcmFsbCB0aHJvdHRsZSBzZXR0aW5ncyBmb3IgdGhlIEFQSS5cbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdGhyb3R0bGU/OiBUaHJvdHRsZVNldHRpbmdzO1xuXG4gIC8qKlxuICAgKiBOYW1lIGZvciB0aGlzIHVzYWdlIHBsYW4uXG4gICAqIEBkZWZhdWx0IC0gQ0RLIGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBcGlLZXkgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSB1c2FnZSBwbGFuLlxuICAgKiBAZGVmYXVsdCBub25lXG4gICAqIEBkZXByZWNhdGVkIHVzZSBgYWRkQXBpS2V5KClgXG4gICAqL1xuICByZWFkb25seSBhcGlLZXk/OiBJQXBpS2V5O1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gdGhlIFVzYWdlUGxhbi5hZGRBcGlLZXkoKSBtZXRob2RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRBcGlLZXlPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb25zdHJ1Y3QgSUQgZm9yIHRoZSBVc2FnZVBsYW5LZXkgcmVzb3VyY2UuXG4gICAqIEBkZWZhdWx0IC0gYXV0b2dlbmVyYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnJpZGVMb2dpY2FsSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNhZ2VQbGFuT3V0cHV0cyB7XG4gIHJlYWRvbmx5IHVzYWdlUGxhbklkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBVc2FnZVBsYW4sIGVpdGhlciBtYW5hZ2VkIGJ5IHRoaXMgQ0RLIGFwcCwgb3IgaW1wb3J0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVVzYWdlUGxhbiBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICAvKiogT3V0cHV0cyBvZiB0aGUgdXNhZ2UgcGxhbi4gKi9cbiAgcmVhZG9ubHkgdXNhZ2VQbGFuT3V0cHV0czogVXNhZ2VQbGFuT3V0cHV0cztcblxuICAvKipcbiAgICogSWQgb2YgdGhlIHVzYWdlIHBsYW5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNhZ2VQbGFuSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkcyBhbiBBcGlLZXkuXG4gICAqXG4gICAqIEBwYXJhbSBhcGlLZXkgdGhlIGFwaSBrZXkgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyB1c2FnZSBwbGFuXG4gICAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMgdGhhdCBjb250cm9sIHRoZSBiZWhhdmlvdXIgb2YgdGhpcyBtZXRob2RcbiAgICovXG4gIGFkZEFwaUtleShhcGlLZXk6IElBcGlLZXksIG9wdGlvbnM/OiBBZGRBcGlLZXlPcHRpb25zKTogdm9pZDtcbn1cblxuYWJzdHJhY3QgY2xhc3MgVXNhZ2VQbGFuQmFzZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJVXNhZ2VQbGFuIHtcbiAgLyoqXG4gICAqIElkIG9mIHRoZSB1c2FnZSBwbGFuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSB1c2FnZVBsYW5JZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgdXNhZ2VQbGFuT3V0cHV0cygpOiBVc2FnZVBsYW5PdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNhZ2VQbGFuSWQ6IHRoaXMudXNhZ2VQbGFuSWQsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy51c2FnZVBsYW5PdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gQXBpS2V5LlxuICAgKlxuICAgKiBAcGFyYW0gYXBpS2V5IHRoZSBhcGkga2V5IHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgdXNhZ2UgcGxhblxuICAgKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zIHRoYXQgY29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIHRoaXMgbWV0aG9kXG4gICAqL1xuICBwdWJsaWMgYWRkQXBpS2V5KGFwaUtleTogSUFwaUtleSwgb3B0aW9ucz86IEFkZEFwaUtleU9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBwcmVmaXggPSBcIlVzYWdlUGxhbktleVJlc291cmNlXCI7XG4gICAgLy8gUG9zdGZpeGluZyBhcGlrZXkgaWQgb25seSBmcm9tIHRoZSAybmQgY2hpbGQuXG4gICAgY29uc3QgaWQgPSB0aGlzLm5vZGUudHJ5RmluZENoaWxkKHByZWZpeClcbiAgICAgID8gYCR7cHJlZml4fToke0F3c1N0YWNrLnVuaXF1ZUlkKGFwaUtleS5ub2RlKX1gXG4gICAgICA6IHByZWZpeDtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGFwaUdhdGV3YXlVc2FnZVBsYW5LZXkuQXBpR2F0ZXdheVVzYWdlUGxhbktleShcbiAgICAgIHRoaXMsXG4gICAgICBpZCxcbiAgICAgIHtcbiAgICAgICAga2V5SWQ6IGFwaUtleS5rZXlJZCxcbiAgICAgICAga2V5VHlwZTogVXNhZ2VQbGFuS2V5VHlwZS5BUElfS0VZLFxuICAgICAgICB1c2FnZVBsYW5JZDogdGhpcy51c2FnZVBsYW5JZCxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBpZiAob3B0aW9ucz8ub3ZlcnJpZGVMb2dpY2FsSWQpIHtcbiAgICAgIHJlc291cmNlLm92ZXJyaWRlTG9naWNhbElkKG9wdGlvbnMub3ZlcnJpZGVMb2dpY2FsSWQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNhZ2VQbGFuIGV4dGVuZHMgVXNhZ2VQbGFuQmFzZSB7XG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXh0ZXJuYWxseSBkZWZpbmVkIHVzYWdlIHBsYW4gdXNpbmcgaXRzIElELlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgIHRoZSBjb25zdHJ1Y3QgdGhhdCB3aWxsIFwib3duXCIgdGhlIGltcG9ydGVkIHVzYWdlIHBsYW4uXG4gICAqIEBwYXJhbSBpZCAgICAgdGhlIGlkIG9mIHRoZSBpbXBvcnRlZCB1c2FnZSBwbGFuIGluIHRoZSBjb25zdHJ1Y3QgdHJlZS5cbiAgICogQHBhcmFtIHVzYWdlUGxhbklkIHRoZSBpZCBvZiBhbiBleGlzdGluZyB1c2FnZSBwbGFuLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tVXNhZ2VQbGFuSWQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHVzYWdlUGxhbklkOiBzdHJpbmcsXG4gICk6IElVc2FnZVBsYW4ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFVzYWdlUGxhbkJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVzYWdlUGxhbklkID0gdXNhZ2VQbGFuSWQ7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNhZ2VQbGFuSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfYXBpU3RhZ2VzID0gbmV3IEFycmF5PFVzYWdlUGxhblBlckFwaVN0YWdlPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBhcGlHYXRld2F5VXNhZ2VQbGFuLkFwaUdhdGV3YXlVc2FnZVBsYW47XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFVzYWdlUGxhblByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IG5hbWUgPSBwcm9wcy5uYW1lID8/IHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMpO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBhcGlHYXRld2F5VXNhZ2VQbGFuLkFwaUdhdGV3YXlVc2FnZVBsYW4oXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIHF1b3RhU2V0dGluZ3M6IHRoaXMucmVuZGVyUXVvdGEocHJvcHMucXVvdGEpLFxuICAgICAgICB0aHJvdHRsZVNldHRpbmdzOiB0aGlzLnJlbmRlclRocm90dGxlKHByb3BzLnRocm90dGxlKSxcbiAgICAgICAgYXBpU3RhZ2VzOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PlxuICAgICAgICAgICAgdGhpcy5yZW5kZXJBcGlTdGFnZXMoKT8ubWFwKChzdGFnZSkgPT5cbiAgICAgICAgICAgICAgYXBpR2F0ZXdheVVzYWdlUGxhbi5hcGlHYXRld2F5VXNhZ2VQbGFuQXBpU3RhZ2VzVG9UZXJyYWZvcm0oXG4gICAgICAgICAgICAgICAgc3RhZ2UsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy5hcGlTdGFnZXMpIHtcbiAgICAgIHRoaXMuX2FwaVN0YWdlcy5wdXNoKC4uLnByb3BzLmFwaVN0YWdlcyk7XG4gICAgfVxuXG4gICAgdGhpcy51c2FnZVBsYW5JZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG5cbiAgICBpZiAocHJvcHMuYXBpS2V5KSB7XG4gICAgICB0aGlzLmFkZEFwaUtleShwcm9wcy5hcGlLZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIGFwaVN0YWdlLlxuICAgKi9cbiAgcHVibGljIGFkZEFwaVN0YWdlKGFwaVN0YWdlOiBVc2FnZVBsYW5QZXJBcGlTdGFnZSk6IHZvaWQge1xuICAgIHRoaXMuX2FwaVN0YWdlcy5wdXNoKGFwaVN0YWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQXBpU3RhZ2VzKCk6XG4gICAgfCBhcGlHYXRld2F5VXNhZ2VQbGFuLkFwaUdhdGV3YXlVc2FnZVBsYW5BcGlTdGFnZXNbXVxuICAgIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5fYXBpU3RhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2FwaVN0YWdlcy5tYXAoKGFwaVN0YWdlKSA9PiB0aGlzLmNyZWF0ZVN0YWdlKGFwaVN0YWdlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBUaHJvdHRsZSBQZXIgTWV0aG9kIHRvIGZsYXQgYXJyYXkgb2YgQXBpR2F0ZXdheVVzYWdlUGxhbkFwaVN0YWdlc1Rocm90dGxlXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckFwaVN0YWdlVGhyb3R0bGVzKFxuICAgIHRocm90dGxlcz86IFRocm90dGxpbmdQZXJNZXRob2RbXSxcbiAgKTogYXBpR2F0ZXdheVVzYWdlUGxhbi5BcGlHYXRld2F5VXNhZ2VQbGFuQXBpU3RhZ2VzVGhyb3R0bGVbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aHJvdHRsZXMgfHwgdGhyb3R0bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gdW5saWtlIENGTiB3aGVyZSBBcGlTdGFnZVRocm90dGxlcy50aHJvdHRsZSBpcyBhIG1hcCAocGF0aCAtPiB0aHJvdHRsZSksIGluIFRGIGl0IGlzIGFuIGFycmF5XG4gICAgcmV0dXJuIHRocm90dGxlcy5tYXAoKHRwbSkgPT4ge1xuICAgICAgY29uc3QgcmVuZGVyZWRUaHJvdHRsZSA9IHRoaXMucmVuZGVyVGhyb3R0bGUodHBtLnRocm90dGxlKTtcbiAgICAgIGlmICghcmVuZGVyZWRUaHJvdHRsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFRocm90dGxlIHNldHRpbmdzIGFyZSB1bmRlZmluZWQgZm9yIG1ldGhvZCAke3RwbS5tZXRob2QuaHR0cE1ldGhvZH0gb24gcGF0aCAke3RwbS5tZXRob2QucmVzb3VyY2UucGF0aH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogYCR7dHBtLm1ldGhvZC5yZXNvdXJjZS5wYXRofS8ke3RwbS5tZXRob2QuaHR0cE1ldGhvZH1gLFxuICAgICAgICBidXJzdExpbWl0OiByZW5kZXJlZFRocm90dGxlLmJ1cnN0TGltaXQsXG4gICAgICAgIHJhdGVMaW1pdDogcmVuZGVyZWRUaHJvdHRsZS5yYXRlTGltaXQsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTdGFnZShcbiAgICBhcGlTdGFnZTogVXNhZ2VQbGFuUGVyQXBpU3RhZ2UsXG4gICk6IGFwaUdhdGV3YXlVc2FnZVBsYW4uQXBpR2F0ZXdheVVzYWdlUGxhbkFwaVN0YWdlcyB7XG4gICAgY29uc3Qgc3RhZ2VOYW1lID0gYXBpU3RhZ2Uuc3RhZ2U/LnN0YWdlTmFtZTtcbiAgICBjb25zdCByZXN0QXBpSWQgPVxuICAgICAgYXBpU3RhZ2UuYXBpPy5yZXN0QXBpSWQgPz8gYXBpU3RhZ2Uuc3RhZ2U/LnJlc3RBcGkucmVzdEFwaUlkO1xuXG4gICAgaWYgKCFyZXN0QXBpSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJFaXRoZXIgYXBpIG9yIHN0YWdlICh3aXRoIGEgcmVzdEFwaSkgbXVzdCBiZSBwcm92aWRlZCBmb3IgYW4gYXBpU3RhZ2VcIixcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghc3RhZ2VOYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiU3RhZ2UgbXVzdCBiZSBwcm92aWRlZCBmb3IgYW4gYXBpU3RhZ2UgaWYgYXBpIGlzIG5vdCBzcGVjaWZpZWQsIG9yIGlmIHN0YWdlIGlzIHNwZWNpZmllZCBpdCBtdXN0IGhhdmUgYSBzdGFnZU5hbWVcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFwaUlkOiByZXN0QXBpSWQsXG4gICAgICBzdGFnZTogc3RhZ2VOYW1lLFxuICAgICAgdGhyb3R0bGU6IHRoaXMucmVuZGVyQXBpU3RhZ2VUaHJvdHRsZXMoYXBpU3RhZ2UudGhyb3R0bGUpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclF1b3RhKFxuICAgIHF1b3RhPzogUXVvdGFTZXR0aW5ncyxcbiAgKTogYXBpR2F0ZXdheVVzYWdlUGxhbi5BcGlHYXRld2F5VXNhZ2VQbGFuUXVvdGFTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHF1b3RhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh2YWxpZGF0ZUludGVnZXIocXVvdGEubGltaXQsIFwiVGhyb3R0bGUgcXVvdGEgbGltaXRcIikpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxpbWl0OiBxdW90YS5saW1pdCxcbiAgICAgICAgb2Zmc2V0OiBxdW90YS5vZmZzZXQsXG4gICAgICAgIHBlcmlvZDogcXVvdGEucGVyaW9kISxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclRocm90dGxlKFxuICAgIHByb3BzPzogVGhyb3R0bGVTZXR0aW5ncyxcbiAgKTogYXBpR2F0ZXdheVVzYWdlUGxhbi5BcGlHYXRld2F5VXNhZ2VQbGFuVGhyb3R0bGVTZXR0aW5ncyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHByb3BzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgYnVyc3RMaW1pdCA9IHByb3BzLmJ1cnN0TGltaXQ7XG4gICAgdmFsaWRhdGVJbnRlZ2VyKGJ1cnN0TGltaXQsIFwiVGhyb3R0bGUgYnVyc3QgbGltaXRcIik7XG4gICAgY29uc3QgcmF0ZUxpbWl0ID0gcHJvcHMucmF0ZUxpbWl0O1xuICAgIHZhbGlkYXRlRG91YmxlKHJhdGVMaW1pdCwgXCJUaHJvdHRsZSByYXRlIGxpbWl0XCIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJ1cnN0TGltaXQ6IHByb3BzLmJ1cnN0TGltaXQsXG4gICAgICByYXRlTGltaXQ6IHByb3BzLnJhdGVMaW1pdCxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -59,7 +59,7 @@ class UserData {
59
59
  }
60
60
  exports.UserData = UserData;
61
61
  _a = JSII_RTTI_SYMBOL_1;
62
- UserData[_a] = { fqn: "terraconstructs.aws.compute.UserData", version: "0.1.8" };
62
+ UserData[_a] = { fqn: "terraconstructs.aws.compute.UserData", version: "0.1.9" };
63
63
  /**
64
64
  * Linux Instance User Data
65
65
  */
@@ -308,7 +308,7 @@ class MultipartBody {
308
308
  }
309
309
  exports.MultipartBody = MultipartBody;
310
310
  _b = JSII_RTTI_SYMBOL_1;
311
- MultipartBody[_b] = { fqn: "terraconstructs.aws.compute.MultipartBody", version: "0.1.8" };
311
+ MultipartBody[_b] = { fqn: "terraconstructs.aws.compute.MultipartBody", version: "0.1.9" };
312
312
  /**
313
313
  * Content type for shell scripts
314
314
  */
@@ -481,7 +481,7 @@ class MultipartUserData extends UserData {
481
481
  }
482
482
  exports.MultipartUserData = MultipartUserData;
483
483
  _c = JSII_RTTI_SYMBOL_1;
484
- MultipartUserData[_c] = { fqn: "terraconstructs.aws.compute.MultipartUserData", version: "0.1.8" };
484
+ MultipartUserData[_c] = { fqn: "terraconstructs.aws.compute.MultipartUserData", version: "0.1.9" };
485
485
  MultipartUserData.USE_PART_ERROR = "MultipartUserData only supports this operation if it has a default UserData. Call addUserDataPart with makeDefault=true.";
486
486
  MultipartUserData.BOUNDRY_PATTERN = "[^a-zA-Z0-9()+,-./:=?]";
487
487
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3VzZXItZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZGQUE2RjtBQUU3RixrRUFBZ0U7QUFDaEUsaUNBSWU7QUFNZixtREFBNkQ7QUF3SDdELDBDQUEwQztBQUMxQyx1RkFBdUY7QUFFdkY7Ozs7Ozs7R0FPRztBQUNILE1BQXNCLFFBQVE7SUFDNUI7O09BRUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQWdDLEVBQUU7UUFDdkQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQWtDLEVBQUU7UUFDM0QsT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQWU7UUFDbEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN0QyxRQUFRLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFBdUI7UUFDdEQsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNYLEtBQUssNEJBQW1CLENBQUMsS0FBSztnQkFDNUIsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsS0FBSyw0QkFBbUIsQ0FBQyxPQUFPO2dCQUM5QixPQUFPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQixLQUFLLDRCQUFtQixDQUFDLE9BQU87Z0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQVVELFlBQVksa0JBQWtDLEVBQUU7UUFD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SSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQzs7QUFoSkgsOENBaUpDOzs7QUFoSnlCLGdDQUFjLEdBQ3BDLDBIQUEwSCxBQUR0RixDQUN1RjtBQUNyRyxpQ0FBZSxHQUFHLHdCQUF3QixBQUEzQixDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL3VzZXItZGF0YS50c1xuXG5pbXBvcnQgeyBkYXRhQ2xvdWRpbml0Q29uZmlnIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1jbG91ZGluaXRcIjtcbmltcG9ydCB7XG4gIC8vIFRlcnJhZm9ybVJlc291cmNlXG4gIElSZXNvbHZhYmxlLFxuICBMYXp5LFxufSBmcm9tIFwiY2RrdGZcIjtcbi8vIGltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuLy8gaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbi8vIGltcG9ydCB7IEZuIH0gZnJvbSBcIi4uLy4uL3RlcnJhLWZ1bmNcIjtcbmltcG9ydCB7IElCdWNrZXQgfSBmcm9tIFwiLi4vc3RvcmFnZVwiO1xuaW1wb3J0IHsgT3BlcmF0aW5nU3lzdGVtVHlwZSB9IGZyb20gXCIuL21hY2hpbmUtaW1hZ2UvY29tbW9uXCI7XG5cbi8qKlxuICogQ29tbW9uIFVzZXJEYXRhIE9wdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyRGF0YUNvbW1vbiB7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHRvIGJhc2U2NCBlbmNvZGUgdGhlIGByZW5kZXJlZGAgb3V0cHV0LiBDYW5ub3QgYmUgZGlzYWJsZWQgaWYgZ3ppcCBpcyBgdHJ1ZWAuXG4gICAqXG4gICAqIE5PVEU6IEluc3RhbmNlIGFuZCBMYXVuY2hUZW1wbGF0ZSBleHBlY3QgYmFzZTY0IGVuY29kZWQgdXNlciBkYXRhXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9jbG91ZGluaXQvMi4zLjYvZG9jcy9kYXRhLXNvdXJjZXMvY29uZmlnI2Jhc2U2NF9lbmNvZGUgRGF0YUNsb3VkaW5pdENvbmZpZyNiYXNlNjRfZW5jb2RlfVxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBiYXNlNjRFbmNvZGU/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgb3Igbm90IHRvIGd6aXAgdGhlIGByZW5kZXJlZGAgb3V0cHV0LlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvY2xvdWRpbml0LzIuMy42L2RvY3MvZGF0YS1zb3VyY2VzL2NvbmZpZyNnemlwIERhdGFDbG91ZGluaXRDb25maWcjZ3ppcH1cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ3ppcD86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIGBDb250ZW50LVR5cGVgIGhlYWRlciBvZiB0aGlzIHBhcnQuXG4gICAqXG4gICAqIFNvbWUgZXhhbXBsZXMgb2YgY29udGVudCB0eXBlczpcbiAgICogKiBgdGV4dC94LXNoZWxsc2NyaXB0OyBjaGFyc2V0PVwidXRmLThcImAgKHNoZWxsIHNjcmlwdClcbiAgICogKiBgdGV4dC9jbG91ZC1ib290aG9vazsgY2hhcnNldD1cInV0Zi04XCJgIChzaGVsbCBzY3JpcHQgZXhlY3V0ZWQgZHVyaW5nIGJvb3QgcGhhc2UpXG4gICAqXG4gICAqIEZvciBMaW51eCBzaGVsbCBzY3JpcHRzIHVzZSBgdGV4dC94LXNoZWxsc2NyaXB0YC5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2Nsb3VkaW5pdC8yLjMuNi9kb2NzL2RhdGEtc291cmNlcy9jb25maWcjY29udGVudF90eXBlIERhdGFDbG91ZGluaXRDb25maWcjY29udGVudF90eXBlfVxuICAgKlxuICAgKiBAZGVmYXVsdHMgdG8gYHRleHQvcGxhaW5gXG4gICAqL1xuICByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgZmlsZW5hbWUgdG8gcmVwb3J0IGluIHRoZSBoZWFkZXIgZm9yIHRoZSBwYXJ0LlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvY2xvdWRpbml0LzIuMy42L2RvY3MvZGF0YS1zb3VyY2VzL2NvbmZpZyNmaWxlbmFtZSBEYXRhQ2xvdWRpbml0Q29uZmlnI2ZpbGVuYW1lfVxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZW5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyB3aGVuIGNvbnN0cnVjdGluZyBVc2VyRGF0YSBmb3IgTGludXhcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW51eFVzZXJEYXRhT3B0aW9ucyBleHRlbmRzIFVzZXJEYXRhQ29tbW9uIHtcbiAgLyoqXG4gICAqIFNoZWJhbmcgZm9yIHRoZSBVc2VyRGF0YSBzY3JpcHRcbiAgICpcbiAgICogQGRlZmF1bHQgXCIjIS9iaW4vYmFzaFwiXG4gICAqL1xuICByZWFkb25seSBzaGViYW5nPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgd2hlbiBjb25zdHJ1Y3RpbmcgVXNlckRhdGEgZm9yIFdpbmRvd3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXaW5kb3dzVXNlckRhdGFPcHRpb25zIGV4dGVuZHMgVXNlckRhdGFDb21tb24ge1xuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gc2V0IHRoaXMgdXNlcmRhdGEgdG8gcGVyc2lzdCB0aHJvdWdoIGFuIGluc3RhbmNlIHJlYm9vdDsgYWxsb3dpbmdcbiAgICogaXQgdG8gcnVuIG9uIGV2ZXJ5IGluc3RhbmNlIHN0YXJ0LlxuICAgKiBCeSBkZWZhdWx0LCBVc2VyRGF0YSBpcyBydW4gb25seSBvbmNlIGR1cmluZyB0aGUgZmlyc3QgaW5zdGFuY2UgbGF1bmNoLlxuICAgKlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlOlxuICAgKiBodHRwczovL2F3cy5hbWF6b24uY29tL3ByZW1pdW1zdXBwb3J0L2tub3dsZWRnZS1jZW50ZXIvZXhlY3V0ZS11c2VyLWRhdGEtZWMyL1xuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9XaW5kb3dzR3VpZGUvZWMyLXdpbmRvd3MtdXNlci1kYXRhLmh0bWwjdXNlci1kYXRhLXNjcmlwdHNcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHBlcnNpc3Q/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgd2hlbiBkb3dubG9hZGluZyBmaWxlcyBmcm9tIFMzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNEb3dubG9hZE9wdGlvbnMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgUzMgYnVja2V0IHRvIGRvd25sb2FkIGZyb21cbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldDogSUJ1Y2tldDtcblxuICAvKipcbiAgICogVGhlIGtleSBvZiB0aGUgZmlsZSB0byBkb3dubG9hZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0S2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbCBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBMaW51eCAgIC0gL3RtcC9idWNrZXRLZXlcbiAgICogICAgICAgICAgV2luZG93cyAtICVURU1QJS9idWNrZXRLZXlcbiAgICovXG4gIHJlYWRvbmx5IGxvY2FsRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBvZiB0aGUgUzMgQnVja2V0IChuZWVkZWQgZm9yIGFjY2VzcyB2aWEgVlBDIEdhdGV3YXkpXG4gICAqIEBkZWZhdWx0IG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIHdoZW4gZXhlY3V0aW5nIGEgZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlRmlsZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHBhdGggdG8gdGhlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBmaWxlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgTm8gYXJndW1lbnRzIGFyZSBwYXNzZWQgdG8gdGhlIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBhcmd1bWVudHM/OiBzdHJpbmc7XG59XG5cbi8vIFRPRE86IFN1cHBvcnQgQ29udGVudCBUcmFuc2ZlciBFbmNvZGluZ1xuLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjU3MTA1OTkvY29udGVudC10cmFuc2Zlci1lbmNvZGluZy03Yml0LW9yLTgtYml0XG5cbi8qKlxuICogSW5zdGFuY2UgVXNlciBEYXRhXG4gKlxuICogcmVzb3VyY2U6IGRhdGFfY2xvdWRpbml0X2NvbmZpZ1xuICpcbiAqIFRoaXMgaXMgbGltaXRlZCB0byA3Yml0IGVuY29kaW5nXG4gKiByZWYgb3BlbiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItY2xvdWRpbml0L3B1bGwvMTcwXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBVc2VyRGF0YSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSB1c2VyZGF0YSBvYmplY3QgZm9yIExpbnV4IGhvc3RzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvckxpbnV4KG9wdGlvbnM6IExpbnV4VXNlckRhdGFPcHRpb25zID0ge30pOiBVc2VyRGF0YSB7XG4gICAgcmV0dXJuIG5ldyBMaW51eFVzZXJEYXRhKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHVzZXJkYXRhIG9iamVjdCBmb3IgV2luZG93cyBob3N0c1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JXaW5kb3dzKG9wdGlvbnM6IFdpbmRvd3NVc2VyRGF0YU9wdGlvbnMgPSB7fSk6IFVzZXJEYXRhIHtcbiAgICByZXR1cm4gbmV3IFdpbmRvd3NVc2VyRGF0YShvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB1c2VyZGF0YSBvYmplY3Qgd2l0aCBjdXN0b20gY29udGVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjdXN0b20oY29udGVudDogc3RyaW5nKTogVXNlckRhdGEge1xuICAgIGNvbnN0IHVzZXJEYXRhID0gbmV3IEN1c3RvbVVzZXJEYXRhKCk7XG4gICAgdXNlckRhdGEuYWRkQ29tbWFuZHMoY29udGVudCk7XG4gICAgcmV0dXJuIHVzZXJEYXRhO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmb3JPcGVyYXRpbmdTeXN0ZW0ob3M6IE9wZXJhdGluZ1N5c3RlbVR5cGUpOiBVc2VyRGF0YSB7XG4gICAgc3dpdGNoIChvcykge1xuICAgICAgY2FzZSBPcGVyYXRpbmdTeXN0ZW1UeXBlLkxJTlVYOlxuICAgICAgICByZXR1cm4gVXNlckRhdGEuZm9yTGludXgoKTtcbiAgICAgIGNhc2UgT3BlcmF0aW5nU3lzdGVtVHlwZS5XSU5ET1dTOlxuICAgICAgICByZXR1cm4gVXNlckRhdGEuZm9yV2luZG93cygpO1xuICAgICAgY2FzZSBPcGVyYXRpbmdTeXN0ZW1UeXBlLlVOS05PV046XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIkNhbm5vdCBkZXRlcm1pbmUgVXNlckRhdGEgZm9yIHVua25vd24gb3BlcmF0aW5nIHN5c3RlbSB0eXBlXCIsXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRoZSBVc2VyRGF0YSBDb250ZW50ICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjb250ZW50OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGZpbGVuYW1lPzogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBiYXNlNjRFbmNvZGU6IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGd6aXA6IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcblxuICBjb25zdHJ1Y3Rvcih1c2VyZGF0YU9wdGlvbnM6IFVzZXJEYXRhQ29tbW9uID0ge30pIHtcbiAgICBpZiAoXG4gICAgICB1c2VyZGF0YU9wdGlvbnMuYmFzZTY0RW5jb2RlID09PSBmYWxzZSAmJlxuICAgICAgdXNlcmRhdGFPcHRpb25zLmd6aXAgPT09IHRydWVcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkaXNhYmxlIGJhc2U2NCBlbmNvZGluZyBpZiBnemlwIGlzIGVuYWJsZWRcIik7XG4gICAgfVxuICAgIHRoaXMuYmFzZTY0RW5jb2RlID0gdXNlcmRhdGFPcHRpb25zLmJhc2U2NEVuY29kZSA/PyB0cnVlO1xuICAgIHRoaXMuZ3ppcCA9IHVzZXJkYXRhT3B0aW9ucy5nemlwID8/IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQWRkIG9uZSBvciBtb3JlIGNvbW1hbmRzIHRvIHRoZSB1c2VyIGRhdGFcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGQgb25lIG9yIG1vcmUgY29tbWFuZHMgdG8gdGhlIHVzZXIgZGF0YSB0aGF0IHdpbGwgcnVuIHdoZW4gdGhlIHNjcmlwdCBleGl0cy5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRPbkV4aXRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIFVzZXJEYXRhIGZvciB1c2UgaW4gYSBjb25zdHJ1Y3RcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZW5kZXIoc2NvcGU6IElDb25zdHJ1Y3QpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZHMgY29tbWFuZHMgdG8gZG93bmxvYWQgYSBmaWxlIGZyb20gUzNcbiAgICpcbiAgICogQHJldHVybnM6IFRoZSBsb2NhbCBwYXRoIHRoYXQgdGhlIGZpbGUgd2lsbCBiZSBkb3dubG9hZGVkIHRvXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgYWRkUzNEb3dubG9hZENvbW1hbmQocGFyYW1zOiBTM0Rvd25sb2FkT3B0aW9ucyk6IHN0cmluZztcblxuICAvKipcbiAgICogQWRkcyBjb21tYW5kcyB0byBleGVjdXRlIGEgZmlsZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGFkZEV4ZWN1dGVGaWxlQ29tbWFuZChwYXJhbXM6IEV4ZWN1dGVGaWxlT3B0aW9ucyk6IHZvaWQ7XG5cbiAgLy8gLyoqXG4gIC8vICAqIEFkZHMgYSBjb21tYW5kIHdoaWNoIHdpbGwgc2VuZCBhIGNmbi1zaWduYWwgd2hlbiB0aGUgdXNlciBkYXRhIHNjcmlwdCBlbmRzXG4gIC8vICAqL1xuICAvLyBwdWJsaWMgYWJzdHJhY3QgYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZTogQXdzQ29uc3RydWN0QmFzZSk6IHZvaWQ7XG59XG5cbi8qKlxuICogTGludXggSW5zdGFuY2UgVXNlciBEYXRhXG4gKi9cbmNsYXNzIExpbnV4VXNlckRhdGEgZXh0ZW5kcyBVc2VyRGF0YSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGluZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgb25FeGl0TGluZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hlYmFuZzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogTGludXhVc2VyRGF0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zaGViYW5nID0gcHJvcHMuc2hlYmFuZyA/PyBcIiMhL2Jpbi9iYXNoXCI7XG4gICAgdGhpcy5jb250ZW50VHlwZSA9IHByb3BzLmNvbnRlbnRUeXBlO1xuICAgIHRoaXMuZmlsZW5hbWUgPSBwcm9wcy5maWxlbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmxpbmVzLnB1c2goLi4uY29tbWFuZHMpO1xuICB9XG5cbiAgcHVibGljIGFkZE9uRXhpdENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMub25FeGl0TGluZXMucHVzaCguLi5jb21tYW5kcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gW3RoaXMuc2hlYmFuZywgLi4udGhpcy5yZW5kZXJPbkV4aXRMaW5lcygpLCAuLi50aGlzLmxpbmVzXS5qb2luKFxuICAgICAgXCJcXG5cIixcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbmRlcihzY29wZTogSUNvbnN0cnVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5ldyBkYXRhQ2xvdWRpbml0Q29uZmlnLkRhdGFDbG91ZGluaXRDb25maWcoc2NvcGUsIFwiVXNlckRhdGFcIiwge1xuICAgICAgYmFzZTY0RW5jb2RlOiB0aGlzLmJhc2U2NEVuY29kZSxcbiAgICAgIGd6aXA6IHRoaXMuZ3ppcCxcbiAgICAgIC8vIFBhc3Mgb3VyIHNjcmlwdCBhcyBhIHNpbmdsZSBwYXJ0IHdpdGggcHJvcGVyIGNvbnRlbnQgdHlwZS5cbiAgICAgIHBhcnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbnRlbnQ6IExhenkuc3RyaW5nVmFsdWUoe1xuICAgICAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5jb250ZW50LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNvbnRlbnRUeXBlOiB0aGlzLmNvbnRlbnRUeXBlLFxuICAgICAgICAgIGZpbGVuYW1lOiB0aGlzLmZpbGVuYW1lLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KS5yZW5kZXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTM0Rvd25sb2FkQ29tbWFuZChwYXJhbXM6IFMzRG93bmxvYWRPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBzM1BhdGggPSBgczM6Ly8ke3BhcmFtcy5idWNrZXQuYnVja2V0TmFtZX0vJHtwYXJhbXMuYnVja2V0S2V5fWA7XG4gICAgY29uc3QgbG9jYWxQYXRoID1cbiAgICAgIHBhcmFtcy5sb2NhbEZpbGUgJiYgcGFyYW1zLmxvY2FsRmlsZS5sZW5ndGggIT09IDBcbiAgICAgICAgPyBwYXJhbXMubG9jYWxGaWxlXG4gICAgICAgIDogYC90bXAvJHtwYXJhbXMuYnVja2V0S2V5fWA7XG4gICAgdGhpcy5hZGRDb21tYW5kcyhcbiAgICAgIGBta2RpciAtcCAkKGRpcm5hbWUgJyR7bG9jYWxQYXRofScpYCxcbiAgICAgIGBhd3MgczMgY3AgJyR7czNQYXRofScgJyR7bG9jYWxQYXRofSdgICtcbiAgICAgICAgKHBhcmFtcy5yZWdpb24gIT09IHVuZGVmaW5lZCA/IGAgLS1yZWdpb24gJHtwYXJhbXMucmVnaW9ufWAgOiBcIlwiKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGxvY2FsUGF0aDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRFeGVjdXRlRmlsZUNvbW1hbmQocGFyYW1zOiBFeGVjdXRlRmlsZU9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLmFkZENvbW1hbmRzKFxuICAgICAgXCJzZXQgLWVcIixcbiAgICAgIGBjaG1vZCAreCAnJHtwYXJhbXMuZmlsZVBhdGh9J2AsXG4gICAgICBgJyR7cGFyYW1zLmZpbGVQYXRofScgJHtwYXJhbXMuYXJndW1lbnRzID8/IFwiXCJ9YC50cmltKCksXG4gICAgKTtcbiAgfVxuXG4gIC8vIC8vIFRPRE86IEFkZCBHcmlkIFNpZ25hbHMgLSBjb3B5IGdyaWQtc2lnbmFsIGJpbmFyeSBpbiBwcm92aXNpb25lclxuICAvLyBwdWJsaWMgYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZTogQXdzQ29uc3RydWN0QmFzZSk6IHZvaWQge1xuICAvLyAgIGNvbnN0IHN0YWNrID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QocmVzb3VyY2UpO1xuICAvLyAgIGNvbnN0IHJlc291cmNlSUQgPSAocmVzb3VyY2Uubm9kZS5kZWZhdWx0Q2hpbGQgYXMgVGVycmFmb3JtUmVzb3VyY2UpLmZxbjtcbiAgLy8gICB0aGlzLmFkZE9uRXhpdENvbW1hbmRzKFxuICAvLyAgICAgYC9vcHQvYXdzL2Jpbi9ncmlkLXNpZ25hbCAtLXN0YWNrICR7c3RhY2suZ3JpZFVVSUR9IC0tcmVzb3VyY2UgJHtyZXNvdXJjZUlEfSAtLXJlZ2lvbiAke3N0YWNrLnJlZ2lvbn0gLWUgJGV4aXRDb2RlIHx8IGVjaG8gJ0ZhaWxlZCB0byBzZW5kIENsb3VkZm9ybWF0aW9uIFNpZ25hbCdgLFxuICAvLyAgICk7XG4gIC8vIH1cblxuICBwcml2YXRlIHJlbmRlck9uRXhpdExpbmVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5vbkV4aXRMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcImZ1bmN0aW9uIGV4aXRUcmFwKCl7XCIsXG4gICAgICAgIFwiZXhpdENvZGU9JD9cIixcbiAgICAgICAgLi4udGhpcy5vbkV4aXRMaW5lcyxcbiAgICAgICAgXCJ9XCIsXG4gICAgICAgIFwidHJhcCBleGl0VHJhcCBFWElUXCIsXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBXaW5kb3dzIEluc3RhbmNlIFVzZXIgRGF0YVxuICovXG5jbGFzcyBXaW5kb3dzVXNlckRhdGEgZXh0ZW5kcyBVc2VyRGF0YSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGluZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgb25FeGl0TGluZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZpbGVuYW1lPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHBlcnNpc3Q6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFdpbmRvd3NVc2VyRGF0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5wZXJzaXN0ID0gcHJvcHMucGVyc2lzdCA/PyBmYWxzZTtcbiAgICB0aGlzLmNvbnRlbnRUeXBlID0gcHJvcHMuY29udGVudFR5cGU7XG4gICAgdGhpcy5maWxlbmFtZSA9IHByb3BzLmZpbGVuYW1lO1xuICB9XG5cbiAgcHVibGljIGFkZENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMubGluZXMucHVzaCguLi5jb21tYW5kcyk7XG4gIH1cblxuICBwdWJsaWMgYWRkT25FeGl0Q29tbWFuZHMoLi4uY29tbWFuZHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5vbkV4aXRMaW5lcy5wdXNoKC4uLmNvbW1hbmRzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29udGVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPHBvd2Vyc2hlbGw+JHtbXG4gICAgICAuLi50aGlzLnJlbmRlck9uRXhpdExpbmVzKCksXG4gICAgICAuLi50aGlzLmxpbmVzLFxuICAgICAgLi4uKHRoaXMub25FeGl0TGluZXMubGVuZ3RoID4gMCA/IFsndGhyb3cgXCJTdWNjZXNzXCInXSA6IFtdKSxcbiAgICBdLmpvaW4oXG4gICAgICBcIlxcblwiLFxuICAgICl9PC9wb3dlcnNoZWxsPiR7KHRoaXMucGVyc2lzdCA/PyBmYWxzZSkgPyBcIjxwZXJzaXN0PnRydWU8L3BlcnNpc3Q+XCIgOiBcIlwifWA7XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKHNjb3BlOiBJQ29uc3RydWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZyhzY29wZSwgXCJVc2VyRGF0YVwiLCB7XG4gICAgICBiYXNlNjRFbmNvZGU6IHRoaXMuYmFzZTY0RW5jb2RlLFxuICAgICAgZ3ppcDogdGhpcy5nemlwLFxuICAgICAgLy8gUGFzcyBvdXIgc2NyaXB0IGFzIGEgc2luZ2xlIHBhcnQgd2l0aCBwcm9wZXIgY29udGVudCB0eXBlLlxuICAgICAgcGFydDogW1xuICAgICAgICB7XG4gICAgICAgICAgY29udGVudDogTGF6eS5zdHJpbmdWYWx1ZSh7XG4gICAgICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29udGVudFR5cGU6IHRoaXMuY29udGVudFR5cGUsXG4gICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZW5hbWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pLnJlbmRlcmVkO1xuICB9XG5cbiAgcHVibGljIGFkZFMzRG93bmxvYWRDb21tYW5kKHBhcmFtczogUzNEb3dubG9hZE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2FsUGF0aCA9XG4gICAgICBwYXJhbXMubG9jYWxGaWxlICYmIHBhcmFtcy5sb2NhbEZpbGUubGVuZ3RoICE9PSAwXG4gICAgICAgID8gcGFyYW1zLmxvY2FsRmlsZVxuICAgICAgICA6IGBDOi90ZW1wLyR7cGFyYW1zLmJ1Y2tldEtleX1gO1xuICAgIHRoaXMuYWRkQ29tbWFuZHMoXG4gICAgICBgbWtkaXIgKFNwbGl0LVBhdGggLVBhdGggJyR7bG9jYWxQYXRofScgKSAtZWEgMGAsXG4gICAgICBgUmVhZC1TM09iamVjdCAtQnVja2V0TmFtZSAnJHtwYXJhbXMuYnVja2V0LmJ1Y2tldE5hbWV9JyAta2V5ICcke3BhcmFtcy5idWNrZXRLZXl9JyAtZmlsZSAnJHtsb2NhbFBhdGh9JyAtRXJyb3JBY3Rpb24gU3RvcGAgK1xuICAgICAgICAocGFyYW1zLnJlZ2lvbiAhPT0gdW5kZWZpbmVkID8gYCAtUmVnaW9uICR7cGFyYW1zLnJlZ2lvbn1gIDogXCJcIiksXG4gICAgKTtcbiAgICByZXR1cm4gbG9jYWxQYXRoO1xuICB9XG5cbiAgcHVibGljIGFkZEV4ZWN1dGVGaWxlQ29tbWFuZChwYXJhbXM6IEV4ZWN1dGVGaWxlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuYWRkQ29tbWFuZHMoXG4gICAgICBgJicke3BhcmFtcy5maWxlUGF0aH0nICR7cGFyYW1zLmFyZ3VtZW50cyA/PyBcIlwifWAudHJpbSgpLFxuICAgICAgYGlmICghJD8pIHsgV3JpdGUtRXJyb3IgJ0ZhaWxlZCB0byBleGVjdXRlIHRoZSBmaWxlIFwiJHtwYXJhbXMuZmlsZVBhdGh9XCInIC1FcnJvckFjdGlvbiBTdG9wIH1gLFxuICAgICk7XG4gIH1cblxuICAvLyAvLyBUT0RPOiBBZGQgR3JpZCBTaWduYWxzXG4gIC8vIHB1YmxpYyBhZGRTaWduYWxPbkV4aXRDb21tYW5kKHJlc291cmNlOiBBd3NDb25zdHJ1Y3RCYXNlKTogdm9pZCB7XG4gIC8vICAgY29uc3Qgc3RhY2sgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChyZXNvdXJjZSk7XG4gIC8vICAgY29uc3QgcmVzb3VyY2VJRCA9IChyZXNvdXJjZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBUZXJyYWZvcm1SZXNvdXJjZSkuZnFuO1xuXG4gIC8vICAgdGhpcy5hZGRPbkV4aXRDb21tYW5kcyhcbiAgLy8gICAgIGBncmlkLXNpZ25hbCAtLXN0YWNrICR7c3RhY2suZ3JpZFVVSUR9IC0tcmVzb3VyY2UgJHtyZXNvdXJjZUlEfSAtLXJlZ2lvbiAke3N0YWNrLnJlZ2lvbn0gLS1zdWNjZXNzICgkc3VjY2Vzcy5Ub1N0cmluZygpLlRvTG93ZXIoKSlgLFxuICAvLyAgICk7XG4gIC8vIH1cblxuICBwcml2YXRlIHJlbmRlck9uRXhpdExpbmVzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy5vbkV4aXRMaW5lcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICBcInRyYXAge1wiLFxuICAgICAgICAnJHN1Y2Nlc3M9KCRQU0l0ZW0uRXhjZXB0aW9uLk1lc3NhZ2UgLWVxIFwiU3VjY2Vzc1wiKScsXG4gICAgICAgIC4uLnRoaXMub25FeGl0TGluZXMsXG4gICAgICAgIFwiYnJlYWtcIixcbiAgICAgICAgXCJ9XCIsXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBDdXN0b20gSW5zdGFuY2UgVXNlciBEYXRhXG4gKi9cbmNsYXNzIEN1c3RvbVVzZXJEYXRhIGV4dGVuZHMgVXNlckRhdGEge1xuICBwcml2YXRlIHJlYWRvbmx5IGxpbmVzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIGFkZENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMubGluZXMucHVzaCguLi5jb21tYW5kcyk7XG4gIH1cblxuICBwdWJsaWMgYWRkT25FeGl0Q29tbWFuZHMoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJDdXN0b21Vc2VyRGF0YSBkb2VzIG5vdCBzdXBwb3J0IGFkZE9uRXhpdENvbW1hbmRzLCB1c2UgVXNlckRhdGEuZm9yTGludXgoKSBvciBVc2VyRGF0YS5mb3JXaW5kb3dzKCkgaW5zdGVhZC5cIixcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBjb250ZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubGluZXMuam9pbihcIlxcblwiKTtcbiAgfVxuXG4gIHB1YmxpYyByZW5kZXIoc2NvcGU6IElDb25zdHJ1Y3QpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgZGF0YUNsb3VkaW5pdENvbmZpZy5EYXRhQ2xvdWRpbml0Q29uZmlnKHNjb3BlLCBcIlVzZXJEYXRhXCIsIHtcbiAgICAgIGJhc2U2NEVuY29kZTogdGhpcy5iYXNlNjRFbmNvZGUsXG4gICAgICBnemlwOiB0aGlzLmd6aXAsXG4gICAgICAvLyBQYXNzIG91ciBzY3JpcHQgYXMgYSBzaW5nbGUgcGFydCB3aXRoIHByb3BlciBjb250ZW50IHR5cGUuXG4gICAgICBwYXJ0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb250ZW50OiBMYXp5LnN0cmluZ1ZhbHVlKHtcbiAgICAgICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuY29udGVudCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb250ZW50VHlwZTogdGhpcy5jb250ZW50VHlwZSxcbiAgICAgICAgICBmaWxlbmFtZTogdGhpcy5maWxlbmFtZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSkucmVuZGVyZWQ7XG4gIH1cblxuICBwdWJsaWMgYWRkUzNEb3dubG9hZENvbW1hbmQoKTogc3RyaW5nIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkN1c3RvbVVzZXJEYXRhIGRvZXMgbm90IHN1cHBvcnQgYWRkUzNEb3dubG9hZENvbW1hbmQsIHVzZSBVc2VyRGF0YS5mb3JMaW51eCgpIG9yIFVzZXJEYXRhLmZvcldpbmRvd3MoKSBpbnN0ZWFkLlwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXhlY3V0ZUZpbGVDb21tYW5kKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiQ3VzdG9tVXNlckRhdGEgZG9lcyBub3Qgc3VwcG9ydCBhZGRFeGVjdXRlRmlsZUNvbW1hbmQsIHVzZSBVc2VyRGF0YS5mb3JMaW51eCgpIG9yIFVzZXJEYXRhLmZvcldpbmRvd3MoKSBpbnN0ZWFkLlwiLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkU2lnbmFsT25FeGl0Q29tbWFuZCgpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkN1c3RvbVVzZXJEYXRhIGRvZXMgbm90IHN1cHBvcnQgYWRkU2lnbmFsT25FeGl0Q29tbWFuZCwgdXNlIFVzZXJEYXRhLmZvckxpbnV4KCkgb3IgVXNlckRhdGEuZm9yV2luZG93cygpIGluc3RlYWQuXCIsXG4gICAgKTtcbiAgfVxufVxuXG4vLyAvKipcbi8vICAqIE9wdGlvbnMgd2hlbiBjcmVhdGluZyBgTXVsdGlwYXJ0Qm9keWAuXG4vLyAgKi9cbi8vIGV4cG9ydCBpbnRlcmZhY2UgTXVsdGlwYXJ0Qm9keU9wdGlvbnMge1xuLy8gICAvKipcbi8vICAgICogYENvbnRlbnQtVHlwZWAgaGVhZGVyIG9mIHRoaXMgcGFydC5cbi8vICAgICpcbi8vICAgICogU29tZSBleGFtcGxlcyBvZiBjb250ZW50IHR5cGVzOlxuLy8gICAgKiAqIGB0ZXh0L3gtc2hlbGxzY3JpcHQ7IGNoYXJzZXQ9XCJ1dGYtOFwiYCAoc2hlbGwgc2NyaXB0KVxuLy8gICAgKiAqIGB0ZXh0L2Nsb3VkLWJvb3Rob29rOyBjaGFyc2V0PVwidXRmLThcImAgKHNoZWxsIHNjcmlwdCBleGVjdXRlZCBkdXJpbmcgYm9vdCBwaGFzZSlcbi8vICAgICpcbi8vICAgICogRm9yIExpbnV4IHNoZWxsIHNjcmlwdHMgdXNlIGB0ZXh0L3gtc2hlbGxzY3JpcHRgLlxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgY29udGVudFR5cGU6IHN0cmluZztcblxuLy8gICAvLyB0ZXJyYWZvcm0gcHJvdmlkZXIgaGFzIHRoaXMgaGFyZGNvZGVkXG4vLyAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWNsb3VkaW5pdC9ibG9iL3YyLjMuNi9pbnRlcm5hbC9wcm92aWRlci9jbG91ZGluaXRfY29uZmlnLmdvI0wxODBcblxuLy8gICAvLyAvKipcbi8vICAgLy8gICogYENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciBzcGVjaWZ5aW5nIHBhcnQgZW5jb2RpbmcuXG4vLyAgIC8vICAqXG4vLyAgIC8vICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIGJvZHkgaXMgbm90IGVuY29kZWRcbi8vICAgLy8gICovXG4vLyAgIC8vIHJlYWRvbmx5IHRyYW5zZmVyRW5jb2Rpbmc/OiBzdHJpbmc7XG5cbi8vICAgLyoqXG4vLyAgICAqIFRoZSBib2R5IG9mIG1lc3NhZ2UuXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIGJvZHkgd2lsbCBub3QgYmUgYWRkZWQgdG8gcGFydFxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgYm9keT86IHN0cmluZztcbi8vIH1cblxuLyoqXG4gKiBUaGUgYmFzZSBjbGFzcyBmb3IgYWxsIGNsYXNzZXMgd2hpY2ggY2FuIGJlIHVzZWQgYXMgYE11bHRpcGFydFVzZXJEYXRhYC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE11bHRpcGFydEJvZHkge1xuICAvKipcbiAgICogQ29udGVudCB0eXBlIGZvciBzaGVsbCBzY3JpcHRzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNIRUxMX1NDUklQVCA9ICd0ZXh0L3gtc2hlbGxzY3JpcHQ7IGNoYXJzZXQ9XCJ1dGYtOFwiJztcblxuICAvKipcbiAgICogQ29udGVudCB0eXBlIGZvciBib290IGhvb2tzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMT1VEX0JPT1RIT09LID1cbiAgICAndGV4dC9jbG91ZC1ib290aG9vazsgY2hhcnNldD1cInV0Zi04XCInO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIHRoZSBuZXcgYE11bHRpcGFydEJvZHlgIHdyYXBwaW5nIGV4aXN0aW5nIGBVc2VyRGF0YWAuIE1vZGlmaWNhdGlvbiB0byBgVXNlckRhdGFgIGFyZSByZWZsZWN0ZWRcbiAgICogaW4gc3Vic2VxdWVudCByZW5kZXJzIG9mIHRoZSBwYXJ0LlxuICAgKlxuICAgKiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjb250ZW50IHR5cGVzIHNlZSBgTXVsdGlwYXJ0Qm9keU9wdGlvbnMuY29udGVudFR5cGVgLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlckRhdGEgdXNlciBkYXRhIHRvIHdyYXAgaW50byBib2R5IHBhcnRcbiAgICogQHBhcmFtIGNvbnRlbnRUeXBlIG9wdGlvbmFsIGNvbnRlbnQgdHlwZSwgaWYgZGVmYXVsdCBvbmUgc2hvdWxkIG5vdCBiZSB1c2VkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Vc2VyRGF0YShcbiAgICB1c2VyRGF0YTogVXNlckRhdGEsXG4gICAgY29udGVudFR5cGU/OiBzdHJpbmcsXG4gICk6IE11bHRpcGFydEJvZHkge1xuICAgIHJldHVybiBuZXcgTXVsdGlwYXJ0Qm9keVVzZXJEYXRhV3JhcHBlcih1c2VyRGF0YSwgY29udGVudFR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICogV2hlbiB0cmFuc2ZlciBlbmNvZGluZyBpcyBzcGVjaWZpZWQgKHR5cGljYWxseSBhcyBCYXNlNjQpLCBpdCdzIGNhbGxlciByZXNwb25zaWJpbGl0eSB0byBjb252ZXJ0IGJvZHkgdG9cbiAgKiBCYXNlNjQgZWl0aGVyIGJ5IHdyYXBwaW5nIHdpdGggYEZuLmJhc2U2NGAgb3IgYnkgY29udmVydGluZyBpdCBieSBvdGhlciBjb252ZXJ0ZXJzLlxuICAqXG4gICogTm90ZTogaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItY2xvdWRpbml0L3B1bGwvMTcwXG4gICogL1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIHRoZSByYXcgYE11bHRpcGFydEJvZHlgIHVzaW5nIHNwZWNpZmllZCBib2R5LCBjb250ZW50IHR5cGUsIGZpbGVuYW1lIGFuZCBtZXJnZSB0eXBlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21SYXdCb2R5KFxuICAgIG9wdHM6IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZ1BhcnQsXG4gICk6IE11bHRpcGFydEJvZHkge1xuICAgIHJldHVybiBuZXcgTXVsdGlwYXJ0Qm9keVJhdyhvcHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqXG4gICAqIFJlbmRlciBib2R5IHBhcnRcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZW5kZXJCb2R5UGFydCgpOiBkYXRhQ2xvdWRpbml0Q29uZmlnLkRhdGFDbG91ZGluaXRDb25maWdQYXJ0O1xufVxuXG4vKipcbiAqIFRoZSByYXcgcGFydCBvZiBtdWx0aS1wYXJ0IHVzZXIgZGF0YSwgd2hpY2ggY2FuIGJlIGFkZGVkIHRvIGBNdWx0aXBhcnRVc2VyRGF0YWAuXG4gKi9cbmNsYXNzIE11bHRpcGFydEJvZHlSYXcgZXh0ZW5kcyBNdWx0aXBhcnRCb2R5IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZ1BhcnQsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUmF3IHJldHVybiBwYXJ0XG4gICAqL1xuICBwdWJsaWMgcmVuZGVyQm9keVBhcnQoKTogZGF0YUNsb3VkaW5pdENvbmZpZy5EYXRhQ2xvdWRpbml0Q29uZmlnUGFydCB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciBgVXNlckRhdGFgLlxuICovXG5jbGFzcyBNdWx0aXBhcnRCb2R5VXNlckRhdGFXcmFwcGVyIGV4dGVuZHMgTXVsdGlwYXJ0Qm9keSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGVudFR5cGU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyRGF0YTogVXNlckRhdGEsXG4gICAgY29udGVudFR5cGU/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgfHwgTXVsdGlwYXJ0Qm9keS5TSEVMTF9TQ1JJUFQ7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIGJvZHkgcGFydHNcbiAgICovXG4gIHB1YmxpYyByZW5kZXJCb2R5UGFydCgpOiBkYXRhQ2xvdWRpbml0Q29uZmlnLkRhdGFDbG91ZGluaXRDb25maWdQYXJ0IHtcbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudDogdGhpcy51c2VyRGF0YS5jb250ZW50LFxuICAgICAgY29udGVudFR5cGU6IHRoaXMuY29udGVudFR5cGUgPz8gdGhpcy51c2VyRGF0YS5jb250ZW50VHlwZSxcbiAgICAgIGZpbGVuYW1lOiB0aGlzLnVzZXJEYXRhLmZpbGVuYW1lLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjcmVhdGluZyBgTXVsdGlwYXJ0VXNlckRhdGFgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlwYXJ0VXNlckRhdGFPcHRpb25zIGV4dGVuZHMgVXNlckRhdGFDb21tb24ge1xuICAvKipcbiAgICogVGhlIHN0cmluZyB1c2VkIHRvIHNlcGFyYXRlIHBhcnRzIGluIG11bHRpcGFydCB1c2VyIGRhdGEgYXJjaGl2ZSAoaXQncyBsaWtlIE1JTUUgYm91bmRhcnkpLlxuICAgKlxuICAgKiBUaGlzIHN0cmluZyBzaG91bGQgY29udGFpbiBbYS16QS1aMC05KCkrLC0uLzo9P10gY2hhcmFjdGVycyBvbmx5LCBhbmQgc2hvdWxkIG5vdCBiZSBwcmVzZW50IGluIGFueSBwYXJ0LCBvciBpbiB0ZXh0IGNvbnRlbnQgb2YgYXJjaGl2ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYCtBV1MrQ0RLK1VzZXIrRGF0YStTZXBhcmF0b3I9PWBcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRzU2VwYXJhdG9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1pbWUgbXVsdGlwYXJ0IHVzZXIgZGF0YS5cbiAqXG4gKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgTUlNRSBtdWx0aXBhcnQgdXNlciBkYXRhLCBhcyBkZXNjcmliZWQgaW4uXG4gKiBbU3BlY2lmeWluZyBNdWx0aXBsZSBVc2VyIERhdGEgQmxvY2tzIFVzaW5nIGEgTUlNRSBNdWx0aSBQYXJ0IEFyY2hpdmVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1MvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2Jvb3RzdHJhcF9jb250YWluZXJfaW5zdGFuY2UuaHRtbCNtdWx0aS1wYXJ0X3VzZXJfZGF0YSlcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBNdWx0aXBhcnRVc2VyRGF0YSBleHRlbmRzIFVzZXJEYXRhIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgVVNFX1BBUlRfRVJST1IgPVxuICAgIFwiTXVsdGlwYXJ0VXNlckRhdGEgb25seSBzdXBwb3J0cyB0aGlzIG9wZXJhdGlvbiBpZiBpdCBoYXMgYSBkZWZhdWx0IFVzZXJEYXRhLiBDYWxsIGFkZFVzZXJEYXRhUGFydCB3aXRoIG1ha2VEZWZhdWx0PXRydWUuXCI7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEJPVU5EUllfUEFUVEVSTiA9IFwiW15hLXpBLVowLTkoKSssLS4vOj0/XVwiO1xuXG4gIHByaXZhdGUgcGFydHM6IE11bHRpcGFydEJvZHlbXSA9IFtdO1xuXG4gIHByaXZhdGUgb3B0czogTXVsdGlwYXJ0VXNlckRhdGFPcHRpb25zO1xuXG4gIHByaXZhdGUgZGVmYXVsdFVzZXJEYXRhPzogVXNlckRhdGE7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRUeXBlPzogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRzPzogTXVsdGlwYXJ0VXNlckRhdGFPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0cyk7XG4gICAgdGhpcy5jb250ZW50VHlwZSA9IG9wdHM/LmNvbnRlbnRUeXBlO1xuICAgIHRoaXMuZmlsZW5hbWUgPSBvcHRzPy5maWxlbmFtZTtcblxuICAgIGxldCBwYXJ0c1NlcGFyYXRvcjogc3RyaW5nO1xuXG4gICAgLy8gVmFsaWRhdGUgc2VwYXJhdG9yXG4gICAgaWYgKG9wdHM/LnBhcnRzU2VwYXJhdG9yICE9IG51bGwpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbmV3IFJlZ0V4cChNdWx0aXBhcnRVc2VyRGF0YS5CT1VORFJZX1BBVFRFUk4pLnRlc3Qob3B0cyEucGFydHNTZXBhcmF0b3IpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBJbnZhbGlkIGNoYXJhY3RlcnMgaW4gc2VwYXJhdG9yLiBTZXBhcmF0b3IgaGFzIHRvIG1hdGNoIHBhdHRlcm4gJHtNdWx0aXBhcnRVc2VyRGF0YS5CT1VORFJZX1BBVFRFUk59YCxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcnRzU2VwYXJhdG9yID0gb3B0cyEucGFydHNTZXBhcmF0b3I7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRzU2VwYXJhdG9yID0gXCIrQVdTK0NESytVc2VyK0RhdGErU2VwYXJhdG9yPT1cIjtcbiAgICB9XG5cbiAgICB0aGlzLm9wdHMgPSB7XG4gICAgICBwYXJ0c1NlcGFyYXRvcjogcGFydHNTZXBhcmF0b3IsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcGFydCB0byB0aGUgbGlzdCBvZiBwYXJ0cy5cbiAgICovXG4gIHB1YmxpYyBhZGRQYXJ0KHBhcnQ6IE11bHRpcGFydEJvZHkpIHtcbiAgICB0aGlzLnBhcnRzLnB1c2gocGFydCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG11bHRpcGFydCBwYXJ0IGJhc2VkIG9uIGEgVXNlckRhdGEgb2JqZWN0LlxuICAgKlxuICAgKiBJZiBgbWFrZURlZmF1bHRgIGlzIHRydWUsIHRoZW4gdGhlIFVzZXJEYXRhIGFkZGVkIGJ5IHRoaXMgbWV0aG9kXG4gICAqIHdpbGwgYWxzbyBiZSB0aGUgdGFyZ2V0IG9mIGNhbGxzIHRvIHRoZSBgYWRkKkNvbW1hbmRgIG1ldGhvZHMgb25cbiAgICogdGhpcyBNdWx0aXBhcnRVc2VyRGF0YSBvYmplY3QuXG4gICAqXG4gICAqIElmIGBtYWtlRGVmYXVsdGAgaXMgZmFsc2UsIHRoZW4gdGhpcyBpcyB0aGUgc2FtZSBhcyBjYWxsaW5nOlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBkZWNsYXJlIGNvbnN0IG11bHRpUGFydDogY29tcHV0ZS5NdWx0aXBhcnRVc2VyRGF0YTtcbiAgICogZGVjbGFyZSBjb25zdCB1c2VyRGF0YTogY29tcHV0ZS5Vc2VyRGF0YTtcbiAgICogZGVjbGFyZSBjb25zdCBjb250ZW50VHlwZTogc3RyaW5nO1xuICAgKlxuICAgKiBtdWx0aVBhcnQuYWRkUGFydChjb21wdXRlLk11bHRpcGFydEJvZHkuZnJvbVVzZXJEYXRhKHVzZXJEYXRhLCBjb250ZW50VHlwZSkpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQW4gdW5kZWZpbmVkIGBtYWtlRGVmYXVsdGAgZGVmYXVsdHMgdG8gZWl0aGVyOlxuICAgKiAtIGB0cnVlYCBpZiBubyBkZWZhdWx0IFVzZXJEYXRhIGhhcyBiZWVuIHNldCB5ZXQ7IG9yXG4gICAqIC0gYGZhbHNlYCBpZiB0aGVyZSBpcyBubyBkZWZhdWx0IFVzZXJEYXRhIHNldC5cbiAgICovXG4gIHB1YmxpYyBhZGRVc2VyRGF0YVBhcnQoXG4gICAgdXNlckRhdGE6IFVzZXJEYXRhLFxuICAgIGNvbnRlbnRUeXBlPzogc3RyaW5nLFxuICAgIG1ha2VEZWZhdWx0PzogYm9vbGVhbixcbiAgKSB7XG4gICAgdGhpcy5hZGRQYXJ0KE11bHRpcGFydEJvZHkuZnJvbVVzZXJEYXRhKHVzZXJEYXRhLCBjb250ZW50VHlwZSkpO1xuICAgIG1ha2VEZWZhdWx0ID1cbiAgICAgIG1ha2VEZWZhdWx0ID8/ICh0aGlzLmRlZmF1bHRVc2VyRGF0YSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBpZiAobWFrZURlZmF1bHQpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFVzZXJEYXRhID0gdXNlckRhdGE7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb250ZW50IG9mIHRoZSBkZWZhdWx0IFVzZXJEYXRhLlxuICAgKi9cbiAgcHVibGljIGdldCBjb250ZW50KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFVzZXJEYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0VXNlckRhdGEuY29udGVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKE11bHRpcGFydFVzZXJEYXRhLlVTRV9QQVJUX0VSUk9SKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVuZGVyKHNjb3BlOiBJQ29uc3RydWN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IGRhdGFDbG91ZGluaXRDb25maWcuRGF0YUNsb3VkaW5pdENvbmZpZyhzY29wZSwgXCJVc2VyRGF0YVwiLCB7XG4gICAgICBib3VuZGFyeTogdGhpcy5vcHRzLnBhcnRzU2VwYXJhdG9yLFxuICAgICAgYmFzZTY0RW5jb2RlOiB0aGlzLmJhc2U2NEVuY29kZSxcbiAgICAgIGd6aXA6IHRoaXMuZ3ppcCxcbiAgICAgIHBhcnQ6IExhenkuYW55VmFsdWUoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLnBhcnRzLm1hcCgocCkgPT4gcC5yZW5kZXJCb2R5UGFydCgpKSxcbiAgICAgIH0pLFxuICAgIH0pLnJlbmRlcmVkO1xuICB9XG5cbiAgcHVibGljIGFkZFMzRG93bmxvYWRDb21tYW5kKHBhcmFtczogUzNEb3dubG9hZE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFVzZXJEYXRhLmFkZFMzRG93bmxvYWRDb21tYW5kKHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihNdWx0aXBhcnRVc2VyRGF0YS5VU0VfUEFSVF9FUlJPUik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZEV4ZWN1dGVGaWxlQ29tbWFuZChwYXJhbXM6IEV4ZWN1dGVGaWxlT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAgICAgdGhpcy5kZWZhdWx0VXNlckRhdGEuYWRkRXhlY3V0ZUZpbGVDb21tYW5kKHBhcmFtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihNdWx0aXBhcnRVc2VyRGF0YS5VU0VfUEFSVF9FUlJPUik7XG4gICAgfVxuICB9XG5cbiAgLy8gLy8gVE9ETzogQWRkIEdyaWQgU2lnbmFsc1xuICAvLyBwdWJsaWMgYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZTogQXdzQ29uc3RydWN0QmFzZSk6IHZvaWQge1xuICAvLyAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAvLyAgICAgdGhpcy5kZWZhdWx0VXNlckRhdGEuYWRkU2lnbmFsT25FeGl0Q29tbWFuZChyZXNvdXJjZSk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRocm93IG5ldyBFcnJvcihNdWx0aXBhcnRVc2VyRGF0YS5VU0VfUEFSVF9FUlJPUik7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgcHVibGljIGFkZENvbW1hbmRzKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRlZmF1bHRVc2VyRGF0YSkge1xuICAgICAgdGhpcy5kZWZhdWx0VXNlckRhdGEuYWRkQ29tbWFuZHMoLi4uY29tbWFuZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoTXVsdGlwYXJ0VXNlckRhdGEuVVNFX1BBUlRfRVJST1IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRPbkV4aXRDb21tYW5kcyguLi5jb21tYW5kczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kZWZhdWx0VXNlckRhdGEpIHtcbiAgICAgIHRoaXMuZGVmYXVsdFVzZXJEYXRhLmFkZE9uRXhpdENvbW1hbmRzKC4uLmNvbW1hbmRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKE11bHRpcGFydFVzZXJEYXRhLlVTRV9QQVJUX0VSUk9SKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==