tnx-shared 5.1.26 → 5.1.30
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/bundles/tnx-shared.umd.js +1999 -249
- package/bundles/tnx-shared.umd.js.map +1 -1
- package/bundles/tnx-shared.umd.min.js +1 -1
- package/bundles/tnx-shared.umd.min.js.map +1 -1
- package/classes/base/data-list-base.d.ts +2 -0
- package/classes/base/data-list-base.d.ts.map +1 -1
- package/classes/form-schema.d.ts +3 -0
- package/classes/form-schema.d.ts.map +1 -1
- package/components/chat/chat-box/chat-box.component.d.ts +102 -0
- package/components/chat/chat-box/chat-box.component.d.ts.map +1 -0
- package/components/chat/chat-box/chat-box.component.ngfactory.d.ts.map +1 -0
- package/components/chat/chat-box/chat-box.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/chat/chat-send-message-box/chat-send-message-box.component.d.ts +37 -0
- package/components/chat/chat-send-message-box/chat-send-message-box.component.d.ts.map +1 -0
- package/components/chat/chat-send-message-box/chat-send-message-box.component.ngfactory.d.ts.map +1 -0
- package/components/chat/chat-send-message-box/chat-send-message-box.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/chat/common-style.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/chat/models/enums.d.ts +11 -0
- package/components/chat/models/enums.d.ts.map +1 -0
- package/components/chat/models/models.d.ts +10 -0
- package/components/chat/models/models.d.ts.map +1 -0
- package/components/chat/services/chat.service.d.ts +34 -0
- package/components/chat/services/chat.service.d.ts.map +1 -0
- package/components/chat/services/chat.service.ngfactory.d.ts.map +1 -0
- package/components/chat/services/content.service.d.ts +20 -0
- package/components/chat/services/content.service.d.ts.map +1 -0
- package/components/chat/services/content.service.ngfactory.d.ts.map +1 -0
- package/components/chat/services/message-board.service.d.ts +15 -0
- package/components/chat/services/message-board.service.d.ts.map +1 -0
- package/components/chat/services/message-board.service.ngfactory.d.ts.map +1 -0
- package/components/chat/services/status.service.d.ts +14 -0
- package/components/chat/services/status.service.d.ts.map +1 -0
- package/components/chat/services/status.service.ngfactory.d.ts.map +1 -0
- package/components/crud/crud-list/crud-list.component.d.ts +6 -0
- package/components/crud/crud-list/crud-list.component.d.ts.map +1 -1
- package/components/file-explorer/file-manager/file-manager.component.d.ts +6 -0
- package/components/file-explorer/file-manager/file-manager.component.d.ts.map +1 -1
- package/components/file-explorer/models/service-request-model.d.ts +1 -0
- package/components/file-explorer/models/service-request-model.d.ts.map +1 -1
- package/components/statemachines/models/enums.d.ts +4 -0
- package/components/statemachines/models/enums.d.ts.map +1 -1
- package/components/statemachines/statemachines-designer/statemachines-designer.component.d.ts +1 -1
- package/components/statemachines/statemachines-designer/statemachines-designer.component.d.ts.map +1 -1
- package/components/tn-custom-scrollbar/tn-custom-scrollbar.component.d.ts +1 -0
- package/components/tn-custom-scrollbar/tn-custom-scrollbar.component.d.ts.map +1 -1
- package/components/tn-dialog/tn-dialog.component.d.ts +1 -0
- package/components/tn-dialog/tn-dialog.component.d.ts.map +1 -1
- package/components/user-picker/user-picker-dialog/user-picker-dialog.component.d.ts +23 -0
- package/components/user-picker/user-picker-dialog/user-picker-dialog.component.d.ts.map +1 -0
- package/components/user-picker/user-picker-dialog/user-picker-dialog.component.ngfactory.d.ts.map +1 -0
- package/components/user-picker/user-picker-dialog/user-picker-dialog.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/workflow/permission-sharing/permission-sharing.component.d.ts +21 -0
- package/components/workflow/permission-sharing/permission-sharing.component.d.ts.map +1 -0
- package/components/workflow/permission-sharing/permission-sharing.component.ngfactory.d.ts.map +1 -0
- package/components/workflow/permission-sharing/permission-sharing.component.scss.shim.ngstyle.d.ts.map +1 -0
- package/components/workflow/services/workflow-permission.service.d.ts +10 -0
- package/components/workflow/services/workflow-permission.service.d.ts.map +1 -0
- package/components/workflow/services/workflow-permission.service.ngfactory.d.ts.map +1 -0
- package/components/workflow/workflow-history-new/workflow-history-new.component.d.ts.map +1 -1
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts +6 -2
- package/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.d.ts.map +1 -1
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts +9 -1
- package/congviec/congviec/congviec-form/congviec-form.component.d.ts.map +1 -1
- package/esm2015/classes/base/data-form-base.js +3 -3
- package/esm2015/classes/base/data-list-base.js +41 -6
- package/esm2015/classes/form-schema.js +1 -1
- package/esm2015/components/chat/chat-box/chat-box.component.js +626 -0
- package/esm2015/components/chat/chat-send-message-box/chat-send-message-box.component.js +245 -0
- package/esm2015/components/chat/models/enums.js +13 -0
- package/esm2015/components/chat/models/models.js +12 -0
- package/esm2015/components/chat/services/chat.service.js +113 -0
- package/esm2015/components/chat/services/content.service.js +57 -0
- package/esm2015/components/chat/services/message-board.service.js +40 -0
- package/esm2015/components/chat/services/status.service.js +36 -0
- package/esm2015/components/crud/crud-list/crud-list.component.js +55 -4
- package/esm2015/components/file-explorer/file-manager/file-manager.component.js +69 -16
- package/esm2015/components/file-explorer/file-viewer/file-viewer.component.js +2 -2
- package/esm2015/components/file-explorer/models/service-request-model.js +5 -2
- package/esm2015/components/statemachines/models/enums.js +6 -1
- package/esm2015/components/tn-custom-scrollbar/tn-custom-scrollbar.component.js +26 -11
- package/esm2015/components/tn-dialog/tn-dialog.component.js +4 -2
- package/esm2015/components/user-picker/user-picker-dialog/user-picker-dialog.component.js +52 -0
- package/esm2015/components/workflow/permission-sharing/permission-sharing.component.js +123 -0
- package/esm2015/components/workflow/services/workflow-permission.service.js +27 -0
- package/esm2015/components/workflow/workflow-history-new/workflow-history-new.component.js +4 -1
- package/esm2015/congviec/cauhinh-workflow/cauhinh-workflow-detail/cauhinh-workflow-detail.component.js +2 -2
- package/esm2015/congviec/congviec/congviec-dinhkem/congviec-dinhkem.component.js +38 -14
- package/esm2015/congviec/congviec/congviec-form/congviec-form.component.js +25 -4
- package/esm2015/congviec/congviec/congviec.component.js +3 -3
- package/esm2015/models/basic-user-info.js +6 -1
- package/esm2015/public-api.js +4 -1
- package/esm2015/services/base.service.js +33 -9
- package/esm2015/services/common.service.js +3 -18
- package/esm2015/services/crud.service.js +56 -41
- package/esm2015/services/notifier.service.js +2 -2
- package/esm2015/services/user.service.js +37 -23
- package/esm2015/tnx-shared.js +49 -43
- package/esm2015/tnx-shared.module.js +10 -2
- package/fesm2015/tnx-shared.js +1705 -202
- package/fesm2015/tnx-shared.js.map +1 -1
- package/models/basic-user-info.d.ts +2 -3
- package/models/basic-user-info.d.ts.map +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +3 -0
- package/public-api.d.ts.map +1 -1
- package/services/base.service.d.ts +5 -1
- package/services/base.service.d.ts.map +1 -1
- package/services/common.service.d.ts +3 -3
- package/services/common.service.d.ts.map +1 -1
- package/services/crud.service.d.ts.map +1 -1
- package/services/notifier.service.d.ts +1 -1
- package/services/notifier.service.d.ts.map +1 -1
- package/services/user.service.d.ts +14 -2
- package/services/user.service.d.ts.map +1 -1
- package/tnx-shared.d.ts +48 -42
- package/tnx-shared.d.ts.map +1 -1
- package/tnx-shared.metadata.json +1 -1
- package/tnx-shared.module.d.ts +5 -1
- package/tnx-shared.module.d.ts.map +1 -1
- package/tnx-shared.module.ngfactory.d.ts.map +1 -1
|
@@ -341,7 +341,7 @@ export class FileViewerComponent extends ComponentBase {
|
|
|
341
341
|
this.onClose.next(true);
|
|
342
342
|
}
|
|
343
343
|
else {
|
|
344
|
-
this._notifierService.
|
|
344
|
+
this._notifierService.showWarningByResponse(response);
|
|
345
345
|
}
|
|
346
346
|
});
|
|
347
347
|
});
|
|
@@ -447,4 +447,4 @@ FileViewerComponent.propDecorators = {
|
|
|
447
447
|
onDelete: [{ type: Output }],
|
|
448
448
|
sidebar: [{ type: ViewChild, args: ['sidebar',] }]
|
|
449
449
|
};
|
|
450
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9maWxlLXZpZXdlci9maWxlLXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFVdkUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUFzQmxELFlBQ1ksb0JBQXlDLEVBQ3pDLFdBQXVCLEVBQ3ZCLGNBQTZCLEVBQzdCLG9CQUF5QyxFQUN6QyxlQUErQixFQUMvQixpQkFBbUMsRUFDbkMsZ0JBQWlDLEVBQ2pDLGVBQW9DLEVBQ3BDLGdCQUFpQyxFQUNqQyxtQkFBdUMsRUFDdkMsb0JBQXlDLEVBQ3pDLHNCQUE2QyxFQUM3QyxrQkFBcUMsRUFDckMsb0JBQXlDLEVBQ3pDLGNBQTZCLEVBQzNCLFNBQW1CO1FBRTdCLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQWpCVCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyxvQkFBZSxHQUFmLGVBQWUsQ0FBcUI7UUFDcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNqQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQW5DeEIsVUFBSyxHQUFRO1lBQ2xCLElBQUksRUFBRSxFQUFFO1NBQ1gsQ0FBQztRQUNPLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRWpCLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR2hFLFNBQUksR0FBUSxFQUFFLENBQUM7UUFDZixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsVUFBVSxDQUFDO1FBc0JuQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUssSUFBSTs7WUFDTixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLENBQUM7S0FBQTtJQUVLLFNBQVM7O1lBQ1gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDL0MsT0FBTzthQUNWO1lBRUQsSUFBSSxJQUFJLEdBQVEsSUFBSSxDQUFDO1lBQ3JCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pCLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNuRyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUM1RixJQUFJLEdBQUcsVUFBVSxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNILElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQzthQUNqRjtZQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUU3QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDO0tBQUE7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUVqQixRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLEtBQUssVUFBVSxDQUFDLEtBQUs7Z0JBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN4QixNQUFNO1lBQ1YsS0FBSyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3RCLEtBQUssVUFBVSxDQUFDLEtBQUs7Z0JBQ2pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7Z0JBQ2pDLE1BQU07U0FDYjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw0QkFBNEI7UUFDeEIsT0FBZ0M7WUFDNUIsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUN4QixhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO1NBQ3pDLENBQUM7SUFDTixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQzthQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqRiw4QkFBOEI7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RCxJQUFJLFNBQVMsRUFBRTtZQUNYLE1BQU0sT0FBTyxHQUFRLFNBQVMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDM0QsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksTUFBTSxFQUFFO2dCQUM1QyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQ25FLElBQUksR0FBRyxFQUFFO29CQUNMLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDO2lCQUNmO2FBQ0o7U0FDSjtRQUVELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQzthQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELHlCQUF5QjtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQzthQUNoRCxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5RSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLE9BQU87UUFDL0MsTUFBTSxNQUFNLEdBQUc7WUFDWCxNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ3BFLFlBQVksRUFBRSxHQUFHLFFBQVEsRUFBRTtZQUMzQixZQUFZLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLE1BQU07Z0JBQ1osYUFBYSxFQUFFO29CQUNYLElBQUksRUFBRSxLQUFLO29CQUNYLEtBQUssRUFBRSxLQUFLO29CQUNaLFFBQVEsRUFBRSxJQUFJO2lCQUNqQjthQUNKO1lBQ0QsUUFBUSxFQUFFO2dCQUNOLFdBQVcsRUFBRTtvQkFDVCxPQUFPLEVBQUUsS0FBSztvQkFDZCxRQUFRLEVBQUUsSUFBSTtvQkFDZCxJQUFJLEVBQUUsS0FBSztvQkFDWCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxNQUFNLEVBQUUsS0FBSztvQkFDYixTQUFTLEVBQUUsS0FBSztpQkFDbkI7Z0JBQ0QsUUFBUSxFQUFFLEdBQUcsYUFBYSxFQUFFO2dCQUM1QixLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hDLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRTthQUNwQjtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNsQixNQUFNLEVBQUUsYUFBYTtZQUNyQixJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSxJQUFJLFlBQVksRUFBRTtZQUM1QixTQUFTLEVBQUUsSUFBSSxTQUFTLENBQUM7Z0JBQ3JCLEtBQUssRUFBRSxHQUFHO2dCQUNWLE1BQU0sRUFBRSxHQUFHO2FBQ2QsQ0FBQztTQUNMLENBQUM7SUFDTixDQUFDO0lBRUssY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFROztZQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRTlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFL0MsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLEVBQUU7b0JBQ3BDLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3QjtnQkFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUMvQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBRWYsT0FBTyxNQUFNLEdBQUcsTUFBTSxFQUFFO29CQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDN0MsTUFBTSxJQUFJLENBQUMsQ0FBQztvQkFFWixJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUU7d0JBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLFVBQVUsRUFBRTs0QkFDbEQsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQzdCO3dCQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7d0JBQzVELE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7d0JBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUM1QyxNQUFNLElBQUksQ0FBQyxDQUFDO3dCQUVaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7NEJBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO2dDQUNyRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7NkJBQ3hFO3lCQUNKO3FCQUNKO3lCQUFNLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFO3dCQUNwQyxNQUFNO3FCQUNUO3lCQUFNO3dCQUNILE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztxQkFDM0M7aUJBQ0o7Z0JBQ0QsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDO1lBRUYsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7S0FBQTtJQUVLLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVzs7WUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUVoQyxxQ0FBcUM7WUFDckMsaUNBQWlDO1lBRWpDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtvQkFFNUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7b0JBQ2pCLE1BQU0sd0JBQXdCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN0RSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUM7UUFDTixDQUFDO0tBQUE7SUFFRCxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLFFBQVE7UUFDaEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUV4QixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNkLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQ25CLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxFQUNuQixNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFDekMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbEMseURBQXlEO1lBQ3pELElBQUksQ0FBQyxHQUFHLGNBQWMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztnQkFDdEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDekI7aUJBQU07Z0JBQ0gsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2FBQzFCO1lBRUQseUNBQXlDO1lBQ3pDLFFBQVEsY0FBYyxFQUFFO2dCQUNwQixLQUFLLENBQUM7b0JBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQUMsTUFBTTtnQkFDcEQsS0FBSyxDQUFDO29CQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQUMsTUFBTTtnQkFDMUQsS0FBSyxDQUFDO29CQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUFDLE1BQU07Z0JBQ3JELEtBQUssQ0FBQztvQkFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQUMsTUFBTTtnQkFDL0MsS0FBSyxDQUFDO29CQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUFDLE1BQU07Z0JBQ3JELEtBQUssQ0FBQztvQkFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUFDLE1BQU07Z0JBQzFELEtBQUssQ0FBQztvQkFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFBQyxNQUFNO2dCQUNwRCxPQUFPLENBQUMsQ0FBQyxNQUFNO2FBQ2xCO1lBRUQsYUFBYTtZQUNiLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUV6QixnQkFBZ0I7WUFDaEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQztRQUVGLEdBQUcsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFLO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBQzNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJO1FBQ3JCLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksa0JBQWtCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksaUJBQWlCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO2VBQzFJLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzVGLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNuRCxPQUFPO2FBQ1Y7WUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsUUFBUTtRQUNKLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUU7YUFDcEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLEVBQUUsRUFBRTtnQkFDTCxPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNiLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtvQkFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMzQjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3hEO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHO1lBQ2hDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDbkIsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUssaUJBQWlCOztZQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDakMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxRSxJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQzlCO1FBQ0wsQ0FBQztLQUFBO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDO2FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNiLE1BQU0sV0FBVyxHQUFtQixRQUFRLENBQUMsSUFBSSxDQUFDO1lBRWxELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFbkYsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUN0QyxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDM0MsT0FBTyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1lBRS9ELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDOUMsZUFBZSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7WUFDNUYsZUFBZSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUN0RixlQUFlLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ3RGLGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ2xDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQy9CLGVBQWUsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDL0MsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMxQyxlQUFlLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUM7WUFDdEQsZUFBZSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9DLGVBQWUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuRSxPQUFPLENBQUMsSUFBSSxHQUFHLGVBQWUsQ0FBQztZQUUvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNQLElBQUksZUFBZSxDQUFDLHFCQUFxQixLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQzVEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO29CQUNyQixRQUFRLEVBQUUsT0FBTztvQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUM7b0JBQzdFLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDO29CQUM1RSxJQUFJLEVBQUUsSUFBSTtpQkFDYixDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGtCQUFrQjtJQUVsQixDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO0lBQ3RDLENBQUM7OztZQTdhSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLG84V0FBeUM7Z0JBRXpDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDOzthQUN2Qzs7O1lBdEJRLG1CQUFtQjtZQVhSLFVBQVU7WUFTckIsYUFBYTtZQU9iLG1CQUFtQjtZQUdFLGNBQWM7WUFsQm5DLGdCQUFnQjtZQVdoQixlQUFlO1lBT2YsbUJBQW1CO1lBTm5CLGVBQWU7WUFJZixrQkFBa0I7WUFQbEIsbUJBQW1CO1lBUm5CLHFCQUFxQjtZQWtCckIsaUJBQWlCO1lBRWpCLG1CQUFtQjtZQURuQixhQUFhO1lBckJ3QixRQUFROzs7b0JBcUNqRCxLQUFLO3VCQUdMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBRUwsTUFBTTt1QkFDTixNQUFNO3VCQUNOLE1BQU07c0JBRU4sU0FBUyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21DdHhDb25zdGFudHMgfSBmcm9tICcuLy4uLy4uLy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvY29tcG9uZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBDb21tb25FcnJvckNvZGUgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbW1vbi1lcnJvci1jb2RlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlncy9tb2R1bGUtY29uZmlnJztcclxuaW1wb3J0IHsgRWRpdEZpbGVDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VkaXQtZmlsZS1jb21tYW5kJztcclxuaW1wb3J0IHsgQ29tbWFuZFR5cGUsIFRuQ2xpZW50Q29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90bi1jbGllbnQtY29tbWFuZCc7XHJcbmltcG9ydCB7IEF1dGhlblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVJvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jdXN0b20tcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRuQ2xpZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RuLWNsaWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZVZlcnNpb25EVE8gfSBmcm9tICcuLi9tb2RlbHMvZmlsZS12ZXJzaW9uLWR0byc7XHJcbmltcG9ydCB7IEdlbmVyYXRlTGlua0Rvd25sb2FkRFRPIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlLWxpbmstZG93bmxvYWQtZHRvJztcclxuaW1wb3J0IHsgRmlsZUV4cGxvcmVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbGUtZXhwbG9yZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVWZXJzaW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbGUtdmVyc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEZpbGVPYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmlsZS1vYmplY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEZvbGRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb2xkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvd25sb2FkTGlua1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kb3dubG9hZC1saW5rLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGSUxFX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDcnVkRm9ybURhdGEsIFBvcHVwU2l6ZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5cclxuZGVjbGFyZSB2YXIgRG9jc0FQSTogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2ZpbGUtdmlld2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnZmlsZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2ZpbGUtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVWaWV3ZXJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBwcml2YXRlIF9tb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIG1vZGVsOiBhbnkgPSB7XHJcbiAgICAgICAgZGF0YToge31cclxuICAgIH07XHJcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2hvd1ByaW50ID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHNob3dEb3dubG9hZCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBzaG93RGVsZXRlID0gdHJ1ZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbmFtZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkRlbGV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdzaWRlYmFyJykgc2lkZWJhcjogU2lkZWJhcjtcclxuICAgIGRhdGE6IGFueSA9IHt9O1xyXG4gICAgc2hvdyA9IGZhbHNlO1xyXG4gICAgaXNSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgZmlsZVR5cGVzID0gRklMRV9UWVBFUztcclxuICAgIHJlbmFtZUZpbGVGb3JtOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX2F1dGhlblNlcnZpY2U6IEF1dGhlblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZmlsZUV4cGxvcmVyU2VydmljZTogRmlsZUV4cGxvcmVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9ub3RpZmllclNlcnZpY2U6IE5vdGlmaWVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jb25maXJtU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90bkNsaWVudFNlcnZpY2U6IFRuQ2xpZW50U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9maWxlVmVyc2lvblNlcnZpY2U6IEZpbGVWZXJzaW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jdXN0b21Sb3V0ZXJTZXJ2aWNlOiBDdXN0b21Sb3V0ZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RldmljZURldGVjdG9yU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVPYmplY3RTZXJ2aWNlOiBGaWxlT2JqZWN0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kb3dubG9hZExpbmtTZXJ2aWNlOiBEb3dubG9hZExpbmtTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZvbGRlclNlcnZpY2U6IEZvbGRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3JcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XHJcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gdGhpcy5fbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbml0KCkge1xyXG4gICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmdldERldGFpbCgpO1xyXG4gICAgICAgIHRoaXMuc2hvd0ZpbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXREZXRhaWwoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5tb2RlbC5kYXRhO1xyXG4gICAgICAgIGlmICghdGhpcy5kYXRhLmZpbGVJZCAmJiAhdGhpcy5kYXRhLmZpbGVWZXJzaW9uSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGRhdGE6IGFueSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5maWxlVmVyc2lvbklkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVWZXJzaW9uID0gKGF3YWl0IHRoaXMuX2ZpbGVWZXJzaW9uU2VydmljZS5nZXREZXRhaWwodGhpcy5kYXRhLmZpbGVWZXJzaW9uSWQpKS5kYXRhIHx8IHt9O1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlT2JqZWN0ID0gKGF3YWl0IHRoaXMuX2ZpbGVPYmplY3RTZXJ2aWNlLmdldERldGFpbChmaWxlVmVyc2lvbi5maWxlSWQpKS5kYXRhIHx8IHt9O1xyXG4gICAgICAgICAgICBkYXRhID0gZmlsZU9iamVjdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhID0gKGF3YWl0IHRoaXMuX2ZpbGVPYmplY3RTZXJ2aWNlLmdldERldGFpbCh0aGlzLmRhdGEuZmlsZUlkKSkuZGF0YSB8fCB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRhdGEuZXh0ZW5zaW9uID0gdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbihkYXRhLm5hbWUpO1xyXG4gICAgICAgIGRhdGEuZmlsZVR5cGUgPSB0aGlzLl9maWxlT2JqZWN0U2VydmljZS5nZXRGaWxlVHlwZShkYXRhLmV4dGVuc2lvbik7XHJcbiAgICAgICAgZGF0YS5maWxlSWQgPSB0aGlzLmRhdGEuZmlsZUlkO1xyXG4gICAgICAgIGRhdGEuZmlsZVZlcnNpb25JZCA9IHRoaXMuZGF0YS5maWxlVmVyc2lvbklkO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dGaWxlKCkge1xyXG4gICAgICAgIHRoaXMubW9kZWwuaW1hZ2VzID0gW107XHJcbiAgICAgICAgdGhpcy5tb2RlbC5pc0ltYWdlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3cgPSB0cnVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0YS5maWxlVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIEZJTEVfVFlQRVMuSU1BR0U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTaG93SW1hZ2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEZJTEVfVFlQRVMuVklERU86XHJcbiAgICAgICAgICAgIGNhc2UgRklMRV9UWVBFUy5BVURJTzpcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1ZpZGVvT3JBdWRpbygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NPdGhlckZpbGVFeHRlbnNpb24oKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnJvb3Quc3Vic2NyaWJlKENvbUN0eENvbnN0YW50cy5ST09ULktFWV9ET1dOX0VTQywgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU2lkZWJhcihudWxsKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRHZW5lcmF0ZURvd25sb2FkTGlua01vZGVsKCkge1xyXG4gICAgICAgIHJldHVybiA8R2VuZXJhdGVMaW5rRG93bmxvYWREVE8+e1xyXG4gICAgICAgICAgICBmaWxlSWQ6IHRoaXMuZGF0YS5maWxlSWQsXHJcbiAgICAgICAgICAgIGZpbGVWZXJzaW9uSWQ6IHRoaXMuZGF0YS5maWxlVmVyc2lvbklkXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcm9jZXNzU2hvd0ltYWdlKCkge1xyXG4gICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRHZW5lcmF0ZURvd25sb2FkTGlua01vZGVsKCk7XHJcbiAgICAgICAgdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZW5lcmF0ZURvd25sb2FkTGluayhtb2RlbClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbWFnZXMgPSBbdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZXRBbm9ueW1vdXNEb3dubG9hZFVybChycy5kYXRhKV07XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNob3dJbWFnZVdoZW5Mb2FkZWQoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0ltYWdlV2hlbkxvYWRlZCgpIHtcclxuICAgICAgICBsZXQgZG9uZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZS12aWV3LWxpc3QnKTtcclxuICAgICAgICBpZiAoY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvYWRpbmc6IGFueSA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcuaXYtbG9hZGVyJyk7XHJcbiAgICAgICAgICAgIGlmIChsb2FkaW5nICYmIGxvYWRpbmcuc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGltZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdpbWcuaXYtaW1hZ2UuaXYtbGFyZ2UtaW1hZ2UnKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbWcpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbWcuY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWRvbmUpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dJbWFnZVdoZW5Mb2FkZWQoKSwgNTApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9jZXNzVmlkZW9PckF1ZGlvKCkge1xyXG4gICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRHZW5lcmF0ZURvd25sb2FkTGlua01vZGVsKCk7XHJcbiAgICAgICAgdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZW5lcmF0ZURvd25sb2FkTGluayhtb2RlbClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5maWxlVXJsID0gdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZXRBbm9ueW1vdXNEb3dubG9hZFVybChycy5kYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvY2Vzc090aGVyRmlsZUV4dGVuc2lvbigpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0R2VuZXJhdGVEb3dubG9hZExpbmtNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuX2Rvd25sb2FkTGlua1NlcnZpY2UuZ2VuZXJhdGVEb3dubG9hZExpbmsobW9kZWwpXHJcbiAgICAgICAgICAgIC50aGVuKHJzID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSB0aGlzLl9kb3dubG9hZExpbmtTZXJ2aWNlLmdldEFub255bW91c0Rvd25sb2FkVXJsKHJzLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0RG9jdW1lbnRWaWV3ZXIodGhpcy5kYXRhLmV4dGVuc2lvbiwgdGhpcy5kYXRhLmZpbGVUeXBlLCBmaWxlVXJsKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdERvY3VtZW50Vmlld2VyKGZpbGVFeHRlbnNpb24sIGZpbGVUeXBlLCBmaWxlVXJsKSB7XHJcbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgdHlwZTogdGhpcy5fZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzRGVza3RvcCgpID8gJ2Rlc2t0b3AnIDogJ21vYmlsZScsXHJcbiAgICAgICAgICAgIGRvY3VtZW50VHlwZTogYCR7ZmlsZVR5cGV9YCxcclxuICAgICAgICAgICAgZWRpdG9yQ29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgICBtb2RlOiAndmlldycsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21pemF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgYWJvdXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnRzOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGRvY3VtZW50OiB7XHJcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRvd25sb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVkaXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHByaW50OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJldmlldzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbEZvcm1zOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlOiBgJHtmaWxlRXh0ZW5zaW9ufWAsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogYCR7dGhpcy5tb2RlbC5kYXRhLm5hbWV9YCxcclxuICAgICAgICAgICAgICAgIHVybDogYCR7ZmlsZVVybH1gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubW9kZWwuZG9jRWRpdG9yID0gbmV3IERvY3NBUEkuRG9jRWRpdG9yKCdmaWxlLXZpZXdlcicsIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdEZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5yZW5hbWVGaWxlRm9ybSA9IHtcclxuICAgICAgICAgICAgaGVhZGVyOiAnxJDhu5VpIHTDqm4gdOG7h3AnLFxyXG4gICAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgICAgZm9ybURhdGE6IG5ldyBDcnVkRm9ybURhdGEoKSxcclxuICAgICAgICAgICAgcG9wdXBTaXplOiBuZXcgUG9wdXBTaXplKHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA0MDAsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0T3JpZW50YXRpb24oaW1hZ2VVcmwsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChpbWFnZVVybCk7XHJcbiAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHJlcy5ibG9iKCk7XHJcblxyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGV2ZW50LnRhcmdldC5yZXN1bHQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHZpZXcuZ2V0VWludDE2KDAsIGZhbHNlKSAhPSAweEZGRDgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhibG9iLCAtMik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpZXcuYnl0ZUxlbmd0aDtcclxuICAgICAgICAgICAgbGV0IG9mZnNldCA9IDI7XHJcblxyXG4gICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXJrZXIgPSB2aWV3LmdldFVpbnQxNihvZmZzZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIG9mZnNldCArPSAyO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChtYXJrZXIgPT0gMHhGRkUxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXcuZ2V0VWludDMyKG9mZnNldCArPSAyLCBmYWxzZSkgIT0gMHg0NTc4Njk2Nikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soYmxvYiwgLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaXR0bGUgPSB2aWV3LmdldFVpbnQxNihvZmZzZXQgKz0gNiwgZmFsc2UpID09IDB4NDk0OTtcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdmlldy5nZXRVaW50MzIob2Zmc2V0ICsgNCwgbGl0dGxlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0gdmlldy5nZXRVaW50MTYob2Zmc2V0LCBsaXR0bGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhZ3M7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlldy5nZXRVaW50MTYob2Zmc2V0ICsgKGkgKiAxMiksIGxpdHRsZSkgPT0gMHgwMTEyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soYmxvYiwgdmlldy5nZXRVaW50MTYob2Zmc2V0ICsgKGkgKiAxMikgKyA4LCBsaXR0bGUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKG1hcmtlciAmIDB4RkYwMCkgIT0gMHhGRjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSB2aWV3LmdldFVpbnQxNihvZmZzZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soYmxvYiwgLTEpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRCYXNlNjQoYmxvYiwgb3JpZW50YXRpb24pIHtcclxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuICAgICAgICAvLyBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChpbWFnZVVybCk7XHJcbiAgICAgICAgLy8gY29uc3QgYmxvYiA9IGF3YWl0IHJlcy5ibG9iKCk7XHJcblxyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IHJlYWRlci5yZXN1bHQ7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRPcmllbnRhdGlvbihiYXNlNjQsIG9yaWVudGF0aW9uLCAocmVzZXRCYXNlNjRJbWFnZSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZVdpdGhvdXRCYXNlNjRQcmVmaXggPSByZXNldEJhc2U2NEltYWdlLnNwbGl0KCdiYXNlNjQsJylbMV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmltYWdlcyA9IFtpbWFnZVdpdGhvdXRCYXNlNjRQcmVmaXhdO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXRPcmllbnRhdGlvbihzcmNCYXNlNjQsIHNyY09yaWVudGF0aW9uLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xyXG5cclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGltZy53aWR0aCxcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IGltZy5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSxcclxuICAgICAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cclxuICAgICAgICAgICAgLy8gc2V0IHByb3BlciBjYW52YXMgZGltZW5zaW9ucyBiZWZvcmUgdHJhbnNmb3JtICYgZXhwb3J0XHJcbiAgICAgICAgICAgIGlmICg0IDwgc3JjT3JpZW50YXRpb24gJiYgc3JjT3JpZW50YXRpb24gPCA5KSB7XHJcbiAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBoZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gd2lkdGg7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybSBjb250ZXh0IGJlZm9yZSBkcmF3aW5nIGltYWdlXHJcbiAgICAgICAgICAgIHN3aXRjaCAoc3JjT3JpZW50YXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMjogY3R4LnRyYW5zZm9ybSgtMSwgMCwgMCwgMSwgd2lkdGgsIDApOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgMzogY3R4LnRyYW5zZm9ybSgtMSwgMCwgMCwgLTEsIHdpZHRoLCBoZWlnaHQpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogY3R4LnRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgaGVpZ2h0KTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IGN0eC50cmFuc2Zvcm0oMCwgMSwgMSwgMCwgMCwgMCk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA2OiBjdHgudHJhbnNmb3JtKDAsIDEsIC0xLCAwLCBoZWlnaHQsIDApOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogY3R4LnRyYW5zZm9ybSgwLCAtMSwgLTEsIDAsIGhlaWdodCwgd2lkdGgpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgODogY3R4LnRyYW5zZm9ybSgwLCAtMSwgMSwgMCwgMCwgd2lkdGgpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBkcmF3IGltYWdlXHJcbiAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGV4cG9ydCBiYXNlNjRcclxuICAgICAgICAgICAgY2FsbGJhY2soY2FudmFzLnRvRGF0YVVSTCgpKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpbWcuc3JjID0gc3JjQmFzZTY0O1xyXG4gICAgfVxyXG5cclxuICAgIG9uVG9wYmFySXRlbUNsaWNrKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5hY3RpdmVUb3BiYXJJdGVtID0gIXRoaXMubW9kZWwuYWN0aXZlVG9wYmFySXRlbTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlU2lkZWJhcihldmVudCA9IG51bGwpIHtcclxuICAgICAgICBpZiAoIWV2ZW50IHx8IGV2ZW50LnRhcmdldC5pZCA9PSAnZmlsZVZpZXdlckhvbGRlcicgfHwgZXZlbnQudGFyZ2V0LmlkID09ICdpbWFnZS12aWV3LWxpc3QnIHx8IGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2ltYWdlLWNvbnRhaW5lcicpXHJcbiAgICAgICAgICAgIHx8IGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2l2LWltYWdlLXZpZXcnKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLmFjdGl2ZVRvcGJhckl0ZW0gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub25DbG9zZS5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaW50KCkge1xyXG4gICAgICAgIHRoaXMuX2Rvd25sb2FkTGlua1NlcnZpY2UuY29udmVydFRvUGRmKHRoaXMuZGF0YS5uYW1lLCB0aGlzLmRhdGEuZmlsZUlkLCB0aGlzLmRhdGEuZmlsZVZlcnNpb25JZClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFycy5zdWNjZXNzIHx8ICFycy5kYXRhIHx8ICFycy5kYXRhLmNvbnRlbnRCYXNlNjQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZmlsZUV4cGxvcmVyU2VydmljZS5wcmludChycy5kYXRhLmNvbnRlbnRCYXNlNjQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZCgpIHtcclxuICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0R2VuZXJhdGVEb3dubG9hZExpbmtNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuX2Rvd25sb2FkTGlua1NlcnZpY2UuZG93bmxvYWQobW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUZpbGUoKSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVDb25maXJtKClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFycykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ZvbGRlclNlcnZpY2UuZGVsZXRlTXVsdGlwbGUoW3RoaXMuZGF0YV0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVEYXRhU3VjY2VzcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGViYXIobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2xvc2UubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZ0J5UmVwb25zZShyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuYW1lRmlsZSgpIHtcclxuICAgICAgICB0aGlzLnJlbmFtZUZpbGVGb3JtLmhlYWRlciA9ICfEkOG7lWkgdMOqbiB0aMawIG3hu6VjJztcclxuICAgICAgICB0aGlzLnJlbmFtZUZpbGVGb3JtLmZvcm1EYXRhLmRhdGEgPSB7XHJcbiAgICAgICAgICAgIGlkOiB0aGlzLmRhdGEuaWRcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLnJlbmFtZUZpbGVGb3JtLnNob3cgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG9uU2F2ZWRSZW5hbWVGaWxlKCkge1xyXG4gICAgICAgIHRoaXMucmVuYW1lRmlsZUZvcm0uc2hvdyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSAoYXdhaXQgdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZ2V0RGV0YWlsKHRoaXMuZGF0YS5pZCkpLmRhdGE7XHJcbiAgICAgICAgaWYgKGZpbGUpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhLm5hbWUgPSBmaWxlLm5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQ2FuY2VsUmVuYW1lRmlsZSgpIHtcclxuICAgICAgICB0aGlzLnJlbmFtZUZpbGVGb3JtLnNob3cgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBlZGl0RmlsZSgpIHtcclxuICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1N1Y2Nlc3MoJ8SQYW5nIGvhur90IG7hu5FpIG3hu58g4bupbmcgZOG7pW5nJyk7XHJcblxyXG4gICAgICAgIHRoaXMuX2ZpbGVWZXJzaW9uU2VydmljZS5jcmVhdGVOZXdNaW5vclZlcnNpb24odGhpcy5kYXRhLmZpbGVJZCwgJycsIGZhbHNlKVxyXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVmVyc2lvbiA9IDxGaWxlVmVyc2lvbkRUTz5yZXNwb25zZS5kYXRhO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSB0aGlzLl9maWxlVmVyc2lvblNlcnZpY2UuZ2V0RmlsZVZlcnNpb25Eb3dubG9hZFVybChmaWxlVmVyc2lvbi5pZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29tbWFuZCA9IG5ldyBUbkNsaWVudENvbW1hbmQoKTtcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQuY29tbWFuZFR5cGUgPSBDb21tYW5kVHlwZS5FZGl0RmlsZTtcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQua2V5ID0gdGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LnNpZ25hbHIuY2xpZW50S2V5O1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRGaWxlQ29tbWFuZCA9IG5ldyBFZGl0RmlsZUNvbW1hbmQoKTtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC5maWxlU2VydmljZUVuZHBvaW50ID0gdGhpcy5fbW9kdWxlQ29uZmlnLmVudmlyb25tZW50LmFwaURvbWFpbi5maWxlRW5kcG9pbnQ7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQudXBsb2FkRmlsZUFwaSA9IHRoaXMuX2ZpbGVWZXJzaW9uU2VydmljZS5nZXRVcGxvYWRGaWxlVmVyc2lvbkFwaVVybCgpO1xyXG4gICAgICAgICAgICAgICAgZWRpdEZpbGVDb21tYW5kLnJlbW92ZUZpbGVBcGkgPSB0aGlzLl9maWxlVmVyc2lvblNlcnZpY2UuZ2V0UmVtb3ZlRmlsZVZlcnNpb25BcGlVcmwoKTtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC5maWxlVXJsID0gZmlsZVVybDtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC5pc0RyYWZ0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC5ncm91cEZpbGVOYW1lID0gdGhpcy5kYXRhLm5hbWU7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQuZmlsZU5hbWUgPSB0aGlzLmRhdGEubmFtZTtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC52ZXJzaW9uTmFtZSA9IGZpbGVWZXJzaW9uLnZlcnNpb25OYW1lO1xyXG4gICAgICAgICAgICAgICAgZWRpdEZpbGVDb21tYW5kLmZpbGVWZXJzaW9uSWQgPSBmaWxlVmVyc2lvbi5pZDtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC5hY2Nlc3NUb2tlbiA9IHRoaXMuX2F1dGhlblNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQuZGF0YSA9IGVkaXRGaWxlQ29tbWFuZDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl90bkNsaWVudFNlcnZpY2Uuc2VuZENvbW1hbmQoY29tbWFuZCk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChDb21tb25FcnJvckNvZGUuRVJST1JfU0VSVklDRV9OT1RfUlVOID09PSBlcnJvci5zdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmllclNlcnZpY2Uuc2hvd1Jlc3BvbnNlRXJyb3IoMCwgbnVsbCwgJ0ZpbGUnKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnRklMRV9FWFBMT1JFUi5NRVNTQUdFX0VSUk9SX0hFQURFUicpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnRklMRV9FWFBMT1JFUi5NRVNTQUdFX0VSUk9SX0RFVEFJTCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaWZlOiA1MDAwXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeUNvbm5lY3RUb0NsaWVudCgpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgaXNEZXNrdG9wKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNGaWxlVHlwZSh0eXBlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5maWxlVHlwZSA9PSB0eXBlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9maWxlLXZpZXdlci9maWxlLXZpZXdlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHdEUsT0FBTyxFQUFFLG1C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Q25ELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO0lBQ3RDLENBQUM7OztZQTdhSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLG84V0FBeUM7Z0JBRXpDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDOzthQUN2Qzs7O1lBdEJRLG1CQUFtQjtZQVhSLFVBQVU7WUFTckIsYUFBYTtZQU9iLG1CQUFtQjtZQUdFLGNBQWM7WUFsQm5DLGdCQUFnQjtZQVdoQixlQUFlO1lBT2YsbUJBQW1CO1lBTm5CLGVBQWU7WUFJZixrQkFBa0I7WUFQbEIsbUJBQW1CO1lBUm5CLHFCQUFxQjtZQWtCckIsaUJBQWlCO1lBRWpCLG1CQUFtQjtZQURuQixhQUFhO1lBckJ3QixRQUFROzs7b0JBcUNqRCxLQUFLO3VCQUdMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBRUwsTUFBTTt1QkFDTixNQUFNO3VCQUNOLE1BQU07c0JBRU4sU0FBUyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21DdHhDb25zdGFudHMgfSBmcm9tICcuLy4uLy4uLy4uL2NvbmZpZ3MvY29tcG9uZW50LWNvbnRleHQuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Jhc2UvY29tcG9uZW50LWJhc2UnO1xyXG5pbXBvcnQgeyBDb21tb25FcnJvckNvZGUgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbW1vbi1lcnJvci1jb2RlJztcclxuaW1wb3J0IHsgTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlncy9tb2R1bGUtY29uZmlnJztcclxuaW1wb3J0IHsgRWRpdEZpbGVDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VkaXQtZmlsZS1jb21tYW5kJztcclxuaW1wb3J0IHsgQ29tbWFuZFR5cGUsIFRuQ2xpZW50Q29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90bi1jbGllbnQtY29tbWFuZCc7XHJcbmltcG9ydCB7IEF1dGhlblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEN1c3RvbVJvdXRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jdXN0b20tcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNb2R1bGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbW9kdWxlLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbm90aWZpZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFRuQ2xpZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RuLWNsaWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZVZlcnNpb25EVE8gfSBmcm9tICcuLi9tb2RlbHMvZmlsZS12ZXJzaW9uLWR0byc7XHJcbmltcG9ydCB7IEdlbmVyYXRlTGlua0Rvd25sb2FkRFRPIH0gZnJvbSAnLi4vbW9kZWxzL2dlbmVyYXRlLWxpbmstZG93bmxvYWQtZHRvJztcclxuaW1wb3J0IHsgRmlsZUV4cGxvcmVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbGUtZXhwbG9yZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZpbGVWZXJzaW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpbGUtdmVyc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2lkZWJhciB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL3NpZGViYXInO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEZpbGVPYmplY3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZmlsZS1vYmplY3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEZvbGRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb2xkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IERvd25sb2FkTGlua1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9kb3dubG9hZC1saW5rLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGSUxFX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDcnVkRm9ybURhdGEsIFBvcHVwU2l6ZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS1zY2hlbWEnO1xyXG5cclxuZGVjbGFyZSB2YXIgRG9jc0FQSTogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2ZpbGUtdmlld2VyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnZmlsZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2ZpbGUtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVWaWV3ZXJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBwcml2YXRlIF9tb2R1bGVDb25maWc6IE1vZHVsZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIG1vZGVsOiBhbnkgPSB7XHJcbiAgICAgICAgZGF0YToge31cclxuICAgIH07XHJcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2hvd1ByaW50ID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHNob3dEb3dubG9hZCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBzaG93RGVsZXRlID0gdHJ1ZTtcclxuXHJcbiAgICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvblJlbmFtZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBvbkRlbGV0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdzaWRlYmFyJykgc2lkZWJhcjogU2lkZWJhcjtcclxuICAgIGRhdGE6IGFueSA9IHt9O1xyXG4gICAgc2hvdyA9IGZhbHNlO1xyXG4gICAgaXNSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgZmlsZVR5cGVzID0gRklMRV9UWVBFUztcclxuICAgIHJlbmFtZUZpbGVGb3JtOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfbW9kdWxlQ29uZmlnU2VydmljZTogTW9kdWxlQ29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX2F1dGhlblNlcnZpY2U6IEF1dGhlblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZmlsZUV4cGxvcmVyU2VydmljZTogRmlsZUV4cGxvcmVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9ub3RpZmllclNlcnZpY2U6IE5vdGlmaWVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jb25maXJtU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90bkNsaWVudFNlcnZpY2U6IFRuQ2xpZW50U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9maWxlVmVyc2lvblNlcnZpY2U6IEZpbGVWZXJzaW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9jdXN0b21Sb3V0ZXJTZXJ2aWNlOiBDdXN0b21Sb3V0ZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2RldmljZURldGVjdG9yU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVPYmplY3RTZXJ2aWNlOiBGaWxlT2JqZWN0U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kb3dubG9hZExpbmtTZXJ2aWNlOiBEb3dubG9hZExpbmtTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZvbGRlclNlcnZpY2U6IEZvbGRlclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9pbmplY3RvcjogSW5qZWN0b3JcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9pbmplY3Rvcik7XHJcbiAgICAgICAgdGhpcy5fbW9kdWxlQ29uZmlnID0gdGhpcy5fbW9kdWxlQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBpbml0KCkge1xyXG4gICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmdldERldGFpbCgpO1xyXG4gICAgICAgIHRoaXMuc2hvd0ZpbGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXREZXRhaWwoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5tb2RlbC5kYXRhO1xyXG4gICAgICAgIGlmICghdGhpcy5kYXRhLmZpbGVJZCAmJiAhdGhpcy5kYXRhLmZpbGVWZXJzaW9uSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGRhdGE6IGFueSA9IG51bGw7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0YS5maWxlVmVyc2lvbklkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVWZXJzaW9uID0gKGF3YWl0IHRoaXMuX2ZpbGVWZXJzaW9uU2VydmljZS5nZXREZXRhaWwodGhpcy5kYXRhLmZpbGVWZXJzaW9uSWQpKS5kYXRhIHx8IHt9O1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlT2JqZWN0ID0gKGF3YWl0IHRoaXMuX2ZpbGVPYmplY3RTZXJ2aWNlLmdldERldGFpbChmaWxlVmVyc2lvbi5maWxlSWQpKS5kYXRhIHx8IHt9O1xyXG4gICAgICAgICAgICBkYXRhID0gZmlsZU9iamVjdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhID0gKGF3YWl0IHRoaXMuX2ZpbGVPYmplY3RTZXJ2aWNlLmdldERldGFpbCh0aGlzLmRhdGEuZmlsZUlkKSkuZGF0YSB8fCB7fTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRhdGEuZXh0ZW5zaW9uID0gdGhpcy5fZmlsZU9iamVjdFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbihkYXRhLm5hbWUpO1xyXG4gICAgICAgIGRhdGEuZmlsZVR5cGUgPSB0aGlzLl9maWxlT2JqZWN0U2VydmljZS5nZXRGaWxlVHlwZShkYXRhLmV4dGVuc2lvbik7XHJcbiAgICAgICAgZGF0YS5maWxlSWQgPSB0aGlzLmRhdGEuZmlsZUlkO1xyXG4gICAgICAgIGRhdGEuZmlsZVZlcnNpb25JZCA9IHRoaXMuZGF0YS5maWxlVmVyc2lvbklkO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dGaWxlKCkge1xyXG4gICAgICAgIHRoaXMubW9kZWwuaW1hZ2VzID0gW107XHJcbiAgICAgICAgdGhpcy5tb2RlbC5pc0ltYWdlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnNob3cgPSB0cnVlO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0YS5maWxlVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIEZJTEVfVFlQRVMuSU1BR0U6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTaG93SW1hZ2UoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIEZJTEVfVFlQRVMuVklERU86XHJcbiAgICAgICAgICAgIGNhc2UgRklMRV9UWVBFUy5BVURJTzpcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1ZpZGVvT3JBdWRpbygpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NPdGhlckZpbGVFeHRlbnNpb24oKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnJvb3Quc3Vic2NyaWJlKENvbUN0eENvbnN0YW50cy5ST09ULktFWV9ET1dOX0VTQywgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlU2lkZWJhcihudWxsKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRHZW5lcmF0ZURvd25sb2FkTGlua01vZGVsKCkge1xyXG4gICAgICAgIHJldHVybiA8R2VuZXJhdGVMaW5rRG93bmxvYWREVE8+e1xyXG4gICAgICAgICAgICBmaWxlSWQ6IHRoaXMuZGF0YS5maWxlSWQsXHJcbiAgICAgICAgICAgIGZpbGVWZXJzaW9uSWQ6IHRoaXMuZGF0YS5maWxlVmVyc2lvbklkXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcm9jZXNzU2hvd0ltYWdlKCkge1xyXG4gICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRHZW5lcmF0ZURvd25sb2FkTGlua01vZGVsKCk7XHJcbiAgICAgICAgdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZW5lcmF0ZURvd25sb2FkTGluayhtb2RlbClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbWFnZXMgPSBbdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZXRBbm9ueW1vdXNEb3dubG9hZFVybChycy5kYXRhKV07XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNob3dJbWFnZVdoZW5Mb2FkZWQoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvd0ltYWdlV2hlbkxvYWRlZCgpIHtcclxuICAgICAgICBsZXQgZG9uZSA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWFnZS12aWV3LWxpc3QnKTtcclxuICAgICAgICBpZiAoY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvYWRpbmc6IGFueSA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcuaXYtbG9hZGVyJyk7XHJcbiAgICAgICAgICAgIGlmIChsb2FkaW5nICYmIGxvYWRpbmcuc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGltZyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdpbWcuaXYtaW1hZ2UuaXYtbGFyZ2UtaW1hZ2UnKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbWcpIHtcclxuICAgICAgICAgICAgICAgICAgICBpbWcuY2xhc3NMaXN0LmFkZCgnc2hvdycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWRvbmUpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNob3dJbWFnZVdoZW5Mb2FkZWQoKSwgNTApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9jZXNzVmlkZW9PckF1ZGlvKCkge1xyXG4gICAgICAgIGNvbnN0IG1vZGVsID0gdGhpcy5nZXRHZW5lcmF0ZURvd25sb2FkTGlua01vZGVsKCk7XHJcbiAgICAgICAgdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZW5lcmF0ZURvd25sb2FkTGluayhtb2RlbClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5maWxlVXJsID0gdGhpcy5fZG93bmxvYWRMaW5rU2VydmljZS5nZXRBbm9ueW1vdXNEb3dubG9hZFVybChycy5kYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvY2Vzc090aGVyRmlsZUV4dGVuc2lvbigpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLmlzSW1hZ2UgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0R2VuZXJhdGVEb3dubG9hZExpbmtNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuX2Rvd25sb2FkTGlua1NlcnZpY2UuZ2VuZXJhdGVEb3dubG9hZExpbmsobW9kZWwpXHJcbiAgICAgICAgICAgIC50aGVuKHJzID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVVcmwgPSB0aGlzLl9kb3dubG9hZExpbmtTZXJ2aWNlLmdldEFub255bW91c0Rvd25sb2FkVXJsKHJzLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0RG9jdW1lbnRWaWV3ZXIodGhpcy5kYXRhLmV4dGVuc2lvbiwgdGhpcy5kYXRhLmZpbGVUeXBlLCBmaWxlVXJsKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdERvY3VtZW50Vmlld2VyKGZpbGVFeHRlbnNpb24sIGZpbGVUeXBlLCBmaWxlVXJsKSB7XHJcbiAgICAgICAgY29uc3QgY29uZmlnID0ge1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgdHlwZTogdGhpcy5fZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzRGVza3RvcCgpID8gJ2Rlc2t0b3AnIDogJ21vYmlsZScsXHJcbiAgICAgICAgICAgIGRvY3VtZW50VHlwZTogYCR7ZmlsZVR5cGV9YCxcclxuICAgICAgICAgICAgZWRpdG9yQ29uZmlnOiB7XHJcbiAgICAgICAgICAgICAgICBtb2RlOiAndmlldycsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21pemF0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hhdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgYWJvdXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnRzOiB0cnVlXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGRvY3VtZW50OiB7XHJcbiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRvd25sb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGVkaXQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHByaW50OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJldmlldzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbEZvcm1zOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGZpbGVUeXBlOiBgJHtmaWxlRXh0ZW5zaW9ufWAsXHJcbiAgICAgICAgICAgICAgICB0aXRsZTogYCR7dGhpcy5tb2RlbC5kYXRhLm5hbWV9YCxcclxuICAgICAgICAgICAgICAgIHVybDogYCR7ZmlsZVVybH1gXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMubW9kZWwuZG9jRWRpdG9yID0gbmV3IERvY3NBUEkuRG9jRWRpdG9yKCdmaWxlLXZpZXdlcicsIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdEZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy5yZW5hbWVGaWxlRm9ybSA9IHtcclxuICAgICAgICAgICAgaGVhZGVyOiAnxJDhu5VpIHTDqm4gdOG7h3AnLFxyXG4gICAgICAgICAgICBzaG93OiBmYWxzZSxcclxuICAgICAgICAgICAgZm9ybURhdGE6IG5ldyBDcnVkRm9ybURhdGEoKSxcclxuICAgICAgICAgICAgcG9wdXBTaXplOiBuZXcgUG9wdXBTaXplKHtcclxuICAgICAgICAgICAgICAgIHdpZHRoOiA0MDAsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0T3JpZW50YXRpb24oaW1hZ2VVcmwsIGNhbGxiYWNrKSB7XHJcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChpbWFnZVVybCk7XHJcbiAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHJlcy5ibG9iKCk7XHJcblxyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KGV2ZW50LnRhcmdldC5yZXN1bHQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHZpZXcuZ2V0VWludDE2KDAsIGZhbHNlKSAhPSAweEZGRDgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhibG9iLCAtMik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpZXcuYnl0ZUxlbmd0aDtcclxuICAgICAgICAgICAgbGV0IG9mZnNldCA9IDI7XHJcblxyXG4gICAgICAgICAgICB3aGlsZSAob2Zmc2V0IDwgbGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYXJrZXIgPSB2aWV3LmdldFVpbnQxNihvZmZzZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIG9mZnNldCArPSAyO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChtYXJrZXIgPT0gMHhGRkUxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXcuZ2V0VWludDMyKG9mZnNldCArPSAyLCBmYWxzZSkgIT0gMHg0NTc4Njk2Nikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soYmxvYiwgLTEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaXR0bGUgPSB2aWV3LmdldFVpbnQxNihvZmZzZXQgKz0gNiwgZmFsc2UpID09IDB4NDk0OTtcclxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gdmlldy5nZXRVaW50MzIob2Zmc2V0ICsgNCwgbGl0dGxlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0gdmlldy5nZXRVaW50MTYob2Zmc2V0LCBsaXR0bGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSAyO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhZ3M7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlldy5nZXRVaW50MTYob2Zmc2V0ICsgKGkgKiAxMiksIGxpdHRsZSkgPT0gMHgwMTEyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soYmxvYiwgdmlldy5nZXRVaW50MTYob2Zmc2V0ICsgKGkgKiAxMikgKyA4LCBsaXR0bGUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKG1hcmtlciAmIDB4RkYwMCkgIT0gMHhGRjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCArPSB2aWV3LmdldFVpbnQxNihvZmZzZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soYmxvYiwgLTEpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRCYXNlNjQoYmxvYiwgb3JpZW50YXRpb24pIHtcclxuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuICAgICAgICAvLyBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChpbWFnZVVybCk7XHJcbiAgICAgICAgLy8gY29uc3QgYmxvYiA9IGF3YWl0IHJlcy5ibG9iKCk7XHJcblxyXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xyXG4gICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IHJlYWRlci5yZXN1bHQ7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRPcmllbnRhdGlvbihiYXNlNjQsIG9yaWVudGF0aW9uLCAocmVzZXRCYXNlNjRJbWFnZSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvdyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZVdpdGhvdXRCYXNlNjRQcmVmaXggPSByZXNldEJhc2U2NEltYWdlLnNwbGl0KCdiYXNlNjQsJylbMV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmltYWdlcyA9IFtpbWFnZVdpdGhvdXRCYXNlNjRQcmVmaXhdO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdFcnJvcjogJywgZXJyb3IpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXRPcmllbnRhdGlvbihzcmNCYXNlNjQsIHNyY09yaWVudGF0aW9uLCBjYWxsYmFjaykge1xyXG4gICAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xyXG5cclxuICAgICAgICBpbWcub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGltZy53aWR0aCxcclxuICAgICAgICAgICAgICAgIGhlaWdodCA9IGltZy5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSxcclxuICAgICAgICAgICAgICAgIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG5cclxuICAgICAgICAgICAgLy8gc2V0IHByb3BlciBjYW52YXMgZGltZW5zaW9ucyBiZWZvcmUgdHJhbnNmb3JtICYgZXhwb3J0XHJcbiAgICAgICAgICAgIGlmICg0IDwgc3JjT3JpZW50YXRpb24gJiYgc3JjT3JpZW50YXRpb24gPCA5KSB7XHJcbiAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBoZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gd2lkdGg7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSB3aWR0aDtcclxuICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybSBjb250ZXh0IGJlZm9yZSBkcmF3aW5nIGltYWdlXHJcbiAgICAgICAgICAgIHN3aXRjaCAoc3JjT3JpZW50YXRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMjogY3R4LnRyYW5zZm9ybSgtMSwgMCwgMCwgMSwgd2lkdGgsIDApOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgMzogY3R4LnRyYW5zZm9ybSgtMSwgMCwgMCwgLTEsIHdpZHRoLCBoZWlnaHQpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogY3R4LnRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgaGVpZ2h0KTsgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6IGN0eC50cmFuc2Zvcm0oMCwgMSwgMSwgMCwgMCwgMCk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA2OiBjdHgudHJhbnNmb3JtKDAsIDEsIC0xLCAwLCBoZWlnaHQsIDApOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogY3R4LnRyYW5zZm9ybSgwLCAtMSwgLTEsIDAsIGhlaWdodCwgd2lkdGgpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgODogY3R4LnRyYW5zZm9ybSgwLCAtMSwgMSwgMCwgMCwgd2lkdGgpOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBkcmF3IGltYWdlXHJcbiAgICAgICAgICAgIGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGV4cG9ydCBiYXNlNjRcclxuICAgICAgICAgICAgY2FsbGJhY2soY2FudmFzLnRvRGF0YVVSTCgpKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpbWcuc3JjID0gc3JjQmFzZTY0O1xyXG4gICAgfVxyXG5cclxuICAgIG9uVG9wYmFySXRlbUNsaWNrKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5hY3RpdmVUb3BiYXJJdGVtID0gIXRoaXMubW9kZWwuYWN0aXZlVG9wYmFySXRlbTtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlU2lkZWJhcihldmVudCA9IG51bGwpIHtcclxuICAgICAgICBpZiAoIWV2ZW50IHx8IGV2ZW50LnRhcmdldC5pZCA9PSAnZmlsZVZpZXdlckhvbGRlcicgfHwgZXZlbnQudGFyZ2V0LmlkID09ICdpbWFnZS12aWV3LWxpc3QnIHx8IGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2ltYWdlLWNvbnRhaW5lcicpXHJcbiAgICAgICAgICAgIHx8IGV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2l2LWltYWdlLXZpZXcnKSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLmFjdGl2ZVRvcGJhckl0ZW0gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMub25DbG9zZS5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaW50KCkge1xyXG4gICAgICAgIHRoaXMuX2Rvd25sb2FkTGlua1NlcnZpY2UuY29udmVydFRvUGRmKHRoaXMuZGF0YS5uYW1lLCB0aGlzLmRhdGEuZmlsZUlkLCB0aGlzLmRhdGEuZmlsZVZlcnNpb25JZClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFycy5zdWNjZXNzIHx8ICFycy5kYXRhIHx8ICFycy5kYXRhLmNvbnRlbnRCYXNlNjQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZmlsZUV4cGxvcmVyU2VydmljZS5wcmludChycy5kYXRhLmNvbnRlbnRCYXNlNjQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZCgpIHtcclxuICAgICAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0R2VuZXJhdGVEb3dubG9hZExpbmtNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMuX2Rvd25sb2FkTGlua1NlcnZpY2UuZG93bmxvYWQobW9kZWwpO1xyXG4gICAgfVxyXG5cclxuICAgIGRlbGV0ZUZpbGUoKSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVDb25maXJtKClcclxuICAgICAgICAgICAgLnRoZW4ocnMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFycykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ZvbGRlclNlcnZpY2UuZGVsZXRlTXVsdGlwbGUoW3RoaXMuZGF0YV0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dEZWxldGVEYXRhU3VjY2VzcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGViYXIobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2xvc2UubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWVyU2VydmljZS5zaG93V2FybmluZ0J5UmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmFtZUZpbGUoKSB7XHJcbiAgICAgICAgdGhpcy5yZW5hbWVGaWxlRm9ybS5oZWFkZXIgPSAnxJDhu5VpIHTDqm4gdGjGsCBt4bulYyc7XHJcbiAgICAgICAgdGhpcy5yZW5hbWVGaWxlRm9ybS5mb3JtRGF0YS5kYXRhID0ge1xyXG4gICAgICAgICAgICBpZDogdGhpcy5kYXRhLmlkXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5hbWVGaWxlRm9ybS5zaG93ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBvblNhdmVkUmVuYW1lRmlsZSgpIHtcclxuICAgICAgICB0aGlzLnJlbmFtZUZpbGVGb3JtLnNob3cgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBmaWxlID0gKGF3YWl0IHRoaXMuX2ZpbGVPYmplY3RTZXJ2aWNlLmdldERldGFpbCh0aGlzLmRhdGEuaWQpKS5kYXRhO1xyXG4gICAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YS5uYW1lID0gZmlsZS5uYW1lO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNhbmNlbFJlbmFtZUZpbGUoKSB7XHJcbiAgICAgICAgdGhpcy5yZW5hbWVGaWxlRm9ybS5zaG93ID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdEZpbGUoKSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dTdWNjZXNzKCfEkGFuZyBr4bq/dCBu4buRaSBt4bufIOG7qW5nIGThu6VuZycpO1xyXG5cclxuICAgICAgICB0aGlzLl9maWxlVmVyc2lvblNlcnZpY2UuY3JlYXRlTmV3TWlub3JWZXJzaW9uKHRoaXMuZGF0YS5maWxlSWQsICcnLCBmYWxzZSlcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZVZlcnNpb24gPSA8RmlsZVZlcnNpb25EVE8+cmVzcG9uc2UuZGF0YTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaWxlVXJsID0gdGhpcy5fZmlsZVZlcnNpb25TZXJ2aWNlLmdldEZpbGVWZXJzaW9uRG93bmxvYWRVcmwoZmlsZVZlcnNpb24uaWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBuZXcgVG5DbGllbnRDb21tYW5kKCk7XHJcbiAgICAgICAgICAgICAgICBjb21tYW5kLmNvbW1hbmRUeXBlID0gQ29tbWFuZFR5cGUuRWRpdEZpbGU7XHJcbiAgICAgICAgICAgICAgICBjb21tYW5kLmtleSA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5zaWduYWxyLmNsaWVudEtleTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBlZGl0RmlsZUNvbW1hbmQgPSBuZXcgRWRpdEZpbGVDb21tYW5kKCk7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQuZmlsZVNlcnZpY2VFbmRwb2ludCA9IHRoaXMuX21vZHVsZUNvbmZpZy5lbnZpcm9ubWVudC5hcGlEb21haW4uZmlsZUVuZHBvaW50O1xyXG4gICAgICAgICAgICAgICAgZWRpdEZpbGVDb21tYW5kLnVwbG9hZEZpbGVBcGkgPSB0aGlzLl9maWxlVmVyc2lvblNlcnZpY2UuZ2V0VXBsb2FkRmlsZVZlcnNpb25BcGlVcmwoKTtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC5yZW1vdmVGaWxlQXBpID0gdGhpcy5fZmlsZVZlcnNpb25TZXJ2aWNlLmdldFJlbW92ZUZpbGVWZXJzaW9uQXBpVXJsKCk7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQuZmlsZVVybCA9IGZpbGVVcmw7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQuaXNEcmFmdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQuZ3JvdXBGaWxlTmFtZSA9IHRoaXMuZGF0YS5uYW1lO1xyXG4gICAgICAgICAgICAgICAgZWRpdEZpbGVDb21tYW5kLmZpbGVOYW1lID0gdGhpcy5kYXRhLm5hbWU7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQudmVyc2lvbk5hbWUgPSBmaWxlVmVyc2lvbi52ZXJzaW9uTmFtZTtcclxuICAgICAgICAgICAgICAgIGVkaXRGaWxlQ29tbWFuZC5maWxlVmVyc2lvbklkID0gZmlsZVZlcnNpb24uaWQ7XHJcbiAgICAgICAgICAgICAgICBlZGl0RmlsZUNvbW1hbmQuYWNjZXNzVG9rZW4gPSB0aGlzLl9hdXRoZW5TZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICAgICAgICBjb21tYW5kLmRhdGEgPSBlZGl0RmlsZUNvbW1hbmQ7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fdG5DbGllbnRTZXJ2aWNlLnNlbmRDb21tYW5kKGNvbW1hbmQpO1xyXG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQ29tbW9uRXJyb3JDb2RlLkVSUk9SX1NFUlZJQ0VfTk9UX1JVTiA9PT0gZXJyb3Iuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpZXJTZXJ2aWNlLnNob3dSZXNwb25zZUVycm9yKDAsIG51bGwsICdGaWxlJyk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZJTEVfRVhQTE9SRVIuTUVTU0FHRV9FUlJPUl9IRUFERVInKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0ZJTEVfRVhQTE9SRVIuTUVTU0FHRV9FUlJPUl9ERVRBSUwnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGlmZTogNTAwMFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0cnlDb25uZWN0VG9DbGllbnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGlzRGVza3RvcCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzRGVza3RvcCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRmlsZVR5cGUodHlwZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZmlsZVR5cGUgPT0gdHlwZTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
export class ServiceRequestModel {
|
|
2
|
-
constructor() {
|
|
2
|
+
constructor(init) {
|
|
3
3
|
this.service = '';
|
|
4
4
|
this.entityInstanceId = '';
|
|
5
5
|
this.parent = null;
|
|
6
6
|
this.serviceCode = '';
|
|
7
7
|
this.entity = '';
|
|
8
8
|
this.entityKey = '';
|
|
9
|
+
for (const key in init) {
|
|
10
|
+
this[key] = init[key];
|
|
11
|
+
}
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1yZXF1ZXN0LW1vZGVsLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uL3Byb2plY3RzL3RueC1zaGFyZWQvc3JjL2xpYi8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZmlsZS1leHBsb3Jlci9tb2RlbHMvc2VydmljZS1yZXF1ZXN0LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxtQkFBbUI7SUFTNUIsWUFBWSxJQUF5QjtRQVJyQyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUM5QixXQUFNLEdBQXlCLElBQUksQ0FBQztRQUVwQyxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFHbkIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTZXJ2aWNlUmVxdWVzdE1vZGVsIHtcclxuICAgIHNlcnZpY2U6IHN0cmluZyA9ICcnO1xyXG4gICAgZW50aXR5SW5zdGFuY2VJZDogc3RyaW5nID0gJyc7XHJcbiAgICBwYXJlbnQ/OiBTZXJ2aWNlUmVxdWVzdE1vZGVsID0gbnVsbDtcclxuXHJcbiAgICBzZXJ2aWNlQ29kZTogc3RyaW5nID0gJyc7XHJcbiAgICBlbnRpdHk6IHN0cmluZyA9ICcnO1xyXG4gICAgZW50aXR5S2V5OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihpbml0OiBTZXJ2aWNlUmVxdWVzdE1vZGVsKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdCkge1xyXG4gICAgICAgICAgICB0aGlzW2tleV0gPSBpbml0W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -32,4 +32,9 @@ export var EnumWorkflowHistoryStatus;
|
|
|
32
32
|
EnumWorkflowHistoryStatus[EnumWorkflowHistoryStatus["NOT_IN_MAIN_THREAD"] = 1] = "NOT_IN_MAIN_THREAD";
|
|
33
33
|
EnumWorkflowHistoryStatus[EnumWorkflowHistoryStatus["RECALLED"] = 2] = "RECALLED";
|
|
34
34
|
})(EnumWorkflowHistoryStatus || (EnumWorkflowHistoryStatus = {}));
|
|
35
|
-
|
|
35
|
+
export var EnumPermissionType;
|
|
36
|
+
(function (EnumPermissionType) {
|
|
37
|
+
EnumPermissionType[EnumPermissionType["MAIN"] = 0] = "MAIN";
|
|
38
|
+
EnumPermissionType[EnumPermissionType["SHARE"] = 1] = "SHARE"; // Bản ghi tạo ra để chia sẻ
|
|
39
|
+
})(EnumPermissionType || (EnumPermissionType = {}));
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bXMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9zdGF0ZW1hY2hpbmVzL21vZGVscy9lbnVtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxhQU1YO0FBTkQsV0FBWSxhQUFhO0lBQ3JCLG1EQUFTLENBQUE7SUFDVCxxREFBVSxDQUFBO0lBQ1YsdURBQVcsQ0FBQTtJQUNYLHVEQUFXLENBQUE7SUFDWCxpREFBUSxDQUFBO0FBQ1osQ0FBQyxFQU5XLGFBQWEsS0FBYixhQUFhLFFBTXhCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN0QixtREFBUSxDQUFBO0lBQ1IsK0RBQWMsQ0FBQTtJQUNkLHFEQUFTLENBQUE7SUFDVCxtREFBUSxDQUFBLENBQUMsVUFBVTtBQUN2QixDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3BCLGlCQUFpQjtJQUNqQix1REFBWSxDQUFBO0lBQ1osdUJBQXVCO0lBQ3ZCLHVGQUE0QixDQUFBO0lBQzVCLGdEQUFnRDtJQUNoRCx1QkFBdUI7SUFDdkIsb0JBQW9CO0FBQ3hCLENBQUMsRUFSVyxZQUFZLEtBQVosWUFBWSxRQVF2QjtBQUVELGFBQWE7QUFDYixxQkFBcUI7QUFDckIsY0FBYztBQUNkLE1BQU0sQ0FBTixJQUFZLHlCQUlYO0FBSkQsV0FBWSx5QkFBeUI7SUFDakMsNkZBQWtCLENBQUE7SUFDbEIscUdBQXNCLENBQUE7SUFDdEIsaUZBQVksQ0FBQTtBQUNoQixDQUFDLEVBSlcseUJBQXlCLEtBQXpCLHlCQUF5QixRQUlwQztBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDMUIsMkRBQVEsQ0FBQTtJQUNSLDZEQUFTLENBQUEsQ0FBQyw0QkFBNEI7QUFDMUMsQ0FBQyxFQUhXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFHN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFbnVtU3RhdGVUeXBlIHtcclxuICAgIFNUQVJUID0gMSxcclxuICAgIE5PUk1BTCA9IDIsXHJcbiAgICBDVVJSRU5UID0gMyxcclxuICAgIERJU0FCTEUgPSA0LFxyXG4gICAgU1RPUCA9IDVcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRW51bVRhcmdldFR5cGUge1xyXG4gICAgVVNFUiA9IDEsXHJcbiAgICBERVBBUlRNRU5UID0gMiwgLy8gxJDGoW4gduG7i1xyXG4gICAgR1JPVVAgPSAzLCAvLyBOaMOzbSBuZ8aw4budaSBkw7luZ1xyXG4gICAgUk9MRSA9IDQgLy8gVmFpIHRyw7JcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRW51bVVzZXJSdWxlIHtcclxuICAgIC8vIE5HVU9JX1RBTyA9IDEsXHJcbiAgICBDQVBfVFJFTiA9IDIsXHJcbiAgICAvLyBOR1VPSV9DVU9JX0NVTkcgPSAzLFxyXG4gICAgTkdVT0lfVEhBTV9HSUFfUVVZX1RSSU5IID0gNCxcclxuICAgIC8vIEPhuqVwIHRyw6puIG3DoCB44butIGzDvSBi4bqjbiBnaGkgxJHhu5FpIHTGsOG7o25nIHRyw6xuaCBsw6puXHJcbiAgICAvLyBDQVBfVFJFTl9EQV9HVUkgPSA1LFxyXG4gICAgLy8gTkdVT0lfREFfTkhBTiA9IDZcclxufVxyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gxJDhurd0IHRoZW8gbmjhu4sgcGjDom5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGVudW0gRW51bVdvcmtmbG93SGlzdG9yeVN0YXR1cyB7XHJcbiAgICBJTl9NQUlOX1RIUkVBRCA9IDAsIC8vIFJpw6puZyBjw6FpIG7DoHkgxJHhurdjIGJp4buHdCB0aMOsIMSR4buDIGzDoCAwXHJcbiAgICBOT1RfSU5fTUFJTl9USFJFQUQgPSAxLFxyXG4gICAgUkVDQUxMRUQgPSAyXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEVudW1QZXJtaXNzaW9uVHlwZSB7XHJcbiAgICBNQUlOID0gMCwgLy8gQuG6o24gZ2hpIGNow61uaFxyXG4gICAgU0hBUkUgPSAxIC8vIELhuqNuIGdoaSB04bqhbyByYSDEkeG7gyBjaGlhIHPhurtcclxufVxyXG4iXX0=
|
|
@@ -62,23 +62,38 @@ export class TnCustomScrollbarComponent {
|
|
|
62
62
|
const divs = this.elementRef.getElementsByClassName('ps-content');
|
|
63
63
|
if (divs && divs.length > 0) {
|
|
64
64
|
const contentDiv = divs[0];
|
|
65
|
-
const
|
|
66
|
-
if (
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
const scrollYHolder = this.findNext(contentDiv, 'ps__rail-y');
|
|
66
|
+
if (scrollYHolder) {
|
|
67
|
+
const scrollYs = scrollYHolder.getElementsByClassName('ps__thumb-y');
|
|
68
|
+
if (scrollYs && scrollYs.length > 0) {
|
|
69
|
+
setTimeout(() => {
|
|
70
|
+
this.checkScrollBar(contentDiv, scrollYs[0]);
|
|
71
|
+
}, this._intervalTime);
|
|
72
|
+
}
|
|
70
73
|
}
|
|
71
74
|
}
|
|
72
75
|
}
|
|
76
|
+
findNext(curentNode, className) {
|
|
77
|
+
let nextSibling = curentNode.nextSibling;
|
|
78
|
+
while (nextSibling) {
|
|
79
|
+
if (nextSibling.classList && nextSibling.classList.contains(className)) {
|
|
80
|
+
return nextSibling;
|
|
81
|
+
}
|
|
82
|
+
nextSibling = nextSibling.nextSibling;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
73
86
|
checkScrollBar(contentDiv, scrollY) {
|
|
74
87
|
try {
|
|
75
88
|
const contentHeight = contentDiv.clientHeight;
|
|
76
89
|
const holderHeight = contentDiv.parentElement.clientHeight;
|
|
77
|
-
if (holderHeight
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
90
|
+
if (holderHeight > 0) {
|
|
91
|
+
if (holderHeight >= contentHeight) {
|
|
92
|
+
scrollY.style.display = 'none';
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
scrollY.style.display = '';
|
|
96
|
+
}
|
|
82
97
|
}
|
|
83
98
|
if (this._checkScrollBar) {
|
|
84
99
|
setTimeout(() => {
|
|
@@ -242,4 +257,4 @@ TnCustomScrollbarComponent.propDecorators = {
|
|
|
242
257
|
scrollXReachEnd: [{ type: Output }],
|
|
243
258
|
scrollXReachStart: [{ type: Output }]
|
|
244
259
|
};
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90bi1jdXN0b20tc2Nyb2xsYmFyL3RuLWN1c3RvbS1zY3JvbGxiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU9sRSxNQUFNLE9BQU8sMEJBQTBCO0lBb0RuQyxZQUFZLEdBQWUsRUFDZixzQkFBNkMsRUFDN0MsU0FBdUI7UUFEdkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBbERuQyxXQUFNLEdBQVEsRUFBRSxDQUFDO1FBa0JSLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXpCLFlBQU8sR0FBUSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2pFLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFLWixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUMxQywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFNN0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMs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ekMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDOzs7WUFwUEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLDRvQ0FBbUQ7O2FBRXREOzs7WUFUa0MsVUFBVTtZQUVwQyxxQkFBcUI7WUFEckIsWUFBWTs7O3dCQVVoQixTQUFTLFNBQUMsV0FBVzs4QkFDckIsU0FBUyxTQUFDLGlCQUFpQjtvQkFNM0IsS0FBSztrQ0FjTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSztxQkFHTCxLQUFLOzhCQUlMLEtBQUs7bUNBRUwsS0FBSztzQkFLTCxNQUFNO3VCQUNOLE1BQU07eUJBQ04sTUFBTTt5QkFDTixNQUFNOzBCQUNOLE1BQU07OEJBQ04sTUFBTTtnQ0FDTixNQUFNOzhCQUNOLE1BQU07Z0NBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBEZXZpY2VEZXRlY3RvclNlcnZpY2UgfSBmcm9tICduZ3gtZGV2aWNlLWRldGVjdG9yJztcclxuaW1wb3J0IHsgUGVyZmVjdFNjcm9sbGJhckNvbXBvbmVudCB9IGZyb20gJ25neC1wZXJmZWN0LXNjcm9sbGJhcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndG4tY3VzdG9tLXNjcm9sbGJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdG4tY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90bi1jdXN0b20tc2Nyb2xsYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRuQ3VzdG9tU2Nyb2xsYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgnc2Nyb2xsYmFyJykgc2Nyb2xsYmFyOiBQZXJmZWN0U2Nyb2xsYmFyQ29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsU2Nyb2xsYmFyJykgZGVmYXVsU2Nyb2xsYmFyOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIF9zdHlsZTogYW55ID0ge307XHJcbiAgICBnZXQgc3R5bGUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGU7XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSBzZXQgc3R5bGUodmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX3N0eWxlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnBhcmVudENsYXNzKSB7XHJcbiAgICAgICAgICAgIGxldCBodG1sID0gYDxzdHlsZT4gLiR7dmFsdWUucGFyZW50Q2xhc3N9IHBlcmZlY3Qtc2Nyb2xsYmFyPi5wcyB7IGA7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZS5taW5IZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIGh0bWwgPSBgJHtodG1sfW1pbi1oZWlnaHQ6ICR7dmFsdWUubWluSGVpZ2h0fTsgYDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodmFsdWUubWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBodG1sID0gYCR7aHRtbH1tYXgtaGVpZ2h0OiAke3ZhbHVlLm1heEhlaWdodH07IGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaHRtbCA9IGAke2h0bWx9fSA8L3N0eWxlPmA7XHJcbiAgICAgICAgICAgIHRoaXMuX3N0eWxlVGV4dCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIEBJbnB1dCgpIHVzZURlZmF1bHRTY3JvbGxCYXIgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGF1dG9Nb2RlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGNsYXNzOiBhbnk7XHJcbiAgICBfY29uZmlnOiBhbnkgPSB7IHN1cHByZXNzU2Nyb2xsWDogdHJ1ZSwgc3VwcHJlc3NTY3JvbGxZOiBmYWxzZSB9O1xyXG4gICAgX3N0eWxlVGV4dDogYW55ID0ge307XHJcbiAgICBASW5wdXQoKSBzZXQgY29uZmlnKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9jb25maWcgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmFkanVzdENvbmZpZygpO1xyXG4gICAgfVxyXG4gICAgQElucHV0KCkgd2hpdGVCYWNrR3JvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBfc2hvd1Njcm9sbEhvcml6b250YWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNldCBzaG93U2Nyb2xsSG9yaXpvbnRhbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3Nob3dTY3JvbGxIb3Jpem9udGFsID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5hZGp1c3RDb25maWcoKTtcclxuICAgIH07XHJcblxyXG4gICAgQE91dHB1dCgpIHNjcm9sbFkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBzY3JvbGxVcCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHNjcm9sbERvd24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBzY3JvbGxMZWZ0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2Nyb2xsUmlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBzY3JvbGxZUmVhY2hFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBzY3JvbGxZUmVhY2hTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHNjcm9sbFhSZWFjaEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHNjcm9sbFhSZWFjaFN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IGFueTtcclxuICAgIHByaXZhdGUgX2ludGVydmFsVGltZSA9IDEwMDtcclxuICAgIHByaXZhdGUgX2NoZWNrU2Nyb2xsQmFyID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlbG06IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplclxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmID0gZWxtLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0b01vZGUgJiYgdGhpcy5fZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy51c2VEZWZhdWx0U2Nyb2xsQmFyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRpdnMgPSB0aGlzLmVsZW1lbnRSZWYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncHMtY29udGVudCcpO1xyXG4gICAgICAgIGlmIChkaXZzICYmIGRpdnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50RGl2ID0gZGl2c1swXTtcclxuICAgICAgICAgICAgY29uc3Qgc2Nyb2xsWXMgPSBjb250ZW50RGl2LnBhcmVudEVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncHNfX3RodW1iLXknKTtcclxuICAgICAgICAgICAgaWYgKHNjcm9sbFlzICYmIHNjcm9sbFlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsQmFyKGNvbnRlbnREaXYsIHNjcm9sbFlzWzBdKTtcclxuICAgICAgICAgICAgICAgIH0sIHRoaXMuX2ludGVydmFsVGltZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tTY3JvbGxCYXIoY29udGVudERpdjogYW55LCBzY3JvbGxZOiBhbnkpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gY29udGVudERpdi5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGhvbGRlckhlaWdodCA9IGNvbnRlbnREaXYucGFyZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgIGlmIChob2xkZXJIZWlnaHQgPj0gY29udGVudEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsWS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsWS5zdHlsZS5kaXNwbGF5ID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jaGVja1Njcm9sbEJhcikge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tTY3JvbGxCYXIoY29udGVudERpdiwgc2Nyb2xsWSk7XHJcbiAgICAgICAgICAgICAgICB9LCB0aGlzLl9pbnRlcnZhbFRpbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIHt9XHJcbiAgICB9XHJcblxyXG4gICAgYWRqdXN0Q29uZmlnKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fY29uZmlnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbmZpZyA9IHsgc3VwcHJlc3NTY3JvbGxYOiB0cnVlLCBzdXBwcmVzc1Njcm9sbFk6IGZhbHNlIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9zaG93U2Nyb2xsSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2NvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnID0geyBzdXBwcmVzc1Njcm9sbFg6IGZhbHNlIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb25maWcuc3VwcHJlc3NTY3JvbGxYID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNjcm9sbFRvVG9wKG9mZnNldCA9IDAsIHRpbWUgPSAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsU2Nyb2xsYmFyKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2xkU2Nyb2xsVG9wID0gdGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgIGlmICh0aW1lID4gMjApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudCwgb2Zmc2V0LCB0aW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsU2Nyb2xsYmFyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gb2Zmc2V0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMub25EZWZhdWx0U2Nyb2xsWShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsYmFyLmRpcmVjdGl2ZVJlZi5zY3JvbGxUb1RvcChvZmZzZXQsIHRpbWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2Nyb2xsVG9Cb3R0b20ob2Zmc2V0ID0gMCwgdGltZSA9IDApIHtcclxuICAgICAgICBpZiAodGhpcy5kZWZhdWxTY3JvbGxiYXIpIHtcclxuICAgICAgICAgICAgdGhpcy5vbGRTY3JvbGxUb3AgPSB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgaWYgKHRpbWUgPiAyMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyh0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LCB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodCAtIHRoaXMuZGVmYXVsU2Nyb2xsYmFyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gb2Zmc2V0LCB0aW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsU2Nyb2xsYmFyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLSB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIG9mZnNldDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm9uRGVmYXVsdFNjcm9sbFkobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGJhci5kaXJlY3RpdmVSZWYuc2Nyb2xsVG9Cb3R0b20ob2Zmc2V0LCB0aW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvblNjcm9sbFkoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFkuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxVcChldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVXAuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxEb3duKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxEb3duLmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsTGVmdChldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsTGVmdC5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNjcm9sbFJpZ2h0KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxSaWdodC5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNjcm9sbFlSZWFjaFN0YXJ0KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxZUmVhY2hTdGFydC5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNjcm9sbFlSZWFjaEVuZChldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsWVJlYWNoRW5kLmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsWFJlYWNoU3RhcnQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFhSZWFjaFN0YXJ0LmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsWFJlYWNoRW5kKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxYUmVhY2hFbmQuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb2xkU2Nyb2xsVG9wID0gMDtcclxuICAgIG9uRGVmYXVsdFNjcm9sbFkoZXZlbnQpIHtcclxuICAgICAgICBjb25zdCBuZXdTY3JvbGxUb3AgPSB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcclxuICAgICAgICBpZiAodGhpcy5vbGRTY3JvbGxUb3AgIT0gbmV3U2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsWS5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5ld1Njcm9sbFRvcCA+IHRoaXMub2xkU2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRG93bi5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobmV3U2Nyb2xsVG9wIDwgdGhpcy5vbGRTY3JvbGxUb3ApIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxVcC5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG5ld1Njcm9sbFRvcCA+PSAodGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLSB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxZUmVhY2hFbmQuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZXdTY3JvbGxUb3AgPD0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFlSZWFjaFN0YXJ0LmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5vbGRTY3JvbGxUb3AgPSBuZXdTY3JvbGxUb3A7XHJcbiAgICB9XHJcblxyXG4gICAgc2Nyb2xsVG8oZWxlbWVudCwgdG8sIGR1cmF0aW9uKSB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBlbGVtZW50LnNjcm9sbFRvcCxcclxuICAgICAgICAgICAgY2hhbmdlID0gdG8gLSBzdGFydCxcclxuICAgICAgICAgICAgaW5jcmVtZW50ID0gMjA7XHJcbiAgICAgICAgbGV0IGN1cnJlbnRUaW1lID0gMDtcclxuXHJcbiAgICAgICAgY29uc3QgYW5pbWF0ZVNjcm9sbCA9ICgpID0+IHtcclxuICAgICAgICAgICAgY3VycmVudFRpbWUgKz0gaW5jcmVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmVhc2VJbk91dFF1YWQoY3VycmVudFRpbWUsIHN0YXJ0LCBjaGFuZ2UsIGR1cmF0aW9uKTtcclxuICAgICAgICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSB2YWw7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50VGltZSA8IGR1cmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGFuaW1hdGVTY3JvbGwsIGluY3JlbWVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGFuaW1hdGVTY3JvbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBzY3JvbGxUb1JpZ2h0KGxlbmd0aEluUHg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsYmFyLmRpcmVjdGl2ZVJlZi5zY3JvbGxUb1JpZ2h0KGxlbmd0aEluUHgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNjcm9sbEZyb21MZWZ0KGxlbmd0aEluUHg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsYmFyLmRpcmVjdGl2ZVJlZi5zY3JvbGxUb0xlZnQobGVuZ3RoSW5QeCk7XHJcbiAgICB9XHJcblxyXG4gICAgZWFzZUluT3V0UXVhZCh0LCBiLCBjLCBkKSB7XHJcbiAgICAgICAgdCAvPSBkIC8gMjtcclxuICAgICAgICBpZiAodCA8IDEpIHJldHVybiBjIC8gMiAqIHQgKiB0ICsgYjtcclxuICAgICAgICB0LS07XHJcbiAgICAgICAgcmV0dXJuIC1jIC8gMiAqICh0ICogKHQgLSAyKSAtIDEpICsgYjtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxiYXIuZGlyZWN0aXZlUmVmLnVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NoZWNrU2Nyb2xsQmFyID0gZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vcHJvamVjdHMvdG54LXNoYXJlZC9zcmMvbGliLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90bi1jdXN0b20tc2Nyb2xsYmFyL3RuLWN1c3RvbS1zY3JvbGxiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU9sRSxNQUFNLE9BQU8sMEJBQTBCO0lBb0RuQyxZQUFZLEdBQWUsRUFDZixzQkFBNkMsRUFDN0MsU0FBdUI7UUFEdkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBbERuQyxXQUFNLEdBQVEsRUFBRSxDQUFDO1FBa0JSLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXpCLFlBQU8sR0FBUSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2pFLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFLWixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUMxQywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFNN0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMs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QUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3BCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxDQUFDLEVBQUUsQ0FBQztRQUNKLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQzs7O1lBcFFKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQiw0b0NBQW1EOzthQUV0RDs7O1lBVGtDLFVBQVU7WUFFcEMscUJBQXFCO1lBRHJCLFlBQVk7Ozt3QkFVaEIsU0FBUyxTQUFDLFdBQVc7OEJBQ3JCLFNBQVMsU0FBQyxpQkFBaUI7b0JBTTNCLEtBQUs7a0NBY0wsS0FBSzt1QkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBR0wsS0FBSzs4QkFJTCxLQUFLO21DQUVMLEtBQUs7c0JBS0wsTUFBTTt1QkFDTixNQUFNO3lCQUNOLE1BQU07eUJBQ04sTUFBTTswQkFDTixNQUFNOzhCQUNOLE1BQU07Z0NBQ04sTUFBTTs4QkFDTixNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IFBlcmZlY3RTY3JvbGxiYXJDb21wb25lbnQgfSBmcm9tICduZ3gtcGVyZmVjdC1zY3JvbGxiYXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RuLWN1c3RvbS1zY3JvbGxiYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RuLWN1c3RvbS1zY3JvbGxiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdG4tY3VzdG9tLXNjcm9sbGJhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbkN1c3RvbVNjcm9sbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3Njcm9sbGJhcicpIHNjcm9sbGJhcjogUGVyZmVjdFNjcm9sbGJhckNvbXBvbmVudDtcclxuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bFNjcm9sbGJhcicpIGRlZmF1bFNjcm9sbGJhcjogRWxlbWVudFJlZjtcclxuXHJcbiAgICBfc3R5bGU6IGFueSA9IHt9O1xyXG4gICAgZ2V0IHN0eWxlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlO1xyXG4gICAgfVxyXG4gICAgQElucHV0KCkgc2V0IHN0eWxlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9zdHlsZSA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5wYXJlbnRDbGFzcykge1xyXG4gICAgICAgICAgICBsZXQgaHRtbCA9IGA8c3R5bGU+IC4ke3ZhbHVlLnBhcmVudENsYXNzfSBwZXJmZWN0LXNjcm9sbGJhcj4ucHMgeyBgO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUubWluSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBodG1sID0gYCR7aHRtbH1taW4taGVpZ2h0OiAke3ZhbHVlLm1pbkhlaWdodH07IGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKHZhbHVlLm1heEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgaHRtbCA9IGAke2h0bWx9bWF4LWhlaWdodDogJHt2YWx1ZS5tYXhIZWlnaHR9OyBgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGh0bWwgPSBgJHtodG1sfX0gPC9zdHlsZT5gO1xyXG4gICAgICAgICAgICB0aGlzLl9zdHlsZVRleHQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBASW5wdXQoKSB1c2VEZWZhdWx0U2Nyb2xsQmFyID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBhdXRvTW9kZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBjbGFzczogYW55O1xyXG4gICAgX2NvbmZpZzogYW55ID0geyBzdXBwcmVzc1Njcm9sbFg6IHRydWUsIHN1cHByZXNzU2Nyb2xsWTogZmFsc2UgfTtcclxuICAgIF9zdHlsZVRleHQ6IGFueSA9IHt9O1xyXG4gICAgQElucHV0KCkgc2V0IGNvbmZpZyh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fY29uZmlnID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5hZGp1c3RDb25maWcoKTtcclxuICAgIH1cclxuICAgIEBJbnB1dCgpIHdoaXRlQmFja0dyb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgX3Nob3dTY3JvbGxIb3Jpem9udGFsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXQgc2hvd1Njcm9sbEhvcml6b250YWwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zaG93U2Nyb2xsSG9yaXpvbnRhbCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuYWRqdXN0Q29uZmlnKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIEBPdXRwdXQoKSBzY3JvbGxZID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2Nyb2xsVXAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBzY3JvbGxEb3duID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2Nyb2xsTGVmdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHNjcm9sbFJpZ2h0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2Nyb2xsWVJlYWNoRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgc2Nyb2xsWVJlYWNoU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBzY3JvbGxYUmVhY2hFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgIEBPdXRwdXQoKSBzY3JvbGxYUmVhY2hTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBhbnk7XHJcbiAgICBwcml2YXRlIF9pbnRlcnZhbFRpbWUgPSAxMDA7XHJcbiAgICBwcml2YXRlIF9jaGVja1Njcm9sbEJhciA9IHRydWU7XHJcblxyXG4gICAgY29uc3RydWN0b3IoZWxtOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgX2RldmljZURldGVjdG9yU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsbS5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9Nb2RlICYmIHRoaXMuX2RldmljZURldGVjdG9yU2VydmljZS5pc01vYmlsZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXNlRGVmYXVsdFNjcm9sbEJhciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBkaXZzID0gdGhpcy5lbGVtZW50UmVmLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3BzLWNvbnRlbnQnKTtcclxuICAgICAgICBpZiAoZGl2cyAmJiBkaXZzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgY29udGVudERpdiA9IGRpdnNbMF07XHJcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFlIb2xkZXIgPSB0aGlzLmZpbmROZXh0KGNvbnRlbnREaXYsICdwc19fcmFpbC15Jyk7XHJcbiAgICAgICAgICAgIGlmIChzY3JvbGxZSG9sZGVyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxZcyA9IHNjcm9sbFlIb2xkZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncHNfX3RodW1iLXknKTtcclxuICAgICAgICAgICAgICAgIGlmIChzY3JvbGxZcyAmJiBzY3JvbGxZcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsQmFyKGNvbnRlbnREaXYsIHNjcm9sbFlzWzBdKTtcclxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLl9pbnRlcnZhbFRpbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpbmROZXh0KGN1cmVudE5vZGUsIGNsYXNzTmFtZSkge1xyXG4gICAgICAgIGxldCBuZXh0U2libGluZyA9IGN1cmVudE5vZGUubmV4dFNpYmxpbmc7XHJcbiAgICAgICAgd2hpbGUgKG5leHRTaWJsaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChuZXh0U2libGluZy5jbGFzc0xpc3QgJiYgbmV4dFNpYmxpbmcuY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0U2libGluZztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBuZXh0U2libGluZyA9IG5leHRTaWJsaW5nLm5leHRTaWJsaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1Njcm9sbEJhcihjb250ZW50RGl2OiBhbnksIHNjcm9sbFk6IGFueSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSBjb250ZW50RGl2LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgY29uc3QgaG9sZGVySGVpZ2h0ID0gY29udGVudERpdi5wYXJlbnRFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgaWYgKGhvbGRlckhlaWdodCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGlmIChob2xkZXJIZWlnaHQgPj0gY29udGVudEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFkuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbFkuc3R5bGUuZGlzcGxheSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fY2hlY2tTY3JvbGxCYXIpIHtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PntcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsQmFyKGNvbnRlbnREaXYsIHNjcm9sbFkpO1xyXG4gICAgICAgICAgICAgICAgfSwgdGhpcy5faW50ZXJ2YWxUaW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCB7fVxyXG4gICAgfVxyXG5cclxuICAgIGFkanVzdENvbmZpZygpIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2NvbmZpZykge1xyXG4gICAgICAgICAgICB0aGlzLl9jb25maWcgPSB7IHN1cHByZXNzU2Nyb2xsWDogdHJ1ZSwgc3VwcHJlc3NTY3JvbGxZOiBmYWxzZSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fc2hvd1Njcm9sbEhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9jb25maWcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbmZpZyA9IHsgc3VwcHJlc3NTY3JvbGxYOiBmYWxzZSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnLnN1cHByZXNzU2Nyb2xsWCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzY3JvbGxUb1RvcChvZmZzZXQgPSAwLCB0aW1lID0gMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bFNjcm9sbGJhcikge1xyXG4gICAgICAgICAgICB0aGlzLm9sZFNjcm9sbFRvcCA9IHRoaXMuZGVmYXVsU2Nyb2xsYmFyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICBpZiAodGltZSA+IDIwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMuZGVmYXVsU2Nyb2xsYmFyLm5hdGl2ZUVsZW1lbnQsIG9mZnNldCwgdGltZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IG9mZnNldDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLm9uRGVmYXVsdFNjcm9sbFkobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGJhci5kaXJlY3RpdmVSZWYuc2Nyb2xsVG9Ub3Aob2Zmc2V0LCB0aW1lKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNjcm9sbFRvQm90dG9tKG9mZnNldCA9IDAsIHRpbWUgPSAwKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsU2Nyb2xsYmFyKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2xkU2Nyb2xsVG9wID0gdGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgIGlmICh0aW1lID4gMjApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudCwgdGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgLSB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIG9mZnNldCwgdGltZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bFNjcm9sbGJhci5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuZGVmYXVsU2Nyb2xsYmFyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gdGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5vbkRlZmF1bHRTY3JvbGxZKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxiYXIuZGlyZWN0aXZlUmVmLnNjcm9sbFRvQm90dG9tKG9mZnNldCwgdGltZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TY3JvbGxZKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxZLmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsVXAoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFVwLmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsRG93bihldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsRG93bi5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNjcm9sbExlZnQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbExlZnQuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxSaWdodChldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsUmlnaHQuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxZUmVhY2hTdGFydChldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsWVJlYWNoU3RhcnQuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxZUmVhY2hFbmQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFlSZWFjaEVuZC5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNjcm9sbFhSZWFjaFN0YXJ0KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxYUmVhY2hTdGFydC5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblNjcm9sbFhSZWFjaEVuZChldmVudCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsWFJlYWNoRW5kLmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9sZFNjcm9sbFRvcCA9IDA7XHJcbiAgICBvbkRlZmF1bHRTY3JvbGxZKGV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgbmV3U2Nyb2xsVG9wID0gdGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICAgICAgaWYgKHRoaXMub2xkU2Nyb2xsVG9wICE9IG5ld1Njcm9sbFRvcCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFkuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZXdTY3JvbGxUb3AgPiB0aGlzLm9sZFNjcm9sbFRvcCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbERvd24uZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKG5ld1Njcm9sbFRvcCA8IHRoaXMub2xkU2Nyb2xsVG9wKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVXAuZW1pdCh7ICRldmVudDogZXZlbnQgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChuZXdTY3JvbGxUb3AgPj0gKHRoaXMuZGVmYXVsU2Nyb2xsYmFyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gdGhpcy5kZWZhdWxTY3JvbGxiYXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsWVJlYWNoRW5kLmVtaXQoeyAkZXZlbnQ6IGV2ZW50IH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobmV3U2Nyb2xsVG9wIDw9IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxZUmVhY2hTdGFydC5lbWl0KHsgJGV2ZW50OiBldmVudCB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMub2xkU2Nyb2xsVG9wID0gbmV3U2Nyb2xsVG9wO1xyXG4gICAgfVxyXG5cclxuICAgIHNjcm9sbFRvKGVsZW1lbnQsIHRvLCBkdXJhdGlvbikge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZWxlbWVudC5zY3JvbGxUb3AsXHJcbiAgICAgICAgICAgIGNoYW5nZSA9IHRvIC0gc3RhcnQsXHJcbiAgICAgICAgICAgIGluY3JlbWVudCA9IDIwO1xyXG4gICAgICAgIGxldCBjdXJyZW50VGltZSA9IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGFuaW1hdGVTY3JvbGwgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGN1cnJlbnRUaW1lICs9IGluY3JlbWVudDtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5lYXNlSW5PdXRRdWFkKGN1cnJlbnRUaW1lLCBzdGFydCwgY2hhbmdlLCBkdXJhdGlvbik7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsVG9wID0gdmFsO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudFRpbWUgPCBkdXJhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChhbmltYXRlU2Nyb2xsLCBpbmNyZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICBhbmltYXRlU2Nyb2xsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2Nyb2xsVG9SaWdodChsZW5ndGhJblB4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbGJhci5kaXJlY3RpdmVSZWYuc2Nyb2xsVG9SaWdodChsZW5ndGhJblB4KTtcclxuICAgIH1cclxuXHJcbiAgICBzY3JvbGxGcm9tTGVmdChsZW5ndGhJblB4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbGJhci5kaXJlY3RpdmVSZWYuc2Nyb2xsVG9MZWZ0KGxlbmd0aEluUHgpO1xyXG4gICAgfVxyXG5cclxuICAgIGVhc2VJbk91dFF1YWQodCwgYiwgYywgZCkge1xyXG4gICAgICAgIHQgLz0gZCAvIDI7XHJcbiAgICAgICAgaWYgKHQgPCAxKSByZXR1cm4gYyAvIDIgKiB0ICogdCArIGI7XHJcbiAgICAgICAgdC0tO1xyXG4gICAgICAgIHJldHVybiAtYyAvIDIgKiAodCAqICh0IC0gMikgLSAxKSArIGI7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlKCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsYmFyLmRpcmVjdGl2ZVJlZi51cGRhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jaGVja1Njcm9sbEJhciA9IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -16,6 +16,7 @@ export class TnDialogComponent {
|
|
|
16
16
|
this.closeOnEscape = true;
|
|
17
17
|
this.showFooter = true;
|
|
18
18
|
this.hiddenSave = true;
|
|
19
|
+
this.maximizable = true;
|
|
19
20
|
this.scrollConfig = { suppressScrollX: true, suppressScrollY: false };
|
|
20
21
|
this.scrollStyle = {};
|
|
21
22
|
this.onSave = new EventEmitter();
|
|
@@ -90,7 +91,7 @@ export class TnDialogComponent {
|
|
|
90
91
|
TnDialogComponent.decorators = [
|
|
91
92
|
{ type: Component, args: [{
|
|
92
93
|
selector: 'tn-dialog',
|
|
93
|
-
template: "<p-dialog #dialog [closeOnEscape]=\"closeOnEscape\" [appendTo]=\"'body'\" [focusOnShow]=\"false\" [focusTrap]=\"false\"\r\n [header]=\"header | translate\" [(visible)]=\"visible\" [modal]=\"modal\" [responsive]=\"true\" [maximizable]=\"
|
|
94
|
+
template: "<p-dialog #dialog [closeOnEscape]=\"closeOnEscape\" [appendTo]=\"'body'\" [focusOnShow]=\"false\" [focusTrap]=\"false\"\r\n [header]=\"header | translate\" [(visible)]=\"visible\" [modal]=\"modal\" [responsive]=\"true\" [maximizable]=\"maximizable\"\r\n [autoZIndex]=\"true\" [styleClass]=\"styleClass\" [maskStyleClass]=\"maskClass\"\r\n [style]=\"{'width': popupSize.width + 'px', 'min-width': popupSize.width + 'px', 'height': popupSize.height + 'px', 'min-height': popupSize.height + 'px'}\"\r\n (onShow)=\"handleShowDialog($event)\" (onHide)=\"handleHideDialog($event)\" (onShow)=\"handleShowDialog($event)\">\r\n <tn-custom-scrollbar #scrollbar [useDefaultScrollBar]=\"useDefaultScrollBar\" [class]=\"scrollBarStyleClass\"\r\n [config]=\"scrollConfig\" [style]=\"scrollStyle\" class=\"tn-dialog-scrollbar\">\r\n <ng-content></ng-content>\r\n </tn-custom-scrollbar>\r\n <p-footer *ngIf=\"showFooter && formBase && formBase.buttonTemplate\">\r\n <ng-container *ngTemplateOutlet=\"formBase.buttonTemplate\">\r\n </ng-container>\r\n </p-footer>\r\n <p-footer *ngIf=\"showFooter && footer\">\r\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\r\n </p-footer>\r\n</p-dialog>",
|
|
94
95
|
styles: [""]
|
|
95
96
|
},] }
|
|
96
97
|
];
|
|
@@ -118,10 +119,11 @@ TnDialogComponent.propDecorators = {
|
|
|
118
119
|
positionTop: [{ type: Input }],
|
|
119
120
|
minY: [{ type: Input }],
|
|
120
121
|
hiddenSave: [{ type: Input }],
|
|
122
|
+
maximizable: [{ type: Input }],
|
|
121
123
|
onSave: [{ type: Output }],
|
|
122
124
|
onCancel: [{ type: Output }],
|
|
123
125
|
onShow: [{ type: Output }],
|
|
124
126
|
onHide: [{ type: Output }],
|
|
125
127
|
onResize: [{ type: HostListener, args: ['window:resize',] }]
|
|
126
128
|
};
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RuLWRpYWxvZy90bi1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4TCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBTzVELE1BQU0sT0FBTyxpQkFBaUI7SUFrQzNCLFlBQ1csU0FBbUIsRUFDbkIsc0JBQTZDO1FBRDdDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQXhCL0MsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFHYixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBR2xCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFD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TUFBTSxFQUFFLElBQUksRUFBRTt1QkFDdkMsZUFBZSxTQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7d0JBRWxELEtBQUs7eUJBQ0wsS0FBSztrQ0FDTCxLQUFLO2tDQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzRCQUNMLEtBQUs7eUJBQ0wsS0FBSzswQkFDTCxLQUFLO21CQUNMLEtBQUs7eUJBQ0wsS0FBSztxQkFHTCxNQUFNO3VCQUNOLE1BQU07cUJBQ04sTUFBTTtxQkFDTixNQUFNO3VCQXVETixZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgRGF0YUZvcm1CYXNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtZm9ybS1iYXNlJztcclxuaW1wb3J0IHsgUG9wdXBTaXplIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9mb3JtLXNjaGVtYSc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IFRuQ3VzdG9tU2Nyb2xsYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vdG4tY3VzdG9tLXNjcm9sbGJhci90bi1jdXN0b20tc2Nyb2xsYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gXCJuZ3gtZGV2aWNlLWRldGVjdG9yXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgc2VsZWN0b3I6ICd0bi1kaWFsb2cnLFxyXG4gICB0ZW1wbGF0ZVVybDogJy4vdG4tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgc3R5bGVVcmxzOiBbJy4vdG4tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRuRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgIEBWaWV3Q2hpbGQoJ2RpYWxvZycsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZzogRGlhbG9nO1xyXG4gICBAVmlld0NoaWxkKCdzY3JvbGxiYXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY3JvbGxiYXI6IFRuQ3VzdG9tU2Nyb2xsYmFyQ29tcG9uZW50O1xyXG4gICBAQ29udGVudENoaWxkKCdmb3JtQmFzZScsIHsgc3RhdGljOiB0cnVlIH0pIGZvcm1CYXNlOiBEYXRhRm9ybUJhc2U7XHJcbiAgIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicsIHsgc3RhdGljOiB0cnVlIH0pIGZvb3RlcjogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZVJlZiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBjaGlsZHJlbjogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xyXG5cclxuICAgQElucHV0KCkgbWFza0NsYXNzOiBzdHJpbmc7XHJcbiAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZztcclxuICAgQElucHV0KCkgc2Nyb2xsQmFyU3R5bGVDbGFzczogc3RyaW5nO1xyXG4gICBASW5wdXQoKSB1c2VEZWZhdWx0U2Nyb2xsQmFyOiBib29sZWFuO1xyXG4gICBASW5wdXQoKSB2aXNpYmxlID0gdHJ1ZTtcclxuICAgQElucHV0KCkgZGlzYWJsZWRCdXR0b24gPSBmYWxzZTtcclxuICAgQElucHV0KCkgbW9kYWwgPSB0cnVlO1xyXG4gICBASW5wdXQoKSBoZWFkZXI6IHN0cmluZztcclxuICAgQElucHV0KCkgcG9wdXBTaXplOiBQb3B1cFNpemU7XHJcbiAgIEBJbnB1dCgpIGNsb3NlT25Fc2NhcGUgPSB0cnVlO1xyXG4gICBASW5wdXQoKSBzaG93Rm9vdGVyID0gdHJ1ZTtcclxuICAgQElucHV0KCkgcG9zaXRpb25Ub3A6IG51bWJlcjtcclxuICAgQElucHV0KCkgbWluWTogbnVtYmVyO1xyXG4gICBASW5wdXQoKSBoaWRkZW5TYXZlID0gdHJ1ZTtcclxuICAgc2Nyb2xsQ29uZmlnID0geyBzdXBwcmVzc1Njcm9sbFg6IHRydWUsIHN1cHByZXNzU2Nyb2xsWTogZmFsc2UgfTtcclxuICAgc2Nyb2xsU3R5bGUgPSB7fVxyXG4gICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgIEBPdXRwdXQoKSBvblNob3c6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgIEBPdXRwdXQoKSBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICBkaWFsb2dDb250ZW50RG9tOiBhbnk7XHJcbiAgIGlzT25Nb2JpbGU7XHJcblxyXG4gICBwcm90ZWN0ZWQgX2RvbVNlcnZpY2U6IERvbVNlcnZpY2U7XHJcbiAgIHByb3RlY3RlZCBfY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZTtcclxuICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgcHJpdmF0ZSBfZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2VcclxuICAgKSB7XHJcbiAgICAgIHRoaXMuX2RvbVNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoRG9tU2VydmljZSk7XHJcbiAgICAgIHRoaXMuX2NvbW1vblNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoQ29tbW9uU2VydmljZSk7XHJcbiAgIH1cclxuXHJcbiAgIG5nT25Jbml0KCkge1xyXG4gICAgICB0aGlzLmlzT25Nb2JpbGUgPSB0aGlzLl9kZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNNb2JpbGUoKTtcclxuICAgICAgaWYgKCF0aGlzLnBvcHVwU2l6ZSlcclxuICAgICAgICAgdGhpcy5wb3B1cFNpemUgPSBuZXcgUG9wdXBTaXplKCk7XHJcbiAgICAgIGlmICh0aGlzLnBvcHVwU2l6ZS5tYXhpbWl6ZSB8fCB0aGlzLmlzT25Nb2JpbGUpIHtcclxuICAgICAgICAgdGhpcy5wb3B1cFNpemUud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgICAgdGhpcy5wb3B1cFNpemUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgICBpZiAoIXRoaXMucG9wdXBTaXplLndpZHRoKVxyXG4gICAgICAgICAgICB0aGlzLnBvcHVwU2l6ZS53aWR0aCA9IDgwMDtcclxuICAgICAgICAgaWYgKCF0aGlzLnBvcHVwU2l6ZS5oZWlnaHQpXHJcbiAgICAgICAgICAgIHRoaXMucG9wdXBTaXplLmhlaWdodCA9IDUwMDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zZXR1cFNjcm9sbFN0eWxlKCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgdGhpcy5nZXRDb21wb25lbnRCeVR5cGUoJ2J1dHRvblRlbXBsYXRlJyk7XHJcbiAgICAgIH0sIDEwMDApO1xyXG4gICB9XHJcblxyXG4gICBoYW5kbGVTaG93RGlhbG9nKGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nQ29udGVudERvbSA9IHRoaXMuZGlhbG9nLndyYXBwZXI7XHJcbiAgICAgIGlmICh0aGlzLl9kZXZpY2VEZXRlY3RvclNlcnZpY2UuaXNNb2JpbGUoKSkge1xyXG4gICAgICAgICB0aGlzLm1heGltaXplKCk7XHJcbiAgICAgICAgIHRoaXMuZGlhbG9nLm1heGltaXphYmxlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5wb3B1cFNpemUubWF4aW1pemUpIHtcclxuICAgICAgICAgdGhpcy5tYXhpbWl6ZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICAgdGhpcy5vblJlc2l6ZSgpO1xyXG4gICAgICB0aGlzLm9uU2hvdy5lbWl0KGV2ZW50KTtcclxuICAgfVxyXG5cclxuICAgaGFuZGxlSGlkZURpYWxvZyhldmVudCkge1xyXG4gICAgICB0aGlzLm9uSGlkZS5lbWl0KGV2ZW50KTtcclxuICAgfVxyXG5cclxuICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgIG9uUmVzaXplKCkge1xyXG4gICAgICBpZiAodGhpcy5wb3B1cFNpemUud2lkdGggJiYgdGhpcy5fZG9tU2VydmljZS5tYXhpbWl6ZURpYWxvZyh0aGlzLmRpYWxvZ0NvbnRlbnREb20sIHRoaXMucG9wdXBTaXplKSkge1xyXG4gICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPCB0aGlzLnBvcHVwU2l6ZS53aWR0aClcclxuICAgICAgICAgICAgdGhpcy5wb3B1cFNpemUud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgICAgICAgaWYgKHdpbmRvdy5pbm5lckhlaWdodCA8IHRoaXMucG9wdXBTaXplLmhlaWdodClcclxuICAgICAgICAgICAgdGhpcy5wb3B1cFNpemUuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xyXG4gICAgICAgICB0aGlzLnNldHVwU2Nyb2xsU3R5bGUoKTtcclxuICAgICAgICAgdGhpcy5kaWFsb2cubWF4aW1pemFibGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICB9XHJcblxyXG4gICBzZXR1cFNjcm9sbFN0eWxlKCkge1xyXG4gICAgICBpZighdGhpcy5pc09uTW9iaWxlKSB7XHJcbiAgICAgICAgIHRoaXMuc2Nyb2xsU3R5bGUgPSB7IG1pbkhlaWdodDogKHRoaXMucG9wdXBTaXplLmhlaWdodCAtIDEwNCkgKyAncHgnIH07XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgY2VudGVyKCkge1xyXG4gICAgICB0aGlzLmRpYWxvZy5jZW50ZXIoKTtcclxuICAgfVxyXG5cclxuICAgbWF4aW1pemUoKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nLm1heGltaXplKCk7XHJcbiAgICAgIC8vIFRyaWNrIGZvciBidWcgcHJpbWVuZ1xyXG4gICAgICB0aGlzLmRpYWxvZy5tYXhpbWl6ZWQgPSB0cnVlO1xyXG4gICB9XHJcblxyXG4gICBnZXRDb21wb25lbnRCeVR5cGUoY29udHJvbFR5cGU6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fY29tbW9uU2VydmljZS5maW5kVGVtcGxhdGVGcm9tTGlzdCh0aGlzLmNoaWxkcmVuLCBjb250cm9sVHlwZSk7XHJcbiAgIH1cclxufVxyXG4iXX0=
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG4tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3RuLWRpYWxvZy90bi1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4TCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBTzVELE1BQU0sT0FBTyxpQkFBaUI7SUFtQzNCLFlBQ1csU0FBbUIsRUFDbkIsc0JBQTZDO1FBRDdDLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQXpCL0MsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFHYixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBR2xCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFD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QyxZQUFZLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTt1QkFDdkMsZUFBZSxTQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7d0JBRWxELEtBQUs7eUJBQ0wsS0FBSztrQ0FDTCxLQUFLO2tDQUNMLEtBQUs7c0JBQ0wsS0FBSzs2QkFDTCxLQUFLO29CQUNMLEtBQUs7cUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzRCQUNMLEtBQUs7eUJBQ0wsS0FBSzswQkFDTCxLQUFLO21CQUNMLEtBQUs7eUJBQ0wsS0FBSzswQkFDTCxLQUFLO3FCQUdMLE1BQU07dUJBQ04sTUFBTTtxQkFDTixNQUFNO3FCQUNOLE1BQU07dUJBdUROLFlBQVksU0FBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaWFsb2cgfSBmcm9tICd0bi1jdXN0b20tcHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBEYXRhRm9ybUJhc2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UvZGF0YS1mb3JtLWJhc2UnO1xyXG5pbXBvcnQgeyBQb3B1cFNpemUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9tU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG5DdXN0b21TY3JvbGxiYXJDb21wb25lbnQgfSBmcm9tICcuLi90bi1jdXN0b20tc2Nyb2xsYmFyL3RuLWN1c3RvbS1zY3JvbGxiYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSBcIm5neC1kZXZpY2UtZGV0ZWN0b3JcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICBzZWxlY3RvcjogJ3RuLWRpYWxvZycsXHJcbiAgIHRlbXBsYXRlVXJsOiAnLi90bi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICBzdHlsZVVybHM6IFsnLi90bi1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG5EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgQFZpZXdDaGlsZCgnZGlhbG9nJywgeyBzdGF0aWM6IHRydWUgfSkgZGlhbG9nOiBEaWFsb2c7XHJcbiAgIEBWaWV3Q2hpbGQoJ3Njcm9sbGJhcicsIHsgc3RhdGljOiB0cnVlIH0pIHNjcm9sbGJhcjogVG5DdXN0b21TY3JvbGxiYXJDb21wb25lbnQ7XHJcbiAgIEBDb250ZW50Q2hpbGQoJ2Zvcm1CYXNlJywgeyBzdGF0aWM6IHRydWUgfSkgZm9ybUJhc2U6IERhdGFGb3JtQmFzZTtcclxuICAgQENvbnRlbnRDaGlsZCgnZm9vdGVyJywgeyBzdGF0aWM6IHRydWUgfSkgZm9vdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlUmVmLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGNoaWxkcmVuOiBRdWVyeUxpc3Q8VGVtcGxhdGVSZWY8YW55Pj47XHJcblxyXG4gICBASW5wdXQoKSBtYXNrQ2xhc3M6IHN0cmluZztcclxuICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xyXG4gICBASW5wdXQoKSBzY3JvbGxCYXJTdHlsZUNsYXNzOiBzdHJpbmc7XHJcbiAgIEBJbnB1dCgpIHVzZURlZmF1bHRTY3JvbGxCYXI6IGJvb2xlYW47XHJcbiAgIEBJbnB1dCgpIHZpc2libGUgPSB0cnVlO1xyXG4gICBASW5wdXQoKSBkaXNhYmxlZEJ1dHRvbiA9IGZhbHNlO1xyXG4gICBASW5wdXQoKSBtb2RhbCA9IHRydWU7XHJcbiAgIEBJbnB1dCgpIGhlYWRlcjogc3RyaW5nO1xyXG4gICBASW5wdXQoKSBwb3B1cFNpemU6IFBvcHVwU2l6ZTtcclxuICAgQElucHV0KCkgY2xvc2VPbkVzY2FwZSA9IHRydWU7XHJcbiAgIEBJbnB1dCgpIHNob3dGb290ZXIgPSB0cnVlO1xyXG4gICBASW5wdXQoKSBwb3NpdGlvblRvcDogbnVtYmVyO1xyXG4gICBASW5wdXQoKSBtaW5ZOiBudW1iZXI7XHJcbiAgIEBJbnB1dCgpIGhpZGRlblNhdmUgPSB0cnVlO1xyXG4gICBASW5wdXQoKSBtYXhpbWl6YWJsZSA9IHRydWU7XHJcbiAgIHNjcm9sbENvbmZpZyA9IHsgc3VwcHJlc3NTY3JvbGxYOiB0cnVlLCBzdXBwcmVzc1Njcm9sbFk6IGZhbHNlIH07XHJcbiAgIHNjcm9sbFN0eWxlID0ge31cclxuICAgQE91dHB1dCgpIG9uU2F2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAgQE91dHB1dCgpIG9uQ2FuY2VsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICBAT3V0cHV0KCkgb25TaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICBAT3V0cHV0KCkgb25IaWRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgZGlhbG9nQ29udGVudERvbTogYW55O1xyXG4gICBpc09uTW9iaWxlO1xyXG5cclxuICAgcHJvdGVjdGVkIF9kb21TZXJ2aWNlOiBEb21TZXJ2aWNlO1xyXG4gICBwcm90ZWN0ZWQgX2NvbW1vblNlcnZpY2U6IENvbW1vblNlcnZpY2U7XHJcbiAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgIHByaXZhdGUgX2RldmljZURldGVjdG9yU2VydmljZTogRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlXHJcbiAgICkge1xyXG4gICAgICB0aGlzLl9kb21TZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KERvbVNlcnZpY2UpO1xyXG4gICAgICB0aGlzLl9jb21tb25TZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KENvbW1vblNlcnZpY2UpO1xyXG4gICB9XHJcblxyXG4gICBuZ09uSW5pdCgpIHtcclxuICAgICAgdGhpcy5pc09uTW9iaWxlID0gdGhpcy5fZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzTW9iaWxlKCk7XHJcbiAgICAgIGlmICghdGhpcy5wb3B1cFNpemUpXHJcbiAgICAgICAgIHRoaXMucG9wdXBTaXplID0gbmV3IFBvcHVwU2l6ZSgpO1xyXG4gICAgICBpZiAodGhpcy5wb3B1cFNpemUubWF4aW1pemUgfHwgdGhpcy5pc09uTW9iaWxlKSB7XHJcbiAgICAgICAgIHRoaXMucG9wdXBTaXplLndpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgICAgIHRoaXMucG9wdXBTaXplLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICAgaWYgKCF0aGlzLnBvcHVwU2l6ZS53aWR0aClcclxuICAgICAgICAgICAgdGhpcy5wb3B1cFNpemUud2lkdGggPSA4MDA7XHJcbiAgICAgICAgIGlmICghdGhpcy5wb3B1cFNpemUuaGVpZ2h0KVxyXG4gICAgICAgICAgICB0aGlzLnBvcHVwU2l6ZS5oZWlnaHQgPSA1MDA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2V0dXBTY3JvbGxTdHlsZSgpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgIHRoaXMuZ2V0Q29tcG9uZW50QnlUeXBlKCdidXR0b25UZW1wbGF0ZScpO1xyXG4gICAgICB9LCAxMDAwKTtcclxuICAgfVxyXG5cclxuICAgaGFuZGxlU2hvd0RpYWxvZyhldmVudCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0NvbnRlbnREb20gPSB0aGlzLmRpYWxvZy53cmFwcGVyO1xyXG4gICAgICBpZiAodGhpcy5fZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgICAgdGhpcy5tYXhpbWl6ZSgpO1xyXG4gICAgICAgICB0aGlzLmRpYWxvZy5tYXhpbWl6YWJsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMucG9wdXBTaXplLm1heGltaXplKSB7XHJcbiAgICAgICAgIHRoaXMubWF4aW1pemUoKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgIHRoaXMub25SZXNpemUoKTtcclxuICAgICAgdGhpcy5vblNob3cuZW1pdChldmVudCk7XHJcbiAgIH1cclxuXHJcbiAgIGhhbmRsZUhpZGVEaWFsb2coZXZlbnQpIHtcclxuICAgICAgdGhpcy5vbkhpZGUuZW1pdChldmVudCk7XHJcbiAgIH1cclxuXHJcbiAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gICBvblJlc2l6ZSgpIHtcclxuICAgICAgaWYgKHRoaXMucG9wdXBTaXplLndpZHRoICYmIHRoaXMuX2RvbVNlcnZpY2UubWF4aW1pemVEaWFsb2codGhpcy5kaWFsb2dDb250ZW50RG9tLCB0aGlzLnBvcHVwU2l6ZSkpIHtcclxuICAgICAgICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDwgdGhpcy5wb3B1cFNpemUud2lkdGgpXHJcbiAgICAgICAgICAgIHRoaXMucG9wdXBTaXplLndpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgICAgICAgIGlmICh3aW5kb3cuaW5uZXJIZWlnaHQgPCB0aGlzLnBvcHVwU2l6ZS5oZWlnaHQpXHJcbiAgICAgICAgICAgIHRoaXMucG9wdXBTaXplLmhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcclxuICAgICAgICAgdGhpcy5zZXR1cFNjcm9sbFN0eWxlKCk7XHJcbiAgICAgICAgIHRoaXMuZGlhbG9nLm1heGltaXphYmxlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgfVxyXG5cclxuICAgc2V0dXBTY3JvbGxTdHlsZSgpIHtcclxuICAgICAgaWYoIXRoaXMuaXNPbk1vYmlsZSkge1xyXG4gICAgICAgICB0aGlzLnNjcm9sbFN0eWxlID0geyBtaW5IZWlnaHQ6ICh0aGlzLnBvcHVwU2l6ZS5oZWlnaHQgLSAxMDQpICsgJ3B4JyB9O1xyXG4gICAgICB9XHJcbiAgIH1cclxuXHJcbiAgIGNlbnRlcigpIHtcclxuICAgICAgdGhpcy5kaWFsb2cuY2VudGVyKCk7XHJcbiAgIH1cclxuXHJcbiAgIG1heGltaXplKCkge1xyXG4gICAgICB0aGlzLmRpYWxvZy5tYXhpbWl6ZSgpO1xyXG4gICAgICAvLyBUcmljayBmb3IgYnVnIHByaW1lbmdcclxuICAgICAgdGhpcy5kaWFsb2cubWF4aW1pemVkID0gdHJ1ZTtcclxuICAgfVxyXG5cclxuICAgZ2V0Q29tcG9uZW50QnlUeXBlKGNvbnRyb2xUeXBlOiBzdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2NvbW1vblNlcnZpY2UuZmluZFRlbXBsYXRlRnJvbUxpc3QodGhpcy5jaGlsZHJlbiwgY29udHJvbFR5cGUpO1xyXG4gICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Component, Injector, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { UserService } from '../../../services/user.service';
|
|
3
|
+
import { ComponentContextService } from '../../../app-context/component-context.service';
|
|
4
|
+
import { Dialog } from 'tn-custom-primeng/dialog';
|
|
5
|
+
import { UserPickerControlSchema } from '../../../classes/form-schema';
|
|
6
|
+
import { DataListBase } from '../../../classes/base/data-list-base';
|
|
7
|
+
export class UserPickerDialogComponent extends DataListBase {
|
|
8
|
+
constructor(_userService, _injector) {
|
|
9
|
+
super(_injector);
|
|
10
|
+
this._userService = _userService;
|
|
11
|
+
this.STORAGE_KEY_USER_PICKER_NAME = 'user_picker_storage_name';
|
|
12
|
+
this.STORAGE_KEY_USER_PICKER_ID_USER = 'user_picker_storage_id_user';
|
|
13
|
+
this.STORAGE_KEY_USER_PICKER_SEARCH_KEY = 'user_picker_storage_search_key';
|
|
14
|
+
this.STORAGE_KEY_USER_PICKER_NODE_SELECTED = 'user_picker_storage_node';
|
|
15
|
+
this.rootTreeNode = [
|
|
16
|
+
{
|
|
17
|
+
label: '',
|
|
18
|
+
data: '-1',
|
|
19
|
+
expandedIcon: 'pi pi-folder-open',
|
|
20
|
+
collapsedIcon: 'pi pi-folder',
|
|
21
|
+
children: []
|
|
22
|
+
}
|
|
23
|
+
];
|
|
24
|
+
this.multiple = false;
|
|
25
|
+
this.enableCaching = true;
|
|
26
|
+
this.isFirstLoad = true;
|
|
27
|
+
this.rootFilter = {};
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.setting.baseService = this._userService;
|
|
31
|
+
super.ngOnInit();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
UserPickerDialogComponent.decorators = [
|
|
35
|
+
{ type: Component, args: [{
|
|
36
|
+
selector: 'app-user-picker-dialog',
|
|
37
|
+
template: "<p>\r\n user-picker-dialog works!\r\n</p>\r\n",
|
|
38
|
+
providers: [ComponentContextService],
|
|
39
|
+
styles: [""]
|
|
40
|
+
},] }
|
|
41
|
+
];
|
|
42
|
+
UserPickerDialogComponent.ctorParameters = () => [
|
|
43
|
+
{ type: UserService },
|
|
44
|
+
{ type: Injector }
|
|
45
|
+
];
|
|
46
|
+
UserPickerDialogComponent.propDecorators = {
|
|
47
|
+
dialog: [{ type: ViewChild, args: ['dialog',] }],
|
|
48
|
+
multiple: [{ type: Input }],
|
|
49
|
+
enableCaching: [{ type: Input }],
|
|
50
|
+
control: [{ type: Input }]
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1waWNrZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bngtc2hhcmVkL3NyYy9saWIvIiwic291cmNlcyI6WyJjb21wb25lbnRzL3VzZXItcGlja2VyL3VzZXItcGlja2VyLWRpYWxvZy91c2VyLXBpY2tlci1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFRcEUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFlBQVk7SUF1QnZELFlBQ1csWUFBeUIsRUFDaEMsU0FBbUI7UUFFbkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBSFYsaUJBQVksR0FBWixZQUFZLENBQWE7UUF2QjNCLGlDQUE0QixHQUFHLDBCQUEwQixDQUFDO1FBQzFELG9DQUErQixHQUFHLDZCQUE2QixDQUFDO1FBQ2hFLHVDQUFrQyxHQUFHLGdDQUFnQyxDQUFDO1FBQ3RFLDBDQUFxQyxHQUFHLDBCQUEwQixDQUFDO1FBSTVFLGlCQUFZLEdBQWU7WUFDdkI7Z0JBQ0ksS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsWUFBWSxFQUFFLG1CQUFtQjtnQkFDakMsYUFBYSxFQUFFLGNBQWM7Z0JBQzdCLFFBQVEsRUFBRSxFQUFFO2FBQ2Y7U0FBQyxDQUFDO1FBRUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUU5QixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixlQUFVLEdBQVEsRUFBRSxDQUFDO0lBT3JCLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUU3QyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQzs7O1lBeENKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQywwREFBa0Q7Z0JBRWxELFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDOzthQUN2Qzs7O1lBWlEsV0FBVztZQURBLFFBQVE7OztxQkFvQnZCLFNBQVMsU0FBQyxRQUFRO3VCQVdsQixLQUFLOzRCQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLWNvbnRleHQvY29tcG9uZW50LWNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJ3RuLWN1c3RvbS1wcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRyZWVOb2RlIH0gZnJvbSAndG4tY3VzdG9tLXByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVXNlclBpY2tlckNvbnRyb2xTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0tc2NoZW1hJztcclxuaW1wb3J0IHsgRGF0YUxpc3RCYXNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9iYXNlL2RhdGEtbGlzdC1iYXNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtdXNlci1waWNrZXItZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXBpY2tlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci1waWNrZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtDb21wb25lbnRDb250ZXh0U2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyUGlja2VyRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgRGF0YUxpc3RCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05BTUUgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9uYW1lJztcclxuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX0lEX1VTRVIgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9pZF91c2VyJztcclxuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX1NFQVJDSF9LRVkgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9zZWFyY2hfa2V5JztcclxuICAgIHJlYWRvbmx5IFNUT1JBR0VfS0VZX1VTRVJfUElDS0VSX05PREVfU0VMRUNURUQgPSAndXNlcl9waWNrZXJfc3RvcmFnZV9ub2RlJztcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkaWFsb2cnKSBkaWFsb2c6IERpYWxvZztcclxuXHJcbiAgICByb290VHJlZU5vZGU6IFRyZWVOb2RlW10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgICAgIGRhdGE6ICctMScsXHJcbiAgICAgICAgICAgIGV4cGFuZGVkSWNvbjogJ3BpIHBpLWZvbGRlci1vcGVuJyxcclxuICAgICAgICAgICAgY29sbGFwc2VkSWNvbjogJ3BpIHBpLWZvbGRlcicsXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXVxyXG4gICAgICAgIH1dO1xyXG5cclxuICAgIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBlbmFibGVDYWNoaW5nID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGNvbnRyb2w6IFVzZXJQaWNrZXJDb250cm9sU2NoZW1hO1xyXG4gICAgaXNGaXJzdExvYWQgPSB0cnVlO1xyXG4gICAgcm9vdEZpbHRlcjogYW55ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIF91c2VyU2VydmljZTogVXNlclNlcnZpY2UsXHJcbiAgICAgICAgX2luamVjdG9yOiBJbmplY3RvclxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoX2luamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmcuYmFzZVNlcnZpY2UgPSB0aGlzLl91c2VyU2VydmljZTtcclxuXHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|