@aws-cdk/aws-bedrock-agentcore-alpha 2.235.1-alpha.0 → 2.237.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 +1709 -625
- package/.jsii.tabl.json.gz +0 -0
- package/.warnings.jsii.js +41 -1
- package/README.md +275 -14
- package/lib/common/types.d.ts +35 -0
- package/lib/common/types.js +41 -0
- package/lib/gateway/gateway-base.d.ts +2 -2
- package/lib/gateway/gateway-base.js +4 -4
- package/lib/gateway/gateway.d.ts +59 -7
- package/lib/gateway/gateway.js +103 -7
- package/lib/gateway/inbound-auth/authorizer.d.ts +25 -0
- package/lib/gateway/inbound-auth/authorizer.js +17 -7
- package/lib/gateway/inbound-auth/custom-claim.d.ts +50 -0
- package/lib/gateway/inbound-auth/custom-claim.js +127 -0
- package/lib/gateway/interceptor.d.ts +137 -0
- package/lib/gateway/interceptor.js +143 -0
- 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 +7 -6
- package/lib/gateway/targets/schema/tool-schema.js +7 -6
- 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 +2 -1
- package/lib/gateway/targets/target.js +11 -4
- package/lib/index.d.ts +5 -1
- package/lib/index.js +9 -2
- package/lib/memory/memory-strategy.d.ts +19 -0
- package/lib/memory/memory-strategy.js +41 -2
- package/lib/memory/memory.d.ts +5 -4
- package/lib/memory/memory.js +16 -9
- package/lib/memory/strategies/managed-strategy.d.ts +26 -0
- package/lib/memory/strategies/managed-strategy.js +46 -4
- package/lib/memory/strategies/self-managed-strategy.js +1 -1
- package/lib/network/network-configuration.js +4 -4
- package/lib/runtime/inbound-auth/custom-claim.d.ts +50 -0
- package/lib/runtime/inbound-auth/custom-claim.js +127 -0
- package/lib/runtime/{runtime-authorizer-configuration.d.ts → inbound-auth/runtime-authorizer-configuration.d.ts} +10 -3
- package/lib/runtime/inbound-auth/runtime-authorizer-configuration.js +183 -0
- package/lib/runtime/runtime-artifact.js +1 -1
- package/lib/runtime/runtime-base.d.ts +2 -2
- package/lib/runtime/runtime-base.js +4 -4
- package/lib/runtime/runtime-endpoint-base.d.ts +2 -2
- package/lib/runtime/runtime-endpoint-base.js +4 -4
- package/lib/runtime/runtime-endpoint.d.ts +2 -1
- package/lib/runtime/runtime-endpoint.js +11 -4
- package/lib/runtime/runtime.d.ts +3 -2
- package/lib/runtime/runtime.js +11 -4
- package/lib/tools/browser.d.ts +5 -5
- package/lib/tools/browser.js +22 -14
- package/lib/tools/code-interpreter.d.ts +5 -5
- package/lib/tools/code-interpreter.js +16 -8
- package/package.json +19 -11
- package/lib/runtime/runtime-authorizer-configuration.js +0 -159
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RuntimeAuthorizerConfiguration = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
/**
|
|
6
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
|
+
*
|
|
8
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
9
|
+
* with the License. A copy of the License is located at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
14
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
15
|
+
* and limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
18
|
+
const validation_helpers_1 = require("../validation-helpers");
|
|
19
|
+
/**
|
|
20
|
+
* Abstract base class for runtime authorizer configurations.
|
|
21
|
+
* Provides static factory methods to create different authentication types.
|
|
22
|
+
*/
|
|
23
|
+
class RuntimeAuthorizerConfiguration {
|
|
24
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeAuthorizerConfiguration", version: "2.237.0-alpha.0" };
|
|
25
|
+
/**
|
|
26
|
+
* Use IAM authentication (default).
|
|
27
|
+
* Requires AWS credentials to sign requests using SigV4.
|
|
28
|
+
*
|
|
29
|
+
* @returns RuntimeAuthorizerConfiguration for IAM authentication
|
|
30
|
+
*/
|
|
31
|
+
static usingIAM() {
|
|
32
|
+
return new IamAuthorizerConfiguration();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Use custom JWT authentication.
|
|
36
|
+
* Validates JWT tokens against the specified OIDC provider.
|
|
37
|
+
*
|
|
38
|
+
* @param discoveryUrl The OIDC discovery URL (must end with /.well-known/openid-configuration)
|
|
39
|
+
* @param allowedClients Optional array of allowed client IDs
|
|
40
|
+
* @param allowedAudience Optional array of allowed audiences
|
|
41
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
42
|
+
* @param customClaims Optional array of custom claim validations
|
|
43
|
+
* @returns RuntimeAuthorizerConfiguration for JWT authentication
|
|
44
|
+
*/
|
|
45
|
+
static usingJWT(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims) {
|
|
46
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(discoveryUrl) && !discoveryUrl.endsWith('/.well-known/openid-configuration')) {
|
|
47
|
+
throw new validation_helpers_1.ValidationError('JWT discovery URL must end with /.well-known/openid-configuration');
|
|
48
|
+
}
|
|
49
|
+
return new JwtAuthorizerConfiguration(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Use AWS Cognito User Pool authentication.
|
|
53
|
+
* Validates Cognito-issued JWT tokens.
|
|
54
|
+
*
|
|
55
|
+
* @param userPool The Cognito User Pool
|
|
56
|
+
* @param userPoolClients The Cognito User Pool App Clients
|
|
57
|
+
* @param allowedAudience Optional array of allowed audiences
|
|
58
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
59
|
+
* @param customClaims Optional array of custom claim validations
|
|
60
|
+
* @returns RuntimeAuthorizerConfiguration for Cognito authentication
|
|
61
|
+
*/
|
|
62
|
+
static usingCognito(userPool, userPoolClients, allowedAudience, allowedScopes, customClaims) {
|
|
63
|
+
return new CognitoAuthorizerConfiguration(userPool, userPoolClients, allowedAudience, allowedScopes, customClaims);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Use OAuth 2.0 authentication.
|
|
67
|
+
* Supports various OAuth providers.
|
|
68
|
+
*
|
|
69
|
+
* @param discoveryUrl The OIDC discovery URL (must end with /.well-known/openid-configuration)
|
|
70
|
+
* @param clientId OAuth client ID
|
|
71
|
+
* @param allowedAudience Optional array of allowed audiences
|
|
72
|
+
* @param allowedScopes Optional array of allowed scopes
|
|
73
|
+
* @param customClaims Optional array of custom claim validations
|
|
74
|
+
* @returns RuntimeAuthorizerConfiguration for OAuth authentication
|
|
75
|
+
*/
|
|
76
|
+
static usingOAuth(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims) {
|
|
77
|
+
if (!aws_cdk_lib_1.Token.isUnresolved(discoveryUrl) && !discoveryUrl.endsWith('/.well-known/openid-configuration')) {
|
|
78
|
+
throw new validation_helpers_1.ValidationError('OAuth discovery URL must end with /.well-known/openid-configuration');
|
|
79
|
+
}
|
|
80
|
+
return new OAuthAuthorizerConfiguration(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.RuntimeAuthorizerConfiguration = RuntimeAuthorizerConfiguration;
|
|
84
|
+
/**
|
|
85
|
+
* IAM authorizer configuration
|
|
86
|
+
*/
|
|
87
|
+
class IamAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
88
|
+
_render() {
|
|
89
|
+
// For IAM authentication, return undefined to let AWS service use default
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* JWT authorizer configuration
|
|
95
|
+
*/
|
|
96
|
+
class JwtAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
97
|
+
discoveryUrl;
|
|
98
|
+
allowedClients;
|
|
99
|
+
allowedAudience;
|
|
100
|
+
allowedScopes;
|
|
101
|
+
customClaims;
|
|
102
|
+
constructor(discoveryUrl, allowedClients, allowedAudience, allowedScopes, customClaims) {
|
|
103
|
+
super();
|
|
104
|
+
this.discoveryUrl = discoveryUrl;
|
|
105
|
+
this.allowedClients = allowedClients;
|
|
106
|
+
this.allowedAudience = allowedAudience;
|
|
107
|
+
this.allowedScopes = allowedScopes;
|
|
108
|
+
this.customClaims = customClaims;
|
|
109
|
+
}
|
|
110
|
+
_render() {
|
|
111
|
+
return {
|
|
112
|
+
customJwtAuthorizer: {
|
|
113
|
+
discoveryUrl: this.discoveryUrl,
|
|
114
|
+
allowedClients: this.allowedClients,
|
|
115
|
+
allowedAudience: this.allowedAudience,
|
|
116
|
+
allowedScopes: this.allowedScopes,
|
|
117
|
+
customClaims: this.customClaims && this.customClaims.length > 0 ? this.customClaims.map(claim => claim._render()) : undefined,
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Cognito authorizer configuration
|
|
124
|
+
*/
|
|
125
|
+
class CognitoAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
126
|
+
userPool;
|
|
127
|
+
userPoolClients;
|
|
128
|
+
allowedAudience;
|
|
129
|
+
allowedScopes;
|
|
130
|
+
customClaims;
|
|
131
|
+
constructor(userPool, userPoolClients, allowedAudience, allowedScopes, customClaims) {
|
|
132
|
+
super();
|
|
133
|
+
this.userPool = userPool;
|
|
134
|
+
this.userPoolClients = userPoolClients;
|
|
135
|
+
this.allowedAudience = allowedAudience;
|
|
136
|
+
this.allowedScopes = allowedScopes;
|
|
137
|
+
this.customClaims = customClaims;
|
|
138
|
+
}
|
|
139
|
+
_render() {
|
|
140
|
+
const discoveryUrl = `https://cognito-idp.${this.userPool.env.region}.amazonaws.com/${this.userPool.userPoolId}/.well-known/openid-configuration`;
|
|
141
|
+
// Use JWT format for Cognito (CloudFormation expects JWT format)
|
|
142
|
+
return {
|
|
143
|
+
customJwtAuthorizer: {
|
|
144
|
+
discoveryUrl: discoveryUrl,
|
|
145
|
+
allowedClients: this.userPoolClients.map(client => client.userPoolClientId),
|
|
146
|
+
allowedAudience: this.allowedAudience,
|
|
147
|
+
allowedScopes: this.allowedScopes,
|
|
148
|
+
customClaims: this.customClaims && this.customClaims.length > 0 ? this.customClaims.map(claim => claim._render()) : undefined,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* OAuth authorizer configuration
|
|
155
|
+
*/
|
|
156
|
+
class OAuthAuthorizerConfiguration extends RuntimeAuthorizerConfiguration {
|
|
157
|
+
discoveryUrl;
|
|
158
|
+
clientId;
|
|
159
|
+
allowedAudience;
|
|
160
|
+
allowedScopes;
|
|
161
|
+
customClaims;
|
|
162
|
+
constructor(discoveryUrl, clientId, allowedAudience, allowedScopes, customClaims) {
|
|
163
|
+
super();
|
|
164
|
+
this.discoveryUrl = discoveryUrl;
|
|
165
|
+
this.clientId = clientId;
|
|
166
|
+
this.allowedAudience = allowedAudience;
|
|
167
|
+
this.allowedScopes = allowedScopes;
|
|
168
|
+
this.customClaims = customClaims;
|
|
169
|
+
}
|
|
170
|
+
_render() {
|
|
171
|
+
// OAuth is also represented as JWT in CloudFormation
|
|
172
|
+
return {
|
|
173
|
+
customJwtAuthorizer: {
|
|
174
|
+
discoveryUrl: this.discoveryUrl,
|
|
175
|
+
allowedClients: [this.clientId],
|
|
176
|
+
allowedAudience: this.allowedAudience,
|
|
177
|
+
allowedScopes: this.allowedScopes,
|
|
178
|
+
customClaims: this.customClaims && this.customClaims.length > 0 ? this.customClaims.map(claim => claim._render()) : undefined,
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1hdXRob3JpemVyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydW50aW1lLWF1dGhvcml6ZXItY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCw2Q0FBb0M7QUFHcEMsOERBQXdEO0FBR3hEOzs7R0FHRztBQUNILE1BQXNCLDhCQUE4Qjs7SUFDbEQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixPQUFPLElBQUksMEJBQTBCLEVBQUUsQ0FBQztLQUN6QztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUNwQixZQUFvQixFQUNwQixjQUF5QixFQUN6QixlQUEwQixFQUMxQixhQUF3QixFQUN4QixZQUFtQztRQUVuQyxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQztZQUNyRyxNQUFNLElBQUksb0NBQWUsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDO1FBQ2pHLENBQUM7UUFDRCxPQUFPLElBQUksMEJBQTBCLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQ25IO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQ3hCLFFBQW1CLEVBQ25CLGVBQWtDLEVBQ2xDLGVBQTBCLEVBQzFCLGFBQXdCLEVBQ3hCLFlBQW1DO1FBRW5DLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDcEg7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FDdEIsWUFBb0IsRUFDcEIsUUFBZ0IsRUFDaEIs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LEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUM5SDtTQUNGLENBQUM7S0FDSDtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLDRCQUE2QixTQUFRLDhCQUE4QjtJQUVwRDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTG5CLFlBQ21CLFlBQW9CLEVBQ3BCLFFBQWdCLEVBQ2hCLGVBQTBCLEVBQzFCLGFBQXdCLEVBQ3hCLFlBQW1DO1FBRXBELEtBQUssRUFBRSxDQUFDO1FBTlMsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBVztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7S0FHckQ7SUFFTSxPQUFPO1FBQ1oscURBQXFEO1FBQ3JELE9BQU87WUFDTCxtQkFBbUIsRUFBRTtnQkFDbkIsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMvQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ3JDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQzlIO1NBQ0YsQ0FBQztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBUb2tlbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENmblJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYmVkcm9ja2FnZW50Y29yZSc7XG5pbXBvcnQgeyBJVXNlclBvb2wsIElVc2VyUG9vbENsaWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL3ZhbGlkYXRpb24taGVscGVycyc7XG5pbXBvcnQgeyBSdW50aW1lQ3VzdG9tQ2xhaW0gfSBmcm9tICcuL2N1c3RvbS1jbGFpbSc7XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgcnVudGltZSBhdXRob3JpemVyIGNvbmZpZ3VyYXRpb25zLlxuICogUHJvdmlkZXMgc3RhdGljIGZhY3RvcnkgbWV0aG9kcyB0byBjcmVhdGUgZGlmZmVyZW50IGF1dGhlbnRpY2F0aW9uIHR5cGVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFVzZSBJQU0gYXV0aGVudGljYXRpb24gKGRlZmF1bHQpLlxuICAgKiBSZXF1aXJlcyBBV1MgY3JlZGVudGlhbHMgdG8gc2lnbiByZXF1ZXN0cyB1c2luZyBTaWdWNC5cbiAgICpcbiAgICogQHJldHVybnMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGZvciBJQU0gYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdJQU0oKTogUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgICByZXR1cm4gbmV3IElhbUF1dGhvcml6ZXJDb25maWd1cmF0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGN1c3RvbSBKV1QgYXV0aGVudGljYXRpb24uXG4gICAqIFZhbGlkYXRlcyBKV1QgdG9rZW5zIGFnYWluc3QgdGhlIHNwZWNpZmllZCBPSURDIHByb3ZpZGVyLlxuICAgKlxuICAgKiBAcGFyYW0gZGlzY292ZXJ5VXJsIFRoZSBPSURDIGRpc2NvdmVyeSBVUkwgKG11c3QgZW5kIHdpdGggLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uKVxuICAgKiBAcGFyYW0gYWxsb3dlZENsaWVudHMgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBjbGllbnQgSURzXG4gICAqIEBwYXJhbSBhbGxvd2VkQXVkaWVuY2UgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBhdWRpZW5jZXNcbiAgICogQHBhcmFtIGFsbG93ZWRTY29wZXMgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBzY29wZXNcbiAgICogQHBhcmFtIGN1c3RvbUNsYWltcyBPcHRpb25hbCBhcnJheSBvZiBjdXN0b20gY2xhaW0gdmFsaWRhdGlvbnNcbiAgICogQHJldHVybnMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGZvciBKV1QgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdKV1QoXG4gICAgZGlzY292ZXJ5VXJsOiBzdHJpbmcsXG4gICAgYWxsb3dlZENsaWVudHM/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoZGlzY292ZXJ5VXJsKSAmJiAhZGlzY292ZXJ5VXJsLmVuZHNXaXRoKCcvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignSldUIGRpc2NvdmVyeSBVUkwgbXVzdCBlbmQgd2l0aCAvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBKd3RBdXRob3JpemVyQ29uZmlndXJhdGlvbihkaXNjb3ZlcnlVcmwsIGFsbG93ZWRDbGllbnRzLCBhbGxvd2VkQXVkaWVuY2UsIGFsbG93ZWRTY29wZXMsIGN1c3RvbUNsYWltcyk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIEFXUyBDb2duaXRvIFVzZXIgUG9vbCBhdXRoZW50aWNhdGlvbi5cbiAgICogVmFsaWRhdGVzIENvZ25pdG8taXNzdWVkIEpXVCB0b2tlbnMuXG4gICAqXG4gICAqIEBwYXJhbSB1c2VyUG9vbCBUaGUgQ29nbml0byBVc2VyIFBvb2xcbiAgICogQHBhcmFtIHVzZXJQb29sQ2xpZW50cyBUaGUgQ29nbml0byBVc2VyIFBvb2wgQXBwIENsaWVudHNcbiAgICogQHBhcmFtIGFsbG93ZWRBdWRpZW5jZSBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIGF1ZGllbmNlc1xuICAgKiBAcGFyYW0gYWxsb3dlZFNjb3BlcyBPcHRpb25hbCBhcnJheSBvZiBhbGxvd2VkIHNjb3Blc1xuICAgKiBAcGFyYW0gY3VzdG9tQ2xhaW1zIE9wdGlvbmFsIGFycmF5IG9mIGN1c3RvbSBjbGFpbSB2YWxpZGF0aW9uc1xuICAgKiBAcmV0dXJucyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZm9yIENvZ25pdG8gYXV0aGVudGljYXRpb25cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXNpbmdDb2duaXRvKFxuICAgIHVzZXJQb29sOiBJVXNlclBvb2wsXG4gICAgdXNlclBvb2xDbGllbnRzOiBJVXNlclBvb2xDbGllbnRbXSxcbiAgICBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgY3VzdG9tQ2xhaW1zPzogUnVudGltZUN1c3RvbUNsYWltW10sXG4gICk6IFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBDb2duaXRvQXV0aG9yaXplckNvbmZpZ3VyYXRpb24odXNlclBvb2wsIHVzZXJQb29sQ2xpZW50cywgYWxsb3dlZEF1ZGllbmNlLCBhbGxvd2VkU2NvcGVzLCBjdXN0b21DbGFpbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBPQXV0aCAyLjAgYXV0aGVudGljYXRpb24uXG4gICAqIFN1cHBvcnRzIHZhcmlvdXMgT0F1dGggcHJvdmlkZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gZGlzY292ZXJ5VXJsIFRoZSBPSURDIGRpc2NvdmVyeSBVUkwgKG11c3QgZW5kIHdpdGggLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uKVxuICAgKiBAcGFyYW0gY2xpZW50SWQgT0F1dGggY2xpZW50IElEXG4gICAqIEBwYXJhbSBhbGxvd2VkQXVkaWVuY2UgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBhdWRpZW5jZXNcbiAgICogQHBhcmFtIGFsbG93ZWRTY29wZXMgT3B0aW9uYWwgYXJyYXkgb2YgYWxsb3dlZCBzY29wZXNcbiAgICogQHBhcmFtIGN1c3RvbUNsYWltcyBPcHRpb25hbCBhcnJheSBvZiBjdXN0b20gY2xhaW0gdmFsaWRhdGlvbnNcbiAgICogQHJldHVybnMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGZvciBPQXV0aCBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2luZ09BdXRoKFxuICAgIGRpc2NvdmVyeVVybDogc3RyaW5nLFxuICAgIGNsaWVudElkOiBzdHJpbmcsXG4gICAgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgYWxsb3dlZFNjb3Blcz86IHN0cmluZ1tdLFxuICAgIGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApOiBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGRpc2NvdmVyeVVybCkgJiYgIWRpc2NvdmVyeVVybC5lbmRzV2l0aCgnLy53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uJykpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJ09BdXRoIGRpc2NvdmVyeSBVUkwgbXVzdCBlbmQgd2l0aCAvLndlbGwta25vd24vb3BlbmlkLWNvbmZpZ3VyYXRpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPQXV0aEF1dGhvcml6ZXJDb25maWd1cmF0aW9uKGRpc2NvdmVyeVVybCwgY2xpZW50SWQsIGFsbG93ZWRBdWRpZW5jZSwgYWxsb3dlZFNjb3BlcywgY3VzdG9tQ2xhaW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvbiBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX3JlbmRlcigpOiBDZm5SdW50aW1lLkF1dGhvcml6ZXJDb25maWd1cmF0aW9uUHJvcGVydHkgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogSUFNIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBJYW1BdXRob3JpemVyQ29uZmlndXJhdGlvbiBleHRlbmRzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIHB1YmxpYyBfcmVuZGVyKCk6IHVuZGVmaW5lZCB7XG4gICAgLy8gRm9yIElBTSBhdXRoZW50aWNhdGlvbiwgcmV0dXJuIHVuZGVmaW5lZCB0byBsZXQgQVdTIHNlcnZpY2UgdXNlIGRlZmF1bHRcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogSldUIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBKd3RBdXRob3JpemVyQ29uZmlndXJhdGlvbiBleHRlbmRzIFJ1bnRpbWVBdXRob3JpemVyQ29uZmlndXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzY292ZXJ5VXJsOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQ2xpZW50cz86IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21DbGFpbXM/OiBSdW50aW1lQ3VzdG9tQ2xhaW1bXSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQXV0aG9yaXplckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbUp3dEF1dGhvcml6ZXI6IHtcbiAgICAgICAgZGlzY292ZXJ5VXJsOiB0aGlzLmRpc2NvdmVyeVVybCxcbiAgICAgICAgYWxsb3dlZENsaWVudHM6IHRoaXMuYWxsb3dlZENsaWVudHMsXG4gICAgICAgIGFsbG93ZWRBdWRpZW5jZTogdGhpcy5hbGxvd2VkQXVkaWVuY2UsXG4gICAgICAgIGFsbG93ZWRTY29wZXM6IHRoaXMuYWxsb3dlZFNjb3BlcyxcbiAgICAgICAgY3VzdG9tQ2xhaW1zOiB0aGlzLmN1c3RvbUNsYWltcyAmJiB0aGlzLmN1c3RvbUNsYWltcy5sZW5ndGggPiAwID8gdGhpcy5jdXN0b21DbGFpbXMubWFwKGNsYWltID0+IGNsYWltLl9yZW5kZXIoKSkgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDb2duaXRvIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBDb2duaXRvQXV0aG9yaXplckNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBSdW50aW1lQXV0aG9yaXplckNvbmZpZ3VyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQb29sOiBJVXNlclBvb2wsXG4gICAgcHJpdmF0ZSByZWFkb25seSB1c2VyUG9vbENsaWVudHM6IElVc2VyUG9vbENsaWVudFtdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxsb3dlZEF1ZGllbmNlPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkU2NvcGVzPzogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21DbGFpbXM/OiBSdW50aW1lQ3VzdG9tQ2xhaW1bXSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBfcmVuZGVyKCk6IENmblJ1bnRpbWUuQXV0aG9yaXplckNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSB7XG4gICAgY29uc3QgZGlzY292ZXJ5VXJsID0gYGh0dHBzOi8vY29nbml0by1pZHAuJHt0aGlzLnVzZXJQb29sLmVudi5yZWdpb259LmFtYXpvbmF3cy5jb20vJHt0aGlzLnVzZXJQb29sLnVzZXJQb29sSWR9Ly53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYDtcblxuICAgIC8vIFVzZSBKV1QgZm9ybWF0IGZvciBDb2duaXRvIChDbG91ZEZvcm1hdGlvbiBleHBlY3RzIEpXVCBmb3JtYXQpXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1c3RvbUp3dEF1dGhvcml6ZXI6IHtcbiAgICAgICAgZGlzY292ZXJ5VXJsOiBkaXNjb3ZlcnlVcmwsXG4gICAgICAgIGFsbG93ZWRDbGllbnRzOiB0aGlzLnVzZXJQb29sQ2xpZW50cy5tYXAoY2xpZW50ID0+IGNsaWVudC51c2VyUG9vbENsaWVudElkKSxcbiAgICAgICAgYWxsb3dlZEF1ZGllbmNlOiB0aGlzLmFsbG93ZWRBdWRpZW5jZSxcbiAgICAgICAgYWxsb3dlZFNjb3BlczogdGhpcy5hbGxvd2VkU2NvcGVzLFxuICAgICAgICBjdXN0b21DbGFpbXM6IHRoaXMuY3VzdG9tQ2xhaW1zICYmIHRoaXMuY3VzdG9tQ2xhaW1zLmxlbmd0aCA+IDAgPyB0aGlzLmN1c3RvbUNsYWltcy5tYXAoY2xhaW0gPT4gY2xhaW0uX3JlbmRlcigpKSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIE9BdXRoIGF1dGhvcml6ZXIgY29uZmlndXJhdGlvblxuICovXG5jbGFzcyBPQXV0aEF1dGhvcml6ZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgUnVudGltZUF1dGhvcml6ZXJDb25maWd1cmF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNjb3ZlcnlVcmw6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudElkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGxvd2VkQXVkaWVuY2U/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsbG93ZWRTY29wZXM/OiBzdHJpbmdbXSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUNsYWltcz86IFJ1bnRpbWVDdXN0b21DbGFpbVtdLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIF9yZW5kZXIoKTogQ2ZuUnVudGltZS5BdXRob3JpemVyQ29uZmlndXJhdGlvblByb3BlcnR5IHtcbiAgICAvLyBPQXV0aCBpcyBhbHNvIHJlcHJlc2VudGVkIGFzIEpXVCBpbiBDbG91ZEZvcm1hdGlvblxuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21Kd3RBdXRob3JpemVyOiB7XG4gICAgICAgIGRpc2NvdmVyeVVybDogdGhpcy5kaXNjb3ZlcnlVcmwsXG4gICAgICAgIGFsbG93ZWRDbGllbnRzOiBbdGhpcy5jbGllbnRJZF0sXG4gICAgICAgIGFsbG93ZWRBdWRpZW5jZTogdGhpcy5hbGxvd2VkQXVkaWVuY2UsXG4gICAgICAgIGFsbG93ZWRTY29wZXM6IHRoaXMuYWxsb3dlZFNjb3BlcyxcbiAgICAgICAgY3VzdG9tQ2xhaW1zOiB0aGlzLmN1c3RvbUNsYWltcyAmJiB0aGlzLmN1c3RvbUNsYWltcy5sZW5ndGggPiAwID8gdGhpcy5jdXN0b21DbGFpbXMubWFwKGNsYWltID0+IGNsYWltLl9yZW5kZXIoKSkgOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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.237.0-alpha.0" };
|
|
51
51
|
/**
|
|
52
52
|
* Reference an image in an ECR repository
|
|
53
53
|
*/
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
|
-
import { IResource, Resource } from 'aws-cdk-lib';
|
|
13
|
+
import { IResource, Resource, ResourceProps } from 'aws-cdk-lib';
|
|
14
14
|
import { DimensionsMap, Metric, MetricOptions } from 'aws-cdk-lib/aws-cloudwatch';
|
|
15
15
|
import * as ec2 from 'aws-cdk-lib/aws-ec2';
|
|
16
16
|
import * as iam from 'aws-cdk-lib/aws-iam';
|
|
@@ -168,7 +168,7 @@ export declare abstract class RuntimeBase extends Resource implements IBedrockAg
|
|
|
168
168
|
* @internal
|
|
169
169
|
*/
|
|
170
170
|
protected _connections: ec2.Connections | undefined;
|
|
171
|
-
constructor(scope: Construct, id: string);
|
|
171
|
+
constructor(scope: Construct, id: string, props?: ResourceProps);
|
|
172
172
|
/**
|
|
173
173
|
* Grant the runtime specific actions on AWS resources
|
|
174
174
|
*
|
|
@@ -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.237.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.
|
|
@@ -43,8 +43,8 @@ class RuntimeBase extends aws_cdk_lib_1.Resource {
|
|
|
43
43
|
* @internal
|
|
44
44
|
*/
|
|
45
45
|
_connections;
|
|
46
|
-
constructor(scope, id) {
|
|
47
|
-
super(scope, id);
|
|
46
|
+
constructor(scope, id, props = {}) {
|
|
47
|
+
super(scope, id, props);
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* Grant the runtime specific actions on AWS resources
|
|
@@ -205,4 +205,4 @@ class RuntimeBase extends aws_cdk_lib_1.Resource {
|
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
exports.RuntimeBase = RuntimeBase;
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVudGltZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILDZDQUFrRDtBQUNsRCwrREFNb0M7QUFFcEMsMkNBQTJDO0FBRTNDLG1DQUEwRTtBQUMxRSw2REFBdUQ7QUErSnZEOzsrRUFFK0U7QUFFL0U7O0dBRUc7QUFDSCxNQUFzQixXQUFZLFNBQVEsc0JBQVE7O0lBWWhEOzs7T0FHRztJQUNILElBQVcsV0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztLQUMxQjtJQUVEOzs7O09BSUc7SUFDTyxZQUFZLENBQThCO0lBRXBELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDbEI7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxPQUFpQixFQUFFLFNBQW1CO1FBQ2pELE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2xCLE9BQU87WUFDUCxZQUFZLEVBQUUsU0FBUztTQUN4QixDQUFDLENBQUM7S0FDSjtJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUFDLFNBQThCO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxrQkFBa0IsQ0FBQyxPQUF1QjtRQUMvQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFP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aUIsQ0FBQyxLQUFxQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxzQkFBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDM0U7SUFFRDs7T0FFRztJQUNJLGtCQUFrQixDQUFDLEtBQXFCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUM1RTtJQUVEOztPQUVHO0lBQ0ksd0JBQXdCLENBQUMsS0FBcUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxzQkFBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7S0FDekY7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxLQUFrQjtRQUN4QyxPQUFPLElBQUksdUJBQU0sQ0FBQztZQUNoQixHQUFHLEtBQUs7WUFDUixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1NBQzlDLENBQUMsQ0FBQztLQUNKOztBQTdNSCxrQ0E4TUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJUmVzb3VyY2UsIFJlc291cmNlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgRGltZW5zaW9uc01hcCxcbiAgTWV0cmljLFxuICBNZXRyaWNPcHRpb25zLFxuICBNZXRyaWNQcm9wcyxcbiAgU3RhdHMsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUlVOVElNRV9JTlZPS0VfUEVSTVMsIFJVTlRJTUVfSU5WT0tFX1VTRVJfUEVSTVMgfSBmcm9tICcuL3Blcm1zJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVyZmFjZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgQWdlbnQgUnVudGltZSByZXNvdXJjZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQmVkcm9ja0FnZW50UnVudGltZSBleHRlbmRzIElSZXNvdXJjZSwgaWFtLklHcmFudGFibGUsIGVjMi5JQ29ubmVjdGFibGUge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYWdlbnQgcnVudGltZSByZXNvdXJjZVxuICAgKiAtIEZvcm1hdCBgYXJuOiR7UGFydGl0aW9ufTpiZWRyb2NrLWFnZW50Y29yZToke1JlZ2lvbn06JHtBY2NvdW50fTpydW50aW1lLyR7UnVudGltZUlkfWBcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAZXhhbXBsZSBcImFybjphd3M6YmVkcm9jay1hZ2VudGNvcmU6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpydW50aW1lL3J1bnRpbWUtYWJjMTIzXCJcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAZXhhbXBsZSBcInJ1bnRpbWUtYWJjMTIzXCJcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhZ2VudCBydW50aW1lXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSB0aGF0IHByb3ZpZGVzIHBlcm1pc3Npb25zIGZvciB0aGUgYWdlbnQgcnVudGltZVxuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgYWdlbnQgcnVudGltZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50U3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgcnVudGltZSB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqIEBleGFtcGxlIFwiMjAyNC0wMS0xNVQxMDozMDowMFpcIlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgcnVudGltZSB3YXMgbGFzdCB1cGRhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQGV4YW1wbGUgXCIyMDI0LTAxLTE1VDE0OjQ1OjAwWlwiXG4gICAqL1xuICByZWFkb25seSBsYXN0VXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBNZXRyaWNzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvKipcbiAgICogUmV0dXJuIHRoZSBnaXZlbiBuYW1lZCBtZXRyaWMgZm9yIHRoaXMgYWdlbnQgcnVudGltZS5cbiAgICovXG4gIG1ldHJpYyhtZXRyaWNOYW1lOiBzdHJpbmcsIGRpbWVuc2lvbnM6IERpbWVuc2lvbnNNYXAsIHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBpbnZvY2F0aW9ucyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljSW52b2NhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGludm9jYXRpb25zIGFjcm9zcyBhbGwgcmVzb3VyY2VzLlxuICAgKi9cbiAgbWV0cmljSW52b2NhdGlvbnNBZ2dyZWdhdGVkKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0aHJvdHRsZWQgcmVxdWVzdHMgZm9yIHRoaXMgYWdlbnQgcnVudGltZS5cbiAgICovXG4gIG1ldHJpY1Rocm90dGxlcyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2Ygc3lzdGVtIGVycm9ycyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljU3lzdGVtRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB1c2VyIGVycm9ycyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljVXNlckVycm9ycyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBtZWFzdXJpbmcgdGhlIGxhdGVuY3kgb2YgcmVxdWVzdHMgZm9yIHRoaXMgYWdlbnQgcnVudGltZS5cbiAgICovXG4gIG1ldHJpY0xhdGVuY3kocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGVycm9ycyAoc3lzdGVtICsgdXNlcikgZm9yIHRoaXMgYWdlbnQgcnVudGltZS5cbiAgICovXG4gIG1ldHJpY1RvdGFsRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBhZ2VudCBzZXNzaW9ucyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljU2Vzc2lvbkNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBzZXNzaW9ucyBhY3Jvc3MgYWxsIHJlc291cmNlcy5cbiAgICovXG4gIG1ldHJpY1Nlc3Npb25zQWdncmVnYXRlZChwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEdyYW50IE1ldGhvZHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIEdyYW50IHRoZSBydW50aW1lIHNwZWNpZmljIGFjdGlvbnMgb24gQVdTIHJlc291cmNlc1xuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKiBAcGFyYW0gcmVzb3VyY2VzIFRoZSByZXNvdXJjZSBBUk5zIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKiBAcmV0dXJucyBUaGUgR3JhbnQgb2JqZWN0IGZvciBjaGFpbmluZ1xuICAgKi9cbiAgZ3JhbnQoYWN0aW9uczogc3RyaW5nW10sIHJlc291cmNlczogc3RyaW5nW10pOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBwb2xpY3kgc3RhdGVtZW50IHRvIHRoZSBydW50aW1lJ3MgZXhlY3V0aW9uIHJvbGVcbiAgICpcbiAgICogQHBhcmFtIHN0YXRlbWVudCBUaGUgSUFNIHBvbGljeSBzdGF0ZW1lbnQgdG8gYWRkXG4gICAqIEByZXR1cm5zIFRoZSBydW50aW1lIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgYWRkVG9Sb2xlUG9saWN5KHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCk6IElCZWRyb2NrQWdlbnRSdW50aW1lO1xuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgdG8gaW52b2tlIHRoaXMgcnVudGltZVxuICAgKiBHcmFudHMgdGhlIGJlZHJvY2stYWdlbnRjb3JlOkludm9rZUFnZW50UnVudGltZSBwZXJtaXNzaW9uXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgYWNjZXNzIHRvXG4gICAqL1xuICBncmFudEludm9rZVJ1bnRpbWUoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIHByaW5jaXBhbCB0byBpbnZva2UgdGhpcyBydW50aW1lIG9uIGJlaGFsZiBvZiBhIHVzZXJcbiAgICogR3JhbnRzIHRoZSBiZWRyb2NrLWFnZW50Y29yZTpJbnZva2VBZ2VudFJ1bnRpbWVGb3JVc2VyIHBlcm1pc3Npb25cbiAgICogUmVxdWlyZWQgd2hlbiB1c2luZyB0aGUgWC1BbXpuLUJlZHJvY2stQWdlbnRDb3JlLVJ1bnRpbWUtVXNlci1JZCBoZWFkZXJcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBhY2Nlc3MgdG9cbiAgICovXG4gIGdyYW50SW52b2tlUnVudGltZUZvclVzZXIoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIHByaW5jaXBhbCB0byBpbnZva2UgdGhpcyBydW50aW1lIGJvdGggZGlyZWN0bHkgYW5kIG9uIGJlaGFsZiBvZiB1c2Vyc1xuICAgKiBHcmFudHMgYm90aCBiZWRyb2NrLWFnZW50Y29yZTpJbnZva2VBZ2VudFJ1bnRpbWUgYW5kIGJlZHJvY2stYWdlbnRjb3JlOkludm9rZUFnZW50UnVudGltZUZvclVzZXIgcGVybWlzc2lvbnNcbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBhY2Nlc3MgdG9cbiAgICovXG4gIGdyYW50SW52b2tlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZSBDbGFzc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIEFnZW50IFJ1bnRpbWVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJ1bnRpbWVCYXNlIGV4dGVuZHMgUmVzb3VyY2UgaW1wbGVtZW50cyBJQmVkcm9ja0FnZW50UnVudGltZSB7XG4gIC8vIEFic3RyYWN0IHByb3BlcnRpZXNcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFnZW50UnVudGltZUFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYWdlbnRSdW50aW1lSWQ6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFnZW50UnVudGltZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHJvbGU6IGlhbS5JUm9sZTtcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFnZW50UnVudGltZVZlcnNpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhZ2VudFN0YXR1cz86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGxhc3RVcGRhdGVkQXQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIEFuIGFjY2Vzc29yIGZvciB0aGUgQ29ubmVjdGlvbnMgb2JqZWN0IHRoYXQgd2lsbCBmYWlsIGlmIHRoaXMgUnVudGltZSBkb2VzIG5vdCBoYXZlIGEgVlBDXG4gICAqIGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25zKCk6IGVjMi5Db25uZWN0aW9ucyB7XG4gICAgaWYgKCF0aGlzLl9jb25uZWN0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignQ2Fubm90IG1hbmFnZSBuZXR3b3JrIGFjY2VzcyB3aXRob3V0IGNvbmZpZ3VyaW5nIGEgVlBDJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWN0dWFsIENvbm5lY3Rpb25zIG9iamVjdCBmb3IgdGhpcyBSdW50aW1lLiBUaGlzIG1heSBiZSB1bnNldCBpbiB0aGUgZXZlbnQgdGhhdCBhIFZQQyBoYXMgbm90XG4gICAqIGJlZW4gY29uZmlndXJlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgX2Nvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnMgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIHJ1bnRpbWUgc3BlY2lmaWMgYWN0aW9ucyBvbiBBV1MgcmVzb3VyY2VzXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKiBAcGFyYW0gcmVzb3VyY2VzIFRoZSByZXNvdXJjZSBBUk5zIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKiBAcmV0dXJucyBUaGUgR3JhbnQgb2JqZWN0IGZvciBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGdyYW50KGFjdGlvbnM6IHN0cmluZ1tdLCByZXNvdXJjZXM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IHRoaXMucm9sZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IHJlc291cmNlcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcG9saWN5IHN0YXRlbWVudCB0byB0aGUgcnVudGltZSdzIGV4ZWN1dGlvbiByb2xlXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgVGhlIElBTSBwb2xpY3kgc3RhdGVtZW50IHRvIGFkZFxuICAgKiBAcmV0dXJucyBUaGUgcnVudGltZSBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogSUJlZHJvY2tBZ2VudFJ1bnRpbWUge1xuICAgIHRoaXMucm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIHByaW5jaXBhbCB0byBpbnZva2UgdGhpcyBydW50aW1lXG4gICAqIEdyYW50cyB0aGUgYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lIHBlcm1pc3Npb25cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgYWNjZXNzIHRvXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2VSdW50aW1lKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBSVU5USU1FX0lOVk9LRV9QRVJNUyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuYWdlbnRSdW50aW1lQXJuLCBgJHt0aGlzLmFnZW50UnVudGltZUFybn0vKmBdLCAvLyAqIGlzIG5lZWRlZCBiZWNhdXNlIGl0IGludm9rZSB0aGUgZW5kcG9pbnQgYXMgc3VicmVzb3VyY2VcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgdG8gaW52b2tlIHRoaXMgcnVudGltZSBvbiBiZWhhbGYgb2YgYSB1c2VyXG4gICAqIEdyYW50cyB0aGUgYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lRm9yVXNlciBwZXJtaXNzaW9uXG4gICAqIFJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlIFgtQW16bi1CZWRyb2NrLUFnZW50Q29yZS1SdW50aW1lLVVzZXItSWQgaGVhZGVyXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlUnVudGltZUZvclVzZXIoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IFJVTlRJTUVfSU5WT0tFX1VTRVJfUEVSTVMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmFnZW50UnVudGltZUFybiwgYCR7dGhpcy5hZ2VudFJ1bnRpbWVBcm59LypgXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgdG8gaW52b2tlIHRoaXMgcnVudGltZSBib3RoIGRpcmVjdGx5IGFuZCBvbiBiZWhhbGYgb2YgdXNlcnNcbiAgICogR3JhbnRzIGJvdGggYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lIGFuZCBiZWRyb2NrLWFnZW50Y29yZTpJbnZva2VBZ2VudFJ1bnRpbWVGb3JVc2VyIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbLi4uUlVOVElNRV9JTlZPS0VfUEVSTVMsIC4uLlJVTlRJTUVfSU5WT0tFX1VTRVJfUEVSTVNdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5hZ2VudFJ1bnRpbWVBcm4sIGAke3RoaXMuYWdlbnRSdW50aW1lQXJufS8qYF0sXG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWV0cmljc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBtZXRyaWMgd2lsbCBiZSBjYWxjdWxhdGVkIGFzIGEgc3VtIG92ZXIgYSBwZXJpb2Qgb2YgNSBtaW51dGVzLlxuICAgKiBZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIGJ5IHVzaW5nIHRoZSBgc3RhdGlzdGljYCBhbmQgYHBlcmlvZGAgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBkaW1lbnNpb25zOiBEaW1lbnNpb25zTWFwLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIGNvbnN0IG1ldHJpY1Byb3BzOiBNZXRyaWNQcm9wcyA9IHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZScsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyAuLi5kaW1lbnNpb25zLCBSZXNvdXJjZTogdGhpcy5hZ2VudFJ1bnRpbWVBcm4gfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlTWV0cmljKG1ldHJpY1Byb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGludm9jYXRpb25zIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0ludm9jYXRpb25zJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgaW52b2NhdGlvbnMgYWNyb3NzIGFsbCByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnNBZ2dyZWdhdGVkKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdJbnZvY2F0aW9ucycsIHsgUmVzb3VyY2U6ICdBbGwnIH0sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdGhyb3R0bGVkIHJlcXVlc3RzIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljVGhyb3R0bGVzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUaHJvdHRsZXMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzeXN0ZW0gZXJyb3JzIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljU3lzdGVtRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdTeXN0ZW1FcnJvcnMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB1c2VyIGVycm9ycyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1VzZXJFcnJvcnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1VzZXJFcnJvcnMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgbGF0ZW5jeSBvZiByZXF1ZXN0cyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKlxuICAgKiBUaGUgbGF0ZW5jeSBtZXRyaWMgcmVwcmVzZW50cyB0aGUgdG90YWwgdGltZSBlbGFwc2VkIGJldHdlZW4gcmVjZWl2aW5nIHRoZSByZXF1ZXN0XG4gICAqIGFuZCBzZW5kaW5nIHRoZSBmaW5hbCByZXNwb25zZSB0b2tlbiwgcmVwcmVzZW50aW5nIGNvbXBsZXRlIGVuZC10by1lbmQgcHJvY2Vzc2luZyB0aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0xhdGVuY3kocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0xhdGVuY3knLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLkFWRVJBR0UsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgZXJyb3JzIChzeXN0ZW0gKyB1c2VyKSBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1RvdGFsRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUb3RhbEVycm9ycycsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGFnZW50IHNlc3Npb25zIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljU2Vzc2lvbkNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdTZXNzaW9uQ291bnQnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBzZXNzaW9ucyBhY3Jvc3MgYWxsIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNTZXNzaW9uc0FnZ3JlZ2F0ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1Nlc3Npb25zJywgeyBSZXNvdXJjZTogJ0FsbCcgfSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIGNyZWF0ZSBhIG1ldHJpYy5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEFnZW50IFJ1bnRpbWVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2VudFJ1bnRpbWVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhZ2VudCBydW50aW1lXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBBUk5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICogV2hlbiBpbXBvcnRpbmcgYSBydW50aW1lIGFuZCB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgb3IgdW5kZWZpbmVkLCBlbmRwb2ludHMgY3JlYXRlZCBvbiB0aGlzIHJ1bnRpbWVcbiAgICogd2lsbCBwb2ludCB0byB2ZXJzaW9uIFwiMVwiIHVubGVzcyBleHBsaWNpdGx5IG92ZXJyaWRkZW4uXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBncm91cHMgZm9yIHRoaXMgcnVudGltZSwgaWYgaW4gYSBWUEMuXG4gICAqIEBkZWZhdWx0IC0gQnkgZGVmYXVsdCwgdGhlIHJ1bnRpbWUgaXMgbm90IGluIGEgVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBhZ2VudCBydW50aW1lXG4gICAqIEBkZWZhdWx0IC0gU3RhdHVzIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50U3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgcnVudGltZSB3YXMgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCAtIENyZWF0aW9uIHRpbWUgbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgcnVudGltZSB3YXMgbGFzdCB1cGRhdGVkXG4gICAqIEBkZWZhdWx0IC0gTGFzdCB1cGRhdGUgdGltZSBub3QgYXZhaWxhYmxlXG4gICAqL1xuICByZWFkb25seSBsYXN0VXBkYXRlZEF0Pzogc3RyaW5nO1xufVxuIl19
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVudGltZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILDZDQUFpRTtBQUNqRSwrREFNb0M7QUFFcEMsMkNBQTJDO0FBRTNDLG1DQUEwRTtBQUMxRSw2REFBdUQ7QUErSnZEOzsrRUFFK0U7QUFFL0U7O0dBRUc7QUFDSCxNQUFzQixXQUFZLFNBQVEsc0JBQVE7O0lBWWhEOzs7T0FHRztJQUNILElBQVcsV0FBVztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLHdEQUF3RCxDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztLQUMxQjtJQUVEOzs7O09BSUc7SUFDTyxZQUFZLENBQThCO0lBRXBELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBdUIsRUFBRTtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUN6QjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksS0FBSyxDQUFDLE9BQWlCLEVBQUUsU0FBbUI7UUFDakQsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUM5QixPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDbEIsT0FBTztZQUNQLFlBQVksRUFBRSxTQUFTO1NBQ3hCLENBQUMsQ0FBQztLQUNKO0lBRUQ7Ozs7O09BS0c7SUFDSSxlQUFlLENBQUMsU0FBOEI7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGtCQUFrQixDQUFDLE9BQXVCO1FBQy9DLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFj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S0FDM0U7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLEtBQXFCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUMzRTtJQUVEOztPQUVHO0lBQ0ksa0JBQWtCLENBQUMsS0FBcUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsc0JBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0tBQzVFO0lBRUQ7O09BRUc7SUFDSSx3QkFBd0IsQ0FBQyxLQUFxQjtRQUNuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLHNCQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztLQUN6RjtJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUFDLEtBQWtCO1FBQ3hDLE9BQU8sSUFBSSx1QkFBTSxDQUFDO1lBQ2hCLEdBQUcsS0FBSztZQUNSLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87U0FDOUMsQ0FBQyxDQUFDO0tBQ0o7O0FBN01ILGtDQThNQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IElSZXNvdXJjZSwgUmVzb3VyY2UsIFJlc291cmNlUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQge1xuICBEaW1lbnNpb25zTWFwLFxuICBNZXRyaWMsXG4gIE1ldHJpY09wdGlvbnMsXG4gIE1ldHJpY1Byb3BzLFxuICBTdGF0cyxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBSVU5USU1FX0lOVk9LRV9QRVJNUywgUlVOVElNRV9JTlZPS0VfVVNFUl9QRVJNUyB9IGZyb20gJy4vcGVybXMnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi92YWxpZGF0aW9uLWhlbHBlcnMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBBZ2VudCBSdW50aW1lIHJlc291cmNlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElCZWRyb2NrQWdlbnRSdW50aW1lIGV4dGVuZHMgSVJlc291cmNlLCBpYW0uSUdyYW50YWJsZSwgZWMyLklDb25uZWN0YWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhZ2VudCBydW50aW1lIHJlc291cmNlXG4gICAqIC0gRm9ybWF0IGBhcm46JHtQYXJ0aXRpb259OmJlZHJvY2stYWdlbnRjb3JlOiR7UmVnaW9ufToke0FjY291bnR9OnJ1bnRpbWUvJHtSdW50aW1lSWR9YFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqIEBleGFtcGxlIFwiYXJuOmF3czpiZWRyb2NrLWFnZW50Y29yZTp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOnJ1bnRpbWUvcnVudGltZS1hYmMxMjNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnRSdW50aW1lQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgYWdlbnQgcnVudGltZVxuICAgKiBAYXR0cmlidXRlXG4gICAqIEBleGFtcGxlIFwicnVudGltZS1hYmMxMjNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnRSdW50aW1lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElBTSByb2xlIHRoYXQgcHJvdmlkZXMgcGVybWlzc2lvbnMgZm9yIHRoZSBhZ2VudCBydW50aW1lXG4gICAqXG4gICAqL1xuICByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBhZ2VudCBydW50aW1lXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHN0YXR1cyBvZiB0aGUgYWdlbnQgcnVudGltZVxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnRTdGF0dXM/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBydW50aW1lIHdhcyBjcmVhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQGV4YW1wbGUgXCIyMDI0LTAxLTE1VDEwOjMwOjAwWlwiXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBydW50aW1lIHdhcyBsYXN0IHVwZGF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAZXhhbXBsZSBcIjIwMjQtMDEtMTVUMTQ6NDU6MDBaXCJcbiAgICovXG4gIHJlYWRvbmx5IGxhc3RVcGRhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1ldHJpY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGdpdmVuIG5hbWVkIG1ldHJpYyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgZGltZW5zaW9uczogRGltZW5zaW9uc01hcCwgcHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGludm9jYXRpb25zIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBtZXRyaWNJbnZvY2F0aW9ucyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgaW52b2NhdGlvbnMgYWNyb3NzIGFsbCByZXNvdXJjZXMuXG4gICAqL1xuICBtZXRyaWNJbnZvY2F0aW9uc0FnZ3JlZ2F0ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRocm90dGxlZCByZXF1ZXN0cyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljVGhyb3R0bGVzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzeXN0ZW0gZXJyb3JzIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBtZXRyaWNTeXN0ZW1FcnJvcnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHVzZXIgZXJyb3JzIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBtZXRyaWNVc2VyRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgbGF0ZW5jeSBvZiByZXF1ZXN0cyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljTGF0ZW5jeShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgZXJyb3JzIChzeXN0ZW0gKyB1c2VyKSBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgbWV0cmljVG90YWxFcnJvcnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGFnZW50IHNlc3Npb25zIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBtZXRyaWNTZXNzaW9uQ291bnQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIHNlc3Npb25zIGFjcm9zcyBhbGwgcmVzb3VyY2VzLlxuICAgKi9cbiAgbWV0cmljU2Vzc2lvbnNBZ2dyZWdhdGVkKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYztcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gR3JhbnQgTWV0aG9kc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIHJ1bnRpbWUgc3BlY2lmaWMgYWN0aW9ucyBvbiBBV1MgcmVzb3VyY2VzXG4gICAqXG4gICAqIEBwYXJhbSBhY3Rpb25zIFRoZSBhY3Rpb25zIHRvIGdyYW50XG4gICAqIEBwYXJhbSByZXNvdXJjZXMgVGhlIHJlc291cmNlIEFSTnMgdG8gZ3JhbnQgYWNjZXNzIHRvXG4gICAqIEByZXR1cm5zIFRoZSBHcmFudCBvYmplY3QgZm9yIGNoYWluaW5nXG4gICAqL1xuICBncmFudChhY3Rpb25zOiBzdHJpbmdbXSwgcmVzb3VyY2VzOiBzdHJpbmdbXSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogQWRkcyBhIHBvbGljeSBzdGF0ZW1lbnQgdG8gdGhlIHJ1bnRpbWUncyBleGVjdXRpb24gcm9sZVxuICAgKlxuICAgKiBAcGFyYW0gc3RhdGVtZW50IFRoZSBJQU0gcG9saWN5IHN0YXRlbWVudCB0byBhZGRcbiAgICogQHJldHVybnMgVGhlIHJ1bnRpbWUgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqL1xuICBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogSUJlZHJvY2tBZ2VudFJ1bnRpbWU7XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIHByaW5jaXBhbCB0byBpbnZva2UgdGhpcyBydW50aW1lXG4gICAqIEdyYW50cyB0aGUgYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lIHBlcm1pc3Npb25cbiAgICogQHBhcmFtIGdyYW50ZWUgVGhlIHByaW5jaXBhbCB0byBncmFudCBhY2Nlc3MgdG9cbiAgICovXG4gIGdyYW50SW52b2tlUnVudGltZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogUGVybWl0cyBhbiBJQU0gcHJpbmNpcGFsIHRvIGludm9rZSB0aGlzIHJ1bnRpbWUgb24gYmVoYWxmIG9mIGEgdXNlclxuICAgKiBHcmFudHMgdGhlIGJlZHJvY2stYWdlbnRjb3JlOkludm9rZUFnZW50UnVudGltZUZvclVzZXIgcGVybWlzc2lvblxuICAgKiBSZXF1aXJlZCB3aGVuIHVzaW5nIHRoZSBYLUFtem4tQmVkcm9jay1BZ2VudENvcmUtUnVudGltZS1Vc2VyLUlkIGhlYWRlclxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgZ3JhbnRJbnZva2VSdW50aW1lRm9yVXNlcihncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudDtcblxuICAvKipcbiAgICogUGVybWl0cyBhbiBJQU0gcHJpbmNpcGFsIHRvIGludm9rZSB0aGlzIHJ1bnRpbWUgYm90aCBkaXJlY3RseSBhbmQgb24gYmVoYWxmIG9mIHVzZXJzXG4gICAqIEdyYW50cyBib3RoIGJlZHJvY2stYWdlbnRjb3JlOkludm9rZUFnZW50UnVudGltZSBhbmQgYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lRm9yVXNlciBwZXJtaXNzaW9uc1xuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgZ3JhbnRJbnZva2UoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQ7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlIENsYXNzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgQWdlbnQgUnVudGltZVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUnVudGltZUJhc2UgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElCZWRyb2NrQWdlbnRSdW50aW1lIHtcbiAgLy8gQWJzdHJhY3QgcHJvcGVydGllc1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYWdlbnRSdW50aW1lQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhZ2VudFJ1bnRpbWVJZDogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYWdlbnRSdW50aW1lTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgcm9sZTogaWFtLklSb2xlO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYWdlbnRSdW50aW1lVmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGFnZW50U3RhdHVzPzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGdyYW50UHJpbmNpcGFsOiBpYW0uSVByaW5jaXBhbDtcblxuICAvKipcbiAgICogQW4gYWNjZXNzb3IgZm9yIHRoZSBDb25uZWN0aW9ucyBvYmplY3QgdGhhdCB3aWxsIGZhaWwgaWYgdGhpcyBSdW50aW1lIGRvZXMgbm90IGhhdmUgYSBWUENcbiAgICogY29uZmlndXJlZC5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29ubmVjdGlvbnMoKTogZWMyLkNvbm5lY3Rpb25zIHtcbiAgICBpZiAoIXRoaXMuX2Nvbm5lY3Rpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCdDYW5ub3QgbWFuYWdlIG5ldHdvcmsgYWNjZXNzIHdpdGhvdXQgY29uZmlndXJpbmcgYSBWUEMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBhY3R1YWwgQ29ubmVjdGlvbnMgb2JqZWN0IGZvciB0aGlzIFJ1bnRpbWUuIFRoaXMgbWF5IGJlIHVuc2V0IGluIHRoZSBldmVudCB0aGF0IGEgVlBDIGhhcyBub3RcbiAgICogYmVlbiBjb25maWd1cmVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzb3VyY2VQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnQgdGhlIHJ1bnRpbWUgc3BlY2lmaWMgYWN0aW9ucyBvbiBBV1MgcmVzb3VyY2VzXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gYWN0aW9ucyBUaGUgYWN0aW9ucyB0byBncmFudFxuICAgKiBAcGFyYW0gcmVzb3VyY2VzIFRoZSByZXNvdXJjZSBBUk5zIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKiBAcmV0dXJucyBUaGUgR3JhbnQgb2JqZWN0IGZvciBjaGFpbmluZ1xuICAgKi9cbiAgcHVibGljIGdyYW50KGFjdGlvbnM6IHN0cmluZ1tdLCByZXNvdXJjZXM6IHN0cmluZ1tdKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWU6IHRoaXMucm9sZSxcbiAgICAgIGFjdGlvbnMsXG4gICAgICByZXNvdXJjZUFybnM6IHJlc291cmNlcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcG9saWN5IHN0YXRlbWVudCB0byB0aGUgcnVudGltZSdzIGV4ZWN1dGlvbiByb2xlXG4gICAqXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgVGhlIElBTSBwb2xpY3kgc3RhdGVtZW50IHRvIGFkZFxuICAgKiBAcmV0dXJucyBUaGUgcnVudGltZSBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogSUJlZHJvY2tBZ2VudFJ1bnRpbWUge1xuICAgIHRoaXMucm9sZS5hZGRUb1ByaW5jaXBhbFBvbGljeShzdGF0ZW1lbnQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIHByaW5jaXBhbCB0byBpbnZva2UgdGhpcyBydW50aW1lXG4gICAqIEdyYW50cyB0aGUgYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lIHBlcm1pc3Npb25cbiAgICpcbiAgICogW2Rpc2FibGUtYXdzbGludDpuby1ncmFudHNdXG4gICAqXG4gICAqIEBwYXJhbSBncmFudGVlIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgYWNjZXNzIHRvXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRJbnZva2VSdW50aW1lKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBSVU5USU1FX0lOVk9LRV9QRVJNUyxcbiAgICAgIHJlc291cmNlQXJuczogW3RoaXMuYWdlbnRSdW50aW1lQXJuLCBgJHt0aGlzLmFnZW50UnVudGltZUFybn0vKmBdLCAvLyAqIGlzIG5lZWRlZCBiZWNhdXNlIGl0IGludm9rZSB0aGUgZW5kcG9pbnQgYXMgc3VicmVzb3VyY2VcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgdG8gaW52b2tlIHRoaXMgcnVudGltZSBvbiBiZWhhbGYgb2YgYSB1c2VyXG4gICAqIEdyYW50cyB0aGUgYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lRm9yVXNlciBwZXJtaXNzaW9uXG4gICAqIFJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlIFgtQW16bi1CZWRyb2NrLUFnZW50Q29yZS1SdW50aW1lLVVzZXItSWQgaGVhZGVyXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlUnVudGltZUZvclVzZXIoZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IFJVTlRJTUVfSU5WT0tFX1VTRVJfUEVSTVMsXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmFnZW50UnVudGltZUFybiwgYCR7dGhpcy5hZ2VudFJ1bnRpbWVBcm59LypgXSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJtaXRzIGFuIElBTSBwcmluY2lwYWwgdG8gaW52b2tlIHRoaXMgcnVudGltZSBib3RoIGRpcmVjdGx5IGFuZCBvbiBiZWhhbGYgb2YgdXNlcnNcbiAgICogR3JhbnRzIGJvdGggYmVkcm9jay1hZ2VudGNvcmU6SW52b2tlQWdlbnRSdW50aW1lIGFuZCBiZWRyb2NrLWFnZW50Y29yZTpJbnZva2VBZ2VudFJ1bnRpbWVGb3JVc2VyIHBlcm1pc3Npb25zXG4gICAqXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIHRvIGdyYW50IGFjY2VzcyB0b1xuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbLi4uUlVOVElNRV9JTlZPS0VfUEVSTVMsIC4uLlJVTlRJTUVfSU5WT0tFX1VTRVJfUEVSTVNdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5hZ2VudFJ1bnRpbWVBcm4sIGAke3RoaXMuYWdlbnRSdW50aW1lQXJufS8qYF0sXG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTWV0cmljc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgZ2l2ZW4gbmFtZWQgbWV0cmljIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBtZXRyaWMgd2lsbCBiZSBjYWxjdWxhdGVkIGFzIGEgc3VtIG92ZXIgYSBwZXJpb2Qgb2YgNSBtaW51dGVzLlxuICAgKiBZb3UgY2FuIGN1c3RvbWl6ZSB0aGlzIGJ5IHVzaW5nIHRoZSBgc3RhdGlzdGljYCBhbmQgYHBlcmlvZGAgcHJvcGVydGllcy5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBkaW1lbnNpb25zOiBEaW1lbnNpb25zTWFwLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIGNvbnN0IG1ldHJpY1Byb3BzOiBNZXRyaWNQcm9wcyA9IHtcbiAgICAgIG5hbWVzcGFjZTogJ0FXUy9CZWRyb2NrLUFnZW50Q29yZScsXG4gICAgICBtZXRyaWNOYW1lLFxuICAgICAgZGltZW5zaW9uc01hcDogeyAuLi5kaW1lbnNpb25zLCBSZXNvdXJjZTogdGhpcy5hZ2VudFJ1bnRpbWVBcm4gfSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlTWV0cmljKG1ldHJpY1Byb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGludm9jYXRpb25zIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0ludm9jYXRpb25zJywge30sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgaW52b2NhdGlvbnMgYWNyb3NzIGFsbCByZXNvdXJjZXMuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljSW52b2NhdGlvbnNBZ2dyZWdhdGVkKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdJbnZvY2F0aW9ucycsIHsgUmVzb3VyY2U6ICdBbGwnIH0sIHsgc3RhdGlzdGljOiBTdGF0cy5TVU0sIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgdGhyb3R0bGVkIHJlcXVlc3RzIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljVGhyb3R0bGVzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUaHJvdHRsZXMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBzeXN0ZW0gZXJyb3JzIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljU3lzdGVtRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdTeXN0ZW1FcnJvcnMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB1c2VyIGVycm9ycyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1VzZXJFcnJvcnMocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1VzZXJFcnJvcnMnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIG1lYXN1cmluZyB0aGUgbGF0ZW5jeSBvZiByZXF1ZXN0cyBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKlxuICAgKiBUaGUgbGF0ZW5jeSBtZXRyaWMgcmVwcmVzZW50cyB0aGUgdG90YWwgdGltZSBlbGFwc2VkIGJldHdlZW4gcmVjZWl2aW5nIHRoZSByZXF1ZXN0XG4gICAqIGFuZCBzZW5kaW5nIHRoZSBmaW5hbCByZXNwb25zZSB0b2tlbiwgcmVwcmVzZW50aW5nIGNvbXBsZXRlIGVuZC10by1lbmQgcHJvY2Vzc2luZyB0aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY0xhdGVuY3kocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ0xhdGVuY3knLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLkFWRVJBR0UsIC4uLnByb3BzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIG1ldHJpYyBjb250YWluaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgZXJyb3JzIChzeXN0ZW0gKyB1c2VyKSBmb3IgdGhpcyBhZ2VudCBydW50aW1lLlxuICAgKi9cbiAgcHVibGljIG1ldHJpY1RvdGFsRXJyb3JzKHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdUb3RhbEVycm9ycycsIHt9LCB7IHN0YXRpc3RpYzogU3RhdHMuU1VNLCAuLi5wcm9wcyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBtZXRyaWMgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGFnZW50IHNlc3Npb25zIGZvciB0aGlzIGFnZW50IHJ1bnRpbWUuXG4gICAqL1xuICBwdWJsaWMgbWV0cmljU2Vzc2lvbkNvdW50KHByb3BzPzogTWV0cmljT3B0aW9ucyk6IE1ldHJpYyB7XG4gICAgcmV0dXJuIHRoaXMubWV0cmljKCdTZXNzaW9uQ291bnQnLCB7fSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbWV0cmljIGNvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBvZiBzZXNzaW9ucyBhY3Jvc3MgYWxsIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBtZXRyaWNTZXNzaW9uc0FnZ3JlZ2F0ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5tZXRyaWMoJ1Nlc3Npb25zJywgeyBSZXNvdXJjZTogJ0FsbCcgfSwgeyBzdGF0aXN0aWM6IFN0YXRzLlNVTSwgLi4ucHJvcHMgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIGNyZWF0ZSBhIG1ldHJpYy5cbiAgICovXG4gIHByaXZhdGUgY29uZmlndXJlTWV0cmljKHByb3BzOiBNZXRyaWNQcm9wcykge1xuICAgIHJldHVybiBuZXcgTWV0cmljKHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcmVnaW9uOiBwcm9wcz8ucmVnaW9uID8/IHRoaXMuc3RhY2sucmVnaW9uLFxuICAgICAgYWNjb3VudDogcHJvcHM/LmFjY291bnQgPz8gdGhpcy5zdGFjay5hY2NvdW50LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQXR0cmlidXRlcyBmb3IgaW1wb3J0aW5nIGFuIGV4aXN0aW5nIEFnZW50IFJ1bnRpbWVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2VudFJ1bnRpbWVBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhZ2VudCBydW50aW1lXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBJQU0gcm9sZSBBUk5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICogV2hlbiBpbXBvcnRpbmcgYSBydW50aW1lIGFuZCB0aGlzIGlzIG5vdCBzcGVjaWZpZWQgb3IgdW5kZWZpbmVkLCBlbmRwb2ludHMgY3JlYXRlZCBvbiB0aGlzIHJ1bnRpbWVcbiAgICogd2lsbCBwb2ludCB0byB2ZXJzaW9uIFwiMVwiIHVubGVzcyBleHBsaWNpdGx5IG92ZXJyaWRkZW4uXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBncm91cHMgZm9yIHRoaXMgcnVudGltZSwgaWYgaW4gYSBWUEMuXG4gICAqIEBkZWZhdWx0IC0gQnkgZGVmYXVsdCwgdGhlIHJ1bnRpbWUgaXMgbm90IGluIGEgVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBhZ2VudCBydW50aW1lXG4gICAqIEBkZWZhdWx0IC0gU3RhdHVzIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50U3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgcnVudGltZSB3YXMgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCAtIENyZWF0aW9uIHRpbWUgbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgcnVudGltZSB3YXMgbGFzdCB1cGRhdGVkXG4gICAqIEBkZWZhdWx0IC0gTGFzdCB1cGRhdGUgdGltZSBub3QgYXZhaWxhYmxlXG4gICAqL1xuICByZWFkb25seSBsYXN0VXBkYXRlZEF0Pzogc3RyaW5nO1xufVxuIl19
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
|
-
import { IResource, Resource } from 'aws-cdk-lib';
|
|
13
|
+
import { IResource, Resource, ResourceProps } from 'aws-cdk-lib';
|
|
14
14
|
import { Construct } from 'constructs';
|
|
15
15
|
/******************************************************************************
|
|
16
16
|
* Interface
|
|
@@ -74,7 +74,7 @@ export declare abstract class RuntimeEndpointBase extends Resource implements IR
|
|
|
74
74
|
abstract readonly targetVersion?: string;
|
|
75
75
|
abstract readonly createdAt?: string;
|
|
76
76
|
abstract readonly description?: string;
|
|
77
|
-
constructor(scope: Construct, id: string);
|
|
77
|
+
constructor(scope: Construct, id: string, props?: ResourceProps);
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
80
|
* Attributes for importing an existing Runtime Endpoint
|
|
@@ -22,10 +22,10 @@ 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.
|
|
26
|
-
constructor(scope, id) {
|
|
27
|
-
super(scope, id);
|
|
25
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@aws-cdk/aws-bedrock-agentcore-alpha.RuntimeEndpointBase", version: "2.237.0-alpha.0" };
|
|
26
|
+
constructor(scope, id, props = {}) {
|
|
27
|
+
super(scope, id, props);
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
exports.RuntimeEndpointBase = RuntimeEndpointBase;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1lbmRwb2ludC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVudGltZS1lbmRwb2ludC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7Ozs7Ozs7Ozs7R0FXRztBQUVILDZDQUFpRTtBQTJEakU7OytFQUUrRTtBQUUvRTs7R0FFRztBQUNILE1BQXNCLG1CQUFvQixTQUFRLHNCQUFROztJQVV4RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDekI7O0FBWkgsa0RBYUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBJUmVzb3VyY2UsIFJlc291cmNlLCBSZXNvdXJjZVByb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcmZhY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIFJ1bnRpbWUgRW5kcG9pbnQgcmVzb3VyY2VzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJ1bnRpbWVFbmRwb2ludCBleHRlbmRzIElSZXNvdXJjZSB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBydW50aW1lIGVuZHBvaW50IHJlc291cmNlXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQGV4YW1wbGUgXCJhcm46YXdzOmJlZHJvY2stYWdlbnRjb3JlOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6YWdlbnQtcnVudGltZS1lbmRwb2ludC9lbmRwb2ludC1hYmMxMjNcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnRSdW50aW1lRW5kcG9pbnRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJ1bnRpbWUgZW5kcG9pbnRcbiAgICovXG4gIHJlYWRvbmx5IGVuZHBvaW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBwYXJlbnQgYWdlbnQgcnVudGltZVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgc3RhdHVzIG9mIHRoZSBydW50aW1lIGVuZHBvaW50XG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpdmUgdmVyc2lvbiBvZiB0aGUgYWdlbnQgcnVudGltZSB0aGF0IGlzIGN1cnJlbnRseSBzZXJ2aW5nIHJlcXVlc3RzXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxpdmVWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IHZlcnNpb24gdGhlIGVuZHBvaW50IGlzIHRyYW5zaXRpb25pbmcgdG8gKGR1cmluZyB1cGRhdGVzKVxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoZSBlbmRwb2ludCB3YXMgY3JlYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgcnVudGltZSBlbmRwb2ludFxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXNlIENsYXNzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgUnVudGltZSBFbmRwb2ludFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUnVudGltZUVuZHBvaW50QmFzZSBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVJ1bnRpbWVFbmRwb2ludCB7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhZ2VudFJ1bnRpbWVFbmRwb2ludEFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgZW5kcG9pbnROYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSBhZ2VudFJ1bnRpbWVBcm46IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGxpdmVWZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgdGFyZ2V0VmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgfVxufVxuXG4vKipcbiAqIEF0dHJpYnV0ZXMgZm9yIGltcG9ydGluZyBhbiBleGlzdGluZyBSdW50aW1lIEVuZHBvaW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZUVuZHBvaW50QXR0cmlidXRlcyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBydW50aW1lIGVuZHBvaW50XG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVFbmRwb2ludEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcnVudGltZSBlbmRwb2ludFxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIHBhcmVudCBhZ2VudCBydW50aW1lXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBydW50aW1lIGVuZHBvaW50XG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHJ1bnRpbWUgZW5kcG9pbnRcbiAgICogQGRlZmF1bHQgLSBTdGF0dXMgbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGl2ZSB2ZXJzaW9uIG9mIHRoZSBhZ2VudCBydW50aW1lIHRoYXQgaXMgY3VycmVudGx5IHNlcnZpbmcgcmVxdWVzdHNcbiAgICogQGRlZmF1bHQgLSBMaXZlIHZlcnNpb24gbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbGl2ZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgdmVyc2lvbiB0aGUgZW5kcG9pbnQgaXMgdHJhbnNpdGlvbmluZyB0byAoZHVyaW5nIHVwZGF0ZXMpXG4gICAqIEBkZWZhdWx0IC0gVGFyZ2V0IHZlcnNpb24gbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0VmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB0aGUgZW5kcG9pbnQgd2FzIGNyZWF0ZWRcbiAgICogQGRlZmF1bHQgLSBDcmVhdGlvbiB0aW1lIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB0aGUgZW5kcG9pbnQgd2FzIGxhc3QgdXBkYXRlZFxuICAgKiBAZGVmYXVsdCAtIExhc3QgdXBkYXRlIHRpbWUgbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBydW50aW1lIGVuZHBvaW50XG4gICAqIEBkZWZhdWx0IC0gRW5kcG9pbnQgSUQgbm90IGF2YWlsYWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRJZD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -12,8 +12,9 @@ export interface RuntimeEndpointProps {
|
|
|
12
12
|
* Valid characters are a-z, A-Z, 0-9, _ (underscore)
|
|
13
13
|
* Must start with a letter and can be up to 48 characters long
|
|
14
14
|
* Pattern: ^[a-zA-Z][a-zA-Z0-9_]{0,47}$
|
|
15
|
+
* @default - auto generate
|
|
15
16
|
*/
|
|
16
|
-
readonly endpointName
|
|
17
|
+
readonly endpointName?: string;
|
|
17
18
|
/**
|
|
18
19
|
* The ID of the agent runtime to associate with this endpoint
|
|
19
20
|
* This is the unique identifier of the runtime resource
|
|
@@ -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.237.0-alpha.0" };
|
|
71
71
|
/** Uniquely identifies this class. */
|
|
72
72
|
static PROPERTY_INJECTION_ID = '@aws-cdk.aws-bedrock-agentcore-alpha.RuntimeEndpoint';
|
|
73
73
|
/**
|
|
@@ -172,7 +172,14 @@ let RuntimeEndpoint = (() => {
|
|
|
172
172
|
lastUpdatedAt;
|
|
173
173
|
endpointResource;
|
|
174
174
|
constructor(scope, id, props) {
|
|
175
|
-
super(scope, id
|
|
175
|
+
super(scope, id, {
|
|
176
|
+
// Maximum name length of 48 characters
|
|
177
|
+
// @see https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-bedrockagentcore-runtimeendpoint.html#cfn-bedrockagentcore-runtimeendpoint-name
|
|
178
|
+
physicalName: props.endpointName ??
|
|
179
|
+
aws_cdk_lib_1.Lazy.string({
|
|
180
|
+
produce: () => aws_cdk_lib_1.Names.uniqueResourceName(this, { maxLength: 48 }),
|
|
181
|
+
}),
|
|
182
|
+
});
|
|
176
183
|
try {
|
|
177
184
|
jsiiDeprecationWarnings._aws_cdk_aws_bedrock_agentcore_alpha_RuntimeEndpointProps(props);
|
|
178
185
|
}
|
|
@@ -185,7 +192,7 @@ let RuntimeEndpoint = (() => {
|
|
|
185
192
|
// CDK Analytics Telemetry
|
|
186
193
|
(0, metadata_resource_1.addConstructMetadata)(this, props);
|
|
187
194
|
// Set and validate properties immediately
|
|
188
|
-
this.endpointName =
|
|
195
|
+
this.endpointName = this.physicalName;
|
|
189
196
|
this.validateEndpointName();
|
|
190
197
|
this.agentRuntimeId = props.agentRuntimeId;
|
|
191
198
|
this.validateAgentRuntimeId();
|
|
@@ -369,4 +376,4 @@ let RuntimeEndpoint = (() => {
|
|
|
369
376
|
return RuntimeEndpoint = _classThis;
|
|
370
377
|
})();
|
|
371
378
|
exports.RuntimeEndpoint = RuntimeEndpoint;
|
|
372
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1lbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bnRpbWUtZW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLHFFQUFxRTtBQUNyRSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBRTFFLG1FQUEyRztBQUMzRyw2REFBa0c7QUFpRGxHOzsrRUFFK0U7QUFFL0U7Ozs7OztHQU1HO0lBRVUsZUFBZTs0QkFEM0Isb0NBQWtCOzs7O3NCQUNrQiwyQ0FBbUI7K0JBQTNCLFNBQVEsV0FBbUI7Ozs7WUFBeEQsNktBd1ZDOzs7OztRQXZWQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLHNEQUFzRCxDQUFDO1FBRTlHOzs7Ozs7OztXQVFHO1FBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUN6QyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBZ0M7Ozs7Ozs7Ozs7WUFFaEMsTUFBTSxtQ0FBb0MsU0FBUSwyQ0FBbUI7Z0JBQ25ELHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztnQkFDeEQsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQ2xDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO2dCQUN4QyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO2dCQUNoQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDcEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzVCLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUM5QixhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQzthQUNyRDtZQUVELE9BQU8sSUFBSSxtQ0FBbUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDM0Q7UUFFRCxpQ0FBaUM7UUFDakM7Ozs7V0FJRztRQUNhLHVCQUF1QixDQUFTO1FBQ2hEOzs7O1dBSUc7UUFDYSxZQUFZLENBQVM7UUFDckM7Ozs7V0FJRztRQUNhLGVBQWUsQ0FBUztRQUN4Qzs7OztXQUlHO1FBQ2EsTUFBTSxDQUFVO1FBQ2hDOzs7O1dBSUc7UUFDYSxXQUFXLENBQVU7UUFDckM7Ozs7V0FJRztRQUNhLGFBQWEsQ0FBVTtRQUN2Qzs7OztXQUlHO1FBQ2EsU0FBUyxDQUFVO1FBQ25DOztXQUVHO1FBQ2EsV0FBVyxDQUFVO1FBQ3JDOzs7O1dBSUc7UUFDYSxVQUFVLENBQVM7UUFDbkM7O1dBRUc7UUFDYSxjQUFjLENBQVM7UUFDdkM7O1dBRUc7UUFDYSxtQkFBbUIsQ0FBUztRQUM1Qzs7OztXQUlHO1FBQ2EsYUFBYSxDQUFVO1FBRXRCLGdCQUFnQixDQUFzQztRQUV2RSxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1lBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7Ozs7OzttREF6R1IsZUFBZTs7OztZQTJHeEIsMEJBQTBCO1lBQzFCLElBQUEsd0NBQW9CLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRWxDLDBDQUEwQztZQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDdkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFFNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzNDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBRTlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLElBQUksR0FBRyxDQUFDO1lBQzVELElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBRW5DLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUNyQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDN0IsQ0FBQztZQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFFRCxNQUFNLFFBQVEsR0FBNkM7Z0JBQ3pELElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDdkIsY0FBYyxFQUFFLGtCQUFJLENBQUMsTUFBTSxDQUFDO29CQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO2lCQUMzQyxDQUFDO2dCQUNGLG1CQUFtQixFQUFFLGtCQUFJLENBQUMsTUFBTSxDQUFDO29CQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO2lCQUNoRCxDQUFDO2dCQUNGLFdBQVcsRUFBRSxrQkFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtpQkFDeEMsQ0FBQztnQkFDRixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO2FBQ3ZCLENBQUM7WUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRTVGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztZQUMvQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDO1lBQ2pGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO1lBQ2pFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7WUFDekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUM7WUFDN0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1lBQ3JELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDO1NBQzlEO1FBRUQ7OztXQUdHO1FBQ0ssb0JBQW9CO1lBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM1QjtRQUVEOzs7V0FHRztRQUNLLHlCQUF5QjtZQUMvQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztTQUNqQztRQUVEOzs7V0FHRztRQUNLLGlCQUFpQjtZQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDekI7UUFFRDs7OztXQUlHO1FBQ0ssb0JBQW9CO1lBQzFCLHNFQUFzRTtZQUN0RSxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxPQUFPO1lBQ1QsQ0FBQztZQUVELGtCQUFrQjtZQUNsQixNQUFNLFlBQVksR0FBRyxJQUFBLHdDQUFtQixFQUFDO2dCQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0JBQ3hCLFNBQVMsRUFBRSxlQUFlO2dCQUMxQixTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFTLEVBQUUsRUFBRTthQUNkLENBQUMsQ0FBQztZQUVILG1CQUFtQjtZQUNuQixNQUFNLGFBQWEsR0FBRyxJQUFBLHlDQUFvQixFQUN4QyxJQUFJLENBQUMsWUFBWSxFQUNqQixlQUFlLEVBQ2YsOEJBQThCLEVBQzlCLDJGQUEyRixDQUM1RixDQUFDO1lBRUYsa0NBQWtDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxhQUFhLENBQUMsQ0FBQztZQUN0RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsRCxDQUFDO1NBQ0Y7UUFFRDs7OztXQUlHO1FBQ0ssbUJBQW1CO1lBQ3pCLElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUEsd0NBQW1CLEVBQUM7b0JBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVztvQkFDdkIsU0FBUyxFQUFFLGFBQWE7b0JBQ3hCLFNBQVMsRUFBRSxDQUFDO29CQUNaLFNBQVMsRUFBRSxHQUFHO2lCQUNmLENBQUMsQ0FBQztnQkFFSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztZQUNILENBQUM7U0FDRjtRQUVEOzs7O1dBSUc7UUFDSyxzQkFBc0I7WUFDNUIsb0VBQW9FO1lBQ3BFLElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLE9BQU87WUFDVCxDQUFDO1lBRUQsNkRBQTZEO1lBQzdELE1BQU0sYUFBYSxHQUFHLElBQUEseUNBQW9CLEVBQ3hDLElBQUksQ0FBQyxjQUFjLEVBQ25CLGtCQUFrQixFQUNsQiw4Q0FBOEMsRUFDOUMsOEpBQThKLENBQy9KLENBQUM7WUFFRixJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDO1NBQ0Y7UUFFRDs7OztXQUlHO1FBQ0ssMkJBQTJCO1lBQ2pDLElBQUksbUJBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztnQkFDakQsT0FBTztZQUNULENBQUM7WUFFRCw2REFBNkQ7WUFDN0QsTUFBTSxhQUFhLEdBQUcsSUFBQSx5Q0FBb0IsRUFDeEMsSUFBSSxDQUFDLG1CQUFtQixFQUN4Qix1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLDREQUE0RCxDQUM3RCxDQUFDO1lBRUYsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLElBQUksb0NBQWUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEQsQ0FBQztTQUNGO1FBRUQ7Ozs7V0FJRztRQUNLLFlBQVksQ0FBQyxJQUErQjtZQUNsRCxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLG1CQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3pELFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCwwQkFBMEI7Z0JBQzFCLE1BQU0sZUFBZSxHQUFHLElBQUEsd0NBQW1CLEVBQUM7b0JBQzFDLEtBQUssRUFBRSxHQUFHO29CQUNWLFNBQVMsRUFBRSxZQUFZLEdBQUcsR0FBRztvQkFDN0IsU0FBUyxFQUFFLENBQUM7b0JBQ1osU0FBUyxFQUFFLEdBQUc7aUJBQ2YsQ0FBQyxDQUFDO2dCQUVILDJCQUEyQjtnQkFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLHlDQUFvQixFQUMzQyxHQUFHLEVBQ0gsWUFBWSxHQUFHLEdBQUcsRUFDbEIsMEJBQTBCLEVBQzFCLFlBQVksR0FBRyxpR0FBaUcsQ0FDakgsQ0FBQztnQkFFRixzQ0FBc0M7Z0JBQ3RDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxlQUFlLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3pCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztnQkFFRCxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUMxQyxNQUFNLElBQUksb0NBQWUsQ0FBQyxzQkFBc0IsR0FBRywrQkFBK0IsQ0FBQyxDQUFDO2dCQUN0RixDQUFDO2dCQUVELDRCQUE0QjtnQkFDNUIsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLHdDQUFtQixFQUFDO29CQUM1QyxLQUFLLEVBQUUsS0FBSztvQkFDWixTQUFTLEVBQUUsc0JBQXNCLEdBQUcsR0FBRztvQkFDdkMsU0FBUyxFQUFFLENBQUM7b0JBQ1osU0FBUyxFQUFFLEdBQUc7aUJBQ2YsQ0FBQyxDQUFDO2dCQUVILDZCQUE2QjtnQkFDN0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLHlDQUFvQixFQUM3QyxLQUFLLEVBQ0wsc0JBQXNCLEdBQUcsR0FBRyxFQUM1QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEdBQUcsaUdBQWlHLENBQzNILENBQUM7Z0JBRUYsd0NBQXdDO2dCQUN4QyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLE1BQU0sSUFBSSxvQ0FBZSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztZQUNILENBQUM7U0FDRjs7WUF2VlUsdURBQWU7Ozs7O0FBQWYsMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb2tlbiwgTGF6eSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBSdW50aW1lRW5kcG9pbnRCYXNlLCBJUnVudGltZUVuZHBvaW50LCBSdW50aW1lRW5kcG9pbnRBdHRyaWJ1dGVzIH0gZnJvbSAnLi9ydW50aW1lLWVuZHBvaW50LWJhc2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVTdHJpbmdGaWVsZCwgdmFsaWRhdGVGaWVsZFBhdHRlcm4sIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3BzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBCZWRyb2NrIEFnZW50IENvcmUgUnVudGltZSBFbmRwb2ludCByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVFbmRwb2ludFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhZ2VudCBydW50aW1lIGVuZHBvaW50XG4gICAqIFZhbGlkIGNoYXJhY3RlcnMgYXJlIGEteiwgQS1aLCAwLTksIF8gKHVuZGVyc2NvcmUpXG4gICAqIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBhbmQgY2FuIGJlIHVwIHRvIDQ4IGNoYXJhY3RlcnMgbG9uZ1xuICAgKiBQYXR0ZXJuOiBeW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBhZ2VudCBydW50aW1lIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZW5kcG9pbnRcbiAgICogVGhpcyBpcyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJ1bnRpbWUgcmVzb3VyY2VcbiAgICogUGF0dGVybjogXlthLXpBLVpdW2EtekEtWjAtOV9dezAsOTl9LVthLXpBLVowLTldezEwfSRcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBhZ2VudCBydW50aW1lIHRvIHVzZSBmb3IgdGhpcyBlbmRwb2ludFxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZW5kcG9pbnQgd2lsbCBwb2ludCB0byB2ZXJzaW9uIFwiMVwiIG9mIHRoZSBydW50aW1lLlxuICAgKiBQYXR0ZXJuOiBeKFsxLTldWzAtOV17MCw0fSkkXG4gICAqIEBkZWZhdWx0IFwiMVwiXG4gICAqL1xuICByZWFkb25seSBhZ2VudFJ1bnRpbWVWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRcbiAgICogTGVuZ3RoIE1pbmltdW06IDEgLCAgTWF4aW11bTogMjU2XG4gICAqIEBkZWZhdWx0IC0gTm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWdzIGZvciB0aGUgYWdlbnQgcnVudGltZSBlbmRwb2ludFxuICAgKiBBIGxpc3Qgb2Yga2V5OnZhbHVlIHBhaXJzIG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhpcyBSdW50aW1lRW5kcG9pbnQgcmVzb3VyY2VcbiAgICogUGF0dGVybjogXlthLXpBLVowLTlcXHMuXzovPStALV0qJFxuICAgKiBAZGVmYXVsdCB7fSAtIG5vIHRhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBCZWRyb2NrIEFnZW50IENvcmUgUnVudGltZSBFbmRwb2ludFxuICogUHJvdmlkZXMgYSBzdGFibGUgZW5kcG9pbnQgZm9yIGludm9raW5nIGFnZW50IHJ1bnRpbWVzIHdpdGggdmVyc2lvbmluZyBzdXBwb3J0XG4gKlxuICogQHJlc291cmNlIEFXUzo6QmVkcm9ja0FnZW50Q29yZTo6UnVudGltZUVuZHBvaW50XG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvZGV2Z3VpZGUvcnVudGltZS1lbmRwb2ludC5odG1sXG4gKi9cbkBwcm9wZXJ0eUluamVjdGFibGVcbmV4cG9ydCBjbGFzcyBSdW50aW1lRW5kcG9pbnQgZXh0ZW5kcyBSdW50aW1lRW5kcG9pbnRCYXNlIHtcbiAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBjbGFzcy4gKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQUk9QRVJUWV9JTkpFQ1RJT05fSUQ6IHN0cmluZyA9ICdAYXdzLWNkay5hd3MtYmVkcm9jay1hZ2VudGNvcmUtYWxwaGEuUnVudGltZUVuZHBvaW50JztcblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIEFnZW50IFJ1bnRpbWUgRW5kcG9pbnQgdXNpbmcgYXR0cmlidXRlc1xuICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gcmVmZXJlbmNlIGFuIEFnZW50IFJ1bnRpbWUgRW5kcG9pbnQgdGhhdCB3YXMgY3JlYXRlZCBvdXRzaWRlIG9mIENES1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIGNvbnN0cnVjdCBzY29wZVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCBpZFxuICAgKiBAcGFyYW0gYXR0cnMgVGhlIGF0dHJpYnV0ZXMgb2YgdGhlIGV4aXN0aW5nIEFnZW50IFJ1bnRpbWUgRW5kcG9pbnRcbiAgICogQHJldHVybnMgQW4gSVJ1bnRpbWVFbmRwb2ludCBpbnN0YW5jZSByZXByZXNlbnRpbmcgdGhlIGltcG9ydGVkIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21SdW50aW1lRW5kcG9pbnRBdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhdHRyczogUnVudGltZUVuZHBvaW50QXR0cmlidXRlcyxcbiAgKTogSVJ1bnRpbWVFbmRwb2ludCB7XG4gICAgY2xhc3MgSW1wb3J0ZWRCZWRyb2NrQWdlbnRSdW50aW1lRW5kcG9pbnQgZXh0ZW5kcyBSdW50aW1lRW5kcG9pbnRCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhZ2VudFJ1bnRpbWVFbmRwb2ludEFybiA9IGF0dHJzLmFnZW50UnVudGltZUVuZHBvaW50QXJuO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGVuZHBvaW50TmFtZSA9IGF0dHJzLmVuZHBvaW50TmFtZTtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhZ2VudFJ1bnRpbWVBcm4gPSBhdHRycy5hZ2VudFJ1bnRpbWVBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSBhdHRycy5kZXNjcmlwdGlvbjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBzdGF0dXMgPSBhdHRycy5zdGF0dXM7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbGl2ZVZlcnNpb24gPSBhdHRycy5saXZlVmVyc2lvbjtcbiAgICAgIHB1YmxpYyByZWFkb25seSB0YXJnZXRWZXJzaW9uID0gYXR0cnMudGFyZ2V0VmVyc2lvbjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQgPSBhdHRycy5jcmVhdGVkQXQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZW5kcG9pbnRJZCA9IGF0dHJzLmVuZHBvaW50SWQ7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgbGFzdFVwZGF0ZWRBdCA9IGF0dHJzLmxhc3RVcGRhdGVkQXQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZEJlZHJvY2tBZ2VudFJ1bnRpbWVFbmRwb2ludChzY29wZSwgaWQpO1xuICB9XG5cbiAgLy8gUHJvcGVydGllcyBmcm9tIGJhc2UgaW50ZXJmYWNlXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhZ2VudCBydW50aW1lIGVuZHBvaW50XG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIEFSTiBvZiB0aGlzIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZ2VudFJ1bnRpbWVFbmRwb2ludEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGVuZHBvaW50XG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIG5hbWUgb2YgdGhpcyBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuZHBvaW50TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgYWdlbnQgcnVudGltZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbmRwb2ludFxuICAgKiBAYXR0cmlidXRlXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSBBUk4gb2YgdGhlIGFnZW50IHJ1bnRpbWVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZ2VudFJ1bnRpbWVBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzdGF0dXMgb2YgdGhlIGVuZHBvaW50XG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIHN0YXR1cyBvZiB0aGlzIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGxpdmUgdmVyc2lvbiBvZiB0aGUgZW5kcG9pbnRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgbGl2ZSB2ZXJzaW9uIG9mIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsaXZlVmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgdmVyc2lvbiBvZiB0aGUgZW5kcG9pbnRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgdGFyZ2V0IHZlcnNpb24gb2YgdGhpcyBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHRhcmdldFZlcnNpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGltZXN0YW1wIHdoZW4gdGhlIGVuZHBvaW50IHdhcyBjcmVhdGVkXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIGNyZWF0aW9uIHRpbWVzdGFtcCBvZiB0aGlzIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgZGVzY3JpcHRpb24gZm9yIHRoZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBydW50aW1lIGVuZHBvaW50XG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIElEIG9mIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbmRwb2ludElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGFnZW50IHJ1bnRpbWUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZ2VudFJ1bnRpbWVJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGFnZW50IHJ1bnRpbWUgdXNlZCBieSB0aGlzIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYWdlbnRSdW50aW1lVmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogV2hlbiB0aGlzIGVuZHBvaW50IHdhcyBsYXN0IHVwZGF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgbGFzdCB1cGRhdGUgdGltZXN0YW1wIG9mIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBsYXN0VXBkYXRlZEF0Pzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZW5kcG9pbnRSZXNvdXJjZTogYmVkcm9ja2FnZW50Y29yZS5DZm5SdW50aW1lRW5kcG9pbnQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJ1bnRpbWVFbmRwb2ludFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENESyBBbmFseXRpY3MgVGVsZW1ldHJ5XG4gICAgYWRkQ29uc3RydWN0TWV0YWRhdGEodGhpcywgcHJvcHMpO1xuXG4gICAgLy8gU2V0IGFuZCB2YWxpZGF0ZSBwcm9wZXJ0aWVzIGltbWVkaWF0ZWx5XG4gICAgdGhpcy5lbmRwb2ludE5hbWUgPSBwcm9wcy5lbmRwb2ludE5hbWU7XG4gICAgdGhpcy52YWxpZGF0ZUVuZHBvaW50TmFtZSgpO1xuXG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVJZCA9IHByb3BzLmFnZW50UnVudGltZUlkO1xuICAgIHRoaXMudmFsaWRhdGVBZ2VudFJ1bnRpbWVJZCgpO1xuXG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVWZXJzaW9uID0gcHJvcHMuYWdlbnRSdW50aW1lVmVyc2lvbiA/PyAnMSc7XG4gICAgdGhpcy52YWxpZGF0ZUFnZW50UnVudGltZVZlcnNpb24oKTtcblxuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICBpZiAodGhpcy5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy52YWxpZGF0ZURlc2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRhZ3MpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVUYWdzKHByb3BzLnRhZ3MpO1xuICAgIH1cblxuICAgIGNvbnN0IGNmblByb3BzOiBiZWRyb2NrYWdlbnRjb3JlLkNmblJ1bnRpbWVFbmRwb2ludFByb3BzID0ge1xuICAgICAgbmFtZTogdGhpcy5lbmRwb2ludE5hbWUsXG4gICAgICBhZ2VudFJ1bnRpbWVJZDogTGF6eS5zdHJpbmcoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLnJlbmRlckFnZW50UnVudGltZUlkKCksXG4gICAgICB9KSxcbiAgICAgIGFnZW50UnVudGltZVZlcnNpb246IExhenkuc3RyaW5nKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5yZW5kZXJBZ2VudFJ1bnRpbWVWZXJzaW9uKCksXG4gICAgICB9KSxcbiAgICAgIGRlc2NyaXB0aW9uOiBMYXp5LnN0cmluZyh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMucmVuZGVyRGVzY3JpcHRpb24oKSxcbiAgICAgIH0pLFxuICAgICAgdGFnczogcHJvcHMudGFncyA/PyB7fSxcbiAgICB9O1xuXG4gICAgdGhpcy5lbmRwb2ludFJlc291cmNlID0gbmV3IGJlZHJvY2thZ2VudGNvcmUuQ2ZuUnVudGltZUVuZHBvaW50KHRoaXMsICdSZXNvdXJjZScsIGNmblByb3BzKTtcblxuICAgIHRoaXMuZW5kcG9pbnRJZCA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRySWQ7XG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVFbmRwb2ludEFybiA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyQWdlbnRSdW50aW1lRW5kcG9pbnRBcm47XG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVBcm4gPSB0aGlzLmVuZHBvaW50UmVzb3VyY2UuYXR0ckFnZW50UnVudGltZUFybjtcbiAgICB0aGlzLnN0YXR1cyA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyU3RhdHVzO1xuICAgIHRoaXMubGl2ZVZlcnNpb24gPSB0aGlzLmVuZHBvaW50UmVzb3VyY2UuYXR0ckxpdmVWZXJzaW9uO1xuICAgIHRoaXMudGFyZ2V0VmVyc2lvbiA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyVGFyZ2V0VmVyc2lvbjtcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMubGFzdFVwZGF0ZWRBdCA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyTGFzdFVwZGF0ZWRBdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBhZ2VudCBydW50aW1lIElEIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQWdlbnRSdW50aW1lSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hZ2VudFJ1bnRpbWVJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBhZ2VudCBydW50aW1lIHZlcnNpb24gZm9yIENsb3VkRm9ybWF0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJBZ2VudFJ1bnRpbWVWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWdlbnRSdW50aW1lVmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkZXNjcmlwdGlvbiBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckRlc2NyaXB0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBlbmRwb2ludCBuYW1lIGZvcm1hdFxuICAgKiBQYXR0ZXJuOiBeW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdmFsaWRhdGlvbiBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUVuZHBvaW50TmFtZSgpOiB2b2lkIHtcbiAgICAvLyBTa2lwIHZhbGlkYXRpb24gaWYgdGhlIG5hbWUgY29udGFpbnMgQ0RLIHRva2VucyAodW5yZXNvbHZlZCB2YWx1ZXMpXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmVuZHBvaW50TmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBsZW5ndGhcbiAgICBjb25zdCBsZW5ndGhFcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgIHZhbHVlOiB0aGlzLmVuZHBvaW50TmFtZSxcbiAgICAgIGZpZWxkTmFtZTogJ0VuZHBvaW50IG5hbWUnLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiA0OCxcbiAgICB9KTtcblxuICAgIC8vIFZhbGlkYXRlIHBhdHRlcm5cbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICB0aGlzLmVuZHBvaW50TmFtZSxcbiAgICAgICdFbmRwb2ludCBuYW1lJyxcbiAgICAgIC9eW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kLyxcbiAgICAgICdFbmRwb2ludCBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBhbmQgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3JlcycsXG4gICAgKTtcblxuICAgIC8vIENvbWJpbmUgYW5kIHRocm93IGlmIGFueSBlcnJvcnNcbiAgICBjb25zdCBhbGxFcnJvcnMgPSBbLi4ubGVuZ3RoRXJyb3JzLCAuLi5wYXR0ZXJuRXJyb3JzXTtcbiAgICBpZiAoYWxsRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYWxsRXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBkZXNjcmlwdGlvbiBmb3JtYXRcbiAgICogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDI1NiBjaGFyYWN0ZXJzIChwZXIgQ2xvdWRGb3JtYXRpb24gc3BlY2lmaWNhdGlvbilcbiAgICogQHRocm93cyBFcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRGVzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmRlc2NyaXB0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgICAgdmFsdWU6IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAgIGZpZWxkTmFtZTogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgICBtYXhMZW5ndGg6IDI1NixcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMuam9pbignXFxuJykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGFnZW50IHJ1bnRpbWUgSUQgZm9ybWF0XG4gICAqIFBhdHRlcm46IF5bYS16QS1aXVthLXpBLVowLTlfXXswLDk5fS1bYS16QS1aMC05XXsxMH0kXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdmFsaWRhdGlvbiBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFnZW50UnVudGltZUlkKCk6IHZvaWQge1xuICAgIC8vIFNraXAgdmFsaWRhdGlvbiBpZiB0aGUgSUQgY29udGFpbnMgQ0RLIHRva2VucyAodW5yZXNvbHZlZCB2YWx1ZXMpXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmFnZW50UnVudGltZUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHBhdHRlcm4gb25seSAobm8gbGVuZ3RoIHZhbGlkYXRpb24gcGVyIEFXUyBzcGVjcylcbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICB0aGlzLmFnZW50UnVudGltZUlkLFxuICAgICAgJ0FnZW50IHJ1bnRpbWUgSUQnLFxuICAgICAgL15bYS16QS1aXVthLXpBLVowLTlfXXswLDk5fS1bYS16QS1aMC05XXsxMH0kLyxcbiAgICAgICdBZ2VudCBydW50aW1lIElEIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gOTkgYWxwaGFudW1lcmljIG9yIHVuZGVyc2NvcmUgY2hhcmFjdGVycywgdGhlbiBhIGh5cGhlbiwgYW5kIGV4YWN0bHkgMTAgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMnLFxuICAgICk7XG5cbiAgICBpZiAocGF0dGVybkVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHBhdHRlcm5FcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGFnZW50IHJ1bnRpbWUgdmVyc2lvbiBmb3JtYXRcbiAgICogUGF0dGVybjogXihbMS05XVswLTldezAsNH0pJFxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVBZ2VudFJ1bnRpbWVWZXJzaW9uKCk6IHZvaWQge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5hZ2VudFJ1bnRpbWVWZXJzaW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHBhdHRlcm4gb25seSAobm8gbGVuZ3RoIHZhbGlkYXRpb24gcGVyIEFXUyBzcGVjcylcbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICB0aGlzLmFnZW50UnVudGltZVZlcnNpb24sXG4gICAgICAnQWdlbnQgcnVudGltZSB2ZXJzaW9uJyxcbiAgICAgIC9eWzEtOV1cXGR7MCw0fSQvLFxuICAgICAgJ0FnZW50IHJ1bnRpbWUgdmVyc2lvbiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgOTk5OTknLFxuICAgICk7XG5cbiAgICBpZiAocGF0dGVybkVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHBhdHRlcm5FcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRhZ3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0YWdzIFRoZSB0YWdzIG9iamVjdCB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUYWdzKHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0YWdzKSkge1xuICAgICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChrZXkpIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRhZyBrZXkgbGVuZ3RoXG4gICAgICBjb25zdCBrZXlMZW5ndGhFcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgICAgdmFsdWU6IGtleSxcbiAgICAgICAgZmllbGROYW1lOiBgVGFnIGtleSBcIiR7a2V5fVwiYCxcbiAgICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgICBtYXhMZW5ndGg6IDI1NixcbiAgICAgIH0pO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcga2V5IHBhdHRlcm5cbiAgICAgIGNvbnN0IGtleVBhdHRlcm5FcnJvcnMgPSB2YWxpZGF0ZUZpZWxkUGF0dGVybihcbiAgICAgICAga2V5LFxuICAgICAgICBgVGFnIGtleSBcIiR7a2V5fVwiYCxcbiAgICAgICAgL15bYS16QS1aMC05XFxzLl86Lz0rQC1dKiQvLFxuICAgICAgICBgVGFnIGtleSBcIiR7a2V5fVwiIGNhbiBvbmx5IGNvbnRhaW4gbGV0dGVycyAoYS16LCBBLVopLCBudW1iZXJzICgwLTkpLCBzcGFjZXMsIGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgKC5fOi89K0AtKWAsXG4gICAgICApO1xuXG4gICAgICAvLyBDb21iaW5lIGtleSBlcnJvcnMgYW5kIHRocm93IGlmIGFueVxuICAgICAgY29uc3Qga2V5RXJyb3JzID0gWy4uLmtleUxlbmd0aEVycm9ycywgLi4ua2V5UGF0dGVybkVycm9yc107XG4gICAgICBpZiAoa2V5RXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihrZXlFcnJvcnMuam9pbignXFxuJykpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUYWcgdmFsdWUgZm9yIGtleSBcIiR7a2V5fVwiIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZGApO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcgdmFsdWUgbGVuZ3RoXG4gICAgICBjb25zdCB2YWx1ZUxlbmd0aEVycm9ycyA9IHZhbGlkYXRlU3RyaW5nRmllbGQoe1xuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIGZpZWxkTmFtZTogYFRhZyB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCJgLFxuICAgICAgICBtaW5MZW5ndGg6IDAsXG4gICAgICAgIG1heExlbmd0aDogMjU2LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRhZyB2YWx1ZSBwYXR0ZXJuXG4gICAgICBjb25zdCB2YWx1ZVBhdHRlcm5FcnJvcnMgPSB2YWxpZGF0ZUZpZWxkUGF0dGVybihcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGBUYWcgdmFsdWUgZm9yIGtleSBcIiR7a2V5fVwiYCxcbiAgICAgICAgL15bYS16QS1aMC05XFxzLl86Lz0rQC1dKiQvLFxuICAgICAgICBgVGFnIHZhbHVlIGZvciBrZXkgXCIke2tleX1cIiBjYW4gb25seSBjb250YWluIGxldHRlcnMgKGEteiwgQS1aKSwgbnVtYmVycyAoMC05KSwgc3BhY2VzLCBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzICguXzovPStALSlgLFxuICAgICAgKTtcblxuICAgICAgLy8gQ29tYmluZSB2YWx1ZSBlcnJvcnMgYW5kIHRocm93IGlmIGFueVxuICAgICAgY29uc3QgdmFsdWVFcnJvcnMgPSBbLi4udmFsdWVMZW5ndGhFcnJvcnMsIC4uLnZhbHVlUGF0dGVybkVycm9yc107XG4gICAgICBpZiAodmFsdWVFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHZhbHVlRXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1lbmRwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bnRpbWUtZW5kcG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQWlEO0FBQ2pELHFFQUFxRTtBQUNyRSw4RUFBOEU7QUFDOUUsMEVBQTBFO0FBRTFFLG1FQUEyRztBQUMzRyw2REFBa0c7QUFrRGxHOzsrRUFFK0U7QUFFL0U7Ozs7OztHQU1HO0lBRVUsZUFBZTs0QkFEM0Isb0NBQWtCOzs7O3NCQUNrQiwyQ0FBbUI7K0JBQTNCLFNBQVEsV0FBbUI7Ozs7WUFBeEQsNktBK1ZDOzs7OztRQTlWQyxzQ0FBc0M7UUFDL0IsTUFBTSxDQUFVLHFCQUFxQixHQUFXLHNEQUFzRCxDQUFDO1FBRTlHOzs7Ozs7OztXQVFHO1FBQ0ksTUFBTSxDQUFDLDZCQUE2QixDQUN6QyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBZ0M7Ozs7Ozs7Ozs7WUFFaEMsTUFBTSxtQ0FBb0MsU0FBUSwyQ0FBbUI7Z0JBQ25ELHVCQUF1QixHQUFHLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQztnQkFDeEQsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQ2xDLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO2dCQUN4QyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztnQkFDaEMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3RCLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO2dCQUNoQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztnQkFDcEMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQzVCLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUM5QixhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQzthQUNyRDtZQUVELE9BQU8sSUFB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R0FBRyxpQkFBaUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2xFLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxJQUFJLG9DQUFlLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNwRCxDQUFDO1lBQ0gsQ0FBQztTQUNGOztZQTlWVSx1REFBZTs7Ozs7QUFBZiwwQ0FBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuLCBMYXp5LCBOYW1lcyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGJlZHJvY2thZ2VudGNvcmUgZnJvbSAnYXdzLWNkay1saWIvYXdzLWJlZHJvY2thZ2VudGNvcmUnO1xuaW1wb3J0IHsgYWRkQ29uc3RydWN0TWV0YWRhdGEgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9tZXRhZGF0YS1yZXNvdXJjZSc7XG5pbXBvcnQgeyBwcm9wZXJ0eUluamVjdGFibGUgfSBmcm9tICdhd3MtY2RrLWxpYi9jb3JlL2xpYi9wcm9wLWluamVjdGFibGUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBSdW50aW1lRW5kcG9pbnRCYXNlLCBJUnVudGltZUVuZHBvaW50LCBSdW50aW1lRW5kcG9pbnRBdHRyaWJ1dGVzIH0gZnJvbSAnLi9ydW50aW1lLWVuZHBvaW50LWJhc2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVTdHJpbmdGaWVsZCwgdmFsaWRhdGVGaWVsZFBhdHRlcm4sIFZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4vdmFsaWRhdGlvbi1oZWxwZXJzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb3BzXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgY3JlYXRpbmcgYSBCZWRyb2NrIEFnZW50IENvcmUgUnVudGltZSBFbmRwb2ludCByZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVFbmRwb2ludFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhZ2VudCBydW50aW1lIGVuZHBvaW50XG4gICAqIFZhbGlkIGNoYXJhY3RlcnMgYXJlIGEteiwgQS1aLCAwLTksIF8gKHVuZGVyc2NvcmUpXG4gICAqIE11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBhbmQgY2FuIGJlIHVwIHRvIDQ4IGNoYXJhY3RlcnMgbG9uZ1xuICAgKiBQYXR0ZXJuOiBeW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kXG4gICAqIEBkZWZhdWx0IC0gYXV0byBnZW5lcmF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGFnZW50IHJ1bnRpbWUgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBlbmRwb2ludFxuICAgKiBUaGlzIGlzIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcnVudGltZSByZXNvdXJjZVxuICAgKiBQYXR0ZXJuOiBeW2EtekEtWl1bYS16QS1aMC05X117MCw5OX0tW2EtekEtWjAtOV17MTB9JFxuICAgKi9cbiAgcmVhZG9ubHkgYWdlbnRSdW50aW1lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGFnZW50IHJ1bnRpbWUgdG8gdXNlIGZvciB0aGlzIGVuZHBvaW50XG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBlbmRwb2ludCB3aWxsIHBvaW50IHRvIHZlcnNpb24gXCIxXCIgb2YgdGhlIHJ1bnRpbWUuXG4gICAqIFBhdHRlcm46IF4oWzEtOV1bMC05XXswLDR9KSRcbiAgICogQGRlZmF1bHQgXCIxXCJcbiAgICovXG4gIHJlYWRvbmx5IGFnZW50UnVudGltZVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uIGZvciB0aGUgYWdlbnQgcnVudGltZSBlbmRwb2ludFxuICAgKiBMZW5ndGggTWluaW11bTogMSAsICBNYXhpbXVtOiAyNTZcbiAgICogQGRlZmF1bHQgLSBObyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhZ3MgZm9yIHRoZSBhZ2VudCBydW50aW1lIGVuZHBvaW50XG4gICAqIEEgbGlzdCBvZiBrZXk6dmFsdWUgcGFpcnMgb2YgdGFncyB0byBhcHBseSB0byB0aGlzIFJ1bnRpbWVFbmRwb2ludCByZXNvdXJjZVxuICAgKiBQYXR0ZXJuOiBeW2EtekEtWjAtOVxccy5fOi89K0AtXSokXG4gICAqIEBkZWZhdWx0IHt9IC0gbm8gdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc1xuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIEJlZHJvY2sgQWdlbnQgQ29yZSBSdW50aW1lIEVuZHBvaW50XG4gKiBQcm92aWRlcyBhIHN0YWJsZSBlbmRwb2ludCBmb3IgaW52b2tpbmcgYWdlbnQgcnVudGltZXMgd2l0aCB2ZXJzaW9uaW5nIHN1cHBvcnRcbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpCZWRyb2NrQWdlbnRDb3JlOjpSdW50aW1lRW5kcG9pbnRcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9kZXZndWlkZS9ydW50aW1lLWVuZHBvaW50Lmh0bWxcbiAqL1xuQHByb3BlcnR5SW5qZWN0YWJsZVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVFbmRwb2ludCBleHRlbmRzIFJ1bnRpbWVFbmRwb2ludEJhc2Uge1xuICAvKiogVW5pcXVlbHkgaWRlbnRpZmllcyB0aGlzIGNsYXNzLiAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBST1BFUlRZX0lOSkVDVElPTl9JRDogc3RyaW5nID0gJ0Bhd3MtY2RrLmF3cy1iZWRyb2NrLWFnZW50Y29yZS1hbHBoYS5SdW50aW1lRW5kcG9pbnQnO1xuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgQWdlbnQgUnVudGltZSBFbmRwb2ludCB1c2luZyBhdHRyaWJ1dGVzXG4gICAqIFRoaXMgYWxsb3dzIHlvdSB0byByZWZlcmVuY2UgYW4gQWdlbnQgUnVudGltZSBFbmRwb2ludCB0aGF0IHdhcyBjcmVhdGVkIG91dHNpZGUgb2YgQ0RLXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgY29uc3RydWN0IHNjb3BlXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0IGlkXG4gICAqIEBwYXJhbSBhdHRycyBUaGUgYXR0cmlidXRlcyBvZiB0aGUgZXhpc3RpbmcgQWdlbnQgUnVudGltZSBFbmRwb2ludFxuICAgKiBAcmV0dXJucyBBbiBJUnVudGltZUVuZHBvaW50IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgaW1wb3J0ZWQgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJ1bnRpbWVFbmRwb2ludEF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBSdW50aW1lRW5kcG9pbnRBdHRyaWJ1dGVzLFxuICApOiBJUnVudGltZUVuZHBvaW50IHtcbiAgICBjbGFzcyBJbXBvcnRlZEJlZHJvY2tBZ2VudFJ1bnRpbWVFbmRwb2ludCBleHRlbmRzIFJ1bnRpbWVFbmRwb2ludEJhc2Uge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFnZW50UnVudGltZUVuZHBvaW50QXJuID0gYXR0cnMuYWdlbnRSdW50aW1lRW5kcG9pbnRBcm47XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgZW5kcG9pbnROYW1lID0gYXR0cnMuZW5kcG9pbnROYW1lO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFnZW50UnVudGltZUFybiA9IGF0dHJzLmFnZW50UnVudGltZUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbiA9IGF0dHJzLmRlc2NyaXB0aW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IGF0dHJzLnN0YXR1cztcbiAgICAgIHB1YmxpYyByZWFkb25seSBsaXZlVmVyc2lvbiA9IGF0dHJzLmxpdmVWZXJzaW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IHRhcmdldFZlcnNpb24gPSBhdHRycy50YXJnZXRWZXJzaW9uO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdCA9IGF0dHJzLmNyZWF0ZWRBdDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBlbmRwb2ludElkID0gYXR0cnMuZW5kcG9pbnRJZDtcbiAgICAgIHB1YmxpYyByZWFkb25seSBsYXN0VXBkYXRlZEF0ID0gYXR0cnMubGFzdFVwZGF0ZWRBdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydGVkQmVkcm9ja0FnZW50UnVudGltZUVuZHBvaW50KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvLyBQcm9wZXJ0aWVzIGZyb20gYmFzZSBpbnRlcmZhY2VcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgQVJOIG9mIHRoaXMgYWdlbnQgcnVudGltZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFnZW50UnVudGltZUVuZHBvaW50QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZW5kcG9pbnRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgbmFtZSBvZiB0aGlzIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW5kcG9pbnROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBhZ2VudCBydW50aW1lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGVuZHBvaW50XG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQHJldHVybnMgYSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIEFSTiBvZiB0aGUgYWdlbnQgcnVudGltZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFnZW50UnVudGltZUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgZW5kcG9pbnRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgc3RhdHVzIG9mIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbGl2ZSB2ZXJzaW9uIG9mIHRoZSBlbmRwb2ludFxuICAgKiBAYXR0cmlidXRlXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSBsaXZlIHZlcnNpb24gb2YgdGhpcyBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxpdmVWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHRhcmdldCB2ZXJzaW9uIG9mIHRoZSBlbmRwb2ludFxuICAgKiBAYXR0cmlidXRlXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSB0YXJnZXQgdmVyc2lvbiBvZiB0aGlzIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0VmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aW1lc3RhbXAgd2hlbiB0aGUgZW5kcG9pbnQgd2FzIGNyZWF0ZWRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgY3JlYXRpb24gdGltZXN0YW1wIG9mIHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBmb3IgdGhlIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJ1bnRpbWUgZW5kcG9pbnRcbiAgICogQGF0dHJpYnV0ZVxuICAgKiBAcmV0dXJucyBhIHRva2VuIHJlcHJlc2VudGluZyB0aGUgSUQgb2YgdGhpcyBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuZHBvaW50SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgYWdlbnQgcnVudGltZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFnZW50UnVudGltZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgYWdlbnQgcnVudGltZSB1c2VkIGJ5IHRoaXMgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZ2VudFJ1bnRpbWVWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgZW5kcG9pbnQgd2FzIGxhc3QgdXBkYXRlZFxuICAgKiBAYXR0cmlidXRlXG4gICAqIEByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSBsYXN0IHVwZGF0ZSB0aW1lc3RhbXAgb2YgdGhpcyBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxhc3RVcGRhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbmRwb2ludFJlc291cmNlOiBiZWRyb2NrYWdlbnRjb3JlLkNmblJ1bnRpbWVFbmRwb2ludDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUnVudGltZUVuZHBvaW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC8vIE1heGltdW0gbmFtZSBsZW5ndGggb2YgNDggY2hhcmFjdGVyc1xuICAgICAgLy8gQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1RlbXBsYXRlUmVmZXJlbmNlL2F3cy1yZXNvdXJjZS1iZWRyb2NrYWdlbnRjb3JlLXJ1bnRpbWVlbmRwb2ludC5odG1sI2Nmbi1iZWRyb2NrYWdlbnRjb3JlLXJ1bnRpbWVlbmRwb2ludC1uYW1lXG4gICAgICBwaHlzaWNhbE5hbWU6IHByb3BzLmVuZHBvaW50TmFtZSA/P1xuICAgICAgICBMYXp5LnN0cmluZyh7XG4gICAgICAgICAgcHJvZHVjZTogKCkgPT4gTmFtZXMudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHsgbWF4TGVuZ3RoOiA0OCB9KSxcbiAgICAgICAgfSksXG4gICAgfSk7XG5cbiAgICAvLyBDREsgQW5hbHl0aWNzIFRlbGVtZXRyeVxuICAgIGFkZENvbnN0cnVjdE1ldGFkYXRhKHRoaXMsIHByb3BzKTtcblxuICAgIC8vIFNldCBhbmQgdmFsaWRhdGUgcHJvcGVydGllcyBpbW1lZGlhdGVseVxuICAgIHRoaXMuZW5kcG9pbnROYW1lID0gdGhpcy5waHlzaWNhbE5hbWU7XG4gICAgdGhpcy52YWxpZGF0ZUVuZHBvaW50TmFtZSgpO1xuXG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVJZCA9IHByb3BzLmFnZW50UnVudGltZUlkO1xuICAgIHRoaXMudmFsaWRhdGVBZ2VudFJ1bnRpbWVJZCgpO1xuXG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVWZXJzaW9uID0gcHJvcHMuYWdlbnRSdW50aW1lVmVyc2lvbiA/PyAnMSc7XG4gICAgdGhpcy52YWxpZGF0ZUFnZW50UnVudGltZVZlcnNpb24oKTtcblxuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgICBpZiAodGhpcy5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy52YWxpZGF0ZURlc2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRhZ3MpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVUYWdzKHByb3BzLnRhZ3MpO1xuICAgIH1cblxuICAgIGNvbnN0IGNmblByb3BzOiBiZWRyb2NrYWdlbnRjb3JlLkNmblJ1bnRpbWVFbmRwb2ludFByb3BzID0ge1xuICAgICAgbmFtZTogdGhpcy5lbmRwb2ludE5hbWUsXG4gICAgICBhZ2VudFJ1bnRpbWVJZDogTGF6eS5zdHJpbmcoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PiB0aGlzLnJlbmRlckFnZW50UnVudGltZUlkKCksXG4gICAgICB9KSxcbiAgICAgIGFnZW50UnVudGltZVZlcnNpb246IExhenkuc3RyaW5nKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5yZW5kZXJBZ2VudFJ1bnRpbWVWZXJzaW9uKCksXG4gICAgICB9KSxcbiAgICAgIGRlc2NyaXB0aW9uOiBMYXp5LnN0cmluZyh7XG4gICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMucmVuZGVyRGVzY3JpcHRpb24oKSxcbiAgICAgIH0pLFxuICAgICAgdGFnczogcHJvcHMudGFncyA/PyB7fSxcbiAgICB9O1xuXG4gICAgdGhpcy5lbmRwb2ludFJlc291cmNlID0gbmV3IGJlZHJvY2thZ2VudGNvcmUuQ2ZuUnVudGltZUVuZHBvaW50KHRoaXMsICdSZXNvdXJjZScsIGNmblByb3BzKTtcblxuICAgIHRoaXMuZW5kcG9pbnRJZCA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRySWQ7XG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVFbmRwb2ludEFybiA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyQWdlbnRSdW50aW1lRW5kcG9pbnRBcm47XG4gICAgdGhpcy5hZ2VudFJ1bnRpbWVBcm4gPSB0aGlzLmVuZHBvaW50UmVzb3VyY2UuYXR0ckFnZW50UnVudGltZUFybjtcbiAgICB0aGlzLnN0YXR1cyA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyU3RhdHVzO1xuICAgIHRoaXMubGl2ZVZlcnNpb24gPSB0aGlzLmVuZHBvaW50UmVzb3VyY2UuYXR0ckxpdmVWZXJzaW9uO1xuICAgIHRoaXMudGFyZ2V0VmVyc2lvbiA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyVGFyZ2V0VmVyc2lvbjtcbiAgICB0aGlzLmNyZWF0ZWRBdCA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyQ3JlYXRlZEF0O1xuICAgIHRoaXMubGFzdFVwZGF0ZWRBdCA9IHRoaXMuZW5kcG9pbnRSZXNvdXJjZS5hdHRyTGFzdFVwZGF0ZWRBdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBhZ2VudCBydW50aW1lIElEIGZvciBDbG91ZEZvcm1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVuZGVyQWdlbnRSdW50aW1lSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hZ2VudFJ1bnRpbWVJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBhZ2VudCBydW50aW1lIHZlcnNpb24gZm9yIENsb3VkRm9ybWF0aW9uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSByZW5kZXJBZ2VudFJ1bnRpbWVWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWdlbnRSdW50aW1lVmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBkZXNjcmlwdGlvbiBmb3IgQ2xvdWRGb3JtYXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlbmRlckRlc2NyaXB0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRpb247XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBlbmRwb2ludCBuYW1lIGZvcm1hdFxuICAgKiBQYXR0ZXJuOiBeW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdmFsaWRhdGlvbiBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUVuZHBvaW50TmFtZSgpOiB2b2lkIHtcbiAgICAvLyBTa2lwIHZhbGlkYXRpb24gaWYgdGhlIG5hbWUgY29udGFpbnMgQ0RLIHRva2VucyAodW5yZXNvbHZlZCB2YWx1ZXMpXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmVuZHBvaW50TmFtZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBsZW5ndGhcbiAgICBjb25zdCBsZW5ndGhFcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgIHZhbHVlOiB0aGlzLmVuZHBvaW50TmFtZSxcbiAgICAgIGZpZWxkTmFtZTogJ0VuZHBvaW50IG5hbWUnLFxuICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgbWF4TGVuZ3RoOiA0OCxcbiAgICB9KTtcblxuICAgIC8vIFZhbGlkYXRlIHBhdHRlcm5cbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICB0aGlzLmVuZHBvaW50TmFtZSxcbiAgICAgICdFbmRwb2ludCBuYW1lJyxcbiAgICAgIC9eW2EtekEtWl1bYS16QS1aMC05X117MCw0N30kLyxcbiAgICAgICdFbmRwb2ludCBuYW1lIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBhbmQgY29udGFpbiBvbmx5IGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3JlcycsXG4gICAgKTtcblxuICAgIC8vIENvbWJpbmUgYW5kIHRocm93IGlmIGFueSBlcnJvcnNcbiAgICBjb25zdCBhbGxFcnJvcnMgPSBbLi4ubGVuZ3RoRXJyb3JzLCAuLi5wYXR0ZXJuRXJyb3JzXTtcbiAgICBpZiAoYWxsRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYWxsRXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBkZXNjcmlwdGlvbiBmb3JtYXRcbiAgICogTXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDI1NiBjaGFyYWN0ZXJzIChwZXIgQ2xvdWRGb3JtYXRpb24gc3BlY2lmaWNhdGlvbilcbiAgICogQHRocm93cyBFcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlRGVzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmRlc2NyaXB0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgICAgdmFsdWU6IHRoaXMuZGVzY3JpcHRpb24sXG4gICAgICAgIGZpZWxkTmFtZTogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgICBtYXhMZW5ndGg6IDI1NixcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihlcnJvcnMuam9pbignXFxuJykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGFnZW50IHJ1bnRpbWUgSUQgZm9ybWF0XG4gICAqIFBhdHRlcm46IF5bYS16QS1aXVthLXpBLVowLTlfXXswLDk5fS1bYS16QS1aMC05XXsxMH0kXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdmFsaWRhdGlvbiBmYWlsc1xuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFnZW50UnVudGltZUlkKCk6IHZvaWQge1xuICAgIC8vIFNraXAgdmFsaWRhdGlvbiBpZiB0aGUgSUQgY29udGFpbnMgQ0RLIHRva2VucyAodW5yZXNvbHZlZCB2YWx1ZXMpXG4gICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZCh0aGlzLmFnZW50UnVudGltZUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHBhdHRlcm4gb25seSAobm8gbGVuZ3RoIHZhbGlkYXRpb24gcGVyIEFXUyBzcGVjcylcbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICB0aGlzLmFnZW50UnVudGltZUlkLFxuICAgICAgJ0FnZW50IHJ1bnRpbWUgSUQnLFxuICAgICAgL15bYS16QS1aXVthLXpBLVowLTlfXXswLDk5fS1bYS16QS1aMC05XXsxMH0kLyxcbiAgICAgICdBZ2VudCBydW50aW1lIElEIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciwgZm9sbG93ZWQgYnkgdXAgdG8gOTkgYWxwaGFudW1lcmljIG9yIHVuZGVyc2NvcmUgY2hhcmFjdGVycywgdGhlbiBhIGh5cGhlbiwgYW5kIGV4YWN0bHkgMTAgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMnLFxuICAgICk7XG5cbiAgICBpZiAocGF0dGVybkVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHBhdHRlcm5FcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGFnZW50IHJ1bnRpbWUgdmVyc2lvbiBmb3JtYXRcbiAgICogUGF0dGVybjogXihbMS05XVswLTldezAsNH0pJFxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVBZ2VudFJ1bnRpbWVWZXJzaW9uKCk6IHZvaWQge1xuICAgIGlmIChUb2tlbi5pc1VucmVzb2x2ZWQodGhpcy5hZ2VudFJ1bnRpbWVWZXJzaW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHBhdHRlcm4gb25seSAobm8gbGVuZ3RoIHZhbGlkYXRpb24gcGVyIEFXUyBzcGVjcylcbiAgICBjb25zdCBwYXR0ZXJuRXJyb3JzID0gdmFsaWRhdGVGaWVsZFBhdHRlcm4oXG4gICAgICB0aGlzLmFnZW50UnVudGltZVZlcnNpb24sXG4gICAgICAnQWdlbnQgcnVudGltZSB2ZXJzaW9uJyxcbiAgICAgIC9eWzEtOV1cXGR7MCw0fSQvLFxuICAgICAgJ0FnZW50IHJ1bnRpbWUgdmVyc2lvbiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgOTk5OTknLFxuICAgICk7XG5cbiAgICBpZiAocGF0dGVybkVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHBhdHRlcm5FcnJvcnMuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHRhZ3MgZm9ybWF0XG4gICAqIEBwYXJhbSB0YWdzIFRoZSB0YWdzIG9iamVjdCB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEVycm9yIGlmIHZhbGlkYXRpb24gZmFpbHNcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUYWdzKHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0YWdzKSkge1xuICAgICAgaWYgKFRva2VuLmlzVW5yZXNvbHZlZChrZXkpIHx8IFRva2VuLmlzVW5yZXNvbHZlZCh2YWx1ZSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRhZyBrZXkgbGVuZ3RoXG4gICAgICBjb25zdCBrZXlMZW5ndGhFcnJvcnMgPSB2YWxpZGF0ZVN0cmluZ0ZpZWxkKHtcbiAgICAgICAgdmFsdWU6IGtleSxcbiAgICAgICAgZmllbGROYW1lOiBgVGFnIGtleSBcIiR7a2V5fVwiYCxcbiAgICAgICAgbWluTGVuZ3RoOiAxLFxuICAgICAgICBtYXhMZW5ndGg6IDI1NixcbiAgICAgIH0pO1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcga2V5IHBhdHRlcm5cbiAgICAgIGNvbnN0IGtleVBhdHRlcm5FcnJvcnMgPSB2YWxpZGF0ZUZpZWxkUGF0dGVybihcbiAgICAgICAga2V5LFxuICAgICAgICBgVGFnIGtleSBcIiR7a2V5fVwiYCxcbiAgICAgICAgL15bYS16QS1aMC05XFxzLl86Lz0rQC1dKiQvLFxuICAgICAgICBgVGFnIGtleSBcIiR7a2V5fVwiIGNhbiBvbmx5IGNvbnRhaW4gbGV0dGVycyAoYS16LCBBLVopLCBudW1iZXJzICgwLTkpLCBzcGFjZXMsIGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgKC5fOi89K0AtKWAsXG4gICAgICApO1xuXG4gICAgICAvLyBDb21iaW5lIGtleSBlcnJvcnMgYW5kIHRocm93IGlmIGFueVxuICAgICAgY29uc3Qga2V5RXJyb3JzID0gWy4uLmtleUxlbmd0aEVycm9ycywgLi4ua2V5UGF0dGVybkVycm9yc107XG4gICAgICBpZiAoa2V5RXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihrZXlFcnJvcnMuam9pbignXFxuJykpO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUYWcgdmFsdWUgZm9yIGtleSBcIiR7a2V5fVwiIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZGApO1xuICAgICAgfVxuXG4gICAgICAvLyBWYWxpZGF0ZSB0YWcgdmFsdWUgbGVuZ3RoXG4gICAgICBjb25zdCB2YWx1ZUxlbmd0aEVycm9ycyA9IHZhbGlkYXRlU3RyaW5nRmllbGQoe1xuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIGZpZWxkTmFtZTogYFRhZyB2YWx1ZSBmb3Iga2V5IFwiJHtrZXl9XCJgLFxuICAgICAgICBtaW5MZW5ndGg6IDAsXG4gICAgICAgIG1heExlbmd0aDogMjU2LFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFZhbGlkYXRlIHRhZyB2YWx1ZSBwYXR0ZXJuXG4gICAgICBjb25zdCB2YWx1ZVBhdHRlcm5FcnJvcnMgPSB2YWxpZGF0ZUZpZWxkUGF0dGVybihcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGBUYWcgdmFsdWUgZm9yIGtleSBcIiR7a2V5fVwiYCxcbiAgICAgICAgL15bYS16QS1aMC05XFxzLl86Lz0rQC1dKiQvLFxuICAgICAgICBgVGFnIHZhbHVlIGZvciBrZXkgXCIke2tleX1cIiBjYW4gb25seSBjb250YWluIGxldHRlcnMgKGEteiwgQS1aKSwgbnVtYmVycyAoMC05KSwgc3BhY2VzLCBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzICguXzovPStALSlgLFxuICAgICAgKTtcblxuICAgICAgLy8gQ29tYmluZSB2YWx1ZSBlcnJvcnMgYW5kIHRocm93IGlmIGFueVxuICAgICAgY29uc3QgdmFsdWVFcnJvcnMgPSBbLi4udmFsdWVMZW5ndGhFcnJvcnMsIC4uLnZhbHVlUGF0dGVybkVycm9yc107XG4gICAgICBpZiAodmFsdWVFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKHZhbHVlRXJyb3JzLmpvaW4oJ1xcbicpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|