@horietakehiro/aws-cdk-utul 0.41.19 → 0.41.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/types/cfn-resource-types/aws-applicationautoscaling-scalingpolicy.d.ts +30 -27
  2. package/lib/types/cfn-resource-types/aws-applicationautoscaling-scalingpolicy.js +1 -1
  3. package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicy.d.ts +135 -0
  4. package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicy.js +3 -0
  5. package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicyversion.d.ts +61 -0
  6. package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicyversion.js +3 -0
  7. package/lib/types/cfn-resource-types/aws-budgets-budget.d.ts +24 -23
  8. package/lib/types/cfn-resource-types/aws-budgets-budget.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-connect-predefinedattribute.d.ts +28 -4
  10. package/lib/types/cfn-resource-types/aws-connect-predefinedattribute.js +1 -1
  11. package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.d.ts +1 -1
  12. package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.js +1 -1
  13. package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessoptions.d.ts +4 -0
  14. package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessoptions.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-ecs-cluster.d.ts +20 -2
  16. package/lib/types/cfn-resource-types/aws-ecs-cluster.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +5 -0
  18. package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
  19. package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.d.ts +1 -1
  20. package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.js +1 -1
  21. package/lib/types/cfn-resource-types/aws-glue-crawler.d.ts +10 -0
  22. package/lib/types/cfn-resource-types/aws-glue-crawler.js +1 -1
  23. package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.d.ts +51 -0
  24. package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.js +1 -1
  25. package/lib/types/cfn-resource-types/aws-omics-workflow.d.ts +37 -0
  26. package/lib/types/cfn-resource-types/aws-omics-workflow.js +1 -1
  27. package/lib/types/cfn-resource-types/aws-rds-customdbengineversion.d.ts +2 -2
  28. package/lib/types/cfn-resource-types/aws-rds-customdbengineversion.js +1 -1
  29. package/lib/types/cfn-resource-types/aws-s3-bucketpolicy.d.ts +1 -1
  30. package/lib/types/cfn-resource-types/aws-s3-bucketpolicy.js +1 -1
  31. package/lib/types/cfn-resource-types/aws-sagemaker-endpointconfig.d.ts +5 -0
  32. package/lib/types/cfn-resource-types/aws-sagemaker-endpointconfig.js +1 -1
  33. package/lib/types/cfn-resource-types/aws-sagemaker-processingjob.d.ts +4 -4
  34. package/lib/types/cfn-resource-types/aws-sagemaker-processingjob.js +1 -1
  35. package/lib/types/cfn-resource-types/aws-servicecatalog-tagoption.d.ts +13 -1
  36. package/lib/types/cfn-resource-types/aws-servicecatalog-tagoption.js +1 -1
  37. package/lib/types/cfn-resource-types/aws-synthetics-canary.d.ts +30 -0
  38. package/lib/types/cfn-resource-types/aws-synthetics-canary.js +1 -1
  39. package/lib/types/cfn-resource-types.d.ts +4 -0
  40. package/lib/types/cfn-resource-types.js +31 -27
  41. package/package.json +1 -1
