terraconstructs 0.0.14 → 0.0.16
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 +6323 -4796
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.js +1 -1
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- 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.js +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
- 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.js +1 -1
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +1 -1
- package/lib/aws/cloudwatch/metric.js +2 -2
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +1 -1
- 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/activity.js +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +1 -1
- package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
- package/lib/aws/compute/alb/application-listener-rule.js +1 -1
- package/lib/aws/compute/alb/application-listener.js +1 -1
- package/lib/aws/compute/alb/application-load-balancer.js +1 -1
- package/lib/aws/compute/alb/application-target-group.js +1 -1
- package/lib/aws/compute/alb/conditions.js +1 -1
- package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
- package/lib/aws/compute/alb/trust-store.js +1 -1
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/bastion-host.js +1 -1
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +2 -2
- package/lib/aws/compute/client-vpn-route.js +2 -2
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +1 -1
- 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 +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +2 -2
- 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.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function.js +1 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +3 -3
- package/lib/aws/compute/ip-addresses.js +2 -2
- package/lib/aws/compute/ipam.js +1 -1
- package/lib/aws/compute/key-pair.js +1 -1
- package/lib/aws/compute/launch-template.js +2 -2
- package/lib/aws/compute/lb-shared/base-listener.js +1 -1
- package/lib/aws/compute/lb-shared/base-load-balancer.js +1 -1
- package/lib/aws/compute/lb-shared/base-target-group.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-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.js +3 -3
- 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 +8 -8
- package/lib/aws/compute/nat.js +5 -5
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.js +3 -3
- package/lib/aws/compute/nlb/network-listener-action.js +1 -1
- package/lib/aws/compute/nlb/network-listener.js +1 -1
- package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
- package/lib/aws/compute/nlb/network-target-group.js +1 -1
- package/lib/aws/compute/peer.js +1 -1
- package/lib/aws/compute/placement-group.js +1 -1
- package/lib/aws/compute/port.js +1 -1
- package/lib/aws/compute/prefix-list.js +1 -1
- package/lib/aws/compute/route.js +8 -8
- package/lib/aws/compute/security-group.js +1 -1
- 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.js +4 -4
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- 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 +1 -1
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- 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 +1 -1
- 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/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- 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 +1 -1
- 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/user-data.js +3 -3
- package/lib/aws/compute/volume.js +2 -2
- package/lib/aws/compute/vpc-endpoint-service.js +1 -1
- package/lib/aws/compute/vpc-endpoint.js +6 -6
- package/lib/aws/compute/vpc-flow-logs.js +4 -4
- package/lib/aws/compute/vpc-v2-base.js +1 -1
- package/lib/aws/compute/vpc-v2.js +2 -2
- package/lib/aws/compute/vpc.js +4 -4
- package/lib/aws/compute/vpn.js +3 -3
- package/lib/aws/edge/certificate.js +1 -1
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +2 -2
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.js +1 -1
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +3 -3
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +2 -2
- package/lib/aws/iam/group.d.ts +146 -0
- package/lib/aws/iam/group.js +199 -0
- package/lib/aws/iam/index.d.ts +2 -0
- package/lib/aws/iam/index.js +3 -1
- package/lib/aws/iam/instance-profile.js +1 -1
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement.js +1 -1
- package/lib/aws/iam/policy.d.ts +26 -0
- package/lib/aws/iam/policy.js +65 -4
- package/lib/aws/iam/principals.js +20 -20
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.js +2 -2
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/user.d.ts +174 -0
- package/lib/aws/iam/user.js +236 -0
- package/lib/aws/network/simple-ipv4-vpc.js +1 -1
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.js +4 -4
- package/lib/aws/notify/archive.js +1 -1
- package/lib/aws/notify/connection.js +3 -3
- package/lib/aws/notify/event-bus.js +3 -3
- package/lib/aws/notify/event-pattern.js +1 -1
- package/lib/aws/notify/input.js +2 -2
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +1 -1
- package/lib/aws/notify/schedule.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/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.js +1 -1
- package/lib/aws/storage/bucket.js +2 -2
- package/lib/aws/storage/notification-targets/function.js +1 -1
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.js +1 -1
- package/lib/aws/storage/parameter.js +2 -2
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/size.js +1 -1
- package/lib/stack-base.js +1 -1
- package/lib/terra-func.js +1 -1
- package/package.json +1 -1
|
@@ -1679,5 +1679,5 @@ class InstanceType {
|
|
|
1679
1679
|
}
|
|
1680
1680
|
exports.InstanceType = InstanceType;
|
|
1681
1681
|
_a = JSII_RTTI_SYMBOL_1;
|
|
1682
|
-
InstanceType[_a] = { fqn: "terraconstructs.aws.compute.InstanceType", version: "0.0.
|
|
1682
|
+
InstanceType[_a] = { fqn: "terraconstructs.aws.compute.InstanceType", version: "0.0.16" };
|
|
1683
1683
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvaW5zdGFuY2UtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrR0FBa0c7QUFFbEc7Ozs7Ozs7O0dBUUc7QUFDSCxJQUFZLGFBbTdDWDtBQW43Q0QsV0FBWSxhQUFhO0lBQ3ZCOztPQUVHO0lBQ0gsd0NBQXVCLENBQUE7SUFFdkI7O09BRUc7SUFDSCwwQkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCx3Q0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDBCQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILHdDQUF1QixDQUFBO0lBRXZCOztPQUVHO0lBQ0gsMEJBQVMsQ0FBQTtJQUVUOztPQUVHO0lBQ0gsOERBQTZDLENBQUE7SUFFN0M7O09BRUc7SUFDSCw0QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnREFBK0IsQ0FBQTtJQUUvQjs7T0FFRztJQUNILDRCQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILHNFQUFxRCxDQUFBO0lBRXJEOztPQUVHO0lBQ0gsOEJBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsMEVBQXlELENBQUE7SUFFekQ7O09BRUc7SUFDSCw0QkFBVyxDQUFBO0lBRVg7O09BRUc7SUFDSCxnR0FBK0UsQ0FBQTtJQUUvRTs7T0FFRztJQUNILDhCQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILGtFQUFpRCxDQUFBO0lBRWpEOztPQUVHO0lBQ0gsOEJBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gsb0NBQW1CLENBQUE7SUFFbkI7O09BRUc7SUFDSCwwQkFBUyxDQUFBO0lBRVQ7O09BRUc7SUFDSCxvQ0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILDBCQUFTLENBQUE7SUFFVDs7T0FFRztJQUNILG9DQUFtQixDQUFBO0lBRW5COztPQUVHO0lBQ0gsMEJBQVMsQ0FBQTtJQUVUOztPQUVHO0lBQ0gsNENBQTJC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Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvaW5zdGFuY2UtdHlwZXMudHNcblxuLyoqXG4gKiBXaGF0IGNsYXNzIGFuZCBnZW5lcmF0aW9uIG9mIGluc3RhbmNlIHRvIHVzZVxuICpcbiAqIFdlIGhhdmUgYm90aCBzeW1ib2xpYyBhbmQgY29uY3JldGUgZW51bXMgZm9yIGV2ZXJ5IHR5cGUuXG4gKlxuICogVGhlIGZpcnN0IGFyZSBmb3IgcGVvcGxlIHRoYXQgd2FudCB0byBzcGVjaWZ5IGJ5IHB1cnBvc2UsXG4gKiB0aGUgc2Vjb25kIG9uZSBhcmUgZm9yIHBlb3BsZSB3aG8gYWxyZWFkeSBrbm93IGV4YWN0bHkgd2hhdFxuICogJ1I0JyBtZWFucy5cbiAqL1xuZXhwb3J0IGVudW0gSW5zdGFuY2VDbGFzcyB7XG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDMgPSBcInN0YW5kYXJkM1wiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBNMyA9IFwibTNcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ0ID0gXCJzdGFuZGFyZDRcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTQgPSBcIm00XCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENSA9IFwic3RhbmRhcmQ1XCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE01ID0gXCJtNVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ1X05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNUQgPSBcIm01ZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDVfQU1EID0gXCJzdGFuZGFyZDUtYW1kXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE01QSA9IFwibTVhXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDVfQU1EX05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNS1hbWQtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTVBRCA9IFwibTVhZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RBTkRBUkQ1X0hJR0hfUEVSRk9STUFOQ0UgPSBcInN0YW5kYXJkNS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNU4gPSBcIm01blwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENV9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0UgPSBcInN0YW5kYXJkNS1udm1lLWRyaXZlLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNNUROID0gXCJtNWRuXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgNW5kIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENV9ISUdIX0NPTVBVVEUgPSBcInN0YW5kYXJkNS1oaWdoLWNvbXB1dGVcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIHdpdGggaGlnaCBtZW1vcnkgYW5kIGNvbXB1dGUgY2FwYWNpdHkgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCA1bmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgTTVaTiA9IFwibTV6blwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTMgPSBcIm1lbW9yeTNcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBSMyA9IFwicjNcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk0ID0gXCJtZW1vcnk0XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjQgPSBcInI0XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNSA9IFwibWVtb3J5NVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1ID0gXCJyNVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTZfQU1EID0gXCJtZW1vcnk2LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI2QSA9IFwicjZhXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoM3JkIGdlbmVyYXRpb24gcHJvY2Vzc29ycyBjb2RlIG5hbWVkIEljZSBMYWtlKVxuICAgKi9cbiAgTUVNT1JZNl9JTlRFTCA9IFwibWVtb3J5Ni1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIFI2SSA9IFwicjZpXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIE1FTU9SWTZfSU5URUxfTlZNRV9EUklWRSA9IFwibWVtb3J5Ni1pbnRlbC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNnRoIGdlbmVyYXRpb24gd2l0aCBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKDNyZCBnZW5lcmF0aW9uIHByb2Nlc3NvcnMgY29kZSBuYW1lZCBJY2UgTGFrZSlcbiAgICovXG4gIFI2SUQgPSBcInI2aWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5Ni1pbnRlbC1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBSNklOID0gXCJyNmluXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNl9JTlRFTF9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0UgPSBcIm1lbW9yeTYtaW50ZWwtbnZtZS1kcml2ZS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjZJRE4gPSBcInI2aWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTVfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5NS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1TiA9IFwicjVuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIE1FTU9SWTVfTlZNRV9EUklWRSA9IFwibWVtb3J5NS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1RCA9IFwicjVkXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwibWVtb3J5NS1udm1lLWRyaXZlLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1RE4gPSBcInI1ZG5cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X0FNRCA9IFwibWVtb3J5NS1hbWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBSNUEgPSBcInI1YVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk1X0FNRF9OVk1FX0RSSVZFID0gXCJtZW1vcnk1LWFtZC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEFNRCBFUFlDIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFI1QUQgPSBcInI1YWRcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgzVEIpIGJhc2VkIG9uIEludGVsIFhlb24gUGxhdGludW0gODE3Nk0gKFNreWxha2UpIHByb2Nlc3NvcnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV8zVEJfMSA9IFwiaGlnaC1tZW1vcnktM3RiLTFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgzVEIpIGJhc2VkIG9uIEludGVsIFhlb24gUGxhdGludW0gODE3Nk0gKFNreWxha2UpIHByb2Nlc3NvcnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBVXzNUQjEgPSBcInUtM3RiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBQbGF0aW51bSA4MTc2TSAoU2t5bGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzZUQl8xID0gXCJoaWdoLW1lbW9yeS02dGItMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBQbGF0aW51bSA4MTc2TSAoU2t5bGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIFVfNlRCMSA9IFwidS02dGIxXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOVRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfOVRCXzEgPSBcImhpZ2gtbWVtb3J5LTl0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOVRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV85VEIxID0gXCJ1LTl0YjFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfMTJUQl8xID0gXCJoaWdoLW1lbW9yeS0xMnRiLTFcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiBJbnRlbCBYZW9uIFBsYXRpbnVtIDgxNzZNIChTa3lsYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8xMlRCMSA9IFwidS0xMnRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDE4VEIpIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzE4VEJfMSA9IFwiaGlnaC1tZW1vcnktMTh0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoMThUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8xOFRCMSA9IFwidS0xOHRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDI0VEIpIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKENhc2NhZGUgTGFrZSkgcHJvY2Vzc29ycywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZXzI0VEJfMSA9IFwiaGlnaC1tZW1vcnktMjR0Yi0xXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoMjRUQikgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgVV8yNFRCMSA9IFwidS0yNHRiMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDZUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfNlRCXzcgPSBcImhpZ2gtbWVtb3J5LTZ0Yi03XCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoNlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBVN0lfNlRCID0gXCJ1N2ktNnRiXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGluc3RhbmNlcyAoOFRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV84VEJfNyA9IFwiaGlnaC1tZW1vcnktOHRiLTdcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICg4VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SV84VEIgPSBcInU3aS04dGJcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgaW5zdGFuY2VzICgxMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV8xMlRCXzcgPSBcImhpZ2gtbWVtb3J5LTEydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSBpbnN0YW5jZXMgKDEyVEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SV8xMlRCID0gXCJ1N2ktMTJ0YlwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgxNlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBISUdIX01FTU9SWV9ISUdIX05FVFdPUktfMTZUQl83ID0gXCJoaWdoLW1lbW9yeS1oaWdoLW5ldHdvcmstMTZ0Yi03XCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5LCBuZXR3b3JrLWludGVuc2l2ZSBpbnN0YW5jZXMgKDE2VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFU3SU5fMTZUQiA9IFwidTdpbi0xNnRiXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5LCBuZXR3b3JrLWludGVuc2l2ZSBpbnN0YW5jZXMgKDI0VEIpIGJhc2VkIG9uIDR0aCBHZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoU2FwcGhpcmUgUmFwaWRzKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18yNFRCXzcgPSBcImhpZ2gtbWVtb3J5LWhpZ2gtbmV0d29yay0yNHRiLTdcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnksIG5ldHdvcmstaW50ZW5zaXZlIGluc3RhbmNlcyAoMjRUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgVTdJTl8yNFRCID0gXCJ1N2luLTI0dGJcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnksIG5ldHdvcmstaW50ZW5zaXZlIGluc3RhbmNlcyAoMzJUQikgYmFzZWQgb24gNHRoIEdlbmVyYXRpb24gSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChTYXBwaGlyZSBSYXBpZHMpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9NRU1PUllfSElHSF9ORVRXT1JLXzMyVEJfNyA9IFwiaGlnaC1tZW1vcnktaGlnaC1uZXR3b3JrLTMydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBVN0lOXzMyVEIgPSBcInU3aW4tMzJ0YlwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqIFU3aW5oIGluc3RhbmNlcyB1c2UgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgKEhQRSkgQ29tcHV0ZSBTY2FsZSBVcCBTZXJ2ZXIgMzIwMC5cbiAgICovXG4gIEhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS19IUEVfMzJUQl83ID0gXCJoaWdoLW1lbW9yeS1oaWdoLW5ldHdvcmstaHBlLTMydGItN1wiLFxuXG4gIC8qKlxuICAgKiBIaWdoIG1lbW9yeSwgbmV0d29yay1pbnRlbnNpdmUgaW5zdGFuY2VzICgzMlRCKSBiYXNlZCBvbiA0dGggR2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMgKFNhcHBoaXJlIFJhcGlkcyksIDd0aCBnZW5lcmF0aW9uXG4gICAqIFU3aW5oIGluc3RhbmNlcyB1c2UgSGV3bGV0dCBQYWNrYXJkIEVudGVycHJpc2UgKEhQRSkgQ29tcHV0ZSBTY2FsZSBVcCBTZXJ2ZXIgMzIwMC5cbiAgICovXG4gIFU3SU5IXzMyVEIgPSBcInU3aW5oLTMydGJcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgdGhhdCBhcmUgYWxzbyBFQlMtb3B0aW1pemVkLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZNV9FQlNfT1BUSU1JWkVEID0gXCJtZW1vcnk1LWVicy1vcHRpbWl6ZWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgdGhhdCBhcmUgYWxzbyBFQlMtb3B0aW1pemVkLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUjVCID0gXCJyNWJcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1FTU9SWTZfR1JBVklUT04gPSBcIm1lbW9yeTYtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIFI2RyA9IFwicjZnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNRU1PUlk2X0dSQVZJVE9OMl9OVk1FX0RSSVZFID0gXCJtZW1vcnk2LWdyYXZpdG9uMi1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBSNkdEID0gXCJyNmdkXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgTUVNT1JZN19HUkFWSVRPTiA9IFwibWVtb3J5Ny1ncmF2aXRvblwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFI3RyA9IFwicjdnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgTUVNT1JZN19HUkFWSVRPTjNfTlZNRV9EUklWRSA9IFwibWVtb3J5Ny1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFI3R0QgPSBcInI3Z2RcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiB3LyAgMy4yR0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgTUVNT1JZN19JTlRFTF9CQVNFID0gXCJtZW1vcnk3LWludGVsLWJhc2VcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiB3LyAgMy4yR0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgUjdJID0gXCJyN2lcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvbiwgd2l0aCBzdXN0YWluZWQgMy45R0h6IHR1cmJvIGZyZXF1ZW5jeVxuICAgKi9cbiAgTUVNT1JZN19JTlRFTCA9IFwibWVtb3J5Ny1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnkgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uLCB3aXRoIHN1c3RhaW5lZCAzLjlHSHogdHVyYm8gZnJlcXVlbmN5XG4gICAqL1xuICBSN0laID0gXCJyN2l6XCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBNRU1PUlk3X0FNRCA9IFwibWVtb3J5Ny1hbWRcIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gNHRoIGdlbmVyYXRpb24gQU1EIEVQWUMgKGNvZGVuYW1lIEdlbm9hKSwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFI3QSA9IFwicjdhXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggR3Jhdml0b240IHByb2Nlc3NvcnNcbiAgICovXG4gIE1FTU9SWThfR1JBVklUT04gPSBcIm1lbW9yeTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5IG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKi9cbiAgUjhHID0gXCJyOGdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTMgPSBcImNvbXB1dGUzXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEMzID0gXCJjM1wiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDT01QVVRFNCA9IFwiY29tcHV0ZTRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzQgPSBcImM0XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1ID0gXCJjb21wdXRlNVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDNSA9IFwiYzVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X05WTUVfRFJJVkUgPSBcImNvbXB1dGU1LW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1RCA9IFwiYzVkXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X0FNRCA9IFwiY29tcHV0ZTUtYW1kXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1QSA9IFwiYzVhXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUgYmFzZWQgb24gQU1EIEVQWUMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDT01QVVRFNV9BTURfTlZNRV9EUklWRSA9IFwiY29tcHV0ZTUtYW1kLW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBiYXNlZCBvbiBBTUQgRVBZQywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1QUQgPSBcImM1YWRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU1X0hJR0hfUEVSRk9STUFOQ0UgPSBcImNvbXB1dGU1LWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEM1TiA9IFwiYzVuXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU2X0lOVEVMID0gXCJjb21wdXRlNi1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDNkkgPSBcImM2aVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTZfSU5URUxfTlZNRV9EUklWRSA9IFwiY29tcHV0ZTYtaW50ZWwtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZJRCA9IFwiYzZpZFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwiY29tcHV0ZTYtaW50ZWwtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZJTiA9IFwiYzZpblwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgKGNvZGVuYW1lIE1pbGFuKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU2X0FNRCA9IFwiY29tcHV0ZTYtYW1kXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyAoY29kZW5hbWUgTWlsYW4pLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzZBID0gXCJjNmFcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yID0gXCJjb21wdXRlNi1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKi9cbiAgQzZHID0gXCJjNmdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKi9cbiAgQ09NUFVURTdfR1JBVklUT04zID0gXCJjb21wdXRlNy1ncmF2aXRvbjNcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKi9cbiAgQzdHID0gXCJjN2dcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgQ09NUFVURThfR1JBVklUT040ID0gXCJjb21wdXRlOC1ncmF2aXRvbjRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgQzhHID0gXCJjOGdcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29yc1xuICAgKiBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yX05WTUVfRFJJVkUgPSBcImNvbXB1dGU2LWdyYXZpdG9uMi1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICogYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICovXG4gIEM2R0QgPSBcImM2Z2RcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIENPTVBVVEU3X0dSQVZJVE9OM19OVk1FX0RSSVZFID0gXCJjb21wdXRlNy1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA3dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMyBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKElyZWxhbmQpLlxuICAgKi9cbiAgQzdHRCA9IFwiYzdnZFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzXG4gICAqIGFuZCBoaWdoIG5ldHdvcmsgYmFuZHdpZHRoIGNhcGFiaWxpdGllc1xuICAgKi9cbiAgQ09NUFVURTZfR1JBVklUT04yX0hJR0hfTkVUV09SS19CQU5EV0lEVEggPSBcImNvbXB1dGU2LWdyYXZpdG9uMi1oaWdoLW5ldHdvcmstYmFuZHdpZHRoXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDZ0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICogYW5kIGhpZ2ggbmV0d29yayBiYW5kd2lkdGggY2FwYWJpbGl0aWVzXG4gICAqL1xuICBDNkdOID0gXCJjNmduXCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnNcbiAgICogYW5kIGhpZ2ggbmV0d29yayBiYW5kd2lkdGggY2FwYWJpbGl0aWVzXG4gICAqL1xuICBDT01QVVRFN19HUkFWSVRPTjNfSElHSF9ORVRXT1JLX0JBTkRXSURUSCA9IFwiY29tcHV0ZTctZ3Jhdml0b24zLWhpZ2gtbmV0d29yay1iYW5kd2lkdGhcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKiBhbmQgaGlnaCBuZXR3b3JrIGJhbmR3aWR0aCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIEM3R04gPSBcImM3Z25cIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIENPTVBVVEU3X0lOVEVMID0gXCJjb21wdXRlNy1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIG9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgWGVvbiBTY2FsYWJsZSAoU2FwcGhpcmUgUmFwaWRzKSBwcm9jZXNzb3JzLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQzdJID0gXCJjN2lcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICogQzdpLWZsZXggaW5zdGFuY2VzIGVmZmljaWVudGx5IHVzZSBjb21wdXRlIHJlc291cmNlcyB0byBkZWxpdmVyIGEgYmFzZWxpbmUgbGV2ZWwgb2YgcGVyZm9ybWFuY2Ugd2l0aCB0aGUgYWJpbGl0eSB0byBzY2FsZSB1cCB0byB0aGUgZnVsbCBjb21wdXRlIHBlcmZvcm1hbmNlIGEgbWFqb3JpdHkgb2YgdGhlIHRpbWUuXG4gICAqL1xuICBDT01QVVRFN19JTlRFTF9GTEVYID0gXCJjb21wdXRlNy1pbnRlbC1mbGV4XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqIEM3aS1mbGV4IGluc3RhbmNlcyBlZmZpY2llbnRseSB1c2UgY29tcHV0ZSByZXNvdXJjZXMgdG8gZGVsaXZlciBhIGJhc2VsaW5lIGxldmVsIG9mIHBlcmZvcm1hbmNlIHdpdGggdGhlIGFiaWxpdHkgdG8gc2NhbGUgdXAgdG8gdGhlIGZ1bGwgY29tcHV0ZSBwZXJmb3JtYW5jZSBhIG1ham9yaXR5IG9mIHRoZSB0aW1lLlxuICAgKi9cbiAgQzdJX0ZMRVggPSBcImM3aS1mbGV4XCIsXG5cbiAgLyoqXG4gICAqIENvbXB1dGUgb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiA0dGggZ2VuZXJhdGlvbiBBTUQgRVBZQyAoY29kZW5hbWUgR2Vub2EpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgQ09NUFVURTdfQU1EID0gXCJjb21wdXRlNy1hbWRcIixcblxuICAvKipcbiAgICogQ29tcHV0ZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBDN0EgPSBcImM3YVwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFMiA9IFwic3RvcmFnZTJcIixcblxuICAvKipcbiAgICogU3RvcmFnZS1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgRDIgPSBcImQyXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Utb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0UzID0gXCJzdG9yYWdlM1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBEMyA9IFwiZDNcIixcblxuICAvKipcbiAgICogU3RvcmFnZS1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTNfRU5IQU5DRURfTkVUV09SSyA9IFwic3RvcmFnZTMtZW5oYW5jZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBEM0VOID0gXCJkM2VuXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UvY29tcHV0ZSBiYWxhbmNlZCBpbnN0YW5jZXMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFX0NPTVBVVEVfMSA9IFwic3RvcmFnZS1jb21wdXRlLTFcIixcblxuICAvKipcbiAgICogU3RvcmFnZS9jb21wdXRlIGJhbGFuY2VkIGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEgxID0gXCJoMVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEFXUyBUcmFpbml1bVxuICAgKi9cbiAgVFJBSU5JTkdfQUNDRUxFUkFUT1IxID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjFcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW1cbiAgICovXG4gIFRSTjEgPSBcInRybjFcIixcblxuICAvKipcbiAgICogTmV0d29yay1vcHRpbWl6ZWQgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW1cbiAgICovXG4gIFRSQUlOSU5HX0FDQ0VMRVJBVE9SMV9FTkhBTkNFRF9ORVRXT1JLID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjEtZW5oYW5jZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBOZXR3b3JrLW9wdGltaXplZCBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEFXUyBUcmFpbml1bVxuICAgKi9cbiAgVFJOMU4gPSBcInRybjFuXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgQVdTIFRyYWluaXVtMiwgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFRSQUlOSU5HX0FDQ0VMRVJBVE9SMiA9IFwidHJhaW5pbmctYWNjZWxlcmF0b3IyXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgQVdTIFRyYWluaXVtMiwgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFRSTjIgPSBcInRybjJcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW0yIGFuZCBFQzIgVWx0cmEgU2VydmVycywgMm5kIGdlbmVyYXRpb25cbiAgICogVWx0cmFTZXJ2ZXJzIGNvbm5lY3QgbXVsdGlwbGUgRUMyIGluc3RhbmNlcyB1c2luZyBhIGRlZGljYXRlZCwgaGlnaC1iYW5kd2lkdGgsIGxvdy1sYXRlbmN5IGFjY2VsZXJhdG9yIGludGVyY29ubmVjdFxuICAgKi9cbiAgVFJBSU5JTkdfQUNDRUxFUkFUT1IyX1VMVFJBU0VSVkVSID0gXCJ0cmFpbmluZy1hY2NlbGVyYXRvcjItdWx0cmFzZXJ2ZXJcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgcG93ZXJlZCBieSBBV1MgVHJhaW5pdW0yIGFuZCBFQzIgVWx0cmEgU2VydmVycywgMm5kIGdlbmVyYXRpb25cbiAgICogVWx0cmFTZXJ2ZXJzIGNvbm5lY3QgbXVsdGlwbGUgRUMyIGluc3RhbmNlcyB1c2luZyBhIGRlZGljYXRlZCwgaGlnaC1iYW5kd2lkdGgsIGxvdy1sYXRlbmN5IGFjY2VsZXJhdG9yIGludGVyY29ubmVjdFxuICAgKi9cbiAgVFJOMlUgPSBcInRybjJ1XCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgSU8zID0gXCJpbzNcIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJMyA9IFwiaTNcIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgSU8zX0RFTlNFX05WTUVfRFJJVkUgPSBcImlvMy1kZW5zZS1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEkzRU4gPSBcImkzZW5cIixcblxuICAvKipcbiAgICogSS9PLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIElPNF9JTlRFTCA9IFwiaW80X2ludGVsXCIsXG5cbiAgLyoqXG4gICAqIEkvTy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJNEkgPSBcImk0aVwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjIgcHJvY2Vzc29yLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTRfR1JBVklUT04gPSBcInN0b3JhZ2U0X2dyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uMiBwcm9jZXNzb3IsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJNEcgPSBcImk0Z1wiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjIgcHJvY2Vzc29yLCA0dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgU1RPUkFHRTRfR1JBVklUT05fTkVUV09SS19PUFRJTUlaRUQgPSBcInN0b3JhZ2U0LWdyYXZpdG9uLW5ldHdvcmstb3B0aW1pemVkXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uMiBwcm9jZXNzb3IsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTTRHTiA9IFwiaW00Z25cIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b24yIHByb2Nlc3NvciwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0U0X0dSQVZJVE9OX05FVFdPUktfU1RPUkFHRV9PUFRJTUlaRUQgPSBcInN0b3JhZ2U0LWdyYXZpdG9uLW5ldHdvcmstc3RvcmFnZS1vcHRpbWl6ZWRcIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b24yIHByb2Nlc3NvciwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIElTNEdFTiA9IFwiaXM0Z2VuXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IDV0aCBnZW5lcmF0aW9uIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUT1JBR0U3X0lOVEVMX1NUT1JBR0VfT1BUSU1JWkVEID0gXCJzdG9yYWdlNy1pbnRlbC1zdG9yYWdlLW9wdGltaXplZFwiLFxuXG4gIC8qKlxuICAgKiBTdG9yYWdlIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSA1dGggZ2VuZXJhdGlvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBJN0lFID0gXCJpN2llXCIsXG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ugb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uNCBwcm9jZXNzb3IsIDh0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVE9SQUdFOF9HUkFWSVRPTiA9IFwic3RvcmFnZTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogU3RvcmFnZSBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR3Jhdml0b240IHByb2Nlc3NvciwgOHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEk4RyA9IFwiaThnXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBCVVJTVEFCTEUyID0gXCJidXJzdGFibGUyXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBUMiA9IFwidDJcIixcblxuICAvKipcbiAgICogQnVyc3RhYmxlIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEJVUlNUQUJMRTMgPSBcImJ1cnN0YWJsZTNcIixcblxuICAvKipcbiAgICogQnVyc3RhYmxlIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFQzID0gXCJ0M1wiLFxuXG4gIC8qKlxuICAgKiBCdXJzdGFibGUgaW5zdGFuY2VzIGJhc2VkIG9uIEFNRCBFUFlDLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgQlVSU1RBQkxFM19BTUQgPSBcImJ1cnN0YWJsZTMtYW1kXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBUM0EgPSBcInQzYVwiLFxuXG4gIC8qKlxuICAgKiBCdXJzdGFibGUgaW5zdGFuY2VzLCA0dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzXG4gICAqL1xuICBCVVJTVEFCTEU0X0dSQVZJVE9OID0gXCJidXJzdGFibGU0LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEJ1cnN0YWJsZSBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICovXG4gIFQ0RyA9IFwidDRnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8xID0gXCJtZW1vcnktaW50ZW5zaXZlLTFcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBYMSA9IFwieDFcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIGV4dGVuZGVkLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8xX0VYVEVOREVEID0gXCJtZW1vcnktaW50ZW5zaXZlLTEtZXh0ZW5kZWRcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIGV4dGVuZGVkLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgWDFFID0gXCJ4MWVcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSB0eXBlIGNhbiBiZSB1c2VkIG9ubHkgaW4gUkRTLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGluIEVDMi5cbiAgICovXG4gIE1FTU9SWV9JTlRFTlNJVkVfMl9HUkFWSVRPTjIgPSBcIm1lbW9yeS1pbnRlbnNpdmUtMi1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24yIHByb2Nlc3NvcnNcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSB0eXBlIGNhbiBiZSB1c2VkIG9ubHkgaW4gUkRTLiBJdCBpcyBub3Qgc3VwcG9ydGVkIGluIEVDMi5cbiAgICovXG4gIFgyRyA9IFwieDJnXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfR1JBVklUT04yX05WTUVfRFJJVkUgPSBcIm1lbW9yeS1pbnRlbnNpdmUtMi1ncmF2aXRvbjItbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcywgMm5kIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgWDJHRCA9IFwieDJnZFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyB3aXRoIGhpZ2hlciBuZXR3b3JrIGJhbmR3aXRoLCBsb2NhbCBOVk1FIGRyaXZlLCBhbmQgZXh0ZW5kZWQgbWVtb3J5LiBJbnRlbCBYZW9uIFNjYWxhYmxlIChJY2UgTGFrZSkgcHJvY2Vzc29yc1xuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV8yX1hUX0lOVEVMID0gXCJtZW1vcnlfaW50ZW5zaXZlXzJfeHRfaW50ZWxcIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMgd2l0aCBoaWdoZXIgbmV0d29yayBiYW5kd2l0aCwgbG9jYWwgTlZNRSBkcml2ZSwgYW5kIGV4dGVuZGVkIG1lbW9yeS4gSW50ZWwgWGVvbiBTY2FsYWJsZSAoSWNlIExha2UpIHByb2Nlc3NvcnNcbiAgICovXG4gIFgySUVETiA9IFwieDJpZWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIGxvY2FsIE5WTUUgZHJpdmUsIEludGVsIFhlb24gU2NhbGFibGUgKEljZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfSU5URUwgPSBcIm1lbW9yeV9pbnRlbnNpdmVfMl9pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyB3aXRoIGhpZ2hlciBuZXR3b3JrIGJhbmR3aXRoIGFuZCBsb2NhbCBOVk1FIGRyaXZlLCBJbnRlbCBYZW9uIFNjYWxhYmxlIChJY2UgTGFrZSkgcHJvY2Vzc29yc1xuICAgKi9cbiAgWDJJRE4gPSBcIngyaWRuXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIHNpbmdsZS10aHJlYWRlZCBwZXJmb3JtYW5jZSwgSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBNRU1PUllfSU5URU5TSVZFXzJfWFRaX0lOVEVMID0gXCJtZW1vcnlfaW50ZW5zaXZlXzJfeHR6X2ludGVsXCIsXG5cbiAgLyoqXG4gICAqIE1lbW9yeS1pbnRlbnNpdmUgaW5zdGFuY2VzIHdpdGggaGlnaGVyIG5ldHdvcmsgYmFuZHdpdGggYW5kIHNpbmdsZS10aHJlYWRlZCBwZXJmb3JtYW5jZSwgSW50ZWwgWGVvbiBTY2FsYWJsZSAoQ2FzY2FkZSBMYWtlKSBwcm9jZXNzb3JzXG4gICAqL1xuICBYMklFWk4gPSBcIngyaWV6blwiLFxuXG4gIC8qKlxuICAgKiBNZW1vcnktaW50ZW5zaXZlIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEdyYXZpdG9uNCBwcm9jZXNzb3JzLCA4dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTUVNT1JZX0lOVEVOU0lWRV84X0dSQVZJVE9OID0gXCJtZW1vcnktaW50ZW5zaXZlLTgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogTWVtb3J5LWludGVuc2l2ZSBpbnN0YW5jZXMgcG93ZXJlZCBieSBHcmF2aXRvbjQgcHJvY2Vzc29ycywgOHRoIGdlbmVyYXRpb25cbiAgICovXG4gIFg4RyA9IFwieDhnXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlcyB3aXRoIGN1c3RvbWl6YWJsZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24sIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBGUEdBMSA9IFwiZnBnYTFcIixcblxuICAvKipcbiAgICogSW5zdGFuY2VzIHdpdGggY3VzdG9taXphYmxlIGhhcmR3YXJlIGFjY2VsZXJhdGlvbiwgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEYxID0gXCJmMVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZXMgd2l0aCBjdXN0b21pemFibGUgaGFyZHdhcmUgYWNjZWxlcmF0aW9uLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgRlBHQTIgPSBcImZwZ2EyXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlcyB3aXRoIGN1c3RvbWl6YWJsZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24sIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBGMiA9IFwiZjJcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTM19TTUFMTCA9IFwiZ3JhcGhpY3MzLXNtYWxsXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDNyZCBnZW5lcmF0aW9uXG4gICAqL1xuICBHM1MgPSBcImczc1wiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgR1JBUEhJQ1MzID0gXCJncmFwaGljczNcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIEczID0gXCJnM1wiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggTlZNRSBkcml2ZSBmb3IgaGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzRfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFID0gXCJncmFwaGljczQtbnZtZS1kcml2ZS1oaWdoLXBlcmZvcm1hbmNlXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEc0RE4gPSBcImc0ZG5cIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcyBiYXNlZCBvbiBBTUQgRVBZQyBBbmQgUmFkZW9uIFBybyBHUFUgKE5BVkkpIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgNHRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNF9BTURfTlZNRV9EUklWRSA9IFwiZ3JhcGhpY3M0LWFtZC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgYmFzZWQgb24gQU1EIEVQWUMgQW5kIFJhZGVvbiBQcm8gR1BVIChOQVZJKSB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHNEFEID0gXCJnNGFkXCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzUgPSBcImdyYXBoaWNzNVwiLFxuXG4gIC8qKlxuICAgKiBHcmFwaGljcy1vcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzUgPSBcImc1XCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBBV1MgR3Jhdml0b24yIFByb2Nlc3NvcnMgYW5kIE5WSURJQSBUNEcgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNV9HUkFWSVRPTjIgPSBcImdyYXBoaWNzNS1ncmF2aXRvbjJcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcyBwb3dlcmVkIGJ5IEFXUyBHcmF2aXRvbjIgUHJvY2Vzc29ycyBhbmQgTlZJRElBIFQ0RyBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzVHID0gXCJnNWdcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEdSQVBISUNTNiA9IFwiZ3JhcGhpY3M2XCIsXG5cbiAgLyoqXG4gICAqIEdyYXBoaWNzLW9wdGltaXplZCBpbnN0YW5jZXMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHNiA9IFwiZzZcIixcblxuICAvKipcbiAgICogQ29zdC1lZmZpY2llbnQgR1BVLWJhc2VkIGluc3RhbmNlcyBmb3IgQUkgaW5mZXJlbmNlIGFuZCBzcGF0aWFsIGNvbXB1dGluZyB3b3JrbG9hZHMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBHUkFQSElDUzZfRUZGSUNJRU5UID0gXCJncmFwaGljczYtZWZmaWNpZW50XCIsXG5cbiAgLyoqXG4gICAqIENvc3QtZWZmaWNpZW50IEdQVS1iYXNlZCBpbnN0YW5jZXMgZm9yIEFJIGluZmVyZW5jZSBhbmQgc3BhdGlhbCBjb21wdXRpbmcgd29ya2xvYWRzLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgRzZFID0gXCJnNmVcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICogR3I2IGluc3RhbmNlcyBvZmZlciBhIDE6OCB2Q1BVIHRvIFJBTSByYXRpbywgbWFraW5nIHRoZW0gYmV0dGVyIHN1aXRlZCBmb3IgZ3JhcGhpY3Mgd29ya2xvYWRzIHdpdGggaGlnaGVyIG1lbW9yeSByZXF1aXJlbWVudHMuXG4gICAqL1xuICBHUkFQSElDU19SQU1fNiA9IFwiZ3JhcGhpY3MtcmFtLTZcIixcblxuICAvKipcbiAgICogR3JhcGhpY3Mtb3B0aW1pemVkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb25cbiAgICogR3I2IGluc3RhbmNlcyBvZmZlciBhIDE6OCB2Q1BVIHRvIFJBTSByYXRpbywgbWFraW5nIHRoZW0gYmV0dGVyIHN1aXRlZCBmb3IgZ3JhcGhpY3Mgd29ya2xvYWRzIHdpdGggaGlnaGVyIG1lbW9yeSByZXF1aXJlbWVudHMuXG4gICAqL1xuICBHUjYgPSBcImdyNlwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBQQVJBTExFTDIgPSBcInBhcmFsbGVsMlwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBQMiA9IFwicDJcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUwzID0gXCJwYXJhbGxlbDNcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUDMgPSBcInAzXCIsXG5cbiAgLyoqXG4gICAqIFBhcmFsbGVsLXByb2Nlc3Npbmcgb3B0aW1pemVkIGluc3RhbmNlcyB3aXRoIGxvY2FsIE5WTUUgZHJpdmUgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nLCAzcmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUwzX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwicGFyYWxsZWwzLW52bWUtZHJpdmUtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZywgM3JkIGdlbmVyYXRpb25cbiAgICovXG4gIFAzRE4gPSBcInAzZG5cIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzIHdpdGggbG9jYWwgTlZNRSBkcml2ZSwgZXh0ZW5kZWQsIDR0aCBnZW5lcmF0aW9uIChpbiBkZXZlbG9wZXIgcHJldmlldylcbiAgICovXG4gIFBBUkFMTEVMNF9OVk1FX0RSSVZFX0VYVEVOREVEID0gXCJwYXJhbGxlbDQtbnZtZS1kcml2ZS1leHRlbmRlZFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCBleHRlbmRlZCwgNHRoIGdlbmVyYXRpb24gKGluIGRldmVsb3BlciBwcmV2aWV3KVxuICAgKi9cbiAgUDRERSA9IFwicDRkZVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQQVJBTExFTDQgPSBcInBhcmFsbGVsNFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDR0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQNEQgPSBcInA0ZFwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBOVklESUEgSDEwMCBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUw1ID0gXCJwYXJhbGxlbDVcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgTlZJRElBIEgxMDAgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICovXG4gIFA1ID0gXCJwNVwiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMgcG93ZXJlZCBieSBOVklESUEgSDIwMCBUZW5zb3IgQ29yZSBHUFVzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUEFSQUxMRUw1X0VYVEVOREVEID0gXCJwYXJhbGxlbDUtZXh0ZW5kZWRcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZyBvcHRpbWl6ZWQgaW5zdGFuY2VzLCA1dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgUDVFID0gXCJwNWVcIixcblxuICAvKipcbiAgICogUGFyYWxsZWwtcHJvY2Vzc2luZywgbmV0d29yay1vcHRpbWl6ZWQgaW5zdGFuY2VzIHBvd2VyZWQgYnkgTlZJRElBIEgyMDAgVGVuc29yIENvcmUgR1BVcywgNXRoIGdlbmVyYXRpb25cbiAgICogUDVlbiBpbnN0YW5jZXMgcGFpciBOVklESUEgSDIwMCBUZW5zb3IgQ29yZSBHUFVzIHdpdGggSW50ZWwgU2FwcGhpcmUgUmFwaWRzIENQVSwgZW5hYmxpbmcgR2VuNSBQQ0llIGJldHdlZW4gQ1BVIGFuZCBHUFVcbiAgICovXG4gIFBBUkFMTEVMNV9FWFRFTkRFRF9ORVRXT1JLID0gXCJwYXJhbGxlbDUtZXh0ZW5kZWQtbmV0d29ya1wiLFxuXG4gIC8qKlxuICAgKiBQYXJhbGxlbC1wcm9jZXNzaW5nIG9wdGltaXplZCBpbnN0YW5jZXMsIDV0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBQNUVOID0gXCJwNWVuXCIsXG5cbiAgLyoqXG4gICAqIEFybSBwcm9jZXNzb3IgYmFzZWQgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgQVJNMSA9IFwiYXJtMVwiLFxuXG4gIC8qKlxuICAgKiBBcm0gcHJvY2Vzc29yIGJhc2VkIGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIEExID0gXCJhMVwiLFxuXG4gIC8qKlxuICAgKiBBcm0gcHJvY2Vzc29yIGJhc2VkIGluc3RhbmNlcywgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJENl9HUkFWSVRPTiA9IFwic3RhbmRhcmQ2LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEFybSBwcm9jZXNzb3IgYmFzZWQgaW5zdGFuY2VzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgTTZHID0gXCJtNmdcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0lOVEVMID0gXCJzdGFuZGFyZDYtaW50ZWxcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJID0gXCJtNmlcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIEludGVsIChJY2UgTGFrZSkgd2l0aCBsb2NhbCBOVk1FIGRyaXZlLCA2dGggZ2VuZXJhdGlvbi5cbiAgICovXG4gIFNUQU5EQVJENl9JTlRFTF9OVk1FX0RSSVZFID0gXCJzdGFuZGFyZDYtaW50ZWwtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gSW50ZWwgKEljZSBMYWtlKSB3aXRoIGxvY2FsIE5WTUUgZHJpdmUsIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJRCA9IFwibTZpZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHBvd2VyZWQgYnkgSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzIChjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb24uXG4gICAqL1xuICBTVEFOREFSRDZfSU5URUxfSElHSF9QRVJGT1JNQU5DRSA9IFwic3RhbmRhcmQ2LWludGVsLWhpZ2gtcGVyZm9ybWFuY2VcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJTiA9IFwibTZpblwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0lOVEVMX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRSA9IFwic3RhbmRhcmQ2LWludGVsLW52bWUtZHJpdmUtaGlnaC1wZXJmb3JtYW5jZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGZvciBoaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBwb3dlcmVkIGJ5IEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoY29kZSBuYW1lZCBJY2UgTGFrZSksIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgTTZJRE4gPSBcIm02aWRuXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiAzcmQgR2VuIEFNRCBFUFlDIHByb2Nlc3NvcnMsIDZ0aCBnZW5lcmF0aW9uLlxuICAgKi9cbiAgU1RBTkRBUkQ2X0FNRCA9IFwic3RhbmRhcmQ2LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMgYmFzZWQgb24gM3JkIEdlbiBBTUQgRVBZQyBwcm9jZXNzb3JzLCA2dGggZ2VuZXJhdGlvbi5cbiAgICovXG4gIE02QSA9IFwibTZhXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgNnRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjIgcHJvY2Vzc29ycyBhbmQgbG9jYWwgTlZNRSBkcml2ZVxuICAgKi9cbiAgU1RBTkRBUkQ2X0dSQVZJVE9OMl9OVk1FX0RSSVZFID0gXCJzdGFuZGFyZDYtZ3Jhdml0b24yLW52bWUtZHJpdmVcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA2dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uMiBwcm9jZXNzb3JzIGFuZCBsb2NhbCBOVk1FIGRyaXZlXG4gICAqL1xuICBNNkdEID0gXCJtNmdkXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIFNUQU5EQVJEN19HUkFWSVRPTiA9IFwic3RhbmRhcmQ3LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgN3RoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjMgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChJcmVsYW5kKS5cbiAgICovXG4gIE03RyA9IFwibTdnXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcywgOHRoIGdlbmVyYXRpb24gd2l0aCBHcmF2aXRvbjQgcHJvY2Vzc29yc1xuICAgKlxuICAgKiBUaGlzIGluc3RhbmNlIGNsYXNzIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBpbiBVUyBFYXN0IChPaGlvKSwgVVMgRWFzdCAoTi4gVmlyZ2luaWEpLCBVUyBXZXN0IChPcmVnb24pLCBhbmQgRXVyb3BlIChGcmFua2Z1cnQpLlxuICAgKi9cbiAgU1RBTkRBUkQ4X0dSQVZJVE9OID0gXCJzdGFuZGFyZDgtZ3Jhdml0b25cIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzLCA4dGggZ2VuZXJhdGlvbiB3aXRoIEdyYXZpdG9uNCBwcm9jZXNzb3JzXG4gICAqXG4gICAqIFRoaXMgaW5zdGFuY2UgY2xhc3MgaXMgY3VycmVudGx5IG9ubHkgYXZhaWxhYmxlIGluIFVTIEVhc3QgKE9oaW8pLCBVUyBFYXN0IChOLiBWaXJnaW5pYSksIFVTIFdlc3QgKE9yZWdvbiksIGFuZCBFdXJvcGUgKEZyYW5rZnVydCkuXG4gICAqL1xuICBNOEcgPSBcIm04Z1wiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnMgYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhdmFpbGFibGUgaW4gVVMgRWFzdCAoT2hpbyksIFVTIEVhc3QgKE4uIFZpcmdpbmlhKSwgVVMgV2VzdCAoT3JlZ29uKSwgYW5kIEV1cm9wZSAoSXJlbGFuZCkuXG4gICAqL1xuICBTVEFOREFSRDdfR1JBVklUT04zX05WTUVfRFJJVkUgPSBcInN0YW5kYXJkNy1ncmF2aXRvbjMtbnZtZS1kcml2ZVwiLFxuXG4gIC8qKlxuICAgKiBTdGFuZGFyZCBpbnN0YW5jZXMsIDd0aCBnZW5lcmF0aW9uIHdpdGggR3Jhdml0b24zIHByb2Nlc3NvcnMgYW5kIGxvY2FsIE5WTUUgZHJpdmVcbiAgICpcbiAgICogVGhpcyBpbnN0YW5jZSBjbGFzcyBpcyBjdXJyZW50bHkgb25seSBhdmFpbGFibGUgaW4gVVMgRWFzdCAoT2hpbyksIFVTIEVhc3QgKE4uIFZpcmdpbmlhKSwgVVMgV2VzdCAoT3JlZ29uKSwgYW5kIEV1cm9wZSAoSXJlbGFuZCkuXG4gICAqL1xuICBNN0dEID0gXCJtN2dkXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIFNUQU5EQVJEN19JTlRFTCA9IFwic3RhbmRhcmQ3LWludGVsXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIE03SSA9IFwibTdpXCIsXG5cbiAgLyoqXG4gICAqIEZsZXhpYmxlIGluc3RhbmNlcyB3aXRoIGhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGJhc2VkIG9uIEludGVsIFhlb24gU2NhbGFibGUgKFNhcHBoaXJlIFJhcGlkcykgcHJvY2Vzc29ycywgN3RoIGdlbmVyYXRpb25cbiAgICogVGhlIE03aS1GbGV4IGluc3RhbmNlcyBkZWxpdmVyIGEgYmFzZWxpbmUgb2YgNDAlIENQVSBwZXJmb3JtYW5jZSwgYW5kIGNhbiBzY2FsZSB1cCB0byBmdWxsIENQVSBwZXJmb3JtYW5jZSA5NSUgb2YgdGhlIHRpbWVcbiAgICovXG4gIFNUQU5EQVJEN19JTlRFTF9GTEVYID0gXCJzdGFuZGFyZDctaW50ZWwtZmxleFwiLFxuXG4gIC8qKlxuICAgKiBGbGV4aWJsZSBpbnN0YW5jZXMgd2l0aCBoaWdoIG1lbW9yeSBhbmQgY29tcHV0ZSBjYXBhY2l0eSBiYXNlZCBvbiBJbnRlbCBYZW9uIFNjYWxhYmxlIChTYXBwaGlyZSBSYXBpZHMpIHByb2Nlc3NvcnMsIDd0aCBnZW5lcmF0aW9uXG4gICAqIFRoZSBNN2ktRmxleCBpbnN0YW5jZXMgZGVsaXZlciBhIGJhc2VsaW5lIG9mIDQwJSBDUFUgcGVyZm9ybWFuY2UsIGFuZCBjYW4gc2NhbGUgdXAgdG8gZnVsbCBDUFUgcGVyZm9ybWFuY2UgOTUlIG9mIHRoZSB0aW1lXG4gICAqL1xuICBNN0lfRkxFWCA9IFwibTdpLWZsZXhcIixcblxuICAvKipcbiAgICogU3RhbmRhcmQgaW5zdGFuY2VzIGJhc2VkIG9uIDR0aCBnZW5lcmF0aW9uIEFNRCBFUFlDIChjb2RlbmFtZSBHZW5vYSksIDd0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBTVEFOREFSRDdfQU1EID0gXCJzdGFuZGFyZDctYW1kXCIsXG5cbiAgLyoqXG4gICAqIFN0YW5kYXJkIGluc3RhbmNlcyBiYXNlZCBvbiA0dGggZ2VuZXJhdGlvbiBBTUQgRVBZQyAoY29kZW5hbWUgR2Vub2EpLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgTTdBID0gXCJtN2FcIixcblxuICAvKipcbiAgICogSGlnaCBtZW1vcnkgYW5kIGNvbXB1dGUgY2FwYWNpdHkgaW5zdGFuY2VzLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9DT01QVVRFX01FTU9SWTEgPSBcImhpZ2gtY29tcHV0ZS1tZW1vcnkxXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggbWVtb3J5IGFuZCBjb21wdXRlIGNhcGFjaXR5IGluc3RhbmNlcywgMXN0IGdlbmVyYXRpb25cbiAgICovXG4gIFoxRCA9IFwiejFkXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkZFUkVOQ0UxID0gXCJpbmZlcmVuY2UxXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkYxID0gXCJpbmYxXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkZFUkVOQ0UyID0gXCJpbmZlcmVuY2UyXCIsXG5cbiAgLyoqXG4gICAqIEluZmVyZW50aWEgQ2hpcHMgYmFzZWQgaW5zdGFuY2VzIGZvciBtYWNoaW5lIGxlYXJuaW5nIGluZmVyZW5jZSBhcHBsaWNhdGlvbnMsIDJuZCBnZW5lcmF0aW9uXG4gICAqL1xuICBJTkYyID0gXCJpbmYyXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gQXBwbGUgTWFjIG1pbmkgY29tcHV0ZXJzLCAxc3QgZ2VuZXJhdGlvbiB3aXRoIEludGVsIHByb2Nlc29yc1xuICAgKi9cbiAgTUFDSU5UT1NIMV9JTlRFTCA9IFwibWFjaW50b3NoMS1pbnRlbFwiLFxuXG4gIC8qKlxuICAgKiBNYWNpbnRvc2ggaW5zdGFuY2VzIGJ1aWx0IG9uIEFwcGxlIE1hYyBtaW5pIGNvbXB1dGVycywgMXN0IGdlbmVyYXRpb24gd2l0aCBJbnRlbCBwcm9jZXNvcnNcbiAgICovXG4gIE1BQzEgPSBcIm1hYzFcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIwIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0xIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQ0lOVE9TSDJfTTEgPSBcIm1hY2ludG9zaDItbTFcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIwIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0xIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQzIgPSBcIm1hYzJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQ0lOVE9TSDJfTTIgPSBcIm1hY2ludG9zaDItbTJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIHByb2Nlc3NvcnNcbiAgICovXG4gIE1BQzJfTTIgPSBcIm1hYzItbTJcIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIFBybyBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUNJTlRPU0gyX00yX1BSTyA9IFwibWFjaW50b3NoMi1tMi1wcm9cIixcblxuICAvKipcbiAgICogTWFjaW50b3NoIGluc3RhbmNlcyBidWlsdCBvbiBBcHBsZSBNYWMgbWluaSAyMDIzIGNvbXB1dGVycywgMm5kIGdlbmVyYXRpb24gd2l0aCBBcHBsZSBzaWxpY29uIE0yIFBybyBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUMyX00yUFJPID0gXCJtYWMyLW0ycHJvXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gMjAyMiBNYWMgU3R1ZGlvIGhhcmR3YXJlIHBvd2VyZWQgYnkgQXBwbGUgc2lsaWNvbiBNMSBVbHRyYSBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUNJTlRPU0gyX00xX1VMVFJBID0gXCJtYWNpbnRvc2gyLW0xLXVsdHJhXCIsXG5cbiAgLyoqXG4gICAqIE1hY2ludG9zaCBpbnN0YW5jZXMgYnVpbHQgb24gMjAyMiBNYWMgU3R1ZGlvIGhhcmR3YXJlIHBvd2VyZWQgYnkgQXBwbGUgc2lsaWNvbiBNMSBVbHRyYSBwcm9jZXNzb3JzXG4gICAqL1xuICBNQUMyX00xVUxUUkEgPSBcIm1hYzItbTF1bHRyYVwiLFxuXG4gIC8qKlxuICAgKiBNdWx0aS1zdHJlYW0gdmlkZW8gdHJhbnNjb2RpbmcgaW5zdGFuY2VzIGZvciByZXNvbHV0aW9ucyB1cCB0byA0SyBVSEQsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBWSURFT19UUkFOU0NPRElORzEgPSBcInZpZGVvLXRyYW5zY29kaW5nMVwiLFxuXG4gIC8qKlxuICAgKiBNdWx0aS1zdHJlYW0gdmlkZW8gdHJhbnNjb2RpbmcgaW5zdGFuY2VzIGZvciByZXNvbHV0aW9ucyB1cCB0byA0SyBVSEQsIDFzdCBnZW5lcmF0aW9uXG4gICAqL1xuICBWVDEgPSBcInZ0MVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBBTUQgRVBZQywgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9BTUQgPSBcImhpZ2gtcGVyZm9ybWFuY2UtY29tcHV0aW5nNi1hbWRcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgYmFzZWQgb24gQU1EIEVQWUMsIDZ0aCBnZW5lcmF0aW9uXG4gICAqL1xuICBIUEM2QSA9IFwiaHBjNmFcIixcblxuICAvKipcbiAgICogSGlnaCBwZXJmb3JtYW5jZSBjb21wdXRpbmcgd2l0aCBsb2NhbCBOVk1FIGRyaXZlIGJhc2VkIG9uIDZ0aCBnZW5lcmF0aW9uIHdpdGggSW50ZWwgWGVvbiBTY2FsYWJsZSBwcm9jZXNzb3JzICgzcmQgZ2VuZXJhdGlvbiBwcm9jZXNzb3JzIGNvZGUgbmFtZWQgSWNlIExha2UpLCA2dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9QRVJGT1JNQU5DRV9DT01QVVRJTkc2X0lOVEVMX05WTUVfRFJJVkUgPSBcImhpZ2gtcGVyZm9ybWFuY2UtY29tcHV0aW5nNi1pbnRlbC1udm1lLWRyaXZlXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIHdpdGggbG9jYWwgTlZNRSBkcml2ZSBiYXNlZCBvbiA2dGggZ2VuZXJhdGlvbiB3aXRoIEludGVsIFhlb24gU2NhbGFibGUgcHJvY2Vzc29ycyAoM3JkIGdlbmVyYXRpb24gcHJvY2Vzc29ycyBjb2RlIG5hbWVkIEljZSBMYWtlKSwgNnRoIGdlbmVyYXRpb25cbiAgICovXG4gIEhQQzZJRCA9IFwiaHBjNmlkXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIGJhc2VkIG9uIEFNRCBFUFlDLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSElHSF9QRVJGT1JNQU5DRV9DT01QVVRJTkc3X0FNRCA9IFwiaGlnaC1wZXJmb3JtYW5jZS1jb21wdXRpbmc3LWFtZFwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBBTUQgRVBZQywgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhQQzdBID0gXCJocGM3YVwiLFxuXG4gIC8qKlxuICAgKiBIaWdoIHBlcmZvcm1hbmNlIGNvbXB1dGluZyBiYXNlZCBvbiBHcmF2aXRvbiwgN3RoIGdlbmVyYXRpb25cbiAgICovXG4gIEhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HN19HUkFWSVRPTiA9IFwiaGlnaC1wZXJmb3JtYW5jZS1jb21wdXRpbmc3LWdyYXZpdG9uXCIsXG5cbiAgLyoqXG4gICAqIEhpZ2ggcGVyZm9ybWFuY2UgY29tcHV0aW5nIGJhc2VkIG9uIEdyYXZpdG9uLCA3dGggZ2VuZXJhdGlvblxuICAgKi9cbiAgSFBDN0cgPSBcImhwYzdnXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR2F1ZGkgYWNjZWxlcmF0b3JzIGZyb20gSGFiYW5hIExhYnMgKGFuIEludGVsIGNvbXBhbnkpLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgREVFUF9MRUFSTklORzEgPSBcImRlZXAtbGVhcm5pbmcxXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgR2F1ZGkgYWNjZWxlcmF0b3JzIGZyb20gSGFiYW5hIExhYnMgKGFuIEludGVsIGNvbXBhbnkpLCAxc3QgZ2VuZXJhdGlvblxuICAgKi9cbiAgREwxID0gXCJkbDFcIixcblxuICAvKipcbiAgICogRGVlcCBsZWFybmluZyBpbnN0YW5jZXMgcG93ZXJlZCBieSBRdWFsY29tbSBBSSAxMDAgU3RhbmRhcmQgYWNjZWxlcmF0b3JzLCAybmQgZ2VuZXJhdGlvblxuICAgKi9cbiAgREVFUF9MRUFSTklORzJfUVVBTENPTU0gPSBcImRlZXAtbGVhcm5pbmcyLXF1YWxjb21tXCIsXG5cbiAgLyoqXG4gICAqIERlZXAgbGVhcm5pbmcgaW5zdGFuY2VzIHBvd2VyZWQgYnkgUXVhbGNvbW0gQUkgMTAwIFN0YW5kYXJkIGFjY2VsZXJhdG9ycywgMm5kIGdlbmVyYXRpb25cbiAgICovXG4gIERMMlEgPSBcImRsMnFcIixcbn1cblxuLyoqXG4gKiBJZGVudGlmaWVzIGFuIGluc3RhbmNlJ3MgQ1BVIGFyY2hpdGVjdHVyZVxuICovXG5leHBvcnQgZW51bSBJbnN0YW5jZUFyY2hpdGVjdHVyZSB7XG4gIC8qKlxuICAgKiBBUk02NCBhcmNoaXRlY3R1cmVcbiAgICovXG4gIEFSTV82NCA9IFwiYXJtNjRcIixcblxuICAvKipcbiAgICogeDg2LTY0IGFyY2hpdGVjdHVyZVxuICAgKi9cbiAgWDg2XzY0ID0gXCJ4ODZfNjRcIixcbn1cblxuLyoqXG4gKiBXaGF0IHNpemUgb2YgaW5zdGFuY2UgdG8gdXNlXG4gKi9cbmV4cG9ydCBlbnVtIEluc3RhbmNlU2l6ZSB7XG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIE5BTk8gKG5hbm8pXG4gICAqL1xuICBOQU5PID0gXCJuYW5vXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgTUlDUk8gKG1pY3JvKVxuICAgKi9cbiAgTUlDUk8gPSBcIm1pY3JvXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgU01BTEwgKHNtYWxsKVxuICAgKi9cbiAgU01BTEwgPSBcInNtYWxsXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgTUVESVVNIChtZWRpdW0pXG4gICAqL1xuICBNRURJVU0gPSBcIm1lZGl1bVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIExBUkdFIChsYXJnZSlcbiAgICovXG4gIExBUkdFID0gXCJsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRSAoeGxhcmdlKVxuICAgKi9cbiAgWExBUkdFID0gXCJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UyICgyeGxhcmdlKVxuICAgKi9cbiAgWExBUkdFMiA9IFwiMnhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTMgKDN4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UzID0gXCIzeGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFNCAoNHhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTQgPSBcIjR4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U2ICg2eGxhcmdlKVxuICAgKi9cbiAgWExBUkdFNiA9IFwiNnhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTggKDh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U4ID0gXCI4eGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFOSAoOXhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTkgPSBcIjl4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMCAoMTB4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxMCA9IFwiMTB4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMiAoMTJ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxMiA9IFwiMTJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxNiAoMTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxNiA9IFwiMTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxOCAoMTh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UxOCA9IFwiMTh4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UyNCAoMjR4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UyNCA9IFwiMjR4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UzMiAoMzJ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UzMiA9IFwiMzJ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U0OCAoNDh4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U0OCA9IFwiNDh4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U1NiAoNTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U1NiA9IFwiNTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U5NiAoOTZ4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0U5NiA9IFwiOTZ4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxMTIgKDExMnhsYXJnZSlcbiAgICovXG4gIFhMQVJHRTExMiA9IFwiMTEyeGxhcmdlXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFMjI0ICgyMjR4bGFyZ2UpXG4gICAqL1xuICBYTEFSR0UyMjQgPSBcIjIyNHhsYXJnZVwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTQ4MCAoNDgweGxhcmdlKVxuICAgKi9cbiAgWExBUkdFNDgwID0gXCI0ODB4bGFyZ2VcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBNRVRBTCAobWV0YWwpXG4gICAqL1xuICBNRVRBTCA9IFwibWV0YWxcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0UxNk1FVEFMIChtZXRhbC0xNnhsKVxuICAgKi9cbiAgWExBUkdFMTZNRVRBTCA9IFwibWV0YWwtMTZ4bFwiLFxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSBzaXplIFhMQVJHRTI0TUVUQUwgKG1ldGFsLTI0eGwpXG4gICAqL1xuICBYTEFSR0UyNE1FVEFMID0gXCJtZXRhbC0yNHhsXCIsXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHNpemUgWExBUkdFMzJNRVRBTCAobWV0YWwtMzJ4bClcbiAgICovXG4gIFhMQVJHRTMyTUVUQUwgPSBcIm1ldGFsLTMyeGxcIixcblxuICAvKipcbiAgICogSW5zdGFuY2Ugc2l6ZSBYTEFSR0U0OE1FVEFMIChtZXRhbC00OHhsKVxuICAgKi9cbiAgWExBUkdFNDhNRVRBTCA9IFwibWV0YWwtNDh4bFwiLFxufVxuXG4vKipcbiAqIEluc3RhbmNlIHR5cGUgZm9yIEVDMiBpbnN0YW5jZXNcbiAqXG4gKiBUaGlzIGNsYXNzIHRha2VzIGEgbGl0ZXJhbCBzdHJpbmcsIGdvb2QgaWYgeW91IGFscmVhZHlcbiAqIGtub3cgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHR5cGUgeW91IHdhbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZVR5cGUge1xuICAvKipcbiAgICogSW5zdGFuY2UgdHlwZSBmb3IgRUMyIGluc3RhbmNlc1xuICAgKlxuICAgKiBUaGlzIGNsYXNzIHRha2VzIGEgY29tYmluYXRpb24gb2YgYSBjbGFzcyBhbmQgc2l6ZS5cbiAgICpcbiAgICogQmUgYXdhcmUgdGhhdCBub3QgYWxsIGNvbWJpbmF0aW9ucyBvZiBjbGFzcyBhbmQgc2l6ZSBhcmUgYXZhaWxhYmxlLCBhbmQgbm90IGFsbFxuICAgKiBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIHJlZ2lvbnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKGluc3RhbmNlQ2xhc3M6IEluc3RhbmNlQ2xhc3MsIGluc3RhbmNlU2l6ZTogSW5zdGFuY2VTaXplKSB7XG4gICAgLy8gSlNJSSBkb2VzIG5vdCBhbGxvdyBlbnVtIHR5cGVzIHRvIGhhdmUgc2FtZSB2YWx1ZS4gU28gdG8gc3VwcG9ydCB0aGUgZW51bSwgdGhlIGVudW0gd2l0aCBzYW1lIHZhbHVlIGhhcyB0byBiZSBtYXBwZWQgbGF0ZXIuXG4gICAgY29uc3QgaW5zdGFuY2VDbGFzc01hcDogUmVjb3JkPEluc3RhbmNlQ2xhc3MsIHN0cmluZz4gPSB7XG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDNdOiBcIm0zXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NM106IFwibTNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENF06IFwibTRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk00XTogXCJtNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1XTogXCJtNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVdOiBcIm01XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDVfTlZNRV9EUklWRV06IFwibTVkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNURdOiBcIm01ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0FNRF06IFwibTVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNUFdOiBcIm01YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0FNRF9OVk1FX0RSSVZFXTogXCJtNWFkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNUFEXTogXCJtNWFkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDVfSElHSF9QRVJGT1JNQU5DRV06IFwibTVuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNU5dOiBcIm01blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRV06IFwibTVkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVETl06IFwibTVkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ1X0hJR0hfQ09NUFVURV06IFwibTV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTVaTl06IFwibTV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZM106IFwicjNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlIzXTogXCJyM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNF06IFwicjRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI0XTogXCJyNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV06IFwicjVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI1XTogXCJyNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNl9BTURdOiBcInI2YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZBXTogXCJyNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfSU5URUxdOiBcInI2aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZJXTogXCJyNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfSU5URUxfTlZNRV9EUklWRV06IFwicjZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZJRF06IFwicjZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNl9JTlRFTF9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNklOXTogXCJyNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk2X0lOVEVMX05WTUVfRFJJVkVfSElHSF9QRVJGT1JNQU5DRV06IFwicjZpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI2SUROXTogXCJyNmlkblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI1Tl06IFwicjVuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X05WTUVfRFJJVkVdOiBcInI1ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVEXTogXCJyNWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTVfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFXTogXCJyNWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNUROXTogXCJyNWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X0FNRF06IFwicjVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SNUFdOiBcInI1YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZNV9BTURfTlZNRV9EUklWRV06IFwicjVhZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVBRF06IFwicjVhZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfM1RCXzFdOiBcInUtM3RiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVV8zVEIxXTogXCJ1LTN0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzZUQl8xXTogXCJ1LTZ0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlVfNlRCMV06IFwidS02dGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV85VEJfMV06IFwidS05dGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VXzlUQjFdOiBcInUtOXRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfMTJUQl8xXTogXCJ1LTEydGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VXzEyVEIxXTogXCJ1LTEydGIxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV8xOFRCXzFdOiBcInUtMTh0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlVfMThUQjFdOiBcInUtMTh0YjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzI0VEJfMV06IFwidS0yNHRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVV8yNFRCMV06IFwidS0yNHRiMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9NRU1PUllfNlRCXzddOiBcInU3aS02dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlU3SV82VEJdOiBcInU3aS02dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZXzhUQl83XTogXCJ1N2ktOHRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lfOFRCXTogXCJ1N2ktOHRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX01FTU9SWV8xMlRCXzddOiBcInU3aS0xMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lfMTJUQl06IFwidTdpLTEydGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18xNlRCXzddOiBcInU3aW4tMTZ0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8xNlRCXTogXCJ1N2luLTE2dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18yNFRCXzddOiBcInU3aW4tMjR0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8yNFRCXTogXCJ1N2luLTI0dGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS18zMlRCXzddOiBcInU3aW4tMzJ0YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVTdJTl8zMlRCXTogXCJ1N2luLTMydGJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfTUVNT1JZX0hJR0hfTkVUV09SS19IUEVfMzJUQl83XTogXCJ1N2luaC0zMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5VN0lOSF8zMlRCXTogXCJ1N2luaC0zMnRiXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUlk1X0VCU19PUFRJTUlaRURdOiBcInI1YlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjVCXTogXCJyNWJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfR1JBVklUT05dOiBcInI2Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjZHXTogXCJyNmdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTZfR1JBVklUT04yX05WTUVfRFJJVkVdOiBcInI2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI2R0RdOiBcInI2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfR1JBVklUT05dOiBcInI3Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdHXTogXCJyN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfR1JBVklUT04zX05WTUVfRFJJVkVdOiBcInI3Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlI3R0RdOiBcInI3Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWTdfSU5URUxfQkFTRV06IFwicjdpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5SN0ldOiBcInI3aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZN19JTlRFTF06IFwicjdpelwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdJWl06IFwicjdpelwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZN19BTURdOiBcInI3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjdBXTogXCJyN2FcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWThfR1JBVklUT05dOiBcInI4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUjhHXTogXCJyOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEUzXTogXCJjM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzNdOiBcImMzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNF06IFwiYzRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM0XTogXCJjNFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTVdOiBcImM1XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNV06IFwiYzVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X05WTUVfRFJJVkVdOiBcImM1ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzVEXTogXCJjNWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X0FNRF06IFwiYzVhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNUFdOiBcImM1YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTVfQU1EX05WTUVfRFJJVkVdOiBcImM1YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM1QURdOiBcImM1YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU1X0hJR0hfUEVSRk9STUFOQ0VdOiBcImM1blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzVOXTogXCJjNW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0lOVEVMXTogXCJjNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM2SV06IFwiYzZpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9JTlRFTF9ISUdIX1BFUkZPUk1BTkNFXTogXCJjNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNklOXTogXCJjNmluXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9JTlRFTF9OVk1FX0RSSVZFXTogXCJjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNklEXTogXCJjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFNl9BTURdOiBcImM2YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzZBXTogXCJjNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0dSQVZJVE9OMl06IFwiYzZnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNkddOiBcImM2Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTZfR1JBVklUT04yX05WTUVfRFJJVkVdOiBcImM2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM2R0RdOiBcImM2Z2RcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU2X0dSQVZJVE9OMl9ISUdIX05FVFdPUktfQkFORFdJRFRIXTogXCJjNmduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DNkdOXTogXCJjNmduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFN19HUkFWSVRPTjNdOiBcImM3Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdHXTogXCJjN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0dSQVZJVE9OM19OVk1FX0RSSVZFXTogXCJjN2dkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0dEXTogXCJjN2dkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DT01QVVRFN19HUkFWSVRPTjNfSElHSF9ORVRXT1JLX0JBTkRXSURUSF06IFwiYzdnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdHTl06IFwiYzdnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURTdfSU5URUxdOiBcImM3aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQzdJXTogXCJjN2lcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0lOVEVMX0ZMRVhdOiBcImM3aS1mbGV4XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0lfRkxFWF06IFwiYzdpLWZsZXhcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkNPTVBVVEU3X0FNRF06IFwiYzdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5DN0FdOiBcImM3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuQ09NUFVURThfR1JBVklUT040XTogXCJjOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkM4R106IFwiYzhnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFMl06IFwiZDJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkQyXTogXCJkMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRTNdOiBcImQzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5EM106IFwiZDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUT1JBR0UzX0VOSEFOQ0VEX05FVFdPUktdOiBcImQzZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkQzRU5dOiBcImQzZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlRSQUlOSU5HX0FDQ0VMRVJBVE9SMV06IFwidHJuMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMV06IFwidHJuMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJBSU5JTkdfQUNDRUxFUkFUT1IxX0VOSEFOQ0VEX05FVFdPUktdOiBcInRybjFuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UUk4xTl06IFwidHJuMW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlRSQUlOSU5HX0FDQ0VMRVJBVE9SMl06IFwidHJuMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMl06IFwidHJuMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJBSU5JTkdfQUNDRUxFUkFUT1IyX1VMVFJBU0VSVkVSXTogXCJ0cm4ydVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVFJOMlVdOiBcInRybjJ1XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFX0NPTVBVVEVfMV06IFwiaDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkgxXTogXCJoMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSU8zXTogXCJpM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTNdOiBcImkzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5JTzNfREVOU0VfTlZNRV9EUklWRV06IFwiaTNlblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTNFTl06IFwiaTNlblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRTRfR1JBVklUT05dOiBcImk0Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTRHXTogXCJpNGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUT1JBR0U0X0dSQVZJVE9OX05FVFdPUktfT1BUSU1JWkVEXTogXCJpbTRnblwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSU00R05dOiBcImltNGduXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFNF9HUkFWSVRPTl9ORVRXT1JLX1NUT1JBR0VfT1BUSU1JWkVEXTogXCJpczRnZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklTNEdFTl06IFwiaXM0Z2VuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVE9SQUdFN19JTlRFTF9TVE9SQUdFX09QVElNSVpFRF06IFwiaTdpZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSTdJRV06IFwiaTdpZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RPUkFHRThfR1JBVklUT05dOiBcImk4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSThHXTogXCJpOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTJdOiBcInQyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UMl06IFwidDJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTNdOiBcInQzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5UM106IFwidDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTNfQU1EXTogXCJ0M2FcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlQzQV06IFwidDNhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5CVVJTVEFCTEU0X0dSQVZJVE9OXTogXCJ0NGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlQ0R106IFwidDRnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUllfSU5URU5TSVZFXzFdOiBcIngxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMV06IFwieDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMV9FWFRFTkRFRF06IFwieDFlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMUVdOiBcIngxZVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZX0lOVEVOU0lWRV8yX0dSQVZJVE9OMl06IFwieDJnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMkddOiBcIngyZ1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTUVNT1JZX0lOVEVOU0lWRV8yX0dSQVZJVE9OMl9OVk1FX0RSSVZFXTogXCJ4MmdkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMkdEXTogXCJ4MmdkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5GUEdBMV06IFwiZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkYxXTogXCJmMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRlBHQTJdOiBcImYyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5GMl06IFwiZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkdSQVBISUNTM19TTUFMTF06IFwiZzNzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HM1NdOiBcImczc1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1MzXTogXCJnM1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRzNdOiBcImczXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzRfTlZNRV9EUklWRV9ISUdIX1BFUkZPUk1BTkNFXTogXCJnNGRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HNEROXTogXCJnNGRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzRfQU1EX05WTUVfRFJJVkVdOiBcImc0YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc0QURdOiBcImc0YWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkdSQVBISUNTNV06IFwiZzVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc1XTogXCJnNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1M1X0dSQVZJVE9OMl06IFwiZzVnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HNUddOiBcImc1Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuR1JBUEhJQ1M2XTogXCJnNlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuRzZdOiBcImc2XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDUzZfRUZGSUNJRU5UXTogXCJnNmVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkc2RV06IFwiZzZlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUkFQSElDU19SQU1fNl06IFwiZ3I2XCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5HUjZdOiBcImdyNlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUEFSQUxMRUwyXTogXCJwMlwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUDJdOiBcInAyXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDNdOiBcInAzXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QM106IFwicDNcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMM19OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0VdOiBcInAzZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlAzRE5dOiBcInAzZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMNF9OVk1FX0RSSVZFX0VYVEVOREVEXTogXCJwNGRlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QNERFXTogXCJwNGRlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDRdOiBcInA0ZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUDREXTogXCJwNGRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlBBUkFMTEVMNV06IFwicDVcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1XTogXCJwNVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuUEFSQUxMRUw1X0VYVEVOREVEXTogXCJwYXJhbGxlbDUtZXh0ZW5kZWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1RV06IFwicDVlXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5QQVJBTExFTDVfRVhURU5ERURfTkVUV09SS106IFwicGFyYWxsZWw1LWV4dGVuZGVkLW5ldHdvcmtcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlA1RU5dOiBcInA1ZW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkFSTTFdOiBcImExXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5BMV06IFwiYTFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9HUkFWSVRPTl06IFwibTZnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNkddOiBcIm02Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ2X0lOVEVMXTogXCJtNmlcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk02SV06IFwibTZpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDZfSU5URUxfTlZNRV9EUklWRV06IFwibTZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZJRF06IFwibTZpZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ2X0lOVEVMX0hJR0hfUEVSRk9STUFOQ0VdOiBcIm02aW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk02SU5dOiBcIm02aW5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9JTlRFTF9OVk1FX0RSSVZFX0hJR0hfUEVSRk9STUFOQ0VdOiBcIm02aWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NNklETl06IFwibTZpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9BTURdOiBcIm02YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZBXTogXCJtNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJENl9HUkFWSVRPTjJfTlZNRV9EUklWRV06IFwibTZnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTZHRF06IFwibTZnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0dSQVZJVE9OXTogXCJtN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03R106IFwibTdnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDhfR1JBVklUT05dOiBcIm04Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTThHXTogXCJtOGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlNUQU5EQVJEN19HUkFWSVRPTjNfTlZNRV9EUklWRV06IFwibTdnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuTTdHRF06IFwibTdnZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0lOVEVMXTogXCJtN2lcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03SV06IFwibTdpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5TVEFOREFSRDdfSU5URUxfRkxFWF06IFwibTdpLWZsZXhcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk03SV9GTEVYXTogXCJtN2ktZmxleFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuU1RBTkRBUkQ3X0FNRF06IFwibTdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NN0FdOiBcIm03YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSElHSF9DT01QVVRFX01FTU9SWTFdOiBcInoxZFwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWjFEXTogXCJ6MWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORkVSRU5DRTFdOiBcImluZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORjFdOiBcImluZjFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORkVSRU5DRTJdOiBcImluZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLklORjJdOiBcImluZjJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDFfSU5URUxdOiBcIm1hYzFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzFdOiBcIm1hYzFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTFdOiBcIm1hYzJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJdOiBcIm1hYzJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTJdOiBcIm1hYzItbTJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJfTTJdOiBcIm1hYzItbTJcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQ0lOVE9TSDJfTTJfUFJPXTogXCJtYWMyLW0ycHJvXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NQUMyX00yUFJPXTogXCJtYWMyLW0ycHJvXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NQUNJTlRPU0gyX00xX1VMVFJBXTogXCJtYWMyLW0xdWx0cmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1BQzJfTTFVTFRSQV06IFwibWFjMi1tMXVsdHJhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5WSURFT19UUkFOU0NPRElORzFdOiBcInZ0MVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuVlQxXTogXCJ2dDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9BTURdOiBcImhwYzZhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5IUEM2QV06IFwiaHBjNmFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhJR0hfUEVSRk9STUFOQ0VfQ09NUFVUSU5HNl9JTlRFTF9OVk1FX0RSSVZFXTogXCJocGM2aWRcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkhQQzZJRF06IFwiaHBjNmlkXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX1BFUkZPUk1BTkNFX0NPTVBVVElORzdfQU1EXTogXCJocGM3YVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuSFBDN0FdOiBcImhwYzdhXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ISUdIX1BFUkZPUk1BTkNFX0NPTVBVVElORzdfR1JBVklUT05dOiBcImhwYzdnXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5IUEM3R106IFwiaHBjN2dcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkk0SV06IFwiaTRpXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5JTzRfSU5URUxdOiBcImk0aVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWDJJRUROXTogXCJ4MmllZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9YVF9JTlRFTF06IFwieDJpZWRuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5YMklETl06IFwieDJpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9JTlRFTF06IFwieDJpZG5cIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLlgySUVaTl06IFwieDJpZXpuXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5NRU1PUllfSU5URU5TSVZFXzhfR1JBVklUT05dOiBcIng4Z1wiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuWDhHXTogXCJ4OGdcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLk1FTU9SWV9JTlRFTlNJVkVfMl9YVFpfSU5URUxdOiBcIngyaWV6blwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuREVFUF9MRUFSTklORzFdOiBcImRsMVwiLFxuICAgICAgW0luc3RhbmNlQ2xhc3MuREwxXTogXCJkbDFcIixcbiAgICAgIFtJbnN0YW5jZUNsYXNzLkRFRVBfTEVBUk5JTkcyX1FVQUxDT01NXTogXCJkbDJxXCIsXG4gICAgICBbSW5zdGFuY2VDbGFzcy5ETDJRXTogXCJkbDJxXCIsXG4gICAgfTtcbiAgICByZXR1cm4gbmV3IEluc3RhbmNlVHlwZShcbiAgICAgIGAke2luc3RhbmNlQ2xhc3NNYXBbaW5zdGFuY2VDbGFzc10gPz8gaW5zdGFuY2VDbGFzc30uJHtpbnN0YW5jZVNpemV9YCxcbiAgICApO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZVR5cGVJZGVudGlmaWVyOiBzdHJpbmcpIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaW5zdGFuY2UgdHlwZSBhcyBhIGRvdHRlZCBzdHJpbmdcbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXI7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlJ3MgQ1BVIGFyY2hpdGVjdHVyZVxuICAgKi9cbiAgcHVibGljIGdldCBhcmNoaXRlY3R1cmUoKTogSW5zdGFuY2VBcmNoaXRlY3R1cmUge1xuICAgIC8vIGNhcHR1cmUgdGhlIGZhbWlseSwgZ2VuZXJhdGlvbiwgY2FwYWJpbGl0aWVzLCBhbmQgc2l6ZSBwb3J0aW9ucyBvZiB0aGUgaW5zdGFuY2UgdHlwZSBpZFxuICAgIGNvbnN0IGluc3RhbmNlVHlwZUNvbXBvbmVudHMgPSB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXIubWF0Y2goXG4gICAgICAvXihbYS16XSspKFxcZHsxLDJ9KShbYS16XFwtXSopXFwuKFthLXowLTlcXC1dKykkLyxcbiAgICApO1xuICAgIGlmIChpbnN0YW5jZVR5cGVDb21wb25lbnRzID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk1hbGZvcm1lZCBpbnN0YW5jZSB0eXBlIGlkZW50aWZpZXJcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZmFtaWx5ID0gaW5zdGFuY2VUeXBlQ29tcG9uZW50c1sxXTtcbiAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBpbnN0YW5jZVR5cGVDb21wb25lbnRzWzNdO1xuXG4gICAgLy8gSW5zdGFuY2UgZmFtaWx5IGBhYCBhcmUgZmlyc3QtZ2VuIEdyYXZpdG9uIGluc3RhbmNlc1xuICAgIC8vIENhcGFiaWxpdHkgYGdgIGluZGljYXRlcyB0aGUgaW5zdGFuY2UgaXMgR3Jhdml0b24yIHBvd2VyZWRcbiAgICBpZiAoZmFtaWx5ID09PSBcImFcIiB8fCBjYXBhYmlsaXRpZXMuaW5jbHVkZXMoXCJnXCIpKSB7XG4gICAgICByZXR1cm4gSW5zdGFuY2VBcmNoaXRlY3R1cmUuQVJNXzY0O1xuICAgIH1cblxuICAgIHJldHVybiBJbnN0YW5jZUFyY2hpdGVjdHVyZS5YODZfNjQ7XG4gIH1cblxuICBwdWJsaWMgc2FtZUluc3RhbmNlQ2xhc3NBcyhvdGhlcjogSW5zdGFuY2VUeXBlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5zdGFuY2VDbGFzczogUmVnRXhwID0gL14oW2Etel0rXFxkezEsMn1bYS16XFwtXSopXFwuKFthLXowLTlcXC1dKykkLztcbiAgICBjb25zdCBpbnN0YW5jZUNsYXNzSWQgPSB0aGlzLmluc3RhbmNlVHlwZUlkZW50aWZpZXIubWF0Y2goaW5zdGFuY2VDbGFzcyk7XG4gICAgY29uc3Qgb3RoZXJJbnN0YW5jZUNsYXNzSWQgPVxuICAgICAgb3RoZXIuaW5zdGFuY2VUeXBlSWRlbnRpZmllci5tYXRjaChpbnN0YW5jZUNsYXNzKTtcbiAgICBpZiAoaW5zdGFuY2VDbGFzc0lkID09IG51bGwgfHwgb3RoZXJJbnN0YW5jZUNsYXNzSWQgPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWFsZm9ybWVkIGluc3RhbmNlIHR5cGUgaWRlbnRpZmllclwiKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlQ2xhc3NJZFsxXSA9PT0gb3RoZXJJbnN0YW5jZUNsYXNzSWRbMV07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHdoZXRoZXIgdGhpcyBpbnN0YW5jZSB0eXBlIGlzIGEgYnVyc3RhYmxlIGluc3RhbmNlIHR5cGVcbiAgICovXG4gIHB1YmxpYyBpc0J1cnN0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnN0YW5jZVR5cGVJZGVudGlmaWVyLnN0YXJ0c1dpdGgoXCJ0M1wiKSB8fFxuICAgICAgdGhpcy5pbnN0YW5jZVR5cGVJZGVudGlmaWVyLnN0YXJ0c1dpdGgoXCJ0NGdcIikgfHxcbiAgICAgIHRoaXMuaW5zdGFuY2VUeXBlSWRlbnRpZmllci5zdGFydHNXaXRoKFwidDJcIilcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -164,7 +164,7 @@ class Instance extends aws_construct_1.AwsConstructBase {
|
|
|
164
164
|
keyName: props.keyPair?.keyPairName ?? props?.keyName,
|
|
165
165
|
instanceType: props.instanceType.toString(),
|
|
166
166
|
subnetId: networkInterfaces ? undefined : subnet.subnetId,
|
|
167
|
-
|
|
167
|
+
vpcSecurityGroupIds: networkInterfaces ? undefined : securityGroupsToken,
|
|
168
168
|
associatePublicIpAddress: props.associatePublicIpAddress,
|
|
169
169
|
networkInterface: networkInterfaces,
|
|
170
170
|
iamInstanceProfile,
|
|
@@ -258,5 +258,5 @@ class Instance extends aws_construct_1.AwsConstructBase {
|
|
|
258
258
|
}
|
|
259
259
|
exports.Instance = Instance;
|
|
260
260
|
_a = JSII_RTTI_SYMBOL_1;
|
|
261
|
-
Instance[_a] = { fqn: "terraconstructs.aws.compute.Instance", version: "0.0.
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RkFBNEY7QUFFNUYsc0RBSTZCO0FBQzdCLGlDQU1lO0FBR2Ysb0RBQW1FO0FBQ25FLDhDQUE4QztBQUM5QywwQ0FBbUM7QUFDbkMsd0NBQXdDO0FBQ3hDLDJFQUE4RTtBQUM5RSxtREFBbUQ7QUFDbkQsK0NBQTBEO0FBUzFELGlEQUk0QjtBQUM1QixxREFBaUU7QUFHakUsK0JBQXNEO0FBQ3RELG9EQUFvRDtBQUNwRCw4QkFBOEI7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUFnWmhDOztHQUVHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsZ0NBQWdCO0lBQzVDLElBQVcsZUFBZTtRQUN4QixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBc0VELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUhGLG1CQUFjLEdBQXFCLEVBQUUsQ0FBQztRQUtyRCwwQ0FBMEM7UUFDMUMsK0VBQStFO1FBQy9FLElBQUk7UUFFSixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7UUFDSixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ25FLE1BQU0sSUFBSSxLQUFL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O09BRUc7SUFDSSxlQUFlLENBQUMsU0FBOEI7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDOztBQWhYSCw0QkFzYkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi9pbnN0YW5jZS50c1xuXG5pbXBvcnQge1xuICBpbnN0YW5jZSxcbiAgaWFtSW5zdGFuY2VQcm9maWxlIGFzIHRmSW5zdGFuY2VQcm9maWxlLFxuICBuZXR3b3JrSW50ZXJmYWNlIGFzIHRmTmV0d29ya0ludGVyZmFjZSxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7XG4gIEFubm90YXRpb25zLFxuICBBc3BlY3RzLFxuICAvLyBBc3BlY3RQcmlvcml0eSxcbiAgTGF6eSxcbiAgVG9rZW4sXG59IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2R1cmF0aW9uXCI7XG5pbXBvcnQgeyBJQXdzQ29uc3RydWN0LCBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcbi8vIFRPRE86IFVzZSBUYWdNYW5hZ2VyIGFuZCB0YWctYXNwZWN0IGluc3RlYWRcbmltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiLi4vYXdzLXRhZ3NcIjtcbi8vIGltcG9ydCB7IFRhZ3MgfSBmcm9tIFwiLi4vdGFnLWFzcGVjdFwiO1xuaW1wb3J0IHsgSW5zdGFuY2VSZXF1aXJlSW1kc3YyQXNwZWN0IH0gZnJvbSBcIi4vYXNwZWN0cy9yZXF1aXJlLWltZHN2Mi1hc3BlY3RcIjtcbi8vIGltcG9ydCB7IENsb3VkRm9ybWF0aW9uSW5pdCB9IGZyb20gXCIuL2Nmbi1pbml0XCI7XG5pbXBvcnQgeyBDb25uZWN0aW9ucywgSUNvbm5lY3RhYmxlIH0gZnJvbSBcIi4vY29ubmVjdGlvbnNcIjtcbmltcG9ydCB7IEluc3RhbmNlVHlwZSB9IGZyb20gXCIuL2luc3RhbmNlLXR5cGVzXCI7XG5pbXBvcnQgeyBJS2V5UGFpciB9IGZyb20gXCIuL2tleS1wYWlyXCI7XG5pbXBvcnQge1xuICBDcHVDcmVkaXRzLFxuICBJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3IsXG59IGZyb20gXCIuL2xhdW5jaC10ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgSU1hY2hpbmVJbWFnZSwgT3BlcmF0aW5nU3lzdGVtVHlwZSB9IGZyb20gXCIuL21hY2hpbmUtaW1hZ2VcIjtcbmltcG9ydCB7IElQbGFjZW1lbnRHcm91cCB9IGZyb20gXCIuL3BsYWNlbWVudC1ncm91cFwiO1xuaW1wb3J0IHtcbiAgaW5zdGFuY2VFYnNCbG9ja0RldmljZU1hcHBpbmdzLFxuICBpbnN0YW5jZUVwaGVtZXJhbEJsb2NrRGV2aWNlTWFwcGluZ3MsXG4gIGluc3RhbmNlUm9vdEJsb2NrRGV2aWNlTWFwcGluZyxcbn0gZnJvbSBcIi4vcHJpdmF0ZS9lYnMtdXRpbFwiO1xuaW1wb3J0IHsgSVNlY3VyaXR5R3JvdXAsIFNlY3VyaXR5R3JvdXAgfSBmcm9tIFwiLi9zZWN1cml0eS1ncm91cFwiO1xuaW1wb3J0IHsgVXNlckRhdGEgfSBmcm9tIFwiLi91c2VyLWRhdGFcIjtcbmltcG9ydCB7IEJsb2NrRGV2aWNlIH0gZnJvbSBcIi4vdm9sdW1lXCI7XG5pbXBvcnQgeyBJVnBjLCBTdWJuZXQsIFN1Ym5ldFNlbGVjdGlvbiB9IGZyb20gXCIuL3ZwY1wiO1xuLy8gaW1wb3J0IHsgbWQ1aGFzaCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzLWludGVybmFsXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuXG4vKipcbiAqIE5hbWUgdGFnIGNvbnN0YW50XG4gKi9cbmNvbnN0IE5BTUVfVEFHOiBzdHJpbmcgPSBcIk5hbWVcIjtcblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UncyBJRFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUluc3RhbmNlIGV4dGVuZHMgSUF3c0NvbnN0cnVjdCwgSUNvbm5lY3RhYmxlLCBpYW0uSUdyYW50YWJsZSB7XG4gIC8qKiBTdHJvbmdseSB0eXBlZCBvdXRwdXRzICovXG4gIHJlYWRvbmx5IGluc3RhbmNlT3V0cHV0czogSW5zdGFuY2VPdXRwdXRzO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UncyBJRFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHkgem9uZSB0aGUgaW5zdGFuY2Ugd2FzIGxhdW5jaGVkIGluXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlQXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIEROUyBuYW1lIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHJpdmF0ZURuc05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUHJpdmF0ZSBJUCBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVByaXZhdGVJcDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQdWJsaWNseS1yb3V0YWJsZSBETlMgbmFtZSBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICpcbiAgICogKE1heSBiZSBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGhhdmUgYSBwdWJsaWMgbmFtZSkuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHVibGljRG5zTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQdWJsaWNseS1yb3V0YWJsZSBJUCAgYWRkcmVzcyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICpcbiAgICogKE1heSBiZSBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGhhdmUgYSBwdWJsaWMgSVApLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVB1YmxpY0lwOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBvZiBhbiBFQzIgSW5zdGFuY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVByb3BzIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgU1NIIGtleXBhaXIgdG8gZ3JhbnQgYWNjZXNzIHRvIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gU1NIIGFjY2VzcyB3aWxsIGJlIHBvc3NpYmxlLlxuICAgKiBAZGVwcmVjYXRlZCAtIFVzZSBga2V5UGFpcmAgaW5zdGVhZCAtIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jZGsvYXBpL3YyL2RvY3MvYXdzLWNkay1saWIuYXdzX2VjMi1yZWFkbWUuaHRtbCN1c2luZy1hbi1leGlzdGluZy1lYzIta2V5LXBhaXJcbiAgICovXG4gIHJlYWRvbmx5IGtleU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBTU0gga2V5cGFpciB0byBncmFudCBhY2Nlc3MgdG8gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIFNTSCBhY2Nlc3Mgd2lsbCBiZSBwb3NzaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGtleVBhaXI/OiBJS2V5UGFpcjtcblxuICAvKipcbiAgICogV2hlcmUgdG8gcGxhY2UgdGhlIGluc3RhbmNlIHdpdGhpbiB0aGUgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUHJpdmF0ZSBzdWJuZXRzLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjU3VibmV0cz86IFN1Ym5ldFNlbGVjdGlvbjtcblxuICAvKipcbiAgICogSW4gd2hpY2ggQVogdG8gcGxhY2UgdGhlIGluc3RhbmNlIHdpdGhpbiB0aGUgVlBDXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmFuZG9tIHpvbmUuXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnN0YW5jZSBjb3VsZCBpbml0aWF0ZSBjb25uZWN0aW9ucyB0byBhbnl3aGVyZSBieSBkZWZhdWx0LlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgdXNlZCB3aGVuIHlvdSBkbyBub3QgcHJvdmlkZSBhIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbE91dGJvdW5kPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5zdGFuY2UgY291bGQgaW5pdGlhdGUgSVB2NiBjb25uZWN0aW9ucyB0byBhbnl3aGVyZSBieSBkZWZhdWx0LlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIG9ubHkgdXNlZCB3aGVuIHlvdSBkbyBub3QgcHJvdmlkZSBhIHNlY3VyaXR5IGdyb3VwLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dBbGxJcHY2T3V0Ym91bmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdG8gd2FpdCBmb3IgdGhlIHJlc291cmNlU2lnbmFsQ291bnRcbiAgICpcbiAgICogVGhlIG1heGltdW0gdmFsdWUgaXMgNDMyMDAgKDEyIGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcyg1KVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VTaWduYWxUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFZQQyB0byBsYXVuY2ggdGhlIGluc3RhbmNlIGluLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuXG4gIC8qKlxuICAgKiBTZWN1cml0eSBHcm91cCB0byBhc3NpZ24gdG8gdGhpcyBpbnN0YW5jZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGNyZWF0ZSBuZXcgc2VjdXJpdHkgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA/OiBJU2VjdXJpdHlHcm91cDtcblxuICAvKipcbiAgICogVHlwZSBvZiBpbnN0YW5jZSB0byBsYXVuY2hcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlO1xuXG4gIC8qKlxuICAgKiBBTUkgdG8gbGF1bmNoXG4gICAqL1xuICByZWFkb25seSBtYWNoaW5lSW1hZ2U6IElNYWNoaW5lSW1hZ2U7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmljIFVzZXJEYXRhIHRvIHVzZVxuICAgKlxuICAgKiBUaGUgVXNlckRhdGEgbWF5IHN0aWxsIGJlIG11dGF0ZWQgYWZ0ZXIgY3JlYXRpb24uXG4gICAqXG4gICAqIFVwZGF0ZXMgdG8gdGhpcyBmaWVsZCB3aWxsIHRyaWdnZXIgYSBzdG9wL3N0YXJ0IG9mIHRoZSBFQzIgaW5zdGFuY2UgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogSWYgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudCBpcyBzZXQgdGhlbiB1cGRhdGVzIHRvIHRoaXMgZmllbGQgd2lsbCB0cmlnZ2VyXG4gICAqIGEgZGVzdHJveSBhbmQgcmVjcmVhdGUgb2YgdGhlIEVDMiBpbnN0YW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIFVzZXJEYXRhIG9iamVjdCBhcHByb3ByaWF0ZSBmb3IgdGhlIE1hY2hpbmVJbWFnZSdzXG4gICAqIE9wZXJhdGluZyBTeXN0ZW0gaXMgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJEYXRhPzogVXNlckRhdGE7XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdG8gdGhlIFVzZXJEYXRhIGZvcmNlIHJlcGxhY2VtZW50XG4gICAqXG4gICAqIERlcGVuZGluZyB0aGUgRUMyIGluc3RhbmNlIHR5cGUsIGNoYW5naW5nIFVzZXJEYXRhIGVpdGhlclxuICAgKiByZXN0YXJ0cyB0aGUgaW5zdGFuY2Ugb3IgcmVwbGFjZXMgdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiAtIEluc3RhbmNlIHN0b3JlLWJhY2tlZCBpbnN0YW5jZXMgYXJlIHJlcGxhY2VkLlxuICAgKiAtIEVCUy1iYWNrZWQgaW5zdGFuY2VzIGFyZSByZXN0YXJ0ZWQuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHJlc3RhcnRpbmcgZG9lcyBub3QgZXhlY3V0ZSB0aGUgbmV3IFVzZXJEYXRhIHNvIHlvdVxuICAgKiB3aWxsIG5lZWQgYSBkaWZmZXJlbnQgbWVjaGFuaXNtIHRvIGVuc3VyZSB0aGUgaW5zdGFuY2UgaXMgcmVzdGFydGVkLlxuICAgKlxuICAgKiBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudD86IGJvb2xlYW47XG4gIC8vIEBkZWZhdWx0IC0gdHJ1ZSBpZiBgaW5pdE9wdGlvbnNgIGlzIHNwZWNpZmllZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuXG4gIC8qKlxuICAgKiBBbiBJQU0gcm9sZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgaW5zdGFuY2UgcHJvZmlsZSBhc3NpZ25lZCB0byB0aGlzIEF1dG8gU2NhbGluZyBHcm91cC5cbiAgICpcbiAgICogVGhlIHJvbGUgbXVzdCBiZSBhc3N1bWFibGUgYnkgdGhlIHNlcnZpY2UgcHJpbmNpcGFsIGBlYzIuYW1hem9uYXdzLmNvbWA6XG4gICAqIE5vdGU6IFlvdSBjYW4gcHJvdmlkZSBhbiBpbnN0YW5jZVByb2ZpbGUgb3IgYSByb2xlLCBidXQgbm90IGJvdGguXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IHJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ015Um9sZScsIHtcbiAgICogICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWMyLmFtYXpvbmF3cy5jb20nKVxuICAgKiB9KTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBBIHJvbGUgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNyZWF0ZWQsIGl0IGNhbiBiZSBhY2Nlc3NlZCB2aWEgdGhlIGByb2xlYCBwcm9wZXJ0eVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGhlIGluc3RhbmNlIHByb2ZpbGUgdXNlZCB0byBwYXNzIHJvbGUgaW5mb3JtYXRpb24gdG8gRUMyIGluc3RhbmNlcy5cbiAgICpcbiAgICogTm90ZTogWW91IGNhbiBwcm92aWRlIGFuIGluc3RhbmNlUHJvZmlsZSBvciBhIHJvbGUsIGJ1dCBub3QgYm90aC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBpbnN0YW5jZSBwcm9maWxlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZVByb2ZpbGU/OiBpYW0uSUluc3RhbmNlUHJvZmlsZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ0RLIGdlbmVyYXRlZCBuYW1lXG4gICAqL1xuICByZWFkb25seSBpbnN0YW5jZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGVuYWJsZSBhbiBpbnN0YW5jZSBsYXVuY2hlZCBpbiBhIFZQQyB0byBwZXJmb3JtIE5BVC5cbiAgICogVGhpcyBjb250cm9scyB3aGV0aGVyIHNvdXJjZS9kZXN0aW5hdGlvbiBjaGVja2luZyBpcyBlbmFibGVkIG9uIHRoZSBpbnN0YW5jZS5cbiAgICogQSB2YWx1ZSBvZiB0cnVlIG1lYW5zIHRoYXQgY2hlY2tpbmcgaXMgZW5hYmxlZCwgYW5kIGZhbHNlIG1lYW5zIHRoYXQgY2hlY2tpbmcgaXMgZGlzYWJsZWQuXG4gICAqIFRoZSB2YWx1ZSBtdXN0IGJlIGZhbHNlIGZvciB0aGUgaW5zdGFuY2UgdG8gcGVyZm9ybSBOQVQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZURlc3RDaGVjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBob3cgYmxvY2sgZGV2aWNlcyBhcmUgZXhwb3NlZCB0byB0aGUgaW5zdGFuY2UuIFlvdSBjYW4gc3BlY2lmeSB2aXJ0dWFsIGRldmljZXMgYW5kIEVCUyB2b2x1bWVzLlxuICAgKlxuICAgKiBFYWNoIGluc3RhbmNlIHRoYXQgaXMgbGF1bmNoZWQgaGFzIGFuIGFzc29jaWF0ZWQgcm9vdCBkZXZpY2Ugdm9sdW1lLFxuICAgKiBlaXRoZXIgYW4gQW1hem9uIEVCUyB2b2x1bWUgb3IgYW4gaW5zdGFuY2Ugc3RvcmUgdm9sdW1lLlxuICAgKiBZb3UgY2FuIHVzZSBibG9jayBkZXZpY2UgbWFwcGluZ3MgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIEVCUyB2b2x1bWVzIG9yXG4gICAqIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMgdG8gYXR0YWNoIHRvIGFuIGluc3RhbmNlIHdoZW4gaXQgaXMgbGF1bmNoZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2Jsb2NrLWRldmljZS1tYXBwaW5nLWNvbmNlcHRzLmh0bWxcbiAgICogQHNlZSBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvaW5zdGFuY2UjZWJzLWVwaGVtZXJhbC1hbmQtcm9vdC1ibG9jay1kZXZpY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVXNlcyB0aGUgYmxvY2sgZGV2aWNlIG1hcHBpbmcgb2YgdGhlIEFNSVxuICAgKi9cbiAgcmVhZG9ubHkgYmxvY2tEZXZpY2VzPzogQmxvY2tEZXZpY2VbXTtcblxuICAvKipcbiAgICogRGVmaW5lcyBhIHByaXZhdGUgSVAgYWRkcmVzcyB0byBhc3NvY2lhdGUgd2l0aCBhbiBpbnN0YW5jZS5cbiAgICpcbiAgICogUHJpdmF0ZSBJUCBzaG91bGQgYmUgYXZhaWxhYmxlIHdpdGhpbiB0aGUgVlBDIHRoYXQgdGhlIGluc3RhbmNlIGlzIGJ1aWxkIHdpdGhpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBhc3NvY2lhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvcGFnYXRlIHRoZSBFQzIgaW5zdGFuY2UgdGFncyB0byB0aGUgRUJTIHZvbHVtZXMuXG4gICAqXG4gICAqIERvIG5vdCBwcm9wYWdhdGUgdGFncyBpZiB5b3UgcGxhbiB0byBtYW5hZ2UgYmxvY2sgZGV2aWNlIHRhZ3Mgb3V0c2lkZVxuICAgKiB0aGUgYGF3c19pbnN0YW5jZWAgY29uZmlndXJhdGlvbiwgc3VjaCBhcyB1c2luZyBgdGFnc2AgaW4gYW4gYGF3c19lYnNfdm9sdW1lYFxuICAgKiByZXNvdXJjZSBhdHRhY2hlZCB2aWEgYGF3c192b2x1bWVfYXR0YWNobWVudGAuXG4gICAqXG4gICAqIERvaW5nIHNvIHdpbGwgcmVzdWx0IGluIHJlc291cmNlIGN5Y2xpbmcgYW5kIGluY29uc2lzdGVudCBiZWhhdmlvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGFnYXRlVGFnc1RvVm9sdW1lT25DcmVhdGlvbj86IGJvb2xlYW47XG5cbiAgLy8gVE9ETzogSW1wbGVtZW50IEdyaWQgSW5pdFxuICAvLyAvKipcbiAgLy8gICogQXBwbHkgdGhlIGdpdmVuIENsb3VkRm9ybWF0aW9uIEluaXQgY29uZmlndXJhdGlvbiB0byB0aGUgaW5zdGFuY2UgYXQgc3RhcnR1cFxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIG5vIENsb3VkRm9ybWF0aW9uIGluaXRcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGluaXQ/OiBDbG91ZEZvcm1hdGlvbkluaXQ7XG4gIC8vXG4gIC8vIC8qKlxuICAvLyAgKiBVc2UgdGhlIGdpdmVuIG9wdGlvbnMgZm9yIGFwcGx5aW5nIENsb3VkRm9ybWF0aW9uIEluaXRcbiAgLy8gICpcbiAgLy8gICogRGVzY3JpYmVzIHRoZSBjb25maWdzZXRzIHRvIHVzZSBhbmQgdGhlIHRpbWVvdXQgdG8gd2FpdFxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIGRlZmF1bHQgb3B0aW9uc1xuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgaW5pdE9wdGlvbnM/OiBBcHBseUNsb3VkRm9ybWF0aW9uSW5pdE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgSU1EU3YyIHNob3VsZCBiZSByZXF1aXJlZCBvbiB0aGlzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlSW1kc3YyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciBcIkRldGFpbGVkIE1vbml0b3JpbmdcIiBpcyBlbmFibGVkIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEtlZXAgaW4gbWluZCB0aGF0IERldGFpbGVkIE1vbml0b3JpbmcgcmVzdWx0cyBpbiBleHRyYSBjaGFyZ2VzXG4gICAqXG4gICAqIEBzZWUgaHR0cDovL2F3cy5hbWF6b24uY29tL2Nsb3Vkd2F0Y2gvcHJpY2luZy9cbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGV0YWlsZWRNb25pdG9yaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkIFNTTSBzZXNzaW9uIHBlcm1pc3Npb25zIHRvIHRoZSBpbnN0YW5jZSByb2xlXG4gICAqXG4gICAqIFNldHRpbmcgdGhpcyB0byBgdHJ1ZWAgYWRkcyB0aGUgbmVjZXNzYXJ5IHBlcm1pc3Npb25zIHRvIGNvbm5lY3RcbiAgICogdG8gdGhlIGluc3RhbmNlIHVzaW5nIFNTTSBTZXNzaW9uIE1hbmFnZXIuIFlvdSBjYW4gZG8gdGhpc1xuICAgKiBmcm9tIHRoZSBBV1MgQ29uc29sZS5cbiAgICpcbiAgICogTk9URTogU2V0dGluZyB0aGlzIGZsYWcgdG8gYHRydWVgIG1heSBub3QgYmUgZW5vdWdoIGJ5IGl0c2VsZi5cbiAgICogWW91IG11c3QgYWxzbyB1c2UgYW4gQU1JIHRoYXQgY29tZXMgd2l0aCB0aGUgU1NNIEFnZW50LCBvciBpbnN0YWxsXG4gICAqIHRoZSBTU00gQWdlbnQgeW91cnNlbGYuIFNlZVxuICAgKiBbV29ya2luZyB3aXRoIFNTTSBBZ2VudF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N5c3RlbXMtbWFuYWdlci9sYXRlc3QvdXNlcmd1aWRlL3NzbS1hZ2VudC5odG1sKVxuICAgKiBpbiB0aGUgU1NNIERldmVsb3BlciBHdWlkZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNzbVNlc3Npb25QZXJtaXNzaW9ucz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXNzb2NpYXRlIGEgcHVibGljIElQIGFkZHJlc3MgdG8gdGhlIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UgYXR0YWNoZWQgdG8gdGhpcyBpbnN0YW5jZS5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgYW5kIGBpcHY2QWRkcmVzc0NvdW50YCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHB1YmxpYyBJUCBhZGRyZXNzIGlzIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgYmFzZWQgb24gZGVmYXVsdCBiZWhhdmlvclxuICAgKi9cbiAgcmVhZG9ubHkgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmeWluZyB0aGUgQ1BVIGNyZWRpdCB0eXBlIGZvciBidXJzdGFibGUgRUMyIGluc3RhbmNlIHR5cGVzIChUMiwgVDMsIFQzYSwgZXRjKS5cbiAgICogVGhlIHVubGltaXRlZCBDUFUgY3JlZGl0IG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBUMyBpbnN0YW5jZXMgd2l0aCBhIGRlZGljYXRlZCBob3N0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFQyIGluc3RhbmNlcyBhcmUgc3RhbmRhcmQsIHdoaWxlIFQzLCBUNGcsIGFuZCBUM2EgaW5zdGFuY2VzIGFyZSB1bmxpbWl0ZWQuXG4gICAqL1xuICByZWFkb25seSBjcmVkaXRTcGVjaWZpY2F0aW9uPzogQ3B1Q3JlZGl0cztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIG9wdGltaXplZCBmb3IgQW1hem9uIEVCUyBJL08uXG4gICAqXG4gICAqIFRoaXMgb3B0aW1pemF0aW9uIHByb3ZpZGVzIGRlZGljYXRlZCB0aHJvdWdocHV0IHRvIEFtYXpvbiBFQlMgYW5kIGFuIG9wdGltaXplZCBjb25maWd1cmF0aW9uIHN0YWNrIHRvIHByb3ZpZGUgb3B0aW1hbCBBbWF6b24gRUJTIEkvTyBwZXJmb3JtYW5jZS5cbiAgICogVGhpcyBvcHRpbWl6YXRpb24gaXNuJ3QgYXZhaWxhYmxlIHdpdGggYWxsIGluc3RhbmNlIHR5cGVzLlxuICAgKiBBZGRpdGlvbmFsIHVzYWdlIGNoYXJnZXMgYXBwbHkgd2hlbiB1c2luZyBhbiBFQlMtb3B0aW1pemVkIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZWJzT3B0aW1pemVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIGluc3RhbmNlIHdpbGwgbm90IGJlIGFibGUgdG8gYmUgdGVybWluYXRlZCB1c2luZyB0aGUgQW1hem9uIEVDMiBjb25zb2xlLCBDTEksIG9yIEFQSS5cbiAgICpcbiAgICogVG8gY2hhbmdlIHRoaXMgYXR0cmlidXRlIGFmdGVyIGxhdW5jaCwgdXNlIFtNb2RpZnlJbnN0YW5jZUF0dHJpYnV0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Nb2RpZnlJbnN0YW5jZUF0dHJpYnV0ZS5odG1sKS5cbiAgICogQWx0ZXJuYXRpdmVseSwgaWYgeW91IHNldCBJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3IgdG8gdGVybWluYXRlLCB5b3UgY2FuIHRlcm1pbmF0ZSB0aGUgaW5zdGFuY2VcbiAgICogYnkgcnVubmluZyB0aGUgc2h1dGRvd24gY29tbWFuZCBmcm9tIHRoZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItaW5zdGFuY2UuaHRtbCNjZm4tZWMyLWluc3RhbmNlLWRpc2FibGVhcGl0ZXJtaW5hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZUFwaVRlcm1pbmF0aW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgYW4gaW5zdGFuY2Ugc3RvcHMgb3IgdGVybWluYXRlcyB3aGVuIHlvdSBpbml0aWF0ZSBzaHV0ZG93biBmcm9tIHRoZSBpbnN0YW5jZVxuICAgKiAodXNpbmcgdGhlIG9wZXJhdGluZyBzeXN0ZW0gY29tbWFuZCBmb3Igc3lzdGVtIHNodXRkb3duKS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvdGVybWluYXRpbmctaW5zdGFuY2VzLmh0bWwjVXNpbmdfQ2hhbmdpbmdJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3JcbiAgICpcbiAgICogQGRlZmF1bHQgSW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yLlNUT1BcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcj86IEluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcjtcblxuICAvKipcbiAgICogVGhlIHBsYWNlbWVudCBncm91cCB0aGF0IHlvdSB3YW50IHRvIGxhdW5jaCB0aGUgaW5zdGFuY2UgaW50by5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwbGFjZW1lbnQgZ3JvdXAgd2lsbCBiZSB1c2VkIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2VtZW50R3JvdXA/OiBJUGxhY2VtZW50R3JvdXA7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIEFXUyBOaXRybyBFbmNsYXZlcy5cbiAgICpcbiAgICogTml0cm8gRW5jbGF2ZXMgcmVxdWlyZXMgYSBOaXRyby1iYXNlZCB2aXJ0dWFsaXplZCBwYXJlbnQgaW5zdGFuY2Ugd2l0aCBzcGVjaWZpYyBJbnRlbC9BTUQgd2l0aCBhdCBsZWFzdCA0IHZDUFVzXG4gICAqIG9yIEdyYXZpdG9uIHdpdGggYXQgbGVhc3QgMiB2Q1BVcyBpbnN0YW5jZSB0eXBlcyBhbmQgTGludXgvV2luZG93cyBob3N0IE9TLFxuICAgKiB3aGlsZSB0aGUgZW5jbGF2ZSBpdHNlbGYgc3VwcG9ydHMgb25seSBMaW51eCBPUy5cbiAgICpcbiAgICogWW91IGNhbid0IHNldCBib3RoIGBlbmNsYXZlRW5hYmxlZGAgYW5kIGBoaWJlcm5hdGlvbkVuYWJsZWRgIHRvIHRydWUgb24gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VuY2xhdmVzL2xhdGVzdC91c2VyL25pdHJvLWVuY2xhdmUuaHRtbCNuaXRyby1lbmNsYXZlLXJlcXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5jbGF2ZUVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBlbmFibGVkIGZvciBoaWJlcm5hdGlvbi5cbiAgICpcbiAgICogWW91IGNhbid0IHNldCBib3RoIGBlbmNsYXZlRW5hYmxlZGAgYW5kIGBoaWJlcm5hdGlvbkVuYWJsZWRgIHRvIHRydWUgb24gdGhlIHNhbWUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWluc3RhbmNlLWhpYmVybmF0aW9ub3B0aW9ucy5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGhpYmVybmF0aW9uRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqXG4gICAqIEFtYXpvbiBFQzIgY2hvb3NlcyB0aGUgSVB2NiBhZGRyZXNzZXMgZnJvbSB0aGUgcmFuZ2Ugb2YgeW91ciBzdWJuZXQuXG4gICAqXG4gICAqIFlvdSBjYW5ub3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5IGFuZCBgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzYCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEZvciBpbnN0YW5jZXMgYXNzb2NpYXRlZCB3aXRoIGFuIElQdjYgc3VibmV0LCB1c2UgMTsgb3RoZXJ3aXNlLCB1c2UgMC5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjZBZGRyZXNzQ291bnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhpcyByZXByZXNlbnRzIGEgc2luZ2xlIEVDMiBpbnN0YW5jZVxuICovXG5leHBvcnQgY2xhc3MgSW5zdGFuY2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUluc3RhbmNlIHtcbiAgcHVibGljIGdldCBpbnN0YW5jZU91dHB1dHMoKTogSW5zdGFuY2VPdXRwdXRzIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5zdGFuY2VJZDogdGhpcy5pbnN0YW5jZUlkLFxuICAgIH07XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLmluc3RhbmNlT3V0cHV0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBPUyB0aGUgaW5zdGFuY2UgaXMgcnVubmluZy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvc1R5cGU6IE9wZXJhdGluZ1N5c3RlbVR5cGU7XG5cbiAgLyoqXG4gICAqIEFsbG93cyBzcGVjaWZ5IHNlY3VyaXR5IGdyb3VwIGNvbm5lY3Rpb25zIGZvciB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IENvbm5lY3Rpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgSUFNIHJvbGUgYXNzdW1lZCBieSB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuXG4gIC8qKlxuICAgKiBVc2VyRGF0YSBmb3IgdGhlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlckRhdGE6IFVzZXJEYXRhO1xuXG4gIC8qKlxuICAgKiB0aGUgdW5kZXJseWluZyBpbnN0YW5jZSByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlOiBpbnN0YW5jZS5JbnN0YW5jZTtcblxuICAvKipcbiAgICogdGhlIHByaW1hcnkgbmV0d29yayBpbnRlZmFjZSAoaWYgYXBwbGljYWJsZSlcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJpbWFyeU5ldHdvcmtJbnRlcmZhY2U/OiB0Zk5ldHdvcmtJbnRlcmZhY2UuTmV0d29ya0ludGVyZmFjZTtcblxuICAvKipcbiAgICogdGhlIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UgaWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlQXZhaWxhYmlsaXR5Wm9uZTogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHJpdmF0ZURuc05hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZVByaXZhdGVJcDogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHVibGljRG5zTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHVibGljSXA6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBzOiBJU2VjdXJpdHlHcm91cFtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEluc3RhbmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gaWYgKHByb3BzLmluaXRPcHRpb25zICYmICFwcm9wcy5pbml0KSB7XG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoXCJTZXR0aW5nICdpbml0T3B0aW9ucycgcmVxdWlyZXMgdGhhdCAnaW5pdCcgaXMgYWxzbyBzZXRcIik7XG4gICAgLy8gfVxuXG4gICAgaWYgKHByb3BzLmtleU5hbWUgJiYgcHJvcHMua2V5UGFpcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCBzcGVjaWZ5IGJvdGggb2YgJ2tleU5hbWUnIGFuZCAna2V5UGFpcic7IHByZWZlciAna2V5UGFpcidcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gaWYgY3JlZGl0IHNwZWNpZmljYXRpb24gaXMgc2V0LCB0aGVuIHRoZSBpbnN0YW5jZSB0eXBlIG11c3QgYmUgYnVyc3RhYmxlXG4gICAgaWYgKHByb3BzLmNyZWRpdFNwZWNpZmljYXRpb24gJiYgIXByb3BzLmluc3RhbmNlVHlwZS5pc0J1cnN0YWJsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBjcmVkaXRTcGVjaWZpY2F0aW9uIGlzIHN1cHBvcnRlZCBvbmx5IGZvciBUNGcsIFQzYSwgVDMsIFQyIGluc3RhbmNlIHR5cGUsIGdvdDogJHtwcm9wcy5pbnN0YW5jZVR5cGUudG9TdHJpbmcoKX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc2VjdXJpdHlHcm91cCkge1xuICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gcHJvcHMuc2VjdXJpdHlHcm91cDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gbmV3IFNlY3VyaXR5R3JvdXAodGhpcywgXCJJbnN0YW5jZVNlY3VyaXR5R3JvdXBcIiwge1xuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogcHJvcHMuYWxsb3dBbGxPdXRib3VuZCAhPT0gZmFsc2UsXG4gICAgICAgIGFsbG93QWxsSXB2Nk91dGJvdW5kOiBwcm9wcy5hbGxvd0FsbElwdjZPdXRib3VuZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gbmV3IENvbm5lY3Rpb25zKHtcbiAgICAgIHNlY3VyaXR5R3JvdXBzOiBbdGhpcy5zZWN1cml0eUdyb3VwXSxcbiAgICB9KTtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXBzLnB1c2godGhpcy5zZWN1cml0eUdyb3VwKTtcbiAgICBUYWdzLm9mKHRoaXMpLmFkZChOQU1FX1RBRywgcHJvcHMuaW5zdGFuY2VOYW1lIHx8IHRoaXMubm9kZS5wYXRoKTtcblxuICAgIGlmIChwcm9wcy5pbnN0YW5jZVByb2ZpbGUgJiYgcHJvcHMucm9sZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiWW91IGNhbm5vdCBwcm92aWRlIGJvdGggaW5zdGFuY2VQcm9maWxlIGFuZCByb2xlXCIpO1xuICAgIH1cblxuICAgIGxldCBpYW1JbnN0YW5jZVByb2ZpbGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMuaW5zdGFuY2VQcm9maWxlPy5yb2xlKSB7XG4gICAgICB0aGlzLnJvbGUgPSBwcm9wcy5pbnN0YW5jZVByb2ZpbGUucm9sZTtcbiAgICAgIGlhbUluc3RhbmNlUHJvZmlsZSA9IHByb3BzLmluc3RhbmNlUHJvZmlsZS5pbnN0YW5jZVByb2ZpbGVOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvbGUgPVxuICAgICAgICBwcm9wcy5yb2xlIHx8XG4gICAgICAgIG5ldyBpYW0uUm9sZSh0aGlzLCBcIkluc3RhbmNlUm9sZVwiLCB7XG4gICAgICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlYzIuYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGlhbVByb2ZpbGUgPSBuZXcgdGZJbnN0YW5jZVByb2ZpbGUuSWFtSW5zdGFuY2VQcm9maWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIkluc3RhbmNlUHJvZmlsZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgcm9sZTogdGhpcy5yb2xlLnJvbGVOYW1lLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIGlhbUluc3RhbmNlUHJvZmlsZSA9IGlhbVByb2ZpbGUuaWQ7XG4gICAgfVxuXG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMucm9sZTtcblxuICAgIGlmIChwcm9wcy5zc21TZXNzaW9uUGVybWlzc2lvbnMpIHtcbiAgICAgIHRoaXMucm9sZS5hZGRNYW5hZ2VkUG9saWN5KFxuICAgICAgICBpYW0uTWFuYWdlZFBvbGljeS5mcm9tQXdzTWFuYWdlZFBvbGljeU5hbWUoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBcIkFtYXpvblNTTU1hbmFnZWRJbnN0YW5jZUNvcmVcIixcbiAgICAgICAgICBcIkFtYXpvblNTTU1hbmFnZWRJbnN0YW5jZUNvcmVcIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gdXNlIGRlbGF5ZWQgZXZhbHVhdGlvblxuICAgIGNvbnN0IGltYWdlQ29uZmlnID0gcHJvcHMubWFjaGluZUltYWdlLmdldEltYWdlKHRoaXMpO1xuICAgIHRoaXMudXNlckRhdGEgPSBwcm9wcy51c2VyRGF0YSA/PyBpbWFnZUNvbmZpZy51c2VyRGF0YTtcbiAgICBjb25zdCBzZWN1cml0eUdyb3Vwc1Rva2VuID0gTGF6eS5saXN0VmFsdWUoe1xuICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5zZWN1cml0eUdyb3Vwcy5tYXAoKHNnKSA9PiBzZy5zZWN1cml0eUdyb3VwSWQpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgeyBzdWJuZXRzLCBoYXNQdWJsaWMgfSA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKHByb3BzLnZwY1N1Ym5ldHMpO1xuICAgIGxldCBzdWJuZXQ7XG4gICAgaWYgKHByb3BzLmF2YWlsYWJpbGl0eVpvbmUpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gc3VibmV0cy5maWx0ZXIoXG4gICAgICAgIChzbikgPT4gc24uYXZhaWxhYmlsaXR5Wm9uZSA9PT0gcHJvcHMuYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgICk7XG4gICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHN1Ym5ldCA9IHNlbGVjdGVkWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoXG4gICAgICAgICAgYE5lZWQgZXhhY3RseSAxIHN1Ym5ldCB0byBtYXRjaCBBWiAnJHtwcm9wcy5hdmFpbGFiaWxpdHlab25lfScsIGZvdW5kICR7c2VsZWN0ZWQubGVuZ3RofS4gVXNlIGEgZGlmZmVyZW50IGF2YWlsYWJpbGl0eVpvbmUuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHN1Ym5ldHMubGVuZ3RoID4gMCkge1xuICAgICAgICBzdWJuZXQgPSBzdWJuZXRzWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IoXG4gICAgICAgICAgYERpZCBub3QgZmluZCBhbnkgc3VibmV0cyBtYXRjaGluZyAnJHtKU09OLnN0cmluZ2lmeShwcm9wcy52cGNTdWJuZXRzKX0nLCBwbGVhc2UgdXNlIGEgZGlmZmVyZW50IHNlbGVjdGlvbi5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXN1Ym5ldCkge1xuICAgICAgLy8gV2UgZ290IGhlcmUgYW5kIHdlIGRvbid0IGhhdmUgYSBzdWJuZXQgYmVjYXVzZSBvZiB2YWxpZGF0aW9uIGVycm9ycy5cbiAgICAgIC8vIEludmVudCBvbmUgb24gdGhlIHNwb3Qgc28gdGhlIGNvZGUgYmVsb3cgZG9lc24ndCBmYWlsLlxuICAgICAgc3VibmV0ID0gU3VibmV0LmZyb21TdWJuZXRBdHRyaWJ1dGVzKHRoaXMsIFwiRHVtbXlTdWJuZXRcIiwge1xuICAgICAgICBzdWJuZXRJZDogXCJzLW5vdGZvdW5kXCIsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IFwiYXotbm90Zm91bmRcIixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIG5ldHdvcmsgaW50ZXJmYWNlcyBhcnJheSBpcyBzZXQgdG8gY29uZmlndXJlIHRoZSBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIGlmIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcyBpcyB0cnVlIG9yIGZhbHNlXG4gICAgbGV0IG5ldHdvcmtJbnRlcmZhY2VzOiBpbnN0YW5jZS5JbnN0YW5jZU5ldHdvcmtJbnRlcmZhY2VbXSB8IHVuZGVmaW5lZCA9XG4gICAgICB1bmRlZmluZWQ7XG4gICAgaWYgKHByb3BzLmFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnByaW1hcnlOZXR3b3JrSW50ZXJmYWNlID0gbmV3IHRmTmV0d29ya0ludGVyZmFjZS5OZXR3b3JrSW50ZXJmYWNlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk5ldHdvcmtJbnRlcmZhY2VcIixcbiAgICAgICAge1xuICAgICAgICAgIHN1Ym5ldElkOiBzdWJuZXQuc3VibmV0SWQsXG4gICAgICAgICAgc2VjdXJpdHlHcm91cHM6IHNlY3VyaXR5R3JvdXBzVG9rZW4sXG4gICAgICAgICAgcHJpdmF0ZUlwczogcHJvcHMucHJpdmF0ZUlwQWRkcmVzc1xuICAgICAgICAgICAgPyBbcHJvcHMucHJpdmF0ZUlwQWRkcmVzc11cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICAgIC8vIFRPRE86IFVzZSBuZXR3b3JrSW50ZXJmYWNlQXR0YWNobWVudCBpbnN0ZWFkP1xuICAgICAgLy8gcmVmOiBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy9sYXRlc3QvZG9jcy9yZXNvdXJjZXMvaW5zdGFuY2UjbmV0d29yay1pbnRlcmZhY2VzXG4gICAgICBuZXR3b3JrSW50ZXJmYWNlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGRldmljZUluZGV4OiAwLFxuICAgICAgICAgIG5ldHdvcmtJbnRlcmZhY2VJZDogdGhpcy5wcmltYXJ5TmV0d29ya0ludGVyZmFjZS5pZCxcbiAgICAgICAgfSxcbiAgICAgIF07XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmtleVBhaXIgJiYgIXByb3BzLmtleVBhaXIuX2lzT3NDb21wYXRpYmxlKGltYWdlQ29uZmlnLm9zVHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYCR7cHJvcHMua2V5UGFpci50eXBlfSBrZXlzIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBjaG9zZW4gQU1JYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmVuY2xhdmVFbmFibGVkICYmIHByb3BzLmhpYmVybmF0aW9uRW5hYmxlZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIllvdSBjYW4ndCBzZXQgYm90aCBgZW5jbGF2ZUVuYWJsZWRgIGFuZCBgaGliZXJuYXRpb25FbmFibGVkYCB0byB0cnVlIG9uIHRoZSBzYW1lIGluc3RhbmNlXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLmlwdjZBZGRyZXNzQ291bnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5pcHY2QWRkcmVzc0NvdW50KSAmJlxuICAgICAgKHByb3BzLmlwdjZBZGRyZXNzQ291bnQgPCAwIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLmlwdjZBZGRyZXNzQ291bnQpKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgXFwnaXB2NkFkZHJlc3NDb3VudFxcJyBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIsIGdvdDogJHtwcm9wcy5pcHY2QWRkcmVzc0NvdW50fWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLmlwdjZBZGRyZXNzQ291bnQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJvcHMuYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzICE9PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJZb3UgY2FuJ3Qgc2V0IGJvdGggJ2lwdjZBZGRyZXNzQ291bnQnIGFuZCAnYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzJ1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy9sYXRlc3QvZG9jcy9yZXNvdXJjZXMvaW5zdGFuY2UjdGFnLWd1aWRlXG4gICAgY29uc3Qgdm9sdW1lVGFncyA9IHByb3BzLnByb3BhZ2F0ZVRhZ3NUb1ZvbHVtZU9uQ3JlYXRpb25cbiAgICAgID8geyBbTkFNRV9UQUddOiBwcm9wcy5pbnN0YW5jZU5hbWUgfHwgdGhpcy5ub2RlLnBhdGggfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBpZiBuZXR3b3JrIGludGVyZmFjZXMgYXJyYXkgaXMgY29uZmlndXJlZCB0aGVuIHN1Ym5ldElkLCBzZWN1cml0eUdyb3VwSWRzLFxuICAgIC8vIGFuZCBwcml2YXRlSXBBZGRyZXNzIGFyZSBjb25maWd1cmVkIG9uIHRoZSBuZXR3b3JrIGludGVyZmFjZSBsZXZlbCBhbmRcbiAgICAvLyB0aGVyZSBpcyBubyBuZWVkIHRvIGNvbmZpZ3VyZSB0aGVtIG9uIHRoZSBpbnN0YW5jZSBsZXZlbFxuICAgIHRoaXMuaW5zdGFuY2UgPSBuZXcgaW5zdGFuY2UuSW5zdGFuY2UodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBhbWk6IGltYWdlQ29uZmlnLmltYWdlSWQsXG4gICAgICBrZXlOYW1lOiBwcm9wcy5rZXlQYWlyPy5rZXlQYWlyTmFtZSA/PyBwcm9wcz8ua2V5TmFtZSxcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLnRvU3RyaW5nKCksXG4gICAgICBzdWJuZXRJZDogbmV0d29ya0ludGVyZmFjZXMgPyB1bmRlZmluZWQgOiBzdWJuZXQuc3VibmV0SWQsXG4gICAgICBzZWN1cml0eUdyb3VwczogbmV0d29ya0ludGVyZmFjZXMgPyB1bmRlZmluZWQgOiBzZWN1cml0eUdyb3Vwc1Rva2VuLFxuICAgICAgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiBwcm9wcy5hc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MsXG4gICAgICBuZXR3b3JrSW50ZXJmYWNlOiBuZXR3b3JrSW50ZXJmYWNlcyxcbiAgICAgIGlhbUluc3RhbmNlUHJvZmlsZSxcbiAgICAgIHVzZXJEYXRhQmFzZTY0OiB0aGlzLnVzZXJEYXRhLnJlbmRlcih0aGlzKSxcbiAgICAgIC8vIHVubGlrZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzUuMS9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtZWMyL2xpYi9pbnN0YW5jZS50cyNMNjUyXG4gICAgICB1c2VyRGF0YVJlcGxhY2VPbkNoYW5nZTogcHJvcHMudXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudCA/PyB0cnVlLFxuICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogc3VibmV0LmF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICBzb3VyY2VEZXN0Q2hlY2s6IHByb3BzLnNvdXJjZURlc3RDaGVjayxcbiAgICAgIGVic0Jsb2NrRGV2aWNlOlxuICAgICAgICBwcm9wcy5ibG9ja0RldmljZXMgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gaW5zdGFuY2VFYnNCbG9ja0RldmljZU1hcHBpbmdzKHRoaXMsIHByb3BzLmJsb2NrRGV2aWNlcylcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHJvb3RCbG9ja0RldmljZTpcbiAgICAgICAgcHJvcHMuYmxvY2tEZXZpY2VzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGluc3RhbmNlUm9vdEJsb2NrRGV2aWNlTWFwcGluZyh0aGlzLCBwcm9wcy5ibG9ja0RldmljZXMpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBlcGhlbWVyYWxCbG9ja0RldmljZTpcbiAgICAgICAgcHJvcHMuYmxvY2tEZXZpY2VzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGluc3RhbmNlRXBoZW1lcmFsQmxvY2tEZXZpY2VNYXBwaW5ncyhwcm9wcy5ibG9ja0RldmljZXMpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBwcml2YXRlSXA6IG5ldHdvcmtJbnRlcmZhY2VzID8gdW5kZWZpbmVkIDogcHJvcHMucHJpdmF0ZUlwQWRkcmVzcyxcbiAgICAgIHZvbHVtZVRhZ3MsXG4gICAgICBtb25pdG9yaW5nOiBwcm9wcy5kZXRhaWxlZE1vbml0b3JpbmcsXG4gICAgICBjcmVkaXRTcGVjaWZpY2F0aW9uOiBwcm9wcy5jcmVkaXRTcGVjaWZpY2F0aW9uXG4gICAgICAgID8geyBjcHVDcmVkaXRzOiBwcm9wcy5jcmVkaXRTcGVjaWZpY2F0aW9uIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBlYnNPcHRpbWl6ZWQ6IHByb3BzLmVic09wdGltaXplZCxcbiAgICAgIGRpc2FibGVBcGlUZXJtaW5hdGlvbjogcHJvcHMuZGlzYWJsZUFwaVRlcm1pbmF0aW9uLFxuICAgICAgaW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yOlxuICAgICAgICBwcm9wcy5pbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3IsXG4gICAgICBwbGFjZW1lbnRHcm91cDogcHJvcHMucGxhY2VtZW50R3JvdXA/LnBsYWNlbWVudEdyb3VwTmFtZSxcbiAgICAgIGVuY2xhdmVPcHRpb25zOlxuICAgICAgICBwcm9wcy5lbmNsYXZlRW5hYmxlZCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyB7IGVuYWJsZWQ6IHByb3BzLmVuY2xhdmVFbmFibGVkIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGhpYmVybmF0aW9uOiBwcm9wcy5oaWJlcm5hdGlvbkVuYWJsZWQsXG4gICAgICBpcHY2QWRkcmVzc0NvdW50OiBwcm9wcy5pcHY2QWRkcmVzc0NvdW50LFxuICAgIH0pO1xuICAgIHRoaXMuaW5zdGFuY2Uubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMucm9sZSk7XG5cbiAgICAvLyBpZiBhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MgaXMgdHJ1ZSwgdGhlbiB0aGVyZSBtdXN0IGJlIGEgZGVwZW5kZW5jeSBvbiBpbnRlcm5ldCBjb25uZWN0aXZpdHlcbiAgICBpZiAoXG4gICAgICBwcm9wcy5hc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJvcHMuYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzXG4gICAgKSB7XG4gICAgICBjb25zdCBpbnRlcm5ldENvbm5lY3RlZCA9IHByb3BzLnZwYy5zZWxlY3RTdWJuZXRzKFxuICAgICAgICBwcm9wcy52cGNTdWJuZXRzLFxuICAgICAgKS5pbnRlcm5ldENvbm5lY3Rpdml0eUVzdGFibGlzaGVkO1xuICAgICAgdGhpcy5pbnN0YW5jZS5ub2RlLmFkZERlcGVuZGVuY3koaW50ZXJuZXRDb25uZWN0ZWQpO1xuICAgIH1cblxuICAgIGlmICghaGFzUHVibGljICYmIHByb3BzLmFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIlRvIHNldCAnYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiB0cnVlJyB5b3UgbXVzdCBzZWxlY3QgUHVibGljIHN1Ym5ldHMgKHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogU3VibmV0VHlwZS5QVUJMSUMgfSlcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5vc1R5cGUgPSBpbWFnZUNvbmZpZy5vc1R5cGU7XG4gICAgdGhpcy5ub2RlLmRlZmF1bHRDaGlsZCA9IHRoaXMuaW5zdGFuY2U7XG5cbiAgICB0aGlzLmluc3RhbmNlSWQgPSB0aGlzLmluc3RhbmNlLmlkO1xuICAgIHRoaXMuaW5zdGFuY2VBdmFpbGFiaWxpdHlab25lID0gdGhpcy5pbnN0YW5jZS5hdmFpbGFiaWxpdHlab25lO1xuICAgIHRoaXMuaW5zdGFuY2VQcml2YXRlRG5zTmFtZSA9IHRoaXMuaW5zdGFuY2UucHJpdmF0ZURucztcbiAgICB0aGlzLmluc3RhbmNlUHJpdmF0ZUlwID0gdGhpcy5pbnN0YW5jZS5wcml2YXRlSXA7XG4gICAgdGhpcy5pbnN0YW5jZVB1YmxpY0Ruc05hbWUgPSB0aGlzLmluc3RhbmNlLnB1YmxpY0RucztcbiAgICB0aGlzLmluc3RhbmNlUHVibGljSXAgPSB0aGlzLmluc3RhbmNlLnB1YmxpY0lwO1xuICAgIHRoaXMucHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VJZCA9IHRoaXMucHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VcbiAgICAgID8gdGhpcy5wcmltYXJ5TmV0d29ya0ludGVyZmFjZS5pZFxuICAgICAgOiB0aGlzLmluc3RhbmNlLnByaW1hcnlOZXR3b3JrSW50ZXJmYWNlSWQ7XG5cbiAgICAvLyBUT0RPOiBBZGQgc3VwcG9ydCBmb3IgQ2ZuIFNpZ25hbHNcbiAgICAvLyAvLyBpZiBib3RoIHRoZSByZXNvdXJjZVNpZ25hbFRpbWVvdXQgYW5kIGluaXRPcHRpb25zLnRpbWVvdXQgYXJlIHNldCxcbiAgICAvLyAvLyB0aGUgdGltZW91dCBpcyBzdW1tZWQgdG9nZXRoZXIuIFRoaXMgbG9naWMgaXMgZG9uZSBpbiBhcHBseUNsb3VkRm9ybWF0aW9uSW5pdC5cbiAgICAvLyAvLyBUaGlzIGlzIGJlY2F1c2UgYXBwbHlVcGRhdGVQb2xpY2llcyBvdmVyd3JpdGVzIHRoZSB0aW1lb3V0IHdoZW4gYm90aCB0aW1lb3V0IGZpZWxkcyBhcmUgc3BlY2lmaWVkLlxuICAgIC8vIHRoaXMuYXBwbHlVcGRhdGVQb2xpY2llcyhwcm9wcyk7XG5cbiAgICAvLyBpZiAocHJvcHMuaW5pdCkge1xuICAgIC8vICAgdGhpcy5hcHBseUNsb3VkRm9ybWF0aW9uSW5pdChwcm9wcy5pbml0LCBwcm9wcy5pbml0T3B0aW9ucyk7XG4gICAgLy8gfVxuXG4gICAgaWYgKHByb3BzLnJlcXVpcmVJbWRzdjIpIHtcbiAgICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBJbnN0YW5jZVJlcXVpcmVJbWRzdjJBc3BlY3QoKSk7XG4gICAgICAvLyAsIHtcbiAgICAgIC8vICAgcHJpb3JpdHk6IEFzcGVjdFByaW9yaXR5Lk1VVEFUSU5HLFxuICAgICAgLy8gfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCB0aGUgc2VjdXJpdHkgZ3JvdXAgdG8gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2VjdXJpdHlHcm91cDogVGhlIHNlY3VyaXR5IGdyb3VwIHRvIGFkZFxuICAgKi9cbiAgcHVibGljIGFkZFNlY3VyaXR5R3JvdXAoc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLnNlY3VyaXR5R3JvdXBzLnB1c2goc2VjdXJpdHlHcm91cCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGNvbW1hbmQgdG8gdGhlIHN0YXJ0dXAgc2NyaXB0IG9mIHRoZSBpbnN0YW5jZS5cbiAgICogVGhlIGNvbW1hbmQgbXVzdCBiZSBpbiB0aGUgc2NyaXB0aW5nIGxhbmd1YWdlIHN1cHBvcnRlZCBieSB0aGUgaW5zdGFuY2UncyBPUyAoaS5lLiBMaW51eC9XaW5kb3dzKS5cbiAgICovXG4gIHB1YmxpYyBhZGRVc2VyRGF0YSguLi5jb21tYW5kczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnVzZXJEYXRhLmFkZENvbW1hbmRzKC4uLmNvbW1hbmRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KSB7XG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICAvLyAvKipcbiAgLy8gICogVXNlIGEgQ2xvdWRGb3JtYXRpb24gSW5pdCBjb25maWd1cmF0aW9uIGF0IGluc3RhbmNlIHN0YXJ0dXBcbiAgLy8gICpcbiAgLy8gICogVGhpcyBkb2VzIHRoZSBmb2xsb3dpbmc6XG4gIC8vICAqXG4gIC8vICAqIC0gQXR0YWNoZXMgdGhlIENsb3VkRm9ybWF0aW9uIEluaXQgbWV0YWRhdGEgdG8gdGhlIEluc3RhbmNlIHJlc291cmNlLlxuICAvLyAgKiAtIEFkZCBjb21tYW5kcyB0byB0aGUgaW5zdGFuY2UgVXNlckRhdGEgdG8gcnVuIGBjZm4taW5pdGAgYW5kIGBjZm4tc2lnbmFsYC5cbiAgLy8gICogLSBVcGRhdGUgdGhlIGluc3RhbmNlJ3MgQ3JlYXRpb25Qb2xpY3kgdG8gd2FpdCBmb3IgdGhlIGBjZm4tc2lnbmFsYCBjb21tYW5kcy5cbiAgLy8gICovXG4gIC8vIHB1YmxpYyBhcHBseUNsb3VkRm9ybWF0aW9uSW5pdChcbiAgLy8gICBpbml0OiBDbG91ZEZvcm1hdGlvbkluaXQsXG4gIC8vICAgb3B0aW9uczogQXBwbHlDbG91ZEZvcm1hdGlvbkluaXRPcHRpb25zID0ge30sXG4gIC8vICkge1xuICAvLyAgIGluaXQuYXR0YWNoKHRoaXMuaW5zdGFuY2UsIHtcbiAgLy8gICAgIHBsYXRmb3JtOiB0aGlzLm9zVHlwZSxcbiAgLy8gICAgIGluc3RhbmNlUm9sZTogdGhpcy5yb2xlLFxuICAvLyAgICAgdXNlckRhdGE6IHRoaXMudXNlckRhdGEsXG4gIC8vICAgICBjb25maWdTZXRzOiBvcHRpb25zLmNvbmZpZ1NldHMsXG4gIC8vICAgICBlbWJlZEZpbmdlcnByaW50OiBvcHRpb25zLmVtYmVkRmluZ2VycHJpbnQsXG4gIC8vICAgICBwcmludExvZzogb3B0aW9ucy5wcmludExvZyxcbiAgLy8gICAgIGlnbm9yZUZhaWx1cmVzOiBvcHRpb25zLmlnbm9yZUZhaWx1cmVzLFxuICAvLyAgICAgaW5jbHVkZVJvbGU6IG9wdGlvbnMuaW5jbHVkZVJvbGUsXG4gIC8vICAgICBpbmNsdWRlVXJsOiBvcHRpb25zLmluY2x1ZGVVcmwsXG4gIC8vICAgfSk7XG4gIC8vICAgdGhpcy53YWl0Rm9yUmVzb3VyY2VTaWduYWwob3B0aW9ucy50aW1lb3V0ID8/IER1cmF0aW9uLm1pbnV0ZXMoNSkpO1xuICAvLyB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIFdhaXQgZm9yIGEgc2luZ2xlIGFkZGl0aW9uYWwgcmVzb3VyY2Ugc2lnbmFsXG4gIC8vICAqXG4gIC8vICAqIEFkZCAxIHRvIHRoZSBjdXJyZW50IFJlc291cmNlU2lnbmFsIENvdW50IGFuZCBhZGQgdGhlIGdpdmVuIHRpbWVvdXQgdG8gdGhlIGN1cnJlbnQgdGltZW91dC5cbiAgLy8gICpcbiAgLy8gICogVXNlIHRoaXMgdG8gcGF1c2UgdGhlIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQgdG8gd2FpdCBmb3IgdGhlIGluc3RhbmNlc1xuICAvLyAgKiBpbiB0aGUgQXV0b1NjYWxpbmdHcm91cCB0byByZXBvcnQgc3VjY2Vzc2Z1bCBzdGFydHVwIGR1cmluZ1xuICAvLyAgKiBjcmVhdGlvbiBhbmQgdXBkYXRlcy4gVGhlIFVzZXJEYXRhIHNjcmlwdCBuZWVkcyB0byBpbnZva2UgYGNmbi1zaWduYWxgXG4gIC8vICAqIHdpdGggYSBzdWNjZXNzIG9yIGZhaWx1cmUgY29kZSBhZnRlciBpdCBpcyBkb25lIHNldHRpbmcgdXAgdGhlIGluc3RhbmNlLlxuICAvLyAgKi9cbiAgLy8gcHJpdmF0ZSB3YWl0Rm9yUmVzb3VyY2VTaWduYWwodGltZW91dDogRHVyYXRpb24pIHtcbiAgLy8gICBjb25zdCBvbGRSZXNvdXJjZVNpZ25hbCA9XG4gIC8vICAgICB0aGlzLmluc3RhbmNlLmNmbk9wdGlvbnMuY3JlYXRpb25Qb2xpY3k/LnJlc291cmNlU2lnbmFsO1xuICAvLyAgIHRoaXMuaW5zdGFuY2UuY2ZuT3B0aW9ucy5jcmVhdGlvblBvbGljeSA9IHtcbiAgLy8gICAgIC4uLnRoaXMuaW5zdGFuY2UuY2ZuT3B0aW9ucy5jcmVhdGlvblBvbGljeSxcbiAgLy8gICAgIHJlc291cmNlU2lnbmFsOiB7XG4gIC8vICAgICAgIGNvdW50OiAob2xkUmVzb3VyY2VTaWduYWw/LmNvdW50ID8/IDApICsgMSxcbiAgLy8gICAgICAgdGltZW91dDogKG9sZFJlc291cmNlU2lnbmFsPy50aW1lb3V0XG4gIC8vICAgICAgICAgPyBEdXJhdGlvbi5wYXJzZShvbGRSZXNvdXJjZVNpZ25hbD8udGltZW91dCkucGx1cyh0aW1lb3V0KVxuICAvLyAgICAgICAgIDogdGltZW91dFxuICAvLyAgICAgICApLnRvSXNvU3RyaW5nKCksXG4gIC8vICAgICB9LFxuICAvLyAgIH07XG4gIC8vIH1cblxuICAvLyAvKipcbiAgLy8gICogQXBwbHkgQ2xvdWRGb3JtYXRpb24gdXBkYXRlIHBvbGljaWVzIGZvciB0aGUgaW5zdGFuY2VcbiAgLy8gICovXG4gIC8vIHByaXZhdGUgYXBwbHlVcGRhdGVQb2xpY2llcyhwcm9wczogSW5zdGFuY2VQcm9wcykge1xuICAvLyAgIGlmIChwcm9wcy5yZXNvdXJjZVNpZ25hbFRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAvLyAgICAgdGhpcy5pbnN0YW5jZS5jZm5PcHRpb25zLmNyZWF0aW9uUG9saWN5ID0ge1xuICAvLyAgICAgICAuLi50aGlzLmluc3RhbmNlLmNmbk9wdGlvbnMuY3JlYXRpb25Qb2xpY3ksXG4gIC8vICAgICAgIHJlc291cmNlU2lnbmFsOiB7XG4gIC8vICAgICAgICAgLi4udGhpcy5pbnN0YW5jZS5jZm5PcHRpb25zLmNyZWF0aW9uUG9saWN5Py5yZXNvdXJjZVNpZ25hbCxcbiAgLy8gICAgICAgICB0aW1lb3V0OlxuICAvLyAgICAgICAgICAgcHJvcHMucmVzb3VyY2VTaWduYWxUaW1lb3V0ICYmXG4gIC8vICAgICAgICAgICBwcm9wcy5yZXNvdXJjZVNpZ25hbFRpbWVvdXQudG9Jc29TdHJpbmcoKSxcbiAgLy8gICAgICAgfSxcbiAgLy8gICAgIH07XG4gIC8vICAgfVxuICAvLyB9XG59XG5cbi8vIC8qKlxuLy8gICogT3B0aW9ucyBmb3IgYXBwbHlpbmcgQ2xvdWRGb3JtYXRpb24gaW5pdCB0byBhbiBpbnN0YW5jZSBvciBpbnN0YW5jZSBncm91cFxuLy8gICovXG4vLyBleHBvcnQgaW50ZXJmYWNlIEFwcGx5Q2xvdWRGb3JtYXRpb25Jbml0T3B0aW9ucyB7XG4vLyAgIC8qKlxuLy8gICAgKiBDb25maWdTZXQgdG8gYWN0aXZhdGVcbi8vICAgICpcbi8vICAgICogQGRlZmF1bHQgWydkZWZhdWx0J11cbi8vICAgICovXG4vLyAgIHJlYWRvbmx5IGNvbmZpZ1NldHM/OiBzdHJpbmdbXTtcblxuLy8gICAvKipcbi8vICAgICogVGltZW91dCB3YWl0aW5nIGZvciB0aGUgY29uZmlndXJhdGlvbiB0byBiZSBhcHBsaWVkXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoNSlcbi8vICAgICovXG4vLyAgIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuLy8gICAvKipcbi8vICAgICogRm9yY2UgaW5zdGFuY2UgcmVwbGFjZW1lbnQgYnkgZW1iZWRkaW5nIGEgY29uZmlnIGZpbmdlcnByaW50XG4vLyAgICAqXG4vLyAgICAqIElmIGB0cnVlYCAodGhlIGRlZmF1bHQpLCBhIGhhc2ggb2YgdGhlIGNvbmZpZyB3aWxsIGJlIGVtYmVkZGVkIGludG8gdGhlXG4vLyAgICAqIFVzZXJEYXRhLCBzbyB0aGF0IGlmIHRoZSBjb25maWcgY2hhbmdlcywgdGhlIFVzZXJEYXRhIGNoYW5nZXMuXG4vLyAgICAqXG4vLyAgICAqIC0gSWYgdGhlIEVDMiBpbnN0YW5jZSBpcyBpbnN0YW5jZS1zdG9yZSBiYWNrZWQgb3Jcbi8vICAgICogICBgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudGAgaXMgc2V0LCB0aGlzIHdpbGwgY2F1c2UgdGhlIGluc3RhbmNlIHRvIGJlXG4vLyAgICAqICAgcmVwbGFjZWQgYW5kIHRoZSBuZXcgY29uZmlndXJhdGlvbiB0byBiZSBhcHBsaWVkLlxuLy8gICAgKiAtIElmIHRoZSBpbnN0YW5jZSBpcyBFQlMtYmFja2VkIGFuZCBgdXNlckRhdGFDYXVzZXNSZXBsYWNlbWVudGAgaXMgbm90XG4vLyAgICAqICAgc2V0LCB0aGUgY2hhbmdlIG9mIFVzZXJEYXRhIHdpbGwgbWFrZSB0aGUgaW5zdGFuY2UgcmVzdGFydCBidXQgbm90IGJlXG4vLyAgICAqICAgcmVwbGFjZWQsIGFuZCB0aGUgY29uZmlndXJhdGlvbiB3aWxsIG5vdCBiZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4vLyAgICAqXG4vLyAgICAqIElmIGBmYWxzZWAsIG5vIGhhc2ggd2lsbCBiZSBlbWJlZGRlZCwgYW5kIGlmIHRoZSBDbG91ZEZvcm1hdGlvbiBJbml0XG4vLyAgICAqIGNvbmZpZyBjaGFuZ2VzIG5vdGhpbmcgd2lsbCBoYXBwZW4gdG8gdGhlIHJ1bm5pbmcgaW5zdGFuY2UuIElmIGFcbi8vICAgICogY29uZmlnIHVwZGF0ZSBpbnRyb2R1Y2VzIGVycm9ycywgeW91IHdpbGwgbm90IG5vdGljZSB1bnRpbCBhZnRlciB0aGVcbi8vICAgICogQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCBzdWNjZXNzZnVsbHkgZmluaXNoZXMgYW5kIHRoZSBuZXh0IGluc3RhbmNlXG4vLyAgICAqIGZhaWxzIHRvIGxhdW5jaC5cbi8vICAgICpcbi8vICAgICogQGRlZmF1bHQgdHJ1ZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgZW1iZWRGaW5nZXJwcmludD86IGJvb2xlYW47XG5cbi8vICAgLyoqXG4vLyAgICAqIFByaW50IHRoZSByZXN1bHRzIG9mIHJ1bm5pbmcgY2ZuLWluaXQgdG8gdGhlIEluc3RhbmNlIFN5c3RlbSBMb2dcbi8vICAgICpcbi8vICAgICogQnkgZGVmYXVsdCwgdGhlIG91dHB1dCBvZiBydW5uaW5nIGNmbi1pbml0IGlzIHdyaXR0ZW4gdG8gYSBsb2cgZmlsZVxuLy8gICAgKiBvbiB0aGUgaW5zdGFuY2UuIFNldCB0aGlzIHRvIGB0cnVlYCB0byBwcmludCBpdCB0byB0aGUgU3lzdGVtIExvZ1xuLy8gICAgKiAodmlzaWJsZSBmcm9tIHRoZSBFQzIgQ29uc29sZSksIGBmYWxzZWAgdG8gbm90IHByaW50IGl0LlxuLy8gICAgKlxuLy8gICAgKiAoQmUgYXdhcmUgdGhhdCB0aGUgc3lzdGVtIGxvZyBpcyByZWZyZXNoZWQgYXQgY2VydGFpbiBwb2ludHMgaW5cbi8vICAgICogdGltZSBvZiB0aGUgaW5zdGFuY2UgbGlmZSBjeWNsZSwgYW5kIHN1Y2Nlc3NmdWwgZXhlY3V0aW9uIG1heVxuLy8gICAgKiBub3QgYWx3YXlzIHNob3cgdXApLlxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCB0cnVlXG4vLyAgICAqL1xuLy8gICByZWFkb25seSBwcmludExvZz86IGJvb2xlYW47XG5cbi8vICAgLyoqXG4vLyAgICAqIERvbid0IGZhaWwgdGhlIGluc3RhbmNlIGNyZWF0aW9uIHdoZW4gY2ZuLWluaXQgZmFpbHNcbi8vICAgICpcbi8vICAgICogWW91IGNhbiB1c2UgdGhpcyB0byBwcmV2ZW50IENsb3VkRm9ybWF0aW9uIGZyb20gcm9sbGluZyBiYWNrIHdoZW5cbi8vICAgICogaW5zdGFuY2VzIGZhaWwgdG8gc3RhcnQgdXAsIHRvIGhlbHAgaW4gZGVidWdnaW5nLlxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCBmYWxzZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgaWdub3JlRmFpbHVyZXM/OiBib29sZWFuO1xuXG4vLyAgIC8qKlxuLy8gICAgKiBJbmNsdWRlIC0tdXJsIGFyZ3VtZW50IHdoZW4gcnVubmluZyBjZm4taW5pdCBhbmQgY2ZuLXNpZ25hbCBjb21tYW5kc1xuLy8gICAgKlxuLy8gICAgKiBUaGlzIHdpbGwgYmUgdGhlIGNsb3VkZm9ybWF0aW9uIGVuZHBvaW50IGluIHRoZSBkZXBsb3llZCByZWdpb25cbi8vICAgICogZS5nLiBodHRwczovL2Nsb3VkZm9ybWF0aW9uLnVzLWVhc3QtMS5hbWF6b25hd3MuY29tXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IGZhbHNlXG4vLyAgICAqL1xuLy8gICByZWFkb25seSBpbmNsdWRlVXJsPzogYm9vbGVhbjtcblxuLy8gICAvKipcbi8vICAgICogSW5jbHVkZSAtLXJvbGUgYXJndW1lbnQgd2hlbiBydW5uaW5nIGNmbi1pbml0IGFuZCBjZm4tc2lnbmFsIGNvbW1hbmRzXG4vLyAgICAqXG4vLyAgICAqIFRoaXMgd2lsbCBiZSB0aGUgSUFNIGluc3RhbmNlIHByb2ZpbGUgYXR0YWNoZWQgdG8gdGhlIEVDMiBpbnN0YW5jZVxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCBmYWxzZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgaW5jbHVkZVJvbGU/OiBib29sZWFuO1xuLy8gfVxuIl19
|
|
261
|
+
Instance[_a] = { fqn: "terraconstructs.aws.compute.Instance", version: "0.0.16" };
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvaW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw0RkFBNEY7QUFFNUYsc0RBSTZCO0FBQzdCLGlDQU1lO0FBR2Ysb0RBQW1FO0FBQ25FLDhDQUE4QztBQUM5QywwQ0FBbUM7QUFDbkMsd0NBQXdDO0FBQ3hDLDJFQUE4RTtBQUM5RSxtREFBbUQ7QUFDbkQsK0NBQTBEO0FBUzFELGlEQUk0QjtBQUM1QixxREFBaUU7QUFHakUsK0JBQXNEO0FBQ3RELG9EQUFvRDtBQUNwRCw4QkFBOEI7QUFFOUI7O0dBRUc7QUFDSCxNQUFNLFFBQVEsR0FBVyxNQUFNLENBQUM7QUFnWmhDOztHQUVHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsZ0NBQWdCO0lBQzVDLElBQVcsZUFBZTtRQUN4QixPQUFPO1lBQ0wsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBc0VELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUhGLG1CQUFjLEdBQXFCLEVBQUUsQ0FBQztRQUtyRCwwQ0FBMEM7UUFDMUMsK0VBQStFO1FBQy9FLElBQUk7UUFFSixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0VBQWtFLENBQ25FLENBQUM7UUFDSixDQUFDO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksS0FBSyxDQUFDLG1CQUFtQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ25FLE1BQU0sSUFBSSxLQUFL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RDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxTQUE4QjtRQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7O0FBaFhILDRCQXNiQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL2luc3RhbmNlLnRzXG5cbmltcG9ydCB7XG4gIGluc3RhbmNlLFxuICBpYW1JbnN0YW5jZVByb2ZpbGUgYXMgdGZJbnN0YW5jZVByb2ZpbGUsXG4gIG5ldHdvcmtJbnRlcmZhY2UgYXMgdGZOZXR3b3JrSW50ZXJmYWNlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHtcbiAgQW5ub3RhdGlvbnMsXG4gIEFzcGVjdHMsXG4gIC8vIEFzcGVjdFByaW9yaXR5LFxuICBMYXp5LFxuICBUb2tlbixcbn0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vZHVyYXRpb25cIjtcbmltcG9ydCB7IElBd3NDb25zdHJ1Y3QsIEF3c0NvbnN0cnVjdEJhc2UgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuLy8gVE9ETzogVXNlIFRhZ01hbmFnZXIgYW5kIHRhZy1hc3BlY3QgaW5zdGVhZFxuaW1wb3J0IHsgVGFncyB9IGZyb20gXCIuLi9hd3MtdGFnc1wiO1xuLy8gaW1wb3J0IHsgVGFncyB9IGZyb20gXCIuLi90YWctYXNwZWN0XCI7XG5pbXBvcnQgeyBJbnN0YW5jZVJlcXVpcmVJbWRzdjJBc3BlY3QgfSBmcm9tIFwiLi9hc3BlY3RzL3JlcXVpcmUtaW1kc3YyLWFzcGVjdFwiO1xuLy8gaW1wb3J0IHsgQ2xvdWRGb3JtYXRpb25Jbml0IH0gZnJvbSBcIi4vY2ZuLWluaXRcIjtcbmltcG9ydCB7IENvbm5lY3Rpb25zLCBJQ29ubmVjdGFibGUgfSBmcm9tIFwiLi9jb25uZWN0aW9uc1wiO1xuaW1wb3J0IHsgSW5zdGFuY2VUeXBlIH0gZnJvbSBcIi4vaW5zdGFuY2UtdHlwZXNcIjtcbmltcG9ydCB7IElLZXlQYWlyIH0gZnJvbSBcIi4va2V5LXBhaXJcIjtcbmltcG9ydCB7XG4gIENwdUNyZWRpdHMsXG4gIEluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcixcbn0gZnJvbSBcIi4vbGF1bmNoLXRlbXBsYXRlXCI7XG5pbXBvcnQgeyBJTWFjaGluZUltYWdlLCBPcGVyYXRpbmdTeXN0ZW1UeXBlIH0gZnJvbSBcIi4vbWFjaGluZS1pbWFnZVwiO1xuaW1wb3J0IHsgSVBsYWNlbWVudEdyb3VwIH0gZnJvbSBcIi4vcGxhY2VtZW50LWdyb3VwXCI7XG5pbXBvcnQge1xuICBpbnN0YW5jZUVic0Jsb2NrRGV2aWNlTWFwcGluZ3MsXG4gIGluc3RhbmNlRXBoZW1lcmFsQmxvY2tEZXZpY2VNYXBwaW5ncyxcbiAgaW5zdGFuY2VSb290QmxvY2tEZXZpY2VNYXBwaW5nLFxufSBmcm9tIFwiLi9wcml2YXRlL2Vicy11dGlsXCI7XG5pbXBvcnQgeyBJU2VjdXJpdHlHcm91cCwgU2VjdXJpdHlHcm91cCB9IGZyb20gXCIuL3NlY3VyaXR5LWdyb3VwXCI7XG5pbXBvcnQgeyBVc2VyRGF0YSB9IGZyb20gXCIuL3VzZXItZGF0YVwiO1xuaW1wb3J0IHsgQmxvY2tEZXZpY2UgfSBmcm9tIFwiLi92b2x1bWVcIjtcbmltcG9ydCB7IElWcGMsIFN1Ym5ldCwgU3VibmV0U2VsZWN0aW9uIH0gZnJvbSBcIi4vdnBjXCI7XG4vLyBpbXBvcnQgeyBtZDVoYXNoIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMtaW50ZXJuYWxcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8qKlxuICogTmFtZSB0YWcgY29uc3RhbnRcbiAqL1xuY29uc3QgTkFNRV9UQUc6IHN0cmluZyA9IFwiTmFtZVwiO1xuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSdzIElEXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSW5zdGFuY2UgZXh0ZW5kcyBJQXdzQ29uc3RydWN0LCBJQ29ubmVjdGFibGUsIGlhbS5JR3JhbnRhYmxlIHtcbiAgLyoqIFN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VPdXRwdXRzOiBJbnN0YW5jZU91dHB1dHM7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnN0YW5jZSdzIElEXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSB6b25lIHRoZSBpbnN0YW5jZSB3YXMgbGF1bmNoZWQgaW5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VBdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgRE5TIG5hbWUgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VQcml2YXRlRG5zTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIElQIGZvciB0aGlzIGluc3RhbmNlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHJpdmF0ZUlwOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFB1YmxpY2x5LXJvdXRhYmxlIEROUyBuYW1lIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKlxuICAgKiAoTWF5IGJlIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgaW5zdGFuY2UgZG9lcyBub3QgaGF2ZSBhIHB1YmxpYyBuYW1lKS5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VQdWJsaWNEbnNOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFB1YmxpY2x5LXJvdXRhYmxlIElQICBhZGRyZXNzIGZvciB0aGlzIGluc3RhbmNlLlxuICAgKlxuICAgKiAoTWF5IGJlIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgaW5zdGFuY2UgZG9lcyBub3QgaGF2ZSBhIHB1YmxpYyBJUCkuXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHVibGljSXA6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGFuIEVDMiBJbnN0YW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiBTU0gga2V5cGFpciB0byBncmFudCBhY2Nlc3MgdG8gaW5zdGFuY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBTU0ggYWNjZXNzIHdpbGwgYmUgcG9zc2libGUuXG4gICAqIEBkZXByZWNhdGVkIC0gVXNlIGBrZXlQYWlyYCBpbnN0ZWFkIC0gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5hd3NfZWMyLXJlYWRtZS5odG1sI3VzaW5nLWFuLWV4aXN0aW5nLWVjMi1rZXktcGFpclxuICAgKi9cbiAgcmVhZG9ubHkga2V5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFNTSCBrZXlwYWlyIHRvIGdyYW50IGFjY2VzcyB0byB0aGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gU1NIIGFjY2VzcyB3aWxsIGJlIHBvc3NpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5UGFpcj86IElLZXlQYWlyO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0byBwbGFjZSB0aGUgaW5zdGFuY2Ugd2l0aGluIHRoZSBWUENcbiAgICpcbiAgICogQGRlZmF1bHQgLSBQcml2YXRlIHN1Ym5ldHMuXG4gICAqL1xuICByZWFkb25seSB2cGNTdWJuZXRzPzogU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBJbiB3aGljaCBBWiB0byBwbGFjZSB0aGUgaW5zdGFuY2Ugd2l0aGluIHRoZSBWUENcbiAgICpcbiAgICogQGRlZmF1bHQgLSBSYW5kb20gem9uZS5cbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGluc3RhbmNlIGNvdWxkIGluaXRpYXRlIGNvbm5lY3Rpb25zIHRvIGFueXdoZXJlIGJ5IGRlZmF1bHQuXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgb25seSB1c2VkIHdoZW4geW91IGRvIG5vdCBwcm92aWRlIGEgc2VjdXJpdHkgZ3JvdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93QWxsT3V0Ym91bmQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBpbnN0YW5jZSBjb3VsZCBpbml0aWF0ZSBJUHY2IGNvbm5lY3Rpb25zIHRvIGFueXdoZXJlIGJ5IGRlZmF1bHQuXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgb25seSB1c2VkIHdoZW4geW91IGRvIG5vdCBwcm92aWRlIGEgc2VjdXJpdHkgZ3JvdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0FsbElwdjZPdXRib3VuZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsZW5ndGggb2YgdGltZSB0byB3YWl0IGZvciB0aGUgcmVzb3VyY2VTaWduYWxDb3VudFxuICAgKlxuICAgKiBUaGUgbWF4aW11bSB2YWx1ZSBpcyA0MzIwMCAoMTIgaG91cnMpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDUpXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZVNpZ25hbFRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVlBDIHRvIGxhdW5jaCB0aGUgaW5zdGFuY2UgaW4uXG4gICAqL1xuICByZWFkb25seSB2cGM6IElWcGM7XG5cbiAgLyoqXG4gICAqIFNlY3VyaXR5IEdyb3VwIHRvIGFzc2lnbiB0byB0aGlzIGluc3RhbmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gY3JlYXRlIG5ldyBzZWN1cml0eSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cD86IElTZWN1cml0eUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIGluc3RhbmNlIHRvIGxhdW5jaFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBJbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIEFNSSB0byBsYXVuY2hcbiAgICovXG4gIHJlYWRvbmx5IG1hY2hpbmVJbWFnZTogSU1hY2hpbmVJbWFnZTtcblxuICAvKipcbiAgICogU3BlY2lmaWMgVXNlckRhdGEgdG8gdXNlXG4gICAqXG4gICAqIFRoZSBVc2VyRGF0YSBtYXkgc3RpbGwgYmUgbXV0YXRlZCBhZnRlciBjcmVhdGlvbi5cbiAgICpcbiAgICogVXBkYXRlcyB0byB0aGlzIGZpZWxkIHdpbGwgdHJpZ2dlciBhIHN0b3Avc3RhcnQgb2YgdGhlIEVDMiBpbnN0YW5jZSBieSBkZWZhdWx0LlxuICAgKlxuICAgKiBJZiB1c2VyRGF0YUNhdXNlc1JlcGxhY2VtZW50IGlzIHNldCB0aGVuIHVwZGF0ZXMgdG8gdGhpcyBmaWVsZCB3aWxsIHRyaWdnZXJcbiAgICogYSBkZXN0cm95IGFuZCByZWNyZWF0ZSBvZiB0aGUgRUMyIGluc3RhbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgVXNlckRhdGEgb2JqZWN0IGFwcHJvcHJpYXRlIGZvciB0aGUgTWFjaGluZUltYWdlJ3NcbiAgICogT3BlcmF0aW5nIFN5c3RlbSBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlckRhdGE/OiBVc2VyRGF0YTtcblxuICAvKipcbiAgICogQ2hhbmdlcyB0byB0aGUgVXNlckRhdGEgZm9yY2UgcmVwbGFjZW1lbnRcbiAgICpcbiAgICogRGVwZW5kaW5nIHRoZSBFQzIgaW5zdGFuY2UgdHlwZSwgY2hhbmdpbmcgVXNlckRhdGEgZWl0aGVyXG4gICAqIHJlc3RhcnRzIHRoZSBpbnN0YW5jZSBvciByZXBsYWNlcyB0aGUgaW5zdGFuY2UuXG4gICAqXG4gICAqIC0gSW5zdGFuY2Ugc3RvcmUtYmFja2VkIGluc3RhbmNlcyBhcmUgcmVwbGFjZWQuXG4gICAqIC0gRUJTLWJhY2tlZCBpbnN0YW5jZXMgYXJlIHJlc3RhcnRlZC5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgcmVzdGFydGluZyBkb2VzIG5vdCBleGVjdXRlIHRoZSBuZXcgVXNlckRhdGEgc28geW91XG4gICAqIHdpbGwgbmVlZCBhIGRpZmZlcmVudCBtZWNoYW5pc20gdG8gZW5zdXJlIHRoZSBpbnN0YW5jZSBpcyByZXN0YXJ0ZWQuXG4gICAqXG4gICAqIGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSB1c2VyRGF0YUNhdXNlc1JlcGxhY2VtZW50PzogYm9vbGVhbjtcbiAgLy8gQGRlZmF1bHQgLSB0cnVlIGlmIGBpbml0T3B0aW9uc2AgaXMgc3BlY2lmaWVkLCBmYWxzZSBvdGhlcndpc2UuXG5cbiAgLyoqXG4gICAqIEFuIElBTSByb2xlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBpbnN0YW5jZSBwcm9maWxlIGFzc2lnbmVkIHRvIHRoaXMgQXV0byBTY2FsaW5nIEdyb3VwLlxuICAgKlxuICAgKiBUaGUgcm9sZSBtdXN0IGJlIGFzc3VtYWJsZSBieSB0aGUgc2VydmljZSBwcmluY2lwYWwgYGVjMi5hbWF6b25hd3MuY29tYDpcbiAgICogTm90ZTogWW91IGNhbiBwcm92aWRlIGFuIGluc3RhbmNlUHJvZmlsZSBvciBhIHJvbGUsIGJ1dCBub3QgYm90aC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnTXlSb2xlJywge1xuICAgKiAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlYzIuYW1hem9uYXdzLmNvbScpXG4gICAqIH0pO1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIEEgcm9sZSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgY3JlYXRlZCwgaXQgY2FuIGJlIGFjY2Vzc2VkIHZpYSB0aGUgYHJvbGVgIHByb3BlcnR5XG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5zdGFuY2UgcHJvZmlsZSB1c2VkIHRvIHBhc3Mgcm9sZSBpbmZvcm1hdGlvbiB0byBFQzIgaW5zdGFuY2VzLlxuICAgKlxuICAgKiBOb3RlOiBZb3UgY2FuIHByb3ZpZGUgYW4gaW5zdGFuY2VQcm9maWxlIG9yIGEgcm9sZSwgYnV0IG5vdCBib3RoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGluc3RhbmNlIHByb2ZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlUHJvZmlsZT86IGlhbS5JSW5zdGFuY2VQcm9maWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaW5zdGFuY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBDREsgZ2VuZXJhdGVkIG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIGFuIGluc3RhbmNlIGxhdW5jaGVkIGluIGEgVlBDIHRvIHBlcmZvcm0gTkFULlxuICAgKiBUaGlzIGNvbnRyb2xzIHdoZXRoZXIgc291cmNlL2Rlc3RpbmF0aW9uIGNoZWNraW5nIGlzIGVuYWJsZWQgb24gdGhlIGluc3RhbmNlLlxuICAgKiBBIHZhbHVlIG9mIHRydWUgbWVhbnMgdGhhdCBjaGVja2luZyBpcyBlbmFibGVkLCBhbmQgZmFsc2UgbWVhbnMgdGhhdCBjaGVja2luZyBpcyBkaXNhYmxlZC5cbiAgICogVGhlIHZhbHVlIG11c3QgYmUgZmFsc2UgZm9yIHRoZSBpbnN0YW5jZSB0byBwZXJmb3JtIE5BVC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlRGVzdENoZWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGhvdyBibG9jayBkZXZpY2VzIGFyZSBleHBvc2VkIHRvIHRoZSBpbnN0YW5jZS4gWW91IGNhbiBzcGVjaWZ5IHZpcnR1YWwgZGV2aWNlcyBhbmQgRUJTIHZvbHVtZXMuXG4gICAqXG4gICAqIEVhY2ggaW5zdGFuY2UgdGhhdCBpcyBsYXVuY2hlZCBoYXMgYW4gYXNzb2NpYXRlZCByb290IGRldmljZSB2b2x1bWUsXG4gICAqIGVpdGhlciBhbiBBbWF6b24gRUJTIHZvbHVtZSBvciBhbiBpbnN0YW5jZSBzdG9yZSB2b2x1bWUuXG4gICAqIFlvdSBjYW4gdXNlIGJsb2NrIGRldmljZSBtYXBwaW5ncyB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgRUJTIHZvbHVtZXMgb3JcbiAgICogaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcyB0byBhdHRhY2ggdG8gYW4gaW5zdGFuY2Ugd2hlbiBpdCBpcyBsYXVuY2hlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYmxvY2stZGV2aWNlLW1hcHBpbmctY29uY2VwdHMuaHRtbFxuICAgKiBAc2VlIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9pbnN0YW5jZSNlYnMtZXBoZW1lcmFsLWFuZC1yb290LWJsb2NrLWRldmljZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBVc2VzIHRoZSBibG9jayBkZXZpY2UgbWFwcGluZyBvZiB0aGUgQU1JXG4gICAqL1xuICByZWFkb25seSBibG9ja0RldmljZXM/OiBCbG9ja0RldmljZVtdO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgcHJpdmF0ZSBJUCBhZGRyZXNzIHRvIGFzc29jaWF0ZSB3aXRoIGFuIGluc3RhbmNlLlxuICAgKlxuICAgKiBQcml2YXRlIElQIHNob3VsZCBiZSBhdmFpbGFibGUgd2l0aGluIHRoZSBWUEMgdGhhdCB0aGUgaW5zdGFuY2UgaXMgYnVpbGQgd2l0aGluLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGFzc29jaWF0aW9uXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlSXBBZGRyZXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm9wYWdhdGUgdGhlIEVDMiBpbnN0YW5jZSB0YWdzIHRvIHRoZSBFQlMgdm9sdW1lcy5cbiAgICpcbiAgICogRG8gbm90IHByb3BhZ2F0ZSB0YWdzIGlmIHlvdSBwbGFuIHRvIG1hbmFnZSBibG9jayBkZXZpY2UgdGFncyBvdXRzaWRlXG4gICAqIHRoZSBgYXdzX2luc3RhbmNlYCBjb25maWd1cmF0aW9uLCBzdWNoIGFzIHVzaW5nIGB0YWdzYCBpbiBhbiBgYXdzX2Vic192b2x1bWVgXG4gICAqIHJlc291cmNlIGF0dGFjaGVkIHZpYSBgYXdzX3ZvbHVtZV9hdHRhY2htZW50YC5cbiAgICpcbiAgICogRG9pbmcgc28gd2lsbCByZXN1bHQgaW4gcmVzb3VyY2UgY3ljbGluZyBhbmQgaW5jb25zaXN0ZW50IGJlaGF2aW9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwcm9wYWdhdGVUYWdzVG9Wb2x1bWVPbkNyZWF0aW9uPzogYm9vbGVhbjtcblxuICAvLyBUT0RPOiBJbXBsZW1lbnQgR3JpZCBJbml0XG4gIC8vIC8qKlxuICAvLyAgKiBBcHBseSB0aGUgZ2l2ZW4gQ2xvdWRGb3JtYXRpb24gSW5pdCBjb25maWd1cmF0aW9uIHRvIHRoZSBpbnN0YW5jZSBhdCBzdGFydHVwXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IC0gbm8gQ2xvdWRGb3JtYXRpb24gaW5pdFxuICAvLyAgKi9cbiAgLy8gcmVhZG9ubHkgaW5pdD86IENsb3VkRm9ybWF0aW9uSW5pdDtcbiAgLy9cbiAgLy8gLyoqXG4gIC8vICAqIFVzZSB0aGUgZ2l2ZW4gb3B0aW9ucyBmb3IgYXBwbHlpbmcgQ2xvdWRGb3JtYXRpb24gSW5pdFxuICAvLyAgKlxuICAvLyAgKiBEZXNjcmliZXMgdGhlIGNvbmZpZ3NldHMgdG8gdXNlIGFuZCB0aGUgdGltZW91dCB0byB3YWl0XG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBvcHRpb25zXG4gIC8vICAqL1xuICAvLyByZWFkb25seSBpbml0T3B0aW9ucz86IEFwcGx5Q2xvdWRGb3JtYXRpb25Jbml0T3B0aW9ucztcblxuICAvKipcbiAgICogV2hldGhlciBJTURTdjIgc2hvdWxkIGJlIHJlcXVpcmVkIG9uIHRoaXMgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVpcmVJbWRzdjI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIFwiRGV0YWlsZWQgTW9uaXRvcmluZ1wiIGlzIGVuYWJsZWQgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICogS2VlcCBpbiBtaW5kIHRoYXQgRGV0YWlsZWQgTW9uaXRvcmluZyByZXN1bHRzIGluIGV4dHJhIGNoYXJnZXNcbiAgICpcbiAgICogQHNlZSBodHRwOi8vYXdzLmFtYXpvbi5jb20vY2xvdWR3YXRjaC9wcmljaW5nL1xuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZXRhaWxlZE1vbml0b3Jpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBZGQgU1NNIHNlc3Npb24gcGVybWlzc2lvbnMgdG8gdGhlIGluc3RhbmNlIHJvbGVcbiAgICpcbiAgICogU2V0dGluZyB0aGlzIHRvIGB0cnVlYCBhZGRzIHRoZSBuZWNlc3NhcnkgcGVybWlzc2lvbnMgdG8gY29ubmVjdFxuICAgKiB0byB0aGUgaW5zdGFuY2UgdXNpbmcgU1NNIFNlc3Npb24gTWFuYWdlci4gWW91IGNhbiBkbyB0aGlzXG4gICAqIGZyb20gdGhlIEFXUyBDb25zb2xlLlxuICAgKlxuICAgKiBOT1RFOiBTZXR0aW5nIHRoaXMgZmxhZyB0byBgdHJ1ZWAgbWF5IG5vdCBiZSBlbm91Z2ggYnkgaXRzZWxmLlxuICAgKiBZb3UgbXVzdCBhbHNvIHVzZSBhbiBBTUkgdGhhdCBjb21lcyB3aXRoIHRoZSBTU00gQWdlbnQsIG9yIGluc3RhbGxcbiAgICogdGhlIFNTTSBBZ2VudCB5b3Vyc2VsZi4gU2VlXG4gICAqIFtXb3JraW5nIHdpdGggU1NNIEFnZW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3lzdGVtcy1tYW5hZ2VyL2xhdGVzdC91c2VyZ3VpZGUvc3NtLWFnZW50Lmh0bWwpXG4gICAqIGluIHRoZSBTU00gRGV2ZWxvcGVyIEd1aWRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3NtU2Vzc2lvblBlcm1pc3Npb25zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhc3NvY2lhdGUgYSBwdWJsaWMgSVAgYWRkcmVzcyB0byB0aGUgcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZSBhdHRhY2hlZCB0byB0aGlzIGluc3RhbmNlLlxuICAgKlxuICAgKiBZb3UgY2Fubm90IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSBhbmQgYGlwdjZBZGRyZXNzQ291bnRgIGF0IHRoZSBzYW1lIHRpbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcHVibGljIElQIGFkZHJlc3MgaXMgYXV0b21hdGljYWxseSBhc3NpZ25lZCBiYXNlZCBvbiBkZWZhdWx0IGJlaGF2aW9yXG4gICAqL1xuICByZWFkb25seSBhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5aW5nIHRoZSBDUFUgY3JlZGl0IHR5cGUgZm9yIGJ1cnN0YWJsZSBFQzIgaW5zdGFuY2UgdHlwZXMgKFQyLCBUMywgVDNhLCBldGMpLlxuICAgKiBUaGUgdW5saW1pdGVkIENQVSBjcmVkaXQgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFQzIGluc3RhbmNlcyB3aXRoIGEgZGVkaWNhdGVkIGhvc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVDIgaW5zdGFuY2VzIGFyZSBzdGFuZGFyZCwgd2hpbGUgVDMsIFQ0ZywgYW5kIFQzYSBpbnN0YW5jZXMgYXJlIHVubGltaXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNyZWRpdFNwZWNpZmljYXRpb24/OiBDcHVDcmVkaXRzO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5zdGFuY2UgaXMgb3B0aW1pemVkIGZvciBBbWF6b24gRUJTIEkvTy5cbiAgICpcbiAgICogVGhpcyBvcHRpbWl6YXRpb24gcHJvdmlkZXMgZGVkaWNhdGVkIHRocm91Z2hwdXQgdG8gQW1hem9uIEVCUyBhbmQgYW4gb3B0aW1pemVkIGNvbmZpZ3VyYXRpb24gc3RhY2sgdG8gcHJvdmlkZSBvcHRpbWFsIEFtYXpvbiBFQlMgSS9PIHBlcmZvcm1hbmNlLlxuICAgKiBUaGlzIG9wdGltaXphdGlvbiBpc24ndCBhdmFpbGFibGUgd2l0aCBhbGwgaW5zdGFuY2UgdHlwZXMuXG4gICAqIEFkZGl0aW9uYWwgdXNhZ2UgY2hhcmdlcyBhcHBseSB3aGVuIHVzaW5nIGFuIEVCUy1vcHRpbWl6ZWQgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlYnNPcHRpbWl6ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgaW5zdGFuY2Ugd2lsbCBub3QgYmUgYWJsZSB0byBiZSB0ZXJtaW5hdGVkIHVzaW5nIHRoZSBBbWF6b24gRUMyIGNvbnNvbGUsIENMSSwgb3IgQVBJLlxuICAgKlxuICAgKiBUbyBjaGFuZ2UgdGhpcyBhdHRyaWJ1dGUgYWZ0ZXIgbGF1bmNoLCB1c2UgW01vZGlmeUluc3RhbmNlQXR0cmlidXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeUluc3RhbmNlQXR0cmlidXRlLmh0bWwpLlxuICAgKiBBbHRlcm5hdGl2ZWx5LCBpZiB5b3Ugc2V0IEluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvciB0byB0ZXJtaW5hdGUsIHlvdSBjYW4gdGVybWluYXRlIHRoZSBpbnN0YW5jZVxuICAgKiBieSBydW5uaW5nIHRoZSBzaHV0ZG93biBjb21tYW5kIGZyb20gdGhlIGluc3RhbmNlLlxuICAgKlxuICAgKiBAc2VlIGh0dHA6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1pbnN0YW5jZS5odG1sI2Nmbi1lYzItaW5zdGFuY2UtZGlzYWJsZWFwaXRlcm1pbmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlQXBpVGVybWluYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBpbnN0YW5jZSBzdG9wcyBvciB0ZXJtaW5hdGVzIHdoZW4geW91IGluaXRpYXRlIHNodXRkb3duIGZyb20gdGhlIGluc3RhbmNlXG4gICAqICh1c2luZyB0aGUgb3BlcmF0aW5nIHN5c3RlbSBjb21tYW5kIGZvciBzeXN0ZW0gc2h1dGRvd24pLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS90ZXJtaW5hdGluZy1pbnN0YW5jZXMuaHRtbCNVc2luZ19DaGFuZ2luZ0luc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvclxuICAgKlxuICAgKiBAZGVmYXVsdCBJbnN0YW5jZUluaXRpYXRlZFNodXRkb3duQmVoYXZpb3IuU1RPUFxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yPzogSW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yO1xuXG4gIC8qKlxuICAgKiBUaGUgcGxhY2VtZW50IGdyb3VwIHRoYXQgeW91IHdhbnQgdG8gbGF1bmNoIHRoZSBpbnN0YW5jZSBpbnRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHBsYWNlbWVudCBncm91cCB3aWxsIGJlIHVzZWQgZm9yIHRoaXMgaW5zdGFuY2UuXG4gICAqL1xuICByZWFkb25seSBwbGFjZW1lbnRHcm91cD86IElQbGFjZW1lbnRHcm91cDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5zdGFuY2UgaXMgZW5hYmxlZCBmb3IgQVdTIE5pdHJvIEVuY2xhdmVzLlxuICAgKlxuICAgKiBOaXRybyBFbmNsYXZlcyByZXF1aXJlcyBhIE5pdHJvLWJhc2VkIHZpcnR1YWxpemVkIHBhcmVudCBpbnN0YW5jZSB3aXRoIHNwZWNpZmljIEludGVsL0FNRCB3aXRoIGF0IGxlYXN0IDQgdkNQVXNcbiAgICogb3IgR3Jhdml0b24gd2l0aCBhdCBsZWFzdCAyIHZDUFVzIGluc3RhbmNlIHR5cGVzIGFuZCBMaW51eC9XaW5kb3dzIGhvc3QgT1MsXG4gICAqIHdoaWxlIHRoZSBlbmNsYXZlIGl0c2VsZiBzdXBwb3J0cyBvbmx5IExpbnV4IE9TLlxuICAgKlxuICAgKiBZb3UgY2FuJ3Qgc2V0IGJvdGggYGVuY2xhdmVFbmFibGVkYCBhbmQgYGhpYmVybmF0aW9uRW5hYmxlZGAgdG8gdHJ1ZSBvbiB0aGUgc2FtZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZW5jbGF2ZXMvbGF0ZXN0L3VzZXIvbml0cm8tZW5jbGF2ZS5odG1sI25pdHJvLWVuY2xhdmUtcmVxc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmNsYXZlRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIGhpYmVybmF0aW9uLlxuICAgKlxuICAgKiBZb3UgY2FuJ3Qgc2V0IGJvdGggYGVuY2xhdmVFbmFibGVkYCBhbmQgYGhpYmVybmF0aW9uRW5hYmxlZGAgdG8gdHJ1ZSBvbiB0aGUgc2FtZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItaW5zdGFuY2UtaGliZXJuYXRpb25vcHRpb25zLmh0bWxcbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaGliZXJuYXRpb25FbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBJUHY2IGFkZHJlc3NlcyB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZS5cbiAgICpcbiAgICogQW1hem9uIEVDMiBjaG9vc2VzIHRoZSBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSByYW5nZSBvZiB5b3VyIHN1Ym5ldC5cbiAgICpcbiAgICogWW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgYW5kIGBhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3NgIGF0IHRoZSBzYW1lIHRpbWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRm9yIGluc3RhbmNlcyBhc3NvY2lhdGVkIHdpdGggYW4gSVB2NiBzdWJuZXQsIHVzZSAxOyBvdGhlcndpc2UsIHVzZSAwLlxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NkFkZHJlc3NDb3VudD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBUaGlzIHJlcHJlc2VudHMgYSBzaW5nbGUgRUMyIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2UgaW1wbGVtZW50cyBJSW5zdGFuY2Uge1xuICBwdWJsaWMgZ2V0IGluc3RhbmNlT3V0cHV0cygpOiBJbnN0YW5jZU91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBpbnN0YW5jZUlkOiB0aGlzLmluc3RhbmNlSWQsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaW5zdGFuY2VPdXRwdXRzO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIE9TIHRoZSBpbnN0YW5jZSBpcyBydW5uaW5nLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG9zVHlwZTogT3BlcmF0aW5nU3lzdGVtVHlwZTtcblxuICAvKipcbiAgICogQWxsb3dzIHNwZWNpZnkgc2VjdXJpdHkgZ3JvdXAgY29ubmVjdGlvbnMgZm9yIHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uczogQ29ubmVjdGlvbnM7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3N1bWVkIGJ5IHRoZSBpbnN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIFVzZXJEYXRhIGZvciB0aGUgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyRGF0YTogVXNlckRhdGE7XG5cbiAgLyoqXG4gICAqIHRoZSB1bmRlcmx5aW5nIGluc3RhbmNlIHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2U6IGluc3RhbmNlLkluc3RhbmNlO1xuXG4gIC8qKlxuICAgKiB0aGUgcHJpbWFyeSBuZXR3b3JrIGludGVmYWNlIChpZiBhcHBsaWNhYmxlKVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBwcmltYXJ5TmV0d29ya0ludGVyZmFjZT86IHRmTmV0d29ya0ludGVyZmFjZS5OZXR3b3JrSW50ZXJmYWNlO1xuXG4gIC8qKlxuICAgKiB0aGUgcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZSBpZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VBdmFpbGFiaWxpdHlab25lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQcml2YXRlRG5zTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlUHJpdmF0ZUlwOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQdWJsaWNEbnNOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VQdWJsaWNJcDogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogSVNlY3VyaXR5R3JvdXA7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM6IElTZWN1cml0eUdyb3VwW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW5zdGFuY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBpZiAocHJvcHMuaW5pdE9wdGlvbnMgJiYgIXByb3BzLmluaXQpIHtcbiAgICAvLyAgIHRocm93IG5ldyBFcnJvcihcIlNldHRpbmcgJ2luaXRPcHRpb25zJyByZXF1aXJlcyB0aGF0ICdpbml0JyBpcyBhbHNvIHNldFwiKTtcbiAgICAvLyB9XG5cbiAgICBpZiAocHJvcHMua2V5TmFtZSAmJiBwcm9wcy5rZXlQYWlyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQ2Fubm90IHNwZWNpZnkgYm90aCBvZiAna2V5TmFtZScgYW5kICdrZXlQYWlyJzsgcHJlZmVyICdrZXlQYWlyJ1wiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBpZiBjcmVkaXQgc3BlY2lmaWNhdGlvbiBpcyBzZXQsIHRoZW4gdGhlIGluc3RhbmNlIHR5cGUgbXVzdCBiZSBidXJzdGFibGVcbiAgICBpZiAocHJvcHMuY3JlZGl0U3BlY2lmaWNhdGlvbiAmJiAhcHJvcHMuaW5zdGFuY2VUeXBlLmlzQnVyc3RhYmxlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGNyZWRpdFNwZWNpZmljYXRpb24gaXMgc3VwcG9ydGVkIG9ubHkgZm9yIFQ0ZywgVDNhLCBUMywgVDIgaW5zdGFuY2UgdHlwZSwgZ290OiAke3Byb3BzLmluc3RhbmNlVHlwZS50b1N0cmluZygpfWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zZWN1cml0eUdyb3VwKSB7XG4gICAgICB0aGlzLnNlY3VyaXR5R3JvdXAgPSBwcm9wcy5zZWN1cml0eUdyb3VwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlY3VyaXR5R3JvdXAgPSBuZXcgU2VjdXJpdHlHcm91cCh0aGlzLCBcIkluc3RhbmNlU2VjdXJpdHlHcm91cFwiLCB7XG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBhbGxvd0FsbE91dGJvdW5kOiBwcm9wcy5hbGxvd0FsbE91dGJvdW5kICE9PSBmYWxzZSxcbiAgICAgICAgYWxsb3dBbGxJcHY2T3V0Ym91bmQ6IHByb3BzLmFsbG93QWxsSXB2Nk91dGJvdW5kLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgQ29ubmVjdGlvbnMoe1xuICAgICAgc2VjdXJpdHlHcm91cHM6IFt0aGlzLnNlY3VyaXR5R3JvdXBdLFxuICAgIH0pO1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cHMucHVzaCh0aGlzLnNlY3VyaXR5R3JvdXApO1xuICAgIFRhZ3Mub2YodGhpcykuYWRkKE5BTUVfVEFHLCBwcm9wcy5pbnN0YW5jZU5hbWUgfHwgdGhpcy5ub2RlLnBhdGgpO1xuXG4gICAgaWYgKHByb3BzLmluc3RhbmNlUHJvZmlsZSAmJiBwcm9wcy5yb2xlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJZb3UgY2Fubm90IHByb3ZpZGUgYm90aCBpbnN0YW5jZVByb2ZpbGUgYW5kIHJvbGVcIik7XG4gICAgfVxuXG4gICAgbGV0IGlhbUluc3RhbmNlUHJvZmlsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmIChwcm9wcy5pbnN0YW5jZVByb2ZpbGU/LnJvbGUpIHtcbiAgICAgIHRoaXMucm9sZSA9IHByb3BzLmluc3RhbmNlUHJvZmlsZS5yb2xlO1xuICAgICAgaWFtSW5zdGFuY2VQcm9maWxlID0gcHJvcHMuaW5zdGFuY2VQcm9maWxlLmluc3RhbmNlUHJvZmlsZU5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucm9sZSA9XG4gICAgICAgIHByb3BzLnJvbGUgfHxcbiAgICAgICAgbmV3IGlhbS5Sb2xlKHRoaXMsIFwiSW5zdGFuY2VSb2xlXCIsIHtcbiAgICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImVjMi5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgICB9KTtcblxuICAgICAgY29uc3QgaWFtUHJvZmlsZSA9IG5ldyB0Zkluc3RhbmNlUHJvZmlsZS5JYW1JbnN0YW5jZVByb2ZpbGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiSW5zdGFuY2VQcm9maWxlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICByb2xlOiB0aGlzLnJvbGUucm9sZU5hbWUsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgaWFtSW5zdGFuY2VQcm9maWxlID0gaWFtUHJvZmlsZS5pZDtcbiAgICB9XG5cbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5yb2xlO1xuXG4gICAgaWYgKHByb3BzLnNzbVNlc3Npb25QZXJtaXNzaW9ucykge1xuICAgICAgdGhpcy5yb2xlLmFkZE1hbmFnZWRQb2xpY3koXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIFwiQW1hem9uU1NNTWFuYWdlZEluc3RhbmNlQ29yZVwiLFxuICAgICAgICAgIFwiQW1hem9uU1NNTWFuYWdlZEluc3RhbmNlQ29yZVwiLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyB1c2UgZGVsYXllZCBldmFsdWF0aW9uXG4gICAgY29uc3QgaW1hZ2VDb25maWcgPSBwcm9wcy5tYWNoaW5lSW1hZ2UuZ2V0SW1hZ2UodGhpcyk7XG4gICAgdGhpcy51c2VyRGF0YSA9IHByb3BzLnVzZXJEYXRhID8/IGltYWdlQ29uZmlnLnVzZXJEYXRhO1xuICAgIGNvbnN0IHNlY3VyaXR5R3JvdXBzVG9rZW4gPSBMYXp5Lmxpc3RWYWx1ZSh7XG4gICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLnNlY3VyaXR5R3JvdXBzLm1hcCgoc2cpID0+IHNnLnNlY3VyaXR5R3JvdXBJZCksXG4gICAgfSk7XG5cbiAgICBjb25zdCB7IHN1Ym5ldHMsIGhhc1B1YmxpYyB9ID0gcHJvcHMudnBjLnNlbGVjdFN1Ym5ldHMocHJvcHMudnBjU3VibmV0cyk7XG4gICAgbGV0IHN1Ym5ldDtcbiAgICBpZiAocHJvcHMuYXZhaWxhYmlsaXR5Wm9uZSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzdWJuZXRzLmZpbHRlcihcbiAgICAgICAgKHNuKSA9PiBzbi5hdmFpbGFiaWxpdHlab25lID09PSBwcm9wcy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgKTtcbiAgICAgIGlmIChzZWxlY3RlZC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgc3VibmV0ID0gc2VsZWN0ZWRbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRFcnJvcihcbiAgICAgICAgICBgTmVlZCBleGFjdGx5IDEgc3VibmV0IHRvIG1hdGNoIEFaICcke3Byb3BzLmF2YWlsYWJpbGl0eVpvbmV9JywgZm91bmQgJHtzZWxlY3RlZC5sZW5ndGh9LiBVc2UgYSBkaWZmZXJlbnQgYXZhaWxhYmlsaXR5Wm9uZS5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc3VibmV0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHN1Ym5ldCA9IHN1Ym5ldHNbMF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRFcnJvcihcbiAgICAgICAgICBgRGlkIG5vdCBmaW5kIGFueSBzdWJuZXRzIG1hdGNoaW5nICcke0pTT04uc3RyaW5naWZ5KHByb3BzLnZwY1N1Ym5ldHMpfScsIHBsZWFzZSB1c2UgYSBkaWZmZXJlbnQgc2VsZWN0aW9uLmAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghc3VibmV0KSB7XG4gICAgICAvLyBXZSBnb3QgaGVyZSBhbmQgd2UgZG9uJ3QgaGF2ZSBhIHN1Ym5ldCBiZWNhdXNlIG9mIHZhbGlkYXRpb24gZXJyb3JzLlxuICAgICAgLy8gSW52ZW50IG9uZSBvbiB0aGUgc3BvdCBzbyB0aGUgY29kZSBiZWxvdyBkb2Vzbid0IGZhaWwuXG4gICAgICBzdWJuZXQgPSBTdWJuZXQuZnJvbVN1Ym5ldEF0dHJpYnV0ZXModGhpcywgXCJEdW1teVN1Ym5ldFwiLCB7XG4gICAgICAgIHN1Ym5ldElkOiBcInMtbm90Zm91bmRcIixcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogXCJhei1ub3Rmb3VuZFwiLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gbmV0d29yayBpbnRlcmZhY2VzIGFycmF5IGlzIHNldCB0byBjb25maWd1cmUgdGhlIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UgaWYgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzIGlzIHRydWUgb3IgZmFsc2VcbiAgICBsZXQgbmV0d29ya0ludGVyZmFjZXM6IGluc3RhbmNlLkluc3RhbmNlTmV0d29ya0ludGVyZmFjZVtdIHwgdW5kZWZpbmVkID1cbiAgICAgIHVuZGVmaW5lZDtcbiAgICBpZiAocHJvcHMuYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucHJpbWFyeU5ldHdvcmtJbnRlcmZhY2UgPSBuZXcgdGZOZXR3b3JrSW50ZXJmYWNlLk5ldHdvcmtJbnRlcmZhY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiTmV0d29ya0ludGVyZmFjZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgc3VibmV0SWQ6IHN1Ym5ldC5zdWJuZXRJZCxcbiAgICAgICAgICBzZWN1cml0eUdyb3Vwczogc2VjdXJpdHlHcm91cHNUb2tlbixcbiAgICAgICAgICBwcml2YXRlSXBzOiBwcm9wcy5wcml2YXRlSXBBZGRyZXNzXG4gICAgICAgICAgICA/IFtwcm9wcy5wcml2YXRlSXBBZGRyZXNzXVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgICAgLy8gVE9ETzogVXNlIG5ldHdvcmtJbnRlcmZhY2VBdHRhY2htZW50IGluc3RlYWQ/XG4gICAgICAvLyByZWY6IGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzL2xhdGVzdC9kb2NzL3Jlc291cmNlcy9pbnN0YW5jZSNuZXR3b3JrLWludGVyZmFjZXNcbiAgICAgIG5ldHdvcmtJbnRlcmZhY2VzID0gW1xuICAgICAgICB7XG4gICAgICAgICAgZGV2aWNlSW5kZXg6IDAsXG4gICAgICAgICAgbmV0d29ya0ludGVyZmFjZUlkOiB0aGlzLnByaW1hcnlOZXR3b3JrSW50ZXJmYWNlLmlkLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMua2V5UGFpciAmJiAhcHJvcHMua2V5UGFpci5faXNPc0NvbXBhdGlibGUoaW1hZ2VDb25maWcub3NUeXBlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgJHtwcm9wcy5rZXlQYWlyLnR5cGV9IGtleXMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIGNob3NlbiBBTUlgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuZW5jbGF2ZUVuYWJsZWQgJiYgcHJvcHMuaGliZXJuYXRpb25FbmFibGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiWW91IGNhbid0IHNldCBib3RoIGBlbmNsYXZlRW5hYmxlZGAgYW5kIGBoaWJlcm5hdGlvbkVuYWJsZWRgIHRvIHRydWUgb24gdGhlIHNhbWUgaW5zdGFuY2VcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuaXB2NkFkZHJlc3NDb3VudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmlwdjZBZGRyZXNzQ291bnQpICYmXG4gICAgICAocHJvcHMuaXB2NkFkZHJlc3NDb3VudCA8IDAgfHwgIU51bWJlci5pc0ludGVnZXIocHJvcHMuaXB2NkFkZHJlc3NDb3VudCkpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBcXCdpcHY2QWRkcmVzc0NvdW50XFwnIG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciwgZ290OiAke3Byb3BzLmlwdjZBZGRyZXNzQ291bnR9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuaXB2NkFkZHJlc3NDb3VudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICBwcm9wcy5hc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MgIT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIllvdSBjYW4ndCBzZXQgYm90aCAnaXB2NkFkZHJlc3NDb3VudCcgYW5kICdhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MnXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzL2xhdGVzdC9kb2NzL3Jlc291cmNlcy9pbnN0YW5jZSN0YWctZ3VpZGVcbiAgICBjb25zdCB2b2x1bWVUYWdzID0gcHJvcHMucHJvcGFnYXRlVGFnc1RvVm9sdW1lT25DcmVhdGlvblxuICAgICAgPyB7IFtOQU1FX1RBR106IHByb3BzLmluc3RhbmNlTmFtZSB8fCB0aGlzLm5vZGUucGF0aCB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIGlmIG5ldHdvcmsgaW50ZXJmYWNlcyBhcnJheSBpcyBjb25maWd1cmVkIHRoZW4gc3VibmV0SWQsIHNlY3VyaXR5R3JvdXBJZHMsXG4gICAgLy8gYW5kIHByaXZhdGVJcEFkZHJlc3MgYXJlIGNvbmZpZ3VyZWQgb24gdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGxldmVsIGFuZFxuICAgIC8vIHRoZXJlIGlzIG5vIG5lZWQgdG8gY29uZmlndXJlIHRoZW0gb24gdGhlIGluc3RhbmNlIGxldmVsXG4gICAgdGhpcy5pbnN0YW5jZSA9IG5ldyBpbnN0YW5jZS5JbnN0YW5jZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIGFtaTogaW1hZ2VDb25maWcuaW1hZ2VJZCxcbiAgICAgIGtleU5hbWU6IHByb3BzLmtleVBhaXI/LmtleVBhaXJOYW1lID8/IHByb3BzPy5rZXlOYW1lLFxuICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGUudG9TdHJpbmcoKSxcbiAgICAgIHN1Ym5ldElkOiBuZXR3b3JrSW50ZXJmYWNlcyA/IHVuZGVmaW5lZCA6IHN1Ym5ldC5zdWJuZXRJZCxcbiAgICAgIHZwY1NlY3VyaXR5R3JvdXBJZHM6IG5ldHdvcmtJbnRlcmZhY2VzID8gdW5kZWZpbmVkIDogc2VjdXJpdHlHcm91cHNUb2tlbixcbiAgICAgIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzczogcHJvcHMuYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzLFxuICAgICAgbmV0d29ya0ludGVyZmFjZTogbmV0d29ya0ludGVyZmFjZXMsXG4gICAgICBpYW1JbnN0YW5jZVByb2ZpbGUsXG4gICAgICB1c2VyRGF0YUJhc2U2NDogdGhpcy51c2VyRGF0YS5yZW5kZXIodGhpcyksXG4gICAgICAvLyB1bmxpa2UgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvaW5zdGFuY2UudHMjTDY1MlxuICAgICAgdXNlckRhdGFSZXBsYWNlT25DaGFuZ2U6IHByb3BzLnVzZXJEYXRhQ2F1c2VzUmVwbGFjZW1lbnQgPz8gdHJ1ZSxcbiAgICAgIGF2YWlsYWJpbGl0eVpvbmU6IHN1Ym5ldC5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgc291cmNlRGVzdENoZWNrOiBwcm9wcy5zb3VyY2VEZXN0Q2hlY2ssXG4gICAgICBlYnNCbG9ja0RldmljZTpcbiAgICAgICAgcHJvcHMuYmxvY2tEZXZpY2VzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IGluc3RhbmNlRWJzQmxvY2tEZXZpY2VNYXBwaW5ncyh0aGlzLCBwcm9wcy5ibG9ja0RldmljZXMpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICByb290QmxvY2tEZXZpY2U6XG4gICAgICAgIHByb3BzLmJsb2NrRGV2aWNlcyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBpbnN0YW5jZVJvb3RCbG9ja0RldmljZU1hcHBpbmcodGhpcywgcHJvcHMuYmxvY2tEZXZpY2VzKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZXBoZW1lcmFsQmxvY2tEZXZpY2U6XG4gICAgICAgIHByb3BzLmJsb2NrRGV2aWNlcyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBpbnN0YW5jZUVwaGVtZXJhbEJsb2NrRGV2aWNlTWFwcGluZ3MocHJvcHMuYmxvY2tEZXZpY2VzKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgcHJpdmF0ZUlwOiBuZXR3b3JrSW50ZXJmYWNlcyA/IHVuZGVmaW5lZCA6IHByb3BzLnByaXZhdGVJcEFkZHJlc3MsXG4gICAgICB2b2x1bWVUYWdzLFxuICAgICAgbW9uaXRvcmluZzogcHJvcHMuZGV0YWlsZWRNb25pdG9yaW5nLFxuICAgICAgY3JlZGl0U3BlY2lmaWNhdGlvbjogcHJvcHMuY3JlZGl0U3BlY2lmaWNhdGlvblxuICAgICAgICA/IHsgY3B1Q3JlZGl0czogcHJvcHMuY3JlZGl0U3BlY2lmaWNhdGlvbiB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZWJzT3B0aW1pemVkOiBwcm9wcy5lYnNPcHRpbWl6ZWQsXG4gICAgICBkaXNhYmxlQXBpVGVybWluYXRpb246IHByb3BzLmRpc2FibGVBcGlUZXJtaW5hdGlvbixcbiAgICAgIGluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcjpcbiAgICAgICAgcHJvcHMuaW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yLFxuICAgICAgcGxhY2VtZW50R3JvdXA6IHByb3BzLnBsYWNlbWVudEdyb3VwPy5wbGFjZW1lbnRHcm91cE5hbWUsXG4gICAgICBlbmNsYXZlT3B0aW9uczpcbiAgICAgICAgcHJvcHMuZW5jbGF2ZUVuYWJsZWQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8geyBlbmFibGVkOiBwcm9wcy5lbmNsYXZlRW5hYmxlZCB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBoaWJlcm5hdGlvbjogcHJvcHMuaGliZXJuYXRpb25FbmFibGVkLFxuICAgICAgaXB2NkFkZHJlc3NDb3VudDogcHJvcHMuaXB2NkFkZHJlc3NDb3VudCxcbiAgICB9KTtcbiAgICB0aGlzLmluc3RhbmNlLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzLnJvbGUpO1xuXG4gICAgLy8gaWYgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzIGlzIHRydWUsIHRoZW4gdGhlcmUgbXVzdCBiZSBhIGRlcGVuZGVuY3kgb24gaW50ZXJuZXQgY29ubmVjdGl2aXR5XG4gICAgaWYgKFxuICAgICAgcHJvcHMuYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHByb3BzLmFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzc1xuICAgICkge1xuICAgICAgY29uc3QgaW50ZXJuZXRDb25uZWN0ZWQgPSBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyhcbiAgICAgICAgcHJvcHMudnBjU3VibmV0cyxcbiAgICAgICkuaW50ZXJuZXRDb25uZWN0aXZpdHlFc3RhYmxpc2hlZDtcbiAgICAgIHRoaXMuaW5zdGFuY2Uubm9kZS5hZGREZXBlbmRlbmN5KGludGVybmV0Q29ubmVjdGVkKTtcbiAgICB9XG5cbiAgICBpZiAoIWhhc1B1YmxpYyAmJiBwcm9wcy5hc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJUbyBzZXQgJ2Fzc29jaWF0ZVB1YmxpY0lwQWRkcmVzczogdHJ1ZScgeW91IG11c3Qgc2VsZWN0IFB1YmxpYyBzdWJuZXRzICh2cGNTdWJuZXRzOiB7IHN1Ym5ldFR5cGU6IFN1Ym5ldFR5cGUuUFVCTElDIH0pXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMub3NUeXBlID0gaW1hZ2VDb25maWcub3NUeXBlO1xuICAgIHRoaXMubm9kZS5kZWZhdWx0Q2hpbGQgPSB0aGlzLmluc3RhbmNlO1xuXG4gICAgdGhpcy5pbnN0YW5jZUlkID0gdGhpcy5pbnN0YW5jZS5pZDtcbiAgICB0aGlzLmluc3RhbmNlQXZhaWxhYmlsaXR5Wm9uZSA9IHRoaXMuaW5zdGFuY2UuYXZhaWxhYmlsaXR5Wm9uZTtcbiAgICB0aGlzLmluc3RhbmNlUHJpdmF0ZURuc05hbWUgPSB0aGlzLmluc3RhbmNlLnByaXZhdGVEbnM7XG4gICAgdGhpcy5pbnN0YW5jZVByaXZhdGVJcCA9IHRoaXMuaW5zdGFuY2UucHJpdmF0ZUlwO1xuICAgIHRoaXMuaW5zdGFuY2VQdWJsaWNEbnNOYW1lID0gdGhpcy5pbnN0YW5jZS5wdWJsaWNEbnM7XG4gICAgdGhpcy5pbnN0YW5jZVB1YmxpY0lwID0gdGhpcy5pbnN0YW5jZS5wdWJsaWNJcDtcbiAgICB0aGlzLnByaW1hcnlOZXR3b3JrSW50ZXJmYWNlSWQgPSB0aGlzLnByaW1hcnlOZXR3b3JrSW50ZXJmYWNlXG4gICAgICA/IHRoaXMucHJpbWFyeU5ldHdvcmtJbnRlcmZhY2UuaWRcbiAgICAgIDogdGhpcy5pbnN0YW5jZS5wcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkO1xuXG4gICAgLy8gVE9ETzogQWRkIHN1cHBvcnQgZm9yIENmbiBTaWduYWxzXG4gICAgLy8gLy8gaWYgYm90aCB0aGUgcmVzb3VyY2VTaWduYWxUaW1lb3V0IGFuZCBpbml0T3B0aW9ucy50aW1lb3V0IGFyZSBzZXQsXG4gICAgLy8gLy8gdGhlIHRpbWVvdXQgaXMgc3VtbWVkIHRvZ2V0aGVyLiBUaGlzIGxvZ2ljIGlzIGRvbmUgaW4gYXBwbHlDbG91ZEZvcm1hdGlvbkluaXQuXG4gICAgLy8gLy8gVGhpcyBpcyBiZWNhdXNlIGFwcGx5VXBkYXRlUG9saWNpZXMgb3ZlcndyaXRlcyB0aGUgdGltZW91dCB3aGVuIGJvdGggdGltZW91dCBmaWVsZHMgYXJlIHNwZWNpZmllZC5cbiAgICAvLyB0aGlzLmFwcGx5VXBkYXRlUG9saWNpZXMocHJvcHMpO1xuXG4gICAgLy8gaWYgKHByb3BzLmluaXQpIHtcbiAgICAvLyAgIHRoaXMuYXBwbHlDbG91ZEZvcm1hdGlvbkluaXQocHJvcHMuaW5pdCwgcHJvcHMuaW5pdE9wdGlvbnMpO1xuICAgIC8vIH1cblxuICAgIGlmIChwcm9wcy5yZXF1aXJlSW1kc3YyKSB7XG4gICAgICBBc3BlY3RzLm9mKHRoaXMpLmFkZChuZXcgSW5zdGFuY2VSZXF1aXJlSW1kc3YyQXNwZWN0KCkpO1xuICAgICAgLy8gLCB7XG4gICAgICAvLyAgIHByaW9yaXR5OiBBc3BlY3RQcmlvcml0eS5NVVRBVElORyxcbiAgICAgIC8vIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgdGhlIHNlY3VyaXR5IGdyb3VwIHRvIHRoZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIHNlY3VyaXR5R3JvdXA6IFRoZSBzZWN1cml0eSBncm91cCB0byBhZGRcbiAgICovXG4gIHB1YmxpYyBhZGRTZWN1cml0eUdyb3VwKHNlY3VyaXR5R3JvdXA6IElTZWN1cml0eUdyb3VwKTogdm9pZCB7XG4gICAgdGhpcy5zZWN1cml0eUdyb3Vwcy5wdXNoKHNlY3VyaXR5R3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBjb21tYW5kIHRvIHRoZSBzdGFydHVwIHNjcmlwdCBvZiB0aGUgaW5zdGFuY2UuXG4gICAqIFRoZSBjb21tYW5kIG11c3QgYmUgaW4gdGhlIHNjcmlwdGluZyBsYW5ndWFnZSBzdXBwb3J0ZWQgYnkgdGhlIGluc3RhbmNlJ3MgT1MgKGkuZS4gTGludXgvV2luZG93cykuXG4gICAqL1xuICBwdWJsaWMgYWRkVXNlckRhdGEoLi4uY29tbWFuZHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy51c2VyRGF0YS5hZGRDb21tYW5kcyguLi5jb21tYW5kcyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHN0YXRlbWVudCB0byB0aGUgSUFNIHJvbGUgYXNzdW1lZCBieSB0aGUgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCkge1xuICAgIHRoaXMucm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQpO1xuICB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIFVzZSBhIENsb3VkRm9ybWF0aW9uIEluaXQgY29uZmlndXJhdGlvbiBhdCBpbnN0YW5jZSBzdGFydHVwXG4gIC8vICAqXG4gIC8vICAqIFRoaXMgZG9lcyB0aGUgZm9sbG93aW5nOlxuICAvLyAgKlxuICAvLyAgKiAtIEF0dGFjaGVzIHRoZSBDbG91ZEZvcm1hdGlvbiBJbml0IG1ldGFkYXRhIHRvIHRoZSBJbnN0YW5jZSByZXNvdXJjZS5cbiAgLy8gICogLSBBZGQgY29tbWFuZHMgdG8gdGhlIGluc3RhbmNlIFVzZXJEYXRhIHRvIHJ1biBgY2ZuLWluaXRgIGFuZCBgY2ZuLXNpZ25hbGAuXG4gIC8vICAqIC0gVXBkYXRlIHRoZSBpbnN0YW5jZSdzIENyZWF0aW9uUG9saWN5IHRvIHdhaXQgZm9yIHRoZSBgY2ZuLXNpZ25hbGAgY29tbWFuZHMuXG4gIC8vICAqL1xuICAvLyBwdWJsaWMgYXBwbHlDbG91ZEZvcm1hdGlvbkluaXQoXG4gIC8vICAgaW5pdDogQ2xvdWRGb3JtYXRpb25Jbml0LFxuICAvLyAgIG9wdGlvbnM6IEFwcGx5Q2xvdWRGb3JtYXRpb25Jbml0T3B0aW9ucyA9IHt9LFxuICAvLyApIHtcbiAgLy8gICBpbml0LmF0dGFjaCh0aGlzLmluc3RhbmNlLCB7XG4gIC8vICAgICBwbGF0Zm9ybTogdGhpcy5vc1R5cGUsXG4gIC8vICAgICBpbnN0YW5jZVJvbGU6IHRoaXMucm9sZSxcbiAgLy8gICAgIHVzZXJEYXRhOiB0aGlzLnVzZXJEYXRhLFxuICAvLyAgICAgY29uZmlnU2V0czogb3B0aW9ucy5jb25maWdTZXRzLFxuICAvLyAgICAgZW1iZWRGaW5nZXJwcmludDogb3B0aW9ucy5lbWJlZEZpbmdlcnByaW50LFxuICAvLyAgICAgcHJpbnRMb2c6IG9wdGlvbnMucHJpbnRMb2csXG4gIC8vICAgICBpZ25vcmVGYWlsdXJlczogb3B0aW9ucy5pZ25vcmVGYWlsdXJlcyxcbiAgLy8gICAgIGluY2x1ZGVSb2xlOiBvcHRpb25zLmluY2x1ZGVSb2xlLFxuICAvLyAgICAgaW5jbHVkZVVybDogb3B0aW9ucy5pbmNsdWRlVXJsLFxuICAvLyAgIH0pO1xuICAvLyAgIHRoaXMud2FpdEZvclJlc291cmNlU2lnbmFsKG9wdGlvbnMudGltZW91dCA/PyBEdXJhdGlvbi5taW51dGVzKDUpKTtcbiAgLy8gfVxuXG4gIC8vIC8qKlxuICAvLyAgKiBXYWl0IGZvciBhIHNpbmdsZSBhZGRpdGlvbmFsIHJlc291cmNlIHNpZ25hbFxuICAvLyAgKlxuICAvLyAgKiBBZGQgMSB0byB0aGUgY3VycmVudCBSZXNvdXJjZVNpZ25hbCBDb3VudCBhbmQgYWRkIHRoZSBnaXZlbiB0aW1lb3V0IHRvIHRoZSBjdXJyZW50IHRpbWVvdXQuXG4gIC8vICAqXG4gIC8vICAqIFVzZSB0aGlzIHRvIHBhdXNlIHRoZSBDbG91ZEZvcm1hdGlvbiBkZXBsb3ltZW50IHRvIHdhaXQgZm9yIHRoZSBpbnN0YW5jZXNcbiAgLy8gICogaW4gdGhlIEF1dG9TY2FsaW5nR3JvdXAgdG8gcmVwb3J0IHN1Y2Nlc3NmdWwgc3RhcnR1cCBkdXJpbmdcbiAgLy8gICogY3JlYXRpb24gYW5kIHVwZGF0ZXMuIFRoZSBVc2VyRGF0YSBzY3JpcHQgbmVlZHMgdG8gaW52b2tlIGBjZm4tc2lnbmFsYFxuICAvLyAgKiB3aXRoIGEgc3VjY2VzcyBvciBmYWlsdXJlIGNvZGUgYWZ0ZXIgaXQgaXMgZG9uZSBzZXR0aW5nIHVwIHRoZSBpbnN0YW5jZS5cbiAgLy8gICovXG4gIC8vIHByaXZhdGUgd2FpdEZvclJlc291cmNlU2lnbmFsKHRpbWVvdXQ6IER1cmF0aW9uKSB7XG4gIC8vICAgY29uc3Qgb2xkUmVzb3VyY2VTaWduYWwgPVxuICAvLyAgICAgdGhpcy5pbnN0YW5jZS5jZm5PcHRpb25zLmNyZWF0aW9uUG9saWN5Py5yZXNvdXJjZVNpZ25hbDtcbiAgLy8gICB0aGlzLmluc3RhbmNlLmNmbk9wdGlvbnMuY3JlYXRpb25Qb2xpY3kgPSB7XG4gIC8vICAgICAuLi50aGlzLmluc3RhbmNlLmNmbk9wdGlvbnMuY3JlYXRpb25Qb2xpY3ksXG4gIC8vICAgICByZXNvdXJjZVNpZ25hbDoge1xuICAvLyAgICAgICBjb3VudDogKG9sZFJlc291cmNlU2lnbmFsPy5jb3VudCA/PyAwKSArIDEsXG4gIC8vICAgICAgIHRpbWVvdXQ6IChvbGRSZXNvdXJjZVNpZ25hbD8udGltZW91dFxuICAvLyAgICAgICAgID8gRHVyYXRpb24ucGFyc2Uob2xkUmVzb3VyY2VTaWduYWw/LnRpbWVvdXQpLnBsdXModGltZW91dClcbiAgLy8gICAgICAgICA6IHRpbWVvdXRcbiAgLy8gICAgICAgKS50b0lzb1N0cmluZygpLFxuICAvLyAgICAgfSxcbiAgLy8gICB9O1xuICAvLyB9XG5cbiAgLy8gLyoqXG4gIC8vICAqIEFwcGx5IENsb3VkRm9ybWF0aW9uIHVwZGF0ZSBwb2xpY2llcyBmb3IgdGhlIGluc3RhbmNlXG4gIC8vICAqL1xuICAvLyBwcml2YXRlIGFwcGx5VXBkYXRlUG9saWNpZXMocHJvcHM6IEluc3RhbmNlUHJvcHMpIHtcbiAgLy8gICBpZiAocHJvcHMucmVzb3VyY2VTaWduYWxUaW1lb3V0ICE9PSB1bmRlZmluZWQpIHtcbiAgLy8gICAgIHRoaXMuaW5zdGFuY2UuY2ZuT3B0aW9ucy5jcmVhdGlvblBvbGljeSA9IHtcbiAgLy8gICAgICAgLi4udGhpcy5pbnN0YW5jZS5jZm5PcHRpb25zLmNyZWF0aW9uUG9saWN5LFxuICAvLyAgICAgICByZXNvdXJjZVNpZ25hbDoge1xuICAvLyAgICAgICAgIC4uLnRoaXMuaW5zdGFuY2UuY2ZuT3B0aW9ucy5jcmVhdGlvblBvbGljeT8ucmVzb3VyY2VTaWduYWwsXG4gIC8vICAgICAgICAgdGltZW91dDpcbiAgLy8gICAgICAgICAgIHByb3BzLnJlc291cmNlU2lnbmFsVGltZW91dCAmJlxuICAvLyAgICAgICAgICAgcHJvcHMucmVzb3VyY2VTaWduYWxUaW1lb3V0LnRvSXNvU3RyaW5nKCksXG4gIC8vICAgICAgIH0sXG4gIC8vICAgICB9O1xuICAvLyAgIH1cbiAgLy8gfVxufVxuXG4vLyAvKipcbi8vICAqIE9wdGlvbnMgZm9yIGFwcGx5aW5nIENsb3VkRm9ybWF0aW9uIGluaXQgdG8gYW4gaW5zdGFuY2Ugb3IgaW5zdGFuY2UgZ3JvdXBcbi8vICAqL1xuLy8gZXhwb3J0IGludGVyZmFjZSBBcHBseUNsb3VkRm9ybWF0aW9uSW5pdE9wdGlvbnMge1xuLy8gICAvKipcbi8vICAgICogQ29uZmlnU2V0IHRvIGFjdGl2YXRlXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IFsnZGVmYXVsdCddXG4vLyAgICAqL1xuLy8gICByZWFkb25seSBjb25maWdTZXRzPzogc3RyaW5nW107XG5cbi8vICAgLyoqXG4vLyAgICAqIFRpbWVvdXQgd2FpdGluZyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gdG8gYmUgYXBwbGllZFxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDUpXG4vLyAgICAqL1xuLy8gICByZWFkb25seSB0aW1lb3V0PzogRHVyYXRpb247XG5cbi8vICAgLyoqXG4vLyAgICAqIEZvcmNlIGluc3RhbmNlIHJlcGxhY2VtZW50IGJ5IGVtYmVkZGluZyBhIGNvbmZpZyBmaW5nZXJwcmludFxuLy8gICAgKlxuLy8gICAgKiBJZiBgdHJ1ZWAgKHRoZSBkZWZhdWx0KSwgYSBoYXNoIG9mIHRoZSBjb25maWcgd2lsbCBiZSBlbWJlZGRlZCBpbnRvIHRoZVxuLy8gICAgKiBVc2VyRGF0YSwgc28gdGhhdCBpZiB0aGUgY29uZmlnIGNoYW5nZXMsIHRoZSBVc2VyRGF0YSBjaGFuZ2VzLlxuLy8gICAgKlxuLy8gICAgKiAtIElmIHRoZSBFQzIgaW5zdGFuY2UgaXMgaW5zdGFuY2Utc3RvcmUgYmFja2VkIG9yXG4vLyAgICAqICAgYHVzZXJEYXRhQ2F1c2VzUmVwbGFjZW1lbnRgIGlzIHNldCwgdGhpcyB3aWxsIGNhdXNlIHRoZSBpbnN0YW5jZSB0byBiZVxuLy8gICAgKiAgIHJlcGxhY2VkIGFuZCB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gdG8gYmUgYXBwbGllZC5cbi8vICAgICogLSBJZiB0aGUgaW5zdGFuY2UgaXMgRUJTLWJhY2tlZCBhbmQgYHVzZXJEYXRhQ2F1c2VzUmVwbGFjZW1lbnRgIGlzIG5vdFxuLy8gICAgKiAgIHNldCwgdGhlIGNoYW5nZSBvZiBVc2VyRGF0YSB3aWxsIG1ha2UgdGhlIGluc3RhbmNlIHJlc3RhcnQgYnV0IG5vdCBiZVxuLy8gICAgKiAgIHJlcGxhY2VkLCBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCBub3QgYmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5LlxuLy8gICAgKlxuLy8gICAgKiBJZiBgZmFsc2VgLCBubyBoYXNoIHdpbGwgYmUgZW1iZWRkZWQsIGFuZCBpZiB0aGUgQ2xvdWRGb3JtYXRpb24gSW5pdFxuLy8gICAgKiBjb25maWcgY2hhbmdlcyBub3RoaW5nIHdpbGwgaGFwcGVuIHRvIHRoZSBydW5uaW5nIGluc3RhbmNlLiBJZiBhXG4vLyAgICAqIGNvbmZpZyB1cGRhdGUgaW50cm9kdWNlcyBlcnJvcnMsIHlvdSB3aWxsIG5vdCBub3RpY2UgdW50aWwgYWZ0ZXIgdGhlXG4vLyAgICAqIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQgc3VjY2Vzc2Z1bGx5IGZpbmlzaGVzIGFuZCB0aGUgbmV4dCBpbnN0YW5jZVxuLy8gICAgKiBmYWlscyB0byBsYXVuY2guXG4vLyAgICAqXG4vLyAgICAqIEBkZWZhdWx0IHRydWVcbi8vICAgICovXG4vLyAgIHJlYWRvbmx5IGVtYmVkRmluZ2VycHJpbnQ/OiBib29sZWFuO1xuXG4vLyAgIC8qKlxuLy8gICAgKiBQcmludCB0aGUgcmVzdWx0cyBvZiBydW5uaW5nIGNmbi1pbml0IHRvIHRoZSBJbnN0YW5jZSBTeXN0ZW0gTG9nXG4vLyAgICAqXG4vLyAgICAqIEJ5IGRlZmF1bHQsIHRoZSBvdXRwdXQgb2YgcnVubmluZyBjZm4taW5pdCBpcyB3cml0dGVuIHRvIGEgbG9nIGZpbGVcbi8vICAgICogb24gdGhlIGluc3RhbmNlLiBTZXQgdGhpcyB0byBgdHJ1ZWAgdG8gcHJpbnQgaXQgdG8gdGhlIFN5c3RlbSBMb2dcbi8vICAgICogKHZpc2libGUgZnJvbSB0aGUgRUMyIENvbnNvbGUpLCBgZmFsc2VgIHRvIG5vdCBwcmludCBpdC5cbi8vICAgICpcbi8vICAgICogKEJlIGF3YXJlIHRoYXQgdGhlIHN5c3RlbSBsb2cgaXMgcmVmcmVzaGVkIGF0IGNlcnRhaW4gcG9pbnRzIGluXG4vLyAgICAqIHRpbWUgb2YgdGhlIGluc3RhbmNlIGxpZmUgY3ljbGUsIGFuZCBzdWNjZXNzZnVsIGV4ZWN1dGlvbiBtYXlcbi8vICAgICogbm90IGFsd2F5cyBzaG93IHVwKS5cbi8vICAgICpcbi8vICAgICogQGRlZmF1bHQgdHJ1ZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgcHJpbnRMb2c/OiBib29sZWFuO1xuXG4vLyAgIC8qKlxuLy8gICAgKiBEb24ndCBmYWlsIHRoZSBpbnN0YW5jZSBjcmVhdGlvbiB3aGVuIGNmbi1pbml0IGZhaWxzXG4vLyAgICAqXG4vLyAgICAqIFlvdSBjYW4gdXNlIHRoaXMgdG8gcHJldmVudCBDbG91ZEZvcm1hdGlvbiBmcm9tIHJvbGxpbmcgYmFjayB3aGVuXG4vLyAgICAqIGluc3RhbmNlcyBmYWlsIHRvIHN0YXJ0IHVwLCB0byBoZWxwIGluIGRlYnVnZ2luZy5cbi8vICAgICpcbi8vICAgICogQGRlZmF1bHQgZmFsc2Vcbi8vICAgICovXG4vLyAgIHJlYWRvbmx5IGlnbm9yZUZhaWx1cmVzPzogYm9vbGVhbjtcblxuLy8gICAvKipcbi8vICAgICogSW5jbHVkZSAtLXVybCBhcmd1bWVudCB3aGVuIHJ1bm5pbmcgY2ZuLWluaXQgYW5kIGNmbi1zaWduYWwgY29tbWFuZHNcbi8vICAgICpcbi8vICAgICogVGhpcyB3aWxsIGJlIHRoZSBjbG91ZGZvcm1hdGlvbiBlbmRwb2ludCBpbiB0aGUgZGVwbG95ZWQgcmVnaW9uXG4vLyAgICAqIGUuZy4gaHR0cHM6Ly9jbG91ZGZvcm1hdGlvbi51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVxuLy8gICAgKlxuLy8gICAgKiBAZGVmYXVsdCBmYWxzZVxuLy8gICAgKi9cbi8vICAgcmVhZG9ubHkgaW5jbHVkZVVybD86IGJvb2xlYW47XG5cbi8vICAgLyoqXG4vLyAgICAqIEluY2x1ZGUgLS1yb2xlIGFyZ3VtZW50IHdoZW4gcnVubmluZyBjZm4taW5pdCBhbmQgY2ZuLXNpZ25hbCBjb21tYW5kc1xuLy8gICAgKlxuLy8gICAgKiBUaGlzIHdpbGwgYmUgdGhlIElBTSBpbnN0YW5jZSBwcm9maWxlIGF0dGFjaGVkIHRvIHRoZSBFQzIgaW5zdGFuY2Vcbi8vICAgICpcbi8vICAgICogQGRlZmF1bHQgZmFsc2Vcbi8vICAgICovXG4vLyAgIHJlYWRvbmx5IGluY2x1ZGVSb2xlPzogYm9vbGVhbjtcbi8vIH1cbiJdfQ==
|
|
@@ -41,7 +41,7 @@ class IpAddresses {
|
|
|
41
41
|
}
|
|
42
42
|
exports.IpAddresses = IpAddresses;
|
|
43
43
|
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
-
IpAddresses[_a] = { fqn: "terraconstructs.aws.compute.IpAddresses", version: "0.0.
|
|
44
|
+
IpAddresses[_a] = { fqn: "terraconstructs.aws.compute.IpAddresses", version: "0.0.16" };
|
|
45
45
|
/**
|
|
46
46
|
* Implements integration with Amazon VPC IP Address Manager (IPAM).
|
|
47
47
|
*
|
|
@@ -180,7 +180,7 @@ class Ipv6Addresses {
|
|
|
180
180
|
}
|
|
181
181
|
exports.Ipv6Addresses = Ipv6Addresses;
|
|
182
182
|
_b = JSII_RTTI_SYMBOL_1;
|
|
183
|
-
Ipv6Addresses[_b] = { fqn: "terraconstructs.aws.compute.Ipv6Addresses", version: "0.0.
|
|
183
|
+
Ipv6Addresses[_b] = { fqn: "terraconstructs.aws.compute.Ipv6Addresses", version: "0.0.16" };
|
|
184
184
|
/**
|
|
185
185
|
* Implements integration with Amazon provided IPv6 CIDRs.
|
|
186
186
|
*
|
package/lib/aws/compute/ipam.js
CHANGED
|
@@ -279,7 +279,7 @@ class Ipam extends aws_construct_1.AwsConstructBase {
|
|
|
279
279
|
}
|
|
280
280
|
exports.Ipam = Ipam;
|
|
281
281
|
_a = JSII_RTTI_SYMBOL_1;
|
|
282
|
-
Ipam[_a] = { fqn: "terraconstructs.aws.compute.alpha.Ipam", version: "0.0.
|
|
282
|
+
Ipam[_a] = { fqn: "terraconstructs.aws.compute.alpha.Ipam", version: "0.0.16" };
|
|
283
283
|
/**
|
|
284
284
|
* Function to create IpamPool under scope
|
|
285
285
|
* @internal
|