truemark-cdk-lib 1.23.0 → 1.24.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/dist/aws-cloudfront/lib/invalidation.js +2 -2
- package/dist/aws-dynamodb/lib/batch-write-item.js +2 -2
- package/dist/aws-dynamodb/lib/put-item.js +2 -2
- package/dist/aws-lambda/lib/function-log-options.d.ts +33 -1
- package/dist/aws-lambda/lib/function-log-options.js +30 -1
- package/dist/aws-vpc/lib/index.d.ts +1 -0
- package/dist/aws-vpc/lib/index.js +2 -1
- package/dist/aws-vpc/lib/network-parameters.d.ts +1 -1
- package/dist/aws-vpc/lib/network-parameters.js +4 -4
- package/dist/aws-vpc/lib/standard-network.d.ts +232 -0
- package/dist/aws-vpc/lib/standard-network.js +384 -0
- package/package.json +1 -1
|
@@ -30,7 +30,7 @@ class Invalidation extends constructs_1.Construct {
|
|
|
30
30
|
},
|
|
31
31
|
physicalResourceId: custom_resources_1.PhysicalResourceId.of(now),
|
|
32
32
|
};
|
|
33
|
-
const logGroup = (0, function_log_options_1.
|
|
33
|
+
const logGroup = (0, function_log_options_1.configureLogGroupForCustomResource)(this, 'LogGroup', props);
|
|
34
34
|
this.resource = new custom_resources_1.AwsCustomResource(this, 'Default', {
|
|
35
35
|
logGroup,
|
|
36
36
|
onUpdate: call,
|
|
@@ -51,4 +51,4 @@ class Invalidation extends constructs_1.Construct {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
exports.Invalidation = Invalidation;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy1jbG91ZGZyb250L2xpYi9pbnZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBQzVDLGlEQUE0RDtBQUM1RCxtRUFJc0M7QUFDdEMsMkNBQXFDO0FBQ3JDLG9GQUE2RjtBQWtDN0Y7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxzQkFBUztJQUd6QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCOztRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQywwRUFBMEU7UUFDMUUsTUFBTSxJQUFJLEdBQWU7WUFDdkIsT0FBTyxFQUFFLFlBQVk7WUFDckIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixVQUFVLEVBQUU7Z0JBQ1YsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO2dCQUNwQyxpQkFBaUIsRUFBRTtvQkFDakIsZUFBZSxFQUFFLE1BQUEsS0FBSyxDQUFDLGVBQWUsbUNBQUksR0FBRztvQkFDN0MsS0FBSyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU07d0JBQzVCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztxQkFDbkI7aUJBQ0Y7YUFDRjtZQUNELGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7U0FDL0MsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLElBQUEseURBQWtDLEVBQ2pELElBQUksRUFDSixVQUFVLEVBQ1YsS0FBSyxDQUNOLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0NBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNyRCxRQUFRO1lBQ1IsUUFBUSxFQUFFLElBQUk7WUFDZCxtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLE1BQU0sRUFBRTtnQkFDTixVQUFVLEVBQUU7b0JBQ1YsSUFBSSx5QkFBZSxDQUFDO3dCQUNsQixTQUFTLEVBQUU7NEJBQ1QsdUJBQXVCLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8saUJBQzNDLEtBQUssQ0FBQyxjQUNSLEVBQUU7eUJBQ0g7d0JBQ0QsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7d0JBQzFDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7cUJBQ3JCLENBQUM7aUJBQ0g7YUFDRjtZQUNELE9BQU8sRUFBRSxNQUFBLEtBQUssQ0FBQyxPQUFPLG1DQUFJLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUM5QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsREQsb0NBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgU3RhY2t9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7RWZmZWN0LCBQb2xpY3lTdGF0ZW1lbnR9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHtcbiAgQXdzQ3VzdG9tUmVzb3VyY2UsXG4gIHR5cGUgQXdzU2RrQ2FsbCxcbiAgUGh5c2ljYWxSZXNvdXJjZUlkLFxufSBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7Y29uZmlndXJlTG9nR3JvdXBGb3JDdXN0b21SZXNvdXJjZX0gZnJvbSAnLi4vLi4vYXdzLWxhbWJkYS9saWIvZnVuY3Rpb24tbG9nLW9wdGlvbnMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEludmFsaWRhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnZhbGlkYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBEaXN0cmlidXRpb24gdG8gc3VibWl0IGludmFsaWRhdGlvbiBmb3IuXG4gICAqL1xuICByZWFkb25seSBkaXN0cmlidXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aHMgdG8gaW52YWxpZGF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IHBhdGhzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNhbGxlciByZWZlcmVuY2UuIERlZmF1bHQgaXMgY3VycmVudCB0aW1lc3RhbXAuXG4gICAqL1xuICByZWFkb25seSBjYWxsZXJSZWZlcmVuY2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lb3V0IGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uLiBEZWZhdWx0IGlzIDIgbWludXRlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygyKVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBMb2cgcmV0ZW50aW9uIGRheXMuIFRoZSBkZWZhdWx0IGlzIDUuXG4gICAqL1xuICByZWFkb25seSBsb2dSZXRlbnRpb24/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIENsb3VkRnJvbnQgaW52YWxpZGF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgSW52YWxpZGF0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IEF3c0N1c3RvbVJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnZhbGlkYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpLnRvU3RyaW5nKCk7XG4gICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0phdmFTY3JpcHRTREsvbGF0ZXN0L0FXUy9DbG91ZEZyb250Lmh0bWxcbiAgICBjb25zdCBjYWxsOiBBd3NTZGtDYWxsID0ge1xuICAgICAgc2VydmljZTogJ0Nsb3VkRnJvbnQnLFxuICAgICAgYWN0aW9uOiAnY3JlYXRlSW52YWxpZGF0aW9uJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgRGlzdHJpYnV0aW9uSWQ6IHByb3BzLmRpc3RyaWJ1dGlvbklkLFxuICAgICAgICBJbnZhbGlkYXRpb25CYXRjaDoge1xuICAgICAgICAgIENhbGxlclJlZmVyZW5jZTogcHJvcHMuY2FsbGVyUmVmZXJlbmNlID8/IG5vdyxcbiAgICAgICAgICBQYXRoczoge1xuICAgICAgICAgICAgUXVhbnRpdHk6IHByb3BzLnBhdGhzLmxlbmd0aCxcbiAgICAgICAgICAgIEl0ZW1zOiBwcm9wcy5wYXRocyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKG5vdyksXG4gICAgfTtcblxuICAgIGNvbnN0IGxvZ0dyb3VwID0gY29uZmlndXJlTG9nR3JvdXBGb3JDdXN0b21SZXNvdXJjZShcbiAgICAgIHRoaXMsXG4gICAgICAnTG9nR3JvdXAnLFxuICAgICAgcHJvcHMsXG4gICAgKTtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0RlZmF1bHQnLCB7XG4gICAgICBsb2dHcm91cCxcbiAgICAgIG9uVXBkYXRlOiBjYWxsLFxuICAgICAgaW5zdGFsbExhdGVzdEF3c1NkazogZmFsc2UsXG4gICAgICBwb2xpY3k6IHtcbiAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgIGBhcm46YXdzOmNsb3VkZnJvbnQ6OiR7U3RhY2sub2YodGhpcykuYWNjb3VudH06ZGlzdHJpYnV0aW9uLyR7XG4gICAgICAgICAgICAgICAgcHJvcHMuZGlzdHJpYnV0aW9uSWRcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgYWN0aW9uczogWydjbG91ZGZyb250OkNyZWF0ZUludmFsaWRhdGlvbiddLFxuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCA/PyBEdXJhdGlvbi5taW51dGVzKDIpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -17,7 +17,7 @@ class BatchWriteItem extends constructs_1.Construct {
|
|
|
17
17
|
physicalResourceId: custom_resources_1.PhysicalResourceId.of(Date.now().toString()),
|
|
18
18
|
};
|
|
19
19
|
const tableNames = Object.keys(props.items.RequestItems);
|
|
20
|
-
const logGroup = (0, function_log_options_1.
|
|
20
|
+
const logGroup = (0, function_log_options_1.configureLogGroupForCustomResource)(this, 'LogGroup', props);
|
|
21
21
|
this.resource = new custom_resources_1.AwsCustomResource(this, 'Default', {
|
|
22
22
|
logGroup,
|
|
23
23
|
onUpdate: call,
|
|
@@ -112,4 +112,4 @@ exports.BatchWriteItem = BatchWriteItem;
|
|
|
112
112
|
// }
|
|
113
113
|
// ]
|
|
114
114
|
// }
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2gtd3JpdGUtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MtZHluYW1vZGIvbGliL2JhdGNoLXdyaXRlLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTRDO0FBQzVDLGlEQUE0RDtBQUM1RCxtRUFJc0M7QUFDdEMsMkNBQXFDO0FBQ3JDLG9GQUE2RjtBQXdDN0YsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFHM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLElBQUksR0FBZTtZQUN2QixPQUFPLEVBQUUsVUFBVTtZQUNuQixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsS0FBSztZQUN2QixrQkFBa0IsRUFBRSxxQ0FBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pFLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFekQsTUFBTSxRQUFRLEdBQUcsSUFBQSx5REFBa0MsRUFDakQsSUFBSSxFQUNKLFVBQVUsRUFDVixLQUFLLENBQ04sQ0FBQztRQUVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3JELFFBQVE7WUFDUixRQUFRLEVBQUUsSUFBSTtZQUNkLG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRTtvQkFDVixJQUFJLHlCQUFlLENBQUM7d0JBQ2xCLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7NEJBQ2pDLE9BQU8sbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO2dDQUM5QixPQUFPLEVBQUUsVUFBVTtnQ0FDbkIsUUFBUSxFQUFFLE9BQU87Z0NBQ2pCLFlBQVksRUFBRSxJQUFJOzZCQUNuQixDQUFDLENBQUM7d0JBQ0wsQ0FBQyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO3dCQUNwQyxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO3FCQUNyQixDQUFDO2lCQUNIO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsTUFBQSxLQUFLLENBQUMsT0FBTyxtQ0FBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0NELHdDQTJDQztBQUVELElBQUk7QUFDSixzQkFBc0I7QUFDdEIsaUJBQWlCO0FBQ2pCLFFBQVE7QUFDUiwyQkFBMkI7QUFDM0IsbUJBQW1CO0FBQ25CLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekIsK0JBQStCO0FBQy9CLDhCQUE4QjtBQUM5QixxQkFBcUI7QUFDckIsaUNBQWlDO0FBQ2pDLGlCQUFpQjtBQUNqQixxQkFBcUI7QUFDckIsNENBQTRDO0FBQzVDLGlCQUFpQjtBQUNqQiw2QkFBNkI7QUFDN0Isa0NBQWtDO0FBQ2xDLCtCQUErQjtBQUMvQiw2QkFBNkI7QUFDN0IsaUNBQWlDO0FBQ2pDLGNBQWM7QUFDZCxZQUFZO0FBQ1osV0FBVztBQUNYLHdCQUF3QjtBQUN4QixvQkFBb0I7QUFDcEIseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6QiwrQkFBK0I7QUFDL0IsOEJBQThCO0FBQzlCLHFCQUFxQjtBQUNyQixpQ0FBaUM7QUFDakMsaUJBQWlCO0FBQ2pCLHFCQUFxQjtBQUNyQiw0Q0FBNEM7QUFDNUMsaUJBQWlCO0FBQ2pCLDZCQUE2QjtBQUM3QixrQ0FBa0M7QUFDbEMsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QixpQ0FBaUM7QUFDakMsY0FBYztBQUNkLFlBQVk7QUFDWixVQUFVO0FBQ1YsUUFBUTtBQUNSLE1BQU07QUFDTixLQUFLO0FBQ0wsRUFBRTtBQUNGLGtCQUFrQjtBQUNsQixvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLHNCQUFzQjtBQUN0QixrQkFBa0I7QUFDbEIseUNBQXlDO0FBQ3pDLHlEQUF5RDtBQUN6RCx3REFBd0Q7QUFDeEQsWUFBWTtBQUNaLFVBQVU7QUFDVixTQUFTO0FBQ1QsUUFBUTtBQUNSLHNCQUFzQjtBQUN0QixrQkFBa0I7QUFDbEIseUNBQXlDO0FBQ3pDLHlEQUF5RDtBQUN6RCx3REFBd0Q7QUFDeEQsWUFBWTtBQUNaLFVBQVU7QUFDVixRQUFRO0FBQ1IsTUFBTTtBQUNOLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBTdGFja30gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtFZmZlY3QsIFBvbGljeVN0YXRlbWVudH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge1xuICBBd3NDdXN0b21SZXNvdXJjZSxcbiAgdHlwZSBBd3NTZGtDYWxsLFxuICBQaHlzaWNhbFJlc291cmNlSWQsXG59IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtjb25maWd1cmVMb2dHcm91cEZvckN1c3RvbVJlc291cmNlfSBmcm9tICcuLi8uLi9hd3MtbGFtYmRhL2xpYi9mdW5jdGlvbi1sb2ctb3B0aW9ucyc7XG5cbmV4cG9ydCB0eXBlIEJhdGNoV3JpdGVJdGVtS2V5ID0ge1xuICBLZXk6IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBCYXRjaFdyaXRlSXRlbUl0ZW0gPSB7XG4gIEl0ZW06IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBCYXRjaFdyaXRlSXRlbVJlcXVlc3QgPVxuICB8IHtEZWxldGVSZXF1ZXN0OiBCYXRjaFdyaXRlSXRlbUtleX1cbiAgfCB7UHV0UmVxdWVzdDogQmF0Y2hXcml0ZUl0ZW1JdGVtfTtcblxuZXhwb3J0IHR5cGUgQmF0Y2hXcml0ZUl0ZW1SZXF1ZXN0SXRlbXMgPSB7XG4gIFJlcXVlc3RJdGVtczogUmVjb3JkPHN0cmluZywgQmF0Y2hXcml0ZUl0ZW1SZXF1ZXN0W10+O1xufTtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBCYXRjaFdyaXRlSXRlbVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhdGNoV3JpdGVJdGVtUHJvcHMge1xuICAvKipcbiAgICogVGhlIGl0ZW1zIHRvIHdyaXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbXM6IEJhdGNoV3JpdGVJdGVtUmVxdWVzdEl0ZW1zO1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbi4gRGVmYXVsdCBpcyAyIG1pbnV0ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoMilcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogTG9nIHJldGVudGlvbiBkYXlzLiBUaGUgZGVmYXVsdCBpcyA1LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgQmF0Y2hXcml0ZUl0ZW0gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSByZXNvdXJjZTogQXdzQ3VzdG9tUmVzb3VyY2U7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJhdGNoV3JpdGVJdGVtUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY2FsbDogQXdzU2RrQ2FsbCA9IHtcbiAgICAgIHNlcnZpY2U6ICdEeW5hbW9EQicsXG4gICAgICBhY3Rpb246ICdiYXRjaFdyaXRlSXRlbScsXG4gICAgICBwYXJhbWV0ZXJzOiBwcm9wcy5pdGVtcyxcbiAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKERhdGUubm93KCkudG9TdHJpbmcoKSksXG4gICAgfTtcblxuICAgIGNvbnN0IHRhYmxlTmFtZXMgPSBPYmplY3Qua2V5cyhwcm9wcy5pdGVtcy5SZXF1ZXN0SXRlbXMpO1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPSBjb25maWd1cmVMb2dHcm91cEZvckN1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgICdMb2dHcm91cCcsXG4gICAgICBwcm9wcyxcbiAgICApO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIGxvZ0dyb3VwLFxuICAgICAgb25VcGRhdGU6IGNhbGwsXG4gICAgICBpbnN0YWxsTGF0ZXN0QXdzU2RrOiBmYWxzZSxcbiAgICAgIHBvbGljeToge1xuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICByZXNvdXJjZXM6IHRhYmxlTmFtZXMubWFwKChuYW1lKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICAgIHNlcnZpY2U6ICdkeW5hbW9kYicsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6ICd0YWJsZScsXG4gICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBuYW1lLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgYWN0aW9uczogWydkeW5hbW9kYjpCYXRjaFdyaXRlSXRlbSddLFxuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgdGltZW91dDogcHJvcHMudGltZW91dCA/PyBEdXJhdGlvbi5taW51dGVzKDIpLFxuICAgIH0pO1xuICB9XG59XG5cbi8vIHtcbi8vICAgXCJSZXF1ZXN0SXRlbXNcIjoge1xuLy8gICBcInN0cmluZ1wiIDogW1xuLy8gICAgIHtcbi8vICAgICAgIFwiRGVsZXRlUmVxdWVzdFwiOiB7XG4vLyAgICAgICAgIFwiS2V5XCI6IHtcbi8vICAgICAgICAgICBcInN0cmluZ1wiIDoge1xuLy8gICAgICAgICAgICAgXCJCXCI6IGJsb2IsXG4vLyAgICAgICAgICAgICBcIkJPT0xcIjogYm9vbGVhbixcbi8vICAgICAgICAgICAgIFwiQlNcIjogWyBibG9iIF0sXG4vLyAgICAgICAgICAgICBcIkxcIjogW1xuLy8gICAgICAgICAgICAgICBcIkF0dHJpYnV0ZVZhbHVlXCJcbi8vICAgICAgICAgICAgIF0sXG4vLyAgICAgICAgICAgICBcIk1cIjoge1xuLy8gICAgICAgICAgICAgICBcInN0cmluZ1wiIDogXCJBdHRyaWJ1dGVWYWx1ZVwiXG4vLyAgICAgICAgICAgICB9LFxuLy8gICAgICAgICAgICAgXCJOXCI6IFwic3RyaW5nXCIsXG4vLyAgICAgICAgICAgICBcIk5TXCI6IFsgXCJzdHJpbmdcIiBdLFxuLy8gICAgICAgICAgICAgXCJOVUxMXCI6IGJvb2xlYW4sXG4vLyAgICAgICAgICAgICBcIlNcIjogXCJzdHJpbmdcIixcbi8vICAgICAgICAgICAgIFwiU1NcIjogWyBcInN0cmluZ1wiIF1cbi8vICAgICAgICAgICB9XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH0sXG4vLyAgICAgICBcIlB1dFJlcXVlc3RcIjoge1xuLy8gICAgICAgICBcIkl0ZW1cIjoge1xuLy8gICAgICAgICAgIFwic3RyaW5nXCIgOiB7XG4vLyAgICAgICAgICAgICBcIkJcIjogYmxvYixcbi8vICAgICAgICAgICAgIFwiQk9PTFwiOiBib29sZWFuLFxuLy8gICAgICAgICAgICAgXCJCU1wiOiBbIGJsb2IgXSxcbi8vICAgICAgICAgICAgIFwiTFwiOiBbXG4vLyAgICAgICAgICAgICAgIFwiQXR0cmlidXRlVmFsdWVcIlxuLy8gICAgICAgICAgICAgXSxcbi8vICAgICAgICAgICAgIFwiTVwiOiB7XG4vLyAgICAgICAgICAgICAgIFwic3RyaW5nXCIgOiBcIkF0dHJpYnV0ZVZhbHVlXCJcbi8vICAgICAgICAgICAgIH0sXG4vLyAgICAgICAgICAgICBcIk5cIjogXCJzdHJpbmdcIixcbi8vICAgICAgICAgICAgIFwiTlNcIjogWyBcInN0cmluZ1wiIF0sXG4vLyAgICAgICAgICAgICBcIk5VTExcIjogYm9vbGVhbixcbi8vICAgICAgICAgICAgIFwiU1wiOiBcInN0cmluZ1wiLFxuLy8gICAgICAgICAgICAgXCJTU1wiOiBbIFwic3RyaW5nXCIgXVxuLy8gICAgICAgICAgIH1cbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgXVxuLy8gfSxcbi8vXG4vLyBSZXF1ZXN0SXRlbXM6IHtcbi8vICAgXCJUQUJMRV9OQU1FXCI6IFtcbi8vICAgICB7XG4vLyAgICAgICBQdXRSZXF1ZXN0OiB7XG4vLyAgICAgICAgIEl0ZW06IHtcbi8vICAgICAgICAgICBcIktFWVwiOiB7IFwiTlwiOiBcIktFWV9WQUxVRVwiIH0sXG4vLyAgICAgICAgICAgXCJBVFRSSUJVVEVfMVwiOiB7IFwiU1wiOiBcIkFUVFJJQlVURV8xX1ZBTFVFXCIgfSxcbi8vICAgICAgICAgICBcIkFUVFJJQlVURV8yXCI6IHsgXCJOXCI6IFwiQVRUUklCVVRFXzJfVkFMVUVcIiB9XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cbi8vICAgICB9LFxuLy8gICAgIHtcbi8vICAgICAgIFB1dFJlcXVlc3Q6IHtcbi8vICAgICAgICAgSXRlbToge1xuLy8gICAgICAgICAgIFwiS0VZXCI6IHsgXCJOXCI6IFwiS0VZX1ZBTFVFXCIgfSxcbi8vICAgICAgICAgICBcIkFUVFJJQlVURV8xXCI6IHsgXCJTXCI6IFwiQVRUUklCVVRFXzFfVkFMVUVcIiB9LFxuLy8gICAgICAgICAgIFwiQVRUUklCVVRFXzJcIjogeyBcIk5cIjogXCJBVFRSSUJVVEVfMl9WQUxVRVwiIH1cbi8vICAgICAgICAgfVxuLy8gICAgICAgfVxuLy8gICAgIH1cbi8vICAgXVxuLy8gfVxuIl19
|
|
@@ -23,7 +23,7 @@ class PutItem extends constructs_1.Construct {
|
|
|
23
23
|
},
|
|
24
24
|
physicalResourceId: custom_resources_1.PhysicalResourceId.of(Date.now().toString()),
|
|
25
25
|
};
|
|
26
|
-
const logGroup = (0, function_log_options_1.
|
|
26
|
+
const logGroup = (0, function_log_options_1.configureLogGroupForCustomResource)(this, 'LogGroup', props);
|
|
27
27
|
this.resource = new custom_resources_1.AwsCustomResource(this, 'Default', {
|
|
28
28
|
logGroup,
|
|
29
29
|
onUpdate: call,
|
|
@@ -48,4 +48,4 @@ class PutItem extends constructs_1.Construct {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
exports.PutItem = PutItem;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHV0LWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLWR5bmFtb2RiL2xpYi9wdXQtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBNEM7QUFDNUMsaURBQTREO0FBQzVELG1FQUlzQztBQUN0QywyQ0FBcUM7QUFDckMsb0ZBQTZGO0FBNkI3Rjs7O0dBR0c7QUFDSCxNQUFhLE9BQVEsU0FBUSxzQkFBUztJQUdwQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1COztRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sSUFBSSxHQUFlO1lBQ3ZCLE9BQU8sRUFBRSxVQUFVO1lBQ25CLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7Z0JBQzFCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTthQUNqQjtZQUNELGtCQUFrQixFQUFFLHFDQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakUsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLElBQUEseURBQWtDLEVBQ2pELElBQUksRUFDSixVQUFVLEVBQ1YsS0FBSyxDQUNOLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0NBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNyRCxRQUFRO1lBQ1IsUUFBUSxFQUFFLElBQUk7WUFDZCxtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLE1BQU0sRUFBRTtnQkFDTixVQUFVLEVBQUU7b0JBQ1YsSUFBSSx5QkFBZSxDQUFDO3dCQUNsQixTQUFTLEVBQUU7NEJBQ1QsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO2dDQUN2QixPQUFPLEVBQUUsVUFBVTtnQ0FDbkIsUUFBUSxFQUFFLE9BQU87Z0NBQ2pCLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUzs2QkFDOUIsQ0FBQzt5QkFDSDt3QkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt3QkFDN0IsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztxQkFDckIsQ0FBQztpQkFDSDthQUNGO1lBQ0QsT0FBTyxFQUFFLE1BQUEsS0FBSyxDQUFDLE9BQU8sbUNBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzlDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTVDRCwwQkE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBTdGFja30gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtFZmZlY3QsIFBvbGljeVN0YXRlbWVudH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQge1xuICBBd3NDdXN0b21SZXNvdXJjZSxcbiAgdHlwZSBBd3NTZGtDYWxsLFxuICBQaHlzaWNhbFJlc291cmNlSWQsXG59IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtjb25maWd1cmVMb2dHcm91cEZvckN1c3RvbVJlc291cmNlfSBmcm9tICcuLi8uLi9hd3MtbGFtYmRhL2xpYi9mdW5jdGlvbi1sb2ctb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgUHV0SXRlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQdXRJdGVtUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIER5bmFtb0RCIHRhYmxlIHRvIHdyaXRlIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBpdGVtIHRvIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgaXRlbTogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgdGltZW91dCBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbi4gRGVmYXVsdCBpcyAyIG1pbnV0ZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLm1pbnV0ZXMoMilcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogTG9nIHJldGVudGlvbiBkYXlzLiBUaGUgZGVmYXVsdCBpcyA1LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEN1c3RvbSByZXNvdXJjZSB0byBpbnNlcnQgZGF0YSBpbnRvIGEgRHluYW1vREIgdGFibGUuIFRoaXMgY2xhc3MgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoXG4gKiB0aGUgbWFyc2hhbGwgY29tbWFuZCBAYXdzLXNkay91dGlsLWR5bmFtb2RiIGFzIGFuIGFsdGVybmF0aXZlIHRvIHVzaW5nIER5bmFtb1B1dEl0ZW0uXG4gKi9cbmV4cG9ydCBjbGFzcyBQdXRJdGVtIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcmVzb3VyY2U6IEF3c0N1c3RvbVJlc291cmNlO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQdXRJdGVtUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY2FsbDogQXdzU2RrQ2FsbCA9IHtcbiAgICAgIHNlcnZpY2U6ICdEeW5hbW9EQicsXG4gICAgICBhY3Rpb246ICdwdXRJdGVtJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgVGFibGVOYW1lOiBwcm9wcy50YWJsZU5hbWUsXG4gICAgICAgIEl0ZW06IHByb3BzLml0ZW0sXG4gICAgICB9LFxuICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQub2YoRGF0ZS5ub3coKS50b1N0cmluZygpKSxcbiAgICB9O1xuXG4gICAgY29uc3QgbG9nR3JvdXAgPSBjb25maWd1cmVMb2dHcm91cEZvckN1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgICdMb2dHcm91cCcsXG4gICAgICBwcm9wcyxcbiAgICApO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCAnRGVmYXVsdCcsIHtcbiAgICAgIGxvZ0dyb3VwLFxuICAgICAgb25VcGRhdGU6IGNhbGwsXG4gICAgICBpbnN0YWxsTGF0ZXN0QXdzU2RrOiBmYWxzZSxcbiAgICAgIHBvbGljeToge1xuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiAnZHluYW1vZGInLFxuICAgICAgICAgICAgICAgIHJlc291cmNlOiAndGFibGUnLFxuICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogcHJvcHMudGFibGVOYW1lLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2R5bmFtb2RiOlB1dEl0ZW0nXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IHByb3BzLnRpbWVvdXQgPz8gRHVyYXRpb24ubWludXRlcygyKSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
2
|
-
import { RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
2
|
+
import { type ILogGroup, RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
3
3
|
import type { Construct } from 'constructs';
|
|
4
4
|
/**
|
|
5
5
|
* Configuration for function logs. By default the log group will be destroyed
|
|
@@ -36,3 +36,35 @@ export interface FunctionLogOptions {
|
|
|
36
36
|
* @returns The log group, or undefined if it was not configured.
|
|
37
37
|
*/
|
|
38
38
|
export declare function configureLogGroupForFunction(scope: Construct, id: string, props: lambda.FunctionOptions): import("aws-cdk-lib/aws-logs").ILogGroupRef | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Options for configuring the log group of a custom resource.
|
|
41
|
+
*/
|
|
42
|
+
export interface CustomResourceLogOptions {
|
|
43
|
+
/**
|
|
44
|
+
* The log group to use. If provided, it is returned as-is.
|
|
45
|
+
*/
|
|
46
|
+
readonly logGroup?: ILogGroup;
|
|
47
|
+
/**
|
|
48
|
+
* The retention period in days for the log group. Default is 3 days.
|
|
49
|
+
*/
|
|
50
|
+
readonly logRetention?: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Configure the log group for a custom resource (e.g. AwsCustomResource).
|
|
54
|
+
*
|
|
55
|
+
* Unlike {@link configureLogGroupForFunction}, this does not attempt to predict
|
|
56
|
+
* a `/aws/lambda/...` name. Custom resources are backed by a framework-managed
|
|
57
|
+
* provider Lambda whose name we don't control, so a predicted name is both
|
|
58
|
+
* meaningless and prone to collisions when truncated to CloudWatch's 64
|
|
59
|
+
* character limit (multiple custom resources in one stack sharing a long
|
|
60
|
+
* stack/construct id prefix would resolve to the same name and fail to deploy).
|
|
61
|
+
*
|
|
62
|
+
* Instead this lets CloudFormation assign a unique physical name, while still
|
|
63
|
+
* applying retention and a DESTROY removal policy.
|
|
64
|
+
*
|
|
65
|
+
* @param scope The scope in which to create the log group (the construct itself).
|
|
66
|
+
* @param id The id of the log group construct.
|
|
67
|
+
* @param props The log configuration.
|
|
68
|
+
* @returns The log group.
|
|
69
|
+
*/
|
|
70
|
+
export declare function configureLogGroupForCustomResource(scope: Construct, id: string, props: CustomResourceLogOptions): ILogGroup;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.configureLogGroupForFunction = configureLogGroupForFunction;
|
|
4
|
+
exports.configureLogGroupForCustomResource = configureLogGroupForCustomResource;
|
|
4
5
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
6
|
const aws_logs_1 = require("aws-cdk-lib/aws-logs");
|
|
6
7
|
/**
|
|
@@ -47,4 +48,32 @@ function configureLogGroupForFunction(scope, id, props) {
|
|
|
47
48
|
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
48
49
|
});
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Configure the log group for a custom resource (e.g. AwsCustomResource).
|
|
53
|
+
*
|
|
54
|
+
* Unlike {@link configureLogGroupForFunction}, this does not attempt to predict
|
|
55
|
+
* a `/aws/lambda/...` name. Custom resources are backed by a framework-managed
|
|
56
|
+
* provider Lambda whose name we don't control, so a predicted name is both
|
|
57
|
+
* meaningless and prone to collisions when truncated to CloudWatch's 64
|
|
58
|
+
* character limit (multiple custom resources in one stack sharing a long
|
|
59
|
+
* stack/construct id prefix would resolve to the same name and fail to deploy).
|
|
60
|
+
*
|
|
61
|
+
* Instead this lets CloudFormation assign a unique physical name, while still
|
|
62
|
+
* applying retention and a DESTROY removal policy.
|
|
63
|
+
*
|
|
64
|
+
* @param scope The scope in which to create the log group (the construct itself).
|
|
65
|
+
* @param id The id of the log group construct.
|
|
66
|
+
* @param props The log configuration.
|
|
67
|
+
* @returns The log group.
|
|
68
|
+
*/
|
|
69
|
+
function configureLogGroupForCustomResource(scope, id, props) {
|
|
70
|
+
var _a;
|
|
71
|
+
if (props.logGroup) {
|
|
72
|
+
return props.logGroup;
|
|
73
|
+
}
|
|
74
|
+
return new aws_logs_1.LogGroup(scope, id, {
|
|
75
|
+
retention: (_a = props.logRetention) !== null && _a !== void 0 ? _a : aws_logs_1.RetentionDays.THREE_DAYS,
|
|
76
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tbG9nLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLWxhbWJkYS9saWIvZnVuY3Rpb24tbG9nLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5Q0Esb0VBeUNDO0FBa0NELGdGQWFDO0FBaklELDZDQUF3RDtBQUV4RCxtREFBNkU7QUErQjdFOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQiw0QkFBNEIsQ0FDMUMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTZCOztJQUU3QixJQUFJLFNBQXdDLENBQUM7SUFDN0MsSUFBSyxLQUE0QixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzVDLFNBQVMsR0FBSSxLQUE0QixDQUFDLFNBQVMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsdUNBQXVDO0lBQ3ZDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBQ0QsK0RBQStEO0lBQy9ELElBQUksS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxxREFBcUQ7SUFDckQsMkVBQTJFO0lBQzNFLE1BQU0sUUFBUSxHQUFHLG1CQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsTUFBTSxZQUFZLEdBQ2hCLE1BQUEsS0FBSyxDQUFDLFlBQVksbUNBQ2xCLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxJQUFJLEVBQUUsSUFBSSxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLE9BQU8sSUFBSSxtQkFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1FBQzFDLFlBQVksRUFBRSxNQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxZQUFZLG1DQUFJLGVBQWUsWUFBWSxFQUFFO1FBQ3RFLFNBQVMsRUFBRSxNQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxTQUFTLG1DQUFJLHdCQUFhLENBQUMsVUFBVTtRQUMzRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO0tBQ3JDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFnQkQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsU0FBZ0Isa0NBQWtDLENBQ2hELEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUErQjs7SUFFL0IsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkIsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxPQUFPLElBQUksbUJBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzdCLFNBQVMsRUFDUCxNQUFDLEtBQUssQ0FBQyxZQUE4QixtQ0FBSSx3QkFBYSxDQUFDLFVBQVU7UUFDbkUsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztLQUNyQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOYW1lcywgUmVtb3ZhbFBvbGljeSwgU3RhY2t9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB0eXBlICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHt0eXBlIElMb2dHcm91cCwgTG9nR3JvdXAsIFJldGVudGlvbkRheXN9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCB0eXBlIHtDb25zdHJ1Y3R9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGZ1bmN0aW9uIGxvZ3MuIEJ5IGRlZmF1bHQgdGhlIGxvZyBncm91cCB3aWxsIGJlIGRlc3Ryb3llZFxuICogd2hlbiB0aGUgc3RhY2sgaXMgZGVzdHJveWVkLiBJZiB5b3UgcmVxdWlyZSBhIGRpZmZlcmVudCBiZWhhdmlvciBvciBoYXZlXG4gKiBvdGhlciBsb2cgcmVxdWlyZW1lbnRzLCBpdCdzIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBhIGxvZyBncm91cCBhbmQgc2V0XG4gKiBsb2dHcm91cCBleHBsaWNpdGx5IGluc3RlYWQgb2YgdXNpbmcgdGhpcyBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uTG9nQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSByZXRlbnRpb24gcGVyaW9kIGZvciB0aGUgbG9nIGdyb3VwLiBEZWZhdWx0IGlzIDMgZGF5cy5cbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IFJldGVudGlvbkRheXM7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIHRvIHVzZSBmb3IgdGhlIGZ1bmN0aW9uIGxvZ3MuIElmIG5vdCBwcm92aWRlZCwgQ0RLIHdpbGxcbiAgICogZ2VuZXJhdGUgdGhlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cE5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgZnVuY3Rpb24gbG9ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvbkxvZ09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBmdW5jdGlvbiBsb2dzLlxuICAgKi9cbiAgbG9nQ29uZmlnPzogRnVuY3Rpb25Mb2dDb25maWc7XG59XG5cbi8qKlxuICogQ29uZmlndXJlIHRoZSBsb2cgZ3JvdXAgZm9yIGEgTGFtYmRhIGZ1bmN0aW9uLlxuICpcbiAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IHNjb3BlIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgbG9nIGdyb3VwLlxuICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbnN0cnVjdC5cbiAqIEBwYXJhbSBwcm9wcyBUaGUgcHJvcGVydGllcyBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgbG9nIGdyb3VwLCBvciB1bmRlZmluZWQgaWYgaXQgd2FzIG5vdCBjb25maWd1cmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlndXJlTG9nR3JvdXBGb3JGdW5jdGlvbihcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgaWQ6IHN0cmluZyxcbiAgcHJvcHM6IGxhbWJkYS5GdW5jdGlvbk9wdGlvbnMsXG4pIHtcbiAgbGV0IGxvZ0NvbmZpZzogRnVuY3Rpb25Mb2dDb25maWcgfCB1bmRlZmluZWQ7XG4gIGlmICgocHJvcHMgYXMgRnVuY3Rpb25Mb2dPcHRpb25zKS5sb2dDb25maWcpIHtcbiAgICBsb2dDb25maWcgPSAocHJvcHMgYXMgRnVuY3Rpb25Mb2dPcHRpb25zKS5sb2dDb25maWc7XG4gIH1cbiAgaWYgKGxvZ0NvbmZpZyAmJiBwcm9wcy5sb2dHcm91cCkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNwZWNpZnkgYm90aCBsb2dHcm91cCBhbmQgbG9nQ29uZmlnLicpO1xuICB9XG4gIGlmIChsb2dDb25maWcgJiYgcHJvcHMubG9nUmV0ZW50aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc3BlY2lmeSBib3RoIGxvZ1JldGVudGlvbiBhbmQgbG9nQ29uZmlnLicpO1xuICB9XG4gIGlmIChwcm9wcy5sb2dHcm91cCAmJiBsb2dDb25maWcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzcGVjaWZ5IGJvdGggbG9nR3JvdXAgYW5kIGxvZ0NvbmZpZy4nKTtcbiAgfVxuICBpZiAocHJvcHMubG9nUmV0ZW50aW9uICYmIGxvZ0NvbmZpZykge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNwZWNpZnkgYm90aCBsb2dSZXRlbnRpb24gYW5kIGxvZ0NvbmZpZy4nKTtcbiAgfVxuICAvLyBVc2UgdGhlIGxvZ0dyb3VwIGlzIG9uZSBpcyBwYXNzZWQgaW5cbiAgaWYgKHByb3BzLmxvZ0dyb3VwKSB7XG4gICAgcmV0dXJuIHByb3BzLmxvZ0dyb3VwO1xuICB9XG4gIC8vIElmIGxvZyByZXRlbnRpb24gaXMgZGVmaW5lZCwgZmFsbGJhY2sgdG8gZGVwcmVjYXRlZCBiZWhhdmlvclxuICBpZiAocHJvcHMubG9nUmV0ZW50aW9uKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICAvLyBDYWxjdWxhdGUgdGhlIGZ1bmN0aW9uIG5hbWUgdGhhdCBDREsgd2lsbCBnZW5lcmF0ZVxuICAvLyBUaGlzIG1pbWljcyBDREsncyBkZWZhdWx0IG5hbWluZzoge1N0YWNrTmFtZX0te0NvbnN0cnVjdElkfS17VW5pcXVlSGFzaH1cbiAgY29uc3QgdW5pcXVlSWQgPSBOYW1lcy51bmlxdWVJZChzY29wZSkuc3Vic3RyaW5nKDAsIDgpO1xuICBjb25zdCBmdW5jdGlvbk5hbWUgPVxuICAgIHByb3BzLmZ1bmN0aW9uTmFtZSA/P1xuICAgIGAke1N0YWNrLm9mKHNjb3BlKS5zdGFja05hbWV9LSR7aWR9LSR7dW5pcXVlSWR9YC5zdWJzdHJpbmcoMCwgNjQpO1xuXG4gIHJldHVybiBuZXcgTG9nR3JvdXAoc2NvcGUsIGAke2lkfUxvZ0dyb3VwYCwge1xuICAgIGxvZ0dyb3VwTmFtZTogbG9nQ29uZmlnPy5sb2dHcm91cE5hbWUgPz8gYC9hd3MvbGFtYmRhLyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgcmV0ZW50aW9uOiBsb2dDb25maWc/LnJldGVudGlvbiA/PyBSZXRlbnRpb25EYXlzLlRIUkVFX0RBWVMsXG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICB9KTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgbG9nIGdyb3VwIG9mIGEgY3VzdG9tIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVJlc291cmNlTG9nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIHRvIHVzZS4gSWYgcHJvdmlkZWQsIGl0IGlzIHJldHVybmVkIGFzLWlzLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA/OiBJTG9nR3JvdXA7XG4gIC8qKlxuICAgKiBUaGUgcmV0ZW50aW9uIHBlcmlvZCBpbiBkYXlzIGZvciB0aGUgbG9nIGdyb3VwLiBEZWZhdWx0IGlzIDMgZGF5cy5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ1JldGVudGlvbj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmUgdGhlIGxvZyBncm91cCBmb3IgYSBjdXN0b20gcmVzb3VyY2UgKGUuZy4gQXdzQ3VzdG9tUmVzb3VyY2UpLlxuICpcbiAqIFVubGlrZSB7QGxpbmsgY29uZmlndXJlTG9nR3JvdXBGb3JGdW5jdGlvbn0sIHRoaXMgZG9lcyBub3QgYXR0ZW1wdCB0byBwcmVkaWN0XG4gKiBhIGAvYXdzL2xhbWJkYS8uLi5gIG5hbWUuIEN1c3RvbSByZXNvdXJjZXMgYXJlIGJhY2tlZCBieSBhIGZyYW1ld29yay1tYW5hZ2VkXG4gKiBwcm92aWRlciBMYW1iZGEgd2hvc2UgbmFtZSB3ZSBkb24ndCBjb250cm9sLCBzbyBhIHByZWRpY3RlZCBuYW1lIGlzIGJvdGhcbiAqIG1lYW5pbmdsZXNzIGFuZCBwcm9uZSB0byBjb2xsaXNpb25zIHdoZW4gdHJ1bmNhdGVkIHRvIENsb3VkV2F0Y2gncyA2NFxuICogY2hhcmFjdGVyIGxpbWl0IChtdWx0aXBsZSBjdXN0b20gcmVzb3VyY2VzIGluIG9uZSBzdGFjayBzaGFyaW5nIGEgbG9uZ1xuICogc3RhY2svY29uc3RydWN0IGlkIHByZWZpeCB3b3VsZCByZXNvbHZlIHRvIHRoZSBzYW1lIG5hbWUgYW5kIGZhaWwgdG8gZGVwbG95KS5cbiAqXG4gKiBJbnN0ZWFkIHRoaXMgbGV0cyBDbG91ZEZvcm1hdGlvbiBhc3NpZ24gYSB1bmlxdWUgcGh5c2ljYWwgbmFtZSwgd2hpbGUgc3RpbGxcbiAqIGFwcGx5aW5nIHJldGVudGlvbiBhbmQgYSBERVNUUk9ZIHJlbW92YWwgcG9saWN5LlxuICpcbiAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gY3JlYXRlIHRoZSBsb2cgZ3JvdXAgKHRoZSBjb25zdHJ1Y3QgaXRzZWxmKS5cbiAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIGxvZyBncm91cCBjb25zdHJ1Y3QuXG4gKiBAcGFyYW0gcHJvcHMgVGhlIGxvZyBjb25maWd1cmF0aW9uLlxuICogQHJldHVybnMgVGhlIGxvZyBncm91cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZUxvZ0dyb3VwRm9yQ3VzdG9tUmVzb3VyY2UoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzOiBDdXN0b21SZXNvdXJjZUxvZ09wdGlvbnMsXG4pOiBJTG9nR3JvdXAge1xuICBpZiAocHJvcHMubG9nR3JvdXApIHtcbiAgICByZXR1cm4gcHJvcHMubG9nR3JvdXA7XG4gIH1cbiAgcmV0dXJuIG5ldyBMb2dHcm91cChzY29wZSwgaWQsIHtcbiAgICByZXRlbnRpb246XG4gICAgICAocHJvcHMubG9nUmV0ZW50aW9uIGFzIFJldGVudGlvbkRheXMpID8/IFJldGVudGlvbkRheXMuVEhSRUVfREFZUyxcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gIH0pO1xufVxuIl19
|
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./network-parameters"), exports);
|
|
18
|
-
|
|
18
|
+
__exportStar(require("./standard-network"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzLXZwYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUFxQztBQUNyQyxxREFBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25ldHdvcmstcGFyYW1ldGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3N0YW5kYXJkLW5ldHdvcmsnO1xuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StringListParameter, StringParameter } from 'aws-cdk-lib/aws-ssm';
|
|
2
2
|
import type { Construct } from 'constructs';
|
|
3
|
-
import { ExtendedConstruct, type ExtendedConstructProps } from '../../aws-cdk
|
|
3
|
+
import { ExtendedConstruct, type ExtendedConstructProps } from '../../aws-cdk';
|
|
4
4
|
/**
|
|
5
5
|
* Properties for NetworkParameters.
|
|
6
6
|
*/
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NetworkParameters = void 0;
|
|
4
4
|
const aws_ssm_1 = require("aws-cdk-lib/aws-ssm");
|
|
5
|
-
const
|
|
5
|
+
const aws_cdk_1 = require("../../aws-cdk");
|
|
6
6
|
const truemark_1 = require("../../truemark");
|
|
7
7
|
/**
|
|
8
8
|
* Stores and retrieves network infrastructure identifiers using
|
|
9
9
|
* AWS Systems Manager Parameter Store.
|
|
10
10
|
*/
|
|
11
|
-
class NetworkParameters extends
|
|
11
|
+
class NetworkParameters extends aws_cdk_1.ExtendedConstruct {
|
|
12
12
|
/**
|
|
13
13
|
* Creates a new NetworkParameters instance.
|
|
14
14
|
*
|
|
@@ -19,7 +19,7 @@ class NetworkParameters extends index_1.ExtendedConstruct {
|
|
|
19
19
|
constructor(scope, id, props) {
|
|
20
20
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
|
21
21
|
super(scope, id, {
|
|
22
|
-
standardTags:
|
|
22
|
+
standardTags: aws_cdk_1.StandardTags.merge(props.standardTags, truemark_1.LibStandardTags),
|
|
23
23
|
});
|
|
24
24
|
const create = (_a = props.create) !== null && _a !== void 0 ? _a : true;
|
|
25
25
|
const prefix = (_b = props.prefix) !== null && _b !== void 0 ? _b : '/network';
|
|
@@ -304,4 +304,4 @@ class NetworkParameters extends index_1.ExtendedConstruct {
|
|
|
304
304
|
}
|
|
305
305
|
}
|
|
306
306
|
exports.NetworkParameters = NetworkParameters;
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy12cGMvbGliL25ldHdvcmstcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBeUU7QUFFekUsK0NBSTZCO0FBQzdCLDZDQUErQztBQXNTL0M7OztHQUdHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSx5QkFBaUI7SUEyVXREOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7O1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLG9CQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsMEJBQWUsQ0FBQztTQUN0RSxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFBLEtBQUssQ0FBQyxNQUFNLG1DQUFJLElBQUksQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxNQUFBLEtBQUssQ0FBQyxNQUFNLG1DQUFJLFVBQVUsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDdEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQztRQUMzRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsR0FBRyxJQUFJLGtCQUFrQixDQUFDO1FBQzdELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxHQUFHLElBQUksZ0JBQWdCLENBQUM7UUFDekQsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztRQUMvRCxJQUFJLENBQUMsNEJBQTRCLEdBQUcs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QUFJLEVBQ0osSUFBSSxDQUFDLCtCQUErQixDQUNyQyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE1BQUEsS0FBSyxDQUFDLDJCQUEyQixtQ0FBSSxLQUFLLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyx5QkFBZSxDQUFDLGVBQWUsQ0FDN0QsSUFBSSxFQUNKLElBQUksQ0FBQyxrQ0FBa0MsQ0FDeEMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxNQUFBLEtBQUssQ0FBQyxnQkFBZ0IsbUNBQUksS0FBSyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyx5QkFBZSxDQUFDLGVBQWUsQ0FDbkQsSUFBSSxFQUNKLElBQUksQ0FBQyx1QkFBdUIsQ0FDN0IsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxNQUFBLEtBQUssQ0FBQyxpQkFBaUIsbUNBQUksS0FBSyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyx5QkFBZSxDQUFDLGVBQWUsQ0FDcEQsSUFBSSxFQUNKLElBQUksQ0FBQyx3QkFBd0IsQ0FDOUIsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdHZCRCw4Q0FzdkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdHJpbmdMaXN0UGFyYW1ldGVyLCBTdHJpbmdQYXJhbWV0ZXJ9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHR5cGUge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBFeHRlbmRlZENvbnN0cnVjdCxcbiAgdHlwZSBFeHRlbmRlZENvbnN0cnVjdFByb3BzLFxuICBTdGFuZGFyZFRhZ3MsXG59IGZyb20gJy4uLy4uL2F3cy1jZGsvaW5kZXgnO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gJy4uLy4uL3RydWVtYXJrJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBOZXR3b3JrUGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUGFyYW1ldGVyc1Byb3BzIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBuZXR3b3JrLiBUaGlzIGlzIG5vcm1hbGx5IHRoZSBuYW1lIG9mIHlvdXIgVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggZnJvbSB3aGljaCB0byBzdG9yZSBhbmQgcmV0cmlldmUgcGFyYW1ldGVycy4gRGVmYXVsdCBpcyBcIi9uZXR3b3JrXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gXCIvbmV0d29ya1wiXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byBmYWxzZSB3aWxsIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIHJlc291cmNlcyBpbiB0aGlzIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgc3VwcHJlc3MgdGhlIGNyZWF0aW9uIG9mIGRlZmF1bHQgdGFncyBvbiByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGlzXG4gICAqIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NUYWdnaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVlBDIElEIHRvIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF2YWlsYWJpbGl0eS16b25lIHZhbHVlcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IGF6cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgc3VibmV0IElEcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEludHJhIHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBpbnRyYVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZWRzaGlmdCBzdWJuZXQgSURzIHRvIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGF0YWJhc2Ugc3VibmV0IElEcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVsYXN0aWNhY2hlIHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBlbGFzdGljYWNoZVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPdXRwb3N0IHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBvdXRwb3N0U3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBBTEIgQVJOcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FsYkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpdmF0ZSBBTEIgQVJOcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENlcnRpZmljYXRlIEFSTnMgb24gcHVibGljIEFMQnMgdG8gc3RvcmUuIEluZGV4ZXMgc2hvdWxkIG1hdGNoIHB1YmxpY0FsYkFybnMuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2VydGlmaWNhdGUgQVJOcyBvbiBwcml2YXRlIEFMQnMgdG8gc3RvcmUuIEluZGV4ZXMgc2hvdWxkIG1hdGNoIHByaXZhdGVBbGJBcm5zLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbHRlcm5hdGl2ZSBwdWJsaWMgQUxCIEFSTnMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsdGVybmF0aXZlIHByaXZhdGUgQUxCIEFSTnMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxiQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbHRlcm5hdGl2ZSBjZXJ0aWZpY2F0ZSBBUk5zIG9uIHB1YmxpYyBBTEJzIHRvIHN0b3JlLiBJbmRleGVzIHNob3VsZCBtYXRjaCBwdWJsaWNBbGJBcm5zLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHVibGljQWxiQ2VydGlmaWNhdGVBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsdGVybmF0aXZlIGNlcnRpZmljYXRlIEFSTnMgb24gcHJpdmF0ZSBBTEJzIHRvIHN0b3JlLiBJbmRleGVzIHNob3VsZCBtYXRjaCBwcml2YXRlQWxiQXJucy5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZUFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHVibGljIGNlcnRpZmljYXRlIEFSTiB0byBzdG9yZSBmb3IgdGhpcyBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljQ2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgY2VydGlmaWNhdGUgQVJOIHRvIHN0b3JlIGZvciB0aGlzIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENsb3VkRnJvbnQgY2VydGlmaWNhdGUgQVJOIHRvIHN0b3JlIGZvciB0aGlzIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvbnRDZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogUHVibGljIHpvbmUgbmFtZSB0byBzdG9yZSBmb3IgdGhpcyBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljWm9uZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgem9uZSBuYW1lIHRvIHN0b3JlIGZvciB0aGlzIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlWm9uZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExvb2t1cCBWUEMgdmFsdWUgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwVnBjPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGF2YWlsYWJpbGl0eSB6b25lcyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBBenM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHVibGljIHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUHVibGljU3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBwcml2YXRlIHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUHJpdmF0ZVN1Ym5ldHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgaW50cmEgc3VibmV0cyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEludHJhU3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCByZWRzaGlmdCBzdWJuZXRzIGlmIG5vdCBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUmVkc2hpZnRTdWJuZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGRhdGFiYXNlIHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBEYXRhYmFzZVN1Ym5ldHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgZWxhc3RpY2FjaGUgc3VibmV0cyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEVsYXN0aWNhY2hlU3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBvdXRwb3N0IHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBPdXRwb3N0U3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBwdWJsaWMgQUxCcyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY0FsYnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHJpdmF0ZSBBTEJzIGlmIG5vdCBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUHJpdmF0ZUFsYnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgQUNNIGNlcnRpZmljYXRlcyBvbiBwdWJsaWMgQUxCcyBpZiBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY0FsYkNlcnRpZmljYXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBBQ00gY2VydGlmaWNhdGVzIG9uIHByaXZhdGUgQUxCcyBpZiBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgYWx0ZXJuYXRpdmUgcHVibGljIEFMQnMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBBbHRQdWJsaWNBbGJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGFsdGVybmF0aXZlIHByaXZhdGUgQUxCcyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEFsdFByaXZhdGVBbGJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGFsdGVybmF0aXZlIEFDTSBjZXJ0aWZpY2F0ZXMgb24gcHVibGljIEFMQnMgaWYgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEFsdFB1YmxpY0FsYkNlcnRpZmljYXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBhbHRlcm5hdGl2ZSBBQ00gY2VydGlmaWNhdGVzIG9uIHByaXZhdGUgQUxCcyBpZiBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwQWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBwdWJsaWMgY2VydGlmaWNhdGUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY0NlcnRpZmljYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIHByaXZhdGUgY2VydGlmaWNhdGUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFByaXZhdGVDZXJ0aWZpY2F0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBDbG91ZEZyb250IGNlcnRpZmljYXRlLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBDbG91ZEZyb250Q2VydGlmaWNhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHVibGljIHpvbmUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY1pvbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHJpdmF0ZSB6b25lLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBQcml2YXRlWm9uZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3RvcmVzIGFuZCByZXRyaWV2ZXMgbmV0d29yayBpbmZyYXN0cnVjdHVyZSBpZGVudGlmaWVycyB1c2luZ1xuICogQVdTIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXR3b3JrUGFyYW1ldGVycyBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIFZQQyBJRFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBhdmFpbGFiaWxpdHkgem9uZXNcbiAgICovXG4gIHJlYWRvbmx5IGF6c1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgcHVibGljIHN1Ym5ldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHByaXZhdGUgc3VibmV0IElEc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGludHJhIHN1Ym5ldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IGludHJhU3VibmV0c1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgcmVkc2hpZnQgc3VibmV0IElEc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTdWJuZXRzUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkYXRhYmFzZSBzdWJuZXQgSURzXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZVN1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGVsYXN0aWNhY2hlIHN1Ym5ldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IGVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgb3V0cG9zdCBzdWJuZXQgSURzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cG9zdFN1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHB1YmxpYyBBTEIgQVJOcy5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHByaXZhdGUgQUxCIEFSTnMuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQWxic1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgcHVibGljIEFMQnMuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHByaXZhdGUgQUxCcy5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFsdGVybmF0aXZlIHB1YmxpYyBBTEIgQVJOcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFsdGVybmF0aXZlIHByaXZhdGUgQUxCIEFSTnMuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxic1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgYWx0ZXJuYXRpdmUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgcHVibGljIEFMQnMuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFsdGVybmF0aXZlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHByaXZhdGUgQUxCcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZSBBUk4uXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgcHJpdmF0ZSBjZXJ0aWZpY2F0ZSBBUk4uXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIENsb3VkRnJvbnQgY2VydGl0aWNhdGUgQVJOLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGcm9udENlcnRpZmljYXRlUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBwdWJsaWMgem9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1pvbmVQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHByaXZhdGUgem9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVab25lUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgdnBjSWQgd2FzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjUGFyYW1ldGVyPzogU3RyaW5nUGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYXpzIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBhenNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyYXRlZCBpZiBwdWJsaWNTdWJuZXRJZHMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgcHJpdmF0ZVN1Ym5ldElkcyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgaW50cmFTdWJuZXRJZHMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGludHJhU3VibmV0c1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiByZWRzaGlmdFN1Ym5ldElkcyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTdWJuZXRzUGFyYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIGRhdGFiYXNlU3VibmV0SWRzIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZVN1Ym5ldHNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgZWxhc3RpY2FjaGVTdWJuZXRJZHMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBvdXRwb3N0U3VibmV0SWRzIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBvdXRwb3N0U3VibmV0c1ByYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHB1YmxpY0FsYkFybnMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FsYnNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgcHJpdmF0ZUFsYkFybnMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJzUGFyYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHB1YmxpY0FsYkNlcnRpZmljYXRlQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHByaXZhdGVBbGJDZXJ0aWZpY2F0ZUFybnMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYWx0UHVibGljQWxiQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHVibGljQWxic1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBhbHRQcml2YXRlQWxiQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHJpdmF0ZUFsYnNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYWx0UHVibGljQWxiQ2VydGlmaWNhdGVBcm5zIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlc1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBwdWJsaWNDZXJ0aWZpY2F0ZUFybiB3YXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlcj86IFN0cmluZ1BhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHByaXZhdGVDZXJ0aWZpY2F0ZUFybiB3YXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVQYXJhbWV0ZXI/OiBTdHJpbmdQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBjbG91ZEZyb250Q2VydGlmaWNhdGVBcm4gd2FzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGcm9udENlcnRpZmljYXRlUGFyYW1ldGVyPzogU3RyaW5nUGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgcHVibGljWm9uZU5hbWUgd2FzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljWm9uZVBhcmFtZXRlcj86IFN0cmluZ1BhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHByaXZhdGVab25lTmFtZSB3YXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlWm9uZVBhcmFtZXRlcj86IFN0cmluZ1BhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHZwY0lkIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSB2cGNJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSB6b25lcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXpzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMgc3VibmV0IElEcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcml2YXRlIHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGludHJhIHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGludHJhU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSByZWRzaGlmdCBzdWJuZXQgSURzIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSByZWRzaGlmdFN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0YWJhc2Ugc3VibmV0IElEcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGVsYXN0aWNhY2hlIHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVsYXN0aWNhY2hlU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBvdXRwb3N0IHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHBvc3RTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHB1YmxpYyBBTEIgQVJOcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljQWxiQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpdmF0ZSBBTEIgQVJOcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUFsYkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHB1YmxpYyBBTEJzIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHByaXZhdGUgQUxicyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWx0ZXJuYXRpdmUgcHVibGljIEFMQiBBUk5zIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBhbHRlcm5hdGl2ZSBwcml2YXRlIEFMQiBBUk5zIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxiQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgYWx0ZXJuYXRpdmUgcHVibGljIEFMQnMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFB1YmxpY0FsYkNlcnRpZmljYXRlQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgYWx0ZXJuYXRpdmUgcHJpdmF0ZSBBTGJzIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMgY2VydGlmaWNhdGUgQVJOIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNDZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaXZhdGUgY2VydGlmaWNhdGUgQVJOIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZyb250IGNlcnRpZmljYXRlIEFSTiBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGcm9udENlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHVibGljIHpvbmUgbmFtZSBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljWm9uZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcml2YXRlIHpvbmUgbmFtZSBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IE5ldHdvcmtQYXJhbWV0ZXJzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHBhcmVudCBzY29wZVxuICAgKiBAcGFyYW0gaWQgdGhlIGlkIG9mIHRoZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyBmb3IgdGhlIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV0d29ya1BhcmFtZXRlcnNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc3RhbmRhcmRUYWdzOiBTdGFuZGFyZFRhZ3MubWVyZ2UocHJvcHMuc3RhbmRhcmRUYWdzLCBMaWJTdGFuZGFyZFRhZ3MpLFxuICAgIH0pO1xuICAgIGNvbnN0IGNyZWF0ZSA9IHByb3BzLmNyZWF0ZSA/PyB0cnVlO1xuICAgIGNvbnN0IHByZWZpeCA9IHByb3BzLnByZWZpeCA/PyAnL25ldHdvcmsnO1xuICAgIGNvbnN0IHBhdGggPSBgJHtwcmVmaXh9LyR7cHJvcHMubmFtZX1gO1xuICAgIHRoaXMudnBjUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3ZwY2A7XG4gICAgdGhpcy5henNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYXpzYDtcbiAgICB0aGlzLnB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vcHVibGljX3N1Ym5ldHNgO1xuICAgIHRoaXMucHJpdmF0ZVN1Ym5ldHNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vcHJpdmF0ZV9zdWJuZXRzYDtcbiAgICB0aGlzLmludHJhU3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9pbnRyYV9zdWJuZXRzYDtcbiAgICB0aGlzLnJlZHNoaWZ0U3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9yZWRzaGlmdF9zdWJuZXRzYDtcbiAgICB0aGlzLmRhdGFiYXNlU3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9kYXRhYmFzZV9zdWJuZXRzYDtcbiAgICB0aGlzLmVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9lbGFzdGljYWNoZV9zdWJuZXRzYDtcbiAgICB0aGlzLm91dHBvc3RTdWJuZXRzUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L291dHBvc3Rfc3VibmV0c2A7XG4gICAgdGhpcy5wdWJsaWNBbGJzUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3B1YmxpY19hbGJzYDtcbiAgICB0aGlzLnByaXZhdGVBbGJzUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3ByaXZhdGVfYWxic2A7XG4gICAgdGhpcy5wdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vcHVibGljX2FsYl9jZXJ0aWZpY2F0ZXNgO1xuICAgIHRoaXMucHJpdmF0ZUFsYkNlcnRpZmljYXRlc1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wcml2YXRlX2FsYl9jZXJ0aWZpY2F0ZXNgO1xuICAgIHRoaXMuYWx0UHVibGljQWxic1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9hbHRfcHVibGljX2FsYnNgO1xuICAgIHRoaXMuYWx0UHJpdmF0ZUFsYnNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYWx0X3ByaXZhdGVfYWxic2A7XG4gICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYWx0X3B1YmxpY19hbGJfY2VydGlmaWNhdGVzYDtcbiAgICB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYWx0X3ByaXZhdGVfYWxiX2NlcnRpZmljYXRlc2A7XG4gICAgdGhpcy5wdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wdWJsaWNfY2VydGlmaWNhdGVgO1xuICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3ByaXZhdGVfY2VydGlmaWNhdGVgO1xuICAgIHRoaXMuY2xvdWRGcm9udENlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L2Nsb3VkZnJvbnRfY2VydGlmaWNhdGVgO1xuICAgIHRoaXMucHVibGljWm9uZVBhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wdWJsaWNfem9uZWA7XG4gICAgdGhpcy5wcml2YXRlWm9uZVBhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wcml2YXRlX3pvbmVgO1xuXG4gICAgaWYgKGNyZWF0ZSkge1xuICAgICAgaWYgKHByb3BzLnZwY0lkKSB7XG4gICAgICAgIHRoaXMudnBjUGFyYW1ldGVyID0gbmV3IFN0cmluZ1BhcmFtZXRlcih0aGlzLCAnVnBjSWQnLCB7XG4gICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy52cGNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgIHN0cmluZ1ZhbHVlOiBwcm9wcy52cGNJZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudnBjSWQgPSBwcm9wcy52cGNJZDtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5henMpIHtcbiAgICAgICAgdGhpcy5henNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcih0aGlzLCAnQVpzJywge1xuICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMuYXpzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLmF6cyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXpzID0gcHJvcHMuYXpzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnB1YmxpY1N1Ym5ldElkcykge1xuICAgICAgICB0aGlzLnB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQdWJsaWNTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLnB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5wdWJsaWNTdWJuZXRJZHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wdWJsaWNTdWJuZXRJZHMgPSBwcm9wcy5wcml2YXRlU3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnByaXZhdGVTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5wcml2YXRlU3VibmV0c1BhcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ1ByaXZhdGVTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLnByaXZhdGVTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMucHJpdmF0ZVN1Ym5ldElkcyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnByaXZhdGVTdWJuZXRJZHMgPSBwcm9wcy5wcml2YXRlU3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmludHJhU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMuaW50cmFTdWJuZXRzUGFyYW1ldGVyID0gbmV3IFN0cmluZ0xpc3RQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnSW50cmFTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmludHJhU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLmludHJhU3VibmV0SWRzLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW50cmFTdWJuZXRJZHMgPSBwcm9wcy5pbnRyYVN1Ym5ldElkcztcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5yZWRzaGlmdFN1Ym5ldElkcykge1xuICAgICAgICB0aGlzLnJlZHNoaWZ0U3VibmV0c1BhcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ1JlZHNoaWZ0U3VibmV0cycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy5yZWRzaGlmdFN1Ym5ldHNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5yZWRzaGlmdFN1Ym5ldElkcyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlZHNoaWZ0U3VibmV0SWRzID0gcHJvcHMucmVkc2hpZnRTdWJuZXRJZHM7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGF0YWJhc2VTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5kYXRhYmFzZVN1Ym5ldHNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdEYXRhYmFzZVN1Ym5ldHMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMuZGF0YWJhc2VTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMuZGF0YWJhc2VTdWJuZXRJZHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhYmFzZVN1Ym5ldElkcyA9IHByb3BzLmRhdGFiYXNlU3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmVsYXN0aWNhY2hlU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMuZWxhc3RpY2FjaGVTdWJuZXRzUGFyYW1ldGVyID0gbmV3IFN0cmluZ0xpc3RQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnRWxhc3RpY2FjaGVTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLmVsYXN0aWNhY2hlU3VibmV0SWRzLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZWxhc3RpY2FjaGVTdWJuZXRJZHMgPSBwcm9wcy5lbGFzdGljYWNoZVN1Ym5ldElkcztcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5vdXRwb3N0U3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMub3V0cG9zdFN1Ym5ldHNQcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ091dHBvc3RTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLm91dHBvc3RTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMub3V0cG9zdFN1Ym5ldElkcyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm91dHBvc3RTdWJuZXRJZHMgPSBwcm9wcy5vdXRwb3N0U3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnB1YmxpY0FsYkFybnMpIHtcbiAgICAgICAgdGhpcy5wdWJsaWNBbGJzUGFyYW1ldGVyID0gbmV3IFN0cmluZ0xpc3RQYXJhbWV0ZXIodGhpcywgJ1B1YmxpY0FsYnMnLCB7XG4gICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy5wdWJsaWNBbGJzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLnB1YmxpY0FsYkFybnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnB1YmxpY0FsYkFybnMgPSBwcm9wcy5wdWJsaWNBbGJBcm5zO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnByaXZhdGVBbGJBcm5zKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYnNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQcml2YXRlQWxicycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy5wcml2YXRlQWxic1BhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLnByaXZhdGVBbGJBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYkFybnMgPSBwcm9wcy5wcml2YXRlQWxiQXJucztcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5wdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMpIHtcbiAgICAgICAgdGhpcy5wdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQdWJsaWNBbGJDZXJ0aWZpY2F0ZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHVibGljQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMucHVibGljQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMucHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLnByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQcml2YXRlQWxiQ2VydGlmaWNhdGVzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLnByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5wcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYWx0UHVibGljQWxiQXJucykge1xuICAgICAgICB0aGlzLmFsdFB1YmxpY0FsYnNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdBbHRQdWJsaWNBbGJzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmFsdFB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5hbHRQdWJsaWNBbGJBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYWx0UHJpdmF0ZUFsYkFybnMpIHtcbiAgICAgICAgdGhpcy5hbHRQcml2YXRlQWxic1BhcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ0FsdFByaXZhdGVBbGJzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmFsdFByaXZhdGVBbGJzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMuYWx0UHJpdmF0ZUFsYkFybnMsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMpIHtcbiAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdBbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMuYWx0UHVibGljQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMuYWx0UHVibGljQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdBbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5hbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMucHVibGljQ2VydGlmaWNhdGVBcm4pIHtcbiAgICAgICAgdGhpcy5wdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlciA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnUHVibGljQ2VydGlmaWNhdGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHVibGljQ2VydGlmaWNhdGVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nVmFsdWU6IHByb3BzLnB1YmxpY0NlcnRpZmljYXRlQXJuLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMucHJpdmF0ZUNlcnRpZmljYXRlQXJuKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyID0gbmV3IFN0cmluZ1BhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQcml2YXRlQ2VydGlmaWNhdGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ1ZhbHVlOiBwcm9wcy5wcml2YXRlQ2VydGlmaWNhdGVBcm4sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5jbG91ZEZvbnRDZXJ0aWZpY2F0ZUFybikge1xuICAgICAgICB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZVBhcmFtZXRlciA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnQ2xvdWRGcm9udENlcnRpZmljYXRlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdWYWx1ZTogcHJvcHMuY2xvdWRGb250Q2VydGlmaWNhdGVBcm4sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5wdWJsaWNab25lTmFtZSkge1xuICAgICAgICB0aGlzLnB1YmxpY1pvbmVQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nUGFyYW1ldGVyKHRoaXMsICdQdWJsaWNab25lJywge1xuICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHVibGljWm9uZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICAgc3RyaW5nVmFsdWU6IHByb3BzLnB1YmxpY1pvbmVOYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5wcml2YXRlWm9uZU5hbWUpIHtcbiAgICAgICAgdGhpcy5wcml2YXRlWm9uZVBhcmFtZXRlciA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIodGhpcywgJ1ByaXZhdGVab25lJywge1xuICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHJpdmF0ZVpvbmVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgIHN0cmluZ1ZhbHVlOiBwcm9wcy5wcml2YXRlWm9uZU5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwVnBjID8/IHRydWUpIHtcbiAgICAgIGlmICghdGhpcy52cGNJZCkge1xuICAgICAgICB0aGlzLnZwY0lkID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMudnBjUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cEF6cyA/PyB0cnVlKSB7XG4gICAgICBpZiAoIXRoaXMuYXpzKSB7XG4gICAgICAgIHRoaXMuYXpzID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMuYXpzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHVibGljU3VibmV0cyA/PyB0cnVlKSB7XG4gICAgICBpZiAoIXRoaXMucHVibGljU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMucHVibGljU3VibmV0SWRzID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMucHVibGljU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFByaXZhdGVTdWJuZXRzID8/IHRydWUpIHtcbiAgICAgIGlmICghdGhpcy5wcml2YXRlU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZVN1Ym5ldElkcyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnByaXZhdGVTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwSW50cmFTdWJuZXRzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuaW50cmFTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5pbnRyYVN1Ym5ldElkcyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLmludHJhU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFJlZHNoaWZ0U3VibmV0cyA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLnJlZHNoaWZ0U3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMucmVkc2hpZnRTdWJuZXRJZHMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5yZWRzaGlmdFN1Ym5ldHNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBEYXRhYmFzZVN1Ym5ldHMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5kYXRhYmFzZVN1Ym5ldElkcykge1xuICAgICAgICB0aGlzLmRhdGFiYXNlU3VibmV0SWRzID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMuZGF0YWJhc2VTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwRWxhc3RpY2FjaGVTdWJuZXRzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuZWxhc3RpY2FjaGVTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5lbGFzdGljYWNoZVN1Ym5ldElkcyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLmVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cE91dHBvc3RTdWJuZXRzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMub3V0cG9zdFN1Ym5ldElkcykge1xuICAgICAgICB0aGlzLm91dHBvc3RTdWJuZXRJZHMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5vdXRwb3N0U3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFB1YmxpY0FsYnMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wdWJsaWNBbGJBcm5zKSB7XG4gICAgICAgIHRoaXMucHVibGljQWxiQXJucyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBQcml2YXRlQWxicyA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLnByaXZhdGVBbGJBcm5zKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYkFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5wcml2YXRlQWxic1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFB1YmxpY0FsYkNlcnRpZmljYXRlcyA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLnB1YmxpY0FsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLnB1YmxpY0FsYkNlcnRpZmljYXRlQXJucyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnB1YmxpY0FsYkNlcnRpZmljYXRlc1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBBbHRQdWJsaWNBbGJzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuYWx0UHVibGljQWxiQXJucykge1xuICAgICAgICB0aGlzLmFsdFB1YmxpY0FsYkFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwQWx0UHJpdmF0ZUFsYnMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5hbHRQcml2YXRlQWxiQXJucykge1xuICAgICAgICB0aGlzLmFsdFByaXZhdGVBbGJBcm5zID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMuYWx0UHJpdmF0ZUFsYnNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBBbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMpIHtcbiAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBBbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZUFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5hbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHVibGljQ2VydGlmaWNhdGUgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wdWJsaWNDZXJ0aWZpY2F0ZUFybikge1xuICAgICAgICB0aGlzLnB1YmxpY0NlcnRpZmljYXRlQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMucHVibGljQ2VydGlmaWNhdGVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHJpdmF0ZUNlcnRpZmljYXRlID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMucHJpdmF0ZUNlcnRpZmljYXRlQXJuKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cENsb3VkRnJvbnRDZXJ0aWZpY2F0ZSA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZUFybikge1xuICAgICAgICB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZUFybiA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBQdWJsaWNab25lID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMucHVibGljWm9uZU5hbWUpIHtcbiAgICAgICAgdGhpcy5wdWJsaWNab25lTmFtZSA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnB1YmxpY1pvbmVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHJpdmF0ZVpvbmUgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wcml2YXRlWm9uZU5hbWUpIHtcbiAgICAgICAgdGhpcy5wcml2YXRlWm9uZU5hbWUgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5wcml2YXRlWm9uZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1wYXJhbWV0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy12cGMvbGliL25ldHdvcmstcGFyYW1ldGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBeUU7QUFFekUsMkNBSXVCO0FBQ3ZCLDZDQUErQztBQXNTL0M7OztHQUdHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSwyQkFBaUI7SUEyVXREOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7O1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLHNCQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsMEJBQWUsQ0FBQztTQUN0RSxDQUFDLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFBLEtBQUssQ0FBQyxNQUFNLG1DQUFJLElBQUksQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxNQUFBLEtBQUssQ0FBQyxNQUFNLG1DQUFJLFVBQVUsQ0FBQztRQUMxQyxNQUFNLElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUM7UUFDdEMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQztRQUMzRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsR0FBRyxJQUFJLGtCQUFrQixDQUFDO1FBQzdELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxHQUFHLElBQUksZ0JBQWdCLENBQUM7UUFDekQsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQztRQUMvRCxJQUFJLENBQUMsNEJBQTRCLEdBQUcs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QUFJLEVBQ0osSUFBSSxDQUFDLCtCQUErQixDQUNyQyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE1BQUEsS0FBSyxDQUFDLDJCQUEyQixtQ0FBSSxLQUFLLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyx3QkFBd0IsR0FBRyx5QkFBZSxDQUFDLGVBQWUsQ0FDN0QsSUFBSSxFQUNKLElBQUksQ0FBQyxrQ0FBa0MsQ0FDeEMsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxNQUFBLEtBQUssQ0FBQyxnQkFBZ0IsbUNBQUksS0FBSyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyx5QkFBZSxDQUFDLGVBQWUsQ0FDbkQsSUFBSSxFQUNKLElBQUksQ0FBQyx1QkFBdUIsQ0FDN0IsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxNQUFBLEtBQUssQ0FBQyxpQkFBaUIsbUNBQUksS0FBSyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyx5QkFBZSxDQUFDLGVBQWUsQ0FDcEQsSUFBSSxFQUNKLElBQUksQ0FBQyx3QkFBd0IsQ0FDOUIsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBdHZCRCw4Q0FzdkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdHJpbmdMaXN0UGFyYW1ldGVyLCBTdHJpbmdQYXJhbWV0ZXJ9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zc20nO1xuaW1wb3J0IHR5cGUge0NvbnN0cnVjdH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBFeHRlbmRlZENvbnN0cnVjdCxcbiAgdHlwZSBFeHRlbmRlZENvbnN0cnVjdFByb3BzLFxuICBTdGFuZGFyZFRhZ3MsXG59IGZyb20gJy4uLy4uL2F3cy1jZGsnO1xuaW1wb3J0IHtMaWJTdGFuZGFyZFRhZ3N9IGZyb20gJy4uLy4uL3RydWVtYXJrJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBOZXR3b3JrUGFyYW1ldGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUGFyYW1ldGVyc1Byb3BzIGV4dGVuZHMgRXh0ZW5kZWRDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBuZXR3b3JrLiBUaGlzIGlzIG5vcm1hbGx5IHRoZSBuYW1lIG9mIHlvdXIgVlBDLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcmVmaXggZnJvbSB3aGljaCB0byBzdG9yZSBhbmQgcmV0cmlldmUgcGFyYW1ldGVycy4gRGVmYXVsdCBpcyBcIi9uZXR3b3JrXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gXCIvbmV0d29ya1wiXG4gICAqL1xuICByZWFkb25seSBwcmVmaXg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byBmYWxzZSB3aWxsIGRpc2FibGUgdGhlIGNyZWF0aW9uIG9mIHJlc291cmNlcyBpbiB0aGlzIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyB0cnVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldHRpbmcgdGhpcyB0byB0cnVlIHdpbGwgc3VwcHJlc3MgdGhlIGNyZWF0aW9uIG9mIGRlZmF1bHQgdGFncyBvbiByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGlzXG4gICAqIGNvbnN0cnVjdC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3VwcHJlc3NUYWdnaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVlBDIElEIHRvIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF2YWlsYWJpbGl0eS16b25lIHZhbHVlcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IGF6cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgc3VibmV0IElEcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBQcml2YXRlIHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEludHJhIHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBpbnRyYVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZWRzaGlmdCBzdWJuZXQgSURzIHRvIHN0b3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRGF0YWJhc2Ugc3VibmV0IElEcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFiYXNlU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEVsYXN0aWNhY2hlIHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBlbGFzdGljYWNoZVN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPdXRwb3N0IHN1Ym5ldCBJRHMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBvdXRwb3N0U3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFB1YmxpYyBBTEIgQVJOcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FsYkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHJpdmF0ZSBBTEIgQVJOcyB0byBzdG9yZS5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIENlcnRpZmljYXRlIEFSTnMgb24gcHVibGljIEFMQnMgdG8gc3RvcmUuIEluZGV4ZXMgc2hvdWxkIG1hdGNoIHB1YmxpY0FsYkFybnMuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ2VydGlmaWNhdGUgQVJOcyBvbiBwcml2YXRlIEFMQnMgdG8gc3RvcmUuIEluZGV4ZXMgc2hvdWxkIG1hdGNoIHByaXZhdGVBbGJBcm5zLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbHRlcm5hdGl2ZSBwdWJsaWMgQUxCIEFSTnMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsdGVybmF0aXZlIHByaXZhdGUgQUxCIEFSTnMgdG8gc3RvcmUuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxiQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBbHRlcm5hdGl2ZSBjZXJ0aWZpY2F0ZSBBUk5zIG9uIHB1YmxpYyBBTEJzIHRvIHN0b3JlLiBJbmRleGVzIHNob3VsZCBtYXRjaCBwdWJsaWNBbGJBcm5zLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHVibGljQWxiQ2VydGlmaWNhdGVBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEFsdGVybmF0aXZlIGNlcnRpZmljYXRlIEFSTnMgb24gcHJpdmF0ZSBBTEJzIHRvIHN0b3JlLiBJbmRleGVzIHNob3VsZCBtYXRjaCBwcml2YXRlQWxiQXJucy5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZUFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUHVibGljIGNlcnRpZmljYXRlIEFSTiB0byBzdG9yZSBmb3IgdGhpcyBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljQ2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgY2VydGlmaWNhdGUgQVJOIHRvIHN0b3JlIGZvciB0aGlzIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENsb3VkRnJvbnQgY2VydGlmaWNhdGUgQVJOIHRvIHN0b3JlIGZvciB0aGlzIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBjbG91ZEZvbnRDZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogUHVibGljIHpvbmUgbmFtZSB0byBzdG9yZSBmb3IgdGhpcyBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljWm9uZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByaXZhdGUgem9uZSBuYW1lIHRvIHN0b3JlIGZvciB0aGlzIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlWm9uZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIExvb2t1cCBWUEMgdmFsdWUgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwVnBjPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGF2YWlsYWJpbGl0eSB6b25lcyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgdHJ1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBBenM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHVibGljIHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUHVibGljU3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBwcml2YXRlIHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIHRydWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUHJpdmF0ZVN1Ym5ldHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgaW50cmEgc3VibmV0cyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEludHJhU3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCByZWRzaGlmdCBzdWJuZXRzIGlmIG5vdCBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUmVkc2hpZnRTdWJuZXRzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGRhdGFiYXNlIHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBEYXRhYmFzZVN1Ym5ldHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgZWxhc3RpY2FjaGUgc3VibmV0cyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEVsYXN0aWNhY2hlU3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBvdXRwb3N0IHN1Ym5ldHMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBPdXRwb3N0U3VibmV0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBwdWJsaWMgQUxCcyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY0FsYnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHJpdmF0ZSBBTEJzIGlmIG5vdCBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwUHJpdmF0ZUFsYnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgQUNNIGNlcnRpZmljYXRlcyBvbiBwdWJsaWMgQUxCcyBpZiBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY0FsYkNlcnRpZmljYXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBBQ00gY2VydGlmaWNhdGVzIG9uIHByaXZhdGUgQUxCcyBpZiBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgYWx0ZXJuYXRpdmUgcHVibGljIEFMQnMgaWYgbm90IHByb3ZpZGVkLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBBbHRQdWJsaWNBbGJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGFsdGVybmF0aXZlIHByaXZhdGUgQUxCcyBpZiBub3QgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEFsdFByaXZhdGVBbGJzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIGFsdGVybmF0aXZlIEFDTSBjZXJ0aWZpY2F0ZXMgb24gcHVibGljIEFMQnMgaWYgcHJvdmlkZWQuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cEFsdFB1YmxpY0FsYkNlcnRpZmljYXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBhbHRlcm5hdGl2ZSBBQ00gY2VydGlmaWNhdGVzIG9uIHByaXZhdGUgQUxCcyBpZiBwcm92aWRlZC4gRGVmYXVsdCBpcyBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3VwQWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBwdWJsaWMgY2VydGlmaWNhdGUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY0NlcnRpZmljYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTG9va3VwIHByaXZhdGUgY2VydGlmaWNhdGUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFByaXZhdGVDZXJ0aWZpY2F0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIExvb2t1cCBDbG91ZEZyb250IGNlcnRpZmljYXRlLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBDbG91ZEZyb250Q2VydGlmaWNhdGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHVibGljIHpvbmUuIERlZmF1bHQgaXMgZmFsc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGxvb2t1cFB1YmxpY1pvbmU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb29rdXAgcHJpdmF0ZSB6b25lLiBEZWZhdWx0IGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBQcml2YXRlWm9uZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU3RvcmVzIGFuZCByZXRyaWV2ZXMgbmV0d29yayBpbmZyYXN0cnVjdHVyZSBpZGVudGlmaWVycyB1c2luZ1xuICogQVdTIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXR3b3JrUGFyYW1ldGVycyBleHRlbmRzIEV4dGVuZGVkQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIFZQQyBJRFxuICAgKi9cbiAgcmVhZG9ubHkgdnBjUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBhdmFpbGFiaWxpdHkgem9uZXNcbiAgICovXG4gIHJlYWRvbmx5IGF6c1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgcHVibGljIHN1Ym5ldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHByaXZhdGUgc3VibmV0IElEc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGludHJhIHN1Ym5ldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IGludHJhU3VibmV0c1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgcmVkc2hpZnQgc3VibmV0IElEc1xuICAgKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTdWJuZXRzUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBkYXRhYmFzZSBzdWJuZXQgSURzXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZVN1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGVsYXN0aWNhY2hlIHN1Ym5ldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IGVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgb3V0cG9zdCBzdWJuZXQgSURzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0cG9zdFN1Ym5ldHNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHB1YmxpYyBBTEIgQVJOcy5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHByaXZhdGUgQUxCIEFSTnMuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQWxic1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgcHVibGljIEFMQnMuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHByaXZhdGUgQUxCcy5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFsdGVybmF0aXZlIHB1YmxpYyBBTEIgQVJOcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFsdGVybmF0aXZlIHByaXZhdGUgQUxCIEFSTnMuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxic1BhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgYWx0ZXJuYXRpdmUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgcHVibGljIEFMQnMuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIGFsdGVybmF0aXZlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHByaXZhdGUgQUxCcy5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZSBBUk4uXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgcHJpdmF0ZSBjZXJ0aWZpY2F0ZSBBUk4uXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIENsb3VkRnJvbnQgY2VydGl0aWNhdGUgQVJOLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGcm9udENlcnRpZmljYXRlUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBwdWJsaWMgem9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1pvbmVQYXJhbWV0ZXJQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHByaXZhdGUgem9uZS5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVab25lUGFyYW1ldGVyUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgdnBjSWQgd2FzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdnBjUGFyYW1ldGVyPzogU3RyaW5nUGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYXpzIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBhenNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyYXRlZCBpZiBwdWJsaWNTdWJuZXRJZHMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgcHJpdmF0ZVN1Ym5ldElkcyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVN1Ym5ldHNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgaW50cmFTdWJuZXRJZHMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGludHJhU3VibmV0c1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiByZWRzaGlmdFN1Ym5ldElkcyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVkc2hpZnRTdWJuZXRzUGFyYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIGRhdGFiYXNlU3VibmV0SWRzIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZVN1Ym5ldHNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgZWxhc3RpY2FjaGVTdWJuZXRJZHMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBvdXRwb3N0U3VibmV0SWRzIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBvdXRwb3N0U3VibmV0c1ByYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHB1YmxpY0FsYkFybnMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0FsYnNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgcHJpdmF0ZUFsYkFybnMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJzUGFyYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHB1YmxpY0FsYkNlcnRpZmljYXRlQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyPzogU3RyaW5nTGlzdFBhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHByaXZhdGVBbGJDZXJ0aWZpY2F0ZUFybnMgd2VyZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYWx0UHVibGljQWxiQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHVibGljQWxic1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBhbHRQcml2YXRlQWxiQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHJpdmF0ZUFsYnNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYWx0UHVibGljQWxiQ2VydGlmaWNhdGVBcm5zIHdlcmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXI/OiBTdHJpbmdMaXN0UGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucyB3ZXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlc1BhcmFtZXRlcj86IFN0cmluZ0xpc3RQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBwdWJsaWNDZXJ0aWZpY2F0ZUFybiB3YXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlcj86IFN0cmluZ1BhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHByaXZhdGVDZXJ0aWZpY2F0ZUFybiB3YXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVQYXJhbWV0ZXI/OiBTdHJpbmdQYXJhbWV0ZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbWV0ZXIgY3JlYXRlZCBpZiBjbG91ZEZyb250Q2VydGlmaWNhdGVBcm4gd2FzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGcm9udENlcnRpZmljYXRlUGFyYW1ldGVyPzogU3RyaW5nUGFyYW1ldGVyO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVyIGNyZWF0ZWQgaWYgcHVibGljWm9uZU5hbWUgd2FzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljWm9uZVBhcmFtZXRlcj86IFN0cmluZ1BhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtZXRlciBjcmVhdGVkIGlmIHByaXZhdGVab25lTmFtZSB3YXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlWm9uZVBhcmFtZXRlcj86IFN0cmluZ1BhcmFtZXRlcjtcblxuICAvKipcbiAgICogVGhlIHZwY0lkIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSB2cGNJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSB6b25lcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXpzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMgc3VibmV0IElEcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwcml2YXRlIHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGludHJhIHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGludHJhU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSByZWRzaGlmdCBzdWJuZXQgSURzIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSByZWRzaGlmdFN1Ym5ldElkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0YWJhc2Ugc3VibmV0IElEcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YWJhc2VTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGVsYXN0aWNhY2hlIHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGVsYXN0aWNhY2hlU3VibmV0SWRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBvdXRwb3N0IHN1Ym5ldCBJRHMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IG91dHBvc3RTdWJuZXRJZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHB1YmxpYyBBTEIgQVJOcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljQWxiQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJpdmF0ZSBBTEIgQVJOcyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUFsYkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHB1YmxpYyBBTEJzIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNlcnRpZmljYXRlIEFSTnMgb24gdGhlIHByaXZhdGUgQUxicyBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgYWx0ZXJuYXRpdmUgcHVibGljIEFMQiBBUk5zIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQdWJsaWNBbGJBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBhbHRlcm5hdGl2ZSBwcml2YXRlIEFMQiBBUk5zIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxiQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgYWx0ZXJuYXRpdmUgcHVibGljIEFMQnMgaWYgcHJvdmlkZWQgb3IgbG9va3VwcyBhcmUgZW5hYmxlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFsdFB1YmxpY0FsYkNlcnRpZmljYXRlQXJucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY2VydGlmaWNhdGUgQVJOcyBvbiB0aGUgYWx0ZXJuYXRpdmUgcHJpdmF0ZSBBTGJzIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBhbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBwdWJsaWMgY2VydGlmaWNhdGUgQVJOIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNDZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaXZhdGUgY2VydGlmaWNhdGUgQVJOIGlmIHByb3ZpZGVkIG9yIGxvb2t1cHMgYXJlIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBwcml2YXRlQ2VydGlmaWNhdGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBDbG91ZEZyb250IGNlcnRpZmljYXRlIEFSTiBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY2xvdWRGcm9udENlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHVibGljIHpvbmUgbmFtZSBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljWm9uZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcml2YXRlIHpvbmUgbmFtZSBpZiBwcm92aWRlZCBvciBsb29rdXBzIGFyZSBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZVpvbmVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IE5ldHdvcmtQYXJhbWV0ZXJzIGluc3RhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHBhcmVudCBzY29wZVxuICAgKiBAcGFyYW0gaWQgdGhlIGlkIG9mIHRoZSBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgcHJvcGVydGllcyBmb3IgdGhlIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTmV0d29ya1BhcmFtZXRlcnNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgc3RhbmRhcmRUYWdzOiBTdGFuZGFyZFRhZ3MubWVyZ2UocHJvcHMuc3RhbmRhcmRUYWdzLCBMaWJTdGFuZGFyZFRhZ3MpLFxuICAgIH0pO1xuICAgIGNvbnN0IGNyZWF0ZSA9IHByb3BzLmNyZWF0ZSA/PyB0cnVlO1xuICAgIGNvbnN0IHByZWZpeCA9IHByb3BzLnByZWZpeCA/PyAnL25ldHdvcmsnO1xuICAgIGNvbnN0IHBhdGggPSBgJHtwcmVmaXh9LyR7cHJvcHMubmFtZX1gO1xuICAgIHRoaXMudnBjUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3ZwY2A7XG4gICAgdGhpcy5henNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYXpzYDtcbiAgICB0aGlzLnB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vcHVibGljX3N1Ym5ldHNgO1xuICAgIHRoaXMucHJpdmF0ZVN1Ym5ldHNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vcHJpdmF0ZV9zdWJuZXRzYDtcbiAgICB0aGlzLmludHJhU3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9pbnRyYV9zdWJuZXRzYDtcbiAgICB0aGlzLnJlZHNoaWZ0U3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9yZWRzaGlmdF9zdWJuZXRzYDtcbiAgICB0aGlzLmRhdGFiYXNlU3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9kYXRhYmFzZV9zdWJuZXRzYDtcbiAgICB0aGlzLmVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9lbGFzdGljYWNoZV9zdWJuZXRzYDtcbiAgICB0aGlzLm91dHBvc3RTdWJuZXRzUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L291dHBvc3Rfc3VibmV0c2A7XG4gICAgdGhpcy5wdWJsaWNBbGJzUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3B1YmxpY19hbGJzYDtcbiAgICB0aGlzLnByaXZhdGVBbGJzUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3ByaXZhdGVfYWxic2A7XG4gICAgdGhpcy5wdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vcHVibGljX2FsYl9jZXJ0aWZpY2F0ZXNgO1xuICAgIHRoaXMucHJpdmF0ZUFsYkNlcnRpZmljYXRlc1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wcml2YXRlX2FsYl9jZXJ0aWZpY2F0ZXNgO1xuICAgIHRoaXMuYWx0UHVibGljQWxic1BhcmFtZXRlclBhdGggPSBgJHtwYXRofS9hbHRfcHVibGljX2FsYnNgO1xuICAgIHRoaXMuYWx0UHJpdmF0ZUFsYnNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYWx0X3ByaXZhdGVfYWxic2A7XG4gICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYWx0X3B1YmxpY19hbGJfY2VydGlmaWNhdGVzYDtcbiAgICB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoID0gYCR7cGF0aH0vYWx0X3ByaXZhdGVfYWxiX2NlcnRpZmljYXRlc2A7XG4gICAgdGhpcy5wdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wdWJsaWNfY2VydGlmaWNhdGVgO1xuICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L3ByaXZhdGVfY2VydGlmaWNhdGVgO1xuICAgIHRoaXMuY2xvdWRGcm9udENlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCA9IGAke3BhdGh9L2Nsb3VkZnJvbnRfY2VydGlmaWNhdGVgO1xuICAgIHRoaXMucHVibGljWm9uZVBhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wdWJsaWNfem9uZWA7XG4gICAgdGhpcy5wcml2YXRlWm9uZVBhcmFtZXRlclBhdGggPSBgJHtwYXRofS9wcml2YXRlX3pvbmVgO1xuXG4gICAgaWYgKGNyZWF0ZSkge1xuICAgICAgaWYgKHByb3BzLnZwY0lkKSB7XG4gICAgICAgIHRoaXMudnBjUGFyYW1ldGVyID0gbmV3IFN0cmluZ1BhcmFtZXRlcih0aGlzLCAnVnBjSWQnLCB7XG4gICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy52cGNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgIHN0cmluZ1ZhbHVlOiBwcm9wcy52cGNJZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudnBjSWQgPSBwcm9wcy52cGNJZDtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5henMpIHtcbiAgICAgICAgdGhpcy5henNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcih0aGlzLCAnQVpzJywge1xuICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMuYXpzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLmF6cyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXpzID0gcHJvcHMuYXpzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnB1YmxpY1N1Ym5ldElkcykge1xuICAgICAgICB0aGlzLnB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQdWJsaWNTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLnB1YmxpY1N1Ym5ldHNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5wdWJsaWNTdWJuZXRJZHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5wdWJsaWNTdWJuZXRJZHMgPSBwcm9wcy5wcml2YXRlU3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnByaXZhdGVTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5wcml2YXRlU3VibmV0c1BhcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ1ByaXZhdGVTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLnByaXZhdGVTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMucHJpdmF0ZVN1Ym5ldElkcyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnByaXZhdGVTdWJuZXRJZHMgPSBwcm9wcy5wcml2YXRlU3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmludHJhU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMuaW50cmFTdWJuZXRzUGFyYW1ldGVyID0gbmV3IFN0cmluZ0xpc3RQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnSW50cmFTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmludHJhU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLmludHJhU3VibmV0SWRzLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW50cmFTdWJuZXRJZHMgPSBwcm9wcy5pbnRyYVN1Ym5ldElkcztcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5yZWRzaGlmdFN1Ym5ldElkcykge1xuICAgICAgICB0aGlzLnJlZHNoaWZ0U3VibmV0c1BhcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ1JlZHNoaWZ0U3VibmV0cycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy5yZWRzaGlmdFN1Ym5ldHNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5yZWRzaGlmdFN1Ym5ldElkcyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlZHNoaWZ0U3VibmV0SWRzID0gcHJvcHMucmVkc2hpZnRTdWJuZXRJZHM7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuZGF0YWJhc2VTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5kYXRhYmFzZVN1Ym5ldHNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdEYXRhYmFzZVN1Ym5ldHMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMuZGF0YWJhc2VTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMuZGF0YWJhc2VTdWJuZXRJZHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kYXRhYmFzZVN1Ym5ldElkcyA9IHByb3BzLmRhdGFiYXNlU3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLmVsYXN0aWNhY2hlU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMuZWxhc3RpY2FjaGVTdWJuZXRzUGFyYW1ldGVyID0gbmV3IFN0cmluZ0xpc3RQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnRWxhc3RpY2FjaGVTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLmVsYXN0aWNhY2hlU3VibmV0SWRzLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZWxhc3RpY2FjaGVTdWJuZXRJZHMgPSBwcm9wcy5lbGFzdGljYWNoZVN1Ym5ldElkcztcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5vdXRwb3N0U3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMub3V0cG9zdFN1Ym5ldHNQcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ091dHBvc3RTdWJuZXRzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLm91dHBvc3RTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMub3V0cG9zdFN1Ym5ldElkcyxcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgICAgICB0aGlzLm91dHBvc3RTdWJuZXRJZHMgPSBwcm9wcy5vdXRwb3N0U3VibmV0SWRzO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnB1YmxpY0FsYkFybnMpIHtcbiAgICAgICAgdGhpcy5wdWJsaWNBbGJzUGFyYW1ldGVyID0gbmV3IFN0cmluZ0xpc3RQYXJhbWV0ZXIodGhpcywgJ1B1YmxpY0FsYnMnLCB7XG4gICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy5wdWJsaWNBbGJzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLnB1YmxpY0FsYkFybnMsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnB1YmxpY0FsYkFybnMgPSBwcm9wcy5wdWJsaWNBbGJBcm5zO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzLnByaXZhdGVBbGJBcm5zKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYnNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQcml2YXRlQWxicycsXG4gICAgICAgICAge1xuICAgICAgICAgICAgcGFyYW1ldGVyTmFtZTogdGhpcy5wcml2YXRlQWxic1BhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdMaXN0VmFsdWU6IHByb3BzLnByaXZhdGVBbGJBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYkFybnMgPSBwcm9wcy5wcml2YXRlQWxiQXJucztcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5wdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMpIHtcbiAgICAgICAgdGhpcy5wdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQdWJsaWNBbGJDZXJ0aWZpY2F0ZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHVibGljQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMucHVibGljQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMucHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLnByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQcml2YXRlQWxiQ2VydGlmaWNhdGVzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLnByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5wcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYWx0UHVibGljQWxiQXJucykge1xuICAgICAgICB0aGlzLmFsdFB1YmxpY0FsYnNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdBbHRQdWJsaWNBbGJzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmFsdFB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5hbHRQdWJsaWNBbGJBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYWx0UHJpdmF0ZUFsYkFybnMpIHtcbiAgICAgICAgdGhpcy5hbHRQcml2YXRlQWxic1BhcmFtZXRlciA9IG5ldyBTdHJpbmdMaXN0UGFyYW1ldGVyKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgJ0FsdFByaXZhdGVBbGJzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmFsdFByaXZhdGVBbGJzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMuYWx0UHJpdmF0ZUFsYkFybnMsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMpIHtcbiAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdBbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXMnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMuYWx0UHVibGljQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ0xpc3RWYWx1ZTogcHJvcHMuYWx0UHVibGljQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMuYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nTGlzdFBhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdBbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVzJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nTGlzdFZhbHVlOiBwcm9wcy5hbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMucHVibGljQ2VydGlmaWNhdGVBcm4pIHtcbiAgICAgICAgdGhpcy5wdWJsaWNDZXJ0aWZpY2F0ZVBhcmFtZXRlciA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnUHVibGljQ2VydGlmaWNhdGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHVibGljQ2VydGlmaWNhdGVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgICAgc3RyaW5nVmFsdWU6IHByb3BzLnB1YmxpY0NlcnRpZmljYXRlQXJuLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMucHJpdmF0ZUNlcnRpZmljYXRlQXJuKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyID0gbmV3IFN0cmluZ1BhcmFtZXRlcihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgICdQcml2YXRlQ2VydGlmaWNhdGUnLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgICAgIHN0cmluZ1ZhbHVlOiBwcm9wcy5wcml2YXRlQ2VydGlmaWNhdGVBcm4sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5jbG91ZEZvbnRDZXJ0aWZpY2F0ZUFybikge1xuICAgICAgICB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZVBhcmFtZXRlciA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAnQ2xvdWRGcm9udENlcnRpZmljYXRlJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJOYW1lOiB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICAgICBzdHJpbmdWYWx1ZTogcHJvcHMuY2xvdWRGb250Q2VydGlmaWNhdGVBcm4sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5wdWJsaWNab25lTmFtZSkge1xuICAgICAgICB0aGlzLnB1YmxpY1pvbmVQYXJhbWV0ZXIgPSBuZXcgU3RyaW5nUGFyYW1ldGVyKHRoaXMsICdQdWJsaWNab25lJywge1xuICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHVibGljWm9uZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICAgc3RyaW5nVmFsdWU6IHByb3BzLnB1YmxpY1pvbmVOYW1lLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy5wcml2YXRlWm9uZU5hbWUpIHtcbiAgICAgICAgdGhpcy5wcml2YXRlWm9uZVBhcmFtZXRlciA9IG5ldyBTdHJpbmdQYXJhbWV0ZXIodGhpcywgJ1ByaXZhdGVab25lJywge1xuICAgICAgICAgIHBhcmFtZXRlck5hbWU6IHRoaXMucHJpdmF0ZVpvbmVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICAgIHN0cmluZ1ZhbHVlOiBwcm9wcy5wcml2YXRlWm9uZU5hbWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwVnBjID8/IHRydWUpIHtcbiAgICAgIGlmICghdGhpcy52cGNJZCkge1xuICAgICAgICB0aGlzLnZwY0lkID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMudnBjUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cEF6cyA/PyB0cnVlKSB7XG4gICAgICBpZiAoIXRoaXMuYXpzKSB7XG4gICAgICAgIHRoaXMuYXpzID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMuYXpzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHVibGljU3VibmV0cyA/PyB0cnVlKSB7XG4gICAgICBpZiAoIXRoaXMucHVibGljU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMucHVibGljU3VibmV0SWRzID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMucHVibGljU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFByaXZhdGVTdWJuZXRzID8/IHRydWUpIHtcbiAgICAgIGlmICghdGhpcy5wcml2YXRlU3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZVN1Ym5ldElkcyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnByaXZhdGVTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwSW50cmFTdWJuZXRzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuaW50cmFTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5pbnRyYVN1Ym5ldElkcyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLmludHJhU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFJlZHNoaWZ0U3VibmV0cyA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLnJlZHNoaWZ0U3VibmV0SWRzKSB7XG4gICAgICAgIHRoaXMucmVkc2hpZnRTdWJuZXRJZHMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5yZWRzaGlmdFN1Ym5ldHNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBEYXRhYmFzZVN1Ym5ldHMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5kYXRhYmFzZVN1Ym5ldElkcykge1xuICAgICAgICB0aGlzLmRhdGFiYXNlU3VibmV0SWRzID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMuZGF0YWJhc2VTdWJuZXRzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwRWxhc3RpY2FjaGVTdWJuZXRzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuZWxhc3RpY2FjaGVTdWJuZXRJZHMpIHtcbiAgICAgICAgdGhpcy5lbGFzdGljYWNoZVN1Ym5ldElkcyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLmVsYXN0aWNhY2hlU3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cE91dHBvc3RTdWJuZXRzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMub3V0cG9zdFN1Ym5ldElkcykge1xuICAgICAgICB0aGlzLm91dHBvc3RTdWJuZXRJZHMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5vdXRwb3N0U3VibmV0c1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFB1YmxpY0FsYnMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wdWJsaWNBbGJBcm5zKSB7XG4gICAgICAgIHRoaXMucHVibGljQWxiQXJucyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnB1YmxpY0FsYnNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBQcml2YXRlQWxicyA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLnByaXZhdGVBbGJBcm5zKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYkFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5wcml2YXRlQWxic1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFB1YmxpY0FsYkNlcnRpZmljYXRlcyA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLnB1YmxpY0FsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLnB1YmxpY0FsYkNlcnRpZmljYXRlQXJucyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnB1YmxpY0FsYkNlcnRpZmljYXRlc1BhcmFtZXRlclBhdGgsXG4gICAgICAgICkuc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cFByaXZhdGVBbGJDZXJ0aWZpY2F0ZXMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wcml2YXRlQWxiQ2VydGlmaWNhdGVBcm5zKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucyA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnByaXZhdGVBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBBbHRQdWJsaWNBbGJzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuYWx0UHVibGljQWxiQXJucykge1xuICAgICAgICB0aGlzLmFsdFB1YmxpY0FsYkFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwQWx0UHJpdmF0ZUFsYnMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5hbHRQcml2YXRlQWxiQXJucykge1xuICAgICAgICB0aGlzLmFsdFByaXZhdGVBbGJBcm5zID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMuYWx0UHJpdmF0ZUFsYnNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBBbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXMgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMpIHtcbiAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZUFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5hbHRQdWJsaWNBbGJDZXJ0aWZpY2F0ZXNQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBBbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVzID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMuYWx0UHJpdmF0ZUFsYkNlcnRpZmljYXRlQXJucykge1xuICAgICAgICB0aGlzLmFsdFByaXZhdGVBbGJDZXJ0aWZpY2F0ZUFybnMgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5hbHRQcml2YXRlQWxiQ2VydGlmaWNhdGVzUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHVibGljQ2VydGlmaWNhdGUgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wdWJsaWNDZXJ0aWZpY2F0ZUFybikge1xuICAgICAgICB0aGlzLnB1YmxpY0NlcnRpZmljYXRlQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMucHVibGljQ2VydGlmaWNhdGVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHJpdmF0ZUNlcnRpZmljYXRlID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMucHJpdmF0ZUNlcnRpZmljYXRlQXJuKSB7XG4gICAgICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRnJvbUxvb2t1cChcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIHRoaXMucHJpdmF0ZUNlcnRpZmljYXRlUGFyYW1ldGVyUGF0aCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzLmxvb2t1cENsb3VkRnJvbnRDZXJ0aWZpY2F0ZSA/PyBmYWxzZSkge1xuICAgICAgaWYgKCF0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZUFybikge1xuICAgICAgICB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZUFybiA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLmNsb3VkRnJvbnRDZXJ0aWZpY2F0ZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcy5sb29rdXBQdWJsaWNab25lID8/IGZhbHNlKSB7XG4gICAgICBpZiAoIXRoaXMucHVibGljWm9uZU5hbWUpIHtcbiAgICAgICAgdGhpcy5wdWJsaWNab25lTmFtZSA9IFN0cmluZ1BhcmFtZXRlci52YWx1ZUZyb21Mb29rdXAoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICB0aGlzLnB1YmxpY1pvbmVQYXJhbWV0ZXJQYXRoLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcHMubG9va3VwUHJpdmF0ZVpvbmUgPz8gZmFsc2UpIHtcbiAgICAgIGlmICghdGhpcy5wcml2YXRlWm9uZU5hbWUpIHtcbiAgICAgICAgdGhpcy5wcml2YXRlWm9uZU5hbWUgPSBTdHJpbmdQYXJhbWV0ZXIudmFsdWVGcm9tTG9va3VwKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5wcml2YXRlWm9uZVBhcmFtZXRlclBhdGgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|