tin-spa 2.5.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/classes/Classes.mjs +3 -1
- package/esm2020/lib/classes/TinCore.mjs +28 -15
- package/esm2020/lib/components/alert/alert.component.mjs +11 -6
- package/esm2020/lib/components/email/email.component.mjs +19 -17
- package/esm2020/lib/components/form/form.component.mjs +17 -17
- package/esm2020/lib/components/label/label.component.mjs +3 -3
- package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +1 -1
- package/esm2020/lib/components/option/option.component.mjs +4 -4
- package/esm2020/lib/components/page/page.component.mjs +1 -1
- package/esm2020/lib/components/search/search.component.mjs +3 -3
- package/esm2020/lib/components/select/select.component.mjs +33 -130
- package/esm2020/lib/components/select-common/select-common.component.mjs +135 -0
- package/esm2020/lib/components/select-internal/select-internal.component.mjs +47 -0
- package/esm2020/lib/components/select-lite/select-lite.component.mjs +13 -0
- package/esm2020/lib/components/steps/steps.component.mjs +33 -59
- package/esm2020/lib/components/suffix/suffix.component.mjs +71 -0
- package/esm2020/lib/components/table/detailsDialog.component.mjs +15 -11
- package/esm2020/lib/components/table/table.component.mjs +12 -55
- package/esm2020/lib/components/table-header/table-header.component.mjs +3 -3
- package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +18 -12
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +13 -56
- package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +243 -0
- package/esm2020/lib/components/table-lite/table-lite.component.mjs +390 -0
- package/esm2020/lib/components/table-row/table-row.component.mjs +18 -4
- package/esm2020/lib/components/text/text.component.mjs +28 -35
- package/esm2020/lib/components/viewer/viewer.component.mjs +7 -3
- package/esm2020/lib/modules/admin/admin-routing.module.mjs +5 -1
- package/esm2020/lib/pages/accounts/accountDialog.component.mjs +1 -1
- package/esm2020/lib/pages/approvals/approvals.component.mjs +61 -0
- package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +89 -0
- package/esm2020/lib/pages/change-password/change-password.component.mjs +1 -1
- package/esm2020/lib/pages/create-account/create-account.component.mjs +1 -1
- package/esm2020/lib/pages/customers/customers.component.mjs +8 -8
- package/esm2020/lib/pages/departments/departments.component.mjs +1 -1
- package/esm2020/lib/pages/employees/employees.component.mjs +1 -1
- package/esm2020/lib/pages/inventory/inventory.component.mjs +1 -1
- package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +1 -1
- package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +11 -10
- package/esm2020/lib/pages/login/login.component.mjs +1 -1
- package/esm2020/lib/pages/logs/logs.component.mjs +21 -22
- package/esm2020/lib/pages/membership/membership.component.mjs +15 -19
- package/esm2020/lib/pages/plans/plans.component.mjs +16 -19
- package/esm2020/lib/pages/positions/positions.component.mjs +3 -3
- package/esm2020/lib/pages/profile/profile.component.mjs +1 -1
- package/esm2020/lib/pages/recover-account/recover-account.component.mjs +1 -1
- package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +2 -2
- package/esm2020/lib/pages/roles/roles.component.mjs +2 -2
- package/esm2020/lib/pages/signup/signup.component.mjs +1 -1
- package/esm2020/lib/pages/suppliers/suppliers.component.mjs +9 -9
- package/esm2020/lib/pages/tasks/tasks.component.mjs +9 -9
- package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +99 -71
- package/esm2020/lib/pages/tenants/tenants.component.mjs +8 -8
- package/esm2020/lib/pages/transactions/transactDialog.component.mjs +1 -1
- package/esm2020/lib/pages/transactions/transactions.component.mjs +1 -1
- package/esm2020/lib/pages/users/users.component.mjs +114 -92
- package/esm2020/lib/pages/welcome/welcome.component.mjs +8 -8
- package/esm2020/lib/select-context.directive.mjs +23 -0
- package/esm2020/lib/services/button.service.mjs +5 -6
- package/esm2020/lib/services/datalib.service.mjs +26 -15
- package/esm2020/lib/services/dialog.service.mjs +12 -1
- package/esm2020/lib/services/table-config.service.mjs +7 -3
- package/esm2020/lib/tin-spa.module.mjs +16 -9
- package/fesm2015/tin-spa.mjs +2900 -2074
- package/fesm2015/tin-spa.mjs.map +1 -1
- package/fesm2020/tin-spa.mjs +2598 -1761
- package/fesm2020/tin-spa.mjs.map +1 -1
- package/lib/classes/Classes.d.ts +17 -4
- package/lib/classes/TinCore.d.ts +1 -0
- package/lib/components/email/email.component.d.ts +4 -3
- package/lib/components/form/form.component.d.ts +4 -2
- package/lib/components/select/select.component.d.ts +9 -35
- package/lib/components/select-common/select-common.component.d.ts +42 -0
- package/lib/components/select-internal/select-internal.component.d.ts +17 -0
- package/lib/components/select-lite/select-lite.component.d.ts +6 -0
- package/lib/components/steps/steps.component.d.ts +9 -9
- package/lib/components/suffix/suffix.component.d.ts +23 -0
- package/lib/components/table/detailsDialog.component.d.ts +3 -2
- package/lib/components/table/table.component.d.ts +2 -2
- package/lib/components/table-internal/detailsDialog-internal.component.d.ts +3 -2
- package/lib/components/table-internal/table-internal.component.d.ts +2 -2
- package/lib/components/table-lite/detailsDialog-lite.component.d.ts +65 -0
- package/lib/components/table-lite/table-lite.component.d.ts +87 -0
- package/lib/components/table-row/table-row.component.d.ts +2 -0
- package/lib/components/text/text.component.d.ts +7 -6
- package/lib/pages/approvals/approvals.component.d.ts +11 -0
- package/lib/pages/approvals-config/approvals-config.component.d.ts +14 -0
- package/lib/pages/invitations-table/invitations-table.component.d.ts +1 -1
- package/lib/pages/logs/logs.component.d.ts +2 -6
- package/lib/pages/membership/membership.component.d.ts +2 -6
- package/lib/pages/plans/plans.component.d.ts +2 -6
- package/lib/pages/suppliers/suppliers.component.d.ts +1 -1
- package/lib/pages/tasks/tasks.component.d.ts +1 -1
- package/lib/pages/tenant-settings/tenant-settings.component.d.ts +10 -7
- package/lib/pages/tenants/tenants.component.d.ts +1 -1
- package/lib/pages/users/users.component.d.ts +8 -16
- package/lib/select-context.directive.d.ts +10 -0
- package/lib/services/button.service.d.ts +0 -1
- package/lib/services/datalib.service.d.ts +3 -1
- package/lib/services/table-config.service.d.ts +1 -1
- package/lib/tin-spa.module.d.ts +41 -34
- package/package.json +1 -1
- package/esm2020/lib/pages/invitations/invitations.component.mjs +0 -14
- package/esm2020/lib/pages/tenant-settings/inviteDialog.component.mjs +0 -60
- package/lib/pages/invitations/invitations.component.d.ts +0 -8
- package/lib/pages/tenant-settings/inviteDialog.component.d.ts +0 -28
|
@@ -35,6 +35,8 @@ export class TableConfig {
|
|
|
35
35
|
}
|
|
36
36
|
export class TileConfig {
|
|
37
37
|
}
|
|
38
|
+
export class StepConfig {
|
|
39
|
+
}
|
|
38
40
|
export class Step {
|
|
39
41
|
}
|
|
40
42
|
export class ActionResponse {
|
|
@@ -86,4 +88,4 @@ export class FinAccount {
|
|
|
86
88
|
this.currency = "";
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFdBQVc7Q0FJdkI7QUFFRCxNQUFNLE9BQU8sU0FBUzs7QUFDRyxtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQiwyQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDeEIsMEJBQWdCLEdBQUcsR0FBRyxDQUFDO0FBR2hELE1BQU0sT0FBTyxnQkFBZ0I7Q0FJNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUF3QjtBQUFwQyxXQUFZLGFBQWE7SUFBRSwrQ0FBRyxDQUFBO0lBQUUsK0NBQUcsQ0FBQTtBQUFBLENBQUMsRUFBeEIsYUFBYSxLQUFiLGFBQWEsUUFBVztBQUVwQyxNQUFNLE9BQU8sbUJBQW1CO0NBZ0IvQjtBQUVELE1BQU0sT0FBTyxhQUFhO0NBR3pCO0FBRUQsTUFBTSxPQUFPLE1BQU07Q0FNbEI7QUFJRCxNQUFNLE9BQU8sWUFBWTtDQUt4QjtBQVFELE1BQU0sT0FBTyxhQUFhO0NBS3pCO0FBRUQsTUFBTSxPQUFPLFlBQVk7Q0FJeEI7QUFJRCxNQUFNLE9BQU8sVUFBVTtDQWN0QjtBQTJCRCxNQUFNLE9BQU8sVUFBVTtDQUt0QjtBQXVERCxNQUFNLE9BQU8sV0FBVztDQThCdkI7QUFnQ0QsTUFBTSxPQUFPLFVBQVU7Q0FNdEI7QUFlRCxNQUFNLE9BQU8sSUFBSTtDQUdoQjtBQUlELE1BQU0sT0FBTyxjQUFjO0NBRzFCO0FBTUQsTUFBTSxPQUFPLFNBQVM7SUFDcEI7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7Q0FhRjtBQUVELE1BQU0sT0FBTyxPQUFPO0lBRWxCO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztJQUU5QixDQUFDO0NBY0Y7QUFJRCxNQUFNLE9BQU8sV0FBVztJQUV0QjtRQUNFLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN0QixDQUFDO0NBV0Y7QUFFRCxNQUFNLE9BQU8sVUFBVTtJQUVyQjtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFFckIsQ0FBQztDQVFGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZSB9IGZyb20gXCIuL1RpbkNvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBcGlSZXNwb25zZSB7XHJcbiAgc3VjY2VzczogYm9vbGVhbjtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgZGF0YTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnN0YW50cyB7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1VTRVIgPSAnYSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX05BTUUgPSAnYic7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1JPTEVTID0gJ2MnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTiA9ICdkJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVE9LRU5fRVhQSVJFID0gJ2UnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9URU5BTlRfTkFNRSA9ICdmJztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExpc3REaWFsb2dDb25maWd7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgbGlzdE5hbWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGV0YWlsc1NvdXJjZSB7Um93LCBVcmx9XHJcblxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc0RpYWxvZ0NvbmZpZyB7XHJcblxyXG4gIGZvcm1Db25maWc6IEZvcm1Db25maWc7XHJcbiAgdGFibGVDb25maWc/OiBUYWJsZUNvbmZpZztcclxuICB0YWJsZUNvbmZpZ3M/OiBUYWJsZUNvbmZpZ1tdO1xyXG4gIGJ1dHRvbnM/OiBCdXR0b25bXTtcclxuICBkZXRhaWxzPyA6IGFueVxyXG4gIGhlcm9GaWVsZD8gOiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuICBtb2RlPzogJ2NyZWF0ZScgfCAnZWRpdCcgfCAndmlldydcclxuICB3aWR0aD86IHN0cmluZ1xyXG4gIC8vIHNldEhlcm8gPzogYm9vbGVhblxyXG4gIGRldGFpbHNTb3VyY2U/OiBEZXRhaWxzU291cmNlXHJcbiAgLy8gc291cmNlTWV0aG9kIDogJ3JvdycgfCAnaWQnIHwgJ2lkRmllbGQnXHJcbiAgLy8gcm93PzogYW55XHJcbiAgb3B0aW9ucz86IGRpYWxvZ09wdGlvbnNcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIGRpYWxvZ09wdGlvbnMge1xyXG4gIHdpZHRoPzogc3RyaW5nO1xyXG4gIGhlaWdodD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbntcclxuICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0J1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHBhcmFtcz8gOiBhbnlbXVxyXG4gIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nXHJcbiAgaXNGb3JtRGF0YT86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29uZmlnIHtcclxuICBmaWVsZHM6IFNlYXJjaEZpZWxkW11cclxuICBzZWFyY2hBY3Rpb24/OiBBY3Rpb25cclxuICBlbWFpbFJlc3VsdHM/OiBib29sZWFuXHJcbiAgdGlsZUNvbmZpZz86IFRpbGVDb25maWdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGaWVsZCBleHRlbmRzIEZpZWxke1xyXG5cclxuICBzaG93PzogYm9vbGVhblxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZXMge1xyXG5cclxuICBzdWJqZWN0PyA6IHN0cmluZ1xyXG4gIG1lc3NhZ2VzOiBBbGVydE1lc3NhZ2VbXVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZSB7XHJcbiAgdHlwZT86ICdzdWNjZXNzJyB8J2luZm8nIHwgJ3dhcm4nIHwgJ2NyaXRpY2FsJ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZ1xyXG4gIGZpeGVkVGl0bGU/OiBib29sZWFuXHJcbiAgYWxlcnRNZXNzYWdlcz86IEFsZXJ0TWVzc2FnZXNcclxuICBmaWVsZHM6IEZpZWxkW11cclxuICBtb2RlPzogJ2NyZWF0ZScgfCAnZWRpdCcgfCAndmlldydcclxuICBidXR0b24/IDogQnV0dG9uXHJcbiAgbXVsdGlDb2x1bW4/OiBib29sZWFuXHJcbiAgcmVzZXQ/OiBib29sZWFuXHJcbiAgZmlsZUFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRBY3Rpb24/OiBBY3Rpb25cclxuICBoZXJvRmllbGQ/OiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9ue1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZpc2libGU/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBkaXNwbGF5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBJY29uO1xyXG4gIGRpc2FibGVkPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgdGlwPzogc3RyaW5nXHJcbiAgZGlhbG9nPzogYm9vbGVhblxyXG4gIGFjdGlvbj86IEFjdGlvblxyXG4gIGNvbmZpcm0/OiBDb25maXJtXHJcbiAgaW5EaWFsb2c/OiBib29sZWFuXHJcbiAgaW5IZWFkZXI/OiBib29sZWFuXHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWdcclxuICBzZXRIZXJvRmllbGQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm0ge1xyXG4gIG1lc3NhZ2U6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbntcclxuICBjb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VDb25maWcge1xyXG5cclxuICB0aXRsZT86IHN0cmluZztcclxuICB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnO1xyXG4gIHNlYXJjaFRhYmxlQ29uZmlnPzogVGFibGVDb25maWc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlOiAndGV4dCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ211bHRpLXNlbGVjdCcgfCAnbW9uZXknIHwgJ251bWJlcicgfCAnc2VjdGlvbicgfCAnYmxhbmsnIHwgJ2NoaXAnIHwgJ2ZpbGUnIHwgJ2ZpbGUtdmlldycgfCAnaWNvbicgfCAnc3Bpbm5lcicgfCAnYnV0dG9uJyB8ICdsYWJlbCcgfCAnZW1haWwnIHwgJ2NvbXBvc2l0ZScgfCAnc3RyaW5nJztcclxuICBhbGlhcz86IHN0cmluZztcclxuICBvcHRpb25zPzogYW55W107XHJcbiAgb3B0aW9uRGlzcGxheT86IHN0cmluZ1xyXG4gIG9wdGlvblZhbHVlPzogc3RyaW5nXHJcbiAgZGVmYXVsdFZhbHVlPzogYW55XHJcbiAgZGVmYXVsdEZpcnN0VmFsdWU/OiBib29sZWFuXHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuXHJcbiAgbWluPzogYW55XHJcbiAgbWF4PzogYW55XHJcbiAgcm93cz86IG51bWJlclxyXG4gIHNwYW4/OiBib29sZWFuXHJcbiAgd2lkdGg/OiBzdHJpbmdcclxuICBzaXplPzogc3RyaW5nXHJcbiAgcmVhZG9ubHk/OiBib29sZWFuXHJcbiAgaGlkZGVuPzogYm9vbGVhblxyXG4gIHBhdGg/OiBzdHJpbmdcclxuICBrZXlGaWxlZE5hbWU/OiBzdHJpbmdcclxuICBoaW50Pzogc3RyaW5nXHJcbiAgbWFzdGVyRmllbGQ/OiBzdHJpbmdcclxuICBjaGlsZD86IENoaWxkRmllbGRcclxuICBjaGlsZHJlbj86IENoaWxkRmllbGRbXVxyXG4gIG1hc3Rlck9wdGlvbnM/OiBhbnlbXVxyXG4gIG51bGxhYmxlID86IGJvb2xlYW5cclxuICBjb3B5Q29udGVudD86IGJvb2xlYW5cclxuXHJcbiAgaGlkZU9uQ3JlYXRlID86IGJvb2xlYW5cclxuICBoaWRlT25FeGlzdHMgPzogYm9vbGVhblxyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIHJlYWRvbmx5Q29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcblxyXG4gIHBlZWtDb25maWcgPzogUGVla0RpYWxvZ0NvbmZpZztcclxuXHJcbiAgaW5mb01lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc3VmZml4Pzogc3RyaW5nO1xyXG5cclxuICBzdWJmaWVsZHM/OiBGaWVsZFtdO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQZWVrRGlhbG9nQ29uZmlne1xyXG4gIGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWdcclxuICBjcmVhdGU/IDogYm9vbGVhblxyXG4gIHZpZXc/IDogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENoaWxkRmllbGQge1xyXG4gIGNoaWxkRmllbGQ/OiBzdHJpbmdcclxuICBjaGlsZFZhbHVlRmllbGQ/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlne1xyXG4gIHRpdGxlPzogc3RyaW5nXHJcbiAgbm9EYXRhTWVzc2FnZSA/OiBzdHJpbmdcclxuICBjb2x1bW5zPyA6IENvbHVtbltdXHJcbiAgbWluQ29sdW1ucz86IHN0cmluZ1tdXHJcbiAgc2hvd0ZpbHRlcj86IGJvb2xlYW5cclxuICBzaG93RmlsdGVyQnV0dG9uPzogYm9vbGVhblxyXG4gIGhvbGRGaWx0ZXJTcGFjZT86IGJvb2xlYW5cclxuICBob2xkSGVhZGVyQnV0dG9uU3BhY2U/OiBib29sZWFuXHJcbiAgZWxldmF0aW9uPzogJ25vbmUnIHwgJ2xvdycgfCAnbWVkaXVtJyB8ICdoaWdoJ1xyXG4gIGZvcm1Db25maWc/OiBGb3JtQ29uZmlnXHJcbiAgc2VhcmNoQ29uZmlnPzogU2VhcmNoQ29uZmlnXHJcbiAgdGlsZUNvbmZpZz86IFRpbGVDb25maWdcclxuICBidXR0b25zPzogQnV0dG9uW11cclxuICBtaW5CdXR0b25zPzogc3RyaW5nW11cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZElERmllbGQgPzogc3RyaW5nXHJcbiAgbG9hZENyaXRlcmlhPzogc3RyaW5nXHJcbiAgbG9nUmVzcG9uc2U/OiBib29sZWFuXHJcbiAgZmxhdEJ1dHRvbnM/OiBib29sZWFuXHJcbiAgZ3JleU91dD86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIGhlcm9GaWVsZD86IGFueVxyXG4gIGhlcm9WYWx1ZT86IGFueVxyXG4gIGNvbGxhcHNlQnV0dG9ucz86IGJvb2xlYW5cclxuICBwYXJlbnREYXRhID8gOiBhbnlcclxuICBwYWdlU2l6ZXM/OiBudW1iZXJbXVxyXG4gIGhpZGVUYWJDb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuXHJcbiAgZG93bmxvYWQ/OiB7IGNvbHVtbnM6IHN0cmluZ1tdLCBmaWxlTmFtZT86IHN0cmluZywgaGlkZGVuQ29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47IH1cclxuICB1cGxvYWQ/OiB7IGFjdGlvbjogQWN0aW9uLCBtZXNzYWdlcz86IEFsZXJ0TWVzc2FnZVtdLCBoaWRkZW5Db25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjsgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHR5cGU/OiAndGV4dCcgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ21vbmV5JyB8ICdudW1iZXInIHwgJ2NoaXAnIHwgJ2ljb24nIHwgJ3NwaW5uZXInIHwgJ2J1dHRvbicgO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIGljb24/OiBJY29uO1xyXG4gIGNvbG9yPzogQ29sb3I7XHJcbiAgY29sb3JzPzogQ29sb3JbXTtcclxuICBpY29ucz86IEljb25bXTtcclxuICBvcHRpb25zPzogYW55W107XHJcbiAgb3B0aW9uRGlzcGxheT86IHN0cmluZ1xyXG4gIG9wdGlvblZhbHVlPzogc3RyaW5nXHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWdcclxuICBoaWRkZW5Db25kaXRpb24/OiAocGFyZW50RGF0YTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEljb257XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgY29sb3I/OiBzdHJpbmdcclxuICB0aXA/OiBzdHJpbmdcclxuICB0aXBGaWVsZD86IHN0cmluZ1xyXG4gIGJhbm5lckZpZWxkPzogc3RyaW5nXHJcbiAgY29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3Ige1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRpbGVDb25maWd7XHJcbiAgdGlsZXMgOiBUaWxlW11cclxuICBsb2FkQWN0aW9uPzogQWN0aW9uXHJcbiAgbG9hZEluaXQ/OiBib29sZWFuXHJcbiAgY2xpY2thYmxlPzogYm9vbGVhblxyXG4gIC8vIHJlbG9hZD86IGJvb2xlYW5cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbGUge1xyXG5cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgYWxpYXM/OiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgc2VsZWN0ZWRUaWxlPzogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgaW5mbz86IHN0cmluZztcclxuICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgc3VmZml4Pzogc3RyaW5nO1xyXG4gIGFjdGlvbj86IEFjdGlvbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFN0ZXAge1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGljb246IHN0cmluZztcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQWN0aW9uUmVzcG9uc2Uge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBcHBDb25maWcge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5hcHBOYW1lID0gXCJBcHAgTmFtZVwiO1xyXG4gICAgdGhpcy5sb2dvID0gXCJcIjtcclxuICAgIHRoaXMubG9nb1NpemUgPSBcIm5vcm1hbFwiO1xyXG4gICAgdGhpcy5BREF1dGggPSB0cnVlO1xyXG4gICAgdGhpcy5sb2NhbEF1dGggPSB0cnVlO1xyXG4gICAgdGhpcy5nb29nbGVBdXRoID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGZTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICB0aGlzLm11bHRpdGVuYW50ID0gZmFsc2U7XHJcbiAgICB0aGlzLm5hdmlnYXRpb24gPSAndG9wJztcclxuICAgIHRoaXMucHJvZ3Jlc3NMaW5lID0gZmFsc2U7XHJcbiAgfVxyXG4gIGFwcE5hbWU6IHN0cmluZztcclxuICBsb2dvOiBzdHJpbmc7XHJcbiAgbG9nb1NpemU6IHN0cmluZztcclxuICBBREF1dGg6IGJvb2xlYW47XHJcbiAgbG9jYWxBdXRoOiBib29sZWFuO1xyXG4gIGdvb2dsZUF1dGg6IGJvb2xlYW47XHJcbiAgc2VsZlNlcnZpY2U6IGJvb2xlYW47XHJcbiAgY2FwSXRlbXM6IENhcEl0ZW1bXTtcclxuICBtdWx0aXRlbmFudCA6IGJvb2xlYW47XHJcbiAgbmF2aWdhdGlvbiA6ICd0b3AnIHwgJ3NpZGUnXHJcbiAgcHJvZ3Jlc3NMaW5lOiBib29sZWFuO1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhcEl0ZW0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMubmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBcIk5ldyBDYXAgSXRlbVwiO1xyXG4gICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLnR5cGUgPSBcIlwiO1xyXG4gICAgdGhpcy5uZXdMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dNZW51ID0gdHJ1ZTtcclxuICAgIHRoaXMuaWdub3JlU3Vic0Rpc3BsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMubGluayA9IFwiXCI7XHJcbiAgICB0aGlzLmljb24gPSBcIm5hdmlnYXRlX25leHRcIjtcclxuXHJcbiAgfVxyXG5cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGlzcGxheTogc3RyaW5nO1xyXG4gIGVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgc2hvd01lbnU6IGJvb2xlYW47XHJcblxyXG4gIGlnbm9yZVN1YnNEaXNwbGF5OiBib29sZWFuO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBuZXdMaW5lOiBib29sZWFuO1xyXG4gIGxpbms6IHN0cmluZztcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgY2FwU3ViSXRlbXM6IENhcEl0ZW1bXTtcclxuXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uSUQgPSAwO1xyXG4gICAgdGhpcy5uYXJyYXRpb24gPSBcIlwiO1xyXG4gICAgdGhpcy5hbW91bnQgPSAnMCc7XHJcbiAgICB0aGlzLnR5cGUgPSAwO1xyXG4gICAgdGhpcy5kYXRlID0gXCJcIjtcclxuICAgIHRoaXMuYWNjb3VudElEID0gMDtcclxuICAgIHRoaXMuZGVzdGluYXRpb25JRCA9IDA7XHJcbiAgICB0aGlzLmNhdGVnb3J5SUQgPSAwO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNhY3Rpb25JRCA6IG51bWJlcjtcclxuICBuYXJyYXRpb24gOiBzdHJpbmc7XHJcbiAgYW1vdW50IDogc3RyaW5nO1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICBkYXRlIDogc3RyaW5nO1xyXG4gIGFjY291bnRJRCA6IG51bWJlcjtcclxuICBkZXN0aW5hdGlvbklEIDogbnVtYmVyO1xyXG4gIGNhdGVnb3J5SUQgOiBudW1iZXI7XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmluQWNjb3VudCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCl7XHJcbiAgICB0aGlzLmFjY291bnRJRCA9IDA7XHJcbiAgICB0aGlzLm5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5kZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmN1cnJlbmN5ID0gXCJcIjtcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgYWNjb3VudElEOiBudW1iZXJcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBjdXJyZW5jeTogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuIl19
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL0NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFdBQVc7Q0FJdkI7QUFFRCxNQUFNLE9BQU8sU0FBUzs7QUFDRyxtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixtQkFBUyxHQUFHLEdBQUcsQ0FBQztBQUNoQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQixvQkFBVSxHQUFHLEdBQUcsQ0FBQztBQUNqQiwyQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFDeEIsMEJBQWdCLEdBQUcsR0FBRyxDQUFDO0FBR2hELE1BQU0sT0FBTyxnQkFBZ0I7Q0FJNUI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUF3QjtBQUFwQyxXQUFZLGFBQWE7SUFBRSwrQ0FBRyxDQUFBO0lBQUUsK0NBQUcsQ0FBQTtBQUFBLENBQUMsRUFBeEIsYUFBYSxLQUFiLGFBQWEsUUFBVztBQUVwQyxNQUFNLE9BQU8sbUJBQW1CO0NBaUIvQjtBQUVELE1BQU0sT0FBTyxhQUFhO0NBR3pCO0FBRUQsTUFBTSxPQUFPLE1BQU07Q0FNbEI7QUFJRCxNQUFNLE9BQU8sWUFBWTtDQUt4QjtBQVFELE1BQU0sT0FBTyxhQUFhO0NBS3pCO0FBRUQsTUFBTSxPQUFPLFlBQVk7Q0FJeEI7QUFJRCxNQUFNLE9BQU8sVUFBVTtDQWN0QjtBQTJCRCxNQUFNLE9BQU8sVUFBVTtDQUt0QjtBQTBERCxNQUFNLE9BQU8sV0FBVztDQWdDdkI7QUFpQ0QsTUFBTSxPQUFPLFVBQVU7Q0FNdEI7QUFlRCxNQUFNLE9BQU8sVUFBVTtDQUd0QjtBQUVELE1BQU0sT0FBTyxJQUFJO0NBS2hCO0FBSUQsTUFBTSxPQUFPLGNBQWM7Q0FHMUI7QUFNRCxNQUFNLE9BQU8sU0FBUztJQUNwQjtRQUNFLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQWFGO0FBRUQsTUFBTSxPQUFPLE9BQU87SUFFbEI7UUFDRSxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO0lBRTlCLENBQUM7Q0FjRjtBQUlELE1BQU0sT0FBTyxXQUFXO0lBRXRCO1FBQ0UsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Q0FXRjtBQUVELE1BQU0sT0FBTyxVQUFVO0lBRXJCO1FBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUVyQixDQUFDO0NBUUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlIH0gZnJvbSBcIi4vVGluQ29yZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFwaVJlc3BvbnNlIHtcclxuICBzdWNjZXNzOiBib29sZWFuO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBkYXRhO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uc3RhbnRzIHtcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfVVNFUiA9ICdhJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfTkFNRSA9ICdiJztcclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFVVEhfUk9MRVMgPSAnYyc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RPS0VOID0gJ2QnO1xyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQVVUSF9UT0tFTl9FWFBJUkUgPSAnZSc7XHJcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVVRIX1RFTkFOVF9OQU1FID0gJ2YnO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTGlzdERpYWxvZ0NvbmZpZ3tcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBsaXN0TmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEZXRhaWxzU291cmNlIHtSb3csIFVybH1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgc3RlcENvbmZpZz8gOiBTdGVwQ29uZmlnO1xyXG4gIGZvcm1Db25maWc6IEZvcm1Db25maWc7XHJcbiAgdGFibGVDb25maWc/OiBUYWJsZUNvbmZpZztcclxuICB0YWJsZUNvbmZpZ3M/OiBUYWJsZUNvbmZpZ1tdO1xyXG4gIGJ1dHRvbnM/OiBCdXR0b25bXTtcclxuICBkZXRhaWxzPyA6IGFueVxyXG4gIGhlcm9GaWVsZD8gOiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuICBtb2RlPzogJ2NyZWF0ZScgfCAnZWRpdCcgfCAndmlldydcclxuICB3aWR0aD86IHN0cmluZ1xyXG4gIC8vIHNldEhlcm8gPzogYm9vbGVhblxyXG4gIGRldGFpbHNTb3VyY2U/OiBEZXRhaWxzU291cmNlXHJcbiAgLy8gc291cmNlTWV0aG9kIDogJ3JvdycgfCAnaWQnIHwgJ2lkRmllbGQnXHJcbiAgLy8gcm93PzogYW55XHJcbiAgb3B0aW9ucz86IGRpYWxvZ09wdGlvbnNcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIGRpYWxvZ09wdGlvbnMge1xyXG4gIHdpZHRoPzogc3RyaW5nO1xyXG4gIGhlaWdodD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvbntcclxuICBtZXRob2Q/OiAnZ2V0JyB8ICdwb3N0J1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHBhcmFtcz8gOiBhbnlbXVxyXG4gIHN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nXHJcbiAgaXNGb3JtRGF0YT86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgU2VhcmNoQ29uZmlnIHtcclxuICBmaWVsZHM6IFNlYXJjaEZpZWxkW11cclxuICBzZWFyY2hBY3Rpb24/OiBBY3Rpb25cclxuICBlbWFpbFJlc3VsdHM/OiBib29sZWFuXHJcbiAgdGlsZUNvbmZpZz86IFRpbGVDb25maWdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hGaWVsZCBleHRlbmRzIEZpZWxke1xyXG5cclxuICBzaG93PzogYm9vbGVhblxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZXMge1xyXG5cclxuICBzdWJqZWN0PyA6IHN0cmluZ1xyXG4gIG1lc3NhZ2VzOiBBbGVydE1lc3NhZ2VbXVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFsZXJ0TWVzc2FnZSB7XHJcbiAgdHlwZT86ICdzdWNjZXNzJyB8J2luZm8nIHwgJ3dhcm4nIHwgJ2NyaXRpY2FsJ1xyXG4gIGNvbnRlbnQ6IHN0cmluZ1xyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29uZmlnIHtcclxuICB0aXRsZT86IHN0cmluZ1xyXG4gIGZpeGVkVGl0bGU/OiBib29sZWFuXHJcbiAgYWxlcnRNZXNzYWdlcz86IEFsZXJ0TWVzc2FnZXNcclxuICBmaWVsZHM6IEZpZWxkW11cclxuICBtb2RlPzogJ2NyZWF0ZScgfCAnZWRpdCcgfCAndmlldydcclxuICBidXR0b24/IDogQnV0dG9uXHJcbiAgbXVsdGlDb2x1bW4/OiBib29sZWFuXHJcbiAgcmVzZXQ/OiBib29sZWFuXHJcbiAgZmlsZUFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRBY3Rpb24/OiBBY3Rpb25cclxuICBoZXJvRmllbGQ/OiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQnV0dG9ue1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIHZpc2libGU/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBkaXNwbGF5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBJY29uO1xyXG4gIGRpc2FibGVkPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgdGlwPzogc3RyaW5nXHJcbiAgZGlhbG9nPzogYm9vbGVhblxyXG4gIGFjdGlvbj86IEFjdGlvblxyXG4gIGNvbmZpcm0/OiBDb25maXJtXHJcbiAgaW5EaWFsb2c/OiBib29sZWFuXHJcbiAgaW5IZWFkZXI/OiBib29sZWFuXHJcbiAgZGV0YWlsc0NvbmZpZz86IERldGFpbHNEaWFsb2dDb25maWdcclxuICBzZXRIZXJvRmllbGQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpcm0ge1xyXG4gIG1lc3NhZ2U6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmRpdGlvbntcclxuICBjb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBhZ2VDb25maWcge1xyXG5cclxuICB0aXRsZT86IHN0cmluZztcclxuICB0YWJsZUNvbmZpZz86IFRhYmxlQ29uZmlnO1xyXG4gIHNlYXJjaFRhYmxlQ29uZmlnPzogVGFibGVDb25maWc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmllbGQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0eXBlOiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICdkYXRldGltZXNlYycgfCAnY2hlY2tib3gnIHwgJ3NlbGVjdCcgfCAnbXVsdGktc2VsZWN0JyB8ICdtb25leScgfCAnbnVtYmVyJyB8ICdzZWN0aW9uJyB8ICdibGFuaycgfCAnY2hpcCcgfCAnZmlsZScgfCAnZmlsZS12aWV3JyB8ICdpY29uJyB8ICdzcGlubmVyJyB8ICdidXR0b24nIHwgJ2xhYmVsJyB8ICdlbWFpbCcgfCAnY29tcG9zaXRlJyB8ICdzdHJpbmcnO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIG9wdGlvbnM/OiBhbnlbXTtcclxuICBvcHRpb25EaXNwbGF5Pzogc3RyaW5nXHJcbiAgb3B0aW9uVmFsdWU/OiBzdHJpbmdcclxuICBkZWZhdWx0VmFsdWU/OiBhbnlcclxuICBkZWZhdWx0Rmlyc3RWYWx1ZT86IGJvb2xlYW5cclxuICByZXF1aXJlZD86IGJvb2xlYW5cclxuICBtaW4/OiBhbnlcclxuICBtYXg/OiBhbnlcclxuICByb3dzPzogbnVtYmVyXHJcbiAgc3Bhbj86IGJvb2xlYW5cclxuICB3aWR0aD86IHN0cmluZ1xyXG4gIHNpemU/OiBzdHJpbmdcclxuICByZWFkb25seT86IGJvb2xlYW5cclxuICBoaWRkZW4/OiBib29sZWFuXHJcbiAgcGF0aD86IHN0cmluZ1xyXG4gIGtleUZpZWxkPzogc3RyaW5nXHJcbiAgaGludD86IHN0cmluZ1xyXG4gIG1hc3RlckZpZWxkPzogc3RyaW5nXHJcbiAgY2hpbGQ/OiBDaGlsZEZpZWxkXHJcbiAgY2hpbGRyZW4/OiBDaGlsZEZpZWxkW11cclxuICBtYXN0ZXJPcHRpb25zPzogYW55W11cclxuICBudWxsYWJsZSA/OiBib29sZWFuXHJcbiAgY29weUNvbnRlbnQ/OiBib29sZWFuXHJcbiAgY2xlYXJDb250ZW50PzogYm9vbGVhblxyXG4gIGZvcm1hdD86ICd0ZXh0JyB8ICdtb25leScgfCAnZGF0ZScgfCAnZGF0ZXRpbWUnXHJcbiAgaGlkZU9uQ3JlYXRlID86IGJvb2xlYW5cclxuICBoaWRlT25FeGlzdHMgPzogYm9vbGVhblxyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIHJlYWRvbmx5Q29uZGl0aW9uPzogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XHJcblxyXG4gIHBlZWtDb25maWcgPzogUGVla0RpYWxvZ0NvbmZpZztcclxuXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG5cclxuICBpbmZvTWVzc2FnZT86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcblxyXG4gIHN1YmZpZWxkcz86IEZpZWxkW107XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBlZWtEaWFsb2dDb25maWd7XHJcbiAgZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZ1xyXG4gIGNyZWF0ZT8gOiBib29sZWFuXHJcbiAgdmlldz8gOiBib29sZWFuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hpbGRGaWVsZCB7XHJcbiAgY2hpbGRGaWVsZD86IHN0cmluZ1xyXG4gIGNoaWxkVmFsdWVGaWVsZD86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVDb25maWd7XHJcbiAgdGl0bGU/OiBzdHJpbmdcclxuICBub0RhdGFNZXNzYWdlID86IHN0cmluZ1xyXG4gIGNvbHVtbnM/IDogQ29sdW1uW11cclxuICBtaW5Db2x1bW5zPzogc3RyaW5nW11cclxuICBzaG93RmlsdGVyPzogYm9vbGVhblxyXG4gIHNob3dGaWx0ZXJCdXR0b24/OiBib29sZWFuXHJcbiAgaG9sZEZpbHRlclNwYWNlPzogYm9vbGVhblxyXG4gIGhvbGRIZWFkZXJCdXR0b25TcGFjZT86IGJvb2xlYW5cclxuICBlbGV2YXRpb24/OiAnbm9uZScgfCAnbG93JyB8ICdtZWRpdW0nIHwgJ2hpZ2gnXHJcbiAgZm9ybUNvbmZpZz86IEZvcm1Db25maWdcclxuICBzZWFyY2hDb25maWc/OiBTZWFyY2hDb25maWdcclxuICB0aWxlQ29uZmlnPzogVGlsZUNvbmZpZ1xyXG4gIHN0ZXBDb25maWc/OiBTdGVwQ29uZmlnXHJcbiAgYnV0dG9ucz86IEJ1dHRvbltdXHJcbiAgbWluQnV0dG9ucz86IHN0cmluZ1tdXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRJREZpZWxkID86IHN0cmluZ1xyXG4gIGxvYWRDcml0ZXJpYT86IHN0cmluZ1xyXG4gIGxvZ1Jlc3BvbnNlPzogYm9vbGVhblxyXG4gIGZsYXRCdXR0b25zPzogYm9vbGVhblxyXG4gIGdyZXlPdXQ/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxuICBoZXJvRmllbGQ/OiBhbnlcclxuICBoZXJvVmFsdWU/OiBhbnlcclxuICBjb2xsYXBzZUJ1dHRvbnM/OiBib29sZWFuXHJcbiAgcGFyZW50RGF0YSA/IDogYW55XHJcbiAgcGFnZVNpemVzPzogbnVtYmVyW11cclxuICBtYXhCdXR0b25zPzogbnVtYmVyXHJcbiAgaGlkZVRhYkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG5cclxuICBkb3dubG9hZD86IHsgY29sdW1uczogc3RyaW5nW10sIGZpbGVOYW1lPzogc3RyaW5nLCBoaWRkZW5Db25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjsgfVxyXG4gIHVwbG9hZD86IHsgYWN0aW9uOiBBY3Rpb24sIG1lc3NhZ2VzPzogQWxlcnRNZXNzYWdlW10sIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZT86ICd0ZXh0JyB8ICdkYXRlJyB8ICdkYXRldGltZScgfCAnZGF0ZXRpbWVzZWMnIHwgJ2NoZWNrYm94JyB8ICdzZWxlY3QnIHwgJ21vbmV5JyB8ICdudW1iZXInIHwgJ2NoaXAnIHwgJ2ljb24nIHwgJ3NwaW5uZXInIHwgJ2J1dHRvbicgO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIG1heD86IG51bWJlcjtcclxuICBpY29uPzogSWNvbjtcclxuICBjb2xvcj86IENvbG9yO1xyXG4gIGNvbG9ycz86IENvbG9yW107XHJcbiAgaWNvbnM/OiBJY29uW107XHJcbiAgb3B0aW9ucz86IGFueVtdO1xyXG4gIG9wdGlvbkRpc3BsYXk/OiBzdHJpbmdcclxuICBvcHRpb25WYWx1ZT86IHN0cmluZ1xyXG4gIGRldGFpbHNDb25maWc/OiBEZXRhaWxzRGlhbG9nQ29uZmlnXHJcbiAgaGlkZGVuQ29uZGl0aW9uPzogKHBhcmVudERhdGE6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJY29ue1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvbG9yPzogc3RyaW5nXHJcbiAgdGlwPzogc3RyaW5nXHJcbiAgdGlwRmllbGQ/OiBzdHJpbmdcclxuICBiYW5uZXJGaWVsZD86IHN0cmluZ1xyXG4gIGNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbG9yIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb25kaXRpb24/OiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBUaWxlQ29uZmlne1xyXG4gIHRpbGVzIDogVGlsZVtdXHJcbiAgbG9hZEFjdGlvbj86IEFjdGlvblxyXG4gIGxvYWRJbml0PzogYm9vbGVhblxyXG4gIGNsaWNrYWJsZT86IGJvb2xlYW5cclxuICAvLyByZWxvYWQ/OiBib29sZWFuXHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBUaWxlIHtcclxuXHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFsaWFzPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkVGlsZT86IHN0cmluZztcclxuICBoaWRkZW4/OiBib29sZWFuO1xyXG4gIGluZm8/OiBzdHJpbmc7XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICBhY3Rpb24/OiBBY3Rpb247XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdGVwQ29uZmlne1xyXG4gIHN0ZXBzIDogU3RlcFtdXHJcbiAgdmFsdWVGaWVsZD86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3RlcCB7XHJcbiAgbmFtZTogc3RyaW5nXHJcbiAgdmFsdWU/OiBhbnlcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGhpZGRlbkNvbmRpdGlvbj86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25SZXNwb25zZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZyB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmFwcE5hbWUgPSBcIkFwcCBOYW1lXCI7XHJcbiAgICB0aGlzLmxvZ28gPSBcIlwiO1xyXG4gICAgdGhpcy5sb2dvU2l6ZSA9IFwibm9ybWFsXCI7XHJcbiAgICB0aGlzLkFEQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmxvY2FsQXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLmdvb2dsZUF1dGggPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZlNlcnZpY2UgPSBmYWxzZTtcclxuICAgIHRoaXMubXVsdGl0ZW5hbnQgPSBmYWxzZTtcclxuICAgIHRoaXMubmF2aWdhdGlvbiA9ICd0b3AnO1xyXG4gICAgdGhpcy5wcm9ncmVzc0xpbmUgPSBmYWxzZTtcclxuICB9XHJcbiAgYXBwTmFtZTogc3RyaW5nO1xyXG4gIGxvZ286IHN0cmluZztcclxuICBsb2dvU2l6ZTogc3RyaW5nO1xyXG4gIEFEQXV0aDogYm9vbGVhbjtcclxuICBsb2NhbEF1dGg6IGJvb2xlYW47XHJcbiAgZ29vZ2xlQXV0aDogYm9vbGVhbjtcclxuICBzZWxmU2VydmljZTogYm9vbGVhbjtcclxuICBjYXBJdGVtczogQ2FwSXRlbVtdO1xyXG4gIG11bHRpdGVuYW50IDogYm9vbGVhbjtcclxuICBuYXZpZ2F0aW9uIDogJ3RvcCcgfCAnc2lkZSdcclxuICBwcm9ncmVzc0xpbmU6IGJvb2xlYW47XHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FwSXRlbSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5uYW1lID0gXCJcIjtcclxuICAgIHRoaXMuZGlzcGxheSA9IFwiTmV3IENhcCBJdGVtXCI7XHJcbiAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMudHlwZSA9IFwiXCI7XHJcbiAgICB0aGlzLm5ld0xpbmUgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd01lbnUgPSB0cnVlO1xyXG4gICAgdGhpcy5pZ25vcmVTdWJzRGlzcGxheSA9IGZhbHNlO1xyXG4gICAgdGhpcy5saW5rID0gXCJcIjtcclxuICAgIHRoaXMuaWNvbiA9IFwibmF2aWdhdGVfbmV4dFwiO1xyXG5cclxuICB9XHJcblxyXG4gIG5hbWU6IHN0cmluZztcclxuICBkaXNwbGF5OiBzdHJpbmc7XHJcbiAgZW5hYmxlZDogYm9vbGVhbjtcclxuICBzaG93TWVudTogYm9vbGVhbjtcclxuXHJcbiAgaWdub3JlU3Vic0Rpc3BsYXk6IGJvb2xlYW47XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIG5ld0xpbmU6IGJvb2xlYW47XHJcbiAgbGluazogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxuICBjYXBTdWJJdGVtczogQ2FwSXRlbVtdO1xyXG5cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24ge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25JRCA9IDA7XHJcbiAgICB0aGlzLm5hcnJhdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmFtb3VudCA9ICcwJztcclxuICAgIHRoaXMudHlwZSA9IDA7XHJcbiAgICB0aGlzLmRhdGUgPSBcIlwiO1xyXG4gICAgdGhpcy5hY2NvdW50SUQgPSAwO1xyXG4gICAgdGhpcy5kZXN0aW5hdGlvbklEID0gMDtcclxuICAgIHRoaXMuY2F0ZWdvcnlJRCA9IDA7XHJcbiAgfVxyXG5cclxuICB0cmFuc2FjdGlvbklEIDogbnVtYmVyO1xyXG4gIG5hcnJhdGlvbiA6IHN0cmluZztcclxuICBhbW91bnQgOiBzdHJpbmc7XHJcbiAgdHlwZTogbnVtYmVyO1xyXG4gIGRhdGUgOiBzdHJpbmc7XHJcbiAgYWNjb3VudElEIDogbnVtYmVyO1xyXG4gIGRlc3RpbmF0aW9uSUQgOiBudW1iZXI7XHJcbiAgY2F0ZWdvcnlJRCA6IG51bWJlcjtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaW5BY2NvdW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKXtcclxuICAgIHRoaXMuYWNjb3VudElEID0gMDtcclxuICAgIHRoaXMubmFtZSA9IFwiXCI7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gXCJcIjtcclxuICAgIHRoaXMuY3VycmVuY3kgPSBcIlwiO1xyXG5cclxuICB9XHJcblxyXG5cclxuICBhY2NvdW50SUQ6IG51bWJlclxyXG4gIG5hbWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGN1cnJlbmN5OiBzdHJpbmc7XHJcblxyXG59XHJcblxyXG4iXX0=
|
|
@@ -103,7 +103,7 @@ export class Core {
|
|
|
103
103
|
}
|
|
104
104
|
static getInitialValue(field) {
|
|
105
105
|
if (field.defaultValue) {
|
|
106
|
-
if (field.type == 'date' || field.type == 'datetime' && field.defaultValue == 'now')
|
|
106
|
+
if ((field.type == 'date' || field.type == 'datetime') && field.defaultValue == 'now')
|
|
107
107
|
return this.nowDate(true);
|
|
108
108
|
return field.defaultValue;
|
|
109
109
|
}
|
|
@@ -306,9 +306,10 @@ export class DetailsDialogProcessor {
|
|
|
306
306
|
const tableConfig = detailsConfig.tableConfig;
|
|
307
307
|
const tableConfigs = detailsConfig.tableConfigs;
|
|
308
308
|
const formConfig = detailsConfig.formConfig;
|
|
309
|
+
const stepConfig = detailsConfig.stepConfig;
|
|
309
310
|
const buttons = detailsConfig.buttons;
|
|
310
311
|
formConfig.mode = formConfig.mode ?? "view";
|
|
311
|
-
return { tableConfig, tableConfigs, formConfig, buttons };
|
|
312
|
+
return { tableConfig, tableConfigs, formConfig, stepConfig, buttons };
|
|
312
313
|
}
|
|
313
314
|
static setHeroValue(detailsConfig, details) {
|
|
314
315
|
// console.log(detailsConfig)
|
|
@@ -346,28 +347,36 @@ export class DetailsDialogProcessor {
|
|
|
346
347
|
console.log(formConfig);
|
|
347
348
|
//Choose source
|
|
348
349
|
if (detailsConfig.detailsSource == DetailsSource.Row) {
|
|
349
|
-
console.log("Details
|
|
350
|
+
console.log("Data from Details - Row option");
|
|
350
351
|
details = detailsConfig.details;
|
|
351
352
|
}
|
|
352
353
|
else if (detailsConfig.detailsSource == DetailsSource.Url) {
|
|
353
|
-
console.log("
|
|
354
|
+
console.log("Data from Url option");
|
|
354
355
|
action = this.loadDetailsFromUrl(detailsConfig, formConfig);
|
|
355
356
|
loadByAction = true;
|
|
356
357
|
}
|
|
357
358
|
else {
|
|
358
|
-
console.log("
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
console.log(detailsConfig);
|
|
362
|
-
details = detailsConfig.details;
|
|
363
|
-
}
|
|
364
|
-
else if (formConfig.loadAction) {
|
|
359
|
+
console.log("Guessing Data Source");
|
|
360
|
+
//new logic
|
|
361
|
+
if (formConfig.loadAction) {
|
|
365
362
|
action = this.loadDetailsFromUrl(detailsConfig, formConfig);
|
|
366
363
|
loadByAction = true;
|
|
367
364
|
}
|
|
368
365
|
else {
|
|
369
|
-
console.log("
|
|
366
|
+
console.log("Data from Details - Default option");
|
|
367
|
+
console.log(detailsConfig);
|
|
368
|
+
details = detailsConfig.details;
|
|
370
369
|
}
|
|
370
|
+
// if (detailsConfig.details && !detailsConfig.heroField && !detailsConfig.heroValue) {
|
|
371
|
+
// console.log("using form data from details");
|
|
372
|
+
// console.log(detailsConfig);
|
|
373
|
+
// details = detailsConfig.details;
|
|
374
|
+
// } else if (formConfig.loadAction) {
|
|
375
|
+
// action = this.loadDetailsFromUrl(detailsConfig, formConfig);
|
|
376
|
+
// loadByAction = true;
|
|
377
|
+
// } else {
|
|
378
|
+
// console.log("auto data source failed to pick, trying source config");
|
|
379
|
+
// }
|
|
371
380
|
}
|
|
372
381
|
return { details, loadByAction, action };
|
|
373
382
|
}
|
|
@@ -375,11 +384,15 @@ export class DetailsDialogProcessor {
|
|
|
375
384
|
let action;
|
|
376
385
|
if (formConfig.loadAction) {
|
|
377
386
|
if (detailsConfig.heroField && detailsConfig.details) {
|
|
378
|
-
console.log("
|
|
387
|
+
console.log("DetailsConfig Hero ID Field " + detailsConfig.heroField);
|
|
379
388
|
action = { url: `${formConfig.loadAction.url}/${detailsConfig.details[detailsConfig.heroField]}` };
|
|
380
389
|
}
|
|
390
|
+
else if (formConfig.heroField && detailsConfig.details) {
|
|
391
|
+
console.log("FormConfig Hero ID Field " + formConfig.heroField);
|
|
392
|
+
action = { url: `${formConfig.loadAction.url}/${detailsConfig.details[formConfig.heroField]}` };
|
|
393
|
+
}
|
|
381
394
|
else if (detailsConfig.heroValue) {
|
|
382
|
-
console.log("
|
|
395
|
+
console.log("Defined Hero Value " + detailsConfig.heroValue);
|
|
383
396
|
action = { url: `${formConfig.loadAction.url}/${detailsConfig.heroValue}` };
|
|
384
397
|
}
|
|
385
398
|
else {
|
|
@@ -407,4 +420,4 @@ export class DetailsDialogProcessor {
|
|
|
407
420
|
return { extraButtons, createButton, editButton, deleteButton };
|
|
408
421
|
}
|
|
409
422
|
}
|
|
410
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGluQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL1RpbkNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQXFCLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE1BQU0sT0FBTyxJQUFJO0lBR1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFB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LEVBQUU7WUFDWCxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUNoQyxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4STtZQUNELFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztZQUN0RCxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDbEQsWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldGFpbHNEaWFsb2dDb25maWcsIERldGFpbHNTb3VyY2UsIEZpZWxkLCBGb3JtQ29uZmlnIH0gZnJvbSBcIi4vQ2xhc3Nlc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvcmUge1xyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkZWVwQ2xvbmUob2JqKSB7XHJcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICBjb25zdCBhcnJDb3B5ID0gW107XHJcbiAgICAgIG9iai5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGFyckNvcHlbaW5kZXhdID0gdGhpcy5kZWVwQ2xvbmUoaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYXJyQ29weTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYmpDb3B5ID0ge307XHJcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgb2JqQ29weVtrZXldID0gdGhpcy5kZWVwQ2xvbmUob2JqW2tleV0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2JqQ29weTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjYW1lbFRvV29yZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBsZXQgdiA9IHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc3Vic3RyaW5nKDEpXHJcbiAgICByZXR1cm4gdi5yZXBsYWNlKC8oW0EtWl0rKSooW0EtWl1bYS16XSkvZywgXCIkMSAkMlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVPYmplY3QoZmllbGRzOiBGaWVsZFtdKSB7XHJcblxyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuXHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9ICdzZWN0aW9uJyAmJiBmaWVsZC50eXBlICE9ICdibGFuaycgKXtcclxuICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdGhpcy5nZXRJbml0aWFsVmFsdWUoZmllbGQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coZGF0YSlcclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcmVzZXRPYmplY3QoZmllbGRzOiBGaWVsZFtdLCBkYXRhKSB7XHJcblxyXG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBpZiAoZmllbGQudHlwZSAhPSAnc2VjdGlvbicgJiYgZmllbGQudHlwZSAhPSAnYmxhbmsnKSB7XHJcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9IHRoaXMuZ2V0SW5pdGlhbFZhbHVlKGZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB0ZXN0VmlzaWJsZShjb25maWcgOiBGb3JtQ29uZmlnLCBkYXRhLCBmOiBGaWVsZCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmIChmLmhpZGRlbikgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChjb25maWcubW9kZSA9PSAnY3JlYXRlJyAmJiBmLmhpZGVPbkNyZWF0ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChjb25maWcubW9kZSAhPSAnY3JlYXRlJyAmJiBmLmhpZGVPbkV4aXN0cykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGYuaGlkZGVuQ29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhZi5oaWRkZW5Db25kaXRpb24oZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHRlc3RWaXNpYmxlSGVhZGVyQnV0dG9uKGRhdGEsIGJ0bik6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmIChidG4uaGlkZGVuQ29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhYnRuLmhpZGRlbkNvbmRpdGlvbihkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmlzaWJsZVN1YmZpZWxkcyhjb25maWc6IEZvcm1Db25maWcsIGRhdGEsZmllbGQ6IEZpZWxkICk6IEZpZWxkW10ge1xyXG4gICAgcmV0dXJuIGZpZWxkLnN1YmZpZWxkcz8uZmlsdGVyKHN1YmZpZWxkID0+IENvcmUudGVzdFZpc2libGUoY29uZmlnLCBkYXRhLCBzdWJmaWVsZCkpIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZU9iamVjdChmaWVsZHM6IEZpZWxkW10sIGRhdGEpOiBzdHJpbmcge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiVmFsaWRhdGlvbnNcIilcclxuXHJcbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcclxuXHJcbiAgICAgIGlmIChmaWVsZC50eXBlID09ICdmaWxlJyB8fCBmaWVsZC50eXBlID09ICdmaWxlLXZpZXcnIHx8IGZpZWxkLnR5cGUgPT0gJ2JsYW5rJyB8fCBmaWVsZC50eXBlID09ICdzZWN0aW9uJyApIGNvbnRpbnVlXHJcblxyXG5cclxuXHJcbiAgICAgIGxldCBuYW1lID0gZmllbGQuYWxpYXMgPz8gdGhpcy5jYW1lbFRvV29yZHMoZmllbGQubmFtZSk7XHJcbiAgICAgIGxldCBkID0gZGF0YVtmaWVsZC5uYW1lXTtcclxuXHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhuYW1lICsgJyAnICsgZClcclxuXHJcbiAgICAgIGlmIChmaWVsZC5yZXF1aXJlZCl7XHJcblxyXG4gICAgICAgIGlmIChkID09IHVuZGVmaW5lZCB8fCBkID09IG51bGwpIHJldHVybiBgJHtuYW1lfSBpcyByZXF1aXJlZGA7XHJcblxyXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09ICd0ZXh0Jyl7XHJcblxyXG4gICAgICAgICAgaWYgKGQgPT0gJycpIHJldHVybiBgUGxlYXNlIGVudGVyICR7bmFtZX1gO1xyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5taW4gJiYgZC5sZW5ndGggPCBmaWVsZC5taW4pIHJldHVybiBgTWluaW11bSAgJHtuYW1lfSBsZW5ndGggaXMgJHtmaWVsZC5taW59YFxyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5tYXggJiYgZC5sZW5ndGggPiBmaWVsZC5tYXgpIHJldHVybiBgTWF4aW11bSAke25hbWV9IGxlbmd0aCBpcyAke2ZpZWxkLm1heH1gXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChmaWVsZC50eXBlID09ICdudW1iZXInIHx8IGZpZWxkLnR5cGUgPT0gJ21vbmV5JyB8fCBmaWVsZC50eXBlID09ICdkYXRlJyl7XHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLm1pbiAmJiBkIDwgZmllbGQubWluKSByZXR1cm4gYE1pbmltdW0gICR7bmFtZX0gaXMgJHtmaWVsZC5taW59YFxyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5tYXggJiYgZCA+IGZpZWxkLm1heCkgcmV0dXJuIGBNYXhpbXVtICR7bmFtZX0gaXMgJHtmaWVsZC5tYXh9YFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZmllbGQudHlwZSA9PSAnc2VsZWN0Jykge1xyXG5cclxuICAgICAgICAgIGlmICh0eXBlb2YoZCkgPT0gJ3N0cmluZycgJiYgZCA9PSAnJykgcmV0dXJuIGBQbGVhc2Ugc2VsZWN0ICR7bmFtZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5pdGlhbFZhbHVlKGZpZWxkOiBGaWVsZCkge1xyXG5cclxuICAgIGlmIChmaWVsZC5kZWZhdWx0VmFsdWUpe1xyXG5cclxuICAgICAgaWYgKGZpZWxkLnR5cGUgPT0gJ2RhdGUnIHx8IGZpZWxkLnR5cGUgPT0gJ2RhdGV0aW1lJyAmJiBmaWVsZC5kZWZhdWx0VmFsdWUgPT0gJ25vdycpIHJldHVybiB0aGlzLm5vd0RhdGUodHJ1ZSk7XHJcblxyXG4gICAgICByZXR1cm4gZmllbGQuZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWVsZC50eXBlID09ICdzZWxlY3QnICYmIChmaWVsZC5oaWRkZW4gfHwgZmllbGQuaGlkZU9uQ3JlYXRlKSkgcmV0dXJuIDA7XHJcblxyXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgY2FzZSAnbW9uZXknOlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICByZXR1cm4gdGhpcy5ub3dEYXRlKHRydWUpO1xyXG4gICAgICBjYXNlICdjaGVja2JveCc6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlICdzZWxlY3QnOlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldENsb25lKHgpIHtcclxuICAgIHJldHVybiB0aGlzLmRlZXBDbG9uZSh4KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TnVtYmVyKHZhbHVlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PSBcIlwiKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9ubHlOdW1iZXJzID0gdmFsdWUucmVwbGFjZSgvW15cXGQuLV0vZywgJycpO1xyXG4gICAgcmV0dXJuIG9ubHlOdW1iZXJzXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZpcnN0RGF5T2ZNb250aCgpIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW1haWxJc1ZhbGlkKGVtYWlsKSB7XHJcbiAgICAvLyByZXR1cm4gL1xcUytAXFxTK1xcLlxcUysvLnRlc3QoZW1haWwpXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRVTkNQYXRoKHBhdGg6IHN0cmluZykge1xyXG4gICAgLy8gcmV0dXJuIC9cXFxcXFxcXChbYS16QS1aMC05Xy4k4pePLV0rKVxcXFwoW2EtekEtWjAtOV8uJOKXjy1dKykuKi8udGVzdChwYXRoKVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlKSB7XHJcblxyXG4gICAgdmFyIHBhcnNlZERhdGUgPSBEYXRlLnBhcnNlKGRhdGUpO1xyXG5cclxuXHJcbiAgICBpZiAoaXNOYU4oZGF0ZSkgJiYgIWlzTmFOKHBhcnNlZERhdGUpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZEVtYWlsTGlzdChsaXN0OiBzdHJpbmcpIHtcclxuXHJcbiAgICBpZiAobGlzdC5pbmNsdWRlcyhcIjtcIikpIHtcclxuXHJcbiAgICAgIGxldCBlbWFpbHMgPSBsaXN0LnNwbGl0KFwiO1wiKVxyXG5cclxuICAgICAgZm9yICh2YXIgZW1haWwgb2YgZW1haWxzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZW1haWxJc1ZhbGlkKGVtYWlsKSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgaWYgKHRoaXMuZW1haWxJc1ZhbGlkKGxpc3QpID09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbnVsbERhdGUgPSBcIjAxIEphbiAxOTY5XCJcclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc051bWJlcih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKCh2YWx1ZSAhPSBudWxsKSAmJlxyXG4gICAgICAodmFsdWUgIT09ICcnKSAmJlxyXG4gICAgICAhaXNOYU4oTnVtYmVyKHZhbHVlLnRvU3RyaW5nKCkpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldERpZmYoc3RhcnREYXRlLCBlbmREYXRlID0gRGF0ZSgpKSB7XHJcblxyXG4gICAgdmFyIGV2ZW50U3RhcnRUaW1lID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgIHZhciBldmVudEVuZFRpbWUgPSBuZXcgRGF0ZShlbmREYXRlKTtcclxuICAgIHZhciBtaWxsaXNlY29uZHMgPSBldmVudEVuZFRpbWUudmFsdWVPZigpIC0gZXZlbnRTdGFydFRpbWUudmFsdWVPZigpO1xyXG5cclxuICAgIGZ1bmN0aW9uIG51bWJlckVuZGluZyhudW1iZXI6IG51bWJlcikge1xyXG5cclxuICAgICAgaWYgKG51bWJlci50b0ZpeGVkKCkgPT0gJzEnKSB7XHJcbiAgICAgICAgcmV0dXJuICcnXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICdzJztcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICB2YXIgbWludXRlcyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwKSk7XHJcblxyXG4gICAgdmFyIGhvdXJzOiBudW1iZXIgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwKSk7XHJcblxyXG4gICAgdmFyIGRheXMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcclxuXHJcbiAgICB2YXIgd2Vla3M6IG51bWJlciA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDcpKTtcclxuXHJcbiAgICB2YXIgbW9udGhzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogNyAqIDQpKTtcclxuXHJcbiAgICB2YXIgeWVhcnMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQgKiAzNjUpKTtcclxuXHJcblxyXG4gICAgaWYgKHllYXJzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiB5ZWFycy50b0ZpeGVkKCkgKyAnIHllYXInICsgbnVtYmVyRW5kaW5nKHllYXJzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKG1vbnRocyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gbW9udGhzLnRvRml4ZWQoKSArICcgbW9udGgnICsgbnVtYmVyRW5kaW5nKG1vbnRocyk7XHJcblxyXG4gICAgfSBlbHNlIGlmICh3ZWVrcyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gd2Vla3MudG9GaXhlZCgpICsgJyB3ZWVrJyArIG51bWJlckVuZGluZyh3ZWVrcyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChkYXlzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBkYXlzLnRvRml4ZWQoKSArICcgZGF5JyArIG51bWJlckVuZGluZyhkYXlzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGhvdXJzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBob3Vycy50b0ZpeGVkKCkgKyAnIGhvdXInICsgbnVtYmVyRW5kaW5nKGhvdXJzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIG1pbnV0ZXMudG9GaXhlZCgpICsgJyBtaW51dGUnICsgbnVtYmVyRW5kaW5nKG1pbnV0ZXMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobWlsbGlzZWNvbmRzID49ICgtMTAwMCAqIDYwKSkge1xyXG5cclxuICAgICAgcmV0dXJuICdhIG1pbnV0ZSc7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIHJldHVybiAnTi9BJztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBub3dEYXRlKE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG4gICAgaWYgKE5vVGltZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRGb3JtYXRlZERhdGUoRGF0ZSgpLCB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdGVkRGF0ZShEYXRlKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRGb3JtYXRlZERhdGUoZGF0ZVN0cmluZzogc3RyaW5nLCBOb1RpbWU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cclxuICAgIGxldCBkOiBEYXRlID0gbmV3IERhdGUoZGF0ZVN0cmluZyk7XHJcbiAgICBkLnNldEhvdXJzKGQuZ2V0SG91cnMoKSArIDIpO1xyXG5cclxuICAgIGlmIChOb1RpbWUgPT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCcuJylbMF07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRGb3JtYXRlZERhdGUyKGQgOiBEYXRlLCBOb1RpbWU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG5cclxuXHJcbiAgICBkLnNldEhvdXJzKGQuZ2V0SG91cnMoKSArIDIpO1xyXG5cclxuICAgIGlmIChOb1RpbWUgPT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZC50b0lTT1N0cmluZygpLnNwbGl0KCcuJylbMF07XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRCdXNpbmVzc0RhdGVzQ291bnQoc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZykge1xyXG4gICAgdmFyIGNvdW50ID0gMDtcclxuICAgIHZhciBfc3RhcnREYXRlID0gbmV3IERhdGUoc3RhcnREYXRlKTtcclxuICAgIHZhciBfZW5kRGF0ZSA9IG5ldyBEYXRlKGVuZERhdGUpO1xyXG5cclxuICAgIHZhciBjdXJEYXRlID0gX3N0YXJ0RGF0ZTtcclxuXHJcbiAgICB3aGlsZSAoY3VyRGF0ZSA8IF9lbmREYXRlKSB7XHJcbiAgICAgIHZhciBkYXlPZldlZWsgPSBjdXJEYXRlLmdldERheSgpO1xyXG4gICAgICBpZiAoIShkYXlPZldlZWsgPT0gNiB8fCBkYXlPZldlZWsgPT0gMCkpIGNvdW50Kys7XHJcbiAgICAgIGN1ckRhdGUuc2V0RGF0ZShjdXJEYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb3VudDtcclxuICB9XHJcblxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIERldGFpbHNEaWFsb2dQcm9jZXNzb3Ige1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHByb2Nlc3NEZXRhaWxzQ29uZmlnKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIHJvdzogYW55KTogRGV0YWlsc0RpYWxvZ0NvbmZpZyB7XHJcblxyXG4gICAgY29uc3QgdXBkYXRlZERldGFpbHNDb25maWcgOiBEZXRhaWxzRGlhbG9nQ29uZmlnID0gQ29yZS5nZXRDbG9uZShkZXRhaWxzQ29uZmlnKTtcclxuICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLmRldGFpbHMgPSByb3c7XHJcblxyXG4gICAgdXBkYXRlZERldGFpbHNDb25maWcuZm9ybUNvbmZpZy5tb2RlID0gdXBkYXRlZERldGFpbHNDb25maWcubW9kZSA/PyBcInZpZXdcIjtcclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmIHJvdykge1xyXG4gICAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUgPSByb3dbdXBkYXRlZERldGFpbHNDb25maWcuaGVyb0ZpZWxkXTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gdXBkYXRlVGFibGVDb25maWcodGFibGVDb25maWcpIHtcclxuICAgICAgdGFibGVDb25maWcuaGVyb0ZpZWxkID0gdXBkYXRlZERldGFpbHNDb25maWc/Lmhlcm9GaWVsZDtcclxuICAgICAgdGFibGVDb25maWcuaGVyb1ZhbHVlID0gdXBkYXRlZERldGFpbHNDb25maWc/Lmhlcm9WYWx1ZTtcclxuICAgICAgLy8gdGFibGVDb25maWcuc2V0SGVybyA9IHVwZGF0ZWREZXRhaWxzQ29uZmlnLnNldEhlcm87XHJcbiAgICAgIHRhYmxlQ29uZmlnLnNlYXJjaENvbmZpZyA9IG51bGw7XHJcbiAgICAgIHRhYmxlQ29uZmlnLnRpbGVDb25maWcgPSBudWxsO1xyXG4gICAgICB0YWJsZUNvbmZpZy5wYXJlbnREYXRhID0gdXBkYXRlZERldGFpbHNDb25maWcuZGV0YWlscztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpIHtcclxuICAgICAgdXBkYXRlVGFibGVDb25maWcodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3MpIHtcclxuICAgICAgdXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzLmZvckVhY2godXBkYXRlVGFibGVDb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUxvYWRVcmwodGFibGVDb25maWcpIHtcclxuICAgICAgaWYgKHRhYmxlQ29uZmlnLmxvYWRBY3Rpb24gJiYgdGFibGVDb25maWcubG9hZENyaXRlcmlhICYmIHRhYmxlQ29uZmlnLmxvYWRJREZpZWxkKSB7XHJcbiAgICAgICAgdGFibGVDb25maWcubG9hZEFjdGlvbi51cmwgPSBgJHt0YWJsZUNvbmZpZy5sb2FkQWN0aW9uLnVybC5zcGxpdCgnLycpWzBdfS8ke3RhYmxlQ29uZmlnLmxvYWRDcml0ZXJpYX0vJHt1cGRhdGVkRGV0YWlsc0NvbmZpZy5kZXRhaWxzW3RhYmxlQ29uZmlnLmxvYWRJREZpZWxkXX1gO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiVHJhbnNmb3JtZWRcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJOT1QgVHJhbnNmb3JtZWRcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWcpIHtcclxuICAgICAgdHJhbnNmb3JtTG9hZFVybCh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncykge1xyXG4gICAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3MuZm9yRWFjaCh0cmFuc2Zvcm1Mb2FkVXJsKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdXBkYXRlZERldGFpbHNDb25maWc7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGluaXRpYWxpemVDb25maWdzKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcpIHtcclxuICAgIGNvbnN0IHRhYmxlQ29uZmlnID0gZGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZztcclxuICAgIGNvbnN0IHRhYmxlQ29uZmlncyA9IGRldGFpbHNDb25maWcudGFibGVDb25maWdzO1xyXG4gICAgY29uc3QgZm9ybUNvbmZpZyA9IGRldGFpbHNDb25maWcuZm9ybUNvbmZpZztcclxuICAgIGNvbnN0IGJ1dHRvbnMgPSBkZXRhaWxzQ29uZmlnLmJ1dHRvbnM7XHJcbiAgICBmb3JtQ29uZmlnLm1vZGUgPSBmb3JtQ29uZmlnLm1vZGUgPz8gXCJ2aWV3XCI7XHJcbiAgICByZXR1cm4geyB0YWJsZUNvbmZpZywgdGFibGVDb25maWdzLCBmb3JtQ29uZmlnLCBidXR0b25zIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2V0SGVyb1ZhbHVlKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGRldGFpbHM6IGFueSkge1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpXHJcblxyXG4gICAgaWYgKChkZXRhaWxzQ29uZmlnLmZvcm1Db25maWcubW9kZSA9PSBcImNyZWF0ZVwiICApICYmIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmIGRldGFpbHNDb25maWcuaGVyb1ZhbHVlKSB7XHJcbiAgICAgIGRldGFpbHNbZGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdID0gZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAoZGV0YWlsc0NvbmZpZy5jb25maWcubW9kZSAhPSBcImNyZWF0ZVwiICYmIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkKSB7XHJcbiAgICAvLyAgIGRldGFpbHNDb25maWcuaGVyb1ZhbHVlID0gZGV0YWlsc1tkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF07XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaGFuZGxlRm9ybU1vZGUoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZm9ybUNvbmZpZzogRm9ybUNvbmZpZywpIHtcclxuICAgIGxldCBkZXRhaWxzO1xyXG4gICAgbGV0IGFjdGlvbjtcclxuICAgIGxldCBsb2FkQnlBY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNyZWF0ZVwiKSB7XHJcblxyXG4gICAgICBkZXRhaWxzID0gQ29yZS5nZW5lcmF0ZU9iamVjdChmb3JtQ29uZmlnLmZpZWxkcyk7XHJcblxyXG4gICAgICAvLyB0aGlzLnNldEhlcm9WYWx1ZShkZXRhaWxzQ29uZmlnLCBkZXRhaWxzKTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcmVzcCA9IHRoaXMubG9hZERldGFpbHNEYXRhKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICBkZXRhaWxzID0gcmVzcC5kZXRhaWxzO1xyXG5cclxuICAgICAgYWN0aW9uID0gcmVzcC5hY3Rpb247XHJcbiAgICAgIGxvYWRCeUFjdGlvbiA9IHJlc3AubG9hZEJ5QWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IGRldGFpbHMsIGxvYWRCeUFjdGlvbiwgYWN0aW9uIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBsb2FkRGV0YWlsc0RhdGEoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZm9ybUNvbmZpZzogRm9ybUNvbmZpZykge1xyXG5cclxuICAgIGxldCBkZXRhaWxzO1xyXG4gICAgbGV0IGFjdGlvbjtcclxuICAgIGxldCBsb2FkQnlBY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIkxvYWRpbmcgRGV0YWlscyBEYXRhXCIgKVxyXG4gICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZylcclxuICAgIGNvbnNvbGUubG9nKGZvcm1Db25maWcpXHJcblxyXG5cclxuXHJcbiAgICAvL0Nob29zZSBzb3VyY2VcclxuICAgIGlmIChkZXRhaWxzQ29uZmlnLmRldGFpbHNTb3VyY2UgPT0gRGV0YWlsc1NvdXJjZS5Sb3cpIHtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRGV0YWlscyBEYXRhIFJvdyBjb25maWdcIilcclxuICAgICAgZGV0YWlscyA9IGRldGFpbHNDb25maWcuZGV0YWlscztcclxuXHJcbiAgICB9IGVsc2UgaWYgKGRldGFpbHNDb25maWcuZGV0YWlsc1NvdXJjZSA9PSBEZXRhaWxzU291cmNlLlVybCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkRldGFpbHMgRGF0YSBVcmwgY29uZmlnXCIpXHJcbiAgICAgIGFjdGlvbiA9IHRoaXMubG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICBsb2FkQnlBY3Rpb24gPSB0cnVlO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcIkRldGFpbHMgRGF0YSBFbHNlXCIpXHJcbiAgICAgIGlmIChkZXRhaWxzQ29uZmlnLmRldGFpbHMgJiYgIWRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmICFkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSkge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcInVzaW5nIGZvcm0gZGF0YSBmcm9tIGRldGFpbHNcIik7XHJcbiAgICAgICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZyk7XHJcbiAgICAgICAgZGV0YWlscyA9IGRldGFpbHNDb25maWcuZGV0YWlscztcclxuXHJcbiAgICAgIH0gZWxzZSBpZiAoZm9ybUNvbmZpZy5sb2FkQWN0aW9uKSB7XHJcblxyXG4gICAgICAgIGFjdGlvbiA9IHRoaXMubG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICAgIGxvYWRCeUFjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiYXV0byBkYXRhIHNvdXJjZSBmYWlsZWQgdG8gcGljaywgdHJ5aW5nIHNvdXJjZSBjb25maWdcIik7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgZGV0YWlscywgbG9hZEJ5QWN0aW9uLCBhY3Rpb24gfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGxvYWREZXRhaWxzRnJvbVVybChkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnKSB7XHJcbiAgICBsZXQgYWN0aW9uO1xyXG5cclxuICAgIGlmIChmb3JtQ29uZmlnLmxvYWRBY3Rpb24pIHtcclxuXHJcbiAgICAgIGlmIChkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCAmJiBkZXRhaWxzQ29uZmlnLmRldGFpbHMpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmb3JtIGRhdGEgZnJvbSB1cmwgKyBJRCBGaWVsZCBcIiArIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkKTtcclxuICAgICAgICBhY3Rpb24gPSB7IHVybDogYCR7Zm9ybUNvbmZpZy5sb2FkQWN0aW9uLnVybH0vJHtkZXRhaWxzQ29uZmlnLmRldGFpbHNbZGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdfWAgfTtcclxuXHJcbiAgICAgIH0gZWxzZSBpZiAoZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1c2luZyBmb3JtIGRhdGEgZnJvbSB1cmwgKyBTb2xpZCBJRFwiKTtcclxuICAgICAgICBhY3Rpb24gPSB7IHVybDogYCR7Zm9ybUNvbmZpZy5sb2FkQWN0aW9uLnVybH0vJHtkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZX1gIH07XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJ1cmwgc291cmNlIGZhaWxlZCA6IHNldHVwIGhlcm8gZmllbGQgb3IgaGVybyB2YWx1ZVwiKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICBjb25zb2xlLmxvZyhcIk5vIGxvYWQgYWN0aW9uIHNldFwiKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHJldHVybiBhY3Rpb247XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2V0RmlsZUZpZWxkKGZvcm1Db25maWc6IEZvcm1Db25maWcpIHtcclxuICAgIHJldHVybiBmb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC50eXBlID09PSAnZmlsZScpO1xyXG4gIH1cclxuXHJcblxyXG4gIHN0YXRpYyBzZXR1cEJ1dHRvbnMoZm9ybUNvbmZpZzogRm9ybUNvbmZpZywgYnV0dG9uczogYW55KSB7XHJcbiAgICBsZXQgZXh0cmFCdXR0b25zLCBjcmVhdGVCdXR0b24sIGVkaXRCdXR0b24sIGRlbGV0ZUJ1dHRvbjtcclxuXHJcbiAgICBpZiAoYnV0dG9ucykge1xyXG4gICAgICBpZiAoZm9ybUNvbmZpZy5tb2RlICE9PSBcImNyZWF0ZVwiKSB7XHJcbiAgICAgICAgZXh0cmFCdXR0b25zID0gYnV0dG9ucy5maWx0ZXIoeCA9PiB4Lm5hbWUgIT09IFwiY3JlYXRlXCIgJiYgeC5uYW1lICE9PSBcImVkaXRcIiAmJiB4Lm5hbWUgIT09IFwiZGVsZXRlXCIgJiYgeC5uYW1lICE9PSBcInZpZXdcIiAmJiB4LmluRGlhbG9nKTtcclxuICAgICAgfVxyXG4gICAgICBjcmVhdGVCdXR0b24gPSBidXR0b25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IFwiY3JlYXRlXCIpO1xyXG4gICAgICBlZGl0QnV0dG9uID0gYnV0dG9ucy5maW5kKHggPT4geC5uYW1lID09PSBcImVkaXRcIik7XHJcbiAgICAgIGRlbGV0ZUJ1dHRvbiA9IGJ1dHRvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gXCJkZWxldGVcIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4geyBleHRyYUJ1dHRvbnMsIGNyZWF0ZUJ1dHRvbiwgZWRpdEJ1dHRvbiwgZGVsZXRlQnV0dG9uIH07XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGluQ29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9jbGFzc2VzL1RpbkNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixhQUFhLEVBQXFCLE1BQU0sV0FBVyxDQUFDO0FBRWxGLE1BQU0sT0FBTyxJQUFJO0lBR1IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHO1FBQ3pCLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUVELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFJTSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV6QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFB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QUFFLFlBQVksRUFBRSxDQUFDO0lBQ2xFLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldGFpbHNEaWFsb2dDb25maWcsIERldGFpbHNTb3VyY2UsIEZpZWxkLCBGb3JtQ29uZmlnIH0gZnJvbSBcIi4vQ2xhc3Nlc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvcmUge1xyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkZWVwQ2xvbmUob2JqKSB7XHJcbiAgICBpZiAob2JqID09PSBudWxsIHx8IHR5cGVvZiBvYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICBjb25zdCBhcnJDb3B5ID0gW107XHJcbiAgICAgIG9iai5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGFyckNvcHlbaW5kZXhdID0gdGhpcy5kZWVwQ2xvbmUoaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gYXJyQ29weTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvYmpDb3B5ID0ge307XHJcbiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgb2JqQ29weVtrZXldID0gdGhpcy5kZWVwQ2xvbmUob2JqW2tleV0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2JqQ29weTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjYW1lbFRvV29yZHModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBpZiAodmFsdWUubGVuZ3RoID09IDApIHJldHVybiB2YWx1ZTtcclxuXHJcbiAgICBsZXQgdiA9IHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc3Vic3RyaW5nKDEpXHJcbiAgICByZXR1cm4gdi5yZXBsYWNlKC8oW0EtWl0rKSooW0EtWl1bYS16XSkvZywgXCIkMSAkMlwiKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2VuZXJhdGVPYmplY3QoZmllbGRzOiBGaWVsZFtdKSB7XHJcblxyXG4gICAgbGV0IGRhdGEgPSB7fTtcclxuICAgIGZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuXHJcbiAgICAgIGlmIChmaWVsZC50eXBlICE9ICdzZWN0aW9uJyAmJiBmaWVsZC50eXBlICE9ICdibGFuaycgKXtcclxuICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gdGhpcy5nZXRJbml0aWFsVmFsdWUoZmllbGQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gY29uc29sZS5sb2coZGF0YSlcclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcmVzZXRPYmplY3QoZmllbGRzOiBGaWVsZFtdLCBkYXRhKSB7XHJcblxyXG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBpZiAoZmllbGQudHlwZSAhPSAnc2VjdGlvbicgJiYgZmllbGQudHlwZSAhPSAnYmxhbmsnKSB7XHJcbiAgICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9IHRoaXMuZ2V0SW5pdGlhbFZhbHVlKGZpZWxkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB0ZXN0VmlzaWJsZShjb25maWcgOiBGb3JtQ29uZmlnLCBkYXRhLCBmOiBGaWVsZCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmIChmLmhpZGRlbikgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChjb25maWcubW9kZSA9PSAnY3JlYXRlJyAmJiBmLmhpZGVPbkNyZWF0ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGlmIChjb25maWcubW9kZSAhPSAnY3JlYXRlJyAmJiBmLmhpZGVPbkV4aXN0cykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGYuaGlkZGVuQ29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhZi5oaWRkZW5Db25kaXRpb24oZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHRlc3RWaXNpYmxlSGVhZGVyQnV0dG9uKGRhdGEsIGJ0bik6IGJvb2xlYW4ge1xyXG5cclxuICAgIGlmIChidG4uaGlkZGVuQ29uZGl0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhYnRuLmhpZGRlbkNvbmRpdGlvbihkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmlzaWJsZVN1YmZpZWxkcyhjb25maWc6IEZvcm1Db25maWcsIGRhdGEsZmllbGQ6IEZpZWxkICk6IEZpZWxkW10ge1xyXG4gICAgcmV0dXJuIGZpZWxkLnN1YmZpZWxkcz8uZmlsdGVyKHN1YmZpZWxkID0+IENvcmUudGVzdFZpc2libGUoY29uZmlnLCBkYXRhLCBzdWJmaWVsZCkpIHx8IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZU9iamVjdChmaWVsZHM6IEZpZWxkW10sIGRhdGEpOiBzdHJpbmcge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwiVmFsaWRhdGlvbnNcIilcclxuXHJcbiAgICBmb3IgKGxldCBmaWVsZCBvZiBmaWVsZHMpIHtcclxuXHJcbiAgICAgIGlmIChmaWVsZC50eXBlID09ICdmaWxlJyB8fCBmaWVsZC50eXBlID09ICdmaWxlLXZpZXcnIHx8IGZpZWxkLnR5cGUgPT0gJ2JsYW5rJyB8fCBmaWVsZC50eXBlID09ICdzZWN0aW9uJyApIGNvbnRpbnVlXHJcblxyXG5cclxuXHJcbiAgICAgIGxldCBuYW1lID0gZmllbGQuYWxpYXMgPz8gdGhpcy5jYW1lbFRvV29yZHMoZmllbGQubmFtZSk7XHJcbiAgICAgIGxldCBkID0gZGF0YVtmaWVsZC5uYW1lXTtcclxuXHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhuYW1lICsgJyAnICsgZClcclxuXHJcbiAgICAgIGlmIChmaWVsZC5yZXF1aXJlZCl7XHJcblxyXG4gICAgICAgIGlmIChkID09IHVuZGVmaW5lZCB8fCBkID09IG51bGwpIHJldHVybiBgJHtuYW1lfSBpcyByZXF1aXJlZGA7XHJcblxyXG4gICAgICAgIGlmIChmaWVsZC50eXBlID09ICd0ZXh0Jyl7XHJcblxyXG4gICAgICAgICAgaWYgKGQgPT0gJycpIHJldHVybiBgUGxlYXNlIGVudGVyICR7bmFtZX1gO1xyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5taW4gJiYgZC5sZW5ndGggPCBmaWVsZC5taW4pIHJldHVybiBgTWluaW11bSAgJHtuYW1lfSBsZW5ndGggaXMgJHtmaWVsZC5taW59YFxyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5tYXggJiYgZC5sZW5ndGggPiBmaWVsZC5tYXgpIHJldHVybiBgTWF4aW11bSAke25hbWV9IGxlbmd0aCBpcyAke2ZpZWxkLm1heH1gXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmIChmaWVsZC50eXBlID09ICdudW1iZXInIHx8IGZpZWxkLnR5cGUgPT0gJ21vbmV5JyB8fCBmaWVsZC50eXBlID09ICdkYXRlJyl7XHJcblxyXG4gICAgICAgICAgaWYgKGZpZWxkLm1pbiAmJiBkIDwgZmllbGQubWluKSByZXR1cm4gYE1pbmltdW0gICR7bmFtZX0gaXMgJHtmaWVsZC5taW59YFxyXG5cclxuICAgICAgICAgIGlmIChmaWVsZC5tYXggJiYgZCA+IGZpZWxkLm1heCkgcmV0dXJuIGBNYXhpbXVtICR7bmFtZX0gaXMgJHtmaWVsZC5tYXh9YFxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoZmllbGQudHlwZSA9PSAnc2VsZWN0Jykge1xyXG5cclxuICAgICAgICAgIGlmICh0eXBlb2YoZCkgPT0gJ3N0cmluZycgJiYgZCA9PSAnJykgcmV0dXJuIGBQbGVhc2Ugc2VsZWN0ICR7bmFtZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0SW5pdGlhbFZhbHVlKGZpZWxkOiBGaWVsZCkge1xyXG5cclxuICAgIGlmIChmaWVsZC5kZWZhdWx0VmFsdWUpe1xyXG5cclxuICAgICAgaWYgKChmaWVsZC50eXBlID09ICdkYXRlJyB8fCBmaWVsZC50eXBlID09ICdkYXRldGltZScpICYmIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PSAnbm93JykgcmV0dXJuIHRoaXMubm93RGF0ZSh0cnVlKTtcclxuXHJcbiAgICAgIHJldHVybiBmaWVsZC5kZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpZWxkLnR5cGUgPT0gJ3NlbGVjdCcgJiYgKGZpZWxkLmhpZGRlbiB8fCBmaWVsZC5oaWRlT25DcmVhdGUpKSByZXR1cm4gMDtcclxuXHJcbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcclxuICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdtb25leSc6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm5vd0RhdGUodHJ1ZSk7XHJcbiAgICAgIGNhc2UgJ2NoZWNrYm94JzpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Q2xvbmUoeCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVlcENsb25lKHgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXROdW1iZXIodmFsdWU6IHN0cmluZykge1xyXG5cclxuICAgIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09IFwiXCIpIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb25seU51bWJlcnMgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcZC4tXS9nLCAnJyk7XHJcbiAgICByZXR1cm4gb25seU51bWJlcnNcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0Rmlyc3REYXlPZk1vbnRoKCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBlbWFpbElzVmFsaWQoZW1haWwpIHtcclxuICAgIC8vIHJldHVybiAvXFxTK0BcXFMrXFwuXFxTKy8udGVzdChlbWFpbClcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFVOQ1BhdGgocGF0aDogc3RyaW5nKSB7XHJcbiAgICAvLyByZXR1cm4gL1xcXFxcXFxcKFthLXpBLVowLTlfLiTil48tXSspXFxcXChbYS16QS1aMC05Xy4k4pePLV0rKS4qLy50ZXN0KHBhdGgpXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWREYXRlKGRhdGUpIHtcclxuXHJcbiAgICB2YXIgcGFyc2VkRGF0ZSA9IERhdGUucGFyc2UoZGF0ZSk7XHJcblxyXG5cclxuICAgIGlmIChpc05hTihkYXRlKSAmJiAhaXNOYU4ocGFyc2VkRGF0ZSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRW1haWxMaXN0KGxpc3Q6IHN0cmluZykge1xyXG5cclxuICAgIGlmIChsaXN0LmluY2x1ZGVzKFwiO1wiKSkge1xyXG5cclxuICAgICAgbGV0IGVtYWlscyA9IGxpc3Quc3BsaXQoXCI7XCIpXHJcblxyXG4gICAgICBmb3IgKHZhciBlbWFpbCBvZiBlbWFpbHMpIHtcclxuICAgICAgICBpZiAodGhpcy5lbWFpbElzVmFsaWQoZW1haWwpID09IGZhbHNlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbWFpbElzVmFsaWQobGlzdCkgPT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBudWxsRGF0ZSA9IFwiMDEgSmFuIDE5NjlcIlxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoKHZhbHVlICE9IG51bGwpICYmXHJcbiAgICAgICh2YWx1ZSAhPT0gJycpICYmXHJcbiAgICAgICFpc05hTihOdW1iZXIodmFsdWUudG9TdHJpbmcoKSkpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0RGlmZihzdGFydERhdGUsIGVuZERhdGUgPSBEYXRlKCkpIHtcclxuXHJcbiAgICB2YXIgZXZlbnRTdGFydFRpbWUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgdmFyIGV2ZW50RW5kVGltZSA9IG5ldyBEYXRlKGVuZERhdGUpO1xyXG4gICAgdmFyIG1pbGxpc2Vjb25kcyA9IGV2ZW50RW5kVGltZS52YWx1ZU9mKCkgLSBldmVudFN0YXJ0VGltZS52YWx1ZU9mKCk7XHJcblxyXG4gICAgZnVuY3Rpb24gbnVtYmVyRW5kaW5nKG51bWJlcjogbnVtYmVyKSB7XHJcblxyXG4gICAgICBpZiAobnVtYmVyLnRvRml4ZWQoKSA9PSAnMScpIHtcclxuICAgICAgICByZXR1cm4gJydcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gJ3MnO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHZhciBtaW51dGVzID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjApKTtcclxuXHJcbiAgICB2YXIgaG91cnM6IG51bWJlciA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjApKTtcclxuXHJcbiAgICB2YXIgZGF5cyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xyXG5cclxuICAgIHZhciB3ZWVrczogbnVtYmVyID0gKG1pbGxpc2Vjb25kcyAvICgxMDAwICogNjAgKiA2MCAqIDI0ICogNykpO1xyXG5cclxuICAgIHZhciBtb250aHMgPSAobWlsbGlzZWNvbmRzIC8gKDEwMDAgKiA2MCAqIDYwICogMjQgKiA3ICogNCkpO1xyXG5cclxuICAgIHZhciB5ZWFycyA9IChtaWxsaXNlY29uZHMgLyAoMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NSkpO1xyXG5cclxuXHJcbiAgICBpZiAoeWVhcnMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIHllYXJzLnRvRml4ZWQoKSArICcgeWVhcicgKyBudW1iZXJFbmRpbmcoeWVhcnMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobW9udGhzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiBtb250aHMudG9GaXhlZCgpICsgJyBtb250aCcgKyBudW1iZXJFbmRpbmcobW9udGhzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKHdlZWtzID49IDEpIHtcclxuXHJcbiAgICAgIHJldHVybiB3ZWVrcy50b0ZpeGVkKCkgKyAnIHdlZWsnICsgbnVtYmVyRW5kaW5nKHdlZWtzKTtcclxuXHJcbiAgICB9IGVsc2UgaWYgKGRheXMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIGRheXMudG9GaXhlZCgpICsgJyBkYXknICsgbnVtYmVyRW5kaW5nKGRheXMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoaG91cnMgPj0gMSkge1xyXG5cclxuICAgICAgcmV0dXJuIGhvdXJzLnRvRml4ZWQoKSArICcgaG91cicgKyBudW1iZXJFbmRpbmcoaG91cnMpO1xyXG5cclxuICAgIH0gZWxzZSBpZiAobWludXRlcyA+PSAxKSB7XHJcblxyXG4gICAgICByZXR1cm4gbWludXRlcy50b0ZpeGVkKCkgKyAnIG1pbnV0ZScgKyBudW1iZXJFbmRpbmcobWludXRlcyk7XHJcblxyXG4gICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPj0gKC0xMDAwICogNjApKSB7XHJcblxyXG4gICAgICByZXR1cm4gJ2EgbWludXRlJztcclxuXHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgcmV0dXJuICdOL0EnO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc3RhdGljIG5vd0RhdGUoTm9UaW1lOiBib29sZWFuID0gZmFsc2UpIHtcclxuXHJcbiAgICBpZiAoTm9UaW1lKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldEZvcm1hdGVkRGF0ZShEYXRlKCksIHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybWF0ZWREYXRlKERhdGUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZvcm1hdGVkRGF0ZShkYXRlU3RyaW5nOiBzdHJpbmcsIE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG4gICAgbGV0IGQ6IERhdGUgPSBuZXcgRGF0ZShkYXRlU3RyaW5nKTtcclxuICAgIGQuc2V0SG91cnMoZC5nZXRIb3VycygpICsgMik7XHJcblxyXG4gICAgaWYgKE5vVGltZSA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJy4nKVswXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEZvcm1hdGVkRGF0ZTIoZCA6IERhdGUsIE5vVGltZTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcblxyXG5cclxuICAgIGQuc2V0SG91cnMoZC5nZXRIb3VycygpICsgMik7XHJcblxyXG4gICAgaWYgKE5vVGltZSA9PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBkLnRvSVNPU3RyaW5nKCkuc3BsaXQoJy4nKVswXTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGdldEJ1c2luZXNzRGF0ZXNDb3VudChzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nKSB7XHJcbiAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgdmFyIF9zdGFydERhdGUgPSBuZXcgRGF0ZShzdGFydERhdGUpO1xyXG4gICAgdmFyIF9lbmREYXRlID0gbmV3IERhdGUoZW5kRGF0ZSk7XHJcblxyXG4gICAgdmFyIGN1ckRhdGUgPSBfc3RhcnREYXRlO1xyXG5cclxuICAgIHdoaWxlIChjdXJEYXRlIDwgX2VuZERhdGUpIHtcclxuICAgICAgdmFyIGRheU9mV2VlayA9IGN1ckRhdGUuZ2V0RGF5KCk7XHJcbiAgICAgIGlmICghKGRheU9mV2VlayA9PSA2IHx8IGRheU9mV2VlayA9PSAwKSkgY291bnQrKztcclxuICAgICAgY3VyRGF0ZS5zZXREYXRlKGN1ckRhdGUuZ2V0RGF0ZSgpICsgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRGV0YWlsc0RpYWxvZ1Byb2Nlc3NvciB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcHJvY2Vzc0RldGFpbHNDb25maWcoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgcm93OiBhbnkpOiBEZXRhaWxzRGlhbG9nQ29uZmlnIHtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkRGV0YWlsc0NvbmZpZyA6IERldGFpbHNEaWFsb2dDb25maWcgPSBDb3JlLmdldENsb25lKGRldGFpbHNDb25maWcpO1xyXG4gICAgdXBkYXRlZERldGFpbHNDb25maWcuZGV0YWlscyA9IHJvdztcclxuXHJcbiAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnLm1vZGUgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5tb2RlID8/IFwidmlld1wiO1xyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvRmllbGQgJiYgcm93KSB7XHJcbiAgICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSA9IHJvd1t1cGRhdGVkRGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmdW5jdGlvbiB1cGRhdGVUYWJsZUNvbmZpZyh0YWJsZUNvbmZpZykge1xyXG4gICAgICB0YWJsZUNvbmZpZy5oZXJvRmllbGQgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZz8uaGVyb0ZpZWxkO1xyXG4gICAgICB0YWJsZUNvbmZpZy5oZXJvVmFsdWUgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZz8uaGVyb1ZhbHVlO1xyXG4gICAgICAvLyB0YWJsZUNvbmZpZy5zZXRIZXJvID0gdXBkYXRlZERldGFpbHNDb25maWcuc2V0SGVybztcclxuICAgICAgdGFibGVDb25maWcuc2VhcmNoQ29uZmlnID0gbnVsbDtcclxuICAgICAgdGFibGVDb25maWcudGlsZUNvbmZpZyA9IG51bGw7XHJcbiAgICAgIHRhYmxlQ29uZmlnLnBhcmVudERhdGEgPSB1cGRhdGVkRGV0YWlsc0NvbmZpZy5kZXRhaWxzO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZykge1xyXG4gICAgICB1cGRhdGVUYWJsZUNvbmZpZyh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncykge1xyXG4gICAgICB1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3MuZm9yRWFjaCh1cGRhdGVUYWJsZUNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtTG9hZFVybCh0YWJsZUNvbmZpZykge1xyXG4gICAgICBpZiAodGFibGVDb25maWcubG9hZEFjdGlvbiAmJiB0YWJsZUNvbmZpZy5sb2FkQ3JpdGVyaWEgJiYgdGFibGVDb25maWcubG9hZElERmllbGQpIHtcclxuICAgICAgICB0YWJsZUNvbmZpZy5sb2FkQWN0aW9uLnVybCA9IGAke3RhYmxlQ29uZmlnLmxvYWRBY3Rpb24udXJsLnNwbGl0KCcvJylbMF19LyR7dGFibGVDb25maWcubG9hZENyaXRlcmlhfS8ke3VwZGF0ZWREZXRhaWxzQ29uZmlnLmRldGFpbHNbdGFibGVDb25maWcubG9hZElERmllbGRdfWA7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJUcmFuc2Zvcm1lZFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk5PVCBUcmFuc2Zvcm1lZFwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh1cGRhdGVkRGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZykge1xyXG4gICAgICB0cmFuc2Zvcm1Mb2FkVXJsKHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXBkYXRlZERldGFpbHNDb25maWcudGFibGVDb25maWdzKSB7XHJcbiAgICAgIHVwZGF0ZWREZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlncy5mb3JFYWNoKHRyYW5zZm9ybUxvYWRVcmwpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1cGRhdGVkRGV0YWlsc0NvbmZpZztcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgaW5pdGlhbGl6ZUNvbmZpZ3MoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZykge1xyXG4gICAgY29uc3QgdGFibGVDb25maWcgPSBkZXRhaWxzQ29uZmlnLnRhYmxlQ29uZmlnO1xyXG4gICAgY29uc3QgdGFibGVDb25maWdzID0gZGV0YWlsc0NvbmZpZy50YWJsZUNvbmZpZ3M7XHJcbiAgICBjb25zdCBmb3JtQ29uZmlnID0gZGV0YWlsc0NvbmZpZy5mb3JtQ29uZmlnO1xyXG4gICAgY29uc3Qgc3RlcENvbmZpZyA9IGRldGFpbHNDb25maWcuc3RlcENvbmZpZztcclxuICAgIGNvbnN0IGJ1dHRvbnMgPSBkZXRhaWxzQ29uZmlnLmJ1dHRvbnM7XHJcbiAgICBmb3JtQ29uZmlnLm1vZGUgPSBmb3JtQ29uZmlnLm1vZGUgPz8gXCJ2aWV3XCI7XHJcbiAgICByZXR1cm4geyB0YWJsZUNvbmZpZywgdGFibGVDb25maWdzLCBmb3JtQ29uZmlnLCBzdGVwQ29uZmlnLCBidXR0b25zIH07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgc2V0SGVyb1ZhbHVlKGRldGFpbHNDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGRldGFpbHM6IGFueSkge1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpXHJcblxyXG4gICAgaWYgKChkZXRhaWxzQ29uZmlnLmZvcm1Db25maWcubW9kZSA9PSBcImNyZWF0ZVwiICApICYmIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmIGRldGFpbHNDb25maWcuaGVyb1ZhbHVlKSB7XHJcbiAgICAgIGRldGFpbHNbZGV0YWlsc0NvbmZpZy5oZXJvRmllbGRdID0gZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAoZGV0YWlsc0NvbmZpZy5jb25maWcubW9kZSAhPSBcImNyZWF0ZVwiICYmIGRldGFpbHNDb25maWcuaGVyb0ZpZWxkKSB7XHJcbiAgICAvLyAgIGRldGFpbHNDb25maWcuaGVyb1ZhbHVlID0gZGV0YWlsc1tkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZF07XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpXHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaGFuZGxlRm9ybU1vZGUoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZm9ybUNvbmZpZzogRm9ybUNvbmZpZywpIHtcclxuICAgIGxldCBkZXRhaWxzO1xyXG4gICAgbGV0IGFjdGlvbjtcclxuICAgIGxldCBsb2FkQnlBY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm9ybUNvbmZpZy5tb2RlID09PSBcImNyZWF0ZVwiKSB7XHJcblxyXG4gICAgICBkZXRhaWxzID0gQ29yZS5nZW5lcmF0ZU9iamVjdChmb3JtQ29uZmlnLmZpZWxkcyk7XHJcblxyXG4gICAgICAvLyB0aGlzLnNldEhlcm9WYWx1ZShkZXRhaWxzQ29uZmlnLCBkZXRhaWxzKTtcclxuXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgcmVzcCA9IHRoaXMubG9hZERldGFpbHNEYXRhKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICBkZXRhaWxzID0gcmVzcC5kZXRhaWxzO1xyXG5cclxuICAgICAgYWN0aW9uID0gcmVzcC5hY3Rpb247XHJcbiAgICAgIGxvYWRCeUFjdGlvbiA9IHJlc3AubG9hZEJ5QWN0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IGRldGFpbHMsIGxvYWRCeUFjdGlvbiwgYWN0aW9uIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBsb2FkRGV0YWlsc0RhdGEoZGV0YWlsc0NvbmZpZzogRGV0YWlsc0RpYWxvZ0NvbmZpZywgZm9ybUNvbmZpZzogRm9ybUNvbmZpZykge1xyXG5cclxuICAgIGxldCBkZXRhaWxzO1xyXG4gICAgbGV0IGFjdGlvbjtcclxuICAgIGxldCBsb2FkQnlBY3Rpb24gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIkxvYWRpbmcgRGV0YWlscyBEYXRhXCIgKVxyXG4gICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZylcclxuICAgIGNvbnNvbGUubG9nKGZvcm1Db25maWcpXHJcblxyXG5cclxuICAgIC8vQ2hvb3NlIHNvdXJjZVxyXG4gICAgaWYgKGRldGFpbHNDb25maWcuZGV0YWlsc1NvdXJjZSA9PSBEZXRhaWxzU291cmNlLlJvdykge1xyXG5cclxuICAgICAgY29uc29sZS5sb2coXCJEYXRhIGZyb20gRGV0YWlscyAtIFJvdyBvcHRpb25cIilcclxuICAgICAgZGV0YWlscyA9IGRldGFpbHNDb25maWcuZGV0YWlscztcclxuXHJcbiAgICB9IGVsc2UgaWYgKGRldGFpbHNDb25maWcuZGV0YWlsc1NvdXJjZSA9PSBEZXRhaWxzU291cmNlLlVybCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkRhdGEgZnJvbSBVcmwgb3B0aW9uXCIpXHJcbiAgICAgIGFjdGlvbiA9IHRoaXMubG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICBsb2FkQnlBY3Rpb24gPSB0cnVlO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcIkd1ZXNzaW5nIERhdGEgU291cmNlXCIpXHJcblxyXG5cclxuICAgICAgLy9uZXcgbG9naWNcclxuICAgICAgaWYgKGZvcm1Db25maWcubG9hZEFjdGlvbil7XHJcbiAgICAgICAgICBhY3Rpb24gPSB0aGlzLmxvYWREZXRhaWxzRnJvbVVybChkZXRhaWxzQ29uZmlnLCBmb3JtQ29uZmlnKTtcclxuICAgICAgICAgIGxvYWRCeUFjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiRGF0YSBmcm9tIERldGFpbHMgLSBEZWZhdWx0IG9wdGlvblwiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGRldGFpbHNDb25maWcpO1xyXG4gICAgICAgICAgZGV0YWlscyA9IGRldGFpbHNDb25maWcuZGV0YWlscztcclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIC8vIGlmIChkZXRhaWxzQ29uZmlnLmRldGFpbHMgJiYgIWRldGFpbHNDb25maWcuaGVyb0ZpZWxkICYmICFkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSkge1xyXG5cclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhcInVzaW5nIGZvcm0gZGF0YSBmcm9tIGRldGFpbHNcIik7XHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coZGV0YWlsc0NvbmZpZyk7XHJcbiAgICAgIC8vICAgZGV0YWlscyA9IGRldGFpbHNDb25maWcuZGV0YWlscztcclxuXHJcbiAgICAgIC8vIH0gZWxzZSBpZiAoZm9ybUNvbmZpZy5sb2FkQWN0aW9uKSB7XHJcblxyXG4gICAgICAvLyAgIGFjdGlvbiA9IHRoaXMubG9hZERldGFpbHNGcm9tVXJsKGRldGFpbHNDb25maWcsIGZvcm1Db25maWcpO1xyXG4gICAgICAvLyAgIGxvYWRCeUFjdGlvbiA9IHRydWU7XHJcblxyXG4gICAgICAvLyB9IGVsc2Uge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKFwiYXV0byBkYXRhIHNvdXJjZSBmYWlsZWQgdG8gcGljaywgdHJ5aW5nIHNvdXJjZSBjb25maWdcIik7XHJcblxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgZGV0YWlscywgbG9hZEJ5QWN0aW9uLCBhY3Rpb24gfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGxvYWREZXRhaWxzRnJvbVVybChkZXRhaWxzQ29uZmlnOiBEZXRhaWxzRGlhbG9nQ29uZmlnLCBmb3JtQ29uZmlnOiBGb3JtQ29uZmlnKSB7XHJcbiAgICBsZXQgYWN0aW9uO1xyXG5cclxuICAgIGlmIChmb3JtQ29uZmlnLmxvYWRBY3Rpb24pIHtcclxuXHJcbiAgICAgIGlmIChkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCAmJiBkZXRhaWxzQ29uZmlnLmRldGFpbHMpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJEZXRhaWxzQ29uZmlnIEhlcm8gSUQgRmllbGQgXCIgKyBkZXRhaWxzQ29uZmlnLmhlcm9GaWVsZCk7XHJcbiAgICAgICAgYWN0aW9uID0geyB1cmw6IGAke2Zvcm1Db25maWcubG9hZEFjdGlvbi51cmx9LyR7ZGV0YWlsc0NvbmZpZy5kZXRhaWxzW2RldGFpbHNDb25maWcuaGVyb0ZpZWxkXX1gIH07XHJcblxyXG4gICAgICB9IGVsc2UgaWYgKGZvcm1Db25maWcuaGVyb0ZpZWxkICYmIGRldGFpbHNDb25maWcuZGV0YWlscykge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkZvcm1Db25maWcgSGVybyBJRCBGaWVsZCBcIiArIGZvcm1Db25maWcuaGVyb0ZpZWxkKTtcclxuICAgICAgICBhY3Rpb24gPSB7IHVybDogYCR7Zm9ybUNvbmZpZy5sb2FkQWN0aW9uLnVybH0vJHtkZXRhaWxzQ29uZmlnLmRldGFpbHNbZm9ybUNvbmZpZy5oZXJvRmllbGRdfWAgfTtcclxuXHJcbiAgICAgIH0gZWxzZSBpZiAoZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWUpIHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coXCJEZWZpbmVkIEhlcm8gVmFsdWUgXCIgKyBkZXRhaWxzQ29uZmlnLmhlcm9WYWx1ZSk7XHJcbiAgICAgICAgYWN0aW9uID0geyB1cmw6IGAke2Zvcm1Db25maWcubG9hZEFjdGlvbi51cmx9LyR7ZGV0YWlsc0NvbmZpZy5oZXJvVmFsdWV9YCB9O1xyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwidXJsIHNvdXJjZSBmYWlsZWQgOiBzZXR1cCBoZXJvIGZpZWxkIG9yIGhlcm8gdmFsdWVcIik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc29sZS5sb2coXCJObyBsb2FkIGFjdGlvbiBzZXRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFjdGlvbjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzZXRGaWxlRmllbGQoZm9ybUNvbmZpZzogRm9ybUNvbmZpZykge1xyXG4gICAgcmV0dXJuIGZvcm1Db25maWcuZmllbGRzLmZpbmQoeCA9PiB4LnR5cGUgPT09ICdmaWxlJyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIHNldHVwQnV0dG9ucyhmb3JtQ29uZmlnOiBGb3JtQ29uZmlnLCBidXR0b25zOiBhbnkpIHtcclxuICAgIGxldCBleHRyYUJ1dHRvbnMsIGNyZWF0ZUJ1dHRvbiwgZWRpdEJ1dHRvbiwgZGVsZXRlQnV0dG9uO1xyXG5cclxuICAgIGlmIChidXR0b25zKSB7XHJcbiAgICAgIGlmIChmb3JtQ29uZmlnLm1vZGUgIT09IFwiY3JlYXRlXCIpIHtcclxuICAgICAgICBleHRyYUJ1dHRvbnMgPSBidXR0b25zLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gXCJjcmVhdGVcIiAmJiB4Lm5hbWUgIT09IFwiZWRpdFwiICYmIHgubmFtZSAhPT0gXCJkZWxldGVcIiAmJiB4Lm5hbWUgIT09IFwidmlld1wiICYmIHguaW5EaWFsb2cpO1xyXG4gICAgICB9XHJcbiAgICAgIGNyZWF0ZUJ1dHRvbiA9IGJ1dHRvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gXCJjcmVhdGVcIik7XHJcbiAgICAgIGVkaXRCdXR0b24gPSBidXR0b25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IFwiZWRpdFwiKTtcclxuICAgICAgZGVsZXRlQnV0dG9uID0gYnV0dG9ucy5maW5kKHggPT4geC5uYW1lID09PSBcImRlbGV0ZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiB7IGV4dHJhQnV0dG9ucywgY3JlYXRlQnV0dG9uLCBlZGl0QnV0dG9uLCBkZWxldGVCdXR0b24gfTtcclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -5,25 +5,30 @@ export class AlertComponent {
|
|
|
5
5
|
constructor() { }
|
|
6
6
|
ngOnInit() {
|
|
7
7
|
}
|
|
8
|
+
// Modified to only return visible messages
|
|
8
9
|
getAlertMessages(type = undefined) {
|
|
9
|
-
return this.alertMessages?.messages
|
|
10
|
+
return this.alertMessages?.messages
|
|
11
|
+
.filter(x => this.testVisible(x))
|
|
12
|
+
.filter(x => x.type === type) || [];
|
|
10
13
|
}
|
|
14
|
+
// Modified to check existence of visible messages
|
|
11
15
|
hasAlertMessages(type = undefined) {
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
return this.alertMessages?.messages
|
|
17
|
+
.filter(x => this.testVisible(x))
|
|
18
|
+
.some(x => x.type === type) || false;
|
|
14
19
|
}
|
|
15
20
|
testVisible(msg) {
|
|
16
21
|
return msg.hiddenCondition ? !msg.hiddenCondition(this.data) : true;
|
|
17
22
|
}
|
|
18
23
|
}
|
|
19
24
|
AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AlertComponent, selector: "spa-alert", inputs: { alertMessages: "alertMessages", data: "data" }, ngImport: i0, template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages(); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('success'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('info'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('warn'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('critical'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
25
|
+
AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AlertComponent, selector: "spa-alert", inputs: { alertMessages: "alertMessages", data: "data" }, ngImport: i0, template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages(); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('success'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('info'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n\n</div>\n\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('warn'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('critical'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
21
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AlertComponent, decorators: [{
|
|
22
27
|
type: Component,
|
|
23
|
-
args: [{ selector: 'spa-alert', template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages(); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('success'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('info'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('warn'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('critical'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n" }]
|
|
28
|
+
args: [{ selector: 'spa-alert', template: "<div *ngIf=\"hasAlertMessages()\" class=\"alert alert-secondary\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages(); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('success')\" class=\"alert alert-success\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('success'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('info')\" class=\"alert alert-info\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('info'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n\n</div>\n\n<div *ngIf=\"hasAlertMessages('warn')\" class=\"alert alert-warning\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('warn'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n\n<div *ngIf=\"hasAlertMessages('critical')\" class=\"alert alert-danger\" style=\"font-size: 14px;margin-bottom: 5px;\" role=\"alert\">\n <p *ngIf=\"alertMessages.subject\">{{alertMessages.subject}}</p>\n <ng-container *ngFor=\"let msg of getAlertMessages('critical'); let last = last\">\n <label *ngIf=\"testVisible(msg)\">{{msg.content}}</label>\n <br *ngIf=\"!last\">\n </ng-container>\n</div>\n" }]
|
|
24
29
|
}], ctorParameters: function () { return []; }, propDecorators: { alertMessages: [{
|
|
25
30
|
type: Input
|
|
26
31
|
}], data: [{
|
|
27
32
|
type: Input
|
|
28
33
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7OztBQVF6RCxNQUFNLE9BQU8sY0FBYztJQUV6QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQU9ELDJDQUEyQztJQUMzQyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsU0FBUztRQUMvQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUTthQUNoQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLFNBQVM7UUFDL0IsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVE7YUFDaEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQWlCO1FBRTNCLE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRXRFLENBQUM7OzJHQTlCVSxjQUFjOytGQUFkLGNBQWMsMkdDUjNCLHU5REF3Q0E7MkZEaENhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsV0FBVzswRUFZWixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWxlcnRNZXNzYWdlLCBBbGVydE1lc3NhZ2VzIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3BhLWFsZXJ0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWxlcnQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFsZXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cblxuICBASW5wdXQoKSBhbGVydE1lc3NhZ2VzOiBBbGVydE1lc3NhZ2VzO1xuICBASW5wdXQoKSBkYXRhO1xuXG5cbiAgLy8gTW9kaWZpZWQgdG8gb25seSByZXR1cm4gdmlzaWJsZSBtZXNzYWdlc1xuICBnZXRBbGVydE1lc3NhZ2VzKHR5cGUgPSB1bmRlZmluZWQpOiBBbGVydE1lc3NhZ2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWxlcnRNZXNzYWdlcz8ubWVzc2FnZXNcbiAgICAgIC5maWx0ZXIoeCA9PiB0aGlzLnRlc3RWaXNpYmxlKHgpKVxuICAgICAgLmZpbHRlcih4ID0+IHgudHlwZSA9PT0gdHlwZSkgfHwgW107XG4gIH1cblxuICAvLyBNb2RpZmllZCB0byBjaGVjayBleGlzdGVuY2Ugb2YgdmlzaWJsZSBtZXNzYWdlc1xuICBoYXNBbGVydE1lc3NhZ2VzKHR5cGUgPSB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGVydE1lc3NhZ2VzPy5tZXNzYWdlc1xuICAgICAgLmZpbHRlcih4ID0+IHRoaXMudGVzdFZpc2libGUoeCkpXG4gICAgICAuc29tZSh4ID0+IHgudHlwZSA9PT0gdHlwZSkgfHwgZmFsc2U7XG4gIH1cblxuICB0ZXN0VmlzaWJsZShtc2c6IEFsZXJ0TWVzc2FnZSk6IGJvb2xlYW4ge1xuXG4gICAgcmV0dXJuIG1zZy5oaWRkZW5Db25kaXRpb24gPyAhbXNnLmhpZGRlbkNvbmRpdGlvbih0aGlzLmRhdGEpIDogdHJ1ZTtcblxuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKClcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXNlY29uZGFyeVwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O21hcmdpbi1ib3R0b206IDVweDtcIiByb2xlPVwiYWxlcnRcIj5cbiAgPHAgKm5nSWY9XCJhbGVydE1lc3NhZ2VzLnN1YmplY3RcIj57e2FsZXJ0TWVzc2FnZXMuc3ViamVjdH19PC9wPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtc2cgb2YgZ2V0QWxlcnRNZXNzYWdlcygpOyBsZXQgbGFzdCA9IGxhc3RcIj5cbiAgICA8bGFiZWwgKm5nSWY9XCJ0ZXN0VmlzaWJsZShtc2cpXCI+e3ttc2cuY29udGVudH19PC9sYWJlbD5cbiAgICA8YnIgKm5nSWY9XCIhbGFzdFwiPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiaGFzQWxlcnRNZXNzYWdlcygnc3VjY2VzcycpXCIgY2xhc3M9XCJhbGVydCBhbGVydC1zdWNjZXNzXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7bWFyZ2luLWJvdHRvbTogNXB4O1wiIHJvbGU9XCJhbGVydFwiPlxuICA8cCAqbmdJZj1cImFsZXJ0TWVzc2FnZXMuc3ViamVjdFwiPnt7YWxlcnRNZXNzYWdlcy5zdWJqZWN0fX08L3A+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1zZyBvZiBnZXRBbGVydE1lc3NhZ2VzKCdzdWNjZXNzJyk7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgIDxsYWJlbCAqbmdJZj1cInRlc3RWaXNpYmxlKG1zZylcIj57e21zZy5jb250ZW50fX08L2xhYmVsPlxuICAgIDxiciAqbmdJZj1cIiFsYXN0XCI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKCdpbmZvJylcIiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDttYXJnaW4tYm90dG9tOiA1cHg7XCIgcm9sZT1cImFsZXJ0XCI+XG4gIDxwICpuZ0lmPVwiYWxlcnRNZXNzYWdlcy5zdWJqZWN0XCI+e3thbGVydE1lc3NhZ2VzLnN1YmplY3R9fTwvcD5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbXNnIG9mIGdldEFsZXJ0TWVzc2FnZXMoJ2luZm8nKTsgbGV0IGxhc3QgPSBsYXN0XCI+XG4gICAgPGxhYmVsICpuZ0lmPVwidGVzdFZpc2libGUobXNnKVwiPnt7bXNnLmNvbnRlbnR9fTwvbGFiZWw+XG4gICAgPGJyICpuZ0lmPVwiIWxhc3RcIj5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwiaGFzQWxlcnRNZXNzYWdlcygnd2FybicpXCIgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nXCIgc3R5bGU9XCJmb250LXNpemU6IDE0cHg7bWFyZ2luLWJvdHRvbTogNXB4O1wiIHJvbGU9XCJhbGVydFwiPlxuICA8cCAqbmdJZj1cImFsZXJ0TWVzc2FnZXMuc3ViamVjdFwiPnt7YWxlcnRNZXNzYWdlcy5zdWJqZWN0fX08L3A+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1zZyBvZiBnZXRBbGVydE1lc3NhZ2VzKCd3YXJuJyk7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgIDxsYWJlbCAqbmdJZj1cInRlc3RWaXNpYmxlKG1zZylcIj57e21zZy5jb250ZW50fX08L2xhYmVsPlxuICAgIDxiciAqbmdJZj1cIiFsYXN0XCI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJoYXNBbGVydE1lc3NhZ2VzKCdjcml0aWNhbCcpXCIgY2xhc3M9XCJhbGVydCBhbGVydC1kYW5nZXJcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDttYXJnaW4tYm90dG9tOiA1cHg7XCIgcm9sZT1cImFsZXJ0XCI+XG4gIDxwICpuZ0lmPVwiYWxlcnRNZXNzYWdlcy5zdWJqZWN0XCI+e3thbGVydE1lc3NhZ2VzLnN1YmplY3R9fTwvcD5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbXNnIG9mIGdldEFsZXJ0TWVzc2FnZXMoJ2NyaXRpY2FsJyk7IGxldCBsYXN0ID0gbGFzdFwiPlxuICAgIDxsYWJlbCAqbmdJZj1cInRlc3RWaXNpYmxlKG1zZylcIj57e21zZy5jb250ZW50fX08L2xhYmVsPlxuICAgIDxiciAqbmdJZj1cIiFsYXN0XCI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG4iXX0=
|