imm-element-ui 1.7.3 → 1.7.5
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/am/am.component.mjs +3 -2
- package/esm2022/lib/crumb-action/crumb-action.component.mjs +9 -9
- package/fesm2022/imm-element-ui.mjs +10 -9
- package/fesm2022/imm-element-ui.mjs.map +1 -1
- package/lib/am/am.component.d.ts +6 -2
- package/lib/grid/grid/grid.component.d.ts +2 -2
- package/lib/steps/steps.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -353,7 +353,8 @@ export class AmComponent {
|
|
|
353
353
|
const data = new Blob([response], {
|
|
354
354
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
|
|
355
355
|
});
|
|
356
|
-
const fileName = param.modelName + '.xlsx';
|
|
356
|
+
// const fileName = param.modelName + '.xlsx';
|
|
357
|
+
const fileName = `${param?.fileName ? param.fileName : param.modelName}.xlsx`;
|
|
357
358
|
FileSaver.saveAs(data, fileName);
|
|
358
359
|
return response;
|
|
359
360
|
}), finalize(() => {
|
|
@@ -527,4 +528,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
527
528
|
providers: [MessageService, ConfirmationService],
|
|
528
529
|
}]
|
|
529
530
|
}], ctorParameters: () => [] });
|
|
530
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9hbS9hbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBd0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQW9JdEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBUW5CLE1BQU0sT0FBTyxXQUFXO0lBdUN2QjtRQXRDQSxRQUFRO1FBQ1IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixPQUFPO1FBQ1AsT0FBRSxHQUFXLENBQUMsQ0FBQztRQUNmLE1BQU07UUFDTixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU07UUFDTixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakIsSUFBSTtRQUNKLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQzVCLElBQUk7UUFDSixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFDbEMsTUFBTTtRQUNOLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUM5QixRQUFRO1FBQ1IsY0FBUyxHQUFX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LENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDeEQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQzsrR0ExaUJXLFdBQVc7bUdBQVgsV0FBVyxxREFGWixDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQywwQkFEdEMsRUFBRTs7NEZBR0EsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFFO29CQUNaLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbmFsaXplLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBGb3JtT3B0aW9ucyB9IGZyb20gJy4uL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlYXJjaE9wdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9sb2FkaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtIHtcclxuXHRpZD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFjZU1lc3NhZ2Uge1xyXG5cdGlkPzogbnVtYmVyO1xyXG5cdHBpZD86IG51bWJlcjsgLy8g6KGo5LitaWRcclxuXHRmdW5jPzogc3RyaW5nO1xyXG5cdG9wZXJhdG9yPzogc3RyaW5nO1xyXG5cdGNvbnRlbnQ/OiBzdHJpbmc7IC8vIOS4u+ihqOWPmOabtOaJgOacieWtl+auteaLvOaOpeS4gOWdl1xyXG5cdHN1YkNvbnRlbnQ/OiBzdHJpbmc7IC8vIOWtkOihqOWPmOabtOaLvOaOpeS4gOi1t1xyXG5cdGNyZWF0ZWRBdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEV4Y2VsIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0b3JnSWQ/OiBudW1iZXI7XHJcblx0b3JnTmFtZT86IHN0cmluZztcclxuXHRvcmdJZEZlaWxkPzogc3RyaW5nO1xyXG5cdG9yZ05hbWVGZWlsZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnQge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRhZGREYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR1cGREYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRzdWJzZXJ0PzogU3ViVXBzZXJ0W107XHJcblx0bG9nTW9kZWw/OiBzdHJpbmc7XHJcblx0bG9nPzogVHJhY2VNZXNzYWdlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1YlVwc2VydCB7XHJcblx0c3ViTW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGZrPzogc3RyaW5nO1xyXG5cdHN1YkRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XHJcblx0bWFwdG1wPzogTWFwPG51bWJlciwgYW55PjtcclxuXHRsb2d0bXA/OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVhbCB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGRhdGE/OiBhbnk7XHJcbn1cclxuLy8g5pu05paw54m55a6a5a2X5q61XHJcbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGUge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRsb2dNb2RlbD86IHN0cmluZztcclxuXHRsb2c/OiBUcmFjZU1lc3NhZ2U7XHJcblx0dHJhbnNhY3Rpb24/OiBib29sZWFuO1xyXG59XHJcbi8vIOWIoOmZpOaOpeWPo+WjsOaYjlxyXG5leHBvcnQgaW50ZXJmYWNlIFJlbW92ZSB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGlkcz86IG51bWJlcltdO1xyXG5cdGRhdGE/OiBhbnk7XHJcblx0bG9nTW9kZWw/OiBzdHJpbmc7XHJcblx0bG9nPzogVHJhY2VNZXNzYWdlO1xyXG5cdHRyYW5zYWN0aW9uPzogYm9vbGVhbjtcclxufVxyXG4vLyDojrflj5bljZXmnaHmlbDmja7or6bmg4VcclxuZXhwb3J0IGludGVyZmFjZSBHZXQge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHR1c2VyQ29kZT86IHN0cmluZztcclxuXHRvcmdGaWVsZD86IHN0cmluZztcclxuXHRpZD86IG51bWJlcjtcclxuXHRwcmVsb2Fkcz86IHN0cmluZ1tdOyAvLyDogZTooajmn6Xor6LooajlkI3np7DvvIzpnIDlr7nlupTlkI7nq69zdHJ1Y3RcclxuXHRmaXRlclByZWxvYWRzPzogUHJlbG9hZFtdOyAvLyDlj6rog73liqDkuIDlsYIg57G75Ly8ICdtb2R1bGUgPScgbW9kdWxlXHJcblx0Z2V0TG9nPzogYm9vbGVhbjsgLy/ojrflj5bml6Xlv5dcclxuXHRkYXRhPzogYW55OyAvL+WQjuerr+i/lOWbnueahHJlc3BvbnNlXHJcblx0Y29sdW1uRmlsdGVycz86IENvbHVtbkZpbHRlcltdOyAvL+i/h+a7pOeahOWIl1xyXG5cdGZvcmVpZ25LZXk/OiBzdHJpbmc7IC8v55u05o6l5o+S5YWl5a2Q6KGo6ZyA6KaB5Lyg6YCS5aSW6ZSu5a2X5q615Lul5Y+K5aSW6ZSu5YC8XHJcblx0W3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQcmVsb2FkIHtcclxuXHRmZWlsZE5hbWU/OiBzdHJpbmc7XHJcblx0Zml0ZXJzPzogQ29sdW1uRmlsdGVyW107XHJcblx0c29ydHM/OiBTb3J0W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5GaWx0ZXIge1xyXG5cdGNvbHVtbkZpZWxkPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zml0ZXI/OiBhbnk7XHJcblx0ZnJvbT86IHN0cmluZyB8IG51bWJlcjtcclxuXHR0bz86IHN0cmluZyB8IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTb3J0IHtcclxuXHRmaWVsZD86IHN0cmluZztcclxuXHRpc0FzYz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0dXNlckNvZGU/OiBzdHJpbmc7XHJcblx0b3JnRmllbGQ/OiBzdHJpbmc7XHJcblx0Y291bnQ/OiBib29sZWFuOyAvL+aYr+WQpui/lOWbnnRvdGFsTnVtXHJcblx0cHJlbG9hZHM/OiBzdHJpbmdbXTtcclxuXHRmaXRlclByZWxvYWRzPzogUHJlbG9hZFtdO1xyXG5cdG1vZGVsPzogYW55O1xyXG5cdGRhdGE/OiBhbnk7XHJcblx0Y29sdW1uRmlsdGVycz86IENvbHVtbkZpbHRlcltdOyAvL+i/h+a7pOeahOWIl1xyXG5cdHNvcnRzPzogU29ydFtdO1xyXG5cdGdyb3Vwcz86IHN0cmluZ1tdO1xyXG5cdHJlYWQ/OiBzdHJpbmdbXTsgLy9yZWFkIOaMh+WumuafpeivoueJueWumuWtl+autVxyXG5cdGZ1bmNzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgLy/pgI/op4booajlkI7mnJ/opoHnlKhcclxuXHRvZmZzZXQ/OiBudW1iZXI7XHJcblx0bGltaXQ/OiBudW1iZXI7XHJcblx0dG90YWxOdW0/OiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUb2tlbkluZm8ge1xyXG5cdHRva2VuPzogc3RyaW5nO1xyXG5cdGV4cGlyZWQ/OiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBhbVdlYiB7XHJcblx0aWQ/OiBudW1iZXI7XHJcblx0Y29kZT86IHN0cmluZztcclxuXHR0eXBlPzogc3RyaW5nO1xyXG5cdG5hbWU/OiBzdHJpbmc7XHJcblx0YXBwSWQ/OiBudW1iZXI7XHJcblx0Y29udGVudD86IHN0cmluZztcclxuXHRjcmVhdGVkQXQ/OiBzdHJpbmc7XHJcblx0dXBkYXRlZEF0Pzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUmZkIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0bGFiZWxGaWVsZD86IHN0cmluZztcclxuXHR2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG5cdHdoZXJlRmllbGQ/OiBzdHJpbmc7XHJcblx0dHlwZT86IHN0cmluZztcclxuXHRmaXRlcj86IGFueTtcclxuXHRkYXRhPzogYW55O1xyXG59XHJcbmNvbnN0IGFwaVBhdGggPSAnJztcclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtYW0nLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW10sXHJcblx0dGVtcGxhdGU6ICcnLFxyXG5cdHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlLCBDb25maXJtYXRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFtQ29tcG9uZW50IHtcclxuXHQvL+aYr+WQpuaPkOS6pOaXpeW/l1xyXG5cdGlzTG9nOiBib29sZWFuID0gZmFsc2U7XHJcblx0Ly/kuLvmlbDmja5pZFxyXG5cdGlkOiBudW1iZXIgPSAwO1xyXG5cdC8v5Li76KGo5qih5Z6LXHJcblx0bW9kZWxOYW1lOiBzdHJpbmcgPSAnJztcclxuXHQvL0lE5Y+C5pWwXHJcblx0cGFyYW06IFBhcmFtID0ge307XHJcblx0ZmlkOiBzdHJpbmcgPSAnJztcclxuXHQvL+WvvOWFpVxyXG5cdGltcG9ydFBybTogSW1wb3J0RXhjZWwgPSB7fTtcclxuXHQvL+aQnOe0oFxyXG5cdHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMgPSB7fTtcclxuXHQvL2Zvcm1cclxuXHRmb3JtT3B0aW9uczogRm9ybU9wdGlvbnMgPSB7fTtcclxuXHQvL+WIm+W7uuaIluiAheabtOaWsFxyXG5cdHVwc2VydFBybTogVXBzZXJ0ID0geyB1cGREYXRhOiB7fSwgYWRkRGF0YToge30sIHN1YnNlcnQ6IFtdLCBsb2c6IHt9IH07XHJcblx0Ly/lpITnkIZcclxuXHRkZWFsUHJtOiBEZWFsID0ge307XHJcblx0Ly9tYXDmm7TmlrBcclxuXHR3cml0ZVBybTogV3JpdGUgPSB7fTtcclxuXHQvL+WIoOmZpFxyXG5cdHJlbW92ZVBybTogUmVtb3ZlID0ge307XHJcblx0Ly/ojrflj5bkuIDmnaHmlbDmja5cclxuXHRnZXRQcm06IEdldCA9IHsgZGF0YToge30gfTtcclxuXHQvL+afpeivouadoeS7tlxyXG5cdGZpbHRlcjogQ29sdW1uRmlsdGVyID0ge307XHJcblx0Ly/mn6Xor6LliJfooajmlbDmja5cclxuXHRzZWFyY2hQcm06IFNlYXJjaCA9IHt9O1xyXG5cdGV4cG9ydFBybTogU2VhcmNoID0ge307XHJcblx0dGFtcGxhdGU6IERlYWwgPSB7fTtcclxuXHRodHRwOiBIdHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG5cdG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSA9IGluamVjdChNZXNzYWdlU2VydmljZSk7XHJcblx0Y29uZmlybWF0aW9uU2VydmljZSA9IGluamVjdChDb25maXJtYXRpb25TZXJ2aWNlKTtcclxuXHRsb2FkaW5nU2VydmljZSA9IGluamVjdChMb2FkaW5nU2VydmljZSk7XHJcblx0cm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuXHRyb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKVxyXG5cdGNvbnN0cnVjdG9yKCkge31cclxuXHJcblx0cmZkKHBybTogUmZkKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ1JGRCcsIHBybSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0d2ViZ2V0KHBhcmFtOiBhbVdlYik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICcvZ29hbS9hcGkvd2ViZ2V0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHQvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHR3ZWJzYXZlKHBhcmFtOiBhbVdlYik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICcvZ29hbS9hcGkvd2Vic2F2ZScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0d2ViZGVsKHBhcmFtOiBhbVdlYik6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICd3ZWJkZWwnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHVwc2VydChwcm0/OiBhbnksIGNiPzogRnVuY3Rpb24pIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfdXBzZXJ0KHBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRjYiAmJiBjYihyZXMpO1xyXG5cdFx0XHRcdHRoaXMucmVzZXRQcm0oJ3Vwc2VydCcpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIGNvbnN0IHBtOiBVcHNlcnQgPSB0aGlzLnVwc2VydHMoKVxyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnMT09PT0nLHBtKVxyXG5cdFx0XHR0aGlzLndlYl91cHNlcnQodGhpcy51cHNlcnRQcm0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0Y2IgJiYgY2IocmVzKTtcclxuXHRcdFx0XHR0aGlzLnJlc2V0UHJtKCd1cHNlcnQnKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8v5YWo6YOo5Yib5bu65oiW5pu05paw77yM5qC55o2uSUTliKTmlq1cclxuXHR3ZWJfdXBzZXJ0KHBhcmFtOiBVcHNlcnQpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0aWYgKCFwYXJhbS5tb2RlbE5hbWUpIHtcclxuXHRcdFx0cGFyYW0gPSB7IG1vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsIC4uLnBhcmFtIH07XHJcblx0XHR9XHJcblx0XHRsZXQgYWRkRGF0YTogYW55ID0gcGFyYW0uYWRkRGF0YTtcclxuXHRcdGlmIChPYmplY3Qua2V5cyhhZGREYXRhKS5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRkZWxldGUgcGFyYW0uYWRkRGF0YTtcclxuXHRcdH1cclxuXHRcdGxldCB1cGREYXRhOiBhbnkgPSBwYXJhbS51cGREYXRhO1xyXG5cdFx0Y29uc29sZS5sb2coJ3BhcmFtLS0tLScsIHBhcmFtLnVwZERhdGEpO1xyXG5cdFx0aWYgKE9iamVjdC5rZXlzKHVwZERhdGEpLmxlbmd0aCA9PSAwKSB7XHJcblx0XHRcdGRlbGV0ZSBwYXJhbS51cGREYXRhO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cGFyYW0udXBkRGF0YSFbJ2lkJ10gPSB0aGlzLmlkO1xyXG5cdFx0XHRwYXJhbS5sb2chLnBpZCA9IHRoaXMuaWQ7XHJcblx0XHR9XHJcblx0XHRpZiAoIXBhcmFtPy5hZGREYXRhICYmICFwYXJhbS51cGREYXRhKSB7XHJcblx0XHRcdHBhcmFtID0geyB1cGREYXRhOiB7IGlkOiB0aGlzLmlkIH0sIC4uLnBhcmFtIH07XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZygndGhpcy5pc0xvZy0tLS0nLCB0aGlzLmlzTG9nKTtcclxuXHRcdGlmICghdGhpcy5pc0xvZykge1xyXG5cdFx0XHRkZWxldGUgcGFyYW0ubG9nO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0bGV0IGxnOiBzdHJpbmcgPSAnJztcclxuXHRcdFx0Ly8gQHRzLWlnbm9yZVxyXG5cdFx0XHRjb25zdCBpc0kxOG4gPSB3aW5kb3cuYXBwSXNJMThuXHJcblx0XHRcdGxldCBjcmVhdGVTdHIgPSBpc0kxOG4gPyB0aGlzLmkxOG4uZmFueWkoJ2FwcC5jcmVhdGUnKSA6J+aWsOW7uidcclxuXHRcdFx0cGFyYW0uc3Vic2VydD8uZm9yRWFjaCgodikgPT4ge1xyXG5cdFx0XHRcdHYubG9ndG1wPy5mb3JFYWNoKCh2LCBrKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodi5pZCA9PT0gMCkge1xyXG5cdFx0XHRcdFx0XHRsZyArPSBgJHtjcmVhdGVTdHJ977yaIC0+ICR7di5uZXdWYWx1ZX07YFxyXG5cdFx0XHRcdFx0XHQvLyBsZyArPSAn5paw5bu677yaIC0+ICcgKyB2Lm5ld1ZhbHVlICsgJzsnO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0bGcgKz0gJ1snICsgdi5pZCArICctJyArIHYubGFiZWwgKyAnXSAnICsgKHYub2xkVmFsdWUgfHwgJycpICsgJyAtPiAnICsgKHYubmV3VmFsdWUgfHwgJycpICsgJzsnO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0cGFyYW0gPSB7IC4uLnBhcmFtLCBsb2c6IHsgLi4ucGFyYW0ubG9nLCBzdWJDb250ZW50OiBsZyB9IH07XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZygncGFyYW09PT09JywgcGFyYW0pO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAndXBzZXJ0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChwYXJhbS5sb2cpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbS5sb2c7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v6Ieq5aSE55CG6YC76L6RXHJcblx0ZGVhbChwcm0/OiBEZWFsKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2RlYWwocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2RlYWwodGhpcy5kZWFsUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2RlYWwocGFyYW06IERlYWwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRlYWxQcm0gPSB7IGRhdGE6IHJlc3BvbnNlLCAuLi50aGlzLmRlYWxQcm0gfTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+S8oOWFpW1hcO+8jOagueaNrklE77yM5pu05pawbWFw5pWw5o2uXHJcblx0d3JpdGUocHJtPzogV3JpdGUpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfd3JpdGUocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3dyaXRlKHRoaXMud3JpdGVQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfd3JpdGUocGFyYW06IFdyaXRlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdGlmICghcGFyYW0ubW9kZWxOYW1lKSB7XHJcblx0XHRcdHBhcmFtID0geyBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnd3JpdGUnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHBhcmFtLmxvZykge1xyXG5cdFx0XHRcdFx0ZGVsZXRlIHBhcmFtLmxvZztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/moLnmja5JROWIoOmZpFxyXG5cdHJlbW92ZShwcm0/OiBSZW1vdmUpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9yZW1vdmUodGhpcy5yZW1vdmVQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfcmVtb3ZlKHBhcmFtOiBSZW1vdmUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAncmVtb3ZlJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChwYXJhbS5sb2cpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbS5sb2c7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5qC55o2uSUTojrflj5bkuIDmnaHmlbDmja5cclxuXHRnZXQocHJtPzogR2V0KSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2dldChwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJfZ2V0KHRoaXMuZ2V0UHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2dldChwYXJhbTogR2V0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGlmICghcGFyYW0uaGFzT3duUHJvcGVydHkoJ21vZGVsTmFtZScpKSB7XHJcblx0XHRcdHBhcmFtLm1vZGVsTmFtZSA9IHRoaXMubW9kZWxOYW1lO1xyXG5cdFx0fVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZ2V0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSByZXNwb25zZTtcclxuXHRcdFx0XHRpZiAocmVzcG9uc2UuaWQgPT09IDAgJiYgcGFyYW0uaGFzT3duUHJvcGVydHkoJ2ZvcmVpZ25LZXknKSkge1xyXG5cdFx0XHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSFbcGFyYW0uZm9yZWlnbktleSFdID0gcGFyYW1bcGFyYW0uZm9yZWlnbktleSFdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmlkID0gcmVzcG9uc2U/LmlkO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcblx0c2VhcmNoKHBybT86IFNlYXJjaCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2gocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9zZWFyY2gocGFyYW06IFNlYXJjaCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdzZWFyY2gnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0gPSB7IC4uLnJlc3BvbnNlIH07XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3Vwc2V5LS0tLS0nLCB0aGlzLnVwc2VydFBybSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0c2VhcmNobWFwKHBybT86IFNlYXJjaCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2gocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9zZWFyY2htYXAocGFyYW06IFNlYXJjaCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdzZWFyY2hNYXAnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0gPSB7IC4uLnJlc3BvbnNlIH07XHJcblx0XHRcdFx0Y29uc29sZS5sb2coJ3Vwc2V5LS0tLS0nLCB0aGlzLnVwc2VydFBybSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/ojrflj5blpJrmnaHmlbDmja7vvIzmoLnmja7kvKDlhaXnmoTmnaHku7boh6rliqjnu4Tnu4dzcWxcclxuXHRzZWFyY2hDb3VudChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfc2VhcmNoQ291bnQocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KHRoaXMuc2VhcmNoUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX3NlYXJjaENvdW50KHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnc2VhcmNoQ291bnQnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5zZWFyY2hQcm0gPSB7IC4uLnJlc3BvbnNlIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly9leGNlbOWvvOWFpVxyXG5cdC8vIGltcG9ydChwYXJhbTogSW1wb3J0RXhjZWwpOk9ic2VydmFibGU8YW55PiB7XHJcblx0Ly8gICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XHJcblx0Ly8gICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXCJhbS9yZW1vdmVcIixwYXJhbSxodHRwT3B0aW9ucylcclxuXHQvLyAgIC5waXBlKFxyXG5cdC8vICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+e1xyXG5cdC8vICAgICAgIHRoaXMubWVzc2FnZS5zZXQocmVzcG9uc2UpO1xyXG5cdC8vICAgICAgIHRoaXMuaXNTdWNjZXNzLnNldCh0cnVlKTtcclxuXHQvLyAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcblx0Ly8gICAgIH0pLFxyXG5cdC8vICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG5cdC8vICAgICAgIC8vIOiLpeivt+axguWHuumUme+8jOiuvue9ruivt+axguaIkOWKn+eKtuaAgeS4uiBmYWxzZe+8jOW5tuWwhumUmeivr+mHjeaWsOaKm+WHulxyXG5cdC8vICAgICAgIHRoaXMuaXNTdWNjZXNzLnNldChmYWxzZSk7XHJcblx0Ly8gICAgICAgdGhpcy5tZXNzYWdlLnNldChlcnJvcik7XHJcblx0Ly8gICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG5cdC8vICAgICB9KSxcclxuXHQvLyAgICAgZmluYWxpemUoKCkgPT4ge1xyXG5cdC8vICAgICAgIC8vIOaXoOiuuuivt+axguaIkOWKn+S4juWQpu+8jOmDveWwhuWKoOi9veS4reeKtuaAgeiuvue9ruS4uiBmYWxzZVxyXG5cdC8vICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XHJcblx0Ly8gICAgIH0pXHJcblx0Ly8gICApO1xyXG5cdC8vIH1cclxuXHQvLy8vZXhjZWwg5a+85Ye6XHJcblx0ZXhwb3J0KHBybT86IFNlYXJjaCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9leHBvcnQocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2V4cG9ydCh0aGlzLmV4cG9ydFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9leHBvcnQocGFyYW06IFNlYXJjaCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRpZiAoIXBhcmFtLm1vZGVsTmFtZSkge1xyXG5cdFx0XHRwYXJhbSA9IHsgbW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwgLi4ucGFyYW0gfTtcclxuXHRcdH1cclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2V4cG9ydCcsIHBhcmFtLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XHJcblx0XHRcdFx0XHR0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lICsgJy54bHN4JztcclxuXHRcdFx0XHRGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+S6uuW3peWkhOeQhuWvvOWFpVxyXG5cdGRlYWxFeHBvcnQocHJtPzogU2VhcmNoKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2RlYWxfZXhwb3J0KHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9kZWFsX2V4cG9ydCh0aGlzLmV4cG9ydFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9kZWFsX2V4cG9ydChwYXJhbTogU2VhcmNoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGlmICghcGFyYW0ubW9kZWxOYW1lKSB7XHJcblx0XHRcdHBhcmFtID0geyBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbEV4cG9ydCcsIHBhcmFtLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XHJcblx0XHRcdFx0XHR0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lICsgJy54bHN4JztcclxuXHRcdFx0XHRGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+S4i+i9veWvvOWFpeeahOaooeadv1xyXG5cdGRvd25sb2FkVGVtcGxhdGUocHJtPzogRGVhbCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9kb3dubG9hZFRlbXBsYXRlKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9kb3dubG9hZFRlbXBsYXRlKHRoaXMudGFtcGxhdGUpLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfZG93bmxvYWRUZW1wbGF0ZShwYXJhbTogRGVhbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdkb3dubG9hZCcsIHBhcmFtLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XHJcblx0XHRcdFx0XHR0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lICsgJ+aooeadvy54bHN4JztcclxuXHRcdFx0XHRGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lKTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+WIoOmZpOWbvueJh1xyXG5cdGltYWdlRGVsZXRlKGZpZD86IHN0cmluZykge1xyXG5cdFx0aWYgKGZpZCkge1xyXG5cdFx0XHR0aGlzLndlYl9pbWFnZURlbGV0ZShmaWQpLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmZpZC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMud2ViX2ltYWdlRGVsZXRlKHRoaXMuZmlkKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2ltYWdlRGVsZXRlKGZpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2ltYWdlRGVsZXRlJywgZmlkKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdTdWNjZXNzJywgZGV0YWlsOiByZXNwb25zZSB9KTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+WIoOmZpOWbvueJh1xyXG5cdGZpbGVyRGVsZXRlKGZpZD86IHN0cmluZykge1xyXG5cdFx0aWYgKGZpZCkge1xyXG5cdFx0XHR0aGlzLndlYl9maWxlckRlbGV0ZShmaWQpLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLmZpZC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMud2ViX2ZpbGVyRGVsZXRlKHRoaXMuZmlkKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2ZpbGVyRGVsZXRlKGZpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2ltYWdlRGVsZXRlJywgZmlkKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdTdWNjZXNzJywgZGV0YWlsOiByZXNwb25zZSB9KTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0Ly8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+WIt+aWsHRva2VuXHJcblx0cmVmcmVzaFRva2VuKHBhcmFtOiBUb2tlbkluZm8pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAncmVmcmVzaFRva2VuJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGVhbFBybSA9IHsgZGF0YTogcmVzcG9uc2UsIC4uLnRoaXMuZGVhbFBybSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5Yib5bu66KGoXHJcblx0Y3JlYXRlVGFibGUocHJtPzogUGFyYW0pIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfY3JlYXRlVGFibGUocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2NyZWF0ZVRhYmxlKHRoaXMucGFyYW0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfY3JlYXRlVGFibGUocGFyYW06IFBhcmFtKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2NyZWF0ZVRhYmxlJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdC8vIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtzZXZlcml0eTogJ3N1Y2Nlc3MnLHN1bW1hcnk6ICdTdWNjZXNzJyxkZXRhaWw6IHJlc3BvbnNlfSlcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvLyDmmoLml6Dnoa7lrprmmK/lkKbph43nva7lhbbku5blhazlhbHlj5jph49cclxuXHRyZXNldFBybShzZWFyY2g/OiBzdHJpbmcpIHtcclxuXHRcdHN3aXRjaCAoc2VhcmNoKSB7XHJcblx0XHRcdGNhc2UgJ3Vwc2VydCc6XHJcblx0XHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSA9IHt9O1xyXG5cdFx0XHRcdHRoaXMudXBzZXJ0UHJtLnVwZERhdGEgPSB7fTtcclxuXHRcdFx0XHR0aGlzLnVwc2VydFBybS5sb2cgPSB7fTtcclxuXHRcdFx0XHR0aGlzLnVwc2VydFBybS5zdWJzZXJ0Py5mb3JFYWNoKCh2KSA9PiB7XHJcblx0XHRcdFx0XHR2LmxvZ3RtcCA9IG5ldyBNYXAoKTtcclxuXHRcdFx0XHRcdHYubWFwdG1wID0gbmV3IE1hcCgpO1xyXG5cdFx0XHRcdFx0di5zdWJEYXRhID0gW107XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0Jyc7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8v6Ieq5aSE55CG6YC76L6RXHJcblx0ZGVhbFF1ZXJ5KHBybT86IERlYWwpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsUXVlcnkocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbFF1ZXJ5KHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYkRlYWxRdWVyeShwYXJhbTogRGVhbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdkZWFsUXVlcnknLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kZWFsUHJtID0geyBkYXRhOiByZXNwb25zZSwgLi4udGhpcy5kZWFsUHJtIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0ZGVhbEN1c3RvbShwcm0/OiBEZWFsKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbEN1c3RvbShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsQ3VzdG9tKHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYkRlYWxDdXN0b20ocGFyYW06IERlYWwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbEN1c3RvbScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRlYWxQcm0gPSB7IGRhdGE6IHJlc3BvbnNlLCAuLi50aGlzLmRlYWxQcm0gfTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHRkZWFsU3VibWl0KHBybT86IERlYWwpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsQ3VzdG9tKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYkRlYWxDdXN0b20odGhpcy5kZWFsUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViRGVhbFN1Ym1pdChwYXJhbTogRGVhbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdkZWFsU3VibWl0JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGVhbFBybSA9IHsgZGF0YTogcmVzcG9uc2UsIC4uLnRoaXMuZGVhbFBybSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
531
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9hbS9hbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBd0IsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQXVJdEQsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBUW5CLE1BQU0sT0FBTyxXQUFXO0lBdUN2QjtRQXRDQSxRQUFRO1FBQ1IsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixPQUFPO1FBQ1AsT0FBRSxHQUFXLENBQUMsQ0FBQztRQUNmLE1BQU07UUFDTixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU07UUFDTixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFDakIsSUFBSTtRQUNKLGNBQVMsR0FBZ0IsRUFBRSxDQUFDO1FBQzVCLElBQUk7UUFDSixrQkFBYSxHQUFrQixFQUFFLENBQUM7UUFDbEMsTUFBTTtRQUNOLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztRQUM5QixRQUFRO1FBQ1IsY0FBUyxHQUFX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LENBQUM7UUFDOUMsQ0FBQztJQUNGLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBVztRQUN0Qix3Q0FBd0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDeEQsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkQsT0FBTyxRQUFRLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNULHlDQUF5QztRQUM5QyxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQzsrR0EzaUJXLFdBQVc7bUdBQVgsV0FBVyxxREFGWixDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQywwQkFEdEMsRUFBRTs7NEZBR0EsV0FBVztrQkFQdkIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxFQUFFO29CQUNYLFFBQVEsRUFBRSxFQUFFO29CQUNaLFNBQVMsRUFBRSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQztpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbmFsaXplLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBGb3JtT3B0aW9ucyB9IGZyb20gJy4uL2Zvcm0vZm9ybS9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlYXJjaE9wdGlvbnMgfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExvYWRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9sb2FkaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9pMThuLnNlcnZpY2UnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtIHtcclxuXHRpZD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFjZU1lc3NhZ2Uge1xyXG5cdGlkPzogbnVtYmVyO1xyXG5cdHBpZD86IG51bWJlcjsgLy8g6KGo5LitaWRcclxuXHRmdW5jPzogc3RyaW5nO1xyXG5cdG9wZXJhdG9yPzogc3RyaW5nO1xyXG5cdGNvbnRlbnQ/OiBzdHJpbmc7IC8vIOS4u+ihqOWPmOabtOaJgOacieWtl+auteaLvOaOpeS4gOWdl1xyXG5cdHN1YkNvbnRlbnQ/OiBzdHJpbmc7IC8vIOWtkOihqOWPmOabtOaLvOaOpeS4gOi1t1xyXG5cdGNyZWF0ZWRBdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydEV4Y2VsIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0b3JnSWQ/OiBudW1iZXI7XHJcblx0b3JnTmFtZT86IHN0cmluZztcclxuXHRvcmdJZEZlaWxkPzogc3RyaW5nO1xyXG5cdG9yZ05hbWVGZWlsZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcHNlcnQge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRhZGREYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR1cGREYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRzdWJzZXJ0PzogU3ViVXBzZXJ0W107XHJcblx0bG9nTW9kZWw/OiBzdHJpbmc7XHJcblx0bG9nPzogVHJhY2VNZXNzYWdlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN1YlVwc2VydCB7XHJcblx0c3ViTW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGZrPzogc3RyaW5nO1xyXG5cdHN1YkRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XHJcblx0bWFwdG1wPzogTWFwPG51bWJlciwgYW55PjtcclxuXHRsb2d0bXA/OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVhbCB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGRhdGE/OiBhbnk7XHJcbn1cclxuLy8g5pu05paw54m55a6a5a2X5q61XHJcbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGUge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHRkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRsb2dNb2RlbD86IHN0cmluZztcclxuXHRsb2c/OiBUcmFjZU1lc3NhZ2U7XHJcblx0dHJhbnNhY3Rpb24/OiBib29sZWFuO1xyXG59XHJcbi8vIOWIoOmZpOaOpeWPo+WjsOaYjlxyXG5leHBvcnQgaW50ZXJmYWNlIFJlbW92ZSB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGlkcz86IG51bWJlcltdO1xyXG5cdGRhdGE/OiBhbnk7XHJcblx0bG9nTW9kZWw/OiBzdHJpbmc7XHJcblx0bG9nPzogVHJhY2VNZXNzYWdlO1xyXG5cdHRyYW5zYWN0aW9uPzogYm9vbGVhbjtcclxufVxyXG4vLyDojrflj5bljZXmnaHmlbDmja7or6bmg4VcclxuZXhwb3J0IGludGVyZmFjZSBHZXQge1xyXG5cdG1vZGVsTmFtZT86IHN0cmluZztcclxuXHR1c2VyQ29kZT86IHN0cmluZztcclxuXHRvcmdGaWVsZD86IHN0cmluZztcclxuXHRpZD86IG51bWJlcjtcclxuXHRwcmVsb2Fkcz86IHN0cmluZ1tdOyAvLyDogZTooajmn6Xor6LooajlkI3np7DvvIzpnIDlr7nlupTlkI7nq69zdHJ1Y3RcclxuXHRmaXRlclByZWxvYWRzPzogUHJlbG9hZFtdOyAvLyDlj6rog73liqDkuIDlsYIg57G75Ly8ICdtb2R1bGUgPScgbW9kdWxlXHJcblx0Z2V0TG9nPzogYm9vbGVhbjsgLy/ojrflj5bml6Xlv5dcclxuXHRkYXRhPzogYW55OyAvL+WQjuerr+i/lOWbnueahHJlc3BvbnNlXHJcblx0Y29sdW1uRmlsdGVycz86IENvbHVtbkZpbHRlcltdOyAvL+i/h+a7pOeahOWIl1xyXG5cdGZvcmVpZ25LZXk/OiBzdHJpbmc7IC8v55u05o6l5o+S5YWl5a2Q6KGo6ZyA6KaB5Lyg6YCS5aSW6ZSu5a2X5q615Lul5Y+K5aSW6ZSu5YC8XHJcblx0W3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQcmVsb2FkIHtcclxuXHRmZWlsZE5hbWU/OiBzdHJpbmc7XHJcblx0Zml0ZXJzPzogQ29sdW1uRmlsdGVyW107XHJcblx0c29ydHM/OiBTb3J0W107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5GaWx0ZXIge1xyXG5cdGNvbHVtbkZpZWxkPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zml0ZXI/OiBhbnk7XHJcblx0ZnJvbT86IHN0cmluZyB8IG51bWJlcjtcclxuXHR0bz86IHN0cmluZyB8IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTb3J0IHtcclxuXHRmaWVsZD86IHN0cmluZztcclxuXHRpc0FzYz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoIHtcclxuXHRtb2RlbE5hbWU/OiBzdHJpbmc7XHJcblx0dXNlckNvZGU/OiBzdHJpbmc7XHJcblx0b3JnRmllbGQ/OiBzdHJpbmc7XHJcblx0Y291bnQ/OiBib29sZWFuOyAvL+aYr+WQpui/lOWbnnRvdGFsTnVtXHJcblx0cHJlbG9hZHM/OiBzdHJpbmdbXTtcclxuXHRmaXRlclByZWxvYWRzPzogUHJlbG9hZFtdO1xyXG5cdG1vZGVsPzogYW55O1xyXG5cdGRhdGE/OiBhbnk7XHJcblx0Y29sdW1uRmlsdGVycz86IENvbHVtbkZpbHRlcltdOyAvL+i/h+a7pOeahOWIl1xyXG5cdHNvcnRzPzogU29ydFtdO1xyXG5cdGdyb3Vwcz86IHN0cmluZ1tdO1xyXG5cdHJlYWQ/OiBzdHJpbmdbXTsgLy9yZWFkIOaMh+WumuafpeivoueJueWumuWtl+autVxyXG5cdGZ1bmNzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjsgLy/pgI/op4booajlkI7mnJ/opoHnlKhcclxuXHRvZmZzZXQ/OiBudW1iZXI7XHJcblx0bGltaXQ/OiBudW1iZXI7XHJcblx0dG90YWxOdW0/OiBudW1iZXI7XHJcbn1cclxuaW50ZXJmYWNlIERlYWxFeHBvcnQgZXh0ZW5kcyBTZWFyY2h7XHJcblx0ZmlsZU5hbWU/OnN0cmluZ1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5JbmZvIHtcclxuXHR0b2tlbj86IHN0cmluZztcclxuXHRleHBpcmVkPzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgYW1XZWIge1xyXG5cdGlkPzogbnVtYmVyO1xyXG5cdGNvZGU/OiBzdHJpbmc7XHJcblx0dHlwZT86IHN0cmluZztcclxuXHRuYW1lPzogc3RyaW5nO1xyXG5cdGFwcElkPzogbnVtYmVyO1xyXG5cdGNvbnRlbnQ/OiBzdHJpbmc7XHJcblx0Y3JlYXRlZEF0Pzogc3RyaW5nO1xyXG5cdHVwZGF0ZWRBdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFJmZCB7XHJcblx0bW9kZWxOYW1lPzogc3RyaW5nO1xyXG5cdGxhYmVsRmllbGQ/OiBzdHJpbmc7XHJcblx0dmFsdWVGaWVsZD86IHN0cmluZztcclxuXHR3aGVyZUZpZWxkPzogc3RyaW5nO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0Zml0ZXI/OiBhbnk7XHJcblx0ZGF0YT86IGFueTtcclxufVxyXG5jb25zdCBhcGlQYXRoID0gJyc7XHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWFtJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtdLFxyXG5cdHRlbXBsYXRlOiAnJyxcclxuXHRwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSwgQ29uZmlybWF0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbUNvbXBvbmVudCB7XHJcblx0Ly/mmK/lkKbmj5DkuqTml6Xlv5dcclxuXHRpc0xvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdC8v5Li75pWw5o2uaWRcclxuXHRpZDogbnVtYmVyID0gMDtcclxuXHQvL+S4u+ihqOaooeWei1xyXG5cdG1vZGVsTmFtZTogc3RyaW5nID0gJyc7XHJcblx0Ly9JROWPguaVsFxyXG5cdHBhcmFtOiBQYXJhbSA9IHt9O1xyXG5cdGZpZDogc3RyaW5nID0gJyc7XHJcblx0Ly/lr7zlhaVcclxuXHRpbXBvcnRQcm06IEltcG9ydEV4Y2VsID0ge307XHJcblx0Ly/mkJzntKBcclxuXHRzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zID0ge307XHJcblx0Ly9mb3JtXHJcblx0Zm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zID0ge307XHJcblx0Ly/liJvlu7rmiJbogIXmm7TmlrBcclxuXHR1cHNlcnRQcm06IFVwc2VydCA9IHsgdXBkRGF0YToge30sIGFkZERhdGE6IHt9LCBzdWJzZXJ0OiBbXSwgbG9nOiB7fSB9O1xyXG5cdC8v5aSE55CGXHJcblx0ZGVhbFBybTogRGVhbCA9IHt9O1xyXG5cdC8vbWFw5pu05pawXHJcblx0d3JpdGVQcm06IFdyaXRlID0ge307XHJcblx0Ly/liKDpmaRcclxuXHRyZW1vdmVQcm06IFJlbW92ZSA9IHt9O1xyXG5cdC8v6I635Y+W5LiA5p2h5pWw5o2uXHJcblx0Z2V0UHJtOiBHZXQgPSB7IGRhdGE6IHt9IH07XHJcblx0Ly/mn6Xor6LmnaHku7ZcclxuXHRmaWx0ZXI6IENvbHVtbkZpbHRlciA9IHt9O1xyXG5cdC8v5p+l6K+i5YiX6KGo5pWw5o2uXHJcblx0c2VhcmNoUHJtOiBTZWFyY2ggPSB7fTtcclxuXHRleHBvcnRQcm06IFNlYXJjaCA9IHt9O1xyXG5cdHRhbXBsYXRlOiBEZWFsID0ge307XHJcblx0aHR0cDogSHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcclxuXHRtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UgPSBpbmplY3QoTWVzc2FnZVNlcnZpY2UpO1xyXG5cdGNvbmZpcm1hdGlvblNlcnZpY2UgPSBpbmplY3QoQ29uZmlybWF0aW9uU2VydmljZSk7XHJcblx0bG9hZGluZ1NlcnZpY2UgPSBpbmplY3QoTG9hZGluZ1NlcnZpY2UpO1xyXG5cdHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XHJcblx0cm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0aTE4biA9IGluamVjdChJMThuU2VydmljZSlcclxuXHRjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG5cdHJmZChwcm06IFJmZCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdSRkQnLCBwcm0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdHdlYmdldChwYXJhbTogYW1XZWIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnL2dvYW0vYXBpL3dlYmdldCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcblx0XHRcdFx0Ly8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0d2Vic2F2ZShwYXJhbTogYW1XZWIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnL2dvYW0vYXBpL3dlYnNhdmUnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHdlYmRlbChwYXJhbTogYW1XZWIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnd2ViZGVsJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHR1cHNlcnQocHJtPzogYW55LCBjYj86IEZ1bmN0aW9uKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3Vwc2VydChwcm0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0Y2IgJiYgY2IocmVzKTtcclxuXHRcdFx0XHR0aGlzLnJlc2V0UHJtKCd1cHNlcnQnKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyBjb25zdCBwbTogVXBzZXJ0ID0gdGhpcy51cHNlcnRzKClcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJzE9PT09JyxwbSlcclxuXHRcdFx0dGhpcy53ZWJfdXBzZXJ0KHRoaXMudXBzZXJ0UHJtKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdGNiICYmIGNiKHJlcyk7XHJcblx0XHRcdFx0dGhpcy5yZXNldFBybSgndXBzZXJ0Jyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvL+WFqOmDqOWIm+W7uuaIluabtOaWsO+8jOagueaNrklE5Yik5patXHJcblx0d2ViX3Vwc2VydChwYXJhbTogVXBzZXJ0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdGlmICghcGFyYW0ubW9kZWxOYW1lKSB7XHJcblx0XHRcdHBhcmFtID0geyBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG5cdFx0bGV0IGFkZERhdGE6IGFueSA9IHBhcmFtLmFkZERhdGE7XHJcblx0XHRpZiAoT2JqZWN0LmtleXMoYWRkRGF0YSkubGVuZ3RoID09IDApIHtcclxuXHRcdFx0ZGVsZXRlIHBhcmFtLmFkZERhdGE7XHJcblx0XHR9XHJcblx0XHRsZXQgdXBkRGF0YTogYW55ID0gcGFyYW0udXBkRGF0YTtcclxuXHRcdGNvbnNvbGUubG9nKCdwYXJhbS0tLS0nLCBwYXJhbS51cGREYXRhKTtcclxuXHRcdGlmIChPYmplY3Qua2V5cyh1cGREYXRhKS5sZW5ndGggPT0gMCkge1xyXG5cdFx0XHRkZWxldGUgcGFyYW0udXBkRGF0YTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHBhcmFtLnVwZERhdGEhWydpZCddID0gdGhpcy5pZDtcclxuXHRcdFx0cGFyYW0ubG9nIS5waWQgPSB0aGlzLmlkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFwYXJhbT8uYWRkRGF0YSAmJiAhcGFyYW0udXBkRGF0YSkge1xyXG5cdFx0XHRwYXJhbSA9IHsgdXBkRGF0YTogeyBpZDogdGhpcy5pZCB9LCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG5cdFx0Y29uc29sZS5sb2coJ3RoaXMuaXNMb2ctLS0tJywgdGhpcy5pc0xvZyk7XHJcblx0XHRpZiAoIXRoaXMuaXNMb2cpIHtcclxuXHRcdFx0ZGVsZXRlIHBhcmFtLmxvZztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGxldCBsZzogc3RyaW5nID0gJyc7XHJcblx0XHRcdC8vIEB0cy1pZ25vcmVcclxuXHRcdFx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4blxyXG5cdFx0XHRsZXQgY3JlYXRlU3RyID0gaXNJMThuID8gdGhpcy5pMThuLmZhbnlpKCdhcHAuY3JlYXRlJykgOifmlrDlu7onXHJcblx0XHRcdHBhcmFtLnN1YnNlcnQ/LmZvckVhY2goKHYpID0+IHtcclxuXHRcdFx0XHR2LmxvZ3RtcD8uZm9yRWFjaCgodiwgaykgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHYuaWQgPT09IDApIHtcclxuXHRcdFx0XHRcdFx0bGcgKz0gYCR7Y3JlYXRlU3Ryfe+8miAtPiAke3YubmV3VmFsdWV9O2BcclxuXHRcdFx0XHRcdFx0Ly8gbGcgKz0gJ+aWsOW7uu+8miAtPiAnICsgdi5uZXdWYWx1ZSArICc7JztcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGxnICs9ICdbJyArIHYuaWQgKyAnLScgKyB2LmxhYmVsICsgJ10gJyArICh2Lm9sZFZhbHVlIHx8ICcnKSArICcgLT4gJyArICh2Lm5ld1ZhbHVlIHx8ICcnKSArICc7JztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdHBhcmFtID0geyAuLi5wYXJhbSwgbG9nOiB7IC4uLnBhcmFtLmxvZywgc3ViQ29udGVudDogbGcgfSB9O1xyXG5cdFx0fVxyXG5cdFx0Y29uc29sZS5sb2coJ3BhcmFtPT09PScsIHBhcmFtKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3Vwc2VydCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocGFyYW0ubG9nKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgcGFyYW0ubG9nO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+iHquWkhOeQhumAu+i+kVxyXG5cdGRlYWwocHJtPzogRGVhbCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9kZWFsKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9kZWFsKHRoaXMuZGVhbFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9kZWFsKHBhcmFtOiBEZWFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2RlYWwnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kZWFsUHJtID0geyBkYXRhOiByZXNwb25zZSwgLi4udGhpcy5kZWFsUHJtIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/kvKDlhaVtYXDvvIzmoLnmja5JRO+8jOabtOaWsG1hcOaVsOaNrlxyXG5cdHdyaXRlKHBybT86IFdyaXRlKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3dyaXRlKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl93cml0ZSh0aGlzLndyaXRlUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX3dyaXRlKHBhcmFtOiBXcml0ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRpZiAoIXBhcmFtLm1vZGVsTmFtZSkge1xyXG5cdFx0XHRwYXJhbSA9IHsgbW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSwgLi4ucGFyYW0gfTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3dyaXRlJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmIChwYXJhbS5sb2cpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbS5sb2c7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5qC55o2uSUTliKDpmaRcclxuXHRyZW1vdmUocHJtPzogUmVtb3ZlKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3JlbW92ZShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHRoaXMucmVtb3ZlUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX3JlbW92ZShwYXJhbTogUmVtb3ZlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3JlbW92ZScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRpZiAocGFyYW0ubG9nKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgcGFyYW0ubG9nO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+agueaNrklE6I635Y+W5LiA5p2h5pWw5o2uXHJcblx0Z2V0KHBybT86IEdldCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9nZXQocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9nZXQocGFyYW06IEdldCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRpZiAoIXBhcmFtLmhhc093blByb3BlcnR5KCdtb2RlbE5hbWUnKSkge1xyXG5cdFx0XHRwYXJhbS5tb2RlbE5hbWUgPSB0aGlzLm1vZGVsTmFtZTtcclxuXHRcdH1cclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2dldCcsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmdldFBybS5kYXRhID0gcmVzcG9uc2U7XHJcblx0XHRcdFx0aWYgKHJlc3BvbnNlLmlkID09PSAwICYmIHBhcmFtLmhhc093blByb3BlcnR5KCdmb3JlaWduS2V5JykpIHtcclxuXHRcdFx0XHRcdHRoaXMudXBzZXJ0UHJtLmFkZERhdGEhW3BhcmFtLmZvcmVpZ25LZXkhXSA9IHBhcmFtW3BhcmFtLmZvcmVpZ25LZXkhXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5pZCA9IHJlc3BvbnNlPy5pZDtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHQvL+iOt+WPluWkmuadoeaVsOaNru+8jOagueaNruS8oOWFpeeahOadoeS7tuiHquWKqOe7hOe7h3NxbFxyXG5cdHNlYXJjaChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfc2VhcmNoKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2godGhpcy5zZWFyY2hQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfc2VhcmNoKHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnc2VhcmNoJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtID0geyAuLi5yZXNwb25zZSB9O1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCd1cHNleS0tLS0tJywgdGhpcy51cHNlcnRQcm0pO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdHNlYXJjaG1hcChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfc2VhcmNoKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2godGhpcy5zZWFyY2hQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfc2VhcmNobWFwKHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnc2VhcmNoTWFwJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtID0geyAuLi5yZXNwb25zZSB9O1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKCd1cHNleS0tLS0tJywgdGhpcy51cHNlcnRQcm0pO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v6I635Y+W5aSa5p2h5pWw5o2u77yM5qC55o2u5Lyg5YWl55qE5p2h5Lu26Ieq5Yqo57uE57uHc3FsXHJcblx0c2VhcmNoQ291bnQocHJtPzogU2VhcmNoKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9zZWFyY2hDb3VudCh0aGlzLnNlYXJjaFBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9zZWFyY2hDb3VudChwYXJhbTogU2VhcmNoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ3NlYXJjaENvdW50JywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2VhcmNoUHJtID0geyAuLi5yZXNwb25zZSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8vZXhjZWzlr7zlhaVcclxuXHQvLyBpbXBvcnQocGFyYW06IEltcG9ydEV4Y2VsKTpPYnNlcnZhYmxlPGFueT4ge1xyXG5cdC8vICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG5cdC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFwiYW0vcmVtb3ZlXCIscGFyYW0saHR0cE9wdGlvbnMpXHJcblx0Ly8gICAucGlwZShcclxuXHQvLyAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PntcclxuXHQvLyAgICAgICB0aGlzLm1lc3NhZ2Uuc2V0KHJlc3BvbnNlKTtcclxuXHQvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQodHJ1ZSk7XHJcblx0Ly8gICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG5cdC8vICAgICB9KSxcclxuXHQvLyAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuXHQvLyAgICAgICAvLyDoi6Xor7fmsYLlh7rplJnvvIzorr7nva7or7fmsYLmiJDlip/nirbmgIHkuLogZmFsc2XvvIzlubblsIbplJnor6/ph43mlrDmipvlh7pcclxuXHQvLyAgICAgICB0aGlzLmlzU3VjY2Vzcy5zZXQoZmFsc2UpO1xyXG5cdC8vICAgICAgIHRoaXMubWVzc2FnZS5zZXQoZXJyb3IpO1xyXG5cdC8vICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuXHQvLyAgICAgfSksXHJcblx0Ly8gICAgIGZpbmFsaXplKCgpID0+IHtcclxuXHQvLyAgICAgICAvLyDml6Dorrror7fmsYLmiJDlip/kuI7lkKbvvIzpg73lsIbliqDovb3kuK3nirbmgIHorr7nva7kuLogZmFsc2VcclxuXHQvLyAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xyXG5cdC8vICAgICB9KVxyXG5cdC8vICAgKTtcclxuXHQvLyB9XHJcblx0Ly8vL2V4Y2VsIOWvvOWHulxyXG5cdGV4cG9ydChwcm0/OiBTZWFyY2gpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfZXhwb3J0KHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYl9leHBvcnQodGhpcy5leHBvcnRQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfZXhwb3J0KHBhcmFtOiBTZWFyY2gpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0aWYgKCFwYXJhbS5tb2RlbE5hbWUpIHtcclxuXHRcdFx0cGFyYW0gPSB7IG1vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsIC4uLnBhcmFtIH07XHJcblx0XHR9XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdleHBvcnQnLCBwYXJhbSwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlXSwge1xyXG5cdFx0XHRcdFx0dHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0OyBjaGFyc2V0PVVURi04JyxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRjb25zdCBmaWxlTmFtZSA9IHBhcmFtLm1vZGVsTmFtZSArICcueGxzeCc7XHJcblx0XHRcdFx0RmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/kurrlt6XlpITnkIblr7zlhaVcclxuXHRkZWFsRXhwb3J0KHBybT86IERlYWxFeHBvcnQpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJfZGVhbF9leHBvcnQocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2RlYWxfZXhwb3J0KHRoaXMuZXhwb3J0UHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViX2RlYWxfZXhwb3J0KHBhcmFtOiBEZWFsRXhwb3J0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGlmICghcGFyYW0ubW9kZWxOYW1lKSB7XHJcblx0XHRcdHBhcmFtID0geyBtb2RlbE5hbWU6IHRoaXMubW9kZWxOYW1lLCAuLi5wYXJhbSB9O1xyXG5cdFx0fVxyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnZGVhbEV4cG9ydCcsIHBhcmFtLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2VdLCB7XHJcblx0XHRcdFx0XHR0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7IGNoYXJzZXQ9VVRGLTgnLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdC8vIGNvbnN0IGZpbGVOYW1lID0gcGFyYW0ubW9kZWxOYW1lICsgJy54bHN4JztcclxuXHRcdFx0XHRjb25zdCBmaWxlTmFtZSA9IGAke3BhcmFtPy5maWxlTmFtZSA/IHBhcmFtLmZpbGVOYW1lIDogcGFyYW0ubW9kZWxOYW1lfS54bHN4YFxyXG5cdFx0XHRcdEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUpO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5LiL6L295a+85YWl55qE5qih5p2/XHJcblx0ZG93bmxvYWRUZW1wbGF0ZShwcm0/OiBEZWFsKSB7XHJcblx0XHRpZiAocHJtKSB7XHJcblx0XHRcdHRoaXMud2ViX2Rvd25sb2FkVGVtcGxhdGUocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViX2Rvd25sb2FkVGVtcGxhdGUodGhpcy50YW1wbGF0ZSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9kb3dubG9hZFRlbXBsYXRlKHBhcmFtOiBEZWFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2Rvd25sb2FkJywgcGFyYW0sIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZV0sIHtcclxuXHRcdFx0XHRcdHR5cGU6ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDsgY2hhcnNldD1VVEYtOCcsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0Y29uc3QgZmlsZU5hbWUgPSBwYXJhbS5tb2RlbE5hbWUgKyAn5qih5p2/Lnhsc3gnO1xyXG5cdFx0XHRcdEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUpO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5Yig6Zmk5Zu+54mHXHJcblx0aW1hZ2VEZWxldGUoZmlkPzogc3RyaW5nKSB7XHJcblx0XHRpZiAoZmlkKSB7XHJcblx0XHRcdHRoaXMud2ViX2ltYWdlRGVsZXRlKGZpZCkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuZmlkLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dGhpcy53ZWJfaW1hZ2VEZWxldGUodGhpcy5maWQpLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfaW1hZ2VEZWxldGUoZmlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnaW1hZ2VEZWxldGUnLCBmaWQpLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1N1Y2Nlc3MnLCBkZXRhaWw6IHJlc3BvbnNlIH0pO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5Yig6Zmk5Zu+54mHXHJcblx0ZmlsZXJEZWxldGUoZmlkPzogc3RyaW5nKSB7XHJcblx0XHRpZiAoZmlkKSB7XHJcblx0XHRcdHRoaXMud2ViX2ZpbGVyRGVsZXRlKGZpZCkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuZmlkLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dGhpcy53ZWJfZmlsZXJEZWxldGUodGhpcy5maWQpLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJfZmlsZXJEZWxldGUoZmlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnaW1hZ2VEZWxldGUnLCBmaWQpLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1N1Y2Nlc3MnLCBkZXRhaWw6IHJlc3BvbnNlIH0pO1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuXHRcdFx0XHQvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8v5Yi35pawdG9rZW5cclxuXHRyZWZyZXNoVG9rZW4ocGFyYW06IFRva2VuSW5mbyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdyZWZyZXNoVG9rZW4nLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kZWFsUHJtID0geyBkYXRhOiByZXNwb25zZSwgLi4udGhpcy5kZWFsUHJtIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcblx0Ly/liJvlu7rooahcclxuXHRjcmVhdGVUYWJsZShwcm0/OiBQYXJhbSkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYl9jcmVhdGVUYWJsZShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJfY3JlYXRlVGFibGUodGhpcy5wYXJhbSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHdlYl9jcmVhdGVUYWJsZShwYXJhbTogUGFyYW0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKHRydWUpO1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KGFwaVBhdGggKyAnY3JlYXRlVGFibGUnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0Ly8gdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe3NldmVyaXR5OiAnc3VjY2Vzcycsc3VtbWFyeTogJ1N1Y2Nlc3MnLGRldGFpbDogcmVzcG9uc2V9KVxyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdC8vIOaaguaXoOehruWumuaYr+WQpumHjee9ruWFtuS7luWFrOWFseWPmOmHj1xyXG5cdHJlc2V0UHJtKHNlYXJjaD86IHN0cmluZykge1xyXG5cdFx0c3dpdGNoIChzZWFyY2gpIHtcclxuXHRcdFx0Y2FzZSAndXBzZXJ0JzpcclxuXHRcdFx0XHR0aGlzLnVwc2VydFBybS5hZGREYXRhID0ge307XHJcblx0XHRcdFx0dGhpcy51cHNlcnRQcm0udXBkRGF0YSA9IHt9O1xyXG5cdFx0XHRcdHRoaXMudXBzZXJ0UHJtLmxvZyA9IHt9O1xyXG5cdFx0XHRcdHRoaXMudXBzZXJ0UHJtLnN1YnNlcnQ/LmZvckVhY2goKHYpID0+IHtcclxuXHRcdFx0XHRcdHYubG9ndG1wID0gbmV3IE1hcCgpO1xyXG5cdFx0XHRcdFx0di5tYXB0bXAgPSBuZXcgTWFwKCk7XHJcblx0XHRcdFx0XHR2LnN1YkRhdGEgPSBbXTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0ZGVmYXVsdDpcclxuXHRcdFx0XHQnJztcclxuXHRcdH1cclxuXHR9XHJcblx0Ly/oh6rlpITnkIbpgLvovpFcclxuXHRkZWFsUXVlcnkocHJtPzogRGVhbCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYkRlYWxRdWVyeShwcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsUXVlcnkodGhpcy5kZWFsUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViRGVhbFF1ZXJ5KHBhcmFtOiBEZWFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2RlYWxRdWVyeScsIHBhcmFtKS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRlYWxQcm0gPSB7IGRhdGE6IHJlc3BvbnNlLCAuLi50aGlzLmRlYWxQcm0gfTtcclxuXHRcdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHRcdH0pLFxyXG5cdFx0XHRmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2FkaW5nU2VydmljZS5zZXRMb2FkaW5nKGZhbHNlKTtcclxuXHRcdFx0fSksXHJcblx0XHQpO1xyXG5cdH1cclxuXHRkZWFsQ3VzdG9tKHBybT86IERlYWwpIHtcclxuXHRcdGlmIChwcm0pIHtcclxuXHRcdFx0dGhpcy53ZWJEZWFsQ3VzdG9tKHBybSkuc3Vic2NyaWJlKCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLndlYkRlYWxDdXN0b20odGhpcy5kZWFsUHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblx0d2ViRGVhbEN1c3RvbShwYXJhbTogRGVhbCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcodHJ1ZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoYXBpUGF0aCArICdkZWFsQ3VzdG9tJywgcGFyYW0pLnBpcGUoXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGVhbFBybSA9IHsgZGF0YTogcmVzcG9uc2UsIC4uLnRoaXMuZGVhbFBybSB9O1xyXG5cdFx0XHRcdHJldHVybiByZXNwb25zZTtcclxuXHRcdFx0fSksXHJcblx0XHRcdGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAvLyB0aGlzLmxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcoZmFsc2UpO1xyXG5cdFx0XHR9KSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdGRlYWxTdWJtaXQocHJtPzogRGVhbCkge1xyXG5cdFx0aWYgKHBybSkge1xyXG5cdFx0XHR0aGlzLndlYkRlYWxDdXN0b20ocHJtKS5zdWJzY3JpYmUoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMud2ViRGVhbEN1c3RvbSh0aGlzLmRlYWxQcm0pLnN1YnNjcmliZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHR3ZWJEZWFsU3VibWl0KHBhcmFtOiBEZWFsKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyh0cnVlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChhcGlQYXRoICsgJ2RlYWxTdWJtaXQnLCBwYXJhbSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kZWFsUHJtID0geyBkYXRhOiByZXNwb25zZSwgLi4udGhpcy5kZWFsUHJtIH07XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdFx0XHR9KSxcclxuXHRcdFx0ZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMubG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhmYWxzZSk7XHJcblx0XHRcdH0pLFxyXG5cdFx0KTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -53,14 +53,6 @@ export class CrumbActionComponent extends AmComponent {
|
|
|
53
53
|
this.menus = input([]);
|
|
54
54
|
this.displayOpItems = computed(() => {
|
|
55
55
|
const listOpItems = [...this.menus()];
|
|
56
|
-
if (this.exportVisible()) {
|
|
57
|
-
listOpItems.push({
|
|
58
|
-
label: 'app.tableAcExport',
|
|
59
|
-
type: 'export',
|
|
60
|
-
icon: 'pi pi-download',
|
|
61
|
-
auth: 3,
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
56
|
if (this.importVisible()) {
|
|
65
57
|
listOpItems.push({
|
|
66
58
|
label: 'app.tableAcImport',
|
|
@@ -69,6 +61,14 @@ export class CrumbActionComponent extends AmComponent {
|
|
|
69
61
|
auth: 2,
|
|
70
62
|
});
|
|
71
63
|
}
|
|
64
|
+
if (this.exportVisible()) {
|
|
65
|
+
listOpItems.push({
|
|
66
|
+
label: 'app.tableAcExport',
|
|
67
|
+
type: 'export',
|
|
68
|
+
icon: 'pi pi-download',
|
|
69
|
+
auth: 3,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
72
|
return listOpItems.filter((v) => this.authLevel() >= v.auth);
|
|
73
73
|
});
|
|
74
74
|
this.isSave = computed(() => {
|
|
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
205
205
|
type: HostListener,
|
|
206
206
|
args: ['window:resize', ['$event']]
|
|
207
207
|
}] } });
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1bWItYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvY3J1bWItYWN0aW9uL2NydW1iLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLE1BQU0sRUFFTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFlLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQVFoRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQXlFcEQ7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQXpFVCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxXQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlFLDZCQUE2QjtZQUM3QixhQUFhO1lBQ2IsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO29CQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDSixDQUFDO1lBQ0QsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNILGVBQVUsR0FBRyxNQUFNLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDN0IsMkJBQTJCO1FBQzNCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBa0IsRUFBRSxDQUFDO1FBQy9CLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBSTdCLGNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNyQixPQUFPO1FBQ1AsZUFBVSxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyQyxXQUFNLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLGtCQUFhLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxLQUFLLEVBQVksQ0FBQztRQUM3QixjQUFjO1FBQ2QsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxVQUFVO1FBQ1YsV0FBTSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUMvQixPQUFPO1FBQ1AsY0FBUyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBTSxFQUFFLENBQUMsQ0FBQztRQUM1QixnQkFBVyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLFNBQUksR0FBRyxLQUFLLEVBQU8sQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFVBQUssR0FBRyxLQUFLLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDekIsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzlCLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN0QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNoQixLQUFLLEVBQUUsbUJBQW1CO29CQUMxQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixJQUFJLEVBQUUsQ0FBQztpQkFDUCxDQUFDLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztnQkFDMUIsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDaEIsS0FBSyxFQUFFLG1CQUFtQjtvQkFDMUIsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLElBQUksRUFBRSxDQUFDO2lCQUNQLENBQUMsQ0FBQztZQUNKLENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxtQkFBYyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUduQixNQUFNLENBQ0wsR0FBRyxFQUFFO1lBQ0osSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2xDLElBQUksSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDaEMsQ0FBQztZQUNELElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUN2QyxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFO3FCQUNoQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDZixDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ2xCLE9BQU8sQ0FBQyxDQUFDO2dCQUNWLENBQUMsQ0FBQztxQkFDRCxNQUFNLENBQUMsQ0FBQyxDQUFjLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlFLENBQUM7UUFDRixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVTtRQUNoQixJQUFJLFdBQVcsR0FBSSxLQUFLLENBQUMsTUFBaUIsQ0FBQyxVQUFVLENBQUM7UUFDdEQsSUFBSSxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDO0lBQ0YsQ0FBQztJQUNELFFBQVE7UUFDUCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUFFLE9BQU87WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNsRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNGLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0YsQ0FBQztJQUVELFVBQVU7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBUztRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVM7UUFDaEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLFVBQVUsRUFBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUcsRUFBRSxDQUFDO1lBQ3JDLENBQUM7aUJBQU0sQ0FBQztnQkFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0YsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sQ0FBQztZQUNQLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVM7UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsWUFBWTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXhMVyxvQkFBb0I7bUdBQXBCLG9CQUFvQiwwNUVDOUJqQyxzelFBcUxNLHE0TUQzSkssWUFBWSw2YUFBRSxhQUFhLGlEQUFFLFlBQVksMFNBQUUsVUFBVTs7NEZBSW5ELG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDQyxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO3dEQXlCL0MsRUFBRTtzQkFBbEIsU0FBUzt1QkFBQyxJQUFJO2dCQUNNLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDQyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBeUM4QixpQkFBaUI7c0JBQWhFLFlBQVk7dUJBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFxQzlDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbUNvbXBvbmVudCB9IGZyb20gJy4vLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Y29tcHV0ZWQsXHJcblx0Q29udGVudENoaWxkLFxyXG5cdGVmZmVjdCxcclxuXHRIb3N0TGlzdGVuZXIsXHJcblx0aW5qZWN0LFxyXG5cdGlucHV0LFxyXG5cdE9uSW5pdCxcclxuXHRvdXRwdXQsXHJcblx0T3V0cHV0LFxyXG5cdHNpZ25hbCxcclxuXHRUZW1wbGF0ZVJlZixcclxuXHRWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXJIaXN0b3J5U2VydmljZSwgSGlzdG9yeUl0ZW0sIEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdwcmltZW5nL3BvcG92ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUaWVyZWRNZW51IH0gZnJvbSAncHJpbWVuZy90aWVyZWRtZW51JztcclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtY3J1bWItYWN0aW9uJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtCdXR0b25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIENvbW1vbk1vZHVsZSwgVGllcmVkTWVudV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2NydW1iLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2NydW1iLWFjdGlvbi5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcnVtYkFjdGlvbkNvbXBvbmVudCBleHRlbmRzIEFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHR1c2VySGlzdG9yeVNlcnZpY2UgPSBpbmplY3QoVXNlckhpc3RvcnlTZXJ2aWNlKTtcclxuXHRhY3Rpb24gPSBpbmplY3QoQWN0aW9uU2VydmljZSk7XHJcblx0Y3J1bWJMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0bGV0IGNydW1iID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJIaXN0b3J5U2VydmljZS5oaXN0b3J5TGlzdCgpKSk7XHJcblx0XHQvLyBjb25zb2xlLmxvZygnY3J1bWInLGNydW1iKVxyXG5cdFx0Ly8gQHRzLWlnbm9yZVxyXG5cdFx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4bjtcclxuXHRcdGlmICghaXNJMThuKSB7XHJcblx0XHRcdGNydW1iLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRcdGl0ZW0uaTE4bktleSA9ICcnO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBjcnVtYi5tYXAoKHY6IGFueSkgPT4gdik7XHJcblx0fSk7XHJcblx0Y3J1bWJUaXRsZSA9IHNpZ25hbDxhbnk+KHt9KTtcclxuXHQvLyByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRpc05ldyA9IGZhbHNlO1xyXG5cdGlzU2hvd0NvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRjcnVtYkZyb250OiBIaXN0b3J5SXRlbVtdID0gW107XHJcblx0Y3J1bWJFbmQ6IEhpc3RvcnlJdGVtW10gPSBbXTtcclxuXHRAVmlld0NoaWxkKCdvcCcpIG9wITogUG9wb3ZlcjtcclxuXHRAVmlld0NoaWxkKCdsaXN0T3AnKSBsaXN0T3AhOiBQb3BvdmVyO1xyXG5cdEBWaWV3Q2hpbGQoJ2FjdE9wJykgYWN0T3AhOiBQb3BvdmVyO1xyXG5cdHNhdmVFdmVudCA9IG91dHB1dCgpO1xyXG5cdC8vIOaWsOW7uuaMiemSrlxyXG5cdGFkZFZpc2libGUgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpO1xyXG5cdGltcG9ydFZpc2libGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRWaXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0bmV3VXJsID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0Y29uZmlnTmV3UGF0aCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG9uRXhwb3J0ID0gaW5wdXQ8RnVuY3Rpb24+KCk7XHJcblx0Ly8g5paw5bu65oyJ6ZKub3V0bGluZVxyXG5cdG91dGxpbmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdC8vIOaYr+WQpuaYr+WIl+ihqOmhtemdolxyXG5cdGlzTGlzdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHQvLyDmnYPpmZDnrYnnuqdcclxuXHRhdXRoTGV2ZWwgPSBpbnB1dDxudW1iZXI+KC0xKTtcclxuXHRjYW5jZWxFdmVudCA9IG91dHB1dCgpO1xyXG5cdGFjdGlvbkxpc3QgPSBpbnB1dDxhbnk+KFtdKTtcclxuXHRhY3Rpb25FdmVudCA9IG91dHB1dCgpO1xyXG5cdGRhdGEgPSBpbnB1dDxhbnk+KCk7XHJcblx0c2hvd0FjdCA9IGZhbHNlO1xyXG5cdG1lbnVzID0gaW5wdXQ8YW55W10+KFtdKTtcclxuXHRkaXNwbGF5T3BJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IGxpc3RPcEl0ZW1zID0gWy4uLnRoaXMubWVudXMoKV07XHJcblx0XHRpZiAodGhpcy5leHBvcnRWaXNpYmxlKCkpIHtcclxuXHRcdFx0bGlzdE9wSXRlbXMucHVzaCh7XHJcblx0XHRcdFx0bGFiZWw6ICdhcHAudGFibGVBY0V4cG9ydCcsXHJcblx0XHRcdFx0dHlwZTogJ2V4cG9ydCcsXHJcblx0XHRcdFx0aWNvbjogJ3BpIHBpLWRvd25sb2FkJyxcclxuXHRcdFx0XHRhdXRoOiAzLFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdGlmICh0aGlzLmltcG9ydFZpc2libGUoKSkge1xyXG5cdFx0XHRsaXN0T3BJdGVtcy5wdXNoKHtcclxuXHRcdFx0XHRsYWJlbDogJ2FwcC50YWJsZUFjSW1wb3J0JyxcclxuXHRcdFx0XHR0eXBlOiAnaW1wb3J0JyxcclxuXHRcdFx0XHRpY29uOiAncGkgcGktdXBsb2FkJyxcclxuXHRcdFx0XHRhdXRoOiAyLFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBsaXN0T3BJdGVtcy5maWx0ZXIoKHYpID0+IHRoaXMuYXV0aExldmVsKCkgPj0gdi5hdXRoKTtcclxuXHR9KTtcclxuXHRAQ29udGVudENoaWxkKCduZXdCdG4nLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBuZXdCdG5UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcclxuXHRpc1NhdmUgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5hY3Rpb24uc2F2ZVNpZ25hbCgpO1xyXG5cdH0pO1xyXG5cdGxvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5hY3Rpb24ubG9hZGluZygpO1xyXG5cdH0pO1xyXG5cdHNhdmVCdG5EaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGN1cnJlbnRQYWdlVXJsID0gJyc7XHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0bGV0IGxhc3QgPSB0aGlzLmNydW1iTGlzdCgpLnBvcCgpO1xyXG5cdFx0XHRcdGlmIChsYXN0Py51cmwpIHtcclxuXHRcdFx0XHRcdHRoaXMuaXNOZXcgPSBsYXN0LnVybD8uaW5kZXhPZignbmV3JykgPiAtMSA/IHRydWUgOiBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudFBhZ2VVcmwgPSBsYXN0LnVybDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGxhc3Q/LnRpdGxlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmNydW1iVGl0bGUuc2V0KGxhc3QpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgbGVuZ3RoID0gdGhpcy5jcnVtYkxpc3QoKS5sZW5ndGg7XHJcblx0XHRcdFx0aWYgKGxlbmd0aCA+IDIpIHtcclxuXHRcdFx0XHRcdHRoaXMuY3J1bWJGcm9udCA9IHRoaXMuY3J1bWJMaXN0KClcclxuXHRcdFx0XHRcdFx0Lm1hcCgodjogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0di5sYWJlbCA9IHYudGl0bGU7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHY7XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdC5maWx0ZXIoKHY6IEhpc3RvcnlJdGVtLCBpbmRleDogbnVtYmVyKSA9PiBpbmRleCA8PSBsZW5ndGggLSAxIC0gMik7XHJcblx0XHRcdFx0XHR0aGlzLmNydW1iRW5kID0gW3RoaXMuY3J1bWJMaXN0KClbbGVuZ3RoIC0gMl0sIHRoaXMuY3J1bWJMaXN0KClbbGVuZ3RoIC0gMV1dO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0KTtcclxuXHR9XHJcblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcblx0cmVzaXplKGV2ZW50OiBhbnkpIHtcclxuXHRcdGxldCB3aW5kb3dXaWR0aCA9IChldmVudC50YXJnZXQgYXMgV2luZG93KS5pbm5lcldpZHRoO1xyXG5cdFx0aWYgKHdpbmRvd1dpZHRoIDwgNzY4KSB7XHJcblx0XHRcdHRoaXMuc2hvd0FjdCA9IHRydWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnNob3dBY3QgPSBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNob3dBY3QgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCA/IHRydWUgOiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGdvTmV3KCkge1xyXG5cdFx0aWYgKCF0aGlzLmNvbmZpZ05ld1BhdGgoKSkge1xyXG5cdFx0XHRpZiAodGhpcy5uZXdVcmwoKSA9PSAnJykgcmV0dXJuO1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5uZXdVcmwoKV0pLnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSgnTmV3Jyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuY29uZmlnTmV3UGF0aCgpXSkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy51c2VySGlzdG9yeVNlcnZpY2Uuc2V0TGFzdFRpdGxlKCdOZXcnKTtcclxuXHRcdFx0XHR0aGlzLnVzZXJIaXN0b3J5U2VydmljZS5maWx0ZXJVcmwodGhpcy5jdXJyZW50UGFnZVVybCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2xvc2VOZXcoKSB7XHJcblx0XHRsZXQgbGVuZ3RoID0gdGhpcy5jcnVtYkxpc3QoKS5sZW5ndGg7XHJcblx0XHRsZXQgbGFzdCA9IHRoaXMuY3J1bWJMaXN0KClbbGVuZ3RoIC0gMV07XHJcblx0XHRpZiAobGFzdCkge1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGFzdC51cmxdKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuY2FuY2VsRXZlbnQuZW1pdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aGFuZGxlU2F2ZSgpIHtcclxuXHRcdHRoaXMuc2F2ZUV2ZW50LmVtaXQoKTtcclxuXHR9XHJcblxyXG5cdGJhY2soaXRlbTogYW55KSB7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbS51cmxdKTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZShldmVudDogYW55KSB7XHJcblx0XHR0aGlzLm9wLnRvZ2dsZShldmVudCk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVMaXN0T3AoZXZlbnQ6IGFueSkge1xyXG5cdFx0aWYgKCF0aGlzLmlzTGlzdCgpKSByZXR1cm47XHJcblx0XHR0aGlzLmxpc3RPcCAmJiB0aGlzLmxpc3RPcC50b2dnbGUoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0bGlzdEFjdChpdGVtOiBhbnkpIHtcclxuXHRcdGlmIChpdGVtLnR5cGUgPT09ICdleHBvcnQnKSB7XHJcblx0XHRcdGlmKHRoaXMub25FeHBvcnQoKSAmJiB0eXBlb2YgdGhpcy5vbkV4cG9ydCgpID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdHRoaXMub25FeHBvcnQgJiYgdGhpcy5vbkV4cG9ydCgpISgpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuYWN0aW9uLnNldEFjdGlvbih7IHR5cGU6IGl0ZW0udHlwZSB9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdpbXBvcnQnKSB7XHJcblx0XHRcdHRoaXMuYWN0aW9uLnNldEFjdGlvbih7IHR5cGU6IGl0ZW0udHlwZSB9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCdvbkNsaWNrJykgJiYgdHlwZW9mIGl0ZW0ub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdGl0ZW0ub25DbGljayhpdGVtKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWN0RXZlbnQoaXRlbTogYW55KSB7XHJcblx0XHR0aGlzLmFjdGlvbkV2ZW50LmVtaXQoaXRlbSk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVBY3QoZXZlbnQ6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuaXNMaXN0KCkpIHJldHVybjtcclxuXHRcdHRoaXMuYWN0T3AgJiYgdGhpcy5hY3RPcC50b2dnbGUoZXZlbnQpO1xyXG5cdH1cclxuXHRzZXRTYXZlQ2xhc3MoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc1NhdmUoKSA/ICdkYW5nZXInIDogJ3NlY29uZGFyeSc7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuYWN0aW9uLnNhdmVTaWduYWwuc2V0KGZhbHNlKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgPGRpdiBjbGFzcz1cImxlZnQtYnRuIGZsZXggZ2FwLTFcIj5cclxuICAgIDwhLS0gVE9ETyDmnYPpmZDmlbDmja7mjqXlhaUgLS0+XHJcbiAgICBAaWYoIW5ld0J0blRlbXBsYXRlUmVmKXtcclxuICAgICAgQGlmKHRoaXMuYXV0aExldmVsKCkgPiAyICYmIGFkZFZpc2libGUoKSl7XHJcbiAgICAgICAgPHAtYnV0dG9uIChjbGljayk9XCJnb05ldygpXCIgW291dGxpbmVkXT1cIm91dGxpbmVkKClcIj57eydhcHAuY3JlYXRlJyB8IHRyYW5zbGF0ZX19PC9wLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuZXdCdG5UZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIEBpZihjcnVtYkxpc3QoKS5sZW5ndGggPiAwKXtcclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGxlYWRpbmctbm9uZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmZsZXhcIj5cclxuICAgICAgICBAaWYoY3J1bWJMaXN0KCkubGVuZ3RoIDw9IDIpe1xyXG4gICAgICAgICAgQGZvcihmY2hpbGQgb2YgY3J1bWJMaXN0KCk7IHRyYWNrIGZjaGlsZC51cmwpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItdGl0bGUgY3Vyc29yLXBvaW50ZXIgdGV4dC1bMTJweF0gbWF4LXctWzEyMHB4XSBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1lbGxpcHNpc1wiIChjbGljayk9XCJiYWNrKGZjaGlsZClcIj5cclxuICAgICAgICAgICAgICAgQGlmKGZjaGlsZC5pMThuS2V5IT0gJycpe1xyXG4gICAgICAgICAgICAgICAge3sgZmNoaWxkIS5pMThuS2V5IHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB7e2ZjaGlsZC50aXRsZX19XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItdGl0bGUgY3Vyc29yLXBvaW50ZXIgc2VsZWN0LWNydW1iXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzE3cHhdIGgtWzE3cHhdIGZsZXggaXRlbXMtY2VudGVyIGZvbnQtYm9sZCB0ZXh0LVsxM3B4XVwiIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgLi4uXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHAtdGllcmVkbWVudSAjb3AgW21vZGVsXT1cImNydW1iRnJvbnRcIiBbcG9wdXBdPVwidHJ1ZVwiIFtzdHlsZV09XCJ7cG9zaXRpb246J2Fic29sdXRlJ31cIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbSBsZXQtaXRlbSBsZXQtaGFzU3VibWVudT1cImhhc1N1Ym1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgPGEgcFJpcHBsZSBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHAtdGllcmVkbWVudS1pdGVtLWxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMiB3LWZ1bGxcIiAoY2xpY2spPVwiYmFjayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXRlbS5pMThuS2V5IT0gJycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0hLmkxOG5LZXkgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtdGllcmVkbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIEBmb3IoaXRlbSBvZiBjcnVtYkVuZDt0cmFjayBpdGVtLnVybCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNydW1iLXRpdGxlIGN1cnNvci1wb2ludGVyIHRleHQtWzEycHhdIG1heC13LVsxMjBweF0gb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwIHRleHQtZWxsaXBzaXNcIiAoY2xpY2spPVwiYmFjayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmKGl0ZW0uaTE4bktleSE9ICcnKXtcclxuICAgICAgICAgICAgICAgICAge3sgaXRlbSEuaTE4bktleSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHt7aXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWluLXctMCB0ZXh0LXRleHQtY29sb3IgdGV4dC1bMTJweF0gdGl0bGUtYWN0aW9uXCI+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIFt0aXRsZV09XCJpc05ldz8gJ05ldyc6Y3J1bWJUaXRsZSgpLnRpdGxlXCIgXHJcbiAgICAgICAgICBjbGFzcz1cImhpZGRlbiBtZDppbmxpbmUtYmxvY2sgbWF4LXctWzE1MHB4XSBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpcyB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxyXG4gICAgICAgICAge3tpc05ldz8gJ05ldyc6Y3J1bWJUaXRsZSgpLnRpdGxlfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgQGlmKGlzU2hvd0NvZygpKXtcclxuICAgICAgICAgIEBpZihpc0xpc3QoKSl7XHJcbiAgICAgICAgICAgIDxwLWJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgaWNvbj1cInBpICBwaS1jb2dcIiBhcmlhLWxhYmVsPVwi5pON5L2cXCIgKG9uQ2xpY2spPVwidG9nZ2xlTGlzdE9wKCRldmVudClcIi8+XHJcbiAgICAgICAgICAgIEBpZihkaXNwbGF5T3BJdGVtcygpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgIDxwLXRpZXJlZG1lbnUgI2xpc3RPcCBbbW9kZWxdPVwiZGlzcGxheU9wSXRlbXMoKVwiIFtwb3B1cF09XCJ0cnVlXCIgW3N0eWxlXT1cIntwb3NpdGlvbjonYWJzb2x1dGUnfVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtIGxldC1pdGVtIGxldC1oYXNTdWJtZW51PVwiaGFzU3VibWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICA8YSBwUmlwcGxlIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcC10aWVyZWRtZW51LWl0ZW0tbGlua1wiIChjbGljayk9XCJsaXN0QWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwicC10aWVyZWRtZW51LWl0ZW0taWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj57eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5zaG9ydGN1dFwiIGNsYXNzPVwibWwtYXV0byBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZCBiZy1lbXBoYXNpcyB0ZXh0LW11dGVkLWNvbG9yIHRleHQteHMgcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc2hvcnRjdXQgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJoYXNTdWJtZW51XCIgY2xhc3M9XCJwaSBwaS1hbmdsZS1yaWdodCBtbC1hdXRvXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtdGllcmVkbWVudT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxwLWJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgaWNvbj1cInBpICBwaS1jb2dcIiBhcmlhLWxhYmVsPVwi5pON5L2cXCIgKG9uQ2xpY2spPVwidG9nZ2xlQWN0KCRldmVudClcIi8+XHJcbiAgICAgICAgICAgIEBpZihhY3Rpb25MaXN0KCkubGVuZ3RoID4gMCAmJiBzaG93QWN0KXtcclxuICAgICAgICAgICAgICA8cC10aWVyZWRtZW51ICNhY3RPcCBbbW9kZWxdPVwiYWN0aW9uTGlzdCgpXCIgW3BvcHVwXT1cInRydWVcIiBbc3R5bGVdPVwie3Bvc2l0aW9uOidhYnNvbHV0ZSd9XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW0gbGV0LWl0ZW0gbGV0LWhhc1N1Ym1lbnU9XCJoYXNTdWJtZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhIHBSaXBwbGUgXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBwLXRpZXJlZG1lbnUtaXRlbS1saW5rXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiKGl0ZW0uYXV0aCB8fCAwKSA+IChhdXRoTGV2ZWwoKSB8fCAwKSB8fCAhIWl0ZW0uYnRuSGlkZGVuPy4oZGF0YSgpKSA/ICdoaWRkZW4nIDogJ2Jsb2NrJ1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RFdmVudChpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMlwiPnt7aXRlbS5pMThuS2V5ID8gKGl0ZW0uaTE4bktleSB8IHRyYW5zbGF0ZSkgOiBpdGVtLmxhYmVsfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnNob3J0Y3V0XCIgY2xhc3M9XCJtbC1hdXRvIGJvcmRlciBib3JkZXItc3VyZmFjZSByb3VuZGVkIGJnLWVtcGhhc2lzIHRleHQtbXV0ZWQtY29sb3IgdGV4dC14cyBwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5zaG9ydGN1dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImhhc1N1Ym1lbnVcIiBjbGFzcz1cInBpIHBpLWFuZ2xlLXJpZ2h0IG1sLWF1dG9cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9wLXRpZXJlZG1lbnU+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmKHRoaXMuYXV0aExldmVsKCkgPiAyICYmICFpc0xpc3QoKSl7XHJcbiAgICAgICAgICA8cC1idXR0b24gXHJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICAgIFtzZXZlcml0eV09XCJzZXRTYXZlQ2xhc3MoKVwiIFxyXG4gICAgICAgICAgICBpY29uPVwicGkgIHBpLWNsb3VkLXVwbG9hZFwiIFxyXG4gICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nKClcIlxyXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwi5omL5Yqo5L+d5a2YXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNhdmVCdG5EaXNhYmxlKClcIiBcclxuICAgICAgICAgICAgY2xhc3M9XCJwLTBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2F2ZSgpXCI+XHJcbiAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEBpZihjcnVtYkxpc3QoKS5sZW5ndGggPj0gMil7IC0tPlxyXG4gICAgICAgICAgPHAtYnV0dG9uIFxyXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiIFxyXG4gICAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgICBpY29uPVwicGkgIHBpLXRpbWVzXCIgXHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCLlhbPpl61cIiBcclxuICAgICAgICAgICAgY2xhc3M9XCJwLTBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VOZXcoKVwiPlxyXG4gICAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICA8IS0tIH0gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA8IS0tIOWIneWni+iKgueCuSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0wIGZsZXggaXRlbXMtY2VudGVyIHRleHQtWzE0cHhdIHRleHQtdGV4dC1jb2xvclwiPlxyXG4gICAgICA8c3BhbiBcclxuICAgICAgICBbdGl0bGVdPVwiY3J1bWJUaXRsZSgpLmkxOG5LZXkgIT0gJycgPyAoY3J1bWJUaXRsZSgpLmkxOG5LZXkgfCB0cmFuc2xhdGUpIDogY3J1bWJUaXRsZSgpLnRpdGxlXCJcclxuICAgICAgICBjbGFzcz1cImhpZGRlbiBtZDppbmxpbmUtYmxvY2sgbWF4LXctWzEyMHB4XSBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1lbGxpcHNpc1wiPlxyXG4gICAgICAgIEBpZihjcnVtYlRpdGxlKCkuaTE4bktleSAhPSAnJyl7XHJcbiAgICAgICAgICB7e2NydW1iVGl0bGUoKS5pMThuS2V5IHwgdHJhbnNsYXRlfX1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIHt7Y3J1bWJUaXRsZSgpLnRpdGxlfX1cclxuICAgICAgICB9XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgQGlmKGlzU2hvd0NvZygpKXtcclxuICAgICAgICA8cC1idXR0b24gXHJcbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXHJcbiAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgaWNvbj1cInBpICBwaS1jb2dcIiBcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCLmk43kvZxcIiBcclxuICAgICAgICAgIChvbkNsaWNrKT1cInRvZ2dsZUxpc3RPcCgkZXZlbnQpXCIvPlxyXG4gICAgICAgICAgQGlmKGRpc3BsYXlPcEl0ZW1zKCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIDxwLXRpZXJlZG1lbnUgI2xpc3RPcCBbbW9kZWxdPVwiZGlzcGxheU9wSXRlbXMoKVwiIFtwb3B1cF09XCJ0cnVlXCIgW3N0eWxlXT1cIntwb3NpdGlvbjonYWJzb2x1dGUnfVwiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbSBsZXQtaXRlbSBsZXQtaGFzU3VibWVudT1cImhhc1N1Ym1lbnVcIj5cclxuICAgICAgICAgICAgICAgIDxhIHBSaXBwbGUgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBwLXRpZXJlZG1lbnUtaXRlbS1saW5rXCIgKGNsaWNrKT1cImxpc3RBY3QoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwicC10aWVyZWRtZW51LWl0ZW0taWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yXCI+e3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnNob3J0Y3V0XCIgY2xhc3M9XCJtbC1hdXRvIGJvcmRlciBib3JkZXItc3VyZmFjZSByb3VuZGVkIGJnLWVtcGhhc2lzIHRleHQtbXV0ZWQtY29sb3IgdGV4dC14cyBwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc2hvcnRjdXQgfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImhhc1N1Ym1lbnVcIiBjbGFzcz1cInBpIHBpLWFuZ2xlLXJpZ2h0IG1sLWF1dG9cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvcC10aWVyZWRtZW51PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIEBpZighaXNMaXN0KCkpe1xyXG4gICAgICAgIDxwLWJ1dHRvbiBcclxuICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgaWNvbj1cInBpICBwaS1jbG91ZC11cGxvYWRcIiBcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCLmiYvliqjkv53lrZhcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInNhdmVCdG5EaXNhYmxlKClcIiBcclxuICAgICAgICAgIGNsYXNzPVwicC0wXCJcclxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlKClcIj5cclxuICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgIDxwLWJ1dHRvbiBcclxuICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgaWNvbj1cInBpICBwaS10aW1lc1wiIFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIuWFs+mXrVwiIFxyXG4gICAgICAgICAgY2xhc3M9XCJwLTBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTmV3KClcIj5cclxuICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgXHJcbjwvZGl2PiJdfQ==
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1bWItYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvY3J1bWItYWN0aW9uL2NydW1iLWFjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDTixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUVOLE1BQU0sRUFFTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFlLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQVFoRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsV0FBVztJQXlFcEQ7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQXpFVCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxXQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENB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UUFDMUIsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBQ0QsWUFBWTtRQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXhMVyxvQkFBb0I7bUdBQXBCLG9CQUFvQiwwNUVDOUJqQyxzelFBcUxNLHE0TUQzSkssWUFBWSw2YUFBRSxhQUFhLGlEQUFFLFlBQVksMFNBQUUsVUFBVTs7NEZBSW5ELG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDQyxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDO3dEQXlCL0MsRUFBRTtzQkFBbEIsU0FBUzt1QkFBQyxJQUFJO2dCQUNNLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDQyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBeUM4QixpQkFBaUI7c0JBQWhFLFlBQVk7dUJBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtnQkFxQzlDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbUNvbXBvbmVudCB9IGZyb20gJy4vLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Y29tcHV0ZWQsXHJcblx0Q29udGVudENoaWxkLFxyXG5cdGVmZmVjdCxcclxuXHRIb3N0TGlzdGVuZXIsXHJcblx0aW5qZWN0LFxyXG5cdGlucHV0LFxyXG5cdE9uSW5pdCxcclxuXHRvdXRwdXQsXHJcblx0T3V0cHV0LFxyXG5cdHNpZ25hbCxcclxuXHRUZW1wbGF0ZVJlZixcclxuXHRWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVzZXJIaXN0b3J5U2VydmljZSwgSGlzdG9yeUl0ZW0sIEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdwcmltZW5nL3BvcG92ZXInO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUaWVyZWRNZW51IH0gZnJvbSAncHJpbWVuZy90aWVyZWRtZW51JztcclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtY3J1bWItYWN0aW9uJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtCdXR0b25Nb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIENvbW1vbk1vZHVsZSwgVGllcmVkTWVudV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2NydW1iLWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2NydW1iLWFjdGlvbi5jb21wb25lbnQuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcnVtYkFjdGlvbkNvbXBvbmVudCBleHRlbmRzIEFtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHR1c2VySGlzdG9yeVNlcnZpY2UgPSBpbmplY3QoVXNlckhpc3RvcnlTZXJ2aWNlKTtcclxuXHRhY3Rpb24gPSBpbmplY3QoQWN0aW9uU2VydmljZSk7XHJcblx0Y3J1bWJMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG5cdFx0bGV0IGNydW1iID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJIaXN0b3J5U2VydmljZS5oaXN0b3J5TGlzdCgpKSk7XHJcblx0XHQvLyBjb25zb2xlLmxvZygnY3J1bWInLGNydW1iKVxyXG5cdFx0Ly8gQHRzLWlnbm9yZVxyXG5cdFx0Y29uc3QgaXNJMThuID0gd2luZG93LmFwcElzSTE4bjtcclxuXHRcdGlmICghaXNJMThuKSB7XHJcblx0XHRcdGNydW1iLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRcdGl0ZW0uaTE4bktleSA9ICcnO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBjcnVtYi5tYXAoKHY6IGFueSkgPT4gdik7XHJcblx0fSk7XHJcblx0Y3J1bWJUaXRsZSA9IHNpZ25hbDxhbnk+KHt9KTtcclxuXHQvLyByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRpc05ldyA9IGZhbHNlO1xyXG5cdGlzU2hvd0NvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRjcnVtYkZyb250OiBIaXN0b3J5SXRlbVtdID0gW107XHJcblx0Y3J1bWJFbmQ6IEhpc3RvcnlJdGVtW10gPSBbXTtcclxuXHRAVmlld0NoaWxkKCdvcCcpIG9wITogUG9wb3ZlcjtcclxuXHRAVmlld0NoaWxkKCdsaXN0T3AnKSBsaXN0T3AhOiBQb3BvdmVyO1xyXG5cdEBWaWV3Q2hpbGQoJ2FjdE9wJykgYWN0T3AhOiBQb3BvdmVyO1xyXG5cdHNhdmVFdmVudCA9IG91dHB1dCgpO1xyXG5cdC8vIOaWsOW7uuaMiemSrlxyXG5cdGFkZFZpc2libGUgPSBpbnB1dDxib29sZWFuIHwgdW5kZWZpbmVkPigpO1xyXG5cdGltcG9ydFZpc2libGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRleHBvcnRWaXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0bmV3VXJsID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcblx0Y29uZmlnTmV3UGF0aCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cdG9uRXhwb3J0ID0gaW5wdXQ8RnVuY3Rpb24+KCk7XHJcblx0Ly8g5paw5bu65oyJ6ZKub3V0bGluZVxyXG5cdG91dGxpbmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdC8vIOaYr+WQpuaYr+WIl+ihqOmhtemdolxyXG5cdGlzTGlzdCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHQvLyDmnYPpmZDnrYnnuqdcclxuXHRhdXRoTGV2ZWwgPSBpbnB1dDxudW1iZXI+KC0xKTtcclxuXHRjYW5jZWxFdmVudCA9IG91dHB1dCgpO1xyXG5cdGFjdGlvbkxpc3QgPSBpbnB1dDxhbnk+KFtdKTtcclxuXHRhY3Rpb25FdmVudCA9IG91dHB1dCgpO1xyXG5cdGRhdGEgPSBpbnB1dDxhbnk+KCk7XHJcblx0c2hvd0FjdCA9IGZhbHNlO1xyXG5cdG1lbnVzID0gaW5wdXQ8YW55W10+KFtdKTtcclxuXHRkaXNwbGF5T3BJdGVtcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdGNvbnN0IGxpc3RPcEl0ZW1zID0gWy4uLnRoaXMubWVudXMoKV07XHJcblx0XHRpZiAodGhpcy5pbXBvcnRWaXNpYmxlKCkpIHtcclxuXHRcdFx0bGlzdE9wSXRlbXMucHVzaCh7XHJcblx0XHRcdFx0bGFiZWw6ICdhcHAudGFibGVBY0ltcG9ydCcsXHJcblx0XHRcdFx0dHlwZTogJ2ltcG9ydCcsXHJcblx0XHRcdFx0aWNvbjogJ3BpIHBpLXVwbG9hZCcsXHJcblx0XHRcdFx0YXV0aDogMixcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5leHBvcnRWaXNpYmxlKCkpIHtcclxuXHRcdFx0bGlzdE9wSXRlbXMucHVzaCh7XHJcblx0XHRcdFx0bGFiZWw6ICdhcHAudGFibGVBY0V4cG9ydCcsXHJcblx0XHRcdFx0dHlwZTogJ2V4cG9ydCcsXHJcblx0XHRcdFx0aWNvbjogJ3BpIHBpLWRvd25sb2FkJyxcclxuXHRcdFx0XHRhdXRoOiAzLFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBsaXN0T3BJdGVtcy5maWx0ZXIoKHYpID0+IHRoaXMuYXV0aExldmVsKCkgPj0gdi5hdXRoKTtcclxuXHR9KTtcclxuXHRAQ29udGVudENoaWxkKCduZXdCdG4nLCB7IGRlc2NlbmRhbnRzOiBmYWxzZSB9KSBuZXdCdG5UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcclxuXHRpc1NhdmUgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5hY3Rpb24uc2F2ZVNpZ25hbCgpO1xyXG5cdH0pO1xyXG5cdGxvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5hY3Rpb24ubG9hZGluZygpO1xyXG5cdH0pO1xyXG5cdHNhdmVCdG5EaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdGN1cnJlbnRQYWdlVXJsID0gJyc7XHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0bGV0IGxhc3QgPSB0aGlzLmNydW1iTGlzdCgpLnBvcCgpO1xyXG5cdFx0XHRcdGlmIChsYXN0Py51cmwpIHtcclxuXHRcdFx0XHRcdHRoaXMuaXNOZXcgPSBsYXN0LnVybD8uaW5kZXhPZignbmV3JykgPiAtMSA/IHRydWUgOiBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMuY3VycmVudFBhZ2VVcmwgPSBsYXN0LnVybDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGxhc3Q/LnRpdGxlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmNydW1iVGl0bGUuc2V0KGxhc3QpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgbGVuZ3RoID0gdGhpcy5jcnVtYkxpc3QoKS5sZW5ndGg7XHJcblx0XHRcdFx0aWYgKGxlbmd0aCA+IDIpIHtcclxuXHRcdFx0XHRcdHRoaXMuY3J1bWJGcm9udCA9IHRoaXMuY3J1bWJMaXN0KClcclxuXHRcdFx0XHRcdFx0Lm1hcCgodjogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0di5sYWJlbCA9IHYudGl0bGU7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHY7XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHRcdC5maWx0ZXIoKHY6IEhpc3RvcnlJdGVtLCBpbmRleDogbnVtYmVyKSA9PiBpbmRleCA8PSBsZW5ndGggLSAxIC0gMik7XHJcblx0XHRcdFx0XHR0aGlzLmNydW1iRW5kID0gW3RoaXMuY3J1bWJMaXN0KClbbGVuZ3RoIC0gMl0sIHRoaXMuY3J1bWJMaXN0KClbbGVuZ3RoIC0gMV1dO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0KTtcclxuXHR9XHJcblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcblx0cmVzaXplKGV2ZW50OiBhbnkpIHtcclxuXHRcdGxldCB3aW5kb3dXaWR0aCA9IChldmVudC50YXJnZXQgYXMgV2luZG93KS5pbm5lcldpZHRoO1xyXG5cdFx0aWYgKHdpbmRvd1dpZHRoIDwgNzY4KSB7XHJcblx0XHRcdHRoaXMuc2hvd0FjdCA9IHRydWU7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnNob3dBY3QgPSBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNob3dBY3QgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2OCA/IHRydWUgOiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGdvTmV3KCkge1xyXG5cdFx0aWYgKCF0aGlzLmNvbmZpZ05ld1BhdGgoKSkge1xyXG5cdFx0XHRpZiAodGhpcy5uZXdVcmwoKSA9PSAnJykgcmV0dXJuO1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5uZXdVcmwoKV0pLnRoZW4oKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSgnTmV3Jyk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuY29uZmlnTmV3UGF0aCgpXSkudGhlbigocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy51c2VySGlzdG9yeVNlcnZpY2Uuc2V0TGFzdFRpdGxlKCdOZXcnKTtcclxuXHRcdFx0XHR0aGlzLnVzZXJIaXN0b3J5U2VydmljZS5maWx0ZXJVcmwodGhpcy5jdXJyZW50UGFnZVVybCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2xvc2VOZXcoKSB7XHJcblx0XHRsZXQgbGVuZ3RoID0gdGhpcy5jcnVtYkxpc3QoKS5sZW5ndGg7XHJcblx0XHRsZXQgbGFzdCA9IHRoaXMuY3J1bWJMaXN0KClbbGVuZ3RoIC0gMV07XHJcblx0XHRpZiAobGFzdCkge1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGFzdC51cmxdKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuY2FuY2VsRXZlbnQuZW1pdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aGFuZGxlU2F2ZSgpIHtcclxuXHRcdHRoaXMuc2F2ZUV2ZW50LmVtaXQoKTtcclxuXHR9XHJcblxyXG5cdGJhY2soaXRlbTogYW55KSB7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaXRlbS51cmxdKTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZShldmVudDogYW55KSB7XHJcblx0XHR0aGlzLm9wLnRvZ2dsZShldmVudCk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVMaXN0T3AoZXZlbnQ6IGFueSkge1xyXG5cdFx0aWYgKCF0aGlzLmlzTGlzdCgpKSByZXR1cm47XHJcblx0XHR0aGlzLmxpc3RPcCAmJiB0aGlzLmxpc3RPcC50b2dnbGUoZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0bGlzdEFjdChpdGVtOiBhbnkpIHtcclxuXHRcdGlmIChpdGVtLnR5cGUgPT09ICdleHBvcnQnKSB7XHJcblx0XHRcdGlmKHRoaXMub25FeHBvcnQoKSAmJiB0eXBlb2YgdGhpcy5vbkV4cG9ydCgpID09ICdmdW5jdGlvbicpe1xyXG5cdFx0XHRcdHRoaXMub25FeHBvcnQgJiYgdGhpcy5vbkV4cG9ydCgpISgpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuYWN0aW9uLnNldEFjdGlvbih7IHR5cGU6IGl0ZW0udHlwZSB9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdpbXBvcnQnKSB7XHJcblx0XHRcdHRoaXMuYWN0aW9uLnNldEFjdGlvbih7IHR5cGU6IGl0ZW0udHlwZSB9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCdvbkNsaWNrJykgJiYgdHlwZW9mIGl0ZW0ub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRcdGl0ZW0ub25DbGljayhpdGVtKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWN0RXZlbnQoaXRlbTogYW55KSB7XHJcblx0XHR0aGlzLmFjdGlvbkV2ZW50LmVtaXQoaXRlbSk7XHJcblx0fVxyXG5cclxuXHR0b2dnbGVBY3QoZXZlbnQ6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuaXNMaXN0KCkpIHJldHVybjtcclxuXHRcdHRoaXMuYWN0T3AgJiYgdGhpcy5hY3RPcC50b2dnbGUoZXZlbnQpO1xyXG5cdH1cclxuXHRzZXRTYXZlQ2xhc3MoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc1NhdmUoKSA/ICdkYW5nZXInIDogJ3NlY29uZGFyeSc7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMuYWN0aW9uLnNhdmVTaWduYWwuc2V0KGZhbHNlKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgPGRpdiBjbGFzcz1cImxlZnQtYnRuIGZsZXggZ2FwLTFcIj5cclxuICAgIDwhLS0gVE9ETyDmnYPpmZDmlbDmja7mjqXlhaUgLS0+XHJcbiAgICBAaWYoIW5ld0J0blRlbXBsYXRlUmVmKXtcclxuICAgICAgQGlmKHRoaXMuYXV0aExldmVsKCkgPiAyICYmIGFkZFZpc2libGUoKSl7XHJcbiAgICAgICAgPHAtYnV0dG9uIChjbGljayk9XCJnb05ldygpXCIgW291dGxpbmVkXT1cIm91dGxpbmVkKClcIj57eydhcHAuY3JlYXRlJyB8IHRyYW5zbGF0ZX19PC9wLWJ1dHRvbj5cclxuICAgICAgfVxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJuZXdCdG5UZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIEBpZihjcnVtYkxpc3QoKS5sZW5ndGggPiAwKXtcclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGxlYWRpbmctbm9uZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmZsZXhcIj5cclxuICAgICAgICBAaWYoY3J1bWJMaXN0KCkubGVuZ3RoIDw9IDIpe1xyXG4gICAgICAgICAgQGZvcihmY2hpbGQgb2YgY3J1bWJMaXN0KCk7IHRyYWNrIGZjaGlsZC51cmwpe1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItdGl0bGUgY3Vyc29yLXBvaW50ZXIgdGV4dC1bMTJweF0gbWF4LXctWzEyMHB4XSBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1lbGxpcHNpc1wiIChjbGljayk9XCJiYWNrKGZjaGlsZClcIj5cclxuICAgICAgICAgICAgICAgQGlmKGZjaGlsZC5pMThuS2V5IT0gJycpe1xyXG4gICAgICAgICAgICAgICAge3sgZmNoaWxkIS5pMThuS2V5IHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB7e2ZjaGlsZC50aXRsZX19XHJcbiAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3J1bWItdGl0bGUgY3Vyc29yLXBvaW50ZXIgc2VsZWN0LWNydW1iXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzE3cHhdIGgtWzE3cHhdIGZsZXggaXRlbXMtY2VudGVyIGZvbnQtYm9sZCB0ZXh0LVsxM3B4XVwiIChjbGljayk9XCJ0b2dnbGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgLi4uXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHAtdGllcmVkbWVudSAjb3AgW21vZGVsXT1cImNydW1iRnJvbnRcIiBbcG9wdXBdPVwidHJ1ZVwiIFtzdHlsZV09XCJ7cG9zaXRpb246J2Fic29sdXRlJ31cIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbSBsZXQtaXRlbSBsZXQtaGFzU3VibWVudT1cImhhc1N1Ym1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgPGEgcFJpcHBsZSBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHAtdGllcmVkbWVudS1pdGVtLWxpbmtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMiB3LWZ1bGxcIiAoY2xpY2spPVwiYmFjayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYoaXRlbS5pMThuS2V5IT0gJycpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0hLmkxOG5LZXkgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLnRpdGxlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtdGllcmVkbWVudT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIEBmb3IoaXRlbSBvZiBjcnVtYkVuZDt0cmFjayBpdGVtLnVybCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNydW1iLXRpdGxlIGN1cnNvci1wb2ludGVyIHRleHQtWzEycHhdIG1heC13LVsxMjBweF0gb3ZlcmZsb3ctaGlkZGVuIHdoaXRlc3BhY2Utbm93cmFwIHRleHQtZWxsaXBzaXNcIiAoY2xpY2spPVwiYmFjayhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgQGlmKGl0ZW0uaTE4bktleSE9ICcnKXtcclxuICAgICAgICAgICAgICAgICAge3sgaXRlbSEuaTE4bktleSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHt7aXRlbS50aXRsZX19XHJcbiAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWluLXctMCB0ZXh0LXRleHQtY29sb3IgdGV4dC1bMTJweF0gdGl0bGUtYWN0aW9uXCI+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIFt0aXRsZV09XCJpc05ldz8gJ05ldyc6Y3J1bWJUaXRsZSgpLnRpdGxlXCIgXHJcbiAgICAgICAgICBjbGFzcz1cImhpZGRlbiBtZDppbmxpbmUtYmxvY2sgbWF4LXctWzE1MHB4XSBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpcyB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxyXG4gICAgICAgICAge3tpc05ldz8gJ05ldyc6Y3J1bWJUaXRsZSgpLnRpdGxlfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgQGlmKGlzU2hvd0NvZygpKXtcclxuICAgICAgICAgIEBpZihpc0xpc3QoKSl7XHJcbiAgICAgICAgICAgIDxwLWJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgaWNvbj1cInBpICBwaS1jb2dcIiBhcmlhLWxhYmVsPVwi5pON5L2cXCIgKG9uQ2xpY2spPVwidG9nZ2xlTGlzdE9wKCRldmVudClcIi8+XHJcbiAgICAgICAgICAgIEBpZihkaXNwbGF5T3BJdGVtcygpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgICAgIDxwLXRpZXJlZG1lbnUgI2xpc3RPcCBbbW9kZWxdPVwiZGlzcGxheU9wSXRlbXMoKVwiIFtwb3B1cF09XCJ0cnVlXCIgW3N0eWxlXT1cIntwb3NpdGlvbjonYWJzb2x1dGUnfVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtIGxldC1pdGVtIGxldC1oYXNTdWJtZW51PVwiaGFzU3VibWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICA8YSBwUmlwcGxlIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgcC10aWVyZWRtZW51LWl0ZW0tbGlua1wiIChjbGljayk9XCJsaXN0QWN0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwicC10aWVyZWRtZW51LWl0ZW0taWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj57eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5zaG9ydGN1dFwiIGNsYXNzPVwibWwtYXV0byBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZCBiZy1lbXBoYXNpcyB0ZXh0LW11dGVkLWNvbG9yIHRleHQteHMgcC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc2hvcnRjdXQgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJoYXNTdWJtZW51XCIgY2xhc3M9XCJwaSBwaS1hbmdsZS1yaWdodCBtbC1hdXRvXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtdGllcmVkbWVudT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxwLWJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgaWNvbj1cInBpICBwaS1jb2dcIiBhcmlhLWxhYmVsPVwi5pON5L2cXCIgKG9uQ2xpY2spPVwidG9nZ2xlQWN0KCRldmVudClcIi8+XHJcbiAgICAgICAgICAgIEBpZihhY3Rpb25MaXN0KCkubGVuZ3RoID4gMCAmJiBzaG93QWN0KXtcclxuICAgICAgICAgICAgICA8cC10aWVyZWRtZW51ICNhY3RPcCBbbW9kZWxdPVwiYWN0aW9uTGlzdCgpXCIgW3BvcHVwXT1cInRydWVcIiBbc3R5bGVdPVwie3Bvc2l0aW9uOidhYnNvbHV0ZSd9XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW0gbGV0LWl0ZW0gbGV0LWhhc1N1Ym1lbnU9XCJoYXNTdWJtZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhIHBSaXBwbGUgXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBwLXRpZXJlZG1lbnUtaXRlbS1saW5rXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiKGl0ZW0uYXV0aCB8fCAwKSA+IChhdXRoTGV2ZWwoKSB8fCAwKSB8fCAhIWl0ZW0uYnRuSGlkZGVuPy4oZGF0YSgpKSA/ICdoaWRkZW4nIDogJ2Jsb2NrJ1wiIFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3RFdmVudChpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWwtMlwiPnt7aXRlbS5pMThuS2V5ID8gKGl0ZW0uaTE4bktleSB8IHRyYW5zbGF0ZSkgOiBpdGVtLmxhYmVsfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnNob3J0Y3V0XCIgY2xhc3M9XCJtbC1hdXRvIGJvcmRlciBib3JkZXItc3VyZmFjZSByb3VuZGVkIGJnLWVtcGhhc2lzIHRleHQtbXV0ZWQtY29sb3IgdGV4dC14cyBwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5zaG9ydGN1dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImhhc1N1Ym1lbnVcIiBjbGFzcz1cInBpIHBpLWFuZ2xlLXJpZ2h0IG1sLWF1dG9cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9wLXRpZXJlZG1lbnU+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmKHRoaXMuYXV0aExldmVsKCkgPiAyICYmICFpc0xpc3QoKSl7XHJcbiAgICAgICAgICA8cC1idXR0b24gXHJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICAgIFtzZXZlcml0eV09XCJzZXRTYXZlQ2xhc3MoKVwiIFxyXG4gICAgICAgICAgICBpY29uPVwicGkgIHBpLWNsb3VkLXVwbG9hZFwiIFxyXG4gICAgICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nKClcIlxyXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwi5omL5Yqo5L+d5a2YXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNhdmVCdG5EaXNhYmxlKClcIiBcclxuICAgICAgICAgICAgY2xhc3M9XCJwLTBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2F2ZSgpXCI+XHJcbiAgICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8IS0tIEBpZihjcnVtYkxpc3QoKS5sZW5ndGggPj0gMil7IC0tPlxyXG4gICAgICAgICAgPHAtYnV0dG9uIFxyXG4gICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiIFxyXG4gICAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgICBpY29uPVwicGkgIHBpLXRpbWVzXCIgXHJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCLlhbPpl61cIiBcclxuICAgICAgICAgICAgY2xhc3M9XCJwLTBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VOZXcoKVwiPlxyXG4gICAgICAgICAgPC9wLWJ1dHRvbj5cclxuICAgICAgICA8IS0tIH0gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA8IS0tIOWIneWni+iKgueCuSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtaW4tdy0wIGZsZXggaXRlbXMtY2VudGVyIHRleHQtWzE0cHhdIHRleHQtdGV4dC1jb2xvclwiPlxyXG4gICAgICA8c3BhbiBcclxuICAgICAgICBbdGl0bGVdPVwiY3J1bWJUaXRsZSgpLmkxOG5LZXkgIT0gJycgPyAoY3J1bWJUaXRsZSgpLmkxOG5LZXkgfCB0cmFuc2xhdGUpIDogY3J1bWJUaXRsZSgpLnRpdGxlXCJcclxuICAgICAgICBjbGFzcz1cImhpZGRlbiBtZDppbmxpbmUtYmxvY2sgbWF4LXctWzEyMHB4XSBvdmVyZmxvdy1oaWRkZW4gd2hpdGVzcGFjZS1ub3dyYXAgdGV4dC1lbGxpcHNpc1wiPlxyXG4gICAgICAgIEBpZihjcnVtYlRpdGxlKCkuaTE4bktleSAhPSAnJyl7XHJcbiAgICAgICAgICB7e2NydW1iVGl0bGUoKS5pMThuS2V5IHwgdHJhbnNsYXRlfX1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIHt7Y3J1bWJUaXRsZSgpLnRpdGxlfX1cclxuICAgICAgICB9XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgQGlmKGlzU2hvd0NvZygpKXtcclxuICAgICAgICA8cC1idXR0b24gXHJcbiAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXHJcbiAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgaWNvbj1cInBpICBwaS1jb2dcIiBcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCLmk43kvZxcIiBcclxuICAgICAgICAgIChvbkNsaWNrKT1cInRvZ2dsZUxpc3RPcCgkZXZlbnQpXCIvPlxyXG4gICAgICAgICAgQGlmKGRpc3BsYXlPcEl0ZW1zKCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgICAgIDxwLXRpZXJlZG1lbnUgI2xpc3RPcCBbbW9kZWxdPVwiZGlzcGxheU9wSXRlbXMoKVwiIFtwb3B1cF09XCJ0cnVlXCIgW3N0eWxlXT1cIntwb3NpdGlvbjonYWJzb2x1dGUnfVwiPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbSBsZXQtaXRlbSBsZXQtaGFzU3VibWVudT1cImhhc1N1Ym1lbnVcIj5cclxuICAgICAgICAgICAgICAgIDxhIHBSaXBwbGUgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBwLXRpZXJlZG1lbnUtaXRlbS1saW5rXCIgKGNsaWNrKT1cImxpc3RBY3QoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwicC10aWVyZWRtZW51LWl0ZW0taWNvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yXCI+e3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLnNob3J0Y3V0XCIgY2xhc3M9XCJtbC1hdXRvIGJvcmRlciBib3JkZXItc3VyZmFjZSByb3VuZGVkIGJnLWVtcGhhc2lzIHRleHQtbXV0ZWQtY29sb3IgdGV4dC14cyBwLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uc2hvcnRjdXQgfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImhhc1N1Ym1lbnVcIiBjbGFzcz1cInBpIHBpLWFuZ2xlLXJpZ2h0IG1sLWF1dG9cIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvcC10aWVyZWRtZW51PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIEBpZighaXNMaXN0KCkpe1xyXG4gICAgICAgIDxwLWJ1dHRvbiBcclxuICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgaWNvbj1cInBpICBwaS1jbG91ZC11cGxvYWRcIiBcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCLmiYvliqjkv53lrZhcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInNhdmVCdG5EaXNhYmxlKClcIiBcclxuICAgICAgICAgIGNsYXNzPVwicC0wXCJcclxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlKClcIj5cclxuICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICAgIDxwLWJ1dHRvbiBcclxuICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiIFxyXG4gICAgICAgICAgaWNvbj1cInBpICBwaS10aW1lc1wiIFxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIuWFs+mXrVwiIFxyXG4gICAgICAgICAgY2xhc3M9XCJwLTBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTmV3KClcIj5cclxuICAgICAgICA8L3AtYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgXHJcbjwvZGl2PiJdfQ==
|
|
@@ -528,7 +528,8 @@ class AmComponent {
|
|
|
528
528
|
const data = new Blob([response], {
|
|
529
529
|
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=UTF-8',
|
|
530
530
|
});
|
|
531
|
-
const fileName = param.modelName + '.xlsx';
|
|
531
|
+
// const fileName = param.modelName + '.xlsx';
|
|
532
|
+
const fileName = `${param?.fileName ? param.fileName : param.modelName}.xlsx`;
|
|
532
533
|
FileSaver.saveAs(data, fileName);
|
|
533
534
|
return response;
|
|
534
535
|
}), finalize(() => {
|
|
@@ -8044,14 +8045,6 @@ class CrumbActionComponent extends AmComponent {
|
|
|
8044
8045
|
this.menus = input([]);
|
|
8045
8046
|
this.displayOpItems = computed(() => {
|
|
8046
8047
|
const listOpItems = [...this.menus()];
|
|
8047
|
-
if (this.exportVisible()) {
|
|
8048
|
-
listOpItems.push({
|
|
8049
|
-
label: 'app.tableAcExport',
|
|
8050
|
-
type: 'export',
|
|
8051
|
-
icon: 'pi pi-download',
|
|
8052
|
-
auth: 3,
|
|
8053
|
-
});
|
|
8054
|
-
}
|
|
8055
8048
|
if (this.importVisible()) {
|
|
8056
8049
|
listOpItems.push({
|
|
8057
8050
|
label: 'app.tableAcImport',
|
|
@@ -8060,6 +8053,14 @@ class CrumbActionComponent extends AmComponent {
|
|
|
8060
8053
|
auth: 2,
|
|
8061
8054
|
});
|
|
8062
8055
|
}
|
|
8056
|
+
if (this.exportVisible()) {
|
|
8057
|
+
listOpItems.push({
|
|
8058
|
+
label: 'app.tableAcExport',
|
|
8059
|
+
type: 'export',
|
|
8060
|
+
icon: 'pi pi-download',
|
|
8061
|
+
auth: 3,
|
|
8062
|
+
});
|
|
8063
|
+
}
|
|
8063
8064
|
return listOpItems.filter((v) => this.authLevel() >= v.auth);
|
|
8064
8065
|
});
|
|
8065
8066
|
this.isSave = computed(() => {
|