@sunbird-cb/cbp-ai 0.1.52 → 0.1.54
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/esm2022/lib/components/approval-request-form/approval-request-form.component.mjs +2 -2
- package/esm2022/lib/components/designation-approval-request-form/designation-approval-request-form.component.mjs +2 -2
- package/esm2022/lib/components/update-designation-hierarchy/update-designation-hierarchy.component.mjs +2 -2
- package/esm2022/lib/modules/shared/services/shared.service.mjs +2 -2
- package/fesm2022/sunbird-cb-cbp-ai.mjs +4 -4
- package/fesm2022/sunbird-cb-cbp-ai.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -195,7 +195,7 @@ export class ApprovalRequestFormComponent {
|
|
|
195
195
|
}
|
|
196
196
|
};
|
|
197
197
|
if (searchText?.length) {
|
|
198
|
-
requestBody['
|
|
198
|
+
requestBody['request']["query"] = searchText;
|
|
199
199
|
// when searching, start from first page
|
|
200
200
|
requestBody.pageNumber = 0;
|
|
201
201
|
// allow larger page for search if needed
|
|
@@ -403,4 +403,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
403
403
|
type: ViewChild,
|
|
404
404
|
args: ['mdo', { read: ElementRef }]
|
|
405
405
|
}] } });
|
|
406
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jYnAtYWkvc3JjL2xpYi9jb21wb25lbnRzL2FwcHJvdmFsLXJlcXVlc3QtZm9ybS9hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwtcmVxdWVzdC1mb3JtL2FwcHJvdmFsLXJlcXVlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBcUMsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFjLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFBOzs7Ozs7Ozs7Ozs7OztBQVN0QixNQUFNLE9BQU8sNEJBQTRCO0lBa0J2QyxZQUFtQixTQUFxRCxFQUN0QyxJQUFTLEVBQ2pDLEVBQWUsRUFDZixLQUF3QixFQUN4QixhQUE0QixFQUM1QixRQUFxQixFQUN4QixNQUFjO1FBTkYsY0FBUyxHQUFULFNBQVMsQ0FBNEM7UUFDdEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckJyQixZQUFPLEdBQUcsS0FBSyxDQUFBO1FBRWYsb0JBQWUsR0FBRyxLQUFLLENBQUE7UUFDdkIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBRyxDQUFDLENBQUE7UUFDYixpQkFBWSxHQUFHLENBQUMsQ0FBQTtRQUNoQiwwQkFBcUIsR0FBRyxDQUFDLENBQUE7UUFDekIscUJBQWdCLEdBQUcsRUFBRSxDQUFBO1FBQ3JCLHdCQUFtQixHQUFHLEVBQUUsQ0FBQTtRQUN4QixxQkFBZ0IsR0FBRyxLQUFLLENBQUE7UUFDeEIsa0JBQWEsR0FBRyxFQUFFLENBQUE7UUFDbEIsc0JBQWlCLEdBQUcsS0FBSyxDQUFBO1FBQ3pCLDJCQUFzQixHQUFHLEtBQUssQ0FBQTtRQUM5QixlQUFVLEdBQVEsRUFBRSxDQUFBO1FBQ3BCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQTtRQVFqQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFBO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDaEIsU0FBUyxFQUFFLEVBQUU7WUFDYixXQUFXLEVBQUUsRUFBRSxFQUFFLDBCQUEwQjtTQUM1QyxDQUFDO0lBRUosQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUU1RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWhFLElBQUksYUFBYSxFQUFFO1lBQ2pCLGFBQWEsQ0FBQyxZQUFZO2lCQUN2QixJQUFJLENBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixTQUFTLENBQUMsRUFBRSxDQUFDLENBQ2Q7aUJBQ0EsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNmLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBRTFDLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRTtvQkFDZixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztvQkFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXO3dCQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDcEQsQ0FBQztvQkFFSix3Q0FBd0M7b0JBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBRW5GO3FCQUFNO29CQUNMLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO29CQUU3Qiw4QkFBOEI7b0JBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ25GLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7b0JBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO2lCQUNwQjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047UUFHRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQTtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1NBQ2xCO0lBRUgsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3BELE9BQU07U0FDUDtRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDbkMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNuQixVQUFVLENBQUMsUUFBUTtvQkFDbkIsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7b0JBQ3pCLFVBQVUsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7aUJBQzlDLENBQUM7WUFDQSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFFeEUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xELFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsT0FBTztTQUNSO1FBQ0QsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUM7UUFFNUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNqRixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixNQUFNLE9BQU8sR0FBRztZQUNkLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVTtZQUN2RSwwRUFBMEU7WUFDMUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuRSxZQUFZLEVBQUMsV0FBVztTQUN6QixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsU0FBUyxLQUFLLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUU7WUFDN0gsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQztZQUMzRSxtRkFBbUY7U0FDbkY7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLFFBQVEsRUFBRSxTQUFTLEtBQUssVUFBVSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRTtZQUNoSSxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1lBQzNFLG1GQUFtRjtTQUNuRjtRQUVELDhDQUE4QztRQUM5QyxNQUFNLEdBQUcsR0FBRztZQUNWLEdBQUcsT0FBTztZQUNWLE1BQU0sRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQzthQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7b0JBQ3RFLFFBQVEsRUFBRSxJQUFJO29CQUNkLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUNqQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtnQkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSx3QkFBd0IsQ0FBQyxFQUFFLEdBQUcsRUFBRTtvQkFDMUUsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQy9CLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDeEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFtQixFQUFFLE1BQWU7UUFFekMsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDM0MsT0FBTztTQUNSO1FBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFPLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ3hFLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtRQUN2QyxNQUFNLFNBQVMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLG9FQUFvRTtRQUNwRSxJQUFJLFNBQVMsS0FBSyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtZQUM3QixRQUFRLEdBQUcsRUFBRSxDQUFBO1NBQ2Q7UUFDRCw2QkFBNkI7UUFDN0IseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2QixPQUFPO1FBQ1AseUJBQXlCO1FBQ3pCLDJCQUEyQjtRQUMzQix3QkFBd0I7UUFDeEIsSUFBSTtRQUVKLE1BQU0sV0FBVyxHQUFRO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVCxTQUFTLEVBQUU7b0JBQ1QscUJBQXFCLEVBQUU7d0JBQ3JCLFlBQVk7d0JBQ1osV0FBVztxQkFDWjtvQkFDRCxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2lCQUN0SztnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsV0FBVztvQkFDWCxVQUFVO29CQUNWLElBQUk7b0JBQ0osV0FBVztvQkFDWCxlQUFlO29CQUNmLE9BQU87aUJBQ1I7Z0JBQ0QsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1NBQ0YsQ0FBQTtRQUNELElBQUksVUFBVSxFQUFFLE1BQU0sRUFBRTtZQUN0QixXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsVUFBVSxDQUFBO1lBQ3hDLHdDQUF3QztZQUN4QyxXQUFXLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQTtZQUMxQix5Q0FBeUM7WUFDekMsV0FBVyxDQUFDLFFBQVEsR0FBRyxTQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQTtZQUNuRSw2Q0FBNkM7WUFDN0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQTtTQUM5QjtRQUVELHlFQUF5RTtRQUN6RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FBQzthQUNBLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7Z0JBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUNqQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUN6QyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUU7b0JBQ1osSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLFVBQVUsSUFBSSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtvQkFDcEQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksUUFBUTtvQkFDaEMsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTO29CQUMxQixlQUFlLEVBQUUsSUFBSSxFQUFFLGVBQWU7aUJBRXZDLENBQUMsQ0FBQyxDQUFBO2dCQUVILHlFQUF5RTtnQkFDekUsOEZBQThGO2dCQUM5RixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQzlFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUE7Z0JBRWxDLDJFQUEyRTtnQkFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRTtvQkFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUE7aUJBQ3RDO3FCQUFNO29CQUNMLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7b0JBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO2lCQUMvRjtnQkFFRCx3RkFBd0Y7Z0JBQ3hGLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7aUJBQzdCO2dCQUVELDhEQUE4RDtnQkFDOUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7b0JBQzNHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7aUJBQzdCO2dCQUVELDBEQUEwRDtnQkFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtnQkFDN0YscUNBQXFDO2dCQUNyQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtZQUMvQixDQUFDO1lBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVix1RUFBdUU7Z0JBQ3ZFLHFDQUFxQztnQkFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQTtnQkFDNUIsZ0ZBQWdGO1lBQ2xGLENBQUM7U0FDRixDQUFDLENBQUE7SUFDTixDQUFDO0lBQ0gsc0JBQXNCO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBRXBFLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUc7WUFBRSxPQUFPO1FBRWxELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FDckMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUN4RSxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE1BQU0sTUFBTSxHQUFHO2dCQUNiLElBQUksRUFBRSxXQUFXO2dCQUNqQixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsRUFBRSxFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO2FBQzNCLENBQUM7WUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFDQyxtQkFBbUI7UUFDakIsZ0RBQWdEO1FBQ2hELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFFLENBQUMsS0FBSyxDQUFBO1FBQ2xFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO2FBQ3hEO1lBQ0Qsd0NBQXdDO1lBQ3hDLElBQUksVUFBVSxFQUFFO2dCQUNkLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzVELElBQUksVUFBVSxFQUFFO29CQUNkLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUE7aUJBQ2hDO2FBQ0Y7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDVCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVE7UUFDaEIsTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUE7UUFDckMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDaEQsSUFBSSxJQUFJLENBQUMsaUJBQWlCO1lBQUUsT0FBTTtRQUVsQyxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQTtRQUN4QixJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQTtZQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO1lBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQ3BCO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFO1lBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7WUFDbkYsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUE7WUFDNUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUE7U0FDOUI7SUFDSCxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsTUFBZTtRQUNqQyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUE7Z0JBRWxDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO2dCQUM1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFBO2dCQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtnQkFFbEIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTtnQkFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7Z0JBRXpCLHdCQUF3QjtnQkFDeEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUM3QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtpQkFDeEQ7Z0JBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBcUIsQ0FBQTtvQkFDL0UsSUFBSSxXQUFXLEVBQUU7d0JBQ2YsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFBO3FCQUNwQjtnQkFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0JBRVAsZ0NBQWdDO2dCQUNoQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0NBQWdDLENBQXVCLENBQUE7b0JBQzVGLElBQUksS0FBSyxFQUFFO3dCQUNULCtCQUErQjt3QkFDL0IsSUFBSTs0QkFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBNEIsQ0FBQTs0QkFDekUsSUFBSSxTQUFTLEVBQUU7Z0NBQ2IsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUE7Z0NBQzlDLCtEQUErRDtnQ0FDL0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFBO2dDQUNqRCwyREFBMkQ7Z0NBQzNELHVEQUF1RDtnQ0FDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtnQ0FDN0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUE7NkJBQ2xEO3lCQUNGO3dCQUFDLE9BQU8sQ0FBQyxFQUFFOzRCQUNWLCtDQUErQzt5QkFDaEQ7d0JBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDdkQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtxQkFDbkU7Z0JBQ0gsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO2FBQ1I7U0FDRjthQUFNO1lBQ0wsbUVBQW1FO1lBQ25FLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUE7U0FDcEM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsTUFBTSxDQUFBO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLG9FQUFvRTtZQUNwRSxJQUFJLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLFlBQVksSUFBSSxPQUFPLEVBQUUsWUFBWSxHQUFHLENBQUMsRUFBRTtnQkFDMUUsZ0ZBQWdGO2dCQUNoRixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO29CQUMzQixtRkFBbUY7b0JBQ25GLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRTt3QkFDckUsMkNBQTJDO3dCQUMzQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO3dCQUM3QixJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFBO3dCQUNqRCwyQ0FBMkM7d0JBQzNDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTs0QkFDakYsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUE7NEJBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUE7d0JBQ2hDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQSxDQUFDLGtFQUFrRTtxQkFDM0U7eUJBQU07d0JBQ0wscUVBQXFFO3dCQUNyRSxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQTt3QkFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRTs0QkFDckcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTs0QkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFBOzRCQUNqRSx3REFBd0Q7NEJBQ3hELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUE7NEJBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTt5QkFDdkM7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQWdCLENBQUM7SUFDbEUsQ0FBQzsrR0ExYVUsNEJBQTRCLDhDQW1CN0IsZUFBZTttR0FuQmQsNEJBQTRCLDJJQUliLFVBQVUsNkJDbEJ0Qyw2a05BNEhNOzs0RkQ5R08sNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjs7MEJBdUJsQyxNQUFNOzJCQUFDLGVBQWU7aUxBZmUsTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUFycmF5LCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbmFsaXplLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3NoYXJlZC9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFwcHJvdmFsLXJlcXVlc3QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbFJlcXVlc3RGb3JtQ29tcG9uZW50IHtcbiAgYXBwcm92YWxSZXF1ZXN0Rm9ybTogRm9ybUdyb3VwO1xuICBjYnBQbGFuRmluYWxPYmo6IGFueVxuICBsb2FkaW5nID0gZmFsc2VcbiAgQFZpZXdDaGlsZCgnbWRvJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1kb1JlZj86IEVsZW1lbnRSZWZcbiAgbWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgaXNMb2FkaW5nTW9yZW1kb3MgPSBmYWxzZTtcbiAgbWRvT2Zmc2V0ID0gMFxuICBvZGNzbWRvQ291bnQgPSAwXG4gIGRlZmF1bHRTZWFyY2htZG9Db3VudCA9IDBcbiAgbWRvTGlzdExvYWRDb3VudCA9IDUwXG4gIG1kb0RlZmF1bHRMb2FkQ291bnQgPSA1MFxuICBub01vcmVMZWdhY3ltZG9zID0gZmFsc2VcbiAgbWRvU2VhcmNoVGV4dCA9ICcnXG4gIG1kb0luaXRJblByb2dyZXNzID0gZmFsc2VcbiAgc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlXG4gIG1hc3RlckRhdGE6IGFueSA9IHt9XG4gIHJvbGVfbWFwcGluZ19pZHMgPSBbXVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXBwcm92YWxSZXF1ZXN0Rm9ybUNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICAgIHRoaXMucm9sZV9tYXBwaW5nX2lkcyA9IGRhdGFcbiAgICB0aGlzLm1hc3RlckRhdGEgPSB7XG4gICAgICBtZG9CYWNrdXA6IFtdLFxuICAgICAgbWRvRmlsdGVyZWQ6IFtdLCAvLyBmaWx0ZXJlZCBzZWFyY2ggcmVzdWx0c1xuICAgIH07XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgICBjb25zb2xlLmxvZygndGhpcy5yb2xlX21hcHBpbmdfaWRzLS0nLHRoaXMucm9sZV9tYXBwaW5nX2lkcylcblxuICAgIGNvbnN0IHNlYXJjaENvbnRyb2wgPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdzZWFyY2htZG8nKTtcblxuICAgIGlmIChzZWFyY2hDb250cm9sKSB7XG4gICAgICBzZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHN0YXJ0V2l0aCgnJylcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgY29uc3QgdHh0ID0gcmVzPy50b1N0cmluZygpPy50cmltKCkgPz8gJyc7XG5cbiAgICAgICAgICBpZiAodHh0Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG9GaWx0ZXJlZCA9XG4gICAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG9CYWNrdXAuZmlsdGVyKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModHh0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIHNob3cgaW5pdGlhbCBwYWdlIG9mIGZpbHRlcmVkIHJlc3VsdHNcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG8gPSB0aGlzLm1hc3RlckRhdGEubWRvRmlsdGVyZWQuc2xpY2UoMCwgdGhpcy5tZG9MaXN0TG9hZENvdW50KTtcblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1kb0ZpbHRlckVuYWJsZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBzaG93IGZpcnN0IHBhZ2UgZnJvbSBiYWNrdXBcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG8gPSB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwLnNsaWNlKDAsIHRoaXMubWRvRGVmYXVsdExvYWRDb3VudCk7XG4gICAgICAgICAgICB0aGlzLm1kb0xpc3RMb2FkQ291bnQgPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnQ7XG4gICAgICAgICAgICB0aGlzLm1kb09mZnNldCA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGNvbnNvbGUubG9nKHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10pXG4gICAgaWYgKCF0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddLmxlbmd0aCkge1xuICAgICAgdGhpcy5nZXRtZG9TYWZlKClcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgZ2V0bWRvU2FmZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tZG9Jbml0SW5Qcm9ncmVzcyB8fCB0aGlzLmlzTG9hZGluZ01vcmVtZG9zKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5tZG9Jbml0SW5Qcm9ncmVzcyA9IHRydWVcbiAgICB0aGlzLmdldG1kbygpXG4gIH1cblxuICBpbml0aWFsaXplRm9ybSgpIHtcbiAgICB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG1kb19uYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcmVxdWVzdF9uYW1lOiBbJycsIFtcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApLFxuICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hXFxzKiQpW0EtWmEtejAtOSBdKyQvKVxuICAgIF1dLFxuICAgICAgc2VhcmNobWRvOiBbJyddLFxuICAgIH0pO1xuICB9XG5cblxuXG4gIGNhbmNlbEZvcm0oKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKVxuICB9XG5cbiAgc2F2ZW1kbygpIHtcbiAgICBjb25zdCByZXF1ZXN0TmFtZSA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS52YWx1ZS5yZXF1ZXN0X25hbWU/LnRyaW0oKTtcblxuICAgIGlmICghcmVxdWVzdE5hbWUpIHtcbiAgICAgIHRoaXMuc25hY2tCYXIub3BlbignUmVxdWVzdCBuYW1lIGlzIHJlcXVpcmVkJywgJ1gnLCB7XG4gICAgICAgIGR1cmF0aW9uOiAzMDAwXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRtZG86IHN0cmluZyA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ21kb19uYW1lJyk/LnZhbHVlO1xuXG4gICAgaWYgKCFzZWxlY3RlZG1kbykge1xuICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdQbGVhc2Ugc2VsZWN0IGFuIG1kbyBsZWFkZXIvYWRtaW4nLCAnWCcsIHsgZHVyYXRpb246IDMwMDAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIGNvbnN0IGJhc2VPYmogPSB7XG4gICAgICBzdGF0ZV9jZW50ZXJfaWQ6IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmoubWluaXN0cnkuaWRlbnRpZmllcixcbiAgICAgIC8vIHN0YXRlX2NlbnRlcl9uYW1lOiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLm1pbmlzdHJ5Lm9yZ05hbWUsXG4gICAgICByb2xlX21hcHBpbmdfaWRzOiB0aGlzLnJvbGVfbWFwcGluZ19pZHMubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQpLFxuICAgICAgcmVxdWVzdF9uYW1lOnJlcXVlc3ROYW1lLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iaj8ubWluaXN0cnk/LnNiT3JnVHlwZSA9PT0gJ3N0YXRlJyAmJiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZSkge1xuICAgICAgYmFzZU9ialsnZGVwYXJ0bWVudF9pZCddID0gdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cztcbiAgICAgLy8gYmFzZU9ialsnZGVwYXJ0bWVudF9uYW1lJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iaj8ubWluaXN0cnk/LnNiT3JnVHlwZSA9PT0gJ21pbmlzdHJ5JyAmJiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZSkge1xuICAgICAgYmFzZU9ialsnZGVwYXJ0bWVudF9pZCddID0gdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cztcbiAgICAgLy8gYmFzZU9ialsnZGVwYXJ0bWVudF9uYW1lJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYW4gYXJyYXkgb2Ygb2JzZXJ2YWJsZXMsIG9uZSBwZXIgbWRvXG4gICAgY29uc3QgcmVxID0ge1xuICAgICAgLi4uYmFzZU9iaixcbiAgICAgIG1kb19pZDogc2VsZWN0ZWRtZG9cbiAgICB9O1xuXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNhdmVBcHByb3ZhbFJlcXVlc3QocmVxKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1JlcXVlc3Qgc3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZCBmb3IgYXBwcm92YWwuJywgJ1gnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItc3VjY2VzcyddXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ3NhdmVkJyk7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYWkvYXBwcm92ZS1yZXF1ZXN0cyddKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcicsIGVycm9yKVxuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbigoZXJyb3I/LmVycm9yPy5kZXRhaWwgfHwgJ0ZhaWxlZCB0byBzZW5kIHJlcXVlc3QnKSwgJ1gnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItZXJyb3InXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKClcbiAgfVxuXG4gIGdldG1kbyhzZWFyY2hUZXh0Pzogc3RyaW5nLCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkIHtcblxuICAgIC8vIGNsZWFyIGFueSBwcmV2aW91cyBkZWJ1ZyBob29rc1xuICAgIGlmICghc2VhcmNoVGV4dCB8fCBzZWFyY2hUZXh0Py5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIG5vb3BcbiAgICB9XG5cbiAgICBjb25zdCByZXFPZmZzZXQgPSAodHlwZW9mIG9mZnNldCA9PT0gJ251bWJlcicpID8gb2Zmc2V0IDogdGhpcy5tZG9PZmZzZXRcbiAgICBsZXQgcmVxTGltaXQgPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnRcbiAgICBjb25zdCBwYWdlSW5kZXggPSByZXFMaW1pdCA+IDAgPyBNYXRoLmZsb29yKHJlcU9mZnNldCAvIHJlcUxpbWl0KSA6IDBcbiAgICAvLyBpZiB3ZSdyZSByZXF1ZXN0aW5nIGZyb20gZmlyc3QgcGFnZSwgY2xlYXIgdGhlIG5vLW1vcmUtZGF0YSBndWFyZFxuICAgIGlmIChwYWdlSW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IGZhbHNlXG4gICAgICByZXFMaW1pdCA9IDUwXG4gICAgfVxuICAgIC8vIGNvbnN0IHJlcXVlc3RCb2R5OiBhbnkgPSB7XG4gICAgLy8gICBmaWx0ZXJDcml0ZXJpYU1hcDoge1xuICAgIC8vICAgICBzdGF0dXM6ICdBY3RpdmUnXG4gICAgLy8gICB9LFxuICAgIC8vICAgcmVxdWVzdGVkRmllbGRzOiBbXSxcbiAgICAvLyAgIHBhZ2VOdW1iZXI6IHBhZ2VJbmRleCxcbiAgICAvLyAgIHBhZ2VTaXplOiByZXFMaW1pdCxcbiAgICAvLyB9XG5cbiAgICBjb25zdCByZXF1ZXN0Qm9keTogYW55ID0ge1xuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICBcIm9yZ2FuaXNhdGlvbnMucm9sZXNcIjogW1xuICAgICAgICAgICAgXCJNRE9fTEVBREVSXCIsXG4gICAgICAgICAgICBcIk1ET19BRE1JTlwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcInJvb3RPcmdJZFwiOiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzID8gdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cyA6IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmoubWluaXN0cnkuaWRlbnRpZmllciBcbiAgICAgICAgfSxcbiAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgIFwiZmlyc3ROYW1lXCIsXG4gICAgICAgICAgXCJsYXN0TmFtZVwiLFxuICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICBcInJvb3RPcmdJZFwiLFxuICAgICAgICAgIFwib3JnYW5pc2F0aW9uc1wiLFxuICAgICAgICAgIFwicm9sZXNcIlxuICAgICAgICBdLFxuICAgICAgICBwYWdlTnVtYmVyOiBwYWdlSW5kZXgsXG4gICAgICAgIHBhZ2VTaXplOiByZXFMaW1pdCxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNlYXJjaFRleHQ/Lmxlbmd0aCkge1xuICAgICAgcmVxdWVzdEJvZHlbJ3NlYXJjaFN0cmluZyddID0gc2VhcmNoVGV4dFxuICAgICAgLy8gd2hlbiBzZWFyY2hpbmcsIHN0YXJ0IGZyb20gZmlyc3QgcGFnZVxuICAgICAgcmVxdWVzdEJvZHkucGFnZU51bWJlciA9IDBcbiAgICAgIC8vIGFsbG93IGxhcmdlciBwYWdlIGZvciBzZWFyY2ggaWYgbmVlZGVkXG4gICAgICByZXF1ZXN0Qm9keS5wYWdlU2l6ZSA9IHBhZ2VJbmRleCA9PT0gMCA/IDUwIDogdGhpcy5tZG9MaXN0TG9hZENvdW50XG4gICAgICAvLyByZXNldCBndWFyZCB3aGVuIHBlcmZvcm1pbmcgYSBmcmVzaCBzZWFyY2hcbiAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IGZhbHNlXG4gICAgfVxuXG4gICAgLy8gaW5kaWNhdGUgbG9hZGluZyBzdGF0ZSBzbyBzY3JvbGwgaGFuZGxlcnMgZG9uJ3QgdHJpZ2dlciBwYXJhbGxlbCBjYWxsc1xuICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgY29uc29sZS5sb2coJ3JlcXVlc3RCb2R5JywgcmVxdWVzdEJvZHkpXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNlYXJjaFB1YmxpY21kbyhyZXF1ZXN0Qm9keSkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gZmFsc2VcbiAgICAgIHRoaXMubWRvSW5pdEluUHJvZ3Jlc3MgPSBmYWxzZVxuICAgIH0pKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBfLmdldChyZXMsICdhZG1pbnMnLCBbXSlcbiAgICAgICAgICBjb25zb2xlLmxvZygnY29udGVudC0tJywgY29udGVudClcbiAgICAgICAgICBjb25zdCBtYXBwZWQgPSBjb250ZW50Lm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgaWQ6IGl0ZW0/LmlkLFxuICAgICAgICAgICAgbmFtZTogYCR7aXRlbT8uZmlyc3RfbmFtZX0gJHtpdGVtPy5sYXN0X25hbWV9YCB8fCAnJyxcbiAgICAgICAgICAgIHN0YXR1czogaXRlbT8uc3RhdHVzIHx8ICdBY3RpdmUnLFxuICAgICAgICAgICAgcm9sZV90eXBlOiBpdGVtPy5yb2xlX3R5cGUsXG4gICAgICAgICAgICBkZXBhcnRtZW50X25hbWU6IGl0ZW0/LmRlcGFydG1lbnRfbmFtZVxuXG4gICAgICAgICAgfSkpXG5cbiAgICAgICAgICAvLyB0b3RhbCBjb3VudCBtYXkgYmUgcHJlc2VudCBpbiBkaWZmZXJlbnQga2V5cyBkZXBlbmRpbmcgb24gQVBJIHZlcnNpb24uXG4gICAgICAgICAgLy8gUHJlZmVyICdyZXN1bHQucmVzdWx0LnRvdGFsY291bnQnIChsZWdhY3kgbG93ZXItY2FzZSkgdGhlbiBkYXRhLnRvdGFsQ291bnQsIHRoZW4gdG90YWxDb3VudFxuICAgICAgICAgIGNvbnN0IHRvdGFsID0gXy5nZXQocmVzLCAnY291bnQnLCBfLmdldChyZXMsICdjb3VudCcsIF8uZ2V0KHJlcywgJ2NvdW50JywgMCkpKVxuICAgICAgICAgIHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50ID0gdG90YWxcblxuICAgICAgICAgIC8vIElmIG9mZnNldCBpcyB6ZXJvIChmaXJzdCBwYWdlKSByZXBsYWNlIGJhY2t1cCwgb3RoZXJ3aXNlIGFwcGVuZCArIGRlZHVwZVxuICAgICAgICAgIGlmICghdGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCByZXFPZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gPSBtYXBwZWRcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29tYmluZWQgPSAodGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCBbXSkuY29uY2F0KG1hcHBlZClcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gPSBfLnVuaXFCeShjb21iaW5lZCwgKGl0OiBhbnkpID0+IChpdD8ubmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZiBzZXJ2ZXIgcmV0dXJuZWQgbm8gbmV3IGl0ZW1zLCBtYXJrIGFzIG5vLW1vcmUtZGF0YSB0byBzdG9wIGZ1cnRoZXIgc2Nyb2xsIHJlcXVlc3RzXG4gICAgICAgICAgaWYgKCFtYXBwZWQgfHwgbWFwcGVkPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZiB3ZSd2ZSBsb2FkZWQgYXQgbGVhc3QgdGhlIHRvdGFsIGNvdW50LCBtYXJrIG5vLW1vcmUtZGF0YVxuICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRTZWFyY2htZG9Db3VudCAmJiAodGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCBbXSkubGVuZ3RoID49IHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50KSB7XG4gICAgICAgICAgICB0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRW5zdXJlIHZpc2libGUgbGlzdCBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgZGlzcGxheSBjb3VudFxuICAgICAgICAgIHRoaXMubWFzdGVyRGF0YVsnbWRvJ10gPSAodGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCBbXSkuc2xpY2UoMCwgdGhpcy5tZG9MaXN0TG9hZENvdW50KVxuICAgICAgICAgIC8vIGxvYWRpbmcgZmxhZyBjbGVhcmVkIGluIGZpbmFsaXplKClcbiAgICAgICAgICB0aGlzLmNoZWNrQ3VycmVudG1kb1ByZXNlbnQoKVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIC8vIFN0b3AgZnVydGhlciBhdXRvbWF0aWMgY2FsbHMgb24gcmVwZWF0ZWQgZXJyb3JzIHRvIGF2b2lkIHRpZ2h0IGxvb3BzXG4gICAgICAgICAgLy8gbG9hZGluZyBmbGFnIGNsZWFyZWQgaW4gZmluYWxpemUoKVxuICAgICAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IHRydWVcbiAgICAgICAgICAvLyB0aGlzLm1hdFNuYWNrQmFyLm9wZW4oJ1VuYWJsZSB0byBmZXRjaCBtZG8gZGV0YWlscywgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlciEnKVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5jaGVja0N1cnJlbnRtZG9QcmVzZW50KCkge1xuICBjb25zdCBzZWxlY3RlZG1kbyA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ21kb19uYW1lJyk/LnZhbHVlO1xuXG4gIGlmICghc2VsZWN0ZWRtZG8gfHwgIXRoaXMubWFzdGVyRGF0YT8ubWRvKSByZXR1cm47XG5cbiAgY29uc3QgZXhpc3RzID0gdGhpcy5tYXN0ZXJEYXRhLm1kby5zb21lKFxuICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHNlbGVjdGVkbWRvPy50b0xvd2VyQ2FzZSgpXG4gICk7XG5cbiAgaWYgKCFleGlzdHMpIHtcbiAgICBjb25zdCBuZXdtZG8gPSB7XG4gICAgICBuYW1lOiBzZWxlY3RlZG1kbyxcbiAgICAgIHN0YXR1czogJ0FjdGl2ZScsXG4gICAgICBpZDogJ2N1c3RvbS0nICsgRGF0ZS5ub3coKVxuICAgIH07XG5cbiAgICB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwID0gdGhpcy5tYXN0ZXJEYXRhLm1kb0JhY2t1cCB8fCBbXTtcbiAgICB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwLnVuc2hpZnQobmV3bWRvKTtcbiAgICB0aGlzLm1hc3RlckRhdGEubWRvLnVuc2hpZnQobmV3bWRvKTtcbiAgfVxufVxuICBvbm1kb0Ryb3Bkb3duQ2xvc2VkKCk6IHZvaWQge1xuICAgIC8vIEtlZXAgdGhlIG1kbyB2YWx1ZSBidXQgY2xlYXIgdGhlIHNlYXJjaCBpbnB1dFxuICAgIGNvbnN0IGN1cnJlbnRtZG8gPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdtZG9fbmFtZScpIS52YWx1ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpKSB7XG4gICAgICAgIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpIS5zZXRWYWx1ZSgnJylcbiAgICAgIH1cbiAgICAgIC8vIEVuc3VyZSB0aGUgbWRvIHZhbHVlIHJlbWFpbnMgc2VsZWN0ZWRcbiAgICAgIGlmIChjdXJyZW50bWRvKSB7XG4gICAgICAgIGNvbnN0IG1kb0NvbnRyb2wgPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdtZG9fbmFtZScpO1xuICAgICAgICBpZiAobWRvQ29udHJvbCkge1xuICAgICAgICAgIG1kb0NvbnRyb2wuc2V0VmFsdWUoY3VycmVudG1kbylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIDEwMClcbiAgfVxuXG4gIG1kb1NlYXJjaChldnQ6IGFueSkge1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSBldnQ/LnRhcmdldD8udmFsdWVcbiAgICBjb25zdCB0eHQgPSAoc2VhcmNoVGV4dCB8fCAnJykudG9TdHJpbmcoKS50cmltKClcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdNb3JlbWRvcykgcmV0dXJuXG5cbiAgICB0aGlzLm1kb1NlYXJjaFRleHQgPSB0eHRcbiAgICBpZiAodHh0Py5sZW5ndGgpIHtcbiAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gdHJ1ZVxuICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IHRydWVcbiAgICAgIHRoaXMuZ2V0bWRvKHR4dCwgMClcbiAgICB9IGVsc2UgaWYgKHRoaXMubWFzdGVyRGF0YSAmJiB0aGlzLm1hc3RlckRhdGE/Lm1kb0JhY2t1cCkge1xuICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kbyA9IHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwLnNsaWNlKDAsIHRoaXMubWRvRGVmYXVsdExvYWRDb3VudClcbiAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgICAgIHRoaXMuY2hlY2tDdXJyZW50bWRvUHJlc2VudCgpXG4gICAgfVxuICB9XG4gIHNldHVwU2Nyb2xsTGlzdGVuZXIob3BlbmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgaWYgKCF0aGlzLnNjcm9sbExpc3RlbmVyQXR0YWNoZWQpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxMaXN0ZW5lckF0dGFjaGVkID0gdHJ1ZVxuXG4gICAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgICAgICAgdGhpcy5tZG9MaXN0TG9hZENvdW50ID0gdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgICAgIHRoaXMubWRvT2Zmc2V0ID0gMFxuXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgICAgIHRoaXMuZ2V0bWRvKHVuZGVmaW5lZCwgMClcblxuICAgICAgICAvLyBDbGVhciBzZWFyY2ggYm94IG9uY2VcbiAgICAgICAgaWYgKHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpKSB7XG4gICAgICAgICAgdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnc2VhcmNobWRvJykhLnNldFZhbHVlKCcnKVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2VhcmNoSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2VhcmNoLWlucHV0JykgYXMgSFRNTElucHV0RWxlbWVudFxuICAgICAgICAgIGlmIChzZWFyY2hJbnB1dCkge1xuICAgICAgICAgICAgc2VhcmNoSW5wdXQuZm9jdXMoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKVxuXG4gICAgICAgIC8vIEF0dGFjaCBzY3JvbGwgbGlzdGVuZXIgc2FmZWx5XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1hdC1zZWxlY3QtcGFuZWwuc2VhcmNoLXBhbmVsJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsXG4gICAgICAgICAgaWYgKHBhbmVsKSB7XG4gICAgICAgICAgICAvLyBhbGlnbiBwYW5lbCB3aWR0aCB0byB0cmlnZ2VyXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyRWwgPSB0aGlzLm1kb1JlZiAmJiB0aGlzLm1kb1JlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgICAgIGlmICh0cmlnZ2VyRWwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gdHJpZ2dlckVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgLy8gc2V0IHdpZHRoIGFuZCBsZWZ0IHNvIHBhbmVsIGFsaWducyBleGFjdGx5IGJlbG93IHRoZSB0cmlnZ2VyXG4gICAgICAgICAgICAgICAgcGFuZWwuc3R5bGUud2lkdGggPSBgJHtNYXRoLnJvdW5kKHJlY3Qud2lkdGgpfXB4YFxuICAgICAgICAgICAgICAgIC8vIGxlYXZlIGxlZnQgdG8gb3ZlcmxheSBwb3NpdGlvbmluZyBidXQgbnVkZ2UgaWYgbmVjZXNzYXJ5XG4gICAgICAgICAgICAgICAgLy8gY29tcHV0ZSBsZWZ0IHJlbGF0aXZlIHRvIHZpZXdwb3J0IGFuZCBhcHBseSB0byBwYW5lbFxuICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJsYXlMZWZ0ID0gcmVjdC5sZWZ0XG4gICAgICAgICAgICAgICAgcGFuZWwuc3R5bGUubGVmdCA9IGAke01hdGgucm91bmQob3ZlcmxheUxlZnQpfXB4YFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIC8vIGlnbm9yZSBET00gZXJyb3JzIGluIFNTUiBvciB1bmV4cGVjdGVkIGNhc2VzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhhbmRsZXIgPSB0aGlzLm9ubWRvU2VsZWN0U2Nyb2xsLmJpbmQodGhpcylcbiAgICAgICAgICAgIHBhbmVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjcm9sbEhhbmRsZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTUwKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEcm9wZG93biBjbG9zZWQg4oCUIHJlc2V0IHNjcm9sbCBmbGFnIHNvIGl0IGNhbiByZWF0dGFjaCBuZXh0IHRpbWVcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgb25tZG9TZWxlY3RTY3JvbGwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudD8udGFyZ2V0XG4gICAgaWYgKCF0aGlzLm1kb0ZpbHRlckVuYWJsZSkge1xuICAgICAgLy8gQ2hlY2sgaWYgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIGJvdHRvbSAod2l0aCBhIHNtYWxsIHRocmVzaG9sZClcbiAgICAgIGlmIChlbGVtZW50LnNjcm9sbFRvcCArIGVsZW1lbnQ/LmNsaWVudEhlaWdodCA+PSBlbGVtZW50Py5zY3JvbGxIZWlnaHQgLSA1KSB7XG4gICAgICAgIC8vIE9ubHkgbG9hZCBtb3JlIGlmIG5vdCBhbHJlYWR5IGxvYWRpbmcgYW5kIGlmIHRoZXJlIGFyZSBwb3RlbnRpYWxseSBtb3JlIGl0ZW1zXG4gICAgICAgIGlmICghdGhpcy5pc0xvYWRpbmdNb3JlbWRvcykge1xuICAgICAgICAgIC8vIElmIG9yZyB1c2VzIElHT1QgbWRvIHRheG9ub215LCByZXF1ZXN0IG1vcmUgZnJvbSB0aGUgQVBJIGJ5IGluY3JlYXNpbmcgdGhlIGxpbWl0XG4gICAgICAgICAgaWYgKHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwPy5sZW5ndGggPiB0aGlzLm1hc3RlckRhdGE/Lm1kbz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBMb2NhbCBwYWdpbmF0aW9uOiBleHBhbmQgdGhlIHNsaWNlZCBsaXN0XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gdHJ1ZVxuICAgICAgICAgICAgdGhpcy5tZG9MaXN0TG9hZENvdW50ICs9IHRoaXMubWRvRGVmYXVsdExvYWRDb3VudFxuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBmaWx0ZXJlZCBsaXN0IHdpdGggbW9yZSBpdGVtc1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG8gPSB0aGlzLm1hc3RlckRhdGE/Lm1kb0JhY2t1cD8uc2xpY2UoMCwgdGhpcy5tZG9MaXN0TG9hZENvdW50KVxuICAgICAgICAgICAgICB0aGlzLmNoZWNrQ3VycmVudG1kb1ByZXNlbnQoKVxuICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gZmFsc2VcbiAgICAgICAgICAgIH0sIDUwMCkgLy8gU21hbGwgdGltZW91dCB0byBzaW11bGF0ZSBsb2FkaW5nIGFuZCBwcmV2ZW50IG11bHRpcGxlIHRyaWdnZXJzXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIExlZ2FjeSAoc2VydmVyKSBwYWdpbmF0aW9uOiByZXF1ZXN0IG5leHQgcGFnZSBpZiB0b3RhbCBub3QgcmVhY2hlZFxuICAgICAgICAgICAgY29uc3QgbG9hZGVkTGVnYWN5ID0gKHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwIHx8IFtdKS5sZW5ndGhcbiAgICAgICAgICAgIGlmICghdGhpcy5ub01vcmVMZWdhY3ltZG9zICYmIHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50ICYmIGxvYWRlZExlZ2FjeSA8IHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgICAgICAgICAgIHRoaXMubWRvT2Zmc2V0ID0gKHRoaXMubWRvT2Zmc2V0IHx8IDApICsgdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgICAgICAgICAgIC8vIGluY3JlYXNlIGRpc3BsYXkgY291bnQgdG8gaW5jbHVkZSBuZXdseSBmZXRjaGVkIGl0ZW1zXG4gICAgICAgICAgICAgIHRoaXMubWRvTGlzdExvYWRDb3VudCArPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnRcbiAgICAgICAgICAgICAgdGhpcy5nZXRtZG8odW5kZWZpbmVkLCB0aGlzLm1kb09mZnNldClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgc2VhcmNobWRvQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInZpZXctY2JwLXBsYW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5TZW5kIEZvciBBcHByb3ZhbDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJhcHByb3ZhbFJlcXVlc3RGb3JtXCI+XG4gICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cIm10LTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIHNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+UmVxdWVzdCBOYW1lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBhZGRpdGlvbmFsLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdF9uYW1lXCIgW3ZhbHVlXT1cIlwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgYSBuYW1lIGZvciB0aGlzIHJlcXVlc3QuLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDI1cHg7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6IDhweCAxMnB4OyB3aWR0aDoxMDAlO2ZvbnQtc2l6ZTogMTRweDtmb250LWZhbWlseTogJ0xhdG8nO1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgncmVxdWVzdF9uYW1lJyk/LnRvdWNoZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdyZXF1ZXN0X25hbWUnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QgbmFtZSBpcyByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3JlcXVlc3RfbmFtZScpPy50b3VjaGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgncmVxdWVzdF9uYW1lJyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzIGFyZSBhbGxvd2VkXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPlNlbGVjdCBNRE8gQWRtaW4vTGVhZGVyIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXIgbXQtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cIm1kb19uYW1lXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBtZG9cIiBbdmFsdWVdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMjVweDsgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgcGFkZGluZzogOHB4IDEycHg7IHdpZHRoOiAxMDAlO2ZvbnQtc2l6ZTogMTRweDtmb250LWZhbWlseTogJ0xhdG8nO1wiPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJtYXJnaW4tdG9wLXMgdy1mdWxsIHJlcXVpcmVkLXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgI3Bvc2l0aW9uIGZvcm1Db250cm9sTmFtZT1cIm1kb19uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBNRE8gQWRtaW4vTGVhZGVyXCIgKGNsb3NlZCk9XCJvbm1kb0Ryb3Bkb3duQ2xvc2VkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M9XCJzZWFyY2gtcGFuZWxcIiAob3BlbmVkQ2hhbmdlKT1cInNldHVwU2Nyb2xsTGlzdGVuZXIoJGV2ZW50KVwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTdGlja3kgc2VhcmNoIGlucHV0IGNvbnRhaW5lciAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RpY2t5LXNlYXJjaC1jb250YWluZXJcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggbWRvIGFkbWluL2xlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNobWRvXCIgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm1kb1NlYXJjaCgkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VhcmNobWRvQ29udHJvbD8udmFsdWVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbGVhci1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2htZG9Db250cm9sLnNldFZhbHVlKCcnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKclSBDbGVhciBTZWFyY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE9wdGlvbnMgbGlzdCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibWRvPy5pZFwiICpuZ0Zvcj1cImxldCBtZG8gb2YgbWFzdGVyRGF0YT8ubWRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bWRvPy5uYW1lfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBMb2FkaW5nIGluZGljYXRvciAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nTW9yZW1kb3NcIiBjbGFzcz1cImxvYWRpbmctaW5kaWNhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvYWQgTW9yZS4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gTm8gcmVzdWx0cyBtZXNzYWdlIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiKG1hc3RlckRhdGE/Lm1kbyApPy5sZW5ndGggPT09IDBcIiBkaXNhYmxlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBObyBtYXRjaGVzIGZvdW5kIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWVycm9yIHR4dC1zaXplXCI+Tm8gTURPIEFkbWluL0xlYWRlciBtYXBwZWQuIFBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yLjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPG1hdC1lcnJvciBjbGFzcz1cInRleHQteHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uZ2V0KCdtZG9fbmFtZScpPy50b3VjaGVkICYmIGFwcHJvdmFsUmVxdWVzdEZvcm0/LmdldCgnbWRvX25hbWUnKT8uaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIG1kby5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm10LTIgc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8cD5VcGxvYWQgRG9jdW1lbnQgKFBERi9Xb3JkL0V4Y2VsL1RYVCk8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVwbG9hZERvY1wiIGNsYXNzPVwiZmlsZS11cGxvYWQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS11cGxvYWQtaWNvblwiPvCfk448L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB1cGxvYWRlZEZpbGU/Lm5hbWUgfHwgJ0Nob29zZSBhIGZpbGUgKFBERiwgV29yZCwgRXhjZWwsIFRYVCknIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZpbGUtdXBsb2FkLWhpbnRcIj5NYXggZmlsZSBzaXplOiAyNU1CPC9zbWFsbD5cblxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1cGxvYWREb2NcIiB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiLnBkZiwuZG9jLC5kb2N4LC54bHMsLnhsc3gsLnR4dFwiIGNsYXNzPVwiZmlsZS11cGxvYWQtaW5wdXRcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1cGxvYWRFcnJvclwiIGNsYXNzPVwiZXJyb3JcIj57eyB1cGxvYWRFcnJvciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBvcHVwLWZvb3RlclwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiYnRuLWFjdGl2ZVwiIHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIkNhbmNlbFwiIChjbGljayk9XCJjYW5jZWxGb3JtKClcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uaW52YWxpZCA/ICdidG4tZGlzYWJsZSc6J2J0bi1hY3RpdmUnXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVtZG8oKVwiID48bWF0LWljb24+c2VuZDwvbWF0LWljb24+IFNlbmQgUmVxdWVzdDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm92ZXJsYXktbG9hZGVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiNTBcIj48L21hdC1zcGlubmVyPlxuPC9kaXY+Il19
|
|
406
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jYnAtYWkvc3JjL2xpYi9jb21wb25lbnRzL2FwcHJvdmFsLXJlcXVlc3QtZm9ybS9hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwtcmVxdWVzdC1mb3JtL2FwcHJvdmFsLXJlcXVlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBcUMsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFjLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckcsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFBOzs7Ozs7Ozs7Ozs7OztBQVN0QixNQUFNLE9BQU8sNEJBQTRCO0lBa0J2QyxZQUFtQixTQUFxRCxFQUN0QyxJQUFTLEVBQ2pDLEVBQWUsRUFDZixLQUF3QixFQUN4QixhQUE0QixFQUM1QixRQUFxQixFQUN4QixNQUFjO1FBTkYsY0FBUyxHQUFULFNBQVMsQ0FBNEM7UUFDdEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsYUFBUSxHQUFSLFFBQVEs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QUMsQ0FBQSxDQUFDLGtFQUFrRTtxQkFDM0U7eUJBQU07d0JBQ0wscUVBQXFFO3dCQUNyRSxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQTt3QkFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRTs0QkFDckcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTs0QkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFBOzRCQUNqRSx3REFBd0Q7NEJBQ3hELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUE7NEJBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTt5QkFDdkM7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQWdCLENBQUM7SUFDbEUsQ0FBQzsrR0ExYVUsNEJBQTRCLDhDQW1CN0IsZUFBZTttR0FuQmQsNEJBQTRCLDJJQUliLFVBQVUsNkJDbEJ0Qyw2a05BNEhNOzs0RkQ5R08sNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjs7MEJBdUJsQyxNQUFNOzJCQUFDLGVBQWU7aUxBZmUsTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUFycmF5LCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbmFsaXplLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3NoYXJlZC9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFwcHJvdmFsLXJlcXVlc3QtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbFJlcXVlc3RGb3JtQ29tcG9uZW50IHtcbiAgYXBwcm92YWxSZXF1ZXN0Rm9ybTogRm9ybUdyb3VwO1xuICBjYnBQbGFuRmluYWxPYmo6IGFueVxuICBsb2FkaW5nID0gZmFsc2VcbiAgQFZpZXdDaGlsZCgnbWRvJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1kb1JlZj86IEVsZW1lbnRSZWZcbiAgbWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgaXNMb2FkaW5nTW9yZW1kb3MgPSBmYWxzZTtcbiAgbWRvT2Zmc2V0ID0gMFxuICBvZGNzbWRvQ291bnQgPSAwXG4gIGRlZmF1bHRTZWFyY2htZG9Db3VudCA9IDBcbiAgbWRvTGlzdExvYWRDb3VudCA9IDUwXG4gIG1kb0RlZmF1bHRMb2FkQ291bnQgPSA1MFxuICBub01vcmVMZWdhY3ltZG9zID0gZmFsc2VcbiAgbWRvU2VhcmNoVGV4dCA9ICcnXG4gIG1kb0luaXRJblByb2dyZXNzID0gZmFsc2VcbiAgc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlXG4gIG1hc3RlckRhdGE6IGFueSA9IHt9XG4gIHJvbGVfbWFwcGluZ19pZHMgPSBbXVxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXBwcm92YWxSZXF1ZXN0Rm9ybUNvbXBvbmVudD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICAgIHRoaXMucm9sZV9tYXBwaW5nX2lkcyA9IGRhdGFcbiAgICB0aGlzLm1hc3RlckRhdGEgPSB7XG4gICAgICBtZG9CYWNrdXA6IFtdLFxuICAgICAgbWRvRmlsdGVyZWQ6IFtdLCAvLyBmaWx0ZXJlZCBzZWFyY2ggcmVzdWx0c1xuICAgIH07XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm0oKTtcbiAgICBjb25zb2xlLmxvZygndGhpcy5yb2xlX21hcHBpbmdfaWRzLS0nLHRoaXMucm9sZV9tYXBwaW5nX2lkcylcblxuICAgIGNvbnN0IHNlYXJjaENvbnRyb2wgPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdzZWFyY2htZG8nKTtcblxuICAgIGlmIChzZWFyY2hDb250cm9sKSB7XG4gICAgICBzZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHN0YXJ0V2l0aCgnJylcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgY29uc3QgdHh0ID0gcmVzPy50b1N0cmluZygpPy50cmltKCkgPz8gJyc7XG5cbiAgICAgICAgICBpZiAodHh0Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG9GaWx0ZXJlZCA9XG4gICAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG9CYWNrdXAuZmlsdGVyKChpdGVtOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgaXRlbS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModHh0LnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIHNob3cgaW5pdGlhbCBwYWdlIG9mIGZpbHRlcmVkIHJlc3VsdHNcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG8gPSB0aGlzLm1hc3RlckRhdGEubWRvRmlsdGVyZWQuc2xpY2UoMCwgdGhpcy5tZG9MaXN0TG9hZENvdW50KTtcblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1kb0ZpbHRlckVuYWJsZSA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBzaG93IGZpcnN0IHBhZ2UgZnJvbSBiYWNrdXBcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG8gPSB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwLnNsaWNlKDAsIHRoaXMubWRvRGVmYXVsdExvYWRDb3VudCk7XG4gICAgICAgICAgICB0aGlzLm1kb0xpc3RMb2FkQ291bnQgPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnQ7XG4gICAgICAgICAgICB0aGlzLm1kb09mZnNldCA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGNvbnNvbGUubG9nKHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10pXG4gICAgaWYgKCF0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddLmxlbmd0aCkge1xuICAgICAgdGhpcy5nZXRtZG9TYWZlKClcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgZ2V0bWRvU2FmZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tZG9Jbml0SW5Qcm9ncmVzcyB8fCB0aGlzLmlzTG9hZGluZ01vcmVtZG9zKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgdGhpcy5tZG9Jbml0SW5Qcm9ncmVzcyA9IHRydWVcbiAgICB0aGlzLmdldG1kbygpXG4gIH1cblxuICBpbml0aWFsaXplRm9ybSgpIHtcbiAgICB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG1kb19uYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcmVxdWVzdF9uYW1lOiBbJycsIFtcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApLFxuICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eKD8hXFxzKiQpW0EtWmEtejAtOSBdKyQvKVxuICAgIF1dLFxuICAgICAgc2VhcmNobWRvOiBbJyddLFxuICAgIH0pO1xuICB9XG5cblxuXG4gIGNhbmNlbEZvcm0oKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKVxuICB9XG5cbiAgc2F2ZW1kbygpIHtcbiAgICBjb25zdCByZXF1ZXN0TmFtZSA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS52YWx1ZS5yZXF1ZXN0X25hbWU/LnRyaW0oKTtcblxuICAgIGlmICghcmVxdWVzdE5hbWUpIHtcbiAgICAgIHRoaXMuc25hY2tCYXIub3BlbignUmVxdWVzdCBuYW1lIGlzIHJlcXVpcmVkJywgJ1gnLCB7XG4gICAgICAgIGR1cmF0aW9uOiAzMDAwXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRtZG86IHN0cmluZyA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ21kb19uYW1lJyk/LnZhbHVlO1xuXG4gICAgaWYgKCFzZWxlY3RlZG1kbykge1xuICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdQbGVhc2Ugc2VsZWN0IGFuIG1kbyBsZWFkZXIvYWRtaW4nLCAnWCcsIHsgZHVyYXRpb246IDMwMDAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIGNvbnN0IGJhc2VPYmogPSB7XG4gICAgICBzdGF0ZV9jZW50ZXJfaWQ6IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmoubWluaXN0cnkuaWRlbnRpZmllcixcbiAgICAgIC8vIHN0YXRlX2NlbnRlcl9uYW1lOiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLm1pbmlzdHJ5Lm9yZ05hbWUsXG4gICAgICByb2xlX21hcHBpbmdfaWRzOiB0aGlzLnJvbGVfbWFwcGluZ19pZHMubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQpLFxuICAgICAgcmVxdWVzdF9uYW1lOnJlcXVlc3ROYW1lLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iaj8ubWluaXN0cnk/LnNiT3JnVHlwZSA9PT0gJ3N0YXRlJyAmJiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZSkge1xuICAgICAgYmFzZU9ialsnZGVwYXJ0bWVudF9pZCddID0gdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cztcbiAgICAgLy8gYmFzZU9ialsnZGVwYXJ0bWVudF9uYW1lJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iaj8ubWluaXN0cnk/LnNiT3JnVHlwZSA9PT0gJ21pbmlzdHJ5JyAmJiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZSkge1xuICAgICAgYmFzZU9ialsnZGVwYXJ0bWVudF9pZCddID0gdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cztcbiAgICAgLy8gYmFzZU9ialsnZGVwYXJ0bWVudF9uYW1lJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRfbmFtZTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgYW4gYXJyYXkgb2Ygb2JzZXJ2YWJsZXMsIG9uZSBwZXIgbWRvXG4gICAgY29uc3QgcmVxID0ge1xuICAgICAgLi4uYmFzZU9iaixcbiAgICAgIG1kb19pZDogc2VsZWN0ZWRtZG9cbiAgICB9O1xuXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNhdmVBcHByb3ZhbFJlcXVlc3QocmVxKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1JlcXVlc3Qgc3VjY2Vzc2Z1bGx5IHN1Ym1pdHRlZCBmb3IgYXBwcm92YWwuJywgJ1gnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItc3VjY2VzcyddXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoJ3NhdmVkJyk7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYWkvYXBwcm92ZS1yZXF1ZXN0cyddKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcicsIGVycm9yKVxuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbigoZXJyb3I/LmVycm9yPy5kZXRhaWwgfHwgJ0ZhaWxlZCB0byBzZW5kIHJlcXVlc3QnKSwgJ1gnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItZXJyb3InXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKClcbiAgfVxuXG4gIGdldG1kbyhzZWFyY2hUZXh0Pzogc3RyaW5nLCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkIHtcblxuICAgIC8vIGNsZWFyIGFueSBwcmV2aW91cyBkZWJ1ZyBob29rc1xuICAgIGlmICghc2VhcmNoVGV4dCB8fCBzZWFyY2hUZXh0Py5sZW5ndGggPT09IDApIHtcbiAgICAgIC8vIG5vb3BcbiAgICB9XG5cbiAgICBjb25zdCByZXFPZmZzZXQgPSAodHlwZW9mIG9mZnNldCA9PT0gJ251bWJlcicpID8gb2Zmc2V0IDogdGhpcy5tZG9PZmZzZXRcbiAgICBsZXQgcmVxTGltaXQgPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnRcbiAgICBjb25zdCBwYWdlSW5kZXggPSByZXFMaW1pdCA+IDAgPyBNYXRoLmZsb29yKHJlcU9mZnNldCAvIHJlcUxpbWl0KSA6IDBcbiAgICAvLyBpZiB3ZSdyZSByZXF1ZXN0aW5nIGZyb20gZmlyc3QgcGFnZSwgY2xlYXIgdGhlIG5vLW1vcmUtZGF0YSBndWFyZFxuICAgIGlmIChwYWdlSW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IGZhbHNlXG4gICAgICByZXFMaW1pdCA9IDUwXG4gICAgfVxuICAgIC8vIGNvbnN0IHJlcXVlc3RCb2R5OiBhbnkgPSB7XG4gICAgLy8gICBmaWx0ZXJDcml0ZXJpYU1hcDoge1xuICAgIC8vICAgICBzdGF0dXM6ICdBY3RpdmUnXG4gICAgLy8gICB9LFxuICAgIC8vICAgcmVxdWVzdGVkRmllbGRzOiBbXSxcbiAgICAvLyAgIHBhZ2VOdW1iZXI6IHBhZ2VJbmRleCxcbiAgICAvLyAgIHBhZ2VTaXplOiByZXFMaW1pdCxcbiAgICAvLyB9XG5cbiAgICBjb25zdCByZXF1ZXN0Qm9keTogYW55ID0ge1xuICAgICAgXCJyZXF1ZXN0XCI6IHtcbiAgICAgICAgXCJmaWx0ZXJzXCI6IHtcbiAgICAgICAgICBcIm9yZ2FuaXNhdGlvbnMucm9sZXNcIjogW1xuICAgICAgICAgICAgXCJNRE9fTEVBREVSXCIsXG4gICAgICAgICAgICBcIk1ET19BRE1JTlwiXG4gICAgICAgICAgXSxcbiAgICAgICAgICBcInJvb3RPcmdJZFwiOiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzID8gdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cyA6IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmoubWluaXN0cnkuaWRlbnRpZmllciBcbiAgICAgICAgfSxcbiAgICAgICAgXCJmaWVsZHNcIjogW1xuICAgICAgICAgIFwiZmlyc3ROYW1lXCIsXG4gICAgICAgICAgXCJsYXN0TmFtZVwiLFxuICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICBcInJvb3RPcmdJZFwiLFxuICAgICAgICAgIFwib3JnYW5pc2F0aW9uc1wiLFxuICAgICAgICAgIFwicm9sZXNcIlxuICAgICAgICBdLFxuICAgICAgICBwYWdlTnVtYmVyOiBwYWdlSW5kZXgsXG4gICAgICAgIHBhZ2VTaXplOiByZXFMaW1pdCxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHNlYXJjaFRleHQ/Lmxlbmd0aCkge1xuICAgICAgcmVxdWVzdEJvZHlbJ3JlcXVlc3QnXVtcInF1ZXJ5XCJdID0gc2VhcmNoVGV4dFxuICAgICAgLy8gd2hlbiBzZWFyY2hpbmcsIHN0YXJ0IGZyb20gZmlyc3QgcGFnZVxuICAgICAgcmVxdWVzdEJvZHkucGFnZU51bWJlciA9IDBcbiAgICAgIC8vIGFsbG93IGxhcmdlciBwYWdlIGZvciBzZWFyY2ggaWYgbmVlZGVkXG4gICAgICByZXF1ZXN0Qm9keS5wYWdlU2l6ZSA9IHBhZ2VJbmRleCA9PT0gMCA/IDUwIDogdGhpcy5tZG9MaXN0TG9hZENvdW50XG4gICAgICAvLyByZXNldCBndWFyZCB3aGVuIHBlcmZvcm1pbmcgYSBmcmVzaCBzZWFyY2hcbiAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IGZhbHNlXG4gICAgfVxuXG4gICAgLy8gaW5kaWNhdGUgbG9hZGluZyBzdGF0ZSBzbyBzY3JvbGwgaGFuZGxlcnMgZG9uJ3QgdHJpZ2dlciBwYXJhbGxlbCBjYWxsc1xuICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgY29uc29sZS5sb2coJ3JlcXVlc3RCb2R5JywgcmVxdWVzdEJvZHkpXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnNlYXJjaFB1YmxpY21kbyhyZXF1ZXN0Qm9keSkucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gZmFsc2VcbiAgICAgIHRoaXMubWRvSW5pdEluUHJvZ3Jlc3MgPSBmYWxzZVxuICAgIH0pKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBfLmdldChyZXMsICdhZG1pbnMnLCBbXSlcbiAgICAgICAgICBjb25zb2xlLmxvZygnY29udGVudC0tJywgY29udGVudClcbiAgICAgICAgICBjb25zdCBtYXBwZWQgPSBjb250ZW50Lm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgaWQ6IGl0ZW0/LmlkLFxuICAgICAgICAgICAgbmFtZTogYCR7aXRlbT8uZmlyc3RfbmFtZX0gJHtpdGVtPy5sYXN0X25hbWV9YCB8fCAnJyxcbiAgICAgICAgICAgIHN0YXR1czogaXRlbT8uc3RhdHVzIHx8ICdBY3RpdmUnLFxuICAgICAgICAgICAgcm9sZV90eXBlOiBpdGVtPy5yb2xlX3R5cGUsXG4gICAgICAgICAgICBkZXBhcnRtZW50X25hbWU6IGl0ZW0/LmRlcGFydG1lbnRfbmFtZVxuXG4gICAgICAgICAgfSkpXG5cbiAgICAgICAgICAvLyB0b3RhbCBjb3VudCBtYXkgYmUgcHJlc2VudCBpbiBkaWZmZXJlbnQga2V5cyBkZXBlbmRpbmcgb24gQVBJIHZlcnNpb24uXG4gICAgICAgICAgLy8gUHJlZmVyICdyZXN1bHQucmVzdWx0LnRvdGFsY291bnQnIChsZWdhY3kgbG93ZXItY2FzZSkgdGhlbiBkYXRhLnRvdGFsQ291bnQsIHRoZW4gdG90YWxDb3VudFxuICAgICAgICAgIGNvbnN0IHRvdGFsID0gXy5nZXQocmVzLCAnY291bnQnLCBfLmdldChyZXMsICdjb3VudCcsIF8uZ2V0KHJlcywgJ2NvdW50JywgMCkpKVxuICAgICAgICAgIHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50ID0gdG90YWxcblxuICAgICAgICAgIC8vIElmIG9mZnNldCBpcyB6ZXJvIChmaXJzdCBwYWdlKSByZXBsYWNlIGJhY2t1cCwgb3RoZXJ3aXNlIGFwcGVuZCArIGRlZHVwZVxuICAgICAgICAgIGlmICghdGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCByZXFPZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gPSBtYXBwZWRcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgY29tYmluZWQgPSAodGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCBbXSkuY29uY2F0KG1hcHBlZClcbiAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gPSBfLnVuaXFCeShjb21iaW5lZCwgKGl0OiBhbnkpID0+IChpdD8ubmFtZSB8fCAnJykudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZiBzZXJ2ZXIgcmV0dXJuZWQgbm8gbmV3IGl0ZW1zLCBtYXJrIGFzIG5vLW1vcmUtZGF0YSB0byBzdG9wIGZ1cnRoZXIgc2Nyb2xsIHJlcXVlc3RzXG4gICAgICAgICAgaWYgKCFtYXBwZWQgfHwgbWFwcGVkPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZiB3ZSd2ZSBsb2FkZWQgYXQgbGVhc3QgdGhlIHRvdGFsIGNvdW50LCBtYXJrIG5vLW1vcmUtZGF0YVxuICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRTZWFyY2htZG9Db3VudCAmJiAodGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCBbXSkubGVuZ3RoID49IHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50KSB7XG4gICAgICAgICAgICB0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRW5zdXJlIHZpc2libGUgbGlzdCBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgZGlzcGxheSBjb3VudFxuICAgICAgICAgIHRoaXMubWFzdGVyRGF0YVsnbWRvJ10gPSAodGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSB8fCBbXSkuc2xpY2UoMCwgdGhpcy5tZG9MaXN0TG9hZENvdW50KVxuICAgICAgICAgIC8vIGxvYWRpbmcgZmxhZyBjbGVhcmVkIGluIGZpbmFsaXplKClcbiAgICAgICAgICB0aGlzLmNoZWNrQ3VycmVudG1kb1ByZXNlbnQoKVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIC8vIFN0b3AgZnVydGhlciBhdXRvbWF0aWMgY2FsbHMgb24gcmVwZWF0ZWQgZXJyb3JzIHRvIGF2b2lkIHRpZ2h0IGxvb3BzXG4gICAgICAgICAgLy8gbG9hZGluZyBmbGFnIGNsZWFyZWQgaW4gZmluYWxpemUoKVxuICAgICAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IHRydWVcbiAgICAgICAgICAvLyB0aGlzLm1hdFNuYWNrQmFyLm9wZW4oJ1VuYWJsZSB0byBmZXRjaCBtZG8gZGV0YWlscywgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlciEnKVxuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5jaGVja0N1cnJlbnRtZG9QcmVzZW50KCkge1xuICBjb25zdCBzZWxlY3RlZG1kbyA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ21kb19uYW1lJyk/LnZhbHVlO1xuXG4gIGlmICghc2VsZWN0ZWRtZG8gfHwgIXRoaXMubWFzdGVyRGF0YT8ubWRvKSByZXR1cm47XG5cbiAgY29uc3QgZXhpc3RzID0gdGhpcy5tYXN0ZXJEYXRhLm1kby5zb21lKFxuICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHNlbGVjdGVkbWRvPy50b0xvd2VyQ2FzZSgpXG4gICk7XG5cbiAgaWYgKCFleGlzdHMpIHtcbiAgICBjb25zdCBuZXdtZG8gPSB7XG4gICAgICBuYW1lOiBzZWxlY3RlZG1kbyxcbiAgICAgIHN0YXR1czogJ0FjdGl2ZScsXG4gICAgICBpZDogJ2N1c3RvbS0nICsgRGF0ZS5ub3coKVxuICAgIH07XG5cbiAgICB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwID0gdGhpcy5tYXN0ZXJEYXRhLm1kb0JhY2t1cCB8fCBbXTtcbiAgICB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwLnVuc2hpZnQobmV3bWRvKTtcbiAgICB0aGlzLm1hc3RlckRhdGEubWRvLnVuc2hpZnQobmV3bWRvKTtcbiAgfVxufVxuICBvbm1kb0Ryb3Bkb3duQ2xvc2VkKCk6IHZvaWQge1xuICAgIC8vIEtlZXAgdGhlIG1kbyB2YWx1ZSBidXQgY2xlYXIgdGhlIHNlYXJjaCBpbnB1dFxuICAgIGNvbnN0IGN1cnJlbnRtZG8gPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdtZG9fbmFtZScpIS52YWx1ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpKSB7XG4gICAgICAgIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpIS5zZXRWYWx1ZSgnJylcbiAgICAgIH1cbiAgICAgIC8vIEVuc3VyZSB0aGUgbWRvIHZhbHVlIHJlbWFpbnMgc2VsZWN0ZWRcbiAgICAgIGlmIChjdXJyZW50bWRvKSB7XG4gICAgICAgIGNvbnN0IG1kb0NvbnRyb2wgPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdtZG9fbmFtZScpO1xuICAgICAgICBpZiAobWRvQ29udHJvbCkge1xuICAgICAgICAgIG1kb0NvbnRyb2wuc2V0VmFsdWUoY3VycmVudG1kbylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIDEwMClcbiAgfVxuXG4gIG1kb1NlYXJjaChldnQ6IGFueSkge1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSBldnQ/LnRhcmdldD8udmFsdWVcbiAgICBjb25zdCB0eHQgPSAoc2VhcmNoVGV4dCB8fCAnJykudG9TdHJpbmcoKS50cmltKClcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdNb3JlbWRvcykgcmV0dXJuXG5cbiAgICB0aGlzLm1kb1NlYXJjaFRleHQgPSB0eHRcbiAgICBpZiAodHh0Py5sZW5ndGgpIHtcbiAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gdHJ1ZVxuICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IHRydWVcbiAgICAgIHRoaXMuZ2V0bWRvKHR4dCwgMClcbiAgICB9IGVsc2UgaWYgKHRoaXMubWFzdGVyRGF0YSAmJiB0aGlzLm1hc3RlckRhdGE/Lm1kb0JhY2t1cCkge1xuICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kbyA9IHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwLnNsaWNlKDAsIHRoaXMubWRvRGVmYXVsdExvYWRDb3VudClcbiAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgICAgIHRoaXMuY2hlY2tDdXJyZW50bWRvUHJlc2VudCgpXG4gICAgfVxuICB9XG4gIHNldHVwU2Nyb2xsTGlzdGVuZXIob3BlbmVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKG9wZW5lZCkge1xuICAgICAgaWYgKCF0aGlzLnNjcm9sbExpc3RlbmVyQXR0YWNoZWQpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxMaXN0ZW5lckF0dGFjaGVkID0gdHJ1ZVxuXG4gICAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgICAgICAgdGhpcy5tZG9MaXN0TG9hZENvdW50ID0gdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgICAgIHRoaXMubWRvT2Zmc2V0ID0gMFxuXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgICAgIHRoaXMuZ2V0bWRvKHVuZGVmaW5lZCwgMClcblxuICAgICAgICAvLyBDbGVhciBzZWFyY2ggYm94IG9uY2VcbiAgICAgICAgaWYgKHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpKSB7XG4gICAgICAgICAgdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnc2VhcmNobWRvJykhLnNldFZhbHVlKCcnKVxuICAgICAgICB9XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2VhcmNoSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2VhcmNoLWlucHV0JykgYXMgSFRNTElucHV0RWxlbWVudFxuICAgICAgICAgIGlmIChzZWFyY2hJbnB1dCkge1xuICAgICAgICAgICAgc2VhcmNoSW5wdXQuZm9jdXMoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwKVxuXG4gICAgICAgIC8vIEF0dGFjaCBzY3JvbGwgbGlzdGVuZXIgc2FmZWx5XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1hdC1zZWxlY3QtcGFuZWwuc2VhcmNoLXBhbmVsJykgYXMgSFRNTEVsZW1lbnQgfCBudWxsXG4gICAgICAgICAgaWYgKHBhbmVsKSB7XG4gICAgICAgICAgICAvLyBhbGlnbiBwYW5lbCB3aWR0aCB0byB0cmlnZ2VyXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VyRWwgPSB0aGlzLm1kb1JlZiAmJiB0aGlzLm1kb1JlZi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50XG4gICAgICAgICAgICAgIGlmICh0cmlnZ2VyRWwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWN0ID0gdHJpZ2dlckVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgICAgICAgICAgICAgLy8gc2V0IHdpZHRoIGFuZCBsZWZ0IHNvIHBhbmVsIGFsaWducyBleGFjdGx5IGJlbG93IHRoZSB0cmlnZ2VyXG4gICAgICAgICAgICAgICAgcGFuZWwuc3R5bGUud2lkdGggPSBgJHtNYXRoLnJvdW5kKHJlY3Qud2lkdGgpfXB4YFxuICAgICAgICAgICAgICAgIC8vIGxlYXZlIGxlZnQgdG8gb3ZlcmxheSBwb3NpdGlvbmluZyBidXQgbnVkZ2UgaWYgbmVjZXNzYXJ5XG4gICAgICAgICAgICAgICAgLy8gY29tcHV0ZSBsZWZ0IHJlbGF0aXZlIHRvIHZpZXdwb3J0IGFuZCBhcHBseSB0byBwYW5lbFxuICAgICAgICAgICAgICAgIGNvbnN0IG92ZXJsYXlMZWZ0ID0gcmVjdC5sZWZ0XG4gICAgICAgICAgICAgICAgcGFuZWwuc3R5bGUubGVmdCA9IGAke01hdGgucm91bmQob3ZlcmxheUxlZnQpfXB4YFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIC8vIGlnbm9yZSBET00gZXJyb3JzIGluIFNTUiBvciB1bmV4cGVjdGVkIGNhc2VzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhhbmRsZXIgPSB0aGlzLm9ubWRvU2VsZWN0U2Nyb2xsLmJpbmQodGhpcylcbiAgICAgICAgICAgIHBhbmVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjcm9sbEhhbmRsZXIsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgMTUwKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEcm9wZG93biBjbG9zZWQg4oCUIHJlc2V0IHNjcm9sbCBmbGFnIHNvIGl0IGNhbiByZWF0dGFjaCBuZXh0IHRpbWVcbiAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgb25tZG9TZWxlY3RTY3JvbGwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudD8udGFyZ2V0XG4gICAgaWYgKCF0aGlzLm1kb0ZpbHRlckVuYWJsZSkge1xuICAgICAgLy8gQ2hlY2sgaWYgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIGJvdHRvbSAod2l0aCBhIHNtYWxsIHRocmVzaG9sZClcbiAgICAgIGlmIChlbGVtZW50LnNjcm9sbFRvcCArIGVsZW1lbnQ/LmNsaWVudEhlaWdodCA+PSBlbGVtZW50Py5zY3JvbGxIZWlnaHQgLSA1KSB7XG4gICAgICAgIC8vIE9ubHkgbG9hZCBtb3JlIGlmIG5vdCBhbHJlYWR5IGxvYWRpbmcgYW5kIGlmIHRoZXJlIGFyZSBwb3RlbnRpYWxseSBtb3JlIGl0ZW1zXG4gICAgICAgIGlmICghdGhpcy5pc0xvYWRpbmdNb3JlbWRvcykge1xuICAgICAgICAgIC8vIElmIG9yZyB1c2VzIElHT1QgbWRvIHRheG9ub215LCByZXF1ZXN0IG1vcmUgZnJvbSB0aGUgQVBJIGJ5IGluY3JlYXNpbmcgdGhlIGxpbWl0XG4gICAgICAgICAgaWYgKHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwPy5sZW5ndGggPiB0aGlzLm1hc3RlckRhdGE/Lm1kbz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBMb2NhbCBwYWdpbmF0aW9uOiBleHBhbmQgdGhlIHNsaWNlZCBsaXN0XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gdHJ1ZVxuICAgICAgICAgICAgdGhpcy5tZG9MaXN0TG9hZENvdW50ICs9IHRoaXMubWRvRGVmYXVsdExvYWRDb3VudFxuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBmaWx0ZXJlZCBsaXN0IHdpdGggbW9yZSBpdGVtc1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG8gPSB0aGlzLm1hc3RlckRhdGE/Lm1kb0JhY2t1cD8uc2xpY2UoMCwgdGhpcy5tZG9MaXN0TG9hZENvdW50KVxuICAgICAgICAgICAgICB0aGlzLmNoZWNrQ3VycmVudG1kb1ByZXNlbnQoKVxuICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gZmFsc2VcbiAgICAgICAgICAgIH0sIDUwMCkgLy8gU21hbGwgdGltZW91dCB0byBzaW11bGF0ZSBsb2FkaW5nIGFuZCBwcmV2ZW50IG11bHRpcGxlIHRyaWdnZXJzXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIExlZ2FjeSAoc2VydmVyKSBwYWdpbmF0aW9uOiByZXF1ZXN0IG5leHQgcGFnZSBpZiB0b3RhbCBub3QgcmVhY2hlZFxuICAgICAgICAgICAgY29uc3QgbG9hZGVkTGVnYWN5ID0gKHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwIHx8IFtdKS5sZW5ndGhcbiAgICAgICAgICAgIGlmICghdGhpcy5ub01vcmVMZWdhY3ltZG9zICYmIHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50ICYmIGxvYWRlZExlZ2FjeSA8IHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgICAgICAgICAgIHRoaXMubWRvT2Zmc2V0ID0gKHRoaXMubWRvT2Zmc2V0IHx8IDApICsgdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgICAgICAgICAgIC8vIGluY3JlYXNlIGRpc3BsYXkgY291bnQgdG8gaW5jbHVkZSBuZXdseSBmZXRjaGVkIGl0ZW1zXG4gICAgICAgICAgICAgIHRoaXMubWRvTGlzdExvYWRDb3VudCArPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnRcbiAgICAgICAgICAgICAgdGhpcy5nZXRtZG8odW5kZWZpbmVkLCB0aGlzLm1kb09mZnNldClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgc2VhcmNobWRvQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpIGFzIEZvcm1Db250cm9sO1xuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cInZpZXctY2JwLXBsYW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9wdXAtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmdcIj5TZW5kIEZvciBBcHByb3ZhbDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJhcHByb3ZhbFJlcXVlc3RGb3JtXCI+XG4gICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cIm10LTFcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIHNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+UmVxdWVzdCBOYW1lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBhZGRpdGlvbmFsLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdF9uYW1lXCIgW3ZhbHVlXT1cIlwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgYSBuYW1lIGZvciB0aGlzIHJlcXVlc3QuLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDI1cHg7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6IDhweCAxMnB4OyB3aWR0aDoxMDAlO2ZvbnQtc2l6ZTogMTRweDtmb250LWZhbWlseTogJ0xhdG8nO1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgncmVxdWVzdF9uYW1lJyk/LnRvdWNoZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdyZXF1ZXN0X25hbWUnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QgbmFtZSBpcyByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3JlcXVlc3RfbmFtZScpPy50b3VjaGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgncmVxdWVzdF9uYW1lJyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzIGFyZSBhbGxvd2VkXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPlNlbGVjdCBNRE8gQWRtaW4vTGVhZGVyIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXIgbXQtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cIm1kb19uYW1lXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBtZG9cIiBbdmFsdWVdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMjVweDsgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgcGFkZGluZzogOHB4IDEycHg7IHdpZHRoOiAxMDAlO2ZvbnQtc2l6ZTogMTRweDtmb250LWZhbWlseTogJ0xhdG8nO1wiPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJtYXJnaW4tdG9wLXMgdy1mdWxsIHJlcXVpcmVkLXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgI3Bvc2l0aW9uIGZvcm1Db250cm9sTmFtZT1cIm1kb19uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBNRE8gQWRtaW4vTGVhZGVyXCIgKGNsb3NlZCk9XCJvbm1kb0Ryb3Bkb3duQ2xvc2VkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3M9XCJzZWFyY2gtcGFuZWxcIiAob3BlbmVkQ2hhbmdlKT1cInNldHVwU2Nyb2xsTGlzdGVuZXIoJGV2ZW50KVwiPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTdGlja3kgc2VhcmNoIGlucHV0IGNvbnRhaW5lciAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RpY2t5LXNlYXJjaC1jb250YWluZXJcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggbWRvIGFkbWluL2xlYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNobWRvXCIgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm1kb1NlYXJjaCgkZXZlbnQpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2VhcmNobWRvQ29udHJvbD8udmFsdWVcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbGVhci1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWFyY2htZG9Db250cm9sLnNldFZhbHVlKCcnKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKclSBDbGVhciBTZWFyY2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE9wdGlvbnMgbGlzdCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibWRvPy5pZFwiICpuZ0Zvcj1cImxldCBtZG8gb2YgbWFzdGVyRGF0YT8ubWRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7bWRvPy5uYW1lfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBMb2FkaW5nIGluZGljYXRvciAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nTW9yZW1kb3NcIiBjbGFzcz1cImxvYWRpbmctaW5kaWNhdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvYWQgTW9yZS4uLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gTm8gcmVzdWx0cyBtZXNzYWdlIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiKG1hc3RlckRhdGE/Lm1kbyApPy5sZW5ndGggPT09IDBcIiBkaXNhYmxlZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBObyBtYXRjaGVzIGZvdW5kIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0LWVycm9yIHR4dC1zaXplXCI+Tm8gTURPIEFkbWluL0xlYWRlciBtYXBwZWQuIFBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yLjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPG1hdC1lcnJvciBjbGFzcz1cInRleHQteHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uZ2V0KCdtZG9fbmFtZScpPy50b3VjaGVkICYmIGFwcHJvdmFsUmVxdWVzdEZvcm0/LmdldCgnbWRvX25hbWUnKT8uaW52YWxpZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsZWFzZSBzZWxlY3QgYXQgbGVhc3Qgb25lIG1kby5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm10LTIgc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8cD5VcGxvYWQgRG9jdW1lbnQgKFBERi9Xb3JkL0V4Y2VsL1RYVCk8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVwbG9hZERvY1wiIGNsYXNzPVwiZmlsZS11cGxvYWQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS11cGxvYWQtaWNvblwiPvCfk448L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB1cGxvYWRlZEZpbGU/Lm5hbWUgfHwgJ0Nob29zZSBhIGZpbGUgKFBERiwgV29yZCwgRXhjZWwsIFRYVCknIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZpbGUtdXBsb2FkLWhpbnRcIj5NYXggZmlsZSBzaXplOiAyNU1CPC9zbWFsbD5cblxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1cGxvYWREb2NcIiB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiLnBkZiwuZG9jLC5kb2N4LC54bHMsLnhsc3gsLnR4dFwiIGNsYXNzPVwiZmlsZS11cGxvYWQtaW5wdXRcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1cGxvYWRFcnJvclwiIGNsYXNzPVwiZXJyb3JcIj57eyB1cGxvYWRFcnJvciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBvcHVwLWZvb3RlclwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiYnRuLWFjdGl2ZVwiIHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIkNhbmNlbFwiIChjbGljayk9XCJjYW5jZWxGb3JtKClcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uaW52YWxpZCA/ICdidG4tZGlzYWJsZSc6J2J0bi1hY3RpdmUnXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVtZG8oKVwiID48bWF0LWljb24+c2VuZDwvbWF0LWljb24+IFNlbmQgUmVxdWVzdDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm92ZXJsYXktbG9hZGVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiNTBcIj48L21hdC1zcGlubmVyPlxuPC9kaXY+Il19
|
|
@@ -188,7 +188,7 @@ export class DesignationApprovalRequestFormComponent {
|
|
|
188
188
|
}
|
|
189
189
|
};
|
|
190
190
|
if (searchText?.length) {
|
|
191
|
-
requestBody['
|
|
191
|
+
requestBody['request']['query'] = searchText;
|
|
192
192
|
// when searching, start from first page
|
|
193
193
|
requestBody.pageNumber = 0;
|
|
194
194
|
// allow larger page for search if needed
|
|
@@ -396,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
396
396
|
type: ViewChild,
|
|
397
397
|
args: ['mdo', { read: ElementRef }]
|
|
398
398
|
}] } });
|
|
399
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jYnAtYWkvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2lnbmF0aW9uLWFwcHJvdmFsLXJlcXVlc3QtZm9ybS9kZXNpZ25hdGlvbi1hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtL2Rlc2lnbmF0aW9uLWFwcHJvdmFsLXJlcXVlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBcUMsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFrRCxRQUFRLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUE7Ozs7Ozs7Ozs7O0FBUXRCLE1BQU0sT0FBTyx1Q0FBdUM7SUFrQmxELFlBQW1CLFNBQWdFLEVBQ2pELElBQVMsRUFDakMsRUFBZSxFQUNmLEtBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLFFBQXFCO1FBTFosY0FBUyxHQUFULFNBQVMsQ0FBdUQ7UUFDakQsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIs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a0JBTG5ELFNBQVM7K0JBQ0UsdUNBQXVDOzswQkF1QjlDLE1BQU07MkJBQUMsZUFBZTs0SkFmZSxNQUFNO3NCQUE3QyxTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3JtQXJyYXksIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmluYWxpemUsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCdcbmltcG9ydCB7IGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvc2hhcmVkL3NlcnZpY2VzL3NoYXJlZC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kZXNpZ25hdGlvbi1hcHByb3ZhbC1yZXF1ZXN0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGVzaWduYXRpb25BcHByb3ZhbFJlcXVlc3RGb3JtQ29tcG9uZW50IHtcbiAgYXBwcm92YWxSZXF1ZXN0Rm9ybTogRm9ybUdyb3VwO1xuICBjYnBQbGFuRmluYWxPYmo6IGFueVxuICBsb2FkaW5nID0gZmFsc2VcbiAgQFZpZXdDaGlsZCgnbWRvJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1kb1JlZj86IEVsZW1lbnRSZWZcbiAgbWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgaXNMb2FkaW5nTW9yZW1kb3MgPSBmYWxzZTtcbiAgbWRvT2Zmc2V0ID0gMFxuICBvZGNzbWRvQ291bnQgPSAwXG4gIGRlZmF1bHRTZWFyY2htZG9Db3VudCA9IDBcbiAgbWRvTGlzdExvYWRDb3VudCA9IDUwXG4gIG1kb0RlZmF1bHRMb2FkQ291bnQgPSA1MFxuICBub01vcmVMZWdhY3ltZG9zID0gZmFsc2VcbiAgbWRvU2VhcmNoVGV4dCA9ICcnXG4gIG1kb0luaXRJblByb2dyZXNzID0gZmFsc2VcbiAgc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlXG4gIG1hc3RlckRhdGE6IGFueSA9IHt9XG4gIHJvbGVfbWFwcGluZ19pZHM6YW55XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEZXNpZ25hdGlvbkFwcHJvdmFsUmVxdWVzdEZvcm1Db21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0Jhcikge1xuICAgICAgdGhpcy5yb2xlX21hcHBpbmdfaWRzID0gZGF0YVxuICAgIHRoaXMubWFzdGVyRGF0YSA9IHtcbiAgICAgIG1kb0JhY2t1cDogW10sXG4gICAgICBtZG9GaWx0ZXJlZDogW10sIC8vIGZpbHRlcmVkIHNlYXJjaCByZXN1bHRzXG4gICAgfTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xuICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLnJvbGVfbWFwcGluZ19pZHMtLScsdGhpcy5yb2xlX21hcHBpbmdfaWRzKVxuXG4gICAgLy8gY29uc3Qgc2VhcmNoQ29udHJvbCA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpO1xuXG4gICAgLy8gaWYgKHNlYXJjaENvbnRyb2wpIHtcbiAgICAvLyAgIHNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgLy8gICAgIC5waXBlKFxuICAgIC8vICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgIC8vICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgLy8gICAgICAgc3RhcnRXaXRoKCcnKVxuICAgIC8vICAgICApXG4gICAgLy8gICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAvLyAgICAgICBjb25zdCB0eHQgPSByZXM/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJztcblxuICAgIC8vICAgICAgIGlmICh0eHQ/Lmxlbmd0aCkge1xuICAgIC8vICAgICAgICAgdGhpcy5tZG9GaWx0ZXJFbmFibGUgPSB0cnVlO1xuICAgIC8vICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kb0ZpbHRlcmVkID1cbiAgICAvLyAgICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kb0JhY2t1cC5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAvLyAgICAgICAgICAgICBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0eHQudG9Mb3dlckNhc2UoKSlcbiAgICAvLyAgICAgICAgICAgKTtcblxuICAgIC8vICAgICAgICAgLy8gc2hvdyBpbml0aWFsIHBhZ2Ugb2YgZmlsdGVyZWQgcmVzdWx0c1xuICAgIC8vICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kbyA9IHRoaXMubWFzdGVyRGF0YS5tZG9GaWx0ZXJlZC5zbGljZSgwLCB0aGlzLm1kb0xpc3RMb2FkQ291bnQpO1xuXG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gZmFsc2U7XG5cbiAgICAvLyAgICAgICAgIC8vIHNob3cgZmlyc3QgcGFnZSBmcm9tIGJhY2t1cFxuICAgIC8vICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kbyA9IHRoaXMubWFzdGVyRGF0YS5tZG9CYWNrdXAuc2xpY2UoMCwgdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50KTtcbiAgICAvLyAgICAgICAgIHRoaXMubWRvTGlzdExvYWRDb3VudCA9IHRoaXMubWRvRGVmYXVsdExvYWRDb3VudDtcbiAgICAvLyAgICAgICAgIHRoaXMubWRvT2Zmc2V0ID0gMDtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cblxuXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSlcbiAgICAvLyBpZiAoIXRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10ubGVuZ3RoKSB7XG4gICAgLy8gICB0aGlzLmdldG1kb1NhZmUoKVxuICAgIC8vIH1cblxuICB9XG5cbiAgLy8gcHJpdmF0ZSBnZXRtZG9TYWZlKCk6IHZvaWQge1xuICAvLyAgIGlmICh0aGlzLm1kb0luaXRJblByb2dyZXNzIHx8IHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MpIHtcbiAgLy8gICAgIHJldHVyblxuICAvLyAgIH1cbiAgLy8gICB0aGlzLm1kb0luaXRJblByb2dyZXNzID0gdHJ1ZVxuICAvLyAgIHRoaXMuZ2V0bWRvKClcbiAgLy8gfVxuXG4gIGluaXRpYWxpemVGb3JtKCkge1xuICAgIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZGl2aXNpb25fbmFtZTogW3RoaXMucm9sZV9tYXBwaW5nX2lkcz8ud2luZ19kaXZpc2lvbl9zZWN0aW9uIHx8ICcnLCBbXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eW0EtWmEtejAtOSBfLV0rJC8pXG4gICAgXV0sXG4gICAgICByZXF1ZXN0X25hbWU6IFt0aGlzLnJvbGVfbWFwcGluZ19pZHM/LmRlc2lnbmF0aW9uX25hbWUgfHwgJycsIFtcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL15bQS1aYS16MC05IF8tXSskLylcbiAgICBdXSxcbiAgICAvLyAgc2VhcmNobWRvOiBbJyddLFxuICAgIH0pO1xuICB9XG5cblxuXG4gIGNhbmNlbEZvcm0oKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKVxuICB9XG5cbiAgc2F2ZURlc2lnbmF0aW9uKCkge1xuICAgIGNvbnN0IGRpdmlzaW9uX25hbWU6IHN0cmluZyA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ2RpdmlzaW9uX25hbWUnKT8udmFsdWU7XG5cbiAgICAvLyBpZiAoIXNlbGVjdGVkbWRvKSB7XG4gICAgLy8gICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1BsZWFzZSBzZWxlY3QgYW4gbWRvIGxlYWRlci9hZG1pbicsICdYJywgeyBkdXJhdGlvbjogMzAwMCB9KTtcbiAgICAvLyAgIHJldHVybjtcbiAgICAvLyB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgY29uc3QgYmFzZU9iaiA9IHtcbiAgICAgIHJvbGVtYXBwaW5nX2lkOiB0aGlzLnJvbGVfbWFwcGluZ19pZHM/LmlkLFxuICAgICAgZGVzaWduYXRpb25fbmFtZTogdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLnZhbHVlLnJlcXVlc3RfbmFtZSxcbiAgICAgIHdpbmdfZGl2aXNpb25fc2VjdGlvbjogdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLnZhbHVlLmRpdmlzaW9uX25hbWUsXG4gICAgfTtcblxuICAgIC8vIGlmICh0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqPy5taW5pc3RyeT8uc2JPcmdUeXBlID09PSAnc3RhdGUnICYmIHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lKSB7XG4gICAgLy8gICBiYXNlT2JqWydkZXBhcnRtZW50X2lkJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzO1xuICAgIC8vICAvLyBiYXNlT2JqWydkZXBhcnRtZW50X25hbWUnXSA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lO1xuICAgIC8vIH1cblxuICAgIC8vIGlmICh0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqPy5taW5pc3RyeT8uc2JPcmdUeXBlID09PSAnbWluaXN0cnknICYmIHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lKSB7XG4gICAgLy8gICBiYXNlT2JqWydkZXBhcnRtZW50X2lkJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzO1xuICAgIC8vICAvLyBiYXNlT2JqWydkZXBhcnRtZW50X25hbWUnXSA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lO1xuICAgIC8vIH1cblxuICAgIC8vIENyZWF0ZSBhbiBhcnJheSBvZiBvYnNlcnZhYmxlcywgb25lIHBlciBtZG9cbiAgICBjb25zdCByZXEgPSB7XG4gICAgICAuLi5iYXNlT2JqLFxuICAgICAvLyBtZG9faWQ6IHNlbGVjdGVkbWRvXG4gICAgfTtcblxuICAgIHRoaXMuc2hhcmVkU2VydmljZS5zYXZlRGVzaWduYXRpb25BcHByb3ZhbFJlcXVlc3QocmVxKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0Rlc2lnbmF0aW9uIFJlcXVlc3Qgc2VudCBzdWNjZXNzZnVsbHknLCAnWCcsIHtcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWydzbmFja2Jhci1zdWNjZXNzJ11cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgnc2F2ZWQnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcicsIGVycm9yKVxuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbigoZXJyb3I/LmVycm9yPy5kZXRhaWwgfHwgJ0ZhaWxlZCB0byBzZW5kIHJlcXVlc3QnKSwgJ1gnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItZXJyb3InXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKClcbiAgfVxuXG4gIGdldG1kbyhzZWFyY2hUZXh0Pzogc3RyaW5nLCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBjbGVhciBhbnkgcHJldmlvdXMgZGVidWcgaG9va3NcbiAgICBpZiAoIXNlYXJjaFRleHQgfHwgc2VhcmNoVGV4dD8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBub29wXG4gICAgfVxuXG4gICAgY29uc3QgcmVxT2Zmc2V0ID0gKHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInKSA/IG9mZnNldCA6IHRoaXMubWRvT2Zmc2V0XG4gICAgbGV0IHJlcUxpbWl0ID0gdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgY29uc3QgcGFnZUluZGV4ID0gcmVxTGltaXQgPiAwID8gTWF0aC5mbG9vcihyZXFPZmZzZXQgLyByZXFMaW1pdCkgOiAwXG4gICAgLy8gaWYgd2UncmUgcmVxdWVzdGluZyBmcm9tIGZpcnN0IHBhZ2UsIGNsZWFyIHRoZSBuby1tb3JlLWRhdGEgZ3VhcmRcbiAgICBpZiAocGFnZUluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgPSBmYWxzZVxuICAgICAgcmVxTGltaXQgPSA1MFxuICAgIH1cbiAgICAvLyBjb25zdCByZXF1ZXN0Qm9keTogYW55ID0ge1xuICAgIC8vICAgZmlsdGVyQ3JpdGVyaWFNYXA6IHtcbiAgICAvLyAgICAgc3RhdHVzOiAnQWN0aXZlJ1xuICAgIC8vICAgfSxcbiAgICAvLyAgIHJlcXVlc3RlZEZpZWxkczogW10sXG4gICAgLy8gICBwYWdlTnVtYmVyOiBwYWdlSW5kZXgsXG4gICAgLy8gICBwYWdlU2l6ZTogcmVxTGltaXQsXG4gICAgLy8gfVxuXG4gICAgY29uc3QgcmVxdWVzdEJvZHk6IGFueSA9IHtcbiAgICAgIFwicmVxdWVzdFwiOiB7XG4gICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgXCJvcmdhbmlzYXRpb25zLnJvbGVzXCI6IFtcbiAgICAgICAgICAgIFwiTURPX0xFQURFUlwiLFxuICAgICAgICAgICAgXCJNRE9fQURNSU5cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJyb290T3JnSWRcIjogdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cyA/IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudHMgOiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLm1pbmlzdHJ5LmlkZW50aWZpZXIgXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICBcImZpcnN0TmFtZVwiLFxuICAgICAgICAgIFwibGFzdE5hbWVcIixcbiAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgXCJyb290T3JnSWRcIixcbiAgICAgICAgICBcIm9yZ2FuaXNhdGlvbnNcIixcbiAgICAgICAgICBcInJvbGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgcGFnZU51bWJlcjogcGFnZUluZGV4LFxuICAgICAgICBwYWdlU2l6ZTogcmVxTGltaXQsXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzZWFyY2hUZXh0Py5sZW5ndGgpIHtcbiAgICAgIHJlcXVlc3RCb2R5WydzZWFyY2hTdHJpbmcnXSA9IHNlYXJjaFRleHRcbiAgICAgIC8vIHdoZW4gc2VhcmNoaW5nLCBzdGFydCBmcm9tIGZpcnN0IHBhZ2VcbiAgICAgIHJlcXVlc3RCb2R5LnBhZ2VOdW1iZXIgPSAwXG4gICAgICAvLyBhbGxvdyBsYXJnZXIgcGFnZSBmb3Igc2VhcmNoIGlmIG5lZWRlZFxuICAgICAgcmVxdWVzdEJvZHkucGFnZVNpemUgPSBwYWdlSW5kZXggPT09IDAgPyA1MCA6IHRoaXMubWRvTGlzdExvYWRDb3VudFxuICAgICAgLy8gcmVzZXQgZ3VhcmQgd2hlbiBwZXJmb3JtaW5nIGEgZnJlc2ggc2VhcmNoXG4gICAgICB0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgPSBmYWxzZVxuICAgIH1cblxuICAgIC8vIGluZGljYXRlIGxvYWRpbmcgc3RhdGUgc28gc2Nyb2xsIGhhbmRsZXJzIGRvbid0IHRyaWdnZXIgcGFyYWxsZWwgY2FsbHNcbiAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gdHJ1ZVxuICAgIGNvbnNvbGUubG9nKCdyZXF1ZXN0Qm9keScsIHJlcXVlc3RCb2R5KVxuICAgIHRoaXMuc2hhcmVkU2VydmljZS5zZWFyY2hQdWJsaWNtZG8ocmVxdWVzdEJvZHkpLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IGZhbHNlXG4gICAgICB0aGlzLm1kb0luaXRJblByb2dyZXNzID0gZmFsc2VcbiAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gXy5nZXQocmVzLCAnYWRtaW5zJywgW10pXG4gICAgICAgICAgY29uc29sZS5sb2coJ2NvbnRlbnQtLScsIGNvbnRlbnQpXG4gICAgICAgICAgY29uc3QgbWFwcGVkID0gY29udGVudC5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICAgIGlkOiBpdGVtPy5pZCxcbiAgICAgICAgICAgIG5hbWU6IGAke2l0ZW0/LmZpcnN0X25hbWV9ICR7aXRlbT8ubGFzdF9uYW1lfWAgfHwgJycsXG4gICAgICAgICAgICBzdGF0dXM6IGl0ZW0/LnN0YXR1cyB8fCAnQWN0aXZlJyxcbiAgICAgICAgICAgIHJvbGVfdHlwZTogaXRlbT8ucm9sZV90eXBlLFxuICAgICAgICAgICAgZGVwYXJ0bWVudF9uYW1lOiBpdGVtPy5kZXBhcnRtZW50X25hbWVcblxuICAgICAgICAgIH0pKVxuXG4gICAgICAgICAgLy8gdG90YWwgY291bnQgbWF5IGJlIHByZXNlbnQgaW4gZGlmZmVyZW50IGtleXMgZGVwZW5kaW5nIG9uIEFQSSB2ZXJzaW9uLlxuICAgICAgICAgIC8vIFByZWZlciAncmVzdWx0LnJlc3VsdC50b3RhbGNvdW50JyAobGVnYWN5IGxvd2VyLWNhc2UpIHRoZW4gZGF0YS50b3RhbENvdW50LCB0aGVuIHRvdGFsQ291bnRcbiAgICAgICAgICBjb25zdCB0b3RhbCA9IF8uZ2V0KHJlcywgJ2NvdW50JywgXy5nZXQocmVzLCAnY291bnQnLCBfLmdldChyZXMsICdjb3VudCcsIDApKSlcbiAgICAgICAgICB0aGlzLmRlZmF1bHRTZWFyY2htZG9Db3VudCA9IHRvdGFsXG5cbiAgICAgICAgICAvLyBJZiBvZmZzZXQgaXMgemVybyAoZmlyc3QgcGFnZSkgcmVwbGFjZSBiYWNrdXAsIG90aGVyd2lzZSBhcHBlbmQgKyBkZWR1cGVcbiAgICAgICAgICBpZiAoIXRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gfHwgcmVxT2Zmc2V0ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddID0gbWFwcGVkXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbWJpbmVkID0gKHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gfHwgW10pLmNvbmNhdChtYXBwZWQpXG4gICAgICAgICAgICB0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddID0gXy51bmlxQnkoY29tYmluZWQsIChpdDogYW55KSA9PiAoaXQ/Lm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gSWYgc2VydmVyIHJldHVybmVkIG5vIG5ldyBpdGVtcywgbWFyayBhcyBuby1tb3JlLWRhdGEgdG8gc3RvcCBmdXJ0aGVyIHNjcm9sbCByZXF1ZXN0c1xuICAgICAgICAgIGlmICghbWFwcGVkIHx8IG1hcHBlZD8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgPSB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gSWYgd2UndmUgbG9hZGVkIGF0IGxlYXN0IHRoZSB0b3RhbCBjb3VudCwgbWFyayBuby1tb3JlLWRhdGFcbiAgICAgICAgICBpZiAodGhpcy5kZWZhdWx0U2VhcmNobWRvQ291bnQgJiYgKHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gfHwgW10pLmxlbmd0aCA+PSB0aGlzLmRlZmF1bHRTZWFyY2htZG9Db3VudCkge1xuICAgICAgICAgICAgdGhpcy5ub01vcmVMZWdhY3ltZG9zID0gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEVuc3VyZSB2aXNpYmxlIGxpc3QgbWF0Y2hlcyB0aGUgcmVxdWVzdGVkIGRpc3BsYXkgY291bnRcbiAgICAgICAgICB0aGlzLm1hc3RlckRhdGFbJ21kbyddID0gKHRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10gfHwgW10pLnNsaWNlKDAsIHRoaXMubWRvTGlzdExvYWRDb3VudClcbiAgICAgICAgICAvLyBsb2FkaW5nIGZsYWcgY2xlYXJlZCBpbiBmaW5hbGl6ZSgpXG4gICAgICAgICAgdGhpcy5jaGVja0N1cnJlbnRtZG9QcmVzZW50KClcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAvLyBTdG9wIGZ1cnRoZXIgYXV0b21hdGljIGNhbGxzIG9uIHJlcGVhdGVkIGVycm9ycyB0byBhdm9pZCB0aWdodCBsb29wc1xuICAgICAgICAgIC8vIGxvYWRpbmcgZmxhZyBjbGVhcmVkIGluIGZpbmFsaXplKClcbiAgICAgICAgICB0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgPSB0cnVlXG4gICAgICAgICAgLy8gdGhpcy5tYXRTbmFja0Jhci5vcGVuKCdVbmFibGUgdG8gZmV0Y2ggbWRvIGRldGFpbHMsIHBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIhJylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxuY2hlY2tDdXJyZW50bWRvUHJlc2VudCgpIHtcbiAgY29uc3Qgc2VsZWN0ZWRtZG8gPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdkaXZpc2lvbl9uYW1lJyk/LnZhbHVlO1xuXG4gIGlmICghc2VsZWN0ZWRtZG8gfHwgIXRoaXMubWFzdGVyRGF0YT8ubWRvKSByZXR1cm47XG5cbiAgY29uc3QgZXhpc3RzID0gdGhpcy5tYXN0ZXJEYXRhLm1kby5zb21lKFxuICAgIChpdGVtOiBhbnkpID0+IGl0ZW0/Lm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09IHNlbGVjdGVkbWRvPy50b0xvd2VyQ2FzZSgpXG4gICk7XG5cbiAgaWYgKCFleGlzdHMpIHtcbiAgICBjb25zdCBuZXdtZG8gPSB7XG4gICAgICBuYW1lOiBzZWxlY3RlZG1kbyxcbiAgICAgIHN0YXR1czogJ0FjdGl2ZScsXG4gICAgICBpZDogJ2N1c3RvbS0nICsgRGF0ZS5ub3coKVxuICAgIH07XG5cbiAgICB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwID0gdGhpcy5tYXN0ZXJEYXRhLm1kb0JhY2t1cCB8fCBbXTtcbiAgICB0aGlzLm1hc3RlckRhdGEubWRvQmFja3VwLnVuc2hpZnQobmV3bWRvKTtcbiAgICB0aGlzLm1hc3RlckRhdGEubWRvLnVuc2hpZnQobmV3bWRvKTtcbiAgfVxufVxuICBvbm1kb0Ryb3Bkb3duQ2xvc2VkKCk6IHZvaWQge1xuICAgIC8vIEtlZXAgdGhlIG1kbyB2YWx1ZSBidXQgY2xlYXIgdGhlIHNlYXJjaCBpbnB1dFxuICAgIGNvbnN0IGN1cnJlbnRtZG8gPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdkaXZpc2lvbl9uYW1lJykhLnZhbHVlXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnc2VhcmNobWRvJykpIHtcbiAgICAgICAgdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnc2VhcmNobWRvJykhLnNldFZhbHVlKCcnKVxuICAgICAgfVxuICAgICAgLy8gRW5zdXJlIHRoZSBtZG8gdmFsdWUgcmVtYWlucyBzZWxlY3RlZFxuICAgICAgaWYgKGN1cnJlbnRtZG8pIHtcbiAgICAgICAgY29uc3QgbWRvQ29udHJvbCA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ2RpdmlzaW9uX25hbWUnKTtcbiAgICAgICAgaWYgKG1kb0NvbnRyb2wpIHtcbiAgICAgICAgICBtZG9Db250cm9sLnNldFZhbHVlKGN1cnJlbnRtZG8pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCAxMDApXG4gIH1cblxuICBtZG9TZWFyY2goZXZ0OiBhbnkpIHtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gZXZ0Py50YXJnZXQ/LnZhbHVlXG4gICAgY29uc3QgdHh0ID0gKHNlYXJjaFRleHQgfHwgJycpLnRvU3RyaW5nKCkudHJpbSgpXG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MpIHJldHVyblxuXG4gICAgdGhpcy5tZG9TZWFyY2hUZXh0ID0gdHh0XG4gICAgaWYgKHR4dD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1kb0ZpbHRlckVuYWJsZSA9IHRydWVcbiAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgICB0aGlzLmdldG1kbyh0eHQsIDApXG4gICAgfSBlbHNlIGlmICh0aGlzLm1hc3RlckRhdGEgJiYgdGhpcy5tYXN0ZXJEYXRhPy5tZG9CYWNrdXApIHtcbiAgICAgIHRoaXMubWFzdGVyRGF0YS5tZG8gPSB0aGlzLm1hc3RlckRhdGE/Lm1kb0JhY2t1cC5zbGljZSgwLCB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnQpXG4gICAgICB0aGlzLm1kb0ZpbHRlckVuYWJsZSA9IGZhbHNlXG4gICAgICB0aGlzLmNoZWNrQ3VycmVudG1kb1ByZXNlbnQoKVxuICAgIH1cbiAgfVxuICBzZXR1cFNjcm9sbExpc3RlbmVyKG9wZW5lZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChvcGVuZWQpIHtcbiAgICAgIGlmICghdGhpcy5zY3JvbGxMaXN0ZW5lckF0dGFjaGVkKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCA9IHRydWVcblxuICAgICAgICB0aGlzLm1kb0ZpbHRlckVuYWJsZSA9IGZhbHNlXG4gICAgICAgIHRoaXMubWRvTGlzdExvYWRDb3VudCA9IHRoaXMubWRvRGVmYXVsdExvYWRDb3VudFxuICAgICAgICB0aGlzLm1kb09mZnNldCA9IDBcblxuICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gdHJ1ZVxuICAgICAgICB0aGlzLmdldG1kbyh1bmRlZmluZWQsIDApXG5cbiAgICAgICAgLy8gQ2xlYXIgc2VhcmNoIGJveCBvbmNlXG4gICAgICAgIGlmICh0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdzZWFyY2htZG8nKSkge1xuICAgICAgICAgIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpIS5zZXRWYWx1ZSgnJylcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNlYXJjaElucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNlYXJjaC1pbnB1dCcpIGFzIEhUTUxJbnB1dEVsZW1lbnRcbiAgICAgICAgICBpZiAoc2VhcmNoSW5wdXQpIHtcbiAgICAgICAgICAgIHNlYXJjaElucHV0LmZvY3VzKClcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMClcblxuICAgICAgICAvLyBBdHRhY2ggc2Nyb2xsIGxpc3RlbmVyIHNhZmVseVxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBwYW5lbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtc2VsZWN0LXBhbmVsLnNlYXJjaC1wYW5lbCcpIGFzIEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICAgICAgIGlmIChwYW5lbCkge1xuICAgICAgICAgICAgLy8gYWxpZ24gcGFuZWwgd2lkdGggdG8gdHJpZ2dlclxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgdHJpZ2dlckVsID0gdGhpcy5tZG9SZWYgJiYgdGhpcy5tZG9SZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudFxuICAgICAgICAgICAgICBpZiAodHJpZ2dlckVsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjdCA9IHRyaWdnZXJFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgICAgICAgICAgIC8vIHNldCB3aWR0aCBhbmQgbGVmdCBzbyBwYW5lbCBhbGlnbnMgZXhhY3RseSBiZWxvdyB0aGUgdHJpZ2dlclxuICAgICAgICAgICAgICAgIHBhbmVsLnN0eWxlLndpZHRoID0gYCR7TWF0aC5yb3VuZChyZWN0LndpZHRoKX1weGBcbiAgICAgICAgICAgICAgICAvLyBsZWF2ZSBsZWZ0IHRvIG92ZXJsYXkgcG9zaXRpb25pbmcgYnV0IG51ZGdlIGlmIG5lY2Vzc2FyeVxuICAgICAgICAgICAgICAgIC8vIGNvbXB1dGUgbGVmdCByZWxhdGl2ZSB0byB2aWV3cG9ydCBhbmQgYXBwbHkgdG8gcGFuZWxcbiAgICAgICAgICAgICAgICBjb25zdCBvdmVybGF5TGVmdCA9IHJlY3QubGVmdFxuICAgICAgICAgICAgICAgIHBhbmVsLnN0eWxlLmxlZnQgPSBgJHtNYXRoLnJvdW5kKG92ZXJsYXlMZWZ0KX1weGBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAvLyBpZ25vcmUgRE9NIGVycm9ycyBpbiBTU1Igb3IgdW5leHBlY3RlZCBjYXNlc1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxIYW5kbGVyID0gdGhpcy5vbm1kb1NlbGVjdFNjcm9sbC5iaW5kKHRoaXMpXG4gICAgICAgICAgICBwYW5lbC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxIYW5kbGVyLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0sIDE1MClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRHJvcGRvd24gY2xvc2VkIOKAlCByZXNldCBzY3JvbGwgZmxhZyBzbyBpdCBjYW4gcmVhdHRhY2ggbmV4dCB0aW1lXG4gICAgICB0aGlzLnNjcm9sbExpc3RlbmVyQXR0YWNoZWQgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIG9ubWRvU2VsZWN0U2Nyb2xsKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQ/LnRhcmdldFxuICAgIGlmICghdGhpcy5tZG9GaWx0ZXJFbmFibGUpIHtcbiAgICAgIC8vIENoZWNrIGlmIHVzZXIgaGFzIHNjcm9sbGVkIHRvIHRoZSBib3R0b20gKHdpdGggYSBzbWFsbCB0aHJlc2hvbGQpXG4gICAgICBpZiAoZWxlbWVudC5zY3JvbGxUb3AgKyBlbGVtZW50Py5jbGllbnRIZWlnaHQgPj0gZWxlbWVudD8uc2Nyb2xsSGVpZ2h0IC0gNSkge1xuICAgICAgICAvLyBPbmx5IGxvYWQgbW9yZSBpZiBub3QgYWxyZWFkeSBsb2FkaW5nIGFuZCBpZiB0aGVyZSBhcmUgcG90ZW50aWFsbHkgbW9yZSBpdGVtc1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2FkaW5nTW9yZW1kb3MpIHtcbiAgICAgICAgICAvLyBJZiBvcmcgdXNlcyBJR09UIG1kbyB0YXhvbm9teSwgcmVxdWVzdCBtb3JlIGZyb20gdGhlIEFQSSBieSBpbmNyZWFzaW5nIHRoZSBsaW1pdFxuICAgICAgICAgIGlmICh0aGlzLm1hc3RlckRhdGE/Lm1kb0JhY2t1cD8ubGVuZ3RoID4gdGhpcy5tYXN0ZXJEYXRhPy5tZG8/Lmxlbmd0aCkge1xuICAgICAgICAgICAgLy8gTG9jYWwgcGFnaW5hdGlvbjogZXhwYW5kIHRoZSBzbGljZWQgbGlzdFxuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IHRydWVcbiAgICAgICAgICAgIHRoaXMubWRvTGlzdExvYWRDb3VudCArPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnRcbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgZmlsdGVyZWQgbGlzdCB3aXRoIG1vcmUgaXRlbXNcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm1hc3RlckRhdGEubWRvID0gdGhpcy5tYXN0ZXJEYXRhPy5tZG9CYWNrdXA/LnNsaWNlKDAsIHRoaXMubWRvTGlzdExvYWRDb3VudClcbiAgICAgICAgICAgICAgdGhpcy5jaGVja0N1cnJlbnRtZG9QcmVzZW50KClcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IGZhbHNlXG4gICAgICAgICAgICB9LCA1MDApIC8vIFNtYWxsIHRpbWVvdXQgdG8gc2ltdWxhdGUgbG9hZGluZyBhbmQgcHJldmVudCBtdWx0aXBsZSB0cmlnZ2Vyc1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBMZWdhY3kgKHNlcnZlcikgcGFnaW5hdGlvbjogcmVxdWVzdCBuZXh0IHBhZ2UgaWYgdG90YWwgbm90IHJlYWNoZWRcbiAgICAgICAgICAgIGNvbnN0IGxvYWRlZExlZ2FjeSA9ICh0aGlzLm1hc3RlckRhdGE/Lm1kb0JhY2t1cCB8fCBbXSkubGVuZ3RoXG4gICAgICAgICAgICBpZiAoIXRoaXMubm9Nb3JlTGVnYWN5bWRvcyAmJiB0aGlzLmRlZmF1bHRTZWFyY2htZG9Db3VudCAmJiBsb2FkZWRMZWdhY3kgPCB0aGlzLmRlZmF1bHRTZWFyY2htZG9Db3VudCkge1xuICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gdHJ1ZVxuICAgICAgICAgICAgICB0aGlzLm1kb09mZnNldCA9ICh0aGlzLm1kb09mZnNldCB8fCAwKSArIHRoaXMubWRvRGVmYXVsdExvYWRDb3VudFxuICAgICAgICAgICAgICAvLyBpbmNyZWFzZSBkaXNwbGF5IGNvdW50IHRvIGluY2x1ZGUgbmV3bHkgZmV0Y2hlZCBpdGVtc1xuICAgICAgICAgICAgICB0aGlzLm1kb0xpc3RMb2FkQ291bnQgKz0gdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgICAgICAgICAgIHRoaXMuZ2V0bWRvKHVuZGVmaW5lZCwgdGhpcy5tZG9PZmZzZXQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlYXJjaG1kb0NvbnRyb2woKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdzZWFyY2htZG8nKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3LWNicC1wbGFuXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nXCI+U2VuZCBmb3IgRGVzaWduYXRpb24gTmFtZSBBcHByb3ZhbDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGluZ1wiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBzZW5kIHRoaXMgZGVzaWduYXRpb24gZm9yIGFkZGluZyBpbiBpR09UIGRlc2lnbmF0aW9uIE1hc3Rlcj88L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWNvbnRhaW5lclwiIFtmb3JtR3JvdXBdPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybVwiPlxuICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJtdC0xXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPkRlc2lnbmF0aW9uIE5hbWUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IGFkZGl0aW9uYWwtZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJyZXF1ZXN0X25hbWVcIiBbdmFsdWVdPVwicm9sZV9tYXBwaW5nX2lkcz8uZGVzaWduYXRpb25fbmFtZVwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgYSBuYW1lIGZvciB0aGlzIHJlcXVlc3QuLi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJib3JkZXItcmFkaXVzOiAyNXB4OyBib3JkZXI6IDFweCBzb2xpZCAjY2NjOyBwYWRkaW5nOiA4cHggMTJweDsgd2lkdGg6MTAwJTtmb250LXNpemU6IDE0cHg7Zm9udC1mYW1pbHk6ICdMYXRvJztcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdyZXF1ZXN0X25hbWUnKT8udG91Y2hlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3JlcXVlc3RfbmFtZScpPy5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdCBuYW1lIGlzIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgncmVxdWVzdF9uYW1lJyk/LnRvdWNoZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdyZXF1ZXN0X25hbWUnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgT25seSBsZXR0ZXJzLCBudW1iZXJzLCBzcGFjZXMsIHVuZGVyc2NvcmUgYW5kIGh5cGhlbiBhcmUgYWxsb3dlZFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8cD5FbnRlciBEaXZpc2lvbi9XaW5nIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTQgYWRkaXRpb25hbC1kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImRpdmlzaW9uX25hbWVcIiBbdmFsdWVdPVwicm9sZV9tYXBwaW5nX2lkcz8ud2luZ19kaXZpc2lvbl9zZWN0aW9uXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBEaXZpc2lvbi9XaW5nLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMjVweDsgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgcGFkZGluZzogOHB4IDEycHg7IHdpZHRoOjEwMCU7Zm9udC1zaXplOiAxNHB4O2ZvbnQtZmFtaWx5OiAnTGF0byc7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnZGl2aXNpb25fbmFtZScpPy50b3VjaGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnZGl2aXNpb25fbmFtZScpPy5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgUmVxdWVzdCBuYW1lIGlzIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnZGl2aXNpb25fbmFtZScpPy50b3VjaGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnZGl2aXNpb25fbmFtZScpPy5oYXNFcnJvcigncGF0dGVybicpXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBPbmx5IGxldHRlcnMsIG51bWJlcnMsIHNwYWNlcywgdW5kZXJzY29yZSBhbmQgaHlwaGVuIGFyZSBhbGxvd2VkXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXQtMiBzZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPlVwbG9hZCBEb2N1bWVudCAoUERGL1dvcmQvRXhjZWwvVFhUKTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS11cGxvYWQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidXBsb2FkRG9jXCIgY2xhc3M9XCJmaWxlLXVwbG9hZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLXVwbG9hZC1pY29uXCI+8J+Tjjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHVwbG9hZGVkRmlsZT8ubmFtZSB8fCAnQ2hvb3NlIGEgZmlsZSAoUERGLCBXb3JkLCBFeGNlbCwgVFhUKScgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZmlsZS11cGxvYWQtaGludFwiPk1heCBmaWxlIHNpemU6IDI1TUI8L3NtYWxsPlxuXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInVwbG9hZERvY1wiIHR5cGU9XCJmaWxlXCIgKGNoYW5nZSk9XCJvbkZpbGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9XCIucGRmLC5kb2MsLmRvY3gsLnhscywueGxzeCwudHh0XCIgY2xhc3M9XCJmaWxlLXVwbG9hZC1pbnB1dFwiIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVwbG9hZEVycm9yXCIgY2xhc3M9XCJlcnJvclwiPnt7IHVwbG9hZEVycm9yIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgICAgPC9tYXQtY2FyZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZm9vdGVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJidG4tYWN0aXZlXCIgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiQ2FuY2VsXCIgKGNsaWNrKT1cImNhbmNlbEZvcm0oKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJhcHByb3ZhbFJlcXVlc3RGb3JtPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhcHByb3ZhbFJlcXVlc3RGb3JtPy5pbnZhbGlkID8gJ2J0bi1kaXNhYmxlJzonYnRuLWFjdGl2ZSdcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZURlc2lnbmF0aW9uKClcIiA+PG1hdC1pY29uPnNlbmQ8L21hdC1pY29uPiBTZW5kIFJlcXVlc3Q8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJvdmVybGF5LWxvYWRlclwiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjUwXCI+PC9tYXQtc3Bpbm5lcj5cbjwvZGl2PiJdfQ==
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcnkvc3VuYmlyZC1jYi9jYnAtYWkvc3JjL2xpYi9jb21wb25lbnRzL2Rlc2lnbmF0aW9uLWFwcHJvdmFsLXJlcXVlc3QtZm9ybS9kZXNpZ25hdGlvbi1hcHByb3ZhbC1yZXF1ZXN0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtL2Rlc2lnbmF0aW9uLWFwcHJvdmFsLXJlcXVlc3QtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBcUMsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFrRCxRQUFRLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUE7Ozs7Ozs7Ozs7O0FBUXRCLE1BQU0sT0FBTyx1Q0FBdUM7SUFrQmxELFlBQW1CLFNBQWdFLEVBQ2pELElBQVMsRUFDakMsRUFBZSxFQUNmLEtBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLFFBQXFCO1FBTFosY0FBUyxHQUFULFNBQVMsQ0FBdUQ7UUFDakQsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIs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OzRGRDNGTyx1Q0FBdUM7a0JBTG5ELFNBQVM7K0JBQ0UsdUNBQXVDOzswQkF1QjlDLE1BQU07MkJBQUMsZUFBZTs0SkFmZSxNQUFNO3NCQUE3QyxTQUFTO3VCQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3JtQXJyYXksIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmluYWxpemUsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCdcbmltcG9ydCB7IGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvc2hhcmVkL3NlcnZpY2VzL3NoYXJlZC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kZXNpZ25hdGlvbi1hcHByb3ZhbC1yZXF1ZXN0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVzaWduYXRpb24tYXBwcm92YWwtcmVxdWVzdC1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGVzaWduYXRpb25BcHByb3ZhbFJlcXVlc3RGb3JtQ29tcG9uZW50IHtcbiAgYXBwcm92YWxSZXF1ZXN0Rm9ybTogRm9ybUdyb3VwO1xuICBjYnBQbGFuRmluYWxPYmo6IGFueVxuICBsb2FkaW5nID0gZmFsc2VcbiAgQFZpZXdDaGlsZCgnbWRvJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIG1kb1JlZj86IEVsZW1lbnRSZWZcbiAgbWRvRmlsdGVyRW5hYmxlID0gZmFsc2VcbiAgaXNMb2FkaW5nTW9yZW1kb3MgPSBmYWxzZTtcbiAgbWRvT2Zmc2V0ID0gMFxuICBvZGNzbWRvQ291bnQgPSAwXG4gIGRlZmF1bHRTZWFyY2htZG9Db3VudCA9IDBcbiAgbWRvTGlzdExvYWRDb3VudCA9IDUwXG4gIG1kb0RlZmF1bHRMb2FkQ291bnQgPSA1MFxuICBub01vcmVMZWdhY3ltZG9zID0gZmFsc2VcbiAgbWRvU2VhcmNoVGV4dCA9ICcnXG4gIG1kb0luaXRJblByb2dyZXNzID0gZmFsc2VcbiAgc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCA9IGZhbHNlXG4gIG1hc3RlckRhdGE6IGFueSA9IHt9XG4gIHJvbGVfbWFwcGluZ19pZHM6YW55XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxEZXNpZ25hdGlvbkFwcHJvdmFsUmVxdWVzdEZvcm1Db21wb25lbnQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBNYXRTbmFja0Jhcikge1xuICAgICAgdGhpcy5yb2xlX21hcHBpbmdfaWRzID0gZGF0YVxuICAgIHRoaXMubWFzdGVyRGF0YSA9IHtcbiAgICAgIG1kb0JhY2t1cDogW10sXG4gICAgICBtZG9GaWx0ZXJlZDogW10sIC8vIGZpbHRlcmVkIHNlYXJjaCByZXN1bHRzXG4gICAgfTtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xuICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLnJvbGVfbWFwcGluZ19pZHMtLScsdGhpcy5yb2xlX21hcHBpbmdfaWRzKVxuXG4gICAgLy8gY29uc3Qgc2VhcmNoQ29udHJvbCA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpO1xuXG4gICAgLy8gaWYgKHNlYXJjaENvbnRyb2wpIHtcbiAgICAvLyAgIHNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgLy8gICAgIC5waXBlKFxuICAgIC8vICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgIC8vICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgLy8gICAgICAgc3RhcnRXaXRoKCcnKVxuICAgIC8vICAgICApXG4gICAgLy8gICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAvLyAgICAgICBjb25zdCB0eHQgPSByZXM/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJztcblxuICAgIC8vICAgICAgIGlmICh0eHQ/Lmxlbmd0aCkge1xuICAgIC8vICAgICAgICAgdGhpcy5tZG9GaWx0ZXJFbmFibGUgPSB0cnVlO1xuICAgIC8vICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kb0ZpbHRlcmVkID1cbiAgICAvLyAgICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kb0JhY2t1cC5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAvLyAgICAgICAgICAgICBpdGVtLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0eHQudG9Mb3dlckNhc2UoKSlcbiAgICAvLyAgICAgICAgICAgKTtcblxuICAgIC8vICAgICAgICAgLy8gc2hvdyBpbml0aWFsIHBhZ2Ugb2YgZmlsdGVyZWQgcmVzdWx0c1xuICAgIC8vICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kbyA9IHRoaXMubWFzdGVyRGF0YS5tZG9GaWx0ZXJlZC5zbGljZSgwLCB0aGlzLm1kb0xpc3RMb2FkQ291bnQpO1xuXG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMubWRvRmlsdGVyRW5hYmxlID0gZmFsc2U7XG5cbiAgICAvLyAgICAgICAgIC8vIHNob3cgZmlyc3QgcGFnZSBmcm9tIGJhY2t1cFxuICAgIC8vICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kbyA9IHRoaXMubWFzdGVyRGF0YS5tZG9CYWNrdXAuc2xpY2UoMCwgdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50KTtcbiAgICAvLyAgICAgICAgIHRoaXMubWRvTGlzdExvYWRDb3VudCA9IHRoaXMubWRvRGVmYXVsdExvYWRDb3VudDtcbiAgICAvLyAgICAgICAgIHRoaXMubWRvT2Zmc2V0ID0gMDtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuICAgIC8vIH1cblxuXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSlcbiAgICAvLyBpZiAoIXRoaXMubWFzdGVyRGF0YVsnbWRvQmFja3VwJ10ubGVuZ3RoKSB7XG4gICAgLy8gICB0aGlzLmdldG1kb1NhZmUoKVxuICAgIC8vIH1cblxuICB9XG5cbiAgLy8gcHJpdmF0ZSBnZXRtZG9TYWZlKCk6IHZvaWQge1xuICAvLyAgIGlmICh0aGlzLm1kb0luaXRJblByb2dyZXNzIHx8IHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MpIHtcbiAgLy8gICAgIHJldHVyblxuICAvLyAgIH1cbiAgLy8gICB0aGlzLm1kb0luaXRJblByb2dyZXNzID0gdHJ1ZVxuICAvLyAgIHRoaXMuZ2V0bWRvKClcbiAgLy8gfVxuXG4gIGluaXRpYWxpemVGb3JtKCkge1xuICAgIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZGl2aXNpb25fbmFtZTogW3RoaXMucm9sZV9tYXBwaW5nX2lkcz8ud2luZ19kaXZpc2lvbl9zZWN0aW9uIHx8ICcnLCBbXG4gICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eW0EtWmEtejAtOSBfLV0rJC8pXG4gICAgXV0sXG4gICAgICByZXF1ZXN0X25hbWU6IFt0aGlzLnJvbGVfbWFwcGluZ19pZHM/LmRlc2lnbmF0aW9uX25hbWUgfHwgJycsIFtcbiAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oL15bQS1aYS16MC05IF8tXSskLylcbiAgICBdXSxcbiAgICAvLyAgc2VhcmNobWRvOiBbJyddLFxuICAgIH0pO1xuICB9XG5cblxuXG4gIGNhbmNlbEZvcm0oKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKVxuICB9XG5cbiAgc2F2ZURlc2lnbmF0aW9uKCkge1xuICAgIGNvbnN0IGRpdmlzaW9uX25hbWU6IHN0cmluZyA9IHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ2RpdmlzaW9uX25hbWUnKT8udmFsdWU7XG5cbiAgICAvLyBpZiAoIXNlbGVjdGVkbWRvKSB7XG4gICAgLy8gICB0aGlzLnNuYWNrQmFyLm9wZW4oJ1BsZWFzZSBzZWxlY3QgYW4gbWRvIGxlYWRlci9hZG1pbicsICdYJywgeyBkdXJhdGlvbjogMzAwMCB9KTtcbiAgICAvLyAgIHJldHVybjtcbiAgICAvLyB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgY29uc3QgYmFzZU9iaiA9IHtcbiAgICAgIHJvbGVtYXBwaW5nX2lkOiB0aGlzLnJvbGVfbWFwcGluZ19pZHM/LmlkLFxuICAgICAgZGVzaWduYXRpb25fbmFtZTogdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLnZhbHVlLnJlcXVlc3RfbmFtZSxcbiAgICAgIHdpbmdfZGl2aXNpb25fc2VjdGlvbjogdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLnZhbHVlLmRpdmlzaW9uX25hbWUsXG4gICAgfTtcblxuICAgIC8vIGlmICh0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqPy5taW5pc3RyeT8uc2JPcmdUeXBlID09PSAnc3RhdGUnICYmIHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lKSB7XG4gICAgLy8gICBiYXNlT2JqWydkZXBhcnRtZW50X2lkJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzO1xuICAgIC8vICAvLyBiYXNlT2JqWydkZXBhcnRtZW50X25hbWUnXSA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lO1xuICAgIC8vIH1cblxuICAgIC8vIGlmICh0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqPy5taW5pc3RyeT8uc2JPcmdUeXBlID09PSAnbWluaXN0cnknICYmIHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lKSB7XG4gICAgLy8gICBiYXNlT2JqWydkZXBhcnRtZW50X2lkJ10gPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzO1xuICAgIC8vICAvLyBiYXNlT2JqWydkZXBhcnRtZW50X25hbWUnXSA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudF9uYW1lO1xuICAgIC8vIH1cblxuICAgIC8vIENyZWF0ZSBhbiBhcnJheSBvZiBvYnNlcnZhYmxlcywgb25lIHBlciBtZG9cbiAgICBjb25zdCByZXEgPSB7XG4gICAgICAuLi5iYXNlT2JqLFxuICAgICAvLyBtZG9faWQ6IHNlbGVjdGVkbWRvXG4gICAgfTtcblxuICAgIHRoaXMuc2hhcmVkU2VydmljZS5zYXZlRGVzaWduYXRpb25BcHByb3ZhbFJlcXVlc3QocmVxKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oJ0Rlc2lnbmF0aW9uIFJlcXVlc3Qgc2VudCBzdWNjZXNzZnVsbHknLCAnWCcsIHtcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogWydzbmFja2Jhci1zdWNjZXNzJ11cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgnc2F2ZWQnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcicsIGVycm9yKVxuICAgICAgICAgIHRoaXMuc25hY2tCYXIub3BlbigoZXJyb3I/LmVycm9yPy5kZXRhaWwgfHwgJ0ZhaWxlZCB0byBzZW5kIHJlcXVlc3QnKSwgJ1gnLCB7XG4gICAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItZXJyb3InXVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKClcbiAgfVxuXG4gIGdldG1kbyhzZWFyY2hUZXh0Pzogc3RyaW5nLCBvZmZzZXQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBjbGVhciBhbnkgcHJldmlvdXMgZGVidWcgaG9va3NcbiAgICBpZiAoIXNlYXJjaFRleHQgfHwgc2VhcmNoVGV4dD8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBub29wXG4gICAgfVxuXG4gICAgY29uc3QgcmVxT2Zmc2V0ID0gKHR5cGVvZiBvZmZzZXQgPT09ICdudW1iZXInKSA/IG9mZnNldCA6IHRoaXMubWRvT2Zmc2V0XG4gICAgbGV0IHJlcUxpbWl0ID0gdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgY29uc3QgcGFnZUluZGV4ID0gcmVxTGltaXQgPiAwID8gTWF0aC5mbG9vcihyZXFPZmZzZXQgLyByZXFMaW1pdCkgOiAwXG4gICAgLy8gaWYgd2UncmUgcmVxdWVzdGluZyBmcm9tIGZpcnN0IHBhZ2UsIGNsZWFyIHRoZSBuby1tb3JlLWRhdGEgZ3VhcmRcbiAgICBpZiAocGFnZUluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgPSBmYWxzZVxuICAgICAgcmVxTGltaXQgPSA1MFxuICAgIH1cbiAgICAvLyBjb25zdCByZXF1ZXN0Qm9keTogYW55ID0ge1xuICAgIC8vICAgZmlsdGVyQ3JpdGVyaWFNYXA6IHtcbiAgICAvLyAgICAgc3RhdHVzOiAnQWN0aXZlJ1xuICAgIC8vICAgfSxcbiAgICAvLyAgIHJlcXVlc3RlZEZpZWxkczogW10sXG4gICAgLy8gICBwYWdlTnVtYmVyOiBwYWdlSW5kZXgsXG4gICAgLy8gICBwYWdlU2l6ZTogcmVxTGltaXQsXG4gICAgLy8gfVxuXG4gICAgY29uc3QgcmVxdWVzdEJvZHk6IGFueSA9IHtcbiAgICAgIFwicmVxdWVzdFwiOiB7XG4gICAgICAgIFwiZmlsdGVyc1wiOiB7XG4gICAgICAgICAgXCJvcmdhbmlzYXRpb25zLnJvbGVzXCI6IFtcbiAgICAgICAgICAgIFwiTURPX0xFQURFUlwiLFxuICAgICAgICAgICAgXCJNRE9fQURNSU5cIlxuICAgICAgICAgIF0sXG4gICAgICAgICAgXCJyb290T3JnSWRcIjogdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cyA/IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudHMgOiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLm1pbmlzdHJ5LmlkZW50aWZpZXIgXG4gICAgICAgIH0sXG4gICAgICAgIFwiZmllbGRzXCI6IFtcbiAgICAgICAgICBcImZpcnN0TmFtZVwiLFxuICAgICAgICAgIFwibGFzdE5hbWVcIixcbiAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgXCJyb290T3JnSWRcIixcbiAgICAgICAgICBcIm9yZ2FuaXNhdGlvbnNcIixcbiAgICAgICAgICBcInJvbGVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgcGFnZU51bWJlcjogcGFnZUluZGV4LFxuICAgICAgICBwYWdlU2l6ZTogcmVxTGltaXQsXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzZWFyY2hUZXh0Py5sZW5ndGgpIHtcbiAgICAgIHJlcXVlc3RCb2R5WydyZXF1ZXN0J11bJ3F1ZXJ5J10gPSBzZWFyY2hUZXh0XG4gICAgICAvLyB3aGVuIHNlYXJjaGluZywgc3RhcnQgZnJvbSBmaXJzdCBwYWdlXG4gICAgICByZXF1ZXN0Qm9keS5wYWdlTnVtYmVyID0gMFxuICAgICAgLy8gYWxsb3cgbGFyZ2VyIHBhZ2UgZm9yIHNlYXJjaCBpZiBuZWVkZWRcbiAgICAgIHJlcXVlc3RCb2R5LnBhZ2VTaXplID0gcGFnZUluZGV4ID09PSAwID8gNTAgOiB0aGlzLm1kb0xpc3RMb2FkQ291bnRcbiAgICAgIC8vIHJlc2V0IGd1YXJkIHdoZW4gcGVyZm9ybWluZyBhIGZyZXNoIHNlYXJjaFxuICAgICAgdGhpcy5ub01vcmVMZWdhY3ltZG9zID0gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBpbmRpY2F0ZSBsb2FkaW5nIHN0YXRlIHNvIHNjcm9sbCBoYW5kbGVycyBkb24ndCB0cmlnZ2VyIHBhcmFsbGVsIGNhbGxzXG4gICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IHRydWVcbiAgICBjb25zb2xlLmxvZygncmVxdWVzdEJvZHknLCByZXF1ZXN0Qm9keSlcbiAgICB0aGlzLnNoYXJlZFNlcnZpY2Uuc2VhcmNoUHVibGljbWRvKHJlcXVlc3RCb2R5KS5waXBlKGZpbmFsaXplKCgpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSBmYWxzZVxuICAgICAgdGhpcy5tZG9Jbml0SW5Qcm9ncmVzcyA9IGZhbHNlXG4gICAgfSkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IF8uZ2V0KHJlcywgJ2FkbWlucycsIFtdKVxuICAgICAgICAgIGNvbnNvbGUubG9nKCdjb250ZW50LS0nLCBjb250ZW50KVxuICAgICAgICAgIGNvbnN0IG1hcHBlZCA9IGNvbnRlbnQubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgICAgICBpZDogaXRlbT8uaWQsXG4gICAgICAgICAgICBuYW1lOiBgJHtpdGVtPy5maXJzdF9uYW1lfSAke2l0ZW0/Lmxhc3RfbmFtZX1gIHx8ICcnLFxuICAgICAgICAgICAgc3RhdHVzOiBpdGVtPy5zdGF0dXMgfHwgJ0FjdGl2ZScsXG4gICAgICAgICAgICByb2xlX3R5cGU6IGl0ZW0/LnJvbGVfdHlwZSxcbiAgICAgICAgICAgIGRlcGFydG1lbnRfbmFtZTogaXRlbT8uZGVwYXJ0bWVudF9uYW1lXG5cbiAgICAgICAgICB9KSlcblxuICAgICAgICAgIC8vIHRvdGFsIGNvdW50IG1heSBiZSBwcmVzZW50IGluIGRpZmZlcmVudCBrZXlzIGRlcGVuZGluZyBvbiBBUEkgdmVyc2lvbi5cbiAgICAgICAgICAvLyBQcmVmZXIgJ3Jlc3VsdC5yZXN1bHQudG90YWxjb3VudCcgKGxlZ2FjeSBsb3dlci1jYXNlKSB0aGVuIGRhdGEudG90YWxDb3VudCwgdGhlbiB0b3RhbENvdW50XG4gICAgICAgICAgY29uc3QgdG90YWwgPSBfLmdldChyZXMsICdjb3VudCcsIF8uZ2V0KHJlcywgJ2NvdW50JywgXy5nZXQocmVzLCAnY291bnQnLCAwKSkpXG4gICAgICAgICAgdGhpcy5kZWZhdWx0U2VhcmNobWRvQ291bnQgPSB0b3RhbFxuXG4gICAgICAgICAgLy8gSWYgb2Zmc2V0IGlzIHplcm8gKGZpcnN0IHBhZ2UpIHJlcGxhY2UgYmFja3VwLCBvdGhlcndpc2UgYXBwZW5kICsgZGVkdXBlXG4gICAgICAgICAgaWYgKCF0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddIHx8IHJlcU9mZnNldCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSA9IG1hcHBlZFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjb21iaW5lZCA9ICh0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddIHx8IFtdKS5jb25jYXQobWFwcGVkKVxuICAgICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhWydtZG9CYWNrdXAnXSA9IF8udW5pcUJ5KGNvbWJpbmVkLCAoaXQ6IGFueSkgPT4gKGl0Py5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIElmIHNlcnZlciByZXR1cm5lZCBubyBuZXcgaXRlbXMsIG1hcmsgYXMgbm8tbW9yZS1kYXRhIHRvIHN0b3AgZnVydGhlciBzY3JvbGwgcmVxdWVzdHNcbiAgICAgICAgICBpZiAoIW1hcHBlZCB8fCBtYXBwZWQ/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5ub01vcmVMZWdhY3ltZG9zID0gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIElmIHdlJ3ZlIGxvYWRlZCBhdCBsZWFzdCB0aGUgdG90YWwgY291bnQsIG1hcmsgbm8tbW9yZS1kYXRhXG4gICAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFNlYXJjaG1kb0NvdW50ICYmICh0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddIHx8IFtdKS5sZW5ndGggPj0gdGhpcy5kZWZhdWx0U2VhcmNobWRvQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMubm9Nb3JlTGVnYWN5bWRvcyA9IHRydWVcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBFbnN1cmUgdmlzaWJsZSBsaXN0IG1hdGNoZXMgdGhlIHJlcXVlc3RlZCBkaXNwbGF5IGNvdW50XG4gICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhWydtZG8nXSA9ICh0aGlzLm1hc3RlckRhdGFbJ21kb0JhY2t1cCddIHx8IFtdKS5zbGljZSgwLCB0aGlzLm1kb0xpc3RMb2FkQ291bnQpXG4gICAgICAgICAgLy8gbG9hZGluZyBmbGFnIGNsZWFyZWQgaW4gZmluYWxpemUoKVxuICAgICAgICAgIHRoaXMuY2hlY2tDdXJyZW50bWRvUHJlc2VudCgpXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgLy8gU3RvcCBmdXJ0aGVyIGF1dG9tYXRpYyBjYWxscyBvbiByZXBlYXRlZCBlcnJvcnMgdG8gYXZvaWQgdGlnaHQgbG9vcHNcbiAgICAgICAgICAvLyBsb2FkaW5nIGZsYWcgY2xlYXJlZCBpbiBmaW5hbGl6ZSgpXG4gICAgICAgICAgdGhpcy5ub01vcmVMZWdhY3ltZG9zID0gdHJ1ZVxuICAgICAgICAgIC8vIHRoaXMubWF0U25hY2tCYXIub3BlbignVW5hYmxlIHRvIGZldGNoIG1kbyBkZXRhaWxzLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyIScpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cbmNoZWNrQ3VycmVudG1kb1ByZXNlbnQoKSB7XG4gIGNvbnN0IHNlbGVjdGVkbWRvID0gdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnZGl2aXNpb25fbmFtZScpPy52YWx1ZTtcblxuICBpZiAoIXNlbGVjdGVkbWRvIHx8ICF0aGlzLm1hc3RlckRhdGE/Lm1kbykgcmV0dXJuO1xuXG4gIGNvbnN0IGV4aXN0cyA9IHRoaXMubWFzdGVyRGF0YS5tZG8uc29tZShcbiAgICAoaXRlbTogYW55KSA9PiBpdGVtPy5uYW1lPy50b0xvd2VyQ2FzZSgpID09PSBzZWxlY3RlZG1kbz8udG9Mb3dlckNhc2UoKVxuICApO1xuXG4gIGlmICghZXhpc3RzKSB7XG4gICAgY29uc3QgbmV3bWRvID0ge1xuICAgICAgbmFtZTogc2VsZWN0ZWRtZG8sXG4gICAgICBzdGF0dXM6ICdBY3RpdmUnLFxuICAgICAgaWQ6ICdjdXN0b20tJyArIERhdGUubm93KClcbiAgICB9O1xuXG4gICAgdGhpcy5tYXN0ZXJEYXRhLm1kb0JhY2t1cCA9IHRoaXMubWFzdGVyRGF0YS5tZG9CYWNrdXAgfHwgW107XG4gICAgdGhpcy5tYXN0ZXJEYXRhLm1kb0JhY2t1cC51bnNoaWZ0KG5ld21kbyk7XG4gICAgdGhpcy5tYXN0ZXJEYXRhLm1kby51bnNoaWZ0KG5ld21kbyk7XG4gIH1cbn1cbiAgb25tZG9Ecm9wZG93bkNsb3NlZCgpOiB2b2lkIHtcbiAgICAvLyBLZWVwIHRoZSBtZG8gdmFsdWUgYnV0IGNsZWFyIHRoZSBzZWFyY2ggaW5wdXRcbiAgICBjb25zdCBjdXJyZW50bWRvID0gdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnZGl2aXNpb25fbmFtZScpIS52YWx1ZVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpKSB7XG4gICAgICAgIHRoaXMuYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3NlYXJjaG1kbycpIS5zZXRWYWx1ZSgnJylcbiAgICAgIH1cbiAgICAgIC8vIEVuc3VyZSB0aGUgbWRvIHZhbHVlIHJlbWFpbnMgc2VsZWN0ZWRcbiAgICAgIGlmIChjdXJyZW50bWRvKSB7XG4gICAgICAgIGNvbnN0IG1kb0NvbnRyb2wgPSB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdkaXZpc2lvbl9uYW1lJyk7XG4gICAgICAgIGlmIChtZG9Db250cm9sKSB7XG4gICAgICAgICAgbWRvQ29udHJvbC5zZXRWYWx1ZShjdXJyZW50bWRvKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgMTAwKVxuICB9XG5cbiAgbWRvU2VhcmNoKGV2dDogYW55KSB7XG4gICAgY29uc3Qgc2VhcmNoVGV4dCA9IGV2dD8udGFyZ2V0Py52YWx1ZVxuICAgIGNvbnN0IHR4dCA9IChzZWFyY2hUZXh0IHx8ICcnKS50b1N0cmluZygpLnRyaW0oKVxuICAgIGlmICh0aGlzLmlzTG9hZGluZ01vcmVtZG9zKSByZXR1cm5cblxuICAgIHRoaXMubWRvU2VhcmNoVGV4dCA9IHR4dFxuICAgIGlmICh0eHQ/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5tZG9GaWx0ZXJFbmFibGUgPSB0cnVlXG4gICAgICB0aGlzLmlzTG9hZGluZ01vcmVtZG9zID0gdHJ1ZVxuICAgICAgdGhpcy5nZXRtZG8odHh0LCAwKVxuICAgIH0gZWxzZSBpZiAodGhpcy5tYXN0ZXJEYXRhICYmIHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwKSB7XG4gICAgICB0aGlzLm1hc3RlckRhdGEubWRvID0gdGhpcy5tYXN0ZXJEYXRhPy5tZG9CYWNrdXAuc2xpY2UoMCwgdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50KVxuICAgICAgdGhpcy5tZG9GaWx0ZXJFbmFibGUgPSBmYWxzZVxuICAgICAgdGhpcy5jaGVja0N1cnJlbnRtZG9QcmVzZW50KClcbiAgICB9XG4gIH1cbiAgc2V0dXBTY3JvbGxMaXN0ZW5lcihvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAob3BlbmVkKSB7XG4gICAgICBpZiAoIXRoaXMuc2Nyb2xsTGlzdGVuZXJBdHRhY2hlZCkge1xuICAgICAgICB0aGlzLnNjcm9sbExpc3RlbmVyQXR0YWNoZWQgPSB0cnVlXG5cbiAgICAgICAgdGhpcy5tZG9GaWx0ZXJFbmFibGUgPSBmYWxzZVxuICAgICAgICB0aGlzLm1kb0xpc3RMb2FkQ291bnQgPSB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnRcbiAgICAgICAgdGhpcy5tZG9PZmZzZXQgPSAwXG5cbiAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IHRydWVcbiAgICAgICAgdGhpcy5nZXRtZG8odW5kZWZpbmVkLCAwKVxuXG4gICAgICAgIC8vIENsZWFyIHNlYXJjaCBib3ggb25jZVxuICAgICAgICBpZiAodGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnc2VhcmNobWRvJykpIHtcbiAgICAgICAgICB0aGlzLmFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdzZWFyY2htZG8nKSEuc2V0VmFsdWUoJycpXG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBzZWFyY2hJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZWFyY2gtaW5wdXQnKSBhcyBIVE1MSW5wdXRFbGVtZW50XG4gICAgICAgICAgaWYgKHNlYXJjaElucHV0KSB7XG4gICAgICAgICAgICBzZWFyY2hJbnB1dC5mb2N1cygpXG4gICAgICAgICAgfVxuICAgICAgICB9LCAxMDApXG5cbiAgICAgICAgLy8gQXR0YWNoIHNjcm9sbCBsaXN0ZW5lciBzYWZlbHlcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFuZWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWF0LXNlbGVjdC1wYW5lbC5zZWFyY2gtcGFuZWwnKSBhcyBIVE1MRWxlbWVudCB8IG51bGxcbiAgICAgICAgICBpZiAocGFuZWwpIHtcbiAgICAgICAgICAgIC8vIGFsaWduIHBhbmVsIHdpZHRoIHRvIHRyaWdnZXJcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMubWRvUmVmICYmIHRoaXMubWRvUmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICAgICAgICAgaWYgKHRyaWdnZXJFbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY3QgPSB0cmlnZ2VyRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgICAgICAgICAvLyBzZXQgd2lkdGggYW5kIGxlZnQgc28gcGFuZWwgYWxpZ25zIGV4YWN0bHkgYmVsb3cgdGhlIHRyaWdnZXJcbiAgICAgICAgICAgICAgICBwYW5lbC5zdHlsZS53aWR0aCA9IGAke01hdGgucm91bmQocmVjdC53aWR0aCl9cHhgXG4gICAgICAgICAgICAgICAgLy8gbGVhdmUgbGVmdCB0byBvdmVybGF5IHBvc2l0aW9uaW5nIGJ1dCBudWRnZSBpZiBuZWNlc3NhcnlcbiAgICAgICAgICAgICAgICAvLyBjb21wdXRlIGxlZnQgcmVsYXRpdmUgdG8gdmlld3BvcnQgYW5kIGFwcGx5IHRvIHBhbmVsXG4gICAgICAgICAgICAgICAgY29uc3Qgb3ZlcmxheUxlZnQgPSByZWN0LmxlZnRcbiAgICAgICAgICAgICAgICBwYW5lbC5zdHlsZS5sZWZ0ID0gYCR7TWF0aC5yb3VuZChvdmVybGF5TGVmdCl9cHhgXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgLy8gaWdub3JlIERPTSBlcnJvcnMgaW4gU1NSIG9yIHVuZXhwZWN0ZWQgY2FzZXNcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsSGFuZGxlciA9IHRoaXMub25tZG9TZWxlY3RTY3JvbGwuYmluZCh0aGlzKVxuICAgICAgICAgICAgcGFuZWwuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgc2Nyb2xsSGFuZGxlciwgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9LCAxNTApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIERyb3Bkb3duIGNsb3NlZCDigJQgcmVzZXQgc2Nyb2xsIGZsYWcgc28gaXQgY2FuIHJlYXR0YWNoIG5leHQgdGltZVxuICAgICAgdGhpcy5zY3JvbGxMaXN0ZW5lckF0dGFjaGVkID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICBvbm1kb1NlbGVjdFNjcm9sbChldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGV2ZW50Py50YXJnZXRcbiAgICBpZiAoIXRoaXMubWRvRmlsdGVyRW5hYmxlKSB7XG4gICAgICAvLyBDaGVjayBpZiB1c2VyIGhhcyBzY3JvbGxlZCB0byB0aGUgYm90dG9tICh3aXRoIGEgc21hbGwgdGhyZXNob2xkKVxuICAgICAgaWYgKGVsZW1lbnQuc2Nyb2xsVG9wICsgZWxlbWVudD8uY2xpZW50SGVpZ2h0ID49IGVsZW1lbnQ/LnNjcm9sbEhlaWdodCAtIDUpIHtcbiAgICAgICAgLy8gT25seSBsb2FkIG1vcmUgaWYgbm90IGFscmVhZHkgbG9hZGluZyBhbmQgaWYgdGhlcmUgYXJlIHBvdGVudGlhbGx5IG1vcmUgaXRlbXNcbiAgICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZ01vcmVtZG9zKSB7XG4gICAgICAgICAgLy8gSWYgb3JnIHVzZXMgSUdPVCBtZG8gdGF4b25vbXksIHJlcXVlc3QgbW9yZSBmcm9tIHRoZSBBUEkgYnkgaW5jcmVhc2luZyB0aGUgbGltaXRcbiAgICAgICAgICBpZiAodGhpcy5tYXN0ZXJEYXRhPy5tZG9CYWNrdXA/Lmxlbmd0aCA+IHRoaXMubWFzdGVyRGF0YT8ubWRvPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIExvY2FsIHBhZ2luYXRpb246IGV4cGFuZCB0aGUgc2xpY2VkIGxpc3RcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSB0cnVlXG4gICAgICAgICAgICB0aGlzLm1kb0xpc3RMb2FkQ291bnQgKz0gdGhpcy5tZG9EZWZhdWx0TG9hZENvdW50XG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGZpbHRlcmVkIGxpc3Qgd2l0aCBtb3JlIGl0ZW1zXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5tYXN0ZXJEYXRhLm1kbyA9IHRoaXMubWFzdGVyRGF0YT8ubWRvQmFja3VwPy5zbGljZSgwLCB0aGlzLm1kb0xpc3RMb2FkQ291bnQpXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tDdXJyZW50bWRvUHJlc2VudCgpXG4gICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nTW9yZW1kb3MgPSBmYWxzZVxuICAgICAgICAgICAgfSwgNTAwKSAvLyBTbWFsbCB0aW1lb3V0IHRvIHNpbXVsYXRlIGxvYWRpbmcgYW5kIHByZXZlbnQgbXVsdGlwbGUgdHJpZ2dlcnNcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gTGVnYWN5IChzZXJ2ZXIpIHBhZ2luYXRpb246IHJlcXVlc3QgbmV4dCBwYWdlIGlmIHRvdGFsIG5vdCByZWFjaGVkXG4gICAgICAgICAgICBjb25zdCBsb2FkZWRMZWdhY3kgPSAodGhpcy5tYXN0ZXJEYXRhPy5tZG9CYWNrdXAgfHwgW10pLmxlbmd0aFxuICAgICAgICAgICAgaWYgKCF0aGlzLm5vTW9yZUxlZ2FjeW1kb3MgJiYgdGhpcy5kZWZhdWx0U2VhcmNobWRvQ291bnQgJiYgbG9hZGVkTGVnYWN5IDwgdGhpcy5kZWZhdWx0U2VhcmNobWRvQ291bnQpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdNb3JlbWRvcyA9IHRydWVcbiAgICAgICAgICAgICAgdGhpcy5tZG9PZmZzZXQgPSAodGhpcy5tZG9PZmZzZXQgfHwgMCkgKyB0aGlzLm1kb0RlZmF1bHRMb2FkQ291bnRcbiAgICAgICAgICAgICAgLy8gaW5jcmVhc2UgZGlzcGxheSBjb3VudCB0byBpbmNsdWRlIG5ld2x5IGZldGNoZWQgaXRlbXNcbiAgICAgICAgICAgICAgdGhpcy5tZG9MaXN0TG9hZENvdW50ICs9IHRoaXMubWRvRGVmYXVsdExvYWRDb3VudFxuICAgICAgICAgICAgICB0aGlzLmdldG1kbyh1bmRlZmluZWQsIHRoaXMubWRvT2Zmc2V0KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBzZWFyY2htZG9Db250cm9sKCk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5hcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgnc2VhcmNobWRvJykgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwidmlldy1jYnAtcGxhblwiPlxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPlNlbmQgZm9yIERlc2lnbmF0aW9uIE5hbWUgQXBwcm92YWw8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gc2VuZCB0aGlzIGRlc2lnbmF0aW9uIGZvciBhZGRpbmcgaW4gaUdPVCBkZXNpZ25hdGlvbiBNYXN0ZXI/PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1jb250YWluZXJcIiBbZm9ybUdyb3VwXT1cImFwcHJvdmFsUmVxdWVzdEZvcm1cIj5cbiAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwibXQtMVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8cD5EZXNpZ25hdGlvbiBOYW1lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCBhZGRpdGlvbmFsLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicmVxdWVzdF9uYW1lXCIgW3ZhbHVlXT1cInJvbGVfbWFwcGluZ19pZHM/LmRlc2lnbmF0aW9uX25hbWVcIiBwbGFjZWhvbGRlcj1cIkVudGVyIGEgbmFtZSBmb3IgdGhpcyByZXF1ZXN0Li4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMjVweDsgYm9yZGVyOiAxcHggc29saWQgI2NjYzsgcGFkZGluZzogOHB4IDEycHg7IHdpZHRoOjEwMCU7Zm9udC1zaXplOiAxNHB4O2ZvbnQtZmFtaWx5OiAnTGF0byc7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgncmVxdWVzdF9uYW1lJyk/LnRvdWNoZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsUmVxdWVzdEZvcm0uZ2V0KCdyZXF1ZXN0X25hbWUnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QgbmFtZSBpcyByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ3JlcXVlc3RfbmFtZScpPy50b3VjaGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZhbFJlcXVlc3RGb3JtLmdldCgncmVxdWVzdF9uYW1lJyk/Lmhhc0Vycm9yKCdwYXR0ZXJuJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIE9ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzLCB1bmRlcnNjb3JlIGFuZCBoeXBoZW4gYXJlIGFsbG93ZWRcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIHNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLWhlYWRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHA+RW50ZXIgRGl2aXNpb24vV2luZyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IGFkZGl0aW9uYWwtZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXZpc2lvbl9uYW1lXCIgW3ZhbHVlXT1cInJvbGVfbWFwcGluZ19pZHM/LndpbmdfZGl2aXNpb25fc2VjdGlvblwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgRGl2aXNpb24vV2luZy4uLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDI1cHg7IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6IDhweCAxMnB4OyB3aWR0aDoxMDAlO2ZvbnQtc2l6ZTogMTRweDtmb250LWZhbWlseTogJ0xhdG8nO1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ2RpdmlzaW9uX25hbWUnKT8udG91Y2hlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ2RpdmlzaW9uX25hbWUnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcXVlc3QgbmFtZSBpcyByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ2RpdmlzaW9uX25hbWUnKT8udG91Y2hlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxSZXF1ZXN0Rm9ybS5nZXQoJ2RpdmlzaW9uX25hbWUnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgT25seSBsZXR0ZXJzLCBudW1iZXJzLCBzcGFjZXMsIHVuZGVyc2NvcmUgYW5kIGh5cGhlbiBhcmUgYWxsb3dlZFxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm10LTIgc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGluZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8cD5VcGxvYWQgRG9jdW1lbnQgKFBERi9Xb3JkL0V4Y2VsL1RYVCk8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVwbG9hZERvY1wiIGNsYXNzPVwiZmlsZS11cGxvYWQtbGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS11cGxvYWQtaWNvblwiPvCfk448L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB1cGxvYWRlZEZpbGU/Lm5hbWUgfHwgJ0Nob29zZSBhIGZpbGUgKFBERiwgV29yZCwgRXhjZWwsIFRYVCknIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImZpbGUtdXBsb2FkLWhpbnRcIj5NYXggZmlsZSBzaXplOiAyNU1CPC9zbWFsbD5cblxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1cGxvYWREb2NcIiB0eXBlPVwiZmlsZVwiIChjaGFuZ2UpPVwib25GaWxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PVwiLnBkZiwuZG9jLC5kb2N4LC54bHMsLnhsc3gsLnR4dFwiIGNsYXNzPVwiZmlsZS11cGxvYWQtaW5wdXRcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1cGxvYWRFcnJvclwiIGNsYXNzPVwiZXJyb3JcIj57eyB1cGxvYWRFcnJvciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBvcHVwLWZvb3RlclwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiYnRuLWFjdGl2ZVwiIHR5cGU9XCJidXR0b25cIiB2YWx1ZT1cIkNhbmNlbFwiIChjbGljayk9XCJjYW5jZWxGb3JtKClcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiYXBwcm92YWxSZXF1ZXN0Rm9ybT8uaW52YWxpZCA/ICdidG4tZGlzYWJsZSc6J2J0bi1hY3RpdmUnXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVEZXNpZ25hdGlvbigpXCIgPjxtYXQtaWNvbj5zZW5kPC9tYXQtaWNvbj4gU2VuZCBSZXF1ZXN0PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwib3ZlcmxheS1sb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICA8bWF0LXNwaW5uZXIgZGlhbWV0ZXI9XCI1MFwiPjwvbWF0LXNwaW5uZXI+XG48L2Rpdj4iXX0=
|
|
@@ -52,7 +52,7 @@ export class UpdateDesignationHierarchyComponent {
|
|
|
52
52
|
sort_order: d.sort_order
|
|
53
53
|
}))
|
|
54
54
|
};
|
|
55
|
-
if (this.department_id) {
|
|
55
|
+
if (typeof this.department_id === 'string' && this.department_id) {
|
|
56
56
|
payload['department_id'] = this.department_id;
|
|
57
57
|
}
|
|
58
58
|
if (this.state_center_id) {
|
|
@@ -232,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
232
232
|
}], submitted: [{
|
|
233
233
|
type: Output
|
|
234
234
|
}] } });
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWRlc2lnbmF0aW9uLWhpZXJhcmNoeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY2JwLWFpL3NyYy9saWIvY29tcG9uZW50cy91cGRhdGUtZGVzaWduYXRpb24taGllcmFyY2h5L3VwZGF0ZS1kZXNpZ25hdGlvbi1oaWVyYXJjaHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvdXBkYXRlLWRlc2lnbmF0aW9uLWhpZXJhcmNoeS91cGRhdGUtZGVzaWduYXRpb24taGllcmFyY2h5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLE1BQU0sRUFFTix1QkFBdUIsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7O0FBaUJ0RSxNQUFNLE9BQU8sbUNBQW1DO0lBYTlDLFlBQW9CLElBQWdCLEVBQVMsYUFBNEIsRUFBVSxRQUFxQjtRQUFwRixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBWnhHLG1CQUFjLEdBQWtCLElBQUksQ0FBQztRQUNyQyxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBR2QsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUFHLEtBQUssQ0FBQTtRQUNMLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU5QyxZQUFPLEdBQWEsRUFBRSxDQUFDO0lBRXNGLENBQUM7SUFFOUcsUUFBUTtRQUdOLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBSTdCLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBRXZELENBQUM7SUFFRCxJQUFJLENBQUMsS0FBaUM7UUFDcEMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFNUUsaURBQWlEO1FBQ2pELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsMkNBQTJDO0lBQzNDLDZFQUE2RTtJQUU3RSwrQ0FBK0M7SUFDL0MsMERBQTBEO0lBRTFELHVFQUF1RTtJQUN2RSxJQUFJO0lBRUksc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxPQUFPLEdBQUc7WUFDWixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO2FBQ3pCLENBQUMsQ0FBQztTQUNKLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUE7U0FDOUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQTtTQUNsRDtRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ25CLG1CQUFtQjtRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQzthQUNuRCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQy9ELElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNaLG1CQUFtQjtnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO2dCQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsRUFBRTtvQkFDbEUsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLENBQUMsa0JBQWtCLENBQUM7aUJBQ2pDLENBQUMsQ0FBQztnQkFDSCxvREFBb0Q7WUFDdEQsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO2dCQUMzQiwyQkFBMkI7Z0JBQzNCLGdGQUFnRjtnQkFDaEYsVUFBVTtnQkFDViw2Q0FBNkM7Z0JBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRTtvQkFDNUMsUUFBUSxFQUFFLElBQUk7b0JBQ2QsVUFBVSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQy9CLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtnQkFDcEIsNkRBQTZEO1lBQy9ELENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1FBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUMvSSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQzNFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7WUFFMUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFFcEIsSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRTtvQkFDbEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO29CQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLHdDQUF3QyxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUM7d0JBQzlGLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFOzRCQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDOzRCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUN6RCxDQUFDO3dCQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFOzRCQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDOzRCQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUNwRSxDQUFDO3FCQUNGLENBQUMsQ0FBQztpQkFDSjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDbkUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7NEJBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7NEJBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUUsR0FBRyxDQUFDLENBQUM7d0JBQzFELENBQUM7d0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7NEJBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3JFLENBQUM7cUJBQ0YsQ0FBQyxDQUFDO2lCQUNKO2FBRUY7aUJBQU0sSUFBSSxZQUFZLEtBQUssT0FBTyxFQUFFO2dCQUNuQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxhQUFhLENBQUMsd0NBQXdDLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDOUYsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7d0JBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7d0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3pELENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7d0JBQ3JCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3BFLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7U0FDRjtRQUNELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFBO1FBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLENBQUE7UUFDakQsSUFBSSxlQUFlLEVBQUUsV0FBVyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxhQUFhLEdBQUcsZUFBZSxFQUFFLFdBQVcsQ0FBQTtTQUNsRDtRQUNELElBQUksZUFBZSxFQUFFLFFBQVEsSUFBSSxlQUFlLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRTtZQUNyRSxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFBO1NBQzVEO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLGVBQWUsRUFBRSx1QkFBdUIsSUFBSSxJQUFJLENBQUM7UUFDaEYsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDUixJQUFJLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtZQUN4QixVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsSUFBSSxLQUFLLEdBQUcsQ0FBQztZQUNyQyxZQUFZLEVBQUUsRUFBRTtZQUNoQixlQUFlLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQywrQkFBK0I7U0FDbkUsQ0FBQyxDQUFDLENBQUM7UUFHSixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtRQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqRixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUgsY0FBYyxDQUFDLElBQVMsRUFBRSxLQUFZO1FBQ3BDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRXZFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFVBQVU7Z0JBQUUsT0FBTztZQUV4QixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNoRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBRXhDLG1EQUFtRDtZQUNuRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsWUFBWSxFQUFFO2dCQUM5QixVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFFLGFBQWE7YUFDM0Q7aUJBQU07Z0JBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUUsYUFBYTthQUM5QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELDhCQUE4QjtJQUM5QixZQUFZLENBQUMsSUFBUyxFQUFFLEdBQVcsRUFBRSxLQUFZO1FBQy9DLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLG9DQUFvQztRQUU3RCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFFdEIsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRTNCLGVBQWU7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFTO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQy9DLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQ25ELENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsSUFBUztRQUNyQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVM7UUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7K0dBelBZLG1DQUFtQzttR0FBbkMsbUNBQW1DLHlJQ3pCaEQsNmpFQTBETTs7NEZEakNPLG1DQUFtQztrQkFOL0MsU0FBUzsrQkFDRSxrQ0FBa0MsbUJBRzNCLHVCQUF1QixDQUFDLE1BQU07dUpBVXJDLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBPbkluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3NoYXJlZC9zZXJ2aWNlcy9zaGFyZWQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzaWduYXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNvcnRfb3JkZXI6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVwZGF0ZS1kZXNpZ25hdGlvbi1oaWVyYXJjaHknLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBkYXRlLWRlc2lnbmF0aW9uLWhpZXJhcmNoeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwZGF0ZS1kZXNpZ25hdGlvbi1oaWVyYXJjaHkuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVXBkYXRlRGVzaWduYXRpb25IaWVyYXJjaHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBvcGVuRHJvcGRvd25JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIGlzT3BlbiA9IHRydWU7XG4gIHN0YXRlX2NlbnRlcl9pZCE6IHN0cmluZztcbiAgZGVwYXJ0bWVudF9pZCE6IHN0cmluZztcbiAgZGVzaWduYXRpb25zOiBhbnlbXSA9IFtdO1xuICByb2xlX21hcHBpbmdfZ2VuZXJhdGlvbjogYW55XG4gIGxvYWRpbmcgPSBmYWxzZVxuICBAT3V0cHV0KCkgY2xvc2VEcmF3ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBudW1iZXJzOiBudW1iZXJbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHVibGljIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cblxuICAgIHRoaXMucmVmcmVzaFJvbGVNYXBwaW5nRGF0YSgpXG5cblxuXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZGVzaWduYXRpb25zLS0nLCB0aGlzLmRlc2lnbmF0aW9ucylcblxuICB9XG5cbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8RGVzaWduYXRpb25bXT4pIHtcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5kZXNpZ25hdGlvbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG5cbiAgICAvLyBVcGRhdGUgc29ydF9vcmRlciBiYXNlZCBvbiB0aGUgbmV3IGFycmF5IGluZGV4XG4gICAgdGhpcy5kZXNpZ25hdGlvbnMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIGl0ZW0uc29ydF9vcmRlciA9IGluZGV4ICsgMTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIG9uT3JkZXJDaGFuZ2UoaXRlbTogYW55KSB7XG4gIC8vICAgY29uc3Qgc2VsZWN0ZWRPcmRlciA9IGl0ZW0uc29ydF9vcmRlcjtcbiAgLy8gICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmRlc2lnbmF0aW9ucy5maW5kSW5kZXgoZCA9PiBkLmlkID09PSBpdGVtLmlkKTtcblxuICAvLyAgIHRoaXMuZGVzaWduYXRpb25zLnNwbGljZShjdXJyZW50SW5kZXgsIDEpO1xuICAvLyAgIHRoaXMuZGVzaWduYXRpb25zLnNwbGljZShzZWxlY3RlZE9yZGVyIC0gMSwgMCwgaXRlbSk7XG5cbiAgLy8gICB0aGlzLmRlc2lnbmF0aW9ucy5mb3JFYWNoKChkLCBpbmRleCkgPT4gZC5zb3J0X29yZGVyID0gaW5kZXggKyAxKTtcbiAgLy8gfVxuXG4gIHByaXZhdGUgdXBkYXRlU29ydE9yZGVyQnlJbmRleCgpIHtcbiAgICB0aGlzLmRlc2lnbmF0aW9ucy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaXRlbS5zb3J0X29yZGVyID0gaW5kZXggKyAxO1xuICAgIH0pO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIGxldCBwYXlsb2FkID0ge1xuICAgICAgZGVzaWduYXRpb25zOiB0aGlzLmRlc2lnbmF0aW9ucy5tYXAoZCA9PiAoe1xuICAgICAgICBpZDogZC5pZCxcbiAgICAgICAgc29ydF9vcmRlcjogZC5zb3J0X29yZGVyXG4gICAgICB9KSlcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuZGVwYXJ0bWVudF9pZCkge1xuICAgICAgcGF5bG9hZFsnZGVwYXJ0bWVudF9pZCddID0gdGhpcy5kZXBhcnRtZW50X2lkXG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXRlX2NlbnRlcl9pZCkge1xuICAgICAgcGF5bG9hZFsnc3RhdGVfY2VudGVyX2lkJ10gPSB0aGlzLnN0YXRlX2NlbnRlcl9pZFxuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCdwYXlsb2FkLS0nLCBwYXlsb2FkKVxuICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICAvLyBFeGFtcGxlIEFQSSBjYWxsXG4gICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnVwZGF0ZURlc2lnbmF0aW9uSGllcmFyY2h5KHBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLnVwZGF0ZURlc2lnbmF0aW9uSGllcmFyY2h5U3ViamVjdC5uZXh0KHRydWUpXG4gICAgICAgIHRoaXMuc3VibWl0dGVkLmVtaXQocGF5bG9hZCk7XG4gICAgICAgIHRoaXMuY2xvc2VEcmF3ZXIuZW1pdCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnNoYXJlZFNlcnZpY2UudXBkYXRlRGVzaWduYXRpb25IaWVyYXJjaHkocGF5bG9hZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgLy8gU3VjY2VzcyBoYW5kbGluZ1xuICAgICAgICBjb25zb2xlLmxvZygnU3VjY2VzczonLCByZXMpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UudXBkYXRlRGVzaWduYXRpb25IaWVyYXJjaHlTdWJqZWN0Lm5leHQodHJ1ZSlcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQuZW1pdChwYXlsb2FkKTtcbiAgICAgICAgdGhpcy5jbG9zZURyYXdlci5lbWl0KCk7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbignRGVzaWduYXRpb24gSGllcmFyY2h5IFNhdmVkIFN1Y2Nlc3NmdWxseScsICdYJywge1xuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnc25hY2tiYXItc3VjY2VzcyddXG4gICAgICAgIH0pO1xuICAgICAgICAvL3RoaXMuc3VjY2Vzc1JvbGVNYXBwaW5nLmVtaXQodGhpcy5yb2xlTWFwcGluZ0Zvcm0pXG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnZXJyb3InLCBlcnJvcilcbiAgICAgICAgLy8gSGFuZGxlIDQwOSBDb25mbGljdCBoZXJlXG4gICAgICAgIC8vIGFsZXJ0KCdDb25mbGljdCBkZXRlY3RlZDogVGhlIHJlc291cmNlIGFscmVhZHkgZXhpc3RzIG9yIGFjdGlvbiBjb25mbGljdHMuJyk7XG4gICAgICAgIC8vdGhpcy5nZXRcbiAgICAgICAgLy8gT3IgeW91IGNhbiBzZXQgYSBVSSBlcnJvciBtZXNzYWdlIHZhcmlhYmxlXG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlcnJvcj8uZXJyb3I/LmRldGFpbCwgJ1gnLCB7XG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydzbmFja2Jhci1lcnJvciddXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICAvL3RoaXMuYWxyZWFkeUF2YWlsYWJsZVJvbGVNYXBwaW5nLmVtaXQodGhpcy5yb2xlTWFwcGluZ0Zvcm0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5pc09wZW4gPSBmYWxzZVxuICAgIHRoaXMuY2xvc2VEcmF3ZXIuZW1pdCgpO1xuICB9XG5cbiAgcmVmcmVzaFJvbGVNYXBwaW5nRGF0YSgpIHtcbiAgICBjb25zb2xlLmxvZygnUmVmcmVzaGluZyByb2xlIG1hcHBpbmcgZGF0YS4uLicpO1xuICAgIGlmICh0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqICYmIHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmoubWluaXN0cnkgJiYgdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5taW5pc3RyeS5pZGVudGlmaWVyKSB7XG4gICAgICBjb25zdCBtaW5pc3RyeVR5cGUgPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLm1pbmlzdHJ5LnNiT3JnVHlwZTtcbiAgICAgIGNvbnN0IG1pbmlzdHJ5SWQgPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLm1pbmlzdHJ5LmlkZW50aWZpZXI7XG5cbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgIGlmIChtaW5pc3RyeVR5cGUgPT09ICdtaW5pc3RyeScpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudHMpIHtcbiAgICAgICAgICBjb25zdCBkZXBhcnRtZW50SWQgPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzO1xuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5nZXRSb2xlTWFwcGluZ0J5U3RhdGVDZW50ZXJBbmREZXBhcnRtZW50KG1pbmlzdHJ5SWQsIGRlcGFydG1lbnRJZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTdGF0ZSByb2xlIG1hcHBpbmcgZGF0YSByZWZyZXNoZWQ6JywgcmVzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZWZyZXNoaW5nIHN0YXRlIHJvbGUgbWFwcGluZyBkYXRhOicsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0Um9sZU1hcHBpbmdCeVN0YXRlQ2VudGVyKG1pbmlzdHJ5SWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnQ2VudGVyIHJvbGUgbWFwcGluZyBkYXRhIHJlZnJlc2hlZDonLCByZXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlZnJlc2hpbmcgY2VudGVyIHJvbGUgbWFwcGluZyBkYXRhOicsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICB9IGVsc2UgaWYgKG1pbmlzdHJ5VHlwZSA9PT0gJ3N0YXRlJykge1xuICAgICAgICBjb25zdCBkZXBhcnRtZW50SWQgPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLmRlcGFydG1lbnRzO1xuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuZ2V0Um9sZU1hcHBpbmdCeVN0YXRlQ2VudGVyQW5kRGVwYXJ0bWVudChtaW5pc3RyeUlkLCBkZXBhcnRtZW50SWQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnU3RhdGUgcm9sZSBtYXBwaW5nIGRhdGEgcmVmcmVzaGVkOicsIHJlcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlZnJlc2hpbmcgc3RhdGUgcm9sZSBtYXBwaW5nIGRhdGE6JywgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBjYnBQbGFuRmluYWxPYmogPSB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqXG4gICAgY29uc29sZS5sb2coJ2NicFBsYW5GaW5hbE9iai0tJywgY2JwUGxhbkZpbmFsT2JqKVxuICAgIGlmIChjYnBQbGFuRmluYWxPYmo/LmRlcGFydG1lbnRzKSB7XG4gICAgICB0aGlzLmRlcGFydG1lbnRfaWQgPSBjYnBQbGFuRmluYWxPYmo/LmRlcGFydG1lbnRzXG4gICAgfVxuICAgIGlmIChjYnBQbGFuRmluYWxPYmo/Lm1pbmlzdHJ5ICYmIGNicFBsYW5GaW5hbE9iaj8ubWluaXN0cnkuaWRlbnRpZmllcikge1xuICAgICAgdGhpcy5zdGF0ZV9jZW50ZXJfaWQgPSBjYnBQbGFuRmluYWxPYmo/Lm1pbmlzdHJ5LmlkZW50aWZpZXJcbiAgICB9XG5cbiAgICB0aGlzLnJvbGVfbWFwcGluZ19nZW5lcmF0aW9uID0gY2JwUGxhbkZpbmFsT2JqPy5yb2xlX21hcHBpbmdfZ2VuZXJhdGlvbiB8fCAnW10nO1xuICAgIC8vIE1hcCByb2xlX21hcHBpbmdfZ2VuZXJhdGlvbiB0byBpbnRlcm5hbCBkZXNpZ25hdGlvbnMgYXJyYXlcbiAgICB0aGlzLm51bWJlcnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnJvbGVfbWFwcGluZ19nZW5lcmF0aW9uLmxlbmd0aCB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgIHRoaXMuZGVzaWduYXRpb25zID0gdGhpcy5yb2xlX21hcHBpbmdfZ2VuZXJhdGlvbi5tYXAoKHI6IGFueSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgIGlkOiByLmlkLFxuICAgICAgbmFtZTogci5kZXNpZ25hdGlvbl9uYW1lLFxuICAgICAgc29ydF9vcmRlcjogci5zb3J0X29yZGVyIHx8IGluZGV4ICsgMSxcbiAgICAgIHNlYXJjaEZpbHRlcjogJycsICAgICAgICAgICAgICAvLyBTZWFyY2ggaW5wdXQgdmFsdWVcbiAgICAgIGZpbHRlcmVkTnVtYmVyczogWy4uLnRoaXMubnVtYmVyc10gLy8gTnVtYmVycyB0byBkaXNwbGF5IGluIHNlbGVjdFxuICAgIH0pKTtcblxuXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICB0aGlzLm51bWJlcnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmRlc2lnbmF0aW9ucy5sZW5ndGggfSwgKF8sIGkpID0+IGkgKyAxKTtcbiAgICAvLyBTb3J0IGJ5IHNvcnRfb3JkZXJcbiAgICB0aGlzLmRlc2lnbmF0aW9ucy5zb3J0KChhLCBiKSA9PiBhLnNvcnRfb3JkZXIgLSBiLnNvcnRfb3JkZXIpO1xuICAgIHRoaXMudXBkYXRlU29ydE9yZGVyQnlJbmRleCgpO1xuICB9XG5cbnRvZ2dsZURyb3Bkb3duKGl0ZW06IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB0aGlzLm9wZW5Ecm9wZG93bklkID0gdGhpcy5vcGVuRHJvcGRvd25JZCA9PT0gaXRlbS5pZCA/IG51bGwgOiBpdGVtLmlkO1xuXG4gIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgIGNvbnN0IGRyb3Bkb3duRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcGRvd24tJyArIGl0ZW0uaWQpO1xuICAgIGlmICghZHJvcGRvd25FbCkgcmV0dXJuO1xuXG4gICAgY29uc3QgcmVjdCA9IGRyb3Bkb3duRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgLy8gSWYgZHJvcGRvd24gYm90dG9tIGV4Y2VlZHMgdmlld3BvcnQsIG9wZW4gdXB3YXJkXG4gICAgaWYgKHJlY3QuYm90dG9tID4gd2luZG93SGVpZ2h0KSB7XG4gICAgICBkcm9wZG93bkVsLnN0eWxlLnRvcCA9IGAtJHtyZWN0LmhlaWdodH1weGA7ICAvLyBvcGVuIGFib3ZlXG4gICAgfSBlbHNlIHtcbiAgICAgIGRyb3Bkb3duRWwuc3R5bGUudG9wID0gYDEwMCVgOyAgLy8gb3BlbiBiZWxvd1xuICAgIH1cbiAgfSk7XG59XG5cblxuLy8gU2VsZWN0IG51bWJlciBmcm9tIGRyb3Bkb3duXG5zZWxlY3ROdW1iZXIoaXRlbTogYW55LCBudW06IG51bWJlciwgZXZlbnQ6IEV2ZW50KSB7XG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBJTVBPUlRBTlQ6IHByZXZlbnRzIHBhcmVudCB0b2dnbGVcblxuICAvLyBTZXQgdGhlIHNlbGVjdGVkIHZhbHVlXG4gIGl0ZW0uc29ydF9vcmRlciA9IG51bTtcblxuICAvLyBDbG9zZSBkcm9wZG93blxuICB0aGlzLm9wZW5Ecm9wZG93bklkID0gbnVsbDtcblxuICAvLyBSZXNldCBzZWFyY2hcbiAgaXRlbS5zZWFyY2hGaWx0ZXIgPSAnJztcbiAgaXRlbS5maWx0ZXJlZE51bWJlcnMgPSBbLi4udGhpcy5udW1iZXJzXTtcblxuICAvLyBSZW9yZGVyIGFycmF5XG4gIHRoaXMub25PcmRlckNoYW5nZShpdGVtKTtcbn1cblxuZmlsdGVyTnVtYmVycyhpdGVtOiBhbnkpIHtcbiAgaWYgKCFpdGVtLnNlYXJjaEZpbHRlcikge1xuICAgIGl0ZW0uZmlsdGVyZWROdW1iZXJzID0gWy4uLnRoaXMubnVtYmVyc107XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSBpdGVtLnNlYXJjaEZpbHRlci50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgaXRlbS5maWx0ZXJlZE51bWJlcnMgPSB0aGlzLm51bWJlcnMuZmlsdGVyKG51bSA9PlxuICAgICAgbnVtLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICApO1xuICB9XG59XG5cbm9uT3JkZXJDaGFuZ2UoaXRlbTogYW55KSB7XG4gIGNvbnN0IHNlbGVjdGVkT3JkZXIgPSBpdGVtLnNvcnRfb3JkZXI7XG4gIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZGVzaWduYXRpb25zLmZpbmRJbmRleChkID0+IGQuaWQgPT09IGl0ZW0uaWQpO1xuXG4gIHRoaXMuZGVzaWduYXRpb25zLnNwbGljZShjdXJyZW50SW5kZXgsIDEpO1xuICB0aGlzLmRlc2lnbmF0aW9ucy5zcGxpY2Uoc2VsZWN0ZWRPcmRlciAtIDEsIDAsIGl0ZW0pO1xuXG4gIHRoaXMuZGVzaWduYXRpb25zLmZvckVhY2goKGQsIGluZGV4KSA9PiAoZC5zb3J0X29yZGVyID0gaW5kZXggKyAxKSk7XG59XG5cbnRyYWNrQnlJZChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcbiAgcmV0dXJuIGl0ZW0uaWQ7XG59XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cIm92ZXJsYXlcIiAqbmdJZj1cImlzT3BlblwiIChjbGljayk9XCJjYW5jZWwoKVwiPjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZHJhd2VyXCIgW2NsYXNzLm9wZW5dPVwiaXNPcGVuXCI+XG5cbiAgICA8IS0tIEhFQURFUiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWhlYWRlclwiPlxuICAgICAgICA8aDQ+VXBkYXRlIERlc2lnbmF0aW9uIEhpZXJhcmNoeTwvaDQ+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj7inJU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQk9EWSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWJvZHlcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNpZ25hdGlvbi1pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGVzaWduYXRpb25zOyB0cmFja0J5OiB0cmFja0J5SWQ7IGxldCBpID0gaW5kZXhcIiBjZGtEcmFnPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctaGFuZGxlXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24+ZHJhZ19pbmRpY2F0b3I8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNpZ25hdGlvbi1uYW1lXCI+e3sgaXRlbS5uYW1lIH19PC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gQ3VzdG9tIFNlbGVjdCAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLXZhbHVlXCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKGl0ZW0sICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5zb3J0X29yZGVyIH19XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hldnJvblwiIFtjbGFzcy5vcGVuXT1cIm9wZW5Ecm9wZG93bklkID09PSBpdGVtLmlkXCI+PG1hdC1pY29uPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duXCIgW2lkXT1cIidkcm9wZG93bi0nICsgaXRlbS5pZFwiICpuZ0lmPVwib3BlbkRyb3Bkb3duSWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgWyhuZ01vZGVsKV09XCJpdGVtLnNlYXJjaEZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJmaWx0ZXJOdW1iZXJzKGl0ZW0pXCIgY2xhc3M9XCJzZWFyY2gtYm94XCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvblwiICpuZ0Zvcj1cImxldCBudW0gb2YgaXRlbS5maWx0ZXJlZE51bWJlcnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE51bWJlcihpdGVtLCBudW0sICRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG51bSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9kaXY+XG5cblxuXG5cblxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBGT09URVIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci1mb290ZXJcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBjYW5jZWxcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBzdWJtaXRcIiAoY2xpY2spPVwic3VibWl0KClcIj5TdWJtaXQ8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJvdmVybGF5LWxvYWRlclwiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjUwXCI+PC9tYXQtc3Bpbm5lcj5cbjwvZGl2PiJdfQ==
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWRlc2lnbmF0aW9uLWhpZXJhcmNoeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJ5L3N1bmJpcmQtY2IvY2JwLWFpL3NyYy9saWIvY29tcG9uZW50cy91cGRhdGUtZGVzaWduYXRpb24taGllcmFyY2h5L3VwZGF0ZS1kZXNpZ25hdGlvbi1oaWVyYXJjaHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyeS9zdW5iaXJkLWNiL2NicC1haS9zcmMvbGliL2NvbXBvbmVudHMvdXBkYXRlLWRlc2lnbmF0aW9uLWhpZXJhcmNoeS91cGRhdGUtZGVzaWduYXRpb24taGllcmFyY2h5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLE1BQU0sRUFFTix1QkFBdUIsRUFDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7O0FBaUJ0RSxNQUFNLE9BQU8sbUNBQW1DO0lBYTlDLFlBQW9CLElBQWdCLEVBQVMsYUFBNEIsRUFBVSxRQUFxQjtRQUFwRixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBWnhHLG1CQUFjLEdBQWtCLElBQUksQ0FBQztRQUNyQyxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBR2QsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFFekIsWUFBTyxHQUFHLEtBQUssQ0FBQTtRQUNMLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU5QyxZQUFPLEdBQWEsRUFBRSxDQUFDO0lBRXNGLENBQUM7SUFFOUcsUUFBUTtRQUdOLElBQUksQ0FB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RkRqQ08sbUNBQW1DO2tCQU4vQyxTQUFTOytCQUNFLGtDQUFrQyxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTTt1SkFVckMsV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvc2hhcmVkL3NlcnZpY2VzL3NoYXJlZC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcblxuZXhwb3J0IGludGVyZmFjZSBEZXNpZ25hdGlvbiB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc29ydF9vcmRlcjogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXBkYXRlLWRlc2lnbmF0aW9uLWhpZXJhcmNoeScsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGRhdGUtZGVzaWduYXRpb24taGllcmFyY2h5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBkYXRlLWRlc2lnbmF0aW9uLWhpZXJhcmNoeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVcGRhdGVEZXNpZ25hdGlvbkhpZXJhcmNoeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG9wZW5Ecm9wZG93bklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgaXNPcGVuID0gdHJ1ZTtcbiAgc3RhdGVfY2VudGVyX2lkITogc3RyaW5nO1xuICBkZXBhcnRtZW50X2lkITogc3RyaW5nO1xuICBkZXNpZ25hdGlvbnM6IGFueVtdID0gW107XG4gIHJvbGVfbWFwcGluZ19nZW5lcmF0aW9uOiBhbnlcbiAgbG9hZGluZyA9IGZhbHNlXG4gIEBPdXRwdXQoKSBjbG9zZURyYXdlciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIG51bWJlcnM6IG51bWJlcltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwdWJsaWMgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSwgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuXG4gICAgdGhpcy5yZWZyZXNoUm9sZU1hcHBpbmdEYXRhKClcblxuXG5cbiAgICBjb25zb2xlLmxvZygndGhpcy5kZXNpZ25hdGlvbnMtLScsIHRoaXMuZGVzaWduYXRpb25zKVxuXG4gIH1cblxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxEZXNpZ25hdGlvbltdPikge1xuICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmRlc2lnbmF0aW9ucywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcblxuICAgIC8vIFVwZGF0ZSBzb3J0X29yZGVyIGJhc2VkIG9uIHRoZSBuZXcgYXJyYXkgaW5kZXhcbiAgICB0aGlzLmRlc2lnbmF0aW9ucy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaXRlbS5zb3J0X29yZGVyID0gaW5kZXggKyAxO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gb25PcmRlckNoYW5nZShpdGVtOiBhbnkpIHtcbiAgLy8gICBjb25zdCBzZWxlY3RlZE9yZGVyID0gaXRlbS5zb3J0X29yZGVyO1xuICAvLyAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuZGVzaWduYXRpb25zLmZpbmRJbmRleChkID0+IGQuaWQgPT09IGl0ZW0uaWQpO1xuXG4gIC8vICAgdGhpcy5kZXNpZ25hdGlvbnMuc3BsaWNlKGN1cnJlbnRJbmRleCwgMSk7XG4gIC8vICAgdGhpcy5kZXNpZ25hdGlvbnMuc3BsaWNlKHNlbGVjdGVkT3JkZXIgLSAxLCAwLCBpdGVtKTtcblxuICAvLyAgIHRoaXMuZGVzaWduYXRpb25zLmZvckVhY2goKGQsIGluZGV4KSA9PiBkLnNvcnRfb3JkZXIgPSBpbmRleCArIDEpO1xuICAvLyB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTb3J0T3JkZXJCeUluZGV4KCkge1xuICAgIHRoaXMuZGVzaWduYXRpb25zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpdGVtLnNvcnRfb3JkZXIgPSBpbmRleCArIDE7XG4gICAgfSk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgbGV0IHBheWxvYWQgPSB7XG4gICAgICBkZXNpZ25hdGlvbnM6IHRoaXMuZGVzaWduYXRpb25zLm1hcChkID0+ICh7XG4gICAgICAgIGlkOiBkLmlkLFxuICAgICAgICBzb3J0X29yZGVyOiBkLnNvcnRfb3JkZXJcbiAgICAgIH0pKVxuICAgIH07XG5cbiAgICBpZiAodHlwZW9mIHRoaXMuZGVwYXJ0bWVudF9pZCA9PT0gJ3N0cmluZycgJiYgdGhpcy5kZXBhcnRtZW50X2lkKSB7XG4gICAgICBwYXlsb2FkWydkZXBhcnRtZW50X2lkJ10gPSB0aGlzLmRlcGFydG1lbnRfaWRcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RhdGVfY2VudGVyX2lkKSB7XG4gICAgICBwYXlsb2FkWydzdGF0ZV9jZW50ZXJfaWQnXSA9IHRoaXMuc3RhdGVfY2VudGVyX2lkXG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ3BheWxvYWQtLScsIHBheWxvYWQpXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgIC8vIEV4YW1wbGUgQVBJIGNhbGxcbiAgICB0aGlzLnNoYXJlZFNlcnZpY2UudXBkYXRlRGVzaWduYXRpb25IaWVyYXJjaHkocGF5bG9hZClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UudXBkYXRlRGVzaWduYXRpb25IaWVyYXJjaHlTdWJqZWN0Lm5leHQodHJ1ZSlcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWQuZW1pdChwYXlsb2FkKTtcbiAgICAgICAgdGhpcy5jbG9zZURyYXdlci5lbWl0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuc2hhcmVkU2VydmljZS51cGRhdGVEZXNpZ25hdGlvbkhpZXJhcmNoeShwYXlsb2FkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAvLyBTdWNjZXNzIGhhbmRsaW5nXG4gICAgICAgIGNvbnNvbGUubG9nKCdTdWNjZXNzOicsIHJlcyk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS51cGRhdGVEZXNpZ25hdGlvbkhpZXJhcmNoeVN1YmplY3QubmV4dCh0cnVlKVxuICAgICAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHBheWxvYWQpO1xuICAgICAgICB0aGlzLmNsb3NlRHJhd2VyLmVtaXQoKTtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKCdEZXNpZ25hdGlvbiBIaWVyYXJjaHkgU2F2ZWQgU3VjY2Vzc2Z1bGx5JywgJ1gnLCB7XG4gICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydzbmFja2Jhci1zdWNjZXNzJ11cbiAgICAgICAgfSk7XG4gICAgICAgIC8vdGhpcy5zdWNjZXNzUm9sZU1hcHBpbmcuZW1pdCh0aGlzLnJvbGVNYXBwaW5nRm9ybSlcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdlcnJvcicsIGVycm9yKVxuICAgICAgICAvLyBIYW5kbGUgNDA5IENvbmZsaWN0IGhlcmVcbiAgICAgICAgLy8gYWxlcnQoJ0NvbmZsaWN0IGRldGVjdGVkOiBUaGUgcmVzb3VyY2UgYWxyZWFkeSBleGlzdHMgb3IgYWN0aW9uIGNvbmZsaWN0cy4nKTtcbiAgICAgICAgLy90aGlzLmdldFxuICAgICAgICAvLyBPciB5b3UgY2FuIHNldCBhIFVJIGVycm9yIG1lc3NhZ2UgdmFyaWFibGVcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKGVycm9yPy5lcnJvcj8uZGV0YWlsLCAnWCcsIHtcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ3NuYWNrYmFyLWVycm9yJ11cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgICAgIC8vdGhpcy5hbHJlYWR5QXZhaWxhYmxlUm9sZU1hcHBpbmcuZW1pdCh0aGlzLnJvbGVNYXBwaW5nRm9ybSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmlzT3BlbiA9IGZhbHNlXG4gICAgdGhpcy5jbG9zZURyYXdlci5lbWl0KCk7XG4gIH1cblxuICByZWZyZXNoUm9sZU1hcHBpbmdEYXRhKCkge1xuICAgIGNvbnNvbGUubG9nKCdSZWZyZXNoaW5nIHJvbGUgbWFwcGluZyBkYXRhLi4uJyk7XG4gICAgaWYgKHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmogJiYgdGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5taW5pc3RyeSAmJiB0aGlzLnNoYXJlZFNlcnZpY2UuY2JwUGxhbkZpbmFsT2JqLm1pbmlzdHJ5LmlkZW50aWZpZXIpIHtcbiAgICAgIGNvbnN0IG1pbmlzdHJ5VHlwZSA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmoubWluaXN0cnkuc2JPcmdUeXBlO1xuICAgICAgY29uc3QgbWluaXN0cnlJZCA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmoubWluaXN0cnkuaWRlbnRpZmllcjtcblxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgaWYgKG1pbmlzdHJ5VHlwZSA9PT0gJ21pbmlzdHJ5Jykge1xuICAgICAgICBpZiAodGhpcy5zaGFyZWRTZXJ2aWNlLmNicFBsYW5GaW5hbE9iai5kZXBhcnRtZW50cykge1xuICAgICAgICAgIGNvbnN0IGRlcGFydG1lbnRJZCA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudHM7XG4gICAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldFJvbGVNYXBwaW5nQnlTdGF0ZUNlbnRlckFuZERlcGFydG1lbnQobWluaXN0cnlJZCwgZGVwYXJ0bWVudElkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1N0YXRlIHJvbGUgbWFwcGluZyBkYXRhIHJlZnJlc2hlZDonLCByZXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHJlZnJlc2hpbmcgc3RhdGUgcm9sZSBtYXBwaW5nIGRhdGE6JywgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5nZXRSb2xlTWFwcGluZ0J5U3RhdGVDZW50ZXIobWluaXN0cnlJZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDZW50ZXIgcm9sZSBtYXBwaW5nIGRhdGEgcmVmcmVzaGVkOicsIHJlcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVmcmVzaGluZyBjZW50ZXIgcm9sZSBtYXBwaW5nIGRhdGE6JywgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAobWluaXN0cnlUeXBlID09PSAnc3RhdGUnKSB7XG4gICAgICAgIGNvbnN0IGRlcGFydG1lbnRJZCA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmouZGVwYXJ0bWVudHM7XG4gICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5nZXRSb2xlTWFwcGluZ0J5U3RhdGVDZW50ZXJBbmREZXBhcnRtZW50KG1pbmlzdHJ5SWQsIGRlcGFydG1lbnRJZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdTdGF0ZSByb2xlIG1hcHBpbmcgZGF0YSByZWZyZXNoZWQ6JywgcmVzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVmcmVzaGluZyBzdGF0ZSByb2xlIG1hcHBpbmcgZGF0YTonLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGNicFBsYW5GaW5hbE9iaiA9IHRoaXMuc2hhcmVkU2VydmljZS5jYnBQbGFuRmluYWxPYmpcbiAgICBjb25zb2xlLmxvZygnY2JwUGxhbkZpbmFsT2JqLS0nLCBjYnBQbGFuRmluYWxPYmopXG4gICAgaWYgKGNicFBsYW5GaW5hbE9iaj8uZGVwYXJ0bWVudHMpIHtcbiAgICAgIHRoaXMuZGVwYXJ0bWVudF9pZCA9IGNicFBsYW5GaW5hbE9iaj8uZGVwYXJ0bWVudHNcbiAgICB9XG4gICAgaWYgKGNicFBsYW5GaW5hbE9iaj8ubWluaXN0cnkgJiYgY2JwUGxhbkZpbmFsT2JqPy5taW5pc3RyeS5pZGVudGlmaWVyKSB7XG4gICAgICB0aGlzLnN0YXRlX2NlbnRlcl9pZCA9IGNicFBsYW5GaW5hbE9iaj8ubWluaXN0cnkuaWRlbnRpZmllclxuICAgIH1cblxuICAgIHRoaXMucm9sZV9tYXBwaW5nX2dlbmVyYXRpb24gPSBjYnBQbGFuRmluYWxPYmo/LnJvbGVfbWFwcGluZ19nZW5lcmF0aW9uIHx8ICdbXSc7XG4gICAgLy8gTWFwIHJvbGVfbWFwcGluZ19nZW5lcmF0aW9uIHRvIGludGVybmFsIGRlc2lnbmF0aW9ucyBhcnJheVxuICAgIHRoaXMubnVtYmVycyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMucm9sZV9tYXBwaW5nX2dlbmVyYXRpb24ubGVuZ3RoIH0sIChfLCBpKSA9PiBpICsgMSk7XG4gICAgdGhpcy5kZXNpZ25hdGlvbnMgPSB0aGlzLnJvbGVfbWFwcGluZ19nZW5lcmF0aW9uLm1hcCgocjogYW55LCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgaWQ6IHIuaWQsXG4gICAgICBuYW1lOiByLmRlc2lnbmF0aW9uX25hbWUsXG4gICAgICBzb3J0X29yZGVyOiByLnNvcnRfb3JkZXIgfHwgaW5kZXggKyAxLFxuICAgICAgc2VhcmNoRmlsdGVyOiAnJywgICAgICAgICAgICAgIC8vIFNlYXJjaCBpbnB1dCB2YWx1ZVxuICAgICAgZmlsdGVyZWROdW1iZXJzOiBbLi4udGhpcy5udW1iZXJzXSAvLyBOdW1iZXJzIHRvIGRpc3BsYXkgaW4gc2VsZWN0XG4gICAgfSkpO1xuXG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgIHRoaXMubnVtYmVycyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuZGVzaWduYXRpb25zLmxlbmd0aCB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgIC8vIFNvcnQgYnkgc29ydF9vcmRlclxuICAgIHRoaXMuZGVzaWduYXRpb25zLnNvcnQoKGEsIGIpID0+IGEuc29ydF9vcmRlciAtIGIuc29ydF9vcmRlcik7XG4gICAgdGhpcy51cGRhdGVTb3J0T3JkZXJCeUluZGV4KCk7XG4gIH1cblxudG9nZ2xlRHJvcGRvd24oaXRlbTogYW55LCBldmVudDogRXZlbnQpIHtcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIHRoaXMub3BlbkRyb3Bkb3duSWQgPSB0aGlzLm9wZW5Ecm9wZG93bklkID09PSBpdGVtLmlkID8gbnVsbCA6IGl0ZW0uaWQ7XG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgY29uc3QgZHJvcGRvd25FbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkcm9wZG93bi0nICsgaXRlbS5pZCk7XG4gICAgaWYgKCFkcm9wZG93bkVsKSByZXR1cm47XG5cbiAgICBjb25zdCByZWN0ID0gZHJvcGRvd25FbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB3aW5kb3dIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7XG5cbiAgICAvLyBJZiBkcm9wZG93biBib3R0b20gZXhjZWVkcyB2aWV3cG9ydCwgb3BlbiB1cHdhcmRcbiAgICBpZiAocmVjdC5ib3R0b20gPiB3aW5kb3dIZWlnaHQpIHtcbiAgICAgIGRyb3Bkb3duRWwuc3R5bGUudG9wID0gYC0ke3JlY3QuaGVpZ2h0fXB4YDsgIC8vIG9wZW4gYWJvdmVcbiAgICB9IGVsc2Uge1xuICAgICAgZHJvcGRvd25FbC5zdHlsZS50b3AgPSBgMTAwJWA7ICAvLyBvcGVuIGJlbG93XG4gICAgfVxuICB9KTtcbn1cblxuXG4vLyBTZWxlY3QgbnVtYmVyIGZyb20gZHJvcGRvd25cbnNlbGVjdE51bWJlcihpdGVtOiBhbnksIG51bTogbnVtYmVyLCBldmVudDogRXZlbnQpIHtcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIElNUE9SVEFOVDogcHJldmVudHMgcGFyZW50IHRvZ2dsZVxuXG4gIC8vIFNldCB0aGUgc2VsZWN0ZWQgdmFsdWVcbiAgaXRlbS5zb3J0X29yZGVyID0gbnVtO1xuXG4gIC8vIENsb3NlIGRyb3Bkb3duXG4gIHRoaXMub3BlbkRyb3Bkb3duSWQgPSBudWxsO1xuXG4gIC8vIFJlc2V0IHNlYXJjaFxuICBpdGVtLnNlYXJjaEZpbHRlciA9ICcnO1xuICBpdGVtLmZpbHRlcmVkTnVtYmVycyA9IFsuLi50aGlzLm51bWJlcnNdO1xuXG4gIC8vIFJlb3JkZXIgYXJyYXlcbiAgdGhpcy5vbk9yZGVyQ2hhbmdlKGl0ZW0pO1xufVxuXG5maWx0ZXJOdW1iZXJzKGl0ZW06IGFueSkge1xuICBpZiAoIWl0ZW0uc2VhcmNoRmlsdGVyKSB7XG4gICAgaXRlbS5maWx0ZXJlZE51bWJlcnMgPSBbLi4udGhpcy5udW1iZXJzXTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGl0ZW0uc2VhcmNoRmlsdGVyLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICBpdGVtLmZpbHRlcmVkTnVtYmVycyA9IHRoaXMubnVtYmVycy5maWx0ZXIobnVtID0+XG4gICAgICBudW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKVxuICAgICk7XG4gIH1cbn1cblxub25PcmRlckNoYW5nZShpdGVtOiBhbnkpIHtcbiAgY29uc3Qgc2VsZWN0ZWRPcmRlciA9IGl0ZW0uc29ydF9vcmRlcjtcbiAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5kZXNpZ25hdGlvbnMuZmluZEluZGV4KGQgPT4gZC5pZCA9PT0gaXRlbS5pZCk7XG5cbiAgdGhpcy5kZXNpZ25hdGlvbnMuc3BsaWNlKGN1cnJlbnRJbmRleCwgMSk7XG4gIHRoaXMuZGVzaWduYXRpb25zLnNwbGljZShzZWxlY3RlZE9yZGVyIC0gMSwgMCwgaXRlbSk7XG5cbiAgdGhpcy5kZXNpZ25hdGlvbnMuZm9yRWFjaCgoZCwgaW5kZXgpID0+IChkLnNvcnRfb3JkZXIgPSBpbmRleCArIDEpKTtcbn1cblxudHJhY2tCeUlkKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xuICByZXR1cm4gaXRlbS5pZDtcbn1cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwib3ZlcmxheVwiICpuZ0lmPVwiaXNPcGVuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+PC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkcmF3ZXJcIiBbY2xhc3Mub3Blbl09XCJpc09wZW5cIj5cblxuICAgIDwhLS0gSEVBREVSIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItaGVhZGVyXCI+XG4gICAgICAgIDxoND5VcGRhdGUgRGVzaWduYXRpb24gSGllcmFyY2h5PC9oND5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPuKclTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBCT0RZIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItYm9keVwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2lnbmF0aW9uLWl0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkZXNpZ25hdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlJZDsgbGV0IGkgPSBpbmRleFwiIGNka0RyYWc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1oYW5kbGVcIiBjZGtEcmFnSGFuZGxlPlxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2lnbmF0aW9uLW5hbWVcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cblxuICAgICAgICAgICAgPCEtLSBDdXN0b20gU2VsZWN0IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtdmFsdWVcIiAoY2xpY2spPVwidG9nZ2xlRHJvcGRvd24oaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnNvcnRfb3JkZXIgfX1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGV2cm9uXCIgW2NsYXNzLm9wZW5dPVwib3BlbkRyb3Bkb3duSWQgPT09IGl0ZW0uaWRcIj48bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBbaWRdPVwiJ2Ryb3Bkb3duLScgKyBpdGVtLmlkXCIgKm5nSWY9XCJvcGVuRHJvcGRvd25JZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIiBbKG5nTW9kZWwpXT1cIml0ZW0uc2VhcmNoRmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImZpbHRlck51bWJlcnMoaXRlbSlcIiBjbGFzcz1cInNlYXJjaC1ib3hcIj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uXCIgKm5nRm9yPVwibGV0IG51bSBvZiBpdGVtLmZpbHRlcmVkTnVtYmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TnVtYmVyKGl0ZW0sIG51bSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbnVtIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cblxuXG5cblxuXG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEZPT1RFUiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGNhbmNlbFwiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIHN1Ym1pdFwiIChjbGljayk9XCJzdWJtaXQoKVwiPlN1Ym1pdDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm92ZXJsYXktbG9hZGVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiNTBcIj48L21hdC1zcGlubmVyPlxuPC9kaXY+Il19
|