@aws-cdk/aws-bedrock-agentcore-alpha 2.233.0-alpha.0 → 2.234.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +35 -6
- package/.jsii.tabl.json.gz +0 -0
- package/LICENSE +1 -1
- package/NOTICE +1 -1
- package/lib/gateway/gateway-base.js +1 -1
- package/lib/gateway/gateway.js +1 -1
- package/lib/gateway/inbound-auth/authorizer.js +3 -3
- package/lib/gateway/outbound-auth/api-key.js +1 -1
- package/lib/gateway/outbound-auth/credential-provider.js +1 -1
- package/lib/gateway/protocol.js +2 -2
- package/lib/gateway/targets/schema/api-schema.js +4 -4
- package/lib/gateway/targets/schema/tool-schema.js +4 -4
- package/lib/gateway/targets/target-base.js +1 -1
- package/lib/gateway/targets/target-configuration.js +5 -5
- package/lib/gateway/targets/target.d.ts +1 -1
- package/lib/gateway/targets/target.js +2 -2
- package/lib/memory/memory-strategy.js +1 -1
- package/lib/memory/memory.js +2 -2
- package/lib/memory/strategies/managed-strategy.js +1 -1
- package/lib/memory/strategies/self-managed-strategy.js +1 -1
- package/lib/network/network-configuration.js +4 -4
- package/lib/runtime/runtime-artifact.js +1 -1
- package/lib/runtime/runtime-authorizer-configuration.js +1 -1
- package/lib/runtime/runtime-base.js +1 -1
- package/lib/runtime/runtime-endpoint-base.js +1 -1
- package/lib/runtime/runtime-endpoint.js +1 -1
- package/lib/runtime/runtime.js +1 -1
- package/lib/tools/browser.d.ts +1 -1
- package/lib/tools/browser.js +3 -3
- package/lib/tools/code-interpreter.js +2 -2
- package/package.json +9 -9
package/.jsii
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@aws-cdk/aws-bedrock-alpha": "2.
|
|
12
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"@aws-cdk/aws-bedrock-alpha": "2.234.0-alpha.0",
|
|
12
|
+
"aws-cdk-lib": "^2.234.0",
|
|
13
13
|
"constructs": "^10.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencyClosure": {
|
|
@@ -674,6 +674,19 @@
|
|
|
674
674
|
}
|
|
675
675
|
}
|
|
676
676
|
},
|
|
677
|
+
"aws-cdk-lib.aws_cases": {
|
|
678
|
+
"targets": {
|
|
679
|
+
"dotnet": {
|
|
680
|
+
"namespace": "Amazon.CDK.AWS.Cases"
|
|
681
|
+
},
|
|
682
|
+
"java": {
|
|
683
|
+
"package": "software.amazon.awscdk.services.cases"
|
|
684
|
+
},
|
|
685
|
+
"python": {
|
|
686
|
+
"module": "aws_cdk.aws_cases"
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
},
|
|
677
690
|
"aws-cdk-lib.aws_cassandra": {
|
|
678
691
|
"targets": {
|
|
679
692
|
"dotnet": {
|
|
@@ -4638,6 +4651,22 @@
|
|
|
4638
4651
|
}
|
|
4639
4652
|
}
|
|
4640
4653
|
},
|
|
4654
|
+
"aws-cdk-lib.interfaces.aws_cases": {
|
|
4655
|
+
"targets": {
|
|
4656
|
+
"dotnet": {
|
|
4657
|
+
"namespace": "Amazon.CDK.Interfaces.Cases"
|
|
4658
|
+
},
|
|
4659
|
+
"go": {
|
|
4660
|
+
"packageName": "interfacesawscases"
|
|
4661
|
+
},
|
|
4662
|
+
"java": {
|
|
4663
|
+
"package": "software.amazon.awscdk.interfaces.cases"
|
|
4664
|
+
},
|
|
4665
|
+
"python": {
|
|
4666
|
+
"module": "aws_cdk.interfaces.aws_cases"
|
|
4667
|
+
}
|
|
4668
|
+
}
|
|
4669
|
+
},
|
|
4641
4670
|
"aws-cdk-lib.interfaces.aws_cassandra": {
|
|
4642
4671
|
"targets": {
|
|
4643
4672
|
"dotnet": {
|
|
@@ -8473,7 +8502,7 @@
|
|
|
8473
8502
|
"stability": "experimental"
|
|
8474
8503
|
},
|
|
8475
8504
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
8476
|
-
"jsiiVersion": "5.9.
|
|
8505
|
+
"jsiiVersion": "5.9.22 (build b81c634)",
|
|
8477
8506
|
"keywords": [
|
|
8478
8507
|
"aws",
|
|
8479
8508
|
"cdk",
|
|
@@ -16539,7 +16568,7 @@
|
|
|
16539
16568
|
{
|
|
16540
16569
|
"abstract": true,
|
|
16541
16570
|
"docs": {
|
|
16542
|
-
"default": "
|
|
16571
|
+
"default": "- If not provided, defaults to IAM role which will fail at runtime",
|
|
16543
16572
|
"stability": "experimental",
|
|
16544
16573
|
"summary": "Credential providers for authentication OpenAPI targets support API key and OAuth authentication (not IAM)."
|
|
16545
16574
|
},
|
|
@@ -24231,7 +24260,7 @@
|
|
|
24231
24260
|
{
|
|
24232
24261
|
"abstract": true,
|
|
24233
24262
|
"docs": {
|
|
24234
|
-
"default": "
|
|
24263
|
+
"default": "false",
|
|
24235
24264
|
"stability": "experimental",
|
|
24236
24265
|
"summary": "Whether recording is enabled."
|
|
24237
24266
|
},
|
|
@@ -28149,6 +28178,6 @@
|
|
|
28149
28178
|
"symbolId": "lib/network/network-configuration:VpcConfigProps"
|
|
28150
28179
|
}
|
|
28151
28180
|
},
|
|
28152
|
-
"version": "2.
|
|
28181
|
+
"version": "2.234.0-alpha.0",
|
|
28153
28182
|
"fingerprint": "**********"
|
|
28154
28183
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright 2018-
|
|
189
|
+
Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/NOTICE
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
AWS Cloud Development Kit (AWS CDK)
|
|
2
|
-
Copyright 2018-
|
|
2
|
+
Copyright 2018-2026 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
@@ -25,7 +25,7 @@ var GatewayExceptionLevel;
|
|
|
25
25
|
* Base Class
|
|
26
26
|
*****************************************************************************/
|
|
27
27
|
class GatewayBase extends aws_cdk_lib_1.Resource {
|
|
28
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase", version: "2.
|
|
28
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayBase", version: "2.234.0-alpha.0" };
|
|
29
29
|
constructor(scope, id) {
|
|
30
30
|
super(scope, id);
|
|
31
31
|
}
|
package/lib/gateway/gateway.js
CHANGED
|
@@ -87,7 +87,7 @@ let Gateway = (() => {
|
|
|
87
87
|
Gateway = _classThis = _classDescriptor.value;
|
|
88
88
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
89
89
|
}
|
|
90
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Gateway", version: "2.
|
|
90
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Gateway", version: "2.234.0-alpha.0" };
|
|
91
91
|
/** Uniquely identifies this class. */
|
|
92
92
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.Gateway';
|
|
93
93
|
/**
|
|
@@ -21,7 +21,7 @@ var GatewayAuthorizerType;
|
|
|
21
21
|
* Custom JWT authorizer configuration implementation
|
|
22
22
|
*/
|
|
23
23
|
class CustomJwtAuthorizer {
|
|
24
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CustomJwtAuthorizer", version: "2.
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CustomJwtAuthorizer", version: "2.234.0-alpha.0" };
|
|
25
25
|
authorizerType = GatewayAuthorizerType.CUSTOM_JWT;
|
|
26
26
|
discoveryUrl;
|
|
27
27
|
allowedAudience;
|
|
@@ -62,7 +62,7 @@ exports.CustomJwtAuthorizer = CustomJwtAuthorizer;
|
|
|
62
62
|
*
|
|
63
63
|
*/
|
|
64
64
|
class IamAuthorizer {
|
|
65
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.IamAuthorizer", version: "2.
|
|
65
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.IamAuthorizer", version: "2.234.0-alpha.0" };
|
|
66
66
|
authorizerType = GatewayAuthorizerType.AWS_IAM;
|
|
67
67
|
/**
|
|
68
68
|
* @internal
|
|
@@ -78,7 +78,7 @@ exports.IamAuthorizer = IamAuthorizer;
|
|
|
78
78
|
* Factory class for creating Gateway Authorizers
|
|
79
79
|
*/
|
|
80
80
|
class GatewayAuthorizer {
|
|
81
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayAuthorizer", version: "2.
|
|
81
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayAuthorizer", version: "2.234.0-alpha.0" };
|
|
82
82
|
/**
|
|
83
83
|
* AWS IAM authorizer instance
|
|
84
84
|
*/
|
|
@@ -19,7 +19,7 @@ var ApiKeyCredentialLocationType;
|
|
|
19
19
|
* API Key location within the request
|
|
20
20
|
*/
|
|
21
21
|
class ApiKeyCredentialLocation {
|
|
22
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiKeyCredentialLocation", version: "2.
|
|
22
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiKeyCredentialLocation", version: "2.234.0-alpha.0" };
|
|
23
23
|
/**
|
|
24
24
|
* Create a header-based API key credential location
|
|
25
25
|
* @param config - Optional configuration for the credential location
|
|
@@ -31,7 +31,7 @@ var CredentialProviderType;
|
|
|
31
31
|
* Factory class for creating different Gateway Credential Providers
|
|
32
32
|
*/
|
|
33
33
|
class GatewayCredentialProvider {
|
|
34
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCredentialProvider", version: "2.
|
|
34
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayCredentialProvider", version: "2.234.0-alpha.0" };
|
|
35
35
|
/**
|
|
36
36
|
* Create an API key credential provider from Identity ARN
|
|
37
37
|
* Use this method when you have the Identity ARN as a string
|
package/lib/gateway/protocol.js
CHANGED
|
@@ -21,7 +21,7 @@ var GatewayProtocolType;
|
|
|
21
21
|
* Factory class for instantiating Gateway Protocols
|
|
22
22
|
*/
|
|
23
23
|
class GatewayProtocol {
|
|
24
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayProtocol", version: "2.
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayProtocol", version: "2.234.0-alpha.0" };
|
|
25
25
|
/**
|
|
26
26
|
* Create an MCP protocol configuration
|
|
27
27
|
* @param props - Optional MCP configuration properties
|
|
@@ -75,7 +75,7 @@ var McpGatewaySearchType;
|
|
|
75
75
|
* MCP (Model Context Protocol) configuration implementation
|
|
76
76
|
*/
|
|
77
77
|
class McpProtocolConfiguration {
|
|
78
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpProtocolConfiguration", version: "2.
|
|
78
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpProtocolConfiguration", version: "2.234.0-alpha.0" };
|
|
79
79
|
protocolType;
|
|
80
80
|
/**
|
|
81
81
|
* The supported MCP protocol versions
|
|
@@ -24,7 +24,7 @@ class ApiSchemaError extends Error {
|
|
|
24
24
|
* Represents the concept of an API Schema for a Gateway Target.
|
|
25
25
|
*/
|
|
26
26
|
class ApiSchema extends base_schema_1.TargetSchema {
|
|
27
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiSchema", version: "2.
|
|
27
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ApiSchema", version: "2.234.0-alpha.0" };
|
|
28
28
|
/**
|
|
29
29
|
* Creates an API Schema from a local file.
|
|
30
30
|
* @param path - the path to the local file containing the OpenAPI schema for the action group
|
|
@@ -82,7 +82,7 @@ exports.ApiSchema = ApiSchema;
|
|
|
82
82
|
class AssetApiSchema extends ApiSchema {
|
|
83
83
|
path;
|
|
84
84
|
options;
|
|
85
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetApiSchema", version: "2.
|
|
85
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetApiSchema", version: "2.234.0-alpha.0" };
|
|
86
86
|
asset;
|
|
87
87
|
constructor(path, options = {}) {
|
|
88
88
|
super();
|
|
@@ -144,7 +144,7 @@ exports.AssetApiSchema = AssetApiSchema;
|
|
|
144
144
|
*/
|
|
145
145
|
class InlineApiSchema extends ApiSchema {
|
|
146
146
|
schema;
|
|
147
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineApiSchema", version: "2.
|
|
147
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineApiSchema", version: "2.234.0-alpha.0" };
|
|
148
148
|
constructor(schema) {
|
|
149
149
|
super(undefined, undefined, schema);
|
|
150
150
|
this.schema = schema;
|
|
@@ -174,7 +174,7 @@ exports.InlineApiSchema = InlineApiSchema;
|
|
|
174
174
|
class S3ApiSchema extends ApiSchema {
|
|
175
175
|
location;
|
|
176
176
|
bucketOwnerAccountId;
|
|
177
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ApiSchema", version: "2.
|
|
177
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ApiSchema", version: "2.234.0-alpha.0" };
|
|
178
178
|
constructor(location, bucketOwnerAccountId) {
|
|
179
179
|
super(location, bucketOwnerAccountId, undefined);
|
|
180
180
|
this.location = location;
|
|
@@ -39,7 +39,7 @@ class ToolSchemaError extends Error {
|
|
|
39
39
|
* TOOL SCHEMA CLASS
|
|
40
40
|
*****************************************************************************/
|
|
41
41
|
class ToolSchema extends base_schema_1.TargetSchema {
|
|
42
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ToolSchema", version: "2.
|
|
42
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ToolSchema", version: "2.234.0-alpha.0" };
|
|
43
43
|
/**
|
|
44
44
|
* Creates a tool Schema from a local file.
|
|
45
45
|
* @param path - the path to the local file containing the function schema for the tool
|
|
@@ -97,7 +97,7 @@ exports.ToolSchema = ToolSchema;
|
|
|
97
97
|
class AssetToolSchema extends ToolSchema {
|
|
98
98
|
path;
|
|
99
99
|
options;
|
|
100
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetToolSchema", version: "2.
|
|
100
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AssetToolSchema", version: "2.234.0-alpha.0" };
|
|
101
101
|
asset;
|
|
102
102
|
constructor(path, options = {}) {
|
|
103
103
|
super();
|
|
@@ -150,7 +150,7 @@ exports.AssetToolSchema = AssetToolSchema;
|
|
|
150
150
|
*/
|
|
151
151
|
class InlineToolSchema extends ToolSchema {
|
|
152
152
|
schema;
|
|
153
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineToolSchema", version: "2.
|
|
153
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.InlineToolSchema", version: "2.234.0-alpha.0" };
|
|
154
154
|
constructor(schema) {
|
|
155
155
|
super(undefined, undefined, schema);
|
|
156
156
|
this.schema = schema;
|
|
@@ -180,7 +180,7 @@ exports.InlineToolSchema = InlineToolSchema;
|
|
|
180
180
|
class S3ToolSchema extends ToolSchema {
|
|
181
181
|
location;
|
|
182
182
|
bucketOwnerAccountId;
|
|
183
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ToolSchema", version: "2.
|
|
183
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.S3ToolSchema", version: "2.234.0-alpha.0" };
|
|
184
184
|
constructor(location, bucketOwnerAccountId) {
|
|
185
185
|
super(location, bucketOwnerAccountId, undefined);
|
|
186
186
|
this.location = location;
|
|
@@ -39,7 +39,7 @@ var McpTargetType;
|
|
|
39
39
|
* permission management and property definitions.
|
|
40
40
|
*/
|
|
41
41
|
class GatewayTargetBase extends aws_cdk_lib_1.Resource {
|
|
42
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase", version: "2.
|
|
42
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTargetBase", version: "2.234.0-alpha.0" };
|
|
43
43
|
/**
|
|
44
44
|
* Grants IAM actions to the IAM Principal
|
|
45
45
|
*
|
|
@@ -16,7 +16,7 @@ const validation_helpers_1 = require("../validation-helpers");
|
|
|
16
16
|
* Provides common functionality for all MCP target types
|
|
17
17
|
*/
|
|
18
18
|
class McpTargetConfiguration {
|
|
19
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration", version: "2.
|
|
19
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpTargetConfiguration", version: "2.234.0-alpha.0" };
|
|
20
20
|
/**
|
|
21
21
|
* Renders the configuration as CloudFormation properties
|
|
22
22
|
* @internal
|
|
@@ -38,7 +38,7 @@ exports.McpTargetConfiguration = McpTargetConfiguration;
|
|
|
38
38
|
* allowing the gateway to invoke the function to provide tool capabilities.
|
|
39
39
|
*/
|
|
40
40
|
class LambdaTargetConfiguration extends McpTargetConfiguration {
|
|
41
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.LambdaTargetConfiguration", version: "2.
|
|
41
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.LambdaTargetConfiguration", version: "2.234.0-alpha.0" };
|
|
42
42
|
/**
|
|
43
43
|
* Create a Lambda target configuration
|
|
44
44
|
*
|
|
@@ -128,7 +128,7 @@ exports.LambdaTargetConfiguration = LambdaTargetConfiguration;
|
|
|
128
128
|
* allowing the gateway to transform API operations into tool calls.
|
|
129
129
|
*/
|
|
130
130
|
class OpenApiTargetConfiguration extends McpTargetConfiguration {
|
|
131
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.OpenApiTargetConfiguration", version: "2.
|
|
131
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.OpenApiTargetConfiguration", version: "2.234.0-alpha.0" };
|
|
132
132
|
/**
|
|
133
133
|
* Create an OpenAPI target configuration
|
|
134
134
|
*
|
|
@@ -246,7 +246,7 @@ exports.OpenApiTargetConfiguration = OpenApiTargetConfiguration;
|
|
|
246
246
|
* allowing the gateway to transform Smithy operations into tool calls.
|
|
247
247
|
*/
|
|
248
248
|
class SmithyTargetConfiguration extends McpTargetConfiguration {
|
|
249
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SmithyTargetConfiguration", version: "2.
|
|
249
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SmithyTargetConfiguration", version: "2.234.0-alpha.0" };
|
|
250
250
|
/**
|
|
251
251
|
* Create a Smithy target configuration
|
|
252
252
|
*
|
|
@@ -328,7 +328,7 @@ exports.SmithyTargetConfiguration = SmithyTargetConfiguration;
|
|
|
328
328
|
* synchronization.
|
|
329
329
|
*/
|
|
330
330
|
class McpServerTargetConfiguration extends McpTargetConfiguration {
|
|
331
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpServerTargetConfiguration", version: "2.
|
|
331
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.McpServerTargetConfiguration", version: "2.234.0-alpha.0" };
|
|
332
332
|
/**
|
|
333
333
|
* Create an MCP server target configuration
|
|
334
334
|
*
|
|
@@ -95,7 +95,7 @@ export interface GatewayTargetOpenApiProps extends GatewayTargetCommonProps {
|
|
|
95
95
|
/**
|
|
96
96
|
* Credential providers for authentication
|
|
97
97
|
* OpenAPI targets support API key and OAuth authentication (not IAM)
|
|
98
|
-
* @default
|
|
98
|
+
* @default - If not provided, defaults to IAM role which will fail at runtime
|
|
99
99
|
*/
|
|
100
100
|
readonly credentialProviderConfigurations?: ICredentialProviderConfig[];
|
|
101
101
|
}
|
|
@@ -78,7 +78,7 @@ let GatewayTarget = (() => {
|
|
|
78
78
|
GatewayTarget = _classThis = _classDescriptor.value;
|
|
79
79
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
80
80
|
}
|
|
81
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget", version: "2.
|
|
81
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.GatewayTarget", version: "2.234.0-alpha.0" };
|
|
82
82
|
/** Uniquely identifies this class. */
|
|
83
83
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.GatewayTarget';
|
|
84
84
|
/**
|
|
@@ -441,4 +441,4 @@ let GatewayTarget = (() => {
|
|
|
441
441
|
return GatewayTarget = _classThis;
|
|
442
442
|
})();
|
|
443
443
|
exports.GatewayTarget = GatewayTarget;
|
|
444
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEwQztBQUMxQyxxRUFBcUU7QUFDckUsMkNBQTJDO0FBRTNDLDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFHMUUsb0NBQThDO0FBRzlDLCtDQUErSDtBQUMvSCxpRUFBOEs7QUFDOUssOEVBQTRHO0FBQzVHLDhEQUFtRztBQXNNbkc7OytFQUUrRTtBQUUvRTs7Ozs7Ozs7O0dBU0c7SUFFVSxhQUFhOzRCQUR6QixvQ0FBa0I7Ozs7c0JBQ2dCLCtCQUFpQjs7OzZCQUF6QixTQUFRLFdBQWlCOzs7O3FDQWlSakQsSUFBQSxrQ0FBYyxHQUFFO1lBQ2pCLDhLQUFPLFNBQVMsNkRBTWY7WUF4UkgsNktBNlhDOzs7OztRQTVYQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLG9EQUFvRCxDQUFDO1FBQzVHOzs7Ozs7OztXQVFHO1FBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUN2QyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEI7Ozs7Ozs7Ozs7WUFFOUIsTUFBTSxxQkFBc0IsU0FBUSwrQkFBaUI7Z0JBQ25DLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUN4QixnQ0FBZ0MsR0FBRyxFQUFFLENBQUM7Z0JBQ3RDLGtCQUFrQixHQUFHLHVDQUF5QixDQUFDLEdBQUcsQ0FBQztnQkFDbkQsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLGFBQWEsR0FB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Z0JBQ3ZDLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxHQUFHO2FBQ2YsQ0FBQyxDQUFDO1lBRUgsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksb0NBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNGOztZQTVYVSx1REFBYTs7Ozs7QUFBYixzQ0FBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenksIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYmVkcm9ja2FnZW50Y29yZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElHYXRld2F5IH0gZnJvbSAnLi4vZ2F0ZXdheS1iYXNlJztcbmltcG9ydCB7IEdBVEVXQVlfU1lOQ19QRVJNUyB9IGZyb20gJy4uL3Blcm1zJztcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hL2FwaS1zY2hlbWEnO1xuaW1wb3J0IHsgVG9vbFNjaGVtYSB9IGZyb20gJy4vc2NoZW1hL3Rvb2wtc2NoZW1hJztcbmltcG9ydCB7IEdhdGV3YXlUYXJnZXRCYXNlLCBHYXRld2F5VGFyZ2V0UHJvdG9jb2xUeXBlLCBJR2F0ZXdheVRhcmdldCwgSU1jcEdhdGV3YXlUYXJnZXQsIE1jcFRhcmdldFR5cGUgfSBmcm9tICcuL3RhcmdldC1iYXNlJztcbmltcG9ydCB7IElUYXJnZXRDb25maWd1cmF0aW9uLCBMYW1iZGFUYXJnZXRDb25maWd1cmF0aW9uLCBNY3BTZXJ2ZXJUYXJnZXRDb25maWd1cmF0aW9uLCBPcGVuQXBpVGFyZ2V0Q29uZmlndXJhdGlvbiwgU21pdGh5VGFyZ2V0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vdGFyZ2V0LWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlciwgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4uL291dGJvdW5kLWF1dGgvY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyB2YWxpZGF0ZVN0cmluZ0ZpZWxkLCB2YWxpZGF0ZUZpZWxkUGF0dGVybiwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3BzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBHYXRld2F5IFRhcmdldCB0eXBlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBnYXRld2F5XG4gICAqIFBhdHRlcm46IF4oWzAtOWEtekEtWl1bLV0/KXsxLDEwMH0kXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5VGFyZ2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIFRoZSBkZXNjcmlwdGlvbiBjYW4gaGF2ZSB1cCB0byAyMDAgY2hhcmFjdGVyc1xuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIEdhdGV3YXkgVGFyZ2V0IHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldFByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gKExhbWJkYSwgT3BlbkFQSSwgb3IgU21pdGh5KVxuICAgKiBVc2Ugb25lIG9mIHRoZSBjb25maWd1cmF0aW9uIGhlbHBlciBjbGFzc2VzOlxuICAgKiAtIExhbWJkYVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKClcbiAgICogLSBPcGVuQXBpVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKiAtIFNtaXRoeVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKClcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldENvbmZpZ3VyYXRpb246IElUYXJnZXRDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogQGRlZmF1bHQgLSBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBMYW1iZGEtYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqIENvbnZlbmllbmNlIGludGVyZmFjZSBmb3IgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldExhbWJkYVByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdG9vbCBzY2hlbWEgZGVmaW5pbmcgdGhlIGF2YWlsYWJsZSB0b29sc1xuICAgKi9cbiAgcmVhZG9ubHkgdG9vbFNjaGVtYTogVG9vbFNjaGVtYTtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIExhbWJkYSB0YXJnZXRzIG9ubHkgc3VwcG9ydCBJQU0gcm9sZSBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBPcGVuQVBJLWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldE9wZW5BcGlQcm9wcyBleHRlbmRzIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5OiBJR2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIE9wZW5BUEkgc2NoZW1hIGRlZmluaW5nIHRoZSBBUElcbiAgICovXG4gIHJlYWRvbmx5IGFwaVNjaGVtYTogQXBpU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHZhbGlkYXRlIHRoZSBPcGVuQVBJIHNjaGVtYSAob25seSBhcHBsaWVzIHRvIGlubGluZSBzY2hlbWFzKVxuICAgKiBOb3RlOiBWYWxpZGF0aW9uIGlzIG9ubHkgcGVyZm9ybWVkIGZvciBpbmxpbmUgc2NoZW1hcyBkdXJpbmcgQ0RLIHN5bnRoZXNpcy5cbiAgICogUzMgYW5kIGFzc2V0LWJhc2VkIHNjaGVtYXMgY2Fubm90IGJlIHZhbGlkYXRlZCBhdCBzeW50aGVzaXMgdGltZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGVPcGVuQXBpU2NoZW1hPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIE9wZW5BUEkgdGFyZ2V0cyBzdXBwb3J0IEFQSSBrZXkgYW5kIE9BdXRoIGF1dGhlbnRpY2F0aW9uIChub3QgSUFNKVxuICAgKiBAZGVmYXVsdDogSWYgbm90IHByb3ZpZGVkLCBkZWZhdWx0cyB0byBJQU0gcm9sZSB3aGljaCB3aWxsIGZhaWwgYXQgcnVudGltZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBTbWl0aHktYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0U21pdGh5UHJvcHMgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0Q29tbW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIFRoZSBTbWl0aHkgbW9kZWwgZGVmaW5pbmcgdGhlIEFQSVxuICAgKi9cbiAgcmVhZG9ubHkgc21pdGh5TW9kZWw6IEFwaVNjaGVtYTtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIFNtaXRoeSB0YXJnZXRzIG9ubHkgc3VwcG9ydCBJQU0gcm9sZSBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBNQ1AgU2VydmVyLWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldE1jcFNlcnZlclByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUFMgZW5kcG9pbnQgVVJMIG9mIHRoZSBNQ1Agc2VydmVyXG4gICAqXG4gICAqIFRoZSBlbmRwb2ludCBtdXN0OlxuICAgKiAtIFVzZSBIVFRQUyBwcm90b2NvbFxuICAgKiAtIEJlIHByb3Blcmx5IFVSTC1lbmNvZGVkXG4gICAqIC0gUG9pbnQgdG8gYW4gTUNQIHNlcnZlciB0aGF0IGltcGxlbWVudHMgdG9vbCBjYXBhYmlsaXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBBdHRyaWJ1dGVzIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgR2F0ZXdheSBUYXJnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHYXRld2F5VGFyZ2V0QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0QXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheVRhcmdldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGdhdGV3YXkgdGhpcyB0YXJnZXQgYmVsb25ncyB0b1xuICAgKi9cbiAgcmVhZG9ubHkgZ2F0ZXdheTogSUdhdGV3YXk7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YXR1cyBvZiB0aGUgdGFyZ2V0XG4gICAqIEBkZWZhdWx0IC0gTm8gc3RhdHVzXG4gICAqL1xuICByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNyZWF0aW9uIHRpbWVzdGFtcFxuICAgKiBAZGVmYXVsdCAtIE5vIGNyZWF0aW9uIHRpbWVzdGFtcFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBsYXN0IHVwZGF0ZSB0aW1lc3RhbXBcbiAgICogQGRlZmF1bHQgLSBObyB1cGRhdGUgdGltZXN0YW1wXG4gICAqL1xuICByZWFkb25seSB1cGRhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqXG4gKiBEZWZpbmVzIHRvb2xzIHRoYXQgeW91ciBnYXRld2F5IHdpbGwgaG9zdC4gU3VwcG9ydHMgbXVsdGlwbGUgdGFyZ2V0IHR5cGVzOlxuICogLSBMYW1iZGE6IFdyYXBzIGEgTGFtYmRhIGZ1bmN0aW9uIGFzIE1DUCB0b29sc1xuICogLSBPcGVuQVBJOiBFeHBvc2VzIGFuIE9wZW5BUEkvUkVTVCBBUEkgYXMgTUNQIHRvb2xzXG4gKiAtIFNtaXRoeTogRXhwb3NlcyBhIFNtaXRoeS1tb2RlbGVkIEFQSSBhcyBNQ1AgdG9vbHNcbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpCZWRyb2NrQWdlbnRDb3JlOjpHYXRld2F5VGFyZ2V0XG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS1idWlsZGluZy1hZGRpbmctdGFyZ2V0cy5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBHYXRld2F5VGFyZ2V0IGV4dGVuZHMgR2F0ZXdheVRhcmdldEJhc2UgaW1wbGVtZW50cyBJTWNwR2F0ZXdheVRhcmdldCB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWJlZHJvY2stYWdlbnRjb3JlLWFscGhhLkdhdGV3YXlUYXJnZXQnO1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0IHVzaW5nIGl0cyBhdHRyaWJ1dGVzXG4gICAqIFRoaXMgYWxsb3dzIHlvdSB0byByZWZlcmVuY2UgYSBHYXRld2F5IFRhcmdldCB0aGF0IHdhcyBjcmVhdGVkIG91dHNpZGUgb2YgQ0RLXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgZXhpc3RpbmcgR2F0ZXdheSBUYXJnZXRcbiAgICogQHJldHVybnMgQW4gSUdhdGV3YXlUYXJnZXQgaW5zdGFuY2UgcmVwcmVzZW50aW5nIHRoZSBpbXBvcnRlZCB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUdhdGV3YXlUYXJnZXRBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogR2F0ZXdheVRhcmdldEF0dHJpYnV0ZXMsXG4gICk6IElHYXRld2F5VGFyZ2V0IHtcbiAgICBjbGFzcyBJbXBvcnRlZEdhdGV3YXlUYXJnZXQgZXh0ZW5kcyBHYXRld2F5VGFyZ2V0QmFzZSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0QXJuID0gYXR0cnMudGFyZ2V0QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldElkID0gYXR0cnMudGFyZ2V0SWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZSA9IGF0dHJzLmdhdGV3YXlUYXJnZXROYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gYXR0cnMuc3RhdHVzO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGdhdGV3YXkgPSBhdHRycy5nYXRld2F5O1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zID0gW107XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0UHJvdG9jb2xUeXBlID0gR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZS5NQ1A7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzID0gYXR0cnMuc3RhdHVzO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1c1JlYXNvbnMgPSB1bmRlZmluZWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gYXR0cnMuY3JlYXRlZEF0O1xuICAgICAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdCA9IGF0dHJzLnVwZGF0ZWRBdDtcblxuICAgICAgY29uc3RydWN0b3IoczogQ29uc3RydWN0LCBpOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocywgaSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgTGFtYmRhLWJhc2VkIE1DUCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IHdyYXBzIGEgTGFtYmRhIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBmb3IgdGhlIExhbWJkYSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JMYW1iZGEoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBHYXRld2F5VGFyZ2V0TGFtYmRhUHJvcHMsXG4gICk6IEdhdGV3YXlUYXJnZXQge1xuICAgIHJldHVybiBuZXcgR2F0ZXdheVRhcmdldChzY29wZSwgaWQsIHtcbiAgICAgIGdhdGV3YXk6IHByb3BzLmdhdGV3YXksXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZTogcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogcHJvcHMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMsXG4gICAgICB0YXJnZXRDb25maWd1cmF0aW9uOiBMYW1iZGFUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZShcbiAgICAgICAgcHJvcHMubGFtYmRhRnVuY3Rpb24sXG4gICAgICAgIHByb3BzLnRvb2xTY2hlbWEsXG4gICAgICApLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBPcGVuQVBJLWJhc2VkIE1DUCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGV4cG9zZXMgYW4gT3BlbkFQSS9SRVNUIEFQSVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBPcGVuQVBJIHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvck9wZW5BcGkoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBHYXRld2F5VGFyZ2V0T3BlbkFwaVByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogT3BlbkFwaVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLmFwaVNjaGVtYSwgcHJvcHMudmFsaWRhdGVPcGVuQXBpU2NoZW1hKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBTbWl0aHktYmFzZWQgTUNQIHRhcmdldFxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgdGFyZ2V0IHRoYXQgZXhwb3NlcyBhIFNtaXRoeS1tb2RlbGVkIEFQSVxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBTbWl0aHkgdGFyZ2V0XG4gICAqIEByZXR1cm5zIEEgbmV3IEdhdGV3YXlUYXJnZXQgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yU21pdGh5KFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldFNtaXRoeVByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogU21pdGh5VGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUocHJvcHMuc21pdGh5TW9kZWwpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBNQ1AgU2VydmVyLWJhc2VkIHRhcmdldFxuICAgKiBDb252ZW5pZW5jZSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgdGFyZ2V0IHRoYXQgY29ubmVjdHMgdG8gYW4gZXh0ZXJuYWwgTUNQIHNlcnZlclxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBNQ1Agc2VydmVyIHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9nYXRld2F5LXRhcmdldC1NQ1BzZXJ2ZXJzLmh0bWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yTWNwU2VydmVyKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldE1jcFNlcnZlclByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogTWNwU2VydmVyVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUocHJvcHMuZW5kcG9pbnQpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRBcm47XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldElkO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBuYW1lO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBnYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgY3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIHRoaXMgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogVGhlIHByb3RvY29sIHR5cGUgKGFsd2F5cyBNQ1AgZm9yIG5vdylcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRQcm90b2NvbFR5cGUgPSBHYXRld2F5VGFyZ2V0UHJvdG9jb2xUeXBlLk1DUDtcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIE1DUCB0YXJnZXQgdHlwZSAoTGFtYmRhLCBPcGVuQVBJLCBTbWl0aHksIG9yIE1DUCBTZXJ2ZXIpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0VHlwZTogTWNwVGFyZ2V0VHlwZTtcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cz87XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgcmVhc29ucyBmb3IgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXNSZWFzb25zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHRhcmdldCB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0PztcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGdhdGV3YXkgdGFyZ2V0IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVwZGF0ZWRBdD87XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRSZXNvdXJjZTogYmVkcm9ja2FnZW50Y29yZS5DZm5HYXRld2F5VGFyZ2V0O1xuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldENvbmZpZ3VyYXRpb246IElUYXJnZXRDb25maWd1cmF0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHYXRld2F5VGFyZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgLy8gVmFsaWRhdGUgYW5kIGFzc2lnbiBwcm9wZXJ0aWVzXG4gICAgdGhpcy5uYW1lID0gcHJvcHMuZ2F0ZXdheVRhcmdldE5hbWU7XG4gICAgdGhpcy52YWxpZGF0ZUdhdGV3YXlUYXJnZXROYW1lKHRoaXMubmFtZSk7XG5cbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gICAgaWYgKHRoaXMuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMudmFsaWRhdGVEZXNjcmlwdGlvbih0aGlzLmRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmdhdGV3YXkgPSBwcm9wcy5nYXRld2F5O1xuICAgIHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbiA9IHByb3BzLnRhcmdldENvbmZpZ3VyYXRpb247XG4gICAgdGhpcy50YXJnZXRUeXBlID0gdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLnRhcmdldFR5cGU7XG5cbiAgICAvLyBHZXQgdGFyZ2V0LXNwZWNpZmljIGNyZWRlbnRpYWwgY29uZmlndXJhdGlvbnNcbiAgICB0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zID0gdGhpcy5fZ2V0VGFyZ2V0U3BlY2lmaWNDcmVkZW50aWFscyhcbiAgICAgIHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICk7XG5cbiAgICAvLyBCaW5kIHRoZSB0YXJnZXQgY29uZmlndXJhdGlvblxuICAgIC8vIFRoaXMgc2V0cyB1cCBwZXJtaXNzaW9ucyBhbmQgZGVwZW5kZW5jaWVzXG4gICAgdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLmJpbmQodGhpcywgdGhpcy5nYXRld2F5KTtcblxuICAgIC8vIENyZWF0ZSB0aGUgTDEgY29uc3RydWN0XG4gICAgY29uc3QgY2ZuUHJvcHM6IGJlZHJvY2thZ2VudGNvcmUuQ2ZuR2F0ZXdheVRhcmdldFByb3BzID0ge1xuICAgICAgZ2F0ZXdheUlkZW50aWZpZXI6IHRoaXMuZ2F0ZXdheS5nYXRld2F5SWQsXG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBMYXp5LmFueSh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuX3JlbmRlckNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKCksXG4gICAgICB9KSxcblxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24uX3JlbmRlcigpLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIHRoaXMudGFyZ2V0UmVzb3VyY2UgPSBuZXcgYmVkcm9ja2FnZW50Y29yZS5DZm5HYXRld2F5VGFyZ2V0KFxuICAgICAgdGhpcyxcbiAgICAgICdSZXNvdXJjZScsXG4gICAgICBjZm5Qcm9wcyxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucykge1xuICAgICAgICBwcm92aWRlclxuICAgICAgICAgIC5ncmFudE5lZWRlZFBlcm1pc3Npb25zVG9Sb2xlKHRoaXMuZ2F0ZXdheS5yb2xlKVxuICAgICAgICAgID8uYXBwbHlCZWZvcmUodGhpcy50YXJnZXRSZXNvdXJjZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50YXJnZXRJZCA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clRhcmdldElkO1xuICAgIHRoaXMudGFyZ2V0QXJuID0gdGhpcy50YXJnZXRSZXNvdXJjZS5yZWY7XG4gICAgdGhpcy5zdGF0dXMgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJTdGF0dXM7XG4gICAgdGhpcy5zdGF0dXNSZWFzb25zID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyU3RhdHVzUmVhc29ucztcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0ckNyZWF0ZWRBdDtcbiAgICB0aGlzLnVwZGF0ZWRBdCA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clVwZGF0ZWRBdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzeW5jaHJvbml6ZSB0aGlzIGdhdGV3YXkncyB0YXJnZXRzXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGdyYW50cyB0aGUgYFN5bmNocm9uaXplR2F0ZXdheVRhcmdldHNgIHBlcm1pc3Npb24sIHdoaWNoIGlzIHByaW1hcmlseVxuICAgKiBuZWVkZWQgZm9yIE1DUCBTZXJ2ZXIgdGFyZ2V0cyB3aGVuIHlvdSBuZWVkIHRvIHJlZnJlc2ggdGhlIHRvb2wgY2F0YWxvZyBhZnRlciB0aGVcbiAgICogTUNQIHNlcnZlcidzIHRvb2xzIGhhdmUgY2hhbmdlZC5cbiAgICovXG4gIEBNZXRob2RNZXRhZGF0YSgpXG4gIHB1YmxpYyBncmFudFN5bmMoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZTogZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IEdBVEVXQVlfU1lOQ19QRVJNUyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuZ2F0ZXdheS5nYXRld2F5QXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIGJhc2VkIG9uIHRhcmdldCB0eXBlXG4gICAqXG4gICAqIC0gTGFtYmRhICYgU21pdGh5OiBEZWZhdWx0IHRvIElBTSByb2xlIGlmIG5vdCBwcm92aWRlZFxuICAgKiAtIE1DUCBTZXJ2ZXI6IFJldHVybiB1bmRlZmluZWQgaWYgbm90IHByb3ZpZGVkIChzZXJ2aWNlIGhhbmRsZXMgTm9BdXRoKVxuICAgKiAtIE9wZW5BUEk6IFJldHVybiBhcy1pcyAobXVzdCBiZSBleHBsaWNpdGx5IHByb3ZpZGVkKVxuICAgKlxuICAgKiBAcGFyYW0gcHJvdmlkZWRDcmVkZW50aWFscyBUaGUgY3JlZGVudGlhbHMgZnJvbSBwcm9wc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlZGVudGlhbCBjb25maWd1cmF0aW9ucyB0byB1c2UsIG9yIHVuZGVmaW5lZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX2dldFRhcmdldFNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgcHJvdmlkZWRDcmVkZW50aWFsczogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkLFxuICApOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW10gfCB1bmRlZmluZWQge1xuICAgIGlmIChwcm92aWRlZENyZWRlbnRpYWxzICYmIHByb3ZpZGVkQ3JlZGVudGlhbHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHByb3ZpZGVkQ3JlZGVudGlhbHM7XG4gICAgfVxuICAgIC8vIEFwcGx5IHRhcmdldC1zcGVjaWZpYyBkZWZhdWx0cyB3aGVuIG5vdCBwcm92aWRlZFxuICAgIHN3aXRjaCAodGhpcy50YXJnZXRUeXBlKSB7XG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuTEFNQkRBOlxuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLlNNSVRIWV9NT0RFTDpcbiAgICAgICAgcmV0dXJuIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldO1xuXG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuTUNQX1NFUlZFUjpcbiAgICAgICAgLy8gUmV0dXJuIGVtcHR5IGFycmF5LCAtIHNlcnZpY2UgaGFuZGxlcyBOb0F1dGggYXV0b21hdGljYWxseVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICBjYXNlIE1jcFRhcmdldFR5cGUuT1BFTkFQSV9TQ0hFTUE6XG4gICAgICAgIC8vIE5vIGRlZmF1bHQgLSBtdXN0IGJlIGV4cGxpY2l0bHkgcHJvdmlkZWQsIHNlcnZpY2UgaGFuZGxlcyBhdXRvbWF0aWNhbGx5XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb25zIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgX3JlbmRlckNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/Lm1hcChwcm92aWRlciA9PiBwcm92aWRlci5fcmVuZGVyKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgZ2F0ZXdheSB0YXJnZXQgbmFtZSBmb3JtYXRcbiAgICogUGF0dGVybjogXihbMC05YS16QS1aXVstXT8pezEsMTAwfSRcbiAgICogTWF4IGxlbmd0aDogMTAwIGNoYXJhY3RlcnNcbiAgICogQHBhcmFtIGdhdGV3YXlUYXJnZXROYW1lIFRoZSBnYXRld2F5IHRhcmdldCBuYW1lIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIG5hbWUgaXMgaW52YWxpZFxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVHYXRld2F5VGFyZ2V0TmFtZShnYXRld2F5VGFyZ2V0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChnYXRld2F5VGFyZ2V0TmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsZW5ndGhFcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgIHZhbHVlOiBnYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGZpZWxkTmFtZTogJ0dhdGV3YXkgdGFyZ2V0IG5hbWUnLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiAxMDAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICBnYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgICdHYXRld2F5IHRhcmdldCBuYW1lJyxcbiAgICAgIC9eKFswLTlhLXpBLVpdWy1dPyl7MSwxMDB9JC8sXG4gICAgICAnR2F0ZXdheSB0YXJnZXQgbmFtZSBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgaHlwaGVucywgd2l0aCBoeXBoZW5zIG9ubHkgYmV0d2VlbiBjaGFyYWN0ZXJzJyxcbiAgICApO1xuXG4gICAgY29uc3QgYWxsRXJyb3JzID0gWy4uLmxlbmd0aEVycm9ycywgLi4ucGF0dGVybkVycm9yc107XG4gICAgaWYgKGFsbEVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGFsbEVycm9ycy5qb2luKCdcXG4nKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgZGVzY3JpcHRpb24gZm9ybWF0XG4gICAqIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAyMDAgY2hhcmFjdGVyc1xuICAgKiBAdGhyb3dzIEVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoZGVzY3JpcHRpb24pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGVTdHJpbmdGaWVsZCh7XG4gICAgICB2YWx1ZTogZGVzY3JpcHRpb24sXG4gICAgICBmaWVsZE5hbWU6ICdHYXRld2F5IHRhcmdldCBkZXNjcmlwdGlvbicsXG4gICAgICBtaW5MZW5ndGg6IDEsXG4gICAgICBtYXhMZW5ndGg6IDIwMCxcbiAgICB9KTtcblxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
444
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEwQztBQUMxQyxxRUFBcUU7QUFDckUsMkNBQTJDO0FBRTNDLDhFQUE4RjtBQUM5RiwwRUFBMEU7QUFHMUUsb0NBQThDO0FBRzlDLCtDQUErSDtBQUMvSCxpRUFBOEs7QUFDOUssOEVBQTRHO0FBQzVHLDhEQUFtRztBQXNNbkc7OytFQUUrRTtBQUUvRTs7Ozs7Ozs7O0dBU0c7SUFFVSxhQUFhOzRCQUR6QixvQ0FBa0I7Ozs7c0JBQ2dCLCtCQUFpQjs7OzZCQUF6QixTQUFRLFdBQWlCOzs7O3FDQWlSakQsSUFBQSxrQ0FBYyxHQUFFO1lBQ2pCLDhLQUFPLFNBQVMsNkRBTWY7WUF4UkgsNktBNlhDOzs7OztRQTVYQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLG9EQUFvRCxDQUFDO1FBQzVHOzs7Ozs7OztXQVFHO1FBQ0ksTUFBTSxDQUFDLDJCQUEyQixDQUN2QyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBOEI7Ozs7Ozs7Ozs7WUFFOUIsTUFBTSxxQkFBc0IsU0FBUSwrQkFBaUI7Z0JBQ25DLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO2dCQUM1QixRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDMUIsSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO2dCQUN4QixnQ0FBZ0MsR0FBRyxFQUFFLENBQUM7Z0JBQ3RDLGtCQUFrQixHQUFHLHVDQUF5QixDQUFDLEdBQUcsQ0FBQztnQkFDbkQsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLGFBQWEsR0FB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Z0JBQ3ZDLFNBQVMsRUFBRSxDQUFDO2dCQUNaLFNBQVMsRUFBRSxHQUFHO2FBQ2YsQ0FBQyxDQUFDO1lBRUgsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksb0NBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNGOztZQTVYVSx1REFBYTs7Ozs7QUFBYixzQ0FBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhenksIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYmVkcm9ja2FnZW50Y29yZSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IGFkZENvbnN0cnVjdE1ldGFkYXRhLCBNZXRob2RNZXRhZGF0YSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL21ldGFkYXRhLXJlc291cmNlJztcbmltcG9ydCB7IHByb3BlcnR5SW5qZWN0YWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2NvcmUvbGliL3Byb3AtaW5qZWN0YWJsZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElHYXRld2F5IH0gZnJvbSAnLi4vZ2F0ZXdheS1iYXNlJztcbmltcG9ydCB7IEdBVEVXQVlfU1lOQ19QRVJNUyB9IGZyb20gJy4uL3Blcm1zJztcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gJy4vc2NoZW1hL2FwaS1zY2hlbWEnO1xuaW1wb3J0IHsgVG9vbFNjaGVtYSB9IGZyb20gJy4vc2NoZW1hL3Rvb2wtc2NoZW1hJztcbmltcG9ydCB7IEdhdGV3YXlUYXJnZXRCYXNlLCBHYXRld2F5VGFyZ2V0UHJvdG9jb2xUeXBlLCBJR2F0ZXdheVRhcmdldCwgSU1jcEdhdGV3YXlUYXJnZXQsIE1jcFRhcmdldFR5cGUgfSBmcm9tICcuL3RhcmdldC1iYXNlJztcbmltcG9ydCB7IElUYXJnZXRDb25maWd1cmF0aW9uLCBMYW1iZGFUYXJnZXRDb25maWd1cmF0aW9uLCBNY3BTZXJ2ZXJUYXJnZXRDb25maWd1cmF0aW9uLCBPcGVuQXBpVGFyZ2V0Q29uZmlndXJhdGlvbiwgU21pdGh5VGFyZ2V0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vdGFyZ2V0LWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlciwgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4uL291dGJvdW5kLWF1dGgvY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyB2YWxpZGF0ZVN0cmluZ0ZpZWxkLCB2YWxpZGF0ZUZpZWxkUGF0dGVybiwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3BzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBHYXRld2F5IFRhcmdldCB0eXBlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICogVGhlIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBnYXRld2F5XG4gICAqIFBhdHRlcm46IF4oWzAtOWEtekEtWl1bLV0/KXsxLDEwMH0kXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5VGFyZ2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIFRoZSBkZXNjcmlwdGlvbiBjYW4gaGF2ZSB1cCB0byAyMDAgY2hhcmFjdGVyc1xuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIEdhdGV3YXkgVGFyZ2V0IHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldFByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gKExhbWJkYSwgT3BlbkFQSSwgb3IgU21pdGh5KVxuICAgKiBVc2Ugb25lIG9mIHRoZSBjb25maWd1cmF0aW9uIGhlbHBlciBjbGFzc2VzOlxuICAgKiAtIExhbWJkYVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKClcbiAgICogLSBPcGVuQXBpVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoKVxuICAgKiAtIFNtaXRoeVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKClcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldENvbmZpZ3VyYXRpb246IElUYXJnZXRDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICogQGRlZmF1bHQgLSBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBMYW1iZGEtYmFzZWQgR2F0ZXdheSBUYXJnZXRcbiAqIENvbnZlbmllbmNlIGludGVyZmFjZSBmb3IgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldExhbWJkYVByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIGZ1bmN0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogSUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdG9vbCBzY2hlbWEgZGVmaW5pbmcgdGhlIGF2YWlsYWJsZSB0b29sc1xuICAgKi9cbiAgcmVhZG9ubHkgdG9vbFNjaGVtYTogVG9vbFNjaGVtYTtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIExhbWJkYSB0YXJnZXRzIG9ubHkgc3VwcG9ydCBJQU0gcm9sZSBhdXRoZW50aWNhdGlvblxuICAgKiBAZGVmYXVsdCAtIFtHYXRld2F5Q3JlZGVudGlhbFByb3ZpZGVyLmZyb21JYW1Sb2xlKCldXG4gICAqL1xuICByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucz86IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhbiBPcGVuQVBJLWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldE9wZW5BcGlQcm9wcyBleHRlbmRzIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5OiBJR2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIE9wZW5BUEkgc2NoZW1hIGRlZmluaW5nIHRoZSBBUElcbiAgICovXG4gIHJlYWRvbmx5IGFwaVNjaGVtYTogQXBpU2NoZW1hO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHZhbGlkYXRlIHRoZSBPcGVuQVBJIHNjaGVtYSAob25seSBhcHBsaWVzIHRvIGlubGluZSBzY2hlbWFzKVxuICAgKiBOb3RlOiBWYWxpZGF0aW9uIGlzIG9ubHkgcGVyZm9ybWVkIGZvciBpbmxpbmUgc2NoZW1hcyBkdXJpbmcgQ0RLIHN5bnRoZXNpcy5cbiAgICogUzMgYW5kIGFzc2V0LWJhc2VkIHNjaGVtYXMgY2Fubm90IGJlIHZhbGlkYXRlZCBhdCBzeW50aGVzaXMgdGltZS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsaWRhdGVPcGVuQXBpU2NoZW1hPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ3JlZGVudGlhbCBwcm92aWRlcnMgZm9yIGF1dGhlbnRpY2F0aW9uXG4gICAqIE9wZW5BUEkgdGFyZ2V0cyBzdXBwb3J0IEFQSSBrZXkgYW5kIE9BdXRoIGF1dGhlbnRpY2F0aW9uIChub3QgSUFNKVxuICAgKiBAZGVmYXVsdCAtIElmIG5vdCBwcm92aWRlZCwgZGVmYXVsdHMgdG8gSUFNIHJvbGUgd2hpY2ggd2lsbCBmYWlsIGF0IHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPzogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgU21pdGh5LWJhc2VkIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldFNtaXRoeVByb3BzIGV4dGVuZHMgR2F0ZXdheVRhcmdldENvbW1vblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBUaGUgU21pdGh5IG1vZGVsIGRlZmluaW5nIHRoZSBBUElcbiAgICovXG4gIHJlYWRvbmx5IHNtaXRoeU1vZGVsOiBBcGlTY2hlbWE7XG5cbiAgLyoqXG4gICAqIENyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciBhdXRoZW50aWNhdGlvblxuICAgKiBTbWl0aHkgdGFyZ2V0cyBvbmx5IHN1cHBvcnQgSUFNIHJvbGUgYXV0aGVudGljYXRpb25cbiAgICogQGRlZmF1bHQgLSBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM/OiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYW4gTUNQIFNlcnZlci1iYXNlZCBHYXRld2F5IFRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlUYXJnZXRNY3BTZXJ2ZXJQcm9wcyBleHRlbmRzIEdhdGV3YXlUYXJnZXRDb21tb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICByZWFkb25seSBnYXRld2F5OiBJR2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIEhUVFBTIGVuZHBvaW50IFVSTCBvZiB0aGUgTUNQIHNlcnZlclxuICAgKlxuICAgKiBUaGUgZW5kcG9pbnQgbXVzdDpcbiAgICogLSBVc2UgSFRUUFMgcHJvdG9jb2xcbiAgICogLSBCZSBwcm9wZXJseSBVUkwtZW5jb2RlZFxuICAgKiAtIFBvaW50IHRvIGFuIE1DUCBzZXJ2ZXIgdGhhdCBpbXBsZW1lbnRzIHRvb2wgY2FwYWJpbGl0aWVzXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVkZW50aWFsIHByb3ZpZGVycyBmb3IgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW107XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVRhcmdldEF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICByZWFkb25seSB0YXJnZXRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZ2F0ZXdheSB0YXJnZXRcbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXlUYXJnZXROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBnYXRld2F5IHRoaXMgdGFyZ2V0IGJlbG9uZ3MgdG9cbiAgICovXG4gIHJlYWRvbmx5IGdhdGV3YXk6IElHYXRld2F5O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdGF0dXMgb2YgdGhlIHRhcmdldFxuICAgKiBAZGVmYXVsdCAtIE5vIHN0YXR1c1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICogQGRlZmF1bHQgLSBObyBjcmVhdGlvbiB0aW1lc3RhbXBcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgbGFzdCB1cGRhdGUgdGltZXN0YW1wXG4gICAqIEBkZWZhdWx0IC0gTm8gdXBkYXRlIHRpbWVzdGFtcFxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlZEF0Pzogc3RyaW5nO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKlxuICogRGVmaW5lcyB0b29scyB0aGF0IHlvdXIgZ2F0ZXdheSB3aWxsIGhvc3QuIFN1cHBvcnRzIG11bHRpcGxlIHRhcmdldCB0eXBlczpcbiAqIC0gTGFtYmRhOiBXcmFwcyBhIExhbWJkYSBmdW5jdGlvbiBhcyBNQ1AgdG9vbHNcbiAqIC0gT3BlbkFQSTogRXhwb3NlcyBhbiBPcGVuQVBJL1JFU1QgQVBJIGFzIE1DUCB0b29sc1xuICogLSBTbWl0aHk6IEV4cG9zZXMgYSBTbWl0aHktbW9kZWxlZCBBUEkgYXMgTUNQIHRvb2xzXG4gKlxuICogQHJlc291cmNlIEFXUzo6QmVkcm9ja0FnZW50Q29yZTo6R2F0ZXdheVRhcmdldFxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L2Rldmd1aWRlL2dhdGV3YXktYnVpbGRpbmctYWRkaW5nLXRhcmdldHMuaHRtbFxuICovXG5AcHJvcGVydHlJbmplY3RhYmxlXG5leHBvcnQgY2xhc3MgR2F0ZXdheVRhcmdldCBleHRlbmRzIEdhdGV3YXlUYXJnZXRCYXNlIGltcGxlbWVudHMgSU1jcEdhdGV3YXlUYXJnZXQge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1iZWRyb2NrLWFnZW50Y29yZS1hbHBoYS5HYXRld2F5VGFyZ2V0JztcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBHYXRld2F5IFRhcmdldCB1c2luZyBpdHMgYXR0cmlidXRlc1xuICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gcmVmZXJlbmNlIGEgR2F0ZXdheSBUYXJnZXQgdGhhdCB3YXMgY3JlYXRlZCBvdXRzaWRlIG9mIENES1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGV4aXN0aW5nIEdhdGV3YXkgVGFyZ2V0XG4gICAqIEByZXR1cm5zIEFuIElHYXRld2F5VGFyZ2V0IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgaW1wb3J0ZWQgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21HYXRld2F5VGFyZ2V0QXR0cmlidXRlcyhcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgYXR0cnM6IEdhdGV3YXlUYXJnZXRBdHRyaWJ1dGVzLFxuICApOiBJR2F0ZXdheVRhcmdldCB7XG4gICAgY2xhc3MgSW1wb3J0ZWRHYXRld2F5VGFyZ2V0IGV4dGVuZHMgR2F0ZXdheVRhcmdldEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldEFybiA9IGF0dHJzLnRhcmdldEFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRJZCA9IGF0dHJzLnRhcmdldElkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IG5hbWUgPSBhdHRycy5nYXRld2F5VGFyZ2V0TmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbiA9IGF0dHJzLnN0YXR1cztcbiAgICAgIHB1YmxpYyByZWFkb25seSBnYXRld2F5ID0gYXR0cnMuZ2F0ZXdheTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyA9IFtdO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldFByb3RvY29sVHlwZSA9IEdhdGV3YXlUYXJnZXRQcm90b2NvbFR5cGUuTUNQO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IGF0dHJzLnN0YXR1cztcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXNSZWFzb25zID0gdW5kZWZpbmVkO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdCA9IGF0dHJzLmNyZWF0ZWRBdDtcbiAgICAgIHB1YmxpYyByZWFkb25seSB1cGRhdGVkQXQgPSBhdHRycy51cGRhdGVkQXQ7XG5cbiAgICAgIGNvbnN0cnVjdG9yKHM6IENvbnN0cnVjdCwgaTogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHMsIGkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkR2F0ZXdheVRhcmdldChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIExhbWJkYS1iYXNlZCBNQ1AgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCB3cmFwcyBhIExhbWJkYSBmdW5jdGlvblxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gcHJvcHMgVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBMYW1iZGEgdGFyZ2V0XG4gICAqIEByZXR1cm5zIEEgbmV3IEdhdGV3YXlUYXJnZXQgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yTGFtYmRhKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldExhbWJkYVByb3BzLFxuICApOiBHYXRld2F5VGFyZ2V0IHtcbiAgICByZXR1cm4gbmV3IEdhdGV3YXlUYXJnZXQoc2NvcGUsIGlkLCB7XG4gICAgICBnYXRld2F5OiBwcm9wcy5nYXRld2F5LFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWU6IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnM6IHByb3BzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zLFxuICAgICAgdGFyZ2V0Q29uZmlndXJhdGlvbjogTGFtYmRhVGFyZ2V0Q29uZmlndXJhdGlvbi5jcmVhdGUoXG4gICAgICAgIHByb3BzLmxhbWJkYUZ1bmN0aW9uLFxuICAgICAgICBwcm9wcy50b29sU2NoZW1hLFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gT3BlbkFQSS1iYXNlZCBNQ1AgdGFyZ2V0XG4gICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgY3JlYXRpbmcgYSB0YXJnZXQgdGhhdCBleHBvc2VzIGFuIE9wZW5BUEkvUkVTVCBBUElcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgT3BlbkFQSSB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JPcGVuQXBpKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogR2F0ZXdheVRhcmdldE9wZW5BcGlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IE9wZW5BcGlUYXJnZXRDb25maWd1cmF0aW9uLmNyZWF0ZShwcm9wcy5hcGlTY2hlbWEsIHByb3BzLnZhbGlkYXRlT3BlbkFwaVNjaGVtYSksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgU21pdGh5LWJhc2VkIE1DUCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGV4cG9zZXMgYSBTbWl0aHktbW9kZWxlZCBBUElcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgU21pdGh5IHRhcmdldFxuICAgKiBAcmV0dXJucyBBIG5ldyBHYXRld2F5VGFyZ2V0IGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvclNtaXRoeShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRTbWl0aHlQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IFNtaXRoeVRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLnNtaXRoeU1vZGVsKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gTUNQIFNlcnZlci1iYXNlZCB0YXJnZXRcbiAgICogQ29udmVuaWVuY2UgbWV0aG9kIGZvciBjcmVhdGluZyBhIHRhcmdldCB0aGF0IGNvbm5lY3RzIHRvIGFuIGV4dGVybmFsIE1DUCBzZXJ2ZXJcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIFRoZSBjb25zdHJ1Y3QgaWRcbiAgICogQHBhcmFtIHByb3BzIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgTUNQIHNlcnZlciB0YXJnZXRcbiAgICogQHJldHVybnMgQSBuZXcgR2F0ZXdheVRhcmdldCBpbnN0YW5jZVxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvZ2F0ZXdheS10YXJnZXQtTUNQc2VydmVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZvck1jcFNlcnZlcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEdhdGV3YXlUYXJnZXRNY3BTZXJ2ZXJQcm9wcyxcbiAgKTogR2F0ZXdheVRhcmdldCB7XG4gICAgcmV0dXJuIG5ldyBHYXRld2F5VGFyZ2V0KHNjb3BlLCBpZCwge1xuICAgICAgZ2F0ZXdheTogcHJvcHMuZ2F0ZXdheSxcbiAgICAgIGdhdGV3YXlUYXJnZXROYW1lOiBwcm9wcy5nYXRld2F5VGFyZ2V0TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IE1jcFNlcnZlclRhcmdldENvbmZpZ3VyYXRpb24uY3JlYXRlKHByb3BzLmVuZHBvaW50KSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0QXJuO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YXJnZXRJZDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGVzY3JpcHRpb24gZm9yIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgZ2F0ZXdheSB0aGlzIHRhcmdldCBiZWxvbmdzIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ2F0ZXdheTtcblxuICAvKipcbiAgICogVGhlIGNyZWRlbnRpYWwgcHJvdmlkZXJzIGZvciB0aGlzIHRhcmdldFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zOiBJQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlnW10gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwcm90b2NvbCB0eXBlIChhbHdheXMgTUNQIGZvciBub3cpXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0UHJvdG9jb2xUeXBlID0gR2F0ZXdheVRhcmdldFByb3RvY29sVHlwZS5NQ1A7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGVjaWZpYyBNQ1AgdGFyZ2V0IHR5cGUgKExhbWJkYSwgT3BlbkFQSSwgU21pdGh5LCBvciBNQ1AgU2VydmVyKVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFR5cGU6IE1jcFRhcmdldFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGdhdGV3YXkgdGFyZ2V0XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXM/O1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIHJlYXNvbnMgZm9yIHRoZSBnYXRld2F5IHRhcmdldFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzUmVhc29ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgd2hlbiB0aGUgZ2F0ZXdheSB0YXJnZXQgd2FzIGNyZWF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdD87XG5cbiAgLyoqXG4gICAqIFRpbWVzdGFtcCB3aGVuIHRoZSBnYXRld2F5IHRhcmdldCB3YXMgbGFzdCB1cGRhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1cGRhdGVkQXQ/O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdGFyZ2V0UmVzb3VyY2U6IGJlZHJvY2thZ2VudGNvcmUuQ2ZuR2F0ZXdheVRhcmdldDtcbiAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRDb25maWd1cmF0aW9uOiBJVGFyZ2V0Q29uZmlndXJhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogR2F0ZXdheVRhcmdldFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIFZhbGlkYXRlIGFuZCBhc3NpZ24gcHJvcGVydGllc1xuICAgIHRoaXMubmFtZSA9IHByb3BzLmdhdGV3YXlUYXJnZXROYW1lO1xuICAgIHRoaXMudmFsaWRhdGVHYXRld2F5VGFyZ2V0TmFtZSh0aGlzLm5hbWUpO1xuXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlRGVzY3JpcHRpb24odGhpcy5kZXNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgdGhpcy5nYXRld2F5ID0gcHJvcHMuZ2F0ZXdheTtcbiAgICB0aGlzLnRhcmdldENvbmZpZ3VyYXRpb24gPSBwcm9wcy50YXJnZXRDb25maWd1cmF0aW9uO1xuICAgIHRoaXMudGFyZ2V0VHlwZSA9IHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi50YXJnZXRUeXBlO1xuXG4gICAgLy8gR2V0IHRhcmdldC1zcGVjaWZpYyBjcmVkZW50aWFsIGNvbmZpZ3VyYXRpb25zXG4gICAgdGhpcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyA9IHRoaXMuX2dldFRhcmdldFNwZWNpZmljQ3JlZGVudGlhbHMoXG4gICAgICBwcm9wcy5jcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucyxcbiAgICApO1xuXG4gICAgLy8gQmluZCB0aGUgdGFyZ2V0IGNvbmZpZ3VyYXRpb25cbiAgICAvLyBUaGlzIHNldHMgdXAgcGVybWlzc2lvbnMgYW5kIGRlcGVuZGVuY2llc1xuICAgIHRoaXMudGFyZ2V0Q29uZmlndXJhdGlvbi5iaW5kKHRoaXMsIHRoaXMuZ2F0ZXdheSk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIEwxIGNvbnN0cnVjdFxuICAgIGNvbnN0IGNmblByb3BzOiBiZWRyb2NrYWdlbnRjb3JlLkNmbkdhdGV3YXlUYXJnZXRQcm9wcyA9IHtcbiAgICAgIGdhdGV3YXlJZGVudGlmaWVyOiB0aGlzLmdhdGV3YXkuZ2F0ZXdheUlkLFxuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9uczogTGF6eS5hbnkoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLl9yZW5kZXJDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucygpLFxuICAgICAgfSksXG5cbiAgICAgIHRhcmdldENvbmZpZ3VyYXRpb246IExhenkuYW55KHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy50YXJnZXRDb25maWd1cmF0aW9uLl9yZW5kZXIoKSxcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICB0aGlzLnRhcmdldFJlc291cmNlID0gbmV3IGJlZHJvY2thZ2VudGNvcmUuQ2ZuR2F0ZXdheVRhcmdldChcbiAgICAgIHRoaXMsXG4gICAgICAnUmVzb3VyY2UnLFxuICAgICAgY2ZuUHJvcHMsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMuY3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbnMpIHtcbiAgICAgICAgcHJvdmlkZXJcbiAgICAgICAgICAuZ3JhbnROZWVkZWRQZXJtaXNzaW9uc1RvUm9sZSh0aGlzLmdhdGV3YXkucm9sZSlcbiAgICAgICAgICA/LmFwcGx5QmVmb3JlKHRoaXMudGFyZ2V0UmVzb3VyY2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudGFyZ2V0SWQgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJUYXJnZXRJZDtcbiAgICB0aGlzLnRhcmdldEFybiA9IHRoaXMudGFyZ2V0UmVzb3VyY2UucmVmO1xuICAgIHRoaXMuc3RhdHVzID0gdGhpcy50YXJnZXRSZXNvdXJjZS5hdHRyU3RhdHVzO1xuICAgIHRoaXMuc3RhdHVzUmVhc29ucyA9IHRoaXMudGFyZ2V0UmVzb3VyY2UuYXR0clN0YXR1c1JlYXNvbnM7XG4gICAgdGhpcy5jcmVhdGVkQXQgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJDcmVhdGVkQXQ7XG4gICAgdGhpcy51cGRhdGVkQXQgPSB0aGlzLnRhcmdldFJlc291cmNlLmF0dHJVcGRhdGVkQXQ7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3luY2hyb25pemUgdGhpcyBnYXRld2F5J3MgdGFyZ2V0c1xuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBncmFudHMgdGhlIGBTeW5jaHJvbml6ZUdhdGV3YXlUYXJnZXRzYCBwZXJtaXNzaW9uLCB3aGljaCBpcyBwcmltYXJpbHlcbiAgICogbmVlZGVkIGZvciBNQ1AgU2VydmVyIHRhcmdldHMgd2hlbiB5b3UgbmVlZCB0byByZWZyZXNoIHRoZSB0b29sIGNhdGFsb2cgYWZ0ZXIgdGhlXG4gICAqIE1DUCBzZXJ2ZXIncyB0b29scyBoYXZlIGNoYW5nZWQuXG4gICAqL1xuICBATWV0aG9kTWV0YWRhdGEoKVxuICBwdWJsaWMgZ3JhbnRTeW5jKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBHQVRFV0FZX1NZTkNfUEVSTVMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmdhdGV3YXkuZ2F0ZXdheUFybl0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9ucyBiYXNlZCBvbiB0YXJnZXQgdHlwZVxuICAgKlxuICAgKiAtIExhbWJkYSAmIFNtaXRoeTogRGVmYXVsdCB0byBJQU0gcm9sZSBpZiBub3QgcHJvdmlkZWRcbiAgICogLSBNQ1AgU2VydmVyOiBSZXR1cm4gdW5kZWZpbmVkIGlmIG5vdCBwcm92aWRlZCAoc2VydmljZSBoYW5kbGVzIE5vQXV0aClcbiAgICogLSBPcGVuQVBJOiBSZXR1cm4gYXMtaXMgKG11c3QgYmUgZXhwbGljaXRseSBwcm92aWRlZClcbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVkQ3JlZGVudGlhbHMgVGhlIGNyZWRlbnRpYWxzIGZyb20gcHJvcHNcbiAgICogQHJldHVybnMgVGhlIGNyZWRlbnRpYWwgY29uZmlndXJhdGlvbnMgdG8gdXNlLCBvciB1bmRlZmluZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIF9nZXRUYXJnZXRTcGVjaWZpY0NyZWRlbnRpYWxzKFxuICAgIHByb3ZpZGVkQ3JlZGVudGlhbHM6IElDcmVkZW50aWFsUHJvdmlkZXJDb25maWdbXSB8IHVuZGVmaW5lZCxcbiAgKTogSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocHJvdmlkZWRDcmVkZW50aWFscyAmJiBwcm92aWRlZENyZWRlbnRpYWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBwcm92aWRlZENyZWRlbnRpYWxzO1xuICAgIH1cbiAgICAvLyBBcHBseSB0YXJnZXQtc3BlY2lmaWMgZGVmYXVsdHMgd2hlbiBub3QgcHJvdmlkZWRcbiAgICBzd2l0Y2ggKHRoaXMudGFyZ2V0VHlwZSkge1xuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLkxBTUJEQTpcbiAgICAgIGNhc2UgTWNwVGFyZ2V0VHlwZS5TTUlUSFlfTU9ERUw6XG4gICAgICAgIHJldHVybiBbR2F0ZXdheUNyZWRlbnRpYWxQcm92aWRlci5mcm9tSWFtUm9sZSgpXTtcblxuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLk1DUF9TRVJWRVI6XG4gICAgICAgIC8vIFJldHVybiBlbXB0eSBhcnJheSwgLSBzZXJ2aWNlIGhhbmRsZXMgTm9BdXRoIGF1dG9tYXRpY2FsbHlcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgICAgY2FzZSBNY3BUYXJnZXRUeXBlLk9QRU5BUElfU0NIRU1BOlxuICAgICAgICAvLyBObyBkZWZhdWx0IC0gbXVzdCBiZSBleHBsaWNpdGx5IHByb3ZpZGVkLCBzZXJ2aWNlIGhhbmRsZXMgYXV0b21hdGljYWxseVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gW0dhdGV3YXlDcmVkZW50aWFsUHJvdmlkZXIuZnJvbUlhbVJvbGUoKV07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgY3JlZGVudGlhbCBwcm92aWRlciBjb25maWd1cmF0aW9ucyBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIF9yZW5kZXJDcmVkZW50aWFsUHJvdmlkZXJDb25maWd1cmF0aW9ucygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlckNvbmZpZ3VyYXRpb25zPy5tYXAocHJvdmlkZXIgPT4gcHJvdmlkZXIuX3JlbmRlcigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGdhdGV3YXkgdGFyZ2V0IG5hbWUgZm9ybWF0XG4gICAqIFBhdHRlcm46IF4oWzAtOWEtekEtWl1bLV0/KXsxLDEwMH0kXG4gICAqIE1heCBsZW5ndGg6IDEwMCBjaGFyYWN0ZXJzXG4gICAqIEBwYXJhbSBnYXRld2F5VGFyZ2V0TmFtZSBUaGUgZ2F0ZXdheSB0YXJnZXQgbmFtZSB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHRoZSBuYW1lIGlzIGludmFsaWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlR2F0ZXdheVRhcmdldE5hbWUoZ2F0ZXdheVRhcmdldE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQoZ2F0ZXdheVRhcmdldE5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbGVuZ3RoRXJyb3JzID0gdmFsaWRhdGVTdHJpbmdGaWVsZCh7XG4gICAgICB2YWx1ZTogZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICBmaWVsZE5hbWU6ICdHYXRld2F5IHRhcmdldCBuYW1lJyxcbiAgICAgIG1pbkxlbmd0aDogMSxcbiAgICAgIG1heExlbmd0aDogMTAwLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGF0dGVybkVycm9ycyA9IHZhbGlkYXRlRmllbGRQYXR0ZXJuKFxuICAgICAgZ2F0ZXdheVRhcmdldE5hbWUsXG4gICAgICAnR2F0ZXdheSB0YXJnZXQgbmFtZScsXG4gICAgICAvXihbMC05YS16QS1aXVstXT8pezEsMTAwfSQvLFxuICAgICAgJ0dhdGV3YXkgdGFyZ2V0IG5hbWUgbXVzdCBjb250YWluIG9ubHkgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGh5cGhlbnMsIHdpdGggaHlwaGVucyBvbmx5IGJldHdlZW4gY2hhcmFjdGVycycsXG4gICAgKTtcblxuICAgIGNvbnN0IGFsbEVycm9ycyA9IFsuLi5sZW5ndGhFcnJvcnMsIC4uLnBhdHRlcm5FcnJvcnNdO1xuICAgIGlmIChhbGxFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihhbGxFcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGRlc2NyaXB0aW9uIGZvcm1hdFxuICAgKiBNdXN0IGJlIGJldHdlZW4gMSBhbmQgMjAwIGNoYXJhY3RlcnNcbiAgICogQHRocm93cyBFcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGRlc2NyaXB0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRlU3RyaW5nRmllbGQoe1xuICAgICAgdmFsdWU6IGRlc2NyaXB0aW9uLFxuICAgICAgZmllbGROYW1lOiAnR2F0ZXdheSB0YXJnZXQgZGVzY3JpcHRpb24nLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiAyMDAsXG4gICAgfSk7XG5cbiAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -53,7 +53,7 @@ var MemoryStrategyType;
|
|
|
53
53
|
* @see https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/memory-strategies.html
|
|
54
54
|
*/
|
|
55
55
|
class MemoryStrategy {
|
|
56
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryStrategy", version: "2.
|
|
56
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryStrategy", version: "2.234.0-alpha.0" };
|
|
57
57
|
/**
|
|
58
58
|
* Default strategies for organizing and extracting memory data, each optimized for specific use cases.
|
|
59
59
|
* This strategy compresses conversations into concise overviews, preserving essential context and key insights for quick recall.
|
package/lib/memory/memory.js
CHANGED
|
@@ -99,7 +99,7 @@ const MEMORY_EXPIRATION_DAYS_MAX = 365;
|
|
|
99
99
|
* Contains methods and attributes valid for Memories either created with CDK or imported.
|
|
100
100
|
*/
|
|
101
101
|
class MemoryBase extends aws_cdk_lib_1.Resource {
|
|
102
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryBase", version: "2.
|
|
102
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.MemoryBase", version: "2.234.0-alpha.0" };
|
|
103
103
|
constructor(scope, id) {
|
|
104
104
|
super(scope, id);
|
|
105
105
|
}
|
|
@@ -352,7 +352,7 @@ let Memory = (() => {
|
|
|
352
352
|
Memory = _classThis = _classDescriptor.value;
|
|
353
353
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
354
354
|
}
|
|
355
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Memory", version: "2.
|
|
355
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Memory", version: "2.234.0-alpha.0" };
|
|
356
356
|
/** Uniquely identifies this class. */
|
|
357
357
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.Memory';
|
|
358
358
|
/**
|
|
@@ -25,7 +25,7 @@ const PROMPT_MAX_LENGTH = 30000;
|
|
|
25
25
|
* with specific models and prompt templates.
|
|
26
26
|
*/
|
|
27
27
|
class ManagedMemoryStrategy {
|
|
28
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.
|
|
28
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.ManagedMemoryStrategy", version: "2.234.0-alpha.0" };
|
|
29
29
|
name;
|
|
30
30
|
description;
|
|
31
31
|
/**
|
|
@@ -86,7 +86,7 @@ const DEFAULT_TOKEN_BASED_TRIGGER = 100;
|
|
|
86
86
|
* Use AgentCore memory for event storage with custom triggers. Define memory processing logic in your own environment.
|
|
87
87
|
*/
|
|
88
88
|
class SelfManagedMemoryStrategy {
|
|
89
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.
|
|
89
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.SelfManagedMemoryStrategy", version: "2.234.0-alpha.0" };
|
|
90
90
|
name;
|
|
91
91
|
description;
|
|
92
92
|
strategyType;
|
|
@@ -8,7 +8,7 @@ const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
|
8
8
|
* Abstract base class for network configuration.
|
|
9
9
|
*/
|
|
10
10
|
class NetworkConfiguration {
|
|
11
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.
|
|
11
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.NetworkConfiguration", version: "2.234.0-alpha.0" };
|
|
12
12
|
/**
|
|
13
13
|
* The network mode to use.
|
|
14
14
|
* Configure the security level for agent
|
|
@@ -87,7 +87,7 @@ exports.NetworkConfiguration = NetworkConfiguration;
|
|
|
87
87
|
* Network configuration for the Browser tool.
|
|
88
88
|
*/
|
|
89
89
|
class BrowserNetworkConfiguration extends NetworkConfiguration {
|
|
90
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.
|
|
90
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserNetworkConfiguration", version: "2.234.0-alpha.0" };
|
|
91
91
|
/**
|
|
92
92
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
93
93
|
* @returns A BrowserNetworkConfiguration.
|
|
@@ -133,7 +133,7 @@ exports.BrowserNetworkConfiguration = BrowserNetworkConfiguration;
|
|
|
133
133
|
* Network configuration for the Code Interpreter tool.
|
|
134
134
|
*/
|
|
135
135
|
class CodeInterpreterNetworkConfiguration extends NetworkConfiguration {
|
|
136
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.
|
|
136
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterNetworkConfiguration", version: "2.234.0-alpha.0" };
|
|
137
137
|
/**
|
|
138
138
|
* Creates a public network configuration.
|
|
139
139
|
* @returns A CodeInterpreterNetworkConfiguration.
|
|
@@ -187,7 +187,7 @@ exports.CodeInterpreterNetworkConfiguration = CodeInterpreterNetworkConfiguratio
|
|
|
187
187
|
* Network configuration for the Runtime.
|
|
188
188
|
*/
|
|
189
189
|
class RuntimeNetworkConfiguration extends NetworkConfiguration {
|
|
190
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.
|
|
190
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeNetworkConfiguration", version: "2.234.0-alpha.0" };
|
|
191
191
|
/**
|
|
192
192
|
* Creates a public network configuration. PUBLIC is the default network mode.
|
|
193
193
|
* @returns A RuntimeNetworkConfiguration.
|
|
@@ -47,7 +47,7 @@ var AgentCoreRuntime;
|
|
|
47
47
|
* Provides methods to reference container images from ECR repositories or local assets.
|
|
48
48
|
*/
|
|
49
49
|
class AgentRuntimeArtifact {
|
|
50
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.
|
|
50
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.AgentRuntimeArtifact", version: "2.234.0-alpha.0" };
|
|
51
51
|
/**
|
|
52
52
|
* Reference an image in an ECR repository
|
|
53
53
|
*/
|
|
@@ -21,7 +21,7 @@ const validation_helpers_1 = require("./validation-helpers");
|
|
|
21
21
|
* Provides static factory methods to create different authentication types.
|
|
22
22
|
*/
|
|
23
23
|
class RuntimeAuthorizerConfiguration {
|
|
24
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.234.0-alpha.0" };
|
|
25
25
|
/**
|
|
26
26
|
* Use IAM authentication (default).
|
|
27
27
|
* Requires AWS credentials to sign requests using SigV4.
|
|
@@ -26,7 +26,7 @@ const validation_helpers_1 = require("./validation-helpers");
|
|
|
26
26
|
* Base class for Agent Runtime
|
|
27
27
|
*/
|
|
28
28
|
class RuntimeBase extends aws_cdk_lib_1.Resource {
|
|
29
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeBase", version: "2.
|
|
29
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeBase", version: "2.234.0-alpha.0" };
|
|
30
30
|
/**
|
|
31
31
|
* An accessor for the Connections object that will fail if this Runtime does not have a VPC
|
|
32
32
|
* configured.
|
|
@@ -22,7 +22,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
22
22
|
* Base class for Runtime Endpoint
|
|
23
23
|
*/
|
|
24
24
|
class RuntimeEndpointBase extends aws_cdk_lib_1.Resource {
|
|
25
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpointBase", version: "2.
|
|
25
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpointBase", version: "2.234.0-alpha.0" };
|
|
26
26
|
constructor(scope, id) {
|
|
27
27
|
super(scope, id);
|
|
28
28
|
}
|
|
@@ -67,7 +67,7 @@ let RuntimeEndpoint = (() => {
|
|
|
67
67
|
RuntimeEndpoint = _classThis = _classDescriptor.value;
|
|
68
68
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
69
69
|
}
|
|
70
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpoint", version: "2.
|
|
70
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpoint", version: "2.234.0-alpha.0" };
|
|
71
71
|
/** Uniquely identifies this class. */
|
|
72
72
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.RuntimeEndpoint';
|
|
73
73
|
/**
|
package/lib/runtime/runtime.js
CHANGED
|
@@ -91,7 +91,7 @@ let Runtime = (() => {
|
|
|
91
91
|
Runtime = _classThis = _classDescriptor.value;
|
|
92
92
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
93
93
|
}
|
|
94
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Runtime", version: "2.
|
|
94
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.Runtime", version: "2.234.0-alpha.0" };
|
|
95
95
|
/** Uniquely identifies this class. */
|
|
96
96
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.Runtime';
|
|
97
97
|
/**
|
package/lib/tools/browser.d.ts
CHANGED
|
@@ -313,7 +313,7 @@ export declare abstract class BrowserCustomBase extends Resource implements IBro
|
|
|
313
313
|
export interface RecordingConfig {
|
|
314
314
|
/**
|
|
315
315
|
* Whether recording is enabled
|
|
316
|
-
* @default
|
|
316
|
+
* @default false
|
|
317
317
|
*/
|
|
318
318
|
readonly enabled?: boolean;
|
|
319
319
|
/**
|
package/lib/tools/browser.js
CHANGED
|
@@ -99,7 +99,7 @@ var BrowserSigning;
|
|
|
99
99
|
* Contains methods and attributes valid for Browsers either created with CDK or imported.
|
|
100
100
|
*/
|
|
101
101
|
class BrowserCustomBase extends aws_cdk_lib_1.Resource {
|
|
102
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserCustomBase", version: "2.
|
|
102
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserCustomBase", version: "2.234.0-alpha.0" };
|
|
103
103
|
/**
|
|
104
104
|
* An accessor for the Connections object that will fail if this Browser does not have a VPC
|
|
105
105
|
* configured.
|
|
@@ -357,7 +357,7 @@ let BrowserCustom = (() => {
|
|
|
357
357
|
BrowserCustom = _classThis = _classDescriptor.value;
|
|
358
358
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
359
359
|
}
|
|
360
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserCustom", version: "2.
|
|
360
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.BrowserCustom", version: "2.234.0-alpha.0" };
|
|
361
361
|
/** Uniquely identifies this class. */
|
|
362
362
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.BrowserCustom';
|
|
363
363
|
/**
|
|
@@ -677,4 +677,4 @@ let BrowserCustom = (() => {
|
|
|
677
677
|
return BrowserCustom = _classThis;
|
|
678
678
|
})();
|
|
679
679
|
exports.BrowserCustom = BrowserCustom;
|
|
680
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBU3FCO0FBQ3JCLCtEQUErRDtBQUMvRCwrREFNb0M7QUFDcEMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFFekMsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUUxRSxnQkFBZ0I7QUFDaEIsaUNBQWlDO0FBQ2pDLDZEQUF1RztBQUN2Ryw0RUFBK0U7QUFFL0U7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUVuQzs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUVqQzs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQUVuQzs7K0VBRStFO0FBQy9FOzs7O0dBSUc7QUFDSCxJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCxxQ0FBbUIsQ0FBQTtJQUNuQjs7T0FFRztJQUNILHVDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFUVyxjQUFjLDhCQUFkLGNBQWMsUUFTekI7QUEwSEQ7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFzQixpQkFBa0IsU0FBUSxzQkFBUTs7SUFXdEQ7OztPQUdHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLDZCQUFlLENBQUMsd0RBQXdELEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztLQUMxQjtJQUNEOzs7O09BSUc7SUFDTyxZQUFZLENBQThCO0lBRXBE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QztnQkFDN0csQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7O1lBM1VTLHVEQUFhOzs7OztBQUFiLHNDQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJuLFxuICBBcm5Gb3JtYXQsXG4gIElSZXNvdXJjZSxcbiAgTGF6eSxcbiAgUmVzb3VyY2UsXG4gIFRva2VuLFxuICBTdGFjayxcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhZ2VudF9jb3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB7XG4gIERpbWVuc2lvbnNNYXAsXG4gIE1ldHJpYyxcbiAgTWV0cmljT3B0aW9ucyxcbiAgTWV0cmljUHJvcHMsXG4gIFN0YXRzLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG4vLyBJbnRlcm5hbCBMaWJzXG5pbXBvcnQgKiBhcyBwZXJtcyBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB7IHZhbGlkYXRlRmllbGRQYXR0ZXJuLCB2YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoLCB0aHJvd0lmSW52YWxpZCB9IGZyb20gJy4vdmFsaWRhdGlvbi1oZWxwZXJzJztcbmltcG9ydCB7IEJyb3dzZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL25ldHdvcmsvbmV0d29yay1jb25maWd1cmF0aW9uJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVEFOVFNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogTWluaW11bSBsZW5ndGggZm9yIGJyb3dzZXIgbmFtZVxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IEJST1dTRVJfTkFNRV9NSU5fTEVOR1RIID0gMTtcblxuLyoqXG4gKiBNYXhpbXVtIGxlbmd0aCBmb3IgYnJvd3NlciBuYW1lXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgQlJPV1NFUl9OQU1FX01BWF9MRU5HVEggPSA0ODtcblxuLyoqXG4gKiBNaW5pbXVtIGxlbmd0aCBmb3IgYnJvd3NlciB0YWdzXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgQlJPV1NFUl9UQUdfTUlOX0xFTkdUSCA9IDE7XG5cbi8qKlxuICogTWF4aW11bSBsZW5ndGggZm9yIGJyb3dzZXIgdGFnc1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IEJST1dTRVJfVEFHX01BWF9MRU5HVEggPSAyNTY7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnVtc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBCcm93c2VyIHNpZ25pbmcuIFNwZWNpZmllcyB3aGV0aGVyIGJyb3dzZXIgc2lnbmluZyBpcyBlbmFibGVkLlxuICogV2hlbiBlbmFibGVkLCB0aGUgYnJvd3NlciB3aWxsIGNyeXB0b2dyYXBoaWNhbGx5IHNpZ24gSFRUUCByZXF1ZXN0cyB0byBpZGVudGlmeVxuICogaXRzZWxmIGFzIGFuIEFJIGFnZW50IHRvIGJvdCBjb250cm9sIHZlbmRvcnMuXG4gKi9cbmV4cG9ydCBlbnVtIEJyb3dzZXJTaWduaW5nIHtcbiAgLyoqXG4gICAqIEJyb3dzZXIgc2lnbmluZyBpcyBlbmFibGVkLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdFTkFCTEVEJyxcbiAgLyoqXG4gICAqIEJyb3dzZXIgc2lnbmluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgQnJvd3NlciByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnJvd3NlckN1c3RvbSBleHRlbmRzIElSZXNvdXJjZSwgaWFtLklHcmFudGFibGUsIGVjMi5JQ29ubmVjdGFibGUge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYnJvd3NlciByZXNvdXJjZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBicm93c2VyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgYnJvd3NlclxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBicm93c2VySWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgcHJvdmlkZXMgcGVybWlzc2lvbnMgZm9yIHRoZSBicm93c2VyIHRvIGFjY2VzcyBBV1Mgc2VydmljZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGJyb3dzZXIgd2FzIGxhc3QgdXBkYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsYXN0VXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBicm93c2VyXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGJyb3dzZXIgd2FzIGNyZWF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50cyBgR2V0YCBhbmQgYExpc3RgIGFjdGlvbnMgb24gdGhlIEJyb3dzZXJcbiAgICovXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50cyBgSW52b2tlYCwgYFN0YXJ0YCwgYW5kIGBVcGRhdGVgIGFjdGlvbnMgb24gdGhlIEJyb3dzZXJcbiAgICovXG4gIGdyYW50VXNlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNZXRyaWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgcmVsYXRlZCB0byB0aGUgQVBJIG9wZXJhdGlvbiBwZXJmb3JtZWQgb24gdGhpcyBicm93c2VyLlxuICAgKi9cbiAgbWV0cmljRm9yQXBpT3BlcmF0aW9uKG1ldHJpY05hbWU6IHN0cmluZywgb3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgbGF0ZW5jeSBvZiBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY0xhdGVuY3lGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBBUEkgcmVxdWVzdHMgbWFkZSBmb3IgYSBzcGVjaWZpYyBicm93c2VyIG9wZXJhdGlvbi5cbiAgICovXG4gIG1ldHJpY0ludm9jYXRpb25zRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY0Vycm9yc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRocm90dGxlZCByZXF1ZXN0cyBmb3IgYSBzcGVjaWZpYyBBUEkgb3BlcmF0aW9uIHBlcmZvcm1lZCBvbiB0aGlzIGJyb3dzZXIuXG4gICAqL1xuICBtZXRyaWNUaHJvdHRsZXNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzeXN0ZW0gZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY1N5c3RlbUVycm9yc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHVzZXIgZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY1VzZXJFcnJvcnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgZHVyYXRpb24gb2YgYnJvd3NlciBzZXNzaW9ucy5cbiAgICovXG4gIG1ldHJpY1Nlc3Npb25EdXJhdGlvbihwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdXNlciB0YWtlb3ZlcnMuXG4gICAqL1xuICBtZXRyaWNUYWtlT3ZlckNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB1c2VyIHRha2VvdmVycyByZWxlYXNlZC5cbiAgICovXG4gIG1ldHJpY1Rha2VPdmVyUmVsZWFzZUNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgZHVyYXRpb24gb2YgdXNlciB0YWtlb3ZlcnMuXG4gICAqL1xuICBtZXRyaWNUYWtlT3ZlckR1cmF0aW9uKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICBBQlNUUkFDVCBCQVNFIENMQVNTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGEgQnJvd3Nlci5cbiAqIENvbnRhaW5zIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMgdmFsaWQgZm9yIEJyb3dzZXJzIGVpdGhlciBjcmVhdGVkIHdpdGggQ0RLIG9yIGltcG9ydGVkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQnJvd3NlckN1c3RvbUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElCcm93c2VyQ3VzdG9tIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJyb3dzZXJBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJyb3dzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU6IGlhbS5JUm9sZTtcbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG4gIC8qKlxuICAgKiBBbiBhY2Nlc3NvciBmb3IgdGhlIENvbm5lY3Rpb25zIG9iamVjdCB0aGF0IHdpbGwgZmFpbCBpZiB0aGlzIEJyb3dzZXIgZG9lcyBub3QgaGF2ZSBhIFZQQ1xuICAgKiBjb25maWd1cmVkLlxuICAgKi9cbiAgcHVibGljIGdldCBjb25uZWN0aW9ucygpOiBlYzIuQ29ubmVjdGlvbnMge1xuICAgIGlmICghdGhpcy5fY29ubmVjdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0Nhbm5vdCBtYW5hZ2UgbmV0d29yayBhY2Nlc3Mgd2l0aG91dCBjb25maWd1cmluZyBhIFZQQycsIHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbnM7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBhY3R1YWwgQ29ubmVjdGlvbnMgb2JqZWN0IGZvciB0aGlzIEJyb3dzZXIuIFRoaXMgbWF5IGJlIHVuc2V0IGluIHRoZSBldmVudCB0aGF0IGEgVlBDIGhhcyBub3RcbiAgICogYmVlbiBjb25maWd1cmVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gYWN0aW9ucyAtIFRoZSBhY3Rpb25zIHRvIGdyYW50XG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmJyb3dzZXJBcm5dLFxuICAgICAgYWN0aW9uczogYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIG9uIHRoaXMgYnJvd3NlciB0byBhbiBJQU0gcHJpbmNpcGFsLlxuICAgKiBUaGlzIGluY2x1ZGVzIGJvdGggcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgc3BlY2lmaWMgYnJvd3NlciBhbmQgbGlzdCBwZXJtaXNzaW9ucyBvbiBhbGwgYnJvd3NlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkdldEJyb3dzZXInLCAnYmVkcm9jay1hZ2VudGNvcmU6R2V0QnJvd3NlclNlc3Npb24nXSBvbiB0aGlzLmJyb3dzZXJBcm5cbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RCcm93c2VycycsICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0QnJvd3NlclNlc3Npb25zJ10gb24gYWxsIHJlc291cmNlcyAoKilcbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJlc291cmNlU3BlY2lmaWNHcmFudCA9IHRoaXMuZ3JhbnQoXG4gICAgICBncmFudGVlLFxuICAgICAgLi4ucGVybXMuQlJPV1NFUl9SRUFEX1BFUk1TLFxuICAgICk7XG5cbiAgICBjb25zdCBhbGxSZXNvdXJjZUdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFsnKiddLFxuICAgICAgYWN0aW9uczogcGVybXMuQlJPV1NFUl9MSVNUX1BFUk1TLFxuICAgIH0pO1xuICAgIC8vIFJldHVybiBjb21iaW5lZCBncmFudFxuICAgIHJldHVybiByZXNvdXJjZVNwZWNpZmljR3JhbnQuY29tYmluZShhbGxSZXNvdXJjZUdyYW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBpbnZva2UgcGVybWlzc2lvbnMgb24gdGhpcyBicm93c2VyIHRvIGFuIElBTSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgaW52b2tlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBncmFudCBjb25maWd1cmF0aW9uOlxuICAgKiAtIGFjdGlvbnM6IFsnYmVkcm9jay1hZ2VudGNvcmU6U3RhcnRCcm93c2VyU2Vzc2lvbicsICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVCcm93c2VyU3RyZWFtJywgJ2JlZHJvY2stYWdlbnRjb3JlOlN0b3BCcm93c2VyU2Vzc2lvbiddXG4gICAqIC0gcmVzb3VyY2VBcm5zOiBbdGhpcy5icm93c2VyQXJuXVxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdyYW50VXNlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGdyYW50ZWUsXG4gICAgICAuLi5wZXJtcy5CUk9XU0VSX1VTRV9QRVJNUyxcbiAgICApO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1ldHJpY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBicm93c2VyLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgbWV0cmljIHdpbGwgYmUgY2FsY3VsYXRlZCBhcyBhIHN1bSBvdmVyIGEgcGVyaW9kIG9mIDUgbWludXRlcy5cbiAgICogWW91IGNhbiBjdXN0b21pemUgdGhpcyBieSB1c2luZyB0aGUgYHN0YXRpc3RpY2AgYW5kIGBwZXJpb2RgIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgZGltZW5zaW9uczogRGltZW5zaW9uc01hcCwgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICBjb25zdCBtZXRyaWNQcm9wczogTWV0cmljUHJvcHMgPSB7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnLFxuICAgICAgbWV0cmljTmFtZSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHsgLi4uZGltZW5zaW9ucywgUmVzb3VyY2U6IHRoaXMuYnJvd3NlckFybiB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmVNZXRyaWMobWV0cmljUHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciBhcGkgb3BlcmF0aW9ucy4uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IG1ldHJpY05hbWVcbiAgICogLSBkaW1lbnNpb25zTWFwOiB7IEJyb3dzZXJJZDogdGhpcy5icm93c2VySWQgfVxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgYXBpIG9wZXJhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNGb3JBcGlPcGVyYXRpb24oXG4gICAgbWV0cmljTmFtZTogc3RyaW5nLFxuICAgIG9wZXJhdGlvbjogc3RyaW5nLFxuICAgIHByb3BzPzogTWV0cmljT3B0aW9ucyxcbiAgKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMobWV0cmljTmFtZSwgeyBPcGVyYXRpb246IG9wZXJhdGlvbiB9LCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0cmFja2luZyBicm93c2VyIGxhdGVuY2llcy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogTGF0ZW5jeVxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgbGF0ZW5jaWVzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljTGF0ZW5jeUZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ0xhdGVuY3knLCBvcGVyYXRpb24sIHsgc3RhdGlzdGljOiBTdGF0cy5BVkVSQUdFLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRyYWNraW5nIGJyb3dzZXIgaW52b2NhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IEludm9jYXRpb25zXG4gICAqIEByZXR1cm5zIEEgQ2xvdWRXYXRjaCBNZXRyaWMgY29uZmlndXJlZCBmb3IgYnJvd3NlciBsYXRlbmNpZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbnZvY2F0aW9uc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ0ludm9jYXRpb25zJywgb3BlcmF0aW9uLCB7XG4gICAgICBzdGF0aXN0aWM6IFN0YXRzLlNVTSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciBlcnJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IEVycm9yc1xuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgZXJyb3JzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXJyb3JzRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZvckFwaU9wZXJhdGlvbignRXJyb3JzJywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRyYWNraW5nIGJyb3dzZXIgdGhyb3R0bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtZXRyaWNcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IG1ldHJpYyBjb25maWd1cmF0aW9uOlxuICAgKiAtIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZSdcbiAgICogLSBtZXRyaWNOYW1lOiBUaHJvdHRsZXNcbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIHRocm90dGxlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1Rocm90dGxlc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ1Rocm90dGxlcycsIG9wZXJhdGlvbiwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0cmFja2luZyBicm93c2VyIHN5c3RlbSBlcnJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IFN5c3RlbUVycm9yc1xuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgc3lzdGVtIGVycm9yc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1N5c3RlbUVycm9yc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ1N5c3RlbUVycm9ycycsIG9wZXJhdGlvbiwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0cmFja2luZyBicm93c2VyIHVzZXIgZXJyb3JzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtZXRyaWNcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IG1ldHJpYyBjb25maWd1cmF0aW9uOlxuICAgKiAtIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZSdcbiAgICogLSBtZXRyaWNOYW1lOiBVc2VyRXJyb3JzXG4gICAqIEByZXR1cm5zIEEgQ2xvdWRXYXRjaCBNZXRyaWMgY29uZmlndXJlZCBmb3IgYnJvd3NlciB1c2VyIGVycm9yc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1VzZXJFcnJvcnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRm9yQXBpT3BlcmF0aW9uKCdVc2VyRXJyb3JzJywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRyYWNraW5nIGJyb3dzZXIgc2Vzc2lvbiBkdXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogRHVyYXRpb25cbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIHNlc3Npb24gZHVyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNTZXNzaW9uRHVyYXRpb24ocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0R1cmF0aW9uJywgeyBPcGVyYXRpb246ICdCcm93c2VyU2Vzc2lvbicgfSwgeyBzdGF0aXN0aWM6IFN0YXRzLkFWRVJBR0UsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciB1c2VyIHRha2VvdmVycy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogVGFrZU92ZXJDb3VudFxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgdXNlciB0YWtlb3ZlcnNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNUYWtlT3ZlckNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUYWtlT3ZlckNvdW50Jywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciB1c2VyIHRha2VvdmVycyByZWxlYXNlZC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogVGFrZU92ZXJSZWxlYXNlQ291bnRcbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIHVzZXIgdGFrZW92ZXJzIHJlbGVhc2VkXG4gICAqL1xuICBwdWJsaWMgbWV0cmljVGFrZU92ZXJSZWxlYXNlQ291bnQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1Rha2VPdmVyUmVsZWFzZUNvdW50Jywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciB1c2VyIHRha2VvdmVycyBkdXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogVGFrZU92ZXJEdXJhdGlvblxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgdXNlciB0YWtlb3ZlcnMgZHVyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNUYWtlT3ZlckR1cmF0aW9uKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUYWtlT3ZlckR1cmF0aW9uJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5BVkVSQUdFLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gY3JlYXRlIGEgbWV0cmljLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtZXRyaWNcbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIGFwaSBvcGVyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZU1ldHJpYyhwcm9wczogTWV0cmljUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlZ2lvbjogcHJvcHM/LnJlZ2lvbiA/PyB0aGlzLnN0YWNrLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzPy5hY2NvdW50ID8/IHRoaXMuc3RhY2suYWNjb3VudCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjb3JkaW5nIENvbmZpZ3VyYXRpb25cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBSZWNvcmRpbmcgY29uZmlndXJhdGlvbiBmb3IgYnJvd3NlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZGluZ0NvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHJlY29yZGluZyBpcyBlbmFibGVkXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTMyBMb2NhdGlvbiBDb25maWd1cmF0aW9uXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBzM0xvY2F0aW9uPzogTG9jYXRpb247XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgUFJPUFMgRk9SIE5FVyBDT05TVFJVQ1RcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBCcm93c2VyIHJlc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJvd3NlckN1c3RvbVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBicm93c2VyXG4gICAqIFZhbGlkIGNoYXJhY3RlcnMgYXJlIGEteiwgQS1aLCAwLTksIF8gKHVuZGVyc2NvcmUpXG4gICAqIFRoZSBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBhbmQgY2FuIGJlIHVwIHRvIDQ4IGNoYXJhY3RlcnMgbG9uZ1xuICAgKiBQYXR0ZXJuOiBbYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fVxuICAgKiBAcmVxdWlyZWQgLSBZZXNcbiAgICovXG4gIHJlYWRvbmx5IGJyb3dzZXJDdXN0b21OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgYnJvd3NlclxuICAgKiBWYWxpZCBjaGFyYWN0ZXJzIGFyZSBhLXosIEEtWiwgMC05LCBfICh1bmRlcnNjb3JlKSwgLSAoaHlwaGVuKSBhbmQgc3BhY2VzXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBjYW4gaGF2ZSB1cCB0byAyMDAgY2hhcmFjdGVyc1xuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uXG4gICAqIEByZXF1aXJlZCAtIE5vXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTmV0d29yayBjb25maWd1cmF0aW9uIGZvciBicm93c2VyXG4gICAqIEByZXF1aXJlZCAtIE5vXG4gICAqIEBkZWZhdWx0IC0gUFVCTElDIG5ldHdvcmsgbW9kZVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0NvbmZpZ3VyYXRpb24/OiBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIFJlY29yZGluZyBjb25maWd1cmF0aW9uIGZvciBicm93c2VyXG4gICAqIEByZXF1aXJlZCAtIE5vXG4gICAqIEBkZWZhdWx0IC0gTm8gcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlY29yZGluZ0NvbmZpZz86IFJlY29yZGluZ0NvbmZpZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgcHJvdmlkZXMgcGVybWlzc2lvbnMgZm9yIHRoZSBicm93c2VyIHRvIGFjY2VzcyBBV1Mgc2VydmljZXNcbiAgICogQGRlZmF1bHQgLSBBIG5ldyByb2xlIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAcmVxdWlyZWQgLSBOb1xuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZT86IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGFncyAob3B0aW9uYWwpXG4gICAqIEEgbGlzdCBvZiBrZXk6dmFsdWUgcGFpcnMgb2YgdGFncyB0byBhcHBseSB0byB0aGlzIEJyb3dzZXIgcmVzb3VyY2VcbiAgICpcbiAgICogQGRlZmF1bHQge30gLSBubyB0YWdzXG4gICAqIEByZXF1aXJlZCAtIE5vXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgYnJvd3NlciBzaWduaW5nIGlzIGVuYWJsZWQuXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhlIGJyb3dzZXIgd2lsbCBjcnlwdG9ncmFwaGljYWxseSBzaWduXG4gICAqIEhUVFAgcmVxdWVzdHMgdG8gaWRlbnRpZnkgaXRzZWxmIGFzIGFuIEFJIGFnZW50IHRvIGJvdCBjb250cm9sIHZlbmRvcnMuXG4gICAqIEBkZWZhdWx0IC0gQnJvd3NlclNpZ25pbmcuRElTQUJMRURcbiAgICovXG4gIHJlYWRvbmx5IGJyb3dzZXJTaWduaW5nPzogQnJvd3NlclNpZ25pbmc7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgIEFUVFJTIEZPUiBJTVBPUlRFRCBDT05TVFJVQ1RcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQXR0cmlidXRlcyBmb3Igc3BlY2lmeWluZyBhbiBpbXBvcnRlZCBCcm93c2VyIEN1c3RvbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcm93c2VyQ3VzdG9tQXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhZ2VudC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgYnJvd3NlckFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUgYXNzb2NpYXRlZCB0byB0aGUgYnJvd3Nlci5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybjogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiB0aGlzIGJyb3dzZXIgd2FzIGxhc3QgdXBkYXRlZC5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gTm8gbGFzdCB1cGRhdGVkIHRpbWVzdGFtcCBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGJyb3dzZXIuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIE5vIHN0YXR1cyBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNyZWF0ZWQgdGltZXN0YW1wIG9mIHRoZSBicm93c2VyLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQgLSBObyBjcmVhdGVkIHRpbWVzdGFtcCBpcyBwcm92aWRlZFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGdyb3VwcyBmb3IgdGhpcyBicm93c2VyLCBpZiBpbiBhIFZQQy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBCeSBkZWZhdWx0LCB0aGUgYnJvd3NlciBpcyBub3QgaW4gYSBWUEMuXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3Vwcz86IGVjMi5JU2VjdXJpdHlHcm91cFtdO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogQnJvd3NlciByZXNvdXJjZSBmb3IgQVdTIEJlZHJvY2sgQWdlbnQgQ29yZS5cbiAqIFByb3ZpZGVzIGEgYnJvd3NlciBlbnZpcm9ubWVudCBmb3Igd2ViIGF1dG9tYXRpb24gYW5kIGludGVyYWN0aW9uLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9icm93c2VyLmh0bWxcbiAqIEByZXNvdXJjZSBBV1M6OkJlZHJvY2tBZ2VudENvcmU6OkJyb3dzZXJDdXN0b21cbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIEJyb3dzZXJDdXN0b20gZXh0ZW5kcyBCcm93c2VyQ3VzdG9tQmFzZSB7XG4gIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgY2xhc3MuICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUFJPUEVSVFlfSU5KRUNUSU9OX0lEOiBzdHJpbmcgPSAnQGF3cy1jZGsuYXdzLWJlZHJvY2stYWdlbnRjb3JlLWFscGhhLkJyb3dzZXJDdXN0b20nO1xuXG4gIC8qKlxuICAgKiBTdGF0aWMgTWV0aG9kIGZvciBpbXBvcnRpbmcgYW4gZXhpc3RpbmcgQmVkcm9jayBBZ2VudENvcmUgQnJvd3NlciBDdXN0b20uXG4gICAqL1xuICAvKipcbiAgICogQ3JlYXRlcyBhbiBCcm93c2VyIEN1c3RvbSByZWZlcmVuY2UgZnJvbSBhbiBleGlzdGluZyBicm93c2VyJ3MgYXR0cmlidXRlcy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgLSBJZGVudGlmaWVyIG9mIHRoZSBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGF0dHJzIC0gQXR0cmlidXRlcyBvZiB0aGUgZXhpc3RpbmcgYnJvd3NlciBjdXN0b21cbiAgICogQHJldHVybnMgQW4gSUJyb3dzZXJDdXN0b20gcmVmZXJlbmNlIHRvIHRoZSBleGlzdGluZyBicm93c2VyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Ccm93c2VyQ3VzdG9tQXR0cmlidXRlcyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogQnJvd3NlckN1c3RvbUF0dHJpYnV0ZXMpOiBJQnJvd3NlckN1c3RvbSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQnJvd3NlckN1c3RvbUJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGJyb3dzZXJBcm4gPSBhdHRycy5icm93c2VyQXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGJyb3dzZXJJZCA9IEFybi5zcGxpdChhdHRycy5icm93c2VyQXJuLCBBcm5Gb3JtYXQuU0xBU0hfUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lITtcbiAgICAgIHB1YmxpYyByZWFkb25seSBleGVjdXRpb25Sb2xlID0gaWFtLlJvbGUuZnJvbVJvbGVBcm4oc2NvcGUsIGAke2lkfVJvbGVgLCBhdHRycy5yb2xlQXJuKTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBsYXN0VXBkYXRlZEF0ID0gYXR0cnMubGFzdFVwZGF0ZWRBdDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbCA9IHRoaXMuZXhlY3V0aW9uUm9sZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXMgPSBhdHRycy5zdGF0dXM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0ID0gYXR0cnMuY3JlYXRlZEF0O1xuXG4gICAgICBjb25zdHJ1Y3RvcihzOiBDb25zdHJ1Y3QsIGk6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzLCBpKTtcblxuICAgICAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5leGVjdXRpb25Sb2xlIHx8IG5ldyBpYW0uVW5rbm93blByaW5jaXBhbCh7IHJlc291cmNlOiB0aGlzIH0pO1xuICAgICAgICBpZiAoYXR0cnMuc2VjdXJpdHlHcm91cHMpIHtcbiAgICAgICAgICB0aGlzLl9jb25uZWN0aW9ucyA9IG5ldyBlYzIuQ29ubmVjdGlvbnMoe1xuICAgICAgICAgICAgc2VjdXJpdHlHcm91cHM6IGF0dHJzLnNlY3VyaXR5R3JvdXBzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIG5ldyBCcm93c2VyIEN1c3RvbVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEF0dHJpYnV0ZXNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBicm93c2VyIHJlc291cmNlLlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnJvd3NlckFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBicm93c2VyXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBicm93c2VySWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBicm93c2VyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBicm93c2VyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbGFzdCB1cGRhdGVkIHRpbWVzdGFtcCBvZiB0aGUgYnJvd3NlclxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGJyb3dzZXJcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjcmVhdGVkIHRpbWVzdGFtcCBvZiB0aGUgYnJvd3NlclxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZhaWx1cmUgcmVhc29uIG9mIHRoZSBicm93c2VyXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmYWlsdXJlUmVhc29uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIElBTSByb2xlIGFzc29jaWF0ZWQgdG8gdGhlIGJyb3dzZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZTogaWFtLklSb2xlO1xuICAvKipcbiAgICogVGFncyBhcHBsaWVkIHRvIHRoaXMgYnJvd3NlciByZXNvdXJjZVxuICAgKiBBIG1hcCBvZiBrZXktdmFsdWUgcGFpcnMgZm9yIHJlc291cmNlIHRhZ2dpbmdcbiAgICogQGRlZmF1bHQgLSBObyB0YWdzIGFwcGxpZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG4gIC8qKlxuICAgKiBUaGUgbmV0d29yayBjb25maWd1cmF0aW9uIG9mIHRoZSBicm93c2VyXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgbmV0d29ya0NvbmZpZ3VyYXRpb246IEJyb3dzZXJOZXR3b3JrQ29uZmlndXJhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSByZWNvcmRpbmcgY29uZmlndXJhdGlvbiBvZiB0aGUgYnJvd3NlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJlY29yZGluZ0NvbmZpZz86IFJlY29yZGluZ0NvbmZpZztcbiAgLyoqXG4gICAqIFRoZSBicm93c2VyIHNpZ25pbmcgY29uZmlndXJhdGlvbiBvZiB0aGUgYnJvd3NlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJyb3dzZXJTaWduaW5nPzogQnJvd3NlclNpZ25pbmc7XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBJbnRlcm5hbCBPbmx5XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBwcml2YXRlIHJlYWRvbmx5IF9fcmVzb3VyY2U6IGFnZW50X2NvcmUuQ2ZuQnJvd3NlckN1c3RvbTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ09OU1RSVUNUT1JcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCcm93c2VyQ3VzdG9tUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIC8vIEVuaGFuY2VkIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gU2V0IHByb3BlcnRpZXMgYW5kIGRlZmF1bHRzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgdGhpcy5uYW1lID0gcHJvcHMuYnJvd3NlckN1c3RvbU5hbWU7XG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IHByb3BzLmRlc2NyaXB0aW9uO1xuICAgIHRoaXMubmV0d29ya0NvbmZpZ3VyYXRpb24gPSBwcm9wcy5uZXR3b3JrQ29uZmlndXJhdGlvbiA/PyBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb24udXNpbmdQdWJsaWNOZXR3b3JrKCk7XG4gICAgdGhpcy5yZWNvcmRpbmdDb25maWcgPSBwcm9wcy5yZWNvcmRpbmdDb25maWcgPz8geyBlbmFibGVkOiBmYWxzZSB9O1xuICAgIHRoaXMuZXhlY3V0aW9uUm9sZSA9IHByb3BzLmV4ZWN1dGlvblJvbGUgPz8gdGhpcy5fY3JlYXRlQnJvd3NlclJvbGUoKTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5leGVjdXRpb25Sb2xlO1xuICAgIHRoaXMudGFncyA9IHByb3BzLnRhZ3M7XG4gICAgdGhpcy5icm93c2VyU2lnbmluZyA9IHByb3BzLmJyb3dzZXJTaWduaW5nID8/IEJyb3dzZXJTaWduaW5nLkRJU0FCTEVEO1xuXG4gICAgLy8gVmFsaWRhdGUgYnJvd3NlciBuYW1lXG4gICAgdGhyb3dJZkludmFsaWQodGhpcy5fdmFsaWRhdGVCcm93c2VyTmFtZSwgdGhpcy5uYW1lKTtcblxuICAgIC8vIFZhbGlkYXRlIGJyb3dzZXIgdGFnc1xuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlQnJvd3NlclRhZ3MsIHRoaXMudGFncyk7XG5cbiAgICAvLyBWYWxpZGF0ZSByZWNvcmRpbmcgY29uZmlndXJhdGlvblxuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlUmVjb3JkaW5nQ29uZmlnLCB0aGlzLnJlY29yZGluZ0NvbmZpZyk7XG5cbiAgICAvLyBOZXR3b3JrIGNvbmZpZ3VyYXRpb24gYW5kIHZhbGlkYXRpb24gaXMgZG9uZSBpbiB0aGUgbmV0d29yayBjb25maWd1cmF0aW9uIGNsYXNzXG4gICAgLy8gU28gd2UgZG9uJ3QgbmVlZCB0byB2YWxpZGF0ZSBpdCBoZXJlXG5cbiAgICAvLyBTZXQgY29ubmVjdGlvbnMgLSBjcmVhdGUgYSBzaGFyZWQgY29ubmVjdGlvbnMgb2JqZWN0XG4gICAgaWYgKHRoaXMubmV0d29ya0NvbmZpZ3VyYXRpb24uY29ubmVjdGlvbnMpIHtcbiAgICAgIC8vIFVzZSB0aGUgbmV0d29yayBjb25maWd1cmF0aW9uJ3MgY29ubmVjdGlvbnMgYXMgdGhlIHNoYXJlZCBvYmplY3RcbiAgICAgIHRoaXMuX2Nvbm5lY3Rpb25zID0gdGhpcy5uZXR3b3JrQ29uZmlndXJhdGlvbi5jb25uZWN0aW9ucztcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBDRk4gUHJvcHMgLSBXaXRoIExhenkgc3VwcG9ydFxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIGNvbnN0IGNmblByb3BzOiBhZ2VudF9jb3JlLkNmbkJyb3dzZXJDdXN0b21Qcm9wcyA9IHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgbmV0d29ya0NvbmZpZ3VyYXRpb246IExhenkuYW55KHsgcHJvZHVjZTogKCkgPT4gdGhpcy5uZXR3b3JrQ29uZmlndXJhdGlvbi5fcmVuZGVyKHRoaXMuX2Nvbm5lY3Rpb25zKSB9KSxcbiAgICAgIHJlY29yZGluZ0NvbmZpZzogdGhpcy5fcmVuZGVyUmVjb3JkaW5nQ29uZmlnKCksXG4gICAgICBleGVjdXRpb25Sb2xlQXJuOiB0aGlzLmV4ZWN1dGlvblJvbGU/LnJvbGVBcm4sXG4gICAgICB0YWdzOiB0aGlzLnRhZ3MsXG4gICAgICBicm93c2VyU2lnbmluZzogdGhpcy5fcmVuZGVyQnJvd3NlclNpZ25pbmcoKSxcbiAgICB9O1xuXG4gICAgLy8gTDEgaW5zdGFudGlhdGlvblxuICAgIHRoaXMuX19yZXNvdXJjZSA9IG5ldyBhZ2VudF9jb3JlLkNmbkJyb3dzZXJDdXN0b20odGhpcywgJ1Jlc291cmNlJywgY2ZuUHJvcHMpO1xuXG4gICAgLy8gR2V0IGF0dHJpYnV0ZXMgZGlyZWN0bHkgZnJvbSB0aGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2VcbiAgICB0aGlzLmJyb3dzZXJJZCA9IHRoaXMuX19yZXNvdXJjZS5hdHRyQnJvd3NlcklkO1xuICAgIHRoaXMuYnJvd3NlckFybiA9IHRoaXMuX19yZXNvdXJjZS5hdHRyQnJvd3NlckFybjtcbiAgICB0aGlzLnN0YXR1cyA9IHRoaXMuX19yZXNvdXJjZS5hdHRyU3RhdHVzO1xuICAgIHRoaXMuY3JlYXRlZEF0ID0gdGhpcy5fX3Jlc291cmNlLmF0dHJDcmVhdGVkQXQ7XG4gICAgdGhpcy5sYXN0VXBkYXRlZEF0ID0gdGhpcy5fX3Jlc291cmNlLmF0dHJMYXN0VXBkYXRlZEF0O1xuICAgIHRoaXMuZmFpbHVyZVJlYXNvbiA9IHRoaXMuX19yZXNvdXJjZS5hdHRyRmFpbHVyZVJlYXNvbjtcblxuICAgIC8vIGlmIHJlY29yZGluZyBpcyBjb25maWd1cmVkLCBhZGQgcGVybWlzc2lvbnMgdG8gdGhlIGV4ZWN1dGlvbiByb2xlXG4gICAgaWYgKHRoaXMucmVjb3JkaW5nQ29uZmlnICYmIHRoaXMucmVjb3JkaW5nQ29uZmlnLnMzTG9jYXRpb24pIHtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKHRoaXMucmVjb3JkaW5nQ29uZmlnLnMzTG9jYXRpb24uYnVja2V0TmFtZSkpIHtcbiAgICAgICAgU3RhY2sub2YodGhpcykucmVzb2x2ZSh0aGlzLnJlY29yZGluZ0NvbmZpZy5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUpO1xuICAgICAgfVxuICAgICAgY29uc3QgYnVja2V0ID0gczMuQnVja2V0LmZyb21CdWNrZXROYW1lKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgJHt0aGlzLm5hbWV9UmVjb3JkaW5nQnVja2V0YCxcbiAgICAgICAgdGhpcy5yZWNvcmRpbmdDb25maWcuczNMb2NhdGlvbi5idWNrZXROYW1lLFxuICAgICAgKTtcbiAgICAgIC8vIEVuc3VyZSB0aGUgcG9saWN5IGlzIGFwcGxpZWQgYmVmb3JlIHRoZSBicm93c2VyIHJlc291cmNlIGlzIGNyZWF0ZWRcbiAgICAgIGNvbnN0IGdyYW50ID0gYnVja2V0LmdyYW50UmVhZFdyaXRlKHRoaXMuZXhlY3V0aW9uUm9sZSk7XG4gICAgICBncmFudC5hcHBseUJlZm9yZSh0aGlzLl9fcmVzb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHJlY29yZGluZyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBSZWNvcmRpbmdDb25maWdQcm9wZXJ0eSBvYmplY3QgaW4gQ2xvdWRGb3JtYXRpb24gZm9ybWF0LCBvciB1bmRlZmluZWQgaWYgbm8gcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5lZFxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZCBpZiBubyByZWNvcmRpbmcgY29uZmlndXJhdGlvbiBpcyBwcm92aWRlZFxuICAgKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS5cbiAgICovXG4gIHByaXZhdGUgX3JlbmRlclJlY29yZGluZ0NvbmZpZygpOiBhZ2VudF9jb3JlLkNmbkJyb3dzZXJDdXN0b20uUmVjb3JkaW5nQ29uZmlnUHJvcGVydHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlY29yZGluZ0NvbmZpZyA/IHtcbiAgICAgIGVuYWJsZWQ6IHRoaXMucmVjb3JkaW5nQ29uZmlnLmVuYWJsZWQsXG4gICAgICBzM0xvY2F0aW9uOiB0aGlzLnJlY29yZGluZ0NvbmZpZy5zM0xvY2F0aW9uID8ge1xuICAgICAgICBidWNrZXQ6IHRoaXMucmVjb3JkaW5nQ29uZmlnLnMzTG9jYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICAgcHJlZml4OiB0aGlzLnJlY29yZGluZ0NvbmZpZy5zM0xvY2F0aW9uLm9iamVjdEtleSxcbiAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgfSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGJyb3dzZXIgc2lnbmluZyBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyBCcm93c2VyU2lnbmluZ1Byb3BlcnR5IG9iamVjdCBpbiBDbG91ZEZvcm1hdGlvbiBmb3JtYXQsIG9yIHVuZGVmaW5lZCBpZiBubyBicm93c2VyIHNpZ25pbmcgY29uZmlndXJhdGlvbiBpcyBkZWZpbmVkXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkIGlmIG5vIGJyb3dzZXIgc2lnbmluZyBjb25maWd1cmF0aW9uIGlzIHByb3ZpZGVkXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVuZGVyQnJvd3NlclNpZ25pbmcoKTogYWdlbnRfY29yZS5DZm5Ccm93c2VyQ3VzdG9tLkJyb3dzZXJTaWduaW5nUHJvcGVydHkge1xuICAgIHJldHVybiB0aGlzLmJyb3dzZXJTaWduaW5nID09PSBCcm93c2VyU2lnbmluZy5FTkFCTEVEID8ge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9IDoge1xuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGV4ZWN1dGlvbiByb2xlIG5lZWRlZCBmb3IgdGhlIGJyb3dzZXIgdG8gYWNjZXNzIEFXUyBzZXJ2aWNlc1xuICAgKiBAcmV0dXJucyBUaGUgY3JlYXRlZCByb2xlXG4gICAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlQnJvd3NlclJvbGUoKTogaWFtLklSb2xlIHtcbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdTZXJ2aWNlUm9sZScsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdiZWRyb2NrLWFnZW50Y29yZS5hbWF6b25hd3MuY29tJyksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcm9sZTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBWYWxpZGF0b3JzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBicm93c2VyIG5hbWUgZm9ybWF0XG4gICAqIEBwYXJhbSBuYW1lIFRoZSBicm93c2VyIG5hbWUgdG8gdmFsaWRhdGVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvciBtZXNzYWdlcywgZW1wdHkgaWYgdmFsaWRcbiAgICovXG4gIHByaXZhdGUgX3ZhbGlkYXRlQnJvd3Nlck5hbWUgPSAobmFtZTogc3RyaW5nKTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG5cbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoKHtcbiAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgZmllbGROYW1lOiAnQnJvd3NlciBuYW1lJyxcbiAgICAgIG1pbkxlbmd0aDogQlJPV1NFUl9OQU1FX01JTl9MRU5HVEgsXG4gICAgICBtYXhMZW5ndGg6IEJST1dTRVJfTkFNRV9NQVhfTEVOR1RILFxuICAgIH0pKTtcblxuICAgIC8vIENoZWNrIGlmIG5hbWUgbWF0Y2hlcyB0aGUgQVdTIEFQSSBwYXR0ZXJuOiBbYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fVxuICAgIC8vIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gNDcgbGV0dGVycywgbnVtYmVycywgb3IgdW5kZXJzY29yZXNcbiAgICBjb25zdCB2YWxpZE5hbWVQYXR0ZXJuID0gL15bYS16QS1aXVthLXpBLVowLTlfXXswLDQ3fSQvO1xuICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKG5hbWUsICdCcm93c2VyIG5hbWUnLCB2YWxpZE5hbWVQYXR0ZXJuKSk7XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGJyb3dzZXIgdGFncyBmb3JtYXRcbiAgICogQHBhcmFtIHRhZ3MgVGhlIHRhZ3Mgb2JqZWN0IHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZUJyb3dzZXJUYWdzID0gKHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCF0YWdzKSB7XG4gICAgICByZXR1cm4gZXJyb3JzOyAvLyBUYWdzIGFyZSBvcHRpb25hbFxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIGVhY2ggdGFnIGtleSBhbmQgdmFsdWVcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0YWdzKSkge1xuICAgICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aCh7XG4gICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgIGZpZWxkTmFtZTogJ1RhZyBrZXknLFxuICAgICAgICBtaW5MZW5ndGg6IEJST1dTRVJfVEFHX01JTl9MRU5HVEgsXG4gICAgICAgIG1heExlbmd0aDogQlJPV1NFUl9UQUdfTUFYX0xFTkdUSCxcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVmFsaWRhdGUgdGFnIGtleSBwYXR0ZXJuOiBeW2EtekEtWjAtOVxccy5fOi89K0AtXSokXG4gICAgICBjb25zdCB2YWxpZEtleVBhdHRlcm4gPSAvXlthLXpBLVowLTlcXHMuXzovPStALV0qJC87XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybihrZXksICdUYWcga2V5JywgdmFsaWRLZXlQYXR0ZXJuKSk7XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRhZyB2YWx1ZVxuICAgICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aCh7XG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgZmllbGROYW1lOiAnVGFnIHZhbHVlJyxcbiAgICAgICAgbWluTGVuZ3RoOiBCUk9XU0VSX1RBR19NSU5fTEVOR1RILFxuICAgICAgICBtYXhMZW5ndGg6IEJST1dTRVJfVEFHX01BWF9MRU5HVEgsXG4gICAgICB9KSk7XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRhZyB2YWx1ZSBwYXR0ZXJuOiBeW2EtekEtWjAtOVxccy5fOi89K0AtXSokXG4gICAgICBjb25zdCB2YWxpZFZhbHVlUGF0dGVybiA9IC9eW2EtekEtWjAtOVxccy5fOi89K0AtXSokLztcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKHZhbHVlLCAnVGFnIHZhbHVlJywgdmFsaWRWYWx1ZVBhdHRlcm4pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHJlY29yZGluZyBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSByZWNvcmRpbmdDb25maWcgVGhlIHJlY29yZGluZyBjb25maWd1cmF0aW9uIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZVJlY29yZGluZ0NvbmZpZyA9IChyZWNvcmRpbmdDb25maWc/OiBSZWNvcmRpbmdDb25maWcpOiBzdHJpbmdbXSA9PiB7XG4gICAgbGV0IGVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoIXJlY29yZGluZ0NvbmZpZykge1xuICAgICAgcmV0dXJuIGVycm9yczsgLy8gTm8gdmFsaWRhdGlvbiBuZWVkZWQgaWYgbm8gcmVjb3JkaW5nIGNvbmZpZyBpcyBwcm92aWRlZFxuICAgIH1cblxuICAgIGNvbnN0IHMzTG9jYXRpb24gPSByZWNvcmRpbmdDb25maWcuczNMb2NhdGlvbjtcblxuICAgIC8vIE9ubHkgdmFsaWRhdGUgUzMgbG9jYXRpb24gaWYgaXQncyBhY3R1YWxseSBwcm92aWRlZFxuICAgIGlmIChzM0xvY2F0aW9uKSB7XG4gICAgICAvLyBCb3RoIGJ1Y2tldCBuYW1lIGFuZCBvYmplY3Qga2V5IGFyZSByZXF1aXJlZCB3aGVuIFMzIGxvY2F0aW9uIGlzIHByb3ZpZGVkXG4gICAgICBpZiAoIXMzTG9jYXRpb24uYnVja2V0TmFtZSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnUzMgYnVja2V0IG5hbWUgaXMgcmVxdWlyZWQgd2hlbiBTMyBsb2NhdGlvbiBpcyBwcm92aWRlZCBmb3IgcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFZhbGlkYXRlIGJ1Y2tldCBuYW1lIHBhdHRlcm46IF5bYS16MC05XVthLXowLTkuLV17MSw2MX1bYS16MC05XSRcbiAgICAgICAgY29uc3QgYnVja2V0TmFtZVBhdHRlcm4gPSAvXlthLXowLTldW2EtejAtOS4tXXsxLDYxfVthLXowLTldJC87XG4gICAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlRmllbGRQYXR0ZXJuKHMzTG9jYXRpb24uYnVja2V0TmFtZSwgJ1MzIGJ1Y2tldCBuYW1lJywgYnVja2V0TmFtZVBhdHRlcm4pKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFzM0xvY2F0aW9uLm9iamVjdEtleSkge1xuICAgICAgICBlcnJvcnMucHVzaCgnUzMgb2JqZWN0IGtleSAocHJlZml4KSBpcyByZXF1aXJlZCB3aGVuIFMzIGxvY2F0aW9uIGlzIHByb3ZpZGVkIGZvciByZWNvcmRpbmcgY29uZmlndXJhdGlvbicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH07XG59XG4iXX0=
|
|
680
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBU3FCO0FBQ3JCLCtEQUErRDtBQUMvRCwrREFNb0M7QUFDcEMsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyx5Q0FBeUM7QUFFekMsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUUxRSxnQkFBZ0I7QUFDaEIsaUNBQWlDO0FBQ2pDLDZEQUF1RztBQUN2Ryw0RUFBK0U7QUFFL0U7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQztBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUVuQzs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQztBQUVqQzs7O0dBR0c7QUFDSCxNQUFNLHNCQUFzQixHQUFHLEdBQUcsQ0FBQztBQUVuQzs7K0VBRStFO0FBQy9FOzs7O0dBSUc7QUFDSCxJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCxxQ0FBbUIsQ0FBQTtJQUNuQjs7T0FFRztJQUNILHVDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFUVyxjQUFjLDhCQUFkLGNBQWMsUUFTekI7QUEwSEQ7OytFQUUrRTtBQUMvRTs7O0dBR0c7QUFDSCxNQUFzQixpQkFBa0IsU0FBUSxzQkFBUTs7SUFXdEQ7OztPQUdHO0lBQ0gsSUFBVyxXQUFXO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLDZCQUFlLENBQUMsd0RBQXdELEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztLQUMxQjtJQUNEOzs7O09BSUc7SUFDTyxZQUFZLENBQThCO0lBRXBE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QztnQkFDN0csQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUM7O1lBM1VTLHVEQUFhOzs7OztBQUFiLHNDQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXJuLFxuICBBcm5Gb3JtYXQsXG4gIElSZXNvdXJjZSxcbiAgTGF6eSxcbiAgUmVzb3VyY2UsXG4gIFRva2VuLFxuICBTdGFjayxcbiAgVmFsaWRhdGlvbkVycm9yLFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhZ2VudF9jb3JlIGZyb20gJ2F3cy1jZGstbGliL2F3cy1iZWRyb2NrYWdlbnRjb3JlJztcbmltcG9ydCB7XG4gIERpbWVuc2lvbnNNYXAsXG4gIE1ldHJpYyxcbiAgTWV0cmljT3B0aW9ucyxcbiAgTWV0cmljUHJvcHMsXG4gIFN0YXRzLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG4vLyBJbnRlcm5hbCBMaWJzXG5pbXBvcnQgKiBhcyBwZXJtcyBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB7IHZhbGlkYXRlRmllbGRQYXR0ZXJuLCB2YWxpZGF0ZVN0cmluZ0ZpZWxkTGVuZ3RoLCB0aHJvd0lmSW52YWxpZCB9IGZyb20gJy4vdmFsaWRhdGlvbi1oZWxwZXJzJztcbmltcG9ydCB7IEJyb3dzZXJOZXR3b3JrQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL25ldHdvcmsvbmV0d29yay1jb25maWd1cmF0aW9uJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT05TVEFOVFNcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKlxuICogTWluaW11bSBsZW5ndGggZm9yIGJyb3dzZXIgbmFtZVxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IEJST1dTRVJfTkFNRV9NSU5fTEVOR1RIID0gMTtcblxuLyoqXG4gKiBNYXhpbXVtIGxlbmd0aCBmb3IgYnJvd3NlciBuYW1lXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgQlJPV1NFUl9OQU1FX01BWF9MRU5HVEggPSA0ODtcblxuLyoqXG4gKiBNaW5pbXVtIGxlbmd0aCBmb3IgYnJvd3NlciB0YWdzXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgQlJPV1NFUl9UQUdfTUlOX0xFTkdUSCA9IDE7XG5cbi8qKlxuICogTWF4aW11bSBsZW5ndGggZm9yIGJyb3dzZXIgdGFnc1xuICogQGludGVybmFsXG4gKi9cbmNvbnN0IEJST1dTRVJfVEFHX01BWF9MRU5HVEggPSAyNTY7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnVtc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqXG4gKiBCcm93c2VyIHNpZ25pbmcuIFNwZWNpZmllcyB3aGV0aGVyIGJyb3dzZXIgc2lnbmluZyBpcyBlbmFibGVkLlxuICogV2hlbiBlbmFibGVkLCB0aGUgYnJvd3NlciB3aWxsIGNyeXB0b2dyYXBoaWNhbGx5IHNpZ24gSFRUUCByZXF1ZXN0cyB0byBpZGVudGlmeVxuICogaXRzZWxmIGFzIGFuIEFJIGFnZW50IHRvIGJvdCBjb250cm9sIHZlbmRvcnMuXG4gKi9cbmV4cG9ydCBlbnVtIEJyb3dzZXJTaWduaW5nIHtcbiAgLyoqXG4gICAqIEJyb3dzZXIgc2lnbmluZyBpcyBlbmFibGVkLlxuICAgKi9cbiAgRU5BQkxFRCA9ICdFTkFCTEVEJyxcbiAgLyoqXG4gICAqIEJyb3dzZXIgc2lnbmluZyBpcyBkaXNhYmxlZC5cbiAgICovXG4gIERJU0FCTEVEID0gJ0RJU0FCTEVEJyxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgQnJvd3NlciByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnJvd3NlckN1c3RvbSBleHRlbmRzIElSZXNvdXJjZSwgaWFtLklHcmFudGFibGUsIGVjMi5JQ29ubmVjdGFibGUge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYnJvd3NlciByZXNvdXJjZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBicm93c2VyQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgYnJvd3NlclxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBicm93c2VySWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgcHJvdmlkZXMgcGVybWlzc2lvbnMgZm9yIHRoZSBicm93c2VyIHRvIGFjY2VzcyBBV1Mgc2VydmljZXNcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU6IGlhbS5JUm9sZTtcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGJyb3dzZXIgd2FzIGxhc3QgdXBkYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBsYXN0VXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBicm93c2VyXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcblxuICAvKipcbiAgICogVGltZXN0YW1wIHdoZW4gdGhlIGJyb3dzZXIgd2FzIGNyZWF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICovXG4gIGdyYW50KGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlLCAuLi5hY3Rpb25zOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50cyBgR2V0YCBhbmQgYExpc3RgIGFjdGlvbnMgb24gdGhlIEJyb3dzZXJcbiAgICovXG4gIGdyYW50UmVhZChncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcbiAgLyoqXG4gICAqIEdyYW50cyBgSW52b2tlYCwgYFN0YXJ0YCwgYW5kIGBVcGRhdGVgIGFjdGlvbnMgb24gdGhlIEJyb3dzZXJcbiAgICovXG4gIGdyYW50VXNlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNZXRyaWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgcmVsYXRlZCB0byB0aGUgQVBJIG9wZXJhdGlvbiBwZXJmb3JtZWQgb24gdGhpcyBicm93c2VyLlxuICAgKi9cbiAgbWV0cmljRm9yQXBpT3BlcmF0aW9uKG1ldHJpY05hbWU6IHN0cmluZywgb3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgbGF0ZW5jeSBvZiBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY0xhdGVuY3lGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBBUEkgcmVxdWVzdHMgbWFkZSBmb3IgYSBzcGVjaWZpYyBicm93c2VyIG9wZXJhdGlvbi5cbiAgICovXG4gIG1ldHJpY0ludm9jYXRpb25zRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY0Vycm9yc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRocm90dGxlZCByZXF1ZXN0cyBmb3IgYSBzcGVjaWZpYyBBUEkgb3BlcmF0aW9uIHBlcmZvcm1lZCBvbiB0aGlzIGJyb3dzZXIuXG4gICAqL1xuICBtZXRyaWNUaHJvdHRsZXNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzeXN0ZW0gZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY1N5c3RlbUVycm9yc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHVzZXIgZXJyb3JzIGZvciBhIHNwZWNpZmljIEFQSSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoaXMgYnJvd3Nlci5cbiAgICovXG4gIG1ldHJpY1VzZXJFcnJvcnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgZHVyYXRpb24gb2YgYnJvd3NlciBzZXNzaW9ucy5cbiAgICovXG4gIG1ldHJpY1Nlc3Npb25EdXJhdGlvbihwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdXNlciB0YWtlb3ZlcnMuXG4gICAqL1xuICBtZXRyaWNUYWtlT3ZlckNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB1c2VyIHRha2VvdmVycyByZWxlYXNlZC5cbiAgICovXG4gIG1ldHJpY1Rha2VPdmVyUmVsZWFzZUNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgZHVyYXRpb24gb2YgdXNlciB0YWtlb3ZlcnMuXG4gICAqL1xuICBtZXRyaWNUYWtlT3ZlckR1cmF0aW9uKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICBBQlNUUkFDVCBCQVNFIENMQVNTXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGEgQnJvd3Nlci5cbiAqIENvbnRhaW5zIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXMgdmFsaWQgZm9yIEJyb3dzZXJzIGVpdGhlciBjcmVhdGVkIHdpdGggQ0RLIG9yIGltcG9ydGVkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQnJvd3NlckN1c3RvbUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElCcm93c2VyQ3VzdG9tIHtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJyb3dzZXJBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGJyb3dzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU6IGlhbS5JUm9sZTtcbiAgLyoqXG4gICAqIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG9cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG4gIC8qKlxuICAgKiBBbiBhY2Nlc3NvciBmb3IgdGhlIENvbm5lY3Rpb25zIG9iamVjdCB0aGF0IHdpbGwgZmFpbCBpZiB0aGlzIEJyb3dzZXIgZG9lcyBub3QgaGF2ZSBhIFZQQ1xuICAgKiBjb25maWd1cmVkLlxuICAgKi9cbiAgcHVibGljIGdldCBjb25uZWN0aW9ucygpOiBlYzIuQ29ubmVjdGlvbnMge1xuICAgIGlmICghdGhpcy5fY29ubmVjdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ0Nhbm5vdCBtYW5hZ2UgbmV0d29yayBhY2Nlc3Mgd2l0aG91dCBjb25maWd1cmluZyBhIFZQQycsIHRoaXMpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdGlvbnM7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBhY3R1YWwgQ29ubmVjdGlvbnMgb2JqZWN0IGZvciB0aGlzIEJyb3dzZXIuIFRoaXMgbWF5IGJlIHVuc2V0IGluIHRoZSBldmVudCB0aGF0IGEgVlBDIGhhcyBub3RcbiAgICogYmVlbiBjb25maWd1cmVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgSUFNIGFjdGlvbnMgdG8gdGhlIElBTSBQcmluY2lwYWxcbiAgICogQHBhcmFtIGdyYW50ZWUgLSBUaGUgSUFNIHByaW5jaXBhbCB0byBncmFudCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAcGFyYW0gYWN0aW9ucyAtIFRoZSBhY3Rpb25zIHRvIGdyYW50XG4gICAqIEByZXR1cm5zIEFuIElBTSBHcmFudCBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBncmFudGVkIHBlcm1pc3Npb25zXG4gICAqL1xuICBwdWJsaWMgZ3JhbnQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUsIC4uLmFjdGlvbnM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmJyb3dzZXJBcm5dLFxuICAgICAgYWN0aW9uczogYWN0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCByZWFkIHBlcm1pc3Npb25zIG9uIHRoaXMgYnJvd3NlciB0byBhbiBJQU0gcHJpbmNpcGFsLlxuICAgKiBUaGlzIGluY2x1ZGVzIGJvdGggcmVhZCBwZXJtaXNzaW9ucyBvbiB0aGUgc3BlY2lmaWMgYnJvd3NlciBhbmQgbGlzdCBwZXJtaXNzaW9ucyBvbiBhbGwgYnJvd3NlcnMuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgcmVhZCBwZXJtaXNzaW9ucyB0b1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgZ3JhbnQgY29uZmlndXJhdGlvbjpcbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkdldEJyb3dzZXInLCAnYmVkcm9jay1hZ2VudGNvcmU6R2V0QnJvd3NlclNlc3Npb24nXSBvbiB0aGlzLmJyb3dzZXJBcm5cbiAgICogLSBhY3Rpb25zOiBbJ2JlZHJvY2stYWdlbnRjb3JlOkxpc3RCcm93c2VycycsICdiZWRyb2NrLWFnZW50Y29yZTpMaXN0QnJvd3NlclNlc3Npb25zJ10gb24gYWxsIHJlc291cmNlcyAoKilcbiAgICogQHJldHVybnMgQW4gSUFNIEdyYW50IG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBncmFudFJlYWQoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIGNvbnN0IHJlc291cmNlU3BlY2lmaWNHcmFudCA9IHRoaXMuZ3JhbnQoXG4gICAgICBncmFudGVlLFxuICAgICAgLi4ucGVybXMuQlJPV1NFUl9SRUFEX1BFUk1TLFxuICAgICk7XG5cbiAgICBjb25zdCBhbGxSZXNvdXJjZUdyYW50ID0gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IGdyYW50ZWUsXG4gICAgICByZXNvdXJjZUFybnM6IFsnKiddLFxuICAgICAgYWN0aW9uczogcGVybXMuQlJPV1NFUl9MSVNUX1BFUk1TLFxuICAgIH0pO1xuICAgIC8vIFJldHVybiBjb21iaW5lZCBncmFudFxuICAgIHJldHVybiByZXNvdXJjZVNwZWNpZmljR3JhbnQuY29tYmluZShhbGxSZXNvdXJjZUdyYW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCBpbnZva2UgcGVybWlzc2lvbnMgb24gdGhpcyBicm93c2VyIHRvIGFuIElBTSBwcmluY2lwYWwuXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIC0gVGhlIElBTSBwcmluY2lwYWwgdG8gZ3JhbnQgaW52b2tlIHBlcm1pc3Npb25zIHRvXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBncmFudCBjb25maWd1cmF0aW9uOlxuICAgKiAtIGFjdGlvbnM6IFsnYmVkcm9jay1hZ2VudGNvcmU6U3RhcnRCcm93c2VyU2Vzc2lvbicsICdiZWRyb2NrLWFnZW50Y29yZTpVcGRhdGVCcm93c2VyU3RyZWFtJywgJ2JlZHJvY2stYWdlbnRjb3JlOlN0b3BCcm93c2VyU2Vzc2lvbiddXG4gICAqIC0gcmVzb3VyY2VBcm5zOiBbdGhpcy5icm93c2VyQXJuXVxuICAgKiBAcmV0dXJucyBBbiBJQU0gR3JhbnQgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ3JhbnRlZCBwZXJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdyYW50VXNlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudChcbiAgICAgIGdyYW50ZWUsXG4gICAgICAuLi5wZXJtcy5CUk9XU0VSX1VTRV9QRVJNUyxcbiAgICApO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1ldHJpY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBicm93c2VyLlxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCB0aGUgbWV0cmljIHdpbGwgYmUgY2FsY3VsYXRlZCBhcyBhIHN1bSBvdmVyIGEgcGVyaW9kIG9mIDUgbWludXRlcy5cbiAgICogWW91IGNhbiBjdXN0b21pemUgdGhpcyBieSB1c2luZyB0aGUgYHN0YXRpc3RpY2AgYW5kIGBwZXJpb2RgIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgZGltZW5zaW9uczogRGltZW5zaW9uc01hcCwgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICBjb25zdCBtZXRyaWNQcm9wczogTWV0cmljUHJvcHMgPSB7XG4gICAgICBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnLFxuICAgICAgbWV0cmljTmFtZSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHsgLi4uZGltZW5zaW9ucywgUmVzb3VyY2U6IHRoaXMuYnJvd3NlckFybiB9LFxuICAgICAgLi4ucHJvcHMsXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmVNZXRyaWMobWV0cmljUHJvcHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciBhcGkgb3BlcmF0aW9ucy4uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IG1ldHJpY05hbWVcbiAgICogLSBkaW1lbnNpb25zTWFwOiB7IEJyb3dzZXJJZDogdGhpcy5icm93c2VySWQgfVxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgYXBpIG9wZXJhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNGb3JBcGlPcGVyYXRpb24oXG4gICAgbWV0cmljTmFtZTogc3RyaW5nLFxuICAgIG9wZXJhdGlvbjogc3RyaW5nLFxuICAgIHByb3BzPzogTWV0cmljT3B0aW9ucyxcbiAgKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMobWV0cmljTmFtZSwgeyBPcGVyYXRpb246IG9wZXJhdGlvbiB9LCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0cmFja2luZyBicm93c2VyIGxhdGVuY2llcy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogTGF0ZW5jeVxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgbGF0ZW5jaWVzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljTGF0ZW5jeUZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ0xhdGVuY3knLCBvcGVyYXRpb24sIHsgc3RhdGlzdGljOiBTdGF0cy5BVkVSQUdFLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRyYWNraW5nIGJyb3dzZXIgaW52b2NhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IEludm9jYXRpb25zXG4gICAqIEByZXR1cm5zIEEgQ2xvdWRXYXRjaCBNZXRyaWMgY29uZmlndXJlZCBmb3IgYnJvd3NlciBsYXRlbmNpZXNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNJbnZvY2F0aW9uc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ0ludm9jYXRpb25zJywgb3BlcmF0aW9uLCB7XG4gICAgICBzdGF0aXN0aWM6IFN0YXRzLlNVTSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciBlcnJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IEVycm9yc1xuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgZXJyb3JzXG4gICAqL1xuICBwdWJsaWMgbWV0cmljRXJyb3JzRm9yQXBpT3BlcmF0aW9uKG9wZXJhdGlvbjogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLm1ldHJpY0ZvckFwaU9wZXJhdGlvbignRXJyb3JzJywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRyYWNraW5nIGJyb3dzZXIgdGhyb3R0bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtZXRyaWNcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IG1ldHJpYyBjb25maWd1cmF0aW9uOlxuICAgKiAtIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZSdcbiAgICogLSBtZXRyaWNOYW1lOiBUaHJvdHRsZXNcbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIHRocm90dGxlc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1Rocm90dGxlc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ1Rocm90dGxlcycsIG9wZXJhdGlvbiwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0cmFja2luZyBicm93c2VyIHN5c3RlbSBlcnJvcnMuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1ldHJpY1xuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgbWV0cmljIGNvbmZpZ3VyYXRpb246XG4gICAqIC0gbmFtZXNwYWNlOiAnQVdTL0JlZHJvY2stQWdlbnRDb3JlJ1xuICAgKiAtIG1ldHJpY05hbWU6IFN5c3RlbUVycm9yc1xuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgc3lzdGVtIGVycm9yc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1N5c3RlbUVycm9yc0ZvckFwaU9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWNGb3JBcGlPcGVyYXRpb24oJ1N5c3RlbUVycm9ycycsIG9wZXJhdGlvbiwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0cmFja2luZyBicm93c2VyIHVzZXIgZXJyb3JzLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtZXRyaWNcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IG1ldHJpYyBjb25maWd1cmF0aW9uOlxuICAgKiAtIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZSdcbiAgICogLSBtZXRyaWNOYW1lOiBVc2VyRXJyb3JzXG4gICAqIEByZXR1cm5zIEEgQ2xvdWRXYXRjaCBNZXRyaWMgY29uZmlndXJlZCBmb3IgYnJvd3NlciB1c2VyIGVycm9yc1xuICAgKi9cbiAgcHVibGljIG1ldHJpY1VzZXJFcnJvcnNGb3JBcGlPcGVyYXRpb24ob3BlcmF0aW9uOiBzdHJpbmcsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljRm9yQXBpT3BlcmF0aW9uKCdVc2VyRXJyb3JzJywgb3BlcmF0aW9uLCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWRXYXRjaCBtZXRyaWMgZm9yIHRyYWNraW5nIGJyb3dzZXIgc2Vzc2lvbiBkdXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogRHVyYXRpb25cbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIHNlc3Npb24gZHVyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNTZXNzaW9uRHVyYXRpb24ocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0R1cmF0aW9uJywgeyBPcGVyYXRpb246ICdCcm93c2VyU2Vzc2lvbicgfSwgeyBzdGF0aXN0aWM6IFN0YXRzLkFWRVJBR0UsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciB1c2VyIHRha2VvdmVycy5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogVGFrZU92ZXJDb3VudFxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgdXNlciB0YWtlb3ZlcnNcbiAgICovXG4gIHB1YmxpYyBtZXRyaWNUYWtlT3ZlckNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUYWtlT3ZlckNvdW50Jywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciB1c2VyIHRha2VvdmVycyByZWxlYXNlZC5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogVGFrZU92ZXJSZWxlYXNlQ291bnRcbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIHVzZXIgdGFrZW92ZXJzIHJlbGVhc2VkXG4gICAqL1xuICBwdWJsaWMgbWV0cmljVGFrZU92ZXJSZWxlYXNlQ291bnQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1Rha2VPdmVyUmVsZWFzZUNvdW50Jywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdHJhY2tpbmcgYnJvd3NlciB1c2VyIHRha2VvdmVycyBkdXJhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbWV0cmljXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBtZXRyaWMgY29uZmlndXJhdGlvbjpcbiAgICogLSBuYW1lc3BhY2U6ICdBV1MvQmVkcm9jay1BZ2VudENvcmUnXG4gICAqIC0gbWV0cmljTmFtZTogVGFrZU92ZXJEdXJhdGlvblxuICAgKiBAcmV0dXJucyBBIENsb3VkV2F0Y2ggTWV0cmljIGNvbmZpZ3VyZWQgZm9yIGJyb3dzZXIgdXNlciB0YWtlb3ZlcnMgZHVyYXRpb25cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNUYWtlT3ZlckR1cmF0aW9uKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUYWtlT3ZlckR1cmF0aW9uJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5BVkVSQUdFLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gY3JlYXRlIGEgbWV0cmljLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtZXRyaWNcbiAgICogQHJldHVybnMgQSBDbG91ZFdhdGNoIE1ldHJpYyBjb25maWd1cmVkIGZvciBicm93c2VyIGFwaSBvcGVyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIGNvbmZpZ3VyZU1ldHJpYyhwcm9wczogTWV0cmljUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IE1ldHJpYyh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHJlZ2lvbjogcHJvcHM/LnJlZ2lvbiA/PyB0aGlzLnN0YWNrLnJlZ2lvbixcbiAgICAgIGFjY291bnQ6IHByb3BzPy5hY2NvdW50ID8/IHRoaXMuc3RhY2suYWNjb3VudCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVjb3JkaW5nIENvbmZpZ3VyYXRpb25cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBSZWNvcmRpbmcgY29uZmlndXJhdGlvbiBmb3IgYnJvd3NlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZGluZ0NvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHJlY29yZGluZyBpcyBlbmFibGVkXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUzMgTG9jYXRpb24gQ29uZmlndXJhdGlvblxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbj86IExvY2F0aW9uO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIFBST1BTIEZPUiBORVcgQ09OU1RSVUNUXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgQnJvd3NlciByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyb3dzZXJDdXN0b21Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnJvd3NlclxuICAgKiBWYWxpZCBjaGFyYWN0ZXJzIGFyZSBhLXosIEEtWiwgMC05LCBfICh1bmRlcnNjb3JlKVxuICAgKiBUaGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgYW5kIGNhbiBiZSB1cCB0byA0OCBjaGFyYWN0ZXJzIGxvbmdcbiAgICogUGF0dGVybjogW2EtekEtWl1bYS16QS1aMC05X117MCw0N31cbiAgICogQHJlcXVpcmVkIC0gWWVzXG4gICAqL1xuICByZWFkb25seSBicm93c2VyQ3VzdG9tTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGJyb3dzZXJcbiAgICogVmFsaWQgY2hhcmFjdGVycyBhcmUgYS16LCBBLVosIDAtOSwgXyAodW5kZXJzY29yZSksIC0gKGh5cGhlbikgYW5kIHNwYWNlc1xuICAgKiBUaGUgZGVzY3JpcHRpb24gY2FuIGhhdmUgdXAgdG8gMjAwIGNoYXJhY3RlcnNcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvblxuICAgKiBAcmVxdWlyZWQgLSBOb1xuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmsgY29uZmlndXJhdGlvbiBmb3IgYnJvd3NlclxuICAgKiBAcmVxdWlyZWQgLSBOb1xuICAgKiBAZGVmYXVsdCAtIFBVQkxJQyBuZXR3b3JrIG1vZGVcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtDb25maWd1cmF0aW9uPzogQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBSZWNvcmRpbmcgY29uZmlndXJhdGlvbiBmb3IgYnJvd3NlclxuICAgKiBAcmVxdWlyZWQgLSBOb1xuICAgKiBAZGVmYXVsdCAtIE5vIHJlY29yZGluZyBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSByZWNvcmRpbmdDb25maWc/OiBSZWNvcmRpbmdDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IHByb3ZpZGVzIHBlcm1pc3Npb25zIGZvciB0aGUgYnJvd3NlciB0byBhY2Nlc3MgQVdTIHNlcnZpY2VzXG4gICAqIEBkZWZhdWx0IC0gQSBuZXcgcm9sZSB3aWxsIGJlIGNyZWF0ZWRcbiAgICogQHJlcXVpcmVkIC0gTm9cbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRhZ3MgKG9wdGlvbmFsKVxuICAgKiBBIGxpc3Qgb2Yga2V5OnZhbHVlIHBhaXJzIG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhpcyBCcm93c2VyIHJlc291cmNlXG4gICAqXG4gICAqIEBkZWZhdWx0IHt9IC0gbm8gdGFnc1xuICAgKiBAcmVxdWlyZWQgLSBOb1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIGJyb3dzZXIgc2lnbmluZyBpcyBlbmFibGVkLlxuICAgKiBXaGVuIGVuYWJsZWQsIHRoZSBicm93c2VyIHdpbGwgY3J5cHRvZ3JhcGhpY2FsbHkgc2lnblxuICAgKiBIVFRQIHJlcXVlc3RzIHRvIGlkZW50aWZ5IGl0c2VsZiBhcyBhbiBBSSBhZ2VudCB0byBib3QgY29udHJvbCB2ZW5kb3JzLlxuICAgKiBAZGVmYXVsdCAtIEJyb3dzZXJTaWduaW5nLkRJU0FCTEVEXG4gICAqL1xuICByZWFkb25seSBicm93c2VyU2lnbmluZz86IEJyb3dzZXJTaWduaW5nO1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICBBVFRSUyBGT1IgSU1QT1JURUQgQ09OU1RSVUNUXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIHNwZWNpZnlpbmcgYW4gaW1wb3J0ZWQgQnJvd3NlciBDdXN0b20uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJvd3NlckN1c3RvbUF0dHJpYnV0ZXMge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYWdlbnQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGJyb3dzZXJBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIElBTSByb2xlIGFzc29jaWF0ZWQgdG8gdGhlIGJyb3dzZXIuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZW4gdGhpcyBicm93c2VyIHdhcyBsYXN0IHVwZGF0ZWQuXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAtIE5vIGxhc3QgdXBkYXRlZCB0aW1lc3RhbXAgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGxhc3RVcGRhdGVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBicm93c2VyLlxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWQgLSBObyBzdGF0dXMgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjcmVhdGVkIHRpbWVzdGFtcCBvZiB0aGUgYnJvd3Nlci5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIC0gTm8gY3JlYXRlZCB0aW1lc3RhbXAgaXMgcHJvdmlkZWRcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBncm91cHMgZm9yIHRoaXMgYnJvd3NlciwgaWYgaW4gYSBWUEMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQnkgZGVmYXVsdCwgdGhlIGJyb3dzZXIgaXMgbm90IGluIGEgVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKipcbiAqIEJyb3dzZXIgcmVzb3VyY2UgZm9yIEFXUyBCZWRyb2NrIEFnZW50IENvcmUuXG4gKiBQcm92aWRlcyBhIGJyb3dzZXIgZW52aXJvbm1lbnQgZm9yIHdlYiBhdXRvbWF0aW9uIGFuZCBpbnRlcmFjdGlvbi5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvYnJvd3Nlci5odG1sXG4gKiBAcmVzb3VyY2UgQVdTOjpCZWRyb2NrQWdlbnRDb3JlOjpCcm93c2VyQ3VzdG9tXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBCcm93c2VyQ3VzdG9tIGV4dGVuZHMgQnJvd3NlckN1c3RvbUJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1iZWRyb2NrLWFnZW50Y29yZS1hbHBoYS5Ccm93c2VyQ3VzdG9tJztcblxuICAvKipcbiAgICogU3RhdGljIE1ldGhvZCBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEJlZHJvY2sgQWdlbnRDb3JlIEJyb3dzZXIgQ3VzdG9tLlxuICAgKi9cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gQnJvd3NlciBDdXN0b20gcmVmZXJlbmNlIGZyb20gYW4gZXhpc3RpbmcgYnJvd3NlcidzIGF0dHJpYnV0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBjb25zdHJ1Y3Qgc2NvcGVcbiAgICogQHBhcmFtIGlkIC0gSWRlbnRpZmllciBvZiB0aGUgY29uc3RydWN0XG4gICAqIEBwYXJhbSBhdHRycyAtIEF0dHJpYnV0ZXMgb2YgdGhlIGV4aXN0aW5nIGJyb3dzZXIgY3VzdG9tXG4gICAqIEByZXR1cm5zIEFuIElCcm93c2VyQ3VzdG9tIHJlZmVyZW5jZSB0byB0aGUgZXhpc3RpbmcgYnJvd3NlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQnJvd3NlckN1c3RvbUF0dHJpYnV0ZXMoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgYXR0cnM6IEJyb3dzZXJDdXN0b21BdHRyaWJ1dGVzKTogSUJyb3dzZXJDdXN0b20ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEJyb3dzZXJDdXN0b21CYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBicm93c2VyQXJuID0gYXR0cnMuYnJvd3NlckFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBicm93c2VySWQgPSBBcm4uc3BsaXQoYXR0cnMuYnJvd3NlckFybiwgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZSE7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZXhlY3V0aW9uUm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKHNjb3BlLCBgJHtpZH1Sb2xlYCwgYXR0cnMucm9sZUFybik7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdCA9IGF0dHJzLmxhc3RVcGRhdGVkQXQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWwgPSB0aGlzLmV4ZWN1dGlvblJvbGU7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzID0gYXR0cnMuc3RhdHVzO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdCA9IGF0dHJzLmNyZWF0ZWRBdDtcblxuICAgICAgY29uc3RydWN0b3IoczogQ29uc3RydWN0LCBpOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIocywgaSk7XG5cbiAgICAgICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMuZXhlY3V0aW9uUm9sZSB8fCBuZXcgaWFtLlVua25vd25QcmluY2lwYWwoeyByZXNvdXJjZTogdGhpcyB9KTtcbiAgICAgICAgaWYgKGF0dHJzLnNlY3VyaXR5R3JvdXBzKSB7XG4gICAgICAgICAgdGhpcy5fY29ubmVjdGlvbnMgPSBuZXcgZWMyLkNvbm5lY3Rpb25zKHtcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBzOiBhdHRycy5zZWN1cml0eUdyb3VwcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldHVybiBuZXcgQnJvd3NlciBDdXN0b21cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBBdHRyaWJ1dGVzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYnJvd3NlciByZXNvdXJjZS5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJyb3dzZXJBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBpZCBvZiB0aGUgYnJvd3NlclxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnJvd3NlcklkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgYnJvd3NlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgYnJvd3NlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxhc3QgdXBkYXRlZCB0aW1lc3RhbXAgb2YgdGhlIGJyb3dzZXJcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxhc3RVcGRhdGVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBicm93c2VyXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3JlYXRlZCB0aW1lc3RhbXAgb2YgdGhlIGJyb3dzZXJcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmYWlsdXJlIHJlYXNvbiBvZiB0aGUgYnJvd3NlclxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmFpbHVyZVJlYXNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBhc3NvY2lhdGVkIHRvIHRoZSBicm93c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4ZWN1dGlvblJvbGU6IGlhbS5JUm9sZTtcbiAgLyoqXG4gICAqIFRhZ3MgYXBwbGllZCB0byB0aGlzIGJyb3dzZXIgcmVzb3VyY2VcbiAgICogQSBtYXAgb2Yga2V5LXZhbHVlIHBhaXJzIGZvciByZXNvdXJjZSB0YWdnaW5nXG4gICAqIEBkZWZhdWx0IC0gTm8gdGFncyBhcHBsaWVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IHBlcm1pc3Npb25zIHRvXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhbnRQcmluY2lwYWw6IGlhbS5JUHJpbmNpcGFsO1xuICAvKipcbiAgICogVGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiBvZiB0aGUgYnJvd3NlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5ldHdvcmtDb25maWd1cmF0aW9uOiBCcm93c2VyTmV0d29ya0NvbmZpZ3VyYXRpb247XG4gIC8qKlxuICAgKiBUaGUgcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGJyb3dzZXJcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZWNvcmRpbmdDb25maWc/OiBSZWNvcmRpbmdDb25maWc7XG4gIC8qKlxuICAgKiBUaGUgYnJvd3NlciBzaWduaW5nIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGJyb3dzZXJcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBicm93c2VyU2lnbmluZz86IEJyb3dzZXJTaWduaW5nO1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSW50ZXJuYWwgT25seVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcHJpdmF0ZSByZWFkb25seSBfX3Jlc291cmNlOiBhZ2VudF9jb3JlLkNmbkJyb3dzZXJDdXN0b207XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENPTlNUUlVDVE9SXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnJvd3NlckN1c3RvbVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBFbmhhbmNlZCBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIC8vIFNldCBwcm9wZXJ0aWVzIGFuZCBkZWZhdWx0c1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgIHRoaXMubmFtZSA9IHByb3BzLmJyb3dzZXJDdXN0b21OYW1lO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICB0aGlzLm5ldHdvcmtDb25maWd1cmF0aW9uID0gcHJvcHMubmV0d29ya0NvbmZpZ3VyYXRpb24gPz8gQnJvd3Nlck5ldHdvcmtDb25maWd1cmF0aW9uLnVzaW5nUHVibGljTmV0d29yaygpO1xuICAgIHRoaXMucmVjb3JkaW5nQ29uZmlnID0gcHJvcHMucmVjb3JkaW5nQ29uZmlnID8/IHsgZW5hYmxlZDogZmFsc2UgfTtcbiAgICB0aGlzLmV4ZWN1dGlvblJvbGUgPSBwcm9wcy5leGVjdXRpb25Sb2xlID8/IHRoaXMuX2NyZWF0ZUJyb3dzZXJSb2xlKCk7XG4gICAgdGhpcy5ncmFudFByaW5jaXBhbCA9IHRoaXMuZXhlY3V0aW9uUm9sZTtcbiAgICB0aGlzLnRhZ3MgPSBwcm9wcy50YWdzO1xuICAgIHRoaXMuYnJvd3NlclNpZ25pbmcgPSBwcm9wcy5icm93c2VyU2lnbmluZyA/PyBCcm93c2VyU2lnbmluZy5ESVNBQkxFRDtcblxuICAgIC8vIFZhbGlkYXRlIGJyb3dzZXIgbmFtZVxuICAgIHRocm93SWZJbnZhbGlkKHRoaXMuX3ZhbGlkYXRlQnJvd3Nlck5hbWUsIHRoaXMubmFtZSk7XG5cbiAgICAvLyBWYWxpZGF0ZSBicm93c2VyIHRhZ3NcbiAgICB0aHJvd0lmSW52YWxpZCh0aGlzLl92YWxpZGF0ZUJyb3dzZXJUYWdzLCB0aGlzLnRhZ3MpO1xuXG4gICAgLy8gVmFsaWRhdGUgcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb25cbiAgICB0aHJvd0lmSW52YWxpZCh0aGlzLl92YWxpZGF0ZVJlY29yZGluZ0NvbmZpZywgdGhpcy5yZWNvcmRpbmdDb25maWcpO1xuXG4gICAgLy8gTmV0d29yayBjb25maWd1cmF0aW9uIGFuZCB2YWxpZGF0aW9uIGlzIGRvbmUgaW4gdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiBjbGFzc1xuICAgIC8vIFNvIHdlIGRvbid0IG5lZWQgdG8gdmFsaWRhdGUgaXQgaGVyZVxuXG4gICAgLy8gU2V0IGNvbm5lY3Rpb25zIC0gY3JlYXRlIGEgc2hhcmVkIGNvbm5lY3Rpb25zIG9iamVjdFxuICAgIGlmICh0aGlzLm5ldHdvcmtDb25maWd1cmF0aW9uLmNvbm5lY3Rpb25zKSB7XG4gICAgICAvLyBVc2UgdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbidzIGNvbm5lY3Rpb25zIGFzIHRoZSBzaGFyZWQgb2JqZWN0XG4gICAgICB0aGlzLl9jb25uZWN0aW9ucyA9IHRoaXMubmV0d29ya0NvbmZpZ3VyYXRpb24uY29ubmVjdGlvbnM7XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQ0ZOIFByb3BzIC0gV2l0aCBMYXp5IHN1cHBvcnRcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICBjb25zdCBjZm5Qcm9wczogYWdlbnRfY29yZS5DZm5Ccm93c2VyQ3VzdG9tUHJvcHMgPSB7XG4gICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIG5ldHdvcmtDb25maWd1cmF0aW9uOiBMYXp5LmFueSh7IHByb2R1Y2U6ICgpID0+IHRoaXMubmV0d29ya0NvbmZpZ3VyYXRpb24uX3JlbmRlcih0aGlzLl9jb25uZWN0aW9ucykgfSksXG4gICAgICByZWNvcmRpbmdDb25maWc6IHRoaXMuX3JlbmRlclJlY29yZGluZ0NvbmZpZygpLFxuICAgICAgZXhlY3V0aW9uUm9sZUFybjogdGhpcy5leGVjdXRpb25Sb2xlPy5yb2xlQXJuLFxuICAgICAgdGFnczogdGhpcy50YWdzLFxuICAgICAgYnJvd3NlclNpZ25pbmc6IHRoaXMuX3JlbmRlckJyb3dzZXJTaWduaW5nKCksXG4gICAgfTtcblxuICAgIC8vIEwxIGluc3RhbnRpYXRpb25cbiAgICB0aGlzLl9fcmVzb3VyY2UgPSBuZXcgYWdlbnRfY29yZS5DZm5Ccm93c2VyQ3VzdG9tKHRoaXMsICdSZXNvdXJjZScsIGNmblByb3BzKTtcblxuICAgIC8vIEdldCBhdHRyaWJ1dGVzIGRpcmVjdGx5IGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlXG4gICAgdGhpcy5icm93c2VySWQgPSB0aGlzLl9fcmVzb3VyY2UuYXR0ckJyb3dzZXJJZDtcbiAgICB0aGlzLmJyb3dzZXJBcm4gPSB0aGlzLl9fcmVzb3VyY2UuYXR0ckJyb3dzZXJBcm47XG4gICAgdGhpcy5zdGF0dXMgPSB0aGlzLl9fcmVzb3VyY2UuYXR0clN0YXR1cztcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IHRoaXMuX19yZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMubGFzdFVwZGF0ZWRBdCA9IHRoaXMuX19yZXNvdXJjZS5hdHRyTGFzdFVwZGF0ZWRBdDtcbiAgICB0aGlzLmZhaWx1cmVSZWFzb24gPSB0aGlzLl9fcmVzb3VyY2UuYXR0ckZhaWx1cmVSZWFzb247XG5cbiAgICAvLyBpZiByZWNvcmRpbmcgaXMgY29uZmlndXJlZCwgYWRkIHBlcm1pc3Npb25zIHRvIHRoZSBleGVjdXRpb24gcm9sZVxuICAgIGlmICh0aGlzLnJlY29yZGluZ0NvbmZpZyAmJiB0aGlzLnJlY29yZGluZ0NvbmZpZy5zM0xvY2F0aW9uKSB7XG4gICAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLnJlY29yZGluZ0NvbmZpZy5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUpKSB7XG4gICAgICAgIFN0YWNrLm9mKHRoaXMpLnJlc29sdmUodGhpcy5yZWNvcmRpbmdDb25maWcuczNMb2NhdGlvbi5idWNrZXROYW1lKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJ1Y2tldCA9IHMzLkJ1Y2tldC5mcm9tQnVja2V0TmFtZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgYCR7dGhpcy5uYW1lfVJlY29yZGluZ0J1Y2tldGAsXG4gICAgICAgIHRoaXMucmVjb3JkaW5nQ29uZmlnLnMzTG9jYXRpb24uYnVja2V0TmFtZSxcbiAgICAgICk7XG4gICAgICAvLyBFbnN1cmUgdGhlIHBvbGljeSBpcyBhcHBsaWVkIGJlZm9yZSB0aGUgYnJvd3NlciByZXNvdXJjZSBpcyBjcmVhdGVkXG4gICAgICBjb25zdCBncmFudCA9IGJ1Y2tldC5ncmFudFJlYWRXcml0ZSh0aGlzLmV4ZWN1dGlvblJvbGUpO1xuICAgICAgZ3JhbnQuYXBwbHlCZWZvcmUodGhpcy5fX3Jlc291cmNlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSByZWNvcmRpbmcgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgUmVjb3JkaW5nQ29uZmlnUHJvcGVydHkgb2JqZWN0IGluIENsb3VkRm9ybWF0aW9uIGZvcm1hdCwgb3IgdW5kZWZpbmVkIGlmIG5vIHJlY29yZGluZyBjb25maWd1cmF0aW9uIGlzIGRlZmluZWRcbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWQgaWYgbm8gcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24gaXMgcHJvdmlkZWRcbiAgICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkuXG4gICAqL1xuICBwcml2YXRlIF9yZW5kZXJSZWNvcmRpbmdDb25maWcoKTogYWdlbnRfY29yZS5DZm5Ccm93c2VyQ3VzdG9tLlJlY29yZGluZ0NvbmZpZ1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRpbmdDb25maWcgPyB7XG4gICAgICBlbmFibGVkOiB0aGlzLnJlY29yZGluZ0NvbmZpZy5lbmFibGVkLFxuICAgICAgczNMb2NhdGlvbjogdGhpcy5yZWNvcmRpbmdDb25maWcuczNMb2NhdGlvbiA/IHtcbiAgICAgICAgYnVja2V0OiB0aGlzLnJlY29yZGluZ0NvbmZpZy5zM0xvY2F0aW9uLmJ1Y2tldE5hbWUsXG4gICAgICAgIHByZWZpeDogdGhpcy5yZWNvcmRpbmdDb25maWcuczNMb2NhdGlvbi5vYmplY3RLZXksXG4gICAgICB9IDogdW5kZWZpbmVkLFxuICAgIH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBicm93c2VyIHNpZ25pbmcgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQHJldHVybnMgQnJvd3NlclNpZ25pbmdQcm9wZXJ0eSBvYmplY3QgaW4gQ2xvdWRGb3JtYXRpb24gZm9ybWF0LCBvciB1bmRlZmluZWQgaWYgbm8gYnJvd3NlciBzaWduaW5nIGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5lZFxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZCBpZiBubyBicm93c2VyIHNpZ25pbmcgY29uZmlndXJhdGlvbiBpcyBwcm92aWRlZFxuICAgKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS5cbiAgICovXG4gIHByaXZhdGUgX3JlbmRlckJyb3dzZXJTaWduaW5nKCk6IGFnZW50X2NvcmUuQ2ZuQnJvd3NlckN1c3RvbS5Ccm93c2VyU2lnbmluZ1Byb3BlcnR5IHtcbiAgICByZXR1cm4gdGhpcy5icm93c2VyU2lnbmluZyA9PT0gQnJvd3NlclNpZ25pbmcuRU5BQkxFRCA/IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfSA6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBleGVjdXRpb24gcm9sZSBuZWVkZWQgZm9yIHRoZSBicm93c2VyIHRvIGFjY2VzcyBBV1Mgc2VydmljZXNcbiAgICogQHJldHVybnMgVGhlIGNyZWF0ZWQgcm9sZVxuICAgKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS5cbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUJyb3dzZXJSb2xlKCk6IGlhbS5JUm9sZSB7XG4gICAgY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnU2VydmljZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnYmVkcm9jay1hZ2VudGNvcmUuYW1hem9uYXdzLmNvbScpLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvbGU7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gVmFsaWRhdG9yc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgYnJvd3NlciBuYW1lIGZvcm1hdFxuICAgKiBAcGFyYW0gbmFtZSBUaGUgYnJvd3NlciBuYW1lIHRvIHZhbGlkYXRlXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZXMsIGVtcHR5IGlmIHZhbGlkXG4gICAqL1xuICBwcml2YXRlIF92YWxpZGF0ZUJyb3dzZXJOYW1lID0gKG5hbWU6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVTdHJpbmdGaWVsZExlbmd0aCh7XG4gICAgICB2YWx1ZTogbmFtZSxcbiAgICAgIGZpZWxkTmFtZTogJ0Jyb3dzZXIgbmFtZScsXG4gICAgICBtaW5MZW5ndGg6IEJST1dTRVJfTkFNRV9NSU5fTEVOR1RILFxuICAgICAgbWF4TGVuZ3RoOiBCUk9XU0VSX05BTUVfTUFYX0xFTkdUSCxcbiAgICB9KSk7XG5cbiAgICAvLyBDaGVjayBpZiBuYW1lIG1hdGNoZXMgdGhlIEFXUyBBUEkgcGF0dGVybjogW2EtekEtWl1bYS16QS1aMC05X117MCw0N31cbiAgICAvLyBNdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIsIGZvbGxvd2VkIGJ5IHVwIHRvIDQ3IGxldHRlcnMsIG51bWJlcnMsIG9yIHVuZGVyc2NvcmVzXG4gICAgY29uc3QgdmFsaWROYW1lUGF0dGVybiA9IC9eW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kLztcbiAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybihuYW1lLCAnQnJvd3NlciBuYW1lJywgdmFsaWROYW1lUGF0dGVybikpO1xuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBicm93c2VyIHRhZ3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0YWdzIFRoZSB0YWdzIG9iamVjdCB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVCcm93c2VyVGFncyA9ICh0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZ1tdID0+IHtcbiAgICBsZXQgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICghdGFncykge1xuICAgICAgcmV0dXJuIGVycm9yczsgLy8gVGFncyBhcmUgb3B0aW9uYWxcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBlYWNoIHRhZyBrZXkgYW5kIHZhbHVlXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGFncykpIHtcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgoe1xuICAgICAgICB2YWx1ZToga2V5LFxuICAgICAgICBmaWVsZE5hbWU6ICdUYWcga2V5JyxcbiAgICAgICAgbWluTGVuZ3RoOiBCUk9XU0VSX1RBR19NSU5fTEVOR1RILFxuICAgICAgICBtYXhMZW5ndGg6IEJST1dTRVJfVEFHX01BWF9MRU5HVEgsXG4gICAgICB9KSk7XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRhZyBrZXkgcGF0dGVybjogXlthLXpBLVowLTlcXHMuXzovPStALV0qJFxuICAgICAgY29uc3QgdmFsaWRLZXlQYXR0ZXJuID0gL15bYS16QS1aMC05XFxzLl86Lz0rQC1dKiQvO1xuICAgICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZFBhdHRlcm4oa2V5LCAnVGFnIGtleScsIHZhbGlkS2V5UGF0dGVybikpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcgdmFsdWVcbiAgICAgIGVycm9ycy5wdXNoKC4uLnZhbGlkYXRlU3RyaW5nRmllbGRMZW5ndGgoe1xuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIGZpZWxkTmFtZTogJ1RhZyB2YWx1ZScsXG4gICAgICAgIG1pbkxlbmd0aDogQlJPV1NFUl9UQUdfTUlOX0xFTkdUSCxcbiAgICAgICAgbWF4TGVuZ3RoOiBCUk9XU0VSX1RBR19NQVhfTEVOR1RILFxuICAgICAgfSkpO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcgdmFsdWUgcGF0dGVybjogXlthLXpBLVowLTlcXHMuXzovPStALV0qJFxuICAgICAgY29uc3QgdmFsaWRWYWx1ZVBhdHRlcm4gPSAvXlthLXpBLVowLTlcXHMuXzovPStALV0qJC87XG4gICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybih2YWx1ZSwgJ1RhZyB2YWx1ZScsIHZhbGlkVmFsdWVQYXR0ZXJuKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVycm9ycztcbiAgfTtcblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSByZWNvcmRpbmcgY29uZmlndXJhdGlvblxuICAgKiBAcGFyYW0gcmVjb3JkaW5nQ29uZmlnIFRoZSByZWNvcmRpbmcgY29uZmlndXJhdGlvbiB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiB2YWxpZGF0aW9uIGVycm9yIG1lc3NhZ2VzLCBlbXB0eSBpZiB2YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSBfdmFsaWRhdGVSZWNvcmRpbmdDb25maWcgPSAocmVjb3JkaW5nQ29uZmlnPzogUmVjb3JkaW5nQ29uZmlnKTogc3RyaW5nW10gPT4ge1xuICAgIGxldCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFyZWNvcmRpbmdDb25maWcpIHtcbiAgICAgIHJldHVybiBlcnJvcnM7IC8vIE5vIHZhbGlkYXRpb24gbmVlZGVkIGlmIG5vIHJlY29yZGluZyBjb25maWcgaXMgcHJvdmlkZWRcbiAgICB9XG5cbiAgICBjb25zdCBzM0xvY2F0aW9uID0gcmVjb3JkaW5nQ29uZmlnLnMzTG9jYXRpb247XG5cbiAgICAvLyBPbmx5IHZhbGlkYXRlIFMzIGxvY2F0aW9uIGlmIGl0J3MgYWN0dWFsbHkgcHJvdmlkZWRcbiAgICBpZiAoczNMb2NhdGlvbikge1xuICAgICAgLy8gQm90aCBidWNrZXQgbmFtZSBhbmQgb2JqZWN0IGtleSBhcmUgcmVxdWlyZWQgd2hlbiBTMyBsb2NhdGlvbiBpcyBwcm92aWRlZFxuICAgICAgaWYgKCFzM0xvY2F0aW9uLmJ1Y2tldE5hbWUpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ1MzIGJ1Y2tldCBuYW1lIGlzIHJlcXVpcmVkIHdoZW4gUzMgbG9jYXRpb24gaXMgcHJvdmlkZWQgZm9yIHJlY29yZGluZyBjb25maWd1cmF0aW9uJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBWYWxpZGF0ZSBidWNrZXQgbmFtZSBwYXR0ZXJuOiBeW2EtejAtOV1bYS16MC05Li1dezEsNjF9W2EtejAtOV0kXG4gICAgICAgIGNvbnN0IGJ1Y2tldE5hbWVQYXR0ZXJuID0gL15bYS16MC05XVthLXowLTkuLV17MSw2MX1bYS16MC05XSQvO1xuICAgICAgICBlcnJvcnMucHVzaCguLi52YWxpZGF0ZUZpZWxkUGF0dGVybihzM0xvY2F0aW9uLmJ1Y2tldE5hbWUsICdTMyBidWNrZXQgbmFtZScsIGJ1Y2tldE5hbWVQYXR0ZXJuKSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghczNMb2NhdGlvbi5vYmplY3RLZXkpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goJ1MzIG9iamVjdCBrZXkgKHByZWZpeCkgaXMgcmVxdWlyZWQgd2hlbiBTMyBsb2NhdGlvbiBpcyBwcm92aWRlZCBmb3IgcmVjb3JkaW5nIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9O1xufVxuIl19
|
|
@@ -79,7 +79,7 @@ const CODE_INTERPRETER_TAG_MAX_LENGTH = 256;
|
|
|
79
79
|
* Contains methods and attributes valid for Code Interpreters either created with CDK or imported.
|
|
80
80
|
*/
|
|
81
81
|
class CodeInterpreterCustomBase extends aws_cdk_lib_1.Resource {
|
|
82
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterCustomBase", version: "2.
|
|
82
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterCustomBase", version: "2.234.0-alpha.0" };
|
|
83
83
|
/**
|
|
84
84
|
* An accessor for the Connections object that will fail if this Browser does not have a VPC
|
|
85
85
|
* configured.
|
|
@@ -313,7 +313,7 @@ let CodeInterpreterCustom = (() => {
|
|
|
313
313
|
CodeInterpreterCustom = _classThis = _classDescriptor.value;
|
|
314
314
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
315
315
|
}
|
|
316
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterCustom", version: "2.
|
|
316
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.CodeInterpreterCustom", version: "2.234.0-alpha.0" };
|
|
317
317
|
/** Uniquely identifies this class. */
|
|
318
318
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.CodeInterpreterCustom';
|
|
319
319
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-bedrock-agentcore-alpha",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.234.0-alpha.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The CDK Construct Library for Amazon Bedrock",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -78,21 +78,21 @@
|
|
|
78
78
|
},
|
|
79
79
|
"license": "Apache-2.0",
|
|
80
80
|
"devDependencies": {
|
|
81
|
-
"aws-cdk-lib": "2.
|
|
82
|
-
"@aws-cdk/aws-bedrock-alpha": "2.
|
|
83
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
81
|
+
"aws-cdk-lib": "2.234.0",
|
|
82
|
+
"@aws-cdk/aws-bedrock-alpha": "2.234.0-alpha.0",
|
|
83
|
+
"@aws-cdk/cdk-build-tools": "2.234.0-alpha.0",
|
|
84
84
|
"@aws-cdk/integ-runner": "^2.192.2",
|
|
85
|
-
"@aws-cdk/pkglint": "2.
|
|
86
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
85
|
+
"@aws-cdk/pkglint": "2.234.0-alpha.0",
|
|
86
|
+
"@aws-cdk/integ-tests-alpha": "2.234.0-alpha.0",
|
|
87
87
|
"@types/jest": "^29.5.14",
|
|
88
88
|
"constructs": "^10.0.0",
|
|
89
89
|
"jest": "^29.7.0"
|
|
90
90
|
},
|
|
91
91
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
92
92
|
"peerDependencies": {
|
|
93
|
-
"aws-cdk-lib": "^2.
|
|
93
|
+
"aws-cdk-lib": "^2.234.0",
|
|
94
94
|
"constructs": "^10.0.0",
|
|
95
|
-
"@aws-cdk/aws-bedrock-alpha": "2.
|
|
95
|
+
"@aws-cdk/aws-bedrock-alpha": "2.234.0-alpha.0"
|
|
96
96
|
},
|
|
97
97
|
"engines": {
|
|
98
98
|
"node": ">= 18.0.0"
|
|
@@ -123,7 +123,7 @@
|
|
|
123
123
|
},
|
|
124
124
|
"jsiiRosetta": {
|
|
125
125
|
"exampleDependencies": {
|
|
126
|
-
"@aws-cdk/aws-bedrock-alpha": "^2.
|
|
126
|
+
"@aws-cdk/aws-bedrock-alpha": "^2.234.0-alpha.0"
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
}
|