@rio-cloud/cdk-v2-constructs 6.15.0 → 6.16.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 +428 -47
- package/docs/API.md +544 -8
- package/docs/changelog.md +12 -0
- package/esbuild.mjs +4 -0
- package/lib/fargate/rio-fargate-service.d.ts +20 -2
- package/lib/fargate/rio-fargate-service.js +31 -11
- package/lib/index.d.ts +2 -0
- package/lib/index.js +4 -2
- package/lib/kafka/kafka-event-spec.d.ts +1 -1
- package/lib/kafka/kafka-event-spec.js +2 -2
- package/lib/kafka/kafka-topic.d.ts +2 -2
- package/lib/kafka/kafka-topic.js +1 -1
- package/lib/ses/helper.d.ts +24 -0
- package/lib/ses/helper.js +44 -0
- package/lib/ses/index.d.ts +1 -0
- package/lib/ses/index.js +18 -0
- package/lib/ses/lambda/ses-logger.cjs +50 -0
- package/lib/ses/lambda/ses-logger.d.ts +2 -0
- package/lib/ses/lambda/ses-logger.js +28 -0
- package/lib/ses/ses-observability.d.ts +63 -0
- package/lib/ses/ses-observability.js +225 -0
- package/package.json +1 -1
- package/version.json +1 -1
|
@@ -217,6 +217,24 @@ export interface DatadogIntegrationProps {
|
|
|
217
217
|
* @defaultValue - 128
|
|
218
218
|
*/
|
|
219
219
|
readonly memoryLimitMiB?: number;
|
|
220
|
+
/**
|
|
221
|
+
* The amount of virtual CPU units to be reserved for the firelens log-router container (i.e. aws-for-fluent-bit).
|
|
222
|
+
*
|
|
223
|
+
* This only applies for the AWS_FIRE_LENS logging mode.
|
|
224
|
+
* Setting it for any other logging mode will cause an exception.
|
|
225
|
+
*
|
|
226
|
+
* @defaultValue - 64
|
|
227
|
+
*/
|
|
228
|
+
readonly awsFireLensCpu?: number;
|
|
229
|
+
/**
|
|
230
|
+
* The amount of memory (in MiB) reserved for the firelens log-router container (i.e. aws-for-fluent-bit).
|
|
231
|
+
*
|
|
232
|
+
* This only applies for the AWS_FIRE_LENS logging mode.
|
|
233
|
+
* Setting it for any other logging mode will cause an exception.
|
|
234
|
+
*
|
|
235
|
+
* @defaultValue - 64
|
|
236
|
+
*/
|
|
237
|
+
readonly awsFireLensMemoryLimitMiB?: number;
|
|
220
238
|
/**
|
|
221
239
|
* The logging mode for the service.
|
|
222
240
|
*
|
|
@@ -315,8 +333,8 @@ export declare class RioFargateService extends constructs.Construct implements e
|
|
|
315
333
|
private readonly DEFAULT_DEREGISTRATION_DELAY;
|
|
316
334
|
private readonly DEFAULT_SLOW_START;
|
|
317
335
|
private readonly DEFAULT_DATADOG_SIDECAR_TAG;
|
|
318
|
-
private readonly
|
|
319
|
-
private readonly
|
|
336
|
+
private readonly DEFAULT_LOG_ROUTER_CPU;
|
|
337
|
+
private readonly DEFAULT_LOG_ROUTER_MEMORY_LIMIT_MIB;
|
|
320
338
|
private readonly FIRELENS_CONFIG_BUCKET_ARN;
|
|
321
339
|
private readonly FIRELENS_CONFIG_FILE_PATH;
|
|
322
340
|
readonly serviceContainerDefinition: ecs.ContainerDefinition;
|
|
@@ -57,8 +57,8 @@ class RioFargateService extends constructs.Construct {
|
|
|
57
57
|
this.DEFAULT_DEREGISTRATION_DELAY = cdk.Duration.seconds(5);
|
|
58
58
|
this.DEFAULT_SLOW_START = undefined;
|
|
59
59
|
this.DEFAULT_DATADOG_SIDECAR_TAG = 'latest';
|
|
60
|
-
this.
|
|
61
|
-
this.
|
|
60
|
+
this.DEFAULT_LOG_ROUTER_CPU = 64;
|
|
61
|
+
this.DEFAULT_LOG_ROUTER_MEMORY_LIMIT_MIB = 64;
|
|
62
62
|
this.FIRELENS_CONFIG_BUCKET_ARN = 'arn:aws:s3:::577146897785-eu-west-1-firelens-configuration-bucket';
|
|
63
63
|
this.FIRELENS_CONFIG_FILE_PATH = '/parse-json.conf';
|
|
64
64
|
const { loadBalancerOptions, vpc, cluster, fargateOptions, datadogOptions, serviceName, containerDefinitionOption, stage, version, frameworks, } = props;
|
|
@@ -66,6 +66,7 @@ class RioFargateService extends constructs.Construct {
|
|
|
66
66
|
this.node.addValidation(new DenyListedKeyValidator(RioFargateService.DD_TAG_DENY_LIST, props.datadogOptions?.additionalTags, it => `Tag ${it} is not allowed to be set. This value will be inferred from the account or other properties.`));
|
|
67
67
|
this.node.addValidation(new ClusterVpcValidator(props.vpc, props.cluster));
|
|
68
68
|
this.node.addValidation(new DatadogSideCarValidator(props.datadogOptions));
|
|
69
|
+
this.node.addValidation(new FirelensSideCarValidator(props.datadogOptions));
|
|
69
70
|
const fargateCluster = cluster ?? new ecs.Cluster(this, 'Cluster', {
|
|
70
71
|
vpc: vpc,
|
|
71
72
|
});
|
|
@@ -84,6 +85,12 @@ class RioFargateService extends constructs.Construct {
|
|
|
84
85
|
const datadogApiKeyParameter = ssm.StringParameter.fromStringParameterName(this, 'DatadogApiKey', '/rio/config/datadog-integration/api-key');
|
|
85
86
|
const datadogSidecarCpu = datadogOptions?.cpu ?? this.DEFAULT_DATADOG_SIDECAR_CPU;
|
|
86
87
|
const datadogSidecarMemoryMiB = datadogOptions?.memoryLimitMiB ?? this.DEFAULT_DATADOG_SIDECAR_MEMORY_LIMIT_MIB;
|
|
88
|
+
const loggingModeForService = datadogOptions?.loggingModeForService ?? this.DEFAULT_LOGGING_MODE_FOR_SERVICE;
|
|
89
|
+
const loggingModeForDatadogAgent = datadogOptions?.loggingModeForDatadogAgent ?? this.DEFAULT_LOGGING_MODE_FOR_DATADOG_SIDECAR;
|
|
90
|
+
const fireLensLogRouterRequired = loggingModeForService === DataDogLoggingMode.AWS_FIRE_LENS ||
|
|
91
|
+
loggingModeForDatadogAgent === DataDogLoggingMode.AWS_FIRE_LENS;
|
|
92
|
+
const fireLensSidecarCpu = datadogOptions?.awsFireLensCpu ?? this.DEFAULT_LOG_ROUTER_CPU;
|
|
93
|
+
const fireLensSidecarMemoryMiB = datadogOptions?.awsFireLensMemoryLimitMiB ?? this.DEFAULT_LOG_ROUTER_MEMORY_LIMIT_MIB;
|
|
87
94
|
const datadogSidecarEssential = datadogOptions?.datadogSidecarEssential ?? this.DEFAULT_DATADOG_SIDECAR_ESSENTIAL;
|
|
88
95
|
const dataDogEnableRestartPolicy = datadogOptions?.enableRestartPolicy ?? this.DEFAULT_DATADOG_ENABLE_RESTART_POLICY;
|
|
89
96
|
function getRestartIgnoredExitCodes(enableRestartPolicy, restartIgnoredExitCodes, defaultIgnoredExitCodes) {
|
|
@@ -98,15 +105,11 @@ class RioFargateService extends constructs.Construct {
|
|
|
98
105
|
}
|
|
99
106
|
}
|
|
100
107
|
const dataDogrestartIgnoredExitCodes = getRestartIgnoredExitCodes(dataDogEnableRestartPolicy, datadogOptions?.restartIgnoredExitCodes, this.DEFAULT_DATADOG_RESTART_IGNORED_EXIT_CODES);
|
|
101
|
-
const loggingModeForService = datadogOptions?.loggingModeForService ?? this.DEFAULT_LOGGING_MODE_FOR_SERVICE;
|
|
102
|
-
const loggingModeForDatadogAgent = datadogOptions?.loggingModeForDatadogAgent ?? this.DEFAULT_LOGGING_MODE_FOR_DATADOG_SIDECAR;
|
|
103
|
-
const fireLensLogRouterRequired = loggingModeForService === DataDogLoggingMode.AWS_FIRE_LENS ||
|
|
104
|
-
loggingModeForDatadogAgent === DataDogLoggingMode.AWS_FIRE_LENS;
|
|
105
108
|
let serviceContainerCpuUnits;
|
|
106
109
|
let serviceContainerMemoryLimitMiB;
|
|
107
110
|
if (fireLensLogRouterRequired) {
|
|
108
|
-
serviceContainerCpuUnits = fargateOptions.cpu - datadogSidecarCpu -
|
|
109
|
-
serviceContainerMemoryLimitMiB = fargateOptions.memoryLimitMiB - datadogSidecarMemoryMiB -
|
|
111
|
+
serviceContainerCpuUnits = fargateOptions.cpu - datadogSidecarCpu - fireLensSidecarCpu;
|
|
112
|
+
serviceContainerMemoryLimitMiB = fargateOptions.memoryLimitMiB - datadogSidecarMemoryMiB - fireLensSidecarMemoryMiB;
|
|
110
113
|
datadog.addFirelensConfigUploadFromS3Permissions({
|
|
111
114
|
taskDefinition: this.taskDefinition,
|
|
112
115
|
firelensConfigBucketArn: this.FIRELENS_CONFIG_BUCKET_ARN,
|
|
@@ -160,8 +163,8 @@ class RioFargateService extends constructs.Construct {
|
|
|
160
163
|
if (fireLensLogRouterRequired) {
|
|
161
164
|
this.logRouterContainerDefinition = datadog.addFireLensLogRouter({
|
|
162
165
|
taskDefinition: this.taskDefinition,
|
|
163
|
-
cpu:
|
|
164
|
-
memoryLimitMiB:
|
|
166
|
+
cpu: fireLensSidecarCpu,
|
|
167
|
+
memoryLimitMiB: fireLensSidecarMemoryMiB,
|
|
165
168
|
firelensConfigBucketArn: this.FIRELENS_CONFIG_BUCKET_ARN,
|
|
166
169
|
firelensConfigFilePath: this.FIRELENS_CONFIG_FILE_PATH,
|
|
167
170
|
serviceName: props.serviceName,
|
|
@@ -298,4 +301,21 @@ class DatadogSideCarValidator {
|
|
|
298
301
|
return result;
|
|
299
302
|
}
|
|
300
303
|
}
|
|
301
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWZhcmdhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBQzNDLGdFQUFnRTtBQUNoRSwyQ0FBMkM7QUFDM0MseUNBQXlDO0FBQ3pDLHFDQUFxQztBQUNyQyxxQ0FBa0M7QUFDbEMsOEZBQXdGO0FBOER4RixJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkI7O09BRUc7SUFDSCw2Q0FBTSxDQUFBO0FBQ1IsQ0FBQyxFQUxXLFNBQVMseUJBQVQsU0FBUyxRQUtwQjtBQWdQRCxJQUFZLGtCQTBCWDtBQTFCRCxXQUFZLGtCQUFrQjtJQUM1Qjs7O09BR0c7SUFDSCw2RUFBYSxDQUFBO0lBRWI7Ozs7OztPQU1HO0lBQ0gsbUZBQWdCLENBQUE7SUFFaEI7OztPQUdHO0lBQ0gsbUdBQXdCLENBQUE7SUFFeEI7O09BRUc7SUFDSCwyREFBSSxDQUFBO0FBQ04sQ0FBQyxFQTFCVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQTBCN0I7QUFFRCxNQUFhLGlCQUFrQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBZ0R6RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUE1QkYsd0NBQW1DLEdBQWEsRUFBRSxDQUFDO1FBQ25ELGdDQUEyQixHQUFHLEVBQUUsQ0FBQztRQUNqQyw2Q0FBd0MsR0FBRyxHQUFHLENBQUM7UUFDL0Msc0NBQWlDLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLDBDQUFxQyxHQUFHLElBQUksQ0FBQztRQUM3QywrQ0FBMEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELHFDQUFnQyxHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO1FBQ3ZFLDZDQUF3QyxHQUFHLGtC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O1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLG1CQUFtQjtJQUN2QixZQUNtQixHQUFhLEVBQ2IsT0FBc0I7UUFEdEIsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFDdEMsQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlELE1BQU0sQ0FBQyxJQUFJLENBQUMsb0NBQW9DLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLDhDQUE4QyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlJLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLHVCQUF1QjtJQUMzQixZQUE2QixjQUF3QztRQUF4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7SUFBRyxDQUFDO0lBQ3pFLFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUM1SCxNQUFNLENBQUMsSUFBSSxDQUFDLDZFQUE2RSxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgKiBhcyBlY3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjcyc7XG5pbXBvcnQgKiBhcyBlbGJ2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mic7XG5pbXBvcnQgKiBhcyBzc20gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNzbSc7XG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgZGF0YWRvZyBmcm9tICcuL2RhdGFkb2cnO1xuaW1wb3J0IHsgU3ByaW5nIH0gZnJvbSAnLi9zcHJpbmcnO1xuaW1wb3J0IHsgRGF0YWRvZ1NlcnZpY2VDYXRhbG9nRW50cnkgfSBmcm9tICcuLi9kYXRhZG9ndjIvZGF0YWRvZy1zZXJ2aWNlLWNhdGFsb2ctZW50cnknO1xuXG4vKipcbiAqIEZhcmdhdGUgVGFzayBEZWZpbml0aW9uIFByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc3RhZ2Ugb2YgdGhlIHNlcnZpY2UsIGUuZy4gJ3Byb2QnLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE5hbWUgb2YgdGhlIHNlcnZpY2UuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VydmljZSwgZS5nLiB0aGUgZ2l0IGhhc2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29tbWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJhbWV3b3JrcyBpbiB1c2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gTm8gZnJhbWV3b3Jrcy5cbiAgICovXG4gIHJlYWRvbmx5IGZyYW1ld29ya3M/OiBGcmFtZXdvcmtbXTtcblxuICAvKipcbiAgICogVGhlIFZQQyBvZiB0aGUgc2VydmljZSdzIGVjcy5DbHVzdGVyIGlmIG5vIGNsdXN0ZXIgaXMgZXhwbGljaXRseSBwYXNzZWQgYXMgcHJvcC5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFRoZSBGYXJnYXRlIGNsdXN0ZXIgdG8gcnVuIHRoZSBzZXJ2aWNlIGluLlxuICAgKiBJZiBub3QgbnVsbCwgdGhlIGNsdXN0ZXIudnBjIE1VU1QgbWF0Y2ggdGhlIHZwYyBwcm92aWRlZCBhcyBkaXJlY3QgYXJndW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBDcmVhdGUgYSBuZXcgRmFyZ2F0ZSBjbHVzdGVyIHdpdGggZGVmYXVsdCBwcm9wZXJ0aWVzXG4gICAqL1xuICByZWFkb25seSBjbHVzdGVyPzogZWNzLklDbHVzdGVyO1xuXG4gIC8qKlxuICAgKiBDb250YWluZXIgZGVmaW5pdGlvbiBvcHRpb25zIGxpa2UgaW1hZ2UsIGNwdSwgbWVtb3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbjogQ29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEZhcmdhdGUgVGFzayBEZWZpbml0aW9uIFByb3BlcnRpZXMuXG4gICAqL1xuICByZWFkb25seSBmYXJnYXRlT3B0aW9uczogRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHM7XG5cbiAgLyoqXG4gICAqIExvYWRiYWxhbmNlciBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyT3B0aW9ucz86IExvYWRCYWxhbmNlck9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIERhdGFkb2cgaW50ZWdyYXRpb24gcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWRvZ09wdGlvbnM/OiBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcztcbn1cblxuZXhwb3J0IGVudW0gRnJhbWV3b3JrIHtcbiAgLyoqXG4gICAqIFNwcmluZyBGcmFtZXdvcmssIFNwcmluZyBCb290LCBhbmQgU3ByaW5nIENsb3VkIEFXUy5cbiAgICovXG4gIFNQUklORyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJEZWZpbml0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgaW1hZ2UgdXNlZCB0byBzdGFydCBhIGNvbnRhaW5lci5cbiAgICpcbiAgICogVGhpcyBzdHJpbmcgaXMgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBEb2NrZXIgZGFlbW9uLlxuICAgKiBJbWFnZXMgaW4gdGhlIERvY2tlciBIdWIgcmVnaXN0cnkgYXJlIGF2YWlsYWJsZSBieSBkZWZhdWx0LlxuICAgKiBPdGhlciByZXBvc2l0b3JpZXMgYXJlIHNwZWNpZmllZCB3aXRoIGVpdGhlciByZXBvc2l0b3J5LXVybC9pbWFnZTp0YWcgb3IgcmVwb3NpdG9yeS11cmwvaW1hZ2VcXEBkaWdlc3QuXG4gICAqL1xuICByZWFkb25seSBpbWFnZTogZWNzLkNvbnRhaW5lckltYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHBhc3MgdG8gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogU29tZSBEYXRhZG9nIHNwZWNpZmljIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgdG8gYmUgc2V0LFxuICAgKiBiZWNhdXNlIHRoZXkgYXJlIHNldCBhdXRvbWF0aWNhbGx5IG9yIGNvbXB1dGVkIGZyb20gb3RoZXIgYXR0cmlidXRlcy5cbiAgICogVGhlc2UgYXJlOlxuICAgKiAqIEREX0VOVjogU2V0IHNhbWUgYXMgcHJvcCBzdGFnZVxuICAgKiAqIEREX1NFUlZJQ0U6IFNldCBzYW1lIGFzIHByb3Agc2VydmljZU5hbWVcbiAgICogKiBERF9WRVJTSU9OOiBTZXQgc2FtZSBhcyBwcm9wIHZlcnNpb25cbiAgICogKiBERF9UQUdTOiBTZXQgc2FtZSBhcyBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcyNhZGRpdGlvbmFsVGFnc1xuICAgKiAqIEREX0xPR1NfSU5KRUNUSU9OOiB0cnVlXG4gICAqIE90aGVyIEREXy1wcmVmaXhlZCB2YWlhYmxlIG1heSBiZSBhZGRlZCB0byB0aGlzIGxpc3QuXG4gICAqXG4gICAqIE90aGVyIEVudmlyb25tZW50IHZhcmlhYmxlcyBzZXQgYnkgZGVmYXVsdCBhcmUgb3ZlcndyaXR0ZW4gaWYgcGFzc2VkLlxuICAgKiBUaGVzZSBhcmU6XG4gICAqICogRERfU0VSVklDRV9NQVBQSU5HOiBkYXRhYmFzZTpmYXJnYXRlLXdlYi1hcHAtYXVyb3JhLGphdmEtYXdzLXNkazpmYXJnYXRlLXdlYi1hcHAtYXdzLXNkayxrYWZrYTpmYXJnYXRlLXdlYi1hcHAta2Fma2EsbXlzcWw6ZmFyZ2F0ZS13ZWItYXBwLWF1cm9yYVxuICAgKiAqIEREX1RSQUNFX1NBTVBMRV9SQVRFOiAxLjBcbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIE5vIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIHNlY3JldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gTm8gc2VjcmV0IGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAgICovXG4gIHJlYWRvbmx5IHNlY3JldHM/OiB7IFtrZXk6IHN0cmluZ106IGVjcy5TZWNyZXQgfTtcblxuICAvKipcbiAgICogVGhlIGhlYWx0aCBjaGVjayBjb21tYW5kIGFuZCBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIEhlYWx0aCBjaGVjayBjb25maWd1cmF0aW9uIGZyb20gY29udGFpbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2s/OiBlY3MuSGVhbHRoQ2hlY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFyZ2F0ZVRhc2tEZWZpbml0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBjcHUgdW5pdHMgdXNlZCBieSB0aGUgdGFzay4gRm9yIHRhc2tzIHVzaW5nIHRoZSBGYXJnYXRlIGxhdW5jaCB0eXBlLFxuICAgKiB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCB5b3UgbXVzdCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzLFxuICAgKiB3aGljaCBkZXRlcm1pbmVzIHlvdXIgcmFuZ2Ugb2YgdmFsaWQgdmFsdWVzIGZvciB0aGUgbWVtb3J5IHBhcmFtZXRlcjpcbiAgICpcbiAgICogMjU2ICguMjUgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogNTEyICgwLjUgR0IpLCAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQilcbiAgICpcbiAgICogNTEyICguNSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKVxuICAgKlxuICAgKiAxMDI0ICgxIHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQiksIDUxMjAgKDUgR0IpLCA2MTQ0ICg2IEdCKSwgNzE2OCAoNyBHQiksIDgxOTIgKDggR0IpXG4gICAqXG4gICAqIDIwNDggKDIgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogQmV0d2VlbiA0MDk2ICg0IEdCKSBhbmQgMTYzODQgKDE2IEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpXG4gICAqXG4gICAqIDQwOTYgKDQgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogQmV0d2VlbiA4MTkyICg4IEdCKSBhbmQgMzA3MjAgKDMwIEdCKSBpbiBpbmNyZW1lbnRzIG9mIDEwMjQgKDEgR0IpXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgNTEyXG4gICAqL1xuICByZWFkb25seSBjcHU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCAoaW4gTWlCKSBvZiBtZW1vcnkgdXNlZCBieSB0aGUgdGFzay4gRm9yIHRhc2tzIHVzaW5nIHRoZSBGYXJnYXRlIGxhdW5jaCB0eXBlLFxuICAgKiB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCB5b3UgbXVzdCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzLCB3aGljaCBkZXRlcm1pbmVzIHlvdXIgcmFuZ2Ugb2YgdmFsaWQgdmFsdWVzIGZvciB0aGUgY3B1IHBhcmFtZXRlcjpcbiAgICpcbiAgICogNTEyICgwLjUgR0IpLCAxMDI0ICgxIEdCKSwgMjA0OCAoMiBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogMjU2ICguMjUgdkNQVSlcbiAgICpcbiAgICogMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogNTEyICguNSB2Q1BVKVxuICAgKlxuICAgKiAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpLCA1MTIwICg1IEdCKSwgNjE0NCAoNiBHQiksIDcxNjggKDcgR0IpLCA4MTkyICg4IEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAxMDI0ICgxIHZDUFUpXG4gICAqXG4gICAqIEJldHdlZW4gNDA5NiAoNCBHQikgYW5kIDE2Mzg0ICgxNiBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiAyMDQ4ICgyIHZDUFUpXG4gICAqXG4gICAqIEJldHdlZW4gODE5MiAoOCBHQikgYW5kIDMwNzIwICgzMCBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKSAtIEF2YWlsYWJsZSBjcHUgdmFsdWVzOiA0MDk2ICg0IHZDUFUpXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgMTAyNFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5TGltaXRNaUI6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVzaXJlZCBjb3VudCBvZiBydW5uaW5nIHRhc2tzXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBXaGVuIGNyZWF0aW5nIHRoZSBzZXJ2aWNlLCBkZWZhdWx0IGlzIDE7IHdoZW4gdXBkYXRpbmcgdGhlIHNlcnZpY2UsIGRlZmF1bHQgdXNlc1xuICAgKiB0aGUgY3VycmVudCB0YXNrIG51bWJlci5cbiAgICovXG4gIHJlYWRvbmx5IGRlc2lyZWRDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG9wZXJhdGluZyBzeXN0ZW0gdGhhdCB5b3VyIHRhc2sgZGVmaW5pdGlvbnMgYXJlIHJ1bm5pbmcgb24uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBVc2luZyBlY3MuT3BlcmF0aW5nU3lzdGVtRmFtaWx5LkxJTlVYIGFuZCBlY3MuQ3B1QXJjaGl0ZWN0dXJlLlg4Nl82NFxuICAgKi9cbiAgcmVhZG9ubHkgcnVudGltZVBsYXRmb3JtPzogZWNzLlJ1bnRpbWVQbGF0Zm9ybTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lclJ1bGUge1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM6IGVsYnYyLkxpc3RlbmVyQ29uZGl0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEJhbGFuY2VyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBMaXN0ZW5lciBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlclxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXI6IGVsYnYyLklBcHBsaWNhdGlvbkxpc3RlbmVyO1xuXG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBwYXRoIHBhdHRlcm5zIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIFRoZSBtYXhpbXVtIHNpemUgb2YgZWFjaCBzdHJpbmcgaXMgMTI4IGNoYXJhY3RlcnMuXG4gICAqIFRoZSBjb21wYXJpc29uIGlzIGNhc2Ugc2Vuc2l0aXZlLlxuICAgKiBUaGUgZm9sbG93aW5nIHdpbGRjYXJkIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZDogKiAobWF0Y2hlcyAwIG9yIG1vcmUgY2hhcmFjdGVycykgYW5kID8gKG1hdGNoZXMgZXhhY3RseSAxIGNoYXJhY3RlcikuXG4gICAqXG4gICAqIFVwZGF0ZSByZXF1aXJlczogTm8gaW50ZXJydXB0aW9uXG4gICAqL1xuICByZWFkb25seSBsaXN0ZW5lclJ1bGVzOiBMaXN0ZW5lclJ1bGVbXTtcblxuICAvKipcbiAgICogIEhlYWx0aCBjaGVjayBvcHRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgaGVhbHRoQ2hlY2s6IGVsYnYyLkhlYWx0aENoZWNrO1xuXG4gIC8qKlxuICAgKiAgSGVhbHRoIGNoZWNrIGdyYWNlIHBlcmlvZC5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrR3JhY2VQZXJpb2Q6IGNkay5EdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgcGVyaW9kIGR1cmluZyB3aGljaCB0aGUgbG9hZCBiYWxhbmNlciBzZW5kcyBhIG5ld2x5IHJlZ2lzdGVyZWQgdGFyZ2V0IGEgbGluZWFybHkgaW5jcmVhc2luZyBzaGFyZSBvZiB0aGUgdHJhZmZpYyB0byB0aGUgdGFyZ2V0IGdyb3VwLlxuXG4gICAqVGhlIHJhbmdlIGlzIDMwLTkwMCBzZWNvbmRzICgxNSBtaW51dGVzKS5cblxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAqL1xuICByZWFkb25seSBzbG93U3RhcnQ/OiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSBmb3IgRWxhc3RpYyBMb2FkIEJhbGFuY2luZyB0byB3YWl0IGJlZm9yZSBkZXJlZ2lzdGVyaW5nIGEgdGFyZ2V0LlxuXG4gICAqIFRoZSByYW5nZSBpcyAwLTM2MDAgc2Vjb25kcy5cblxuICAgKiBAZGVmYXVsdFZhbHVlIDVcbiAgKi9cbiAgcmVhZG9ubHkgZGVyZWdpc3RyYXRpb25EZWxheT86IGNkay5EdXJhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgQ1BVIHVuaXRzIHRvIHJlc2VydmUgZm9yIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSA2NFxuICAgKi9cbiAgcmVhZG9ubHkgY3B1PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IChpbiBNaUIpIG9mIG1lbW9yeSB0byBwcmVzZW50IHRvIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIElmIHlvdXIgY29udGFpbmVyIGF0dGVtcHRzIHRvIGV4Y2VlZCB0aGUgYWxsb2NhdGVkIG1lbW9yeSwgdGhlIGNvbnRhaW5lclxuICAgKiBpcyB0ZXJtaW5hdGVkLlxuICAgKlxuICAgKiBBdCBsZWFzdCBvbmUgb2YgbWVtb3J5TGltaXRNaUIgYW5kIG1lbW9yeVJlc2VydmF0aW9uTWlCIGlzIHJlcXVpcmVkIGZvciBub24tRmFyZ2F0ZSBzZXJ2aWNlcy5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIDEyOFxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5TGltaXRNaUI/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2dnaW5nIG1vZGUgZm9yIHRoZSBzZXJ2aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gVXNpbmcgdGhlIERhdGFkb2cgbG9nIGZvcndhcmRlciBsYW1iZGEgcHJvdmlkZWQgYnkgdGhlIGRhdGFkb2ctaW50ZWdyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nTW9kZUZvclNlcnZpY2U/OiBEYXRhRG9nTG9nZ2luZ01vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2dnaW5nIG1vZGUgZm9yIHRoZSBEYXRhZG9nIGFnZW50IHNpZGVjYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBObyBsb2dzIGluIERhdGFkb2csIENsb3Vkd2F0Y2ggb25seS5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50PzogRGF0YURvZ0xvZ2dpbmdNb2RlO1xuXG4gIC8qKlxuICAgKiBHRVQgZW5kcG9pbnRzIHRvIGlnbm9yZSBpbiBEYXRhZG9nJ3MgQVBNIG92ZXJ2aWV3LiBUaGlzIGlzIHVzZWZ1bCB0byBmaWx0ZXIgb3V0IGFsbCBoZWFsdGggY2hlY2sgY2FsbHMuXG5cbiAgICAqIEBkZWZhdWx0VmFsdWUgLSBObyBlbmRwb2ludHMgYXJlIGlnbm9yZWQuXG4gICAgKi9cbiAgcmVhZG9ubHkgYXBtR2V0RW5kcG9pbnRzVG9JZ25vcmU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGlmIHRoZSBEYXRhZG9nIGFnZW50IHNpZGVjYXIgaXMgbWFya2VkIGFzIGVzc2VudGlhbC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIHRydWUuXG4gICAqL1xuICByZWFkb25seSBkYXRhZG9nU2lkZWNhckVzc2VudGlhbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIGRvY2tlciBpbWFnZSB0YWcgZm9yIGRhdGFkb2cgc2lkZWNhclxuICAgKiBAZGVmYXVsdFZhbHVlIC0gJ2xhdGVzdCdcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlY2FyVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHlvdSBzZXQgdXAgYSByZXN0YXJ0IHBvbGljeSBmb3IgYSBjb250YWluZXIsIEFtYXpvbiBFQ1MgY2FuIHJlc3RhcnQgdGhlIGNvbnRhaW5lciB3aXRob3V0IG5lZWRpbmcgdG8gcmVwbGFjZSB0aGUgdGFza1xuICAgKiBAZGVmYXVsdFZhbHVlIC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUmVzdGFydFBvbGljeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICogVGhlIGV4aXQgY29kZXMgdG8gYmUgaWdub3JlZCBieSB0aGUgcmVzdGFydCBwb2xpY3lcbiAgKiBAZGVmYXVsdFZhbHVlIC0gWzBdXG4gICovXG4gIHJlYWRvbmx5IHJlc3RhcnRJZ25vcmVkRXhpdENvZGVzPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBhZGRpdGlvbmFsIHRhZ3MsIHdoaWNoIGFyZSBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdHMsXG4gICAqIFdoZW4geW91IGRlZmluZSBjdXN0b20gdGFncyB3ZSB3b3VsZCBiZSBnbGFkIGlmIHlvdSBjb250YWN0IHVzLlxuICAgKiBXZSB3b3VsZCBsaWtlIHRvIGxlYXJuIGFib3V0IHlvdXIgdXNlIGNhc2VzLlxuICAgKlxuICAgKiBEZWZhdWx0IHRhZ3MgYXJlIG5vdCBhbGxvd2VkIHRvIGJlIG92ZXJyaWRkZW4hXG4gICAqXG4gICAqIERlZmF1bHRzIGFyZTpcbiAgICogKiBlbnY6IFNldCB0byBSaW9GYXJnYXRlU2VydmljZVByb3BzI3N0YWdlIHByb3BcbiAgICogKiBzZXJ2aWNlOiBTZXQgdG8gUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyNzZXJ2aWNlTmFtZSBwcm9wXG4gICAqICogdmVyc2lvbjogU2V0IHRvIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMjdmVyc2lvbiBwcm9wXG4gICAqICogYWNjb3VudF9pZDokXFx7YWNjb3VudElEXFx9XG4gICAqICogYWNjb3VudF9uYW1lOiRcXHthY2NvdW50TmFtZVxcfVxuICAgKiAqIHJlZ2lvbjokXFx7QVdTUmVnaW9uXFx9XG4gICAqICogdGVhbTokXFx7dGVhbU5hbWUgZnJvbSBzc20gcGFyYW0gL2NvbmZpZy90ZWFtL25hbWVcXH1cbiAgICogKiB0ZWFtX2lkZW50aWZpZXI6JFxce3RlYW1JZGVudGlmaWVyIGZyb20gc3NtIHBhcmFtIC9jb25maWcvdGVhbS9pZGVudGlmaWVyXFx9XG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBlbnVtIERhdGFEb2dMb2dnaW5nTW9kZSB7XG4gIC8qKlxuICAgKiBGb3J3YXJkIGxvZ3MgZGlyZWN0bHkgdG8gRGF0YWRvZyB1c2luZyBBV1MgRmlyZUxlbnMgYXMgbG9nIHJvdXRlcixcbiAgICogc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9lY3NfZmFyZ2F0ZS8/dGFiPWZsdWVudGJpdGFuZGZpcmVsZW5zI2xvZy1jb2xsZWN0aW9uLlxuICAgKi9cbiAgQVdTX0ZJUkVfTEVOUyxcblxuICAvKipcbiAgICogU3RvcmUgbG9ncyBpbiBBV1MgQ2xvdWR3YXRjaCBhbmQgdXNlIHRoZSBSSU8gY3VzdG9taXplZCBEYXRhZG9nIGxvZyBmb3J3YXJkZXIgbGFtYmRhIGZyb20gdGhlIGxlZ2FjeVxuICAgKiBkYXRhZG9nLWludGVncmF0aW9uLCB0byBmb3J3YXJkIHRoZSBsb2dzIHRvIERhdGFkb2csXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9iaXRidWNrZXQuY29sbGFib3JhdGlvbi1tYW4uY29tL3Byb2plY3RzL1JJT0RFVi9yZXBvcy9kYXRhZG9nLWludGVncmF0aW9uL2Jyb3dzZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgREFUQURPR19GT1JXQVJERVJfTEFNQkRBXG4gICAqL1xuICBGT1JXQVJERVJfTEFNQkRBLFxuXG4gIC8qKlxuICAgKiBTdG9yZSBsb2dzIGluIEFXUyBDbG91ZHdhdGNoIGFuZCB1c2UgdGhlIERhdGFkb2cgbG9nIGZvcndhcmRlciBsYW1iZGEgdG8gZm9yd2FyZCB0aGUgbG9ncyB0byBEYXRhZG9nLFxuICAgKiBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2Vjc19mYXJnYXRlLz90YWI9bG9nZHJpdmVyI2xvZy1jb2xsZWN0aW9uLlxuICAgKi9cbiAgREFUQURPR19GT1JXQVJERVJfTEFNQkRBLFxuXG4gIC8qKlxuICAgKiBPbmx5IGxvZyB0byBBV1MgQ2xvdWR3YXRjaCB3aXRob3V0IGZvcndhcmRpbmcgdGhlIGxvZ3MgdG8gRGF0YWRvZy5cbiAgICovXG4gIE5PTkUsXG59XG5cbmV4cG9ydCBjbGFzcyBSaW9GYXJnYXRlU2VydmljZSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IGltcGxlbWVudHMgZWMyLklDb25uZWN0YWJsZSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRERfRU5WX0RFTllfTElTVCA9IFtcbiAgICAnRERfRU5WJyxcbiAgICAnRERfVEFHUycsXG4gICAgJ0REX1NFUlZJQ0UnLFxuICAgICdERF9WRVJTSU9OJyxcbiAgICAnRERfTE9HU19JTkpFQ1RJT04nLFxuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEREX1RBR19ERU5ZX0xJU1QgPSBbXG4gICAgJ2VudicsXG4gICAgJ3NlcnZpY2UnLFxuICAgICd2ZXJzaW9uJyxcbiAgICAnYWNjb3VudF9pZCcsXG4gICAgJ2FjY291bnRfbmFtZScsXG4gICAgJ3JlZ2lvbicsXG4gICAgJ3RlYW0nLFxuICAgICd0ZWFtX2lkZW50aWZpZXInLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9BUE1fR0VUX0VORFBPSU5UU19UT19JR05PUkU6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfQ1BVID0gNjQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfTUVNT1JZX0xJTUlUX01JQiA9IDEyODtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9FU1NFTlRJQUwgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19FTkFCTEVfUkVTVEFSVF9QT0xJQ1kgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19SRVNUQVJUX0lHTk9SRURfRVhJVF9DT0RFUyA9IFswXTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfU0VSVklDRSA9IERhdGFEb2dMb2dnaW5nTW9kZS5GT1JXQVJERVJfTEFNQkRBO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTE9HR0lOR19NT0RFX0ZPUl9EQVRBRE9HX1NJREVDQVIgPSBEYXRhRG9nTG9nZ2luZ01vZGUuTk9ORTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RFUkVHSVNUUkFUSU9OX0RFTEFZID0gY2RrLkR1cmF0aW9uLnNlY29uZHMoNSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9TTE9XX1NUQVJUID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19TSURFQ0FSX1RBRyA9ICdsYXRlc3QnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgTE9HX1JPVVRFUl9DUFUgPSA2NDtcbiAgcHJpdmF0ZSByZWFkb25seSBMT0dfUk9VVEVSX01FTU9SWV9MSU1JVF9NSUIgPSA2NDtcblxuICBwcml2YXRlIHJlYWRvbmx5IEZJUkVMRU5TX0NPTkZJR19CVUNLRVRfQVJOID0gJ2Fybjphd3M6czM6Ojo1NzcxNDY4OTc3ODUtZXUtd2VzdC0xLWZpcmVsZW5zLWNvbmZpZ3VyYXRpb24tYnVja2V0JztcbiAgcHJpdmF0ZSByZWFkb25seSBGSVJFTEVOU19DT05GSUdfRklMRV9QQVRIID0gJy9wYXJzZS1qc29uLmNvbmYnO1xuXG4gIHJlYWRvbmx5IHNlcnZpY2VDb250YWluZXJEZWZpbml0aW9uOiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbjtcbiAgcmVhZG9ubHkgZGF0YWRvZ1NpZGVDYXJDb250YWluZXJEZWZpbml0aW9uOiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbjtcbiAgcmVhZG9ubHkgbG9nUm91dGVyQ29udGFpbmVyRGVmaW5pdGlvbj86IGVjcy5Db250YWluZXJEZWZpbml0aW9uO1xuICByZWFkb25seSB0YXNrRGVmaW5pdGlvbjogZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvbjtcblxuICByZWFkb25seSBjb25uZWN0aW9uczogZWMyLkNvbm5lY3Rpb25zO1xuICByZWFkb25seSBzZXJ2aWNlOiBlY3MuRmFyZ2F0ZVNlcnZpY2U7XG4gIHJlYWRvbmx5IHRhcmdldEdyb3VwOiBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwfHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9GYXJnYXRlU2VydmljZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGxvYWRCYWxhbmNlck9wdGlvbnMsXG4gICAgICB2cGMsXG4gICAgICBjbHVzdGVyLFxuICAgICAgZmFyZ2F0ZU9wdGlvbnMsXG4gICAgICBkYXRhZG9nT3B0aW9ucyxcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbixcbiAgICAgIHN0YWdlLFxuICAgICAgdmVyc2lvbixcbiAgICAgIGZyYW1ld29ya3MsXG4gICAgfSA9IHByb3BzO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IERlbnlMaXN0ZWRLZXlWYWxpZGF0b3IoXG4gICAgICBSaW9GYXJnYXRlU2VydmljZS5ERF9FTlZfREVOWV9MSVNULFxuICAgICAgcHJvcHMuY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5lbnZpcm9ubWVudCxcbiAgICAgIGl0ID0+IGBFbnZpcm9ubWVudCAke2l0fSBpcyBub3QgYWxsb3dlZCB0byBiZSBzZXQuIFRoaXMgdmFsdWUgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoZSBhY2NvdW50IG9yIG90aGVyIHByb3BlcnRpZXMuYCxcbiAgICApKTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihuZXcgRGVueUxpc3RlZEtleVZhbGlkYXRvcihcbiAgICAgIFJpb0ZhcmdhdGVTZXJ2aWNlLkREX1RBR19ERU5ZX0xJU1QsXG4gICAgICBwcm9wcy5kYXRhZG9nT3B0aW9ucz8uYWRkaXRpb25hbFRhZ3MsXG4gICAgICBpdCA9PiBgVGFnICR7aXR9IGlzIG5vdCBhbGxvd2VkIHRvIGJlIHNldC4gVGhpcyB2YWx1ZSB3aWxsIGJlIGluZmVycmVkIGZyb20gdGhlIGFjY291bnQgb3Igb3RoZXIgcHJvcGVydGllcy5gLFxuICAgICkpO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IENsdXN0ZXJWcGNWYWxpZGF0b3IoXG4gICAgICBwcm9wcy52cGMsXG4gICAgICBwcm9wcy5jbHVzdGVyLFxuICAgICkpO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IERhdGFkb2dTaWRlQ2FyVmFsaWRhdG9yKFxuICAgICAgcHJvcHMuZGF0YWRvZ09wdGlvbnMsXG4gICAgKSk7XG5cbiAgICBjb25zdCBmYXJnYXRlQ2x1c3RlciA9IGNsdXN0ZXIgPz8gbmV3IGVjcy5DbHVzdGVyKHRoaXMsICdDbHVzdGVyJywge1xuICAgICAgdnBjOiB2cGMsXG4gICAgfSk7XG4gICAgdGhpcy50YXNrRGVmaW5pdGlvbiA9IG5ldyBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uKHRoaXMsICdUYXNrRGVmaW5pdGlvbicsIHtcbiAgICAgIGNwdTogZmFyZ2F0ZU9wdGlvbnMuY3B1LFxuICAgICAgbWVtb3J5TGltaXRNaUI6IGZhcmdhdGVPcHRpb25zLm1lbW9yeUxpbWl0TWlCLFxuICAgICAgcnVudGltZVBsYXRmb3JtOiB7XG4gICAgICAgIGNwdUFyY2hpdGVjdHVyZTogZmFyZ2F0ZU9wdGlvbnMucnVudGltZVBsYXRmb3JtPy5jcHVBcmNoaXRlY3R1cmUgPz8gZWNzLkNwdUFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgICAgIG9wZXJhdGluZ1N5c3RlbUZhbWlseTogZmFyZ2F0ZU9wdGlvbnMucnVudGltZVBsYXRmb3JtPy5vcGVyYXRpbmdTeXN0ZW1GYW1pbHkgPz8gZWNzLk9wZXJhdGluZ1N5c3RlbUZhbWlseS5MSU5VWCxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgYWNjb3VudE5hbWUgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdBY2NvdW50TmFtZScsICcvY29uZmlnL2FjY291bnQvbmFtZScpLnN0cmluZ1ZhbHVlO1xuICAgIGNvbnN0IHRlYW1OYW1lID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnVGVhbU5hbWUnLCAnL2NvbmZpZy90ZWFtL25hbWUnKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCB0ZWFtSWRlbnRpZmllciA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgJ1RlYW1JZGVudGlmaWVyJywgJy9jb25maWcvdGVhbS9pZGVudGlmaWVyJykuc3RyaW5nVmFsdWU7XG5cbiAgICBjb25zdCBkYXRhZG9nU2l0ZSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgJ0RhdGFkb2dTaXRlJywgJy9yaW8vY29uZmlnL2RhdGFkb2ctaW50ZWdyYXRpb24vc2l0ZScpLnN0cmluZ1ZhbHVlO1xuICAgIGNvbnN0IGRhdGFkb2dBcGlLZXlQYXJhbWV0ZXIgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdEYXRhZG9nQXBpS2V5JywgJy9yaW8vY29uZmlnL2RhdGFkb2ctaW50ZWdyYXRpb24vYXBpLWtleScpO1xuXG4gICAgY29uc3QgZGF0YWRvZ1NpZGVjYXJDcHUgPSBkYXRhZG9nT3B0aW9ucz8uY3B1ID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfQ1BVO1xuICAgIGNvbnN0IGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCID0gZGF0YWRvZ09wdGlvbnM/Lm1lbW9yeUxpbWl0TWlCID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfTUVNT1JZX0xJTUlUX01JQjtcbiAgICBjb25zdCBkYXRhZG9nU2lkZWNhckVzc2VudGlhbCA9IGRhdGFkb2dPcHRpb25zPy5kYXRhZG9nU2lkZWNhckVzc2VudGlhbCA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX0VTU0VOVElBTDtcbiAgICBjb25zdCBkYXRhRG9nRW5hYmxlUmVzdGFydFBvbGljeSA9IGRhdGFkb2dPcHRpb25zPy5lbmFibGVSZXN0YXJ0UG9saWN5ID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX0VOQUJMRV9SRVNUQVJUX1BPTElDWTtcblxuICAgIGZ1bmN0aW9uIGdldFJlc3RhcnRJZ25vcmVkRXhpdENvZGVzKFxuICAgICAgZW5hYmxlUmVzdGFydFBvbGljeTogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgICAgIHJlc3RhcnRJZ25vcmVkRXhpdENvZGVzOiBudW1iZXJbXSB8IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHRJZ25vcmVkRXhpdENvZGVzOiBudW1iZXJbXSxcbiAgICApOiBudW1iZXJbXSB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoZW5hYmxlUmVzdGFydFBvbGljeSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAoZW5hYmxlUmVzdGFydFBvbGljeSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gcmVzdGFydElnbm9yZWRFeGl0Q29kZXMgPz8gWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRJZ25vcmVkRXhpdENvZGVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGFEb2dyZXN0YXJ0SWdub3JlZEV4aXRDb2RlcyA9IGdldFJlc3RhcnRJZ25vcmVkRXhpdENvZGVzKFxuICAgICAgZGF0YURvZ0VuYWJsZVJlc3RhcnRQb2xpY3ksXG4gICAgICBkYXRhZG9nT3B0aW9ucz8ucmVzdGFydElnbm9yZWRFeGl0Q29kZXMsXG4gICAgICB0aGlzLkRFRkFVTFRfREFUQURPR19SRVNUQVJUX0lHTk9SRURfRVhJVF9DT0RFUyxcbiAgICApO1xuXG4gICAgY29uc3QgbG9nZ2luZ01vZGVGb3JTZXJ2aWNlID0gZGF0YWRvZ09wdGlvbnM/LmxvZ2dpbmdNb2RlRm9yU2VydmljZSA/PyB0aGlzLkRFRkFVTFRfTE9HR0lOR19NT0RFX0ZPUl9TRVJWSUNFO1xuICAgIGNvbnN0IGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID0gZGF0YWRvZ09wdGlvbnM/LmxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID8/IHRoaXMuREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX0RBVEFET0dfU0lERUNBUjtcbiAgICBjb25zdCBmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkID1cbiAgICAgIGxvZ2dpbmdNb2RlRm9yU2VydmljZSA9PT0gRGF0YURvZ0xvZ2dpbmdNb2RlLkFXU19GSVJFX0xFTlMgfHxcbiAgICAgIGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID09PSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUztcblxuICAgIGxldCBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHM7XG4gICAgbGV0IHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQjtcblxuICAgIGlmIChmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkKSB7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHMgPSBmYXJnYXRlT3B0aW9ucy5jcHUgLSBkYXRhZG9nU2lkZWNhckNwdSAtIHRoaXMuTE9HX1JPVVRFUl9DUFU7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyTWVtb3J5TGltaXRNaUIgPSBmYXJnYXRlT3B0aW9ucy5tZW1vcnlMaW1pdE1pQiAtIGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCIC0gdGhpcy5MT0dfUk9VVEVSX01FTU9SWV9MSU1JVF9NSUI7XG4gICAgICBkYXRhZG9nLmFkZEZpcmVsZW5zQ29uZmlnVXBsb2FkRnJvbVMzUGVybWlzc2lvbnMoe1xuICAgICAgICB0YXNrRGVmaW5pdGlvbjogdGhpcy50YXNrRGVmaW5pdGlvbixcbiAgICAgICAgZmlyZWxlbnNDb25maWdCdWNrZXRBcm46IHRoaXMuRklSRUxFTlNfQ09ORklHX0JVQ0tFVF9BUk4sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VydmljZUNvbnRhaW5lckNwdVVuaXRzID0gZmFyZ2F0ZU9wdGlvbnMuY3B1IC0gZGF0YWRvZ1NpZGVjYXJDcHU7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyTWVtb3J5TGltaXRNaUIgPSBmYXJnYXRlT3B0aW9ucy5tZW1vcnlMaW1pdE1pQiAtIGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2VDb250YWluZXJEZWZpbml0aW9uID0gdGhpcy50YXNrRGVmaW5pdGlvbi5hZGRDb250YWluZXIoc2VydmljZU5hbWUsIHtcbiAgICAgIGltYWdlOiBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uLmltYWdlLFxuICAgICAgY3B1OiBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHMsXG4gICAgICBtZW1vcnlMaW1pdE1pQjogc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgLi4uZGF0YWRvZy5nZXRGYXJnYXRlQ29udGFpbmVyRW52aXJvbm1lbnRWYXJpYWJsZXMoe1xuICAgICAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgICAgIHN0YWdlLFxuICAgICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICAgIHZlcnNpb24sXG4gICAgICAgICAgYWNjb3VudE5hbWUsXG4gICAgICAgICAgdGVhbU5hbWUsXG4gICAgICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICAgICAgYWRkaXRpb25hbFRhZ3M6IGRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLmNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uZW52aXJvbm1lbnQsXG4gICAgICB9LFxuICAgICAgZG9ja2VyTGFiZWxzOiB7XG4gICAgICAgIC4uLmRhdGFkb2cuZ2V0RmFyZ2F0ZURvY2tlckxhYmVscyh7IHN0YWdlLCBzZXJ2aWNlTmFtZSwgdmVyc2lvbiB9KSxcbiAgICAgIH0sXG4gICAgICBoZWFsdGhDaGVjazogY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5oZWFsdGhDaGVjayxcbiAgICAgIGxvZ2dpbmc6IGRhdGFkb2cuc2V0dXBMb2dnaW5nKHtcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIGFjY291bnROYW1lLFxuICAgICAgICB0ZWFtTmFtZSxcbiAgICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICAgIHN0YWdlLFxuICAgICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgICAgdmVyc2lvbixcbiAgICAgICAgZGF0YWRvZ0FwaUtleVBhcmFtZXRlcixcbiAgICAgICAgZGF0YWRvZ0xvZ2dpbmdNb2RlOiBsb2dnaW5nTW9kZUZvclNlcnZpY2UsXG4gICAgICAgIGRhdGFkb2dTaXRlLFxuICAgICAgICBjb250YWluZXJUeXBlOiAnc2VydmljZScsXG4gICAgICAgIGFkZGl0aW9uYWxUYWdzOiBkYXRhZG9nT3B0aW9ucz8uYWRkaXRpb25hbFRhZ3MsXG4gICAgICB9KSxcbiAgICAgIHNlY3JldHM6IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uc2VjcmV0cyxcbiAgICB9KTtcblxuICAgIGlmIChmcmFtZXdvcmtzPy5pbmNsdWRlcyhGcmFtZXdvcmsuU1BSSU5HKSkge1xuICAgICAgU3ByaW5nLmFsbG93UGFyYW1ldGVyU3RvcmVBY2Nlc3NGb3JTcHJpbmdDbG91ZEF3cyh0aGlzLCBzZXJ2aWNlTmFtZSwgdGhpcy50YXNrRGVmaW5pdGlvbi50YXNrUm9sZSk7XG4gICAgICBTcHJpbmcuYWxsb3dTZWNyZXRzTWFuYWdlckFjY2Vzc0ZvclNwcmluZ0Nsb3VkQXdzKHRoaXMsIHNlcnZpY2VOYW1lLCB0aGlzLnRhc2tEZWZpbml0aW9uLnRhc2tSb2xlKTtcbiAgICB9XG5cbiAgICBpZiAoZmlyZUxlbnNMb2dSb3V0ZXJSZXF1aXJlZCkge1xuICAgICAgdGhpcy5sb2dSb3V0ZXJDb250YWluZXJEZWZpbml0aW9uID0gZGF0YWRvZy5hZGRGaXJlTGVuc0xvZ1JvdXRlcih7XG4gICAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgICBjcHU6IHRoaXMuTE9HX1JPVVRFUl9DUFUsXG4gICAgICAgIG1lbW9yeUxpbWl0TWlCOiB0aGlzLkxPR19ST1VURVJfTUVNT1JZX0xJTUlUX01JQixcbiAgICAgICAgZmlyZWxlbnNDb25maWdCdWNrZXRBcm46IHRoaXMuRklSRUxFTlNfQ09ORklHX0JVQ0tFVF9BUk4sXG4gICAgICAgIGZpcmVsZW5zQ29uZmlnRmlsZVBhdGg6IHRoaXMuRklSRUxFTlNfQ09ORklHX0ZJTEVfUEFUSCxcbiAgICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuZGF0YWRvZ1NpZGVDYXJDb250YWluZXJEZWZpbml0aW9uID0gZGF0YWRvZy5hZGREYXRhZG9nU2lkZWNhcih7XG4gICAgICBzY29wZSxcbiAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgYWNjb3VudE5hbWUsXG4gICAgICB0ZWFtTmFtZSxcbiAgICAgIHRlYW1JZGVudGlmaWVyLFxuICAgICAgc3RhZ2UsXG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICBkYXRhZG9nQXBpS2V5UGFyYW1ldGVyLFxuICAgICAgZGF0YWRvZ1NpdGUsXG4gICAgICBkYXRhZG9nTG9nZ2luZ01vZGU6IGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50LFxuICAgICAgYXBtR2V0UmVzb3VyY2VzVG9JZ25vcmU6IGRhdGFkb2dPcHRpb25zPy5hcG1HZXRFbmRwb2ludHNUb0lnbm9yZSA/PyB0aGlzLkRFRkFVTFRfQVBNX0dFVF9FTkRQT0lOVFNfVE9fSUdOT1JFLFxuICAgICAgY3B1OiBkYXRhZG9nU2lkZWNhckNwdSxcbiAgICAgIG1lbW9yeUxpbWl0TWlCOiBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQixcbiAgICAgIGVzc2VudGlhbDogZGF0YWRvZ1NpZGVjYXJFc3NlbnRpYWwsXG4gICAgICBlbmFibGVSZXN0YXJ0UG9saWN5OiBkYXRhRG9nRW5hYmxlUmVzdGFydFBvbGljeSxcbiAgICAgIHJlc3RhcnRJZ25vcmVkRXhpdENvZGVzOiBkYXRhRG9ncmVzdGFydElnbm9yZWRFeGl0Q29kZXMsXG4gICAgICBjb250YWluZXJUYWc6IHByb3BzLmRhdGFkb2dPcHRpb25zPy5kYXRhZG9nU2lkZWNhclRhZyA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX1RBRywgLy8gVGhlc2UgYXJlIHBvc2l0aW9uYWwgcGFyYW1ldGVycyxcbiAgICAgIGFkZGl0aW9uYWxUYWdzOiBkYXRhZG9nT3B0aW9ucz8uYWRkaXRpb25hbFRhZ3MsXG4gICAgfSk7XG5cbiAgICBkYXRhZG9nLmVuc3VyZUxvZ2dpbmdBbmRNb25pdG9yaW5nQXJlUmVhZHlCZWZvcmVTZXJ2aWNlU3RhcnRzKHRoaXMpO1xuXG4gICAgY29uc3QgbG9hZEJhbGFuY2VyT3B0aW9uc0ZvckZhcmdhdGVTZXJ2aWNlID0gbG9hZEJhbGFuY2VyT3B0aW9uc1xuICAgICAgPyB7IGhlYWx0aENoZWNrR3JhY2VQZXJpb2Q6IGxvYWRCYWxhbmNlck9wdGlvbnMuaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZCB9XG4gICAgICA6IHt9O1xuXG4gICAgdGhpcy5zZXJ2aWNlID0gbmV3IGVjcy5GYXJnYXRlU2VydmljZSh0aGlzLCAnU2VydmljZScsIHtcbiAgICAgIGNsdXN0ZXI6IGZhcmdhdGVDbHVzdGVyLFxuICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICBjaXJjdWl0QnJlYWtlcjogeyByb2xsYmFjazogdHJ1ZSB9LFxuICAgICAgbWF4SGVhbHRoeVBlcmNlbnQ6IDIwMCxcbiAgICAgIG1pbkhlYWx0aHlQZXJjZW50OiAxMDAsXG4gICAgICBkZXNpcmVkQ291bnQ6IGZhcmdhdGVPcHRpb25zPy5kZXNpcmVkQ291bnQsXG4gICAgICAuLi5sb2FkQmFsYW5jZXJPcHRpb25zRm9yRmFyZ2F0ZVNlcnZpY2UsXG4gICAgICBwcm9wYWdhdGVUYWdzOiBlY3MuUHJvcGFnYXRlZFRhZ1NvdXJjZS5TRVJWSUNFLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuc2VydmljZS5jb25uZWN0aW9ucztcblxuICAgIGlmIChsb2FkQmFsYW5jZXJPcHRpb25zICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lclBvcnQgPSA0NDM7XG4gICAgICB0aGlzLnNlcnZpY2VDb250YWluZXJEZWZpbml0aW9uLmFkZFBvcnRNYXBwaW5ncyh7XG4gICAgICAgIGNvbnRhaW5lclBvcnQ6IGNvbnRhaW5lclBvcnQsXG4gICAgICAgIHByb3RvY29sOiBlY3MuUHJvdG9jb2wuVENQLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnRhcmdldEdyb3VwID0gbmV3IGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXAodGhpcywgJ1RhcmdldEdyb3VwJywge1xuICAgICAgICB2cGM6IHZwYyxcbiAgICAgICAgcG9ydDogY29udGFpbmVyUG9ydCxcbiAgICAgICAgcHJvdG9jb2w6IGVsYnYyLkFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUFMsXG4gICAgICAgIHRhcmdldFR5cGU6IGVsYnYyLlRhcmdldFR5cGUuSVAsXG4gICAgICAgIHRhcmdldHM6IFt0aGlzLnNlcnZpY2VdLFxuICAgICAgICBoZWFsdGhDaGVjazogbG9hZEJhbGFuY2VyT3B0aW9ucy5oZWFsdGhDaGVjayxcbiAgICAgICAgc2xvd1N0YXJ0OiBwcm9wcy5sb2FkQmFsYW5jZXJPcHRpb25zPy5zbG93U3RhcnQgPz8gdGhpcy5ERUZBVUxUX1NMT1dfU1RBUlQsXG4gICAgICAgIGRlcmVnaXN0cmF0aW9uRGVsYXk6IHByb3BzLmxvYWRCYWxhbmNlck9wdGlvbnM/LmRlcmVnaXN0cmF0aW9uRGVsYXkgPz8gdGhpcy5ERUZBVUxUX0RFUkVHSVNUUkFUSU9OX0RFTEFZLFxuICAgICAgfSk7XG5cbiAgICAgIGxvYWRCYWxhbmNlck9wdGlvbnMubGlzdGVuZXJSdWxlcy5mb3JFYWNoKCh7IHByaW9yaXR5LCBjb25kaXRpb25zIH0pID0+IHtcbiAgICAgICAgbG9hZEJhbGFuY2VyT3B0aW9ucy5saXN0ZW5lci5hZGRUYXJnZXRHcm91cHMoYFByaW9yaXR5JHtwcmlvcml0eX1MaXN0ZW5lclJ1bGVgLCB7XG4gICAgICAgICAgdGFyZ2V0R3JvdXBzOiBbdGhpcy50YXJnZXRHcm91cCBhcyBlbGJ2Mi5BcHBsaWNhdGlvblRhcmdldEdyb3VwXSxcbiAgICAgICAgICBwcmlvcml0eTogcHJpb3JpdHksXG4gICAgICAgICAgY29uZGl0aW9uczogY29uZGl0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBuZXcgRGF0YWRvZ1NlcnZpY2VDYXRhbG9nRW50cnkodGhpcywgJ0RhdGFkb2dTZXJ2aWNlQ2F0YWxvZ0VudHJ5Jywge1xuICAgICAgc2VydmljZU5hbWU6IHNlcnZpY2VOYW1lLFxuICAgICAgbGFuZ3VhZ2VzOiBbJ2phdmEnXSxcbiAgICAgIHNlcnZpY2VUeXBlOiAnd2ViJyxcbiAgICB9KTtcbiAgfVxufVxuXG5jbGFzcyBEZW55TGlzdGVkS2V5VmFsaWRhdG9yIGltcGxlbWVudHMgY29uc3RydWN0cy5JVmFsaWRhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVueUxpc3Q6IHN0cmluZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGljdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VHZW5lcmF0b3I6IChrZXlOYW1lOiBzdHJpbmcpID0+IHN0cmluZyxcbiAgKSB7fVxuXG4gIHZhbGlkYXRlKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIXRoaXMuZGljdCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICB0aGlzLmRlbnlMaXN0LmZvckVhY2goa2V5TmFtZSA9PiB7XG4gICAgICBpZiAodGhpcy5kaWN0ICYmIGtleU5hbWUgaW4gdGhpcy5kaWN0KSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHRoaXMubWVzc2FnZUdlbmVyYXRvcihrZXlOYW1lKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNsYXNzIENsdXN0ZXJWcGNWYWxpZGF0b3IgaW1wbGVtZW50cyBjb25zdHJ1Y3RzLklWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB2cGM6IGVjMi5JVnBjLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2x1c3Rlcj86IGVjcy5JQ2x1c3RlcixcbiAgKSB7fVxuXG4gIHZhbGlkYXRlKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcbiAgICBpZiAodGhpcy5jbHVzdGVyICYmIHRoaXMuY2x1c3Rlci52cGMudnBjSWQgIT09IHRoaXMudnBjLnZwY0lkKSB7XG4gICAgICByZXN1bHQucHVzaChgVGhlIFZQQyBwcm92aWRlZCBpbiB0aGUgY2x1c3RlciAoJHt0aGlzLmNsdXN0ZXIudnBjLm5vZGUuaWR9KSBNVVNUIG1hdGNoIHRoZSBWUEMgcHJvdmlkZWQgYXMgYXJndW1lbnQgKCR7dGhpcy52cGMubm9kZS5pZH0pLmApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNsYXNzIERhdGFkb2dTaWRlQ2FyVmFsaWRhdG9yIGltcGxlbWVudHMgY29uc3RydWN0cy5JVmFsaWRhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGF0YWRvZ09wdGlvbnM/OiBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcykge31cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLmRhdGFkb2dPcHRpb25zICYmIHRoaXMuZGF0YWRvZ09wdGlvbnMuZW5hYmxlUmVzdGFydFBvbGljeSA9PT0gZmFsc2UgJiYgdGhpcy5kYXRhZG9nT3B0aW9ucy5yZXN0YXJ0SWdub3JlZEV4aXRDb2Rlcykge1xuICAgICAgcmVzdWx0LnB1c2goJ1Jlc3RhcnRJZ25vcmVkRXhpdENvZGVzIGNhbm5vdCBiZSBzcGVjaWZpZWQgaWYgZW5hYmxlUmVzdGFydFBvbGljeSBpcyBmYWxzZScpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
|
|
304
|
+
class FirelensSideCarValidator {
|
|
305
|
+
constructor(datadogOptions) {
|
|
306
|
+
this.datadogOptions = datadogOptions;
|
|
307
|
+
}
|
|
308
|
+
validate() {
|
|
309
|
+
const result = [];
|
|
310
|
+
if (this.datadogOptions) {
|
|
311
|
+
const isFirelensUsed = this.datadogOptions.loggingModeForService == DataDogLoggingMode.AWS_FIRE_LENS
|
|
312
|
+
|| this.datadogOptions.loggingModeForDatadogAgent == DataDogLoggingMode.AWS_FIRE_LENS;
|
|
313
|
+
const isFirelensConfigured = this.datadogOptions.awsFireLensCpu || this.datadogOptions.awsFireLensMemoryLimitMiB;
|
|
314
|
+
if (!isFirelensUsed && isFirelensConfigured) {
|
|
315
|
+
result.push('You cannot override the container resource allocation for firelens if it is not used as logging mode for any container');
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
return result;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWZhcmdhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYXJnYXRlL3Jpby1mYXJnYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFFbkMsMkNBQTJDO0FBQzNDLGdFQUFnRTtBQUNoRSwyQ0FBMkM7QUFDM0MseUNBQXlDO0FBQ3pDLHFDQUFxQztBQUNyQyxxQ0FBa0M7QUFDbEMsOEZBQXdGO0FBOER4RixJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDbkI7O09BRUc7SUFDSCw2Q0FBTSxDQUFBO0FBQ1IsQ0FBQyxFQUxXLFNBQVMseUJBQVQsU0FBUyxRQUtwQjtBQW9RRCxJQUFZLGtCQTBCWDtBQTFCRCxXQUFZLGtCQUFrQjtJQUM1Qjs7O09BR0c7SUFDSCw2RUFBYSxDQUFBO0lBRWI7Ozs7OztPQU1HO0lBQ0gsbUZBQWdCLENBQUE7SUFFaEI7OztPQUdHO0lBQ0gsbUdBQXdCLENBQUE7SUFFeEI7O09BRUc7SUFDSCwyREFBSSxDQUFBO0FBQ04sQ0FBQyxFQTFCVyxrQkFBa0Isa0NBQWxCLGtCQUFrQixRQTBCN0I7QUFFRCxNQUFhLGlCQUFrQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBZ0R6RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ2hGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUE1QkYsd0NBQW1DLEdBQWEsRUFBRSxDQUFDO1FBQ25ELGdDQUEyQixHQUFHLEVBQUUsQ0FBQztRQUNqQyw2Q0FBd0MsR0FBRyxHQUFHLENBQUM7UUFDL0Msc0NBQWlDLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLDBDQUFxQyxHQUFHLElBQUksQ0FBQztRQUM3QywrQ0FBMEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELHFDQUFnQyxHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO1FBQ3ZFLDZDQUF3QyxHQUFHLGtC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NUgsTUFBTSxDQUFDLElBQUksQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO1FBQzdGLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLHdCQUF3QjtJQUM1QixZQUE2QixjQUF3QztRQUF4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7SUFDckUsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsSUFBSSxrQkFBa0IsQ0FBQyxhQUFhO21CQUM3RixJQUFJLENBQUMsY0FBYyxDQUFDLDBCQUEwQixJQUFJLGtCQUFrQixDQUFDLGFBQWEsQ0FBQztZQUMxRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUM7WUFFakgsSUFBSSxDQUFDLGNBQWMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO2dCQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLHdIQUF3SCxDQUFDLENBQUM7WUFDeEksQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0ICogYXMgZWxidjIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjInO1xuaW1wb3J0ICogYXMgc3NtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGRhdGFkb2cgZnJvbSAnLi9kYXRhZG9nJztcbmltcG9ydCB7IFNwcmluZyB9IGZyb20gJy4vc3ByaW5nJztcbmltcG9ydCB7IERhdGFkb2dTZXJ2aWNlQ2F0YWxvZ0VudHJ5IH0gZnJvbSAnLi4vZGF0YWRvZ3YyL2RhdGFkb2ctc2VydmljZS1jYXRhbG9nLWVudHJ5JztcblxuLyoqXG4gKiBGYXJnYXRlIFRhc2sgRGVmaW5pdGlvbiBQcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIHN0YWdlIG9mIHRoZSBzZXJ2aWNlLCBlLmcuICdwcm9kJy5cbiAgICovXG4gIHJlYWRvbmx5IHN0YWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBOYW1lIG9mIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHNlcnZpY2UsIGUuZy4gdGhlIGdpdCBoYXNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGNvbW1pdC5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZyYW1ld29ya3MgaW4gdXNlcy5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIE5vIGZyYW1ld29ya3MuXG4gICAqL1xuICByZWFkb25seSBmcmFtZXdvcmtzPzogRnJhbWV3b3JrW107XG5cbiAgLyoqXG4gICAqIFRoZSBWUEMgb2YgdGhlIHNlcnZpY2UncyBlY3MuQ2x1c3RlciBpZiBubyBjbHVzdGVyIGlzIGV4cGxpY2l0bHkgcGFzc2VkIGFzIHByb3AuXG4gICAqL1xuICByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIC8qKlxuICAgKiBUaGUgRmFyZ2F0ZSBjbHVzdGVyIHRvIHJ1biB0aGUgc2VydmljZSBpbi5cbiAgICogSWYgbm90IG51bGwsIHRoZSBjbHVzdGVyLnZwYyBNVVNUIG1hdGNoIHRoZSB2cGMgcHJvdmlkZWQgYXMgZGlyZWN0IGFyZ3VtZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gQ3JlYXRlIGEgbmV3IEZhcmdhdGUgY2x1c3RlciB3aXRoIGRlZmF1bHQgcHJvcGVydGllc1xuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3Rlcj86IGVjcy5JQ2x1c3RlcjtcblxuICAvKipcbiAgICogQ29udGFpbmVyIGRlZmluaXRpb24gb3B0aW9ucyBsaWtlIGltYWdlLCBjcHUsIG1lbW9yeS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb246IENvbnRhaW5lckRlZmluaXRpb25PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBGYXJnYXRlIFRhc2sgRGVmaW5pdGlvbiBQcm9wZXJ0aWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgZmFyZ2F0ZU9wdGlvbnM6IEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBMb2FkYmFsYW5jZXIgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlck9wdGlvbnM/OiBMb2FkQmFsYW5jZXJPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBEYXRhZG9nIGludGVncmF0aW9uIHByb3BlcnRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFkb2dPcHRpb25zPzogRGF0YWRvZ0ludGVncmF0aW9uUHJvcHM7XG59XG5cbmV4cG9ydCBlbnVtIEZyYW1ld29yayB7XG4gIC8qKlxuICAgKiBTcHJpbmcgRnJhbWV3b3JrLCBTcHJpbmcgQm9vdCwgYW5kIFNwcmluZyBDbG91ZCBBV1MuXG4gICAqL1xuICBTUFJJTkcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGltYWdlIHVzZWQgdG8gc3RhcnQgYSBjb250YWluZXIuXG4gICAqXG4gICAqIFRoaXMgc3RyaW5nIGlzIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgRG9ja2VyIGRhZW1vbi5cbiAgICogSW1hZ2VzIGluIHRoZSBEb2NrZXIgSHViIHJlZ2lzdHJ5IGFyZSBhdmFpbGFibGUgYnkgZGVmYXVsdC5cbiAgICogT3RoZXIgcmVwb3NpdG9yaWVzIGFyZSBzcGVjaWZpZWQgd2l0aCBlaXRoZXIgcmVwb3NpdG9yeS11cmwvaW1hZ2U6dGFnIG9yIHJlcG9zaXRvcnktdXJsL2ltYWdlXFxAZGlnZXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U6IGVjcy5Db250YWluZXJJbWFnZTtcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBwYXNzIHRvIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIFNvbWUgRGF0YWRvZyBzcGVjaWZpYyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIHRvIGJlIHNldCxcbiAgICogYmVjYXVzZSB0aGV5IGFyZSBzZXQgYXV0b21hdGljYWxseSBvciBjb21wdXRlZCBmcm9tIG90aGVyIGF0dHJpYnV0ZXMuXG4gICAqIFRoZXNlIGFyZTpcbiAgICogKiBERF9FTlY6IFNldCBzYW1lIGFzIHByb3Agc3RhZ2VcbiAgICogKiBERF9TRVJWSUNFOiBTZXQgc2FtZSBhcyBwcm9wIHNlcnZpY2VOYW1lXG4gICAqICogRERfVkVSU0lPTjogU2V0IHNhbWUgYXMgcHJvcCB2ZXJzaW9uXG4gICAqICogRERfVEFHUzogU2V0IHNhbWUgYXMgRGF0YWRvZ0ludGVncmF0aW9uUHJvcHMjYWRkaXRpb25hbFRhZ3NcbiAgICogKiBERF9MT0dTX0lOSkVDVElPTjogdHJ1ZVxuICAgKiBPdGhlciBERF8tcHJlZml4ZWQgdmFpYWJsZSBtYXkgYmUgYWRkZWQgdG8gdGhpcyBsaXN0LlxuICAgKlxuICAgKiBPdGhlciBFbnZpcm9ubWVudCB2YXJpYWJsZXMgc2V0IGJ5IGRlZmF1bHQgYXJlIG92ZXJ3cml0dGVuIGlmIHBhc3NlZC5cbiAgICogVGhlc2UgYXJlOlxuICAgKiAqIEREX1NFUlZJQ0VfTUFQUElORzogZGF0YWJhc2U6ZmFyZ2F0ZS13ZWItYXBwLWF1cm9yYSxqYXZhLWF3cy1zZGs6ZmFyZ2F0ZS13ZWItYXBwLWF3cy1zZGssa2Fma2E6ZmFyZ2F0ZS13ZWItYXBwLWthZmthLG15c3FsOmZhcmdhdGUtd2ViLWFwcC1hdXJvcmFcbiAgICogKiBERF9UUkFDRV9TQU1QTEVfUkFURTogMS4wXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBObyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHBhc3MgdG8gdGhlIGNvbnRhaW5lci5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIE5vIHNlY3JldCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRzPzogeyBba2V5OiBzdHJpbmddOiBlY3MuU2VjcmV0IH07XG5cbiAgLyoqXG4gICAqIFRoZSBoZWFsdGggY2hlY2sgY29tbWFuZCBhbmQgYXNzb2NpYXRlZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZm9yIHRoZSBjb250YWluZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBIZWFsdGggY2hlY2sgY29uZmlndXJhdGlvbiBmcm9tIGNvbnRhaW5lci5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrPzogZWNzLkhlYWx0aENoZWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZhcmdhdGVUYXNrRGVmaW5pdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY3B1IHVuaXRzIHVzZWQgYnkgdGhlIHRhc2suIEZvciB0YXNrcyB1c2luZyB0aGUgRmFyZ2F0ZSBsYXVuY2ggdHlwZSxcbiAgICogdGhpcyBmaWVsZCBpcyByZXF1aXJlZCBhbmQgeW91IG11c3QgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlcyxcbiAgICogd2hpY2ggZGV0ZXJtaW5lcyB5b3VyIHJhbmdlIG9mIHZhbGlkIHZhbHVlcyBmb3IgdGhlIG1lbW9yeSBwYXJhbWV0ZXI6XG4gICAqXG4gICAqIDI1NiAoLjI1IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDUxMiAoMC41IEdCKSwgMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpXG4gICAqXG4gICAqIDUxMiAoLjUgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpLCAzMDcyICgzIEdCKSwgNDA5NiAoNCBHQilcbiAgICpcbiAgICogMTAyNCAoMSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpLCA1MTIwICg1IEdCKSwgNjE0NCAoNiBHQiksIDcxNjggKDcgR0IpLCA4MTkyICg4IEdCKVxuICAgKlxuICAgKiAyMDQ4ICgyIHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IEJldHdlZW4gNDA5NiAoNCBHQikgYW5kIDE2Mzg0ICgxNiBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKVxuICAgKlxuICAgKiA0MDk2ICg0IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IEJldHdlZW4gODE5MiAoOCBHQikgYW5kIDMwNzIwICgzMCBHQikgaW4gaW5jcmVtZW50cyBvZiAxMDI0ICgxIEdCKVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIDUxMlxuICAgKi9cbiAgcmVhZG9ubHkgY3B1OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgKGluIE1pQikgb2YgbWVtb3J5IHVzZWQgYnkgdGhlIHRhc2suIEZvciB0YXNrcyB1c2luZyB0aGUgRmFyZ2F0ZSBsYXVuY2ggdHlwZSxcbiAgICogdGhpcyBmaWVsZCBpcyByZXF1aXJlZCBhbmQgeW91IG11c3QgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlcywgd2hpY2ggZGV0ZXJtaW5lcyB5b3VyIHJhbmdlIG9mIHZhbGlkIHZhbHVlcyBmb3IgdGhlIGNwdSBwYXJhbWV0ZXI6XG4gICAqXG4gICAqIDUxMiAoMC41IEdCKSwgMTAyNCAoMSBHQiksIDIwNDggKDIgR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDI1NiAoLjI1IHZDUFUpXG4gICAqXG4gICAqIDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpIC0gQXZhaWxhYmxlIGNwdSB2YWx1ZXM6IDUxMiAoLjUgdkNQVSlcbiAgICpcbiAgICogMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKSwgNTEyMCAoNSBHQiksIDYxNDQgKDYgR0IpLCA3MTY4ICg3IEdCKSwgODE5MiAoOCBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogMTAyNCAoMSB2Q1BVKVxuICAgKlxuICAgKiBCZXR3ZWVuIDQwOTYgKDQgR0IpIGFuZCAxNjM4NCAoMTYgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogMjA0OCAoMiB2Q1BVKVxuICAgKlxuICAgKiBCZXR3ZWVuIDgxOTIgKDggR0IpIGFuZCAzMDcyMCAoMzAgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQikgLSBBdmFpbGFibGUgY3B1IHZhbHVlczogNDA5NiAoNCB2Q1BVKVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIDEwMjRcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUxpbWl0TWlCOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlc2lyZWQgY291bnQgb2YgcnVubmluZyB0YXNrc1xuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gV2hlbiBjcmVhdGluZyB0aGUgc2VydmljZSwgZGVmYXVsdCBpcyAxOyB3aGVuIHVwZGF0aW5nIHRoZSBzZXJ2aWNlLCBkZWZhdWx0IHVzZXNcbiAgICogdGhlIGN1cnJlbnQgdGFzayBudW1iZXIuXG4gICAqL1xuICByZWFkb25seSBkZXNpcmVkQ291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRpbmcgc3lzdGVtIHRoYXQgeW91ciB0YXNrIGRlZmluaXRpb25zIGFyZSBydW5uaW5nIG9uLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gVXNpbmcgZWNzLk9wZXJhdGluZ1N5c3RlbUZhbWlseS5MSU5VWCBhbmQgZWNzLkNwdUFyY2hpdGVjdHVyZS5YODZfNjRcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWVQbGF0Zm9ybT86IGVjcy5SdW50aW1lUGxhdGZvcm07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXJSdWxlIHtcbiAgcmVhZG9ubHkgcHJpb3JpdHk6IG51bWJlcjtcblxuICByZWFkb25seSBjb25kaXRpb25zOiBlbGJ2Mi5MaXN0ZW5lckNvbmRpdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRCYWxhbmNlck9wdGlvbnMge1xuICAvKipcbiAgICogTGlzdGVuZXIgZm9yIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJcbiAgICovXG4gIHJlYWRvbmx5IGxpc3RlbmVyOiBlbGJ2Mi5JQXBwbGljYXRpb25MaXN0ZW5lcjtcblxuICAvKipcbiAgICogT25lIG9yIG1vcmUgcGF0aCBwYXR0ZXJucyB0byBjb21wYXJlIGFnYWluc3QgdGhlIHJlcXVlc3QgVVJMLlxuICAgKiBUaGUgbWF4aW11bSBzaXplIG9mIGVhY2ggc3RyaW5nIGlzIDEyOCBjaGFyYWN0ZXJzLlxuICAgKiBUaGUgY29tcGFyaXNvbiBpcyBjYXNlIHNlbnNpdGl2ZS5cbiAgICogVGhlIGZvbGxvd2luZyB3aWxkY2FyZCBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQ6ICogKG1hdGNoZXMgMCBvciBtb3JlIGNoYXJhY3RlcnMpIGFuZCA/IChtYXRjaGVzIGV4YWN0bHkgMSBjaGFyYWN0ZXIpLlxuICAgKlxuICAgKiBVcGRhdGUgcmVxdWlyZXM6IE5vIGludGVycnVwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXJSdWxlczogTGlzdGVuZXJSdWxlW107XG5cbiAgLyoqXG4gICAqICBIZWFsdGggY2hlY2sgb3B0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aENoZWNrOiBlbGJ2Mi5IZWFsdGhDaGVjaztcblxuICAvKipcbiAgICogIEhlYWx0aCBjaGVjayBncmFjZSBwZXJpb2QuXG4gICAqL1xuICByZWFkb25seSBoZWFsdGhDaGVja0dyYWNlUGVyaW9kOiBjZGsuRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIHBlcmlvZCBkdXJpbmcgd2hpY2ggdGhlIGxvYWQgYmFsYW5jZXIgc2VuZHMgYSBuZXdseSByZWdpc3RlcmVkIHRhcmdldCBhIGxpbmVhcmx5IGluY3JlYXNpbmcgc2hhcmUgb2YgdGhlIHRyYWZmaWMgdG8gdGhlIHRhcmdldCBncm91cC5cblxuICAgKlRoZSByYW5nZSBpcyAzMC05MDAgc2Vjb25kcyAoMTUgbWludXRlcykuXG5cbiAgICogQGRlZmF1bHRWYWx1ZSB1bmRlZmluZWRcbiAgKi9cbiAgcmVhZG9ubHkgc2xvd1N0YXJ0PzogY2RrLkR1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgZm9yIEVsYXN0aWMgTG9hZCBCYWxhbmNpbmcgdG8gd2FpdCBiZWZvcmUgZGVyZWdpc3RlcmluZyBhIHRhcmdldC5cblxuICAgKiBUaGUgcmFuZ2UgaXMgMC0zNjAwIHNlY29uZHMuXG5cbiAgICogQGRlZmF1bHRWYWx1ZSA1XG4gICovXG4gIHJlYWRvbmx5IGRlcmVnaXN0cmF0aW9uRGVsYXk/OiBjZGsuRHVyYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWRvZ0ludGVncmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIENQVSB1bml0cyB0byByZXNlcnZlIGZvciB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gNjRcbiAgICovXG4gIHJlYWRvbmx5IGNwdT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCAoaW4gTWlCKSBvZiBtZW1vcnkgdG8gcHJlc2VudCB0byB0aGUgY29udGFpbmVyLlxuICAgKlxuICAgKiBJZiB5b3VyIGNvbnRhaW5lciBhdHRlbXB0cyB0byBleGNlZWQgdGhlIGFsbG9jYXRlZCBtZW1vcnksIHRoZSBjb250YWluZXJcbiAgICogaXMgdGVybWluYXRlZC5cbiAgICpcbiAgICogQXQgbGVhc3Qgb25lIG9mIG1lbW9yeUxpbWl0TWlCIGFuZCBtZW1vcnlSZXNlcnZhdGlvbk1pQiBpcyByZXF1aXJlZCBmb3Igbm9uLUZhcmdhdGUgc2VydmljZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSAxMjhcbiAgICovXG4gIHJlYWRvbmx5IG1lbW9yeUxpbWl0TWlCPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHZpcnR1YWwgQ1BVIHVuaXRzIHRvIGJlIHJlc2VydmVkIGZvciB0aGUgZmlyZWxlbnMgbG9nLXJvdXRlciBjb250YWluZXIgKGkuZS4gYXdzLWZvci1mbHVlbnQtYml0KS5cbiAgICpcbiAgICogVGhpcyBvbmx5IGFwcGxpZXMgZm9yIHRoZSBBV1NfRklSRV9MRU5TIGxvZ2dpbmcgbW9kZS5cbiAgICogU2V0dGluZyBpdCBmb3IgYW55IG90aGVyIGxvZ2dpbmcgbW9kZSB3aWxsIGNhdXNlIGFuIGV4Y2VwdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIDY0XG4gICAqL1xuICByZWFkb25seSBhd3NGaXJlTGVuc0NwdT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBtZW1vcnkgKGluIE1pQikgcmVzZXJ2ZWQgZm9yIHRoZSBmaXJlbGVucyBsb2ctcm91dGVyIGNvbnRhaW5lciAoaS5lLiBhd3MtZm9yLWZsdWVudC1iaXQpLlxuICAgKlxuICAgKiBUaGlzIG9ubHkgYXBwbGllcyBmb3IgdGhlIEFXU19GSVJFX0xFTlMgbG9nZ2luZyBtb2RlLlxuICAgKiBTZXR0aW5nIGl0IGZvciBhbnkgb3RoZXIgbG9nZ2luZyBtb2RlIHdpbGwgY2F1c2UgYW4gZXhjZXB0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gNjRcbiAgICovXG4gIHJlYWRvbmx5IGF3c0ZpcmVMZW5zTWVtb3J5TGltaXRNaUI/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2dnaW5nIG1vZGUgZm9yIHRoZSBzZXJ2aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIC0gVXNpbmcgdGhlIERhdGFkb2cgbG9nIGZvcndhcmRlciBsYW1iZGEgcHJvdmlkZWQgYnkgdGhlIGRhdGFkb2ctaW50ZWdyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nTW9kZUZvclNlcnZpY2U/OiBEYXRhRG9nTG9nZ2luZ01vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2dnaW5nIG1vZGUgZm9yIHRoZSBEYXRhZG9nIGFnZW50IHNpZGVjYXIuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgLSBObyBsb2dzIGluIERhdGFkb2csIENsb3Vkd2F0Y2ggb25seS5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50PzogRGF0YURvZ0xvZ2dpbmdNb2RlO1xuXG4gIC8qKlxuICAgKiBHRVQgZW5kcG9pbnRzIHRvIGlnbm9yZSBpbiBEYXRhZG9nJ3MgQVBNIG92ZXJ2aWV3LiBUaGlzIGlzIHVzZWZ1bCB0byBmaWx0ZXIgb3V0IGFsbCBoZWFsdGggY2hlY2sgY2FsbHMuXG5cbiAgICAqIEBkZWZhdWx0VmFsdWUgLSBObyBlbmRwb2ludHMgYXJlIGlnbm9yZWQuXG4gICAgKi9cbiAgcmVhZG9ubHkgYXBtR2V0RW5kcG9pbnRzVG9JZ25vcmU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29uZmlndXJlIGlmIHRoZSBEYXRhZG9nIGFnZW50IHNpZGVjYXIgaXMgbWFya2VkIGFzIGVzc2VudGlhbC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSAtIHRydWUuXG4gICAqL1xuICByZWFkb25seSBkYXRhZG9nU2lkZWNhckVzc2VudGlhbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIGRvY2tlciBpbWFnZSB0YWcgZm9yIGRhdGFkb2cgc2lkZWNhclxuICAgKiBAZGVmYXVsdFZhbHVlIC0gJ2xhdGVzdCdcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlY2FyVGFnPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHlvdSBzZXQgdXAgYSByZXN0YXJ0IHBvbGljeSBmb3IgYSBjb250YWluZXIsIEFtYXpvbiBFQ1MgY2FuIHJlc3RhcnQgdGhlIGNvbnRhaW5lciB3aXRob3V0IG5lZWRpbmcgdG8gcmVwbGFjZSB0aGUgdGFza1xuICAgKiBAZGVmYXVsdFZhbHVlIC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUmVzdGFydFBvbGljeT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICogVGhlIGV4aXQgY29kZXMgdG8gYmUgaWdub3JlZCBieSB0aGUgcmVzdGFydCBwb2xpY3lcbiAgKiBAZGVmYXVsdFZhbHVlIC0gWzBdXG4gICovXG4gIHJlYWRvbmx5IHJlc3RhcnRJZ25vcmVkRXhpdENvZGVzPzogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBhZGRpdGlvbmFsIHRhZ3MsIHdoaWNoIGFyZSBhcHBlbmRlZCB0byB0aGUgZGVmYXVsdHMsXG4gICAqIFdoZW4geW91IGRlZmluZSBjdXN0b20gdGFncyB3ZSB3b3VsZCBiZSBnbGFkIGlmIHlvdSBjb250YWN0IHVzLlxuICAgKiBXZSB3b3VsZCBsaWtlIHRvIGxlYXJuIGFib3V0IHlvdXIgdXNlIGNhc2VzLlxuICAgKlxuICAgKiBEZWZhdWx0IHRhZ3MgYXJlIG5vdCBhbGxvd2VkIHRvIGJlIG92ZXJyaWRkZW4hXG4gICAqXG4gICAqIERlZmF1bHRzIGFyZTpcbiAgICogKiBlbnY6IFNldCB0byBSaW9GYXJnYXRlU2VydmljZVByb3BzI3N0YWdlIHByb3BcbiAgICogKiBzZXJ2aWNlOiBTZXQgdG8gUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcyNzZXJ2aWNlTmFtZSBwcm9wXG4gICAqICogdmVyc2lvbjogU2V0IHRvIFJpb0ZhcmdhdGVTZXJ2aWNlUHJvcHMjdmVyc2lvbiBwcm9wXG4gICAqICogYWNjb3VudF9pZDokXFx7YWNjb3VudElEXFx9XG4gICAqICogYWNjb3VudF9uYW1lOiRcXHthY2NvdW50TmFtZVxcfVxuICAgKiAqIHJlZ2lvbjokXFx7QVdTUmVnaW9uXFx9XG4gICAqICogdGVhbTokXFx7dGVhbU5hbWUgZnJvbSBzc20gcGFyYW0gL2NvbmZpZy90ZWFtL25hbWVcXH1cbiAgICogKiB0ZWFtX2lkZW50aWZpZXI6JFxce3RlYW1JZGVudGlmaWVyIGZyb20gc3NtIHBhcmFtIC9jb25maWcvdGVhbS9pZGVudGlmaWVyXFx9XG4gICAqL1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBlbnVtIERhdGFEb2dMb2dnaW5nTW9kZSB7XG4gIC8qKlxuICAgKiBGb3J3YXJkIGxvZ3MgZGlyZWN0bHkgdG8gRGF0YWRvZyB1c2luZyBBV1MgRmlyZUxlbnMgYXMgbG9nIHJvdXRlcixcbiAgICogc2VlIGh0dHBzOi8vZG9jcy5kYXRhZG9naHEuY29tL2ludGVncmF0aW9ucy9lY3NfZmFyZ2F0ZS8/dGFiPWZsdWVudGJpdGFuZGZpcmVsZW5zI2xvZy1jb2xsZWN0aW9uLlxuICAgKi9cbiAgQVdTX0ZJUkVfTEVOUyxcblxuICAvKipcbiAgICogU3RvcmUgbG9ncyBpbiBBV1MgQ2xvdWR3YXRjaCBhbmQgdXNlIHRoZSBSSU8gY3VzdG9taXplZCBEYXRhZG9nIGxvZyBmb3J3YXJkZXIgbGFtYmRhIGZyb20gdGhlIGxlZ2FjeVxuICAgKiBkYXRhZG9nLWludGVncmF0aW9uLCB0byBmb3J3YXJkIHRoZSBsb2dzIHRvIERhdGFkb2csXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9iaXRidWNrZXQuY29sbGFib3JhdGlvbi1tYW4uY29tL3Byb2plY3RzL1JJT0RFVi9yZXBvcy9kYXRhZG9nLWludGVncmF0aW9uL2Jyb3dzZVxuICAgKiBAZGVwcmVjYXRlZCB1c2UgREFUQURPR19GT1JXQVJERVJfTEFNQkRBXG4gICAqL1xuICBGT1JXQVJERVJfTEFNQkRBLFxuXG4gIC8qKlxuICAgKiBTdG9yZSBsb2dzIGluIEFXUyBDbG91ZHdhdGNoIGFuZCB1c2UgdGhlIERhdGFkb2cgbG9nIGZvcndhcmRlciBsYW1iZGEgdG8gZm9yd2FyZCB0aGUgbG9ncyB0byBEYXRhZG9nLFxuICAgKiBzZWUgaHR0cHM6Ly9kb2NzLmRhdGFkb2docS5jb20vaW50ZWdyYXRpb25zL2Vjc19mYXJnYXRlLz90YWI9bG9nZHJpdmVyI2xvZy1jb2xsZWN0aW9uLlxuICAgKi9cbiAgREFUQURPR19GT1JXQVJERVJfTEFNQkRBLFxuXG4gIC8qKlxuICAgKiBPbmx5IGxvZyB0byBBV1MgQ2xvdWR3YXRjaCB3aXRob3V0IGZvcndhcmRpbmcgdGhlIGxvZ3MgdG8gRGF0YWRvZy5cbiAgICovXG4gIE5PTkUsXG59XG5cbmV4cG9ydCBjbGFzcyBSaW9GYXJnYXRlU2VydmljZSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IGltcGxlbWVudHMgZWMyLklDb25uZWN0YWJsZSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRERfRU5WX0RFTllfTElTVCA9IFtcbiAgICAnRERfRU5WJyxcbiAgICAnRERfVEFHUycsXG4gICAgJ0REX1NFUlZJQ0UnLFxuICAgICdERF9WRVJTSU9OJyxcbiAgICAnRERfTE9HU19JTkpFQ1RJT04nLFxuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEREX1RBR19ERU5ZX0xJU1QgPSBbXG4gICAgJ2VudicsXG4gICAgJ3NlcnZpY2UnLFxuICAgICd2ZXJzaW9uJyxcbiAgICAnYWNjb3VudF9pZCcsXG4gICAgJ2FjY291bnRfbmFtZScsXG4gICAgJ3JlZ2lvbicsXG4gICAgJ3RlYW0nLFxuICAgICd0ZWFtX2lkZW50aWZpZXInLFxuICBdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9BUE1fR0VUX0VORFBPSU5UU19UT19JR05PUkU6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfQ1BVID0gNjQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfTUVNT1JZX0xJTUlUX01JQiA9IDEyODtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RBVEFET0dfU0lERUNBUl9FU1NFTlRJQUwgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19FTkFCTEVfUkVTVEFSVF9QT0xJQ1kgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19SRVNUQVJUX0lHTk9SRURfRVhJVF9DT0RFUyA9IFswXTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfU0VSVklDRSA9IERhdGFEb2dMb2dnaW5nTW9kZS5GT1JXQVJERVJfTEFNQkRBO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTE9HR0lOR19NT0RFX0ZPUl9EQVRBRE9HX1NJREVDQVIgPSBEYXRhRG9nTG9nZ2luZ01vZGUuTk9ORTtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0RFUkVHSVNUUkFUSU9OX0RFTEFZID0gY2RrLkR1cmF0aW9uLnNlY29uZHMoNSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9TTE9XX1NUQVJUID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfREFUQURPR19TSURFQ0FSX1RBRyA9ICdsYXRlc3QnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9MT0dfUk9VVEVSX0NQVSA9IDY0O1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfTE9HX1JPVVRFUl9NRU1PUllfTElNSVRfTUlCID0gNjQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBGSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTiA9ICdhcm46YXdzOnMzOjo6NTc3MTQ2ODk3Nzg1LWV1LXdlc3QtMS1maXJlbGVucy1jb25maWd1cmF0aW9uLWJ1Y2tldCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgRklSRUxFTlNfQ09ORklHX0ZJTEVfUEFUSCA9ICcvcGFyc2UtanNvbi5jb25mJztcblxuICByZWFkb25seSBzZXJ2aWNlQ29udGFpbmVyRGVmaW5pdGlvbjogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IGRhdGFkb2dTaWRlQ2FyQ29udGFpbmVyRGVmaW5pdGlvbjogZWNzLkNvbnRhaW5lckRlZmluaXRpb247XG4gIHJlYWRvbmx5IGxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24/OiBlY3MuQ29udGFpbmVyRGVmaW5pdGlvbjtcbiAgcmVhZG9ubHkgdGFza0RlZmluaXRpb246IGVjcy5GYXJnYXRlVGFza0RlZmluaXRpb247XG5cbiAgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9ucztcbiAgcmVhZG9ubHkgc2VydmljZTogZWNzLkZhcmdhdGVTZXJ2aWNlO1xuICByZWFkb25seSB0YXJnZXRHcm91cDogZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cHx1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmlvRmFyZ2F0ZVNlcnZpY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7XG4gICAgICBsb2FkQmFsYW5jZXJPcHRpb25zLFxuICAgICAgdnBjLFxuICAgICAgY2x1c3RlcixcbiAgICAgIGZhcmdhdGVPcHRpb25zLFxuICAgICAgZGF0YWRvZ09wdGlvbnMsXG4gICAgICBzZXJ2aWNlTmFtZSxcbiAgICAgIGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24sXG4gICAgICBzdGFnZSxcbiAgICAgIHZlcnNpb24sXG4gICAgICBmcmFtZXdvcmtzLFxuICAgIH0gPSBwcm9wcztcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKG5ldyBEZW55TGlzdGVkS2V5VmFsaWRhdG9yKFxuICAgICAgUmlvRmFyZ2F0ZVNlcnZpY2UuRERfRU5WX0RFTllfTElTVCxcbiAgICAgIHByb3BzLmNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uZW52aXJvbm1lbnQsXG4gICAgICBpdCA9PiBgRW52aXJvbm1lbnQgJHtpdH0gaXMgbm90IGFsbG93ZWQgdG8gYmUgc2V0LiBUaGlzIHZhbHVlIHdpbGwgYmUgaW5mZXJyZWQgZnJvbSB0aGUgYWNjb3VudCBvciBvdGhlciBwcm9wZXJ0aWVzLmAsXG4gICAgKSk7XG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IERlbnlMaXN0ZWRLZXlWYWxpZGF0b3IoXG4gICAgICBSaW9GYXJnYXRlU2VydmljZS5ERF9UQUdfREVOWV9MSVNULFxuICAgICAgcHJvcHMuZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgICAgaXQgPT4gYFRhZyAke2l0fSBpcyBub3QgYWxsb3dlZCB0byBiZSBzZXQuIFRoaXMgdmFsdWUgd2lsbCBiZSBpbmZlcnJlZCBmcm9tIHRoZSBhY2NvdW50IG9yIG90aGVyIHByb3BlcnRpZXMuYCxcbiAgICApKTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKG5ldyBDbHVzdGVyVnBjVmFsaWRhdG9yKFxuICAgICAgcHJvcHMudnBjLFxuICAgICAgcHJvcHMuY2x1c3RlcixcbiAgICApKTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKG5ldyBEYXRhZG9nU2lkZUNhclZhbGlkYXRvcihcbiAgICAgIHByb3BzLmRhdGFkb2dPcHRpb25zLFxuICAgICkpO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24obmV3IEZpcmVsZW5zU2lkZUNhclZhbGlkYXRvcihcbiAgICAgIHByb3BzLmRhdGFkb2dPcHRpb25zLFxuICAgICkpO1xuXG4gICAgY29uc3QgZmFyZ2F0ZUNsdXN0ZXIgPSBjbHVzdGVyID8/IG5ldyBlY3MuQ2x1c3Rlcih0aGlzLCAnQ2x1c3RlcicsIHtcbiAgICAgIHZwYzogdnBjLFxuICAgIH0pO1xuICAgIHRoaXMudGFza0RlZmluaXRpb24gPSBuZXcgZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvbih0aGlzLCAnVGFza0RlZmluaXRpb24nLCB7XG4gICAgICBjcHU6IGZhcmdhdGVPcHRpb25zLmNwdSxcbiAgICAgIG1lbW9yeUxpbWl0TWlCOiBmYXJnYXRlT3B0aW9ucy5tZW1vcnlMaW1pdE1pQixcbiAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICBjcHVBcmNoaXRlY3R1cmU6IGZhcmdhdGVPcHRpb25zLnJ1bnRpbWVQbGF0Zm9ybT8uY3B1QXJjaGl0ZWN0dXJlID8/IGVjcy5DcHVBcmNoaXRlY3R1cmUuWDg2XzY0LFxuICAgICAgICBvcGVyYXRpbmdTeXN0ZW1GYW1pbHk6IGZhcmdhdGVPcHRpb25zLnJ1bnRpbWVQbGF0Zm9ybT8ub3BlcmF0aW5nU3lzdGVtRmFtaWx5ID8/IGVjcy5PcGVyYXRpbmdTeXN0ZW1GYW1pbHkuTElOVVgsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGFjY291bnROYW1lID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnQWNjb3VudE5hbWUnLCAnL2NvbmZpZy9hY2NvdW50L25hbWUnKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCB0ZWFtTmFtZSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIuZnJvbVN0cmluZ1BhcmFtZXRlck5hbWUodGhpcywgJ1RlYW1OYW1lJywgJy9jb25maWcvdGVhbS9uYW1lJykuc3RyaW5nVmFsdWU7XG4gICAgY29uc3QgdGVhbUlkZW50aWZpZXIgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdUZWFtSWRlbnRpZmllcicsICcvY29uZmlnL3RlYW0vaWRlbnRpZmllcicpLnN0cmluZ1ZhbHVlO1xuXG4gICAgY29uc3QgZGF0YWRvZ1NpdGUgPSBzc20uU3RyaW5nUGFyYW1ldGVyLmZyb21TdHJpbmdQYXJhbWV0ZXJOYW1lKHRoaXMsICdEYXRhZG9nU2l0ZScsICcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL3NpdGUnKS5zdHJpbmdWYWx1ZTtcbiAgICBjb25zdCBkYXRhZG9nQXBpS2V5UGFyYW1ldGVyID0gc3NtLlN0cmluZ1BhcmFtZXRlci5mcm9tU3RyaW5nUGFyYW1ldGVyTmFtZSh0aGlzLCAnRGF0YWRvZ0FwaUtleScsICcvcmlvL2NvbmZpZy9kYXRhZG9nLWludGVncmF0aW9uL2FwaS1rZXknKTtcblxuICAgIGNvbnN0IGRhdGFkb2dTaWRlY2FyQ3B1ID0gZGF0YWRvZ09wdGlvbnM/LmNwdSA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX0NQVTtcbiAgICBjb25zdCBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQiA9IGRhdGFkb2dPcHRpb25zPy5tZW1vcnlMaW1pdE1pQiA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX01FTU9SWV9MSU1JVF9NSUI7XG5cbiAgICBjb25zdCBsb2dnaW5nTW9kZUZvclNlcnZpY2UgPSBkYXRhZG9nT3B0aW9ucz8ubG9nZ2luZ01vZGVGb3JTZXJ2aWNlID8/IHRoaXMuREVGQVVMVF9MT0dHSU5HX01PREVfRk9SX1NFUlZJQ0U7XG4gICAgY29uc3QgbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPSBkYXRhZG9nT3B0aW9ucz8ubG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQgPz8gdGhpcy5ERUZBVUxUX0xPR0dJTkdfTU9ERV9GT1JfREFUQURPR19TSURFQ0FSO1xuICAgIGNvbnN0IGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQgPVxuICAgICAgICBsb2dnaW5nTW9kZUZvclNlcnZpY2UgPT09IERhdGFEb2dMb2dnaW5nTW9kZS5BV1NfRklSRV9MRU5TIHx8XG4gICAgICAgIGxvZ2dpbmdNb2RlRm9yRGF0YWRvZ0FnZW50ID09PSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUztcblxuICAgIGNvbnN0IGZpcmVMZW5zU2lkZWNhckNwdSA9IGRhdGFkb2dPcHRpb25zPy5hd3NGaXJlTGVuc0NwdSA/PyB0aGlzLkRFRkFVTFRfTE9HX1JPVVRFUl9DUFU7XG4gICAgY29uc3QgZmlyZUxlbnNTaWRlY2FyTWVtb3J5TWlCID0gZGF0YWRvZ09wdGlvbnM/LmF3c0ZpcmVMZW5zTWVtb3J5TGltaXRNaUIgPz8gdGhpcy5ERUZBVUxUX0xPR19ST1VURVJfTUVNT1JZX0xJTUlUX01JQjtcbiAgICBjb25zdCBkYXRhZG9nU2lkZWNhckVzc2VudGlhbCA9IGRhdGFkb2dPcHRpb25zPy5kYXRhZG9nU2lkZWNhckVzc2VudGlhbCA/PyB0aGlzLkRFRkFVTFRfREFUQURPR19TSURFQ0FSX0VTU0VOVElBTDtcbiAgICBjb25zdCBkYXRhRG9nRW5hYmxlUmVzdGFydFBvbGljeSA9IGRhdGFkb2dPcHRpb25zPy5lbmFibGVSZXN0YXJ0UG9saWN5ID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX0VOQUJMRV9SRVNUQVJUX1BPTElDWTtcblxuICAgIGZ1bmN0aW9uIGdldFJlc3RhcnRJZ25vcmVkRXhpdENvZGVzKFxuICAgICAgZW5hYmxlUmVzdGFydFBvbGljeTogYm9vbGVhbiB8IHVuZGVmaW5lZCxcbiAgICAgIHJlc3RhcnRJZ25vcmVkRXhpdENvZGVzOiBudW1iZXJbXSB8IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHRJZ25vcmVkRXhpdENvZGVzOiBudW1iZXJbXSxcbiAgICApOiBudW1iZXJbXSB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAoZW5hYmxlUmVzdGFydFBvbGljeSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0gZWxzZSBpZiAoZW5hYmxlUmVzdGFydFBvbGljeSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXR1cm4gcmVzdGFydElnbm9yZWRFeGl0Q29kZXMgPz8gWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRJZ25vcmVkRXhpdENvZGVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGFEb2dyZXN0YXJ0SWdub3JlZEV4aXRDb2RlcyA9IGdldFJlc3RhcnRJZ25vcmVkRXhpdENvZGVzKFxuICAgICAgZGF0YURvZ0VuYWJsZVJlc3RhcnRQb2xpY3ksXG4gICAgICBkYXRhZG9nT3B0aW9ucz8ucmVzdGFydElnbm9yZWRFeGl0Q29kZXMsXG4gICAgICB0aGlzLkRFRkFVTFRfREFUQURPR19SRVNUQVJUX0lHTk9SRURfRVhJVF9DT0RFUyxcbiAgICApO1xuXG4gICAgbGV0IHNlcnZpY2VDb250YWluZXJDcHVVbml0cztcbiAgICBsZXQgc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCO1xuXG4gICAgaWYgKGZpcmVMZW5zTG9nUm91dGVyUmVxdWlyZWQpIHtcbiAgICAgIHNlcnZpY2VDb250YWluZXJDcHVVbml0cyA9IGZhcmdhdGVPcHRpb25zLmNwdSAtIGRhdGFkb2dTaWRlY2FyQ3B1IC0gZmlyZUxlbnNTaWRlY2FyQ3B1O1xuICAgICAgc2VydmljZUNvbnRhaW5lck1lbW9yeUxpbWl0TWlCID0gZmFyZ2F0ZU9wdGlvbnMubWVtb3J5TGltaXRNaUIgLSBkYXRhZG9nU2lkZWNhck1lbW9yeU1pQiAtIGZpcmVMZW5zU2lkZWNhck1lbW9yeU1pQjtcbiAgICAgIGRhdGFkb2cuYWRkRmlyZWxlbnNDb25maWdVcGxvYWRGcm9tUzNQZXJtaXNzaW9ucyh7XG4gICAgICAgIHRhc2tEZWZpbml0aW9uOiB0aGlzLnRhc2tEZWZpbml0aW9uLFxuICAgICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybjogdGhpcy5GSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXJ2aWNlQ29udGFpbmVyQ3B1VW5pdHMgPSBmYXJnYXRlT3B0aW9ucy5jcHUgLSBkYXRhZG9nU2lkZWNhckNwdTtcbiAgICAgIHNlcnZpY2VDb250YWluZXJNZW1vcnlMaW1pdE1pQiA9IGZhcmdhdGVPcHRpb25zLm1lbW9yeUxpbWl0TWlCIC0gZGF0YWRvZ1NpZGVjYXJNZW1vcnlNaUI7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZUNvbnRhaW5lckRlZmluaXRpb24gPSB0aGlzLnRhc2tEZWZpbml0aW9uLmFkZENvbnRhaW5lcihzZXJ2aWNlTmFtZSwge1xuICAgICAgaW1hZ2U6IGNvbnRhaW5lckRlZmluaXRpb25PcHRpb24uaW1hZ2UsXG4gICAgICBjcHU6IHNlcnZpY2VDb250YWluZXJDcHVVbml0cyxcbiAgICAgIG1lbW9yeUxpbWl0TWlCOiBzZXJ2aWNlQ29udGFpbmVyTWVtb3J5TGltaXRNaUIsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAuLi5kYXRhZG9nLmdldEZhcmdhdGVDb250YWluZXJFbnZpcm9ubWVudFZhcmlhYmxlcyh7XG4gICAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICAgICAgc3RhZ2UsXG4gICAgICAgICAgc2VydmljZU5hbWUsXG4gICAgICAgICAgdmVyc2lvbixcbiAgICAgICAgICBhY2NvdW50TmFtZSxcbiAgICAgICAgICB0ZWFtTmFtZSxcbiAgICAgICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgICAgICBhZGRpdGlvbmFsVGFnczogZGF0YWRvZ09wdGlvbnM/LmFkZGl0aW9uYWxUYWdzLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5lbnZpcm9ubWVudCxcbiAgICAgIH0sXG4gICAgICBkb2NrZXJMYWJlbHM6IHtcbiAgICAgICAgLi4uZGF0YWRvZy5nZXRGYXJnYXRlRG9ja2VyTGFiZWxzKHsgc3RhZ2UsIHNlcnZpY2VOYW1lLCB2ZXJzaW9uIH0pLFxuICAgICAgfSxcbiAgICAgIGhlYWx0aENoZWNrOiBjb250YWluZXJEZWZpbml0aW9uT3B0aW9uLmhlYWx0aENoZWNrLFxuICAgICAgbG9nZ2luZzogZGF0YWRvZy5zZXR1cExvZ2dpbmcoe1xuICAgICAgICBzY29wZSxcbiAgICAgICAgYWNjb3VudE5hbWUsXG4gICAgICAgIHRlYW1OYW1lLFxuICAgICAgICB0ZWFtSWRlbnRpZmllcixcbiAgICAgICAgc3RhZ2UsXG4gICAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBkYXRhZG9nQXBpS2V5UGFyYW1ldGVyLFxuICAgICAgICBkYXRhZG9nTG9nZ2luZ01vZGU6IGxvZ2dpbmdNb2RlRm9yU2VydmljZSxcbiAgICAgICAgZGF0YWRvZ1NpdGUsXG4gICAgICAgIGNvbnRhaW5lclR5cGU6ICdzZXJ2aWNlJyxcbiAgICAgICAgYWRkaXRpb25hbFRhZ3M6IGRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICAgIH0pLFxuICAgICAgc2VjcmV0czogY29udGFpbmVyRGVmaW5pdGlvbk9wdGlvbi5zZWNyZXRzLFxuICAgIH0pO1xuXG4gICAgaWYgKGZyYW1ld29ya3M/LmluY2x1ZGVzKEZyYW1ld29yay5TUFJJTkcpKSB7XG4gICAgICBTcHJpbmcuYWxsb3dQYXJhbWV0ZXJTdG9yZUFjY2Vzc0ZvclNwcmluZ0Nsb3VkQXdzKHRoaXMsIHNlcnZpY2VOYW1lLCB0aGlzLnRhc2tEZWZpbml0aW9uLnRhc2tSb2xlKTtcbiAgICAgIFNwcmluZy5hbGxvd1NlY3JldHNNYW5hZ2VyQWNjZXNzRm9yU3ByaW5nQ2xvdWRBd3ModGhpcywgc2VydmljZU5hbWUsIHRoaXMudGFza0RlZmluaXRpb24udGFza1JvbGUpO1xuICAgIH1cblxuICAgIGlmIChmaXJlTGVuc0xvZ1JvdXRlclJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmxvZ1JvdXRlckNvbnRhaW5lckRlZmluaXRpb24gPSBkYXRhZG9nLmFkZEZpcmVMZW5zTG9nUm91dGVyKHtcbiAgICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICAgIGNwdTogZmlyZUxlbnNTaWRlY2FyQ3B1LFxuICAgICAgICBtZW1vcnlMaW1pdE1pQjogZmlyZUxlbnNTaWRlY2FyTWVtb3J5TWlCLFxuICAgICAgICBmaXJlbGVuc0NvbmZpZ0J1Y2tldEFybjogdGhpcy5GSVJFTEVOU19DT05GSUdfQlVDS0VUX0FSTixcbiAgICAgICAgZmlyZWxlbnNDb25maWdGaWxlUGF0aDogdGhpcy5GSVJFTEVOU19DT05GSUdfRklMRV9QQVRILFxuICAgICAgICBzZXJ2aWNlTmFtZTogcHJvcHMuc2VydmljZU5hbWUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5kYXRhZG9nU2lkZUNhckNvbnRhaW5lckRlZmluaXRpb24gPSBkYXRhZG9nLmFkZERhdGFkb2dTaWRlY2FyKHtcbiAgICAgIHNjb3BlLFxuICAgICAgdGFza0RlZmluaXRpb246IHRoaXMudGFza0RlZmluaXRpb24sXG4gICAgICBhY2NvdW50TmFtZSxcbiAgICAgIHRlYW1OYW1lLFxuICAgICAgdGVhbUlkZW50aWZpZXIsXG4gICAgICBzdGFnZSxcbiAgICAgIHNlcnZpY2VOYW1lLFxuICAgICAgdmVyc2lvbixcbiAgICAgIGRhdGFkb2dBcGlLZXlQYXJhbWV0ZXIsXG4gICAgICBkYXRhZG9nU2l0ZSxcbiAgICAgIGRhdGFkb2dMb2dnaW5nTW9kZTogbG9nZ2luZ01vZGVGb3JEYXRhZG9nQWdlbnQsXG4gICAgICBhcG1HZXRSZXNvdXJjZXNUb0lnbm9yZTogZGF0YWRvZ09wdGlvbnM/LmFwbUdldEVuZHBvaW50c1RvSWdub3JlID8/IHRoaXMuREVGQVVMVF9BUE1fR0VUX0VORFBPSU5UU19UT19JR05PUkUsXG4gICAgICBjcHU6IGRhdGFkb2dTaWRlY2FyQ3B1LFxuICAgICAgbWVtb3J5TGltaXRNaUI6IGRhdGFkb2dTaWRlY2FyTWVtb3J5TWlCLFxuICAgICAgZXNzZW50aWFsOiBkYXRhZG9nU2lkZWNhckVzc2VudGlhbCxcbiAgICAgIGVuYWJsZVJlc3RhcnRQb2xpY3k6IGRhdGFEb2dFbmFibGVSZXN0YXJ0UG9saWN5LFxuICAgICAgcmVzdGFydElnbm9yZWRFeGl0Q29kZXM6IGRhdGFEb2dyZXN0YXJ0SWdub3JlZEV4aXRDb2RlcyxcbiAgICAgIGNvbnRhaW5lclRhZzogcHJvcHMuZGF0YWRvZ09wdGlvbnM/LmRhdGFkb2dTaWRlY2FyVGFnID8/IHRoaXMuREVGQVVMVF9EQVRBRE9HX1NJREVDQVJfVEFHLCAvLyBUaGVzZSBhcmUgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLFxuICAgICAgYWRkaXRpb25hbFRhZ3M6IGRhdGFkb2dPcHRpb25zPy5hZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcblxuICAgIGRhdGFkb2cuZW5zdXJlTG9nZ2luZ0FuZE1vbml0b3JpbmdBcmVSZWFkeUJlZm9yZVNlcnZpY2VTdGFydHModGhpcyk7XG5cbiAgICBjb25zdCBsb2FkQmFsYW5jZXJPcHRpb25zRm9yRmFyZ2F0ZVNlcnZpY2UgPSBsb2FkQmFsYW5jZXJPcHRpb25zXG4gICAgICA/IHsgaGVhbHRoQ2hlY2tHcmFjZVBlcmlvZDogbG9hZEJhbGFuY2VyT3B0aW9ucy5oZWFsdGhDaGVja0dyYWNlUGVyaW9kIH1cbiAgICAgIDoge307XG5cbiAgICB0aGlzLnNlcnZpY2UgPSBuZXcgZWNzLkZhcmdhdGVTZXJ2aWNlKHRoaXMsICdTZXJ2aWNlJywge1xuICAgICAgY2x1c3RlcjogZmFyZ2F0ZUNsdXN0ZXIsXG4gICAgICB0YXNrRGVmaW5pdGlvbjogdGhpcy50YXNrRGVmaW5pdGlvbixcbiAgICAgIGNpcmN1aXRCcmVha2VyOiB7IHJvbGxiYWNrOiB0cnVlIH0sXG4gICAgICBtYXhIZWFsdGh5UGVyY2VudDogMjAwLFxuICAgICAgbWluSGVhbHRoeVBlcmNlbnQ6IDEwMCxcbiAgICAgIGRlc2lyZWRDb3VudDogZmFyZ2F0ZU9wdGlvbnM/LmRlc2lyZWRDb3VudCxcbiAgICAgIC4uLmxvYWRCYWxhbmNlck9wdGlvbnNGb3JGYXJnYXRlU2VydmljZSxcbiAgICAgIHByb3BhZ2F0ZVRhZ3M6IGVjcy5Qcm9wYWdhdGVkVGFnU291cmNlLlNFUlZJQ0UsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5zZXJ2aWNlLmNvbm5lY3Rpb25zO1xuXG4gICAgaWYgKGxvYWRCYWxhbmNlck9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgY29uc3QgY29udGFpbmVyUG9ydCA9IDQ0MztcbiAgICAgIHRoaXMuc2VydmljZUNvbnRhaW5lckRlZmluaXRpb24uYWRkUG9ydE1hcHBpbmdzKHtcbiAgICAgICAgY29udGFpbmVyUG9ydDogY29udGFpbmVyUG9ydCxcbiAgICAgICAgcHJvdG9jb2w6IGVjcy5Qcm90b2NvbC5UQ1AsXG4gICAgICB9KTtcbiAgICAgIHRoaXMudGFyZ2V0R3JvdXAgPSBuZXcgZWxidjIuQXBwbGljYXRpb25UYXJnZXRHcm91cCh0aGlzLCAnVGFyZ2V0R3JvdXAnLCB7XG4gICAgICAgIHZwYzogdnBjLFxuICAgICAgICBwb3J0OiBjb250YWluZXJQb3J0LFxuICAgICAgICBwcm90b2NvbDogZWxidjIuQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQUyxcbiAgICAgICAgdGFyZ2V0VHlwZTogZWxidjIuVGFyZ2V0VHlwZS5JUCxcbiAgICAgICAgdGFyZ2V0czogW3RoaXMuc2VydmljZV0sXG4gICAgICAgIGhlYWx0aENoZWNrOiBsb2FkQmFsYW5jZXJPcHRpb25zLmhlYWx0aENoZWNrLFxuICAgICAgICBzbG93U3RhcnQ6IHByb3BzLmxvYWRCYWxhbmNlck9wdGlvbnM/LnNsb3dTdGFydCA/PyB0aGlzLkRFRkFVTFRfU0xPV19TVEFSVCxcbiAgICAgICAgZGVyZWdpc3RyYXRpb25EZWxheTogcHJvcHMubG9hZEJhbGFuY2VyT3B0aW9ucz8uZGVyZWdpc3RyYXRpb25EZWxheSA/PyB0aGlzLkRFRkFVTFRfREVSRUdJU1RSQVRJT05fREVMQVksXG4gICAgICB9KTtcblxuICAgICAgbG9hZEJhbGFuY2VyT3B0aW9ucy5saXN0ZW5lclJ1bGVzLmZvckVhY2goKHsgcHJpb3JpdHksIGNvbmRpdGlvbnMgfSkgPT4ge1xuICAgICAgICBsb2FkQmFsYW5jZXJPcHRpb25zLmxpc3RlbmVyLmFkZFRhcmdldEdyb3VwcyhgUHJpb3JpdHkke3ByaW9yaXR5fUxpc3RlbmVyUnVsZWAsIHtcbiAgICAgICAgICB0YXJnZXRHcm91cHM6IFt0aGlzLnRhcmdldEdyb3VwIGFzIGVsYnYyLkFwcGxpY2F0aW9uVGFyZ2V0R3JvdXBdLFxuICAgICAgICAgIHByaW9yaXR5OiBwcmlvcml0eSxcbiAgICAgICAgICBjb25kaXRpb25zOiBjb25kaXRpb25zLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG5ldyBEYXRhZG9nU2VydmljZUNhdGFsb2dFbnRyeSh0aGlzLCAnRGF0YWRvZ1NlcnZpY2VDYXRhbG9nRW50cnknLCB7XG4gICAgICBzZXJ2aWNlTmFtZTogc2VydmljZU5hbWUsXG4gICAgICBsYW5ndWFnZXM6IFsnamF2YSddLFxuICAgICAgc2VydmljZVR5cGU6ICd3ZWInLFxuICAgIH0pO1xuICB9XG59XG5cbmNsYXNzIERlbnlMaXN0ZWRLZXlWYWxpZGF0b3IgaW1wbGVtZW50cyBjb25zdHJ1Y3RzLklWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZW55TGlzdDogc3RyaW5nW10sXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZUdlbmVyYXRvcjogKGtleU5hbWU6IHN0cmluZykgPT4gc3RyaW5nLFxuICApIHt9XG5cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGlmICghdGhpcy5kaWN0KSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMuZGVueUxpc3QuZm9yRWFjaChrZXlOYW1lID0+IHtcbiAgICAgIGlmICh0aGlzLmRpY3QgJiYga2V5TmFtZSBpbiB0aGlzLmRpY3QpIHtcbiAgICAgICAgcmVzdWx0LnB1c2godGhpcy5tZXNzYWdlR2VuZXJhdG9yKGtleU5hbWUpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY2xhc3MgQ2x1c3RlclZwY1ZhbGlkYXRvciBpbXBsZW1lbnRzIGNvbnN0cnVjdHMuSVZhbGlkYXRpb24ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZwYzogZWMyLklWcGMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjbHVzdGVyPzogZWNzLklDbHVzdGVyLFxuICApIHt9XG5cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLmNsdXN0ZXIgJiYgdGhpcy5jbHVzdGVyLnZwYy52cGNJZCAhPT0gdGhpcy52cGMudnBjSWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBUaGUgVlBDIHByb3ZpZGVkIGluIHRoZSBjbHVzdGVyICgke3RoaXMuY2x1c3Rlci52cGMubm9kZS5pZH0pIE1VU1QgbWF0Y2ggdGhlIFZQQyBwcm92aWRlZCBhcyBhcmd1bWVudCAoJHt0aGlzLnZwYy5ub2RlLmlkfSkuYCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY2xhc3MgRGF0YWRvZ1NpZGVDYXJWYWxpZGF0b3IgaW1wbGVtZW50cyBjb25zdHJ1Y3RzLklWYWxpZGF0aW9uIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkYXRhZG9nT3B0aW9ucz86IERhdGFkb2dJbnRlZ3JhdGlvblByb3BzKSB7fVxuICB2YWxpZGF0ZSgpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgaWYgKHRoaXMuZGF0YWRvZ09wdGlvbnMgJiYgdGhpcy5kYXRhZG9nT3B0aW9ucy5lbmFibGVSZXN0YXJ0UG9saWN5ID09PSBmYWxzZSAmJiB0aGlzLmRhdGFkb2dPcHRpb25zLnJlc3RhcnRJZ25vcmVkRXhpdENvZGVzKSB7XG4gICAgICByZXN1bHQucHVzaCgnUmVzdGFydElnbm9yZWRFeGl0Q29kZXMgY2Fubm90IGJlIHNwZWNpZmllZCBpZiBlbmFibGVSZXN0YXJ0UG9saWN5IGlzIGZhbHNlJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY2xhc3MgRmlyZWxlbnNTaWRlQ2FyVmFsaWRhdG9yIGltcGxlbWVudHMgY29uc3RydWN0cy5JVmFsaWRhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGF0YWRvZ09wdGlvbnM/OiBEYXRhZG9nSW50ZWdyYXRpb25Qcm9wcykge1xuICB9XG5cbiAgdmFsaWRhdGUoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGlmICh0aGlzLmRhdGFkb2dPcHRpb25zKSB7XG4gICAgICBjb25zdCBpc0ZpcmVsZW5zVXNlZCA9IHRoaXMuZGF0YWRvZ09wdGlvbnMubG9nZ2luZ01vZGVGb3JTZXJ2aWNlID09IERhdGFEb2dMb2dnaW5nTW9kZS5BV1NfRklSRV9MRU5TXG4gICAgICAgICAgfHwgdGhpcy5kYXRhZG9nT3B0aW9ucy5sb2dnaW5nTW9kZUZvckRhdGFkb2dBZ2VudCA9PSBEYXRhRG9nTG9nZ2luZ01vZGUuQVdTX0ZJUkVfTEVOUztcbiAgICAgIGNvbnN0IGlzRmlyZWxlbnNDb25maWd1cmVkID0gdGhpcy5kYXRhZG9nT3B0aW9ucy5hd3NGaXJlTGVuc0NwdSB8fCB0aGlzLmRhdGFkb2dPcHRpb25zLmF3c0ZpcmVMZW5zTWVtb3J5TGltaXRNaUI7XG5cbiAgICAgIGlmICghaXNGaXJlbGVuc1VzZWQgJiYgaXNGaXJlbGVuc0NvbmZpZ3VyZWQpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ1lvdSBjYW5ub3Qgb3ZlcnJpZGUgdGhlIGNvbnRhaW5lciByZXNvdXJjZSBhbGxvY2F0aW9uIGZvciBmaXJlbGVucyBpZiBpdCBpcyBub3QgdXNlZCBhcyBsb2dnaW5nIG1vZGUgZm9yIGFueSBjb250YWluZXInKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
|
package/lib/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export * from './pipeline/rio-backup-secrets-restore-stage';
|
|
|
11
11
|
export * from './pipeline/rio-pipeline-type';
|
|
12
12
|
export * from './kafka';
|
|
13
13
|
export * as kafka from './kafka';
|
|
14
|
+
export * from './ses';
|
|
15
|
+
export * as ses from './ses';
|
|
14
16
|
export * from './datadog';
|
|
15
17
|
export * as datadog from './datadog';
|
|
16
18
|
export * as datadogv2 from './datadogv2';
|
package/lib/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.ecr = exports.backup = exports.datadogv2 = exports.datadog = exports.kafka = exports.fargate = exports.watchfulv2 = void 0;
|
|
17
|
+
exports.ecr = exports.backup = exports.datadogv2 = exports.datadog = exports.ses = exports.kafka = exports.fargate = exports.watchfulv2 = void 0;
|
|
18
18
|
__exportStar(require("./watchful"), exports);
|
|
19
19
|
exports.watchfulv2 = require("./watchfulv2");
|
|
20
20
|
__exportStar(require("./rio-landing-zone"), exports);
|
|
@@ -28,6 +28,8 @@ __exportStar(require("./pipeline/rio-backup-secrets-restore-stage"), exports);
|
|
|
28
28
|
__exportStar(require("./pipeline/rio-pipeline-type"), exports);
|
|
29
29
|
__exportStar(require("./kafka"), exports);
|
|
30
30
|
exports.kafka = require("./kafka");
|
|
31
|
+
__exportStar(require("./ses"), exports);
|
|
32
|
+
exports.ses = require("./ses");
|
|
31
33
|
__exportStar(require("./datadog"), exports);
|
|
32
34
|
exports.datadog = require("./datadog");
|
|
33
35
|
exports.datadogv2 = require("./datadogv2");
|
|
@@ -41,4 +43,4 @@ __exportStar(require("./backup"), exports);
|
|
|
41
43
|
exports.backup = require("./backup");
|
|
42
44
|
exports.ecr = require("./ecr");
|
|
43
45
|
__exportStar(require("./contributions/smart-route/gitlab-runner"), exports);
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFFM0IsNkNBQTJDO0FBRTNDLHFEQUFtQztBQUNuQyxzREFBb0M7QUFDcEMsb0RBQWtDO0FBRWxDLGdFQUE4QztBQUM5QyxpRkFBK0Q7QUFDL0QsdUNBQXFDO0FBRXJDLHlFQUF1RDtBQUN2RCw4RUFBNEQ7QUFDNUQsK0RBQTZDO0FBRTdDLDBDQUF3QjtBQUN4QixtQ0FBaUM7QUFFakMsd0NBQXNCO0FBQ3RCLCtCQUE2QjtBQUU3Qiw0Q0FBMEI7QUFDMUIsdUNBQXFDO0FBQ3JDLDJDQUF5QztBQUV6QywwRUFBd0Q7QUFFeEQsNkVBQTJEO0FBQzNELDhFQUE0RDtBQUU1RCxtRkFBaUU7QUFDakUsc0ZBQW9FO0FBRXBFLDRHQUEwRjtBQUUxRiwyQ0FBeUI7QUFDekIscUNBQW1DO0FBRW5DLCtCQUE2QjtBQUU3Qiw0RUFBMEQiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dhdGNoZnVsJztcblxuZXhwb3J0ICogYXMgd2F0Y2hmdWx2MiBmcm9tICcuL3dhdGNoZnVsdjInO1xuXG5leHBvcnQgKiBmcm9tICcuL3Jpby1sYW5kaW5nLXpvbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yaW8tbG9hZC1iYWxhbmNlcic7XG5leHBvcnQgKiBmcm9tICcuL3Jpby1jbGFpZG9tZXRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZmFyZ2F0ZS9yaW8tZmFyZ2F0ZS1zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZmFyZ2F0ZS9yaW8tZmFyZ2F0ZS1zZXJ2aWNlLWJsdWUtZ3JlZW4tYWxwaGEnO1xuZXhwb3J0ICogYXMgZmFyZ2F0ZSBmcm9tICcuL2ZhcmdhdGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3BpcGVsaW5lL3Jpby1iaXRidWNrZXQtc291cmNlLWFjdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVsaW5lL3Jpby1iYWNrdXAtc2VjcmV0cy1yZXN0b3JlLXN0YWdlJztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZWxpbmUvcmlvLXBpcGVsaW5lLXR5cGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2thZmthJztcbmV4cG9ydCAqIGFzIGthZmthIGZyb20gJy4va2Fma2EnO1xuXG5leHBvcnQgKiBmcm9tICcuL3Nlcyc7XG5leHBvcnQgKiBhcyBzZXMgZnJvbSAnLi9zZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RhdGFkb2cnO1xuZXhwb3J0ICogYXMgZGF0YWRvZyBmcm9tICcuL2RhdGFkb2cnO1xuZXhwb3J0ICogYXMgZGF0YWRvZ3YyIGZyb20gJy4vZGF0YWRvZ3YyJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL2NvcC1mcm9udGVuZC9jbG91ZGZyb250JztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL3RlYW0tdHJhbnNwb3J0LXR3by9kYXRhZG9nJztcbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy90ZWFtLXRyYW5zcG9ydC10d28vcGlwZWxpbmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnRyaWJ1dGlvbnMvdGVhbS1jbGFpZC9hd3MtYmFja3VwLW1vbml0b3JpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL3RlYW0tY2xhaWQvZGF0YWRvZy11c2FnZS1tb25pdG9yaW5nJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb250cmlidXRpb25zL3RlYW0tb3V0Ym91bmQtb3JkZXItYm9vay9hd3MtZWNzLWFicnVwdGx5LXN0b3BwZWQtbW9uaXRvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vYmFja3VwJztcbmV4cG9ydCAqIGFzIGJhY2t1cCBmcm9tICcuL2JhY2t1cCc7XG5cbmV4cG9ydCAqIGFzIGVjciBmcm9tICcuL2Vjcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29udHJpYnV0aW9ucy9zbWFydC1yb3V0ZS9naXRsYWItcnVubmVyJztcbiJdfQ==
|
|
@@ -11,7 +11,7 @@ export declare class KafkaEventSpec extends Construct {
|
|
|
11
11
|
/**
|
|
12
12
|
* Wrapper class for the event spec itself to support providing it via file or inline string.
|
|
13
13
|
*
|
|
14
|
-
* @see https://collaboration.
|
|
14
|
+
* @see https://bitbucket.collaboration-man.com/projects/RSEVTBU/repos/topic-creation-example for
|
|
15
15
|
* further information about the yaml spec.
|
|
16
16
|
*/
|
|
17
17
|
export declare class KafkaEventSpecSource {
|
|
@@ -46,7 +46,7 @@ KafkaEventSpec[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.KafkaEventSpec", versi
|
|
|
46
46
|
/**
|
|
47
47
|
* Wrapper class for the event spec itself to support providing it via file or inline string.
|
|
48
48
|
*
|
|
49
|
-
* @see https://collaboration.
|
|
49
|
+
* @see https://bitbucket.collaboration-man.com/projects/RSEVTBU/repos/topic-creation-example for
|
|
50
50
|
* further information about the yaml spec.
|
|
51
51
|
*/
|
|
52
52
|
class KafkaEventSpecSource {
|
|
@@ -103,4 +103,4 @@ class KafkaEventSpecSource {
|
|
|
103
103
|
exports.KafkaEventSpecSource = KafkaEventSpecSource;
|
|
104
104
|
_b = JSII_RTTI_SYMBOL_1;
|
|
105
105
|
KafkaEventSpecSource[_b] = { fqn: "@rio-cloud/cdk-v2-constructs.KafkaEventSpecSource", version: "0.0.0" };
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtZXZlbnQtc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rYWZrYS9rYWZrYS1ldmVudC1zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZDQUFvQztBQUNwQywyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELDJDQUF1QztBQUN2QyxnQ0FBZ0M7QUFNaEM7O0dBRUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxzQkFBUztJQUMzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxXQUFXLEdBQUcsK0RBQStELENBQUM7UUFDcEYsTUFBTSxNQUFNLEdBQWtCO1lBQzVCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFNBQVM7WUFDakIsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BDLGlCQUFpQixFQUFFO29CQUNqQixTQUFTLEVBQUU7d0JBQ1QsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFdBQVcsRUFBRSxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPO3FCQUNwQztpQkFDRjthQUNGO1lBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyx1REFBdUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLE9BQU8sQ0FBQztTQUNuSSxDQUFDO1FBRUYsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDL0UsUUFBUSxFQUFFLE1BQU07WUFDaEIsUUFBUSxFQUFFLE1BQU07WUFDaEIsTUFBTSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1NBQzlFLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRSw2RUFBNkUsQ0FBQyxDQUFDO1FBQy9JLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O0FBN0JILHdDQThCQzs7O0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLG9CQUFvQjtJQUMvQjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFZO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDdkMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQVEsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDcEQsTUFBTSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxjQUFtQjtRQUMxRCxPQUFPLE9BQU8sY0FBYyxLQUFLLFFBQVEsSUFBSSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVPLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxJQUE2QjtRQUM5RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxRQUFnQjtRQUNsRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFJRCxZQUE0QixJQUE2QjtRQUE3QixTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLG9CQUFvQixDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUF6REgsb0RBMERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICdqcy15YW1sJztcblxuZXhwb3J0IGludGVyZmFjZSBLYWZrYUV2ZW50U3BlY1Byb3BzIHtcbiAgcmVhZG9ubHkgc291cmNlOiBLYWZrYUV2ZW50U3BlY1NvdXJjZTtcbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdG8gcHJvdmlkZSBhbiBldmVudCBzcGVjaWZpY2F0aW9uIGZvciBhIEthZmthIHRvcGljIGFuZCB1cGxvYWQgaXQgdG8gdGhlIGNlbnRyYWwgZXZlbnQgc3RvcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYUV2ZW50U3BlYyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBLYWZrYUV2ZW50U3BlY1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHNuc1RvcGljQXJuID0gJ2Fybjphd3M6c25zOmV1LXdlc3QtMToxODY5OTM3NTc3MzQ6ZXZlbnQtc3BlY2lmaWNhdGlvbi11cGxvYWQnO1xuICAgIGNvbnN0IGFjdGlvbjogY3IuQXdzU2RrQ2FsbCA9IHtcbiAgICAgIHNlcnZpY2U6ICdTTlMnLFxuICAgICAgYWN0aW9uOiAncHVibGlzaCcsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIFRvcGljQXJuOiBzbnNUb3BpY0FybixcbiAgICAgICAgTWVzc2FnZTogcHJvcHMuc291cmNlLnRvU25zTWVzc2FnZSgpLFxuICAgICAgICBNZXNzYWdlQXR0cmlidXRlczoge1xuICAgICAgICAgIGFjY291bnRJZDoge1xuICAgICAgICAgICAgRGF0YVR5cGU6ICdTdHJpbmcnLFxuICAgICAgICAgICAgU3RyaW5nVmFsdWU6IFN0YWNrLm9mKHRoaXMpLmFjY291bnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZihgYXJuOmF3czpzMzo6OmV2ZW50LXNwZWNpZmljYXRpb24tc3RvcmUtMTg2OTkzNzU3NzM0LyR7cHJvcHMuc291cmNlLmV2ZW50TmFtZX0ueWFtbGApLFxuICAgIH07XG5cbiAgICBjb25zdCBldmVudFNwZWNDdXN0b21SZXNvdXJjZSA9IG5ldyBjci5Bd3NDdXN0b21SZXNvdXJjZSh0aGlzLCAnS2Fma2FFdmVudFNwZWMnLCB7XG4gICAgICBvbkNyZWF0ZTogYWN0aW9uLFxuICAgICAgb25VcGRhdGU6IGFjdGlvbixcbiAgICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHsgcmVzb3VyY2VzOiBbc25zVG9waWNBcm5dIH0pLFxuICAgIH0pO1xuXG4gICAgY29uc3Qga21zS2V5ID0ga21zLktleS5mcm9tS2V5QXJuKHRoaXMsICdldmVudFNwZWNTbnNUb3BpY0tleScsICdhcm46YXdzOmttczpldS13ZXN0LTE6MTg2OTkzNzU3NzM0OmtleS8xZjcyZGQ1OS1mMzJkLTRkNTItOWIyYi00NDdkZjg4YjNmYTMnKTtcbiAgICBrbXNLZXkuZ3JhbnRFbmNyeXB0RGVjcnlwdChldmVudFNwZWNDdXN0b21SZXNvdXJjZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcGVyIGNsYXNzIGZvciB0aGUgZXZlbnQgc3BlYyBpdHNlbGYgdG8gc3VwcG9ydCBwcm92aWRpbmcgaXQgdmlhIGZpbGUgb3IgaW5saW5lIHN0cmluZy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vYml0YnVja2V0LmNvbGxhYm9yYXRpb24tbWFuLmNvbS9wcm9qZWN0cy9SU0VWVEJVL3JlcG9zL3RvcGljLWNyZWF0aW9uLWV4YW1wbGUgZm9yXG4gKiBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IHRoZSB5YW1sIHNwZWMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYUV2ZW50U3BlY1NvdXJjZSB7XG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIEthZmthRXZlbnRTcGVjU291cmNlIGJ5IGxvYWRpbmcgc3BlYyBmcm9tIGEgKFVURi04IGVuY29kZWQpIHlhbWwgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGVuYW1lIC0gVGhlIGZpbGVuYW1lIG9mIHRoZSBldmVudCBzcGVjaWZpY2F0aW9uIGZpbGUuIE11c3QgZWl0aGVyIGJlIGFuIGFic29sdXRlIHBhdGggb3IgYSBwYXRoIHJlbGF0aXZlIHRvIENESydzIHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgKiBAcmV0dXJucyBhIEthZmthRXZlbnRTcGVjU291cmNlXG4gICAqL1xuICBzdGF0aWMgZnJvbVlhbWxGaWxlKGZpbGVuYW1lOiBzdHJpbmcpOiBLYWZrYUV2ZW50U3BlY1NvdXJjZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbVlhbWxTdHJpbmcoZnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCAndXRmOCcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIEthZmthRXZlbnRTcGVjU291cmNlIGZyb20gYW4gaW5saW5lIHlhbWwgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyAtIEV2ZW50U3BlYyBhcyB5YW1sIGZvcm1hdHRlZCBzdHJpbmdcbiAgICogQHJldHVybnMgYSBLYWZrYUV2ZW50U3BlY1NvdXJjZVxuICAgKi9cbiAgc3RhdGljIGZyb21ZYW1sU3RyaW5nKHNwZWM6IHN0cmluZyk6IEthZmthRXZlbnRTcGVjU291cmNlIHtcbiAgICBjb25zdCBwYXJzZWRTcGVjID0gdGhpcy5wYXJzZVlhbWxTcGVjKHNwZWMpO1xuICAgIHJldHVybiBuZXcgS2Fma2FFdmVudFNwZWNTb3VyY2UocGFyc2VkU3BlYyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwYXJzZVlhbWxTcGVjKHNwZWM6IHN0cmluZyk6IEthZmthRXZlbnRTcGVjaWZpY2F0aW9uIHtcbiAgICBjb25zdCBwYXJzZWRZYW1sU3BlYyA9IHlhbWwubG9hZChzcGVjKSBhcyBhbnk7XG4gICAgaWYgKCF0aGlzLmlzS2Fma2FFdmVudFNwZWNpZmljYXRpb24ocGFyc2VkWWFtbFNwZWMpKSB7XG4gICAgICB0aHJvdyBFcnJvcignRXhwZWN0aW5nIGV2ZW50IHNwZWMgdG8gYmUgZGVzY3JpYmUgYW4gb2JqZWN0IHdpdGggdGhlIHByb3BlcnR5IFtpbmZvLngtZXZlbnRdLicpO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkWWFtbFNwZWM7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc0thZmthRXZlbnRTcGVjaWZpY2F0aW9uKHBhcnNlZFlhbWxTcGVjOiBhbnkpOiBwYXJzZWRZYW1sU3BlYyBpcyBLYWZrYUV2ZW50U3BlY2lmaWNhdGlvbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBwYXJzZWRZYW1sU3BlYyA9PT0gJ29iamVjdCcgJiYgcGFyc2VkWWFtbFNwZWM/LmluZm8/LlsneC1ldmVudCddO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZGV0ZXJtaW5lRXZlbnROYW1lRnJvbVNwZWNpZmljYXRpb24oc3BlYzogS2Fma2FFdmVudFNwZWNpZmljYXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IGV2ZW50TmFtZXMgPSBPYmplY3Qua2V5cyhzcGVjLmluZm9bJ3gtZXZlbnQnXSk7XG4gICAgaWYgKGV2ZW50TmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcignRXhwZWN0aW5nIGF0IGxlYXN0IG9uZSBldmVudCBhdCBbaW5mby54LWV2ZW50XS4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucmVtb3ZlWWFtbEZpbGVFbmRpbmcoZXZlbnROYW1lc1swXSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZW1vdmVZYW1sRmlsZUVuZGluZyhmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZmlsZW5hbWUucmVwbGFjZSgvXFwueWE/bWwkLywgJycpO1xuICB9XG5cbiAgcmVhZG9ubHkgZXZlbnROYW1lOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHNwZWM6IEthZmthRXZlbnRTcGVjaWZpY2F0aW9uKSB7XG4gICAgdGhpcy5ldmVudE5hbWUgPSBLYWZrYUV2ZW50U3BlY1NvdXJjZS5kZXRlcm1pbmVFdmVudE5hbWVGcm9tU3BlY2lmaWNhdGlvbihzcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB0aGUgbWVzc2FnZSBiYXNlNjQgZW5jb2RlZCBzcGVjIGFzIGV4cGVjdGVkIGJ5IHRoZSBldmVudCBzdG9yZVxuICAgKi9cbiAgdG9TbnNNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHlhbWwuZHVtcCh0aGlzLnNwZWMpKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIH1cbn1cblxuLy8gVGhpcyB0eXBlIGlzIG5vdCBleGhhdXN0aXZlIGJ1dCBvbmx5IHJlZmxlY3RzIHRoZSBtaW5pbXVtIHByb3BlcnRpZXMgcmVxdWlyZWQgdG8gdmFsaWRhdGUgdGhlIGV2ZW50IHNwZWNpZmljYXRpb25cbmludGVyZmFjZSBLYWZrYUV2ZW50U3BlY2lmaWNhdGlvbiB7XG4gIGluZm86IHtcbiAgICAneC1ldmVudCc6IHsgW2V2ZW50TmFtZTogc3RyaW5nXTogYW55IH1bXTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -77,7 +77,7 @@ export interface LogCompactionProperties {
|
|
|
77
77
|
/**
|
|
78
78
|
* The current service limits can be found in the topic limits configuration of the topic manager.
|
|
79
79
|
*
|
|
80
|
-
* @see https://collaboration.
|
|
80
|
+
* @see https://bitbucket.collaboration-man.com/projects/RSEVTBU/repos/topic-manager/browse/config/topic-service-limits.yaml
|
|
81
81
|
*/
|
|
82
82
|
export interface KafkaTopicProps {
|
|
83
83
|
/**
|
|
@@ -130,7 +130,7 @@ export interface KafkaTopicProps {
|
|
|
130
130
|
/**
|
|
131
131
|
* The current service limits can be found in the topic limits configuration of the topic manager.
|
|
132
132
|
*
|
|
133
|
-
* @see https://collaboration.
|
|
133
|
+
* @see https://bitbucket.collaboration-man.com/projects/RSEVTBU/repos/topic-manager/browse/config/topic-service-limits.yaml
|
|
134
134
|
*/
|
|
135
135
|
export interface KafkaTopicV4Props {
|
|
136
136
|
/**
|
package/lib/kafka/kafka-topic.js
CHANGED
|
@@ -123,4 +123,4 @@ const mapProperties = (scope, props) => {
|
|
|
123
123
|
},
|
|
124
124
|
};
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtdG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2Fma2Eva2Fma2EtdG9waWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBaUU7QUFDakUsbUNBQW1DO0FBQ25DLDJDQUFtRDtBQUNuRCx5REFBMEU7QUFDMUUsMERBQXFEO0FBbU9yRDs7OztHQUlHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFFdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBR2pCLHlCQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUV6RSxJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUsR0FBRzthQUNiO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUFqQkgsZ0NBa0JDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUs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Q0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO1FBQ25FLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzlGLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxLQUFLO1FBQzdELGFBQWEsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDMUQsU0FBUyxFQUFFLFNBQVM7UUFDcEIsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLO1lBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07U0FDekI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIENmblJlc291cmNlLCBBbm5vdGF0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEthZmthRXZlbnRTcGVjLCBLYWZrYUV2ZW50U3BlY1NvdXJjZSB9IGZyb20gJy4va2Fma2EtZXZlbnQtc3BlYyc7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBtZXRhIGRhdGEgb2YgYSB0b3BpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljTWV0YURhdGEge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHNwZWNzIG9mIHRoZSBldmVudHMgb24gdGhhdCB0b3BpY1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzOiBLYWZrYUV2ZW50U3BlY1NvdXJjZVtdO1xuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIGludGVudCBvZiB0aGUgdG9waWMuIFRoaXMgbWlnaHQgYmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqIG9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2R1Y2VyIGFuZCB0aGUgY29udGV4dCBvZiB0aGUgZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciBhbGwgbWV0YSBkYXRhIG9mIGEgdjQgdG9waWMgc3BlYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljTWV0YURhdGFWNCB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc3BlY3Mgb2YgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqL1xuICByZWFkb25seSBldmVudHM6IEthZmthRXZlbnRTcGVjU291cmNlW107XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlcyB0aGUgaW50ZW50IG9mIHRoZSB0b3BpYy4gVGhpcyBtaWdodCBiZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICogb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvZHVjZXIgYW5kIHRoZSBjb250ZXh0IG9mIHRoZSBldmVudHMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB0b3BpYyBpcyBtZWFudCBmb3IgY29tcG9uZW50IGludGVybmFsIHVzYWdlIG9ubHkgb3IgaWYgb3RoZXIgc2VydmljZXMgY291bGRcbiAgICogdXNlIGl0IHRvby5cbiAgICovXG4gIHJlYWRvbmx5IGF1ZGllbmNlOiBUb3BpY0F1ZGllbmNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHByb2R1Y2VyIHdpbGwgcmVzdG9yZSB0aGUgZGF0YSBpbiBjYXNlIG9mIGEgZGlzYXN0ZXIgb3Igbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3ZlcnlQb2xpY3k6IFRvcGljUmVjb3ZlcnlQb2xpY3k7XG59XG5cbi8qKlxuICogUmVhZCBhbmQgd3JpdGUgcGVybWlzc2lvbnMgZm9yIHRoZSB0b3BpYy5cbiAqXG4gKiBzdHJpbmdzIGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIENOQU1FIG9mIHRoZSBjZXJ0aWZpY2F0ZSBvZiB0aGUgS2Fma2EgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYUFjbFN0YXRlbWVudCB7XG4gIC8qKlxuICAqIExpc3Qgb2YgY2xpZW50cyB0aGF0IHNob3VsZCBnZXQgd3JpdGUgcGVybWlzc2lvbnNcbiAgKi9cbiAgcmVhZG9ubHkgd3JpdGU6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNsaWVudHMgdGhhdCBzaG91bGQgZ2V0IHJlYWQgcGVybWlzc2lvbnNcbiAgICovXG4gIHJlYWRvbmx5IHJlYWQ6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNsaWVudHMgdGhhdCBzaG91bGQgZ2V0IGRlbGV0ZSBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogQXR0ZW50aW9uOiBPbmx5IHVzZSBEZWxldGlvbiBwb2xpY3kgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIVxuICAgKiBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBLU3RyZWFtIGFuZCBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGRlbGV0ZSBtZXNzYWdlcyBhbmQgdGhlIHRvcGljLjxicj5cbiAgICogSWYgeW91IGp1c3Qgd2FudCB0byBcImRlbGV0ZVwiIGEgbWVzc2FnZSBvbiBhIGxvZyBjb21wYWN0ZWQgdG9waWMsIHlvdSBzaG91bGQgbm90IHNldCB0aGlzIHBlcm1pc3Npb24gYW5kIHNlbmQgYSB0b21ic3RvbmUgbWVzc2FnZSBpbnN0ZWFkLlxuICAgKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZT86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBsb2cgY29tcGFjdGlvbiByZWxhdGVkIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQ29tcGFjdGlvblByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRvIHJldGFpbiBkZWxldGUgdG9tYnN0b25lIG1hcmtlcnMgZm9yIGxvZyBjb21wYWN0ZWQgdG9waWNzO1xuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBkYXlzIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqIEBkZWZhdWx0VmFsdWUgMSBkYXlcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJldGVudGlvbj86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIFRoZSBjdXJyZW50IHNlcnZpY2UgbGltaXRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgdG9waWMgbGltaXRzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHRvcGljIG1hbmFnZXIuXG4gKlxuICogQHNlZSBodHRwczovL2NvbGxhYm9yYXRpb24ubXNpLmF1ZGkuY29tL3N0YXNoL3Byb2plY3RzL1JTRVZUQlUvcmVwb3MvdG9waWMtbWFuYWdlci9icm93c2UvY29uZmlnL3RvcGljLXNlcnZpY2UtbGltaXRzLnlhbWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljUHJvcHMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSB0b3BpYzsgaGFzIHRvIG1hdGNoIHBhdHRlcm4gW0EtWmEtejAtOS4tXStcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcGFyYWxsZWxpc20gb2YgdGhlIHRvcGljOyBzaG91bGQgYmUgaW5jcmVhc2VkIGZvclxuICAgKiBsYXJnZSBleHBlY3RlZCBsb2FkcyAoZS5nLiwgMjUgZm9yIHJpby5hc3NldC1pb3QtZXZlbnRzKS5cbiAgICogVGhlIHNvZnQgbGltaXQgaXMgMTAgcGFydGl0aW9ucyBidXQgY2FuIGJlIGluY3JlYXNlZCB1cG9uIHJlcXVlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtYmVyT2ZQYXJ0aXRpb25zOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZGVncmVlIG9mIHJlcGxpY2F0aW9uIG9mIG1lc3NhZ2VzOyBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCB0aGUgbnVtYmVyIG9mIGJyb2tlcnMgKGN1cnJlbnRseSAzKS5cbiAgICogQGRlZmF1bHRWYWx1ZSAzXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhdGlvbkZhY3Rvcj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZSBob3cgbG9uZyBtZXNzYWdlcyBhcmUgcmV0YWluZWQgb24gS2Fma2EgY2x1c3RlcjtcbiAgICpcbiAgICogV2UgcmVjb21tZW5kIDMwIGRheXMgZm9yIGdlbmVyYWwgZXZlbnRzIGFuZCA3IGRheXMgZm9yIHNlbnNvciBldmVudHMgYW5kIG90aGVyIGhpZ2gtbG9hZCBjYXNlcy5cbiAgICogVGhlIHNvZnQgbGltaXQgaXMgMyB0byAzMCBkYXlzIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqIEBkZWZhdWx0VmFsdWUgNyBkYXlzXG4gICAqL1xuICByZWFkb25seSByZXRlbnRpb24/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IHRvICdmYWxzZSwgdGhlIHRvcGljJ3MgZGF0YSB3aWxsIGJlIGRlbGV0ZWQgb24gS2Fma2EgMTAgZGF5cyBhZnRlciBzdGFjayBkZWxldGlvbi5cbiAgICogSWYgc2V0IHRvICd0cnVlJywgaXQgd2lsbCBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW50RGVsZXRpb25FbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1ldGFkYXRhIG9mIHRoZSB0b3BpYy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhOiBLYWZrYVRvcGljTWV0YURhdGE7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdG8gdGhlIHRvcGljJ3MgZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGFjbDogS2Fma2FBY2xTdGF0ZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgdG9waWMgaXMgbG9nIGNvbXBhY3RlZCBvciBub3QuXG4gICAqL1xuICByZWFkb25seSBpc0xvZ0NvbXBhY3RlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogTXVzdCBvbmx5IGJlIHByb3ZpZGVkIGlmICdpc0xvZ0NvbXBhY3RlZCcgaXMgJ3RydWUnLlxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nQ29tcGFjdGlvblByb3BlcnRpZXM/OiBMb2dDb21wYWN0aW9uUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBUaGUgY3VycmVudCBzZXJ2aWNlIGxpbWl0cyBjYW4gYmUgZm91bmQgaW4gdGhlIHRvcGljIGxpbWl0cyBjb25maWd1cmF0aW9uIG9mIHRoZSB0b3BpYyBtYW5hZ2VyLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9jb2xsYWJvcmF0aW9uLm1zaS5hdWRpLmNvbS9zdGFzaC9wcm9qZWN0cy9SU0VWVEJVL3JlcG9zL3RvcGljLW1hbmFnZXIvYnJvd3NlL2NvbmZpZy90b3BpYy1zZXJ2aWNlLWxpbWl0cy55YW1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2Fma2FUb3BpY1Y0UHJvcHMge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSB0b3BpYzsgaGFzIHRvIG1hdGNoIHBhdHRlcm4gW0EtWmEtejAtOS4tXStcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcGFyYWxsZWxpc20gb2YgdGhlIHRvcGljOyBzaG91bGQgYmUgaW5jcmVhc2VkIGZvclxuICAgKiBsYXJnZSBleHBlY3RlZCBsb2FkcyAoZS5nLiwgMjUgZm9yIHJpby5hc3NldC1pb3QtZXZlbnRzKS5cbiAgICogVGhlIHNvZnQgbGltaXQgaXMgMTAgcGFydGl0aW9ucyBidXQgY2FuIGJlIGluY3JlYXNlZCB1cG9uIHJlcXVlc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtYmVyT2ZQYXJ0aXRpb25zOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZGVncmVlIG9mIHJlcGxpY2F0aW9uIG9mIG1lc3NhZ2VzOyBoYXMgdG8gYmUgYmV0d2VlbiAxIGFuZCB0aGUgbnVtYmVyIG9mIGJyb2tlcnMgKGN1cnJlbnRseSAzKS5cbiAgICogQGRlZmF1bHRWYWx1ZSAzXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhdGlvbkZhY3Rvcj86IG51bWJlcjtcblxuICAvKipcbiAgICogVGltZSBob3cgbG9uZyBtZXNzYWdlcyBhcmUgcmV0YWluZWQgb24gS2Fma2EgY2x1c3RlcjtcbiAgICpcbiAgICogV2UgcmVjb21tZW5kIDMwIGRheXMgZm9yIGdlbmVyYWwgZXZlbnRzIGFuZCA3IGRheXMgZm9yIHNlbnNvciBldmVudHMgYW5kIG90aGVyIGhpZ2gtbG9hZCBjYXNlcy5cbiAgICogVGhlIHNvZnQgbGltaXQgaXMgMyB0byAzMCBkYXlzIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqIEBkZWZhdWx0VmFsdWUgNyBkYXlzXG4gICAqL1xuICByZWFkb25seSByZXRlbnRpb24/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogSWYgc2V0IHRvICdmYWxzZSwgdGhlIHRvcGljJ3MgZGF0YSB3aWxsIGJlIGRlbGV0ZWQgb24gS2Fma2EgMTAgZGF5cyBhZnRlciBzdGFjayBkZWxldGlvbi5cbiAgICogSWYgc2V0IHRvICd0cnVlJywgaXQgd2lsbCBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbnN0YW50RGVsZXRpb25FbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1ldGFkYXRhIG9mIHRoZSB0b3BpYy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhOiBLYWZrYVRvcGljTWV0YURhdGFWNDtcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0byB0aGUgdG9waWMncyBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNsOiBLYWZrYUFjbFN0YXRlbWVudDtcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBpcyBsb2cgY29tcGFjdGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9nQ29tcGFjdGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNdXN0IG9ubHkgYmUgcHJvdmlkZWQgaWYgJ2lzTG9nQ29tcGFjdGVkJyBpcyAndHJ1ZScuXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBsb2dDb21wYWN0aW9uUHJvcGVydGllcz86IExvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIHRvcGljIHNob3VsZCBiZSBiYWNrZWQgdXAgYXV0b21hdGljYWxseSBvciBub3QuXG4gICAqIEl0IGNvdWxkIGp1c3QgYmUgZW5hYmxlZCwgaWYgdGhlIHRvcGljIGlzIGNvbXBhY3RlZCBhbmQgdGhlIFJlY292ZXJ5UG9saWN5IGlzICdyZWNvdmVyYWJsZScuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBtYW5hZ2VkQmFja3VwRW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIFRvcGljcyB0YXJnZXQgYXVkaWVuY2VcbiAqL1xuZXhwb3J0IHR5cGUgVG9waWNBdWRpZW5jZSA9ICdjb21wb25lbnQtaW50ZXJuYWwnIHwgJ2NvbXBhbnktaW50ZXJuYWwnO1xuXG4vKipcbiAqIFRoZSBUb3BpY3MgcmVjb3ZlcnkgcG9saWN5IGd1YXJhbnRlZWQgYnkgdGhlIHByb2R1Y2VyXG4gKi9cbmV4cG9ydCB0eXBlIFRvcGljUmVjb3ZlcnlQb2xpY3kgPSAnbm9uZScgfCAncmVjb3ZlcmFibGUnO1xuXG4vKipcbiAqIENvbnN0cnVjdCB0byBjcmVhdGUgYSBrYWZrYSB0b3BpYy5cbiAqXG4gKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIEthZmthVG9waWNWNH0gaW5zdGVhZFxuICovXG5leHBvcnQgY2xhc3MgS2Fma2FUb3BpYyBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEthZmthVG9waWNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cblxuICAgIEFubm90YXRpb25zLm9mKHRoaXMpLmFkZERlcHJlY2F0aW9uKCdLYWZrYVRvcGljJywgXCJVc2UgJ0thZmthVG9waWNWNCchXCIpO1xuXG4gICAgbmV3IENmblJlc291cmNlKHRoaXMsICdLYWZrYVRvcGljJywge1xuICAgICAgdHlwZTogJ0N1c3RvbTo6S2Fma2FUb3BpYycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLm1hcFByb3BlcnRpZXModGhpcywgcHJvcHMpLFxuICAgICAgICBWZXJzaW9uOiAnMycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24odmFsaWRhdG9yKHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25zdHJ1Y3QgdG8gY3JlYXRlIGEga2Fma2EgdG9waWMuXG4gKi9cbmV4cG9ydCBjbGFzcyBLYWZrYVRvcGljVjQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBLYWZrYVRvcGljVjRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgQ2ZuUmVzb3VyY2UodGhpcywgJ0thZmthVG9waWMnLCB7XG4gICAgICB0eXBlOiAnQ3VzdG9tOjpLYWZrYVRvcGljJyxcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgLi4ubWFwUHJvcGVydGllcyh0aGlzLCBwcm9wcyksXG4gICAgICAgIFZlcnNpb246ICc0JyxcbiAgICAgICAgQXVkaWVuY2U6IHByb3BzLm1ldGFkYXRhLmF1ZGllbmNlLFxuICAgICAgICBSZWNvdmVyeVBvbGljeTogcHJvcHMubWV0YWRhdGEucmVjb3ZlcnlQb2xpY3ksXG4gICAgICAgIE1hbmFnZWRCYWNrdXBFbmFibGVkOiBwcm9wcy5tYW5hZ2VkQmFja3VwRW5hYmxlZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbih2YWxpZGF0b3IocHJvcHMpKTtcbiAgICB0aGlzLm5vZGUuYWRkVmFsaWRhdGlvbihiYWNrdXBQcm9wZXJ0aWVzVmFsaWRhdG9yKHByb3BzKSk7XG4gIH1cbn1cblxuY29uc3QgdmFsaWRhdG9yID0gKHByb3BzOiBLYWZrYVRvcGljUHJvcHMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB2YWxpZGF0ZTogKCk6IHN0cmluZ1tdID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICBpZiAoIXByb3BzLm5hbWUubWF0Y2goL15bQS1aYS16MC05Li1dKyQvKSkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbmFtZV06IGV4cGVjdGluZyB0b3BpYyBuYW1lIHRvIG1hdGNoIHRoZSByZWcgZXhwIGBbQS1aYS16MC05Li1dK2AuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMpIHx8IHByb3BzLm51bWJlck9mUGFydGl0aW9ucyA8IDEpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goYEludmFsaWQgW251bWJlck9mUGFydGl0aW9uc106IGV4cGVjdGluZyBudW1iZXIgb2YgcGFydGl0aW9ucyB0byBiZSBhIHBvc2l0aXZlIGludGVnZXIgYnV0IGdvdCAke3Byb3BzLm51bWJlck9mUGFydGl0aW9uc30uYCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yKSB8fCBwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciA8IDEgfHwgcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPiAzKSkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbcmVwbGljYXRpb25GYWN0b3JdOiBleHBlY3RpbmcgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDMuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwcm9wcy5tZXRhZGF0YS5ldmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFttZXRhZGF0YV06IGV4cGVjdGluZyBbZXZlbnRzXSB0byBoYXZlIGF0IGxlYXN0IG9uIGVsZW1lbnQuJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghcHJvcHMuaXNMb2dDb21wYWN0ZWQgJiYgcHJvcHMubG9nQ29tcGFjdGlvblByb3BlcnRpZXMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW2xvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzXTogbG9nIGNvbXBhY3Rpb24gaXMgZGlzYWJsZWQgc28gcHJvcGVydGllcyBtdXN0IGJlIHVuZGVmaW5lZC4nKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LFxuICB9O1xufTtcblxuY29uc3QgYmFja3VwUHJvcGVydGllc1ZhbGlkYXRvciA9IChwcm9wczogS2Fma2FUb3BpY1Y0UHJvcHMpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB2YWxpZGF0ZTogKCk6IHN0cmluZ1tdID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgICBpZiAocHJvcHMubWFuYWdlZEJhY2t1cEVuYWJsZWQgJiYgIXByb3BzLmlzTG9nQ29tcGFjdGVkKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFttYW5hZ2VkQmFja3VwRW5hYmxlZF06IG1hbmFnZWQgYmFja3VwIGNhbiBvbmx5IGJlIGVuYWJsZWQgZm9yIGxvZyBjb21wYWN0ZWQgdG9waWNzLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcHMubWFuYWdlZEJhY2t1cEVuYWJsZWQgJiYgcHJvcHMubWV0YWRhdGEucmVjb3ZlcnlQb2xpY3kgIT09ICdyZWNvdmVyYWJsZScpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW21hbmFnZWRCYWNrdXBFbmFibGVkXTogdG9waWNzIHdpdGggbWFuYWdlZEJhY2t1cEVuYWJsZWQgaGF2ZSB0byBoYXZlIHJlY292ZXJ5IHBvbGljeSBcInJlY292ZXJhYmxlXCIuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgfTtcblxufTtcblxuY29uc3QgbWFwUHJvcGVydGllcyA9IChzY29wZTogSUNvbnN0cnVjdCwgcHJvcHM6IEthZmthVG9waWNQcm9wcyB8IEthZmthVG9waWNWNFByb3BzKSA9PiB7XG4gIGNvbnN0IHRlYW1FbWFpbCA9IFJpb0xhbmRpbmdab25lLmdldFRlYW1FbWFpbFBhcmFtZXRlcihzY29wZSkuc3RyaW5nVmFsdWU7XG5cbiAgY29uc3QgZXZlbnRzID0gcHJvcHMubWV0YWRhdGEuZXZlbnRzLm1hcChzb3VyY2UgPT4ge1xuICAgIG5ldyBLYWZrYUV2ZW50U3BlYyhzY29wZSwgYCR7c291cmNlLmV2ZW50TmFtZS5yZXBsYWNlKC9cXC4vZywgJ18nKX0tRXZlbnRTcGVjYCwgeyBzb3VyY2UgfSk7XG4gICAgcmV0dXJuIHNvdXJjZS5ldmVudE5hbWU7XG4gIH0pO1xuXG4gIGNvbnN0IGRlbGV0ZVJldGVudGlvbkR1cmF0aW9uID0gcHJvcHMubG9nQ29tcGFjdGlvblByb3BlcnRpZXM/LmRlbGV0ZVJldGVudGlvbiA/PyBEdXJhdGlvbi5kYXlzKDcpO1xuICBpZiAocHJvcHMuYWNsLmRlbGV0ZSAhPSB1bmRlZmluZWQgJiYgcHJvcHMuYWNsLmRlbGV0ZS5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgYW5ub3RhdGlvbnMgPSBjZGsuQW5ub3RhdGlvbnMub2YoY2RrLlN0YWNrLm9mKHNjb3BlKSk7XG4gICAgYW5ub3RhdGlvbnMuYWRkV2FybmluZ1YyKFxuICAgICAgYEByaW8tY2xvdWQvY2RrLXYyLWNvbnN0cnVjdHMva2Fma2Eva2Fma2EtdG9waWMvJHtwcm9wcy5uYW1lfS9EZWxldGlvblBvbGljeWAsXG4gICAgICBgXG4g4p2MIFlvdSBoYXZlIHNldCBcImRlbGV0ZVwiIHBlcm1pc3Npb24gZm9yIGthZmthLXRvcGljICR7cHJvcHMubmFtZX0uIFlvdSBwcm9iYWJseSBkbyBub3QgbmVlZCB0aGlzLiBQbGVhc2UgdXNlIHRoaXMgb25seSBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuXG5gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBTZXJ2aWNlVG9rZW46ICdhcm46YXdzOnNuczpldS13ZXN0LTE6MTg2OTkzNzU3NzM0OmRwLXRvcGljLW1hbmFnZXItc25zLXRvcGljJyxcbiAgICBUb3BpY05hbWU6IHByb3BzLm5hbWUsXG4gICAgRGVzY3JpcHRpb246IHByb3BzLm1ldGFkYXRhLmRlc2NyaXB0aW9uLFxuICAgIEV2ZW50czogZXZlbnRzLFxuICAgIE51bWJlck9mUGFydGl0aW9uczogcHJvcHMubnVtYmVyT2ZQYXJ0aXRpb25zLFxuICAgIFJlcGxpY2F0aW9uRmFjdG9yOiBwcm9wcy5yZXBsaWNhdGlvbkZhY3RvciA/PyAzLFxuICAgIFJldGVudGlvbk1zOiAocHJvcHMucmV0ZW50aW9uID8/IER1cmF0aW9uLmRheXMoNykpLnRvTWlsbGlzZWNvbmRzKCksXG4gICAgRGVsZXRlUmV0ZW50aW9uTXM6IHByb3BzLmlzTG9nQ29tcGFjdGVkID8gZGVsZXRlUmV0ZW50aW9uRHVyYXRpb24udG9NaWxsaXNlY29uZHMoKSA6IHVuZGVmaW5lZCxcbiAgICBJbnN0YW50RGVsZXRpb25FbmFibGVkOiBwcm9wcy5pbnN0YW50RGVsZXRpb25FbmFibGVkID8/IGZhbHNlLFxuICAgIENsZWFudXBQb2xpY3k6IHByb3BzLmlzTG9nQ29tcGFjdGVkID8gJ2NvbXBhY3QnIDogJ2RlbGV0ZScsXG4gICAgVGVhbUVtYWlsOiB0ZWFtRW1haWwsXG4gICAgQUNMOiB7XG4gICAgICBSZWFkOiBwcm9wcy5hY2wucmVhZCxcbiAgICAgIFdyaXRlOiBwcm9wcy5hY2wud3JpdGUsXG4gICAgICBEZWxldGU6IHByb3BzLmFjbC5kZWxldGUsXG4gICAgfSxcbiAgfTtcbn07XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2Fma2EtdG9waWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2Fma2Eva2Fma2EtdG9waWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBaUU7QUFDakUsbUNBQW1DO0FBQ25DLDJDQUFtRDtBQUNuRCx5REFBMEU7QUFDMUUsMERBQXFEO0FBbU9yRDs7OztHQUlHO0FBQ0gsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFFdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBR2pCLHlCQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQztRQUV6RSxJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUsR0FBRzthQUNiO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7QUFqQkgsZ0NBa0JDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsWUFBYSxTQUFRLHNCQUFTO0lBRXpDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLHlCQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNsQyxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2dCQUM3QixPQUFPLEVBQUUs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Q0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFO1FBQ25FLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzlGLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0IsSUFBSSxLQUFLO1FBQzdELGFBQWEsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDMUQsU0FBUyxFQUFFLFNBQVM7UUFDcEIsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLO1lBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07U0FDekI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIENmblJlc291cmNlLCBBbm5vdGF0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEthZmthRXZlbnRTcGVjLCBLYWZrYUV2ZW50U3BlY1NvdXJjZSB9IGZyb20gJy4va2Fma2EtZXZlbnQtc3BlYyc7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBtZXRhIGRhdGEgb2YgYSB0b3BpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljTWV0YURhdGEge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHNwZWNzIG9mIHRoZSBldmVudHMgb24gdGhhdCB0b3BpY1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzOiBLYWZrYUV2ZW50U3BlY1NvdXJjZVtdO1xuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgdGhlIGludGVudCBvZiB0aGUgdG9waWMuIFRoaXMgbWlnaHQgYmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqIG9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2R1Y2VyIGFuZCB0aGUgY29udGV4dCBvZiB0aGUgZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBXcmFwcGVyIGZvciBhbGwgbWV0YSBkYXRhIG9mIGEgdjQgdG9waWMgc3BlYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYVRvcGljTWV0YURhdGFWNCB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc3BlY3Mgb2YgdGhlIGV2ZW50cyBvbiB0aGF0IHRvcGljXG4gICAqL1xuICByZWFkb25seSBldmVudHM6IEthZmthRXZlbnRTcGVjU291cmNlW107XG5cbiAgLyoqXG4gICAqIERlc2NyaWJlcyB0aGUgaW50ZW50IG9mIHRoZSB0b3BpYy4gVGhpcyBtaWdodCBiZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnRzIG9uIHRoYXQgdG9waWNcbiAgICogb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvZHVjZXIgYW5kIHRoZSBjb250ZXh0IG9mIHRoZSBldmVudHMuXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgYSB0b3BpYyBpcyBtZWFudCBmb3IgY29tcG9uZW50IGludGVybmFsIHVzYWdlIG9ubHkgb3IgaWYgb3RoZXIgc2VydmljZXMgY291bGRcbiAgICogdXNlIGl0IHRvby5cbiAgICovXG4gIHJlYWRvbmx5IGF1ZGllbmNlOiBUb3BpY0F1ZGllbmNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHByb2R1Y2VyIHdpbGwgcmVzdG9yZSB0aGUgZGF0YSBpbiBjYXNlIG9mIGEgZGlzYXN0ZXIgb3Igbm90LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjb3ZlcnlQb2xpY3k6IFRvcGljUmVjb3ZlcnlQb2xpY3k7XG59XG5cbi8qKlxuICogUmVhZCBhbmQgd3JpdGUgcGVybWlzc2lvbnMgZm9yIHRoZSB0b3BpYy5cbiAqXG4gKiBzdHJpbmdzIGFyZSBtYXRjaGVkIGFnYWluc3QgdGhlIENOQU1FIG9mIHRoZSBjZXJ0aWZpY2F0ZSBvZiB0aGUgS2Fma2EgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLYWZrYUFjbFN0YXRlbWVudCB7XG4gIC8qKlxuICAqIExpc3Qgb2YgY2xpZW50cyB0aGF0IHNob3VsZCBnZXQgd3JpdGUgcGVybWlzc2lvbnNcbiAgKi9cbiAgcmVhZG9ubHkgd3JpdGU6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNsaWVudHMgdGhhdCBzaG91bGQgZ2V0IHJlYWQgcGVybWlzc2lvbnNcbiAgICovXG4gIHJlYWRvbmx5IHJlYWQ6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNsaWVudHMgdGhhdCBzaG91bGQgZ2V0IGRlbGV0ZSBwZXJtaXNzaW9ucy5cbiAgICpcbiAgICogQXR0ZW50aW9uOiBPbmx5IHVzZSBEZWxldGlvbiBwb2xpY3kgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIVxuICAgKiBUaGlzIGlzIG9ubHkgbmVjZXNzYXJ5IGZvciBLU3RyZWFtIGFuZCBhbGxvd3MgdGhlIGFwcGxpY2F0aW9uIHRvIGRlbGV0ZSBtZXNzYWdlcyBhbmQgdGhlIHRvcGljLjxicj5cbiAgICogSWYgeW91IGp1c3Qgd2FudCB0byBcImRlbGV0ZVwiIGEgbWVzc2FnZSBvbiBhIGxvZyBjb21wYWN0ZWQgdG9waWMsIHlvdSBzaG91bGQgbm90IHNldCB0aGlzIHBlcm1pc3Npb24gYW5kIHNlbmQgYSB0b21ic3RvbmUgbWVzc2FnZSBpbnN0ZWFkLlxuICAgKlxuICAgKiBAanNpaSBpZ25vcmVcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZT86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCBsb2cgY29tcGFjdGlvbiByZWxhdGVkIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQ29tcGFjdGlvblByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRvIHJldGFpbiBkZWxldGUgdG9tYnN0b25lIG1hcmtlcnMgZm9yIGxvZyBjb21wYWN0ZWQgdG9waWNzO1xuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBkYXlzIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqIEBkZWZhdWx0VmFsdWUgMSBkYXlcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZVJldGVudGlvbj86IER1cmF0aW9uO1xufVxuXG4vKipcbiAqIFRoZSBjdXJyZW50IHNlcnZpY2UgbGltaXRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgdG9waWMgbGltaXRzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHRvcGljIG1hbmFnZXIuXG4gKlxuICogQHNlZSBodHRwczovL2JpdGJ1Y2tldC5jb2xsYWJvcmF0aW9uLW1hbi5jb20vcHJvamVjdHMvUlNFVlRCVS9yZXBvcy90b3BpYy1tYW5hZ2VyL2Jyb3dzZS9jb25maWcvdG9waWMtc2VydmljZS1saW1pdHMueWFtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHRvcGljOyBoYXMgdG8gbWF0Y2ggcGF0dGVybiBbQS1aYS16MC05Li1dK1xuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiBwYXJhbGxlbGlzbSBvZiB0aGUgdG9waWM7IHNob3VsZCBiZSBpbmNyZWFzZWQgZm9yXG4gICAqIGxhcmdlIGV4cGVjdGVkIGxvYWRzIChlLmcuLCAyNSBmb3IgcmlvLmFzc2V0LWlvdC1ldmVudHMpLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAxMCBwYXJ0aXRpb25zIGJ1dCBjYW4gYmUgaW5jcmVhc2VkIHVwb24gcmVxdWVzdHMuXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZlBhcnRpdGlvbnM6IG51bWJlcjtcblxuICAvKipcbiAgICogRGVmaW5lcyBkZWdyZWUgb2YgcmVwbGljYXRpb24gb2YgbWVzc2FnZXM7IGhhcyB0byBiZSBiZXR3ZWVuIDEgYW5kIHRoZSBudW1iZXIgb2YgYnJva2VycyAoY3VycmVudGx5IDMpLlxuICAgKiBAZGVmYXVsdFZhbHVlIDNcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2F0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaW1lIGhvdyBsb25nIG1lc3NhZ2VzIGFyZSByZXRhaW5lZCBvbiBLYWZrYSBjbHVzdGVyO1xuICAgKlxuICAgKiBXZSByZWNvbW1lbmQgMzAgZGF5cyBmb3IgZ2VuZXJhbCBldmVudHMgYW5kIDcgZGF5cyBmb3Igc2Vuc29yIGV2ZW50cyBhbmQgb3RoZXIgaGlnaC1sb2FkIGNhc2VzLlxuICAgKiBUaGUgc29mdCBsaW1pdCBpcyAzIHRvIDMwIGRheXMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICogQGRlZmF1bHRWYWx1ZSA3IGRheXNcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gJ2ZhbHNlLCB0aGUgdG9waWMncyBkYXRhIHdpbGwgYmUgZGVsZXRlZCBvbiBLYWZrYSAxMCBkYXlzIGFmdGVyIHN0YWNrIGRlbGV0aW9uLlxuICAgKiBJZiBzZXQgdG8gJ3RydWUnLCBpdCB3aWxsIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbnREZWxldGlvbkVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWV0YWRhdGEgb2YgdGhlIHRvcGljLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE6IEthZmthVG9waWNNZXRhRGF0YTtcblxuICAvKipcbiAgICogVGhlIHBlcm1pc3Npb25zIHRvIGFjY2VzcyB0byB0aGUgdG9waWMncyBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgYWNsOiBLYWZrYUFjbFN0YXRlbWVudDtcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBpcyBsb2cgY29tcGFjdGVkIG9yIG5vdC5cbiAgICovXG4gIHJlYWRvbmx5IGlzTG9nQ29tcGFjdGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBNdXN0IG9ubHkgYmUgcHJvdmlkZWQgaWYgJ2lzTG9nQ29tcGFjdGVkJyBpcyAndHJ1ZScuXG4gICAqIEBkZWZhdWx0VmFsdWUgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBsb2dDb21wYWN0aW9uUHJvcGVydGllcz86IExvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFRoZSBjdXJyZW50IHNlcnZpY2UgbGltaXRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgdG9waWMgbGltaXRzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHRvcGljIG1hbmFnZXIuXG4gKlxuICogQHNlZSBodHRwczovL2JpdGJ1Y2tldC5jb2xsYWJvcmF0aW9uLW1hbi5jb20vcHJvamVjdHMvUlNFVlRCVS9yZXBvcy90b3BpYy1tYW5hZ2VyL2Jyb3dzZS9jb25maWcvdG9waWMtc2VydmljZS1saW1pdHMueWFtbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEthZmthVG9waWNWNFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgdG9waWM7IGhhcyB0byBtYXRjaCBwYXR0ZXJuIFtBLVphLXowLTkuLV0rXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgZGVncmVlIG9mIHBhcmFsbGVsaXNtIG9mIHRoZSB0b3BpYzsgc2hvdWxkIGJlIGluY3JlYXNlZCBmb3JcbiAgICogbGFyZ2UgZXhwZWN0ZWQgbG9hZHMgKGUuZy4sIDI1IGZvciByaW8uYXNzZXQtaW90LWV2ZW50cykuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDEwIHBhcnRpdGlvbnMgYnV0IGNhbiBiZSBpbmNyZWFzZWQgdXBvbiByZXF1ZXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG51bWJlck9mUGFydGl0aW9uczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGRlZ3JlZSBvZiByZXBsaWNhdGlvbiBvZiBtZXNzYWdlczsgaGFzIHRvIGJlIGJldHdlZW4gMSBhbmQgdGhlIG51bWJlciBvZiBicm9rZXJzIChjdXJyZW50bHkgMykuXG4gICAqIEBkZWZhdWx0VmFsdWUgM1xuICAgKi9cbiAgcmVhZG9ubHkgcmVwbGljYXRpb25GYWN0b3I/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRpbWUgaG93IGxvbmcgbWVzc2FnZXMgYXJlIHJldGFpbmVkIG9uIEthZmthIGNsdXN0ZXI7XG4gICAqXG4gICAqIFdlIHJlY29tbWVuZCAzMCBkYXlzIGZvciBnZW5lcmFsIGV2ZW50cyBhbmQgNyBkYXlzIGZvciBzZW5zb3IgZXZlbnRzIGFuZCBvdGhlciBoaWdoLWxvYWQgY2FzZXMuXG4gICAqIFRoZSBzb2Z0IGxpbWl0IGlzIDMgdG8gMzAgZGF5cyBidXQgY2FuIGJlIGluY3JlYXNlZCB1cG9uIHJlcXVlc3RzLlxuICAgKiBAZGVmYXVsdFZhbHVlIDcgZGF5c1xuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCB0byAnZmFsc2UsIHRoZSB0b3BpYydzIGRhdGEgd2lsbCBiZSBkZWxldGVkIG9uIEthZmthIDEwIGRheXMgYWZ0ZXIgc3RhY2sgZGVsZXRpb24uXG4gICAqIElmIHNldCB0byAndHJ1ZScsIGl0IHdpbGwgYmUgZGVsZXRlZCBpbW1lZGlhdGVseSBhZnRlciBzdGFjayBkZWxldGlvbi5cbiAgICogQGRlZmF1bHRWYWx1ZSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFudERlbGV0aW9uRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhZGF0YSBvZiB0aGUgdG9waWMuXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YTogS2Fma2FUb3BpY01ldGFEYXRhVjQ7XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyB0byBhY2Nlc3MgdG8gdGhlIHRvcGljJ3MgZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGFjbDogS2Fma2FBY2xTdGF0ZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgd2hldGhlciB0aGUgdG9waWMgaXMgbG9nIGNvbXBhY3RlZCBvciBub3QuXG4gICAqL1xuICByZWFkb25seSBpc0xvZ0NvbXBhY3RlZDogYm9vbGVhbjtcblxuICAvKipcbiAgICogTXVzdCBvbmx5IGJlIHByb3ZpZGVkIGlmICdpc0xvZ0NvbXBhY3RlZCcgaXMgJ3RydWUnLlxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nQ29tcGFjdGlvblByb3BlcnRpZXM/OiBMb2dDb21wYWN0aW9uUHJvcGVydGllcztcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSB0b3BpYyBzaG91bGQgYmUgYmFja2VkIHVwIGF1dG9tYXRpY2FsbHkgb3Igbm90LlxuICAgKiBJdCBjb3VsZCBqdXN0IGJlIGVuYWJsZWQsIGlmIHRoZSB0b3BpYyBpcyBjb21wYWN0ZWQgYW5kIHRoZSBSZWNvdmVyeVBvbGljeSBpcyAncmVjb3ZlcmFibGUnLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgbWFuYWdlZEJhY2t1cEVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBUb3BpY3MgdGFyZ2V0IGF1ZGllbmNlXG4gKi9cbmV4cG9ydCB0eXBlIFRvcGljQXVkaWVuY2UgPSAnY29tcG9uZW50LWludGVybmFsJyB8ICdjb21wYW55LWludGVybmFsJztcblxuLyoqXG4gKiBUaGUgVG9waWNzIHJlY292ZXJ5IHBvbGljeSBndWFyYW50ZWVkIGJ5IHRoZSBwcm9kdWNlclxuICovXG5leHBvcnQgdHlwZSBUb3BpY1JlY292ZXJ5UG9saWN5ID0gJ25vbmUnIHwgJ3JlY292ZXJhYmxlJztcblxuLyoqXG4gKiBDb25zdHJ1Y3QgdG8gY3JlYXRlIGEga2Fma2EgdG9waWMuXG4gKlxuICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBLYWZrYVRvcGljVjR9IGluc3RlYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEthZmthVG9waWMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBLYWZrYVRvcGljUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG5cbiAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGREZXByZWNhdGlvbignS2Fma2FUb3BpYycsIFwiVXNlICdLYWZrYVRvcGljVjQnIVwiKTtcblxuICAgIG5ldyBDZm5SZXNvdXJjZSh0aGlzLCAnS2Fma2FUb3BpYycsIHtcbiAgICAgIHR5cGU6ICdDdXN0b206OkthZmthVG9waWMnLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAuLi5tYXBQcm9wZXJ0aWVzKHRoaXMsIHByb3BzKSxcbiAgICAgICAgVmVyc2lvbjogJzMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHRoaXMubm9kZS5hZGRWYWxpZGF0aW9uKHZhbGlkYXRvcihwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQ29uc3RydWN0IHRvIGNyZWF0ZSBhIGthZmthIHRvcGljLlxuICovXG5leHBvcnQgY2xhc3MgS2Fma2FUb3BpY1Y0IGV4dGVuZHMgQ29uc3RydWN0IHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogS2Fma2FUb3BpY1Y0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IENmblJlc291cmNlKHRoaXMsICdLYWZrYVRvcGljJywge1xuICAgICAgdHlwZTogJ0N1c3RvbTo6S2Fma2FUb3BpYycsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIC4uLm1hcFByb3BlcnRpZXModGhpcywgcHJvcHMpLFxuICAgICAgICBWZXJzaW9uOiAnNCcsXG4gICAgICAgIEF1ZGllbmNlOiBwcm9wcy5tZXRhZGF0YS5hdWRpZW5jZSxcbiAgICAgICAgUmVjb3ZlcnlQb2xpY3k6IHByb3BzLm1ldGFkYXRhLnJlY292ZXJ5UG9saWN5LFxuICAgICAgICBNYW5hZ2VkQmFja3VwRW5hYmxlZDogcHJvcHMubWFuYWdlZEJhY2t1cEVuYWJsZWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24odmFsaWRhdG9yKHByb3BzKSk7XG4gICAgdGhpcy5ub2RlLmFkZFZhbGlkYXRpb24oYmFja3VwUHJvcGVydGllc1ZhbGlkYXRvcihwcm9wcykpO1xuICB9XG59XG5cbmNvbnN0IHZhbGlkYXRvciA9IChwcm9wczogS2Fma2FUb3BpY1Byb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdmFsaWRhdGU6ICgpOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgaWYgKCFwcm9wcy5uYW1lLm1hdGNoKC9eW0EtWmEtejAtOS4tXSskLykpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW25hbWVdOiBleHBlY3RpbmcgdG9waWMgbmFtZSB0byBtYXRjaCB0aGUgcmVnIGV4cCBgW0EtWmEtejAtOS4tXStgLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIocHJvcHMubnVtYmVyT2ZQYXJ0aXRpb25zKSB8fCBwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnMgPCAxKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGBJbnZhbGlkIFtudW1iZXJPZlBhcnRpdGlvbnNdOiBleHBlY3RpbmcgbnVtYmVyIG9mIHBhcnRpdGlvbnMgdG8gYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIGJ1dCBnb3QgJHtwcm9wcy5udW1iZXJPZlBhcnRpdGlvbnN9LmApO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcHMucmVwbGljYXRpb25GYWN0b3IgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICghTnVtYmVyLmlzSW50ZWdlcihwcm9wcy5yZXBsaWNhdGlvbkZhY3RvcikgfHwgcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPCAxIHx8IHByb3BzLnJlcGxpY2F0aW9uRmFjdG9yID4gMykpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goJ0ludmFsaWQgW3JlcGxpY2F0aW9uRmFjdG9yXTogZXhwZWN0aW5nIGFuIGludGVnZXIgYmV0d2VlbiAxIGFuZCAzLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvcHMubWV0YWRhdGEuZXZlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbWV0YWRhdGFdOiBleHBlY3RpbmcgW2V2ZW50c10gdG8gaGF2ZSBhdCBsZWFzdCBvbiBlbGVtZW50LicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXByb3BzLmlzTG9nQ29tcGFjdGVkICYmIHByb3BzLmxvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFtsb2dDb21wYWN0aW9uUHJvcGVydGllc106IGxvZyBjb21wYWN0aW9uIGlzIGRpc2FibGVkIHNvIHByb3BlcnRpZXMgbXVzdCBiZSB1bmRlZmluZWQuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgfTtcbn07XG5cbmNvbnN0IGJhY2t1cFByb3BlcnRpZXNWYWxpZGF0b3IgPSAocHJvcHM6IEthZmthVG9waWNWNFByb3BzKSA9PiB7XG4gIHJldHVybiB7XG4gICAgdmFsaWRhdGU6ICgpOiBzdHJpbmdbXSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBbXTtcblxuICAgICAgaWYgKHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkICYmICFwcm9wcy5pc0xvZ0NvbXBhY3RlZCkge1xuICAgICAgICByZXN1bHQucHVzaCgnSW52YWxpZCBbbWFuYWdlZEJhY2t1cEVuYWJsZWRdOiBtYW5hZ2VkIGJhY2t1cCBjYW4gb25seSBiZSBlbmFibGVkIGZvciBsb2cgY29tcGFjdGVkIHRvcGljcy4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb3BzLm1hbmFnZWRCYWNrdXBFbmFibGVkICYmIHByb3BzLm1ldGFkYXRhLnJlY292ZXJ5UG9saWN5ICE9PSAncmVjb3ZlcmFibGUnKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKCdJbnZhbGlkIFttYW5hZ2VkQmFja3VwRW5hYmxlZF06IHRvcGljcyB3aXRoIG1hbmFnZWRCYWNrdXBFbmFibGVkIGhhdmUgdG8gaGF2ZSByZWNvdmVyeSBwb2xpY3kgXCJyZWNvdmVyYWJsZVwiLicpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gIH07XG5cbn07XG5cbmNvbnN0IG1hcFByb3BlcnRpZXMgPSAoc2NvcGU6IElDb25zdHJ1Y3QsIHByb3BzOiBLYWZrYVRvcGljUHJvcHMgfCBLYWZrYVRvcGljVjRQcm9wcykgPT4ge1xuICBjb25zdCB0ZWFtRW1haWwgPSBSaW9MYW5kaW5nWm9uZS5nZXRUZWFtRW1haWxQYXJhbWV0ZXIoc2NvcGUpLnN0cmluZ1ZhbHVlO1xuXG4gIGNvbnN0IGV2ZW50cyA9IHByb3BzLm1ldGFkYXRhLmV2ZW50cy5tYXAoc291cmNlID0+IHtcbiAgICBuZXcgS2Fma2FFdmVudFNwZWMoc2NvcGUsIGAke3NvdXJjZS5ldmVudE5hbWUucmVwbGFjZSgvXFwuL2csICdfJyl9LUV2ZW50U3BlY2AsIHsgc291cmNlIH0pO1xuICAgIHJldHVybiBzb3VyY2UuZXZlbnROYW1lO1xuICB9KTtcblxuICBjb25zdCBkZWxldGVSZXRlbnRpb25EdXJhdGlvbiA9IHByb3BzLmxvZ0NvbXBhY3Rpb25Qcm9wZXJ0aWVzPy5kZWxldGVSZXRlbnRpb24gPz8gRHVyYXRpb24uZGF5cyg3KTtcbiAgaWYgKHByb3BzLmFjbC5kZWxldGUgIT0gdW5kZWZpbmVkICYmIHByb3BzLmFjbC5kZWxldGUubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGFubm90YXRpb25zID0gY2RrLkFubm90YXRpb25zLm9mKGNkay5TdGFjay5vZihzY29wZSkpO1xuICAgIGFubm90YXRpb25zLmFkZFdhcm5pbmdWMihcbiAgICAgIGBAcmlvLWNsb3VkL2Nkay12Mi1jb25zdHJ1Y3RzL2thZmthL2thZmthLXRvcGljLyR7cHJvcHMubmFtZX0vRGVsZXRpb25Qb2xpY3lgLFxuICAgICAgYFxuIOKdjCBZb3UgaGF2ZSBzZXQgXCJkZWxldGVcIiBwZXJtaXNzaW9uIGZvciBrYWZrYS10b3BpYyAke3Byb3BzLm5hbWV9LiBZb3UgcHJvYmFibHkgZG8gbm90IG5lZWQgdGhpcy4gUGxlYXNlIHVzZSB0aGlzIG9ubHkgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLlxuYCxcbiAgICApO1xuICB9XG4gIHJldHVybiB7XG4gICAgU2VydmljZVRva2VuOiAnYXJuOmF3czpzbnM6ZXUtd2VzdC0xOjE4Njk5Mzc1NzczNDpkcC10b3BpYy1tYW5hZ2VyLXNucy10b3BpYycsXG4gICAgVG9waWNOYW1lOiBwcm9wcy5uYW1lLFxuICAgIERlc2NyaXB0aW9uOiBwcm9wcy5tZXRhZGF0YS5kZXNjcmlwdGlvbixcbiAgICBFdmVudHM6IGV2ZW50cyxcbiAgICBOdW1iZXJPZlBhcnRpdGlvbnM6IHByb3BzLm51bWJlck9mUGFydGl0aW9ucyxcbiAgICBSZXBsaWNhdGlvbkZhY3RvcjogcHJvcHMucmVwbGljYXRpb25GYWN0b3IgPz8gMyxcbiAgICBSZXRlbnRpb25NczogKHByb3BzLnJldGVudGlvbiA/PyBEdXJhdGlvbi5kYXlzKDcpKS50b01pbGxpc2Vjb25kcygpLFxuICAgIERlbGV0ZVJldGVudGlvbk1zOiBwcm9wcy5pc0xvZ0NvbXBhY3RlZCA/IGRlbGV0ZVJldGVudGlvbkR1cmF0aW9uLnRvTWlsbGlzZWNvbmRzKCkgOiB1bmRlZmluZWQsXG4gICAgSW5zdGFudERlbGV0aW9uRW5hYmxlZDogcHJvcHMuaW5zdGFudERlbGV0aW9uRW5hYmxlZCA/PyBmYWxzZSxcbiAgICBDbGVhbnVwUG9saWN5OiBwcm9wcy5pc0xvZ0NvbXBhY3RlZCA/ICdjb21wYWN0JyA6ICdkZWxldGUnLFxuICAgIFRlYW1FbWFpbDogdGVhbUVtYWlsLFxuICAgIEFDTDoge1xuICAgICAgUmVhZDogcHJvcHMuYWNsLnJlYWQsXG4gICAgICBXcml0ZTogcHJvcHMuYWNsLndyaXRlLFxuICAgICAgRGVsZXRlOiBwcm9wcy5hY2wuZGVsZXRlLFxuICAgIH0sXG4gIH07XG59O1xuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trim the indent of a multiline string.
|
|
3
|
+
*
|
|
4
|
+
* This uses the [Tagged Templates](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates) feature of JavaScript.
|
|
5
|
+
*
|
|
6
|
+
* Useful in particular when defining multiline messages for datadog monitors.
|
|
7
|
+
* Usage example:
|
|
8
|
+
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const message = trimIndent`
|
|
11
|
+
* {{#is_warning}}
|
|
12
|
+
* The auth-server handles ${props.others.name} slower than usual.
|
|
13
|
+
* {{/is_warning}}
|
|
14
|
+
* `;
|
|
15
|
+
* console.log(message);
|
|
16
|
+
* ```
|
|
17
|
+
* returns the following:
|
|
18
|
+
* ```
|
|
19
|
+
* {{#is_warning}}
|
|
20
|
+
* The auth-server handles ${props.others.name} slower than usual.
|
|
21
|
+
* {{/is_warning}}
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function trimIndent(strings: TemplateStringsArray, ...values: any[]): string;
|