terraconstructs 0.2.4 → 0.2.6
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.
- package/.jsii +3099 -2917
- package/CLAUDE.md +6 -6
- package/README.md +1 -1
- package/lib/asset-staging.js +3 -3
- package/lib/aws/arn.js +5 -5
- package/lib/aws/aws-asset-manager.js +9 -9
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.d.ts +19 -4
- package/lib/aws/aws-stack.js +43 -18
- package/lib/aws/aws-tags.d.ts +1 -1
- package/lib/aws/aws-tags.js +5 -5
- package/lib/aws/cloudwatch/actions/appscaling.js +1 -1
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +2 -2
- package/lib/aws/cloudwatch/actions/sns.js +1 -1
- package/lib/aws/cloudwatch/actions/ssm.js +2 -2
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.d.ts +1 -1
- package/lib/aws/cloudwatch/alarm.js +10 -10
- package/lib/aws/cloudwatch/composite-alarm.d.ts +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +7 -7
- package/lib/aws/cloudwatch/dashboard.d.ts +1 -1
- package/lib/aws/cloudwatch/dashboard.js +7 -7
- package/lib/aws/cloudwatch/data-protection-policy.d.ts +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +5 -5
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.d.ts +1 -1
- package/lib/aws/cloudwatch/log-group.js +7 -7
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.d.ts +1 -1
- package/lib/aws/cloudwatch/log-stream.js +3 -3
- package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +3 -3
- package/lib/aws/cloudwatch/metric.js +6 -6
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.d.ts +1 -1
- package/lib/aws/cloudwatch/policy.js +3 -3
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +1 -1
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +1 -1
- package/lib/aws/cloudwatch/private/env-tokens.js +6 -6
- package/lib/aws/cloudwatch/query-definition.d.ts +1 -1
- package/lib/aws/cloudwatch/query-definition.js +4 -4
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +6 -6
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/access-log.d.ts +1 -1
- package/lib/aws/compute/access-log.js +5 -5
- package/lib/aws/compute/activity.d.ts +1 -1
- package/lib/aws/compute/activity.js +5 -5
- package/lib/aws/compute/alb/application-listener-action.d.ts +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +5 -5
- package/lib/aws/compute/alb/application-listener-certificate.js +3 -3
- package/lib/aws/compute/alb/application-listener-rule.js +9 -9
- package/lib/aws/compute/alb/application-listener.js +5 -5
- package/lib/aws/compute/alb/application-load-balancer.js +8 -8
- package/lib/aws/compute/alb/application-target-group.js +7 -7
- package/lib/aws/compute/alb/conditions.js +3 -3
- package/lib/aws/compute/alb/trust-store-revocation.js +3 -3
- package/lib/aws/compute/alb/trust-store.js +7 -7
- package/lib/aws/compute/api-definition.js +9 -9
- package/lib/aws/compute/api-key.js +6 -6
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +6 -6
- package/lib/aws/compute/authorizer.js +1 -1
- package/lib/aws/compute/authorizers/identity-source.js +1 -1
- package/lib/aws/compute/authorizers/lambda.d.ts +1 -1
- package/lib/aws/compute/authorizers/lambda.js +6 -6
- package/lib/aws/compute/base-path-mapping.js +5 -5
- package/lib/aws/compute/base-scalable-attribute.js +1 -1
- package/lib/aws/compute/bastion-host.js +4 -4
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +3 -3
- package/lib/aws/compute/client-vpn-endpoint.d.ts +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +9 -9
- package/lib/aws/compute/client-vpn-route.d.ts +1 -1
- package/lib/aws/compute/client-vpn-route.js +4 -4
- package/lib/aws/compute/code.d.ts +3 -3
- package/lib/aws/compute/code.js +15 -15
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/cors.js +1 -1
- package/lib/aws/compute/deployment.js +5 -5
- package/lib/aws/compute/domain-name.js +5 -5
- package/lib/aws/compute/event-invoke-config.d.ts +1 -1
- package/lib/aws/compute/event-invoke-config.js +3 -3
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +7 -7
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +5 -5
- package/lib/aws/compute/fields.d.ts +1 -1
- package/lib/aws/compute/fields.js +12 -12
- package/lib/aws/compute/function-alias.d.ts +1 -1
- package/lib/aws/compute/function-alias.js +3 -3
- package/lib/aws/compute/function-base.d.ts +1 -1
- package/lib/aws/compute/function-base.js +10 -9
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs/bundling.js +6 -6
- package/lib/aws/compute/function-nodejs/function.js +4 -4
- package/lib/aws/compute/function-url.d.ts +1 -1
- package/lib/aws/compute/function-url.js +3 -3
- package/lib/aws/compute/function-vpc-config.generated.d.ts +5 -5
- package/lib/aws/compute/function-vpc-config.generated.js +1 -1
- package/lib/aws/compute/function.d.ts +2 -2
- package/lib/aws/compute/function.js +9 -9
- package/lib/aws/compute/gateway-response.d.ts +1 -1
- package/lib/aws/compute/gateway-response.js +4 -4
- package/lib/aws/compute/handler.js +1 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.d.ts +1 -1
- package/lib/aws/compute/instance.js +9 -9
- package/lib/aws/compute/integration.js +4 -4
- package/lib/aws/compute/integrations/aws.js +3 -3
- package/lib/aws/compute/integrations/http.js +1 -1
- package/lib/aws/compute/integrations/lambda.js +5 -5
- package/lib/aws/compute/integrations/mock.js +1 -1
- package/lib/aws/compute/integrations/stepfunctions.js +4 -4
- package/lib/aws/compute/ip-addresses.d.ts +1 -1
- package/lib/aws/compute/ip-addresses.js +10 -10
- package/lib/aws/compute/ipam.d.ts +1 -1
- package/lib/aws/compute/ipam.js +5 -5
- package/lib/aws/compute/key-pair.d.ts +1 -1
- package/lib/aws/compute/key-pair.js +6 -6
- package/lib/aws/compute/lambda-api.js +1 -1
- package/lib/aws/compute/launch-template.d.ts +1 -1
- package/lib/aws/compute/launch-template.js +12 -12
- package/lib/aws/compute/lb-shared/base-listener.js +9 -9
- package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +2 -2
- package/lib/aws/compute/lb-shared/base-load-balancer.js +12 -12
- package/lib/aws/compute/lb-shared/base-target-group.d.ts +1 -1
- package/lib/aws/compute/lb-shared/base-target-group.js +15 -15
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +34 -34
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +11 -6
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +1 -1
- package/lib/aws/compute/lb-shared/listener-action.d.ts +1 -1
- package/lib/aws/compute/lb-shared/listener-action.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-shared/util.js +5 -5
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.d.ts +1 -1
- package/lib/aws/compute/load-balancer.js +8 -8
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +10 -10
- package/lib/aws/compute/method.js +6 -6
- package/lib/aws/compute/model.js +5 -5
- package/lib/aws/compute/nat.js +10 -10
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.d.ts +1 -1
- package/lib/aws/compute/network-acl.js +5 -5
- package/lib/aws/compute/nlb/network-listener-action.d.ts +1 -1
- package/lib/aws/compute/nlb/network-listener-action.js +2 -2
- package/lib/aws/compute/nlb/network-listener-certificate.js +2 -2
- package/lib/aws/compute/nlb/network-listener.js +5 -5
- package/lib/aws/compute/nlb/network-load-balancer.js +6 -6
- package/lib/aws/compute/nlb/network-target-group.js +4 -4
- package/lib/aws/compute/peer.js +7 -7
- package/lib/aws/compute/placement-group.d.ts +1 -1
- package/lib/aws/compute/placement-group.js +3 -3
- package/lib/aws/compute/port.js +5 -5
- package/lib/aws/compute/prefix-list.d.ts +1 -1
- package/lib/aws/compute/prefix-list.js +5 -5
- package/lib/aws/compute/private/context-stub.js +7 -7
- package/lib/aws/compute/private/ebs-util.d.ts +1 -1
- package/lib/aws/compute/private/ebs-util.js +3 -3
- package/lib/aws/compute/private/json-path.d.ts +1 -1
- package/lib/aws/compute/private/json-path.js +8 -8
- package/lib/aws/compute/requestvalidator.js +3 -3
- package/lib/aws/compute/resource.js +5 -5
- package/lib/aws/compute/restapi.d.ts +1 -1
- package/lib/aws/compute/restapi.js +11 -11
- package/lib/aws/compute/route.d.ts +1 -1
- package/lib/aws/compute/route.js +12 -12
- package/lib/aws/compute/runtime.js +3 -3
- package/lib/aws/compute/scalable-target.d.ts +1 -1
- package/lib/aws/compute/scalable-target.js +3 -3
- package/lib/aws/compute/schedule.js +4 -4
- package/lib/aws/compute/security-group.js +12 -12
- package/lib/aws/compute/stage.d.ts +1 -1
- package/lib/aws/compute/stage.js +6 -6
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.d.ts +2 -2
- package/lib/aws/compute/state-machine.js +8 -8
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +5 -5
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +4 -4
- package/lib/aws/compute/states/fail.js +4 -4
- package/lib/aws/compute/states/map-base.js +4 -4
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +4 -4
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/step-scaling-action.js +5 -5
- package/lib/aws/compute/step-scaling-policy.js +7 -7
- package/lib/aws/compute/stepfunctions-api.js +2 -2
- package/lib/aws/compute/subnet-v2.d.ts +1 -1
- package/lib/aws/compute/subnet-v2.js +5 -5
- package/lib/aws/compute/subnet.js +4 -4
- package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +5 -5
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/usage-plan.js +5 -5
- package/lib/aws/compute/user-data.d.ts +2 -2
- package/lib/aws/compute/user-data.js +10 -10
- package/lib/aws/compute/volume.d.ts +1 -1
- package/lib/aws/compute/volume.js +7 -7
- package/lib/aws/compute/vpc-endpoint-service.js +3 -3
- package/lib/aws/compute/vpc-endpoint.d.ts +1 -1
- package/lib/aws/compute/vpc-endpoint.js +13 -13
- package/lib/aws/compute/vpc-flow-logs.d.ts +1 -1
- package/lib/aws/compute/vpc-flow-logs.js +8 -8
- package/lib/aws/compute/vpc-link.js +5 -5
- package/lib/aws/compute/vpc-v2-base.js +6 -6
- package/lib/aws/compute/vpc-v2.d.ts +2 -2
- package/lib/aws/compute/vpc-v2.js +4 -4
- package/lib/aws/compute/vpc.d.ts +1 -1
- package/lib/aws/compute/vpc.js +24 -22
- package/lib/aws/compute/vpn.js +8 -8
- package/lib/aws/context-provider.js +4 -4
- package/lib/aws/edge/certificate.d.ts +1 -1
- package/lib/aws/edge/certificate.js +6 -6
- package/lib/aws/edge/distribution.d.ts +1 -1
- package/lib/aws/edge/distribution.js +9 -9
- package/lib/aws/edge/dns-alias-record-targets.d.ts +1 -1
- package/lib/aws/edge/dns-alias-record-targets.js +7 -7
- package/lib/aws/edge/dns-record.d.ts +1 -1
- package/lib/aws/edge/dns-record.js +19 -19
- package/lib/aws/edge/dns-zone.d.ts +2 -2
- package/lib/aws/edge/dns-zone.js +5 -5
- package/lib/aws/edge/function.d.ts +1 -1
- package/lib/aws/edge/function.js +4 -4
- package/lib/aws/edge/key-value-store.d.ts +1 -1
- package/lib/aws/edge/key-value-store.js +6 -6
- package/lib/aws/edge/origin.d.ts +1 -1
- package/lib/aws/edge/origin.js +6 -6
- package/lib/aws/edge/response-headers-policy.d.ts +1 -1
- package/lib/aws/edge/response-headers-policy.js +6 -6
- package/lib/aws/encryption/alias.d.ts +1 -1
- package/lib/aws/encryption/alias.js +8 -8
- package/lib/aws/encryption/key.d.ts +1 -1
- package/lib/aws/encryption/key.js +6 -6
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +3 -3
- package/lib/aws/iam/group.js +5 -5
- package/lib/aws/iam/instance-profile.d.ts +1 -1
- package/lib/aws/iam/instance-profile.js +3 -3
- package/lib/aws/iam/managed-policy.d.ts +1 -1
- package/lib/aws/iam/managed-policy.js +3 -3
- package/lib/aws/iam/oidc-provider.d.ts +1 -1
- package/lib/aws/iam/oidc-provider.js +3 -3
- package/lib/aws/iam/policy-document-config.generated.d.ts +9 -9
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.d.ts +1 -1
- package/lib/aws/iam/policy-document.js +5 -5
- package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
- package/lib/aws/iam/policy-statement-props.generated.js +1 -1
- package/lib/aws/iam/policy-statement.d.ts +1 -1
- package/lib/aws/iam/policy-statement.js +8 -8
- package/lib/aws/iam/policy.js +3 -3
- package/lib/aws/iam/principals.js +25 -25
- package/lib/aws/iam/private/imported-role.js +3 -3
- package/lib/aws/iam/private/postprocess-policy-document.d.ts +1 -1
- package/lib/aws/iam/private/postprocess-policy-document.js +1 -1
- package/lib/aws/iam/private/util.d.ts +1 -1
- package/lib/aws/iam/private/util.js +5 -5
- package/lib/aws/iam/role.d.ts +1 -1
- package/lib/aws/iam/role.js +6 -6
- package/lib/aws/iam/saml-provider.d.ts +1 -1
- package/lib/aws/iam/saml-provider.js +6 -6
- package/lib/aws/iam/unknown-principal.js +4 -4
- package/lib/aws/iam/user.js +3 -3
- package/lib/aws/network/network.d.ts +1 -1
- package/lib/aws/network/network.js +1 -1
- package/lib/aws/network/simple-ipv4-vpc.js +12 -12
- package/lib/aws/network/subnet-group.d.ts +1 -1
- package/lib/aws/network/subnet-group.js +5 -5
- package/lib/aws/network/subnet.d.ts +1 -1
- package/lib/aws/network/subnet.js +6 -6
- package/lib/aws/notify/archive.d.ts +1 -1
- package/lib/aws/notify/archive.js +3 -3
- package/lib/aws/notify/connection.d.ts +1 -1
- package/lib/aws/notify/connection.js +5 -5
- package/lib/aws/notify/event-bus.d.ts +1 -1
- package/lib/aws/notify/event-bus.js +10 -10
- package/lib/aws/notify/event-pattern.d.ts +1 -1
- package/lib/aws/notify/event-pattern.js +5 -5
- package/lib/aws/notify/input.d.ts +1 -1
- package/lib/aws/notify/input.js +12 -12
- package/lib/aws/notify/kinesis-stream.d.ts +1 -1
- package/lib/aws/notify/kinesis-stream.js +7 -7
- package/lib/aws/notify/notification-rule.js +8 -8
- package/lib/aws/notify/policy.js +3 -3
- package/lib/aws/notify/queue-base.js +1 -1
- package/lib/aws/notify/queue-policy.js +3 -3
- package/lib/aws/notify/queue.d.ts +1 -1
- package/lib/aws/notify/queue.js +8 -8
- package/lib/aws/notify/resource-policy.js +3 -3
- package/lib/aws/notify/rule.d.ts +1 -1
- package/lib/aws/notify/rule.js +6 -6
- package/lib/aws/notify/schedule.js +4 -4
- package/lib/aws/notify/sns-grants.generated.js +1 -1
- package/lib/aws/notify/sqs-grants.generated.js +1 -1
- package/lib/aws/notify/subscription-filter.js +1 -1
- package/lib/aws/notify/subscription.js +6 -6
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +4 -4
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +4 -4
- package/lib/aws/notify/subscriptions/url.js +4 -4
- package/lib/aws/notify/target.d.ts +1 -1
- package/lib/aws/notify/target.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/targets/util.js +3 -3
- package/lib/aws/notify/topic-base.js +4 -4
- package/lib/aws/notify/topic.js +7 -7
- package/lib/aws/provider-config.generated.d.ts +42 -36
- package/lib/aws/provider-config.generated.js +1 -1
- package/lib/aws/region-lookup.js +4 -4
- package/lib/aws/storage/assets/image-asset.js +8 -8
- package/lib/aws/storage/assets/s3.js +1 -1
- package/lib/aws/storage/auth-token.js +2 -2
- package/lib/aws/storage/billing.js +1 -1
- package/lib/aws/storage/bucket-notifications.d.ts +1 -1
- package/lib/aws/storage/bucket-notifications.js +8 -8
- package/lib/aws/storage/bucket-policy.d.ts +1 -1
- package/lib/aws/storage/bucket-policy.js +3 -3
- package/lib/aws/storage/bucket-source.d.ts +1 -1
- package/lib/aws/storage/bucket-source.js +7 -7
- package/lib/aws/storage/bucket.d.ts +1 -1
- package/lib/aws/storage/bucket.js +8 -8
- package/lib/aws/storage/capacity.js +1 -1
- package/lib/aws/storage/cors-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-config.generated.js +1 -1
- package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-rule-config.generated.js +1 -1
- package/lib/aws/storage/ecr-repository.js +11 -11
- package/lib/aws/storage/encryption.d.ts +1 -1
- package/lib/aws/storage/encryption.js +5 -5
- package/lib/aws/storage/lifecycle-config.generated.d.ts +9 -9
- package/lib/aws/storage/lifecycle-config.generated.js +1 -1
- package/lib/aws/storage/notification-targets/function.js +2 -2
- package/lib/aws/storage/notification-targets/queue.js +4 -4
- package/lib/aws/storage/origin-access-identity.d.ts +2 -2
- package/lib/aws/storage/origin-access-identity.js +3 -3
- package/lib/aws/storage/parameter-util.js +5 -5
- package/lib/aws/storage/parameter.d.ts +2 -2
- package/lib/aws/storage/parameter.js +16 -16
- package/lib/aws/storage/stream-grants.js +1 -1
- package/lib/aws/storage/table-grants.js +1 -1
- package/lib/aws/storage/table.d.ts +1 -1
- package/lib/aws/storage/table.js +10 -10
- package/lib/aws/storage/website-config.generated.d.ts +8 -8
- package/lib/aws/storage/website-config.generated.js +1 -1
- package/lib/bundling.js +5 -5
- package/lib/construct-base.d.ts +1 -1
- package/lib/construct-base.js +10 -10
- package/lib/duration.js +9 -9
- package/lib/errors.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/fs/ignore.js +4 -4
- package/lib/fs/index.js +1 -1
- package/lib/private/terraform-dependables-aspect.d.ts +1 -1
- package/lib/private/terraform-dependables-aspect.js +6 -6
- package/lib/private/unique-resource-name.js +3 -3
- package/lib/size.js +6 -6
- package/lib/stack-base.d.ts +2 -2
- package/lib/stack-base.js +16 -16
- package/lib/terra-func.d.ts +1 -1
- package/lib/terra-func.js +18 -18
- package/lib/time-zone.js +1 -1
- package/lib/token.js +5 -5
- package/package.json +17 -17
- package/setup.js +2 -2
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.HttpMethod = exports.Connection = exports.HttpParameter = exports.Authorization = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
// https://github.com/aws/aws-cdk/blob/v2.156.0/packages/aws-cdk-lib/aws-events/lib/connection.ts
|
|
7
|
-
const provider_aws_1 = require("@
|
|
7
|
+
const provider_aws_1 = require("@cdktn/provider-aws");
|
|
8
8
|
const aws_construct_1 = require("../aws-construct");
|
|
9
9
|
const aws_stack_1 = require("../aws-stack");
|
|
10
10
|
/**
|
|
@@ -86,7 +86,7 @@ class Authorization {
|
|
|
86
86
|
}
|
|
87
87
|
exports.Authorization = Authorization;
|
|
88
88
|
_a = JSII_RTTI_SYMBOL_1;
|
|
89
|
-
Authorization[_a] = { fqn: "terraconstructs.aws.notify.Authorization", version: "0.2.
|
|
89
|
+
Authorization[_a] = { fqn: "terraconstructs.aws.notify.Authorization", version: "0.2.6" };
|
|
90
90
|
/**
|
|
91
91
|
* An additional HTTP parameter to send along with the OAuth request
|
|
92
92
|
*/
|
|
@@ -124,7 +124,7 @@ class HttpParameter {
|
|
|
124
124
|
}
|
|
125
125
|
exports.HttpParameter = HttpParameter;
|
|
126
126
|
_b = JSII_RTTI_SYMBOL_1;
|
|
127
|
-
HttpParameter[_b] = { fqn: "terraconstructs.aws.notify.HttpParameter", version: "0.2.
|
|
127
|
+
HttpParameter[_b] = { fqn: "terraconstructs.aws.notify.HttpParameter", version: "0.2.6" };
|
|
128
128
|
/**
|
|
129
129
|
* Define an EventBridge Connection
|
|
130
130
|
*
|
|
@@ -198,7 +198,7 @@ class Connection extends aws_construct_1.AwsConstructBase {
|
|
|
198
198
|
}
|
|
199
199
|
exports.Connection = Connection;
|
|
200
200
|
_c = JSII_RTTI_SYMBOL_1;
|
|
201
|
-
Connection[_c] = { fqn: "terraconstructs.aws.notify.Connection", version: "0.2.
|
|
201
|
+
Connection[_c] = { fqn: "terraconstructs.aws.notify.Connection", version: "0.2.6" };
|
|
202
202
|
class ImportedConnection extends aws_construct_1.AwsConstructBase {
|
|
203
203
|
get connectionOutputs() {
|
|
204
204
|
return {
|
|
@@ -259,4 +259,4 @@ function renderHttpParameters(ps) {
|
|
|
259
259
|
}
|
|
260
260
|
return Object.entries(ps).map(([name, p]) => p._render(name));
|
|
261
261
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2Nvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpR0FBaUc7QUFFakcsc0RBQWdFO0FBRWhFLG9EQUkwQjtBQUMxQiw0Q0FBd0M7QUFxRHhDOztHQUVHO0FBQ0gsTUFBc0IsYUFBYTtJQUNqQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBa0IsRUFBRSxXQUFtQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxLQUFNLFNBQVEsYUFBYTtZQUM5QixLQUFLO2dCQUNWLE1BQU0sY0FBYyxHQUNsQjtvQkFDRSxNQUFNLEVBQUU7d0JBQ04sR0FBRyxFQUFFLFVBQVU7d0JBQ2YsS0FBSyxFQUFFLFdBQVcsRUFBRSwyQkFBMkI7cUJBQ2hEO2lCQUNGLENBQUM7Z0JBQ0osT0FBTztvQkFDTCxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO29CQUM1QyxjQUFjO2lCQUNmLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBTSxTQUFRLGFBQWE7WUFDOUIsS0FBSztnQkFDVixNQUFNLGNBQWMsR0FDbEI7b0JBQ0UsS0FBSyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixRQUFRLEVBQUUsUUFBUSxFQUFFLDJCQUEyQjtxQkFDaEQ7aUJBQ0YsQ0FBQztnQkFDSixPQUFPO29CQUNMLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEtBQUs7b0JBQzFDLGNBQWM7aUJBQ2YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBOEI7UUFD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SyxDQUFDLG1CQUFtQixDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQWVYO0FBZkQsV0FBWSxVQUFVO0lBQ3BCLFdBQVc7SUFDWCwyQkFBYSxDQUFBO0lBQ2IsVUFBVTtJQUNWLHlCQUFXLENBQUE7SUFDWCxXQUFXO0lBQ1gsMkJBQWEsQ0FBQTtJQUNiLGNBQWM7SUFDZCxpQ0FBbUIsQ0FBQTtJQUNuQixVQUFVO0lBQ1YseUJBQVcsQ0FBQTtJQUNYLFlBQVk7SUFDWiw2QkFBZSxDQUFBO0lBQ2YsYUFBYTtJQUNiLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFmVyxVQUFVLDBCQUFWLFVBQVUsUUFlckI7QUFFRDs7R0FFRztBQUNILElBQUssaUJBT0o7QUFQRCxXQUFLLGlCQUFpQjtJQUNwQixjQUFjO0lBQ2Qsd0NBQW1CLENBQUE7SUFDbkIsWUFBWTtJQUNaLG9DQUFlLENBQUE7SUFDZiwrQkFBK0I7SUFDL0IsMEVBQXFELENBQUE7QUFDdkQsQ0FBQyxFQVBJLGlCQUFpQixLQUFqQixpQkFBaUIsUUFPckI7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixFQUFrQztJQUVsQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWV2ZW50cy9saWIvY29ubmVjdGlvbi50c1xuXG5pbXBvcnQgeyBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBJQXdzQ29uc3RydWN0LFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgQXdzQ29uc3RydWN0QmFzZSxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuXG4vKipcbiAqIEFuIEFQSSBEZXN0aW5hdGlvbiBDb25uZWN0aW9uXG4gKlxuICogQSBjb25uZWN0aW9uIGRlZmluZXMgdGhlIGF1dGhvcml6YXRpb24gdHlwZSBhbmQgY3JlZGVudGlhbHMgdG8gdXNlIGZvciBhdXRob3JpemF0aW9uIHdpdGggYW4gQVBJIGRlc3RpbmF0aW9uIEhUVFAgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNjQgY2hhcmFjdGVycyBjb25zaXN0aW5nIG9mIG51bWJlcnMsIGxvd2VyL3VwcGVyIGNhc2UgbGV0dGVycywgLiwtLF8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSBuYW1lIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNTEyIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHR5cGUgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbjogQXV0aG9yaXphdGlvbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIGludm9jYXRpb24gYm9kaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgaW52b2NhdGlvbiBoZWFkZXJzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJQYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgSHR0cFBhcmFtZXRlcj47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgc3RyaW5nIHBhcmFtZXRlcnMgdG8gYWRkIHRvIHRoZSBpbnZvY2F0aW9uIHF1ZXJ5IHN0cmluZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xufVxuXG4vKipcbiAqIEF1dGhvcml6YXRpb24gdHlwZSBmb3IgYW4gQVBJIERlc3RpbmF0aW9uIENvbm5lY3Rpb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhvcml6YXRpb24ge1xuICAvKipcbiAgICogVXNlIEFQSSBrZXkgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBBUEkga2V5IGF1dGhvcml6YXRpb24gaGFzIHR3byBjb21wb25lbnRzOiBhbiBBUEkga2V5IG5hbWUgYW5kIGFuIEFQSSBrZXkgdmFsdWUuXG4gICAqIFdoYXQgdGhlc2UgYXJlIGRlcGVuZHMgb24gdGhlIHRhcmdldCBvZiB5b3VyIGNvbm5lY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFwaUtleShhcGlLZXlOYW1lOiBzdHJpbmcsIGFwaUtleVZhbHVlOiBzdHJpbmcpOiBBdXRob3JpemF0aW9uIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBjb25zdCBhdXRoUGFyYW1ldGVyczogY2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbi5DbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uQXV0aFBhcmFtZXRlcnMgPVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFwaUtleToge1xuICAgICAgICAgICAgICBrZXk6IGFwaUtleU5hbWUsXG4gICAgICAgICAgICAgIHZhbHVlOiBhcGlLZXlWYWx1ZSwgLy8gVE9ETzogRmxhZyBhcyBzZW5zaXRpdmU/XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYXV0aG9yaXphdGlvblR5cGU6IEF1dGhvcml6YXRpb25UeXBlLkFQSV9LRVksXG4gICAgICAgICAgYXV0aFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGF1dGhvcml6YXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmFzaWModXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IEF1dGhvcml6YXRpb24ge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgQXV0aG9yaXphdGlvbiB7XG4gICAgICBwdWJsaWMgX2JpbmQoKSB7XG4gICAgICAgIGNvbnN0IGF1dGhQYXJhbWV0ZXJzOiBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uLkNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb25BdXRoUGFyYW1ldGVycyA9XG4gICAgICAgICAge1xuICAgICAgICAgICAgYmFzaWM6IHtcbiAgICAgICAgICAgICAgdXNlcm5hbWU6IHVzZXJuYW1lLFxuICAgICAgICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsIC8vIFRPRE86IEZsYWcgYXMgc2Vuc2l0aXZlP1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5CQVNJQyxcbiAgICAgICAgICBhdXRoUGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBPQXV0aCBhdXRob3JpemF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9hdXRoKHByb3BzOiBPQXV0aEF1dGhvcml6YXRpb25Qcm9wcyk6IEF1dGhvcml6YXRpb24ge1xuICAgIGlmIChcbiAgICAgICFbSHR0cE1ldGhvZC5QT1NULCBIdHRwTWV0aG9kLkdFVCwgSHR0cE1ldGhvZC5QVVRdLmluY2x1ZGVzKFxuICAgICAgICBwcm9wcy5odHRwTWV0aG9kLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaHR0cE1ldGhvZCBtdXN0IGJlIG9uZSBvZiBHRVQsIFBPU1QsIFBVVFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBjb25zdCBhdXRoUGFyYW1ldGVyczogY2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbi5DbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uQXV0aFBhcmFtZXRlcnMgPVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9hdXRoOiB7XG4gICAgICAgICAgICAgIGF1dGhvcml6YXRpb25FbmRwb2ludDogcHJvcHMuYXV0aG9yaXphdGlvbkVuZHBvaW50LFxuICAgICAgICAgICAgICBjbGllbnRQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgY2xpZW50SWQ6IHByb3BzLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudFNlY3JldDogcHJvcHMuY2xpZW50U2VjcmV0LCAvLyBUT0RPOiBGbGFnIGFzIHNlbnNpdGl2ZT9cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHR0cE1ldGhvZDogcHJvcHMuaHR0cE1ldGhvZCxcbiAgICAgICAgICAgICAgb2F1dGhIdHRwUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgIGJvZHk6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmJvZHlQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmhlYWRlclBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5PQVVUSF9DTElFTlRfQ1JFREVOVElBTFMsXG4gICAgICAgICAgYXV0aFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHRoZSBhdXRob3JpemF0aW9uIHRvIHRoZSBjb25zdHJ1Y3QgYW5kIHJldHVybiB0aGUgYXV0aG9yaXphdGlvbiBwcm9wZXJ0aWVzXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9iaW5kKCk6IEF1dGhvcml6YXRpb25CaW5kUmVzdWx0O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGBBdXRob3JpemF0aW9uLm9hdXRoKClgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhBdXRob3JpemF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbkVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gdXNlIGZvciB0aGUgYXV0aG9yaXphdGlvbiByZXF1ZXN0LlxuICAgKlxuICAgKiAoQ2FuIG9ubHkgY2hvb3NlIFBPU1QsIEdFVCBvciBQVVQpLlxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE1ldGhvZDogSHR0cE1ldGhvZDtcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBJRCB0byB1c2UgZm9yIE9BdXRoIGF1dGhvcml6YXRpb24gZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBzZWNyZXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQgSUQgdG8gdXNlIGZvciBPQXV0aCBhdXRob3JpemF0aW9uIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudFNlY3JldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBib2R5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBoZWFkZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlclBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIE9BdXRoIHJlcXVlc3QgcXVlcnkgc3RyaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcbn1cblxuLyoqXG4gKiBBbiBhZGRpdGlvbmFsIEhUVFAgcGFyYW1ldGVyIHRvIHNlbmQgYWxvbmcgd2l0aCB0aGUgT0F1dGggcmVxdWVzdFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFBhcmFtZXRlciB7XG4gIC8qKlxuICAgKiBNYWtlIGFuIE9BdXRoUGFyYW1ldGVyIGZyb20gYSBzdHJpbmcgdmFsdWVcbiAgICpcbiAgICogVGhlIHZhbHVlIGlzIG5vdCB0cmVhdGVkIGFzIGEgc2VjcmV0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBIdHRwUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEh0dHBQYXJhbWV0ZXIge1xuICAgICAgcHVibGljIF9yZW5kZXIobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5OiBuYW1lLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGlzVmFsdWVTZWNyZXQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBPQXV0aFBhcmFtZXRlciBmcm9tIGEgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWNyZXQodmFsdWU6IHN0cmluZyk6IEh0dHBQYXJhbWV0ZXIge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgSHR0cFBhcmFtZXRlciB7XG4gICAgICBwdWJsaWMgX3JlbmRlcihuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXk6IG5hbWUsXG4gICAgICAgICAgdmFsdWUsIC8vIFRPRE86IEZsYWcgYXMgc2VjcmV0XG4gICAgICAgICAgaXNWYWx1ZVNlY3JldDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgcGFyYW10ZXIgdmFsdWVcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX3JlbmRlcihuYW1lOiBzdHJpbmcpOiBhbnk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHRoZSAnYmluZCcgb3BlcmF0aW9uIG9mIHRoZSAnQXV0aG9yaXphdGlvbicgY2xhc3NcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uQmluZFJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYXV0aG9yaXphdGlvbiB0eXBlXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemF0aW9uVHlwZTogQXV0aG9yaXphdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHBhcmFtZXRlcnMgKGRlcGVuZHMgb24gdGhlIHR5cGUpXG4gICAqL1xuICByZWFkb25seSBhdXRoUGFyYW1ldGVyczogYW55O1xufVxuXG4vKipcbiAqIE91dHB1dHMgdG8gcmVnaXN0ZXIgd2l0aCB0aGUgR3JpZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgY29ubmVjdGlvbiByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0IGNyZWF0ZWQgZnJvbSB0aGUgYXV0aG9yaXphdGlvbiBwYXJhbWV0ZXJzIHNwZWNpZmllZCBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBFdmVudEJ1cyBDb25uZWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25uZWN0aW9uIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgTmFtZSBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIGZvciB0aGUgc2VjcmV0IGNyZWF0ZWQgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uU2VjcmV0QXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdpdGggcHJvcGVydGllcyBuZWNlc3NhcnkgdG8gaW1wb3J0IGEgcmV1c2FibGUgQ29ubmVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gRXZlbnRCcmlkZ2UgQ29ubmVjdGlvblxuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9jb25uZWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25Bcm4gQVJOIG9mIGltcG9ydGVkIGNvbm5lY3Rpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUV2ZW50QnVzQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb25uZWN0aW9uQXJuOiBzdHJpbmcsXG4gICAgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nLFxuICApOiBJQ29ubmVjdGlvbiB7XG4gICAgY29uc3QgcGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oY29ubmVjdGlvbkFybik7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkQ29ubmVjdGlvbihzY29wZSwgaWQsIHtcbiAgICAgIGNvbm5lY3Rpb25Bcm46IGNvbm5lY3Rpb25Bcm4sXG4gICAgICBjb25uZWN0aW9uTmFtZTogcGFydHMucmVzb3VyY2VOYW1lIHx8IFwiXCIsXG4gICAgICBjb25uZWN0aW9uU2VjcmV0QXJuOiBjb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGF0dHJzIEltcG9ydGVkIGNvbm5lY3Rpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbkF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBDb25uZWN0aW9uQXR0cmlidXRlcyxcbiAgKTogSUNvbm5lY3Rpb24ge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRDb25uZWN0aW9uKHNjb3BlLCBpZCwgYXR0cnMpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uLkNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb247XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25PdXRwdXRzOiBDb25uZWN0aW9uT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25PdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29ubmVjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIG9mIDY0IGNoYXJhY3RlcnMgY29uc2lzdGluZyBvZiBudW1iZXJzLCBsb3dlci91cHBlciBjYXNlIGxldHRlcnMsIC4sLSxfLlxuICAgICAqL1xuICAgIGNvbnN0IGNvbm5lY3Rpb25OYW1lID1cbiAgICAgIHByb3BzLmNvbm5lY3Rpb25OYW1lID8/XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIG1heExlbmd0aDogNjQsXG4gICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogXCIuLV9cIixcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aEJpbmQgPSBwcm9wcy5hdXRob3JpemF0aW9uLl9iaW5kKCk7XG5cbiAgICBjb25zdCBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6XG4gICAgICB8IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzSW52b2NhdGlvbkh0dHBQYXJhbWV0ZXJzXG4gICAgICB8IHVuZGVmaW5lZCA9XG4gICAgICAhIXByb3BzLmhlYWRlclBhcmFtZXRlcnMgfHxcbiAgICAgICEhcHJvcHMucXVlcnlTdHJpbmdQYXJhbWV0ZXJzIHx8XG4gICAgICAhIXByb3BzLmJvZHlQYXJhbWV0ZXJzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYm9keTogcmVuZGVySHR0cFBhcmFtZXRlcnMocHJvcHMuYm9keVBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgaGVhZGVyOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5oZWFkZXJQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBhdXRoQmluZC5hdXRob3JpemF0aW9uVHlwZSxcbiAgICAgICAgYXV0aFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAuLi5hdXRoQmluZC5hdXRoUGFyYW1ldGVycyxcbiAgICAgICAgICBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6IGludm9jYXRpb25IdHRwUGFyYW1ldGVycyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lOiBjb25uZWN0aW9uTmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSB0aGlzLnJlc291cmNlLm5hbWU7XG4gICAgdGhpcy5jb25uZWN0aW9uQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gICAgdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuID0gdGhpcy5yZXNvdXJjZS5zZWNyZXRBcm47XG4gICAgdGhpcy5jb25uZWN0aW9uT3V0cHV0cyA9IHtcbiAgICAgIG5hbWU6IHRoaXMuY29ubmVjdGlvbk5hbWUsXG4gICAgICBhcm46IHRoaXMuY29ubmVjdGlvbkFybixcbiAgICAgIHNlY3JldEFybjogdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25PdXRwdXRzKCk6IENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5jb25uZWN0aW9uTmFtZSxcbiAgICAgIGFybjogdGhpcy5jb25uZWN0aW9uQXJuLFxuICAgICAgc2VjcmV0QXJuOiB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk91dHB1dHM7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IENvbm5lY3Rpb25BdHRyaWJ1dGVzKSB7XG4gICAgY29uc3QgYXJuUGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oXG4gICAgICBhdHRycy5jb25uZWN0aW9uQXJuLFxuICAgICk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBhY2NvdW50OiBhcm5QYXJ0cy5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBhcm5QYXJ0cy5yZWdpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25Bcm4gPSBhdHRycy5jb25uZWN0aW9uQXJuO1xuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSBhdHRycy5jb25uZWN0aW9uTmFtZTtcbiAgICB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4gPSBhdHRycy5jb25uZWN0aW9uU2VjcmV0QXJuO1xuICB9XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIEhUVFAgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gSHR0cE1ldGhvZCB7XG4gIC8qKiBQT1NUICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqIEdFVCAqL1xuICBHRVQgPSBcIkdFVFwiLFxuICAvKiogSEVBRCAqL1xuICBIRUFEID0gXCJIRUFEXCIsXG4gIC8qKiBPUFRJT05TICovXG4gIE9QVElPTlMgPSBcIk9QVElPTlNcIixcbiAgLyoqIFBVVCAqL1xuICBQVVQgPSBcIlBVVFwiLFxuICAvKiogUEFUQ0ggKi9cbiAgUEFUQ0ggPSBcIlBBVENIXCIsXG4gIC8qKiBERUxFVEUgKi9cbiAgREVMRVRFID0gXCJERUxFVEVcIixcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgQXV0aG9yaXphdGlvbiBUeXBlcy5cbiAqL1xuZW51bSBBdXRob3JpemF0aW9uVHlwZSB7XG4gIC8qKiBBUElfS0VZICovXG4gIEFQSV9LRVkgPSBcIkFQSV9LRVlcIixcbiAgLyoqIEJBU0lDICovXG4gIEJBU0lDID0gXCJCQVNJQ1wiLFxuICAvKiogT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTICovXG4gIE9BVVRIX0NMSUVOVF9DUkVERU5USUFMUyA9IFwiT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTXCIsXG59XG5cbmZ1bmN0aW9uIHJlbmRlckh0dHBQYXJhbWV0ZXJzPFQ+KFxuICBwcz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+LFxuKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwcyB8fCBPYmplY3Qua2V5cyhwcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwcykubWFwKChbbmFtZSwgcF0pID0+IHAuX3JlbmRlcihuYW1lKSk7XG59XG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2Nvbm5lY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpR0FBaUc7QUFFakcsc0RBQWdFO0FBRWhFLG9EQUkwQjtBQUMxQiw0Q0FBd0M7QUFxRHhDOztHQUVHO0FBQ0gsTUFBc0IsYUFBYTtJQUNqQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBa0IsRUFBRSxXQUFtQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxLQUFNLFNBQVEsYUFBYTtZQUM5QixLQUFLO2dCQUNWLE1BQU0sY0FBYyxHQUNsQjtvQkFDRSxNQUFNLEVBQUU7d0JBQ04sR0FBRyxFQUFFLFVBQVU7d0JBQ2YsS0FBSyxFQUFFLFdBQVcsRUFBRSwyQkFBMkI7cUJBQ2hEO2lCQUNGLENBQUM7Z0JBQ0osT0FBTztvQkFDTCxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO29CQUM1QyxjQUFjO2lCQUNmLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxFQUFFLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBTSxTQUFRLGFBQWE7WUFDOUIsS0FBSztnQkFDVixNQUFNLGNBQWMsR0FDbEI7b0JBQ0UsS0FBSyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixRQUFRLEVBQUUsUUFBUSxFQUFFLDJCQUEyQjtxQkFDaEQ7aUJBQ0YsQ0FBQztnQkFDSixPQUFPO29CQUNMLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLEtBQUs7b0JBQzFDLGNBQWM7aUJBQ2YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLEVBQUUsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBOEI7UUFD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SyxDQUFDLG1CQUFtQixDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxVQWVYO0FBZkQsV0FBWSxVQUFVO0lBQ3BCLFdBQVc7SUFDWCwyQkFBYSxDQUFBO0lBQ2IsVUFBVTtJQUNWLHlCQUFXLENBQUE7SUFDWCxXQUFXO0lBQ1gsMkJBQWEsQ0FBQTtJQUNiLGNBQWM7SUFDZCxpQ0FBbUIsQ0FBQTtJQUNuQixVQUFVO0lBQ1YseUJBQVcsQ0FBQTtJQUNYLFlBQVk7SUFDWiw2QkFBZSxDQUFBO0lBQ2YsYUFBYTtJQUNiLCtCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFmVyxVQUFVLDBCQUFWLFVBQVUsUUFlckI7QUFFRDs7R0FFRztBQUNILElBQUssaUJBT0o7QUFQRCxXQUFLLGlCQUFpQjtJQUNwQixjQUFjO0lBQ2Qsd0NBQW1CLENBQUE7SUFDbkIsWUFBWTtJQUNaLG9DQUFlLENBQUE7SUFDZiwrQkFBK0I7SUFDL0IsMEVBQXFELENBQUE7QUFDdkQsQ0FBQyxFQVBJLGlCQUFpQixLQUFqQixpQkFBaUIsUUFPckI7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixFQUFrQztJQUVsQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWV2ZW50cy9saWIvY29ubmVjdGlvbi50c1xuXG5pbXBvcnQgeyBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uIH0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBJQXdzQ29uc3RydWN0LFxuICBBd3NDb25zdHJ1Y3RQcm9wcyxcbiAgQXdzQ29uc3RydWN0QmFzZSxcbn0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuXG4vKipcbiAqIEFuIEFQSSBEZXN0aW5hdGlvbiBDb25uZWN0aW9uXG4gKlxuICogQSBjb25uZWN0aW9uIGRlZmluZXMgdGhlIGF1dGhvcml6YXRpb24gdHlwZSBhbmQgY3JlZGVudGlhbHMgdG8gdXNlIGZvciBhdXRob3JpemF0aW9uIHdpdGggYW4gQVBJIGRlc3RpbmF0aW9uIEhUVFAgZW5kcG9pbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNjQgY2hhcmFjdGVycyBjb25zaXN0aW5nIG9mIG51bWJlcnMsIGxvd2VyL3VwcGVyIGNhc2UgbGV0dGVycywgLiwtLF8uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQSBuYW1lIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIE1heGltdW0gb2YgNTEyIGNoYXJhY3RlcnMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHR5cGUgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbjogQXV0aG9yaXphdGlvbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIGludm9jYXRpb24gYm9kaWVzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgaW52b2NhdGlvbiBoZWFkZXJzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBoZWFkZXJQYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgSHR0cFBhcmFtZXRlcj47XG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgc3RyaW5nIHBhcmFtZXRlcnMgdG8gYWRkIHRvIHRoZSBpbnZvY2F0aW9uIHF1ZXJ5IHN0cmluZ3NcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xufVxuXG4vKipcbiAqIEF1dGhvcml6YXRpb24gdHlwZSBmb3IgYW4gQVBJIERlc3RpbmF0aW9uIENvbm5lY3Rpb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dGhvcml6YXRpb24ge1xuICAvKipcbiAgICogVXNlIEFQSSBrZXkgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBBUEkga2V5IGF1dGhvcml6YXRpb24gaGFzIHR3byBjb21wb25lbnRzOiBhbiBBUEkga2V5IG5hbWUgYW5kIGFuIEFQSSBrZXkgdmFsdWUuXG4gICAqIFdoYXQgdGhlc2UgYXJlIGRlcGVuZHMgb24gdGhlIHRhcmdldCBvZiB5b3VyIGNvbm5lY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFwaUtleShhcGlLZXlOYW1lOiBzdHJpbmcsIGFwaUtleVZhbHVlOiBzdHJpbmcpOiBBdXRob3JpemF0aW9uIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBjb25zdCBhdXRoUGFyYW1ldGVyczogY2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbi5DbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uQXV0aFBhcmFtZXRlcnMgPVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFwaUtleToge1xuICAgICAgICAgICAgICBrZXk6IGFwaUtleU5hbWUsXG4gICAgICAgICAgICAgIHZhbHVlOiBhcGlLZXlWYWx1ZSwgLy8gVE9ETzogRmxhZyBhcyBzZW5zaXRpdmU/XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYXV0aG9yaXphdGlvblR5cGU6IEF1dGhvcml6YXRpb25UeXBlLkFQSV9LRVksXG4gICAgICAgICAgYXV0aFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGF1dGhvcml6YXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYmFzaWModXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IEF1dGhvcml6YXRpb24ge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgQXV0aG9yaXphdGlvbiB7XG4gICAgICBwdWJsaWMgX2JpbmQoKSB7XG4gICAgICAgIGNvbnN0IGF1dGhQYXJhbWV0ZXJzOiBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uLkNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb25BdXRoUGFyYW1ldGVycyA9XG4gICAgICAgICAge1xuICAgICAgICAgICAgYmFzaWM6IHtcbiAgICAgICAgICAgICAgdXNlcm5hbWU6IHVzZXJuYW1lLFxuICAgICAgICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsIC8vIFRPRE86IEZsYWcgYXMgc2Vuc2l0aXZlP1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5CQVNJQyxcbiAgICAgICAgICBhdXRoUGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBPQXV0aCBhdXRob3JpemF0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9hdXRoKHByb3BzOiBPQXV0aEF1dGhvcml6YXRpb25Qcm9wcyk6IEF1dGhvcml6YXRpb24ge1xuICAgIGlmIChcbiAgICAgICFbSHR0cE1ldGhvZC5QT1NULCBIdHRwTWV0aG9kLkdFVCwgSHR0cE1ldGhvZC5QVVRdLmluY2x1ZGVzKFxuICAgICAgICBwcm9wcy5odHRwTWV0aG9kLFxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaHR0cE1ldGhvZCBtdXN0IGJlIG9uZSBvZiBHRVQsIFBPU1QsIFBVVFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEF1dGhvcml6YXRpb24ge1xuICAgICAgcHVibGljIF9iaW5kKCkge1xuICAgICAgICBjb25zdCBhdXRoUGFyYW1ldGVyczogY2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbi5DbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uQXV0aFBhcmFtZXRlcnMgPVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9hdXRoOiB7XG4gICAgICAgICAgICAgIGF1dGhvcml6YXRpb25FbmRwb2ludDogcHJvcHMuYXV0aG9yaXphdGlvbkVuZHBvaW50LFxuICAgICAgICAgICAgICBjbGllbnRQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgY2xpZW50SWQ6IHByb3BzLmNsaWVudElkLFxuICAgICAgICAgICAgICAgIGNsaWVudFNlY3JldDogcHJvcHMuY2xpZW50U2VjcmV0LCAvLyBUT0RPOiBGbGFnIGFzIHNlbnNpdGl2ZT9cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHR0cE1ldGhvZDogcHJvcHMuaHR0cE1ldGhvZCxcbiAgICAgICAgICAgICAgb2F1dGhIdHRwUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICAgIGJvZHk6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmJvZHlQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHJlbmRlckh0dHBQYXJhbWV0ZXJzKHByb3BzLmhlYWRlclBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBBdXRob3JpemF0aW9uVHlwZS5PQVVUSF9DTElFTlRfQ1JFREVOVElBTFMsXG4gICAgICAgICAgYXV0aFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCaW5kIHRoZSBhdXRob3JpemF0aW9uIHRvIHRoZSBjb25zdHJ1Y3QgYW5kIHJldHVybiB0aGUgYXV0aG9yaXphdGlvbiBwcm9wZXJ0aWVzXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IF9iaW5kKCk6IEF1dGhvcml6YXRpb25CaW5kUmVzdWx0O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGBBdXRob3JpemF0aW9uLm9hdXRoKClgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhBdXRob3JpemF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIFVSTCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludFxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXphdGlvbkVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRob2QgdG8gdXNlIGZvciB0aGUgYXV0aG9yaXphdGlvbiByZXF1ZXN0LlxuICAgKlxuICAgKiAoQ2FuIG9ubHkgY2hvb3NlIFBPU1QsIEdFVCBvciBQVVQpLlxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cE1ldGhvZDogSHR0cE1ldGhvZDtcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBJRCB0byB1c2UgZm9yIE9BdXRoIGF1dGhvcml6YXRpb24gZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xpZW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNsaWVudCBzZWNyZXQgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGllbnQgSUQgdG8gdXNlIGZvciBPQXV0aCBhdXRob3JpemF0aW9uIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudFNlY3JldDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBib2R5XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBib2R5UGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+O1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIHN0cmluZyBwYXJhbWV0ZXJzIHRvIGFkZCB0byB0aGUgT0F1dGggcmVxdWVzdCBoZWFkZXJcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHJlYWRvbmx5IGhlYWRlclBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBzdHJpbmcgcGFyYW1ldGVycyB0byBhZGQgdG8gdGhlIE9BdXRoIHJlcXVlc3QgcXVlcnkgc3RyaW5nXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gYWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBxdWVyeVN0cmluZ1BhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBIdHRwUGFyYW1ldGVyPjtcbn1cblxuLyoqXG4gKiBBbiBhZGRpdGlvbmFsIEhUVFAgcGFyYW1ldGVyIHRvIHNlbmQgYWxvbmcgd2l0aCB0aGUgT0F1dGggcmVxdWVzdFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cFBhcmFtZXRlciB7XG4gIC8qKlxuICAgKiBNYWtlIGFuIE9BdXRoUGFyYW1ldGVyIGZyb20gYSBzdHJpbmcgdmFsdWVcbiAgICpcbiAgICogVGhlIHZhbHVlIGlzIG5vdCB0cmVhdGVkIGFzIGEgc2VjcmV0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBIdHRwUGFyYW1ldGVyIHtcbiAgICByZXR1cm4gbmV3IChjbGFzcyBleHRlbmRzIEh0dHBQYXJhbWV0ZXIge1xuICAgICAgcHVibGljIF9yZW5kZXIobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5OiBuYW1lLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGlzVmFsdWVTZWNyZXQ6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0pKCk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhbiBPQXV0aFBhcmFtZXRlciBmcm9tIGEgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21TZWNyZXQodmFsdWU6IHN0cmluZyk6IEh0dHBQYXJhbWV0ZXIge1xuICAgIHJldHVybiBuZXcgKGNsYXNzIGV4dGVuZHMgSHR0cFBhcmFtZXRlciB7XG4gICAgICBwdWJsaWMgX3JlbmRlcihuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXk6IG5hbWUsXG4gICAgICAgICAgdmFsdWUsIC8vIFRPRE86IEZsYWcgYXMgc2VjcmV0XG4gICAgICAgICAgaXNWYWx1ZVNlY3JldDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgcGFyYW10ZXIgdmFsdWVcbiAgICpcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX3JlbmRlcihuYW1lOiBzdHJpbmcpOiBhbnk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHRoZSAnYmluZCcgb3BlcmF0aW9uIG9mIHRoZSAnQXV0aG9yaXphdGlvbicgY2xhc3NcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRob3JpemF0aW9uQmluZFJlc3VsdCB7XG4gIC8qKlxuICAgKiBUaGUgYXV0aG9yaXphdGlvbiB0eXBlXG4gICAqL1xuICByZWFkb25seSBhdXRob3JpemF0aW9uVHlwZTogQXV0aG9yaXphdGlvblR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhdXRob3JpemF0aW9uIHBhcmFtZXRlcnMgKGRlcGVuZHMgb24gdGhlIHR5cGUpXG4gICAqL1xuICByZWFkb25seSBhdXRoUGFyYW1ldGVyczogYW55O1xufVxuXG4vKipcbiAqIE91dHB1dHMgdG8gcmVnaXN0ZXIgd2l0aCB0aGUgR3JpZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25uZWN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgY29ubmVjdGlvbiByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0IGNyZWF0ZWQgZnJvbSB0aGUgYXV0aG9yaXphdGlvbiBwYXJhbWV0ZXJzIHNwZWNpZmllZCBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRBcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBFdmVudEJ1cyBDb25uZWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElDb25uZWN0aW9uIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgTmFtZSBmb3IgdGhlIGNvbm5lY3Rpb24uXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY29ubmVjdGlvbkFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIGZvciB0aGUgc2VjcmV0IGNyZWF0ZWQgZm9yIHRoZSBjb25uZWN0aW9uLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uU2VjcmV0QXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdpdGggcHJvcGVydGllcyBuZWNlc3NhcnkgdG8gaW1wb3J0IGEgcmV1c2FibGUgQ29ubmVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25BdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gRXZlbnRCcmlkZ2UgQ29ubmVjdGlvblxuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9jb25uZWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElDb25uZWN0aW9uIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25Bcm4gQVJOIG9mIGltcG9ydGVkIGNvbm5lY3Rpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUV2ZW50QnVzQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb25uZWN0aW9uQXJuOiBzdHJpbmcsXG4gICAgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nLFxuICApOiBJQ29ubmVjdGlvbiB7XG4gICAgY29uc3QgcGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oY29ubmVjdGlvbkFybik7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkQ29ubmVjdGlvbihzY29wZSwgaWQsIHtcbiAgICAgIGNvbm5lY3Rpb25Bcm46IGNvbm5lY3Rpb25Bcm4sXG4gICAgICBjb25uZWN0aW9uTmFtZTogcGFydHMucmVzb3VyY2VOYW1lIHx8IFwiXCIsXG4gICAgICBjb25uZWN0aW9uU2VjcmV0QXJuOiBjb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBjb25uZWN0aW9uIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGF0dHJzIEltcG9ydGVkIGNvbm5lY3Rpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29ubmVjdGlvbkF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBDb25uZWN0aW9uQXR0cmlidXRlcyxcbiAgKTogSUNvbm5lY3Rpb24ge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRDb25uZWN0aW9uKHNjb3BlLCBpZCwgYXR0cnMpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoRXZlbnRDb25uZWN0aW9uLkNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb247XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25PdXRwdXRzOiBDb25uZWN0aW9uT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rpb25PdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBOYW1lIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGNvbm5lY3Rpb24gY3JlYXRlZC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25Bcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBmb3IgdGhlIHNlY3JldCBjcmVhdGVkIGZvciB0aGUgY29ubmVjdGlvbi5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25TZWNyZXRBcm46IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29ubmVjdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIG9mIDY0IGNoYXJhY3RlcnMgY29uc2lzdGluZyBvZiBudW1iZXJzLCBsb3dlci91cHBlciBjYXNlIGxldHRlcnMsIC4sLSxfLlxuICAgICAqL1xuICAgIGNvbnN0IGNvbm5lY3Rpb25OYW1lID1cbiAgICAgIHByb3BzLmNvbm5lY3Rpb25OYW1lID8/XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIG1heExlbmd0aDogNjQsXG4gICAgICAgIGFsbG93ZWRTcGVjaWFsQ2hhcmFjdGVyczogXCIuLV9cIixcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aEJpbmQgPSBwcm9wcy5hdXRob3JpemF0aW9uLl9iaW5kKCk7XG5cbiAgICBjb25zdCBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6XG4gICAgICB8IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbkF1dGhQYXJhbWV0ZXJzSW52b2NhdGlvbkh0dHBQYXJhbWV0ZXJzXG4gICAgICB8IHVuZGVmaW5lZCA9XG4gICAgICAhIXByb3BzLmhlYWRlclBhcmFtZXRlcnMgfHxcbiAgICAgICEhcHJvcHMucXVlcnlTdHJpbmdQYXJhbWV0ZXJzIHx8XG4gICAgICAhIXByb3BzLmJvZHlQYXJhbWV0ZXJzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgYm9keTogcmVuZGVySHR0cFBhcmFtZXRlcnMocHJvcHMuYm9keVBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgaGVhZGVyOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5oZWFkZXJQYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgIHF1ZXJ5U3RyaW5nOiByZW5kZXJIdHRwUGFyYW1ldGVycyhwcm9wcy5xdWVyeVN0cmluZ1BhcmFtZXRlcnMpLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hFdmVudENvbm5lY3Rpb24uQ2xvdWR3YXRjaEV2ZW50Q29ubmVjdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGF1dGhvcml6YXRpb25UeXBlOiBhdXRoQmluZC5hdXRob3JpemF0aW9uVHlwZSxcbiAgICAgICAgYXV0aFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAuLi5hdXRoQmluZC5hdXRoUGFyYW1ldGVycyxcbiAgICAgICAgICBpbnZvY2F0aW9uSHR0cFBhcmFtZXRlcnM6IGludm9jYXRpb25IdHRwUGFyYW1ldGVycyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBuYW1lOiBjb25uZWN0aW9uTmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSB0aGlzLnJlc291cmNlLm5hbWU7XG4gICAgdGhpcy5jb25uZWN0aW9uQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gICAgdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuID0gdGhpcy5yZXNvdXJjZS5zZWNyZXRBcm47XG4gICAgdGhpcy5jb25uZWN0aW9uT3V0cHV0cyA9IHtcbiAgICAgIG5hbWU6IHRoaXMuY29ubmVjdGlvbk5hbWUsXG4gICAgICBhcm46IHRoaXMuY29ubmVjdGlvbkFybixcbiAgICAgIHNlY3JldEFybjogdGhpcy5jb25uZWN0aW9uU2VjcmV0QXJuLFxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgSW1wb3J0ZWRDb25uZWN0aW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvblNlY3JldEFybjogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25PdXRwdXRzKCk6IENvbm5lY3Rpb25PdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5jb25uZWN0aW9uTmFtZSxcbiAgICAgIGFybjogdGhpcy5jb25uZWN0aW9uQXJuLFxuICAgICAgc2VjcmV0QXJuOiB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGlvbk91dHB1dHM7XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IENvbm5lY3Rpb25BdHRyaWJ1dGVzKSB7XG4gICAgY29uc3QgYXJuUGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkucGFyc2VBcm4oXG4gICAgICBhdHRycy5jb25uZWN0aW9uQXJuLFxuICAgICk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBhY2NvdW50OiBhcm5QYXJ0cy5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBhcm5QYXJ0cy5yZWdpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25Bcm4gPSBhdHRycy5jb25uZWN0aW9uQXJuO1xuICAgIHRoaXMuY29ubmVjdGlvbk5hbWUgPSBhdHRycy5jb25uZWN0aW9uTmFtZTtcbiAgICB0aGlzLmNvbm5lY3Rpb25TZWNyZXRBcm4gPSBhdHRycy5jb25uZWN0aW9uU2VjcmV0QXJuO1xuICB9XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIEhUVFAgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGVudW0gSHR0cE1ldGhvZCB7XG4gIC8qKiBQT1NUICovXG4gIFBPU1QgPSBcIlBPU1RcIixcbiAgLyoqIEdFVCAqL1xuICBHRVQgPSBcIkdFVFwiLFxuICAvKiogSEVBRCAqL1xuICBIRUFEID0gXCJIRUFEXCIsXG4gIC8qKiBPUFRJT05TICovXG4gIE9QVElPTlMgPSBcIk9QVElPTlNcIixcbiAgLyoqIFBVVCAqL1xuICBQVVQgPSBcIlBVVFwiLFxuICAvKiogUEFUQ0ggKi9cbiAgUEFUQ0ggPSBcIlBBVENIXCIsXG4gIC8qKiBERUxFVEUgKi9cbiAgREVMRVRFID0gXCJERUxFVEVcIixcbn1cblxuLyoqXG4gKiBTdXBwb3J0ZWQgQXV0aG9yaXphdGlvbiBUeXBlcy5cbiAqL1xuZW51bSBBdXRob3JpemF0aW9uVHlwZSB7XG4gIC8qKiBBUElfS0VZICovXG4gIEFQSV9LRVkgPSBcIkFQSV9LRVlcIixcbiAgLyoqIEJBU0lDICovXG4gIEJBU0lDID0gXCJCQVNJQ1wiLFxuICAvKiogT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTICovXG4gIE9BVVRIX0NMSUVOVF9DUkVERU5USUFMUyA9IFwiT0FVVEhfQ0xJRU5UX0NSRURFTlRJQUxTXCIsXG59XG5cbmZ1bmN0aW9uIHJlbmRlckh0dHBQYXJhbWV0ZXJzPFQ+KFxuICBwcz86IFJlY29yZDxzdHJpbmcsIEh0dHBQYXJhbWV0ZXI+LFxuKTogVFtdIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwcyB8fCBPYmplY3Qua2V5cyhwcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhwcykubWFwKChbbmFtZSwgcF0pID0+IHAuX3JlbmRlcihuYW1lKSk7XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cloudwatchEventBus, cloudwatchEventPermission } from "@
|
|
1
|
+
import { cloudwatchEventBus, cloudwatchEventPermission } from "@cdktn/provider-aws";
|
|
2
2
|
import { Construct } from "constructs";
|
|
3
3
|
import { AwsConstructBase, AwsConstructProps } from "../aws-construct";
|
|
4
4
|
import { Archive, BaseArchiveProps } from "./archive";
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.EventBridgePermission = exports.EventBusPolicy = exports.EventBus = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
// https://github.com/aws/aws-cdk/blob/v2.156.0/packages/aws-cdk-lib/aws-events/lib/event-bus.ts
|
|
7
|
-
const provider_aws_1 = require("@
|
|
8
|
-
const
|
|
7
|
+
const provider_aws_1 = require("@cdktn/provider-aws");
|
|
8
|
+
const cdktn_1 = require("cdktn");
|
|
9
9
|
const errors_1 = require("../../errors");
|
|
10
10
|
const arn_1 = require("../arn");
|
|
11
11
|
const aws_construct_1 = require("../aws-construct");
|
|
@@ -111,7 +111,7 @@ class EventBus extends EventBusBase {
|
|
|
111
111
|
throw new errors_1.UnscopedValidationError("'eventBusName' and 'eventSourceName' cannot both be provided");
|
|
112
112
|
}
|
|
113
113
|
if (eventBusName !== undefined) {
|
|
114
|
-
if (!
|
|
114
|
+
if (!cdktn_1.Token.isUnresolved(eventBusName)) {
|
|
115
115
|
if (eventBusName === "default") {
|
|
116
116
|
throw new errors_1.UnscopedValidationError("'eventBusName' must not be 'default'");
|
|
117
117
|
}
|
|
@@ -125,7 +125,7 @@ class EventBus extends EventBusBase {
|
|
|
125
125
|
return { eventBusName };
|
|
126
126
|
}
|
|
127
127
|
if (eventSourceName !== undefined) {
|
|
128
|
-
if (!
|
|
128
|
+
if (!cdktn_1.Token.isUnresolved(eventSourceName)) {
|
|
129
129
|
// Ex: aws.partner/PartnerName/acct1/repo1
|
|
130
130
|
const eventSourceNameRegex = /^aws\.partner(\/[\.\-_A-Za-z0-9]+){2,}$/;
|
|
131
131
|
if (!eventSourceNameRegex.test(eventSourceName)) {
|
|
@@ -158,10 +158,10 @@ class EventBus extends EventBusBase {
|
|
|
158
158
|
constructor(scope, id, props) {
|
|
159
159
|
const { eventBusName, eventSourceName } = EventBus.eventBusProps(
|
|
160
160
|
// TODO(vincent): Figure out how this works...
|
|
161
|
-
|
|
161
|
+
cdktn_1.Lazy.stringValue({ produce: () => aws_stack_1.AwsStack.uniqueId(this) }), props);
|
|
162
162
|
super(scope, id, props);
|
|
163
163
|
if (props?.description &&
|
|
164
|
-
!
|
|
164
|
+
!cdktn_1.Token.isUnresolved(props.description) &&
|
|
165
165
|
props.description.length > 512) {
|
|
166
166
|
throw new errors_1.ValidationError(`description must be less than or equal to 512 characters, got ${props.description.length}`, this);
|
|
167
167
|
}
|
|
@@ -240,7 +240,7 @@ class EventBus extends EventBusBase {
|
|
|
240
240
|
}
|
|
241
241
|
exports.EventBus = EventBus;
|
|
242
242
|
_a = JSII_RTTI_SYMBOL_1;
|
|
243
|
-
EventBus[_a] = { fqn: "terraconstructs.aws.notify.EventBus", version: "0.2.
|
|
243
|
+
EventBus[_a] = { fqn: "terraconstructs.aws.notify.EventBus", version: "0.2.6" };
|
|
244
244
|
class ImportedEventBus extends EventBusBase {
|
|
245
245
|
get outputs() {
|
|
246
246
|
return this.eventBusOutputs;
|
|
@@ -303,7 +303,7 @@ class EventBusPolicy extends aws_construct_1.AwsConstructBase {
|
|
|
303
303
|
}
|
|
304
304
|
exports.EventBusPolicy = EventBusPolicy;
|
|
305
305
|
_b = JSII_RTTI_SYMBOL_1;
|
|
306
|
-
EventBusPolicy[_b] = { fqn: "terraconstructs.aws.notify.EventBusPolicy", version: "0.2.
|
|
306
|
+
EventBusPolicy[_b] = { fqn: "terraconstructs.aws.notify.EventBusPolicy", version: "0.2.6" };
|
|
307
307
|
/**
|
|
308
308
|
* A single permission for an Event Bus
|
|
309
309
|
*
|
|
@@ -333,5 +333,5 @@ class EventBridgePermission extends aws_construct_1.AwsConstructBase {
|
|
|
333
333
|
}
|
|
334
334
|
exports.EventBridgePermission = EventBridgePermission;
|
|
335
335
|
_c = JSII_RTTI_SYMBOL_1;
|
|
336
|
-
EventBridgePermission[_c] = { fqn: "terraconstructs.aws.notify.EventBridgePermission", version: "0.2.
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvZXZlbnQtYnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0dBQWdHO0FBRWhHLHNEQUk2QjtBQUM3QixpQ0FBb0M7QUFFcEMseUNBQXdFO0FBQ3hFLGdDQUFtQztBQUNuQyxvREFBdUU7QUFDdkUsNENBQXdDO0FBQ3hDLHVDQUFzRDtBQUV0RCw4QkFBOEI7QUFtSjlCLE1BQWUsWUFBYSxTQUFRLGdDQUFnQjtJQWlCM0MsT0FBTyxDQUFDLEVBQVUsRUFBRSxLQUF1QjtRQUNoRCxPQUFPLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQzNCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFdBQVcsRUFDVCxLQUFLLENBQUMsV0FBVyxJQUFJLHFCQUFxQixJQUFJLENBQUMsWUFBWSxZQUFZO1lBQ3pFLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxPQUF1QjtRQUM3QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUM3QixZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FLRjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxZQUFZO0lBQ3hDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FDM0IsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFdBQW1CO1FBRW5CLE1BQU0sS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFD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QUFVLEVBQUU7WUFDeEUsdUZBQXVGO1lBQ3ZGLEdBQUcsS0FBSztZQUNSLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFaSCxzREFhQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LWJ1cy50c1xuXG5pbXBvcnQge1xuICBjbG91ZHdhdGNoRXZlbnRCdXMsXG4gIGNsb3Vkd2F0Y2hFdmVudEJ1c1BvbGljeSxcbiAgY2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbixcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenksIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCB7IEFybkZvcm1hdCB9IGZyb20gXCIuLi9hcm5cIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0IHsgQXJjaGl2ZSwgQmFzZUFyY2hpdmVQcm9wcyB9IGZyb20gXCIuL2FyY2hpdmVcIjtcbmltcG9ydCAqIGFzIGVuY3J5cHRpb24gZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgeyBJUXVldWUgfSBmcm9tIFwiLi9xdWV1ZS1iYXNlXCI7XG5cbi8qKlxuICogT3V0cHV0cyB0byByZWdpc3RlciB3aXRoIHRoZSBHcmlkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCdXNPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnRuZXIgZXZlbnQgc291cmNlIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdoaWNoIGFsbCBFdmVudEJ1cyBiYXNlZCBjbGFzc2VzIE1VU1QgaW1wbGVtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50QnVzIGV4dGVuZHMgaWFtLklBd3NDb25zdHJ1Y3RXaXRoUG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI0Fybi1mbjo6Z2V0YXR0XG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZXZlbnRzb3VyY2VuYW1lXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBFdmVudEJyaWRnZSBhcmNoaXZlIHRvIHNlbmQgZXZlbnRzIHRvLlxuICAgKiBXaGVuIHlvdSBjcmVhdGUgYW4gYXJjaGl2ZSwgaW5jb21pbmcgZXZlbnRzIG1pZ2h0IG5vdCBpbW1lZGlhdGVseSBzdGFydCBiZWluZyBzZW50IHRvIHRoZSBhcmNoaXZlLlxuICAgKiBBbGxvdyBhIHNob3J0IHBlcmlvZCBvZiB0aW1lIGZvciBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgUHJvcGVydGllcyBvZiB0aGUgYXJjaGl2ZVxuICAgKi9cbiAgYXJjaGl2ZShpZDogc3RyaW5nLCBwcm9wczogQmFzZUFyY2hpdmVQcm9wcyk6IEFyY2hpdmU7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBhbiBJQU0gUHJpbmNpcGFsIHRvIHNlbmQgY3VzdG9tIGV2ZW50cyB0byB0aGUgZXZlbnRCdXNcbiAgICogc28gdGhhdCB0aGV5IGNhbiBiZSBtYXRjaGVkIHRvIHJ1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIChuby1vcCBpZiB1bmRlZmluZWQpXG4gICAqL1xuICBncmFudFB1dEV2ZW50c1RvKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIGFuIGV2ZW50IGJ1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnVzUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgYnVzIHlvdSBhcmUgY3JlYXRpbmdcbiAgICogTm90ZTogSWYgJ2V2ZW50U291cmNlTmFtZScgaXMgcGFzc2VkIGluLCB5b3UgY2Fubm90IHNldCB0aGlzXG4gICAqXG4gICAqIE5PVEU6IHRoZSBuYW1lcyBvZiBjdXN0b20gZXZlbnQgYnVzZXMgY2FuJ3QgY29udGFpbiB0aGUgJy8nIGNoYXJhY3RlclxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1uYW1lXG4gICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICogTm90ZTogSWYgJ2V2ZW50QnVzTmFtZScgaXMgcGFzc2VkIGluLCB5b3UgY2Fubm90IHNldCB0aGlzXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLWV2ZW50c291cmNlbmFtZVxuICAgKiBAZGVmYXVsdCAtIG5vIHBhcnRuZXIgZXZlbnQgc291cmNlXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlYWQtbGV0dGVyIHF1ZXVlIGZvciB0aGUgZXZlbnQgYnVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvZWItcnVsZS1ldmVudC1kZWxpdmVyeS5odG1sI2ViLXJ1bGUtZGxxXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVhZC1sZXR0ZXIgcXVldWVcbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZT86IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IGJ1cyBkZXNjcmlwdGlvbi5cbiAgICpcbiAgICogVGhlIGRlc2NyaXB0aW9uIGNhbiBiZSB1cCB0byA1MTIgY2hhcmFjdGVycyBsb25nLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZGVzY3JpcHRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0IGVuY3J5cHQgZXZlbnRzIG9uIHRoaXMgZXZlbnQgYnVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZSBhbiBBV1MgbWFuYWdlZCBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGVuY3J5cHRpb24uSUtleTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2Ugd2l0aCBwcm9wZXJ0aWVzIG5lY2Vzc2FyeSB0byBpbXBvcnQgYSByZXVzYWJsZSBFdmVudEJ1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnVzQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI0Fybi1mbjo6Z2V0YXR0XG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZXZlbnRzb3VyY2VuYW1lXG4gICAqIEBkZWZhdWx0IC0gbm8gcGFydG5lciBldmVudCBzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgRXZlbnRCdXNCYXNlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElFdmVudEJ1cyB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBldmVudEJ1c05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZXZlbnQgYnVzLCBzdWNoIGFzOlxuICAgKiBhcm46YXdzOmV2ZW50czp1cy1lYXN0LTI6MTIzNDU2Nzg5MDEyOmV2ZW50LWJ1cy9hd3MucGFydG5lci9QYXJ0bmVyTmFtZS9hY2N0MS9yZXBvMS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFydG5lciBldmVudCBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgcHVibGljIGFyY2hpdmUoaWQ6IHN0cmluZywgcHJvcHM6IEJhc2VBcmNoaXZlUHJvcHMpOiBBcmNoaXZlIHtcbiAgICByZXR1cm4gbmV3IEFyY2hpdmUodGhpcywgaWQsIHtcbiAgICAgIHNvdXJjZUV2ZW50QnVzOiB0aGlzLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uIHx8IGBFdmVudCBBcmNoaXZlIGZvciAke3RoaXMuZXZlbnRCdXNOYW1lfSBFdmVudCBCdXNgLFxuICAgICAgZXZlbnRQYXR0ZXJuOiBwcm9wcy5ldmVudFBhdHRlcm4sXG4gICAgICByZXRlbnRpb246IHByb3BzLnJldGVudGlvbixcbiAgICAgIGFyY2hpdmVOYW1lOiBwcm9wcy5hcmNoaXZlTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudFB1dEV2ZW50c1RvKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJldmVudHM6UHV0RXZlbnRzXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5ldmVudEJ1c0Fybl0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xufVxuXG4vKipcbiAqIERlZmluZSBhbiBFdmVudEJyaWRnZSBFdmVudEJ1c1xuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9idXNcbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50QnVzIGV4dGVuZHMgRXZlbnRCdXNCYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBldmVudCBidXMgcmVzb3VyY2VcbiAgICogQHBhcmFtIHNjb3BlIFBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIENvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gZXZlbnRCdXNBcm4gQVJOIG9mIGltcG9ydGVkIGV2ZW50IGJ1c1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRXZlbnRCdXNBcm4oXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGV2ZW50QnVzQXJuOiBzdHJpbmcsXG4gICk6IElFdmVudEJ1cyB7XG4gICAgY29uc3QgcGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuc3BsaXRBcm4oXG4gICAgICBldmVudEJ1c0FybixcbiAgICAgIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkRXZlbnRCdXMoc2NvcGUsIGlkLCB7XG4gICAgICBldmVudEJ1c0FybjogZXZlbnRCdXNBcm4sXG4gICAgICBldmVudEJ1c05hbWU6IHBhcnRzLnJlc291cmNlTmFtZSB8fCBcIlwiLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBldmVudCBidXMgcmVzb3VyY2VcbiAgICogQHBhcmFtIHNjb3BlIFBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIENvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gZXZlbnRCdXNOYW1lIE5hbWUgb2YgaW1wb3J0ZWQgZXZlbnQgYnVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FdmVudEJ1c05hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGV2ZW50QnVzTmFtZTogc3RyaW5nLFxuICApOiBJRXZlbnRCdXMge1xuICAgIGNvbnN0IGV2ZW50QnVzQXJuID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICByZXNvdXJjZTogXCJldmVudC1idXNcIixcbiAgICAgIHNlcnZpY2U6IFwiZXZlbnRzXCIsXG4gICAgICByZXNvdXJjZU5hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBFdmVudEJ1cy5mcm9tRXZlbnRCdXNBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgZXZlbnRCdXNOYW1lOiBldmVudEJ1c05hbWUsXG4gICAgICBldmVudEJ1c0FybjogZXZlbnRCdXNBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKiBAcGFyYW0gc2NvcGUgUGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgQ29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBhdHRycyBJbXBvcnRlZCBldmVudCBidXMgcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRXZlbnRCdXNBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogRXZlbnRCdXNBdHRyaWJ1dGVzLFxuICApOiBJRXZlbnRCdXMge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRFdmVudEJ1cyhzY29wZSwgaWQsIGF0dHJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBQcmluY2lwYWwgdG8gc2VuZCBjdXN0b20gZXZlbnRzIHRvIEV2ZW50QnJpZGdlXG4gICAqIHNvIHRoYXQgdGhleSBjYW4gYmUgbWF0Y2hlZCB0byBydWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCAobm8tb3AgaWYgdW5kZWZpbmVkKVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZ3JhbnRBbGxQdXRFdmVudHMgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmFudFB1dEV2ZW50cyhncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgLy8gSXQncyBjdXJyZW50bHkgbm90IHBvc3NpYmxlIHRvIHJlc3RyaWN0IFB1dEV2ZW50cyB0byBzcGVjaWZpYyByZXNvdXJjZXMuXG4gICAgLy8gU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL3Blcm1pc3Npb25zLXJlZmVyZW5jZS1ldmVudGJyaWRnZS5odG1sXG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wiZXZlbnRzOlB1dEV2ZW50c1wiXSxcbiAgICAgIHJlc291cmNlQXJuczogW1wiKlwiXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBQcmluY2lwYWwgdG8gc2VuZCBjdXN0b20gZXZlbnRzIHRvIEV2ZW50QnJpZGdlXG4gICAqIHNvIHRoYXQgdGhleSBjYW4gYmUgbWF0Y2hlZCB0byBydWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCAobm8tb3AgaWYgdW5kZWZpbmVkKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmFudEFsbFB1dEV2ZW50cyhncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wiZXZlbnRzOlB1dEV2ZW50c1wiXSxcbiAgICAgIHJlc291cmNlQXJuczogW1wiKlwiXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGV2ZW50QnVzUHJvcHMoXG4gICAgZGVmYXVsdEV2ZW50QnVzTmFtZTogc3RyaW5nLFxuICAgIHByb3BzOiBFdmVudEJ1c1Byb3BzID0ge30sXG4gICkge1xuICAgIGNvbnN0IHsgZXZlbnRCdXNOYW1lLCBldmVudFNvdXJjZU5hbWUgfSA9IHByb3BzO1xuICAgIGNvbnN0IGV2ZW50QnVzTmFtZVJlZ2V4ID0gL15bXFwvXFwuXFwtX0EtWmEtejAtOV17MSwyNTZ9JC87XG5cbiAgICBpZiAoZXZlbnRCdXNOYW1lICE9PSB1bmRlZmluZWQgJiYgZXZlbnRTb3VyY2VOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCInZXZlbnRCdXNOYW1lJyBhbmQgJ2V2ZW50U291cmNlTmFtZScgY2Fubm90IGJvdGggYmUgcHJvdmlkZWRcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50QnVzTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChldmVudEJ1c05hbWUpKSB7XG4gICAgICAgIGlmIChldmVudEJ1c05hbWUgPT09IFwiZGVmYXVsdFwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBiZSAnZGVmYXVsdCdcIixcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QnVzTmFtZS5pbmRleE9mKFwiL1wiKSA+IC0xKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBjb250YWluICcvJ1wiLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWV2ZW50QnVzTmFtZVJlZ2V4LnRlc3QoZXZlbnRCdXNOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgIGAnZXZlbnRCdXNOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRCdXNOYW1lUmVnZXh9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyBldmVudEJ1c05hbWUgfTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnRTb3VyY2VOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGV2ZW50U291cmNlTmFtZSkpIHtcbiAgICAgICAgLy8gRXg6IGF3cy5wYXJ0bmVyL1BhcnRuZXJOYW1lL2FjY3QxL3JlcG8xXG4gICAgICAgIGNvbnN0IGV2ZW50U291cmNlTmFtZVJlZ2V4ID0gL15hd3NcXC5wYXJ0bmVyKFxcL1tcXC5cXC1fQS1aYS16MC05XSspezIsfSQvO1xuICAgICAgICBpZiAoIWV2ZW50U291cmNlTmFtZVJlZ2V4LnRlc3QoZXZlbnRTb3VyY2VOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgIGAnZXZlbnRTb3VyY2VOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRTb3VyY2VOYW1lUmVnZXh9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKCFldmVudEJ1c05hbWVSZWdleC50ZXN0KGV2ZW50U291cmNlTmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBgJ2V2ZW50U291cmNlTmFtZScgbXVzdCBzYXRpc2Z5OiAke2V2ZW50QnVzTmFtZVJlZ2V4fWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZXZlbnRCdXNOYW1lOiBldmVudFNvdXJjZU5hbWUsIGV2ZW50U291cmNlTmFtZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IGV2ZW50QnVzTmFtZTogZGVmYXVsdEV2ZW50QnVzTmFtZSB9O1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoRXZlbnRCdXMuQ2xvdWR3YXRjaEV2ZW50QnVzO1xuXG4gIHB1YmxpYyByZWFkb25seSBldmVudEJ1c091dHB1dHM6IEV2ZW50QnVzT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50QnVzT3V0cHV0cztcbiAgfVxuXG4gIHByaXZhdGUgcG9saWN5PzogRXZlbnRCdXNQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCBldmVudEJ1c05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGV2ZW50IGJ1cywgc3VjaCBhczpcbiAgICogYXJuOmF3czpldmVudHM6dXMtZWFzdC0yOjEyMzQ1Njc4OTAxMjpldmVudC1idXMvYXdzLnBhcnRuZXIvUGFydG5lck5hbWUvYWNjdDEvcmVwbzEuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV2ZW50QnVzQXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuYXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEV2ZW50QnVzUHJvcHMpIHtcbiAgICBjb25zdCB7IGV2ZW50QnVzTmFtZSwgZXZlbnRTb3VyY2VOYW1lIH0gPSBFdmVudEJ1cy5ldmVudEJ1c1Byb3BzKFxuICAgICAgLy8gVE9ETyh2aW5jZW50KTogRmlndXJlIG91dCBob3cgdGhpcyB3b3Jrcy4uLlxuICAgICAgTGF6eS5zdHJpbmdWYWx1ZSh7IHByb2R1Y2U6ICgpID0+IEF3c1N0YWNrLnVuaXF1ZUlkKHRoaXMpIH0pLFxuICAgICAgcHJvcHMsXG4gICAgKTtcblxuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHM/LmRlc2NyaXB0aW9uICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRlc2NyaXB0aW9uKSAmJlxuICAgICAgcHJvcHMuZGVzY3JpcHRpb24ubGVuZ3RoID4gNTEyXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgZGVzY3JpcHRpb24gbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTEyIGNoYXJhY3RlcnMsIGdvdCAke3Byb3BzLmRlc2NyaXB0aW9uLmxlbmd0aH1gLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hFdmVudEJ1cy5DbG91ZHdhdGNoRXZlbnRCdXMoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lOiBldmVudEJ1c05hbWUsXG4gICAgICAgIGV2ZW50U291cmNlTmFtZSxcbiAgICAgICAga21zS2V5SWRlbnRpZmllcjogcHJvcHM/Lmttc0tleT8ua2V5QXJuLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHM/LmRlc2NyaXB0aW9uLFxuICAgICAgICBkZWFkTGV0dGVyQ29uZmlnOiBwcm9wcz8uZGVhZExldHRlclF1ZXVlXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGFybjogcHJvcHMuZGVhZExldHRlclF1ZXVlLnF1ZXVlQXJuLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICogQWxsb3cgRXZlbnRCcmlkZ2UgdG8gdXNlIGN1c3RvbWVyIG1hbmFnZWQga2V5XG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL2ViLWVuY3J5cHRpb24ta2V5LXBvbGljeS5odG1sI2ViLWVuY3J5cHRpb24ta2V5LXBvbGljeS1idXNcbiAgICAgKi9cbiAgICBpZiAocHJvcHM/Lmttc0tleSkge1xuICAgICAgcHJvcHM/Lmttc0tleS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICAgIGFjdGlvbnM6IFtcImttczpEZWNyeXB0XCIsIFwia21zOkdlbmVyYXRlRGF0YUtleVwiLCBcImttczpEZXNjcmliZUtleVwiXSxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICAgIGNvbmRpdGlvbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQWNjb3VudFwiLFxuICAgICAgICAgICAgICB2YWx1ZXM6IFt0aGlzLnN0YWNrLmFjY291bnRdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGVzdDogXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgICAgICBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICAgICAgc2VydmljZTogXCJldmVudHNcIixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlOiBcImV2ZW50LWJ1c1wiLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBldmVudEJ1c05hbWUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgICB2YXJpYWJsZTogXCJrbXM6RW5jcnlwdGlvbkNvbnRleHQ6YXdzOmV2ZW50czpldmVudC1idXM6YXJuXCIsXG4gICAgICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAgICAgIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImV2ZW50c1wiLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IFwiZXZlbnQtYnVzXCIsXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZXZlbnRTb3VyY2VOYW1lID0gdGhpcy5yZXNvdXJjZS5ldmVudFNvdXJjZU5hbWU7XG4gICAgdGhpcy5ldmVudEJ1c091dHB1dHMgPSB7XG4gICAgICBuYW1lOiB0aGlzLmV2ZW50QnVzTmFtZSxcbiAgICAgIGFybjogdGhpcy5ldmVudEJ1c0FybixcbiAgICAgIGV2ZW50U291cmNlTmFtZTogdGhpcy5ldmVudFNvdXJjZU5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBJQU0gcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV2ZW50IGJ1cy5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5ID0gbmV3IEV2ZW50QnVzUG9saWN5KHRoaXMsIFwiUG9saWN5XCIsIHsgZXZlbnRCdXM6IHRoaXMgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucG9saWN5KSB7XG4gICAgICB0aGlzLnBvbGljeS5kb2N1bWVudC5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy5wb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxufVxuXG5jbGFzcyBJbXBvcnRlZEV2ZW50QnVzIGV4dGVuZHMgRXZlbnRCdXNCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBldmVudEJ1c05hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzT3V0cHV0czogRXZlbnRCdXNPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRCdXNPdXRwdXRzO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IEV2ZW50QnVzQXR0cmlidXRlcykge1xuICAgIGNvbnN0IGFyblBhcnRzID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLnNwbGl0QXJuKFxuICAgICAgYXR0cnMuZXZlbnRCdXNBcm4sXG4gICAgICBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICApO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgYWNjb3VudDogYXJuUGFydHMuYWNjb3VudCxcbiAgICAgIHJlZ2lvbjogYXJuUGFydHMucmVnaW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudEJ1c0FybiA9IGF0dHJzLmV2ZW50QnVzQXJuO1xuICAgIHRoaXMuZXZlbnRCdXNOYW1lID0gYXR0cnMuZXZlbnRCdXNOYW1lO1xuICAgIHRoaXMuZXZlbnRTb3VyY2VOYW1lID0gYXR0cnMuZXZlbnRTb3VyY2VOYW1lO1xuICAgIHRoaXMuZXZlbnRCdXNPdXRwdXRzID0ge1xuICAgICAgbmFtZTogdGhpcy5ldmVudEJ1c05hbWUsXG4gICAgICBhcm46IHRoaXMuZXZlbnRCdXNBcm4sXG4gICAgICBldmVudFNvdXJjZU5hbWU6IHRoaXMuZXZlbnRTb3VyY2VOYW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBfc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50LFxuICApOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgW1xuICAgICAgICBcIkNhbm5vdCBhZGQgYSBzdGF0ZW1lbnQgdG8gYW4gaW1wb3J0ZWQgRXZlbnRCdXMuIFlvdSBtYXkgdXNlIGBFdmVudEJyaWRnZVBlcm1pc3Npb25gIGluc3RlYWQuXCIsXG4gICAgICAgIFwiSWYgdGhlIEV2ZW50QnVzIGFscmVhZHkgaGFzIGEgcG9saWN5IGF0dGFjaGVkLCB0aGUgcGVybWlzc2lvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi5cIixcbiAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBhc3NvY2lhdGUgRXZlbnQgQnVzZXMgd2l0aCBhIHBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnVzUG9saWN5UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgYnVzIHRvIHdoaWNoIHRoZSBwb2xpY3kgYXBwbGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXM6IElFdmVudEJ1cztcbn1cblxuLyoqXG4gKiBUaGUgcG9saWN5IGZvciBhbiBFdmVudCBCdXNcbiAqXG4gKiBQb2xpY2llcyBkZWZpbmUgdGhlIG9wZXJhdGlvbnMgdGhhdCBhcmUgYWxsb3dlZCBvbiB0aGlzIHJlc291cmNlLlxuICpcbiAqIFlvdSBhbG1vc3QgbmV2ZXIgbmVlZCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QgZGlyZWN0bHkuXG4gKlxuICogVGhlIEV2ZW50QnVzUG9saWN5IHJlc291cmNlIChgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYnVzX3BvbGljeWApXG4gKiBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgRXZlbnRCcmlkZ2VQZXJtaXNzaW9uIHJlc291cmNlIChgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbmApXG4gKiBhbmQgd2lsbCBvdmVyd3JpdGUgcGVybWlzc2lvbnMuXG4gKlxuICogQWxsIEFXUyByZXNvdXJjZXMgdGhhdCBzdXBwb3J0IHJlc291cmNlIHBvbGljaWVzIGhhdmUgYSBtZXRob2QgY2FsbGVkXG4gKiBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCwgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIG5ldyByZXNvdXJjZVxuICogcG9saWN5IGlmIG9uZSBkb2Vzbid0IGV4aXN0IHlldCwgb3RoZXJ3aXNlIGl0IHdpbGwgYWRkIHRvIHRoZSBleGlzdGluZ1xuICogcG9saWN5LlxuICpcbiAqIFByZWZlciB0byB1c2UgYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAgaW5zdGVhZC5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYnVzX3BvbGljeVxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRCdXNQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcG9saWN5IGRvY3VtZW50IGZvciB0aGlzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudDogaWFtLlBvbGljeURvY3VtZW50O1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQub3V0cHV0cztcbiAgfVxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRCdXNQb2xpY3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMuZG9jdW1lbnQgPSBuZXcgaWFtLlBvbGljeURvY3VtZW50KHRoaXMsIFwiRG9jdW1lbnRcIik7XG5cbiAgICBuZXcgY2xvdWR3YXRjaEV2ZW50QnVzUG9saWN5LkNsb3Vkd2F0Y2hFdmVudEJ1c1BvbGljeSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9wdWxsLzE2ODc0I2Rpc2N1c3Npb25fcjY1NjAyNDgzMFxuICAgICAgcG9saWN5OiB0aGlzLmRvY3VtZW50Lmpzb24sXG4gICAgICBldmVudEJ1c05hbWU6IHByb3BzLmV2ZW50QnVzLmV2ZW50QnVzTmFtZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gYWRkIHBlcm1pc3Npb25zIHRvIGFuIEV2ZW50IEJ1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlUGVybWlzc2lvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvLyBUT0RPOiBBdXRvIGdlbmVyYXRlIHRoaXMgdXNpbmcgc3RydWN0IGJ1aWxkZXIgdG8ga2VlcCBkb2NzIHVwZGF0ZWQ/XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgYnVzIHRvIHdoaWNoIHRoZSBwb2xpY3kgYXBwbGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXM6IElFdmVudEJ1cztcbiAgLyoqXG4gICAqIEFuIGlkZW50aWZpZXIgc3RyaW5nIGZvciB0aGUgZXh0ZXJuYWwgYWNjb3VudCB0aGF0XG4gICAqIHlvdSBhcmUgZ3JhbnRpbmcgcGVybWlzc2lvbnMgdG8uXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbiNzdGF0ZW1lbnRfaWQgQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNzdGF0ZW1lbnRfaWR9XG4gICAqL1xuICByZWFkb25seSBzdGF0ZW1lbnRJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGFjdGlvbiB0aGF0IHlvdSBhcmUgZW5hYmxpbmcgdGhlIG90aGVyIGFjY291bnQgdG8gcGVyZm9ybS4gRGVmYXVsdHMgdG8gZXZlbnRzOlB1dEV2ZW50c1xuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jYWN0aW9uIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jYWN0aW9ufVxuICAgKiBAZGVmYXVsdCBcImV2ZW50czpQdXRFdmVudHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI2V2ZW50X2J1c19uYW1lIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jZXZlbnRfYnVzX25hbWV9XG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jaWQgQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNpZH1cbiAgICpcbiAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhlIGlkIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gYWxsIHJlc291cmNlcyBpbiBUZXJyYWZvcm0gcHJvdmlkZXJzIHVzaW5nIGEgVGVycmFmb3JtIHByb3ZpZGVyIFNESyB2ZXJzaW9uIGJlbG93IDIuXG4gICAqIElmIHlvdSBleHBlcmllbmNlIHByb2JsZW1zIHNldHRpbmcgdGhpcyB2YWx1ZSBpdCBtaWdodCBub3QgYmUgc2V0dGFibGUuIFBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgcHJvdmlkZXIgZG9jdW1lbnRhdGlvbiB0byBlbnN1cmUgaXQgc2hvdWxkIGJlIHNldHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgMTItZGlnaXQgQVdTIGFjY291bnQgSUQgdGhhdCB5b3UgYXJlIHBlcm1pdHRpbmcgdG8gcHV0IGV2ZW50cyB0byB5b3VyIGRlZmF1bHQgZXZlbnQgYnVzLlxuICAgKiBTcGVjaWZ5ICogdG8gcGVybWl0IGFueSBhY2NvdW50IHRvIHB1dCBldmVudHMgdG8geW91ciBkZWZhdWx0IGV2ZW50IGJ1cywgb3B0aW9uYWxseSBsaW1pdGVkXG4gICAqIGJ5IGNvbmRpdGlvbi5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI3ByaW5jaXBhbCBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI3ByaW5jaXBhbH1cbiAgICovXG4gIHJlYWRvbmx5IHByaW5jaXBhbDogc3RyaW5nO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBibG9jayB0byBsaW1pdCB0aGUgZXZlbnQgYnVzIHBlcm1pc3Npb25zIHlvdSBhcmUgZ3JhbnRpbmcgdG8gb25seSBhY2NvdW50cyB0aGF0XG4gICAqIGZ1bGZpbGwgdGhlIGNvbmRpdGlvbi5jb25kaXRpb24gYmxvY2tcbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI2NvbmRpdGlvbiBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI2NvbmRpdGlvbn1cbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IGNsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24uQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbkNvbmRpdGlvbjtcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBwZXJtaXNzaW9uIGZvciBhbiBFdmVudCBCdXNcbiAqXG4gKiBBbGwgQVdTIHJlc291cmNlcyB0aGF0IHN1cHBvcnQgcmVzb3VyY2UgcG9saWNpZXMgaGF2ZSBhIG1ldGhvZCBjYWxsZWRcbiAqIGBhZGRUb1Jlc291cmNlUG9saWN5KClgLCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gKiBwb2xpY3kgaWYgb25lIGRvZXNuJ3QgZXhpc3QgeWV0LCBvdGhlcndpc2UgaXQgd2lsbCBhZGQgdG8gdGhlIGV4aXN0aW5nXG4gKiBwb2xpY3kuXG4gKlxuICogSWYgYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAgd2FzIHVzZWQgb24gdGhlIGV2ZW50IGJ1cywgVGhlIEV2ZW50QnVzUG9saWN5IHJlc291cmNlXG4gKiAoYGF3c19jbG91ZHdhdGNoX2V2ZW50X2J1c19wb2xpY3lgKSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGlzIHJlc291cmNlIGFuZFxuICogd2lsbCBvdmVyd3JpdGUgcGVybWlzc2lvbnMuXG4gKlxuICogQHJlc291cmNlIGF3c19jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb25cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50QnJpZGdlUGVybWlzc2lvbiBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudEJyaWRnZVBlcm1pc3Npb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgbmV3IGNsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24uQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbih0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9wdWxsLzE2ODc0I2Rpc2N1c3Npb25fcjY1NjAyNDgzMFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBldmVudEJ1c05hbWU6IHByb3BzLmV2ZW50QnVzLmV2ZW50QnVzTmFtZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
336
|
+
EventBridgePermission[_c] = { fqn: "terraconstructs.aws.notify.EventBridgePermission", version: "0.2.6" };
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvZXZlbnQtYnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0dBQWdHO0FBRWhHLHNEQUk2QjtBQUM3QixpQ0FBb0M7QUFFcEMseUNBQXdFO0FBQ3hFLGdDQUFtQztBQUNuQyxvREFBdUU7QUFDdkUsNENBQXdDO0FBQ3hDLHVDQUFzRDtBQUV0RCw4QkFBOEI7QUFtSjlCLE1BQWUsWUFBYSxTQUFRLGdDQUFnQjtJQWlCM0MsT0FBTyxDQUFDLEVBQVUsRUFBRSxLQUF1QjtRQUNoRCxPQUFPLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQzNCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFdBQVcsRUFDVCxLQUFLLENBQUMsV0FBVyxJQUFJLHFCQUFxQixJQUFJLENBQUMsWUFBWSxZQUFZO1lBQ3pFLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxPQUF1QjtRQUM3QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUM3QixZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FLRjtBQUVEOzs7O0dBSUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxZQUFZO0lBQ3hDOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FDM0IsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLFdBQW1CO1FBRW5CLE1BQU0sS0FBSyxHQUFHLG9CQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFD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QUFVLEVBQUU7WUFDeEUsdUZBQXVGO1lBQ3ZGLEdBQUcsS0FBSztZQUNSLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFaSCxzREFhQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LWJ1cy50c1xuXG5pbXBvcnQge1xuICBjbG91ZHdhdGNoRXZlbnRCdXMsXG4gIGNsb3Vkd2F0Y2hFdmVudEJ1c1BvbGljeSxcbiAgY2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbixcbn0gZnJvbSBcIkBjZGt0bi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenksIFRva2VuIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCB7IEFybkZvcm1hdCB9IGZyb20gXCIuLi9hcm5cIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEF3c1N0YWNrIH0gZnJvbSBcIi4uL2F3cy1zdGFja1wiO1xuaW1wb3J0IHsgQXJjaGl2ZSwgQmFzZUFyY2hpdmVQcm9wcyB9IGZyb20gXCIuL2FyY2hpdmVcIjtcbmltcG9ydCAqIGFzIGVuY3J5cHRpb24gZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5pbXBvcnQgeyBJUXVldWUgfSBmcm9tIFwiLi9xdWV1ZS1iYXNlXCI7XG5cbi8qKlxuICogT3V0cHV0cyB0byByZWdpc3RlciB3aXRoIHRoZSBHcmlkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCdXNPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnRuZXIgZXZlbnQgc291cmNlIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdoaWNoIGFsbCBFdmVudEJ1cyBiYXNlZCBjbGFzc2VzIE1VU1QgaW1wbGVtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50QnVzIGV4dGVuZHMgaWFtLklBd3NDb25zdHJ1Y3RXaXRoUG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI0Fybi1mbjo6Z2V0YXR0XG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZXZlbnRzb3VyY2VuYW1lXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBFdmVudEJyaWRnZSBhcmNoaXZlIHRvIHNlbmQgZXZlbnRzIHRvLlxuICAgKiBXaGVuIHlvdSBjcmVhdGUgYW4gYXJjaGl2ZSwgaW5jb21pbmcgZXZlbnRzIG1pZ2h0IG5vdCBpbW1lZGlhdGVseSBzdGFydCBiZWluZyBzZW50IHRvIHRoZSBhcmNoaXZlLlxuICAgKiBBbGxvdyBhIHNob3J0IHBlcmlvZCBvZiB0aW1lIGZvciBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgUHJvcGVydGllcyBvZiB0aGUgYXJjaGl2ZVxuICAgKi9cbiAgYXJjaGl2ZShpZDogc3RyaW5nLCBwcm9wczogQmFzZUFyY2hpdmVQcm9wcyk6IEFyY2hpdmU7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBhbiBJQU0gUHJpbmNpcGFsIHRvIHNlbmQgY3VzdG9tIGV2ZW50cyB0byB0aGUgZXZlbnRCdXNcbiAgICogc28gdGhhdCB0aGV5IGNhbiBiZSBtYXRjaGVkIHRvIHJ1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIChuby1vcCBpZiB1bmRlZmluZWQpXG4gICAqL1xuICBncmFudFB1dEV2ZW50c1RvKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIGFuIGV2ZW50IGJ1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnVzUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgYnVzIHlvdSBhcmUgY3JlYXRpbmdcbiAgICogTm90ZTogSWYgJ2V2ZW50U291cmNlTmFtZScgaXMgcGFzc2VkIGluLCB5b3UgY2Fubm90IHNldCB0aGlzXG4gICAqXG4gICAqIE5PVEU6IHRoZSBuYW1lcyBvZiBjdXN0b20gZXZlbnQgYnVzZXMgY2FuJ3QgY29udGFpbiB0aGUgJy8nIGNoYXJhY3RlclxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1uYW1lXG4gICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICogTm90ZTogSWYgJ2V2ZW50QnVzTmFtZScgaXMgcGFzc2VkIGluLCB5b3UgY2Fubm90IHNldCB0aGlzXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLWV2ZW50c291cmNlbmFtZVxuICAgKiBAZGVmYXVsdCAtIG5vIHBhcnRuZXIgZXZlbnQgc291cmNlXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlYWQtbGV0dGVyIHF1ZXVlIGZvciB0aGUgZXZlbnQgYnVzXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvZWItcnVsZS1ldmVudC1kZWxpdmVyeS5odG1sI2ViLXJ1bGUtZGxxXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVhZC1sZXR0ZXIgcXVldWVcbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZT86IElRdWV1ZTtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IGJ1cyBkZXNjcmlwdGlvbi5cbiAgICpcbiAgICogVGhlIGRlc2NyaXB0aW9uIGNhbiBiZSB1cCB0byA1MTIgY2hhcmFjdGVycyBsb25nLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZGVzY3JpcHRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0IGVuY3J5cHQgZXZlbnRzIG9uIHRoaXMgZXZlbnQgYnVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZSBhbiBBV1MgbWFuYWdlZCBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGVuY3J5cHRpb24uSUtleTtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2Ugd2l0aCBwcm9wZXJ0aWVzIG5lY2Vzc2FyeSB0byBpbXBvcnQgYSByZXVzYWJsZSBFdmVudEJ1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnVzQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI0Fybi1mbjo6Z2V0YXR0XG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZXZlbnRzb3VyY2VuYW1lXG4gICAqIEBkZWZhdWx0IC0gbm8gcGFydG5lciBldmVudCBzb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcbn1cblxuYWJzdHJhY3QgY2xhc3MgRXZlbnRCdXNCYXNlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElFdmVudEJ1cyB7XG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgSUQgb2YgdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBldmVudEJ1c05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZXZlbnQgYnVzLCBzdWNoIGFzOlxuICAgKiBhcm46YXdzOmV2ZW50czp1cy1lYXN0LTI6MTIzNDU2Nzg5MDEyOmV2ZW50LWJ1cy9hd3MucGFydG5lci9QYXJ0bmVyTmFtZS9hY2N0MS9yZXBvMS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFydG5lciBldmVudCBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgcHVibGljIGFyY2hpdmUoaWQ6IHN0cmluZywgcHJvcHM6IEJhc2VBcmNoaXZlUHJvcHMpOiBBcmNoaXZlIHtcbiAgICByZXR1cm4gbmV3IEFyY2hpdmUodGhpcywgaWQsIHtcbiAgICAgIHNvdXJjZUV2ZW50QnVzOiB0aGlzLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLmRlc2NyaXB0aW9uIHx8IGBFdmVudCBBcmNoaXZlIGZvciAke3RoaXMuZXZlbnRCdXNOYW1lfSBFdmVudCBCdXNgLFxuICAgICAgZXZlbnRQYXR0ZXJuOiBwcm9wcy5ldmVudFBhdHRlcm4sXG4gICAgICByZXRlbnRpb246IHByb3BzLnJldGVudGlvbixcbiAgICAgIGFyY2hpdmVOYW1lOiBwcm9wcy5hcmNoaXZlTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBncmFudFB1dEV2ZW50c1RvKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJldmVudHM6UHV0RXZlbnRzXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5ldmVudEJ1c0Fybl0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBzdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0O1xufVxuXG4vKipcbiAqIERlZmluZSBhbiBFdmVudEJyaWRnZSBFdmVudEJ1c1xuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9idXNcbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50QnVzIGV4dGVuZHMgRXZlbnRCdXNCYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBldmVudCBidXMgcmVzb3VyY2VcbiAgICogQHBhcmFtIHNjb3BlIFBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIENvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gZXZlbnRCdXNBcm4gQVJOIG9mIGltcG9ydGVkIGV2ZW50IGJ1c1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRXZlbnRCdXNBcm4oXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGV2ZW50QnVzQXJuOiBzdHJpbmcsXG4gICk6IElFdmVudEJ1cyB7XG4gICAgY29uc3QgcGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuc3BsaXRBcm4oXG4gICAgICBldmVudEJ1c0FybixcbiAgICAgIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkRXZlbnRCdXMoc2NvcGUsIGlkLCB7XG4gICAgICBldmVudEJ1c0FybjogZXZlbnRCdXNBcm4sXG4gICAgICBldmVudEJ1c05hbWU6IHBhcnRzLnJlc291cmNlTmFtZSB8fCBcIlwiLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBldmVudCBidXMgcmVzb3VyY2VcbiAgICogQHBhcmFtIHNjb3BlIFBhcmVudCBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIENvbnN0cnVjdCBJRFxuICAgKiBAcGFyYW0gZXZlbnRCdXNOYW1lIE5hbWUgb2YgaW1wb3J0ZWQgZXZlbnQgYnVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FdmVudEJ1c05hbWUoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGV2ZW50QnVzTmFtZTogc3RyaW5nLFxuICApOiBJRXZlbnRCdXMge1xuICAgIGNvbnN0IGV2ZW50QnVzQXJuID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLmZvcm1hdEFybih7XG4gICAgICByZXNvdXJjZTogXCJldmVudC1idXNcIixcbiAgICAgIHNlcnZpY2U6IFwiZXZlbnRzXCIsXG4gICAgICByZXNvdXJjZU5hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBFdmVudEJ1cy5mcm9tRXZlbnRCdXNBdHRyaWJ1dGVzKHNjb3BlLCBpZCwge1xuICAgICAgZXZlbnRCdXNOYW1lOiBldmVudEJ1c05hbWUsXG4gICAgICBldmVudEJ1c0FybjogZXZlbnRCdXNBcm4sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKiBAcGFyYW0gc2NvcGUgUGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgQ29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBhdHRycyBJbXBvcnRlZCBldmVudCBidXMgcHJvcGVydGllc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tRXZlbnRCdXNBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogRXZlbnRCdXNBdHRyaWJ1dGVzLFxuICApOiBJRXZlbnRCdXMge1xuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRFdmVudEJ1cyhzY29wZSwgaWQsIGF0dHJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBQcmluY2lwYWwgdG8gc2VuZCBjdXN0b20gZXZlbnRzIHRvIEV2ZW50QnJpZGdlXG4gICAqIHNvIHRoYXQgdGhleSBjYW4gYmUgbWF0Y2hlZCB0byBydWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCAobm8tb3AgaWYgdW5kZWZpbmVkKVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgZ3JhbnRBbGxQdXRFdmVudHMgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmFudFB1dEV2ZW50cyhncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgLy8gSXQncyBjdXJyZW50bHkgbm90IHBvc3NpYmxlIHRvIHJlc3RyaWN0IFB1dEV2ZW50cyB0byBzcGVjaWZpYyByZXNvdXJjZXMuXG4gICAgLy8gU2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL3Blcm1pc3Npb25zLXJlZmVyZW5jZS1ldmVudGJyaWRnZS5odG1sXG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wiZXZlbnRzOlB1dEV2ZW50c1wiXSxcbiAgICAgIHJlc291cmNlQXJuczogW1wiKlwiXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBQcmluY2lwYWwgdG8gc2VuZCBjdXN0b20gZXZlbnRzIHRvIEV2ZW50QnJpZGdlXG4gICAqIHNvIHRoYXQgdGhleSBjYW4gYmUgbWF0Y2hlZCB0byBydWxlcy5cbiAgICpcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCAobm8tb3AgaWYgdW5kZWZpbmVkKVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBncmFudEFsbFB1dEV2ZW50cyhncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wiZXZlbnRzOlB1dEV2ZW50c1wiXSxcbiAgICAgIHJlc291cmNlQXJuczogW1wiKlwiXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGV2ZW50QnVzUHJvcHMoXG4gICAgZGVmYXVsdEV2ZW50QnVzTmFtZTogc3RyaW5nLFxuICAgIHByb3BzOiBFdmVudEJ1c1Byb3BzID0ge30sXG4gICkge1xuICAgIGNvbnN0IHsgZXZlbnRCdXNOYW1lLCBldmVudFNvdXJjZU5hbWUgfSA9IHByb3BzO1xuICAgIGNvbnN0IGV2ZW50QnVzTmFtZVJlZ2V4ID0gL15bXFwvXFwuXFwtX0EtWmEtejAtOV17MSwyNTZ9JC87XG5cbiAgICBpZiAoZXZlbnRCdXNOYW1lICE9PSB1bmRlZmluZWQgJiYgZXZlbnRTb3VyY2VOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgXCInZXZlbnRCdXNOYW1lJyBhbmQgJ2V2ZW50U291cmNlTmFtZScgY2Fubm90IGJvdGggYmUgcHJvdmlkZWRcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50QnVzTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChldmVudEJ1c05hbWUpKSB7XG4gICAgICAgIGlmIChldmVudEJ1c05hbWUgPT09IFwiZGVmYXVsdFwiKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBiZSAnZGVmYXVsdCdcIixcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QnVzTmFtZS5pbmRleE9mKFwiL1wiKSA+IC0xKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAgICAgXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBjb250YWluICcvJ1wiLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWV2ZW50QnVzTmFtZVJlZ2V4LnRlc3QoZXZlbnRCdXNOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgIGAnZXZlbnRCdXNOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRCdXNOYW1lUmVnZXh9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyBldmVudEJ1c05hbWUgfTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnRTb3VyY2VOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGV2ZW50U291cmNlTmFtZSkpIHtcbiAgICAgICAgLy8gRXg6IGF3cy5wYXJ0bmVyL1BhcnRuZXJOYW1lL2FjY3QxL3JlcG8xXG4gICAgICAgIGNvbnN0IGV2ZW50U291cmNlTmFtZVJlZ2V4ID0gL15hd3NcXC5wYXJ0bmVyKFxcL1tcXC5cXC1fQS1aYS16MC05XSspezIsfSQvO1xuICAgICAgICBpZiAoIWV2ZW50U291cmNlTmFtZVJlZ2V4LnRlc3QoZXZlbnRTb3VyY2VOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgICAgIGAnZXZlbnRTb3VyY2VOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRTb3VyY2VOYW1lUmVnZXh9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKCFldmVudEJ1c05hbWVSZWdleC50ZXN0KGV2ZW50U291cmNlTmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICAgICBgJ2V2ZW50U291cmNlTmFtZScgbXVzdCBzYXRpc2Z5OiAke2V2ZW50QnVzTmFtZVJlZ2V4fWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZXZlbnRCdXNOYW1lOiBldmVudFNvdXJjZU5hbWUsIGV2ZW50U291cmNlTmFtZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IGV2ZW50QnVzTmFtZTogZGVmYXVsdEV2ZW50QnVzTmFtZSB9O1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoRXZlbnRCdXMuQ2xvdWR3YXRjaEV2ZW50QnVzO1xuXG4gIHB1YmxpYyByZWFkb25seSBldmVudEJ1c091dHB1dHM6IEV2ZW50QnVzT3V0cHV0cztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50QnVzT3V0cHV0cztcbiAgfVxuXG4gIHByaXZhdGUgcG9saWN5PzogRXZlbnRCdXNQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGdldCBldmVudEJ1c05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGV2ZW50IGJ1cywgc3VjaCBhczpcbiAgICogYXJuOmF3czpldmVudHM6dXMtZWFzdC0yOjEyMzQ1Njc4OTAxMjpldmVudC1idXMvYXdzLnBhcnRuZXIvUGFydG5lck5hbWUvYWNjdDEvcmVwbzEuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV2ZW50QnVzQXJuKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2UuYXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEV2ZW50QnVzUHJvcHMpIHtcbiAgICBjb25zdCB7IGV2ZW50QnVzTmFtZSwgZXZlbnRTb3VyY2VOYW1lIH0gPSBFdmVudEJ1cy5ldmVudEJ1c1Byb3BzKFxuICAgICAgLy8gVE9ETyh2aW5jZW50KTogRmlndXJlIG91dCBob3cgdGhpcyB3b3Jrcy4uLlxuICAgICAgTGF6eS5zdHJpbmdWYWx1ZSh7IHByb2R1Y2U6ICgpID0+IEF3c1N0YWNrLnVuaXF1ZUlkKHRoaXMpIH0pLFxuICAgICAgcHJvcHMsXG4gICAgKTtcblxuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHM/LmRlc2NyaXB0aW9uICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRlc2NyaXB0aW9uKSAmJlxuICAgICAgcHJvcHMuZGVzY3JpcHRpb24ubGVuZ3RoID4gNTEyXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBgZGVzY3JpcHRpb24gbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTEyIGNoYXJhY3RlcnMsIGdvdCAke3Byb3BzLmRlc2NyaXB0aW9uLmxlbmd0aH1gLFxuICAgICAgICB0aGlzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hFdmVudEJ1cy5DbG91ZHdhdGNoRXZlbnRCdXMoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lOiBldmVudEJ1c05hbWUsXG4gICAgICAgIGV2ZW50U291cmNlTmFtZSxcbiAgICAgICAga21zS2V5SWRlbnRpZmllcjogcHJvcHM/Lmttc0tleT8ua2V5QXJuLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHM/LmRlc2NyaXB0aW9uLFxuICAgICAgICBkZWFkTGV0dGVyQ29uZmlnOiBwcm9wcz8uZGVhZExldHRlclF1ZXVlXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGFybjogcHJvcHMuZGVhZExldHRlclF1ZXVlLnF1ZXVlQXJuLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICogQWxsb3cgRXZlbnRCcmlkZ2UgdG8gdXNlIGN1c3RvbWVyIG1hbmFnZWQga2V5XG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL2ViLWVuY3J5cHRpb24ta2V5LXBvbGljeS5odG1sI2ViLWVuY3J5cHRpb24ta2V5LXBvbGljeS1idXNcbiAgICAgKi9cbiAgICBpZiAocHJvcHM/Lmttc0tleSkge1xuICAgICAgcHJvcHM/Lmttc0tleS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdLFxuICAgICAgICAgIGFjdGlvbnM6IFtcImttczpEZWNyeXB0XCIsIFwia21zOkdlbmVyYXRlRGF0YUtleVwiLCBcImttczpEZXNjcmliZUtleVwiXSxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICAgIGNvbmRpdGlvbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQWNjb3VudFwiLFxuICAgICAgICAgICAgICB2YWx1ZXM6IFt0aGlzLnN0YWNrLmFjY291bnRdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGVzdDogXCJTdHJpbmdFcXVhbHNcIixcbiAgICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgICAgICBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdCh0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICAgICAgc2VydmljZTogXCJldmVudHNcIixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlOiBcImV2ZW50LWJ1c1wiLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBldmVudEJ1c05hbWUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgICB2YXJpYWJsZTogXCJrbXM6RW5jcnlwdGlvbkNvbnRleHQ6YXdzOmV2ZW50czpldmVudC1idXM6YXJuXCIsXG4gICAgICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAgICAgIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImV2ZW50c1wiLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IFwiZXZlbnQtYnVzXCIsXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZXZlbnRTb3VyY2VOYW1lID0gdGhpcy5yZXNvdXJjZS5ldmVudFNvdXJjZU5hbWU7XG4gICAgdGhpcy5ldmVudEJ1c091dHB1dHMgPSB7XG4gICAgICBuYW1lOiB0aGlzLmV2ZW50QnVzTmFtZSxcbiAgICAgIGFybjogdGhpcy5ldmVudEJ1c0FybixcbiAgICAgIGV2ZW50U291cmNlTmFtZTogdGhpcy5ldmVudFNvdXJjZU5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBJQU0gcmVzb3VyY2UgcG9saWN5IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV2ZW50IGJ1cy5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIGlmICghdGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5ID0gbmV3IEV2ZW50QnVzUG9saWN5KHRoaXMsIFwiUG9saWN5XCIsIHsgZXZlbnRCdXM6IHRoaXMgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucG9saWN5KSB7XG4gICAgICB0aGlzLnBvbGljeS5kb2N1bWVudC5hZGRTdGF0ZW1lbnRzKHN0YXRlbWVudCk7XG4gICAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogdHJ1ZSwgcG9saWN5RGVwZW5kYWJsZTogdGhpcy5wb2xpY3kgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBzdGF0ZW1lbnRBZGRlZDogZmFsc2UgfTtcbiAgfVxufVxuXG5jbGFzcyBJbXBvcnRlZEV2ZW50QnVzIGV4dGVuZHMgRXZlbnRCdXNCYXNlIHtcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBldmVudEJ1c05hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzT3V0cHV0czogRXZlbnRCdXNPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRCdXNPdXRwdXRzO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IEV2ZW50QnVzQXR0cmlidXRlcykge1xuICAgIGNvbnN0IGFyblBhcnRzID0gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3Qoc2NvcGUpLnNwbGl0QXJuKFxuICAgICAgYXR0cnMuZXZlbnRCdXNBcm4sXG4gICAgICBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSxcbiAgICApO1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgYWNjb3VudDogYXJuUGFydHMuYWNjb3VudCxcbiAgICAgIHJlZ2lvbjogYXJuUGFydHMucmVnaW9uLFxuICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudEJ1c0FybiA9IGF0dHJzLmV2ZW50QnVzQXJuO1xuICAgIHRoaXMuZXZlbnRCdXNOYW1lID0gYXR0cnMuZXZlbnRCdXNOYW1lO1xuICAgIHRoaXMuZXZlbnRTb3VyY2VOYW1lID0gYXR0cnMuZXZlbnRTb3VyY2VOYW1lO1xuICAgIHRoaXMuZXZlbnRCdXNPdXRwdXRzID0ge1xuICAgICAgbmFtZTogdGhpcy5ldmVudEJ1c05hbWUsXG4gICAgICBhcm46IHRoaXMuZXZlbnRCdXNBcm4sXG4gICAgICBldmVudFNvdXJjZU5hbWU6IHRoaXMuZXZlbnRTb3VyY2VOYW1lLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBfc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50LFxuICApOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgW1xuICAgICAgICBcIkNhbm5vdCBhZGQgYSBzdGF0ZW1lbnQgdG8gYW4gaW1wb3J0ZWQgRXZlbnRCdXMuIFlvdSBtYXkgdXNlIGBFdmVudEJyaWRnZVBlcm1pc3Npb25gIGluc3RlYWQuXCIsXG4gICAgICAgIFwiSWYgdGhlIEV2ZW50QnVzIGFscmVhZHkgaGFzIGEgcG9saWN5IGF0dGFjaGVkLCB0aGUgcGVybWlzc2lvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi5cIixcbiAgICAgIF0uam9pbihcIlxcblwiKSxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBhc3NvY2lhdGUgRXZlbnQgQnVzZXMgd2l0aCBhIHBvbGljeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnVzUG9saWN5UHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgYnVzIHRvIHdoaWNoIHRoZSBwb2xpY3kgYXBwbGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXM6IElFdmVudEJ1cztcbn1cblxuLyoqXG4gKiBUaGUgcG9saWN5IGZvciBhbiBFdmVudCBCdXNcbiAqXG4gKiBQb2xpY2llcyBkZWZpbmUgdGhlIG9wZXJhdGlvbnMgdGhhdCBhcmUgYWxsb3dlZCBvbiB0aGlzIHJlc291cmNlLlxuICpcbiAqIFlvdSBhbG1vc3QgbmV2ZXIgbmVlZCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QgZGlyZWN0bHkuXG4gKlxuICogVGhlIEV2ZW50QnVzUG9saWN5IHJlc291cmNlIChgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYnVzX3BvbGljeWApXG4gKiBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgRXZlbnRCcmlkZ2VQZXJtaXNzaW9uIHJlc291cmNlIChgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbmApXG4gKiBhbmQgd2lsbCBvdmVyd3JpdGUgcGVybWlzc2lvbnMuXG4gKlxuICogQWxsIEFXUyByZXNvdXJjZXMgdGhhdCBzdXBwb3J0IHJlc291cmNlIHBvbGljaWVzIGhhdmUgYSBtZXRob2QgY2FsbGVkXG4gKiBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCwgd2hpY2ggd2lsbCBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIG5ldyByZXNvdXJjZVxuICogcG9saWN5IGlmIG9uZSBkb2Vzbid0IGV4aXN0IHlldCwgb3RoZXJ3aXNlIGl0IHdpbGwgYWRkIHRvIHRoZSBleGlzdGluZ1xuICogcG9saWN5LlxuICpcbiAqIFByZWZlciB0byB1c2UgYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAgaW5zdGVhZC5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYnVzX3BvbGljeVxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRCdXNQb2xpY3kgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIHtcbiAgLyoqXG4gICAqIFRoZSBJQU0gcG9saWN5IGRvY3VtZW50IGZvciB0aGlzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudDogaWFtLlBvbGljeURvY3VtZW50O1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQub3V0cHV0cztcbiAgfVxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRCdXNQb2xpY3lQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMuZG9jdW1lbnQgPSBuZXcgaWFtLlBvbGljeURvY3VtZW50KHRoaXMsIFwiRG9jdW1lbnRcIik7XG5cbiAgICBuZXcgY2xvdWR3YXRjaEV2ZW50QnVzUG9saWN5LkNsb3Vkd2F0Y2hFdmVudEJ1c1BvbGljeSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9wdWxsLzE2ODc0I2Rpc2N1c3Npb25fcjY1NjAyNDgzMFxuICAgICAgcG9saWN5OiB0aGlzLmRvY3VtZW50Lmpzb24sXG4gICAgICBldmVudEJ1c05hbWU6IHByb3BzLmV2ZW50QnVzLmV2ZW50QnVzTmFtZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gYWRkIHBlcm1pc3Npb25zIHRvIGFuIEV2ZW50IEJ1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnJpZGdlUGVybWlzc2lvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvLyBUT0RPOiBBdXRvIGdlbmVyYXRlIHRoaXMgdXNpbmcgc3RydWN0IGJ1aWxkZXIgdG8ga2VlcCBkb2NzIHVwZGF0ZWQ/XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgYnVzIHRvIHdoaWNoIHRoZSBwb2xpY3kgYXBwbGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXM6IElFdmVudEJ1cztcbiAgLyoqXG4gICAqIEFuIGlkZW50aWZpZXIgc3RyaW5nIGZvciB0aGUgZXh0ZXJuYWwgYWNjb3VudCB0aGF0XG4gICAqIHlvdSBhcmUgZ3JhbnRpbmcgcGVybWlzc2lvbnMgdG8uXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbiNzdGF0ZW1lbnRfaWQgQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNzdGF0ZW1lbnRfaWR9XG4gICAqL1xuICByZWFkb25seSBzdGF0ZW1lbnRJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGFjdGlvbiB0aGF0IHlvdSBhcmUgZW5hYmxpbmcgdGhlIG90aGVyIGFjY291bnQgdG8gcGVyZm9ybS4gRGVmYXVsdHMgdG8gZXZlbnRzOlB1dEV2ZW50c1xuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jYWN0aW9uIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jYWN0aW9ufVxuICAgKiBAZGVmYXVsdCBcImV2ZW50czpQdXRFdmVudHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI2V2ZW50X2J1c19uYW1lIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jZXZlbnRfYnVzX25hbWV9XG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c05hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jaWQgQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNpZH1cbiAgICpcbiAgICogUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhlIGlkIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gYWxsIHJlc291cmNlcyBpbiBUZXJyYWZvcm0gcHJvdmlkZXJzIHVzaW5nIGEgVGVycmFmb3JtIHByb3ZpZGVyIFNESyB2ZXJzaW9uIGJlbG93IDIuXG4gICAqIElmIHlvdSBleHBlcmllbmNlIHByb2JsZW1zIHNldHRpbmcgdGhpcyB2YWx1ZSBpdCBtaWdodCBub3QgYmUgc2V0dGFibGUuIFBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgcHJvdmlkZXIgZG9jdW1lbnRhdGlvbiB0byBlbnN1cmUgaXQgc2hvdWxkIGJlIHNldHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgMTItZGlnaXQgQVdTIGFjY291bnQgSUQgdGhhdCB5b3UgYXJlIHBlcm1pdHRpbmcgdG8gcHV0IGV2ZW50cyB0byB5b3VyIGRlZmF1bHQgZXZlbnQgYnVzLlxuICAgKiBTcGVjaWZ5ICogdG8gcGVybWl0IGFueSBhY2NvdW50IHRvIHB1dCBldmVudHMgdG8geW91ciBkZWZhdWx0IGV2ZW50IGJ1cywgb3B0aW9uYWxseSBsaW1pdGVkXG4gICAqIGJ5IGNvbmRpdGlvbi5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI3ByaW5jaXBhbCBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI3ByaW5jaXBhbH1cbiAgICovXG4gIHJlYWRvbmx5IHByaW5jaXBhbDogc3RyaW5nO1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBibG9jayB0byBsaW1pdCB0aGUgZXZlbnQgYnVzIHBlcm1pc3Npb25zIHlvdSBhcmUgZ3JhbnRpbmcgdG8gb25seSBhY2NvdW50cyB0aGF0XG4gICAqIGZ1bGZpbGwgdGhlIGNvbmRpdGlvbi5jb25kaXRpb24gYmxvY2tcbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI2NvbmRpdGlvbiBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI2NvbmRpdGlvbn1cbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbj86IGNsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24uQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbkNvbmRpdGlvbjtcbn1cblxuLyoqXG4gKiBBIHNpbmdsZSBwZXJtaXNzaW9uIGZvciBhbiBFdmVudCBCdXNcbiAqXG4gKiBBbGwgQVdTIHJlc291cmNlcyB0aGF0IHN1cHBvcnQgcmVzb3VyY2UgcG9saWNpZXMgaGF2ZSBhIG1ldGhvZCBjYWxsZWRcbiAqIGBhZGRUb1Jlc291cmNlUG9saWN5KClgLCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gKiBwb2xpY3kgaWYgb25lIGRvZXNuJ3QgZXhpc3QgeWV0LCBvdGhlcndpc2UgaXQgd2lsbCBhZGQgdG8gdGhlIGV4aXN0aW5nXG4gKiBwb2xpY3kuXG4gKlxuICogSWYgYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAgd2FzIHVzZWQgb24gdGhlIGV2ZW50IGJ1cywgVGhlIEV2ZW50QnVzUG9saWN5IHJlc291cmNlXG4gKiAoYGF3c19jbG91ZHdhdGNoX2V2ZW50X2J1c19wb2xpY3lgKSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGlzIHJlc291cmNlIGFuZFxuICogd2lsbCBvdmVyd3JpdGUgcGVybWlzc2lvbnMuXG4gKlxuICogQHJlc291cmNlIGF3c19jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb25cbiAqL1xuZXhwb3J0IGNsYXNzIEV2ZW50QnJpZGdlUGVybWlzc2lvbiBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudEJyaWRnZVBlcm1pc3Npb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgbmV3IGNsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24uQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbih0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9wdWxsLzE2ODc0I2Rpc2N1c3Npb25fcjY1NjAyNDgzMFxuICAgICAgLi4ucHJvcHMsXG4gICAgICBldmVudEJ1c05hbWU6IHByb3BzLmV2ZW50QnVzLmV2ZW50QnVzTmFtZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.Match = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
// https://github.com/aws/aws-cdk/blob/v2.156.0/packages/aws-cdk-lib/aws-events/lib/event-pattern.ts
|
|
7
|
-
const
|
|
7
|
+
const cdktn_1 = require("cdktn");
|
|
8
8
|
/**
|
|
9
9
|
* An event pattern matcher
|
|
10
10
|
*/
|
|
@@ -226,16 +226,16 @@ class Match {
|
|
|
226
226
|
return [{ numeric: matchers.flatMap((matcher) => matcher.numeric) }];
|
|
227
227
|
}
|
|
228
228
|
toString() {
|
|
229
|
-
return
|
|
229
|
+
return cdktn_1.Token.asString(this);
|
|
230
230
|
}
|
|
231
231
|
/**
|
|
232
232
|
* A representation of this matcher as a list of strings
|
|
233
233
|
*/
|
|
234
234
|
asList() {
|
|
235
|
-
return
|
|
235
|
+
return cdktn_1.Token.asList(this);
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
exports.Match = Match;
|
|
239
239
|
_a = JSII_RTTI_SYMBOL_1;
|
|
240
|
-
Match[_a] = { fqn: "terraconstructs.aws.notify.Match", version: "0.2.
|
|
241
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2V2ZW50LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvR0FBb0c7QUFFcEcsaUNBQTREO0FBYzVEOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBQ2hCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztP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LDBGQUEwRjtRQUMxRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sYUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxhQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7O0FBaFNILHNCQWlTQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LXBhdHRlcm4udHNcblxuaW1wb3J0IHsgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcblxudHlwZSBDb21wYXJpc29uT3BlcmF0b3IgPSBcIj5cIiB8IFwiPj1cIiB8IFwiPFwiIHwgXCI8PVwiIHwgXCI9XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaG93IHRvIGNvbnN0cnVjdCBtYXRjaGVyc1xuICovXG5pbnRlcmZhY2UgTWF0Y2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxpc3Qgb2YgbWF0Y2hlcnMgc2hvdWxkIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG1hdGNoZXJcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlTWF0Y2hlcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gZXZlbnQgcGF0dGVybiBtYXRjaGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRjaCBpbXBsZW1lbnRzIElSZXNvbHZhYmxlIHtcbiAgLyoqXG4gICAqIE1hdGNoZXMgYSBudWxsIHZhbHVlIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBudWxsVmFsdWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFtudWxsXSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleGlzdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IGV4aXN0czogdHJ1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBhYnNlbnQgZnJvbSB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZG9lc05vdEV4aXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBleGlzdHM6IGZhbHNlIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCBleGFjdGx5LCBpbiB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RTdHJpbmcodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbdmFsdWVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCByZWdhcmRsZXNzIG9mIGNhc2UsIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHByZWZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHByZWZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBzdWZmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1ZmZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHN1ZmZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlIGNhc2luZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwcmVmaXhFcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgcHJlZml4OiB7IFwiZXF1YWxzLWlnbm9yZS1jYXNlXCI6IHZhbHVlIH0gfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBzdWZmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlIGNhc2luZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdWZmaXhFcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgc3VmZml4OiB7IFwiZXF1YWxzLWlnbm9yZS1jYXNlXCI6IHZhbHVlIH0gfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiB3aWxkY2FyZCBwYXR0ZXJuIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aWxkY2FyZCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHdpbGRjYXJkOiB2YWx1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBJUHY0IGFuZCBJUHY2IG5ldHdvcmsgYWRkcmVzc2VzIHVzaW5nIHRoZSBDbGFzc2xlc3MgSW50ZXItRG9tYWluIFJvdXRpbmcgKENJRFIpIGZvcm1hdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaWRyKHJhbmdlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgaXB2NFJlZ2V4ID1cbiAgICAgIC9eKFswLTldezEsM31cXC4pezN9WzAtOV17MSwzfShcXC8oWzAtOV18WzEtMl1bMC05XXwzWzAtMl0pKT8kL2dpbTtcbiAgICBjb25zdCBpcHY2UmVnZXggPVxuICAgICAgL15zKigoKFswLTlBLUZhLWZdezEsNH06KXs3fShbMC05QS1GYS1mXXsxLDR9fDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs2fSg6WzAtOUEtRmEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezV9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezR9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsM30pfCgoOlswLTlBLUZhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXszfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezJ9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNX0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7MX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoOigoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpKSglLispP3MqKFxcLyhbMC05XXxbMS05XVswLTldfDFbMC0xXVswLTldfDEyWzAtOF0pKT8kL2dpbTtcblxuICAgIGlmICghaXB2NFJlZ2V4LnRlc3QocmFuZ2UpICYmICFpcHY2UmVnZXgudGVzdChyYW5nZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBJUCBhZGRyZXNzIHJhbmdlOiAke3JhbmdlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IGNpZHI6IHJhbmdlIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIElQdjQgYW5kIElQdjYgbmV0d29yayBhZGRyZXNzZXMgdXNpbmcgdGhlIENsYXNzbGVzcyBJbnRlci1Eb21haW4gUm91dGluZyAoQ0lEUikgZm9ybWF0LlxuICAgKiBBbGlhcyBvZiBgY2lkcigpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXBBZGRyZXNzUmFuZ2UocmFuZ2U6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gTWF0Y2guY2lkcihyYW5nZSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbnl0aGluZyBleGNlcHQgd2hhdCdzIHByb3ZpZGVkIGluIHRoZSBydWxlLiBUaGUgbGlzdCBvZiBwcm92aWRlZCB2YWx1ZXMgbXVzdCBjb250YWluXG4gICAqIG9ubHkgc3RyaW5ncyBvciBvbmx5IG51bWJlcnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueXRoaW5nQnV0KC4uLnZhbHVlczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImFueXRoaW5nQnV0IG1hdGNoZXJzIG11c3QgYmUgbm9uLWVtcHR5IGxpc3RzXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbE51bWJlcnMgPSB2YWx1ZXMuZXZlcnkoKHYpID0+IHR5cGVvZiB2ID09PSBcIm51bWJlclwiKTtcbiAgICBjb25zdCBhbGxTdHJpbmdzID0gdmFsdWVzLmV2ZXJ5KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIik7XG5cbiAgICBpZiAoIShhbGxOdW1iZXJzIHx8IGFsbFN0cmluZ3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYW55dGhpbmdCdXQgbWF0Y2hlcnMgbXVzdCBiZSBsaXN0cyB0aGF0IGNvbnRhaW4gb25seSBzdHJpbmdzIG9yIG9ubHkgbnVtYmVycy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgXCJhbnl0aGluZy1idXRcIjogdmFsdWVzIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIGdpdmVuIHByZWZpeC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55dGhpbmdCdXRQcmVmaXgoLi4udmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5hbnl0aGluZ0J1dENvbmp1bmN0aW9uKFwicHJlZml4XCIsIHZhbHVlcyk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbnkgc3RyaW5nIHRoYXQgZG9lc24ndCBlbmQgd2l0aCB0aGUgZ2l2ZW4gc3VmZml4LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbnl0aGluZ0J1dFN1ZmZpeCguLi52YWx1ZXM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFueXRoaW5nQnV0Q29uanVuY3Rpb24oXCJzdWZmaXhcIiwgdmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIHdpdGggdGhlIGdpdmVuIHdpbGRjYXJkIHBhdHRlcm4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueXRoaW5nQnV0V2lsZGNhcmQoLi4udmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5hbnl0aGluZ0J1dENvbmp1bmN0aW9uKFwid2lsZGNhcmRcIiwgdmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIHdpdGggdGhlIGdpdmVuIHZhbHVlIHJlZ2FyZGxlc3Mgb2YgY2hhcmFjdGVyIGNhc2luZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55dGhpbmdCdXRFcXVhbHNJZ25vcmVDYXNlKC4uLnZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYW55dGhpbmdCdXRDb25qdW5jdGlvbihcImVxdWFscy1pZ25vcmUtY2FzZVwiLCB2YWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBncmVhdGVyIHRoYW4gdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyZWF0ZXJUaGFuKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIj5cIiwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvLCB0aGUgcHJvdmlkZWQgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ3JlYXRlclRoYW5PckVxdWFsKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIj49XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgbGVzcyB0aGFuIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZXNzVGhhbih2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI8XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgbGVzcyB0aGFuLCBvciBlcXVhbCB0bywgdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlc3NUaGFuT3JFcXVhbCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI8PVwiLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBudW1iZXJzIGVxdWFsIHRvIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI9XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgaW5zaWRlIGEgY2xvc2VkIG51bWVyaWMgaW50ZXJ2YWwuIEVxdWl2YWxlbnQgdG86XG4gICAqXG4gICAqICAgIE1hdGNoLmFsbE9mKE1hdGNoLmdyZWF0ZXJUaGFuT3JFcXVhbChsb3dlciksIE1hdGNoLmxlc3NUaGFuT3JFcXVhbCh1cHBlcikpXG4gICAqXG4gICAqIEBwYXJhbSBsb3dlciBMb3dlciBib3VuZCAoaW5jbHVzaXZlKVxuICAgKiBAcGFyYW0gdXBwZXIgVXBwZXIgYm91bmQgKGluY2x1c2l2ZSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW50ZXJ2YWwobG93ZXI6IG51bWJlciwgdXBwZXI6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgICBpZiAobG93ZXIgPiB1cHBlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVydmFsOiBbJHtsb3dlcn0sICR7dXBwZXJ9XWApO1xuICAgIH1cblxuICAgIHJldHVybiBNYXRjaC5hbGxPZihcbiAgICAgIE1hdGNoLmdyZWF0ZXJUaGFuT3JFcXVhbChsb3dlciksXG4gICAgICBNYXRjaC5sZXNzVGhhbk9yRXF1YWwodXBwZXIpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbiBldmVudCBpZiBhbnkgb2YgdGhlIHByb3ZpZGVkIG1hdGNoZXJzIGRvLiBPbmx5IG51bWVyaWMgbWF0Y2hlcnMgYXJlIGFjY2VwdGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbGxPZiguLi5tYXRjaGVyczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKG1hdGNoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBsaXN0IG9mIG1hdGNoZXJzIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgZWxlbWVudC5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZnJvbU1lcmdlZE9iamVjdHMobWF0Y2hlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgYW4gZXZlbnQgaWYgYW55IG9mIHRoZSBwcm92aWRlZCBtYXRjaGVycyBkb2VzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbnlPZiguLi5tYXRjaGVyczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKG1hdGNoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBsaXN0IG9mIG1hdGNoZXJzIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgZWxlbWVudC5cIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKG1hdGNoZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFueXRoaW5nQnV0Q29uanVuY3Rpb24oXG4gICAgZmlsdGVyS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSxcbiAgKTogc3RyaW5nW10ge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhbnl0aGluZ0J1dCBtYXRjaGVycyBtdXN0IGJlIG5vbi1lbXB0eSBsaXN0c1wiKTtcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZXJlIGlzIGEgc2luZ2xlIHZhbHVlIHJldHVybiBpdCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgYXJyYXlcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlcy5sZW5ndGggPT09IDEgPyB2YWx1ZXNbMF0gOiB2YWx1ZXM7XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBcImFueXRoaW5nLWJ1dFwiOiB7IFtmaWx0ZXJLZXldOiBmaWx0ZXJWYWx1ZSB9IH1dKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG51bWVyaWMoXG4gICAgb3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvcixcbiAgICB2YWx1ZTogbnVtYmVyLFxuICApOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgbnVtZXJpYzogW29wZXJhdG9yLCB2YWx1ZV0gfV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZnJvbU9iamVjdHModmFsdWVzOiBhbnlbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gbmV3IE1hdGNoKHZhbHVlcywgeyBtZXJnZU1hdGNoZXJzOiBmYWxzZSB9KS5hc0xpc3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZyb21NZXJnZWRPYmplY3RzKHZhbHVlczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIG5ldyBNYXRjaCh2YWx1ZXMsIHsgbWVyZ2VNYXRjaGVyczogdHJ1ZSB9KS5hc0xpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGlvblN0YWNrOiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0Y2hlcnM6IGFueVtdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogTWF0Y2hPcHRpb25zLFxuICApIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgc3RhY2sgdHJhY2VzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZS50cyNMOVxuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTQzLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2stdHJhY2UudHMjTDIyXG4gICAgdGhpcy5jcmVhdGlvblN0YWNrID0gW1wic3RhY2sgdHJhY2VzIGRpc2FibGVkXCJdO1xuICB9XG5cbiAgcmVzb2x2ZShjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpOiBhbnkge1xuICAgIGNvbnN0IG1hdGNoZXJzID0gdGhpcy5tYXRjaGVycy5mbGF0TWFwKChtYXRjaGVyKSA9PlxuICAgICAgY29udGV4dC5yZXNvbHZlKG1hdGNoZXIpLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tZXJnZU1hdGNoZXJzID8gdGhpcy5tZXJnZShtYXRjaGVycykgOiBtYXRjaGVycztcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2UobWF0Y2hlcnM6IGFueVtdKTogYW55IHtcbiAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBjYXNlIGZvciBtZXJnaW5nIGF0IHRoZSBtb21lbnQuXG4gICAgLy8gV2UgY2FuIGdlbmVyYWxpemUgdGhpcyBsb2dpYyBpZiBFdmVudEJyaWRnZSBzdGFydHMgc3VwcG9ydGluZyBtb3JlIGNhc2VzIGluIHRoZSBmdXR1cmUuXG4gICAgaWYgKCFtYXRjaGVycy5ldmVyeSgobWF0Y2hlcikgPT4gbWF0Y2hlcj8ubnVtZXJpYykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJPbmx5IG51bWVyaWMgbWF0Y2hlcnMgY2FuIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG1hdGNoZXIuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBbeyBudW1lcmljOiBtYXRjaGVycy5mbGF0TWFwKChtYXRjaGVyKSA9PiBtYXRjaGVyLm51bWVyaWMpIH1dO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG1hdGNoZXIgYXMgYSBsaXN0IG9mIHN0cmluZ3NcbiAgICovXG4gIGFzTGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTGlzdCh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEV2ZW50cyBpbiBBbWF6b24gQ2xvdWRXYXRjaCBFdmVudHMgYXJlIHJlcHJlc2VudGVkIGFzIEpTT04gb2JqZWN0cy4gRm9yIG1vcmVcbiAqIGluZm9ybWF0aW9uIGFib3V0IEpTT04gb2JqZWN0cywgc2VlIFJGQyA3MTU5LlxuICpcbiAqICoqSW1wb3J0YW50Kio6IHRoaXMgY2xhc3MgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGEgYFJ1bGVgIGNsYXNzLiBJbiBwYXJ0aWN1bGFyLFxuICogZG8gbm90IHVzZSBpdCB3aXRoIGBDZm5SdWxlYCBjbGFzczogeW91ciBwYXR0ZXJuIHdpbGwgbm90IGJlIHJlbmRlcmVkXG4gKiBjb3JyZWN0bHkuIEluIGEgYENmblJ1bGVgIGNsYXNzLCB3cml0ZSB0aGUgcGF0dGVybiBhcyB5b3Ugbm9ybWFsbHkgd291bGQgd2hlblxuICogZGlyZWN0bHkgd3JpdGluZyBDbG91ZEZvcm1hdGlvbi5cbiAqXG4gKiBSdWxlcyB1c2UgZXZlbnQgcGF0dGVybnMgdG8gc2VsZWN0IGV2ZW50cyBhbmQgcm91dGUgdGhlbSB0byB0YXJnZXRzLiBBXG4gKiBwYXR0ZXJuIGVpdGhlciBtYXRjaGVzIGFuIGV2ZW50IG9yIGl0IGRvZXNuJ3QuIEV2ZW50IHBhdHRlcm5zIGFyZSByZXByZXNlbnRlZFxuICogYXMgSlNPTiBvYmplY3RzIHdpdGggYSBzdHJ1Y3R1cmUgdGhhdCBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgZXZlbnRzLlxuICpcbiAqIEl0IGlzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGUgZm9sbG93aW5nIGFib3V0IGV2ZW50IHBhdHRlcm4gbWF0Y2hpbmc6XG4gKlxuICogLSBGb3IgYSBwYXR0ZXJuIHRvIG1hdGNoIGFuIGV2ZW50LCB0aGUgZXZlbnQgbXVzdCBjb250YWluIGFsbCB0aGUgZmllbGQgbmFtZXNcbiAqICAgbGlzdGVkIGluIHRoZSBwYXR0ZXJuLiBUaGUgZmllbGQgbmFtZXMgbXVzdCBhcHBlYXIgaW4gdGhlIGV2ZW50IHdpdGggdGhlXG4gKiAgIHNhbWUgbmVzdGluZyBzdHJ1Y3R1cmUuXG4gKlxuICogLSBPdGhlciBmaWVsZHMgb2YgdGhlIGV2ZW50IG5vdCBtZW50aW9uZWQgaW4gdGhlIHBhdHRlcm4gYXJlIGlnbm9yZWQ7XG4gKiAgIGVmZmVjdGl2ZWx5LCB0aGVyZSBpcyBhIGBgXCIqXCI6IFwiKlwiYGAgd2lsZGNhcmQgZm9yIGZpZWxkcyBub3QgbWVudGlvbmVkLlxuICpcbiAqIC0gVGhlIG1hdGNoaW5nIGlzIGV4YWN0IChjaGFyYWN0ZXItYnktY2hhcmFjdGVyKSwgd2l0aG91dCBjYXNlLWZvbGRpbmcgb3IgYW55XG4gKiAgIG90aGVyIHN0cmluZyBub3JtYWxpemF0aW9uLlxuICpcbiAqIC0gVGhlIHZhbHVlcyBiZWluZyBtYXRjaGVkIGZvbGxvdyBKU09OIHJ1bGVzOiBTdHJpbmdzIGVuY2xvc2VkIGluIHF1b3RlcyxcbiAqICAgbnVtYmVycywgYW5kIHRoZSB1bnF1b3RlZCBrZXl3b3JkcyB0cnVlLCBmYWxzZSwgYW5kIG51bGwuXG4gKlxuICogLSBOdW1iZXIgbWF0Y2hpbmcgaXMgYXQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBsZXZlbC4gRm9yIGV4YW1wbGUsIDMwMCxcbiAqICAgMzAwLjAsIGFuZCAzLjBlMiBhcmUgbm90IGNvbnNpZGVyZWQgZXF1YWwuXG4gKlxuICogRm9yIGN1c3RvbSBldmVudHMsIHNvbWUgb3B0aW9uYWwgcHJvcGVydGllcyBhcmUgcmVxdWlyZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIFtNaW5pbXVtIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgYSB2YWxpZCBjdXN0b20gZXZlbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL2ViLWV2ZW50cy1zdHJ1Y3R1cmUuaHRtbCNlYi1jdXN0b20tZXZlbnQpLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9DbG91ZFdhdGNoRXZlbnRzYW5kRXZlbnRQYXR0ZXJucy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQYXR0ZXJuIHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaXMgc2V0IHRvIDAgKHplcm8pIGluIGFsbCBldmVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSB1bmlxdWUgdmFsdWUgaXMgZ2VuZXJhdGVkIGZvciBldmVyeSBldmVudC4gVGhpcyBjYW4gYmUgaGVscGZ1bCBpblxuICAgKiB0cmFjaW5nIGV2ZW50cyBhcyB0aGV5IG1vdmUgdGhyb3VnaCBydWxlcyB0byB0YXJnZXRzLCBhbmQgYXJlIHByb2Nlc3NlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gaWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMsIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIHNvdXJjZSBmaWVsZCwgdGhlIGZpZWxkcyBhbmQgdmFsdWVzXG4gICAqIHRoYXQgYXBwZWFyIGluIHRoZSBkZXRhaWwgZmllbGQuXG4gICAqXG4gICAqIFJlcHJlc2VudHMgdGhlIFwiZGV0YWlsLXR5cGVcIiBldmVudCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gZGV0YWlsIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbFR5cGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgc2VydmljZSB0aGF0IHNvdXJjZWQgdGhlIGV2ZW50LiBBbGwgZXZlbnRzIHNvdXJjZWQgZnJvbVxuICAgKiB3aXRoaW4gQVdTIGJlZ2luIHdpdGggXCJhd3MuXCIgQ3VzdG9tZXItZ2VuZXJhdGVkIGV2ZW50cyBjYW4gaGF2ZSBhbnkgdmFsdWVcbiAgICogaGVyZSwgYXMgbG9uZyBhcyBpdCBkb2Vzbid0IGJlZ2luIHdpdGggXCJhd3MuXCIgV2UgcmVjb21tZW5kIHRoZSB1c2Ugb2ZcbiAgICogSmF2YSBwYWNrYWdlLW5hbWUgc3R5bGUgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHJpbmdzLlxuICAgKlxuICAgKiBUbyBmaW5kIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBzb3VyY2UgZm9yIGFuIEFXUyBzZXJ2aWNlLCBzZWUgdGhlIHRhYmxlIGluXG4gICAqIEFXUyBTZXJ2aWNlIE5hbWVzcGFjZXMuIEZvciBleGFtcGxlLCB0aGUgc291cmNlIHZhbHVlIGZvciBBbWF6b25cbiAgICogQ2xvdWRGcm9udCBpcyBhd3MuY2xvdWRmcm9udC5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nZW5lcmFsL2xhdGVzdC9nci9hd3MtYXJucy1hbmQtbmFtZXNwYWNlcy5odG1sI2dlbnJlZi1hd3Mtc2VydmljZS1uYW1lc3BhY2VzXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSAxMi1kaWdpdCBudW1iZXIgaWRlbnRpZnlpbmcgYW4gQVdTIGFjY291bnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRpbWVzdGFtcCwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgc2VydmljZSBvcmlnaW5hdGluZ1xuICAgKiB0aGUgZXZlbnQuIElmIHRoZSBldmVudCBzcGFucyBhIHRpbWUgaW50ZXJ2YWwsIHRoZSBzZXJ2aWNlIG1pZ2h0IGNob29zZVxuICAgKiB0byByZXBvcnQgdGhlIHN0YXJ0IHRpbWUsIHNvIHRoaXMgdmFsdWUgY2FuIGJlIG5vdGljZWFibHkgYmVmb3JlIHRoZSB0aW1lXG4gICAqIHRoZSBldmVudCBpcyBhY3R1YWxseSByZWNlaXZlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoZSBldmVudCBvcmlnaW5hdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGlzIEpTT04gYXJyYXkgY29udGFpbnMgQVJOcyB0aGF0IGlkZW50aWZ5IHJlc291cmNlcyB0aGF0IGFyZSBpbnZvbHZlZFxuICAgKiBpbiB0aGUgZXZlbnQuIEluY2x1c2lvbiBvZiB0aGVzZSBBUk5zIGlzIGF0IHRoZSBkaXNjcmV0aW9uIG9mIHRoZVxuICAgKiBzZXJ2aWNlLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgQW1hem9uIEVDMiBpbnN0YW5jZSBzdGF0ZS1jaGFuZ2VzIGluY2x1ZGUgQW1hem9uIEVDMlxuICAgKiBpbnN0YW5jZSBBUk5zLCBBdXRvIFNjYWxpbmcgZXZlbnRzIGluY2x1ZGUgQVJOcyBmb3IgYm90aCBpbnN0YW5jZXMgYW5kXG4gICAqIEF1dG8gU2NhbGluZyBncm91cHMsIGJ1dCBBUEkgY2FsbHMgd2l0aCBBV1MgQ2xvdWRUcmFpbCBkbyBub3QgaW5jbHVkZVxuICAgKiByZXNvdXJjZSBBUk5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgSlNPTiBvYmplY3QsIHdob3NlIGNvbnRlbnQgaXMgYXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlIHNlcnZpY2VcbiAgICogb3JpZ2luYXRpbmcgdGhlIGV2ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiBkZXRhaWxcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG4iXX0=
|
|
240
|
+
Match[_a] = { fqn: "terraconstructs.aws.notify.Match", version: "0.2.6" };
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2V2ZW50LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvR0FBb0c7QUFFcEcsaUNBQTREO0FBYzVEOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBQ2hCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztP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LDBGQUEwRjtRQUMxRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sYUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxhQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7O0FBaFNILHNCQWlTQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LXBhdHRlcm4udHNcblxuaW1wb3J0IHsgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgVG9rZW4gfSBmcm9tIFwiY2RrdG5cIjtcblxudHlwZSBDb21wYXJpc29uT3BlcmF0b3IgPSBcIj5cIiB8IFwiPj1cIiB8IFwiPFwiIHwgXCI8PVwiIHwgXCI9XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaG93IHRvIGNvbnN0cnVjdCBtYXRjaGVyc1xuICovXG5pbnRlcmZhY2UgTWF0Y2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxpc3Qgb2YgbWF0Y2hlcnMgc2hvdWxkIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG1hdGNoZXJcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlTWF0Y2hlcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gZXZlbnQgcGF0dGVybiBtYXRjaGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRjaCBpbXBsZW1lbnRzIElSZXNvbHZhYmxlIHtcbiAgLyoqXG4gICAqIE1hdGNoZXMgYSBudWxsIHZhbHVlIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBudWxsVmFsdWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFtudWxsXSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleGlzdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IGV4aXN0czogdHJ1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBhYnNlbnQgZnJvbSB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZG9lc05vdEV4aXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBleGlzdHM6IGZhbHNlIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCBleGFjdGx5LCBpbiB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RTdHJpbmcodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbdmFsdWVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCByZWdhcmRsZXNzIG9mIGNhc2UsIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHByZWZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHByZWZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBzdWZmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1ZmZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHN1ZmZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlIGNhc2luZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwcmVmaXhFcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgcHJlZml4OiB7IFwiZXF1YWxzLWlnbm9yZS1jYXNlXCI6IHZhbHVlIH0gfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBzdWZmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlIGNhc2luZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdWZmaXhFcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgc3VmZml4OiB7IFwiZXF1YWxzLWlnbm9yZS1jYXNlXCI6IHZhbHVlIH0gfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiB3aWxkY2FyZCBwYXR0ZXJuIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aWxkY2FyZCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHdpbGRjYXJkOiB2YWx1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBJUHY0IGFuZCBJUHY2IG5ldHdvcmsgYWRkcmVzc2VzIHVzaW5nIHRoZSBDbGFzc2xlc3MgSW50ZXItRG9tYWluIFJvdXRpbmcgKENJRFIpIGZvcm1hdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaWRyKHJhbmdlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgaXB2NFJlZ2V4ID1cbiAgICAgIC9eKFswLTldezEsM31cXC4pezN9WzAtOV17MSwzfShcXC8oWzAtOV18WzEtMl1bMC05XXwzWzAtMl0pKT8kL2dpbTtcbiAgICBjb25zdCBpcHY2UmVnZXggPVxuICAgICAgL15zKigoKFswLTlBLUZhLWZdezEsNH06KXs3fShbMC05QS1GYS1mXXsxLDR9fDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs2fSg6WzAtOUEtRmEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezV9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezR9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsM30pfCgoOlswLTlBLUZhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXszfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezJ9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNX0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7MX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoOigoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpKSglLispP3MqKFxcLyhbMC05XXxbMS05XVswLTldfDFbMC0xXVswLTldfDEyWzAtOF0pKT8kL2dpbTtcblxuICAgIGlmICghaXB2NFJlZ2V4LnRlc3QocmFuZ2UpICYmICFpcHY2UmVnZXgudGVzdChyYW5nZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBJUCBhZGRyZXNzIHJhbmdlOiAke3JhbmdlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IGNpZHI6IHJhbmdlIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIElQdjQgYW5kIElQdjYgbmV0d29yayBhZGRyZXNzZXMgdXNpbmcgdGhlIENsYXNzbGVzcyBJbnRlci1Eb21haW4gUm91dGluZyAoQ0lEUikgZm9ybWF0LlxuICAgKiBBbGlhcyBvZiBgY2lkcigpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXBBZGRyZXNzUmFuZ2UocmFuZ2U6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gTWF0Y2guY2lkcihyYW5nZSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbnl0aGluZyBleGNlcHQgd2hhdCdzIHByb3ZpZGVkIGluIHRoZSBydWxlLiBUaGUgbGlzdCBvZiBwcm92aWRlZCB2YWx1ZXMgbXVzdCBjb250YWluXG4gICAqIG9ubHkgc3RyaW5ncyBvciBvbmx5IG51bWJlcnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueXRoaW5nQnV0KC4uLnZhbHVlczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImFueXRoaW5nQnV0IG1hdGNoZXJzIG11c3QgYmUgbm9uLWVtcHR5IGxpc3RzXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbE51bWJlcnMgPSB2YWx1ZXMuZXZlcnkoKHYpID0+IHR5cGVvZiB2ID09PSBcIm51bWJlclwiKTtcbiAgICBjb25zdCBhbGxTdHJpbmdzID0gdmFsdWVzLmV2ZXJ5KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIik7XG5cbiAgICBpZiAoIShhbGxOdW1iZXJzIHx8IGFsbFN0cmluZ3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYW55dGhpbmdCdXQgbWF0Y2hlcnMgbXVzdCBiZSBsaXN0cyB0aGF0IGNvbnRhaW4gb25seSBzdHJpbmdzIG9yIG9ubHkgbnVtYmVycy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgXCJhbnl0aGluZy1idXRcIjogdmFsdWVzIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIGdpdmVuIHByZWZpeC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55dGhpbmdCdXRQcmVmaXgoLi4udmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5hbnl0aGluZ0J1dENvbmp1bmN0aW9uKFwicHJlZml4XCIsIHZhbHVlcyk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbnkgc3RyaW5nIHRoYXQgZG9lc24ndCBlbmQgd2l0aCB0aGUgZ2l2ZW4gc3VmZml4LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbnl0aGluZ0J1dFN1ZmZpeCguLi52YWx1ZXM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFueXRoaW5nQnV0Q29uanVuY3Rpb24oXCJzdWZmaXhcIiwgdmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIHdpdGggdGhlIGdpdmVuIHdpbGRjYXJkIHBhdHRlcm4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueXRoaW5nQnV0V2lsZGNhcmQoLi4udmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5hbnl0aGluZ0J1dENvbmp1bmN0aW9uKFwid2lsZGNhcmRcIiwgdmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIHdpdGggdGhlIGdpdmVuIHZhbHVlIHJlZ2FyZGxlc3Mgb2YgY2hhcmFjdGVyIGNhc2luZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55dGhpbmdCdXRFcXVhbHNJZ25vcmVDYXNlKC4uLnZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYW55dGhpbmdCdXRDb25qdW5jdGlvbihcImVxdWFscy1pZ25vcmUtY2FzZVwiLCB2YWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBncmVhdGVyIHRoYW4gdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyZWF0ZXJUaGFuKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIj5cIiwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvLCB0aGUgcHJvdmlkZWQgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ3JlYXRlclRoYW5PckVxdWFsKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIj49XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgbGVzcyB0aGFuIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZXNzVGhhbih2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI8XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgbGVzcyB0aGFuLCBvciBlcXVhbCB0bywgdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlc3NUaGFuT3JFcXVhbCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI8PVwiLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBudW1iZXJzIGVxdWFsIHRvIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI9XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgaW5zaWRlIGEgY2xvc2VkIG51bWVyaWMgaW50ZXJ2YWwuIEVxdWl2YWxlbnQgdG86XG4gICAqXG4gICAqICAgIE1hdGNoLmFsbE9mKE1hdGNoLmdyZWF0ZXJUaGFuT3JFcXVhbChsb3dlciksIE1hdGNoLmxlc3NUaGFuT3JFcXVhbCh1cHBlcikpXG4gICAqXG4gICAqIEBwYXJhbSBsb3dlciBMb3dlciBib3VuZCAoaW5jbHVzaXZlKVxuICAgKiBAcGFyYW0gdXBwZXIgVXBwZXIgYm91bmQgKGluY2x1c2l2ZSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW50ZXJ2YWwobG93ZXI6IG51bWJlciwgdXBwZXI6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgICBpZiAobG93ZXIgPiB1cHBlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVydmFsOiBbJHtsb3dlcn0sICR7dXBwZXJ9XWApO1xuICAgIH1cblxuICAgIHJldHVybiBNYXRjaC5hbGxPZihcbiAgICAgIE1hdGNoLmdyZWF0ZXJUaGFuT3JFcXVhbChsb3dlciksXG4gICAgICBNYXRjaC5sZXNzVGhhbk9yRXF1YWwodXBwZXIpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbiBldmVudCBpZiBhbnkgb2YgdGhlIHByb3ZpZGVkIG1hdGNoZXJzIGRvLiBPbmx5IG51bWVyaWMgbWF0Y2hlcnMgYXJlIGFjY2VwdGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbGxPZiguLi5tYXRjaGVyczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKG1hdGNoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBsaXN0IG9mIG1hdGNoZXJzIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgZWxlbWVudC5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZnJvbU1lcmdlZE9iamVjdHMobWF0Y2hlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgYW4gZXZlbnQgaWYgYW55IG9mIHRoZSBwcm92aWRlZCBtYXRjaGVycyBkb2VzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbnlPZiguLi5tYXRjaGVyczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKG1hdGNoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBsaXN0IG9mIG1hdGNoZXJzIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgZWxlbWVudC5cIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKG1hdGNoZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFueXRoaW5nQnV0Q29uanVuY3Rpb24oXG4gICAgZmlsdGVyS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSxcbiAgKTogc3RyaW5nW10ge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhbnl0aGluZ0J1dCBtYXRjaGVycyBtdXN0IGJlIG5vbi1lbXB0eSBsaXN0c1wiKTtcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZXJlIGlzIGEgc2luZ2xlIHZhbHVlIHJldHVybiBpdCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgYXJyYXlcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlcy5sZW5ndGggPT09IDEgPyB2YWx1ZXNbMF0gOiB2YWx1ZXM7XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBcImFueXRoaW5nLWJ1dFwiOiB7IFtmaWx0ZXJLZXldOiBmaWx0ZXJWYWx1ZSB9IH1dKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG51bWVyaWMoXG4gICAgb3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvcixcbiAgICB2YWx1ZTogbnVtYmVyLFxuICApOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgbnVtZXJpYzogW29wZXJhdG9yLCB2YWx1ZV0gfV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZnJvbU9iamVjdHModmFsdWVzOiBhbnlbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gbmV3IE1hdGNoKHZhbHVlcywgeyBtZXJnZU1hdGNoZXJzOiBmYWxzZSB9KS5hc0xpc3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZyb21NZXJnZWRPYmplY3RzKHZhbHVlczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIG5ldyBNYXRjaCh2YWx1ZXMsIHsgbWVyZ2VNYXRjaGVyczogdHJ1ZSB9KS5hc0xpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGlvblN0YWNrOiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0Y2hlcnM6IGFueVtdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogTWF0Y2hPcHRpb25zLFxuICApIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgc3RhY2sgdHJhY2VzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZS50cyNMOVxuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTQzLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2stdHJhY2UudHMjTDIyXG4gICAgdGhpcy5jcmVhdGlvblN0YWNrID0gW1wic3RhY2sgdHJhY2VzIGRpc2FibGVkXCJdO1xuICB9XG5cbiAgcmVzb2x2ZShjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpOiBhbnkge1xuICAgIGNvbnN0IG1hdGNoZXJzID0gdGhpcy5tYXRjaGVycy5mbGF0TWFwKChtYXRjaGVyKSA9PlxuICAgICAgY29udGV4dC5yZXNvbHZlKG1hdGNoZXIpLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tZXJnZU1hdGNoZXJzID8gdGhpcy5tZXJnZShtYXRjaGVycykgOiBtYXRjaGVycztcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2UobWF0Y2hlcnM6IGFueVtdKTogYW55IHtcbiAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBjYXNlIGZvciBtZXJnaW5nIGF0IHRoZSBtb21lbnQuXG4gICAgLy8gV2UgY2FuIGdlbmVyYWxpemUgdGhpcyBsb2dpYyBpZiBFdmVudEJyaWRnZSBzdGFydHMgc3VwcG9ydGluZyBtb3JlIGNhc2VzIGluIHRoZSBmdXR1cmUuXG4gICAgaWYgKCFtYXRjaGVycy5ldmVyeSgobWF0Y2hlcikgPT4gbWF0Y2hlcj8ubnVtZXJpYykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJPbmx5IG51bWVyaWMgbWF0Y2hlcnMgY2FuIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG1hdGNoZXIuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBbeyBudW1lcmljOiBtYXRjaGVycy5mbGF0TWFwKChtYXRjaGVyKSA9PiBtYXRjaGVyLm51bWVyaWMpIH1dO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG1hdGNoZXIgYXMgYSBsaXN0IG9mIHN0cmluZ3NcbiAgICovXG4gIGFzTGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTGlzdCh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEV2ZW50cyBpbiBBbWF6b24gQ2xvdWRXYXRjaCBFdmVudHMgYXJlIHJlcHJlc2VudGVkIGFzIEpTT04gb2JqZWN0cy4gRm9yIG1vcmVcbiAqIGluZm9ybWF0aW9uIGFib3V0IEpTT04gb2JqZWN0cywgc2VlIFJGQyA3MTU5LlxuICpcbiAqICoqSW1wb3J0YW50Kio6IHRoaXMgY2xhc3MgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGEgYFJ1bGVgIGNsYXNzLiBJbiBwYXJ0aWN1bGFyLFxuICogZG8gbm90IHVzZSBpdCB3aXRoIGBDZm5SdWxlYCBjbGFzczogeW91ciBwYXR0ZXJuIHdpbGwgbm90IGJlIHJlbmRlcmVkXG4gKiBjb3JyZWN0bHkuIEluIGEgYENmblJ1bGVgIGNsYXNzLCB3cml0ZSB0aGUgcGF0dGVybiBhcyB5b3Ugbm9ybWFsbHkgd291bGQgd2hlblxuICogZGlyZWN0bHkgd3JpdGluZyBDbG91ZEZvcm1hdGlvbi5cbiAqXG4gKiBSdWxlcyB1c2UgZXZlbnQgcGF0dGVybnMgdG8gc2VsZWN0IGV2ZW50cyBhbmQgcm91dGUgdGhlbSB0byB0YXJnZXRzLiBBXG4gKiBwYXR0ZXJuIGVpdGhlciBtYXRjaGVzIGFuIGV2ZW50IG9yIGl0IGRvZXNuJ3QuIEV2ZW50IHBhdHRlcm5zIGFyZSByZXByZXNlbnRlZFxuICogYXMgSlNPTiBvYmplY3RzIHdpdGggYSBzdHJ1Y3R1cmUgdGhhdCBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgZXZlbnRzLlxuICpcbiAqIEl0IGlzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGUgZm9sbG93aW5nIGFib3V0IGV2ZW50IHBhdHRlcm4gbWF0Y2hpbmc6XG4gKlxuICogLSBGb3IgYSBwYXR0ZXJuIHRvIG1hdGNoIGFuIGV2ZW50LCB0aGUgZXZlbnQgbXVzdCBjb250YWluIGFsbCB0aGUgZmllbGQgbmFtZXNcbiAqICAgbGlzdGVkIGluIHRoZSBwYXR0ZXJuLiBUaGUgZmllbGQgbmFtZXMgbXVzdCBhcHBlYXIgaW4gdGhlIGV2ZW50IHdpdGggdGhlXG4gKiAgIHNhbWUgbmVzdGluZyBzdHJ1Y3R1cmUuXG4gKlxuICogLSBPdGhlciBmaWVsZHMgb2YgdGhlIGV2ZW50IG5vdCBtZW50aW9uZWQgaW4gdGhlIHBhdHRlcm4gYXJlIGlnbm9yZWQ7XG4gKiAgIGVmZmVjdGl2ZWx5LCB0aGVyZSBpcyBhIGBgXCIqXCI6IFwiKlwiYGAgd2lsZGNhcmQgZm9yIGZpZWxkcyBub3QgbWVudGlvbmVkLlxuICpcbiAqIC0gVGhlIG1hdGNoaW5nIGlzIGV4YWN0IChjaGFyYWN0ZXItYnktY2hhcmFjdGVyKSwgd2l0aG91dCBjYXNlLWZvbGRpbmcgb3IgYW55XG4gKiAgIG90aGVyIHN0cmluZyBub3JtYWxpemF0aW9uLlxuICpcbiAqIC0gVGhlIHZhbHVlcyBiZWluZyBtYXRjaGVkIGZvbGxvdyBKU09OIHJ1bGVzOiBTdHJpbmdzIGVuY2xvc2VkIGluIHF1b3RlcyxcbiAqICAgbnVtYmVycywgYW5kIHRoZSB1bnF1b3RlZCBrZXl3b3JkcyB0cnVlLCBmYWxzZSwgYW5kIG51bGwuXG4gKlxuICogLSBOdW1iZXIgbWF0Y2hpbmcgaXMgYXQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBsZXZlbC4gRm9yIGV4YW1wbGUsIDMwMCxcbiAqICAgMzAwLjAsIGFuZCAzLjBlMiBhcmUgbm90IGNvbnNpZGVyZWQgZXF1YWwuXG4gKlxuICogRm9yIGN1c3RvbSBldmVudHMsIHNvbWUgb3B0aW9uYWwgcHJvcGVydGllcyBhcmUgcmVxdWlyZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIFtNaW5pbXVtIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgYSB2YWxpZCBjdXN0b20gZXZlbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL2ViLWV2ZW50cy1zdHJ1Y3R1cmUuaHRtbCNlYi1jdXN0b20tZXZlbnQpLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9DbG91ZFdhdGNoRXZlbnRzYW5kRXZlbnRQYXR0ZXJucy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQYXR0ZXJuIHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaXMgc2V0IHRvIDAgKHplcm8pIGluIGFsbCBldmVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSB1bmlxdWUgdmFsdWUgaXMgZ2VuZXJhdGVkIGZvciBldmVyeSBldmVudC4gVGhpcyBjYW4gYmUgaGVscGZ1bCBpblxuICAgKiB0cmFjaW5nIGV2ZW50cyBhcyB0aGV5IG1vdmUgdGhyb3VnaCBydWxlcyB0byB0YXJnZXRzLCBhbmQgYXJlIHByb2Nlc3NlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gaWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMsIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIHNvdXJjZSBmaWVsZCwgdGhlIGZpZWxkcyBhbmQgdmFsdWVzXG4gICAqIHRoYXQgYXBwZWFyIGluIHRoZSBkZXRhaWwgZmllbGQuXG4gICAqXG4gICAqIFJlcHJlc2VudHMgdGhlIFwiZGV0YWlsLXR5cGVcIiBldmVudCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gZGV0YWlsIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbFR5cGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgc2VydmljZSB0aGF0IHNvdXJjZWQgdGhlIGV2ZW50LiBBbGwgZXZlbnRzIHNvdXJjZWQgZnJvbVxuICAgKiB3aXRoaW4gQVdTIGJlZ2luIHdpdGggXCJhd3MuXCIgQ3VzdG9tZXItZ2VuZXJhdGVkIGV2ZW50cyBjYW4gaGF2ZSBhbnkgdmFsdWVcbiAgICogaGVyZSwgYXMgbG9uZyBhcyBpdCBkb2Vzbid0IGJlZ2luIHdpdGggXCJhd3MuXCIgV2UgcmVjb21tZW5kIHRoZSB1c2Ugb2ZcbiAgICogSmF2YSBwYWNrYWdlLW5hbWUgc3R5bGUgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHJpbmdzLlxuICAgKlxuICAgKiBUbyBmaW5kIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBzb3VyY2UgZm9yIGFuIEFXUyBzZXJ2aWNlLCBzZWUgdGhlIHRhYmxlIGluXG4gICAqIEFXUyBTZXJ2aWNlIE5hbWVzcGFjZXMuIEZvciBleGFtcGxlLCB0aGUgc291cmNlIHZhbHVlIGZvciBBbWF6b25cbiAgICogQ2xvdWRGcm9udCBpcyBhd3MuY2xvdWRmcm9udC5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nZW5lcmFsL2xhdGVzdC9nci9hd3MtYXJucy1hbmQtbmFtZXNwYWNlcy5odG1sI2dlbnJlZi1hd3Mtc2VydmljZS1uYW1lc3BhY2VzXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSAxMi1kaWdpdCBudW1iZXIgaWRlbnRpZnlpbmcgYW4gQVdTIGFjY291bnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRpbWVzdGFtcCwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgc2VydmljZSBvcmlnaW5hdGluZ1xuICAgKiB0aGUgZXZlbnQuIElmIHRoZSBldmVudCBzcGFucyBhIHRpbWUgaW50ZXJ2YWwsIHRoZSBzZXJ2aWNlIG1pZ2h0IGNob29zZVxuICAgKiB0byByZXBvcnQgdGhlIHN0YXJ0IHRpbWUsIHNvIHRoaXMgdmFsdWUgY2FuIGJlIG5vdGljZWFibHkgYmVmb3JlIHRoZSB0aW1lXG4gICAqIHRoZSBldmVudCBpcyBhY3R1YWxseSByZWNlaXZlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoZSBldmVudCBvcmlnaW5hdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGlzIEpTT04gYXJyYXkgY29udGFpbnMgQVJOcyB0aGF0IGlkZW50aWZ5IHJlc291cmNlcyB0aGF0IGFyZSBpbnZvbHZlZFxuICAgKiBpbiB0aGUgZXZlbnQuIEluY2x1c2lvbiBvZiB0aGVzZSBBUk5zIGlzIGF0IHRoZSBkaXNjcmV0aW9uIG9mIHRoZVxuICAgKiBzZXJ2aWNlLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgQW1hem9uIEVDMiBpbnN0YW5jZSBzdGF0ZS1jaGFuZ2VzIGluY2x1ZGUgQW1hem9uIEVDMlxuICAgKiBpbnN0YW5jZSBBUk5zLCBBdXRvIFNjYWxpbmcgZXZlbnRzIGluY2x1ZGUgQVJOcyBmb3IgYm90aCBpbnN0YW5jZXMgYW5kXG4gICAqIEF1dG8gU2NhbGluZyBncm91cHMsIGJ1dCBBUEkgY2FsbHMgd2l0aCBBV1MgQ2xvdWRUcmFpbCBkbyBub3QgaW5jbHVkZVxuICAgKiByZXNvdXJjZSBBUk5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgSlNPTiBvYmplY3QsIHdob3NlIGNvbnRlbnQgaXMgYXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlIHNlcnZpY2VcbiAgICogb3JpZ2luYXRpbmcgdGhlIGV2ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiBkZXRhaWxcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG4iXX0=
|