ngx-bimplus-components 0.0.132 → 0.0.134-webcomponents
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/assets/images/default/27_Center_Menu.svg +3 -3
- package/assets/images/default/27_Center_Menu_active.svg +3 -3
- package/assets/images/default/27_Center_Menu_opened.svg +14 -14
- package/assets/images/default/3_dots.svg +10 -10
- package/assets/images/default/3_dots_active.svg +10 -10
- package/assets/images/default/6-dots-gray.svg +10 -10
- package/assets/images/default/6_dots_gray.svg +8 -8
- package/assets/images/default/Add_Issue_active.svg +12 -12
- package/assets/images/default/Add_Issue_disabled.svg +12 -12
- package/assets/images/default/Allplan-Cloud-Viewer-Logo.svg +17 -17
- package/assets/images/default/Allplan-Cloud-Viewer-Logo_black.svg +16 -16
- package/assets/images/default/Allplan-Connexis-Logo.svg +8 -8
- package/assets/images/default/Allplan-Connexis-Logo_black.svg +11 -11
- package/assets/images/default/Allplan_Bimplus_Logo.svg +14 -14
- package/assets/images/default/Fullscreen_active.svg +6 -6
- package/assets/images/default/Fullscreen_disabled.svg +8 -8
- package/assets/images/default/Hide_active.svg +12 -12
- package/assets/images/default/Hide_disabled.svg +12 -12
- package/assets/images/default/IsolateMenuClipped.svg +19 -19
- package/assets/images/default/IsolateMenuClipped_maincolor.svg +19 -19
- package/assets/images/default/IsolateMenuHidden.svg +8 -8
- package/assets/images/default/IsolateMenuHidden_maincolor.svg +5 -5
- package/assets/images/default/IsolateMenuNormal.svg +29 -29
- package/assets/images/default/IsolateMenuNormal_maincolor.svg +29 -29
- package/assets/images/default/IsolationMenuParams.svg +5 -5
- package/assets/images/default/IsolationMenuParamsmaincolor.svg +5 -5
- package/assets/images/default/Isolation_active.svg +12 -12
- package/assets/images/default/Isolation_disabled.svg +12 -12
- package/assets/images/default/Markup_active.svg +11 -11
- package/assets/images/default/Markup_disabled.svg +11 -11
- package/assets/images/default/Navigation_Map_active.svg +3 -3
- package/assets/images/default/Navigation_Map_disabled.svg +5 -5
- package/assets/images/default/Pipette_18_maincolor.svg +3 -3
- package/assets/images/default/ProjectNavigation_20_maincolor.svg +10 -10
- package/assets/images/default/Project_Navigation_active.svg +10 -10
- package/assets/images/default/Project_Navigation_disabled.svg +10 -10
- package/assets/images/default/Properties_18_gray.svg +3 -3
- package/assets/images/default/Properties_18_maincolor.svg +3 -3
- package/assets/images/default/Quantity_active.svg +3 -3
- package/assets/images/default/Quantity_disabled.svg +5 -5
- package/assets/images/default/Reset_active.svg +10 -10
- package/assets/images/default/Reset_disabled.svg +10 -10
- package/assets/images/default/Section_active.svg +3 -3
- package/assets/images/default/Section_disabled.svg +5 -5
- package/assets/images/default/Spinner_18_disabled.svg +15 -15
- package/assets/images/default/View_active.svg +4 -4
- package/assets/images/default/View_disabled.svg +6 -6
- package/assets/images/default/bimplus_Components_Account_Settings.svg +14 -14
- package/assets/images/default/bimplus_Components_Add_Ins.svg +3 -3
- package/assets/images/default/bimplus_Components_Autoconverter.svg +14 -14
- package/assets/images/default/bimplus_Components_Autoconverter_Active.svg +14 -14
- package/assets/images/default/bimplus_Components_Autoconverter_Disabled.svg +14 -14
- package/assets/images/default/bimplus_Components_BIM_Explorer.svg +4 -4
- package/assets/images/default/bimplus_Components_BIM_Explorer_Active.svg +4 -4
- package/assets/images/default/bimplus_Components_BIM_Explorer_Disabled.svg +4 -4
- package/assets/images/default/bimplus_Components_Clear_Cache.svg +16 -16
- package/assets/images/default/bimplus_Components_Close.svg +3 -3
- package/assets/images/default/bimplus_Components_Connexis.svg +4 -4
- package/assets/images/default/bimplus_Components_Connexis_Active.svg +4 -4
- package/assets/images/default/bimplus_Components_Connexis_Disabled.svg +4 -4
- package/assets/images/default/bimplus_Components_Desktop_Mode.svg +15 -15
- package/assets/images/default/bimplus_Components_Documents.svg +6 -6
- package/assets/images/default/bimplus_Components_Documents_Active.svg +4 -4
- package/assets/images/default/bimplus_Components_Documents_Disabled.svg +6 -6
- package/assets/images/default/bimplus_Components_Edit_Profile.svg +8 -8
- package/assets/images/default/bimplus_Components_Forum.svg +10 -10
- package/assets/images/default/bimplus_Components_IFC_viewer.svg +9 -9
- package/assets/images/default/bimplus_Components_IFC_viewer_Active.svg +16 -16
- package/assets/images/default/bimplus_Components_IFC_viewer_Disabled.svg +9 -9
- package/assets/images/default/bimplus_Components_ISO.svg +3 -3
- package/assets/images/default/bimplus_Components_ISO_Active.svg +3 -3
- package/assets/images/default/bimplus_Components_ISO_Disabled.svg +3 -3
- package/assets/images/default/bimplus_Components_Info.svg +10 -10
- package/assets/images/default/bimplus_Components_Info_Active.svg +10 -10
- package/assets/images/default/bimplus_Components_Languages.svg +5 -5
- package/assets/images/default/bimplus_Components_Logo_Black.svg +17 -17
- package/assets/images/default/bimplus_Components_Logout.svg +12 -12
- package/assets/images/default/bimplus_Components_Models.svg +10 -10
- package/assets/images/default/bimplus_Components_Models_Active.svg +10 -10
- package/assets/images/default/bimplus_Components_Models_Disabled.svg +10 -10
- package/assets/images/default/bimplus_Components_Notify_Alert.svg +6 -6
- package/assets/images/default/bimplus_Components_Notify_Close.svg +3 -3
- package/assets/images/default/bimplus_Components_Notify_Empty.svg +5 -5
- package/assets/images/default/bimplus_Components_Notify_Main.svg +5 -5
- package/assets/images/default/bimplus_Components_Notify_Tick_Up.svg +3 -3
- package/assets/images/default/bimplus_Components_Overlay_Dialog_Cross_White.svg +3 -3
- package/assets/images/default/bimplus_Components_Overlay_Dialog_Error_Title.svg +4 -4
- package/assets/images/default/bimplus_Components_Overlay_Dialog_Icon.svg +3 -3
- package/assets/images/default/bimplus_Components_Overlay_Dialog_Warning_Title.svg +3 -3
- package/assets/images/default/bimplus_Components_Projects_Folder.svg +10 -10
- package/assets/images/default/bimplus_Components_Projects_Folder_Active.svg +10 -10
- package/assets/images/default/bimplus_Components_Projects_Folder_Disabled.svg +10 -10
- package/assets/images/default/bimplus_Components_Setting_Active.svg +10 -10
- package/assets/images/default/bimplus_Components_Settings.svg +10 -10
- package/assets/images/default/bimplus_Components_Settings_Disabled.svg +10 -10
- package/assets/images/default/bimplus_Components_Shop.svg +13 -13
- package/assets/images/default/bimplus_Components_Shop_Disabled.svg +13 -13
- package/assets/images/default/bimplus_Components_Support.svg +21 -21
- package/assets/images/default/bimplus_Components_Team_Members.svg +5 -5
- package/assets/images/default/bimplus_Components_Team_Members_Active.svg +5 -5
- package/assets/images/default/bimplus_Components_Touch_Mode.svg +16 -16
- package/assets/images/default/bimplus_Components_User_Guide.svg +17 -17
- package/assets/images/default/bimplus_Components_Users.svg +4 -4
- package/assets/images/default/bimplus_Components_Users_Active.svg +4 -4
- package/assets/images/default/bimplus_Components_Users_Disabled.svg +4 -4
- package/assets/images/default/bimplus_Components_Zoom.svg +5 -5
- package/assets/images/default/bimplus_Components_navbar_menu.svg +6 -6
- package/assets/images/default/bimplus_Components_navbar_menu_active.svg +6 -6
- package/assets/images/default/bimplus_Components_navbar_menu_disabled.svg +6 -6
- package/assets/images/default/bimplus_Components_submenu_arrow.svg +4 -4
- package/assets/images/default/bimplus_Remove_Conection.svg +15 -15
- package/assets/images/default/bimplus_WebIcons_Cross.svg +1 -1
- package/assets/images/default/checkbox_mixed.svg +4 -4
- package/assets/images/default/checkbox_off.svg +3 -3
- package/assets/images/default/checkbox_off_disabled.svg +3 -3
- package/assets/images/default/checkbox_off_hovered.svg +3 -3
- package/assets/images/default/checkbox_off_pressed.svg +3 -3
- package/assets/images/default/checkbox_on.svg +4 -4
- package/assets/images/default/checkbox_on_disabled.svg +4 -4
- package/assets/images/default/checkbox_on_hovered.svg +4 -4
- package/assets/images/default/checkbox_on_pressed.svg +4 -4
- package/assets/images/default/cm_view_front_black.svg +4 -4
- package/assets/images/default/cm_view_front_maincolor.svg +4 -4
- package/assets/images/default/cm_view_perspective_black.svg +3 -3
- package/assets/images/default/cm_view_perspective_maincolor.svg +3 -3
- package/assets/images/default/cm_view_side_black.svg +4 -4
- package/assets/images/default/cm_view_side_maincolor.svg +4 -4
- package/assets/images/default/cm_view_top_black.svg +4 -4
- package/assets/images/default/cm_view_top_maincolor.svg +4 -4
- package/assets/images/default/collapsed_18.svg +3 -3
- package/assets/images/default/collapsed_18_small.svg +3 -3
- package/assets/images/default/expanded_18.svg +3 -3
- package/assets/images/default/expanded_18_small.svg +3 -3
- package/assets/images/default/eye_active.svg +4 -4
- package/assets/images/default/eye_semiactive.svg +4 -4
- package/assets/images/default/ic_drag.svg +8 -8
- package/assets/images/default/ic_eye_black.svg +5 -5
- package/assets/images/default/ic_eye_maincolor.svg +5 -5
- package/assets/images/default/ic_make_transparent.svg +4 -4
- package/assets/images/default/ic_make_transparent_active.svg +4 -4
- package/assets/images/default/ic_property_manager.svg +10 -10
- package/assets/images/default/ic_property_manager_active.svg +10 -10
- package/assets/images/default/ic_property_manager_disabled.svg +10 -10
- package/assets/images/default/ic_reset.svg +3 -3
- package/assets/images/default/ic_thin_arrow_left.svg +3 -3
- package/assets/images/default/ic_toggle_off_gray.svg +4 -4
- package/assets/images/default/ic_toggle_on_green.svg +4 -4
- package/assets/images/default/ic_toggle_on_light_green.svg +4 -4
- package/assets/images/default/icon-hide-param-maincolor.svg +5 -5
- package/assets/images/default/icon-hide-param-white.svg +5 -5
- package/assets/images/default/resize_handle_ne.svg +4 -4
- package/assets/images/default/resize_handle_se.svg +4 -4
- package/assets/images/default/switcher_active.svg +4 -4
- package/assets/images/default/switcher_inactive.svg +4 -4
- package/assets/images/default/switcher_semiactive.svg +4 -4
- package/assets/images/default/visibility_active.svg +4 -4
- package/assets/images/default/visibility_inactive.svg +4 -4
- package/assets/images/default/visibility_semiactive.svg +4 -4
- package/assets/languages/strings_cs.json +2310 -2310
- package/assets/languages/strings_de.json +2348 -2348
- package/assets/languages/strings_en.json +2385 -2385
- package/assets/languages/strings_es.json +2310 -2310
- package/assets/languages/strings_fr.json +2314 -2314
- package/assets/languages/strings_it.json +2310 -2310
- package/assets/languages/strings_nl.json +796 -796
- package/assets/languages/strings_ro.json +2310 -2310
- package/assets/languages/strings_ru.json +2310 -2310
- package/assets/languages/strings_tr.json +2310 -2310
- package/assets/languages/strings_us.json +2323 -2323
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-buttons-row/bimplus-buttons-row.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer/bimplus-connection-designer.service.mjs +1 -1
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-connection-designer-results/bimplus-connection-designer-results.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-contact/bimplus-contact.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-context-menu/bimplus-context-menu.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-flat-tree/bimplus-flat-tree.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar/bimplus-floating-bar.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-floating-bar-body/bimplus-floating-bar-body.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-dragger/bimplus-floating-bar-dragger.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-header-content/bimplus-floating-bar-header-content.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-header-logo/bimplus-floating-bar-header-logo.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-hide-objects/bimplus-floating-bar-hide-objects.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-isolation-objects/bimplus-floating-bar-isolation-objects.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-floating-bar-project-navigator/bimplus-floating-bar-project-navigator.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-dialog-config-settings.mjs +1 -1
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.service.mjs +1 -1
- package/esm2022/lib/components/bimplus-language-menu/bimplus-language-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-main-menu/bimplus-main-menu.component.mjs +60 -20
- package/esm2022/lib/components/bimplus-navbar/bimplus-navbar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-navbar/logo-state.enum.mjs +1 -1
- package/esm2022/lib/components/bimplus-notify/bimplus-notify.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/bimplus-object-navigator.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/criteria-select-object-properties/criteria-select-object-properties.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-object-navigator/filter-criterium/filter-criterium.component.mjs +2 -2
- package/esm2022/lib/components/bimplus-object-navigator/object-filter-result/object-filter-result.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-overlay-dialog-warning/bimplus-overlay-dialog-warning.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-panel-toolbar/bimplus-panel-toolbar.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-project-menu/bimplus-project-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-scrollable-container/bimplus-scrollable-container.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-sidenav/bimplus-sidenav.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-sidenav-drawer-content/bimplus-sidenav-drawer-content.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-storage-info/bimplus-storage-info.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-text-message/bimplus-text-message.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/bimplus-tool-hub.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/svgGenerator.mjs +1 -1
- package/esm2022/lib/components/bimplus-tool-hub/tool-hub-item/tool-hub-item.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tool-hub/tool-hub-sub-item/tool-hub-sub-item.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-tooltip-message/bimplus-tooltip-message.interface.mjs +1 -1
- package/esm2022/lib/components/bimplus-touch-menu/bimplus-touch-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-user-menu/bimplus-user-menu.component.mjs +3 -3
- package/esm2022/lib/components/bimplus-zoom/bimplus-zoom.component.mjs +3 -3
- package/esm2022/lib/components/expansion-panel/expansion-panel.component.mjs +3 -3
- package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +3 -3
- package/esm2022/lib/components/object-properties-header/object-properties-header.component.mjs +4 -4
- package/esm2022/lib/components/object-properties-header/object-properties-header.interface.mjs +1 -1
- package/esm2022/lib/components/project-models/project-models.component.mjs +3 -3
- package/esm2022/lib/components/project-models/project-models.interface.mjs +1 -1
- package/esm2022/lib/components/resizable-panel/resizable-panel.component.mjs +3 -3
- package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +1 -1
- package/esm2022/lib/directives/component-draggable/componentsDraggable.directive.mjs +1 -1
- package/esm2022/lib/directives/resizable.directive.mjs +1 -1
- package/esm2022/lib/interfaces/bimplus-opacity-properties.interface.mjs +1 -1
- package/esm2022/lib/interfaces/bimplus-visibility-properties.interface.mjs +1 -1
- package/esm2022/lib/services/layout-manager.service.mjs +1 -1
- package/esm2022/lib/services/local-storage.service.mjs +1 -1
- package/esm2022/lib/services/resize-observer.service.mjs +1 -1
- package/esm2022/lib/types/types.mjs +1 -1
- package/esm2022/lib/utils/filterString.mjs +1 -1
- package/esm2022/lib/utils/filterStructureFetcher.mjs +1 -1
- package/esm2022/lib/utils/utils.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/ngx-bimplus-components.mjs +145 -105
- package/fesm2022/ngx-bimplus-components.mjs.map +1 -1
- package/lib/components/bimplus-main-menu/bimplus-main-menu.component.d.ts +3 -1
- package/package.json +6 -4
|
@@ -287,4 +287,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
287
287
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.LayoutManagerService }, { type: i2.ResizeObserverService }], propDecorators: { resizedEnd: [{
|
|
288
288
|
type: Output
|
|
289
289
|
}] } });
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3Jlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkZBQTZGO0FBQzdGLE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBZ0IzQyxNQUFNLE9BQU8sa0JBQWtCO0lBZ0M3QixZQUFvQixVQUFzQixFQUN0QixvQkFBMEMsRUFDMUMscUJBQTJDO1FBRjNDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBakMvRCx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFzQixFQUFFLENBQUM7UUFDMUMsa0JBQWEsR0FBUyxJQUFJLENBQUM7UUFDM0Isa0JBQWEsR0FBUyxLQUFLLENBQUM7UUFRNUIsc0JBQWlCLEdBQUssSUFBSSxDQUFDO1FBSTNCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRzVDLHlEQUF5RDtRQUN6RCxpQkFBWSxHQUFrQjtZQUM1QixFQUFFLFNBQVMsRUFBRyxZQUFZLEVBQUcsY0FBYyxFQUFHLElBQUksRUFBRTtZQUNwRCxFQUFFLFNBQVMsRUFBRyxXQUFXLEVBQUksY0FBYyxFQUFFLEdBQUcsRUFBSTtZQUNwRCxFQUFFLFNBQVMsRUFBRyxZQUFZLEVBQUcsY0FBYyxFQUFFLElBQUksRUFBRztZQUNwRCxFQUFFLFNBQVMsRUFBRyxXQUFXLEVBQUksY0FBYyxFQUFFLEdBQUcs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dGVuZXIsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiAsIE91dHB1dCwgRXZlbnRFbWl0dGVyICwgT25Jbml0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMYXlvdXRNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xheW91dC1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGZpcmVFdmVudCB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuXHJcbmludGVyZmFjZSBSZXNpemVySXRlbSB7XHJcbiAgJ2NsYXNzTmFtZScgOiBzdHJpbmcgLFxyXG4gICdyZXNpemVTdHJhdGVneScgOiBzdHJpbmcgXHJcbn1cclxuXHJcbmludGVyZmFjZSBSZXNpemFibGVFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnR7XHJcbiAgcmVzaXplU3RyYXRlZ3k/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2xpYlJlc2l6YWJsZV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBSZXNpemFibGVEaXJlY3RpdmUgIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXR7XHJcbiAgcmVzaXplQ29udGFjdFBvaW50WCA9IDA7XHJcbiAgcmVzaXplQ29udGFjdFBvaW50WSA9IDA7XHJcbiAgcmVzaXphYmxlRWxlbWVudHM6UmVzaXphYmxlRWxlbWVudFtdID0gW107XHJcbiAgcmVzaXplRW5hYmxlZCAgICAgICA9IHRydWU7XHJcbiAgcmVzaXplU3RhcnRlZCAgICAgICA9IGZhbHNlO1xyXG4gIHJlc2l6ZVN0YXJ0ICAgICA6IChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XHJcbiAgcmVzaXplSW5Qcm9ncmVzczogKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDsgIFxyXG4gIGJvdW5kUmVzaXplU3RhcnQ6IChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XHJcbiAgYm91bmRSZXNpemVJblByb2dyZXNzOiAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkO1xyXG4gIGJvdW5kUmVzaXplRW5kOiAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkO1xyXG4gICBcclxuICBfZWxlbWVudDpIVE1MRWxlbWVudDsgXHJcbiAgYWN0UmVzaXplU3RyYXRlZ3kgICA9IFwic2VcIjtcclxuICBcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVzaXplZEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcblxyXG4gIC8vIGxpc3Qgb2YgcmVzaXplcnMsIHJlc2l6ZXJzIGFyZSBzcGVjaWZpZWQgYnkgY2xhc3MgbmFtZVxyXG4gIHJlc2l6ZXJzTGlzdDpSZXNpemVySXRlbVtdID0gIFsgXHJcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1ud1wiICwgcmVzaXplU3RyYXRlZ3kgOiBcIm53XCIgfSxcclxuICAgIHsgY2xhc3NOYW1lIDogXCJyZXNpemVyLW5cIiAgLCByZXNpemVTdHJhdGVneTogXCJuXCIgICB9LFxyXG4gICAgeyBjbGFzc05hbWUgOiBcInJlc2l6ZXItbmVcIiAsIHJlc2l6ZVN0cmF0ZWd5OiBcIm5lXCIgIH0sXHJcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1lXCIgICwgcmVzaXplU3RyYXRlZ3k6IFwiZVwiICAgfSxcclxuICAgIHsgY2xhc3NOYW1lIDogXCJyZXNpemVyLXNlXCIgLCByZXNpemVTdHJhdGVneTogXCJzZVwiICB9LFxyXG4gICAgeyBjbGFzc05hbWUgOiBcInJlc2l6ZXItc1wiICAsIHJlc2l6ZVN0cmF0ZWd5OiBcInNcIiAgIH0sXHJcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1zd1wiICwgcmVzaXplU3RyYXRlZ3k6IFwic3dcIiAgfSxcclxuICAgIHsgY2xhc3NOYW1lIDogXCJyZXNpemVyLXdcIiAgLCByZXNpemVTdHJhdGVneTogXCJ3XCIgICB9XHJcbiAgXTtcclxuICBcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsYXlvdXRNYW5hZ2VyU2VydmljZTogTGF5b3V0TWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlKSB7ICAgICAgICAgICAgICBcclxuICAgIFxyXG4gICAgdGhpcy5fZWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UgPSBsYXlvdXRNYW5hZ2VyU2VydmljZTtcclxuICAgIFxyXG4gICAgdGhpcy5yZXNpemVTdGFydCA9ICAgKGV2ZW50Ok1vdXNlRXZlbnR8VG91Y2hFdmVudCkgPT4ge1xyXG4gICAgICAvL2dldCBtb3VzZS9maW5nZXIgWCBZIHBvc2l0aW9uc1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgaWYodGhpcy5yZXNpemVTdGFydGVkKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXNpemVTdGFydGVkID0gdHJ1ZTtcclxuICAgICAgY29uc3QgdG91Y2hMaXN0ID0gKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXM/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzOiBbXTtcclxuICAgICAgY29uc3QgY2xpZW50WCA9IGV2ZW50LnR5cGUgPT09ICd0b3VjaHN0YXJ0JyA/IHRvdWNoTGlzdFswXT8uY2xpZW50WCA6IChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRYO1xyXG4gICAgICBjb25zdCBjbGllbnRZID0gZXZlbnQudHlwZSA9PT0gJ3RvdWNoc3RhcnQnID8gdG91Y2hMaXN0WzBdPy5jbGllbnRZIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFk7XHJcbiAgICAgIHRoaXMucmVzaXplQ29udGFjdFBvaW50WCA9IGNsaWVudFg7XHJcbiAgICAgIHRoaXMucmVzaXplQ29udGFjdFBvaW50WSA9IGNsaWVudFk7XHJcbiAgICAgIHRoaXMub3BlbkRvY3VtZW50TGlzdGVuZXJzUmVzaXplKCk7ICAgICAgXHJcbiAgICAgIHRoaXMuc2V0dXBSZXNpemVTdHJhdGVneShldmVudCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICAgKiBjYWxjdWF0ZXMgYW5kIHNldHMgdGhlIG5ldyBwb3NpdGlvblxyXG4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gICAgdGhpcy5yZXNpemVJblByb2dyZXNzID0gKGV2ZW50Ok1vdXNlRXZlbnR8VG91Y2hFdmVudCkgPT4ge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgIC8vZ2V0IG1vdXNlL2ZpbmdlciBYIFkgcG9zaXRpb25zXHJcbiAgICAgIGNvbnN0IHRvdWNoTGlzdCA9IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzID8gKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXM6IFtdO1xyXG4gICAgICBjb25zdCBjbGllbnRYID0gZXZlbnQudHlwZSA9PT0gJ3RvdWNobW92ZScgPyB0b3VjaExpc3RbMF0/LmNsaWVudFggOiAoZXZlbnQgYXMgTW91c2VFdmVudCkuY2xpZW50WDtcclxuICAgICAgY29uc3QgY2xpZW50WSA9IGV2ZW50LnR5cGUgPT09ICd0b3VjaG1vdmUnID8gdG91Y2hMaXN0WzBdPy5jbGllbnRZIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFk7XHJcbiAgICAgIC8vY29uc3QgY2xpZW50WCA9ICAoZXZlbnQgYXMgTW91c2VFdmVudCkuY2xpZW50WDtcclxuICAgICAgLy9jb25zdCBjbGllbnRZID0gIChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRZO1xyXG5cclxuICAgICAgY29uc3QgbW92ZWQgPSB0aGlzLnJlc2l6ZUZyb21Ubyh0aGlzLl9lbGVtZW50LHRoaXMucmVzaXplQ29udGFjdFBvaW50WCwgdGhpcy5yZXNpemVDb250YWN0UG9pbnRZLGNsaWVudFgsY2xpZW50WSwgdGhpcy5hY3RSZXNpemVTdHJhdGVneSk7XHJcbiAgICAgIGlmKG1vdmVkKSB7XHJcbiAgICAgICAgdGhpcy5yZXNpemVDb250YWN0UG9pbnRYID0gY2xpZW50WDtcclxuICAgICAgICB0aGlzLnJlc2l6ZUNvbnRhY3RQb2ludFkgPSBjbGllbnRZO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmJvdW5kUmVzaXplU3RhcnQgPSB0aGlzLnJlc2l6ZVN0YXJ0LmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyA9IHRoaXMucmVzaXplSW5Qcm9ncmVzcy5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5ib3VuZFJlc2l6ZUVuZCA9IHRoaXMucmVzaXplRW5kLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MuYmluZCh0aGlzKTtcclxuICAgIHRoaXMuc2V0UmVzaXplcnModGhpcy5fZWxlbWVudCk7ICAgICAgICBcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJvdW5kUmVzaXplU3RhcnQgPSB0aGlzLnJlc2l6ZVN0YXJ0LmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyA9IHRoaXMucmVzaXplSW5Qcm9ncmVzcy5iaW5kKHRoaXMpO1xyXG4gICAgdGhpcy5ib3VuZFJlc2l6ZUVuZCA9IHRoaXMucmVzaXplRW5kLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xvc2VBbGxMaXN0ZW5lcnNSZXNpemUoKTsgICAgXHJcbiAgfVxyXG5cclxuICByZXNpemVFbmQoKXsgICBcclxuICAgIC8vdGhpcy5jbG9zZURvY3VtZW50TGlzdGVuZXJzUmVzaXplKCk7XHJcbiAgICBpZighdGhpcy5yZXNpemVTdGFydGVkKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSAgICAgXHJcbiAgICB0aGlzLnJlc2l6ZVN0YXJ0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2VBbGxMaXN0ZW5lcnNSZXNpemUoKTsgXHJcbiAgICB0aGlzLm9wZW5FbGVtZW50TGlzdGVuZXJzUmVzaXplKCk7XHJcbiAgICBmaXJlRXZlbnQodGhpcywgXCJyZXNpemVkRW5kXCIsIFsnJGV2ZW50J10pOyAgICBcclxuICB9XHJcbiAgXHJcblxyXG4gIF9nZXRWaWV3UmVjdCgpIHtcclxuICAgIGNvbnN0IHZpZXcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnI2NvbnRhaW5lclZpZXcnKTsgIC8vIHdlIHNob3VsZCBnZXQgaGVyZSB0aGUgcGFyZW50IG9iamVjdCBzZWxlY3RvciBhcyBpbnB1dCBwYXJhbWV0ZXJcclxuICAgIGlmKHZpZXcpe1xyXG4gICAgICByZXR1cm4gdmlldy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRE9NUmVjdCgwLDAsMCwwKTtcclxuICB9XHJcblxyXG4vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZmluZCBpZiByZWN0YW5nbGUgMSBpcyBpbnNpZGUgcmVjdGFuZ2xlIDJcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgaXNJbnNpZGVSZWN0KHJlY3QxOkRPTVJlY3QsIHJlY3QyOkRPTVJlY3QpIHtcclxuICAgIGlmKCFyZWN0MSB8fCAhcmVjdDIpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcmVjdDFJbnNpZGU6Ym9vbGVhbiA9IHJlY3QyLmxlZnQgPD0gcmVjdDEubGVmdFxyXG4gICAgICAgICAgICAgICAgICAmJiByZWN0Mi50b3AgPD0gcmVjdDEudG9wIFxyXG4gICAgICAgICAgICAgICAgICAmJiByZWN0Mi5yaWdodCA+PSByZWN0MS5yaWdodCBcclxuICAgICAgICAgICAgICAgICAgJiYgcmVjdDIuYm90dG9tID49IHJlY3QxLmJvdHRvbTtcclxuXHJcbiAgICByZXR1cm4gcmVjdDFJbnNpZGU7XHJcbiAgfVxyXG4gICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHJlc2l6ZSByZWN0YW5nbGUgYnkgeCwgeVxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfcmVzaXplUmVjdGFuZ2xlKHJlY3Q6RE9NUmVjdCwgcmVzaXplWDpudW1iZXIsIHJlc2l6ZVk6bnVtYmVyLCByZXNpemVTdHJhdGVneTpzdHJpbmcpIHtcclxuICAgIGlmKCFyZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZihbJ253JywndycsICdzdyddLmluY2x1ZGVzKHJlc2l6ZVN0cmF0ZWd5KSkge1xyXG4gICAgICByZWN0LnggKz0gcmVzaXplWDtcclxuICAgICAgcmVzaXplWCA9IHJlc2l6ZVggKiAtMTtcclxuICAgIH1cclxuXHJcbiAgICBpZihbJ253JywnbicsICduZSddLmluY2x1ZGVzKHJlc2l6ZVN0cmF0ZWd5KSkge1xyXG4gICAgICByZWN0LnkgKz0gcmVzaXplWTtcclxuICAgICAgcmVzaXplWSA9IHJlc2l6ZVkgKiAtMTtcclxuICAgIH1cclxuXHJcbiAgICBpZih0eXBlb2YocmVzaXplWCkgPT09ICdudW1iZXInICYmICFbJ24nLCdzJ10uaW5jbHVkZXMocmVzaXplU3RyYXRlZ3kpKSB7XHJcbiAgICAgIHJlY3Qud2lkdGggKz0gcmVzaXplWDtcclxuICAgIH1cclxuXHJcbiAgICBpZih0eXBlb2YocmVzaXplWSkgPT09ICdudW1iZXInICYmICFbJ3cnLCdlJ10uaW5jbHVkZXMocmVzaXplU3RyYXRlZ3kpKSB7XHJcbiAgICAgIHJlY3QuaGVpZ2h0ICs9IHJlc2l6ZVk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbiAgfVxyXG5cclxuICBfbWF4SGVpZ2h0UmVzZXQob2JqOkhUTUxFbGVtZW50LCBlbGVtZW50UmVjdDpET01SZWN0KSB7ICAgIFxyXG4gICAgdGhpcy5yZXNpemVGcm9tVG8ob2JqLCBlbGVtZW50UmVjdC5yaWdodCwgZWxlbWVudFJlY3QuYm90dG9tLCBlbGVtZW50UmVjdC5sZWZ0LGVsZW1lbnRSZWN0LnRvcCwgXCJzZVwiKTtcclxuICB9XHJcblxyXG4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHJlc2l6ZSBvYmplY3QgZnJvbSB7eCx5fSB0byB7eCx5fSBiYXNlZCBvbiByZXNpemUgc3RyYXRlZ3lcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgcmVzaXplRnJvbVRvIChvYmo6SFRNTEVsZW1lbnQsIGZyb21YOm51bWJlciwgZnJvbVk6bnVtYmVyLCB0b1g6bnVtYmVyLHRvWTpudW1iZXIsIHJlc2l6ZVN0cmF0ZWd5OnN0cmluZyl7XHJcbiAgICBjb25zdCBwb3NYRGVsdGEgPSB0b1ggLSBmcm9tWDtcclxuICAgIGNvbnN0IHBvc1lEZWx0YSA9IHRvWSAtIGZyb21ZO1xyXG4gICAgY29uc3QgZWxlbWVudCA9IG9iaiA/PyB0aGlzLl9lbGVtZW50O1xyXG4gICAgY29uc3QgZWxlbWVudFJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgLy9jb25zdCB2aWV3UmVjdCA9IHRoaXMuX2dldFZpZXdSZWN0KCk7XHJcbiAgICBjb25zdCB2aWV3UmVjdCA9IHRoaXMucmVzaXplT2JzZXJ2ZXJTZXJ2aWNlLmdldFBhcmVudEFwcFJlY3QoKTtcclxuICAgIFxyXG4gICAgbGV0IGNoZWNrQm91bmRhcmllcyA9IHRydWU7XHJcblxyXG4gICAgcmVzaXplU3RyYXRlZ3kgPSByZXNpemVTdHJhdGVneSB8fCBcInNlXCI7XHJcblxyXG4gICAgLy9pZiB0aGUgb2JqZWN0IGlzIG91dHNpZGUgdGhlIHZpZXcgcmVjdCBiZWNhdXNlIGl0J3MgYmlnZ2VyLCBkbyBub3QgY2hlY2sgYm91bmRhcmllcyxcclxuICAgIC8vYWxsb3cgbW92aW5nIG91dHNpZGUgdGhlIHZpZXcgcmVjdFxyXG4gICAgaWYodGhpcy5pc0luc2lkZVJlY3QoZWxlbWVudFJlY3QsIHZpZXdSZWN0KSA9PT0gZmFsc2UpIHtcclxuICAgICAgY2hlY2tCb3VuZGFyaWVzID0gZmFsc2U7IFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3Jlc2l6ZVJlY3RhbmdsZShlbGVtZW50UmVjdCwgcG9zWERlbHRhLCBwb3NZRGVsdGEsIHJlc2l6ZVN0cmF0ZWd5KTtcclxuXHJcbiAgICBpZiAoY2hlY2tCb3VuZGFyaWVzICYmIHRoaXMuaXNJbnNpZGVSZWN0KGVsZW1lbnRSZWN0LCB2aWV3UmVjdCkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgICBsZXQgdG9wID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS50b3AsIDEwKTtcclxuICAgIGxldCBsZWZ0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5sZWZ0LCAxMCk7XHJcbiAgICBsZXQgd2lkdGggPSBwYXJzZUludChjb21wdXRlZFN0eWxlLndpZHRoLCAxMCk7XHJcbiAgICBsZXQgaGVpZ2h0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5oZWlnaHQsIDEwKTtcclxuICAgIFxyXG4gICAgaWYoWydudycsJ3cnLCAnc3cnXS5pbmNsdWRlcyhyZXNpemVTdHJhdGVneSkpIHtcclxuICAgICAgIGxlZnQgPSBsZWZ0ICsgcG9zWERlbHRhOyAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGlmKFsnbncnLCduJywgJ25lJ10uaW5jbHVkZXMocmVzaXplU3RyYXRlZ3kpKSB7XHJcbiAgICAgIHRvcCA9IHRvcCAgKyAgcG9zWURlbHRhOyAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGlmKCFbJ24nLCdzJ10uaW5jbHVkZXMocmVzaXplU3RyYXRlZ3kpKSB7XHJcbiAgICAgIHdpZHRoID0gZWxlbWVudFJlY3Qud2lkdGg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmKCB2aWV3UmVjdC5oZWlnaHQgPCBlbGVtZW50UmVjdC5oZWlnaHQgKXtcclxuICAgICAgdGhpcy5fbWF4SGVpZ2h0UmVzZXQoZWxlbWVudCwgZWxlbWVudFJlY3QpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZighWyd3JywnZSddLmluY2x1ZGVzKHJlc2l6ZVN0cmF0ZWd5KSkge1xyXG4gICAgICBoZWlnaHQgPSBlbGVtZW50UmVjdC5oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgXHJcbiAgICBlbGVtZW50LnN0eWxlLnRvcCAgICA9IHRvcCAgICsgJ3B4JztcclxuICAgIGVsZW1lbnQuc3R5bGUubGVmdCAgID0gbGVmdCAgKyAncHgnO1xyXG4gICAgZWxlbWVudC5zdHlsZS53aWR0aCAgPSB3aWR0aCArICdweCc7XHJcbiAgICBlbGVtZW50LnN0eWxlLmhlaWdodCAgPSBoZWlnaHQgKyAncHgnO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgKiByZXNpemUgc3RhcnQgYXQgdGhlIGxheW91dCBtYW5hZ2FlclxyXG4gICAqIG9wZW4gZG9jdW1lbnQgbGlzdGVuZXJzXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIFxyXG4gICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgKiBzZXQgdGhlIGVsZW1lbnRzIHVzZWQgZm9yIHJlc2l6aW5nXHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIHNldFJlc2l6ZXJzKGVsZW1lbnQ6SFRNTEVsZW1lbnQpIHtcclxuICAgIGNvbnN0IHNldFJlc2l6YWJsZUVsZW1lbnRzID0gKCkgPT4ge1xyXG4gICAgICBsZXQgcmVzaXphYmxlRWxlbWVudHM6UmVzaXphYmxlRWxlbWVudFtdID0gW107XHJcbiAgICAgIC8vIGdldCBkb20gZWxlbWVudHMgb2YgYWxsIHJlc2l6ZXJzXHJcbiAgICAgIHRoaXMucmVzaXplcnNMaXN0LmZvckVhY2goIGl0ZW0gPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc2l6ZUVsZW1zID0gIGVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpdGVtLmNsYXNzTmFtZSk7XHJcbiAgICAgICAgaWYoIHJlc2l6ZUVsZW1zPy5sZW5ndGggKSB7XHJcbiAgICAgICAgICAvLyBzZXQgcmVzaXplIHN0cmF0ZWd5IGluIGVhY2ggZWxlbWVudCBzbyB3ZSBrbm93IGluIHdoaWNoIGRpcmVjdGlvbiB0byByZXNpemVcclxuICAgICAgICAgIGNvbnN0IGRlY29yYXRlZFJlc2l6ZUVsZW1zOiBSZXNpemFibGVFbGVtZW50W10gPSBBcnJheS5mcm9tKHJlc2l6ZUVsZW1zKS5tYXAoIGVsZW0gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZXNpemFibGVFbGVtID0gZWxlbSBhcyBSZXNpemFibGVFbGVtZW50O1xyXG4gICAgICAgICAgICByZXNpemFibGVFbGVtLnJlc2l6ZVN0cmF0ZWd5ID0gaXRlbS5yZXNpemVTdHJhdGVneTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc2l6YWJsZUVsZW07XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAvLyBhZGQgaXQgdG8gbGlzdCBvZiBhbGwgcmVzaXplcnNcclxuICAgICAgICAgIHJlc2l6YWJsZUVsZW1lbnRzID0gWy4uLnJlc2l6YWJsZUVsZW1lbnRzLCAuLi5kZWNvcmF0ZWRSZXNpemVFbGVtc107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMucmVzaXphYmxlRWxlbWVudHMgPSAgWy4uLnJlc2l6YWJsZUVsZW1lbnRzXTtcclxuICAgICAgdGhpcy5vcGVuRWxlbWVudExpc3RlbmVyc1Jlc2l6ZSgpO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICBzZXRSZXNpemFibGVFbGVtZW50cygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogb3BlbiBtb3VzZWRvd24sIHRvdWNoc3RhcnQgbGlzdGVuZXJzIG9uIGFsbCBlbGVtZW50cyBhbGxvd2VkIGZvciByZXNpemluZ1xyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBvcGVuRWxlbWVudExpc3RlbmVyc1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMucmVzaXphYmxlRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmJvdW5kUmVzaXplU3RhcnQpO1xyXG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmJvdW5kUmVzaXplU3RhcnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgKiBvcGVuIG1vdXNldXAsIHRvdWNoZW5kIGFuZCBtb3VzZW1vdmUsIHRvdWNobW92ZSBvbiBkb2N1bWVudFxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBvcGVuRG9jdW1lbnRMaXN0ZW5lcnNSZXNpemUoKSB7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5ib3VuZFJlc2l6ZUVuZCk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMuYm91bmRSZXNpemVFbmQpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZFJlc2l6ZUluUHJvZ3Jlc3MpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5ib3VuZFJlc2l6ZUluUHJvZ3Jlc3MpOyAgICBcclxuICB9XHJcbiBcclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogY2xvc2UgbW91c2V1cCwgdG91Y2hlbmQgYW5kIG1vdXNlbW92ZSwgdG91Y2htb3ZlIG9uIGRvY3VtZW50XHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIGNsb3NlRG9jdW1lbnRMaXN0ZW5lcnNSZXNpemUoKSB7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5ib3VuZFJlc2l6ZUVuZCk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMuYm91bmRSZXNpemVFbmQpO1xyXG4gIH1cclxuXHJcbi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBjbG9zZSBtb3VzZWRvd24sIHRvdWNoc3RhcnQgbGlzdGVuZXJzIG9uIGFsbCBlbGVtZW50cyBhbGxvd2VkIGZvciByZXNpemluZ1xyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBjbG9zZUVsZW1lbnRMaXN0ZW5lcnNSZXNpemUoKSB7XHJcbiAgICB0aGlzLnJlc2l6YWJsZUVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5ib3VuZFJlc2l6ZVN0YXJ0KTtcclxuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5ib3VuZFJlc2l6ZVN0YXJ0KTtcclxuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyk7XHJcbiAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5ib3VuZFJlc2l6ZUluUHJvZ3Jlc3MpOyAgICAgIFxyXG4gICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLmJvdW5kUmVzaXplRW5kKTtcclxuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMuYm91bmRSZXNpemVFbmQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogY2xvc2UgYWxsIGxpc3RlbmVyc1xyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBjbG9zZUFsbExpc3RlbmVyc1Jlc2l6ZSgpIHtcclxuICAgIHRoaXMuY2xvc2VFbGVtZW50TGlzdGVuZXJzUmVzaXplKCk7XHJcbiAgICB0aGlzLmNsb3NlRG9jdW1lbnRMaXN0ZW5lcnNSZXNpemUoKTtcclxuICB9XHJcblxyXG4gLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAgKiBzZXR1cCBhY3R1YWwgcmVzaXplIHN0cmF0ZWd5XHJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4gIHNldHVwUmVzaXplU3RyYXRlZ3koZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XHJcbiAgICBpZiggIWV2ZW50ICkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZmluZCBvbiB3aGljaCBlbGVtZW50IHJlc2l6ZSBzdGFydGVkIHNvIHdlIGtub3cgaW4gd2hpY2ggZGlyZWN0aW9uIHRvIHJlc2l6ZVxyXG4gICAgbGV0IHJlc2l6ZVN0cmF0ZWd5OnN0cmluZyA9IFwic2VcIjtcclxuICAgIGNvbnN0ICByZXNpemVTb3VyY2VFbGVtID0gZXZlbnQ/LnRhcmdldDtcclxuXHJcbiAgICBpZiggcmVzaXplU291cmNlRWxlbSApIHtcclxuICAgICAgY29uc3QgIGZvdW5kRWxlbSA9IHRoaXMucmVzaXphYmxlRWxlbWVudHMuZmluZCggaXRlbSA9PiBpdGVtID09PSByZXNpemVTb3VyY2VFbGVtICk7XHJcbiAgICAgIGlmIChmb3VuZEVsZW0/LnJlc2l6ZVN0cmF0ZWd5KSB7XHJcbiAgICAgICAgcmVzaXplU3RyYXRlZ3kgPSBmb3VuZEVsZW0/LnJlc2l6ZVN0cmF0ZWd5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hY3RSZXNpemVTdHJhdGVneSA9ICByZXNpemVTdHJhdGVneTtcclxuICB9XHJcbn1cclxuIl19
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3Jlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkZBQTZGO0FBQzdGLE9BQU8sRUFBRSxTQUFTLEVBQWUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBZ0IzQyxNQUFNLE9BQU8sa0JBQWtCO0lBZ0M3QixZQUFvQixVQUFzQixFQUN0QixvQkFBMEMsRUFDMUMscUJBQTJDO1FBRjNDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBakMvRCx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDeEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFzQixFQUFFLENBQUM7UUFDMUMsa0JBQWEsR0FBUyxJQUFJLENBQUM7UUFDM0Isa0JBQWEsR0FBUyxLQUFLLENBQUM7UUFRNUIsc0JBQWlCLEdBQUssSUFBSSxDQUFDO1FBSTNCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBRzVDLHlEQUF5RDtRQUN6RCxpQkFBWSxHQUFrQjtZQUM1QixFQUFFLFNBQVMsRUFBRyxZQUFZLEVBQUcsY0FBYyxFQUFHLElBQUksRUFBRTtZQUNwRCxFQUFFLFNBQVMsRUFBRyxXQUFXLEVBQUksY0FBYyxFQUFFLEdBQUcsRUFBSTtZQUNwRCxFQUFFLFNBQVMsRUFBRyxZQUFZLEVBQUcsY0FBYyxFQUFFLElBQUksRUFBRztZQUNwRCxFQUFFLFNBQVMsRUFBRyxXQUFXLEVBQUksY0FBYyxFQUFFLEdBQUcs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dGVuZXIsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgLCBPdXRwdXQsIEV2ZW50RW1pdHRlciAsIE9uSW5pdCwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExheW91dE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbGF5b3V0LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBSZXNpemVPYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBmaXJlRXZlbnQgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5cbmludGVyZmFjZSBSZXNpemVySXRlbSB7XG4gICdjbGFzc05hbWUnIDogc3RyaW5nICxcbiAgJ3Jlc2l6ZVN0cmF0ZWd5JyA6IHN0cmluZyBcbn1cblxuaW50ZXJmYWNlIFJlc2l6YWJsZUVsZW1lbnQgZXh0ZW5kcyBIVE1MRWxlbWVudHtcbiAgcmVzaXplU3RyYXRlZ3k/OiBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tsaWJSZXNpemFibGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcblxuZXhwb3J0IGNsYXNzIFJlc2l6YWJsZURpcmVjdGl2ZSAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdHtcbiAgcmVzaXplQ29udGFjdFBvaW50WCA9IDA7XG4gIHJlc2l6ZUNvbnRhY3RQb2ludFkgPSAwO1xuICByZXNpemFibGVFbGVtZW50czpSZXNpemFibGVFbGVtZW50W10gPSBbXTtcbiAgcmVzaXplRW5hYmxlZCAgICAgICA9IHRydWU7XG4gIHJlc2l6ZVN0YXJ0ZWQgICAgICAgPSBmYWxzZTtcbiAgcmVzaXplU3RhcnQgICAgIDogKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVzaXplSW5Qcm9ncmVzczogKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDsgIFxuICBib3VuZFJlc2l6ZVN0YXJ0OiAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkO1xuICBib3VuZFJlc2l6ZUluUHJvZ3Jlc3M6IChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIGJvdW5kUmVzaXplRW5kOiAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB2b2lkO1xuICAgXG4gIF9lbGVtZW50OkhUTUxFbGVtZW50OyBcbiAgYWN0UmVzaXplU3RyYXRlZ3kgICA9IFwic2VcIjtcbiAgXG5cbiAgQE91dHB1dCgpXG4gIHJlc2l6ZWRFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cblxuICAvLyBsaXN0IG9mIHJlc2l6ZXJzLCByZXNpemVycyBhcmUgc3BlY2lmaWVkIGJ5IGNsYXNzIG5hbWVcbiAgcmVzaXplcnNMaXN0OlJlc2l6ZXJJdGVtW10gPSAgWyBcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1ud1wiICwgcmVzaXplU3RyYXRlZ3kgOiBcIm53XCIgfSxcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1uXCIgICwgcmVzaXplU3RyYXRlZ3k6IFwiblwiICAgfSxcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1uZVwiICwgcmVzaXplU3RyYXRlZ3k6IFwibmVcIiAgfSxcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1lXCIgICwgcmVzaXplU3RyYXRlZ3k6IFwiZVwiICAgfSxcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1zZVwiICwgcmVzaXplU3RyYXRlZ3k6IFwic2VcIiAgfSxcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1zXCIgICwgcmVzaXplU3RyYXRlZ3k6IFwic1wiICAgfSxcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci1zd1wiICwgcmVzaXplU3RyYXRlZ3k6IFwic3dcIiAgfSxcbiAgICB7IGNsYXNzTmFtZSA6IFwicmVzaXplci13XCIgICwgcmVzaXplU3RyYXRlZ3k6IFwid1wiICAgfVxuICBdO1xuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGxheW91dE1hbmFnZXJTZXJ2aWNlOiBMYXlvdXRNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclNlcnZpY2U6UmVzaXplT2JzZXJ2ZXJTZXJ2aWNlKSB7ICAgICAgICAgICAgICBcbiAgICBcbiAgICB0aGlzLl9lbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMubGF5b3V0TWFuYWdlclNlcnZpY2UgPSBsYXlvdXRNYW5hZ2VyU2VydmljZTtcbiAgICBcbiAgICB0aGlzLnJlc2l6ZVN0YXJ0ID0gICAoZXZlbnQ6TW91c2VFdmVudHxUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAvL2dldCBtb3VzZS9maW5nZXIgWCBZIHBvc2l0aW9uc1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBpZih0aGlzLnJlc2l6ZVN0YXJ0ZWQpe1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnJlc2l6ZVN0YXJ0ZWQgPSB0cnVlO1xuICAgICAgY29uc3QgdG91Y2hMaXN0ID0gKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXM/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzOiBbXTtcbiAgICAgIGNvbnN0IGNsaWVudFggPSBldmVudC50eXBlID09PSAndG91Y2hzdGFydCcgPyB0b3VjaExpc3RbMF0/LmNsaWVudFggOiAoZXZlbnQgYXMgTW91c2VFdmVudCkuY2xpZW50WDtcbiAgICAgIGNvbnN0IGNsaWVudFkgPSBldmVudC50eXBlID09PSAndG91Y2hzdGFydCcgPyB0b3VjaExpc3RbMF0/LmNsaWVudFkgOiAoZXZlbnQgYXMgTW91c2VFdmVudCkuY2xpZW50WTtcbiAgICAgIHRoaXMucmVzaXplQ29udGFjdFBvaW50WCA9IGNsaWVudFg7XG4gICAgICB0aGlzLnJlc2l6ZUNvbnRhY3RQb2ludFkgPSBjbGllbnRZO1xuICAgICAgdGhpcy5vcGVuRG9jdW1lbnRMaXN0ZW5lcnNSZXNpemUoKTsgICAgICBcbiAgICAgIHRoaXMuc2V0dXBSZXNpemVTdHJhdGVneShldmVudCk7XG4gICAgfVxuICAgIFxuICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICogY2FsY3VhdGVzIGFuZCBzZXRzIHRoZSBuZXcgcG9zaXRpb25cbiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gICAgdGhpcy5yZXNpemVJblByb2dyZXNzID0gKGV2ZW50Ok1vdXNlRXZlbnR8VG91Y2hFdmVudCkgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAvL2dldCBtb3VzZS9maW5nZXIgWCBZIHBvc2l0aW9uc1xuICAgICAgY29uc3QgdG91Y2hMaXN0ID0gKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXMgPyAoZXZlbnQgYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlczogW107XG4gICAgICBjb25zdCBjbGllbnRYID0gZXZlbnQudHlwZSA9PT0gJ3RvdWNobW92ZScgPyB0b3VjaExpc3RbMF0/LmNsaWVudFggOiAoZXZlbnQgYXMgTW91c2VFdmVudCkuY2xpZW50WDtcbiAgICAgIGNvbnN0IGNsaWVudFkgPSBldmVudC50eXBlID09PSAndG91Y2htb3ZlJyA/IHRvdWNoTGlzdFswXT8uY2xpZW50WSA6IChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRZO1xuICAgICAgLy9jb25zdCBjbGllbnRYID0gIChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRYO1xuICAgICAgLy9jb25zdCBjbGllbnRZID0gIChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRZO1xuXG4gICAgICBjb25zdCBtb3ZlZCA9IHRoaXMucmVzaXplRnJvbVRvKHRoaXMuX2VsZW1lbnQsdGhpcy5yZXNpemVDb250YWN0UG9pbnRYLCB0aGlzLnJlc2l6ZUNvbnRhY3RQb2ludFksY2xpZW50WCxjbGllbnRZLCB0aGlzLmFjdFJlc2l6ZVN0cmF0ZWd5KTtcbiAgICAgIGlmKG1vdmVkKSB7XG4gICAgICAgIHRoaXMucmVzaXplQ29udGFjdFBvaW50WCA9IGNsaWVudFg7XG4gICAgICAgIHRoaXMucmVzaXplQ29udGFjdFBvaW50WSA9IGNsaWVudFk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYm91bmRSZXNpemVTdGFydCA9IHRoaXMucmVzaXplU3RhcnQuYmluZCh0aGlzKTtcbiAgICB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyA9IHRoaXMucmVzaXplSW5Qcm9ncmVzcy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuYm91bmRSZXNpemVFbmQgPSB0aGlzLnJlc2l6ZUVuZC5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVzaXplSW5Qcm9ncmVzcy5iaW5kKHRoaXMpO1xuICAgIHRoaXMuc2V0UmVzaXplcnModGhpcy5fZWxlbWVudCk7ICAgICAgICBcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmJvdW5kUmVzaXplU3RhcnQgPSB0aGlzLnJlc2l6ZVN0YXJ0LmJpbmQodGhpcyk7XG4gICAgdGhpcy5ib3VuZFJlc2l6ZUluUHJvZ3Jlc3MgPSB0aGlzLnJlc2l6ZUluUHJvZ3Jlc3MuYmluZCh0aGlzKTtcbiAgICB0aGlzLmJvdW5kUmVzaXplRW5kID0gdGhpcy5yZXNpemVFbmQuYmluZCh0aGlzKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VBbGxMaXN0ZW5lcnNSZXNpemUoKTsgICAgXG4gIH1cblxuICByZXNpemVFbmQoKXsgICBcbiAgICAvL3RoaXMuY2xvc2VEb2N1bWVudExpc3RlbmVyc1Jlc2l6ZSgpO1xuICAgIGlmKCF0aGlzLnJlc2l6ZVN0YXJ0ZWQpe1xuICAgICAgcmV0dXJuO1xuICAgIH0gICAgIFxuICAgIHRoaXMucmVzaXplU3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VBbGxMaXN0ZW5lcnNSZXNpemUoKTsgXG4gICAgdGhpcy5vcGVuRWxlbWVudExpc3RlbmVyc1Jlc2l6ZSgpO1xuICAgIGZpcmVFdmVudCh0aGlzLCBcInJlc2l6ZWRFbmRcIiwgWyckZXZlbnQnXSk7ICAgIFxuICB9XG4gIFxuXG4gIF9nZXRWaWV3UmVjdCgpIHtcbiAgICBjb25zdCB2aWV3ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyNjb250YWluZXJWaWV3Jyk7ICAvLyB3ZSBzaG91bGQgZ2V0IGhlcmUgdGhlIHBhcmVudCBvYmplY3Qgc2VsZWN0b3IgYXMgaW5wdXQgcGFyYW1ldGVyXG4gICAgaWYodmlldyl7XG4gICAgICByZXR1cm4gdmlldy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBET01SZWN0KDAsMCwwLDApO1xuICB9XG5cbi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICogZmluZCBpZiByZWN0YW5nbGUgMSBpcyBpbnNpZGUgcmVjdGFuZ2xlIDJcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBpc0luc2lkZVJlY3QocmVjdDE6RE9NUmVjdCwgcmVjdDI6RE9NUmVjdCkge1xuICAgIGlmKCFyZWN0MSB8fCAhcmVjdDIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgcmVjdDFJbnNpZGU6Ym9vbGVhbiA9IHJlY3QyLmxlZnQgPD0gcmVjdDEubGVmdFxuICAgICAgICAgICAgICAgICAgJiYgcmVjdDIudG9wIDw9IHJlY3QxLnRvcCBcbiAgICAgICAgICAgICAgICAgICYmIHJlY3QyLnJpZ2h0ID49IHJlY3QxLnJpZ2h0IFxuICAgICAgICAgICAgICAgICAgJiYgcmVjdDIuYm90dG9tID49IHJlY3QxLmJvdHRvbTtcblxuICAgIHJldHVybiByZWN0MUluc2lkZTtcbiAgfVxuICAgIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICogcmVzaXplIHJlY3RhbmdsZSBieSB4LCB5XG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgX3Jlc2l6ZVJlY3RhbmdsZShyZWN0OkRPTVJlY3QsIHJlc2l6ZVg6bnVtYmVyLCByZXNpemVZOm51bWJlciwgcmVzaXplU3RyYXRlZ3k6c3RyaW5nKSB7XG4gICAgaWYoIXJlY3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZihbJ253JywndycsICdzdyddLmluY2x1ZGVzKHJlc2l6ZVN0cmF0ZWd5KSkge1xuICAgICAgcmVjdC54ICs9IHJlc2l6ZVg7XG4gICAgICByZXNpemVYID0gcmVzaXplWCAqIC0xO1xuICAgIH1cblxuICAgIGlmKFsnbncnLCduJywgJ25lJ10uaW5jbHVkZXMocmVzaXplU3RyYXRlZ3kpKSB7XG4gICAgICByZWN0LnkgKz0gcmVzaXplWTtcbiAgICAgIHJlc2l6ZVkgPSByZXNpemVZICogLTE7XG4gICAgfVxuXG4gICAgaWYodHlwZW9mKHJlc2l6ZVgpID09PSAnbnVtYmVyJyAmJiAhWyduJywncyddLmluY2x1ZGVzKHJlc2l6ZVN0cmF0ZWd5KSkge1xuICAgICAgcmVjdC53aWR0aCArPSByZXNpemVYO1xuICAgIH1cblxuICAgIGlmKHR5cGVvZihyZXNpemVZKSA9PT0gJ251bWJlcicgJiYgIVsndycsJ2UnXS5pbmNsdWRlcyhyZXNpemVTdHJhdGVneSkpIHtcbiAgICAgIHJlY3QuaGVpZ2h0ICs9IHJlc2l6ZVk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlY3Q7XG4gIH1cblxuICBfbWF4SGVpZ2h0UmVzZXQob2JqOkhUTUxFbGVtZW50LCBlbGVtZW50UmVjdDpET01SZWN0KSB7ICAgIFxuICAgIHRoaXMucmVzaXplRnJvbVRvKG9iaiwgZWxlbWVudFJlY3QucmlnaHQsIGVsZW1lbnRSZWN0LmJvdHRvbSwgZWxlbWVudFJlY3QubGVmdCxlbGVtZW50UmVjdC50b3AsIFwic2VcIik7XG4gIH1cblxuICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICogcmVzaXplIG9iamVjdCBmcm9tIHt4LHl9IHRvIHt4LHl9IGJhc2VkIG9uIHJlc2l6ZSBzdHJhdGVneVxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIHJlc2l6ZUZyb21UbyAob2JqOkhUTUxFbGVtZW50LCBmcm9tWDpudW1iZXIsIGZyb21ZOm51bWJlciwgdG9YOm51bWJlcix0b1k6bnVtYmVyLCByZXNpemVTdHJhdGVneTpzdHJpbmcpe1xuICAgIGNvbnN0IHBvc1hEZWx0YSA9IHRvWCAtIGZyb21YO1xuICAgIGNvbnN0IHBvc1lEZWx0YSA9IHRvWSAtIGZyb21ZO1xuICAgIGNvbnN0IGVsZW1lbnQgPSBvYmogPz8gdGhpcy5fZWxlbWVudDtcbiAgICBjb25zdCBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgLy9jb25zdCB2aWV3UmVjdCA9IHRoaXMuX2dldFZpZXdSZWN0KCk7XG4gICAgY29uc3Qgdmlld1JlY3QgPSB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5nZXRQYXJlbnRBcHBSZWN0KCk7XG4gICAgXG4gICAgbGV0IGNoZWNrQm91bmRhcmllcyA9IHRydWU7XG5cbiAgICByZXNpemVTdHJhdGVneSA9IHJlc2l6ZVN0cmF0ZWd5IHx8IFwic2VcIjtcblxuICAgIC8vaWYgdGhlIG9iamVjdCBpcyBvdXRzaWRlIHRoZSB2aWV3IHJlY3QgYmVjYXVzZSBpdCdzIGJpZ2dlciwgZG8gbm90IGNoZWNrIGJvdW5kYXJpZXMsXG4gICAgLy9hbGxvdyBtb3Zpbmcgb3V0c2lkZSB0aGUgdmlldyByZWN0XG4gICAgaWYodGhpcy5pc0luc2lkZVJlY3QoZWxlbWVudFJlY3QsIHZpZXdSZWN0KSA9PT0gZmFsc2UpIHtcbiAgICAgIGNoZWNrQm91bmRhcmllcyA9IGZhbHNlOyBcbiAgICB9XG5cbiAgICB0aGlzLl9yZXNpemVSZWN0YW5nbGUoZWxlbWVudFJlY3QsIHBvc1hEZWx0YSwgcG9zWURlbHRhLCByZXNpemVTdHJhdGVneSk7XG5cbiAgICBpZiAoY2hlY2tCb3VuZGFyaWVzICYmIHRoaXMuaXNJbnNpZGVSZWN0KGVsZW1lbnRSZWN0LCB2aWV3UmVjdCkgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xuICAgIGxldCB0b3AgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLnRvcCwgMTApO1xuICAgIGxldCBsZWZ0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5sZWZ0LCAxMCk7XG4gICAgbGV0IHdpZHRoID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS53aWR0aCwgMTApO1xuICAgIGxldCBoZWlnaHQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmhlaWdodCwgMTApO1xuICAgIFxuICAgIGlmKFsnbncnLCd3JywgJ3N3J10uaW5jbHVkZXMocmVzaXplU3RyYXRlZ3kpKSB7XG4gICAgICAgbGVmdCA9IGxlZnQgKyBwb3NYRGVsdGE7ICAgICAgXG4gICAgfVxuXG4gICAgaWYoWydudycsJ24nLCAnbmUnXS5pbmNsdWRlcyhyZXNpemVTdHJhdGVneSkpIHtcbiAgICAgIHRvcCA9IHRvcCAgKyAgcG9zWURlbHRhOyAgICAgIFxuICAgIH1cblxuICAgIGlmKCFbJ24nLCdzJ10uaW5jbHVkZXMocmVzaXplU3RyYXRlZ3kpKSB7XG4gICAgICB3aWR0aCA9IGVsZW1lbnRSZWN0LndpZHRoO1xuICAgIH1cbiAgICBcbiAgICBpZiggdmlld1JlY3QuaGVpZ2h0IDwgZWxlbWVudFJlY3QuaGVpZ2h0ICl7XG4gICAgICB0aGlzLl9tYXhIZWlnaHRSZXNldChlbGVtZW50LCBlbGVtZW50UmVjdCk7XG4gICAgfVxuICAgIGVsc2UgaWYoIVsndycsJ2UnXS5pbmNsdWRlcyhyZXNpemVTdHJhdGVneSkpIHtcbiAgICAgIGhlaWdodCA9IGVsZW1lbnRSZWN0LmhlaWdodDtcbiAgICB9XG5cbiAgICBcbiAgICBlbGVtZW50LnN0eWxlLnRvcCAgICA9IHRvcCAgICsgJ3B4JztcbiAgICBlbGVtZW50LnN0eWxlLmxlZnQgICA9IGxlZnQgICsgJ3B4JztcbiAgICBlbGVtZW50LnN0eWxlLndpZHRoICA9IHdpZHRoICsgJ3B4JztcbiAgICBlbGVtZW50LnN0eWxlLmhlaWdodCAgPSBoZWlnaHQgKyAncHgnO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIHJlc2l6ZSBzdGFydCBhdCB0aGUgbGF5b3V0IG1hbmFnYWVyXG4gICAqIG9wZW4gZG9jdW1lbnQgbGlzdGVuZXJzXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgXG4gICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogc2V0IHRoZSBlbGVtZW50cyB1c2VkIGZvciByZXNpemluZ1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIHNldFJlc2l6ZXJzKGVsZW1lbnQ6SFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCBzZXRSZXNpemFibGVFbGVtZW50cyA9ICgpID0+IHtcbiAgICAgIGxldCByZXNpemFibGVFbGVtZW50czpSZXNpemFibGVFbGVtZW50W10gPSBbXTtcbiAgICAgIC8vIGdldCBkb20gZWxlbWVudHMgb2YgYWxsIHJlc2l6ZXJzXG4gICAgICB0aGlzLnJlc2l6ZXJzTGlzdC5mb3JFYWNoKCBpdGVtID0+IHtcbiAgICAgICAgY29uc3QgcmVzaXplRWxlbXMgPSAgZWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGl0ZW0uY2xhc3NOYW1lKTtcbiAgICAgICAgaWYoIHJlc2l6ZUVsZW1zPy5sZW5ndGggKSB7XG4gICAgICAgICAgLy8gc2V0IHJlc2l6ZSBzdHJhdGVneSBpbiBlYWNoIGVsZW1lbnQgc28gd2Uga25vdyBpbiB3aGljaCBkaXJlY3Rpb24gdG8gcmVzaXplXG4gICAgICAgICAgY29uc3QgZGVjb3JhdGVkUmVzaXplRWxlbXM6IFJlc2l6YWJsZUVsZW1lbnRbXSA9IEFycmF5LmZyb20ocmVzaXplRWxlbXMpLm1hcCggZWxlbSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNpemFibGVFbGVtID0gZWxlbSBhcyBSZXNpemFibGVFbGVtZW50O1xuICAgICAgICAgICAgcmVzaXphYmxlRWxlbS5yZXNpemVTdHJhdGVneSA9IGl0ZW0ucmVzaXplU3RyYXRlZ3k7XG4gICAgICAgICAgICByZXR1cm4gcmVzaXphYmxlRWxlbTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIC8vIGFkZCBpdCB0byBsaXN0IG9mIGFsbCByZXNpemVyc1xuICAgICAgICAgIHJlc2l6YWJsZUVsZW1lbnRzID0gWy4uLnJlc2l6YWJsZUVsZW1lbnRzLCAuLi5kZWNvcmF0ZWRSZXNpemVFbGVtc107XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJlc2l6YWJsZUVsZW1lbnRzID0gIFsuLi5yZXNpemFibGVFbGVtZW50c107XG4gICAgICB0aGlzLm9wZW5FbGVtZW50TGlzdGVuZXJzUmVzaXplKCk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCk9PntcbiAgICAgIHNldFJlc2l6YWJsZUVsZW1lbnRzKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAqIG9wZW4gbW91c2Vkb3duLCB0b3VjaHN0YXJ0IGxpc3RlbmVycyBvbiBhbGwgZWxlbWVudHMgYWxsb3dlZCBmb3IgcmVzaXppbmdcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBvcGVuRWxlbWVudExpc3RlbmVyc1Jlc2l6ZSgpIHtcbiAgICB0aGlzLnJlc2l6YWJsZUVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuYm91bmRSZXNpemVTdGFydCk7XG4gICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmJvdW5kUmVzaXplU3RhcnQpO1xuICAgIH0pO1xuICB9XG4gLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogb3BlbiBtb3VzZXVwLCB0b3VjaGVuZCBhbmQgbW91c2Vtb3ZlLCB0b3VjaG1vdmUgb24gZG9jdW1lbnRcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBvcGVuRG9jdW1lbnRMaXN0ZW5lcnNSZXNpemUoKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuYm91bmRSZXNpemVFbmQpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5ib3VuZFJlc2l6ZUVuZCk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ib3VuZFJlc2l6ZUluUHJvZ3Jlc3MpO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuYm91bmRSZXNpemVJblByb2dyZXNzKTsgICAgXG4gIH1cbiBcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBjbG9zZSBtb3VzZXVwLCB0b3VjaGVuZCBhbmQgbW91c2Vtb3ZlLCB0b3VjaG1vdmUgb24gZG9jdW1lbnRcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBjbG9zZURvY3VtZW50TGlzdGVuZXJzUmVzaXplKCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuYm91bmRSZXNpemVJblByb2dyZXNzKTtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuYm91bmRSZXNpemVFbmQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5ib3VuZFJlc2l6ZUVuZCk7XG4gIH1cblxuLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBjbG9zZSBtb3VzZWRvd24sIHRvdWNoc3RhcnQgbGlzdGVuZXJzIG9uIGFsbCBlbGVtZW50cyBhbGxvd2VkIGZvciByZXNpemluZ1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIGNsb3NlRWxlbWVudExpc3RlbmVyc1Jlc2l6ZSgpIHtcbiAgICB0aGlzLnJlc2l6YWJsZUVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMuYm91bmRSZXNpemVTdGFydCk7XG4gICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLmJvdW5kUmVzaXplU3RhcnQpO1xuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmJvdW5kUmVzaXplSW5Qcm9ncmVzcyk7XG4gICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuYm91bmRSZXNpemVJblByb2dyZXNzKTsgICAgICBcbiAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuYm91bmRSZXNpemVFbmQpO1xuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMuYm91bmRSZXNpemVFbmQpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBjbG9zZSBhbGwgbGlzdGVuZXJzXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgY2xvc2VBbGxMaXN0ZW5lcnNSZXNpemUoKSB7XG4gICAgdGhpcy5jbG9zZUVsZW1lbnRMaXN0ZW5lcnNSZXNpemUoKTtcbiAgICB0aGlzLmNsb3NlRG9jdW1lbnRMaXN0ZW5lcnNSZXNpemUoKTtcbiAgfVxuXG4gLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogc2V0dXAgYWN0dWFsIHJlc2l6ZSBzdHJhdGVneVxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIHNldHVwUmVzaXplU3RyYXRlZ3koZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XG4gICAgaWYoICFldmVudCApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBmaW5kIG9uIHdoaWNoIGVsZW1lbnQgcmVzaXplIHN0YXJ0ZWQgc28gd2Uga25vdyBpbiB3aGljaCBkaXJlY3Rpb24gdG8gcmVzaXplXG4gICAgbGV0IHJlc2l6ZVN0cmF0ZWd5OnN0cmluZyA9IFwic2VcIjtcbiAgICBjb25zdCAgcmVzaXplU291cmNlRWxlbSA9IGV2ZW50Py50YXJnZXQ7XG5cbiAgICBpZiggcmVzaXplU291cmNlRWxlbSApIHtcbiAgICAgIGNvbnN0ICBmb3VuZEVsZW0gPSB0aGlzLnJlc2l6YWJsZUVsZW1lbnRzLmZpbmQoIGl0ZW0gPT4gaXRlbSA9PT0gcmVzaXplU291cmNlRWxlbSApO1xuICAgICAgaWYgKGZvdW5kRWxlbT8ucmVzaXplU3RyYXRlZ3kpIHtcbiAgICAgICAgcmVzaXplU3RyYXRlZ3kgPSBmb3VuZEVsZW0/LnJlc2l6ZVN0cmF0ZWd5O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYWN0UmVzaXplU3RyYXRlZ3kgPSAgcmVzaXplU3RyYXRlZ3k7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy1vcGFjaXR5LXByb3BlcnRpZXMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2ludGVyZmFjZXMvYmltcGx1cy1vcGFjaXR5LXByb3BlcnRpZXMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE9wYWNpdHlQcm9wZXJ0aWVzIHtcbiAgaXNPcGFxdWU6IGJvb2xlYW47XG4gIGlzU2VtaU9wYXF1ZTogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmltcGx1cy12aXNpYmlsaXR5LXByb3BlcnRpZXMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL2ludGVyZmFjZXMvYmltcGx1cy12aXNpYmlsaXR5LXByb3BlcnRpZXMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFZpc2liaWxpdHlQcm9wZXJ0aWVzIHtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBpc1NlbWlWaXNpYmxlOiBib29sZWFuO1xufVxuIl19
|
|
@@ -362,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
362
362
|
providedIn: 'root'
|
|
363
363
|
}]
|
|
364
364
|
}], ctorParameters: () => [{ type: i1.ResizeObserverService }, { type: i2.LocalStorageService }] });
|
|
365
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWlDdkMsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixxQkFBMkMsRUFDM0MsbUJBQXdDO1FBRHhDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUY1RCxxQkFBZ0IsR0FBeUMsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxDQUFBO1FBSTdGLG9CQUFlLEdBQXVCLEVBQUUsQ0FBQztRQUtqRCxXQUFNLEdBQVUscUJBQXFCLENBQUM7SUFObEMsQ0FBQztJQUdMLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUlIOztrRkFFOEU7SUFDNUUsY0FBYyxDQUFDLEdBQWMsRUFBRSxFQUFTLEVBQUUsUUFBMkIsRUFBRSxnQkFBd0IsRUFBQyxPQUFjLEdBQUcsRUFBRSxNQUFhLEdBQUcsRUFBQyxRQUFlLENBQUMsRUFBRSxTQUFnQixDQUFDO1FBQ3JLLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBRyxNQUFNLEVBQUMsQ0FBQztnQkFDVCxVQUFVLEdBQUcsS0FB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Q0FBQztRQUN2RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUNiLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUMxRCxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7OEdBOVhVLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVzaXplT2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSAgIGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbi8vaW1wb3J0IHsgSXRlbXNMaXN0IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QvbGliL2l0ZW1zLWxpc3QnO1xyXG4vL2ltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dE1hbmFnZXJJdGVtIHtcclxuICBlbGVtZW50OkVsZW1lbnRSZWY7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzZWxlY3Rvcj86c3RyaW5nO1xyXG4gIGlzQ29sbGFwc2VkOmJvb2xlYW47XHJcbiAgcmVtZW1iZXJQb3NpdGlvbj86Ym9vbGVhblxyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgdG9wPzpudW1iZXI7XHJcbiAgd2lkdGg/Om51bWJlcjtcclxuICBoZWlnaHQ/Om51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBpc0NvbGxhcHNlZDpib29sZWFuOyAgXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICB0b3A/Om51bWJlcjsgIFxyXG4gIHdpZHRoPzpudW1iZXI7XHJcbiAgaGVpZ2h0PzpudW1iZXI7XHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgTGF5b3V0TWFuYWdlckNvbmZpZyB7XHJcbiAgW2tleTpzdHJpbmddOiBMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbVxyXG59XHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExheW91dE1hbmFnZXJTZXJ2aWNlIHtcclxuXHJcbiAgcmVnaXN0ZXJlZEl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PExheW91dE1hbmFnZXJJdGVtW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXlvdXRNYW5hZ2VySXRlbVtdPihbXSlcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTpSZXNpemVPYnNlcnZlclNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlIDpMb2NhbFN0b3JhZ2VTZXJ2aWNlIFxyXG4gICkgeyB9XHJcbiAgcHJpdmF0ZSByZWdpc3RlcmVkSXRlbXM6TGF5b3V0TWFuYWdlckl0ZW1bXSA9IFtdO1xyXG4gIFxyXG4gIGdldCBSZWdpc3RlcmVkSXRlbXMoKTogTGF5b3V0TWFuYWdlckl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkSXRlbXM7XHJcbiAgfVxyXG4gIENPTkZJRzpzdHJpbmcgPSAnbGF5b3V0TWFuYWdlckNvbmZpZyc7XHJcblxyXG4gIFxyXG4vKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogcmVnaXN0ZXIgb2JqZWN0LiBvYmplY3QgbXVzdCBoYXZlIHVuaXF1ZSBpZCBvciBlbGVtZW50SWRcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgcmVnaXN0ZXJPYmplY3Qob2JqOkVsZW1lbnRSZWYsIGlkOnN0cmluZywgc2VsZWN0b3I6c3RyaW5nIHwgdW5kZWZpbmVkLCByZW1lbWJlclBvc2l0aW9uOmJvb2xlYW4sbGVmdDpudW1iZXIgPSAxMDAsIHRvcDpudW1iZXIgPSAxMDAsd2lkdGg6bnVtYmVyID0gMCwgaGVpZ2h0Om51bWJlciA9IDApIHtcclxuICAgIGxldCBmb3VuZEluZGV4ID0gLTE7XHJcbiAgICBpZih0aGlzLnJlZ2lzdGVyZWRJdGVtcy5zb21lKChpdGVtLGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmV0dmFsID0gaXRlbS5pZCA9PT0gaWQ7XHJcbiAgICAgICAgaWYocmV0dmFsKXtcclxuICAgICAgICAgIGZvdW5kSW5kZXggPSBpbmRleDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldHZhbDtcclxuICAgICAgfSkpe1xyXG4gICAgICBpZihmb3VuZEluZGV4ID49IDApe1xyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLnNwbGljZShmb3VuZEluZGV4LDEpO1xyXG4gICAgICB9ICAgICAgXHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdJdGVtOiBMYXlvdXRNYW5hZ2VySXRlbSA9IHsgXHJcbiAgICAgIGVsZW1lbnQ6b2JqLFxyXG4gICAgICBpZDppZCxcclxuICAgICAgc2VsZWN0b3I6c2VsZWN0b3IsXHJcbiAgICAgIHJlbWVtYmVyUG9zaXRpb246ISFyZW1lbWJlclBvc2l0aW9uLFxyXG4gICAgICBsZWZ0OmxlZnQsXHJcbiAgICAgIHRvcDp0b3AsXHJcbiAgICAgIHdpZHRoOndpZHRoLFxyXG4gICAgICBoZWlnaHQ6aGVpZ2h0LFxyXG4gICAgICBpc0NvbGxhcHNlZDogZmFsc2UgICAgXHJcbiAgICAgfTtcclxuXHJcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcy5wdXNoKG5ld0l0ZW0pO1xyXG4gICAgdGhpcy5yZWdpc3RlcmVkSXRlbXMkLm5leHQodGhpcy5yZWdpc3RlcmVkSXRlbXMpO1xyXG4gICAgdGhpcy5faW5pdE9iamVjdChuZXdJdGVtKTtcclxuICB9XHJcbiAgXHJcbiAgX2luaXRPYmplY3Qob2JqOkxheW91dE1hbmFnZXJJdGVtKXtcclxuICAgIHRoaXMuX2FkanVzdE9iamVjdEJ5Q29uZmlnKG9iaik7XHJcbiAgICB0aGlzLl9hZGp1c3RPYmplY3RCeVdpbmRvd1NpemUob2JqKTtcclxuICAgIFxyXG4gIH1cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZ2V0IG9iamVjdCBjb25maWd1cmF0aW9uXHJcbiAgKiByZXR1cm4ge2xlZnQsIHRvcCwgd2lkdGgsIGhlaWd0aH1cclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2dldE9iamVjdENvbmZpZyhvYmo6TGF5b3V0TWFuYWdlckl0ZW0pOkxheW91dE1hbmFnZXJDb25maWdJdGVtfG51bGwge1xyXG4gICAgaWYoIW9iail7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlnVmFsdWUgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLkNPTkZJRyk7XHJcbiAgICBjb25zdCAgY29uZmlnID0gY29uZmlnVmFsdWUgPyBKU09OLnBhcnNlKGNvbmZpZ1ZhbHVlKSA6IHt9O1xyXG4gICAgY29uc3QgIG9iaklkID0gb2JqLmlkIDtcclxuICAgIGxldCBjb25maWdPYmogPSBjb25maWdbb2JqSWRdO1xyXG4gICAgaWYoIWNvbmZpZ09iaikge1xyXG4gICAgICBjb25maWdPYmogPSB7aWQ6b2JqSWQsbGVmdDpvYmoubGVmdCx0b3A6b2JqLnRvcCx3aWR0aDpvYmoud2lkdGgsaGVpZ2h0Om9iai5oZWlnaHR9OyAgICAgICAgXHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29uZmlnT2JqO1xyXG4gIH1cclxuXHJcbiAgX2FkanVzdE9iamVjdEJ5Q29uZmlnKG9iajpMYXlvdXRNYW5hZ2VySXRlbSl7XHJcbiAgICBjb25zdCBjb25maWc6TGF5b3V0TWFuYWdlckNvbmZpZ0l0ZW18bnVsbCA9IHRoaXMuX2dldE9iamVjdENvbmZpZyhvYmopO1xyXG4gICAgaWYoIWNvbmZpZyl7XHJcbiAgICAgIHJldHVybjsgICAgICBcclxuICAgIH1cclxuICAgIGNvbnN0ICBwYXJlbnRFbGVtZW50ID0gdGhpcy5fZ2V0RG9tUGFyZW50RWxlbWVudChvYmopO1xyXG4gICAgY29uc3QgIGludGVybmFsRWxlbWVudCA9IHRoaXMuX2dldERvbUludGVybmFsRWxlbWVudChvYmosJycpO1xyXG4gICAgaWYoIXBhcmVudEVsZW1lbnQgfHwgIWludGVybmFsRWxlbWVudCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHBhcmVudEVsZW1lbnQuc3R5bGUubGVmdCA9IChjb25maWcubGVmdCkgKyAncHgnO1xyXG4gICAgcGFyZW50RWxlbWVudC5zdHlsZS50b3AgPSAoY29uZmlnLnRvcCkgKyAncHgnO1xyXG4gICAgaWYoY29uZmlnLndpZHRoICYmIGNvbmZpZy53aWR0aCA+IDApe1xyXG4gICAgICBpbnRlcm5hbEVsZW1lbnQuc3R5bGUud2lkdGggPSBjb25maWcud2lkdGggKyAncHgnO1xyXG4gICAgfVxyXG4gICAgaWYoY29uZmlnLmhlaWdodCAmJiBjb25maWcuaGVpZ2h0ID4gMCl7XHJcbiAgICAgIGludGVybmFsRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBjb25maWcuaGVpZ2h0ICsgJ3B4JztcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5jaGVja1Bvc2l0aW9uKG9iai5pZCxcIlwiLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICAgIFxyXG4gIH1cclxuXHJcbiAgX2FkanVzdE9iamVjdEJ5V2luZG93U2l6ZShvYmo6TGF5b3V0TWFuYWdlckl0ZW0pe1xyXG4gICAgdGhpcy5jaGVja1Bvc2l0aW9uKG9iai5pZCxcIlwiLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICBcclxuICB9XHJcbiAgXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHJldHVybnMgb2JqZWN0ICByZWdpc3RlcmVkIGluIHRoZSBsYXlvdXQgbWFuYWdlciBcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgZ2V0SXRlbShpZDogc3RyaW5nICk6TGF5b3V0TWFuYWdlckl0ZW18bnVsbCB7ICAgXHJcbiAgICBsZXQgZm91bmRJdGVtOkxheW91dE1hbmFnZXJJdGVtfG51bGwgPSBudWxsO1xyXG4gICAgdGhpcy5yZWdpc3RlcmVkSXRlbXMuZm9yRWFjaChpdGVtID0+e1xyXG4gICAgICBpZihpdGVtLmlkID09PSBpZCl7XHJcbiAgICAgICAgZm91bmRJdGVtID0gaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm91bmRJdGVtO1xyXG4gIH1cclxuXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHNldCBvYmplY3QgY29uZmlndXJhdGlvblxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfc2V0T2JqZWN0Q29uZmlnKG9iajpMYXlvdXRNYW5hZ2VySXRlbSwgbGVmdDpudW1iZXIsdG9wOm51bWJlcix3aWR0aDpudW1iZXIsaGVpZ2h0Om51bWJlcikge1xyXG4gICAgY29uc3Qgb2JqSWQgPSBvYmo/LmlkIDtcclxuICAgIGlmICghb2JqSWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGNvbmZpZyA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRPYmplY3QodGhpcy5DT05GSUcpIGFzIExheW91dE1hbmFnZXJDb25maWc7XHJcbiAgICAvL2xldCBjb25maWcgPSBjb25maWdWYWx1ZSAmJiBKU09OLnBhcnNlKGNvbmZpZ1ZhbHVlKSBhcyBMYXlvdXRNYW5hZ2VyQ29uZmlnO1xyXG4gICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgY29uZmlnID0ge307XHJcbiAgICB9XHJcbiAgICBpZihvYmo/LmlzQ29sbGFwc2VkKXsgIC8vIGRvIG5vdCBvdmVydGFrZSBjb2xsYXBzZWQgc2l6ZVxyXG4gICAgICBpZiAoIWNvbmZpZ1tvYmpJZF0pIHsgICAgICAgIFxyXG4gICAgICAgIGNvbmZpZ1tvYmpJZF0gPSBvYmo7XHJcbiAgICAgIH1cclxuICAgICAgY29uZmlnW29iaklkXS5sZWZ0ID0gbGVmdDtcclxuICAgICAgY29uZmlnW29iaklkXS50b3AgID0gdG9wO1xyXG4gICAgICAvL2NvbmZpZ1tvYmpJZF0ud2lkdGggPSB3aWR0aDtcclxuICAgICAgLy9jb25maWdbb2JqSWRdLmhlaWdodCA9IGhlaWdodCA7XHJcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRPYmplY3QodGhpcy5DT05GSUcsIGNvbmZpZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdJdGVtIDpMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbSA9IHtcclxuICAgICAgaWQ6IG9iaklkLFxyXG4gICAgICBpc0NvbGxhcHNlZDogZmFsc2UsXHJcbiAgICAgIGxlZnQ6IGxlZnQsXHJcbiAgICAgIHRvcDogdG9wLFxyXG4gICAgICB3aWR0aDogd2lkdGgsXHJcbiAgICAgIGhlaWdodDogaGVpZ2h0XHJcbiAgICB9O1xyXG4gICAgY29uZmlnW29iaklkXSA9IG5ld0l0ZW07XHJcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQ09ORklHLGNvbmZpZyk7XHJcbiAgfVxyXG4gIFxyXG4gIGdldERvbVBhcmVudEVsZW1lbnQoaWQ6c3RyaW5nICk6SFRNTEVsZW1lbnR8bnVsbCB7XHJcbiAgICBjb25zdCBpdGVtOkxheW91dE1hbmFnZXJJdGVtfG51bGwgPSB0aGlzLmdldEl0ZW0oaWQpO1xyXG4gICAgaWYoaXRlbSl7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXREb21QYXJlbnRFbGVtZW50KGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBfZ2V0RG9tUGFyZW50RWxlbWVudChpdGVtOkxheW91dE1hbmFnZXJJdGVtICk6SFRNTEVsZW1lbnR8bnVsbCB7XHJcbiAgICBsZXQgZWxlbWVudDpIVE1MRWxlbWVudDtcclxuICAgIGlmKGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uc2hhZG93Um9vdCl7XHJcbiAgICAgIGVsZW1lbnQgPSBpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihpdGVtLnNlbGVjdG9yKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGVsZW1lbnQgPSBpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7IFxyXG4gICAgfVxyXG4gICAgaWYoIWVsZW1lbnQpe1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdfZ2V0RG9tUGFyZW50RWxlbWVudDogbWlzc2luZyBlbGVtZW50Jyk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGVsZW1lbnQ7ICAgIFxyXG4gIH1cclxuXHJcbiAgX2dldERvbUludGVybmFsRWxlbWVudChpdGVtOkxheW91dE1hbmFnZXJJdGVtLHNlbGVjdG9yOnN0cmluZyB8IHVuZGVmaW5lZCApOkhUTUxFbGVtZW50fG51bGwge1xyXG4gICAgY29uc3QgZWxlbWVudDpIVE1MRWxlbWVudCA9IGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uc2hhZG93Um9vdCB8fCBpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7ICAgIFxyXG4gICAgaWYoIWVsZW1lbnQpe1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdfZ2V0RG9tSW50ZXJuYWxFbGVtZW50OiBtaXNzaW5nIGVsZW1lbnQnKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBjb25zdCBteVNlbGVjdG9yID1zZWxlY3RvciAmJiBzZWxlY3Rvcj8ubGVuZ3RoID4gMCA/c2VsZWN0b3I6aXRlbS5zZWxlY3RvcjsgICBcclxuICAgIGNvbnN0IHJldHZhbDogSFRNTEVsZW1lbnR8bnVsbD0gbXlTZWxlY3Rvcj9lbGVtZW50LnF1ZXJ5U2VsZWN0b3IobXlTZWxlY3Rvcik6ZWxlbWVudDtcclxuICAgIGlmKCFyZXR2YWwpe1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBfZ2V0RG9tSW50ZXJuYWxFbGVtZW50OiBzZWxlY3Rpb24gb2YgZWxlbWVudCAke2VsZW1lbnR9ICBmYWlsZWQgd2l0aCBzZWxlY3RvciAke215U2VsZWN0b3J9YCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0dmFsO1xyXG4gIH1cclxuXHJcblxyXG4gIF9nZXRFbGVtZW50UmVjdChpdGVtOkxheW91dE1hbmFnZXJJdGVtLHNlbGVjdG9yOnN0cmluZyB8IHVuZGVmaW5lZCAscGFyZW50UmVjdGFuZ2xlOkRPTVJlY3QgfHVuZGVmaW5lZCApOkRPTVJlY3QgfCBudWxse1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRPYmogOiBIVE1MRWxlbWVudHxudWxsID0gdGhpcy5fZ2V0RG9tSW50ZXJuYWxFbGVtZW50KGl0ZW0sc2VsZWN0b3IpO1xyXG4gICAgaWYoIXNlbGVjdGVkT2JqKXtcclxuICAgICAgY29uc29sZS5lcnJvcignX2dldEVsZW1lbnRSZWN0OiBtaXNzaW5nIHNlbGVjdGVkIG9iamVjdCcpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwYXJlbnRSZWN0OkRPTVJlY3QgPSAgcGFyZW50UmVjdGFuZ2xlIHx8ICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5nZXRQYXJlbnRBcHBSZWN0KCk7XHJcbiAgICBpZiggIXBhcmVudFJlY3QgfHwgIHBhcmVudFJlY3Q/LndpZHRoPD0xIHx8IHBhcmVudFJlY3Q/LmhlaWdodDw9MSApIHtcclxuICAgICAgY29uc29sZS5sb2coJ19nZXRFbGVtZW50UmVjdDogbWlzc2luZyBwYXJlbnQgcmVjdCcpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgIGVsZW1lbnRSZWN0OkRPTVJlY3R8bnVsbCA9IHNlbGVjdGVkT2JqLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYoIWVsZW1lbnRSZWN0KXtcclxuICAgICAgY29uc29sZS5lcnJvcignX2dldEVsZW1lbnRSZWN0OiBtaXNzaW5nIGJvdW5kaW5nIHJlY3QnKTtcclxuICAgIH1cclxuICAgIHJldHVybiBlbGVtZW50UmVjdDtcclxuICB9XHJcblxyXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGVsZW1lbnQgb3IgZWxlbWVudCB3aXRoIGFkZGl0aW9uYWwgc2VsZWN0aW9uIG9mIHN1YmVsZW1lbnQgaXMgcGxhY2VkIHdpdGhpbiB0aGUgZ2l2ZSByZWN0YW5nbGVcclxuICAvLyBpZiBub3QgdGhlbiBjYWxjdWxhdGVzIHRoZSBvZmZzZXQgdG8gYmUgbW92ZWQgdG8gZml0IGluXHJcbiAgY2hlY2tQb3NpdGlvbihpZDpzdHJpbmcsc2VsZWN0b3I6c3RyaW5nLHBhcmVudFJlY3RhbmdsZTpET01SZWN0fHVuZGVmaW5lZCAsZGVsdGFYOm51bWJlcixkZWx0YVk6bnVtYmVyLGZvcmNlQ2hlY2s6Ym9vbGVhbiA9IGZhbHNlKXtcclxuICAgIGlmKCFpZCl7XHJcbiAgICAgIHJldHVybiB7ZGVsdGFYOjAsZGVsdGFZOjB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZTEgPSB0aGlzLmdldEl0ZW0oaWQpO1xyXG4gICAgaWYoIWUxKXtcclxuICAgICAgcmV0dXJuIHtkZWx0YVg6MCxkZWx0YVk6MH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJlbnRSZWN0OkRPTVJlY3QgPSAgcGFyZW50UmVjdGFuZ2xlIHx8ICB0aGlzLnJlc2l6ZU9ic2VydmVyU2VydmljZS5nZXRQYXJlbnRBcHBSZWN0KCk7XHJcbiAgICBjb25zdCBlbGVtZW50UmVjdDpET01SZWN0IHwgbnVsbCA9IHRoaXMuX2dldEVsZW1lbnRSZWN0KGUxLHNlbGVjdG9yLHBhcmVudFJlY3QpO1xyXG4gICAgaWYoIWVsZW1lbnRSZWN0KXtcclxuICAgICAgY29uc29sZS5lcnJvcignY2hlY2tQb3NpdGlvbjogbWlzc2luZyBlbGVtZW50UmVjdCcpO1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYoIWVsZW1lbnRSZWN0Py53aWR0aCB8fCAhZWxlbWVudFJlY3Q/LmhlaWdodCl7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2NoZWNrUG9zaXRpb246ZWxlbWVudCByZWN0IGVtcHR5ICcpO1xyXG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcclxuICAgIH0gXHJcbiAgICBcclxuICAgIGxldCBjaGVja0FsbCA9IHRydWU7XHJcbiAgICBpZihwYXJlbnRSZWN0Py53aWR0aCA8IDIgIHx8IHBhcmVudFJlY3Q/LmhlaWdodCA8IDIpeyAgLy8gZW1wdHkgcGFyZW50IHJlY3QgLCAoYWZ0ZXIgaW5pdCBiZWZvcmUgZmlyc3QgdXNlZnVsbCBpbmZvKSBub3RoaW5nIHRvIGNoZWNrICAgICAgIFxyXG4gICAgICBjaGVja0FsbCA9IGZhbHNlOyAgICAgIFxyXG4gICAgfSBcclxuICAgIGlmKGNoZWNrQWxsKXtcclxuICAgICAgbGV0IGNoZWNrQm91bmRhcmllcyA9IHRydWU7XHJcbiAgICAgIGlmKHRoaXMuX2lzSW5zaWRlUmVjdChlbGVtZW50UmVjdCwgcGFyZW50UmVjdCkgPT09IGZhbHNlICYmICFmb3JjZUNoZWNrKSB7XHJcbiAgICAgICAgY2hlY2tCb3VuZGFyaWVzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgLy8gY29weSBvZiByZWFsIGVsZW1lbnQgcmVjdGFuZ2xlIHRvIHBlcmZvcm0gY2FsY3VsYXRpb24gb3ZlciBiZWZvcmUgc2V0IHRvIHRoZSByZWFsIGVsZW1lbnRcclxuICAgICAgY29uc3QgZWxlbWVudERPTVJlY3QgPSBET01SZWN0LmZyb21SZWN0KGVsZW1lbnRSZWN0KTtcclxuXHJcbiAgICAgIC8vc2V0IHRoZSBlbGVtZW50IHJlY3RhbmdsZSBieSBkZWx0YXNcclxuICAgICAgdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XHJcblxyXG4gICAgICBpZihjaGVja0JvdW5kYXJpZXMpIHtcclxuICAgICAgICBpZih0aGlzLl9pc0luc2lkZVJlY3QoZWxlbWVudERPTVJlY3QsIHBhcmVudFJlY3QpID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgY29uc3QgIG5ld0VsZW1lbnRQb3MgPSB0aGlzLmdldEFsaWduZWRQb3NpdGlvbihlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCk7XHJcbiAgICAgICAgICBkZWx0YVggPSBuZXdFbGVtZW50UG9zLnggLSBlbGVtZW50UmVjdC54O1xyXG4gICAgICAgICAgZGVsdGFZID0gbmV3RWxlbWVudFBvcy55IC0gZWxlbWVudFJlY3QueTtcclxuICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVJlY3RhbmdsZShlbGVtZW50RE9NUmVjdCwgZGVsdGFYLCBkZWx0YVkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5faXNJbnNpZGVMZWZ0VG9wUmVjdChwYXJlbnRSZWN0LCBlbGVtZW50RE9NUmVjdCkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICBjb25zdCBuZXdFbGVtZW50UG9zID0gdGhpcy5fZ2V0QWxpZ25lZExlZnRUb3BQb3NpdGlvbihlbGVtZW50RE9NUmVjdCwgcGFyZW50UmVjdCk7XHJcbiAgICAgICAgICBkZWx0YVggPSBuZXdFbGVtZW50UG9zLnggLSBlbGVtZW50UmVjdC54O1xyXG4gICAgICAgICAgZGVsdGFZID0gbmV3RWxlbWVudFBvcy55IC0gZWxlbWVudFJlY3QueTtcclxuICAgICAgICAgIHRoaXMuX3RyYW5zbGF0ZVJlY3RhbmdsZShlbGVtZW50RE9NUmVjdCwgZGVsdGFYLCBkZWx0YVkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudCA9IHRoaXMuX2dldERvbVBhcmVudEVsZW1lbnQoZTEpO1xyXG4gICAgaWYoIXNlbGVjdGVkRWxlbWVudCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShzZWxlY3RlZEVsZW1lbnQpO1xyXG4gICAgY29uc3QgdG9wID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS50b3AsIDEwKTtcclxuICAgIGNvbnN0IGxlZnQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmxlZnQsIDEwKTtcclxuICAgIHNlbGVjdGVkRWxlbWVudC5zdHlsZS50b3AgPSAodG9wICsgZGVsdGFZKSArICdweCc7XHJcbiAgICBzZWxlY3RlZEVsZW1lbnQuc3R5bGUubGVmdCA9IChsZWZ0ICsgZGVsdGFYKSArICdweCc7XHJcbiAgICByZXR1cm4ge2RlbHRhWCxkZWx0YVl9O1xyXG4gIH1cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZmluZCBpZiByZWN0YW5nbGUgMSBpcyBpbnNpZGUgcmVjdGFuZ2xlIDJcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2lzSW5zaWRlUmVjdChyMTpET01SZWN0LCByMjpET01SZWN0KSB7XHJcbiAgICBpZighcjEgfHwgIXIyKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiAgcjIubGVmdCA8PSByMS5sZWZ0ICAmJiByMi50b3AgPD0gcjEudG9wICYmIHIyLnJpZ2h0ID49IHIxLnJpZ2h0ICYmIHIyLmJvdHRvbSA+PSByMS5ib3R0b207XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZmluZCBpZiByZWN0YW5nbGVzIGRvIG5vdCBvdmVybGFwIHRoZSBsZWZ0IGFuZCB0b3Agc2lkZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgX2lzSW5zaWRlTGVmdFRvcFJlY3QocjE6RE9NUmVjdCwgcjI6RE9NUmVjdCkge1xyXG4gICAgaWYoIXIxIHx8ICFyMikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBjb25zdCAgcjFJbnNpZGUgPSByMi5sZWZ0IDw9IHIxLmxlZnQgICYmIHIyLnRvcCA8PSByMS50b3A7XHJcbiAgICBjb25zdCAgcjJJbnNpZGUgPSByMS5sZWZ0IDw9IHIyLmxlZnQgICYmIHIxLnRvcCA8PSByMi50b3A7XHJcbiAgICByZXR1cm4gcjFJbnNpZGUgfHwgcjJJbnNpZGU7XHJcbiAgfVxyXG5cclxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gICogZ2V0IHBvc2l0aW9uIG9mIHIxIGFsaWduZWQgd2l0aCB0aGUgcjIgc2lkZXNcclxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbiAgZ2V0QWxpZ25lZFBvc2l0aW9uKHIxOkRPTVJlY3QsIHIyOkRPTVJlY3QpIHtcclxuICAgIGlmKCFyMSB8fCAhcjIpIHtcclxuICAgICAgcmV0dXJuIHt4OjAseTowfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvID0geyB4OiByMS54LCB5OiByMS55IH07XHJcbiAgICAvL2FsaWduIGxlZnQgb3IgcmlnaHQgc2lkZXMuIHByZWZlcmFibHkgbGVmdFxyXG4gICAgaWYocjEubGVmdCA8IHIyLmxlZnQpIHtcclxuICAgICAgdG8ueCA9IHIyLng7XHJcbiAgICB9IGVsc2UgaWYocjEucmlnaHQgPiByMi5yaWdodCkge1xyXG4gICAgICB0by54ID0gcjIucmlnaHQgLSByMS53aWR0aDtcclxuICAgIH1cclxuICAgIC8vYWxpZ24gdG9wIG9yIGJvdHRvbS4gcHJlZmVyYWJseSB0b3BcclxuICAgIGlmKHIxLnRvcCA8IHIyLnRvcCkge1xyXG4gICAgICB0by55ID0gcjIueTtcclxuICAgIH0gZWxzZSBpZihyMS5ib3R0b20gPiByMi5ib3R0b20pIHtcclxuICAgICAgdG8ueSA9IHIyLmJvdHRvbSAtIHIxLmhlaWdodDtcclxuICAgIH1cclxuICAgIHJldHVybiB0bztcclxuICB9XHJcbiAgXHJcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIGdldCBwb3NpdGlvbiBvZiByMSBhbGlnbmVkIHdpdGggdGhlIHIyIGxlZnQsIHRvcCBzaWRlc1xyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfZ2V0QWxpZ25lZExlZnRUb3BQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XHJcbiAgICBpZighcjEgfHwgIXIyKSB7XHJcbiAgICAgIHJldHVybiAge3g6MCx5OjB9O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0ICB0byA9IHsgeDogcjEueCwgeTogcjEueSB9O1xyXG4gICAgLy9hbGlnbiBsZWZ0XHJcbiAgICBpZihyMS5sZWZ0IDwgcjIubGVmdCkge1xyXG4gICAgICB0by54ID0gcjIueDtcclxuICAgIH1cclxuICAgIC8vYWxpZ24gdG9wXHJcbiAgICBpZihyMS50b3AgPCByMi50b3ApIHtcclxuICAgICAgdG8ueSA9IHIyLnk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdG87XHJcbiAgfVxyXG5cclxuICAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuICAqIHRyYW5zbGF0ZSByZWN0YW5nbGUgYnkgeCwgeVxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBfdHJhbnNsYXRlUmVjdGFuZ2xlKHJlY3Q6RE9NUmVjdCwgdHJhbnNsYXRlWDpudW1iZXIsIHRyYW5zbGF0ZVk6bnVtYmVyKSB7XHJcbiAgICBpZighcmVjdCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICByZWN0LnggKz0gdHJhbnNsYXRlWDtcclxuICAgIHJlY3QueSArPSB0cmFuc2xhdGVZO1xyXG4gICAgcmV0dXJuIHJlY3Q7XHJcbiAgfVxyXG4gIFxyXG4gIHVwZGF0ZUNvbGxhcHNlZCh2YWx1ZTpib29sZWFuLCBpZDpzdHJpbmcgPSAnJyk6dm9pZHsgICAgXHJcbiAgICBjb25zdCAgZm91bmRJdGVtID0gdGhpcy5nZXRJdGVtKGlkKTtcclxuICAgIGlmKCFmb3VuZEl0ZW0pe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3VuZEl0ZW0uaXNDb2xsYXBzZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zJC5uZXh0KHRoaXMucmVnaXN0ZXJlZEl0ZW1zKTtcclxuICAgIHNldFRpbWVvdXQoKCk9PnsgICAgICBcclxuICAgICAgdGhpcy5jaGVja1Bvc2l0aW9uKGZvdW5kSXRlbS5pZCxcIlwiLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICAgICAgXHJcbiAgICB9KTtcclxuIH0gIFxyXG5cclxuXHJcbiAgaGFuZGxlRHJhZ0VuZChpZDpzdHJpbmcpey8vfSxsZWZ0Om51bWJlcix0b3A6bnVtYmVyKXtcclxuICAgIHRoaXMuZmluYWxpemVPYmplY3RDaGFuZ2VzKGlkKTtcclxuICB9XHJcblxyXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgKiBmaW5hbGl6ZSBvYmplY3QgY2hhbmdlcyAocG9zaXRpb24pLiBvYmplY3QgbXVzdCBiZSByZWdpc3RlcmVkIGluIHRoZSBsYXlvdXQgbWFuYWdlclxyXG4gICogb2JqZWN0OiBvYmplY3QgdG8gZmluYWxpemUgIFxyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuICBmaW5hbGl6ZU9iamVjdENoYW5nZXMoaWQ6c3RyaW5nKTp2b2lkIHtcclxuICAgIGNvbnN0IGl0ZW06TGF5b3V0TWFuYWdlckl0ZW18bnVsbCAgPSB0aGlzLmdldEl0ZW0oaWQpO1xyXG4gICAgaWYoIWl0ZW0pe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5fZ2V0RG9tUGFyZW50RWxlbWVudChpdGVtKTtcclxuICAgIGlmKCFlbGVtZW50KXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpOyAgXHJcbiAgICBjb25zdCB0b3AgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLnRvcCwgMTApO1xyXG4gICAgY29uc3QgbGVmdCA9IHBhcnNlSW50KGNvbXB1dGVkU3R5bGUubGVmdCwgMTApO1xyXG4gICAgXHJcbiAgICBjb25zdCBlbGVtZW50UmVjdCA9IHRoaXMuX2dldEVsZW1lbnRSZWN0KGl0ZW0sdW5kZWZpbmVkLHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLl9zZXRPYmplY3RDb25maWcoaXRlbSxsZWZ0LHRvcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50UmVjdCAmJiBlbGVtZW50UmVjdC53aWR0aCA+IDAgPyBlbGVtZW50UmVjdC53aWR0aDowICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50UmVjdCAmJiBlbGVtZW50UmVjdC5oZWlnaHQgPiAwID8gZWxlbWVudFJlY3QuaGVpZ2h0OjApO1xyXG4gIH1cclxufVxyXG5cclxuIl19
|
|
365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWlDdkMsTUFBTSxPQUFPLG9CQUFvQjtJQUcvQixZQUFvQixxQkFBMkMsRUFDM0MsbUJBQXdDO1FBRHhDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUY1RCxxQkFBZ0IsR0FBeUMsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxDQUFBO1FBSTdGLG9CQUFlLEdBQXVCLEVBQUUsQ0FBQztRQUtqRCxXQUFNLEdBQVUscUJBQXFCLENBQUM7SUFObEMsQ0FBQztJQUdMLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUlIOztrRkFFOEU7SUFDNUUsY0FBYyxDQUFDLEdBQWMsRUFBRSxFQUFTLEVBQUUsUUFBMkIsRUFBRSxnQkFBd0IsRUFBQyxPQUFjLEdBQUcsRUFBRSxNQUFhLEdBQUcsRUFBQyxRQUFlLENBQUMsRUFBRSxTQUFnQixDQUFDO1FBQ3JLLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUMsS0FBSyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBRyxNQUFNLEVBQUMsQ0FBQztnQkFDVCxVQUFVLEdBQUcsS0FB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Q0FBQztRQUN2RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBQyxJQUFJLEVBQUMsR0FBRyxFQUNiLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQSxDQUFDLENBQUEsQ0FBQyxFQUMxRCxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7OEdBOVhVLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc2l6ZU9ic2VydmVyU2VydmljZSB9IGZyb20gJy4vcmVzaXplLW9ic2VydmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9ICAgZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG4vL2ltcG9ydCB7IEl0ZW1zTGlzdCB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0L2xpYi9pdGVtcy1saXN0Jztcbi8vaW1wb3J0IHsgTm90Rm91bmRFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0TWFuYWdlckl0ZW0ge1xuICBlbGVtZW50OkVsZW1lbnRSZWY7XG4gIGlkOiBzdHJpbmc7XG4gIHNlbGVjdG9yPzpzdHJpbmc7XG4gIGlzQ29sbGFwc2VkOmJvb2xlYW47XG4gIHJlbWVtYmVyUG9zaXRpb24/OmJvb2xlYW5cbiAgbGVmdD86IG51bWJlcjtcbiAgdG9wPzpudW1iZXI7XG4gIHdpZHRoPzpudW1iZXI7XG4gIGhlaWdodD86bnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dE1hbmFnZXJDb25maWdJdGVtIHtcbiAgaWQ6IHN0cmluZztcbiAgaXNDb2xsYXBzZWQ6Ym9vbGVhbjsgIFxuICBsZWZ0PzogbnVtYmVyO1xuICB0b3A/Om51bWJlcjsgIFxuICB3aWR0aD86bnVtYmVyO1xuICBoZWlnaHQ/Om51bWJlcjtcbn1cblxuXG5pbnRlcmZhY2UgTGF5b3V0TWFuYWdlckNvbmZpZyB7XG4gIFtrZXk6c3RyaW5nXTogTGF5b3V0TWFuYWdlckNvbmZpZ0l0ZW1cbn1cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExheW91dE1hbmFnZXJTZXJ2aWNlIHtcblxuICByZWdpc3RlcmVkSXRlbXMkOiBCZWhhdmlvclN1YmplY3Q8TGF5b3V0TWFuYWdlckl0ZW1bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExheW91dE1hbmFnZXJJdGVtW10+KFtdKVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc2l6ZU9ic2VydmVyU2VydmljZTpSZXNpemVPYnNlcnZlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZSA6TG9jYWxTdG9yYWdlU2VydmljZSBcbiAgKSB7IH1cbiAgcHJpdmF0ZSByZWdpc3RlcmVkSXRlbXM6TGF5b3V0TWFuYWdlckl0ZW1bXSA9IFtdO1xuICBcbiAgZ2V0IFJlZ2lzdGVyZWRJdGVtcygpOiBMYXlvdXRNYW5hZ2VySXRlbVtdIHtcbiAgICByZXR1cm4gdGhpcy5yZWdpc3RlcmVkSXRlbXM7XG4gIH1cbiAgQ09ORklHOnN0cmluZyA9ICdsYXlvdXRNYW5hZ2VyQ29uZmlnJztcblxuICBcbi8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICogcmVnaXN0ZXIgb2JqZWN0LiBvYmplY3QgbXVzdCBoYXZlIHVuaXF1ZSBpZCBvciBlbGVtZW50SWRcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICByZWdpc3Rlck9iamVjdChvYmo6RWxlbWVudFJlZiwgaWQ6c3RyaW5nLCBzZWxlY3RvcjpzdHJpbmcgfCB1bmRlZmluZWQsIHJlbWVtYmVyUG9zaXRpb246Ym9vbGVhbixsZWZ0Om51bWJlciA9IDEwMCwgdG9wOm51bWJlciA9IDEwMCx3aWR0aDpudW1iZXIgPSAwLCBoZWlnaHQ6bnVtYmVyID0gMCkge1xuICAgIGxldCBmb3VuZEluZGV4ID0gLTE7XG4gICAgaWYodGhpcy5yZWdpc3RlcmVkSXRlbXMuc29tZSgoaXRlbSxpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCByZXR2YWwgPSBpdGVtLmlkID09PSBpZDtcbiAgICAgICAgaWYocmV0dmFsKXtcbiAgICAgICAgICBmb3VuZEluZGV4ID0gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldHZhbDtcbiAgICAgIH0pKXtcbiAgICAgIGlmKGZvdW5kSW5kZXggPj0gMCl7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zLnNwbGljZShmb3VuZEluZGV4LDEpO1xuICAgICAgfSAgICAgIFxuICAgIH1cbiAgICBjb25zdCBuZXdJdGVtOiBMYXlvdXRNYW5hZ2VySXRlbSA9IHsgXG4gICAgICBlbGVtZW50Om9iaixcbiAgICAgIGlkOmlkLFxuICAgICAgc2VsZWN0b3I6c2VsZWN0b3IsXG4gICAgICByZW1lbWJlclBvc2l0aW9uOiEhcmVtZW1iZXJQb3NpdGlvbixcbiAgICAgIGxlZnQ6bGVmdCxcbiAgICAgIHRvcDp0b3AsXG4gICAgICB3aWR0aDp3aWR0aCxcbiAgICAgIGhlaWdodDpoZWlnaHQsXG4gICAgICBpc0NvbGxhcHNlZDogZmFsc2UgICAgXG4gICAgIH07XG5cbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcy5wdXNoKG5ld0l0ZW0pO1xuICAgIHRoaXMucmVnaXN0ZXJlZEl0ZW1zJC5uZXh0KHRoaXMucmVnaXN0ZXJlZEl0ZW1zKTtcbiAgICB0aGlzLl9pbml0T2JqZWN0KG5ld0l0ZW0pO1xuICB9XG4gIFxuICBfaW5pdE9iamVjdChvYmo6TGF5b3V0TWFuYWdlckl0ZW0pe1xuICAgIHRoaXMuX2FkanVzdE9iamVjdEJ5Q29uZmlnKG9iaik7XG4gICAgdGhpcy5fYWRqdXN0T2JqZWN0QnlXaW5kb3dTaXplKG9iaik7XG4gICAgXG4gIH1cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBnZXQgb2JqZWN0IGNvbmZpZ3VyYXRpb25cbiAgKiByZXR1cm4ge2xlZnQsIHRvcCwgd2lkdGgsIGhlaWd0aH1cbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBfZ2V0T2JqZWN0Q29uZmlnKG9iajpMYXlvdXRNYW5hZ2VySXRlbSk6TGF5b3V0TWFuYWdlckNvbmZpZ0l0ZW18bnVsbCB7XG4gICAgaWYoIW9iail7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgY29uZmlnVmFsdWUgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLkNPTkZJRyk7XG4gICAgY29uc3QgIGNvbmZpZyA9IGNvbmZpZ1ZhbHVlID8gSlNPTi5wYXJzZShjb25maWdWYWx1ZSkgOiB7fTtcbiAgICBjb25zdCAgb2JqSWQgPSBvYmouaWQgO1xuICAgIGxldCBjb25maWdPYmogPSBjb25maWdbb2JqSWRdO1xuICAgIGlmKCFjb25maWdPYmopIHtcbiAgICAgIGNvbmZpZ09iaiA9IHtpZDpvYmpJZCxsZWZ0Om9iai5sZWZ0LHRvcDpvYmoudG9wLHdpZHRoOm9iai53aWR0aCxoZWlnaHQ6b2JqLmhlaWdodH07ICAgICAgICBcbiAgICB9XG4gICAgcmV0dXJuIGNvbmZpZ09iajtcbiAgfVxuXG4gIF9hZGp1c3RPYmplY3RCeUNvbmZpZyhvYmo6TGF5b3V0TWFuYWdlckl0ZW0pe1xuICAgIGNvbnN0IGNvbmZpZzpMYXlvdXRNYW5hZ2VyQ29uZmlnSXRlbXxudWxsID0gdGhpcy5fZ2V0T2JqZWN0Q29uZmlnKG9iaik7XG4gICAgaWYoIWNvbmZpZyl7XG4gICAgICByZXR1cm47ICAgICAgXG4gICAgfVxuICAgIGNvbnN0ICBwYXJlbnRFbGVtZW50ID0gdGhpcy5fZ2V0RG9tUGFyZW50RWxlbWVudChvYmopO1xuICAgIGNvbnN0ICBpbnRlcm5hbEVsZW1lbnQgPSB0aGlzLl9nZXREb21JbnRlcm5hbEVsZW1lbnQob2JqLCcnKTtcbiAgICBpZighcGFyZW50RWxlbWVudCB8fCAhaW50ZXJuYWxFbGVtZW50KXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcGFyZW50RWxlbWVudC5zdHlsZS5sZWZ0ID0gKGNvbmZpZy5sZWZ0KSArICdweCc7XG4gICAgcGFyZW50RWxlbWVudC5zdHlsZS50b3AgPSAoY29uZmlnLnRvcCkgKyAncHgnO1xuICAgIGlmKGNvbmZpZy53aWR0aCAmJiBjb25maWcud2lkdGggPiAwKXtcbiAgICAgIGludGVybmFsRWxlbWVudC5zdHlsZS53aWR0aCA9IGNvbmZpZy53aWR0aCArICdweCc7XG4gICAgfVxuICAgIGlmKGNvbmZpZy5oZWlnaHQgJiYgY29uZmlnLmhlaWdodCA+IDApe1xuICAgICAgaW50ZXJuYWxFbGVtZW50LnN0eWxlLmhlaWdodCA9IGNvbmZpZy5oZWlnaHQgKyAncHgnO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmNoZWNrUG9zaXRpb24ob2JqLmlkLFwiXCIsdW5kZWZpbmVkLDAsMCx0cnVlKTsgICAgXG4gIH1cblxuICBfYWRqdXN0T2JqZWN0QnlXaW5kb3dTaXplKG9iajpMYXlvdXRNYW5hZ2VySXRlbSl7XG4gICAgdGhpcy5jaGVja1Bvc2l0aW9uKG9iai5pZCxcIlwiLHVuZGVmaW5lZCwwLDAsdHJ1ZSk7ICBcbiAgfVxuICBcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiByZXR1cm5zIG9iamVjdCAgcmVnaXN0ZXJlZCBpbiB0aGUgbGF5b3V0IG1hbmFnZXIgXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgZ2V0SXRlbShpZDogc3RyaW5nICk6TGF5b3V0TWFuYWdlckl0ZW18bnVsbCB7ICAgXG4gICAgbGV0IGZvdW5kSXRlbTpMYXlvdXRNYW5hZ2VySXRlbXxudWxsID0gbnVsbDtcbiAgICB0aGlzLnJlZ2lzdGVyZWRJdGVtcy5mb3JFYWNoKGl0ZW0gPT57XG4gICAgICBpZihpdGVtLmlkID09PSBpZCl7XG4gICAgICAgIGZvdW5kSXRlbSA9IGl0ZW07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvdW5kSXRlbTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICogc2V0IG9iamVjdCBjb25maWd1cmF0aW9uXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgX3NldE9iamVjdENvbmZpZyhvYmo6TGF5b3V0TWFuYWdlckl0ZW0sIGxlZnQ6bnVtYmVyLHRvcDpudW1iZXIsd2lkdGg6bnVtYmVyLGhlaWdodDpudW1iZXIpIHtcbiAgICBjb25zdCBvYmpJZCA9IG9iaj8uaWQgO1xuICAgIGlmICghb2JqSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGNvbmZpZyA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRPYmplY3QodGhpcy5DT05GSUcpIGFzIExheW91dE1hbmFnZXJDb25maWc7XG4gICAgLy9sZXQgY29uZmlnID0gY29uZmlnVmFsdWUgJiYgSlNPTi5wYXJzZShjb25maWdWYWx1ZSkgYXMgTGF5b3V0TWFuYWdlckNvbmZpZztcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgY29uZmlnID0ge307XG4gICAgfVxuICAgIGlmKG9iaj8uaXNDb2xsYXBzZWQpeyAgLy8gZG8gbm90IG92ZXJ0YWtlIGNvbGxhcHNlZCBzaXplXG4gICAgICBpZiAoIWNvbmZpZ1tvYmpJZF0pIHsgICAgICAgIFxuICAgICAgICBjb25maWdbb2JqSWRdID0gb2JqO1xuICAgICAgfVxuICAgICAgY29uZmlnW29iaklkXS5sZWZ0ID0gbGVmdDtcbiAgICAgIGNvbmZpZ1tvYmpJZF0udG9wICA9IHRvcDtcbiAgICAgIC8vY29uZmlnW29iaklkXS53aWR0aCA9IHdpZHRoO1xuICAgICAgLy9jb25maWdbb2JqSWRdLmhlaWdodCA9IGhlaWdodCA7XG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQ09ORklHLCBjb25maWcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0l0ZW0gOkxheW91dE1hbmFnZXJDb25maWdJdGVtID0ge1xuICAgICAgaWQ6IG9iaklkLFxuICAgICAgaXNDb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgbGVmdDogbGVmdCxcbiAgICAgIHRvcDogdG9wLFxuICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgaGVpZ2h0OiBoZWlnaHRcbiAgICB9O1xuICAgIGNvbmZpZ1tvYmpJZF0gPSBuZXdJdGVtO1xuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRPYmplY3QodGhpcy5DT05GSUcsY29uZmlnKTtcbiAgfVxuICBcbiAgZ2V0RG9tUGFyZW50RWxlbWVudChpZDpzdHJpbmcgKTpIVE1MRWxlbWVudHxudWxsIHtcbiAgICBjb25zdCBpdGVtOkxheW91dE1hbmFnZXJJdGVtfG51bGwgPSB0aGlzLmdldEl0ZW0oaWQpO1xuICAgIGlmKGl0ZW0pe1xuICAgICAgcmV0dXJuIHRoaXMuX2dldERvbVBhcmVudEVsZW1lbnQoaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgX2dldERvbVBhcmVudEVsZW1lbnQoaXRlbTpMYXlvdXRNYW5hZ2VySXRlbSApOkhUTUxFbGVtZW50fG51bGwge1xuICAgIGxldCBlbGVtZW50OkhUTUxFbGVtZW50O1xuICAgIGlmKGl0ZW0uZWxlbWVudD8ubmF0aXZlRWxlbWVudD8uc2hhZG93Um9vdCl7XG4gICAgICBlbGVtZW50ID0gaXRlbS5lbGVtZW50Py5uYXRpdmVFbGVtZW50Py5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoaXRlbS5zZWxlY3Rvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQgPSBpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7IFxuICAgIH1cbiAgICBpZighZWxlbWVudCl7XG4gICAgICBjb25zb2xlLmVycm9yKCdfZ2V0RG9tUGFyZW50RWxlbWVudDogbWlzc2luZyBlbGVtZW50Jyk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGVsZW1lbnQ7ICAgIFxuICB9XG5cbiAgX2dldERvbUludGVybmFsRWxlbWVudChpdGVtOkxheW91dE1hbmFnZXJJdGVtLHNlbGVjdG9yOnN0cmluZyB8IHVuZGVmaW5lZCApOkhUTUxFbGVtZW50fG51bGwge1xuICAgIGNvbnN0IGVsZW1lbnQ6SFRNTEVsZW1lbnQgPSBpdGVtLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnNoYWRvd1Jvb3QgfHwgaXRlbS5lbGVtZW50Py5uYXRpdmVFbGVtZW50OyAgICBcbiAgICBpZighZWxlbWVudCl7XG4gICAgICBjb25zb2xlLmVycm9yKCdfZ2V0RG9tSW50ZXJuYWxFbGVtZW50OiBtaXNzaW5nIGVsZW1lbnQnKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBteVNlbGVjdG9yID1zZWxlY3RvciAmJiBzZWxlY3Rvcj8ubGVuZ3RoID4gMCA/c2VsZWN0b3I6aXRlbS5zZWxlY3RvcjsgICBcbiAgICBjb25zdCByZXR2YWw6IEhUTUxFbGVtZW50fG51bGw9IG15U2VsZWN0b3I/ZWxlbWVudC5xdWVyeVNlbGVjdG9yKG15U2VsZWN0b3IpOmVsZW1lbnQ7XG4gICAgaWYoIXJldHZhbCl7XG4gICAgICBjb25zb2xlLmVycm9yKGBfZ2V0RG9tSW50ZXJuYWxFbGVtZW50OiBzZWxlY3Rpb24gb2YgZWxlbWVudCAke2VsZW1lbnR9ICBmYWlsZWQgd2l0aCBzZWxlY3RvciAke215U2VsZWN0b3J9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXR2YWw7XG4gIH1cblxuXG4gIF9nZXRFbGVtZW50UmVjdChpdGVtOkxheW91dE1hbmFnZXJJdGVtLHNlbGVjdG9yOnN0cmluZyB8IHVuZGVmaW5lZCAscGFyZW50UmVjdGFuZ2xlOkRPTVJlY3QgfHVuZGVmaW5lZCApOkRPTVJlY3QgfCBudWxse1xuICAgIGNvbnN0IHNlbGVjdGVkT2JqIDogSFRNTEVsZW1lbnR8bnVsbCA9IHRoaXMuX2dldERvbUludGVybmFsRWxlbWVudChpdGVtLHNlbGVjdG9yKTtcbiAgICBpZighc2VsZWN0ZWRPYmope1xuICAgICAgY29uc29sZS5lcnJvcignX2dldEVsZW1lbnRSZWN0OiBtaXNzaW5nIHNlbGVjdGVkIG9iamVjdCcpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50UmVjdDpET01SZWN0ID0gIHBhcmVudFJlY3RhbmdsZSB8fCAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2UuZ2V0UGFyZW50QXBwUmVjdCgpO1xuICAgIGlmKCAhcGFyZW50UmVjdCB8fCAgcGFyZW50UmVjdD8ud2lkdGg8PTEgfHwgcGFyZW50UmVjdD8uaGVpZ2h0PD0xICkge1xuICAgICAgY29uc29sZS5sb2coJ19nZXRFbGVtZW50UmVjdDogbWlzc2luZyBwYXJlbnQgcmVjdCcpO1xuICAgIH1cbiAgICBjb25zdCAgZWxlbWVudFJlY3Q6RE9NUmVjdHxudWxsID0gc2VsZWN0ZWRPYmouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgaWYoIWVsZW1lbnRSZWN0KXtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ19nZXRFbGVtZW50UmVjdDogbWlzc2luZyBib3VuZGluZyByZWN0Jyk7XG4gICAgfVxuICAgIHJldHVybiBlbGVtZW50UmVjdDtcbiAgfVxuXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGVsZW1lbnQgb3IgZWxlbWVudCB3aXRoIGFkZGl0aW9uYWwgc2VsZWN0aW9uIG9mIHN1YmVsZW1lbnQgaXMgcGxhY2VkIHdpdGhpbiB0aGUgZ2l2ZSByZWN0YW5nbGVcbiAgLy8gaWYgbm90IHRoZW4gY2FsY3VsYXRlcyB0aGUgb2Zmc2V0IHRvIGJlIG1vdmVkIHRvIGZpdCBpblxuICBjaGVja1Bvc2l0aW9uKGlkOnN0cmluZyxzZWxlY3RvcjpzdHJpbmcscGFyZW50UmVjdGFuZ2xlOkRPTVJlY3R8dW5kZWZpbmVkICxkZWx0YVg6bnVtYmVyLGRlbHRhWTpudW1iZXIsZm9yY2VDaGVjazpib29sZWFuID0gZmFsc2Upe1xuICAgIGlmKCFpZCl7XG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcbiAgICB9XG4gICAgY29uc3QgZTEgPSB0aGlzLmdldEl0ZW0oaWQpO1xuICAgIGlmKCFlMSl7XG4gICAgICByZXR1cm4ge2RlbHRhWDowLGRlbHRhWTowfTtcbiAgICB9XG4gICAgY29uc3QgcGFyZW50UmVjdDpET01SZWN0ID0gIHBhcmVudFJlY3RhbmdsZSB8fCAgdGhpcy5yZXNpemVPYnNlcnZlclNlcnZpY2UuZ2V0UGFyZW50QXBwUmVjdCgpO1xuICAgIGNvbnN0IGVsZW1lbnRSZWN0OkRPTVJlY3QgfCBudWxsID0gdGhpcy5fZ2V0RWxlbWVudFJlY3QoZTEsc2VsZWN0b3IscGFyZW50UmVjdCk7XG4gICAgaWYoIWVsZW1lbnRSZWN0KXtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2NoZWNrUG9zaXRpb246IG1pc3NpbmcgZWxlbWVudFJlY3QnKTtcbiAgICAgIHJldHVybiB7ZGVsdGFYOjAsZGVsdGFZOjB9O1xuICAgIH1cbiAgICBcbiAgICBpZighZWxlbWVudFJlY3Q/LndpZHRoIHx8ICFlbGVtZW50UmVjdD8uaGVpZ2h0KXtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2NoZWNrUG9zaXRpb246ZWxlbWVudCByZWN0IGVtcHR5ICcpO1xuICAgICAgcmV0dXJuIHtkZWx0YVg6MCxkZWx0YVk6MH07XG4gICAgfSBcbiAgICBcbiAgICBsZXQgY2hlY2tBbGwgPSB0cnVlO1xuICAgIGlmKHBhcmVudFJlY3Q/LndpZHRoIDwgMiAgfHwgcGFyZW50UmVjdD8uaGVpZ2h0IDwgMil7ICAvLyBlbXB0eSBwYXJlbnQgcmVjdCAsIChhZnRlciBpbml0IGJlZm9yZSBmaXJzdCB1c2VmdWxsIGluZm8pIG5vdGhpbmcgdG8gY2hlY2sgICAgICAgXG4gICAgICBjaGVja0FsbCA9IGZhbHNlOyAgICAgIFxuICAgIH0gXG4gICAgaWYoY2hlY2tBbGwpe1xuICAgICAgbGV0IGNoZWNrQm91bmRhcmllcyA9IHRydWU7XG4gICAgICBpZih0aGlzLl9pc0luc2lkZVJlY3QoZWxlbWVudFJlY3QsIHBhcmVudFJlY3QpID09PSBmYWxzZSAmJiAhZm9yY2VDaGVjaykge1xuICAgICAgICBjaGVja0JvdW5kYXJpZXMgPSBmYWxzZTtcbiAgICAgIH1cbiAgXG4gICAgICAvLyBjb3B5IG9mIHJlYWwgZWxlbWVudCByZWN0YW5nbGUgdG8gcGVyZm9ybSBjYWxjdWxhdGlvbiBvdmVyIGJlZm9yZSBzZXQgdG8gdGhlIHJlYWwgZWxlbWVudFxuICAgICAgY29uc3QgZWxlbWVudERPTVJlY3QgPSBET01SZWN0LmZyb21SZWN0KGVsZW1lbnRSZWN0KTtcblxuICAgICAgLy9zZXQgdGhlIGVsZW1lbnQgcmVjdGFuZ2xlIGJ5IGRlbHRhc1xuICAgICAgdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XG5cbiAgICAgIGlmKGNoZWNrQm91bmRhcmllcykge1xuICAgICAgICBpZih0aGlzLl9pc0luc2lkZVJlY3QoZWxlbWVudERPTVJlY3QsIHBhcmVudFJlY3QpID09PSBmYWxzZSkge1xuICAgICAgICAgIGNvbnN0ICBuZXdFbGVtZW50UG9zID0gdGhpcy5nZXRBbGlnbmVkUG9zaXRpb24oZWxlbWVudERPTVJlY3QsIHBhcmVudFJlY3QpO1xuICAgICAgICAgIGRlbHRhWCA9IG5ld0VsZW1lbnRQb3MueCAtIGVsZW1lbnRSZWN0Lng7XG4gICAgICAgICAgZGVsdGFZID0gbmV3RWxlbWVudFBvcy55IC0gZWxlbWVudFJlY3QueTtcbiAgICAgICAgICB0aGlzLl90cmFuc2xhdGVSZWN0YW5nbGUoZWxlbWVudERPTVJlY3QsIGRlbHRhWCwgZGVsdGFZKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzSW5zaWRlTGVmdFRvcFJlY3QocGFyZW50UmVjdCwgZWxlbWVudERPTVJlY3QpID09PSBmYWxzZSkge1xuICAgICAgICAgIGNvbnN0IG5ld0VsZW1lbnRQb3MgPSB0aGlzLl9nZXRBbGlnbmVkTGVmdFRvcFBvc2l0aW9uKGVsZW1lbnRET01SZWN0LCBwYXJlbnRSZWN0KTtcbiAgICAgICAgICBkZWx0YVggPSBuZXdFbGVtZW50UG9zLnggLSBlbGVtZW50UmVjdC54O1xuICAgICAgICAgIGRlbHRhWSA9IG5ld0VsZW1lbnRQb3MueSAtIGVsZW1lbnRSZWN0Lnk7XG4gICAgICAgICAgdGhpcy5fdHJhbnNsYXRlUmVjdGFuZ2xlKGVsZW1lbnRET01SZWN0LCBkZWx0YVgsIGRlbHRhWSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSB0aGlzLl9nZXREb21QYXJlbnRFbGVtZW50KGUxKTtcbiAgICBpZighc2VsZWN0ZWRFbGVtZW50KXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNlbGVjdGVkRWxlbWVudCk7XG4gICAgY29uc3QgdG9wID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS50b3AsIDEwKTtcbiAgICBjb25zdCBsZWZ0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5sZWZ0LCAxMCk7XG4gICAgc2VsZWN0ZWRFbGVtZW50LnN0eWxlLnRvcCA9ICh0b3AgKyBkZWx0YVkpICsgJ3B4JztcbiAgICBzZWxlY3RlZEVsZW1lbnQuc3R5bGUubGVmdCA9IChsZWZ0ICsgZGVsdGFYKSArICdweCc7XG4gICAgcmV0dXJuIHtkZWx0YVgsZGVsdGFZfTtcbiAgfVxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAqIGZpbmQgaWYgcmVjdGFuZ2xlIDEgaXMgaW5zaWRlIHJlY3RhbmdsZSAyXG4gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbiAgX2lzSW5zaWRlUmVjdChyMTpET01SZWN0LCByMjpET01SZWN0KSB7XG4gICAgaWYoIXIxIHx8ICFyMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIHIyLmxlZnQgPD0gcjEubGVmdCAgJiYgcjIudG9wIDw9IHIxLnRvcCAmJiByMi5yaWdodCA+PSByMS5yaWdodCAmJiByMi5ib3R0b20gPj0gcjEuYm90dG9tO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBmaW5kIGlmIHJlY3RhbmdsZXMgZG8gbm90IG92ZXJsYXAgdGhlIGxlZnQgYW5kIHRvcCBzaWRlc1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIF9pc0luc2lkZUxlZnRUb3BSZWN0KHIxOkRPTVJlY3QsIHIyOkRPTVJlY3QpIHtcbiAgICBpZighcjEgfHwgIXIyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0ICByMUluc2lkZSA9IHIyLmxlZnQgPD0gcjEubGVmdCAgJiYgcjIudG9wIDw9IHIxLnRvcDtcbiAgICBjb25zdCAgcjJJbnNpZGUgPSByMS5sZWZ0IDw9IHIyLmxlZnQgICYmIHIxLnRvcCA8PSByMi50b3A7XG4gICAgcmV0dXJuIHIxSW5zaWRlIHx8IHIySW5zaWRlO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBnZXQgcG9zaXRpb24gb2YgcjEgYWxpZ25lZCB3aXRoIHRoZSByMiBzaWRlc1xuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIGdldEFsaWduZWRQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XG4gICAgaWYoIXIxIHx8ICFyMikge1xuICAgICAgcmV0dXJuIHt4OjAseTowfTtcbiAgICB9XG4gICAgY29uc3QgdG8gPSB7IHg6IHIxLngsIHk6IHIxLnkgfTtcbiAgICAvL2FsaWduIGxlZnQgb3IgcmlnaHQgc2lkZXMuIHByZWZlcmFibHkgbGVmdFxuICAgIGlmKHIxLmxlZnQgPCByMi5sZWZ0KSB7XG4gICAgICB0by54ID0gcjIueDtcbiAgICB9IGVsc2UgaWYocjEucmlnaHQgPiByMi5yaWdodCkge1xuICAgICAgdG8ueCA9IHIyLnJpZ2h0IC0gcjEud2lkdGg7XG4gICAgfVxuICAgIC8vYWxpZ24gdG9wIG9yIGJvdHRvbS4gcHJlZmVyYWJseSB0b3BcbiAgICBpZihyMS50b3AgPCByMi50b3ApIHtcbiAgICAgIHRvLnkgPSByMi55O1xuICAgIH0gZWxzZSBpZihyMS5ib3R0b20gPiByMi5ib3R0b20pIHtcbiAgICAgIHRvLnkgPSByMi5ib3R0b20gLSByMS5oZWlnaHQ7XG4gICAgfVxuICAgIHJldHVybiB0bztcbiAgfVxuICBcbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgKiBnZXQgcG9zaXRpb24gb2YgcjEgYWxpZ25lZCB3aXRoIHRoZSByMiBsZWZ0LCB0b3Agc2lkZXNcbiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICBfZ2V0QWxpZ25lZExlZnRUb3BQb3NpdGlvbihyMTpET01SZWN0LCByMjpET01SZWN0KSB7XG4gICAgaWYoIXIxIHx8ICFyMikge1xuICAgICAgcmV0dXJuICB7eDowLHk6MH07XG4gICAgfVxuXG4gICAgY29uc3QgIHRvID0geyB4OiByMS54LCB5OiByMS55IH07XG4gICAgLy9hbGlnbiBsZWZ0XG4gICAgaWYocjEubGVmdCA8IHIyLmxlZnQpIHtcbiAgICAgIHRvLnggPSByMi54O1xuICAgIH1cbiAgICAvL2FsaWduIHRvcFxuICAgIGlmKHIxLnRvcCA8IHIyLnRvcCkge1xuICAgICAgdG8ueSA9IHIyLnk7XG4gICAgfVxuICAgIHJldHVybiB0bztcbiAgfVxuXG4gICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAqIHRyYW5zbGF0ZSByZWN0YW5nbGUgYnkgeCwgeVxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIF90cmFuc2xhdGVSZWN0YW5nbGUocmVjdDpET01SZWN0LCB0cmFuc2xhdGVYOm51bWJlciwgdHJhbnNsYXRlWTpudW1iZXIpIHtcbiAgICBpZighcmVjdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZWN0LnggKz0gdHJhbnNsYXRlWDtcbiAgICByZWN0LnkgKz0gdHJhbnNsYXRlWTtcbiAgICByZXR1cm4gcmVjdDtcbiAgfVxuICBcbiAgdXBkYXRlQ29sbGFwc2VkKHZhbHVlOmJvb2xlYW4sIGlkOnN0cmluZyA9ICcnKTp2b2lkeyAgICBcbiAgICBjb25zdCAgZm91bmRJdGVtID0gdGhpcy5nZXRJdGVtKGlkKTtcbiAgICBpZighZm91bmRJdGVtKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZm91bmRJdGVtLmlzQ29sbGFwc2VkID0gdmFsdWU7XG4gICAgdGhpcy5yZWdpc3RlcmVkSXRlbXMkLm5leHQodGhpcy5yZWdpc3RlcmVkSXRlbXMpO1xuICAgIHNldFRpbWVvdXQoKCk9PnsgICAgICBcbiAgICAgIHRoaXMuY2hlY2tQb3NpdGlvbihmb3VuZEl0ZW0uaWQsXCJcIix1bmRlZmluZWQsMCwwLHRydWUpOyAgICAgIFxuICAgIH0pO1xuIH0gIFxuXG5cbiAgaGFuZGxlRHJhZ0VuZChpZDpzdHJpbmcpey8vfSxsZWZ0Om51bWJlcix0b3A6bnVtYmVyKXtcbiAgICB0aGlzLmZpbmFsaXplT2JqZWN0Q2hhbmdlcyhpZCk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAqIGZpbmFsaXplIG9iamVjdCBjaGFuZ2VzIChwb3NpdGlvbikuIG9iamVjdCBtdXN0IGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGxheW91dCBtYW5hZ2VyXG4gICogb2JqZWN0OiBvYmplY3QgdG8gZmluYWxpemUgIFxuICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4gIGZpbmFsaXplT2JqZWN0Q2hhbmdlcyhpZDpzdHJpbmcpOnZvaWQge1xuICAgIGNvbnN0IGl0ZW06TGF5b3V0TWFuYWdlckl0ZW18bnVsbCAgPSB0aGlzLmdldEl0ZW0oaWQpO1xuICAgIGlmKCFpdGVtKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2dldERvbVBhcmVudEVsZW1lbnQoaXRlbSk7XG4gICAgaWYoIWVsZW1lbnQpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7ICBcbiAgICBjb25zdCB0b3AgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLnRvcCwgMTApO1xuICAgIGNvbnN0IGxlZnQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmxlZnQsIDEwKTtcbiAgICBcbiAgICBjb25zdCBlbGVtZW50UmVjdCA9IHRoaXMuX2dldEVsZW1lbnRSZWN0KGl0ZW0sdW5kZWZpbmVkLHVuZGVmaW5lZCk7XG4gICAgdGhpcy5fc2V0T2JqZWN0Q29uZmlnKGl0ZW0sbGVmdCx0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRSZWN0ICYmIGVsZW1lbnRSZWN0LndpZHRoID4gMCA/IGVsZW1lbnRSZWN0LndpZHRoOjAgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50UmVjdCAmJiBlbGVtZW50UmVjdC5oZWlnaHQgPiAwID8gZWxlbWVudFJlY3QuaGVpZ2h0OjApO1xuICB9XG59XG5cbiJdfQ==
|
|
@@ -67,4 +67,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
67
67
|
providedIn: 'root'
|
|
68
68
|
}]
|
|
69
69
|
}], ctorParameters: () => [] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBS25ELE1BQU0sT0FBTyxtQkFBbUI7SUFJOUI7UUFGUSxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUF5QyxJQUFJLENBQUMsQ0FBQztJQUUzRSxDQUFDO0lBRWpCLHFDQUFxQztJQUNyQyxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDaEMsSUFBSSxDQUFDO1lBQ0gsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsT0FBTyxDQUFDLEdBQVc7UUFDakIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQztZQUNILFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsa0NBQWtDO0lBQ2xDLEtBQUs7UUFDSCxJQUFJLENBQUM7WUFDSCxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELGtDQUFrQztJQUNsQyxTQUFTLENBQUMsR0FBVztRQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVELG9DQUFvQztJQUNwQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7OEdBNURVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBzdG9yYWdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24gfSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgLy8gU2V0IGEgc3RyaW5nIHZhbHVlIGluIGxvY2FsU3RvcmFnZVxuICBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgICAgdGhpcy5zdG9yYWdlU3ViamVjdC5uZXh0KHsga2V5LCB2YWx1ZSB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzYXZpbmcgdG8gbG9jYWxTdG9yYWdlJywgZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gR2V0IGEgc3RyaW5nIHZhbHVlIGZyb20gbG9jYWxTdG9yYWdlXG4gIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcmVhZGluZyBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGFuIGl0ZW0gZnJvbSBsb2NhbFN0b3JhZ2VcbiAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgdGhpcy5zdG9yYWdlU3ViamVjdC5uZXh0KHsga2V5LCB2YWx1ZTogbnVsbCB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZW1vdmluZyBmcm9tIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENsZWFyIGFsbCBpdGVtcyBpbiBsb2NhbFN0b3JhZ2VcbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xuICAgICAgdGhpcy5zdG9yYWdlU3ViamVjdC5uZXh0KG51bGwpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNsZWFyaW5nIGxvY2FsU3RvcmFnZScsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBhbiBvYmplY3QgaW4gbG9jYWxTdG9yYWdlXG4gIHNldE9iamVjdChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICB9XG5cbiAgLy8gR2V0IGFuIG9iamVjdCBmcm9tIGxvY2FsU3RvcmFnZVxuICBnZXRPYmplY3Qoa2V5OiBzdHJpbmcpOiB1bmtub3duIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0SXRlbShrZXkpO1xuICAgIHJldHVybiB2YWx1ZSA/IEpTT04ucGFyc2UodmFsdWUpIDogbnVsbDtcbiAgfVxuXG4gIC8vIFdhdGNoIGZvciBjaGFuZ2VzIGluIGxvY2FsU3RvcmFnZVxuICB3YXRjaFN0b3JhZ2UoKTogT2JzZXJ2YWJsZTx7IGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biB9IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG59XG4iXX0=
|
|
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
31
31
|
providedIn: 'root'
|
|
32
32
|
}]
|
|
33
33
|
}], ctorParameters: () => [] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvcmVzaXplLW9ic2VydmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOztBQUtuRCxNQUFNLE9BQU8scUJBQXFCO0lBT2hDO1FBTFEsY0FBUyxHQUF5QyxJQUFJLGVBQWUsQ0FBb0IsU0FBUyxDQUFDLENBQUM7UUFDcEcscUJBQWdCLEdBQVksSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsOENBQThDO1FBQ3ZDLG1CQUFjLEdBQW9DLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFdkUsQ0FBQztJQUVWLE9BQU8sQ0FBQyxRQUFpQjtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxJQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxJQUFFLENBQUMsRUFBRyxDQUFDLENBQUMsZ0NBQWdDO1lBQ3pHLE1BQU0sVUFBVSxHQUFvQixRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hFLElBQUcsQ0FBQyxVQUFVLEVBQUMsQ0FBQztnQkFDZCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztZQUMvQixDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQzs4R0F2QlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBSZXNpemVPYnNlcnZlclNlcnZpY2Uge1xuXG4gIHByaXZhdGUgcmVjdFNpemUkOiBCZWhhdmlvclN1YmplY3Q8RE9NUmVjdCB8dW5kZWZpbmVkID4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERPTVJlY3R8dW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIGludGVybmFsUmVjdFNpemUgOkRPTVJlY3QgPSBuZXcgRE9NUmVjdCgxLDEsMSwxKTtcbiAgLy8gT2JzZXJ2YWJsZSB0aGF0IGNvbXBvbmVudHMgY2FuIHN1YnNjcmliZSB0b1xuICBwdWJsaWMgcGFyZW50QXBwUmVjdCQ6IE9ic2VydmFibGU8RE9NUmVjdCB8IHVuZGVmaW5lZD4gPSB0aGlzLnJlY3RTaXplJC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBzZXRTaXplKG5ld1ZhbHVlOiBET01SZWN0KTogdm9pZCB7XG4gICAgdGhpcy5yZWN0U2l6ZSQubmV4dChuZXdWYWx1ZSk7ICBcbiAgICB0aGlzLmludGVybmFsUmVjdFNpemUgPSBuZXdWYWx1ZTsgICAgXG4gIH1cblxuICBwdWJsaWMgZ2V0UGFyZW50QXBwUmVjdCAoKTpET01SZWN0e1xuICAgIGlmKCB0aGlzLmludGVybmFsUmVjdFNpemUud2lkdGg8PTEgfHwgdGhpcy5pbnRlcm5hbFJlY3RTaXplPy5oZWlnaHQ8PTEgKSB7IC8vIG5vdCBzZXQgdXAgd2l0aCByZWFsIGRhdGEgeWV0XG4gICAgICBjb25zdCBwYXJlbnRWaWV3OkhUTUxFbGVtZW50fG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWFpblZpZXcnKTtcbiAgICAgIGlmKCFwYXJlbnRWaWV3KXtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxSZWN0U2l6ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJlbnRWaWV3LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnRlcm5hbFJlY3RTaXplO1xuICB9ICBcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvdHlwZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIExvY2FsaXplZFN0cmluZ3MgPSB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nOyAvLyBUaGlzIGFsbG93cyBrZXktdmFsdWUgcGFpcnNcbiAgfTtcblxuICBleHBvcnQgaW50ZXJmYWNlIE1lbnVMaXN0VHlwZXtcbiAgJ2FjdGlvbic6IHN0cmluZyAsXG4gICdpZCc6ICAgICBzdHJpbmcgLFxuICAndHlwZSc6ICAgc3RyaW5nICxcbiAgJ2NsYXNzJzogIHN0cmluZyAsICAgIFxuICAndGV4dElkJzogc3RyaW5nICwgIFxuICAndGV4dElkRGlzYWJsZWQnOiBzdHJpbmcsXG4gICdkaXNhYmxlZFRpdGxlJzogc3RyaW5nLFxuICAnY2hlY2tTdWJzY3JpcHRpb24nOiBib29sZWFuLFxuICAnZGV2T3JTdGFnZU9ubHknIDogYm9vbGVhbiwgXG4gICdjbGlja1BvbGljeSc6IHN0cmluZ1xufSJdfQ==
|
|
@@ -69,4 +69,4 @@ export class FilterString {
|
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyU3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL2ZpbHRlclN0cmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGtCQUFrQixHQUFHLDZCQUE2QixDQUFDO0FBRXpELE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQVksZUFBdUIsRUFBRSxFQUFFLG9CQUE0QixDQUFDO1FBUzVELGtCQUFhLEdBQVksRUFBRSxDQUFDO1FBQzVCLHVCQUFrQixHQUFZLENBQUMsQ0FBQztRQVR0QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBS0Qsa0JBQWtCLENBQUMsUUFBNEI7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLGtCQUFrQixFQUFFLENBQUM7UUFFaEQsS0FBSSxNQUFNLFNBQVMsSUFBSSxRQUFRLEVBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsYUFBYSxJQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUM7UUFDMUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsbUNBQW1DLENBQUMsUUFBNEI7UUFDOUQsTUFBTSxjQUFjLEdBQTJCLEVBQUUsQ0FBQztRQUNsRCxLQUFJLE1BQU0sU0FBUyxJQUFJLFFBQVEsRUFBQyxDQUFDO1lBQy9CLElBQUcsU0FBUyxDQUFDLEVBQUUsSUFBSSxTQUFTLENBQUMsSUFBSTtnQkFDL0IsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQ2xELENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsaUJBQW9ELFNBQVM7UUFDNUUsTUFBTSxRQUFRLEdBQXVCLEVBQUUsQ0FBQztRQUV4QyxJQUFJLDJCQUEyQixHQUFHLEtBQUssQ0FBQztRQUV4QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxLQUFJLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBQyxDQUFDO1lBQ3ZCLElBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUMsQ0FBQztnQkFDcEIsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFDLENBQUM7Z0JBQ3BFLDJCQUEyQixHQUFHLElBQUksQ0FBQztnQkFDbkMsU0FBUztZQUNYLENBQUM7WUFFRCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFHLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGtCQUFrQixFQUFDLENBQUM7Z0JBQzlDLE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxTQUFpQixFQUFFLGlCQUFvRCxTQUFTO1FBQzVHLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNyQixJQUFJLEVBQUUsR0FBd0IsU0FBUyxDQUFDO1FBRXhDLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEQsSUFBRyxpQkFBaUIsSUFBSSxDQUFDLElBQUksa0JBQWtCLElBQUcsQ0FBQyxJQUFJLGtCQUFrQixHQUFHLGlCQUFpQixFQUFDLENBQUM7WUFDN0YsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztZQUM1RSxFQUFFLEdBQUcsVUFBVSxDQUFDO1lBQ2hCLElBQUcsVUFBVSxJQUFJLGNBQWMsRUFBQyxDQUFDO2dCQUMvQixNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2xELElBQUcsY0FBYyxFQUFDLENBQUM7b0JBQ2pCLElBQUksR0FBRyxjQUFjLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFLLElBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBQyxDQUFDO1lBQ2hDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUk7WUFDVixTQUFTLEVBQUcsS0FBSyxHQUFDLFNBQVM7WUFDM0IsRUFBRSxFQUFHLEVBQUU7U0FDUixDQUFBO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyQ3JpdGVyaXVtIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5pbnRlcmZhY2VcIjtcblxuY29uc3QgRGl2c2lvbklEU3Vic3RyaW5nID0gJ3RhYkF0dHJpYkVsZW1lbnQuRGl2aXNpb25JRCc7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJTdHJpbmcge1xuXG4gIGNvbnN0cnVjdG9yKGZpbHRlclN0cmluZzogc3RyaW5nID0gXCJcIiwgbWF4RmlsdGVyQ3JpdGVyaWE6IG51bWJlciA9IDUpe1xuICAgIHRoaXMuX2ZpbHRlclN0cmluZyA9IGZpbHRlclN0cmluZztcbiAgICB0aGlzLl9tYXhGaWx0ZXJDcml0ZXJpYSA9IG1heEZpbHRlckNyaXRlcmlhO1xuICB9XG5cbiAgZ2V0IGZpbHRlclN0cmluZygpe1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTdHJpbmc7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJTdHJpbmcgOiBzdHJpbmcgPSBcIlwiO1xuICBwcml2YXRlIF9tYXhGaWx0ZXJDcml0ZXJpYSA6IG51bWJlciA9IDU7XG5cbiAgZnJvbUZpbHRlckNyaXRlcmlhKGNyaXRlcmlhIDogRmlsdGVyQ3JpdGVyaXVtW10pe1xuICAgIHRoaXMuX2ZpbHRlclN0cmluZyA9IGBbSV0ke0RpdnNpb25JRFN1YnN0cmluZ31gO1xuICAgIFxuICAgIGZvcihjb25zdCBjcml0ZXJpdW0gb2YgY3JpdGVyaWEpe1xuICAgICAgdGhpcy5fZmlsdGVyU3RyaW5nKz1jcml0ZXJpdW0uc3ViU3RyaW5nO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJTdHJpbmc7XG4gIH1cblxuICBnZXRSZWFkYWJsZVZhbHVlc0Zyb21GaWx0ZXJDcml0ZXJpYShjcml0ZXJpYSA6IEZpbHRlckNyaXRlcml1bVtdKSA6IFJlY29yZDxzdHJpbmcsc3RyaW5nPntcbiAgICBjb25zdCByZWFkYWJsZVZhbHVlcyA6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiA9IHt9O1xuICAgIGZvcihjb25zdCBjcml0ZXJpdW0gb2YgY3JpdGVyaWEpe1xuICAgICAgaWYoY3JpdGVyaXVtLmlkICYmIGNyaXRlcml1bS5uYW1lKVxuICAgICAgICByZWFkYWJsZVZhbHVlc1tjcml0ZXJpdW0uaWRdID0gY3JpdGVyaXVtLm5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlYWRhYmxlVmFsdWVzO1xuICB9XG5cbiAgdG9GaWx0ZXJDcml0ZXJpYShyZWFkYWJsZVZhbHVlczogUmVjb3JkPHN0cmluZyxzdHJpbmc+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkKTogRmlsdGVyQ3JpdGVyaXVtW117XG4gICAgY29uc3QgY3JpdGVyaWEgOiBGaWx0ZXJDcml0ZXJpdW1bXSA9IFtdO1xuXG4gICAgbGV0IGZpcnN0TW9kZWxJZENyaXRlcmlhU2tpcHBlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgcGFydHMgPSB0aGlzLl9maWx0ZXJTdHJpbmcuc3BsaXQoJ1tJXScpO1xuICAgIGZvcihjb25zdCBwYXJ0IG9mIHBhcnRzKXtcbiAgICAgIGlmKHBhcnQubGVuZ3RoID09PSAwKXtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmKHBhcnQuaW5jbHVkZXMoRGl2c2lvbklEU3Vic3RyaW5nKSAmJiAhZmlyc3RNb2RlbElkQ3JpdGVyaWFTa2lwcGVkKXtcbiAgICAgICAgZmlyc3RNb2RlbElkQ3JpdGVyaWFTa2lwcGVkID0gdHJ1ZTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNyaXRlcmlhLnB1c2godGhpcy5fcGFyc2VGaWx0ZXJTdWJzdHJpbmcocGFydCwgcmVhZGFibGVWYWx1ZXMpKTtcbiAgICAgIGlmKGNyaXRlcmlhLmxlbmd0aCA9PT0gdGhpcy5fbWF4RmlsdGVyQ3JpdGVyaWEpe1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3JpdGVyaWE7XG4gIH1cblxuICBwcml2YXRlIF9wYXJzZUZpbHRlclN1YnN0cmluZyhzdWJTdHJpbmc6IHN0cmluZywgcmVhZGFibGVWYWx1ZXM6IFJlY29yZDxzdHJpbmcsc3RyaW5nPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCk6IEZpbHRlckNyaXRlcml1bXtcbiAgICBsZXQgbmFtZSA9IHN1YlN0cmluZztcbiAgICBsZXQgaWQgOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBpbmRleE9wZW5CcmFja2V0cyA9IHN1YlN0cmluZy5pbmRleE9mKCdbJyk7XG4gICAgY29uc3QgaW5kZXhDbG9zZUJyYWNrZXRzID0gc3ViU3RyaW5nLmluZGV4T2YoJ10nKTtcblxuICAgIGlmKGluZGV4T3BlbkJyYWNrZXRzID49IDAgJiYgaW5kZXhDbG9zZUJyYWNrZXRzID49MCAmJiBpbmRleENsb3NlQnJhY2tldHMgPiBpbmRleE9wZW5CcmFja2V0cyl7XG4gICAgICBjb25zdCByZWFkYWJsZUlkID0gc3ViU3RyaW5nLnNsaWNlKGluZGV4T3BlbkJyYWNrZXRzKzEsIGluZGV4Q2xvc2VCcmFja2V0cyk7XG4gICAgICBpZCA9IHJlYWRhYmxlSWQ7XG4gICAgICBpZihyZWFkYWJsZUlkICYmIHJlYWRhYmxlVmFsdWVzKXtcbiAgICAgICAgY29uc3QgcmVhZGFibGVTdHJpbmcgPSByZWFkYWJsZVZhbHVlc1tyZWFkYWJsZUlkXTtcbiAgICAgICAgaWYocmVhZGFibGVTdHJpbmcpe1xuICAgICAgICAgIG5hbWUgPSByZWFkYWJsZVN0cmluZztcbiAgICAgICAgfVxuICAgICAgfSAgICAgIFxuICAgIH1lbHNlIGlmKHN1YlN0cmluZy5pbmNsdWRlcygnLicpKXtcbiAgICAgIGNvbnN0IHNwbGl0dGVkID0gc3ViU3RyaW5nLnNwbGl0KCcuJyk7XG4gICAgICBuYW1lID0gc3BsaXR0ZWRbc3BsaXR0ZWQubGVuZ3RoLTFdO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBuYW1lLFxuICAgICAgc3ViU3RyaW5nIDogXCJbSV1cIitzdWJTdHJpbmcsXG4gICAgICBpZCA6IGlkXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -32,4 +32,4 @@ export class FilterStructureFetcher {
|
|
|
32
32
|
return observeable;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyU3RydWN0dXJlRmV0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9maWx0ZXJTdHJ1Y3R1cmVGZXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV4RCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxTQUFpQixFQUFFLE1BQTJCLEVBQUUsZUFBb0MsRUFBRSxHQUFlO1FBQ2xKLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMvQixJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFMUMsSUFBSSxXQUFXLEdBQTRELElBQUksQ0FBQztRQUVoRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDOUcsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNoRixTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUM7b0JBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFFRCxRQUFRLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFFeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkcsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDO29CQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlHLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO29CQUNuQixHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDbkMsT0FBTyxZQUFZLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFdlYlNkayBmcm9tICdiaW1wbHVzLXdlYnNkayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb25jYXRNYXAsIGZyb20sIG1hcCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyU3RydWN0dXJlRmV0Y2hlciB7XG5cbiAgc3RhdGljIGZldGNoT2JqZWN0RmlsdGVyU3RydWN0dXJlRnJvbVNlbGVjdGlvbihwcm9qZWN0SWQ6IHN0cmluZywgZmlsdGVyOiBXZWJTZGsuT2JqZWN0RmlsdGVyLCBzZWxlY3Rpb25PYmplY3Q6IFdlYlNkay5FeHBvcnRPYmplY3QsIGFwaTogV2ViU2RrLkFwaSk6IE9ic2VydmFibGU8V2ViU2RrLk9iamVjdEZpbHRlclN0cnVjdHVyZVJlc3BvbnNlPiB7XG4gICAgY29uc3QgaXNUZW1wb3JhcnkgPSAhZmlsdGVyLmlkO1xuICAgIGxldCBmaWx0ZXJJZCA9IGZpbHRlci5pZCA/IGZpbHRlci5pZCA6IFwiXCI7XG5cbiAgICBsZXQgb2JzZXJ2ZWFibGU6IE9ic2VydmFibGU8V2ViU2RrLk9iamVjdEZpbHRlclN0cnVjdHVyZVJlc3BvbnNlPiB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKCFpc1RlbXBvcmFyeSkge1xuICAgICAgb2JzZXJ2ZWFibGUgPSBmcm9tKGFwaS5leHBvcnRTZXJ2aWNlLmNyZWF0ZUV4cG9ydFNlbGVjdGlvbihwcm9qZWN0SWQsIEpTT04uc3RyaW5naWZ5KHNlbGVjdGlvbk9iamVjdCkpKS5waXBlKFxuICAgICAgICBjb25jYXRNYXAoc2VsZWN0aW9uT2JqID0+IHtcbiAgICAgICAgICBpZiAoIXNlbGVjdGlvbk9iaj8uaWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBzZWxlY3Rpb24gb2JqZWN0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmcm9tKGFwaS5vYmplY3RGaWx0ZXJzLmdldFNlbGVjdGlvbkZpbHRlcmVkT2JqZWN0cyhzZWxlY3Rpb25PYmouaWQsIGZpbHRlcklkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCkpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBvYnNlcnZlYWJsZSA9IGZyb20oYXBpLm9iamVjdEZpbHRlcnMucG9zdChKU09OLnN0cmluZ2lmeShmaWx0ZXIpLCBwcm9qZWN0SWQpKS5waXBlKFxuICAgICAgICBjb25jYXRNYXAoZmlsdGVyT2JqID0+IHtcbiAgICAgICAgICBpZiAoIWZpbHRlck9iaj8uaWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsdGVyIG9iamVjdCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpbHRlcklkID0gZmlsdGVyT2JqLmlkO1xuXG4gICAgICAgICAgcmV0dXJuIGZyb20oYXBpLmV4cG9ydFNlcnZpY2UuY3JlYXRlRXhwb3J0U2VsZWN0aW9uKHByb2plY3RJZCwgSlNPTi5zdHJpbmdpZnkoc2VsZWN0aW9uT2JqZWN0KSkpO1xuICAgICAgICB9KSxcbiAgICAgICAgY29uY2F0TWFwKHNlbGVjdGlvbk9iaiA9PiB7XG4gICAgICAgICAgaWYgKCFzZWxlY3Rpb25PYmo/LmlkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgc2VsZWN0aW9uIG9iamVjdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnJvbShhcGkub2JqZWN0RmlsdGVycy5nZXRTZWxlY3Rpb25GaWx0ZXJlZE9iamVjdHMoc2VsZWN0aW9uT2JqLmlkLCBmaWx0ZXJJZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpKS5waXBlKFxuICAgICAgICAgICAgbWFwKChmaWx0ZXJSZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgYXBpLm9iamVjdEZpbHRlcnMuZGVsZXRlKGZpbHRlcklkKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlclJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIG9ic2VydmVhYmxlO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -24,4 +24,4 @@ export function fireEvent(source, eventName, data = null) {
|
|
|
24
24
|
_source[eventName].emit(data);
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtYmltcGx1cy1jb21wb25lbnRzL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0E7Ozs7Ozs7Ozs7NEVBVTRFO0FBQzVFLE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBZSxFQUFFLFNBQWlCLEVBQUUsT0FBZ0IsSUFBSTtJQUM5RSxJQUFLLENBQUMsU0FBUyxFQUFHLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHdFQUF3RSxDQUFDLENBQUM7UUFDeEYsT0FBTztJQUNYLENBQUM7SUFDRCxxRUFBcUU7SUFDckUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSyxNQUFNLENBQUMsT0FBeUIsQ0FBQztJQUNqSCxJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUN2RCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUksTUFBaUIsQ0FBQztJQUNuQyxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRGVmaW5lIHRoZSB0eXBlIG9mIHRoZSB3aW5kb3cuQmltUGx1cyBvYmplY3RcbmV4cG9ydCBpbnRlcmZhY2UgQmltUGx1c09iamVjdCB7XG4gICAgW2tleTogc3RyaW5nXTogKGRhdGFEZXRhaWw6IHsgZGV0YWlsOiB1bmtub3duIH0pID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZSB7XG4gIFtrZXk6IHN0cmluZ106IHsgZW1pdDogKGFyZzA6IHVua25vd24pID0+IHZvaWQ7IH07XG59XG5cblxuLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiogZmlyZSBldmVudCBmcm9tIGNvbXBvbmVudCBpbiB0d28gd2F5cyA6IFxuICAtIGZpcmUgY3VzdG9tIGV2ZW50IGZyb20gY29tcG9uZW50IGluIHN0YW5kYXJkIHJlY29tbWVuZGVkIHdheSB2aWEuIHRoaXMuZXZlbnROYW1lLmVtaXQgZnVuY3Rpb25cbiAgXG4gIC0gY2FsbCB3aW5kb3cuQmltUGx1cy5ldmVudE5hbWUgZnVuY3Rpb24gZGlyZWN0bHkgb24gd2luZG93IG9iamVjdCAoZXZlbnROYW1lIGlzIG5hbWVcbiAgICBvZiB0aGUgZXZlbnQgd2Ugd2FudCB0byBmaXJlIGUuZy4gYmltcGx1c05hdmJhckNsaWNrZWQgc28gaXQgd2lsbCBiZSB3aW5kb3cuQmltUGx1cy5iaW1wbHVzTmF2YmFyQ2xpY2tlZCkuXG4gICAgRnVuY3Rpb24gbXVzdCBiZSBkZWZpbmVkIGluIGFwcC4gd2hlcmUgd2UgYXJlIHVzaW5nIG91ciBjb21wb25lbnRzLlxuICAgIFRoaXMgd2FzIGltcGxlbWVudGVkIGJlY2F1c2UgTVMgRWRnZSBicm93c2VyIGhhcyBwcm9ibGVtcyB3aXRoIGN1c3RvbSBldmVudHMgYW5kIGluIHNvbWUgXG4gICAgc2l0dWF0aW9ucyhlLmcuIGFmdGVyIGZpbGUgZG93bmxvYWQpIGl0IHN0b3BzIGhhbmRsaW5nIGN1c3RvbSBldmVudHMuXG4gICAgRGlzYWR2YW50YWdlIGlzIHRoYXQgd2UgY2FuIGhhdmUgb25seSBvbmUgZXZlbnQgaGFuZGxlciB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiB0aGUgbXVsdGlwbGUgY29tcG9uZW50cy5cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmV4cG9ydCBmdW5jdGlvbiBmaXJlRXZlbnQoc291cmNlOiB1bmtub3duLCBldmVudE5hbWU6IHN0cmluZywgZGF0YTogdW5rbm93biA9IG51bGwpe1xuICAgIGlmICggIWV2ZW50TmFtZSApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkVSUk9SOiBNaXNzaW5nIGV2ZW50IG5hbWUgaW4gZmlyZUV2ZW50IGZ1bmN0aW9uIGluIEJpbXBsdXMgY29tcG9uZW50cyFcIik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gQ2hlY2sgaWYgZXZlbnROYW1lIGV4aXN0cyBvbiB3aW5kb3cuQmltUGx1cyBhbmQgaWYgaXQncyBhIGZ1bmN0aW9uXG4gICAgY29uc3QgYmltUGx1cyA9ICgnQmltUGx1cycgaW4gd2luZG93KSAmJiB0eXBlb2Ygd2luZG93LkJpbVBsdXMgPT09ICdvYmplY3QnICYmICh3aW5kb3cuQmltUGx1cyBhcyBCaW1QbHVzT2JqZWN0KTtcbiAgICBpZiAoYmltUGx1cyAmJiB0eXBlb2YgYmltUGx1c1tldmVudE5hbWVdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgYmltUGx1c1tldmVudE5hbWVdKHtkZXRhaWw6IGRhdGF9KTtcbiAgICB9XG5cbiAgICBjb25zdCBfc291cmNlID0gKHNvdXJjZSBhcyBTb3VyY2UpO1xuICAgIGlmIChldmVudE5hbWUgaW4gX3NvdXJjZSkge1xuICAgICAgICBfc291cmNlW2V2ZW50TmFtZV0uZW1pdChkYXRhKTtcbiAgICB9XG59Il19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -50,4 +50,4 @@ export * from './lib/components/object-properties-header/object-properties-heade
|
|
|
50
50
|
export * from './lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.component';
|
|
51
51
|
export * from './lib/components/bimplus-overlay-dialog-error/bimplus-overlay-dialog-error.component';
|
|
52
52
|
export * from './lib/components/bimplus-general-overlay-dialog/bimplus-general-overlay-dialog.service';
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1iaW1wbHVzLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsb0ZBQW9GLENBQUM7QUFDbkcsY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLG9HQUFvRyxDQUFDO0FBQ25ILGNBQWMsb0dBQW9HLENBQUM7QUFDbkgsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyxnR0FBZ0csQ0FBQztBQUMvRyxjQUFjLDBHQUEwRyxDQUFDO0FBQ3pILGNBQWMsMEdBQTBHLENBQUM7QUFDekgsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDBGQUEwRixDQUFDO0FBQ3pHLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyw0RUFBNEUsQ0FBQztBQUMzRixjQUFjLHNGQUFzRixDQUFDO0FBQ3JHLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDBGQUEwRixDQUFDO0FBQ3pHLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLDhFQUE4RSxDQUFDO0FBQzdGLGNBQWMsMEZBQTBGLENBQUM7QUFDekcsY0FBYyxzRkFBc0YsQ0FBQztBQUNyRyxjQUFjLHdGQUF3RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtYmltcGx1cy1jb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LWJpbXBsdXMtY29tcG9uZW50cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC1iaW1wbHVzLWNvbXBvbmVudHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYmltcGx1cy1vcGFjaXR5LXByb3BlcnRpZXMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvYmltcGx1cy12aXNpYmlsaXR5LXByb3BlcnRpZXMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1jb25uZWN0aW9uLWRlc2lnbmVyL2JpbXBsdXMtY29ubmVjdGlvbi1kZXNpZ25lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWNvbm5lY3Rpb24tZGVzaWduZXIvYmltcGx1cy1jb25uZWN0aW9uLWRlc2lnbmVyLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtY29ubmVjdGlvbi1kZXNpZ25lci1yZXN1bHRzL2JpbXBsdXMtY29ubmVjdGlvbi1kZXNpZ25lci1yZXN1bHRzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtY29ubmVjdGlvbi1kZXNpZ25lci1yZXN1bHRzL2JpbXBsdXMtY29ubmVjdGlvbi1kZXNpZ25lci1yZXN1bHRzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtY29udGFjdC9iaW1wbHVzLWNvbnRhY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXIvYmltcGx1cy1mbG9hdGluZy1iYXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcHJvamVjdC1tb2RlbHMvcHJvamVjdC1tb2RlbHMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1mbG9hdGluZy1iYXItaGlkZS1vYmplY3RzL2JpbXBsdXMtZmxvYXRpbmctYmFyLWhpZGUtb2JqZWN0cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWZsb2F0aW5nLWJhci1pc29sYXRpb24tb2JqZWN0cy9iaW1wbHVzLWZsb2F0aW5nLWJhci1pc29sYXRpb24tb2JqZWN0cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWZsb2F0aW5nLWJhci1wcm9qZWN0LW5hdmlnYXRvci9iaW1wbHVzLWZsb2F0aW5nLWJhci1wcm9qZWN0LW5hdmlnYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWxhbmd1YWdlLW1lbnUvYmltcGx1cy1sYW5ndWFnZS1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtbG9jYWxpemVkLXdpZGdldC9iaW1wbHVzLWxvY2FsaXplZC13aWRnZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1tYWluLW1lbnUvYmltcGx1cy1tYWluLW1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1uYXZiYXIvYmltcGx1cy1uYXZiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1uYXZiYXIvbG9nby1zdGF0ZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1ub3RpZnkvYmltcGx1cy1ub3RpZnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1zaWRlbmF2L2JpbXBsdXMtc2lkZW5hdi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLXNpZGVuYXYtZHJhd2VyLWNvbnRlbnQvYmltcGx1cy1zaWRlbmF2LWRyYXdlci1jb250ZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtc3RvcmFnZS1pbmZvL2JpbXBsdXMtc3RvcmFnZS1pbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtdG9vbC1odWIvYmltcGx1cy10b29sLWh1Yi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2wtaHViL2JpbXBsdXMtdG9vbC1odWIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy11c2VyLW1lbnUvYmltcGx1cy11c2VyLW1lbnUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy16b29tL2JpbXBsdXMtem9vbS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWZsYXQtdHJlZS9iaW1wbHVzLWZsYXQtdHJlZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWZsYXQtdHJlZS9iaW1wbHVzLWZsYXQtdHJlZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWNvbnRleHQtbWVudS9iaW1wbHVzLWNvbnRleHQtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWNvbnRleHQtbWVudS9iaW1wbHVzLWNvbnRleHQtbWVudS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci9iaW1wbHVzLW9iamVjdC1uYXZpZ2F0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1vYmplY3QtbmF2aWdhdG9yL2JpbXBsdXMtb2JqZWN0LW5hdmlnYXRvci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2x0aXAtbWVzc2FnZS9iaW1wbHVzLXRvb2x0aXAtbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLXRvb2x0aXAtbWVzc2FnZS9iaW1wbHVzLXRvb2x0aXAtbWVzc2FnZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLXNjcm9sbGFibGUtY29udGFpbmVyL2JpbXBsdXMtc2Nyb2xsYWJsZS1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy10b3VjaC1tZW51L2JpbXBsdXMtdG91Y2gtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLXByb2plY3QtbWVudS9iaW1wbHVzLXByb2plY3QtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGFuZ3VhZ2Utc3RyaW5ncy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3Jlc2l6ZS1vYnNlcnZlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R5cGVzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYmltcGx1cy1vdmVybGF5LWRpYWxvZy13YXJuaW5nL2JpbXBsdXMtb3ZlcmxheS1kaWFsb2ctd2FybmluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZXNpemFibGUtcGFuZWwvcmVzaXphYmxlLXBhbmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29iamVjdC1wcm9wZXJ0aWVzLWhlYWRlci9vYmplY3QtcHJvcGVydGllcy1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb2JqZWN0LXByb3BlcnRpZXMtaGVhZGVyL29iamVjdC1wcm9wZXJ0aWVzLWhlYWRlci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cvYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2JpbXBsdXMtb3ZlcmxheS1kaWFsb2ctZXJyb3IvYmltcGx1cy1vdmVybGF5LWRpYWxvZy1lcnJvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9iaW1wbHVzLWdlbmVyYWwtb3ZlcmxheS1kaWFsb2cvYmltcGx1cy1nZW5lcmFsLW92ZXJsYXktZGlhbG9nLnNlcnZpY2UnO1xuXG4iXX0=
|