@dollhousemcp/mcp-server 2.0.41 → 2.0.42
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.0.42] - 2026-09-04
|
|
4
|
+
|
|
5
|
+
- Harden macOS verification dialogs by keeping dynamic display values out of AppleScript source and passing them as direct process arguments.
|
|
6
|
+
- Require `@dollhousemcp/safety` 1.0.2 or newer so MCP server installations cannot resolve to the vulnerable safety package release.
|
|
7
|
+
|
|
3
8
|
## [2.0.41] - 2026-08-26
|
|
4
9
|
|
|
5
10
|
- **Important update — strongly recommended for all users**, especially installations that use the Permissions dashboard, active agents or ensembles, Gatekeeper policy enforcement, or persisted activation restore.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Auto-generated file - DO NOT EDIT
|
|
3
3
|
* Generated at build time by scripts/generate-version.js
|
|
4
4
|
*/
|
|
5
|
-
export declare const PACKAGE_VERSION = "2.0.
|
|
6
|
-
export declare const BUILD_TIMESTAMP = "2026-
|
|
5
|
+
export declare const PACKAGE_VERSION = "2.0.42";
|
|
6
|
+
export declare const BUILD_TIMESTAMP = "2026-09-05T00:46:41.206Z";
|
|
7
7
|
export declare const BUILD_TYPE: 'npm' | 'git';
|
|
8
8
|
export declare const PACKAGE_NAME = "@dollhousemcp/mcp-server";
|
|
9
9
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Auto-generated file - DO NOT EDIT
|
|
3
3
|
* Generated at build time by scripts/generate-version.js
|
|
4
4
|
*/
|
|
5
|
-
export const PACKAGE_VERSION = '2.0.
|
|
6
|
-
export const BUILD_TIMESTAMP = '2026-
|
|
5
|
+
export const PACKAGE_VERSION = '2.0.42';
|
|
6
|
+
export const BUILD_TIMESTAMP = '2026-09-05T00:46:41.206Z';
|
|
7
7
|
export const BUILD_TYPE = 'npm';
|
|
8
8
|
export const PACKAGE_NAME = '@dollhousemcp/mcp-server';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5lcmF0ZWQvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRywwQkFBMEIsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQWtCLEtBQUssQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF1dG8tZ2VuZXJhdGVkIGZpbGUgLSBETyBOT1QgRURJVFxuICogR2VuZXJhdGVkIGF0IGJ1aWxkIHRpbWUgYnkgc2NyaXB0cy9nZW5lcmF0ZS12ZXJzaW9uLmpzXG4gKi9cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9ICcyLjAuNDInO1xuZXhwb3J0IGNvbnN0IEJVSUxEX1RJTUVTVEFNUCA9ICcyMDI2LTA5LTA1VDAwOjQ2OjQxLjIwNlonO1xuZXhwb3J0IGNvbnN0IEJVSUxEX1RZUEU6ICducG0nIHwgJ2dpdCcgPSAnbnBtJztcbmV4cG9ydCBjb25zdCBQQUNLQUdFX05BTUUgPSAnQGRvbGxob3VzZW1jcC9tY3Atc2VydmVyJztcbiJdfQ==
|
|
@@ -980,22 +980,22 @@ export const suppressions = [
|
|
|
980
980
|
{
|
|
981
981
|
rule: 'OWASP-A03-002',
|
|
982
982
|
file: 'packages/safety/src/DisplayService.ts',
|
|
983
|
-
reason: 'Intentional
|
|
983
|
+
reason: 'Intentional native dialog execution. macOS uses fixed /usr/bin/osascript with constant source and separate argv values; Linux shell arguments are POSIX-escaped; PowerShell values are escaped before Base64 encoding'
|
|
984
984
|
},
|
|
985
985
|
{
|
|
986
986
|
rule: 'OWASP-A03-002',
|
|
987
987
|
file: '**/packages/safety/src/DisplayService.ts',
|
|
988
|
-
reason: 'Intentional
|
|
988
|
+
reason: 'Intentional native dialog execution. macOS uses fixed /usr/bin/osascript with constant source and separate argv values; Linux shell arguments are POSIX-escaped; PowerShell values are escaped before Base64 encoding'
|
|
989
989
|
},
|
|
990
990
|
{
|
|
991
991
|
rule: 'DMCP-SEC-004',
|
|
992
992
|
file: 'packages/safety/src/DisplayService.ts',
|
|
993
|
-
reason: 'DisplayService
|
|
993
|
+
reason: 'DisplayService treats values as opaque UI text. macOS values are passed as process arguments rather than source; other platforms encode or escape values at their interpreter boundary'
|
|
994
994
|
},
|
|
995
995
|
{
|
|
996
996
|
rule: 'DMCP-SEC-004',
|
|
997
997
|
file: '**/packages/safety/src/DisplayService.ts',
|
|
998
|
-
reason: 'DisplayService
|
|
998
|
+
reason: 'DisplayService treats values as opaque UI text. macOS values are passed as process arguments rather than source; other platforms encode or escape values at their interpreter boundary'
|
|
999
999
|
},
|
|
1000
1000
|
{
|
|
1001
1001
|
rule: 'DMCP-SEC-004',
|
|
@@ -1338,4 +1338,4 @@ const validationErrors = validateSuppressions();
|
|
|
1338
1338
|
if (validationErrors.length > 0) {
|
|
1339
1339
|
logger.warn('Suppression configuration warnings:', validationErrors);
|
|
1340
1340
|
}
|
|
1341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcHJlc3Npb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3VyaXR5L2F1ZGl0L2NvbmZpZy9zdXBwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbEQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQjtJQUNaLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUNuQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFL0MsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUMxQyxPQUFPLEdBQUcsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxHQUFHLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBa0I7SUFDekMsMkNBQTJDO0lBQzNDLGdDQUFnQztJQUNoQywyQ0FBMkM7SUFDM0M7UUFDRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLE1BQU0sRUFBRSwyRkFBMkY7S0FDcEc7SUFDRDtRQUNFLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSx3Q0FBd0M7UUFDOUMsTUFBTSxFQUFFLDZQQUE2UDtLQUN0UTtJQUNEO1FBQ0UsSUFBSSxFQUFFLFlBQVk7UUFDbEIsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxNQUFNLEVBQUUsa0lBQWtJO0tBQzNJO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE1BQU0sRUFBRSw2S0FBNks7S0FDdEw7SUFFRCwyQ0FBMkM7SUFDM0Msd0NBQXdDO0lBQ3hDLDJDQUEyQztJQUMzQztRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx3Q0FBd0M7UUFDOUMsTUFBTSxFQUFFLHlNQUF5TTtLQUNsTjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHVEQUF1RDtRQUM3RCxNQUFNLEVBQUUscUxBQXFMO0tBQzlMO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLE1BQU0sRUFBRSxnTUFBZ007S0FDek07SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsTUFBTSxFQUFFLHVNQUF1TTtLQUNoTjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixNQUFNLEVBQUUsK1VBQStVO0tBQ3hWO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE1BQU0sRUFBRSw0V0FBNFc7S0FDclg7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsTUFBTSxFQUFFLDBRQUEwUTtLQUNuUjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLCtCQUErQjtRQUNyQyxNQUFNLEVBQUUsb1FBQW9RO0tBQzdRO0lBRUQsMkNBQTJDO0lBQzNDLHlCQUF5QjtJQUN6QiwyQ0FBMkM7SUFDM0M7UUFDRSxJQUFJLEVBQUUsR0FBRztRQUNULElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsTUFBTSxFQUFFLGtFQUFrRTtLQUMzRTtJQUNEO1FBQ0UsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsa0VBQWtFO0tBQzNFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsR0FBRztRQUNULElBQUksRUFBRSxjQUFjO1FBQ3BCLE1BQU0sRUFBRSxrRUFBa0U7S0FDM0U7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxZQUFZO1FBQ2xCLE1BQU0sRUFBRSxrRUFBa0U7S0FDM0U7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxZQUFZO1FBQ2xCLE1BQU0sRUFBRSw2REFBNkQ7S0FDdEU7SUFDRDtRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxnQ0FBZ0M7UUFDdEMsTUFBTSxFQUFFLDJFQUEyRTtLQUNwRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixNQUFNLEVBQUUsc0VBQXNFO0tBQy9FO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE1BQU0sRUFBRSx5RkFBeUY7S0FDbEc7SUFDRDtRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxrREFBa0Q7UUFDeEQsTUFBTSxFQUFFLDJNQUEyTTtLQUNwTjtJQUNEO1FBQ0UsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLE1BQU0sRUFBRSw4RUFBOEU7S0FDdkY7SUFDRDtRQUNFLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsTUFBTSxFQUFFLGdFQUFnRTtLQUN6RTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixNQUFNLEVBQUUsb0VBQW9FO0tBQzdFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE1BQU0sRUFBRSxpRUFBaUU7S0FDMUU7SUFFRCwyQ0FBMkM7SUFDM0MsK0JBQStCO0lBQy9CLDJDQUEyQztJQUMzQztRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSwrQkFBK0I7UUFDckMsTUFBTSxFQUFFLDBGQUEwRjtLQUNuRztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxNQUFNLEVBQUUsNkVBQTZFO0tBQ3RGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUscUNBQXFDO1FBQzNDLE1BQU0sRUFBRSx1SEFBdUg7S0FDaEk7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSw4Q0FBOEM7UUFDcEQsTUFBTSxFQUFFLDRIQUE0SDtLQUNySTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDZCQUE2QjtRQUNuQyxNQUFNLEVBQUUsdVNBQXVTO0tBQ2hUO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsd0NBQXdDO1FBQzlDLE1BQU0sRUFBRSwyUEFBMlA7S0FDcFE7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxpREFBaUQ7UUFDdkQsTUFBTSxFQUFFLHVXQUF1VztLQUNoWDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGlEQUFpRDtRQUN2RCxNQUFNLEVBQUUsaVZBQWlWO0tBQzFWO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsaURBQWlEO1FBQ3ZELE1BQU0sRUFBRSx5VUFBeVU7S0FDbFY7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxxREFBcUQ7UUFDM0QsTUFBTSxFQUFFLHFUQUFxVDtLQUM5VDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHNDQUFzQztRQUM1QyxNQUFNLEVBQUUsOFBBQThQO0tBQ3ZRO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsdUNBQXVDO1FBQzdDLE1BQU0sRUFBRSw0U0FBNFM7S0FDclQ7SUFFRCwyQ0FBMkM7SUFDM0MsOENBQThDO0lBQzlDLDJDQUEyQztJQUMzQztRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxzQ0FBc0M7UUFDNUMsTUFBTSxFQUFFLDRQQUE0UDtLQUNyUTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxNQUFNLEVBQUUsME5BQTBOO0tBQ25PO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsNkNBQTZDO1FBQ25ELE1BQU0sRUFBRSw0S0FBNEs7S0FDckw7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxvREFBb0Q7UUFDMUQsTUFBTSxFQUFFLDJPQUEyTztLQUNwUDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLG9EQUFvRDtRQUMxRCxNQUFNLEVBQUUsb05BQW9OO0tBQzdOO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsbURBQW1EO1FBQ3pELE1BQU0sRUFBRSxvTkFBb047S0FDN047SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxxREFBcUQ7UUFDM0QsTUFBTSxFQUFFLG9OQUFvTjtLQUM3TjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHFEQUFxRDtRQUMzRCxNQUFNLEVBQUUsb05BQW9OO0tBQzdOO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsa0RBQWtEO1FBQ3hELE1BQU0sRUFBRSxzUUFBc1E7S0FDL1E7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxrREFBa0Q7UUFDeEQsTUFBTSxFQUFFLDRRQUE0UTtLQUNyUjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGlEQUFpRDtRQUN2RCxNQUFNLEVBQUUsaVRBQWlUO0tBQzFUO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsaURBQWlEO1FBQ3ZELE1BQU0sRUFBRSxxU0FBcVM7S0FDOVM7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxvQ0FBb0M7UUFDMUMsTUFBTSxFQUFFLGlSQUFpUjtLQUMxUjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGlEQUFpRDtRQUN2RCxNQUFNLEVBQUUsb1FBQW9RO0tBQzdRO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsaURBQWlEO1FBQ3ZELE1BQU0sRUFBRSxvUUFBb1E7S0FDN1E7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxpREFBaUQ7UUFDdkQsTUFBTSxFQUFFLGtQQUFrUDtLQUMzUDtJQUVELDJDQUEyQztJQUMzQyxxQ0FBcUM7SUFDckMsMkNBQTJDO0lBQzNDO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixNQUFNLEVBQUUsb1NBQW9TO0tBQzdTO0lBRUQsMkNBQTJDO0lBQzNDLGlDQUFpQztJQUNqQywyQ0FBMkM7SUFDM0M7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsMkNBQTJDO1FBQ2pELE1BQU0sRUFBRSxvRkFBb0Y7S0FDN0Y7SUFFRCwyQ0FBMkM7SUFDM0Msa0NBQWtDO0lBQ2xDLDJDQUEyQztJQUMzQztRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsTUFBTSxFQUFFLGdGQUFnRjtLQUN6RjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLCtCQUErQjtRQUNyQyxNQUFNLEVBQUUsME1BQTBNO0tBQ25OO0lBRUQsMkNBQTJDO0lBQzNDLHdDQUF3QztJQUN4QywyQ0FBMkM7SUFDM0M7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE1BQU0sRUFBRSxpREFBaUQ7S0FDMUQ7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsTUFBTSxFQUFFLGdIQUFnSDtLQUN6SDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixNQUFNLEVBQUUsdUZBQXVGO0tBQ2hHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUseUJBQXlCO1FBQy9CLE1BQU0sRUFBRSw2RUFBNkU7S0FDdEY7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsTUFBTSxFQUFFLHlDQUF5QztLQUNsRDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixNQUFNLEVBQUUsd0RBQXdEO0tBQ2pFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLE1BQU0sRUFBRSxxREFBcUQ7S0FDOUQ7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxvQ0FBb0M7UUFDMUMsTUFBTSxFQUFFLHlGQUF5RjtLQUNsRztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxNQUFNLEVBQUUseUZBQXlGO0tBQ2xHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLE1BQU0sRUFBRSwrRkFBK0Y7S0FDeEc7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxnQ0FBZ0M7UUFDdEMsTUFBTSxFQUFFLHVGQUF1RjtLQUNoRztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGlDQUFpQztRQUN2QyxNQUFNLEVBQUUsc1FBQXNRO0tBQy9RO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsZ0NBQWdDO1FBQ3RDLE1BQU0sRUFBRSxzR0FBc0c7S0FDL0c7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxtQ0FBbUM7UUFDekMsTUFBTSxFQUFFLHNHQUFzRztLQUMvRztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLCtCQUErQjtRQUNyQyxNQUFNLEVBQUUsMkZBQTJGO0tBQ3BHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE1BQU0sRUFBRSxxR0FBcUc7S0FDOUc7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsTUFBTSxFQUFFLGdHQUFnRztLQUN6RztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxNQUFNLEVBQUUsZ0dBQWdHO0tBQ3pHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLE1BQU0sRUFBRSx1RUFBdUU7S0FDaEY7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsTUFBTSxFQUFFLCtDQUErQztLQUN4RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixNQUFNLEVBQUUsaUVBQWlFO0tBQzFFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsdUVBQXVFO0tBQ2hGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLE1BQU0sRUFBRSxxVEFBcVQ7S0FDOVQ7SUFFRCwyQ0FBMkM7SUFDM0MsNENBQTRDO0lBQzVDLDJDQUEyQztJQUMzQyxnRUFBZ0U7SUFDaEUsdUVBQXVFO0lBQ3ZFLGlFQUFpRTtJQUNqRSxrREFBa0Q7SUFDbEQsa0VBQWtFO0lBQ2xFLDJDQUEyQztJQUMzQztRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsTUFBTSxFQUFFLHdMQUF3TDtLQUNqTTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixNQUFNLEVBQUUsNE5BQTROO0tBQ3JPO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLE1BQU0sRUFBRSw2TEFBNkw7S0FDdE07SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxzQkFBc0I7UUFDNUIsTUFBTSxFQUFFLGlOQUFpTjtLQUMxTjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixNQUFNLEVBQUUsNEtBQTRLO0tBQ3JMO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE1BQU0sRUFBRSxpRUFBaUU7S0FDMUU7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsTUFBTSxFQUFFLGlFQUFpRTtLQUMxRTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixNQUFNLEVBQUUsNkRBQTZEO0tBQ3RFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE1BQU0sRUFBRSw2REFBNkQ7S0FDdEU7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsTUFBTSxFQUFFLDREQUE0RDtLQUNyRTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixNQUFNLEVBQUUsc0RBQXNEO0tBQy9EO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE1BQU0sRUFBRSxrREFBa0Q7S0FDM0Q7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx1QkFBdUI7UUFDN0IsTUFBTSxFQUFFLHdEQUF3RDtLQUNqRTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsTUFBTSxFQUFFLHFEQUFxRDtLQUM5RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDhCQUE4QjtRQUNwQyxNQUFNLEVBQUUsdUdBQXVHO0tBQ2hIO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLE1BQU0sRUFBRSxxRUFBcUU7S0FDOUU7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsTUFBTSxFQUFFLGlMQUFpTDtLQUMxTDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLCtCQUErQjtRQUNyQyxNQUFNLEVBQUUsbUpBQW1KO0tBQzVKO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsK0JBQStCO1FBQ3JDLE1BQU0sRUFBRSxtSkFBbUo7S0FDNUo7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsTUFBTSxFQUFFLG9GQUFvRjtLQUM3RjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxNQUFNLEVBQUUsb0ZBQW9GO0tBQzdGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUscUdBQXFHO0tBQzlHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUsZ0dBQWdHO0tBQ3pHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUsbUZBQW1GO0tBQzVGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsOEJBQThCO1FBQ3BDLE1BQU0sRUFBRSx1SkFBdUo7S0FDaEs7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsTUFBTSxFQUFFLDRIQUE0SDtLQUNySTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixNQUFNLEVBQUUsMEhBQTBIO0tBQ25JO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE1BQU0sRUFBRSxnSEFBZ0g7S0FDekg7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsTUFBTSxFQUFFLDhGQUE4RjtLQUN2RztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxNQUFNLEVBQUUsOEZBQThGO0tBQ3ZHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE1BQU0sRUFBRSwyRkFBMkY7S0FDcEc7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSwrQkFBK0I7UUFDckMsTUFBTSxFQUFFLDJGQUEyRjtLQUNwRztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixNQUFNLEVBQUUsNEVBQTRFO0tBQ3JGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsNEJBQTRCO1FBQ2xDLE1BQU0sRUFBRSw0RUFBNEU7S0FDckY7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsTUFBTSxFQUFFLG1GQUFtRjtLQUM1RjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxNQUFNLEVBQUUsbUZBQW1GO0tBQzVGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUseUJBQXlCO1FBQy9CLE1BQU0sRUFBRSwwRUFBMEU7S0FDbkY7SUFDRDtRQUNFLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSw0QkFBNEI7UUFDbEMsTUFBTSxFQUFFLDBFQUEwRTtLQUNuRjtJQUVELDJDQUEyQztJQUMzQyxnQ0FBZ0M7SUFDaEMsMkNBQTJDO0lBQzNDO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGdCQUFnQjtRQUN0QixNQUFNLEVBQUUsMERBQTBEO0tBQ25FO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUseUJBQXlCO1FBQy9CLE1BQU0sRUFBRSxzRkFBc0Y7S0FDL0Y7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsTUFBTSxFQUFFLG1EQUFtRDtLQUM1RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixNQUFNLEVBQUUsd0RBQXdEO0tBQ2pFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsb0NBQW9DO1FBQzFDLE1BQU0sRUFBRSx1RkFBdUY7S0FDaEc7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx1Q0FBdUM7UUFDN0MsTUFBTSxFQUFFLHVGQUF1RjtLQUNoRztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLG1DQUFtQztRQUN6QyxNQUFNLEVBQUUsZ0ZBQWdGO0tBQ3pGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsZ0NBQWdDO1FBQ3RDLE1BQU0sRUFBRSwwRkFBMEY7S0FDbkc7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsTUFBTSxFQUFFLDJEQUEyRDtLQUNwRTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLFdBQVc7UUFDakIsTUFBTSxFQUFFLDJDQUEyQztLQUNwRDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixNQUFNLEVBQUUscUVBQXFFO0tBQzlFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE1BQU0sRUFBRSxtRUFBbUU7S0FDNUU7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsTUFBTSxFQUFFLG1FQUFtRTtLQUM1RTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixNQUFNLEVBQUUsMEVBQTBFO0tBQ25GO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUscUJBQXFCO1FBQzNCLE1BQU0sRUFBRSwwRUFBMEU7S0FDbkY7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsTUFBTSxFQUFFLGdFQUFnRTtLQUN6RTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGNBQWM7UUFDcEIsTUFBTSxFQUFFLHVFQUF1RTtLQUNoRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDRCQUE0QjtRQUNsQyxNQUFNLEVBQUUsa0tBQWtLO0tBQzNLO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE1BQU0sRUFBRSwrREFBK0Q7S0FDeEU7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsTUFBTSxFQUFFLDBFQUEwRTtLQUNuRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixNQUFNLEVBQUUsa0RBQWtEO0tBQzNEO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsMERBQTBEO0tBQ25FO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLE1BQU0sRUFBRSw2S0FBNks7S0FDdEw7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsTUFBTSxFQUFFLDZLQUE2SztLQUN0TDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxNQUFNLEVBQUUscUlBQXFJO0tBQzlJO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsK0JBQStCO1FBQ3JDLE1BQU0sRUFBRSxxSUFBcUk7S0FDOUk7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSwrQkFBK0I7UUFDckMsTUFBTSxFQUFFLHlIQUF5SDtLQUNsSTtJQUVELDJDQUEyQztJQUMzQyxzQ0FBc0M7SUFDdEMsMkNBQTJDO0lBQzNDLDhEQUE4RDtJQUM5RCwrRUFBK0U7SUFDL0UsdUZBQXVGO0lBQ3ZGLHVFQUF1RTtJQUN2RTtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSw2QkFBNkI7UUFDbkMsTUFBTSxFQUFFLCtHQUErRztLQUN4SDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDZCQUE2QjtRQUNuQyxNQUFNLEVBQUUsaUZBQWlGO0tBQzFGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUseUNBQXlDO1FBQy9DLE1BQU0sRUFBRSxxS0FBcUs7S0FDOUs7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxxQ0FBcUM7UUFDM0MsTUFBTSxFQUFFLDROQUE0TjtLQUNyTztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDJDQUEyQztRQUNqRCxNQUFNLEVBQUUsNkpBQTZKO0tBQ3RLO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsbUNBQW1DO1FBQ3pDLE1BQU0sRUFBRSx1S0FBdUs7S0FDaEw7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx5QkFBeUI7UUFDL0IsTUFBTSxFQUFFLDRIQUE0SDtLQUNySTtJQUVELDJDQUEyQztJQUMzQyx3QkFBd0I7SUFDeEIsMkNBQTJDO0lBQzNDO1FBQ0UsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLE1BQU0sRUFBRSwrRUFBK0U7S0FDeEY7SUFDRDtRQUNFLElBQUksRUFBRSxHQUFHO1FBQ1QsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixNQUFNLEVBQUUsK0VBQStFO0tBQ3hGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsR0FBRztRQUNULElBQUksRUFBRSxxQkFBcUI7UUFDM0IsTUFBTSxFQUFFLG9GQUFvRjtLQUM3RjtJQUVELDJDQUEyQztJQUMzQyxtQ0FBbUM7SUFDbkMsMkNBQTJDO0lBQzNDO1FBQ0UsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUsc0RBQXNEO0tBQy9EO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsR0FBRztRQUNULElBQUksRUFBRSxTQUFTO1FBQ2YsTUFBTSxFQUFFLDhCQUE4QjtLQUN2QztJQUNEO1FBQ0UsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUsdURBQXVEO0tBQ2hFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsR0FBRztRQUNULElBQUksRUFBRSxTQUFTO1FBQ2YsTUFBTSxFQUFFLGNBQWM7S0FDdkI7SUFDRDtRQUNFLElBQUksRUFBRSxHQUFHO1FBQ1QsSUFBSSxFQUFFLFlBQVk7UUFDbEIsTUFBTSxFQUFFLHdCQUF3QjtLQUNqQztJQUNEO1FBQ0UsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLE1BQU0sRUFBRSwwREFBMEQ7S0FDbkU7SUFDRDtRQUNFLElBQUksRUFBRSxHQUFHO1FBQ1QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLDZDQUE2QztLQUN0RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLEdBQUc7UUFDVCxJQUFJLEVBQUUsV0FBVztRQUNqQixNQUFNLEVBQUUsNkNBQTZDO0tBQ3REO0lBRUQsMkNBQTJDO0lBQzNDLG1EQUFtRDtJQUNuRCwyQ0FBMkM7SUFDM0M7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsa0NBQWtDO1FBQ3hDLE1BQU0sRUFBRSx3RUFBd0U7S0FDakY7SUFDRDtRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxxQ0FBcUM7UUFDM0MsTUFBTSxFQUFFLHdFQUF3RTtLQUNqRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLDBEQUEwRDtRQUNoRSxNQUFNLEVBQUUsc0VBQXNFO0tBQy9FO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsNkRBQTZEO1FBQ25FLE1BQU0sRUFBRSxzRUFBc0U7S0FDL0U7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsTUFBTSxFQUFFLHFFQUFxRTtLQUM5RTtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHFDQUFxQztRQUMzQyxNQUFNLEVBQUUscUVBQXFFO0tBQzlFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsbURBQW1EO1FBQ3pELE1BQU0sRUFBRSxzREFBc0Q7S0FDL0Q7SUFDRDtRQUNFLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxzREFBc0Q7UUFDNUQsTUFBTSxFQUFFLHNEQUFzRDtLQUMvRDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHFCQUFxQjtRQUMzQixNQUFNLEVBQUUseURBQXlEO0tBQ2xFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsd0JBQXdCO1FBQzlCLE1BQU0sRUFBRSx5REFBeUQ7S0FDbEU7SUFFRCwrQ0FBK0M7SUFDL0M7UUFDRSxJQUFJLEVBQUUsZUFBZTtRQUNyQixJQUFJLEVBQUUsbURBQW1EO1FBQ3pELE1BQU0sRUFBRSxrRkFBa0Y7S0FDM0Y7SUFDRDtRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxzREFBc0Q7UUFDNUQsTUFBTSxFQUFFLGtGQUFrRjtLQUMzRjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxNQUFNLEVBQUUsOEVBQThFO0tBQ3ZGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUscUNBQXFDO1FBQzNDLE1BQU0sRUFBRSw4RUFBOEU7S0FDdkY7SUFFRCwyQ0FBMkM7SUFDM0MsK0JBQStCO0lBQy9CLDJDQUEyQztJQUMzQztRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSx1Q0FBdUM7UUFDN0MsTUFBTSxFQUFFLG9KQUFvSjtLQUM3SjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLDBDQUEwQztRQUNoRCxNQUFNLEVBQUUsb0pBQW9KO0tBQzdKO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsdUNBQXVDO1FBQzdDLE1BQU0sRUFBRSxnSkFBZ0o7S0FDeko7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSwwQ0FBMEM7UUFDaEQsTUFBTSxFQUFFLGdKQUFnSjtLQUN6SjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDRDQUE0QztRQUNsRCxNQUFNLEVBQUUsc0pBQXNKO0tBQy9KO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsK0NBQStDO1FBQ3JELE1BQU0sRUFBRSxzSkFBc0o7S0FDL0o7SUFFRCwyQ0FBMkM7SUFDM0MsNENBQTRDO0lBQzVDLDJDQUEyQztJQUMzQztRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsTUFBTSxFQUFFLHdPQUF3TztLQUNqUDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLHFDQUFxQztRQUMzQyxNQUFNLEVBQUUsd09BQXdPO0tBQ2pQO0lBRUQsMkNBQTJDO0lBQzNDLG1DQUFtQztJQUNuQywyQ0FBMkM7SUFDM0MseUVBQXlFO0lBQ3pFLHVFQUF1RTtJQUN2RSx3RUFBd0U7SUFDeEUsa0VBQWtFO0lBQ2xFLHVFQUF1RTtJQUN2RSxpRUFBaUU7SUFDakUsNkJBQTZCO0lBQzdCO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixNQUFNLEVBQUUsMkZBQTJGO0tBQ3BHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsb0NBQW9DO1FBQzFDLE1BQU0sRUFBRSw0SkFBNEo7S0FDcks7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxrQ0FBa0M7UUFDeEMsTUFBTSxFQUFFLDJOQUEyTjtLQUNwTztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLDZCQUE2QjtRQUNuQyxNQUFNLEVBQUUsa0tBQWtLO0tBQzNLO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLE1BQU0sRUFBRSwyTkFBMk47S0FDcE87SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxnQ0FBZ0M7UUFDdEMsTUFBTSxFQUFFLHdMQUF3TDtLQUNqTTtJQUVELDJDQUEyQztJQUMzQyxvREFBb0Q7SUFDcEQsMkNBQTJDO0lBQzNDO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsSUFBSSxFQUFFLHNDQUFzQztRQUM1QyxNQUFNLEVBQUUsZ1ZBQWdWO0tBQ3pWO0lBRUQsMkNBQTJDO0lBQzNDLDBEQUEwRDtJQUMxRCwyQ0FBMkM7SUFDM0M7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLE1BQU0sRUFBRSwyUEFBMlA7S0FDcFE7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSx1QkFBdUI7UUFDN0IsTUFBTSxFQUFFLDZLQUE2SztLQUN0TDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLCtCQUErQjtRQUNyQyxNQUFNLEVBQUUsMGRBQTBkO0tBQ25lO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLE1BQU0sRUFBRSx5SEFBeUg7S0FDbEk7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsTUFBTSxFQUFFLG1IQUFtSDtLQUM1SDtJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxNQUFNLEVBQUUsdUpBQXVKO0tBQ2hLO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsY0FBYztRQUNwQixJQUFJLEVBQUUsb0NBQW9DO1FBQzFDLE1BQU0sRUFBRSxpUEFBaVA7S0FDMVA7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0lBRXZDLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2pFLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLFdBQVcsQ0FBQyxJQUFJLDBCQUEwQixDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxNQUFNLFdBQVcsR0FBRyw0REFBNEQsQ0FBQztRQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsbUNBQW1DO1FBQ25DLE1BQU0sR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzdELElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEIseUJBQXlCO1FBQ3pCLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLFdBQVcsQ0FBQyxJQUFJLDZCQUE2QixDQUFDLENBQUM7UUFDeEYsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixvQkFBb0I7SUFDcEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxJQUFJLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUUxQixpRkFBaUY7SUFDakYsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkQsTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFFLHVCQUF1QjtRQUM3QyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQscURBQXFEO0lBQ3JELHdFQUF3RTtJQUN4RSxJQUFJLE9BQU8sR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXJFLHdDQUF3QztJQUN4Qyx5Q0FBeUM7SUFDekMsT0FBTyxHQUFHLE9BQU87U0FDZCxVQUFVLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFLLCtCQUErQjtTQUNwRSxVQUFVLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFZLDhCQUE4QjtTQUNyRSxVQUFVLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLHVEQUF1RDtTQUMvRixVQUFVLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFPLHNCQUFzQjtTQUM3RCxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFRLGdEQUFnRDtTQUN2RixVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQWdCLHlCQUF5QjtJQUVuRSw2QkFBNkI7SUFDN0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUVyQyx3Q0FBd0M7SUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBRTdDLDJCQUEyQjtJQUMzQixLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUU1QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGFBQWEsQ0FBQyxRQUFnQjtJQUNyQywyREFBMkQ7SUFDM0QsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFaEQsMkJBQTJCO0lBQzNCLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVoRCxtQ0FBbUM7SUFDbkMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdEQsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLGVBQWUsQ0FBQyxZQUFvQjtJQUMzQyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFL0MsMkNBQTJDO0lBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ2pFLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVuRyw4REFBOEQ7SUFDOUQsSUFBSSxTQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFFekQsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM5QixvRUFBb0U7UUFDcEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXBELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2Ysd0RBQXdEO1lBQ3hELDZEQUE2RDtZQUM3RCxNQUFNLGFBQWEsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMseUJBQXlCO1lBQzFELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFekQsOENBQThDO1lBQzlDLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9ELGlFQUFpRTtnQkFDakUsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM1QixTQUFTLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUM7SUFDaEMsQ0FBQztJQUVELHlFQUF5RTtJQUN6RSxNQUFNLFlBQVksR0FBRztRQUNuQix3REFBd0Q7UUFDeEQscURBQXFEO1FBQ3JELHNEQUFzRDtRQUN0RCxrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQixpQkFBaUIsQ0FBRSx1QkFBdUI7S0FDM0MsQ0FBQztJQUVGLEtBQUssTUFBTSxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YscURBQXFEO1lBQ3JELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSxVQUFVLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7WUFDaEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsNkZBQTZGO0lBQzdGLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLENBQUM7UUFDekQsNERBQTREO1FBQzVELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDOUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7UUFFRCx3RUFBd0U7UUFDeEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsMERBQTBEO0lBQzFELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWMsRUFBRSxRQUFpQjtJQUM5RCxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRTVCLDBDQUEwQztJQUMxQyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0MsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXJELG9CQUFvQjtJQUNwQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMvQyxJQUFJLE1BQU0sS0FBSyxTQUFTO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFFeEMsMENBQTBDO0lBQzFDLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsNkJBQTZCO1FBQzdCLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM1RCxTQUFTO1FBQ1gsQ0FBQztRQUVELGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCw0Q0FBNEM7UUFDNUMsSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLFlBQVksSUFBSSxXQUFXLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQzdFLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQztnQkFDSCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO29CQUMzRCxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3RDLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxXQUFXLENBQUMsSUFBSSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO0lBQ2pCLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUI7SUFDbkMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFLakMsTUFBTSxLQUFLLEdBQUc7UUFDWixLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU07UUFDMUIsTUFBTSxFQUFFLEVBQTRCO1FBQ3BDLFVBQVUsRUFBRSxFQUE0QjtLQUN6QyxDQUFDO0lBRUYsS0FBSyxNQUFNLFdBQVcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN2QyxnQkFBZ0I7UUFDaEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0UsK0NBQStDO1FBQy9DLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsdUNBQXVDO0FBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztBQUNoRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VjdXJpdHkgQXVkaXQgU3VwcHJlc3Npb24gQ29uZmlndXJhdGlvblxuICogXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgc3VwcHJlc3Npb24gcnVsZXMgZm9yIGZhbHNlIHBvc2l0aXZlcyBpbiB0aGUgc2VjdXJpdHkgYXVkaXQuXG4gKiBFYWNoIHN1cHByZXNzaW9uIHNob3VsZCBiZSB3ZWxsLWRvY3VtZW50ZWQgd2l0aCBhIGNsZWFyIHJlYXNvbi5cbiAqL1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9sb2dnZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHByZXNzaW9uIHtcbiAgcnVsZTogc3RyaW5nO1xuICBmaWxlPzogc3RyaW5nO1xuICByZWFzb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdXBwcmVzc2lvbiBjYWNoZSBmb3IgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uXG4gKi9cbmNsYXNzIFN1cHByZXNzaW9uQ2FjaGUge1xuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVnZXhDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBSZWdFeHA+KCk7XG4gIFxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gICAgdGhpcy5yZWdleENhY2hlLmNsZWFyKCk7XG4gIH1cbiAgXG4gIGdldENhY2hlS2V5KHJ1bGVJZDogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cnVsZUlkfTo6JHtmaWxlUGF0aH1gO1xuICB9XG4gIFxuICBnZXQocnVsZUlkOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQodGhpcy5nZXRDYWNoZUtleShydWxlSWQsIGZpbGVQYXRoKSk7XG4gIH1cbiAgXG4gIHNldChydWxlSWQ6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlLnNldCh0aGlzLmdldENhY2hlS2V5KHJ1bGVJZCwgZmlsZVBhdGgpLCB2YWx1ZSk7XG4gIH1cbiAgXG4gIGdldFJlZ2V4KHBhdHRlcm46IHN0cmluZyk6IFJlZ0V4cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVnZXhDYWNoZS5nZXQocGF0dGVybik7XG4gIH1cbiAgXG4gIHNldFJlZ2V4KHBhdHRlcm46IHN0cmluZywgcmVnZXg6IFJlZ0V4cCk6IHZvaWQge1xuICAgIHRoaXMucmVnZXhDYWNoZS5zZXQocGF0dGVybiwgcmVnZXgpO1xuICB9XG59XG5cbmNvbnN0IGNhY2hlID0gbmV3IFN1cHByZXNzaW9uQ2FjaGUoKTtcblxuZXhwb3J0IGNvbnN0IHN1cHByZXNzaW9uczogU3VwcHJlc3Npb25bXSA9IFtcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTUUwgSW5qZWN0aW9uIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ3NyYy91cGRhdGUvVXBkYXRlTWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnRmFsc2UgcG9zaXRpdmUgLSBcIlVwZGF0ZSBGYWlsZWRcIiBpcyBhIFVJIG1lc3NhZ2UsIG5vdCBTUUwuIFRoZSBjb2RlYmFzZSBkb2VzIG5vdCB1c2UgU1FMLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL01lbW9yeU1hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBMaW5lIDEwMjQgaXMgYSBsb2dnZXIuZXJyb3IoKSBjYWxsIGZvcm1hdHRpbmcgYW4gZXJyb3IgbWVzc2FnZSB3aXRoIHN0cmluZyBjb25jYXRlbmF0aW9uLiBUaGlzIGlzIG5vdCBhIFNRTCBxdWVyeSAtIHRoZSBjb2RlYmFzZSBkb2VzIG5vdCB1c2UgU1FMLiBUaGUgc3RyaW5nIGNvbmNhdGVuYXRpb24gYnVpbGRzIGEgdXNlci1mYWNpbmcgZXJyb3IgbWVzc2FnZSBmb3IgZGVsZXRpb24gZmFpbHVyZXMuIFBSICM3J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9tZXRyaWNzLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQnJvd3Nlci1zaWRlIERhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCkgY29uY2F0ZW5hdGlvbiBmb3IgZGlzcGxheSBsYWJlbC4gTm90IFNRTCDigJQgdGhlIGNvZGViYXNlIGRvZXMgbm90IHVzZSBTUUwuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9zZWN1cml0eS5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEhUTUwgc3RyaW5nIGNvbmNhdGVuYXRpb24gYnVpbGRpbmcgRE9NIG1hcmt1cCBmb3IgdGhlIEF1dGggdGFiLiBBbGwgdmFsdWVzIEhUTUwtZXNjYXBlZCB2aWEgZXNjKCkgaGVscGVyLiBOb3QgU1FMIOKAlCB0aGUgY29kZWJhc2UgZG9lcyBub3QgdXNlIFNRTC4gUFIgIzE3OTEnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNZXRyaWNzICYgV2ViIENvbnNvbGUgRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbWV0cmljcy9zaW5rcy9NZW1vcnlNZXRyaWNzU2luay50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEludGVybmFsIG1ldHJpY3Mgc3RvcmFnZSDigJQgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0IGRpcmVjdGx5LiBNZXRyaWMgbmFtZXMgYW5kIHNvdXJjZXMgYXJlIHNlcnZlci1nZW5lcmF0ZWQgY29uc3RhbnRzLiBJbnB1dCBub3JtYWxpemF0aW9uIGlzIGhhbmRsZWQgYXQgdGhlIHJvdXRlIGhhbmRsZXIgYm91bmRhcnkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9tZXRyaWNzL2NvbGxlY3RvcnMvUGVyZm9ybWFuY2VNb25pdG9yQ29sbGVjdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogTWV0cmljIGNvbGxlY3RvciB3aXRoIGhhcmRjb2RlZCBjb25zdGFudCBzdHJpbmdzIG9ubHkuIE5vIHVzZXIgaW5wdXQgZW50ZXJzIHRoaXMgY29tcG9uZW50LiBBbGwgbWV0cmljIG5hbWVzLCBzb3VyY2VzLCBhbmQgZGVzY3JpcHRpb25zIGFyZSBjb21waWxlLXRpbWUgY29uc3RhbnRzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9tZXRyaWNzLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQ2xpZW50LXNpZGUgYnJvd3NlciBKYXZhU2NyaXB0LiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LiBEYXNoYm9hcmQgcmVuZGVycyBzZXJ2ZXItZ2VuZXJhdGVkIG1ldHJpYyBkYXRhIG9ubHkg4oCUIG5vIHVzZXIgdGV4dCBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvbG9ncy5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gRmlsdGVyIGlucHV0cyBhcmUgdXNlZCBmb3IgbG9jYWwgSlMgYXJyYXkgZmlsdGVyaW5nIG9ubHkg4oCUIG5ldmVyIHNlbnQgdG8gc2VydmVyLiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9zZXR1cC5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gVXNlciBpbnB1dHMgKHBsYXRmb3JtIHRhYiBjbGlja3MsIG1ldGhvZCB0b2dnbGUpIGFyZSBtYXRjaGVkIGFnYWluc3QgaGFyZGNvZGVkIERPTSBlbGVtZW50IElEcyBvbmx5IOKAlCBubyBmcmVlLXRleHQgcHJvY2Vzc2luZy4gU2VydmVyLXNpZGUgaGFuZGxlcnMgaW4gc2V0dXBSb3V0ZXMudHMgdXNlIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkgb24gYWxsIEFQSSBpbnB1dC4gVW5pY29kZVZhbGlkYXRvciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvc2VjdXJpdHkuanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBDbGllbnQtc2lkZSBicm93c2VyIEphdmFTY3JpcHQgZm9yIHRoZSBBdXRoIHRhYi4gQWxsIHVzZXIgaW5wdXQgKFRPVFAgY29kZXMpIGlzIHNlbnQgdG8gc2VydmVyLXNpZGUgZW5kcG9pbnRzICh0b3RwUm91dGVzLnRzLCB0b2tlblJvdXRlcy50cykgd2hpY2ggbm9ybWFsaXplIHZpYSBjb25zb2xlUm91dGVIZWxwZXJzLnRzIGdldE5vcm1hbGl6ZWRTdHJpbmdGaWVsZCgpLiBUaGUgZXNjKCkgaGVscGVyIGFwcGxpZXMgTkZDIG5vcm1hbGl6YXRpb24gZm9yIGRpc3BsYXkuIFVuaWNvZGVWYWxpZGF0b3IgaXMgYSBOb2RlLmpzIG1vZHVsZSB1bmF2YWlsYWJsZSBpbiBicm93c2VyIGNvbnRleHQuIFBSICMxNzkxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzL3RvdHBSb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBBbGwgdXNlciBpbnB1dCBmaWVsZHMgKGNvZGUsIHBlbmRpbmdJZCwgbGFiZWwpIGFyZSBleHRyYWN0ZWQgdmlhIGdldE5vcm1hbGl6ZWRTdHJpbmdGaWVsZCgpIGZyb20gY29uc29sZVJvdXRlSGVscGVycy50cyB3aGljaCBjYWxscyBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpLiBOb3JtYWxpemF0aW9uIGlzIGNlbnRyYWxpemVkIGluIHRoZSBzaGFyZWQgaGVscGVyLCBub3QgZHVwbGljYXRlZCBwZXItcm91dGVyLiBQUiAjMTc5NSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3JvdXRlcy90b2tlblJvdXRlcy50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEFsbCB1c2VyIGlucHV0IGZpZWxkcyAoY29uZmlybWF0aW9uQ29kZSkgYXJlIGV4dHJhY3RlZCB2aWEgZ2V0Tm9ybWFsaXplZFN0cmluZ0ZpZWxkKCkgZnJvbSBjb25zb2xlUm91dGVIZWxwZXJzLnRzIHdoaWNoIGNhbGxzIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuIE5vcm1hbGl6YXRpb24gaXMgY2VudHJhbGl6ZWQgaW4gdGhlIHNoYXJlZCBoZWxwZXIsIG5vdCBkdXBsaWNhdGVkIHBlci1yb3V0ZXIuIFBSICMxNzk1J1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVGVzdCBGaWxlIFN1cHByZXNzaW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIG1heSBjb250YWluIGludGVudGlvbmFsIHNlY3VyaXR5IHBhdHRlcm5zIGZvciB0ZXN0aW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi8qLnRlc3QudHMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgbWF5IGNvbnRhaW4gaW50ZW50aW9uYWwgc2VjdXJpdHkgcGF0dGVybnMgZm9yIHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyouc3BlYy50cycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlcyBtYXkgY29udGFpbiBpbnRlbnRpb25hbCBzZWN1cml0eSBwYXR0ZXJucyBmb3IgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0cy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdGllcyBhbmQgRTJFIHRlc3RzIGRvIG5vdCBwcm9jZXNzIHVudHJ1c3RlZCB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3Rlc3RzLyoqLyonLFxuICAgIHJlYXNvbjogJ0F1ZGl0IGxvZ2dpbmcgbm90IHJlcXVpcmVkIGZvciB0ZXN0IHV0aWxpdGllcyBhbmQgRTJFIHRlc3RzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDMnLFxuICAgIGZpbGU6ICd0ZXN0cy9lMmUvY2xlYW51cC10ZXN0LWRhdGEudHMnLFxuICAgIHJlYXNvbjogJ0ZhbHNlIHBvc2l0aXZlIC0gY29uc29sZS5sb2cgbWVzc2FnZSBzdHJpbmcgbGl0ZXJhbCwgbm90IGEgcGF0aCBvcGVyYXRpb24nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAxLTAwMScsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIHVzZSBmYWtlIHRva2VucyBhbmQgc2VjcmV0cyBmb3IgdGVzdGluZyBzZWN1cml0eSBmZWF0dXJlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDEtMDAxJyxcbiAgICBmaWxlOiAndGVzdHMvZml4dHVyZXMvKiovKicsXG4gICAgcmVhc29uOiAnVGVzdCBmaXh0dXJlcyBjb250YWluIGludGVudGlvbmFsIG1vY2sgY3JlZGVudGlhbHMgY2xlYXJseSBtYXJrZWQgYXMgRkFLRS9URVNUL05PVF9SRUFMJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMS0wMDEnLFxuICAgIGZpbGU6ICd0ZXN0cy9zZWN1cml0eS9mcmFtZXdvcmsvUmFwaWRTZWN1cml0eVRlc3RpbmcudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBMaW5lIDIwMiBjb250YWlucyBhbiBpbnRlbnRpb25hbCBmYWtlIHRva2VuIChnaHBfMTIzNDU2Nzg5MC4uLikgZm9yIHNlY3VyaXR5IHRlc3RpbmcuIENsZWFybHkgbWFya2VkIHdpdGggTk9TT05BUiBjb21tZW50LiBVc2VkIHRvIHZlcmlmeSB0b2tlbnMgYXJlIG5vdCBleHBvc2VkIGluIGVycm9yIG1lc3NhZ2VzLiBQUiAjMSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAndGVzdHMvZml4dHVyZXMvdGVzdENyZWRlbnRpYWxzLnRzJyxcbiAgICByZWFzb246ICdDZW50cmFsaXplZCB0ZXN0IGNyZWRlbnRpYWxzIGZpbGUgd2l0aCBpbnRlbnRpb25hbGx5IGZha2UgdmFsdWVzIGZvciB0ZXN0aW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdfX3Rlc3RzX18vKiovKicsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlcyBjb250YWluIFNRTCBpbmplY3Rpb24gcGF0dGVybnMgZm9yIHNlY3VyaXR5IHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIGNvbnRhaW4gY29tbWFuZCBpbmplY3Rpb24gcGF0dGVybnMgZm9yIHNlY3VyaXR5IHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMycsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIGNvbnRhaW4gcGF0aCB0cmF2ZXJzYWwgcGF0dGVybnMgZm9yIHNlY3VyaXR5IHRlc3RpbmcnXG4gIH0sXG4gIFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFlBTUwgUGFyc2luZyBGYWxzZSBQb3NpdGl2ZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS95YW1sVmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdZYW1sVmFsaWRhdG9yIGlzIHRoZSBzZWN1cml0eSB2YWxpZGF0aW9uIGxheWVyIGl0c2VsZiAtIGl0IG5lZWRzIGRpcmVjdCB5YW1sLmxvYWQgYWNjZXNzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS9zZWN1cmVZYW1sUGFyc2VyLnRzJyxcbiAgICByZWFzb246ICdTZWN1cmVZYW1sUGFyc2VyIGlzIHRoZSBzZWN1cml0eSB3cmFwcGVyIHRoYXQgdmFsaWRhdGVzIFlBTUwgYmVmb3JlIHBhcnNpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL3NraWxscy9Ta2lsbE1hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ1VzZXMgeWFtbC5sb2FkIHdpdGggRkFJTFNBRkVfU0NIRU1BIGFuZCBzaXplIHZhbGlkYXRpb24gLSBlcXVpdmFsZW50IHNlY3VyaXR5IHRvIFNlY3VyZVlhbWxQYXJzZXIgZm9yIHJhdyBZQU1MIGltcG9ydCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvdG9vbHMvcG9ydGZvbGlvL3N1Ym1pdFRvUG9ydGZvbGlvVG9vbC50cycsXG4gICAgcmVhc29uOiAnRmFsc2UgcG9zaXRpdmUgLSBVc2VzIFNlY3VyZVlhbWxQYXJzZXIucGFyc2UoKSB3aGljaCBpcyB0aGUgc2VjdXJlIGltcGxlbWVudGF0aW9uIGRlc2lnbmVkIHRvIHByZXZlbnQgWUFNTCB2dWxuZXJhYmlsaXRpZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2NvbmZpZy9Db25maWdNYW5hZ2VyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogVXNlcyBqcy15YW1sIHdpdGggRkFJTFNBRkVfU0NIRU1BIGZvciBwdXJlIFlBTUwgY29uZmlnIGZpbGVzLiBUaGlzIHByZXZlbnRzIGNvZGUgZXhlY3V0aW9uIGFuZCBpcyB0aGUgYXBwcm9wcmlhdGUgc2VjdXJpdHkgbWVhc3VyZSBmb3IgY29uZmlnIGZpbGVzIHRoYXQgYXJlIE5PVCBtYXJrZG93biB3aXRoIGZyb250bWF0dGVyLiBSZWdyZXNzaW9uIHRlc3QgZW5zdXJlcyB3ZSBkbyBub3QgdXNlIFNlY3VyZVlhbWxQYXJzZXIgaGVyZSB3aGljaCB3b3VsZCByZXNldCBjb25maWcgdmFsdWVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvcG9ydGZvbGlvL1BvcnRmb2xpb0luZGV4TWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IE1lbW9yeSBmaWxlcyBhcmUgcHVyZSBZQU1MIChub3QgTWFya2Rvd24gd2l0aCBmcm9udG1hdHRlciksIHNvIFNlY3VyZVlhbWxQYXJzZXIgY2Fubm90IGJlIHVzZWQuIFVzZXMgeWFtbC5sb2FkIHdpdGggRkFJTFNBRkVfU0NIRU1BICsgc2l6ZSB2YWxpZGF0aW9uICsgdHlwZSBjaGVja2luZyBmb3Igc2VjdXJpdHkuIFRoZXNlIGFyZSB0cnVzdGVkIGxvY2FsIHVzZXIgZmlsZXMuIEZpeCBmb3IgaXNzdWUgIzExOTYuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvcmVzb3VyY2VzL0NhcGFiaWxpdHlJbmRleFJlc291cmNlLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogY2FwYWJpbGl0eS1pbmRleC55YW1sIGlzIGEgcHVyZSBZQU1MIGZpbGUgKG5vdCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyKSwgc28gU2VjdXJlWWFtbFBhcnNlciBjYW5ub3QgYmUgdXNlZC4gVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgd2hpY2ggcHJldmVudHMgY29kZSBleGVjdXRpb24uIFRoaXMgaXMgYSB0cnVzdGVkIGxvY2FsIHN5c3RlbS1nZW5lcmF0ZWQgZmlsZSAoY3JlYXRlZCBieSBFbmhhbmNlZEluZGV4TWFuYWdlcikuIFNhbWUgc2VjdXJpdHkgcGF0dGVybiBhcyBDb25maWdNYW5hZ2VyIGFuZCBQb3J0Zm9saW9JbmRleE1hbmFnZXIgZm9yIHB1cmUgWUFNTCBmaWxlcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvRG9sbGhvdXNlVG9BbnRocm9waWNDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgdHJhbnNmb3JtZXIsIG5vdCBzZWN1cml0eSBib3VuZGFyeS4gVXNlcyB5YW1sLmxvYWQgd2l0aCBDT1JFX1NDSEVNQSB0byBwcmV2ZW50IGRlc2VyaWFsaXphdGlvbiBhdHRhY2tzLiBDYW5ub3QgdXNlIFNlY3VyZVlhbWxQYXJzZXIgKGV4cGVjdHMgZnVsbCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyLCBub3QgZXh0cmFjdGVkIFlBTUwgc3RyaW5ncykuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IC0gbm8gbW9kaWZpY2F0aW9uLiBJbnB1dCBza2lsbHMgYWxyZWFkeSB2YWxpZGF0ZWQgKGZyb20gRG9sbGhvdXNlTUNQIHN5c3RlbSkuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FudGhyb3BpY1RvRG9sbGhvdXNlQ29udmVydGVyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogRm9ybWF0IHRyYW5zZm9ybWVyLCBub3Qgc2VjdXJpdHkgYm91bmRhcnkuIFVzZXMgeWFtbC5sb2FkIHdpdGggQ09SRV9TQ0hFTUEgdG8gcHJldmVudCBkZXNlcmlhbGl6YXRpb24gYXR0YWNrcy4gQ2Fubm90IHVzZSBTZWN1cmVZYW1sUGFyc2VyIChwcm9jZXNzZXMgZXh0cmFjdGVkIFlBTUwgc3RyaW5ncykuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IC0gbm8gbW9kaWZpY2F0aW9uLiBPdXRwdXQgdmFsaWRhdGVkIHdoZW4gbG9hZGVkIHZpYSBTa2lsbE1hbmFnZXIubG9hZCgpIHdoaWNoIGFwcGxpZXMgU2VjdXJlWWFtbFBhcnNlci4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5L2F1ZGl0L3NjYW5uZXJzL0NvbmZpZ3VyYXRpb25TY2FubmVyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogU2VjdXJpdHkgc2Nhbm5lciBmb3IgcHVyZSBZQU1MIGNvbmZpZ3VyYXRpb24gZmlsZXMgKG5vdCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyKS4gVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgd2hpY2ggcHJldmVudHMgY29kZSBleGVjdXRpb24gYW5kIGFyYml0cmFyeSBvYmplY3QgaW5zdGFudGlhdGlvbi4gU2VjdXJlWWFtbFBhcnNlciBpcyBkZXNpZ25lZCBmb3IgZWxlbWVudCBmaWxlcyAoTWFya2Rvd24gd2l0aCBZQU1MIGZyb250bWF0dGVyKSwgbm90IHJhdyBjb25maWcgZmlsZXMuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9TZXJpYWxpemF0aW9uU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFVzZXMgc2FmZSBZQU1MIHNjaGVtYSAoRkFJTFNBRkVfU0NIRU1BIG9yIEpTT05fU0NIRU1BKSBzZWxlY3RlZCBieSBnZXRZYW1sU2NoZW1hKCkuIFNlY3VyZVlhbWxQYXJzZXIgaXMgZGVzaWduZWQgZm9yIE1hcmtkb3duIGZpbGVzIHdpdGggZnJvbnRtYXR0ZXIsIG5vdCBwdXJlIFlBTUwgcGFyc2luZy4gTGluZXMgMzA3IGFuZCA4MTIgdXNlIHNhZmUgc2NoZW1hcyB0aGF0IHByZXZlbnQgY29kZSBleGVjdXRpb24uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy9tY3AtYXFsL01DUEFRTEhhbmRsZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBJbXBvcnQgb3BlcmF0aW9uIHBhcnNlcyBwdXJlIFlBTUwgZGF0YSBmcm9tIGV4cG9ydCBwYWNrYWdlcyAobm90IE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIpLiBVc2VzIHlhbWwubG9hZCB3aXRoIEpTT05fU0NIRU1BIHdoaWNoIHByZXZlbnRzIGNvZGUgZXhlY3V0aW9uIGFuZCBpcyBhcHByb3ByaWF0ZSBmb3Igc3RydWN0dXJlZCBlbGVtZW50IGRhdGEuIFNlY3VyZVlhbWxQYXJzZXIgY2Fubm90IGJlIHVzZWQgYXMgaXQgZXhwZWN0cyBNYXJrZG93biBmcm9udG1hdHRlciBmb3JtYXQuIFBSICMxOTMnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZXJ2aWNlIExheWVyIEZhbHNlIFBvc2l0aXZlcyAoUmVmYWN0b3IgUFIpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvU2VyaWFsaXphdGlvblNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBTZXJpYWxpemF0aW9uU2VydmljZSBoYW5kbGVzIGRhdGEgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24uIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBhcHBsaWVkIGF0IHRoZSB2YWxpZGF0aW9uIGxheWVyIChWYWxpZGF0aW9uU2VydmljZS52YWxpZGF0ZUFuZFNhbml0aXplSW5wdXQgY2FsbHMgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUpIGJlZm9yZSBkYXRhIHJlYWNoZXMgc2VyaWFsaXphdGlvbi4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL0ZpbGVPcGVyYXRpb25zU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEZpbGVPcGVyYXRpb25zU2VydmljZSBoYW5kbGVzIGZpbGUgSS9PIG9wZXJhdGlvbnMuIFBhdGhzIGFyZSB2YWxpZGF0ZWQgYnkgUGF0aFZhbGlkYXRvci4gQ29udGVudCB2YWxpZGF0aW9uIGluY2x1ZGluZyBVbmljb2RlIG5vcm1hbGl6YXRpb24gaGFwcGVucyBhdCB0aGUgZWxlbWVudCBtYW5hZ2VyIGxheWVyIGJlZm9yZSBmaWxlIG9wZXJhdGlvbnMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0VsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBJbnRlcmZhY2UvdHlwZSBkZWZpbml0aW9uIGZpbGUgb25seS4gQ29uY3JldGUgaW1wbGVtZW50YXRpb25zIHVzZSBWYWxpZGF0aW9uU2VydmljZSB3aGljaCBwZXJmb3JtcyBVbmljb2RlIG5vcm1hbGl6YXRpb24gdmlhIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0dlbmVyaWNFbGVtZW50VmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQ2FsbHMgSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZSgpIGF0IHRoZSB2YWxpZGF0aW9uIGJvdW5kYXJ5IChsaW5lIDY0KSB3aGljaCByZWN1cnNpdmVseSBub3JtYWxpemVzIGFsbCBzdHJpbmdzIHZpYSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpLiBUaGlzIGlzIHRoZSBjZW50cmFsaXplZCBub3JtYWxpemF0aW9uIHBvaW50IGZvciBhbGwgZWxlbWVudCB2YWxpZGF0b3JzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9QZXJzb25hRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL01lbW9yeUVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiBDdXN0b20gZmllbGRzIGFkZGl0aW9uYWxseSBub3JtYWxpemVkIGJ5IFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCgpLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9UZW1wbGF0ZUVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiBDdXN0b20gZmllbGRzIGFkZGl0aW9uYWxseSBub3JtYWxpemVkIGJ5IFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCgpLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9FbnNlbWJsZUVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiBDdXN0b20gZmllbGRzIGFkZGl0aW9uYWxseSBub3JtYWxpemVkIGJ5IFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCgpLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9Ta2lsbEVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiB2YWxpZGF0ZU1ldGFkYXRhKCkgcmVjZWl2ZXMgcHJlLW5vcm1hbGl6ZWQgZWxlbWVudC5tZXRhZGF0YSBmcm9tIFNraWxsIGNvbnN0cnVjdG9yIChVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSArIHNhbml0aXplSW5wdXQpLiBQUiAjNDU3J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0FnZW50RWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEFnZW50LXNwZWNpZmljIGZpZWxkcyAoZ29hbCwgc3lzdGVtUHJvbXB0LCBhY3RpdmF0ZXMsIHRvb2xzLCBhdXRvbm9teSkgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVDb250ZW50KCkuIFBSICMxMzQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvRG9sbGhvdXNlVG9BbnRocm9waWNDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgdHJhbnNmb3JtZXIsIG5vdCBzZWN1cml0eSBib3VuZGFyeS4gUHJlc2VydmVzIGNvbnRlbnQgZmlkZWxpdHkgd2l0aG91dCBVbmljb2RlIG5vcm1hbGl6YXRpb24uIElucHV0IHNraWxscyBhbHJlYWR5IHZhbGlkYXRlZCAoZnJvbSBEb2xsaG91c2VNQ1Agc3lzdGVtKS4gT25lLXRvLW9uZSBtZWNoYW5pY2FsIHRyYW5zZm9ybWF0aW9uIC0gbm8gY29udGVudCBtb2RpZmljYXRpb24uIFNlY3VyaXR5IGJvdW5kYXJ5IGlzIFNraWxsTWFuYWdlci5sb2FkKCksIG5vdCBjb252ZXJ0ZXJzLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9BbnRocm9waWNUb0RvbGxob3VzZUNvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCB0cmFuc2Zvcm1lciwgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBQcmVzZXJ2ZXMgY29udGVudCBmaWRlbGl0eSB3aXRob3V0IFVuaWNvZGUgbm9ybWFsaXphdGlvbi4gT3V0cHV0IHZhbGlkYXRlZCB3aGVuIGxvYWRlZCB2aWEgU2tpbGxNYW5hZ2VyLmxvYWQoKSB3aGljaCBhcHBsaWVzIGZ1bGwgc2VjdXJpdHkgdmFsaWRhdGlvbiAoU2VjdXJlWWFtbFBhcnNlciArIFVuaWNvZGVWYWxpZGF0b3IpLiBPbmUtdG8tb25lIG1lY2hhbmljYWwgdHJhbnNmb3JtYXRpb24uIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0NvbnRlbnRFeHRyYWN0b3IudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgYW5hbHlzaXMgdG9vbCBmb3IgY29udmVydGVycywgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBQcmVzZXJ2ZXMgY29udGVudCBmaWRlbGl0eSB3aXRob3V0IG1vZGlmaWNhdGlvbi4gVXNlZCBieSBmb3JtYXQgdHJhbnNmb3JtZXJzIHdoaWNoIHByZXNlcnZlIG9uZS10by1vbmUgY29ycmVzcG9uZGVuY2UuIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZyAtIGludGVybmFsIHV0aWxpdHkgZm9yIG1lY2hhbmljYWwgY29udmVyc2lvbi4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvRG9sbGhvdXNlVG9BbnRocm9waWNDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBDb252ZXJ0ZXJzIGFyZSBmb3JtYXQgdHJhbnNmb3JtZXJzLCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucy4gQXVkaXQgbG9nZ2luZyBoYXBwZW5zIGF0IENMSSBsZXZlbCAoY2xpL2NvbnZlcnQudHMgbGluZSAyNTEpIHdoZXJlIGNvbnZlcnNpb24gb3BlcmF0aW9ucyBhcmUgbG9nZ2VkLiBDb252ZXJ0ZXJzIGFyZSBpbnRlcm5hbCB1dGlsaXRpZXMsIG5vdCB1c2VyLWZhY2luZyBzZWN1cml0eSBib3VuZGFyaWVzLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9BbnRocm9waWNUb0RvbGxob3VzZUNvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENvbnZlcnRlcnMgYXJlIGZvcm1hdCB0cmFuc2Zvcm1lcnMsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zLiBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgYXQgQ0xJIGxldmVsIChjbGkvY29udmVydC50cyBsaW5lIDI1MSkgd2hlcmUgY29udmVyc2lvbiBvcGVyYXRpb25zIGFyZSBsb2dnZWQuIENvbnZlcnRlcnMgYXJlIGludGVybmFsIHV0aWxpdGllcywgbm90IHVzZXItZmFjaW5nIHNlY3VyaXR5IGJvdW5kYXJpZXMuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvcmVzb3VyY2VzL0NhcGFiaWxpdHlJbmRleFJlc291cmNlLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRmlsZSBwYXRoIGlzIGNvbnN0cnVjdGVkIGZyb20gb3MuaG9tZWRpcigpIChzeXN0ZW0tcHJvdmlkZWQpIHdpdGggaGFyZGNvZGVkIHBhdGggc2VnbWVudHMuIE5vIHVzZXIgaW5wdXQgZmxvd3MgdGhyb3VnaCB0aGlzIGNvZGUuIFRoZSBjYXBhYmlsaXR5LWluZGV4LnlhbWwgZmlsZSBpcyBzeXN0ZW0tZ2VuZXJhdGVkIGJ5IEVuaGFuY2VkSW5kZXhNYW5hZ2VyLCBub3QgdXNlci1wcm92aWRlZC4nXG4gIH0sXG4gIFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENsZWFyLXRleHQgTG9nZ2luZyBGYWxzZSBQb3NpdGl2ZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAxMCcsXG4gICAgZmlsZTogJ3NyYy91dGlscy9sb2dnZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBUaGUgbG9nZ2VyIGFscmVhZHkgc2FuaXRpemVzIGFsbCBzZW5zaXRpdmUgZGF0YSB0aHJvdWdoIHNhbml0aXplTWVzc2FnZSgpIGFuZCBzYW5pdGl6ZU9iamVjdCgpIG1ldGhvZHMuIEFsbCBzZW5zaXRpdmUgZmllbGRzICh0b2tlbnMsIGtleXMsIHBhc3N3b3JkcywgZXRjLikgYXJlIHJlcGxhY2VkIHdpdGggW1JFREFDVEVEXSBiZWZvcmUgYW55IGNvbnNvbGUgb3V0cHV0LiBMaW5lcyAyODgsIDI5MSwgYW5kIDI5NSBvbmx5IGxvZyBwcmUtc2FuaXRpemVkIHNhZmUgbWVzc2FnZXMuJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZWN1cml0eSBSdWxlIERlZmluaXRpb24gRmlsZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvYXVkaXQvcnVsZXMvU2VjdXJpdHlSdWxlcy50cycsXG4gICAgcmVhc29uOiAnVGhpcyBpcyBhIHJlZ2V4IHBhdHRlcm4gZGVmaW5pdGlvbiBmb3IgZGV0ZWN0aW5nIGlubmVySFRNTCB1c2FnZSwgbm90IGFjdHVhbCB1c2FnZSdcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUGVyc29uYSBMb2FkaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvUGVyc29uYUxvYWRlci50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYUxvYWRlciB2YWxpZGF0ZXMgcGVyc29uYXMgdGhyb3VnaCBTZWN1cmVZYW1sUGFyc2VyIGFuZCBDb250ZW50VmFsaWRhdG9yJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMScsXG4gICAgZmlsZTogJ3NyYy9wZXJzb25hL1BlcnNvbmFNYW5hZ2VyLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogUGVyc29uYU1hbmFnZXIgdmFsaWRhdGVzIGFsbCBsb2FkZWQgcGVyc29uYXMgdXNpbmcgUGVyc29uYVZhbGlkYXRvci52YWxpZGF0ZVBlcnNvbmEoKSBpbW1lZGlhdGVseSBhZnRlciBsb2FkaW5nIGF0IGxpbmUgMzI1LiBJbnZhbGlkIHBlcnNvbmFzIGFyZSByZWplY3RlZCBhbmQgcmVtb3ZlZCBmcm9tIGNhY2hlLiBQUiAjMSdcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVW5pY29kZSBOb3JtYWxpemF0aW9uIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3R5cGVzLyoudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90ZWxlbWV0cnkvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1RlbGVtZXRyeSB0eXBlIGRlZmluaXRpb24gZmlsZSAtIGNvbnRhaW5zIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzLCBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3RlbGVtZXRyeS90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVGVsZW1ldHJ5IHR5cGUgZGVmaW5pdGlvbiBmaWxlIC0gQ0kgcGF0aCB2YXJpYW50LCBjb250YWlucyBvbmx5IFR5cGVTY3JpcHQgaW50ZXJmYWNlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdHlwZXMvZWxlbWVudHMvKi50cycsXG4gICAgcmVhc29uOiAnRWxlbWVudCBpbnRlcmZhY2UgZmlsZXMgYXJlIHR5cGUgZGVmaW5pdGlvbnMgdGhhdCBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lcnJvcnMvKi50cycsXG4gICAgcmVhc29uOiAnRXJyb3IgY2xhc3NlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb25maWcvKi50cycsXG4gICAgcmVhc29uOiAnQ29uZmlndXJhdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0IGRpcmVjdGx5J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb25zdGFudHMvKi50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnQgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMsIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9zcmMvZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIGNvbnRhaW5zIG9ubHkgdHlwZSBkZWZpbml0aW9ucyBhbmQgY29uc3RhbnRzLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIENJIGVudmlyb25tZW50cyBtYXkgaGF2ZSBkaWZmZXJlbnQgcGF0aCBzdHJ1Y3R1cmVzLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIGhhbmRsZXMgY2FzZSB3aGVyZSBzcmMvIHByZWZpeCBpcyBzdHJpcHBlZCwgbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9yZXRlbnRpb24vdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGZvciByZXRlbnRpb24gcG9saWN5IGludGVyZmFjZXMgLSBjb250YWlucyBvbmx5IFR5cGVTY3JpcHQgaW50ZXJmYWNlcyBhbmQgdHlwZSBkZWZpbml0aW9ucywgbm8gcnVudGltZSBjb2RlIG9yIHVzZXIgaW5wdXQgcHJvY2Vzc2luZy4gQWN0dWFsIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiBSZXRlbnRpb25Qb2xpY3lTZXJ2aWNlIGFuZCBNZW1vcnlSZXRlbnRpb25TdHJhdGVneS4gUFIgIzUyJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy91dGlscy50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IHV0aWxpdGllcyAtIGFsbCBleHRlcm5hbCBpbnB1dCBpcyBub3JtYWxpemVkIHZpYSBVbmljb2RlVmFsaWRhdG9yIGluIHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9zcmMvZWxlbWVudHMvbWVtb3JpZXMvdXRpbHMudHMnLFxuICAgIHJlYXNvbjogJ01lbW9yeSB1dGlsaXRpZXMgLSBhbGwgZXh0ZXJuYWwgaW5wdXQgaXMgbm9ybWFsaXplZCB2aWEgVW5pY29kZVZhbGlkYXRvciBpbiB0aGUgZnVuY3Rpb25zIHRoZW1zZWx2ZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovZWxlbWVudHMvbWVtb3JpZXMvdXRpbHMudHMnLFxuICAgIHJlYXNvbjogJ01lbW9yeSB1dGlsaXRpZXMgLSBDSSBwYXRoIHZhcmlhbnQsIGFsbCBleHRlcm5hbCBpbnB1dCBpcyBub3JtYWxpemVkIHZpYSBVbmljb2RlVmFsaWRhdG9yJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ2VsZW1lbnRzL21lbW9yaWVzL3V0aWxzLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgdXRpbGl0aWVzIC0gc3JjLXN0cmlwcGVkIHBhdGggdmFyaWFudCwgYWxsIGV4dGVybmFsIGlucHV0IGlzIG5vcm1hbGl6ZWQgdmlhIFVuaWNvZGVWYWxpZGF0b3InXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovbWVtb3JpZXMvKi50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IGVsZW1lbnQgZmlsZXMgLSBhbGwgdXNlciBpbnB1dCBpcyBwcm9wZXJseSBub3JtYWxpemVkIGluIE1lbW9yeS50cyBhbmQgTWVtb3J5TWFuYWdlci50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvZWxlbWVudHMvbWVtb3JpZXMvKi50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IGVsZW1lbnQgZmlsZXMgLSBhbGwgdXNlciBpbnB1dCBpcyBwcm9wZXJseSBub3JtYWxpemVkIGluIE1lbW9yeS50cyBhbmQgTWVtb3J5TWFuYWdlci50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdXRpbHMvdmVyc2lvbi50cycsXG4gICAgcmVhc29uOiAnVmVyc2lvbiB1dGlsaXR5IG9ubHkgaGFuZGxlcyBpbnRlcm5hbCB2ZXJzaW9uIHN0cmluZ3MsIG5vdCB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jYWNoZS8qLnRzJyxcbiAgICByZWFzb246ICdDYWNoZSBsYXllciByZWNlaXZlcyBhbHJlYWR5LW5vcm1hbGl6ZWQgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5LyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ1NlY3VyaXR5IG1vZHVsZXMgaGFuZGxlIHZhbGlkYXRpb24gYW5kIG5vcm1hbGl6YXRpb24gdGhlbXNlbHZlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaW5kZXgudHMnLFxuICAgIHJlYXNvbjogJ01haW4gZW50cnkgcG9pbnQgZGVsZWdhdGVzIHRvIFNlcnZlclNldHVwIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmVyL1NlcnZlclNldHVwLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBVTklDT0RFIE5PUk1BTElaQVRJT046IFRoaXMgaXMgd2hlcmUgVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGltcGxlbWVudGVkIGZvciBBTEwgdG9vbCBpbnB1dHMuIFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSAobGluZXMgMTEzLTE0NikgcmVjdXJzaXZlbHkgbm9ybWFsaXplcyBhbGwgc3RyaW5nIGFyZ3VtZW50cyBiZWZvcmUgdGhleSByZWFjaCBhbnkgaGFuZGxlci4gVGhpcyBpcyB0aGUgY29ycmVjdCBhcmNoaXRlY3R1cmFsIHBhdHRlcm4gKHNpbmdsZSBlbnRyeSBwb2ludCkuIFBSICMxJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ2VudHJhbGl6ZWQgVW5pY29kZSBOb3JtYWxpemF0aW9uIC0gUFIgIzFcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBBbGwgaGFuZGxlcnMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwLnRzXG4gIC8vIFNlcnZlclNldHVwLnNldHVwQ2FsbFRvb2xIYW5kbGVyKCkgY2FsbHMgbm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpXG4gIC8vIG9uIGxpbmUgODkgQkVGT1JFIGRpc3BhdGNoaW5nIHRvIGFueSBoYW5kbGVyLiBUaGlzIHJlY3Vyc2l2ZWx5XG4gIC8vIG5vcm1hbGl6ZXMgYWxsIHN0cmluZ3MgaW4gdGhlIGFyZ3VtZW50cyBvYmplY3QuXG4gIC8vIFNlZSBzcmMvc2VydmVyL1NlcnZlclNldHVwLnRzIGxpbmVzIDExMy0xNDYgZm9yIGltcGxlbWVudGF0aW9uLlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC1hcmNoaXZlLyoqLyonLFxuICAgIHJlYXNvbjogJ0NFTlRSQUxJWkVEIE5PUk1BTElaQVRJT046IFRlc3QgYXJjaGl2ZSBmaWxlcyBhcmUgYXJjaGl2ZWQgZXhwZXJpbWVudHMsIG5vdCBwcm9kdWN0aW9uIGNvZGUuIEFsbCBwcm9kdWN0aW9uIHVzZXIgaW5wdXQgaXMgbm9ybWFsaXplZCBpbiBTZXJ2ZXJTZXR1cC50cyBiZWZvcmUgcmVhY2hpbmcgaGFuZGxlcnMuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy8qLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBOT1JNQUxJWkFUSU9OOiBBbGwgaGFuZGxlcnMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSAobGluZXMgODksIDExMy0xNDYpLiBVbmljb2RlIG5vcm1hbGl6YXRpb24gaGFwcGVucyBhdCB0aGUgZW50cnkgcG9pbnQgYmVmb3JlIGhhbmRsZXJzIGFyZSBpbnZva2VkLiBQUiAjMSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvKiovKi50cycsXG4gICAgcmVhc29uOiAnQ0VOVFJBTElaRUQgTk9STUFMSVpBVElPTjogQWxsIGhhbmRsZXIgc3RyYXRlZ2llcyBhbmQgbW9kdWxlcyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpLiBJbnB1dCBpcyBzYW5pdGl6ZWQgYXQgdGhlIE1DUCByZXF1ZXN0IGxheWVyLiBQUiAjMSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvZWxlbWVudHMvKiovKi50cycsXG4gICAgcmVhc29uOiAnQ0VOVFJBTElaRUQgTk9STUFMSVpBVElPTjogRWxlbWVudCBtYW5hZ2VycyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gaGFuZGxlcnMsIHdoaWNoIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBTZXJ2ZXJTZXR1cC4gRGVmZW5zZSBpbiBkZXB0aCB3aXRoIGNlbnRyYWxpemVkIGVudHJ5IHBvaW50IG5vcm1hbGl6YXRpb24uIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9kaS9Db250YWluZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBESSBDb250YWluZXIgb25seSB3aXJlcyBkZXBlbmRlbmNpZXMsIGRvZXMgbm90IHByb2Nlc3MgdXNlciBpbnB1dC4gQWxsIHVzZXIgaW5wdXQgaXMgbm9ybWFsaXplZCBpbiBTZXJ2ZXJTZXR1cCBiZWZvcmUgcmVhY2hpbmcgYW55IGluamVjdGVkIHNlcnZpY2UuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvY29sbGVjdGlvbi8qKi8qLnRzJyxcbiAgICByZWFzb246ICdNYXJrZXRwbGFjZSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvKi50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvKiovKi50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3VwZGF0ZS8qLnRzJyxcbiAgICByZWFzb246ICdVcGRhdGUgbW9kdWxlcyByZWNlaXZlIG5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0b29sIGhhbmRsZXJzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90b29scy8qLnRzJyxcbiAgICByZWFzb246ICdUb29sIGZpbGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGRvZXMgbm90IHByb2Nlc3MgdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmVyL3Rvb2xzLyoudHMnLFxuICAgIHJlYXNvbjogJ1NlcnZlciB0b29scyByZWNlaXZlIG5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBTZXJ2ZXJTZXR1cCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzY3JpcHRzLyoqLyonLFxuICAgIHJlYXNvbjogJ0J1aWxkIGFuZCB1dGlsaXR5IHNjcmlwdHMgZG8gbm90IHByb2Nlc3MgdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdG9vbHMvcG9ydGZvbGlvL3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUeXBlIGRlZmluaXRpb24gZmlsZSBjb250YWluaW5nIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzIC0gbm8gcnVudGltZSBjb2RlIG9yIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdG9vbHMvKiovdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0IC0gY29tcGlsZS10aW1lIG9ubHknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL0J1aWxkSW5mb1NlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0J1aWxkSW5mb1NlcnZpY2Ugb25seSBwcm9jZXNzZXMgc3lzdGVtIGluZm9ybWF0aW9uIChwYWNrYWdlLmpzb24sIGdpdCBjb21tYW5kcywgRG9ja2VyIHJ1bnRpbWUpIC0gdGhlIE1DUCB0b29sIHRha2VzIG5vIHBhcmFtZXRlcnMgYW5kIG5vIHVzZXIgaW5wdXQgZmxvd3MgdGhyb3VnaCB0aGlzIHNlcnZpY2UnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL1N5bmNIYW5kbGVyVjIudHMnLFxuICAgIHJlYXNvbjogJ1N5bmNIYW5kbGVyVjIgcmVjZWl2ZXMgYWxyZWFkeS1ub3JtYWxpemVkIGlucHV0IGZyb20gdGhlIE1DUCByZXF1ZXN0IGxheWVyLiBBbGwgdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwIGJlZm9yZSByZWFjaGluZyBoYW5kbGVycy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL0NvbmZpZ0hhbmRsZXIudHMnLFxuICAgIHJlYXNvbjogJ0NvbmZpZ0hhbmRsZXIgcmVjZWl2ZXMgYWxyZWFkeS1ub3JtYWxpemVkIGlucHV0IGZyb20gdGhlIE1DUCByZXF1ZXN0IGxheWVyLiBBbGwgdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwIGJlZm9yZSByZWFjaGluZyBoYW5kbGVycy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC1zeW5jLW9wZXJhdGlvbnMuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlIGZvciBkZXZlbG9wbWVudCB0ZXN0aW5nLiBEb2VzIG5vdCBwcm9jZXNzIHByb2R1Y3Rpb24gdXNlciBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1zeW5jLW9wZXJhdGlvbnMuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlIGZvciBkZXZlbG9wbWVudCB0ZXN0aW5nLiBEb2VzIG5vdCBwcm9jZXNzIHByb2R1Y3Rpb24gdXNlciBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC0qLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgZmlsZXMgaW4gcm9vdCBkaXJlY3RvcnkgZm9yIGRldmVsb3BtZW50IHRlc3RpbmcuIERvIG5vdCBwcm9jZXNzIHByb2R1Y3Rpb24gdXNlciBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAndGVzdC0qLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgZmlsZXMgaW4gcm9vdCBkaXJlY3RvcnkuIEF1ZGl0IGxvZ2dpbmcgbm90IHJlcXVpcmVkIGZvciBkZXZlbG9wbWVudCB0ZXN0IHNjcmlwdHMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICd0ZXN0LSouanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlcyB1c2luZyBzcGF3biB3aXRoIGFycmF5IGFyZ3VtZW50cyB3aGljaCBpcyBzYWZlIGZyb20gaW5qZWN0aW9uLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdC1lbGVtZW50LWxpZmVjeWNsZS5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IHNwYXduIHdpdGggYXJyYXkgYXJndW1lbnRzIGlzIHNhZmUgKG5vIHNoZWxsIGludm9jYXRpb24pLiBHaXRIdWIgdG9rZW4gcGFzc2VkIGFzIGFycmF5IGVsZW1lbnQsIG5vdCBjb25jYXRlbmF0ZWQgaW50byBjb21tYW5kIHN0cmluZy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1lbGVtZW50LWxpZmVjeWNsZS5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFRlc3QgaGFybmVzcyB3aXRoIG5vIHVzZXIgaW5wdXQgbWVjaGFuaXNtcy4gQWxsIGRhdGEgaXMgaGFyZGNvZGVkIHRlc3Qgc2NlbmFyaW9zIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3Rlc3QtZnVsbC12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogc3Bhd24gd2l0aCBhcnJheSBhcmd1bWVudHMgaXMgc2FmZS4gRG9ja2VyIGNvbW1hbmQgdXNlcyBhcnJheSBhcmdzIHByZXZlbnRpbmcgc2hlbGwgaW5qZWN0aW9uLiBMaW5lIDM3Mi4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3Rlc3QtZnVsbC12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogc3Bhd24gd2l0aCBhcnJheSBhcmd1bWVudHMgaXMgc2FmZS4gRG9ja2VyIGNvbW1hbmQgdXNlcyBhcnJheSBhcmdzIHByZXZlbnRpbmcgc2hlbGwgaW5qZWN0aW9uLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LWZ1bGwtdmFsaWRhdGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB2YWxpZGF0aW9uIHNjcmlwdCAtIG5vdCBwcm9kdWN0aW9uIGNvZGUuIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZywgb25seSB0ZXN0IHNjZW5hcmlvcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1mdWxsLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdmFsaWRhdGlvbiBzY3JpcHQgLSBub3QgcHJvZHVjdGlvbiBjb2RlLiBObyB1c2VyIGlucHV0IHByb2Nlc3NpbmcsIG9ubHkgdGVzdCBzY2VuYXJpb3MuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3Rlc3QtdmVyc2lvbi12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgc2NyaXB0IC0gbm90IHByb2R1Y3Rpb24gY29kZS4gQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIHRlc3QgdXRpbGl0aWVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi90ZXN0LXZlcnNpb24tdmFsaWRhdGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IHNjcmlwdCAtIG5vdCBwcm9kdWN0aW9uIGNvZGUuIEF1ZGl0IGxvZ2dpbmcgbm90IHJlcXVpcmVkIGZvciB0ZXN0IHV0aWxpdGllcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSAtIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2VkLCBhbGwgdGVzdCBkYXRhIGlzIGludGVybmFsbHkgZ2VuZXJhdGVkJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgLSBObyB1c2VyIGlucHV0IHByb2Nlc3NlZCwgYWxsIHRlc3QgZGF0YSBpcyBpbnRlcm5hbGx5IGdlbmVyYXRlZCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICd0ZXN0LW1lbW9yeS1kZWxldGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIC0gQXVkaXQgbG9nZ2luZyBoYXBwZW5zIGluIHRoZSBzZXJ2ZXIgZGVsZXRlRWxlbWVudCBtZXRob2QsIG5vdCBpbiB0ZXN0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgLSBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgaW4gdGhlIHNlcnZlciBkZWxldGVFbGVtZW50IG1ldGhvZCwgbm90IGluIHRlc3QnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdGYWxzZSBwb3NpdGl2ZSAtIFRlbXBsYXRlIGxpdGVyYWxzIGluIGVycm9yIG1lc3NhZ2VzIGFyZSBub3QgU1FMIHF1ZXJpZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdGYWxzZSBwb3NpdGl2ZSAtIFRlbXBsYXRlIGxpdGVyYWxzIGluIGVycm9yIG1lc3NhZ2VzIGFyZSBub3QgU1FMIHF1ZXJpZXMnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBBdWRpdCBMb2dnaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3R5cGVzLyoudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcGVyZm9ybSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy90eXBlcy9lbGVtZW50cy8qLnRzJyxcbiAgICByZWFzb246ICdFbGVtZW50IGludGVyZmFjZSBmaWxlcyBhcmUgdHlwZSBkZWZpbml0aW9ucyB0aGF0IGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2NvbnN0YW50cy8qLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudCBmaWxlcyBkbyBub3QgcGVyZm9ybSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb25maWcvKi50cycsXG4gICAgcmVhc29uOiAnQ29uZmlndXJhdGlvbiBmaWxlcyBkbyBub3QgcGVyZm9ybSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMsIG5vIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovc3JjL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cywgbm8gc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gQ0kgcGF0aCB2YXJpYW50LCBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdlbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gc3JjLXN0cmlwcGVkIHBhdGggdmFyaWFudCwgY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2Vycm9ycy8qLnRzJyxcbiAgICByZWFzb246ICdFcnJvciBjbGFzc2VzIGFyZSBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucyByZXF1aXJpbmcgYXVkaXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovKi5qc29uJyxcbiAgICByZWFzb246ICdKU09OIGZpbGVzIGNhbm5vdCBjb250YWluIGV4ZWN1dGFibGUgY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvKiovKi50cycsXG4gICAgcmVhc29uOiAnU2VjdXJpdHkgbW9kdWxlcyBhcmUgaW5mcmFzdHJ1Y3R1cmUsIG5vdCBvcGVyYXRpb25zIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29sbGVjdGlvbi8qLnRzJyxcbiAgICByZWFzb246ICdNYXJrZXRwbGFjZSBvcGVyYXRpb25zIGFyZSBub3Qgc2VjdXJpdHktc2Vuc2l0aXZlIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29sbGVjdGlvbi8qKi8qLnRzJyxcbiAgICByZWFzb246ICdNYXJrZXRwbGFjZSBvcGVyYXRpb25zIGFyZSBub3Qgc2VjdXJpdHktc2Vuc2l0aXZlIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG9wZXJhdGlvbnMgYXJlIHZhbGlkYXRlZCBhdCBlbnRyeSBwb2ludCwgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvKiovKi50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYSBvcGVyYXRpb25zIGFyZSB2YWxpZGF0ZWQgYXQgZW50cnkgcG9pbnQsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdG9vbHMvKiovKi50cycsXG4gICAgcmVhc29uOiAnVG9vbCBpbXBsZW1lbnRhdGlvbnMgZGVsZWdhdGUgdG8gc2VydmljZXMgdGhhdCBoYW5kbGUgc2VjdXJpdHknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2luZGV4LnRzJyxcbiAgICByZWFzb246ICdNYWluIGVudHJ5IHBvaW50IGRlbGVnYXRlcyBzZWN1cml0eSBvcGVyYXRpb25zIHRvIHNwZWNpYWxpemVkIG1vZHVsZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3V0aWxzL0V2aWN0aW5nUXVldWUudHMnLFxuICAgIHJlYXNvbjogJ0dlbmVyaWMgZGF0YSBzdHJ1Y3R1cmUg4oCUIGRvZXMgbm90IHByb2Nlc3MgdXNlciBpbnB1dC4gQWxsIGNhbGxlcnMgKEFnZW50LCBTZWN1cml0eVRlbGVtZXRyeSwgU2VjdXJpdHlNb25pdG9yLCBMb2dnZXIpIHNhbml0aXplIGlucHV0IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBxdWV1ZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvdXRpbHMvKi50cycsXG4gICAgcmVhc29uOiAnVXRpbGl0eSBmdW5jdGlvbnMgYXJlIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvdXBkYXRlLyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ1VwZGF0ZSBzeXN0ZW0gaGFzIGl0cyBvd24gbG9nZ2luZyBhbmQgaXMgbm90IGEgZGlyZWN0IHNlY3VyaXR5IG9wZXJhdGlvbidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvc2VydmVyL3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUeXBlIGRlZmluaXRpb24gZmlsZSBkb2VzIG5vdCBwZXJmb3JtIG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc2NyaXB0cy8qKi8qJyxcbiAgICByZWFzb246ICdCdWlsZCBzY3JpcHRzIGRvIG5vdCBwZXJmb3JtIHJ1bnRpbWUgc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzY3JpcHRzL2xpYi9naC1jb21tYW5kLmpzJyxcbiAgICByZWFzb246ICdDTEkgdXRpbGl0eSAtIFNlY3VyaXR5TW9uaXRvciBub3QgYXZhaWxhYmxlIGluIHN0YW5kYWxvbmUgc2NyaXB0cy4gU2VjdXJpdHkgZW5zdXJlZCB2aWEgaW5wdXQgdmFsaWRhdGlvbiBhbmQgc2VjdXJlIGNvbW1hbmQgZXhlY3V0aW9uIHBhdHRlcm5zIChETUNQLVNFQy0wMDEsIERNQ1AtU0VDLTAwMiknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovc2NyaXB0cy9saWIvZ2gtY29tbWFuZC5qcycsXG4gICAgcmVhc29uOiAnQ0xJIHV0aWxpdHkgLSBTZWN1cml0eU1vbml0b3Igbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFsb25lIHNjcmlwdHMuIFNlY3VyaXR5IGVuc3VyZWQgdmlhIGlucHV0IHZhbGlkYXRpb24gYW5kIHNlY3VyZSBjb21tYW5kIGV4ZWN1dGlvbiBwYXR0ZXJucyAoRE1DUC1TRUMtMDAxLCBETUNQLVNFQy0wMDIpJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9wb3J0Zm9saW8vUG9ydGZvbGlvU3luY01hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ1BvcnRmb2xpbyBzeW5jIG9wZXJhdGlvbnMgYXJlIGZpbGUgbWFuYWdlbWVudCB0YXNrcywgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMuIFNlY3VyaXR5IHZhbGlkYXRpb24gaGFwcGVucyBhdCB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy9TeW5jSGFuZGxlclYyLnRzJyxcbiAgICByZWFzb246ICdTeW5jIGhhbmRsZXIgZGVsZWdhdGVzIHRvIFBvcnRmb2xpb1N5bmNNYW5hZ2VyIHdoaWNoIGhhbmRsZXMgaXRzIG93biBsb2dnaW5nLiBTZWN1cml0eSB2YWxpZGF0aW9uIGhhcHBlbnMgYXQgdGhlIE1DUCByZXF1ZXN0IGxheWVyLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvQ29uZmlnSGFuZGxlci50cycsXG4gICAgcmVhc29uOiAnQ29uZmlnIGhhbmRsZXIgb3BlcmF0aW9ucyBhcmUgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucy4gQ29uZmlnTWFuYWdlciBoYW5kbGVzIGl0cyBvd24gbG9nZ2luZy4nXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBRdWVyeSBTZXJ2aWNlcyAtIElzc3VlICMzOCAoUFIgIzQ2KVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFF1ZXJ5IHNlcnZpY2VzIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgdmlhIHR3byBsYXllcnM6XG4gIC8vIDEuIFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSBub3JtYWxpemVzIGFsbCBNQ1AgdG9vbCBhcmd1bWVudHNcbiAgLy8gMi4gRmlsdGVyU2VydmljZSB1c2VzIG5vcm1hbGl6ZVNlYXJjaFRlcm0oKSB3aGljaCBjYWxscyBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpXG4gIC8vIFNlZSBzcmMvdXRpbHMvc2VhcmNoVXRpbHMudHMgbGluZXMgMTctMzAgZm9yIHNlY29uZGFyeSBub3JtYWxpemF0aW9uXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUeXBlIGRlZmluaXRpb24gZmlsZSBjb250YWluaW5nIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzIC0gbm8gcnVudGltZSBjb2RlIG9yIHVzZXIgaW5wdXQgcHJvY2Vzc2luZy4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9pbmRleC50cycsXG4gICAgcmVhc29uOiAnUmUtZXhwb3J0IG1vZHVsZSAtIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZywgb25seSBUeXBlU2NyaXB0IHJlLWV4cG9ydHMuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvUGFnaW5hdGlvblNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ1BhZ2luYXRpb25TZXJ2aWNlIHByb2Nlc3NlcyBudW1lcmljIHBhcmFtZXRlcnMgKHBhZ2UsIHBhZ2VTaXplKSAtIG5vIHN0cmluZyBpbnB1dCByZXF1aXJpbmcgVW5pY29kZSBub3JtYWxpemF0aW9uLiBJbnB1dCBwcmUtdmFsaWRhdGVkIGF0IE1DUCByZXF1ZXN0IGxheWVyLiBQUiAjNDYnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L0ZpbHRlclNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0RVQUwgUFJPVEVDVElPTjogKDEpIElucHV0IHByZS1ub3JtYWxpemVkIGJ5IFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSBhdCBNQ1AgbGF5ZXIsICgyKSBGaWx0ZXJTZXJ2aWNlIHVzZXMgbm9ybWFsaXplU2VhcmNoVGVybSgpIHdoaWNoIGNhbGxzIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuIFNlZSBzZWFyY2hVdGlscy50czoxNy0zMC4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9FbGVtZW50UXVlcnlTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdPcmNoZXN0cmF0b3Igc2VydmljZSAtIGRlbGVnYXRlcyB0byBGaWx0ZXJTZXJ2aWNlIHdoaWNoIHBlcmZvcm1zIFVuaWNvZGUgbm9ybWFsaXphdGlvbiB2aWEgbm9ybWFsaXplU2VhcmNoVGVybSgpLiBJbnB1dCBwcmUtbm9ybWFsaXplZCBhdCBNQ1AgbGF5ZXIuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvU29ydFNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ1NvcnRTZXJ2aWNlIHZhbGlkYXRlcyBzb3J0QnkgYWdhaW5zdCBlbnVtIHdoaXRlbGlzdCAoU29ydGFibGVGaWVsZCkgLSBubyBhcmJpdHJhcnkgc3RyaW5nIGlucHV0LiBzb3J0T3JkZXIgaXMgZW51bS12YWxpZGF0ZWQuIE5vIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBuZWVkZWQuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvKi50cycsXG4gICAgcmVhc29uOiAnUXVlcnkgc2VydmljZXMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIE1DUCBsYXllciBhbmQgdXNlIG5vcm1hbGl6ZVNlYXJjaFRlcm0oKSBmb3IgYWRkaXRpb25hbCBwcm90ZWN0aW9uLiBQUiAjNDYnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb3ZlcmFnZSBSZXBvcnQgRmlsZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICd0ZXN0L2NvdmVyYWdlLyoqLyonLFxuICAgIHJlYXNvbjogJ0NvdmVyYWdlIHJlcG9ydCBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQgYW5kIG5vdCBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICd0ZXN0cy9jb3ZlcmFnZS8qKi8qJyxcbiAgICByZWFzb246ICdDb3ZlcmFnZSByZXBvcnQgZmlsZXMgYXJlIGF1dG8tZ2VuZXJhdGVkIGFuZCBub3QgcGFydCBvZiB0aGUgYXBwbGljYXRpb24gY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovbGNvdi1yZXBvcnQvKiovKicsXG4gICAgcmVhc29uOiAnTENPViBjb3ZlcmFnZSByZXBvcnQgZmlsZXMgYXJlIGF1dG8tZ2VuZXJhdGVkIGFuZCBub3QgcGFydCBvZiB0aGUgYXBwbGljYXRpb24gY29kZSdcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRG9jdW1lbnRhdGlvbiBhbmQgTm9uLUNvZGUgRmlsZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICdkb2NzLyoqLyonLFxuICAgIHJlYXNvbjogJ0RvY3VtZW50YXRpb24gZmlsZXMgaW5jbHVkaW5nIFFBIG1ldHJpY3MgYW5kIHJlcG9ydHMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyoubWQnLFxuICAgIHJlYXNvbjogJ01hcmtkb3duIGRvY3VtZW50YXRpb24gZmlsZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyouanNvbicsXG4gICAgcmVhc29uOiAnSlNPTiBjb25maWd1cmF0aW9uIGFuZCBkYXRhIGZpbGVzIGRvIG5vdCBleGVjdXRlIGNvZGUnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ0xJQ0VOU0UnLFxuICAgIHJlYXNvbjogJ0xpY2Vuc2UgZmlsZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnLmdpdGlnbm9yZScsXG4gICAgcmVhc29uOiAnR2l0IGNvbmZpZ3VyYXRpb24gZmlsZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAncGFja2FnZS1sb2NrLmpzb24nLFxuICAgIHJlYXNvbjogJ05QTSBsb2NrIGZpbGUgLSBhdXRvLWdlbmVyYXRlZCwgbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi8qLnltbCcsXG4gICAgcmVhc29uOiAnWUFNTCBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBkYXRhLCBub3QgY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi55YW1sJyxcbiAgICByZWFzb246ICdZQU1MIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIGRhdGEsIG5vdCBjb2RlJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2VwdGVtYmVyIDIyIFNlc3Npb24gRG9jcyBSZXN0b3JhdGlvbiAtIFBSICMxMDgyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCB1c2luZyBzcGF3biB3aXRoIGhhcmRjb2RlZCBhcnJheSBhcmd1bWVudHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICd0ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWNvbXByZWhlbnNpdmUtdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3Rlc3RzL2V4cGVyaW1lbnRzL2NhcGFiaWxpdHktaW5kZXgtY29tcHJlaGVuc2l2ZS10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDMnLFxuICAgIGZpbGU6ICdzY3JpcHRzL3Rlc3QtY2FwYWJpbGl0eS1pbmRleC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBzY3JpcHQgd2l0aCBoYXJkY29kZWQgdGVzdCBwZXJzb25hIHBhdGhzIC0gbm90IHByb2R1Y3Rpb24gY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDMnLFxuICAgIGZpbGU6ICcqKi9zY3JpcHRzL3Rlc3QtY2FwYWJpbGl0eS1pbmRleC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBzY3JpcHQgd2l0aCBoYXJkY29kZWQgdGVzdCBwZXJzb25hIHBhdGhzIC0gbm90IHByb2R1Y3Rpb24gY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtMjItMDAxJyxcbiAgICBmaWxlOiAndGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIGhhcmRjb2RlZCB0ZXN0IHBhdGhzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtMjItMDAxJyxcbiAgICBmaWxlOiAnKiovdGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIGhhcmRjb2RlZCB0ZXN0IHBhdGhzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LW1lbW9yeS1lZGl0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgZm9yIG1lbW9yeSBlZGl0aW5nIC0gbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWVkaXQuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSBmb3IgbWVtb3J5IGVkaXRpbmcgLSBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG5cbiAgLy8gQWRkaXRpb25hbCBzdXBwcmVzc2lvbnMgZm9yIHJlbWFpbmluZyBpc3N1ZXNcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAndGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyBhdCBsaW5lIDI3OSAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3Rlc3RzL2V4cGVyaW1lbnRzL2NhcGFiaWxpdHktaW5kZXgtZG9ja2VyLXRlc3QuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSB1c2luZyBzcGF3biB3aXRoIGhhcmRjb2RlZCBhcnJheSBhcmd1bWVudHMgYXQgbGluZSAyNzkgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMScsXG4gICAgZmlsZTogJ3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCBsb2FkaW5nIHRlc3QgcGVyc29uYXMgd2l0aCBoYXJkY29kZWQgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMScsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCBsb2FkaW5nIHRlc3QgcGVyc29uYXMgd2l0aCBoYXJkY29kZWQgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gcGFja2FnZXMvc2FmZXR5IFN1cHByZXNzaW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0ludGVudGlvbmFsIGV4ZWNTeW5jIGZvciBjcm9zcy1wbGF0Zm9ybSBPUyBkaWFsb2dzLiBBbGwgdXNlciBpbnB1dCBpcyBwcm9wZXJseSBlc2NhcGVkIHVzaW5nIGVzY2FwZVNoZWxsQXJnIChVbml4KSBvciBCYXNlNjQgZW5jb2RpbmcgKFBvd2VyU2hlbGwpJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICcqKi9wYWNrYWdlcy9zYWZldHkvc3JjL0Rpc3BsYXlTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdJbnRlbnRpb25hbCBleGVjU3luYyBmb3IgY3Jvc3MtcGxhdGZvcm0gT1MgZGlhbG9ncy4gQWxsIHVzZXIgaW5wdXQgaXMgcHJvcGVybHkgZXNjYXBlZCB1c2luZyBlc2NhcGVTaGVsbEFyZyAoVW5peCkgb3IgQmFzZTY0IGVuY29kaW5nIChQb3dlclNoZWxsKSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdwYWNrYWdlcy9zYWZldHkvc3JjL0Rpc3BsYXlTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdEaXNwbGF5U2VydmljZSByZWNlaXZlcyBzYW5pdGl6ZWQgaW5wdXQgZnJvbSBUaWVyZWRTYWZldHlTZXJ2aWNlLiBVbmljb2RlIG5vcm1hbGl6YXRpb24gaGFwcGVucyBhdCB2YWxpZGF0aW9uIGJvdW5kYXJpZXMsIG5vdCBpbiBkaXNwbGF5IGxheWVyJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0Rpc3BsYXlTZXJ2aWNlIHJlY2VpdmVzIHNhbml0aXplZCBpbnB1dCBmcm9tIFRpZXJlZFNhZmV0eVNlcnZpY2UuIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBoYXBwZW5zIGF0IHZhbGlkYXRpb24gYm91bmRhcmllcywgbm90IGluIGRpc3BsYXkgbGF5ZXInXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAncGFja2FnZXMvc2FmZXR5L3NyYy9UaWVyZWRTYWZldHlTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdUaWVyZWRTYWZldHlTZXJ2aWNlIHZhbGlkYXRlcyBvcGVyYXRpb24gc2FmZXR5IGxldmVscywgbm90IHVzZXIgaW5wdXQuIElucHV0IHZhbGlkYXRpb24gd2l0aCBVbmljb2RlIG5vcm1hbGl6YXRpb24gaXMgaGFuZGxlZCBieSB1cHN0cmVhbSB2YWxpZGF0b3JzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3BhY2thZ2VzL3NhZmV0eS9zcmMvVGllcmVkU2FmZXR5U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnVGllcmVkU2FmZXR5U2VydmljZSB2YWxpZGF0ZXMgb3BlcmF0aW9uIHNhZmV0eSBsZXZlbHMsIG5vdCB1c2VyIGlucHV0LiBJbnB1dCB2YWxpZGF0aW9uIHdpdGggVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGhhbmRsZWQgYnkgdXBzdHJlYW0gdmFsaWRhdG9ycydcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIERvY2tlciBUb2tlbiBNZWFzdXJlbWVudCBTY3JpcHQgLSBQUiAjMjkyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnc2NyaXB0cy9tZWFzdXJlLWRvY2tlci10b2tlbnMudHMnLFxuICAgIHJlYXNvbjogJ0NvbW1hbmQgaW5qZWN0aW9uIG1pdGlnYXRlZDogaW50ZXJmYWNlTW9kZSBhbmQgZW5kcG9pbnRNb2RlIGFyZSB2YWxpZGF0ZWQgYWdhaW5zdCBWQUxJRF9JTlRFUkZBQ0VfTU9ERVMgYW5kIFZBTElEX0VORFBPSU5UX01PREVTIGFsbG93bGlzdHMgYmVmb3JlIHVzZSBpbiBzcGF3bigpLiBUeXBlU2NyaXB0IHR5cGVzIGFsc28gY29uc3RyYWluIHBhcmFtZXRlcnMgYXQgY29tcGlsZSB0aW1lLiBQUiAjMjkyJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICcqKi9zY3JpcHRzL21lYXN1cmUtZG9ja2VyLXRva2Vucy50cycsXG4gICAgcmVhc29uOiAnQ29tbWFuZCBpbmplY3Rpb24gbWl0aWdhdGVkOiBpbnRlcmZhY2VNb2RlIGFuZCBlbmRwb2ludE1vZGUgYXJlIHZhbGlkYXRlZCBhZ2FpbnN0IFZBTElEX0lOVEVSRkFDRV9NT0RFUyBhbmQgVkFMSURfRU5EUE9JTlRfTU9ERVMgYWxsb3dsaXN0cyBiZWZvcmUgdXNlIGluIHNwYXduKCkuIFR5cGVTY3JpcHQgdHlwZXMgYWxzbyBjb25zdHJhaW4gcGFyYW1ldGVycyBhdCBjb21waWxlIHRpbWUuIFBSICMyOTInXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBVbmlmaWVkIExvZ2dpbmcgU3lzdGVtIOKAlCBQUiAjNDcxXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2lua3MgcmVjZWl2ZSBwcmUtY29uc3RydWN0ZWQgVW5pZmllZExvZ0VudHJ5IG9iamVjdHMgZnJvbSBMb2dNYW5hZ2VyLlxuICAvLyBEYXRhIGVudGVycyB0aGUgcGlwZWxpbmUgdGhyb3VnaCBMb2dIb29rcyB3aGljaCBjcmVhdGVzIGVudHJpZXMgZnJvbVxuICAvLyBpbnRlcm5hbCBzeXN0ZW0gZXZlbnRzLiBNQ1BMb2dnZXIgc2FuaXRpemVzIHZpYSBzYW5pdGl6ZU1lc3NhZ2UoKSBhbmRcbiAgLy8gc2FuaXRpemVEYXRhKCkgYmVmb3JlIGVtaXR0aW5nLiBPdGhlciBzb3VyY2VzIChTZWN1cml0eU1vbml0b3IsXG4gIC8vIFBlcmZvcm1hbmNlTW9uaXRvciwgZXRjLikgZW1pdCBpbnRlcm5hbCBzeXN0ZW0gZGF0YSwgbm90IHVzZXIgaW5wdXQuXG4gIC8vIFRoZSBTU0Ugdmlld2VyIEhUTUwtZXNjYXBlcyBhbGwgZHluYW1pYyBjb250ZW50IHZpYSBlc2NIdG1sKCkvXG4gIC8vIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCkuXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2xvZ2dpbmcvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1B1cmUgdHlwZSBkZWZpbml0aW9ucyBhbmQgaW50ZXJmYWNlcyDigJQgbm8gZGF0YSBwcm9jZXNzaW5nIG9yIHVzZXIgaW5wdXQgaGFuZGxpbmcuIFBSICM0NzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2xvZ2dpbmcvc2lua3MvTWVtb3J5TG9nU2luay50cycsXG4gICAgcmVhc29uOiAnUmVjZWl2ZXMgcHJlLWNvbnN0cnVjdGVkIFVuaWZpZWRMb2dFbnRyeSBvYmplY3RzIGZyb20gTG9nTWFuYWdlci4gUXVlcnkgcGFyYW1ldGVycyBhcmUgdXNlZCBhcyByZWFkLW9ubHkgc3Vic3RyaW5nIGZpbHRlcnMsIG5vdCB3cml0dGVuIHRvIG91dHB1dC4gUFIgIzQ3MSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbG9nZ2luZy9zaW5rcy9GaWxlTG9nU2luay50cycsXG4gICAgcmVhc29uOiAnUmVjZWl2ZXMgcHJlLWZvcm1hdHRlZCBlbnRyaWVzIHZpYSBJTG9nRm9ybWF0dGVyLiBGaWxlIHBhdGhzIGJ1aWx0IGZyb20gaGFyZGNvZGVkIGNhdGVnb3J5IG5hbWVzICsgZGF0ZXMuIE1DUExvZ2dlciBzYW5pdGl6ZXMgdXBzdHJlYW0gdmlhIHNhbml0aXplTWVzc2FnZS9zYW5pdGl6ZURhdGE7IG90aGVyIHNvdXJjZXMgZW1pdCBpbnRlcm5hbCBzeXN0ZW0gZGF0YS4gUFIgIzQ3MSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3JvdXRlcy9sb2dSb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ0pTT04tc2VyaWFsaXplcyBwcmUtY29uc3RydWN0ZWQgVW5pZmllZExvZ0VudHJ5IG9iamVjdHMgb3ZlciBTU0UuIEFsbCBxdWVyeSBwYXJhbWV0ZXJzIGFyZSB2YWxpZGF0ZWQgc3RyaW5ncyBwYXNzZWQgdG8gTWVtb3J5TG9nU2luay5xdWVyeSgpLiBObyBIVE1MIHJlbmRlcmluZy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3N0b3JhZ2UvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBUeXBlLW9ubHkgaW50ZXJmYWNlIGRlY2xhcmF0aW9ucyAoU3RvcmFnZUl0ZW1NZXRhZGF0YSwgRWxlbWVudEluZGV4RW50cnksIE1hbmlmZXN0RGlmZlJlc3VsdCkuIE5vIGV4ZWN1dGFibGUgaW5wdXQtcHJvY2Vzc2luZyBjb2RlOyBVbmljb2RlIG5vcm1hbGl6YXRpb24gaXMgZW5mb3JjZWQgaW4gY29uY3JldGUgc3RvcmFnZSBwYXJzZXJzL2xheWVycy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3N0b3JhZ2UvSVN0b3JhZ2VCYWNrZW5kLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogSW50ZXJmYWNlIGNvbnRyYWN0IG9ubHkgZm9yIGJhY2tlbmQgYWJzdHJhY3Rpb24uIE5vIHJ1bnRpbWUgdXNlci1pbnB1dCBoYW5kbGluZyBpbiB0aGlzIGZpbGU7IG5vcm1hbGl6YXRpb24gaXMgZW5mb3JjZWQgYnkgaW1wbGVtZW50aW5nIHN0b3JhZ2UgbGF5ZXJzIGFuZCB2YWxpZGF0b3JzLidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFZlcmlmaWNhdGlvbk5vdGlmaWVyIEZhbHNlIFBvc2l0aXZlcyDigJQgSXNzdWUgIzUzN1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9WZXJpZmljYXRpb25Ob3RpZmllci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IExpbmVzIDExNywgMTMyLCAxNDUgdXNlIHNwYXduKCkgd2l0aCBhcnJheSBhcmd1bWVudHMgKG5vIHNoZWxsIGludm9jYXRpb24pLiB6ZW5pdHkva2RpYWxvZy94bWVzc2FnZSBhcmUgZGlzcGxheS1vbmx5IHRvb2xzIHRoYXQgcmVuZGVyIHRleHQgaW4gR1VJIGRpYWxvZ3Mgd2l0aG91dCBpbnRlcnByZXRpbmcgY29udGVudCBhcyBjb2RlLiBhZ2VudE5hbWUgKGZyb20gTUNQIHBhcmFtcykgYW5kIGNvZGUgKGNyeXB0b2dyYXBoaWMgYWxwaGFudW1lcmljKSBmbG93IGludG8gZGlzcGxheSB0ZXh0IG9ubHkuIFNlZSBJc3N1ZSAjNTM3IGV2aWRlbmNlIHRyYWNlLidcbiAgfSxcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFdlYiBVSSBDbGllbnQtU2lkZSBGYWxzZSBQb3NpdGl2ZXMg4oCUIFJDMSBTZWN1cml0eSBBdWRpdFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvYXBwLmpzJyxcbiAgICByZWFzb246ICdDbGllbnQtc2lkZSBicm93c2VyIEphdmFTY3JpcHQuIFNlY3VyZVlhbWxQYXJzZXIgaXMgYSBOb2RlLmpzIG1vZHVsZSB1bmF2YWlsYWJsZSBpbiBicm93c2VyIGNvbnRleHQuIHNhZmVQYXJzZVlhbWwoKSB3cmFwcGVyIHVzZXMgQ09SRV9TQ0hFTUEgKHNhZmUsIG5vIGN1c3RvbSB0eXBlcykgd2l0aCA1MTJLQiBzaXplIGxpbWl0LiBEYXRhIHNlcnZlZCBmcm9tIGxvY2FsaG9zdCBvciB0cnVzdGVkIEdpdEh1YiBjb2xsZWN0aW9uIEFQSS4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvYXBwLmpzJyxcbiAgICByZWFzb246ICdDbGllbnQtc2lkZSBicm93c2VyIEphdmFTY3JpcHQuIFVuaWNvZGVWYWxpZGF0b3IgaXMgYSBOb2RlLmpzIG1vZHVsZSB1bmF2YWlsYWJsZSBpbiBicm93c2VyIGNvbnRleHQuIElucHV0IHNlcnZlZCBmcm9tIERvbGxob3VzZU1DUCBzZXJ2ZXIgd2hpY2ggbm9ybWFsaXplcyBiZWZvcmUgc2VydmluZy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvY29uc29sZUF1dGguanMnLFxuICAgIHJlYXNvbjogJ0NsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdCAoIzE3ODAgY29uc29sZSBhdXRoIGhlbHBlcikuIFVuaWNvZGVWYWxpZGF0b3IgaXMgYSBOb2RlLmpzIG1vZHVsZSB1bmF2YWlsYWJsZSBpbiBicm93c2VyIGNvbnRleHQuIFRva2VuIGlzIHJlYWQgZnJvbSBhIHNlcnZlci1pbmplY3RlZCBtZXRhIHRhZywgbm9ybWFsaXplZCB2aWEgbmF0aXZlIFN0cmluZy5wcm90b3R5cGUubm9ybWFsaXplKFxcJ05GQ1xcJyksIGFuZCByZWplY3RlZCB1bmxlc3MgaXQgbWF0Y2hlcyAvXlswLTlhLWZdezY0fSQvIChzdHJpY3QgaGV4IGZvcm1hdCkuIFRoZSBhdXRob3JpdGF0aXZlIG5vcm1hbGl6YXRpb24gKyB2YWxpZGF0aW9uIGhhcHBlbnMgaW4gdGhlIG1pZGRsZXdhcmUgc2FuaXRpemVQcmVzZW50ZWRUb2tlbigpIGFuZCBjb25zb2xlVG9rZW4udmVyaWZ5KCkgb24gdGhlIHNlcnZlciBzaWRlIGJlZm9yZSBhbnkgY29tcGFyaXNvbiBydW5zLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3NlcnZlci50cycsXG4gICAgcmVhc29uOiAnTkZDIG5vcm1hbGl6YXRpb24gYWRkZWQgdG8gcmVxLnBhdGggaW4gU1BBIGZhbGxiYWNrIGhhbmRsZXIgKGxpbmUgMTgwKS4gRmlsZS1sZXZlbCBzY2FubmVyIGZsYWdzIGRlc3BpdGUgcGVyLWlucHV0IGZpeC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9yb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIHZpYSBub3JtYWxpemVJbnB1dCgpIGFwcGxpZWQgdG8gYWxsIHJlcS5wYXJhbXMuIEZpbGUtbGV2ZWwgc2Nhbm5lciBmbGFncyBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FnZW50U2tpbGxDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIGFkZGVkIHRvIGJvdGggY29udmVydEFnZW50VG9Eb2xsaG91c2UoKSBhbmQgY29udmVydERvbGxob3VzZVRvQWdlbnQoKSBlbnRyeSBwb2ludHMuIEZpbGUtbGV2ZWwgc2Nhbm5lciBmbGFncyBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzL3Blcm1pc3Npb25Sb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIGFwcGxpZWQgdG8gdG9vbF9uYW1lIGFuZCBwbGF0Zm9ybSBpbnB1dHMgYXQgSFRUUCBib3VuZGFyeSBiZWZvcmUgZm9yd2FyZGluZyB0byBNQ1BBUUxIYW5kbGVyLmhhbmRsZVJlYWQoKS4gR0VUIC9wZXJtaXNzaW9ucy9zdGF0dXMgaGFzIG5vIHVzZXItc3VwcGxpZWQgc3RyaW5nIHBhcmFtZXRlcnMuIFNjYW5uZXIgbWF5IGZsYWcgZmlsZS1sZXZlbCBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9XG5dO1xuXG4vKipcbiAqIFZhbGlkYXRlIHN1cHByZXNzaW9uIGNvbmZpZ3VyYXRpb24gYXQgc3RhcnR1cFxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTdXBwcmVzc2lvbnMoKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHNlZW5QYXR0ZXJucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBcbiAgZm9yIChjb25zdCBzdXBwcmVzc2lvbiBvZiBzdXBwcmVzc2lvbnMpIHtcbiAgICAvLyBDaGVjayBmb3IgZW1wdHkgcmVhc29uc1xuICAgIGlmICghc3VwcHJlc3Npb24ucmVhc29uIHx8IHN1cHByZXNzaW9uLnJlYXNvbi50cmltKCkubGVuZ3RoIDwgMTApIHtcbiAgICAgIGVycm9ycy5wdXNoKGBTdXBwcmVzc2lvbiBmb3IgJHtzdXBwcmVzc2lvbi5ydWxlfSBoYXMgaW5zdWZmaWNpZW50IHJlYXNvbmApO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgdmFsaWQgcnVsZSBwYXR0ZXJuc1xuICAgIGNvbnN0IHJ1bGVQYXR0ZXJuID0gL14oRE1DUC1TRUMtXFxkezN9fE9XQVNQLVtBLVpdXFxkezJ9LVxcZHszfXxDV0UtXFxkKy1cXGR7M318XFwqKSQvO1xuICAgIGlmICghc3VwcHJlc3Npb24ucnVsZS5tYXRjaChydWxlUGF0dGVybikpIHtcbiAgICAgIGVycm9ycy5wdXNoKGBJbnZhbGlkIHJ1bGUgcGF0dGVybjogJHtzdXBwcmVzc2lvbi5ydWxlfWApO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBmb3IgZHVwbGljYXRlIHN1cHByZXNzaW9uc1xuICAgIGNvbnN0IGtleSA9IGAke3N1cHByZXNzaW9uLnJ1bGV9OiR7c3VwcHJlc3Npb24uZmlsZSB8fCAnKid9YDtcbiAgICBpZiAoc2VlblBhdHRlcm5zLmhhcyhrZXkpKSB7XG4gICAgICBlcnJvcnMucHVzaChgRHVwbGljYXRlIHN1cHByZXNzaW9uOiAke2tleX1gKTtcbiAgICB9XG4gICAgc2VlblBhdHRlcm5zLmFkZChrZXkpO1xuICAgIFxuICAgIC8vIFZhbGlkYXRlIGdsb2IgcGF0dGVybnNcbiAgICBpZiAoc3VwcHJlc3Npb24uZmlsZT8uaW5jbHVkZXMoJyoqJykgJiYgIXN1cHByZXNzaW9uLmZpbGUuaW5jbHVkZXMoJyoqLycpKSB7XG4gICAgICBlcnJvcnMucHVzaChgSW52YWxpZCBnbG9iIHBhdHRlcm4gaW4gJHtzdXBwcmVzc2lvbi5maWxlfSAtICoqIG11c3QgYmUgZm9sbG93ZWQgYnkgL2ApO1xuICAgIH1cbiAgfVxuICBcbiAgcmV0dXJuIGVycm9ycztcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGdsb2IgcGF0dGVybiB0byByZWdleCBwYXR0ZXJuIHNhZmVseVxuICogVXNpbmcgYSBwcm9wZXIgZ2xvYi10by1yZWdleCBjb252ZXJzaW9uIHRoYXQgaGFuZGxlcyBhbGwgZWRnZSBjYXNlc1xuICovXG5mdW5jdGlvbiBnbG9iVG9SZWdleChnbG9iOiBzdHJpbmcpOiBSZWdFeHAge1xuICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXRSZWdleChnbG9iKTtcbiAgaWYgKGNhY2hlZCkgcmV0dXJuIGNhY2hlZDtcbiAgXG4gIC8vIFNwZWNpYWwgY2FzZTogaWYgZ2xvYiBzdGFydHMgd2l0aCAqLCBpdCBzaG91bGQgbWF0Y2ggYW55dGhpbmcgYXQgdGhlIGJlZ2lubmluZ1xuICBsZXQgcHJvY2Vzc2VkR2xvYiA9IGdsb2I7XG4gIGxldCBwcmVmaXggPSAnJztcbiAgaWYgKGdsb2Iuc3RhcnRzV2l0aCgnKicpICYmICFnbG9iLnN0YXJ0c1dpdGgoJyoqJykpIHtcbiAgICBwcmVmaXggPSAnKD86LiovKT8nOyAgLy8gT3B0aW9uYWwgcGF0aCBwcmVmaXhcbiAgICBwcm9jZXNzZWRHbG9iID0gZ2xvYi5zdWJzdHJpbmcoMSk7XG4gIH1cbiAgXG4gIC8vIEVzY2FwZSBhbGwgcmVnZXggc3BlY2lhbCBjaGFyYWN0ZXJzIGV4Y2VwdCAqIGFuZCAvXG4gIC8vIEZpeGVkOiBQcm9wZXJseSBlc2NhcGUgYmFja3NsYXNoZXMgYW5kIG90aGVyIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVyc1xuICBsZXQgcGF0dGVybiA9IHByb2Nlc3NlZEdsb2IucmVwbGFjZUFsbCgvW1xcXFxeJC4oKSs/e31bXFxdfF0vZywgJ1xcXFwkJicpO1xuXG4gIC8vIEhhbmRsZSBnbG9iIHBhdHRlcm5zIGluIGNvcnJlY3Qgb3JkZXJcbiAgLy8gUmVwbGFjZSAqKiBiZWZvcmUgKiB0byBhdm9pZCBjb25mbGljdHNcbiAgcGF0dGVybiA9IHBhdHRlcm5cbiAgICAucmVwbGFjZUFsbCgnKionLCAnPDxHTE9CU1RBUj4+JykgICAgIC8vIFRlbXBvcmFyeSBwbGFjZWhvbGRlciBmb3IgKipcbiAgICAucmVwbGFjZUFsbCgnKicsICc8PFNUQVI+PicpICAgICAgICAgICAgLy8gVGVtcG9yYXJ5IHBsYWNlaG9sZGVyIGZvciAqXG4gICAgLnJlcGxhY2VBbGwoJzw8R0xPQlNUQVI+Pi8nLCAnKD86LiovKT8nKSAvLyAqKi8gbWF0Y2hlcyBhbnkgbnVtYmVyIG9mIGRpcmVjdG9yaWVzIGluY2x1ZGluZyBub25lXG4gICAgLnJlcGxhY2VBbGwoJzw8R0xPQlNUQVI+PicsICcuKicpICAgICAgIC8vICoqIG1hdGNoZXMgYW55dGhpbmdcbiAgICAucmVwbGFjZUFsbCgnPDxTVEFSPj4nLCAnW14vXSonKSAgICAgICAgLy8gKiBtYXRjaGVzIGFueXRoaW5nIGV4Y2VwdCBkaXJlY3Rvcnkgc2VwYXJhdG9yXG4gICAgLnJlcGxhY2VBbGwoJy8nLCAnXFxcXC8nKTsgICAgICAgICAgICAgICAgLy8gRXNjYXBlIGZvcndhcmQgc2xhc2hlc1xuICBcbiAgLy8gQ29tYmluZSBwcmVmaXggYW5kIHBhdHRlcm5cbiAgY29uc3QgZnVsbFBhdHRlcm4gPSBwcmVmaXggKyBwYXR0ZXJuO1xuICBcbiAgLy8gQWRkIGFuY2hvcnMgdG8gZW5zdXJlIGZ1bGwgcGF0aCBtYXRjaFxuICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYF4ke2Z1bGxQYXR0ZXJufSRgKTtcbiAgXG4gIC8vIENhY2hlIHRoZSBjb21waWxlZCByZWdleFxuICBjYWNoZS5zZXRSZWdleChnbG9iLCByZWdleCk7XG4gIFxuICByZXR1cm4gcmVnZXg7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGZpbGUgcGF0aCBmb3IgY29uc2lzdGVudCBtYXRjaGluZ1xuICogSGFuZGxlcyBib3RoIGFic29sdXRlIGFuZCByZWxhdGl2ZSBwYXRocyBhY3Jvc3MgZGlmZmVyZW50IHBsYXRmb3Jtc1xuICovXG5mdW5jdGlvbiBub3JtYWxpemVQYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBDb252ZXJ0IGJhY2tzbGFzaGVzIHRvIGZvcndhcmQgc2xhc2hlcyBmb3IgV2luZG93cyBwYXRoc1xuICBsZXQgbm9ybWFsaXplZCA9IGZpbGVQYXRoLnJlcGxhY2VBbGwoJ1xcXFwnLCAnLycpO1xuXG4gIC8vIFJlbW92ZSBkdXBsaWNhdGUgc2xhc2hlc1xuICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5yZXBsYWNlQWxsKC9cXC8rL2csICcvJyk7XG4gIFxuICAvLyBSZW1vdmUgdHJhaWxpbmcgc2xhc2ggaWYgcHJlc2VudFxuICBpZiAobm9ybWFsaXplZC5lbmRzV2l0aCgnLycpICYmIG5vcm1hbGl6ZWQubGVuZ3RoID4gMSkge1xuICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnNsaWNlKDAsIC0xKTtcbiAgfVxuICBcbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG5cbi8qKlxuICogRXh0cmFjdCByZWxhdGl2ZSBwYXRoIGZyb20gYWJzb2x1dGUgcGF0aFxuICogSGFuZGxlcyB2YXJpb3VzIENJL0NEIGFuZCBsb2NhbCBkZXZlbG9wbWVudCBwYXRoIGZvcm1hdHNcbiAqL1xuZnVuY3Rpb24gZ2V0UmVsYXRpdmVQYXRoKGFic29sdXRlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVBhdGgoYWJzb2x1dGVQYXRoKTtcbiAgXG4gIC8vIElmIGFscmVhZHkgYSByZWxhdGl2ZSBwYXRoLCByZXR1cm4gYXMtaXNcbiAgaWYgKCFub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSAmJiAhbm9ybWFsaXplZC5tYXRjaCgvXltBLVpdOi9pKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkO1xuICB9XG4gIFxuICAvLyBEZWZpbmUgY29tbW9uIHByb2plY3Qgc291cmNlIGRpcmVjdG9yaWVzXG4gIGNvbnN0IHByb2plY3REaXJzID0gWydzcmMvJywgJ19fdGVzdHNfXy8nLCAnc2NyaXB0cy8nLCAnZG9jcy8nLCAndGVzdHMvJywgJ3Rlc3QtYXJjaGl2ZS8nLCAnbGliLyddO1xuICBcbiAgLy8gRmluZCB0aGUgcG9zaXRpb24gb2YgY29tbW9uIHByb2plY3QgZGlyZWN0b3JpZXMgaW4gdGhlIHBhdGhcbiAgbGV0IGJlc3RNYXRjaCA9IHsgaW5kZXg6IC0xLCBkaXI6ICcnLCByZWxhdGl2ZVBhdGg6ICcnIH07XG4gIFxuICBmb3IgKGNvbnN0IGRpciBvZiBwcm9qZWN0RGlycykge1xuICAgIC8vIExvb2sgZm9yIC9kaXIgcGF0dGVybiAod2l0aCBsZWFkaW5nIHNsYXNoIHRvIGF2b2lkIGZhbHNlIG1hdGNoZXMpXG4gICAgY29uc3Qgc2VhcmNoUGF0dGVybiA9IGAvJHtkaXJ9YDtcbiAgICBjb25zdCBpbmRleCA9IG5vcm1hbGl6ZWQubGFzdEluZGV4T2Yoc2VhcmNoUGF0dGVybik7XG4gICAgXG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIC8vIEV4dHJhY3QgZXZlcnl0aGluZyBhZnRlciB0aGUgcGFyZW50IG9mIHRoaXMgZGlyZWN0b3J5XG4gICAgICAvLyBGb3IgZXhhbXBsZTogL2hvbWUvdXNlci9wcm9qZWN0L3NyYy9maWxlLnRzIC0+IHNyYy9maWxlLnRzXG4gICAgICBjb25zdCBkaXJTdGFydEluZGV4ID0gaW5kZXggKyAxOyAvLyBTa2lwIHRoZSBsZWFkaW5nIHNsYXNoXG4gICAgICBjb25zdCByZWxhdGl2ZVBhdGggPSBub3JtYWxpemVkLnN1YnN0cmluZyhkaXJTdGFydEluZGV4KTtcbiAgICAgIFxuICAgICAgLy8gVmVyaWZ5IHRoaXMgbG9va3MgbGlrZSBhIHZhbGlkIHByb2plY3QgZmlsZVxuICAgICAgaWYgKHJlbGF0aXZlUGF0aC5zdGFydHNXaXRoKGRpcikgJiYgcmVsYXRpdmVQYXRoLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgbWF0Y2ggdGhhdCBhcHBlYXJzIGxhdGVzdCBpbiB0aGUgcGF0aCAobW9zdCBzcGVjaWZpYylcbiAgICAgICAgaWYgKGluZGV4ID4gYmVzdE1hdGNoLmluZGV4KSB7XG4gICAgICAgICAgYmVzdE1hdGNoID0geyBpbmRleCwgZGlyLCByZWxhdGl2ZVBhdGggfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLy8gSWYgd2UgZm91bmQgYSBtYXRjaCwgcmV0dXJuIGl0XG4gIGlmIChiZXN0TWF0Y2guaW5kZXggPj0gMCkge1xuICAgIHJldHVybiBiZXN0TWF0Y2gucmVsYXRpdmVQYXRoO1xuICB9XG4gIFxuICAvLyBGYWxsYmFjazogVHJ5IHRvIGZpbmQgY29tbW9uIGZpbGUgcGF0dGVybnMgdGhhdCBpbmRpY2F0ZSBwcm9qZWN0IGZpbGVzXG4gIGNvbnN0IGZpbGVQYXR0ZXJucyA9IFtcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLltqdF1zeD8kLyxcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLmpzb24kLyxcbiAgICAvXFwvKHNyY3xfX3Rlc3RzX198c2NyaXB0c3x0ZXN0fHRlc3RzfGxpYilcXC8uKlxcLnlhP21sJC8sXG4gICAgL1xcL3BhY2thZ2VcXC5qc29uJC8sXG4gICAgL1xcL3BhY2thZ2UtbG9ja1xcLmpzb24kLyxcbiAgICAvXFwvdHNjb25maWcuKlxcLmpzb24kLyxcbiAgICAvXFwvXFwuLipyY1xcLmpzb24kLyAgLy8gLmVzbGludHJjLmpzb24sIGV0Yy5cbiAgXTtcbiAgXG4gIGZvciAoY29uc3QgcGF0dGVybiBvZiBmaWxlUGF0dGVybnMpIHtcbiAgICBjb25zdCBtYXRjaCA9IG5vcm1hbGl6ZWQubWF0Y2gocGF0dGVybik7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICAvLyBGaW5kIHdoZXJlIHRoZSBtYXRjaCBzdGFydHMgYW5kIGV4dHJhY3QgZnJvbSB0aGVyZVxuICAgICAgY29uc3QgbWF0Y2hJbmRleCA9IG5vcm1hbGl6ZWQuaW5kZXhPZihtYXRjaFswXSk7XG4gICAgICBpZiAobWF0Y2hJbmRleCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkLnN1YnN0cmluZyhtYXRjaEluZGV4ICsgMSk7IC8vIFNraXAgbGVhZGluZyAvXG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBMYXN0IHJlc29ydDogaWYgcGF0aCBjb250YWlucyBjb21tb24gZXh0ZW5zaW9ucywgdHJ5IHRvIGV4dHJhY3QgYSByZWFzb25hYmxlIHJlbGF0aXZlIHBhdGhcbiAgaWYgKG5vcm1hbGl6ZWQubWF0Y2goL1xcLih0c3xqc3x0c3h8anN4fGpzb258eWFtbHx5bWwpJC8pKSB7XG4gICAgLy8gRmluZCB0aGUgbGFzdCBzZWdtZW50IHRoYXQgbG9va3MgbGlrZSBhIHByb2plY3QgZGlyZWN0b3J5XG4gICAgY29uc3Qgc2VnbWVudHMgPSBub3JtYWxpemVkLnNwbGl0KCcvJyk7XG4gICAgZm9yIChsZXQgaSA9IHNlZ21lbnRzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBpZiAocHJvamVjdERpcnMuc29tZShkaXIgPT4gZGlyLnN0YXJ0c1dpdGgoc2VnbWVudHNbaV0pKSkge1xuICAgICAgICByZXR1cm4gc2VnbWVudHMuc2xpY2UoaSkuam9pbignLycpO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBGb3Igcm9vdC1sZXZlbCBmaWxlcyBsaWtlIHBhY2thZ2UtbG9jay5qc29uLCBqdXN0IHJldHVybiB0aGUgZmlsZW5hbWVcbiAgICBjb25zdCBmaWxlbmFtZSA9IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChmaWxlbmFtZSAmJiBmaWxlbmFtZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gZmlsZW5hbWU7XG4gICAgfVxuICB9XG4gIFxuICAvLyBSZXR1cm4gdGhlIG5vcm1hbGl6ZWQgcGF0aCBpZiB3ZSBjYW4ndCBleHRyYWN0IHJlbGF0aXZlXG4gIHJldHVybiBub3JtYWxpemVkO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmluZGluZyBzaG91bGQgYmUgc3VwcHJlc3NlZFxuICogT3B0aW1pemVkIHdpdGggY2FjaGluZyBhbmQgZWFybHkgcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkU3VwcHJlc3MocnVsZUlkOiBzdHJpbmcsIGZpbGVQYXRoPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICghZmlsZVBhdGgpIHJldHVybiBmYWxzZTtcbiAgXG4gIC8vIE5vcm1hbGl6ZSBwYXRocyBmb3IgY29uc2lzdGVudCBtYXRjaGluZ1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IG5vcm1hbGl6ZVBhdGgoZmlsZVBhdGgpO1xuICBjb25zdCByZWxhdGl2ZVBhdGggPSBnZXRSZWxhdGl2ZVBhdGgobm9ybWFsaXplZFBhdGgpO1xuICBcbiAgLy8gQ2hlY2sgY2FjaGUgZmlyc3RcbiAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0KHJ1bGVJZCwgcmVsYXRpdmVQYXRoKTtcbiAgaWYgKGNhY2hlZCAhPT0gdW5kZWZpbmVkKSByZXR1cm4gY2FjaGVkO1xuICBcbiAgLy8gUHJvY2VzcyBzdXBwcmVzc2lvbnMgd2l0aCBlYXJseSByZXR1cm5zXG4gIGZvciAoY29uc3Qgc3VwcHJlc3Npb24gb2Ygc3VwcHJlc3Npb25zKSB7XG4gICAgLy8gU2tpcCBpZiBydWxlIGRvZXNuJ3QgbWF0Y2hcbiAgICBpZiAoc3VwcHJlc3Npb24ucnVsZSAhPT0gJyonICYmIHN1cHByZXNzaW9uLnJ1bGUgIT09IHJ1bGVJZCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIFxuICAgIC8vIEhhbmRsZSBnbG9iYWwgc3VwcHJlc3Npb25zIChubyBmaWxlIHNwZWNpZmllZClcbiAgICBpZiAoIXN1cHByZXNzaW9uLmZpbGUpIHtcbiAgICAgIGNhY2hlLnNldChydWxlSWQsIHJlbGF0aXZlUGF0aCwgdHJ1ZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2hlY2sgZXhhY3QgZmlsZSBtYXRjaCAobW9zdCBjb21tb24gY2FzZSlcbiAgICBpZiAoc3VwcHJlc3Npb24uZmlsZSA9PT0gcmVsYXRpdmVQYXRoIHx8IHN1cHByZXNzaW9uLmZpbGUgPT09IG5vcm1hbGl6ZWRQYXRoKSB7XG4gICAgICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIHBhdHRlcm4gbWF0Y2ggb25seSBpZiBmaWxlIGNvbnRhaW5zIHdpbGRjYXJkc1xuICAgIGlmIChzdXBwcmVzc2lvbi5maWxlLmluY2x1ZGVzKCcqJykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gZ2xvYlRvUmVnZXgoc3VwcHJlc3Npb24uZmlsZSk7XG4gICAgICAgIGlmIChyZWdleC50ZXN0KHJlbGF0aXZlUGF0aCkgfHwgcmVnZXgudGVzdChub3JtYWxpemVkUGF0aCkpIHtcbiAgICAgICAgICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIHRydWUpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoYEludmFsaWQgc3VwcHJlc3Npb24gcGF0dGVybiBcIiR7c3VwcHJlc3Npb24uZmlsZX1cIjpgLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIFxuICAvLyBOb3Qgc3VwcHJlc3NlZFxuICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIGZhbHNlKTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIENsZWFyIHN1cHByZXNzaW9uIGNhY2hlICh1c2VmdWwgZm9yIHRlc3RpbmcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclN1cHByZXNzaW9uQ2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlLmNsZWFyKCk7XG59XG5cbi8qKlxuICogR2V0IHN1cHByZXNzaW9uIHN0YXRpc3RpY3MgZm9yIHJlcG9ydGluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3VwcHJlc3Npb25TdGF0cygpOiB7IFxuICB0b3RhbDogbnVtYmVyOyBcbiAgYnlSdWxlOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xuICBieUNhdGVnb3J5OiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+O1xufSB7XG4gIGNvbnN0IHN0YXRzID0ge1xuICAgIHRvdGFsOiBzdXBwcmVzc2lvbnMubGVuZ3RoLFxuICAgIGJ5UnVsZToge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPixcbiAgICBieUNhdGVnb3J5OiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+XG4gIH07XG4gIFxuICBmb3IgKGNvbnN0IHN1cHByZXNzaW9uIG9mIHN1cHByZXNzaW9ucykge1xuICAgIC8vIENvdW50IGJ5IHJ1bGVcbiAgICBzdGF0cy5ieVJ1bGVbc3VwcHJlc3Npb24ucnVsZV0gPSAoc3RhdHMuYnlSdWxlW3N1cHByZXNzaW9uLnJ1bGVdIHx8IDApICsgMTtcbiAgICBcbiAgICAvLyBDb3VudCBieSBjYXRlZ29yeSAoZXh0cmFjdCBmcm9tIHJ1bGUgcHJlZml4KVxuICAgIGNvbnN0IGNhdGVnb3J5ID0gc3VwcHJlc3Npb24ucnVsZS5zcGxpdCgnLScpWzBdO1xuICAgIHN0YXRzLmJ5Q2F0ZWdvcnlbY2F0ZWdvcnldID0gKHN0YXRzLmJ5Q2F0ZWdvcnlbY2F0ZWdvcnldIHx8IDApICsgMTtcbiAgfVxuICBcbiAgcmV0dXJuIHN0YXRzO1xufVxuXG4vLyBWYWxpZGF0ZSBzdXBwcmVzc2lvbnMgb24gbW9kdWxlIGxvYWRcbmNvbnN0IHZhbGlkYXRpb25FcnJvcnMgPSB2YWxpZGF0ZVN1cHByZXNzaW9ucygpO1xuaWYgKHZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMCkge1xuICBsb2dnZXIud2FybignU3VwcHJlc3Npb24gY29uZmlndXJhdGlvbiB3YXJuaW5nczonLCB2YWxpZGF0aW9uRXJyb3JzKTtcbn1cbiJdfQ==
|
|
1341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcHJlc3Npb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlY3VyaXR5L2F1ZGl0L2NvbmZpZy9zdXBwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRbEQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQjtJQUNaLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUNuQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFL0MsS0FBSztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxRQUFnQjtRQUMxQyxPQUFPLEdBQUcsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxHQUFHLENBQUMsTUFBYyxFQUFFLFFBQWdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUFlLEVBQUUsS0FBYTtRQUNyQyxJQUFJLENB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b24gQ29uZmlndXJhdGlvblxuICogXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgc3VwcHJlc3Npb24gcnVsZXMgZm9yIGZhbHNlIHBvc2l0aXZlcyBpbiB0aGUgc2VjdXJpdHkgYXVkaXQuXG4gKiBFYWNoIHN1cHByZXNzaW9uIHNob3VsZCBiZSB3ZWxsLWRvY3VtZW50ZWQgd2l0aCBhIGNsZWFyIHJlYXNvbi5cbiAqL1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9sb2dnZXIuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN1cHByZXNzaW9uIHtcbiAgcnVsZTogc3RyaW5nO1xuICBmaWxlPzogc3RyaW5nO1xuICByZWFzb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdXBwcmVzc2lvbiBjYWNoZSBmb3IgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uXG4gKi9cbmNsYXNzIFN1cHByZXNzaW9uQ2FjaGUge1xuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVnZXhDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBSZWdFeHA+KCk7XG4gIFxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gICAgdGhpcy5yZWdleENhY2hlLmNsZWFyKCk7XG4gIH1cbiAgXG4gIGdldENhY2hlS2V5KHJ1bGVJZDogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7cnVsZUlkfTo6JHtmaWxlUGF0aH1gO1xuICB9XG4gIFxuICBnZXQocnVsZUlkOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQodGhpcy5nZXRDYWNoZUtleShydWxlSWQsIGZpbGVQYXRoKSk7XG4gIH1cbiAgXG4gIHNldChydWxlSWQ6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNhY2hlLnNldCh0aGlzLmdldENhY2hlS2V5KHJ1bGVJZCwgZmlsZVBhdGgpLCB2YWx1ZSk7XG4gIH1cbiAgXG4gIGdldFJlZ2V4KHBhdHRlcm46IHN0cmluZyk6IFJlZ0V4cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucmVnZXhDYWNoZS5nZXQocGF0dGVybik7XG4gIH1cbiAgXG4gIHNldFJlZ2V4KHBhdHRlcm46IHN0cmluZywgcmVnZXg6IFJlZ0V4cCk6IHZvaWQge1xuICAgIHRoaXMucmVnZXhDYWNoZS5zZXQocGF0dGVybiwgcmVnZXgpO1xuICB9XG59XG5cbmNvbnN0IGNhY2hlID0gbmV3IFN1cHByZXNzaW9uQ2FjaGUoKTtcblxuZXhwb3J0IGNvbnN0IHN1cHByZXNzaW9uczogU3VwcHJlc3Npb25bXSA9IFtcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTUUwgSW5qZWN0aW9uIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ3NyYy91cGRhdGUvVXBkYXRlTWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnRmFsc2UgcG9zaXRpdmUgLSBcIlVwZGF0ZSBGYWlsZWRcIiBpcyBhIFVJIG1lc3NhZ2UsIG5vdCBTUUwuIFRoZSBjb2RlYmFzZSBkb2VzIG5vdCB1c2UgU1FMLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtODktMDAxJyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL21lbW9yaWVzL01lbW9yeU1hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBMaW5lIDEwMjQgaXMgYSBsb2dnZXIuZXJyb3IoKSBjYWxsIGZvcm1hdHRpbmcgYW4gZXJyb3IgbWVzc2FnZSB3aXRoIHN0cmluZyBjb25jYXRlbmF0aW9uLiBUaGlzIGlzIG5vdCBhIFNRTCBxdWVyeSAtIHRoZSBjb2RlYmFzZSBkb2VzIG5vdCB1c2UgU1FMLiBUaGUgc3RyaW5nIGNvbmNhdGVuYXRpb24gYnVpbGRzIGEgdXNlci1mYWNpbmcgZXJyb3IgbWVzc2FnZSBmb3IgZGVsZXRpb24gZmFpbHVyZXMuIFBSICM3J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9tZXRyaWNzLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQnJvd3Nlci1zaWRlIERhdGUudG9Mb2NhbGVUaW1lU3RyaW5nKCkgY29uY2F0ZW5hdGlvbiBmb3IgZGlzcGxheSBsYWJlbC4gTm90IFNRTCDigJQgdGhlIGNvZGViYXNlIGRvZXMgbm90IHVzZSBTUUwuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9zZWN1cml0eS5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEhUTUwgc3RyaW5nIGNvbmNhdGVuYXRpb24gYnVpbGRpbmcgRE9NIG1hcmt1cCBmb3IgdGhlIEF1dGggdGFiLiBBbGwgdmFsdWVzIEhUTUwtZXNjYXBlZCB2aWEgZXNjKCkgaGVscGVyLiBOb3QgU1FMIOKAlCB0aGUgY29kZWJhc2UgZG9lcyBub3QgdXNlIFNRTC4gUFIgIzE3OTEnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBNZXRyaWNzICYgV2ViIENvbnNvbGUgRmFsc2UgUG9zaXRpdmVzXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvbWV0cmljcy9zaW5rcy9NZW1vcnlNZXRyaWNzU2luay50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEludGVybmFsIG1ldHJpY3Mgc3RvcmFnZSDigJQgZG9lcyBub3QgcHJvY2VzcyB1c2VyIGlucHV0IGRpcmVjdGx5LiBNZXRyaWMgbmFtZXMgYW5kIHNvdXJjZXMgYXJlIHNlcnZlci1nZW5lcmF0ZWQgY29uc3RhbnRzLiBJbnB1dCBub3JtYWxpemF0aW9uIGlzIGhhbmRsZWQgYXQgdGhlIHJvdXRlIGhhbmRsZXIgYm91bmRhcnkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9tZXRyaWNzL2NvbGxlY3RvcnMvUGVyZm9ybWFuY2VNb25pdG9yQ29sbGVjdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogTWV0cmljIGNvbGxlY3RvciB3aXRoIGhhcmRjb2RlZCBjb25zdGFudCBzdHJpbmdzIG9ubHkuIE5vIHVzZXIgaW5wdXQgZW50ZXJzIHRoaXMgY29tcG9uZW50LiBBbGwgbWV0cmljIG5hbWVzLCBzb3VyY2VzLCBhbmQgZGVzY3JpcHRpb25zIGFyZSBjb21waWxlLXRpbWUgY29uc3RhbnRzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9tZXRyaWNzLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQ2xpZW50LXNpZGUgYnJvd3NlciBKYXZhU2NyaXB0LiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LiBEYXNoYm9hcmQgcmVuZGVycyBzZXJ2ZXItZ2VuZXJhdGVkIG1ldHJpYyBkYXRhIG9ubHkg4oCUIG5vIHVzZXIgdGV4dCBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvbG9ncy5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gRmlsdGVyIGlucHV0cyBhcmUgdXNlZCBmb3IgbG9jYWwgSlMgYXJyYXkgZmlsdGVyaW5nIG9ubHkg4oCUIG5ldmVyIHNlbnQgdG8gc2VydmVyLiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3B1YmxpYy9zZXR1cC5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENsaWVudC1zaWRlIGJyb3dzZXIgSmF2YVNjcmlwdC4gVXNlciBpbnB1dHMgKHBsYXRmb3JtIHRhYiBjbGlja3MsIG1ldGhvZCB0b2dnbGUpIGFyZSBtYXRjaGVkIGFnYWluc3QgaGFyZGNvZGVkIERPTSBlbGVtZW50IElEcyBvbmx5IOKAlCBubyBmcmVlLXRleHQgcHJvY2Vzc2luZy4gU2VydmVyLXNpZGUgaGFuZGxlcnMgaW4gc2V0dXBSb3V0ZXMudHMgdXNlIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkgb24gYWxsIEFQSSBpbnB1dC4gVW5pY29kZVZhbGlkYXRvciBpcyBhIE5vZGUuanMgbW9kdWxlIHVuYXZhaWxhYmxlIGluIGJyb3dzZXIgY29udGV4dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9wdWJsaWMvc2VjdXJpdHkuanMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBDbGllbnQtc2lkZSBicm93c2VyIEphdmFTY3JpcHQgZm9yIHRoZSBBdXRoIHRhYi4gQWxsIHVzZXIgaW5wdXQgKFRPVFAgY29kZXMpIGlzIHNlbnQgdG8gc2VydmVyLXNpZGUgZW5kcG9pbnRzICh0b3RwUm91dGVzLnRzLCB0b2tlblJvdXRlcy50cykgd2hpY2ggbm9ybWFsaXplIHZpYSBjb25zb2xlUm91dGVIZWxwZXJzLnRzIGdldE5vcm1hbGl6ZWRTdHJpbmdGaWVsZCgpLiBUaGUgZXNjKCkgaGVscGVyIGFwcGxpZXMgTkZDIG5vcm1hbGl6YXRpb24gZm9yIGRpc3BsYXkuIFVuaWNvZGVWYWxpZGF0b3IgaXMgYSBOb2RlLmpzIG1vZHVsZSB1bmF2YWlsYWJsZSBpbiBicm93c2VyIGNvbnRleHQuIFBSICMxNzkxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzL3RvdHBSb3V0ZXMudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBBbGwgdXNlciBpbnB1dCBmaWVsZHMgKGNvZGUsIHBlbmRpbmdJZCwgbGFiZWwpIGFyZSBleHRyYWN0ZWQgdmlhIGdldE5vcm1hbGl6ZWRTdHJpbmdGaWVsZCgpIGZyb20gY29uc29sZVJvdXRlSGVscGVycy50cyB3aGljaCBjYWxscyBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpLiBOb3JtYWxpemF0aW9uIGlzIGNlbnRyYWxpemVkIGluIHRoZSBzaGFyZWQgaGVscGVyLCBub3QgZHVwbGljYXRlZCBwZXItcm91dGVyLiBQUiAjMTc5NSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3JvdXRlcy90b2tlblJvdXRlcy50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEFsbCB1c2VyIGlucHV0IGZpZWxkcyAoY29uZmlybWF0aW9uQ29kZSkgYXJlIGV4dHJhY3RlZCB2aWEgZ2V0Tm9ybWFsaXplZFN0cmluZ0ZpZWxkKCkgZnJvbSBjb25zb2xlUm91dGVIZWxwZXJzLnRzIHdoaWNoIGNhbGxzIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuIE5vcm1hbGl6YXRpb24gaXMgY2VudHJhbGl6ZWQgaW4gdGhlIHNoYXJlZCBoZWxwZXIsIG5vdCBkdXBsaWNhdGVkIHBlci1yb3V0ZXIuIFBSICMxNzk1J1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVGVzdCBGaWxlIFN1cHByZXNzaW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIG1heSBjb250YWluIGludGVudGlvbmFsIHNlY3VyaXR5IHBhdHRlcm5zIGZvciB0ZXN0aW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi8qLnRlc3QudHMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZXMgbWF5IGNvbnRhaW4gaW50ZW50aW9uYWwgc2VjdXJpdHkgcGF0dGVybnMgZm9yIHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyouc3BlYy50cycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlcyBtYXkgY29udGFpbiBpbnRlbnRpb25hbCBzZWN1cml0eSBwYXR0ZXJucyBmb3IgdGVzdGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0cy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdGllcyBhbmQgRTJFIHRlc3RzIGRvIG5vdCBwcm9jZXNzIHVudHJ1c3RlZCB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3Rlc3RzLyoqLyonLFxuICAgIHJlYXNvbjogJ0F1ZGl0IGxvZ2dpbmcgbm90IHJlcXVpcmVkIGZvciB0ZXN0IHV0aWxpdGllcyBhbmQgRTJFIHRlc3RzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDMnLFxuICAgIGZpbGU6ICd0ZXN0cy9lMmUvY2xlYW51cC10ZXN0LWRhdGEudHMnLFxuICAgIHJlYXNvbjogJ0ZhbHNlIHBvc2l0aXZlIC0gY29uc29sZS5sb2cgbWVzc2FnZSBzdHJpbmcgbGl0ZXJhbCwgbm90IGEgcGF0aCBvcGVyYXRpb24nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAxLTAwMScsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIHVzZSBmYWtlIHRva2VucyBhbmQgc2VjcmV0cyBmb3IgdGVzdGluZyBzZWN1cml0eSBmZWF0dXJlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDEtMDAxJyxcbiAgICBmaWxlOiAndGVzdHMvZml4dHVyZXMvKiovKicsXG4gICAgcmVhc29uOiAnVGVzdCBmaXh0dXJlcyBjb250YWluIGludGVudGlvbmFsIG1vY2sgY3JlZGVudGlhbHMgY2xlYXJseSBtYXJrZWQgYXMgRkFLRS9URVNUL05PVF9SRUFMJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMS0wMDEnLFxuICAgIGZpbGU6ICd0ZXN0cy9zZWN1cml0eS9mcmFtZXdvcmsvUmFwaWRTZWN1cml0eVRlc3RpbmcudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBMaW5lIDIwMiBjb250YWlucyBhbiBpbnRlbnRpb25hbCBmYWtlIHRva2VuIChnaHBfMTIzNDU2Nzg5MC4uLikgZm9yIHNlY3VyaXR5IHRlc3RpbmcuIENsZWFybHkgbWFya2VkIHdpdGggTk9TT05BUiBjb21tZW50LiBVc2VkIHRvIHZlcmlmeSB0b2tlbnMgYXJlIG5vdCBleHBvc2VkIGluIGVycm9yIG1lc3NhZ2VzLiBQUiAjMSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAndGVzdHMvZml4dHVyZXMvdGVzdENyZWRlbnRpYWxzLnRzJyxcbiAgICByZWFzb246ICdDZW50cmFsaXplZCB0ZXN0IGNyZWRlbnRpYWxzIGZpbGUgd2l0aCBpbnRlbnRpb25hbGx5IGZha2UgdmFsdWVzIGZvciB0ZXN0aW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0NXRS04OS0wMDEnLFxuICAgIGZpbGU6ICdfX3Rlc3RzX18vKiovKicsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlcyBjb250YWluIFNRTCBpbmplY3Rpb24gcGF0dGVybnMgZm9yIHNlY3VyaXR5IHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIGNvbnRhaW4gY29tbWFuZCBpbmplY3Rpb24gcGF0dGVybnMgZm9yIHNlY3VyaXR5IHRlc3RpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMycsXG4gICAgZmlsZTogJ19fdGVzdHNfXy8qKi8qJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGVzIGNvbnRhaW4gcGF0aCB0cmF2ZXJzYWwgcGF0dGVybnMgZm9yIHNlY3VyaXR5IHRlc3RpbmcnXG4gIH0sXG4gIFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFlBTUwgUGFyc2luZyBGYWxzZSBQb3NpdGl2ZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS95YW1sVmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdZYW1sVmFsaWRhdG9yIGlzIHRoZSBzZWN1cml0eSB2YWxpZGF0aW9uIGxheWVyIGl0c2VsZiAtIGl0IG5lZWRzIGRpcmVjdCB5YW1sLmxvYWQgYWNjZXNzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZWN1cml0eS9zZWN1cmVZYW1sUGFyc2VyLnRzJyxcbiAgICByZWFzb246ICdTZWN1cmVZYW1sUGFyc2VyIGlzIHRoZSBzZWN1cml0eSB3cmFwcGVyIHRoYXQgdmFsaWRhdGVzIFlBTUwgYmVmb3JlIHBhcnNpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2VsZW1lbnRzL3NraWxscy9Ta2lsbE1hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ1VzZXMgeWFtbC5sb2FkIHdpdGggRkFJTFNBRkVfU0NIRU1BIGFuZCBzaXplIHZhbGlkYXRpb24gLSBlcXVpdmFsZW50IHNlY3VyaXR5IHRvIFNlY3VyZVlhbWxQYXJzZXIgZm9yIHJhdyBZQU1MIGltcG9ydCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvdG9vbHMvcG9ydGZvbGlvL3N1Ym1pdFRvUG9ydGZvbGlvVG9vbC50cycsXG4gICAgcmVhc29uOiAnRmFsc2UgcG9zaXRpdmUgLSBVc2VzIFNlY3VyZVlhbWxQYXJzZXIucGFyc2UoKSB3aGljaCBpcyB0aGUgc2VjdXJlIGltcGxlbWVudGF0aW9uIGRlc2lnbmVkIHRvIHByZXZlbnQgWUFNTCB2dWxuZXJhYmlsaXRpZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2NvbmZpZy9Db25maWdNYW5hZ2VyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogVXNlcyBqcy15YW1sIHdpdGggRkFJTFNBRkVfU0NIRU1BIGZvciBwdXJlIFlBTUwgY29uZmlnIGZpbGVzLiBUaGlzIHByZXZlbnRzIGNvZGUgZXhlY3V0aW9uIGFuZCBpcyB0aGUgYXBwcm9wcmlhdGUgc2VjdXJpdHkgbWVhc3VyZSBmb3IgY29uZmlnIGZpbGVzIHRoYXQgYXJlIE5PVCBtYXJrZG93biB3aXRoIGZyb250bWF0dGVyLiBSZWdyZXNzaW9uIHRlc3QgZW5zdXJlcyB3ZSBkbyBub3QgdXNlIFNlY3VyZVlhbWxQYXJzZXIgaGVyZSB3aGljaCB3b3VsZCByZXNldCBjb25maWcgdmFsdWVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDUnLFxuICAgIGZpbGU6ICdzcmMvcG9ydGZvbGlvL1BvcnRmb2xpb0luZGV4TWFuYWdlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IE1lbW9yeSBmaWxlcyBhcmUgcHVyZSBZQU1MIChub3QgTWFya2Rvd24gd2l0aCBmcm9udG1hdHRlciksIHNvIFNlY3VyZVlhbWxQYXJzZXIgY2Fubm90IGJlIHVzZWQuIFVzZXMgeWFtbC5sb2FkIHdpdGggRkFJTFNBRkVfU0NIRU1BICsgc2l6ZSB2YWxpZGF0aW9uICsgdHlwZSBjaGVja2luZyBmb3Igc2VjdXJpdHkuIFRoZXNlIGFyZSB0cnVzdGVkIGxvY2FsIHVzZXIgZmlsZXMuIEZpeCBmb3IgaXNzdWUgIzExOTYuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvcmVzb3VyY2VzL0NhcGFiaWxpdHlJbmRleFJlc291cmNlLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogY2FwYWJpbGl0eS1pbmRleC55YW1sIGlzIGEgcHVyZSBZQU1MIGZpbGUgKG5vdCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyKSwgc28gU2VjdXJlWWFtbFBhcnNlciBjYW5ub3QgYmUgdXNlZC4gVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgd2hpY2ggcHJldmVudHMgY29kZSBleGVjdXRpb24uIFRoaXMgaXMgYSB0cnVzdGVkIGxvY2FsIHN5c3RlbS1nZW5lcmF0ZWQgZmlsZSAoY3JlYXRlZCBieSBFbmhhbmNlZEluZGV4TWFuYWdlcikuIFNhbWUgc2VjdXJpdHkgcGF0dGVybiBhcyBDb25maWdNYW5hZ2VyIGFuZCBQb3J0Zm9saW9JbmRleE1hbmFnZXIgZm9yIHB1cmUgWUFNTCBmaWxlcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvRG9sbGhvdXNlVG9BbnRocm9waWNDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgdHJhbnNmb3JtZXIsIG5vdCBzZWN1cml0eSBib3VuZGFyeS4gVXNlcyB5YW1sLmxvYWQgd2l0aCBDT1JFX1NDSEVNQSB0byBwcmV2ZW50IGRlc2VyaWFsaXphdGlvbiBhdHRhY2tzLiBDYW5ub3QgdXNlIFNlY3VyZVlhbWxQYXJzZXIgKGV4cGVjdHMgZnVsbCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyLCBub3QgZXh0cmFjdGVkIFlBTUwgc3RyaW5ncykuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IC0gbm8gbW9kaWZpY2F0aW9uLiBJbnB1dCBza2lsbHMgYWxyZWFkeSB2YWxpZGF0ZWQgKGZyb20gRG9sbGhvdXNlTUNQIHN5c3RlbSkuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0FudGhyb3BpY1RvRG9sbGhvdXNlQ29udmVydGVyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogRm9ybWF0IHRyYW5zZm9ybWVyLCBub3Qgc2VjdXJpdHkgYm91bmRhcnkuIFVzZXMgeWFtbC5sb2FkIHdpdGggQ09SRV9TQ0hFTUEgdG8gcHJldmVudCBkZXNlcmlhbGl6YXRpb24gYXR0YWNrcy4gQ2Fubm90IHVzZSBTZWN1cmVZYW1sUGFyc2VyIChwcm9jZXNzZXMgZXh0cmFjdGVkIFlBTUwgc3RyaW5ncykuIFByZXNlcnZlcyBjb250ZW50IGZpZGVsaXR5IC0gbm8gbW9kaWZpY2F0aW9uLiBPdXRwdXQgdmFsaWRhdGVkIHdoZW4gbG9hZGVkIHZpYSBTa2lsbE1hbmFnZXIubG9hZCgpIHdoaWNoIGFwcGxpZXMgU2VjdXJlWWFtbFBhcnNlci4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA1JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5L2F1ZGl0L3NjYW5uZXJzL0NvbmZpZ3VyYXRpb25TY2FubmVyLnRzJyxcbiAgICByZWFzb246ICdJTlRFTlRJT05BTDogU2VjdXJpdHkgc2Nhbm5lciBmb3IgcHVyZSBZQU1MIGNvbmZpZ3VyYXRpb24gZmlsZXMgKG5vdCBNYXJrZG93biB3aXRoIGZyb250bWF0dGVyKS4gVXNlcyB5YW1sLmxvYWQgd2l0aCBGQUlMU0FGRV9TQ0hFTUEgd2hpY2ggcHJldmVudHMgY29kZSBleGVjdXRpb24gYW5kIGFyYml0cmFyeSBvYmplY3QgaW5zdGFudGlhdGlvbi4gU2VjdXJlWWFtbFBhcnNlciBpcyBkZXNpZ25lZCBmb3IgZWxlbWVudCBmaWxlcyAoTWFya2Rvd24gd2l0aCBZQU1MIGZyb250bWF0dGVyKSwgbm90IHJhdyBjb25maWcgZmlsZXMuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9TZXJpYWxpemF0aW9uU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFVzZXMgc2FmZSBZQU1MIHNjaGVtYSAoRkFJTFNBRkVfU0NIRU1BIG9yIEpTT05fU0NIRU1BKSBzZWxlY3RlZCBieSBnZXRZYW1sU2NoZW1hKCkuIFNlY3VyZVlhbWxQYXJzZXIgaXMgZGVzaWduZWQgZm9yIE1hcmtkb3duIGZpbGVzIHdpdGggZnJvbnRtYXR0ZXIsIG5vdCBwdXJlIFlBTUwgcGFyc2luZy4gTGluZXMgMzA3IGFuZCA4MTIgdXNlIHNhZmUgc2NoZW1hcyB0aGF0IHByZXZlbnQgY29kZSBleGVjdXRpb24uJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy9tY3AtYXFsL01DUEFRTEhhbmRsZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBJbXBvcnQgb3BlcmF0aW9uIHBhcnNlcyBwdXJlIFlBTUwgZGF0YSBmcm9tIGV4cG9ydCBwYWNrYWdlcyAobm90IE1hcmtkb3duIHdpdGggZnJvbnRtYXR0ZXIpLiBVc2VzIHlhbWwubG9hZCB3aXRoIEpTT05fU0NIRU1BIHdoaWNoIHByZXZlbnRzIGNvZGUgZXhlY3V0aW9uIGFuZCBpcyBhcHByb3ByaWF0ZSBmb3Igc3RydWN0dXJlZCBlbGVtZW50IGRhdGEuIFNlY3VyZVlhbWxQYXJzZXIgY2Fubm90IGJlIHVzZWQgYXMgaXQgZXhwZWN0cyBNYXJrZG93biBmcm9udG1hdHRlciBmb3JtYXQuIFBSICMxOTMnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZXJ2aWNlIExheWVyIEZhbHNlIFBvc2l0aXZlcyAoUmVmYWN0b3IgUFIpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvU2VyaWFsaXphdGlvblNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBTZXJpYWxpemF0aW9uU2VydmljZSBoYW5kbGVzIGRhdGEgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24uIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBhcHBsaWVkIGF0IHRoZSB2YWxpZGF0aW9uIGxheWVyIChWYWxpZGF0aW9uU2VydmljZS52YWxpZGF0ZUFuZFNhbml0aXplSW5wdXQgY2FsbHMgVW5pY29kZVZhbGlkYXRvci5ub3JtYWxpemUpIGJlZm9yZSBkYXRhIHJlYWNoZXMgc2VyaWFsaXphdGlvbi4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL0ZpbGVPcGVyYXRpb25zU2VydmljZS50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEZpbGVPcGVyYXRpb25zU2VydmljZSBoYW5kbGVzIGZpbGUgSS9PIG9wZXJhdGlvbnMuIFBhdGhzIGFyZSB2YWxpZGF0ZWQgYnkgUGF0aFZhbGlkYXRvci4gQ29udGVudCB2YWxpZGF0aW9uIGluY2x1ZGluZyBVbmljb2RlIG5vcm1hbGl6YXRpb24gaGFwcGVucyBhdCB0aGUgZWxlbWVudCBtYW5hZ2VyIGxheWVyIGJlZm9yZSBmaWxlIG9wZXJhdGlvbnMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0VsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBJbnRlcmZhY2UvdHlwZSBkZWZpbml0aW9uIGZpbGUgb25seS4gQ29uY3JldGUgaW1wbGVtZW50YXRpb25zIHVzZSBWYWxpZGF0aW9uU2VydmljZSB3aGljaCBwZXJmb3JtcyBVbmljb2RlIG5vcm1hbGl6YXRpb24gdmlhIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0dlbmVyaWNFbGVtZW50VmFsaWRhdG9yLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogQ2FsbHMgSW5wdXROb3JtYWxpemVyLm5vcm1hbGl6ZSgpIGF0IHRoZSB2YWxpZGF0aW9uIGJvdW5kYXJ5IChsaW5lIDY0KSB3aGljaCByZWN1cnNpdmVseSBub3JtYWxpemVzIGFsbCBzdHJpbmdzIHZpYSBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpLiBUaGlzIGlzIHRoZSBjZW50cmFsaXplZCBub3JtYWxpemF0aW9uIHBvaW50IGZvciBhbGwgZWxlbWVudCB2YWxpZGF0b3JzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9QZXJzb25hRWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEN1c3RvbSBmaWVsZHMgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVBbmRTYW5pdGl6ZUlucHV0KCkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL01lbW9yeUVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiBDdXN0b20gZmllbGRzIGFkZGl0aW9uYWxseSBub3JtYWxpemVkIGJ5IFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCgpLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9UZW1wbGF0ZUVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiBDdXN0b20gZmllbGRzIGFkZGl0aW9uYWxseSBub3JtYWxpemVkIGJ5IFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCgpLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9FbnNlbWJsZUVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiBDdXN0b20gZmllbGRzIGFkZGl0aW9uYWxseSBub3JtYWxpemVkIGJ5IFZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlQW5kU2FuaXRpemVJbnB1dCgpLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvdmFsaWRhdGlvbi9Ta2lsbEVsZW1lbnRWYWxpZGF0b3IudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBFeHRlbmRzIEdlbmVyaWNFbGVtZW50VmFsaWRhdG9yIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0IHZpYSBJbnB1dE5vcm1hbGl6ZXIubm9ybWFsaXplKCkgYXQgdGhlIGJvdW5kYXJ5LiB2YWxpZGF0ZU1ldGFkYXRhKCkgcmVjZWl2ZXMgcHJlLW5vcm1hbGl6ZWQgZWxlbWVudC5tZXRhZGF0YSBmcm9tIFNraWxsIGNvbnN0cnVjdG9yIChVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSArIHNhbml0aXplSW5wdXQpLiBQUiAjNDU3J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy92YWxpZGF0aW9uL0FnZW50RWxlbWVudFZhbGlkYXRvci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEV4dGVuZHMgR2VuZXJpY0VsZW1lbnRWYWxpZGF0b3Igd2hpY2ggbm9ybWFsaXplcyBhbGwgaW5wdXQgdmlhIElucHV0Tm9ybWFsaXplci5ub3JtYWxpemUoKSBhdCB0aGUgYm91bmRhcnkuIEFnZW50LXNwZWNpZmljIGZpZWxkcyAoZ29hbCwgc3lzdGVtUHJvbXB0LCBhY3RpdmF0ZXMsIHRvb2xzLCBhdXRvbm9teSkgYWRkaXRpb25hbGx5IG5vcm1hbGl6ZWQgYnkgVmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGVDb250ZW50KCkuIFBSICMxMzQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvRG9sbGhvdXNlVG9BbnRocm9waWNDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgdHJhbnNmb3JtZXIsIG5vdCBzZWN1cml0eSBib3VuZGFyeS4gUHJlc2VydmVzIGNvbnRlbnQgZmlkZWxpdHkgd2l0aG91dCBVbmljb2RlIG5vcm1hbGl6YXRpb24uIElucHV0IHNraWxscyBhbHJlYWR5IHZhbGlkYXRlZCAoZnJvbSBEb2xsaG91c2VNQ1Agc3lzdGVtKS4gT25lLXRvLW9uZSBtZWNoYW5pY2FsIHRyYW5zZm9ybWF0aW9uIC0gbm8gY29udGVudCBtb2RpZmljYXRpb24uIFNlY3VyaXR5IGJvdW5kYXJ5IGlzIFNraWxsTWFuYWdlci5sb2FkKCksIG5vdCBjb252ZXJ0ZXJzLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9BbnRocm9waWNUb0RvbGxob3VzZUNvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnSU5URU5USU9OQUw6IEZvcm1hdCB0cmFuc2Zvcm1lciwgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBQcmVzZXJ2ZXMgY29udGVudCBmaWRlbGl0eSB3aXRob3V0IFVuaWNvZGUgbm9ybWFsaXphdGlvbi4gT3V0cHV0IHZhbGlkYXRlZCB3aGVuIGxvYWRlZCB2aWEgU2tpbGxNYW5hZ2VyLmxvYWQoKSB3aGljaCBhcHBsaWVzIGZ1bGwgc2VjdXJpdHkgdmFsaWRhdGlvbiAoU2VjdXJlWWFtbFBhcnNlciArIFVuaWNvZGVWYWxpZGF0b3IpLiBPbmUtdG8tb25lIG1lY2hhbmljYWwgdHJhbnNmb3JtYXRpb24uIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb252ZXJ0ZXJzL0NvbnRlbnRFeHRyYWN0b3IudHMnLFxuICAgIHJlYXNvbjogJ0lOVEVOVElPTkFMOiBGb3JtYXQgYW5hbHlzaXMgdG9vbCBmb3IgY29udmVydGVycywgbm90IHNlY3VyaXR5IGJvdW5kYXJ5LiBQcmVzZXJ2ZXMgY29udGVudCBmaWRlbGl0eSB3aXRob3V0IG1vZGlmaWNhdGlvbi4gVXNlZCBieSBmb3JtYXQgdHJhbnNmb3JtZXJzIHdoaWNoIHByZXNlcnZlIG9uZS10by1vbmUgY29ycmVzcG9uZGVuY2UuIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZyAtIGludGVybmFsIHV0aWxpdHkgZm9yIG1lY2hhbmljYWwgY29udmVyc2lvbi4gUFIgIzE0MDAnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2NvbnZlcnRlcnMvRG9sbGhvdXNlVG9BbnRocm9waWNDb252ZXJ0ZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBDb252ZXJ0ZXJzIGFyZSBmb3JtYXQgdHJhbnNmb3JtZXJzLCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucy4gQXVkaXQgbG9nZ2luZyBoYXBwZW5zIGF0IENMSSBsZXZlbCAoY2xpL2NvbnZlcnQudHMgbGluZSAyNTEpIHdoZXJlIGNvbnZlcnNpb24gb3BlcmF0aW9ucyBhcmUgbG9nZ2VkLiBDb252ZXJ0ZXJzIGFyZSBpbnRlcm5hbCB1dGlsaXRpZXMsIG5vdCB1c2VyLWZhY2luZyBzZWN1cml0eSBib3VuZGFyaWVzLiBQUiAjMTQwMCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9BbnRocm9waWNUb0RvbGxob3VzZUNvbnZlcnRlci50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IENvbnZlcnRlcnMgYXJlIGZvcm1hdCB0cmFuc2Zvcm1lcnMsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zLiBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgYXQgQ0xJIGxldmVsIChjbGkvY29udmVydC50cyBsaW5lIDI1MSkgd2hlcmUgY29udmVyc2lvbiBvcGVyYXRpb25zIGFyZSBsb2dnZWQuIENvbnZlcnRlcnMgYXJlIGludGVybmFsIHV0aWxpdGllcywgbm90IHVzZXItZmFjaW5nIHNlY3VyaXR5IGJvdW5kYXJpZXMuIFBSICMxNDAwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvcmVzb3VyY2VzL0NhcGFiaWxpdHlJbmRleFJlc291cmNlLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogRmlsZSBwYXRoIGlzIGNvbnN0cnVjdGVkIGZyb20gb3MuaG9tZWRpcigpIChzeXN0ZW0tcHJvdmlkZWQpIHdpdGggaGFyZGNvZGVkIHBhdGggc2VnbWVudHMuIE5vIHVzZXIgaW5wdXQgZmxvd3MgdGhyb3VnaCB0aGlzIGNvZGUuIFRoZSBjYXBhYmlsaXR5LWluZGV4LnlhbWwgZmlsZSBpcyBzeXN0ZW0tZ2VuZXJhdGVkIGJ5IEVuaGFuY2VkSW5kZXhNYW5hZ2VyLCBub3QgdXNlci1wcm92aWRlZC4nXG4gIH0sXG4gIFxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIENsZWFyLXRleHQgTG9nZ2luZyBGYWxzZSBQb3NpdGl2ZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAxMCcsXG4gICAgZmlsZTogJ3NyYy91dGlscy9sb2dnZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBUaGUgbG9nZ2VyIGFscmVhZHkgc2FuaXRpemVzIGFsbCBzZW5zaXRpdmUgZGF0YSB0aHJvdWdoIHNhbml0aXplTWVzc2FnZSgpIGFuZCBzYW5pdGl6ZU9iamVjdCgpIG1ldGhvZHMuIEFsbCBzZW5zaXRpdmUgZmllbGRzICh0b2tlbnMsIGtleXMsIHBhc3N3b3JkcywgZXRjLikgYXJlIHJlcGxhY2VkIHdpdGggW1JFREFDVEVEXSBiZWZvcmUgYW55IGNvbnNvbGUgb3V0cHV0LiBMaW5lcyAyODgsIDI5MSwgYW5kIDI5NSBvbmx5IGxvZyBwcmUtc2FuaXRpemVkIHNhZmUgbWVzc2FnZXMuJ1xuICB9LFxuICBcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBTZWN1cml0eSBSdWxlIERlZmluaXRpb24gRmlsZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvYXVkaXQvcnVsZXMvU2VjdXJpdHlSdWxlcy50cycsXG4gICAgcmVhc29uOiAnVGhpcyBpcyBhIHJlZ2V4IHBhdHRlcm4gZGVmaW5pdGlvbiBmb3IgZGV0ZWN0aW5nIGlubmVySFRNTCB1c2FnZSwgbm90IGFjdHVhbCB1c2FnZSdcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUGVyc29uYSBMb2FkaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDAxJyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvUGVyc29uYUxvYWRlci50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYUxvYWRlciB2YWxpZGF0ZXMgcGVyc29uYXMgdGhyb3VnaCBTZWN1cmVZYW1sUGFyc2VyIGFuZCBDb250ZW50VmFsaWRhdG9yJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMScsXG4gICAgZmlsZTogJ3NyYy9wZXJzb25hL1BlcnNvbmFNYW5hZ2VyLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogUGVyc29uYU1hbmFnZXIgdmFsaWRhdGVzIGFsbCBsb2FkZWQgcGVyc29uYXMgdXNpbmcgUGVyc29uYVZhbGlkYXRvci52YWxpZGF0ZVBlcnNvbmEoKSBpbW1lZGlhdGVseSBhZnRlciBsb2FkaW5nIGF0IGxpbmUgMzI1LiBJbnZhbGlkIHBlcnNvbmFzIGFyZSByZWplY3RlZCBhbmQgcmVtb3ZlZCBmcm9tIGNhY2hlLiBQUiAjMSdcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVW5pY29kZSBOb3JtYWxpemF0aW9uIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3R5cGVzLyoudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90ZWxlbWV0cnkvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1RlbGVtZXRyeSB0eXBlIGRlZmluaXRpb24gZmlsZSAtIGNvbnRhaW5zIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzLCBubyBydW50aW1lIGNvZGUgb3IgdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3RlbGVtZXRyeS90eXBlcy50cycsXG4gICAgcmVhc29uOiAnVGVsZW1ldHJ5IHR5cGUgZGVmaW5pdGlvbiBmaWxlIC0gQ0kgcGF0aCB2YXJpYW50LCBjb250YWlucyBvbmx5IFR5cGVTY3JpcHQgaW50ZXJmYWNlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdHlwZXMvZWxlbWVudHMvKi50cycsXG4gICAgcmVhc29uOiAnRWxlbWVudCBpbnRlcmZhY2UgZmlsZXMgYXJlIHR5cGUgZGVmaW5pdGlvbnMgdGhhdCBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lcnJvcnMvKi50cycsXG4gICAgcmVhc29uOiAnRXJyb3IgY2xhc3NlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb25maWcvKi50cycsXG4gICAgcmVhc29uOiAnQ29uZmlndXJhdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0IGRpcmVjdGx5J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb25zdGFudHMvKi50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnQgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMsIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9zcmMvZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIGNvbnRhaW5zIG9ubHkgdHlwZSBkZWZpbml0aW9ucyBhbmQgY29uc3RhbnRzLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIENJIGVudmlyb25tZW50cyBtYXkgaGF2ZSBkaWZmZXJlbnQgcGF0aCBzdHJ1Y3R1cmVzLCBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnZWxlbWVudHMvbWVtb3JpZXMvY29uc3RhbnRzLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudHMgZmlsZSAtIGhhbmRsZXMgY2FzZSB3aGVyZSBzcmMvIHByZWZpeCBpcyBzdHJpcHBlZCwgbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9yZXRlbnRpb24vdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGZvciByZXRlbnRpb24gcG9saWN5IGludGVyZmFjZXMgLSBjb250YWlucyBvbmx5IFR5cGVTY3JpcHQgaW50ZXJmYWNlcyBhbmQgdHlwZSBkZWZpbml0aW9ucywgbm8gcnVudGltZSBjb2RlIG9yIHVzZXIgaW5wdXQgcHJvY2Vzc2luZy4gQWN0dWFsIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiBSZXRlbnRpb25Qb2xpY3lTZXJ2aWNlIGFuZCBNZW1vcnlSZXRlbnRpb25TdHJhdGVneS4gUFIgIzUyJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy91dGlscy50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IHV0aWxpdGllcyAtIGFsbCBleHRlcm5hbCBpbnB1dCBpcyBub3JtYWxpemVkIHZpYSBVbmljb2RlVmFsaWRhdG9yIGluIHRoZSBmdW5jdGlvbnMgdGhlbXNlbHZlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9zcmMvZWxlbWVudHMvbWVtb3JpZXMvdXRpbHMudHMnLFxuICAgIHJlYXNvbjogJ01lbW9yeSB1dGlsaXRpZXMgLSBhbGwgZXh0ZXJuYWwgaW5wdXQgaXMgbm9ybWFsaXplZCB2aWEgVW5pY29kZVZhbGlkYXRvciBpbiB0aGUgZnVuY3Rpb25zIHRoZW1zZWx2ZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovZWxlbWVudHMvbWVtb3JpZXMvdXRpbHMudHMnLFxuICAgIHJlYXNvbjogJ01lbW9yeSB1dGlsaXRpZXMgLSBDSSBwYXRoIHZhcmlhbnQsIGFsbCBleHRlcm5hbCBpbnB1dCBpcyBub3JtYWxpemVkIHZpYSBVbmljb2RlVmFsaWRhdG9yJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ2VsZW1lbnRzL21lbW9yaWVzL3V0aWxzLnRzJyxcbiAgICByZWFzb246ICdNZW1vcnkgdXRpbGl0aWVzIC0gc3JjLXN0cmlwcGVkIHBhdGggdmFyaWFudCwgYWxsIGV4dGVybmFsIGlucHV0IGlzIG5vcm1hbGl6ZWQgdmlhIFVuaWNvZGVWYWxpZGF0b3InXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovbWVtb3JpZXMvKi50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IGVsZW1lbnQgZmlsZXMgLSBhbGwgdXNlciBpbnB1dCBpcyBwcm9wZXJseSBub3JtYWxpemVkIGluIE1lbW9yeS50cyBhbmQgTWVtb3J5TWFuYWdlci50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvZWxlbWVudHMvbWVtb3JpZXMvKi50cycsXG4gICAgcmVhc29uOiAnTWVtb3J5IGVsZW1lbnQgZmlsZXMgLSBhbGwgdXNlciBpbnB1dCBpcyBwcm9wZXJseSBub3JtYWxpemVkIGluIE1lbW9yeS50cyBhbmQgTWVtb3J5TWFuYWdlci50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdXRpbHMvdmVyc2lvbi50cycsXG4gICAgcmVhc29uOiAnVmVyc2lvbiB1dGlsaXR5IG9ubHkgaGFuZGxlcyBpbnRlcm5hbCB2ZXJzaW9uIHN0cmluZ3MsIG5vdCB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jYWNoZS8qLnRzJyxcbiAgICByZWFzb246ICdDYWNoZSBsYXllciByZWNlaXZlcyBhbHJlYWR5LW5vcm1hbGl6ZWQgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlY3VyaXR5LyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ1NlY3VyaXR5IG1vZHVsZXMgaGFuZGxlIHZhbGlkYXRpb24gYW5kIG5vcm1hbGl6YXRpb24gdGhlbXNlbHZlcydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaW5kZXgudHMnLFxuICAgIHJlYXNvbjogJ01haW4gZW50cnkgcG9pbnQgZGVsZWdhdGVzIHRvIFNlcnZlclNldHVwIHdoaWNoIG5vcm1hbGl6ZXMgYWxsIGlucHV0cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmVyL1NlcnZlclNldHVwLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBVTklDT0RFIE5PUk1BTElaQVRJT046IFRoaXMgaXMgd2hlcmUgVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGltcGxlbWVudGVkIGZvciBBTEwgdG9vbCBpbnB1dHMuIFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSAobGluZXMgMTEzLTE0NikgcmVjdXJzaXZlbHkgbm9ybWFsaXplcyBhbGwgc3RyaW5nIGFyZ3VtZW50cyBiZWZvcmUgdGhleSByZWFjaCBhbnkgaGFuZGxlci4gVGhpcyBpcyB0aGUgY29ycmVjdCBhcmNoaXRlY3R1cmFsIHBhdHRlcm4gKHNpbmdsZSBlbnRyeSBwb2ludCkuIFBSICMxJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQ2VudHJhbGl6ZWQgVW5pY29kZSBOb3JtYWxpemF0aW9uIC0gUFIgIzFcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBBbGwgaGFuZGxlcnMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwLnRzXG4gIC8vIFNlcnZlclNldHVwLnNldHVwQ2FsbFRvb2xIYW5kbGVyKCkgY2FsbHMgbm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpXG4gIC8vIG9uIGxpbmUgODkgQkVGT1JFIGRpc3BhdGNoaW5nIHRvIGFueSBoYW5kbGVyLiBUaGlzIHJlY3Vyc2l2ZWx5XG4gIC8vIG5vcm1hbGl6ZXMgYWxsIHN0cmluZ3MgaW4gdGhlIGFyZ3VtZW50cyBvYmplY3QuXG4gIC8vIFNlZSBzcmMvc2VydmVyL1NlcnZlclNldHVwLnRzIGxpbmVzIDExMy0xNDYgZm9yIGltcGxlbWVudGF0aW9uLlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC1hcmNoaXZlLyoqLyonLFxuICAgIHJlYXNvbjogJ0NFTlRSQUxJWkVEIE5PUk1BTElaQVRJT046IFRlc3QgYXJjaGl2ZSBmaWxlcyBhcmUgYXJjaGl2ZWQgZXhwZXJpbWVudHMsIG5vdCBwcm9kdWN0aW9uIGNvZGUuIEFsbCBwcm9kdWN0aW9uIHVzZXIgaW5wdXQgaXMgbm9ybWFsaXplZCBpbiBTZXJ2ZXJTZXR1cC50cyBiZWZvcmUgcmVhY2hpbmcgaGFuZGxlcnMuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy8qLnRzJyxcbiAgICByZWFzb246ICdDRU5UUkFMSVpFRCBOT1JNQUxJWkFUSU9OOiBBbGwgaGFuZGxlcnMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSAobGluZXMgODksIDExMy0xNDYpLiBVbmljb2RlIG5vcm1hbGl6YXRpb24gaGFwcGVucyBhdCB0aGUgZW50cnkgcG9pbnQgYmVmb3JlIGhhbmRsZXJzIGFyZSBpbnZva2VkLiBQUiAjMSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvKiovKi50cycsXG4gICAgcmVhc29uOiAnQ0VOVFJBTElaRUQgTk9STUFMSVpBVElPTjogQWxsIGhhbmRsZXIgc3RyYXRlZ2llcyBhbmQgbW9kdWxlcyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gU2VydmVyU2V0dXAubm9ybWFsaXplQXJndW1lbnRzVW5pY29kZSgpLiBJbnB1dCBpcyBzYW5pdGl6ZWQgYXQgdGhlIE1DUCByZXF1ZXN0IGxheWVyLiBQUiAjMSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvZWxlbWVudHMvKiovKi50cycsXG4gICAgcmVhc29uOiAnQ0VOVFJBTElaRUQgTk9STUFMSVpBVElPTjogRWxlbWVudCBtYW5hZ2VycyByZWNlaXZlIHByZS1ub3JtYWxpemVkIGlucHV0IGZyb20gaGFuZGxlcnMsIHdoaWNoIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBTZXJ2ZXJTZXR1cC4gRGVmZW5zZSBpbiBkZXB0aCB3aXRoIGNlbnRyYWxpemVkIGVudHJ5IHBvaW50IG5vcm1hbGl6YXRpb24uIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9kaS9Db250YWluZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBESSBDb250YWluZXIgb25seSB3aXJlcyBkZXBlbmRlbmNpZXMsIGRvZXMgbm90IHByb2Nlc3MgdXNlciBpbnB1dC4gQWxsIHVzZXIgaW5wdXQgaXMgbm9ybWFsaXplZCBpbiBTZXJ2ZXJTZXR1cCBiZWZvcmUgcmVhY2hpbmcgYW55IGluamVjdGVkIHNlcnZpY2UuIFBSICMxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9jb2xsZWN0aW9uLyoudHMnLFxuICAgIHJlYXNvbjogJ01hcmtldHBsYWNlIG1vZHVsZXMgcmVjZWl2ZSBub3JtYWxpemVkIGlucHV0IGZyb20gdG9vbCBoYW5kbGVycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvY29sbGVjdGlvbi8qKi8qLnRzJyxcbiAgICByZWFzb246ICdNYXJrZXRwbGFjZSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvKi50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvKiovKi50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYSBtb2R1bGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIHRvb2wgaGFuZGxlcnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3VwZGF0ZS8qLnRzJyxcbiAgICByZWFzb246ICdVcGRhdGUgbW9kdWxlcyByZWNlaXZlIG5vcm1hbGl6ZWQgaW5wdXQgZnJvbSB0b29sIGhhbmRsZXJzJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy90b29scy8qLnRzJyxcbiAgICByZWFzb246ICdUb29sIGZpbGVzIHJlY2VpdmUgbm9ybWFsaXplZCBpbnB1dCBmcm9tIFNlcnZlclNldHVwJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlIGRvZXMgbm90IHByb2Nlc3MgdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmVyL3Rvb2xzLyoudHMnLFxuICAgIHJlYXNvbjogJ1NlcnZlciB0b29scyByZWNlaXZlIG5vcm1hbGl6ZWQgaW5wdXQgZnJvbSBTZXJ2ZXJTZXR1cCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzY3JpcHRzLyoqLyonLFxuICAgIHJlYXNvbjogJ0J1aWxkIGFuZCB1dGlsaXR5IHNjcmlwdHMgZG8gbm90IHByb2Nlc3MgdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdG9vbHMvcG9ydGZvbGlvL3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUeXBlIGRlZmluaXRpb24gZmlsZSBjb250YWluaW5nIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzIC0gbm8gcnVudGltZSBjb2RlIG9yIHVzZXIgaW5wdXQgcHJvY2Vzc2luZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvdG9vbHMvKiovdHlwZXMudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcHJvY2VzcyB1c2VyIGlucHV0IC0gY29tcGlsZS10aW1lIG9ubHknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL0J1aWxkSW5mb1NlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0J1aWxkSW5mb1NlcnZpY2Ugb25seSBwcm9jZXNzZXMgc3lzdGVtIGluZm9ybWF0aW9uIChwYWNrYWdlLmpzb24sIGdpdCBjb21tYW5kcywgRG9ja2VyIHJ1bnRpbWUpIC0gdGhlIE1DUCB0b29sIHRha2VzIG5vIHBhcmFtZXRlcnMgYW5kIG5vIHVzZXIgaW5wdXQgZmxvd3MgdGhyb3VnaCB0aGlzIHNlcnZpY2UnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL1N5bmNIYW5kbGVyVjIudHMnLFxuICAgIHJlYXNvbjogJ1N5bmNIYW5kbGVyVjIgcmVjZWl2ZXMgYWxyZWFkeS1ub3JtYWxpemVkIGlucHV0IGZyb20gdGhlIE1DUCByZXF1ZXN0IGxheWVyLiBBbGwgdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwIGJlZm9yZSByZWFjaGluZyBoYW5kbGVycy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2hhbmRsZXJzL0NvbmZpZ0hhbmRsZXIudHMnLFxuICAgIHJlYXNvbjogJ0NvbmZpZ0hhbmRsZXIgcmVjZWl2ZXMgYWxyZWFkeS1ub3JtYWxpemVkIGlucHV0IGZyb20gdGhlIE1DUCByZXF1ZXN0IGxheWVyLiBBbGwgdXNlciBpbnB1dCBpcyBub3JtYWxpemVkIGluIFNlcnZlclNldHVwIGJlZm9yZSByZWFjaGluZyBoYW5kbGVycy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC1zeW5jLW9wZXJhdGlvbnMuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlIGZvciBkZXZlbG9wbWVudCB0ZXN0aW5nLiBEb2VzIG5vdCBwcm9jZXNzIHByb2R1Y3Rpb24gdXNlciBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1zeW5jLW9wZXJhdGlvbnMuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlIGZvciBkZXZlbG9wbWVudCB0ZXN0aW5nLiBEb2VzIG5vdCBwcm9jZXNzIHByb2R1Y3Rpb24gdXNlciBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC0qLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgZmlsZXMgaW4gcm9vdCBkaXJlY3RvcnkgZm9yIGRldmVsb3BtZW50IHRlc3RpbmcuIERvIG5vdCBwcm9jZXNzIHByb2R1Y3Rpb24gdXNlciBpbnB1dC4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAndGVzdC0qLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgZmlsZXMgaW4gcm9vdCBkaXJlY3RvcnkuIEF1ZGl0IGxvZ2dpbmcgbm90IHJlcXVpcmVkIGZvciBkZXZlbG9wbWVudCB0ZXN0IHNjcmlwdHMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICd0ZXN0LSouanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdXRpbGl0eSBmaWxlcyB1c2luZyBzcGF3biB3aXRoIGFycmF5IGFyZ3VtZW50cyB3aGljaCBpcyBzYWZlIGZyb20gaW5qZWN0aW9uLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovdGVzdC1lbGVtZW50LWxpZmVjeWNsZS5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IHNwYXduIHdpdGggYXJyYXkgYXJndW1lbnRzIGlzIHNhZmUgKG5vIHNoZWxsIGludm9jYXRpb24pLiBHaXRIdWIgdG9rZW4gcGFzc2VkIGFzIGFycmF5IGVsZW1lbnQsIG5vdCBjb25jYXRlbmF0ZWQgaW50byBjb21tYW5kIHN0cmluZy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1lbGVtZW50LWxpZmVjeWNsZS5qcycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IFRlc3QgaGFybmVzcyB3aXRoIG5vIHVzZXIgaW5wdXQgbWVjaGFuaXNtcy4gQWxsIGRhdGEgaXMgaGFyZGNvZGVkIHRlc3Qgc2NlbmFyaW9zIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3Rlc3QtZnVsbC12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogc3Bhd24gd2l0aCBhcnJheSBhcmd1bWVudHMgaXMgc2FmZS4gRG9ja2VyIGNvbW1hbmQgdXNlcyBhcnJheSBhcmdzIHByZXZlbnRpbmcgc2hlbGwgaW5qZWN0aW9uLiBMaW5lIDM3Mi4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3Rlc3QtZnVsbC12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogc3Bhd24gd2l0aCBhcnJheSBhcmd1bWVudHMgaXMgc2FmZS4gRG9ja2VyIGNvbW1hbmQgdXNlcyBhcnJheSBhcmdzIHByZXZlbnRpbmcgc2hlbGwgaW5qZWN0aW9uLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LWZ1bGwtdmFsaWRhdGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB2YWxpZGF0aW9uIHNjcmlwdCAtIG5vdCBwcm9kdWN0aW9uIGNvZGUuIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZywgb25seSB0ZXN0IHNjZW5hcmlvcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnKiovdGVzdC1mdWxsLXZhbGlkYXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgdmFsaWRhdGlvbiBzY3JpcHQgLSBub3QgcHJvZHVjdGlvbiBjb2RlLiBObyB1c2VyIGlucHV0IHByb2Nlc3NpbmcsIG9ubHkgdGVzdCBzY2VuYXJpb3MuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3Rlc3QtdmVyc2lvbi12YWxpZGF0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IHV0aWxpdHkgc2NyaXB0IC0gbm90IHByb2R1Y3Rpb24gY29kZS4gQXVkaXQgbG9nZ2luZyBub3QgcmVxdWlyZWQgZm9yIHRlc3QgdXRpbGl0aWVzLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi90ZXN0LXZlcnNpb24tdmFsaWRhdGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCB1dGlsaXR5IHNjcmlwdCAtIG5vdCBwcm9kdWN0aW9uIGNvZGUuIEF1ZGl0IGxvZ2dpbmcgbm90IHJlcXVpcmVkIGZvciB0ZXN0IHV0aWxpdGllcy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAndGVzdC1tZW1vcnktZGVsZXRpb24uanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSAtIE5vIHVzZXIgaW5wdXQgcHJvY2Vzc2VkLCBhbGwgdGVzdCBkYXRhIGlzIGludGVybmFsbHkgZ2VuZXJhdGVkJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgLSBObyB1c2VyIGlucHV0IHByb2Nlc3NlZCwgYWxsIHRlc3QgZGF0YSBpcyBpbnRlcm5hbGx5IGdlbmVyYXRlZCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICd0ZXN0LW1lbW9yeS1kZWxldGlvbi5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIC0gQXVkaXQgbG9nZ2luZyBoYXBwZW5zIGluIHRoZSBzZXJ2ZXIgZGVsZXRlRWxlbWVudCBtZXRob2QsIG5vdCBpbiB0ZXN0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgLSBBdWRpdCBsb2dnaW5nIGhhcHBlbnMgaW4gdGhlIHNlcnZlciBkZWxldGVFbGVtZW50IG1ldGhvZCwgbm90IGluIHRlc3QnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJ3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdGYWxzZSBwb3NpdGl2ZSAtIFRlbXBsYXRlIGxpdGVyYWxzIGluIGVycm9yIG1lc3NhZ2VzIGFyZSBub3QgU1FMIHF1ZXJpZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnQ1dFLTg5LTAwMScsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWRlbGV0aW9uLmpzJyxcbiAgICByZWFzb246ICdGYWxzZSBwb3NpdGl2ZSAtIFRlbXBsYXRlIGxpdGVyYWxzIGluIGVycm9yIG1lc3NhZ2VzIGFyZSBub3QgU1FMIHF1ZXJpZXMnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBBdWRpdCBMb2dnaW5nIEZhbHNlIFBvc2l0aXZlc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3R5cGVzLyoudHMnLFxuICAgIHJlYXNvbjogJ1R5cGUgZGVmaW5pdGlvbiBmaWxlcyBkbyBub3QgcGVyZm9ybSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy90eXBlcy9lbGVtZW50cy8qLnRzJyxcbiAgICByZWFzb246ICdFbGVtZW50IGludGVyZmFjZSBmaWxlcyBhcmUgdHlwZSBkZWZpbml0aW9ucyB0aGF0IGRvIG5vdCBwZXJmb3JtIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2NvbnN0YW50cy8qLnRzJyxcbiAgICByZWFzb246ICdDb25zdGFudCBmaWxlcyBkbyBub3QgcGVyZm9ybSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9jb25maWcvKi50cycsXG4gICAgcmVhc29uOiAnQ29uZmlndXJhdGlvbiBmaWxlcyBkbyBub3QgcGVyZm9ybSBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMsIG5vIHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovc3JjL2VsZW1lbnRzL21lbW9yaWVzL2NvbnN0YW50cy50cycsXG4gICAgcmVhc29uOiAnQ29uc3RhbnRzIGZpbGUgLSBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cywgbm8gc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICcqKi9lbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gQ0kgcGF0aCB2YXJpYW50LCBjb250YWlucyBvbmx5IHR5cGUgZGVmaW5pdGlvbnMgYW5kIGNvbnN0YW50cydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdlbGVtZW50cy9tZW1vcmllcy9jb25zdGFudHMudHMnLFxuICAgIHJlYXNvbjogJ0NvbnN0YW50cyBmaWxlIC0gc3JjLXN0cmlwcGVkIHBhdGggdmFyaWFudCwgY29udGFpbnMgb25seSB0eXBlIGRlZmluaXRpb25zIGFuZCBjb25zdGFudHMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2Vycm9ycy8qLnRzJyxcbiAgICByZWFzb246ICdFcnJvciBjbGFzc2VzIGFyZSBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucyByZXF1aXJpbmcgYXVkaXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovKi5qc29uJyxcbiAgICByZWFzb246ICdKU09OIGZpbGVzIGNhbm5vdCBjb250YWluIGV4ZWN1dGFibGUgY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvc2VjdXJpdHkvKiovKi50cycsXG4gICAgcmVhc29uOiAnU2VjdXJpdHkgbW9kdWxlcyBhcmUgaW5mcmFzdHJ1Y3R1cmUsIG5vdCBvcGVyYXRpb25zIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29sbGVjdGlvbi8qLnRzJyxcbiAgICByZWFzb246ICdNYXJrZXRwbGFjZSBvcGVyYXRpb25zIGFyZSBub3Qgc2VjdXJpdHktc2Vuc2l0aXZlIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvY29sbGVjdGlvbi8qKi8qLnRzJyxcbiAgICByZWFzb246ICdNYXJrZXRwbGFjZSBvcGVyYXRpb25zIGFyZSBub3Qgc2VjdXJpdHktc2Vuc2l0aXZlIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvcGVyc29uYS8qLnRzJyxcbiAgICByZWFzb246ICdQZXJzb25hIG9wZXJhdGlvbnMgYXJlIHZhbGlkYXRlZCBhdCBlbnRyeSBwb2ludCwgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL3BlcnNvbmEvKiovKi50cycsXG4gICAgcmVhc29uOiAnUGVyc29uYSBvcGVyYXRpb25zIGFyZSB2YWxpZGF0ZWQgYXQgZW50cnkgcG9pbnQsIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9zZXJ2ZXIvdG9vbHMvKiovKi50cycsXG4gICAgcmVhc29uOiAnVG9vbCBpbXBsZW1lbnRhdGlvbnMgZGVsZWdhdGUgdG8gc2VydmljZXMgdGhhdCBoYW5kbGUgc2VjdXJpdHknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc3JjL2luZGV4LnRzJyxcbiAgICByZWFzb246ICdNYWluIGVudHJ5IHBvaW50IGRlbGVnYXRlcyBzZWN1cml0eSBvcGVyYXRpb25zIHRvIHNwZWNpYWxpemVkIG1vZHVsZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3V0aWxzL0V2aWN0aW5nUXVldWUudHMnLFxuICAgIHJlYXNvbjogJ0dlbmVyaWMgZGF0YSBzdHJ1Y3R1cmUg4oCUIGRvZXMgbm90IHByb2Nlc3MgdXNlciBpbnB1dC4gQWxsIGNhbGxlcnMgKEFnZW50LCBTZWN1cml0eVRlbGVtZXRyeSwgU2VjdXJpdHlNb25pdG9yLCBMb2dnZXIpIHNhbml0aXplIGlucHV0IGJlZm9yZSBwdXNoaW5nIHRvIHRoZSBxdWV1ZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvdXRpbHMvKi50cycsXG4gICAgcmVhc29uOiAnVXRpbGl0eSBmdW5jdGlvbnMgYXJlIG5vdCBzZWN1cml0eSBvcGVyYXRpb25zIHJlcXVpcmluZyBhdWRpdCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvdXBkYXRlLyoqLyoudHMnLFxuICAgIHJlYXNvbjogJ1VwZGF0ZSBzeXN0ZW0gaGFzIGl0cyBvd24gbG9nZ2luZyBhbmQgaXMgbm90IGEgZGlyZWN0IHNlY3VyaXR5IG9wZXJhdGlvbidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvc2VydmVyL3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUeXBlIGRlZmluaXRpb24gZmlsZSBkb2VzIG5vdCBwZXJmb3JtIG9wZXJhdGlvbnMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnc2NyaXB0cy8qKi8qJyxcbiAgICByZWFzb246ICdCdWlsZCBzY3JpcHRzIGRvIG5vdCBwZXJmb3JtIHJ1bnRpbWUgc2VjdXJpdHkgb3BlcmF0aW9ucydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzY3JpcHRzL2xpYi9naC1jb21tYW5kLmpzJyxcbiAgICByZWFzb246ICdDTEkgdXRpbGl0eSAtIFNlY3VyaXR5TW9uaXRvciBub3QgYXZhaWxhYmxlIGluIHN0YW5kYWxvbmUgc2NyaXB0cy4gU2VjdXJpdHkgZW5zdXJlZCB2aWEgaW5wdXQgdmFsaWRhdGlvbiBhbmQgc2VjdXJlIGNvbW1hbmQgZXhlY3V0aW9uIHBhdHRlcm5zIChETUNQLVNFQy0wMDEsIERNQ1AtU0VDLTAwMiknXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA2JyxcbiAgICBmaWxlOiAnKiovc2NyaXB0cy9saWIvZ2gtY29tbWFuZC5qcycsXG4gICAgcmVhc29uOiAnQ0xJIHV0aWxpdHkgLSBTZWN1cml0eU1vbml0b3Igbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFsb25lIHNjcmlwdHMuIFNlY3VyaXR5IGVuc3VyZWQgdmlhIGlucHV0IHZhbGlkYXRpb24gYW5kIHNlY3VyZSBjb21tYW5kIGV4ZWN1dGlvbiBwYXR0ZXJucyAoRE1DUC1TRUMtMDAxLCBETUNQLVNFQy0wMDIpJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9wb3J0Zm9saW8vUG9ydGZvbGlvU3luY01hbmFnZXIudHMnLFxuICAgIHJlYXNvbjogJ1BvcnRmb2xpbyBzeW5jIG9wZXJhdGlvbnMgYXJlIGZpbGUgbWFuYWdlbWVudCB0YXNrcywgbm90IHNlY3VyaXR5IG9wZXJhdGlvbnMuIFNlY3VyaXR5IHZhbGlkYXRpb24gaGFwcGVucyBhdCB0aGUgTUNQIHJlcXVlc3QgbGF5ZXIuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNicsXG4gICAgZmlsZTogJ3NyYy9oYW5kbGVycy9TeW5jSGFuZGxlclYyLnRzJyxcbiAgICByZWFzb246ICdTeW5jIGhhbmRsZXIgZGVsZWdhdGVzIHRvIFBvcnRmb2xpb1N5bmNNYW5hZ2VyIHdoaWNoIGhhbmRsZXMgaXRzIG93biBsb2dnaW5nLiBTZWN1cml0eSB2YWxpZGF0aW9uIGhhcHBlbnMgYXQgdGhlIE1DUCByZXF1ZXN0IGxheWVyLidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDYnLFxuICAgIGZpbGU6ICdzcmMvaGFuZGxlcnMvQ29uZmlnSGFuZGxlci50cycsXG4gICAgcmVhc29uOiAnQ29uZmlnIGhhbmRsZXIgb3BlcmF0aW9ucyBhcmUgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LCBub3Qgc2VjdXJpdHkgb3BlcmF0aW9ucy4gQ29uZmlnTWFuYWdlciBoYW5kbGVzIGl0cyBvd24gbG9nZ2luZy4nXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBRdWVyeSBTZXJ2aWNlcyAtIElzc3VlICMzOCAoUFIgIzQ2KVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFF1ZXJ5IHNlcnZpY2VzIHJlY2VpdmUgcHJlLW5vcm1hbGl6ZWQgaW5wdXQgdmlhIHR3byBsYXllcnM6XG4gIC8vIDEuIFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSBub3JtYWxpemVzIGFsbCBNQ1AgdG9vbCBhcmd1bWVudHNcbiAgLy8gMi4gRmlsdGVyU2VydmljZSB1c2VzIG5vcm1hbGl6ZVNlYXJjaFRlcm0oKSB3aGljaCBjYWxscyBVbmljb2RlVmFsaWRhdG9yLm5vcm1hbGl6ZSgpXG4gIC8vIFNlZSBzcmMvdXRpbHMvc2VhcmNoVXRpbHMudHMgbGluZXMgMTctMzAgZm9yIHNlY29uZGFyeSBub3JtYWxpemF0aW9uXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdUeXBlIGRlZmluaXRpb24gZmlsZSBjb250YWluaW5nIG9ubHkgVHlwZVNjcmlwdCBpbnRlcmZhY2VzIC0gbm8gcnVudGltZSBjb2RlIG9yIHVzZXIgaW5wdXQgcHJvY2Vzc2luZy4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9pbmRleC50cycsXG4gICAgcmVhc29uOiAnUmUtZXhwb3J0IG1vZHVsZSAtIG5vIHVzZXIgaW5wdXQgcHJvY2Vzc2luZywgb25seSBUeXBlU2NyaXB0IHJlLWV4cG9ydHMuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvUGFnaW5hdGlvblNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ1BhZ2luYXRpb25TZXJ2aWNlIHByb2Nlc3NlcyBudW1lcmljIHBhcmFtZXRlcnMgKHBhZ2UsIHBhZ2VTaXplKSAtIG5vIHN0cmluZyBpbnB1dCByZXF1aXJpbmcgVW5pY29kZSBub3JtYWxpemF0aW9uLiBJbnB1dCBwcmUtdmFsaWRhdGVkIGF0IE1DUCByZXF1ZXN0IGxheWVyLiBQUiAjNDYnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3NlcnZpY2VzL3F1ZXJ5L0ZpbHRlclNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0RVQUwgUFJPVEVDVElPTjogKDEpIElucHV0IHByZS1ub3JtYWxpemVkIGJ5IFNlcnZlclNldHVwLm5vcm1hbGl6ZUFyZ3VtZW50c1VuaWNvZGUoKSBhdCBNQ1AgbGF5ZXIsICgyKSBGaWx0ZXJTZXJ2aWNlIHVzZXMgbm9ybWFsaXplU2VhcmNoVGVybSgpIHdoaWNoIGNhbGxzIFVuaWNvZGVWYWxpZGF0b3Iubm9ybWFsaXplKCkuIFNlZSBzZWFyY2hVdGlscy50czoxNy0zMC4gUFIgIzQ2J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zZXJ2aWNlcy9xdWVyeS9FbGVtZW50UXVlcnlTZXJ2aWNlLnRzJyxcbiAgICByZWFzb246ICdPcmNoZXN0cmF0b3Igc2VydmljZSAtIGRlbGVnYXRlcyB0byBGaWx0ZXJTZXJ2aWNlIHdoaWNoIHBlcmZvcm1zIFVuaWNvZGUgbm9ybWFsaXphdGlvbiB2aWEgbm9ybWFsaXplU2VhcmNoVGVybSgpLiBJbnB1dCBwcmUtbm9ybWFsaXplZCBhdCBNQ1AgbGF5ZXIuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvU29ydFNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ1NvcnRTZXJ2aWNlIHZhbGlkYXRlcyBzb3J0QnkgYWdhaW5zdCBlbnVtIHdoaXRlbGlzdCAoU29ydGFibGVGaWVsZCkgLSBubyBhcmJpdHJhcnkgc3RyaW5nIGlucHV0LiBzb3J0T3JkZXIgaXMgZW51bS12YWxpZGF0ZWQuIE5vIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBuZWVkZWQuIFBSICM0NidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvcXVlcnkvKi50cycsXG4gICAgcmVhc29uOiAnUXVlcnkgc2VydmljZXMgcmVjZWl2ZSBwcmUtbm9ybWFsaXplZCBpbnB1dCBmcm9tIE1DUCBsYXllciBhbmQgdXNlIG5vcm1hbGl6ZVNlYXJjaFRlcm0oKSBmb3IgYWRkaXRpb25hbCBwcm90ZWN0aW9uLiBQUiAjNDYnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBDb3ZlcmFnZSBSZXBvcnQgRmlsZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICd0ZXN0L2NvdmVyYWdlLyoqLyonLFxuICAgIHJlYXNvbjogJ0NvdmVyYWdlIHJlcG9ydCBmaWxlcyBhcmUgYXV0by1nZW5lcmF0ZWQgYW5kIG5vdCBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICd0ZXN0cy9jb3ZlcmFnZS8qKi8qJyxcbiAgICByZWFzb246ICdDb3ZlcmFnZSByZXBvcnQgZmlsZXMgYXJlIGF1dG8tZ2VuZXJhdGVkIGFuZCBub3QgcGFydCBvZiB0aGUgYXBwbGljYXRpb24gY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovbGNvdi1yZXBvcnQvKiovKicsXG4gICAgcmVhc29uOiAnTENPViBjb3ZlcmFnZSByZXBvcnQgZmlsZXMgYXJlIGF1dG8tZ2VuZXJhdGVkIGFuZCBub3QgcGFydCBvZiB0aGUgYXBwbGljYXRpb24gY29kZSdcbiAgfSxcbiAgXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRG9jdW1lbnRhdGlvbiBhbmQgTm9uLUNvZGUgRmlsZXNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICdkb2NzLyoqLyonLFxuICAgIHJlYXNvbjogJ0RvY3VtZW50YXRpb24gZmlsZXMgaW5jbHVkaW5nIFFBIG1ldHJpY3MgYW5kIHJlcG9ydHMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyoubWQnLFxuICAgIHJlYXNvbjogJ01hcmtkb3duIGRvY3VtZW50YXRpb24gZmlsZXMnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJyoqLyouanNvbicsXG4gICAgcmVhc29uOiAnSlNPTiBjb25maWd1cmF0aW9uIGFuZCBkYXRhIGZpbGVzIGRvIG5vdCBleGVjdXRlIGNvZGUnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnKicsXG4gICAgZmlsZTogJ0xJQ0VOU0UnLFxuICAgIHJlYXNvbjogJ0xpY2Vuc2UgZmlsZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnLmdpdGlnbm9yZScsXG4gICAgcmVhc29uOiAnR2l0IGNvbmZpZ3VyYXRpb24gZmlsZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAncGFja2FnZS1sb2NrLmpzb24nLFxuICAgIHJlYXNvbjogJ05QTSBsb2NrIGZpbGUgLSBhdXRvLWdlbmVyYXRlZCwgbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJyonLFxuICAgIGZpbGU6ICcqKi8qLnltbCcsXG4gICAgcmVhc29uOiAnWUFNTCBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBkYXRhLCBub3QgY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICcqJyxcbiAgICBmaWxlOiAnKiovKi55YW1sJyxcbiAgICByZWFzb246ICdZQU1MIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIGRhdGEsIG5vdCBjb2RlJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gU2VwdGVtYmVyIDIyIFNlc3Npb24gRG9jcyBSZXN0b3JhdGlvbiAtIFBSICMxMDgyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnc2NyaXB0cy90ZXN0LWNhcGFiaWxpdHktaW5kZXguanMnLFxuICAgIHJlYXNvbjogJ1Rlc3Qgc2NyaXB0IHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCB1c2luZyBzcGF3biB3aXRoIGhhcmRjb2RlZCBhcnJheSBhcmd1bWVudHMgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICd0ZXN0cy9leHBlcmltZW50cy9jYXBhYmlsaXR5LWluZGV4LWNvbXByZWhlbnNpdmUtdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3Rlc3RzL2V4cGVyaW1lbnRzL2NhcGFiaWxpdHktaW5kZXgtY29tcHJlaGVuc2l2ZS10ZXN0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgdXNpbmcgc3Bhd24gd2l0aCBoYXJkY29kZWQgYXJyYXkgYXJndW1lbnRzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDMnLFxuICAgIGZpbGU6ICdzY3JpcHRzL3Rlc3QtY2FwYWJpbGl0eS1pbmRleC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBzY3JpcHQgd2l0aCBoYXJkY29kZWQgdGVzdCBwZXJzb25hIHBhdGhzIC0gbm90IHByb2R1Y3Rpb24gY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDMnLFxuICAgIGZpbGU6ICcqKi9zY3JpcHRzL3Rlc3QtY2FwYWJpbGl0eS1pbmRleC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBzY3JpcHQgd2l0aCBoYXJkY29kZWQgdGVzdCBwZXJzb25hIHBhdGhzIC0gbm90IHByb2R1Y3Rpb24gY29kZSdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtMjItMDAxJyxcbiAgICBmaWxlOiAndGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIGhhcmRjb2RlZCB0ZXN0IHBhdGhzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdDV0UtMjItMDAxJyxcbiAgICBmaWxlOiAnKiovdGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIGhhcmRjb2RlZCB0ZXN0IHBhdGhzIC0gbm8gdXNlciBpbnB1dCdcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICd0ZXN0LW1lbW9yeS1lZGl0LmpzJyxcbiAgICByZWFzb246ICdUZXN0IGZpbGUgZm9yIG1lbW9yeSBlZGl0aW5nIC0gbm8gdXNlciBpbnB1dCBwcm9jZXNzaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3Rlc3QtbWVtb3J5LWVkaXQuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSBmb3IgbWVtb3J5IGVkaXRpbmcgLSBubyB1c2VyIGlucHV0IHByb2Nlc3NpbmcnXG4gIH0sXG5cbiAgLy8gQWRkaXRpb25hbCBzdXBwcmVzc2lvbnMgZm9yIHJlbWFpbmluZyBpc3N1ZXNcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAndGVzdHMvZXhwZXJpbWVudHMvY2FwYWJpbGl0eS1pbmRleC1kb2NrZXItdGVzdC5qcycsXG4gICAgcmVhc29uOiAnVGVzdCBmaWxlIHVzaW5nIHNwYXduIHdpdGggaGFyZGNvZGVkIGFycmF5IGFyZ3VtZW50cyBhdCBsaW5lIDI3OSAtIG5vIHVzZXIgaW5wdXQnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJyoqL3Rlc3RzL2V4cGVyaW1lbnRzL2NhcGFiaWxpdHktaW5kZXgtZG9ja2VyLXRlc3QuanMnLFxuICAgIHJlYXNvbjogJ1Rlc3QgZmlsZSB1c2luZyBzcGF3biB3aXRoIGhhcmRjb2RlZCBhcnJheSBhcmd1bWVudHMgYXQgbGluZSAyNzkgLSBubyB1c2VyIGlucHV0J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMScsXG4gICAgZmlsZTogJ3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCBsb2FkaW5nIHRlc3QgcGVyc29uYXMgd2l0aCBoYXJkY29kZWQgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwMScsXG4gICAgZmlsZTogJyoqL3NjcmlwdHMvdGVzdC1jYXBhYmlsaXR5LWluZGV4LmpzJyxcbiAgICByZWFzb246ICdUZXN0IHNjcmlwdCBsb2FkaW5nIHRlc3QgcGVyc29uYXMgd2l0aCBoYXJkY29kZWQgcGF0aHMgLSBub3QgcHJvZHVjdGlvbiBjb2RlJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gcGFja2FnZXMvc2FmZXR5IFN1cHByZXNzaW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0ludGVudGlvbmFsIG5hdGl2ZSBkaWFsb2cgZXhlY3V0aW9uLiBtYWNPUyB1c2VzIGZpeGVkIC91c3IvYmluL29zYXNjcmlwdCB3aXRoIGNvbnN0YW50IHNvdXJjZSBhbmQgc2VwYXJhdGUgYXJndiB2YWx1ZXM7IExpbnV4IHNoZWxsIGFyZ3VtZW50cyBhcmUgUE9TSVgtZXNjYXBlZDsgUG93ZXJTaGVsbCB2YWx1ZXMgYXJlIGVzY2FwZWQgYmVmb3JlIEJhc2U2NCBlbmNvZGluZydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovcGFja2FnZXMvc2FmZXR5L3NyYy9EaXNwbGF5U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnSW50ZW50aW9uYWwgbmF0aXZlIGRpYWxvZyBleGVjdXRpb24uIG1hY09TIHVzZXMgZml4ZWQgL3Vzci9iaW4vb3Nhc2NyaXB0IHdpdGggY29uc3RhbnQgc291cmNlIGFuZCBzZXBhcmF0ZSBhcmd2IHZhbHVlczsgTGludXggc2hlbGwgYXJndW1lbnRzIGFyZSBQT1NJWC1lc2NhcGVkOyBQb3dlclNoZWxsIHZhbHVlcyBhcmUgZXNjYXBlZCBiZWZvcmUgQmFzZTY0IGVuY29kaW5nJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0Rpc3BsYXlTZXJ2aWNlIHRyZWF0cyB2YWx1ZXMgYXMgb3BhcXVlIFVJIHRleHQuIG1hY09TIHZhbHVlcyBhcmUgcGFzc2VkIGFzIHByb2Nlc3MgYXJndW1lbnRzIHJhdGhlciB0aGFuIHNvdXJjZTsgb3RoZXIgcGxhdGZvcm1zIGVuY29kZSBvciBlc2NhcGUgdmFsdWVzIGF0IHRoZWlyIGludGVycHJldGVyIGJvdW5kYXJ5J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJyoqL3BhY2thZ2VzL3NhZmV0eS9zcmMvRGlzcGxheVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ0Rpc3BsYXlTZXJ2aWNlIHRyZWF0cyB2YWx1ZXMgYXMgb3BhcXVlIFVJIHRleHQuIG1hY09TIHZhbHVlcyBhcmUgcGFzc2VkIGFzIHByb2Nlc3MgYXJndW1lbnRzIHJhdGhlciB0aGFuIHNvdXJjZTsgb3RoZXIgcGxhdGZvcm1zIGVuY29kZSBvciBlc2NhcGUgdmFsdWVzIGF0IHRoZWlyIGludGVycHJldGVyIGJvdW5kYXJ5J1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3BhY2thZ2VzL3NhZmV0eS9zcmMvVGllcmVkU2FmZXR5U2VydmljZS50cycsXG4gICAgcmVhc29uOiAnVGllcmVkU2FmZXR5U2VydmljZSB2YWxpZGF0ZXMgb3BlcmF0aW9uIHNhZmV0eSBsZXZlbHMsIG5vdCB1c2VyIGlucHV0LiBJbnB1dCB2YWxpZGF0aW9uIHdpdGggVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGhhbmRsZWQgYnkgdXBzdHJlYW0gdmFsaWRhdG9ycydcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICcqKi9wYWNrYWdlcy9zYWZldHkvc3JjL1RpZXJlZFNhZmV0eVNlcnZpY2UudHMnLFxuICAgIHJlYXNvbjogJ1RpZXJlZFNhZmV0eVNlcnZpY2UgdmFsaWRhdGVzIG9wZXJhdGlvbiBzYWZldHkgbGV2ZWxzLCBub3QgdXNlciBpbnB1dC4gSW5wdXQgdmFsaWRhdGlvbiB3aXRoIFVuaWNvZGUgbm9ybWFsaXphdGlvbiBpcyBoYW5kbGVkIGJ5IHVwc3RyZWFtIHZhbGlkYXRvcnMnXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBEb2NrZXIgVG9rZW4gTWVhc3VyZW1lbnQgU2NyaXB0IC0gUFIgIzI5MlxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIHtcbiAgICBydWxlOiAnT1dBU1AtQTAzLTAwMicsXG4gICAgZmlsZTogJ3NjcmlwdHMvbWVhc3VyZS1kb2NrZXItdG9rZW5zLnRzJyxcbiAgICByZWFzb246ICdDb21tYW5kIGluamVjdGlvbiBtaXRpZ2F0ZWQ6IGludGVyZmFjZU1vZGUgYW5kIGVuZHBvaW50TW9kZSBhcmUgdmFsaWRhdGVkIGFnYWluc3QgVkFMSURfSU5URVJGQUNFX01PREVTIGFuZCBWQUxJRF9FTkRQT0lOVF9NT0RFUyBhbGxvd2xpc3RzIGJlZm9yZSB1c2UgaW4gc3Bhd24oKS4gVHlwZVNjcmlwdCB0eXBlcyBhbHNvIGNvbnN0cmFpbiBwYXJhbWV0ZXJzIGF0IGNvbXBpbGUgdGltZS4gUFIgIzI5MidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdPV0FTUC1BMDMtMDAyJyxcbiAgICBmaWxlOiAnKiovc2NyaXB0cy9tZWFzdXJlLWRvY2tlci10b2tlbnMudHMnLFxuICAgIHJlYXNvbjogJ0NvbW1hbmQgaW5qZWN0aW9uIG1pdGlnYXRlZDogaW50ZXJmYWNlTW9kZSBhbmQgZW5kcG9pbnRNb2RlIGFyZSB2YWxpZGF0ZWQgYWdhaW5zdCBWQUxJRF9JTlRFUkZBQ0VfTU9ERVMgYW5kIFZBTElEX0VORFBPSU5UX01PREVTIGFsbG93bGlzdHMgYmVmb3JlIHVzZSBpbiBzcGF3bigpLiBUeXBlU2NyaXB0IHR5cGVzIGFsc28gY29uc3RyYWluIHBhcmFtZXRlcnMgYXQgY29tcGlsZSB0aW1lLiBQUiAjMjkyJ1xuICB9LFxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gVW5pZmllZCBMb2dnaW5nIFN5c3RlbSDigJQgUFIgIzQ3MVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFNpbmtzIHJlY2VpdmUgcHJlLWNvbnN0cnVjdGVkIFVuaWZpZWRMb2dFbnRyeSBvYmplY3RzIGZyb20gTG9nTWFuYWdlci5cbiAgLy8gRGF0YSBlbnRlcnMgdGhlIHBpcGVsaW5lIHRocm91Z2ggTG9nSG9va3Mgd2hpY2ggY3JlYXRlcyBlbnRyaWVzIGZyb21cbiAgLy8gaW50ZXJuYWwgc3lzdGVtIGV2ZW50cy4gTUNQTG9nZ2VyIHNhbml0aXplcyB2aWEgc2FuaXRpemVNZXNzYWdlKCkgYW5kXG4gIC8vIHNhbml0aXplRGF0YSgpIGJlZm9yZSBlbWl0dGluZy4gT3RoZXIgc291cmNlcyAoU2VjdXJpdHlNb25pdG9yLFxuICAvLyBQZXJmb3JtYW5jZU1vbml0b3IsIGV0Yy4pIGVtaXQgaW50ZXJuYWwgc3lzdGVtIGRhdGEsIG5vdCB1c2VyIGlucHV0LlxuICAvLyBUaGUgU1NFIHZpZXdlciBIVE1MLWVzY2FwZXMgYWxsIGR5bmFtaWMgY29udGVudCB2aWEgZXNjSHRtbCgpL1xuICAvLyBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgpLlxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9sb2dnaW5nL3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdQdXJlIHR5cGUgZGVmaW5pdGlvbnMgYW5kIGludGVyZmFjZXMg4oCUIG5vIGRhdGEgcHJvY2Vzc2luZyBvciB1c2VyIGlucHV0IGhhbmRsaW5nLiBQUiAjNDcxJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9sb2dnaW5nL3NpbmtzL01lbW9yeUxvZ1NpbmsudHMnLFxuICAgIHJlYXNvbjogJ1JlY2VpdmVzIHByZS1jb25zdHJ1Y3RlZCBVbmlmaWVkTG9nRW50cnkgb2JqZWN0cyBmcm9tIExvZ01hbmFnZXIuIFF1ZXJ5IHBhcmFtZXRlcnMgYXJlIHVzZWQgYXMgcmVhZC1vbmx5IHN1YnN0cmluZyBmaWx0ZXJzLCBub3Qgd3JpdHRlbiB0byBvdXRwdXQuIFBSICM0NzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL2xvZ2dpbmcvc2lua3MvRmlsZUxvZ1NpbmsudHMnLFxuICAgIHJlYXNvbjogJ1JlY2VpdmVzIHByZS1mb3JtYXR0ZWQgZW50cmllcyB2aWEgSUxvZ0Zvcm1hdHRlci4gRmlsZSBwYXRocyBidWlsdCBmcm9tIGhhcmRjb2RlZCBjYXRlZ29yeSBuYW1lcyArIGRhdGVzLiBNQ1BMb2dnZXIgc2FuaXRpemVzIHVwc3RyZWFtIHZpYSBzYW5pdGl6ZU1lc3NhZ2Uvc2FuaXRpemVEYXRhOyBvdGhlciBzb3VyY2VzIGVtaXQgaW50ZXJuYWwgc3lzdGVtIGRhdGEuIFBSICM0NzEnXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9yb3V0ZXMvbG9nUm91dGVzLnRzJyxcbiAgICByZWFzb246ICdKU09OLXNlcmlhbGl6ZXMgcHJlLWNvbnN0cnVjdGVkIFVuaWZpZWRMb2dFbnRyeSBvYmplY3RzIG92ZXIgU1NFLiBBbGwgcXVlcnkgcGFyYW1ldGVycyBhcmUgdmFsaWRhdGVkIHN0cmluZ3MgcGFzc2VkIHRvIE1lbW9yeUxvZ1NpbmsucXVlcnkoKS4gTm8gSFRNTCByZW5kZXJpbmcuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zdG9yYWdlL3R5cGVzLnRzJyxcbiAgICByZWFzb246ICdGQUxTRSBQT1NJVElWRTogVHlwZS1vbmx5IGludGVyZmFjZSBkZWNsYXJhdGlvbnMgKFN0b3JhZ2VJdGVtTWV0YWRhdGEsIEVsZW1lbnRJbmRleEVudHJ5LCBNYW5pZmVzdERpZmZSZXN1bHQpLiBObyBleGVjdXRhYmxlIGlucHV0LXByb2Nlc3NpbmcgY29kZTsgVW5pY29kZSBub3JtYWxpemF0aW9uIGlzIGVuZm9yY2VkIGluIGNvbmNyZXRlIHN0b3JhZ2UgcGFyc2Vycy9sYXllcnMuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy9zdG9yYWdlL0lTdG9yYWdlQmFja2VuZC50cycsXG4gICAgcmVhc29uOiAnRkFMU0UgUE9TSVRJVkU6IEludGVyZmFjZSBjb250cmFjdCBvbmx5IGZvciBiYWNrZW5kIGFic3RyYWN0aW9uLiBObyBydW50aW1lIHVzZXItaW5wdXQgaGFuZGxpbmcgaW4gdGhpcyBmaWxlOyBub3JtYWxpemF0aW9uIGlzIGVuZm9yY2VkIGJ5IGltcGxlbWVudGluZyBzdG9yYWdlIGxheWVycyBhbmQgdmFsaWRhdG9ycy4nXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBWZXJpZmljYXRpb25Ob3RpZmllciBGYWxzZSBQb3NpdGl2ZXMg4oCUIElzc3VlICM1MzdcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ09XQVNQLUEwMy0wMDInLFxuICAgIGZpbGU6ICdzcmMvc2VydmljZXMvVmVyaWZpY2F0aW9uTm90aWZpZXIudHMnLFxuICAgIHJlYXNvbjogJ0ZBTFNFIFBPU0lUSVZFOiBMaW5lcyAxMTcsIDEzMiwgMTQ1IHVzZSBzcGF3bigpIHdpdGggYXJyYXkgYXJndW1lbnRzIChubyBzaGVsbCBpbnZvY2F0aW9uKS4gemVuaXR5L2tkaWFsb2cveG1lc3NhZ2UgYXJlIGRpc3BsYXktb25seSB0b29scyB0aGF0IHJlbmRlciB0ZXh0IGluIEdVSSBkaWFsb2dzIHdpdGhvdXQgaW50ZXJwcmV0aW5nIGNvbnRlbnQgYXMgY29kZS4gYWdlbnROYW1lIChmcm9tIE1DUCBwYXJhbXMpIGFuZCBjb2RlIChjcnlwdG9ncmFwaGljIGFscGhhbnVtZXJpYykgZmxvdyBpbnRvIGRpc3BsYXkgdGV4dCBvbmx5LiBTZWUgSXNzdWUgIzUzNyBldmlkZW5jZSB0cmFjZS4nXG4gIH0sXG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBXZWIgVUkgQ2xpZW50LVNpZGUgRmFsc2UgUG9zaXRpdmVzIOKAlCBSQzEgU2VjdXJpdHkgQXVkaXRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNScsXG4gICAgZmlsZTogJ3NyYy93ZWIvcHVibGljL2FwcC5qcycsXG4gICAgcmVhc29uOiAnQ2xpZW50LXNpZGUgYnJvd3NlciBKYXZhU2NyaXB0LiBTZWN1cmVZYW1sUGFyc2VyIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LiBzYWZlUGFyc2VZYW1sKCkgd3JhcHBlciB1c2VzIENPUkVfU0NIRU1BIChzYWZlLCBubyBjdXN0b20gdHlwZXMpIHdpdGggNTEyS0Igc2l6ZSBsaW1pdC4gRGF0YSBzZXJ2ZWQgZnJvbSBsb2NhbGhvc3Qgb3IgdHJ1c3RlZCBHaXRIdWIgY29sbGVjdGlvbiBBUEkuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcHVibGljL2FwcC5qcycsXG4gICAgcmVhc29uOiAnQ2xpZW50LXNpZGUgYnJvd3NlciBKYXZhU2NyaXB0LiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LiBJbnB1dCBzZXJ2ZWQgZnJvbSBEb2xsaG91c2VNQ1Agc2VydmVyIHdoaWNoIG5vcm1hbGl6ZXMgYmVmb3JlIHNlcnZpbmcuJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcHVibGljL2NvbnNvbGVBdXRoLmpzJyxcbiAgICByZWFzb246ICdDbGllbnQtc2lkZSBicm93c2VyIEphdmFTY3JpcHQgKCMxNzgwIGNvbnNvbGUgYXV0aCBoZWxwZXIpLiBVbmljb2RlVmFsaWRhdG9yIGlzIGEgTm9kZS5qcyBtb2R1bGUgdW5hdmFpbGFibGUgaW4gYnJvd3NlciBjb250ZXh0LiBUb2tlbiBpcyByZWFkIGZyb20gYSBzZXJ2ZXItaW5qZWN0ZWQgbWV0YSB0YWcsIG5vcm1hbGl6ZWQgdmlhIG5hdGl2ZSBTdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZShcXCdORkNcXCcpLCBhbmQgcmVqZWN0ZWQgdW5sZXNzIGl0IG1hdGNoZXMgL15bMC05YS1mXXs2NH0kLyAoc3RyaWN0IGhleCBmb3JtYXQpLiBUaGUgYXV0aG9yaXRhdGl2ZSBub3JtYWxpemF0aW9uICsgdmFsaWRhdGlvbiBoYXBwZW5zIGluIHRoZSBtaWRkbGV3YXJlIHNhbml0aXplUHJlc2VudGVkVG9rZW4oKSBhbmQgY29uc29sZVRva2VuLnZlcmlmeSgpIG9uIHRoZSBzZXJ2ZXIgc2lkZSBiZWZvcmUgYW55IGNvbXBhcmlzb24gcnVucy4nXG4gIH0sXG4gIHtcbiAgICBydWxlOiAnRE1DUC1TRUMtMDA0JyxcbiAgICBmaWxlOiAnc3JjL3dlYi9zZXJ2ZXIudHMnLFxuICAgIHJlYXNvbjogJ05GQyBub3JtYWxpemF0aW9uIGFkZGVkIHRvIHJlcS5wYXRoIGluIFNQQSBmYWxsYmFjayBoYW5kbGVyIChsaW5lIDE4MCkuIEZpbGUtbGV2ZWwgc2Nhbm5lciBmbGFncyBkZXNwaXRlIHBlci1pbnB1dCBmaXguJ1xuICB9LFxuICB7XG4gICAgcnVsZTogJ0RNQ1AtU0VDLTAwNCcsXG4gICAgZmlsZTogJ3NyYy93ZWIvcm91dGVzLnRzJyxcbiAgICByZWFzb246ICdORkMgbm9ybWFsaXphdGlvbiB2aWEgbm9ybWFsaXplSW5wdXQoKSBhcHBsaWVkIHRvIGFsbCByZXEucGFyYW1zLiBGaWxlLWxldmVsIHNjYW5uZXIgZmxhZ3MgZGVzcGl0ZSBwZXItaW5wdXQgZml4LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvY29udmVydGVycy9BZ2VudFNraWxsQ29udmVydGVyLnRzJyxcbiAgICByZWFzb246ICdORkMgbm9ybWFsaXphdGlvbiBhZGRlZCB0byBib3RoIGNvbnZlcnRBZ2VudFRvRG9sbGhvdXNlKCkgYW5kIGNvbnZlcnREb2xsaG91c2VUb0FnZW50KCkgZW50cnkgcG9pbnRzLiBGaWxlLWxldmVsIHNjYW5uZXIgZmxhZ3MgZGVzcGl0ZSBwZXItaW5wdXQgZml4LidcbiAgfSxcbiAge1xuICAgIHJ1bGU6ICdETUNQLVNFQy0wMDQnLFxuICAgIGZpbGU6ICdzcmMvd2ViL3JvdXRlcy9wZXJtaXNzaW9uUm91dGVzLnRzJyxcbiAgICByZWFzb246ICdORkMgbm9ybWFsaXphdGlvbiBhcHBsaWVkIHRvIHRvb2xfbmFtZSBhbmQgcGxhdGZvcm0gaW5wdXRzIGF0IEhUVFAgYm91bmRhcnkgYmVmb3JlIGZvcndhcmRpbmcgdG8gTUNQQVFMSGFuZGxlci5oYW5kbGVSZWFkKCkuIEdFVCAvcGVybWlzc2lvbnMvc3RhdHVzIGhhcyBubyB1c2VyLXN1cHBsaWVkIHN0cmluZyBwYXJhbWV0ZXJzLiBTY2FubmVyIG1heSBmbGFnIGZpbGUtbGV2ZWwgZGVzcGl0ZSBwZXItaW5wdXQgZml4LidcbiAgfVxuXTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBzdXBwcmVzc2lvbiBjb25maWd1cmF0aW9uIGF0IHN0YXJ0dXBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3VwcHJlc3Npb25zKCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBzZWVuUGF0dGVybnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgXG4gIGZvciAoY29uc3Qgc3VwcHJlc3Npb24gb2Ygc3VwcHJlc3Npb25zKSB7XG4gICAgLy8gQ2hlY2sgZm9yIGVtcHR5IHJlYXNvbnNcbiAgICBpZiAoIXN1cHByZXNzaW9uLnJlYXNvbiB8fCBzdXBwcmVzc2lvbi5yZWFzb24udHJpbSgpLmxlbmd0aCA8IDEwKSB7XG4gICAgICBlcnJvcnMucHVzaChgU3VwcHJlc3Npb24gZm9yICR7c3VwcHJlc3Npb24ucnVsZX0gaGFzIGluc3VmZmljaWVudCByZWFzb25gKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2hlY2sgZm9yIHZhbGlkIHJ1bGUgcGF0dGVybnNcbiAgICBjb25zdCBydWxlUGF0dGVybiA9IC9eKERNQ1AtU0VDLVxcZHszfXxPV0FTUC1bQS1aXVxcZHsyfS1cXGR7M318Q1dFLVxcZCstXFxkezN9fFxcKikkLztcbiAgICBpZiAoIXN1cHByZXNzaW9uLnJ1bGUubWF0Y2gocnVsZVBhdHRlcm4pKSB7XG4gICAgICBlcnJvcnMucHVzaChgSW52YWxpZCBydWxlIHBhdHRlcm46ICR7c3VwcHJlc3Npb24ucnVsZX1gKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZSBzdXBwcmVzc2lvbnNcbiAgICBjb25zdCBrZXkgPSBgJHtzdXBwcmVzc2lvbi5ydWxlfToke3N1cHByZXNzaW9uLmZpbGUgfHwgJyonfWA7XG4gICAgaWYgKHNlZW5QYXR0ZXJucy5oYXMoa2V5KSkge1xuICAgICAgZXJyb3JzLnB1c2goYER1cGxpY2F0ZSBzdXBwcmVzc2lvbjogJHtrZXl9YCk7XG4gICAgfVxuICAgIHNlZW5QYXR0ZXJucy5hZGQoa2V5KTtcbiAgICBcbiAgICAvLyBWYWxpZGF0ZSBnbG9iIHBhdHRlcm5zXG4gICAgaWYgKHN1cHByZXNzaW9uLmZpbGU/LmluY2x1ZGVzKCcqKicpICYmICFzdXBwcmVzc2lvbi5maWxlLmluY2x1ZGVzKCcqKi8nKSkge1xuICAgICAgZXJyb3JzLnB1c2goYEludmFsaWQgZ2xvYiBwYXR0ZXJuIGluICR7c3VwcHJlc3Npb24uZmlsZX0gLSAqKiBtdXN0IGJlIGZvbGxvd2VkIGJ5IC9gKTtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiBlcnJvcnM7XG59XG5cbi8qKlxuICogQ29udmVydCBnbG9iIHBhdHRlcm4gdG8gcmVnZXggcGF0dGVybiBzYWZlbHlcbiAqIFVzaW5nIGEgcHJvcGVyIGdsb2ItdG8tcmVnZXggY29udmVyc2lvbiB0aGF0IGhhbmRsZXMgYWxsIGVkZ2UgY2FzZXNcbiAqL1xuZnVuY3Rpb24gZ2xvYlRvUmVnZXgoZ2xvYjogc3RyaW5nKTogUmVnRXhwIHtcbiAgLy8gQ2hlY2sgY2FjaGUgZmlyc3RcbiAgY29uc3QgY2FjaGVkID0gY2FjaGUuZ2V0UmVnZXgoZ2xvYik7XG4gIGlmIChjYWNoZWQpIHJldHVybiBjYWNoZWQ7XG4gIFxuICAvLyBTcGVjaWFsIGNhc2U6IGlmIGdsb2Igc3RhcnRzIHdpdGggKiwgaXQgc2hvdWxkIG1hdGNoIGFueXRoaW5nIGF0IHRoZSBiZWdpbm5pbmdcbiAgbGV0IHByb2Nlc3NlZEdsb2IgPSBnbG9iO1xuICBsZXQgcHJlZml4ID0gJyc7XG4gIGlmIChnbG9iLnN0YXJ0c1dpdGgoJyonKSAmJiAhZ2xvYi5zdGFydHNXaXRoKCcqKicpKSB7XG4gICAgcHJlZml4ID0gJyg/Oi4qLyk/JzsgIC8vIE9wdGlvbmFsIHBhdGggcHJlZml4XG4gICAgcHJvY2Vzc2VkR2xvYiA9IGdsb2Iuc3Vic3RyaW5nKDEpO1xuICB9XG4gIFxuICAvLyBFc2NhcGUgYWxsIHJlZ2V4IHNwZWNpYWwgY2hhcmFjdGVycyBleGNlcHQgKiBhbmQgL1xuICAvLyBGaXhlZDogUHJvcGVybHkgZXNjYXBlIGJhY2tzbGFzaGVzIGFuZCBvdGhlciBzcGVjaWFsIHJlZ2V4IGNoYXJhY3RlcnNcbiAgbGV0IHBhdHRlcm4gPSBwcm9jZXNzZWRHbG9iLnJlcGxhY2VBbGwoL1tcXFxcXiQuKCkrP3t9W1xcXXxdL2csICdcXFxcJCYnKTtcblxuICAvLyBIYW5kbGUgZ2xvYiBwYXR0ZXJucyBpbiBjb3JyZWN0IG9yZGVyXG4gIC8vIFJlcGxhY2UgKiogYmVmb3JlICogdG8gYXZvaWQgY29uZmxpY3RzXG4gIHBhdHRlcm4gPSBwYXR0ZXJuXG4gICAgLnJlcGxhY2VBbGwoJyoqJywgJzw8R0xPQlNUQVI+PicpICAgICAvLyBUZW1wb3JhcnkgcGxhY2Vob2xkZXIgZm9yICoqXG4gICAgLnJlcGxhY2VBbGwoJyonLCAnPDxTVEFSPj4nKSAgICAgICAgICAgIC8vIFRlbXBvcmFyeSBwbGFjZWhvbGRlciBmb3IgKlxuICAgIC5yZXBsYWNlQWxsKCc8PEdMT0JTVEFSPj4vJywgJyg/Oi4qLyk/JykgLy8gKiovIG1hdGNoZXMgYW55IG51bWJlciBvZiBkaXJlY3RvcmllcyBpbmNsdWRpbmcgbm9uZVxuICAgIC5yZXBsYWNlQWxsKCc8PEdMT0JTVEFSPj4nLCAnLionKSAgICAgICAvLyAqKiBtYXRjaGVzIGFueXRoaW5nXG4gICAgLnJlcGxhY2VBbGwoJzw8U1RBUj4+JywgJ1teL10qJykgICAgICAgIC8vICogbWF0Y2hlcyBhbnl0aGluZyBleGNlcHQgZGlyZWN0b3J5IHNlcGFyYXRvclxuICAgIC5yZXBsYWNlQWxsKCcvJywgJ1xcXFwvJyk7ICAgICAgICAgICAgICAgIC8vIEVzY2FwZSBmb3J3YXJkIHNsYXNoZXNcbiAgXG4gIC8vIENvbWJpbmUgcHJlZml4IGFuZCBwYXR0ZXJuXG4gIGNvbnN0IGZ1bGxQYXR0ZXJuID0gcHJlZml4ICsgcGF0dGVybjtcbiAgXG4gIC8vIEFkZCBhbmNob3JzIHRvIGVuc3VyZSBmdWxsIHBhdGggbWF0Y2hcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeJHtmdWxsUGF0dGVybn0kYCk7XG4gIFxuICAvLyBDYWNoZSB0aGUgY29tcGlsZWQgcmVnZXhcbiAgY2FjaGUuc2V0UmVnZXgoZ2xvYiwgcmVnZXgpO1xuICBcbiAgcmV0dXJuIHJlZ2V4O1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSBmaWxlIHBhdGggZm9yIGNvbnNpc3RlbnQgbWF0Y2hpbmdcbiAqIEhhbmRsZXMgYm90aCBhYnNvbHV0ZSBhbmQgcmVsYXRpdmUgcGF0aHMgYWNyb3NzIGRpZmZlcmVudCBwbGF0Zm9ybXNcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUGF0aChmaWxlUGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gQ29udmVydCBiYWNrc2xhc2hlcyB0byBmb3J3YXJkIHNsYXNoZXMgZm9yIFdpbmRvd3MgcGF0aHNcbiAgbGV0IG5vcm1hbGl6ZWQgPSBmaWxlUGF0aC5yZXBsYWNlQWxsKCdcXFxcJywgJy8nKTtcblxuICAvLyBSZW1vdmUgZHVwbGljYXRlIHNsYXNoZXNcbiAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQucmVwbGFjZUFsbCgvXFwvKy9nLCAnLycpO1xuICBcbiAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGlmIHByZXNlbnRcbiAgaWYgKG5vcm1hbGl6ZWQuZW5kc1dpdGgoJy8nKSAmJiBub3JtYWxpemVkLmxlbmd0aCA+IDEpIHtcbiAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zbGljZSgwLCAtMSk7XG4gIH1cbiAgXG4gIHJldHVybiBub3JtYWxpemVkO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgcmVsYXRpdmUgcGF0aCBmcm9tIGFic29sdXRlIHBhdGhcbiAqIEhhbmRsZXMgdmFyaW91cyBDSS9DRCBhbmQgbG9jYWwgZGV2ZWxvcG1lbnQgcGF0aCBmb3JtYXRzXG4gKi9cbmZ1bmN0aW9uIGdldFJlbGF0aXZlUGF0aChhYnNvbHV0ZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVQYXRoKGFic29sdXRlUGF0aCk7XG4gIFxuICAvLyBJZiBhbHJlYWR5IGEgcmVsYXRpdmUgcGF0aCwgcmV0dXJuIGFzLWlzXG4gIGlmICghbm9ybWFsaXplZC5zdGFydHNXaXRoKCcvJykgJiYgIW5vcm1hbGl6ZWQubWF0Y2goL15bQS1aXTovaSkpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplZDtcbiAgfVxuICBcbiAgLy8gRGVmaW5lIGNvbW1vbiBwcm9qZWN0IHNvdXJjZSBkaXJlY3Rvcmllc1xuICBjb25zdCBwcm9qZWN0RGlycyA9IFsnc3JjLycsICdfX3Rlc3RzX18vJywgJ3NjcmlwdHMvJywgJ2RvY3MvJywgJ3Rlc3RzLycsICd0ZXN0LWFyY2hpdmUvJywgJ2xpYi8nXTtcbiAgXG4gIC8vIEZpbmQgdGhlIHBvc2l0aW9uIG9mIGNvbW1vbiBwcm9qZWN0IGRpcmVjdG9yaWVzIGluIHRoZSBwYXRoXG4gIGxldCBiZXN0TWF0Y2ggPSB7IGluZGV4OiAtMSwgZGlyOiAnJywgcmVsYXRpdmVQYXRoOiAnJyB9O1xuICBcbiAgZm9yIChjb25zdCBkaXIgb2YgcHJvamVjdERpcnMpIHtcbiAgICAvLyBMb29rIGZvciAvZGlyIHBhdHRlcm4gKHdpdGggbGVhZGluZyBzbGFzaCB0byBhdm9pZCBmYWxzZSBtYXRjaGVzKVxuICAgIGNvbnN0IHNlYXJjaFBhdHRlcm4gPSBgLyR7ZGlyfWA7XG4gICAgY29uc3QgaW5kZXggPSBub3JtYWxpemVkLmxhc3RJbmRleE9mKHNlYXJjaFBhdHRlcm4pO1xuICAgIFxuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAvLyBFeHRyYWN0IGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIHBhcmVudCBvZiB0aGlzIGRpcmVjdG9yeVxuICAgICAgLy8gRm9yIGV4YW1wbGU6IC9ob21lL3VzZXIvcHJvamVjdC9zcmMvZmlsZS50cyAtPiBzcmMvZmlsZS50c1xuICAgICAgY29uc3QgZGlyU3RhcnRJbmRleCA9IGluZGV4ICsgMTsgLy8gU2tpcCB0aGUgbGVhZGluZyBzbGFzaFxuICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZC5zdWJzdHJpbmcoZGlyU3RhcnRJbmRleCk7XG4gICAgICBcbiAgICAgIC8vIFZlcmlmeSB0aGlzIGxvb2tzIGxpa2UgYSB2YWxpZCBwcm9qZWN0IGZpbGVcbiAgICAgIGlmIChyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChkaXIpICYmIHJlbGF0aXZlUGF0aC5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgIC8vIEtlZXAgdGhlIG1hdGNoIHRoYXQgYXBwZWFycyBsYXRlc3QgaW4gdGhlIHBhdGggKG1vc3Qgc3BlY2lmaWMpXG4gICAgICAgIGlmIChpbmRleCA+IGJlc3RNYXRjaC5pbmRleCkge1xuICAgICAgICAgIGJlc3RNYXRjaCA9IHsgaW5kZXgsIGRpciwgcmVsYXRpdmVQYXRoIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIC8vIElmIHdlIGZvdW5kIGEgbWF0Y2gsIHJldHVybiBpdFxuICBpZiAoYmVzdE1hdGNoLmluZGV4ID49IDApIHtcbiAgICByZXR1cm4gYmVzdE1hdGNoLnJlbGF0aXZlUGF0aDtcbiAgfVxuICBcbiAgLy8gRmFsbGJhY2s6IFRyeSB0byBmaW5kIGNvbW1vbiBmaWxlIHBhdHRlcm5zIHRoYXQgaW5kaWNhdGUgcHJvamVjdCBmaWxlc1xuICBjb25zdCBmaWxlUGF0dGVybnMgPSBbXG4gICAgL1xcLyhzcmN8X190ZXN0c19ffHNjcmlwdHN8dGVzdHx0ZXN0c3xsaWIpXFwvLipcXC5banRdc3g/JC8sXG4gICAgL1xcLyhzcmN8X190ZXN0c19ffHNjcmlwdHN8dGVzdHx0ZXN0c3xsaWIpXFwvLipcXC5qc29uJC8sXG4gICAgL1xcLyhzcmN8X190ZXN0c19ffHNjcmlwdHN8dGVzdHx0ZXN0c3xsaWIpXFwvLipcXC55YT9tbCQvLFxuICAgIC9cXC9wYWNrYWdlXFwuanNvbiQvLFxuICAgIC9cXC9wYWNrYWdlLWxvY2tcXC5qc29uJC8sXG4gICAgL1xcL3RzY29uZmlnLipcXC5qc29uJC8sXG4gICAgL1xcL1xcLi4qcmNcXC5qc29uJC8gIC8vIC5lc2xpbnRyYy5qc29uLCBldGMuXG4gIF07XG4gIFxuICBmb3IgKGNvbnN0IHBhdHRlcm4gb2YgZmlsZVBhdHRlcm5zKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBub3JtYWxpemVkLm1hdGNoKHBhdHRlcm4pO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgLy8gRmluZCB3aGVyZSB0aGUgbWF0Y2ggc3RhcnRzIGFuZCBleHRyYWN0IGZyb20gdGhlcmVcbiAgICAgIGNvbnN0IG1hdGNoSW5kZXggPSBub3JtYWxpemVkLmluZGV4T2YobWF0Y2hbMF0pO1xuICAgICAgaWYgKG1hdGNoSW5kZXggPj0gMCkge1xuICAgICAgICByZXR1cm4gbm9ybWFsaXplZC5zdWJzdHJpbmcobWF0Y2hJbmRleCArIDEpOyAvLyBTa2lwIGxlYWRpbmcgL1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLy8gTGFzdCByZXNvcnQ6IGlmIHBhdGggY29udGFpbnMgY29tbW9uIGV4dGVuc2lvbnMsIHRyeSB0byBleHRyYWN0IGEgcmVhc29uYWJsZSByZWxhdGl2ZSBwYXRoXG4gIGlmIChub3JtYWxpemVkLm1hdGNoKC9cXC4odHN8anN8dHN4fGpzeHxqc29ufHlhbWx8eW1sKSQvKSkge1xuICAgIC8vIEZpbmQgdGhlIGxhc3Qgc2VnbWVudCB0aGF0IGxvb2tzIGxpa2UgYSBwcm9qZWN0IGRpcmVjdG9yeVxuICAgIGNvbnN0IHNlZ21lbnRzID0gbm9ybWFsaXplZC5zcGxpdCgnLycpO1xuICAgIGZvciAobGV0IGkgPSBzZWdtZW50cy5sZW5ndGggLSAyOyBpID49IDA7IGktLSkge1xuICAgICAgaWYgKHByb2plY3REaXJzLnNvbWUoZGlyID0+IGRpci5zdGFydHNXaXRoKHNlZ21lbnRzW2ldKSkpIHtcbiAgICAgICAgcmV0dXJuIHNlZ21lbnRzLnNsaWNlKGkpLmpvaW4oJy8nKTtcbiAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gRm9yIHJvb3QtbGV2ZWwgZmlsZXMgbGlrZSBwYWNrYWdlLWxvY2suanNvbiwganVzdCByZXR1cm4gdGhlIGZpbGVuYW1lXG4gICAgY29uc3QgZmlsZW5hbWUgPSBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAoZmlsZW5hbWUgJiYgZmlsZW5hbWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgcmV0dXJuIGZpbGVuYW1lO1xuICAgIH1cbiAgfVxuICBcbiAgLy8gUmV0dXJuIHRoZSBub3JtYWxpemVkIHBhdGggaWYgd2UgY2FuJ3QgZXh0cmFjdCByZWxhdGl2ZVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGZpbmRpbmcgc2hvdWxkIGJlIHN1cHByZXNzZWRcbiAqIE9wdGltaXplZCB3aXRoIGNhY2hpbmcgYW5kIGVhcmx5IHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFN1cHByZXNzKHJ1bGVJZDogc3RyaW5nLCBmaWxlUGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoIWZpbGVQYXRoKSByZXR1cm4gZmFsc2U7XG4gIFxuICAvLyBOb3JtYWxpemUgcGF0aHMgZm9yIGNvbnNpc3RlbnQgbWF0Y2hpbmdcbiAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBub3JtYWxpemVQYXRoKGZpbGVQYXRoKTtcbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gZ2V0UmVsYXRpdmVQYXRoKG5vcm1hbGl6ZWRQYXRoKTtcbiAgXG4gIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChydWxlSWQsIHJlbGF0aXZlUGF0aCk7XG4gIGlmIChjYWNoZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGNhY2hlZDtcbiAgXG4gIC8vIFByb2Nlc3Mgc3VwcHJlc3Npb25zIHdpdGggZWFybHkgcmV0dXJuc1xuICBmb3IgKGNvbnN0IHN1cHByZXNzaW9uIG9mIHN1cHByZXNzaW9ucykge1xuICAgIC8vIFNraXAgaWYgcnVsZSBkb2Vzbid0IG1hdGNoXG4gICAgaWYgKHN1cHByZXNzaW9uLnJ1bGUgIT09ICcqJyAmJiBzdXBwcmVzc2lvbi5ydWxlICE9PSBydWxlSWQpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBcbiAgICAvLyBIYW5kbGUgZ2xvYmFsIHN1cHByZXNzaW9ucyAobm8gZmlsZSBzcGVjaWZpZWQpXG4gICAgaWYgKCFzdXBwcmVzc2lvbi5maWxlKSB7XG4gICAgICBjYWNoZS5zZXQocnVsZUlkLCByZWxhdGl2ZVBhdGgsIHRydWUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIFxuICAgIC8vIENoZWNrIGV4YWN0IGZpbGUgbWF0Y2ggKG1vc3QgY29tbW9uIGNhc2UpXG4gICAgaWYgKHN1cHByZXNzaW9uLmZpbGUgPT09IHJlbGF0aXZlUGF0aCB8fCBzdXBwcmVzc2lvbi5maWxlID09PSBub3JtYWxpemVkUGF0aCkge1xuICAgICAgY2FjaGUuc2V0KHJ1bGVJZCwgcmVsYXRpdmVQYXRoLCB0cnVlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBwYXR0ZXJuIG1hdGNoIG9ubHkgaWYgZmlsZSBjb250YWlucyB3aWxkY2FyZHNcbiAgICBpZiAoc3VwcHJlc3Npb24uZmlsZS5pbmNsdWRlcygnKicpKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZWdleCA9IGdsb2JUb1JlZ2V4KHN1cHByZXNzaW9uLmZpbGUpO1xuICAgICAgICBpZiAocmVnZXgudGVzdChyZWxhdGl2ZVBhdGgpIHx8IHJlZ2V4LnRlc3Qobm9ybWFsaXplZFBhdGgpKSB7XG4gICAgICAgICAgY2FjaGUuc2V0KHJ1bGVJZCwgcmVsYXRpdmVQYXRoLCB0cnVlKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKGBJbnZhbGlkIHN1cHByZXNzaW9uIHBhdHRlcm4gXCIke3N1cHByZXNzaW9uLmZpbGV9XCI6YCwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLy8gTm90IHN1cHByZXNzZWRcbiAgY2FjaGUuc2V0KHJ1bGVJZCwgcmVsYXRpdmVQYXRoLCBmYWxzZSk7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBDbGVhciBzdXBwcmVzc2lvbiBjYWNoZSAodXNlZnVsIGZvciB0ZXN0aW5nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJTdXBwcmVzc2lvbkNhY2hlKCk6IHZvaWQge1xuICBjYWNoZS5jbGVhcigpO1xufVxuXG4vKipcbiAqIEdldCBzdXBwcmVzc2lvbiBzdGF0aXN0aWNzIGZvciByZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN1cHByZXNzaW9uU3RhdHMoKTogeyBcbiAgdG90YWw6IG51bWJlcjsgXG4gIGJ5UnVsZTogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbiAgYnlDYXRlZ29yeTogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbn0ge1xuICBjb25zdCBzdGF0cyA9IHtcbiAgICB0b3RhbDogc3VwcHJlc3Npb25zLmxlbmd0aCxcbiAgICBieVJ1bGU6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gICAgYnlDYXRlZ29yeToge30gYXMgUmVjb3JkPHN0cmluZywgbnVtYmVyPlxuICB9O1xuICBcbiAgZm9yIChjb25zdCBzdXBwcmVzc2lvbiBvZiBzdXBwcmVzc2lvbnMpIHtcbiAgICAvLyBDb3VudCBieSBydWxlXG4gICAgc3RhdHMuYnlSdWxlW3N1cHByZXNzaW9uLnJ1bGVdID0gKHN0YXRzLmJ5UnVsZVtzdXBwcmVzc2lvbi5ydWxlXSB8fCAwKSArIDE7XG4gICAgXG4gICAgLy8gQ291bnQgYnkgY2F0ZWdvcnkgKGV4dHJhY3QgZnJvbSBydWxlIHByZWZpeClcbiAgICBjb25zdCBjYXRlZ29yeSA9IHN1cHByZXNzaW9uLnJ1bGUuc3BsaXQoJy0nKVswXTtcbiAgICBzdGF0cy5ieUNhdGVnb3J5W2NhdGVnb3J5XSA9IChzdGF0cy5ieUNhdGVnb3J5W2NhdGVnb3J5XSB8fCAwKSArIDE7XG4gIH1cbiAgXG4gIHJldHVybiBzdGF0cztcbn1cblxuLy8gVmFsaWRhdGUgc3VwcHJlc3Npb25zIG9uIG1vZHVsZSBsb2FkXG5jb25zdCB2YWxpZGF0aW9uRXJyb3JzID0gdmFsaWRhdGVTdXBwcmVzc2lvbnMoKTtcbmlmICh2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgbG9nZ2VyLndhcm4oJ1N1cHByZXNzaW9uIGNvbmZpZ3VyYXRpb24gd2FybmluZ3M6JywgdmFsaWRhdGlvbkVycm9ycyk7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dollhousemcp/mcp-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.42",
|
|
4
4
|
"description": "DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
"url": "https://github.com/sponsors/mickdarling"
|
|
176
176
|
},
|
|
177
177
|
"dependencies": {
|
|
178
|
-
"@dollhousemcp/safety": "^1.0.
|
|
178
|
+
"@dollhousemcp/safety": "^1.0.2",
|
|
179
179
|
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
180
180
|
"chalk": "^5.6.2",
|
|
181
181
|
"dompurify": "^3.4.11",
|
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.DollhouseMCP/mcp-server",
|
|
4
4
|
"title": "DollhouseMCP",
|
|
5
5
|
"description": "OSS to create Personas, Skills, Templates, Agents, and Memories to customize your AI experience.",
|
|
6
|
-
"version": "2.0.
|
|
6
|
+
"version": "2.0.42",
|
|
7
7
|
"homepage": "https://dollhousemcp.com",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
{
|
|
30
30
|
"registryType": "npm",
|
|
31
31
|
"identifier": "@dollhousemcp/mcp-server",
|
|
32
|
-
"version": "2.0.
|
|
32
|
+
"version": "2.0.42",
|
|
33
33
|
"transport": {
|
|
34
34
|
"type": "stdio"
|
|
35
35
|
}
|