@vendasta/marketplace-apps 4.29.0 → 4.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/_internal/interfaces/marketplace-app.interface.mjs +1 -1
- package/esm2020/lib/_internal/objects/marketplace-app.mjs +4 -1
- package/esm2020/v1/_internal/interfaces/api.interface.mjs +1 -1
- package/esm2020/v1/_internal/objects/api.mjs +1 -1
- package/fesm2015/vendasta-marketplace-apps-v1.mjs.map +1 -1
- package/fesm2015/vendasta-marketplace-apps.mjs +3 -0
- package/fesm2015/vendasta-marketplace-apps.mjs.map +1 -1
- package/fesm2020/vendasta-marketplace-apps-v1.mjs.map +1 -1
- package/fesm2020/vendasta-marketplace-apps.mjs +3 -0
- package/fesm2020/vendasta-marketplace-apps.mjs.map +1 -1
- package/lib/_internal/interfaces/marketplace-app.interface.d.ts +1 -0
- package/lib/_internal/objects/marketplace-app.d.ts +1 -0
- package/package.json +1 -1
- package/v1/_internal/interfaces/api.interface.d.ts +1 -0
- package/v1/_internal/objects/api.d.ts +1 -0
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
// Interfaces.
|
|
6
6
|
// *********************************
|
|
7
7
|
export {};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2UtYXBwLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21hcmtldHBsYWNlX2FwcHNfc2RrL3NyYy9saWIvX2ludGVybmFsL2ludGVyZmFjZXMvbWFya2V0cGxhY2UtYXBwLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsY0FBYztBQUNkLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gSW50ZXJmYWNlcy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmF0aW9uSW5mb3JtYXRpb25JbnRlcmZhY2Uge1xuICAgIG9yZGVyRm9ybUVuYWJsZWQ/OiBib29sZWFuO1xuICAgIG11bHRpcGxlQWN0aXZhdGlvbnNFbmFibGVkPzogYm9vbGVhbjtcbiAgICBhY3RpdmF0aW9uU3BlY2lmaWNVcmxFbmFibGVkPzogYm9vbGVhbjtcbiAgICBzZXBhcmF0ZU9yZGVyRm9ybXM/OiBib29sZWFuO1xuICAgIHJlcXVpcmVkQnVzaW5lc3NEYXRhPzogUmVxdWlyZWRCdXNpbmVzc0RhdGFJbnRlcmZhY2U7XG4gICAgc3VzcGVuZGVkPzogRGF0ZTtcbiAgICBjb3VudHJ5UmVzdHJpY3Rpb25zPzogUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlO1xuICAgIGFwcFJlc3RyaWN0aW9ucz86IEFwcFJlc3RyaWN0aW9uc0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBJbnRlcmZhY2Uge1xuICAgIGtleT86IEFwcEtleUludGVyZmFjZTtcbiAgICBzaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbj86IFNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uSW50ZXJmYWNlO1xuICAgIGVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbj86IEVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZTtcbiAgICBwYXJlbnRSZXF1aXJlbWVudHM/OiBSZXF1aXJlZFBhcmVudEludGVyZmFjZTtcbiAgICBzc29JbnRlZ3JhdGlvbj86IFNTT0ludGVncmF0aW9uSW50ZXJmYWNlO1xuICAgIGFjdGl2YXRpb25JbmZvcm1hdGlvbj86IEFjdGl2YXRpb25JbmZvcm1hdGlvbkludGVyZmFjZTtcbiAgICB0cmlhbENvbmZpZ3VyYXRpb24/OiBUcmlhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2U7XG4gICAgYmFzaWNJbnRlZ3JhdGlvbj86IEJhc2ljSW50ZWdyYXRpb25JbnRlcmZhY2U7XG4gICAgZWRpdGlvbkluZm9ybWF0aW9uPzogRWRpdGlvbkluZm9ybWF0aW9uSW50ZXJmYWNlO1xuICAgIGV4dGVybmFsSWRlbnRpZmllcnM/OiBFeHRlcm5hbElkZW50aWZpZXJzSW50ZXJmYWNlO1xuICAgIHByaWNlPzogUHJpY2VJbnRlcmZhY2U7XG4gICAgYXBwVHlwZT86IGUuQXBwVHlwZTtcbiAgICBhcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZD86IEFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkSW50ZXJmYWNlO1xuICAgIGNoaWxkQXBwcz86IENoaWxkQXBwSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwS2V5SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBlZGl0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWRJbnRlcmZhY2Uge1xuICAgIGFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkRm9yUGFydG5lckNlbnRlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwUmVzdHJpY3Rpb25zSW50ZXJmYWNlIHtcbiAgICByZXF1aXJlZEFwcElkcz86IHN0cmluZ1tdO1xuICAgIHJlcXVpcmVkRWRpdGlvbklkcz86IEVkaXRpb25JZGVudGlmaWVySW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNJbnRlZ3JhdGlvbkludGVyZmFjZSB7XG4gICAgYXBwbGljYXRpb25Vcmw/OiBzdHJpbmc7XG4gICAgYWxsb3dXaGl0ZUxhYmVsaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGlsZEFwcEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRQYXJlbnREZXRhaWxzSW50ZXJmYWNlIHtcbiAgICBrZXk/OiBBcHBLZXlJbnRlcmZhY2U7XG4gICAgaWNvblVybD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHRhZ2xpbmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdGlvbkludGVyZmFjZSB7XG4gICAgYXBwS2V5PzogQXBwS2V5SW50ZXJmYWNlO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgY3JlYXRlZD86IERhdGU7XG4gICAgdXBkYXRlZD86IERhdGU7XG4gICAgYmlsbGluZ0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRpb25JZGVudGlmaWVySW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBlZGl0aW9uSWQ/
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2UtYXBwLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21hcmtldHBsYWNlX2FwcHNfc2RrL3NyYy9saWIvX2ludGVybmFsL2ludGVyZmFjZXMvbWFya2V0cGxhY2UtYXBwLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsY0FBYztBQUNkLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gSW50ZXJmYWNlcy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmF0aW9uSW5mb3JtYXRpb25JbnRlcmZhY2Uge1xuICAgIG9yZGVyRm9ybUVuYWJsZWQ/OiBib29sZWFuO1xuICAgIG11bHRpcGxlQWN0aXZhdGlvbnNFbmFibGVkPzogYm9vbGVhbjtcbiAgICBhY3RpdmF0aW9uU3BlY2lmaWNVcmxFbmFibGVkPzogYm9vbGVhbjtcbiAgICBzZXBhcmF0ZU9yZGVyRm9ybXM/OiBib29sZWFuO1xuICAgIHJlcXVpcmVkQnVzaW5lc3NEYXRhPzogUmVxdWlyZWRCdXNpbmVzc0RhdGFJbnRlcmZhY2U7XG4gICAgc3VzcGVuZGVkPzogRGF0ZTtcbiAgICBjb3VudHJ5UmVzdHJpY3Rpb25zPzogUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlO1xuICAgIGFwcFJlc3RyaWN0aW9ucz86IEFwcFJlc3RyaWN0aW9uc0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBJbnRlcmZhY2Uge1xuICAgIGtleT86IEFwcEtleUludGVyZmFjZTtcbiAgICBzaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbj86IFNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uSW50ZXJmYWNlO1xuICAgIGVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbj86IEVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZTtcbiAgICBwYXJlbnRSZXF1aXJlbWVudHM/OiBSZXF1aXJlZFBhcmVudEludGVyZmFjZTtcbiAgICBzc29JbnRlZ3JhdGlvbj86IFNTT0ludGVncmF0aW9uSW50ZXJmYWNlO1xuICAgIGFjdGl2YXRpb25JbmZvcm1hdGlvbj86IEFjdGl2YXRpb25JbmZvcm1hdGlvbkludGVyZmFjZTtcbiAgICB0cmlhbENvbmZpZ3VyYXRpb24/OiBUcmlhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2U7XG4gICAgYmFzaWNJbnRlZ3JhdGlvbj86IEJhc2ljSW50ZWdyYXRpb25JbnRlcmZhY2U7XG4gICAgZWRpdGlvbkluZm9ybWF0aW9uPzogRWRpdGlvbkluZm9ybWF0aW9uSW50ZXJmYWNlO1xuICAgIGV4dGVybmFsSWRlbnRpZmllcnM/OiBFeHRlcm5hbElkZW50aWZpZXJzSW50ZXJmYWNlO1xuICAgIHByaWNlPzogUHJpY2VJbnRlcmZhY2U7XG4gICAgYXBwVHlwZT86IGUuQXBwVHlwZTtcbiAgICBhcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZD86IEFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkSW50ZXJmYWNlO1xuICAgIGNoaWxkQXBwcz86IENoaWxkQXBwSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwS2V5SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBlZGl0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWRJbnRlcmZhY2Uge1xuICAgIGFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkRm9yUGFydG5lckNlbnRlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwUmVzdHJpY3Rpb25zSW50ZXJmYWNlIHtcbiAgICByZXF1aXJlZEFwcElkcz86IHN0cmluZ1tdO1xuICAgIHJlcXVpcmVkRWRpdGlvbklkcz86IEVkaXRpb25JZGVudGlmaWVySW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNJbnRlZ3JhdGlvbkludGVyZmFjZSB7XG4gICAgYXBwbGljYXRpb25Vcmw/OiBzdHJpbmc7XG4gICAgYWxsb3dXaGl0ZUxhYmVsaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGlsZEFwcEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRQYXJlbnREZXRhaWxzSW50ZXJmYWNlIHtcbiAgICBrZXk/OiBBcHBLZXlJbnRlcmZhY2U7XG4gICAgaWNvblVybD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHRhZ2xpbmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdGlvbkludGVyZmFjZSB7XG4gICAgYXBwS2V5PzogQXBwS2V5SW50ZXJmYWNlO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgY3JlYXRlZD86IERhdGU7XG4gICAgdXBkYXRlZD86IERhdGU7XG4gICAgYmlsbGluZ0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRpb25JZGVudGlmaWVySW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBlZGl0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdGlvbkluZm9ybWF0aW9uSW50ZXJmYWNlIHtcbiAgICBlZGl0aW9ucz86IEVkaXRpb25JbnRlcmZhY2VbXTtcbiAgICB1c2VzRWRpdGlvbnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZSB7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAga2V5U2VsbGluZ1BvaW50cz86IHN0cmluZ1tdO1xuICAgIGZhcXM/OiBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNJbnRlcmZhY2VbXTtcbiAgICBmaWxlVXJscz86IHN0cmluZ1tdO1xuICAgIHNjcmVlbnNob3RVcmxzPzogc3RyaW5nW107XG4gICAgbmVlZEhlbHA/OiBzdHJpbmc7XG4gICAgdmlkZW9zPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZXJuYWxJZGVudGlmaWVyc0ludGVyZmFjZSB7XG4gICAgYmlsbGluZ0lkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0ludGVyZmFjZSB7XG4gICAgcXVlc3Rpb24/OiBzdHJpbmc7XG4gICAgYW5zd2VyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBlcm1pc3Npb25MaXN0c0ludGVyZmFjZSB7XG4gICAgd2hpdGVsaXN0Pzogc3RyaW5nW107XG4gICAgYmxhY2tsaXN0Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VJbnRlcmZhY2Uge1xuICAgIHNldHVwRmVlPzogbnVtYmVyO1xuICAgIHVzZXNDdXN0b21QcmljaW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlZEJ1c2luZXNzRGF0YUludGVyZmFjZSB7XG4gICAgaG91cnM/OiBib29sZWFuO1xuICAgIGRlc2NyaXB0aW9uTG9uZz86IGJvb2xlYW47XG4gICAgZGVzY3JpcHRpb25TaG9ydD86IGJvb2xlYW47XG4gICAgc2VydmljZXM/OiBib29sZWFuO1xuICAgIGJyYW5kcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRQYXJlbnRJbnRlcmZhY2Uge1xuICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgIHBhcmVudERldGFpbHM/OiBSZXF1aXJlZFBhcmVudERldGFpbHNJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU1NPSW50ZWdyYXRpb25JbnRlcmZhY2Uge1xuICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgIGVudHJ5VXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uSW50ZXJmYWNlIHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGVkaXRpb25OYW1lPzogc3RyaW5nO1xuICAgIGljb25Vcmw/OiBzdHJpbmc7XG4gICAgdGFnbGluZT86IHN0cmluZztcbiAgICBiYW5uZXJJbWFnZVVybD86IHN0cmluZztcbiAgICBsbWlDYXRlZ29yaWVzPzogZS5MbWlDYXRlZ29yeVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyaWFsQ29uZmlndXJhdGlvbkludGVyZmFjZSB7XG4gICAgdHJpYWxFbmFibGVkPzogYm9vbGVhbjtcbiAgICB0cmlhbER1cmF0aW9uPzogbnVtYmVyO1xuICAgIGVuZE9mVHJpYWxBY3Rpb24/OiBlLkVuZE9mVHJpYWxBY3Rpb25zO1xufVxuXG4iXX0=
|
|
@@ -387,6 +387,9 @@ export class EditionInformation {
|
|
|
387
387
|
if (typeof this.editions !== 'undefined' && this.editions !== null) {
|
|
388
388
|
toReturn['editions'] = 'toApiJson' in this.editions ? this.editions.toApiJson() : this.editions;
|
|
389
389
|
}
|
|
390
|
+
if (typeof this.usesEditions !== 'undefined') {
|
|
391
|
+
toReturn['usesEditions'] = this.usesEditions;
|
|
392
|
+
}
|
|
390
393
|
return toReturn;
|
|
391
394
|
}
|
|
392
395
|
}
|
|
@@ -671,4 +674,4 @@ export class TrialConfiguration {
|
|
|
671
674
|
return toReturn;
|
|
672
675
|
}
|
|
673
676
|
}
|
|
674
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2UtYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbWFya2V0cGxhY2VfYXBwc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9tYXJrZXRwbGFjZS1hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7QUFFOUIsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLHFCQUFxQjtJQVU5QixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtZQUFDLENBQUMsQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FBQztRQUN0SCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQy9ELElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FBQztRQUM5RyxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFBQyxDQUFDLENBQUMsZUFBZSxH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QkFBZ0IsR0FBRyxpQkFBaUIsQ0FBc0IsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQUM7UUFDdkksT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUFzQztRQUM5QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUFDO1FBQzdGLElBQUksT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQUM7UUFDaEcsSUFBSSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FBQztRQUN6RyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEFjdGl2YXRpb25JbmZvcm1hdGlvbiBpbXBsZW1lbnRzIGkuQWN0aXZhdGlvbkluZm9ybWF0aW9uSW50ZXJmYWNlIHtcbiAgICBvcmRlckZvcm1FbmFibGVkOiBib29sZWFuO1xuICAgIG11bHRpcGxlQWN0aXZhdGlvbnNFbmFibGVkOiBib29sZWFuO1xuICAgIGFjdGl2YXRpb25TcGVjaWZpY1VybEVuYWJsZWQ6IGJvb2xlYW47XG4gICAgc2VwYXJhdGVPcmRlckZvcm1zOiBib29sZWFuO1xuICAgIHJlcXVpcmVkQnVzaW5lc3NEYXRhOiBSZXF1aXJlZEJ1c2luZXNzRGF0YTtcbiAgICBzdXNwZW5kZWQ6IERhdGU7XG4gICAgY291bnRyeVJlc3RyaWN0aW9uczogUGVybWlzc2lvbkxpc3RzO1xuICAgIGFwcFJlc3RyaWN0aW9uczogQXBwUmVzdHJpY3Rpb25zO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQWN0aXZhdGlvbkluZm9ybWF0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQWN0aXZhdGlvbkluZm9ybWF0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnJlcXVpcmVkQnVzaW5lc3NEYXRhKSB7bS5yZXF1aXJlZEJ1c2luZXNzRGF0YSA9IFJlcXVpcmVkQnVzaW5lc3NEYXRhLmZyb21Qcm90byhwcm90by5yZXF1aXJlZEJ1c2luZXNzRGF0YSk7fVxuICAgICAgICBpZiAocHJvdG8uc3VzcGVuZGVkKSB7bS5zdXNwZW5kZWQgPSBuZXcgRGF0ZShwcm90by5zdXNwZW5kZWQpO31cbiAgICAgICAgaWYgKHByb3RvLmNvdW50cnlSZXN0cmljdGlvbnMpIHttLmNvdW50cnlSZXN0cmljdGlvbnMgPSBQZXJtaXNzaW9uTGlzdHMuZnJvbVByb3RvKHByb3RvLmNvdW50cnlSZXN0cmljdGlvbnMpO31cbiAgICAgICAgaWYgKHByb3RvLmFwcFJlc3RyaWN0aW9ucykge20uYXBwUmVzdHJpY3Rpb25zID0gQXBwUmVzdHJpY3Rpb25zLmZyb21Qcm90byhwcm90by5hcHBSZXN0cmljdGlvbnMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BY3RpdmF0aW9uSW5mb3JtYXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmRlckZvcm1FbmFibGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmRlckZvcm1FbmFibGVkJ10gPSB0aGlzLm9yZGVyRm9ybUVuYWJsZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubXVsdGlwbGVBY3RpdmF0aW9uc0VuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ211bHRpcGxlQWN0aXZhdGlvbnNFbmFibGVkJ10gPSB0aGlzLm11bHRpcGxlQWN0aXZhdGlvbnNFbmFibGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGl2YXRpb25TcGVjaWZpY1VybEVuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FjdGl2YXRpb25TcGVjaWZpY1VybEVuYWJsZWQnXSA9IHRoaXMuYWN0aXZhdGlvblNwZWNpZmljVXJsRW5hYmxlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZXBhcmF0ZU9yZGVyRm9ybXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlcGFyYXRlT3JkZXJGb3JtcyddID0gdGhpcy5zZXBhcmF0ZU9yZGVyRm9ybXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVxdWlyZWRCdXNpbmVzc0RhdGEgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucmVxdWlyZWRCdXNpbmVzc0RhdGEgIT09IG51bGwpIHt0b1JldHVyblsncmVxdWlyZWRCdXNpbmVzc0RhdGEnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucmVxdWlyZWRCdXNpbmVzc0RhdGEgPyAodGhpcy5yZXF1aXJlZEJ1c2luZXNzRGF0YSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5yZXF1aXJlZEJ1c2luZXNzRGF0YTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdXNwZW5kZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3VzcGVuZGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ3N1c3BlbmRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdXNwZW5kZWQgPyAodGhpcy5zdXNwZW5kZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3VzcGVuZGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50cnlSZXN0cmljdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY291bnRyeVJlc3RyaWN0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydjb3VudHJ5UmVzdHJpY3Rpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNvdW50cnlSZXN0cmljdGlvbnMgPyAodGhpcy5jb3VudHJ5UmVzdHJpY3Rpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNvdW50cnlSZXN0cmljdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwUmVzdHJpY3Rpb25zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFwcFJlc3RyaWN0aW9ucyAhPT0gbnVsbCkge3RvUmV0dXJuWydhcHBSZXN0cmljdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXBwUmVzdHJpY3Rpb25zID8gKHRoaXMuYXBwUmVzdHJpY3Rpb25zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFwcFJlc3RyaWN0aW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHAgaW1wbGVtZW50cyBpLkFwcEludGVyZmFjZSB7XG4gICAga2V5OiBBcHBLZXk7XG4gICAgc2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb246IFNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uO1xuICAgIGVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbjogRW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uO1xuICAgIHBhcmVudFJlcXVpcmVtZW50czogUmVxdWlyZWRQYXJlbnQ7XG4gICAgc3NvSW50ZWdyYXRpb246IFNTT0ludGVncmF0aW9uO1xuICAgIGFjdGl2YXRpb25JbmZvcm1hdGlvbjogQWN0aXZhdGlvbkluZm9ybWF0aW9uO1xuICAgIHRyaWFsQ29uZmlndXJhdGlvbjogVHJpYWxDb25maWd1cmF0aW9uO1xuICAgIGJhc2ljSW50ZWdyYXRpb246IEJhc2ljSW50ZWdyYXRpb247XG4gICAgZWRpdGlvbkluZm9ybWF0aW9uOiBFZGl0aW9uSW5mb3JtYXRpb247XG4gICAgZXh0ZXJuYWxJZGVudGlmaWVyczogRXh0ZXJuYWxJZGVudGlmaWVycztcbiAgICBwcmljZTogUHJpY2U7XG4gICAgYXBwVHlwZTogZS5BcHBUeXBlO1xuICAgIGFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkOiBBcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZDtcbiAgICBjaGlsZEFwcHM6IENoaWxkQXBwW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBcHAge1xuICAgICAgICBsZXQgbSA9IG5ldyBBcHAoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ua2V5KSB7bS5rZXkgPSBBcHBLZXkuZnJvbVByb3RvKHByb3RvLmtleSk7fVxuICAgICAgICBpZiAocHJvdG8uc2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb24pIHttLnNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uID0gU2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb24uZnJvbVByb3RvKHByb3RvLnNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uKTt9XG4gICAgICAgIGlmIChwcm90by5lbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb24pIHttLmVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbiA9IEVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbi5mcm9tUHJvdG8ocHJvdG8uZW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uKTt9XG4gICAgICAgIGlmIChwcm90by5wYXJlbnRSZXF1aXJlbWVudHMpIHttLnBhcmVudFJlcXVpcmVtZW50cyA9IFJlcXVpcmVkUGFyZW50LmZyb21Qcm90byhwcm90by5wYXJlbnRSZXF1aXJlbWVudHMpO31cbiAgICAgICAgaWYgKHByb3RvLnNzb0ludGVncmF0aW9uKSB7bS5zc29JbnRlZ3JhdGlvbiA9IFNTT0ludGVncmF0aW9uLmZyb21Qcm90byhwcm90by5zc29JbnRlZ3JhdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8uYWN0aXZhdGlvbkluZm9ybWF0aW9uKSB7bS5hY3RpdmF0aW9uSW5mb3JtYXRpb24gPSBBY3RpdmF0aW9uSW5mb3JtYXRpb24uZnJvbVByb3RvKHByb3RvLmFjdGl2YXRpb25JbmZvcm1hdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8udHJpYWxDb25maWd1cmF0aW9uKSB7bS50cmlhbENvbmZpZ3VyYXRpb24gPSBUcmlhbENvbmZpZ3VyYXRpb24uZnJvbVByb3RvKHByb3RvLnRyaWFsQ29uZmlndXJhdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8uYmFzaWNJbnRlZ3JhdGlvbikge20uYmFzaWNJbnRlZ3JhdGlvbiA9IEJhc2ljSW50ZWdyYXRpb24uZnJvbVByb3RvKHByb3RvLmJhc2ljSW50ZWdyYXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmVkaXRpb25JbmZvcm1hdGlvbikge20uZWRpdGlvbkluZm9ybWF0aW9uID0gRWRpdGlvbkluZm9ybWF0aW9uLmZyb21Qcm90byhwcm90by5lZGl0aW9uSW5mb3JtYXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmV4dGVybmFsSWRlbnRpZmllcnMpIHttLmV4dGVybmFsSWRlbnRpZmllcnMgPSBFeHRlcm5hbElkZW50aWZpZXJzLmZyb21Qcm90byhwcm90by5leHRlcm5hbElkZW50aWZpZXJzKTt9XG4gICAgICAgIGlmIChwcm90by5wcmljZSkge20ucHJpY2UgPSBQcmljZS5mcm9tUHJvdG8ocHJvdG8ucHJpY2UpO31cbiAgICAgICAgaWYgKHByb3RvLmFwcFR5cGUpIHttLmFwcFR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLkFwcFR5cGU+KGUuQXBwVHlwZSwgcHJvdG8uYXBwVHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8uYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQpIHttLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkID0gQXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQuZnJvbVByb3RvKHByb3RvLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkKTt9XG4gICAgICAgIGlmIChwcm90by5jaGlsZEFwcHMpIHttLmNoaWxkQXBwcyA9IHByb3RvLmNoaWxkQXBwcy5tYXAoQ2hpbGRBcHAuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQXBwSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmtleSAhPT0gbnVsbCkge3RvUmV0dXJuWydrZXknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMua2V5ID8gKHRoaXMua2V5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmtleTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydzaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbiA/ICh0aGlzLnNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5lbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnZW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbiA/ICh0aGlzLmVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFyZW50UmVxdWlyZW1lbnRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhcmVudFJlcXVpcmVtZW50cyAhPT0gbnVsbCkge3RvUmV0dXJuWydwYXJlbnRSZXF1aXJlbWVudHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFyZW50UmVxdWlyZW1lbnRzID8gKHRoaXMucGFyZW50UmVxdWlyZW1lbnRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBhcmVudFJlcXVpcmVtZW50czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zc29JbnRlZ3JhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zc29JbnRlZ3JhdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydzc29JbnRlZ3JhdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zc29JbnRlZ3JhdGlvbiA/ICh0aGlzLnNzb0ludGVncmF0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnNzb0ludGVncmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjdGl2YXRpb25JbmZvcm1hdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hY3RpdmF0aW9uSW5mb3JtYXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnYWN0aXZhdGlvbkluZm9ybWF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFjdGl2YXRpb25JbmZvcm1hdGlvbiA/ICh0aGlzLmFjdGl2YXRpb25JbmZvcm1hdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hY3RpdmF0aW9uSW5mb3JtYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJpYWxDb25maWd1cmF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRyaWFsQ29uZmlndXJhdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWyd0cmlhbENvbmZpZ3VyYXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHJpYWxDb25maWd1cmF0aW9uID8gKHRoaXMudHJpYWxDb25maWd1cmF0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRyaWFsQ29uZmlndXJhdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5iYXNpY0ludGVncmF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmJhc2ljSW50ZWdyYXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnYmFzaWNJbnRlZ3JhdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5iYXNpY0ludGVncmF0aW9uID8gKHRoaXMuYmFzaWNJbnRlZ3JhdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5iYXNpY0ludGVncmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVkaXRpb25JbmZvcm1hdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5lZGl0aW9uSW5mb3JtYXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnZWRpdGlvbkluZm9ybWF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmVkaXRpb25JbmZvcm1hdGlvbiA/ICh0aGlzLmVkaXRpb25JbmZvcm1hdGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lZGl0aW9uSW5mb3JtYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXh0ZXJuYWxJZGVudGlmaWVycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5leHRlcm5hbElkZW50aWZpZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2V4dGVybmFsSWRlbnRpZmllcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZXh0ZXJuYWxJZGVudGlmaWVycyA/ICh0aGlzLmV4dGVybmFsSWRlbnRpZmllcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZXh0ZXJuYWxJZGVudGlmaWVyczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcmljZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcmljZSAhPT0gbnVsbCkge3RvUmV0dXJuWydwcmljZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wcmljZSA/ICh0aGlzLnByaWNlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnByaWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FwcFR5cGUnXSA9IHRoaXMuYXBwVHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydhcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5hcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZCA/ICh0aGlzLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNoaWxkQXBwcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jaGlsZEFwcHMgIT09IG51bGwpIHt0b1JldHVyblsnY2hpbGRBcHBzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNoaWxkQXBwcyA/ICh0aGlzLmNoaWxkQXBwcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jaGlsZEFwcHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBwS2V5IGltcGxlbWVudHMgaS5BcHBLZXlJbnRlcmZhY2Uge1xuICAgIGFwcElkOiBzdHJpbmc7XG4gICAgZWRpdGlvbklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBcHBLZXkge1xuICAgICAgICBsZXQgbSA9IG5ldyBBcHBLZXkoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkFwcEtleUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhcHBJZCddID0gdGhpcy5hcHBJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lZGl0aW9uSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VkaXRpb25JZCddID0gdGhpcy5lZGl0aW9uSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQgaW1wbGVtZW50cyBpLkFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkSW50ZXJmYWNlIHtcbiAgICBhcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZEZvclBhcnRuZXJDZW50ZXI6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZCB7XG4gICAgICAgIGxldCBtID0gbmV3IEFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkRm9yUGFydG5lckNlbnRlciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWRGb3JQYXJ0bmVyQ2VudGVyJ10gPSB0aGlzLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkRm9yUGFydG5lckNlbnRlcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBSZXN0cmljdGlvbnMgaW1wbGVtZW50cyBpLkFwcFJlc3RyaWN0aW9uc0ludGVyZmFjZSB7XG4gICAgcmVxdWlyZWRBcHBJZHM6IHN0cmluZ1tdO1xuICAgIHJlcXVpcmVkRWRpdGlvbklkczogRWRpdGlvbklkZW50aWZpZXJbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFwcFJlc3RyaWN0aW9ucyB7XG4gICAgICAgIGxldCBtID0gbmV3IEFwcFJlc3RyaWN0aW9ucygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5yZXF1aXJlZEVkaXRpb25JZHMpIHttLnJlcXVpcmVkRWRpdGlvbklkcyA9IHByb3RvLnJlcXVpcmVkRWRpdGlvbklkcy5tYXAoRWRpdGlvbklkZW50aWZpZXIuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQXBwUmVzdHJpY3Rpb25zSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVxdWlyZWRBcHBJZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlcXVpcmVkQXBwSWRzJ10gPSB0aGlzLnJlcXVpcmVkQXBwSWRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlcXVpcmVkRWRpdGlvbklkcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5yZXF1aXJlZEVkaXRpb25JZHMgIT09IG51bGwpIHt0b1JldHVyblsncmVxdWlyZWRFZGl0aW9uSWRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnJlcXVpcmVkRWRpdGlvbklkcyA/ICh0aGlzLnJlcXVpcmVkRWRpdGlvbklkcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5yZXF1aXJlZEVkaXRpb25JZHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmFzaWNJbnRlZ3JhdGlvbiBpbXBsZW1lbnRzIGkuQmFzaWNJbnRlZ3JhdGlvbkludGVyZmFjZSB7XG4gICAgYXBwbGljYXRpb25Vcmw6IHN0cmluZztcbiAgICBhbGxvd1doaXRlTGFiZWxpbmc6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCYXNpY0ludGVncmF0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQmFzaWNJbnRlZ3JhdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQmFzaWNJbnRlZ3JhdGlvbkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcGxpY2F0aW9uVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhcHBsaWNhdGlvblVybCddID0gdGhpcy5hcHBsaWNhdGlvblVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hbGxvd1doaXRlTGFiZWxpbmcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FsbG93V2hpdGVMYWJlbGluZyddID0gdGhpcy5hbGxvd1doaXRlTGFiZWxpbmc7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2hpbGRBcHAgaW1wbGVtZW50cyBpLkNoaWxkQXBwSW50ZXJmYWNlIHtcbiAgICBhcHBJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2hpbGRBcHAge1xuICAgICAgICBsZXQgbSA9IG5ldyBDaGlsZEFwcCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2hpbGRBcHBJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hcHBJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYXBwSWQnXSA9IHRoaXMuYXBwSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVxdWlyZWRQYXJlbnREZXRhaWxzIGltcGxlbWVudHMgaS5SZXF1aXJlZFBhcmVudERldGFpbHNJbnRlcmZhY2Uge1xuICAgIGtleTogQXBwS2V5O1xuICAgIGljb25Vcmw6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdGFnbGluZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUmVxdWlyZWRQYXJlbnREZXRhaWxzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUmVxdWlyZWRQYXJlbnREZXRhaWxzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmtleSkge20ua2V5ID0gQXBwS2V5LmZyb21Qcm90byhwcm90by5rZXkpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5SZXF1aXJlZFBhcmVudERldGFpbHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5rZXkgIT09ICd1bmRlZmluZWQnICYmIHRoaXMua2V5ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2tleSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5rZXkgPyAodGhpcy5rZXkgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMua2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmljb25VcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ljb25VcmwnXSA9IHRoaXMuaWNvblVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFnbGluZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGFnbGluZSddID0gdGhpcy50YWdsaW5lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRpb24gaW1wbGVtZW50cyBpLkVkaXRpb25JbnRlcmZhY2Uge1xuICAgIGFwcEtleTogQXBwS2V5O1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjcmVhdGVkOiBEYXRlO1xuICAgIHVwZGF0ZWQ6IERhdGU7XG4gICAgYmlsbGluZ0lkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFZGl0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRWRpdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hcHBLZXkpIHttLmFwcEtleSA9IEFwcEtleS5mcm9tUHJvdG8ocHJvdG8uYXBwS2V5KTt9XG4gICAgICAgIGlmIChwcm90by5jcmVhdGVkKSB7bS5jcmVhdGVkID0gbmV3IERhdGUocHJvdG8uY3JlYXRlZCk7fVxuICAgICAgICBpZiAocHJvdG8udXBkYXRlZCkge20udXBkYXRlZCA9IG5ldyBEYXRlKHByb3RvLnVwZGF0ZWQpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FZGl0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwS2V5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFwcEtleSAhPT0gbnVsbCkge3RvUmV0dXJuWydhcHBLZXknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXBwS2V5ID8gKHRoaXMuYXBwS2V5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFwcEtleTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jcmVhdGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NyZWF0ZWQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY3JlYXRlZCA/ICh0aGlzLmNyZWF0ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3JlYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cGRhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnVwZGF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsndXBkYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy51cGRhdGVkID8gKHRoaXMudXBkYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy51cGRhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJpbGxpbmdJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYmlsbGluZ0lkJ10gPSB0aGlzLmJpbGxpbmdJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFZGl0aW9uSWRlbnRpZmllciBpbXBsZW1lbnRzIGkuRWRpdGlvbklkZW50aWZpZXJJbnRlcmZhY2Uge1xuICAgIGFwcElkOiBzdHJpbmc7XG4gICAgZWRpdGlvbklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFZGl0aW9uSWRlbnRpZmllciB7XG4gICAgICAgIGxldCBtID0gbmV3IEVkaXRpb25JZGVudGlmaWVyKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FZGl0aW9uSWRlbnRpZmllckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhcHBJZCddID0gdGhpcy5hcHBJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lZGl0aW9uSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VkaXRpb25JZCddID0gdGhpcy5lZGl0aW9uSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRWRpdGlvbkluZm9ybWF0aW9uIGltcGxlbWVudHMgaS5FZGl0aW9uSW5mb3JtYXRpb25JbnRlcmZhY2Uge1xuICAgIGVkaXRpb25zOiBFZGl0aW9uW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFZGl0aW9uSW5mb3JtYXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBFZGl0aW9uSW5mb3JtYXRpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZWRpdGlvbnMpIHttLmVkaXRpb25zID0gcHJvdG8uZWRpdGlvbnMubWFwKEVkaXRpb24uZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRWRpdGlvbkluZm9ybWF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZWRpdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZWRpdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnZWRpdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZWRpdGlvbnMgPyAodGhpcy5lZGl0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lZGl0aW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb24gaW1wbGVtZW50cyBpLkVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZSB7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBrZXlTZWxsaW5nUG9pbnRzOiBzdHJpbmdbXTtcbiAgICBmYXFzOiBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNbXTtcbiAgICBmaWxlVXJsczogc3RyaW5nW107XG4gICAgc2NyZWVuc2hvdFVybHM6IHN0cmluZ1tdO1xuICAgIG5lZWRIZWxwOiBzdHJpbmc7XG4gICAgdmlkZW9zOiBzdHJpbmdbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IEVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5mYXFzKSB7bS5mYXFzID0gcHJvdG8uZmFxcy5tYXAoRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5rZXlTZWxsaW5nUG9pbnRzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydrZXlTZWxsaW5nUG9pbnRzJ10gPSB0aGlzLmtleVNlbGxpbmdQb2ludHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmFxcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5mYXFzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ZhcXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZmFxcyA/ICh0aGlzLmZhcXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZmFxczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWxlVXJscyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmlsZVVybHMnXSA9IHRoaXMuZmlsZVVybHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2NyZWVuc2hvdFVybHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NjcmVlbnNob3RVcmxzJ10gPSB0aGlzLnNjcmVlbnNob3RVcmxzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5lZWRIZWxwICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduZWVkSGVscCddID0gdGhpcy5uZWVkSGVscDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52aWRlb3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ZpZGVvcyddID0gdGhpcy52aWRlb3M7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxJZGVudGlmaWVycyBpbXBsZW1lbnRzIGkuRXh0ZXJuYWxJZGVudGlmaWVyc0ludGVyZmFjZSB7XG4gICAgYmlsbGluZ0lkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFeHRlcm5hbElkZW50aWZpZXJzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRXh0ZXJuYWxJZGVudGlmaWVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRXh0ZXJuYWxJZGVudGlmaWVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJpbGxpbmdJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYmlsbGluZ0lkJ10gPSB0aGlzLmJpbGxpbmdJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMgaW1wbGVtZW50cyBpLkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0ludGVyZmFjZSB7XG4gICAgcXVlc3Rpb246IHN0cmluZztcbiAgICBhbnN3ZXI6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucyB7XG4gICAgICAgIGxldCBtID0gbmV3IEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVlc3Rpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1ZXN0aW9uJ10gPSB0aGlzLnF1ZXN0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFuc3dlciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYW5zd2VyJ10gPSB0aGlzLmFuc3dlcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uTGlzdHMgaW1wbGVtZW50cyBpLlBlcm1pc3Npb25MaXN0c0ludGVyZmFjZSB7XG4gICAgd2hpdGVsaXN0OiBzdHJpbmdbXTtcbiAgICBibGFja2xpc3Q6IHN0cmluZ1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUGVybWlzc2lvbkxpc3RzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUGVybWlzc2lvbkxpc3RzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5QZXJtaXNzaW9uTGlzdHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy53aGl0ZWxpc3QgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3doaXRlbGlzdCddID0gdGhpcy53aGl0ZWxpc3Q7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmxhY2tsaXN0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydibGFja2xpc3QnXSA9IHRoaXMuYmxhY2tsaXN0O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByaWNlIGltcGxlbWVudHMgaS5QcmljZUludGVyZmFjZSB7XG4gICAgc2V0dXBGZWU6IG51bWJlcjtcbiAgICB1c2VzQ3VzdG9tUHJpY2luZzogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFByaWNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUHJpY2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uc2V0dXBGZWUpIHttLnNldHVwRmVlID0gcGFyc2VJbnQocHJvdG8uc2V0dXBGZWUsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuUHJpY2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZXR1cEZlZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2V0dXBGZWUnXSA9IHRoaXMuc2V0dXBGZWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXNlc0N1c3RvbVByaWNpbmcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VzZXNDdXN0b21QcmljaW5nJ10gPSB0aGlzLnVzZXNDdXN0b21QcmljaW5nO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkQnVzaW5lc3NEYXRhIGltcGxlbWVudHMgaS5SZXF1aXJlZEJ1c2luZXNzRGF0YUludGVyZmFjZSB7XG4gICAgaG91cnM6IGJvb2xlYW47XG4gICAgZGVzY3JpcHRpb25Mb25nOiBib29sZWFuO1xuICAgIGRlc2NyaXB0aW9uU2hvcnQ6IGJvb2xlYW47XG4gICAgc2VydmljZXM6IGJvb2xlYW47XG4gICAgYnJhbmRzOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUmVxdWlyZWRCdXNpbmVzc0RhdGEge1xuICAgICAgICBsZXQgbSA9IG5ldyBSZXF1aXJlZEJ1c2luZXNzRGF0YSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuUmVxdWlyZWRCdXNpbmVzc0RhdGFJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ob3VycyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaG91cnMnXSA9IHRoaXMuaG91cnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb25Mb25nICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbkxvbmcnXSA9IHRoaXMuZGVzY3JpcHRpb25Mb25nO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uU2hvcnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uU2hvcnQnXSA9IHRoaXMuZGVzY3JpcHRpb25TaG9ydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZXJ2aWNlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2VydmljZXMnXSA9IHRoaXMuc2VydmljZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnJhbmRzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydicmFuZHMnXSA9IHRoaXMuYnJhbmRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlcXVpcmVkUGFyZW50IGltcGxlbWVudHMgaS5SZXF1aXJlZFBhcmVudEludGVyZmFjZSB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBwYXJlbnREZXRhaWxzOiBSZXF1aXJlZFBhcmVudERldGFpbHM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBSZXF1aXJlZFBhcmVudCB7XG4gICAgICAgIGxldCBtID0gbmV3IFJlcXVpcmVkUGFyZW50KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnBhcmVudERldGFpbHMpIHttLnBhcmVudERldGFpbHMgPSBSZXF1aXJlZFBhcmVudERldGFpbHMuZnJvbVByb3RvKHByb3RvLnBhcmVudERldGFpbHMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5SZXF1aXJlZFBhcmVudEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VuYWJsZWQnXSA9IHRoaXMuZW5hYmxlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYXJlbnREZXRhaWxzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhcmVudERldGFpbHMgIT09IG51bGwpIHt0b1JldHVyblsncGFyZW50RGV0YWlscyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYXJlbnREZXRhaWxzID8gKHRoaXMucGFyZW50RGV0YWlscyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5wYXJlbnREZXRhaWxzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNTT0ludGVncmF0aW9uIGltcGxlbWVudHMgaS5TU09JbnRlZ3JhdGlvbkludGVyZmFjZSB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBlbnRyeVVybDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogU1NPSW50ZWdyYXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBTU09JbnRlZ3JhdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU1NPSW50ZWdyYXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmFibGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmFibGVkJ10gPSB0aGlzLmVuYWJsZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW50cnlVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VudHJ5VXJsJ10gPSB0aGlzLmVudHJ5VXJsO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uIGltcGxlbWVudHMgaS5TaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVkaXRpb25OYW1lOiBzdHJpbmc7XG4gICAgaWNvblVybDogc3RyaW5nO1xuICAgIHRhZ2xpbmU6IHN0cmluZztcbiAgICBiYW5uZXJJbWFnZVVybDogc3RyaW5nO1xuICAgIGxtaUNhdGVnb3JpZXM6IGUuTG1pQ2F0ZWdvcnlbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubG1pQ2F0ZWdvcmllcykge20ubG1pQ2F0ZWdvcmllcyA9IHByb3RvLmxtaUNhdGVnb3JpZXMubWFwKCh2OiBzdHJpbmcpID0+IGVudW1TdHJpbmdUb1ZhbHVlPGUuTG1pQ2F0ZWdvcnk+KGUuTG1pQ2F0ZWdvcnksIHYpKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuU2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZWRpdGlvbk5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VkaXRpb25OYW1lJ10gPSB0aGlzLmVkaXRpb25OYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmljb25VcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ljb25VcmwnXSA9IHRoaXMuaWNvblVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YWdsaW5lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YWdsaW5lJ10gPSB0aGlzLnRhZ2xpbmU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmFubmVySW1hZ2VVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Jhbm5lckltYWdlVXJsJ10gPSB0aGlzLmJhbm5lckltYWdlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxtaUNhdGVnb3JpZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xtaUNhdGVnb3JpZXMnXSA9IHRoaXMubG1pQ2F0ZWdvcmllczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUcmlhbENvbmZpZ3VyYXRpb24gaW1wbGVtZW50cyBpLlRyaWFsQ29uZmlndXJhdGlvbkludGVyZmFjZSB7XG4gICAgdHJpYWxFbmFibGVkOiBib29sZWFuO1xuICAgIHRyaWFsRHVyYXRpb246IG51bWJlcjtcbiAgICBlbmRPZlRyaWFsQWN0aW9uOiBlLkVuZE9mVHJpYWxBY3Rpb25zO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVHJpYWxDb25maWd1cmF0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVHJpYWxDb25maWd1cmF0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmVuZE9mVHJpYWxBY3Rpb24pIHttLmVuZE9mVHJpYWxBY3Rpb24gPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLkVuZE9mVHJpYWxBY3Rpb25zPihlLkVuZE9mVHJpYWxBY3Rpb25zLCBwcm90by5lbmRPZlRyaWFsQWN0aW9uKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVHJpYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJpYWxFbmFibGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0cmlhbEVuYWJsZWQnXSA9IHRoaXMudHJpYWxFbmFibGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRyaWFsRHVyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RyaWFsRHVyYXRpb24nXSA9IHRoaXMudHJpYWxEdXJhdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmRPZlRyaWFsQWN0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmRPZlRyaWFsQWN0aW9uJ10gPSB0aGlzLmVuZE9mVHJpYWxBY3Rpb247fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
677
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2V0cGxhY2UtYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbWFya2V0cGxhY2VfYXBwc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9tYXJrZXRwbGFjZS1hcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7QUFFOUIsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLHFCQUFxQjtJQVU5QixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtZQUFDLENBQUMsQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FBQztRQUN0SCxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQy9ELElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFO1lBQUMsQ0FBQyxDQUFDLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FBQztRQUM5RyxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFBQyxDQUFDLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQUM7UUFDbEcsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUF5QztRQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUFDO1FBQ3pHLElBQUksT0FBTyxJQUFJLENBQUMsMEJBQTBCLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1NBQUM7UUFDdkksSUFBSSxPQUFPLElBQUksQ0FBQyw0QkFBNEIsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsOEJBQThCLENBQUMsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUM7U0FBQztRQUM3SSxJQUFJLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztTQUFDO1FBQy9HLElBQUksT0FBTyxJQUFJLENBQUMsb0JBQW9CLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsb0JBQTRCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztTQUFDO1FBQ3ZQLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFNBQWlCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FBQztRQUNyTCxJQUFJLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLG1CQUEyQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FBQztRQUNqUCxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGVBQXVCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FBQztRQUN6TixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sR0FBRztJQWdCWixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUFDO1FBQ3JELElBQUksS0FBSyxDQUFDLDBCQUEwQixFQUFFO1lBQUMsQ0FBQyxDQUFDLDBCQUEwQixHQUFHLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUFDO1FBQzlJLElBQUksS0FBSyxDQUFDLDJCQUEyQixFQUFFO1lBQUMsQ0FBQyxDQUFDLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUFDO1FBQ2xKLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FBQztRQUMxRyxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFBQyxDQUFDLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQUM7UUFDOUYsSUFBSSxLQUFLLENBQUMscUJBQXFCLEVBQUU7WUFBQyxDQUFDLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQUM7UUFDMUgsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQUM7UUFDOUcsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7WUFBQyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQUM7UUFDdEcsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQUM7UUFDOUcsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUU7WUFBQyxDQUFDLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQUM7UUFDbEgsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUFDO1FBQzFELElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLENBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FBQztRQUN4RixJQUFJLEtBQUssQ0FBQyw2QkFBNkIsRUFBRTtZQUFDLENBQUMsQ0FBQyw2QkFBNkIsR0FBRyw2QkFBNkIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7U0FBQztRQUMxSixJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7WUFBQyxDQUFDLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQzdFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBdUI7UUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsR0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQUM7UUFDakosSUFBSSxPQUFPLElBQUksQ0FBQywwQkFBMEIsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLDBCQUEwQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQywwQkFBa0MsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1NBQUM7UUFDM1IsSUFBSSxPQUFPLElBQUksQ0FBQywyQkFBMkIsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLDJCQUEyQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQywyQkFBbUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDO1NBQUM7UUFDalMsSUFBSSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxrQkFBMEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQUM7UUFDM08sSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxjQUFzQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQUM7UUFDbk4sSUFBSSxPQUFPLElBQUksQ0FBQyxxQkFBcUIsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLHFCQUFxQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxxQkFBNkIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1NBQUM7UUFDN1AsSUFBSSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxrQkFBMEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQUM7UUFDM08sSUFBSSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxnQkFBd0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQUM7UUFDL04sSUFBSSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxrQkFBMEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQUM7UUFDM08sSUFBSSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxtQkFBMkIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQUM7UUFDalAsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsS0FBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQUM7UUFDN0osSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxJQUFJLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsNkJBQTZCLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLCtCQUErQixDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLDZCQUFxQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUM7U0FBQztRQUM3UyxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxTQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQUM7UUFDckwsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLE1BQU07SUFJZixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUEwQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQUM7UUFDcEYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDZCQUE2QjtJQUd0QyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFDO1FBQzVDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQWlEO1FBQ3pELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsNkNBQTZDLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLCtDQUErQyxDQUFDLEdBQUcsSUFBSSxDQUFDLDZDQUE2QyxDQUFDO1NBQUM7UUFDaE0sT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFJeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FBQztRQUNqSCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQW1DO1FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FBQztRQUNuRyxJQUFJLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGtCQUEwQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FBQztRQUMzTyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSXpCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBb0M7UUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUFDO1FBQ25HLElBQUksT0FBTyxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQUM7UUFDL0csT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLFFBQVE7SUFHakIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBNEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUN4RSxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBTTlCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FBQztRQUNyRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQXlDO1FBQ2pELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLEdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUFDO1FBQ2pKLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDOUUsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUFDO1FBQzlFLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxPQUFPO0lBT2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFBQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQUM7UUFDOUQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7U0FBQztRQUN6RCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFBQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUFDO1FBQ3pELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBMkI7UUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsTUFBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDbkssSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUN6SyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUN6SyxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUFDO1FBQ3BGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFJMUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNoQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUFxQztRQUM3QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUFDO1FBQ3hFLElBQUksT0FBTyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQUM7UUFDcEYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ2pDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFBQyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ3pFLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBc0M7UUFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFDO1FBQy9LLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDN0YsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDJCQUEyQjtJQVNwQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1FBQzFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDOUUsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUErQztRQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUFDO1FBQzFGLElBQUksT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQUM7UUFDekcsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUM7UUFDdkosSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQUM7UUFDbkcsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFDO1FBQzNFLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7SUFHNUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztRQUNsQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUF1QztRQUMvQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUFDO1FBQ3BGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyx3QkFBd0I7SUFJakMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUE0QztRQUNwRCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFDO1FBQ2pGLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFJeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBbUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FBQztRQUNwRixJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUFDO1FBQ3BGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxLQUFLO0lBSWQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDcEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNoRSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQXlCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQUM7UUFDakYsSUFBSSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FBQztRQUM1RyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sb0JBQW9CO0lBTzdCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDbkMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBd0M7UUFDaEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FBQztRQUN4RSxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQUM7UUFDdEcsSUFBSSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FBQztRQUN6RyxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFDO1FBQ2pGLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQUM7UUFDM0UsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFJdkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUFDO1FBQ2xHLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBa0M7UUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxJQUFJLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxhQUFxQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQUM7UUFDN00sT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFJdkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBa0M7UUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUFDO1FBQ2pGLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTywwQkFBMEI7SUFRbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQWdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUFDO1FBQ3hJLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBOEM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUFDO1FBQzFGLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQUM7UUFDOUUsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUM5RSxJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQUM7UUFDbkcsSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7U0FBQztRQUNoRyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBSzNCLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDakMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFO1lBQUMsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLGlCQUFpQixDQUFzQixDQUFDLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FBQztRQUN2SSxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQXNDO1FBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDN0YsSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7U0FBQztRQUNoRyxJQUFJLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUFDO1FBQ3pHLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQWN0aXZhdGlvbkluZm9ybWF0aW9uIGltcGxlbWVudHMgaS5BY3RpdmF0aW9uSW5mb3JtYXRpb25JbnRlcmZhY2Uge1xuICAgIG9yZGVyRm9ybUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgbXVsdGlwbGVBY3RpdmF0aW9uc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWN0aXZhdGlvblNwZWNpZmljVXJsRW5hYmxlZDogYm9vbGVhbjtcbiAgICBzZXBhcmF0ZU9yZGVyRm9ybXM6IGJvb2xlYW47XG4gICAgcmVxdWlyZWRCdXNpbmVzc0RhdGE6IFJlcXVpcmVkQnVzaW5lc3NEYXRhO1xuICAgIHN1c3BlbmRlZDogRGF0ZTtcbiAgICBjb3VudHJ5UmVzdHJpY3Rpb25zOiBQZXJtaXNzaW9uTGlzdHM7XG4gICAgYXBwUmVzdHJpY3Rpb25zOiBBcHBSZXN0cmljdGlvbnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBY3RpdmF0aW9uSW5mb3JtYXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBBY3RpdmF0aW9uSW5mb3JtYXRpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucmVxdWlyZWRCdXNpbmVzc0RhdGEpIHttLnJlcXVpcmVkQnVzaW5lc3NEYXRhID0gUmVxdWlyZWRCdXNpbmVzc0RhdGEuZnJvbVByb3RvKHByb3RvLnJlcXVpcmVkQnVzaW5lc3NEYXRhKTt9XG4gICAgICAgIGlmIChwcm90by5zdXNwZW5kZWQpIHttLnN1c3BlbmRlZCA9IG5ldyBEYXRlKHByb3RvLnN1c3BlbmRlZCk7fVxuICAgICAgICBpZiAocHJvdG8uY291bnRyeVJlc3RyaWN0aW9ucykge20uY291bnRyeVJlc3RyaWN0aW9ucyA9IFBlcm1pc3Npb25MaXN0cy5mcm9tUHJvdG8ocHJvdG8uY291bnRyeVJlc3RyaWN0aW9ucyk7fVxuICAgICAgICBpZiAocHJvdG8uYXBwUmVzdHJpY3Rpb25zKSB7bS5hcHBSZXN0cmljdGlvbnMgPSBBcHBSZXN0cmljdGlvbnMuZnJvbVByb3RvKHByb3RvLmFwcFJlc3RyaWN0aW9ucyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkFjdGl2YXRpb25JbmZvcm1hdGlvbkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yZGVyRm9ybUVuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZGVyRm9ybUVuYWJsZWQnXSA9IHRoaXMub3JkZXJGb3JtRW5hYmxlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tdWx0aXBsZUFjdGl2YXRpb25zRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbXVsdGlwbGVBY3RpdmF0aW9uc0VuYWJsZWQnXSA9IHRoaXMubXVsdGlwbGVBY3RpdmF0aW9uc0VuYWJsZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aXZhdGlvblNwZWNpZmljVXJsRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWN0aXZhdGlvblNwZWNpZmljVXJsRW5hYmxlZCddID0gdGhpcy5hY3RpdmF0aW9uU3BlY2lmaWNVcmxFbmFibGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlcGFyYXRlT3JkZXJGb3JtcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2VwYXJhdGVPcmRlckZvcm1zJ10gPSB0aGlzLnNlcGFyYXRlT3JkZXJGb3Jtczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXF1aXJlZEJ1c2luZXNzRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5yZXF1aXJlZEJ1c2luZXNzRGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydyZXF1aXJlZEJ1c2luZXNzRGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5yZXF1aXJlZEJ1c2luZXNzRGF0YSA/ICh0aGlzLnJlcXVpcmVkQnVzaW5lc3NEYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnJlcXVpcmVkQnVzaW5lc3NEYXRhO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN1c3BlbmRlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdXNwZW5kZWQgIT09IG51bGwpIHt0b1JldHVyblsnc3VzcGVuZGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN1c3BlbmRlZCA/ICh0aGlzLnN1c3BlbmRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdXNwZW5kZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY291bnRyeVJlc3RyaWN0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb3VudHJ5UmVzdHJpY3Rpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvdW50cnlSZXN0cmljdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY291bnRyeVJlc3RyaWN0aW9ucyA/ICh0aGlzLmNvdW50cnlSZXN0cmljdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY291bnRyeVJlc3RyaWN0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hcHBSZXN0cmljdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYXBwUmVzdHJpY3Rpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcFJlc3RyaWN0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5hcHBSZXN0cmljdGlvbnMgPyAodGhpcy5hcHBSZXN0cmljdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwUmVzdHJpY3Rpb25zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcCBpbXBsZW1lbnRzIGkuQXBwSW50ZXJmYWNlIHtcbiAgICBrZXk6IEFwcEtleTtcbiAgICBzaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbjogU2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb247XG4gICAgZW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uOiBFbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb247XG4gICAgcGFyZW50UmVxdWlyZW1lbnRzOiBSZXF1aXJlZFBhcmVudDtcbiAgICBzc29JbnRlZ3JhdGlvbjogU1NPSW50ZWdyYXRpb247XG4gICAgYWN0aXZhdGlvbkluZm9ybWF0aW9uOiBBY3RpdmF0aW9uSW5mb3JtYXRpb247XG4gICAgdHJpYWxDb25maWd1cmF0aW9uOiBUcmlhbENvbmZpZ3VyYXRpb247XG4gICAgYmFzaWNJbnRlZ3JhdGlvbjogQmFzaWNJbnRlZ3JhdGlvbjtcbiAgICBlZGl0aW9uSW5mb3JtYXRpb246IEVkaXRpb25JbmZvcm1hdGlvbjtcbiAgICBleHRlcm5hbElkZW50aWZpZXJzOiBFeHRlcm5hbElkZW50aWZpZXJzO1xuICAgIHByaWNlOiBQcmljZTtcbiAgICBhcHBUeXBlOiBlLkFwcFR5cGU7XG4gICAgYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQ6IEFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkO1xuICAgIGNoaWxkQXBwczogQ2hpbGRBcHBbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFwcCB7XG4gICAgICAgIGxldCBtID0gbmV3IEFwcCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5rZXkpIHttLmtleSA9IEFwcEtleS5mcm9tUHJvdG8ocHJvdG8ua2V5KTt9XG4gICAgICAgIGlmIChwcm90by5zaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbikge20uc2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb24gPSBTaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbi5mcm9tUHJvdG8ocHJvdG8uc2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbikge20uZW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uID0gRW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uLmZyb21Qcm90byhwcm90by5lbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLnBhcmVudFJlcXVpcmVtZW50cykge20ucGFyZW50UmVxdWlyZW1lbnRzID0gUmVxdWlyZWRQYXJlbnQuZnJvbVByb3RvKHByb3RvLnBhcmVudFJlcXVpcmVtZW50cyk7fVxuICAgICAgICBpZiAocHJvdG8uc3NvSW50ZWdyYXRpb24pIHttLnNzb0ludGVncmF0aW9uID0gU1NPSW50ZWdyYXRpb24uZnJvbVByb3RvKHByb3RvLnNzb0ludGVncmF0aW9uKTt9XG4gICAgICAgIGlmIChwcm90by5hY3RpdmF0aW9uSW5mb3JtYXRpb24pIHttLmFjdGl2YXRpb25JbmZvcm1hdGlvbiA9IEFjdGl2YXRpb25JbmZvcm1hdGlvbi5mcm9tUHJvdG8ocHJvdG8uYWN0aXZhdGlvbkluZm9ybWF0aW9uKTt9XG4gICAgICAgIGlmIChwcm90by50cmlhbENvbmZpZ3VyYXRpb24pIHttLnRyaWFsQ29uZmlndXJhdGlvbiA9IFRyaWFsQ29uZmlndXJhdGlvbi5mcm9tUHJvdG8ocHJvdG8udHJpYWxDb25maWd1cmF0aW9uKTt9XG4gICAgICAgIGlmIChwcm90by5iYXNpY0ludGVncmF0aW9uKSB7bS5iYXNpY0ludGVncmF0aW9uID0gQmFzaWNJbnRlZ3JhdGlvbi5mcm9tUHJvdG8ocHJvdG8uYmFzaWNJbnRlZ3JhdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8uZWRpdGlvbkluZm9ybWF0aW9uKSB7bS5lZGl0aW9uSW5mb3JtYXRpb24gPSBFZGl0aW9uSW5mb3JtYXRpb24uZnJvbVByb3RvKHByb3RvLmVkaXRpb25JbmZvcm1hdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8uZXh0ZXJuYWxJZGVudGlmaWVycykge20uZXh0ZXJuYWxJZGVudGlmaWVycyA9IEV4dGVybmFsSWRlbnRpZmllcnMuZnJvbVByb3RvKHByb3RvLmV4dGVybmFsSWRlbnRpZmllcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnByaWNlKSB7bS5wcmljZSA9IFByaWNlLmZyb21Qcm90byhwcm90by5wcmljZSk7fVxuICAgICAgICBpZiAocHJvdG8uYXBwVHlwZSkge20uYXBwVHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuQXBwVHlwZT4oZS5BcHBUeXBlLCBwcm90by5hcHBUeXBlKTt9XG4gICAgICAgIGlmIChwcm90by5hcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZCkge20uYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQgPSBBcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZC5mcm9tUHJvdG8ocHJvdG8uYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQpO31cbiAgICAgICAgaWYgKHByb3RvLmNoaWxkQXBwcykge20uY2hpbGRBcHBzID0gcHJvdG8uY2hpbGRBcHBzLm1hcChDaGlsZEFwcC5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BcHBJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5rZXkgIT09ICd1bmRlZmluZWQnICYmIHRoaXMua2V5ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2tleSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5rZXkgPyAodGhpcy5rZXkgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMua2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uID8gKHRoaXMuc2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydlbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uID8gKHRoaXMuZW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmVuZFVzZXJNYXJrZXRpbmdJbmZvcm1hdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYXJlbnRSZXF1aXJlbWVudHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGFyZW50UmVxdWlyZW1lbnRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhcmVudFJlcXVpcmVtZW50cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5wYXJlbnRSZXF1aXJlbWVudHMgPyAodGhpcy5wYXJlbnRSZXF1aXJlbWVudHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFyZW50UmVxdWlyZW1lbnRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNzb0ludGVncmF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNzb0ludGVncmF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Nzb0ludGVncmF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNzb0ludGVncmF0aW9uID8gKHRoaXMuc3NvSW50ZWdyYXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3NvSW50ZWdyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWN0aXZhdGlvbkluZm9ybWF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFjdGl2YXRpb25JbmZvcm1hdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydhY3RpdmF0aW9uSW5mb3JtYXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYWN0aXZhdGlvbkluZm9ybWF0aW9uID8gKHRoaXMuYWN0aXZhdGlvbkluZm9ybWF0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFjdGl2YXRpb25JbmZvcm1hdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50cmlhbENvbmZpZ3VyYXRpb24gIT09ICd1bmRlZmluZWQnICYmIHRoaXMudHJpYWxDb25maWd1cmF0aW9uICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RyaWFsQ29uZmlndXJhdGlvbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50cmlhbENvbmZpZ3VyYXRpb24gPyAodGhpcy50cmlhbENvbmZpZ3VyYXRpb24gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudHJpYWxDb25maWd1cmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJhc2ljSW50ZWdyYXRpb24gIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYmFzaWNJbnRlZ3JhdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydiYXNpY0ludGVncmF0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmJhc2ljSW50ZWdyYXRpb24gPyAodGhpcy5iYXNpY0ludGVncmF0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmJhc2ljSW50ZWdyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZWRpdGlvbkluZm9ybWF0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVkaXRpb25JbmZvcm1hdGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydlZGl0aW9uSW5mb3JtYXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZWRpdGlvbkluZm9ybWF0aW9uID8gKHRoaXMuZWRpdGlvbkluZm9ybWF0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmVkaXRpb25JbmZvcm1hdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5leHRlcm5hbElkZW50aWZpZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmV4dGVybmFsSWRlbnRpZmllcnMgIT09IG51bGwpIHt0b1JldHVyblsnZXh0ZXJuYWxJZGVudGlmaWVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5leHRlcm5hbElkZW50aWZpZXJzID8gKHRoaXMuZXh0ZXJuYWxJZGVudGlmaWVycyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5leHRlcm5hbElkZW50aWZpZXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByaWNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnByaWNlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3ByaWNlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnByaWNlID8gKHRoaXMucHJpY2UgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYXBwVHlwZSddID0gdGhpcy5hcHBUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkID8gKHRoaXMuYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2hpbGRBcHBzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNoaWxkQXBwcyAhPT0gbnVsbCkge3RvUmV0dXJuWydjaGlsZEFwcHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY2hpbGRBcHBzID8gKHRoaXMuY2hpbGRBcHBzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNoaWxkQXBwczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBLZXkgaW1wbGVtZW50cyBpLkFwcEtleUludGVyZmFjZSB7XG4gICAgYXBwSWQ6IHN0cmluZztcbiAgICBlZGl0aW9uSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFwcEtleSB7XG4gICAgICAgIGxldCBtID0gbmV3IEFwcEtleSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQXBwS2V5SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FwcElkJ10gPSB0aGlzLmFwcElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVkaXRpb25JZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZWRpdGlvbklkJ10gPSB0aGlzLmVkaXRpb25JZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZCBpbXBsZW1lbnRzIGkuQXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWRJbnRlcmZhY2Uge1xuICAgIGFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkRm9yUGFydG5lckNlbnRlcjogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWQoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkFwcExldmVsQWRtaW5EYXNoYm9hcmRFbmFibGVkSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWRGb3JQYXJ0bmVyQ2VudGVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhcHBMZXZlbEFkbWluRGFzaGJvYXJkRW5hYmxlZEZvclBhcnRuZXJDZW50ZXInXSA9IHRoaXMuYXBwTGV2ZWxBZG1pbkRhc2hib2FyZEVuYWJsZWRGb3JQYXJ0bmVyQ2VudGVyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFwcFJlc3RyaWN0aW9ucyBpbXBsZW1lbnRzIGkuQXBwUmVzdHJpY3Rpb25zSW50ZXJmYWNlIHtcbiAgICByZXF1aXJlZEFwcElkczogc3RyaW5nW107XG4gICAgcmVxdWlyZWRFZGl0aW9uSWRzOiBFZGl0aW9uSWRlbnRpZmllcltdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQXBwUmVzdHJpY3Rpb25zIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXBwUmVzdHJpY3Rpb25zKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnJlcXVpcmVkRWRpdGlvbklkcykge20ucmVxdWlyZWRFZGl0aW9uSWRzID0gcHJvdG8ucmVxdWlyZWRFZGl0aW9uSWRzLm1hcChFZGl0aW9uSWRlbnRpZmllci5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BcHBSZXN0cmljdGlvbnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXF1aXJlZEFwcElkcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVxdWlyZWRBcHBJZHMnXSA9IHRoaXMucmVxdWlyZWRBcHBJZHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVxdWlyZWRFZGl0aW9uSWRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnJlcXVpcmVkRWRpdGlvbklkcyAhPT0gbnVsbCkge3RvUmV0dXJuWydyZXF1aXJlZEVkaXRpb25JZHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucmVxdWlyZWRFZGl0aW9uSWRzID8gKHRoaXMucmVxdWlyZWRFZGl0aW9uSWRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnJlcXVpcmVkRWRpdGlvbklkczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0ludGVncmF0aW9uIGltcGxlbWVudHMgaS5CYXNpY0ludGVncmF0aW9uSW50ZXJmYWNlIHtcbiAgICBhcHBsaWNhdGlvblVybDogc3RyaW5nO1xuICAgIGFsbG93V2hpdGVMYWJlbGluZzogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJhc2ljSW50ZWdyYXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBCYXNpY0ludGVncmF0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CYXNpY0ludGVncmF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwbGljYXRpb25VcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FwcGxpY2F0aW9uVXJsJ10gPSB0aGlzLmFwcGxpY2F0aW9uVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFsbG93V2hpdGVMYWJlbGluZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWxsb3dXaGl0ZUxhYmVsaW5nJ10gPSB0aGlzLmFsbG93V2hpdGVMYWJlbGluZzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDaGlsZEFwcCBpbXBsZW1lbnRzIGkuQ2hpbGRBcHBJbnRlcmZhY2Uge1xuICAgIGFwcElkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDaGlsZEFwcCB7XG4gICAgICAgIGxldCBtID0gbmV3IENoaWxkQXBwKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DaGlsZEFwcEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhcHBJZCddID0gdGhpcy5hcHBJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1aXJlZFBhcmVudERldGFpbHMgaW1wbGVtZW50cyBpLlJlcXVpcmVkUGFyZW50RGV0YWlsc0ludGVyZmFjZSB7XG4gICAga2V5OiBBcHBLZXk7XG4gICAgaWNvblVybDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0YWdsaW5lOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBSZXF1aXJlZFBhcmVudERldGFpbHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBSZXF1aXJlZFBhcmVudERldGFpbHMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ua2V5KSB7bS5rZXkgPSBBcHBLZXkuZnJvbVByb3RvKHByb3RvLmtleSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlJlcXVpcmVkUGFyZW50RGV0YWlsc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmtleSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5rZXkgIT09IG51bGwpIHt0b1JldHVyblsna2V5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmtleSA/ICh0aGlzLmtleSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5rZXk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWNvblVybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWNvblVybCddID0gdGhpcy5pY29uVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hbWUnXSA9IHRoaXMubmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YWdsaW5lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YWdsaW5lJ10gPSB0aGlzLnRhZ2xpbmU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRWRpdGlvbiBpbXBsZW1lbnRzIGkuRWRpdGlvbkludGVyZmFjZSB7XG4gICAgYXBwS2V5OiBBcHBLZXk7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgdXBkYXRlZDogRGF0ZTtcbiAgICBiaWxsaW5nSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEVkaXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBFZGl0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmFwcEtleSkge20uYXBwS2V5ID0gQXBwS2V5LmZyb21Qcm90byhwcm90by5hcHBLZXkpO31cbiAgICAgICAgaWYgKHByb3RvLmNyZWF0ZWQpIHttLmNyZWF0ZWQgPSBuZXcgRGF0ZShwcm90by5jcmVhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by51cGRhdGVkKSB7bS51cGRhdGVkID0gbmV3IERhdGUocHJvdG8udXBkYXRlZCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkVkaXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hcHBLZXkgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYXBwS2V5ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcEtleSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5hcHBLZXkgPyAodGhpcy5hcHBLZXkgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwS2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hbWUnXSA9IHRoaXMubmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZWQgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVkID8gKHRoaXMuY3JlYXRlZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudXBkYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnVwZGF0ZWQgPyAodGhpcy51cGRhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYmlsbGluZ0lkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydiaWxsaW5nSWQnXSA9IHRoaXMuYmlsbGluZ0lkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRpb25JZGVudGlmaWVyIGltcGxlbWVudHMgaS5FZGl0aW9uSWRlbnRpZmllckludGVyZmFjZSB7XG4gICAgYXBwSWQ6IHN0cmluZztcbiAgICBlZGl0aW9uSWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEVkaXRpb25JZGVudGlmaWVyIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRWRpdGlvbklkZW50aWZpZXIoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkVkaXRpb25JZGVudGlmaWVySW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FwcElkJ10gPSB0aGlzLmFwcElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVkaXRpb25JZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZWRpdGlvbklkJ10gPSB0aGlzLmVkaXRpb25JZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFZGl0aW9uSW5mb3JtYXRpb24gaW1wbGVtZW50cyBpLkVkaXRpb25JbmZvcm1hdGlvbkludGVyZmFjZSB7XG4gICAgZWRpdGlvbnM6IEVkaXRpb25bXTtcbiAgICB1c2VzRWRpdGlvbnM6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFZGl0aW9uSW5mb3JtYXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBFZGl0aW9uSW5mb3JtYXRpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZWRpdGlvbnMpIHttLmVkaXRpb25zID0gcHJvdG8uZWRpdGlvbnMubWFwKEVkaXRpb24uZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRWRpdGlvbkluZm9ybWF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZWRpdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZWRpdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnZWRpdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZWRpdGlvbnMgPyAodGhpcy5lZGl0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lZGl0aW9uczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51c2VzRWRpdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VzZXNFZGl0aW9ucyddID0gdGhpcy51c2VzRWRpdGlvbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW5kVXNlck1hcmtldGluZ0luZm9ybWF0aW9uIGltcGxlbWVudHMgaS5FbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2Uge1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAga2V5U2VsbGluZ1BvaW50czogc3RyaW5nW107XG4gICAgZmFxczogRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zW107XG4gICAgZmlsZVVybHM6IHN0cmluZ1tdO1xuICAgIHNjcmVlbnNob3RVcmxzOiBzdHJpbmdbXTtcbiAgICBuZWVkSGVscDogc3RyaW5nO1xuICAgIHZpZGVvczogc3RyaW5nW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb24ge1xuICAgICAgICBsZXQgbSA9IG5ldyBFbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZmFxcykge20uZmFxcyA9IHByb3RvLmZhcXMubWFwKEZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9ucy5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FbmRVc2VyTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5U2VsbGluZ1BvaW50cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsna2V5U2VsbGluZ1BvaW50cyddID0gdGhpcy5rZXlTZWxsaW5nUG9pbnRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZhcXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZmFxcyAhPT0gbnVsbCkge3RvUmV0dXJuWydmYXFzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZhcXMgPyAodGhpcy5mYXFzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZhcXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsZVVybHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ZpbGVVcmxzJ10gPSB0aGlzLmZpbGVVcmxzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNjcmVlbnNob3RVcmxzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzY3JlZW5zaG90VXJscyddID0gdGhpcy5zY3JlZW5zaG90VXJsczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uZWVkSGVscCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmVlZEhlbHAnXSA9IHRoaXMubmVlZEhlbHA7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmlkZW9zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2aWRlb3MnXSA9IHRoaXMudmlkZW9zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEV4dGVybmFsSWRlbnRpZmllcnMgaW1wbGVtZW50cyBpLkV4dGVybmFsSWRlbnRpZmllcnNJbnRlcmZhY2Uge1xuICAgIGJpbGxpbmdJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRXh0ZXJuYWxJZGVudGlmaWVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IEV4dGVybmFsSWRlbnRpZmllcnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkV4dGVybmFsSWRlbnRpZmllcnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5iaWxsaW5nSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2JpbGxpbmdJZCddID0gdGhpcy5iaWxsaW5nSWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zIGltcGxlbWVudHMgaS5GcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNJbnRlcmZhY2Uge1xuICAgIHF1ZXN0aW9uOiBzdHJpbmc7XG4gICAgYW5zd2VyOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMge1xuICAgICAgICBsZXQgbSA9IG5ldyBGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnF1ZXN0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydxdWVzdGlvbiddID0gdGhpcy5xdWVzdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hbnN3ZXIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Fuc3dlciddID0gdGhpcy5hbnN3ZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkxpc3RzIGltcGxlbWVudHMgaS5QZXJtaXNzaW9uTGlzdHNJbnRlcmZhY2Uge1xuICAgIHdoaXRlbGlzdDogc3RyaW5nW107XG4gICAgYmxhY2tsaXN0OiBzdHJpbmdbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFBlcm1pc3Npb25MaXN0cyB7XG4gICAgICAgIGxldCBtID0gbmV3IFBlcm1pc3Npb25MaXN0cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMud2hpdGVsaXN0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd3aGl0ZWxpc3QnXSA9IHRoaXMud2hpdGVsaXN0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJsYWNrbGlzdCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYmxhY2tsaXN0J10gPSB0aGlzLmJsYWNrbGlzdDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQcmljZSBpbXBsZW1lbnRzIGkuUHJpY2VJbnRlcmZhY2Uge1xuICAgIHNldHVwRmVlOiBudW1iZXI7XG4gICAgdXNlc0N1c3RvbVByaWNpbmc6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBQcmljZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFByaWNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnNldHVwRmVlKSB7bS5zZXR1cEZlZSA9IHBhcnNlSW50KHByb3RvLnNldHVwRmVlLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlByaWNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2V0dXBGZWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NldHVwRmVlJ10gPSB0aGlzLnNldHVwRmVlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZXNDdXN0b21QcmljaW5nICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1c2VzQ3VzdG9tUHJpY2luZyddID0gdGhpcy51c2VzQ3VzdG9tUHJpY2luZzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1aXJlZEJ1c2luZXNzRGF0YSBpbXBsZW1lbnRzIGkuUmVxdWlyZWRCdXNpbmVzc0RhdGFJbnRlcmZhY2Uge1xuICAgIGhvdXJzOiBib29sZWFuO1xuICAgIGRlc2NyaXB0aW9uTG9uZzogYm9vbGVhbjtcbiAgICBkZXNjcmlwdGlvblNob3J0OiBib29sZWFuO1xuICAgIHNlcnZpY2VzOiBib29sZWFuO1xuICAgIGJyYW5kczogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFJlcXVpcmVkQnVzaW5lc3NEYXRhIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUmVxdWlyZWRCdXNpbmVzc0RhdGEoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlJlcXVpcmVkQnVzaW5lc3NEYXRhSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaG91cnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2hvdXJzJ10gPSB0aGlzLmhvdXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uTG9uZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb25Mb25nJ10gPSB0aGlzLmRlc2NyaXB0aW9uTG9uZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvblNob3J0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvblNob3J0J10gPSB0aGlzLmRlc2NyaXB0aW9uU2hvcnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2VydmljZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlcnZpY2VzJ10gPSB0aGlzLnNlcnZpY2VzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJyYW5kcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnJhbmRzJ10gPSB0aGlzLmJyYW5kczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXF1aXJlZFBhcmVudCBpbXBsZW1lbnRzIGkuUmVxdWlyZWRQYXJlbnRJbnRlcmZhY2Uge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcGFyZW50RGV0YWlsczogUmVxdWlyZWRQYXJlbnREZXRhaWxzO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUmVxdWlyZWRQYXJlbnQge1xuICAgICAgICBsZXQgbSA9IG5ldyBSZXF1aXJlZFBhcmVudCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5wYXJlbnREZXRhaWxzKSB7bS5wYXJlbnREZXRhaWxzID0gUmVxdWlyZWRQYXJlbnREZXRhaWxzLmZyb21Qcm90byhwcm90by5wYXJlbnREZXRhaWxzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuUmVxdWlyZWRQYXJlbnRJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmFibGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmFibGVkJ10gPSB0aGlzLmVuYWJsZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFyZW50RGV0YWlscyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYXJlbnREZXRhaWxzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhcmVudERldGFpbHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFyZW50RGV0YWlscyA/ICh0aGlzLnBhcmVudERldGFpbHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFyZW50RGV0YWlsczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTU09JbnRlZ3JhdGlvbiBpbXBsZW1lbnRzIGkuU1NPSW50ZWdyYXRpb25JbnRlcmZhY2Uge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgZW50cnlVcmw6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNTT0ludGVncmF0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgU1NPSW50ZWdyYXRpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlNTT0ludGVncmF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5hYmxlZCddID0gdGhpcy5lbmFibGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudHJ5VXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRyeVVybCddID0gdGhpcy5lbnRyeVVybDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbiBpbXBsZW1lbnRzIGkuU2hhcmVkTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2Uge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlZGl0aW9uTmFtZTogc3RyaW5nO1xuICAgIGljb25Vcmw6IHN0cmluZztcbiAgICB0YWdsaW5lOiBzdHJpbmc7XG4gICAgYmFubmVySW1hZ2VVcmw6IHN0cmluZztcbiAgICBsbWlDYXRlZ29yaWVzOiBlLkxtaUNhdGVnb3J5W107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBTaGFyZWRNYXJrZXRpbmdJbmZvcm1hdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IFNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmxtaUNhdGVnb3JpZXMpIHttLmxtaUNhdGVnb3JpZXMgPSBwcm90by5sbWlDYXRlZ29yaWVzLm1hcCgodjogc3RyaW5nKSA9PiBlbnVtU3RyaW5nVG9WYWx1ZTxlLkxtaUNhdGVnb3J5PihlLkxtaUNhdGVnb3J5LCB2KSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlNoYXJlZE1hcmtldGluZ0luZm9ybWF0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVkaXRpb25OYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlZGl0aW9uTmFtZSddID0gdGhpcy5lZGl0aW9uTmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pY29uVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpY29uVXJsJ10gPSB0aGlzLmljb25Vcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGFnbGluZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGFnbGluZSddID0gdGhpcy50YWdsaW5lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJhbm5lckltYWdlVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydiYW5uZXJJbWFnZVVybCddID0gdGhpcy5iYW5uZXJJbWFnZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sbWlDYXRlZ29yaWVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsbWlDYXRlZ29yaWVzJ10gPSB0aGlzLmxtaUNhdGVnb3JpZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJpYWxDb25maWd1cmF0aW9uIGltcGxlbWVudHMgaS5UcmlhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2Uge1xuICAgIHRyaWFsRW5hYmxlZDogYm9vbGVhbjtcbiAgICB0cmlhbER1cmF0aW9uOiBudW1iZXI7XG4gICAgZW5kT2ZUcmlhbEFjdGlvbjogZS5FbmRPZlRyaWFsQWN0aW9ucztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRyaWFsQ29uZmlndXJhdGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IFRyaWFsQ29uZmlndXJhdGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5lbmRPZlRyaWFsQWN0aW9uKSB7bS5lbmRPZlRyaWFsQWN0aW9uID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5FbmRPZlRyaWFsQWN0aW9ucz4oZS5FbmRPZlRyaWFsQWN0aW9ucywgcHJvdG8uZW5kT2ZUcmlhbEFjdGlvbik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRyaWFsQ29uZmlndXJhdGlvbkludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRyaWFsRW5hYmxlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHJpYWxFbmFibGVkJ10gPSB0aGlzLnRyaWFsRW5hYmxlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50cmlhbER1cmF0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0cmlhbER1cmF0aW9uJ10gPSB0aGlzLnRyaWFsRHVyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5kT2ZUcmlhbEFjdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5kT2ZUcmlhbEFjdGlvbiddID0gdGhpcy5lbmRPZlRyaWFsQWN0aW9uO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21hcmtldHBsYWNlX2FwcHNfc2RrL3YxL3NyYy9faW50ZXJuYWwvaW50ZXJmYWNlcy9hcGkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEludGVyZmFjZXMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7IEFkZG9uSW50ZXJmYWNlIH0gZnJvbSAnLi9hZGRvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwVmVuZG9ySW50ZXJmYWNlIH0gZnJvbSAnLi92ZW5kb3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1pdG1lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2NvbW1pdG1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZlZUludGVyZmFjZSB9IGZyb20gJy4vZmVlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZE1hc2tJbnRlcmZhY2UgfSBmcm9tICcuL2ZpZWxkLW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7IE1hcmtldHBsYWNlQXBwSW50ZXJmYWNlLCBNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZSwgQ29zdEludGVyZmFjZSwgSWRlbnRpZmllZFB1YmxpY0tleUludGVyZmFjZSwgQ29udGFjdEludGVyZmFjZSB9IGZyb20gJy4vYXBwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcmRlckZvcm1JbnRlcmZhY2UgfSBmcm9tICcuL29yZGVyLWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2R1Y3RDb3N0SW50ZXJmYWNlIH0gZnJvbSAnLi9wcm9kdWN0LWNvc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3RyaWN0aW9uc0ludGVyZmFjZSwgUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlIH0gZnJvbSAnLi9yZXN0cmljdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUFwcEVkaXRpb25JZGVudGlmaWVySW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBlZGl0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQXBwSURSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBpZD86IHN0cmluZztcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRBcHBJRFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB2ZW5kb3I/OiBBcHBWZW5kb3JJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkb25SZXNwb25zZUludGVyZmFjZSB7XG4gICAgYWRkb24/OiBBZGRvbkludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRvbnNMaXN0UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGFkZG9ucz86IEFkZG9uSW50ZXJmYWNlW107XG4gICAgbmV4dEN1cnNvcj86IHN0cmluZztcbiAgICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBSZXNwb25zZUludGVyZmFjZSB7XG4gICAgYXBwPzogTWFya2V0cGxhY2VBcHBJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92ZUFkZG9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgYWRkb25JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZlQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQWN0aXZhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZHM/OiBzdHJpbmdbXTtcbiAgICBhY3RpdmVBcHBJZHM/OiBzdHJpbmdbXTtcbiAgICBhY3RpdmVBcHBFZGl0aW9uSWRzPzogQWN0aXZlQXBwRWRpdGlvbklkZW50aWZpZXJJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYW5BY3RpdmF0ZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZhbGlkUmVzcG9uc2U/OiBDYW5BY3RpdmF0ZVJlc3BvbnNlSW52YWxpZFJlc3BvbnNlSW50ZXJmYWNlO1xuICAgIHN1Y2Nlc3NSZXNwb25zZT86IENhbkFjdGl2YXRlUmVzcG9uc2VTdWNjZXNzUmVzcG9uc2VJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB2ZW5kb3I/OiBzdHJpbmc7XG4gICAgdGFnbGluZT86IHN0cmluZztcbiAgICBzZXJ2aWNlTW9kZWw/OiBzdHJpbmdbXTtcbiAgICBsbWlDYXRlZ29yaWVzPzogZS5NYXJrZXRwbGFjZUFwcExtaUxtaUNhdGVnb3JpZXNbXTtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGhlYWRlckltYWdlPzogc3RyaW5nO1xuICAgIHNjcmVlbnNob3Q/OiBzdHJpbmdbXTtcbiAgICBwcmljZT86IG51bWJlcjtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBiaWxsaW5nRnJlcXVlbmN5Pzogc3RyaW5nO1xuICAgIHJlc3RyaWN0aW9ucz86IFJlc3RyaWN0aW9uc0ludGVyZmFjZTtcbiAgICBhbGxvd1ByaWNlTmVnb3RpYXRpb24/OiBib29sZWFuO1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICByZXNlcnZlSWRVcmw/OiBzdHJpbmc7XG4gICAgcHVyY2hhc2VXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGFjdGl2YXRpb25SZXF1aXJlc0FwcHJvdmFsPzogYm9vbGVhbjtcbiAgICBhZGRvblB1cmNoYXNlV2ViaG9va1VybD86IHN0cmluZztcbiAgICB1c2VyTW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBhY2NvdW50TW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBjb250YWN0V2ViaG9va1VybD86IHN0cmluZztcbiAgICBmdWxmaWxsbWVudEVtYWlsPzogc3RyaW5nW107XG4gICAgZW50cnlVcmw/OiBzdHJpbmc7XG4gICAgc2Vzc2lvblVybD86IHN0cmluZztcbiAgICBsb2dvdXRVcmw/OiBzdHJpbmc7XG4gICAgdXNlc09yZGVyRm9ybT86IGJvb2xlYW47XG4gICAgb3JkZXJGb3JtPzogT3JkZXJGb3JtSW50ZXJmYWNlO1xuICAgIHJlc2VsbGVyTWFya2V0aW5nPzogTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2U7XG4gICAgZW5kVXNlck1hcmtldGluZz86IE1hcmtldGluZ0luZm9ybWF0aW9uSW50ZXJmYWNlO1xuICAgIHByZXZlbnRQcmljZUNvbnZlcnNpb25CZXR3ZWVuQ3VycmVuY2llcz86IGJvb2xlYW47XG4gICAgcGFydG5lclNldHRpbmdzV2ViaG9va1VybD86IHN0cmluZztcbiAgICBzdWdnZXN0ZWRSZXRhaWxQcmljZT86IG51bWJlcjtcbiAgICBjb3VudHJ5PzogUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlO1xuICAgIGNvbW1pdG1lbnQ/OiBDb21taXRtZW50SW50ZXJmYWNlO1xuICAgIHBhcnRuZXJJZD86IHN0cmluZztcbiAgICB2ZW5kb3JJZD86IHN0cmluZztcbiAgICBjdXN0b21BcHBJZD86IHN0cmluZztcbiAgICBtdWx0aXBsZUFjdGl2YXRpb25zPzogYm9vbGVhbjtcbiAgICB1c2VzQWN0aXZhdGlvblNwZWNpZmljRW50cnlVcmw/OiBib29sZWFuO1xuICAgIHVzZXNSZXNlbGxlck1hcmtldGluZz86IGJvb2xlYW47XG4gICAgdXNlc0ludGVncmF0aW9uPzogYm9vbGVhbjtcbiAgICB1c2VzRWRpdGlvbnM/OiBib29sZWFuO1xuICAgIHVzZXNTc29JbnRlZ3JhdGlvbj86IGJvb2xlYW47XG4gICAgZGlzY292ZXJhYmxlPzogYm9vbGVhbjtcbiAgICBkaXN0cmlidXRpb25TZXR0aW5nPzogZS5EaXN0cmlidXRpb25TZXR0aW5nO1xuICAgIG9yZGVyRm9ybVZhbGlkYXRvcldlYmhvb2tVcmw/OiBzdHJpbmc7XG4gICAgYXBwbGljYXRpb25Vcmw/OiBzdHJpbmc7XG4gICAgYWxsb3dXaGl0ZUxhYmVsaW5nPzogYm9vbGVhbjtcbiAgICBzdGF0ZT86IGUuU3RhdGU7XG4gICAgY29zdD86IENvc3RJbnRlcmZhY2U7XG4gICAgc2V0dXBGZWU/OiBudW1iZXI7XG4gICAgdXNlc0N1c3RvbVByaWNpbmc/OiBib29sZWFuO1xuICAgIGN1c3RvbWVyV2ViaG9va1VybD86IHN0cmluZztcbiAgICBzZW5kQ2FuY2VsYXRpb25Ob3RpZmljYXRpb25zPzogYm9vbGVhbjtcbiAgICBjYW5jZWxsYXRpb25XZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGRlbGl2ZXJ5TWV0aG9kPzogZS5EZWxpdmVyeU1ldGhvZDtcbiAgICBzZXJ2aWNlQ2hhbmdlV2ViaG9va1VybD86IHN0cmluZztcbiAgICBhcHBMZXZlbEhhc0FkbWluRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVWZW5kb3JSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHBhcnRuZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVWZW5kb3JSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER1cGxpY2F0ZUFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER1cGxpY2F0ZUFwcFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRBZGRvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIGFkZG9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXBwSURGcm9tU2t1UmVxdWVzdEludGVyZmFjZSB7XG4gICAgc2t1Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcElERnJvbVNrdVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBhZGRvbklkPzogc3RyaW5nO1xuICAgIGVkaXRpb25JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRBcHBSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG4gICAgYnlwYXNzQ2FjaGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHA/OiBNYXJrZXRwbGFjZUFwcEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRBcHBzVG9EZWFjdGl2YXRlVXBvbkRlYWN0aXZhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkc1RvRGVhY3RpdmF0ZT86IHN0cmluZ1tdO1xuICAgIGFjdGl2ZUFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcHNUb0RlYWN0aXZhdGVVcG9uRGVhY3RpdmF0aW9uUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGFwcElkc1RvQmVEZWFjdGl2YXRlZD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcHNXaXRoVW5wdWJsaXNoZWRDaGFuZ2VzUmVxdWVzdEludGVyZmFjZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXBwc1dpdGhVbnB1Ymxpc2hlZENoYW5nZXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgYXBwSWRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QnlQYXJ0bmVySURSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QnlQYXJ0bmVySURSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmdbXTtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlBcHBSZXNwb25zZUludGVyZmFjZSB7XG4gICAgYXBwcz86IE1hcmtldHBsYWNlQXBwSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlPcmRlckZvcm1zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgcGFydG5lcklkPzogc3RyaW5nO1xuICAgIGFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpT3JkZXJGb3Jtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBvcmRlckZvcm1Db250YWluZXI/OiBHZXRNdWx0aU9yZGVyRm9ybXNSZXNwb25zZU9yZGVyRm9ybUNvbnRhaW5lckludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpUHJvZHVjdENvc3RSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgYXBwSWRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlQcm9kdWN0Q29zdFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBwcm9kdWN0Q29zdD86IHtba2V5OiBzdHJpbmddOiBQcm9kdWN0Q29zdEludGVyZmFjZX07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlWZW5kb3JSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBpZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aVZlbmRvclJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB2ZW5kb3JzPzogQXBwVmVuZG9ySW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0T3duZWRBcHBJRHNCeVBhcnRuZXJJRFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHBhcnRuZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRPd25lZEFwcElEc0J5UGFydG5lcklEUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFB1YmxpY0tleXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQdWJsaWNLZXlzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICBpZGVudGlmaWVkUHVibGljS2V5cz86IElkZW50aWZpZWRQdWJsaWNLZXlJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRTU09VcmxzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0U1NPVXJsc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBlbnRyeVVybD86IHN0cmluZztcbiAgICBzZXNzaW9uVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkFjdGl2YXRlUmVzcG9uc2VJbnZhbGlkUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludmFsaWRBcHBJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc1ZlbmRvckRpc3RyaWJ1dGVkQnlQYXJ0bmVySURSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNWZW5kb3JEaXN0cmlidXRlZEJ5UGFydG5lcklEUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGlzRGlzdHJpYnV0ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBZGRvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEFwcHJvdmVkQWRkb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgY3Vyc29yPzogc3RyaW5nO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIGFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcHBzUmVxdWVzdExpc3RBcHBzRmlsdGVySW50ZXJmYWNlIHtcbiAgICBhcHBUeXBlPzogZS5BcHBUeXBlO1xuICAgIHJlbGVhc2VUeXBlPzogZS5SZWxlYXNlVHlwZTtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgZmlsdGVyVGVybT86IHN0cmluZztcbiAgICBzdGF0ZT86IGUuU3RhdGVGaWx0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcHBzRm9yVmVuZG9ySURzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdmVuZG9ySWRzPzogc3RyaW5nW107XG4gICAgaW5jbHVkZUFkZG9ucz86IGJvb2xlYW47XG4gICAgY3Vyc29yPzogc3RyaW5nO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIGZpZWxkTWFzaz86IEZpZWxkTWFza0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0QXBwc0ZvclZlbmRvcklEc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBzPzogTWFya2V0cGxhY2VBcHBJbnRlcmZhY2VbXTtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEFwcHNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgZmllbGRNYXNrPzogRmllbGRNYXNrSW50ZXJmYWNlO1xuICAgIGZpbHRlcj86IExpc3RBcHBzUmVxdWVzdExpc3RBcHBzRmlsdGVySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1aXJlZEFwcFN1bW1hcmllc0ZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIHNlYXJjaFRlcm0/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcXVpcmVkQXBwU3VtbWFyaWVzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdmVuZG9ySWQ/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nO1xuICAgIGZpbHRlcnM/OiBMaXN0UmVxdWlyZWRBcHBTdW1tYXJpZXNGaWx0ZXJzSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1aXJlZEFwcFN1bW1hcmllc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICByZXF1aXJlZEFwcFN1bW1hcmllcz86IFJlcXVpcmVkQXBwU3VtbWFyeUludGVyZmFjZVtdO1xuICAgIG5leHRDdXJzb3I/OiBzdHJpbmc7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFZlbmRvclJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGN1cnNvcj86IHN0cmluZztcbiAgICBwYWdlU2l6ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0VmVuZG9yUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHZlbmRvcnM/OiBBcHBWZW5kb3JJbnRlcmZhY2VbXTtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlPcmRlckZvcm1zUmVzcG9uc2VPcmRlckZvcm1Db250YWluZXJJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIG9yZGVyRm9ybT86IE9yZGVyRm9ybUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlZEFwcFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBzPzogTWFya2V0cGxhY2VBcHBJbnRlcmZhY2VbXTtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlQcm9kdWN0Q29zdFJlc3BvbnNlUHJvZHVjdENvc3RFbnRyeUludGVyZmFjZSB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogUHJvZHVjdENvc3RJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW92ZUFwcElEUmVxdWVzdEludGVyZmFjZSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3ZlQXBwSURSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RBcHBSZXZpZXdSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlZEFwcFN1bW1hcnlJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgaWNvblVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXN0b3JlQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQWN0aXZhdGVSZXNwb25zZVN1Y2Nlc3NSZXNwb25zZUludGVyZmFjZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VzcGVuZEFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuYXBwcm92ZUFkZG9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgYWRkb25JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmFwcHJvdmVBcHBSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnN1c3BlbmRBcHBSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBBcHByb3ZhbEFuZEJpbGxpbmdTZXR0aW5nc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIGFwcHJvdmFsUHJvY2Vzcz86IGUuQXBwcm92YWxQcm9jZXNzO1xuICAgIGJpbGxpbmdQcm9jZXNzPzogZS5CaWxsaW5nUHJvY2Vzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBDYXRlZ29yaWVzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgY2F0ZWdvcnlJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBGdWxmaWxsbWVudEludGVncmF0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgdXNlc0Z1bGZpbGxtZW50SW50ZWdyYXRpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUFwcEdlbmVyYWxJbmZvcm1hdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdmVuZG9yPzogc3RyaW5nO1xuICAgIHRhZ2xpbmU/OiBzdHJpbmc7XG4gICAgc2VydmljZU1vZGVsPzogc3RyaW5nW107XG4gICAgbG1pQ2F0ZWdvcmllcz86IGUuTWFya2V0cGxhY2VBcHBMbWlMbWlDYXRlZ29yaWVzW107XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBoZWFkZXJJbWFnZT86IHN0cmluZztcbiAgICBzY3JlZW5zaG90Pzogc3RyaW5nW107XG4gICAgcHJpY2U/OiBudW1iZXI7XG4gICAgY3VycmVuY3k/OiBzdHJpbmc7XG4gICAgYmlsbGluZ0ZyZXF1ZW5jeT86IHN0cmluZztcbiAgICByZXN0cmljdGlvbnM/OiBSZXN0cmljdGlvbnNJbnRlcmZhY2U7XG4gICAgYWxsb3dQcmljZU5lZ290aWF0aW9uPzogYm9vbGVhbjtcbiAgICBnZHByQ29tcGxpYW50PzogYm9vbGVhbjtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG4gICAgcHJldmVudFByaWNlQ29udmVyc2lvbkJldHdlZW5DdXJyZW5jaWVzPzogYm9vbGVhbjtcbiAgICBzdWdnZXN0ZWRSZXRhaWxQcmljZT86IG51bWJlcjtcbiAgICBjb3VudHJ5PzogUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlO1xuICAgIGNvbW1pdG1lbnQ/OiBDb21taXRtZW50SW50ZXJmYWNlO1xuICAgIG11bHRpcGxlQWN0aXZhdGlvbnM/OiBib29sZWFuO1xuICAgIHVzZXNFZGl0aW9ucz86IGJvb2xlYW47XG4gICAgZGlzY292ZXJhYmxlPzogYm9vbGVhbjtcbiAgICBlZGl0aW9uSWRzPzogc3RyaW5nW107XG4gICAgc3RhdGU/OiBlLlN0YXRlO1xuICAgIGNvc3Q/OiBDb3N0SW50ZXJmYWNlO1xuICAgIHNldHVwRmVlPzogbnVtYmVyO1xuICAgIHVzZXNDdXN0b21QcmljaW5nPzogYm9vbGVhbjtcbiAgICBkZWxpdmVyeU1ldGhvZD86IGUuRGVsaXZlcnlNZXRob2Q7XG4gICAgY2F0ZWdvcmllcz86IHN0cmluZ1tdO1xuICAgIGZlZXM/OiBGZWVJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBJbnRlZ3JhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICByZXNlcnZlSWRVcmw/OiBzdHJpbmc7XG4gICAgcHVyY2hhc2VXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGFjdGl2YXRpb25SZXF1aXJlc0FwcHJvdmFsPzogYm9vbGVhbjtcbiAgICBhZGRvblB1cmNoYXNlV2ViaG9va1VybD86IHN0cmluZztcbiAgICB1c2VyTW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBhY2NvdW50TW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBjb250YWN0V2ViaG9va1VybD86IHN0cmluZztcbiAgICBmdWxmaWxsbWVudEVtYWlsPzogc3RyaW5nW107XG4gICAgcGFydG5lclNldHRpbmdzV2ViaG9va1VybD86IHN0cmluZztcbiAgICBwYXJ0bmVyQ29udGFjdFJlY2lwaWVudHM/OiBDb250YWN0SW50ZXJmYWNlW107XG4gICAgdXNlc0ludGVncmF0aW9uPzogYm9vbGVhbjtcbiAgICBvcmRlckZvcm1WYWxpZGF0b3JXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGFsbG93V2hpdGVMYWJlbGluZz86IGJvb2xlYW47XG4gICAgY3VzdG9tZXJXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIHNlbmRDYW5jZWxhdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICAgIGNhbmNlbGxhdGlvbldlYmhvb2tVcmw/OiBzdHJpbmc7XG4gICAgc2VydmljZUNoYW5nZVdlYmhvb2tVcmw/OiBzdHJpbmc7XG4gICAgYXBwTGV2ZWxIYXNBZG1pbkRhc2hib2FyZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQXBwTWFya2V0aW5nSW5mb3JtYXRpb25SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBtYXJrZXRpbmdJbmZvPzogTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2U7XG4gICAgdXNlc01hcmtldGluZ0luZm9ybWF0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBPcmRlckZvcm1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICB1c2VzT3JkZXJGb3JtPzogYm9vbGVhbjtcbiAgICBvcmRlckZvcm0/OiBPcmRlckZvcm1JbnRlcmZhY2U7XG4gICAgdXNlc0FjdGl2YXRpb25TcGVjaWZpY0VudHJ5VXJsPzogYm9vbGVhbjtcbiAgICBhcHBsaWNhdGlvblVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBTU09JbnRlZ3JhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIGVudHJ5VXJsPzogc3RyaW5nO1xuICAgIHNlc3Npb25Vcmw/OiBzdHJpbmc7XG4gICAgbG9nb3V0VXJsPzogc3RyaW5nO1xuICAgIHVzZXNTc29JbnRlZ3JhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQXBwVHJpYWxDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgdHJpYWxzRW5hYmxlZD86IGJvb2xlYW47XG4gICAgZHVyYXRpb24/OiBudW1iZXI7XG4gICAgZW5kT2ZUcmlhbEFjdGlvbj86IGUuRW5kT2ZUcmlhbEFjdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlVmVuZG9yUmVxdWVzdEludGVyZmFjZSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgcmVwb3J0aW5nQ29kZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVWZW5kb3JSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21hcmtldHBsYWNlX2FwcHNfc2RrL3YxL3NyYy9faW50ZXJuYWwvaW50ZXJmYWNlcy9hcGkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIEludGVyZmFjZXMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCB7IEFkZG9uSW50ZXJmYWNlIH0gZnJvbSAnLi9hZGRvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwVmVuZG9ySW50ZXJmYWNlIH0gZnJvbSAnLi92ZW5kb3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1pdG1lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2NvbW1pdG1lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZlZUludGVyZmFjZSB9IGZyb20gJy4vZmVlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWVsZE1hc2tJbnRlcmZhY2UgfSBmcm9tICcuL2ZpZWxkLW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7IE1hcmtldHBsYWNlQXBwSW50ZXJmYWNlLCBNYXJrZXRpbmdJbmZvcm1hdGlvbkludGVyZmFjZSwgQ29zdEludGVyZmFjZSwgSWRlbnRpZmllZFB1YmxpY0tleUludGVyZmFjZSwgQ29udGFjdEludGVyZmFjZSB9IGZyb20gJy4vYXBwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcmRlckZvcm1JbnRlcmZhY2UgfSBmcm9tICcuL29yZGVyLWZvcm0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2R1Y3RDb3N0SW50ZXJmYWNlIH0gZnJvbSAnLi9wcm9kdWN0LWNvc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3RyaWN0aW9uc0ludGVyZmFjZSwgUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlIH0gZnJvbSAnLi9yZXN0cmljdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2ZUFwcEVkaXRpb25JZGVudGlmaWVySW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBlZGl0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQXBwSURSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBpZD86IHN0cmluZztcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRBcHBJRFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB2ZW5kb3I/OiBBcHBWZW5kb3JJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkb25SZXNwb25zZUludGVyZmFjZSB7XG4gICAgYWRkb24/OiBBZGRvbkludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRvbnNMaXN0UmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGFkZG9ucz86IEFkZG9uSW50ZXJmYWNlW107XG4gICAgbmV4dEN1cnNvcj86IHN0cmluZztcbiAgICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBSZXNwb25zZUludGVyZmFjZSB7XG4gICAgYXBwPzogTWFya2V0cGxhY2VBcHBJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwcm92ZUFkZG9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgYWRkb25JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHByb3ZlQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQWN0aXZhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZHM/OiBzdHJpbmdbXTtcbiAgICBhY3RpdmVBcHBJZHM/OiBzdHJpbmdbXTtcbiAgICBhY3RpdmVBcHBFZGl0aW9uSWRzPzogQWN0aXZlQXBwRWRpdGlvbklkZW50aWZpZXJJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYW5BY3RpdmF0ZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZhbGlkUmVzcG9uc2U/OiBDYW5BY3RpdmF0ZVJlc3BvbnNlSW52YWxpZFJlc3BvbnNlSW50ZXJmYWNlO1xuICAgIHN1Y2Nlc3NSZXNwb25zZT86IENhbkFjdGl2YXRlUmVzcG9uc2VTdWNjZXNzUmVzcG9uc2VJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICB2ZW5kb3I/OiBzdHJpbmc7XG4gICAgdGFnbGluZT86IHN0cmluZztcbiAgICBzZXJ2aWNlTW9kZWw/OiBzdHJpbmdbXTtcbiAgICBsbWlDYXRlZ29yaWVzPzogZS5NYXJrZXRwbGFjZUFwcExtaUxtaUNhdGVnb3JpZXNbXTtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGhlYWRlckltYWdlPzogc3RyaW5nO1xuICAgIHNjcmVlbnNob3Q/OiBzdHJpbmdbXTtcbiAgICBwcmljZT86IG51bWJlcjtcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBiaWxsaW5nRnJlcXVlbmN5Pzogc3RyaW5nO1xuICAgIHJlc3RyaWN0aW9ucz86IFJlc3RyaWN0aW9uc0ludGVyZmFjZTtcbiAgICBhbGxvd1ByaWNlTmVnb3RpYXRpb24/OiBib29sZWFuO1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICByZXNlcnZlSWRVcmw/OiBzdHJpbmc7XG4gICAgcHVyY2hhc2VXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGFjdGl2YXRpb25SZXF1aXJlc0FwcHJvdmFsPzogYm9vbGVhbjtcbiAgICBhZGRvblB1cmNoYXNlV2ViaG9va1VybD86IHN0cmluZztcbiAgICB1c2VyTW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBhY2NvdW50TW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBjb250YWN0V2ViaG9va1VybD86IHN0cmluZztcbiAgICBmdWxmaWxsbWVudEVtYWlsPzogc3RyaW5nW107XG4gICAgZW50cnlVcmw/OiBzdHJpbmc7XG4gICAgc2Vzc2lvblVybD86IHN0cmluZztcbiAgICBsb2dvdXRVcmw/OiBzdHJpbmc7XG4gICAgdXNlc09yZGVyRm9ybT86IGJvb2xlYW47XG4gICAgb3JkZXJGb3JtPzogT3JkZXJGb3JtSW50ZXJmYWNlO1xuICAgIHJlc2VsbGVyTWFya2V0aW5nPzogTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2U7XG4gICAgZW5kVXNlck1hcmtldGluZz86IE1hcmtldGluZ0luZm9ybWF0aW9uSW50ZXJmYWNlO1xuICAgIHByZXZlbnRQcmljZUNvbnZlcnNpb25CZXR3ZWVuQ3VycmVuY2llcz86IGJvb2xlYW47XG4gICAgcGFydG5lclNldHRpbmdzV2ViaG9va1VybD86IHN0cmluZztcbiAgICBzdWdnZXN0ZWRSZXRhaWxQcmljZT86IG51bWJlcjtcbiAgICBjb3VudHJ5PzogUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlO1xuICAgIGNvbW1pdG1lbnQ/OiBDb21taXRtZW50SW50ZXJmYWNlO1xuICAgIHBhcnRuZXJJZD86IHN0cmluZztcbiAgICB2ZW5kb3JJZD86IHN0cmluZztcbiAgICBjdXN0b21BcHBJZD86IHN0cmluZztcbiAgICBtdWx0aXBsZUFjdGl2YXRpb25zPzogYm9vbGVhbjtcbiAgICB1c2VzQWN0aXZhdGlvblNwZWNpZmljRW50cnlVcmw/OiBib29sZWFuO1xuICAgIHVzZXNSZXNlbGxlck1hcmtldGluZz86IGJvb2xlYW47XG4gICAgdXNlc0ludGVncmF0aW9uPzogYm9vbGVhbjtcbiAgICB1c2VzRWRpdGlvbnM/OiBib29sZWFuO1xuICAgIHVzZXNTc29JbnRlZ3JhdGlvbj86IGJvb2xlYW47XG4gICAgZGlzY292ZXJhYmxlPzogYm9vbGVhbjtcbiAgICBkaXN0cmlidXRpb25TZXR0aW5nPzogZS5EaXN0cmlidXRpb25TZXR0aW5nO1xuICAgIG9yZGVyRm9ybVZhbGlkYXRvcldlYmhvb2tVcmw/OiBzdHJpbmc7XG4gICAgYXBwbGljYXRpb25Vcmw/OiBzdHJpbmc7XG4gICAgYWxsb3dXaGl0ZUxhYmVsaW5nPzogYm9vbGVhbjtcbiAgICBzdGF0ZT86IGUuU3RhdGU7XG4gICAgY29zdD86IENvc3RJbnRlcmZhY2U7XG4gICAgc2V0dXBGZWU/OiBudW1iZXI7XG4gICAgdXNlc0N1c3RvbVByaWNpbmc/OiBib29sZWFuO1xuICAgIGN1c3RvbWVyV2ViaG9va1VybD86IHN0cmluZztcbiAgICBzZW5kQ2FuY2VsYXRpb25Ob3RpZmljYXRpb25zPzogYm9vbGVhbjtcbiAgICBjYW5jZWxsYXRpb25XZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGRlbGl2ZXJ5TWV0aG9kPzogZS5EZWxpdmVyeU1ldGhvZDtcbiAgICBzZXJ2aWNlQ2hhbmdlV2ViaG9va1VybD86IHN0cmluZztcbiAgICBhcHBMZXZlbEhhc0FkbWluRGFzaGJvYXJkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVWZW5kb3JSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHBhcnRuZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVWZW5kb3JSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZUFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER1cGxpY2F0ZUFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER1cGxpY2F0ZUFwcFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRBZGRvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIGFkZG9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXBwSURGcm9tU2t1UmVxdWVzdEludGVyZmFjZSB7XG4gICAgc2t1Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcElERnJvbVNrdVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBhZGRvbklkPzogc3RyaW5nO1xuICAgIGVkaXRpb25JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRBcHBSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG4gICAgYnlwYXNzQ2FjaGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHA/OiBNYXJrZXRwbGFjZUFwcEludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRBcHBzVG9EZWFjdGl2YXRlVXBvbkRlYWN0aXZhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkc1RvRGVhY3RpdmF0ZT86IHN0cmluZ1tdO1xuICAgIGFjdGl2ZUFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcHNUb0RlYWN0aXZhdGVVcG9uRGVhY3RpdmF0aW9uUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGFwcElkc1RvQmVEZWFjdGl2YXRlZD86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldEFwcHNXaXRoVW5wdWJsaXNoZWRDaGFuZ2VzUmVxdWVzdEludGVyZmFjZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QXBwc1dpdGhVbnB1Ymxpc2hlZENoYW5nZXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgYXBwSWRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QnlQYXJ0bmVySURSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0QnlQYXJ0bmVySURSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmdbXTtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlBcHBSZXNwb25zZUludGVyZmFjZSB7XG4gICAgYXBwcz86IE1hcmtldHBsYWNlQXBwSW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlPcmRlckZvcm1zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgcGFydG5lcklkPzogc3RyaW5nO1xuICAgIGFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpT3JkZXJGb3Jtc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBvcmRlckZvcm1Db250YWluZXI/OiBHZXRNdWx0aU9yZGVyRm9ybXNSZXNwb25zZU9yZGVyRm9ybUNvbnRhaW5lckludGVyZmFjZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE11bHRpUHJvZHVjdENvc3RSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgYXBwSWRzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlQcm9kdWN0Q29zdFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBwcm9kdWN0Q29zdD86IHtba2V5OiBzdHJpbmddOiBQcm9kdWN0Q29zdEludGVyZmFjZX07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlWZW5kb3JSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBpZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNdWx0aVZlbmRvclJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB2ZW5kb3JzPzogQXBwVmVuZG9ySW50ZXJmYWNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0T3duZWRBcHBJRHNCeVBhcnRuZXJJRFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHBhcnRuZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRPd25lZEFwcElEc0J5UGFydG5lcklEUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFB1YmxpY0tleXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQdWJsaWNLZXlzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICBpZGVudGlmaWVkUHVibGljS2V5cz86IElkZW50aWZpZWRQdWJsaWNLZXlJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRTU09VcmxzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0U1NPVXJsc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBlbnRyeVVybD86IHN0cmluZztcbiAgICBzZXNzaW9uVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbkFjdGl2YXRlUmVzcG9uc2VJbnZhbGlkUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludmFsaWRBcHBJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJc1ZlbmRvckRpc3RyaWJ1dGVkQnlQYXJ0bmVySURSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNWZW5kb3JEaXN0cmlidXRlZEJ5UGFydG5lcklEUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGlzRGlzdHJpYnV0ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBZGRvbnNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEFwcHJvdmVkQWRkb25zUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgY3Vyc29yPzogc3RyaW5nO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIGFwcElkcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcHBzUmVxdWVzdExpc3RBcHBzRmlsdGVySW50ZXJmYWNlIHtcbiAgICBhcHBUeXBlPzogZS5BcHBUeXBlO1xuICAgIHJlbGVhc2VUeXBlPzogZS5SZWxlYXNlVHlwZTtcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgZmlsdGVyVGVybT86IHN0cmluZztcbiAgICBzdGF0ZT86IGUuU3RhdGVGaWx0ZXJPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RBcHBzRm9yVmVuZG9ySURzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdmVuZG9ySWRzPzogc3RyaW5nW107XG4gICAgaW5jbHVkZUFkZG9ucz86IGJvb2xlYW47XG4gICAgY3Vyc29yPzogc3RyaW5nO1xuICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgIGZpZWxkTWFzaz86IEZpZWxkTWFza0ludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0QXBwc0ZvclZlbmRvcklEc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBzPzogTWFya2V0cGxhY2VBcHBJbnRlcmZhY2VbXTtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEFwcHNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgZmllbGRNYXNrPzogRmllbGRNYXNrSW50ZXJmYWNlO1xuICAgIGZpbHRlcj86IExpc3RBcHBzUmVxdWVzdExpc3RBcHBzRmlsdGVySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1aXJlZEFwcFN1bW1hcmllc0ZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIHNlYXJjaFRlcm0/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcXVpcmVkQXBwU3VtbWFyaWVzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdmVuZG9ySWQ/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgY3Vyc29yPzogc3RyaW5nO1xuICAgIGZpbHRlcnM/OiBMaXN0UmVxdWlyZWRBcHBTdW1tYXJpZXNGaWx0ZXJzSW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1aXJlZEFwcFN1bW1hcmllc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICByZXF1aXJlZEFwcFN1bW1hcmllcz86IFJlcXVpcmVkQXBwU3VtbWFyeUludGVyZmFjZVtdO1xuICAgIG5leHRDdXJzb3I/OiBzdHJpbmc7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFZlbmRvclJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGN1cnNvcj86IHN0cmluZztcbiAgICBwYWdlU2l6ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0VmVuZG9yUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHZlbmRvcnM/OiBBcHBWZW5kb3JJbnRlcmZhY2VbXTtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlPcmRlckZvcm1zUmVzcG9uc2VPcmRlckZvcm1Db250YWluZXJJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIG9yZGVyRm9ybT86IE9yZGVyRm9ybUludGVyZmFjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlZEFwcFJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBhcHBzPzogTWFya2V0cGxhY2VBcHBJbnRlcmZhY2VbXTtcbiAgICBjdXJzb3I/OiBzdHJpbmc7XG4gICAgcGFnZVNpemU/OiBudW1iZXI7XG4gICAgaGFzTW9yZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0TXVsdGlQcm9kdWN0Q29zdFJlc3BvbnNlUHJvZHVjdENvc3RFbnRyeUludGVyZmFjZSB7XG4gICAga2V5Pzogc3RyaW5nO1xuICAgIHZhbHVlPzogUHJvZHVjdENvc3RJbnRlcmZhY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVibGlzaEFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW92ZUFwcElEUmVxdWVzdEludGVyZmFjZSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVtb3ZlQXBwSURSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RBcHBSZXZpZXdSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1aXJlZEFwcFN1bW1hcnlJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgaWNvblVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXN0b3JlQXBwUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FuQWN0aXZhdGVSZXNwb25zZVN1Y2Nlc3NSZXNwb25zZUludGVyZmFjZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VzcGVuZEFwcFJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVuYXBwcm92ZUFkZG9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgYWRkb25JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmFwcHJvdmVBcHBSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnN1c3BlbmRBcHBSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBBcHByb3ZhbEFuZEJpbGxpbmdTZXR0aW5nc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIGFwcHJvdmFsUHJvY2Vzcz86IGUuQXBwcm92YWxQcm9jZXNzO1xuICAgIGJpbGxpbmdQcm9jZXNzPzogZS5CaWxsaW5nUHJvY2Vzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBDYXRlZ29yaWVzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgY2F0ZWdvcnlJZHM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBGdWxmaWxsbWVudEludGVncmF0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgdXNlc0Z1bGZpbGxtZW50SW50ZWdyYXRpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUFwcEdlbmVyYWxJbmZvcm1hdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgdmVuZG9yPzogc3RyaW5nO1xuICAgIHRhZ2xpbmU/OiBzdHJpbmc7XG4gICAgc2VydmljZU1vZGVsPzogc3RyaW5nW107XG4gICAgbG1pQ2F0ZWdvcmllcz86IGUuTWFya2V0cGxhY2VBcHBMbWlMbWlDYXRlZ29yaWVzW107XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBoZWFkZXJJbWFnZT86IHN0cmluZztcbiAgICBzY3JlZW5zaG90Pzogc3RyaW5nW107XG4gICAgcHJpY2U/OiBudW1iZXI7XG4gICAgY3VycmVuY3k/OiBzdHJpbmc7XG4gICAgYmlsbGluZ0ZyZXF1ZW5jeT86IHN0cmluZztcbiAgICByZXN0cmljdGlvbnM/OiBSZXN0cmljdGlvbnNJbnRlcmZhY2U7XG4gICAgYWxsb3dQcmljZU5lZ290aWF0aW9uPzogYm9vbGVhbjtcbiAgICBnZHByQ29tcGxpYW50PzogYm9vbGVhbjtcbiAgICBmaWVsZE1hc2s/OiBGaWVsZE1hc2tJbnRlcmZhY2U7XG4gICAgcHJldmVudFByaWNlQ29udmVyc2lvbkJldHdlZW5DdXJyZW5jaWVzPzogYm9vbGVhbjtcbiAgICBzdWdnZXN0ZWRSZXRhaWxQcmljZT86IG51bWJlcjtcbiAgICBjb3VudHJ5PzogUGVybWlzc2lvbkxpc3RzSW50ZXJmYWNlO1xuICAgIGNvbW1pdG1lbnQ/OiBDb21taXRtZW50SW50ZXJmYWNlO1xuICAgIG11bHRpcGxlQWN0aXZhdGlvbnM/OiBib29sZWFuO1xuICAgIHVzZXNFZGl0aW9ucz86IGJvb2xlYW47XG4gICAgZGlzY292ZXJhYmxlPzogYm9vbGVhbjtcbiAgICBlZGl0aW9uSWRzPzogc3RyaW5nW107XG4gICAgc3RhdGU/OiBlLlN0YXRlO1xuICAgIGNvc3Q/OiBDb3N0SW50ZXJmYWNlO1xuICAgIHNldHVwRmVlPzogbnVtYmVyO1xuICAgIHN1Z2dlc3RlZFJldGFpbFNldHVwRmVlPzogbnVtYmVyO1xuICAgIHVzZXNDdXN0b21QcmljaW5nPzogYm9vbGVhbjtcbiAgICBkZWxpdmVyeU1ldGhvZD86IGUuRGVsaXZlcnlNZXRob2Q7XG4gICAgY2F0ZWdvcmllcz86IHN0cmluZ1tdO1xuICAgIGZlZXM/OiBGZWVJbnRlcmZhY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBJbnRlZ3JhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIHB1YmxpY0tleT86IHN0cmluZztcbiAgICByZXNlcnZlSWRVcmw/OiBzdHJpbmc7XG4gICAgcHVyY2hhc2VXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGFjdGl2YXRpb25SZXF1aXJlc0FwcHJvdmFsPzogYm9vbGVhbjtcbiAgICBhZGRvblB1cmNoYXNlV2ViaG9va1VybD86IHN0cmluZztcbiAgICB1c2VyTW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBhY2NvdW50TW9kV2ViaG9va1VybD86IHN0cmluZztcbiAgICBjb250YWN0V2ViaG9va1VybD86IHN0cmluZztcbiAgICBmdWxmaWxsbWVudEVtYWlsPzogc3RyaW5nW107XG4gICAgcGFydG5lclNldHRpbmdzV2ViaG9va1VybD86IHN0cmluZztcbiAgICBwYXJ0bmVyQ29udGFjdFJlY2lwaWVudHM/OiBDb250YWN0SW50ZXJmYWNlW107XG4gICAgdXNlc0ludGVncmF0aW9uPzogYm9vbGVhbjtcbiAgICBvcmRlckZvcm1WYWxpZGF0b3JXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIGFsbG93V2hpdGVMYWJlbGluZz86IGJvb2xlYW47XG4gICAgY3VzdG9tZXJXZWJob29rVXJsPzogc3RyaW5nO1xuICAgIHNlbmRDYW5jZWxhdGlvbk5vdGlmaWNhdGlvbnM/OiBib29sZWFuO1xuICAgIGNhbmNlbGxhdGlvbldlYmhvb2tVcmw/OiBzdHJpbmc7XG4gICAgc2VydmljZUNoYW5nZVdlYmhvb2tVcmw/OiBzdHJpbmc7XG4gICAgYXBwTGV2ZWxIYXNBZG1pbkRhc2hib2FyZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQXBwTWFya2V0aW5nSW5mb3JtYXRpb25SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICBtYXJrZXRpbmdJbmZvPzogTWFya2V0aW5nSW5mb3JtYXRpb25JbnRlcmZhY2U7XG4gICAgdXNlc01hcmtldGluZ0luZm9ybWF0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBPcmRlckZvcm1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBhcHBJZD86IHN0cmluZztcbiAgICB1c2VzT3JkZXJGb3JtPzogYm9vbGVhbjtcbiAgICBvcmRlckZvcm0/OiBPcmRlckZvcm1JbnRlcmZhY2U7XG4gICAgdXNlc0FjdGl2YXRpb25TcGVjaWZpY0VudHJ5VXJsPzogYm9vbGVhbjtcbiAgICBhcHBsaWNhdGlvblVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVBcHBTU09JbnRlZ3JhdGlvblJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGFwcElkPzogc3RyaW5nO1xuICAgIGVudHJ5VXJsPzogc3RyaW5nO1xuICAgIHNlc3Npb25Vcmw/OiBzdHJpbmc7XG4gICAgbG9nb3V0VXJsPzogc3RyaW5nO1xuICAgIHVzZXNTc29JbnRlZ3JhdGlvbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQXBwVHJpYWxDb25maWd1cmF0aW9uUmVxdWVzdEludGVyZmFjZSB7XG4gICAgYXBwSWQ/OiBzdHJpbmc7XG4gICAgdHJpYWxzRW5hYmxlZD86IGJvb2xlYW47XG4gICAgZHVyYXRpb24/OiBudW1iZXI7XG4gICAgZW5kT2ZUcmlhbEFjdGlvbj86IGUuRW5kT2ZUcmlhbEFjdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlVmVuZG9yUmVxdWVzdEludGVyZmFjZSB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBwYXJ0bmVySWQ/OiBzdHJpbmc7XG4gICAgcmVwb3J0aW5nQ29kZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVWZW5kb3JSZXNwb25zZUludGVyZmFjZSB7XG4gICAgdmVuZG9yPzogQXBwVmVuZG9ySW50ZXJmYWNlO1xufVxuXG4iXX0=
|