@@ -6,8 +6,9 @@ export interface _AWS_APPLICATIONAUTOSCALING_SCALINGPOLICY {
6
6
  /**
7
7
  * The scaling policy type.
8
8
  * The following policy types are supported:
9
- * ``TargetTrackingScaling``—Not supported for Amazon EMR
10
- * ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.
9
+ * ``TargetTrackingScaling``—Not supported for Amazon EMR
10
+ * ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.
11
+ * ``PredictiveScaling``—Only supported for Amazon ECS
11
12
  */
12
13
  PolicyType: string;
13
14
  /**
@@ -27,6 +28,7 @@ export interface _AWS_APPLICATIONAUTOSCALING_SCALINGPOLICY {
27
28
  * + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.
28
29
  * + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.
29
30
  * + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.
31
+ * + Amazon ElastiCache cache cluster - The resource type is ``cache-cluster`` and the unique identifier is the cache cluster name. Example: ``cache-cluster/mycluster``.
30
32
  * + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.
31
33
  * + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.
32
34
  * + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.
@@ -49,29 +51,30 @@ export interface _AWS_APPLICATIONAUTOSCALING_SCALINGPOLICY {
49
51
  ServiceNamespace?: string;
50
52
  /**
51
53
  * The scalable dimension. This string consists of the service namespace, resource type, and scaling property.
52
- * + ``ecs:service:DesiredCount`` - The task count of an ECS service.
53
- * + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.
54
- * + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.
55
- * + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.
56
- * + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.
57
- * + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.
58
- * + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.
59
- * + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.
60
- * + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
61
- * + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.
62
- * + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.
63
- * + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.
64
- * + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.
65
- * + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.
66
- * + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.
67
- * + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.
68
- * + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.
69
- * + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.
70
- * + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.
71
- * + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.
72
- * + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.
73
- * + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.
74
- * + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.
54
+ * + ``ecs:service:DesiredCount`` - The task count of an ECS service.
55
+ * + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.
56
+ * + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.
57
+ * + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.
58
+ * + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.
59
+ * + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.
60
+ * + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.
61
+ * + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.
62
+ * + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
63
+ * + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.
64
+ * + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.
65
+ * + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.
66
+ * + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.
67
+ * + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.
68
+ * + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.
69
+ * + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.
70
+ * + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.
71
+ * + ``elasticache:cache-cluster:Nodes`` - The number of nodes for an Amazon ElastiCache cache cluster.
72
+ * + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.
73
+ * + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.
74
+ * + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.
75
+ * + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.
76
+ * + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.
77
+ * + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.
75
78
  */
76
79
  ScalableDimension?: string;
77
80
  TargetTrackingScalingPolicyConfiguration?: TargetTrackingScalingPolicyConfiguration;
@@ -136,7 +139,7 @@ export interface CustomizedMetricSpecification {
136
139
  * The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.
137
140
  * You can call for a single metric or perform math expressions on multiple metrics. Any expressions used in a metric specification must eventually return a single time series.
138
141
  * For more information and examples, see [Create a target tracking scaling policy for Application Auto Scaling using metric math](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking-metric-math.html) in the *Application Auto Scaling User Guide*.
139
- * ``TargetTrackingMetricDataQuery`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type.
142
+ * ``TargetTrackingMetricDataQuery`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type.
140
143
  */
141
144
  export interface TargetTrackingMetricDataQuery {
142
145
  /**
@@ -231,7 +234,7 @@ export interface PredefinedMetricSpecification {
231
234
  /**
232
235
  * Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.
233
236
  * You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:
234
- * ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.
237
+ * ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.
235
238
  * Where:
236
239
  * + app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN
237
240
  * + targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZGVmaW5lcyBhIHNjYWxpbmcgcG9saWN5IHRoYXQgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzZXMgdG8gYWRqdXN0IHRoZSBjYXBhY2l0eSBvZiBhIHNjYWxhYmxlIHRhcmdldC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvYXBwbGljYXRpb24tYXV0by1zY2FsaW5nLXRhcmdldC10cmFja2luZy5odG1sKSBhbmQgW1N0ZXAgc2NhbGluZyBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBQTElDQVRJT05BVVRPU0NBTElOR19TQ0FMSU5HUE9MSUNZIHtcbi8qKlxuICogVGhlIHNjYWxpbmcgcG9saWN5IHR5cGUuXG4gKiAgVGhlIGZvbGxvd2luZyBwb2xpY3kgdHlwZXMgYXJlIHN1cHBvcnRlZDogXG4gKiAgIGBgVGFyZ2V0VHJhY2tpbmdTY2FsaW5nYGDigJROb3Qgc3VwcG9ydGVkIGZvciBBbWF6b24gRU1SXG4gKiAgIGBgU3RlcFNjYWxpbmdgYOKAlE5vdCBzdXBwb3J0ZWQgZm9yIER5bmFtb0RCLCBBbWF6b24gQ29tcHJlaGVuZCwgTGFtYmRhLCBBbWF6b24gS2V5c3BhY2VzLCBBbWF6b24gTVNLLCBBbWF6b24gRWxhc3RpQ2FjaGUsIG9yIE5lcHR1bmUuXG4gKi9cblBvbGljeVR5cGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzY2FsaW5nIHBvbGljeS4gVGhpcyBzdHJpbmcgY29uc2lzdHMgb2YgdGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyLlxuICogICArICBFQ1Mgc2VydmljZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgc2VydmljZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZSBhbmQgc2VydmljZSBuYW1lLiBFeGFtcGxlOiBgYHNlcnZpY2UvbXktY2x1c3Rlci9teS1zZXJ2aWNlYGAuXG4gKiAgICsgIFNwb3QgRmxlZXQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHNwb3QtZmxlZXQtcmVxdWVzdGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIFNwb3QgRmxlZXQgcmVxdWVzdCBJRC4gRXhhbXBsZTogYGBzcG90LWZsZWV0LXJlcXVlc3Qvc2ZyLTczZmJkMmNlLWFhMzAtNDk0Yy04Nzg4LTFjZWU0RVhBTVBMRWBgLlxuICogICArICBFTVIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5zdGFuY2Vncm91cGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgSUQgYW5kIGluc3RhbmNlIGdyb3VwIElELiBFeGFtcGxlOiBgYGluc3RhbmNlZ3JvdXAvai0yRUVaTllLVUExTlRWL2lnLTE3OTFZNEUxTDhZSTBgYC5cbiAqICAgKyAgQXBwU3RyZWFtIDIuMCBmbGVldCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgZmxlZXRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBmbGVldCBuYW1lLiBFeGFtcGxlOiBgYGZsZWV0L3NhbXBsZS1mbGVldGBgLlxuICogICArICBEeW5hbW9EQiB0YWJsZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgdGFibGVgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSB0YWJsZSBuYW1lLiBFeGFtcGxlOiBgYHRhYmxlL215LXRhYmxlYGAuXG4gKiAgICsgIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGluZGV4YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgaW5kZXggbmFtZS4gRXhhbXBsZTogYGB0YWJsZS9teS10YWJsZS9pbmRleC9teS10YWJsZS1pbmRleGBgLlxuICogICArICBBdXJvcmEgREIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgY2x1c3RlcmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZS4gRXhhbXBsZTogYGBjbHVzdGVyOm15LWRiLWNsdXN0ZXJgYC5cbiAqICAgKyAgU2FnZU1ha2VyIGVuZHBvaW50IHZhcmlhbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHZhcmlhbnRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSByZXNvdXJjZSBJRC4gRXhhbXBsZTogYGBlbmRwb2ludC9teS1lbmQtcG9pbnQvdmFyaWFudC9LTWVhbnNDbHVzdGVyaW5nYGAuXG4gKiAgICsgIEN1c3RvbSByZXNvdXJjZXMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIHJlc291cmNlIHR5cGUuIFRoaXMgcGFyYW1ldGVyIG11c3Qgc3BlY2lmeSB0aGUgYGBPdXRwdXRWYWx1ZWBgIGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIHN0YWNrIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMuIFRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyBkZWZpbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyLiBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiBvdXIgW0dpdEh1YiByZXBvc2l0b3J5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtYXV0by1zY2FsaW5nLWN1c3RvbS1yZXNvdXJjZSkuXG4gKiAgICsgIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyIGFyZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGVuZHBvaW50IEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmNvbXByZWhlbmQ6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBhbmQgdW5pcXVlIGlkZW50aWZpZXIgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgZW5kcG9pbnQgQVJOLiBFeGFtcGxlOiBgYGFybjphd3M6Y29tcHJlaGVuZDp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBmdW5jdGlvbmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGZ1bmN0aW9uIG5hbWUgd2l0aCBhIGZ1bmN0aW9uIHZlcnNpb24gb3IgYWxpYXMgbmFtZSBzdWZmaXggdGhhdCBpcyBub3QgYGAkTEFURVNUYGAuIEV4YW1wbGU6IGBgZnVuY3Rpb246bXktZnVuY3Rpb246cHJvZGBgIG9yIGBgZnVuY3Rpb246bXktZnVuY3Rpb246MWBgLlxuICogICArICBBbWF6b24gS2V5c3BhY2VzIHRhYmxlIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB0YWJsZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHRhYmxlIG5hbWUuIEV4YW1wbGU6IGBga2V5c3BhY2UvbXlrZXlzcGFjZS90YWJsZS9teXRhYmxlYGAuXG4gKiAgICsgIEFtYXpvbiBNU0sgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGFuZCB1bmlxdWUgaWRlbnRpZmllciBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBjbHVzdGVyIEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmthZmthOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2x1c3Rlci9kZW1vLWNsdXN0ZXItMS82MzU3ZTBiMi0wZTZhLTRiODYtYTBiNC03MGRmOTM0YzJlMzEtNWBgLlxuICogICArICBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHJlcGxpY2F0aW9uLWdyb3VwYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVwbGljYXRpb24gZ3JvdXAgbmFtZS4gRXhhbXBsZTogYGByZXBsaWNhdGlvbi1ncm91cC9teWNsdXN0ZXJgYC5cbiAqICAgKyAgTmVwdHVuZSBjbHVzdGVyIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBjbHVzdGVyYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgY2x1c3RlciBuYW1lLiBFeGFtcGxlOiBgYGNsdXN0ZXI6bXljbHVzdGVyYGAuXG4gKiAgICsgIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB2YXJpYW50YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVzb3VyY2UgSUQuIEV4YW1wbGU6IGBgZW5kcG9pbnQvbXktZW5kLXBvaW50L3ZhcmlhbnQvS01lYW5zQ2x1c3RlcmluZ2BgLlxuICogICArICBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5mZXJlbmNlLWNvbXBvbmVudGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHJlc291cmNlIElELiBFeGFtcGxlOiBgYGluZmVyZW5jZS1jb21wb25lbnQvbXktaW5mZXJlbmNlLWNvbXBvbmVudGBgLlxuICogICArICBQb29sIG9mIFdvcmtTcGFjZXMgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHdvcmtzcGFjZXNwb29sYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcG9vbCBJRC4gRXhhbXBsZTogYGB3b3Jrc3BhY2VzcG9vbC93c3Bvb2wtMTIzNDU2YGAuXG4gKi9cblJlc291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBJRCBvZiBhbiBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgc2NhbGFibGUgdGFyZ2V0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSUQsIHNlZSB0aGUgUmV0dXJuIFZhbHVlIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldGBgIHJlc291cmNlLlxuICogICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTY2FsaW5nVGFyZ2V0SWRgYCBwcm9wZXJ0eSwgb3IgdGhlIGBgUmVzb3VyY2VJZGBgLCBgYFNjYWxhYmxlRGltZW5zaW9uYGAsIGFuZCBgYFNlcnZpY2VOYW1lc3BhY2VgYCBwcm9wZXJ0aWVzLCBidXQgbm90IGJvdGguXG4gKi9cblNjYWxpbmdUYXJnZXRJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgc2NhbGluZyBwb2xpY3kuXG4gKiAgVXBkYXRlcyB0byB0aGUgbmFtZSBvZiBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBhcmUgbm90IHN1cHBvcnRlZCwgdW5sZXNzIHlvdSBhbHNvIHVwZGF0ZSB0aGUgbWV0cmljIHVzZWQgZm9yIHNjYWxpbmcuIFRvIGNoYW5nZSBvbmx5IGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5J3MgbmFtZSwgZmlyc3QgZGVsZXRlIHRoZSBwb2xpY3kgYnkgcmVtb3ZpbmcgdGhlIGV4aXN0aW5nIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZnJvbSB0aGUgdGVtcGxhdGUgYW5kIHVwZGF0aW5nIHRoZSBzdGFjay4gVGhlbiwgcmVjcmVhdGUgdGhlIHJlc291cmNlIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYW5kIGEgZGlmZmVyZW50IG5hbWUuXG4gKi9cblBvbGljeU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBBV1Mgc2VydmljZSB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZSwgb3IgYSBgYGN1c3RvbS1yZXNvdXJjZWBgLlxuICovXG5TZXJ2aWNlTmFtZXNwYWNlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24uIFRoaXMgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBzZXJ2aWNlIG5hbWVzcGFjZSwgcmVzb3VyY2UgdHlwZSwgYW5kIHNjYWxpbmcgcHJvcGVydHkuXG4gKiAgICsgICBgYGVjczpzZXJ2aWNlOkRlc2lyZWRDb3VudGBgIC0gVGhlIHRhc2sgY291bnQgb2YgYW4gRUNTIHNlcnZpY2UuXG4gKiAgICsgICBgYGVsYXN0aWNtYXByZWR1Y2U6aW5zdGFuY2Vncm91cDpJbnN0YW5jZUNvdW50YGAgLSBUaGUgaW5zdGFuY2UgY291bnQgb2YgYW4gRU1SIEluc3RhbmNlIEdyb3VwLlxuICogICArICAgYGBlYzI6c3BvdC1mbGVldC1yZXF1ZXN0OlRhcmdldENhcGFjaXR5YGAgLSBUaGUgdGFyZ2V0IGNhcGFjaXR5IG9mIGEgU3BvdCBGbGVldC5cbiAqICAgKyAgIGBgYXBwc3RyZWFtOmZsZWV0OkRlc2lyZWRDYXBhY2l0eWBgIC0gVGhlIGNhcGFjaXR5IG9mIGFuIEFwcFN0cmVhbSAyLjAgZmxlZXQuXG4gKiAgICsgICBgYGR5bmFtb2RiOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiB0YWJsZS5cbiAqICAgKyAgIGBgZHluYW1vZGI6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgICBgYGR5bmFtb2RiOmluZGV4OlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGBkeW5hbW9kYjppbmRleDpXcml0ZUNhcGFjaXR5VW5pdHNgYCAtIFRoZSBwcm92aXNpb25lZCB3cml0ZSBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGByZHM6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgQXVyb3JhIFJlcGxpY2FzIGluIGFuIEF1cm9yYSBEQiBjbHVzdGVyLiBBdmFpbGFibGUgZm9yIEF1cm9yYSBNeVNRTC1jb21wYXRpYmxlIGVkaXRpb24gYW5kIEF1cm9yYSBQb3N0Z3JlU1FMLWNvbXBhdGlibGUgZWRpdGlvbi5cbiAqICAgKyAgIGBgc2FnZW1ha2VyOnZhcmlhbnQ6RGVzaXJlZEluc3RhbmNlQ291bnRgYCAtIFRoZSBudW1iZXIgb2YgRUMyIGluc3RhbmNlcyBmb3IgYSBTYWdlTWFrZXIgbW9kZWwgZW5kcG9pbnQgdmFyaWFudC5cbiAqICAgKyAgIGBgY3VzdG9tLXJlc291cmNlOlJlc291cmNlVHlwZTpQcm9wZXJ0eWBgIC0gVGhlIHNjYWxhYmxlIGRpbWVuc2lvbiBmb3IgYSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZWQgYnkgeW91ciBvd24gYXBwbGljYXRpb24gb3Igc2VydmljZS5cbiAqICAgKyAgIGBgY29tcHJlaGVuZDpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50LlxuICogICArICAgYGBjb21wcmVoZW5kOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGVudGl0eSByZWNvZ25pemVyIGVuZHBvaW50LlxuICogICArICAgYGBsYW1iZGE6ZnVuY3Rpb246UHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIExhbWJkYSBmdW5jdGlvbi5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYW4gQW1hem9uIEtleXNwYWNlcyB0YWJsZS5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOldyaXRlQ2FwYWNpdHlVbml0c2BgIC0gVGhlIHByb3Zpc2lvbmVkIHdyaXRlIGNhcGFjaXR5IGZvciBhbiBBbWF6b24gS2V5c3BhY2VzIHRhYmxlLlxuICogICArICAgYGBrYWZrYTpicm9rZXItc3RvcmFnZTpWb2x1bWVTaXplYGAgLSBUaGUgcHJvdmlzaW9uZWQgdm9sdW1lIHNpemUgKGluIEdpQikgZm9yIGJyb2tlcnMgaW4gYW4gQW1hem9uIE1TSyBjbHVzdGVyLlxuICogICArICAgYGBlbGFzdGljYWNoZTpyZXBsaWNhdGlvbi1ncm91cDpOb2RlR3JvdXBzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGUgZ3JvdXBzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYGVsYXN0aWNhY2hlOnJlcGxpY2F0aW9uLWdyb3VwOlJlcGxpY2FzYGAgLSBUaGUgbnVtYmVyIG9mIHJlcGxpY2FzIHBlciBub2RlIGdyb3VwIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYG5lcHR1bmU6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgcmVhZCByZXBsaWNhcyBpbiBhbiBBbWF6b24gTmVwdHVuZSBEQiBjbHVzdGVyLlxuICogICArICAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkUHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50LlxuICogICArICAgYGBzYWdlbWFrZXI6aW5mZXJlbmNlLWNvbXBvbmVudDpEZXNpcmVkQ29weUNvdW50YGAgLSBUaGUgbnVtYmVyIG9mIGNvcGllcyBhY3Jvc3MgYW4gZW5kcG9pbnQgZm9yIGEgU2FnZU1ha2VyIGluZmVyZW5jZSBjb21wb25lbnQuXG4gKiAgICsgICBgYHdvcmtzcGFjZXM6d29ya3NwYWNlc3Bvb2w6RGVzaXJlZFVzZXJTZXNzaW9uc2BgIC0gVGhlIG51bWJlciBvZiB1c2VyIHNlc3Npb25zIGZvciB0aGUgV29ya1NwYWNlcyBpbiB0aGUgcG9vbC5cbiAqL1xuU2NhbGFibGVEaW1lbnNpb24/OiBzdHJpbmdcblRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24/OiBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXG5Bcm4/OiBzdHJpbmdcblN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbj86IFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxuUHJlZGljdGl2ZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXG59XG4vKipcbiAqIEEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRvIHdhaXQgZm9yIGEgcHJldmlvdXMgc2NhbGUtb3V0IGFjdGl2aXR5IHRvIHRha2UgZWZmZWN0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgZm9yIGRlZmF1bHQgdmFsdWVzLCBzZWUgW0RlZmluZSBjb29sZG93biBwZXJpb2RzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL3RhcmdldC10cmFja2luZy1zY2FsaW5nLXBvbGljeS1vdmVydmlldy5odG1sI3RhcmdldC10cmFja2luZy1jb29sZG93bikgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKi9cblNjYWxlT3V0Q29vbGRvd24/OiBudW1iZXJcbi8qKlxuICogVGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIG1ldHJpYy4gQWx0aG91Z2ggdGhpcyBwcm9wZXJ0eSBhY2NlcHRzIG51bWJlcnMgb2YgdHlwZSBEb3VibGUsIGl0IHdvbid0IGFjY2VwdCB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIHRvbyBzbWFsbCBvciB0b28gbGFyZ2UuIFZhbHVlcyBtdXN0IGJlIGluIHRoZSByYW5nZSBvZiAtMl4zNjAgdG8gMl4zNjAuIFRoZSB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgbnVtYmVyIGJhc2VkIG9uIHRoZSBjaG9pY2Ugb2YgbWV0cmljLiBGb3IgZXhhbXBsZSwgaWYgdGhlIG1ldHJpYyBpcyBDUFUgdXRpbGl6YXRpb24sIHRoZW4gdGhlIHRhcmdldCB2YWx1ZSBpcyBhIHBlcmNlbnQgdmFsdWUgdGhhdCByZXByZXNlbnRzIGhvdyBtdWNoIG9mIHRoZSBDUFUgY2FuIGJlIHVzZWQgYmVmb3JlIHNjYWxpbmcgb3V0LlxuICovXG5UYXJnZXRWYWx1ZTogbnVtYmVyXG5DdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvbj86IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNjYWxlIGluIGJ5IHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgaXMgZGlzYWJsZWQuIElmIHRoZSB2YWx1ZSBpcyBgYHRydWVgYCwgc2NhbGUgaW4gaXMgZGlzYWJsZWQgYW5kIHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgd29uJ3QgcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlIHNjYWxhYmxlIHRhcmdldC4gT3RoZXJ3aXNlLCBzY2FsZSBpbiBpcyBlbmFibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGNhbiByZW1vdmUgY2FwYWNpdHkgZnJvbSB0aGUgc2NhbGFibGUgdGFyZ2V0LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYGZhbHNlYGAuXG4gKi9cbkRpc2FibGVTY2FsZUluPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIGFmdGVyIGEgc2NhbGUtaW4gYWN0aXZpdHkgY29tcGxldGVzIGJlZm9yZSBhbm90aGVyIHNjYWxlLWluIGFjdGl2aXR5IGNhbiBzdGFydC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGZvciBkZWZhdWx0IHZhbHVlcywgc2VlIFtEZWZpbmUgY29vbGRvd24gcGVyaW9kc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS90YXJnZXQtdHJhY2tpbmctc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCN0YXJnZXQtdHJhY2tpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5TY2FsZUluQ29vbGRvd24/OiBudW1iZXJcblByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb25cbn1cbi8qKlxuICogQSBjdXN0b21pemVkIG1ldHJpYy4gWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhIHByZWRlZmluZWQgbWV0cmljIG9yIGEgY3VzdG9taXplZCBtZXRyaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbWV0cmljLiBUbyBnZXQgdGhlIGV4YWN0IG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLCBpbnNwZWN0IHRoZSBbTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWMuaHRtbCkgb2JqZWN0IHRoYXQncyByZXR1cm5lZCBieSBhIGNhbGwgdG8gW0xpc3RNZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWV0cmljcy5odG1sKS5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWV0cmljcyB0byBpbmNsdWRlIGluIHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3ksIGFzIGEgbWV0cmljIGRhdGEgcXVlcnkuIFRoaXMgY2FuIGluY2x1ZGUgYm90aCByYXcgbWV0cmljIGFuZCBtZXRyaWMgbWF0aCBleHByZXNzaW9ucy5cbiAqL1xuTWV0cmljcz86IFRhcmdldFRyYWNraW5nTWV0cmljRGF0YVF1ZXJ5W11cbi8qKlxuICogVGhlIHN0YXRpc3RpYyBvZiB0aGUgbWV0cmljLlxuICovXG5TdGF0aXN0aWM/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRpbWVuc2lvbnMgb2YgdGhlIG1ldHJpYy4gXG4gKiAgQ29uZGl0aW9uYWw6IElmIHlvdSBwdWJsaXNoZWQgeW91ciBtZXRyaWMgd2l0aCBkaW1lbnNpb25zLCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBzYW1lIGRpbWVuc2lvbnMgaW4geW91ciBzY2FsaW5nIHBvbGljeS5cbiAqL1xuRGltZW5zaW9ucz86IE1ldHJpY0RpbWVuc2lvbltdXG4vKipcbiAqIFRoZSB1bml0IG9mIHRoZSBtZXRyaWMuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIHVuaXRzIHRoYXQgQ2xvdWRXYXRjaCBzdXBwb3J0cywgc2VlIHRoZSBbTWV0cmljRGF0dW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpY0RhdHVtLmh0bWwpIGRhdGEgdHlwZSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIEFQSSBSZWZlcmVuY2UqLlxuICovXG5Vbml0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIG1ldHJpYy5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtZXRyaWMgZGF0YSB0byByZXR1cm4uIEFsc28gZGVmaW5lcyB3aGV0aGVyIHRoaXMgY2FsbCBpcyByZXR1cm5pbmcgZGF0YSBmb3Igb25lIG1ldHJpYyBvbmx5LCBvciB3aGV0aGVyIGl0IGlzIHBlcmZvcm1pbmcgYSBtYXRoIGV4cHJlc3Npb24gb24gdGhlIHZhbHVlcyBvZiByZXR1cm5lZCBtZXRyaWMgc3RhdGlzdGljcyB0byBjcmVhdGUgYSBuZXcgdGltZSBzZXJpZXMuIEEgdGltZSBzZXJpZXMgaXMgYSBzZXJpZXMgb2YgZGF0YSBwb2ludHMsIGVhY2ggb2Ygd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIGEgdGltZXN0YW1wLlxuICogIFlvdSBjYW4gY2FsbCBmb3IgYSBzaW5nbGUgbWV0cmljIG9yIHBlcmZvcm0gbWF0aCBleHByZXNzaW9ucyBvbiBtdWx0aXBsZSBtZXRyaWNzLiBBbnkgZXhwcmVzc2lvbnMgdXNlZCBpbiBhIG1ldHJpYyBzcGVjaWZpY2F0aW9uIG11c3QgZXZlbnR1YWxseSByZXR1cm4gYSBzaW5nbGUgdGltZSBzZXJpZXMuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGV4YW1wbGVzLCBzZWUgW0NyZWF0ZSBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBmb3IgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzaW5nIG1ldHJpYyBtYXRoXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL2FwcGxpY2F0aW9uLWF1dG8tc2NhbGluZy10YXJnZXQtdHJhY2tpbmctbWV0cmljLW1hdGguaHRtbCkgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKiAgIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBpcyBhIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktY3VzdG9taXplZG1ldHJpY3NwZWNpZmljYXRpb24uaHRtbCkgcHJvcGVydHkgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLiBcbiAqICBJZiB5b3UgdXNlIGFueSBtYXRoIGV4cHJlc3Npb25zLCBzcGVjaWZ5IGBgdHJ1ZWBgIGZvciB0aGlzIHZhbHVlIGZvciBvbmx5IHRoZSBmaW5hbCBtYXRoIGV4cHJlc3Npb24gdGhhdCB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24gaXMgYmFzZWQgb24uIFlvdSBtdXN0IHNwZWNpZnkgYGBmYWxzZWBgIGZvciBgYFJldHVybkRhdGFgYCBmb3IgYWxsIHRoZSBvdGhlciBtZXRyaWNzIGFuZCBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqICBJZiB5b3UgYXJlIG9ubHkgcmV0cmlldmluZyBtZXRyaWNzIGFuZCBub3QgcGVyZm9ybWluZyBhbnkgbWF0aCBleHByZXNzaW9ucywgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgZm9yIGBgUmV0dXJuRGF0YWBgLiBUaGlzIHNldHMgaXQgdG8gaXRzIGRlZmF1bHQgKGBgdHJ1ZWBgKS5cbiAqL1xuUmV0dXJuRGF0YT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1hdGggZXhwcmVzc2lvbiB0byBwZXJmb3JtIG9uIHRoZSByZXR1cm5lZCBkYXRhLCBpZiB0aGlzIG9iamVjdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uLiBUaGlzIGV4cHJlc3Npb24gY2FuIHVzZSB0aGUgYGBJZGBgIG9mIHRoZSBvdGhlciBtZXRyaWNzIHRvIHJlZmVyIHRvIHRob3NlIG1ldHJpY3MsIGFuZCBjYW4gYWxzbyB1c2UgdGhlIGBgSWRgYCBvZiBvdGhlciBleHByZXNzaW9ucyB0byB1c2UgdGhlIHJlc3VsdCBvZiB0aG9zZSBleHByZXNzaW9ucy4gXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbkV4cHJlc3Npb24/OiBzdHJpbmdcbi8qKlxuICogQSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhpcyBtZXRyaWMgb3IgZXhwcmVzc2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB0aGlzIGlzIGEgbWF0aCBleHByZXNzaW9uLCBzbyB0aGF0IHlvdSBrbm93IHdoYXQgdGhlIHZhbHVlIHJlcHJlc2VudHMuXG4gKi9cbkxhYmVsPzogc3RyaW5nXG5NZXRyaWNTdGF0PzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0XG4vKipcbiAqIEEgc2hvcnQgbmFtZSB0aGF0IGlkZW50aWZpZXMgdGhlIG9iamVjdCdzIHJlc3VsdHMgaW4gdGhlIHJlc3BvbnNlLiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0cyBzcGVjaWZpZWQgZm9yIGEgc2luZ2xlIHNjYWxpbmcgcG9saWN5LiBJZiB5b3UgYXJlIHBlcmZvcm1pbmcgbWF0aCBleHByZXNzaW9ucyBvbiB0aGlzIHNldCBvZiBkYXRhLCB0aGlzIG5hbWUgcmVwcmVzZW50cyB0aGF0IGRhdGEgYW5kIGNhbiBzZXJ2ZSBhcyBhIHZhcmlhYmxlIGluIHRoZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbi4gVGhlIHZhbGlkIGNoYXJhY3RlcnMgYXJlIGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlcy4gVGhlIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbG93ZXJjYXNlIGxldHRlci5cbiAqL1xuSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG1ldHJpYyBkYXRhIHRvIHJldHVybi5cbiAqICBDb25kaXRpb25hbDogV2l0aGluIGVhY2ggYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0IHtcbi8qKlxuICogVGhlIHN0YXRpc3RpYyB0byByZXR1cm4uIEl0IGNhbiBpbmNsdWRlIGFueSBDbG91ZFdhdGNoIHN0YXRpc3RpYyBvciBleHRlbmRlZCBzdGF0aXN0aWMuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCBzZWUgdGhlIHRhYmxlIGluIFtTdGF0aXN0aWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2NvbmNlcHRzLmh0bWwjU3RhdGlzdGljKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLlxuICogIFRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0cmljIGZvciBzY2FsaW5nIGlzIGBgQXZlcmFnZWBgLlxuICovXG5TdGF0Pzogc3RyaW5nXG5NZXRyaWM/OiBUYXJnZXRUcmFja2luZ01ldHJpY1xuLyoqXG4gKiBUaGUgdW5pdCB0byB1c2UgZm9yIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy4gRm9yIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgdW5pdHMgdGhhdCBDbG91ZFdhdGNoIHN1cHBvcnRzLCBzZWUgdGhlIFtNZXRyaWNEYXR1bV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljRGF0dW0uaHRtbCkgZGF0YSB0eXBlIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggQVBJIFJlZmVyZW5jZSouXG4gKi9cblVuaXQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIHRvIHJldHVybiwgaW5jbHVkaW5nIHRoZSBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0IGlzIHJldHVybmVkIGJ5IGEgY2FsbCB0byBbTGlzdE1ldHJpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZXRyaWNzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpYy4gRm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBkaW1lbnNpb25zLCBzZWUgdGhlIEFXUyBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSBmcm9tIHRoZSB0YWJsZSBpbiBbc2VydmljZXMgdGhhdCBwdWJsaXNoIENsb3VkV2F0Y2ggbWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvYXdzLXNlcnZpY2VzLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLiBcbiAqICBDb25kaXRpb25hbDogSWYgeW91IHB1Ymxpc2hlZCB5b3VyIG1ldHJpYyB3aXRoIGRpbWVuc2lvbnMsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgZGltZW5zaW9ucyBpbiB5b3VyIHNjYWxpbmcgcG9saWN5LlxuICovXG5EaW1lbnNpb25zPzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIHRhYmxlIGluIFtzZXJ2aWNlcyB0aGF0IHB1Ymxpc2ggQ2xvdWRXYXRjaCBtZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9hd3Mtc2VydmljZXMtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWwpIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZSouXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBgYFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uYGAgc3BlY2lmaWVzIGEgbmFtZS92YWx1ZSBwYWlyIHRoYXQgaXMgcGFydCBvZiB0aGUgaWRlbnRpdHkgb2YgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdGhlIGBgRGltZW5zaW9uc2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFRhcmdldFRyYWNraW5nTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktdGFyZ2V0dHJhY2tpbmdtZXRyaWMuaHRtbCkgcHJvcGVydHkgdHlwZS4gRHVwbGljYXRlIGRpbWVuc2lvbnMgYXJlIG5vdCBhbGxvd2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBNZXRyaWNEaW1lbnNpb25gYCBzcGVjaWZpZXMgYSBuYW1lL3ZhbHVlIHBhaXIgdGhhdCBpcyBwYXJ0IG9mIHRoZSBpZGVudGl0eSBvZiBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0aGUgYGBEaW1lbnNpb25zYGAgcHJvcGVydHkgb2YgdGhlIFtBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3kgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS1jdXN0b21pemVkbWV0cmljc3BlY2lmaWNhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBEdXBsaWNhdGUgZGltZW5zaW9ucyBhcmUgbm90IGFsbG93ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRpbWVuc2lvbi5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIEEgcHJlZGVmaW5lZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG1ldHJpYyB0eXBlLiBUaGUgYGBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXRgYCBtZXRyaWMgdHlwZSBhcHBsaWVzIG9ubHkgdG8gU3BvdCBmbGVldCByZXF1ZXN0cyBhbmQgRUNTIHNlcnZpY2VzLlxuICovXG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG4vKipcbiAqIElkZW50aWZpZXMgdGhlIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWV0cmljIHR5cGUuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcmVzb3VyY2UgbGFiZWwgdW5sZXNzIHRoZSBtZXRyaWMgdHlwZSBpcyBgYEFMQlJlcXVlc3RDb3VudFBlclRhcmdldGBgIGFuZCB0aGVyZSBpcyBhIHRhcmdldCBncm91cCBhdHRhY2hlZCB0byB0aGUgU3BvdCBGbGVldCBvciBFQ1Mgc2VydmljZS5cbiAqICBZb3UgY3JlYXRlIHRoZSByZXNvdXJjZSBsYWJlbCBieSBhcHBlbmRpbmcgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIGxvYWQgYmFsYW5jZXIgQVJOIGFuZCB0aGUgZmluYWwgcG9ydGlvbiBvZiB0aGUgdGFyZ2V0IGdyb3VwIEFSTiBpbnRvIGEgc2luZ2xlIHZhbHVlLCBzZXBhcmF0ZWQgYnkgYSBmb3J3YXJkIHNsYXNoICgvKS4gVGhlIGZvcm1hdCBvZiB0aGUgcmVzb3VyY2UgbGFiZWwgaXM6XG4gKiAgIGBgYXBwL215LWFsYi83NzhkNDEyMzFiMTQxYTBmL3RhcmdldGdyb3VwL215LWFsYi10YXJnZXQtZ3JvdXAvOTQzZjAxN2YxMDBiZWNmZmBgLlxuICogIFdoZXJlOlxuICogICArICBhcHAvPGxvYWQtYmFsYW5jZXItbmFtZT4vPGxvYWQtYmFsYW5jZXItaWQ+IGlzIHRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSBsb2FkIGJhbGFuY2VyIEFSTlxuICogICArICB0YXJnZXRncm91cC88dGFyZ2V0LWdyb3VwLW5hbWU+Lzx0YXJnZXQtZ3JvdXAtaWQ+IGlzIHRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSB0YXJnZXQgZ3JvdXAgQVJOLlxuICogICBcbiAqICBUbyBmaW5kIHRoZSBBUk4gZm9yIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIsIHVzZSB0aGUgW0Rlc2NyaWJlTG9hZEJhbGFuY2Vyc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlTG9hZEJhbGFuY2Vycy5odG1sKSBBUEkgb3BlcmF0aW9uLiBUbyBmaW5kIHRoZSBBUk4gZm9yIHRoZSB0YXJnZXQgZ3JvdXAsIHVzZSB0aGUgW0Rlc2NyaWJlVGFyZ2V0R3JvdXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVUYXJnZXRHcm91cHMuaHRtbCkgQVBJIG9wZXJhdGlvbi5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuLyoqXG4gKiBBIHN0ZXAgc2NhbGluZyBwb2xpY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcFNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGFnZ3JlZ2F0aW9uIHR5cGUgZm9yIHRoZSBDbG91ZFdhdGNoIG1ldHJpY3MuIFZhbGlkIHZhbHVlcyBhcmUgYGBNaW5pbXVtYGAsIGBgTWF4aW11bWBgLCBhbmQgYGBBdmVyYWdlYGAuIElmIHRoZSBhZ2dyZWdhdGlvbiB0eXBlIGlzIG51bGwsIHRoZSB2YWx1ZSBpcyB0cmVhdGVkIGFzIGBgQXZlcmFnZWBgLlxuICovXG5NZXRyaWNBZ2dyZWdhdGlvblR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0byB3YWl0IGZvciBhIHByZXZpb3VzIHNjYWxpbmcgYWN0aXZpdHkgdG8gdGFrZSBlZmZlY3QuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDMwMC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29vbGRvd24gcGVyaW9kXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL3N0ZXAtc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCNzdGVwLXNjYWxpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5Db29sZG93bj86IG51bWJlclxuLyoqXG4gKiBBIHNldCBvZiBhZGp1c3RtZW50cyB0aGF0IGVuYWJsZSB5b3UgdG8gc2NhbGUgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIGFsYXJtIGJyZWFjaC5cbiAqICBBdCBsZWFzdCBvbmUgc3RlcCBhZGp1c3RtZW50IGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgYWRkaW5nIGEgbmV3IHN0ZXAgc2NhbGluZyBwb2xpY3kgY29uZmlndXJhdGlvbi5cbiAqL1xuU3RlcEFkanVzdG1lbnRzPzogU3RlcEFkanVzdG1lbnRbXVxuLyoqXG4gKiBUaGUgbWluaW11bSB2YWx1ZSB0byBzY2FsZSBieSB3aGVuIHRoZSBhZGp1c3RtZW50IHR5cGUgaXMgYGBQZXJjZW50Q2hhbmdlSW5DYXBhY2l0eWBgLiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGF0IHlvdSBjcmVhdGUgYSBzdGVwIHNjYWxpbmcgcG9saWN5IHRvIHNjYWxlIG91dCBhbiBBbWF6b24gRUNTIHNlcnZpY2UgYnkgMjUgcGVyY2VudCBhbmQgeW91IHNwZWNpZnkgYSBgYE1pbkFkanVzdG1lbnRNYWduaXR1ZGVgYCBvZiAyLiBJZiB0aGUgc2VydmljZSBoYXMgNCB0YXNrcyBhbmQgdGhlIHNjYWxpbmcgcG9saWN5IGlzIHBlcmZvcm1lZCwgMjUgcGVyY2VudCBvZiA0IGlzIDEuIEhvd2V2ZXIsIGJlY2F1c2UgeW91IHNwZWNpZmllZCBhIGBgTWluQWRqdXN0bWVudE1hZ25pdHVkZWBgIG9mIDIsIEFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBzY2FsZXMgb3V0IHRoZSBzZXJ2aWNlIGJ5IDIgdGFza3MuXG4gKi9cbk1pbkFkanVzdG1lbnRNYWduaXR1ZGU/OiBudW1iZXJcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGBgU2NhbGluZ0FkanVzdG1lbnRgYCB2YWx1ZSBpbiB0aGUgYGBTdGVwQWRqdXN0bWVudGBgIHByb3BlcnR5IGlzIGFuIGFic29sdXRlIG51bWJlciBvciBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGN1cnJlbnQgY2FwYWNpdHkuXG4gKi9cbkFkanVzdG1lbnRUeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIGBgU3RlcEFkanVzdG1lbnRgYCBzcGVjaWZpZXMgYSBzdGVwIGFkanVzdG1lbnQgZm9yIHRoZSBgYFN0ZXBBZGp1c3RtZW50c2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5LXN0ZXBzY2FsaW5ncG9saWN5Y29uZmlndXJhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBcbiAqICBGb3IgdGhlIGZvbGxvd2luZyBleGFtcGxlcywgc3VwcG9zZSB0aGF0IHlvdSBoYXZlIGFuIGFsYXJtIHdpdGggYSBicmVhY2ggdGhyZXNob2xkIG9mIDUwOiBcbiAqICAgKyAgVG8gdHJpZ2dlciBhIHN0ZXAgYWRqdXN0bWVudCB3aGVuIHRoZSBtZXRyaWMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDUwIGFuZCBsZXNzIHRoYW4gNjAsIHNwZWNpZnkgYSBsb3dlciBib3VuZCBvZiAwIGFuZCBhbiB1cHBlciBib3VuZCBvZiAxMC4gXG4gKiAgICsgIFRvIHRyaWdnZXIgYSBzdGVwIGFkanVzdG1lbnQgd2hlbiB0aGUgbWV0cmljIGlzIGdyZWF0ZXIgdGhhbiA0MCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUwLCBzcGVjaWZ5IGEgbG93ZXIgYm91bmQgb2YgLTEwIGFuZCBhbiB1cHBlciBib3VuZCBvZiAwLiBcbiAqICAgXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbU3RlcCBhZGp1c3RtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwjYXMtc2NhbGluZy1zdGVwcykgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKiAgWW91IGNhbiBmaW5kIGEgc2FtcGxlIHRlbXBsYXRlIHNuaXBwZXQgaW4gdGhlIFtFeGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5odG1sI2F3cy1yZXNvdXJjZS1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktLWV4YW1wbGVzKSBzZWN0aW9uIG9mIHRoZSBgYEFXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeWBgIGRvY3VtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcEFkanVzdG1lbnQge1xuLyoqXG4gKiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGFsYXJtIHRocmVzaG9sZCBhbmQgdGhlIENsb3VkV2F0Y2ggbWV0cmljLiBJZiB0aGUgbWV0cmljIHZhbHVlIGlzIGFib3ZlIHRoZSBicmVhY2ggdGhyZXNob2xkLCB0aGUgdXBwZXIgYm91bmQgaXMgZXhjbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgbGVzcyB0aGFuIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgdXBwZXIgYm91bmQpLiBPdGhlcndpc2UsIGl0IGlzIGluY2x1c2l2ZSAodGhlIG1ldHJpYyBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgdGhyZXNob2xkIHBsdXMgdGhlIHVwcGVyIGJvdW5kKS4gQSBudWxsIHZhbHVlIGluZGljYXRlcyBwb3NpdGl2ZSBpbmZpbml0eS5cbiAqICBZb3UgbXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSB1cHBlciBvciBsb3dlciBib3VuZC5cbiAqL1xuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kPzogbnVtYmVyXG4vKipcbiAqIFRoZSBsb3dlciBib3VuZCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYWxhcm0gdGhyZXNob2xkIGFuZCB0aGUgQ2xvdWRXYXRjaCBtZXRyaWMuIElmIHRoZSBtZXRyaWMgdmFsdWUgaXMgYWJvdmUgdGhlIGJyZWFjaCB0aHJlc2hvbGQsIHRoZSBsb3dlciBib3VuZCBpcyBpbmNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSBsb3dlciBib3VuZCkuIE90aGVyd2lzZSwgaXQgaXMgZXhjbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgbG93ZXIgYm91bmQpLiBBIG51bGwgdmFsdWUgaW5kaWNhdGVzIG5lZ2F0aXZlIGluZmluaXR5LlxuICogIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHVwcGVyIG9yIGxvd2VyIGJvdW5kLlxuICovXG5NZXRyaWNJbnRlcnZhbExvd2VyQm91bmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGFtb3VudCBieSB3aGljaCB0byBzY2FsZS4gVGhlIGFkanVzdG1lbnQgaXMgYmFzZWQgb24gdGhlIHZhbHVlIHRoYXQgeW91IHNwZWNpZmllZCBpbiB0aGUgYGBBZGp1c3RtZW50VHlwZWBgIHByb3BlcnR5IChlaXRoZXIgYW4gYWJzb2x1dGUgbnVtYmVyIG9yIGEgcGVyY2VudGFnZSkuIEEgcG9zaXRpdmUgdmFsdWUgYWRkcyB0byB0aGUgY3VycmVudCBjYXBhY2l0eSBhbmQgYSBuZWdhdGl2ZSBudW1iZXIgc3VidHJhY3RzIGZyb20gdGhlIGN1cnJlbnQgY2FwYWNpdHkuXG4gKi9cblNjYWxpbmdBZGp1c3RtZW50OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIHByZWRpY3RpdmUgc2NhbGluZyBwb2xpY3kgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBiZWhhdmlvciB0aGF0IHNob3VsZCBiZSBhcHBsaWVkIGlmIHRoZSBmb3JlY2FzdCBjYXBhY2l0eSBhcHByb2FjaGVzIG9yIGV4Y2VlZHMgdGhlIG1heGltdW0gY2FwYWNpdHkuIERlZmF1bHRzIHRvIGBgSG9ub3JNYXhDYXBhY2l0eWBgIGlmIG5vdCBzcGVjaWZpZWQuXG4gKi9cbk1heENhcGFjaXR5QnJlYWNoQmVoYXZpb3I/OiBzdHJpbmdcbi8qKlxuICogVGhlIHNpemUgb2YgdGhlIGNhcGFjaXR5IGJ1ZmZlciB0byB1c2Ugd2hlbiB0aGUgZm9yZWNhc3QgY2FwYWNpdHkgaXMgY2xvc2UgdG8gb3IgZXhjZWVkcyB0aGUgbWF4aW11bSBjYXBhY2l0eS4gVGhlIHZhbHVlIGlzIHNwZWNpZmllZCBhcyBhIHBlcmNlbnRhZ2UgcmVsYXRpdmUgdG8gdGhlIGZvcmVjYXN0IGNhcGFjaXR5LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGJ1ZmZlciBpcyAxMCwgdGhpcyBtZWFucyBhIDEwIHBlcmNlbnQgYnVmZmVyLCBzdWNoIHRoYXQgaWYgdGhlIGZvcmVjYXN0IGNhcGFjaXR5IGlzIDUwLCBhbmQgdGhlIG1heGltdW0gY2FwYWNpdHkgaXMgNDAsIHRoZW4gdGhlIGVmZmVjdGl2ZSBtYXhpbXVtIGNhcGFjaXR5IGlzIDU1LiBcbiAqICBSZXF1aXJlZCBpZiB0aGUgYGBNYXhDYXBhY2l0eUJyZWFjaEJlaGF2aW9yYGAgcHJvcGVydHkgaXMgc2V0IHRvIGBgSW5jcmVhc2VNYXhDYXBhY2l0eWBgLCBhbmQgY2Fubm90IGJlIHVzZWQgb3RoZXJ3aXNlLlxuICovXG5NYXhDYXBhY2l0eUJ1ZmZlcj86IG51bWJlclxuLyoqXG4gKiBUaGUgcHJlZGljdGl2ZSBzY2FsaW5nIG1vZGUuIERlZmF1bHRzIHRvIGBgRm9yZWNhc3RPbmx5YGAgaWYgbm90IHNwZWNpZmllZC5cbiAqL1xuTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGlzIHN0cnVjdHVyZSBpbmNsdWRlcyB0aGUgbWV0cmljcyBhbmQgdGFyZ2V0IHV0aWxpemF0aW9uIHRvIHVzZSBmb3IgcHJlZGljdGl2ZSBzY2FsaW5nLiBcbiAqICBUaGlzIGlzIGFuIGFycmF5LCBidXQgd2UgY3VycmVudGx5IG9ubHkgc3VwcG9ydCBhIHNpbmdsZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi4gVGhhdCBpcywgeW91IGNhbiBzcGVjaWZ5IGEgdGFyZ2V0IHZhbHVlIGFuZCBhIHNpbmdsZSBtZXRyaWMgcGFpciwgb3IgYSB0YXJnZXQgdmFsdWUgYW5kIG9uZSBzY2FsaW5nIG1ldHJpYyBhbmQgb25lIGxvYWQgbWV0cmljLlxuICovXG5NZXRyaWNTcGVjaWZpY2F0aW9uczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uW11cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0aGF0IHRoZSBzdGFydCB0aW1lIGNhbiBiZSBhZHZhbmNlZC4gXG4gKiAgVGhlIHZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBmb3JlY2FzdCBpbnRlcnZhbCBkdXJhdGlvbiBvZiAzNjAwIHNlY29uZHMgKDYwIG1pbnV0ZXMpLiBEZWZhdWx0cyB0byAzMDAgc2Vjb25kcyBpZiBub3Qgc3BlY2lmaWVkLlxuICovXG5TY2hlZHVsaW5nQnVmZmVyVGltZT86IG51bWJlclxufVxuLyoqXG4gKiBUaGlzIHN0cnVjdHVyZSBzcGVjaWZpZXMgdGhlIG1ldHJpY3MgYW5kIHRhcmdldCB1dGlsaXphdGlvbiBzZXR0aW5ncyBmb3IgYSBwcmVkaWN0aXZlIHNjYWxpbmcgcG9saWN5LiBcbiAqICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBhIG1ldHJpYyBwYWlyLCBvciBhIGxvYWQgbWV0cmljIGFuZCBhIHNjYWxpbmcgbWV0cmljIGluZGl2aWR1YWxseS4gU3BlY2lmeWluZyBhIG1ldHJpYyBwYWlyIGluc3RlYWQgb2YgaW5kaXZpZHVhbCBtZXRyaWNzIHByb3ZpZGVzIGEgc2ltcGxlciB3YXkgdG8gY29uZmlndXJlIG1ldHJpY3MgZm9yIGEgc2NhbGluZyBwb2xpY3kuIFlvdSBjaG9vc2UgdGhlIG1ldHJpYyBwYWlyLCBhbmQgdGhlIHBvbGljeSBhdXRvbWF0aWNhbGx5IGtub3dzIHRoZSBjb3JyZWN0IHN1bSBhbmQgYXZlcmFnZSBzdGF0aXN0aWNzIHRvIHVzZSBmb3IgdGhlIGxvYWQgbWV0cmljIGFuZCB0aGUgc2NhbGluZyBtZXRyaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbkN1c3RvbWl6ZWRMb2FkTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZExvYWRNZXRyaWNcblByZWRlZmluZWRMb2FkTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZExvYWRNZXRyaWNcbi8qKlxuICogU3BlY2lmaWVzIHRoZSB0YXJnZXQgdXRpbGl6YXRpb24uXG4gKi9cblRhcmdldFZhbHVlOiBudW1iZXJcblByZWRlZmluZWRTY2FsaW5nTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZFNjYWxpbmdNZXRyaWNcbkN1c3RvbWl6ZWRDYXBhY2l0eU1ldHJpY1NwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRDYXBhY2l0eU1ldHJpY1xuQ3VzdG9taXplZFNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkU2NhbGluZ01ldHJpY1xuUHJlZGVmaW5lZE1ldHJpY1BhaXJTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkTWV0cmljUGFpclxufVxuLyoqXG4gKiBUaGUgY3VzdG9taXplZCBsb2FkIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZExvYWRNZXRyaWMge1xuTWV0cmljRGF0YVF1ZXJpZXM6IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljRGF0YVF1ZXJ5W11cbn1cbi8qKlxuICogVGhlIG1ldHJpYyBkYXRhIHRvIHJldHVybi4gQWxzbyBkZWZpbmVzIHdoZXRoZXIgdGhpcyBjYWxsIGlzIHJldHVybmluZyBkYXRhIGZvciBvbmUgbWV0cmljIG9ubHksIG9yIHdoZXRoZXIgaXQgaXMgcGVyZm9ybWluZyBhIG1hdGggZXhwcmVzc2lvbiBvbiB0aGUgdmFsdWVzIG9mIHJldHVybmVkIG1ldHJpYyBzdGF0aXN0aWNzIHRvIGNyZWF0ZSBhIG5ldyB0aW1lIHNlcmllcy4gQSB0aW1lIHNlcmllcyBpcyBhIHNlcmllcyBvZiBkYXRhIHBvaW50cywgZWFjaCBvZiB3aGljaCBpcyBhc3NvY2lhdGVkIHdpdGggYSB0aW1lc3RhbXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnkge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byByZXR1cm4gdGhlIHRpbWVzdGFtcHMgYW5kIHJhdyBkYXRhIHZhbHVlcyBvZiB0aGlzIG1ldHJpYy4gXG4gKiAgSWYgeW91IHVzZSBhbnkgbWF0aCBleHByZXNzaW9ucywgc3BlY2lmeSBgYHRydWVgYCBmb3IgdGhpcyB2YWx1ZSBmb3Igb25seSB0aGUgZmluYWwgbWF0aCBleHByZXNzaW9uIHRoYXQgdGhlIG1ldHJpYyBzcGVjaWZpY2F0aW9uIGlzIGJhc2VkIG9uLiBZb3UgbXVzdCBzcGVjaWZ5IGBgZmFsc2VgYCBmb3IgYGBSZXR1cm5EYXRhYGAgZm9yIGFsbCB0aGUgb3RoZXIgbWV0cmljcyBhbmQgZXhwcmVzc2lvbnMgdXNlZCBpbiB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKiAgSWYgeW91IGFyZSBvbmx5IHJldHJpZXZpbmcgbWV0cmljcyBhbmQgbm90IHBlcmZvcm1pbmcgYW55IG1hdGggZXhwcmVzc2lvbnMsIGRvIG5vdCBzcGVjaWZ5IGFueXRoaW5nIGZvciBgYFJldHVybkRhdGFgYC4gVGhpcyBzZXRzIGl0IHRvIGl0cyBkZWZhdWx0IChgYHRydWVgYCkuXG4gKi9cblJldHVybkRhdGE/OiBib29sZWFuXG4vKipcbiAqIFRoZSBtYXRoIGV4cHJlc3Npb24gdG8gcGVyZm9ybSBvbiB0aGUgcmV0dXJuZWQgZGF0YSwgaWYgdGhpcyBvYmplY3QgaXMgcGVyZm9ybWluZyBhIG1hdGggZXhwcmVzc2lvbi4gVGhpcyBleHByZXNzaW9uIGNhbiB1c2UgdGhlIGBgSWRgYCBvZiB0aGUgb3RoZXIgbWV0cmljcyB0byByZWZlciB0byB0aG9zZSBtZXRyaWNzLCBhbmQgY2FuIGFsc28gdXNlIHRoZSBgYElkYGAgb2Ygb3RoZXIgZXhwcmVzc2lvbnMgdG8gdXNlIHRoZSByZXN1bHQgb2YgdGhvc2UgZXhwcmVzc2lvbnMuIFxuICogIENvbmRpdGlvbmFsOiBXaXRoaW4gZWFjaCBgYE1ldHJpY0RhdGFRdWVyeWBgIG9iamVjdCwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYGBFeHByZXNzaW9uYGAgb3IgYGBNZXRyaWNTdGF0YGAsIGJ1dCBub3QgYm90aC5cbiAqL1xuRXhwcmVzc2lvbj86IHN0cmluZ1xuLyoqXG4gKiBBIGh1bWFuLXJlYWRhYmxlIGxhYmVsIGZvciB0aGlzIG1ldHJpYyBvciBleHByZXNzaW9uLiBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGlmIHRoaXMgaXMgYSBtYXRoIGV4cHJlc3Npb24sIHNvIHRoYXQgeW91IGtub3cgd2hhdCB0aGUgdmFsdWUgcmVwcmVzZW50cy5cbiAqL1xuTGFiZWw/OiBzdHJpbmdcbk1ldHJpY1N0YXQ/OiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1N0YXRcbi8qKlxuICogQSBzaG9ydCBuYW1lIHRoYXQgaWRlbnRpZmllcyB0aGUgb2JqZWN0J3MgcmVzdWx0cyBpbiB0aGUgcmVzcG9uc2UuIFRoaXMgbmFtZSBtdXN0IGJlIHVuaXF1ZSBhbW9uZyBhbGwgYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3RzIHNwZWNpZmllZCBmb3IgYSBzaW5nbGUgc2NhbGluZyBwb2xpY3kuIElmIHlvdSBhcmUgcGVyZm9ybWluZyBtYXRoIGV4cHJlc3Npb25zIG9uIHRoaXMgc2V0IG9mIGRhdGEsIHRoaXMgbmFtZSByZXByZXNlbnRzIHRoYXQgZGF0YSBhbmQgY2FuIHNlcnZlIGFzIGEgdmFyaWFibGUgaW4gdGhlIG1hdGhlbWF0aWNhbCBleHByZXNzaW9uLiBUaGUgdmFsaWQgY2hhcmFjdGVycyBhcmUgbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzLiBUaGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYSBsb3dlcmNhc2UgbGV0dGVyLlxuICovXG5JZD86IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLiBcbiAqICBDb25kaXRpb25hbDogV2l0aGluIGVhY2ggYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTdGF0IHtcbi8qKlxuICogVGhlIHN0YXRpc3RpYyB0byByZXR1cm4uIEl0IGNhbiBpbmNsdWRlIGFueSBDbG91ZFdhdGNoIHN0YXRpc3RpYyBvciBleHRlbmRlZCBzdGF0aXN0aWMuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCBzZWUgdGhlIHRhYmxlIGluIFtTdGF0aXN0aWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2NvbmNlcHRzLmh0bWwjU3RhdGlzdGljKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLiBcbiAqICBUaGUgbW9zdCBjb21tb25seSB1c2VkIG1ldHJpY3MgZm9yIHByZWRpY3RpdmUgc2NhbGluZyBhcmUgYGBBdmVyYWdlYGAgYW5kIGBgU3VtYGAuXG4gKi9cblN0YXQ/OiBzdHJpbmdcbk1ldHJpYz86IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljXG4vKipcbiAqIFRoZSB1bml0IHRvIHVzZSBmb3IgdGhlIHJldHVybmVkIGRhdGEgcG9pbnRzLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHRoZSB1bml0cyB0aGF0IENsb3VkV2F0Y2ggc3VwcG9ydHMsIHNlZSB0aGUgW01ldHJpY0RhdHVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWNEYXR1bS5odG1sKSBkYXRhIHR5cGUgaW4gdGhlICpBbWF6b24gQ2xvdWRXYXRjaCBBUEkgUmVmZXJlbmNlKi5cbiAqL1xuVW5pdD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgQ2xvdWRXYXRjaCBtZXRyaWMgdG8gcmV0dXJuLCBpbmNsdWRpbmcgdGhlIG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLiBUbyBnZXQgdGhlIGV4YWN0IG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLCBpbnNwZWN0IHRoZSBbTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWMuaHRtbCkgb2JqZWN0IHRoYXQgaXMgcmV0dXJuZWQgYnkgYSBjYWxsIHRvIFtMaXN0TWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdE1ldHJpY3MuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWMge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbWV0cmljLlxuICovXG5NZXRyaWNOYW1lPzogc3RyaW5nXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgbWV0cmljLlxuICovXG5EaW1lbnNpb25zPzogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGRpbWVuc2lvbiBvZiBhIG1ldHJpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RpbWVuc2lvbiB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgZGltZW5zaW9uLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGltZW5zaW9uLlxuICovXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBwcmVkZWZpbmVkIGxvYWQgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkTG9hZE1ldHJpYyB7XG4vKipcbiAqIFRoZSBtZXRyaWMgdHlwZS5cbiAqL1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuLyoqXG4gKiBBIGxhYmVsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHRhcmdldCBncm91cC5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgcHJlZGVmaW5lZCBzY2FsaW5nIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZFNjYWxpbmdNZXRyaWMge1xuLyoqXG4gKiBUaGUgbWV0cmljIHR5cGUuXG4gKi9cblByZWRlZmluZWRNZXRyaWNUeXBlOiBzdHJpbmdcbi8qKlxuICogQSBsYWJlbCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzcGVjaWZpYyB0YXJnZXQgZ3JvdXAgZnJvbSB3aGljaCB0byBkZXRlcm1pbmUgdGhlIGF2ZXJhZ2UgcmVxdWVzdCBjb3VudC5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgY3VzdG9taXplZCBjYXBhY2l0eSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRDYXBhY2l0eU1ldHJpYyB7XG4vKipcbiAqIE9uZSBvciBtb3JlIG1ldHJpYyBkYXRhIHF1ZXJpZXMgdG8gcHJvdmlkZSBkYXRhIHBvaW50cyBmb3IgYSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuTWV0cmljRGF0YVF1ZXJpZXM6IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljRGF0YVF1ZXJ5W11cbn1cbi8qKlxuICogVGhlIGN1c3RvbWl6ZWQgc2NhbGluZyBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRTY2FsaW5nTWV0cmljIHtcbi8qKlxuICogT25lIG9yIG1vcmUgbWV0cmljIGRhdGEgcXVlcmllcyB0byBwcm92aWRlIGRhdGEgcG9pbnRzIGZvciBhIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuLyoqXG4gKiBUaGUgcHJlZGVmaW5lZCBtZXRyaWMgcGFpciBzcGVjaWZpY2F0aW9uIHRoYXQgZGV0ZXJtaW5lcyB0aGUgYXBwcm9wcmlhdGUgc2NhbGluZyBtZXRyaWMgYW5kIGxvYWQgbWV0cmljIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRNZXRyaWNQYWlyIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoaWNoIG1ldHJpY3MgdG8gdXNlLiBUaGVyZSBhcmUgdHdvIGRpZmZlcmVudCB0eXBlcyBvZiBtZXRyaWNzIGZvciBlYWNoIG1ldHJpYyB0eXBlOiBvbmUgaXMgYSBsb2FkIG1ldHJpYyBhbmQgb25lIGlzIGEgc2NhbGluZyBtZXRyaWMuXG4gKi9cblByZWRlZmluZWRNZXRyaWNUeXBlOiBzdHJpbmdcbi8qKlxuICogQSBsYWJlbCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzcGVjaWZpYyB0YXJnZXQgZ3JvdXAgZnJvbSB3aGljaCB0byBkZXRlcm1pbmUgdGhlIHRvdGFsIGFuZCBhdmVyYWdlIHJlcXVlc3QgY291bnQuXG4gKi9cblJlc291cmNlTGFiZWw/OiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZGVmaW5lcyBhIHNjYWxpbmcgcG9saWN5IHRoYXQgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzZXMgdG8gYWRqdXN0IHRoZSBjYXBhY2l0eSBvZiBhIHNjYWxhYmxlIHRhcmdldC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvYXBwbGljYXRpb24tYXV0by1zY2FsaW5nLXRhcmdldC10cmFja2luZy5odG1sKSBhbmQgW1N0ZXAgc2NhbGluZyBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBQTElDQVRJT05BVVRPU0NBTElOR19TQ0FMSU5HUE9MSUNZIHtcbi8qKlxuICogVGhlIHNjYWxpbmcgcG9saWN5IHR5cGUuXG4gKiAgVGhlIGZvbGxvd2luZyBwb2xpY3kgdHlwZXMgYXJlIHN1cHBvcnRlZDogXG4gKiAgYGBUYXJnZXRUcmFja2luZ1NjYWxpbmdgYOKAlE5vdCBzdXBwb3J0ZWQgZm9yIEFtYXpvbiBFTVJcbiAqICBgYFN0ZXBTY2FsaW5nYGDigJROb3Qgc3VwcG9ydGVkIGZvciBEeW5hbW9EQiwgQW1hem9uIENvbXByZWhlbmQsIExhbWJkYSwgQW1hem9uIEtleXNwYWNlcywgQW1hem9uIE1TSywgQW1hem9uIEVsYXN0aUNhY2hlLCBvciBOZXB0dW5lLlxuICogIGBgUHJlZGljdGl2ZVNjYWxpbmdgYOKAlE9ubHkgc3VwcG9ydGVkIGZvciBBbWF6b24gRUNTXG4gKi9cblBvbGljeVR5cGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzY2FsaW5nIHBvbGljeS4gVGhpcyBzdHJpbmcgY29uc2lzdHMgb2YgdGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyLlxuICogICArICBFQ1Mgc2VydmljZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgc2VydmljZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZSBhbmQgc2VydmljZSBuYW1lLiBFeGFtcGxlOiBgYHNlcnZpY2UvbXktY2x1c3Rlci9teS1zZXJ2aWNlYGAuXG4gKiAgICsgIFNwb3QgRmxlZXQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHNwb3QtZmxlZXQtcmVxdWVzdGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIFNwb3QgRmxlZXQgcmVxdWVzdCBJRC4gRXhhbXBsZTogYGBzcG90LWZsZWV0LXJlcXVlc3Qvc2ZyLTczZmJkMmNlLWFhMzAtNDk0Yy04Nzg4LTFjZWU0RVhBTVBMRWBgLlxuICogICArICBFTVIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5zdGFuY2Vncm91cGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgSUQgYW5kIGluc3RhbmNlIGdyb3VwIElELiBFeGFtcGxlOiBgYGluc3RhbmNlZ3JvdXAvai0yRUVaTllLVUExTlRWL2lnLTE3OTFZNEUxTDhZSTBgYC5cbiAqICAgKyAgQXBwU3RyZWFtIDIuMCBmbGVldCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgZmxlZXRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBmbGVldCBuYW1lLiBFeGFtcGxlOiBgYGZsZWV0L3NhbXBsZS1mbGVldGBgLlxuICogICArICBEeW5hbW9EQiB0YWJsZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgdGFibGVgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSB0YWJsZSBuYW1lLiBFeGFtcGxlOiBgYHRhYmxlL215LXRhYmxlYGAuXG4gKiAgICsgIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGluZGV4YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgaW5kZXggbmFtZS4gRXhhbXBsZTogYGB0YWJsZS9teS10YWJsZS9pbmRleC9teS10YWJsZS1pbmRleGBgLlxuICogICArICBBdXJvcmEgREIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgY2x1c3RlcmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZS4gRXhhbXBsZTogYGBjbHVzdGVyOm15LWRiLWNsdXN0ZXJgYC5cbiAqICAgKyAgU2FnZU1ha2VyIGVuZHBvaW50IHZhcmlhbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHZhcmlhbnRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSByZXNvdXJjZSBJRC4gRXhhbXBsZTogYGBlbmRwb2ludC9teS1lbmQtcG9pbnQvdmFyaWFudC9LTWVhbnNDbHVzdGVyaW5nYGAuXG4gKiAgICsgIEN1c3RvbSByZXNvdXJjZXMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIHJlc291cmNlIHR5cGUuIFRoaXMgcGFyYW1ldGVyIG11c3Qgc3BlY2lmeSB0aGUgYGBPdXRwdXRWYWx1ZWBgIGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIHN0YWNrIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMuIFRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyBkZWZpbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyLiBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiBvdXIgW0dpdEh1YiByZXBvc2l0b3J5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtYXV0by1zY2FsaW5nLWN1c3RvbS1yZXNvdXJjZSkuXG4gKiAgICsgIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyIGFyZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGVuZHBvaW50IEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmNvbXByZWhlbmQ6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBhbmQgdW5pcXVlIGlkZW50aWZpZXIgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgZW5kcG9pbnQgQVJOLiBFeGFtcGxlOiBgYGFybjphd3M6Y29tcHJlaGVuZDp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBmdW5jdGlvbmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGZ1bmN0aW9uIG5hbWUgd2l0aCBhIGZ1bmN0aW9uIHZlcnNpb24gb3IgYWxpYXMgbmFtZSBzdWZmaXggdGhhdCBpcyBub3QgYGAkTEFURVNUYGAuIEV4YW1wbGU6IGBgZnVuY3Rpb246bXktZnVuY3Rpb246cHJvZGBgIG9yIGBgZnVuY3Rpb246bXktZnVuY3Rpb246MWBgLlxuICogICArICBBbWF6b24gS2V5c3BhY2VzIHRhYmxlIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB0YWJsZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHRhYmxlIG5hbWUuIEV4YW1wbGU6IGBga2V5c3BhY2UvbXlrZXlzcGFjZS90YWJsZS9teXRhYmxlYGAuXG4gKiAgICsgIEFtYXpvbiBNU0sgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGFuZCB1bmlxdWUgaWRlbnRpZmllciBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBjbHVzdGVyIEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmthZmthOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2x1c3Rlci9kZW1vLWNsdXN0ZXItMS82MzU3ZTBiMi0wZTZhLTRiODYtYTBiNC03MGRmOTM0YzJlMzEtNWBgLlxuICogICArICBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHJlcGxpY2F0aW9uLWdyb3VwYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVwbGljYXRpb24gZ3JvdXAgbmFtZS4gRXhhbXBsZTogYGByZXBsaWNhdGlvbi1ncm91cC9teWNsdXN0ZXJgYC5cbiAqICAgKyAgQW1hem9uIEVsYXN0aUNhY2hlIGNhY2hlIGNsdXN0ZXIgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGNhY2hlLWNsdXN0ZXJgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBjYWNoZSBjbHVzdGVyIG5hbWUuIEV4YW1wbGU6IGBgY2FjaGUtY2x1c3Rlci9teWNsdXN0ZXJgYC5cbiAqICAgKyAgTmVwdHVuZSBjbHVzdGVyIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBjbHVzdGVyYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgY2x1c3RlciBuYW1lLiBFeGFtcGxlOiBgYGNsdXN0ZXI6bXljbHVzdGVyYGAuXG4gKiAgICsgIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB2YXJpYW50YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVzb3VyY2UgSUQuIEV4YW1wbGU6IGBgZW5kcG9pbnQvbXktZW5kLXBvaW50L3ZhcmlhbnQvS01lYW5zQ2x1c3RlcmluZ2BgLlxuICogICArICBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5mZXJlbmNlLWNvbXBvbmVudGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHJlc291cmNlIElELiBFeGFtcGxlOiBgYGluZmVyZW5jZS1jb21wb25lbnQvbXktaW5mZXJlbmNlLWNvbXBvbmVudGBgLlxuICogICArICBQb29sIG9mIFdvcmtTcGFjZXMgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHdvcmtzcGFjZXNwb29sYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcG9vbCBJRC4gRXhhbXBsZTogYGB3b3Jrc3BhY2VzcG9vbC93c3Bvb2wtMTIzNDU2YGAuXG4gKi9cblJlc291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBJRCBvZiBhbiBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgc2NhbGFibGUgdGFyZ2V0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSUQsIHNlZSB0aGUgUmV0dXJuIFZhbHVlIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldGBgIHJlc291cmNlLlxuICogICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTY2FsaW5nVGFyZ2V0SWRgYCBwcm9wZXJ0eSwgb3IgdGhlIGBgUmVzb3VyY2VJZGBgLCBgYFNjYWxhYmxlRGltZW5zaW9uYGAsIGFuZCBgYFNlcnZpY2VOYW1lc3BhY2VgYCBwcm9wZXJ0aWVzLCBidXQgbm90IGJvdGguXG4gKi9cblNjYWxpbmdUYXJnZXRJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgc2NhbGluZyBwb2xpY3kuXG4gKiAgVXBkYXRlcyB0byB0aGUgbmFtZSBvZiBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBhcmUgbm90IHN1cHBvcnRlZCwgdW5sZXNzIHlvdSBhbHNvIHVwZGF0ZSB0aGUgbWV0cmljIHVzZWQgZm9yIHNjYWxpbmcuIFRvIGNoYW5nZSBvbmx5IGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5J3MgbmFtZSwgZmlyc3QgZGVsZXRlIHRoZSBwb2xpY3kgYnkgcmVtb3ZpbmcgdGhlIGV4aXN0aW5nIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZnJvbSB0aGUgdGVtcGxhdGUgYW5kIHVwZGF0aW5nIHRoZSBzdGFjay4gVGhlbiwgcmVjcmVhdGUgdGhlIHJlc291cmNlIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYW5kIGEgZGlmZmVyZW50IG5hbWUuXG4gKi9cblBvbGljeU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBBV1Mgc2VydmljZSB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZSwgb3IgYSBgYGN1c3RvbS1yZXNvdXJjZWBgLlxuICovXG5TZXJ2aWNlTmFtZXNwYWNlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24uIFRoaXMgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBzZXJ2aWNlIG5hbWVzcGFjZSwgcmVzb3VyY2UgdHlwZSwgYW5kIHNjYWxpbmcgcHJvcGVydHkuXG4gKiAgICsgIGBgZWNzOnNlcnZpY2U6RGVzaXJlZENvdW50YGAgLSBUaGUgdGFzayBjb3VudCBvZiBhbiBFQ1Mgc2VydmljZS5cbiAqICAgKyAgYGBlbGFzdGljbWFwcmVkdWNlOmluc3RhbmNlZ3JvdXA6SW5zdGFuY2VDb3VudGBgIC0gVGhlIGluc3RhbmNlIGNvdW50IG9mIGFuIEVNUiBJbnN0YW5jZSBHcm91cC5cbiAqICAgKyAgYGBlYzI6c3BvdC1mbGVldC1yZXF1ZXN0OlRhcmdldENhcGFjaXR5YGAgLSBUaGUgdGFyZ2V0IGNhcGFjaXR5IG9mIGEgU3BvdCBGbGVldC5cbiAqICAgKyAgYGBhcHBzdHJlYW06ZmxlZXQ6RGVzaXJlZENhcGFjaXR5YGAgLSBUaGUgY2FwYWNpdHkgb2YgYW4gQXBwU3RyZWFtIDIuMCBmbGVldC5cbiAqICAgKyAgYGBkeW5hbW9kYjp0YWJsZTpSZWFkQ2FwYWNpdHlVbml0c2BgIC0gVGhlIHByb3Zpc2lvbmVkIHJlYWQgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgIGBgZHluYW1vZGI6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgIGBgZHluYW1vZGI6aW5kZXg6UmVhZENhcGFjaXR5VW5pdHNgYCAtIFRoZSBwcm92aXNpb25lZCByZWFkIGNhcGFjaXR5IGZvciBhIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguXG4gKiAgICsgIGBgZHluYW1vZGI6aW5kZXg6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC5cbiAqICAgKyAgYGByZHM6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgQXVyb3JhIFJlcGxpY2FzIGluIGFuIEF1cm9yYSBEQiBjbHVzdGVyLiBBdmFpbGFibGUgZm9yIEF1cm9yYSBNeVNRTC1jb21wYXRpYmxlIGVkaXRpb24gYW5kIEF1cm9yYSBQb3N0Z3JlU1FMLWNvbXBhdGlibGUgZWRpdGlvbi5cbiAqICAgKyAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkSW5zdGFuY2VDb3VudGBgIC0gVGhlIG51bWJlciBvZiBFQzIgaW5zdGFuY2VzIGZvciBhIFNhZ2VNYWtlciBtb2RlbCBlbmRwb2ludCB2YXJpYW50LlxuICogICArICBgYGN1c3RvbS1yZXNvdXJjZTpSZXNvdXJjZVR5cGU6UHJvcGVydHlgYCAtIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24gZm9yIGEgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVkIGJ5IHlvdXIgb3duIGFwcGxpY2F0aW9uIG9yIHNlcnZpY2UuXG4gKiAgICsgIGBgY29tcHJlaGVuZDpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50LlxuICogICArICBgYGNvbXByZWhlbmQ6ZW50aXR5LXJlY29nbml6ZXItZW5kcG9pbnQ6RGVzaXJlZEluZmVyZW5jZVVuaXRzYGAgLSBUaGUgbnVtYmVyIG9mIGluZmVyZW5jZSB1bml0cyBmb3IgYW4gQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQuXG4gKiAgICsgIGBgbGFtYmRhOmZ1bmN0aW9uOlByb3Zpc2lvbmVkQ29uY3VycmVuY3lgYCAtIFRoZSBwcm92aXNpb25lZCBjb25jdXJyZW5jeSBmb3IgYSBMYW1iZGEgZnVuY3Rpb24uXG4gKiAgICsgIGBgY2Fzc2FuZHJhOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYW4gQW1hem9uIEtleXNwYWNlcyB0YWJsZS5cbiAqICAgKyAgYGBjYXNzYW5kcmE6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGFuIEFtYXpvbiBLZXlzcGFjZXMgdGFibGUuXG4gKiAgICsgIGBga2Fma2E6YnJva2VyLXN0b3JhZ2U6Vm9sdW1lU2l6ZWBgIC0gVGhlIHByb3Zpc2lvbmVkIHZvbHVtZSBzaXplIChpbiBHaUIpIGZvciBicm9rZXJzIGluIGFuIEFtYXpvbiBNU0sgY2x1c3Rlci5cbiAqICAgKyAgYGBlbGFzdGljYWNoZTpjYWNoZS1jbHVzdGVyOk5vZGVzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGVzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgY2FjaGUgY2x1c3Rlci5cbiAqICAgKyAgYGBlbGFzdGljYWNoZTpyZXBsaWNhdGlvbi1ncm91cDpOb2RlR3JvdXBzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGUgZ3JvdXBzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgIGBgZWxhc3RpY2FjaGU6cmVwbGljYXRpb24tZ3JvdXA6UmVwbGljYXNgYCAtIFRoZSBudW1iZXIgb2YgcmVwbGljYXMgcGVyIG5vZGUgZ3JvdXAgZm9yIGFuIEFtYXpvbiBFbGFzdGlDYWNoZSByZXBsaWNhdGlvbiBncm91cC5cbiAqICAgKyAgYGBuZXB0dW5lOmNsdXN0ZXI6UmVhZFJlcGxpY2FDb3VudGBgIC0gVGhlIGNvdW50IG9mIHJlYWQgcmVwbGljYXMgaW4gYW4gQW1hem9uIE5lcHR1bmUgREIgY2x1c3Rlci5cbiAqICAgKyAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkUHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50LlxuICogICArICBgYHNhZ2VtYWtlcjppbmZlcmVuY2UtY29tcG9uZW50OkRlc2lyZWRDb3B5Q291bnRgYCAtIFRoZSBudW1iZXIgb2YgY29waWVzIGFjcm9zcyBhbiBlbmRwb2ludCBmb3IgYSBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudC5cbiAqICAgKyAgYGB3b3Jrc3BhY2VzOndvcmtzcGFjZXNwb29sOkRlc2lyZWRVc2VyU2Vzc2lvbnNgYCAtIFRoZSBudW1iZXIgb2YgdXNlciBzZXNzaW9ucyBmb3IgdGhlIFdvcmtTcGFjZXMgaW4gdGhlIHBvb2wuXG4gKi9cblNjYWxhYmxlRGltZW5zaW9uPzogc3RyaW5nXG5UYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uPzogVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxuQXJuPzogc3RyaW5nXG5TdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24/OiBTdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cblByZWRpY3RpdmVTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxufVxuLyoqXG4gKiBBIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0byB3YWl0IGZvciBhIHByZXZpb3VzIHNjYWxlLW91dCBhY3Rpdml0eSB0byB0YWtlIGVmZmVjdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGZvciBkZWZhdWx0IHZhbHVlcywgc2VlIFtEZWZpbmUgY29vbGRvd24gcGVyaW9kc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS90YXJnZXQtdHJhY2tpbmctc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCN0YXJnZXQtdHJhY2tpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5TY2FsZU91dENvb2xkb3duPzogbnVtYmVyXG4vKipcbiAqIFRoZSB0YXJnZXQgdmFsdWUgZm9yIHRoZSBtZXRyaWMuIEFsdGhvdWdoIHRoaXMgcHJvcGVydHkgYWNjZXB0cyBudW1iZXJzIG9mIHR5cGUgRG91YmxlLCBpdCB3b24ndCBhY2NlcHQgdmFsdWVzIHRoYXQgYXJlIGVpdGhlciB0b28gc21hbGwgb3IgdG9vIGxhcmdlLiBWYWx1ZXMgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgLTJeMzYwIHRvIDJeMzYwLiBUaGUgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIG51bWJlciBiYXNlZCBvbiB0aGUgY2hvaWNlIG9mIG1ldHJpYy4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtZXRyaWMgaXMgQ1BVIHV0aWxpemF0aW9uLCB0aGVuIHRoZSB0YXJnZXQgdmFsdWUgaXMgYSBwZXJjZW50IHZhbHVlIHRoYXQgcmVwcmVzZW50cyBob3cgbXVjaCBvZiB0aGUgQ1BVIGNhbiBiZSB1c2VkIGJlZm9yZSBzY2FsaW5nIG91dC5cbiAqL1xuVGFyZ2V0VmFsdWU6IG51bWJlclxuQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb24/OiBDdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvblxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBzY2FsZSBpbiBieSB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGlzIGRpc2FibGVkLiBJZiB0aGUgdmFsdWUgaXMgYGB0cnVlYGAsIHNjYWxlIGluIGlzIGRpc2FibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IHdvbid0IHJlbW92ZSBjYXBhY2l0eSBmcm9tIHRoZSBzY2FsYWJsZSB0YXJnZXQuIE90aGVyd2lzZSwgc2NhbGUgaW4gaXMgZW5hYmxlZCBhbmQgdGhlIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBjYW4gcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlIHNjYWxhYmxlIHRhcmdldC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGBmYWxzZWBgLlxuICovXG5EaXNhYmxlU2NhbGVJbj86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCBhZnRlciBhIHNjYWxlLWluIGFjdGl2aXR5IGNvbXBsZXRlcyBiZWZvcmUgYW5vdGhlciBzY2FsZS1pbiBhY3Rpdml0eSBjYW4gc3RhcnQuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBmb3IgZGVmYXVsdCB2YWx1ZXMsIHNlZSBbRGVmaW5lIGNvb2xkb3duIHBlcmlvZHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvdGFyZ2V0LXRyYWNraW5nLXNjYWxpbmctcG9saWN5LW92ZXJ2aWV3Lmh0bWwjdGFyZ2V0LXRyYWNraW5nLWNvb2xkb3duKSBpbiB0aGUgKkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBVc2VyIEd1aWRlKi5cbiAqL1xuU2NhbGVJbkNvb2xkb3duPzogbnVtYmVyXG5QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIEEgY3VzdG9taXplZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0J3MgcmV0dXJuZWQgYnkgYSBjYWxsIHRvIFtMaXN0TWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdE1ldHJpY3MuaHRtbCkuXG4gKi9cbk1ldHJpY05hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1ldHJpY3MgdG8gaW5jbHVkZSBpbiB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5LCBhcyBhIG1ldHJpYyBkYXRhIHF1ZXJ5LiBUaGlzIGNhbiBpbmNsdWRlIGJvdGggcmF3IG1ldHJpYyBhbmQgbWV0cmljIG1hdGggZXhwcmVzc2lvbnMuXG4gKi9cbk1ldHJpY3M/OiBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeVtdXG4vKipcbiAqIFRoZSBzdGF0aXN0aWMgb2YgdGhlIG1ldHJpYy5cbiAqL1xuU3RhdGlzdGljPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkaW1lbnNpb25zIG9mIHRoZSBtZXRyaWMuIFxuICogIENvbmRpdGlvbmFsOiBJZiB5b3UgcHVibGlzaGVkIHlvdXIgbWV0cmljIHdpdGggZGltZW5zaW9ucywgeW91IG11c3Qgc3BlY2lmeSB0aGUgc2FtZSBkaW1lbnNpb25zIGluIHlvdXIgc2NhbGluZyBwb2xpY3kuXG4gKi9cbkRpbWVuc2lvbnM/OiBNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgdW5pdCBvZiB0aGUgbWV0cmljLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHRoZSB1bml0cyB0aGF0IENsb3VkV2F0Y2ggc3VwcG9ydHMsIHNlZSB0aGUgW01ldHJpY0RhdHVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWNEYXR1bS5odG1sKSBkYXRhIHR5cGUgaW4gdGhlICpBbWF6b24gQ2xvdWRXYXRjaCBBUEkgUmVmZXJlbmNlKi5cbiAqL1xuVW5pdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLiBBbHNvIGRlZmluZXMgd2hldGhlciB0aGlzIGNhbGwgaXMgcmV0dXJuaW5nIGRhdGEgZm9yIG9uZSBtZXRyaWMgb25seSwgb3Igd2hldGhlciBpdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uIG9uIHRoZSB2YWx1ZXMgb2YgcmV0dXJuZWQgbWV0cmljIHN0YXRpc3RpY3MgdG8gY3JlYXRlIGEgbmV3IHRpbWUgc2VyaWVzLiBBIHRpbWUgc2VyaWVzIGlzIGEgc2VyaWVzIG9mIGRhdGEgcG9pbnRzLCBlYWNoIG9mIHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHRpbWVzdGFtcC5cbiAqICBZb3UgY2FuIGNhbGwgZm9yIGEgc2luZ2xlIG1ldHJpYyBvciBwZXJmb3JtIG1hdGggZXhwcmVzc2lvbnMgb24gbXVsdGlwbGUgbWV0cmljcy4gQW55IGV4cHJlc3Npb25zIHVzZWQgaW4gYSBtZXRyaWMgc3BlY2lmaWNhdGlvbiBtdXN0IGV2ZW50dWFsbHkgcmV0dXJuIGEgc2luZ2xlIHRpbWUgc2VyaWVzLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBleGFtcGxlcywgc2VlIFtDcmVhdGUgYSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgZm9yIEFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyB1c2luZyBtZXRyaWMgbWF0aF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctdGFyZ2V0LXRyYWNraW5nLW1ldHJpYy1tYXRoLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICogIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBpcyBhIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktY3VzdG9taXplZG1ldHJpY3NwZWNpZmljYXRpb24uaHRtbCkgcHJvcGVydHkgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLiBcbiAqICBJZiB5b3UgdXNlIGFueSBtYXRoIGV4cHJlc3Npb25zLCBzcGVjaWZ5IGBgdHJ1ZWBgIGZvciB0aGlzIHZhbHVlIGZvciBvbmx5IHRoZSBmaW5hbCBtYXRoIGV4cHJlc3Npb24gdGhhdCB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24gaXMgYmFzZWQgb24uIFlvdSBtdXN0IHNwZWNpZnkgYGBmYWxzZWBgIGZvciBgYFJldHVybkRhdGFgYCBmb3IgYWxsIHRoZSBvdGhlciBtZXRyaWNzIGFuZCBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqICBJZiB5b3UgYXJlIG9ubHkgcmV0cmlldmluZyBtZXRyaWNzIGFuZCBub3QgcGVyZm9ybWluZyBhbnkgbWF0aCBleHByZXNzaW9ucywgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgZm9yIGBgUmV0dXJuRGF0YWBgLiBUaGlzIHNldHMgaXQgdG8gaXRzIGRlZmF1bHQgKGBgdHJ1ZWBgKS5cbiAqL1xuUmV0dXJuRGF0YT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1hdGggZXhwcmVzc2lvbiB0byBwZXJmb3JtIG9uIHRoZSByZXR1cm5lZCBkYXRhLCBpZiB0aGlzIG9iamVjdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uLiBUaGlzIGV4cHJlc3Npb24gY2FuIHVzZSB0aGUgYGBJZGBgIG9mIHRoZSBvdGhlciBtZXRyaWNzIHRvIHJlZmVyIHRvIHRob3NlIG1ldHJpY3MsIGFuZCBjYW4gYWxzbyB1c2UgdGhlIGBgSWRgYCBvZiBvdGhlciBleHByZXNzaW9ucyB0byB1c2UgdGhlIHJlc3VsdCBvZiB0aG9zZSBleHByZXNzaW9ucy4gXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbkV4cHJlc3Npb24/OiBzdHJpbmdcbi8qKlxuICogQSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhpcyBtZXRyaWMgb3IgZXhwcmVzc2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB0aGlzIGlzIGEgbWF0aCBleHByZXNzaW9uLCBzbyB0aGF0IHlvdSBrbm93IHdoYXQgdGhlIHZhbHVlIHJlcHJlc2VudHMuXG4gKi9cbkxhYmVsPzogc3RyaW5nXG5NZXRyaWNTdGF0PzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0XG4vKipcbiAqIEEgc2hvcnQgbmFtZSB0aGF0IGlkZW50aWZpZXMgdGhlIG9iamVjdCdzIHJlc3VsdHMgaW4gdGhlIHJlc3BvbnNlLiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0cyBzcGVjaWZpZWQgZm9yIGEgc2luZ2xlIHNjYWxpbmcgcG9saWN5LiBJZiB5b3UgYXJlIHBlcmZvcm1pbmcgbWF0aCBleHByZXNzaW9ucyBvbiB0aGlzIHNldCBvZiBkYXRhLCB0aGlzIG5hbWUgcmVwcmVzZW50cyB0aGF0IGRhdGEgYW5kIGNhbiBzZXJ2ZSBhcyBhIHZhcmlhYmxlIGluIHRoZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbi4gVGhlIHZhbGlkIGNoYXJhY3RlcnMgYXJlIGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlcy4gVGhlIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbG93ZXJjYXNlIGxldHRlci5cbiAqL1xuSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG1ldHJpYyBkYXRhIHRvIHJldHVybi5cbiAqICBDb25kaXRpb25hbDogV2l0aGluIGVhY2ggYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0IHtcbi8qKlxuICogVGhlIHN0YXRpc3RpYyB0byByZXR1cm4uIEl0IGNhbiBpbmNsdWRlIGFueSBDbG91ZFdhdGNoIHN0YXRpc3RpYyBvciBleHRlbmRlZCBzdGF0aXN0aWMuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCBzZWUgdGhlIHRhYmxlIGluIFtTdGF0aXN0aWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2NvbmNlcHRzLmh0bWwjU3RhdGlzdGljKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLlxuICogIFRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0cmljIGZvciBzY2FsaW5nIGlzIGBgQXZlcmFnZWBgLlxuICovXG5TdGF0Pzogc3RyaW5nXG5NZXRyaWM/OiBUYXJnZXRUcmFja2luZ01ldHJpY1xuLyoqXG4gKiBUaGUgdW5pdCB0byB1c2UgZm9yIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy4gRm9yIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgdW5pdHMgdGhhdCBDbG91ZFdhdGNoIHN1cHBvcnRzLCBzZWUgdGhlIFtNZXRyaWNEYXR1bV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljRGF0dW0uaHRtbCkgZGF0YSB0eXBlIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggQVBJIFJlZmVyZW5jZSouXG4gKi9cblVuaXQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIHRvIHJldHVybiwgaW5jbHVkaW5nIHRoZSBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0IGlzIHJldHVybmVkIGJ5IGEgY2FsbCB0byBbTGlzdE1ldHJpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZXRyaWNzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpYy4gRm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBkaW1lbnNpb25zLCBzZWUgdGhlIEFXUyBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSBmcm9tIHRoZSB0YWJsZSBpbiBbc2VydmljZXMgdGhhdCBwdWJsaXNoIENsb3VkV2F0Y2ggbWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvYXdzLXNlcnZpY2VzLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLiBcbiAqICBDb25kaXRpb25hbDogSWYgeW91IHB1Ymxpc2hlZCB5b3VyIG1ldHJpYyB3aXRoIGRpbWVuc2lvbnMsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgZGltZW5zaW9ucyBpbiB5b3VyIHNjYWxpbmcgcG9saWN5LlxuICovXG5EaW1lbnNpb25zPzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIHRhYmxlIGluIFtzZXJ2aWNlcyB0aGF0IHB1Ymxpc2ggQ2xvdWRXYXRjaCBtZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9hd3Mtc2VydmljZXMtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWwpIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZSouXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBgYFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uYGAgc3BlY2lmaWVzIGEgbmFtZS92YWx1ZSBwYWlyIHRoYXQgaXMgcGFydCBvZiB0aGUgaWRlbnRpdHkgb2YgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdGhlIGBgRGltZW5zaW9uc2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFRhcmdldFRyYWNraW5nTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktdGFyZ2V0dHJhY2tpbmdtZXRyaWMuaHRtbCkgcHJvcGVydHkgdHlwZS4gRHVwbGljYXRlIGRpbWVuc2lvbnMgYXJlIG5vdCBhbGxvd2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBNZXRyaWNEaW1lbnNpb25gYCBzcGVjaWZpZXMgYSBuYW1lL3ZhbHVlIHBhaXIgdGhhdCBpcyBwYXJ0IG9mIHRoZSBpZGVudGl0eSBvZiBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0aGUgYGBEaW1lbnNpb25zYGAgcHJvcGVydHkgb2YgdGhlIFtBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3kgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS1jdXN0b21pemVkbWV0cmljc3BlY2lmaWNhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBEdXBsaWNhdGUgZGltZW5zaW9ucyBhcmUgbm90IGFsbG93ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRpbWVuc2lvbi5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIEEgcHJlZGVmaW5lZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG1ldHJpYyB0eXBlLiBUaGUgYGBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXRgYCBtZXRyaWMgdHlwZSBhcHBsaWVzIG9ubHkgdG8gU3BvdCBmbGVldCByZXF1ZXN0cyBhbmQgRUNTIHNlcnZpY2VzLlxuICovXG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG4vKipcbiAqIElkZW50aWZpZXMgdGhlIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWV0cmljIHR5cGUuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcmVzb3VyY2UgbGFiZWwgdW5sZXNzIHRoZSBtZXRyaWMgdHlwZSBpcyBgYEFMQlJlcXVlc3RDb3VudFBlclRhcmdldGBgIGFuZCB0aGVyZSBpcyBhIHRhcmdldCBncm91cCBhdHRhY2hlZCB0byB0aGUgU3BvdCBGbGVldCBvciBFQ1Mgc2VydmljZS5cbiAqICBZb3UgY3JlYXRlIHRoZSByZXNvdXJjZSBsYWJlbCBieSBhcHBlbmRpbmcgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIGxvYWQgYmFsYW5jZXIgQVJOIGFuZCB0aGUgZmluYWwgcG9ydGlvbiBvZiB0aGUgdGFyZ2V0IGdyb3VwIEFSTiBpbnRvIGEgc2luZ2xlIHZhbHVlLCBzZXBhcmF0ZWQgYnkgYSBmb3J3YXJkIHNsYXNoICgvKS4gVGhlIGZvcm1hdCBvZiB0aGUgcmVzb3VyY2UgbGFiZWwgaXM6XG4gKiAgYGBhcHAvbXktYWxiLzc3OGQ0MTIzMWIxNDFhMGYvdGFyZ2V0Z3JvdXAvbXktYWxiLXRhcmdldC1ncm91cC85NDNmMDE3ZjEwMGJlY2ZmYGAuXG4gKiAgV2hlcmU6XG4gKiAgICsgIGFwcC88bG9hZC1iYWxhbmNlci1uYW1lPi88bG9hZC1iYWxhbmNlci1pZD4gaXMgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIGxvYWQgYmFsYW5jZXIgQVJOXG4gKiAgICsgIHRhcmdldGdyb3VwLzx0YXJnZXQtZ3JvdXAtbmFtZT4vPHRhcmdldC1ncm91cC1pZD4gaXMgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIHRhcmdldCBncm91cCBBUk4uXG4gKiAgIFxuICogIFRvIGZpbmQgdGhlIEFSTiBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciwgdXNlIHRoZSBbRGVzY3JpYmVMb2FkQmFsYW5jZXJzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVMb2FkQmFsYW5jZXJzLmh0bWwpIEFQSSBvcGVyYXRpb24uIFRvIGZpbmQgdGhlIEFSTiBmb3IgdGhlIHRhcmdldCBncm91cCwgdXNlIHRoZSBbRGVzY3JpYmVUYXJnZXRHcm91cHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVRhcmdldEdyb3Vwcy5odG1sKSBBUEkgb3BlcmF0aW9uLlxuICovXG5SZXNvdXJjZUxhYmVsPzogc3RyaW5nXG59XG4vKipcbiAqIEEgc3RlcCBzY2FsaW5nIHBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgYWdncmVnYXRpb24gdHlwZSBmb3IgdGhlIENsb3VkV2F0Y2ggbWV0cmljcy4gVmFsaWQgdmFsdWVzIGFyZSBgYE1pbmltdW1gYCwgYGBNYXhpbXVtYGAsIGFuZCBgYEF2ZXJhZ2VgYC4gSWYgdGhlIGFnZ3JlZ2F0aW9uIHR5cGUgaXMgbnVsbCwgdGhlIHZhbHVlIGlzIHRyZWF0ZWQgYXMgYGBBdmVyYWdlYGAuXG4gKi9cbk1ldHJpY0FnZ3JlZ2F0aW9uVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRvIHdhaXQgZm9yIGEgcHJldmlvdXMgc2NhbGluZyBhY3Rpdml0eSB0byB0YWtlIGVmZmVjdC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgMzAwLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb29sZG93biBwZXJpb2RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvc3RlcC1zY2FsaW5nLXBvbGljeS1vdmVydmlldy5odG1sI3N0ZXAtc2NhbGluZy1jb29sZG93bikgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKi9cbkNvb2xkb3duPzogbnVtYmVyXG4vKipcbiAqIEEgc2V0IG9mIGFkanVzdG1lbnRzIHRoYXQgZW5hYmxlIHlvdSB0byBzY2FsZSBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGUgYWxhcm0gYnJlYWNoLlxuICogIEF0IGxlYXN0IG9uZSBzdGVwIGFkanVzdG1lbnQgaXMgcmVxdWlyZWQgaWYgeW91IGFyZSBhZGRpbmcgYSBuZXcgc3RlcCBzY2FsaW5nIHBvbGljeSBjb25maWd1cmF0aW9uLlxuICovXG5TdGVwQWRqdXN0bWVudHM/OiBTdGVwQWRqdXN0bWVudFtdXG4vKipcbiAqIFRoZSBtaW5pbXVtIHZhbHVlIHRvIHNjYWxlIGJ5IHdoZW4gdGhlIGFkanVzdG1lbnQgdHlwZSBpcyBgYFBlcmNlbnRDaGFuZ2VJbkNhcGFjaXR5YGAuIEZvciBleGFtcGxlLCBzdXBwb3NlIHRoYXQgeW91IGNyZWF0ZSBhIHN0ZXAgc2NhbGluZyBwb2xpY3kgdG8gc2NhbGUgb3V0IGFuIEFtYXpvbiBFQ1Mgc2VydmljZSBieSAyNSBwZXJjZW50IGFuZCB5b3Ugc3BlY2lmeSBhIGBgTWluQWRqdXN0bWVudE1hZ25pdHVkZWBgIG9mIDIuIElmIHRoZSBzZXJ2aWNlIGhhcyA0IHRhc2tzIGFuZCB0aGUgc2NhbGluZyBwb2xpY3kgaXMgcGVyZm9ybWVkLCAyNSBwZXJjZW50IG9mIDQgaXMgMS4gSG93ZXZlciwgYmVjYXVzZSB5b3Ugc3BlY2lmaWVkIGEgYGBNaW5BZGp1c3RtZW50TWFnbml0dWRlYGAgb2YgMiwgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHNjYWxlcyBvdXQgdGhlIHNlcnZpY2UgYnkgMiB0YXNrcy5cbiAqL1xuTWluQWRqdXN0bWVudE1hZ25pdHVkZT86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgYGBTY2FsaW5nQWRqdXN0bWVudGBgIHZhbHVlIGluIHRoZSBgYFN0ZXBBZGp1c3RtZW50YGAgcHJvcGVydHkgaXMgYW4gYWJzb2x1dGUgbnVtYmVyIG9yIGEgcGVyY2VudGFnZSBvZiB0aGUgY3VycmVudCBjYXBhY2l0eS5cbiAqL1xuQWRqdXN0bWVudFR5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBTdGVwQWRqdXN0bWVudGBgIHNwZWNpZmllcyBhIHN0ZXAgYWRqdXN0bWVudCBmb3IgdGhlIGBgU3RlcEFkanVzdG1lbnRzYGAgcHJvcGVydHkgb2YgdGhlIFtBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3kgU3RlcFNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktc3RlcHNjYWxpbmdwb2xpY3ljb25maWd1cmF0aW9uLmh0bWwpIHByb3BlcnR5IHR5cGUuIFxuICogIEZvciB0aGUgZm9sbG93aW5nIGV4YW1wbGVzLCBzdXBwb3NlIHRoYXQgeW91IGhhdmUgYW4gYWxhcm0gd2l0aCBhIGJyZWFjaCB0aHJlc2hvbGQgb2YgNTA6IFxuICogICArICBUbyB0cmlnZ2VyIGEgc3RlcCBhZGp1c3RtZW50IHdoZW4gdGhlIG1ldHJpYyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gNTAgYW5kIGxlc3MgdGhhbiA2MCwgc3BlY2lmeSBhIGxvd2VyIGJvdW5kIG9mIDAgYW5kIGFuIHVwcGVyIGJvdW5kIG9mIDEwLiBcbiAqICAgKyAgVG8gdHJpZ2dlciBhIHN0ZXAgYWRqdXN0bWVudCB3aGVuIHRoZSBtZXRyaWMgaXMgZ3JlYXRlciB0aGFuIDQwIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTAsIHNwZWNpZnkgYSBsb3dlciBib3VuZCBvZiAtMTAgYW5kIGFuIHVwcGVyIGJvdW5kIG9mIDAuIFxuICogICBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTdGVwIGFkanVzdG1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL2FwcGxpY2F0aW9uLWF1dG8tc2NhbGluZy1zdGVwLXNjYWxpbmctcG9saWNpZXMuaHRtbCNhcy1zY2FsaW5nLXN0ZXBzKSBpbiB0aGUgKkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBVc2VyIEd1aWRlKi5cbiAqICBZb3UgY2FuIGZpbmQgYSBzYW1wbGUgdGVtcGxhdGUgc25pcHBldCBpbiB0aGUgW0V4YW1wbGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5Lmh0bWwjYXdzLXJlc291cmNlLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS0tZXhhbXBsZXMpIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgZG9jdW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwQWRqdXN0bWVudCB7XG4vKipcbiAqIFRoZSB1cHBlciBib3VuZCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYWxhcm0gdGhyZXNob2xkIGFuZCB0aGUgQ2xvdWRXYXRjaCBtZXRyaWMuIElmIHRoZSBtZXRyaWMgdmFsdWUgaXMgYWJvdmUgdGhlIGJyZWFjaCB0aHJlc2hvbGQsIHRoZSB1cHBlciBib3VuZCBpcyBleGNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBsZXNzIHRoYW4gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSB1cHBlciBib3VuZCkuIE90aGVyd2lzZSwgaXQgaXMgaW5jbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgdXBwZXIgYm91bmQpLiBBIG51bGwgdmFsdWUgaW5kaWNhdGVzIHBvc2l0aXZlIGluZmluaXR5LlxuICogIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHVwcGVyIG9yIGxvd2VyIGJvdW5kLlxuICovXG5NZXRyaWNJbnRlcnZhbFVwcGVyQm91bmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGxvd2VyIGJvdW5kIGZvciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBhbGFybSB0aHJlc2hvbGQgYW5kIHRoZSBDbG91ZFdhdGNoIG1ldHJpYy4gSWYgdGhlIG1ldHJpYyB2YWx1ZSBpcyBhYm92ZSB0aGUgYnJlYWNoIHRocmVzaG9sZCwgdGhlIGxvd2VyIGJvdW5kIGlzIGluY2x1c2l2ZSAodGhlIG1ldHJpYyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdGhyZXNob2xkIHBsdXMgdGhlIGxvd2VyIGJvdW5kKS4gT3RoZXJ3aXNlLCBpdCBpcyBleGNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBncmVhdGVyIHRoYW4gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSBsb3dlciBib3VuZCkuIEEgbnVsbCB2YWx1ZSBpbmRpY2F0ZXMgbmVnYXRpdmUgaW5maW5pdHkuXG4gKiAgWW91IG11c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgdXBwZXIgb3IgbG93ZXIgYm91bmQuXG4gKi9cbk1ldHJpY0ludGVydmFsTG93ZXJCb3VuZD86IG51bWJlclxuLyoqXG4gKiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRvIHNjYWxlLiBUaGUgYWRqdXN0bWVudCBpcyBiYXNlZCBvbiB0aGUgdmFsdWUgdGhhdCB5b3Ugc3BlY2lmaWVkIGluIHRoZSBgYEFkanVzdG1lbnRUeXBlYGAgcHJvcGVydHkgKGVpdGhlciBhbiBhYnNvbHV0ZSBudW1iZXIgb3IgYSBwZXJjZW50YWdlKS4gQSBwb3NpdGl2ZSB2YWx1ZSBhZGRzIHRvIHRoZSBjdXJyZW50IGNhcGFjaXR5IGFuZCBhIG5lZ2F0aXZlIG51bWJlciBzdWJ0cmFjdHMgZnJvbSB0aGUgY3VycmVudCBjYXBhY2l0eS5cbiAqL1xuU2NhbGluZ0FkanVzdG1lbnQ6IG51bWJlclxufVxuLyoqXG4gKiBUaGUgcHJlZGljdGl2ZSBzY2FsaW5nIHBvbGljeSBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbiB7XG4vKipcbiAqIERlZmluZXMgdGhlIGJlaGF2aW9yIHRoYXQgc2hvdWxkIGJlIGFwcGxpZWQgaWYgdGhlIGZvcmVjYXN0IGNhcGFjaXR5IGFwcHJvYWNoZXMgb3IgZXhjZWVkcyB0aGUgbWF4aW11bSBjYXBhY2l0eS4gRGVmYXVsdHMgdG8gYGBIb25vck1heENhcGFjaXR5YGAgaWYgbm90IHNwZWNpZmllZC5cbiAqL1xuTWF4Q2FwYWNpdHlCcmVhY2hCZWhhdmlvcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgc2l6ZSBvZiB0aGUgY2FwYWNpdHkgYnVmZmVyIHRvIHVzZSB3aGVuIHRoZSBmb3JlY2FzdCBjYXBhY2l0eSBpcyBjbG9zZSB0byBvciBleGNlZWRzIHRoZSBtYXhpbXVtIGNhcGFjaXR5LiBUaGUgdmFsdWUgaXMgc3BlY2lmaWVkIGFzIGEgcGVyY2VudGFnZSByZWxhdGl2ZSB0byB0aGUgZm9yZWNhc3QgY2FwYWNpdHkuIEZvciBleGFtcGxlLCBpZiB0aGUgYnVmZmVyIGlzIDEwLCB0aGlzIG1lYW5zIGEgMTAgcGVyY2VudCBidWZmZXIsIHN1Y2ggdGhhdCBpZiB0aGUgZm9yZWNhc3QgY2FwYWNpdHkgaXMgNTAsIGFuZCB0aGUgbWF4aW11bSBjYXBhY2l0eSBpcyA0MCwgdGhlbiB0aGUgZWZmZWN0aXZlIG1heGltdW0gY2FwYWNpdHkgaXMgNTUuIFxuICogIFJlcXVpcmVkIGlmIHRoZSBgYE1heENhcGFjaXR5QnJlYWNoQmVoYXZpb3JgYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYGBJbmNyZWFzZU1heENhcGFjaXR5YGAsIGFuZCBjYW5ub3QgYmUgdXNlZCBvdGhlcndpc2UuXG4gKi9cbk1heENhcGFjaXR5QnVmZmVyPzogbnVtYmVyXG4vKipcbiAqIFRoZSBwcmVkaWN0aXZlIHNjYWxpbmcgbW9kZS4gRGVmYXVsdHMgdG8gYGBGb3JlY2FzdE9ubHlgYCBpZiBub3Qgc3BlY2lmaWVkLlxuICovXG5Nb2RlPzogc3RyaW5nXG4vKipcbiAqIFRoaXMgc3RydWN0dXJlIGluY2x1ZGVzIHRoZSBtZXRyaWNzIGFuZCB0YXJnZXQgdXRpbGl6YXRpb24gdG8gdXNlIGZvciBwcmVkaWN0aXZlIHNjYWxpbmcuIFxuICogIFRoaXMgaXMgYW4gYXJyYXksIGJ1dCB3ZSBjdXJyZW50bHkgb25seSBzdXBwb3J0IGEgc2luZ2xlIG1ldHJpYyBzcGVjaWZpY2F0aW9uLiBUaGF0IGlzLCB5b3UgY2FuIHNwZWNpZnkgYSB0YXJnZXQgdmFsdWUgYW5kIGEgc2luZ2xlIG1ldHJpYyBwYWlyLCBvciBhIHRhcmdldCB2YWx1ZSBhbmQgb25lIHNjYWxpbmcgbWV0cmljIGFuZCBvbmUgbG9hZCBtZXRyaWMuXG4gKi9cbk1ldHJpY1NwZWNpZmljYXRpb25zOiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1NwZWNpZmljYXRpb25bXVxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRoYXQgdGhlIHN0YXJ0IHRpbWUgY2FuIGJlIGFkdmFuY2VkLiBcbiAqICBUaGUgdmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gdGhlIGZvcmVjYXN0IGludGVydmFsIGR1cmF0aW9uIG9mIDM2MDAgc2Vjb25kcyAoNjAgbWludXRlcykuIERlZmF1bHRzIHRvIDMwMCBzZWNvbmRzIGlmIG5vdCBzcGVjaWZpZWQuXG4gKi9cblNjaGVkdWxpbmdCdWZmZXJUaW1lPzogbnVtYmVyXG59XG4vKipcbiAqIFRoaXMgc3RydWN0dXJlIHNwZWNpZmllcyB0aGUgbWV0cmljcyBhbmQgdGFyZ2V0IHV0aWxpemF0aW9uIHNldHRpbmdzIGZvciBhIHByZWRpY3RpdmUgc2NhbGluZyBwb2xpY3kuIFxuICogIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGEgbWV0cmljIHBhaXIsIG9yIGEgbG9hZCBtZXRyaWMgYW5kIGEgc2NhbGluZyBtZXRyaWMgaW5kaXZpZHVhbGx5LiBTcGVjaWZ5aW5nIGEgbWV0cmljIHBhaXIgaW5zdGVhZCBvZiBpbmRpdmlkdWFsIG1ldHJpY3MgcHJvdmlkZXMgYSBzaW1wbGVyIHdheSB0byBjb25maWd1cmUgbWV0cmljcyBmb3IgYSBzY2FsaW5nIHBvbGljeS4gWW91IGNob29zZSB0aGUgbWV0cmljIHBhaXIsIGFuZCB0aGUgcG9saWN5IGF1dG9tYXRpY2FsbHkga25vd3MgdGhlIGNvcnJlY3Qgc3VtIGFuZCBhdmVyYWdlIHN0YXRpc3RpY3MgdG8gdXNlIGZvciB0aGUgbG9hZCBtZXRyaWMgYW5kIHRoZSBzY2FsaW5nIG1ldHJpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1NwZWNpZmljYXRpb24ge1xuQ3VzdG9taXplZExvYWRNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkTG9hZE1ldHJpY1xuUHJlZGVmaW5lZExvYWRNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkTG9hZE1ldHJpY1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHRhcmdldCB1dGlsaXphdGlvbi5cbiAqL1xuVGFyZ2V0VmFsdWU6IG51bWJlclxuUHJlZGVmaW5lZFNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkU2NhbGluZ01ldHJpY1xuQ3VzdG9taXplZENhcGFjaXR5TWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZENhcGFjaXR5TWV0cmljXG5DdXN0b21pemVkU2NhbGluZ01ldHJpY1NwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRTY2FsaW5nTWV0cmljXG5QcmVkZWZpbmVkTWV0cmljUGFpclNwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRNZXRyaWNQYWlyXG59XG4vKipcbiAqIFRoZSBjdXN0b21pemVkIGxvYWQgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkTG9hZE1ldHJpYyB7XG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuLyoqXG4gKiBUaGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLiBBbHNvIGRlZmluZXMgd2hldGhlciB0aGlzIGNhbGwgaXMgcmV0dXJuaW5nIGRhdGEgZm9yIG9uZSBtZXRyaWMgb25seSwgb3Igd2hldGhlciBpdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uIG9uIHRoZSB2YWx1ZXMgb2YgcmV0dXJuZWQgbWV0cmljIHN0YXRpc3RpY3MgdG8gY3JlYXRlIGEgbmV3IHRpbWUgc2VyaWVzLiBBIHRpbWUgc2VyaWVzIGlzIGEgc2VyaWVzIG9mIGRhdGEgcG9pbnRzLCBlYWNoIG9mIHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHRpbWVzdGFtcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLiBcbiAqICBJZiB5b3UgdXNlIGFueSBtYXRoIGV4cHJlc3Npb25zLCBzcGVjaWZ5IGBgdHJ1ZWBgIGZvciB0aGlzIHZhbHVlIGZvciBvbmx5IHRoZSBmaW5hbCBtYXRoIGV4cHJlc3Npb24gdGhhdCB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24gaXMgYmFzZWQgb24uIFlvdSBtdXN0IHNwZWNpZnkgYGBmYWxzZWBgIGZvciBgYFJldHVybkRhdGFgYCBmb3IgYWxsIHRoZSBvdGhlciBtZXRyaWNzIGFuZCBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqICBJZiB5b3UgYXJlIG9ubHkgcmV0cmlldmluZyBtZXRyaWNzIGFuZCBub3QgcGVyZm9ybWluZyBhbnkgbWF0aCBleHByZXNzaW9ucywgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgZm9yIGBgUmV0dXJuRGF0YWBgLiBUaGlzIHNldHMgaXQgdG8gaXRzIGRlZmF1bHQgKGBgdHJ1ZWBgKS5cbiAqL1xuUmV0dXJuRGF0YT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1hdGggZXhwcmVzc2lvbiB0byBwZXJmb3JtIG9uIHRoZSByZXR1cm5lZCBkYXRhLCBpZiB0aGlzIG9iamVjdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uLiBUaGlzIGV4cHJlc3Npb24gY2FuIHVzZSB0aGUgYGBJZGBgIG9mIHRoZSBvdGhlciBtZXRyaWNzIHRvIHJlZmVyIHRvIHRob3NlIG1ldHJpY3MsIGFuZCBjYW4gYWxzbyB1c2UgdGhlIGBgSWRgYCBvZiBvdGhlciBleHByZXNzaW9ucyB0byB1c2UgdGhlIHJlc3VsdCBvZiB0aG9zZSBleHByZXNzaW9ucy4gXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0LCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBgYEV4cHJlc3Npb25gYCBvciBgYE1ldHJpY1N0YXRgYCwgYnV0IG5vdCBib3RoLlxuICovXG5FeHByZXNzaW9uPzogc3RyaW5nXG4vKipcbiAqIEEgaHVtYW4tcmVhZGFibGUgbGFiZWwgZm9yIHRoaXMgbWV0cmljIG9yIGV4cHJlc3Npb24uIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgaWYgdGhpcyBpcyBhIG1hdGggZXhwcmVzc2lvbiwgc28gdGhhdCB5b3Uga25vdyB3aGF0IHRoZSB2YWx1ZSByZXByZXNlbnRzLlxuICovXG5MYWJlbD86IHN0cmluZ1xuTWV0cmljU3RhdD86IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljU3RhdFxuLyoqXG4gKiBBIHNob3J0IG5hbWUgdGhhdCBpZGVudGlmaWVzIHRoZSBvYmplY3QncyByZXN1bHRzIGluIHRoZSByZXNwb25zZS4gVGhpcyBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBgYE1ldHJpY0RhdGFRdWVyeWBgIG9iamVjdHMgc3BlY2lmaWVkIGZvciBhIHNpbmdsZSBzY2FsaW5nIHBvbGljeS4gSWYgeW91IGFyZSBwZXJmb3JtaW5nIG1hdGggZXhwcmVzc2lvbnMgb24gdGhpcyBzZXQgb2YgZGF0YSwgdGhpcyBuYW1lIHJlcHJlc2VudHMgdGhhdCBkYXRhIGFuZCBjYW4gc2VydmUgYXMgYSB2YXJpYWJsZSBpbiB0aGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24uIFRoZSB2YWxpZCBjaGFyYWN0ZXJzIGFyZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMuIFRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxvd2VyY2FzZSBsZXR0ZXIuXG4gKi9cbklkPzogc3RyaW5nXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBtZXRyaWMgZGF0YSB0byByZXR1cm4uIFxuICogIENvbmRpdGlvbmFsOiBXaXRoaW4gZWFjaCBgYE1ldHJpY0RhdGFRdWVyeWBgIG9iamVjdCwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYGBFeHByZXNzaW9uYGAgb3IgYGBNZXRyaWNTdGF0YGAsIGJ1dCBub3QgYm90aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1N0YXQge1xuLyoqXG4gKiBUaGUgc3RhdGlzdGljIHRvIHJldHVybi4gSXQgY2FuIGluY2x1ZGUgYW55IENsb3VkV2F0Y2ggc3RhdGlzdGljIG9yIGV4dGVuZGVkIHN0YXRpc3RpYy4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMsIHNlZSB0aGUgdGFibGUgaW4gW1N0YXRpc3RpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9tb25pdG9yaW5nL2Nsb3Vkd2F0Y2hfY29uY2VwdHMuaHRtbCNTdGF0aXN0aWMpIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZSouIFxuICogIFRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0cmljcyBmb3IgcHJlZGljdGl2ZSBzY2FsaW5nIGFyZSBgYEF2ZXJhZ2VgYCBhbmQgYGBTdW1gYC5cbiAqL1xuU3RhdD86IHN0cmluZ1xuTWV0cmljPzogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNcbi8qKlxuICogVGhlIHVuaXQgdG8gdXNlIGZvciB0aGUgcmV0dXJuZWQgZGF0YSBwb2ludHMuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIHVuaXRzIHRoYXQgQ2xvdWRXYXRjaCBzdXBwb3J0cywgc2VlIHRoZSBbTWV0cmljRGF0dW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpY0RhdHVtLmh0bWwpIGRhdGEgdHlwZSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIEFQSSBSZWZlcmVuY2UqLlxuICovXG5Vbml0Pzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBDbG91ZFdhdGNoIG1ldHJpYyB0byByZXR1cm4sIGluY2x1ZGluZyB0aGUgbWV0cmljIG5hbWUsIG5hbWVzcGFjZSwgYW5kIGRpbWVuc2lvbnMuIFRvIGdldCB0aGUgZXhhY3QgbWV0cmljIG5hbWUsIG5hbWVzcGFjZSwgYW5kIGRpbWVuc2lvbnMsIGluc3BlY3QgdGhlIFtNZXRyaWNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpYy5odG1sKSBvYmplY3QgdGhhdCBpcyByZXR1cm5lZCBieSBhIGNhbGwgdG8gW0xpc3RNZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWV0cmljcy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpYyB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk1ldHJpY05hbWU/OiBzdHJpbmdcbi8qKlxuICogRGVzY3JpYmVzIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBtZXRyaWMuXG4gKi9cbkRpbWVuc2lvbnM/OiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RpbWVuc2lvbltdXG4vKipcbiAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIG1ldHJpYy5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG59XG4vKipcbiAqIERlc2NyaWJlcyB0aGUgZGltZW5zaW9uIG9mIGEgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHByZWRlZmluZWQgbG9hZCBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRMb2FkTWV0cmljIHtcbi8qKlxuICogVGhlIG1ldHJpYyB0eXBlLlxuICovXG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbGFiZWwgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEgdGFyZ2V0IGdyb3VwLlxuICovXG5SZXNvdXJjZUxhYmVsPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBwcmVkZWZpbmVkIHNjYWxpbmcgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkU2NhbGluZ01ldHJpYyB7XG4vKipcbiAqIFRoZSBtZXRyaWMgdHlwZS5cbiAqL1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuLyoqXG4gKiBBIGxhYmVsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHNwZWNpZmljIHRhcmdldCBncm91cCBmcm9tIHdoaWNoIHRvIGRldGVybWluZSB0aGUgYXZlcmFnZSByZXF1ZXN0IGNvdW50LlxuICovXG5SZXNvdXJjZUxhYmVsPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBjdXN0b21pemVkIGNhcGFjaXR5IG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZENhcGFjaXR5TWV0cmljIHtcbi8qKlxuICogT25lIG9yIG1vcmUgbWV0cmljIGRhdGEgcXVlcmllcyB0byBwcm92aWRlIGRhdGEgcG9pbnRzIGZvciBhIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuLyoqXG4gKiBUaGUgY3VzdG9taXplZCBzY2FsaW5nIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZFNjYWxpbmdNZXRyaWMge1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBtZXRyaWMgZGF0YSBxdWVyaWVzIHRvIHByb3ZpZGUgZGF0YSBwb2ludHMgZm9yIGEgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbk1ldHJpY0RhdGFRdWVyaWVzOiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RhdGFRdWVyeVtdXG59XG4vKipcbiAqIFRoZSBwcmVkZWZpbmVkIG1ldHJpYyBwYWlyIHNwZWNpZmljYXRpb24gdGhhdCBkZXRlcm1pbmVzIHRoZSBhcHByb3ByaWF0ZSBzY2FsaW5nIG1ldHJpYyBhbmQgbG9hZCBtZXRyaWMgdG8gdXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZE1ldHJpY1BhaXIge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hpY2ggbWV0cmljcyB0byB1c2UuIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHR5cGVzIG9mIG1ldHJpY3MgZm9yIGVhY2ggbWV0cmljIHR5cGU6IG9uZSBpcyBhIGxvYWQgbWV0cmljIGFuZCBvbmUgaXMgYSBzY2FsaW5nIG1ldHJpYy5cbiAqL1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuLyoqXG4gKiBBIGxhYmVsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHNwZWNpZmljIHRhcmdldCBncm91cCBmcm9tIHdoaWNoIHRvIGRldGVybWluZSB0aGUgdG90YWwgYW5kIGF2ZXJhZ2UgcmVxdWVzdCBjb3VudC5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuIl19
@@ -0,0 +1,135 @@
1
+ export type Name = string;
2
+ export type Description = string;
3
+ /**
4
+ * A list of valid values for this type.
5
+ *
6
+ * @minItems 1
7
+ * @maxItems 50
8
+ */
9
+ export type PolicyDefinitionTypeValueList = PolicyDefinitionTypeValue[];
10
+ /**
11
+ * The types definition block of an AutomatedReasoningPolicyDefinition.
12
+ *
13
+ * @maxItems 50
14
+ */
15
+ export type PolicyDefinitionTypeList = PolicyDefinitionType[];
16
+ /**
17
+ * The rules definition block of an AutomatedReasoningPolicyDefinition.
18
+ *
19
+ * @maxItems 500
20
+ */
21
+ export type PolicyDefinitionRuleList = PolicyDefinitionRule[];
22
+ /**
23
+ * The variables definition block of an AutomatedReasoningPolicyDefinition.
24
+ *
25
+ * @maxItems 200
26
+ */
27
+ export type PolicyDefinitionVariableList = PolicyDefinitionVariable[];
28
+ export type PolicyArn = string;
29
+ /**
30
+ * Version of the policy that was created. This will always be `DRAFT`
31
+ */
32
+ export type Version = string;
33
+ /**
34
+ * The hash for this version
35
+ */
36
+ export type DefinitionHash = string;
37
+ /**
38
+ * Time this policy was created
39
+ */
40
+ export type CreatedAt = string;
41
+ /**
42
+ * Time this policy was last updated
43
+ */
44
+ export type UpdatedAt = string;
45
+ /**
46
+ * The id of the policy
47
+ */
48
+ export type PolicyId = string;
49
+ export type Tags = Tag[];
50
+ /**
51
+ * Definition of AWS::Bedrock::AutomatedReasoningPolicy Resource Type
52
+ */
53
+ export interface _AWS_BEDROCK_AUTOMATEDREASONINGPOLICY {
54
+ Name: Name;
55
+ Description?: Description;
56
+ PolicyDefinition?: PolicyDefinition;
57
+ PolicyArn?: PolicyArn;
58
+ Version?: Version;
59
+ DefinitionHash?: DefinitionHash;
60
+ CreatedAt?: CreatedAt;
61
+ UpdatedAt?: UpdatedAt;
62
+ PolicyId?: PolicyId;
63
+ Tags?: Tags;
64
+ }
65
+ export interface PolicyDefinition {
66
+ /**
67
+ * The policy format version.
68
+ */
69
+ Version?: string;
70
+ Types?: PolicyDefinitionTypeList;
71
+ Rules?: PolicyDefinitionRuleList;
72
+ Variables?: PolicyDefinitionVariableList;
73
+ }
74
+ export interface PolicyDefinitionType {
75
+ /**
76
+ * A name for this type.
77
+ */
78
+ Name: string;
79
+ /**
80
+ * A natural language description of this type.
81
+ */
82
+ Description?: string;
83
+ Values: PolicyDefinitionTypeValueList;
84
+ }
85
+ export interface PolicyDefinitionTypeValue {
86
+ /**
87
+ * The value of the type value.
88
+ */
89
+ Value: string;
90
+ /**
91
+ * A natural language description of the type's value.
92
+ */
93
+ Description?: string;
94
+ }
95
+ export interface PolicyDefinitionRule {
96
+ /**
97
+ * A unique id within the PolicyDefinition
98
+ */
99
+ Id: string;
100
+ /**
101
+ * The SMT expression for this rule
102
+ */
103
+ Expression: string;
104
+ /**
105
+ * An alternate expression for this rule
106
+ */
107
+ AlternateExpression?: string;
108
+ }
109
+ export interface PolicyDefinitionVariable {
110
+ /**
111
+ * A name from this variable.
112
+ */
113
+ Name: string;
114
+ /**
115
+ * A type for this variable.
116
+ */
117
+ Type: string;
118
+ /**
119
+ * A natural language description of this variable.
120
+ */
121
+ Description: string;
122
+ }
123
+ /**
124
+ * Definition of the key/value pair for a tag
125
+ */
126
+ export interface Tag {
127
+ /**
128
+ * Tag Key
129
+ */
130
+ Key: string;
131
+ /**
132
+ * Tag Value
133
+ */
134
+ Value: string;
135
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJlZHJvY2stYXV0b21hdGVkcmVhc29uaW5ncG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWJlZHJvY2stYXV0b21hdGVkcmVhc29uaW5ncG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBOYW1lID0gc3RyaW5nXG5leHBvcnQgdHlwZSBEZXNjcmlwdGlvbiA9IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciB0aGlzIHR5cGUuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5RGVmaW5pdGlvblR5cGVWYWx1ZUxpc3QgPSBQb2xpY3lEZWZpbml0aW9uVHlwZVZhbHVlW11cbi8qKlxuICogVGhlIHR5cGVzIGRlZmluaXRpb24gYmxvY2sgb2YgYW4gQXV0b21hdGVkUmVhc29uaW5nUG9saWN5RGVmaW5pdGlvbi5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cbmV4cG9ydCB0eXBlIFBvbGljeURlZmluaXRpb25UeXBlTGlzdCA9IFBvbGljeURlZmluaXRpb25UeXBlW11cbi8qKlxuICogVGhlIHJ1bGVzIGRlZmluaXRpb24gYmxvY2sgb2YgYW4gQXV0b21hdGVkUmVhc29uaW5nUG9saWN5RGVmaW5pdGlvbi5cbiAqIFxuICogQG1heEl0ZW1zIDUwMFxuICovXG5leHBvcnQgdHlwZSBQb2xpY3lEZWZpbml0aW9uUnVsZUxpc3QgPSBQb2xpY3lEZWZpbml0aW9uUnVsZVtdXG4vKipcbiAqIFRoZSB2YXJpYWJsZXMgZGVmaW5pdGlvbiBibG9jayBvZiBhbiBBdXRvbWF0ZWRSZWFzb25pbmdQb2xpY3lEZWZpbml0aW9uLlxuICogXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cbmV4cG9ydCB0eXBlIFBvbGljeURlZmluaXRpb25WYXJpYWJsZUxpc3QgPSBQb2xpY3lEZWZpbml0aW9uVmFyaWFibGVbXVxuZXhwb3J0IHR5cGUgUG9saWN5QXJuID0gc3RyaW5nXG4vKipcbiAqIFZlcnNpb24gb2YgdGhlIHBvbGljeSB0aGF0IHdhcyBjcmVhdGVkLiBUaGlzIHdpbGwgYWx3YXlzIGJlIGBEUkFGVGBcbiAqL1xuZXhwb3J0IHR5cGUgVmVyc2lvbiA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgaGFzaCBmb3IgdGhpcyB2ZXJzaW9uXG4gKi9cbmV4cG9ydCB0eXBlIERlZmluaXRpb25IYXNoID0gc3RyaW5nXG4vKipcbiAqIFRpbWUgdGhpcyBwb2xpY3kgd2FzIGNyZWF0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgQ3JlYXRlZEF0ID0gc3RyaW5nXG4vKipcbiAqIFRpbWUgdGhpcyBwb2xpY3kgd2FzIGxhc3QgdXBkYXRlZFxuICovXG5leHBvcnQgdHlwZSBVcGRhdGVkQXQgPSBzdHJpbmdcbi8qKlxuICogVGhlIGlkIG9mIHRoZSBwb2xpY3lcbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5SWQgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIFRhZ3MgPSBUYWdbXVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgQVdTOjpCZWRyb2NrOjpBdXRvbWF0ZWRSZWFzb25pbmdQb2xpY3kgUmVzb3VyY2UgVHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQkVEUk9DS19BVVRPTUFURURSRUFTT05JTkdQT0xJQ1kge1xuTmFtZTogTmFtZVxuRGVzY3JpcHRpb24/OiBEZXNjcmlwdGlvblxuUG9saWN5RGVmaW5pdGlvbj86IFBvbGljeURlZmluaXRpb25cblBvbGljeUFybj86IFBvbGljeUFyblxuVmVyc2lvbj86IFZlcnNpb25cbkRlZmluaXRpb25IYXNoPzogRGVmaW5pdGlvbkhhc2hcbkNyZWF0ZWRBdD86IENyZWF0ZWRBdFxuVXBkYXRlZEF0PzogVXBkYXRlZEF0XG5Qb2xpY3lJZD86IFBvbGljeUlkXG5UYWdzPzogVGFnc1xufVxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEZWZpbml0aW9uIHtcbi8qKlxuICogVGhlIHBvbGljeSBmb3JtYXQgdmVyc2lvbi5cbiAqL1xuVmVyc2lvbj86IHN0cmluZ1xuVHlwZXM/OiBQb2xpY3lEZWZpbml0aW9uVHlwZUxpc3RcblJ1bGVzPzogUG9saWN5RGVmaW5pdGlvblJ1bGVMaXN0XG5WYXJpYWJsZXM/OiBQb2xpY3lEZWZpbml0aW9uVmFyaWFibGVMaXN0XG59XG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeURlZmluaXRpb25UeXBlIHtcbi8qKlxuICogQSBuYW1lIGZvciB0aGlzIHR5cGUuXG4gKi9cbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBBIG5hdHVyYWwgbGFuZ3VhZ2UgZGVzY3JpcHRpb24gb2YgdGhpcyB0eXBlLlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuVmFsdWVzOiBQb2xpY3lEZWZpbml0aW9uVHlwZVZhbHVlTGlzdFxufVxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEZWZpbml0aW9uVHlwZVZhbHVlIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSB0eXBlIHZhbHVlLlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIEEgbmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB0aGUgdHlwZSdzIHZhbHVlLlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEZWZpbml0aW9uUnVsZSB7XG4vKipcbiAqIEEgdW5pcXVlIGlkIHdpdGhpbiB0aGUgUG9saWN5RGVmaW5pdGlvblxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIFRoZSBTTVQgZXhwcmVzc2lvbiBmb3IgdGhpcyBydWxlXG4gKi9cbkV4cHJlc3Npb246IHN0cmluZ1xuLyoqXG4gKiBBbiBhbHRlcm5hdGUgZXhwcmVzc2lvbiBmb3IgdGhpcyBydWxlXG4gKi9cbkFsdGVybmF0ZUV4cHJlc3Npb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5RGVmaW5pdGlvblZhcmlhYmxlIHtcbi8qKlxuICogQSBuYW1lIGZyb20gdGhpcyB2YXJpYWJsZS5cbiAqL1xuTmFtZTogc3RyaW5nXG4vKipcbiAqIEEgdHlwZSBmb3IgdGhpcyB2YXJpYWJsZS5cbiAqL1xuVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHZhcmlhYmxlLlxuICovXG5EZXNjcmlwdGlvbjogc3RyaW5nXG59XG4vKipcbiAqIERlZmluaXRpb24gb2YgdGhlIGtleS92YWx1ZSBwYWlyIGZvciBhIHRhZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRhZyBLZXlcbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGFnIFZhbHVlXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Arn of the policy
3
+ */
4
+ export type PolicyArn = string;
5
+ /**
6
+ * The name inherited from the policy
7
+ */
8
+ export type Name = string;
9
+ /**
10
+ * The description inherited from the policy
11
+ */
12
+ export type Description = string;
13
+ /**
14
+ * The version of the policy
15
+ */
16
+ export type Version = string;
17
+ /**
18
+ * The hash for this version
19
+ */
20
+ export type DefinitionHash = string;
21
+ /**
22
+ * Time this policy version was created
23
+ */
24
+ export type CreatedAt = string;
25
+ /**
26
+ * Time this policy was last updated
27
+ */
28
+ export type UpdatedAt = string;
29
+ /**
30
+ * The id of the associated policy
31
+ */
32
+ export type PolicyId = string;
33
+ export type Tags = Tag[];
34
+ /**
35
+ * Definition of AWS::Bedrock::AutomatedReasoningPolicyVersion Resource Type
36
+ */
37
+ export interface _AWS_BEDROCK_AUTOMATEDREASONINGPOLICYVERSION {
38
+ PolicyArn: PolicyArn;
39
+ Name?: Name;
40
+ Description?: Description;
41
+ Version?: Version;
42
+ DefinitionHash?: DefinitionHash;
43
+ LastUpdatedDefinitionHash?: DefinitionHash;
44
+ CreatedAt?: CreatedAt;
45
+ UpdatedAt?: UpdatedAt;
46
+ PolicyId?: PolicyId;
47
+ Tags?: Tags;
48
+ }
49
+ /**
50
+ * Definition of the key/value pair for a tag
51
+ */
52
+ export interface Tag {
53
+ /**
54
+ * Tag Key
55
+ */
56
+ Key: string;
57
+ /**
58
+ * Tag Value
59
+ */
60
+ Value: string;
61
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJlZHJvY2stYXV0b21hdGVkcmVhc29uaW5ncG9saWN5dmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1iZWRyb2NrLWF1dG9tYXRlZHJlYXNvbmluZ3BvbGljeXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXJuIG9mIHRoZSBwb2xpY3kgXG4gKi9cbmV4cG9ydCB0eXBlIFBvbGljeUFybiA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBpbmhlcml0ZWQgZnJvbSB0aGUgcG9saWN5XG4gKi9cbmV4cG9ydCB0eXBlIE5hbWUgPSBzdHJpbmdcbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwb2xpY3lcbiAqL1xuZXhwb3J0IHR5cGUgRGVzY3JpcHRpb24gPSBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHBvbGljeVxuICovXG5leHBvcnQgdHlwZSBWZXJzaW9uID0gc3RyaW5nXG4vKipcbiAqIFRoZSBoYXNoIGZvciB0aGlzIHZlcnNpb25cbiAqL1xuZXhwb3J0IHR5cGUgRGVmaW5pdGlvbkhhc2ggPSBzdHJpbmdcbi8qKlxuICogVGltZSB0aGlzIHBvbGljeSB2ZXJzaW9uIHdhcyBjcmVhdGVkXG4gKi9cbmV4cG9ydCB0eXBlIENyZWF0ZWRBdCA9IHN0cmluZ1xuLyoqXG4gKiBUaW1lIHRoaXMgcG9saWN5IHdhcyBsYXN0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgVXBkYXRlZEF0ID0gc3RyaW5nXG4vKipcbiAqIFRoZSBpZCBvZiB0aGUgYXNzb2NpYXRlZCBwb2xpY3lcbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5SWQgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIFRhZ3MgPSBUYWdbXVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgQVdTOjpCZWRyb2NrOjpBdXRvbWF0ZWRSZWFzb25pbmdQb2xpY3lWZXJzaW9uIFJlc291cmNlIFR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0JFRFJPQ0tfQVVUT01BVEVEUkVBU09OSU5HUE9MSUNZVkVSU0lPTiB7XG5Qb2xpY3lBcm46IFBvbGljeUFyblxuTmFtZT86IE5hbWVcbkRlc2NyaXB0aW9uPzogRGVzY3JpcHRpb25cblZlcnNpb24/OiBWZXJzaW9uXG5EZWZpbml0aW9uSGFzaD86IERlZmluaXRpb25IYXNoXG5MYXN0VXBkYXRlZERlZmluaXRpb25IYXNoPzogRGVmaW5pdGlvbkhhc2hcbkNyZWF0ZWRBdD86IENyZWF0ZWRBdFxuVXBkYXRlZEF0PzogVXBkYXRlZEF0XG5Qb2xpY3lJZD86IFBvbGljeUlkXG5UYWdzPzogVGFnc1xufVxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIHRoZSBrZXkvdmFsdWUgcGFpciBmb3IgYSB0YWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUYWcgS2V5XG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRhZyBWYWx1ZVxuICovXG5WYWx1ZTogc3RyaW5nXG59XG4iXX0=
@@ -8,30 +8,44 @@ export interface _AWS_BUDGETS_BUDGET {
8
8
  ResourceTags?: ResourceTag[];
9
9
  }
10
10
  export interface BudgetData {
11
- Metrics?: string[];
12
- BudgetLimit?: Spend;
13
11
  TimePeriod?: TimePeriod;
14
- AutoAdjustData?: AutoAdjustData;
15
- TimeUnit: string;
16
12
  PlannedBudgetLimits?: {
17
13
  [k: string]: unknown;
18
14
  };
19
15
  CostFilters?: {
20
16
  [k: string]: unknown;
21
17
  };
22
- FilterExpression?: Expression;
23
- BudgetName?: string;
24
18
  CostTypes?: CostTypes;
25
19
  BudgetType: string;
26
- }
27
- export interface Spend {
28
- Unit: string;
29
- Amount: number;
20
+ Metrics?: string[];
21
+ BudgetLimit?: Spend;
22
+ BillingViewArn?: string;
23
+ AutoAdjustData?: AutoAdjustData;
24
+ TimeUnit: string;
25
+ FilterExpression?: Expression;
26
+ BudgetName?: string;
30
27
  }
31
28
  export interface TimePeriod {
32
29
  Start?: string;
33
30
  End?: string;
34
31
  }
32
+ export interface CostTypes {
33
+ IncludeSupport?: boolean;
34
+ IncludeOtherSubscription?: boolean;
35
+ IncludeTax?: boolean;
36
+ IncludeSubscription?: boolean;
37
+ UseBlended?: boolean;
38
+ IncludeUpfront?: boolean;
39
+ IncludeDiscount?: boolean;
40
+ IncludeCredit?: boolean;
41
+ IncludeRecurring?: boolean;
42
+ UseAmortized?: boolean;
43
+ IncludeRefund?: boolean;
44
+ }
45
+ export interface Spend {
46
+ Unit: string;
47
+ Amount: number;
48
+ }
35
49
  export interface AutoAdjustData {
36
50
  AutoAdjustType: string;
37
51
  HistoricalOptions?: HistoricalOptions;
@@ -62,19 +76,6 @@ export interface TagValues {
62
76
  Key?: string;
63
77
  MatchOptions?: string[];
64
78
  }
65
- export interface CostTypes {
66
- IncludeSupport?: boolean;
67
- IncludeOtherSubscription?: boolean;
68
- IncludeTax?: boolean;
69
- IncludeSubscription?: boolean;
70
- UseBlended?: boolean;
71
- IncludeUpfront?: boolean;
72
- IncludeDiscount?: boolean;
73
- IncludeCredit?: boolean;
74
- IncludeRecurring?: boolean;
75
- UseAmortized?: boolean;
76
- IncludeRefund?: boolean;
77
- }
78
79
  export interface NotificationWithSubscribers {
79
80
  Subscribers: Subscriber[];
80
81
  Notification: Notification;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJ1ZGdldHMtYnVkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWJ1ZGdldHMtYnVkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpCdWRnZXRzOjpCdWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0JVREdFVFNfQlVER0VUIHtcbkJ1ZGdldDogQnVkZ2V0RGF0YVxuSWQ/OiBzdHJpbmdcbk5vdGlmaWNhdGlvbnNXaXRoU3Vic2NyaWJlcnM/OiBOb3RpZmljYXRpb25XaXRoU3Vic2NyaWJlcnNbXVxuUmVzb3VyY2VUYWdzPzogUmVzb3VyY2VUYWdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBCdWRnZXREYXRhIHtcbk1ldHJpY3M/OiBzdHJpbmdbXVxuQnVkZ2V0TGltaXQ/OiBTcGVuZFxuVGltZVBlcmlvZD86IFRpbWVQZXJpb2RcbkF1dG9BZGp1c3REYXRhPzogQXV0b0FkanVzdERhdGFcblRpbWVVbml0OiBzdHJpbmdcblBsYW5uZWRCdWRnZXRMaW1pdHM/OiB7XG5bazogc3RyaW5nXTogdW5rbm93blxufVxuQ29zdEZpbHRlcnM/OiB7XG5bazogc3RyaW5nXTogdW5rbm93blxufVxuRmlsdGVyRXhwcmVzc2lvbj86IEV4cHJlc3Npb25cbkJ1ZGdldE5hbWU/OiBzdHJpbmdcbkNvc3RUeXBlcz86IENvc3RUeXBlc1xuQnVkZ2V0VHlwZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFNwZW5kIHtcblVuaXQ6IHN0cmluZ1xuQW1vdW50OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGltZVBlcmlvZCB7XG5TdGFydD86IHN0cmluZ1xuRW5kPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEF1dG9BZGp1c3REYXRhIHtcbkF1dG9BZGp1c3RUeXBlOiBzdHJpbmdcbkhpc3RvcmljYWxPcHRpb25zPzogSGlzdG9yaWNhbE9wdGlvbnNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSGlzdG9yaWNhbE9wdGlvbnMge1xuQnVkZ2V0QWRqdXN0bWVudFBlcmlvZDogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIEV4cHJlc3Npb24ge1xuTm90PzogRXhwcmVzc2lvblxuT3I/OiBFeHByZXNzaW9uW11cbkFuZD86IEV4cHJlc3Npb25bXVxuRGltZW5zaW9ucz86IEV4cHJlc3Npb25EaW1lbnNpb25WYWx1ZXNcbkNvc3RDYXRlZ29yaWVzPzogQ29zdENhdGVnb3J5VmFsdWVzXG5UYWdzPzogVGFnVmFsdWVzXG59XG5leHBvcnQgaW50ZXJmYWNlIEV4cHJlc3Npb25EaW1lbnNpb25WYWx1ZXMge1xuVmFsdWVzPzogc3RyaW5nW11cbktleT86IHN0cmluZ1xuTWF0Y2hPcHRpb25zPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29zdENhdGVnb3J5VmFsdWVzIHtcblZhbHVlcz86IHN0cmluZ1tdXG5LZXk/OiBzdHJpbmdcbk1hdGNoT3B0aW9ucz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZ1ZhbHVlcyB7XG5WYWx1ZXM/OiBzdHJpbmdbXVxuS2V5Pzogc3RyaW5nXG5NYXRjaE9wdGlvbnM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBDb3N0VHlwZXMge1xuSW5jbHVkZVN1cHBvcnQ/OiBib29sZWFuXG5JbmNsdWRlT3RoZXJTdWJzY3JpcHRpb24/OiBib29sZWFuXG5JbmNsdWRlVGF4PzogYm9vbGVhblxuSW5jbHVkZVN1YnNjcmlwdGlvbj86IGJvb2xlYW5cblVzZUJsZW5kZWQ/OiBib29sZWFuXG5JbmNsdWRlVXBmcm9udD86IGJvb2xlYW5cbkluY2x1ZGVEaXNjb3VudD86IGJvb2xlYW5cbkluY2x1ZGVDcmVkaXQ/OiBib29sZWFuXG5JbmNsdWRlUmVjdXJyaW5nPzogYm9vbGVhblxuVXNlQW1vcnRpemVkPzogYm9vbGVhblxuSW5jbHVkZVJlZnVuZD86IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uV2l0aFN1YnNjcmliZXJzIHtcblN1YnNjcmliZXJzOiBTdWJzY3JpYmVyW11cbk5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uXG59XG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmliZXIge1xuQWRkcmVzczogc3RyaW5nXG5TdWJzY3JpcHRpb25UeXBlOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIHtcbkNvbXBhcmlzb25PcGVyYXRvcjogc3RyaW5nXG5Ob3RpZmljYXRpb25UeXBlOiBzdHJpbmdcblRocmVzaG9sZDogbnVtYmVyXG5UaHJlc2hvbGRUeXBlPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlVGFnIHtcblZhbHVlPzogc3RyaW5nXG5LZXk6IHN0cmluZ1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJ1ZGdldHMtYnVkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWJ1ZGdldHMtYnVkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpCdWRnZXRzOjpCdWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0JVREdFVFNfQlVER0VUIHtcbkJ1ZGdldDogQnVkZ2V0RGF0YVxuSWQ/OiBzdHJpbmdcbk5vdGlmaWNhdGlvbnNXaXRoU3Vic2NyaWJlcnM/OiBOb3RpZmljYXRpb25XaXRoU3Vic2NyaWJlcnNbXVxuUmVzb3VyY2VUYWdzPzogUmVzb3VyY2VUYWdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBCdWRnZXREYXRhIHtcblRpbWVQZXJpb2Q/OiBUaW1lUGVyaW9kXG5QbGFubmVkQnVkZ2V0TGltaXRzPzoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbkNvc3RGaWx0ZXJzPzoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbkNvc3RUeXBlcz86IENvc3RUeXBlc1xuQnVkZ2V0VHlwZTogc3RyaW5nXG5NZXRyaWNzPzogc3RyaW5nW11cbkJ1ZGdldExpbWl0PzogU3BlbmRcbkJpbGxpbmdWaWV3QXJuPzogc3RyaW5nXG5BdXRvQWRqdXN0RGF0YT86IEF1dG9BZGp1c3REYXRhXG5UaW1lVW5pdDogc3RyaW5nXG5GaWx0ZXJFeHByZXNzaW9uPzogRXhwcmVzc2lvblxuQnVkZ2V0TmFtZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUaW1lUGVyaW9kIHtcblN0YXJ0Pzogc3RyaW5nXG5FbmQ/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29zdFR5cGVzIHtcbkluY2x1ZGVTdXBwb3J0PzogYm9vbGVhblxuSW5jbHVkZU90aGVyU3Vic2NyaXB0aW9uPzogYm9vbGVhblxuSW5jbHVkZVRheD86IGJvb2xlYW5cbkluY2x1ZGVTdWJzY3JpcHRpb24/OiBib29sZWFuXG5Vc2VCbGVuZGVkPzogYm9vbGVhblxuSW5jbHVkZVVwZnJvbnQ/OiBib29sZWFuXG5JbmNsdWRlRGlzY291bnQ/OiBib29sZWFuXG5JbmNsdWRlQ3JlZGl0PzogYm9vbGVhblxuSW5jbHVkZVJlY3VycmluZz86IGJvb2xlYW5cblVzZUFtb3J0aXplZD86IGJvb2xlYW5cbkluY2x1ZGVSZWZ1bmQ/OiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIFNwZW5kIHtcblVuaXQ6IHN0cmluZ1xuQW1vdW50OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0FkanVzdERhdGEge1xuQXV0b0FkanVzdFR5cGU6IHN0cmluZ1xuSGlzdG9yaWNhbE9wdGlvbnM/OiBIaXN0b3JpY2FsT3B0aW9uc1xufVxuZXhwb3J0IGludGVyZmFjZSBIaXN0b3JpY2FsT3B0aW9ucyB7XG5CdWRnZXRBZGp1c3RtZW50UGVyaW9kOiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXhwcmVzc2lvbiB7XG5Ob3Q/OiBFeHByZXNzaW9uXG5Pcj86IEV4cHJlc3Npb25bXVxuQW5kPzogRXhwcmVzc2lvbltdXG5EaW1lbnNpb25zPzogRXhwcmVzc2lvbkRpbWVuc2lvblZhbHVlc1xuQ29zdENhdGVnb3JpZXM/OiBDb3N0Q2F0ZWdvcnlWYWx1ZXNcblRhZ3M/OiBUYWdWYWx1ZXNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXhwcmVzc2lvbkRpbWVuc2lvblZhbHVlcyB7XG5WYWx1ZXM/OiBzdHJpbmdbXVxuS2V5Pzogc3RyaW5nXG5NYXRjaE9wdGlvbnM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBDb3N0Q2F0ZWdvcnlWYWx1ZXMge1xuVmFsdWVzPzogc3RyaW5nW11cbktleT86IHN0cmluZ1xuTWF0Y2hPcHRpb25zPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnVmFsdWVzIHtcblZhbHVlcz86IHN0cmluZ1tdXG5LZXk/OiBzdHJpbmdcbk1hdGNoT3B0aW9ucz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbldpdGhTdWJzY3JpYmVycyB7XG5TdWJzY3JpYmVyczogU3Vic2NyaWJlcltdXG5Ob3RpZmljYXRpb246IE5vdGlmaWNhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpYmVyIHtcbkFkZHJlc3M6IHN0cmluZ1xuU3Vic2NyaXB0aW9uVHlwZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XG5Db21wYXJpc29uT3BlcmF0b3I6IHN0cmluZ1xuTm90aWZpY2F0aW9uVHlwZTogc3RyaW5nXG5UaHJlc2hvbGQ6IG51bWJlclxuVGhyZXNob2xkVHlwZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVRhZyB7XG5WYWx1ZT86IHN0cmluZ1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==