{"version":3,"sources":["webpack:///./node_modules/devextreme/esm/format_helper.js","webpack:///./node_modules/devextreme/esm/ui/shared/filtering.js","webpack:///./node_modules/devextreme-vue/data-grid.js","webpack:///./node_modules/devextreme/esm/ui/shared/accessibility.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_accessibility.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_modules.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_columns_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_headers/m_column_headers.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_headers.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_columns_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/data_controller/m_data_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_controller.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_data_source_adapter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/sorting/m_sorting.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/sorting.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_rows_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/rows.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/context_menu/m_context_menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/context_menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/error_handling/m_error_handling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/error_handling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/views/m_grid_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/grid_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_panel/m_header_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget_base.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/state_storing/m_state_storing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/state_storing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/selection/m_selection.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/selection.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","webpack:///./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","webpack:///./node_modules/devextreme/esm/ui/tree_view.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_chooser/m_column_chooser.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_chooser.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_collapsed.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping_expanded.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/grouping/m_grouping.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/master_detail/m_master_detail.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/master_detail.js","webpack:///./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editor_factory/m_editor_factory.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editor_factory.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_editing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_row_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_row_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_form_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_form_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/editing/m_editing_cell_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/editing_cell_based.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/validating/m_validating.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/validating.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_data_loader/m_virtual_data_loader.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_scrolling/m_virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_scrolling.js","webpack:///./node_modules/devextreme/esm/ui/overlay/utils.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.submenu.js","webpack:///./node_modules/devextreme/esm/ui/menu/ui.menu.js","webpack:///./node_modules/devextreme/esm/ui/menu.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_row.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_row.js","webpack:///./node_modules/devextreme/esm/ui/list/modules/search.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/header_filter/m_header_filter.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/header_filter.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/between.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/ui.filter_operations_dictionary.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_custom_operations.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_sync.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_sync.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder/filter_builder.js","webpack:///./node_modules/devextreme/esm/ui/filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_builder.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/filter/m_filter_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/filter_panel.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/search/m_search.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/search.js","webpack:///./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/info.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/content.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.js","webpack:///./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","webpack:///./node_modules/devextreme/esm/ui/pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/pager/m_pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/pager.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/columns_resizing_reordering/m_columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/columns_resizing_reordering.js","webpack:///./node_modules/devextreme/esm/__internal/utils/memoize.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/dom.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_aggregate_calculator.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/keyboard_navigation.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/summary/m_summary.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/column_fixing/m_column_fixing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/column_fixing.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/adaptivity/m_adaptivity.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns_core.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/adaptivity.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/virtual_columns/m_virtual_columns.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/virtual_columns.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_export.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/export/m_export.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus_utils.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/focus/m_focus.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/focus/m_focus.js","webpack:///./node_modules/devextreme/esm/__internal/m_sortable.js","webpack:///./node_modules/devextreme/esm/ui/sortable.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/const.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/dom.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/row_dragging/m_row_dragging.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/module_not_extended/row_dragging.js","webpack:///./node_modules/devextreme/esm/__internal/grids/data_grid/m_widget.js","webpack:///./node_modules/devextreme/esm/ui/data_grid.js","webpack:///./node_modules/devextreme/esm/__internal/grids/grid_core/m_utils.js"],"names":["format","value","_format","formatIsValid","valueIsValid","type","toString","getTimeFormat","showSecond","_normalizeFormat","Array","isArray","length","date","map","formatPart","join","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","millisecond","year","month","day","push","getSeconds","getMilliseconds","hour","minute","second","unshift","this","quarter","getMonthNames","getMonth","getDateFormatByTicks","ticks","maxDiff","currentDiff","i","getDatesDifferences","count","getHours","getMinutes","getDateFormatByTickInterval","startValue","endValue","tickInterval","dateUnitInterval","correctDateDifferences","toLowerCase","differences","minDate","maxDate","getDate","getFullYear","getDateUnitInterval","week","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","isDateType","dataType","getGroupInterval","column","index","result","dateIntervals","groupInterval","headerFilter","interval","indexOf","slice","getFilterSelector","target","selector","dataField","displayField","calculateDisplayValue","getFilterExpressionByRange","filterValue","endFilterValue","startFilterExpression","endFilterExpression","Date","getTime","setDate","getFilterExpressionForDate","selectedFilterOperation","dateStart","dateEnd","dateInterval","values","dateValue","split","Number","getFilterExpressionForNumber","startFilterValue","condition","defaultCalculateFilterExpression","isSearchByDisplayValue","lookup","filter","apply","arguments","__importDefault","mod","__esModule","Object","defineProperty","exports","DxHide","DxHeaderFilter","DxGroupPanel","DxGroupOperationDescriptions","DxGroupItem","DxGroupingTexts","DxGrouping","DxFrom","DxFormItem","DxFormat","DxForm","DxFilterRow","DxFilterPanelTexts","DxFilterPanel","DxFilterOperationDescriptions","DxFilterBuilderPopup","DxFilterBuilder","DxFieldLookup","DxField","DxExportTexts","DxExport","DxEmailRule","DxEditingTexts","DxEditing","DxDataGridSelection","DxDataGridHeaderFilterTexts","DxDataGridHeaderFilterSearch","DxDataGridHeaderFilter","DxCustomRule","DxCustomOperation","DxCursorOffset","DxCompareRule","DxColumnLookup","DxColumnHeaderFilterSearch","DxColumnHeaderFilter","DxColumnFixingTexts","DxColumnFixing","DxColumnChooserSelection","DxColumnChooserSearch","DxColumnChooser","DxColumn","DxCollision","DxColCountByScreen","DxChange","DxButton","DxBoundaryOffset","DxAt","DxAsyncRule","DxAnimation","DxDataGrid","DxValueFormat","DxValidationRule","DxTotalItem","DxToolbarItem","DxToolbar","DxTo","DxTexts","DxSummaryTexts","DxSummary","DxStringLengthRule","DxStateStoring","DxSorting","DxSortByGroupSummaryInfo","DxShow","DxSelection","DxSearchPanel","DxSearch","DxScrolling","DxRowDragging","DxRequiredRule","DxRemoteOperations","DxRangeRule","DxPosition","DxPopup","DxPatternRule","DxPaging","DxPager","DxOperationDescriptions","DxOffset","DxNumericRule","DxMy","DxMasterDetail","DxLookup","DxLoadPanel","DxLabel","DxKeyboardNavigation","DxItem","data_grid_1","index_1","index_2","createComponent","props","accessKey","String","activeStateEnabled","Boolean","allowColumnReordering","allowColumnResizing","autoNavigateToFocusedRow","cacheEnabled","cellHintEnabled","columnAutoWidth","columnChooser","columnFixing","columnHidingEnabled","columnMinWidth","columnResizingMode","columns","columnWidth","customizeColumns","Function","dataRowTemplate","dataSource","dateSerializationFormat","disabled","editing","elementAttr","errorRowEnabled","export","filterBuilder","filterBuilderPopup","filterPanel","filterRow","filterSyncEnabled","focusedColumnIndex","focusedRowEnabled","focusedRowIndex","focusedRowKey","grouping","groupPanel","height","highlightChanges","hint","hoverStateEnabled","keyboardNavigation","keyExpr","loadPanel","masterDetail","noDataText","onAdaptiveDetailRowPreparing","onCellClick","onCellDblClick","onCellHoverChanged","onCellPrepared","onContentReady","onContextMenuPreparing","onDataErrorOccurred","onDisposing","onEditCanceled","onEditCanceling","onEditingStart","onEditorPrepared","onEditorPreparing","onExporting","onFocusedCellChanged","onFocusedCellChanging","onFocusedRowChanged","onFocusedRowChanging","onInitialized","onInitNewRow","onKeyDown","onOptionChanged","onRowClick","onRowCollapsed","onRowCollapsing","onRowDblClick","onRowExpanded","onRowExpanding","onRowInserted","onRowInserting","onRowPrepared","onRowRemoved","onRowRemoving","onRowUpdated","onRowUpdating","onRowValidating","onSaved","onSaving","onSelectionChanged","onToolbarPreparing","pager","paging","remoteOperations","renderAsync","repaintChangesOnly","rowAlternationEnabled","rowDragging","rowTemplate","rtlEnabled","scrolling","searchPanel","selectedRowKeys","selection","selectionFilter","showBorders","showColumnHeaders","showColumnLines","showRowLines","sortByGroupSummaryInfo","sorting","stateStoring","summary","syncLookupFilterValues","tabIndex","toolbar","twoWayBindingEnabled","visible","width","wordWrapEnabled","emits","computed","instance","$_instance","beforeCreate","$_WidgetClass","default","$_hasAsyncTemplate","$_expectedChildren","isCollectionItem","optionName","dataGridHeaderFilter","dataGridSelection","createConfigurationComponent","hide","show","$_optionName","ignoreEmptyValue","message","reevaluate","validationCallback","$_isCollectionItem","$_predefinedProps","x","y","cssClass","icon","name","onClick","template","text","data","insertAfterKey","insertBeforeKey","lg","md","sm","xs","alignment","allowEditing","allowExporting","allowFiltering","allowFixing","allowGrouping","allowHeaderFiltering","allowHiding","allowReordering","allowResizing","allowSearch","allowSorting","autoExpandGroup","buttons","calculateCellValue","calculateFilterExpression","calculateGroupValue","calculateSortValue","caption","cellTemplate","customizeText","editCellTemplate","editorOptions","encodeHtml","falseText","filterOperations","filterType","filterValues","fixed","fixedPosition","formItem","groupCellTemplate","groupIndex","headerCellTemplate","hidingPriority","isBand","minWidth","ownerBand","setCellValue","showEditorAlways","showInColumnChooser","showWhenGrouped","sortIndex","sortingMethod","sortOrder","trueText","validationRules","visibleIndex","AsyncRule","button","columnHeaderFilter","columnLookup","CompareRule","CustomRule","EmailRule","NumericRule","PatternRule","RangeRule","RequiredRule","StringLengthRule","validationRule","emptyPanelText","enabled","mode","position","search","searchTimeout","title","columnChooserSearch","columnChooserSelection","timeout","allowSelectAll","recursive","selectByClick","texts","columnFixingTexts","fix","leftPosition","rightPosition","unfix","searchMode","columnHeaderFilterSearch","searchExpr","allowClearing","displayExpr","valueExpr","comparisonTarget","comparisonType","dataTypes","editorTemplate","hasValue","dataGridHeaderFilterSearch","dataGridHeaderFilterTexts","cancel","emptyValue","ok","deferred","selectAllMode","showCheckBoxesMode","allowAdding","allowDeleting","allowUpdating","changes","confirmDelete","editColumnName","editRowKey","form","newRowPosition","popup","refreshMode","selectTextOnEditStart","startEditAction","useIcons","change","editingTexts","addRow","cancelAllChanges","cancelRowChanges","confirmDeleteMessage","confirmDeleteTitle","deleteRow","editRow","saveAllChanges","saveRowChanges","undeleteRow","validationCancelChanges","allowExportSelectedData","formats","exportTexts","exportAll","exportSelectedRows","exportTo","fieldLookup","allowHierarchicalFields","bindingOptions","customOperations","fields","filterOperationDescriptions","focusStateEnabled","groupOperationDescriptions","groupOperations","maxGroupLevel","onValueChanged","customOperation","field","animation","closeOnOutsideClick","container","contentTemplate","copyRootClassesToWrapper","deferRendering","dragAndResizeArea","dragEnabled","dragOutsideBoundary","enableBodyScroll","fullScreen","hideOnOutsideClick","hideOnParentScroll","maxHeight","maxWidth","minHeight","onHidden","onHiding","onResize","onResizeEnd","onResizeStart","onShowing","onShown","onTitleRendered","resizeEnabled","restorePosition","shading","shadingColor","showCloseButton","showTitle","titleTemplate","toolbarItems","wrapperAttr","between","contains","endsWith","equal","greaterThan","greaterThanOrEqual","isBlank","isNotBlank","lessThan","lessThanOrEqual","notContains","notEqual","startsWith","filterEnabled","filterPanelTexts","clearFilter","createFilter","filterEnabledHint","applyFilter","applyFilterText","betweenEndText","betweenStartText","operationDescriptions","resetOperationText","showAllText","showOperationChooser","alignItemLabels","alignItemLabelsInAllGroups","colCount","colCountByScreen","customizeItem","formData","items","labelLocation","labelMode","minColWidth","onEditorEnterKey","onFieldDataChanged","optionalMark","readOnly","requiredMark","requiredMessage","screenByWidth","scrollingEnabled","showColonAfterLabel","showOptionalMark","showRequiredMark","showValidationSummary","validationGroup","currency","formatter","parser","precision","useCurrencyAccountingStyle","colSpan","editorType","helpText","isRequired","itemType","label","left","opacity","scale","top","allowCollapsing","autoExpandAll","contextMenuEnabled","expandMode","groupingTexts","groupByThisColumn","groupContinuedMessage","groupContinuesMessage","ungroup","ungroupAll","alignByColumn","displayFormat","showInColumn","showInGroupFooter","skipEmptyValues","summaryType","valueFormat","and","notAnd","notOr","or","allowColumnDragging","complete","delay","direction","duration","easing","from","staggerDelay","start","to","html","locateInMenu","location","menuItemTemplate","options","showText","widget","editOnKeyPress","enterKeyAction","enterKeyDirection","showColon","indicatorSrc","showIndicator","showPane","allowedPageSizes","displayMode","infoText","showInfo","showNavigationButtons","showPageSizeSelector","pageIndex","pageSize","pattern","toolbarItem","at","boundary","boundaryOffset","collision","my","of","offset","max","min","filtering","groupPaging","trim","allowDropInsideItem","autoScroll","cursorOffset","dragDirection","dragTemplate","dropFeedbackMode","group","handle","onAdd","onDragChange","onDragEnd","onDragMove","onDragStart","onRemove","onReorder","scrollSensitivity","scrollSpeed","showDragIcons","columnRenderingMode","preloadEnabled","rowRenderingMode","scrollByContent","scrollByThumb","showScrollbar","useNative","highlightCaseSensitive","highlightSearchText","placeholder","searchVisibleColumnsOnly","groupColumn","summaryItem","ascendingText","clearText","descendingText","showSortIndexes","customLoad","customSave","savingTimeout","storageKey","calculateCustomSummary","groupItems","recalculateWhileEditing","totalItems","groupItem","summaryTexts","totalItem","avg","avgOtherColumn","maxOtherColumn","minOtherColumn","sum","sumOtherColumn","item","FOCUS_STATE_CLASS","FOCUS_DISABLED_CLASS","FOCUSED_ROW_SELECTOR","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","concat","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","columnHeaders","rowsView","footer","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","viewName","event","action","$mainElement","executeKeyDown","isHandled","fireKeyDownEvent","originalEvent","keyName","saveFocusedElementInfo","addClass","selectView","$target","ariaLabel","attr","$activeElements","getActiveAccessibleElements","element","targetIndex","extend","viewInstance","viewElement","$viewElement","find","findFocusedViewElement","viewSelectors","root","getRootNode","getDocument","$focusViewElement","first","executeAction","args","handled","_createActionByOption","onDocumentVisibilityChange","visibilityState","subscribeVisibilityChange","on","unsubscribeVisibilityChange","off","hiddenFocus","preventScroll","focus","registerKeyboardAction","$element","option","getMainElement","keyDownHandler","e","mouseDownHandler","removeClass","focusinHandler","needShowOverlay","$targetElement","eq","trigger","ctrlKey","viewNames","keys","viewItemIndex","_viewName","setTabIndex","keyboardController","getController","isKeyboardEnabled","createAction","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_a","columnAlignment","_getColumnAlignment","parameters","isGroupPanelItem","rootElement","hasClass","$indicatorsContainer","_createIndicatorContainer","$span","_getIndicatorClassName","columnsController","component","indicatorAlignment","getHeaderContentAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","_getIndicatorContainer","setAria","css","$cell","$indicatorContainer","children","$container","$indicator","append","indicatorName","getColumns","$cells","getColumnElements","_updateIndicator","rowOptions","parent","cells","command","_applyColumnState","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","inherit","that","_updateLockCount","_actions","_actionConfigs","callbackNames","flags","callbackFlags","unique","syncStrategy","_endUpdateCore","optionCache","_optionCache","_setOptionWithoutOptionChange","actionName","get","prefix","setAttribute","_createComponent","_controllers","config","_createAction","bind","empty","className","componentName","NAME","containerName","addWidgetPrefix","$gridElement","closest","getWidgetContainerClass","is","Controller","ViewController","_views","View","isReady","callBase","_isReady","_requireReady","_requireRender","_requireResize","render","_$parent","requireResize","requireReady","renderCompleted","resizeCompleted","_$element","marginTop","parseFloat","marginBottom","offsetHeight","isVisible","_getTemplate","$parent","appendTo","toggleClass","_renderCore","done","fire","isResizing","_resizeCore","MODULES_ORDER_MAX_INDEX","getExtendedTypes","types","moduleExtenders","extendTypes","entries","forEach","_ref","extender","currentType","classType","registerPublicMethods","componentInstance","moduleItem","publicMethods","_","methodName","Error","processModules","componentClass","modules","modulesOrder","createModuleItems","moduleTypes","moduleItems","moduleType","sort","module1","module2","orderIndex1","orderIndex2","rootControllerTypes","rootViewTypes","_ref2","moduleName","controllers","views","_ref3","subclassOf","call","_ref4","_ref5","extenders","controllerTypes","reduce","_ref6","viewTypes","_ref7","callModuleItemsMethod","module","moduleNames","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","CONTENT_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","CONTENT_FIXED_CLASS","ROW_CLASS","GROUP_ROW_CLASS","GROUP_CELL_CLASS","DETAIL_ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","HIDDEN_COLUMNS_WIDTH","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","content","subscribeToRowEvents","$table","touchTarget","touchCurrentTarget","timeoutId","clearTouchTargets","setTimeout","clearTimeout","currentTarget","pointer","down","rowIndex","getRowIndex","rowElement","_rowPointerDown","_rowClick","_rowDblClick","getWidthStyle","setCellWidth","cell","style","copyAttributes","newElement","oldAttributes","attributes","newAttributes","nodeName","hasAttribute","removeAttribute","nodeValue","removeHandler","templateDeferred","resolve","normalizeWidth","toFixed","viewWithColumnStateMixin","$tableElement","scrollingOptions","useNativeScrolling","bounceEnabled","useKeyboard","useSimulatedScrollbar","rowType","_cellPrepared","createElement","textAlign","headerId","colspan","visibleWidth","rowObject","tagName","row","dataIndex","isAppend","_createColGroup","browser","safari","setTableRole","mozilla","preventDefault","$row","visibleColumns","_columnsController","getVisibleColumns","columnIndex","cellOptions","isHeaderRow","isDataRow","isMasterDetailRow","isGroupRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isEditing","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","removeAttr","difference","scrollWidth","clientWidth","getOptions","$fieldItemContent","delegateTarget","resultOptions","cellElement","eventType","formItemOptions","getVisibleIndex","colgroupElement","j","_createCol","col","delayedTemplates","_delayedTemplates","syncTemplates","async","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","templates","templateTimeout","_templateTimeouts","delete","add","isAsync","templateParameters","shift","doc","needWaitAsyncTemplates","renderDelayedTemplates","renderingTemplate","allowRenderToDetachedContainer","model","renderedTemplate","nodeType","templateID","_templatesCache","getTemplate","_processTemplate","templateOptions","onRendered","isDisposed","reject","columnAsync","_templateDeferreds","remove","promise","always","tableElement","not","hasRowTemplate","_getBodies","isRefreshing","_tableElement","needWrapRow","_needWrapRow","$tbody","appendTemplate","scrollLeft","_scrollLeft","scrollTo","$root","changeType","_createTable","_renderRows","rows","_getRows","columnIndices","changeTypes","_renderRow","_createRow","$wrappedRow","_wrapRowIfNeed","_renderCells","_appendRow","_addWatchMethod","_rowPrepared","_needRenderCell","_renderCell","oldValue","oldValues","$rowElement","$newRowElement","$newCells","cellUpdatedClass","$newCell","replaceWith","columnIndexOffset","getColumnIndexOffset","ariaColIndex","_getCellOptions","cellIndex","findIndex","_createCell","_setCellAriaAttributes","_renderCellContent","appendChild","renderOptions","_getCellTemplate","renderTemplate","_updateCell","isAltRow","_isAltRow","source","watchers","watch","getter","updateValueFunc","updateRowFunc","watcher","newValue","JSON","stringify","splice","update","keepRow","isExpanded","optionNames","checkChanges","widths","setColumnWidths","isFixedTableRendering","super","optionChanged","_invalidate","_dataController","Set","excludeValidators","category","afterExecute","_afterRowPrepared","columnsChanged","_columnOptionChanged","changed","_handleDataChanged","pos","$scrollContainer","_getContent","scrollChanged","forceWaiting","waitTemplatesRecursion","size","fail","$newTableElement","waitAsyncTemplates","_removeContent","setTableElement","_wrapTableInScrollContainer","$cellElements","cellElements","toArray","offsetWidth","getBoundingClientRect","rect","getTableElement","$rows","isDetailRow","isErrorRow","isRowVisible","display","isRelevantRow","_getWidths","$cols","getVisibleColumnIndex","colWidth","_getCellElementsCore","_getRowElements","columnIdentifier","getCellElements","columnVisibleIndex","_getVisibleColumnIndex","$tableElements","getTableElements","iterator","_getCellElement","_getRowElement","elements","columnOption","cellPosition","tBodies","_getRowElementsCore","paddingLeft","paddingRight","isHorizontal","_disposed","_b","window","clear","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_CLASS_SELECTOR","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","LINK","columnHeadersModule","defaultOptions","columnHeadersView","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","$indicatorElements","_getIndicatorElements","$visibleIndicatorElements","indicatorCount","sortIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","members","shiftKey","needCellContent","_renderEmptyMessage","$content","textEmpty","_getEmptyHeaderText","needSplit","includes","leftPart","rightPart","columnChooserTitle","columnChooserView","getView","$link","showColumnChooser","createTextNode","hasHiddenColumns","hasGroupedColumns","_getDefaultTemplate","resultTemplate","_isGroupingChanged","_isLegacyKeyboardNavigation","_handleActionKeyDown","_lastActionElement","headerFilterController","$column","getColumnIndexByElement","showHeaderFilterMenu","_processHeaderAction","isLoaded","_hasRowElements","_updateContent","_renderTable","getRowCount","$cellElement","rowspan","rowCount","_getHeaderTemplate","groupExpanding","_isElementVisible","elementOptions","clone","insertBefore","_alignCaptionByCenter","$indicatorElement","returnAll","_isSortableElement","$headerRows","headerRow","columnElements","bandColumnIndex","getChildrenByBandColumn","getCellIndex","$columnElements","isReorderingEnabled","isColumnOptionUsed","getName","getElementHeight","sortingOptions","onItemClick","params","changeSortOrder","itemData","columnID","setColumnOpacity","setRowsOpacity","rowColumns","registerModule","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bestFitWidth","bufferedFilterValue","COMMAND_EXPAND_CLASS","MAX_SAFE_INTEGER","GROUP_COMMAND_COLUMN_NAME","DETAIL_COMMAND_COLUMN_NAME","COLUMN_OPTION_REGEXP","DEFAULT_COLUMN_OPTIONS","DATATYPE_OPERATIONS","number","string","datetime","COLUMN_INDEX_OPTIONS","grouped","GROUP_LOCATION","COLUMN_CHOOSER_LOCATION","setFilterOperationsAsDefaultValues","defaultFilterOperations","globalColumnId","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","setName","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","columnChildrenByIndex","getColumnByIndexes","columnIndexes","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","getColumnFullPath","calculateColspan","processBandColumns","getValueDataType","getSerializationFormat","getDateSerializationFormat","updateSerializers","deserializeValue","deserializeDate","serializeValue","serializeDate","serializationFormat","parsedValue","isNaN","getAlignmentByDataType","isRTL","customizeTextForBooleanDataType","valueText","getCustomizeTextByDataType","createColumnsFromDataSource","fieldName","firstItems","_getFirstItems","processedFields","isWrapped","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","currentColumn","updateColumnSortIndexes","isSortOrderValid","updateColumnVisibleIndexes","bandedColumns","parentBandColumns","getColumnIndexByVisibleIndex","getGroupColumns","getChooserColumns","moveColumnToGroup","groupColumns","Math","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","defaultSelectedFilterOperation","findUserStateColumn","id","_hasUserState","initialIndex","hasAddedBands","columnUserState","added","assignColumns","updateIndexes","resetBandColumnsCache","resetColumnsCache","_previousColumns","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","isInitialized","some","_reinitAfterLookupChanges","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","prevValue","fullOptionName","fullOptionPath","_skipProcessingColumnsChange","_notifyOptionChanged","columnOptionCore","notFireEvent","initialColumn","optionGetter","functionsAsIs","maxDepth","optionSetter","_checkColumns","getColumnByPath","addExpandColumn","_getExpandColumnOptions","addCommandColumn","defaultSetCellValue","path","dotCount","getDataColumns","bandColumnID","parents","invisibleParents","isCustomCommandColumn","commandColumn","customCommandColumns","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","digitsCount","numberToString","str","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","convertOwnerBandToColumnReference","_bandColumnsCache","findColumn","identifier","identifierOptionName","substr","sign","column1","column2","caption1","caption2","localeCompare","strictParseNumber","parse","formattedValue","formattedValueWithDefaultFormat","groupsCount","normalizeSortingInfo","getFirstItemsCore","childItems","collapsedItems","isApplyingUserState","_isColumnsFromOptions","_dataSourceApplied","applyDataSource","_dataSource","replace","parseInt","needUpdateRequireResize","previousValue","fullName","init","_updateRequireResize","columnOptionValue","columnOptionName","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","updateColumns","isAllDataTypesDefined","_visibleColumns","_fixedColumns","_rowCount","getUserState","commonColumnSettings","groupingOptions","groupPanelOptions","checkSerializers","defaultCalculateCellValue","_compileVisibleColumnsCore","isBase","_shouldReturnVisibleColumns","_compileVisibleColumns","_getFixedColumnsCore","notFixedColumnCount","transparentColumnIndex","lastFixedPosition","transparentColumn","transparentColspan","prevColumn","newColumn","_getExpandColumnsCore","firstGroupColumn","isFixedFirstGroupColumn","parentIndex","isParentColumnVisible","_isColumnVisible","isInGroupPanel","_isColumnInGroupPanel","isCommand","indexedColumns","_getIndexedColumns","_getVisibleColumnsFromIndexed","isDataColumnsInvisible","hasVisibleDataColumns","columnDigitsCount","positiveIndexedColumns","negativeIndexedColumns","_c","_d","isDefaultCommandColumn","isFixedToEnd","_i","_this","getExpandColumns","rowspanGroupColumns","rowspanExpandColumns","_loop","firstPositiveIndexColumn","positiveIndexedRowColumns","columnsByFixing","columnsByVisibleIndex","hiddenColumnsByBand","getInvisibleColumns","getAllColumns","columnChooserColumns","fromVisibleIndex","toVisibleIndex","sourceLocation","targetLocation","sourceColumn","targetGroupIndex","fromIndex","toIndex","targetColumn","sortingMode","needResetSorting","useLocalSelector","sortColumns","sortItem","desc","compare","updateNewLookupsOnly","deferreds","valueMap","originalCallback","calculateCallbackName","calculateCallback","context","displayValueMap","getFormatByDataType","defaultFilterOperation","isColumnDataTypesUpdated","lookupDataType","valueDataType","getDisplayValue","_updateColumnOptions","hasOwnerBand","updateSortingGrouping","sortParameters","getSortDataSourceParameters","groupParameters","getGroupDataSourceParameters","filterParameters","lastLoadOptions","_customizeColumns","refresh","_updateChanges","equalSortParameters","dataController","equalFilterParameters","getCombinedFilter","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","remoteFiltering","forceIsoDateParsing","updateFilter","columnCount","beginUpdate","endUpdate","visibleColumn","childIndexes","handleStateField","state","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","isEditable","log","skipDeserialization","createFilterExpression","userDataType","calculateValue","displayValue","dataSourceOptions","paginate","load","updateValueMap","resizedCallbacks","resized","defaultOptionName","charAt","toUpperCase","alwaysGetRowIndex","onlyVisibleDirectChildren","bandColumns","columnsControllerModule","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","ControllerWithDataMixin","_items","_cachedProcessedItems","_currentOperationTypes","_dataChangedHandler","operationTypes","_columnsChangedHandler","_handleColumnsChanged","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_changingHandler","_handleChanging","_dataPushedHandler","_handleDataPushed","_isLoading","_isCustomLoading","_repaintChangesOnly","_changes","dataErrorOccurred","error","_refreshDataSource","stopOnFalse","reset","isValueChanged","store","_array","needToRefreshOnDataSourceChange","changedPagingOptions","_handleDataSourceChange","_setPagingOptions","isPageIndexChanged","isLoading","_useSortingGroupingFromColumns","returnDataField","combinedFilter","isColumnsTypesDefined","isDataSourceApplied","additionalFilter","_calculateAdditionalFilter","combineFilters","isRemoteFiltering","_readyDeferred","every","updateItems","storeLoadOptions","isCustomLoading","isLoadingAll","extra","totalCount","_columnsUpdating","filterApplied","reload","_applyFilter","_needApplyFilter","updateItemsHandler","virtualColumnsScrolling","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","pushed","_len","_key","pagingEnabled","scrollingMode","appendMode","virtualMode","isPaginateChanged","isPageSizeChanged","requireTotalCount","key","oldDataSource","_initDataSource","setDataSource","visibleItems","lastVisibleItem","rowIndexDelta","getRowIndexDelta","getDataIndex","_processItem","_generateDataItem","_processDataItem","keyOf","dataItem","generateDataValues","isModified","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","rowIndices","a","b","correctedRowIndex","allowInvisibleRowIndices","_getRowIndices","prevIndex","rowIndexCorrection","equalItems","item1","item2","strict","oldItem","oldNextItem","newItem","newNextItem","isFullUpdate","_partialUpdateRow","oldRow","newRow","visibleRowIndex","isLiveUpdate","isCellModified","modifiedValues","_isCellChanged","changedColumnIndices","_getChangedColumnIndices","isCellChanged","expandedMatch","summaryCellsMatch","summaryCells","continuationMatch","isContinuation","isContinuationOnNextPage","newIndexByKey","getRowKey","currentItems","oldItems","_isItemEquals","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","cachedProcessedItems","useProcessedItemsCache","_beforeProcessItems","_processItems","_afterProcessItems","_applyChange","loadIndex","getVisibleRows","isDataChanged","needUpdateDimensions","_needUpdateDimensions","_updateItemsCore","_fireChanged","loadingOperationTypes","loadingChanged","_loadingText","_isFilterApplying","filterExpr","prototype","filterName","clearColumnOption","searchByText","changedHandler","dataSourceChanged","dataSourceAdapterProvider","_getDataSourceAdapter","dataSourceAdapter","create","enabledRemoteOperations","isLocalStore","isCustomStore","_createDataSourceAdapterCore","cancelAll","loadError","customizeStoreLoadOptions","changing","dispose","_isSharedDataSource","_createDataSourceAdapter","_fireDataSourceChanged","byLoaded","pageCount","skipFilter","d","loadOptions","_handleDataLoaded","getIndexByKey","getRowIndexByKey","byKey","byLoadedRows","rowKeys","keyData","messageText","changesOnly","getDataSource","customizeLoadResult","_disposeDataSource","rowIndexes","searchText","getCachedStoreData","itemsCount","totalItemsCount","hasKnownLastPage","dataControllerModule","loadingTimeout","cloneItems","groupCount","calculateOperationTypes","isFullReload","fullReload","groupExpand","skip","take","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","reverse","fromEnd","_e","cachedItems","cachedData","localIndex","cacheItemIndex","cacheItem","getItemFromCache","skips","takes","getGroupItemFromCache","childCacheItem","isLast","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_isLastPage","isLastPage","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_eventsStrategy","_totalCountCorrection","_isLoadingAll","_dataLoadedHandler","_pushHandler","_handlePush","memberName","member","isSharedDataSource","resetCurrentTotalCount","_cachedStoreData","_cachedPagingData","_lastLoadOptions","isLocalOperations","operationName","fromStore","_needClearStoreDataCache","resetPagesCache","keyInfo","_applyBatch","_dataIndexGetter","indexByKey","storeData","isCacheUpdated","_needToCopyDataObject","_getKeyInfo","isReshapeMode","isVirtualMode","getItemCount","oldItemCount","useInsertIndex","skipCopying","needUpdateTotalCountCorrection","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","cachedStoreData","cachedPagingData","_needCleanCacheByOperation","_handleDataLoading","originalStoreLoadOptions","_isRefreshing","_customizeRemoteOperations","_loadingOperationTypes","_isRefreshed","_lastOperationId","operationId","_handleDataLoadingCore","cachedExtra","localLoadOptionNames","langParams","optionValue","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","mergeStoreLoadData","_handleDataLoadedCore","cacheItems","currentTotalCount","isDataLoading","_loadPageSize","_operationTypes","_dataSourceTotalCount","ceil","dataSourceLoadOptions","loadResult","_customLoadOptions","_scheduleCustomLoadCallbacks","_scheduleLoadCallbacks","loadFromStore","fireEvent","full","dataSourceAdapterType","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","prepend","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingController","editingMode","isCellEditing","_updateIndicators","HeaderPanelSortingExtender","$rootElement","$item","_processGroupItemAction","groupColumnIndex","sortingModule","headerPanel","ROWS_VIEW_CLASS","DATA_ROW_CLASS","FREE_SPACE_CLASS","ROW_LINES_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","scrollable","round","defaultCellTemplate","isDataTextEmpty","setEmptyText","textContent","innerHTML","getScrollableBottomPadding","getScrollable","summaryItems","getGroupRowSummaryText","_getDefaultGroupTemplate","tag","isGroup","isRowExpanded","_setAriaRowIndex","isPagerMode","isVirtualRowRendering","arg","isNewRow","repaintRows","deep","skipImmediate","force","_loadPanel","_renderLoadPanel","allColumnsHasWidth","_hasHeight","_renderScrollableCore","isNativeScrolling","_scrollTop","scrollOffset","_scrollRight","isScrollbarVisible","dxScrollableOptions","_createScrollableOptions","scrollHandler","_handleScroll","onScroll","_scrollable","_scrollableContainer","renderLoadPanel","contentElement","_findContentElement","newTableElement","_contentChanges","contentChanges","executors","rowInsertedClass","dataChangeType","$rowElements","toggle","_updateCells","insertAfter","last","prependTo","_renderContent","isFixed","getFixedColumns","$emptyRow","$tBodies","isTableContainer","$colgroup","$freeSpaceRowElement","_createEmptyRow","_appendEmptyRow","fireError","_rowHeight","_needUpdateRowHeight","rowsHeight","_getRowsHeight","tableElements","expr","columnsCountBeforeGroups","_getColumnsCountBeforeGroups","_renderGroupedCells","groupCellOptions","_getGroupCellOptions","groupColumnAlignment","_checkRowKeys","_renderFreeSpaceRow","updateFreeSpaceRowHeight","_renderDataRowByTemplate","_renderScrollable","resizeCompletedHandler","scrollableInstance","document","_visibilityChanged","isEmpty","_lastColumnWidths","formatValue","groupingTextsOptions","isParentBandColumn","devicePixelRatio","renderNoDataText","itemCount","freeSpaceRowElements","_getFreeSpaceRowElements","isFreeSpaceRowVisible","scrollbarWidth","getScrollbarWidth","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","webkit","_getDevicePixelRatio","isChromeLatest","chrome","version","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","setLoading","forceUpdateScrollPosition","_update","scrollableContainer","clientHeight","lastColumnWidths","columnWidths","getInstance","isRenovated","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","_updateRowHeight","_updateScrollable","dxScrollable","hasHeight","loadPanelOptions","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","_setRowsOpacityCore","groupCellIndex","isTop","isFloor","itemIndex","prevOffset","viewportBoundary","$contentElement","contentElementOffsetTop","rowElements","_getBoundaryVisibleItemIndex","getTopVisibleItemIndex","scrollToElement","rowsModule","CONTEXT_MENU","footerView","VIEW_NAMES","ContextMenuController","dxEvent","$targetRowElement","$targetCellElement","menuItems","view","targetElement","getContextMenuItems","_contextMenuPrepared","ContextMenuView","actionArgs","contextMenuInstance","stopPropagation","contextMenuModule","contextMenu","contextMenuView","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_columnHeadersView","_rowsView","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","role","url","$message","$popupContent","$errorMessageElement","$firstErrorRow","_createErrorRow","next","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorHandling","errorHandlingController","renderErrorRow","hasChanges","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","GROUP_ROW_SELECTOR","isPixelWidth","calculateFreeWidth","contentWidth","totalWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","focusedElement","selectionRange","setSelectionRange","resizingControllerMembers","_refreshSizesHandler","resizeDeferred","needFireContentReady","_checkSize","_refreshSizes","_setAriaLabel","resize","_waitAsyncTemplates","_setScrollerSpacing","_fireContentReadyAction","_getWidgetAriaLabel","getColumnWidths","headersTableElement","columnId","getColumnId","isBestFit","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","$rowsFixedTable","idx","_toggleBestFitModeForView","_footerView","_needStretch","getContentHeightLimit","resetBestFitMode","hasUndefinedColumnWidth","needBestFit","_needBestFit","hasMinWidth","isColumnWidthsCorrected","resultWidths","_setVisibleWidths","getActiveElement","getSelectionRange","_toggleBestFitMode","_toggleContentMinHeight","_maxWidth","_getBestFitWidths","isFocusOutsideWindow","bottom","_correctColumnWidths","expandColumnWidth","_processStretch","c","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasAutoWidth","hasWidth","_hasWidth","isHiddenColumn","averageColumnsWidth","_getAverageColumnsWidth","realColumnWidth","_getRealColumnWidth","lastColumnIndex","getLastResizableColumnIndex","borderWidth","resultSizes","groupSize","tableSize","unusedIndexes","diff","diffElement","floor","onePixelElementsCount","groupWidth","ratio","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","importantMarginClass","$groupElement","detach","updateDimensions","checkSize","_initPostRenderHandlers","prevResult","_resizeDeferred","_synchronizeColumns","_resetGroupElementHeight","_updateDimensionsCore","groupElement","_getGroupElement","scrollTop","isWidgetVisible","isGridSizeChanged","_lastWidth","_lastHeight","_devicePixelRatio","vScrollbarWidth","hScrollbarWidth","setScrollerSpacing","_setScrollerSpacingCore","editorFactory","rootElementHeight","isHeightSpecified","maxHeightHappened","isMaxHeightApplied","scrollHeight","updateSize","_updateLastSizes","_renderDimensions","ResizingController","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_groupElement","_getTableRoleName","isFirstRender","_rootElement","_renderViews","gridViewModule","resizing","synchronizeScrolling","gridView","HEADER_PANEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","specificClass","secondClass","userToolbarOptions","toolbarOptions","_getToolbarItems","itemRenderedCallback","onItemRendered","userItems","_normalizeToolbarItems","defaultItems","defaultProps","defaultButtonsByNames","normalizedItems","_toolbar","_toolbarOptions","$headerPanel","$toolbar","userItem","_getToolbarOptions","isDefinedByUser","_isDisabledDefinedByUser","parts","normalizedItem","headerPanelModule","updateToolbarDimensions","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","registerModulesOrder","DataGrid","_activeStateUnit","_deprecatedOptions","since","alias","device","platform","deviceType","logHeaderFilterDeprecatedWarningIfNeed","_clean","_renderContentImpl","templateName","warn","DATE_REGEX","parseDates","exec","UTC","StateStoringController","getStorage","storage","localStorage","getUniqueStorageKey","getItem","setItem","_state","_isLoaded","_windowUnloadHandler","_savingTimeoutID","_saveState","_loadState","isEnabled","getDataState","pagerView","getPageSizes","processLoadState","selectionController","exportController","updateState","selectionChanged","_initialPageSize","_initialFilterValue","selectionOnlyChanged","exportSelectionOnly","selectionOnly","DEFAULT_FILTER_VALUE","filterSyncController","hasFilterState","getFilterValueFromColumns","stateStoringModule","stateLoaded","isStateLoading","applyState","oldState","newState","oldStateHash","newStateHash","save","isVirtualScrollingMode","setUserState","stateStoringController","_restoreStateTimeoutID","isDeferredSelection","EDITOR_CELL_CLASS","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","COMMAND_SELECT_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","startSelectionWithCheckboxes","changeItemSelection","control","isSeveralRowsSelected","keyIndex","isComplexKey","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","_selectionMode","_isSelectionWithCheckboxes","_selection","_createSelection","_updateSelectColumn","_deselectRemovedOnPush","_updateSelectedOnPush","removedKeys","selectedKeys","isSelected","selectedKey","deselectRows","updateChanges","getSelectedRowsData","selectionOptions","virtualPaging","legacyScrollingMode","maxFilterLengthInRequest","ignoreDisabledItems","hasGroupColumns","select","plainItems","isItemSelected","selected","isSelectableItem","getItemData","oldData","loadItemIndex","focusedItemIndex","shiftItemIndex","minIndex","maxIndex","_updateSelectedItems","isSelectColumnVisible","_getSelectionConfig","argument","isDeferredMode","selectedItemKeys","removedItemKeys","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","_updateCheckboxesState","itemIndexes","addedItemKeys","_selectedItemsInternalChange","selectedRowsData","selectedItems","currentSelectedRowKeys","currentDeselectedRowKeys","_fireSelectionChanged","isDataItem","oldSelectionMode","selectionMode","selectRows","getSelectAllState","_isOnePageSelectAll","selectAll","deselectAll","preserve","isDeselect","isSelectAll","getSelectedItemKeys","indexes","getSelectedItems","loadSelectedItemsWithFilter","visibleItemIndex","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","currentItem","isUpdateSelection","_updateSelectAllValue","$editor","selectAllValue","hasSelection","dxCheckBox","isEmptyData","createEditor","parentType","_attachCheckBoxClickEvent","_renderSelectCheckBox","_updateCheckboxesClass","hold","isSelectionDisabled","isClickableElement","isCommandSelect","isCheckBoxesHidden","WIDGET_CLASS","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_CLASS","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS","CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","ITEM_DATA_KEY","TOGGLE_ITEM_VISIBILITY_CLASS","CUSTOM_COLLAPSE_ICON_CLASS","CUSTOM_EXPAND_ICON_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","INVISIBLE_STATE_CLASS","DISABLED_STATE_CLASS","SELECTED_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","ITEM_URL_CLASS","TreeViewBase","_supportedKeys","click","$itemElement","_itemClickHandler","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","$focusedElement","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","rootItem","_getItemData","_toggleExpandedNestedItems","enter","_showCheckboxes","space","asterisk","minus","len","node","_dataAdapter","getNodeByItem","_toggleExpandedState","_getNodeElement","cache","_encodeString","internalFields","$nodeByKey","each","$node","querySelector","_widgetClass","_getDefaultOptions","animationEnabled","dataStructure","expandAllEnabled","hasItemsExpr","selectNodesRecursive","expandNodesRecursive","expandIcon","collapseIcon","selectAllText","onItemSelectionChanged","onItemExpanded","onItemCollapsed","scrollDirection","virtualModeEnabled","rootValue","expandEvent","createChildren","onSelectAllValueChanged","integrationOptions","useDeferUpdateForTemplates","_defaultOptionsRules","_initSelectedItems","_syncSelectionOptions","selectionChangePromise","_selectionChangePromise","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","searchEnabled","previousSelectAllEnabled","_selectAllEnabled","previousItemsContainer","_itemContainer","_detachClickEvent","_detachExpandEvent","selectAllExists","_$selectAllItem","_renderSelectAllItem","_removeSelection","getFullData","_hasChildren","toggleSelection","_optionChanged","_initDataAdapter","_filter","_initAccessors","repaint","_attachExpandEvent","setOption","_useCustomChildrenLoader","_loadChildrenByCustomLoader","newItems","_isVirtualMode","_initVirtualMode","custom","internal","_isDataStructurePlain","parentNode","invocationResult","then","_combineFilter","_dataSourceLoadErrorHandler","_init","_initStoreChangeHandlers","_dataSourceChangedHandler","_initialized","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_dataSourceLoadingChangedHandler","resultFilter","$wrapper","itemsContainer","addItem","isFiltered","_updateLevel","_parentIdGetter","removedKey","getNodeByKey","_markChildrenItemsToRemove","_removeItems","removeItem","childrenKeys","counter","parentId","_getContainerByParentKey","_renderItems","getChildrenNodes","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_getAccessors","accessors","_getDataAdapterOptions","_this$_dataSource","_this$_dataSource$loa","_this$_dataSource$loa2","multipleSelection","_isSingleSelection","recursiveSelection","_isRecursiveSelection","recursiveExpansion","selectionRequired","_initMarkup","getRootNodes","$nodeContainer","skipContentReadyAction","_skipContentReadyAndItemExpanded","_expandedGetter","_createDOMElement","_node$internalFields","_node$internalFields$","attrs","_displayGetter","level","_getLevel","hasChildNodes","expanded","_hasCustomExpanderIcons","nodes","_renderItem","_renderedItemsCount","nodeIndex","nodeData","showCheckBox","_renderCheckBox","_toggleSelectedClass","_renderChildren","_setAriaSelectionAttribute","_renderCustomExpanderIcons","_renderDefaultExpanderIcons","_loadSublevel","childNodes","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_getChildNodes","_loadNestedItems","getNodesByItems","_getItemExtraPropNames","_addContent","link","_getLinkContainer","_getIconContainer","_getTextContainer","$nestedNodeContainer","childNodesByChildrenKeys","childNode","firstChild","_updateParentsState","_normalizeIconState","_executeItemRenderAction","itemElement","_getNode","_getItemRenderAction","getPublicNode","$nodeElement","expandedEventName","$itemsContainer","_itemSelector","isElementNode","_getNodeByElement","_decodeString","_nodeHasRenderedChildren","_createLoadIndicator","toggleExpansion","_updateExpandedItemsUI","$icon","_renderExpanderIcon","iconClass","_renderToggleItemVisibilityIconClick","$expandIcon","$collapseIcon","isNodeExpanded","_toggleCustomExpanderIcons","eventName","isHiddenNode","parentKey","$childExpandIcons","$childCollapseIcons","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","publicNode","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","fx","stop","animate","_fireExpandedStateUpdatedEvent","_itemDXEventHandler","_itemEventHandler","hasNewItems","_LoadIndicator$getIns","$loadIndicator","$toggleItem","_emptyMessageContainer","_contentAlreadyRendered","isAllSelected","_onSelectAllCheckboxValueChanged","before","_toggleSelectAll","toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_disabledGetter","_toggleNodeDisabledState","toggleNodeDisabledState","checkbox","_itemOptionChanged","property","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","initiator","_findItemElementByItem","handler","getData","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_itemEventHandlerImpl","_extendActionArgs","_itemContextMenuHandler","_createEventHandler","_itemHoldHandler","_itemClass","_itemDataKey","_attachClickEvent","$itemContainer","clickEventNamespace","itemSelector","pointerDownEventNamespace","nodeSelector","_getItemClickEventData","_itemPointerDownHandler","_itemClick","getElementsByClassName","beforeExecute","isDefaultPrevented","_updateSelectionToFirstItem","$items","startIndex","_updateSelectionToLastItem","_focusInHandler","_updateFocusState","isSelectAllItem","_setFocusedItemTimeout","_setFocusedItem","$activeItem","_getActiveItem","_findNonDisabledNodes","$nodes","_moveFocus","FOCUS_UP","FOCUS_DOWN","FOCUS_FIRST","FOCUS_LAST","FOCUS_LEFT","FOCUS_RIGHT","_nodeElements","$prevItem","_prevItem","prevItemElement","_getNodeItemElement","$nextItem","_nextItem","nextItemElement","$firstItem","$lastItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","encodeURI","decodeURI","resolveWith","selectItem","unselectItem","expandItem","collapseItem","getNodes","getTreeNodes","getSelectedNodes","getSelectedNodesKeys","unselectAll","_allItemsExpandedHandler","expandAll","expandingPromises","Promise","allSettled","_this$_allItemsExpand","_allItemsExpanded","collapseAll","getExpandedNodesKeys","scrollToItem","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","containerElement","keysToExpand","resultCallback","callbacksByNodes","_dispose","setEditorClass","TreeViewSearch","_addWidgetPrefix","_updateSearch","_repaintContainer","_updateDataAdapter","searchValue","_getNodeContainer","_searchEditor","_getSearchEditorOptions","rootNodes","_focusTarget","_cleanItemContainer","isSearchMode","selectAllEnabled","_addWidgetClass","_removeSearchBox","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","COLUMN_OPTIONS_USED_IN_ITEMS","processItems","chooserColumns","isSelectMode","isRecursive","isRecursiveWithColumns","columnChooserControllerMembers","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","ColumnChooserController","columnChooserMembers","_isWinDevice","devices","real","win","columnChooserClass","columnChooserOptions","themeName","isGenericTheme","isMaterial","dxPopupOptions","class","getPosition","shortcut","_popupContainer","setPopupAttributes","isBandColumnsUsed","isDragMode","_columnChooserList","_updateItems","_renderTreeView","treeViewConfig","itemTemplate","searchEditorOptions","_prepareSelectModeConfig","_prepareDragModeConfig","isUpdatingSelection","addNodesToArray","flatNodesArray","_isUpdatingColumnVisibility","changedColumns","onlyVisibleChanged","needUpdate","all","_updateItemsSelection","_initializePopupContainer","isColumnHidden","isColumnChooserVisible","$overlayContent","right","popupContainer","hiddenColumns","ColumnChooserView","columnChooserModule","_appendColumnChooserItem","hintText","_getToolbarButtonClass","isMoveColumnDisallowed","createGroupFilter","groups","createOffsetFilter","lastLevelOnly","filterElement","currentFilter","GroupingHelper","findGroupInfoByKey","groupsInfo","hash","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","_groupsInfo","totalCountCorrection","_isVirtualPaging","calculateItemsCount","isGroupItemCountable","callback","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","callbackResult","pop","currentParents","_updateGroupInfoOffsets","groupInfo","pathIndex","groupInfoData","allowCollapseAll","oldGroups","_group","cleanGroupsInfo","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","foreachGroups","processGroupItems","expandedInfo","isLastGroupExpanded","paths","lastCount","findGroupInfo","updateGroupInfoItem","isLastGroupLevel","addGroupInfo","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","applyContinuationToGroupItem","groupLevel","expandedItemIndex","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","isDataDeferred","makeDataDeferred","loadGroupItems","currentGroupCount","currentGroupIndex","currentGroup","requireGroupCount","groupSummary","expandedFilters","expandedPath","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","isFinite","isVirtualPaging","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","isLastGroup","_updatePagingOptions","updateTotalItemsCount","_processPaging","firstItem","_processSkips","lastItem","maxTakeCount","_processTakes","handleGroup","groupCountQuery","groupOffsetQuery","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","arrangeSortingInfo","appendCollapsedPath","collapsedGroup","keyValue","pathValue","_totalCountWasIncreasedByCollapsedItems","query","multiLevelGroup","enumerate","groupedData","removeLastItemsCount","needRemoveFirstItem","offsetInfo","itemsCountCorrection","beginPageIndex","dataSourceItems","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_EXPAND_CLASS","DATAGRID_GROUP_ROW_CLASS","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","_collapseExpandAll","isExpand","beginLoading","_changeRowExpandCore","endLoading","changeRowExpand","_hasGroupLevelsExpandState","resetCache","handleDataLoading","handleDataLoaded","handleDataLoadedCore","GroupingDataControllerExtender","_processGroupItems","_processGroupItem","groupedColumns","collectContinuationItems","resultItems","onGroupingMenuItemClick","clearGrouping","isGroupPanelVisible","current","allowDragging","canDrag","GroupingHeaderPanelExtender","_appendGroupingItem","_isGroupPanelVisible","isRendered","$groupPanel","_updateGroupPanelContent","_createGroupPanelItem","$groupPanelItem","$toolbarElement","_renderGroupPanelItems","$groupedColumnElement","isGroupingAllowed","isColumnGrouped","GroupingRowsViewExtender","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","columnHeadersViewExtender","beginGroup","getExpandCellTemplate","_isProcessedItem","MASTER_DETAIL_CELL_CLASS","MASTER_DETAIL_ROW_CLASS","masterDetailModule","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","_getRowIndicesForExpand","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","isFixedColumns","_updateFixedMasterDetailGrids","masterRowIndex","getRowElement","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","isEditRow","_isDetailRow","$detailCell","CHECKBOX_SIZE_CLASS","EDITOR_INLINE_BLOCK","EditorFactoryMixin","getResultConfig","inputAttr","checkEnterBug","ios","getTextEditorConfig","isEnterBug","sharedData","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","setValue","valueChangeTimeout","updateValueTimeout","_input","valueChangeEvent","prepareDateBox","editorName","useMaskBehavior","blur","prepareTextBox","isSearching","prepareNumberBox","prepareLookupEditor","displayGetter","postProcess","_options$editorType","selectBox","stopWatch","showClearButton","prepareCheckBox","prepareCustomEditor","prepareEditor","prepareDefaultEditor","dxDateBox","dxNumberBox","dxTextBox","_prepareDefaultEditor","editorElement","isOnForm","showValidationMark","$editorElement","dateBox","defaultEnterKeyHandler","registerKeyHandler","dxTextArea","FOCUS_OVERLAY_CLASS","FOCUSED_ELEMENT_CLASS","MODULE_NAMESPACE","UPDATE_FOCUS_EVENTS","DX_HIDDEN","ViewControllerWithMixin","$dataGridElement","rowSelector","focusedElementSelector","elementIsInsideGrid","$focus","_getFocusedElement","isHideBorder","$focusCell","_getFocusCellSelector","_needHideBorder","loseFocus","isFocusOverlay","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusCore","calculate","h","oversize","v","_$focusedElement","_focusTimeoutID","renderFocusOverlay","focused","isElementInCurrentGrid","_$focusOverlay","align","elemCoord","focusOverlayPosition","precise","_updateFocusOverlaySize","setup","_updateFocusHandler","_updateFocus","_subscribedContainerRoot","_getContainerRoot","_attachContainerEventHandlers","Node","DOCUMENT_FRAGMENT_NODE","host","editorFactoryModule","CELL_MODIFIED_CLASS","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","DATA_EDIT_DATA_REMOVE_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_CELL","EDIT_MODE_FORM","EDIT_MODE_POPUP","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","REQUIRED_EDITOR_LABELLEDBY_MODES","MODES_WITH_DELAYED_FOCUS","READONLY_CLASS","LINK_CLASS","LINK_ICON_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","edit","undelete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","ROW_REMOVED","isRenovatedScrollable","IS_RENOVATED_WIDGET","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","EDIT_ROW","NEW_ROW_TEMP_KEY_PREFIX","GUID_LENGTH","createFailureHandler","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","getEditingTexts","addRowToNode","generateNewRowTempKey","isNewRowTempKey","getButtonIndex","getButtonName","getEditorType","isCustomEditorType","forEachFormItems","callBack","tabs","_lastOperation","_deferreds","_saveEditorHandler","_updateEditColumn","_updateEditButtons","_internalState","_optionsByReference","editMode","needLabel","getEditMode","getChanges","needReset","_silentOption","internalData","_getInternalData","editIndex","_getOldData","getPopupContent","_isDefaultButtonVisible","buttonName","editingOptions","allowAction","buttonIndex","haveCustomButtons","_getButtonConfig","_isButtonVisible","_createButton","_getEditingButtons","_renderEditingButtons","_isButtonDisabled","getFirstEditableColumnIndex","getFirstEditableCellInRow","_inputFocusTimeoutID","up","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","isEqual","_handleChangesChange","resetChanges","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","cancelEditData","_addInsertInfo","_addInternalData","isOptionChanged","_pageIndex","_refreshCore","isEditRowKeyDefined","silent","_refocusEditCell","_focusEditingCell","getKeyByRowIndex","_setEditRowKey","_getVisibleEditRowIndex","isKeyEqual","isEditRowByIndex","_getVisibleEditColumnIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","insertInfo","loadedRowIndex","_getInsertRowIndex","_getNewRowPosition","insertAfterOrBeforeKey","isLastPageLoaded","isInsert","_getLoadedRowIndex","_generateNewItem","_processDataItemCore","modified","removed","_fireDataErrorOccurred","_getInsertIndex","getChangeKeyValue","_createInsertInfo","_setInsertAfterOrBeforeKey","allItems","isViewportBottom","getBottomVisibleItemIndex","insertKey","maxInsertIndex","editItem","insertChange","lastPageIndex","_addRow","param","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_initNewRow","_addRowCore","_navigateToNewRow","insertIndex","initialOldEditRowIndex","editRowIndex","_addChange","focusController","pageIndexToInsertRow","_getPageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_afterInsertRow","_focusFirstEditableCellInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_beforeFocusElementInRow","_setEditColumnName","_getColumnByName","editColumn","columnName","_getEditColumn","_isEditingStart","_beforeUpdateItems","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","repaintForm","saveEditData","removeChange","_removeInternalData","_updateInsertAfterOrBeforeKeys","_resetEditIndices","func","waitForDeferredOperations","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","$focusableElement","focusAndSelectElement","_beforeFocusCallback","android","$editCell","editColumnIndex","_checkAndDeleteRow","showDialogTitle","confirmResult","_deleteRowCore","_removeChange","_afterDeleteRow","onSavingParams","results","dataChanges","changeCopy","_beforeSaveEditData","_executeEditingAction","insert","newData","doneDeferred","_processRemoveCore","processIfBatch","hasSavedData","changesLength","isError","_processRemoveIfError","_processRemove","isSaving","_resolveAfterSave","_saving","_saveEditDataInner","_afterSaveEditData","_fireOnSaving","_processChanges","_processSaveEditDataResult","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","isFullRefresh","_fireSaveEditDataEvents","isEditColumnVisible","_isEditColumnVisible","_getEditCommandCellTemplate","isEditRowDefined","isButtonDisabled","_isEditButtonDisabled","setToolbarItemDisabled","_cancelEditDataCore","_beforeCancelEditData","_afterCancelEditData","isPageChanged","skipCurrentRow","rowKey","setCellValueResult","_updateRowValues","addDeferred","forceUpdateRow","_prepareChange","hasEditData","isEditCell","_updateEditRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_getRowIndicesForCascadeUpdating","_updateRowImmediately","_updateRowWithDelay","_updateEditRowCore","_validateEditFormAfterUpdate","elementContainer","_editForm","$focusedItem","selectionStart","changeParams","_getDefaultEditorTemplate","editingStartOptions","isRowMode","isRowBasedEditMode","isRowEditing","getEditFormTemplate","updateFieldValue","useLegacyColumnButtonTemplate","$button","iconType","localizationName","getButtonLocalizationNames","titleButtonTextByClassNames","revert","buttonItems","prepareButtonItem","shouldHighlightCell","allowEditAction","needCallback","_allowEditAction","modifiedValue","visibleEditRowIndex","cellModified","editingModule","_editingController","_updateEditItem","processDataItem","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","getColumnTemplate","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElementCore","_getColumnIndexByElement","isEditedCell","isShowEditorAlways","editCell","withoutSaveEditData","closeEditCell","_pointerDownTimeout","_editCellByClick","isEditForm","isEditableCell","_editCellPrepared","hasTemplate","highlightDataCell","_formItemPrepared","getCellOptions","_focusEditorIfNeed","editButtonItems","prepareEditButtons","excludedOptions","shouldInvalidate","editingControllerExtender","Base","hasUpdateChanges","it","isRowEditMode","isVisibleInRowEditMode","$editingCell","getFocusedCellInRow","editingRowBasedModule","_updateEditFormDeferred","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","isFormOrPopupEditMode","getEditFormRowIndex","hasEditRow","onlyInsertChanges","_repaintEditPopup","popupVisible","_editPopup","_$popupContent","_showEditPopup","_hideEditPopup","editForm","isMobileDevice","editPopupClass","popupOptions","_getSaveButtonConfig","_getCancelButtonConfig","_getPopupEditFormTemplate","$popupContainer","_getEditPopupHiddenHandler","formTemplate","isPopupForm","localize","defaultAnimation","_handleFormOptionChange","_handlePopupOptionChange","editPopup","popupOptionName","detailCellOptions","formTemplateOptions","isReadOnly","rowData","labelMark","getItemID","_getFormEditItemTemplate","validator","validatorOptions","contents","renderFormEditorTemplate","dxValidator","dataGetter","detailOptions","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","itemId","formID","getFormEditorTemplate","rule","itemVisible","baseEditFormOptions","getEditFormOptions","$formContainer","$buttonsContainer","editingFormBasedModule","getEditForm","editFormRowIndex","isPopupEditing","_isFormItem","$pointerDownTarget","needCreateHandlers","targetComponent","isCellOrBatchEditMode","isEditorPopup","checkEditorPopup","isAnotherComponent","isAddRowButton","isCellEditMode","_closeEditItem","$dropDownEditorOverlay","$componentElement","isBatchEditMode","isCurrentComponentElement","$targetCell","isEditingCell","_needToCloseEditableCell","isEditColumnNameDefined","oldColumnIndex","_editCellFromOptionChanged","_editCell","coreResult","executeOperation","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","_processCanceledEditingCell","_setEditColumnNameByIndex","_closeEditCellCore","_beforeCloseEditCellInBatchMode","columnsCount","_applyModified","_handleEditColumnNameChange","_repaintEditCell","needResetIndexes","isBatchMode","callBaseResult","_isRowDeleteAllowed","_resetModifiedClassCells","needEditingButtons","getEditRowIndex","isUpdateInCellMode","focusPreviousEditingCell","_needUpdateRow","editingCellBasedModule","INVALIDATE_CLASS","REVERT_TOOLTIP_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","REVERT_BUTTON_CLASS","VALIDATOR_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","FORM_BASED_MODES","COMMAND_TRANSPARENT","VALIDATION_STATUS","valid","invalid","pending","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","validationData","_getValidationData","validated","keyHash","isObjectKeyHash","isValid","validationResults","brokenRules","brokenRule","getChangeByKey","_getBrokenRules","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","validationResult","validateGroup","_currentCellValidator","_findGroup","getGroupConfig","validators","resetRowValidationResults","_rowValidating","isRowDataModified","setDisableApplyValidationResults","groupConfig","updateCellValidationResult","validationStatusChanged","getCellValidationResult","status","cancelCellValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","editor","getEditorInstance","renderCellPendingIndicator","disposeCellPendingIndicator","oldDataFromState","needCreateValidator","isCellOrBatchEditingAllowed","_syncInternalEditingData","getValue","useDefaultValidator","adapter","applyValidationResults","applyValidationResult","validatorInitialized","validatorDisposing","originBypass","bypass","defaultAdapterBypass","validationRequestsCallbacks","flag","cellParams","stateRestored","currentCellValue","validate","_ref8","validationStatus","validatingModule","validating","validatingController","updateValidationState","startInsertIndex","_ref9","isNotCanceled","addInValidItem","isInserted","invisibleColumns","invisibleColumnValidators","isCellVisible","createValidator","disposeValidators","_createInvisibleColumnValidators","isFullValid","_updateRowAndPageIndices","validateCell","_showErrorRow","shouldResetValidationState","columnsWithValidatingEditors","validationState","resetRowAndPageIndices","removeCellValidationResult","currentValidator","getCellValidator","refocus","setCellValidationStatus","isValidated","needValidation","isCellInvalid","isInvalidCell","_rowIsValidated","$tooltipElement","_revertTooltip","$overlayContainer","revertTooltipClass","tooltipOptions","propagateOutsideClick","$buttonElement","buttonOptions","onPositioned","_positionedHandler","overlayOptions","$nextFixedRowElement","$groupCellElement","nextRowOptions","visibility","isOverlayVisible","__skipPositionProcessing","isRevertButton","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","messages","editorPopup","myPosition","atPosition","hasFixedColumns","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","_hideFixedGroupCell","validationMessages","_getValidationMessagesSelector","fixedColumns","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","startColumnIndex","endColumnIndex","$revertContent","contentOffset","revertContentOffset","skipValidator","setValidator","_showRevertButton","showValidationMessage","errorMessages","_showValidationMessage","_hideValidationMessage","isCurrentValidatorProcessing","updateCellState","getWidgetInstance","oldValidationStatus","_getValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","hasValidationRules","rowEditStateChanged","cellValidationStateChanged","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","contentTable","LEGACY_SCROLLING_MODE","needTwoPagesLoading","_controller","isVirtual","getViewportItemIndex","getBeginPageIndex","_cache","getEndPageIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getViewportPageCount","_dataOptions","preventPreload","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","virtualItemsCount","begin","itemSize","getItemSizes","getPreloadPageCount","previous","isAppendMode","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","removeCount","correctCount","removeItemCount","itemsLength","updateLoading","_lastPageIndex","controller","newPageIndex","lastPageSize","maxPageIndex","defaultPageIndex","endPageIndex","pageIndexForLoad","delayDeferred","_delayDeferred","onChanged","_setViewportPositionCore","removeInvisiblePages","lastCacheLength","beginItemsCount","endItemsCount","end","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","_isVirtual","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","isDocument","isElement","ELEMENT_NODE","eventsStrategy","topOffset","scrollMethod","getScrollElementParent","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_position","_isScrollingBack","_contentSize","_itemSizes","_sizeRatio","positionChanged","_dataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","scrollingTimeout","changingDuration","getScrollingTimeout","_scrollTimeoutID","viewportItemIndex","defaultItemSize","getItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","prevPosition","getItemIndexByPosition","setViewportItemIndex","sizes","virtualContentSize","contentHeightLimit","isEnd","currentItemIndex","getItemOffset","viewportItemIndexChanged","isRefresh","_windowScroll","setViewportPosition","topIndex","bottomIndex","maxGap","isScrollingBack","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","FREESPACE_CLASS","VIRTUAL_ROW_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","VirtualScrollingDataSourceAdapterExtender","_virtualScrollController","_totalCount","_loadPageCount","_getVirtualScrollDataOptions","_renderTime","_startLoadTime","handleDataChanged","newMode","virtualScrollController","r","getDelayDeferred","loadPageCount","takeIsDefined","VirtualScrollingRowsViewExtender","removeEmptyRows","$emptyRows","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","scrollPosition","itemSizes","_updateContentPosition","startRenderTime","throwHeightWarningIfNeed","_removeRowsElements","_restoreErrorRow","_updateBottomLoading","$virtualRow","rowHeights","_getRowHeights","correctedRowHeights","_correctRowHeights","setContentItemSizes","viewportHeight","visibleRows","firstCountableItem","lastLoadIndex","isRender","rowHeight","_updateContentItemSizes","$virtualRows","prevFixed","_isFixedTableRendering","_addVirtualRow","table","hasColumnLines","$columns","$virtualColumns","classes","isExpandColumn","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","_findBottomLoadPanel","zeroTopPosition","isScrollTopChanged","hasScrolled","isValidScrollTarget","_updateViewportSize","hasBottomLoadPanel","isViewportChanging","needToThrow","_heightWarningIsThrown","scrollPos","loadIfNeed","virtualScrollingModule","updateTimeout","minTimeout","renderingThreshold","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_rowsScrollController","_loadViewportParams","getLoadPageParams","rowsScrollController","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","getRowPageSize","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","loadViewport","_updateLoadViewportParams","isItemCountable","_itemCount","isNextAfterLast","countableOnly","delta","cancelEmptyChanges","prevCountable","prevRowType","isPrevRowNew","currentIndex","wasCountableItem","newRows","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","firstLoadIndex","preloadCount","byLoadedPage","loadedPageIndex","loadedTake","topPreloadCount","getPreloadedRowCount","bottomPreloadCount","skipWithPreload","loadingTake","currentPageIndex","viewPortItemIndex","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","checkLoading","viewportIsFilled","changedParams","_getChangedLoadParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","_updateVisiblePageIndex","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","_loadItems","needToUpdateItems","noPendingChangesInEditing","currentTake","newTake","proxyMethod","masterDataGridUpdated","isNewVirtualMode","_resizeTimeout","_lastTime","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","actualOffset","$window","elementOffset","offsetTop","offsetBottom","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","DX_SUBMENU_CLASS","orientation","onHoverStart","_renderContextMenuOverlay","_renderDelimiter","$contentDelimiter","_getOverlayOptions","_overlayPositionedActionHandler","_showDelimiter","_hoverEndHandler","_toggleFocusClass","hoverStartAction","_hoverStartHandler","$rootItem","submenu","_drawSubmenu","_hideSubmenu","$submenu","containerOffset","vLocation","hLocation","rootOffset","offsetLeft","rootWidth","rootHeight","submenuWidth","submenuHeight","_isMenuHorizontal","_overlay","DX_MENU_CLASS","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_MENU_ITEM_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_CONTEXT_MENU_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_HOVER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","DEFAULT_DELAY","ACTIONS","submenuDirection","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","adaptivityEnabled","_setOptionsByReference","selectedItem","rootMenuElements","_itemElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","operation","navigationAction","$newTarget","_getAvailableItems","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_showSubmenu","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","_dimensionChanged","$menuItems","_getSummaryItemsWidth","_isAdaptivityEnabled","containerWidth","_toggleAdaptiveMode","_visibleSubmenu","_addCustomCssClass","_render","_initAdaptivity","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_$adaptiveContainer","rtl","_ignoreFunctionValueDeprecation","menuOptions","_treeviewItemClickHandler","$hamburger","_renderHamburgerButton","_getTreeViewOptions","_getAdaptiveOverlayOptions","delayType","_keyboardHandler","_renderContainer","$itemFrame","_createSubmenu","_renderBorderElement","_getKeyboardListeners","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","showSubmenuMode","disabledExpr","selectedExpr","itemsExpr","onFocusedItemChanged","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","onLeftFirstItem","_moveMainMenuFocus","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","_isDesktopDevice","$currentItem","$newItem","addedItems","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","$selectedItem","_selectedItemClass","selectedItemData","_clearSelectedItems","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","getOverlayContent","submenus","submenuMouseLeaveName","hover","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","eventArgs","relatedTarget","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","_getDelay","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","submenuPosition","$closestItem","mouseMoveEventName","move","_getItemElementByEventArgs","isSelectionActive","which","_isItemDisabled","_getShowFirstSubmenuMode","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","pointers","_renderSubmenuItems","_updateSelectedItemOnClick","_initActions","_changeSubmenusOption","_removeAdaptivity","OPERATION_ICONS","notcontains","startswith","endswith","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","ARIA_SEARCH_BOX","isOnClickApplyFilterMode","$editorContainer","componentNames","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getFormatOptionsByColumn","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","getFilterValue","isFilterRange","isRangeStart","updateFilterValue","_applyFilterViewController","setHighLight","normalizedValue","columnFilterValue","isBetween","$editorRangeElements","$menu","_updateEditorValue","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","filterRangeOverlayClass","$overlay","$prevElement","prev","_initFilterRangeOverlay","_updateFilterRangeOverlay","_renderFilterOperationChooser","_renderFilterCell","accessibilityOptions","_getFilterInputAccessibilityAttributes","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","lookupDataSource","getWrappedLookupDataSource","lookupOptions","$filterRangeContent","_showFilterRange","isCellWasFocused","restoreFocus","menu","_focusEditor","selectable","_getFilterOperationMenuItems","properties","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","availableFilterOperations","descriptionName","updateLookupDataSource","filterChanged","applyFilterViewController","editorDataSource","shouldUpdateFilter","__dataGridSourceFilter","DataControllerFilterRowExtender","skipCalculateColumnFilters","filters","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_headerPanel","_getHeaderPanel","enableApplyButton","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","columnsResizer","getFilterRangeOverlayInstance","_targetPoint","_needUpdateLookupDataSource","filterItem","_prepareFilterItem","_isShowApplyFilterButton","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","getSelectAllCheckBox","listComponent","updateListSelectAllState","selectAllCheckBox","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","_listComponent","list","getListComponent","isFilterBuilder","fillSelectedItemKeys","isExclude","hasChildren","hasChildrenWithSelection","hideHeaderFilterMenu","$columnElement","getPopupContainer","updatePopup","headerFilterMenu","_cleanPopupContent","headerFilterOptions","useDefaultSearchExpr","headerFilterDataSource","filterSearchExpr","_normalizeHeaderFilterOptions","applyHeaderFilter","_initializeListContainer","needShowSelectAllCheckbox","widgetOptions","_getSearchExpr","pageLoadMode","showSelectionControls","_selectedItemsUpdating","oldSelected","filterValueIndex","isExcludeFilterType","generalHeaderFilter","specificHeaderFilter","generalDeprecated","specificDeprecated","headerFilterMixin","$headerFilterIndicator","_isHeaderFilterEmpty","indicatorLabel","DATE_INTERVAL_FORMATS","ungroupUTCDates","dateParts","dates","isMonthPart","convertDataFromUTCToLocal","getHeaderFilterGroupParameters","queryByOptions","isUTCFormat","HeaderFilterController","_headerFilterView","_updateSelectedState","currentLevel","valueSelector","displaySelector","getHeaderItemText","getDisplayFormat","firstValueText","secondValue","secondValueText","_normalizeGroupItem","remoteGrouping","isLookup","normalizeLookupDataSource","cutoffLevel","useDefaultSearch","convertUTCDates","origPostProcess","isGroupPanel","showHeaderFilterMenuBase","columnElement","previousOnHidden","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","_needUpdateFilterIndicators","_updateHeaderFilterIndicators","HeaderPanelHeaderFilterExtender","getCurrentColumn","headerFilterModule","headerFilterView","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","getConfig","valueSeparator","notForLookup","isblank","isnotblank","OPERATION_NAME","getIconByFilterOperation","filterOperation","getNameByFilterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","boolean","object","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","criteria","convertGroupToNewStructure","setGroupValue","substring","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","getCaptionByOperation","getOperationFromAvailable","availableOperations","getCustomOperation","filteredOperations","getAvailableOperations","isLookupField","isOperationForbidden","isCustom","getDefaultOperation","createCondition","updateConditionByOperation","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","getField","extendedFields","getItems","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","getConditionFilterExpression","filterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","loadSingle","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","lastIndexOf","arr","getCaptionWithParents","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","lastItemIndex","t","baseOperation","grid","getFullText","itemText","parentText","lastIndex","div","closeEditor","fieldInfo","itemsDeferred","_values","getSelectedItemsTexts","selectedItemsTexts","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","getFilteringColumns","_skipSyncColumnOptions","filterConditions","filterCondition","filteringColumns","syncFilterValue","isFilterSyncActive","_initSync","_getSyncFilterRow","_getSyncHeaderFilter","filterBuilderCustomOperations","DataControllerFilterSyncExtender","filterSyncEnabledValue","currentColumnForHeaderFilter","currentColumnForFilterRow","needRemoveCurrentColumnFilter","getCustomFilterOperations","calculatedFilterValue","matched","match","propertyName","_parseColumnPropertyName","syncHeaderFilter","syncFilterRow","ColumnHeadersViewFilterSyncExtender","filterSyncModule","filterSync","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","FilterBuilder","closePopupOnTargetScroll","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","_updateFilter","_getModel","_initEditorFactory","_getDefaultGroupOperation","_this$option$","_this$option","actionConfig","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","$group","_createGroupElement","$groupContent","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","_getGroupOperations","groupMenuItem","$operationButton","_createButtonWithMenu","removeMenu","info","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","currentOperation","$valueButton","siblings","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","isSingleChild","$removeButton","addGroupHandler","addConditionHandler","_createValueText","$text","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","input","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","activeElement","_removeEvents","createValueText","_createValueEditor","$popup","$menuContainer","_wrapperClassExternal","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_filterBuilder","_disposePopup","_getPopupContentTemplate","_getPopupToolbarItems","$filterBuilderContainer","filterBuilderModule","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","isColumnsDefined","$leftContainer","_renderFilterBuilderText","$filterElement","_getFilterElement","$textElement","_getTextElement","_filterValueBuffer","$checkElement","_getCheckElement","$removeButtonElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","getFilterText","customText","clearFilterValue","tabindex","fieldText","operationText","_getValueMaskedText","hasCustomOperation","_getValueText","_getConditionText","isInnerGroup","textParts","getConditionText","getGroupText","groupText","filterPanelModule","filterPanelView","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","parseValue","searchModule","searchFilter","onQueryDone","valueGetter","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","$searchPanel","getSearchTextEditor","_searchParams","isCaseSensitive","stringNormalizer","_getStringNormalizer","normalizedSearchText","resultTextNodes","$contents","normalizedText","$textNode","$searchTextSpan","firstContentElement","after","_highlightSearchTextCore","isEquals","_getFormattedSearchText","textNodes","_findHighlightingTextNodes","textNode","_highlightTimer","_highlightSearchText","pageIndexChanged","pageSizeChanged","getElementStyle","_getElementComputedSt","computedStyle","getElementContentWidth","padding","getElementWidth","margin","getElementMinWidth","_excluded","viewFunction","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","rootElementRef","calculateLargeDisplayMode","pageSizes","pageSizesWidth","pages","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pagesHtmlWidth","ResizableContainerProps","TemplateProp","actualIsLargeDisplayMode","actualInfoTextVisible","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","_this$_effects$","_this$_effects$2","_effects","gridCompatibility","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showPageSizes","restAttributes","currentElementsWidth","elementsWidth","setState","__state_argument","_this$props","restProps","BasePagerProps","freeze","PagerProps","getOwnPropertyDescriptors","defaultPageSize","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","_this$props$infoText","getFormatter","KeyboardActionContext","widgetRef","LightButtonProps","keyboardEffect","subscribeToClick","defaultValue","keyboardContext","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","_excluded2","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","delimiter","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","_this$config","createPage","rtlPageIndexes","EditorStateProps","isSimulator","EditorLabelProps","DEFAULT_VALUE","componentProps","componentType","templateNames","NumberBoxProps","isReactComponentWrapper","NumberBoxPropsType","validationError","validationErrors","validationMessageMode","validationMessagePosition","_this$props$value","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","valueChange","PagerSmallProps","PagerSmallPropsType","updateWidth","_this$pageIndexRef$cu","el","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","classNames","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","navigate","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","__getterCache","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","nextProps","nextState","SelectBoxProps","SelectBoxPropsType","PageSizeSmallProps","PageSizeSmallPropsType","p","pageSizesText","PageSizeLargePropsType","onPageSizeChange","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","setRootElementRef","componentWillUpdate","aria","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","createFakeInstance","keyboardAction","_this$props$onKeyDown","fakePagerInstance","normalizedDisplayMode","classesMap","_this$props2","__newValue","_newValue","newPageSize","_this$props$pageSize$","getProps","_wrapKeyDownHandler","twoWay","allowNull","MAX_PAGES_COUNT","getPageIndex","PagerView","_pager","pagerOptions","useLegacyKeyboardNavigation","_pageSizes","pagerVisible","isPager","isPaging","isDataSource","isScrolling","skipProcessingPagingChange","pagerModule","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","DRAGGING_COMMAND_CELL_CLASS","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","_positionChanged","_tablePositionController","_unsubscribeFromCallback","_subscribeToCallback","_isShown","_renderSeparator","_isTransparent","columnsSeparatorTransparent","outerX","_parentElement","cursorName","startAnimate","toOptions","_isDragging","_dragOptions","draggingPanels","draggingPanel","boundingRect","getBoundingRect","_dropOptions","targetColumnIndex","targetColumnElement","posX","posY","_columnsResizerViewController","isCommandColumn","sourceIndex","sourceColumnIndex","_getVisibleIndexObject","sourceColumnElement","_onSelectStart","onselectstart","drag","whiteSpace","getSwatchContainer","eventData","dragOptions","moveDeltaX","abs","deltaX","moveDeltaY","deltaY","newLeft","newTop","dockHeader","targetDraggingPanel","_getDraggingPanelByPos","isVerticalOrientation","axisName","pointsByTarget","pointsByColumns","_generatePointsByColumns","centerPosition","dock","_resetTargetColumnOptions","drop","isNextColumnResizingMode","headersRowHeight","getHeadersRowHeight","_$parentContainer","point","cellsLength","isNextColumnMode","isRtlParentStyle","_isRtlParentStyle","firstPointColumnIndex","nextColumn","currentX","columnsSeparatorWidth","_columnsSeparatorView","parentOffset","parentOffsetLeft","isDragging","_draggingHeaderView","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","currentColumnIndex","outerWidth","moveByX","_isHeadersRowArea","_previousParentOffset","_getTargetPoint","_isReadyResizing","changeCursor","_trackerView","nextColumnIndex","_getNextColumnIndex","currentHeader","getHeaderElement","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_setupResizingInfo","getPointsByColumns","_pointCreated","_pointsByColumns","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","_moveSeparator","_startResizing","_endResizing","resizingInfo","isPercentWidth","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","_subscribesToCallbacks","subscribe","_unsubscribeFromEvents","_unsubscribeFromCallbacks","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","_subscribeToEvents","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","_unsubscribes","diffOffsetTop","columnsHeadersHeight","getHeight","scrollBarWidth","columnsResizerController","draggingHeaderView","isDraggingOrResizing","_pagerView","targetPoint","isCustomGroupColumnPosition","checkIsCustomGroupColumnPosition","wasOnlyCommandColumns","isColumnAfterExpandColumn","isFirstExpandColumn","sourceColumnReorderingDisabled","otherColumnReorderingDisabled","draggingHeader","nameDraggingPanel","subscribeToEvents","dragHeader","moveHeader","dropHeader","_blockSeparatorView","blockSeparator","columnsSeparator","_animationColumnIndex","_headerPanelView","_columnChooserView","allowMoveColumn","headersView","separator","_getSeparator","hasTargetVisibleIndex","allowDrop","hideSeparators","moveColumn","columnsResizingReorderingModule","columnsSeparatorView","blockSeparatorView","trackerView","tablePosition","compareByReference","lastArgs","compareByValue","createCacheFunc","firstArgs","firstResult","originFunc","compareFunc","lastResult","argsEquals","MEMOIZE_DEFAULT_OPTIONS","compareType","memoize","cachedFunc","_len2","_key2","ATTRIBUTES","dragCell","FREESPACE_ROW_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","COLUMN_HEADERS_VIEW","FUNCTIONAL_KEYS","getCellToFocus","GridCoreKeyboardNavigationDom","isDragCell","DATAGRID_GROUP_FOOTER_CLASS","isGroupFooterRow","isNotFocusedRow","_isRowEditMode","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","_isVirtualScrolling","_selectionController","_focusController","_memoFireFocusedCellChanged","_memoFireFocusedRowChanged","focusedHandlerWithContext","focusedHandler","renderCompletedWithContext","rowsViewFocusHandlerContext","rowsViewFocusHandler","_updateFocusTimeout","_fastEditingStarted","_focusedCellPosition","_canceledCellPosition","initViewHandlers","initDocumentHandlers","setupFocusedView","_isNeedScroll","_focusedView","_scrollToElement","isRelatedTargetInRowsView","isLink","_isEventInCurrentGrid","$focusedCell","_getFocusedCell","isCell","needSetFocusPosition","_updateFocusedCellPosition","$rowsView","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","unsubscribeFromRowsViewFocusEvent","subscribeToRowsViewFocusEvent","initPointerEventHandler","initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","unsubscribeFromPointerEvent","unsubscribeFromKeyDownEvent","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","_pointerEventAction","clickSelector","_pointerEventHandler","subscribeToPointerEvent","_keyDownListener","_keyDownHandler","subscribeToKeyDownEvent","focusType","needStopPropagation","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","ctrl","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_escapeKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","alt","altKey","getVisibleRowIndex","$event","getRow","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","setCellFocusType","_closeEditCell","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","_scrollBy","isPageUp","pageStep","isFocusedRowElement","_getElementType","isRowFocusType","isFocusedSelectionCell","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","eventTarget","focusedViewElement","_handleTabKeyOnMasterDetailCell","_editingCellTabHandler","_targetCellTabHandler","allVisibleColumns","renderedVisibleColumns","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","_getMaxHorizontalOffset","_isFixedColumn","_isColumnRendered","leftEdgePosition","_isColumnVirtual","_getHorizontalScrollPositionOffset","scrollBy","positionOffset","$currentCell","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","_getCellElementFromTarget","elementType","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","getFirstValidCellInRow","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","setFocusedColumnIndex","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","isShift","_focusEditFormCell","searchTextEditor","keyCode","isCellValid","_isCellValid","$nextCell","isVerticalDirection","_fireFocusChangingEvents","_focus","isDeleting","fastEditingKey","fromCharCode","isInteractiveElement","isExpandCommandCell","_isInsideEditForm","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","setRowFocusType","setFocusedRowIndex","prevRowIndex","resetFocusedRow","_resetFocusedRow","_allowRowUpdating","skipFocusEvent","isEditor","isDisabled","activeElementSelector","_isCellElement","_focusElement","rowsViewElement","$focusedView","getFocusedView","$view","disableFocus","$focusElement","focusedView","isRowFocus","one","isRenderView","_needFocusEditingCell","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","cellEditModeHasChanges","isNewRowBatchEditMode","isNewRowInEditMode","setFocusedCellPosition","_getFixedColumnIndexOffset","_getFocusedColumnIndexOffset","_applyColumnIndexBoundaries","renderFocusState","newRowIndex","code","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","getMaxRowIndex","lastVisibleIndex","isFirstValidCell","hasValidCells","checkingPosition","_isCellByPositionValid","visibleColumnCount","isLastRow","isClick","isShowWhenGrouped","isDataCell","rowItems","_isLegacyNavigation","$result","focusedCellPosition","includeCommandCells","newFocusedCellPosition","_getNewPositionByCode","isLastCellOnDirection","_isCellInRow","visibleColumnIndex","_isAllowEditing","_startEditCell","colIndex","editResult","isEditResultDeferred","isFastEditingStarted","editorValue","editResultDeferred","waitTemplatesDeferred","_editingCellHandler","$input","$inputElement","keyDownEvent","keyPressEvent","inputEvent","val","$widgetContainer","fireRowEvent","isCellFocusType","newColumnIndex","prevColumnIndex","localRowIndex","$newFocusedRow","prevFocusedRowIndex","getFocusedRowIndexByKey","getCell","restoreFocusableElement","$editForm","$masterDetailCell","_$cell","_processNextCellInMasterDetail","isCanceled","keyboardNavigationModule","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","updateFocusedRowIndex","updateFocusElementTabIndex","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","editorInstance","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","_processCanceledEditCellPosition","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","adaptiveColumns","depthFirstSearch","depth","array","isCount","aggregator","normalizeAggregate","aggregate","errors","_data","_groupLevel","_totalAggregates","totalAggregates","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","aggregates","_accumulate","_seed","_aggregate","_finalize","maxLevel","seedFn","stepFn","finalizeFn","innerNode","seed","NaN","aggregateIndex","step","fin","finalize","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","$summaryItems","getSummaryText","getSummaryCellOptions","getGroupAggregates","FooterView","footerItems","needUpdateScrollLeft","_updateScrollLeftPosition","$newTable","$newRow","totalColumnIndices","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","getInsertedData","applyAddedData","removedData","getRemovedData","applyRemovedData","updatedData","updatedItems","set","sortGroupsBySummary","sortGroupsBySummaryCore","sortBy","thenBy","sortedItems","totalSummary","hasOperations","_isDataColumn","isGroupFooterVisible","_isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","_calculateSummaryCells","calculateTargetColumnIndex","summaryCellsByColumns","summaryIndex","columnCaption","summaryTotalItems","_footerItems","oldSummaryCells","_getSummaryCells","summaryCell","getUpdatedData","_prepareUnsavedDataSelector","commonSkipEmptyValues","_prepareAggregateSelector","summaryProcess","totalValue","summaryItemIndex","groupSummaryItems","_findSummaryItem","_addSortInfo","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","_getAggregates","_getSummarySortByGroups","methods","summaryItemName","_refreshSummary","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","groupCellColSpan","alignByColumnCellCount","$groupCell","_getAlignByColumnCellCount","_renderGroupSummaryCellsCore","_getSummaryCellIndex","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","getTransparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedColumns","fixedTableElement","_fixedTableElement","_partialUpdateFixedRow","needUpdateColspan","$fixedTable","$fixedDataRows","needPartialUpdate","_partialUpdateFixedTable","_correctColumnIndicesForFixedColumns","fixedCorrection","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isSelectAllCell","isEmptyCell","isGroupCell","alignByFixedColumnCellCount","headerRowIndex","fixedCellElements","fixedColumn","getVisibleIndexByColumn","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","synchronizeRows","isColumnWidthsSynced","isColumnWidthChanged","needVisibleColumns","setFixedTableColumnWidths","needSynchronizeRows","boundingClientRectElement","$fixedRowElements","fixedRowHeights","heightTable","_getClientHeight","heightFixedTable","fixedRowHeight","ColumnHeadersViewFixedColumnsExtender","columnFixingOptions","$transparentColumnElement","$fixedColumnElements","getFixedColumnElements","RowsViewFixedColumnsExtender","isHover","hasResizeTimeout","contentClass","scrollDelay","_getScrollDelay","_fixedScrollTimeout","wheel","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","scrollableTop","scrollableHeight","isPreventDefault","_updateFixedTablePosition","_detachHoverEvents","_attachHoverEvents","needFocus","vWidth","hWidth","styles","$fixedContent","elasticScrollTop","reachedBottom","$scrollableContent","$scrollableContainer","maxScrollTop","_getElasticScrollTop","_applyElasticScrolling","getFixedColumnsOffset","FooterViewFixedColumnsExtender","columnFixingModule","correctIndex","_pointsByFixedColumns","ROWS_VIEW","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","toggleExpandAdaptiveDetailRow","focusCellHandler","adaptiveColumnsControllerMembers","_getEditMode","focusAction","_isItemModified","renderFormTemplate","isItemEdited","_isItemEdited","_renderFormViewTemplate","percentWidths","_getItemPercentWidth","_isPercentWidth","_hiddenColumns","hiddenColumn","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_isColumnHidden","_calculatePercentWidth","contentColumns","widthOption","columnFitted","partialWidth","resultWidth","_calculateColumnWidth","adaptiveExpandedKey","_getAdaptiveColumnVisibleIndex","_hideVisibleColumn","cssClassNameToRemove","$hiddenCommandCells","_showHiddenCellsInView","$hiddenCells","_hideVisibleColumnInView","rowsCount","getRowsCount","cancelClassAdding","currentVisibleIndex","_findCellElementInRow","_hideVisibleCellInView","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","hiddenQueue","_isVisibleColumnsValid","needHideColumn","rootElementWidth","_getCommandColumnsWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","_calculatePercentWidths","_getNotTruncatedColumnWidth","columnBestFitWidth","_hideAdaptiveColumn","_$itemContents","$itemContent","alwaysExpanded","userFormOptions","_getFormItemsByHiddenColumns","defaultFormOptions","formOptions","_form","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","adaptiveHidden","isAdaptiveVisible","updateHidingQueue","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","AdaptiveColumnsController","isCellOrBatchMode","_adaptiveController","adaptivityModule","_adaptiveColumnsController","createFormByHiddenColumns","hidingColumnsQueueLength","getHidingColumnsQueue","hiddenColumnsLength","getHiddenColumns","$adaptiveDetailItems","getAdaptiveDetailItems","getItemContentByColumnIndex","isClickable","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","$itemContents","oldExpandRowIndex","_isForceRowAdaptiveExpand","collapseAdaptiveDetailRow","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","isAdaptiveDetailRowExpanded","expandedKey","_adaptiveExpandedKey","adaptiveController","oldHiddenColumns","hidingColumnsQueue","hideRedundantColumns","_showHiddenColumns","_updateScrollableTimeoutID","expandRowIndex","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","updateCommandAdaptiveAriaLabel","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","endIndex","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","setScrollPosition","_restoreScrollTop","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_virtualVisibleColumns","currentPosition","getColumnPageSize","getTotalWidth","_changedTimeout","_setScrollPositionCore","needColumnsChanged","_fireColumnsChanged","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","columnPageSize","columnRenderingThreshold","prepareItems","emptyCell","defaultSetter","cols","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","initialColumnWidthsByColumnIndex","selectedRowsOnly","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_options","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","isHeadersVisible","bold","columnStyles","getHeaderStyles","getColumnStyles","getGroupRowStyle","getHeaderRowCount","isTotalCell","_getTotalCellStyleId","getColumnsByAllRows","_correctCellIndex","_initOptions","gridGroupSummaryItems","isExcelJS","cellSourceData","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","_convertFromGridGroupSummaryItems","_getGroupValue","_value","correctCellIndex","isSummaryAlignByColumn","exportColspan","currentHeaderRow","columnWidthsByColumnIndex","_getColumnWidths","_headersView","_needColumnExporting","currentColspan","_calculateExportColspan","_updateColumnWidth","_getEmptyCell","childColumns","childColumn","isTotal","estimatedItemsCount","sourceItems","beforeGroupFooterItems","groupFooterItems","_getFooterSummaryItems","summaryValues","groupColumnCount","k","loadAll","_updateGroupValuesWithSummaryByColumn","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","_processUnExportedItems","needLoadItemsOnExportingSelectedItems","hasOnExporting","hasActionSubscription","throwWarningIfNoOnExportingEvent","columnsLastRowVisibleColumns","getAction","fileName","_isSelectedRows","callbackList","editingButtonsUpdated","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","_needDisableExportButton","toolbarButtonOptions","_widgetOptions","dropDownOptions","_index","exportOptions","formatType","formatName","exportAllIcon","exportSelectedIcon","itemA","itemB","hasUnsavedChanges","isColumnLocationChanged","_isExportButtonVisible","getSortFilterValue","sortInfo","getSelector","rawValue","safeValue","UiGridCoreFocusUtils","ROW_FOCUSED_CLASS","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","_focusRowByIndex","_fireFocusedRowChanged","_focusRowByKey","isAutoNavigateToFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","_getLastItemIndex","isRowFocused","_isLocalRowIndex","waitReady","isVirtualScrolling","virtualItems","virtualItemsBegin","visibleRowsCount","visiblePagesCount","_navigateToRow","isFocusedRowKeyDefined","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","triggerUpdateFocusedRow","scrollTopPosition","currentFocusedRowIndex","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","changedItem","scrollToElementVertically","$prevRowFocusedElement","focusedRow","$focusedRowTable","$firstRow","focusModule","_fireFocusedCellChanged","isRowElement","sortByKey","notSortedKeys","getDataIndexGetter","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","_updateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","pagingWithoutVirtualScrolling","isReload","isValidRowIndexByKey","isValidFocusedRowIndex","isSameRowIndex","_focusRowByKeyOrIndex","getGlobalRowIndexByKey","_calculateGlobalRowIndexByGroupedData","_calculateGlobalRowIndexByFlatData","groupFilter","useGroup","_generateFilterByKey","_concatWithCombinedFilter","_generateOperationFilterByKey","booleanFilter","_generateBooleanFilter","sortFilter","dataSourceKey","keyPart","updateFocusedRow","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","isPagingByRendering","getScrollElementPosition","currentScrollTop","resetFilterApplying","isRowClick","_isFocusedRowInsideGroup","groupPath","expandRow","_expandGroupByPath","isGroupKey","_getGroupPath","_calculateExpandedRowGlobalIndex","dataOffset","groupContinuationCount","currentPageOffset","SORTABLE","PLACEHOLDER_CLASS","CLONE_CLASS","isElementVisible","transform","transition","stopAnimation","getScrollableBoundary","$scrollable","paddingTop","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","moveItemOnDrop","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","$sourceElement","_getSourceElement","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_getScrollable","sourceScrollableInfo","scrollProp","_correctItemPoints","_movePlaceholder","_getSourceDraggable","lastItemPoint","isVertical","_isVerticalOrientation","sourceElementSize","scrollSize","positionProp","lastPointPosition","elementPosition","freeSize","_getItems","$sortable","sortable","_unsubscribeFromSourceScroll","_getTargetDraggable","targetDraggable","$targetDraggable","itemPoint","sourceEvent","cancelAdd","cancelRemove","sourceDraggable","isSourceDraggable","_allowDrop","_fireAddEvent","_fireRemoveEvent","_moveItem","_fireReorderEvent","cursorPosition","pageY","pageX","_updatePlaceholderPosition","_verticalScrollHelper","$placeholderContainer","_$dragElement","itemsSelector","_getItemsSelector","_$content","draggableVisibleIndex","_allowReordering","itemWidth","itemElements","visibleItemElements","visibleItemCount","$draggableItem","_getDraggableElement","needCorrectLeftPosition","needCorrectTopPosition","_isValidPoint","points","forceUpdate","_getItemPoints","positionPropName","skipOffsetting","isAnotherDraggable","_getActualFromIndex","_normalizeToIndex","_getEventArgs","_getAction","placeholderElement","dragElement","_$scrollable","scrollableWidth","overflowLeft","overflowRight","$placeholderElement","_makeWidthCorrection","$prevTargetItemElement","$itemElements","$targetItemElement","_toggleDragSourceClass","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","scrollContainer","clientRect","pageYOffset","pageXOffset","showPlaceholder","_togglePlaceholder","_moveItems","fullUpdate","_updateDragSourceClass","_$sourceElement","_createPlaceholder","prevVisibleItemElement","_updatePlaceholderSizes","_isPositionVisible","isLastVerticalPosition","outerPlaceholderHeight","_makeLeftCorrection","_move","elementSize","positions","prevToIndex","_getDraggableElementSize","prevPositions","_getPositions","animationConfig","CLASSES","cellFocusDisabled","handleIcon","commandDrag","sortableWithoutHandle","createHandleTemplateFunc","GridCoreRowDraggingDom","RowDraggingExtender","_updateHandleColumn","isHandleColumnVisible","_getHandleTemplate","currentSortableName","anotherSortableName","togglePointerEventsStyle","_sortableFixed","rowsViewOffset","onDraggableElementShown","$dragElement","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","onDragEnter","onDragLeave","hasFixedSortable","_updateSortable","_sortable","gridOptions","$dataGridContainer","_getDraggableGridOptions","rowDraggingModule","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","NO_DATA_CLASS","SCROLLING_MODE_OPTION","ROW_RENDERING_MODE_OPTION","DATE_INTERVAL_SELECTORS","getIntervalSelector","nameIntervalSelector","equalSelectors","selector1","selector2","formatObject","editorData","dxComponents","widgetName","filter1","filter2","normalizeGroupingLoadOptions","noDataClass","noDataElement","_getNoDataText","changeNames","changesWithChangeNamesCount","defaultResult","sortParameters1","sortParameters2","ignoreIsExpanded","pointCreated","notCreatePoint","prevItemOffset","selectionEnd","isFocused","isSelectTextOnEditingStart","_loadItemDeferred","hasResizableColumns","$grid","getPixelRatio","lookupDataSourceOptions","cachedUniqueRelevantItems","previousTake","previousSkip","hasGroupPaging","hasLookupOptimization","sliceItems","canUseCache","flatMap","newDataSource","logWarning","_logDeprecatedOptionWarning","specificName","logSpecificDeprecatedWarningIfNeed"],"mappings":"kHAAA,0EAqBe,sBAAmB,CAC9BA,OAAQ,SAASC,EAAOC,GACpB,IAAIC,EAAgB,eAASD,IAAY,KAAOA,GAAW,eAAcA,IAAY,eAAWA,GAC5FE,EAAe,eAAUH,IAAU,eAAOA,GAC9C,OAAKE,GAAkBC,EAGnB,eAAWF,GACJA,EAAQD,IAEf,eAASC,KACTA,EAAU,CACNG,KAAMH,IAGV,eAAUD,GACH,OAAmBD,OAAOC,EAAOC,GAExC,eAAOD,GACA,OAAiBD,OAAOC,EAAOC,QAD1C,GAbW,eAAUD,GAASA,EAAMK,WAAa,IAiBrDC,cAAe,SAASC,GACpB,OAAOA,EAAa,WAAa,aAErCC,iBAAkB,SAAST,GACvB,OAAKU,MAAMC,QAAQX,GAGf,IAAMA,EAAOY,OACNZ,EAAO,GAEX,SAASa,GACZ,OAAOb,EAAOc,KAAI,SAAUC,GACxB,OAAO,OAAiBf,OAAOa,EAAME,MACrCC,KAAK,MARFhB,GAWfiB,2BAA4B,SAASC,EAAiBC,GAClD,IAAIC,EAAe,GACfC,EAA6BF,GAAkBD,EAAgBI,eAAiBJ,EAAgBK,MAAQL,EAAgBM,OAASN,EAAgBO,KAWrJ,OAVIJ,EACAD,EAAaM,MAAK,SAAUb,GACxB,OAAOA,EAAKc,aAAed,EAAKe,kBAAoB,IAAM,OAEvDV,EAAgBI,aACvBF,EAAaM,KAAK,gBAElBR,EAAgBW,MAAQX,EAAgBY,SAAWT,GAA8BH,EAAgBa,SACjGX,EAAaY,QAAQC,KAAK1B,cAAcW,EAAgBa,SAExDb,EAAgBK,MAAQL,EAAgBM,OAASN,EAAgBO,IAC7DN,GAAkB,UAAYA,EACvB,gBAEPC,EAAaY,QAAQ,aACdC,KAAKxB,iBAAiBW,IAGjCF,EAAgBK,MAAQL,EAAgBM,MACjC,eAEPN,EAAgBK,MAAQL,EAAgBgB,QACjC,iBAEPhB,EAAgBK,KACT,OAEPL,EAAgBgB,QACT,UAEPhB,EAAgBM,OAASN,EAAgBO,KACrCN,EACAC,EAAaY,SAAQ,SAAUnB,GAC3B,OAAO,OAAiBsB,cAAc,eAAetB,EAAKuB,YAAc,IAAM,OAAiBpC,OAAOa,EAAM,UAGhHO,EAAaY,QAAQ,eAElBC,KAAKxB,iBAAiBW,IAE7BF,EAAgBM,MACT,QAEPN,EAAgBO,KACZN,EACAC,EAAaY,QAAQ,OAErBZ,EAAaY,SAAQ,SAAUnB,GAC3B,OAAO,OAAiBb,OAAOa,EAAM,aAAe,KAAO,OAAiBb,OAAOa,EAAM,UAG1FoB,KAAKxB,iBAAiBW,IAE1Ba,KAAKxB,iBAAiBW,IAEjCiB,qBAAsB,SAASC,GAC3B,IAAIC,EACAC,EACAC,EACJ,GAAIH,EAAM1B,OAAS,EAEf,IADA2B,EAAU,OAAUG,oBAAoBJ,EAAM,GAAIA,EAAM,IACnDG,EAAI,EAAGA,EAAIH,EAAM1B,OAAS,EAAG6B,IAC9BD,EAAc,OAAUE,oBAAoBJ,EAAMG,GAAIH,EAAMG,EAAI,IAC5DF,EAAQI,MAAQH,EAAYG,QAC5BJ,EAAUC,QAIlBD,EAAU,CACNhB,MAAM,EACNC,OAAO,EACPC,KAAK,EACLI,KAAMS,EAAM,GAAGM,WAAa,EAC5Bd,OAAQQ,EAAM,GAAGO,aAAe,EAChCd,OAAQO,EAAM,GAAGX,aAAe,EAChCL,YAAagB,EAAM,GAAGV,kBAAoB,GAGlD,IAAIR,EAAea,KAAKhB,2BAA2BsB,GACnD,OAAOnB,GAEX0B,4BAA6B,SAASC,EAAYC,EAAUC,GACxD,IAAIC,EACAC,EAAyB,SAASjC,EAAiB+B,EAAchD,GACjE,OAAQgD,GACJ,IAAK,OACL,IAAK,UACD/B,EAAgBM,MAAQvB,EAC5B,IAAK,QACDiB,EAAgBO,IAAMxB,EAC1B,IAAK,OACL,IAAK,MACDiB,EAAgBW,KAAO5B,EAC3B,IAAK,OACDiB,EAAgBY,OAAS7B,EAC7B,IAAK,SACDiB,EAAgBa,OAAS9B,EAC7B,IAAK,SACDiB,EAAgBI,YAAcrB,IAG1CgD,EAAe,eAASA,GAAgBA,EAAaG,cAAgBH,EACrE,IAAI/B,EAAkB,OAAUwB,oBAAoBK,EAAYC,GAC5DD,IAAeC,GACb,SAASK,EAAaC,EAASC,IACxBA,EAAQ3B,mBAAqB2B,EAAQ5B,aAClC4B,EAAQ5B,aAAe2B,EAAQ3B,eAAiB,IAChD0B,EAAY/B,aAAc,EAC1B+B,EAAYtB,QAAS,IAEjBwB,EAAQ5B,cAAgB4B,EAAQV,aACpCU,EAAQV,aAAeS,EAAQT,eAAiB,IAChDQ,EAAYtB,QAAS,EACrBsB,EAAYvB,QAAS,IAEjByB,EAAQV,cAAgBU,EAAQX,WACpCW,EAAQX,WAAaU,EAAQV,aAAe,IAC5CS,EAAYvB,QAAS,EACrBuB,EAAYxB,MAAO,IAEf0B,EAAQX,YAAcW,EAAQC,UAAY,EAC9CD,EAAQC,UAAYF,EAAQE,YAAc,IAC1CH,EAAYxB,MAAO,EACnBwB,EAAY5B,KAAM,GAEf,IAAM8B,EAAQC,WAAaD,EAAQnB,WACtCmB,EAAQnB,WAAakB,EAAQlB,aAAe,IAC5CiB,EAAY5B,KAAM,EAClB4B,EAAY7B,OAAQ,IAEhB+B,EAAQnB,YAAcmB,EAAQE,eAClCF,EAAQE,cAAgBH,EAAQG,gBAAkB,IAClDJ,EAAY7B,OAAQ,EACpB6B,EAAY9B,MAAO,GA7B7B,CAgCAL,EAAiB6B,EAAaC,EAAWA,EAAWD,EAAYA,EAAaC,EAAWD,EAAaC,GAE3GE,EAAmB,OAAUQ,oBAAoBxC,GACjDiC,EAAuBjC,EAAiBgC,GAAkB,GAC1DA,EAAmB,OAAUQ,oBAAoBT,GAAgB,UACjEE,EAAuBjC,EAAiBgC,GAAkB,GAC1DhC,EAAgB,CACZyC,KAAM,OACPT,IAAqBA,IAAoB,EAC5C,IAAI9B,EAAea,KAAKhB,2BAA2BC,GACnD,OAAOE,M,kCChNf,4BAeIwC,EAAwB,CAAC,OAAQ,QAAS,OAC1CC,EAA4B,CAAC,OAAQ,QAAS,MAAO,OAAQ,UAC7DC,EAAa,SAASC,GACtB,MAAO,SAAWA,GAAY,aAAeA,GAE7CC,EAAmB,SAASC,GAC5B,IAAIC,EACAC,EAAS,GACTC,EAAgB,CAAC,OAAQ,QAAS,MAAO,OAAQ,SAAU,UAC3DC,EAAgBJ,EAAOK,cAAgBL,EAAOK,aAAaD,cAC3DE,EAAW,YAAcF,EAAgB,QAAUA,EACvD,OAAIP,EAAWG,EAAOF,WAAa,OAASM,GACxCF,EAAS,aAAeF,EAAOF,SAAWF,EAA4BD,EACtEM,EAAQE,EAAcI,QAAQD,GAC1BL,GAAS,GACTC,EAASC,EAAcK,MAAM,EAAGP,GAChCC,EAAOzC,KAAK2C,GACLF,GAEJA,GACA,eAAUE,GACV3D,MAAMC,QAAQ0D,GAAiBA,EAAgB,CAACA,QADpD,GAIK,kBACZ,IAAIK,EAAoB,SAAST,EAAQU,GACrC,IAAIC,EAAWX,EAAOY,WAAaZ,EAAOW,SAI1C,MAHI,WAAaD,IACbC,EAAWX,EAAOa,cAAgBb,EAAOc,uBAAyBH,GAE/DA,GAEPI,EAA6B,SAASC,EAAaN,GACnD,IAAIO,EACAC,EACAC,EAcAvE,EAbA+D,EAAWF,EAAkBzC,KAAM0C,GACvC,GAAIjE,MAAMC,QAAQsE,IAAgB,eAAUA,EAAY,KAAO,eAAUA,EAAY,IAUjF,OATAE,EAAwB,CAACP,EAAU,KAAMK,EAAY,IACrDG,EAAsB,CAACR,EAAU,KAAMK,EAAY,IAC/CnB,EAAW7B,KAAK8B,YAAclD,EAAOoE,EAAY,GAAIpE,EAAK+B,WAAa/B,EAAKgC,aAAehC,EAAKc,aAAed,EAAKe,kBAAoB,KACxIsD,EAAiB,IAAIG,KAAKJ,EAAY,GAAGK,WACrC,SAAWrD,KAAK8B,UAChBmB,EAAeK,QAAQN,EAAY,GAAGzB,UAAY,GAEtD4B,EAAsB,CAACR,EAAU,IAAKM,IAEnC,CAACC,EAAuB,MAAOC,IAI1CI,EAA6B,SAASP,EAAaQ,EAAyBd,GAC5E,IAAIe,EACAC,EACAC,EACAC,EAAS,SAASC,GAClB,OAAI,eAAOA,GACA,CAACA,EAAUrC,cAAeqC,EAAU1D,WAAY0D,EAAUtC,UAAWsC,EAAUlD,WAAYkD,EAAUjD,aAAciD,EAAUnE,cAEjI,gBAAK,GAAKmE,GAAWC,MAAM,MAAM,SAAU9F,EAAOiE,GACrD,OAAO,IAAMA,EAAQ8B,OAAO/F,GAAS,EAAI+F,OAAO/F,MAL3C,CAOXgF,GACEL,EAAWF,EAAkBzC,KAAM0C,GAMvC,OALI,iBAAmBA,EACnBiB,EAAe5B,EAAiB/B,MAAM4D,EAAOjF,OAAS,GAC/C,aAAeqB,KAAK8B,WAC3B6B,EAAe,UAEXA,GACJ,IAAK,OACDF,EAAY,IAAIL,KAAKQ,EAAO,GAAI,EAAG,GACnCF,EAAU,IAAIN,KAAKQ,EAAO,GAAK,EAAG,EAAG,GACrC,MACJ,IAAK,QACDH,EAAY,IAAIL,KAAKQ,EAAO,GAAIA,EAAO,GAAI,GAC3CF,EAAU,IAAIN,KAAKQ,EAAO,GAAIA,EAAO,GAAK,EAAG,GAC7C,MACJ,IAAK,UACDH,EAAY,IAAIL,KAAKQ,EAAO,GAAI,EAAIA,EAAO,GAAI,GAC/CF,EAAU,IAAIN,KAAKQ,EAAO,GAAI,EAAIA,EAAO,GAAK,EAAG,GACjD,MACJ,IAAK,OACDH,EAAY,IAAIL,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAC7DF,EAAU,IAAIN,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAChE,MACJ,IAAK,SACDH,EAAY,IAAIL,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IACxEF,EAAU,IAAIN,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAC3E,MACJ,IAAK,SACDH,EAAY,IAAIL,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IACnFF,EAAU,IAAIN,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GACtF,MACJ,QACIH,EAAY,IAAIL,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAClDF,EAAU,IAAIN,KAAKQ,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAK,GAE7D,OAAQJ,GACJ,IAAK,IACD,MAAO,CAACb,EAAU,IAAKc,GAC3B,IAAK,KACD,MAAO,CAACd,EAAU,IAAKe,GAC3B,IAAK,IACD,MAAO,CAACf,EAAU,KAAMe,GAC5B,IAAK,KACD,MAAO,CAACf,EAAU,KAAMc,GAC5B,IAAK,KACD,MAAO,CACH,CAACd,EAAU,IAAKc,GAAY,KAAM,CAACd,EAAU,KAAMe,IAE3D,QACI,MAAO,CACH,CAACf,EAAU,KAAMc,GAAY,MAAO,CAACd,EAAU,IAAKe,MAIhEM,EAA+B,SAAShB,EAAaQ,EAAyBd,GAC9E,IAAIC,EAAWF,EAAkBzC,KAAM0C,GACnCN,EAAgBL,EAAiB/B,MACrC,GAAI,iBAAmB0C,GAAUN,GAAiB,eAAUY,GAAc,CACtE,IAAIY,GAAU,GAAKZ,GAAac,MAAM,KAClC9F,EAAQ+F,OAAOH,EAAOA,EAAOjF,OAAS,IACtC2D,EAAWF,EAAcwB,EAAOjF,OAAS,GACzCsF,EAAmB,CAACtB,EAAU,KAAM3E,GACpCiF,EAAiB,CAACN,EAAU,IAAK3E,EAAQsE,GACzC4B,EAAY,CAACD,EAAkB,MAAOhB,GAC1C,OAAOiB,EAEX,MAAO,CAACvB,EAAUa,GAA2B,IAAKR,IAEtD,MAAO,CACHmB,iCAAkC,SAASnB,EAAaQ,EAAyBd,GAC7E,IAAIV,EAAShC,KACT2C,EAAWF,EAAkBT,EAAQU,GACrC0B,EAAyBpC,EAAOc,uBAAyB,WAAaJ,EACtEZ,EAAWsC,GAA0BpC,EAAOqC,QAAUrC,EAAOqC,OAAOvC,UAAYE,EAAOF,SACvFwC,EAAS,KACb,GAAK,iBAAmB5B,GAAU,kBAAoBA,GAAW,OAASM,EAKnE,GAAI,WAAalB,GAAcE,EAAOqC,SAAUD,EAEhD,IAAI,YAAcZ,EACrB,OAAOT,EAA2BwB,MAAMvC,EAAQ,CAACgB,EAAaN,IAC3D,GAAIb,EAAWC,IAAa,eAAUkB,GACzC,OAAOO,EAA2BgB,MAAMvC,EAAQwC,WAC7C,GAAI,WAAa1C,EACpB,OAAOkC,EAA6BO,MAAMvC,EAAQwC,WAElDF,EAAS,CAAC3B,EAAUa,GAA2B,IAAKR,QARpDsB,EAAS,CAAC3B,EAAUa,GAA2B,WAAYR,QAL3DsB,EAAS,CAAC3B,EAAUa,GAA2B,IAAK,MAChD,WAAa1B,IACbwC,EAAS,CAACA,EAAQ,MAAQd,EAA0B,KAAO,MAAO,CAACb,EAAUa,GAA2B,IAAK,MAarH,OAAOc,GAEXvC,iBAAkBA,GApIV,I;;;;;;;;;;;;GCzBhB,IAAI0C,EAAmBzE,MAAQA,KAAKyE,iBAAoB,SAAUC,GAC9D,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE,QAAWA,IAExDE,OAAOC,eAAeC,EAAS,aAAc,CAAE9G,OAAO,IACtD8G,EAAQC,OAASD,EAAQE,eAAiBF,EAAQG,aAAeH,EAAQI,6BAA+BJ,EAAQK,YAAcL,EAAQM,gBAAkBN,EAAQO,WAAaP,EAAQQ,OAASR,EAAQS,WAAaT,EAAQU,SAAWV,EAAQW,OAASX,EAAQY,YAAcZ,EAAQa,mBAAqBb,EAAQc,cAAgBd,EAAQe,8BAAgCf,EAAQgB,qBAAuBhB,EAAQiB,gBAAkBjB,EAAQkB,cAAgBlB,EAAQmB,QAAUnB,EAAQoB,cAAgBpB,EAAQqB,SAAWrB,EAAQsB,YAActB,EAAQuB,eAAiBvB,EAAQwB,UAAYxB,EAAQyB,oBAAsBzB,EAAQ0B,4BAA8B1B,EAAQ2B,6BAA+B3B,EAAQ4B,uBAAyB5B,EAAQ6B,aAAe7B,EAAQ8B,kBAAoB9B,EAAQ+B,eAAiB/B,EAAQgC,cAAgBhC,EAAQiC,eAAiBjC,EAAQkC,2BAA6BlC,EAAQmC,qBAAuBnC,EAAQoC,oBAAsBpC,EAAQqC,eAAiBrC,EAAQsC,yBAA2BtC,EAAQuC,sBAAwBvC,EAAQwC,gBAAkBxC,EAAQyC,SAAWzC,EAAQ0C,YAAc1C,EAAQ2C,mBAAqB3C,EAAQ4C,SAAW5C,EAAQ6C,SAAW7C,EAAQ8C,iBAAmB9C,EAAQ+C,KAAO/C,EAAQgD,YAAchD,EAAQiD,YAAcjD,EAAQkD,gBAAa,EACnvClD,EAAQmD,cAAgBnD,EAAQoD,iBAAmBpD,EAAQqD,YAAcrD,EAAQsD,cAAgBtD,EAAQuD,UAAYvD,EAAQwD,KAAOxD,EAAQyD,QAAUzD,EAAQ0D,eAAiB1D,EAAQ2D,UAAY3D,EAAQ4D,mBAAqB5D,EAAQ6D,eAAiB7D,EAAQ8D,UAAY9D,EAAQ+D,yBAA2B/D,EAAQgE,OAAShE,EAAQiE,YAAcjE,EAAQkE,cAAgBlE,EAAQmE,SAAWnE,EAAQoE,YAAcpE,EAAQqE,cAAgBrE,EAAQsE,eAAiBtE,EAAQuE,mBAAqBvE,EAAQwE,YAAcxE,EAAQyE,WAAazE,EAAQ0E,QAAU1E,EAAQ2E,cAAgB3E,EAAQ4E,SAAW5E,EAAQ6E,QAAU7E,EAAQ8E,wBAA0B9E,EAAQ+E,SAAW/E,EAAQgF,cAAgBhF,EAAQiF,KAAOjF,EAAQkF,eAAiBlF,EAAQmF,SAAWnF,EAAQoF,YAAcpF,EAAQqF,QAAUrF,EAAQsF,qBAAuBtF,EAAQuF,YAAS,EACh0B,IAAIC,EAAc7F,EAAgB,EAAQ,SACtC8F,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QAClBxC,GAAa,EAAIuC,EAAQE,iBAAiB,CAC1CC,MAAO,CACHC,UAAWC,OACXC,mBAAoBC,QACpBC,sBAAuBD,QACvBE,oBAAqBF,QACrBG,yBAA0BH,QAC1BI,aAAcJ,QACdK,gBAAiBL,QACjBM,gBAAiBN,QACjBO,cAAezG,OACf0G,aAAc1G,OACd2G,oBAAqBT,QACrBU,eAAgBzH,OAChB0H,mBAAoBb,OACpBc,QAASjN,MACTkN,YAAa,CAAC5H,OAAQ6G,QACtBgB,iBAAkBC,SAClBC,gBAAiB,GACjBC,WAAY,GACZC,wBAAyBpB,OACzBqB,SAAUnB,QACVoB,QAAStH,OACTuH,YAAavH,OACbwH,gBAAiBtB,QACjBuB,OAAQzH,OACR0H,cAAe1H,OACf2H,mBAAoB3H,OACpB4H,YAAa5H,OACb6H,UAAW7H,OACX8H,kBAAmB,CAAC5B,QAASF,QAC7B5H,YAAa,CAACvE,MAAOoN,SAAUjB,QAC/B+B,mBAAoB5I,OACpB6I,kBAAmB9B,QACnB+B,gBAAiB9I,OACjB+I,cAAe,GACfC,SAAUnI,OACVoI,WAAYpI,OACZvC,aAAcuC,OACdqI,OAAQ,CAACpB,SAAU9H,OAAQ6G,QAC3BsC,iBAAkBpC,QAClBqC,KAAMvC,OACNwC,kBAAmBtC,QACnBuC,mBAAoBzI,OACpB0I,QAAS,CAAC7O,MAAOmM,QACjB2C,UAAW3I,OACX4I,aAAc5I,OACd6I,WAAY7C,OACZ8C,6BAA8B7B,SAC9B8B,YAAa9B,SACb+B,eAAgB/B,SAChBgC,mBAAoBhC,SACpBiC,eAAgBjC,SAChBkC,eAAgBlC,SAChBmC,uBAAwBnC,SACxBoC,oBAAqBpC,SACrBqC,YAAarC,SACbsC,eAAgBtC,SAChBuC,gBAAiBvC,SACjBwC,eAAgBxC,SAChByC,iBAAkBzC,SAClB0C,kBAAmB1C,SACnB2C,YAAa3C,SACb4C,qBAAsB5C,SACtB6C,sBAAuB7C,SACvB8C,oBAAqB9C,SACrB+C,qBAAsB/C,SACtBgD,cAAehD,SACfiD,aAAcjD,SACdkD,UAAWlD,SACXmD,gBAAiBnD,SACjBoD,WAAYpD,SACZqD,eAAgBrD,SAChBsD,gBAAiBtD,SACjBuD,cAAevD,SACfwD,cAAexD,SACfyD,eAAgBzD,SAChB0D,cAAe1D,SACf2D,eAAgB3D,SAChB4D,cAAe5D,SACf6D,aAAc7D,SACd8D,cAAe9D,SACf+D,aAAc/D,SACdgE,cAAehE,SACfiE,gBAAiBjE,SACjBkE,QAASlE,SACTmE,SAAUnE,SACVoE,mBAAoBpE,SACpBqE,mBAAoBrE,SACpBsE,MAAOvL,OACPwL,OAAQxL,OACRyL,iBAAkB,CAACvF,QAASlG,OAAQgG,QACpC0F,YAAaxF,QACbyF,mBAAoBzF,QACpB0F,sBAAuB1F,QACvB2F,YAAa7L,OACb8L,YAAa,GACbC,WAAY7F,QACZ8F,UAAWhM,OACXiM,YAAajM,OACbkM,gBAAiBrS,MACjBsS,UAAWnM,OACXoM,gBAAiB,CAACvS,MAAOoN,SAAUjB,QACnCqG,YAAanG,QACboG,kBAAmBpG,QACnBqG,gBAAiBrG,QACjBsG,aAActG,QACduG,uBAAwB5S,MACxB6S,QAAS1M,OACT2M,aAAc3M,OACd4M,QAAS5M,OACT6M,uBAAwB3G,QACxB4G,SAAU3N,OACV4N,QAAS/M,OACTgN,qBAAsB9G,QACtB+G,QAAS/G,QACTgH,MAAO,CAACjG,SAAU9H,OAAQ6G,QAC1BmH,gBAAiBjH,SAErBkH,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,+BAAgC,KAChC,6BAA8B,KAC9B,kCAAmC,KACnC,sBAAuB,KACvB,yBAA0B,KAC1B,yBAA0B,KAC1B,uBAAwB,KACxB,sBAAuB,KACvB,6BAA8B,KAC9B,wBAAyB,KACzB,4BAA6B,KAC7B,iBAAkB,KAClB,qBAAsB,KACtB,0BAA2B,KAC3B,yBAA0B,KAC1B,oBAAqB,KACrB,iCAAkC,KAClC,kBAAmB,KACnB,iBAAkB,KAClB,qBAAsB,KACtB,yBAA0B,KAC1B,gBAAiB,KACjB,uBAAwB,KACxB,4BAA6B,KAC7B,qBAAsB,KACtB,mBAAoB,KACpB,2BAA4B,KAC5B,qBAAsB,KACtB,4BAA6B,KAC7B,2BAA4B,KAC5B,yBAA0B,KAC1B,uBAAwB,KACxB,kBAAmB,KACnB,oBAAqB,KACrB,sBAAuB,KACvB,gBAAiB,KACjB,0BAA2B,KAC3B,cAAe,KACf,2BAA4B,KAC5B,4BAA6B,KAC7B,iBAAkB,KAClB,mBAAoB,KACpB,sBAAuB,KACvB,oBAAqB,KACrB,sCAAuC,KACvC,qBAAsB,KACtB,wBAAyB,KACzB,4BAA6B,KAC7B,wBAAyB,KACzB,wBAAyB,KACzB,gCAAiC,KACjC,6BAA8B,KAC9B,qBAAsB,KACtB,wBAAyB,KACzB,yBAA0B,KAC1B,wBAAyB,KACzB,0BAA2B,KAC3B,2BAA4B,KAC5B,qBAAsB,KACtB,8BAA+B,KAC/B,+BAAgC,KAChC,6BAA8B,KAC9B,8BAA+B,KAC/B,uBAAwB,KACxB,sBAAuB,KACvB,mBAAoB,KACpB,yBAA0B,KAC1B,oBAAqB,KACrB,wBAAyB,KACzB,yBAA0B,KAC1B,uBAAwB,KACxB,uBAAwB,KACxB,wBAAyB,KACzB,uBAAwB,KACxB,wBAAyB,KACzB,uBAAwB,KACxB,sBAAuB,KACvB,uBAAwB,KACxB,sBAAuB,KACvB,uBAAwB,KACxB,yBAA0B,KAC1B,iBAAkB,KAClB,kBAAmB,KACnB,4BAA6B,KAC7B,4BAA6B,KAC7B,eAAgB,KAChB,gBAAiB,KACjB,0BAA2B,KAC3B,qBAAsB,KACtB,4BAA6B,KAC7B,+BAAgC,KAChC,qBAAsB,KACtB,qBAAsB,KACtB,oBAAqB,KACrB,mBAAoB,KACpB,qBAAsB,KACtB,yBAA0B,KAC1B,mBAAoB,KACpB,yBAA0B,KAC1B,qBAAsB,KACtB,2BAA4B,KAC5B,yBAA0B,KAC1B,sBAAuB,KACvB,gCAAiC,KACjC,iBAAkB,KAClB,sBAAuB,KACvB,iBAAkB,KAClB,gCAAiC,KACjC,kBAAmB,KACnB,iBAAkB,KAClB,8BAA+B,KAC/B,iBAAkB,KAClB,eAAgB,KAChB,yBAA0B,MAE9BC,SAAU,CACNC,SAAU,WACN,OAAOlS,KAAKmS,aAGpBC,aAAc,WACVpS,KAAKqS,cAAgB/H,EAAYgI,QACjCtS,KAAKuS,oBAAqB,EAC1BvS,KAAKwS,mBAAqB,CACtBxQ,OAAQ,CAAEyQ,kBAAkB,EAAMC,WAAY,WAC9CrH,cAAe,CAAEoH,kBAAkB,EAAOC,WAAY,iBACtDpH,aAAc,CAAEmH,kBAAkB,EAAOC,WAAY,gBACrDC,qBAAsB,CAAEF,kBAAkB,EAAOC,WAAY,gBAC7DE,kBAAmB,CAAEH,kBAAkB,EAAOC,WAAY,aAC1DxG,QAAS,CAAEuG,kBAAkB,EAAOC,WAAY,WAChDrG,OAAQ,CAAEoG,kBAAkB,EAAOC,WAAY,UAC/CpG,cAAe,CAAEmG,kBAAkB,EAAOC,WAAY,iBACtDnG,mBAAoB,CAAEkG,kBAAkB,EAAOC,WAAY,sBAC3DlG,YAAa,CAAEiG,kBAAkB,EAAOC,WAAY,eACpDjG,UAAW,CAAEgG,kBAAkB,EAAOC,WAAY,aAClD3F,SAAU,CAAE0F,kBAAkB,EAAOC,WAAY,YACjD1F,WAAY,CAAEyF,kBAAkB,EAAOC,WAAY,cACnDrQ,aAAc,CAAEoQ,kBAAkB,EAAOC,WAAY,gBACrDrF,mBAAoB,CAAEoF,kBAAkB,EAAOC,WAAY,sBAC3DnF,UAAW,CAAEkF,kBAAkB,EAAOC,WAAY,aAClDlF,aAAc,CAAEiF,kBAAkB,EAAOC,WAAY,gBACrDvC,MAAO,CAAEsC,kBAAkB,EAAOC,WAAY,SAC9CtC,OAAQ,CAAEqC,kBAAkB,EAAOC,WAAY,UAC/CrC,iBAAkB,CAAEoC,kBAAkB,EAAOC,WAAY,oBACzDjC,YAAa,CAAEgC,kBAAkB,EAAOC,WAAY,eACpD9B,UAAW,CAAE6B,kBAAkB,EAAOC,WAAY,aAClD7B,YAAa,CAAE4B,kBAAkB,EAAOC,WAAY,eACpD3B,UAAW,CAAE0B,kBAAkB,EAAOC,WAAY,aAClDrB,uBAAwB,CAAEoB,kBAAkB,EAAMC,WAAY,0BAC9DpB,QAAS,CAAEmB,kBAAkB,EAAOC,WAAY,WAChDnB,aAAc,CAAEkB,kBAAkB,EAAOC,WAAY,gBACrDlB,QAAS,CAAEiB,kBAAkB,EAAOC,WAAY,WAChDf,QAAS,CAAEc,kBAAkB,EAAOC,WAAY,eAI5D5N,EAAQkD,WAAaA,EACrB,IAAID,GAAc,EAAIyC,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,cAAe,MAEnBtH,MAAO,CACHoI,KAAM,CAAClO,OAAQb,OAAQ6G,QACvBmI,KAAM,CAACnO,OAAQb,OAAQ6G,WAG/B9F,EAAQiD,YAAcA,EACtBA,EAAYiL,aAAe,YAC3BjL,EAAYyK,mBAAqB,CAC7BM,KAAM,CAAEL,kBAAkB,EAAOC,WAAY,QAC7CK,KAAM,CAAEN,kBAAkB,EAAOC,WAAY,SAEjD,IAAI5K,GAAc,EAAI0C,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,4BAA6B,MAEjCtH,MAAO,CACHuI,iBAAkBnI,QAClBoI,QAAStI,OACTuI,WAAYrI,QACZ1M,KAAMwM,OACNwI,mBAAoBvH,YAG5B/G,EAAQgD,YAAcA,EACtBA,EAAYkL,aAAe,kBAC3BlL,EAAYuL,oBAAqB,EACjCvL,EAAYwL,kBAAoB,CAC5BlV,KAAM,SAEV,IAAIyJ,GAAO,EAAI2C,EAAQqI,8BAA8B,CACjDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBtH,MAAO,CACH6I,EAAG3I,OACH4I,EAAG5I,UAGX9F,EAAQ+C,KAAOA,EACfA,EAAKmL,aAAe,KACpB,IAAIpL,GAAmB,EAAI4C,EAAQqI,8BAA8B,CAC7Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBtH,MAAO,CACH6I,EAAGxP,OACHyP,EAAGzP,UAGXe,EAAQ8C,iBAAmBA,EAC3BA,EAAiBoL,aAAe,iBAChC,IAAIrL,GAAW,EAAI6C,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,cAAe,KACf,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,MAEtBtH,MAAO,CACH+I,SAAU7I,OACVqB,SAAU,CAACnB,QAASe,UACpBsB,KAAMvC,OACN8I,KAAM9I,OACN+I,KAAM/I,OACNgJ,QAAS/H,SACTgI,SAAU,GACVC,KAAMlJ,OACNiH,QAAS,CAAC/G,QAASe,aAG3B/G,EAAQ6C,SAAWA,EACnBA,EAASqL,aAAe,UACxBrL,EAAS0L,oBAAqB,EAC9B,IAAI3L,GAAW,EAAI8C,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,wBAAyB,KACzB,yBAA0B,KAC1B,cAAe,MAEnBtH,MAAO,CACHqJ,KAAM,GACNC,eAAgB,GAChBC,gBAAiB,GACjB7V,KAAMwM,UAGd9F,EAAQ4C,SAAWA,EACnBA,EAASsL,aAAe,UACxBtL,EAAS2L,oBAAqB,EAC9B,IAAI5L,GAAqB,EAAI+C,EAAQqI,8BAA8B,CAC/Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,YAAa,KACb,YAAa,KACb,YAAa,MAEjBtH,MAAO,CACHwJ,GAAInQ,OACJoQ,GAAIpQ,OACJqQ,GAAIrQ,OACJsQ,GAAItQ,UAGZe,EAAQ2C,mBAAqBA,EAC7BA,EAAmBuL,aAAe,mBAClC,IAAIxL,GAAc,EAAIgD,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBtH,MAAO,CACH6I,EAAG3I,OACH4I,EAAG5I,UAGX9F,EAAQ0C,YAAcA,EACtBA,EAAYwL,aAAe,YAC3B,IAAIzL,GAAW,EAAIiD,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,sBAAuB,KACvB,wBAAyB,KACzB,wBAAyB,KACzB,qBAAsB,KACtB,uBAAwB,KACxB,8BAA+B,KAC/B,qBAAsB,KACtB,yBAA0B,KAC1B,uBAAwB,KACxB,qBAAsB,KACtB,sBAAuB,KACvB,yBAA0B,KAC1B,iBAAkB,KAClB,4BAA6B,KAC7B,+BAAgC,KAChC,mCAAoC,KACpC,6BAA8B,KAC9B,4BAA6B,KAC7B,iBAAkB,KAClB,sBAAuB,KACvB,iBAAkB,KAClB,kBAAmB,KACnB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,0BAA2B,KAC3B,uBAAwB,KACxB,oBAAqB,KACrB,mBAAoB,KACpB,0BAA2B,KAC3B,oBAAqB,KACrB,qBAAsB,KACtB,sBAAuB,KACvB,eAAgB,KAChB,uBAAwB,KACxB,gBAAiB,KACjB,kBAAmB,KACnB,2BAA4B,KAC5B,oBAAqB,KACrB,4BAA6B,KAC7B,sBAAuB,KACvB,wBAAyB,KACzB,gBAAiB,KACjB,gBAAiB,KACjB,kBAAmB,KACnB,cAAe,KACf,mBAAoB,KACpB,qBAAsB,KACtB,iCAAkC,KAClC,sBAAuB,KACvB,0BAA2B,KAC3B,6BAA8B,KAC9B,yBAA0B,KAC1B,mBAAoB,KACpB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,cAAe,KACf,yBAA0B,KAC1B,iBAAkB,KAClB,sBAAuB,KACvB,eAAgB,MAEpBtH,MAAO,CACH4J,UAAW1J,OACX2J,aAAczJ,QACd0J,eAAgB1J,QAChB2J,eAAgB3J,QAChB4J,YAAa5J,QACb6J,cAAe7J,QACf8J,qBAAsB9J,QACtB+J,YAAa/J,QACbgK,gBAAiBhK,QACjBiK,cAAejK,QACfkK,YAAalK,QACbmK,aAAcnK,QACdoK,gBAAiBpK,QACjBqK,QAAS1W,MACT2W,mBAAoBvJ,SACpB/I,sBAAuB,CAAC+I,SAAUjB,QAClCyK,0BAA2BxJ,SAC3ByJ,oBAAqB,CAACzJ,SAAUjB,QAChC2K,mBAAoB,CAAC1J,SAAUjB,QAC/B4K,QAAS5K,OACT6K,aAAc,GACd/J,QAASjN,MACTgV,SAAU7I,OACV8K,cAAe7J,SACfjJ,UAAWgI,OACX9I,SAAU8I,OACV+K,iBAAkB,GAClBC,cAAe,GACfC,WAAY/K,QACZgL,UAAWlL,OACXmL,iBAAkBtX,MAClBuX,WAAYpL,OACZ5H,YAAa,GACbiT,aAAcxX,MACdyX,MAAOpL,QACPqL,cAAevL,OACf7M,OAAQ,CAAC6G,OAAQiH,SAAUjB,QAC3BwL,SAAUxR,OACVyR,kBAAmB,GACnBC,WAAYvS,OACZwS,mBAAoB,GACpBlU,aAAcuC,OACd4R,eAAgBzS,OAChB0S,OAAQ3L,QACRzG,OAAQO,OACR8R,SAAU3S,OACV4P,KAAM/I,OACN+L,UAAW5S,OACXuM,YAAaxF,QACbtH,wBAAyBoH,OACzBgM,aAAc/K,SACdgL,iBAAkB/L,QAClBgM,oBAAqBhM,QACrBiM,gBAAiBjM,QACjBkM,UAAWjT,OACXkT,cAAepL,SACfqL,UAAWtM,OACXuM,SAAUvM,OACVxM,KAAMwM,OACNwM,gBAAiB3Y,MACjBoT,QAAS/G,QACTuM,aAActT,OACd+N,MAAO,CAAC/N,OAAQ6G,WAGxB9F,EAAQyC,SAAWA,EACnBA,EAASyL,aAAe,UACxBzL,EAAS8L,oBAAqB,EAC9B9L,EAASiL,mBAAqB,CAC1B8E,UAAW,CAAE7E,kBAAkB,EAAMC,WAAY,mBACjD6E,OAAQ,CAAE9E,kBAAkB,EAAMC,WAAY,WAC9C8E,mBAAoB,CAAE/E,kBAAkB,EAAOC,WAAY,gBAC3D+E,aAAc,CAAEhF,kBAAkB,EAAOC,WAAY,UACrDgF,YAAa,CAAEjF,kBAAkB,EAAMC,WAAY,mBACnDiF,WAAY,CAAElF,kBAAkB,EAAMC,WAAY,mBAClDkF,UAAW,CAAEnF,kBAAkB,EAAMC,WAAY,mBACjD3U,OAAQ,CAAE0U,kBAAkB,EAAOC,WAAY,UAC/C0D,SAAU,CAAE3D,kBAAkB,EAAOC,WAAY,YACjDrQ,aAAc,CAAEoQ,kBAAkB,EAAOC,WAAY,gBACrDrO,OAAQ,CAAEoO,kBAAkB,EAAOC,WAAY,UAC/CmF,YAAa,CAAEpF,kBAAkB,EAAMC,WAAY,mBACnDoF,YAAa,CAAErF,kBAAkB,EAAMC,WAAY,mBACnDqF,UAAW,CAAEtF,kBAAkB,EAAMC,WAAY,mBACjDsF,aAAc,CAAEvF,kBAAkB,EAAMC,WAAY,mBACpDuF,iBAAkB,CAAExF,kBAAkB,EAAMC,WAAY,mBACxDwF,eAAgB,CAAEzF,kBAAkB,EAAMC,WAAY,oBAE1D,IAAIpL,GAAkB,EAAIkD,EAAQqI,8BAA8B,CAC5Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,iBAAkB,KAClB,gBAAiB,KACjB,cAAe,KACf,kBAAmB,KACnB,gBAAiB,KACjB,uBAAwB,KACxB,mBAAoB,KACpB,mBAAoB,KACpB,eAAgB,KAChB,eAAgB,MAEpBtH,MAAO,CACHsK,YAAalK,QACbqN,eAAgBvN,OAChBwN,QAAStN,QACTmC,OAAQlJ,OACRsU,KAAMzN,OACN0N,SAAU1T,OACV2T,OAAQ3T,OACR4T,cAAezU,OACfgN,UAAWnM,OACXsS,UAAWtM,OACX6N,MAAO7N,OACPkH,MAAO/N,UAGfe,EAAQwC,gBAAkBA,EAC1BA,EAAgB0L,aAAe,gBAC/B1L,EAAgBkL,mBAAqB,CACjCkG,oBAAqB,CAAEjG,kBAAkB,EAAOC,WAAY,UAC5DiG,uBAAwB,CAAElG,kBAAkB,EAAOC,WAAY,aAC/D4F,SAAU,CAAE7F,kBAAkB,EAAOC,WAAY,YACjD6F,OAAQ,CAAE9F,kBAAkB,EAAOC,WAAY,UAC/C3B,UAAW,CAAE0B,kBAAkB,EAAOC,WAAY,cAEtD,IAAIrL,GAAwB,EAAImD,EAAQqI,8BAA8B,CAClEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,iBAAkB,KAClB,iBAAkB,MAEtBtH,MAAO,CACHkL,cAAe,GACfwC,QAAStN,QACT8N,QAAS7U,UAGjBe,EAAQuC,sBAAwBA,EAChCA,EAAsB2L,aAAe,SACrC,IAAI5L,GAA2B,EAAIoD,EAAQqI,8BAA8B,CACrEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,mBAAoB,KACpB,uBAAwB,MAE5BtH,MAAO,CACHmO,eAAgB/N,QAChBgO,UAAWhO,QACXiO,cAAejO,WAGvBhG,EAAQsC,yBAA2BA,EACnCA,EAAyB4L,aAAe,YACxC,IAAI7L,GAAiB,EAAIqD,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,eAAgB,MAEpBtH,MAAO,CACH0N,QAAStN,QACTkO,MAAOpU,UAGfE,EAAQqC,eAAiBA,EACzBA,EAAe6L,aAAe,eAC9B7L,EAAeqL,mBAAqB,CAChCyG,kBAAmB,CAAExG,kBAAkB,EAAOC,WAAY,SAC1DsG,MAAO,CAAEvG,kBAAkB,EAAOC,WAAY,UAElD,IAAIxL,GAAsB,EAAIsD,EAAQqI,8BAA8B,CAChEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,sBAAuB,KACvB,uBAAwB,KACxB,eAAgB,MAEpBtH,MAAO,CACHwO,IAAKtO,OACLuO,aAAcvO,OACdwO,cAAexO,OACfyO,MAAOzO,UAGf9F,EAAQoC,oBAAsBA,EAC9BA,EAAoB8L,aAAe,QACnC,IAAI/L,GAAuB,EAAIuD,EAAQqI,8BAA8B,CACjEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,oBAAqB,KACrB,uBAAwB,KACxB,gBAAiB,KACjB,gBAAiB,KACjB,oBAAqB,KACrB,eAAgB,MAEpBtH,MAAO,CACHsK,YAAalK,QACb+N,eAAgB/N,QAChBiB,WAAY,GACZ3J,cAAe,CAAC2B,OAAQ6G,QACxBqC,OAAQlJ,OACRwU,OAAQ3T,OACR0U,WAAY1O,OACZkH,MAAO/N,UAGfe,EAAQmC,qBAAuBA,EAC/BA,EAAqB+L,aAAe,eACpC/L,EAAqBuL,mBAAqB,CACtC+G,yBAA0B,CAAE9G,kBAAkB,EAAOC,WAAY,UACjE6F,OAAQ,CAAE9F,kBAAkB,EAAOC,WAAY,WAEnD,IAAI1L,GAA6B,EAAIwD,EAAQqI,8BAA8B,CACvEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,iBAAkB,KAClB,cAAe,KACf,oBAAqB,KACrB,iBAAkB,MAEtBtH,MAAO,CACHkL,cAAe,GACfwC,QAAStN,QACTuN,KAAMzN,OACN4O,WAAY,CAAC/a,MAAOoN,SAAUjB,QAC9BgO,QAAS7U,UAGjBe,EAAQkC,2BAA6BA,EACrCA,EAA2BgM,aAAe,SAC1C,IAAIjM,GAAiB,EAAIyD,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExBtH,MAAO,CACH+O,cAAe3O,QACfsK,mBAAoBvJ,SACpBE,WAAY,GACZ2N,YAAa,CAAC7N,SAAUjB,QACxB+O,UAAW/O,UAGnB9F,EAAQiC,eAAiBA,EACzBA,EAAeiM,aAAe,SAC9B,IAAIlM,GAAgB,EAAI0D,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnBtH,MAAO,CACHkP,iBAAkB/N,SAClBgO,eAAgBjP,OAChBqI,iBAAkBnI,QAClBoI,QAAStI,OACTxM,KAAMwM,UAGd9F,EAAQgC,cAAgBA,EACxBA,EAAckM,aAAe,kBAC7BlM,EAAcuM,oBAAqB,EACnCvM,EAAcwM,kBAAoB,CAC9BlV,KAAM,WAEV,IAAIyI,GAAiB,EAAI2D,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBtH,MAAO,CACH6I,EAAGxP,OACHyP,EAAGzP,UAGXe,EAAQ+B,eAAiBA,EACzBA,EAAemM,aAAe,eAC9B,IAAIpM,GAAoB,EAAI4D,EAAQqI,8BAA8B,CAC9Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mCAAoC,KACpC,iBAAkB,KAClB,uBAAwB,KACxB,mBAAoB,KACpB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,cAAe,MAEnBtH,MAAO,CACH2K,0BAA2BxJ,SAC3B2J,QAAS5K,OACT8K,cAAe7J,SACfiO,UAAWrb,MACXsb,eAAgB,GAChBC,SAAUlP,QACV4I,KAAM9I,OACN+I,KAAM/I,UAGd9F,EAAQ8B,kBAAoBA,EAC5BA,EAAkBoM,aAAe,mBACjCpM,EAAkByM,oBAAqB,EACvC,IAAI1M,GAAe,EAAI6D,EAAQqI,8BAA8B,CACzDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,4BAA6B,MAEjCtH,MAAO,CACHuI,iBAAkBnI,QAClBoI,QAAStI,OACTuI,WAAYrI,QACZ1M,KAAMwM,OACNwI,mBAAoBvH,YAG5B/G,EAAQ6B,aAAeA,EACvBA,EAAaqM,aAAe,kBAC5BrM,EAAa0M,oBAAqB,EAClC1M,EAAa2M,kBAAoB,CAC7BlV,KAAM,UAEV,IAAIsI,GAAyB,EAAI8D,EAAQqI,8BAA8B,CACnEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,gBAAiB,KACjB,gBAAiB,KACjB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpBtH,MAAO,CACHsK,YAAalK,QACb+N,eAAgB/N,QAChBmC,OAAQlJ,OACRwU,OAAQ3T,OACR4T,cAAezU,OACfiV,MAAOpU,OACPiN,QAAS/G,QACTgH,MAAO/N,UAGfe,EAAQ4B,uBAAyBA,EACjCA,EAAuBsM,aAAe,eACtCtM,EAAuB8L,mBAAqB,CACxCyH,2BAA4B,CAAExH,kBAAkB,EAAOC,WAAY,UACnEwH,0BAA2B,CAAEzH,kBAAkB,EAAOC,WAAY,SAClE6F,OAAQ,CAAE9F,kBAAkB,EAAOC,WAAY,UAC/CsG,MAAO,CAAEvG,kBAAkB,EAAOC,WAAY,UAElD,IAAIjM,GAA+B,EAAI+D,EAAQqI,8BAA8B,CACzEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,iBAAkB,KAClB,cAAe,KACf,iBAAkB,MAEtBtH,MAAO,CACHkL,cAAe,GACfwC,QAAStN,QACTuN,KAAMzN,OACNgO,QAAS7U,UAGjBe,EAAQ2B,6BAA+BA,EACvCA,EAA6BuM,aAAe,SAC5C,IAAIxM,GAA8B,EAAIgE,EAAQqI,8BAA8B,CACxEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,oBAAqB,KACrB,YAAa,MAEjBtH,MAAO,CACHyP,OAAQvP,OACRwP,WAAYxP,OACZyP,GAAIzP,UAGZ9F,EAAQ0B,4BAA8BA,EACtCA,EAA4BwM,aAAe,QAC3C,IAAIzM,GAAsB,EAAIiE,EAAQqI,8BAA8B,CAChEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,uBAAwB,KACxB,4BAA6B,MAEjCtH,MAAO,CACHmO,eAAgB/N,QAChBwP,SAAUxP,QACVuN,KAAMzN,OACN2P,cAAe3P,OACf4P,mBAAoB5P,UAG5B9F,EAAQyB,oBAAsBA,EAC9BA,EAAoByM,aAAe,YACnC,IAAI1M,GAAY,EAAIkE,EAAQqI,8BAA8B,CACtDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,uBAAwB,KACxB,uBAAwB,KACxB,iBAAkB,KAClB,uBAAwB,KACxB,wBAAyB,KACzB,oBAAqB,KACrB,cAAe,KACf,cAAe,KACf,wBAAyB,KACzB,eAAgB,KAChB,qBAAsB,KACtB,+BAAgC,KAChC,yBAA0B,KAC1B,eAAgB,KAChB,kBAAmB,MAEvBtH,MAAO,CACH+P,YAAa3P,QACb4P,cAAe,CAAC5P,QAASe,UACzB8O,cAAe,CAAC7P,QAASe,UACzB+O,QAASnc,MACToc,cAAe/P,QACfgQ,eAAgBlQ,OAChBmQ,WAAY,GACZC,KAAMpW,OACNyT,KAAMzN,OACNqQ,eAAgBrQ,OAChBsQ,MAAOtW,OACPuW,YAAavQ,OACbwQ,sBAAuBtQ,QACvBuQ,gBAAiBzQ,OACjBoO,MAAO,GACPsC,SAAUxQ,WAGlBhG,EAAQwB,UAAYA,EACpBA,EAAU0M,aAAe,UACzB1M,EAAUkM,mBAAqB,CAC3B+I,OAAQ,CAAE9I,kBAAkB,EAAMC,WAAY,WAC9C8I,aAAc,CAAE/I,kBAAkB,EAAOC,WAAY,SACrDsI,KAAM,CAAEvI,kBAAkB,EAAOC,WAAY,QAC7CwI,MAAO,CAAEzI,kBAAkB,EAAOC,WAAY,SAC9CsG,MAAO,CAAEvG,kBAAkB,EAAOC,WAAY,UAElD,IAAIrM,GAAiB,EAAImE,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,0BAA2B,KAC3B,8BAA+B,KAC/B,4BAA6B,KAC7B,mBAAoB,KACpB,iBAAkB,KAClB,wBAAyB,KACzB,wBAAyB,KACzB,qBAAsB,KACtB,iCAAkC,MAEtCtH,MAAO,CACH+Q,OAAQ7Q,OACR8Q,iBAAkB9Q,OAClB+Q,iBAAkB/Q,OAClBgR,qBAAsBhR,OACtBiR,mBAAoBjR,OACpBkR,UAAWlR,OACXmR,QAASnR,OACToR,eAAgBpR,OAChBqR,eAAgBrR,OAChBsR,YAAatR,OACbuR,wBAAyBvR,UAGjC9F,EAAQuB,eAAiBA,EACzBA,EAAe2M,aAAe,QAC9B,IAAI5M,GAAc,EAAIoE,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnBtH,MAAO,CACHuI,iBAAkBnI,QAClBoI,QAAStI,OACTxM,KAAMwM,UAGd9F,EAAQsB,YAAcA,EACtBA,EAAY4M,aAAe,kBAC3B5M,EAAYiN,oBAAqB,EACjCjN,EAAYkN,kBAAoB,CAC5BlV,KAAM,SAEV,IAAI+H,GAAW,EAAIqE,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iCAAkC,KAClC,iBAAkB,KAClB,iBAAkB,KAClB,eAAgB,MAEpBtH,MAAO,CACH0R,wBAAyBtR,QACzBsN,QAAStN,QACTuR,QAAS5d,MACTua,MAAOpU,UAGfE,EAAQqB,SAAWA,EACnBA,EAAS6M,aAAe,SACxB7M,EAASqM,mBAAqB,CAC1B8J,YAAa,CAAE7J,kBAAkB,EAAOC,WAAY,SACpDsG,MAAO,CAAEvG,kBAAkB,EAAOC,WAAY,UAElD,IAAIxM,GAAgB,EAAIsE,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,kBAAmB,MAEvBtH,MAAO,CACH6R,UAAW3R,OACX4R,mBAAoB5R,OACpB6R,SAAU7R,UAGlB9F,EAAQoB,cAAgBA,EACxBA,EAAc8M,aAAe,QAC7B,IAAI/M,GAAU,EAAIuE,EAAQqI,8BAA8B,CACpDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mCAAoC,KACpC,iBAAkB,KAClB,uBAAwB,KACxB,mBAAoB,KACpB,kBAAmB,KACnB,uBAAwB,KACxB,wBAAyB,KACzB,mBAAoB,KACpB,0BAA2B,KAC3B,gBAAiB,KACjB,gBAAiB,KACjB,cAAe,KACf,kBAAmB,MAEvBtH,MAAO,CACH2K,0BAA2BxJ,SAC3B2J,QAAS5K,OACT8K,cAAe7J,SACfjJ,UAAWgI,OACX9I,SAAU8I,OACVgL,cAAe,GACfmE,eAAgB,GAChBjE,UAAWlL,OACXmL,iBAAkBtX,MAClBV,OAAQ,CAAC6G,OAAQiH,SAAUjB,QAC3BvG,OAAQO,OACR+O,KAAM/I,OACNuM,SAAUvM,UAGlB9F,EAAQmB,QAAUA,EAClBA,EAAQ+M,aAAe,SACvB/M,EAAQoN,oBAAqB,EAC7BpN,EAAQuM,mBAAqB,CACzBkK,YAAa,CAAEjK,kBAAkB,EAAOC,WAAY,UACpD3U,OAAQ,CAAE0U,kBAAkB,EAAOC,WAAY,UAC/CrO,OAAQ,CAAEoO,kBAAkB,EAAOC,WAAY,WAEnD,IAAI1M,GAAgB,EAAIwE,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExBtH,MAAO,CACH+O,cAAe3O,QACfiB,WAAY,CAACtN,MAAOmG,QACpB8U,YAAa,CAAC7N,SAAUjB,QACxB+O,UAAW,CAAC9N,SAAUjB,WAG9B9F,EAAQkB,cAAgBA,EACxBA,EAAcgN,aAAe,SAC7B,IAAIjN,GAAkB,EAAIyE,EAAQqI,8BAA8B,CAC5Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,iCAAkC,KAClC,wBAAyB,KACzB,0BAA2B,KAC3B,kBAAmB,KACnB,qBAAsB,KACtB,gBAAiB,KACjB,qCAAsC,KACtC,2BAA4B,KAC5B,oCAAqC,KACrC,yBAA0B,KAC1B,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,uBAAwB,KACxB,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,2BAA4B,KAC5B,uBAAwB,KACxB,yBAA0B,KAC1B,wBAAyB,KACzB,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpBtH,MAAO,CACHC,UAAWC,OACXC,mBAAoBC,QACpB6R,wBAAyB7R,QACzB8R,eAAgBhY,OAChBiY,iBAAkBpe,MAClBwN,SAAUnB,QACVqB,YAAavH,OACbkY,OAAQre,MACRse,4BAA6BnY,OAC7BoY,kBAAmBlS,QACnBmS,2BAA4BrY,OAC5BsY,gBAAiBze,MACjBwO,OAAQ,CAACpB,SAAU9H,OAAQ6G,QAC3BuC,KAAMvC,OACNwC,kBAAmBtC,QACnBqS,cAAepZ,OACfgK,eAAgBlC,SAChBqC,YAAarC,SACbyC,iBAAkBzC,SAClB0C,kBAAmB1C,SACnBgD,cAAehD,SACfmD,gBAAiBnD,SACjBuR,eAAgBvR,SAChB8E,WAAY7F,QACZ4G,SAAU3N,OACV/F,MAAO,CAACS,MAAOoN,SAAUjB,QACzBiH,QAAS/G,QACTgH,MAAO,CAACjG,SAAU9H,OAAQ6G,WAGlC9F,EAAQiB,gBAAkBA,EAC1BA,EAAgBiN,aAAe,gBAC/BjN,EAAgByM,mBAAqB,CACjC6K,gBAAiB,CAAE5K,kBAAkB,EAAMC,WAAY,oBACvD4K,MAAO,CAAE7K,kBAAkB,EAAMC,WAAY,UAC7CqK,4BAA6B,CAAEtK,kBAAkB,EAAOC,WAAY,+BACpEuK,2BAA4B,CAAExK,kBAAkB,EAAOC,WAAY,+BAEvE,IAAI5M,GAAuB,EAAI0E,EAAQqI,8BAA8B,CACjEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,0BAA2B,KAC3B,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1BtH,MAAO,CACHC,UAAWC,OACX2S,UAAW3Y,OACXgY,eAAgBhY,OAChB4Y,oBAAqB,CAAC1S,QAASe,UAC/B4R,UAAW,GACXC,gBAAiB,GACjBC,yBAA0B7S,QAC1B8S,eAAgB9S,QAChBmB,SAAUnB,QACV+S,kBAAmB,GACnBC,YAAahT,QACbiT,oBAAqBjT,QACrBqB,YAAa,GACb6R,iBAAkBlT,QAClBkS,kBAAmBlS,QACnBmT,WAAYnT,QACZmC,OAAQ,CAACpB,SAAU9H,OAAQ6G,QAC3BsT,mBAAoB,CAACpT,QAASe,UAC9BsS,mBAAoBrT,QACpBqC,KAAMvC,OACNwC,kBAAmBtC,QACnBsT,UAAW,CAACvS,SAAU9H,OAAQ6G,QAC9ByT,SAAU,CAACxS,SAAU9H,OAAQ6G,QAC7B0T,UAAW,CAACzS,SAAU9H,OAAQ6G,QAC9B8L,SAAU,CAAC7K,SAAU9H,OAAQ6G,QAC7BmD,eAAgBlC,SAChBqC,YAAarC,SACb0S,SAAU1S,SACV2S,SAAU3S,SACVgD,cAAehD,SACfmD,gBAAiBnD,SACjB4S,SAAU5S,SACV6S,YAAa7S,SACb8S,cAAe9S,SACf+S,UAAW/S,SACXgT,QAAShT,SACTiT,gBAAiBjT,SACjByM,SAAU,CAACzM,SAAUjH,OAAQgG,QAC7BmU,cAAejU,QACfkU,gBAAiBlU,QACjB6F,WAAY7F,QACZmU,QAASnU,QACToU,aAActU,OACduU,gBAAiBrU,QACjBsU,UAAWtU,QACX4G,SAAU3N,OACV0U,MAAO7N,OACPyU,cAAe,GACfC,aAAc7gB,MACdoT,QAAS/G,QACTgH,MAAO,CAACjG,SAAU9H,OAAQ6G,QAC1B2U,YAAa,MAGrBza,EAAQgB,qBAAuBA,EAC/BA,EAAqBkN,aAAe,qBACpC,IAAInN,GAAgC,EAAI2E,EAAQqI,8BAA8B,CAC1Eb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,eAAgB,KAChB,qBAAsB,KACtB,4BAA6B,KAC7B,iBAAkB,KAClB,oBAAqB,KACrB,kBAAmB,KACnB,yBAA0B,KAC1B,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,MAEzBtH,MAAO,CACH8U,QAAS5U,OACT6U,SAAU7U,OACV8U,SAAU9U,OACV+U,MAAO/U,OACPgV,YAAahV,OACbiV,mBAAoBjV,OACpBkV,QAASlV,OACTmV,WAAYnV,OACZoV,SAAUpV,OACVqV,gBAAiBrV,OACjBsV,YAAatV,OACbuV,SAAUvV,OACVwV,WAAYxV,UAGpB9F,EAAQe,8BAAgCA,EACxCA,EAA8BmN,aAAe,8BAC7C,IAAIpN,GAAgB,EAAI4E,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,MAEtBtH,MAAO,CACHgL,cAAe7J,SACfwU,cAAevV,QACfkO,MAAOpU,OACPiN,QAAS/G,WAGjBhG,EAAQc,cAAgBA,EACxBA,EAAcoN,aAAe,cAC7BpN,EAAc4M,mBAAqB,CAC/B8N,iBAAkB,CAAE7N,kBAAkB,EAAOC,WAAY,SACzDsG,MAAO,CAAEvG,kBAAkB,EAAOC,WAAY,UAElD,IAAI/M,GAAqB,EAAI6E,EAAQqI,8BAA8B,CAC/Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,sBAAuB,KACvB,2BAA4B,MAEhCtH,MAAO,CACH6V,YAAa3V,OACb4V,aAAc5V,OACd6V,kBAAmB7V,UAG3B9F,EAAQa,mBAAqBA,EAC7BA,EAAmBqN,aAAe,QAClC,IAAItN,GAAc,EAAI8E,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,yBAA0B,KAC1B,wBAAyB,KACzB,0BAA2B,KAC3B,+BAAgC,KAChC,4BAA6B,KAC7B,qBAAsB,KACtB,8BAA+B,KAC/B,iBAAkB,MAEtBtH,MAAO,CACHgW,YAAa9V,OACb+V,gBAAiB/V,OACjBgW,eAAgBhW,OAChBiW,iBAAkBjW,OAClBkW,sBAAuBlc,OACvBmc,mBAAoBnW,OACpBoW,YAAapW,OACbqW,qBAAsBnW,QACtB+G,QAAS/G,WAGjBhG,EAAQY,YAAcA,EACtBA,EAAYsN,aAAe,YAC3BtN,EAAY8M,mBAAqB,CAC7BsO,sBAAuB,CAAErO,kBAAkB,EAAOC,WAAY,0BAElE,IAAIjN,GAAS,EAAI+E,EAAQqI,8BAA8B,CACnDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,4BAA6B,KAC7B,yBAA0B,KAC1B,oCAAqC,KACrC,wBAAyB,KACzB,kBAAmB,KACnB,0BAA2B,KAC3B,uBAAwB,KACxB,kBAAmB,KACnB,qBAAsB,KACtB,2BAA4B,KAC5B,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,2BAA4B,KAC5B,eAAgB,KAChB,uBAAwB,KACxB,mBAAoB,KACpB,qBAAsB,KACtB,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,4BAA6B,KAC7B,uBAAwB,KACxB,yBAA0B,KAC1B,sBAAuB,KACvB,kBAAmB,KACnB,sBAAuB,KACvB,yBAA0B,KAC1B,oBAAqB,KACrB,uBAAwB,KACxB,0BAA2B,KAC3B,6BAA8B,KAC9B,0BAA2B,KAC3B,0BAA2B,KAC3B,+BAAgC,KAChC,kBAAmB,KACnB,yBAA0B,KAC1B,iBAAkB,KAClB,eAAgB,MAEpBtH,MAAO,CACHC,UAAWC,OACXC,mBAAoBC,QACpBoW,gBAAiBpW,QACjBqW,2BAA4BrW,QAC5B8R,eAAgBhY,OAChBwc,SAAU,CAACrd,OAAQ6G,QACnByW,iBAAkBzc,OAClB0c,cAAezV,SACfI,SAAUnB,QACVqB,YAAavH,OACboY,kBAAmBlS,QACnByW,SAAU,GACVtU,OAAQ,CAACpB,SAAU9H,OAAQ6G,QAC3BuC,KAAMvC,OACNwC,kBAAmBtC,QACnB0W,MAAO/iB,MACPgjB,cAAe7W,OACf8W,UAAW9W,OACX+W,YAAa5d,OACbgK,eAAgBlC,SAChBqC,YAAarC,SACb+V,iBAAkB/V,SAClBgW,mBAAoBhW,SACpBgD,cAAehD,SACfmD,gBAAiBnD,SACjBiW,aAAclX,OACdmX,SAAUjX,QACVkX,aAAcpX,OACdqX,gBAAiBrX,OACjB+F,WAAY7F,QACZoX,cAAerW,SACfsW,iBAAkBrX,QAClBsX,oBAAqBtX,QACrBuX,iBAAkBvX,QAClBwX,iBAAkBxX,QAClByX,sBAAuBzX,QACvB4G,SAAU3N,OACVye,gBAAiB5X,OACjBiH,QAAS/G,QACTgH,MAAO,CAACjG,SAAU9H,OAAQ6G,WAGlC9F,EAAQW,OAASA,EACjBA,EAAOuN,aAAe,OACtBvN,EAAO+M,mBAAqB,CACxB6O,iBAAkB,CAAE5O,kBAAkB,EAAOC,WAAY,qBAE7D,IAAIlN,GAAW,EAAIgF,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,mBAAoB,KACpB,gBAAiB,KACjB,mBAAoB,KACpB,cAAe,KACf,oCAAqC,MAEzCtH,MAAO,CACH+X,SAAU7X,OACV8X,UAAW7W,SACX8W,OAAQ9W,SACR+W,UAAW7e,OACX3F,KAAMwM,OACNiY,2BAA4B/X,WAGpChG,EAAQU,SAAWA,EACnBA,EAASwN,aAAe,SACxB,IAAIzN,GAAa,EAAIiF,EAAQqI,8BAA8B,CACvDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,mBAAoB,KACpB,uBAAwB,KACxB,oBAAqB,KACrB,kBAAmB,KACnB,oBAAqB,KACrB,kBAAmB,KACnB,eAAgB,KAChB,cAAe,KACf,kBAAmB,KACnB,yBAA0B,KAC1B,iBAAkB,KAClB,sBAAuB,MAE3BtH,MAAO,CACHoY,QAAS/e,OACT0P,SAAU7I,OACVhI,UAAWgI,OACXgL,cAAe,GACfmN,WAAYnY,OACZoY,SAAUpY,OACVqY,WAAYnY,QACZoY,SAAUtY,OACVuY,MAAOve,OACP+O,KAAM/I,OACNiJ,SAAU,GACVuD,gBAAiB3Y,MACjBoT,QAAS/G,QACTuM,aAActT,UAGtBe,EAAQS,WAAaA,EACrBA,EAAWyN,aAAe,WAC1BzN,EAAWiN,mBAAqB,CAC5B8E,UAAW,CAAE7E,kBAAkB,EAAMC,WAAY,mBACjDgF,YAAa,CAAEjF,kBAAkB,EAAMC,WAAY,mBACnDiF,WAAY,CAAElF,kBAAkB,EAAMC,WAAY,mBAClDkF,UAAW,CAAEnF,kBAAkB,EAAMC,WAAY,mBACjDyQ,MAAO,CAAE1Q,kBAAkB,EAAOC,WAAY,SAC9CmF,YAAa,CAAEpF,kBAAkB,EAAMC,WAAY,mBACnDoF,YAAa,CAAErF,kBAAkB,EAAMC,WAAY,mBACnDqF,UAAW,CAAEtF,kBAAkB,EAAMC,WAAY,mBACjDsF,aAAc,CAAEvF,kBAAkB,EAAMC,WAAY,mBACpDuF,iBAAkB,CAAExF,kBAAkB,EAAMC,WAAY,mBACxDwF,eAAgB,CAAEzF,kBAAkB,EAAMC,WAAY,oBAE1D,IAAIpN,GAAS,EAAIkF,EAAQqI,8BAA8B,CACnDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElBtH,MAAO,CACH0Y,KAAMrf,OACNsf,QAAStf,OACTuU,SAAU1T,OACV0e,MAAOvf,OACPwf,IAAKxf,UAGbe,EAAQQ,OAASA,EACjBA,EAAO0N,aAAe,OACtB1N,EAAOkN,mBAAqB,CACxB8F,SAAU,CAAE7F,kBAAkB,EAAOC,WAAY,aAErD,IAAIrN,GAAa,EAAImF,EAAQqI,8BAA8B,CACvDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,yBAA0B,KAC1B,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,eAAgB,MAEpBtH,MAAO,CACH8Y,gBAAiB1Y,QACjB2Y,cAAe3Y,QACf4Y,mBAAoB5Y,QACpB6Y,WAAY/Y,OACZoO,MAAOpU,UAGfE,EAAQO,WAAaA,EACrBA,EAAW2N,aAAe,WAC1B3N,EAAWmN,mBAAqB,CAC5BoR,cAAe,CAAEnR,kBAAkB,EAAOC,WAAY,SACtDsG,MAAO,CAAEvG,kBAAkB,EAAOC,WAAY,UAElD,IAAItN,GAAkB,EAAIoF,EAAQqI,8BAA8B,CAC5Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,2BAA4B,KAC5B,+BAAgC,KAChC,+BAAgC,KAChC,iBAAkB,KAClB,oBAAqB,MAEzBtH,MAAO,CACHmZ,kBAAmBjZ,OACnBkZ,sBAAuBlZ,OACvBmZ,sBAAuBnZ,OACvBoZ,QAASpZ,OACTqZ,WAAYrZ,UAGpB9F,EAAQM,gBAAkBA,EAC1BA,EAAgB4N,aAAe,QAC/B,IAAI7N,GAAc,EAAIqF,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,gBAAiB,KACjB,uBAAwB,KACxB,uBAAwB,KACxB,cAAe,KACf,sBAAuB,KACvB,2BAA4B,KAC5B,yBAA0B,KAC1B,qBAAsB,KACtB,qBAAsB,MAE1BtH,MAAO,CACHwZ,cAAepZ,QACf9I,OAAQ4I,OACR8K,cAAe7J,SACfsY,cAAevZ,OACf+I,KAAM/I,OACNwZ,aAAcxZ,OACdyZ,kBAAmBvZ,QACnBwZ,gBAAiBxZ,QACjByZ,YAAa3Z,OACb4Z,YAAa,CAAC5f,OAAQiH,SAAUjB,WAGxC9F,EAAQK,YAAcA,EACtBA,EAAY6N,aAAe,aAC3B7N,EAAYkO,oBAAqB,EACjClO,EAAYqN,mBAAqB,CAC7BgS,YAAa,CAAE/R,kBAAkB,EAAOC,WAAY,gBAExD,IAAIxN,GAA+B,EAAIsF,EAAQqI,8BAA8B,CACzEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,gBAAiB,KACjB,eAAgB,KAChB,YAAa,MAEjBtH,MAAO,CACH+Z,IAAK7Z,OACL8Z,OAAQ9Z,OACR+Z,MAAO/Z,OACPga,GAAIha,UAGZ9F,EAAQI,6BAA+BA,EACvCA,EAA6B8N,aAAe,6BAC5C,IAAI/N,IAAe,EAAIuF,EAAQqI,8BAA8B,CACzDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,wBAAyB,KACzB,iBAAkB,MAEtBtH,MAAO,CACHma,oBAAqB/Z,QACrBqN,eAAgBvN,OAChBiH,QAAS,CAAC/G,QAASF,WAG3B9F,EAAQG,aAAeA,GACvBA,GAAa+N,aAAe,aAC5B,IAAIhO,IAAiB,EAAIwF,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,wBAAyB,KACzB,oBAAqB,KACrB,uBAAwB,KACxB,gBAAiB,KACjB,gBAAiB,KACjB,oBAAqB,KACrB,uBAAwB,KACxB,eAAgB,KAChB,iBAAkB,KAClB,eAAgB,MAEpBtH,MAAO,CACHsK,YAAalK,QACb+N,eAAgB/N,QAChBiB,WAAY,GACZ3J,cAAe,CAAC2B,OAAQ6G,QACxBqC,OAAQlJ,OACRwU,OAAQ3T,OACR0U,WAAY1O,OACZ4N,cAAezU,OACfiV,MAAOpU,OACPiN,QAAS/G,QACTgH,MAAO/N,UAGfe,EAAQE,eAAiBA,GACzBA,GAAegO,aAAe,eAC9B,IAAIjO,IAAS,EAAIyF,EAAQqI,8BAA8B,CACnDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnBtH,MAAO,CACHoa,SAAUjZ,SACVkZ,MAAOhhB,OACPihB,UAAWpa,OACXqa,SAAUlhB,OACVmhB,OAAQta,OACRua,KAAMvgB,OACNwgB,aAAcrhB,OACdshB,MAAOxZ,SACPyZ,GAAI1gB,OACJxG,KAAMwM,UAGd9F,EAAQC,OAASA,GACjBA,GAAOiO,aAAe,OACtBjO,GAAOyN,mBAAqB,CACxB2S,KAAM,CAAE1S,kBAAkB,EAAOC,WAAY,QAC7C4S,GAAI,CAAE7S,kBAAkB,EAAOC,WAAY,OAE/C,IAAIrI,IAAS,EAAIG,EAAQqI,8BAA8B,CACnDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,sBAAuB,KACvB,kBAAmB,KACnB,0BAA2B,KAC3B,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,gBAAiB,MAErBtH,MAAO,CACH+I,SAAU7I,OACVqB,SAAUnB,QACVya,KAAM3a,OACN4a,aAAc5a,OACd6a,SAAU7a,OACV8a,iBAAkB,GAClB/R,KAAM/I,OACN+a,QAAS,GACTC,SAAUhb,OACViJ,SAAU,GACVC,KAAMlJ,OACNiH,QAAS/G,QACT+a,OAAQjb,UAGhB9F,EAAQuF,OAASA,GACjBA,GAAO2I,aAAe,QACtB3I,GAAOgJ,oBAAqB,EAC5B,IAAIjJ,IAAuB,EAAII,EAAQqI,8BAA8B,CACjEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,iBAAkB,KAClB,wBAAyB,KACzB,2BAA4B,MAEhCtH,MAAO,CACHob,eAAgBhb,QAChBsN,QAAStN,QACTib,eAAgBnb,OAChBob,kBAAmBpb,UAG3B9F,EAAQsF,qBAAuBA,GAC/BA,GAAqB4I,aAAe,qBACpC,IAAI7I,IAAU,EAAIK,EAAQqI,8BAA8B,CACpDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,MAEtBtH,MAAO,CACH4J,UAAW1J,OACX6a,SAAU7a,OACVqb,UAAWnb,QACX+I,SAAU,GACVC,KAAMlJ,OACNiH,QAAS/G,WAGjBhG,EAAQqF,QAAUA,GAClBA,GAAQ6I,aAAe,QACvB,IAAI9I,IAAc,EAAIM,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,gBAAiB,KACjB,sBAAuB,KACvB,iBAAkB,KAClB,sBAAuB,KACvB,uBAAwB,KACxB,kBAAmB,KACnB,cAAe,KACf,eAAgB,MAEpBtH,MAAO,CACH0N,QAAS,CAACtN,QAASF,QACnBqC,OAAQlJ,OACRmiB,aAActb,OACdqU,QAASnU,QACToU,aAActU,OACdub,cAAerb,QACfsb,SAAUtb,QACVgJ,KAAMlJ,OACNkH,MAAO/N,UAGfe,EAAQoF,YAAcA,GACtBA,GAAY8I,aAAe,YAC3B,IAAI/I,IAAW,EAAIO,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,4BAA6B,KAC7B,oBAAqB,KACrB,qBAAsB,KACtB,mBAAoB,MAExBtH,MAAO,CACH+O,cAAe3O,QACfsK,mBAAoBvJ,SACpBE,WAAY,GACZ2N,YAAa,CAAC7N,SAAUjB,QACxB+O,UAAW,CAAC/O,OAAQiB,aAG5B/G,EAAQmF,SAAWA,GACnBA,GAAS+I,aAAe,SACxB,IAAIhJ,IAAiB,EAAIQ,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,iBAAkB,KAClB,kBAAmB,MAEvBtH,MAAO,CACH+Y,cAAe3Y,QACfsN,QAAStN,QACT+I,SAAU,MAGlB/O,EAAQkF,eAAiBA,GACzBA,GAAegJ,aAAe,eAC9B,IAAIjJ,IAAO,EAAIS,EAAQqI,8BAA8B,CACjDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBtH,MAAO,CACH6I,EAAG3I,OACH4I,EAAG5I,UAGX9F,EAAQiF,KAAOA,GACfA,GAAKiJ,aAAe,KACpB,IAAIlJ,IAAgB,EAAIU,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,cAAe,MAEnBtH,MAAO,CACHuI,iBAAkBnI,QAClBoI,QAAStI,OACTxM,KAAMwM,UAGd9F,EAAQgF,cAAgBA,GACxBA,GAAckJ,aAAe,kBAC7BlJ,GAAcuJ,oBAAqB,EACnCvJ,GAAcwJ,kBAAoB,CAC9BlV,KAAM,WAEV,IAAIyL,IAAW,EAAIW,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,WAAY,KACZ,WAAY,MAEhBtH,MAAO,CACH6I,EAAGxP,OACHyP,EAAGzP,UAGXe,EAAQ+E,SAAWA,GACnBA,GAASmJ,aAAe,SACxB,IAAIpJ,IAA0B,EAAIY,EAAQqI,8BAA8B,CACpEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,eAAgB,KAChB,qBAAsB,KACtB,4BAA6B,KAC7B,kBAAmB,KACnB,yBAA0B,KAC1B,qBAAsB,KACtB,kBAAmB,KACnB,oBAAqB,MAEzBtH,MAAO,CACH8U,QAAS5U,OACT6U,SAAU7U,OACV8U,SAAU9U,OACV+U,MAAO/U,OACPgV,YAAahV,OACbiV,mBAAoBjV,OACpBoV,SAAUpV,OACVqV,gBAAiBrV,OACjBsV,YAAatV,OACbuV,SAAUvV,OACVwV,WAAYxV,UAGpB9F,EAAQ8E,wBAA0BA,GAClCA,GAAwBoJ,aAAe,wBACvC,IAAIrJ,IAAU,EAAIa,EAAQqI,8BAA8B,CACpDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,qBAAsB,KACtB,kBAAmB,KACnB,eAAgB,KAChB,kBAAmB,KACnB,+BAAgC,KAChC,8BAA+B,KAC/B,iBAAkB,MAEtBtH,MAAO,CACH2b,iBAAkB,CAAC5nB,MAAOmM,QAC1B0b,YAAa1b,OACb2b,SAAU3b,OACVuY,MAAOvY,OACP4b,SAAU1b,QACV2b,sBAAuB3b,QACvB4b,qBAAsB5b,QACtB+G,QAAS,CAAC/G,QAASF,WAG3B9F,EAAQ6E,QAAUA,GAClBA,GAAQqJ,aAAe,QACvB,IAAItJ,IAAW,EAAIc,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,mBAAoB,KACpB,kBAAmB,MAEvBtH,MAAO,CACH0N,QAAStN,QACT6b,UAAW5iB,OACX6iB,SAAU7iB,UAGlBe,EAAQ4E,SAAWA,GACnBA,GAASsJ,aAAe,SACxB,IAAIvJ,IAAgB,EAAIe,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,iBAAkB,KAClB,iBAAkB,KAClB,cAAe,MAEnBtH,MAAO,CACHuI,iBAAkBnI,QAClBoI,QAAStI,OACTic,QAAS,GACTzoB,KAAMwM,UAGd9F,EAAQ2E,cAAgBA,GACxBA,GAAcuJ,aAAe,kBAC7BvJ,GAAc4J,oBAAqB,EACnC5J,GAAc6J,kBAAoB,CAC9BlV,KAAM,WAEV,IAAIoL,IAAU,EAAIgB,EAAQqI,8BAA8B,CACpDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,mBAAoB,KACpB,wBAAyB,KACzB,6BAA8B,KAC9B,mBAAoB,KACpB,yBAA0B,KAC1B,kCAAmC,KACnC,wBAAyB,KACzB,kBAAmB,KACnB,2BAA4B,KAC5B,qBAAsB,KACtB,6BAA8B,KAC9B,qBAAsB,KACtB,0BAA2B,KAC3B,2BAA4B,KAC5B,oBAAqB,KACrB,gBAAiB,KACjB,4BAA6B,KAC7B,4BAA6B,KAC7B,cAAe,KACf,2BAA4B,KAC5B,mBAAoB,KACpB,kBAAmB,KACnB,mBAAoB,KACpB,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,kBAAmB,KACnB,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,kBAAmB,KACnB,qBAAsB,KACtB,uBAAwB,KACxB,mBAAoB,KACpB,iBAAkB,KAClB,yBAA0B,KAC1B,kBAAmB,KACnB,uBAAwB,KACxB,yBAA0B,KAC1B,oBAAqB,KACrB,iBAAkB,KAClB,sBAAuB,KACvB,yBAA0B,KAC1B,mBAAoB,KACpB,kBAAmB,KACnB,eAAgB,KAChB,uBAAwB,KACxB,sBAAuB,KACvB,iBAAkB,KAClB,eAAgB,KAChB,qBAAsB,MAE1BtH,MAAO,CACHC,UAAWC,OACX2S,UAAW3Y,OACXgY,eAAgBhY,OAChB4Y,oBAAqB,CAAC1S,QAASe,UAC/B4R,UAAW,GACXC,gBAAiB,GACjBC,yBAA0B7S,QAC1B8S,eAAgB9S,QAChBmB,SAAUnB,QACV+S,kBAAmB,GACnBC,YAAahT,QACbiT,oBAAqBjT,QACrBqB,YAAa,GACb6R,iBAAkBlT,QAClBkS,kBAAmBlS,QACnBmT,WAAYnT,QACZmC,OAAQ,CAACpB,SAAU9H,OAAQ6G,QAC3BsT,mBAAoB,CAACpT,QAASe,UAC9BsS,mBAAoBrT,QACpBqC,KAAMvC,OACNwC,kBAAmBtC,QACnBsT,UAAW,CAACvS,SAAU9H,OAAQ6G,QAC9ByT,SAAU,CAACxS,SAAU9H,OAAQ6G,QAC7B0T,UAAW,CAACzS,SAAU9H,OAAQ6G,QAC9B8L,SAAU,CAAC7K,SAAU9H,OAAQ6G,QAC7BmD,eAAgBlC,SAChBqC,YAAarC,SACb0S,SAAU1S,SACV2S,SAAU3S,SACVgD,cAAehD,SACfmD,gBAAiBnD,SACjB4S,SAAU5S,SACV6S,YAAa7S,SACb8S,cAAe9S,SACf+S,UAAW/S,SACXgT,QAAShT,SACTiT,gBAAiBjT,SACjByM,SAAU,CAACzM,SAAUjH,OAAQgG,QAC7BmU,cAAejU,QACfkU,gBAAiBlU,QACjB6F,WAAY7F,QACZmU,QAASnU,QACToU,aAActU,OACduU,gBAAiBrU,QACjBsU,UAAWtU,QACX4G,SAAU3N,OACV0U,MAAO7N,OACPyU,cAAe,GACfC,aAAc7gB,MACdoT,QAAS/G,QACTgH,MAAO,CAACjG,SAAU9H,OAAQ6G,QAC1B2U,YAAa,MAGrBza,EAAQ0E,QAAUA,GAClBA,GAAQwJ,aAAe,QACvBxJ,GAAQgJ,mBAAqB,CACzB+K,UAAW,CAAE9K,kBAAkB,EAAOC,WAAY,aAClD4F,SAAU,CAAE7F,kBAAkB,EAAOC,WAAY,YACjDoU,YAAa,CAAErU,kBAAkB,EAAMC,WAAY,iBAEvD,IAAInJ,IAAa,EAAIiB,EAAQqI,8BAA8B,CACvDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,YAAa,KACb,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,YAAa,KACb,YAAa,KACb,gBAAiB,MAErBtH,MAAO,CACHqc,GAAI,CAACniB,OAAQgG,QACboc,SAAU,GACVC,eAAgB,CAACriB,OAAQgG,QACzBsc,UAAW,CAACtiB,OAAQgG,QACpBuc,GAAI,CAACviB,OAAQgG,QACbwc,GAAI,GACJC,OAAQ,CAACziB,OAAQgG,WAGzB9F,EAAQyE,WAAaA,GACrBA,GAAWyJ,aAAe,WAC1B,IAAI1J,IAAc,EAAIkB,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,oBAAqB,KACrB,cAAe,MAEnBtH,MAAO,CACHuI,iBAAkBnI,QAClBwc,IAAK,GACLpU,QAAStI,OACT2c,IAAK,GACLpU,WAAYrI,QACZ1M,KAAMwM,UAGd9F,EAAQwE,YAAcA,GACtBA,GAAY0J,aAAe,kBAC3B1J,GAAY+J,oBAAqB,EACjC/J,GAAYgK,kBAAoB,CAC5BlV,KAAM,SAEV,IAAIiL,IAAqB,EAAImB,EAAQqI,8BAA8B,CAC/Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,kBAAmB,KACnB,qBAAsB,KACtB,gBAAiB,KACjB,iBAAkB,KAClB,iBAAkB,MAEtBtH,MAAO,CACH8c,UAAW1c,QACXiC,SAAUjC,QACV2c,YAAa3c,QACbsF,OAAQtF,QACRwG,QAASxG,QACT0G,QAAS1G,WAGjBhG,EAAQuE,mBAAqBA,GAC7BA,GAAmB2J,aAAe,mBAClC,IAAI5J,IAAiB,EAAIoB,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,iBAAkB,KAClB,cAAe,KACf,cAAe,MAEnBtH,MAAO,CACHwI,QAAStI,OACT8c,KAAM5c,QACN1M,KAAMwM,UAGd9F,EAAQsE,eAAiBA,GACzBA,GAAe4J,aAAe,kBAC9B5J,GAAeiK,oBAAqB,EACpCjK,GAAekK,kBAAoB,CAC/BlV,KAAM,YAEV,IAAI+K,IAAgB,EAAIqB,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,yBAA0B,KAC1B,oBAAqB,KACrB,kBAAmB,KACnB,mBAAoB,KACpB,sBAAuB,KACvB,cAAe,KACf,uBAAwB,KACxB,sBAAuB,KACvB,0BAA2B,KAC3B,gBAAiB,KACjB,eAAgB,KAChB,gBAAiB,KACjB,eAAgB,KAChB,sBAAuB,KACvB,mBAAoB,KACpB,oBAAqB,KACrB,qBAAsB,KACtB,kBAAmB,KACnB,mBAAoB,KACpB,2BAA4B,KAC5B,qBAAsB,KACtB,uBAAwB,MAE5BtH,MAAO,CACHid,oBAAqB7c,QACrBgK,gBAAiBhK,QACjB8c,WAAY9c,QACZkc,SAAU,GACVvJ,UAAW,GACXoK,aAAc,CAACjjB,OAAQgG,QACvBmJ,KAAM,GACN+T,cAAeld,OACfmd,aAAc,GACdC,iBAAkBpd,OAClBtG,OAAQsG,OACRqd,MAAOrd,OACPsd,OAAQtd,OACRud,MAAOtc,SACPuc,aAAcvc,SACdwc,UAAWxc,SACXyc,WAAYzc,SACZ0c,YAAa1c,SACb2c,SAAU3c,SACV4c,UAAW5c,SACX6c,kBAAmB3kB,OACnB4kB,YAAa5kB,OACb6kB,cAAe9d,WAGvBhG,EAAQqE,cAAgBA,GACxBA,GAAc6J,aAAe,cAC7B7J,GAAcqJ,mBAAqB,CAC/BqV,aAAc,CAAEpV,kBAAkB,EAAOC,WAAY,iBAEzD,IAAIxJ,IAAc,EAAIsB,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,6BAA8B,KAC9B,cAAe,KACf,wBAAyB,KACzB,qBAAsB,KACtB,0BAA2B,KAC3B,yBAA0B,KAC1B,uBAAwB,KACxB,uBAAwB,KACxB,mBAAoB,MAExBtH,MAAO,CACHme,oBAAqBje,OACrByN,KAAMzN,OACNke,eAAgBhe,QAChBwF,YAAaxF,QACbie,iBAAkBne,OAClBoe,gBAAiBle,QACjBme,cAAene,QACfoe,cAAete,OACfue,UAAW,CAACre,QAASF,WAG7B9F,EAAQoE,YAAcA,GACtBA,GAAY8J,aAAe,YAC3B,IAAI/J,IAAW,EAAIuB,EAAQqI,8BAA8B,CACrDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,iBAAkB,KAClB,cAAe,KACf,oBAAqB,KACrB,iBAAkB,MAEtBtH,MAAO,CACHkL,cAAe,GACfwC,QAAStN,QACTuN,KAAMzN,OACN4O,WAAY,CAAC/a,MAAOoN,SAAUjB,QAC9BgO,QAAS7U,UAGjBe,EAAQmE,SAAWA,GACnBA,GAAS+J,aAAe,SACxB,IAAIhK,IAAgB,EAAIwB,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gCAAiC,KACjC,6BAA8B,KAC9B,qBAAsB,KACtB,kCAAmC,KACnC,cAAe,KACf,iBAAkB,KAClB,eAAgB,MAEpBtH,MAAO,CACH0e,uBAAwBte,QACxBue,oBAAqBve,QACrBwe,YAAa1e,OACb2e,yBAA0Bze,QAC1BgJ,KAAMlJ,OACNiH,QAAS/G,QACTgH,MAAO,CAAC/N,OAAQ6G,WAGxB9F,EAAQkE,cAAgBA,GACxBA,GAAcgK,aAAe,cAC7B,IAAIjK,IAAc,EAAIyB,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,wBAAyB,KACzB,kBAAmB,KACnB,cAAe,KACf,mBAAoB,KACpB,uBAAwB,KACxB,uBAAwB,KACxB,4BAA6B,MAEjCtH,MAAO,CACHmO,eAAgB/N,QAChBwP,SAAUxP,QACVuN,KAAMzN,OACNkO,UAAWhO,QACXyP,cAAe3P,OACfmO,cAAejO,QACf0P,mBAAoB5P,UAG5B9F,EAAQiE,YAAcA,GACtBA,GAAYiK,aAAe,YAC3B,IAAIlK,IAAS,EAAI0B,EAAQqI,8BAA8B,CACnDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,mBAAoB,KACpB,kBAAmB,KACnB,gBAAiB,KACjB,cAAe,KACf,sBAAuB,KACvB,eAAgB,KAChB,YAAa,KACb,cAAe,MAEnBtH,MAAO,CACHoa,SAAUjZ,SACVkZ,MAAOhhB,OACPihB,UAAWpa,OACXqa,SAAUlhB,OACVmhB,OAAQta,OACRua,KAAMvgB,OACNwgB,aAAcrhB,OACdshB,MAAOxZ,SACPyZ,GAAI1gB,OACJxG,KAAMwM,UAGd9F,EAAQgE,OAASA,GACjBA,GAAOkK,aAAe,OACtB,IAAInK,IAA2B,EAAI2B,EAAQqI,8BAA8B,CACrEb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,qBAAsB,KACtB,mBAAoB,KACpB,qBAAsB,MAE1BtH,MAAO,CACH8e,YAAa5e,OACbsM,UAAWtM,OACX6e,YAAa,CAAC1lB,OAAQ6G,WAG9B9F,EAAQ+D,yBAA2BA,GACnCA,GAAyBmK,aAAe,yBACxCnK,GAAyBwK,oBAAqB,EAC9C,IAAIzK,IAAY,EAAI4B,EAAQqI,8BAA8B,CACtDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,uBAAwB,KACxB,mBAAoB,KACpB,wBAAyB,KACzB,cAAe,KACf,yBAA0B,MAE9BtH,MAAO,CACHgf,cAAe9e,OACf+e,UAAW/e,OACXgf,eAAgBhf,OAChByN,KAAMzN,OACNif,gBAAiB/e,WAGzBhG,EAAQ8D,UAAYA,GACpBA,GAAUoK,aAAe,UACzB,IAAIrK,IAAiB,EAAI6B,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,oBAAqB,KACrB,oBAAqB,KACrB,iBAAkB,KAClB,uBAAwB,KACxB,oBAAqB,KACrB,cAAe,MAEnBtH,MAAO,CACHof,WAAYje,SACZke,WAAYle,SACZuM,QAAStN,QACTkf,cAAejmB,OACfkmB,WAAYrf,OACZxM,KAAMwM,UAGd9F,EAAQ6D,eAAiBA,GACzBA,GAAeqK,aAAe,eAC9B,IAAItK,IAAqB,EAAI8B,EAAQqI,8BAA8B,CAC/Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,cAAe,KACf,cAAe,MAEnBtH,MAAO,CACHuI,iBAAkBnI,QAClBwc,IAAKvjB,OACLmP,QAAStI,OACT2c,IAAKxjB,OACL2jB,KAAM5c,QACN1M,KAAMwM,UAGd9F,EAAQ4D,mBAAqBA,GAC7BA,GAAmBsK,aAAe,kBAClCtK,GAAmB2K,oBAAqB,EACxC3K,GAAmB4K,kBAAoB,CACnClV,KAAM,gBAEV,IAAIqK,IAAY,EAAI+B,EAAQqI,8BAA8B,CACtDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gCAAiC,KACjC,oBAAqB,KACrB,iCAAkC,KAClC,yBAA0B,KAC1B,eAAgB,KAChB,oBAAqB,MAEzBtH,MAAO,CACHwf,uBAAwBre,SACxBse,WAAY1rB,MACZ2rB,wBAAyBtf,QACzBwZ,gBAAiBxZ,QACjBkO,MAAOpU,OACPylB,WAAY5rB,SAGpBqG,EAAQ2D,UAAYA,GACpBA,GAAUuK,aAAe,UACzBvK,GAAU+J,mBAAqB,CAC3B8X,UAAW,CAAE7X,kBAAkB,EAAMC,WAAY,cACjD6X,aAAc,CAAE9X,kBAAkB,EAAOC,WAAY,SACrDsG,MAAO,CAAEvG,kBAAkB,EAAOC,WAAY,SAC9C8X,UAAW,CAAE/X,kBAAkB,EAAMC,WAAY,eAErD,IAAIlK,IAAiB,EAAIgC,EAAQqI,8BAA8B,CAC3Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,eAAgB,KAChB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,MAE7BtH,MAAO,CACH+f,IAAK7f,OACL8f,eAAgB9f,OAChBlK,MAAOkK,OACP0c,IAAK1c,OACL+f,eAAgB/f,OAChB2c,IAAK3c,OACLggB,eAAgBhgB,OAChBigB,IAAKjgB,OACLkgB,eAAgBlgB,UAGxB9F,EAAQ0D,eAAiBA,GACzBA,GAAewK,aAAe,QAC9B,IAAIzK,IAAU,EAAIiC,EAAQqI,8BAA8B,CACpDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,gBAAiB,KACjB,aAAc,KACd,wBAAyB,KACzB,gBAAiB,KACjB,0BAA2B,KAC3B,0BAA2B,KAC3B,qBAAsB,KACtB,8BAA+B,KAC/B,4BAA6B,KAC7B,eAAgB,KAChB,sBAAuB,KACvB,mBAAoB,KACpB,iBAAkB,KAClB,oBAAqB,KACrB,mBAAoB,KACpB,4BAA6B,KAC7B,kBAAmB,KACnB,2BAA4B,KAC5B,aAAc,KACd,2BAA4B,KAC5B,+BAAgC,KAChC,+BAAgC,KAChC,sBAAuB,KACvB,aAAc,KACd,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,YAAa,KACb,uBAAwB,KACxB,wBAAyB,KACzB,wBAAyB,KACzB,aAAc,KACd,wBAAyB,KACzB,qBAAsB,KACtB,eAAgB,KAChB,iBAAkB,KAClB,oBAAqB,KACrB,iCAAkC,MAEtCtH,MAAO,CACH+Q,OAAQ7Q,OACR6f,IAAK7f,OACL8f,eAAgB9f,OAChBuP,OAAQvP,OACR8Q,iBAAkB9Q,OAClB+Q,iBAAkB/Q,OAClB2V,YAAa3V,OACbgR,qBAAsBhR,OACtBiR,mBAAoBjR,OACpBlK,MAAOkK,OACP4V,aAAc5V,OACdkR,UAAWlR,OACXmR,QAASnR,OACTwP,WAAYxP,OACZ2R,UAAW3R,OACX4R,mBAAoB5R,OACpB6R,SAAU7R,OACV6V,kBAAmB7V,OACnBsO,IAAKtO,OACLiZ,kBAAmBjZ,OACnBkZ,sBAAuBlZ,OACvBmZ,sBAAuBnZ,OACvBuO,aAAcvO,OACd0c,IAAK1c,OACL+f,eAAgB/f,OAChB2c,IAAK3c,OACLggB,eAAgBhgB,OAChByP,GAAIzP,OACJwO,cAAexO,OACfoR,eAAgBpR,OAChBqR,eAAgBrR,OAChBigB,IAAKjgB,OACLkgB,eAAgBlgB,OAChBsR,YAAatR,OACbyO,MAAOzO,OACPoZ,QAASpZ,OACTqZ,WAAYrZ,OACZuR,wBAAyBvR,UAGjC9F,EAAQyD,QAAUA,GAClBA,GAAQyK,aAAe,QACvB,IAAI1K,IAAO,EAAIkC,EAAQqI,8BAA8B,CACjDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,cAAe,KACf,iBAAkB,KAClB,kBAAmB,KACnB,eAAgB,KAChB,aAAc,MAElBtH,MAAO,CACH0Y,KAAMrf,OACNsf,QAAStf,OACTuU,SAAU1T,OACV0e,MAAOvf,OACPwf,IAAKxf,UAGbe,EAAQwD,KAAOA,GACfA,GAAK0K,aAAe,KACpB,IAAI3K,IAAY,EAAImC,EAAQqI,8BAA8B,CACtDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,eAAgB,KAChB,iBAAkB,MAEtBtH,MAAO,CACHuB,SAAUnB,QACV0W,MAAO/iB,MACPoT,QAAS/G,WAGjBhG,EAAQuD,UAAYA,GACpBA,GAAU2K,aAAe,UACzB3K,GAAUmK,mBAAqB,CAC3BuY,KAAM,CAAEtY,kBAAkB,EAAMC,WAAY,UAEhD,IAAItK,IAAgB,EAAIoC,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,sBAAuB,KACvB,kBAAmB,KACnB,0BAA2B,KAC3B,iBAAkB,KAClB,kBAAmB,KACnB,kBAAmB,KACnB,cAAe,KACf,iBAAkB,KAClB,iBAAkB,KAClB,gBAAiB,MAErBtH,MAAO,CACH+I,SAAU7I,OACVqB,SAAUnB,QACVya,KAAM3a,OACN4a,aAAc5a,OACd6a,SAAU7a,OACV8a,iBAAkB,GAClBC,QAAS,GACTC,SAAUhb,OACViJ,SAAU,GACVC,KAAMlJ,OACN+G,QAAS/G,OACTiH,QAAS/G,QACT+a,OAAQjb,UAGhB9F,EAAQsD,cAAgBA,GACxBA,GAAc4K,aAAe,eAC7B5K,GAAciL,oBAAqB,EACnC,IAAIlL,IAAc,EAAIqC,EAAQqI,8BAA8B,CACxDb,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,mBAAoB,KACpB,gBAAiB,KACjB,kBAAmB,KACnB,uBAAwB,KACxB,uBAAwB,KACxB,cAAe,KACf,sBAAuB,KACvB,yBAA0B,KAC1B,qBAAsB,KACtB,qBAAsB,MAE1BtH,MAAO,CACH4J,UAAW1J,OACX5I,OAAQ4I,OACR6I,SAAU7I,OACV8K,cAAe7J,SACfsY,cAAevZ,OACf+I,KAAM/I,OACNwZ,aAAcxZ,OACd0Z,gBAAiBxZ,QACjByZ,YAAa3Z,OACb4Z,YAAa,CAAC5f,OAAQiH,SAAUjB,WAGxC9F,EAAQqD,YAAcA,GACtBA,GAAY6K,aAAe,aAC3B7K,GAAYkL,oBAAqB,EACjClL,GAAYqK,mBAAqB,CAC7BgS,YAAa,CAAE/R,kBAAkB,EAAOC,WAAY,gBAExD,IAAIxK,IAAmB,EAAIsC,EAAQqI,8BAA8B,CAC7Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,0BAA2B,KAC3B,wBAAyB,KACzB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,aAAc,KACd,iBAAkB,KAClB,oBAAqB,KACrB,cAAe,KACf,cAAe,KACf,4BAA6B,MAEjCtH,MAAO,CACHkP,iBAAkB/N,SAClBgO,eAAgBjP,OAChBqI,iBAAkBnI,QAClBwc,IAAK,GACLpU,QAAStI,OACT2c,IAAK,GACLV,QAAS,GACT1T,WAAYrI,QACZ4c,KAAM5c,QACN1M,KAAMwM,OACNwI,mBAAoBvH,YAG5B/G,EAAQoD,iBAAmBA,GAC3BA,GAAiB8K,aAAe,kBAChC9K,GAAiBmL,oBAAqB,EACtCnL,GAAiBoL,kBAAoB,CACjClV,KAAM,YAEV,IAAI6J,IAAgB,EAAIuC,EAAQqI,8BAA8B,CAC1Db,MAAO,CACH,kBAAmB,KACnB,wBAAyB,KACzB,kBAAmB,KACnB,mBAAoB,KACpB,gBAAiB,KACjB,mBAAoB,KACpB,cAAe,KACf,oCAAqC,MAEzCtH,MAAO,CACH+X,SAAU7X,OACV8X,UAAW7W,SACX8W,OAAQ9W,SACR+W,UAAW7e,OACX3F,KAAMwM,OACNiY,2BAA4B/X,WAGpChG,EAAQmD,cAAgBA,GACxBA,GAAc+K,aAAe,cAC7BlO,EAAQwN,QAAUtK,G,qKC7zFdgjB,EAAoB,mBACpBC,EAAuB,yBACvBC,EAAuB,kBACvBC,EAAoB,gCACpBC,EAAqB,GAAGC,OAAOF,EAAmB,SAClDG,EAAwB,gCACxBC,EAAyB,GAAGF,OAAOC,EAAuB,SAC1DE,EAAsB,CACtBxe,WAAY,CAAC,2DACbye,cAAe,CAAC,8DAA+D,+DAC/Ehf,UAAW,CAAC,oFAAqF,qFACjGif,SAAU,CAAC,GAAGL,OAAOH,GAAuB,GAAGG,OAAOF,EAAmB,cAAe,GAAGE,OAAOD,EAAoB,cAAe,GAAGC,OAAOD,GAAqB,GAAGC,OAAOC,EAAuB,cAAe,GAAGD,OAAOE,EAAwB,cAAe,GAAGF,OAAOE,IAC/QI,OAAQ,CAAC,sDAAuD,uDAChEnf,YAAa,CAAC,4CAA6C,6CAC3D2D,MAAO,CAAC,gCAAiC,kCAEzCyb,GAAc,EACdC,GAAmB,EACnBC,EAAqB,KAEzB,SAASC,EAAeC,EAAU9Z,EAAU+Z,EAAOC,EAAQC,EAAcC,GACrE,IAAIC,EAAYC,EAAiBpa,EAAU+Z,EAAMM,cAAeH,GAChE,IAAIC,EAAJ,CAGA,IAAIG,EAAU,eAAiBP,GAC3B,UAAYO,GAAW,UAAYA,GACnCC,EAAuBR,EAAMvpB,OAAQwP,GACrCga,GAAUA,EAAO,CACbD,MAAOA,KAEJ,QAAUO,EACjBL,EAAaO,SAAS1B,GAEtB2B,EAAWX,EAAU9Z,EAAU+Z,IAGhC,SAASQ,EAAuB/pB,EAAQwP,GAC3C,IAAI0a,EAAU,eAAElqB,GACZmqB,EAAYD,EAAQE,KAAK,cACzBC,EAAkBC,EAA4BH,EAAW3a,EAAS+a,WAClEC,EAAcH,EAAgB9qB,MAAM2qB,GACxCd,EAAqB,OAAAqB,EAAA,MAAO,GAAI,CAC5BN,UAAWA,EACX5qB,MAAOirB,GACR,CACCE,aAAclb,IAItB,SAAS8a,EAA4BH,EAAWQ,GAC5C,IACIN,EADAO,EAAe,eAAED,GAOrB,OAJIN,EADAF,EACkBS,EAAaC,KAAK,gBAAgBlC,OAAOwB,EAAW,iBAEpDS,EAAaC,KAAK,cAEjCR,EAGX,SAASS,EAAuBC,EAAeR,GAC3C,IAAIS,GAAQ,OAAST,QAAW,IAAWA,OAAU,EAASA,EAAQU,gBAAkB,aAAWC,cACnG,IAAK,IAAI3rB,KAASwrB,EAAe,CAC7B,IAAI9qB,EAAW8qB,EAAcxrB,GACzB4rB,EAAoB,eAAEH,GAAMH,KAAK5qB,GAAUmrB,QAC/C,GAAID,EAAkBlvB,OAClB,OAAOkvB,GAKnB,SAASvB,EAAiBpa,EAAU+Z,EAAO8B,GACvC,IAAIC,EAAO,CACP/B,MAAOA,EACPgC,SAAS,GAOb,OALIF,EACAA,EAAcC,GAEd9b,EAASgc,sBAAsB,YAA/Bhc,CAA4C8b,GAEzCA,EAAKC,QAGhB,SAASE,IACLtC,EAAmB,YAAc,aAAW+B,cAAcQ,gBAEvD,SAASC,IACZ,OAAaC,GAAG,aAAWV,cAAe,mBAAoBO,GAE3D,SAASI,IACZ,OAAaC,IAAI,aAAWZ,cAAe,mBAAoBO,GAE5D,SAASM,EAAYxB,EAASyB,GACjC7C,GAAmB,EACnBoB,EAAQ0B,MAAM,CACVD,cAAeA,IAEnB7C,GAAmB,EAEhB,SAAS+C,EAAuB5C,EAAU9Z,EAAU2c,EAAUlsB,EAAUupB,EAAQE,GACnF,GAAIla,EAAS4c,OAAO,+BAChB,OAAO,OAEX,IAAIC,EAAiB,IAAM,eAAE7c,EAAS+a,WAClC+B,EAAiBC,GAAKlD,EAAeC,EAAU9Z,EAAU+c,EAAG/C,EAAQ6C,IAAkB3C,GACtF8C,EAAmB,KACnBtD,GAAc,EACdmD,IAAiBI,YAAYnE,IAE7BoE,EAAiB,KACjB,IAAIC,GAAmBzD,IAAgBC,EACnCwD,GACAN,IAAiBrC,SAAS1B,GAE9BY,GAAc,GAKlB,OAHA,OAAa0C,GAAGO,EAAU,UAAWlsB,EAAUqsB,GAC/C,OAAaV,GAAGO,EAAU,YAAalsB,EAAUusB,GACjD,OAAaZ,GAAGO,EAAU,UAAWlsB,EAAUysB,GACxC,KACH,OAAaZ,IAAIK,EAAU,UAAWlsB,EAAUqsB,GAChD,OAAaR,IAAIK,EAAU,YAAalsB,EAAUusB,GAClD,OAAaV,IAAIK,EAAU,UAAWlsB,EAAUysB,IAGjD,SAAS,EAAald,GACzB,IAAKA,EAAS4c,OAAO,gCAAkChD,EAAoB,CACvE,IAAIsB,EAAetB,EAAmBsB,aACtC,GAAIA,EAAc,CACd,IAAIL,EAAkBC,EAA4BlB,EAAmBe,UAAWO,EAAaH,WACzFqC,EAAiBvC,EAAgBwC,GAAGzD,EAAmB7pB,OAC3D6pB,EAAqB,KACrB,OAAa0D,QAAQF,EAAgB,WAI1C,SAAS3C,EAAWX,EAAU9Z,EAAU+Z,GAC3C,IAAIO,EAAU,eAAiBP,GAC/B,GAAIA,EAAMwD,UAAY,YAAcjD,GAAW,cAAgBA,GAAU,CACrE,IAAIkD,EAAY9qB,OAAO+qB,KAAKnE,GACxBoE,EAAgBF,EAAUntB,QAAQypB,GACtC,MAAO4D,GAAiB,GAAKA,EAAgBF,EAAU/wB,OAAQ,CAC3DixB,EAAgB,YAAcpD,IAAYoD,IAAkBA,EAC5D,IAAIC,EAAYH,EAAUE,GACtBnC,EAAgBjC,EAAoBqE,GACpChC,EAAoBL,EAAuBC,EAAexB,EAAMvpB,QACpE,GAAImrB,GAAqBA,EAAkBlvB,OAAQ,CAC/CkvB,EAAkBf,KAAK,WAAY5a,EAAS4c,OAAO,aAAe,GAClE,OAAaU,QAAQ3B,EAAmB,SACxCA,EAAkBsB,YAAYlE,GAC9B,SAKT,SAAS6E,EAAY5d,EAAU2c,GAC7B3c,EAAS4c,OAAO,gCACjBD,EAAS/B,KAAK,WAAY5a,EAAS4c,OAAO,aAAe,GC1K1D,IAAI,EAAyB,SAAS9C,EAAU9Z,EAAU2c,EAAUlsB,EAAUupB,GACjF,IAAI6D,EAAqB7d,EAAS8d,cAAc,sBAC5C9d,EAAS4c,OAAO,gCAAkCiB,IAAuBA,EAAmBE,sBAGhG/d,EAASge,aAAa,aACtB,EAAqClE,EAAU9Z,EAAU2c,EAAUlsB,EAAUupB,EAAQ8B,IACjF9b,EAAS6b,cAAc,YAAaC,O,gJCExCmC,EAA0B,uBAC1BC,EAAyB,sBACd,GACX,kBAAkBzK,GACd,IAAI0K,EACA1f,EAAa3Q,KAAK8uB,OAAO,cACzBwB,EAAkBtwB,KAAKuwB,oBAAoB5K,EAAQ3jB,OAAOsS,UAAW3D,GACrE6f,EAAa,OAAArD,EAAA,OAAO,EAAM,CAC1BmD,gBAAiBA,GAClB3K,GACC8K,EAAmBD,EAAWE,YAAYC,SAASP,GACnDQ,EAAuB5wB,KAAK6wB,0BAA0BL,EAAYC,GAClEK,EAAQ,eAAE,UAAUpE,SAAS1sB,KAAK+wB,uBAAuBpL,EAAQhS,OACjEqd,EAAoB,QAAUX,EAAKrwB,KAAKixB,iBAAc,IAAWZ,OAAK,EAASA,EAAGL,cAAc,WAChGkB,GAAsB,OAASF,QAAqB,IAAWA,OAAoB,EAASA,EAAkBG,0BAA0Bb,KAAqBA,EAKjK,OAJAE,EAAW/S,UAAYmT,EACvBJ,EAAWY,UAAYN,EACvB9wB,KAAKqxB,iBAAiBb,GACtBI,GAAsBH,GAAqB9K,EAAQxU,iBAAoB,SAAW+f,EAAkC,YAAb,YAA0BvL,EAAQ+K,aAClII,GAEXC,uBAAwB,OACxB,oBAAoBzc,EAAW3D,GAE3B,OADAA,EAAaA,GAAc3Q,KAAK8uB,OAAO,cAChCxa,GAAa,WAAaA,EAAYA,EAAY,eAAoB3D,IAEjF,0BAA0BgV,EAAS2L,GAC/B,IAAIV,EAAuB5wB,KAAKuxB,uBAAuB5L,EAAQ+K,aAC3DQ,EAAqB,SAAWvL,EAAQ2K,gBAAkB,QAAU,OAKxE,OAJKM,EAAqBjyB,SACtBiyB,EAAuB,eAAE,SAASlE,SAASyD,IAE/CnwB,KAAKwxB,QAAQ,OAAQ,eAAgBZ,GAC9BA,EAAqBa,IAAI,QAAS9L,EAAQxU,kBAAoBmgB,EAA2BJ,EAAqB,OAEzHK,uBAAwBG,GAASA,GAASA,EAAMnE,KAAK,IAAIlC,OAAO8E,IAChE,sBAAsBuB,GAClB,IAAIC,EAAsB3xB,KAAKuxB,uBAAuBG,GACtD,OAAOC,GAAuBA,EAAoBC,YAEtD,iBAAiBjM,GACb,IAAIkM,EAAalM,EAAQlI,UACrBqU,EAAanM,EAAQyL,UACzBS,GAAcC,GAAcD,EAAWE,OAAOD,IAElD,kBAAkBE,GACd,IAEIN,EAFAhmB,EAAU1L,KAAKiyB,aACfC,EAASlyB,KAAKmyB,oBAElB,GAAKD,GAAUxmB,EAAQ/M,SAAWuzB,EAAOvzB,OAGzC,IAAK,IAAI6B,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAAK,CACrCkxB,EAAQQ,EAAO3C,GAAG/uB,GAClBR,KAAKoyB,iBAAiBV,EAAOhmB,EAAQlL,GAAIwxB,GACzC,IAAIK,EAAaX,EAAMY,SAASve,KAAK,WACjCse,GAAcA,EAAWE,QACzBF,EAAWE,MAAMb,EAAMzvB,SAASD,OAAS0J,EAAQlL,MAI7D,iBAAiBkxB,EAAO1vB,EAAQgwB,GAC5B,IAAKhwB,EAAOwwB,QACR,OAAOxyB,KAAKyyB,kBAAkB,CAC1B9e,KAAMqe,EACNtB,YAAagB,EACb1vB,OAAQA,EACRmP,gBAAiBnR,KAAK8uB,OAAO,uB,mDC3DzC4D,GAAoC,aACpCC,GAAa,QAAMC,QAAQ,CAC3B,mBACA,KAAK3B,GACD,IAAI4B,EAAO7yB,KACX6yB,EAAKC,iBAAmB,EACxBD,EAAK5B,UAAYA,EACjB4B,EAAKE,SAAW,GAChBF,EAAKG,eAAiB,GACtB,eAAKhzB,KAAKizB,iBAAmB,IAAI,SAAUhxB,EAAO0R,GAC9C,IAAIuf,EAAQL,EAAKM,cAAcxf,IAAS,GACxCuf,EAAME,QAAS,EACfF,EAAMG,cAAe,EACrBR,EAAK7yB,MAAQ,sBAAUkzB,OAG/B,SACA,kBACA,kBACA,kBACA,cACIlzB,KAAK8yB,oBAET,YACQ9yB,KAAK8yB,iBAAmB,IACxB9yB,KAAK8yB,mBACA9yB,KAAK8yB,kBACN9yB,KAAKszB,mBAIjB,OAAO3f,GACH,IACIsd,UAAWA,GACXjxB,KACAuzB,EAActC,EAAUuC,aAC5B,OAAI,IAAMhvB,UAAU7F,QAAU40B,GACpB5f,KAAQ4f,IACVA,EAAY5f,GAAQsd,EAAUnC,OAAOnb,IAElC4f,EAAY5f,IAEhBsd,EAAUnC,OAAOvqB,MAAM0sB,EAAWzsB,YAE7C,cAAcmP,EAAM3V,GAChB,IACIizB,UAAWA,GACXjxB,KACAuzB,EAActC,EAAUuC,aAI5B,OAHID,IACAA,EAAY5f,GAAQ3V,GAEjBizB,EAAUwC,8BAA8B9f,EAAM3V,IAEzD,SAAS2V,GACL,IAAI4f,EAAcvzB,KAAKixB,UAAUuC,aACjC,OAAID,GACM5f,KAAQ4f,IACVA,EAAY5f,GAAQ,OAAoB5V,OAAO4V,IAE5C4f,EAAY5f,IAEhB,OAAoB5V,OAAO4V,IAEtC,KACI,OAAO3T,KAAKixB,UAAU3C,GAAG/pB,MAAMvE,KAAKixB,UAAWzsB,YAEnD,MACI,OAAOxE,KAAKixB,UAAUzC,IAAIjqB,MAAMvE,KAAKixB,UAAWzsB,YAEpD,cAAcwpB,GACNA,EAAKra,QAAQ3T,KAAK+yB,WAClB/yB,KAAKkwB,aAAalC,EAAKra,KAAM3T,KAAKgzB,eAAehF,EAAKra,OACtDqa,EAAKC,SAAU,IAGvB,UAAUyF,GACN,OAAO1zB,KAAK+yB,SAASW,IAEzB,QAAQ/f,EAAM3V,EAAO4uB,GACjB,IAAIlqB,EAASkqB,EAAQ+G,IAAI,GACrBC,EAAS,SAAWjgB,GAAQ,OAASA,EAAO,QAAU,GACtDjR,EAAOmxB,aACPnxB,EAAOmxB,aAAaD,EAASjgB,EAAM3V,GAEnC4uB,EAAQE,KAAK8G,EAASjgB,EAAM3V,IAGpC,mBACI,OAAOgC,KAAKixB,UAAU6C,iBAAiBvvB,MAAMvE,KAAKixB,UAAWzsB,YAEjE,cAAcmP,GACV,OAAO3T,KAAKixB,UAAU8C,aAAapgB,IAEvC,aAAa+f,EAAYM,GACrB,GAAI,eAAWN,GAAa,CACxB,IAAIxH,EAASlsB,KAAKixB,UAAUgD,cAAcP,EAAWQ,KAAKl0B,MAAOg0B,GACjE,OAAO,SAAS/E,GACZ/C,EAAO,CACHD,MAAOgD,KAInBjvB,KAAK+yB,SAASW,GAAc1zB,KAAKixB,UAAU/C,sBAAsBwF,EAAYM,GAC7Eh0B,KAAKgzB,eAAeU,GAAcM,GAGtC,cAAcN,EAAY/N,GACtB,IAAIuG,EAASlsB,KAAK+yB,SAASW,GAC3B,OAAOxH,GAAUA,EAAOvG,IAE5B,UACI,IAAIkN,EAAO7yB,KACX,eAAK6yB,EAAKI,iBAAmB,IAAI,WAC7BJ,EAAK7yB,MAAMm0B,YAGnB,gBAAgBC,GACZ,IAAIC,EAAgBr0B,KAAKixB,UAAUqD,KACnC,MAAO,MAAMjJ,OAAOgJ,EAAc7xB,MAAM,GAAGrB,eAAekqB,OAAO+I,EAAY,IAAI/I,OAAO+I,GAAa,KAEzG,0BACI,IAAIG,EAAgBv0B,KAAKixB,UAAUqD,OAAS5B,GAAoC,KAAO,YACvF,OAAO1yB,KAAKw0B,gBAAgBD,IAEhC,oBAAoB1F,GAChB,IAAI4F,EAAe5F,EAAS6F,QAAQ,IAAIrJ,OAAOrrB,KAAK20B,4BAA4BrC,SAChF,OAAOmC,EAAaG,GAAG50B,KAAKixB,UAAUpC,eAG1CgG,GAAalC,GACbmC,GAAiBD,GAAWjC,QAAQ,CACpC,QAAQjf,GACJ,OAAO3T,KAAKixB,UAAU8D,OAAOphB,IAEjC,WACI,OAAO3T,KAAKixB,UAAU8D,UAG1BC,GAAOrC,GAAWC,QAAQ,CAC1B,WACI,OAAO5yB,KAAKixB,UAAUgE,WAE1B,iBACIj1B,KAAKk1B,YACAl1B,KAAKm1B,YAAcn1B,KAAKo1B,gBACzBp1B,KAAKq1B,gBAAiB,EACtBr1B,KAAKixB,UAAUqE,gBAAiB,GAEhCt1B,KAAKq1B,iBACLr1B,KAAKq1B,gBAAiB,EACtBr1B,KAAKu1B,OAAOv1B,KAAKw1B,YAGzB,YAAYC,EAAeC,GACvB11B,KAAKq1B,gBAAiB,EACtBr1B,KAAKixB,UAAUqE,eAAiB,mBAAgBt1B,KAAKixB,UAAUqE,gBAAkBG,GACjFz1B,KAAKo1B,cAAgBp1B,KAAKo1B,eAAiBM,GAE/C,gBACA,gBACA,iBACI,OAAO11B,KAAKw1B,UAEhB,KAAKvE,GACDjxB,KAAKk1B,SAASjE,GACdjxB,KAAK21B,gBAAkB,wBACvB31B,KAAK41B,gBAAkB,yBAE3B,UACI,OAAO51B,KAAK61B,WAEhB,mBACI,IAAIhH,EAAW7uB,KAAKitB,UACpB,IAAK4B,EACD,OAAO,EAEX,IAAIiH,EAAYC,WAAWlH,EAAS4C,IAAI,eAAiB,EACrDuE,EAAeD,WAAWlH,EAAS4C,IAAI,kBAAoB,GAE3DwE,aAAcA,GACdpH,EAAS8E,IAAI,GACjB,OAAOsC,EAAeH,EAAYE,GAEtCE,UAAW,KAAM,EACjB,YAAYviB,GACR,OAAO3T,KAAKixB,UAAUkF,aAAaxiB,IAEvC,OAAOyiB,EAASzQ,GACZ,IAAIkJ,EAAW7uB,KAAK61B,UAChBK,EAAYl2B,KAAKk2B,YACrB,IAAKrH,GAAauH,KAGlBp2B,KAAKo1B,eAAgB,EAChBvG,IACDA,EAAW7uB,KAAK61B,UAAY,eAAE,SAASQ,SAASD,GAChDp2B,KAAKw1B,SAAWY,GAEpBvH,EAASyH,YAAY,aAAcJ,GAC/BA,GAAW,CACXl2B,KAAKixB,UAAUuC,aAAe,GAC9B,IAAIlZ,EAAWta,KAAKu2B,YAAY5Q,GAChC3lB,KAAKixB,UAAUuC,kBAAe,EAC1BlZ,EACAA,EAASkc,KAAK,KACVx2B,KAAK21B,gBAAgBc,KAAK9Q,KAG9B3lB,KAAK21B,gBAAgBc,KAAK9Q,KAItC,SACI3lB,KAAK02B,YAAa,EAClB12B,KAAK22B,cACL32B,KAAK41B,gBAAgBa,OACrBz2B,KAAK02B,YAAa,GAEtB,MAAMhI,GACF1uB,KAAKitB,UAAU0G,IAAI,GAAGhF,MAAM,CACxBD,cAAeA,OAIvBkI,GAA0B,IAE9B,SAASC,GAAiBC,GACtB,IAAIC,EAAkBvyB,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,GAAKA,UAAU,GAAK,GACnFwyB,EAAc,GAalB,OAZApyB,OAAOqyB,QAAQF,GAAiBG,QAAQC,IACpC,IAAKxjB,EAAMyjB,GAAYD,EACnBE,EAAcP,EAAMnjB,GACxB,GAAI0jB,EACA,GAAI,eAAWD,GACXJ,EAAYrjB,GAAQyjB,EAASC,OAC1B,CACH,IAAIC,EAAYD,EAChBL,EAAYrjB,GAAQ2jB,EAAU1E,QAAQwE,MAI3CJ,EAGX,SAASO,GAAsBC,EAAmB7jB,EAAM8jB,GACpD,IAAIC,EAAgBD,EAAWC,gBAC3BA,GACA,eAAKA,EAAe,CAACC,EAAGC,KACpB,IAAIH,EAAWG,GASX,MAAM,QAAOC,MAAM,QAASlkB,EAAMikB,GARlC,GAAKJ,EAAkBI,GAKnB,MAAM,QAAOC,MAAM,QAASD,GAJ5BJ,EAAkBI,GAAc,WAC5B,OAAOH,EAAWG,MAAepzB,cAWlD,SAASszB,GAAeN,EAAmBO,GAC9C,IACIC,QAASA,GACTD,GAEAE,aAAcA,GACdF,EAEJ,SAASG,EAAkBC,GACvB,IAAIC,EAAc,GAOlB,OANA,eAAKD,EAAa,CAACxkB,EAAM0kB,KACrB,IAAIZ,EAAa,IAAIY,EAAWb,GAChCC,EAAW9jB,KAAOA,EAClB4jB,GAAsBC,EAAmB7jB,EAAM8jB,GAC/CW,EAAYzkB,GAAQ8jB,IAEjBW,EAEPH,GACAD,EAAQM,KAAK,CAACC,EAASC,KACnB,IAAIC,EAAcR,EAAa11B,QAAQg2B,EAAQ5kB,MAC3C+kB,EAAcT,EAAa11B,QAAQi2B,EAAQ7kB,MAO/C,OANI8kB,EAAc,IACdA,EAAc7B,IAEd8B,EAAc,IACdA,EAAc9B,IAEX6B,EAAcC,IAG7B,IAAIC,EAAsB,GACtBC,EAAgB,GACpBZ,EAAQd,QAAQ2B,IACZ,IACIllB,KAAMmlB,EACNC,YAAaA,EAAc,GAC3BC,MAAOA,EAAQ,IACfH,EACJj0B,OAAOqyB,QAAQ8B,GAAa7B,QAAQ+B,IAChC,IACI5I,GADC1c,EAAMvV,GAAQ66B,EAEnB,GAAIN,EAAoBhlB,GACpB,MAAM,QAAOkkB,MAAM,QAASiB,EAAYnlB,GACrC,KAAM,QAAU0c,EAAK,OAASjyB,QAAQ,IAAWA,OAAO,EAASA,EAAK86B,kBAAe,IAAW7I,OAAK,EAASA,EAAG8I,KAAK/6B,EAAMy2B,KAC/H,MAAM,QAAOgD,MAAM,QAASiB,EAAYnlB,GAE5CglB,EAAoBhlB,GAAQvV,IAEhCwG,OAAOqyB,QAAQ+B,GAAO9B,QAAQkC,IAC1B,IACI/I,GADC1c,EAAMvV,GAAQg7B,EAEnB,GAAIR,EAAcjlB,GACd,MAAM,QAAOkkB,MAAM,QAASiB,EAAYnlB,GACrC,KAAM,QAAU0c,EAAK,OAASjyB,QAAQ,IAAWA,OAAO,EAASA,EAAK86B,kBAAe,IAAW7I,OAAK,EAASA,EAAG8I,KAAK/6B,EAAM42B,KAC/H,MAAM,QAAO6C,MAAM,QAASiB,EAAYnlB,GAE5CilB,EAAcjlB,GAAQvV,MAG9B,IAAI24B,EAAkBiB,EAAQ1zB,OAAO+0B,IACjC,IACIC,UAAWA,GACXD,EACJ,QAASC,IAETC,EAAkBxC,EAAgByC,OAAO,CAAC1C,EAAO2C,KACjD,IACIH,UAAWA,GACXG,EACJ,OAAO,eAAS,eAAS,GAAI3C,GAAQD,GAAiBC,EAAO,OAASwC,QAAa,IAAWA,OAAY,EAASA,EAAUP,eAC9HJ,GACCe,EAAY3C,EAAgByC,OAAO,CAAC1C,EAAO6C,KAC3C,IACIL,UAAWA,GACXK,EACJ,OAAO,eAAS,eAAS,GAAI7C,GAAQD,GAAiBC,EAAO,OAASwC,QAAa,IAAWA,OAAY,EAASA,EAAUN,SAC9HJ,GACHpB,EAAkBzD,aAAemE,EAAkBqB,GACnD/B,EAAkBzC,OAASmD,EAAkBwB,GAEjD,IAAIE,GAAwB,SAAS/G,EAAM+E,EAAY5J,GACnDA,EAAOA,GAAQ,GACX6E,EAAKkB,cACL,eAAKlB,EAAKkB,cAAc,WACpB/zB,KAAK43B,IAAe53B,KAAK43B,GAAYrzB,MAAMvE,KAAMguB,MAGrD6E,EAAKkC,QACL,eAAKlC,EAAKkC,QAAQ,WACd/0B,KAAK43B,IAAe53B,KAAK43B,GAAYrzB,MAAMvE,KAAMguB,OAI9C,IACXgK,QAAS,GACThD,KAAMA,GACNF,eAAgBA,GAChBD,WAAYA,GACZ,eAAelhB,EAAMkmB,GAIjB,IAHA,IACI7B,QAASA,GACTh4B,KACKQ,EAAI,EAAGA,EAAIw3B,EAAQr5B,OAAQ6B,IAChC,GAAIw3B,EAAQx3B,GAAGmT,OAASA,EACpB,OAGRkmB,EAAOlmB,KAAOA,EACdqkB,EAAQv4B,KAAKo6B,IAEjB,qBAAqBC,GACjB95B,KAAKi4B,aAAe6B,GAExB,iBAAiBnmB,GACb3T,KAAKg4B,QAAU,eAAKh4B,KAAKg4B,QAAS6B,GAAUA,EAAOlmB,OAASA,IAEhEmkB,eAAgBA,GAChB8B,sBAAuBA,I,aClVvBG,GAAyB,mBACzBC,GAA6B,uBAC7BC,GAAoB,cACpBC,GAAgB,UAChBC,GAAc,QACdC,GAAoB,cACpBC,GAAsB,gBACtBC,GAAY,SACZC,GAAkB,eAClBC,GAAmB,gBACnBC,GAAmB,uBACnBC,GAAmB,aACnBC,GAAkB,eAClBC,GAA+B,yBAC/BC,GAAuB,WACvBC,GAAoB,oBACpBC,GAAgC,wBAChCC,GAAwB,CACxB,OAAOrV,GACHA,EAAQlI,UAAUsU,OAAOpM,EAAQsV,WAGrCC,GAAuB,SAASrI,EAAMsI,GACtC,IAAIC,EACAC,EACAC,EAEJ,SAASC,EAAkB3iB,GACvB,OAAO4iB,WAAW,KACdJ,EAAcC,EAAqB,MACpCziB,GAEP,OAAa0V,GAAG6M,EAAQ,sBAAuB,UAAWlM,IACtDwM,aAAaH,GACT,eAAiBrM,EAAE7wB,MACnBg9B,EAAcnM,EAAEvsB,OAChB24B,EAAqBpM,EAAEyM,cACvBJ,EAAYC,EAAkB,MAE9BD,EAAYC,MAGpB,OAAajN,GAAG6M,EAAQ,CAAC,OAAgB,OAAeQ,EAAA,KAAcC,MAAM78B,KAAK,KAAM,UAAW8zB,EAAK3C,aAAajB,IAChH,IACIhD,MAAOA,GACPgD,EACAmM,IACAnP,EAAMvpB,OAAS04B,EACfnP,EAAMyP,cAAgBL,GAErB,eAAEpP,EAAMvpB,QAAQgyB,QAAQ,KAAK/1B,SAC9BswB,EAAE4M,SAAWhJ,EAAKiJ,YAAY7P,EAAMyP,eAChCzM,EAAE4M,UAAY,IACd5M,EAAE8M,WAAa,eAAiB,eAAE9P,EAAMyP,gBACxCzM,EAAEvjB,QAAUmnB,EAAKZ,aACbhG,EAAM7tB,OAASu9B,EAAA,KAAcC,KAC7B/I,EAAKmJ,gBAAgB/M,GACdhD,EAAM7tB,OAAS,OACtBy0B,EAAKoJ,UAAUhN,GAEf4D,EAAKqJ,aAAajN,SAMlCkN,GAAgB,SAASrqB,GACzB,MAAI,SAAWA,EACJ,GAEJ,eAAUA,GAAS,GAAGuZ,OAAOvZ,EAAO,MAAQA,GAEnDsqB,GAAe,SAASC,EAAMr6B,EAAQ8P,GACtCuqB,EAAKC,MAAMxqB,MAAQuqB,EAAKC,MAAMje,SAAW,SAAWrc,EAAO8P,MAAQ,GAAKA,GAExEyqB,GAAiB,SAAStP,EAASuP,GACnC,GAAKvP,GAAYuP,EAAjB,CAGA,IAEIh8B,EAFAi8B,EAAgBxP,EAAQyP,WACxBC,EAAgBH,EAAWE,WAE/B,IAAKl8B,EAAI,EAAGA,EAAIi8B,EAAc99B,OAAQ6B,IAAK,CACvC,IAAImT,EAAO8oB,EAAcj8B,GAAGo8B,SACvBJ,EAAWK,aAAalpB,IACzBsZ,EAAQ6P,gBAAgBnpB,GAGhC,IAAKnT,EAAI,EAAGA,EAAIm8B,EAAch+B,OAAQ6B,IAClCysB,EAAQ4G,aAAa8I,EAAcn8B,GAAGo8B,SAAUD,EAAcn8B,GAAGu8B,aAGrEC,GAAgB,SAASC,GACzBA,EAAiBC,WAEVC,GAAiBrrB,GACpB,kBAAoBA,EACb,GAAGuZ,OAAOvZ,EAAMsrB,QAAQ,GAAI,MAEnC,mBAAqBtrB,EACd+oB,GAEJ/oB,EAEPurB,GAA2B,GAAQrI,KAAKpC,QAAQ,GAC7C,MAAM,WAAoByK,GAC7B,aAAaC,IACb,2BACI,IAAIC,EAAmBv9B,KAAK8uB,OAAO,aAC/B0O,EAAqBx9B,KAAK8uB,OAAO,uBACjCnJ,EAAU,OAAAwH,EAAA,MAAO,GAAIoQ,EAAkB,CACvCvY,UAAW,OACXyY,eAAe,EACfC,aAAa,IAYjB,YAVI,IAAWF,IACXA,GAAqB,GAErB,SAAWA,UACJ7X,EAAQwD,iBACRxD,EAAQgY,wBAEfhY,EAAQwD,YAAcqU,EACtB7X,EAAQgY,uBAAyBH,GAE9B7X,EAEX,YAAY+L,EAAOlB,GACXA,EAAWoN,SACX59B,KAAK69B,cAAcnM,EAAOlB,GAGlC,YAAY7K,GACR,IACI3jB,OAAQA,GACR2jB,EACArR,EAAYtS,EAAOsS,WAAa,eAAoBtU,KAAK8uB,OAAO,eAChEuN,EAAO,aAAWyB,cAAc,MACpCzB,EAAKC,MAAMyB,UAAYzpB,EACvB,IAAIod,EAAQ,eAAE2K,GAgCd,MA/BI,SAAW1W,EAAQiY,SAAW57B,EAAOg8B,WAAah8B,EAAO5D,MACrD4B,KAAKixB,UAAUnC,OAAO,sBACtB9uB,KAAKwxB,QAAQ,cAAexvB,EAAOg8B,SAAUtM,GAGjD1vB,EAAOyR,UACPie,EAAMhF,SAAS1qB,EAAOyR,UAEtBhV,MAAMC,QAAQsD,EAAOmK,cACrBnK,EAAOmK,YAAY+qB,QAAQC,IACvB,IACIxjB,KAAMA,EACN3V,MAAOA,GACPm5B,EACJzF,EAAM5E,KAAKnZ,EAAM3V,KAGrB,WAAagE,EAAOwwB,UACpBd,EAAMhF,SAAS1qB,EAAOyR,UACtBie,EAAMhF,SAAS1sB,KAAKw0B,gBAAgByF,MAEpCj4B,EAAOi8B,QAAU,EACjBvM,EAAM5E,KAAK,UAAW9qB,EAAOi8B,UACrBj8B,EAAOyU,QAAU,SAAWzU,EAAOk8B,cAAgBl+B,KAAK8uB,OAAO,sBACnE9sB,EAAO8P,OAAS9P,EAAO0U,YACvB2lB,EAAKC,MAAM5lB,SAAWylB,GAAcn6B,EAAO0U,UAAY1U,EAAO8P,QAE9D9P,EAAO8P,OACPsqB,GAAaC,EAAMr6B,EAAQm6B,GAAcn6B,EAAO8P,SAGjD4f,EAEX,WAAWyM,EAAWC,GAClBA,EAAUA,GAAW,KACrB,IAAIvP,EAAW,eAAE,IAAIxD,OAAO+S,EAAS,MAAM1R,SAAS4N,IAEpD,OADAt6B,KAAKwxB,QAAQ,OAAQ,MAAO3C,GACrBA,EAEX,UAAUwP,GACN,OAAOA,GAAOA,EAAIC,UAAY,IAAM,EAExC,aAAa5yB,EAAS6yB,GAClB,IAAIpD,EAAS,eAAE,WAAWzO,SAAS1sB,KAAKw0B,gBAAgB2F,KAAczN,SAAS1sB,KAAKw0B,gBAAgB4F,KAWpG,GAVI1uB,IAAY6yB,GACZpD,EAAOpJ,OAAO/xB,KAAKw+B,gBAAgB9yB,IAC/B+yB,EAAA,KAAQC,QACRvD,EAAOpJ,OAAO,eAAE,WAAWA,OAAO,SAEtC/xB,KAAK2+B,aAAaxD,IAElBn7B,KAAKwxB,QAAQ,UAAU,EAAM2J,GAEjCn7B,KAAKwxB,QAAQ,OAAQ,eAAgB,eAAE,WAAW6E,SAAS8E,IACvDoD,EACA,OAAOpD,EAEPsD,EAAA,KAAQG,SACR,OAAatQ,GAAG6M,EAAQ,YAAa,KAAMlM,IACnCA,EAAEQ,SACFR,EAAE4P,mBAIV7+B,KAAK8uB,OAAO,oBACZ,OAAaR,GAAG6M,EAAQ,YAAa,eAAgBn7B,KAAKkwB,aAAalC,IACnE,IAAIiB,EAAIjB,EAAK/B,MACT4C,EAAW,eAAEI,EAAEvsB,QACfgvB,EAAQ,eAAEzC,EAAEyM,eACZoD,EAAOpN,EAAMY,SACbyM,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzC5M,EAAayM,EAAK/qB,KAAK,WACvBmrB,EAAcxN,EAAMzvB,QACpBk9B,EAAc9M,GAAcA,EAAWE,OAASF,EAAWE,MAAM2M,GACjEl9B,EAASm9B,EAAcA,EAAYn9B,OAAS+8B,EAAeG,GAC3DE,EAAcN,EAAKnO,SAAS,iBAC5B0O,EAAYP,EAAKnO,SAAS,eAC1B2O,EAAoBR,EAAKnO,SAAS8J,IAClC8E,EAAaT,EAAKnO,SAAS4J,IAC3BiF,EAAcV,EAAKnO,SAAS3wB,KAAKw0B,gBAAgBkG,KACjD+E,EAAwBJ,KAAer9B,GAAUA,EAAOyT,cACxDiqB,EAAgBL,GAAaF,IAAgB9M,EAAWsN,WAAaR,EAAYQ,YAAc,OAAS39B,QAAU,IAAWA,OAAS,EAASA,EAAO6U,mBACtJ+oB,EAA0BR,KAAiBp9B,GAAUA,EAAOuU,oBAC5DspB,EAA0BN,KAAgBv9B,GAAUA,EAAOsU,YAActU,EAAOqU,mBAChFypB,GAAkBR,IAAsBE,IAAgBE,IAAkBD,IAA0BG,IAA4BC,EACpI,GAAIC,EAAgB,CACZjR,EAAS9a,KAAK+mB,MACdjM,EAASkR,WAAW,SACpBlR,EAAS9a,KAAK+mB,IAAmB,IAErC,IAAIkF,EAAanR,EAAS,GAAGoR,YAAcpR,EAAS,GAAGqR,YACnDF,EAAa,IAAM,eAAUnR,EAAS/B,KAAK,YAC3C+B,EAAS/B,KAAK,QAAS+B,EAAS/a,QAChC+a,EAAS9a,KAAK+mB,IAAmB,QAKjD,IAAIqF,EAAalU,IACb,IAAIyF,EAAQ,eAAEzF,EAAMyP,eAChB0E,EAAoB,eAAEnU,EAAMvpB,QAAQgyB,QAAQ,IAAIrJ,OAAO0P,KACvD+D,EAAOpN,EAAMY,SACbD,EAAayM,EAAK/qB,KAAK,WACvB4R,EAAU0M,GAAcA,EAAWE,OAASF,EAAWE,MAAMb,EAAMzvB,SACvE,GAAKyvB,EAAMgD,QAAQ,SAASE,GAAG3I,EAAMoU,gBAArC,CAGA,IAAIC,EAAgB,OAAAnT,EAAA,MAAO,GAAIxH,EAAS,CACpC4a,YAAa,eAAiB7O,GAC9BzF,MAAOA,EACPuU,UAAWvU,EAAM7tB,OAGrB,GADAkiC,EAAczE,SAAW77B,KAAK87B,YAAYgD,GACtCsB,EAAkBzhC,OAAQ,CAC1B,IAAI8hC,EAAkBL,EAAkBrsB,KAAK,gBACzC0sB,EAAgBz+B,SAChBs+B,EAAct+B,OAASy+B,EAAgBz+B,OACvCs+B,EAAcpB,YAAcl/B,KAAKg/B,mBAAmB0B,gBAAgBJ,EAAct+B,OAAOC,QAGjG,OAAOq+B,IAmBX,OAjBA,OAAahS,GAAG6M,EAAQ,YAAa,eAAgBlM,IACjD,IAAItJ,EAAUwa,EAAWlR,GACzBtJ,GAAW3lB,KAAK+tB,cAAc,qBAAsBpI,KAExD,OAAa2I,GAAG6M,EAAQ,WAAY,eAAgBlM,IAChD,IAAItJ,EAAUwa,EAAWlR,GACzBtJ,GAAW3lB,KAAK+tB,cAAc,qBAAsBpI,KAExD,OAAa2I,GAAG6M,EAAQ,OAAgB,eAAgBlM,IACpD,IAAItJ,EAAUwa,EAAWlR,GACzBtJ,GAAW3lB,KAAK+tB,cAAc,cAAepI,KAEjD,OAAa2I,GAAG6M,EAAQ,OAAe,eAAgBlM,IACnD,IAAItJ,EAAUwa,EAAWlR,GACzBtJ,GAAW3lB,KAAK+tB,cAAc,iBAAkBpI,KAEpDuV,GAAqBl7B,KAAMm7B,GACpBA,EAEX,mBACA,aACA,gBACA,gBAAgBzvB,GAEZ,IADA,IAAIi1B,EAAkB,eAAE,cACfngC,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAEhC,IADA,IAAIy9B,EAAUvyB,EAAQlL,GAAGy9B,SAAW,EAC3B2C,EAAI,EAAGA,EAAI3C,EAAS2C,IACzBD,EAAgB5O,OAAO/xB,KAAK6gC,WAAWn1B,EAAQlL,KAGvD,OAAOmgC,EAEX,WAAW3+B,GACP,IAAI8P,EAAQ9P,EAAOk8B,cAAgBl8B,EAAO8P,MACtC,mBAAqBA,IACrBA,EAAQ+oB,IAEZ,IAAIiG,EAAM,eAAE,SAEZ,OADA,eAASA,EAAKhvB,GACPgvB,EAEX,uBAAuBvlB,GACnB,IAAIwlB,EAAmB/gC,KAAKghC,kBACxBC,EAAgBF,EAAiBz8B,OAAOuP,IAAaA,EAASqtB,OAC9DC,EAAiBJ,EAAiBz8B,OAAOuP,GAAYA,EAASqtB,OAClElhC,KAAKghC,kBAAoB,GACzBhhC,KAAKohC,4BAA4BH,GAAe,EAAO1lB,GACvDvb,KAAKqhC,iCAAiCF,GAE1C,iCAAiCG,GAC7B,GAAIA,EAAU3iC,OAAQ,CAClB,IAAI4iC,EAAkB,iBAAY/F,WAAW,KACzCx7B,KAAKwhC,kBAAkBC,OAAOF,GAC9BvhC,KAAKohC,4BAA4BE,GAAW,KAEhDthC,KAAKwhC,kBAAkBE,IAAIH,IAGnC,4BAA4BD,EAAWK,EAASpmB,GAC5C,IAAI3c,EAAO,IAAIwE,KACf,MAAOk+B,EAAU3iC,OAAQ,CACrB,IAAIijC,EAAqBN,EAAUO,SAE/Blc,QAASA,GACTic,EACAE,EAAM,aAAWnU,YAAY,eAAEhI,EAAQlI,WAAWkW,IAAI,IACtDoO,EAAyB/hC,KAAK+hC,yBAOlC,KANKJ,GAAW,eAAEhc,EAAQlI,WAAWiX,QAAQoN,GAAKnjC,QAAUojC,KACpDxmB,IACAoK,EAAQpK,OAASA,GAErBqmB,EAAmB/tB,SAAS0hB,OAAO5P,IAEnCgc,GAAW,IAAIv+B,KAAOxE,EAAO,GAAI,CACjCoB,KAAKqhC,iCAAiCC,GACtC,QAGHA,EAAU3iC,QAAUqB,KAAKghC,kBAAkBriC,QAC5CqB,KAAKgiC,yBAGb,iBAAiBnuB,EAAU8R,GACvB,IAAIsc,EACJ,GAAIpuB,GAAYA,EAAS0hB,SAAW,eAAW1hB,GAC3CouB,EAAoB,CAChBC,+BAAgCruB,EAASquB,+BACzC,OAAOvc,GACH9R,EAAS0hB,OAAO5P,EAAQlI,UAAWkI,EAAQwc,MAAOxc,EAAQpK,QAC1DoK,EAAQrL,UAAYqL,EAAQrL,SAAS4iB,iBAG1C,GAAI,eAAWrpB,GAClBouB,EAAoB,CAChB,OAAOtc,GACH,IAAIyc,EAAmBvuB,EAAS,eAAiB8R,EAAQlI,WAAYkI,EAAQwc,MAAOxc,EAAQpK,QACxF6mB,IAAqBA,EAAiBC,UAAY,eAAWD,KAC7Dzc,EAAQlI,UAAUsU,OAAOqQ,GAE7Bzc,EAAQrL,UAAYqL,EAAQrL,SAAS4iB,gBAG1C,CACH,IAAIoF,EAAa,eAASzuB,GAAYA,EAAW,eAAEA,GAAUiZ,KAAK,MAC7DwV,GAGItiC,KAAKuiC,gBAAgBD,KACtBtiC,KAAKuiC,gBAAgBD,GAActiC,KAAKwiC,YAAY3uB,IAExDouB,EAAoBjiC,KAAKuiC,gBAAgBD,IALzCL,EAAoBjiC,KAAKwiC,YAAY3uB,GAQ7C,OAAOouB,EAEX,eAAexkB,EAAW5J,EAAU8R,EAASuc,EAAgC3mB,GACzE,IAAI8U,EACA4R,EAAoBjiC,KAAKyiC,iBAAiB5uB,EAAU8R,IAEpD3jB,OAAQA,GACR2jB,EACA0Z,EAAY,SAAW1Z,EAAQiY,QAC/BX,EAAmB,IAAI,OACvByF,EAAkB,CAClBjlB,UAAWA,EACX0kB,MAAOxc,EACPrL,SAAU2iB,EACV0F,WAAY,KACJ3iC,KAAK4iC,aACL3F,EAAiB4F,SAEjB5F,EAAiBC,YAI7B,GAAI+E,EAAmB,CACnBtc,EAAQsL,UAAYjxB,KAAKixB,UACzB,IAAI6R,EAAc9gC,IAAWA,EAAOsO,aAAe+uB,GAAar/B,KAAK8uB,OAAO,kBAAmB,IAAU9sB,EAAOsO,cAAgBtO,EAAOwwB,SAAWxwB,EAAO6U,mBAAqBwoB,GAAa,WAAa1Z,EAAQiY,UAC5MsD,EAAQ,QAAU7Q,EAAK1K,EAAQrV,mBAAgB,IAAW+f,EAAKA,EAAKyS,GACnEb,EAAkBC,iCAAkCA,GAAoChB,EAGzFlhC,KAAKghC,kBAAkBvhC,KAAK,CACxBoU,SAAUouB,EACVtc,QAAS+c,EACTxB,MAAOA,IALXe,EAAkB1M,OAAOmN,GAQ7B1iC,KAAK+iC,mBAAmBrB,IAAIzE,GAC5B,OAAa3O,GAAG7Q,EAAWulB,EAAA,KAAahG,GAAc9I,KAAK,KAAM+I,SAEjEA,EAAiB4F,SAErB,OAAO5F,EAAiBgG,UAAUC,OAAO,KACrCljC,KAAK+iC,mBAAmBtB,OAAOxE,KAGvC,WAAWkG,GACP,OAAO,eAAEA,GAAcvR,SAAS,SAASwR,IAAI,cAAcA,IAAI,cAEnE,aAAa9F,GACT,IAAIjN,EACAgT,IAAmBrjC,KAAK8uB,SAASpe,YACrC,OAAO2yB,MAAqB,QAAUhT,EAAKrwB,KAAKsjC,WAAWhG,UAAmB,IAAWjN,OAAK,EAASA,EAAG/rB,OAAO,IAAI+mB,OAAOiP,KAAY37B,QAE5I,eAAew8B,EAAQ2D,EAAMyE,GACzB,IAAIjG,EAAgBiG,EAAepI,GAAUn7B,KAAKwjC,cAAgBxjC,KAAKwjC,eAAiBrI,EACpFsI,EAAczjC,KAAK0jC,aAAapG,GACpC,GAAImG,EAAa,CACb,IAAIE,EAAS,eAAE,WAAWjX,SAASoS,EAAKhS,KAAK,UAE7C,OADA9sB,KAAKwxB,QAAQ,OAAQ,eAAgBmS,GAC9BA,EAAO5R,OAAO+M,GAEzB,OAAOA,EAEX,WAAW3D,EAAQ2D,EAAM8E,GACrBA,EAAiBA,GAAkB5I,GACnC4I,EAAerO,OAAO,CAClB0F,QAAS6D,EACTrhB,UAAW0d,IAGnB,cACI,IAAI0I,EAAa7jC,KAAK8jC,YAClBD,GAAc,IACd7jC,KAAK8jC,YAAc,EACnB9jC,KAAK+jC,SAAS,CACV3gB,KAAMygB,KAIlB,YAAY5U,GACR,IAAI+U,EAAQhkC,KAAKitB,UAAUqF,SACtB0R,IAASA,EAAM1R,SAAS3zB,QACzBqB,KAAKgiC,uBAAuB/S,GAGpC,aAAatJ,GACTA,EAAUA,GAAW,GACrBA,EAAQja,QAAU1L,KAAKg/B,mBAAmBC,oBAC1C,IAAIgF,EAAate,EAAQpK,QAAUoK,EAAQpK,OAAO0oB,WAC9C9I,EAASn7B,KAAKkkC,aAAave,EAAQja,QAAS,WAAau4B,GAAc,YAAcA,GAAc,WAAaA,GAEpH,OADAjkC,KAAKmkC,YAAYhJ,EAAQxV,GAClBwV,EAEX,YAAYA,EAAQxV,GAIhB,IAHA,IAAIye,EAAOpkC,KAAKqkC,SAAS1e,EAAQpK,QAC7B+oB,EAAgB3e,EAAQpK,QAAUoK,EAAQpK,OAAO+oB,eAAiB,GAClEC,EAAc5e,EAAQpK,QAAUoK,EAAQpK,OAAOgpB,aAAe,GACzD/jC,EAAI,EAAGA,EAAI4jC,EAAKzlC,OAAQ6B,IAC7BR,KAAKwkC,WAAWrJ,EAAQ,OAAAhO,EAAA,MAAO,CAC3BkR,IAAK+F,EAAK5jC,GACV8jC,cAAeA,EAAc9jC,GAC7ByjC,WAAYM,EAAY/jC,IACzBmlB,IAGX,WAAWwV,EAAQxV,GACVA,EAAQ2e,gBACT3e,EAAQ0Y,IAAI9L,MAAQ,IAExB,IAAIuM,EAAO9+B,KAAKykC,WAAW9e,EAAQ0Y,KAC/BqG,EAAc1kC,KAAK2kC,eAAexJ,EAAQ2D,GAC1C,WAAanZ,EAAQse,YACrBjkC,KAAK4kC,aAAa9F,EAAMnZ,GAE5B3lB,KAAK6kC,WAAW1J,EAAQuJ,GACxB,IAAIrS,EAAa,OAAAlF,EAAA,MAAO,CACpBzhB,QAASia,EAAQja,SAClBia,EAAQ0Y,KACXr+B,KAAK8kC,gBAAgBzS,EAAY1M,EAAQ0Y,KACzCr+B,KAAK+kC,aAAaL,EAAarS,EAAY1M,EAAQ0Y,KAEvD,gBAAgBa,EAAaoF,GACzB,OAAQA,GAAiBA,EAAc/hC,QAAQ28B,IAAgB,EAEnE,aAAaJ,EAAMnZ,GAQf,IAPA,IAAIuZ,EAAc,GAEdb,IAAKA,GACL1Y,GAEAja,QAASA,GACTia,EACKnlB,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAC5BR,KAAKglC,gBAAgBxkC,EAAGmlB,EAAQ2e,gBAChCtkC,KAAKilC,YAAYnG,EAAM,OAAA3R,EAAA,MAAO,CAC1BnrB,OAAQ0J,EAAQlL,GAChB0+B,YAAaA,EACblhC,MAAOqgC,EAAIz6B,QAAUy6B,EAAIz6B,OAAOs7B,GAChCgG,SAAU7G,EAAI8G,WAAa9G,EAAI8G,UAAUjG,IAC1CvZ,IAEHja,EAAQlL,GAAGy9B,QAAU,EACrBiB,GAAexzB,EAAQlL,GAAGy9B,QAE1BiB,IAIZ,aAAakG,EAAaC,EAAgBf,GACtC,IAAIpS,EAASkT,EAAYxT,WACrB0T,EAAYD,EAAezT,WAC3B1kB,EAAmBlN,KAAK8uB,OAAO,oBAC/ByW,EAAmBvlC,KAAKw0B,gBAAgBoG,IAC5C0J,EAAcpN,QAAQ,CAACgI,EAAaj9B,KAChC,IAAIyvB,EAAQQ,EAAO3C,GAAG2P,GAClBsG,EAAWF,EAAU/V,GAAGttB,GAC5ByvB,EAAM+T,YAAYD,GACdt4B,IAAqBs4B,EAAS7U,SAAS,sBACvC6U,EAAS9Y,SAAS6Y,KAG1BhJ,GAAe6I,EAAYzR,IAAI,GAAI0R,EAAe1R,IAAI,IAE1D,uBAAuBjC,EAAOyN,GAC1B,GAAI,cAAgBA,EAAYvB,QAAS,CACrC59B,KAAKwxB,QAAQ,OAAQ,WAAYE,GACjC,IAAIgU,EAAoB1lC,KAAKg/B,mBAAmB2G,uBAC5CC,EAAezG,EAAYD,YAAcwG,EAAoB,EACjE1lC,KAAKwxB,QAAQ,WAAYoU,EAAclU,IAG/C,YAAYoN,EAAMnZ,GACd,IAAIwZ,EAAcn/B,KAAK6lC,gBAAgBlgB,GACvC,GAAIA,EAAQ2e,eACR,GAAI3e,EAAQ0Y,IAAI9L,MAAO,CACnB,IAAIuT,EAAYngB,EAAQ0Y,IAAI9L,MAAMwT,UAAU1J,GAAQA,EAAK6C,cAAgBC,EAAYD,aACrFvZ,EAAQ0Y,IAAI9L,MAAMuT,GAAa3G,QAGnCxZ,EAAQ0Y,IAAI9L,MAAM9yB,KAAK0/B,GAE3B,IAAIzN,EAAQ1xB,KAAKgmC,YAAY7G,GAI7B,OAHAn/B,KAAKimC,uBAAuBvU,EAAOyN,GACnCn/B,KAAKkmC,mBAAmBxU,EAAOyN,EAAaxZ,GAC5CmZ,EAAKnL,IAAI,GAAGwS,YAAYzU,EAAMiC,IAAI,IAC3BjC,EAEX,mBAAmBA,EAAO/L,EAASygB,GAC/B,IAAIvyB,EAAW7T,KAAKqmC,iBAAiB1gB,GACrC,gBAAM9R,GAAY7T,KAAKsmC,eAAe5U,EAAO7d,EAAU8R,OAAS,EAAQygB,EAAc7qB,SAASib,KAAK,KAChGx2B,KAAKumC,YAAY7U,EAAO/L,KAGhC,iBAAiBA,IACjB,SAASpK,GACL,MAAO,GAEX,gBAAgBoK,GACZ,IAAIwZ,EAAc,CACdn9B,OAAQ2jB,EAAQ3jB,OAChBk9B,YAAavZ,EAAQuZ,YACrBtB,QAASjY,EAAQ0Y,IAAIT,QACrB4I,SAAUxmC,KAAKymC,UAAU9gB,EAAQ0Y,MAGrC,OADAr+B,KAAK8kC,gBAAgB3F,GACdA,EAEX,gBAAgBxZ,EAAS+gB,GACrB,GAAK1mC,KAAK8uB,OAAO,sBAAjB,CAGA,IAAI6X,EAAW,GAyCf,OAxCAD,EAASA,GAAU/gB,EACnB+gB,EAAOE,MAAQF,EAAOE,OAAS,SAASC,EAAQC,EAAiBC,GAC7D,IAAI7B,EAAW2B,EAAOH,EAAO3yB,MACzBizB,EAAU,SAAS3I,GACfA,GAAO0I,GACPA,EAAc1I,GAElB,IAAI4I,EAAWJ,EAAOH,EAAO3yB,MACzBmzB,KAAKC,UAAUjC,KAAcgC,KAAKC,UAAUF,KACxC5I,GACAyI,EAAgBG,GAEpB/B,EAAW+B,IAInB,OADAN,EAASlnC,KAAKunC,GACP,WACH,IAAI/kC,EAAQ0kC,EAASpkC,QAAQykC,GACzB/kC,GAAS,GACT0kC,EAASS,OAAOnlC,EAAO,KAInCykC,EAAOW,OAASX,EAAOW,QAAU,SAAShJ,EAAKiJ,GACvCjJ,IACAr+B,KAAK+T,KAAO4R,EAAQ5R,KAAOsqB,EAAItqB,KAC/B/T,KAAK67B,SAAWlW,EAAQkW,SAAWwC,EAAIxC,SACvC77B,KAAKs+B,UAAY3Y,EAAQ2Y,UAAYD,EAAIC,UACzCt+B,KAAKunC,WAAa5hB,EAAQ4hB,WAAalJ,EAAIkJ,WACvC5hB,EAAQ0Y,MAAQiJ,IAChB3hB,EAAQ0Y,IAAMA,IAGtBsI,EAASzP,QAAQ8P,IACbA,EAAQ3I,MAGZqI,IAAW/gB,IACXA,EAAQihB,MAAQF,EAAOE,MAAM1S,KAAKwS,IAE/B/gB,GAEX,cAAc0W,EAAM1W,GAChBA,EAAQ4a,YAAc,eAAiB,eAAElE,IACzCr8B,KAAK+tB,cAAc,iBAAkBpI,GAEzC,aAAamZ,EAAMnZ,EAAS0Y,GACxB,eAAYS,EAAKnL,IAAI,GAAI,UAAWhO,GACpCA,EAAQoW,WAAa,eAAiB+C,GACtC9+B,KAAK+tB,cAAc,gBAAiBpI,GAExC,qBAAqBsJ,GACjB,IACIuY,YAAaA,GACbvY,EACJ,GAAI,QAAcwY,aAAaD,EAAa,CAAC,QAAS,iBAAtD,CACI,IAAIzI,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzCyI,EAAS3I,EAAelgC,IAAImD,GAAUA,EAAOk8B,cAAgBl8B,EAAO8P,OACxE9R,KAAK2nC,gBAAgB,CACjBD,OAAQA,EACRF,YAAaA,SAIhBxnC,KAAKo1B,eACNp1B,KAAKu1B,SAGb,aAAa7D,GACT,IAAIoU,EAAYpU,EAAM/yB,OAAS+yB,EAAM,GAAGoU,WAAa,EACrD,OAAOA,EAEX,mBACI,OAAO9lC,KAAKwjC,eAAiB,iBAEjC,gBAAgBoE,GACZ,OAAO5nC,KAAKwjC,cAEhB,gBAAgBL,EAAcyE,GAC1B5nC,KAAKwjC,cAAgBL,EAEzB,cAAcnV,GAEV,OADA6Z,MAAMC,cAAc9Z,GACZA,EAAKra,MACT,IAAK,kBACL,IAAK,iBACL,IAAK,gBACL,IAAK,qBACL,IAAK,qBACD3T,KAAK+nC,aAAY,GAAM,GACvB/Z,EAAKC,SAAU,GAG3B,OACIjuB,KAAK8jC,aAAe,EACpB9jC,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,WAC7ChwB,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAKghC,kBAAoB,GACzBhhC,KAAK+iC,mBAAqB,IAAIkF,IAC9BjoC,KAAKuiC,gBAAkB,GACvBviC,KAAKwhC,kBAAoB,IAAIyG,IAC7BjoC,KAAKkwB,aAAa,eAClBlwB,KAAKkwB,aAAa,cAClBlwB,KAAKkwB,aAAa,kBAClBlwB,KAAKkwB,aAAa,iBAClBlwB,KAAKkwB,aAAa,qBAAsB,CACpCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,iBAAkB,CAChCgY,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdnoC,KAAKkwB,aAAa,gBAAiB,CAC/BgY,kBAAmB,CAAC,WAAY,YAChCC,SAAU,YACVC,aAAcnZ,IACVjvB,KAAKqoC,kBAAkBpZ,MAG/BjvB,KAAKg/B,mBAAmBsJ,eAAe5G,IAAI1hC,KAAKuoC,qBAAqBrU,KAAKl0B,OAC1EA,KAAKgoC,iBAAmBhoC,KAAKgoC,gBAAgBQ,QAAQ9G,IAAI1hC,KAAKyoC,mBAAmBvU,KAAKl0B,OAE1F,kBAAkBivB,IAClB,sBACA,gBACI,MAAO,CAAC,iBAEZ,4BACI,IAAI4U,EAAa7jC,KAAK8jC,YAClBD,GAAc,IACd7jC,KAAK8jC,YAAc,EACnB9jC,KAAK+jC,SAAS,CACV3gB,KAAMygB,KAIlB,SAAS6E,GACL,IAAI7Z,EAAW7uB,KAAKitB,UAChB0b,EAAmB9Z,GAAYA,EAAS+C,SAAS,IAAIvG,OAAOrrB,KAAKw0B,gBAAgBuF,MAA0BqJ,IAAI,IAAI/X,OAAOrrB,KAAKw0B,gBAAgB6F,MAC/I,eAAUqO,IAAQ,eAAUA,EAAItlB,OAASpjB,KAAK8jC,cAAgB4E,EAAItlB,OAClEpjB,KAAK8jC,YAAc4E,EAAItlB,KACvBulB,GAAoBA,EAAiB9E,WAAW6E,EAAItlB,OAG5D,YAAYwkB,GACR,IAAIvX,EACJ,OAAO,QAAUA,EAAKrwB,KAAKwjC,qBAAkB,IAAWnT,OAAK,EAASA,EAAGiC,SAE7E,eAAesV,GACX,IAAIe,EAAmB3oC,KAAK4oC,YAAYhB,IACpC,OAASe,QAAoB,IAAWA,OAAmB,EAASA,EAAiBhqC,SACrFgqC,EAAiB3F,SAGzB,4BAA4B7H,EAAQyM,GAChC,IAAIe,EAAmB,eAAE,SACrBxf,EAAYnpB,KAAK8uB,OAAO,uBAc5B,QAbI,IAAU3F,GAAa,SAAWA,IAAc,uBAChDwf,EAAiBjc,SAAS1sB,KAAKw0B,gBAAgBwF,KAEnD,OAAa1L,GAAGqa,EAAkB,SAAU,KACxC,IAAI9E,EAAa8E,EAAiB9E,aAC9BA,IAAe7jC,KAAK8jC,aACpB9jC,KAAK6oC,cAAcpS,KAAK,CACpBrT,KAAMygB,GACP7jC,KAAK2T,QAGhBg1B,EAAiBjc,SAAS1sB,KAAKw0B,gBAAgB0F,KAAgBxN,SAAS1sB,KAAKw0B,gBAAgBuF,KAAyBhI,OAAOoJ,GAAQ9E,SAASr2B,KAAKitB,WACnJjtB,KAAKwxB,QAAQ,OAAQ,eAAgBmX,GAC9BA,EAEX,yBACI,OAAO3oC,KAAK8uB,OAAO,mCAAoC,IAAU9uB,KAAK8uB,OAAO,eAEjF,qBACI,IAAIga,EAAetkC,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,IAAKA,UAAU,GAC3EtC,EAAS,IAAI,OACb6/B,EAAyB+G,GAAgB9oC,KAAK+hC,yBAClD,IAAKA,EACD,OAAO7/B,EAAOg7B,UAElB,IAAI6L,EAAyB,IAAM,OAAKxkC,MAAMvE,KAAMvB,MAAM0mB,KAAKnlB,KAAK+iC,qBAAqBvM,KAAK,KACtFx2B,KAAK4iC,aACL1gC,EAAO2gC,SACA7iC,KAAK+iC,mBAAmBiG,KAAO,EACtCD,IAEA7mC,EAAOg7B,YAEZ+L,KAAK/mC,EAAO2gC,QAEf,OADAkG,IACO7mC,EAAO+gC,UAElB,eAAeiG,EAAkB3tB,EAAQqsB,GACrC,OAAO5nC,KAAKmpC,qBAAqB3S,KAAK,KAClCx2B,KAAKopC,eAAexB,GACpB5nC,KAAKqpC,gBAAgBH,EAAkBtB,GACvC5nC,KAAKspC,4BAA4BJ,EAAkBtB,KAG3D,uBACA,WAAW2B,GACP,IAAKA,EACD,MAAO,GAEX,IAAIrnC,EAAS,GACTsnC,EAAeD,EAAcE,UAWjC,OAVAD,EAAatS,QAAQmF,IACjB,IAAIvqB,EAAQuqB,EAAKqN,YACjB,GAAIrN,EAAKsN,sBAAuB,CAC5B,IAAIC,EAAO,eAAgBvN,GACvBuN,EAAK93B,MAAQuqB,EAAKqN,YAAc,IAChC53B,EAAQ83B,EAAK93B,OAGrB5P,EAAOzC,KAAKqS,KAET5P,EAEX,gBAAgBo7B,GAGZ,IAFCt9B,KAAK8uB,OAAO,uBAAyB,UACtCwO,EAAgB,OAASA,QAAiB,IAAWA,EAAgBA,EAAgBt9B,KAAK6pC,kBACtFvM,EAEA,IADA,IAAIwM,EAAQxM,EAAc1L,SAAS,yBAAyBA,WACnDpxB,EAAI,EAAGA,EAAIspC,EAAMnrC,OAAQ6B,IAAK,CACnC,IAAIs+B,EAAOgL,EAAMva,GAAG/uB,GAChB++B,EAAaT,EAAKnO,SAAS4J,IAC3BwP,EAAcjL,EAAKnO,SAAS8J,IAC5BuP,EAAalL,EAAKnO,SAASgK,IAC3BsP,EAAe,SAAWnL,EAAKnL,IAAI,GAAG2I,MAAM4N,UAAYpL,EAAKnO,SAAS,sBACtEwZ,GAAiB5K,IAAewK,IAAgBC,EACpD,GAAIC,GAAgBE,EAAe,CAC/B,IAAIjY,EAAS4M,EAAKlN,SAAS,MACvB1vB,EAASlC,KAAKoqC,WAAWlY,GAC7B,OAAOhwB,GAInB,MAAO,GAEX,sBAAsBg9B,EAAarD,GAC/B,OAAOqD,EAEX,gBAAgBrG,GACZ,IACI6O,OAAQA,EACRF,YAAaA,GACb3O,EACAyE,EAAgBt9B,KAAK6pC,kBACzB,IAAM,OAASvM,QAAiB,IAAWA,OAAgB,EAASA,EAAc3+B,SAAY+oC,EAA9F,CAGA,IAAIh8B,EAAU1L,KAAKiyB,aACf7mB,EAAkBpL,KAAK8uB,OAAO,mBAC9Bub,EAAQ/M,EAAc1L,SAAS,YAAYA,SAAS,OACxDyY,EAAMZ,UAAUvS,QAAQ4J,GAAOA,EAAIhE,gBAAgB,UACnDpxB,EAAQwrB,QAAQ,CAACl1B,EAAQk9B,KACrB,GAAI9zB,GAAmBpJ,EAAO8P,QAAU9P,EAAOwwB,QAI3C,IAHA,IAAI1gB,EAAQqqB,GAAcn6B,EAAOk8B,cAAgBl8B,EAAO8P,OACpD4E,EAAWylB,GAAcn6B,EAAO0U,UAAY5E,GAC5Cg4B,EAAQxM,EAAc1L,WAAWA,SAAS,WAAWwR,IAAI,IAAI/X,OAAOoP,KAC/DoB,EAAW,EAAGA,EAAWiO,EAAMnrC,OAAQk9B,IAAY,CACxD,IAAIiD,EAAOgL,EAAMva,GAAGsM,GAChBxkB,EAAerX,KAAKsqC,sBAAsBpL,EAAarD,GACvDnK,EAAQoN,EAAKnO,SAAS4J,IAAmBuE,EAAKvR,KAAK,qBAAqBlC,OAAOhU,EAAe,EAAG,YAAYgU,OAAOmP,GAAkB,MAAQsE,EAAKvR,KAAK,MAAMgC,GAAGlY,GACjKglB,EAAO3K,EAAMiC,IAAI,GACjB0I,IACAD,GAAaC,EAAMr6B,EAAQ8P,GAC3BuqB,EAAKC,MAAM5lB,SAAWA,GAIlC,IAAI6zB,EAAWpN,GAAeuK,EAAOxI,IACjC,eAAUqL,IACV,eAASF,EAAM9a,GAAG2P,GAAcqL,MAI5C,gBAAgB1O,GACZ,OAAO77B,KAAKwqC,qBAAqB3O,GAErC,qBAAqBA,GACjB,KAAIA,EAAW,GAAf,CAGA,IAAIiD,EAAO9+B,KAAKyqC,kBAAkBlb,GAAGsM,GACrC,OAAOiD,EAAKlN,YAEhB,gBAAgBiK,EAAU6O,GACtB,IAAIxY,EAASlyB,KAAK2qC,gBAAgB9O,GAC9B+O,EAAqB5qC,KAAK6qC,uBAAuB3Y,EAAQ2J,EAAU6O,GACvE,IAAM,OAASxY,QAAU,IAAWA,OAAS,EAASA,EAAOvzB,WAAWisC,EAAqB,GAA7F,CAGA,IAAIlZ,EAAQQ,EAAO3C,GAAGqb,GACtB,OAAOlZ,EAAM/yB,OAAS,EAAI+yB,OAAQ,GAEtC,eAAemK,GACX,IAAIhJ,EAAO7yB,KACPolC,EAAc,iBACd0F,EAAiBjY,EAAKkY,mBAI1B,GAHAC,EAAA,KAAmBF,EAAgB,CAACnT,EAAGwL,KACnCiC,EAAcA,EAAY1D,IAAI7O,EAAK4X,gBAAgB,eAAEtH,IAAe5T,GAAGsM,MAEvEuJ,EAAYzmC,OACZ,OAAOymC,EAIf,eAAevJ,EAAU6O,GACrB,IAAIhZ,EAAQ1xB,KAAKirC,gBAAgBpP,EAAU6O,GAC3C,GAAIhZ,EACA,OAAO,eAAiBA,GAIhC,cAAcmK,GACV,IAAIiO,EAAQ9pC,KAAKkrC,eAAerP,GAC5BsP,EAAW,GACf,GAAIrB,IAAU,eAAiBA,GAAOnW,IAClC,IAAK,IAAInzB,EAAI,EAAGA,EAAIspC,EAAMnrC,OAAQ6B,IAC9B2qC,EAAS1rC,KAAKqqC,EAAMtpC,SAGxB2qC,EAAWrB,EAEf,OAAOqB,EAEX,uBAAuBjZ,EAAQ2J,EAAU6O,GACrC,GAAI,eAASA,GAAmB,CAC5B,IAAIxL,EAAcl/B,KAAKg/B,mBAAmBoM,aAAaV,EAAkB,SACzE,OAAO1qC,KAAKg/B,mBAAmB0B,gBAAgBxB,GAEnD,OAAOwL,EAEX,qBACA,WAAW7O,GACP,OAAO77B,KAAKg/B,mBAAmBC,kBAAkBpD,GAErD,QAAQwP,EAAcjH,EAAM7R,GACxB,IACIL,EADA4X,EAAQ1F,GAAQpkC,KAAKyqC,kBAEzB,GAAIX,EAAMnrC,OAAS,GAAK0sC,EAAaxP,UAAY,IACzC,YAAc77B,KAAK8uB,OAAO,mBAAqB,YAAc9uB,KAAK8uB,OAAO,gCACzEuc,EAAaxP,SAAWwP,EAAaxP,SAAWiO,EAAMnrC,OAAS0sC,EAAaxP,SAAWiO,EAAMnrC,OAAS,GAE1GuzB,EAASK,GAASvyB,KAAK2qC,gBAAgBU,EAAaxP,WAC/C,OAAS3J,QAAU,IAAWA,OAAS,EAASA,EAAOvzB,QAAU,GAClE,OAAOuzB,EAAO3C,GAAG2C,EAAOvzB,OAAS0sC,EAAanM,YAAcmM,EAAanM,YAAchN,EAAOvzB,OAAS,GAInH,eACI,IAAIwkC,EAAenjC,KAAK6pC,kBACxB,OAAI1G,GAAgB,IAAMA,EAAaxkC,OAC5BwkC,EAAa,GAAGiB,KAAKzlC,OAEzB,EAEX,oBAAoBwkC,GAEhB,GADAA,EAAeA,GAAgBnjC,KAAK6pC,kBAChC1G,EAAc,CACd,IAAIE,EAAiBrjC,KAAK8uB,SAASpe,aAAe1Q,KAAK8uB,OAAO,mBAC1Dwc,EAAUjI,GAAkBF,EAAa5V,KAAK,WAAWlC,OAAOiP,KACpE,OAAOgR,GAAWA,EAAQ3sC,OAAS2sC,EAAUnI,EAAa5V,KAAK,aAAe,IAAIlC,OAAOiP,GAAW,SAASjP,OAAOiP,KAExH,OAAO,iBAEX,gBAAgB6I,GACZ,OAAOnjC,KAAKurC,oBAAoBpI,GAEpC,YAAYrE,GACR,OAAO9+B,KAAKyqC,kBAAkBxoC,MAAM68B,GAExC,mBACA,WACA,mBAAmBhtB,GACf,IAAI+c,EAAW7uB,KAAKitB,UAChBtc,EAAa3Q,KAAK8uB,OAAO,cAC7BD,GAAYA,EAAS4C,IAAI,CACrB+Z,YAAa76B,EAAamB,EAAQ,GAClC25B,aAAe96B,EAAqB,GAARmB,IAGpC,mBAAmB45B,GACf,IAAI7c,EAAW7uB,KAAKitB,UAChBqQ,EAAgBt9B,KAAKwjC,cACzB,SAAI3U,IAAYyO,KACLoO,EAAe,eAAcpO,GAAiB,eAASzO,GAAY,EAAI,eAAeyO,GAAiB,eAAUzO,GAAY,GAI5I,aACI,IAAIwB,EACJ,OAAO,QAAUA,EAAKrwB,KAAKixB,iBAAc,IAAWZ,OAAK,EAASA,EAAGsb,UAEzE,UACI,IAAItb,EAAIub,EACR,GAAI,iBAAa,CACb,IAAIC,EAAS,iBACb,QAAUxb,EAAKrwB,KAAKwhC,yBAAsB,IAAWnR,GAAcA,EAAG6G,QAAQqK,GAAmBsK,EAAOpQ,aAAa8F,IACrH,QAAUqK,EAAK5rC,KAAKwhC,yBAAsB,IAAWoK,GAAcA,EAAGE,UCngClF,IAAIC,GAAqB,eACrBC,GAAgB,UAChBC,GAAe,SACfC,GAAqB,UACrBC,GAAmB,gBACnBC,GAAqB,kBACrBC,GAA6B,wBAC7BC,GAA8B,yBAC9BC,GAA8B,yBAC9BC,GAA4B,yBAC5BC,GAA0B,uBAC1BC,GAAsC,6BACtCC,GAAuB,oBACvBC,GAA6B,0BAC7BC,GAA+B,oBAC/BC,GAAgC,6BAChCC,GAAyB,sBACzBC,GAAO,UACAC,GAAsB,CAC7BC,eAAgB,KAAM,CAClBh8B,mBAAmB,EACnB/F,iBAAiB,IAErB6tB,MAAO,CACHmU,kBAAmB,GAAYva,QAAQ,WACnC,IAAIwa,EAAoB,SAASva,EAAMnB,EAAO/L,GAC1C,IAAI0nB,EAAe,eAAE,SAAS3gB,SAASmG,EAAK2B,gBAAgBuX,KAC5DlZ,EAAKrB,QAAQ,OAAQ,eAAgB6b,GACrCC,EAA2Bza,EAAMnB,EAAO/L,EAAQ3jB,OAAQqrC,GACxD,IAAIl8B,EAAkB0hB,EAAK/D,OAAO,mBAC9Bye,EAAmB1a,EAAK7C,cAAc,WAAWmB,0BAA0BxL,EAAQ3jB,OAAOsS,WAC9F,OAAO+4B,EAAal8B,GAAmB,UAAYo8B,EAAmB,WAAa,aAAa7b,IAGpG,SAAS4b,EAA2Bza,EAAMnB,EAAO1vB,EAAQqrC,GACrD,IAAIG,EAAqB3a,EAAK4a,sBAAsB/b,GAAO,GACvDgc,EAA4B7a,EAAK4a,sBAAsB/b,GACvDic,EAAiBH,GAAsBA,EAAmB7uC,OAC1D2xB,EAAkBuC,EAAKtC,oBAAoBvuB,EAAOsS,WAClDs5B,EAAyB,IAAIviB,OAAOwH,EAAK9B,uBAAuB,SAChE8c,EAA8B,IAAIxiB,OAAOwH,EAAK9B,uBAAuB,cACrE+c,EAAiBJ,EAA0BppC,OAAOspC,GAClDG,EAAsBL,EAA0B9b,WAAWttB,OAAOupC,GACtER,EAAeA,GAAgB3b,EAAME,SAAS,IAAIvG,OAAOwH,EAAK2B,gBAAgBuX,MAC9EsB,EAAa/W,YAAYoW,GAAsCpc,EAAiBqd,EAAiB,GAAGrX,YAAYoW,IAAuC,SAAWpc,EAAkB,QAAU,QAASqd,EAAiB,GAAK,WAAa3rC,EAAOsS,WAAWgiB,YAAYqW,KAAwBmB,EAAenvC,QAAQ23B,YAAYsW,KAA8BmB,EAAoBpvC,QAAQ23B,YAAYwW,KAAiCY,EAA0BppC,OAAO,IAAI+mB,OAAOwH,EAAK9B,uBAAuB,kBAAkBpyB,QAExgB,IAAIqvC,EAAU,CACV,eACI,IAAI7S,EAASn7B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WASvC,OARA,OAAa8pB,GAAG6M,EAAQ,wBAAyBn7B,KAAKkwB,aAAajB,IAC/D,IACIhD,MAAOA,GACPgD,EACAhD,EAAMgiB,UACNhiB,EAAM4S,oBAGP1D,GAEX,8BACI,OAAOn7B,KAAK8uB,OAAO,gCAEvB,oBAAoB9sB,GAChB,IAAI6wB,EAAO7yB,KACX,OAAO,SAAS6xB,EAAYlM,GACxB,IACInQ,QAASA,GACTxT,EACAksC,GAAmBlsC,EAAOwwB,SAAWhd,GAAW,WAAaxT,EAAOwwB,QACxE,GAAI,UAAYxwB,EAAOwwB,QACnBK,EAAKsb,oBAAoBtc,EAAYlM,QAClC,GAAIuoB,EAAiB,CACxB,IAAIE,EAAWhB,EAAkBva,EAAMhB,EAAYlM,GACnDyoB,EAASt6B,KAAK0B,QACPxT,EAAOwwB,SACdX,EAAWtM,KAAK,YAI5B,oBAAoBsM,EAAYlM,GAC5B,IAAI0oB,EAAYruC,KAAKsuC,sBACrB,GAAKD,EAAL,CAIA,IAAIhB,EAAeD,EAAkBptC,KAAM6xB,EAAYlM,GACnD4oB,EAAYF,EAAUG,SAAS,OACnC,GAAID,EAAW,CACX,IAAKE,EAAUC,GAAaL,EAAUvqC,MAAM,OACxC6qC,EAAqB,OAAoB5wC,OAAO,2CAChD6wC,EAAoB5uC,KAAKixB,UAAU4d,QAAQ,qBAC3CC,EAAQ,eAAE,OAAOh7B,KAAK66B,GAAoBjiB,SAASsgB,IACvD,OAAa1e,GAAGwgB,EAAO,QAAS9uC,KAAKkwB,aAAa,IAAM0e,EAAkBG,sBAC1E1B,EAAatb,OAAO,aAAWid,eAAeP,IAAW1c,OAAO+c,GAAO/c,OAAO,aAAWid,eAAeN,SAExGrB,EAAav5B,KAAKu6B,QAblBxc,EAAWtM,KAAK,WAgBxB,sBACI,IAAI0pB,IAAqBjvC,KAAKixB,UAAU4d,QAAQ,qBAAqBI,mBACjEC,IAAsBlvC,KAAKixB,UAAU4d,QAAQ,eAAeK,oBAChE,QAAQ,GACJ,KAAKD,GAAoBC,EACrB,OAAO,OAAoBnxC,OAAO,4DACtC,KAAKmxC,EACD,OAAO,OAAoBnxC,OAAO,4CACtC,KAAKkxC,EACD,OAAO,OAAoBlxC,OAAO,+CACtC,QACI,MAAO,KAGnB,mBAAmBiE,GACf,OAAOA,EAAOuU,oBAAsB,CAChC2rB,gCAAgC,EAChC3M,OAAQv1B,KAAKmvC,oBAAoBntC,KAGzC,iBAAiB6R,EAAU8R,GACvB,IACIypB,EADAvc,EAAO7yB,MAGPgC,OAAQA,GACR2jB,EACAsc,EAAoBpP,EAAKqC,SAASrhB,GAatC,OAXIu7B,EADA,WAAazpB,EAAQiY,SAAWqE,GAAqBjgC,EAAOuU,qBAAuBvU,EAAOwwB,QACzE,CACb,OAAO7M,GACH,IAAIyoB,EAAWhB,EAAkBva,EAAMlN,EAAQlI,UAAWkI,EAAQwc,OAClEF,EAAkB1M,OAAO,OAAApI,EAAA,MAAO,GAAIxH,EAAS,CACzClI,UAAW2wB,OAKNnM,EAEdmN,GAEX,mBAAmBngB,GACX,YAAcA,EAAEgV,aAGhBjkC,KAAKqvC,oBAAsBrvC,KAAKo1B,iBAChCp1B,KAAKqvC,oBAAqB,EAC1BrvC,KAAKu1B,WAGb,YAAYuJ,EAAMnZ,GACd,IAAI+L,EAAQ1xB,KAAKk1B,SAAS4J,EAAMnZ,GAShC,MARI,WAAaA,EAAQ0Y,IAAIT,UACzBlM,EAAMhF,SAAS8f,IACVxsC,KAAKsvC,+BACF3pB,EAAQ3jB,SAAW2jB,EAAQ3jB,OAAO5D,MAClCszB,EAAM5E,KAAK,WAAY9sB,KAAK8uB,OAAO,aAAe,IAIvD4C,GAEX,uBAAuBA,EAAOyN,GAC1Bn/B,KAAKk1B,SAASxD,EAAOyN,GACjB,WAAaA,EAAYvB,UACpBuB,EAAYn9B,OAAO5D,MACpB4B,KAAKwxB,QAAQ,OAAQ,eAAgBE,IAErCyN,EAAYn9B,QAAWm9B,EAAYn9B,OAAOwwB,SAAY2M,EAAYn9B,OAAOyU,SACzEib,EAAM5E,KAAK,KAAMqS,EAAYn9B,OAAOg8B,UACpCh+B,KAAKwxB,QAAQ,QAAS,GAAGnG,OAAO,OAAoBttB,OAAO,yBAA0B,KAAKstB,OAAO8T,EAAYn9B,OAAOwT,SAAUkc,MAI1I,WAAW2M,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAQrC,OAPAs6B,EAAKxI,YAAY8V,GAAoBpsC,KAAK8uB,OAAO,oBAC7C,WAAauP,EAAIT,UACjBkB,EAAKpS,SAASyf,IACTnsC,KAAKsvC,+BACN,EAAuB,gBAAiBtvC,KAAM8+B,EAAM,KAAM9+B,KAAKuvC,qBAAqBrb,KAAKl0B,QAG1F8+B,GAEX,qBAAqB9Q,GACjB,IACI/B,MAAOA,GACP+B,EACApB,EAAU,eAAEX,EAAMvpB,QAEtB,GADA1C,KAAKwvC,mBAAqBvjB,EAAMvpB,OAC5BkqB,EAAQgI,GAAGiY,IAA+B,CAC1C,IAAI4C,EAAyBzvC,KAAKgwB,cAAc,gBAC5C0f,EAAU9iB,EAAQ8H,QAAQ,MAC1BwK,EAAcl/B,KAAK2vC,wBAAwBD,GAC3CxQ,GAAe,GACfuQ,EAAuBG,qBAAqB1Q,GAAa,OAE1D,CACH,IAAIJ,EAAOlS,EAAQ8H,QAAQwX,IAC3BlsC,KAAK6vC,qBAAqB5jB,EAAO6S,GAErC7S,EAAM4S,kBAEV,cACI,IAAIhN,EAAa7xB,KAAKitB,UAClB1R,EAAS,GACb,IAAIvb,KAAKwjC,eAAkBxjC,KAAKgoC,gBAAgB8H,YAAe9vC,KAAK+vC,gBAApE,CAGAle,EAAWnF,SAAS1sB,KAAKw0B,gBAAgBwX,KAAgB1V,YAAYt2B,KAAKw0B,gBAAgByX,KAAgBjsC,KAAK8uB,OAAO,oBAAoBqF,QAC1In0B,KAAKwxB,QAAQ,OAAQ,eAAgBK,GACrC,IAAIvX,EAAWta,KAAKgwC,eAAehwC,KAAKiwC,aAAa,CACjD10B,OAAQA,IACRA,GAKJ,OAJIvb,KAAKkwC,cAAgB,GACrBre,EAAWnF,SAASqgB,IAExB/sC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnB8V,IAEX,eACQta,KAAKgoC,gBAAgB8H,YAAc9vC,KAAK+vC,mBACxC/vC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAK+vC,iBAAkB,IAG/B,WAAW5U,EAAQxV,GACf,IAAIkW,EAAW,IAAM77B,KAAKkwC,cAAgB,KAAOvqB,EAAQ0Y,IAAIxC,SAC7DlW,EAAQja,QAAU1L,KAAKiyB,WAAW4J,GAClC77B,KAAKk1B,SAASiG,EAAQxV,IAE1B,YAAYA,GACR,IACI3jB,OAAQA,GACR2jB,EACAwqB,EAAenwC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAE7C,OADAxC,EAAOouC,QAAU,GAAK,WAAazqB,EAAQiY,SAAWuS,EAAarjB,KAAK,UAAW9qB,EAAOouC,SACnFD,GAEX,WACI,IAAIjuC,EAAS,GACTmuC,EAAWrwC,KAAKkwC,cACpB,GAAIlwC,KAAK8uB,OAAO,qBACZ,IAAK,IAAItuB,EAAI,EAAGA,EAAI6vC,EAAU7vC,IAC1B0B,EAAOzC,KAAK,CACRm+B,QAAS,SACT/B,SAAUr7B,IAItB,OAAO0B,GAEX,iBAAiByjB,GACb,GAAI,WAAaA,EAAQiY,QACrB,OAAO59B,KAAKswC,mBAAmB3qB,EAAQ3jB,SAG/C,qBAAqBitB,GACjB,IACIsV,YAAaA,GACbtV,GAEAuY,YAAaA,GACbvY,EACAsV,EAAYx3B,UAAYw3B,EAAYgM,eAChChM,EAAYx3B,WACZ/M,KAAKqvC,oBAAqB,IAIlCrvC,KAAKk1B,SAASjG,IACVuY,EAAY11B,OAAS01B,EAAY31B,UACjC7R,KAAK41B,gBAAgBa,SAG7B+Z,kBAAmBC,GAAkBA,GAAkBA,EAAe5+B,QACtE,sBAAsB6f,GAClB,IAAId,EAAuB5wB,KAAKuxB,uBAAuBG,GAAO,GAC1Dd,GAAwBA,EAAqBjyB,SAC7CiyB,EAAqBtsB,OAAO,IAAI+mB,OAAOohB,KAA0BzJ,SACjEpS,EAAuB5wB,KAAKuxB,uBAAuBG,GACnDd,EAAqB8f,QAAQhkB,SAAS+f,IAAyBhb,IAAI,QAAS,IAAIkf,aAAajf,EAAME,SAAS,IAAIvG,OAAOrrB,KAAKw0B,gBAAgBuX,SAGpJ,YAAYra,EAAO/L,GACX,WAAaA,EAAQiY,SAAW,WAAajY,EAAQ3jB,OAAOsS,WAC5DtU,KAAK4wC,sBAAsBlf,GAE/B1xB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,iBAAiBktB,EAAO1vB,EAAQgwB,GAC5B,IAAI6e,EAAoB7wC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAKlD,MAJI,WAAaxC,EAAOsS,WACpBtU,KAAK4wC,sBAAsBlf,GAE/B4b,EAA2BttC,KAAM0xB,EAAO1vB,GACjC6uC,GAEX,uBAAuBnf,EAAOof,GAC1B,IAAIlgB,EAAuB5wB,KAAKk1B,SAASxD,GACzC,OAAOof,EAAYlgB,EAAuBA,EAAqBtsB,OAAO,SAAS+mB,OAAOohB,GAAyB,OAEnHsE,mBAAoB,KAAM,EAC1B,sBACI,IAAIzT,EAAgBt9B,KAAK6pC,kBACrBmH,EAAc1T,GAAiBA,EAAc/P,KAAK,IAAIlC,OAAO8gB,KACjE,OAAO6E,GAAeA,EAAYvH,UAAUjQ,OAAO,CAAC3O,EAAKomB,IAAcpmB,EAAM,eAAUomB,GAAY,IAAM,GAE7G,iBAAiBhvC,GACb,IAAIivC,EAAiBlxC,KAAKmyB,oBAC1B,OAAO+e,GAAkBA,EAAe3hB,GAAGttB,IAE/C,kBAAkBA,EAAOkvC,GACrB,IACIhB,EADAtd,EAAO7yB,KAEPgxB,EAAoB6B,EAAKmM,mBACzBqR,EAAWxd,EAAKqd,cACpB,GAAIrd,EAAK/D,OAAO,qBAAsB,CAClC,GAAIuhB,EAAW,KAAO,eAAUpuC,IAAU,eAAUkvC,IAAmB,CACnE,IAAIjvC,EAAS,GACT68B,EAAiB,eAAUoS,GAAmBngB,EAAkBogB,wBAAwBD,GAAiB,GAAQngB,EAAkBiO,oBAMvI,OALA,eAAKF,EAAgB,CAACpH,EAAG31B,KACrB,IAAI65B,EAAW,eAAU55B,GAASA,EAAQ+uB,EAAkB8K,YAAY95B,EAAOC,OAC/EkuC,EAAetd,EAAKoY,gBAAgBpP,EAAU7K,EAAkB0P,gBAAgB1+B,EAAOC,MAAO45B,IAC9FsU,GAAgBjuC,EAAOzC,KAAK0wC,EAAaxc,IAAI,MAE1C,eAAEzxB,GAEb,IAAKD,GAASA,EAAQouC,EAClB,OAAOxd,EAAK8X,gBAAgB1oC,GAAS,KAIjD,wBAAwByvB,GACpB,IAAIoU,EAAY9lC,KAAKqxC,aAAa3f,GAC9BoN,EAAOpN,EAAMgD,QAAQ,YAErBmH,SAAUA,GACViD,EAAK,GACL98B,EAAShC,KAAKiyB,WAAW4J,GAAUiK,GACvC,OAAO9jC,EAASA,EAAOC,OAAS,GAEpC,sBAAsBi9B,EAAarD,GAC/B,IAAI75B,EAAShC,KAAKiyB,aAAaiN,GAC/B,OAAOl9B,EAAShC,KAAKg/B,mBAAmB0B,gBAAgB1+B,EAAOC,MAAO45B,IAAa,GAEvF,kBACI,IAAIyV,EAAkBtxC,KAAKmyB,oBAC3B,OAAImf,GAAmBA,EAAgB3yC,OAC5BqB,KAAKoqC,WAAWkH,GAEpBtxC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,cAAcxC,GACV,IAAI65B,EAAW75B,GAAUhC,KAAKg/B,mBAAmBlD,YAAY95B,EAAOC,OAChEyJ,EAAU1L,KAAKiyB,WAAW4J,GAC1B0V,EAAsBvxC,KAAK8uB,OAAO,0BAA4B9uB,KAAKg/B,mBAAmBwS,mBAAmB,mBAC7G,OAAOD,GAAuBvvC,EAAO8S,iBAAmBpJ,EAAQ/M,OAAS,GAE7E,kBACI,IAAI2yC,EAAkBtxC,KAAKmyB,oBAC3B,GAAImf,GAAmBA,EAAgB3yC,OAAQ,CAC3C,IAAI0oB,EAASrnB,KAAK6pC,kBAAkBxiB,SACpC,MAAO,CACH9D,IAAK8D,EAAO9D,KAGpB,OAAO,MAEXkuB,QAAS,IAAM,UACf,iBACI,IAAIH,EAAkBtxC,KAAKmyB,oBAC3B,OAAOmf,EAAkBA,EAAgB3yC,OAAS,GAEtD,YACI,OAAOqB,KAAK8uB,OAAO,sBAEvB,cAAcd,GACV,OAAQA,EAAKra,MACT,IAAK,oBACL,IAAK,kBACL,IAAK,kBACD3T,KAAK+nC,aAAY,GAAM,GACvB/Z,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,KAG1B,YACI,OAAOhuB,KAAK0xC,oBAEhB,oBAAoB/rB,GAChB,IAAIkN,EAAO7yB,MAEPgC,OAAQA,GACR2jB,EACJ,GAAIA,EAAQ0Y,MAAQ,WAAa1Y,EAAQ0Y,IAAIT,SAAW,mBAAqBjY,EAAQ0Y,IAAIT,SAAU,CAC/F,IAAI+T,EAAiB9e,EAAK/D,OAAO,WACjC,GAAI6iB,GAAkB,SAAWA,EAAet5B,MAAQrW,GAAUA,EAAOiT,aAAc,CACnF,IAAI28B,EAAc,SAASC,GACvBrW,WAAW,KACP3I,EAAKmM,mBAAmB8S,gBAAgB9vC,EAAOC,MAAO4vC,EAAOE,SAAS/zC,UAG9E,MAAO,CAAC,CACJ8V,KAAM69B,EAAejoB,cACrB1rB,MAAO,MACPiO,SAAU,QAAUjK,EAAOkV,UAC3BxD,KAAM24B,GACNuF,YAAaA,GACd,CACC99B,KAAM69B,EAAe/nB,eACrB5rB,MAAO,OACPiO,SAAU,SAAWjK,EAAOkV,UAC5BxD,KAAM44B,GACNsF,YAAaA,GACd,CACC99B,KAAM69B,EAAehoB,UACrB3rB,MAAO,OACPiO,UAAWjK,EAAOkV,UAClBxD,KAAM64B,GACNqF,YAAaA,OAM7B,cACI,OAAO5xC,KAAKg/B,oBAAsBh/B,KAAKg/B,mBAAmBkR,eAE9D,eAAehR,EAAalhC,EAAO69B,GAC/B,IAAIr7B,EACA0wC,EACAb,EAAWrwC,KAAKkwC,cAChBxkC,EAAU1L,KAAKg/B,mBAAmB/M,aAClCjwB,EAAS0J,GAAWA,EAAQwzB,GAC5B8S,EAAWhwC,GAAUA,EAAOyU,QAAUzU,EAAOC,MAC7CgwC,EAAmB,CAACjwC,EAAQC,KACxBD,EAAO2U,YAAcq7B,IACrBd,EAAe3hB,GAAGttB,GAAOwvB,IAAI,CACzBpO,QAASrlB,IAETgE,EAAOyU,QACPzW,KAAKkyC,eAAelwC,EAAOC,MAAOjE,EAAOwC,EAAI,KAIzD,GAAI,eAAUwxC,GAEV,IADAnW,EAAWA,GAAY,EAClBr7B,EAAIq7B,EAAUr7B,EAAI6vC,EAAU7vC,IAE7B,GADA0wC,EAAiBlxC,KAAK2qC,gBAAgBnqC,GAClC0wC,EAAgB,CAChB,IAAIiB,EAAanyC,KAAKiyB,WAAWzxB,GACjC2xC,EAAWjb,QAAQ+a,MAMvC,OAAOjE,EAnb4B,MC3ChC,kBAAS,eAAS,eAAS,GAAI,IAAU,SAAgB,CACpEhW,QAAS,KCAkBiV,GAAoBjU,MAAMmU,kBACzD,GAASiF,eAAe,gBAAiBnF,I,sICL9BoF,GAA8B,CAAC,eAAgB,aAAc,QAAS,iBACtEC,GAAyB,CAAC,eAAgB,YAAa,OAAQ,WAAY,QAAS,UAAW,YAAa,gBAAiB,YAAa,aAAc,cAAe,sBAAuB,0BAA2B,kCAAmC,SAASjnB,OAAOgnB,IAC5QE,GAA6B,CACpCrU,cAAc,EACdsU,cAAc,EACdC,qBAAqB,GAEdC,GAAuB,oBACvBC,GAAmB5uC,OAAO4uC,kBAAoB,iBAC9CC,GAA4B,cAC5BC,GAA6B,eAC7BC,GAAuB,wBACvBC,GAAyB,CAChClhC,SAAS,EACTiF,qBAAqB,GAEdk8B,GAAsB,CAC7BC,OAAQ,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,WAC1CC,OAAQ,CAAC,WAAY,cAAe,aAAc,WAAY,IAAK,MACnEt0C,KAAM,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,WACxCu0C,SAAU,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,YAErCC,GAAuB,CAC9B/7B,cAAc,EACdf,YAAY,EACZ+8B,SAAS,EACTr8B,WAAW,EACXE,WAAW,GAEJo8B,GAAiB,QACjBC,GAA0B,gB,uCCe1BC,GAAqC,SAASxxC,GACrDA,EAAO+T,iBAAmB/T,EAAOyxC,yBAEjCC,GAAiB,EACVC,GAAe,SAAS9gB,EAAM+gB,EAAeC,EAAwBC,GAC5E,IAAIC,EAAsB,GAC1B,GAAIH,EAAe,CACX,eAASA,KACTA,EAAgB,CACZhxC,UAAWgxC,IAGnB/gB,EAAKmhB,QAAQJ,GACb,IAAI1xC,EAAS,GACb,GAAI0xC,EAAcphB,QACdtwB,EAAS,gBAAoB6xC,EAAqBH,OAC/C,CACHG,EAAsBlhB,EAAKohB,kBAAkBL,GACzCC,GAA0BA,EAAuBlgC,MAAQkgC,EAAuBjxC,YAChFgxC,EAAgB,OAAAzmB,EAAA,MAAO,GAAIymB,EAAe,CACtChxC,UAAWixC,EAAuBjxC,aAG1C,IAAIsxC,EAA0BrhB,EAAKshB,+BAA+BP,EAAeE,GAC5EF,EAAcx1C,OACf8D,EAAS,CACL87B,SAAU,UAAU3S,OAAOqoB,QAGnCxxC,EAAS,gBAAoBA,EAAQ6wC,IACrC,gBAAoB7wC,EAAQ6xC,GAC5B,gBAAoB7xC,EAAQgyC,GAC5B,gBAAoBhyC,EAAQ0xC,GAC5B,gBAAoB1xC,EAAQ,CACxBS,SAAU,OAMlB,OAHIixC,EAAc79B,mBAAqB69B,EAAcH,yBACjDD,GAAmCtxC,GAEhCA,IAGJ,GAA2B,SAASkyC,EAAyBvhB,EAAMwhB,EAAgBP,GAC1F,IAAI5xC,EAAS,GAkBb,OAjBImyC,GACA,eAAKA,EAAgB,CAACpyC,EAAO2xC,KACzB,IAAIC,EAAyBhhB,EAAKyhB,mBAAqBC,GAAqBX,EAAe/gB,EAAKyhB,kBAAkBryC,KAAW4wB,EAAKyhB,kBAAkBryC,GAChJD,EAAS2xC,GAAa9gB,EAAM+gB,EAAeC,EAAwBC,GACnE9xC,IACI8xC,IACA9xC,EAAO2U,UAAYm9B,GAEvB5xC,EAAOzC,KAAKuC,GACRA,EAAO0J,UACPxJ,EAASA,EAAOmpB,OAAO+oB,EAAyBvhB,EAAM7wB,EAAO0J,QAAS1J,WAC/DA,EAAO0J,QACd1J,EAAOwyC,YAAa,MAK7BtyC,GAEAuyC,GAAuB,SAASvV,EAAawV,GACpD,IAAIxyC,EAAS,GACTowB,EAASoiB,EAAoBxV,GACjC,MAAO5M,EACHpwB,EAAOnC,QAAQuyB,GACf4M,EAAc5M,EAAOrwB,MACrBqwB,EAASoiB,EAAoBxV,GAEjC,OAAOh9B,GAEA,GAA0B,SAASkvC,EAAwBlS,EAAayV,EAAuB77B,GACtG,IAAI5W,EAAS,GACT0vB,EAAW+iB,EAAsBzV,GACrC,GAAItN,EACA,IAAK,IAAIpxB,EAAI,EAAGA,EAAIoxB,EAASjzB,OAAQ6B,IAAK,CACtC,IAAIwB,EAAS4vB,EAASpxB,GACjB,eAAUwB,EAAOsU,cAAetU,EAAO+U,kBACxC7U,EAAOzC,KAAKuC,GACR8W,GAAa9W,EAAOyU,SACpBvU,EAASA,EAAOmpB,OAAO+lB,EAAwBpvC,EAAOC,MAAO0yC,EAAuB77B,MAKpG,OAAO5W,GAEA0yC,GAAqB,SAAS/hB,EAAMgiB,GAC3C,IAAI3yC,EACAwJ,EACAopC,EAAmBjiB,EAAKkiB,sBACxBC,EAAiB,SAAShzC,GAC1B,IAAI2U,EAAYzU,EAASA,EAAOD,WAAQ,EACxC,OAAOD,EAAO2U,YAAcA,GAEhC,GAAIm+B,EAAiBG,QACjB/yC,EAAS2wB,EAAKqiB,SAASL,EAAc,QAClC,CACHnpC,EAAUmnB,EAAKqiB,SAAS5wC,OAAO0wC,GAC/B,IAAK,IAAIx0C,EAAI,EAAGA,EAAIq0C,EAAcl2C,OAAQ6B,IACtC0B,EAASwJ,EAAQmpC,EAAcr0C,IAC3B0B,IACAwJ,EAAUmnB,EAAKqiB,SAAS5wC,OAAO0wC,IAI3C,OAAO9yC,GAEAizC,GAAoB,SAAStiB,EAAM7wB,GAC1C,IACI0J,EADAxJ,EAAS,GAET4yC,EAAmBjiB,EAAKkiB,sBACxBC,EAAiB,SAASjqB,GAC1B,OAAOA,EAAKpU,YAAc3U,EAAO2U,WAErC,GAAIm+B,EAAiBG,QAAS,CAC1B,IAAI/V,EAAcrM,EAAKqiB,SAAS3yC,QAAQP,GACpCk9B,GAAe,IACfh9B,EAAS,CAAC,WAAWmpB,OAAO6T,EAAa,WAE1C,CACHxzB,EAAUmnB,EAAKqiB,SAAS5wC,OAAO0wC,GAC/B,MAAOtpC,EAAQ/M,SAAW,IAAM+M,EAAQnJ,QAAQP,GAC5CE,EAAOnC,QAAQ,WAAWsrB,OAAO3f,EAAQnJ,QAAQP,GAAS,MAC1DA,EAAS8yC,EAAiBJ,oBAAoB1yC,EAAOC,OACrDyJ,EAAU1J,EAAS6wB,EAAKqiB,SAAS5wC,OAAO0wC,GAAkB,GAGlE,OAAO9yC,EAAOnD,KAAK,MAEZ,GAAmB,SAASq2C,EAAiBviB,EAAMmf,GAC1D,IAAI/T,EAAU,EACVvyB,EAAUmnB,EAAKue,wBAAwBY,GAAU,GASrD,OARA,eAAKtmC,EAAS,CAACisB,EAAG31B,KACVA,EAAOyU,QACPzU,EAAOi8B,QAAUj8B,EAAOi8B,SAAWmX,EAAiBviB,EAAM7wB,EAAOC,OACjEg8B,GAAWj8B,EAAOi8B,SAAW,GAE7BA,GAAW,IAGZA,GAEAoX,GAAqB,SAASxiB,EAAMnnB,EAASopC,GAEpD,IADA,IAAI1E,EACK5vC,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAAK,CACrC,IAAIwB,EAAS0J,EAAQlL,IACjBwB,EAAO6P,SAAW7P,EAAOwwB,WACrBxwB,EAAOyU,SACPzU,EAAOi8B,QAAUj8B,EAAOi8B,SAAW,GAAiBpL,EAAM7wB,EAAOC,QAEhED,EAAOyU,QAAWzU,EAAOi8B,UAC1BmS,EAAUvd,EAAKqd,cACVluC,EAAOwwB,SAAa,eAAUxwB,EAAOsU,cAAetU,EAAO+U,kBAC5Dq5B,GAAWqE,GAAqBzyC,EAAOC,MAAO6yC,EAAiBJ,qBAAqB/1C,QAEpFyxC,EAAU,IACVpuC,EAAOouC,QAAUA,OAM1BkF,GAAmB,SAASt3C,GACnC,IAAI8D,EAAW,eAAK9D,GAIpB,MAHI,WAAa8D,GAAY,YAAcA,GAAY,WAAaA,GAAY,SAAWA,GAAY,WAAaA,IAChHA,OAAW,GAERA,GAEAyzC,GAAyB,SAASzzC,EAAU9D,GACnD,OAAQ8D,GACJ,IAAK,OACL,IAAK,WACD,OAAO,QAAkB0zC,2BAA2Bx3C,GACxD,IAAK,SACD,GAAI,eAASA,GACT,MAAO,SAEX,GAAI,eAAUA,GACV,OAAO,OAIZy3C,GAAoB,SAAS9vB,EAAS7jB,GACxC6jB,EAAQ+vB,mBACL,QAAc7zC,WAAWC,KACzB6jB,EAAQ+vB,iBAAmB,SAAS13C,GAChC,OAAO,QAAkB23C,gBAAgB33C,IAE7C2nB,EAAQiwB,eAAiB,SAAS53C,GAC9B,OAAO,eAASA,GAASA,EAAQ,QAAkB63C,cAAc73C,EAAOgC,KAAK81C,uBAGjF,WAAah0C,IACb6jB,EAAQ+vB,iBAAmB,SAAS13C,GAChC,IAAI+3C,EAAchgB,WAAW/3B,GAC7B,OAAOg4C,MAAMD,GAAe/3C,EAAQ+3C,GAExCpwB,EAAQiwB,eAAiB,SAAS53C,EAAO0E,GACrC,MAAI,WAAaA,EACN1E,EAEJ,eAAUA,IAAU,WAAagC,KAAK81C,oBAAsB93C,EAAMK,WAAaL,MAK3Fi4C,GAAyB,SAASn0C,EAAUo0C,GACnD,OAAQp0C,GACJ,IAAK,SACD,MAAO,QACX,IAAK,UACD,MAAO,SACX,QACI,OAAO,eAAoBo0C,KAG5BC,GAAkC,SAASlnB,GAClD,OAAI,IAASA,EAAEjxB,MACJgC,KAAKmX,UAAY,QAExB,IAAU8X,EAAEjxB,MACLgC,KAAK8V,WAAa,QAEtBmZ,EAAEmnB,WAAa,IAEfC,GAA6B,SAASv0C,GAC7C,GAAI,YAAcA,EACd,OAAOq0C,IAGJG,GAA8B,SAASzjB,EAAM9mB,GAKpD,IAJA,IACIwqC,EADAC,EAAa3jB,EAAK4jB,eAAe1qC,GAEjC2qC,EAAkB,GAClBx0C,EAAS,GACJ1B,EAAI,EAAGA,EAAIg2C,EAAW73C,OAAQ6B,IACnC,GAAIg2C,EAAWh2C,GACX,IAAK+1C,KAAaC,EAAWh2C,GACpB,eAAWg2C,EAAWh2C,GAAG+1C,MAAe,QAAgBI,UAAUH,EAAWh2C,GAAG+1C,MACjFG,EAAgBH,IAAa,GAK7C,IAAKA,KAAaG,EACd,GAAI,IAAMH,EAAUh0C,QAAQ,MAAO,CAC/B,IAAIP,EAAS2xC,GAAa9gB,EAAM0jB,GAChCr0C,EAAOzC,KAAKuC,GAGpB,OAAOE,GAEA00C,GAAsB,SAAS/jB,GACtC,eAAKA,EAAKqiB,SAAU,CAACjzC,EAAOD,KACxBA,EAAOC,MAAQA,IAEnB,eAAK4wB,EAAKqiB,SAAU,CAACjzC,EAAOD,KACpB,eAASA,EAAO2U,aAChB3U,EAAO2U,UAAY3U,EAAO2U,UAAU1U,SAG5C,eAAK4wB,EAAKgkB,gBAAiB,CAAC50C,EAAOD,KAC/BA,EAAOC,QAAUA,EAAQ,MAGtB60C,GAA2B,SAASjkB,EAAMkkB,GACjD,gBAAiBlkB,EAAKqiB,SAAU,aAAc6B,EAAe/0C,IACzD,IACIqxC,QAASA,GACTrxC,EAEJ,cADOA,EAAOqxC,QACPA,KAGJ2D,GAA0B,SAASnkB,EAAMkkB,GAChD,eAAKlkB,EAAKqiB,SAAU,CAACjzC,EAAOD,KACpB,eAAUA,EAAOgV,aAAeigC,GAAiBj1C,EAAOkV,mBACjDlV,EAAOgV,YAGtB,gBAAiB6b,EAAKqiB,SAAU,YAAa6B,EAAe/0C,IAAW,eAAUA,EAAOsU,aAAe2gC,GAAiBj1C,EAAOkV,aAExHggC,GAA6B,SAASrkB,EAAMkkB,GAMnD,IALA,IAAI/0C,EACAE,EAAS,GACT4yC,EAAmBjiB,EAAKkiB,sBACxBoC,EAAgB,GAChBzrC,EAAUmnB,EAAKqiB,SAAS5wC,OAAOtC,IAAWA,EAAOwwB,SAC5ChyB,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAAK,CACrCwB,EAAS0J,EAAQlL,GACjB,IAAI42C,EAAoB3C,GAAqBj0C,EAAGs0C,EAAiBJ,qBAC7D0C,EAAkBz4C,OAClBw4C,EAAc13C,KAAKuC,GAEnBE,EAAOzC,KAAKuC,GAGpB,gBAAiBm1C,EAAe,eAAgBJ,GAChD,gBAAiB70C,EAAQ,eAAgB60C,IAElCM,GAA+B,SAASxkB,EAAMxb,EAAcoO,GACnE,IAEIzjB,EAFA65B,EAAW,eAASxkB,GAAgBA,EAAawkB,SAAW,KAC5DnwB,EAAU+Z,IAAa6tB,GAAiBzgB,EAAKykB,kBAAoB7xB,IAAa8tB,GAA0B1gB,EAAK0kB,oBAAsB1kB,EAAKoM,kBAAkBpD,GAO9J,OALAxkB,EAAe,eAASA,GAAgBA,EAAa6nB,YAAc7nB,EACnErV,EAAS0J,EAAQ2L,GACbrV,GAAUA,EAAO5D,OAASw0C,KAC1B5wC,EAAS6wB,EAAKqiB,SAAS5wC,OAAOw8B,GAAO9+B,EAAO5D,OAAS0iC,EAAI1iC,MAAM,IAAM4D,GAElEA,GAAU,eAAUA,EAAOC,OAASD,EAAOC,OAAS,GAEpDu1C,GAAoB,SAAS3kB,EAAM7wB,EAAQsU,GAClD,IACI9V,EADAi3C,EAAe5kB,EAAKykB,kBAExB,GAAIhhC,GAAc,EACd,IAAK9V,EAAI,EAAGA,EAAIi3C,EAAa94C,OAAQ6B,IAC7Bi3C,EAAaj3C,GAAG8V,YAAcA,GAC9BmhC,EAAaj3C,GAAG8V,kBAKxB,IADAA,EAAa,EACR9V,EAAI,EAAGA,EAAIi3C,EAAa94C,OAAQ6B,IACjC8V,EAAaohC,KAAKpwB,IAAIhR,EAAYmhC,EAAaj3C,GAAG8V,WAAa,GAGvE,OAAOA,GAGX,SAASi+B,GAAqBvyC,EAAQ21C,GAClC,OAAO31C,GAAU21C,GAAmBA,EAAgBhkC,QAAU3R,EAAO2R,MAAQ3R,EAAOY,aAAe+0C,EAAgB/0C,YAAcZ,EAAOY,WAAaZ,EAAO2R,MAEzJ,IAAIikC,GAAiB,SAAS/kB,GACjC,IAOI7wB,EACA61C,EACAr3C,EATAs3C,EAAmBjlB,EAAKyhB,kBACxByD,EAA0BllB,EAAKmlB,0BAA4B,GAC3DtsC,EAAUmnB,EAAKqiB,SACf+C,EAAkB,GAClBC,EAAgB,GAChBC,GAAsB,EACtBC,EAAyB,GAK7B,SAASC,EAAiBr2C,EAAQ21C,GAC9B,GAAKA,EAGL,IAAK,IAAI11C,EAAQ,EAAGA,EAAQqwC,GAAuB3zC,OAAQsD,IAAS,CAChE,IAAIs0C,EAAYjE,GAAuBrwC,GACnC81C,EAAwBvJ,SAAS+H,KAGjC,aAAeA,EACfv0C,EAAOu0C,GAAav0C,EAAOu0C,IAAcoB,EAAgBpB,GAClDlE,GAA4B7D,SAAS+H,GACxCA,KAAaoB,IACb31C,EAAOu0C,GAAaoB,EAAgBpB,KAGpC,4BAA8BA,GAAaoB,EAAgBpB,KAC3Dv0C,EAAOs2C,+BAAiCt2C,EAAOu0C,IAAc,MAEjEv0C,EAAOu0C,GAAaoB,EAAgBpB,MAKhD,SAASgC,EAAoBT,EAAkB91C,GAG3C,IAFA,IAAIw2C,EAAKx2C,EAAO2R,MAAQ3R,EAAOY,UAC3BlC,EAAQu3C,EAAgBO,IAAO,EAC1B5X,EAAI,EAAGA,EAAIkX,EAAiBn5C,OAAQiiC,IACzC,GAAI2T,GAAqBvyC,EAAQ81C,EAAiBlX,IAAK,CACnD,IAAIlgC,EAKA,OAFAu3C,EAAgBO,GAAMP,EAAgBO,IAAO,EAC7CP,EAAgBO,KACT5X,EAJPlgC,IAQZ,OAAQ,EAEZ,GAAIo3C,EAAkB,CAClB,IAAKt3C,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAC5Bq3C,EAAuBU,EAAoBT,EAAkBpsC,EAAQlL,IACrE23C,EAAsBA,GAAuBN,GAAwB,EACrEO,EAAuB34C,KAAKo4C,GAEhC,IAAKr3C,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAC5BwB,EAAS0J,EAAQlL,GACjBq3C,EAAuBO,EAAuB53C,IAC1CqyB,EAAK4lB,eAAiBN,IACtBE,EAAiBr2C,EAAQ81C,EAAiBD,IAE1CA,GAAwB,GAAK,eAAUC,EAAiBD,GAAsBa,cAC9ER,EAAcL,GAAwB71C,EAEtCk2C,EAAcz4C,KAAKuC,GAG3B,IAAI22C,GAAgB,EACpB,IAAKn4C,EAAI,EAAGA,EAAIs3C,EAAiBn5C,OAAQ6B,IAAK,CAC1C,IAAIo4C,EAAkBd,EAAiBt3C,GACnCo4C,EAAgBC,OAASN,EAAoB7sC,EAASktC,GAAmB,IACzE52C,EAAS2xC,GAAa9gB,EAAM+lB,EAAgBC,OAC5CR,EAAiBr2C,EAAQ42C,GACzBV,EAAcz4C,KAAKuC,GACf42C,EAAgBC,MAAMntC,UACtBitC,GAAgB,IAIxBA,IACA/B,GAAoB/jB,GACpBqlB,EAAgB,GAAyBrlB,EAAMqlB,IAEnDY,GAAcjmB,EAAMqlB,KAGjBa,GAAgB,SAASlmB,EAAM7wB,GACtC40C,GAAoB/jB,GACpBikB,GAAyBjkB,EAAM7wB,GAC/Bg1C,GAAwBnkB,EAAM7wB,GAC9Bg3C,GAAsBnmB,GACtBqkB,GAA2BrkB,EAAM7wB,IAE1Bi3C,GAAoB,SAASpmB,GACpCA,EAAKomB,qBAEF,SAASH,GAAcjmB,EAAMnnB,GAChCmnB,EAAKqmB,iBAAmBrmB,EAAKqiB,SAC7BriB,EAAKqiB,SAAWxpC,EAChButC,GAAkBpmB,GAClBA,EAAKsmB,wBAEF,IAAIC,GAAsB,SAASvmB,EAAMoR,EAAYvxB,EAAYwsB,GACpE,IAAI7O,EACAgpB,EAAgBxmB,EAAKymB,gBAAkB,CACvC9R,YAAa,CACT7oC,OAAQ,GAEZ4lC,YAAa,CACT5lC,OAAQ,GAEZugC,YAAaA,GAEjBxsB,EAAaA,GAAc,MAC3BA,EAAaA,EAAW5O,MAAM,KAAK,GACnC,IACIygC,YAAaA,GACb8U,EACApV,IAAeM,EAAYN,KAC3BM,EAAYN,IAAc,EAC1BM,EAAY5lC,UAEhB,IACI6oC,YAAaA,GACb6R,EACA3mC,IAAe80B,EAAY90B,KAC3B80B,EAAY90B,IAAc,EAC1B80B,EAAY7oC,eAEZ,IAAWugC,GAAeA,IAAgBma,EAAcna,cACpD,eAAUA,KACV,QAAU7O,EAAKgpB,EAAc/U,qBAAkB,IAAWjU,IAAUgpB,EAAc/U,cAAgB,IAC9F,eAAU+U,EAAcna,cACxBma,EAAc/U,cAAc7kC,KAAK45C,EAAcna,aAEnDma,EAAc/U,cAAc7kC,KAAKy/B,WAE9Bma,EAAcna,aAEzBrM,EAAKymB,eAAiBD,EACtBJ,GAAkBpmB,IAEX0mB,GAAqB,SAAS1mB,GACrC,IAoBIlN,EApBA6zB,EAAoB3mB,EAAK/D,OAAO,qBAChCuqB,EAAgBxmB,EAAKymB,eACrBG,EAAoB,CAAC,YAAa,SAAU,WAAY,WACxD5mB,EAAK6mB,kBAAoB7mB,EAAKC,kBAAoBumB,IAC9CG,IACA3mB,EAAKC,mBACL0mB,EAAkB,OAAArsB,EAAA,MAAO,CACrB8D,UAAW4B,EAAK5B,WACjBooB,IACHxmB,EAAKC,oBAETD,EAAKymB,oBAAiB,EAClB3zB,EAAU0zB,EAAc7R,YAAa7hB,GAAW8zB,EAAkBE,KAAKhmC,GAAQgS,EAAQhS,KACvFkf,EAAK+mB,0BAA4B,OAASP,QAAiB,IAAWA,OAAgB,EAASA,EAAc7R,YAAYnjC,OACzHwuB,EAAKgnB,SACLhnB,EAAK+mB,+BAA4B,GAEjC/mB,EAAKyV,eAAe7R,KAAK4iB,KAK1BS,GAA8B,SAASjnB,EAAM7wB,EAAQsU,EAAYyjC,GACxE,IAAIC,EAAmBD,GAAkB,EACzC,GAAIzjC,GAAc,EACT0jC,IACDh4C,EAAOi4C,cAAgBj4C,EAAOkV,eAE/B,CACH,IAAIgjC,EAAWrnB,EAAK/D,OAAO,gBACvB5X,EAAYlV,EAAOi4C,cACvB,GAAI,WAAaC,EAAU,CACvB,IAAIC,EAAwBtnB,EAAKqiB,SAASyE,KAAK7Y,GAAOA,IAAQ9+B,GAAU,eAAU8+B,EAAI9pB,YAClFmjC,IACAjjC,OAAY,GAGpBlV,EAAOkV,UAAYA,IAGhBkjC,GAAoB,SAASvnB,EAAMlN,GAC1C,IACI3nB,MAAOA,GACP2nB,GAEAjT,WAAYA,GACZiT,GAEA00B,UAAWA,GACX10B,GAEA20B,eAAgBA,GAChB30B,EACA40B,EAAiB,GAAGlvB,OAAOivB,EAAgB,KAAKjvB,OAAO3Y,GACtD6/B,GAA2B7/B,IAAemgB,EAAK2nB,+BAAiCD,IACjF1nB,EAAK2nB,6BAA+BD,EACpC1nB,EAAK5B,UAAUwpB,qBAAqBF,EAAgBv8C,EAAOq8C,GAC3DxnB,EAAK2nB,8BAA+B,IAGjCE,GAAmB,SAAS7nB,EAAM7wB,EAAQ0Q,EAAY1U,EAAO28C,GACpE,IAEIjvC,EACAu4B,EACA2W,EAJAC,EAAe,gBAAcnoC,GAC7BwsB,EAAcl9B,EAAOC,MAIzB,GAAI,IAAMuC,UAAU7F,OAChB,OAAOk8C,EAAa74C,EAAQ,CACxB84C,eAAe,IAGvB,IAAIT,EAAYQ,EAAa74C,EAAQ,CACjC84C,eAAe,IAEnB,IAAK,eAAaT,EAAWr8C,EAAO,CAC5B+8C,SAAU,IACV,CACA,eAAiBroC,GAAc,wBAA0BA,GACzDuxB,EAAa,WACb6V,GAA4BjnB,EAAM7wB,EAAQhE,EAAOq8C,IAEjDpW,EADO,cAAgBvxB,GAAc,cAAgBA,GAAc,uBAAyBA,EAC/E,UAEA,UAEjB,IAAIsoC,EAAe,gBAActoC,GACjCsoC,EAAah5C,EAAQhE,EAAO,CACxB88C,eAAe,IAEnB,IAAIR,EAAiBnF,GAAkBtiB,EAAM7wB,GACzCoxC,GAAqB1gC,KACrBqmC,GAAclmB,EAAM7wB,GACpBhE,EAAQ68C,EAAa74C,IAErB,SAAW0Q,GAAc,iBAAmBA,GAC5CmgB,EAAKooB,gBAEJ,eAAUZ,IAAe,eAAUr8C,IAAU,IAAM0U,EAAWnQ,QAAQ,YACvEo4C,GAAe,GAEdA,EAiBD1B,GAAkBpmB,IAhBbyf,GAAuB9D,SAAS97B,IAAe,iBAAmBA,IACnEhH,EAAUmnB,EAAK/D,OAAO,WACtB8rB,EAAgB/nB,EAAKqoB,gBAAgBZ,EAAgB5uC,GACjD,eAASkvC,KACTA,EAAgBlvC,EAAQwzB,GAAe,CACnCt8B,UAAWg4C,IAGfA,GAAiBrG,GAAqBqG,EAAe54C,IACrDg5C,EAAaJ,EAAe58C,EAAO,CAC/B88C,eAAe,KAI3B1B,GAAoBvmB,EAAMoR,EAAYvxB,EAAYwsB,IAItDob,GAAkBF,GAAkBvnB,EAAM,CACtCynB,eAAgBA,EAChB5nC,WAAYA,EACZ1U,MAAOA,EACPq8C,UAAWA,MAIhB,SAASpD,GAAiB//B,GAC7B,MAAO,QAAUA,GAAa,SAAWA,EAEtC,IAAIikC,GAAkB,SAAStoB,GAClC,IAAIlN,EAAUkN,EAAKuoB,0BACnBvoB,EAAKwoB,iBAAiB11B,IAEf21B,GAAsB,SAASvnC,EAAM/V,GAC5C,GAAKgC,KAAK4C,UAAV,CAGA,IAAI24C,EAAOv7C,KAAK4C,UAAUkB,MAAM,KAC5B03C,EAAWD,EAAK58C,OAAS,EACzBqB,KAAK41C,iBACL53C,EAAQgC,KAAK41C,eAAe53C,IAEhC,IAAK,IAAIwC,EAAI,EAAGA,EAAIg7C,EAAUh7C,IAAK,CAC/B,IAAImT,EAAO4nC,EAAK/6C,GAChBuT,EAAOA,EAAKJ,GAAQI,EAAKJ,IAAS,GAEtCI,EAAKwnC,EAAKC,IAAax9C,IAEhB,GAAiB,SAASy9C,EAAe/vC,EAASmwB,EAAU6f,GACnE,IAAIx5C,EAAS,GAab,OAZA25B,EAAWA,GAAY,EACvBnwB,EAAQmwB,IAAa,eAAKnwB,EAAQmwB,GAAW,CAAClE,EAAG31B,KACzCA,EAAO2U,YAAc+kC,GAAgB15C,EAAO5D,OAASw0C,KAChD5wC,EAAOyU,QAAWzU,EAAOi8B,QAK1B/7B,EAAOzC,KAAK8E,MAAMrC,EAAQu5C,EAAe/vC,EAASmwB,EAAW,EAAG75B,EAAOC,UAJlED,EAAOwwB,SAAWqJ,EAAW,IAC9B35B,EAAOzC,KAAKuC,MAOrBE,GAEAguC,GAAc,SAASrd,GAC9B,IAAIwd,EAAW,EACXyE,EAAmBjiB,EAAKkiB,uBAExBL,oBAAqBA,GACrBI,EAQJ,OAPAjiB,EAAKqiB,SAAShe,QAAQl1B,IAClB,IAAI25C,EAAUlH,GAAqBzyC,EAAOC,MAAOyyC,GAC7CkH,EAAmBD,EAAQr3C,OAAOtC,IAAWA,EAAO6P,SACpD7P,EAAO6P,UAAY+pC,EAAiBj9C,SACpC0xC,EAAWqH,KAAKpwB,IAAI+oB,EAAUsL,EAAQh9C,OAAS,MAGhD0xC,GAEAwL,GAAwB,CAAChpB,EAAMipB,KACtC,IAAIC,EAAuBlpB,EAAKqiB,SAAS5wC,OAAOtC,GAAUA,EAAO5D,OAAS09C,EAAc19C,MACxF,QAAS29C,EAAqBp9C,QAEvBq9C,GAAmB,SAASnpB,EAAM7wB,GACzC,IAAI2O,EAAakiB,EAAK/D,OAAO,cAC7B,OAAI9sB,EAAOwwB,UAAYqpB,GAAsBhpB,EAAM7wB,KAAYA,EAAOmU,cAC3DxF,EAAa,QAAU,OAE3B3O,EAAOmU,eAEP8lC,GAAuB,SAASvwC,EAASwwC,EAAe99C,EAAM8gC,GACrE,IAAIid,EACA9L,EAAWrwC,KAAKkwC,cAChBE,EAAU1kC,EAAQwzB,IAAgBxzB,EAAQwzB,GAAakR,QACvDgM,EAAsBF,EAAc53C,OAAOtC,GAAUA,EAAO5D,OAASA,GAczE,OAbAsN,EAAQwrB,QAAQ,CAACl1B,EAAQC,KACjBD,EAAO5D,OAASA,IAChB+9C,EAAoBl6C,EACpBmuC,EAAU1kC,EAAQzJ,EAAQ,GAAKyJ,EAAQzJ,EAAQ,GAAGmuC,QAAUC,KAGhED,EAAU,IACVgM,EAAsB,eAAIA,EAAqBC,GAAgB,OAAAlvB,EAAA,MAAO,GAAIkvB,EAAc,CACpFjM,QAASA,MAGjBgM,EAAoBr8C,QAAQwE,MAAM63C,EAAqB,eAAUD,GAAqB,CAACA,EAAmB,GAAK,CAACjd,EAAa,IAC7HxzB,EAAQ07B,OAAO7iC,MAAMmH,EAAS0wC,GACvBhM,GAAW,GAEXkM,GAAc,SAASrJ,GAC9B,IAAIzyC,EACJ,IAAKA,EAAI,EAAGyyC,EAAS,EAAGzyC,IACpByyC,GAAU,GAEd,OAAOzyC,GAEA+7C,GAAiB,SAAStJ,EAAQqJ,GACzC,IAAIE,EAAMvJ,EAASA,EAAO50C,WAAa,IACvC,MAAOm+C,EAAI79C,OAAS29C,EAChBE,EAAM,IAAInxB,OAAOmxB,GAErB,OAAOA,GAEAC,GAAe,CAAC5pB,EAAMnnB,EAASgxC,EAAgBC,KAatD,IAZA,IAAI36C,EACA46C,EACA16C,EAASwJ,EAAQlJ,QAAQ3D,IAAImD,GAAU,OAAAmrB,EAAA,MAAO,GAAInrB,IAClD66C,EAAiBhqB,EAAKiqB,kBACtBC,EAAwBL,EAAel6C,QAAQ3D,IAAImD,GAAU,OAAAmrB,EAAA,MAAO,CACpEjX,MAAO2mC,GACR76C,IACCg7C,EAAwBh7C,GAAU06C,EAAeljB,OAAO,CAACt3B,EAAQ45C,EAAe75C,KAChF,IAAIg7C,EAAaN,GAAgB36C,EAAO5D,OAASw0C,GAA4B,SAAW5wC,EAAO5D,KAC/F,OAAO09C,EAAc19C,OAAS6+C,GAAcnB,EAActpB,UAAYxwB,EAAOwwB,QAAUvwB,EAAQC,IAC/F,GACA8yC,EAAiB8G,GAAiBA,EAActpB,UAAYkqB,EAAeE,GAAoBpqB,QAC1FhyB,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAGhC,GAFAwB,EAAS0J,EAAQlL,GACjBo8C,EAAqB56C,IAAWA,EAAO5D,MAAQ4D,EAAOwwB,SAAWwqB,EAAsBh7C,IAAW,EAC9F46C,GAAsB,EACtB,GAAID,EACAz6C,EAAO1B,GAAK,OAAA2sB,EAAA,MAAO,CACfjX,MAAO2mC,GACRH,EAAeE,GAAqB56C,GACnCA,EAAO5D,OAASw0C,KAChBmK,EAAwBA,EAAsBz4C,OAAO0wC,QAEtD,CACH,IAAIpB,EAAgB,CAChBv8B,aAAcrV,EAAOqV,aACrBpV,MAAOD,EAAOC,MACd+7B,SAAUh8B,EAAOg8B,SACjBtpB,YAAa,IAAM1S,EAAOsU,WAC1BxB,gBAAiB,IAAM9S,EAAOsU,WAC9BA,WAAYtU,EAAOsU,YAEvBpU,EAAO1B,GAAK,OAAA2sB,EAAA,MAAO,GAAInrB,EAAQ06C,EAAeE,GAAqB56C,EAAO5D,OAASw0C,IAA6BgB,GAO5H,OAHIloC,EAAQ/M,QAAUg+C,GAAgBI,EAAsBp+C,SACxDuD,EAASA,EAAOmpB,OAAO0xB,IAEpB76C,GAEAg7C,GAAgB,CAACrqB,EAAM7wB,IAAW,eAAUA,EAAOkU,SAAWlU,EAAO5D,KAAO4D,EAAOkU,MAAQ2c,EAAKiqB,kBAChGK,GAAoCzxC,IAC3CA,EAAQwrB,QAAQl1B,IACR,eAAUA,EAAO2U,aACjB3U,EAAO2U,UAAYjL,EAAQ1J,EAAO2U,eAInCqiC,GAAwBnmB,IAC/BA,EAAKuqB,uBAAoB,GAElBC,GAAa,CAAC3xC,EAAS4xC,KAC9B,IACIt7C,EADAu7C,EAAuB,eAASD,IAAeA,EAAWE,OAAO,EAAGF,EAAW/6C,QAAQ,MAE3F,QAAI,IAAW+6C,EAcf,OAXIC,IACAD,EAAaA,EAAWE,OAAOD,EAAqB5+C,OAAS,IAE7D4+C,EACAv7C,EAAS0J,EAAQpH,OAAOtC,GAAU,GAAGqpB,OAAOrpB,EAAOu7C,MAA2BD,GAAY,GAE1F,CAAC,QAAS,OAAQ,YAAa,WAAW3D,KAAKjnC,IAC3C1Q,EAAS0J,EAAQpH,OAAOtC,GAAUA,EAAO0Q,KAAgB4qC,GAAY,KAC5Dt7C,IAGVA,GAEA,GAAc,CAAC0J,EAASwL,KAC/B,GAAI,QAAUA,GAAa,SAAWA,EAClC,OAAOxL,EAEX,IAAI+xC,EAAO,QAAUvmC,EAAY,GAAK,EAMtC,OALAxL,EAAQ4sB,KAAK,CAAColB,EAASC,KACnB,IAAIC,EAAWF,EAAQloC,SAAW,GAC9BqoC,EAAWF,EAAQnoC,SAAW,GAClC,OAAOioC,EAAOG,EAASE,cAAcD,KAElCnyC,GAEAqyC,GAAoB,SAASjqC,EAAM/V,GAC1C,IAAIg4C,EAAc9C,GAAA,KAAmB+K,MAAMlqC,GAC3C,GAAI,eAAUiiC,GAAc,CACxB,IAAIkI,EAAiBhL,GAAA,KAAmBl1C,OAAOg4C,EAAah4C,GACxDmgD,EAAkCjL,GAAA,KAAmBl1C,OAAOg4C,EAAa,WAC7E,GAAIkI,IAAmBnqC,GAAQoqC,IAAoCpqC,EAC/D,OAAOiiC,ICxuBZ,MAAM,WAA0B,GAAQlhB,WAC3C,0BACI,MAAO,CACHz2B,KAAM,SACNo0B,QAAS,SACT1gB,MAAO,OACP2B,SAAUi/B,GACVn+B,cAAc,EACdI,eAAe,EACfM,cAAc,EACdF,eAAe,EACfD,iBAAiB,EACjBD,aAAa,GAGrB,eAAe9I,GACX,IAAIoyC,EACA38B,EAAQ,GAeZ,OAdIzV,GAAcA,EAAWyV,QAAQ7iB,OAAS,IAC1Cw/C,EAAc,QAAcC,qBAAqBryC,EAAWkc,SAAStpB,OACrE6iB,EAAQ,SAAS68B,EAAkB78B,EAAO28B,GACtC,IAAK38B,IAAU28B,EACX,OAAO38B,EAEX,IAAK,IAAIhhB,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAI89C,EAAaD,EAAkB78B,EAAMhhB,GAAGghB,OAASA,EAAMhhB,GAAG+9C,eAAgBJ,EAAc,GAC5F,GAAIG,GAAcA,EAAW3/C,OACzB,OAAO2/C,GAPX,CAUNvyC,EAAWyV,QAAS28B,IAAgB,IAEnC38B,EAEX,kBACKxhB,KAAKw6C,8BAAgCjB,GAAmBv5C,MAE7D,KAAKw+C,GACD,IAAI9yC,EAAU1L,KAAK8uB,OAAO,WAC1B9uB,KAAK62C,gBAAkB72C,KAAK62C,iBAAmB,GAC/C72C,KAAKk1C,SAAWl1C,KAAKk1C,UAAY,GACjCl1C,KAAKy+C,wBAA0B/yC,EAC3B1L,KAAKy+C,uBACL3F,GAAc94C,KAAM0L,EAAU,GAAyB1L,KAAM0L,GAAW,IACxEksC,GAAe53C,OAEf84C,GAAc94C,KAAMA,KAAKs0C,kBAAoB,GAAyBt0C,KAAMA,KAAKs0C,mBAAqBt0C,KAAKk1C,UAE/GiG,GAAgBn7C,MACZA,KAAK0+C,mBACL1+C,KAAK2+C,gBAAgB3+C,KAAK4+C,aAAa,EAAMJ,GAE7CzF,GAAc/4C,MAElBA,KAAKi7C,gBAET,gBACI,MAAO,CAAC,kBAEZ,gBAAgBM,EAAM7vC,GAClB,IAAI1J,EACA6yC,EAAgB,GAcpB,OAbA0G,EAAKsD,QAAQ/L,GAAsB,CAACnb,EAAGuH,KACnC2V,EAAcp1C,KAAKq/C,SAAS5f,IACrB,KAEP2V,EAAcl2C,SAEVqD,EADA0J,EACSmpC,EAAcrb,OAAO,CAACx3B,EAAQC,IAAUD,GAAUA,EAAO0J,SAAW1J,EAAO0J,QAAQzJ,GAAQ,CAChGyJ,QAASA,IAGJkpC,GAAmB50C,KAAM60C,IAGnC7yC,EAEX,cAAcgsB,GACV,IAAI+wB,EACJ,OAAQ/wB,EAAKra,MACT,IAAK,0BACDqa,EAAKC,SAAU,EACf,MACJ,IAAK,aACGD,EAAKhwB,QAAUgwB,EAAKgxB,eAAkBh/C,KAAK8uB,OAAO,YAAgBrwB,MAAMC,QAAQsvB,EAAKhwB,QAAWS,MAAMC,QAAQsvB,EAAKgxB,iBACnHh/C,KAAKk1C,SAAW,IAEpB,MACJ,IAAK,UACD6J,EAA0B/+C,KAAKw6C,6BAC/BxsB,EAAKC,SAAU,EACVjuB,KAAKw6C,+BACFxsB,EAAKra,OAASqa,EAAKixB,UACnBj/C,KAAKs0C,kBAAoB,KACzBt0C,KAAKg4C,yBAA2B,KAChCh4C,KAAKk/C,SAELl/C,KAAKuoC,qBAAqBva,GAC1B+wB,GAA0B,IAG9BA,GACA/+C,KAAKm/C,qBAAqBnxB,GAE9B,MACJ,IAAK,uBACL,IAAK,kBACL,IAAK,sBACL,IAAK,wBACL,IAAK,eACL,IAAK,WACL,IAAK,aACL,IAAK,kCACL,IAAK,mBACL,IAAK,sBACL,IAAK,0BACL,IAAK,qBACL,IAAK,iBACL,IAAK,cACDA,EAAKC,SAAU,EACf,IAAI8pB,EAA0B,gBAAkB/pB,EAAKixB,UAAY,CAAC,SAClEj/C,KAAK65C,OAAO9B,GACZ,MACJ,IAAK,aACD/3C,KAAK65C,SACL,MACJ,QACIhS,MAAMC,cAAc9Z,IAGhC,qBAAqBA,GACjB,IAAIoxB,EAAoB,GACpBp9C,EAAShC,KAAKk7C,gBAAgBltB,EAAKixB,UACnCI,EAAmBrxB,EAAKixB,SAASJ,QAAQ/L,GAAsB,IAC/D9wC,IACIq9C,EACAD,EAAkBC,GAAoBrxB,EAAKhwB,MAE3CohD,EAAoBpxB,EAAKhwB,MAE7BgC,KAAKw6C,6BAA+BxsB,EAAKixB,SACzCj/C,KAAKorC,aAAappC,EAAOC,MAAOm9C,GAChCp/C,KAAKw6C,8BAA+B,GAG5C,qBAAqBxsB,GACjB,IACIiD,UAAWA,GACXjxB,KACA,UAAYguB,EAAKixB,SAASJ,QAAQ/L,GAAsB,KAAO7hB,EAAU6B,mBACzE7B,EAAUqE,gBAAiB,GAGnC,gBACI,MAAO,CAAC,YAAa,eAAgB,eAAgB,cAAe,eAAgB,gBAAiB,oBAAqB,yBAE9H,gBAAgBvpB,EAAYuzC,EAAed,GACvC,IAAIe,EAAqBxzC,GAAcA,EAAW+jC,WAElD,GADA9vC,KAAK4+C,YAAc7yC,GACd/L,KAAK0+C,oBAAsB,IAAM1+C,KAAKw/C,yBAA2BF,GAAiBt/C,KAAK8uB,OAAO,mCAAoC,CACnI,GAAIywB,EAAoB,CACpB,IAAKv/C,KAAKy+C,sBAAuB,CAC7B,IAAIgB,EAAwBnJ,GAA4Bt2C,KAAM+L,GAC1D0zC,EAAsB9gD,SACtBm6C,GAAc94C,KAAMy/C,GACpBz/C,KAAKw/C,wBAA0Bx/C,KAAKk1C,SAASv2C,OAC7Ci5C,GAAe53C,OAGvB,OAAOA,KAAK0/C,cAAc3zC,EAAYuzC,EAAed,GAEzDx+C,KAAK0+C,oBAAqB,EAC1B3F,GAAc/4C,WACX,GAAIu/C,IAAuBv/C,KAAK2/C,uBAAsB,IAAS3/C,KAAKm5C,sBAAsBptC,GAG7F,OAFAqtC,GAAoBp5C,KAAM,WAC1Bu5C,GAAmBv5C,OACZ,IAAK,QAAU6iC,SAASI,UAGvC,QACIjjC,KAAK4+C,YAAc,KACnB5+C,KAAK0+C,oBAAqB,EAC1B1+C,KAAKw/C,6BAA0B,EAC/Bx/C,KAAK65C,SAET,oBACI75C,KAAK4/C,qBAAkB,EACvB5/C,KAAK6/C,mBAAgB,EACrB7/C,KAAK8/C,eAAY,EACjB9G,GAAsBh5C,MAE1B,OAAO+3C,GACH/3C,KAAKs0C,kBAAoBt0C,KAAK+/C,eAC9B//C,KAAKg4C,yBAA2BD,GAA2B,KAC3D/3C,KAAKk/C,OACDnH,IACA/3C,KAAKg4C,yBAA2B,MAGxC,gBACI,QAASh4C,KAAKk1C,SAASv2C,UAAYqB,KAAK8uB,OAAO,WAEnD,sBACI,OAAO9uB,KAAK0+C,mBAEhB,kBAAkB18C,GACd,IAAIquB,EAAIub,EACJoU,IAAyBh+C,IAAWA,EAAO5D,OAAS4B,KAAK8uB,OAAO,yBAA2B,GAC3FmxB,EAAkB,QAAU5vB,EAAKrwB,KAAK8uB,OAAO,mBAAgB,IAAWuB,EAAKA,EAAK,GAClF6vB,EAAoB,QAAUtU,EAAK5rC,KAAK8uB,OAAO,qBAAkB,IAAW8c,EAAKA,EAAK,GAC1F,OAAO,OAAAze,EAAA,MAAO,CACVzY,YAAa1U,KAAK8uB,OAAO,wBACzB/Z,cAAe/U,KAAK8uB,OAAO,6BAA0B,EACrDha,gBAAiB9U,KAAK8uB,OAAO,yBAC7BpY,SAAU1W,KAAK8uB,OAAO,kBACtBhd,MAAO9R,KAAK8uB,OAAO,eACnB5Z,gBAAiB+qC,EAAgBx8B,cACjCD,gBAAiBy8B,EAAgBz8B,gBACjC7O,cAAeurC,EAAkBr7B,qBAAuBq7B,EAAkBruC,SAAWouC,EAAgBv8B,oBACtGs8B,GAEP,mBAAmBttC,GACf,IAAK,IAAIlS,EAAI,EAAGA,EAAIR,KAAKk1C,SAASv2C,OAAQ6B,IACtC,GAAIR,KAAKk1C,SAAS10C,GAAGkS,GACjB,OAAO,EAInB,sBAAsBytC,GAClB,IAAIz0C,EAAU1L,KAAKk1C,SACnB,IAAKxpC,EAAQ/M,OACT,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAChC,IAAKkL,EAAQlL,GAAGoC,WAAa8I,EAAQlL,GAAG4U,qBAAuB1J,EAAQlL,GAAG4/C,8BAGrE10C,EAAQlL,GAAGsB,UAAYq+C,GAAoBz0C,EAAQlL,GAAGk1C,uBAAoB,IAAWhqC,EAAQlL,GAAGs1C,qBACjG,OAAO,EAGf,OAAO,EAEX,aACI,OAAO91C,KAAKk1C,SAEhB,oBACI,OAAOl1C,KAAKiyB,aAAa0nB,KAAK33C,GAAUA,EAAOyU,QAEnD,kBACI,IAAIvU,EAAS,GAMb,OALA,eAAKlC,KAAKk1C,UAAU,WACZ,eAAUl1C,KAAKsW,cACfpU,EAAOlC,KAAKsW,YAActW,SAG3BkC,EAEX,8BACI,OAAO,EAEX,uBAAuB25B,GAGnB,OAFA77B,KAAK4/C,gBAAkB5/C,KAAK4/C,iBAAmB5/C,KAAKqgD,6BACpDxkB,EAAW,eAAUA,GAAYA,EAAW77B,KAAK4/C,gBAAgBjhD,OAAS,EACnEqB,KAAK4/C,gBAAgB/jB,IAAa,GAE7C,kBAAkBA,EAAUykB,GACxB,OAAKtgD,KAAKugD,8BAGHvgD,KAAKwgD,uBAAuBj8C,MAAMvE,KAAMwE,WAFpC,GAIf,gBAAgBq3B,GAGZ,OAFA77B,KAAK6/C,cAAgB7/C,KAAK6/C,eAAiB7/C,KAAKygD,uBAChD5kB,EAAW,eAAUA,GAAYA,EAAW77B,KAAK6/C,cAAclhD,OAAS,EACjEqB,KAAK6/C,cAAchkB,IAAa,GAE3C,sBACI,OAAO77B,KAAKiyB,aAAa3tB,OAAOymB,IAASA,EAAKnoB,WAAamoB,EAAKpX,QAAUoX,EAAKtW,gBAAkBsW,EAAKnW,uBAAuB/V,IAAIksB,IAC7H,IAAIzN,EAAQ,OAAA6P,EAAA,OAAO,EAAM,GAAIpC,GAK7B,OAJK,eAAUzN,EAAM1a,aACjB0a,EAAM1a,UAAY0a,EAAM3J,MAE5B2J,EAAMvH,iBAAmBgV,EAAKhV,mBAAqBgV,EAAK0oB,wBAA0Bn2B,EAAMvH,iBAAmB,KACpGuH,IAGf,uBACI,OAAO,EAEX,uBACI,IAOIojC,EACAC,EACAC,EATA1+C,EAAS,GACTmuC,EAAWrwC,KAAKkwC,cAChB2M,EAAiB78C,KAAK88C,kBACtB+D,EAAoB,CACpBruB,QAAS,eAETsuB,EAAqB,EAIzB,GAAIjE,EACA,IAAK,IAAIr8C,EAAI,EAAGA,GAAK6vC,EAAU7vC,IAAK,CAChCkgD,EAAsB,EACtBE,EAAoB,KACpBD,EAAyB,KAEzB,IADA,IAAI5hB,EAAiB/+B,KAAKi/B,kBAAkBz+B,GAAG,GACtCogC,EAAI,EAAGA,EAAI7B,EAAepgC,OAAQiiC,IAAK,CAC5C,IAAImgB,EAAahiB,EAAe6B,EAAI,GAChC5+B,EAAS+8B,EAAe6B,GACvB5+B,EAAOkU,MAYD6qC,GAAcA,EAAW7qC,OAAS8lC,GAAiBh8C,KAAM+gD,KAAgB/E,GAAiBh8C,KAAMgC,GAClG,eAAU2+C,KACXA,EAAyB/f,GAG7BggB,EAAoB5+C,EAAOmU,eAhBvB,IAAM3V,IACFwB,EAAOyU,QAAUzU,EAAOi8B,QACxB6iB,GAAsB9+C,EAAOi8B,QAE7B6iB,KAGRJ,IACK,eAAUC,KACXA,EAAyB/f,IAUrC,GAAI,IAAMpgC,IAAM,IAAMkgD,GAAuBA,GAAuB3hB,EAAepgC,QAC/E,MAAO,GAEN,eAAUgiD,KACXA,EAAyB,UAAYC,EAAoB,EAAI7hB,EAAepgC,QAEhFuD,EAAO1B,GAAKu+B,EAAev8B,MAAM,GAC5Bq+C,EAAkB5iB,UACnB4iB,EAAkB5iB,QAAU6iB,GAEhC5+C,EAAO1B,GAAG4mC,OAAOuZ,EAAwBD,EAAqBG,GAGtE,OAAO3+C,EAAOrD,IAAI6M,GAAWA,EAAQ7M,IAAImD,IACrC,IAAIg/C,EAAY,eAAS,GAAIh/C,GAI7B,OAHIg/C,EAAUhjB,WACVgjB,EAAUhjB,UAAY,UAEnBgjB,KAGf,kBACI,IAAInE,EAAiB78C,KAAK8uB,OAAO,wBAOjC,OANC+tB,GAAkB,eAAK78C,KAAKk1C,SAAU,CAACvd,EAAG31B,KACvC,GAAIA,EAAOkU,MAEP,OADA2mC,GAAiB,GACV,IAGRA,EAEX,wBACI,OAAO78C,KAAKs3C,kBAEhB,mBACI,IACI+E,EADAH,EAAgBl8C,KAAKihD,wBAErBC,EAAmBhF,EAAc53C,OAAOtC,GAAU,IAAMA,EAAOsU,YAAY,GAC3E6qC,EAA0BD,GAAoBA,EAAiBhrC,MAC/D2mC,EAAiB78C,KAAK88C,kBACtBnsC,EAAa3Q,KAAK8uB,OAAO,cAe7B,OAdIotB,EAAcv9C,SACd09C,EAAer8C,KAAKorC,aAAa,mBAErC8Q,EAAgB,eAAIA,EAAel6C,GAAU,OAAAmrB,EAAA,MAAO,GAAInrB,EAAQ,CAC5Dk8B,aAAc,KACdxnB,SAAU,KACVjB,aAAe,eAAUzT,EAAOsU,YAAoC,KAAtBtU,EAAOyT,aACrDc,mBAAoB,KACpBL,SAAQ,eAAUlU,EAAOsU,cAAgB6qC,IAA0BtE,EACnE1mC,cAAexF,EAAa,QAAU,QACvC0rC,EAAc,CACbp6C,MAAOD,EAAOC,MACd7D,KAAM4D,EAAO5D,MAAQw0C,MAElBsJ,EAEX,sBACI,IAAKl8C,KAAKo9C,kBAAmB,CACzB,IAAI1xC,EAAU1L,KAAKk1C,SACfP,EAAwB,GACxBD,EAAsB,GACtBO,GAAU,EACdvpC,EAAQwrB,QAAQl1B,IACZ,IACI2U,UAAWA,GACX3U,EACAo/C,EAAc,eAASzqC,GAAaA,EAAU1U,MAAQ0U,EACtD2b,EAAS5mB,EAAQ01C,GACjBp/C,EAAOwyC,aACPS,GAAU,GAEVjzC,EAAOi8B,UACPj8B,EAAOi8B,aAAU,GAEjBj8B,EAAOouC,UACPpuC,EAAOouC,aAAU,GAEjB9d,EACAoiB,EAAoB1yC,EAAOC,OAASqwB,EAEpC8uB,GAAe,EAEnBzM,EAAsByM,GAAezM,EAAsByM,IAAgB,GAC3EzM,EAAsByM,GAAa3hD,KAAKuC,KAE5ChC,KAAKo9C,kBAAoB,CACrBnI,QAASA,EACTN,sBAAuBA,EACvBD,oBAAqBA,GAG7B,OAAO10C,KAAKo9C,kBAEhB,iBAAiBp7C,GACb,OAAOA,EAAO6P,SAAW7R,KAAKqhD,sBAAsBr/C,EAAOC,OAE/D,sBAAsBD,GAClB,OAAO,eAAUA,EAAOsU,cAAgBtU,EAAO+U,gBAEnD,wBACI,IAAIrL,EAAU1L,KAAKk1C,SACnB,OAAOxpC,EAAQiuC,KAAK33C,IAChB,IAAIk0B,EAAYl2B,KAAKshD,iBAAiBt/C,GAClCu/C,EAAiBvhD,KAAKwhD,sBAAsBx/C,GAC5Cy/C,IAAcz/C,EAAOwwB,QACzB,OAAO0D,IAAcqrB,IAAmBE,IAGhD,6BACI,IAAI3M,EAAmB90C,KAAK+0C,sBACxBrpC,EAAU+wC,GAAaz8C,KAAMA,KAAKk1C,SAAUl1C,KAAK62C,iBAAiB,GACtExB,GAAmBr1C,KAAM0L,EAASopC,GAClC,IAAI4M,EAAiB1hD,KAAK2hD,mBAAmBj2C,GACzCqzB,EAAiB/+B,KAAK4hD,8BAA8BF,GACpDG,GAA0B7hD,KAAK8hD,wBAMnC,OALID,GAA0B7hD,KAAKk1C,SAASv2C,QACxCogC,EAAeA,EAAepgC,OAAS,GAAGc,KAAK,CAC3C+yB,QAAS,UAGVuM,EAEX,mBAAmBrzB,GAOf,IANA,IAAIiF,EAAa3Q,KAAK8uB,OAAO,cACzBuhB,EAAWrwC,KAAKkwC,cAChB6R,EAAoBzF,GAAY5wC,EAAQ/M,QACxCm2C,EAAmB90C,KAAK+0C,sBACxBiN,EAAyB,GACzBC,EAAyB,GACpBzhD,EAAI,EAAGA,EAAI6vC,EAAU7vC,GAAK,EAC/ByhD,EAAuBzhD,GAAK,CAAC,IAC7BwhD,EAAuBxhD,GAAK,CAAC,GAAI,GAAI,IAwCzC,OAtCAkL,EAAQwrB,QAAQl1B,IACZ,IAAIquB,EAAIub,EAAIsW,EAAIC,EAIZT,GAFArqC,aAAcA,GACdrV,EAEAo1C,EAAoB3C,GAAqBzyC,EAAOC,MAAO6yC,EAAiBJ,qBACxExe,EAAYl2B,KAAKshD,iBAAiBt/C,GAClCu/C,EAAiBvhD,KAAKwhD,sBAAsBx/C,GAChD,GAAIk0B,IAAcqrB,EAAgB,CAC9B,IAAI1lB,EAAWub,EAAkBz4C,OACjC,GAAI0Y,EAAe,EACfA,GAAgBA,EAChBqqC,EAAiBO,EAAuBpmB,QAIxC,GAFA75B,EAAOkU,MAAQ,QAAU01B,EAAK,QAAUvb,EAAK+mB,EAAkB,UAAO,IAAW/mB,OAAK,EAASA,EAAGna,aAAU,IAAW01B,EAAKA,EAAK5pC,EAAOkU,MACxIlU,EAAOmU,cAAgB,QAAUgsC,EAAK,QAAUD,EAAK9K,EAAkB,UAAO,IAAW8K,OAAK,EAASA,EAAG/rC,qBAAkB,IAAWgsC,EAAKA,EAAKngD,EAAOmU,cACpJnU,EAAOkU,MAAO,CACd,IAAIksC,IAA2BpgD,EAAOwwB,UAAYqpB,GAAsB77C,KAAMgC,GAC1EqgD,EAAe,UAAYrgD,EAAOmU,cAClCxF,IAAeyxC,IACfC,GAAgBA,GAEpBX,EAAiBW,EAAeL,EAAuBnmB,GAAU,GAAKmmB,EAAuBnmB,GAAU,QAEvG6lB,EAAiBM,EAAuBnmB,GAAU,GAG1D,GAAIub,EAAkBz4C,OAAQ,CAC1B0Y,EAAeklC,GAAellC,EAAc0qC,GAC5C,IAAK,IAAIO,EAAKlL,EAAkBz4C,OAAS,EAAG2jD,GAAM,EAAGA,GAAM,EACvDjrC,EAAeklC,GAAenF,EAAkBkL,GAAIjrC,aAAc0qC,GAAqB1qC,EAG/FqqC,EAAerqC,GAAgBqqC,EAAerqC,IAAiB,GAC/DqqC,EAAerqC,GAAc5X,KAAKuC,MAGnC,CACHggD,uBAAwBA,EACxBC,uBAAwBA,GAGhC,8BAA8B9qB,GA8B1B,IA7BA,IAAIorB,EAAQviD,MAERgiD,uBAAwBA,EACxBC,uBAAwBA,GACxB9qB,EACAj1B,EAAS,GACTmuC,EAAWrwC,KAAKkwC,cAChBgM,EAAgBO,GAAaz8C,KAAMA,KAAKwiD,mBAAoBxiD,KAAKk1C,UACjEuN,EAAsB,EACtBC,EAAuB,EACvBC,EAAQ,SAAS9mB,GACjB35B,EAAOzC,KAAK,IACZ,gBAAUwiD,EAAuBpmB,GAAW,CAAClE,EAAGjsB,KAC5CxJ,EAAO25B,GAAU97B,QAAQwE,MAAMrC,EAAO25B,GAAWnwB,KAErD,IAAIk3C,EAA2B1gD,EAAO25B,GAAUl9B,OAC5CkkD,EAA4Bb,EAAuBnmB,GACvDgnB,EAA0B3rB,QAAQ4rB,IAC9B,gBAAUA,EAAiB,CAACnrB,EAAGorB,KAC3B7gD,EAAO25B,GAAUp8B,KAAK8E,MAAMrC,EAAO25B,GAAWknB,OAGlDL,GAAwB7mB,IACxB6mB,GAAwBzG,GAAqB9iB,KAAKopB,EAAOrgD,EAAO25B,GAAWqgB,EAAerJ,GAA4B+P,IAEtHH,GAAuB5mB,IACvB4mB,GAAuBxG,GAAqB9iB,KAAKopB,EAAOrgD,EAAO25B,GAAWqgB,EAAetJ,GAA2BgQ,KAGnH/mB,EAAW,EAAGA,EAAWwU,EAAUxU,GAAY,EACpD8mB,EAAM9mB,GAGV,OADA35B,EAAOzC,KAAK,GAAeyC,IACpBA,EAEX,oBAAoBwJ,EAASylC,GACzB,IAEI6R,EAFAnwB,EAAO7yB,KACPkC,EAAS,GAuBb,OArBAwJ,EAAUA,GAAWmnB,EAAKqiB,SAC1B,eAAKxpC,EAAS,CAACisB,EAAG31B,KACd,GAAIA,EAAO2U,YAAcw6B,EAGzB,OAAInvC,EAAOyU,QAIHusC,EAHChhD,EAAO6P,QAGcghB,EAAKowB,oBAAoBpwB,EAAKue,wBAAwBpvC,EAAOC,OAAQD,EAAOC,OAF5E4wB,EAAKue,wBAAwBpvC,EAAOC,YAI1D+gD,EAAoBrkD,SACpBuD,EAAOzC,KAAKuC,GACZE,EAASA,EAAOmpB,OAAO23B,WAI1BhhD,EAAO6P,SACR3P,EAAOzC,KAAKuC,MAGbE,EAEX,kBAAkBghD,GACd,IAAIx3C,EAAUw3C,EAAgBljD,KAAKiyB,aAAejyB,KAAKijD,sBACnDE,EAAuBz3C,EAAQpH,OAAOtC,GAAUA,EAAO8U,qBACvDI,EAAYlX,KAAK8uB,OAAO,2BAC5B,OAAO,GAAYq0B,EAAsBjsC,GAE7C,gBAAgBksC,EAAkBC,EAAgBC,EAAgBC,GAC9D,IAAIrkB,EAAcmY,GAA6Br3C,KAAMojD,EAAkBE,GACnEE,EAAexjD,KAAKk1C,SAAShW,GACjC,SAAIskB,KAAiBA,EAAa1uC,iBAAmB0uC,EAAa7uC,eAAiB6uC,EAAa3uC,gBACxFyuC,IAAmBC,EACfD,IAAmB/P,KAGvB6P,EAAmB,eAASA,GAAoBA,EAAiBlkB,YAAckkB,EAC/EC,EAAiB,eAASA,GAAkBA,EAAenkB,YAAcmkB,EAClED,IAAqBC,GAAkBD,EAAmB,IAAMC,GAEvEC,IAAmBhQ,IAAkBiQ,IAAmBhQ,IAA2BgQ,IAAmBjQ,GAC/FkQ,GAAgBA,EAAa7uC,cAEpC2uC,IAAmB/P,IAA2BgQ,IAAmBhQ,IAC1DiQ,GAAgBA,EAAa3uC,aAMhD,WAAWuuC,EAAkBC,EAAgBC,EAAgBC,GACzD,IACIxJ,EAGA0J,EAJA99B,EAAU,GAEV+9B,EAAYrM,GAA6Br3C,KAAMojD,EAAkBE,GACjEK,EAAUtM,GAA6Br3C,KAAMqjD,EAAgBE,GAEjE,GAAIG,GAAa,EAAG,CAChB,IAAI1hD,EAAShC,KAAKk1C,SAASwO,GAe3B,GAdAL,EAAiB,eAASA,GAAkBA,EAAenkB,YAAcmkB,EACzEI,EAAmBE,GAAW,EAAI3jD,KAAKk1C,SAASyO,GAASrtC,YAAc,EACnE,eAAUtU,EAAOsU,aAAegtC,IAAmBhQ,KAC/CmQ,EAAmBzhD,EAAOsU,YAC1BmtC,IAEAF,IAAmBjQ,GACnB3tB,EAAQrP,gBAAa,GAErByjC,EAAiB/3C,EAAOsU,kBACjBtU,EAAOsU,WACdwgC,GAAyB92C,QAG7BujD,IAAmBjQ,GACnB3tB,EAAQrP,WAAakhC,GAAkBx3C,KAAMgC,EAAQyhD,GACrDzhD,EAAOsU,WAAayjC,OACjB,GAAIsJ,GAAkB,EAAG,CAC5B,IAAIO,EAAe5jD,KAAKk1C,SAASyO,GAC5BC,GAAgB5hD,EAAO2U,YAAcitC,EAAajtC,UAE5CumC,GAAcl9C,KAAMgC,GAAUk7C,GAAcl9C,KAAM4jD,GACzDj+B,EAAQtO,aAAes7B,GAEvBhtB,EAAQtO,aAAeusC,EAAavsC,aAJpCsO,EAAQtO,aAAes7B,GAO/B,IAAIzc,EAAYqtB,IAAmBhQ,GAC/BvxC,EAAO6P,UAAYqkB,IACnBvQ,EAAQ9T,QAAUqkB,GAEtBl2B,KAAKorC,aAAappC,EAAOC,MAAO0jB,IAGxC,gBAAgBuZ,EAAahoB,GACzB,IAAIyO,EAAU,GACVgsB,EAAiB3xC,KAAK8uB,OAAO,WAC7B+0B,EAAclS,GAAkBA,EAAet5B,KAC/CyrC,EAAmB,WAAaD,IAAgB3sC,EAChDjC,EAAe,WAAa4uC,GAAe,aAAeA,EAC1D7hD,EAAShC,KAAKk1C,SAAShW,GACvBjqB,GAAgBjT,GAAUA,EAAOiT,eAC7B6uC,IAAqB,eAAU9hD,EAAOsU,aACtC,eAAKtW,KAAKk1C,UAAU,SAAUjzC,GACtBA,IAAUi9B,GAAel/B,KAAKkX,YACzB,eAAUlX,KAAKsW,oBACTtW,KAAKkX,iBAETlX,KAAKgX,cAIpBigC,GAAiB//B,GACblV,EAAOkV,YAAcA,IACrByO,EAAQzO,UAAYA,GAEjB,SAAWA,EACdlV,EAAOkV,YACPyO,EAAQ3O,eAAY,EACpB2O,EAAQzO,eAAY,GAGtB,SAASlV,GACP,GAAI,SAAWkV,EAAW,CACtB,KAAM,cAAelV,MAAU,cAAeA,GAC1C,OAAO,EAEX2jB,EAAQzO,eAAY,EACpByO,EAAQ3O,eAAY,OACb,eAAUhV,EAAOsU,aAAe,eAAUtU,EAAOgV,WACxD2O,EAAQzO,UAAY,SAAWlV,EAAOkV,UAAY,MAAQ,OAE1DyO,EAAQzO,UAAY,MAV1B,CAaAlV,IAGVhC,KAAKorC,aAAappC,EAAOC,MAAO0jB,GAEpC,4BAA4Bo+B,GACxB,IAAIC,EAAc,GACd1rB,EAAO,GAmBX,OAlBA,eAAKt4B,KAAKk1C,UAAU,YACXl1C,KAAK4C,WAAa5C,KAAK2C,UAAY3C,KAAKoV,qBAAuB,eAAUpV,KAAKgX,aAAe,eAAUhX,KAAKsW,cAC7G0tC,EAAYhkD,KAAKgX,WAAahX,SAGtC,eAAKgkD,GAAa,WACd,IAAI9sC,EAAYlX,MAAQA,KAAKkX,UAC7B,GAAI+/B,GAAiB//B,GAAY,CAC7B,IAAI+sC,EAAW,CACXthD,SAAU3C,KAAKuV,oBAAsBvV,KAAK6C,cAAgB7C,KAAK8C,uBAAyBihD,GAAoB/jD,KAAK2C,UAAY3C,KAAK4C,WAAa5C,KAAKoV,mBACpJ8uC,KAAM,SAAWlkD,KAAKkX,WAEtBlX,KAAKiX,gBACLgtC,EAASE,QAAUnkD,KAAKiX,cAAcid,KAAKl0B,OAE/Cs4B,EAAK74B,KAAKwkD,OAGX3rB,EAAK35B,OAAS,EAAI25B,EAAO,KAEpC,6BAA6ByrB,GACzB,IAAI97B,EAAQ,GAeZ,OAdA,eAAKjoB,KAAKs3C,mBAAmB,WACzB,IAAI30C,EAAW3C,KAAKsV,qBAAuBtV,KAAK6C,cAAgB7C,KAAK8C,uBAAyBihD,GAAoB/jD,KAAK2C,UAAY3C,KAAK4C,WAAa5C,KAAKoV,mBAC1J,GAAIzS,EAAU,CACV,IAAI2nB,EAAY,CACZ3nB,SAAUA,EACVuhD,KAAM,SAAWlkD,KAAKkX,UACtBqwB,aAAcvnC,KAAKkV,iBAEnBlV,KAAKiX,gBACLqT,EAAU65B,QAAUnkD,KAAKiX,cAAcid,KAAKl0B,OAEhDioB,EAAMxoB,KAAK6qB,OAGZrC,EAAMtpB,OAAS,EAAIspB,EAAQ,KAEtC,QAAQm8B,GACJ,IAAIC,EAAY,GAchB,OAbA,eAAKrkD,KAAKk1C,UAAU,WAChB,IACI7wC,OAAQA,GACRrE,KACJ,GAAIqE,IAAWrE,KAAK8C,sBAAuB,CACvC,GAAIshD,GAAwB//C,EAAOigD,SAC/B,OAEAjgD,EAAOgjC,QACPgd,EAAU5kD,KAAK4E,EAAOgjC,cAI3B,OAAK9iC,MAAM,OAAG8/C,GAAW7tB,KAAKyiB,GAAkB/kB,KAAK,KAAMl0B,OAEtE,qBAAqBgC,EAAQk9B,GACzBl9B,EAAOW,SAAWX,EAAOW,UAAY,SAASoR,GAC1C,OAAO/R,EAAOoT,mBAAmBrB,IAEjC/T,KAAK45C,2BAA6B55C,KAAKk5C,kBACvCl3C,EAAOW,SAASu8B,YAAcA,EAC9Bl9B,EAAOW,SAAS4hD,iBAAmBvkD,KAAKk5C,iBAAiBha,GAAav8B,SAAS4hD,mBAE/EviD,EAAOW,SAASu8B,YAAcA,EAC9Bl9B,EAAOW,SAAS4hD,iBAAmBviD,EAAOW,UAE9C,eAAK,CAAC,qBAAsB,sBAAuB,yBAA0B,CAACg1B,EAAG6sB,KAC7E,IAAIC,EAAoBziD,EAAOwiD,GAC/B,GAAI,eAAWC,GACX,GAAKA,EAAkBF,iBAWnBviD,EAAOwiD,GAAuBE,QAAQ1iD,OAASA,MAXV,CACrC,IAAI0iD,EAAU,CACV1iD,OAAQA,GAEZA,EAAOwiD,GAAyB,SAASzwC,GACrC,OAAO0wC,EAAkBtrB,KAAKurB,EAAQ1iD,OAAQ+R,IAElD/R,EAAOwiD,GAAuBD,iBAAmBE,EACjDziD,EAAOwiD,GAAuBtlB,YAAcA,EAC5Cl9B,EAAOwiD,GAAuBE,QAAUA,KAMhD,eAAS1iD,EAAOc,yBAChBd,EAAOa,aAAeb,EAAOc,sBAC7Bd,EAAOc,sBAAwB,gBAAcd,EAAOa,eAEpDb,EAAOc,wBACPd,EAAO2iD,gBAAkB3iD,EAAO2iD,iBAAmB,IAEvDlP,GAAkBzzC,EAAQA,EAAOF,UACjC,IACIuC,OAAQA,GACRrC,EACAqC,GACAoxC,GAAkBpxC,EAAQA,EAAOvC,UAErC,IAAIA,EAAWuC,EAASA,EAAOvC,SAAWE,EAAOF,SAC7CA,IACAE,EAAOsS,UAAYtS,EAAOsS,WAAa2hC,GAAuBn0C,EAAU9B,KAAK8uB,OAAO,eACpF9sB,EAAOjE,OAASiE,EAAOjE,QAAU,QAAc6mD,oBAAoB9iD,GACnEE,EAAO0T,cAAgB1T,EAAO0T,eAAiB2gC,GAA2Bv0C,GAC1EE,EAAOyxC,wBAA0BzxC,EAAOyxC,0BAA4BpvC,GAAU2uC,GAAoBlxC,IAAa,GAC1G,eAAUE,EAAO+T,mBAClBy9B,GAAmCxxC,GAEvCA,EAAO6iD,uBAAyB7iD,EAAO+T,kBAAoB/T,EAAO+T,iBAAiB,IAAM,IACzF/T,EAAO6U,iBAAmB,eAAU7U,EAAO6U,kBAAoB7U,EAAO6U,iBAAmB,YAAc/U,IAAaE,EAAOyT,eAAiBzT,EAAOqC,QAG3J,sBAAsB0H,GAClB,IAAI8mB,EAAO7yB,KACPgM,EAA0B6mB,EAAK/D,OAAO,2BACtC0nB,EAAa3jB,EAAK4jB,eAAe1qC,GACjC+4C,GAA2B,EA2D/B,OA1DA,eAAKjyB,EAAKqiB,SAAU,CAACjzC,EAAOD,KACxB,IAAIxB,EACAxC,EACA8D,EACAijD,EACAC,GAEA3gD,OAAQA,GACRrC,EAOJ,GANI,QAAcH,WAAWG,EAAOF,gBAAa,IAAWE,EAAO8zC,sBAC/D9zC,EAAO8zC,oBAAsB9pC,GAE7B3H,GAAU,QAAcxC,WAAWwC,EAAOvC,gBAAa,IAAWE,EAAO8zC,sBACzEzxC,EAAOyxC,oBAAsB9pC,GAE7BhK,EAAOoT,oBAAsBohC,EAAW73C,OAAQ,CAChD,IAAKqD,EAAOF,UAAYuC,IAAWA,EAAOvC,SAAU,CAChD,IAAKtB,EAAI,EAAGA,EAAIg2C,EAAW73C,OAAQ6B,IAC/BxC,EAAQgE,EAAOoT,mBAAmBohC,EAAWh2C,IACxCwB,EAAOF,WACRkjD,EAAgB1P,GAAiBt3C,GACjC8D,EAAWA,GAAYkjD,EACnBljD,GAAYkjD,GAAiBljD,IAAakjD,IAC1CljD,EAAW,WAGfuC,IAAWA,EAAOvC,WAClBkjD,EAAgB1P,GAAiB,QAAc2P,gBAAgBjjD,EAAQhE,EAAOw4C,EAAWh2C,KACzFukD,EAAiBA,GAAkBC,EAC/BD,GAAkBC,GAAiBD,IAAmBC,IACtDD,EAAiB,YAIzBjjD,GAAYijD,KACRjjD,IACAE,EAAOF,SAAWA,GAElBuC,GAAU0gD,IACV1gD,EAAOvC,SAAWijD,GAEtBD,GAA2B,GAGnC,QAAI,IAAW9iD,EAAO8zC,qBAAuBzxC,QAAU,IAAWA,EAAOyxC,oBACrE,IAAKt1C,EAAI,EAAGA,EAAIg2C,EAAW73C,OAAQ6B,IAC/BxC,EAAQgE,EAAOoT,mBAAmBohC,EAAWh2C,IAAI,QAC7C,IAAWwB,EAAO8zC,sBAClB9zC,EAAO8zC,oBAAsBP,GAAuBvzC,EAAOF,SAAU9D,IAErEqG,QAAU,IAAWA,EAAOyxC,sBAC5BzxC,EAAOyxC,oBAAsBP,GAAuBlxC,EAAOvC,SAAUuC,EAAO+Q,mBAAmBpX,GAAO,KAKtH60B,EAAKqyB,qBAAqBljD,EAAQC,KAE/B6iD,EAEX,kBAAkBp5C,GACd,IAAIE,EAAmB5L,KAAK8uB,OAAO,oBACnC,GAAIljB,EAAkB,CAClB,IAAIu5C,EAAez5C,EAAQiuC,KAAK33C,GAAU,eAASA,EAAO2U,YACtDwuC,GACApM,GAAc/4C,MAElB4L,EAAiBF,GACjBotC,GAAc94C,KAAM,GAAyBA,KAAM0L,KAG3D,cAAcK,EAAYuzC,EAAed,GAIrC,GAHKc,GACDt/C,KAAKolD,sBAAsBr5C,IAE1BA,GAAcA,EAAW+jC,WAAY,CACtC,IAAIuV,EAAiBt5C,EAAaA,EAAWusB,QAAU,GAAKt4B,KAAKslD,8BAC7DC,EAAkBx5C,EAAaA,EAAWkc,SAAW,GAAKjoB,KAAKwlD,+BAC/DC,EAAmB,OAAS15C,QAAc,IAAWA,OAAa,EAASA,EAAW25C,kBAAkBphD,OACvGk6C,GACDx+C,KAAK2lD,kBAAkB3lD,KAAKk1C,UAEhC6D,GAAc/4C,MACd,IAAI0L,EAAU1L,KAAKk1C,SACnB,OAAO,eAAKl1C,KAAK4lD,SAAQ,IAAO1iB,OAAO,KAC/BljC,KAAKk1C,WAAaxpC,IAGtB1L,KAAK6lD,eAAe95C,EAAY,CAC5BuF,QAAS+zC,EACTt4C,SAAUw4C,EACV/9B,UAAWi+B,IAEflM,GAAmBv5C,UAI/B,eAAe+L,EAAYykB,GACnBzkB,IACA/L,KAAKm5C,sBAAsBptC,GAC3B/L,KAAK0+C,oBAAqB,GAEzB,QAAcoH,oBAAoBt1B,EAAWlf,QAAStR,KAAKslD,gCAC5DlM,GAAoBp5C,KAAM,WAEzB,QAAc8lD,oBAAoBt1B,EAAWzjB,SAAU/M,KAAKwlD,iCAC7DpM,GAAoBp5C,KAAM,YAE9B,IAAI+lD,EAAiB/lD,KAAKgwB,cAAc,QACpC+1B,IAAmB,QAAcC,sBAAsBx1B,EAAWhJ,UAAWu+B,EAAeE,sBAC5F7M,GAAoBp5C,KAAM,aAE9Bo5C,GAAoBp5C,KAAM,WAE9B,sBAAsB+L,EAAYm6C,GAC9B,IACIb,EACAc,EAFAtzB,EAAO7yB,KAGPomD,EAAkC,SAAS16C,EAAS25C,EAAgBgB,GACpE,eAAK36C,EAAS,CAACzJ,EAAOD,KAElB,UADOA,EAAOqkD,GACVhB,EACA,IAAK,IAAI7kD,EAAI,EAAGA,EAAI6kD,EAAe1mD,OAAQ6B,IAAK,CAC5C,IACImC,SAAUA,GACV0iD,EAAe7kD,IAEf+mC,WAAYA,GACZ8d,EAAe7kD,GACnB,GAAImC,IAAaX,EAAOY,WAAaD,IAAaX,EAAO2R,MAAQhR,IAAaX,EAAOW,UAAYA,IAAaX,EAAOoT,oBAAsBzS,IAAaX,EAAOsT,qBAAuB3S,IAAaX,EAAOc,sBAAuB,CAEzNd,EAAOkV,UADPgvC,EACmB,cAAelkD,EAASA,EAAOkV,UAAYmuC,EAAe7kD,GAAG0jD,KAAO,OAAS,MAE7EliD,EAAOkV,YAAcmuC,EAAe7kD,GAAG0jD,KAAO,OAAS,YAE1E,IAAW3c,IACXvlC,EAAOkT,gBAAkBqyB,GAE7BvlC,EAAOqkD,GAAsB7lD,EAC7B,WAMpB,GAAIuL,EAAY,CACZs5C,EAAiB,QAAcjH,qBAAqBryC,EAAWusB,QAC/D,IAAIitB,EAAkB,QAAcnH,qBAAqBryC,EAAWkc,SAChEq+B,EAAyBzzB,EAAK2yB,+BAC9Be,EAAwB1zB,EAAKyyB,8BAC7BkB,GAAmB,QAAcV,oBAAoBP,EAAiBe,GAAwB,GAC9FG,GAAyBD,IAAoB,QAAcV,oBAAoBP,EAAiBe,GAC/FzzB,EAAKqiB,SAASv2C,SACf,eAAK4mD,EAAiB,CAACtjD,EAAOgmB,KAC1B4K,EAAKqiB,SAASz1C,KAAKwoB,EAAMtlB,YAE7B,eAAK0iD,EAAgB,CAACpjD,EAAOq2B,KACpB,eAAWA,EAAK31B,WACjBkwB,EAAKqiB,SAASz1C,KAAK64B,EAAK31B,YAGhCm2C,GAAcjmB,EAAM,GAAyBA,EAAMA,EAAKqiB,aAEvDgR,IAAmBI,GAA2BzzB,EAAK4lB,iBAAmB+N,IAAmBC,IAC1FL,EAAgCvzB,EAAKqiB,SAAUqQ,EAAiB,cAC5DW,IACAM,GAAmBpN,GAAoBvmB,EAAM,YAC7C4zB,GAAyBrN,GAAoBvmB,EAAM,kBACnDszB,GAAmB,KAGtBD,IAAmBK,GAA0B1zB,EAAK4lB,gBAAmB,QAAcqN,oBAAoBT,EAAgBkB,KACxHH,EAAgCvzB,EAAKqiB,SAAUmQ,EAAgB,aAC3Da,IACA9M,GAAoBvmB,EAAM,WAC1BszB,GAAmB,IAGvBA,GACA5M,GAAmB1mB,IAI/B,aAAavuB,EAAQoiD,EAAiBxnB,EAAal8B,GAC/C,IAAKvE,MAAMC,QAAQ4F,GACf,OAAOA,EAKX,GAHAA,EAAS,OAAA6oB,EAAA,MAAO,GAAI7oB,GACpB46B,OAAc,IAAW56B,EAAO46B,YAAc56B,EAAO46B,YAAcA,EACnEl8B,OAAc,IAAWsB,EAAOtB,YAAcsB,EAAOtB,YAAcA,EAC/D,eAASsB,EAAO,KAAO,MAAQA,EAAO,GAAI,CAC1C,IAAItC,EAAShC,KAAKorC,aAAa9mC,EAAO,IAClCoiD,EACI,kBAASC,qBAAuB3kD,GAAUA,EAAO4zC,gBAAkBtxC,EAAO3F,OAAS,IACnF2F,EAAOA,EAAO3F,OAAS,GAAKqD,EAAO4zC,eAAetxC,EAAOA,EAAO3F,OAAS,GAAI,WAE1EqD,GAAUA,EAAOW,WACxB2B,EAAO,GAAKtC,EAAOW,SACnB2B,EAAO,GAAG46B,YAAcl9B,EAAOC,YAE5B,eAAWqC,EAAO,MACzBA,EAAO,GAAG46B,YAAcA,EACxB56B,EAAO,GAAGtB,YAAcA,EACxBsB,EAAO,GAAGd,wBAA0Bc,EAAOd,yBAE/C,IAAK,IAAIhD,EAAI,EAAGA,EAAI8D,EAAO3F,OAAQ6B,IAC/B8D,EAAO9D,GAAKR,KAAK4mD,aAAatiD,EAAO9D,GAAIkmD,EAAiBxnB,EAAal8B,GAE3E,OAAOsB,EAEX,cACI,OAAOtE,KAAKk1C,SAAWl1C,KAAKk1C,SAASv2C,OAAS,EAElD,aAAa2+C,EAAYxuB,EAAQ9wB,EAAO28C,GACpC,IAAI9nB,EAAO7yB,KACP0L,EAAUmnB,EAAKqiB,SAAS7pB,OAAOwH,EAAKgkB,iBACpC70C,EAASq7C,GAAW3xC,EAAS4xC,GACjC,GAAIt7C,EAAQ,CACR,GAAI,IAAMwC,UAAU7F,OAChB,OAAO,OAAAwuB,EAAA,MAAO,GAAInrB,GAEtB,GAAI,eAAS8sB,GAAS,CAClB,GAAI,IAAMtqB,UAAU7F,OAChB,OAAO+7C,GAAiB7nB,EAAM7wB,EAAQ8sB,GAE1C4rB,GAAiB7nB,EAAM7wB,EAAQ8sB,EAAQ9wB,EAAO28C,QACvC,eAAS7rB,IAChB,eAAKA,EAAQ,CAACpc,EAAY1U,KACtB08C,GAAiB7nB,EAAM7wB,EAAQ0Q,EAAY1U,EAAO28C,KAG1DpB,GAAmB1mB,IAG3B,eACI,IAAIg0B,EAAc7mD,KAAK6mD,cACvB7mD,KAAK8mD,cACL,IAAK,IAAItmD,EAAI,EAAGA,EAAIqmD,EAAarmD,IAC7BR,KAAKorC,aAAa5qC,EAAG,iBAAa,UAC3B68C,GAAWr9C,KAAKk1C,SAAU10C,GAAG0W,UAExClX,KAAK+mD,YAET,gBACI,IAAIF,EAAc7mD,KAAK6mD,cACvB7mD,KAAK8mD,cACL,IAAK,IAAItmD,EAAI,EAAGA,EAAIqmD,EAAarmD,IAC7BR,KAAKorC,aAAa5qC,EAAG,kBAAc,GAEvCR,KAAK+mD,YAET,gBAAgB9kD,EAAO45B,GAEnB,IADA,IAAInwB,EAAU1L,KAAKi/B,kBAAkBpD,GAC5Br7B,EAAIkL,EAAQ/M,OAAS,EAAG6B,GAAK,EAAGA,IACrC,GAAIkL,EAAQlL,GAAGyB,QAAUA,EACrB,OAAOzB,EAGf,OAAQ,EAEZ,wBAAwBwB,EAAQ65B,GAC5B,IAAIkD,EAAiB/+B,KAAKi/B,kBAAkBpD,GACxCmrB,EAAgBjoB,EAAez6B,OAAOw8B,GAAOA,EAAI7+B,QAAUD,EAAOC,OAAS6+B,EAAItO,UAAYxwB,EAAOwwB,SAAS,GAC/G,OAAOuM,EAAex8B,QAAQykD,GAElC,sBAAsBxO,EAAI3c,GACtB,IAAI55B,EAAQjC,KAAKorC,aAAaoN,EAAI,SAClC,OAAOx4C,KAAK0gC,gBAAgBz+B,EAAO45B,GAEvC,UAAUlW,GACN,IAAI3jB,EAAS2xC,GAAa3zC,KAAM2lB,GAC5B1jB,EAAQjC,KAAKk1C,SAASv2C,OAC1BqB,KAAKk1C,SAASz1C,KAAKuC,GACfA,EAAOyU,SACPzW,KAAKk1C,SAAW,GAAyBl1C,KAAMA,KAAKk1C,UACpDlzC,EAAShC,KAAKk1C,SAASjzC,IAE3BD,EAAO62C,MAAQlzB,EACfozB,GAAc/4C,KAAMgC,GACpBhC,KAAK0/C,cAAc1/C,KAAK4+C,aACxB5+C,KAAKi7C,gBAET,aAAazC,GACT,IAAIx2C,EAAShC,KAAKorC,aAAaoN,GAC/B,GAAIx2C,GAAUA,EAAOC,OAAS,EAAG,CAG7B,GAFAk7C,GAAkCn9C,KAAKk1C,UACvCl1C,KAAKk1C,SAAS9N,OAAOplC,EAAOC,MAAO,GAC/BD,EAAOyU,OAAQ,CACf,IAAIwwC,EAAejnD,KAAKoxC,wBAAwBpvC,EAAOC,OAAOpD,IAAImD,GAAUA,EAAOC,OACnFjC,KAAKk1C,SAAWl1C,KAAKk1C,SAAS5wC,OAAOtC,GAAUilD,EAAa1kD,QAAQP,EAAOC,OAAS,GAExF82C,GAAc/4C,MACdA,KAAK0/C,cAAc1/C,KAAK4+C,cAGhC,iBAAiBj5B,GACb,IAAIm2B,EAAgB97C,KAAK62C,gBAAgBvyC,OAAOtC,GAAUA,EAAOwwB,UAAY7M,EAAQ6M,SAAS,GACzFspB,IACDA,EAAgBn2B,EAChB3lB,KAAK62C,gBAAgBp3C,KAAKq8C,IAGlC,eACI,IAEIt7C,EAFAkL,EAAU1L,KAAKk1C,SACfhzC,EAAS,GAGb,SAASglD,EAAiBjlD,EAAOjE,QACzB,IAAW0N,EAAQlL,GAAGxC,KACtBkE,EAAO1B,GAAGxC,GAAS0N,EAAQlL,GAAGxC,IAGtC,IAAKwC,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAC5B0B,EAAO1B,GAAK,GACZ,eAAK8xC,GAAwB4U,GAEjC,OAAOhlD,EAEX,QAAQF,GACJA,EAAO2R,KAAO3R,EAAO2R,MAAQ3R,EAAOY,WAAaZ,EAAO5D,KAE5D,aAAa+oD,GACT,IAAIp7C,EAAa/L,KAAK4+C,YAClB7G,EAA0B/3C,KAAK8uB,OAAO,wCAE1C,GADA,OAASq4B,QAAS,IAAWA,GAAiBA,EAAMjwB,QAAQl3B,KAAKg0C,UAC5D+D,EAAyB,CAC1BA,EAA0B,GAC1B,IAAIiI,EAAuBhgD,KAAKi0C,oBAC3Bj0C,KAAK8uB,OAAO,0BACbipB,EAAwBt4C,KAAK,WAE7B,SAAWO,KAAK8uB,OAAO,iBACvBipB,EAAwBt4C,KAAK,YAAa,aAEzCugD,EAAqBrrC,eACtBojC,EAAwBt4C,KAAK,cAE5BugD,EAAqBtrC,aACtBqjC,EAAwBt4C,KAAK,QAAS,iBAErCugD,EAAqBjrC,eACtBgjC,EAAwBt4C,KAAK,QAAS,gBAE1C,IAAI2nD,GAAuBpnD,KAAK8uB,OAAO,wBAClC9uB,KAAK8uB,OAAO,sBAAwBs4B,GACrCrP,EAAwBt4C,KAAK,cAAe,4BAE3CO,KAAK8uB,OAAO,yBAA2Bs4B,GACxCrP,EAAwBt4C,KAAK,eAAgB,cAGrDO,KAAKs0C,kBAAoB6S,EACzBnnD,KAAKg4C,yBAA2BD,EAChC/3C,KAAKy4C,gBAAkB0O,EACvB/N,GAAoBp5C,KAAM,aAC1BA,KAAKk/C,MAAK,GACNnzC,IACAA,EAAWusB,KAAKt4B,KAAKslD,+BACrBv5C,EAAWkc,MAAMjoB,KAAKwlD,iCAG9B,gBACI,IAAI6B,EAAY,GACZC,GAA+B,EAC/BC,EAAkB,GACtBvnD,KAAKk1C,SAAShe,QAAQl1B,IAClB,IAAIquB,GAEA1c,KAAMA,GACN3R,EACAyU,EAAS,QAAU4Z,EAAKruB,EAAO0J,eAAY,IAAW2kB,OAAK,EAASA,EAAG1xB,OACvE6oD,EAAaxlD,EAAOuS,eAAiBvS,EAAOY,WAAaZ,EAAO4U,gBAAkBH,EAClF9C,GACI0zC,EAAU1zC,IACV4zC,EAAgB9nD,KAAK,IAAI4rB,OAAO1X,EAAM,MAE1C0zC,EAAU1zC,IAAQ,GACX6zC,IACPF,GAA+B,KAGnCC,EAAgB5oD,QAChB,QAAO8oD,IAAI,QAASF,EAAgBxoD,KAAK,OAEzCuoD,GACA,QAAOG,IAAI,SAGnB,+BAA+B7T,EAAeE,GAC1C,IAAII,EAA0B,IAE1BtxC,UAAWA,GACXgxC,EAKJ,IAJIn1C,MAAMC,QAAQk1C,EAAcloC,UAAYkoC,EAAcloC,QAAQ/M,QAAUi1C,EAAcn9B,UACtFy9B,EAAwBz9B,QAAS,EACjC7T,EAAY,MAEZA,EAAW,CACX,GAAI,eAASA,GAAY,CACrB,IAAIikC,EAAS,gBAAcjkC,GAC3BsxC,EAA0B,CACtB1+B,QAAS,gBAAW5S,GACpB,mBAAmBmR,EAAM2zC,GACrB,IAAI1pD,EAAQ6oC,EAAO9yB,GACnB,OAAO/T,KAAK01C,mBAAqBgS,EAAsB1nD,KAAK01C,iBAAiB13C,GAASA,GAE1F4Y,aAAc0kC,GACd,WAAWxnC,GACP,IAAI5R,EACA6zC,EAqBJ,MApBI,WAAa/1C,KAAK8B,SACd,eAASgS,IAAS9T,KAAKjC,OACvBmE,EAAS67C,GAAkBjqC,EAAK4T,OAAQ1nB,KAAKjC,QACtC,eAAU+V,IAAS,eAAUA,KACpC5R,EAAS6B,OAAO+P,IAEb,YAAc9T,KAAK8B,SACtBgS,IAAS9T,KAAKmX,SACdjV,GAAS,EACF4R,IAAS9T,KAAK8V,YACrB5T,GAAS,GAEN,QAAcL,WAAW7B,KAAK8B,WACrCi0C,EAAc,QAAiBiI,MAAMlqC,EAAM9T,KAAKjC,QAC5Cg4C,IACA7zC,EAAS6zC,IAGb7zC,EAAS4R,EAEN5R,IAInBgyC,EAAwBz/B,gBAAiB,OAEzCy/B,EAAwBz/B,iBAAmBm/B,EAAcv+B,0BAgG7D,OA9FA6+B,EAAwB7+B,0BAA4B,WAChD,OAAO,QAAYlR,iCAAiCI,MAAMvE,KAAMwE,YAEpE0vC,EAAwB2Q,uBAAyB,IACjD3Q,EAAwByT,uBAAyB,SAAS3kD,EAAaQ,GACnE,IAAItB,EAYJ,OAXIlC,KAAKqV,4BACLnT,EAASlC,KAAKqV,0BAA0B9Q,MAAMvE,KAAMwE,YAEpD,eAAWtC,KACXA,EAAS,CAACA,EAAQ,KAAK,IAEvBA,IACAA,EAAOg9B,YAAcl/B,KAAKiC,MAC1BC,EAAOc,YAAcA,EACrBd,EAAOsB,wBAA0BA,GAE9BtB,GAENU,GAAc,eAASA,IACxB,OAAAuqB,EAAA,OAAO,EAAM+mB,EAAyB,CAClCj/B,cAAc,EACdN,eAAe,EACfS,mBAAoB,IAAM,OAG9B0+B,IACAI,EAAwBx/B,aAAc,GAEtCk/B,EAAc9xC,WACdoyC,EAAwB0T,aAAehU,EAAc9xC,UAErD8xC,EAAcpwC,2BAA6B,mCAAoC0wC,KAC/EA,EAAwBoE,+BAAiC1E,EAAcpwC,yBAEvEowC,EAAcvvC,SACd6vC,EAAwB7vC,OAAS,CAC7B,mBAAmBrG,EAAO0pD,GAItB,OAHI1nD,KAAK2Z,YACL3b,EAAQgC,KAAKskD,UAAYtkD,KAAKskD,SAAStmD,IAEpCgC,KAAK01C,mBAAqBgS,EAAsB1nD,KAAK01C,iBAAiB13C,GAASA,GAE1F,iBAEI,GADAgC,KAAKskD,SAAW,GACZtkD,KAAKwhB,MAGL,IAFA,IAAIqmC,EAAiB,gBAAc7nD,KAAK2Z,WACpC7W,EAAwB,gBAAc9C,KAAK0Z,aACtClZ,EAAI,EAAGA,EAAIR,KAAKwhB,MAAM7iB,OAAQ6B,IAAK,CACxC,IAAIuqB,EAAO/qB,KAAKwhB,MAAMhhB,GAClBsnD,EAAehlD,EAAsBioB,GACzC/qB,KAAKskD,SAASuD,EAAe98B,IAAS+8B,EACtC9nD,KAAK8B,SAAW9B,KAAK8B,UAAYwzC,GAAiBwS,KAI9D,SACI,IAAIj1B,EAAO7yB,MAEP+L,WAAYA,GACZ8mB,EACJ,GAAI9mB,EAIA,GAHI,eAAWA,KAAgB,QAAgB4qC,UAAU5qC,KACrDA,EAAaA,EAAW,KAExB,eAAcA,IAAeA,aAAsB,SAAStN,MAAMC,QAAQqN,IAC1E,GAAI8mB,EAAKlZ,UAAW,CAChB,IAAIouC,EAAoB,gBAA2Bh8C,GAGnD,OAFAg8C,EAAkBC,UAAW,EAC7Bj8C,EAAa,IAAI,QAAWg8C,GACrBh8C,EAAWk8C,OAAOzxB,KAAKziB,IAC1B8e,EAAKrR,MAAQzN,EACb8e,EAAKq1B,gBAAkBr1B,EAAKq1B,yBAIpC,QAAOT,IAAI,cAGf50B,EAAKq1B,gBAAkBr1B,EAAKq1B,oBAK5ChU,EAAwBiU,iBAAmB,wBACvCvU,EAAcwU,SACdlU,EAAwBiU,iBAAiBzmB,IAAIkS,EAAcwU,QAAQl0B,KAAK0f,IAE5E,eAAKM,EAAyBxhC,IAC1B,GAAI,eAAWwhC,EAAwBxhC,KAAgB,IAAMA,EAAWnQ,QAAQ,WAAY,CACxF,IAAI8lD,EAAoB,UAAUh9B,OAAO3Y,EAAW41C,OAAO,GAAGC,eAAel9B,OAAO3Y,EAAW8qC,OAAO,IACtGtJ,EAAwBmU,GAAqBnU,EAAwBxhC,MAGtEwhC,EAEX,cAEI,OADAl0C,KAAK8/C,UAAY9/C,KAAK8/C,WAAa5P,GAAYlwC,MACxCA,KAAK8/C,UAEhB,YAAY5gB,EAAaspB,GACrB,IAAIxmD,EAAShC,KAAKk1C,SAAShW,GACvB4V,EAAmB90C,KAAK+0C,sBAC5B,OAAO/yC,IAAWwmD,GAAqBxmD,EAAO6P,UAAa7P,EAAOwwB,UAAW,eAAUxwB,EAAOsU,aAAgBm+B,GAAqBvV,EAAa4V,EAAiBJ,qBAAqB/1C,OAAS,EAEnM,wBAAwBwyC,EAAiBsX,GACrC,IAAI3T,EAAmB90C,KAAK+0C,sBACxB7yC,EAAS,GAAwBivC,EAAiB2D,EAAiBH,uBAAwB8T,GAC/F,OAAIA,EACOvmD,EAAOoC,OAAOtC,GAAUA,EAAO6P,UAAY7P,EAAOwwB,SAAS8F,KAAK,CAAColB,EAASC,IAAYD,EAAQrmC,aAAesmC,EAAQtmC,cAEzHnV,EAEX,mBAAmBg9B,EAAaiS,GAC5B,IAAIjvC,GAAS,EACTF,EAAShC,KAAKk1C,SAAShW,GACvB4V,EAAmB90C,KAAK+0C,sBACxBqC,EAAoBp1C,GAAUyyC,GAAqBvV,EAAa4V,EAAiBJ,qBASrF,OARI0C,GACA,eAAKA,EAAmB,CAACzf,EAAGmc,KACxB,GAAIA,EAAW7xC,QAAUkvC,EAErB,OADAjvC,GAAS,GACF,IAIZA,EAEX,sBAAsBg9B,GAClB,IAAIh9B,GAAS,EACT4yC,EAAmB90C,KAAK+0C,sBACxB2T,EAAcxpB,GAAe,GAAKuV,GAAqBvV,EAAa4V,EAAiBJ,qBAKzF,OAJAgU,GAAe,eAAKA,EAAa,CAAC/wB,EAAGmc,KACjC5xC,EAASA,GAAU4xC,EAAWjiC,QACvB3P,IAEJA,EAEX,YAAYF,GACR,OAAIA,EAAOwwB,SAAWxwB,EAAO5D,OAASw0C,GAC9BiJ,GAAsB77C,KAAMgC,GACrB,QAAQqpB,OAAOrpB,EAAO5D,MAE1B,WAAWitB,OAAOrpB,EAAOwwB,SAE7BxwB,EAAOC,MAElB,2BAA2BH,GACvB,OAAOu0C,GAA2Bv0C,GAEtC,0BAA0BwuB,GACtB,IAAI3f,EAAa3Q,KAAK8uB,OAAO,cAC7B,OAAIne,EACO,SAAW2f,EAAkB,QAAU,OAE3CA,GAGR,IAAIq4B,GAA0B,CACjCzb,eAAgB,KAAM,CAClB8S,qBAAsB,CAClBvrC,gBAAgB,EAChBI,aAAa,EACbI,cAAc,EACdV,cAAc,EACdsB,YAAY,EACZsB,SAAU,OAAoBpZ,OAAO,uBACrC+X,UAAW,OAAoB/X,OAAO,yBAE1CgN,uBAAuB,EACvBC,qBAAqB,EACrBS,mBAAoB,aACpBD,oBAAgB,EAChBG,iBAAa,EACbi9C,yBAAyB,EACzBl9C,aAAS,EACTm9C,iCAAiC,EACjCj9C,iBAAkB,KAClBI,6BAAyB,IAE7B+sB,YAAa,CACTrtB,QAAS,KC5+CjB,GAAS0mC,eAAe,UAAW,CAC/BlF,eAAgB,IAAM,OAAA/f,EAAA,OAAO,EAAM,GAAIw7B,GAAwBzb,iBAAkB,CAC7E8S,qBAAsB,CAClBxrC,gBAAgB,KAGxBukB,YAAa4vB,GAAwB5vB,c,wDCerC+vB,GAAe,SAASj2B,EAAMngB,EAAY1U,GAC1C,IAAI+N,EAAa8mB,EAAK+rB,YACtB,GAAI7yC,EAAY,CACZ,QAAI,IAAW/N,EAAO,CAClB,IAAIknC,EAAWrS,EAAKk2B,sBAAsBr2C,GAC1C,GAAIwyB,IAAalnC,EAAO,CAChB,aAAe0U,GACf3G,EAAW4a,UAAU,GAEzB5a,EAAW2G,GAAY1U,GACvB60B,EAAKm2B,6BAA8B,EACnCn2B,EAAK/D,OAAO,UAAUzD,OAAO3Y,GAAa1U,GAC1C60B,EAAKm2B,6BAA8B,EACnC,IAAIriC,EAAY5a,EAAW4a,YAE3B,OADAkM,EAAKo2B,UAAY,cAAgBv2C,EAC1B3G,EAAW,cAAgB2G,EAAa,OAAS,YAAY8jB,KAAK,KACrE3D,EAAKo2B,WAAY,EACjBp2B,EAAKq2B,YAAYzyB,KAAK9P,KAG9B,OAAO,iBAAWuW,UAAU+F,UAEhC,OAAOl3B,EAAW2G,KAEtB,OAAO,GAEPy2C,GAA0B,GAAQt0B,WAAWjC,QAAQ,SAClD,MAAM,WAAuBu2B,GAChC,OACI,IAAIt2B,EAAO7yB,KACX6yB,EAAKu2B,OAAS,GACdv2B,EAAKw2B,sBAAwB,KAC7Bx2B,EAAKmM,mBAAqBh/B,KAAKgwB,cAAc,WAC7C6C,EAAKo2B,WAAY,EACjBp2B,EAAKy2B,uBAAyB,KAC9Bz2B,EAAK02B,oBAAsBt6B,IACvB4D,EAAKy2B,uBAAyBtpD,KAAK4+C,YAAY4K,iBAC/C32B,EAAK4V,mBAAmBxZ,GACxB4D,EAAKy2B,uBAAyB,MAElCz2B,EAAK42B,uBAAyB52B,EAAK62B,sBAAsBx1B,KAAKrB,GAC9DA,EAAK82B,uBAAyB92B,EAAK+2B,sBAAsB11B,KAAKrB,GAC9DA,EAAKg3B,kBAAoBh3B,EAAKi3B,iBAAiB51B,KAAKrB,GACpDA,EAAKk3B,kCAAoCl3B,EAAKm3B,iCAAiC91B,KAAKrB,GACpFA,EAAKo3B,iBAAmBp3B,EAAKq3B,gBAAgBh2B,KAAKrB,GAClDA,EAAKs3B,mBAAqBt3B,EAAKu3B,kBAAkBl2B,KAAKrB,GACtDA,EAAKmM,mBAAmBsJ,eAAe5G,IAAI7O,EAAK42B,wBAChD52B,EAAKw3B,YAAa,EAClBx3B,EAAKy3B,kBAAmB,EACxBz3B,EAAK03B,yBAAsB,EAC3B13B,EAAK23B,SAAW,GAChB33B,EAAK3C,aAAa,uBAClB2C,EAAK43B,kBAAkB/oB,IAAIgpB,GAAS73B,EAAK9E,cAAc,sBAAuB,CAC1E28B,MAAOA,KAEX73B,EAAK83B,qBAET,sBAAsBj4C,GAClB,OAAO1S,KAAK4+C,YAAYlsC,KAE5B,gBACI,MAAO,CAAC,UAAW,iBAAkB,oBAAqB,cAAe,oBAAqB,UAElG,cAAciB,GACV,GAAI,sBAAwBA,EACxB,MAAO,CACHi3C,aAAa,GAKzB,gBACI,MAAO,CAAC,qBAAsB,mBAAoB,UAAW,SAAU,cAAe,oBAAqB,QAAS,QAAS,gBAAiB,YAAa,WAAY,YAAa,aAAc,qBAAsB,mBAAoB,mBAAoB,gBAAiB,iBAAkB,eAEvS,QACI5qD,KAAKg/B,mBAAmB6rB,QACxB7qD,KAAKopD,OAAS,GACdppD,KAAK2qD,qBAET,wBAAwB38B,GACpB,GAAIA,EAAKhwB,QAAUgwB,EAAKgxB,eAAiBh/C,KAAK8uB,OAAO,YAAcrwB,MAAMC,QAAQsvB,EAAKhwB,QAAUS,MAAMC,QAAQsvB,EAAKgxB,eAAgB,CAC/H,IAAI8L,EAAiB98B,EAAKhwB,QAAUgwB,EAAKgxB,cACzC,GAAI8L,EAAgB,CAChB,IAAIC,EAAQ/qD,KAAK+qD,QACbA,IACAA,EAAMC,OAASh9B,EAAKhwB,OAM5B,OAHIgC,KAAKirD,gCAAgCj9B,IACrChuB,KAAK4lD,QAAQ5lD,KAAK8uB,OAAO,wBAEtB,EAEX,OAAO,EAEX,gCAAgCd,GAC5B,OAAO,EAEX,cAAcA,GACV,IACIjiB,EACAm/C,EAFAr4B,EAAO7yB,KAIX,SAASiuB,IACLD,EAAKC,SAAU,EAEnB,GAAI,eAAiBD,EAAKra,MAAQqa,EAAKra,OAASqa,EAAKixB,UAAYj/C,KAAKmrD,wBAAwBn9B,GAC1FC,SAGJ,OAAQD,EAAKra,MACT,IAAK,eACL,IAAK,qBACL,IAAK,mBACL,IAAK,iBACDsa,IACA,MACJ,IAAK,mBACL,IAAK,UACL,IAAK,aACL,IAAK,YACDA,IACA4E,EAAKg4B,QACL,MACJ,IAAK,SAED,GADA9+C,EAAa8mB,EAAK9mB,aACdA,IACAm/C,EAAuBr4B,EAAKu4B,kBAAkBr/C,GAC1Cm/C,GAAsB,CACtB,IAAIvkC,EAAY5a,EAAW4a,YAC3B3mB,KAAKipD,UAAYiC,EAAqBG,mBACtCt/C,EAAWk8C,OAAOzxB,KAAK,KACnBx2B,KAAKipD,WAAY,EACjBp2B,EAAKq2B,YAAYzyB,KAAK9P,KAIlCsH,IACA,MACJ,IAAK,aACD4E,EAAKg4B,QACL,MACJ,IAAK,UACD9+C,EAAa8mB,EAAK9mB,aACdA,GAAcA,EAAWu/C,aAAet9B,EAAKra,OAASqa,EAAKixB,WAC3Dj/C,KAAKurD,gCAAiC,EACtCx/C,EAAWk8C,QAEf,MACJ,QACIpgB,MAAMC,cAAc9Z,IAGhC,UACI,OAAQhuB,KAAKqqD,WAEjB,gBACI,OAAOrqD,KAAK4+C,aAAe5+C,KAAK4+C,YAAYA,YAEhD,kBAAkB4M,GACd,OAAOxrD,KAAKyrD,oBAAe,EAAQD,GAEvC,eAAelnD,EAAQknD,GACnB,IAAKxrD,KAAK4+C,YACN,OAAOt6C,EAEX,IAAImnD,EAAiB,OAASnnD,QAAU,IAAWA,EAASA,EAAStE,KAAK4+C,YAAYt6C,SAClFonD,EAAwB1rD,KAAKg/B,mBAAmB2sB,uBAAyB3rD,KAAKg/B,mBAAmB2gB,wBACrG,GAAI+L,EAAuB,CACvB,IAAIE,EAAmB5rD,KAAK6rD,6BAC5BJ,EAAiBG,EAAmB,QAAcE,eAAe,CAACF,EAAkBH,IAAmBA,EAE3G,IAAIM,EAAoB/rD,KAAK4+C,YAAYvuC,mBAAmBmX,WAAagkC,EAEzE,OADAC,EAAiBzrD,KAAKg/B,mBAAmB4nB,aAAa6E,EAAgBM,GAC/DN,EAEX,YACI,OAAIzrD,KAAK8yB,kBACL9yB,KAAKgsD,eAAiB,IAAI,OACnBhsD,KAAKgsD,gBAET,iBAEX,iBACI,IAAIpxC,EAAU5a,KAAKwqD,SACnB,GAAI5vC,EAAQjc,OAAQ,CAChBqB,KAAKwqD,SAAW,GAChB,IAAIj6C,EAAqBqK,EAAQqxC,MAAM1wC,GAAUA,EAAOhL,oBACxDvQ,KAAKksD,YAAY,IAAMtxC,EAAQjc,OAASic,EAAQ,GAAK,CACjDrK,mBAAoBA,IAGxBvQ,KAAKgsD,iBACLhsD,KAAKgsD,eAAe9uB,UACpBl9B,KAAKgsD,eAAiB,MAG9B,iCAAiC/8B,GAC7B,IAAIoB,EACAW,EAAoBhxB,KAAKg/B,mBACzBjzB,EAAa/L,KAAK4+C,aAElBuN,iBAAkBA,GAClBl9B,EACAA,EAAEm9B,kBAAoBD,EAAiBE,eAG3CF,EAAiB7nD,OAAStE,KAAKyrD,eAAeU,EAAiB7nD,QAC3D,KAAO,QAAU+rB,EAAK87B,EAAiB7nD,cAAW,IAAW+rB,OAAK,EAASA,EAAG1xB,SAAW,MAAQwtD,EAAiB7nD,OAAO,KACzH2qB,EAAElb,KAAO,GACTkb,EAAEq9B,MAAQr9B,EAAEq9B,OAAS,GACrBr9B,EAAEq9B,MAAMC,WAAa,GAEpBv7B,EAAkB26B,uBACnB36B,EAAkBmoB,sBAAsBptC,GAE5C/L,KAAKwsD,kBAAmB,EACxBx7B,EAAkBo0B,sBAAsBr5C,GAAa/L,KAAKurD,gCAC1DvrD,KAAKwsD,kBAAmB,EACxBL,EAAiB7zB,KAAOtH,EAAkBs0B,8BAC1C6G,EAAiBlkC,MAAQ+I,EAAkBw0B,+BAC3Cz5C,EAAWusB,KAAK6zB,EAAiB7zB,MACjCvsB,EAAWkc,MAAMkkC,EAAiBlkC,OAClCkkC,EAAiB7zB,KAAOtH,EAAkBs0B,6BAA6Bv5C,EAAWsE,mBAAmBiB,SACrG2d,EAAEhH,MAAQ+I,EAAkBw0B,8BAA8Bz5C,EAAWsE,mBAAmBtD,WAE5F,sBAAsBkiB,GAClB,IAOIjsB,EACAiT,EACAw2C,EATA55B,EAAO7yB,MAEPukC,YAAaA,GACbtV,GAEAuY,YAAaA,GACbvY,EAIJ,GAAIsV,EAAYjzB,SAAWizB,EAAYx3B,SAC/B8lB,EAAK+rB,cAAgB/rB,EAAK25B,mBAC1B35B,EAAK+rB,YAAY32B,MAAM4K,EAAKmM,mBAAmBwmB,gCAC/C3yB,EAAK+rB,YAAYtmB,KAAKzF,EAAKmM,mBAAmBsmB,+BAC9CzyB,EAAK65B,eAEN,GAAInoB,EAAY74B,UACnBuK,EAAe4c,EAAKmM,mBAAmBoM,aAAanc,EAAEiQ,YAAa,iBAC/DsI,EAAYvxB,cAAgBuxB,EAAYxxB,YAAcvX,MAAMC,QAAQuX,IAAiBuxB,EAAYxkC,aAAewkC,EAAYhkC,yBAA2BgkC,EAAY/yB,kBACnKzR,EAAc6vB,EAAKmM,mBAAmBoM,aAAanc,EAAEiQ,YAAa,gBAC9DzgC,MAAMC,QAAQuX,SAAiB,IAAWgZ,EAAEiQ,aAAe,eAAUl8B,KAAiBwkC,EAAYhkC,yBAA2BgkC,EAAYxkC,eACzI6vB,EAAK85B,eACLF,GAAgB,IAGnB55B,EAAK+5B,kBAAqB,QAAcnlB,aAAaD,EAAa,CAAC,QAAS,eAAgB,cAAe,sBAAuB,0BAA2B,eAAgB,gBAC9K3U,EAAKmM,mBAAmBsJ,eAAe5G,KAAI,SAAUmrB,EAAmBtxC,GACpE,IAAI8U,EACJwC,EAAKmM,mBAAmBsJ,eAAetF,OAAO6pB,GAC9Ch6B,EAAKq5B,YAAY,CACb37C,oBAAoB,EACpBu8C,wBAAyB,QAAUz8B,EAAK,OAAS9U,QAAU,IAAWA,OAAS,EAASA,EAAOgpB,mBAAgB,IAAWlU,OAAK,EAASA,EAAGy8B,6BAInJ,eAAUtlB,EAAY31B,UAAU,CAChC,IAAI7P,EAAS6wB,EAAKmM,mBAAmBoM,aAAanc,EAAEiQ,aAChDl9B,IAAW,eAAUA,EAAOgB,cAAgB,eAAUhB,EAAOiU,iBAC7D4c,EAAK85B,eACLF,GAAgB,IAIvBA,GAAiBloB,EAAY/c,WAC9BqL,EAAK65B,SAGb,mBAAmBz9B,GACf,IAAI4D,EAAO7yB,KACP+L,EAAa8mB,EAAK+rB,YAClB5tB,EAAoB6B,EAAKmM,mBACzB+tB,GAA4B,EAChC/sD,KAAKurD,gCAAiC,EAClCx/C,IAAe8mB,EAAKm6B,wBACpBn6B,EAAKm6B,uBAAwB,EAC7B,eAAKn6B,EAAKmM,mBAAmB2f,gBAAgB5yC,IAAayqB,KAAK,KACvD3D,EAAKw3B,YACLx3B,EAAK+2B,uBAAsB,GAE3BmD,GAA6B99B,GAAKA,EAAEg+B,YACpCh+B,EAAEg+B,WAAY,GAElBp6B,EAAKm6B,uBAAwB,EAC7B,IAQIpB,EARAsB,EAAkBr6B,EAAK+5B,iBAC3B/5B,EAAK+5B,kBAAmB,EACpBM,IAAoBr6B,EAAKs6B,yBAA2BvB,EAAmB/4B,EAAKg5B,6BAA8BD,GAAoBA,EAAiBjtD,SAC/I,QAAO8oD,IAAI,QAAS50B,EAAK5B,UAAUqD,MACnCzB,EAAK85B,gBAEL95B,EAAKq5B,YAAYj9B,GAAG,KAGzBga,KAAK,KACJpW,EAAKm6B,uBAAwB,IAE7Bn6B,EAAKm6B,wBACLD,GAA4B,EAC5Bl6B,EAAK+2B,uBAAsB,IAE/B/2B,EAAK+5B,kBAAoB/5B,EAAKmM,mBAAmB2sB,sBACjD94B,EAAKs6B,uBAAyBn8B,EAAkB2uB,yBAGxD,sBAAsB2L,GAClBtrD,KAAKqqD,WAAaiB,EAClBtrD,KAAKotD,sBAET,iBAAiBn+B,GACbjvB,KAAKyqD,kBAAkBh0B,KAAKxH,GAEhC,kBAAkBrU,GACd5a,KAAKqtD,OAAO52B,KAAK7b,GAErB,YACI,IAAK,IAAI0yC,EAAO9oD,UAAU7F,OAAQqvB,EAAO,IAAIvvB,MAAM6uD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7Ev/B,EAAKu/B,GAAQ/oD,UAAU+oD,GAE3BvtD,KAAKyqD,kBAAkBh0B,KAAK,QAAOoB,MAAMtzB,MAAM,QAAQypB,IAE3D,kBAAkBjiB,GACd,IAAI4a,EAAY3mB,KAAK8uB,OAAO,oBACxBlI,EAAW5mB,KAAK8uB,OAAO,mBACvB0+B,EAAgBxtD,KAAK8uB,OAAO,kBAC5B2+B,EAAgBztD,KAAK8uB,OAAO,kBAC5B4+B,EAAa,aAAeD,EAC5BE,EAAc,YAAcF,EAC5BzF,EAAWwF,GAAiBG,GAAeD,EAC3CE,GAAoB,EACpBC,GAAoB,EACpBxC,GAAqB,EAczB,OAbAt/C,EAAW+hD,mBAAmBJ,QAC1B,IAAWF,GAAiBzhD,EAAWi8C,aAAeA,IACtDj8C,EAAWi8C,SAASA,GACpB4F,GAAoB,QAEpB,IAAWhnC,GAAY7a,EAAW6a,aAAeA,IACjD7a,EAAW6a,SAASA,GACpBinC,GAAoB,QAEpB,IAAWlnC,GAAa5a,EAAW4a,cAAgBA,IACnD5a,EAAW4a,UAAUA,GACrB0kC,GAAqB,MAErBuC,GAAqBC,GAAqBxC,IACnC,CACHuC,kBAAmBA,EACnBC,kBAAmBA,EACnBxC,mBAAoBA,GAKhC,+BACI,IAAIt/C,EAAa/L,KAAK8uB,OAAO,cAC7B,OAAIrwB,MAAMC,QAAQqN,GACP,CACHg/C,MAAO,CACH3sD,KAAM,QACN2V,KAAMhI,EACNgiD,IAAK/tD,KAAK8uB,OAAO,aAItB/iB,EAEX,kBACI,IAAIiiD,EAAgBhuD,KAAK4+C,YACzB/W,MAAMomB,kBACN,IAAIliD,EAAa/L,KAAK4+C,YAGtB,GAFA5+C,KAAKurD,gCAAiC,EACtCvrD,KAAKqpD,sBAAwB,KACzBt9C,EAAY,CACZ,IAAIm/C,EAAuBlrD,KAAKorD,kBAAkBr/C,GAClD/L,KAAKipD,UAAY,OAASiC,QAAwB,IAAWA,OAAuB,EAASA,EAAqBG,mBAClHrrD,KAAKkuD,cAAcniD,QACZiiD,GACPhuD,KAAKksD,cAGb,kBACI,IAAIr5B,EAAO7yB,KACP+L,EAAa8mB,EAAK+rB,YAClB18C,EAAS,IAAI,OAWjB,OAVA,eAAKlC,KAAKg/B,mBAAmB4mB,SAAQ,IAAO1iB,OAAO,KAC3Cn3B,EACAA,EAAWk8C,OAAOzxB,MAAK,WACnB3D,EAAKo2B,WAAY,EACjB/mD,EAAOg7B,QAAQ34B,MAAMrC,EAAQsC,cAC7BykC,KAAK/mC,EAAO2gC,QAEhB3gC,EAAOg7B,YAGRh7B,EAAO+gC,UAElB,oBAAoBzhB,GAChB,OAAOA,EAAMhf,MAAM,GAEvB,mBACI,OAAO,EAEX,aAAa+Y,GACT,IAAI4yC,EAAenuD,KAAKopD,OACpBgF,EAAkB,WAAa7yC,EAAO0oB,YAAckqB,EAAaxvD,OAAS,EAAIwvD,EAAaA,EAAaxvD,OAAS,GAAK,KAC1H,OAAO,eAAU,OAASyvD,QAAmB,IAAWA,OAAkB,EAASA,EAAgB9vB,WAAa8vB,EAAgB9vB,UAAY,EAAI,EAEpJ,cAAc9c,EAAOjG,GACjB,IAAIsX,EAAO7yB,KACPquD,EAAgBx7B,EAAKy7B,oBAErBrqB,WAAYA,GACZ1oB,EACAwjB,EAAiBlM,EAAKmM,mBAAmBC,kBAAkB,KAAM,eAAiBgF,GAClF3F,EAAYt+B,KAAKuuD,aAAahzC,GAC9BoK,EAAU,CACVoZ,eAAgBA,EAChBT,UAAWA,GAEXp8B,EAAS,GAQb,OAPA,eAAKsf,EAAO,CAACvf,EAAO8oB,KACZ,eAAUA,KACVpF,EAAQkW,SAAW55B,EAAQosD,EAC3BtjC,EAAO8H,EAAK27B,aAAazjC,EAAMpF,GAC/BzjB,EAAOzC,KAAKsrB,MAGb7oB,EAEX,aAAa6oB,EAAMpF,GAIf,OAHAoF,EAAO/qB,KAAKyuD,kBAAkB1jC,EAAMpF,GACpCoF,EAAO/qB,KAAK0uD,iBAAiB3jC,EAAMpF,GACnCoF,EAAKuT,UAAY3Y,EAAQ2Y,YAClBvT,EAEX,kBAAkBhX,EAAM4R,GACpB,MAAO,CACHiY,QAAS,OACT7pB,KAAMA,EACNg6C,IAAK/tD,KAAK2uD,MAAM56C,IAGxB,iBAAiB66C,EAAUjpC,GAEvB,OADAipC,EAAShrD,OAAS5D,KAAK6uD,mBAAmBD,EAAS76C,KAAM4R,EAAQoZ,gBAC1D6vB,EAEX,mBAAmB76C,EAAMrI,EAASojD,GAG9B,IAFA,IACI9wD,EADA4F,EAAS,GAEJpD,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAAK,CACrC,IAAIwB,EAAS0J,EAAQlL,GACrBxC,EAAQ8wD,OAAa,EAAS,KACzB9sD,EAAOwwB,UACJxwB,EAAOoT,mBACPpX,EAAQgE,EAAOoT,mBAAmBrB,GAC3B/R,EAAOY,YACd5E,EAAQ+V,EAAK/R,EAAOY,aAG5BgB,EAAOnE,KAAKzB,GAEhB,OAAO4F,EAEX,aAAa2X,GACL,WAAaA,EAAO0oB,WACpBjkC,KAAK+uD,mBAAmBxzC,GACjBvb,KAAKwhB,QAAQ7iB,QAAU4c,EAAOhL,oBAAsB,YAAcgL,EAAO0oB,WAChFjkC,KAAKgvD,kBAAkBzzC,GAChB,YAAcA,EAAO0oB,YAC5BjkC,KAAKivD,iBAAiB1zC,GAG9B,iBAAiBA,GACbvb,KAAKopD,OAAS7tC,EAAOiG,MAAMhf,MAAM,GAErC,eAAe+Y,GACX,IAAI2zC,EAAa3zC,EAAO2zC,WAAW1sD,MAAM,GACrC6rD,EAAgBruD,KAAKsuD,mBACzBY,EAAW52B,KAAK,CAAC62B,EAAGC,IAAMD,EAAIC,GAC9B,IAAK,IAAI5uD,EAAI,EAAGA,EAAI0uD,EAAWvwD,OAAQ6B,IAAK,CACxC,IAAI6uD,EAAoBH,EAAW1uD,GAC/B+a,EAAO+zC,2BACPD,GAAqBhB,GAErBgB,EAAoB,IACpBH,EAAW9nB,OAAO5mC,EAAG,GACrBA,KAGR,OAAO0uD,EAEX,mBAAmB3zC,GACf,IASI0oB,EATApR,EAAO7yB,MAEPwhB,MAAOA,GACPjG,EACA2zC,EAAar8B,EAAK08B,eAAeh0C,GACjC8yC,EAAgBx7B,EAAKy7B,mBACrB/9C,EAAqBsiB,EAAK/D,OAAO,sBACjC0gC,GAAa,EACbC,EAAqB,EAEzBl0C,EAAOiG,MAAQ,GACfjG,EAAO2zC,WAAa,GACpB3zC,EAAO+oB,cAAgB,GACvB/oB,EAAOgpB,YAAc,GACrB,IAAImrB,EAAa,SAASC,EAAOC,EAAOC,GACpC,IAAI3tD,EAASytD,GAASC,GAAS,eAAaD,EAAM5B,IAAK6B,EAAM7B,KAI7D,OAHI7rD,GAAU2tD,IACV3tD,EAASytD,EAAM/xB,UAAYgyB,EAAMhyB,UAAY,WAAagyB,EAAMhyB,SAAW+xB,EAAMhwB,YAAciwB,EAAMjwB,YAElGz9B,GAEX,eAAKgtD,EAAY,CAACjtD,EAAO45B,KACrB,IAAIyI,EAEJ,GADAzI,GAAY4zB,EAAqBpB,EAC7BmB,IAAc3zB,EAAlB,CAGA2zB,EAAY3zB,EACZ,IAAIi0B,EAAUj9B,EAAKu2B,OAAOvtB,GACtBk0B,EAAcl9B,EAAKu2B,OAAOvtB,EAAW,GACrCm0B,EAAUxuC,EAAMqa,GAChBo0B,EAAczuC,EAAMqa,EAAW,GAC/Bg0B,EAASH,EAAWI,EAASC,IAAgBL,EAAWM,EAASC,GAKrE,GAJID,IACAA,EAAQn0B,SAAWA,EACnBtgB,EAAOiG,MAAM/hB,KAAKuwD,IAElBF,GAAWE,GAAWN,EAAWI,EAASE,EAASH,GACnD5rB,EAAa,SACbpR,EAAKu2B,OAAOvtB,GAAYm0B,EACpBF,EAAQj+C,UAAYm+C,EAAQn+C,QAC5B0J,EAAOiG,MAAM4lB,QAAQ,EAAG,EAAG,CACvBv1B,QAASm+C,EAAQn+C,UAEdtB,IAAuBgL,EAAO20C,eACrC5rB,EAAgBzR,EAAKs9B,kBAAkBL,EAASE,EAASn0B,EAAWwyB,SAErE,GAAI2B,IAAYF,GAAWG,GAAeP,EAAWI,EAASG,EAAaJ,GAC9E5rB,EAAa,SACbpR,EAAKu2B,OAAOhiB,OAAOvL,EAAU,EAAGm0B,GAChCP,SACG,GAAIK,IAAYE,GAAWD,GAAeL,EAAWM,EAASD,EAAaF,GAC9E5rB,EAAa,SACbpR,EAAKu2B,OAAOhiB,OAAOvL,EAAU,GAC7B4zB,IACAD,GAAa,MACV,KAAIQ,EAIP,OAHA/rB,EAAa,SACbpR,EAAKu2B,OAAOvtB,GAAYm0B,EAI5Bz0C,EAAO2zC,WAAWzvD,KAAKo8B,EAAWwyB,GAClC9yC,EAAOgpB,YAAY9kC,KAAKwkC,GACxB1oB,EAAO+oB,cAAc7kC,KAAK6kC,MAGlC,eAAe8rB,EAAQC,EAAQC,EAAiBpxB,EAAaqxB,GACzD,GAAIrpB,KAAKC,UAAUipB,EAAOxsD,OAAOs7B,MAAkBgI,KAAKC,UAAUkpB,EAAOzsD,OAAOs7B,IAC5E,OAAO,EAGX,SAASsxB,EAAenyB,EAAKa,GACzB,QAAOb,EAAIoyB,qBAAiB,IAAWpyB,EAAIoyB,eAAevxB,GAE9D,OAAIsxB,EAAeJ,EAAQlxB,KAAiBsxB,EAAeH,EAAQnxB,GAKvE,yBAAyB4wB,EAASE,EAASM,EAAiBC,GACxD,IAAIjsB,EACJ,GAAIwrB,EAAQlyB,UAAYoyB,EAAQpyB,QAAS,CACrC,GAAI,UAAYoyB,EAAQpyB,SAAW,gBAAkBoyB,EAAQpyB,UACzD0G,EAAgB,GACZ,WAAa0rB,EAAQpyB,SACrB,IAAK,IAAIsB,EAAc,EAAGA,EAAc4wB,EAAQlsD,OAAOjF,OAAQugC,IACvDl/B,KAAK0wD,eAAeZ,EAASE,EAASM,EAAiBpxB,EAAaqxB,IACpEjsB,EAAc7kC,KAAKy/B,GAK/B,UAAY8wB,EAAQpyB,SAAWoyB,EAAQzoB,aAAeuoB,EAAQvoB,YAAcuoB,EAAQv9B,QACpF+R,EAAgBwrB,EAAQv9B,MAAM1zB,IAAI,CAACw9B,EAAMp6B,KACrC,IAAIouB,EACJ,MAAO,iBAAmB,QAAUA,EAAKgM,EAAKr6B,cAAW,IAAWquB,OAAK,EAASA,EAAGjyB,MAAQ6D,GAAS,IACvGqC,OAAOrC,GAASA,GAAS,IAGpC,OAAOqiC,EAEX,kBAAkBwrB,EAASE,EAASM,EAAiBC,GACjD,IAAII,EAAuB3wD,KAAK4wD,yBAAyBd,EAASE,EAASM,EAAiBC,GAmB5F,OAlBK,OAASI,QAAwB,IAAWA,OAAuB,EAASA,EAAqBhyD,SAAWqB,KAAK8uB,OAAO,qBACzH6hC,OAAuB,GAEvBA,IACAb,EAAQv9B,OAASu9B,EAAQv9B,MAAM2E,QAAQ,CAACmF,EAAM6C,KAC1C,IAAI2xB,EAAgBF,EAAqBpuD,QAAQ28B,IAAgB,GAC5D2xB,GAAiBx0B,GAAQA,EAAKgL,QAC/BhL,EAAKgL,OAAO2oB,KAGpBA,EAAQ3oB,OAASyoB,EAAQzoB,OACzB2oB,EAAQppB,MAAQkpB,EAAQlpB,MACxBopB,EAAQz9B,MAAQu9B,EAAQv9B,MACpBg+B,IACAP,EAAQ7qB,UAAY2qB,EAAQlsD,QAEhCksD,EAAQzoB,QAAUyoB,EAAQzoB,OAAO2oB,IAE9BW,EAEX,cAAchB,EAAOC,GACjB,IAAIv/B,EAAIub,EAAIsW,EAAIC,EAChB,GAAIjb,KAAKC,UAAUwoB,EAAM/rD,UAAYsjC,KAAKC,UAAUyoB,EAAMhsD,QACtD,OAAO,EAEX,GAAI,CAAC,WAAY,WAAY,UAAW,aAAa+1C,KAAKr8B,GAASqyC,EAAMryC,KAAWsyC,EAAMtyC,IACtF,OAAO,EAEX,GAAI,UAAYqyC,EAAM/xB,SAAW,gBAAkB+xB,EAAM/xB,QAAS,CAC9D,IAAIkzB,EAAgBnB,EAAMpoB,aAAeqoB,EAAMroB,WAC3CwpB,EAAoB7pB,KAAKC,UAAUwoB,EAAMqB,gBAAkB9pB,KAAKC,UAAUyoB,EAAMoB,cAChFC,GAAqB,QAAU5gC,EAAKs/B,EAAM57C,YAAS,IAAWsc,OAAK,EAASA,EAAG6gC,mBAAqB,QAAUtlB,EAAKgkB,EAAM77C,YAAS,IAAW63B,OAAK,EAASA,EAAGslB,kBAAoB,QAAUhP,EAAKyN,EAAM57C,YAAS,IAAWmuC,OAAK,EAASA,EAAGiP,6BAA+B,QAAUhP,EAAKyN,EAAM77C,YAAS,IAAWouC,OAAK,EAASA,EAAGgP,0BACzU,IAAKL,IAAkBC,IAAsBE,EACzC,OAAO,EAGf,OAAO,EAEX,kBAAkB11C,GACd,IAAI8U,EACA6+B,EAAa,GACb5qB,EAAgB,GAChBC,EAAc,GACd/iB,EAAQ,GACR4vC,EAAgB,GAChBb,EAAe,QAAUlgC,EAAK,OAAS9U,QAAU,IAAWA,OAAS,EAASA,EAAOg1C,oBAAiB,IAAWlgC,GAAKA,EAE1H,SAASghC,EAAUhzB,GACf,GAAIA,EACA,MAAO,GAAGhT,OAAOgT,EAAIT,QAAS,KAAKvS,OAAO6b,KAAKC,UAAU9I,EAAI0vB,MAIrE,IAAIuD,EAAetxD,KAAKopD,OACpBmI,EAAWD,EAAa9uD,QAC5B+Y,EAAOiG,MAAM0V,QAAQ,CAACnM,EAAM9oB,KACxB,IAAI8rD,EAAMsD,EAAUtmC,GACpBqmC,EAAcrD,GAAO9rD,EACrB8oB,EAAK8Q,SAAW55B,IAEpB,IAAIC,EAAS,gBAAYqvD,EAAUh2C,EAAOiG,MAAO6vC,EAAW,CAAC1B,EAAOC,MAC3D5vD,KAAKwxD,cAAc7B,EAAOC,KAG3BD,EAAMp9B,QACNo9B,EAAMtoB,QAAUsoB,EAAMtoB,OAAOuoB,GAC7BD,EAAMp9B,MAAM2E,QAAQmF,IACZA,GAAQA,EAAKgL,QACbhL,EAAKgL,OAAOuoB,GAAO,OAIxB,IAEN1tD,GAILA,EAAOg1B,QAAQ3b,IACX,OAAQA,EAAOnd,MACX,IAAK,SACD,IACI6D,MAAOA,GACPsZ,EACAy0C,EAAUz0C,EAAOxH,MAEjB+7C,QAASA,GACTv0C,EACAo1C,EAAuB3wD,KAAKmwD,kBAAkBL,EAASE,EAAS/tD,EAAOsuD,GAC3ErB,EAAWzvD,KAAKwC,GAChBsiC,EAAY9kC,KAAK,UACjB+hB,EAAM/hB,KAAKuwD,GACXsB,EAAarvD,GAAS+tD,EACtB1rB,EAAc7kC,KAAKkxD,GACnB,MACJ,IAAK,SACDzB,EAAWzvD,KAAK8b,EAAOtZ,OACvBsiC,EAAY9kC,KAAK,UACjB+hB,EAAM/hB,KAAK8b,EAAOxH,MAClBuwB,EAAc7kC,UAAK,GACnB6xD,EAAalqB,OAAO7rB,EAAOtZ,MAAO,EAAGsZ,EAAOxH,MAC5C,MACJ,IAAK,SACDm7C,EAAWzvD,KAAK8b,EAAOtZ,OACvBsiC,EAAY9kC,KAAK,UACjB6xD,EAAalqB,OAAO7rB,EAAOtZ,MAAO,GAClCuf,EAAM/hB,KAAK8b,EAAOu0C,SAClBxrB,EAAc7kC,UAAK,MAG/B8b,EAAOhL,oBAAqB,EAC5BgL,EAAO0oB,WAAa,SACpB1oB,EAAO2zC,WAAaA,EACpB3zC,EAAO+oB,cAAgBA,EACvB/oB,EAAOgpB,YAAcA,EACrBhpB,EAAOiG,MAAQA,EACX+vC,EAAS5yD,SACT4c,EAAOg1C,cAAe,GAE1BvwD,KAAKyxD,mBAAmB51B,IACpB,IAAI61B,EAAoB1xD,KAAK2xD,iBAAmB,EAC5CC,EAAiB5xD,KAAK6xD,oBACtB/B,EAAUyB,EAAS11B,EAAW61B,GAC9B3D,EAAMsD,EAAUvB,GAChBgC,EAAqBV,EAAcrD,GACvC,OAAO+D,GAAsB,EAAIA,EAAqBF,EAAiB/1B,EAAW,KAlDlF77B,KAAKivD,iBAAiB1zC,GAqD9B,mBAAmBsgB,IACnB,mBAAmBra,EAAOjG,GACtB,OAAOiG,EAEX,iBAAiBjG,GACb,IAAIiG,EACAzV,EAAa/L,KAAK4+C,YAClB3a,EAAa1oB,EAAO0oB,YAAc,UAEtC,GADA1oB,EAAO0oB,WAAaA,EAChBl4B,EAAY,CACZ,IAAIgmD,EAAuB/xD,KAAKqpD,sBAC5B9tC,EAAOy2C,wBAA0BD,EACjCvwC,EAAQuwC,GAERvwC,EAAQjG,EAAOiG,OAASzV,EAAWyV,QACnCA,EAAQxhB,KAAKiyD,oBAAoBzwC,GACjCA,EAAQxhB,KAAKkyD,cAAc1wC,EAAOjG,GAClCvb,KAAKqpD,sBAAwB7nC,GAEjCA,EAAQxhB,KAAKmyD,mBAAmB3wC,EAAOjG,GACvCA,EAAOiG,MAAQA,EACf,IAAI+vC,EAAWvxD,KAAKopD,OAAOzqD,SAAW6iB,EAAM7iB,QAAUqB,KAAKopD,OAC3DppD,KAAKoyD,aAAa72C,GAClB,IAAI8yC,EAAgBruD,KAAKsuD,mBACzB,eAAKtuD,KAAKopD,OAAQ,CAACnnD,EAAO8oB,KACtB,IAAIsF,EACJtF,EAAK8Q,SAAW55B,EAAQosD,EACpBkD,IACAxmC,EAAKwH,MAAQ,QAAUlC,EAAKkhC,EAAStvD,GAAOswB,aAAU,IAAWlC,EAAKA,EAAK,IAE/E,IAAI2/B,EAAUxuC,EAAMvf,GAChB+tD,IACAjlC,EAAKsnC,UAAYrC,EAAQqC,aAGjCryD,KAAK2xD,gBAAkB3xD,KAAK6xD,yBAE5B7xD,KAAKopD,OAAS,GAGtB,gBAAgBn6B,GACZ,IAAImV,EAAOpkC,KAAKsyD,iBACZvmD,EAAa/L,KAAK+L,aAClBA,GACAkjB,EAAErU,QAAQsc,QAAQ3b,IACd,GAAI,WAAaA,EAAOnd,MAAQmd,EAAOtZ,OAAS,EAAG,CAE/C,IADA,IAAIq8B,EAAY,EACP99B,EAAI,EAAGA,EAAI+a,EAAOtZ,MAAOzB,IAAK,CACnC,IAAI69B,EAAM+F,EAAK5jC,IACX69B,GAAQ,SAAWA,EAAIT,SAAW,UAAYS,EAAIT,SAClDU,IAGR/iB,EAAOtZ,MAAQq8B,KAK/B,YAAY/iB,EAAQg3C,GAChB,IAAIliC,EAEJ,GADA9U,EAASA,GAAU,QACf,IAAWvb,KAAKuqD,oBAChBhvC,EAAOhL,mBAAqB,QAAU8f,EAAK9U,EAAOhL,0BAAuB,IAAW8f,EAAKA,EAAKrwB,KAAKuqD,oBACnGhvC,EAAOi3C,qBAAuBj3C,EAAOi3C,sBAAwBxyD,KAAKyyD,2BAC/D,GAAIl3C,EAAOX,QACdW,EAAOhL,mBAAqBvQ,KAAK8uB,OAAO,2BACrC,GAAIyjC,EAAe,CACtB,IAAI/I,EAAiBxpD,KAAK+L,aAAay9C,iBACvCjuC,EAAOhL,mBAAqBi5C,IAAmBA,EAAez8C,WAAay8C,EAAehiC,WAAaxnB,KAAK8uB,OAAO,sBACnHvT,EAAOg3C,eAAgB,EACnB/I,IAAmBA,EAAekD,QAAUlD,EAAep5C,QAAUo5C,EAAejZ,kBACpFh1B,EAAOi3C,sBAAuB,IAGlCxyD,KAAK8yB,kBAAqBvX,EAAOpB,QAIrCna,KAAK0yD,iBAAiBn3C,GAClBA,EAAOpB,QAGXna,KAAK2yD,aAAap3C,IAPdvb,KAAKwqD,SAAS/qD,KAAK8b,GAS3B,wBACI,IAAIxP,EAAa/L,KAAK+L,aACtB,OAAOA,GAAcA,EAAW6mD,yBAA2B,GAE/D,aAAar3C,GACLvb,KAAKspD,yBACL/tC,EAAOiuC,eAAiBxpD,KAAKspD,uBAC7BtpD,KAAKspD,uBAAyB,MAElC,eAAY,KACRtpD,KAAKwoC,QAAQ/R,KAAKlb,KAG1B,YACI,OAAOvb,KAAKqqD,YAAcrqD,KAAKsqD,iBAEnC,sBACItqD,KAAK6yD,eAAep8B,KAAKz2B,KAAKsrD,YAAatrD,KAAK8yD,cAEpD,6BACI,OAAO,KAEX,eACI,IAAI/mD,EAAa/L,KAAK4+C,YACtB,GAAI7yC,EAGA,OAFAA,EAAW4a,UAAU,GACrB3mB,KAAK+yD,mBAAoB,EAClB/yD,KAAK0sD,SAASl2B,KAAK,KAClBx2B,KAAK+yD,mBACL/yD,KAAKkpD,YAAYzyB,SAKjC,sBACIz2B,KAAK+yD,mBAAoB,EAE7B,OAAOC,GACH,IAAIjnD,EAAa/L,KAAK4+C,YAClBt6C,EAASyH,GAAcA,EAAWzH,SACtC,GAAI,IAAME,UAAU7F,OAChB,OAAO2F,EAEX0uD,EAAaxuD,UAAU7F,OAAS,EAAIF,MAAMw0D,UAAUzwD,MAAM22B,KAAK30B,UAAW,GAAKwuD,EAC3E,QAAchN,sBAAsB1hD,EAAQ0uD,KAG5CjnD,GACAA,EAAWzH,OAAO0uD,GAEtBhzD,KAAK2sD,gBAET,YAAYuG,GACR,IAAIliC,EAAoBhxB,KAAKg/B,mBACzBm0B,EAAoB,SAASzgD,GAE7B,IADA,IAAIm0C,EAAc71B,EAAkB61B,cAC3B5kD,EAAQ,EAAGA,EAAQ4kD,EAAa5kD,IACrC+uB,EAAkBoa,aAAanpC,EAAOyQ,OAAY,IAI1D,GADA1S,KAAKixB,UAAU61B,cACXtiD,UAAU7F,OAAS,EACnB,OAAQu0D,GACJ,IAAK,aACDlzD,KAAKsE,OAAO,MACZ,MACJ,IAAK,SACDtE,KAAKozD,aAAa,IAClB,MACJ,IAAK,SACDD,EAAkB,gBAClB,MACJ,IAAK,MACDA,EAAkB,oBAG1BnzD,KAAKsE,OAAO,MACZtE,KAAKozD,aAAa,IAClBD,EAAkB,eAClBA,EAAkB,uBAClBA,EAAkB,gBAEtBnzD,KAAKixB,UAAU81B,YAEnB,yBACI,IAAIl0B,EAAO7yB,KACX6yB,EAAK2V,QAAQ9G,KAAI,SAAU2xB,IACvBxgC,EAAK2V,QAAQxF,OAAOqwB,GACpBxgC,EAAKygC,kBAAkB78B,UAG/B,yBACA,6BAA6B1qB,EAAYsE,GACrC,IAAIkjD,EAA4BvzD,KAAKwzD,wBACjCC,EAAoBF,EAA0BG,OAAO1zD,KAAKixB,WAE9D,OADAwiC,EAAkBvU,KAAKnzC,EAAYsE,GAC5BojD,EAEX,eACI,IAAI1I,EAAQvmD,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,GAAKA,UAAU,GAAKxE,KAAK+qD,QAClF,OAAOA,aAAiB,QAE5B,cAAcA,GAEV,OADAA,EAAQA,GAAS/qD,KAAK+qD,QACfA,aAAiB,QAE5B,yBAAyBh/C,GACrB,IAAIsE,EAAmBrQ,KAAK8uB,OAAO,oBAC/Bi8B,EAAQh/C,EAAWg/C,QACnB4I,EAA0B,CAC1BnsC,WAAW,EACXlW,SAAS,EACTlB,QAAQ,EACRrD,UAAU,EACVyE,SAAS,GAeb,OAbI,eAASnB,IAAqBA,EAAiBoX,cAC/CpX,EAAmB,OAAA8c,EAAA,MAAO,GAAIwmC,EAAyBtjD,IAEvD,SAAWA,IACXA,EAAmBrQ,KAAK4zD,aAAa7I,IAAU/qD,KAAK6zD,cAAc9I,GAAS,GAAK,CAC5EvjC,WAAW,EACXlW,SAAS,EACTlB,QAAQ,KAGZ,IAASC,IACTA,EAAmBsjD,GAEhB3zD,KAAK8zD,6BAA6B/nD,EAAYsE,GAEzD,cAActE,GACV,IAAIiiD,EAAgBhuD,KAAK4+C,aACpB7yC,GAAciiD,IACfA,EAAc+F,YACd/F,EAAcxlB,QAAQxF,OAAOhjC,KAAKupD,qBAClCyE,EAAc6E,eAAe7vB,OAAOhjC,KAAK2pD,wBACzCqE,EAAcgG,UAAUhxB,OAAOhjC,KAAK6pD,mBACpCmE,EAAciG,0BAA0BjxB,OAAOhjC,KAAK+pD,mCACpDiE,EAAckG,SAASlxB,OAAOhjC,KAAKiqD,kBACnC+D,EAAcX,OAAOrqB,OAAOhjC,KAAKmqD,oBACjC6D,EAAcmG,QAAQn0D,KAAKo0D,sBAE3BroD,IACAA,EAAa/L,KAAKq0D,yBAAyBtoD,IAE/C/L,KAAK4+C,YAAc7yC,EACfA,IACA/L,KAAKs0D,yBACLt0D,KAAKqqD,YAAct+C,EAAW+jC,WAC9B9vC,KAAK4sD,kBAAmB,EACxB5sD,KAAKmtD,uBAAyBntD,KAAKg/B,mBAAmB2gB,wBACtD5zC,EAAWy8B,QAAQ9G,IAAI1hC,KAAKupD,qBAC5Bx9C,EAAW8mD,eAAenxB,IAAI1hC,KAAK2pD,wBACnC59C,EAAWioD,UAAUtyB,IAAI1hC,KAAK6pD,mBAC9B99C,EAAWkoD,0BAA0BvyB,IAAI1hC,KAAK+pD,mCAC9Ch+C,EAAWmoD,SAASxyB,IAAI1hC,KAAKiqD,kBAC7Bl+C,EAAWshD,OAAO3rB,IAAI1hC,KAAKmqD,qBAGnC,MAAMoK,GACF,OAAOv0D,KAAKopD,OAEhB,UACI,OAAQppD,KAAKwhB,QAAQ7iB,OAEzB,YACI,OAAOqB,KAAK4+C,YAAc5+C,KAAK4+C,YAAY4V,YAAc,EAE7D,aACI,OAAOx0D,KAAK4+C,YAEhB,QACI,IAAI7yC,EAAa/L,KAAK4+C,YACtB,OAAO7yC,GAAcA,EAAWg/C,QAEpC,QAAQh3C,GACJ,IAAI0gD,EAAajwD,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,IAAKA,UAAU,GACzEquB,EAAO7yB,KACP00D,EAAI,IAAI,OACR3oD,EAAa8mB,EAAK+rB,YACtB,GAAI7yC,EACA,GAAIgI,EAAM,CACN,IAAI4R,EAAU,CACV5R,KAAMA,EACNq4C,iBAAiB,EACjBD,iBAAkB,CACdE,cAAc,GAElBsI,YAAa,CACTrwD,OAAQmwD,EAAa,KAAO5hC,EAAKozB,oBACjCh+B,MAAOlc,EAAWkc,QAClBqQ,KAAMvsB,EAAWusB,SAGzBvsB,EAAW6oD,kBAAkBjvC,GAC7B,eAAKA,EAAQ5R,MAAMyiB,KAAKziB,IACpB,IAAIsc,EACJtc,EAAO8e,EAAKo/B,oBAAoBl+C,GAChC2gD,EAAEx3B,QAAQrK,EAAKq/B,cAAcn+C,EAAM,CAC/BkwB,WAAY,eACZ,QAAU5T,EAAK1K,EAAQ2mC,aAAU,IAAWj8B,OAAK,EAASA,EAAG7e,WAClEy3B,KAAKyrB,EAAE7xB,aACP,GAAK92B,EAAWu/C,YAanBoJ,EAAE7xB,aAb8B,CAChC,IAAI8xB,EAAc,OAAAxnC,EAAA,MAAO,GAAIphB,EAAW4oD,cAAe,CACnDtI,cAAc,EACdyB,mBAAmB,IAEvB/hD,EAAWk8C,KAAK0M,GAAan+B,KAAK,CAAChV,EAAO8qC,KACtC9qC,EAAQqR,EAAKo/B,oBAAoBzwC,GACjCA,EAAQqR,EAAKq/B,cAAc1wC,EAAO,CAC9ByiB,WAAY,eAEhBywB,EAAEx3B,QAAQ1b,EAAO8qC,GAASA,EAAM96C,WACjCy3B,KAAKyrB,EAAE7xB,aAKd6xB,EAAEx3B,QAAQ,IAEd,OAAOw3B,EAEX,iBAAiB74B,EAAU04B,GACvB,IAAIxpC,EAAO/qB,KAAKwhB,MAAM+yC,GAAU14B,GAChC,GAAI9Q,EACA,OAAOA,EAAKgjC,IAGpB,iBAAiBA,EAAKwG,GAClB,OAAO,QAAcM,cAAc9G,EAAK/tD,KAAKwhB,MAAM+yC,IAEvD,MAAMxgD,GACF,IAAIg3C,EAAQ/qD,KAAK+qD,QACjB,GAAIA,EACA,OAAOA,EAAM4D,MAAM56C,GAG3B,MAAMg6C,GACF,IAEI7rD,EAFA6oD,EAAQ/qD,KAAK+qD,QACblvB,EAAW77B,KAAK80D,iBAAiB/G,GAErC,GAAKhD,EAML,OAHIlvB,GAAY,IACZ35B,GAAS,IAAK,QAAUg7B,QAAQl9B,KAAKwhB,QAAQqa,GAAU9nB,OAEpD7R,GAAU6oD,EAAMgK,MAAMhH,GAEjC,MACI,IAAIhD,EAAQ/qD,KAAK+qD,QACjB,GAAIA,EACA,OAAOA,EAAMgD,MAGrB,kBAAkBiH,GACd,OAAO,EAEX,cAAcC,GACV,IAAIpiC,EAAO7yB,KACPkC,EAAS,IAAI,OACbmiD,EAAY,GACZtwC,EAAO,GASX,OARA,eAAKkhD,EAAS,CAAChzD,EAAO8rD,KAClB1J,EAAU5kD,KAAKozB,EAAKkiC,MAAMhH,GAAKv3B,KAAK0+B,IAChCnhD,EAAK9R,GAASizD,OAGtB,OAAK3wD,MAAM,OAAG8/C,GAAWnhB,OAAO,KAC5BhhC,EAAOg7B,QAAQnpB,KAEZ7R,EAEX,UAAUlE,GACN,OAAO8qD,GAAa9oD,KAAM,YAAahC,GAE3C,SAASA,GACL,OAAO8qD,GAAa9oD,KAAM,WAAYhC,GAE1C,mBAAmBm3D,GACfn1D,KAAKsqD,kBAAmB,EACxBtqD,KAAK8yD,aAAeqC,GAAe,GACnCn1D,KAAKotD,sBAET,mBACIptD,KAAKsqD,kBAAmB,EACxBtqD,KAAK8yD,kBAAe,EACpB9yD,KAAKotD,sBAET,QAAQznC,IACA,IAASA,EACTA,EAAU,CACN+mC,QAAQ,EACR0I,aAAa,GAETzvC,IACRA,EAAU,CACNthB,QAAQ,EACR0M,WAAW,EACX27C,QAAQ,IAGhB,IAAI75B,EAAO7yB,KACP+L,EAAa8mB,EAAKwiC,iBAElBD,YAAaA,GACbzvC,EACA+uC,EAAI,IAAI,OACRY,EAAsB,WACtBziC,EAAK03B,sBAAwB6K,GAgBjC,OAdA,gBAAMzvC,EAAQthB,QAAUwuB,EAAKmM,mBAAmB4mB,WAAW1iB,OAAO,KAC1Dvd,EAAQsiC,MAAQtiC,EAAQ+mC,QACxB3gD,GAAcA,EAAWuiB,GAAG,sBAAuBgnC,GACnD,eAAKziC,EAAK65B,OAAO/mC,EAAQ+mC,OAAQ0I,IAAclyB,OAAO,KAClDn3B,GAAcA,EAAWyiB,IAAI,sBAAuB8mC,GACpDziC,EAAK03B,yBAAsB,IAC5B/zB,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAE7xB,UAE1BhQ,EAAKq5B,YAAY,CACb37C,mBAAoBoV,EAAQyvC,cAEhCV,EAAEx3B,aAGHw3B,EAAEzxB,UAEb,iBACI,OAAOjjC,KAAKwhB,QAEhB,qBACIxhB,KAAKkuD,cAAc,MAEvB,UACIluD,KAAKu1D,qBACL1tB,MAAMssB,UAEV,YAAYqB,EAAYJ,GACpBI,EAAa/2D,MAAMC,QAAQ82D,GAAcA,EAAa,CAACA,IACnDA,EAAW72D,OAAS,GAAK,eAAU62D,EAAW,MAC9Cx1D,KAAKksD,YAAY,CACbjoB,WAAY,SACZirB,WAAYsG,EACZtF,cAAekF,IAI3B,2BAA2BnW,GACvB,OAAOj/C,KAAKgpD,8BAAgC,qBAAuB/J,GAAY,oBAAsBA,GAEzG,eACI,MAAO,CACHwW,WAAYz1D,KAAK8uB,OAAO,oBACxBnI,UAAW3mB,KAAK2mB,YAChBC,SAAU5mB,KAAK4mB,YAGvB,qBACI,OAAO5mB,KAAK4+C,aAAe5+C,KAAK4+C,YAAY8W,qBAEhD,mBACI,IAAI/uC,EAAY3mB,KAAK2mB,YACjB6tC,EAAYx0D,KAAKw0D,YACrB,OAAO7tC,IAAc6tC,EAAY,EAErC,OACI,IAAInkC,EACJ,OAAO,QAAUA,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAG43B,OAE3E,OAAOyE,EAAQ0I,GACX,IAAI/kC,EACJ,OAAO,QAAUA,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGq8B,OAAOA,EAAQ0I,GAE1F,OACI,IAAI/kC,EACJ,OAAO,QAAUA,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAG5wB,QAAQ+E,WAEnF,aACI,IAAI6rB,EACJ,OAAOrwB,KAAK4+C,YAAc,QAAUvuB,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGslC,aAAe,EAE7G,kBACI,IAAItlC,EACJ,OAAOrwB,KAAK4+C,YAAc,QAAUvuB,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGulC,kBAAoB,EAElH,mBACI,IAAIvlC,EACJ,OAAOrwB,KAAK4+C,cAAc,QAAUvuB,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGwlC,oBAE9F,WACI,IAAIxlC,EACJ,OAAOrwB,KAAK4+C,cAAc,QAAUvuB,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGyf,YAE9F,aACI,IAAIzf,EACJ,OAAOrwB,KAAK4+C,YAAc,QAAUvuB,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGk8B,aAAe,GAG1G,ICztCH,GAAI,GDytCGuJ,GAAuB,CAC9B5oB,eAAgB,KAAM,CAClB6oB,eAAgB,EAChBhqD,WAAY,KACZb,cAAc,EACdqF,oBAAoB,EACpBrD,kBAAkB,EAClBe,oBAAqB,KACrBoC,iBAAkB,OAClBD,OAAQ,CACJgI,SAAS,EACTwO,cAAU,EACVD,eAAW,KAGnBoS,YAAa,CACThlB,KAAM,K,aE9sCC,MAAQ8gB,WAAWjC,QAAQ,WACtC,SAASojC,EAAWx0C,EAAOy0C,GACvB,GAAIz0C,IACAA,EAAQA,EAAMhf,MAAM,GAChByzD,GACA,IAAK,IAAIz1D,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAC9BghB,EAAMhhB,GAAK,OAAA2sB,EAAA,MAAO,CACd4gC,IAAKvsC,EAAMhhB,GAAGutD,KACfvsC,EAAMhhB,IACTghB,EAAMhhB,GAAGghB,MAAQw0C,EAAWx0C,EAAMhhB,GAAGghB,MAAOy0C,EAAa,GAIrE,OAAOz0C,EAGX,SAAS00C,EAAwBvB,EAAajP,EAAiByQ,GAC3D,IAAI3M,EAAiB,CACjBkD,QAAQ,EACR0J,YAAY,GAmBhB,OAjBI1Q,IACA8D,EAAiB,CACbl4C,SAAU,QAAcw0C,oBAAoB6O,EAAYr8B,KAAMotB,EAAgBptB,MAC9EvrB,UAAW,QAAc+4C,oBAAoB6O,EAAY1sC,MAAOy9B,EAAgBz9B,OAAO,GACvFsoB,gBAAiB,QAAcuV,oBAAoB6O,EAAY1sC,MAAOy9B,EAAgBz9B,QAAUy9B,EAAgB2Q,YAChH7uC,WAAY,QAAcw+B,sBAAsB2O,EAAYrwD,OAAQohD,EAAgBphD,QACpFqiB,UAAWguC,EAAYhuC,YAAc++B,EAAgB/+B,UACrD2vC,KAAM3B,EAAY2B,OAAS5Q,EAAgB4Q,KAC3CC,KAAM5B,EAAY4B,OAAS7Q,EAAgB6Q,KAC3C3vC,SAAU+tC,EAAY/tC,WAAa8+B,EAAgB9+B,SACnDwvC,WAAYD,EACZzJ,QAAQ,EACRt8C,QAAQ,GAEZo5C,EAAekD,OAASyJ,GAAgB3M,EAAel4C,SAAWk4C,EAAez8C,UAAYy8C,EAAehiC,UAC5GgiC,EAAep5C,OAASo5C,EAAe7iC,WAAa6iC,EAAe5iC,UAAY4iC,EAAe+M,MAE3F/M,EAGX,SAASgN,EAAqB7wC,EAAS8wC,GACnC,IAAIR,EAAa,QAAc7X,qBAAqBz4B,EAAQsC,OAAStC,EAAQwmC,iBAAiBlkC,OAAStC,EAAQgvC,YAAY1sC,OAAOtpB,OAC9H6iB,EAAQ,GACZ,GAAIk1C,EAAmBl1C,EAAOmE,EAASswC,GACnC,OAAOz0C,EAEPi1C,GACE,SAASE,EAAqBhxC,EAASswC,GACrC,IAAI5lC,EAAIub,EACJgrB,EAAsBD,EAAoBh4D,QAE1CwtD,iBAAkBA,GAClBxmC,EACJ,QAAI,IAAWwmC,EAAiBmK,MAAQnK,EAAiBoK,OAASN,EAAY,CAC1E,IAAIY,EAAoB,GACxBH,EAAmBG,EAAmBlxC,EAASswC,GAAY,GAC3D,IAAIa,EAAoBD,EAAkBl4D,QACtCi4D,GAAuBE,KACvBnxC,EAAQ2wC,KAAO,QAAUjmC,EAAK1K,EAAQ2wC,YAAS,IAAWjmC,EAAKA,EAAK87B,EAAiBmK,KACrF3wC,EAAQ4wC,KAAO,QAAU3qB,EAAKjmB,EAAQ4wC,YAAS,IAAW3qB,EAAKA,EAAKugB,EAAiBoK,MAErFK,IACAzK,EAAiBmK,MAAQM,EACzBzK,EAAiBoK,MAAQK,EACzBjxC,EAAQoxC,oBAAsBJ,GAE9BG,IACA3K,EAAiBoK,MAAQO,EACzBnxC,EAAQqxC,kBAAoBH,EAAkBI,YArBxD,CAwBAz1C,EAAOmE,EAASswC,GAI1B,SAASS,EAAmBl1C,EAAOmE,EAASswC,EAAYiB,GACpD,IAAI7mC,EAAIub,EAAIsW,EAAIC,EAAIgV,GAEhBhL,iBAAkBA,GAClBxmC,EACA4wC,EAAO,QAAU3qB,EAAK,QAAUvb,EAAK1K,EAAQ4wC,YAAS,IAAWlmC,EAAKA,EAAK87B,EAAiBoK,YAAS,IAAW3qB,EAAKA,EAAK,EAC1HwrB,EAAc,QAAUlV,EAAKv8B,EAAQ0xC,kBAAe,IAAWnV,OAAK,EAASA,EAAG1gC,MACpF,GAAI+0C,GAAQa,EAAa,CAErB,IADA,IAAId,EAAO,QAAUa,EAAK,QAAUhV,EAAKx8B,EAAQ2wC,YAAS,IAAWnU,EAAKA,EAAKgK,EAAiBmK,YAAS,IAAWa,EAAKA,EAAK,EACrH32D,EAAI,EAAGA,EAAI+1D,EAAM/1D,IAAK,CAC3B,IAAI82D,EAAaJ,EAAUX,EAAO,EAAI/1D,EAAIA,EACtC+2D,EAAiBD,EAAahB,EAC9BkB,EAAYJ,EAAYG,GAC5B,QAAI,IAAWC,GAAaD,KAAkBH,EAC1C,OAAO,EAEX,IAAIrsC,EAAO0sC,EAAiB9xC,EAAS6xC,EAAWvB,EAAYqB,EAAYf,GACxE,IAAIxrC,EAGA,OAAO,EAFPvJ,EAAM/hB,KAAKsrB,GAKnB,OAAO,EAEX,OAAO,EAGX,SAAS0sC,EAAiB9xC,EAAS6xC,EAAWvB,EAAYh0D,EAAOs0D,GAC7D,GAAIN,GAAcuB,EAAW,CACzB,IAAIE,EAAQ,IAAMz1D,GAAS0jB,EAAQ+xC,OAAS,GACxCC,EAAQ11D,IAAUs0D,EAAO,GAAK5wC,EAAQgyC,OAAS,GACnD,OAAO,SAASC,EAAsBJ,EAAWvB,EAAYyB,EAAOC,GAChE,GAAI1B,GAAcuB,EAAW,CACzB,IAAIt1D,EAAS,eAAS,GAAIs1D,GACtBlB,EAAOoB,EAAM,IAAM,EACnBnB,EAAOoB,EAAM,IAEbn2C,MAAOA,GACPg2C,EACJ,GAAIh2C,EAAO,CACP,QAAI,IAAW+0C,IAAS/0C,EAAM80C,GAC1B,OAEJp0D,EAAOsf,MAAQ,GACXk2C,EAAM/4D,SACNuD,EAAOgvD,gBAAiB,GAExBqF,IACAr0D,EAAOivD,yBAA2BqG,EAAU92D,MAAQ61D,GAExD,IAAK,IAAI/1D,EAAI,OAAG,IAAW+1D,EAAO/0C,EAAMhhB,EAAI81D,GAAQ91D,EAAI+1D,EAAM/1D,IAAK,CAC/D,IAAIq3D,EAAiBr2C,EAAMhhB,EAAI81D,GAC3BwB,EAASt3D,EAAI,IAAM+1D,EACnBxrC,EAAO6sC,EAAsBC,EAAgB5B,EAAa,EAAG,IAAMz1D,EAAIk3D,EAAMl1D,MAAM,GAAK,GAAIs1D,EAASH,EAAMn1D,MAAM,GAAK,IAC1H,QAAI,IAAWuoB,EAGX,OAFA7oB,EAAOsf,MAAM/hB,KAAKsrB,IAM9B,OAAO7oB,EAEX,OAAOs1D,EAhCJ,CAiCLA,EAAWvB,EAAYyB,EAAOC,GAEpC,OAAOH,EAGX,SAASO,EAAaP,EAAWQ,EAAY/B,EAAYyB,GACrD,GAAIzB,GAAc+B,EAAY,CAC1B,IAAI91D,EAAS,eAAS,GAAI81D,UACnB91D,EAAOgvD,sBACPhvD,EAAOivD,yBACd,IAAImF,EAAOoB,EAAM,IAAM,EASvB,OARIM,EAAWx2C,QACXtf,EAAOsf,OAAS,OAASg2C,QAAa,IAAWA,OAAY,EAASA,EAAUh2C,QAAU,GAC1Fw2C,EAAWx2C,MAAM0V,QAAQ,CAACnM,EAAM9oB,KAC5B,IAAIg2D,EAAch2D,EAAQq0D,EACtB4B,EAAa,IAAMj2D,EAAQy1D,EAAMl1D,MAAM,GAAK,GAChDN,EAAOsf,MAAMy2C,GAAeF,EAAa71D,EAAOsf,MAAMy2C,GAAcltC,EAAMkrC,EAAa,EAAGiC,MAG3Fh2D,EAEX,OAAO81D,EAEX,IAAIhqB,EAAU,CACV,KAAKjiC,EAAYsE,GACb,IAAIwiB,EAAO7yB,KACX6yB,EAAK+rB,YAAc7yC,EACnB8mB,EAAKslC,kBAAoB9nD,GAAoB,GAC7CwiB,EAAKulC,aAAersD,EAAWssD,aAC/BxlC,EAAKylC,cAAe,EACpBzlC,EAAK0lC,mBAAqB,EAC1B1lC,EAAK2lC,YAAc,CACfh3C,MAAO,IAEXqR,EAAK4lC,oBAAsB,GAC3B5lC,EAAK6lC,gBAAkB3sD,EAAW2sD,gBAClC7lC,EAAK8lC,sBAAwB,EAC7B9lC,EAAK+lC,eAAgB,EACrB/lC,EAAK2V,QAAU,wBACf3V,EAAKggC,eAAiB,wBACtBhgC,EAAKmhC,UAAY,wBACjBnhC,EAAKohC,0BAA4B,wBACjCphC,EAAKqhC,SAAW,wBAChBrhC,EAAKw6B,OAAS,wBACdx6B,EAAK02B,oBAAsB12B,EAAK4V,mBAAmBvU,KAAKrB,GACxDA,EAAKk3B,kCAAoCl3B,EAAKm3B,iCAAiC91B,KAAKrB,GACpFA,EAAKgmC,mBAAqBhmC,EAAK+hC,kBAAkB1gC,KAAKrB,GACtDA,EAAK82B,uBAAyB92B,EAAK+2B,sBAAsB11B,KAAKrB,GAC9DA,EAAKg3B,kBAAoBh3B,EAAKi3B,iBAAiB51B,KAAKrB,GACpDA,EAAKimC,aAAejmC,EAAKkmC,YAAY7kC,KAAKrB,GAC1CA,EAAKo3B,iBAAmBp3B,EAAKq3B,gBAAgBh2B,KAAKrB,GAClD9mB,EAAWuiB,GAAG,UAAWuE,EAAK02B,qBAC9Bx9C,EAAWuiB,GAAG,4BAA6BuE,EAAKk3B,mCAChDh+C,EAAWuiB,GAAG,sBAAuBuE,EAAKgmC,oBAC1C9sD,EAAWuiB,GAAG,iBAAkBuE,EAAK82B,wBACrC59C,EAAWuiB,GAAG,YAAauE,EAAKg3B,mBAChC99C,EAAWuiB,GAAG,WAAYuE,EAAKo3B,kBAC/Bl+C,EAAWg/C,QAAQz8B,GAAG,aAAcuE,EAAKimC,cACzC,eAAK/sD,EAAY,CAACitD,EAAYC,MACrBpmC,EAAKmmC,IAAe,eAAWC,KAChCpmC,EAAKmmC,GAAc,WACf,OAAOh5D,KAAK4+C,YAAYoa,GAAYz0D,MAAMvE,KAAK4+C,YAAap6C,gBAK5E,mBACI,OAAOxE,KAAKm4D,mBAEhB,QAAQe,GACJ,IAAIntD,EAAa/L,KAAK4+C,YAClBmM,EAAQh/C,EAAWg/C,QACvBh/C,EAAWyiB,IAAI,UAAWxuB,KAAKupD,qBAC/Bx9C,EAAWyiB,IAAI,4BAA6BxuB,KAAK+pD,mCACjDh+C,EAAWyiB,IAAI,sBAAuBxuB,KAAK64D,oBAC3C9sD,EAAWyiB,IAAI,iBAAkBxuB,KAAK2pD,wBACtC59C,EAAWyiB,IAAI,YAAaxuB,KAAK6pD,mBACjC99C,EAAWyiB,IAAI,WAAYxuB,KAAKiqD,kBAChCc,GAASA,EAAMv8B,IAAI,aAAcxuB,KAAK84D,cACjCI,GACDntD,EAAWooD,WAGnB,QAAQxuC,EAAS6jC,GACb,IAAIz9C,EAAa/L,KAAK4+C,YAClB4K,EAAekD,SACf1sD,KAAKm5D,yBACLn5D,KAAKo4D,aAAersD,EAAWi8C,WAC/BhoD,KAAKs4D,aAAet4D,KAAKo4D,cAGjC,yBACIp4D,KAAKu4D,mBAAqB,EAC1Bv4D,KAAK24D,sBAAwB,GAEjC,aACI34D,KAAKo5D,sBAAmB,EACxBp5D,KAAKq5D,uBAAoB,GAE7B,kBACIr5D,KAAKw4D,YAAc,CACfh3C,MAAO,KAGf,2BACI,IAAInR,EAAmBrQ,KAAKqQ,mBACxBm5C,EAAiB0M,EAAwBl2D,KAAKs5D,kBAAoB,GAAI,IACtEC,EAAoB30D,OAAO+qB,KAAKtf,GAAkB47C,MAAMuN,IAAkBhQ,EAAegQ,KAAmBnpD,EAAiBmpD,IACjI,OAAQD,GAEZ,KAAK3+C,EAAS6+C,GACV,IAAI1O,EAAQ/qD,KAAK+qD,QACb/qD,KAAK05D,6BACL15D,KAAKo5D,sBAAmB,GAE5Bp5D,KAAKq5D,uBAAoB,EACzBr5D,KAAK25D,iBAAgB,GACjB35D,KAAKo5D,kBACL,gBAAW,CACPQ,QAAS7O,EACTh3C,KAAM/T,KAAKo5D,iBACXx+C,QAASA,IAGZ6+C,GACDz5D,KAAK65D,YAAYj/C,GAErB5a,KAAKqtD,OAAO52B,KAAK7b,IAErB,qBACI,IAAK5a,KAAK85D,iBAAkB,CACxB,IAAIC,EACAC,EACAjP,EAAQ/qD,KAAK+qD,QACjB/qD,KAAK85D,iBAAmB/lD,IACpB,IAAIkmD,EAAiBD,GAAaA,IAAch6D,KAAKo5D,iBACrD,IAAKW,GAAcE,EAAgB,CAC/BD,EAAYh6D,KAAKo5D,kBAAoB,GACrCW,EAAa,GACb,IAAK,IAAIv5D,EAAI,EAAGA,EAAIw5D,EAAUr7D,OAAQ6B,IAClCu5D,EAAW,eAAWhP,EAAM4D,MAAMqL,EAAUx5D,MAAQA,EAG5D,OAAOu5D,EAAW,eAAWhP,EAAM4D,MAAM56C,MAGjD,OAAO/T,KAAK85D,kBAEhB,cACI,OAAO95D,KAAK+qD,SAEhBmP,sBAAuB,KAAM,EAC7B,YAAYt/C,EAAS6+C,GACjB,IAAIG,EAAU55D,KAAKm6D,cACfpuD,EAAa/L,KAAK4+C,YAClBqX,EAAa,QAAc7X,qBAAqBp+C,KAAKioB,SAAStpB,OAC9Dy7D,EAAgB,YAAcp6D,KAAK8uB,OAAO,uBAC1CurC,EAAgB,YAAcr6D,KAAK8uB,OAAO,kBAC9ClU,EAAUA,EAAQtW,OAAOiX,IAAWxP,EAAWi8C,YAAc,WAAazsC,EAAOnd,WAAQ,IAAWmd,EAAOtZ,OAC3G,IAAIq4D,EAAe,IAAMrE,EAAaj2D,KAAK21D,aAAe31D,KAAKwhB,QAAQ7iB,OACnE47D,EAAeD,IACnB,gBAAW,CACPV,QAASA,EACT7lD,KAAM/T,KAAKopD,OACXxuC,QAASA,EACTq7C,WAAYA,EACZuE,gBAAgB,EAChBC,aAAcz6D,KAAKk6D,0BAEvB,gBAAW,CACPN,QAASA,EACT7lD,KAAMhI,EAAWyV,QACjB5G,QAASA,EACTq7C,WAAYA,EACZuE,gBAAgB,EAChBC,aAAcz6D,KAAKk6D,0BAEvB,IAAIQ,EAAiC16D,KAAKu4D,mBAAqB,IAAMkB,IAAcW,IAAkBC,EACjGK,IACA16D,KAAK24D,uBAAyB2B,IAAiBC,GAEnD3/C,EAAQwsB,OAAO,EAAGxsB,EAAQjc,SAE9B,YAAYw4B,GACR,IACIvc,QAASA,GACTuc,EACJn3B,KAAKP,KAAKmb,GAAS,IAEvB,gBAAgBqU,GACZjvB,KAAKk0D,SAASz9B,KAAKxH,GACnBjvB,KAAK65D,YAAY5qC,EAAErU,SAAS,IAEhC,2BAA2B+/C,EAAetqD,GACtC,IAAIuqD,EAAwB,CAAC,YAAa,UAAW,UACjDC,EAAqBD,EAAsBr4D,QAAQo4D,GACnDG,EAAwBD,GAAsB,EAAID,EAAsBp4D,MAAMq4D,GAAsB,CAACF,GACzG,OAAOG,EAAsBnhB,KAAKghB,GAAiBtqD,EAAiBsqD,KAExE,2BAA2Bh1C,EAAS6jC,GAChC,IAAIuR,EAAkB/6D,KAAKo5D,iBACvB4B,EAAmBh7D,KAAKq5D,kBACxBhC,EAAar3D,KAAKw4D,aAClB7yC,EAAQwmC,iBAAiB7nD,SAAWqhB,EAAQtV,iBAAiBmX,WAAa7B,EAAQwmC,iBAAiB7zB,OAAS3S,EAAQtV,iBAAiBiB,WACrIqU,EAAQtV,iBAAmB,CACvBmX,UAAW7B,EAAQtV,iBAAiBmX,UACpChW,QAASmU,EAAQtV,iBAAiBmB,UAGtCg4C,EAAe4M,YACf2E,OAAkB,EAClBC,OAAmB,EACnB3D,EAAa,CACT71C,MAAO,MAGPgoC,EAAekD,QACfsO,OAAmB,EACnB3D,EAAa,CACT71C,MAAO,KAEJgoC,EAAejZ,iBACtB8mB,EAAa,CACT71C,MAAO,KAGf,eAAKgoC,EAAgB,CAACmR,EAAe38D,KAC7BA,GAASgC,KAAKi7D,2BAA2BN,EAAeh1C,EAAQtV,oBAChE0qD,OAAkB,EAClBC,OAAmB,MAI3BA,IACAr1C,EAAQtV,iBAAiBD,QAAS,GAEtCuV,EAAQo1C,gBAAkBA,EAC1Bp1C,EAAQq1C,iBAAmBA,EAC3Br1C,EAAQ0xC,WAAaA,EAChB1xC,EAAQymC,kBACTpsD,KAAKo5D,iBAAmB2B,EACxB/6D,KAAKq5D,kBAAoB2B,EACzBh7D,KAAKw4D,YAAcnB,IAG3B,iCAAiC1xC,GAC7B,IAAI0K,EACJrwB,KAAKk7D,mBAAmBv1C,GAClB,KAAO,QAAU0K,EAAK1K,EAAQ5R,YAAS,IAAWsc,OAAK,EAASA,EAAG1xB,UACrEgnB,EAAQ5R,KAAOyiD,EAAqB7wC,GAAS,IAASA,EAAQo1C,kBAGtE,mBAAmBp1C,GACf,IAAI5Z,EAAa/L,KAAK4+C,YAClB8G,EAAkB1lD,KAAKs5D,iBAC3Bt5D,KAAKi0D,0BAA0Bx9B,KAAK9Q,GACpCA,EAAQZ,MAAQ/kB,KAAK8uB,OAAO,kBAC5BnJ,EAAQw1C,yBAA2Bx1C,EAAQwmC,iBAC3CxmC,EAAQtV,iBAAmB,OAAA8c,EAAA,MAAO,GAAIntB,KAAKqQ,oBAC3C,IAAI8lD,GAAgBn2D,KAAK8vC,aAAe9vC,KAAKo7D,cACzCp7D,KAAK8uB,OAAO,yCAA2C9uB,KAAK8vC,aAC5DnqB,EAAQZ,WAAQ,GAEpB,IAAI4vC,EAAc,OAAAxnC,EAAA,MAAO,CACrBxG,UAAW3mB,KAAK2mB,YAChBC,SAAU5mB,KAAK4mB,YAChBjB,EAAQwmC,kBACP3C,EAAiB0M,EAAwBvB,EAAajP,EAAiByQ,GAE3E,GADAn2D,KAAKq7D,2BAA2B11C,EAAS6jC,IACpC7jC,EAAQymC,gBAAiB,CAC1B,IAAI7oB,EAAevjC,KAAKo7D,cACxBz1C,EAAQgB,UAAY5a,EAAW4a,YAC/BhB,EAAQ+/B,gBAAkBiP,EAC1BhvC,EAAQ6jC,eAAiBA,EACzBxpD,KAAKs7D,uBAAyB9R,EAC9BxpD,KAAKo7D,eAAgB,EACrB,eAAK73B,GAAgBvjC,KAAKu7D,cAAgBv7D,KAAK4lD,QAAQjgC,EAAS6jC,IAAiBhzB,KAAK,KAC9Ex2B,KAAKw7D,mBAAqB71C,EAAQ81C,cAClCz7D,KAAKu7D,cAAe,EACpBv7D,KAAKioD,OAAO/kB,OAAO,KACfljC,KAAKu7D,cAAe,OAG7BtyB,KAAK,KACJl9B,EAAWoO,OAAOwL,EAAQ81C,eAC3Bv4B,OAAO,KACNljC,KAAKo7D,eAAgB,IAEzBrvD,EAAWoO,OAAOna,KAAKw7D,kBACvBx7D,KAAKw7D,iBAAmB71C,EAAQ81C,YAC5Bz7D,KAAKo7D,eACLrvD,EAAWoO,OAAOna,KAAKw7D,kBAG/Bx7D,KAAK07D,uBAAuB/1C,IAEhC,uBAAuBA,GACnB,IACItV,iBAAkBA,GAClBsV,EACJA,EAAQgvC,YAAc,GACtB,IAAIgH,EAAch2C,EAAQ0xC,WAAW/K,MACjCsP,EAAuB,CACvBt3D,QAAS+L,EAAiBmX,UAC1B8Q,MAAOjoB,EAAiBiB,QACxB2W,OAAQ5X,EAAiBtD,SACzByE,SAAUnB,EAAiBmB,QAC3B8kD,MAAOjmD,EAAiBD,OACxBmmD,MAAOlmD,EAAiBD,OACxB09C,kBAAmB6N,GAAe,eAAgBA,IAAgBtrD,EAAiBD,OACnFyrD,YAAaxrD,EAAiBmX,YAAcnX,EAAiBiB,SAEjE,eAAKqU,EAAQwmC,iBAAkB,CAACz5C,EAAYopD,KACpCF,EAAqBlpD,KACrBiT,EAAQgvC,YAAYjiD,GAAcopD,SAC3Bn2C,EAAQwmC,iBAAiBz5C,MAGpCipD,IACAh2C,EAAQ2mC,MAAQqP,IAGxB,kBAAkBh2C,GACd,IAAI0K,EAAIub,GAEJ+oB,YAAaA,GACbhvC,EACAo2C,EAAcp2C,EAAQtV,mBAAqBsV,EAAQtV,iBAAiBD,QAEpEinD,WAAYA,GACZ1xC,GAEAwmC,iBAAkBA,GAClBxmC,EACAq2C,GAAY,IAAUh8D,KAAK8uB,OAAO,iBAAmBq9B,EACrD8P,EAAgBD,IAAcr2C,EAAQymC,iBAAmBiL,KAAgB0E,GAAe5P,EAAiBlkC,OACzGi0C,EAAkBF,GAAaD,EAC/BI,EAAiBD,IAAoBv2C,EAAQymC,gBACjD,GAAKuI,EAAL,CAIIoH,IACAp2C,EAAQ2wC,KAAO3B,EAAY2B,KAC3B3wC,EAAQ4wC,KAAO5B,EAAY4B,YACpB5B,EAAY2B,YACZ3B,EAAY4B,MAEnB5B,EAAY1sC,QACZ0sC,EAAY1sC,MAAQtC,EAAQsC,OAAS0sC,EAAY1sC,OAErD,IAAIguC,EAAa,QAAc7X,qBAAqBz4B,EAAQsC,OAASkkC,EAAiBlkC,OAAS0sC,EAAY1sC,OAAOtpB,OAC9GgnB,EAAQoxC,sBACRpxC,EAAQ5R,KAAO4R,EAAQoxC,oBAAoB1rC,OAAO1F,EAAQ5R,OAE1D4R,EAAQqxC,oBACRrxC,EAAQ5R,KAAO4R,EAAQ5R,KAAKsX,OAAO1F,EAAQqxC,oBAE1CiF,GAAkBzF,EAAqB7wC,KACpCu2C,GAAmBv2C,EAAQq1C,iBAC3Br1C,EAAQ5R,KAAOiiD,EAAWrwC,EAAQq1C,iBAAkB/E,IAEhDkG,IACKn8D,KAAKo5D,iBAECzzC,EAAQy2C,qBACfz2C,EAAQ5R,KAAO/T,KAAKo5D,iBAAmBp5D,KAAKo5D,iBAAiB/tC,OAAO1F,EAAQ5R,OAF5E/T,KAAKo5D,iBAAmBpD,EAAWrwC,EAAQ5R,KAAM,QAAcqqC,qBAAqB+N,EAAiBlkC,OAAOtpB,SAKpH,IAAI,QAAWgnB,EAAQ5R,MAAMk0C,KAAK0M,GAAan+B,KAAKziB,IAChD4R,EAAQ5R,KAAOA,EACXooD,IACAn8D,KAAKq5D,kBAAoBrD,EAAWrwC,EAAQ5R,KAAMkiD,MAEvDhtB,KAAKyhB,IACJ/kC,EAAQ5R,MAAO,IAAK,QAAU8uB,OAAO6nB,MAGzCiK,EAAY7G,mBAAqBiO,IACjCp2C,EAAQ2mC,MAAQ,eAAc3mC,EAAQ2mC,OAAS3mC,EAAQ2mC,MAAQ,GAC/D3mC,EAAQ2mC,MAAMC,WAAa5mC,EAAQ5R,KAAKpV,QAExCgnB,EAAQ2mC,OAAS3mC,EAAQ2mC,MAAMC,YAAc,KAAM,IAAUJ,EAAiB2B,oBAAqB,IAAU6G,EAAY7G,qBACzHnoC,EAAQ2mC,MAAMC,YAAc,IAE3BoI,EAAY5gD,OAASo4C,EAAiB2B,oBAAsB,QAAUliB,EAAK,QAAUvb,EAAK1K,EAAQ2mC,aAAU,IAAWj8B,OAAK,EAASA,EAAGk8B,kBAAe,IAAW3gB,EAAKA,GAAM,IAAM,KACpL5rC,KAAK24D,sBAAwB,GAEjC34D,KAAKq8D,sBAAsB12C,GACvBs2C,IACA5E,EAAW/K,MAAQ+K,EAAW/K,OAAS,OAAAn/B,EAAA,MAAO,GAAIxH,EAAQ2mC,OAC1D,eAAK3mC,EAAQ5R,MAAMyiB,KAAKziB,KAClB,SAAS4R,EAAS5R,EAAMkiD,GAOtB,IANA,IAAI5lC,EAAIub,EAAIsW,EAAIC,GAEZgK,iBAAkBA,GAClBxmC,EACA2wC,EAAO,QAAU1qB,EAAK,QAAUvb,EAAK1K,EAAQ2wC,YAAS,IAAWjmC,EAAKA,EAAK87B,EAAiBmK,YAAS,IAAW1qB,EAAKA,EAAK,EAC1H2qB,EAAO,QAAUpU,EAAK,QAAUD,EAAKv8B,EAAQ4wC,YAAS,IAAWrU,EAAKA,EAAKiK,EAAiBoK,YAAS,IAAWpU,EAAKA,EAAK,EACrH3hD,EAAI,EAAGA,EAAI+1D,EAAM/1D,IAAK,CAC3B,IAAIy3D,EAAcz3D,EAAI81D,EAClBgG,EAAa32C,EAAQ0xC,WAAW71C,MAChCk2C,EAAQ,IAAMl3D,GAAKmlB,EAAQ+xC,OAAS,GACxC4E,EAAWrE,GAAeF,EAAauE,EAAWrE,GAAclkD,EAAKvT,GAAIy1D,EAAYyB,IAX3F,CAaA/xC,EAAS5R,EAAMkiD,OAI7B,eAAKtwC,EAAQ5R,MAAMyiB,KAAK,KAChB7Q,EAAQ+/B,kBACR1lD,KAAKs5D,iBAAmB3zC,EAAQ+/B,gBAChC9gD,OAAO+qB,KAAKhK,EAAQ6jC,gBAAgBtyB,QAAQyjC,IACxC36D,KAAKy4D,oBAAoBkC,GAAiB36D,KAAKy4D,oBAAoBkC,IAAkBh1C,EAAQ6jC,eAAemR,QAIxHh1C,EAAQwmC,iBAAmBxmC,EAAQw1C,8BA9E/Bn7D,KAAK4+C,YAAYzkC,OAAOwL,EAAQ81C,cAgFxC,sBAAsB91C,GACdA,EAAQtV,mBAAqBsV,EAAQtV,iBAAiBD,QAAU3R,MAAMC,QAAQinB,EAAQ5R,aAClF,IAAW4R,EAAQ2wC,OACnB3wC,EAAQ5R,KAAO4R,EAAQ5R,KAAKvR,MAAMmjB,EAAQ2wC,YAE1C,IAAW3wC,EAAQ4wC,OACnB5wC,EAAQ5R,KAAO4R,EAAQ5R,KAAKvR,MAAM,EAAGmjB,EAAQ4wC,SAIzD,sBAAsBjL,GAClBtrD,KAAK6yD,eAAep8B,KAAK60B,IAE7B,iBAAiBZ,GACb1qD,KAAKg0D,UAAUv9B,KAAKi0B,GACpB1qD,KAAKwoC,QAAQ/R,KAAK,CACdwN,WAAY,YACZymB,MAAOA,KAGf,gBACI,OAAO1qD,KAAK4mB,YAEhB,mBAAmBoH,GACf,IAAIuuC,EACAxwD,EAAa/L,KAAK4+C,YAClB0M,GAAY,EACZkR,GAAiBxuC,GAAQ,eAAUA,EAAKiW,YACxC0xB,EAAa31D,KAAK21D,aAClB6G,IACAx8D,KAAKo4D,aAAezC,IAAe31D,KAAKy8D,iBAAmB9G,EAAa31D,KAAKy8D,gBACzEz8D,KAAKo4D,cACLp4D,KAAKs4D,cAAe,IAGxBvsD,EAAWwgD,cAAgB,EACvBxgD,EAAW4a,aAAe3mB,KAAKw0D,cAC/BzoD,EAAW4a,UAAU3mB,KAAKw0D,YAAc,GACxCx0D,KAAK2mB,UAAU5a,EAAW4a,aAC1B3mB,KAAK25D,kBACL5tD,EAAWk8C,OACXqD,GAAY,GAETkR,IACPD,EAAoBxwD,EAAW4a,YAAc3mB,KAAK4mB,WAAa+uC,EAC3D4G,EAAoBv8D,KAAKu4D,qBACzBv4D,KAAKu4D,mBAAqBgE,EACtB,IAAMxwD,EAAW4a,aAAgB3mB,KAAK8uB,OAAO,0BAC7C9uB,KAAK24D,sBAAwB,IAGjC,IAAMhD,GAAc5pD,EAAW4a,aAAe3mB,KAAKw0D,cACnDzoD,EAAW4a,UAAU3mB,KAAKw0D,YAAc,GACpC,aAAex0D,KAAK8uB,OAAO,oBAC3B/iB,EAAWk8C,OACXqD,GAAY,KAInBA,IACDtrD,KAAK08D,gBAAkB18D,KAAKy4D,oBAC5Bz4D,KAAKy4D,oBAAsB,GAC3Bz4D,KAAKixB,UAAUuC,aAAe,GAC9BxzB,KAAKwoC,QAAQ/R,KAAKzI,GAClBhuB,KAAKixB,UAAUuC,kBAAe,IAGtC,6BAA6BlZ,GACzB,IAAIuY,EAAO7yB,KACX6yB,EAAKy3B,kBAAmB,EACxBhwC,EAAS4oB,OAAO,KACZrQ,EAAKy3B,kBAAmB,KAGhC,wBACI,OAAOtqD,KAAKs7D,wBAEhB,iBACI,OAAOt7D,KAAK08D,iBAEhB,kBACI,OAAO18D,KAAKs5D,kBAAoB,IAEpC,aACI,OAAOt5D,KAAKo4D,aAEhB,wBACI,OAAOp4D,KAAK4+C,YAAY2N,cAE5B,aACI,OAAOzN,UAAU9+C,KAAKu4D,oBAAsBv4D,KAAK28D,yBAA2B38D,KAAK24D,wBAErF,uBACI,OAAO34D,KAAK24D,uBAEhB,aACI,OAAO34D,KAAK4+C,YAAYp9B,QAAQ7iB,QAEpC,kBACI,OAAOqB,KAAKusD,cAEhB,WACI,IAAIxgD,EAAa/L,KAAK4+C,YACtB,OAAKp6C,UAAU7F,QAAWoN,EAAWi8C,WAG9Bj8C,EAAW6a,SAASriB,MAAMwH,EAAYvH,WAFlC,GAIf,YACI,IAAI9D,EAAQV,KAAK41D,kBAAoB51D,KAAK24D,sBACtC/xC,EAAW5mB,KAAK4mB,WACpB,OAAIA,GAAYlmB,EAAQ,EACbg3C,KAAKpwB,IAAI,EAAGowB,KAAKklB,KAAKl8D,EAAQkmB,IAElC,GAEX,mBACI,OAAO5mB,KAAKs4D,cAAgBt4D,KAAK4+C,YAAY2N,cAAgB,GAEjE,cAAcoI,EAAa5J,GACvB,IAAIh/C,EAAa/L,KAAK4+C,YAClB8V,EAAI,IAAI,OACZ,GAAK3oD,EAWL,OARAg/C,EAAQA,GAASh/C,EAAWg/C,QAC5BA,EAAM9C,KAAK0M,GAAan+B,KAAK,CAACziB,EAAMu4C,KAC5Bv4C,IAAStV,MAAMC,QAAQqV,IAAStV,MAAMC,QAAQqV,EAAKA,QACnDu4C,EAAQv4C,EACRA,EAAOA,EAAKA,MAEhB2gD,EAAEx3B,QAAQnpB,EAAMu4C,KACjBrjB,KAAKyrB,EAAE7xB,QACH6xB,GAEX,kBACI,QAAS10D,KAAKsqD,kBAElB,KAAK3kC,GACD,IAAIkN,EAAO7yB,KACP+L,EAAa8mB,EAAK+rB,YAClB8V,EAAI,IAAI,OACZ,GAAI/uC,EAAS,CACT,IAAIolC,EAAQh/C,EAAWg/C,QACnB8R,EAAwB9wD,EAAW4oD,cACnCmI,EAAa,CACb3Q,iBAAkB,OAAAh/B,EAAA,MAAO,GAAIxH,EAAS,CAClCk2C,WAAY,OAASgB,QAAyB,IAAWA,OAAwB,EAASA,EAAsBhB,aAEpHzP,iBAAiB,GAkCrB,OAhCA,eAAKrB,EAAMgS,sBAAwB,GAAI,CAACplC,EAAGjlB,KACjCA,KAAcoqD,EAAW3Q,mBAC3B2Q,EAAW3Q,iBAAiBz5C,GAAcmqD,EAAsBnqD,MAGxE1S,KAAK44D,cAAgBjzC,EAAQ0mC,aAC7Bx5B,EAAKmqC,6BAA6BtI,GAClC3oD,EAAWkxD,uBAAuBvI,GAClC7hC,EAAKm3B,iCAAiC8S,GACpC,SAAS5wC,EAAQtT,GACX,eAAUA,GACV,eAAasT,EAAQtT,GAErBsT,IAJN,CAMA,KACE,IAAKngB,EAAWg/C,QACZ,OAAO2J,EAAE7xB,OAAO,YAEpB,eAAKi6B,EAAW/oD,MAAQ8e,EAAKqqC,cAAcJ,EAAW3Q,mBAAmB31B,KAAK,CAACziB,EAAMu4C,KACjFwQ,EAAW/oD,KAAOA,EAClB+oD,EAAWxQ,MAAQA,GAAS,GAC5Bz5B,EAAK+hC,kBAAkBkI,GACnBn3C,EAAQmoC,wBAAqB,IAAWgP,EAAWxQ,MAAMC,aACzDuQ,EAAWxQ,MAAMC,WAAaxB,EAAMwB,WAAWuQ,EAAW3Q,mBAE9D,eAAK2Q,EAAW/oD,KAAM+oD,EAAWxQ,MAAMC,YAAY/1B,KAAK,CAACziB,EAAMw4C,KAC3DuQ,EAAWxQ,MAAMC,WAAaA,EAC9BmI,EAAEx3B,QAAQnpB,EAAM+oD,EAAWxQ,SAC5BrjB,KAAKyrB,EAAE7xB,UACXoG,KAAKyrB,EAAE7xB,SACXhQ,EAAK/D,OAAO,mBACR4lC,EAAEzrB,MAAK,WACVpW,EAAK6lC,gBAAgByE,UAAU,YAAa34D,cAC5C0+B,OAAO,KACPljC,KAAK44D,eAAgB,IACtB31B,UAEP,OAAOl3B,EAAWk8C,QAEtB,OAAOmV,GACH,OAAOA,EAAOp9D,KAAK4+C,YAAY8N,SAAW1sD,KAAK4+C,YAAYqJ,QAE/D,qBACI,OAAOjoD,KAAKo5D,mBAGpB,OAAOprB,EAtvB+B,IC1BtCqvB,GAAwB,GACb,IACX,OAAOjmC,GACHimC,GAAwBA,GAAsBzqC,QAAQwE,IAE1Ds8B,OAAQziC,GAAa,IAAIosC,GAAsBpsC,IFCxC,GAAiB,QAAU,GAAK,QAAU,GAAK6kC,GAAqB/8B,mBAAgB,IAAW,QAAK,EAAS,GAAGhlB,YAAS,IAAW,QAAK,EAAS,GAAG6e,QAAQ,CACpK4gC,sBAAuB,IAAM,GAC7B,+BACI,IAAIznD,EAAa/L,KAAK8uB,OAAO,cAI7B,OAHI/iB,IAAetN,MAAMC,QAAQqN,IAAe/L,KAAK8uB,OAAO,YACxD,QAAO24B,IAAI,SAERznD,KAAKk1B,cAGpB,GAASkd,eAAe,OAAQ,CAC5BlF,eAAgB4oB,GAAqB5oB,eACrCnU,YAAa,CACThlB,KAAM,MGhBd,IAAIupD,GAAa,UACbC,GAAkB,eAClBC,GAAe,aACfC,GAAiB,eACjBC,GAAmB,gBACnBC,GAAwB,qBACxBC,GAAuB,SACZ,IACX,kBAAkBj4C,GACd,IAAIk4C,EACA/vB,EACA+V,EAAc7jD,KAAK8uB,OAAO,iBAE1B4B,YAAaA,GACb/K,GAEA3jB,OAAQA,GACR2jB,EACAiL,EAAuB5wB,KAAKuxB,uBAAuBb,GACvD,GAAI,SAAW/K,EAAQhS,KAAM,CACzB+c,EAAYnD,KAAK,IAAIlC,OAAOiyC,KAAat6B,UACxCpS,EAAqBgB,WAAWjzB,QAAUiyB,EAAqBoS,SAChE,IAAI86B,EAAmB,SAAWja,GAAe7hD,EAAOiT,aACxD,IAAK,eAAUjT,EAAOsU,cAAgBwnD,GAAoB,eAAU97D,EAAOkV,YAAa,CACpF2mD,EAAgB,QAAU77D,EAAOkV,UAAY,YAAc,aAC3D42B,EAAiB9tC,KAAKk1B,SAASvP,GAAS2Q,YAAYknC,GAAc,QAAUx7D,EAAOkV,WAAWof,YAAYmnC,GAAgB,SAAWz7D,EAAOkV,WAC5I,IAAI6mD,EAAwB/9D,KAAKgwB,iBAAmBhwB,KAAKgwB,cAAc,WAAWob,aAAa,eAC3F2yB,GAAyB/9D,KAAK8uB,OAAO,4BAA8B9sB,EAAOgV,WAAa,IACvF,eAAE,UAAU0V,SAASixC,IAAuB7pD,KAAK9R,EAAOgV,UAAY,GAAGqf,SAASyX,GAChFA,EAAephB,SAASgxC,KAExBI,GACAn4C,EAAQ+K,YAAYhE,SAAS1sB,KAAKw0B,gBAAgBopC,KAQ1D,OALK,eAAU57D,EAAOkV,WAGlBlX,KAAKwxB,QAAQ,OAAQqsC,EAAentC,GAFpC1wB,KAAKwxB,QAAQ,OAAQ,OAAQd,GAI1Bod,EAEX,OAAO9tC,KAAKk1B,SAASvP,IAEzB,uBAAuBhS,GACnB,MAAI,SAAWA,EACJ2pD,GAEP,cAAgB3pD,EACTgqD,GAEJ39D,KAAKk1B,SAASvhB,IAEzB,iBAAiBgS,GACb,IACI3jB,OAAQA,GACR2jB,EACAkM,EAAalM,EAAQlI,UACrBqU,EAAanM,EAAQyL,UACzB,GAAI,SAAWzL,EAAQhS,KAAM,CACzB,IAAIhD,EAAa3Q,KAAK8uB,OAAO,cAI7B,GAHK,eAAU9sB,EAAOkV,YAClB4a,GAAcA,EAAWpF,SAAS6wC,IAElC1rC,EAAWD,WAAWjzB,UAAYgS,GAAc,SAAWgV,EAAQ2K,iBAAmB3f,GAAc,UAAYgV,EAAQ2K,iBAExH,YADAuB,EAAWmsC,QAAQlsC,GAI3B9xB,KAAKk1B,SAASvP,IAElB,iBAAiB+L,EAAO1vB,EAAQgwB,GAC5B,GAAI,SAAWA,IAAiB,eAAUhwB,EAAOsU,YAGjD,OAAOtW,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,sBAAsBktB,EAAOof,GACzB,IAAItD,EAAqBxtC,KAAKk1B,SAASxD,GACvC,OAAOof,EAAYtD,EAAqBA,GAAsBA,EAAmBpK,IAAI,IAAI/X,OAAOkyC,OClEpGU,GAAgC,8BAChCC,GAAmC,OAAA/wC,EAAA,MAAO,GAAI,GAAc,CAC5D,WAAWkR,GACP,IAAIS,EAAO9+B,KAAKk1B,SAASmJ,GAMzB,MALI,WAAaA,EAAIT,SACjB,OAAatP,GAAGwQ,EAAM,eAAa,OAAgBm/B,IAAgC,KAAMj+D,KAAKkwB,aAAajB,IACvGjvB,KAAK6vC,qBAAqB5gB,EAAEhD,MAAO6S,MAGpCA,GAEX,qBAAqB7S,EAAO6S,GACxB,GAAI,eAAE7S,EAAMyP,eAAepJ,SAASqB,IAAI,KAAOmL,EAAKnL,IAAI,GAAxD,CAGA,IAAId,EAAO7yB,KACPwsB,EAAU,KACV2xC,EAAwB,eAAElyC,EAAMyP,eAChCG,EAAWsiC,EAAsB7rC,SAASrwB,QAC1Ci9B,GAAe,EACnB,GAAG18B,MAAM22B,KAAKtG,EAAK8X,gBAAgB9O,IAAW8d,KAAK,CAACxJ,EAAcluC,KAC9D,GAAIkuC,IAAiBguB,EAAsBxqC,IAAI,GAE3C,OADAuL,EAAcj9B,GACP,IAIf,IAAI88B,EAAiBlM,EAAKmM,mBAAmBC,kBAAkBpD,GAC3D75B,EAAS+8B,EAAeG,GACxBk/B,EAAoBvrC,EAAK7C,cAAc,WACvCquC,EAAcxrC,EAAK/D,OAAO,gBAC1BwvC,EAAgBF,GAAqBA,EAAkBz+B,cAAgB,UAAY0+B,GAAe,SAAWA,IAC7GC,GAAkBzrC,EAAKke,mBAAmB,eAAE9kB,EAAMvpB,YAGlDV,GAAW,eAAUA,EAAOsU,aAAgBtU,EAAOwwB,UAC/CvG,EAAMgiB,SACNzhB,EAAU,QACH,eAAoBP,KAC3BO,EAAU,QAEdgP,WAAW,KACP3I,EAAKmM,mBAAmB8S,gBAAgB9vC,EAAOC,MAAOuqB,SAIlE,mBAAmBkF,EAAO/L,GACtB,IACI3jB,OAAQA,GACR2jB,EACC3jB,EAAOwwB,SAAW,WAAa7M,EAAQiY,SACxC59B,KAAKyyB,kBAAkB,CACnB9e,KAAM,OACN+c,YAAagB,EACb1vB,OAAQA,EACRmP,gBAAiBnR,KAAK8uB,OAAO,qBAGrC9uB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,qBAAqByqB,GACjB,IACIsV,YAAaA,GACbtV,EACA,IAAMsV,EAAY5lC,QAAU4lC,EAAYjzB,QACxCtR,KAAKu+D,kBAAkB,QAG3Bv+D,KAAKk1B,SAASjG,IAElB,cAAcjB,GACV,OAAQA,EAAKra,MACT,IAAK,UACD3T,KAAK+nC,cACL/Z,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,OAI1BwwC,GAA6B,OAAArxC,EAAA,MAAO,GAAI,GAAc,CACtD,sBAAsBsxC,EAAcj1C,GAChC,IAAIqJ,EAAO7yB,KACP0+D,EAAQ7rC,EAAKqC,YAAY1wB,WAc7B,OAbA,OAAa8pB,GAAGowC,EAAO,eAAa,OAAgB,yBAA0B7rC,EAAK3C,aAAa,KAC5F2C,EAAK8rC,wBAAwBn1C,EAAYvnB,UAE7C4wB,EAAKJ,kBAAkB,CACnB9e,KAAM,OACN+c,YAAaguC,EACb18D,OAAQ,CACJsS,UAAWue,EAAK/D,OAAO,cAAgB,QAAU,OACjD7Z,aAAcuU,EAAYvU,aAC1BiC,UAAW,SAAWsS,EAAYtS,UAAY,OAAS,OAE3D/F,iBAAiB,IAEdutD,GAEX,wBAAwBE,GACpBpjC,WAAW,IAAMx7B,KAAKgwB,cAAc,WAAW8hB,gBAAgB8sB,KAEnE,cAAc5wC,GACV,OAAQA,EAAKra,MACT,IAAK,UACD3T,KAAK+nC,cACL/Z,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,OAInB6wC,GAAgB,CACvB3xB,eAAgB,KAAM,CAClB57B,QAAS,CACL+G,KAAM,SACNqR,cAAe,OAAoB3rB,OAAO,mCAC1C6rB,eAAgB,OAAoB7rB,OAAO,oCAC3C4rB,UAAW,OAAoB5rB,OAAO,+BACtC8rB,iBAAiB,KAGzByP,UAAW,CACPN,MAAO,CACHmU,kBAAmB+wB,GACnBY,YAAaN,MC5IzB,GAASpsB,eAAe,UAAWysB,I,8BC8C/BE,GAAkB,WAClB,GAAgB,UAChB,GAAe,SACf,GAAkB,eAClB,GAAmB,gBACnBC,GAAiB,cACjBC,GAAmB,mBACnBC,GAAkB,eAClB,GAAqB,kBACrBC,GAAwB,aACxBC,GAAkB,qBAClBC,GAAc,WACdC,GAA+B,yBAC/BC,GAAyB,IAE7B,SAASC,GAA6BC,GAClC,OAAOA,EAAa/nB,KAAKgoB,MAAMD,EAAWx/B,cAAgBw/B,EAAWv/B,eAAiB,EAG1F,SAAS,GAAW/I,GAChB,IACIyG,QAASA,EACT57B,OAAQA,GACRm1B,EACJ,MAAO,UAAYyG,GAAW,eAAU57B,EAAOsU,cAAgBtU,EAAO+U,kBAAoB/U,EAAOwwB,QAErG,IAAImtC,GAAsB,SAAS9tC,EAAYlM,GAC3C,IAAIi6C,EAAkB,gBAAQj6C,EAAQ7R,OAAS,SAAW6R,EAAQiY,SAE9D9pB,KAAMA,GACN6R,EACAlI,EAAYoU,EAAW8B,IAAI,GAC3BisC,EACA,QAAcC,aAAahuC,GACpBlM,EAAQ3jB,OAAO6T,WACtB4H,EAAUqiD,YAAchsD,EAExB2J,EAAUsiD,UAAYjsD,GAG1BksD,GAA6B,SAASntC,GACtC,IAAI4sC,EAAa5sC,EAAKotC,gBACtB,OAAOR,EAAa/nB,KAAKklB,KAAK7mC,WAAW,eAAE0pC,EAAWxkC,WAAWxJ,IAAI,mBAAqB,GAE9F,MAAM,WAAiB,GACnB,oBAAoBzvB,GAChB,OAAQA,EAAOwwB,SACX,IAAK,QACD,OAAO,SAAS/U,GACZA,EAAU8H,KAAK,WAEvB,QACI,OAAOo6C,IAGnB,yBAAyB39D,GACrB,IAAIuoB,EAAevqB,KAAK8uB,OAAO,iBAC/B,OAAO,SAAS+C,EAAYlM,GACxB,IACI5R,KAAMA,GACN4R,EACA7R,EAAO,GAAGuX,OAAO1F,EAAQ3jB,OAAOwT,QAAS,MAAM6V,OAAO1F,EAAQ7R,MAC9D2J,EAAYoU,EAAW8B,IAAI,GAC3BhO,EAAQu6C,cAAgBv6C,EAAQu6C,aAAavhE,SAC7CmV,GAAQ,IAAIuX,OAAO,QAAc80C,uBAAuBx6C,EAAQu6C,aAAc31C,KAE9ExW,IACI4R,EAAQ7B,uBAAyB6B,EAAQ5B,sBACzCjQ,GAAQ,KAAKuX,OAAO1F,EAAQ7B,sBAAuB,MAAMuH,OAAO1F,EAAQ5B,sBAAuB,KACxF4B,EAAQ5B,sBACfjQ,GAAQ,KAAKuX,OAAO1F,EAAQ5B,sBAAuB,KAC5C4B,EAAQ7B,wBACfhQ,GAAQ,KAAKuX,OAAO1F,EAAQ7B,sBAAuB,OAGvD9hB,EAAO6T,WACP4H,EAAUqiD,YAAchsD,EAExB2J,EAAUsiD,UAAYjsD,GAIlC,QAAQyH,IACR,YAAYmW,EAAO/L,GACX,GAAWA,IACX+L,EAAMhF,SAAS,IAEnBmb,MAAMtB,YAAYhiC,MAAMvE,KAAMwE,WAElC,iBAAiBmhB,GACb,IAGI9R,GAFA7R,OAAQA,GACR2jB,EAeJ,OAZI9R,EADA,GAAW8R,GACA3jB,EAAOqU,mBAAqB,CACnC6rB,gCAAgC,EAChC3M,OAAQv1B,KAAKogE,yBAAyBp+D,KAElC,SAAW2jB,EAAQiY,SAAW57B,EAAOwwB,UAAYxwB,EAAOyT,aACrDzT,EAAOyT,aAEP,CACPysB,gCAAgC,EAChC3M,OAAQv1B,KAAKmvC,oBAAoBntC,IAGlC6R,EAEX,WAAWwqB,EAAKgiC,GACZ,IAAIvhC,EAAO+I,MAAMpD,WAAWlgC,MAAMvE,KAAMwE,WACxC,GAAI65B,EAAK,CACL,IAAIiiC,EAAU,UAAYjiC,EAAIT,QAC1ByB,EAAY,SAAWhB,EAAIT,QAO/B,GANAyB,GAAaP,EAAKpS,SAASsyC,IAC3B3/B,GAAar/B,KAAK8uB,OAAO,iBAAmBgQ,EAAKpS,SAASwyC,IAC1Dl/D,KAAK8uB,OAAO,oBAAsBgQ,EAAKpS,SAAS,KAC5C,IAAU2R,EAAIxsB,SACditB,EAAKhsB,OAELwtD,EAAS,CACTxhC,EAAKpS,SAAS,IACd,IAAI6zC,EAAgBliC,EAAIkJ,WACxBvnC,KAAKwxB,QAAQ,OAAQ,MAAOsN,GAC5B9+B,KAAKwxB,QAAQ,WAAY,eAAU+uC,IAAkBA,EAAcliE,WAAYygC,IAGvF,OAAOA,EAEX,aAAaA,EAAMzM,EAAYgM,GACvB,SAAWhM,EAAWuL,UAClB59B,KAAK8uB,OAAO,2BACZ9uB,KAAKymC,UAAUpI,IAAQS,EAAKpS,SAASyyC,IACrC9sC,EAAWuU,OAASvU,EAAWuU,MAAM,IAAM5mC,KAAKymC,UAAUpI,GAAMrgC,IAC5D8gC,EAAKxI,YAAY6oC,GAAuBnhE,MAGhDgC,KAAKwgE,iBAAiBnuC,EAAYyM,GAClCzM,EAAWuU,OAASvU,EAAWuU,MAAM,IAAMvU,EAAWwJ,SAAU,IAAM77B,KAAKwgE,iBAAiBnuC,EAAYyM,KAE5G+I,MAAM9C,aAAaxgC,MAAMvE,KAAMwE,WAEnC,iBAAiB65B,EAAKS,GAClB,IACI7N,UAAWA,GACXjxB,KACAygE,EAAc,aAAexvC,EAAUnC,OAAO,oBAAsB,QAAc4xC,sBAAsBzvC,GACxG4K,EAAWwC,EAAIxC,SAAW,EAC1B4kC,EACA5kC,EAAW5K,EAAUtK,YAAcsK,EAAUrK,WAAaiV,EAE1DA,GAAY77B,KAAKgoC,gBAAgB6pB,oBAErC7xD,KAAKwxB,QAAQ,WAAYqK,EAAUiD,GAEvC,kBAAkB7P,GACd,IAAI0xC,EAAM1xC,EAAEjB,KAAK,GACb+3B,EAAiB/lD,KAAKgoC,gBACtB3J,EAAM0nB,EAAeuM,iBAAiBqO,EAAI9kC,UAC1C+K,EAAQ5mC,KAAK8uB,OAAO,kCACxB,GAAK6xC,EAAI5sD,MAAQ,SAAW4sD,EAAI/iC,UAAW+iC,EAAIC,UAAa5gE,KAAK8uB,OAAO,yBAA4B8X,GAAUvI,EAA9G,CAGA,IAAI81B,EAAUvtB,EAAM,IAAMmf,EAAe8I,mBAAmB8R,EAAI5sD,KAAM4sD,EAAIj1D,SAAU,KAChFq6C,EAAe8a,YAAY,CAACxiC,EAAIxC,UAAW77B,KAAK8uB,OAAO,wBACxD,CACCgyC,MAAM,EACNC,eAAe,IAEnB,OAAazyC,GAAGqyC,EAAI5kC,WAAYiH,EAAA,KAAamxB,IAEjD,kBAAkB6M,GACd,IAAInyC,EAAW7uB,KAAKitB,UAOpB,GANK4B,EAAS+C,WAAWjzB,QACrBkwB,EAASkD,OAAO,UAEhBivC,GAAUhhE,KAAKihE,YACfjhE,KAAKkhE,iBAAiBryC,EAAUA,EAASyD,SAAUtyB,KAAKgoC,gBAAgB4rB,iBAEvEoN,IAAUhhE,KAAKigE,kBAAoBjgE,KAAKgoC,gBAAgB8H,WAAY,CAGrE,IAFA,IAAIpkC,EAAU1L,KAAKiyB,aACfkvC,GAAqB,EAChB3gE,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAChC,IAAKkL,EAAQlL,GAAGsR,QAAUpG,EAAQlL,GAAGkW,SAAU,CAC3CyqD,GAAqB,EACrB,OAGJnhE,KAAK8uB,OAAO,oBAAsB9uB,KAAKohE,YAAcD,GAAsBnhE,KAAKg/B,mBAAmB8d,oBACnG98C,KAAKqhE,sBAAsBxyC,IAIvC,cAAcI,GACV,IAAIte,EAAa3Q,KAAK8uB,OAAO,cACzBwyC,EAAoBryC,EAAEgC,UAAUnC,OAAO,aAC3C9uB,KAAKuhE,WAAatyC,EAAEuyC,aAAaj+C,IACjCvjB,KAAK8jC,YAAc7U,EAAEuyC,aAAap+C,KAClC,IAAIygB,EAAa5U,EAAEuyC,aAAap+C,KAC5BzS,IACA3Q,KAAKyhE,aAAejC,GAA6BvwC,EAAEgC,WAAajxB,KAAK8jC,YACjEw9B,IACAz9B,GAAc7jC,KAAKyhE,cAElBzhE,KAAK0hE,oBAAmB,KACzB1hE,KAAK8jC,aAAe,IAG5B9jC,KAAK6oC,cAAcpS,KAAK,eAAS,eAAS,GAAIxH,EAAEuyC,cAAe,CAC3Dp+C,KAAMygB,IACN7jC,KAAK2T,MAEb,sBAAsBkb,GAClB,IAAI8yC,EAAsB3hE,KAAK4hE,2BAC3BC,EAAgB7hE,KAAK8hE,cAAc5tC,KAAKl0B,MAC5C2hE,EAAoBI,SAAWF,EAC/B7hE,KAAKgiE,YAAchiE,KAAK8zB,iBAAiBjF,EAAU,QAAY8yC,GAC/D3hE,KAAKiiE,qBAAuBjiE,KAAKgiE,aAAe,eAAEhiE,KAAKgiE,YAAYvkD,aAEvE,mBACI,IAAK,IAAI6vC,EAAO9oD,UAAU7F,OAAQqvB,EAAO,IAAIvvB,MAAM6uD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7Ev/B,EAAKu/B,GAAQ/oD,UAAU+oD,GAE3B,OAAO,QAAc2U,gBAAgB39D,MAAMvE,KAAMwE,WAErD,eAAe29D,EAAgBh/B,EAAcyE,GAEzC,OADAu6B,EAAehuC,QAAQpC,OAAOoR,GACvBnjC,KAAKoiE,sBAEhB,eAAeC,EAAiB9mD,EAAQqsB,GAMpC,OALA5nC,KAAKsiE,gBAAgB7iE,KAAK,CACtB4iE,gBAAiBA,EACjB9mD,OAAQA,EACRqsB,sBAAuBA,IAEpB5nC,KAAKmpC,qBAAqB3S,KAAK,KAClC,IAAI+rC,EAAiBviE,KAAKsiE,gBAC1BtiE,KAAKsiE,gBAAkB,GACvBC,EAAerrC,QAAQ2B,IACnB,IACIwpC,gBAAiBA,EACjB9mD,OAAQA,EACRqsB,sBAAuBA,GACvB/O,EACAsK,EAAenjC,KAAK6pC,gBAAgBjC,GACpCu6B,EAAiBniE,KAAKoiE,oBAAoBx6B,GAC1C3D,EAAa,OAAS1oB,QAAU,IAAWA,OAAS,EAASA,EAAO0oB,WACpEu+B,EAAY,GACZt1D,EAAmBlN,KAAK8uB,OAAO,oBAC/B2zC,EAAmBziE,KAAKw0B,gBAAgB8qC,IAC5C,OAAQr7B,GACJ,IAAK,SACD,eAAK1oB,EAAO2zC,WAAY,CAACjtD,EAAO45B,KAC5B,IAAIxL,EACAgV,EAAiBrlC,KAAKyqC,gBAAgB43B,GAAiB9yC,GAAGttB,GAC1DygE,EAAiB,QAAUryC,EAAK9U,EAAOgpB,mBAAgB,IAAWlU,OAAK,EAASA,EAAGpuB,GACnF8oB,EAAOxP,EAAOiG,OAASjG,EAAOiG,MAAMvf,GACxCugE,EAAU/iE,KAAK,KACX,IAAI4wB,EACAsyC,EAAe3iE,KAAKyqC,gBAAgBtH,GACpCiC,EAAcu9B,EAAapzC,GAAGsM,GAClC,OAAQ6mC,GACJ,IAAK,SACD,GAAI33C,EAAM,CACN,IAAIuZ,EAAgB,QAAUjU,EAAK9U,EAAO+oB,qBAAkB,IAAWjU,OAAK,EAASA,EAAGpuB,GACpF,eAAU8oB,EAAKlZ,UAAYkZ,EAAKlZ,UAAYuzB,EAAYxQ,GAAG,YAC3DwQ,EAAYw9B,OAAO73C,EAAKlZ,SACjByyB,EACPtkC,KAAK6iE,aAAaz9B,EAAaC,EAAgBf,GAE/Cc,EAAYK,YAAYJ,GAGhC,MACJ,IAAK,SACD,GAAKs9B,EAAahkE,OAKPymC,EAAYzmC,OACnB0mC,EAAesL,aAAavL,GAE5BC,EAAey9B,YAAYH,EAAaI,aAPxC,GAAI5/B,EAAc,CACd,IAAIzgC,EAAS2iC,EAAezQ,GAAG,SAAWuO,EAAeA,EAAavR,SAAS,SAC/EyT,EAAe29B,UAAUtgE,GAO7BwK,GAAoBqO,EAAOg1C,cAC3BlrB,EAAe3Y,SAAS+1C,GAE5B,MACJ,IAAK,SACDr9B,EAAYpC,cAI5B,eAAKw/B,GAAW,WACZxiE,UAEJqiE,EAAgBr/B,SAChB,MACJ,QACIhjC,KAAKqpC,gBAAgBg5B,EAAiBz6B,GACtCu6B,EAAez1C,SAAS1sB,KAAKw0B,gBAAgB,KAC7Cx0B,KAAKijE,eAAed,EAAgBE,EAAiBz6B,QAGlEqB,KAAK,KACJjpC,KAAKsiE,gBAAkB,KAG/B,gBAAgBluC,EAAW8uC,EAASj2D,GAChC,IAAIykB,EACAoN,EAAO9+B,KAAKykC,aACZ/4B,EAAUw3D,EAAUljE,KAAKmjE,kBAAoBnjE,KAAKiyB,aACtD6M,EAAKpS,SAAS0H,GAAWkC,YAAY,GAAoBt2B,KAAK8uB,OAAO,oBACrE,IAAK,IAAItuB,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAChCkxB,EAAQ1xB,KAAKgmC,YAAY,CACrBhkC,OAAQ0J,EAAQlL,GAChBo9B,QAAS,YACTsB,YAAa1+B,EACbkL,QAASA,IAEb,eAAUuB,IAAWykB,EAAMD,IAAI,SAAUxkB,GACzC6xB,EAAK/M,OAAOL,GAGhB,OADA1xB,KAAKwxB,QAAQ,OAAQ,eAAgBsN,GAC9BA,EAEX,kBACI,MAAM,IAAIjH,MAAM,2BAEpB,gBAAgBsD,EAAQioC,EAAW39C,GAC/B,IAAI49C,EAAWrjE,KAAKsjC,WAAWnI,GAC3BmoC,GAAoBD,EAAS1kE,QAAUykE,EAAUxuC,GAAG,SACpD/C,EAAayxC,EAAmBnoC,EAASkoC,EAC7C,GAAI,QAAU59C,GAEV,GADAoM,EAAW/D,QAAQkwC,QAAQoF,GACvBE,EAAkB,CAClB,IAAIC,EAAY1xC,EAAWD,SAAS,YACpCC,EAAWmsC,QAAQuF,SAGvB1xC,EAAWkxC,OAAOhxC,OAAOqxC,GAGjC,oBAAoB9lC,EAAe/hB,GAC/B,IAAIioD,EAAuBxjE,KAAKyjE,gBAAgBxE,IAChDuE,EAAuBxjE,KAAK2kC,eAAerH,EAAekmC,EAAsB,aAAe,OAASjoD,QAAU,IAAWA,OAAS,EAASA,EAAO0oB,aACtJjkC,KAAK0jE,gBAAgBpmC,EAAekmC,GAExC,cAAc79C,GACV,IAAIkN,EAAO7yB,KACPokC,EAAOvR,EAAKwR,SAAS1e,GACrBrY,EAAUulB,EAAKmV,gBAAgB+iB,SAAWl4B,EAAKmV,gBAAgB+iB,QAAQgD,MAC3EzgD,GAAW82B,EAAKuV,KAAKtb,IACjB,GAAI,SAAWA,EAAIT,cAAW,IAAWS,EAAI0vB,IAEzC,OADAl7B,EAAKmV,gBAAgB27B,UAAU,QAASr2D,IACjC,IAKnB,qBAAqBqoD,GACjB,OAAOA,EAAa,IAAM31D,KAAK4jE,WAEnC,eAAetmC,GACXA,EAAgBA,GAAiBt9B,KAAKwjC,cACtC,IAAIm/B,EAAerlC,EAAc1L,SAAS,SAASA,WAAWwR,IAAI,mBAAmBA,IAAI,IAAI/X,OAAO4zC,KACpG,OAAO0D,EAAal5B,UAAUjQ,OAAO,CAAC3O,EAAKwT,IAAQxT,EAAM,eAAgBwT,GAAKpxB,OAAQ,GAE1F,mBACI,IAAIqwB,EAAgBt9B,KAAK6pC,kBACrB8rB,EAAa31D,KAAKgoC,gBAAgBxmB,QAAQ7iB,OAC9C,GAAI2+B,GAAiBt9B,KAAK6jE,qBAAqBlO,GAAa,CACxD,IAAImO,EAAa9jE,KAAK+jE,eAAezmC,GACrCt9B,KAAK4jE,WAAaE,EAAanO,GAGvC,oBAAoB/tB,GAChB,IAAIwG,EAAWpuC,KAAKitB,UAChBwyC,EAAaz/D,KAAKigE,gBACtB,GAAI7xB,EAIA,OAHIqxB,IACArxB,EAAW,eAAEqxB,EAAWxkC,YAErBmT,EAASxc,WAAW9D,QAGnC,gBAAgBqV,GACZ,IAAI2G,EAAQjC,MAAM4C,gBAAgBtH,GAClC,OAAO2G,GAASA,EAAM1G,IAAI,IAAI/X,OAAO4zC,KAEzC,yBAAyB9jC,GACrB,IAAI6oC,EAAgB7oC,GAAUn7B,KAAK+qC,mBACnC,OAAOi5B,GAAiBA,EAAcpyC,SAAS,SAASA,SAAS,IAAIvG,OAAO4zC,KAEhF,iBACI,OAAOj/D,KAAK8uB,OAAO,cAEvB,UAAUG,GACN,IAAIlE,EAAO/qB,KAAKgoC,gBAAgBxmB,QAAQyN,EAAE4M,WAAa,GACvD77B,KAAK+tB,cAAc,aAAc,OAAAZ,EAAA,MAAO,CACpC,SAAS82C,GACL,IAAIp9B,EAAS,gBAAco9B,GAC3B,OAAOp9B,EAAO9b,EAAKhX,QAExBkb,EAAGlE,IAEV,aAAakE,GACT,IAAIlE,EAAO/qB,KAAKgoC,gBAAgBxmB,QAAQyN,EAAE4M,WAAa,GACvD77B,KAAK+tB,cAAc,gBAAiB,OAAAZ,EAAA,MAAO,GAAI8B,EAAGlE,IAEtD,6BAA6Brf,GACzB,IAAK,IAAIlL,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAChC,GAAI,gBAAkBkL,EAAQlL,GAAGpC,KAC7B,OAAOoC,EAGf,OAAO,EAEX,qBAAqBmlB,GACjB,IAAIu+C,EAA2BlkE,KAAKmkE,6BAA6Bx+C,EAAQja,SACrEwzB,GAAevZ,EAAQ0Y,IAAI/nB,YAAc,GAAK4tD,EAClD,MAAO,CACHhlC,YAAaA,EACbjB,QAAStY,EAAQja,QAAQ/M,OAASugC,EAAc,GAGxD,eACI,OAAO2I,MAAMnE,aAAan/B,MAAMvE,KAAMwE,cAAgBxE,KAAK8uB,OAAO,mBAEtE,aAAagQ,EAAMnZ,GACX,UAAYA,EAAQ0Y,IAAIT,QACxB59B,KAAKokE,oBAAoBtlC,EAAMnZ,GACxBA,EAAQ0Y,IAAIz6B,QACnBikC,MAAMjD,aAAa9F,EAAMnZ,GAGjC,oBAAoBmZ,EAAMnZ,GAatB,IAZA,IAGI02B,EAOA9U,GATAlJ,IAAKA,GACL1Y,GAGAja,QAASA,GACTia,GAEAkW,SAAUA,GACVwC,EAEAgmC,EAAmBrkE,KAAKskE,qBAAqB3+C,GACxCnlB,EAAI,EAAGA,GAAK6jE,EAAiBnlC,YAAa1+B,IAC3CA,IAAM6jE,EAAiBnlC,aAAexzB,EAAQlL,GAAGgjB,iBAAmB,aAAemC,EAAQ8nC,eAC3FlmB,IAAelJ,EAAIkJ,WACnB8U,EAAe3wC,EAAQlL,KAEvB+mC,EAAa,KACb8U,EAAe,CACX7pB,QAAS,SACT/e,SAAU/H,EAAQlL,GAAGiT,WAGzBzT,KAAKglC,gBAAgBxkC,EAAGmlB,EAAQ2e,gBAChCtkC,KAAKilC,YAAYnG,EAAM,CACnB9gC,MAAOupC,EACPlJ,IAAKA,EACLxC,SAAUA,EACV75B,OAAQq6C,EACRnd,YAAa1+B,EACb8jC,cAAe3e,EAAQ2e,cACvB/oB,OAAQoK,EAAQpK,SAI5B,IAAIgpD,EAAuB,eAAoBvkE,KAAK8uB,OAAO,eACvDtF,EAAc,OAAA2D,EAAA,MAAO,GAAIzhB,EAAQ24D,EAAiBnlC,aAAc,CAChE1M,QAAS,KACTp0B,KAAM,KACNqV,SAAU,KACV3B,MAAO,KACPiF,iBAAiB,EACjBzC,UAAWiwD,IAEXF,EAAiBpmC,QAAU,IAC3BzU,EAAYyU,QAAUomC,EAAiBpmC,SAEvCj+B,KAAKglC,gBAAgBq/B,EAAiBnlC,YAAc,EAAGvZ,EAAQ2e,gBAC/DtkC,KAAKilC,YAAYnG,EAAM,CACnB9gC,MAAOqgC,EAAIz6B,OAAOy6B,EAAI/nB,YACtB+nB,IAAKA,EACLxC,SAAUA,EACV75B,OAAQwnB,EACR0V,YAAamlC,EAAiBnlC,YAAc,EAC5CoF,cAAe3e,EAAQ2e,cACvB/oB,OAAQoK,EAAQpK,SAI5B,YAAY4f,EAAQxV,GAChB,IAAI8nC,EAAgBztD,KAAK8uB,OAAO,kBAChC+Y,MAAM1D,YAAYhJ,EAAQ,OAAAhO,EAAA,MAAO,CAC7BsgC,cAAeA,GAChB9nC,IACH3lB,KAAKwkE,cAAc7+C,EAAQpK,QAC3Bvb,KAAKykE,oBAAoBtpC,EAAQxV,EAAQpK,QACpCvb,KAAKohE,YACNphE,KAAK0kE,yBAAyBvpC,GAGtC,yBAAyBA,EAAQxV,EAAS7Z,GACtC,IACIuyB,IAAKA,GACL1Y,EACA0M,EAAa,OAAAlF,EAAA,MAAO,CACpBzhB,QAASia,EAAQja,SAClB2yB,GACCsF,EAAS3jC,KAAKykC,WAAWpG,EAAK,SAClCsF,EAAOtN,SAAS8E,GAChBn7B,KAAKsmC,eAAe3C,EAAQ73B,EAAiBumB,GAAY,EAAM1M,EAAQpK,QACvEvb,KAAK+kC,aAAapB,EAAQtR,EAAY1M,EAAQ0Y,KAElD,WAAWlD,EAAQxV,GACf,IACI0Y,IAAKA,GACL1Y,GAEAjV,YAAaA,GACb1Q,KAAK8uB,SACLhjB,EAAkB9L,KAAK8uB,OAAO,mBAC9B,SAAWuP,EAAIT,SAAW9xB,EAC1B9L,KAAK2kE,yBAAyBxpC,EAAQxV,EAAS7Z,GACvC,SAAWuyB,EAAIT,SAAW,UAAYS,EAAIT,SAAa,eAAUS,EAAI/nB,cAAe5F,EAK5Fm3B,MAAMrD,WAAWrJ,EAAQxV,GAJzB3lB,KAAKsmC,eAAenL,EAAQzqB,EAAa,OAAAyc,EAAA,MAAO,CAC5CzhB,QAASia,EAAQja,SAClB2yB,IAAM,GAKjB,aAAa1Y,GACT,IAAIkN,EAAO7yB,KACPm7B,EAAS0M,MAAMoI,aAAatqB,GAchC,OAbK,eAAUkN,EAAKgX,mBAWhBhX,EAAK+xC,qBAVL/xC,EAAKwW,gBAAgBlO,GACrBtI,EAAK+xC,mBAAkB,GACvB/xC,EAAK+C,gBAAgB8L,KAAI,SAAUmjC,IAC/B,IAAIC,EAAqBjyC,EAAKotC,gBAC1B6E,GAAsBjyC,EAAK5F,UAAUyH,QAAQ,iBAAYqwC,UAAUpmE,SACnEk0B,EAAK+C,gBAAgBoN,OAAO6hC,GAC5BC,EAAmBE,oBAAmB,QAM3C7pC,EAEX,eACI,IAAIA,EAAS0M,MAAM3D,aAAa3/B,MAAMvE,KAAMwE,WAI5C,OAHIxE,KAAK8uB,SAASpe,aAAe1Q,KAAK8uB,SAAShjB,kBAC3CqvB,EAAO9E,SAASr2B,KAAKixB,UAAUpC,YAE5BsM,EAEX,YAAY5f,GACR,IAAIsT,EAAW7uB,KAAKitB,UACpB4B,EAASnC,SAAS1sB,KAAKw0B,gBAAgBuqC,KAAkBzoC,YAAYt2B,KAAKw0B,gBAAgB,KAAgBx0B,KAAK8uB,OAAO,oBACtHD,EAASyH,YAAY+oC,GAAar/D,KAAKgoC,gBAAgBi9B,WACvDjlE,KAAKwxB,QAAQ,OAAQ,eAAgB3C,GACrC,IAAIsM,EAASn7B,KAAKiwC,aAAa,CAC3B10B,OAAQA,IAERjB,EAAWta,KAAKgwC,eAAe7U,EAAQ5f,GAG3C,OAFAssB,MAAMtR,YAAYhb,GAClBvb,KAAKklE,kBAAoB,KAClB5qD,EAEX,SAASiB,GACL,OAAOA,GAAUA,EAAOiG,OAASxhB,KAAKgoC,gBAAgBxmB,QAE1D,gBAAgBmE,GACZ,IACI3jB,OAAQA,GACR2jB,GAEA0Y,IAAKA,GACL1Y,GAEA5R,KAAMA,GACNsqB,EACA2yB,EAAe3yB,GAAOA,EAAI2yB,cAE1BhzD,MAAOA,GACP2nB,EACAmiC,EAAe,QAAc7C,gBAAgBjjD,EAAQhE,EAAO+V,EAAMsqB,EAAIT,SACtEpN,EAAaqX,MAAMhC,gBAAgBlgB,GAavC,GAZA6K,EAAWxyB,MAAQA,EACnBwyB,EAAW0U,SAAWvf,EAAQuf,SAC9B1U,EAAWs3B,aAAeA,EAC1Bt3B,EAAW6N,IAAMA,EACjB7N,EAAWu9B,IAAM1vB,EAAI0vB,IACrBv9B,EAAWzc,KAAOA,EAClByc,EAAWoN,QAAUS,EAAIT,QACzBpN,EAAW5sB,OAASy6B,EAAIz6B,OACxB4sB,EAAW1c,KAAQ9R,EAAOwwB,QAA4D,GAAlD,QAAc2yC,YAAYrd,EAAc9lD,GAC5EwuB,EAAWqL,SAAWwC,EAAIxC,SAC1BrL,EAAW0vC,aAAelP,GAAgBA,EAAarrC,EAAQuZ,aAC/D1O,EAAW43B,QAAUpmD,EAAOmmD,iBACxB,eAAUnmD,EAAOsU,cAAgBtU,EAAOwwB,QAAS,CACjD,IAAI4yC,EAAuBplE,KAAK8uB,OAAO,kBACnC2+B,EAAgBztD,KAAK8uB,OAAO,kBAC5B,YAAc2+B,GAAiB,aAAeA,IAC9Cj9B,EAAWzM,sBAAwBhQ,GAAQA,EAAKo9C,0BAA4BiU,GAAwBA,EAAqBrhD,sBACzHyM,EAAW1M,sBAAwB/P,GAAQA,EAAKm9C,gBAAkBkU,GAAwBA,EAAqBthD,uBAGvH,OAAO0M,EAEX,oBAAoBsZ,EAAO/K,EAAgBG,EAAalhC,GACpD,IAAIgzB,EAAoBhxB,KAAKg/B,mBACzBtzB,EAAUslB,EAAkBiB,aAC5BjwB,EAAS0J,GAAWA,EAAQwzB,GAC5B8S,EAAWhwC,GAAUA,EAAOyU,QAAUzU,EAAOC,MACjD,eAAK6nC,EAAO,CAACjO,EAAUwC,KACnB,IAAK,eAAEA,GAAK1N,SAAS,IACjB,IAAK,IAAInwB,EAAI,EAAGA,EAAIu+B,EAAepgC,OAAQ6B,IACvC,IAAI,eAAUwxC,IAAahhB,EAAkBq0C,mBAAmBtmC,EAAev+B,GAAGyB,MAAO+vC,IAAajT,EAAev+B,GAAGyB,QAAUi9B,KAC9H4K,EAAMva,GAAGsM,GAAUjK,WAAWrC,GAAG/uB,GAAGixB,IAAI,CACpCpO,QAASrlB,KAER,eAAUg0C,IACX,QAOxB,uBACI,OAAO,iBAAYszB,iBAEvB,mBACI,OAAO,QAAcC,iBAAiBhhE,MAAMvE,KAAMwE,WAEtD,eAAeq3B,EAAU6O,GACrB,IACIvL,EACAn9B,EAFAqwB,EAAaryB,KAAKgoC,gBAAgBxmB,QAAQqa,GAkB9C,OAfIxJ,IAEIrwB,EADA,eAAS0oC,GACA1qC,KAAKg/B,mBAAmBoM,aAAaV,GAErC1qC,KAAKg/B,mBAAmBC,oBAAoByL,GAErD1oC,IACAm9B,EAAcn/B,KAAK6lC,gBAAgB,CAC/B7nC,MAAOgE,EAAOoT,mBAAmBid,EAAWte,MAC5C8nB,SAAUxJ,EAAWwJ,SACrBwC,IAAKhM,EACLrwB,OAAQA,MAIbm9B,EAEX,OAAOl9B,GACH,GAAIA,GAAS,EAAG,CACZ,IAAImiC,EAAOpkC,KAAKyqC,kBAChB,GAAIrG,EAAKzlC,OAASsD,EACd,OAAO,eAAEmiC,EAAKniC,KAK1B,yBAAyBk5B,GACrB,IAAI4qB,EAAiB/lD,KAAKgoC,gBACtBw9B,EAAYzf,EAAevkC,OAAM,GAAM7iB,OACvCwjE,EAAiBniE,KAAKoiE,sBACtBqD,EAAuBzlE,KAAK0lE,yBAAyBvqC,GACzD,GAAIsqC,GAAwBtD,GAAkBpc,EAAewG,cAAgB,EAAG,CAC5E,IAAIoZ,GAAwB,EAC5B,GAAIH,EAAY,EACZ,GAAKxlE,KAAKohE,WAcNqE,EAAqB3yD,OACrB,eAAY,KACR,IAAI8yD,EAAiB5lE,KAAK6lE,mBAAkB,GACxCC,EAAgC,eAAU9lE,KAAKitB,WAAa24C,EAC5DG,EAAgB,eAAe5D,GAC/B6D,EAAmBF,EAAgCC,EAAgB,EACnEjC,EAAa9jE,KAAK+jE,eAAe5B,EAAevwC,WAAW9D,SAC3DwP,EAAgBnC,GAAUn7B,KAAK+qC,mBAC/Bk7B,EAAiBvuB,KAAKklB,KAAK7mC,WAAWuH,EAAc7L,IAAI,oBACxDy0C,EAAmBlmE,KAAKmmE,uBACxBC,EAAeN,EAAgChC,EAAamC,EAAiBC,EAC7EF,GACA,eAAY,KACRP,EAAqBh0C,IAAI,SAAU20C,GACnCT,GAAwB,EACxBF,EAAqB1yD,SAG7B,eAAY,IAAM/S,KAAKqmE,qBAAqBV,UAhC9B,CAClB,IAAIW,EAAoBvgB,EAAen/B,WAAa4+C,EAChD/X,EAAgBztD,KAAK8uB,OAAO,kBAC5Bw3C,EAAoB,GAAKvgB,EAAeyO,YAAc,GAAK,YAAc/G,GAAiB,aAAeA,IACzG,eAAUgY,EAAsBa,EAAoBtmE,KAAK4jE,YACzD+B,GAAwB,IAEvBA,GAAyBxqC,EAC1B,eAAUsqC,EAAsB,GAEhCA,EAAqB7C,OAAO+C,GAEhC3lE,KAAKqmE,qBAAqBV,QAwB9BF,EAAqBh0C,IAAI,SAAU,GACnCg0C,EAAqB1yD,OACrB/S,KAAKqmE,sBAAqB,IAItC,uBACI,IAAIE,EAAiB9nC,EAAA,KAAQ+nC,QAAUxmE,KAAKymE,wBAA0B,EAClEC,EAAiBjoC,EAAA,KAAQkoC,QAAUloC,EAAA,KAAQmoC,SAAW,GACtDC,EAAoBpoC,EAAA,KAAQG,SAAWH,EAAA,KAAQmoC,SAAW,KAAO5mE,KAAK8uB,OAAO,gBACjF,OAAOy3C,GAAkBM,GAAqBH,EAAiB,EAAI,EAEvE,qBAAqBz3C,GACjB,IACIuY,YAAaA,GACbvY,EACAA,EAAEsV,YAAYx3B,WAGdy6B,EAAY11B,OAAS01B,EAAYtJ,gBACjC2J,MAAMU,qBAAqBtZ,GAC3BjvB,KAAK8mE,+BAGb,gBACI,OAAO9mE,KAAKgiE,YAEhB,OACI,IAAInvC,EAAO7yB,KACP+lD,EAAiBlzB,EAAK7C,cAAc,QACxC6X,MAAMqX,OACNrsB,EAAKk0C,yBAA2Bl0C,EAAK7C,cAAc,iBACnD6C,EAAK+wC,WAAa,EAClB/wC,EAAK0uC,WAAa,EAClB1uC,EAAKiR,aAAe,EACpBjR,EAAK4uC,aAAe,EACpB5uC,EAAKuuC,YAAa,EAClBvuC,EAAKyvC,gBAAkB,GACvBvc,EAAe8M,eAAenxB,IAAI,CAAC4pB,EAAW6J,KAC1CtiC,EAAKm0C,WAAW1b,EAAW6J,KAE/BpP,EAAeuN,kBAAkB5xB,IAAI,KAC7B1hC,KAAK8jC,aAAe,IAAM9jC,KAAKgoC,gBAAgBsjB,aAC/CtrD,KAAK8hE,cAAc,CACf7wC,UAAWjxB,KAAKigE,gBAChBgH,2BAA2B,EAC3BzF,aAAc,CACVj+C,IAAKvjB,KAAKuhE,WACVn+C,KAAMpjB,KAAK8jC,iBAM/B,mBAAmBvoB,GACf,OAAQA,EAAO0oB,YACX,IAAK,UACL,IAAK,UACL,IAAK,SACL,IAAK,SACDjkC,KAAKu1B,OAAO,KAAMha,GAClB,MACJ,QACIvb,KAAKknE,QAAQ3rD,IAGzB,gBACI,MAAO,CAAC,qBAAsB,uBAAwB,oBAAqB,iBAAkB,gBAAiB,iBAElH,eACI,OAAO,eAASvb,KAAKitB,WAAajtB,KAAK6lE,oBAE3C,kBAAkBn6B,GACd,IAAIy7B,EAAsBnnE,KAAKiiE,sBAAwBjiE,KAAKiiE,qBAAqBtuC,IAAI,GACjFiyC,EAAiB,EASrB,OARIuB,IACKz7B,GAGDk6B,EAAiBuB,EAAoBC,aAAeD,EAAoBlxC,aAAekxC,EAAoBC,aAAe,EAC1HxB,GAAkB5F,GAA2BhgE,OAH7C4lE,EAAiBuB,EAAoBjnC,YAAcinC,EAAoBz9B,YAAcy9B,EAAoBjnC,YAAc,GAMxH0lC,EAAiB,EAAIA,EAAiB,EAEjD,8BAII,IAHA,IAAIyB,EAAmBrnE,KAAKklE,mBAAqB,GAC7CoC,EAAe,GACf57D,EAAU1L,KAAKiyB,aACVzxB,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAChC8mE,EAAa9mE,GAAKkL,EAAQlL,GAAG09B,aACzBxyB,EAAQlL,GAAG2nD,mBAAqB,eAAUz8C,EAAQlL,GAAG8V,aAAe+wD,EAAiB7mE,KAAO8mE,EAAa9mE,IACzGkL,EAAQlL,GAAG2nD,iBAAiB1xB,KAAK6wC,EAAa9mE,IAGtDR,KAAKklE,kBAAoBoC,EAE7B,qBAAqB3B,GACb3lE,KAAK8uB,OAAO,gBAAkB9uB,KAAK8uB,OAAO,kBAAoB62C,EAC9D3lE,KAAKitB,UAAUP,SAAS0yC,IAExBp/D,KAAKitB,UAAUkC,YAAYiwC,IAGnC,oBACI,IAAIK,EAAa,QAAW8H,YAAYvnE,KAAKitB,WACzCwyC,IACAA,EAAWp4B,UACPo4B,EAAW3wC,OAAO,eAAkB,OAAS2wC,QAAc,IAAWA,OAAa,EAASA,EAAW+H,gBACvGxnE,KAAKynE,mCAIjB,kCACI,IAAIhI,EAAaz/D,KAAKigE,gBAClBp8B,EAAa47B,GAAcA,EAAW+B,eAAep+C,KACrDzS,EAAa3Q,KAAK8uB,OAAO,cAC7B,GAAIne,EAAY,CACZ,IAAI+2D,EAA4BlI,GAA6BC,GACzDkI,EAAcD,EAA4B7jC,EAC1C8jC,IAAgB3nE,KAAKyhE,eACrBzhE,KAAK8jC,YAAc4jC,EAA4B1nE,KAAKyhE,cAGxDzhE,KAAK8jC,aAAe,GAAKD,IAAe7jC,KAAK8jC,aAC7C27B,EAAW17B,SAAS,CAChBxwB,EAAGvT,KAAK8jC,cAIpB,cACI,IAAIjR,EAAO7yB,KACX6yB,EAAKi0C,8BACLj0C,EAAK+0C,mBACL,eAAY,KACR/0C,EAAK+xC,oBACL/xC,EAAK0yC,mBACL1yC,EAAK6xC,2BACL,eAAY,KACR7xC,EAAKg1C,wBAIjB,SAASpiD,GACL,IAAIoJ,EAAW7uB,KAAKitB,UAChB66C,EAAej5C,GAAY,QAAW04C,YAAY14C,GAClDi5C,GACAA,EAAa/jC,SAASte,GAG9B,OAAOxY,GACH,IAAI4hB,EAAW7uB,KAAKitB,UACpB,GAAI,IAAMzoB,UAAU7F,OAChB,OAAOkwB,EAAW,eAAeA,GAAU,GAAQ,EAEnD,eAAU5hB,IAAW4hB,IACrB7uB,KAAK+nE,UAAU,SAAW96D,GAC1B,eAAU4hB,EAAU5hB,IAG5B,UAAU86D,GACN,GAAI,IAAMvjE,UAAU7F,OAChB,QAASqB,KAAKohE,WAElBphE,KAAKohE,WAAa2G,EAGtB,WAAWzc,EAAW6J,GAClB,IAAI5nD,EAAYvN,KAAKihE,WACjBlb,EAAiB/lD,KAAKgoC,gBACtBggC,EAAmBhoE,KAAK8uB,OAAO,cAAgB,GAC/CvR,EAAYwoC,EAAejW,WAAak4B,EAAiBzqD,UAAY,KACrEsR,EAAW7uB,KAAKitB,UACpB,GAAK,oBAGA1f,QAAa,IAAW4nD,GAAepP,EAAe6N,gBAAkB,SAAWoU,EAAiB5vD,SAAWyW,IAChH7uB,KAAKkhE,iBAAiBryC,EAAUA,EAASyD,UACzC/kB,EAAYvN,KAAKihE,YAEjB1zD,GAAW,CACX,IAAI06D,EAAoB,CACpB/0D,QAASiiD,GAAe6S,EAAiBl0D,KACzCyJ,UAAWA,EACX1L,QAASy5C,GAETA,IACA2c,EAAkB3vD,SAAW,QAAc4vD,2BAA2Br5C,IAE1E4M,aAAaz7B,KAAKmoE,uBACd56D,EAAUuhB,OAAO,aAAew8B,EAChCtrD,KAAKmoE,sBAAwB3sC,WAAW,KACpCjuB,EAAUuhB,OAAOm5C,IAClB1I,IAEHhyD,EAAUuhB,OAAOm5C,IAI7B,eAAe/oC,EAAalhC,GACxB,IAAI8rC,EAAQ9pC,KAAKyqC,kBAAkBrH,IAAI,IAAI/X,OAAO,MAAqB,GACvErrB,KAAKooE,oBAAoBt+B,EAAO9pC,KAAKiyB,aAAciN,EAAalhC,GAEpE,qBAAqB69B,GACjB,IAAI3J,EAAS2V,MAAM2C,qBAAqBjmC,MAAMvE,KAAMwE,WACpD,GAAI0tB,EAAQ,CACR,IAAIm2C,EAAiBn2C,EAAO5tB,OAAO,IAAI+mB,OAAO,KAAmBppB,QACjE,GAAIomE,GAAkB,GAAKn2C,EAAOvzB,OAAS0pE,EAAiB,EACxD,OAAOn2C,EAAO1vB,MAAM,EAAG6lE,EAAiB,GAGhD,OAAOn2C,EAEX,6BAA6Bo2C,EAAOC,GAChC,IAAIC,EAAY,EACZC,EAAa,EACbphD,EAAS,EACTqhD,EAAmB1oE,KAAKuhE,WACxBoH,EAAkB3oE,KAAKoiE,sBACvBwG,EAA0BD,GAAmBA,EAAgBthD,SAAS9D,IACtEwiC,EAAiB/lD,KAAKgwB,cAAc,QACpCxO,EAAQukC,EAAevkC,QACvB2hB,EAAenjC,KAAK6pC,kBACxB,GAAIroB,EAAM7iB,QAAUwkC,EAAc,CAC9B,IAAI0lC,EAAc7oE,KAAKyqC,gBAAgBtH,GAAc7+B,OAAO,YAC5D,IAAKgkE,EAAO,CACR,IAAIr7D,EAAS,eAAejN,KAAKohE,WAAaphE,KAAKitB,UAAY,kBAC/Dy7C,GAAoBz7D,EAExB,IAAKu7D,EAAY,EAAGA,EAAYhnD,EAAM7iB,OAAQ6pE,IAAa,CACvDC,EAAaphD,EACb,IAAI+d,EAAc,eAAEyjC,GAAat5C,GAAGi5C,GACpC,GAAIpjC,EAAYzmC,SACZ0oB,EAAS+d,EAAY/d,SACrBA,GAAUihD,EAAQjhD,EAAO9D,IAAM8D,EAAO9D,IAAM,eAAe6hB,IAAgBwjC,EACvEvhD,EAASqhD,GAAkB,CACvBF,IACID,GAAW,EAAIG,EAAmBhxB,KAAKgoB,MAAMr4C,EAASohD,KACtDD,IAGR,OAIRA,GAAaA,IAAchnD,EAAM7iB,QACjC6pE,IAGR,OAAOA,EAEX,uBAAuBD,GACnB,OAAOvoE,KAAK8oE,8BAA6B,EAAMP,GAEnD,0BAA0BA,GACtB,OAAOvoE,KAAK8oE,8BAA6B,EAAOP,GAEpD,uBACI,IAAIC,EAAYxoE,KAAK+oE,yBACjBvnD,EAAQxhB,KAAKgoC,gBAAgBxmB,QACjC,GAAIA,EAAMgnD,GACN,OAAOhnD,EAAMgnD,GAAWz0D,KAIhC,iBAAiB8a,EAAUxH,GACvB,IAAIo4C,EAAaz/D,KAAKigE,gBACtBR,GAAcA,EAAWuJ,gBAAgBn6C,EAAUxH,GAEvD,cAAc2G,GAEV,OADA6Z,MAAMC,cAAc9Z,GACZA,EAAKra,MACT,IAAK,kBACL,IAAK,kBACL,IAAK,eACL,IAAK,wBACL,IAAK,cACL,IAAK,kBACL,IAAK,uBACD3T,KAAK+nC,aAAY,GAAM,GACvB/Z,EAAKC,SAAU,EACf,MACJ,IAAK,YACDjuB,KAAK4jE,WAAa,KAClB5jE,KAAKwjC,cAAgB,KACrBxV,EAAKC,SAAU,EACf,MACJ,IAAK,aACDjuB,KAAK4jE,WAAa,KAClB5jE,KAAKwjC,cAAgB,KACrB,MACJ,IAAK,YACDxjC,KAAKwjC,cAAgB,KACrBxjC,KAAK+nC,aAAY,EAAM,sBAAwB/Z,EAAKixB,UACpDjxB,EAAKC,SAAU,EACf,MACJ,IAAK,aACDjuB,KAAKulE,mBACLv3C,EAAKC,SAAU,GAG3B,UACI4Z,MAAMssB,UACN14B,aAAaz7B,KAAKmoE,uBAClBnoE,KAAKgiE,aAAehiE,KAAKgiE,YAAY7N,UAEzC,sBACA,qBAEG,IAAI8U,GAAa,CACpB/7B,eAAgB,KAAM,CAClB9/B,mBAAmB,EACnBwD,UAAW,CACPuY,UAAW,QAEf5b,UAAW,CACP6K,QAAS,OACTtE,KAAM,OAAoB/V,OAAO,WACjC+T,MAAO,IACP7E,OAAQ,GACRkZ,eAAe,EACfD,aAAc,GACdE,UAAU,GAEdta,gBAAiB,KACjBV,iBAAiB,EACjBqC,WAAY,OAAoB1P,OAAO,yBACvCgU,iBAAiB,EACjBZ,iBAAiB,EACjBC,cAAc,EACdZ,uBAAuB,EACvB3F,oBAAoB,EACpB+G,sBAAsB,IAE1BonB,MAAO,CACHtN,SAAU,KC1kCIu9C,GAAWjwC,MAAMtN,SACvC,GAAS0mB,eAAe,OAAQ62B,I,iBCO5BC,GAAe,kBACf,GAAW,CACX/7B,kBAAmB,SACnBzhB,SAAU,UACVy9C,WAAY,SACZrK,YAAa,eAEbsK,GAAa,CAAC,oBAAqB,WAAY,aAAc,eAC7DC,GAAwB,GAAQv0C,eAAelC,QAAQ,CACvD,OACI5yB,KAAKkwB,aAAa,2BAEtB,oBAAoBo5C,GAChB,IAAKA,EACD,OAAO,EAEX,IAEIz6C,EACA06C,EACAC,EACAC,EALA52C,EAAO7yB,KACPsvB,EAAiB,eAAEg6C,EAAQ5mE,QAkC/B,OA7BA,eAAK0mE,IAAY,WACb,IAAI/4C,EAAIub,EACJ89B,EAAO72C,EAAKgc,QAAQ7uC,MAExB,GADA6uB,EAAW66C,GAAQA,EAAKz8C,UACpB4B,IAAaA,EAAS+F,GAAGtF,IAAmBT,EAAStB,KAAK+B,GAAgB3wB,QAAS,CACnF6qE,EAAqBl6C,EAAeoF,QAAQ,8BAC5C60C,EAAoBC,EAAmBl3C,SACvC,IAAIuJ,EAAW6tC,EAAK5tC,YAAYytC,GAC5BrqC,EAAcsqC,EAAmB,IAAMA,EAAmB,GAAG1jC,UAC7DzT,EAAak3C,EAAkBx1D,KAAK,WACpC4R,EAAU,CACVsG,MAAOq9C,EACPK,cAAe,eAAiBr6C,GAChC5sB,OAAQ,GAAS1C,MACjB67B,SAAUA,EACVwC,IAAKqrC,EAAKrlC,WAAWxI,GACrBqD,YAAaA,EACbl9B,OAAQ,QAAU4pC,EAAK,QAAUvb,EAAK,OAASgC,QAAc,IAAWA,OAAa,EAASA,EAAWE,aAAU,IAAWlC,OAAK,EAASA,EAAG6O,UAAiB,IAAW0M,OAAK,EAASA,EAAG5pC,QAMhM,GAJA2jB,EAAQnE,MAAQkoD,EAAKE,qBAAuBF,EAAKE,oBAAoBjkD,GACrEkN,EAAK9E,cAAc,yBAA0BpI,GAC7CkN,EAAKg3C,qBAAqBlkD,GAC1B8jD,EAAY9jD,EAAQnE,MAChBioD,EACA,OAAO,MAKZA,GAEXI,qBAAsB,SAEtBC,GAAkB,GAAQ90C,KAAKpC,QAAQ,CACvC,cACI,IAAIC,EAAO7yB,KACP6uB,EAAWgE,EAAK5F,UAAUP,SAASw8C,IACvClpE,KAAKwxB,QAAQ,OAAQ,eAAgB3C,GACrC7uB,KAAK8zB,iBAAiBjF,EAAU,QAAa,CACzC,cAAck7C,GACV,IACI99C,MAAOA,GACP89C,EACAC,EAAsBD,EAAW94C,UACjCzP,EAAQqR,EAAK7C,cAAc,eAAe45C,oBAAoB39C,GAC9DzK,GACAwoD,EAAoBl7C,OAAO,QAAStN,GACpCyK,EAAMg+C,mBAENF,EAAW5vD,QAAS,GAG5B,YAAY03B,GACRA,EAAOE,SAASH,aAAeC,EAAOE,SAASH,YAAYC,IAE/Dp+B,SAAUof,EAAK8B,0BACfjyB,OAAQmwB,EAAK5B,UAAUpC,gBAIxBq7C,GAAoB,CAC3Bh9B,eAAgB,KAAM,CAClBl/B,uBAAwB,OAE5B+qB,YAAa,CACToxC,YAAad,IAEjBrwC,MAAO,CACHoxC,gBAAiBN,KClGzB,GAAa13B,eAAe,cAAe83B,ICK3C,IAAI,GAAkB,eAClBG,GAAsB,mBACtBC,GAA0B,iBAC1BC,GAAe,SACfC,GAA0B,GAAQ11C,eAAelC,QAAQ,CACzD,OACI5yB,KAAKyqE,mBAAqBzqE,KAAK6uC,QAAQ,qBACvC7uC,KAAK0qE,UAAY1qE,KAAK6uC,QAAQ,aAElC,gBAAgB6b,EAAO5f,GACnB,IACI6/B,EACAC,EAFA/3C,EAAO7yB,KAGP6qE,EAAgB7qE,KAAK8qE,oBAAoBpgB,GAC7C,OAAI5f,GACA6/B,EAAY,eAAE,QAAQj+C,SAAS,IAC/Bk+C,EAAe,eAAE,SAASl+C,SAAS49C,IAAyB59C,SAASmG,EAAK2B,gBAAgB+1C,KAC1F,OAAaj8C,GAAGs8C,EAAc,OAAgB/3C,EAAK3C,aAAalC,IAC5D,IACI28C,EADA17C,EAAIjB,EAAK/B,MAET8+C,EAAgB,eAAE97C,EAAEyM,eAAehH,QAAQ,IAAIrJ,OAAO,KAAkBppB,QAC5EgtB,EAAEg7C,kBACF,eAAKn/B,EAAgB,CAACnT,EAAGwL,KACrBwnC,EAAY,eAAExnC,GAAcvR,SAAS,SAASA,SAAS,MAAMrC,GAAGw7C,GAChEl4C,EAAKm4C,eAAeL,KAExB93C,EAAK7C,cAAc,aAAe6C,EAAK7C,cAAc,YAAYi7C,4BAErE,eAAE,QAAQn+C,KAAK,CACXhK,QAAS+P,EAAK7C,cAAc,WAAWiP,oBAAoBtgC,OAC3DusE,KAAM,iBACPlN,QAAQ4M,GAAc74C,OAAO84C,GAAex0C,SAASs0C,GACjDA,GAEJE,GAEX,oBAAoBngB,GAChB,IAAIx3C,EAAUw3C,EAAMygB,IAAMzgB,EAAMx3C,QAAQ2rC,QAAQ6L,EAAMygB,IAAK,IAAMzgB,EAAMx3C,SAAWw3C,EAC9E0gB,EAAW,eAAE,SAAS1+C,SAAS29C,IAAqBv2D,KAAKZ,GAI7D,OAHIw3C,EAAMygB,KACN,eAAE,OAAOr+C,KAAK,OAAQ49B,EAAMygB,KAAKr3D,KAAK42C,EAAMygB,KAAK90C,SAAS+0C,GAEvDA,GAEX,eAAe1gB,EAAO7uB,EAAUwvC,GAC5B,IACIC,EACAC,EAFA14C,EAAO7yB,KAGX,GAAIqrE,EAIA,OAHAA,EAAc99C,KAAK,IAAIlC,OAAOg/C,KAAsBrnC,SACpDsoC,EAAuBz4C,EAAK24C,gBAAgB9gB,GAC5C2gB,EAAcrN,QAAQsN,GACfA,EAEX,IAAIj+C,EAAcwO,GAAY,IAAMhJ,EAAK43C,mBAAmBv0C,YAAcrD,EAAK63C,UAAY73C,EAAK43C,mBAC5F3/B,EAAiBzd,EAAY0d,mBACjC,eAAKD,EAAgB,CAACnT,EAAGwL,KAGrB,GAFAmoC,EAAuBz4C,EAAK24C,gBAAgB9gB,EAAO5f,GACnDygC,EAAiBA,GAAkBD,EAC/BzvC,GAAY,EAAG,CACf,IAAIiD,EAAOzR,EAAYod,gBAAgB,eAAEtH,IAAe5T,GAAGsM,GAC3DhJ,EAAKm4C,eAAelsC,EAAK2sC,QACzBH,EAAqBxI,YAAYhkC,OAC9B,CACH,IAAI6E,EAAS,eAAER,GAAcvR,SAAS,SAClCi3C,EAAcllC,EAAO/R,SAAS,MAC9BiB,EAAK43C,mBAAmBv0C,aACxBrD,EAAKm4C,eAAenC,EAAY9F,QAChC,eAAE5/B,GAAcpR,OAAOu5C,KAEvBz4C,EAAKm4C,eAAenC,EAAY/6C,SAChC6V,EAAO7V,QAAQkwC,QAAQsN,OAInC,IAAII,EAAqB74C,EAAK7C,cAAc,YAE5C,OADA07C,GAAsBA,EAAmBT,yBAClCM,GAEX,eAAezsC,GACX,IAAKA,EAAM,CACP,IAAI6sC,EAAiB3rE,KAAKyqE,oBAAsBzqE,KAAKyqE,mBAAmBx9C,UAExE,GADA6R,EAAO6sC,GAAkBA,EAAep+C,KAAK,IAAIlC,OAAO,MACnDyT,IAASA,EAAKngC,OAAQ,CACvB,IAAIitE,EAAmB5rE,KAAK0qE,UAAUz9C,UACtC6R,EAAO8sC,GAAoBA,EAAiBr+C,KAAK,IAAIlC,OAAO,MAGpEyT,GAAQA,EAAKnO,SAAS,KAAoBmO,EAAKkE,UAEnD,cAAchV,GACV,OAAQA,EAAKra,MACT,IAAK,kBACDqa,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,OAInB69C,GAAsB,CAC7B3+B,eAAgB,KAAM,CAClB9gC,iBAAiB,IAErB2sB,YAAa,CACT+yC,cAAetB,IAEnBlxC,UAAW,CACPP,YAAa,CACThlB,KAAM,CACF,OACI,IAAI8e,EAAO7yB,KACP+rE,EAA0Bl5C,EAAK7C,cAAc,iBACjD6C,EAAKqC,WACLrC,EAAK43B,kBAAkB/oB,IAAI,CAACgpB,EAAO2gB,KAC3Bx4C,EAAK/D,OAAO,oBACZi9C,EAAwBC,eAAethB,OAAO,EAAQ2gB,KAG9Dx4C,EAAK2V,QAAQ9G,IAAIzS,IACb,IAAIA,GAAK,cAAgBA,EAAEgV,WAA3B,CAGA,IAAI8nC,EAA0Bl5C,EAAK7C,cAAc,iBAC7CouC,EAAoBvrC,EAAK7C,cAAc,WACvCouC,IAAsBA,EAAkB6N,cACxCF,GAA2BA,EAAwBf,yBCnI/E,GAAS54B,eAAe,gBAAiBy5B,ICgCzC,IAAIK,GAAgB,UAChB,GAAoB,cACpBC,GAAyB,mBACzBC,GAA2B,wBAC3BC,GAAqB,kBACrB,GAAuB,iBACvB,GAAa,CAAC,uBAAwB,qBAAsB,cAAe,cAAe,oBAAqB,WAAY,aAAc,oBAAqB,kBAAmB,YAAa,qBAAsB,kBAAmB,YAAa,mBAAoB,qBACxQ,GAAiB,SAASv6D,GAC1B,OAAO,eAASA,IAAUA,EAAM4N,SAAS,MAEzC4sD,GAAe,SAASx6D,GACxB,OAAO,eAASA,IAAUA,EAAM4N,SAAS,OAEzC6sD,GAAqB,SAAS15C,EAAM6U,GACpC,IAAI8kC,EAAe35C,EAAK63C,UAAU8B,eAC9BC,EAAa55C,EAAK65C,eAAehlC,EAAQ8kC,GAC7C,OAAOA,EAAeC,GAEtBE,GAAwC,SAAS95C,EAAMqM,EAAa0tC,EAAiBllC,GACrF,OAAO6kC,GAAmB15C,EAAM6U,EAAO7oC,IAAI,CAACiT,EAAO7P,IAAUA,IAAUi9B,EAAc0tC,EAAkB96D,KAEvG,GAAe,SAAS+6D,EAAgBC,GACxC,EAA0BD,GAAgB,GAC1C,QAAcE,kBAAkBF,EAAgBC,IAEhDE,GAA4B,CAC5B,0BACShtE,KAAKitE,uBACNjtE,KAAKitE,qBAAuBh+C,IACxB,IAAIi+C,GAAiB,IAAK,QAAUhwC,QAAQ,MACxC+G,EAAa,OAAShV,QAAK,IAAWA,OAAI,EAASA,EAAEgV,WACrDgpB,EAAY,OAASh+B,QAAK,IAAWA,OAAI,EAASA,EAAEg+B,UACpDkgB,EAAuBlpC,GAAc,oBAAsBA,GAAc,qBAAuBA,GAAc,cAAgBA,IAAegpB,EACjJjtD,KAAKgoC,gBAAgBQ,QAAQxF,OAAOhjC,KAAKitE,sBACrCjtE,KAAKotE,eACLF,EAAiBltE,KAAKqtE,cAAcp+C,IAEpCk+C,GACA,eAAKD,GAAgB12C,KAAK,KACtBx2B,KAAKstE,gBACLttE,KAAKirE,4BAIjBjrE,KAAKgoC,gBAAgBQ,QAAQ9G,IAAI,KAC7B1hC,KAAKgoC,gBAAgBQ,QAAQ9G,IAAI1hC,KAAKitE,0BAIlD,cAAch+C,GACV,IAAIoB,EACA68C,GAAiB,IAAK,QAAUhwC,QAAQ,MACxC+G,EAAa,OAAShV,QAAK,IAAWA,OAAI,EAASA,EAAEgV,WACrDgpB,EAAY,OAASh+B,QAAK,IAAWA,OAAI,EAASA,EAAEg+B,UACpDzrC,EAAQxhB,KAAKgoC,gBAAgBxmB,QACjC,GAAKyN,GAAK,YAAcgV,GAAc,YAAcA,GAAc,WAAaA,GAIxE,GAAI,WAAaA,EAAY,CAChC,GAAI,KAAO,QAAU5T,EAAKpB,EAAEsV,mBAAgB,IAAWlU,OAAK,EAASA,EAAG1xB,QACpE,OAAOuuE,IAEN1rD,EAAM7iB,OAAS,GAAK,WAAaswB,EAAEsV,YAAY,KAAS,IAAM/iB,EAAM7iB,QAAU,WAAaswB,EAAEsV,YAAY,IAAQtV,EAAEujC,qBAUpH0a,EAAiBltE,KAAKutE,UATtBL,EAAiB,IAAI,OACrBltE,KAAKwtE,sBAAsBh3C,KAAK,KAC5B,eAAY,IAAM,eAAY,IAAM,eAAY,KAC5Cx2B,KAAKytE,sBACLztE,KAAK0qE,UAAU6C,SACfL,EAAehwC,gBAEpB+L,KAAKikC,EAAerqC,eAftBoqB,IACDigB,EAAiBltE,KAAKutE,UAmB9B,OAAOL,GAEX,yBACIltE,KAAKixB,UAAUy8C,2BAEnBC,oBAAqB,IAAM,0BAC3B,gBACI,IAAI/X,EAAkBle,KAAKpwB,IAAI,EAAGtnB,KAAKgoC,gBAAgB4tB,mBACvD51D,KAAKixB,UAAUO,QAAQ,QAAS,OAAoBzzB,OAAOiC,KAAK2tE,sBAAuB/X,EAAiB51D,KAAKixB,UAAU41B,eAAgB7mD,KAAKixB,UAAUpC,WAAW+C,SAAS,IAAIvG,OAAO+gD,OAEzL,oBACI,IAAI/7C,EACA3E,EAAW1rB,KAAK0qE,UAChBv9B,EAAoBntC,KAAKyqE,mBACzB/iC,EAAShc,EAASkiD,kBACtB,KAAM,OAASlmC,QAAU,IAAWA,OAAS,EAASA,EAAO/oC,QAAS,CAClE,IAAIkvE,EAAsB1gC,EAAkBtD,kBAC5CsD,EAAkB9D,gBAAgB,QAAUhZ,EAAK3E,EAASme,yBAAsB,IAAWxZ,OAAK,EAASA,EAAGuB,SAAS,eACrH8V,EAASyF,EAAkBygC,kBAC3BzgC,EAAkB9D,gBAAgBwkC,GAEtC,OAAOnmC,GAEX,kBAAkB3I,EAAgB2I,GAC9B,IAAI1W,EAAoBhxB,KAAKg/B,mBAC7BhO,EAAkB81B,cAClB,eAAK/nB,EAAgB,CAAC98B,EAAOD,KACzB,IAAI8rE,EAAW98C,EAAkB+8C,YAAY/rE,GAC7CgvB,EAAkBoa,aAAa0iC,EAAU,eAAgBpmC,EAAOzlC,MAEpE+uB,EAAkB+1B,aAEtB,0BAA0B2iB,EAAMt1C,EAAW45C,GACvC,GAAKtE,GAASA,EAAKxzC,YAAnB,CAGA,IAAI+3C,EAAcjuE,KAAK0qE,UAAU3/B,mBAC7BmjC,EAAcxE,EAAK3+B,mBACvB,eAAKkjC,EAAa,CAAChsE,EAAOkhC,KACtB,IAAIgrC,EACAC,EAAa,eAAEjrC,GACfkrC,EAAaH,EAAY3+C,GAAGttB,GAC5BosE,GAAcA,EAAW1vE,SAErBwvE,EADAH,EACaK,EAAWz8C,SAAS,SAASyE,SAAS+3C,GAEtCA,EAAWx8C,SAAS,IAAIvG,OAAO+I,IAAYiC,SAASg4C,GAErEF,EAAW73C,YAAYlC,EAAW45C,GAClCG,EAAW73C,YAAYt2B,KAAKw0B,gBAAgB,YAAaw5C,QAIrE,mBAAmBA,GACf,IAAII,EAAapuE,KAAK0qE,UAAU7gC,kBAC5BykC,EAAkBtuE,KAAK0qE,UAAU3/B,mBAAmBxb,GAAG,GACtD6+C,IAGLA,EAAW38C,IAAI,cAAeu8C,EAAY,OAAS,SACnDI,EAAWx8C,SAAS,YAAYH,IAAI,UAAWu8C,EAAY,OAAS,IACpE,eAAKM,EAAgB/gD,KAAK8+C,IAAqB,CAACkC,EAAKxjD,KACjD,eAAEA,GAAM0G,IAAI,UAAWu8C,EAAY,OAAS,MAEhDM,EAAgBh4C,YAAYt2B,KAAKw0B,gBAAgB,KAAqBw5C,GACtEhuE,KAAKwuE,0BAA0BxuE,KAAKyqE,mBAAoB,YAAauD,GACrEhuE,KAAKwuE,0BAA0BxuE,KAAKyuE,YAAa,YAAaT,GAC1DhuE,KAAK0uE,iBACLN,EAAWz6C,IAAI,GAAG2I,MAAMxqB,MAAQk8D,EAAY,OAAS,MAG7D,wBAAwBhwE,GACpB,IAAIyhE,EAAaz/D,KAAK0qE,UAAUzK,gBAC5B0I,EAAkB3oE,KAAK0qE,UAAUtI,uBACjC,KAAW,OAAS3C,QAAc,IAAWA,OAAa,EAASA,EAAW3wC,OAAO,eACrF65C,EAAgBl3C,IAAI,CAChBnT,UAAWtgB,EAAQ,QAAc2wE,sBAAsBlwC,EAAA,MAAW,MAI9E,sBACI,IAOImwC,EAGA/B,EACAC,EAXA97C,EAAoBhxB,KAAKg/B,mBACzBD,EAAiB/N,EAAkBiO,oBACnC7zB,EAAkBpL,KAAK8uB,OAAO,mBAC9B/c,EAAkB/R,KAAK8uB,OAAO,mBAC9B+/C,EAA0B9vC,EAAe4a,KAAK33C,IAAW,eAAUA,EAAO8P,QAC1Eg9D,EAAc9uE,KAAK+uE,eACnBC,GAAc,EAEdC,GAA0B,EAC1BC,EAAe,IAGlBJ,GAAe,eAAK/vC,EAAgB,CAAC98B,EAAOD,KACzC,GAAI,SAAWA,EAAO8P,MAElB,OADAg9D,GAAc,GACP,IAIf,eAAK/vC,EAAgB,CAAC98B,EAAOD,KACzB,GAAIA,EAAO0U,SAEP,OADAs4D,GAAc,GACP,IAIfhvE,KAAKmvE,kBAAkBpwC,EAAgB,IACvC,IAAIlQ,EAAW7uB,KAAKixB,UAAUpC,WAC1BigD,IACAjC,EAAiB,aAAWuC,iBAAiBvgD,EAAS8E,IAAI,IAC1Dm5C,EAAiB,QAAcuC,kBAAkBxC,GACjD7sE,KAAKsvE,oBAAmB,GACxBV,GAAmB,GAEvB5uE,KAAKuvE,wBAAwBx9D,GACzB8c,GAAYA,EAAS8E,IAAI,IAAM3zB,KAAKwvE,mBAC7BxvE,KAAKwvE,UACZ3gD,EAAS,GAAGyN,MAAMje,SAAW,IAEjC,eAAY,KAsBR,GArBIywD,GACAI,EAAelvE,KAAKyvE,oBACpB,eAAK1wC,EAAgB,CAAC98B,EAAOD,KACzB,IAAI8rE,EAAW98C,EAAkB+8C,YAAY/rE,GAC7CgvB,EAAkBoa,aAAa0iC,EAAU,eAAgBoB,EAAajtE,IAAQ,MAE3E+sE,IACPE,EAAelvE,KAAKyvE,qBAExB,eAAK1wC,GAAgB,SAAU98B,GAC3B,IACI6P,MAAOA,GACP9R,KACA,SAAW8R,IACP,eAAUA,GACVo9D,EAAajtE,GAAS,eAAU6P,IAAUw6D,GAAax6D,GAASikB,WAAWjkB,GAASA,EAC5E1G,IACR8jE,EAAajtE,QAAS,OAI9B2sE,IACA5uE,KAAKsvE,oBAAmB,GACxBV,GAAmB,EACf/B,GAAkBA,IAAmB,aAAWuC,oBAAoB,CACpE,IAAIM,EAAuB,eAAgB7C,GAAgB8C,OAAS,EAC/DD,GACD,GAAa7C,EAAgBC,GAIzCmC,EAA0BjvE,KAAK4vE,qBAAqBV,EAAcnwC,GAC9D3zB,KACE,WACE,IAAIykE,EACJ,eAAK9wC,EAAgB,CAAC98B,EAAOD,KACrB,gBAAkBA,EAAO5D,OACzByxE,EAAoBX,EAAajtE,MAGzC,eAAK88B,EAAgB,CAAC98B,EAAOD,KACrB,gBAAkBA,EAAO5D,MAAQyxE,IACjCX,EAAajtE,GAAS4tE,KAThC,GAaE7vE,KAAK0uE,gBACL1uE,KAAK8vE,gBAAgBZ,EAAcnwC,IAG3C,eAAY,MACJ+vC,GAAeG,GAA2BJ,IAC1C7uE,KAAKmvE,kBAAkBpwC,EAAgBmwC,GAEvCn9D,GACA/R,KAAKuvE,yBAAwB,QAK7C,eACI,OAAOvvE,KAAK8uB,OAAO,oBAEvB,eACI,OAAO9uB,KAAKg/B,mBAAmBC,oBAAoB0a,KAAKo2B,GAAK,SAAWA,EAAEj+D,QAAUi+D,EAAEv9C,UAE1F,wBAAwB08C,GACpB,IAAIc,EAAYzD,GAAmBvsE,KAAMkvE,GACrCe,EAA0Bf,EAAa5qE,OAAOwN,QAAS,IAAWA,GAAOnT,OAC7E,OAAOqxE,EAAYC,GAEvB,qBAAqBf,EAAcnwC,GAC/B,IACIv+B,EADAqyB,EAAO7yB,KAEPkwE,GAAkB,EAClBC,GAAe,EACflB,GAA0B,EAC1BpgD,EAAWgE,EAAK5B,UAAUpC,WAC1BuhD,EAAWv9C,EAAKw9C,UAChB1tB,EAAQ,WACR,IAAI1gD,EAAQzB,EACRwB,EAAS+8B,EAAe98B,GACxBquE,EAAiBpB,EAAajtE,KAAW,GACzC6P,EAAQo9D,EAAajtE,IAErByU,SAAUA,GACV1U,EACJ,GAAI0U,EACA,QAAI,IAAW5E,EAAO,CAClB,IAAIy+D,EAAsB19C,EAAK29C,wBAAwBtB,GACvDp9D,EAAQy+D,OACL,GAAI,GAAez+D,GAAQ,CAC9B,IAAIk+D,EAAYrD,GAAsC95C,EAAM5wB,EAAOyU,EAAUw4D,GACzEc,EAAY,IACZl+D,GAAS,GAIrB,IAAI2+D,EAAkB59C,EAAK69C,oBAAoBzuE,EAAOitE,EAAarwE,IAAI,CAAC8M,EAAauzB,IAAgBj9B,IAAUi9B,EAAcptB,EAAQnG,IACjI+K,IAAa45D,GAAkBG,EAAkB/5D,IACjDw4D,EAAajtE,GAASyU,EACtBu4D,GAA0B,EAC1BzuE,GAAK,GAEJ,eAAUwB,EAAO8P,SAClBq+D,GAAe,GAEf,GAAenuE,EAAO8P,SACtBo+D,GAAkB,IAG1B,IAAK1vE,EAAI,EAAGA,EAAIu+B,EAAepgC,OAAQ6B,IACnCmiD,IAEJ,IAAKwtB,GAAgBjB,EAAavwE,OAAQ,CACtC,IAAIitE,EAAmB/4C,EAAK63C,UAAUz9C,UAClCu/C,EAAe35C,EAAK63C,UAAU8B,eAC9B5G,EAAiB/yC,EAAK63C,UAAU7E,oBAChC4G,EAAa55C,EAAK65C,eAAewC,EAAc1C,GACnD,GAAIC,EAAaD,EAAc,CAC3B,IAAImE,EAAkB,QAAcC,4BAA4B7xC,EAAgBmwC,GAChF,GAAIyB,GAAmB,IACnBzB,EAAayB,GAAmB,OAChC1B,GAA0B,GACtB,IAAUmB,IAAaF,GAAiB,CACxC,IAAIW,EAAch+C,EAAK/D,OAAO,eAAiB4oB,KAAKklB,KAAK,eAAcgP,GAAoB,eAAcA,IAAqB,EAC9H/4C,EAAK28C,UAAY/C,EAAa7G,EAAiBiL,EAC/ChiD,EAAS4C,IAAI,WAAYoB,EAAK28C,aAK9C,OAAOP,GAEX,gBAAgB6B,EAAa/xC,GACzB,IAAIgyC,EAAY/wE,KAAK0qE,UAAU8B,eAC3BwE,EAAYhxE,KAAK0sE,eAAeoE,EAAaC,GAC7CE,EAAgB,CAChBtyE,OAAQ,GAEZ,GAAKmyE,EAAYnyE,OAAjB,CAGA,eAAKogC,GAAgB,SAAU98B,IACvBjC,KAAK8R,OAASg/D,EAAY7uE,KAAW,MACrCgvE,EAAchvE,IAAS,EACvBgvE,EAActyE,aAGtB,IAAIuyE,EAAOH,EAAYC,EACnBG,EAAcz5B,KAAK05B,MAAMF,GAAQJ,EAAYnyE,OAASsyE,EAActyE,SACpE0yE,EAAwBH,EAAOC,GAAeL,EAAYnyE,OAASsyE,EAActyE,QACrF,GAAIuyE,GAAQ,EACR,IAAK,IAAI1wE,EAAI,EAAGA,EAAIswE,EAAYnyE,OAAQ6B,IAChCywE,EAAczwE,KAGlBswE,EAAYtwE,IAAM2wE,EACdE,EAAwB,IACpBA,EAAwB,GACxBP,EAAYtwE,IAAM6wE,EAClBA,EAAwB,IAExBP,EAAYtwE,KACZ6wE,SAMpB,oBAAoBnyC,EAAaooC,EAAcgK,GAC3C,IAAIC,EAAQ,EACRz/D,EAAQw1D,EAAapoC,GACzB,IAAK,GAAeptB,GAChB,OAAOikB,WAAWjkB,GAEtB,IAAI0/D,EAAoBlK,EAAa9tC,OAAO,CAAC3O,EAAK/Y,EAAO7P,IAChD,GAAe6P,GAGb+Y,EAAMkL,WAAWjkB,GAFb+Y,EAGZ,GACC4mD,EAAkBnK,EAAa9tC,OAAO,CAAC3O,EAAK/Y,KACvCA,GAASA,IAAU,IAAwB,GAAeA,GACpD+Y,EAEJA,EAAMkL,WAAWjkB,GACzB,GACHw/D,EAAaA,GAActxE,KAAK0qE,UAAU8B,eAC1C,IAAIkF,EAAYJ,EAAaG,EACzBE,EAA2BH,EAAoBF,EAAa,IAIhE,OAHIG,EAAkB,GAAKE,EAA2BF,GAAmBH,IACrEC,EAAQI,EAA2BD,EAAYA,EAAYC,EAA2B,GAEnF57C,WAAWjkB,GAASw/D,EAAaC,EAAQ,KAEpD,eAAe7pC,EAAQ4pC,GAEnB,IADA,IAAIpvE,EAAS,EACJ1B,EAAI,EAAGA,EAAIknC,EAAO/oC,OAAQ6B,IAAK,CACpC,IAAIsR,EAAQ41B,EAAOlnC,GACfsR,GAASA,IAAU,KACnB5P,GAAUlC,KAAK0wE,oBAAoBlwE,EAAGknC,EAAQ4pC,IAGtD,OAAO55B,KAAKklB,KAAK16D,IAErB,mBACI,OAAOlC,KAAKixB,UAAUpC,WAAW+C,WAAW+B,IAAI,IAEpD,WAAWjD,GACP,IAAI+tC,EAAe,eAAE/tC,GACjBkhD,EAAuB5xE,KAAKw0B,gBAAgB23C,IAChD,QAAI,IAAWnsE,KAAKohE,YAAc3C,GAAgBA,EAAa7pC,GAAG,aAAe,eAAS6pC,GAAe,CACrG,IAAIoT,EAAgBpT,EAAa7sC,SAAS,IAAIvG,OAAOrrB,KAAK20B,4BACtDk9C,EAAclzE,QACdkzE,EAAcC,SAElB9xE,KAAKohE,aAAe,eAAU3C,GAC9B,IAAI3sD,EAAQ,eAAS2sD,GACrBA,EAAa/xC,SAASklD,GACtB5xE,KAAKqwE,UAAY,eAAS5R,KAAkB3sD,EAC5C2sD,EAAatvC,YAAYyiD,GACrBC,EAAclzE,QACdkzE,EAAcx7C,SAASooC,KAInC/mC,cAAe,IAAM,CAAC,SAAU,oBAChC,sBACI,IAAIrH,EAAIub,EAAIsW,EACZ,OAAO,eAAK,QAAU7xB,EAAKrwB,KAAKyqE,0BAAuB,IAAWp6C,OAAK,EAASA,EAAG8Y,oBAAmB,GAAO,QAAUyC,EAAK5rC,KAAK0qE,iBAAc,IAAW9+B,OAAK,EAASA,EAAGzC,oBAAmB,GAAO,QAAU+Y,EAAKliD,KAAKyuE,mBAAgB,IAAWvsB,OAAK,EAASA,EAAG/Y,oBAAmB,KAE5R,SACI,IAAInpC,KAAKixB,UAAUqE,eAAnB,CAGA,IAAIo/B,EAAI,IAAI,OAIZ,OAHA10D,KAAKwtE,sBAAsBh3C,KAAK,KAC5B,eAAKx2B,KAAK+xE,oBAAoBv7C,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAE7xB,UACtDoG,KAAKyrB,EAAE7xB,QACH6xB,EAAEzxB,YAEb,iBAAiB+uC,GACb,IAAIn/C,EAAO7yB,KAEX,GADA6yB,EAAKo/C,0BACAp/C,EAAKu6C,WAAW4E,GAArB,CAGA,IAAIE,EAAar/C,EAAKs/C,gBAClBjwE,EAAS2wB,EAAKs/C,gBAAkB,IAAI,OAgBxC,OAfA,eAAKD,GAAYhvC,OAAO,KACpB,eAAY,KACJrQ,EAAKmV,gBAAgB8H,YACrBjd,EAAKu/C,sBAETv/C,EAAKw/C,2BACL,eAAY,KACR,eAAY,KACR,eAAY,KACRx/C,EAAKy/C,gCAIlB97C,KAAKt0B,EAAOg7B,SAAS+L,KAAK/mC,EAAO2gC,UAEjC3gC,EAAO+gC,YAElB,2BACI,IAAIsvC,EAAevyE,KAAKwyE,mBACpB/S,EAAaz/D,KAAK0qE,UAAUzK,iBAC5BsS,IAAgBA,EAAaj2C,MAAMrvB,QAAYwyD,GAAeA,EAAWgT,cACzEF,EAAaj2C,MAAMrvB,OAAS,KAGpC,WAAW+kE,GACP,IAAIvT,EAAez+D,KAAKixB,UAAUpC,WAC9B6jD,EAAkBjU,EAAa7pC,GAAG,YAClC+9C,EAAoB3yE,KAAK4yE,aAAe,eAASnU,IAAiBz+D,KAAK6yE,cAAgB,eAAUpU,IAAiBz+D,KAAK8yE,oBAAsB,iBAAYxN,iBAC7J,OAAOoN,KAAqBV,GAAaW,IAE7C,0BACI,IAAI9/C,EAAO7yB,KACP+yE,EAAkBlgD,EAAK63C,UAAU7E,oBACjCmN,EAAkBngD,EAAK63C,UAAU7E,mBAAkB,GACvD,eAAY,KACRhzC,EAAK43C,oBAAsB53C,EAAK43C,mBAAmBwI,mBAAmBF,GACtElgD,EAAK47C,aAAe57C,EAAK47C,YAAYwE,mBAAmBF,GACxDlgD,EAAK63C,UAAUuI,mBAAmBF,EAAiBC,MAG3D,sBACI,IAAIvT,EAAaz/D,KAAK0qE,UAAUzK,gBAC5BqB,GAAoB,IAASthE,KAAK8uB,OAAO,wBACxC2wC,GAAc6B,EACf,eAAY,KACR,eAAY,KACRthE,KAAKkzE,8BAIblzE,KAAKkzE,2BAGb,wBACI,IAAIrgD,EAAO7yB,KACP+lD,EAAiBlzB,EAAKmV,gBACtBmrC,EAAgBtgD,EAAK7C,cAAc,iBACnCtE,EAAWmH,EAAK63C,UAChBjM,EAAe5rC,EAAK5B,UAAUpC,WAC9B0jD,EAAevyE,KAAKwyE,mBACpBY,EAAoB,eAAU3U,GAC9BxxD,EAAS4lB,EAAK/D,OAAO,WAAa2vC,EAAa9qC,IAAI,GAAG2I,MAAMrvB,OAC5DomE,IAAsBpmE,GAAU,SAAWA,EAC3CmR,EAAY0gC,SAAS2f,EAAahtC,IAAI,cACtC6hD,EAAoBl1D,GAAag1D,GAAqBh1D,EACtDm1D,EAAqBhB,GAAgBA,EAAaiB,eAAiBjB,EAAat8C,aACpFpD,EAAK4gD,WAAWhV,GAChB,eAAY,KACR,IAAIsJ,EAAYl1C,EAAKuuC,cAAgBhjD,GAAai1D,EAClD3nD,EAASq8C,UAAUA,GACfuL,IAAsBC,GACtB,eAAEhB,GAAc9gD,IAAI,SAAUrT,GAE7B2nC,EAAejW,WAIpB,eAAY,KACRjd,EAAK6gD,iBAAiBjV,GACtB5rC,EAAK46C,sBACL,eAAK,GAAY,CAACxrE,EAAO+pB,KACrB,IAAI09C,EAAO72C,EAAKgc,QAAQ7iB,GACpB09C,GACAA,EAAK6D,WAGb4F,GAAiBA,EAAc5F,WAZ/B7hD,EAASs7C,WAAWjhB,EAAeuF,gBAgB/C,iBAAiBmT,GACbz+D,KAAK4yE,WAAa,eAASnU,GAC3Bz+D,KAAK6yE,YAAc,eAAUpU,GAC7Bz+D,KAAK8yE,kBAAoB,iBAAYxN,kBAEzC,cAAct3C,GACV,OAAQA,EAAKra,MACT,IAAK,QACL,IAAK,SACD3T,KAAKixB,UAAU0iD,oBACf3zE,KAAKutE,SACT,IAAK,cAED,YADAv/C,EAAKC,SAAU,GAEnB,QACIjuB,KAAKk1B,SAASlH,KAG1B,OACIhuB,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,WAC7ChwB,KAAKyqE,mBAAqBzqE,KAAK6uC,QAAQ,qBACvC7uC,KAAKyuE,YAAczuE,KAAK6uC,QAAQ,cAChC7uC,KAAK0qE,UAAY1qE,KAAK6uC,QAAQ,cAGlC+kC,GAAqB,GAAQ9+C,eAAelC,QAAQo6C,IACpD6G,GAAiC,GAAQ/+C,eAAelC,QAAQ,CAChE,sBAAsBoG,EAAO0P,EAAK1c,GAC9B,IAAK,IAAI4U,EAAI,EAAGA,EAAI5H,EAAMr6B,OAAQiiC,IAC1B5H,EAAM4H,IAAM5H,EAAM4H,GAAGjtB,OAASqY,GAC9BgN,EAAM4H,GAAGmD,SAAS,CACd3gB,KAAMslB,EAAItlB,KACVG,IAAKmlB,EAAInlB,OAKzB,OAEI,IADA,IAAIyV,EAAQ,CAACh5B,KAAK6uC,QAAQ,qBAAsB7uC,KAAK6uC,QAAQ,cAAe7uC,KAAK6uC,QAAQ,aAChFruC,EAAI,EAAGA,EAAIw4B,EAAMr6B,OAAQ6B,IAAK,CACnC,IAAIkpE,EAAO1wC,EAAMx4B,GACbkpE,GACAA,EAAK7gC,cAAcnH,IAAI1hC,KAAK8zE,sBAAsB5/C,KAAKl0B,KAAMg5B,QAKzE+6C,GAAW,GAAQ/+C,KAAKpC,QAAQ,CAChC,iBACQ5yB,KAAKixB,UAAUqE,iBACft1B,KAAKixB,UAAUqE,gBAAiB,EAChCt1B,KAAKg0E,oBAAoBzG,WAGjC,OACIvtE,KAAKg0E,oBAAsBh0E,KAAKgwB,cAAc,YAC9ChwB,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,SAE9C,QAAQrc,GACJ,OAAO3T,KAAKixB,UAAU8D,OAAOphB,IAEjC,UACI,OAAO3T,KAAKi0E,eAEhB,cAAcjmD,GACN,eAAUhuB,KAAKi0E,gBAAkB,gBAAkBjmD,EAAKra,MACxD3T,KAAKi0E,cAAc39C,YAAYt2B,KAAKw0B,gBAAgB03C,MAAkBl+C,EAAKhwB,OAC3EgwB,EAAKC,SAAU,GAEfjuB,KAAKk1B,SAASlH,IAGtB,aAAa6jD,GACT,IAAIh/C,EAAO7yB,KACX,eAAK,GAAY,CAACiC,EAAO+pB,KACrB,IAAI09C,EAAO72C,EAAKgc,QAAQ7iB,GACpB09C,GACAA,EAAKn0C,OAAOs8C,MAIxBqC,kBAAmB,IAAM,QACzB,OAAOzV,GACH,IAAI0V,GAAiBn0E,KAAKi0E,cACtBpC,EAAgB7xE,KAAKi0E,eAAiB,eAAE,SAASvnD,SAAS1sB,KAAK20B,2BACnEk9C,EAAcnlD,SAAS0/C,IACvByF,EAAcv7C,YAAYt2B,KAAKw0B,gBAAgB03C,MAAkBlsE,KAAK8uB,OAAO,gBAC7E9uB,KAAKwxB,QAAQ,OAAQ,eAAgBitC,GACrCz+D,KAAKixB,UAAUO,QAAQ,OAAQxxB,KAAKk0E,oBAAqBrC,GACzD7xE,KAAKo0E,aAAe3V,GAAgBz+D,KAAKo0E,aACrCD,IACAn0E,KAAKi0E,cAAgBpC,EACrB,kBAAe7xE,KAAKgwB,cAAc,YAAYyjD,WAAWhV,GACzDoT,EAAcx7C,SAASooC,IAE3Bz+D,KAAKq0E,aAAaxC,IAEtB,SACI,IAAIpT,EAAez+D,KAAKo0E,aACpBvC,EAAgB7xE,KAAKi0E,cACrBvI,EAAqB1rE,KAAKgwB,cAAc,YACxCyuC,GAAgBoT,IAChBnG,EAAmB6B,SACfvtE,KAAKgoC,gBAAgB8H,YACrB9vC,KAAKg0E,oBAAoB/I,6BAK9BqJ,GAAiB,CACxBpnC,eAAgB,KAAM,CAClBj8B,aAAa,EACbX,aAAa,IAEjByoB,YAAa,CACTw7C,SAAUX,GACVY,qBAAsBX,IAE1B76C,MAAO,CACHy7C,SAAUV,IAEd3K,WAAY,ICnrBhB,GAASh3B,eAAe,WAAYkiC,I,iBCahCI,GAAqB,eACrBC,GAAuB,iBACvBC,GAAqB,eACrBC,GAA6B,CAAC,eAAgB,oBAAqB,sBAAuB,eAAgB,aAAc,eAAgB,aAAc,eAC1J,MAAM,WAAoB,GACtB,mBACI,MAAO,GAEX,sBACI,OAAO,eAAE,SAASnoD,SAAS1sB,KAAKw0B,gBAAgBmgD,KAEpD,uBAAuBG,GACnB,IAAIC,EAAcD,EAAgB,IAAIzpD,OAAOypD,GAAiB,GAC9D,OAAO90E,KAAKw0B,gBAAgBmgD,IAAwBI,EAExD,qBACI,IAAIC,EAAqBh1E,KAAK8uB,OAAO,WACjCnJ,EAAU,CACVsvD,eAAgB,CACZzzD,MAAOxhB,KAAKk1E,mBACZrjE,QAAS,OAASmjE,QAAsB,IAAWA,OAAqB,EAASA,EAAmBnjE,QACpG5F,SAAU,OAAS+oE,QAAsB,IAAWA,OAAqB,EAASA,EAAmB/oE,SACrG,eAAegjB,GACX,IAAIkmD,EAAuBlmD,EAAE8iB,SAASqjC,eAClCD,GACAA,EAAqBlmD,MAKjComD,EAAY,OAASL,QAAsB,IAAWA,OAAqB,EAASA,EAAmBxzD,MAG3G,GAFAmE,EAAQsvD,eAAezzD,MAAQxhB,KAAKs1E,uBAAuB3vD,EAAQsvD,eAAezzD,MAAO6zD,GACzFr1E,KAAK+tB,cAAc,qBAAsBpI,GACrCA,EAAQsvD,iBAAmB,eAAUtvD,EAAQsvD,eAAepjE,SAAU,CACtE,IAAIyN,EAAeqG,EAAQsvD,eAAezzD,MAC1CmE,EAAQsvD,eAAepjE,WAAa,OAASyN,QAAgB,IAAWA,OAAe,EAASA,EAAa3gB,QAEjH,OAAOgnB,EAAQsvD,eAEnB,uBAAuBM,EAAcF,GACjCE,EAAar+C,QAAQ3f,IACjB,IAAKs9D,GAA2BrmC,SAASj3B,EAAO5D,MAC5C,MAAM,IAAIkkB,MAAM,yBAAyBxM,OAAO9T,EAAO5D,KAAM,mDAGrE,IAAI6hE,EAAe,CACf/vD,SAAU,SAEV/mB,EAAUD,MAAMC,QAAQ22E,GAC5B,IAAK,eAAUA,GACX,OAAOE,EAEN72E,IACD22E,EAAY,CAACA,IAEjB,IAAII,EAAwB,GAC5BF,EAAar+C,QAAQ3f,IACjBk+D,EAAsBl+D,EAAO5D,MAAQ4D,IAEzC,IAAIm+D,EAAkBL,EAAUx2E,IAAI0Y,IAC5B,eAASA,KACTA,EAAS,CACL5D,KAAM4D,IAGV,eAAUA,EAAO5D,QACb,eAAU8hE,EAAsBl+D,EAAO5D,OACvC4D,EAAS,OAAA4V,EAAA,OAAO,EAAM,GAAIsoD,EAAsBl+D,EAAO5D,MAAO4D,GACvDs9D,GAA2BrmC,SAASj3B,EAAO5D,QAClD4D,EAAS,eAAS,eAAS,GAAIA,GAAS,CACpC1F,SAAS,MAId,OAAAsb,EAAA,OAAO,EAAM,GAAIqoD,EAAcj+D,KAE1C,OAAO7Y,EAAUg3E,EAAkBA,EAAgB,GAEvD,cACI,GAAK11E,KAAK21E,SAON31E,KAAK21E,SAAS7mD,OAAO9uB,KAAK41E,qBAPV,CAChB,IAAIC,EAAe71E,KAAKitB,UACxB4oD,EAAanpD,SAAS1sB,KAAKw0B,gBAAgBkgD,KAC3C,IAAIvxD,EAAQ,OAAoBplB,OAAOiC,KAAKixB,UAAUqD,KAAOsgD,IACzDkB,EAAW,eAAE,SAAShpD,KAAK,aAAc3J,GAAOkT,SAASw/C,GAC7D71E,KAAK21E,SAAW31E,KAAK8zB,iBAAiBgiD,EAAU,QAAS91E,KAAK41E,kBAKtE,wBACA,qBACQ51E,KAAKo1B,eACLp1B,KAAKu1B,SAGb,yBAAyB5hB,GACrB,IAAI0c,EACAglD,EAAY,QAAUhlD,EAAKrwB,KAAK8uB,OAAO,kBAAe,IAAWuB,OAAK,EAASA,EAAG7O,MAClFu0D,EAAW,OAASV,QAAa,IAAWA,OAAY,EAASA,EAAU9nD,KAAKxC,IAAS,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAKpX,QAAUA,GACxJ,OAAO,eAAU,OAASoiE,QAAY,IAAWA,OAAW,EAASA,EAAS9pE,UAElF,OACI47B,MAAMqX,OACNl/C,KAAKkwB,aAAa,qBAAsB,CACpCgY,kBAAmB,CAAC,WAAY,cAGxC,SACIloC,KAAK41E,gBAAkB51E,KAAKg2E,qBAC5BnuC,MAAMtS,OAAOhxB,MAAMvE,KAAMwE,WAE7B,uBAAuBmP,EAAM1H,GACzB,IAAIokB,EACA1e,EAAU3R,KAAK21E,SACfM,EAAkBj2E,KAAKk2E,yBAAyBviE,GACpD,GAAKhC,IAAWskE,EAAhB,CAGA,IAAIz0D,EAAQ,QAAU6O,EAAK1e,EAAQmd,OAAO,gBAAa,IAAWuB,EAAKA,EAAK,GACxEm4C,EAAYhnD,EAAMukB,UAAUhb,GAAQA,EAAKpX,OAASA,GACtD,KAAI60D,EAAY,GAAhB,CAGA,IAAIz9C,EAAOpZ,EAAQmd,OAAO,SAASzD,OAAOm9C,EAAW,MACrD72D,EAAQmd,OAAO,SAASzD,OAAOm9C,EAAW,cAAev8D,GACrD8e,EAAKpF,SACLhU,EAAQmd,OAAO,SAASzD,OAAOm9C,EAAW,sBAAuBv8D,KAGzE,0BACI,IAAIokB,EACJ,QAAUA,EAAKrwB,KAAK21E,gBAAa,IAAWtlD,GAAcA,EAAG0hD,mBAEjE,iBACI,OAAO/xE,KAAKitB,UAEhB,YACI,OAAOjtB,KAAK0xC,mBAEhB,cAAc1jB,GAKV,GAJI,uBAAyBA,EAAKra,OAC9B3T,KAAK+nC,cACL/Z,EAAKC,SAAU,GAEf,YAAcD,EAAKra,OACnBqa,EAAKC,SAAU,EACXjuB,KAAK21E,UAAU,CACf,IAAIQ,EAAQ,gBAAanoD,EAAKixB,UAC1BvsC,EAAasb,EAAKixB,SAASJ,QAAQ,aAAc,IACrD,GAAI,IAAMs3B,EAAMx3E,OAAQ,CACpB,IAAIs2E,EAAiBj1E,KAAKg2E,qBAC1Bh2E,KAAK21E,SAAS7mD,OAAOmmD,QAClB,GAAI,UAAYkB,EAAM,GACzB,GAAI,IAAMA,EAAMx3E,OAAQ,CACpB,IAAIi3E,EAAkB51E,KAAKg2E,qBAC3Bh2E,KAAK21E,SAAS7mD,OAAO,QAAS8mD,EAAgBp0D,YAC3C,GAAI,IAAM20D,EAAMx3E,OAAQ,CAC3B,IAAIy3E,EAAiBp2E,KAAKs1E,uBAAuBt1E,KAAKk1E,mBAAoBlnD,EAAKhwB,OAC/EgC,KAAK21E,SAAS7mD,OAAOpc,EAAY0jE,QAC1BD,EAAMx3E,QAAU,GACvBqB,KAAK21E,SAAS7mD,OAAOpc,EAAYsb,EAAKhwB,YAG1CgC,KAAK21E,SAAS7mD,OAAOpc,EAAYsb,EAAKhwB,OAIlD6pC,MAAMC,cAAc9Z,GAExB,YACI,SAAUhuB,KAAK41E,kBAAmB51E,KAAK41E,gBAAgB/jE,SAE3D,iBACA,sBAEG,IAAIwkE,GAAoB,CAC3BnpC,eAAgB,KAAM,IACtBlU,MAAO,CACH8lC,YAAa,IAEjBxlC,UAAW,CACPP,YAAa,CACTw7C,SAAU,CACN,wBACIv0E,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAK6uC,QAAQ,eAAeynC,+BCtMvBD,GAAkBr9C,MAAM8lC,YACjD,GAAS1sB,eAAe,cAAeikC,I,wDC8BnCE,GAAwB,UACxBC,GAAuC,0JAC3C,GAASC,qBAAqB,CAAC,eAAgB,UAAW,YAAa,gBAAiB,gBAAiB,WAAY,UAAW,kBAAmB,mBAAoB,mBAAoB,eAAgB,aAAc,aAAc,OAAQ,mBAAoB,gBAAiB,YAAa,cAAe,eAAgB,UAAW,SAAU,OAAQ,QAAS,4BAA6B,cAAe,qBAAsB,gBAAiB,UAAW,eAAgB,SAAU,aAC9d,IAAIC,GAAW,QAAO9jD,QAAQ,CAC1B+jD,iBAAkBJ,GAClB,qBACI,IAAIr0E,EAASlC,KAAKk1B,WAMlB,OALA,eAAK,GAAS8C,SAAS,WACf,eAAWh4B,KAAKktC,iBAChB,OAAA/f,EAAA,OAAO,EAAMjrB,EAAQlC,KAAKktC,qBAG3BhrC,GAEX,wBACIlC,KAAKk1B,WACL,OAAA/H,EAAA,MAAOntB,KAAK42E,mBAAoB,CAC5Bl5C,YAAa,CACTm5C,MAAO,OACPC,MAAO,8BAEXpmE,YAAa,CACTmmE,MAAO,OACP3jE,QAAS,4CAEb,4BAA6B,CACzB2jE,MAAO,OACP3jE,QAAS,yDAEb,8BAA+B,CAC3B2jE,MAAO,OACP3jE,QAAS,4DAIrB,uBACI,OAAOlT,KAAKk1B,WAAW7J,OAAO,CAAC,CAC3B0rD,OAAQ,CACJC,SAAU,OAEdrxD,QAAS,CACLvU,cAAc,IAEnB,CACC2lE,OAAQ,IAAM,kBACdpxD,QAAS,CACLvU,cAAc,EACdD,iBAAiB,EACjB9O,aAAc,CACV4K,OAAQ,KAEZf,QAAS,CACLoP,UAAU,GAEdvK,UAAW,CACPyJ,mBAAoB,YAG7B,CACCu8D,OAAQ,IAAMt4C,EAAA,KAAQ+nC,OACtB7gD,QAAS,CACLowC,eAAgB,GAChBxoD,UAAW,CACPgQ,UAAW,CACPxK,KAAM,CACFmS,OAAQ,2BACRD,SAAU,IACVE,KAAM,CACF9B,QAAS,GAEbiC,GAAI,CACAjC,QAAS,QAM9B,CACC0zD,OAAQA,GAAU,YAAcA,EAAOE,WACvCtxD,QAAS,CACL5Y,SAAU,CACN4W,WAAY,iBAK5B,QACI3jB,KAAKk1B,WACL,QAAcgiD,uCAAuCl3E,MACrD,GAAS83B,eAAe93B,KAAM,IAC9B,GAAS45B,sBAAsB55B,KAAM,SAEzCm3E,OAAQ,OACR,eAAenpD,GACX,GAAS4L,sBAAsB55B,KAAM,gBAAiB,CAACguB,IAClDA,EAAKC,SACNjuB,KAAKk1B,SAASlH,IAGtB,oBACIhuB,KAAK+xE,kBAAiB,IAE1B,mBAAmBlgE,GACXA,GACA7R,KAAK+xE,oBAGb,cACI/xE,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAK6uC,QAAQ,YAAYtZ,OAAOv1B,KAAK6uB,aAEzC,qBACI7uB,KAAK6uC,QAAQ,YAAYxH,UAE7B,iBACI,IAAIxU,EAAO7yB,KACX,eAAY,KACR6yB,EAAKukD,wBAGb,aAAaC,GACT,IAAIxjE,EAAWwjE,EAKf,OAJI,eAASxjE,IAAaA,EAASuM,WAAW,OAC1CvM,EAAW,eAAEwjE,GACb,QAAOC,KAAKd,KAETx2E,KAAKk1B,SAASrhB,IAEzB,WACI7T,KAAKk1B,WACL,GAAS0E,sBAAsB55B,KAAM,YAEzC,UACI,OAAOA,KAAKgwB,cAAc,QAAQiF,WAEtC,cACIj1B,KAAKk1B,WACL,GAAS0E,sBAAsB55B,KAAM,gBAEzC,YACI,GAAS45B,sBAAsB55B,KAAM,aACrCA,KAAKk1B,YAET,cAAcvhB,GACV,OAAO3T,KAAK+zB,aAAapgB,IAE7B,QAAQA,GACJ,OAAO3T,KAAK+0B,OAAOphB,IAEvB,MAAMsZ,GACFjtB,KAAKgwB,cAAc,sBAAsBrB,MAAM1B,MAGvDypD,GAAStkC,eAAiB,GAASA,eAAele,KAAK,IACvD,gBAAkB,aAAcwiD,IACjB,U,aCvKXa,GAAa,+DACb,GAAa,SAASC,EAAWrwB,GAC5BA,GAGL,eAAKA,EAAO,CAAC4G,EAAK/vD,KACd,GAAI,eAAcA,IAAUS,MAAMC,QAAQV,GACtCw5E,EAAWx5E,QACR,GAAI,kBAAoBA,EAAO,CAClC,IAAIY,EAAO24E,GAAWE,KAAKz5E,GACvBY,IACAuoD,EAAM4G,GAAO,IAAI3qD,KAAKA,KAAKs0E,KAAK94E,EAAK,IAAKA,EAAK,GAAK,GAAIA,EAAK,IAAKA,EAAK,IAAKA,EAAK,IAAKA,EAAK,UAKvG+4E,GAAyB,GAAQ7iD,eAAelC,QAAQ,WACxD,IAAIglD,EAAa,SAASjyD,GACtB,IAAIkyD,EAAU,mBAAqBlyD,EAAQvnB,KAAO,kBAAmB,iBAAY05E,aACjF,IAAKD,EACD,MAAM,IAAIhgD,MAAM,SAEpB,OAAOggD,GAEPE,EAAsB,SAASpyD,GAC/B,OAAO,eAAUA,EAAQsE,YAActE,EAAQsE,WAAa,WAEhE,MAAO,CACH,aACI,IAAItE,EAAU3lB,KAAK8uB,OAAO,gBAC1B,GAAI,WAAanJ,EAAQvnB,KACrB,OAAOunB,EAAQmE,YAAcnE,EAAQmE,aAEzC,IACI,OAAOod,KAAK8W,MAAM45B,EAAWjyD,GAASqyD,QAAQD,EAAoBpyD,KACpE,MAAOsJ,GACL,QAAOw4B,IAAI,QAAS,gBAAiBx4B,EAAE/b,WAG/C,WAAWi0C,GACP,IAAIxhC,EAAU3lB,KAAK8uB,OAAO,gBAC1B,GAAI,WAAanJ,EAAQvnB,KAIzB,IACIw5E,EAAWjyD,GAASsyD,QAAQF,EAAoBpyD,GAAUuhB,KAAKC,UAAUggB,IAC3E,MAAOl4B,GACL,QAAOw4B,IAAIx4B,EAAE/b,cANbyS,EAAQoE,YAAcpE,EAAQoE,WAAWo9B,IASjDzvB,cAAe,IAAM,CAAC,SACtB,YACI,OAAO13B,KAAK8uB,OAAO,yBAEvB,OACI,IAAI+D,EAAO7yB,KAUX,OATA6yB,EAAKqlD,OAAS,GACdrlD,EAAKslD,WAAY,EACjBtlD,EAAKw3B,YAAa,EAClBx3B,EAAKulD,qBAAuB,gBACpB,IAAWvlD,EAAKwlD,kBAChBxlD,EAAKylD,WAAWzlD,EAAKs0B,UAG7B,OAAa74B,GAAG,iBAAa,SAAUuE,EAAKulD,sBACrCvlD,GAEX,WACI,OAAO7yB,KAAKm4E,WAEhB,YACI,OAAOn4E,KAAKqqD,YAEhB,OACIrqD,KAAKqqD,YAAa,EAClB,IAAIyS,EAAa,eAAY98D,KAAKu4E,cASlC,OARAzb,EAAW55B,OAAO,KACdljC,KAAKm4E,WAAY,EACjBn4E,KAAKqqD,YAAa,IACnB7zB,KAAK2wB,IACA,OAASA,GAAU,eAAcA,IACjCnnD,KAAKmnD,MAAMA,KAGZ2V,GAEX,MAAM3V,GACF,IAAK3iD,UAAU7F,OACX,OAAO,OAAAwuB,EAAA,OAAO,EAAM,GAAIntB,KAAKk4E,QAEjCl4E,KAAKk4E,OAAS,OAAA/qD,EAAA,MAAO,GAAIg6B,GACzB,GAAWnnD,KAAKk4E,SAEpB,OACI,IAAIrlD,EAAO7yB,KACXy7B,aAAa5I,EAAKwlD,kBAClBxlD,EAAKwlD,iBAAmB78C,WAAW,KAC/B3I,EAAKylD,WAAWzlD,EAAKs0B,SACrBt0B,EAAKwlD,sBAAmB,GACzBxlD,EAAK/D,OAAO,gCAEnB,cAAcd,GACV,OAAQA,EAAKra,MACT,IAAK,eACG3T,KAAKw4E,cAAgBx4E,KAAKsrD,aAC1BtrD,KAAKioD,OAETj6B,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,KAG1B,UACIyN,aAAaz7B,KAAKq4E,kBAClB,OAAa7pD,IAAI,iBAAa,SAAUxuB,KAAKo4E,wBApGG,IAwG7C,IACXT,uBAAwBA,IClIxBc,GAAe5lD,IACf,IAAI6lD,EAAY7lD,EAAKgc,QAAQ,aACzBkX,EAAiBlzB,EAAK7C,cAAc,QACpCm3B,EAAQ,CACR9gC,iBAAkBqyD,EAAYA,EAAUC,oBAAiB,EACzDnsE,YAAa,CACT6T,cAAewS,EAAK/D,OAAO,8BAE/B9rB,YAAa6vB,EAAK/D,OAAO,eACzBhiB,cAAe+lB,EAAK/D,OAAO,qBAAuB+D,EAAK/D,OAAO,sBAAmB,GAErF,OAAO,OAAA3B,EAAA,MAAOg6B,EAAOpB,EAAehG,iBAEpC64B,GAAmB/lD,IACnB,IAAI7B,EAAoB6B,EAAK7C,cAAc,WACvC6oD,EAAsBhmD,EAAK7C,cAAc,aACzC8oD,EAAmBjmD,EAAK7C,cAAc,UACtC+1B,EAAiBlzB,EAAK7C,cAAc,QACpCgB,GACAA,EAAkBsX,eAAe5G,IAAI,KACjC7O,EAAKkmD,YAAY,CACbrtE,QAASslB,EAAkB+uB,mBAInC84B,GACAA,EAAoBG,iBAAiBt3C,IAAIzS,IACrC4D,EAAKkmD,YAAY,CACbjoE,gBAAiBme,EAAEne,gBACnBE,gBAAiBie,EAAEje,oBAI3B+0C,IACAlzB,EAAKomD,iBAAmBpmD,EAAK/D,OAAO,mBACpC+D,EAAKqmD,oBAAsBrmD,EAAK/D,OAAO,eACvCi3B,EAAevd,QAAQ9G,IAAI,KACvB,IAAIylB,EAAQsxB,GAAa5lD,GACzBA,EAAKkmD,YAAY5xB,MAGrB2xB,GACAA,EAAiBK,qBAAqBz3C,IAAI,KACtC7O,EAAKkmD,YAAY,CACbK,oBAAqBN,EAAiBO,qBAKlDC,GAAuB,KACvB,GAAiB,CAACzmD,EAAMs0B,KACxB,IAAIoyB,EAAuB1mD,EAAK7C,cAAc,cAC1CgB,EAAoB6B,EAAK7C,cAAc,WACvCwpD,EAAiBryB,EAAMz7C,cAAW,IAAWy7C,EAAMnkD,YACvD,OAAIu2E,EACIC,EACOryB,EAAMnkD,aAAeu2E,EAAqBE,0BAA0BtyB,EAAMz7C,SAE9EmnB,EAAKqmD,qBAAuBK,EAAqBE,0BAA0BzoD,EAAkBiB,cAEjGqnD,IAEAI,GAAqB,CAC5BxsC,eAAgB,KAAM,CAClB37B,aAAc,CACV6G,SAAS,EACT6R,WAAY,KACZ7rB,KAAM,eACN0rB,WAAY,KACZC,WAAY,KACZC,cAAe,OAGvB+O,YAAa,CACTxnB,aAAc,GAAiBomE,wBAEnCr+C,UAAW,CACPN,MAAO,CACHtN,SAAU,CACN,OACI,IAAImH,EAAO7yB,KACP+lD,EAAiBlzB,EAAK7C,cAAc,QACxC6C,EAAKqC,WACL6wB,EAAe4zB,YAAYj4C,IAAI,KAC3B,GAAIqkB,EAAejW,aAAeiW,EAAesP,gBAAiB,CAC9DxiC,EAAKm0C,YAAW,GAChBn0C,EAAK0yC,mBACL,IAAIp4B,EAAoBta,EAAK5B,UAAU4d,QAAQ,qBAC/C1B,GAAqBA,EAAkB5X,SACvC1C,EAAK5B,UAAUy8C,gCAMnC30C,YAAa,CACTxnB,aAAc,CACV,OACIvR,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1Bo0E,GAAiB54E,OAErB,YACI,OAAOA,KAAKk1B,YAAcl1B,KAAKgwB,cAAc,QAAQ4pD,kBAEzD,MAAMzyB,GACF,IAAIjlD,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIvC,YAHI,IAAW2iD,GACXnnD,KAAK65E,WAAW,OAAA1sD,EAAA,OAAO,EAAM,GAAIg6B,IAE9BjlD,GAEX,YAAYilD,GACR,GAAInnD,KAAKw4E,YAAa,CAClB,IAAIsB,EAAW95E,KAAKmnD,QAChB4yB,EAAW,OAAA5sD,EAAA,MAAO,GAAI2sD,EAAU3yB,GAChC6yB,EAAe,eAAWF,GAC1BG,EAAe,eAAWF,GACzB,eAAaC,EAAcC,KAC5B9yB,EAAQ,OAAAh6B,EAAA,OAAO,EAAM,GAAIg6B,GACzB,OAAAh6B,EAAA,MAAOntB,KAAKk4E,OAAQ/wB,GACpBnnD,KAAKk6E,aAGT,OAAA/sD,EAAA,MAAOntB,KAAKk4E,OAAQ/wB,IAG5B,WAAWA,GACP,IAAI92B,GAEAhK,iBAAkBA,GAClB8gC,GAEAsO,WAAYA,GACZtO,GAEAr2C,gBAAiBA,GACjBq2C,GAEAn2C,gBAAiBA,GACjBm2C,EACA2xB,EAAmB94E,KAAKgwB,cAAc,UACtCgB,EAAoBhxB,KAAKgwB,cAAc,WACvC+1B,EAAiB/lD,KAAKgwB,cAAc,QACpCy9B,EAAgBztD,KAAK8uB,OAAO,kBAC5BqrD,EAAyB,YAAc1sB,GAAiB,aAAeA,EACvE/mC,GAAuB,IAAS1mB,KAAK8uB,OAAO,kBAAoB9uB,KAAK8uB,OAAO,8BAC5Ei5C,EAAY,QAAU13C,EAAKrwB,KAAK6uC,QAAQ,mBAAgB,IAAWxe,OAAK,EAASA,EAAG03C,YACxF/nE,KAAKixB,UAAU61B,cACX91B,GACAA,EAAkBopD,aAAajzB,EAAMz7C,SAErCotE,GACAA,EAAiBO,cAAclyB,EAAMiyB,qBAEpCp5E,KAAK8uB,OAAO,uBACb9uB,KAAK8uB,OAAO,kBAAmBhe,GAAmB,IAEtD9Q,KAAK8uB,OAAO,kBAAmB9d,GAC3BqV,GAAoB,SAAWrmB,KAAK8uB,OAAO,4BAC3C9uB,KAAK8uB,OAAO,SAASzI,iBAAmBA,GAExCrmB,KAAK8uB,OAAO,uBACZ9uB,KAAK8uB,OAAO,mBAAoB,GAChC9uB,KAAK8uB,OAAO,gBAAiBq4B,EAAMr6C,eAAiB,OAExD9M,KAAKixB,UAAU81B,YACf/mD,KAAK8uB,OAAO,mBAAoB2mC,GAAc,IAC9Cz1D,KAAK8uB,OAAO,cAAe,GAAe9uB,KAAMmnD,IAChDnnD,KAAK8uB,OAAO,6BAA6Bq4B,EAAM36C,aAAc26C,EAAM36C,YAAY6T,eAC/ErgB,KAAK8uB,OAAO,qBAAsBqrD,GAA0BpS,IAAc5gB,EAAMxgC,WAAa,GAC7F3mB,KAAK8uB,OAAO,kBAAqBqrD,IAA0BzzD,IAAyB,eAAUygC,EAAMvgC,UAA6B5mB,KAAKi5E,iBAAtB9xB,EAAMvgC,UACtHm/B,GAAkBA,EAAe8E,UAGzCn/C,QAAS,CACL,8BACI,IAAIxJ,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnC61E,EAAyBr6E,KAAKgwB,cAAc,gBAChD,OAAO9tB,KAAYm4E,EAAuB7B,aAAe6B,EAAuBvqC,cAGxF/7B,KAAM,CACF,gBACI,OAAO/T,KAAKk1B,WAAW7J,OAAO,CAAC,iBAEnC,qBACI,IACI6J,SAAUA,GACVl1B,KACAq6E,EAAyBr6E,KAAKgwB,cAAc,gBAChD,GAAIqqD,EAAuB7B,cAAgB6B,EAAuBvqC,WAAY,CAC1ErU,aAAaz7B,KAAKs6E,wBAClB,IAAIhgE,EAAW,IAAI,OAcnB,OAbAta,KAAKs6E,uBAAyB9+C,WAAW,KACrC6+C,EAAuBpyB,OAAO/kB,OAAO,KACjCljC,KAAKs6E,uBAAyB,OAC/B9jD,KAAK,KACJtB,EAASiE,KAAKn5B,MACdA,KAAK25E,YAAYljD,OACjBnc,EAAS4iB,YACV+L,KAAKyhB,IACJ1qD,KAAK25E,YAAYljD,OACjBz2B,KAAK8pD,iBAAiBY,GAAS,iBAC/BpwC,EAASuoB,aAGVvoB,EAAS2oB,UAEfjjC,KAAK45E,kBACN1kD,EAASiE,KAAKn5B,OAGtB,YACI,IAAIq6E,EAAyBr6E,KAAKgwB,cAAc,gBAChD,OAAOhwB,KAAKk1B,YAAcmlD,EAAuB/uB,aAErD,iBACI,OAAO,eAAUtrD,KAAKs6E,yBAE1B,WACI,OAAOt6E,KAAKk1B,aAAel1B,KAAK45E,kBAEpC,UACIn+C,aAAaz7B,KAAKs6E,wBAClBt6E,KAAKk1B,aAGbnkB,UAAW,CACP,sBAAsB4U,GAClB,IAAI00D,EAAyBr6E,KAAKgwB,cAAc,gBAC5CuqD,EAAsBv6E,KAAK8uB,OAAO,sBAClCurD,EAAuB/uB,aAAeivB,GAG1Cv6E,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,gBCpP9C,GAAS4tC,eAAe,eAAgBsnC,I,8BCgCpCc,GAAoB,iBACpB,GAAY,SACZC,GAAsB,eACtBC,GAAwB,qBACxBC,GAA0B,8BAC1BC,GAAuB,oBACvBC,GAA2B,wBAC3B,GAAiB,cACjBC,GAAuB,+BACvBC,GAAiB,iBACjBC,GAAiB,SAASnoD,EAAMy2C,GAChC,IAAIuP,EAAsBhmD,EAAK7C,cAAc,aACzCtE,EAAWmH,EAAKgc,QAAQ,YACxB/P,EAAO,eAAEwqC,EAAQ5mE,QAAQgyB,QAAQ,IAAIrJ,OAAO,KAC5CwQ,EAAWnQ,EAASoQ,YAAYgD,GAChCjD,EAAW,IAGX,cAAgBhJ,EAAK/D,OAAOgsD,IACxBjC,EAAoBoC,4BACpBpC,EAAoBqC,8BAEpBrC,EAAoBsC,gCAGpB,YAActoD,EAAK/D,OAAOgsD,KAC1BjC,EAAoBsC,+BAEpB,WAAatoD,EAAK/D,OAAOgsD,KACzBjC,EAAoBuC,oBAAoBv/C,EAAU,CAC9Cw/C,SAAS,OAKrBC,GAAwB,SAASzoD,EAAM7hB,GACvC,IAAIuqE,EAAW,EACXxwB,EAAQl4B,EAAKmV,gBAAgB+iB,QAC7BgD,EAAMhD,GAASA,EAAMgD,MACrBytB,EAAe/8E,MAAMC,QAAQqvD,GACjC,IAAK/8C,EAAgBrS,OACjB,OAAO,EAEX,GAAI68E,GAAgB/8E,MAAMC,QAAQsS,EAAgB,KAAO,QAAUA,EAAgB,GAAI,CACnF,IAAK,IAAIxQ,EAAI,EAAGA,EAAIwQ,EAAgBrS,OAAQ6B,IACxC,GAAI/B,MAAMC,QAAQsS,EAAgBxQ,IAAK,CACnC,GAAIwQ,EAAgBxQ,GAAG,KAAOutD,EAAIwtB,IAAa,MAAQvqE,EAAgBxQ,GAAG,GACtE,OAAO,EAEX+6E,IAGR,OAAO,EAEX,OAAOxtB,IAAQ/8C,EAAgB,IAE/ByqE,GAAwB,CAACh+D,EAAWkI,KACpC,IACIsL,UAAWA,GACXtL,EACA+F,EAAWuF,EAAU4d,QAAQ,YAC7B5d,EAAUnC,OAAO,iBAAmBmC,EAAUnC,OAAO,wBACrDnJ,EAAQ3nB,MAAQizB,EAAUyqD,cAAc/1D,EAAQ0Y,IAAI0vB,MAExDriC,EAASiwD,8BAA8B,eAAEl+D,GAAYkI,IAErDi2D,GAA0B,CAACn+D,EAAWkI,KACtC,IACI3jB,OAAQA,GACR2jB,EACAwqB,EAAe,eAAE1yB,GACjB0vB,EAAoBxnB,EAAQsL,UAAU4d,QAAQ,qBAClDsB,EAAazjB,SAAS8tD,IACtBrtC,EAAkB0uC,yBAAyB1rC,EAAcnuC,GACzDmrC,EAAkB2uC,mCAAmC3rC,IAElD,MAAM,WAA4B,GAAQtb,WAC7C,OACI,IAAIxE,GAEA/V,SAAUA,EACVC,cAAeA,EACflC,KAAMA,GACN,QAAUgY,EAAKrwB,KAAK8uB,OAAO,oBAAiB,IAAWuB,EAAKA,EAAK,GACjE,aAAerwB,KAAK8uB,OAAO,mBAAsBxU,GAAY,aAAejC,GAAQ,aAAekC,GACnG,QAAOktC,IAAI,SAEfznD,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAK+7E,eAAiB1jE,EACtBrY,KAAKg8E,4BAA6B,EAClCh8E,KAAKi8E,WAAaj8E,KAAKk8E,mBACvBl8E,KAAKm8E,sBACLn8E,KAAKkwB,aAAa,qBAAsB,CACpCgY,kBAAmB,CAAC,WAAY,cAE/BloC,KAAKmqD,qBACNnqD,KAAKmqD,mBAAqBnqD,KAAKoqD,kBAAkBl2B,KAAKl0B,MACtDA,KAAKgoC,gBAAgBqlB,OAAO3rB,IAAI1hC,KAAKmqD,qBAG7C,kBAAkBvvC,GACd5a,KAAKo8E,uBAAuBxhE,GAC5B5a,KAAKq8E,sBAAsBzhE,GAE/B,uBAAuBA,GACnB,IAAI2/D,EAAsBv6E,KAAK8uB,OAAO,sBAClCwtD,EAAc1hE,EAAQtW,OAAOiX,GAAU,WAAaA,EAAOnd,MAAMS,IAAI0c,GAAUA,EAAOwyC,KAC1F,GAAIwsB,EAAqB,CACrB,IAAIgC,EAAev8E,KAAKgoC,gBAAgBxmB,QAAQld,OAAOymB,GAAQA,EAAKyxD,YAAY39E,IAAIksB,GAAQA,EAAKgjC,KACjGuuB,EAAcA,EAAYh4E,OAAOypD,GAAOwuB,EAAahvD,KAAKkvD,GAAe,eAAaA,EAAa1uB,KAEvGuuB,EAAY39E,QAAUqB,KAAK08E,aAAaJ,GAE5C,sBAAsB1hE,GAClB,IAAI2/D,EAAsBv6E,KAAK8uB,OAAO,sBACtC,IAAIyrD,EAAJ,CAGA,IAAIoC,EAAgB/hE,EAAQtW,OAAOiX,GAAU,WAAaA,EAAOnd,MAC7D2V,EAAO/T,KAAK48E,sBAChB,gBAAW,CACPhjB,QAAS55D,KAAKi8E,WAAWt2D,QACzB5R,KAAMA,EACN6G,QAAS+hE,KAGjB,sBACI,IAAItsD,EACA01B,EAAiB/lD,KAAKgoC,gBACtBhX,EAAoBhxB,KAAKgwB,cAAc,WACvC6sD,EAAmB,QAAUxsD,EAAKrwB,KAAK8uB,OAAO,oBAAiB,IAAWuB,EAAKA,EAAK,IAEpF/V,SAAUA,GACVuiE,EACApvB,EAAgBztD,KAAK8uB,OAAO,kBAC5BguD,EAAgB,YAAcrvB,GAAiB,aAAeA,EAC9D50C,EAAiB7Y,KAAK8uB,OAAO,4BAC7BiuD,EAAsB/8E,KAAK8uB,OAAO,wBACtC,MAAO,CACHytD,aAAcv8E,KAAK8uB,OAAO,mBAC1BzW,KAAMrY,KAAK+7E,eACXzhE,SAAUA,EACV0iE,yBAA0BH,EAAiBG,yBAC3ChsE,gBAAiBhR,KAAK8uB,OAAO,mBAC7BmuD,qBAAqB,EACrB,mBACI,IAAIC,EAAkBlsD,EAAkBsmB,kBAAkB34C,OAAS,EACnE,OAAOm+E,IAAkBC,IAAwBG,GAAmBrkE,IAAmByB,GAE3FyzC,IAAK,IAAM,OAAShI,QAAkB,IAAWA,OAAiB,EAASA,EAAegI,MAC1FY,MAAO5jC,GAAQ,OAASg7B,QAAkB,IAAWA,OAAiB,EAASA,EAAe4I,MAAM5jC,GACpG,aACI,IAAIsF,EACJ,OAAO,QAAUA,EAAK01B,EAAeh6C,oBAAiB,IAAWskB,OAAK,EAASA,EAAG8sD,UAEtF,KAAKx3D,GACD,IAAI0K,EACJ,OAAQ,QAAUA,EAAK01B,EAAeh6C,oBAAiB,IAAWskB,OAAK,EAASA,EAAG43B,KAAKtiC,MAAa,IAAK,QAAUuX,QAAQ,KAEhIkgD,WAAY,IAAMr3B,EAAevkC,OAAM,GACvC67D,eAAgBtyD,GAAQA,EAAKuyD,SAC7BC,iBAAkBxyD,GAAQ,UAAY,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAK6S,WAAa7S,EAAK61C,SACzG4c,YAAazyD,GAAQ,eAAU,OAASA,QAAQ,IAAWA,OAAO,EAASA,EAAK6S,UAAY,OAAS7S,QAAQ,IAAWA,OAAO,EAASA,EAAK0yD,WAAa,OAAS1yD,QAAQ,IAAWA,OAAO,EAASA,EAAKhX,MAAQgX,EACnNzmB,OAAQ,IAAMyhD,EAAeE,kBAAkB3rC,GAC/CiyC,WAAY,IAAMxG,EAAewG,aACjC,eAAemxB,EAAeC,EAAkBC,GAC5C,IAAIvtD,EAAIub,GAEJtT,KAAMA,EACNh0B,OAAQA,GACR,QAAUsnC,EAAK,QAAUvb,EAAK01B,EAAeh6C,oBAAiB,IAAWskB,OAAK,EAASA,EAAGq1B,yBAAsB,IAAW9Z,EAAKA,EAAK,GACrIiyC,EAAWnmC,KAAKnwB,IAAIm2D,EAAeC,GACnCG,EAAWpmC,KAAKpwB,IAAIo2D,EAAeC,GACnC,eAAUC,KACVC,EAAWnmC,KAAKnwB,IAAIq2D,EAAgBC,GACpCC,EAAWpmC,KAAKpwB,IAAIs2D,EAAgBE,IAExC,IAAIvnB,EAAOunB,EAAWD,EAAW,EACjC,MAAO,CACHvnB,KAAMunB,EACNtnB,KAAMA,EACNjyD,OAAQA,EACRg0B,KAAMA,IAGdroB,mBAAoBjQ,KAAK+9E,qBAAqB7pD,KAAKl0B,OAG3D,sBACI,IAAIgxB,EAAoBhxB,KAAKgwB,cAAc,WACvCguD,EAAwBh+E,KAAKg+E,wBACjChtD,EAAkBqqB,iBAAiB,CAC/Bj9C,KAAM,YACNo0B,QAAS,SACT3gB,QAASmsE,EACT3mE,cAAe,EACfvV,SAAU,UACVwS,UAAW,SACXb,SAAUmnE,GACV9oE,MAAO,OACP2D,aAAcgmE,GACdllE,mBAAoBqlE,KAExB5qD,EAAkBoa,aAAa,iBAAkB,UAAW4yC,GAEhE,mBACI,IAAIr4D,EAAU3lB,KAAKi+E,sBACnB,OAAO,IAAI,QAAUt4D,GAEzB,sBAAsBA,GAClB,IAAIu4D,EAAWl+E,KAAK8uB,OAAO,sBAAwB,CAC/C9d,gBAAiBhR,KAAK8uB,OAAO,oBAC7B,CACAhe,gBAAiB9Q,KAAK8uB,OAAO,oBAEjC9uB,KAAKg5E,iBAAiBviD,KAAKynD,GACvBv4D,GACA3lB,KAAK+tB,cAAc,qBAAsBpI,GAGjD,uBAAuBA,GACnB,IACIw4D,eAAgBA,GAChBx4D,GAEA3U,gBAAiBA,GACjB2U,GAEAy4D,iBAAkBA,GAClBz4D,GAEA04D,gBAAiBA,GACjB14D,EACA,YAAc3lB,KAAK8uB,OAAOgsD,OACtBqD,EAAiBntE,GAAmBsqE,GAAsBt7E,KAAMgR,GAAmBotE,EAAiBz/E,OAAS,GAC7GqB,KAAKm7E,gCACEgD,EAAiBntE,IAAoBA,EAAgBrS,OAAS,IAAMy/E,EAAiBz/E,QAAU0/E,EAAgB1/E,SACtHqB,KAAKk7E,+BAIjB,qBAAqBltD,GACjB,IAAIswD,EACAH,EAAiBn+E,KAAK8uB,OAAO,sBAC7B9d,EAAkBhR,KAAKi8E,WAAWjrE,kBAClC+0C,EAAiB/lD,KAAKgoC,gBACtBxmB,EAAQukC,EAAevkC,OAAM,GAC7B2sC,EAAepI,EAAevkC,QAClC,GAAKA,EAAL,CAGA,IAAIy5D,EAA4Bj7E,KAAKi7E,4BACjCsD,EAAqBv+E,KAAKw+E,sBAAsBh9D,GAChDi9D,EAA4Bz+E,KAAKw+E,sBAAsBrwB,GAC3DnuD,KAAK0+E,uBAAuB,CACxBN,iBAAkBpwD,EAAKowD,iBACvBC,gBAAiBrwD,EAAKqwD,gBACtBrtE,gBAAiBA,EACjBmtE,eAAgBA,KAEhBI,EAAmB5/E,QAAUs8E,IAA8Bj7E,KAAKi7E,8BAChEl1B,EAAemG,YAAY,CACvBjoB,WAAY,kBACZ06C,YAAaF,IAGjBN,GACAn+E,KAAK8uB,OAAO,kBAAmB9d,GAC/BstE,EAA0B,KACnBtwD,EAAK4wD,cAAcjgF,QAAUqvB,EAAKqwD,gBAAgB1/E,UACzDqB,KAAK6+E,8BAA+B,EACpC7+E,KAAK8uB,OAAO,kBAAmBd,EAAKowD,iBAAiB57E,MAAM,IAC3DxC,KAAK6+E,8BAA+B,EACpCP,EAA0B,CACtBQ,iBAAkB9wD,EAAK+wD,cAAcv8E,MAAM,GAC3CsO,gBAAiBkd,EAAKowD,iBAAiB57E,MAAM,GAC7Cw8E,uBAAwBhxD,EAAK4wD,cAAcp8E,MAAM,GACjDy8E,yBAA0BjxD,EAAKqwD,gBAAgB77E,MAAM,KAG7DxC,KAAKk/E,sBAAsBZ,IAE/B,sBAAsB98D,GAGlB,IAFA,IAAIm9D,EAAc,GACdpE,EAAsBv6E,KAAK8uB,OAAO,sBAC7BtuB,EAAI,GACL7B,OAAQA,GACR6iB,EAAOhhB,EAAI7B,EAAQ6B,IAAK,CAC5B,IAAI69B,EAAM7c,EAAMhhB,GACZ68E,EAAiBr9E,KAAK07E,cAAcnB,EAAsBl8C,EAAItqB,KAAOsqB,EAAI0vB,KACzE/tD,KAAKi8E,WAAWkD,WAAW9gD,IAAQA,EAAIm+C,aAAea,GACtDsB,EAAYl/E,KAAKe,GAGzB,OAAOm+E,EAEX,gBACI,MAAO,CAAC,oBAEZ,cAAc3wD,GAEV,OADA6Z,MAAMC,cAAc9Z,GACZA,EAAKra,MACT,IAAK,YACD,IAAIyrE,EAAmBp/E,KAAK+7E,eAE5B,GADA/7E,KAAKk/C,OACD,iCAAmClxB,EAAKixB,SAAU,CAClD,IAAIogC,EAAgBr/E,KAAK+7E,eACrBjrE,EAAkB9Q,KAAK8uB,OAAO,mBAC9BswD,IAAqBC,IACjB,WAAaA,EACTvuE,EAAgBnS,OAAS,IACzBmS,EAAkB,CAACA,EAAgB,KAEhC,aAAeuuE,IACtBvuE,EAAkB,KAG1B9Q,KAAKs/E,WAAWxuE,GAAiBoyB,OAAO,KACpCljC,KAAKk/E,0BAGbl/E,KAAKgwB,cAAc,WAAW0vB,gBAC9B1xB,EAAKC,SAAU,EACf,MACJ,IAAK,kBACDjuB,KAAKi8E,WAAWjrE,gBAAgBgd,EAAKhwB,OACrCgwB,EAAKC,SAAU,EACf,MACJ,IAAK,kBACD,IAAIjwB,EAAQgwB,EAAKhwB,OAAS,IACtBS,MAAMC,QAAQV,IAAWgC,KAAK6+E,+BAAiC7+E,KAAKixB,UAAUokC,iBAAoBr3D,EAAMW,QACxGqB,KAAKs/E,WAAWthF,GAEpBgwB,EAAKC,SAAU,GAG3B,gBACI,MAAO,CAAC,aAAc,eAAgB,sBAAuB,qBAAsB,sBAAuB,iBAAkB,YAAa,cAAe,+BAAgC,8BAA+B,iBAE3N,cAAc0yC,GACV,OAAO3gE,KAAKi8E,WAAWoB,eAAe1c,GAE1C,wBACI,MAAO,aAAe3gE,KAAK8uB,OAAOisD,MAAoB,WAAa/6E,KAAK8uB,OAAOgsD,KAAyB,YAAc96E,KAAK8uB,OAAOgsD,KAAyB96E,KAAKg8E,4BAEpK,sBACI,MAAO,SAAWh8E,KAAK8uB,OAAO,2BAElC,cACI,OAAO9uB,KAAKi8E,WAAWsD,kBAAkBv/E,KAAKw/E,uBAElD,YAII,MAHI,YAAcx/E,KAAK8uB,OAAOgsD,KAC1B96E,KAAKm7E,+BAEFn7E,KAAKi8E,WAAWwD,UAAUz/E,KAAKw/E,uBAE1C,cACI,OAAOx/E,KAAKi8E,WAAWyD,YAAY1/E,KAAKw/E,uBAE5C,iBACI,OAAOx/E,KAAKo+E,iBAAiB,IAEjC,UACI,IAAI/tD,EACAvf,EAAkB,QAAUuf,EAAKrwB,KAAK8uB,OAAO,0BAAuB,IAAWuB,EAAKA,EAAK,GAC7F,OAAKrwB,KAAK8uB,OAAO,uBAAyBhe,EAAgBnS,OAC/CqB,KAAKo+E,iBAAiBttE,IAE1B,IAAK,QAAUosB,UAAU+F,UAEpC,iBAAiBjlC,EAAO2hF,EAAUC,EAAYC,GAC1C,OAAO7/E,KAAKi8E,WAAWmC,iBAAiBpgF,EAAO2hF,EAAUC,EAAYC,GAEzE,qBACI,OAAO7/E,KAAKi8E,WAAW6D,sBAE3B,WAAWnwD,EAAMgwD,GACb,OAAO3/E,KAAKo+E,iBAAiBzuD,EAAMgwD,GAEvC,aAAahwD,GACT,OAAO3vB,KAAKo+E,iBAAiBzuD,GAAM,GAAM,GAE7C,oBAAoBowD,GAChB,IAAIv+D,EAAQxhB,KAAKgoC,gBAAgBxmB,QAC7BmO,EAAO,GAUX,OATKlxB,MAAMC,QAAQqhF,KACfA,EAAUthF,MAAMw0D,UAAUzwD,MAAM22B,KAAK30B,UAAW,IAEpD,eAAKu7E,GAAS,WACV,IAAIh1D,EAAOvJ,EAAMxhB,MACb+qB,GAAQ,SAAWA,EAAK6S,SACxBjO,EAAKlwB,KAAKsrB,EAAKgjC,QAGhB/tD,KAAKs/E,WAAW3vD,GAE3B,sBACI,OAAO3vB,KAAKi8E,WAAW+D,mBAE3B,8BACI,OAAOhgF,KAAKi8E,WAAWgE,8BAE3B,oBAAoBC,EAAkBvwD,EAAMwwD,GACxCxwD,EAAOA,GAAQ,GACX3vB,KAAKi7E,8BACLtrD,EAAK0rD,SAAU,GAEnB,IAAI+E,EAAkBF,EAAmBlgF,KAAKgoC,gBAAgB6pB,oBAAsB7xD,KAAKgoC,gBAAgB6pB,mBAAkB,GAC3H,OAAO7xD,KAAKi8E,WAAWb,oBAAoBgF,EAAiBzwD,EAAMwwD,GAEtE,iBAAiB3X,GACb,IAAI,eAAUA,GAGV,OAAOxoE,KAAKi8E,WAAWoE,kBAFvBrgF,KAAKi8E,WAAWoE,kBAAoB7X,EAM5C,4BACI,MAAO,aAAexoE,KAAK8uB,OAAOisD,MAAoB,WAAa/6E,KAAK8uB,OAAOgsD,KAAyB96E,KAAKg8E,4BAEjH,+BACI,MAAI,aAAeh8E,KAAK8uB,OAAOisD,MAAoB/6E,KAAKi7E,8BACpDj7E,KAAKg8E,4BAA6B,EAClCh8E,KAAKm8E,uBACE,GAIf,8BACI,QAAIn8E,KAAKg8E,6BACLh8E,KAAKg8E,4BAA6B,EAClCh8E,KAAKm8E,uBACE,IAKZ,IAAImE,GAAkB,CACzBpzC,eAAgB,KAAM,CAClBn8B,UAAW,CACPsH,KAAM,OACNmC,mBAAoB,UACpB3B,gBAAgB,EAChB0B,cAAe,WACfyiE,yBAA0B,KAC1B1iE,UAAU,GAEdtJ,gBAAiB,GACjBF,gBAAiB,KAErBioB,YAAa,CACThoB,UAAW,IAEfuoB,UAAW,CACPP,YAAa,CACThlB,KAAM,CACF,OACI,IAAI8kE,EAAsB74E,KAAKgwB,cAAc,aACzCmuD,EAAiBn+E,KAAK8uB,OAAO,sBACjC9uB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtB25E,GACAtF,EAAoB6F,uBAAuB,CACvCP,gBAAgB,EAChBntE,gBAAiBhR,KAAK8uB,OAAO,sBAIzC,kBACI,IAAI+D,EAAO7yB,KACX,OAAO6yB,EAAKqC,WAAWgO,OAAO,KAC1BrQ,EAAK7C,cAAc,aAAa41B,aAGxC,iBAAiB76B,EAAMpF,GACnB,IAAIkzD,EAAsB74E,KAAKgwB,cAAc,aACzCuwD,EAAkB1H,EAAoBmF,wBACtCzD,EAAsB50D,EAAQ40D,yBAAsB,IAAW50D,EAAQ40D,oBAAsBv6E,KAAK8uB,OAAO,sBAAwBnJ,EAAQ40D,oBACzI3rB,EAAW5uD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAEzC,GADAoqD,EAAS4tB,WAAa3D,EAAoB6C,cAAcnB,EAAsB3rB,EAAS76C,KAAO66C,EAASb,KACnGwyB,GAAmB3xB,EAAShrD,OAC5B,IAAK,IAAIpD,EAAI,EAAGA,EAAImlB,EAAQoZ,eAAepgC,OAAQ6B,IAC/C,GAAI,WAAamlB,EAAQoZ,eAAev+B,GAAGgyB,QAAS,CAChDo8B,EAAShrD,OAAOpD,GAAKouD,EAAS4tB,WAC9B,MAIZ,OAAO5tB,GAEX,QAAQjpC,GACJ,IAAIkN,EAAO7yB,KACP00D,EAAI,IAAI,OAQZ,OAPA10D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAAWgyB,KAAK,MACjC7Q,GAAWA,EAAQ5U,UACpB8hB,EAAK7C,cAAc,aAAa41B,UAAUpvB,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAE7xB,QAEjE6xB,EAAEx3B,YAEP+L,KAAKyrB,EAAE7xB,QACH6xB,EAAEzxB,WAEb,mBAAmBhU,GACfjvB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACpByqB,GAAK,YAAcA,EAAEgV,YAAgBjkC,KAAKuqD,qBAC5CvqD,KAAKgwB,cAAc,aAAa2tD,kBAAkB,IAG1D,aAAapiE,GACT,IAAIA,GAAU,oBAAsBA,EAAO0oB,WAU3C,OAAOjkC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAT7B+W,EAAOiG,MAAM0V,QAAQ,CAACnM,EAAM9oB,KACxB,IAAIu+E,EAAcxgF,KAAKopD,OAAOnnD,GAC1Bu+E,IACAA,EAAYhE,WAAazxD,EAAKyxD,WAC9BgE,EAAY58E,OAASmnB,EAAKnnB,WAO1C,iBACI,IAAIgX,EAAU5a,KAAKwqD,SACfi2B,EAAoB7lE,EAAQjc,OAAS,GAAKic,EAAQqxC,MAAM1wC,GAAU,oBAAsBA,EAAO0oB,YACnG,GAAIw8C,EAAmB,CACnB,IAAI9B,EAAc/jE,EAAQ/b,IAAI0c,GAAUA,EAAOojE,aAAe,IAAInlD,OAAO,CAAC21B,EAAGC,IAAMD,EAAE9jC,OAAO+jC,IAC5FpvD,KAAKwqD,SAAW,CAAC,CACbvmB,WAAY,kBACZ06C,YAAaA,IAGrB3+E,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAGlC2lE,YAAa,CACT,qBAAqBxkD,GACjB,IAAI2jD,EAAU3jD,EAAQsG,MAClBq9C,EAAQ/8C,eAAiB,WAAa+8C,EAAQ/8C,cAAcnuB,MAAQunB,EAAQnE,OAASmE,EAAQnE,MAAM7iB,OAAS,GAGhHq8E,GAAeh7E,KAAMspE,MAIjCtwC,MAAO,CACHmU,kBAAmB,CACf,OACIntC,KAAKk1B,WACLl1B,KAAKgwB,cAAc,aAAagpD,iBAAiBt3C,IAAI1hC,KAAK0gF,sBAAsBxsD,KAAKl0B,QAEzF,wBACI,IAAI6uB,EAAW7uB,KAAKitB,UAChB0zD,EAAU9xD,GAAYA,EAAStB,KAAK,IAAIlC,OAAOqvD,KACnD,GAAI7rD,GAAY8xD,EAAQhiF,QAAU,aAAeqB,KAAK8uB,OAAO,kBAAmB,CAC5E,IAAI8xD,EAAiB5gF,KAAKgwB,cAAc,aAAa6vD,cACjDgB,GAAe,IAAUD,EACzB1qD,EAAYl2B,KAAK8uB,OAAO,6BAA+B9uB,KAAKgwB,cAAc,QAAQi1C,UAAY4b,EAClGF,EAAQG,WAAW,YAAYhyD,OAAO,CAClCjd,QAASqkB,EACTl4B,MAAO4iF,MAInB,mBAAmB3xD,GACfjvB,KAAKk1B,SAASjG,KACTA,GAAK,YAAcA,EAAEgV,YAAchV,EAAE1e,oBAAsB,WAAa0e,EAAEgV,aAC3EjkC,KAAKmpC,qBAAqB3S,KAAK,KAC3Bx2B,KAAK0gF,2BAIjB,yBAAyB7uD,EAAY7vB,GACjC,IAAI6wB,EAAO7yB,KACP64E,EAAsBhmD,EAAK7C,cAAc,aACzC+wD,EAAcluD,EAAK7C,cAAc,QAAQi1C,UACzCsN,EAAe,eAAE,SAASl8C,SAASxE,GAAYnF,SAASguD,IAwB5D,OAvBA7nD,EAAKrB,QAAQ,QAAS,OAAoBzzB,OAAO,4BAA6Bw0E,GAC9E1/C,EAAK7C,cAAc,iBAAiBgxD,aAAazO,EAAc,OAAAplD,EAAA,MAAO,GAAInrB,EAAQ,CAC9Ei/E,WAAY,YACZn/E,SAAU,UACV9D,MAAO66E,EAAoBgH,cAC3BjqE,cAAe,CACX/D,SAAUkvE,IAAgBluD,EAAK/D,OAAO,8BAA+B,IAAU+pD,EAAoBgH,gBAEvGnuE,SAAUmhB,EAAK/D,OAAO,gCAAkC,EAAI+D,EAAK/D,OAAO,aAAe,EACvF,SAAS9wB,EAAOixB,GACZ,IAAIpW,EAAiBga,EAAK/D,OAAO,4BACjCG,EAAEgC,UAAUnC,OAAO,UAAWjW,IAAkB,IAAUoW,EAAEgC,UAAUnC,OAAO,UACxEG,EAAEhD,OAAS4sD,EAAoBgH,gBAAkB7hF,IAGlDixB,EAAEjxB,QAAU6a,EACZoW,EAAEgC,UAAUnC,OAAO,SAAS,GAE5BG,EAAEjxB,MAAQ66E,EAAoB4G,YAAc5G,EAAoB6G,cAEpEzwD,EAAEhD,MAAM4S,sBAGT0zC,GAEX,mCAAmC1jD,GAC/B,OAAaP,GAAGO,EAAU,OAAgB7uB,KAAKkwB,aAAajB,IACxD,IACIhD,MAAOA,GACPgD,EACC,eAAEhD,EAAMvpB,QAAQgyB,QAAQ,IAAIrJ,OAAOqvD,KAAwB/7E,QAC5D,OAAa6wB,QAAQ,eAAEvD,EAAMyP,eAAe9J,SAAS,IAAIvG,OAAOqvD,KAAyB,QAE7FzuD,EAAM4S,sBAIlBnT,SAAU,CACN,8BAA8BmG,EAAYlM,GAClC,SAAWA,EAAQiY,SAAYjY,EAAQ0Y,IAAIuiC,SAK3C,QAAcf,aAAahuC,IAJ3BA,EAAWnF,SAAS8tD,IACpBx6E,KAAKkhF,0BAA0BrvD,GAC/B7xB,KAAKmhF,sBAAsBtvD,EAAYlM,KAK/C,sBAAsBlI,EAAWkI,GAC7B,IAAI4sD,EAAe,eAAE,SAAS7lD,SAASguD,IAAuBrkD,SAAS5Y,GAevE,OAdAzd,KAAKwxB,QAAQ,QAAS,OAAoBzzB,OAAO,4BAA6Bw0E,GAC9EvyE,KAAKgwB,cAAc,iBAAiBgxD,aAAazO,EAAc,OAAAplD,EAAA,MAAO,GAAIxH,EAAQ3jB,OAAQ,CACtFi/E,WAAY,UACZn/E,SAAU,UACVuC,OAAQ,KACRrG,MAAO2nB,EAAQ3nB,MACf,SAASA,EAAOixB,GACZ,IAAIoB,EACA,aAAe,QAAUA,EAAK,OAASpB,QAAK,IAAWA,OAAI,EAASA,EAAEhD,aAAU,IAAWoE,OAAK,EAASA,EAAGjyB,OAC5G,OAAaoxB,QAAQP,EAAEhC,QAAS,OAAgBgC,IAGxDoP,IAAK1Y,EAAQ0Y,OAEVk0C,GAEX,0BAA0B1jD,GACtB,OAAaP,GAAGO,EAAU,OAAgB7uB,KAAKkwB,cAAa,SAAUjB,GAClE,IAAI4pD,EAAsB74E,KAAKgwB,cAAc,cAEzC/D,MAAOA,GACPgD,EACA4M,EAAW77B,KAAK87B,YAAY,eAAE7P,EAAMyP,eAAehH,QAAQ,IAAIrJ,OAAO,MACtEwQ,GAAY,IACZg9C,EAAoBsC,+BACpBtC,EAAoBuC,oBAAoBv/C,EAAU,CAC9CgG,MAAO5V,EAAMgiB,WAEb,eAAEhiB,EAAMvpB,QAAQgyB,QAAQ,IAAIrJ,OAAOqvD,KAAwB/7E,QAC3DqB,KAAKgwB,cAAc,QAAQk8B,YAAY,CACnCjoB,WAAY,kBACZ06C,YAAa,CAAC9iD,WAMlC,QAAQtgB,GACJ,IAAIsX,EAAO7yB,KACPgkE,EAAgBnxC,EAAKkY,mBACrB,oBAAsBxvB,EAAO0oB,WACzB+/B,EAAcrlE,OAAS,IACvB,eAAKqlE,EAAe,CAACrsC,EAAGwL,KACpB,eAAK5nB,EAAOojE,aAAe,GAAI,CAAChnD,EAAG11B,KAC/B,IAAI68B,EACJ,GAAIvjB,EAAOiG,MAAMvf,KACb68B,EAAOjM,EAAK4X,gBAAgB,eAAEtH,IAAe5T,GAAGttB,GAC5C68B,EAAKngC,QAAQ,CACb,IACI69E,WAAYA,GACZjhE,EAAOiG,MAAMvf,GACjB68B,EAAKxI,YAAYmkD,QAAqB,IAAW+B,GAAqBA,GAAYjvD,KAAK,IAAIlC,OAAOqvD,KAAwBoG,WAAW,SAAU,QAAStE,GACxJ3pD,EAAKrB,QAAQ,WAAYgrD,EAAY19C,QAKrDjM,EAAKuuD,0BAGTvuD,EAAKqC,SAAS3Z,IAGtB,eACI,IAAIsX,EAAO7yB,KACPq/E,EAAgBxsD,EAAK/D,OAAO,kBAC5BqM,EAAStI,EAAKqC,SAAS3wB,MAAMsuB,EAAMruB,WAiBvC,MAhBI,SAAW66E,IACP,cAAgBxsD,EAAK/D,OAAOgsD,KAA0B,YACtD,OAAaxsD,GAAG6M,EAAQ,eAAakmD,GAAA,KAAU1tE,KAAM,sBAAuB,IAAI0X,OAAO,IAAiBwH,EAAK3C,aAAajB,IACtH+rD,GAAenoD,EAAK5B,UAAWhC,EAAEhD,OACjCgD,EAAEhD,MAAMg+C,qBAGhB,OAAa37C,GAAG6M,EAAQ,wBAAyBtI,EAAK3C,aAAajB,IAC/D,IACIhD,MAAOA,GACPgD,EACAhD,EAAMgiB,UACNhiB,EAAM4S,qBAIX1D,GAEX,WAAWkD,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrC,GAAI65B,EAAK,CACL,IACIm+C,WAAYA,GACZn+C,EACAm+C,GACA19C,EAAKpS,SAAS+tD,IAElB,IAAI4E,EAAgBr/E,KAAK8uB,OAAOisD,IAC5B,SAAWsE,GACXr/E,KAAKwxB,QAAQ,WAAYgrD,EAAY19C,GAG7C,OAAOA,GAEX,UAAU7P,GACN,IAAIq6C,EAAUr6C,EAAEhD,MACZq1D,EAAsB,eAAEhY,EAAQ5mE,QAAQgyB,QAAQ,IAAIrJ,OAAOwvD,KAA2Bl8E,OACrFqB,KAAKuhF,mBAAmB,eAAEjY,EAAQ5mE,WAC9B4+E,GAAwB,aAAethF,KAAK8uB,OAAOisD,KAAmB,WAAa/6E,KAAK8uB,OAAOgsD,KAC5F96E,KAAKgwB,cAAc,aAAaorD,oBAAoBnsD,EAAE4M,SAAU,CAC5Dw/C,QAAS,eAAoB/R,GAC7BznC,MAAOynC,EAAQr7B,aAEnBq7B,EAAQzqC,iBACR5P,EAAEhB,SAAU,GAGpBjuB,KAAKk1B,SAASjG,KAGtB,mBAAmBrC,GACf,IAAI40D,EAAkB50D,EAAQ8H,QAAQ,IAAIrJ,OAAOuvD,KAAuBj8E,OACxE,QAAS6iF,GAEb,YAAYjmE,GACR,IAAIjB,EAAWta,KAAKk1B,SAAS3Z,GAE7B,OADAvb,KAAKohF,yBACE9mE,GAEX,yBACI,IAAI0pD,EAAgBhkE,KAAK+qC,mBACrB8tC,EAAsB74E,KAAKgwB,cAAc,aACzCyxD,EAAqB5I,EAAoBmF,0BAA4BnF,EAAoBoC,4BAC7F,eAAKjX,EAAe,CAACrsC,EAAGwL,KACpB,eAAEA,GAAc7M,YAAYqkD,GAAyB8G,UCrxB7E,GAASrvC,eAAe,YAAakuC,I,gKC2DjCoB,GAAe,cACfC,GAAa,GAAGt2D,OAAOq2D,GAAc,SACrCE,GAAuB,GAAGv2D,OAAOs2D,GAAY,cAC7CE,GAA4B,GAAGx2D,OAAOs2D,GAAY,kBAClDG,GAA8B,GAAGz2D,OAAOs2D,GAAY,qBACpDI,GAAU,GAAG12D,OAAOs2D,GAAY,YAChCK,GAAa,GAAG32D,OAAOq2D,GAAc,SACrCO,GAA2B,GAAG52D,OAAO22D,GAAY,kBACjDE,GAAuC,GAAG72D,OAAO22D,GAAY,8BAC7DG,GAA4C,GAAG92D,OAAOq2D,GAAc,wCACpEU,GAA8B,GAAG/2D,OAAO22D,GAAY,qBACpDK,GAAgB,GAAGh3D,OAAO22D,GAAY,SACtCM,GAA+B,GAAGj3D,OAAOq2D,GAAc,2BACvDa,GAA6B,GAAGl3D,OAAOq2D,GAAc,yBACrDc,GAA2B,GAAGn3D,OAAOq2D,GAAc,uBACnDe,GAAuB,GAAGp3D,OAAOq2D,GAAc,kBAC/CgB,GAA+B,GAAGr3D,OAAOq2D,GAAc,0BACvDiB,GAAsC,GAAGt3D,OAAOq2D,GAAc,kCAC9DkB,GAAwB,GAAGv3D,OAAOq2D,GAAc,oBAChDmB,GAAwB,qBACxBC,GAAuB,oBACvBC,GAAsB,oBACtBC,GAAyB,oBACzBC,GAAe,eACfC,GAAiB,cACjBC,GAAe,QAA6BvwD,QAAQ,CACpDwwD,eAAgB,SAASn0D,GACrB,IAAIo0D,EAAQp0D,IACR,IAAIq0D,EAAe,eAAEtjF,KAAK8uB,OAAO,mBACjC,GAAKw0D,EAAa3kF,OAAlB,CAGAswB,EAAEvsB,OAAS4gF,EACXr0D,EAAEyM,cAAgB4nD,EAClBtjF,KAAKujF,kBAAkBt0D,EAAGq0D,EAAa1xD,SAAS,IAAMowD,KACtD,IAAIwB,EAAkBxjF,KAAKyjF,sBAAsBzjF,KAAK8uB,OAAO,gBACzD40D,EAAgBF,IAAoB,eAAa,OAAgBR,IACjEU,GACA1jF,KAAK2jF,oBAAoB10D,KAG7BkuD,EAASluD,IACTA,EAAE4P,iBACF,IAAI+kD,EAAkB,eAAE5jF,KAAK8uB,OAAO,mBAChC+0D,EAAmB7jF,KAAK8jF,qBAAqBF,GACjD,IAAKC,EAAiB/0D,OAAO,YAAa,CACtC,IAAIi1D,EAAeF,EAAiB/0D,OAAO,SAC3C9uB,KAAKgkF,sBAAsBD,EAAcH,EAAgBr2D,KAAK,IAAMy0D,IAAYruD,IAAI,IAAI,KAG5FswD,EAA4B,SAAS98B,EAAOl4B,GAC5C,GAAKjvB,KAAK8uB,OAAO,oBAAjB,CAGAG,EAAE4P,iBACF,IAAI4/B,EAAe,eAAEz+D,KAAK8uB,OAAO,mBACjC,GAAK2vC,EAAa9/D,OAAlB,CAGA,IAAIulF,EAAWlkF,KAAKmkF,aAAa1lB,EAAalxC,KAAK,IAAIlC,OAAO22D,MAC9DhiF,KAAKokF,2BAA2B,CAACF,GAAW/8B,MAEhD,OAAO,OAAAh6B,EAAA,MAAOntB,KAAKk1B,WAAY,CAC3BmvD,MAAOrkF,KAAKskF,kBAAoBnH,EAASkG,EACzCkB,MAAOvkF,KAAKskF,kBAAoBnH,EAASkG,EACzCmB,SAAUP,EAA0B/vD,KAAKl0B,MAAM,GAC/CykF,MAAOR,EAA0B/vD,KAAKl0B,MAAM,MAGpDokF,2BAA4B,SAAS5iE,EAAO2lC,GACxC,GAAK3lC,EAGL,IAAK,IAAIhhB,EAAI,EAAGkkF,EAAMljE,EAAM7iB,OAAQ6B,EAAIkkF,EAAKlkF,IAAK,CAC9C,IAAIuqB,EAAOvJ,EAAMhhB,GACbmkF,EAAO3kF,KAAK4kF,aAAaC,cAAc95D,GAC3C/qB,KAAK8kF,qBAAqBH,EAAMx9B,GAChCnnD,KAAKokF,2BAA2Br5D,EAAKvJ,MAAO2lC,KAGpD49B,gBAAiB,SAASJ,EAAMK,GAC5B,IAAIj3B,EAAM/tD,KAAKilF,cAAcN,EAAKO,eAAen3B,KACjD,GAAIi3B,EASA,OARKA,EAAMG,aACPH,EAAMG,WAAa,GACnBnlF,KAAK6uB,WAAWtB,KAAK,IAAIlC,OAAOs2D,KAAayD,MAAK,WAC9C,IAAIC,EAAQ,eAAErlF,MACV+tD,EAAMs3B,EAAMv4D,KAAKm2D,IACrB+B,EAAMG,WAAWp3B,GAAOs3B,MAGzBL,EAAMG,WAAWp3B,IAAQ,iBAEpC,IAAI9gC,EAAUjtB,KAAK6uB,WAAW8E,IAAI,GAAG2xD,cAAc,IAAIj6D,OAAO43D,GAAc,MAAM53D,OAAO0iC,EAAK,OAC9F,OAAO,eAAE9gC,IAEb0pD,iBAAkB,IAAMqL,GACxBuD,aAAc,WACV,OAAO7D,IAEX8D,mBAAoB,WAChB,IAAIt4C,EAAiB,OAAA/f,EAAA,MAAOntB,KAAKk1B,WAAY,CACzCuwD,kBAAkB,EAClBC,cAAe,OACf9nE,gBAAgB,EAChB+nE,kBAAkB,EAClBC,aAAc,WACdC,sBAAsB,EACtBC,sBAAsB,EACtBtrE,mBAAoB,OACpBurE,WAAY,KACZC,aAAc,KACdC,cAAe,OAAoBloF,OAAO,oBAC1CmoF,uBAAwB,KACxBC,eAAgB,KAChBC,gBAAiB,KACjBC,gBAAiB,WACjB7oD,oBAAoB,EACpB8oD,oBAAoB,EACpBC,UAAW,EACXvpE,mBAAmB,EACnBqiE,cAAe,WACfmH,YAAa,WACbztE,eAAe,EACf0tE,eAAgB,KAChBC,wBAAyB,OAE7B,OAAO,OAAAv5D,EAAA,OAAO,EAAM+f,EAAgB,CAChCy5C,mBAAoB,CAChBC,4BAA4B,MAIxCC,qBAAsB,WAClB,OAAO7mF,KAAKk1B,WAAW7J,OAAO,CAAC,CAC3B0rD,OAAQ,WACJ,OAAQ,sBAEZpxD,QAAS,CACL6X,oBAAoB,OAIhCspD,mBAAoB,OACpBC,sBAAuB,OACvB7H,sBAAuB,WACnB,IAAI8H,EAAyBhnF,KAAKinF,wBAClC,eAAKD,GAAwBxwD,KAAK,WAC9Bx2B,KAAKkuB,sBAAsB,qBAAsB,CAC7Cga,kBAAmB,CAAC,WAAY,aADpCloC,IAGFk0B,KAAKl0B,QAEXknF,mCAAoC,WAChClnF,KAAKmnF,6BAA+BnnF,KAAKkuB,sBAAsB,0BAA2B,CACtFga,kBAAmB,CAAC,WAAY,eAGxCk/C,2BAA4B,SAASppF,GACjCgC,KAAKmnF,6BAA6B,CAC9BnpF,MAAOA,KAGfqpF,oBAAqB,SAASrpF,EAAOghD,GACjC,IAAIsoC,EAAgBtnF,KAAK8uB,OAAO,iBAC5By4D,EAA2BvnF,KAAKwnF,kBAAkBxoC,GAClDyoC,EAAyBznF,KAAK0nF,eAAeJ,EAAeC,GAGhE,GAFAvnF,KAAK2nF,kBAAkBF,GACvBznF,KAAK4nF,mBAAmBH,GACpB,SAAWzoC,GAAiB,SAAWhhD,EAA3C,CAGA,IAAI6pF,EAAkB7nF,KAAK8nF,iBAAmB9nF,KAAK8nF,gBAAgBnpF,OACnE,OAAQX,GACJ,IAAK,YACI6pF,IACD7nF,KAAKknF,qCACLlnF,KAAK+nF,wBAET,MACJ,IAAK,SACGF,IACA7nF,KAAK8nF,gBAAgB9kD,gBACdhjC,KAAK8nF,oBAI5BE,iBAAkB,WACd,IAAIn1D,EAAO7yB,KACX,eAAKA,KAAK4kF,aAAaqD,eAAe,SAAUtwD,EAAGgtD,GAC1C9xD,EAAKq1D,aAAavD,IAGvB9xD,EAAK+xD,aAAauD,gBAAgBxD,EAAKO,eAAen3B,KAAK,GAAO,OAG1Eq6B,eAAgB,SAASp6D,GACrB,IACIra,KAAMA,EACN3V,MAAOA,EACPghD,cAAeA,GACfhxB,EACJ,OAAQra,GACJ,IAAK,gBACG3T,KAAK8nF,iBACL9nF,KAAK8nF,gBAAgBhH,WAAW,YAAYhyD,OAAO,OAAQ9wB,GAE/D,MACJ,IAAK,qBACDgC,KAAKqnF,oBAAoBrpF,EAAOghD,GAChCh/C,KAAK+nC,cACL,MACJ,IAAK,kBACD/nC,KAAKigE,gBAAgBnxC,OAAO,YAAa9wB,GACzC,MACJ,IAAK,qBACDgC,KAAKigE,gBAAgBnxC,OAAO,YAAa9wB,GACzC,MACJ,IAAK,eACMgC,KAAK8nF,gBACZ9nF,KAAKk1B,SAASlH,GACd,MACJ,IAAK,aACDhuB,KAAKk1B,SAASlH,GACdhuB,KAAKqoF,mBACLroF,KAAKsoF,QAAU,GACf,MACJ,IAAK,eACDtoF,KAAKuoF,iBACLvoF,KAAKwoF,UACL,MACJ,IAAK,cACDxoF,KAAKyoF,qBACL,MACJ,IAAK,iBACL,IAAK,gBACL,IAAK,YACL,IAAK,iBACL,IAAK,uBACL,IAAK,yBACL,IAAK,iBACL,IAAK,kBACL,IAAK,mBACL,IAAK,mBACL,IAAK,qBACL,IAAK,gBACD,MACJ,IAAK,gBACDzoF,KAAKqoF,mBACLroF,KAAKk1B,SAASlH,GACd,MACJ,IAAK,0BACDhuB,KAAKknF,qCACL,MACJ,IAAK,uBACDlnF,KAAK4kF,aAAa8D,UAAU,qBAAsB16D,EAAKhwB,OACvDgC,KAAKwoF,UACL,MACJ,IAAK,aACL,IAAK,eACDxoF,KAAKwoF,UACL,MACJ,QACIxoF,KAAKk1B,SAASlH,KAG1BigC,gBAAiB,WACTjuD,KAAK2oF,2BACL3oF,KAAK4oF,4BAA4B,MAAMpyD,KAAK,SAASqyD,GAC7CA,GAAYA,EAASlqF,QACrBqB,KAAK8uB,OAAO,QAAS+5D,IAE3B30D,KAAKl0B,QAEPA,KAAKk1B,WACLl1B,KAAK8oF,kBAAoB9oF,KAAK+oF,qBAGtCA,iBAAkB,WACd,IAAIzkF,EAAStE,KAAKsoF,QACbhkF,EAAO0kF,SACR1kF,EAAO0kF,OAAShpF,KAAK4+C,YAAYt6C,UAEhCA,EAAO2kF,WACR3kF,EAAO2kF,SAAW,CAACjpF,KAAK8uB,OAAO,gBAAiB9uB,KAAK8uB,OAAO,gBAGpE65D,yBAA0B,WACtB,OAAO,eAAW3oF,KAAK8uB,OAAO,oBAAsB9uB,KAAKkpF,yBAE7DN,4BAA6B,SAASO,GAClC,IAAIC,EAAmBppF,KAAK8uB,OAAO,kBAAkBqK,KAAKn5B,KAAMmpF,GAChE,OAAI1qF,MAAMC,QAAQ0qF,IACP,IAAK,QAAUlsD,QAAQksD,GAAkBnmD,UAEhDmmD,GAAoB,eAAWA,EAAiBC,MACzC,eAAYD,IAEhB,IAAK,QAAUlsD,QAAQ,IAAI+F,WAEtCqmD,eAAgB,WACZ,OAAKtpF,KAAKsoF,QAAQU,QAAWhpF,KAAKsoF,QAAQU,OAAOrqF,OAG1C,CAACqB,KAAKsoF,QAAQU,OAAQhpF,KAAKsoF,QAAQW,UAF/BjpF,KAAKsoF,QAAQW,UAI5BM,4BAA6B,WACzBvpF,KAAKmuC,uBAETq7C,MAAO,WACHxpF,KAAKsoF,QAAU,GACftoF,KAAKk1B,WACLl1B,KAAKypF,4BAETC,0BAA2B,SAASb,GAChC,IAAIrnE,EAAQxhB,KAAK8uB,OAAO,SACpB9uB,KAAK2pF,cAAgB3pF,KAAK8oF,kBAAoBtnE,EAAM7iB,QAGxDqB,KAAK8uB,OAAO,QAAS+5D,IAEzBe,6BAA8B,WACrB5pF,KAAK6pF,yBAGV7pF,KAAK6pF,uBAAuB7mD,SAC5BhjC,KAAK6pF,uBAAyB,OAElCC,6BAA8B,WAG1B,OAFA9pF,KAAK6pF,uBAAyB,eAAE,SAASn9D,SAAS+1D,IAClDziF,KAAK8zB,iBAAiB9zB,KAAK6pF,uBAAwB,QAAe,IAC3D7pF,KAAK6pF,wBAEhBE,iCAAkC,SAASz+B,GACvC,IAAI0+B,EAKJ,GAJIhqF,KAAK8oF,mBACLkB,EAAehqF,KAAKspF,iBACpBtpF,KAAK4+C,YAAYt6C,OAAO0lF,IAExB1+B,IAActrD,KAAK4+C,YAAY9O,WAAY,CAC3C9vC,KAAK8uB,OAAO,QAAS,IACrB,IAAIm7D,EAAW,eAAE,SAASv9D,SAASg2D,IACnC1iF,KAAK8pF,+BAA+BzzD,SAAS4zD,GAC7CjqF,KAAKkqF,iBAAiBn4D,OAAOk4D,GACzBjqF,KAAK8oF,kBAAoB9oF,KAAK4+C,YAAYt6C,WAAa0lF,GACvDhqF,KAAK4+C,YAAYt6C,OAAO,SAG5BtE,KAAK4pF,gCAGbH,yBAA0B,WAClB,UAAYzpF,KAAK8uB,OAAO,kBAG5B9uB,KAAK4+C,aAAe5+C,KAAK4+C,YAAYmM,QAAQz8B,GAAG,WAAY0hC,IACxDhwD,KAAK8uB,SAAStN,MAAQxhB,KAAK8uB,OAAO,SAASzD,OAAO2kC,GAClDhwD,KAAK4kF,aAAauF,QAAQn6B,GACrBhwD,KAAK4kF,aAAawF,WAAWp6B,IAGlChwD,KAAKqqF,aAAarqF,KAAKsqF,gBAAgBt6B,MACxC1hC,GAAG,UAAWi8D,IACb,IAAI5F,EAAO3kF,KAAK4kF,aAAa4F,aAAaD,GACtC,eAAU5F,KACV3kF,KAAK8uB,OAAO,SAAS9uB,KAAK4kF,aAAa/vB,cAAc8vB,EAAKO,eAAen3B,MAAQ,EACjF/tD,KAAKyqF,2BAA2B9F,GAChC3kF,KAAK0qF,eACL1qF,KAAK4kF,aAAa+F,WAAWJ,GAC7BvqF,KAAKqqF,aAAarqF,KAAKsqF,gBAAgB3F,QAInD8F,2BAA4B,SAAS9F,GACjC,IAAIh1D,EAAOg1D,EAAKO,eAAe0F,aAC/B,eAAKj7D,EAAM,CAACgI,EAAGo2B,KACX/tD,KAAK8uB,OAAO,SAAS9uB,KAAK4kF,aAAa/vB,cAAc9G,IAAQ,EAC7D/tD,KAAKyqF,2BAA2BzqF,KAAK4kF,aAAa4F,aAAaz8B,OAGvE28B,aAAc,WACV,IAAIlpE,EAAQ,OAAA2L,EAAA,OAAO,EAAM,GAAIntB,KAAK8uB,OAAO,UACrC+7D,EAAU,EACd,eAAKrpE,EAAO,CAACvf,EAAO8oB,KACXA,IACD/qB,KAAK8uB,OAAO,SAASsY,OAAOnlC,EAAQ4oF,EAAS,GAC7CA,QAIZR,aAAc,SAASS,GACnB,IAAIj5D,EAAa7xB,KAAK+qF,yBAAyBD,GAC/C9qF,KAAKgrF,aAAan5D,EAAY7xB,KAAK4kF,aAAaqG,iBAAiBH,KAErEI,iBAAkB,SAAS5H,GACvB,GAAIA,EAAa3kF,OACb,OAAO2kF,EAAa1xD,SAAS,IAAIvG,OAAOu2D,KAE5C,IAAIniB,EAAaz/D,KAAKigE,gBACtB,OAAIR,EACO,eAAEA,EAAWxkC,WAAWrJ,WAE5B,kBAEXm5D,yBAA0B,SAASD,GAC/B,IAAInG,EAAO3kF,KAAK4kF,aAAa4F,aAAaM,GACtCxH,EAAeqB,EAAO3kF,KAAK+kF,gBAAgBJ,GAAQ,GACvD3kF,KAAKkrF,iBAAiB5H,GAActgD,SACpC,IAAInR,EAAa7xB,KAAKmrF,qBAAqB7H,GAC3C,GAAItjF,KAAKorF,aAAaN,GAAW,CAC7B,IAAIrrB,EAAaz/D,KAAKigE,gBACjBR,GACDz/D,KAAKqrF,6BAET,eAAE5rB,EAAWxkC,WAAWlJ,OAAOF,GAEnC,OAAOA,GAEXu5D,aAAc,SAASN,GACnB,OAAOA,IAAa9qF,KAAK8uB,OAAO,cAEpCw8D,cAAe,WACX,IAAIC,EAAYvrF,KAAKk1B,WAErB,OADAq2D,EAAU9rF,KAAK,YACR8rF,GAEXC,uBAAwB,WACpB,IAAIC,EAAmBC,EAAuBC,EAC9C,MAAO,CACHpF,UAAWvmF,KAAK8uB,OAAO,aACvB88D,mBAAoB5rF,KAAK6rF,qBACzBC,mBAAoB9rF,KAAK+rF,wBACzBC,mBAAoBhsF,KAAK8uB,OAAO,wBAChCm9D,kBAAmBjsF,KAAK8uB,OAAO,qBAC/BhtB,SAAU9B,KAAK8uB,OAAO,iBACtBwJ,KAAMt4B,KAAK4+C,aAAe5+C,KAAK4+C,YAAYtmB,OAC3CujC,WAAY,QAAU4vB,EAAoBzrF,KAAK4+C,mBAAgB,IAAW6sC,GAA6B,QAAUC,EAAwBD,EAAkB92B,mBAAgB,IAAW+2B,GAAiC,QAAUC,EAAyBD,EAAsBvyD,KAAKsyD,UAAuB,IAAWE,OAAzN,EAA2PA,EAAuB9vB,aAGxXqwB,YAAa,WACTlsF,KAAKqrF,6BACLrrF,KAAKmuC,oBAAoBnuC,KAAK4kF,aAAauH,gBAC3CnsF,KAAKk1B,WACLl1B,KAAKwxB,QAAQ,OAAQ,SAEzB4lD,mBAAoB,WAChB,IAAIgV,EAAiBpsF,KAAKmrF,uBAC1B,eAAEnrF,KAAKigE,gBAAgBhlC,WAAWlJ,OAAOq6D,GACpCpsF,KAAK8uB,OAAO,UAAa9uB,KAAK8uB,OAAO,SAASnwB,SAGnDqB,KAAKgrF,aAAaoB,EAAgBpsF,KAAK4kF,aAAauH,gBACpDnsF,KAAKyoF,qBACDzoF,KAAKwnF,sBACLxnF,KAAKknF,qCACLlnF,KAAK+nF,qBAAqBqE,MAGlCtD,eAAgB,WACZ,OAAO9oF,KAAK8uB,OAAO,uBAAyB9uB,KAAKkpF,2BAA6BlpF,KAAK8uB,OAAO,eAE9Fo6D,sBAAuB,WACnB,MAAO,UAAYlpF,KAAK8uB,OAAO,kBAEnC4+C,wBAAyB,WACrB,IAAI3hE,EAAa/L,KAAKq1D,gBAClBg3B,EAAyBtgF,IAAeA,EAAW+jC,YAAc9vC,KAAKssF,iCACtE7sB,EAAaz/D,KAAKigE,gBAClBR,GAAc,kBACdA,EAAWp4B,SAEVglD,GACDrsF,KAAKk1B,WAELuqC,GAAc,kBACdA,EAAWp4B,UAGnBgkD,2BAA4B,WACxBrrF,KAAKgiE,YAAchiE,KAAK8zB,iBAAiB,eAAE,SAASuC,SAASr2B,KAAK6uB,YAAa,QAAY,CACvF1F,UAAWnpB,KAAK8uB,OAAO,sBACvB9J,UAAWhlB,KAAK8uB,OAAO,mBACvB4O,aAAa,KAGrBytD,qBAAsB,SAAS/0D,GAC3B,IAAIvE,EAAa,eAAE,QAAQnF,SAASk1D,IAEpC,GADA5hF,KAAKwxB,QAAQ,OAAQ,QAASK,GAC1BuE,GAAWA,EAAQz3B,OAAQ,CAC3B,IAAIozC,EAAW/xC,KAAKmkF,aAAa/tD,EAAQxE,SAAS,IAAMowD,KACpDhiF,KAAKusF,gBAAgBx6C,IACrBlgB,EAAWnF,SAASo1D,IAExBjwD,EAAWwE,SAASD,GAExB,OAAOvE,GAEX26D,kBAAmB,SAASJ,EAAgBzH,GACxC,IAAI8H,EAAsBC,EACtBrH,EAAQ,eAAE,QAAQ34D,SAASi1D,IAAY70D,KAAKm2D,GAAcjjF,KAAKilF,cAAcN,EAAKO,eAAen3B,MAAMiV,UAAUopB,GACjHO,EAAQ,CACRzhB,KAAM,WACN/nD,MAAOnjB,KAAK4sF,eAAejI,EAAKO,eAAen6D,OAAS,GACxD8hE,MAAO7sF,KAAK8sF,UAAUV,IAEtBW,IAAmB,OAASpI,QAAQ,IAAWA,GAAQ,QAAU8H,EAAuB9H,EAAKO,sBAAmB,IAAWuH,GAAwB,QAAUC,EAAwBD,EAAqB7B,oBAAiB,IAAW8B,IAAyBA,EAAsB/tF,QAKzR,OAJIouF,IACAJ,EAAMK,SAAWrI,EAAKO,eAAe8H,WAAY,GAErDhtF,KAAKwxB,QAAQm7D,EAAOtH,GACbA,GAEXyH,UAAW,SAASV,GAChB,IAAI95D,EAAS85D,EAAe95D,SAC5B,OAAOA,EAAO3B,SAAS,yBAA2B,EAAImuB,SAASxsB,EAAOxF,KAAK,eAAiB,GAEhGw3D,gBAAiB,WACb,MAAO,SAAWtkF,KAAK8uB,OAAO,uBAElCm+D,wBAAyB,WACrB,OAAOjtF,KAAK8uB,OAAO,eAAiB9uB,KAAK8uB,OAAO,iBAEpD04D,kBAAmB,SAAShtE,GACxB,IAAInC,EAAO,OAASmC,QAAsB,IAAWA,EAAqBA,EAAqBxa,KAAK8uB,OAAO,sBAC3G,MAAO,cAAgBzW,IAASrY,KAAK6rF,sBAEzCb,aAAc,SAASoB,EAAgBc,GAEnC,IADA,IAAIvuF,EAASuuF,EAAMvuF,OAAS,EACnB6B,EAAI7B,EAAQ6B,GAAK,EAAGA,IACzBR,KAAKmtF,YAAY3sF,EAAG0sF,EAAM1sF,GAAI4rF,GAElCpsF,KAAKotF,qBAAuBF,EAAMvuF,QAEtCwuF,YAAa,SAASE,EAAW1I,EAAMyH,GACnC,IAAI/G,EAAQrlF,KAAKwsF,kBAAkBJ,EAAgBzH,GAC/C2I,EAAW3I,EAAKO,eAChBqI,EAAevtF,KAAKskF,kBACxBe,EAAM34D,SAAS6gE,EAAetL,GAA2BG,IACzDiD,EAAM/uD,YAAYusD,IAAuB,IAAUyK,EAASviE,KAAKlZ,SAC7D7R,KAAKitF,4BACL5H,EAAM34D,SAASw1D,IACfkK,EAAe1/D,SAASy1D,KAE5BoL,GAAgBvtF,KAAKwtF,gBAAgBnI,EAAOV,GAC5C3kF,KAAKwxB,QAAQ,WAAY87D,EAAShQ,SAAU+H,GAC5CrlF,KAAKytF,qBAAqBpI,EAAOiI,EAAShQ,UACtCgQ,EAASrhF,UACTjM,KAAKwxB,QAAQ,WAAY87D,EAASrhF,SAAUo5E,GAEhDrlF,KAAKk1B,SAASl1B,KAAKotF,oBAAsBC,EAAWC,EAASviE,KAAMs6D,IAC/D,IAAUiI,EAASviE,KAAKlZ,SACxB7R,KAAK0tF,gBAAgBrI,EAAOV,IAGpCgJ,2BAA4B,OAC5BD,gBAAiB,SAASrI,EAAOV,GACxB3kF,KAAKkoF,aAAavD,IAInB3kF,KAAKitF,0BACLjtF,KAAK4tF,2BAA2BvI,EAAOV,GAEvC3kF,KAAK6tF,4BAA4BxI,EAAOV,GAExC3kF,KAAK8uB,OAAO,oBAAsB61D,EAAKO,eAAe8H,UAG1DhtF,KAAK8tF,cAAcnJ,GAAMnuD,KAAKu3D,IAC1B/tF,KAAKguF,gBAAgB3I,EAAOrlF,KAAKiuF,eAAetJ,GAAOoJ,MAZvD/tF,KAAKkuF,cAAc7I,IAe3B4I,eAAgB,SAASE,GACrB,OAAOnuF,KAAK4kF,aAAa4F,aAAa2D,EAAWjJ,eAAen3B,MAEpEm6B,aAAc,SAASvD,GACnB,OAAI3kF,KAAK8oF,kBAAoB9oF,KAAK2oF,4BACvB,IAAU3oF,KAAKouF,gBAAgBzJ,EAAKO,eAAen6D,MAEvD/qB,KAAKk1B,SAASyvD,IAEzBmJ,cAAe,SAASnJ,GACpB,IAAIrqE,EAAW,IAAI,OACf+zE,EAAgBruF,KAAKsuF,eAAe3J,GAQxC,OAPI0J,EAAc1vF,OACd2b,EAAS4iB,QAAQmxD,GAEjBruF,KAAKuuF,iBAAiB5J,GAAMnuD,KAAKhV,IAC7BlH,EAAS4iB,QAAQl9B,KAAK4kF,aAAa4J,gBAAgBhtE,MAGpDlH,EAAS2oB,WAEpBwrD,uBAAwB,IAAM,CAAC,MAAO,YACtCC,YAAa,SAAS78D,EAAYkgB,GAC9B,IACIxsB,KAAMA,EACN4lD,IAAKA,GACLp5B,EACJ,GAAIo5B,EAAK,CACLt5C,EAAWtM,KAAKA,GAChB,IAAIopE,EAAO3uF,KAAK4uF,kBAAkB5uF,KAAK6uF,kBAAkB98C,GAAW/xC,KAAK8uF,kBAAkB/8C,GAAWA,GACtGlgB,EAAWE,OAAO48D,QAElB3uF,KAAKk1B,SAASrD,EAAYkgB,IAGlCi8C,gBAAiB,SAAS3I,EAAOV,EAAMoJ,GACnC,IAAIgB,EAAuB/uF,KAAKmrF,qBAAqB9F,EAAOV,GACxDqK,EAA2BjB,EAAWzpF,OAAO2qF,IAAc,IAAMtK,EAAKO,eAAe0F,aAAaroF,QAAQ0sF,EAAU/J,eAAen3B,MAEvI,GADA/tD,KAAKgrF,aAAa+D,EAAsBC,GACpCA,EAAyBrwF,SAAWgmF,EAAKO,eAAe5H,SAAU,CAClE,IAAI4R,EAAaF,EAAyB,GAC1ChvF,KAAKmvF,oBAAoBD,EAAYlvF,KAAK+kF,gBAAgBmK,IAE9DlvF,KAAKovF,oBAAoB/J,EAAO2J,EAAyBrwF,QACrDgmF,EAAKO,eAAe8H,UACpB+B,EAAqBriE,SAASo1D,KAGtCuN,yBAA0B,SAAS7mB,EAAWz2B,EAAUu9C,GACpD,IAAI3K,EAAO3kF,KAAKuvF,SAASD,GACzBtvF,KAAKwvF,sBAALxvF,CAA4B,CACxBsvF,YAAaA,EACb9mB,UAAWA,EACXz2B,SAAUA,EACV4yC,KAAM3kF,KAAK4kF,aAAa6K,cAAc9K,MAG9CuJ,cAAe,SAAS7I,GACpBA,EAAM34D,SAASq1D,KAEnB4B,oBAAqB,SAAS10D,GAC1B,IAAIygE,EAAe,eAAEzgE,EAAEyM,cAAcytD,YAChCuG,EAAa/+D,SAASoxD,KACvB/hF,KAAK8kF,qBAAqB71D,EAAEyM,mBAAe,EAAQzM,IAG3Dw5D,mBAAoB,WAChB,IAAIkH,EAAoB3vF,KAAKyjF,sBAAsBzjF,KAAK8uB,OAAO,gBAC3D8gE,EAAkB5vF,KAAK0nF,iBAC3B1nF,KAAK4nF,mBAAmBgI,GACxB,OAAathE,GAAGshE,EAAiBD,EAAmB3vF,KAAK6vF,gBAAiB7vF,KAAK2jF,oBAAoBzvD,KAAKl0B,QAE5G,mBAAmBkqF,GACf,OAAa17D,IAAI07D,EAAgB,IAAI7+D,OAAO23D,IAAyBhjF,KAAK6vF,kBAE9EpM,sBAAuB,SAAS9vE,GAC5B,IAAIsY,EAAQ,UAAYtY,EAAO,OAAiB,OAChD,OAAO,eAAasY,EAAO+2D,KAE/BuM,SAAU,SAASjyC,GACf,IAAK,eAAUA,GACX,OAAO,KAEX,GAAIA,EAAW4nC,eACX,OAAO5nC,EAEX,GAAI,eAAYA,GACZ,OAAOt9C,KAAK4kF,aAAa4F,aAAaltC,GAE1C,IAAIgyC,EAAc,eAAEhyC,GAAY3pB,IAAI,GACpC,OAAK27D,EAGD,aAAWQ,cAAcR,GAClBtvF,KAAK+vF,kBAAkBT,GAE3BtvF,KAAK4kF,aAAaC,cAAcyK,GAL5B,MAOfS,kBAAmB,SAAST,GACxB,IAAIjK,EAAQ,eAAEiK,GAAa56D,QAAQ,IAAMitD,IACrC5zB,EAAM/tD,KAAKgwF,cAAc3K,EAAMv4D,KAAKm2D,KACxC,OAAOjjF,KAAK4kF,aAAa4F,aAAaz8B,IAE1C+2B,qBAAsB,SAASwK,EAAanoC,EAAOl4B,GAC/C,IAAI01D,EAAO3kF,KAAKuvF,SAASD,GACzB,IAAK3K,EACD,OAAO,IAAK,QAAU9hD,SAASI,UAEnC,GAAI0hD,EAAKO,eAAej5E,SACpB,OAAO,IAAK,QAAU42B,SAASI,UAEnC,IAAI8gD,EAAeY,EAAKO,eAAe8H,SACvC,GAAIjJ,IAAiB58B,EACjB,OAAO,IAAK,QAAUjqB,UAAU+F,UAEpC,GAAIjjC,KAAKkoF,aAAavD,GAAO,CACzB,IAAIU,EAAQrlF,KAAK+kF,gBAAgBJ,GACjC,GAAIU,EAAM93D,KAAK,IAAIlC,OAAOw2D,GAA2B,UAAUx2D,OAAOw3D,GAAuB,MAAMlkF,OAC/F,OAAO,IAAK,QAAUkkC,SAASI,UAE9B8gD,GAAiB/jF,KAAKiwF,yBAAyB5K,IAChDrlF,KAAKkwF,qBAAqB7K,GAOlC,OAJK,eAAUl+B,KACXA,GAAS48B,GAEb/jF,KAAK4kF,aAAauL,gBAAgBxL,EAAKO,eAAen3B,IAAK5G,GACpDnnD,KAAKowF,uBAAuBzL,EAAMx9B,EAAOl4B,IAEpD,yBAAyBo2D,GACrB,IAAI+G,EAAiB/G,EAAMzzD,SAAS,IAAIvG,OAAOu2D,KAC/C,OAAOwK,EAAehpD,IAAI,UAAUzkC,QAExCuxF,qBAAsB,SAAS7K,GAC3BrlF,KAAK8zB,iBAAiB,eAAE,SAASpH,SAASm1D,IAA4B,QAAe,IAAIhzD,WAAWwH,SAASgvD,GAC7G,IAAIgL,EAAQhL,EAAMzzD,SAAS,IAAIvG,OAAOi3D,GAA8B,MAAMj3D,OAAOm3D,KACjF6N,EAAMv9E,QAEVw9E,oBAAqB,SAASjL,EAAOV,EAAM0L,EAAOE,GAC9CF,EAAMh6D,SAASgvD,GACfgL,EAAM3jE,SAAS6jE,GACX5L,EAAKO,eAAej5E,UACpBokF,EAAM3jE,SAASo2D,IAEnB9iF,KAAKwwF,qCAAqCH,EAAO1L,IAErDkJ,4BAA6B,SAASxI,EAAOV,GACzC,IAAI0L,EAAQ,eAAE,SAAS3jE,SAAS41D,IAA8BjsD,SAASgvD,GACnEV,EAAKO,eAAe8H,WACpBqD,EAAM3jE,SAASi2D,IACf0C,EAAM/yD,SAAS5F,SAASo1D,KAExB6C,EAAKO,eAAej5E,UACpBokF,EAAM3jE,SAASo2D,IAEnB9iF,KAAKwwF,qCAAqCH,EAAO1L,IAErDiJ,2BAA4B,SAASvI,EAAOV,GACxC,IACIoB,WAAYA,EACZC,aAAcA,GACdhmF,KAAK8uB,SACL2hE,EAAc,gBAAkB,OAAS1K,QAAc,IAAWA,EAAaA,EAAaC,GAC5F0K,EAAgB,gBAAkB,OAAS1K,QAAgB,IAAWA,EAAeA,EAAeD,GACxG/lF,KAAKswF,oBAAoBjL,EAAOV,EAAM8L,EAAajO,IACnDxiF,KAAKswF,oBAAoBjL,EAAOV,EAAM+L,EAAenO,IACrD,IAAIoO,EAAiBhM,EAAKO,eAAe8H,SACrC2D,GACAtL,EAAM/yD,SAAS5F,SAASo1D,IAE5B9hF,KAAK4wF,2BAA2BH,EAAaC,EAAeC,IAEhEH,qCAAsC,SAASH,EAAO1L,GAClD,IAAIkM,EAAY,eAAa,OAAgB7wF,KAAKs0B,MAClD,OAAa9F,IAAI6hE,EAAOQ,GACxB,OAAaviE,GAAG+hE,EAAOQ,EAAW5hE,IAC9BjvB,KAAK8kF,qBAAqBH,EAAKO,eAAen3B,SAAK,EAAQ9+B,MAGnE2hE,2BAA4B,SAASH,EAAaC,EAAeC,GAC7DD,EAAc9tB,OAAO+tB,GACrBF,EAAY7tB,QAAQ+tB,IAExBP,uBAAwB,SAASzL,EAAMx9B,EAAOl4B,GAC1C,IAAIo2D,EAAQrlF,KAAK+kF,gBAAgBJ,GAC7BmM,GAAgBzL,EAAM1mF,QAAUwoD,GAASk+B,EAAMzwD,GAAG,WACtD,GAAI50B,KAAK8uB,OAAO,yBAA2BgiE,EAAc,CACrD,IAAI3H,EAAanpF,KAAKuvF,SAAS5K,EAAKO,eAAe6L,WAC/C5H,GACAnpF,KAAKowF,uBAAuBjH,EAAYhiC,EAAOl4B,GAGvD,GAAKjvB,KAAKitF,2BAGH,GAAIjtF,KAAKiwF,yBAAyB5K,GAAQ,CAC7C,IAAI2L,EAAoB3L,EAAMzzD,SAAS,IAAIvG,OAAOm3D,KAC9CyO,EAAsB5L,EAAMzzD,SAAS,IAAIvG,OAAOk3D,KACpDviF,KAAK4wF,2BAA2BI,EAAmBC,EAAqB9pC,QANvC,CACjC,IAAIkpC,EAAQhL,EAAMzzD,SAAS,IAAIvG,OAAOi3D,KACtC+N,EAAM/5D,YAAYqsD,GAAqCx7B,GAM3D,IAAIilC,EAAiB/G,EAAMzzD,SAAS,IAAIvG,OAAOu2D,KAC3CsP,EAAsB9E,EAAeztF,OAAS,EAC9CwyF,EAAqB,IAAI,OAC7B,OAAKhqC,GAAS+pC,IAAwB9E,EAAex3D,GAAG,WACpD50B,KAAKoxF,sBAAsBzM,EAAMx9B,EAAOl4B,EAAGkiE,GACpCA,EAAmBluD,WAE1B,IAAM0hD,EAAKO,eAAe0F,aAAajsF,SAAWqB,KAAK8oF,kBAAoB9oF,KAAK2oF,6BAChF3oF,KAAKqxF,2BAA2B1M,EAAMx9B,EAAOl4B,EAAGkiE,GACzCA,EAAmBluD,YAE9BjjC,KAAKguF,gBAAgB3I,EAAOV,EAAM3kF,KAAKsuF,eAAe3J,IACtD3kF,KAAK0tE,0BACL1tE,KAAKoxF,sBAAsBzM,EAAMx9B,EAAOl4B,EAAGkiE,GACpCA,EAAmBluD,YAE9BouD,2BAA4B,SAAS1M,EAAMx9B,EAAOl4B,EAAGkiE,GACjD,IAAI9L,EAAQrlF,KAAK+kF,gBAAgBJ,GACjC3kF,KAAKuuF,iBAAiB5J,GAAMnuD,KAAKhV,IAC7B,IAAI8vE,EAAiBtxF,KAAKiuF,eAAetJ,GACzC3kF,KAAKguF,gBAAgB3I,EAAOiM,EAAgBtxF,KAAK4kF,aAAa4J,gBAAgBhtE,IACzEA,GAAUA,EAAM7iB,QAIrBqB,KAAK0tE,0BACL1tE,KAAKoxF,sBAAsBE,EAAgBnqC,EAAOl4B,EAAGkiE,IAJjDA,EAAmBj0D,aAO/BqxD,iBAAkB,SAAS5J,GACvB,GAAI3kF,KAAK2oF,2BAA4B,CACjC,IAAI4I,EAAavxF,KAAK4kF,aAAa6K,cAAc9K,GACjD,OAAO3kF,KAAK4oF,4BAA4B2I,GAAY/6D,KAAKqyD,IAChD7oF,KAAKwxF,gBAAgB3I,IACtB7oF,KAAKyxF,aAAa5I,KAI9B,OAAK7oF,KAAK8oF,kBAGV9oF,KAAKsoF,QAAQW,SAAW,CAACjpF,KAAK8uB,OAAO,gBAAiB61D,EAAKO,eAAen3B,KAC1E/tD,KAAK4+C,YAAYt6C,OAAOtE,KAAKspF,kBACtBtpF,KAAK4+C,YAAYqJ,OAAOzxB,KAAKqyD,IAC3B7oF,KAAKwxF,gBAAgB3I,IACtB7oF,KAAKyxF,aAAa5I,OANf,IAAK,QAAU3rD,QAAQ,IAAI+F,WAU1CuuD,gBAAiB,SAAS3I,EAAUrnE,GAChC,IAAIkwE,EAAgB1xF,KAAK2uD,MAAMk6B,EAAS,IACpC8I,EAAW3xF,KAAK4kF,aAAaqD,cACjC,QAASjoF,KAAK4kF,aAAa4F,aAAakH,EAAeC,IAE3DF,aAAc,SAAS5I,GACnB7oF,KAAK8uB,SAAStN,MAAQxhB,KAAK8uB,OAAO,SAASzD,OAAOw9D,GAClD7oF,KAAKqoF,oBAET+I,sBAAuB,SAASzM,EAAMx9B,EAAOl4B,EAAGkiE,GAC5C,IAAI9L,EAAQrlF,KAAK+kF,gBAAgBJ,GAC7ByH,EAAiB/G,EAAMzzD,SAAS,IAAIvG,OAAOu2D,KAC3C+C,GAAQwM,GAAsB,IAAM/E,EAAeztF,QACnDwyF,EAAmBj0D,UAEvBkvD,EAAe1/D,SAASo1D,IACxB,IAAI8P,EAAa,eAAUxF,GAC3ByF,GAAA,KAAGC,KAAK1F,GAAgB,GACxByF,GAAA,KAAGE,QAAQ3F,EAAgB,CACvBhuF,KAAM,SACN6mB,SAAUjlB,KAAK8uB,OAAO,oBAAsB,IAAM,EAClD3J,KAAM,CACF/G,UAAW+oC,EAAQ,EAAIyqC,GAE3BtsE,GAAI,CACAlH,UAAW+oC,EAAQyqC,EAAa,GAEpC9sE,SAAU,WACNsnE,EAAe36D,IAAI,YAAa,QAChC26D,EAAe91D,YAAYwrD,GAA6B36B,GACxDnnD,KAAKwxB,QAAQ,WAAY21B,EAAOk+B,GAChCrlF,KAAKigE,gBAAgB54B,SACrBrnC,KAAKgyF,+BAA+B7qC,EAAOw9B,EAAM11D,GAC7CkiE,GACAA,EAAmBj0D,WAEzBhJ,KAAKl0B,SAGfgyF,+BAAgC,SAASzqD,EAAYo9C,EAAM11D,GACvD,GAAKjvB,KAAKkoF,aAAavD,KAAS3kF,KAAKssF,iCAArC,CAGA,IAAI55E,EAAa60B,EAAa,iBAAmB,kBACjD,GAAI,eAAUtY,GACVjvB,KAAKiyF,oBAAoBhjE,EAAGvc,EAAY,CACpCiyE,KAAM3kF,KAAK4kF,aAAa6K,cAAc9K,SAEvC,CACH,IAAIjiF,EAAS1C,KAAK+kF,gBAAgBJ,GAClC3kF,KAAKkyF,kBAAkBxvF,EAAQgQ,EAAY,CACvCuZ,MAAOgD,EACP01D,KAAM3kF,KAAK4kF,aAAa6K,cAAc9K,QAIlDyK,oBAAqB,SAAS/J,EAAO8M,GACjC,IAEQC,EAFJC,EAAiBhN,EAAM93D,KAAK,IAAIlC,OAAOw2D,KACvCwQ,EAAe1zF,SAEf,QAAUyzF,EAAwB,QAAc7qB,YAAY8qB,UAAoB,IAAWD,GAAiCA,EAAsBtjE,OAAO,WAAW,IAExK,IAAIwjE,EAAcjN,EAAMzzD,SAAS,IAAIvG,OAAOk3D,GAA4B,MAAMl3D,OAAOi3D,KACjF6P,EACAG,EAAYv/E,QAGhBu/E,EAAYnjE,YAAYmzD,IACxB+C,EAAM34D,SAASq1D,MAEnBwQ,uBAAwB,WACpB,IAAI9yB,EAAaz/D,KAAKigE,gBACtB,OAAOR,EAAa,eAAEA,EAAWxkC,WAAaj7B,KAAKk1B,YAEvD+tC,eAAgB,WACZ,IAAIzhD,EAAQxhB,KAAK8uB,OAAO,SACpBtN,GAASA,EAAM7iB,SACfqB,KAAKwyF,yBAA0B,GAEnCxyF,KAAKk1B,YAET6yD,qBAAsB,SAASl2D,GAC3BA,EAAaA,GAAc7xB,KAAK6uB,WAAWtB,KAAK,IAAIlC,OAAOu2D,KAAuB9zD,QAClF9tB,KAAK8nF,gBAAkB,eAAE,SAASp7D,SAASk2D,IAC3C,IAAI5kF,EAAQgC,KAAK4kF,aAAa6N,gBAC9BzyF,KAAK8zB,iBAAiB9zB,KAAK8nF,gBAAiB,QAAU,CAClD9pF,MAAOA,EACPmO,YAAa,CACT,aAAc,cAElB2H,KAAM9T,KAAK8uB,OAAO,iBAClB1R,eAAgBpd,KAAK0yF,iCAAiCx+D,KAAKl0B,QAE/DA,KAAKytF,qBAAqBztF,KAAK8nF,gBAAiB9pF,GAChD6zB,EAAW8gE,OAAO3yF,KAAK8nF,kBAE3B4K,iCAAkC,SAAS1kE,GACvChuB,KAAK4yF,iBAAiB5kE,GACtBhuB,KAAKonF,2BAA2Bp5D,EAAKhwB,QAEzC40F,iBAAkB,SAAS5kE,GACvBhuB,KAAK4kF,aAAaiO,gBAAgB7kE,EAAKhwB,OACvCgC,KAAK8yF,iBACL9yF,KAAKk/E,yBAETsO,gBAAiB,SAASnI,EAAOV,GAC7B,IAAIoO,EAAY,eAAE,SAAS18D,SAASgvD,GACpCrlF,KAAK8zB,iBAAiBi/D,EAAW,QAAU,CACvC/0F,MAAO2mF,EAAKO,eAAe5H,SAC3BlgE,eAAgBpd,KAAKgzF,qBAAqB9+D,KAAKl0B,MAC/Cgd,mBAAmB,EACnB7Q,YAAa,CACT,aAAc,eAElBF,SAAUjM,KAAKizF,gBAAgBtO,MAGvC8I,qBAAsB,SAASpI,EAAOrnF,GAClCqnF,EAAM/uD,YAAYysD,KAAuB/kF,IAE7Ck1F,yBAA0B,SAASvO,EAAMx9B,GACrC,IAAIk+B,EAAQrlF,KAAK+kF,gBAAgBJ,GAC7BjmB,EAAQ2mB,EAAM93D,KAAK,IAAMy0D,IAAYzyD,GAAG,GAG5C,GAFAvvB,KAAK4kF,aAAauO,wBAAwBxO,EAAKO,eAAen3B,IAAK5G,GACnEuX,EAAMpoC,YAAYwsD,KAAwB37B,GACtCnnD,KAAKskF,kBAAmB,CACxB,IAAI8O,EAAWpzF,KAAK8jF,qBAAqBuB,GACzC+N,EAAStkE,OAAO,aAAcq4B,KAGtCksC,mBAAoB,SAAStoE,EAAMuoE,EAAUt1F,GACzC,IAAI2mF,EAAO3kF,KAAK4kF,aAAaC,cAAc95D,GACvCuoE,IAAatzF,KAAK8uB,OAAO,iBACzB9uB,KAAKkzF,yBAAyBvO,EAAM3mF,IAG5Cg1F,qBAAsB,SAAS/jE,GAC3B,IAAIo2D,EAAQ,eAAEp2D,EAAEhC,SAASqF,OAAO,IAAMqvD,IAClCjjB,EAAQ2mB,EAAMzzD,SAAS,IAAMowD,IAC7Bj3D,EAAO/qB,KAAKmkF,aAAazlB,GACzBimB,EAAO3kF,KAAK+vF,kBAAkBrxB,GAC9B1gE,EAAQixB,EAAEjxB,MACV2mF,GAAQA,EAAKO,eAAe5H,WAAat/E,GAG7CgC,KAAKgkF,qBAAqBhmF,EAAO+sB,EAAMkE,EAAEhD,QAE7C4/D,mBAAoB,WAChB,MAAO,WAAa7rF,KAAK8uB,OAAO,kBAEpCi9D,sBAAuB,WACnB,OAAO/rF,KAAK8uB,OAAO,yBAA2B,WAAa9uB,KAAK8uB,OAAO,kBAE3EykE,sBAAuB,SAAShC,EAAYiC,EAAmB1yB,GAC3D,IAAIya,EAAWiY,EAAkBjxF,QAAQgvF,EAAWxjC,KAYpD,OAXIwtB,GAAY,GACZiY,EAAkBpsD,OAAOm0C,EAAU,GAEnCza,GACA,eAAKywB,EAAW3/D,SAAU,SAAS+F,EAAGs3D,GAClCjvF,KAAKuzF,sBAAsBtE,EAAWuE,GAAmB,IAC3Dt/D,KAAKl0B,OAEPuxF,EAAWj/D,QACXtyB,KAAKuzF,sBAAsBhC,EAAWj/D,OAAQkhE,GAE3C,IAAMA,EAAkB70F,QAEnC80F,gBAAiB,SAAS9O,GACtB,IAAIsH,EAAoBjsF,KAAK8uB,OAAO,qBAChC4kE,EAAe1zF,KAAK6rF,qBACpB2H,EAAoBxzF,KAAK2zF,sBAC7B,GAAK1H,EAGL,OAAIyH,EACO,IAAMF,EAAkB70F,OAExBqB,KAAKuzF,sBAAsB5O,EAAKO,eAAeqM,WAAYiC,EAAkBhxF,SAAS,IAGrGwhF,qBAAsB,SAAShmF,EAAOsxF,EAAahmB,GAC/C,IAAIqb,EAAO3kF,KAAKuvF,SAASD,GACzB,IAAK3K,IAAQ,IAAUA,EAAK9yE,QACxB,OAAO,EAEX,GAAI8yE,EAAKO,eAAe5H,WAAat/E,EACjC,OAAO,EAEX,IAAKA,GAASgC,KAAKyzF,gBAAgB9O,GAAO,CACtC,GAAI3kF,KAAKskF,kBAAmB,CACxB,IAAIe,EAAQrlF,KAAK+kF,gBAAgBJ,GACjC3kF,KAAK8jF,qBAAqBuB,GAAOv2D,OAAO,SAAS,GAErD,OAAO,EAEX,GAAI9wB,GAASgC,KAAK6rF,qBAAsB,CACpC,IAAItP,EAAev8E,KAAK2zF,sBACxB,eAAKpX,EAAc,CAACt6E,EAAO8rD,KACvB/tD,KAAK4kF,aAAauD,gBAAgBp6B,GAAK,GACvC/tD,KAAK8yF,iBACL9yF,KAAK4zF,0BAA0B5zF,KAAKuvF,SAASxhC,MAGrD/tD,KAAK4kF,aAAauD,gBAAgBxD,EAAKO,eAAen3B,IAAK/vD,GAC3D,IAAIy0F,EAAgBzyF,KAAK4kF,aAAa6N,gBAClCoB,EAA2B7zF,KAAKwnF,qBAAuBxnF,KAAK8nF,gBAAgBhH,WAAW,YAAYhyD,OAAO,WAAa2jE,EAO3H,OANAzyF,KAAK8yF,iBACL9yF,KAAK4zF,0BAA0BjP,EAAMrb,GACrCtpE,KAAKk/E,wBACD2U,GACA7zF,KAAKonF,2BAA2BqL,IAE7B,GAEXmB,0BAA2B,SAASjP,EAAMrb,GACtC,IAAIwqB,EAAYxqB,GAAWtpE,KAAK+zF,uBAAuBpP,EAAKO,eAAen6D,MACvEipE,EAAU1qB,EAAUtpE,KAAKiyF,oBAAsBjyF,KAAKkyF,kBACxD8B,EAAQ76D,KAAKn5B,KAAM8zF,EAAW,yBAA0B,CACpDnP,KAAM3kF,KAAK4kF,aAAa6K,cAAc9K,GACtC5yC,SAAU4yC,EAAKO,eAAen6D,QAGtC+4D,qBAAsB,SAASuB,GAC3B,OAAOA,EAAMzzD,SAAS,gBAAgBkvD,WAAW,aAErDgS,eAAgB,WACZ,IAAI9N,EAAQ,GAaZ,GAZA,eAAKhlF,KAAK4kF,aAAaqP,UAAW,CAACt8D,EAAGgtD,KAClC,IAAIU,EAAQrlF,KAAK+kF,gBAAgBJ,EAAMK,GACnCkP,EAAgBvP,EAAKO,eAAe5H,SACnC+H,EAAM1mF,SAGXqB,KAAKytF,qBAAqBpI,EAAO6O,GACjCl0F,KAAKwxB,QAAQ,WAAY0iE,EAAe7O,GACpCrlF,KAAKskF,mBACLtkF,KAAK8jF,qBAAqBuB,GAAOv2D,OAAO,QAASolE,MAGrDl0F,KAAKwnF,oBAAqB,CAC1B,IAAI2M,EAAoBn0F,KAAK8nF,gBAAgBhH,WAAW,YACxDqT,EAAkBrlE,OAAO,sBAAkB,GAC3CqlE,EAAkBrlE,OAAO,QAAS9uB,KAAK4kF,aAAa6N,iBACpD0B,EAAkBrlE,OAAO,iBAAkB9uB,KAAK0yF,iCAAiCx+D,KAAKl0B,SAG9FmvF,oBAAqB,SAASxK,EAAMU,GAChC,GAAKA,EAAL,CAGA,IAAI8D,EAAanpF,KAAK4kF,aAAa4F,aAAa7F,EAAKO,eAAe6L,WAChEqD,EAAc,eAAE/O,EAAM1pC,QAAQ,IAAMgmC,IAAY,IACpD,GAAI3hF,KAAKskF,kBAAmB,CACxB,IAAI+P,EAAclL,EAAWjE,eAAe5H,SAC5Ct9E,KAAK8jF,qBAAqBsQ,GAAatlE,OAAO,QAASulE,GACvDr0F,KAAKytF,qBAAqB2G,EAAaC,GAEvClL,EAAWjE,eAAe6L,YAAc/wF,KAAK8uB,OAAO,cACpD9uB,KAAKmvF,oBAAoBhG,EAAYiL,KAG7CE,sBAAuB,SAASR,EAAW5nE,EAAQ69C,GAC/C,IAAIuZ,EAAe,eAAEwQ,GAAWp/D,QAAQ,IAAMitD,IAAY/vD,SAAS,IAAMowD,IACzE,OAAO91D,EAAO,OAAAiB,EAAA,MAAOntB,KAAKu0F,kBAAkBjR,GAAevZ,KAE/DyqB,wBAAyB,SAASvlE,GAC9BjvB,KAAKy0F,oBAAoB,oBAAqBxlE,IAElDylE,iBAAkB,SAASzlE,GACvBjvB,KAAKy0F,oBAAoB,aAAcxlE,IAE3CwlE,oBAAqB,SAAS5D,EAAW5hE,GACrC,IAAI01D,EAAO3kF,KAAK+vF,kBAAkB9gE,EAAEyM,eACpC17B,KAAKiyF,oBAAoBhjE,EAAG4hE,EAAW,CACnClM,KAAM3kF,KAAK4kF,aAAa6K,cAAc9K,MAG9CgQ,WAAY,WACR,OAAO3S,IAEX4S,aAAc,WACV,OAAOvS,IAEXwS,kBAAmB,WACf,IAAIC,EAAiB90F,KAAK0nF,iBAC1B1nF,KAAK2nF,kBAAkBmN,GACvB,IACIC,oBAAqBA,EACrBC,aAAcA,EACdC,0BAA2BA,EAC3BC,aAAcA,GACdl1F,KAAKm1F,yBACT,OAAa7mE,GAAGwmE,EAAgBC,EAAqBC,EAAc/lE,IAC/DjvB,KAAKujF,kBAAkBt0D,EAAG,eAAEA,EAAEyM,kBAElC,OAAapN,GAAGwmE,EAAgBG,EAA2BC,EAAcjmE,IACrEjvB,KAAKo1F,wBAAwBnmE,MAGrC04D,kBAAmB,SAASuC,GACxB,IACI6K,oBAAqBA,EACrBC,aAAcA,EACdC,0BAA2BA,EAC3BC,aAAcA,GACdl1F,KAAKm1F,yBACT,OAAa3mE,IAAI07D,EAAgB6K,EAAqBC,GACtD,OAAaxmE,IAAI07D,EAAgB+K,EAA2BC,IAEhEC,uBAAwB,WACpB,IAAIH,EAAe,IAAI3pE,OAAOrrB,KAAK20F,cAC/BO,EAAe,IAAI7pE,OAAOs2D,GAAY,OAAOt2D,OAAOu3D,IACpDmS,EAAsB,eAAa,OAAgB/0F,KAAKs0B,MACxD2gE,EAA4B,eAAat5D,EAAA,KAAcC,KAAM57B,KAAKs0B,MACtE,MAAO,CACHygE,oBAAqBA,EACrBC,aAAcA,EACdC,0BAA2BA,EAC3BC,aAAcA,IAGtBG,WAAY,SAAStrB,GACjB,IAAI/7C,EAAO+7C,EAAW/7C,KAAK,GACvBtrB,EAASsrB,EAAK/B,MAAMvpB,OAAO,IAAMsrB,EAAK/B,MAAMvpB,OAC5CisF,EAAOjsF,EAAO4yF,uBAAuBpS,IAAgB,GACrDl1D,EAAK+jB,SAASo5B,KAAOwjB,GACrBA,EAAKtL,SAGbE,kBAAmB,SAASt0D,EAAGyvC,GAC3B,IAAI3sB,EAAW/xC,KAAKmkF,aAAazlB,GAC7BimB,EAAO3kF,KAAK+vF,kBAAkBrxB,GAClC1+D,KAAKiyF,oBAAoBhjE,EAAG,cAAe,CACvC01D,KAAM3kF,KAAK4kF,aAAa6K,cAAc9K,IACvC,CACC4Q,cAAev1F,KAAKq1F,aAEpBr1F,KAAK8uB,OAAO,mBAAqBG,EAAEumE,sBACnCx1F,KAAKgkF,sBAAsBW,EAAKO,eAAe5H,SAAUvrC,EAAU9iB,IAG3EwmE,4BAA6B,SAASC,EAAQC,GAC1C,IAAIntB,EAAYmtB,EAChB,MAAOntB,GAAa,EAAG,CACnB,IAAI9J,EAAQ,eAAEg3B,EAAOltB,IACrBxoE,KAAKgkF,sBAAqB,EAAMtlB,EAAMnxC,KAAK,IAAMy0D,IAAYruD,IAAI,IACjE60C,MAGRotB,2BAA4B,SAASF,EAAQC,GACzC,IAAIh3F,EAAS+2F,EAAO/2F,OAChB6pE,EAAYmtB,EAChB,MAAOntB,EAAY7pE,EAAQ,CACvB,IAAI+/D,EAAQ,eAAEg3B,EAAOltB,IACrBxoE,KAAKgkF,sBAAqB,EAAMtlB,EAAMnxC,KAAK,IAAMy0D,IAAYruD,IAAI,IACjE60C,MAGR75C,MAAO,WACC3uB,KAAKwnF,oBACL,OAAah4D,QAAQxvB,KAAK8nF,gBAAiB,SAG/C9nF,KAAKk1B,YAET2gE,gBAAiB,SAAS5mE,GACtBjvB,KAAK81F,kBAAkB7mE,GAAG,GAC1B,IAAI8mE,EAAkB,eAAE9mE,EAAEvsB,QAAQiuB,SAASiyD,IAC3C,GAAImT,GAAmB/1F,KAAK8uB,OAAO,kBAM/B,OALA2M,aAAaz7B,KAAKg2F,6BAClBh2F,KAAKg2F,uBAAyBx6D,WAAW,KACrC,IAAIvO,EAAU8oE,EAAkB,eAAiB/1F,KAAK8nF,iBAAmB,eAAE9nF,KAAK8uB,OAAO,mBACvF9uB,KAAKi2F,gBAAgBhpE,MAI7B,IAAIipE,EAAcl2F,KAAKm2F,iBACvBn2F,KAAK8uB,OAAO,iBAAkB,eAAiBonE,EAAYxhE,QAAQ,IAAMitD,OAE7EyT,wBAAyB,SAASnmE,GAC9B,GAAKjvB,KAAK8uB,OAAO,qBAAjB,CAGA,IAAIlC,EAAU,eAAEqC,EAAEvsB,QAAQgyB,QAAQ,IAAMitD,GAAa,MAAQiB,IAC7D,GAAKh2D,EAAQjuB,OAAb,CAGA,IAAI2wF,EAAc1iE,EAAQ+D,SAASmyD,IAAwB,KAAOl2D,EAClE5sB,KAAK8uB,OAAO,iBAAkB,eAAiBwgE,OAEnD8G,sBAAuB,SAASC,GAC5B,OAAOA,EAAOjzD,KAAI,WACd,OAAO,eAAEpjC,MAAM4xB,SAAS,IAAMowD,IAAYrxD,SAASmyD,QAG3DwT,WAAY,SAAS7wE,EAAUwJ,GAC3B,IAAIsnE,EAAW,KACXC,EAAa,OACbC,EAAc,QACdC,EAAa,OACbC,EAAa32F,KAAK8uB,OAAO,cAAgB,QAAU,OACnD8nE,EAAc52F,KAAK8uB,OAAO,cAAgB,OAAS,QACvD9uB,KAAK6uB,WAAWtB,KAAK,IAAIlC,OAAOu2D,KAAuBwD,MAAK,WACxDyM,GAAA,KAAGC,KAAK9xF,MAAM,MAElB,IAAI01F,EAAS11F,KAAK62F,gBAClB,GAAKnB,GAAWA,EAAO/2F,OAGvB,OAAQ8mB,GACJ,KAAK8wE,EACD,IAAIO,EAAY92F,KAAK+2F,UAAUrB,GAC/B11F,KAAK8uB,OAAO,iBAAkB,eAAiBgoE,IAC/C,IAAIE,EAAkBh3F,KAAKi3F,oBAAoBH,GAC/C92F,KAAKigE,gBAAgB+I,gBAAgBguB,GACjC/nE,EAAEgf,UAAYjuC,KAAKskF,mBACnBtkF,KAAKgkF,sBAAqB,EAAMgT,GAEpC,MACJ,KAAKR,EACD,IAAIU,EAAYl3F,KAAKm3F,UAAUzB,GAC/B11F,KAAK8uB,OAAO,iBAAkB,eAAiBooE,IAC/C,IAAIE,EAAkBp3F,KAAKi3F,oBAAoBC,GAC/Cl3F,KAAKigE,gBAAgB+I,gBAAgBouB,GACjCnoE,EAAEgf,UAAYjuC,KAAKskF,mBACnBtkF,KAAKgkF,sBAAqB,EAAMoT,GAEpC,MACJ,KAAKX,EACD,IAAIY,EAAa3B,EAAO5nE,QACpBmB,EAAEgf,UAAYjuC,KAAKskF,mBACnBtkF,KAAKy1F,4BAA4BC,EAAQA,EAAOzzF,MAAMjC,KAAK+2F,UAAUrB,KAEzE11F,KAAK8uB,OAAO,iBAAkB,eAAiBuoE,IAC/Cr3F,KAAKigE,gBAAgB+I,gBAAgBhpE,KAAKi3F,oBAAoBI,IAC9D,MACJ,KAAKX,EACD,IAAIY,EAAY5B,EAAO3yB,OACnB9zC,EAAEgf,UAAYjuC,KAAKskF,mBACnBtkF,KAAK41F,2BAA2BF,EAAQA,EAAOzzF,MAAMjC,KAAKm3F,UAAUzB,KAExE11F,KAAK8uB,OAAO,iBAAkB,eAAiBwoE,IAC/Ct3F,KAAKigE,gBAAgB+I,gBAAgBhpE,KAAKi3F,oBAAoBK,IAC9D,MACJ,KAAKV,EACD52F,KAAKu3F,0BACL,MACJ,KAAKZ,EACD32F,KAAKw3F,4BACL,MACJ,QAEI,YADAx3F,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAItCyyF,oBAAqB,SAAS5R,GAC1B,OAAOA,EAAM93D,KAAK,IAAMy0D,IAAYruD,IAAI,IAE5CkjE,cAAe,WACX,OAAO72F,KAAK6uB,WAAWtB,KAAK,IAAMo0D,IAAYv+C,IAAI,YAEtDm0D,wBAAyB,WACrB,IAAIE,EAAe,eAAEz3F,KAAK8uB,OAAO,mBACjC,GAAK2oE,EAAa94F,SAAU84F,EAAa9mE,SAASoxD,IAAlD,CAGA,IAAIsD,EAAQoS,EAAalqE,KAAK,IAAIlC,OAAOu2D,KAAuBryD,GAAG,GACnE,GAAI81D,EAAM10D,SAASmxD,IAA8B,CAC7C,IAAIoV,EAAYl3F,KAAKm3F,UAAUn3F,KAAKo2F,sBAAsBp2F,KAAK62F,kBAG/D,OAFA72F,KAAK8uB,OAAO,iBAAkB,eAAiBooE,SAC/Cl3F,KAAKigE,gBAAgB+I,gBAAgBhpE,KAAKi3F,oBAAoBC,IAGlE,IAAIvS,EAAO3kF,KAAK+vF,kBAAkB0H,EAAa7lE,SAAS,IAAMowD,KAC9DhiF,KAAK8kF,qBAAqBH,GAAM,KAEpC+S,2BAA4B,SAASrS,GACjC,GACIA,EAAQA,EAAM/yD,SAASoC,QAAQ,IAAMitD,UAChC0D,EAAMzzD,SAAS,uCAAuCjzB,QAC/D,OAAO0mF,GAEXmS,0BAA2B,WACvB,IAAIC,EAAe,eAAEz3F,KAAK8uB,OAAO,mBACjC,GAAK2oE,EAAa94F,OAAlB,CAGA,IAAIg5F,EAAcF,EAAalqE,KAAK,IAAIlC,OAAOu2D,KAAuBryD,GAAG,GACzE,IAAKkoE,EAAa9mE,SAASoxD,KAAY4V,EAAYhnE,SAASmxD,IAA8B,CACtF,IAAI6C,EAAO3kF,KAAK+vF,kBAAkB0H,EAAa7lE,SAAS,IAAMowD,KAC9DhiF,KAAK8kF,qBAAqBH,GAAM,OAC7B,CACH,IAAIiT,EAAgB53F,KAAK03F,2BAA2BD,GACpDG,EAAcj5F,QAAUqB,KAAK8uB,OAAO,iBAAkB,eAAiB8oE,IACvE53F,KAAKigE,gBAAgB+I,gBAAgBhpE,KAAKi3F,oBAAoBW,OAGtE3S,cAAe,SAASjnF,GACpB,OAAO,eAASA,GAAS65F,UAAU75F,GAASA,GAEhDgyF,cAAe,SAAShyF,GACpB,OAAO,eAASA,GAAS85F,UAAU95F,GAASA,GAEhDiiE,cAAe,WACX,OAAOjgE,KAAKgiE,aAEhB+P,iBAAkB,WACd,IAAIz3D,EAAW,IAAI,OACfmlD,EAAaz/D,KAAKigE,gBAQtB,OAPIR,EACAA,EAAWp4B,SAAS7Q,KAAK,KACrBlc,EAASy9E,YAAY/3F,QAGzBsa,EAASy9E,YAAY/3F,MAElBsa,EAAS2oB,WAEpB+0D,WAAY,SAAS1I,GACjB,OAAOtvF,KAAKgkF,sBAAqB,EAAMsL,IAE3C2I,aAAc,SAAS3I,GACnB,OAAOtvF,KAAKgkF,sBAAqB,EAAOsL,IAE5C4I,WAAY,SAAS5I,GACjB,OAAOtvF,KAAK8kF,qBAAqBwK,GAAa,IAElD6I,aAAc,SAAS7I,GACnB,OAAOtvF,KAAK8kF,qBAAqBwK,GAAa,IAElD8I,SAAU,WACN,OAAOp4F,KAAK4kF,aAAayT,gBAE7BC,iBAAkB,WACd,OAAOt4F,KAAK2zF,sBAAsB90F,IAAIkvD,IAClC,IAAI42B,EAAO3kF,KAAK4kF,aAAa4F,aAAaz8B,GAC1C,OAAO/tD,KAAK4kF,aAAa6K,cAAc9K,MAG/CgP,oBAAqB,WACjB,OAAO3zF,KAAK4kF,aAAa2T,wBAE7B9Y,UAAW,WACHz/E,KAAKwnF,oBACLxnF,KAAK8nF,gBAAgBhH,WAAW,YAAYhyD,OAAO,SAAS,GAE5D9uB,KAAK4yF,iBAAiB,CAClB50F,OAAO,KAInBw6F,YAAa,WACLx4F,KAAKwnF,oBACLxnF,KAAK8nF,gBAAgBhH,WAAW,YAAYhyD,OAAO,SAAS,GAE5D9uB,KAAK4yF,iBAAiB,CAClB50F,OAAO,KAInBy6F,yBAA0B,WACtBz4F,KAAKssF,kCAAmC,EACxCtsF,KAAK0tE,2BAETgrB,UAAW,WACP,IAAIxL,EAAQltF,KAAK4kF,aAAaqP,UAC1B0E,EAAoB,GACxB34F,KAAKssF,kCAAmC,EACxCY,EAAMh2D,QAAQytD,GAAQgU,EAAkBl5F,KAAKO,KAAK8kF,qBAAqBH,EAAKO,eAAen3B,KAAK,KAChG6qC,QAAQC,WAAWF,GAAmBtP,KAAK,KACvC,IAAIyP,EACJ,OAAO,QAAUA,EAAwB94F,KAAK+4F,yBAAsB,IAAWD,OAAwB,EAASA,EAAsB3/D,KAAKn5B,SAGnJg5F,YAAa,WACT,eAAKh5F,KAAK4kF,aAAaqU,uBAAwB,SAASthE,EAAGo2B,GACvD/tD,KAAK8kF,qBAAqB/2B,GAAK,IACjC75B,KAAKl0B,QAEXk5F,aAAc,SAASC,GACnB,IAAIxU,EAAO3kF,KAAKuvF,SAAS4J,GACzB,IAAKxU,EACD,OAAO,IAAK,QAAU9hD,SAASI,UAEnC,IAAIm2D,EAAmB,GACnBjQ,EAAaxE,EAAKO,eAAeqM,WAAWj/D,OAChD,MAAO,MAAQ62D,EACNA,EAAW6D,UACZoM,EAAiB35F,KAAK0pF,EAAWp7B,KAErCo7B,EAAaA,EAAW72D,OAE5B,IAAI+mE,EAAiB,IAAI,OAUzB,OATAr5F,KAAKs5F,aAAaF,EAAiBniC,WAAW/zB,OAAO,KACjD,IAAIrU,EAAW7uB,KAAK+kF,gBAAgBJ,GAChC91D,GAAYA,EAASlwB,QACrBqB,KAAKu5F,uBAAuB1qE,EAAS8E,IAAI,IACzC0lE,EAAen8D,WAEfm8D,EAAex2D,WAGhBw2D,EAAep2D,WAE1Bs2D,uBAAwB,SAAS5vB,GAC7B,IAAIlK,EAAaz/D,KAAKigE,iBAElBomB,gBAAiBA,EACjB11E,WAAYA,GACZ3Q,KAAK8uB,SACLy0B,EAAiB,CACjBhgC,IAAK,EACLH,KAAM,GAENo2E,EAAiB,gBAAkB,QAA0B7vB,GACjE,GAAI0c,IAAoB,QAAoB,CACxC,IAAIoT,EAAmB,eAAEh6B,EAAWhiD,aAAakW,IAAI,GACrD4vB,EAAengC,KAAOzS,EAAa6oF,EAAep2E,KAAOumD,EAAcjgC,YAAc+vD,EAAiBv5D,YAAcs5D,EAAep2E,KAEnIijE,IAAoB,UACpB9iC,EAAehgC,IAAMi2E,EAAej2E,KAExCk8C,EAAW17B,SAASwf,IAExB+1C,aAAc,SAASI,GACnB,IAAKA,GAAgB,IAAMA,EAAa/6F,OACpC,OAAO,IAAK,QAAUu+B,UAAU+F,UAEpC,IAAI02D,EAAiB,IAAI,OACrBC,EAAmBF,EAAa76F,IAAIkvD,GAAO/tD,KAAKk4F,WAAWnqC,IAE/D,OADA,OAAKxpD,MAAM,OAAGq1F,GAAkBpjE,KAAK,IAAMmjE,EAAez8D,WAAW+L,KAAK,IAAM0wD,EAAe92D,UACxF82D,EAAe12D,WAE1B42D,SAAU,WACN75F,KAAKk1B,WACLuG,aAAaz7B,KAAKg2F,wBAClBh2F,KAAKy4F,yBAA2B,QAGzB,MC7+Cf,QAAeqB,eAAe,SAC9B,IAAI,GAAe,cACf,GAAuB,GAAGzuE,OAAO,GAAc,mBAC/C0uE,GAAiB,GAAannE,QAAQ,SAAgBA,QAAQ,CAC9DonE,iBAAkB,SAAS5lE,GACvB,MAAO,GAAG/I,OAAO,GAAc,KAAKA,OAAO+I,IAE/Cg0D,eAAgB,SAASp6D,GACrB,OAAQA,EAAKra,MACT,IAAK,cACG3T,KAAKskF,mBAAqBtkF,KAAK+rF,yBAC/B/rF,KAAKgoF,mBAEThoF,KAAKqoF,mBACLroF,KAAKi6F,gBACLj6F,KAAKk6F,oBACLl6F,KAAK8uB,OAAO,iBAAkB,MAC9B,MACJ,IAAK,aACD9uB,KAAKqoF,mBACLroF,KAAKwoF,UACL,MACJ,IAAK,aACDxoF,KAAK8uB,OAAO,wBAA0B9uB,KAAKm6F,qBAAuBn6F,KAAKqoF,mBACvEroF,KAAKwoF,UACL,MACJ,QACIxoF,KAAKk1B,SAASlH,KAG1BmsE,mBAAoB,WAChBn6F,KAAKyzB,8BAA8B,wBAAwB,GAC3DzzB,KAAKqoF,mBACLroF,KAAKyzB,8BAA8B,wBAAwB,IAE/D+3D,uBAAwB,WACpB,OAAO,OAAAr+D,EAAA,MAAOntB,KAAKk1B,WAAY,CAC3BklE,YAAap6F,KAAK8uB,OAAO,eACzBxV,WAAYtZ,KAAK8uB,OAAO,eAAiB,WACzCtV,WAAYxZ,KAAK8uB,OAAO,iBAGhCurE,kBAAmB,WACf,OAAOr6F,KAAK6uB,WAAWtB,KAAK,IAAIlC,OAAO,KAAuByC,SAElEmsE,cAAe,WACX,GAAIj6F,KAAKs6F,cAAe,CACpB,IAAI1kF,EAAgB5V,KAAKu6F,0BACzBv6F,KAAKs6F,cAAcxrE,OAAOlZ,KAGlCskF,kBAAmB,WACf,IACIM,EADA3oE,EAAa7xB,KAAKq6F,oBAElBxoE,EAAWlzB,SACXkzB,EAAWsC,QACXqmE,EAAYx6F,KAAK4kF,aAAauH,eAC9BnsF,KAAKmuC,oBAAoBqsD,GACzBx6F,KAAKgrF,aAAan5D,EAAY2oE,GAC9Bx6F,KAAK0tE,4BAGb+sB,aAAc,WACV,OAAOz6F,KAAK0nF,eAAe1nF,KAAK8uB,OAAO,mBAE3C4rE,oBAAqB,WACjB16F,KAAK6uB,WAAWsF,SAEpBuzD,eAAgB,SAASiT,EAAcC,GACnC,IAAIpT,EAEJ,OADA,QAAUA,EAAoBoT,SAAqB,IAAWpT,IAAwCoT,EAAmB56F,KAAKwnF,qBAC1HoT,EACO56F,KAAKq6F,oBAEZr6F,KAAKgiE,aAAe24B,EACb,eAAE36F,KAAKgiE,YAAY/mC,WAEvBj7B,KAAKk1B,YAEhB2lE,gBAAiB,WACb76F,KAAK6uB,WAAWnC,SAAS1sB,KAAKulF,iBAElCpO,OAAQ,WACJn3E,KAAKk1B,WACLl1B,KAAK86F,sBAGb,gBAAkB,aAAcf,IACjB,UC/FA,MC+BXgB,GAAuB,iBACvBC,GAA8B,wBAC9BC,GAAuB,iBACvBC,GAA4B,sBAC5BC,GAA6B,uBAC7BC,GAA4B,2BAC5BC,GAA8B,6BAC9BC,GAA2B,iBAC3BC,GAA4B,yBAC5BC,GAA+B,CAAC,sBAAuB,UAAW,cAAe,UAAW,WAAY,aACxGC,GAAe,SAAS5oE,EAAM6oE,GAC9B,IAAIl6E,EAAQ,GACRm6E,EAAe9oE,EAAK8oE,eACpBC,EAAc/oE,EAAK/D,OAAO,qCAmB9B,OAlBI4sE,EAAe/8F,QACf,eAAK+8F,EAAgB,CAACz5F,EAAOD,KACzB,IAAI+oB,EAAO,CACPjX,KAAM9R,EAAOwT,QACb/B,SAAUzR,EAAOyR,SACjBoB,YAAa7S,EAAO6S,YACpBm4E,UAAU,EACVx0C,GAAIx2C,EAAOC,MACXgK,UAAU,IAAUjK,EAAO6S,YAC3Bi2E,SAAU,eAAU9oF,EAAO2U,WAAa3U,EAAO2U,UAAY,MAE3DklF,EAAyBD,GAAe55F,EAAOwyC,WAC/CmnD,IAAiBE,IACjB9wE,EAAKuyD,SAAWt7E,EAAO6P,SAE3B2P,EAAM/hB,KAAKsrB,KAGZvJ,GAEPs6E,GAAiC,CACjC,8BAA8BjtE,GAC1B,IAIIktE,EAJAlpE,EAAO7yB,KACPg8F,EAA2BnpE,EAAK2B,gBAAgBwmE,IAChDiB,EAAuBppE,EAAK/D,OAAO,yBACnCotE,EAA2BrtE,EAAStB,KAAK,IAAIlC,OAAO2wE,IAEpDC,EACKC,EAAyBv9F,OAW1Bu9F,EAAyBnpF,QAVzBgpF,EAAuB,eAAE,SAASrvE,SAASsvE,GAA0B3lE,SAASxH,GAC9EgE,EAAKiB,iBAAiBioE,EAAsB,QAAQ,CAChDroF,KAAM4nF,GACN,UACIzoE,EAAKgc,QAAQ,qBAAqBE,qBAEtC5hC,KAAM0lB,EAAK/D,OAAO,uBAClB63D,mBAAoB,MAM5BuV,EAAyBppF,QAGjC,cACI,IAAI4Y,EAAW1rB,KAAK6uC,QAAQ,YACxBv2B,EAAWtY,KAAK8uB,OAAO,0BAC3B,OAAO,eAAUxW,GAAYA,EAAW,CACpC6O,GAAI,eACJJ,GAAI,eACJK,GAAIsE,GAAYA,EAASuB,UACzB/F,UAAW,MACXG,OAAQ,QACRJ,eAAgB,SAIxBk1E,GAA0B,GAAQrnE,eAAelC,QAAQkpE,IACzDM,GAAuB,CACvBzlE,YAAa,OACb0lE,aAAc,MAAQC,GAAA,KAAQC,OAAOC,IACrC,4BACI,IAAI3pE,EAAO7yB,KACPy8F,EAAqB5pE,EAAK2B,gBAAgBumE,IAC1ClsE,EAAWgE,EAAK5F,UAAUP,SAAS+vE,GACnCC,EAAuB7pE,EAAK/D,OAAO,iBACnC6tE,EAAY,kBACZC,EAAiB,gBAAUD,GAC3BE,EAAa,gBAAgBF,GAC7BG,EAAiB,CACjBjrF,SAAS,EACToN,SAAS,EACTE,iBAAiB,EACjBrB,aAAa,EACbiB,eAAe,EACfQ,YAAa,CACTw9E,MAAON,GAEXn9E,aAAc,CAAC,CACXxL,KAAM4oF,EAAqBjkF,MAC3B9G,QAAS,MACT8T,SAAUm3E,GAAkBC,EAAa,SAAW,WAExDvkF,SAAUua,EAAK7C,cAAc,iBAAiBgtE,cAC9ClrF,MAAO4qF,EAAqB5qF,MAC5B7E,OAAQyvF,EAAqBzvF,OAC7B0D,WAAYkiB,EAAK/D,OAAO,cACxB,WACQ+D,EAAKwpE,gBACL,eAAE,QAAQltE,YAAY0D,EAAK2B,gBAAgBymE,MAGnDx9E,UAAWi/E,EAAqBj/E,WAEhCm/E,GAAkBC,EAClB,OAAA1vE,EAAA,MAAO2vE,EAAgB,CACnB39E,iBAAiB,IAGrB29E,EAAex9E,aAAaw9E,EAAex9E,aAAa3gB,QAAU,CAC9Ds+F,SAAU,UAGb,eAAUj9F,KAAKk9F,iBAQhBl9F,KAAKk9F,gBAAgBpuE,OAAOguE,IAP5BjqE,EAAKqqE,gBAAkBrqE,EAAKiB,iBAAiBjF,EAAU,QAAOiuE,GAC9DjqE,EAAKqqE,gBAAgB5uE,GAAG,gBAAiBN,IACjC,YAAcA,EAAKra,MACnBkf,EAAK8C,gBAAgBc,UAMjCz2B,KAAKm9F,sBAET,qBACI,IAAIxB,EAAe37F,KAAK27F,eACpByB,EAAoBp9F,KAAKg/B,mBAAmBo+D,oBAChDp9F,KAAKk9F,gBAAgB1rE,QAAQ,CACzB05C,KAAM,SACN/nD,MAAO,OAAoBplB,OAAO,mCAEtCiC,KAAKk9F,gBAAgBjT,WAAW3zD,YAAYt2B,KAAKw0B,gBAAgB4mE,KAA6BO,GAAcrlE,YAAYt2B,KAAKw0B,gBAAgB6mE,IAA8BM,GAC3K37F,KAAKk9F,gBAAgB9uD,WAAW1hB,SAAS1sB,KAAKw0B,gBAAgB0mE,KAC1DS,IAAiByB,GACjBp9F,KAAKk9F,gBAAgB9uD,WAAW1hB,SAAS1sB,KAAKw0B,gBAAgB2mE,MAGtE,YAAY5/E,GACR,GAAIvb,KAAKk9F,gBAAiB,CACtB,IAAIG,GAAcr9F,KAAK27F,eAClB37F,KAAKs9F,oBAAsB,SAAW/hF,EAEhC8hF,GACPr9F,KAAKu9F,eAFLv9F,KAAKw9F,oBAMjB,kBACI,IAAIntE,EAAIub,EAAIsW,EACRrvB,EAAO7yB,KACP6xB,EAAa7xB,KAAKk9F,gBAAgB9uD,WAClC/iC,EAAgBrL,KAAK8uB,OAAO,iBAC5B6sE,EAAe37F,KAAK27F,eACpBrU,EAAgB,eAAUj8E,EAAc2J,aAAe3J,EAAc2J,YAAc,QAAUqb,EAAKhlB,EAAckN,cAAW,IAAW8X,OAAK,EAASA,EAAGjY,QACvJI,EAAgB,eAAUnN,EAAcmN,eAAiBnN,EAAcmN,cAAgB,QAAUozB,EAAKvgC,EAAckN,cAAW,IAAWqzB,OAAK,EAASA,EAAGhzB,QAC3J6kF,EAAiB,CACjB/X,cAAe,QACf76E,oBAAoB,EACpBmS,mBAAmB,EACnB5P,mBAAmB,EACnBswF,aAAc,OACdljF,mBAAoB,OACpB+rE,UAAW,KACXe,cAAeA,EACf9uE,cAAeA,EACfmlF,oBAAqB,QAAUz7C,EAAK72C,EAAckN,cAAW,IAAW2pC,OAAK,EAASA,EAAGtsC,eAM7F,GAJI5V,KAAKq8F,iBACLoB,EAAejgE,oBAAqB,GAExC,OAAArQ,EAAA,MAAOswE,EAAgB9B,EAAe37F,KAAK49F,2BAA6B59F,KAAK69F,0BACzE79F,KAAKs9F,mBACAG,EAAenW,gBAChBmW,EAAerD,YAAc,IAEjCp6F,KAAKs9F,mBAAmBxuE,OAAO2uE,GAC/Bz9F,KAAKu9F,mBACF,CACHv9F,KAAKs9F,mBAAqBt9F,KAAK8zB,iBAAiBjC,EAAY,GAAU4rE,GACtEz9F,KAAKu9F,eACL,IAAI9qB,EAAY,EAChBzyE,KAAKs9F,mBAAmBhvE,GAAG,gBAAiBW,IACxC,IAAIwwC,EAAaxwC,EAAEgC,UAAUgvC,gBAC7BwS,EAAYhT,EAAWgT,cAE3BzyE,KAAKs9F,mBAAmBhvE,GAAG,eAAgBW,IACvC,eAAY,KACR,IAAIwwC,EAAaxwC,EAAEgC,UAAUgvC,gBAC7BR,EAAW17B,SAAS,CAChBvwB,EAAGi/D,IAEP5/C,EAAK8C,gBAAgBc,aAKrC,yBACI,IAAIimE,EAAuB18F,KAAK8uB,OAAO,iBACvC,MAAO,CACHrhB,WAAYivF,EAAqBvkF,eACjCtN,oBAAoB,EACpBmS,mBAAmB,EACnB5P,mBAAmB,EACnB,aAAa2G,EAAM9R,EAAO8oB,GACtB,eAAEA,GAAMjX,KAAKC,EAAKD,MAAMwe,SAAS5F,SAAS3Y,EAAKN,UAAUiZ,SAAS6uE,OAI9E,2BACI,IAAI1oE,EAAO7yB,KACP68E,EAAmB78E,KAAK8uB,OAAO,4BAA8B,GAC7DgvE,GAAsB,EAC1B,MAAO,CACH/kF,cAAe8jE,EAAiB9jE,cAChC8sE,qBAAsBhJ,EAAiB/jE,UACvC0B,mBAAoBqiE,EAAiBhkE,eAAiB,YAAc,SACpE5I,mBAAoBgf,IAChB,IAAI6uE,EAAJ,CAGA,IAAI5Q,EAAQ,CAACA,IACT,IAAI6Q,EAAkB,CAAC7Q,EAAO8Q,IAAmB9Q,EAAM1zD,OAAO,CAACt3B,EAAQyiF,KACnEziF,EAAOzC,KAAKklF,GACRA,EAAK/yD,SAASjzB,QACdo/F,EAAgBpZ,EAAK/yD,SAAU1vB,GAE5BA,GACR87F,GACH,OAAOD,EAAgB7Q,EAAO,KARtB,CASTj+D,EAAEgC,UAAUmnE,YACfnpE,EAAEgC,UAAU61B,cACZg3C,GAAsB,EACtB,EAAE7uE,EAAGi+D,KACDA,EAAM5oF,OAAOqgF,IAAQ,IAAUA,EAAK5yC,SAASl9B,aAAaqiB,QAAQytD,GAAQ11D,EAAEgC,UAAU+mE,WAAWrT,EAAK52B,OAD1G,CAEG9+B,EAAGi+D,GACNj+D,EAAEgC,UAAU81B,YACZ+2C,GAAsB,EACtBjrE,EAAK5B,UAAU61B,cACf9mD,KAAKi+F,6BAA8B,EACnC,CAAC/Q,IACGA,EAAMh2D,QAAQytD,IACV,IAAIzlD,EAAcylD,EAAK5yC,SAASyG,GAC5BtiB,GAAY,IAAUyuD,EAAKrH,SAC/BzqD,EAAKmM,mBAAmBoM,aAAalM,EAAa,UAAWhJ,MAJrE,CAMGg3D,GACHr6D,EAAK5B,UAAU81B,YACf/mD,KAAKi+F,6BAA8B,MAI/C,eACI,IAAItC,EAAe37F,KAAK27F,eACpBD,EAAiB17F,KAAKg/B,mBAAmBuY,kBAAkBokD,GAC3Dn6E,EAAQi6E,GAAaz7F,KAAM07F,GAC/B17F,KAAKs9F,mBAAmBxuE,OAAO,QAAStN,IAE5C,sBAAsB8iB,GAClB,IAAI45D,EAAiB,OAAS55D,QAAiB,IAAWA,OAAgB,EAASA,EAAczlC,IAAIqgC,GAAel/B,KAAKg/B,mBAAmBoM,aAAalM,IACzJl/B,KAAKs9F,mBAAmBx2C,cACxB,OAASo3C,QAAkB,IAAWA,GAA0BA,EAAehnE,QAAQC,IACnF,IACItlB,QAASA,EACT5P,MAAOA,GACPk1B,EACAtlB,EACA7R,KAAKs9F,mBAAmBtF,WAAW/1F,GAEnCjC,KAAKs9F,mBAAmBrF,aAAah2F,KAG7CjC,KAAKs9F,mBAAmBv2C,aAE5B,qBAAqB93B,GACjBjvB,KAAKk1B,SAASjG,GACd,IAAI0sE,EAAe37F,KAAK27F,eACxB,GAAIA,GAAgB37F,KAAKs9F,qBAAsB,IAASt9F,KAAKi+F,4BAA6B,CACtF,IACIz2D,YAAaA,GACbvY,EACAkvE,EAAqB32D,EAAY31B,SAAW,IAAM21B,EAAY7oC,OAC9D2lC,EAAgB,eAAUrV,EAAEiQ,aAAe,CAACjQ,EAAEiQ,aAAejQ,EAAEqV,cAC/D85D,EAAa5C,GAA6B7hD,KAAKjnC,GAAc80B,EAAY90B,KAAgBuc,EAAEsV,YAAY74B,SAAW87B,EAAY62D,IAC9HD,IACAp+F,KAAKs+F,sBAAsBh6D,GACtB65D,GACDn+F,KAAKu9F,kBAKrB,cAAcvvE,GACV,OAAQA,EAAKra,MACT,IAAK,gBACD3T,KAAKu+F,4BACLv+F,KAAKu1B,OAAO,KAAM,QAClB,MACJ,QACIv1B,KAAKk1B,SAASlH,KAG1B,oBACI,IAAI9rB,EAAS,GACTy5F,EAAe37F,KAAK27F,eACpBD,EAAiB17F,KAAKg/B,mBAAmBuY,kBAAkBokD,GAC3DvtD,EAAWpuC,KAAKk9F,iBAAmBl9F,KAAKk9F,gBAAgB9uD,WACxDioD,EAASjoD,GAAYA,EAAS7gB,KAAK,qBAQvC,OAPI8oE,GACAqF,EAAexkE,QAAQl1B,IACnB,IAAIqjF,EAAQgR,EAAO/xF,OAAO,oBAAoB+mB,OAAOrpB,EAAOC,MAAO,OAC/D8oB,EAAOs6D,EAAM1mF,OAAS0mF,EAAMzzD,SAAS,IAAIvG,OAAOkwE,KAA4B5nE,IAAI,GAAK,KACzFzxB,EAAOzC,KAAKsrB,KAGb,eAAE7oB,IAEbuvC,QAAS,IAAM,gBACf,aACI,OAAOzxC,KAAKg/B,mBAAmBuY,qBAEnC,cAAcv1C,GACV,IAAIq/C,EAAwBrhD,KAAKg/B,mBAAmBqiB,sBAAsBr/C,EAAOC,OAC7Eu8F,GAAkBx8F,EAAO6P,SAAW7P,EAAO6S,YAC/C,OAAO7U,KAAKy+F,0BAA4Bp9C,GAAyBm9C,GAErE,0BAA0Bx8F,GACtB,IAAIq7F,GAAcr9F,KAAK27F,eACvB,OAAO0B,GAAcr9F,KAAKy+F,0BAA4Bz8F,EAAO6S,aAEjE,kBACI,IAAI4I,EAAYzd,KAAKk9F,iBAAmBl9F,KAAKk9F,gBAAgBwB,kBAC7D,GAAIjhF,GAAaA,EAAUmX,GAAG,YAAa,CACvC,IAAIvN,EAAS5J,EAAU4J,SACvB,MAAO,CACHjE,KAAMiE,EAAOjE,KACbG,IAAK8D,EAAO9D,IACZo7E,MAAOt3E,EAAOjE,KAAO,eAAc3F,GACnCkyD,OAAQtoD,EAAO9D,IAAM,eAAe9F,IAG5C,OAAO,MAEX,oBACSzd,KAAKk9F,kBACNl9F,KAAKu+F,4BACLv+F,KAAKu1B,UAETv1B,KAAKk9F,gBAAgBnqF,OACjB/S,KAAKq8F,gBACL,eAAE,QAAQ3vE,SAAS1sB,KAAKw0B,gBAAgBymE,MAGhD,oBACQj7F,KAAKk9F,iBACLl9F,KAAKk9F,gBAAgBpqF,QAG7B,yBACI,IAAI8rF,EAAiB5+F,KAAKk9F,gBAC1B,OAAO0B,GAAkBA,EAAe9vE,OAAO,YAEnD,eACI,MAAO,WAAa9uB,KAAK8uB,OAAO,uBAEpC,mBACI,IAAI0pD,EAAYx4E,KAAK8uB,OAAO,yBACxB+vE,EAAgB7+F,KAAKiyB,aAAa3tB,OAAOtC,IAAWA,EAAO6P,SAC/D,OAAO2mE,GAAaqmB,EAAclgG,QAEtC+4B,cAAe,IAAM,CAAC,oBAAqB,sBAE3ConE,GAAoB,GAAYlsE,QAAQwpE,IACjC2C,GAAsB,CAC7B7xD,eAAgB,KAAM,CAClB7hC,cAAe,CACX+M,SAAS,EACTG,OAAQ,CACJH,SAAS,EACTQ,QAAS,IACThD,cAAe,IAEnB7E,UAAW,CACP8H,gBAAgB,EAChBE,eAAe,EACfD,WAAW,GAEfR,cAAU,EACVD,KAAM,cACNvG,MAAO,IACP7E,OAAQ,IACRwL,MAAO,OAAoB1a,OAAO,iCAClCoa,eAAgB,OAAoBpa,OAAO,qCAC3C0f,eAAW,KAGnBsb,YAAa,CACT1tB,cAAe8wF,IAEnBnjE,MAAO,CACH4V,kBAAmBkwD,IAEvBxlE,UAAW,CACPN,MAAO,CACH8lC,YAAa,CACT,mBACI,IAAIt9C,EAAQxhB,KAAKk1B,WACjB,OAAOl1B,KAAKg/F,yBAAyBx9E,IAEzC,yBAAyBA,GACrB,IAAIqR,EAAO7yB,KACPi8F,EAAuBppE,EAAK/D,OAAO,yBACvC,GAAImtE,EAAsB,CACtB,IAAIgD,EAAWpsE,EAAK/D,OAAO,uBACvBhI,EAAc,CACdjB,OAAQ,WACRF,QAAS,CACLjS,KAAM4nF,GACN1nF,QAAS,WACLif,EAAK5B,UAAU4d,QAAQ,qBAAqBE,qBAEhD5hC,KAAM8xF,EACNnrF,KAAMmrF,EACNpwF,cAAe,SAASogB,GACpB,eAAEA,EAAEhC,SAASP,SAASmG,EAAKqsE,uBAAuBrsE,EAAK2B,gBAAgBwmE,OAE3E7uF,YAAa,CACT,gBAAiB,WAGzByZ,SAAU,SACVH,SAAU,QACV9R,KAAM,sBACN6R,aAAc,OACdxO,UAAW,IAEfwK,EAAM/hB,KAAKqnB,GAEf,OAAOtF,GAEX,cAAcwM,GACV,OAAQA,EAAKra,MACT,IAAK,gBACD3T,KAAK+nC,cACL/Z,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,KAG1B,YACI,IAAIiuE,EAAuBj8F,KAAK8uB,OAAO,yBACvC,OAAO9uB,KAAKk1B,YAAc+mE,IAGlC9uD,kBAAmB,CACf,cAAcnrC,GACV,IAAI4sC,EAAoB5uC,KAAKixB,UAAU4d,QAAQ,qBAC3CwuD,GAAczuD,EAAkB+sD,eAChC8C,EAAyB7vD,EAAkB6vD,yBAC/C,OAAOpB,GAAcoB,GAA0Bz8F,EAAO6S,aAAe7U,KAAKk1B,SAASlzB,MAI/F+2B,YAAa,CACTrtB,QAAS,CACL,gBAAgB03C,EAAkBC,EAAgBC,EAAgBC,GAC9D,IAAIo4C,EAAe,WAAa37F,KAAK8uB,OAAO,sBACxCqwE,EAAyBxD,GAAgB,kBAAoBp4C,EACjE,OAAO47C,GAAiCn/F,KAAKk1B,SAASkuB,EAAkBC,EAAgBC,EAAgBC,QCtfvFw7C,GAAoBhmE,YAAY1tB,cACtC0zF,GAAoB/lE,MAAM4V,kBACzD,GAASwD,eAAe,gBAAiB2sD,I,8BCFlC,SAASK,GAAkB7jD,EAAM4Q,GAGpC,IAFA,IAAIkzC,EAAS,gBAAqBlzC,EAAiBlkC,OAC/C3jB,EAAS,GACJ9D,EAAI,EAAGA,EAAI+6C,EAAK58C,OAAQ6B,IAC7B8D,EAAO7E,KAAK,CAAC4/F,EAAO7+F,GAAGmC,SAAU,IAAK44C,EAAK/6C,KAK/C,OAHI2rD,EAAiB7nD,QACjBA,EAAO7E,KAAK0sD,EAAiB7nD,QAE1B,QAAcwnD,eAAexnD,GCJjC,SAASg7F,GAAmB/jD,EAAM4Q,EAAkBozC,GAGvD,IAFA,IAAIF,EAAS,gBAAqBlzC,EAAiBlkC,OAC/C3jB,EAAS,GACJ9D,EAAI++F,EAAgBhkD,EAAK58C,OAAS,EAAI,EAAG6B,EAAI+6C,EAAK58C,OAAQ6B,IAAK,CAEpE,IADA,IAAIg/F,EAAgB,GACX5+D,EAAI,EAAGA,GAAKpgC,EAAGogC,IAAK,CACzB,IACIj+B,SAAUA,GACV08F,EAAOz+D,GACX,GAAIpgC,IAAMogC,GAAM,OAAS2a,EAAK3a,KAAM,IAAU2a,EAAK3a,KAAM,IAAS2a,EAAK3a,GAShE,CACH,IAAI6+D,EAAgB,CAAC98F,EAAUnC,IAAMogC,EAAIy+D,EAAOz+D,GAAGsjB,KAAO,IAAM,IAAM,IAAK3I,EAAK3a,IAC5E,MAAQ6+D,EAAc,GACtBD,EAAc//F,KAAK,CAACggG,EAAe,KAAM,CAAC98F,EAAU,IAAK,QAEzD68F,EAAc//F,KAAKggG,QAbnB,IAAUlkD,EAAK3a,GACf4+D,EAAc//F,KAAK,CAACkD,EAAU,MAAK08F,EAAOz+D,GAAGsjB,MAAc,QACpD3I,EAAK3a,IAAMy+D,EAAOz+D,GAAGsjB,KAAOm7C,EAAOz+D,GAAGsjB,MAC7Cs7C,EAAc//F,KAAK,CAACkD,EAAU,KAAM44C,EAAK3a,MAEzC4+D,EAAc//F,KAAK,CAACkD,EAAU,KAAM,OACpC68F,EAAc//F,KAAK,CAACkD,EAAU,IAAK,QAW/C2B,EAAO7E,KAAK,GAASqsD,eAAe0zC,IAGxC,OADAl7F,EAAS,GAASwnD,eAAexnD,EAAQ,MAClC,GAASwnD,eAAe,CAACxnD,EAAQ6nD,EAAiB7nD,SAEtD,IAAIo7F,GAAiB,QAAM9sE,QAAQ,WACtC,IAAI+sE,EAAqB,SAASC,EAAY7xC,GAC1C,IACI8xC,KAAMA,GACND,EACJ,OAAOC,GAAQA,EAAK34D,KAAKC,UAAU4mB,KAEnC+xC,EAA4B,SAASF,EAAYv4E,GACjD,IAaIplB,EAbA89F,EAAY,EACZC,EAAaJ,EAAWjhG,OAAS,EACrC,IAAKihG,EAAWjhG,OACZ,OAAO,EAEX,EAAG,CACC,IAAIshG,EAAcD,EAAaD,GAAa,EACxCH,EAAWK,GAAa54E,OAASA,EACjC24E,EAAaC,EAEbF,EAAYE,QAEXD,EAAaD,EAAY,GAElC,IAAK99F,EAAQ89F,EAAW99F,GAAS+9F,EAAY/9F,IACzC,GAAI29F,EAAW39F,GAAOolB,OAASA,EAC3B,MAGR,OAAOplB,GAEX,MAAO,CACH,KAAKwxD,GACDzzD,KAAK4+C,YAAc6U,EACnBzzD,KAAK6qD,SAET,QACI7qD,KAAKkgG,YAAc,GACnBlgG,KAAK24D,sBAAwB,GAEjC,uBACI,OAAO34D,KAAK24D,uBAEhB,sBAAsBwnC,GAClBngG,KAAK24D,sBAAwBwnC,GAAwB,GAEzD,qBAAqBp1E,GACjB,OAAQ/qB,KAAKogG,qBAAuBr1E,EAAKmmC,gBAE7C,mBACI,IAAIzD,EAAgBztD,KAAK4+C,YAAY9vB,OAAO,kBAC5C,MAAO,YAAc2+B,GAAiB,aAAeA,GAEzD,aACI,IAAIgG,EAAoBzzD,KAAK4+C,YACzB7yC,EAAa0nD,EAAkB7U,YAC/BqX,EAAa,GAAS7X,qBAAqBryC,EAAWkc,SAAW,IAAItpB,OACrEg3D,EAAa,SAAS0qC,EAAoBxtE,EAAMrR,EAAO28B,GACvD,IAAIj8C,EAAS,EACb,GAAIsf,EACA,GAAK28B,EAGD,IAAK,IAAI39C,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAC1BqyB,EAAKytE,qBAAqB9+E,EAAMhhB,KAChC0B,IAEJA,GAAUm+F,EAAoBxtE,EAAMrR,EAAMhhB,GAAGghB,MAAO28B,EAAc,QANtEj8C,EAASsf,EAAM7iB,OAUvB,OAAOuD,EAdM,CAeflC,KAAM+L,EAAWyV,QAASy0C,GAC5B,OAAON,GAEX,cAAc4qC,EAAUC,EAAiBC,EAAwBC,EAAeC,GAC5E,IAAI9tE,EAAO7yB,KACX,OAAO,SAAS4gG,EAAkBhB,EAAYW,EAAUC,EAAiB7kD,GACrE,IAAIklD,EAAkB,GAEtB,SAASC,EAAgBP,EAAUxsF,EAAM4nC,EAASklD,GAC9C,IAAIE,EAAiBhtF,GAAQwsF,EAASxsF,EAAM4nC,GAE5C,OADAolD,GAAkBF,EAAgBphG,KAAKshG,GAChCA,EAEX,IAAK,IAAIvgG,EAAI,EAAGA,EAAIo/F,EAAWjhG,OAAQ6B,IAAK,CAExC,GADAm7C,EAAQl8C,KAAKmgG,EAAWp/F,GAAGuT,OACtBysF,IAAmB,IAAUM,EAAgBP,EAAUX,EAAWp/F,GAAGuT,KAAM4nC,EAASklD,GACrF,OAAO,EAEX,IAAKjB,EAAWp/F,GAAGuT,MAAQ6rF,EAAWp/F,GAAGuT,KAAKwzB,YAAck5D,EAAwB,CAChF,IACI7uE,SAAUA,GACVguE,EAAWp/F,GACXugG,EAAiBnvE,EAASjzB,QAAUiiG,EAAkBhvE,EAAU2uE,EAAUC,EAAiB7kD,GAE/F,GADAolD,GAAkBF,EAAgBphG,KAAKshG,IACnC,IAAUA,EACV,OAAO,EAGf,GAAIP,IAAmB,IAAUM,EAAgBP,EAAUX,EAAWp/F,GAAGuT,KAAM4nC,EAASklD,GACpF,OAAO,EAENjB,EAAWp/F,GAAGuT,MAAQ6rF,EAAWp/F,GAAGuT,KAAKsT,SAAWu4E,EAAWp/F,GAAG6mB,SACnEq5E,GAAgB,GAEpB/kD,EAAQqlD,MAEZ,IAAIC,EAAiBN,GAAuBhlD,EAAQn5C,MAAM,GAC1D,OAAOk+F,GAAiB,OAAKn8F,MAAM,OAAGs8F,GAAiB39D,OAAO,KAC1DrQ,EAAKquE,wBAAwBtB,EAAYqB,KAjC1C,CAmCLpuE,EAAKqtE,YAAaK,EAAUC,EAAiB,KAEnD,wBAAwBZ,EAAYjkD,GAChCA,EAAUA,GAAW,GACrB,IAAK,IAAI15C,EAAQ,EAAGA,EAAQ29F,EAAWjhG,OAAQsD,IAAS,CACpD,IAAIk/F,EAAYvB,EAAW39F,GAC3B,GAAIk/F,EAAUptF,MAAQotF,EAAUptF,KAAKsT,SAAW85E,EAAU95E,OAAQ,CAC9D85E,EAAU95E,OAAS85E,EAAUptF,KAAKsT,OAClC,IAAK,IAAI+5B,EAAc,EAAGA,EAAczF,EAAQh9C,OAAQyiD,IACpDzF,EAAQyF,GAAa/5B,OAAS85E,EAAU95E,QAIpDu4E,EAAWtnE,KAAK,CAAC62B,EAAGC,IAAMD,EAAE9nC,OAAS+nC,EAAE/nC,SAE3C,cAAck0B,GAGV,IAFA,IAAI4lD,EACAvB,EAAa5/F,KAAKkgG,YACbkB,EAAY,EAAGxB,GAAcwB,EAAY7lD,EAAK58C,OAAQyiG,IAC3DD,EAAYxB,EAAmBC,EAAYrkD,EAAK6lD,IAChDxB,EAAauB,GAAaA,EAAUvvE,SAExC,OAAOuvE,GAAaA,EAAUptF,MAElC,aAAastF,GAMT,IALA,IAAIF,GAEA5lD,KAAMA,GACN8lD,EACAzB,EAAa5/F,KAAKkgG,YACbkB,EAAY,EAAGA,EAAY7lD,EAAK58C,OAAQyiG,IAAa,CAE1D,GADAD,EAAYxB,EAAmBC,EAAYrkD,EAAK6lD,KAC3CD,EAAW,CACZA,EAAY,CACRpzC,IAAKxS,EAAK6lD,GACV/5E,OAAQg6E,EAAch6E,OACtBtT,KAAM,CACFsT,OAAQg6E,EAAch6E,OACtBkgB,YAAY,EACZgU,KAAMA,EAAK/4C,MAAM,EAAG4+F,EAAY,IAEpCxvE,SAAU,IAEd,IAAI3vB,EAAQ69F,EAA0BF,EAAYyB,EAAch6E,QAChEu4E,EAAWx4D,OAAOnlC,EAAO,EAAGk/F,GAC5BvB,EAAWC,KAAOD,EAAWC,MAAQ,GACrCD,EAAWC,KAAK34D,KAAKC,UAAUg6D,EAAUpzC,MAAQozC,EAEjDC,IAAc7lD,EAAK58C,OAAS,IAC5BwiG,EAAUptF,KAAOstF,EACbF,EAAU95E,SAAWg6E,EAAch6E,QACnCrnB,KAAKkhG,wBAAwBtB,IAGrCA,EAAauB,EAAUvvE,WAG/B0vE,iBAAkB,KAAM,EACxB,QAAQ37E,GACJ,IACIwmC,iBAAkBA,GAClBxmC,EACA05E,EAAS,gBAAqBlzC,EAAiBlkC,OAAS,IACxDs5E,EAAY,WAAYvhG,KAAO,gBAAqBA,KAAKwhG,QAAU,IAAMnC,EACzElhD,EAAczG,KAAKnwB,IAAIg6E,EAAU5iG,OAAQ0gG,EAAO1gG,QACpDqB,KAAKwhG,OAASr1C,EAAiBlkC,MAC/B,IAAK,IAAI3R,EAAa,EAAGA,EAAa6nC,EAAa7nC,IAC/C,GAAIirF,EAAUjrF,GAAY3T,WAAa08F,EAAO/oF,GAAY3T,SAAU,CAChEw7C,EAAc7nC,EACd,MAGH6nC,EAGC,SAASsjD,EAAgB7B,EAAYtpF,EAAY6nC,GAC/C,IAAK,IAAI39C,EAAI,EAAGA,EAAIo/F,EAAWjhG,OAAQ6B,IAC/B8V,EAAa,GAAK6nC,EAClByhD,EAAWp/F,GAAGoxB,SAAW,GAEzB6vE,EAAgB7B,EAAWp/F,GAAGoxB,SAAUtb,EAAa,EAAG6nC,GALlE,CAQAn+C,KAAKkgG,YAAa,EAAG/hD,GAVvBn+C,KAAK6qD,SAab,sBACA,iBAAiBllC,EAASuP,GACtBA,EAASvP,IAEb,qBAAqBA,EAASuP,GAC1BA,EAASvP,KAzMqB,IClB1C,SAAS+7E,GAA0BC,EAAa/6E,EAAUmqD,EAAWz6D,GAEjE,GADAA,EAAaA,GAAc,EACvBsQ,EAAW,GAAKmqD,EAAY,EAAG,CAC/B,IAAI6wB,EAAaD,EAAcjqD,KAAK05B,MAAMuwB,EAAc/6E,GAAYA,GAAYA,EAKhF,OAJAg7E,GAAc7wB,EAAYz6D,EAAa,EACnCsrF,EAAa,IACbA,GAAch7E,GAEX8wB,KAAK05B,MAAMwwB,GAAch7E,EAAWtQ,EAAa,IAE5D,OAAO,EAEJ,IAAI,GAAiBopF,GAAmB9sE,QAAQ,WACnD,IAAIivE,EAAwB,SAAShvE,EAAM0tE,EAAUuB,GACjD,OAAOjvE,EAAKkvE,cAAc,CAACZ,EAAWxlD,KAClC,GAAIwlD,EAAU55D,WACV,OAAOg5D,EAASY,EAAWxlD,KAEhC,GAAM,EAAOmmD,EAAcA,IAE9BE,EAAoB,SAASA,EAAkBnvE,EAAMrR,EAAO28B,EAAa8jD,EAAc1mD,EAAM6Q,EAAiB81C,GAC9G,IAAI36D,EAKJ,GAJA06D,EAAazgF,MAAQygF,EAAazgF,OAAS,GAC3CygF,EAAaE,MAAQF,EAAaE,OAAS,GAC3CF,EAAavhG,MAAQuhG,EAAavhG,OAAS,EAC3CuhG,EAAaG,UAAYH,EAAaG,WAAa,EAC9CjkD,EAGL,IAAK,IAAI39C,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAIuqB,EAAOvJ,EAAMhhB,GACjB,QAAI,IAAWuqB,EAAKvJ,MAAO,CAEvB,GADA+5B,EAAK97C,KAAKsrB,EAAKgjC,KACX3B,EACA7kB,GAAa,MACV,CACH,IAAI45D,EAAYtuE,EAAKwvE,cAAc9mD,GACnChU,EAAa45D,GAAaA,EAAU55D,WAEnCA,EAGMxc,EAAKvJ,MACZwgF,EAAkBnvE,EAAM9H,EAAKvJ,MAAO28B,EAAc,EAAG8jD,EAAc1mD,EAAM6Q,EAAiB81C,GACnF,IAAM/jD,IAAepzB,EAAKrqB,OAAW0rD,IAAmB81C,IAC/DD,EAAazgF,MAAM/hB,KAAKsrB,GACxBk3E,EAAaE,MAAM1iG,KAAK87C,EAAK/4C,MAAM,IACnCy/F,EAAavhG,OAASuhG,EAAaG,UACnCH,EAAaG,UAAYr3E,EAAKrqB,QAR9BqqB,EAAKwzB,eAAiBxzB,EAAKvJ,MAC3BuJ,EAAKvJ,MAAQ,MASjB+5B,EAAKylD,SAIbsB,EAAsB,SAASzvE,EAAM9H,EAAMw3E,EAAkBhnD,EAAMl0B,GACnE,IACI3mB,EADAygG,EAAYtuE,EAAKwvE,cAAc9mD,GAE9B4lD,GAWGoB,EACApB,EAAUzgG,MAAQqqB,EAAKrqB,MAAQ,EAAIqqB,EAAKrqB,MAAQqqB,EAAKvJ,OAASuJ,EAAKvJ,MAAM7iB,QAAU,EAEnFosB,EAAKrqB,MAAQygG,EAAUzgG,OAASqqB,EAAKrqB,MAEzCygG,EAAU95E,OAASA,IAffk7E,IACA7hG,EAAQqqB,EAAKrqB,MAAQ,EAAIqqB,EAAKrqB,MAAQqqB,EAAKvJ,MAAM7iB,QAErDk0B,EAAK2vE,aAAa,CACdj7D,WAAY1U,EAAK4vE,iBAAiBlnD,EAAK58C,OAAS,GAChD48C,KAAMA,EAAK/4C,MAAM,GACjB6kB,OAAQA,EACR3mB,MAAOA,GAAS,MAWxBgiG,EAAmB,SAASA,EAAiB7vE,EAAMlN,EAASnE,EAAOmhF,EAAkBrsF,EAAYilC,EAAM6F,GACvG,IAKI1gD,EALAu1D,EAAatwC,EAAQsC,MAAQtC,EAAQsC,MAAMtpB,OAAS,EACpD4jG,EAAmBtsC,IAAe0sC,EAClCC,EAAej9E,EAAQtV,iBAAiBD,OACxCiX,EAAS,EACTklC,EAAa,EAOjB,GALAj2C,EAAaA,GAAc,EAC3BilC,EAAOA,GAAQ,GACXqnD,IAAiBxhD,IACjB/5B,EAAS,IAAM/Q,EAAaqP,EAAQ2wC,MAAQ,EAAI3wC,EAAQ+xC,MAAMphD,EAAa,IAAM,GAEjFA,GAAcqsF,EACd,OAAOnhF,EAAM7iB,OAEjB,IAAK,IAAI6B,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAIuqB,EAAOvJ,EAAMhhB,GACjB,GAAIuqB,EAAM,CAEN,GADAwwB,EAAK97C,KAAKsrB,EAAKgjC,MACVhjC,EAAKrqB,QAAUqqB,EAAKvJ,YAAS,IAAWuJ,EAAKvJ,MAC9C,OAAQ,EAIZ,GAFA8gF,EAAoBzvE,EAAM9H,EAAMw3E,EAAkBhnD,EAAMl0B,EAAS7mB,GACjEE,EAAQqqB,EAAKvJ,MAAQkhF,EAAiB7vE,EAAMlN,EAASoF,EAAKvJ,MAAOmhF,EAAkBrsF,EAAa,EAAGilC,EAAM/6C,GAAKuqB,EAAKrqB,QAAU,EACzHA,EAAQ,EACR,OAAQ,EAEZ6rD,GAAc7rD,EACd66C,EAAKylD,OAGb,OAAOz0C,GAEPs2C,EAAkB,SAASxD,EAAQ/oF,GACnC,OAAO+oF,GAAUA,EAAO1gG,QAAU0gG,EAAO/oF,MAAiB+oF,EAAO/oF,GAAYixB,YAE7Eu7D,EAAiB,SAASC,EAAYn8E,EAAUS,GAGhD,IAFA,IAAI0pD,EACAiyB,EAAc37E,EACT/Q,EAAa,EAAGA,EAAaysF,EAAWpkG,OAAQ2X,IACrDy6D,EAAYgyB,EAAWzsF,GAAY+Q,OAAS,EACxC/Q,EAAa,IACby6D,GAAagyB,EAAWzsF,EAAa,GAAG2sF,mBACpCr8E,IACAmqD,GAAa2wB,GAA0BsB,EAAap8E,EAAUmqD,EAAWz6D,EAAa,GAAKA,IAGnG0sF,GAAejyB,EAEnB,OAAOiyB,GAGX,SAASE,EAA6Bv9E,EAASs8E,EAAckB,EAAYC,GACrE,IAAIr4E,EAAOk3E,EAAazgF,MAAM4hF,GAC1B9sC,EAAO3wC,EAAQ+xC,OAAS/xC,EAAQ+xC,MAAMyrC,GACtC5sC,EAAO5wC,EAAQgyC,OAAShyC,EAAQgyC,MAAMwrC,GACtCE,EAAqBD,IAAsBnB,EAAazgF,MAAM7iB,OAAS,EACvE2kG,EAAsB,IAAMF,EAC5BG,EAAuBD,GAAuBhtC,GAAQ,EACtDktC,EAAyBz4E,EAAKrqB,MAAQ61D,EAAOgtC,EAC7CD,QAAuB,IAAWhtC,IAClCvrC,EAAKmmC,gBAAiB,GAEtBmyC,QAAsB,IAAW9sC,GAAQitC,IACzCz4E,EAAKomC,0BAA2B,GAIxC,SAASsyC,EAAe1vF,GACpB,OAAQtV,MAAMC,QAAQqV,GAG1B,SAAS2vF,EAAiB/9E,GACjB89E,EAAe99E,EAAQ5R,QACxB4R,EAAQ5R,KAAO,IAAI,QAI3B,SAAS4vF,EAAe9wE,EAAMlN,EAASg9E,EAAkBV,EAAckB,EAAYpvF,GAC1E4R,EAAQymC,kBACT61C,EAAe,GACfD,EAAkBnvE,EAAM9e,EAAM4uF,EAAkBV,EAAc,IAC5D,SAASt8E,EAASs8E,EAAc2B,GAC9B,IAAIC,EAAoBD,EAAoB,EACxC3tC,EAAatwC,EAAQsC,MAAQtC,EAAQsC,MAAMtpB,OAAS,EACxDsjG,EAAa3rC,KAAO3wC,EAAQ+xC,OAAS/xC,EAAQ+xC,MAAMmsC,GAC/Cl+E,EAAQgyC,YAAS,IAAWhyC,EAAQgyC,MAAMksC,KAEtC5B,EAAa1rC,KADbN,IAAe2tC,GACK3B,EAAavhG,MAAQuhG,EAAavhG,OAASuhG,EAAa3rC,MAAQ,GAEhE,EAExB2rC,EAAa1rC,MAAQ5wC,EAAQgyC,MAAMksC,IAVzC,CAYAl+E,EAASs8E,EAAcU,IAE7B,IAAI1sC,EAAatwC,EAAQsC,MAAQtC,EAAQsC,MAAMtpB,OAAS,EACpDsjG,EAAaE,MAAMxjG,QAAUs3D,EAAa0sC,EAAmB,GAC7De,EAAiB/9E,GACf,SAASkN,EAAMlN,EAASs8E,EAAcU,EAAkBQ,EAAYpvF,GAClE,IAAIsrF,EAAS15E,EAAQsC,OAAS,GAC1B67E,EAAezE,EAAO8D,EAAa,GACnC9+C,EAAY,GAChB,eAAK49C,EAAaE,MAAOiB,IACrB,IAAI/yE,EACAskC,EAAc,CACd7G,mBAAmB,EACnBi2C,mBAAmB,EACnB97E,MAAO,CAAC67E,GACRE,aAAcr+E,EAAQwmC,iBAAiB63C,aACvC1/F,OAAQ86F,GAAkB6C,EAAaE,MAAMiB,GAAoB,CAC7D9+F,OAAQqhB,EAAQwmC,iBAAiB7nD,OACjC2jB,MAAOo3E,IAEXliB,OAAQx3D,EAAQwmC,iBAAiBgxB,OACjCthB,WAAY,QAAUxrC,EAAK1K,EAAQwmC,wBAAqB,IAAW97B,OAAK,EAASA,EAAGwrC,YAEpF,IAAMunC,IACNzuC,EAAY2B,KAAO2rC,EAAa3rC,MAAQ,GAExC8sC,IAAsBnB,EAAaE,MAAMxjG,OAAS,IAClDg2D,EAAY4B,KAAO0rC,EAAa1rC,MAEpC,IAAIuG,EAAa,IAAMnI,EAAY4B,KAAO,GAAK1jC,EAAK+rB,YAAYse,cAAcvI,GAC9E,eAAKmI,GAAYtmC,KAAKziB,IAClB,IAAIgX,EAAOk3E,EAAazgF,MAAM4hF,GAC9BF,EAA6Bv9E,EAASs8E,EAAckB,EAAYC,GAChEr4E,EAAKvJ,MAAQzN,IAEjBswC,EAAU5kD,KAAKq9D,KAEnB,OAAKv4D,MAAM,KAAM8/C,GAAW7tB,KAAK,KAC7BksE,EAAiB7vE,EAAMlN,EAAS5R,EAAM4uF,EAAmB,GACzDgB,EAAe9wE,EAAMlN,EAASg9E,EAAmB,EAAGV,EAAckB,EAAa,EAAGpvF,KAlCxF,CAoCA8e,EAAMlN,EAASs8E,EAAcU,EAAkBQ,EAAYpvF,IACtDkuF,EAAaE,MAAMxjG,QAAUgnB,EAAQwmC,iBAAiBlkC,OAC7Dy7E,EAAiB/9E,GACf,SAASkN,EAAMlN,EAASs8E,EAAcluF,GACpC,IAAIkwF,EAAkB,GAClB5E,EAAS15E,EAAQsC,OAAS,GAC9B,eAAKg6E,EAAaE,MAAO,CAACxqE,EAAGusE,KACzBD,EAAgBxkG,KAAK2/F,GAAkB8E,EAAc,CACjDj8E,MAAOtC,EAAQymC,gBAAkBzmC,EAAQwmC,iBAAiBlkC,MAAQo3E,OAG1E,IACI/6F,OAAQA,GACRqhB,EAAQwmC,iBACPxmC,EAAQwmC,iBAAiBE,eAC1B/nD,EAAS,GAAawnD,eAAe,CAACxnD,EAAQ,GAAawnD,eAAem4C,EAAiB,SAE/F,IAAItvC,EAAc,OAAAxnC,EAAA,MAAO,GAAIxH,EAAQwmC,iBAAkB,CACnD2B,mBAAmB,EACnBi2C,mBAAmB,EACnB97E,MAAO,KACPqQ,KAAM+mE,EAAOh0E,OAAO,GAAa+yB,qBAAqBz4B,EAAQwmC,iBAAiB7zB,MAAQ,KACvFh0B,OAAQA,IAER6/F,EAAgBtxE,EAAK+rB,YAAYwlD,mCAChCD,IACDxvC,EAAY2B,KAAO2rC,EAAa3rC,KAChC3B,EAAY4B,KAAO0rC,EAAa1rC,MAEpC,eAAK,IAAM0rC,EAAa1rC,KAAO,GAAK1jC,EAAK+rB,YAAYse,cAAcvI,IAAcn+B,KAAKhV,IAC9E2iF,IACA3iF,EAAQqR,EAAK+rB,YAAYylD,wBAAwB7iF,EAAO69E,EAAQ4C,EAAaE,OAC7E3gF,EAAQygF,EAAa3rC,KAAO90C,EAAMhf,MAAMy/F,EAAa3rC,MAAQ90C,EAC7DA,EAAQygF,EAAa1rC,KAAO/0C,EAAMhf,MAAM,EAAGy/F,EAAa1rC,MAAQ/0C,GAEpE,eAAKygF,EAAazgF,MAAO,CAACvf,EAAO8oB,KAC7B,IAAIy6C,EAAYz6C,EAAKrqB,OAAS,IAAMuB,GAASggG,EAAa3rC,MAAQ,GAC9DguC,EAAgB9iF,EAAM4lB,OAAO,EAAGo+B,GACpC09B,EAA6Bv9E,EAASs8E,EAAc5C,EAAO1gG,OAAS,EAAGsD,GACvE8oB,EAAKvJ,MAAQ8iF,IAEjB3+E,EAAQ5R,KAAKmpB,QAAQnpB,KACtBk1B,KAAKtjB,EAAQ5R,KAAK8uB,QAvCvB,CAwCAhQ,EAAMlN,EAASs8E,EAAcluF,IACxB0vF,EAAe99E,EAAQ5R,OAC9B4R,EAAQ5R,KAAKmpB,QAAQnpB,GAG7B,IAAIwwF,EAAsB,SAASx4F,EAAY4Z,GAC3C,IAAI+uC,EAAI,IAAI,OACR8vC,KAAgB7+E,EAAQsC,QAAStC,EAAQsC,MAAMtpB,QAC/Cg2D,EAAc,OAAAxnC,EAAA,MAAO,CACrBmpC,KAAM,EACNC,KAAM,EACNwtC,kBAAmBS,EACnB12C,mBAAoB02C,GACrB7+E,EAAS,CACRsC,MAAOu8E,EAAa7+E,EAAQsC,MAAQ,OAUxC,OARAlc,EAAWk8C,KAAK0M,GAAan+B,KAAK,CAACziB,EAAMu4C,KACrC,IAAI5rD,EAAQ4rD,IAAUk4C,EAAal4C,EAAM2J,WAAa3J,EAAMC,YACvDk4C,SAAS/jG,GAIdg0D,EAAEx3B,QAAQx8B,GAHNg0D,EAAE7xB,OAAO,QAAWhL,MAAM2sE,EAAa,QAAU,YAItDv7D,KAAKyrB,EAAE7xB,OAAO3O,KAAKwgC,IACfA,GAEX,MAAO,CACH,sBAAsB/uC,GAClB,IAAIiwC,EAAkB,EAClBrJ,EAAa5mC,EAAQ2mC,OAAS3mC,EAAQ2mC,MAAMC,YAAc,EAC1D0J,EAAatwC,EAAQ2mC,OAAS3mC,EAAQ2mC,MAAM2J,YAAc,EAC1DrvC,EAAW5mB,KAAK4+C,YAAYh4B,WAC5B89E,EAAkB1kG,KAAKogG,mBAC3ByB,EAAsB7hG,KAAMmhG,IACxBA,EAAU8B,mBAAqB,IAEnCpB,EAAsB7hG,KAAM,CAACmhG,EAAWxlD,KACpC,IAAIqnD,EAAcF,EAAennD,EAAS+oD,EAAkB,EAAI99E,EAAUgvC,GACtEl1D,EAAQygG,EAAUzgG,MAAQygG,EAAU8B,mBACnCyB,IACDhkG,GAASghG,GAA0BsB,EAAap8E,EAAUlmB,EAAOi7C,EAAQh9C,OAAS,IAElFg9C,EAAQA,EAAQh9C,OAAS,GACzBg9C,EAAQA,EAAQh9C,OAAS,GAAGskG,oBAAsBviG,EAElDk1D,GAAmBl1D,IAG3BV,KAAKk1B,SAAS0gC,EAAkBrJ,EAAa0J,IAEjD,iBAAiB3/C,GACb,IAAI+oF,EAASr/F,KAAK4+C,YAAY32B,QAC9B,OAAO46E,EAAgBxD,EAAQ/oF,IAEnC,qBAAqBqP,EAAS46E,GAC1B,IAAImE,EAAkB1kG,KAAKogG,mBACvBx5E,EAAW5mB,KAAK4+C,YAAYh4B,WAC5B8wC,EAAQ,GACRC,EAAQ,GACRgtC,EAAyB,EACzB1B,EAAqB,EACrBt9E,EAAQ4wC,OACRsrC,EAAsB7hG,KAAMmhG,IACxBA,EAAU8B,mBAAqB,EAC/B9B,EAAUwD,uBAAyB,IAEvC9C,EAAsB7hG,KAAM,CAACmhG,EAAWxlD,KACpC,IAAI4a,EACAquC,EAAiB,EACjBC,EAAuB,EACvB7B,EAAcF,EAAennD,EAAS+oD,EAAkB,EAAI99E,EAAUq8E,GACtE6B,EAAyB,EACzBC,EAA6B,EAC7BC,EAAiB7D,EAAUzgG,MAAQygG,EAAU8B,mBAC7CgC,EAAyBD,EAC7BzE,GAAYA,EAASY,EAAW6B,GAChC,IAAI1sC,EAAO3wC,EAAQ2wC,KAAO0sC,EACtBA,GAAer9E,EAAQ2wC,KAAO3wC,EAAQ4wC,MAAQyuC,IAC9CzuC,EAAO5wC,EAAQ4wC,KACVmuC,IACDI,EAAyBpD,GAA0BsB,EAAap8E,EAAUo+E,EAAgBrpD,EAAQh9C,OAAS,GAC3GqmG,GAAkBF,EAAyBnpD,EAAQh9C,OACnDsmG,GAA0BH,EACtBl+E,GAAY0vC,GAAQ,IACpBsuC,EAAiBjpD,EAAQh9C,OACzBkmG,EAAuBlpD,EAAQh9C,OAAS,EACxComG,EAA6BrtD,KAAK05B,MAAM9a,EAAO1vC,KAGnD0vC,GAAQ,GACJ0sC,EAAcgC,EAAiBr/E,EAAQ2wC,MACvCoB,EAAM33D,QAAQu2D,EAAOyuC,EAA6BH,EAAiBzD,EAAUwD,wBAE7E3B,EAAcgC,GAAkBr/E,EAAQ2wC,KAAOC,GAC/CoB,EAAM53D,QAAQw2D,EAAOquC,EAAiBzD,EAAU8B,mBAAqB9B,EAAUwD,yBAE5E3B,EAAcgC,GAAkBr/E,EAAQ2wC,KAAOC,GACtDoB,EAAM53D,QAAQw2D,EAAOD,EAAO6qC,EAAU8B,qBAG1CD,GAAer9E,EAAQ2wC,OACnB3a,EAAQA,EAAQh9C,OAAS,GACzBg9C,EAAQA,EAAQh9C,OAAS,GAAGgmG,wBAA0BjtD,KAAKnwB,IAAI09E,EAAwB3uC,EAAO,EAAIyuC,EAA6BF,GAE/HF,GAA0BjtD,KAAKnwB,IAAI09E,EAAwB3uC,EAAO,IAGtE0sC,GAAer9E,EAAQ2wC,KAAOC,IAC9ByuC,EAAiBttD,KAAKnwB,IAAI09E,EAAwB3uC,EAAOC,GAAQwuC,EAA6B,GAAKF,GAC/FlpD,EAAQA,EAAQh9C,OAAS,GACzBg9C,EAAQA,EAAQh9C,OAAS,GAAGskG,oBAAsB+B,EAElD/B,GAAsB+B,KAIlCr/E,EAAQ2wC,MAAQquC,EAChBh/E,EAAQ4wC,MAAQ0sC,EAAqB0B,GAEzCh/E,EAAQ+xC,MAAQA,EAChB/xC,EAAQgyC,MAAQA,GAEpB,gBAAgBpc,GACZ,IAAI4lD,EAAYnhG,KAAKqiG,cAAc9mD,GAC/BxvC,EAAa/L,KAAK4+C,YAClBsmD,EAAoBn5F,EAAWsE,mBAAmBoX,YAClD43E,EAAS,GAAajhD,qBAAqBryC,EAAWkc,SAC1D,OAAIk5E,GACAA,EAAU55D,YAAc45D,EAAU55D,WAC9B29D,GAAqB/D,EAAU55D,YAAcgU,EAAK58C,OAAS0gG,EAAO1gG,OAC3D4lG,EAAoBx4F,EAAY,CACnCzH,OAAQ86F,GAAkB7jD,EAAM,CAC5Bj3C,OAAQyH,EAAW25C,kBAAkBphD,OACrC2jB,MAAOlc,EAAWkc,UAEtBA,MAAO,CAACo3E,EAAO9jD,EAAK58C,SACpBw+E,OAAQpxE,EAAWoxE,WACpB3mD,KAAKy/B,IACJkrC,EAAUzgG,MAAQu1D,KAGnB,IAAK,QAAU/4B,YAEnB,IAAK,QAAU2F,UAE1B,kBAAkBld,GACd,IACIwmC,iBAAkBA,GAClBxmC,EACA05E,EAAS,GAAajhD,qBAAqB+N,EAAiBlkC,OAAStC,EAAQgvC,YAAY1sC,OAC7F,IAAItC,EAAQymC,iBAAoBizC,EAAO1gG,OAAvC,CAGA,GAAIgnB,EAAQtV,iBAAiBtD,SAAU,CACnC,IAAI61F,EAAe5iG,KAAK4+C,YAAYvuC,mBAAmBD,OACvD+7C,EAAiBlkC,MAAQ,GAAam2B,qBAAqB+N,EAAiBlkC,OAC5EkkC,EAAiBlkC,MAAMiP,QAAQ,CAACjP,EAAOhmB,KACnC,IAAIkjG,EAAcljG,IAAUkqD,EAAiBlkC,MAAMtpB,OAAS,EAC5DspB,EAAMsf,YAAcq7D,IAAiBuC,IAG7Cx/E,EAAQsC,MAAQtC,EAAQsC,OAASo3E,EAC7B15E,EAAQtV,iBAAiBD,QACzBuV,EAAQ2wC,KAAOnK,EAAiBmK,KAChC3wC,EAAQ4wC,KAAOpK,EAAiBoK,KAChCpK,EAAiB43C,mBAAoB,EACrC53C,EAAiBlkC,MAAQo3E,EAAO78F,MAAM,EAAG,GACzCxC,KAAKolG,qBAAqBz/E,GAC1BwmC,EAAiBmK,KAAO3wC,EAAQ2wC,KAChCnK,EAAiBoK,KAAO5wC,EAAQ4wC,OAEhC5wC,EAAQ2wC,KAAO3wC,EAAQgvC,YAAY2B,KACnC3wC,EAAQ4wC,KAAO5wC,EAAQgvC,YAAY4B,KACnCv2D,KAAKolG,qBAAqBz/E,MAGlC,qBAAqBA,EAASuP,GAC1B,IAEIq3B,EAFAo2C,EAAmB,GAAavkD,qBAAqBz4B,EAAQwmC,iBAAiBlkC,OAAStC,EAAQgvC,YAAY1sC,OAAOtpB,OAClHs3D,EAAatwC,EAAQsC,MAAQtC,EAAQsC,MAAMtpB,OAAS,EAEpDsjG,EAAe,GACnB,GAAIt8E,EAAQymC,gBACRl3B,EAASvP,GACTq8E,EAAkBhiG,KAAM2lB,EAAQ5R,KAAM4uF,EAAkBV,EAAc,GAAIt8E,EAAQymC,gBAAiBzmC,EAAQwmC,iBAAiBE,kBACzH,CAOH,GANK1mC,EAAQtV,iBAAiBD,QAC1BpQ,KAAK+hG,cAAcZ,IACfA,EAAUzgG,MAAQ,IAG1B6rD,EAAam2C,EAAiB1iG,KAAM2lB,EAASA,EAAQ5R,KAAM4uF,GACvDp2C,EAAa,EAEb,YADA5mC,EAAQ5R,MAAO,IAAK,QAAU8uB,OAAO,QAAOhL,MAAM,WAStD,GANKlS,EAAQtV,iBAAiBD,QACtBuyF,GAAoBh9E,EAAQ2mC,OAAS3mC,EAAQgvC,YAAY7G,oBACzDnoC,EAAQ2mC,MAAMC,WAAaA,EAC3B5mC,EAAQ2mC,MAAM2J,WAAatwC,EAAQ5R,KAAKpV,QAG5Cs3D,GAActwC,EAAQwmC,iBAAiB43C,oBAAsBU,SAAS9+E,EAAQ2mC,MAAM2J,YAEpF,YADAtwC,EAAQ5R,MAAO,IAAK,QAAU8uB,OAAO,QAAWhL,MAAM,WAG1D73B,KAAKqlG,sBAAsB1/E,GACtBA,EAAQtV,iBAAiBD,QAC1BpQ,KAAKolG,qBAAqBz/E,GAE9BuP,EAASvP,GACJA,EAAQtV,iBAAiBD,QAC1BpQ,KAAKslG,eAAe3/E,EAASg9E,GAGrCgB,EAAe3jG,KAAM2lB,EAASg9E,EAAkBV,EAAc,EAAGt8E,EAAQ5R,OAE7E,cAAcyN,EAAOk2C,EAAOzB,GACxB,GAAKA,EAAL,CAGA,IAAIsvC,EAAY/jF,EAAM,GAClB80C,EAAOoB,EAAM,GACb9lC,EAAW2zE,GAAaA,EAAU/jF,WAClC,IAAW80C,IACXivC,EAAUr0C,gBAAiB,EACvBt/B,IACA2zE,EAAU/jF,MAAQoQ,EAASpvB,MAAM8zD,GACjCt2D,KAAKwlG,cAAcD,EAAU/jF,MAAOk2C,EAAMl1D,MAAM,GAAIyzD,EAAa,OAI7E,cAAcz0C,EAAOk2C,EAAOC,EAAO1B,EAAYta,GAC3C,GAAKsa,GAAez0C,EAApB,CAGAm6B,EAAUA,GAAW,GACrB,IAAI8pD,EAAWjkF,EAAMA,EAAM7iB,OAAS,GAChCizB,EAAW6zE,GAAYA,EAASjkF,MAChC+0C,EAAOoB,EAAM,GACbrB,EAAOoB,EAAM,GACjB,GAAI+tC,EAAU,CACV,IAAIC,EAAeD,EAAS/kG,OAAS+kG,EAASv0C,gBAAkBoF,GAAQ,IAAM1kC,EAASjzB,YACnF,IAAW43D,GAAQmvC,EAAenvC,IAClCkvC,EAASt0C,0BAA2B,EACpCxV,EAAQzkB,QAAQ5E,IACZA,EAAO6+B,0BAA2B,IAElCv/B,IACAA,EAAWA,EAASpvB,MAAM,EAAG+zD,GAC7BkvC,EAASjkF,MAAQoQ,IAGzB+pB,EAAQl8C,KAAKgmG,GACbzlG,KAAK2lG,cAAc/zE,EAAU8lC,EAAMl1D,MAAM,GAAIm1D,EAAMn1D,MAAM,GAAIyzD,EAAa,EAAGta,MAGrF,eAAeh2B,EAASswC,GACpBj2D,KAAKwlG,cAAc7/E,EAAQ5R,KAAM4R,EAAQ+xC,MAAOzB,GAChDj2D,KAAK2lG,cAAchgF,EAAQ5R,KAAM4R,EAAQ+xC,MAAO/xC,EAAQgyC,MAAO1B,IAEnEmuC,iCAAkC,KAAM,EACxCC,wBAAyB7iF,GAASA,EAClC,QAAQmE,EAAS6jC,GACb,IAOIjiB,EACAjxB,EARAuc,EAAO7yB,KACP+L,EAAa8mB,EAAK+rB,aAElBuN,iBAAkBA,GAClBxmC,EACAsC,EAAQtC,EAAQsC,OAAStC,EAAQwmC,iBAAiBlkC,MAClDs5E,EAAY,GAAanjD,qBAAqBvrB,EAAK2uE,QAIvD,SAASoE,EAAYzE,EAAWxlD,GACxBA,EAAQh9C,SAAW2X,EAAa,IAChC6qF,EAAU55D,WAAaA,GAG/B,IAAKjxB,EAAa,EAAGA,EAAairF,EAAU5iG,OAAQ2X,IAChDixB,EAAas7D,EAAgB56E,EAAO3R,GAChCusF,EAAgBhwE,EAAK2uE,OAAQlrF,KAAgBixB,GAC7C1U,EAAKkvE,cAAc6D,GAI3B,GADA/yE,EAAKqC,SAAS3wB,MAAMvE,KAAMwE,WACtByjB,GAAStC,EAAQtV,iBAAiBD,QAAUo5C,EAAekD,OAC3D,OAAOm1C,EAAsBhvE,EAAMsuE,IAC/B,IAAI0E,EAAkBtB,EAAoBx4F,EAAY,CAClDzH,OAAQ86F,GAAkB+B,EAAU5lD,KAAM,CACtCj3C,OAAQ6nD,EAAiB7nD,OACzB2jB,MAAOA,IAEXA,MAAOA,EAAMzlB,MAAM2+F,EAAU5lD,KAAK58C,QAClCw+E,OAAQhxB,EAAiBgxB,SAEzB2oB,EAAmBvB,EAAoBx4F,EAAY,CACnDzH,OAAQg7F,GAAmB6B,EAAU5lD,KAAM,CACvCj3C,OAAQ6nD,EAAiB7nD,OACzB2jB,MAAOA,IACR,GACHA,MAAOA,EAAMzlB,MAAM2+F,EAAU5lD,KAAK58C,OAAS,EAAGwiG,EAAU5lD,KAAK58C,QAC7Dw+E,OAAQhxB,EAAiBgxB,SAE7B,OAAO,eAAK2oB,EAAkBD,GAAiBrvE,KAAK,CAACnP,EAAQ3mB,KACzD2mB,EAASy3B,SAASz3B,EAAO1oB,OAAS0oB,EAAO,GAAKA,GAC9C3mB,EAAQo+C,SAASp+C,EAAM/B,OAAS+B,EAAM,GAAKA,GAC3CygG,EAAU95E,OAASA,EACf85E,EAAUzgG,QAAUA,IACpBygG,EAAUzgG,MAAQA,EAClBmyB,EAAKwyE,sBAAsB1/E,QAGpC,KA1iBoC,I,0BCTnDogF,GAAiB,SAASh6F,EAAY4Z,GACtC,IAAI+uC,EAAI,IAAI,OACRC,EAAc,OAAAxnC,EAAA,MAAO,CACrBmpC,KAAM,EACNC,KAAM,EACNzI,mBAAmB,GACpBnoC,GAIH,OAHA5Z,EAAWk8C,KAAK0M,GAAan+B,KAAK,CAACziB,EAAMu4C,KACrCoI,EAAEx3B,QAAQovB,GAASA,EAAMC,cAC1BtjB,KAAKyrB,EAAE7xB,OAAO3O,KAAKwgC,IACfA,GAEA,GAAiBgrC,GAAmB9sE,QAAQ,WACnD,IAAI6tE,EAAyB,SAAS5tE,EAAM0tE,EAAUG,GAClD,OAAO7tE,EAAKkvE,cAAcZ,IACtB,IAAKA,EAAU55D,WACX,OAAOg5D,EAASY,KAErB,GAAO,EAAOT,GAAe,IAEhCsF,EAAwB,SAASnzE,EAAMyjC,GACvC,IAAI2vC,EAAiB,EACjBC,EAAa5vC,GAAQ,EAUzB,OATIA,IACAmqC,EAAuB5tE,EAAMsuE,IACzB,GAAIA,EAAU95E,OAAS4+E,GAAkB3vC,EACrC,OAAO,EAEX2vC,GAAkB9E,EAAUzgG,MAAQ,IAExCwlG,GAAcD,GAEXC,GAEPC,EAAa,SAASC,EAAOC,GAC7B,GAAID,EAAMznG,SAAW0nG,EAAM1nG,OACvB,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAI4lG,EAAMznG,OAAQ6B,IAC9B,IAAK,gBAAU,KAAM4lG,EAAM5lG,GAAI6lG,EAAM7lG,IACjC,OAAO,EAGf,OAAO,GAEP8lG,EAAqB,SAASA,EAAmBzzE,EAAMrR,EAAO+5B,EAAMl0B,EAAQk/E,GAC5E,GAAK/kF,EAAL,CAGA,IAAK,IAAIhhB,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAIuqB,EAAOvJ,EAAMhhB,GACjB,GAAI,QAASuqB,QAAQ,IAAWA,EAAKvJ,MAAO,CACxC+5B,EAAK97C,KAAKsrB,EAAKgjC,KACXw4C,GAAuBJ,EAAWI,EAAoBhrD,KAAMA,KAAUxwB,EAAKmmC,iBAC3Eq1C,EAAoBl/E,OAASA,GAEjC,IAAI85E,EAAYtuE,EAAKwvE,cAAc9mD,GAC/B4lD,IAAcp2E,EAAKmmC,iBACnBiwC,EAAU95E,OAASA,GAEnB85E,IAAcA,EAAU55D,WACxBlgB,GAAU85E,EAAUzgG,MAEpB2mB,EAASi/E,EAAmBzzE,EAAM9H,EAAKvJ,MAAO+5B,EAAMl0B,EAAQk/E,GAEhEhrD,EAAKylD,WAEL35E,IAGR,OAAOA,IAEPm/E,EAAgB,SAASA,EAAcz7E,EAAMkrC,GAC7C,IAAIv1D,EAAQqqB,EAAKrqB,OAASqqB,EAAKvJ,MAAM7iB,OACrC,IAAKosB,EAAKrqB,OAASu1D,EAAa,EAAG,CAC/Bv1D,EAAQ,EACR,IAAK,IAAIF,EAAI,EAAGA,EAAIuqB,EAAKvJ,MAAM7iB,OAAQ6B,IACnCE,GAAS8lG,EAAcz7E,EAAKvJ,MAAMhhB,GAAIy1D,EAAa,GAG3D,OAAOv1D,GAEX,MAAO,CACH,kBAAkBilB,GACd,IAMI4wC,GALApK,iBAAkBA,GAClBxmC,EACA8gF,EAAkB,GAClBC,EAAsB,EACtBC,GAAgB,GAGhB1+E,MAAOA,GACPtC,EAAQgvC,YACRsxC,EAAiB,EAUrB,GATE,SAAS95C,EAAkBwI,GACzB,GAAIA,EAAY1sC,MAAO,CACnB,IAAIo3E,EAAS,GAAajhD,qBAAqBuW,EAAY1sC,OACvD2+E,EAAQ,GAAaxoD,qBAAqB+N,EAAiB7zB,MAC/D6zB,EAAiB7zB,KAAO,QAAYuuE,mBAAmBxH,EAAQuH,UACxDjyC,EAAY1sC,OALzB,CAOAkkC,EAAkBxmC,EAAQgvC,aAC5BhvC,EAAQsC,MAAQtC,EAAQsC,OAASA,GAC7BtC,EAAQymC,gBAAZ,CAGA,IAAIuI,EAAc,OAAAxnC,EAAA,MAAO,GAAIg/B,GAC7BwI,EAAY2B,KAAO0vC,EAAsBhmG,KAAMmsD,EAAiBmK,MAC5D3B,EAAY2B,MAAQ3B,EAAY4B,MAAQtuC,IACxC0sC,EAAY2B,OACZ3B,EAAY4B,OACZowC,GAAgB,GAEhBhyC,EAAY4B,MAAQtuC,IACpBsuC,EAAO5B,EAAY4B,KACnB5B,EAAY4B,QAEhBkqC,EAAuBzgG,KAAMmhG,IACzB,GAAIA,EAAU95E,QAAUstC,EAAY2B,KAAO3B,EAAY4B,KAAO0vC,EAC1D,OAAO,EAEP9E,EAAU95E,QAAUstC,EAAY2B,KAAO2vC,GAAkB9E,EAAUzgG,QACnEulG,GAAkB9E,EAAUzgG,MAAQ,EACpC+lG,EAAgBhnG,KAAK0hG,GACrBuF,GAAuBvF,EAAUzgG,SAGzC,eAAK+lG,GAAiB,WAClB9xC,EAAYrwD,OAAS,SAASi3C,EAAM4Q,EAAkBlkC,GAGlD,IAFA,IAAIo3E,EAAS,GAAajhD,qBAAqBn2B,GAASkkC,EAAiBlkC,OACrE3jB,EAAS,GACJ9D,EAAI,EAAGA,EAAI+6C,EAAK58C,OAAQ6B,IAAK,CAElC,IADA,IAAIg/F,EAAgB,GACX5+D,EAAI,EAAGA,GAAKpgC,EAAGogC,IACpB4+D,EAAc//F,KAAK,CAAC4/F,EAAOz+D,GAAGj+B,SAAUnC,IAAMogC,EAAI,KAAO,IAAK2a,EAAK3a,KAEvEt8B,EAAO7E,KAAK,GAAaqsD,eAAe0zC,IAG5C,OADAl7F,EAAS,GAAawnD,eAAexnD,EAAQ,MACtC,GAAawnD,eAAe,CAACxnD,EAAQ6nD,EAAiB7nD,SAX5C,CAYnBtE,KAAKu7C,KAAMoZ,EAAa1sC,MAE9BtC,EAAQwmC,iBAAmBwI,EAC3BhvC,EAAQ8gF,gBAAkBA,EAC1B9gF,EAAQ+gF,oBAAsBA,EAC9B/gF,EAAQ2wC,KAAO3B,EAAY2B,MAAQ,EACnC3wC,EAAQghF,cAAgBA,EACxBhhF,EAAQ4wC,KAAOA,IAEnB,iBAAiB5wC,EAASuP,GACtB,IACIuxE,gBAAiBA,GACjB9gF,EACA05E,EAAS,GAAajhD,qBAAqBz4B,EAAQsC,OACnDguC,EAAaopC,EAAO1gG,OAExB,SAASmoG,EAAoB/yF,EAAMwnC,EAAM8jD,EAAQ0H,EAAgB1/E,GAC7D,GAAKtT,GAASwnC,EAAK58C,QAAW0gG,EAAO1gG,OAArC,CAGA,IAAIqoG,EACAxmG,EACAymG,EAAY,gBAAa1rD,EAAK,IAAI,GACtC,IAAK/6C,EAAI,EAAGA,EAAIuT,EAAKpV,OAAQ6B,IAAK,CAE9B,GADAwmG,EAAW,gBAAajzF,EAAKvT,GAAGutD,KAAK,GACjC1mC,GAAU0/E,EAAe1/E,QAAU4/E,IAAcD,EACjD,MAEA3/E,GAAUm/E,EAAczyF,EAAKvT,GAAI6+F,EAAO1gG,QAG3CoV,EAAKpV,QAAUsoG,IAAcD,GAC9BjzF,EAAKqzB,OAAO5mC,EAAG,EAAG,CACdutD,IAAKxS,EAAK,GACV/5B,MAAO,GACP9gB,MAAO,IAAM66C,EAAK58C,OAASooG,EAAermG,WAAQ,IAG1DomG,EAAoB/yF,EAAKvT,GAAGghB,MAAO+5B,EAAK/4C,MAAM,GAAI68F,EAAO78F,MAAM,GAAIukG,EAAgB1/E,IASvF,GAPI1B,EAAQ+gF,qBAAuB/gF,EAAQ2mC,OAAS3mC,EAAQ2mC,MAAMC,YAAc,IACvE5mC,EAAQ2mC,MAAM46C,0CACfvhF,EAAQ2mC,MAAMC,YAAc5mC,EAAQ+gF,oBACpC/gF,EAAQ2mC,MAAM46C,yCAA0C,IAGhEhyE,EAASvP,GACLswC,EAAY,CACZ,IACIliD,KAAMA,GACN4R,EACAwhF,EAAQ,gBAAUpzF,GAItB,GAHA,QAAYqzF,gBAAgBD,EAAO9H,GAAQgI,YAAY7wE,KAAK8wE,IACxDvzF,EAAOuzF,IAEPb,EACA,IAAK,IAAIrF,EAAY,EAAGA,EAAYqF,EAAgB9nG,OAAQyiG,IACxD0F,EAAoB/yF,EAAM0yF,EAAgBrF,GAAW7lD,KAAM8jD,EAAQoH,EAAgBrF,GAAYz7E,EAAQ2wC,MAG1G3wC,EAAQymC,iBACP,SAAS41C,EAAkBnvE,EAAMrR,EAAO+5B,EAAMl0B,EAAQs/E,EAAepwC,GAGnE,IAFA,IAAIgxC,EAAuB,EACvBC,GAAsB,EACjBhnG,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAIuqB,EAAOvJ,EAAMhhB,GACjB,QAAI,IAAWuqB,EAAKvJ,MAAO,CACvB+5B,EAAK97C,KAAKsrB,EAAKgjC,KACf,IAAIozC,EAAYtuE,EAAKwvE,cAAc9mD,GACnC,GAAI4lD,IAAcA,EAAU55D,WACxBxc,EAAKwzB,eAAiBxzB,EAAKvJ,MAC3BuJ,EAAKvJ,MAAQ,KACb6F,GAAU85E,EAAUzgG,MACpB61D,IACIA,EAAO,GACPgxC,IAEAZ,IACAa,GAAsB,QAEvB,GAAIz8E,EAAKvJ,MAAO,CACnB,IAAIimF,EAAazF,EAAkBnvE,EAAM9H,EAAKvJ,MAAO+5B,EAAMl0B,EAAQs/E,EAAepwC,GAC9EowC,IACIc,EAAWpgF,OAASA,EAAS,EAC7B0D,EAAKmmC,gBAAiB,EAEtBs2C,GAAsB,GAG9BngF,EAASogF,EAAWpgF,OACpBkvC,EAAOkxC,EAAWlxC,KACdA,EAAO,IACHxrC,EAAKvJ,MAAM7iB,OACXosB,EAAKomC,0BAA2B,EAEhCo2C,KAIZhsD,EAAKylD,WAED2F,IACAa,GAAsB,GAE1BngF,IACAkvC,IACIA,EAAO,GACPgxC,IAGRZ,GAAgB,EAQpB,OANIa,GACAhmF,EAAM4lB,OAAO,EAAG,GAEhBmgE,GACA/lF,EAAM4lB,QAAQmgE,EAAsBA,GAEjC,CACHlgF,OAAQA,EACRkvC,KAAMA,GA3DZ,CA6DAv2D,KAAM+T,EAAM,GAAI4R,EAAQ2wC,KAAM3wC,EAAQghF,cAAehhF,EAAQ4wC,MAEnE5wC,EAAQ5R,KAAOA,IAGvBusF,qBAAsBv1E,GAAQ,OAASA,EAAKvJ,MAC5C,wBACI,IAAIkmF,EAAuB,EAC3BjH,EAAuBzgG,KAAMmhG,IACrBA,EAAUzgG,QACVgnG,GAAwBvG,EAAUzgG,MAAQ,KAGlDV,KAAKk1B,SAASwyE,IAElB,gBAAgBnsD,GACZ,IAMIsqD,EANAhzE,EAAO7yB,KACP+L,EAAa8mB,EAAK+rB,YAClB+oD,EAAiB57F,EAAW47F,eAAiB57F,EAAW47F,iBAAmB57F,EAAW4a,YACtFihF,EAAkB77F,EAAWyV,QAC7B6F,EAAS2+E,EAAsBnzE,EAAM80E,EAAiB57F,EAAW6a,YACjEu6E,EAAYtuE,EAAKwvE,cAAc9mD,GAYnC,OATIsqD,EADA1E,IAAcA,EAAU55D,YACN,IAAK,QAAUrK,QAAQikE,EAAUzgG,OAEjCqlG,GAAeh6F,EAAY,CACzCzH,OAAQ86F,GAAkB7jD,EAAM,CAC5Bj3C,OAAQyH,EAAWzH,SACnB2jB,MAAOlc,EAAWkc,YAIvB,eAAK49E,GAAiBrvE,KAAK91B,IAC9BA,EAAQo+C,SAASp+C,EAAM/B,OAAS+B,EAAM,GAAKA,GACvCygG,GACAmF,EAAmBzzE,EAAM+0E,EAAiB,GAAIvgF,GAC9C85E,EAAU55D,YAAc45D,EAAU55D,WAClC45D,EAAUzgG,MAAQA,IAElBygG,EAAY,CACR95E,QAAS,EACT3mB,MAAOA,EACP66C,KAAMA,EACNhU,YAAY,GAEhB++D,EAAmBzzE,EAAM+0E,EAAiB,GAAIvgF,EAAQ85E,GAClDA,EAAU95E,QAAU,GACpBwL,EAAK2vE,aAAarB,IAG1BtuE,EAAKwyE,0BACNp8D,MAAK,WACJl9B,EAAW2sD,gBAAgByE,UAAU,YAAa34D,eAG1D88F,iBAAkB,KAAM,EACxB,QAAQ37E,EAAS6jC,GACb,IAAI32B,EAAO7yB,MAEPmsD,iBAAkBA,GAClBxmC,EACA5Z,EAAa8mB,EAAK+rB,YAEtB,GADA5+C,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBglD,EAAekD,OACf,OAAO+zC,EAAuB5tE,EAAMsuE,IAChC,IAAI0E,EAAkBE,GAAeh6F,EAAY,CAC7CzH,OAAQ86F,GAAkB+B,EAAU5lD,KAAM4Q,KAE1C25C,EAAmBC,GAAeh6F,EAAY,CAC9CzH,OAAQg7F,GAAmB6B,EAAU5lD,KAAM4Q,KAE/C,OAAO,eAAK25C,EAAkBD,GAAiBrvE,KAAK,CAACnP,EAAQ3mB,KACzD2mB,EAASy3B,SAASz3B,EAAO1oB,OAAS0oB,EAAO,GAAKA,GAC9C3mB,EAAQo+C,SAASp+C,EAAM/B,OAAS+B,EAAM,GAAKA,GAC3CygG,EAAU95E,OAASA,EACf85E,EAAUzgG,QAAUA,IACpBygG,EAAUzgG,MAAQA,EAClBmyB,EAAKwyE,6BAGd,KA5UoC,ICNnDwC,GAA6B,0BAC7BC,GAAqC,yBACrCC,GAAkC,sBAClCC,GAAmC,mBACnCC,GAAuC,kBACvCC,GAAwB,qBACxBC,GAA2B,eAC3B,GAA+B,oBAC/BC,GAAoC,CACpC,OACIpoG,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKqoG,uBAET,oBAAoB1iF,GAChB,IAAI5Y,EAAW/M,KAAKsoG,UAChBC,EAAkBvoG,KAAK8uB,OAAO,0BAC9B05E,EAAsBxoG,KAAK8uB,OAAO,qBAClCze,EAAmBsV,EAAUA,EAAQtV,iBAAmBrQ,KAAKqQ,mBAC7Do4F,EAA0Bp4F,EAAiBmX,WAAanX,EAAiBiB,SAAWjB,EAAiBD,QACrGq4F,GAA4Bp4F,EAAiBtD,WAAaw7F,GAAoBC,IAItEz7F,GAAYA,aAAoB,MACxC/M,KAAKsoG,UAAY,IAAI,GAAwBtoG,SAJxC+M,GAAYA,aAAoB,MACjC/M,KAAKsoG,UAAY,IAAI,GAAuBtoG,QAMxD,kBACI,IAAIusD,EAAavsD,KAAKk1B,WACtB,OAAOq3B,EAAa,GAAKvsD,KAAK4+C,YAAY32B,SAAWjoB,KAAK4+C,YAAYkP,oBAAsBvB,EAAavsD,KAAKsoG,UAAUnI,uBAAyB5zC,GAErJ,aACI,OAAOvsD,KAAK4+C,YAAY32B,QAAUjoB,KAAKsoG,UAAU3yC,cAAgB,EAAI31D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAEnG,mBACI,OAAOxE,KAAKsoG,UAAUhH,oBAE1B,qBAAqBv2E,GACjB,OAAO/qB,KAAKsoG,UAAUhI,qBAAqBv1E,IAE/C,cAAcgjC,GACV,IAAIozC,EAAYnhG,KAAKsoG,UAAUjG,cAAct0C,GAC7C,OAAOozC,EAAYA,EAAU55D,YAAcvnC,KAAKsoG,UAAUhH,oBAE9D,YAAYhrF,GACR,OAAOtW,KAAK0oG,mBAAmBpyF,GAAY,IAE/C,UAAUA,GACN,OAAOtW,KAAK0oG,mBAAmBpyF,GAAY,IAE/C,mBAAmBA,EAAYqyF,GAC3B,IAAI58F,EAAa/L,KAAK4+C,YAClB32B,EAAQlc,EAAWkc,QACnBo3E,EAAS,GAASjhD,qBAAqBn2B,GAAS,IACpD,GAAIo3E,EAAO1gG,OAAQ,CACf,IAAK,IAAI6B,EAAI,EAAGA,EAAI6+F,EAAO1gG,OAAQ6B,SAC3B,IAAW8V,GAAcA,IAAe9V,EACxC6+F,EAAO7+F,GAAG+mC,WAAaohE,EAChB1gF,GAASA,EAAMznB,KACtB6+F,EAAO7+F,GAAG+mC,WAAatf,EAAMznB,GAAG+mC,YAGxCx7B,EAAWkc,MAAMo3E,GACjBr/F,KAAKsoG,UAAUvG,cAAc,CAACZ,EAAWxlD,UACjC,IAAWrlC,GAAcA,IAAeqlC,EAAQh9C,OAAS,IACzDwiG,EAAU55D,WAAaohE,KAE5B,GAAO,GACV3oG,KAAK25D,kBAET,OAAO,GAEX,UAEI,OADA35D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnBxE,KAAKsoG,UAAU1iD,QAAQrhD,MAAMvE,KAAKsoG,UAAW9jG,YAExD,gBAAgB+2C,GACZ,IAAIxvC,EAAa/L,KAAK4+C,YACtB,GAAI7yC,EAAWkc,QAKX,OAJAlc,EAAW68F,eACP5oG,KAAKs5D,mBACLt5D,KAAKs5D,iBAAiBjD,aAAc,GAEjCr2D,KAAK6oG,qBAAqBttD,GAAMrY,OAAO,KAC1Cn3B,EAAW+8F,gBAIvB,qBAAqBvtD,GACjB,OAAOv7C,KAAKsoG,UAAUS,gBAAgBxtD,IAE1C,2BAA2BtzB,EAAOsf,GAC9B,GAAItf,GAASxpB,MAAMC,QAAQupB,GACvB,IAAK,IAAIznB,EAAI,EAAGA,EAAIynB,EAAMtpB,OAAQ6B,IAC9B,GAAIynB,EAAMznB,GAAG+mC,aAAeA,EACxB,OAAO,GAKvB,2BAA2B5hB,EAAS6jC,GAChC,IACIn5C,iBAAkBA,GAClBsV,EACAA,EAAQwmC,iBAAiBlkC,OACrB5X,EAAiBtD,WAAa4Y,EAAQymC,kBACjC/7C,EAAiBoX,cAAeznB,KAAKgpG,2BAA2BrjF,EAAQwmC,iBAAiBlkC,OAAO,KACjG5X,EAAiBD,QAAS,IAG7BC,EAAiBtD,UAAcsD,EAAiBiB,SAAYjB,EAAiBmX,YAAa7B,EAAQymC,kBAAmBpsD,KAAKgpG,2BAA2BrjF,EAAQwmC,iBAAiBlkC,OAAO,KACtL5X,EAAiBD,QAAS,KAEtBuV,EAAQymC,iBAAmB/7C,EAAiBD,QAAUo5C,EAAez8C,UAC7E/M,KAAKipG,aAETjpG,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,mBAAmBmhB,GAGf,OAFA3lB,KAAKk1B,SAASvP,GACd3lB,KAAKqoG,oBAAoB1iF,GAClB3lB,KAAKsoG,UAAUY,kBAAkBvjF,IAE5C,kBAAkBA,GACd,OAAO3lB,KAAKsoG,UAAUa,iBAAiBxjF,EAAS3lB,KAAKk1B,SAAShB,KAAKl0B,QAEvE,sBAAsB2lB,GAClB,OAAO3lB,KAAKsoG,UAAUc,qBAAqBzjF,EAAS3lB,KAAKk1B,SAAShB,KAAKl0B,SAG/E,GAAkBmtB,OAAOi7E,IACzB,IAAIiB,GAAiC,CACjC,OACIrpG,KAAKk1B,WACLl1B,KAAKkwB,aAAa,kBAClBlwB,KAAKkwB,aAAa,iBAClBlwB,KAAKkwB,aAAa,mBAClBlwB,KAAKkwB,aAAa,mBAEtB,oBAAoB1O,GAChB,IAAIi2B,EAAez3C,KAAKg/B,mBAAmBsY,kBAK3C,OAJA91B,EAAQxhB,KAAKk1B,SAAS1T,GAClBA,EAAM7iB,QAAU84C,EAAa94C,SAC7B6iB,EAAQxhB,KAAKspG,mBAAmB9nF,EAAOi2B,EAAa94C,SAEjD6iB,GAEX,aAAauJ,EAAMpF,GAOf,OANI,eAAUoF,EAAKzU,aAAe,eAASyU,EAAK6S,UAAY,IAAM7S,EAAK6S,QAAQr7B,QAAQ,UACnFwoB,EAAO/qB,KAAKupG,kBAAkBx+E,EAAMpF,GACpCA,EAAQ2Y,UAAY,GAEpBvT,EAAO/qB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAE9BumB,GAEXw+E,kBAAmBx+E,GAAQA,EAC3B,mBAAmBvJ,EAAO28B,EAAax4B,GACnC,IAAI6jF,EAAiBxpG,KAAKg/B,mBAAmBsY,kBACzCt1C,EAASwnG,EAAeA,EAAe7qG,OAASw/C,GACpD,IAAKx4B,EAAS,CACV,IAAI8nC,EAAgBztD,KAAK8uB,OAAO,kBAChCnJ,EAAU,CACN8jF,yBAA0B,YAAch8C,GAAiB,aAAeA,EACxEi8C,YAAa,GACbnuD,KAAM,GACN33C,OAAQ,IAGhB,IACI8lG,YAAaA,GACb/jF,EAaJ,GAZIA,EAAQ5R,QACJ4R,EAAQ8jF,0BAA6B9jF,EAAQ5R,KAAKm9C,gBAClDw4C,EAAYjqG,KAAK,CACbm+B,QAAS,QACT7pB,KAAM4R,EAAQ5R,KACduC,WAAYqP,EAAQ41B,KAAK58C,OAAS,EAClC4oC,aAAc5hB,EAAQ5R,KAAKyN,MAC3BusC,IAAKpoC,EAAQ41B,KAAK/4C,MAAM,GACxBoB,OAAQ+hB,EAAQ/hB,OAAOpB,MAAM,MAIrCgf,EACA,GAAI,IAAM28B,EACNurD,EAAYjqG,KAAK8E,MAAMmlG,EAAaloF,QAEpC,IAAK,IAAIhhB,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAIuqB,EAAOvJ,EAAMhhB,GACbuqB,GAAQ,UAAWA,GACnBpF,EAAQ5R,KAAOgX,EACfpF,EAAQ41B,KAAK97C,KAAKsrB,EAAKgjC,KACvBpoC,EAAQ/hB,OAAOnE,KAAKuC,GAAUA,EAAO0zC,mBAAqB1zC,EAAOc,sBAAwBd,EAAO0zC,iBAAiB3qB,EAAKgjC,KAAOhjC,EAAKgjC,KAClI/tD,KAAKspG,mBAAmBv+E,EAAKvJ,MAAO28B,EAAc,EAAGx4B,GACrDA,EAAQ5R,UAAO,EACf4R,EAAQ41B,KAAKylD,MACbr7E,EAAQ/hB,OAAOo9F,OAEf0I,EAAYjqG,KAAKsrB,GAKjC,OAAO2+E,GAEX,gBACI,OAAO1pG,KAAKk1B,WAAW7J,OAAO,CAAC,cAAe,YAAa,gBAAiB,YAAa,iBAE7F,YAAY/U,GACR,IAAIvK,EAAa/L,KAAK4+C,YAClB7yC,GAAcA,EAAWitF,YAAY1iF,KACrCvK,EAAW4a,UAAU,GACrB5a,EAAW2gD,WAGnB,UAAUp2C,GACN,IAAIvK,EAAa/L,KAAK4+C,YAClB7yC,GAAcA,EAAW2sF,UAAUpiF,KACnCvK,EAAW4a,UAAU,GACrB5a,EAAW2gD,WAGnB,gBAAgBqB,GACZ,IAAIl7B,EAAO7yB,KACPgtF,EAAWn6D,EAAK0tC,cAAcxS,GAC9B//B,EAAO,CACP+/B,IAAKA,EACLi/B,SAAUA,GAGd,OADAn6D,EAAK9E,cAAci/D,EAAW,kBAAoB,iBAAkBh/D,GAC/DA,EAAK7T,QAMH,IAAK,QAAU+iB,UALX,eAAKrK,EAAKg2E,qBAAqB96C,IAAMv3B,KAAK,KAC7CxI,EAAKg/D,UAAYA,EACjBn6D,EAAK9E,cAAci/D,EAAW,iBAAmB,gBAAiBh/D,MAK9E,qBAAqB+/B,GACjB,IAAIl7B,EAAO7yB,KACP+L,EAAa/L,KAAK4+C,YAClB8V,EAAI,IAAI,OAQZ,OAPK3oD,EAGD,eAAKA,EAAWg9F,gBAAgBh7C,IAAMv3B,KAAK,KACvC3D,EAAKo1B,OAAOzxB,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAE7xB,UACpCoG,KAAKyrB,EAAE7xB,QAJV6xB,EAAEx3B,UAMCw3B,GAEX,cAAc3G,GACV,IAAIhiD,EAAa/L,KAAK4+C,YACtB,OAAO7yC,GAAcA,EAAWw0D,cAAcxS,IAElD,UAAUA,GACN,OAAK/tD,KAAKugE,cAAcxS,IAGjB,IAAK,QAAU7wB,UAFXl9B,KAAK+oG,gBAAgBh7C,IAIpC,YAAYA,GACR,OAAI/tD,KAAKugE,cAAcxS,GACZ/tD,KAAK+oG,gBAAgBh7C,IAEzB,IAAK,QAAU7wB,WAE1B,cAAclP,GACN,aAAeA,EAAKra,OACpBqa,EAAKra,KAAO,cAEhB3T,KAAKk1B,SAASlH,KAGlB27E,GAA0B,SAAS3nG,EAAQ6vC,GAC3C,IAAI7gB,EAAoBhxB,KAAKg/B,mBAC7B,OAAQ6S,EAAOE,SAAS/zC,OACpB,IAAK,QACD,IAAIqhG,EAASruE,EAAkB4tB,YAAY32B,SAAW,GACtD+I,EAAkBoa,aAAappC,EAAOY,UAAW,aAAcy8F,EAAO1gG,QACtE,MACJ,IAAK,UACDqyB,EAAkBoa,aAAappC,EAAOY,UAAW,cAAe,GAChE,MACJ,IAAK,aACD5C,KAAKixB,UAAU24E,kBAGvBC,GAAsB3pD,IACtB,IAAIruC,EAAU,OAASquC,QAAqB,IAAWA,OAAoB,EAASA,EAAkBruC,QACtG,MAAO,SAAWA,EAAU,YAAcyqF,GAAA,KAAQwN,UAAU7yB,aAAeplE,GAE3Ek4F,GAAgB,CAAC7pD,EAAmBl+C,KACpC,IAAIk0B,EAAY2zE,GAAoB3pD,GAChC8pD,GAAW,OAAS9pD,QAAqB,IAAWA,OAAoB,EAASA,EAAkBr7B,sBAAwB7iB,EAAO2S,cACtI,OAAOuhB,KAAe8zE,GAEfC,GAA8B,CACrC,mBACI,IAAIzoF,EAAQxhB,KAAKk1B,WACjB,OAAOl1B,KAAKkqG,oBAAoB1oF,IAEpC,oBAAoBA,GAChB,GAAIxhB,KAAKmqG,uBAAwB,CAC7B,IAAIC,GAAa,EACbtjF,EAAc,CACdjT,SAAU,KACN,IAAIw2F,EAAc,eAAE,SAAS39E,SAASm7E,IAGtC,OAFA7nG,KAAKsqG,yBAAyBD,GAC9B,EAAuB,aAAcrqG,KAAMqqG,OAAa,EAAQrqG,KAAKuvC,qBAAqBrb,KAAKl0B,OACxFqqG,GAEX12F,KAAM,aACNyhE,eAAgB,KACZg1B,GAAcpqG,KAAK21B,gBAAgBc,OACnC2zE,GAAa,GAEjB3kF,SAAU,SACVD,aAAc,QACdxO,UAAW,GAEfwK,EAAM/hB,KAAKqnB,GACX9mB,KAAKs2E,0BAET,OAAO90D,GAEX,qBAAqBwM,GACjB,IACI/B,MAAOA,GACP+B,EACApB,EAAU,eAAEX,EAAMvpB,QAClBk8D,EAAmBhyC,EAAQ8H,QAAQ,IAAIrJ,OAAO08E,KAAkC9lG,QAChFD,EAAShC,KAAKg/B,mBAAmBsY,kBAAkBsnB,GACnD1/B,EAAcl9B,GAAUA,EAAOC,MAC/B2qB,EAAQgI,GAAG,IACX50B,KAAKgwB,cAAc,gBAAgB4f,qBAAqB1Q,GAAa,GAErEl/B,KAAK2+D,wBAAwBz/B,GAEjCjT,EAAM4S,kBAEV,uBACI,OAAOgrE,GAAoB7pG,KAAK8uB,OAAO,gBAE3C,uBAAuBu7E,EAAa5yD,GAChC,IAAI5kB,EAAO7yB,KACXqqG,EAAYl2E,QACZ,eAAKsjB,EAAc,CAACx1C,EAAOunB,KACvBqJ,EAAK03E,sBAAsBF,EAAa7gF,KAE5C,EAAaxpB,OAEjB,sBAAsBy+D,EAAcj1C,GAChC,IAAIghF,EAAkB,eAAE,SAAS99E,SAASlD,EAAY/V,UAAUiZ,SAASq7E,IAAiCh0F,KAAK,aAAcyV,GAAa6M,SAASooC,GAAc3qD,KAAK0V,EAAYhU,SAElL,OADAsa,EAAY9vB,KAAMwqG,GACXA,GAEX,qBAAqBv7E,GACjB,IAAKjvB,KAAKo1B,gBAAkB,GAASqS,aAAaxY,EAAEuY,YAAa,CAAC,QAAS,iBAAkB,CACzF,IAAIijE,EAAkBzqG,KAAKitB,UACvBo9E,EAAcI,GAAmBA,EAAgBl9E,KAAK,IAAIlC,OAAOw8E,KACjEwC,GAAeA,EAAY1rG,SAC3BqB,KAAKsqG,yBAAyBD,GAC9BrqG,KAAKs2E,0BACLt2E,KAAK21B,gBAAgBc,QAG7Bz2B,KAAKk1B,YAET,yBAAyBm1E,GACrB,IAAI5yD,EAAez3C,KAAKgwB,cAAc,WAAWsnB,kBAC7C4I,EAAoBlgD,KAAK8uB,OAAO,cACpC9uB,KAAK0qG,uBAAuBL,EAAa5yD,GACrCyI,EAAkBr7B,sBAAwB4yB,EAAa94C,SACvD,eAAE,SAAS+tB,SAASo7E,IAAoCh0F,KAAKosC,EAAkB/nC,gBAAgBke,SAASg0E,GACxGA,EAAY31E,QAAQ,IAAIrJ,OAAO48E,KAAuCv7E,SAASs7E,IAC/EqC,EAAY31E,QAAQ,IAAIrJ,OAAO28E,KAAmCv2E,IAAI,WAAY,UAG1F,cAAczvB,GACV,IAAIk+C,EAAoBlgD,KAAK8uB,OAAO,cACpC,OAAOi7E,GAAc7pD,EAAmBl+C,IAE5C,oBACI,IAAI6sB,EAAW7uB,KAAKitB,UACpB,OAAO4B,GAAYA,EAAStB,KAAK,IAAIlC,OAAO08E,MAEhD,aACI,OAAO/nG,KAAKgwB,cAAc,WAAWsnB,mBAEzC,kBACI,IAAIzoB,EAAW7uB,KAAKitB,UACpB,GAAI4B,GAAYA,EAAStB,KAAK,IAAIlC,OAAOw8E,KAA6BlpG,OAAQ,CAC1E,IAAI0oB,EAASwH,EAASxH,SACtB,MAAO,CACH9D,IAAK8D,EAAO9D,IACZosD,OAAQtoD,EAAO9D,IAAM,eAAUsL,IAGvC,OAAO,MAEX4iB,QAAS,IAAM,QACf,oBAAoB9rB,GAChB,IAEInE,EAFAkC,EAAqB1jB,KAAK8uB,OAAO,+BACjC67E,EAAwB,eAAEhlF,EAAQgkD,eAAej1C,QAAQ,IAAIrJ,OAAO08E,KAKxE,GAHI4C,EAAsBhsG,SACtBgnB,EAAQ3jB,OAAS2oG,EAAsB52F,KAAK,eAE5C2P,GAAsBiC,EAAQ3jB,OAAQ,CACtC,IACIA,OAAQA,GACR2jB,EACAilF,GAAoB,eAAU5oG,EAAO2S,gBAAiB3S,EAAO2S,cACjE,GAAIi2F,EAAmB,CACnB,IAAIC,EAAkB,eAAU7oG,EAAOsU,aAAetU,EAAOsU,YAAc,EACvEsN,EAAgB5jB,KAAK8uB,OAAO,kBAC5B8iB,EAAc+3D,GAAwBz1E,KAAKl0B,KAAMgC,GACrDwf,EAAQ,CAAC,CACL1N,KAAM8P,EAAcI,QACpBhmB,MAAO,UACPiO,UAAW4+F,EACXj5D,YAAaA,GACd,CACC99B,KAAM8P,EAAcK,WACpBjmB,MAAO,aACP4zC,YAAaA,KAIzB,OAAOpwB,GAEX,YACI,OAAOxhB,KAAKk1B,YAAcl1B,KAAKmqG,wBAEnC,oBACI,OAAOnqG,KAAKmqG,0BAA4BnqG,KAAKiyB,aAAatzB,QAE9D,cAAcqvB,GACN,eAAiBA,EAAKra,MACtB3T,KAAK+nC,cACL/Z,EAAKC,SAAU,GAEfjuB,KAAKk1B,SAASlH,KAItB88E,GAA2B,CAC3B,oBAAoBnlF,GAChB,IACInE,EADAkC,EAAqB1jB,KAAK8uB,OAAO,+BAErC,GAAIpL,GAAsBiC,EAAQ0Y,KAAO,UAAY1Y,EAAQ0Y,IAAIT,QAAS,CACtE,IAAI5M,EAAoBhxB,KAAKg/B,mBACzBh9B,EAASgvB,EAAkBoa,aAAa,cAAc/f,OAAO1F,EAAQ0Y,IAAI/nB,aAC7E,GAAItU,GAAUA,EAAO2S,cAAe,CAChC,IAAIiP,EAAgB5jB,KAAK8uB,OAAO,kBAC5B8iB,EAAc+3D,GAAwBz1E,KAAKl0B,KAAMgC,GACrDwf,EAAQ,GACRA,EAAM/hB,KAAK,CACPqU,KAAM8P,EAAcI,QACpBhmB,MAAO,UACP4zC,YAAaA,GACd,CACC99B,KAAM8P,EAAcK,WACpBjmB,MAAO,aACP4zC,YAAaA,KAIzB,OAAOpwB,GAEX,UAAUyN,GACN,IAAItL,EAAa3jB,KAAK8uB,OAAO,uBACzB2+B,EAAgBztD,KAAK8uB,OAAO,kBAC5Bi8E,EAAyB,aAAet9C,GAAiB,aAAe9pC,GAAc,eAAEsL,EAAEhD,MAAMvpB,QAAQgyB,QAAQ,IAAIrJ,OAAO88E,KAA2BxpG,OACtJqsG,EAAwB,eAAE/7E,EAAEhD,MAAMvpB,QAAQgyB,QAAQ,IAAIrJ,OAAO68E,KAAwBvpG,QACrFosG,GAA0BC,IAC1BhrG,KAAKirG,qBAAqBh8E,GAE9BjvB,KAAKk1B,SAASjG,IAElB,qBAAqBA,GACjB,IAAI82B,EAAiB/lD,KAAKgwB,cAAc,QACpCqO,EAAM0nB,EAAevkC,QAAQyN,EAAE4M,UAC/BrY,EAAkBxjB,KAAKg/B,mBAAmBoM,aAAa,cAAc/f,OAAOgT,EAAI/nB,YAAa,oBAC7F,SAAW+nB,EAAIT,SAAW,UAAYS,EAAIT,UAAW,IAAUpa,KAC/DuiC,EAAegjD,gBAAgB1qE,EAAI0vB,KAAK,GACxC9+B,EAAEhD,MAAM4S,iBACR5P,EAAEhB,SAAU,KAIpBi9E,GAA4B,CAC5B,oBAAoBvlF,GAChB,IAAIjC,EAAqB1jB,KAAK8uB,OAAO,+BACjCtN,EAAQxhB,KAAKk1B,SAASvP,GAC1B,GAAIjC,GAAsBiC,EAAQ0Y,MAAQ,WAAa1Y,EAAQ0Y,IAAIT,SAAW,mBAAqBjY,EAAQ0Y,IAAIT,SAAU,CACrH,IACI57B,OAAQA,GACR2jB,EACJ,IAAK3jB,EAAOwwB,WAAa,eAAUxwB,EAAO2S,gBAAkB3S,EAAO2S,eAAgB,CAC/E,IAAIiP,EAAgB5jB,KAAK8uB,OAAO,kBAC5B+7E,EAAkB,eAAU7oG,EAAOsU,aAAetU,EAAOsU,YAAc,EACvEs7B,EAAc+3D,GAAwBz1E,KAAKl0B,KAAMgC,GACrDwf,EAAQA,GAAS,GACjBA,EAAM/hB,KAAK,CACPqU,KAAM8P,EAAcC,kBACpB7lB,MAAO,QACPmtG,YAAY,EACZl/F,SAAU4+F,EACVj5D,YAAaA,IAEb5vC,EAAO+U,iBACPyK,EAAM/hB,KAAK,CACPqU,KAAM8P,EAAcI,QACpBhmB,MAAO,UACPiO,UAAW4+F,EACXj5D,YAAaA,IAGrBpwB,EAAM/hB,KAAK,CACPqU,KAAM8P,EAAcK,WACpBjmB,MAAO,aACP4zC,YAAaA,KAIzB,OAAOpwB,GAEX,cAAcxf,GACV,IAAIk+C,EAAoBlgD,KAAK8uB,OAAO,cACpC,OAAOi7E,GAAc7pD,EAAmBl+C,IAAWhC,KAAKk1B,SAASlzB,KAGzE,GAASowC,eAAe,WAAY,CAChClF,eAAgB,KAAM,CAClBngC,SAAU,CACN0W,eAAe,EACfD,iBAAiB,EACjBE,oBAAoB,EACpBC,WAAY,cACZ3K,MAAO,CACH+K,sBAAuB,OAAoBhmB,OAAO,oCAClD+lB,sBAAuB,OAAoB/lB,OAAO,oCAClD8lB,kBAAmB,OAAoB9lB,OAAO,8BAC9CimB,QAAS,OAAoBjmB,OAAO,gCACpCkmB,WAAY,OAAoBlmB,OAAO,+BAG/CiP,WAAY,CACR6E,SAAS,EACTsG,eAAgB,OAAoBpa,OAAO,kCAC3C8mB,qBAAqB,KAG7ByU,UAAW,CACPP,YAAa,CACThlB,KAAMs1F,GACN39F,QAAS,CACL,0BACI,IAAIia,EAAU3lB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAExC,OADAmhB,EAAQlQ,aAAe,GAAS21F,wBACzBzlF,IAGfzZ,QAAS,CACLm/F,iBAAkBtgF,GAAQ,eAAUA,EAAKzU,aAAe,eAASyU,EAAK6S,UAAY,IAAM7S,EAAK6S,QAAQr7B,QAAQ,WAGrHy2B,MAAO,CACH8lC,YAAamrC,GACbv+E,SAAUo/E,GACV39D,kBAAmB+9D,OC1kB/B,IAAII,GAA2B,wBAC3BC,GAA0B,uBAC1B,GAA4B,yBAC5B,GAAkB,eACXC,GAAqB,CAC5Bt+D,eAAgB,KAAM,CAClB1/B,aAAc,CACV4K,SAAS,EACTqL,eAAe,EACf5P,SAAU,QAGlBylB,UAAW,CACPP,YAAa,CACTrtB,QAAS,CACL,wBACI,IAAIwwC,EAAgBl8C,KAAKk1B,WAOzB,OANIl1B,KAAK8uB,OAAO,yBACZotB,EAAcz8C,KAAK,CACfrB,KAAM,eACNqX,aAAc,QAAc21F,0BAG7BlvD,IAGfnoC,KAAM,WACF,IAAI03F,EAAmB,SAAS54E,GAC5BA,EAAK64E,eAAiB,GACtB74E,EAAK84E,aAAe94E,EAAK/D,OAAO,+BAEpC,MAAO,CACH,OACI28E,EAAiBzrG,MACjBA,KAAKk1B,YAET,UAAU5e,GACFA,EAAa,GACbtW,KAAK2rG,cAAe,EACpB3rG,KAAK0rG,eAAiB,GACtB1rG,KAAKksD,eAELlsD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAGlC,YAAY8R,GACJA,EAAa,GACbtW,KAAK2rG,cAAe,EACpB3rG,KAAK0rG,eAAiB,GACtB1rG,KAAKksD,eAELlsD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAGlC,cAAcupD,GACV,IAAI69C,EAAc,QAAc/2C,cAAc9G,EAAK/tD,KAAK0rG,gBACxD,OAAIjtG,MAAMC,QAAQqvD,GACP/tD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,cAE3BxE,KAAK2rG,cAAgBC,GAAe,GAAK5rG,KAAK0rG,eAAeE,GAAa/5F,WAExF,wBAAwBk8C,GACpB,IAAIlyB,EAAW77B,KAAK80D,iBAAiB/G,GACrC,MAAO,CAAClyB,EAAUA,EAAW,IAEjC,qBAAqBkyB,GACjB,IAAI7rD,EACJ,GAAIzD,MAAMC,QAAQqvD,GACd7rD,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,eAChC,CACH,IAAIonG,EAAc,QAAc/2C,cAAc9G,EAAK/tD,KAAK0rG,gBACxD,GAAIE,GAAe,EAAG,CAClB,IACI/5F,QAASA,GACT7R,KAAK0rG,eAAeE,GACxB5rG,KAAK0rG,eAAeE,GAAa/5F,SAAWA,OAE5C7R,KAAK0rG,eAAejsG,KAAK,CACrBsuD,IAAKA,EACLl8C,SAAS,IAGjB7R,KAAKksD,YAAY,CACbjoB,WAAY,SACZirB,WAAYlvD,KAAK6rG,wBAAwB99C,KAE7C7rD,GAAS,IAAK,QAAUg7B,UAE5B,OAAOh7B,GAEX,iBAAiB6R,EAAM4R,GACnB,IAAIipC,EAAW5uD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAezC,OAdAoqD,EAASrnB,WAAavnC,KAAKugE,cAAc3R,EAASb,UAC9C,IAAWpoC,EAAQmmF,oBACnBnmF,EAAQmmF,mBAAqB,EAC7B,eAAKnmF,EAAQoZ,eAAgB,CAAC98B,EAAOD,KACjC,GAAI,WAAaA,EAAOwwB,UAAY,eAAUxwB,EAAOsU,YAEjD,OADAqP,EAAQmmF,kBAAoB7pG,GACrB,KAKf0jB,EAAQmmF,mBAAqB,IAC7Bl9C,EAAShrD,OAAO+hB,EAAQmmF,mBAAqBl9C,EAASrnB,YAEnDqnB,GAEX,cAAcptC,EAAOjG,GACjB,IAAIsX,EAAO7yB,MAEPikC,WAAYA,GACZ1oB,EACArZ,EAAS,GAEb,OADAsf,EAAQqR,EAAKqC,SAAS3wB,MAAMsuB,EAAMruB,WAC9B,eAAiBy/B,EACVziB,GAEP,YAAcyiB,IACdpR,EAAK64E,eAAiB,eAAK74E,EAAK64E,eAAgB3gF,GAAQA,EAAKlZ,UAEjE,eAAK2P,EAAO,CAACvf,EAAO8oB,KAChB7oB,EAAOzC,KAAKsrB,GACZ,IAAI6gF,EAAc,QAAc/2C,cAAc9pC,EAAKgjC,IAAKl7B,EAAK64E,gBACzD,SAAW3gF,EAAK6S,UAAY7S,EAAKwc,YAAcqkE,GAAe,KAAO7gF,EAAK61C,UAC1E1+D,EAAOzC,KAAK,CACRoS,QAASkZ,EAAKwc,WACd3J,QAAS,SACTmwB,IAAKhjC,EAAKgjC,IACVh6C,KAAMgX,EAAKhX,KACXnQ,OAAQ,OAIb1B,IAEX,cAAc8rB,GACV,IAAI+9E,EACAC,EACJ,GAAI,iBAAmBh+E,EAAKra,KAAM,CAE9B,OADAqa,EAAKra,KAAO,aACJqa,EAAKixB,UACT,IAAK,eACD,IAAIjhD,EAAQgwB,EAAKhwB,OAAS,GACtBghD,EAAgBhxB,EAAKgxB,eAAiB,GAC1C+sD,EAAmB/tG,EAAMoa,UAAY4mC,EAAc5mC,QACnD4zF,EAAyBhuG,EAAMylB,gBAAkBu7B,EAAcv7B,cAC/D,MACJ,IAAK,wBACDgoF,EAAiBzrG,MACjB,MACJ,IAAK,uBACD+rG,GAAmB,EACnB,MACJ,IAAK,6BACDC,GAAyB,GAE7BD,GAAoBC,IACpBP,EAAiBzrG,MAGzBA,KAAKk1B,SAASlH,KAvIpB,GA2INumD,SAAU,CACN,yBACIv0E,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKisG,uBAAuBjsG,KAAKixB,UAAUpC,aAE/C,uBAAuBA,GACnB,IAAIq9E,EAAmBr9E,EAAS6F,QAAQ,IAAIrJ,OAAOkgF,KAC/CW,EAAiBvtG,QACjB,eAAKqB,KAAKmsG,sBAAsBD,EAAkBr9E,IAAW2H,KAAK,KAC9Dx2B,KAAKisG,uBAAuBC,EAAiB55E,aAIzD,sBAAsB45E,EAAkBE,GACpC,IAAIC,EAAmB,eAAEH,GAAkBn4F,KAAK,WAC5Cu4F,EAAiB,eAAEJ,GAAkBx3E,QAAQ,IAAIrJ,OAAOrrB,KAAK20B,4BAA4BrC,SAASve,KAAK,cAC3G,GAAIs4F,GAAoBC,EACpB,OAAOtsG,KAAKusG,0BAA0BD,EAAgBD,IAG9D,0BAA0BC,EAAgBD,GACtC,IAAI33C,EAAI,iBACR,GAAI43C,EAAez9D,QAAQ,YAAY29D,iBACnCxsG,KAAKysG,8BAA8BH,EAAgBD,EAAiBxwE,SAAU,eAAEwwE,EAAiBtwE,aAAavF,KAAKk+B,EAAEx3B,aAClH,CACH,IAAI,IAASovE,EAAex9E,OAAO,uBAE/B,YADAw9E,EAAev6B,mBAAmBv7C,KAAK,IAAMk+B,EAAEx3B,SAAQ,IAG3D,IAAIuiC,EAAa6sC,EAAersC,gBAC5BR,EACA,OAASA,QAAc,IAAWA,GAAsBA,EAAWp4B,SAAS7Q,KAAK,IAAMk+B,EAAEx3B,WAEzFw3B,EAAEx3B,UAGV,OAAOw3B,EAAEzxB,WAEb,8BAA8BqpE,EAAgBI,EAAgBN,GAC1D,IAAI13C,EAAI,iBACJ5qB,EAAQ,eAAEwiE,EAAeK,cAAcD,IACvCE,EAAU,eAAEN,EAAez9D,QAAQ,YAAY9D,oBAC/C8hE,EAAe,KAAO,OAAS/iE,QAAS,IAAWA,OAAQ,EAASA,EAAMnrC,SAAW,eAAUmrC,EAAMva,GAAG,MAAQ,eAAUua,EAAMva,GAAG,IACnIu9E,EAAiB,KAAO,OAASF,QAAW,IAAWA,OAAU,EAASA,EAAQjuG,SAAW,eAAUiuG,EAAQr9E,GAAG,MAAQ,eAAUq9E,EAAQr9E,GAAG,IACnJ,GAAIs9E,GAAgBC,EAAgB,CAChC,IAAIC,EAAqB,eAASX,GAUlC,OATAE,EAAev6B,mBAAmBv7C,KAAK,KACnC,IAAIw2E,EAAqChtG,KAAK8uB,OAAO,qBAAsB,IAASw9E,EAAex9E,OAAO,uBACtGm+E,EAA2BD,GAAsCD,IAAuB,eAASX,GACjGY,GAAsCC,EACtCjtG,KAAK+xE,mBAAmBv7C,KAAK,IAAMk+B,EAAEx3B,SAAQ,IAE7Cw3B,EAAEx3B,SAAQ,KAGXw3B,EAAEzxB,UAEb,OAAO,iBAAW/F,WAEtB,mBAAmB8wC,GAEf,GADAhuE,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,KAAK8uB,OAAO,yBAA0B,CACtC,IAAIs/C,EAAapuE,KAAK0qE,UAAU7gC,kBAC5BukC,GACAA,EAAW7gD,KAAK,0BAA0BkE,IAAI,WAAYu8C,EAAY,EAAI,QAM9Fh1C,MAAO,CACHtN,SAAU,CACN,iBAAiB/F,GACb,IAKI9R,GAJA7R,OAAQA,GACR2jB,EACAy4C,EAAoBp+D,KAAKgwB,cAAc,WACvCk9E,EAAY9uC,GAAqBA,EAAkB8uC,UAAUvnF,EAAQkW,UAUzE,OAFIhoB,EANA,WAAa7R,EAAOwwB,SAAY06E,EAMrBltG,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAL1BxE,KAAK8uB,OAAO,0BAA4B,CAC/CoT,gCAAgC,EAChC3M,OAAQv1B,KAAKmvC,oBAAoBntC,IAKlC6R,GAEXs5F,aAAc9uE,GAAOA,GAAOA,EAAIT,SAAW,IAAMS,EAAIT,QAAQr7B,QAAQ,UACrE,WAAW87B,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAQrC,OAPI65B,GAAOr+B,KAAKmtG,aAAa9uE,KACzBr+B,KAAK8uB,OAAO,iBAAmBgQ,EAAKpS,SAAS,IAC7CoS,EAAKpS,SAAS6+E,IACV,eAAUltE,EAAIxsB,UACditB,EAAK8jC,OAAOvkC,EAAIxsB,UAGjBitB,GAEX,aAAaA,EAAMnZ,GACf,IAGIynF,GAFA/uE,IAAKA,GACL1Y,EAEAoZ,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzCZ,EAAIT,SAAW59B,KAAKmtG,aAAa9uE,GAC7Br+B,KAAKglC,gBAAgB,EAAGrf,EAAQ2e,iBAChC8oE,EAAcptG,KAAKilC,YAAYnG,EAAM,CACjC9gC,MAAO,KACPqgC,IAAKA,EACLxC,SAAUwC,EAAIxC,SACd75B,OAAQ,CACJwwB,QAAS,UAEb0M,YAAa,EACb3jB,OAAQoK,EAAQpK,SAEpB6xF,EAAY1gF,SAAS,IAA2BA,SAAS4+E,IAA0Bx+E,KAAK,UAAWiS,EAAepgC,SAGtHqB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,gBC9SlD,GAAS4tC,eAAe,eAAgBo5D,I,4CCsBpC70D,UAAWA,K,UACX,SAMA02D,GAAsB,gBACtBC,GAAsB,yBACtBC,GAAqB,WACrB,IAAIC,EAAkB,SAASx5E,EAAQrO,GACnC,OAAO,OAAAwH,EAAA,MAAO6G,EAAQ,CAClBjS,SAAU4D,EAAQ5D,SAClBuH,YAAa3D,EAAQ2D,YACrBmkF,UAAW,CACPj1D,GAAI7yB,EAAQ6yB,GACZ,kBAAmB7yB,EAAQ,oBAE/BjU,SAAUiU,EAAQjU,UACnBiU,EAAQ/P,gBAEX83F,EAAgB,WAChB,OAAOjvE,EAAA,KAAQG,SAAW09D,GAAA,KAAQC,OAAOoR,KAEzCC,EAAsB,SAASjoF,GAC/B,IAAI5R,EAAO,GACP85F,EAAaH,IACbI,EAAanoF,EAAQmoF,YAAc/5F,EACvC,OAAOy5F,EAAgB,CACnBlkF,YAAa3D,EAAQ2D,YACrBxX,MAAO6T,EAAQ7T,MACf9T,MAAO2nB,EAAQ3nB,MACfof,eAAgB,SAAS6R,GACrB,IAAI8+E,EAAoB,cAAgBpoF,EAAQs7D,YAAc,gBAAkBt7D,EAAQs7D,WACpF+sB,EAAsB/+E,EAAEhD,QAAU,UAAYgD,EAAEhD,MAAM7tB,MAAQ,UAAY6wB,EAAEhD,MAAM7tB,MAClF6vG,EAAc,SAASh/E,EAAG0rB,GAC1Bh1B,GAAWA,EAAQuoF,SAASj/E,EAAEjxB,MAAO28C,IAEzClf,aAAa1nB,EAAKo6F,oBACdH,GAAuBD,EACvBD,EAAWK,mBAAqBp6F,EAAKo6F,mBAAqB3yE,YAAW,WACjEyyE,EAAYh/E,EAAGlb,EAAKo6F,qBAAuBL,EAAWK,sBACtD,eAAUxoF,EAAQyoF,oBAAsBzoF,EAAQyoF,mBAAqB,GAEzEH,EAAYh/E,IAGpBlgB,UAAW,SAASkgB,GACZ4+E,GAAc,UAAY,eAAiB5+E,EAAEhD,QAC7C,OAAauD,QAAQ,eAAEP,EAAEgC,UAAUo9E,UAAW,WAGtDC,iBAAkB,UAAY,cAAgB3oF,EAAQs7D,WAAa,eAAiB,KACrFt7D,IAEH4oF,EAAiB,SAAS5oF,GAC1BA,EAAQ6oF,WAAa,YACrB7oF,EAAQ/P,cAAgB43F,EAAgB,CACpCxvG,MAAO2nB,EAAQ3nB,MACfof,eAAgB,SAAS4Q,GACrBrI,EAAQuoF,SAASlgF,EAAKhwB,QAE1B+Q,UAAW,SAASooB,GAChB,IACIlG,UAAWA,EACXhF,MAAOA,GACPkL,EACAs3E,EAAkBx9E,EAAUnC,OAAO,oBAClC4+E,KAAmBe,IAAoB,UAAY,eAAiBxiF,KACrEgF,EAAUy9E,OACVz9E,EAAUtC,UAGlBxK,cAAewB,EAAQ5nB,OACvBK,KAAMunB,EAAQ7jB,SACdkK,wBAAyB,KACzB8F,MAAO,kBAAoB6T,EAAQs7D,gBAAa,EAAS,QAC1Dt7D,IAEHgpF,EAAiB,SAAShpF,GAC1B,IAOI3nB,EAPAg2B,EAAS45E,EAAoBjoF,GAC7BipF,EAAc,gBAAkBjpF,EAAQs7D,WACxCt7D,EAAQ5C,YAAc,cAAgB4C,EAAQ5C,WAC9CiR,EAAOh2B,MAAQ2nB,EAAQ3nB,MAEvBg2B,EAAOh2B,OAASA,EAAQ2nB,EAAQ3nB,MAAO,eAAUA,GAASA,EAAMK,WAAa,IAGjF21B,EAAOs6E,kBAAoBM,EAAc,sBAAwB,GACjE56E,EAAO3b,KAAO2b,EAAO3b,OAASu2F,EAAc,SAAW,QACvDjpF,EAAQ6oF,WAAa,YACrB7oF,EAAQ/P,cAAgBoe,GAExB66E,EAAmB,SAASlpF,GAC5B,IAAIqO,EAAS45E,EAAoBjoF,GACjCqO,EAAOh2B,MAAQ,eAAU2nB,EAAQ3nB,OAAS2nB,EAAQ3nB,MAAQ,KAC1D2nB,EAAQ6oF,WAAa,cACrB7oF,EAAQ/P,cAAgBoe,GAG5B,SAAS86E,EAAoBnpF,GACzB,IACIopF,EACAhjG,EACAijG,EAHA3qG,EAASshB,EAAQthB,OAIjBm7B,EAAc,cAAgB7Z,EAAQs7D,WAC1C,GAAI58E,EAAQ,CACR,IAAI4qG,EACJF,EAAgB,gBAAc1qG,EAAOqV,aACrC3N,EAAa1H,EAAO0H,WAChB,eAAWA,KAAgB4qC,GAAU5qC,KACrCA,EAAaA,EAAW4Z,EAAQ0Y,KAAO,IACrC,SAAS1Y,GACP,GAAIA,EAAQ0Y,KAAO1Y,EAAQ0Y,IAAIuI,OAAS,YAAcjhB,EAAQs7D,WAAY,CACtE,IAEIiuB,EAFAt5F,EAAgB+P,EAAQ/P,eAAiB,GAC7C+P,EAAQ/P,cAAgBA,EAExB,IAMI7J,EANA8C,EAAgB+G,EAAc/G,cAClC+G,EAAc/G,cAAgB,SAASogB,GACnCpgB,GAAiBA,EAActK,MAAMvE,KAAMwE,WAC3C0qG,EAAYjgF,EAAEgC,UACdi+E,EAAU5gF,GAAG,YAAa6gF,IAG9B,IAAIA,EAAYxpF,EAAQ0Y,IAAIuI,MAAM,KAC9B76B,EAAa4Z,EAAQthB,OAAO0H,WAAW4Z,EAAQ0Y,KACxCtyB,GAAcA,EAAWzH,QACjC,KACC4qG,EAAUpgF,OAAO,aAAc/iB,IAChCsyB,IACC1Y,EAAQ0Y,IAAMA,KAlBxB,CAqBA1Y,KAEF,eAAS5Z,IAAetN,MAAMC,QAAQqN,MACtCA,EAAa,gBAA2BA,GACpCyzB,IACAwvE,EAAcjjG,EAAWijG,YACzBjjG,EAAWijG,YAAc,SAASxtF,GAK9B,OAJI,IAAMxhB,KAAK2mB,cACXnF,EAAQA,EAAMhf,MAAM,GACpBgf,EAAMzhB,QAAQ,OAEdivG,EACOA,EAAY71E,KAAKn5B,KAAMwhB,GAE3BA,KAInB,IAAI/H,EAAgB3O,QAAQzG,EAAOoV,gBAAkB+lB,GACrD7Z,EAAQ6oF,WAAa,QAAUS,EAAsBtpF,EAAQ5C,kBAAe,IAAWksF,EAAsBA,EAAsB,cACnItpF,EAAQ/P,cAAgB43F,EAAgB,CACpClmB,eAAe,EACftpF,MAAO2nB,EAAQ3nB,MACf2b,UAAWgM,EAAQthB,OAAOsV,UAC1BH,WAAYmM,EAAQthB,OAAOmV,YAAcmM,EAAQthB,OAAOqV,YACxDD,cAAeA,EACf21F,gBAAiB31F,EACjBC,YAAa,SAAS3F,GAClB,OAAI,OAASA,EACF4R,EAAQ3E,YAEZ+tF,EAAch7F,IAEzBhI,WAAYA,EACZqR,eAAgB,SAAS6R,GACrB,IAAI4iB,EAAS,CAAC5iB,EAAEjxB,QACfwhC,GAAeqS,EAAOpyC,KAAKwvB,EAAEgC,UAAUnC,OAAO,SAC/CnJ,EAAQuoF,SAAS3pG,MAAMvE,KAAM6xC,KAElClsB,IAIX,SAAS0pF,EAAgB1pF,GACrBA,EAAQ6oF,WAAa,aACrB7oF,EAAQ/P,cAAgB43F,EAAgB,CACpCrhG,YAAa,CACTqsC,GAAI7yB,EAAQ6yB,IAEhBx6C,MAAO,eAAU2nB,EAAQ3nB,OAAS2nB,EAAQ3nB,WAAQ,EAClDoP,mBAAoBuY,EAAQ5D,SAC5B/E,mBAAoB2I,EAAQ5D,SAC5BlX,oBAAoB,EACpBuS,eAAgB,SAAS6R,GACrBtJ,EAAQuoF,UAAYvoF,EAAQuoF,SAASj/E,EAAEjxB,MAAOixB,KAEnDtJ,GAEP,IAAI2pF,EAAsB3pF,IACtBA,EAAQ6oF,WAAa7oF,EAAQ5C,WAC7B4C,EAAQ/P,cAAgB43F,EAAgB,CACpCxvG,MAAO2nB,EAAQ3nB,MACfof,eAAgB,SAAS4Q,GACrBrI,EAAQuoF,SAASlgF,EAAKhwB,SAE3B2nB,IAEH4pF,EAAgB5pF,IAChB,IAAI6pF,EAAuB,CACvBC,UAAWlB,EACXztB,WAAYuuB,EACZK,YAAab,EACbc,UAAWhB,GAEf,GAAIhpF,EAAQthB,OACRyqG,EAAoBnpF,QACjB,GAAIA,EAAQ5C,WAAY,CAC3B,IAAI6sF,GACH,QAAUA,EAAwBJ,EAAqB7pF,EAAQ5C,mBAAgB,IAAW6sF,EAAwBA,EAAwBN,GAAqB3pF,QAEhK,OAAQA,EAAQ7jB,UACZ,IAAK,OACL,IAAK,WACDysG,EAAe5oF,GACf,MACJ,IAAK,WACC,SAASA,GACH,cAAgBA,EAAQs7D,YAAc,kBAAoBt7D,EAAQs7D,WAClE6tB,EAAoB,OAAA3hF,EAAA,MAAOxH,EAAS,CAChCthB,OAAQ,CACJqV,YAAa,SAAS3F,GAClB,OAAI,IAASA,EACF4R,EAAQxO,UAAY,QACpB,IAAUpD,EACV4R,EAAQ7P,WAAa,aADzB,GAIX/J,WAAY,EAAC,GAAM,OAI3BsjG,EAAgB1pF,GAftB,CAiBAA,GACF,MACJ,IAAK,SACDkpF,EAAiBlpF,GACjB,MACJ,QACIgpF,EAAehpF,KAI/B,MAAO,CACHq7D,aAAc,SAASnvD,EAAYlM,GAC/BA,EAAQxL,QAAS,EACjBwL,EAAQkqF,cAAgB,eAAiBh+E,GACpC,eAAUlM,EAAQjU,YACnBiU,EAAQjU,SAAW1R,KAAK8uB,OAAO,aAEnCygF,EAAc5pF,GACd3lB,KAAK+tB,cAAc,oBAAqBpI,GACpCA,EAAQxL,SAGR,YAAcwL,EAAQs7D,YAAet7D,EAAQmqF,UAAa,eAAUnqF,EAAQ/P,cAAcm6F,sBAC1FpqF,EAAQ/P,cAAcm6F,oBAAqB,GAC5C,SAASl9E,EAAMlN,GACd,IAAIqqF,EAAiB,eAAErqF,EAAQkqF,eAC/B,GAAIlqF,EAAQ6oF,YAAc7oF,EAAQ/P,eAAiBo6F,EAAerqF,EAAQ6oF,YAAa,CAQnF,GAPI,eAAiB7oF,EAAQ6oF,YAAc,aAAe7oF,EAAQ6oF,YACzD7oF,EAAQmqF,WACTE,EAAetjF,SAASmG,EAAK2B,gBAAgB64E,KAC7C2C,EAAe19E,SAAS5F,SAAS4gF,KAGzCz6E,EAAKiB,iBAAiBk8E,EAAgBrqF,EAAQ6oF,WAAY7oF,EAAQ/P,eAC9D,cAAgB+P,EAAQ6oF,WAAY,CACpC,IAAIyB,EAAUD,EAAeP,UAAU,YACnCS,EAAyBD,EAAQ7sB,iBAAiBiB,MACtD4rB,EAAQE,mBAAmB,QAASlhF,IAC5BghF,EAAQnhF,OAAO,WACfohF,EAAuBjhF,IAEpB,IAGX,eAAiBtJ,EAAQ6oF,YACzBwB,EAAeI,WAAW,YAAYD,mBAAmB,SAAS,SAAUlkF,GACpE,UAAY,eAAiBA,IAAWA,EAAMwD,SAAYxD,EAAMgiB,UAChEhiB,EAAMg+C,sBAvBvB,CA4BDjqE,KAAM2lB,GACR3lB,KAAK+tB,cAAc,mBAAoBpI,MAxR1B,GA4RV,MCnSX,GAAsB,yBACtB,GAA4B,yBAC5B0qF,GAAsB,gBACtB,GAAgB,UAChBC,GAAwB,aACxB,GAAY,SACZC,GAAmB,0BACnBC,GAAsB,eAAa,CAAC70E,EAAA,KAAcC,KAAM,UAAW,QAAgB78B,KAAK,KAAMwxG,IAC9FE,GAAY,YACZC,GAA0B,GAAQ57E,eAAelC,QAAQ,IACtD,MAAM,WAAsB89E,GAC/B,mBAAmBC,GACf,IAAIC,EAAc5wG,KAAK8uB,OAAO,qBAAuB,qBAAuB,uCACxE+hF,EAAyB,uBAAuBxlF,OAAOulF,EAAa,uKACpEhtB,EAAkB+sB,EAAiBpjF,KAAKsjF,GAC5C,OAAO7wG,KAAK8wG,oBAAoBltB,IAAoBA,EAExD,wBACI,MAAO,eAEX,mBACI,IAAI+sB,EAAmB3wG,KAAKixB,WAAajxB,KAAKixB,UAAUpC,WACxD,GAAI8hF,EAAkB,CAClB,IAAII,EAAS/wG,KAAKgxG,mBAAmBL,GACrC,GAAII,GAAUA,EAAOpyG,OAAQ,CACzB,IAAIsyG,EACJ,IAAKF,EAAOpgF,SAAS,MAA+BogF,EAAOpgF,SAAS,IAAY,CAC5E,IAAIugF,EAAaH,EAAOr8E,QAAQ,GAAGrJ,OAAOrrB,KAAKmxG,wBAAyB,OAAO9lF,OAAO,KAClF6lF,EAAWv9E,IAAI,KAAOo9E,EAAOp9E,IAAI,KACjCs9E,EAAejxG,KAAKoxG,gBAAgBF,GACpCH,EAASG,GAGjB,GAAIH,EAAOpyG,SAAWoyG,EAAOpgF,SAAS,IAElC,YADA3wB,KAAK2uB,MAAMoiF,EAAQE,IAK/BjxG,KAAKqxG,YAET,gBAAgBxiF,GACZ,OAAOA,EAAS8B,SAAS,IAE7B,aAAa1B,GACT,IAAI4D,EAAO7yB,KACPsxG,EAAiBriF,GAAKA,EAAEhD,OAAS,eAAEgD,EAAEhD,MAAMvpB,QAAQiuB,SAASkC,EAAK2B,gBAAgB67E,KACrFx9E,EAAK0+E,gBAAkB1+E,EAAK0+E,iBAAmBD,EAC/C71E,aAAa5I,EAAK2+E,uBAClB3+E,EAAK2+E,sBAAwBh2E,WAAW,YAC7B3I,EAAK2+E,sBACP3+E,EAAK0+E,iBACN1+E,EAAK4+E,mBAET5+E,EAAK0+E,iBAAkB,IAG/B,wBAAwB1iF,EAAUvW,GAC9BuW,EAAS/b,OACT,IAAI2S,EAAW,QAAcisF,UAAU7iF,EAAU,OAAA1B,EAAA,MAAO,CACpDjG,UAAW,OACZ5O,IACCmN,EAASksF,EAAEC,SAAW,GACtB,eAAc/iF,EAAU,eAAcA,GAAYpJ,EAASksF,EAAEC,UAE7DnsF,EAASosF,EAAED,SAAW,GACtB,eAAe/iF,EAAU,eAAeA,GAAYpJ,EAASosF,EAAED,UAEnE/iF,EAAS9b,OAEb,gBACI,MAAO,CAAC,WAEZ,MAAM8b,EAAUoiF,GACZ,IAAIp+E,EAAO7yB,KACX,QAAI,IAAW6uB,EACX,OAAOgE,EAAKi/E,iBAEZjjF,IACKA,EAAS+F,GAAG/B,EAAKi/E,mBAClBj/E,EAAKi/E,kBAAoBj/E,EAAKi/E,iBAAiB3iF,YAAYmhF,IAE/Dz9E,EAAKi/E,iBAAmBjjF,EACxB4M,aAAa5I,EAAKk/E,iBAClBl/E,EAAKk/E,gBAAkBv2E,WAAW,YACvB3I,EAAKk/E,gBACZl/E,EAAKm/E,mBAAmBnjF,EAAUoiF,GAClCpiF,EAASnC,SAAS4jF,IAClBz9E,EAAKo/E,QAAQx7E,KAAK5H,MAI9B,UACI,IAAIkiF,EAAS/wG,KAAK2uB,QAClB3uB,KAAK2uB,MAAMoiF,GAEf,mBAAmBliF,EAAUoiF,GACzB,GAAK,QAAciB,uBAAuBlyG,KAAM6uB,GAMhD,GAHK7uB,KAAKmyG,iBACNnyG,KAAKmyG,eAAiB,eAAE,SAASzlF,SAAS1sB,KAAKw0B,gBAAgB67E,MAE/DY,EACAjxG,KAAKmyG,eAAezlF,SAAS+jF,SAC1B,GAAI5hF,EAASlwB,OAAQ,CACxB,IAAIyzG,EAAQ3zE,EAAA,KAAQG,QAAU,eAAiB,WAC3CwP,EAAWvf,EAAS6F,QAAQ,IAAIrJ,OAAOrrB,KAAKw0B,gBAAgB,MAC5D69E,EAAY,eAAgBxjF,EAAS8E,IAAI,IAC7C3zB,KAAKmyG,eAAehjF,YAAYshF,IAAWp6E,SAAS+X,GACpD,eAAepuC,KAAKmyG,eAAgBE,EAAU1iC,OAAS0iC,EAAU9uF,IAAM,GACvE,eAAcvjB,KAAKmyG,eAAgBE,EAAU1T,MAAQ0T,EAAUjvF,KAAO,GACtE,IAAIkvF,EAAuB,CACvBC,SAAS,EACTprF,GAAIirF,EACJrrF,GAAIqrF,EACJhrF,GAAIyH,EACJ7H,SAAUonB,EAASzvC,QAAUyvC,GAEjCpuC,KAAKwyG,wBAAwBxyG,KAAKmyG,eAAgBG,GAClD,QAAcG,MAAMzyG,KAAKmyG,eAAgBG,GACzCtyG,KAAKmyG,eAAe1gF,IAAI,aAAc,YAG9C,SACI,IAAImyD,EAAkB5jF,KAAK8xG,iBACvBluB,GACA5jF,KAAK2uB,MAAMi1D,GAGnB,YACI5jF,KAAK8xG,kBAAoB9xG,KAAK8xG,iBAAiB3iF,YAAYmhF,IAC3DtwG,KAAK8xG,iBAAmB,KACxB9xG,KAAKmyG,gBAAkBnyG,KAAKmyG,eAAezlF,SAAS+jF,IAExD,OACIzwG,KAAKkwB,aAAa,oBAAqB,CACnCgY,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdnoC,KAAKkwB,aAAa,mBAAoB,CAClCgY,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEdnoC,KAAK0yG,oBAAsB1yG,KAAK0yG,qBAAuB1yG,KAAKkwB,aAAalwB,KAAK2yG,aAAaz+E,KAAKl0B,OAChGA,KAAK4yG,yBAA2B5yG,KAAK6yG,oBACrC,OAAavkF,GAAGtuB,KAAK4yG,yBAA0BpC,GAAqBxwG,KAAK0yG,qBACzE1yG,KAAK8yG,gCAET,oBACI,IAAIziF,EACAwB,EAAa,QAAUxB,EAAKrwB,KAAKixB,iBAAc,IAAWZ,OAAK,EAASA,EAAGxB,WAC3EnB,EAAO,aAAWC,YAAY,OAASkE,QAAc,IAAWA,OAAa,EAASA,EAAW8B,IAAI,IACzG,OAAIjG,EAAK2U,WAAa0wE,KAAKC,wBAA2BtlF,EAAKulF,KAGpDvlF,EAFI,aAAWE,cAI1B,gCACI,IAAIiF,EAAO7yB,KACP6xB,EAAagB,EAAK5B,WAAa4B,EAAK5B,UAAUpC,WAC9CgD,GACA,OAAavD,GAAGuD,EAAY,eAAa,UAAW0+E,IAAmBthF,IAC/D,QAAU,eAAiBA,IAC3B4D,EAAK6/E,oBAAoBzjF,KAKzC,UACIwM,aAAaz7B,KAAK+xG,iBAClBt2E,aAAaz7B,KAAKwxG,uBAClB,OAAahjF,IAAIxuB,KAAK4yG,yBAA0BpC,GAAqBxwG,KAAK0yG,sBAG3E,IAAIQ,GAAsB,CAC7BhmE,eAAgB,KAAM,IACtBnU,YAAa,CACTo6C,cAAe,KC1MvB,GAAS/gC,eAAe,gBAAiB8gE,I,2CCH9B,GAAoB,iBACpB,GAAY,SACZC,GAAsB,mBACtBC,GAAqB,eACrBC,GAAkB,YAClBC,GAA6B,SAC7BC,GAA6B,SAC7BC,GAA4B,gBAC5BC,GAA2B,eAC3BC,GAAiC,qBACjCC,GAAqC,yBACrCC,GAAwB,kBACxBC,GAAyB,6BACzBC,GAA6B,+BAA+BzoF,OAAOwoF,GAAwB,oBAC3FE,GAAkB,QAClBC,GAAgB,MAChBC,GAAiB,OACjBC,GAAiB,OACjBC,GAAkB,QAClBC,GAAyB,QACzBC,GAAwB,OACxBC,GAA+B,aAC/BC,GAA4B,UAC5BC,GAAmC,iBACnCC,GAAgC,cAChCC,GAAa,CAACX,GAAiBC,GAAeC,GAAgBC,GAAgBC,IAC9EQ,GAAkB,CAACX,GAAeE,GAAgBC,IAClDS,GAAmC,CAACb,GAAiBC,GAAeC,IACpEY,GAA2B,CAACb,GAAeE,IAC3CY,GAAiB,WACjBC,GAAa,UACbC,GAAkB,eAClBC,GAAe,eACfC,GAAoB,iBACpBC,GAAqB,kBACrBC,GAAgC,GAAG/pF,OAAO8pF,GAAoB,eAC9DE,GAAe,sBACfC,GAAe,kBACfC,GAAe,kBACfC,GAAgB,mBAChBC,GAAoB,oBACpB,GAA4B,yBAC5BC,GAA6B,SAC7BC,GAA4B,QAC5BC,GAAkB,CACzB17B,KAAM,eACN//D,OAAQ,iBACR07F,KAAM,eACNC,SAAU,mBACVr0E,OAAQ,iBACRC,IAAK,eAEEq0E,GAAkB,CACzB77B,KAAM,OACN//D,OAAQ,SACR07F,KAAM,OACNC,SAAU,SACVr0E,OAAQ,QACRC,IAAK,OAEEs0E,GAAe,CACtBH,KAAM,UACNp0E,OAAQ,YACRq0E,SAAU,cACV57B,KAAM,eACN//D,OAAQ,iBACRunB,IAAK,oBAEEu0E,GAAsB,CAC7Bv0E,IAAK,cACLm0E,KAAM,gBACNp0E,OAAQ,iBAEDy0E,GAAe,CAAC,OAAQ,OAAQ,SAAU,SAAU,YACpDC,GAA8B,kBAC9B,GAAsB,gBACtBC,GAAuB,gBACvBC,GAAgC,4BAChC,GAAiB,cACjBC,GAAc,iBACrBC,KAA0B,QAAWC,oBAC9BC,GAAuB,iBACvBC,GAAmB,aACnBC,GAAwB,kBACxBC,GAA0BL,GAAwB,gBAAkB,0BACpEM,GAAe,YACfC,GAA+B,yBAC/BC,GAAW,cCpFlBC,GAA0B,WAC1BC,GAAc,GACPC,GAAuB,SAAS58F,GACvC,OAAO,SAASqmD,GACZ,IAAIjW,EAAQiW,aAAe9oC,MAAQ8oC,EAAM,IAAI9oC,MAAM8oC,GAAO/1D,OAAO+1D,IAAQ,iBACzErmD,EAASuoB,OAAO6nB,KAGb,GAAgB,SAASwiD,EAAW/tE,GAC3C,OAAOA,EAAYQ,WAAautE,GAAa/tE,EAAYn9B,OAAOuS,cAEzD4iG,GAAsC,SAASjK,EAAW/tE,GACjE,IAAIi4E,IAAkBj4E,EAAYn9B,OAAOwwB,QACrCmN,EAAY,GAAcutE,EAAW/tE,GACrCk4E,GAAgBD,IAAkBz3E,GAAaR,EAAYn9B,OAAO6U,kBACtE,MAAO,SAAWsoB,EAAYvB,SAAWy5E,GAElCC,GAAkB3xF,IACzB,IAAInK,EAAemK,EAAQsL,UAAUnC,OAAO,kBAAoB,GAChE,MAAO,CACHorD,KAAM1+D,EAAaS,eACnB9B,OAAQqB,EAAaG,iBACrBk6F,KAAMr6F,EAAaO,QACnB+5F,SAAUt6F,EAAaU,YACvBulB,OAAQjmB,EAAaM,UACrB4lB,IAAKlmB,EAAa+7F,eAGfC,GAAwB,IAAM,GAAGnsF,OAAO2rF,IAAyB3rF,OAAO,IAAI,SAC5EosF,GAAkB1pD,GAAO,kBAAoBA,GAAOA,EAAI3tC,WAAW42F,KAA4BjpD,EAAIpvD,SAAWq4G,GAAwBr4G,OAASs4G,GAC/IS,GAAiB,CAACviG,EAASxB,KAClC,IAAIzR,GAAU,EAOd,OANAiT,EAAQwkC,KAAK,CAACpiC,EAAQtV,KAClB,GAAI01G,GAAcpgG,KAAY5D,EAE1B,OADAzR,EAASD,GACF,IAGRC,GAEJ,SAASy1G,GAAcpgG,GAC1B,OAAO,eAASA,GAAUA,EAAO5D,KAAO4D,EAErC,SAASiwC,GAAW34B,GACvB,OAAOA,IAAaA,EAAS+F,GAAG,UAAY/F,EAAS+F,GAAG,aAErD,IAAIgjF,GAAgB7sF,IACvB,IAAIsF,GAEAruB,OAAQA,GACR+oB,EACJ,OAAOA,EAAK8sF,mBAAqB9sF,EAAKhI,WAAa,QAAUsN,EAAKruB,EAAOoU,gBAAa,IAAWia,OAAK,EAASA,EAAGtN,YAE3G+0F,GAAmB,CAACt2F,EAAOu2F,KAClCv2F,EAAM0V,QAAQnM,IACNA,EAAKvJ,OAASuJ,EAAKitF,KACnBF,GAAiB/sF,EAAKvJ,OAASuJ,EAAKitF,KAAMD,GAE1CA,EAAShtF,MCyCrB,MAAM,WAA8B,GAAQ+J,eACxC,OACI90B,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,WAC7ChwB,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAK0qE,UAAY1qE,KAAK6uC,QAAQ,YAC9B7uC,KAAKi4G,eAAiB,KACtBj4G,KAAKwqD,SAAW,GACZxqD,KAAKk4G,YACLl4G,KAAKk4G,WAAWhhF,QAAQw9B,IACpBA,EAAE7xB,OAAO,YAGjB7iC,KAAKk4G,WAAa,GACbl4G,KAAKupD,sBACNvpD,KAAKupD,oBAAsBvpD,KAAKyoC,mBAAmBvU,KAAKl0B,MACxDA,KAAKgoC,gBAAgBQ,QAAQ9G,IAAI1hC,KAAKupD,sBAErCvpD,KAAKm4G,qBACNn4G,KAAKkwB,aAAa,eAAgB,CAC9BgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,iBAAkB,CAChCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,gBAAiB,CAC/BgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,iBAAkB,CAChCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,gBAAiB,CAC/BgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,eAAgB,CAC9BgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,gBAAiB,CAC/BgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,eAAgB,CAC9BgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,UAAW,CACzBgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,WAAY,CAC1BgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,kBAAmB,CACjCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,iBAAkB,CAChCgY,kBAAmB,CAAC,WAAY,eAGxCloC,KAAKo4G,oBACLp4G,KAAKq4G,qBACAr4G,KAAKs4G,iBACNt4G,KAAKs4G,eAAiB,IAE1Bt4G,KAAKixB,UAAUsnF,oBAAoB7E,KAAkC,EACrE1zG,KAAKixB,UAAUsnF,oBAAoBpC,KAA+B,EAEtE,cACI,IAAIqC,EAAWx4G,KAAK8uB,OAAO,gBAC3B,OAAI4lF,GAAWlmE,SAASgqE,GACbA,EAEJxE,GAEX,4BACI,MAAO,CAACv2F,EAAWkI,KACf,IAAIg7D,EAAU,eAAE,SAAStqD,SAAS5Y,GAC9B7H,EAAgB,OAAAuX,EAAA,MAAO,GAAIxH,EAAQ3jB,OAAQ,CAC3ChE,MAAO2nB,EAAQ3nB,MACfkwG,SAAUvoF,EAAQuoF,SAClB7vE,IAAK1Y,EAAQ0Y,IACb4iD,WAAY,UACZnvE,MAAO,KACPiQ,UAAW4D,EAAQuoF,SACnB4B,SAAUnqF,EAAQmqF,SAClBt3D,GAAI7yB,EAAQ6yB,KAEZigE,EAAY7D,GAAiCpmE,SAASxuC,KAAK04G,eAC3DD,IACA7iG,EAAc,mBAAqB+P,EAAQ3jB,OAAOg8B,UAEtDh+B,KAAKgwB,cAAc,iBAAiBgxD,aAAaL,EAAS/qE,IAGlE,qBACI,IAAIqF,EAAiBjb,KAAK8uB,OAAO,0BAC7B2+B,EAAgBztD,KAAK8uB,OAAO,kBAChC,GAAI,YAAc2+B,EACd,OAAQxyC,GACJ,KAAKs5F,GACD,OAAOE,GACX,KAAKH,GACD,OAAOE,GACX,QACI,OAAOv5F,EAGnB,OAAOA,EAEX,aACI,OAAOjb,KAAK8uB,OAAOqnF,IAEvB,oBACI,IAAIv7F,EAAU5a,KAAK8uB,OAAOqnF,IAC1B,OAAOv7F,EAAQtW,OAAOiX,GAAU,WAAaA,EAAOnd,MAAMO,OAE9D,eACI,IAAIic,EAAU5a,KAAK24G,aACfC,EAAY,OAASh+F,QAAW,IAAWA,OAAU,EAASA,EAAQjc,OACtEi6G,GACA54G,KAAK64G,cAAc1C,GAA6B,IAGxD,iBAAiBpoD,GACb,OAAO/tD,KAAKs4G,eAAeh0G,OAAOymB,GAAQ,eAAaA,EAAKgjC,IAAKA,IAAM,GAE3E,iBAAiBlc,GACb,IAAIinE,EAAe94G,KAAK+4G,iBAAiBlnE,EAAOkc,KAChD,OAAI+qD,EACO,OAAA3rF,EAAA,MAAO2rF,EAAcjnE,IAEhC7xC,KAAKs4G,eAAe74G,KAAKoyC,GAClBA,GAEX,YAAYkc,GACR,IAAI19B,EACJ,OAAO,QAAUA,EAAKrwB,KAAK+4G,iBAAiBhrD,UAAS,IAAW19B,OAAK,EAASA,EAAGotD,QAErF,eAAe1pE,GACX,IAAIg6C,EAAM/tD,KAAKgoC,gBAAgB2mB,MAAM56C,GACjC6G,EAAU5a,KAAK24G,aACfK,EAAY,QAAcnkD,cAAc9G,EAAKnzC,GACjD,OAAIA,EAAQo+F,GACD,gBAAwBjlG,EAAM6G,EAAQo+F,GAAWjlG,MAErDA,EAEX,kBACI,OAAO/T,KAAK24G,aAAar0G,OAAOiX,GAAUA,EAAOxH,MAAQwH,EAAOnd,OAASk1G,IAA4Bz0G,IAAI0c,GAAUA,EAAOxH,MAE9H,iBACI,OAAO/T,KAAK24G,aAAar0G,OAAOiX,GAAUvb,KAAKi5G,YAAY19F,EAAOwyC,MAAQxyC,EAAOnd,OAASm1G,IAA4B10G,IAAI0c,GAAUvb,KAAKi5G,YAAY19F,EAAOwyC,MAEhK,uBAAuB4S,GACnB,GAAI,WAAaA,EAAjB,CAGA,IAAI0K,EAAgBrrE,KAAKk5G,kBACzBl5G,KAAKgoC,gBAAgByiB,kBAAkBh0B,KAAKkqC,EAAK0K,IAErD,yBAAyB/7C,IACzB,eAAeA,IACf,mBAAmBtB,IACnB,wBAAwBzW,EAAQoO,GAC5B,IAAIzjB,GAAS,EACb,OAAQqV,EAAO5D,MACX,IAAK,SACDzR,EAASlC,KAAK0a,cAAciL,GAC5B,MACJ,IAAK,WACDzjB,GAAS,EAEjB,OAAOA,EAEX,iBAAiBqV,EAAQoO,GACrB,IACI9T,QAASA,GACT0F,EACJ,OAAK,eAAU1F,GAGR,eAAWA,GAAWA,EAAQsnB,KAAK5hB,EAAQ,CAC9C0Z,UAAWtL,EAAQsL,UACnBoN,IAAK1Y,EAAQ0Y,IACbr8B,OAAQ2jB,EAAQ3jB,SACf6P,EANM7R,KAAKm5G,wBAAwB5hG,EAAQoO,GAQpD,kBAAkBpO,EAAQoO,GACtB,IACI1Z,SAAUA,GACVsL,EACJ,OAAO,eAAWtL,GAAYA,EAASktB,KAAK5hB,EAAQ,CAChD0Z,UAAWtL,EAAQsL,UACnBoN,IAAK1Y,EAAQ0Y,IACbr8B,OAAQ2jB,EAAQ3jB,WACbiK,EAEX,iBAAiBsL,EAAQoO,GACrB,IAAIqO,EAAS,eAASzc,GAAUA,EAAS,GACrC6hG,EAAazB,GAAcpgG,GAC3BiE,EAAe87F,GAAgB3xF,GAC/BiS,EAAao+E,GAAaoD,GAC1BC,EAAiBr5G,KAAK8uB,OAAO,WAC7B4E,EAAauiF,GAAoBmD,GACjCE,GAAc5lF,GAAa2lF,EAAe3lF,GAC9C,OAAO,OAAAvG,EAAA,MAAO,CACVxZ,KAAMylG,EACNtlG,KAAM0H,EAAa49F,GACnB3lG,SAAUmiG,GAAgBwD,IAC3B,CACCxlG,QAASgkB,GAAc,CAAC3I,IACpB,IACIhD,MAAOA,GACPgD,EACJhD,EAAMg+C,kBACNh+C,EAAM4S,iBACNrD,WAAW,KACP7V,EAAQ0Y,KAAOi7E,GAAet5G,KAAK43B,IAAe53B,KAAK43B,GAAYjS,EAAQ0Y,IAAIxC,eAGxF7H,GAEP,mBAAmBrO,GACf,IAAI4zF,EACAC,IAAsB7zF,EAAQ3jB,OAAOmT,QACrCA,GAAWwQ,EAAQ3jB,OAAOmT,SAAW,IAAI3S,QAkB7C,OAjBIg3G,GACAD,EAAc7B,GAAeviG,EAAS,QAClCokG,GAAe,IACX7B,GAAeviG,EAAS,QAAU,GAClCA,EAAQiyB,OAAOmyE,EAAc,EAAG,EAAG,QAEnC7B,GAAeviG,EAAS,UAAY,GACpCA,EAAQiyB,OAAOswE,GAAeviG,EAAS,QAAU,EAAG,EAAG,WAG/DokG,EAAc7B,GAAeviG,EAAS,UAClCokG,GAAe,GAAK7B,GAAeviG,EAAS,YAAc,GAC1DA,EAAQiyB,OAAOmyE,EAAc,EAAG,EAAG,aAGvCpkG,EAAU+gG,GAAa1zG,QAEpB2S,EAAQtW,IAAI0Y,GAAUvX,KAAKy5G,iBAAiBliG,EAAQoO,IAE/D,sBAAsBkM,EAAY1c,EAASwQ,EAASpK,GAChDpG,EAAQ+hB,QAAQ3f,IACRvX,KAAK05G,iBAAiBniG,EAAQoO,IAC9B3lB,KAAK25G,cAAc9nF,EAAYta,EAAQoO,EAASpK,KAI5D,8BACI,MAAO,CAACkC,EAAWkI,EAASpK,KACxB,IAAIsW,EAAa,eAAEpU,GACnB,GAAI,SAAWkI,EAAQiY,QAAS,CAC5B,IAAIzoB,EAAUnV,KAAK45G,mBAAmBj0F,GACtC3lB,KAAK65G,sBAAsBhoF,EAAY1c,EAASwQ,EAASpK,GACzDoK,EAAQihB,OAASjhB,EAAQihB,MAAM,IAAMzxB,EAAQtW,IAAI0Y,IAAU,CACvD1F,QAAS7R,KAAK05G,iBAAiBniG,EAAQoO,GACvC1Z,SAAUjM,KAAK85G,kBAAkBviG,EAAQoO,MACxC,KACDkM,EAAWsC,QACXn0B,KAAK65G,sBAAsBhoF,EAAY1c,EAASwQ,UAGpD,QAAck6C,aAAahuC,IAIvC,qBACI,IAAI2mF,EAAWx4G,KAAK04G,cACpB,OAAO/D,GAAgBnmE,SAASgqE,GAEpC,8BACI,IACIt5E,EADAlO,EAAoBhxB,KAAKgwB,cAAc,WAEvC+O,EAAiB/N,EAAkBiO,oBAOvC,OANA,eAAKF,EAAgB,CAAC98B,EAAOD,KACzB,GAAIA,EAAOuS,aAEP,OADA2qB,EAAcj9B,GACP,IAGRi9B,EAEX,0BAA0BrD,GACtB,IAAInQ,EAAW1rB,KAAK6uC,QAAQ,YACxB3P,EAAcl/B,KAAK+5G,8BACvB,OAAO,OAASruF,QAAY,IAAWA,OAAW,EAASA,EAASuf,gBAAgBpP,GAAY,EAAGqD,GAEvG,oBAAoBrD,GAChB,OAAO77B,KAAKg6G,0BAA0Bn+E,GAE1C,cAAckyB,EAAKvsC,GACf,OAAO,QAAcqzC,cAAc9G,EAAKvsC,GAE5C,WAAWqa,GAGP,IAFA,IAAIjhB,EAAU5a,KAAK24G,aACfz2G,GAAS,EACJ1B,EAAI,EAAGA,GAAK,OAASoa,QAAW,IAAWA,OAAU,EAASA,EAAQjc,QAAS6B,IACpF,GAAIoa,EAAQpa,GAAGpC,QAAU,eAAUy9B,IAAa77B,KAAKgoC,gBAAgB8sB,iBAAiBl6C,EAAQpa,GAAGutD,OAASlyB,GAAW,CACjH35B,GAAS,EACT,MAGR,OAAOA,EAEX,UACI2lC,MAAMssB,UACN14B,aAAaz7B,KAAKi6G,sBAClB,OAAazrF,IAAI,aAAWZ,cAAe+N,EAAA,KAAcu+E,GAAIl6G,KAAKm6G,yBAClE,OAAa3rF,IAAI,aAAWZ,cAAe+N,EAAA,KAAcC,KAAM57B,KAAKo6G,2BACpE,OAAa5rF,IAAI,aAAWZ,cAAe,OAAgB5tB,KAAKm4G,oBAEpE,cAAcxkG,EAAM3V,GACZ,oBAAsB2V,IACtB3T,KAAKwqD,SAAW,gBAAoB,GAAIxsD,IAE5C6pC,MAAMgxE,cAAcllG,EAAM3V,GAE9B,cAAcgwB,GACV,GAAI,YAAcA,EAAKra,KAAM,CACzB,IACIsrC,SAAUA,GACVjxB,EACJ,GAAIixB,IAAay0D,GACb1zG,KAAKq6G,wBAAwBrsF,QAC1B,GAAIixB,IAAak3D,GAA6B,CACjD,IAAImE,EAAU,eAAatsF,EAAKhwB,MAAOgC,KAAKwqD,SAAU,CAClDzP,SAAU,IAETu/D,IACDt6G,KAAKwqD,SAAW,gBAAoB,GAAIx8B,EAAKhwB,OAC7CgC,KAAKu6G,qBAAqBvsF,SAEtBA,EAAKC,UACbjuB,KAAKg/B,mBAAmB6a,SACxB75C,KAAKk/C,OACLl/C,KAAKw6G,eACLx6G,KAAKy6G,uBACLz6G,KAAK06G,oBAET1sF,EAAKC,SAAU,OAEf4Z,MAAMC,cAAc9Z,GAG5B,wBAAwBA,GACpB,IAAI6N,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiB9mC,EAAKhwB,OACtD28G,EAAwB36G,KAAK46G,6BAC7BC,EAAc76G,KAAKgoC,gBAAgB8sB,iBAAiB9mC,EAAKgxB,eAAiB27D,EAC1E,eAAU3sF,EAAKhwB,OACXgwB,EAAKhwB,QAAUgwB,EAAKgxB,eACpBh/C,KAAK86G,0BAA0Bj/E,EAAUg/E,GAG7C76G,KAAK+6G,iBAGb,qBAAqB/sF,GACjB,IAAI+3B,EAAiB/lD,KAAKgoC,gBACtBptB,EAAUoT,EAAKhwB,OACdgwB,EAAKhwB,MAAMW,QAAWqvB,EAAKgxB,cAAcrgD,UAG9Cic,EAAQsc,QAAQ3b,IACZ,IAAI8U,EACJ,GAAI,WAAa9U,EAAOnd,KACpB4B,KAAKg7G,eAAez/F,OACjB,CACH,IAAIiG,EAAQukC,EAAe2P,uBAAyB,QAAUrlC,EAAK01B,EAAevkC,eAAY,IAAW6O,OAAK,EAASA,EAAGxxB,IAAIksB,GAAQA,EAAKhX,OACvI8nB,EAAW,QAAcg5B,cAAct5C,EAAOwyC,IAAKvsC,EAAOukC,EAAegI,OAC7E/tD,KAAKi7G,iBAAiB,CAClBltD,IAAKxyC,EAAOwyC,IACZ0vB,QAASj8D,EAAMqa,QAI3BkqB,EAAemG,YAAY,CACvB37C,oBAAoB,EACpBggD,cAAc,EACd2qD,iBAAiB,KAGzB,gBACI,MAAO,CAAC,SAAU,YAAa,cAAe,UAAW,eAAgB,iBAAkB,eAE/F,UACS,eAAUl7G,KAAKm7G,aAGpBn7G,KAAKo7G,aAAa72G,MAAMvE,KAAMwE,WAElC,aAAaqtC,IACb,YACI,IAAIwpE,EAAsB,eAAUr7G,KAAK8uB,OAAO4kF,KAChD,OAAO2H,EAEX,UAAUx/E,GACN,OAAO,EAEX,eAAe79B,EAAOs9G,GACdA,EACAt7G,KAAK64G,cAAcnF,GAAgC11G,GAEnDgC,KAAK8uB,OAAO4kF,GAAgC11G,GAE5CgC,KAAKu7G,mBACLv7G,KAAKu7G,kBAAmB,EACxBv7G,KAAKw7G,qBAGb,sBAAsB3/E,EAAUy/E,GAC5B,IAAIvtD,EAAM/tD,KAAKgoC,gBAAgByzE,iBAAiB5/E,QAC5C,IAAWkyB,EAIf/tD,KAAK07G,eAAe3tD,EAAKutD,GAHrBt7G,KAAKgoC,gBAAgB27B,UAAU,SAKvC,kBACI,OAAO3jE,KAAK27G,0BAEhB,sBACI,OAAQ,EAEZ,iBAAiB9/E,GACb,IAAIkyB,EAAM/tD,KAAKgoC,gBAAgByzE,iBAAiB5/E,GAC5C+/E,EAAa,eAAU7tD,IAAQ,eAAa/tD,KAAK8uB,OAAO4kF,IAAiC3lD,GAC7F,OAAI6tD,EACO57G,KAAK27G,4BAA8B9/E,EAEvC+/E,EAEX,WAAWtrD,EAAiBpxB,GACxB,OAAOl/B,KAAK67G,iBAAiBvrD,IAAoBtwD,KAAK87G,+BAAiC58E,EAE3F,mBACA,iBAAiBnU,GACb,OAAO,EAEX,mBAAmBvJ,EAAOjG,EAAQwgG,GAC9B,IAAI75G,GAAU,EACV6jD,EAAiB/lD,KAAKgoC,gBACtB+lB,EAAM/tD,KAAKg8G,2BAA2BzgG,GA2B1C,OA1BK,eAAUwyC,IAAQ,IAAMvsC,EAAM7iB,OAExB,eAAUovD,IACjBvsC,EAAMm4B,KAAK,CAAC5uB,EAAM9oB,KACd,IAAIg6G,EAAkBF,GAAoB/7G,KAAKqrG,iBAAiBtgF,GAUhE,GATI,eAASA,KACLkxF,GAAmB,eAAUlxF,EAAKsqF,KAC9B,eAAatqF,EAAKgjC,IAAKA,KACvB7rD,EAASD,GAEN,eAAa8jD,EAAe4I,MAAM5jC,GAAOgjC,KAChD7rD,EAASD,IAGbC,GAAU,EAAG,CACb,IAAIg6G,EAAW16F,EAAMtf,EAAS,GAC9B,GAAIg6G,IAAa,WAAaA,EAASt+E,SAAW,mBAAqBs+E,EAASt+E,UAAY,eAAUriB,EAAOvH,gBACzG,OAKJ,OAHI,eAAUuH,EAAOvH,kBACjB9R,GAAU,IAEP,KArBfA,EAAS,EAyBNA,EAEX,iBAAiB6rD,GACb,IAAI19B,EACAtF,EAAO,CACPgjC,IAAKA,GAELouD,EAAa,QAAU9rF,EAAKrwB,KAAK+4G,iBAAiBhrD,UAAS,IAAW19B,OAAK,EAASA,EAAG8rF,WAI3F,OAHI,OAASA,QAAc,IAAWA,OAAa,EAASA,EAAW9G,OACnEtqF,EAAKsqF,IAAgB8G,EAAW9G,KAE7BtqF,EAEX,mBAAmBvJ,EAAOjG,EAAQwgG,GAC9B,IAAIK,EAAiBp8G,KAAKq8G,mBAAmB76F,EAAOjG,EAAQwgG,GACxDh2D,EAAiB/lD,KAAKgoC,gBAC1B,GAAIo0E,EAAiB,EAAG,CACpB,IAAInhG,EAAiBjb,KAAKs8G,qBACtB31F,EAAYo/B,EAAep/B,YAC3B41F,EAAyBv8G,KAAKg8G,2BAA2BzgG,GACzDN,IAAmBo5F,IAAyB,IAAM1tF,GAAc,eAAU41F,GAEnEthG,IAAmBo5F,IAAyBtuD,EAAey2D,qBAClEJ,EAAiB56F,EAAM7iB,QAFvBy9G,EAAiB,EAKzB,OAAOA,EAEX,aAAa56F,EAAOyN,GAChB,IACIgV,WAAYA,GACZhV,EACJjvB,KAAKqnC,OAAOpD,GACZ,IAAIrpB,EAAU5a,KAAK24G,aAqBnB,OApBA/9F,EAAQsc,QAAQ3b,IACZ,IAAI8U,EACAosF,EAAWlhG,EAAOnd,OAASk1G,GAC/B,GAAKmJ,EAAL,CAGA,IACI1uD,IAAKA,GACLxyC,EACA4gG,EAAa,QAAU9rF,EAAKrwB,KAAK+4G,iBAAiBhrD,UAAS,IAAW19B,OAAK,EAASA,EAAG8rF,WACtF,eAAUpuD,IAAS,eAAUouD,KAC9BA,EAAan8G,KAAKg7G,eAAez/F,GACjCwyC,EAAMouD,EAAWpuD,KAErB,IAAIquD,EAAiBp8G,KAAK08G,mBAAmBl7F,EAAOjG,GAChDwP,EAAO/qB,KAAK28G,iBAAiB5uD,GAC7BquD,GAAkB,GAClB56F,EAAM4lB,OAAOg1E,EAAgB,EAAGrxF,MAGjCvJ,EAEX,gBAAgBuJ,EAAMpF,EAASkpC,GAC3B,IAAInjD,EAAUia,EAAQoZ,eAClBgvB,EAAMhjC,EAAKhX,KAAKshG,IAAgBtqF,EAAKhX,KAAKg6C,IAAMhjC,EAAKgjC,IACrDnzC,EAAU5a,KAAK24G,aACfK,EAAY,QAAcnkD,cAAc9G,EAAKnzC,GACjDmQ,EAAK4U,WAAY,EACbq5E,GAAa,GACbh5G,KAAK48G,qBAAqB7xF,EAAMnQ,EAAQo+F,GAAYjrD,EAAKriD,EAASmjD,GAG1E,qBAAqB9jC,EAAMxP,EAAQwyC,EAAKriD,EAASmjD,GAC7C,IACI96C,KAAMA,EACN3V,KAAMA,GACNmd,EACJ,OAAQnd,GACJ,KAAKk1G,GACDvoF,EAAK61C,UAAW,EAChB71C,EAAKgjC,IAAMA,EACXhjC,EAAKhX,KAAOA,EACZ,MACJ,KAAK2hG,GACD3qF,EAAK8xF,UAAW,EAChB9xF,EAAK0yD,QAAU1yD,EAAKhX,KACpBgX,EAAKhX,KAAO,gBAAwBgX,EAAKhX,KAAMA,GAC/CgX,EAAK0lC,eAAiB5B,EAAmB96C,EAAMrI,GAAS,GACxD,MACJ,KAAK6nG,GACDxoF,EAAK+xF,SAAU,GAG3B,YAAYn3F,GAER,GADA3lB,KAAK+tB,cAAc,eAAgBpI,GAC/BA,EAAQsd,QAAS,CACjB,IAAI3oB,EAAW,IAAI,OAEnB,OADA,eAAK,eAAYqL,EAAQsd,UAAUzM,KAAKlc,EAAS4iB,SAAS+L,KAAKiuE,GAAqB58F,IAAW2uB,KAAK03B,GAAO3gE,KAAK+8G,uBAAuBp8C,IAChIrmD,GAGf,oBACI,IAAI6hG,EAAa,GAEjB,OADAA,EAAW9G,IAAgBr1G,KAAKg9G,kBACzBb,EAEX,eAAe5gG,EAAQw1E,GACnB,IAAI1gE,EACA8rF,EACJ5gG,EAAOwyC,IAAM/tD,KAAKi9G,kBAAkB1hG,GACpC,IACIwyC,IAAKA,GACLxyC,EAEJ,GADA4gG,EAAa,QAAU9rF,EAAKrwB,KAAK+4G,iBAAiBhrD,UAAS,IAAW19B,OAAK,EAASA,EAAG8rF,YAClF,eAAUA,GAAa,CACxB,IAAII,EAAyBv8G,KAAKg8G,2BAA2BzgG,GAC7D4gG,EAAan8G,KAAKk9G,oBACb,eAAUX,IACXv8G,KAAKm9G,2BAA2B5hG,EAAQw1E,GAOhD,OAJA/wF,KAAKi7G,iBAAiB,CAClBkB,WAAYA,EACZpuD,IAAKA,IAEF,CACHouD,WAAYA,EACZpuD,IAAKA,GAGb,kBAAkBxyC,GACd,GAAI,eAAUA,EAAOwyC,KACjB,OAAOxyC,EAAOwyC,IAElB,IACIi5C,EADA15F,EAAUtN,KAAKgoC,gBAAgB+lB,MAQnC,OANIxyC,EAAOxH,MAAQzG,IAAY7O,MAAMC,QAAQ4O,KACzC05F,EAAWzrF,EAAOxH,KAAKzG,IAEtB,eAAU05F,KACXA,EAAWwQ,MAERxQ,EAEX,2BAA2BzrF,EAAQw1E,GAC/B,IAAIhrC,EAAiB/lD,KAAKgoC,gBACtBo1E,EAAWr3D,EAAevkC,OAAM,GAChCkK,EAAW1rB,KAAK6uC,QAAQ,YACxB5zB,EAAiBjb,KAAKs8G,qBAC1B,OAAQrhG,GACJ,KAAKm5F,GACL,KAAKC,GACD,MACJ,KAAKE,GACL,KAAKD,GACD,GAAI8I,EAASz+G,OAAQ,CACjB,IAAI6pE,EAAYvtD,IAAmBs5F,GAA4B,EAAI6I,EAASz+G,OAAS,EACrF4c,EAAO,IAAMitD,EAAY,kBAAoB,kBAAoB40C,EAAS50C,GAAWza,IAEzF,MACJ,QACI,IAAIsvD,EAAmBpiG,IAAmBu5F,GACtCt0B,EAAmBm9B,EAAmB,OAAS3xF,QAAY,IAAWA,OAAW,EAASA,EAAS4xF,4BAA8B,OAAS5xF,QAAY,IAAWA,OAAW,EAASA,EAASq9C,yBAC9L1qC,EAAM0nB,EAAeuM,iBAAiB4tB,GACtC7hD,KAASA,EAAIsB,WAAa,WAAatB,EAAIT,SAAW,mBAAqBS,EAAIT,UAC/EsiD,IAEJ,IAAIq9B,EAAYx3D,EAAe01D,iBAAiBv7B,GAC5C,eAAUq9B,KACVhiG,EAAOtH,gBAAkBspG,IAIzC,kBACI,IAAIC,EAAiB,EAQrB,OAPAx9G,KAAK24G,aAAazhF,QAAQumF,IACtB,IAAIptF,EACA8rF,EAAa,QAAU9rF,EAAKrwB,KAAK+4G,iBAAiB0E,EAAS1vD,YAAS,IAAW19B,OAAK,EAASA,EAAG8rF,WAChG,eAAUA,IAAesB,EAASr/G,OAASk1G,IAA8B6I,EAAW9G,IAAgBmI,IACpGA,EAAiBrB,EAAW9G,OAG7BmI,EAAiB,EAE5B,2BAA2BE,GACvB,IAAIrtF,EACJ,OAAO,QAAUA,EAAKqtF,EAAa1pG,sBAAmB,IAAWqc,EAAKA,EAAKqtF,EAAazpG,gBAE5F,2BACI,IAAIgH,EAAiBjb,KAAKs8G,qBACtBv2D,EAAiB/lD,KAAKgoC,gBACtBrhB,EAAYo/B,EAAep/B,YAC3Bg3F,EAAgB53D,EAAeyO,YAAc,EACjD,OAAIv5C,IAAmBm5F,IAA0B,IAAMztF,EAC5C,EAEP1L,IAAmBo5F,IAAyB1tF,IAAcg3F,EACnDA,GAEH,EAEZ,OAAO5sB,GACH,IAAIhrC,EAAiB/lD,KAAKgoC,gBACtB+iB,EAAQhF,EAAegF,QAC3B,OAAKA,EAIE/qD,KAAK49G,QAAQ7sB,IAHhBhrC,EAAe4d,UAAU,QAAS3jE,KAAKixB,UAAUqD,OAC1C,IAAK,QAAUuO,UAI9B,QAAQkuD,GACJ,IAAIhrC,EAAiB/lD,KAAKgoC,gBACtB+iB,EAAQhF,EAAegF,QACvBgD,EAAMhD,GAASA,EAAMgD,MACrB8vD,EAAQ,CACR9pG,KAAM,IAEN+pG,EAAkB99G,KAAK27G,0BACvBrhG,EAAW,IAAI,OAInB,OAHAta,KAAK4lD,QAAQ,CACTm4D,oBAAoB,IAEnB/9G,KAAKg+G,mBAILjwD,IACD8vD,EAAM9pG,KAAKkqG,QAAUrzG,OAAO,IAAI,UAEpC,eAAK5K,KAAKk+G,YAAYL,EAAO9sB,IAAYv6D,KAAK,KACtCx2B,KAAKg+G,kBACL,eAAKh+G,KAAKm+G,YAAYN,EAAM9pG,KAAMg9E,EAAW+sB,IAAkBtnF,KAAKlc,EAAS4iB,SAAS+L,KAAK3uB,EAASuoB,QAEpGvoB,EAASuoB,OAAO,YAErBoG,KAAK3uB,EAASuoB,QACVvoB,EAAS2oB,YAbZ,eAAKjjC,KAAKo+G,kBAAkBN,IAAkBtnF,KAAKlc,EAAS4iB,SAAS+L,KAAK3uB,EAASuoB,QAC5EvoB,EAAS2oB,WAcxB,gBAAgB4O,GACZ,IAAIwsE,EAAcr+G,KAAKg9G,kBACvB,QAAIqB,EAAc,GAKtB,YAAYtqG,EAAMg9E,EAAWutB,GACzB,IAAI/iG,EAAS,CACTxH,KAAMA,EACN3V,KAAMk1G,IAENiL,EAAev+G,KAAK27G,0BACpBQ,EAAan8G,KAAKg7G,eAAez/F,EAAQw1E,IAEzChjC,IAAKA,GACLouD,EAGJ,OAFAn8G,KAAK07G,eAAe3tD,GAAK,GACzB/tD,KAAKw+G,WAAWjjG,GACTvb,KAAKo+G,kBAAkBE,EAAwB/iG,EAAQgjG,GAElE,kBAAkBT,EAAiBviG,EAAQgjG,GACvC,IAAI7pD,EAAI,IAAI,OACR3O,EAAiB/lD,KAAKgoC,gBACtBy2E,EAAkBz+G,KAAKgwB,cAAc,SAGzC,GAFAuuF,EAAe,OAASA,QAAgB,IAAWA,EAAeA,GAAgB,EAClFhjG,EAAS,OAASA,QAAU,IAAWA,EAASA,EAASvb,KAAK24G,aAAar0G,OAAOyrE,GAAKA,EAAE3xE,OAASk1G,IAA4B,IACzH/3F,EACD,OAAOm5C,EAAE7xB,OAAO,UAAUI,UAE9B,IAAIy7E,EAAuB1+G,KAAK2+G,2BAC5B9iF,EAAW77B,KAAK08G,mBAAmB32D,EAAevkC,QAASjG,GAAQ,GACnEqjG,EAAqB7wD,IACrB,eAAK,OAAS0wD,QAAmB,IAAWA,OAAkB,EAASA,EAAgBI,cAAc9wD,IAAMv3B,KAAK,KAC5GqF,EAAWkqB,EAAe+O,iBAAiBv5C,EAAOwyC,KAClD2G,EAAEx3B,aAGNq/E,EAAyBv8G,KAAKg8G,2BAA2BzgG,GA0B7D,OAzBImjG,GAAwB,EACxB34D,EAAep/B,UAAU+3F,GAAsBloF,KAAK,KAChDooF,EAAmBrjG,EAAOwyC,OAC3B9kB,KAAKyrB,EAAE7xB,QACHhH,EAAW,GAAK,eAAU0gF,GACjCqC,EAAmBrC,IAEnBx2D,EAAemG,YAAY,CACvBjoB,WAAY,SACZirB,WAAY,CAAC4uD,EAAiBS,EAAc1iF,KAEhDA,EAAWkqB,EAAe+O,iBAAiBv5C,EAAOwyC,KAC9ClyB,EAAW,EACX+iF,EAAmBrjG,EAAOwyC,KAE1B2G,EAAEx3B,WAGVw3B,EAAEl+B,KAAK,KACH,IAAInG,EACJ,QAAUA,EAAKrwB,KAAK0qE,iBAAc,IAAWr6C,GAAcA,EAAG8Y,oBAAmB,GAAM3S,KAAK,KACxFx2B,KAAK8+G,cAAcjjF,GACnB77B,KAAK++G,gBAAgBxjG,EAAOwyC,SAG7B2G,EAAEzxB,UAEb,cAAcpH,GACV77B,KAAKg/G,6BAA6BnjF,GAEtC,yBAAyBA,IACzB,6BAA6BA,GACzB,IAAIkqB,EAAiB/lD,KAAKgoC,gBACtBjY,EAAqB/vB,KAAKgwB,cAAc,sBACxC+9B,EAAMhI,EAAe01D,iBAAiB5/E,GACtCojF,EAAaj/G,KAAKg6G,0BAA0Bn+E,GAChD,OAAS9L,QAAsB,IAAWA,GAA8BA,EAAmBpB,MAAMswF,GACjGj/G,KAAK8uB,OAAO,gBAAiBi/B,GAC7B/tD,KAAKk/G,qBAAsB,EAC3Bl/G,KAAKm/G,mBAAmBF,EAAY,KAChCpjF,EAAWkqB,EAAe+O,iBAAiB/G,GAC3C/tD,KAAKk/G,qBAAsB,EAC3Bl/G,KAAKo/G,yBAAyBvjF,KAGtC,gBAAgBlW,GAEZ,OADA3lB,KAAK+tB,cAAc,iBAAkBpI,GAC9BA,EAAQxL,OAEnB,sBACA,6BACI,IAAIW,EAAiB9a,KAAK8uB,OAAO6kF,IACjC,OAAK,eAAU74F,GAGR9a,KAAKg/B,mBAAmBsL,sBAAsBxvB,IAFzC,EAIhB,0BAA0B7Y,EAAOq5G,GAC7B,IAAIjrF,EACA0O,EAAiB/+B,KAAKg/B,mBAAmBC,oBAC7Cj/B,KAAKq/G,mBAAmB,QAAUhvF,EAAK0O,EAAe98B,UAAW,IAAWouB,OAAK,EAASA,EAAG1c,KAAM2nG,GAEvG,mBAAmB3nG,EAAM2nG,GACjBA,EACAt7G,KAAK64G,cAAclF,GAAoChgG,GAEvD3T,KAAK8uB,OAAO6kF,GAAoChgG,GAGxD,uBACI3T,KAAKq/G,mBAAmB,MAAM,GAElC,iBACI,IAAIvkG,EAAiB9a,KAAK8uB,OAAO6kF,IACjC,OAAO3zG,KAAKs/G,iBAAiBxkG,GAEjC,iBAAiBnH,GACb,IACI4rG,EADAxgF,EAAiB/+B,KAAKg/B,mBAAmBC,oBAQ7C,OANA,eAAUtrB,IAASorB,EAAe4a,KAAK33C,IACnC,GAAIA,EAAO2R,OAASA,EAEhB,OADA4rG,EAAav9G,GACN,IAGRu9G,EAEX,wBAAwBC,GACpB,IAAIz5D,EAAiB/lD,KAAKgoC,gBACtBjtB,EAAa/a,KAAK8uB,OAAO4kF,IACzB73E,EAAWkqB,EAAe+O,iBAAiB/5C,GAC/C,OAAK,IAAM8gB,EACAA,EAEJA,EAAW77B,KAAK46G,2BAA2B4E,GAEtD,2BAA2BA,GACvB,IAAID,EAAaC,EAAax/G,KAAKs/G,iBAAiBE,GAAcx/G,KAAKy/G,iBACnEjhB,EAAiB,oBAAsB,OAAS+gB,QAAc,IAAWA,OAAa,EAASA,EAAWrhF,cAC9G,OAAOsgE,EAAiB,EAAI,EAEhC,mBACIx+F,KAAKu7G,kBAAmB,EACxBv7G,KAAK07G,eAAe,MAAM,GAE9B,oBACI17G,KAAKy6G,uBACLz6G,KAAK06G,mBAET,QAAQ7+E,GACJ,IAAIxL,EACA01B,EAAiB/lD,KAAKgoC,gBACtBxmB,EAAQukC,EAAevkC,QACvBuJ,EAAOvJ,EAAMqa,GACbgW,EAAS,CACT99B,KAAMgX,GAAQA,EAAKhX,KACnBoG,QAAQ,GAER0gG,EAAc76G,KAAK27G,0BACvB,GAAK5wF,EAGL,OAAI8Q,IAAag/E,aAGb,IAAW9vF,EAAKgjC,KAIfhjC,EAAK61C,WACN/uB,EAAOkc,IAAMhjC,EAAKgjC,KAElB/tD,KAAK0/G,gBAAgB7tE,KAGzB7xC,KAAKw6G,eACLx6G,KAAKk/C,OACLl/C,KAAKy6G,uBACLz6G,KAAKm7G,WAAap1D,EAAep/B,YACjC3mB,KAAKi7G,iBAAiB,CAClBltD,IAAKhjC,EAAKgjC,IACV0vB,QAAS,QAAUptD,EAAKtF,EAAK0yD,eAAY,IAAWptD,EAAKA,EAAKtF,EAAKhX,OAEvE/T,KAAK07G,eAAe3wF,EAAKgjC,OAjBrB/tD,KAAKgoC,gBAAgB27B,UAAU,UAmBvC,0BAA0B9nC,EAAUg/E,GAChC,IAAI3rD,EAAa,CAAC2rD,EAAah/E,GAC/B77B,KAAK2/G,mBAAmBzwD,EAAYrzB,EAAUg/E,GAC9C76G,KAAK4/G,8BAA8B1wD,EAAYrzB,GAEnD,8BAA8BqzB,EAAYrzB,EAAUgkF,GAChD7/G,KAAK8/G,kBAAmB,EACxB9/G,KAAKgoC,gBAAgBkkB,YAAY,CAC7BjoB,WAAY,SACZirB,WAAYA,EACZ/0C,OAAQ0lG,IAGhB,sBACA,eAAehkF,EAAUkkF,IACzB,qBACA,6BACI,OAAO9wF,IACCjvB,KAAK2/B,aACL3/B,KAAK+6G,kBAIjB,0BAA0Bl/E,IAC1B,uBACI,MAAO,CACH/nB,KAAM9T,KAAK8uB,OAAO,gCAClBlb,QAAS5T,KAAKggH,aAAa9rF,KAAKl0B,OAGxC,yBACI,MAAO,CACH8T,KAAM9T,KAAK8uB,OAAO,kCAClBlb,QAAS5T,KAAK+6G,eAAe7mF,KAAKl0B,OAG1C,oBAAoB+tD,GAChB,IAAI+qD,EAAe94G,KAAK+4G,iBAAiBhrD,GACrC9rD,EAAQjC,KAAKs4G,eAAe/1G,QAAQu2G,GACpC72G,GAAS,GACTjC,KAAKs4G,eAAelxE,OAAOnlC,EAAO,GAG1C,+BAA+B2Y,EAAS3Y,GACpC,IAAIg+G,EAAerlG,EAAQ3Y,GAC3B2Y,EAAQsc,QAAQ3b,IACZ,IAAIghG,EAAyBv8G,KAAKg8G,2BAA2BzgG,GACzD,eAAaghG,EAAwB0D,EAAalyD,OAClDxyC,EAAO,eAAUA,EAAOvH,gBAAkB,iBAAmB,mBAAqBhU,KAAKg8G,2BAA2BiE,MAI9H,cAAch+G,GACV,GAAIA,GAAS,EAAG,CACZ,IAAI2Y,EAAU,IAAI5a,KAAK24G,eAEnB5qD,IAAKA,GACLnzC,EAAQ3Y,GACZjC,KAAKkgH,oBAAoBnyD,GACzB/tD,KAAKmgH,+BAA+BvlG,EAAS3Y,GAC7C2Y,EAAQwsB,OAAOnlC,EAAO,GACtBjC,KAAK64G,cAAc1C,GAA6Bv7F,GAC5C,eAAa5a,KAAK8uB,OAAO4kF,IAAiC3lD,IAC1D/tD,KAAKogH,qBAIjB,iBAAiB9lG,EAAU+lG,GACvBrgH,KAAKi4G,gBAAkBj4G,KAAKi4G,eAAep1E,SAC3C7iC,KAAKi4G,eAAiB39F,EACtBta,KAAKsgH,4BAA4B9pF,KAAK,KAC9B,aAAelc,EAAS6sC,UAG5Bk5D,IACArgH,KAAKi4G,eAAiB,QACvBhvE,KAAK,KACJ3uB,EAASuoB,SACT7iC,KAAKi4G,eAAiB,OAG9B,4BACI,OAAO,kBAAQj4G,KAAKk4G,YAExB,+BACA,iBAAiBl2G,EAAQu+G,EAAWzC,GAChC99G,KAAK8/G,kBAAmB,GACnB99G,IAAWA,EAAO6U,kBAAoB0pG,IAAcA,EAAU1pG,kBAC/D7W,KAAKk/G,qBAAsB,EAC3Bl/G,KAAKgwB,cAAc,iBAAiBqhF,YACpCrxG,KAAKgoC,gBAAgBkkB,YAAY,CAC7BjoB,WAAY,SACZirB,WAAY,CAAC4uD,EAAiB99G,KAAK27G,8BAEhC35G,IAAWu+G,GAClBvgH,KAAKgoC,gBAAgBkkB,YAAY,CAC7BjoB,WAAY,SACZirB,WAAY,KAIxB,mBAAmBx9B,EAAO8uF,EAAqBC,GAC3C,IAAIC,EAAa,KAIb,GAHIF,GACAA,IAEA9uF,EAAO,CACP,IAAIivF,EAAoBjvF,EAAMnE,KAAKumF,IAA4BhmF,QAC/D,QAAc8yF,sBAAsB5gH,KAAM2gH,GAE9C3gH,KAAK6gH,qBAAuB,MAE5BvkB,GAAA,KAAQC,OAAOoR,KAAOrR,GAAA,KAAQC,OAAOukB,QACrCJ,KAEI1gH,KAAK6gH,sBACL7gH,KAAK6gH,uBAETplF,aAAaz7B,KAAKi6G,sBACdwG,IACAzgH,KAAK6gH,qBAAuBL,GAEhCxgH,KAAKi6G,qBAAuBz+E,WAAWklF,IAG/C,kBAAkBF,EAAqBO,EAAWN,GAC9C,IAAI/0F,EAAW1rB,KAAK6uC,QAAQ,YACxBmyE,EAAkBhhH,KAAK87G,6BAC3BiF,EAAYA,GAAar1F,GAAYA,EAASuf,gBAAgBjrC,KAAK27G,0BAA2BqF,GAC1FD,GACA/gH,KAAKm/G,mBAAmB4B,EAAWP,EAAqBC,GAGhE,UAAU5kF,GACN77B,KAAKihH,mBAAmBplF,GAE5B,mBAAmBA,GACf,IAAIw9E,EAAiBr5G,KAAK8uB,OAAO,WAC7BtT,EAAe,OAAS69F,QAAkB,IAAWA,OAAiB,EAASA,EAAergG,MAC9F6B,EAAgB,OAASw+F,QAAkB,IAAWA,OAAiB,EAASA,EAAex+F,cAC/Fe,EAAuB,OAASJ,QAAgB,IAAWA,OAAe,EAASA,EAAaI,qBAChGmP,EAAO/qB,KAAKgoC,gBAAgBxmB,QAAQqa,GACpCnhB,GAAiB1a,KAAK2/B,aAAe5U,EAAK61C,SAC9C,GAAI71C,GAAQrQ,EACR,GAAKG,GAAkBe,EAEhB,CACH,IAAIC,EAAqBL,GAAgBA,EAAaK,mBAClDqlG,EAAkB,eAAUrlG,IAAuBA,EAAmBld,OAAS,EACnF,gBAAQid,EAAsBC,EAAoBqlG,GAAiB1qF,KAAK2qF,IAChEA,GACAnhH,KAAKohH,eAAevlF,UAN5B77B,KAAKohH,eAAevlF,GAYhC,eAAeA,GACX,IAAIkqB,EAAiB/lD,KAAKgoC,gBACtBjd,EAAOg7B,EAAevkC,QAAQqa,GAC9BkyB,EAAMhjC,GAAQA,EAAKgjC,IACnB+vD,EAAkB99G,KAAK27G,0BAC3B37G,KAAK4lD,UACL,IAAIhrC,EAAU5a,KAAK24G,aACfK,EAAY,QAAcnkD,cAAc9G,EAAKnzC,GAiBjD,OAhBIo+F,GAAa,EACTp+F,EAAQo+F,GAAW56G,OAASk1G,GAC5BtzG,KAAKqhH,cAAcrI,GAEnBh5G,KAAKw+G,WAAW,CACZzwD,IAAKA,EACL3vD,KAAMm1G,KAIdvzG,KAAKw+G,WAAW,CACZzwD,IAAKA,EACL0vB,QAAS1yD,EAAKhX,KACd3V,KAAMm1G,KAGPvzG,KAAKshH,gBAAgBzlF,EAAUiiF,GAE1C,gBAAgBjiF,EAAUiiF,GACtB,OAAO99G,KAAKggH,eAEhB,YAAYnkF,GACR,IAAIkqB,EAAiB/lD,KAAKgoC,gBACtBjd,EAAOg7B,EAAevkC,QAAQqa,GAC9BiiF,EAAkB99G,KAAK27G,0BACvB5tD,EAAMhjC,GAAQA,EAAKgjC,IACnBnzC,EAAU5a,KAAK24G,aACnB,GAAI5tF,EAAM,CACN,IAAIiuF,EAAY,QAAcnkD,cAAc9G,EAAKnzC,GACjD,GAAIo+F,GAAa,EAAG,CAChB,IACIjlG,KAAMA,GACN6G,EAAQo+F,GACR,eAAcjlG,GACd/T,KAAKqhH,cAAcrI,GAEnBh5G,KAAKw+G,WAAW,CACZzwD,IAAKA,EACL3vD,KAAMs3G,KAGd3vD,EAAemG,YAAY,CACvBjoB,WAAY,SACZirB,WAAY,CAAC4uD,EAAiBjiF,OAK9C,gBACI,IAAI0lF,EAAiB,CACjBpnG,QAAQ,EACR8oB,QAAS,KACTroB,QAAS,IAAI5a,KAAK24G,eAEtB34G,KAAK+tB,cAAc,WAAYwzF,GAC/B,IAAI7sD,EAAI,IAAI,OAUZ,OATA,eAAK,eAAY6sD,EAAet+E,UAAUzM,KAAK,KAC3Ck+B,EAAEx3B,QAAQqkF,KACXt4E,KAAK03B,IACJu2C,GAAqBxiD,GACrB10D,KAAK+8G,uBAAuBp8C,GAC5BjM,EAAEx3B,QAAQ,CACN/iB,QAAQ,MAGTu6C,EAEX,sBAAsBhhC,EAAYme,EAAQwuE,GACtC,GAAIrgH,KAAKixB,UAAU0a,UACf,OAAO,KAEX,IAAIrxB,EAAW,IAAI,OAWnB,OAVAta,KAAK+tB,cAAc2F,EAAYme,GAC/B,eAAK,eAAYA,EAAO13B,SAASqc,KAAKrc,IAC9BA,EACAqhB,WAAW,KACPlhB,EAAS4iB,QAAQ,YAGrBmjF,EAAKxuE,GAAQrb,KAAKlc,EAAS4iB,SAAS+L,KAAKiuE,GAAqB58F,MAEnE2uB,KAAKiuE,GAAqB58F,IACtBA,EAEX,gBAAgB+pC,EAAWm9D,EAASC,EAAa7mG,GAC7C,IAAImwC,EAAQ/qD,KAAKgoC,gBAAgB+iB,QACjC,eAAKnwC,EAAS,CAAC3Y,EAAOsZ,KAClB,IAMIjB,EACAu3B,EAPA4rC,EAAUz9E,KAAKi5G,YAAY19F,EAAOwyC,MAElCh6C,KAAMA,EACN3V,KAAMA,GACNmd,EACAmmG,EAAa,eAAS,GAAInmG,GAG9B,IAAIvb,KAAK2hH,oBAAoBpmG,EAAQtZ,GAArC,CAGA,OAAQ7D,GACJ,KAAKm1G,GACD1hE,EAAS,CACL99B,KAAM0pE,EACN1vB,IAAKxyC,EAAOwyC,IACZ5zC,QAAQ,GAEZG,EAAWta,KAAK4hH,sBAAsB,gBAAiB/vE,EAAQ,IAAMkZ,EAAM/nB,OAAOznB,EAAOwyC,KAAKv3B,KAAKu3B,IAC/F0zD,EAAYhiH,KAAK,CACbrB,KAAM,SACN2vD,IAAKA,OAGb,MACJ,KAAKulD,GACDzhE,EAAS,CACL99B,KAAMA,EACNoG,QAAQ,GAEZG,EAAWta,KAAK4hH,sBAAsB,iBAAkB/vE,EAAQ,IAAMkZ,EAAM82D,OAAOhwE,EAAO99B,MAAMyiB,KAAK,CAACziB,EAAMg6C,KACpG,eAAUA,KACV2zD,EAAW3zD,IAAMA,GAEjBh6C,GAAQ,eAASA,IAASA,IAAS89B,EAAO99B,OAC1C2tG,EAAW3tG,KAAOA,GAEtB0tG,EAAYhiH,KAAK,CACbrB,KAAM,SACN2V,KAAMA,EACN9R,MAAO,OAGf,MACJ,KAAKyzG,GACD7jE,EAAS,CACLiwE,QAAS/tG,EACT0pE,QAASA,EACT1vB,IAAKxyC,EAAOwyC,IACZ5zC,QAAQ,GAEZG,EAAWta,KAAK4hH,sBAAsB,gBAAiB/vE,EAAQ,IAAMkZ,EAAM1jB,OAAO9rB,EAAOwyC,IAAKlc,EAAOiwE,SAAStrF,KAAK,CAACziB,EAAMg6C,KAClHh6C,GAAQ,eAASA,IAASA,IAAS89B,EAAOiwE,UAC1CJ,EAAW3tG,KAAOA,GAEtB0tG,EAAYhiH,KAAK,CACbrB,KAAM,SACN2vD,IAAKA,EACLh6C,KAAMA,OAKtB,GADA6G,EAAQ3Y,GAASy/G,EACbpnG,EAAU,CACV,IAAIynG,EAAe,IAAI,OACvBznG,EAAS4oB,OAAOnvB,IACZytG,EAAQ/hH,KAAK,CACTsuD,IAAKxyC,EAAOwyC,IACZ7rD,OAAQ6R,MAEbmvB,OAAO6+E,EAAa7kF,SACvBmnB,EAAU5kD,KAAKsiH,EAAa9+E,eAIxC,sBAAsBroB,EAASo+F,GAC3B,IAAIz9F,EAASX,EAAQo+F,GAMrB,OALK,OAASz9F,QAAU,IAAWA,OAAS,EAASA,EAAOnd,QAAUm1G,IAC9DyF,GAAa,GACbp+F,EAAQwsB,OAAO4xE,EAAW,IAG3B,EAEX,eAAep+F,EAASo+F,EAAW7+F,GAC/B,IAAIoB,EAASX,EAAQo+F,GACrB,IAAK7+F,IAAWoB,GAAUA,EAAOnd,OAASm1G,GACtC,OAAOvzG,KAAKgiH,mBAAmBpnG,EAASo+F,GAAY7+F,IAAWoB,GAGvE,mBAAmBX,EAASo+F,EAAWiJ,GAInC,OAHIjJ,GAAa,GACbp+F,EAAQwsB,OAAO4xE,EAAW,IAEvB,EAEX,2BAA2BwI,GAIvB,IAHA,IAAIU,GAAe,EACftnG,EAAU,IAAI5a,KAAK24G,cACnBwJ,EAAgBvnG,EAAQjc,OACnB6B,EAAI,EAAGA,EAAIghH,EAAQ7iH,OAAQ6B,IAAK,CACrC,IAAImgE,EAAM6gD,EAAQhhH,GAAG0B,OACjBiY,EAAS,WAAawmD,EACtBq4C,EAAY,QAAcnkD,cAAc2sD,EAAQhhH,GAAGutD,IAAKnzC,GACxDW,EAASX,EAAQo+F,GACjBoJ,EAAUzhD,GAAOA,aAAe9oC,MACpC,GAAIuqF,GAQA,GAPI7mG,GACAvb,KAAKi7G,iBAAiB,CAClBltD,IAAKxyC,EAAOwyC,IACZrD,MAAOiW,IAGf3gE,KAAK+8G,uBAAuBp8C,GACxB3gE,KAAKqiH,sBAAsBznG,EAASo+F,GACpC,WAEGh5G,KAAKsiH,eAAe1nG,EAASo+F,EAAW7+F,KAC/C+nG,GAAgB/nG,GAMxB,OAHIS,EAAQjc,OAASwjH,GACjBniH,KAAK64G,cAAc1C,GAA6Bv7F,GAE7CsnG,EAEX,wBAAwBtnG,GACpB,eAAKA,EAAS,CAAC+c,EAAGR,KACd,IACIpjB,KAAMA,EACNg6C,IAAKA,EACL3vD,KAAMA,GACN+4B,EACA2hF,EAAe94G,KAAKi7G,iBAAiB,CACrCltD,IAAKA,IAELlc,EAAS,CACTkc,IAAKA,EACLh6C,KAAMA,GAKV,OAHI+kG,EAAapuD,QACb7Y,EAAO6Y,MAAQouD,EAAapuD,OAExBtsD,GACJ,KAAKm1G,GACDvzG,KAAK+tB,cAAc,eAAgB,OAAAZ,EAAA,MAAO,GAAI0kB,EAAQ,CAClD99B,KAAM+kG,EAAar7B,WAEvB,MACJ,KAAK61B,GACDtzG,KAAK+tB,cAAc,gBAAiB8jB,GACpC,MACJ,KAAK6jE,GACD11G,KAAK+tB,cAAc,eAAgB8jB,MAG/C7xC,KAAK+tB,cAAc,UAAW,CAC1BnT,QAASA,IAGjB,eACI,IAAIN,EAAW,IAAI,OAsBnB,OArBAta,KAAKsgH,4BAA4B9pF,KAAK,KAC9Bx2B,KAAKuiH,WACLviH,KAAKwiH,kBAAkBloG,GAG3B,eAAKta,KAAK2hH,uBAAuBnrF,KAAKrc,IAC9BA,EACAna,KAAKwiH,kBAAkBloG,EAAU,CAC7BH,OAAQA,KAIhBna,KAAKyiH,SAAU,EACfziH,KAAK0iH,qBAAqBx/E,OAAO,KAC7BljC,KAAKyiH,SAAU,EACXziH,KAAKu7G,kBACLv7G,KAAKw7G,sBAEVhlF,KAAKlc,EAAS4iB,SAAS+L,KAAK3uB,EAASuoB,WACzCoG,KAAK3uB,EAASuoB,UAClBoG,KAAK3uB,EAASuoB,QACVvoB,EAAS2oB,UAEpB,kBAAkB3oB,GACd,IACIH,OAAQA,EACRuwC,MAAOA,GACPlmD,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,GAAKA,UAAU,GAAK,GACrE,eAAKxE,KAAK2iH,mBAAmBxoG,IAASqc,KAAK,KACvClc,EAAS4iB,QAAQwtB,KAClBzhB,KAAK3uB,EAASuoB,QAErB,qBACI,IAAI3gC,EAAS,IAAI,OACbs/G,EAAU,GACVn9D,EAAY,GACZo9D,EAAc,GACd11G,EAAa/L,KAAKgoC,gBAAgBj8B,aA8BtC,OA7BA,eAAK/L,KAAK4iH,iBAAiBpsF,KAAKqC,IAC5B,IACI1e,OAAQA,EACRS,QAASA,GACTie,EACJ,OAAI1e,EACOjY,EAAOg7B,UAAU+F,WAE5BjjC,KAAK6iH,gBAAgBx+D,EAAWm9D,EAASC,EAAa7mG,GAClDypC,EAAU1lD,QACVqB,KAAKu7G,kBAAmB,EACxB,OAASxvG,QAAc,IAAWA,GAAsBA,EAAW68F,eACnE,kBAAQvkD,GAAW7tB,KAAK,KAChBx2B,KAAK8iH,2BAA2BtB,GAChCxhH,KAAK+iH,WAAWtB,EAAa7mG,EAAS1Y,IAEtC,OAAS6J,QAAc,IAAWA,GAAsBA,EAAW+8F,aACnE5mG,EAAOg7B,aAEZ+L,KAAKyhB,IACJ,OAAS3+C,QAAc,IAAWA,GAAsBA,EAAW+8F,aACnE5mG,EAAOg7B,QAAQwtB,KAEZxoD,EAAOghC,OAAO,KACjBljC,KAAKu7G,kBAAmB,IACzBt4E,gBAEPjjC,KAAKgjH,cAAc9gH,MACpB+mC,KAAK/mC,EAAO2gC,QACR3gC,EAAO+gC,UAElB,iBAAiBroB,GACb5a,KAAKogH,oBAET,WAAWqB,EAAa7mG,EAASN,GAC7B,IAAIvO,EAAa/L,KAAKgoC,gBAAgBj8B,aACtC/L,KAAKijH,iBAAiBroG,GACtB,OAAS7O,QAAc,IAAWA,GAAsBA,EAAW+8F,aACnE9oG,KAAKkjH,sBAAsBzB,EAAa7mG,EAASN,GAErD,cAAcpY,GACVlC,KAAK+tB,cAAc,UAAW,CAC1BnT,QAAS,KAEb5a,KAAKwiH,kBAAkBtgH,GAE3B,sBAAsBu/G,EAAa7mG,EAASN,GACxC,IAAIyrC,EAAiB/lD,KAAKgoC,gBACtB7sB,EAAcnb,KAAK8uB,OAAO,uBAC1Bq0F,EAAgB,YAAchoG,GAAe,YAAcA,EAC1DgoG,GACDp9D,EAAetmD,KAAKgiH,GAExB,eAAK17D,EAAeH,QAAQ,CACxB70C,UAAWoyG,EACXz2D,OAAQy2D,EACRl7D,KAAM,YAAc9sC,EACpBi6C,YAAap1D,KAAK8uB,OAAO,yBACzBoU,OAAO,KACPljC,KAAKojH,wBAAwBxoG,KAC9B4b,KAAK,KACJx2B,KAAKwiH,kBAAkBloG,KACxB2uB,KAAKyhB,IACJ1qD,KAAKwiH,kBAAkBloG,EAAU,CAC7BowC,MAAOA,MAInB,WACI,OAAO1qD,KAAKyiH,QAEhB,oBACI,IAAIY,EAAsBrjH,KAAKsjH,uBAC3BhoG,EAAWtb,KAAK8uB,OAAO,oBACvBrb,EAAW0hG,IAAsB75F,EAAW,IAAI+P,OAAO+pF,IAAiC,IAC5Fp1G,KAAKg/B,mBAAmBqc,iBAAiB,CACrCj9C,KAAM,UACNo0B,QAAS,OACT3gB,QAASwxG,EACT5vG,SAAUA,EACV3B,MAAO,OACPwC,UAAW,SACXmB,aAAczV,KAAKujH,8BACnBptG,cAAe,UAEnBnW,KAAKg/B,mBAAmBoM,aAAa,eAAgB,CACjDv5B,QAASwxG,EACT5vG,SAAUA,IAGlB,uBACI,IAAI4lG,EAAiBr5G,KAAK8uB,OAAO,WACjC,OAAOuqF,EAAe3+F,cAE1B,wBACI,IAAIuxD,EAAajsE,KAAKisE,aAClBu3C,EAAmB,eAAUxjH,KAAK8uB,OAAO,uBAC7C,QAAS00F,GAAoBv3C,GAEjC,qBACI,IAAInN,EAAc9+D,KAAK6uC,QAAQ,eAC3B40E,EAAmBzjH,KAAK0jH,wBACxB5kD,IACAA,EAAY6kD,uBAAuB,aAAcF,GACjD3kD,EAAY6kD,uBAAuB,eAAgBF,IAG3D,eAAe50F,EAAUlJ,GACrBkJ,GAAYA,EAASnC,SAAS8oF,IAElC,gCAAgCtmD,IAChC,iBACI,IAAIt0C,EAAU5a,KAAK24G,aACf9mE,EAAS,CACT13B,QAAQ,EACRS,QAASA,GAEb5a,KAAK+tB,cAAc,kBAAmB8jB,GACjCA,EAAO13B,SACRna,KAAK4jH,sBACL5jH,KAAK+tB,cAAc,iBAAkB,CACjCnT,QAASA,KAIrB,sBACI,IAAIihB,EAAW77B,KAAK27G,0BACpB37G,KAAK6jH,wBACL7jH,KAAKk/C,OACLl/C,KAAKw6G,eACLx6G,KAAKy6G,uBACLz6G,KAAK06G,mBACL16G,KAAK8jH,qBAAqBjoF,GAE9B,qBAAqBA,GACjB,IAAIkqB,EAAiB/lD,KAAKgoC,gBAC1B+d,EAAemG,YAAY,CACvB37C,mBAAoBvQ,KAAK8uB,OAAO,wBAGxC,kBACA,cACI,OAAO9uB,KAAKisE,aAEhB,OAAOhoC,GACH,IAAI8hB,EAAiB/lD,KAAKgoC,gBACtB+d,GAAkB/lD,KAAKm7G,aAAep1D,EAAep/B,cACjD,YAAcsd,GACdjkC,KAAK4lD,QAAQ,CACTm+D,eAAe,IAGvB/jH,KAAKm7G,WAAap1D,EAAep/B,aAErC3mB,KAAKq4G,qBAET,iCAAiCh6E,EAAK2lF,GAClC,OAAOA,EAAiB,GAAK,CAAC3lF,EAAIxC,UAEtC,YAAYvhB,GACHta,KAAKk4G,WAAW1pE,SAASl0B,KAC1Bta,KAAKk4G,WAAWz4G,KAAK6a,GACrBA,EAAS4oB,OAAO,KACZ,IAAIjhC,EAAQjC,KAAKk4G,WAAW31G,QAAQ+X,GAChCrY,GAAS,GACTjC,KAAKk4G,WAAW9wE,OAAOnlC,EAAO,MAK9C,eAAe0jB,EAAS3nB,EAAO8V,GAC3B,IAAIuc,EACAyxF,EAAU,GACVrkC,EAAU,QAAUptD,EAAK1K,EAAQ0Y,WAAQ,IAAWhO,OAAK,EAASA,EAAGtc,KACrEkwG,EAASt+F,EAAQooC,IACjBzzC,EAAW,IAAI,OACnB,QAAI,IAAW2pG,EAAQ,CACnBt+F,EAAQ3nB,MAAQA,EAChB,IAAIkmH,EAAqB,eAAYv+F,EAAQ3jB,OAAO4U,aAAakrG,EAAS9jH,EAAO,OAAAmvB,EAAA,OAAO,EAAM,GAAIswD,GAAU3pE,IAC5GowG,EAAmB1tF,KAAK,KACpBlc,EAAS4iB,QAAQ,CACbnpB,KAAM+tG,EACN/zD,IAAKk2D,EACLxmC,QAASA,EACTr/E,KAAMs3G,OAEXzsE,KAAKiuE,GAAqB58F,IAAW2uB,KAAK03B,GAAO3gE,KAAK+8G,uBAAuBp8C,IAC5E,eAAU7sD,IAAS6R,EAAQ3jB,OAAO2iD,kBAClCh/B,EAAQ3jB,OAAO2iD,gBAAgB3mD,GAAS8V,GAE5C9T,KAAKmkH,iBAAiBx+F,GACtB3lB,KAAKokH,YAAY9pG,GAErB,OAAOA,EAEX,iBAAiBqL,GACb,GAAIA,EAAQ/hB,OAAQ,CAChB,IAAImiD,EAAiB/lD,KAAKgoC,gBACtBnM,EAAWkqB,EAAe+O,iBAAiBnvC,EAAQooC,KACnD1vB,EAAM0nB,EAAeuM,iBAAiBz2B,GACtCwC,IACA1Y,EAAQ0Y,IAAIz6B,OAASy6B,EAAIz6B,OACzB+hB,EAAQ/hB,OAASy6B,EAAIz6B,QAEzB+hB,EAAQ/hB,OAAO+hB,EAAQuZ,aAAevZ,EAAQ3nB,OAGtD,iBAAiB2nB,EAAS3nB,EAAO8V,EAAMuwG,GACnC,IAAIJ,EAASt+F,EAAQooC,IACjBzzC,EAAW,IAAI,OAanB,YAZI,IAAW2pG,GACXjkH,KAAKgoC,gBAAgB27B,UAAU,SAE/Bh+C,EAAQ3jB,OAAO4U,aACf5W,KAAKskH,eAAe3+F,EAAS3nB,EAAO8V,GAAM0iB,KAAKqb,IAC3C,eAAK7xC,KAAKoyD,aAAazsC,EAASksB,EAAQwyE,IAAiBnhF,OAAO,KAC5D5oB,EAAS4iB,cAIjB5iB,EAAS4iB,UAEN5iB,EAAS2oB,UAEpB,gCAAgCtd,GAC5B,GAAI3lB,KAAKukH,gBAAkBvkH,KAAKwkH,WAAW7+F,EAAQkW,SAAUlW,EAAQuZ,aAGjE,OAFAl/B,KAAKw7G,oBACLx7G,KAAKykH,eAAe9+F,EAAQ0Y,KAAK,IAC1B,EAGf,eAAer8B,GACX,IAAI+8B,EAAiB/+B,KAAKg/B,mBAAmBC,oBACxCj9B,IACDA,EAAShC,KAAKy/G,kBAElB,IAAIiF,EAAuB1iH,GAAUA,EAAO4U,eAAiB5U,EAAOs5C,oBAChEqpE,EAA6B5lF,EAAe4a,KAAKqN,GAAiBA,EAAc5xC,qBAAuB4xC,EAAc5G,2BACzH,OAAOskE,GAAwBC,EAEnC,aAAah/F,EAASksB,EAAQwyE,GAC1B,IAAIO,EAAgB,eAAS,eAAS,GAAIj/F,GAAU,CAChD0+F,eAAgBA,IAIpB,OAFArkH,KAAKw+G,WAAW3sE,EAAQ+yE,GACxB5kH,KAAKq4G,qBACEr4G,KAAK6kH,iBAAiBl/F,EAASi/F,EAAcP,gBAExD,iBAAiB1+F,EAAS0+F,GACtB,IAAIK,EAAuB/+F,EAAQ3jB,OAAO4U,eAAiB+O,EAAQ3jB,OAAOs5C,qBAEtEjd,IAAKA,GACL1Y,EACA0Y,IACIgmF,GAAkBK,EAClB1kH,KAAKykH,eAAepmF,EAAKgmF,EAAgBK,GAClCrmF,EAAIgJ,QACXhJ,EAAIgJ,UAIhB,mBAAmBhJ,EAAK2lF,EAAgBU,GACpC1kH,KAAKgoC,gBAAgBkkB,YAAY,CAC7BjoB,WAAY,SACZirB,WAAYlvD,KAAK8kH,iCAAiCzmF,EAAK2lF,KAG/D,eAAe3lF,EAAKgmF,EAAgBK,GAC5BL,EACArkH,KAAK+kH,sBAAsB1mF,EAAKgmF,EAAgBK,GAEhD1kH,KAAKglH,oBAAoB3mF,EAAKqmF,GAGtC,sBAAsBrmF,EAAKgmF,EAAgBK,GACvC1kH,KAAKilH,mBAAmB5mF,GAAMgmF,EAAgBK,GAC9C1kH,KAAKklH,6BAA6B7mF,EAAKqmF,GAClCL,GACDrkH,KAAKw7G,oBAGb,oBAAoBn9E,EAAKqmF,GACrB,IAAIpqG,EAAW,IAAI,OACnBta,KAAKokH,YAAY9pG,GACjBkhB,WAAW,KACP,IAAInL,EACA80F,GAAoB,QAAU90F,EAAKrwB,KAAKolH,iBAAc,IAAW/0F,OAAK,EAASA,EAAGpD,YAAcjtB,KAAKixB,UAAUpC,WAAW8E,IAAI,GAC9HiwD,EAAkB,eAAE,aAAWxU,iBAAiB+1C,IAChDjmF,EAAcl/B,KAAK0qE,UAAUr5B,aAAauyC,EAAiBvlD,EAAIxC,UAC/DgxC,EAAiB+W,EAAgBjwD,IAAI,GACrCm5C,EAAiB,QAAcuC,kBAAkBxC,GAGrD,GAFA7sE,KAAKilH,mBAAmB5mF,GAAK,EAAOqmF,GACpC1kH,KAAKklH,6BAA6B7mF,EAAKqmF,GACnCxlF,GAAe,EAAG,CAClB,IAAImmF,EAAerlH,KAAK0qE,UAAUz/B,gBAAgB5M,EAAIxC,SAAUqD,GAChEl/B,KAAKm/G,mBAAmBkG,EAAc,KAClC7pF,WAAW,KACP,IAAInL,EACJw8C,EAAiB,aAAWuC,iBAAiB,QAAU/+C,EAAKrwB,KAAKixB,UAAUpC,kBAAe,IAAWwB,OAAK,EAASA,EAAGsD,IAAI,IACtHm5C,EAAew4C,gBAAkB,GACjC,QAAcv4C,kBAAkBF,EAAgBC,OAKhExyD,EAAS4iB,YAGjB,gCACA,WAAWqoF,EAAc5/F,GACrB,IAAI0K,EACAgO,EAAM,OAAS1Y,QAAW,IAAWA,OAAU,EAASA,EAAQ0Y,IAChEzjB,EAAU,IAAI5a,KAAK24G,cACnB12G,EAAQ,QAAc4yD,cAAc0wD,EAAax3D,IAAKnzC,GACtD3Y,EAAQ,IACRA,EAAQ2Y,EAAQjc,OAChBqB,KAAKi7G,iBAAiB,CAClBltD,IAAKw3D,EAAax3D,IAClB0vB,QAAS8nC,EAAa9nC,iBAEnB8nC,EAAa9nC,QACpB7iE,EAAQnb,KAAK8lH,IAEjB,IAAIhqG,EAAS,eAAS,GAAIX,EAAQ3Y,IAkBlC,OAjBIsZ,IACIgqG,EAAaxxG,OACbwH,EAAOxH,KAAO,gBAAwBwH,EAAOxH,KAAMwxG,EAAaxxG,OAE9DwH,EAAOnd,MAASmnH,EAAaxxG,OAASwxG,EAAannH,OACrDmd,EAAOnd,KAAOmnH,EAAannH,MAE3BigC,IACAA,EAAIo/C,QAAUz9E,KAAKi5G,YAAY56E,EAAI0vB,KACnC1vB,EAAItqB,KAAO,gBAAwBsqB,EAAItqB,KAAMwxG,EAAaxxG,QAGlE6G,EAAQ3Y,GAASsZ,EACjBvb,KAAK64G,cAAc1C,GAA6Bv7F,GAC5C+K,GAAWpK,KAAY,QAAU8U,EAAKrwB,KAAK24G,oBAAiB,IAAWtoF,OAAK,EAASA,EAAGpuB,MACxF0jB,EAAQ0+F,gBAAiB,GAEtB9oG,EAEX,yBAAyB4jB,EAAan9B,GAClC,OAAOA,EAAO2T,kBAAoB3V,KAAKwlH,4BAE3C,kBAAkB7/F,GACd,IAII9R,EAIA4xG,GAPAzjH,OAAQA,GACR2jB,EACAkW,EAAWlW,EAAQ0Y,KAAO1Y,EAAQ0Y,IAAIxC,SAEtC6pF,EAAY1lH,KAAK2lH,qBACjBC,EAAe5lH,KAAKktG,UAAUrxE,GAC9ByiC,EAAgBt+D,KAAKwkH,WAAW3oF,EAAUlW,EAAQuZ,aAEtD,KAAKl9B,EAAO6U,kBAAoB7U,EAAO4U,eAAiBgvG,GAAgB5jH,EAAOuS,cAAgB+pD,KAAoB,SAAW34C,EAAQiY,SAAW,mBAAqBjY,EAAQiY,SAAa57B,EAAOwwB,QAmBvL,WAAaxwB,EAAOwwB,SAAW,WAAa7M,EAAQiY,SAAWgoF,IACtE/xG,EAAW,OAAS7T,WAAQ,IAAWA,UAAO,EAASA,KAAK6lH,oBAAoBlgG,QApBuH,CACvM,IAAIhL,EAAgB3a,KAAK2a,cAAcgL,MACjChL,GAAiBirG,IAAiB5jH,EAAOuS,cAAgB+pD,KAAmBsnD,GAAiBF,IAC3F1jH,EAAO6U,mBAAqB6uG,IAC5BD,EAAsB,CAClBtrG,QAAQ,EACR4zC,IAAKpoC,EAAQ0Y,IAAIuiC,cAAW,EAASj7C,EAAQ0Y,IAAI0vB,IACjDh6C,KAAM4R,EAAQ0Y,IAAItqB,KAClB/R,OAAQA,GAEZhC,KAAK0/G,gBAAgB+F,IAEpBA,GAAwBA,EAAoBtrG,SAC7CwL,EAAQuoF,SAAW,CAAClwG,EAAO8V,KACvB9T,KAAK8lH,iBAAiBngG,EAAS3nB,EAAO8V,MAIlDD,EAAW7R,EAAO2T,kBAAoB3V,KAAKwlH,4BAI/C,OAAO3xG,EAEX,cAAcge,EAAYta,EAAQoO,EAASpK,GACvC,IAAI7H,EAAOqiG,GAAgBx+F,EAAO5D,MAC9B2H,EAAWtb,KAAK8uB,OAAO,oBACvBi3F,EAAgC/lH,KAAK8uB,OAAO,iCAC5Ck3F,EAAU,eAAE,OAAOl5F,KAAK,OAAQ,KAAKJ,SAASqoF,IAAYroF,SAASnV,EAAO9D,UAC9E,GAAI8D,EAAO1D,UAAYkyG,EACnB/lH,KAAK0qE,UAAUpkC,eAAezU,EAAYta,EAAO1D,SAAU8R,GAAS,OACjE,CACH,GAAIpO,EAAO1D,SACPmyG,EAAU,eAAE,UAAUt5F,SAASnV,EAAO9D,eACnC,GAAI6H,GAAY5H,GAAQ6D,EAAO7D,KAAM,CACxCA,EAAO6D,EAAO7D,MAAQA,EACtB,IAAIuyG,EAAW,QAA6BvyG,GACxC,UAAYuyG,GAAY,QAAUA,EAClCD,EAAU,QAA4BtyG,GAAMgZ,SAASnV,EAAO9D,UAE5DuyG,EAAQt5F,SAAS,UAAUrB,OAAO,WAAa46F,EAAW,IAAM,KAAK56F,OAAO3X,IAAOoZ,KAAK,QAASvV,EAAOzD,MAE5GkyG,EAAQt5F,SAASsoF,IACjBnjF,EAAWnF,SAAS0oF,IACpB,IAAI8Q,EAAmBlmH,KAAKmmH,6BAA6B5uG,EAAO5D,MAChEuyG,GAAoBF,EAAQl5F,KAAK,aAAc,OAAoB/uB,OAAOmoH,SAE1EF,EAAQlyG,KAAKyD,EAAOzD,MAEpB,eAAUyD,EAAOpK,OACjB64G,EAAQl5F,KAAK,QAASvV,EAAOpK,MAE7BnN,KAAK85G,kBAAkBviG,EAAQoO,GAC/BqgG,EAAQt5F,SAAS,qBACTnV,EAAO1D,WAAY0D,EAAO3D,SAClC,OAAa0a,GAAG03F,EAAS,eAAa,QAASvQ,IAAoBz1G,KAAKkwB,aAAajB,IACjF,IAAIoB,EACJ,QAAUA,EAAK9Y,EAAO3D,eAAY,IAAWyc,GAAcA,EAAG8I,KAAK5hB,EAAQ,OAAA4V,EAAA,MAAO,GAAI8B,EAAG,CACrFoP,IAAK1Y,EAAQ0Y,IACbr8B,OAAQ2jB,EAAQ3jB,UAEpBitB,EAAEhD,MAAM4S,iBACR5P,EAAEhD,MAAMg+C,qBAGhBp4C,EAAWE,OAAOi0F,EAAS,UACvBzuG,EAAO1D,WACP8R,EAAQrV,aAAc,EACtBtQ,KAAK0qE,UAAUpkC,eAAe0/E,EAASzuG,EAAO1D,SAAU8R,GAAS,EAAMpK,KAInF,6BACI,MAAO,CACHs6F,KAAM,4BACN37B,KAAM,mCACNz4C,OAAQ,8BACRq0E,SAAU,gCACV37F,OAAQ,sCAGhB,kBAAkB2kD,EAAanrD,EAAMikB,EAAY5gB,GAC7C,IAAIqZ,EACA7U,EAAe,QAAU6U,EAAKrwB,KAAK8uB,OAAO,wBAAqB,IAAWuB,EAAKA,EAAK,GACpF+1F,EAA8B,CAC9BC,OAAQ7qG,EAAaE,iBACrBw+D,KAAM1+D,EAAaQ,eACnBP,OAAQD,EAAaC,QAErB2Y,EAAY,CACZiyF,OAAQ,SACRnsC,KAAM,OACNz+D,OAAQ,UACT9H,GACCsrF,EAAWmnB,EAA4BzyG,GACvC8vG,GAAoB,SAAWrvF,GAAa,WAAaA,IAAcp0B,KAAK0jH,wBAChF,MAAO,CACH79F,OAAQ,WACRF,QAAS,CACL9W,cAAeogB,IACX,eAAEA,EAAEhC,SAASP,SAASoyC,EAAYogC,uBAAuB,GAAG7zE,OAAO6pF,GAAmB,KAAK7pF,OAAOrrB,KAAKw0B,gBAAgBJ,GAAY,cAEvI1gB,KAAM,eAAe2X,OAAO+I,GAC5BnoB,SAAUw3G,EACV7vG,QAAS,KACL4nB,WAAW,KACPx7B,KAAK43B,QAGb9jB,KAAMmrF,EACN9xF,KAAM8xF,GAEVr5E,SAAU,SACVjS,KAAM,GAAG0X,OAAO1X,EAAM,UACtB8R,SAAU,QACVD,aAAc,OACdxO,UAAWA,GAGnB,mBAAmB8nD,GACf,IAAIzuC,EACAgpF,EAAiB,QAAUhpF,EAAKrwB,KAAK8uB,OAAO,kBAAe,IAAWuB,EAAKA,EAAK,GAChFi2F,EAAc,GAIlB,OAHIjN,EAAe5+F,aACf6rG,EAAY7mH,KAAKO,KAAKumH,kBAAkBznD,EAAa,SAAU,SAAU,KAEtEwnD,EAEX,kBAAkB50F,EAAOmgB,GACrB7xC,KAAKwmH,oBAAoB30E,IAAWngB,EAAMhF,SAAS8oF,IAEvD,mBACA,oBAAoBj6F,GAChB,GAAIA,IAAW,eAAUA,EAAOwyC,MAAQ,eAAUxyC,EAAOnd,MACrD,OAAO,EAGf,sBACA,yBACA,iBAAiBs1B,EAAY/N,GACzB,IAAI8gG,EAAkBzmH,KAAK8uB,OAAO,WAAWzD,OAAOqI,IAOpD,OANI,eAAW+yF,KACXA,EAAkBA,EAAgB,CAC9Bx1F,UAAWjxB,KAAKixB,UAChBoN,IAAK1Y,EAAQ0Y,OAGdooF,EAEX,cAAc9gG,EAASkrE,GACnB,IAAIxgE,EACAhV,EAAkB,QAAUgV,EAAKrwB,KAAK8uB,OAAO,kCAA+B,IAAWuB,EAAKA,EAAKslF,GACjG+Q,IAAeliH,UAAU7F,OAAS,KAAI0c,IAAoBw1E,GAAa,SAAWA,GACtF,OAAO61B,GAAgB1mH,KAAK2mH,iBAAiB,gBAAiBhhG,GAElE,cAAcA,GACV,OAAO3lB,KAAK2mH,iBAAiB,gBAAiBhhG,GAElD,eAAe6K,GACX,IAAIH,EAAIub,EAAIsW,GAERhjB,YAAaA,GACb1O,EACAo2F,EAAgB,QAAUh7E,EAAK,QAAUvb,EAAK,OAASG,QAAc,IAAWA,OAAa,EAASA,EAAW6N,WAAQ,IAAWhO,OAAK,EAASA,EAAGogC,sBAAmB,IAAW7kB,OAAK,EAASA,EAAG1M,GAIxM,OAHI,QAAUgjB,EAAK,OAAS1xB,QAAc,IAAWA,OAAa,EAASA,EAAW6N,WAAQ,IAAW6jB,OAAK,EAASA,EAAG0e,YACtHgmD,EAAgBp2F,EAAWxyB,YAExB,IAAW4oH,EAEtB,qBACI,IAAIC,EAAsB7mH,KAAK27G,0BAC3Bv3E,EAAOpkC,KAAKgoC,gBAAgBxmB,QAChC,OAAOqlG,GAAuB,GAAIziF,EAAKyiF,GAAqBjmD,SAEhE,uBACA,oBAAoBpwC,GAChB,IAAIs2F,EAAe9mH,KAAKwwD,eAAehgC,GACvC,OAAOs2F,GAAgBt2F,EAAWxuB,OAAO4U,eAAiB5W,KAAK04G,gBAAkB1E,KAAkBxjF,EAAW6N,IAAIsB,YAGnH,IAAIonF,GAAgB,CACvB75E,eAAgB,KAAM,CAClBhhC,QAAS,CACLmM,KAAM,MACN8C,YAAa,OACbF,eAAgBw5F,GAChBh6F,aAAa,EACbE,eAAe,EACfD,eAAe,EACfY,UAAU,EACVF,uBAAuB,EACvBP,eAAe,EACf7B,MAAO,CACH+C,QAAS,OAAoBhe,OAAO,6BACpCie,eAAgB,OAAoBje,OAAO,oCAC3Cke,eAAgB,OAAoBle,OAAO,oCAC3C2d,iBAAkB,OAAoB3d,OAAO,sCAC7C4d,iBAAkB,OAAoB5d,OAAO,sCAC7C0d,OAAQ,OAAoB1d,OAAO,4BACnC+d,UAAW,OAAoB/d,OAAO,+BACtCme,YAAa,OAAoBne,OAAO,iCACxC6d,qBAAsB,OAAoB7d,OAAO,0CACjD8d,mBAAoB,IAExBb,KAAM,CACFoG,SAAU,GAEdlG,MAAO,GACPG,gBAAiB,QACjBN,WAAY,KACZD,eAAgB,KAChBF,QAAS,IAEbmrG,+BAA+B,IAEnChtF,YAAa,CACT7sB,QAAS,IAEbotB,UAAW,CACPP,YAAa,CACThlB,KAAM,CACF,OACI/T,KAAKgnH,mBAAqBhnH,KAAKgwB,cAAc,WAC7ChwB,KAAKk1B,YAET,OAAOkoC,EAAM7sD,GAET,OADCA,GAAsBvQ,KAAKgnH,mBAAmBphE,UACxC5lD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,cACI,IAAIxE,KAAKgwB,cAAc,WAAWuyF,WAGlC,OAAOviH,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,eAAegd,GACX,IAAI6O,EACAtV,EAAa/a,KAAK8uB,OAAO4kF,IACzB6K,EAAe,QAAc1pD,cAAc95C,EAAYyG,GACvDi8F,EAAWj8F,EAAM+8F,GACjBd,IACAA,EAAS99E,WAAY,EACrB,QAAUtP,EAAKrwB,KAAKinH,uBAAoB,IAAW52F,GAAcA,EAAG8I,KAAKn5B,KAAMy9G,KAGvF,iBAAiBliG,GACbvb,KAAKk1B,SAAS3Z,GACdvb,KAAKykH,eAAezkH,KAAKwhB,OAAM,KAEnC,mBAAmBjG,GACfvb,KAAKykH,eAAelpG,EAAOiG,OAC3BxhB,KAAKk1B,SAAS3Z,IAElB,kBAAkBA,GACdvb,KAAKykH,eAAelpG,EAAOiG,OAC3BxhB,KAAKk1B,SAAS3Z,IAElB,cAAciG,EAAOjG,GAEjB,OADAiG,EAAQxhB,KAAKgnH,mBAAmBvrB,aAAaj6E,EAAOjG,GAC7Cvb,KAAKk1B,SAAS1T,EAAOjG,IAEhC,iBAAiBqzC,EAAUjpC,GAEvB,OADA3lB,KAAKgnH,mBAAmBE,gBAAgBt4D,EAAUjpC,EAAS3lB,KAAK6uD,oBACzD7uD,KAAKk1B,SAAS05B,EAAUjpC,IAEnC,aAAaoF,EAAMpF,GAMf,OALAoF,EAAO/qB,KAAKk1B,SAASnK,EAAMpF,GACvBoF,EAAK61C,WACLj7C,EAAQ2Y,mBACDvT,EAAKuT,WAETvT,GAEX,yBAAyB+kC,EAASE,EAASn0B,EAAU00B,GACjD,GAAIT,EAAQ8Q,WAAa5Q,EAAQ4Q,UAAY9Q,EAAQgtD,UAAY9sD,EAAQ8sD,QAGzE,OAAO98G,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,eAAe4rD,EAAQC,EAAQC,EAAiBpxB,EAAaqxB,GACzD,IAAI6N,EAAoBp+D,KAAKgwB,cAAc,WACvCqM,EAAO+zB,EAAO79B,OAAS69B,EAAO79B,MAAM2M,GACpCS,EAAYy+B,GAAqBA,EAAkBomD,WAAWl0D,EAAiBpxB,GACnF,QAAIqxB,IAAgB5wB,QAGhBtD,IAAQA,EAAKr6B,QAAWq6B,EAAKr6B,OAAO6U,kBAAoBwlB,EAAKsD,YAAcA,IAGxE3/B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAErC,gCAAgCwpB,GAC5B,IAAIowC,EAAoBp+D,KAAKgwB,cAAc,WACvCm3F,EAAmB1oH,MAAMC,QAAQsvB,EAAKhwB,QAAUgwB,EAAKhwB,QAAUgwB,EAAKgxB,eAAiBof,EAAkBmkD,WAC3G,OAAQ4E,GAEZ,wBAAwBn5F,GACpB,IAAI9rB,EAASlC,KAAKk1B,SAASlH,GACvBpT,EAAU5a,KAAK8uB,OAAO,mBACtB/iB,EAAaiiB,EAAKhwB,MACtB,GAAIS,MAAMC,QAAQqN,IAAe6O,EAAQjc,OAAQ,CAC7C,IAAIyoH,EAAiBr7G,EAAWlN,IAAIksB,GAAQ/qB,KAAK2uD,MAAM5jC,IACnDs8F,EAAazsG,EAAQtW,OAAOiX,GAAU,WAAaA,EAAOnd,MAAQgpH,EAAeztE,KAAKoU,GAAO,eAAaxyC,EAAOwyC,IAAKA,KACtHs5D,EAAW1oH,SAAWic,EAAQjc,QAC9BqB,KAAK8uB,OAAO,kBAAmBu4F,GAEnC,IAAItsG,EAAa/a,KAAK8uB,OAAO,sBACzBw4F,EAAgBD,EAAW1tE,KAAKp+B,GAAU,WAAaA,EAAOnd,MAAQ,eAAa2c,EAAYQ,EAAOwyC,OACrGu5D,GAAiBF,EAAen7D,MAAM8B,IAAQ,eAAahzC,EAAYgzC,KACxE/tD,KAAK8uB,OAAO,qBAAsB,MAG1C,OAAO5sB,KAInB82B,MAAO,CACHtN,SAAU,CACN,OACI1rB,KAAKk1B,WACLl1B,KAAKgnH,mBAAqBhnH,KAAKgwB,cAAc,YAEjD,aAAa0B,EAAOmK,GAChB,IAAKnK,EAAMkD,GAAG,OAASiH,GAAY,EAAG,CAClC,IAAI0N,EAAgBvpC,KAAK2qC,gBAAgB9O,GACrCiK,GAAa,EAMjB,OALA,eAAKyD,EAAe,CAACtnC,EAAOs+B,KACpB,eAAEA,GAAahT,KAAKmE,GAAO/yB,SAC3BmnC,EAAY7jC,KAGb6jC,EAEX,OAAO9lC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,gBACI,OAAOxE,KAAKk1B,WAAW7J,OAAO,CAAC,eAEnC,iBAAiB1F,GACb,IAAI9R,EAAW7T,KAAKgnH,mBAAmBO,kBAAkB5hG,GACzD,OAAO9R,GAAY7T,KAAKk1B,SAASvP,IAErC,WAAW0Y,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrC,GAAI65B,EAAK,CACL,IAAImpF,IAAiBnpF,EAAIy+E,QACrB2K,IAAkBppF,EAAIuiC,SACtB8mD,IAAkBrpF,EAAIw+E,SAC1B4K,GAAiB3oF,EAAKpS,SAAS4oF,IAC/BoS,GAAiB5oF,EAAKpS,SAAS6oF,KAC3BkS,GAAiBD,IACjB1oF,EAAK3P,YAAY8lF,IAGzB,OAAOn2E,GAEX,yBAAyBjQ,GACrB,IAAIyO,EAAgBzO,EAAS6F,QAAQ,SACjCoW,EAAiB9qC,KAAK+qC,mBAC1B,MAAOzN,EAAc3+B,SAAWmsC,EAAexmC,OAAOg5B,GAAe3+B,OACjEkwB,EAAWyO,EAAc5I,QAAQ,MACjC4I,EAAgBzO,EAAS6F,QAAQ,SAErC,OAAO10B,KAAK2nH,6BAA6B94F,IAE7C,6BAA6BA,GACzB,IAAIS,EAAiBT,EAAS6F,QAAQ,IAAIrJ,OAAO,GAAW,qCAC5D,OAAOrrB,KAAKqxC,aAAa/hB,IAE7B,iBAAiBL,EAAG4hE,GAChB,IAAIzyB,EAAoBp+D,KAAKgnH,mBACzB13F,EAAiB,eAAEL,EAAEhD,MAAMvpB,QAC3Bw8B,EAAcl/B,KAAK4nH,yBAAyBt4F,GAC5C+O,EAAMr+B,KAAKgoC,gBAAgBxmB,QAAQyN,EAAE4M,UACrClhB,EAAgByjD,EAAkBzjD,cAAc,CAChD0jB,IAAKA,GACNwyD,IAAcxyD,GAAOA,EAAIuiC,SACxB5+D,EAAShC,KAAKg/B,mBAAmBC,oBAAoBC,GACrD2oF,EAAezpD,EAAkBomD,WAAWv1F,EAAE4M,SAAUqD,GACxD3qB,EAAeoG,GAAiB3Y,IAAWA,EAAOuS,cAAgBszG,GAClExsG,EAAkBrb,KAAK8uB,OAAO,4BAA8B,QAC5Dg5F,EAAqB9lH,GAAUA,EAAO6U,iBAC1C,GAAIgxG,EACA,OAAO,EAEX,GAAI,SAAWh3B,EAIX,OAHIyL,GAAA,KAAQC,OAAOoR,KAAOrR,GAAA,KAAQC,OAAOukB,UACrC,kBAEGgH,GAAsBvzG,GAAgB6pD,EAAkB2pD,SAAS94F,EAAE4M,SAAUqD,GAExF,GAAI,UAAY2xD,GAAa,aAAex1E,EAAiB,CACzD,IAAI2sG,EAAsB,OAAS3pF,QAAO,IAAWA,OAAM,EAASA,EAAIuiC,SACxExC,EAAkB6pD,eAAc,EAAOD,GAE3C,OAAIzzG,GAAgBs8E,IAAcx1E,EACvB+iD,EAAkB2pD,SAAS94F,EAAE4M,SAAUqD,IAAgBk/B,EAAkB8uC,UAAUj+E,EAAE4M,eADhG,GAIJ,gBAAgB5M,GACZjvB,KAAKkoH,oBAAsB1sF,WAAW,KAClCx7B,KAAKmoH,iBAAiBl5F,EAAG,WAGjC,UAAUA,GACN,IAAIm5F,EAAa,eAAEn5F,EAAE8M,YAAYpL,SAAS3wB,KAAKw0B,gBAAgB6+E,KAC/DpkF,EAAEhD,MAAM2nF,IAAyB5zG,KAAKixB,UACjCjxB,KAAKmoH,iBAAiBl5F,EAAG,UAAam5F,GACvCpoH,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAGlC,aAAayqB,GACJjvB,KAAKmoH,iBAAiBl5F,EAAG,aAC1BjvB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAGlC,cAAcktB,EAAOlB,GACjB,IAAIH,EACA+tC,EAAoBp+D,KAAKgnH,mBACzB5P,IAAkB5mF,EAAWxuB,OAAOwwB,QACpC61F,EAAiB73F,EAAW09E,SAC5BhB,EAAY9uC,EAAkB8uC,UAAU18E,EAAWqL,UACnD8D,EAAY,GAAcutE,EAAW18E,GACzC,GAAI2mF,GAAoCjK,EAAW18E,GAAa,CAC5D,IACIlc,UAAWA,GACXkc,EAAWxuB,OACf0vB,EAAM4E,YAAYt2B,KAAKw0B,gBAAgBsgF,KAAkBuT,GAAgB/xF,YAAY,IAA4B+xF,GAC7G/zG,GACAod,EAAMnE,KAAKsmF,IAAwB/lF,QAAQ2D,IAAI,YAAand,GAGhEqrB,GACA3/B,KAAKsoH,kBAAkB52F,GAE3B,IAAI62F,KAAiB,QAAUl4F,EAAKG,EAAWxuB,cAAW,IAAWquB,OAAK,EAASA,EAAG5a,eAClF+a,EAAWxuB,QAAWo1G,GAAmBmR,IAAenqD,EAAkBooD,oBAAoBh2F,IAC9F4tC,EAAkBoqD,kBAAkB92F,EAAOlB,GAE/CxwB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B8jH,kBAAmB,OACnBG,kBAAmB,OACnB,gBAAgB9iG,GACZ,IAAIwZ,EAAcn/B,KAAKk1B,SAASvP,GAEhC,OADAwZ,EAAYQ,UAAY3/B,KAAKgnH,mBAAmBxC,WAAWrlF,EAAYtD,SAAUsD,EAAYD,aACtFC,GAEX,YAAYxZ,GACR,IAAI+L,EAAQ1xB,KAAKk1B,SAASvP,GACtBunF,EAAYltG,KAAKgnH,mBAAmB9Z,UAAUvnF,EAAQkW,UAE1D,OADAs7E,GAAoCjK,EAAWvnF,IAAY+L,EAAMhF,SAAS,IACnEgF,GAEX,UAAUmK,EAAU6O,EAAkB1sC,EAAO8V,GACzC,IAAIqrB,EAAcn/B,KAAK0oH,eAAe7sF,EAAU6O,GAChD,GAAIvL,EAAa,CACb,QAAI,IAAWnhC,EACX,OAAOmhC,EAAYnhC,MAEvBgC,KAAKgnH,mBAAmBlB,iBAAiB3mF,EAAanhC,EAAO8V,GAAM,KAG3E,UACI9T,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1Bi3B,aAAaz7B,KAAKkoH,sBAEtB,cAEI,OADAloH,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnBxE,KAAKmpC,oBAAmB,GAAM3S,KAAK,KACtCx2B,KAAKgnH,mBAAmB2B,yBAIpC7pD,YAAa,CACT,mBACI,IAAIt9C,EAAQxhB,KAAKk1B,WACb0zF,EAAkB5oH,KAAKgwB,cAAc,WAAW64F,mBAAmB7oH,MACvE,OAAO4oH,EAAgBv9F,OAAO7J,IAElC,cAAcwM,GACV,IACIixB,SAAUA,GACVjxB,EACJ,OAAQA,EAAKra,MACT,IAAK,UACD,IAAIm1G,EAAkB,CAACtV,GAA2B2C,GAA6BxC,GAAoCD,IAC/GqV,EAAmB9pE,IAAa6pE,EAAgBnvE,KAAKjnC,GAAcA,IAAeusC,GACtF8pE,GAAoB/oH,KAAK+nC,cACzB/nC,KAAKk1B,SAASlH,GACd,MACJ,IAAK,gCACDA,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,KAG1B,YACI,IAAIqrF,EAAiBr5G,KAAKgwB,cAAc,WAAWlB,OAAO,WAC1D,OAAO9uB,KAAKk1B,aAAe,OAASmkF,QAAkB,IAAWA,OAAiB,EAASA,EAAe5+F,kBC/uE9H,GAAS23B,eAAe,UAAW,OAAAjlB,EAAA,OAAO,EAAM,GAAI45F,GAAe,CAC/DztF,UAAW,CACPP,YAAa,CACThlB,KAAM,CACF,qBAAqBg6C,GACjB,IAAIqQ,EAAoBp+D,KAAKgnH,mBAI7B,OAHIvoH,MAAMC,QAAQqvD,IACdqQ,GAAqBA,EAAkBxY,UAEpC5lD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,kBCNrD,IAAIwkH,GAA4BC,GAAQ,cAAcA,EAClD,gBACI,OAAOjpH,KAAK04G,gBAAkB1E,GAElC,qBAAqBn4E,GACjB,IAAIkqB,EAAiB/lD,KAAKgoC,gBACtBhoC,KAAK2lH,sBAAwB9pF,GAAY,EACzCkqB,EAAemG,YAAY,CACvBjoB,WAAY,SACZirB,WAAY,CAACrzB,EAAUA,EAAW,KAGtCgM,MAAMi8E,qBAAqBjoF,GAGnC,wBAAwBtkB,EAAQoO,GAC5B,IAAI+/F,EAAY1lH,KAAK2lH,qBACjBzY,EAAYvnF,EAAQ0Y,KAAO,eAAa1Y,EAAQ0Y,IAAI0vB,IAAK/tD,KAAK8uB,OAAO4kF,KACzE,GAAIgS,EACA,OAAQnuG,EAAO5D,MACX,IAAK,OACD,OAAQu5F,GAAaltG,KAAK2a,cAAcgL,GAC5C,IAAK,SACD,OAAOkiB,MAAMsxE,wBAAwB5hG,EAAQoO,KAAaunF,EAC9D,IAAK,OACL,IAAK,SACD,OAAOA,EACX,QACI,OAAOrlE,MAAMsxE,wBAAwB5hG,EAAQoO,GAGzD,OAAOkiB,MAAMsxE,wBAAwB5hG,EAAQoO,GAEjD,UAAUkW,GACN,OAAO77B,KAAK2lH,sBAAwB3lH,KAAK67G,iBAAiBhgF,GAE9D,cAAc35B,GACNlC,KAAK2lH,uBACA3lH,KAAKisE,cACNjsE,KAAK4jH,uBAGb/7E,MAAMm7E,cAAc9gH,GAExB,aAAa2vC,GACT,IACIksE,mBAAoBA,GACpB,OAASlsE,QAAU,IAAWA,EAASA,EAAS,GACpD,GAAI7xC,KAAK2lH,qBAAsB,CAC3B,IAAIuD,EAAmBlpH,KAAK24G,aAAar0G,OAAO6kH,GAAM,WAAaA,EAAG/qH,MAAMO,OAAS,EACrFqB,KAAKk/C,OACL6+D,GAAsBmL,GAAoBlpH,KAAK4jH,sBAEnD/7E,MAAMuzE,aAAavpE,GAEvB,uBACI,IAAI3vC,EAAS2lC,MAAMy7E,uBACfjK,EAAiBr5G,KAAK8uB,OAAO,WAC7Bs6F,EAAgBppH,KAAKopH,gBACrBC,EAAyBhQ,EAAe1+F,eAAiB0+F,EAAe5+F,YAC5E,OAAOvY,GAAUknH,GAAiBC,EAEtC,qBACI,IAAI7Q,EAAWx4G,KAAK04G,cACpB,GAAI14G,KAAK8/G,iBAAkB,CACvB,GAAIjL,GAAyBrmE,SAASgqE,GAAW,CAC7C,IAAI8Q,EAAetpH,KAAKupH,oBAAoBvpH,KAAK27G,2BACjD37G,KAAKm/G,mBAAmBmK,EAAc,KAClCA,GAAgBtpH,KAAKixB,UAAUtC,MAAM26F,KAG7CtpH,KAAK8/G,kBAAmB,KAIzB0J,GAAwB,CAC/BlwF,UAAW,CACPP,YAAa,CACT7sB,QAAS88G,GACTj1G,KAAM,CACF,yBAAyB+7C,EAASE,EAASn0B,EAAU00B,GACjD,IAAI6N,EAAoBp+D,KAAKgwB,cAAc,WAC3C,IAAIouC,EAAkBunD,sBAAwB71D,EAAQnwB,YAAcqwB,EAAQrwB,UAG5E,OAAO3/B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,cAI7Cw0B,MAAO,CACHtN,SAAU,CACN,WAAW2S,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrC,GAAI65B,EAAK,CACL,IAAI+/B,EAAoBp+D,KAAKgnH,mBACzB9Z,EAAY9uC,EAAkB8uC,UAAU7uE,EAAIxC,UAC5CqxE,IACApuE,EAAKpS,SAASqqF,IACdj4E,EAAK3P,YAAYikF,IACb,WAAa/0E,EAAIT,SACjBkB,EAAKpS,SAAS1sB,KAAKw0B,gBAAgB6+E,MAI/C,OAAOv0E,GAEX,QAAQvjB,GACJvb,KAAKk1B,SAAS3Z,GACV,oBAAsBA,EAAO0oB,YAC7BjkC,KAAK+qC,mBAAmBnZ,SAAS,SAASA,SAAS,IAAIvG,OAAO0rF,KAAW5nF,YAAYikF,SCpH7G,GAAShhE,eAAe,kBAAmBo3E,I,iBC0CvC,GAA4BP,GAAQ,cAAcA,EAClD,OACIjpH,KAAKolH,UAAY,KACjBplH,KAAKypH,wBAA0B,KAC/B5hF,MAAMqX,OAEV,wBACI,OAAOl/C,KAAK0pH,mBAAqB1pH,KAAK2pH,iBAE1C,kBACI,IAAInR,EAAWx4G,KAAK8uB,OAAO,gBAC3B,OAAO0pF,IAAarE,GAExB,iBACI,IAAIqE,EAAWx4G,KAAK8uB,OAAO,gBAC3B,OAAO0pF,IAAatE,GAExB,8BACI,IAAI0V,EAAgB5pH,KAAK6pH,eACzB,GAAI7pH,KAAK2pH,kBAAoBC,EAAe,CACxC,IAAI7uG,EAAa/a,KAAK8uB,OAAO4kF,IACzB6K,EAAev+G,KAAKgoC,gBAAgB8sB,iBAAiB/5C,GACrD+uG,EAAoB9pH,KAAK0qE,UAAU//B,gBAAgB4zE,GACvD,OAAOv+G,KAAK0qE,UAAUq/C,+BAA+BD,EAAmBF,EAAc5nH,QAE1F,OAAO6lC,MAAMkyE,8BAEjB,sBACI,OAAO/5G,KAAKgqH,wBAA0BhqH,KAAK27G,0BAA4B9zE,MAAMoiF,sBAEjF,uBACI,IAAI/nH,EAAS2lC,MAAMy7E,uBACfjK,EAAiBr5G,KAAK8uB,OAAO,WACjC,OAAO9uB,KAAKgqH,yBAA0B3Q,EAAe1+F,eAA0BzY,EAEnF,mBAAmB8rB,GACf,IAAIqC,EAAIub,EACR,GAAI5rC,KAAK0pH,kBAAmB,CACxB,IAAI3uG,EAAa/a,KAAK8uB,OAAO,sBACzBo7F,EAAa,QAAU75F,EAAK,OAASrC,QAAQ,IAAWA,OAAO,EAASA,EAAKxM,aAAU,IAAW6O,OAAK,EAASA,EAAGspB,KAAK5uB,GAAQ,eAAaA,EAAKgjC,IAAKhzC,IACvJovG,GAAqB,QAAUv+E,EAAK5d,EAAKuW,mBAAgB,IAAWqH,OAAK,EAASA,EAAGjtC,SAAWqvB,EAAKuW,YAAY0nB,MAAMlhC,GAAQ,WAAaA,IAC3I,YAAciD,EAAKiW,YAAcimF,GAAcl8F,EAAKktF,mBAAqBiP,GAC1EnqH,KAAKoqH,oBAGbviF,MAAMY,mBAAmBza,GAE7B,kBACI,IAAIqC,EACAg6F,EAAe,QAAUh6F,EAAKrwB,KAAKsqH,kBAAe,IAAWj6F,OAAK,EAASA,EAAGvB,OAAO,WACzF,GAAI9uB,KAAK0pH,mBAAqBW,EAC1B,OAAOrqH,KAAKuqH,eAGpB,cAAc1uF,GACN77B,KAAK0pH,kBACL1pH,KAAKwqH,eAAe3uF,GAEpBgM,MAAMi3E,cAAcjjF,GAG5B,sBACIgM,MAAM+7E,sBACF5jH,KAAK0pH,mBACL1pH,KAAKyqH,iBAGb,mBAAmBpsF,EAAK2lF,EAAgBU,GACpC,IAAIr0F,EACAq6F,EAAW1qH,KAAKolH,UAChBplH,KAAK0pH,kBACD1pH,KAAK8uB,OAAO,uBACZ,QAAUuB,EAAKgO,EAAIgJ,cAAW,IAAWhX,GAAcA,EAAG8I,KAAKkF,EAAKA,GACpEr+B,KAAK0qE,UAAU1oC,0BACR0oF,IACP1qH,KAAKypH,yBAA0B,IAAK,QAAUjzF,KAAK,IAAMk0F,EAASliC,WAC7DxoF,KAAK8yB,kBACN9yB,KAAKypH,wBAAwBvsF,WAIrC2K,MAAMo9E,mBAAmB5mF,EAAK2lF,EAAgBU,GAGtD,eAAe7oF,EAAUkkF,GACrB,IAAI4K,EAAiB,YAAcruB,GAAA,KAAQwN,UAAU7yB,WACjD2zC,EAAiB5qH,KAAKw0B,gBAAgBkiF,IACtCmU,EAAe,OAAA19F,EAAA,MAAO,CACtB/N,WAAW,EACXnB,WAAY0sG,EACZprG,YAAa,CACTw9E,MAAO6tB,GAEXtrG,aAAc,CAAC,CACX3N,QAAS,SACT8T,SAAU,QACVI,OAAQ,WACRF,QAAS3lB,KAAK8qH,wBACf,CACCn5G,QAAS,SACT8T,SAAU,QACVI,OAAQ,WACRF,QAAS3lB,KAAK+qH,2BAElBrtG,gBAAiB1d,KAAKgrH,0BAA0BnvF,IACjD77B,KAAK8uB,OAAO0kF,KACf,IAAKxzG,KAAKsqH,WAAY,CAClB,IAAIW,EAAkB,eAAE,SAAS50F,SAASr2B,KAAKixB,UAAUpC,YAAYnC,SAASk+F,GAC9E5qH,KAAKsqH,WAAatqH,KAAK8zB,iBAAiBm3F,EAAiB,SACzDjrH,KAAKsqH,WAAWh8F,GAAG,SAAUtuB,KAAKkrH,8BAClClrH,KAAKsqH,WAAWh8F,GAAG,QAASW,IACxB,IAAIoB,EACJ,OAAab,QAAQP,EAAEgC,UAAUmd,WAAW7gB,KAAKumF,IAA4B1wE,IAAI,IAAI/X,OAAOurF,KAA0B9oF,QAAS,SAC3HiyF,IACA,QAAU1vF,EAAKrwB,KAAKolH,iBAAc,IAAW/0F,GAAcA,EAAGm4D,aAI1ExoF,KAAKsqH,WAAWx7F,OAAO+7F,GACvB7qH,KAAKsqH,WAAWv3G,OAChB80B,MAAM2iF,eAAe3uF,EAAUkkF,GAEnC,0BAA0BlkF,GACtB,IAAIwC,EAAMr+B,KAAKixB,UAAUqhC,iBAAiBz2B,GACtC6G,EAAkB,CAClBrE,IAAKA,EACLz6B,OAAQy6B,EAAIz6B,OACZg6B,QAASS,EAAIT,QACbmwB,IAAK1vB,EAAI0vB,IACTlyB,SAAUA,GAGd,OADA77B,KAAK0qE,UAAU5lC,gBAAgBpC,EAAiBrE,GACzC5gB,IACH,IAAI0tG,EAAenrH,KAAK6lH,sBACpBpmD,EAAaz/D,KAAK8zB,iBAAiB,eAAE,SAASuC,SAAS5Y,GAAY,SACvEzd,KAAKuqH,eAAiB,eAAE9qD,EAAWxkC,WACnCkwF,EAAanrH,KAAKuqH,eAAgB7nF,EAAiB,CAC/C0oF,aAAa,IAEjBprH,KAAK0qE,UAAU1oC,yBACf,eAAEvkB,GAAW6U,SAASxF,KAAK,aAAc9sB,KAAKqrH,SAAS,6BAG/D,oBACI,IAAIh7F,EAAIub,EACJ/P,EAAW77B,KAAK27G,0BACpB,GAAI9/E,GAAY,EAAG,CACf,IAAIyvF,EAAmB,QAAUj7F,EAAKrwB,KAAKsqH,kBAAe,IAAWj6F,OAAK,EAASA,EAAGvB,OAAO,aAC7F,QAAU8c,EAAK5rC,KAAKsqH,kBAAe,IAAW1+E,GAAcA,EAAG9c,OAAO,YAAa,MACnF9uB,KAAKwqH,eAAe3uF,GAAU,QAC1B,IAAWyvF,GACXtrH,KAAKsqH,WAAWx7F,OAAO,YAAaw8F,IAIhD,iBACI,IAAIj7F,EACJ,QAAUA,EAAKrwB,KAAKsqH,kBAAe,IAAWj6F,GAAcA,EAAGvB,OAAO,WAAW,GAErF,cAAcd,GACV,GAAI,YAAcA,EAAKra,MAAQ3T,KAAKgqH,wBAAyB,CACzD,IACI/qE,SAAUA,GACVjxB,EACA,IAAMixB,EAAS18C,QAAQkxG,KACvBzzG,KAAKurH,wBAAwBv9F,GAC7BA,EAAKC,SAAU,GACR,IAAMgxB,EAAS18C,QAAQixG,MAC9BxzG,KAAKwrH,yBAAyBx9F,GAC9BA,EAAKC,SAAU,GAGvB4Z,MAAMC,cAAc9Z,GAExB,wBAAwBA,GACpB,IAAIqC,EACJ,GAAIrwB,KAAK2pH,iBAAkB,CACvB,IAAIpL,EAAev+G,KAAK27G,0BACpB4C,GAAgB,GAChBv+G,KAAKgoC,gBAAgBkkB,YAAY,CAC7BjoB,WAAY,SACZirB,WAAY,CAACqvD,UAGb,QAAUluF,EAAKrwB,KAAKsqH,kBAAe,IAAWj6F,OAAK,EAASA,EAAGvB,OAAO,aAAe,IAAMd,EAAKixB,SAAS18C,QAAQkxG,KACzHzzG,KAAKoqH,oBAGb,yBAAyBp8F,GACrB,IAAIy9F,EAAYzrH,KAAKsqH,WACrB,GAAImB,EAAW,CACX,IAAIC,EAAkB19F,EAAKixB,SAASz8C,MAAMgxG,GAA0B70G,OAAS,GACzE+sH,EACAD,EAAU38F,OAAO48F,EAAiB19F,EAAKhwB,OAEvCytH,EAAU38F,OAAOd,EAAKhwB,QAIlC,yBAAyB2tH,EAAmB5gG,EAAM6gG,EAAqBnuG,EAAWouG,GAC9E,IAAIh5F,EAAO7yB,KACP6xB,EAAa,eAAEpU,IAEfzb,OAAQA,GACR+oB,EACAhI,EAAa60F,GAAc7sF,GAC3B+gG,EAAU,OAASH,QAAqB,IAAWA,OAAoB,EAASA,EAAkBttF,IAAItqB,KACtGiH,EAAO4wG,EAAoB36F,WAE3B9N,MAAOA,EACP4oG,UAAWA,EACXrqG,UAAWA,GACXkqG,EAAoBh2G,eAAiB,GACrCupB,EAAc,OAAAhS,EAAA,MAAO,GAAIw+F,EAAmB,CAC5C53G,KAAM+3G,EACNvrF,YAAa,KACbuvE,UAAU,EACV/kF,KAAMA,EACNytB,GAAIx9B,EAAKgxG,UAAUjhG,EAAKpX,MAAQoX,EAAKnoB,WACrCZ,OAAQ,OAAAmrB,EAAA,MAAO,GAAInrB,EAAQ,CACvB+gB,WAAYA,EACZnN,cAAe,OAAAuX,EAAA,MAAO,CAClBhK,MAAOA,EACP4oG,UAAWA,EACXrqG,UAAWA,GACZ1f,EAAO4T,cAAemV,EAAKnV,iBAElCspB,YAAal9B,EAAOC,MACpBisG,UAAW2d,GAAc7pH,EAAOuS,cAAgB,SAASvW,EAAO8V,GAC5D+e,EAAKizF,iBAAiB3mF,EAAanhC,EAAO8V,MAGlDqrB,EAAYnhC,MAAQgE,EAAOoT,mBAAmB02G,GAC9C,IAAIj4G,EAAW7T,KAAKisH,yBAAyB/3F,KAAKl0B,KAAnCA,CAAyCm/B,EAAan9B,GAIrE,OAHAhC,KAAK0qE,UAAUpkC,eAAezU,EAAYhe,EAAUsrB,IAAe,gBAAetN,IAAa2E,KAAK,KAChGx2B,KAAK0qE,UAAUnkC,YAAY1U,EAAYsN,KAEpCA,EAEX,sBAAsBA,EAAapU,GAC/B,IAAI/oB,EAAShC,KAAKixB,UAAUma,aAAargB,EAAKnoB,WAC9C,MAAO,CAAC+iB,EAASlI,KACb,IAAI4S,EAAIub,EACJ/Z,EAAa,eAAEpU,GACnB,QAAUmuB,GAAMvb,EAAK8O,EAAYd,KAAKuI,aAAU,IAAWgF,GAAcA,EAAGzS,KAAK9I,EAAI,IAAMruB,EAAOW,SAASw8B,EAAYd,IAAItqB,MAAO,KAC9H,IAAIi8F,EAAiBn+E,EAAWtE,KAAK,cAAcO,QAC/Co+F,EAAYlc,EAAej8F,KAAK,eAChCo4G,EAAmB,OAASD,QAAa,IAAWA,OAAY,EAASA,EAAUp9F,SACvF+C,EAAWu6F,WAAWppF,SACtB7D,EAAcn/B,KAAKqsH,yBAAyBn4F,KAAKl0B,KAAnCA,CAAyCm/B,EAAapU,EAAMpF,EAASkM,GACnFm+E,EAAiBn+E,EAAWtE,KAAK,cAAcO,QAC/Co+F,EAAYlc,EAAej8F,KAAK,eAC5Bo4G,IAAqBD,GACrBlc,EAAesc,YAAY,CACvBl1G,gBAAiB+0G,EAAiB/0G,gBAClCoL,gBAAiB2pG,EAAiB3pG,gBAClC+pG,WAAYJ,EAAiBI,eAIzCptF,EAAcn/B,KAAKqsH,yBAAyBn4F,KAAKl0B,KAAnCA,CAAyCm/B,EAAapU,EAAMpF,EAASkM,IAG3F,mBAAmB26F,GACf,IAAI5gF,EACA6gF,EAAkB,QAAU7gF,EAAK5rC,KAAK0sH,kCAA+B,IAAW9gF,OAAK,EAASA,EAAGzS,KAAKn5B,KAAMwsH,GAC5GG,EAAoB3sH,KAAK8uB,OAAO,8BAChC89F,EAAoB5sH,KAAKw0B,gBAAgBiiF,IACzCj1F,EAAQxhB,KAAK8uB,OAAO,sBACpB+oF,EAAqB,GACzB,GAAKr2F,EAaDs2F,GAAiBt2F,EAAOuJ,IACpB,IAAI8hG,GAAU,OAAS9hG,QAAQ,IAAWA,OAAO,EAASA,EAAKpX,QAAU,OAASoX,QAAQ,IAAWA,OAAO,EAASA,EAAKnoB,WACtHiqH,IACAhV,EAAmBgV,KAAY9hG,EAAKhI,kBAhBpC,CACR,IAAIrX,EAAU1L,KAAKgwB,cAAc,WAAWiC,aAC5CzQ,EAAQ,GACR,eAAK9V,EAAS,CAACisB,EAAG31B,KACTA,EAAOyU,QAAWzU,EAAO5D,MAC1BojB,EAAM/hB,KAAK,CACPuC,OAAQA,EACR2R,KAAM3R,EAAO2R,KACb/Q,UAAWZ,EAAOY,cAYlC,OAAO,OAAAuqB,EAAA,MAAO,GAAIs/F,EAAiB,CAC/BjrG,MAAOA,EACPsrG,OAAQ,MAAMzhG,OAAO,IAAI,SACzB/J,cAAeyJ,IACX,IAAI/oB,EACA6qH,EAAS9hG,EAAKpX,MAAQoX,EAAKnoB,UAI/B,IAHImoB,EAAK/oB,QAAU6qH,KACf7qH,EAAS+oB,EAAK/oB,QAAUhC,KAAKg/B,mBAAmBoM,aAAargB,EAAKpX,KAAO,QAAQ0X,OAAON,EAAKpX,MAAQ,aAAa0X,OAAON,EAAKnoB,aAE9HZ,EAAQ,CAGR,GAFA+oB,EAAK5H,MAAQ4H,EAAK5H,OAAS,GAC3B4H,EAAK5H,MAAMrP,KAAOiX,EAAK5H,MAAMrP,MAAQ9R,EAAOwT,QACxC,YAAcxT,EAAOF,eAAY,IAAWipB,EAAK5H,MAAMtR,QAAS,CAChE,IAAI6P,EAAY1hB,KAAK8uB,OAAO,0BACxB,aAAepN,GAAa,WAAaA,IACzCqJ,EAAK5H,MAAMtR,SAAU,GAG7BkZ,EAAKlX,SAAWkX,EAAKlX,UAAY7T,KAAK+sH,sBAAsBP,EAAezhG,GAC3EA,EAAK/oB,OAASA,EACd+oB,EAAK8sF,mBAAqBA,EAAmBgV,GACzC7qH,EAAOoU,UACP,OAAA+W,EAAA,MAAOpC,EAAM/oB,EAAOoU,eAEpB,IAAW2U,EAAK9H,YAAcjhB,EAAOoV,kBACrC2T,EAAK9H,WAAajhB,EAAOoV,gBAAgBuiC,KAAKqzE,GAAQ,aAAeA,EAAK5uH,MAC1E2sB,EAAK3T,gBAAkB,IAE3B,IAAI61G,GAAc,eAAUliG,EAAKlZ,UAAWkZ,EAAKlZ,SAC5C7R,KAAK6pH,gBAAkBoD,IACxBjtH,KAAK6pH,eAAiB9+F,GAG9B,OAAS4hG,QAAqB,IAAWA,GAA6BA,EAAkBxzF,KAAKn5B,KAAM+qB,GACnGA,EAAKtX,SAAW,eAASsX,EAAKtX,UAAY,GAAG4X,OAAON,EAAKtX,SAAU,KAAK4X,OAAOuhG,GAAqBA,KAIhH,sBACI,MAAO,CAAC/6F,EAAY26F,EAAe7mG,KAC/B,IAAI8mG,EAAkBzsH,KAAK8uB,OAAO2kF,IAC9ByZ,EAAsBltH,KAAKmtH,mBAAmBX,GAC9CY,EAAiB,eAAE,SAAS/2F,SAASxE,GACrCu5F,EAAc,OAASzlG,QAAW,IAAWA,OAAU,EAASA,EAAQylG,YAM5E,GALAprH,KAAK6pH,oBAAiB,EAClBuB,GACAgC,EAAe1gG,SAAS1sB,KAAKw0B,gBAAgBmiF,KAEjD32G,KAAKolH,UAAYplH,KAAK8zB,iBAAiBs5F,EAAgB,QAAM,OAAAjgG,EAAA,MAAO,GAAIs/F,EAAiBS,KACpF9B,EAAa,CACd,IAAIiC,EAAoB,eAAE,SAAS3gG,SAAS1sB,KAAKw0B,gBAAgBsiF,KAA+BzgF,SAASxE,GACzG7xB,KAAK8zB,iBAAiB,eAAE,SAASuC,SAASg3F,GAAoB,QAAQrtH,KAAK8qH,wBAC3E9qH,KAAK8zB,iBAAiB,eAAE,SAASuC,SAASg3F,GAAoB,QAAQrtH,KAAK+qH,0BAE/E/qH,KAAKolH,UAAU92F,GAAG,eAAgB,KAC9B,IAAI+B,EACJrwB,KAAK0qE,UAAU1oC,yBACf,QAAU3R,EAAKrwB,KAAKsqH,kBAAe,IAAWj6F,GAAcA,EAAGm4D,aAI3E,cACI,OAAOxoF,KAAKolH,UAEhB,iBACI,IAAI/0F,EACJ,QAAUA,EAAKrwB,KAAKypH,+BAA4B,IAAWp5F,GAAcA,EAAG6M,UAEhF,iBAAiBtiB,GACb,IAAIyV,EACJwX,MAAMo7E,iBAAiBroG,GACnB5a,KAAK0pH,oBACL,QAAUr5F,EAAKrwB,KAAKsqH,kBAAe,IAAWj6F,GAAcA,EAAGvd,QAGvE,qBAAqBiY,EAAMxP,EAAQwyC,EAAKriD,EAASmjD,GAC7C,IACIzwD,KAAMA,GACNmd,EACAvb,KAAK0pH,mBAAqBtrH,IAASk1G,KACnCvoF,EAAKlZ,SAAU,GAEnBg2B,MAAM+0E,qBAAqB7xF,EAAMxP,EAAQwyC,EAAKriD,EAASmjD,GAE3D,8BAA8BK,EAAYrzB,GACtC,IAAI6tF,EAAkB1pH,KAAK0pH,kBAC3B7hF,MAAM+3E,8BAA8B1wD,EAAYrzB,EAAU6tF,GACtDA,GACA1pH,KAAKwqH,eAAe3uF,KAIrByxF,GAAyB,CAChCh0F,UAAW,CACPP,YAAa,CACT7sB,QAAS,GACT6H,KAAM,CACF,gBAAgBgX,GACR/qB,KAAKgnH,mBAAmB2C,mBACxB5+F,EAAK6S,QAAU,WAGvB,yBAAyBkyB,EAASE,EAASM,EAAiBC,GACxD,IAAI,IAAUA,IAAgBP,EAAQrwB,YAAa3/B,KAAKgnH,mBAAmB2C,iBAG3E,OAAO3pH,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,cAI7Cw0B,MAAO,CACHtN,SAAU,CACN,mBAAmBgG,EAAO/L,GAClB,SAAWA,EAAQiY,SAAW59B,KAAKgnH,mBAAmB0C,oBAAqB,IAAU/jG,EAAQ0Y,IAAIxsB,SAGrG7R,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,gBAAgBq3B,GACZ,IAAI0N,EAAgBvpC,KAAKk1B,SAAS2G,GAC9BuiC,EAAoBp+D,KAAKgnH,mBACzB0D,EAAWtsD,EAAkBmvD,cAC7BC,EAAmBpvD,EAAkB6rD,sBACzC,OAAIuD,IAAqB3xF,GAAY0N,GAAiBmhF,EAC3CA,EAAS77F,WAAWtB,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgBiiF,IAAuB,OAAOprF,OAAOwrF,KAElGttE,GAEX,uBAAuBrX,EAAQ2J,EAAU6O,GACrC,IAAI8iF,EAAmBxtH,KAAKgnH,mBAAmBiD,sBAC/C,GAAIuD,IAAqB3xF,GAAY,eAAS6O,GAAmB,CAC7D,IAAI1oC,EAAShC,KAAKg/B,mBAAmBoM,aAAaV,GAClD,OAAO1qC,KAAK+pH,+BAA+B73F,EAAQlwB,GAEvD,OAAOhC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,+BAA+B0tB,EAAQlwB,GACnC,IAAIqV,GAAgB,EAQpB,OAPA,eAAK6a,EAAQ,CAACjwB,EAAOs+B,KACjB,IAAIxV,EAAO,eAAEwV,GAAahT,KAAK,0BAA0BxZ,KAAK,gBAC9D,IAAK,OAASgX,QAAQ,IAAWA,OAAO,EAASA,EAAK/oB,SAAWA,GAAU+oB,EAAK/oB,OAAOC,QAAUD,EAAOC,MAEpG,OADAoV,EAAepV,GACR,IAGRoV,GAEX,YAAYmZ,GACR,IAAIuZ,EAAc,WAAavZ,EAAWoN,SAAW,mBAAqBpN,EAAWoN,QACjF6vF,EAAiB,SAAWj9F,EAAWoN,SAAW59B,KAAKgnH,mBAAmB0C,kBAC9E,OAAQ3/E,GAAe0jF,IAAmBj9F,EAAWzF,MAEzD,YAAY2G,EAAOlB,GACXxwB,KAAK0tH,YAAYl9F,GACjBxwB,KAAKyoH,kBAAkBj4F,EAAYkB,GAEnC1xB,KAAKk1B,SAASxD,EAAOlB,QCxe7C,GAAS4hB,eAAe,mBAAoBk7E,IC2C5C,IAAI,GAA4BrE,GAAQ,cAAcA,EAClD,OACI,IAGQ0E,EACAj3F,EAJJk3F,GAAsB5tH,KAAKm4G,oBAC/BtwE,MAAMqX,OACF0uE,KAGA5tH,KAAKm6G,wBAA0B,KAC3B,IAAI9pF,EACJqG,EAAa,QAAUrG,EAAKrwB,KAAKgwB,cAAc,yBAAsB,IAAWK,OAAK,EAASA,EAAGqG,cAErG12B,KAAKo6G,0BAA4BnrF,GAAK0+F,EAAqB,eAAE1+F,EAAEvsB,QAC/D1C,KAAKm4G,mBAAqBn4G,KAAKkwB,cAAa,SAAUjB,GAClD,IACIhD,MAAOA,GACPgD,EACArC,EAAU,eAAEX,EAAMvpB,QAClBmrH,EAAkB5hG,EAAM2nF,KAExB3iF,UAAWA,GACXjxB,KACJ,KAAIwnD,GAAWmmE,IAAwBA,EAAmB/4F,GAAGhI,KAYzD5sB,KAAK8tH,0BAA4B9tH,KAAKk/G,oBAAqB,CAC3D,IAAI6O,EAAgBC,EAAiBphG,IAAYohG,EAAiB,OAASH,QAAmB,IAAWA,OAAkB,EAASA,EAAgBh/F,YAChJo/F,EAAqBJ,IAAoBA,EAAgBliF,WAAakiF,IAAoB7tH,KAAKixB,UAC/Fi9F,IAAmBthG,EAAQ8H,QAAQ,IAAIrJ,OAAOrrB,KAAKw0B,gBAAgB4hF,MAAwBz3G,OAC3F2yG,EAAiB1kF,EAAQ+D,SAAS3wB,KAAKw0B,gBAAgB,KACvD25F,EAAiBnuH,KAAKmuH,iBACrBz3F,GAAeq3F,GAAkBzc,GAAoB4c,GAAkBC,GAAkBnuH,KAAK2/B,cAAiB,gBAAe/S,KAAYqhG,GAC3IjuH,KAAKouH,eAAel6F,KAAKl0B,KAAzBA,CAA+B4sB,GAfvC,SAASohG,EAAiBn/F,GACtB,IAAKA,EACD,OAAO,EAEX,IAAIw/F,EAAyBx/F,EAAS6F,QAAQ,IAAIrJ,OAAOgrF,KACrDiY,EAAoBr9F,EAAUpC,WAClC,OAAOw/F,EAAuB1vH,OAAS,GAAK,IAAM2vH,EAAkB55F,QAAQ25F,GAAwB1vH,WAa5G,OAAa2vB,GAAG,aAAWV,cAAe+N,EAAA,KAAcu+E,GAAIl6G,KAAKm6G,yBACjE,OAAa7rF,GAAG,aAAWV,cAAe+N,EAAA,KAAcC,KAAM57B,KAAKo6G,2BACnE,OAAa9rF,GAAG,aAAWV,cAAe,OAAgB5tB,KAAKm4G,qBAGvE,iBACI,OAAOn4G,KAAK8uB,OAAO,kBAAoBmlF,GAE3C,kBACI,OAAOj0G,KAAK8uB,OAAO,kBAAoBilF,GAE3C,wBACI,OAAO/zG,KAAKmuH,kBAAoBnuH,KAAKuuH,kBAEzC,yBAAyBj/F,GACrB,IAAIe,EACAxB,EAAW7uB,KAAKixB,UAAUpC,WAC1B3sB,EAASlC,KAAK2/B,YACd6uF,GAA6B3/F,KAAcS,EAAeoF,QAAQ7F,GAAUlwB,OAChF,GAAI6vH,EAA2B,CAC3B,IAAInvF,EAAY/P,EAAeoF,QAAQ,IAAIrJ,OAAO,KAAiB1sB,OACnE,GAAI0gC,EAAW,CACX,IAAI3T,EAAW1rB,KAAK6uC,QAAQ,YACxB4/E,EAAcn/F,EAAeoF,QAAQ,IAAIrJ,OAAO,GAAW,SAC3DwQ,EAAWnQ,EAASoQ,YAAY2yF,EAAYn8F,UAC5CkX,EAAe9d,EAASif,gBAAgB9O,GAC5C,GAAI,OAAS2N,QAAgB,IAAWA,OAAe,EAASA,EAAa7qC,OAAQ,CACjF,IAAIugC,EAAcsK,EAAavnC,MAAMwsH,GACjC1vF,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzC1qB,EAAe,QAAU8b,EAAK0O,EAAeG,UAAiB,IAAW7O,OAAK,EAASA,EAAG9b,aAC1Fm6G,EAAgB1uH,KAAKwkH,WAAW3oF,EAAUqD,GAC9Ch9B,EAASA,IAAWqS,IAAiBm6G,IAIjD,OAAOxsH,GAAU2lC,MAAM8mF,yBAAyBr/F,GAEpD,eAAeA,GACPtvB,KAAK2uH,yBAAyBr/F,IAC9BtvB,KAAKioH,gBAGb,qBACI,IAAI53F,EACJ,GAAIrwB,KAAK8/G,kBAAoB9/G,KAAK8tH,wBAAyB,CACvD,IAAI9M,EAAkBhhH,KAAK87G,6BACvBpqF,EAAQ,QAAUrB,EAAKrwB,KAAK0qE,iBAAc,IAAWr6C,OAAK,EAASA,EAAG4a,gBAAgBjrC,KAAK27G,0BAA2BqF,GACtHtvF,IAAUA,EAAMnE,KAAK,UAAU5uB,OAC/BqB,KAAKw7G,kBAAkB,KACnBx7G,KAAKk/G,qBAAsB,GAC5BxtF,GAAO,GAEV1xB,KAAKk/G,qBAAsB,EAE/Bl/G,KAAK8/G,kBAAmB,OAExBj4E,MAAM8gF,qBAGd,YACI,GAAI3oH,KAAK8tH,wBAAyB,CAC9B,IAAIzS,EAAsB,eAAUr7G,KAAK8uB,OAAO4kF,KAC5Ckb,EAA0B,eAAU5uH,KAAK8uB,OAAO6kF,KACpD,OAAO0H,GAAuBuT,EAElC,OAAO/mF,MAAMlI,YAEjB,4BAA4B3R,GACxB,IAAI6sF,EAAc76G,KAAK27G,wBAAwB3tF,EAAKgxB,eACpD,GAAIh/C,KAAK8tH,0BAA4B,IAAMjT,GAAe,eAAU7sF,EAAKhwB,QAAUgwB,EAAKhwB,QAAUgwB,EAAKgxB,cAAe,CAClH,IAAI9f,EAAcl/B,KAAKg/B,mBAAmBsL,sBAAsBtc,EAAKhwB,OACjE6wH,EAAiB7uH,KAAKg/B,mBAAmBsL,sBAAsBtc,EAAKgxB,eACxEh/C,KAAK8uH,2BAA2B5vF,EAAa2vF,EAAgBhU,IAGrE,QAAQ9pB,GACJ,GAAI/wF,KAAKmuH,kBAAoBnuH,KAAKisE,aAAc,CAC5C,IAAI3xD,EAAW,IAAI,OAQnB,OAPAta,KAAKggH,eAAexpF,KAAK,KAChBx2B,KAAKisE,aAGN3xD,EAASuoB,OAAO,UAFhB7iC,KAAKyb,OAAOs1E,GAAWv6D,KAAKlc,EAAS4iB,SAAS+L,KAAK3uB,EAASuoB,UAK7DvoB,EAAS2oB,UAEpB,OAAO4E,MAAM+1E,QAAQ7sB,GAEzB,SAASl1D,EAAUqD,GACf,OAAOl/B,KAAK+uH,UAAU,CAClBlzF,SAAUA,EACVqD,YAAaA,IAGrB,UAAUvZ,GACN,IACIqpG,EADAt6D,EAAI,IAAI,OAMZ,OAJA10D,KAAKivH,iBAAiBv6D,EAAG,KACrBs6D,EAAahvH,KAAKkvH,cAAcvpG,GAChC,eAAKqpG,GAAYx4F,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAE7xB,eAErC,IAAWmsF,EAAaA,EAAat6D,EAAEzxB,UAElD,cAActd,GACV,IAAIogC,EAAiB/lD,KAAKgoC,gBACtBmnF,EAAwB,eAAUxpG,EAAQkpG,iBAAmB,eAAUlpG,EAAQk1F,cAE/E37E,YAAaA,EACbrD,SAAUA,EACV75B,OAAQA,EACR+oB,KAAMA,GACN/qB,KAAKovH,8BAA8BzpG,GACnCksB,EAAS,CACT99B,KAAM,OAASgX,QAAQ,IAAWA,OAAO,EAASA,EAAKhX,KACvDoG,QAAQ,EACRnY,OAAQA,GAEZ,QAAI,IAAW+oB,EAAKgjC,IAApB,CAIA,GAAI/rD,IAAW,SAAW+oB,EAAK6S,SAAW,mBAAqB7S,EAAK6S,WAAa7S,EAAK+xF,SAAW98G,KAAK8tH,wBAAyB,CAC3H,IAAKqB,GAAyBnvH,KAAKwkH,WAAW3oF,EAAUqD,GACpD,OAAO,EAEX,IAAIq/E,EAAe1iF,EAAWkqB,EAAe8L,oBAC7C,OAAO,eAAK7xD,KAAKqvH,gBAAgBxzF,EAAUqD,EAAanU,IAAOyL,KAAKrc,IAC5DA,GAGCna,KAAKsvH,iBAAiBz9E,EAAQ9mB,EAAMmU,EAAaq/E,IAClDv+G,KAAKuvH,gCAIjB,OAAO,EAjBHvvH,KAAKgoC,gBAAgB27B,UAAU,SAmBvC,gBAAgB9nC,EAAUqD,EAAanU,GACnC,GAAI/qB,KAAKmuH,mBAAqBpjG,EAAK61C,UAAY5gE,KAAKisE,aAAc,CAC9D,IAAIs2C,EAAW,IAAI,OAKnB,OAJAviH,KAAKggH,eAAe98E,OAAO,KACvBq/E,EAASrlF,QAAQl9B,KAAKisE,gBAE1BjsE,KAAKokH,YAAY7B,GACVA,EAEX,OAAO,EAEX,gBACI,IAAI7qF,EAAgBmQ,MAAMnQ,gBAC1B,OAAOA,EAAcrM,OAAO,CAAC,WAAY,kBAE7C,8BAA8B8L,GAC1B,IAUIopF,GATAsO,eAAgBA,EAChBhU,YAAaA,EACb37E,YAAaA,EACbrD,SAAUA,GACV1E,EACAnG,EAAoBhxB,KAAKg/B,mBACzBD,EAAiB/N,EAAkBiO,oBACnCzd,EAAQxhB,KAAKgoC,gBAAgBxmB,QAC7BuJ,EAAOvJ,EAAMqa,GAGb0kF,EADA,eAAUsO,GACE9vF,EAAe8vF,GAEf7uH,KAAKy/G,iBAEhB,eAAU5E,KACXA,EAAc76G,KAAK27G,2BAEnB,eAASz8E,KACTA,EAAclO,EAAkBoa,aAAalM,EAAa,SAC1DA,EAAclO,EAAkB0P,gBAAgBxB,IAEpD,IAAIl9B,EAAS+8B,EAAeG,GAC5B,MAAO,CACHqhF,UAAWA,EACXrhF,YAAaA,EACb27E,YAAaA,EACbh/E,SAAUA,EACV75B,OAAQA,EACR+oB,KAAMA,GAGd,iBAAiB8mB,EAAQ9mB,EAAMi2F,EAAiBzC,GAC5C,IAAIluF,EAIJ,OAHKtF,EAAK61C,WACN/uB,EAAOkc,IAAMhjC,EAAKgjC,MAElB/tD,KAAK0/G,gBAAgB7tE,KAGzB7xC,KAAKm7G,WAAan7G,KAAKgoC,gBAAgBrhB,YACvC3mB,KAAK07G,eAAe3wF,EAAKgjC,KACzB/tD,KAAKwvH,0BAA0BxO,GAC1BnvE,EAAO7vC,OAAO6U,kBACf7W,KAAKi7G,iBAAiB,CAClBltD,IAAKhjC,EAAKgjC,IACV0vB,QAAS,QAAUptD,EAAKtF,EAAK0yD,eAAY,IAAWptD,EAAKA,EAAKtF,EAAKhX,QAGpE,GAEX,cAAcquG,EAAS4F,GACnB,IAAI9lH,EAAS,iBACT47G,EAAkB99G,KAAK27G,0BAC3B,GAAI37G,KAAK8tH,wBAAyB,CAC9B,IAAIxzG,EAAW,IAAI,OACnBpY,EAAS,IAAI,OACblC,KAAKivH,iBAAiB30G,EAAU,KAC5Bta,KAAKyvH,mBAAmBrN,EAAStE,EAAiBkK,GAAqB9kF,OAAOhhC,EAAOg7B,WAG7F,OAAOh7B,EAAO+gC,UAElB,mBAAmBm/E,EAAStE,EAAiBkK,GACzC,IAAIjiE,EAAiB/lD,KAAKgoC,gBACtB1tB,EAAW,IAAI,OACf2oB,EAAU3oB,EAAS2oB,UACvB,GAAIjjC,KAAKmuH,kBAAoBnuH,KAAKisE,cAC9B,IAAK+7C,EAQD,OAPAhoH,KAAKggH,eAAexpF,KAAKk0B,IAChB1qD,KAAKisE,aAIV3xD,EAAS4iB,UAHLl9B,KAAKioH,gBAAgBv9D,GAAOxnB,OAAO5oB,EAAS4iB,WAK7C+F,OAKX,GAFAjjC,KAAK06G,mBACL16G,KAAKy6G,uBACDqD,GAAmB,EAAG,CACtB,IAAI5uD,EAAa,CAAC4uD,GAClB99G,KAAK0vH,gCAAgCxgE,GAChCkzD,GACDr8D,EAAemG,YAAY,CACvBjoB,WAAY,SACZirB,WAAYA,IAM5B,OADA50C,EAAS4iB,UACF+F,EAEX,yBAAyBroB,GACrB,GAAI5a,KAAKuuH,kBAAmB,CACxB,IAAIoB,EAAe3vH,KAAKg/B,mBAAmBC,oBAAoBtgC,OAC/Dic,EAAQsc,QAAQ2B,IAKZ,IAJA,IACIk1B,IAAKA,GACLl1B,EACAgD,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiB/G,GAC5C7uB,EAAc,EAAGA,EAAcywF,EAAczwF,IAAe,CACjE,IAAIqB,EAAcvgC,KAAK0qE,UAAUz/B,gBAAgBpP,EAAUqD,GAC3D,OAASqB,QAAe,IAAWA,GAAuBA,EAAYpR,YAAYgkF,QAKlG,eAAextF,EAAS3nB,EAAO8V,GAC3B,IAAIq8B,EAAe,eAAExqB,EAAQ4a,aAI7B,OAHIvgC,KAAKuuH,wBAAqB,IAAW5oG,EAAQooC,KAC7C/tD,KAAK4vH,eAAez/E,EAAcxqB,GAE/BkiB,MAAMy8E,eAAe3+F,EAAS3nB,EAAO8V,GAEhD,cAAc5R,GACV,IAAI6jD,EAAiB/lD,KAAKgoC,gBACtBhoC,KAAK8tH,0BACD9tH,KAAKuuH,mBACLvuH,KAAKogH,oBAETr6D,EAAemG,eAEnBrkB,MAAMm7E,cAAc9gH,GAExB,cAAc8rB,GACV,IACIixB,SAAUA,GACVjxB,EACA,YAAcA,EAAKra,MAAQsrC,IAAa00D,IACxC3zG,KAAK6vH,4BAA4B7hG,GACjCA,EAAKC,SAAU,GAEf4Z,MAAMC,cAAc9Z,GAG5B,2BAA2BkR,EAAa2vF,EAAgBhU,GACpD,IAAInvG,EAAU1L,KAAKg/B,mBAAmBC,oBAClCC,GAAe,GACf,eAAY,KACRl/B,KAAK8vH,iBAAiBpkH,EAAQwzB,GAAcxzB,EAAQmjH,GAAiBhU,KAIjF,wBAAwB7sF,GACpB,IAAIqC,EACJ,GAAIrwB,KAAK8tH,wBAAyB,CAC9B,IAAI5uF,EAAcl/B,KAAK87G,6BACnBnB,EAAwB36G,KAAK46G,6BAC7BC,EAAc76G,KAAKgoC,gBAAgB8sB,iBAAiB9mC,EAAKgxB,eAAiB27D,EAC1E,eAAU3sF,EAAKhwB,QAAUgwB,EAAKhwB,QAAUgwB,EAAKgxB,gBAC7C,QAAU3uB,EAAKrwB,KAAK8uH,kCAA+B,IAAWz+F,GAAcA,EAAG8I,KAAKn5B,KAAMk/B,EAAaA,EAAa27E,SAGxHhzE,MAAMwyE,wBAAwBrsF,GAGtC,UAAU6N,GACN,GAAI77B,KAAKmuH,kBAAoBnuH,KAAK2/B,YAAa,CAC3C,IACIihC,SAAUA,GACV5gE,KAAKgoC,gBAAgBxmB,QAAQqa,GAC7BooF,EAASjkH,KAAKgoC,gBAAgByzE,iBAAiB5/E,GACnD77B,KAAKioH,cAAc,KAAMrnD,GAAU19B,OAAO,KACtCrH,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiBmvD,GACjDjkH,KAAKihH,mBAAmBplF,UAG5BgM,MAAM/rB,UAAU+f,GAGxB,mBAAmBA,GACX77B,KAAKuuH,kBACLvuH,KAAKohH,eAAevlF,GAEpBgM,MAAMo5E,mBAAmBplF,GAGjC,aAAagW,GACT,IACIkyE,cAAeA,GACf,OAASlyE,QAAU,IAAWA,EAASA,EAAS,GAChDk+E,EAAmB/vH,KAAKuuH,mBAAqBxK,GAAiB,YAAc/jH,KAAK8uB,OAAO,kBACxF9uB,KAAK8tH,wBACDiC,IACA/vH,KAAKy6G,uBACLz6G,KAAK06G,oBAGT7yE,MAAMuzE,aAAavpE,GAG3B,gBAAgBA,GACZ,QAAI7xC,KAAKuuH,mBAGF1mF,MAAMm2E,gBAAgBnsE,GAEjC,gBAAgBhW,EAAUiiF,GACtB,IAAI/3D,EAAiB/lD,KAAKgoC,gBAC1B,OAAIhoC,KAAKuuH,mBACLxoE,EAAemG,YAAY,CACvBjoB,WAAY,SACZirB,WAAY,CAAC4uD,EAAiBjiF,MAE3B,IAAK,QAAUqB,WAEnB2K,MAAMy5E,gBAAgBzlF,EAAUiiF,GAE3C,eAAez/E,EAAKgmF,EAAgBK,GAC5B1kH,KAAK8tH,wBACL9tH,KAAK+kH,sBAAsB1mF,EAAKgmF,EAAgBK,GAEhD78E,MAAM48E,eAAepmF,EAAKgmF,EAAgBK,GAGlD,wBAAwBntG,EAAQoO,GAC5B,GAAI3lB,KAAK8tH,wBAAyB,CAC9B,IAAIkC,EAAchwH,KAAKuuH,kBACvB,OAAQh3G,EAAO5D,MACX,IAAK,OACL,IAAK,SACL,IAAK,OACD,OAAO,EACX,IAAK,SACD,OAAOk0B,MAAMsxE,wBAAwB5hG,EAAQoO,MAAcqqG,IAAgBrqG,EAAQ0Y,IAAIy+E,SAC3F,IAAK,WACD,OAAOkT,GAAehwH,KAAK0a,cAAciL,IAAYA,EAAQ0Y,IAAIy+E,QACrE,QACI,OAAOj1E,MAAMsxE,wBAAwB5hG,EAAQoO,IAGzD,OAAOkiB,MAAMsxE,wBAAwB5hG,EAAQoO,GAEjD,sBACI,IAAIsqG,EAAiBpoF,MAAMqoF,sBAC3B,OAAOD,GAAkBjwH,KAAKuuH,kBAElC,iBAAiB3zG,GACb,IAAIyV,EACArwB,KAAKmuH,iBACD,YAAc,QAAU99F,EAAKzV,EAAQ,UAAO,IAAWyV,OAAK,EAASA,EAAGjyB,OACxEypC,MAAMo7E,iBAAiBroG,IAGvB5a,KAAKuuH,mBACLvuH,KAAKmwH,yBAAyBv1G,GAElCitB,MAAMo7E,iBAAiBroG,IAG/B,mBAAmBkkD,GACf,IAAIzuC,EACAgpF,EAAiB,QAAUhpF,EAAKrwB,KAAK8uB,OAAO,kBAAe,IAAWuB,EAAKA,EAAK,GAChFi2F,EAAcz+E,MAAMghF,mBAAmB/pD,GACvCsxD,EAAqB/W,EAAe1+F,eAAiB0+F,EAAe5+F,aAAe4+F,EAAe3+F,cAKtG,OAJI01G,GAAsBpwH,KAAKuuH,oBAC3BjI,EAAY7mH,KAAKO,KAAKumH,kBAAkBznD,EAAa,OAAQ,eAAgB,KAC7EwnD,EAAY7mH,KAAKO,KAAKumH,kBAAkBznD,EAAa,SAAU,iBAAkB,MAE9EwnD,EAEX,qBACI,IAIIhsG,EAJAyB,EAAU/b,KAAKgoC,gBAAgBsqB,iBAAiBtyD,KAAKqwH,mBACrD9Q,EAAav/G,KAAKy/G,iBAClB5oG,EAAmB,OAAS0oG,QAAc,IAAWA,OAAa,EAASA,EAAW1oG,iBACtFy5G,EAAqBtwH,KAAKmuH,oBAAsB,OAASpyG,QAAW,IAAWA,OAAU,EAASA,EAAQ6kD,UAM9G,OAJI0vD,GAAsBz5G,IACtByD,EAAW,IAAI,OACfta,KAAKokH,YAAY9pG,IAEdutB,MAAM66E,qBAAqBx/E,OAAO,OAAS5oB,QAAY,IAAWA,OAAW,EAASA,EAAS4iB,SAE1G,aAAavX,EAASksB,EAAQwyE,GAC1B,IAAIiM,EAAqBtwH,KAAKmuH,kBAAoBxoG,EAAQ0Y,MAAQ1Y,EAAQ0Y,IAAIuiC,UAE1E/pD,iBAAkBA,GAClB8O,EAAQ3jB,OACR0iH,EAAuB/+F,EAAQ3jB,OAAO4U,eAAiB+O,EAAQ3jB,OAAOs5C,oBACtEi1E,EAA2B15G,IAAqBwtG,GAAkBiM,GAAsBtwH,KAAKukH,gBAAkBvkH,KAAKwkH,WAAW7+F,EAAQkW,SAAUlW,EAAQuZ,aAC7J,OAAIqxF,GACAvwH,KAAKw7G,yBACLx7G,KAAKykH,eAAe9+F,EAAQ0Y,KAAK,EAAMqmF,IAGpC78E,MAAMuqB,aAAazsC,EAASksB,EAAQwyE,GAE/C,iBAAiB1+F,EAAS0+F,GACtB,IACIxtG,iBAAkBA,GAClB8O,EAAQ3jB,OACRsuH,EAAqBtwH,KAAKmuH,kBAAoBxoG,EAAQ0Y,MAAQ1Y,EAAQ0Y,IAAIuiC,SAC9E,GAAI/pD,IAAqBwtG,EAAgB,CACrC,GAAIiM,EAGA,OAFAtwH,KAAK07G,eAAe/1F,EAAQ0Y,IAAI0vB,KAAK,GACrC/tD,KAAKwvH,0BAA0B7pG,EAAQuZ,aAAa,GAC7Cl/B,KAAKggH,eAEhB,GAAIhgH,KAAKuuH,kBAEL,OADAlK,EAAiBrkH,KAAKwwH,eAAe7qG,EAAQ3jB,QACtC6lC,MAAMg9E,iBAAiBl/F,EAAS0+F,GAG/C,OAAOx8E,MAAMg9E,iBAAiBl/F,EAAS0+F,GAE3C,qBAAqBt5F,EAAMxP,EAAQwyC,EAAKriD,EAASmjD,GAC7C,IACI96C,KAAMA,EACN3V,KAAMA,GACNmd,EACAvb,KAAKuuH,mBAAqBnwH,IAASm1G,KACnCxoF,EAAKhX,KAAO,gBAAwBgX,EAAKhX,KAAMA,IAEnD8zB,MAAM+0E,qBAAqB7xF,EAAMxP,EAAQwyC,EAAKriD,EAASmjD,GAE3D,mBAAmBj0C,EAASo+F,EAAWiJ,GACnC,IAAIjiH,KAAKuuH,mBAAsBtM,EAG/B,OAAOp6E,MAAMm6E,mBAAmBpnG,EAASo+F,EAAWiJ,GAExD,sBAAsBrnG,EAASo+F,GAC3B,IAAIh5G,KAAKuuH,kBAGT,OAAO1mF,MAAMw6E,sBAAsBznG,EAASo+F,GAEhD,yBAAyBn9E,GACrBgM,MAAMu3E,yBAAyBvjF,GAC/B,IAAI0iF,EAAe1iF,GAAY,EAAIA,EAAW,EAC1CqD,EAAcl/B,KAAK+5G,8BACvB76E,GAAe,GAAKl/B,KAAK+nH,SAASxJ,EAAcr/E,KAG7CuxF,GAAyB,CAChCn3F,UAAW,CACPP,YAAa,CACT7sB,QAAS,IAEb8sB,MAAO,CACHtN,SAAU,CACN,eACI,IAAIyP,EAASn7B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnC45D,EAAoBp+D,KAAKgnH,mBAQ7B,OAPI5oD,EAAkB0vD,yBAA2B9tH,KAAK8uB,OAAO,0BACzD,OAAaR,GAAG6M,EAAQ,eAAakmD,GAAA,KAAU1tE,KAAM,sBAAuB,WAAW0X,OAAO,GAAmB,KAAMrrB,KAAKkwB,aAAa,KACjIkuC,EAAkBz+B,aAClBy+B,EAAkB6pD,mBAIvB9sF,GAEX,WAAWkD,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrC,GAAI65B,EAAK,CACL,IAAI+/B,EAAoBp+D,KAAKgnH,mBACzBQ,IAAiBnpF,EAAIy+E,QACrB1+C,EAAkBmwD,mBAClB/G,GAAgB1oF,EAAKpS,SAAS4pF,IAGtC,OAAOx3E,IAGfggC,YAAa,CACT,YACI,IAAIu6C,EAAiBr5G,KAAKgwB,cAAc,WAAWlB,OAAO,WAC1D,OAAO9uB,KAAKk1B,YAAcmkF,IAAmBA,EAAe1+F,eAAiB0+F,EAAe3+F,gBAAkB2+F,EAAehhG,OAAS07F,QCrmB1J,GAAS3hE,eAAe,mBAAoBq+E,I,wDC6CxCC,GAAmB,UACnBC,GAAuB,iBACvBC,GAAwB,qBACxBC,GAA+B,kBAC/BC,GAA+B,4BAC/BC,GAAsB,mBACtBC,GAAkB,YAClBC,GAA0B,uBAC1BC,GAA2B,wBAC3B,GAAgB,UAChB,GAAe,sBACfC,GAA2B,EAC3B,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAiB,OACjB,GAAkB,QAClB,GAAmB,gBACnBC,GAAmB,CAAC,GAAiB,IACrCC,GAAsB,cACtBC,GAAoB,CACpBC,MAAO,QACPC,QAAS,UACTC,QAAS,WAETC,GAAwB,SACxBC,GAAwB,SACxBC,GAAuB,SACvBC,GAA0B,SAAS3vH,GACnC,OAAO,eAAUA,IAAWA,IAAW0vH,IAEvCE,GAA6B,SAAS9zH,EAAOq0B,GAC7C,YAAO,IAAWr0B,QAAS,IAAWA,GAASq0B,IAAeA,EAAWuuC,UAEzEmxD,GAAuB,GAAQl9F,WAAWjC,QAAQ,CAClD,OACI5yB,KAAKgnH,mBAAqBhnH,KAAKgwB,cAAc,WAC7ChwB,KAAKkwB,aAAa,mBACblwB,KAAKgyH,kBACNhyH,KAAKiyH,uBAGb,sBACIjyH,KAAKgyH,iBAAmB,GACxBhyH,KAAKkyH,sBAAwB,IAEjC,gBAAgB32G,GACZ,IAAI42G,EAAiBnyH,KAAKoyH,mBAAmB,OAAS72G,QAAU,IAAWA,OAAS,EAASA,EAAOwyC,KACpG,QAASokE,KAAoBA,EAAeE,WAEhD,mBAAmBtkE,EAAK2F,GACpB,IAEIy+D,EAFAG,EAAU,eAAWvkE,GACrBwkE,EAAkB,eAASD,GAiB/B,OAdIH,EADAI,EACiBvyH,KAAKgyH,iBAAiB1tH,OAAOyP,GAAQ,eAAaA,EAAKg6C,IAAKA,IAAM,GAElE/tD,KAAKkyH,sBAAsBI,IAE3CH,GAAkBz+D,IACnBy+D,EAAiB,CACbpkE,IAAKA,EACLykE,SAAS,GAEbxyH,KAAKgyH,iBAAiBvyH,KAAK0yH,GACtBI,IACDvyH,KAAKkyH,sBAAsBI,GAAWH,IAGvCA,GAEX,gBAAgBA,EAAgBM,GAC5B,IAAIC,EAMJ,OAJIA,EADAD,EACcA,EAAkBC,aAAeD,EAAkBE,YAAc,CAACF,EAAkBE,YAEpFR,EAAeO,aAAe,GAEzCA,GAEX,eAAeP,EAAgBM,GAC3B,IAAIn4G,EAAW,IAAI,OACfiB,EAASvb,KAAKgnH,mBAAmB4L,eAAe,OAAST,QAAkB,IAAWA,OAAiB,EAASA,EAAepkE,KAC/H2kE,EAAc1yH,KAAK6yH,gBAAgBV,EAAgBM,GACnDD,EAAUC,EAAoBA,EAAkBD,QAAUL,EAAeK,QACzEhiG,EAAa,CACbkiG,YAAaA,EACbF,QAASA,EACTzkE,IAAKxyC,EAAOwyC,IACZ+zD,QAASvmG,EAAOxH,KAChB0pE,QAASz9E,KAAKgnH,mBAAmB/N,YAAY19F,EAAOwyC,KACpD9qB,QAAS,KACT6vF,UAAW9yH,KAAK+yH,6BAA6BL,IAQjD,OANA1yH,KAAK+tB,cAAc,kBAAmByC,GACtC,eAAK,eAAYA,EAAWyS,UAAUC,OAAO,KACzCivF,EAAeK,QAAUhiG,EAAWgiG,QACpCL,EAAeW,UAAYtiG,EAAWsiG,UACtCx4G,EAAS4iB,QAAQ1M,KAEdlW,EAAS2oB,WAEpB,6BAA6ByvF,GACzB,IAAIM,EAAsB,GAW1B,OAVA,eAAKN,EAAa,CAAC/6F,EAAGg7F,KAClB,IACI3wH,OAAQA,GACR2wH,EACAM,EAAsBjxH,QAAU,IAAWA,EAAOsU,aAAetU,EAAO+U,gBACxEm8G,EAAkBlxH,GAAUA,EAAO6P,QAClC8gH,EAAWzG,UAAUr9F,WAAWyD,SAAS3zB,QAAYu0H,IAAmBD,GACzED,EAAoBvzH,KAAKkzH,EAAWz/G,WAGrC8/G,EAAoBj0H,KAAK,OAEpC,SAASo0H,GACL,IAAIX,GAAU,EACVp0D,EAAoBp+D,KAAKgnH,mBACzB1sG,EAAW,IAAI,OACf84G,EAAe,GACf5a,EAAWp6C,EAAkBs6C,cAEjC,GADAya,EAASA,GAAU3a,IAAa,GAC5Bx4G,KAAKqzH,wBACL,OAAO/4G,EAAS4iB,SAAQ,GAAO+F,UAGnC,GADAjjC,KAAKqzH,yBAA0B,EAC3BF,EAAQ,CACR/0D,EAAkBgmD,YAAY9pG,GAC9B,IAAIM,EAAUwjD,EAAkBu6C,aAChC,eAAK/9F,EAAS,CAAC3Y,EAAOk1B,KAClB,IACI/4B,KAAMA,EACN2vD,IAAKA,GACL52B,EACJ,GAAI,WAAa/4B,EAAM,CACnB,IAAI+zH,EAAiBnyH,KAAKoyH,mBAAmBrkE,GAAK,GAC9CulE,EAAmBtzH,KAAKuzH,cAAcpB,GAC1CiB,EAAa3zH,KAAK6zH,GAClBA,EAAiB98F,KAAK88F,IAClBnB,EAAeE,WAAY,EAC3BG,EAAUA,GAAWc,EAAiBd,kBAI/C,GAAIxyH,KAAKwzH,sBAAuB,CACnC,IAAIF,EAAmBtzH,KAAKuzH,cAAcvzH,KAAKwzH,sBAAsBC,cACrEL,EAAa3zH,KAAK6zH,GAClBA,EAAiB98F,KAAK88F,IAClBd,EAAUc,EAAiBd,UAOnC,OAJA,kBAAQY,GAAc58F,KAAK,KACvBx2B,KAAKqzH,yBAA0B,EAC/B/4G,EAAS4iB,QAAQs1F,KAEdl4G,EAAS2oB,WAEpB,cAAckvF,GACV,IAEImB,EAFApxH,EAAS,IAAI,OACbqxH,EAAgBpB,GAAkB,QAAiBuB,eAAevB,GAStE,OAPI,OAASoB,QAAiB,IAAWA,OAAgB,EAASA,EAAcI,WAAWh1H,UACvFqB,KAAK4zH,0BAA0BzB,GAC/BmB,EAAmB,QAAiBC,cAAcpB,IAEtD,gBAAM,OAASmB,QAAoB,IAAWA,OAAmB,EAASA,EAAiBxuG,WAAawuG,GAAkB98F,KAAK88F,IAC3H,eAAKtzH,KAAK6zH,eAAe1B,EAAgBmB,IAAmB98F,KAAKt0B,EAAOg7B,WAErEh7B,EAAO+gC,WAElB6wF,kBAAmBv4G,IAAW,eAAcA,EAAOxH,MACnD,sBAAsBwH,GAClB,IAAIi9F,EAAWx4G,KAAKgnH,mBAAmBtO,eAEnC3qD,IAAKA,GACLxyC,EACA42G,EAAiBnyH,KAAKoyH,mBAAmBrkE,GAAK,GAClD,GAAKqjE,GAAiB5iF,SAASgqE,GAkB3B2Z,EAAeK,SAAU,MAlBa,CACtC,GAAIj3G,EAAOnd,OAASszH,KAA0B1xH,KAAK8zH,kBAAkBv4G,GAEjE,YADA42G,EAAeK,SAAU,GAG7BxyH,KAAK+zH,kCAAiC,GACtC,IAAIC,EAAc,QAAiBN,eAAevB,GAClD,GAAI6B,EAAa,CACb,IAAIV,EAAmB,QAAiBC,cAAcpB,GACtD,eAAKmB,EAAiBxuG,UAAYwuG,GAAkB98F,KAAK88F,IACrDnB,EAAeK,QAAUc,EAAiBd,QAC1CL,EAAeO,YAAcY,EAAiBZ,mBAE1CP,EAAeO,aAAgBP,EAAeO,YAAY/zH,SAClEwzH,EAAeK,SAAU,GAE7BxyH,KAAK+zH,kCAAiC,KAK9C,aAAa7H,GACTlsH,KAAKwzH,sBAAwBtH,GAEjC,2BAA2Br6F,GACvB,IAAIC,EAAaD,EAAWtE,KAAK,IAAIlC,OAAO4lG,KAC5C,IAAKn/F,EAAWnzB,OAAQ,CACpB,IAAIgzB,EAAsBE,EAC1BC,EAAa,eAAE,SAASuE,SAAS1E,GAAqBjF,SAASukG,IAC/DjxH,KAAK8zB,iBAAiBhC,EAAY,SAClCD,EAAWnF,SAASwkG,MAG5B,4BAA4Br/F,GACxB,IAAIC,EAAaD,EAAWtE,KAAK,IAAIlC,OAAO4lG,KAC5C,GAAIn/F,EAAWnzB,OAAQ,CACnB,IAAIyyB,EAAY,QAAcm2C,YAAYz1C,GACtCV,IACAA,EAAU+iC,UACV/iC,EAAUvC,WAAWmU,UAEzBnR,EAAW1C,YAAY+hG,MAG/B,wBAAwBhvH,GACpB,IACIgqH,UAAWA,GACXhqH,EACAsgB,EAAkB0pG,EAAUp9F,OAAO,oBAEnC9sB,OAAQA,GACRkqH,EAAUp9F,OAAO,aAAjBo9F,GACJlsH,KAAKi0H,2BAA2B,CAC5BhQ,OAAQzhG,EAAgBurC,IACxB7uB,YAAal9B,EAAOC,MACpBqxH,iBAAkBpxH,KAG1B,qBAAqBy+D,GACjBA,EAAI1vC,UAAU3C,GAAG,aAActuB,KAAKk0H,wBAAwBhgG,KAAKl0B,OACjE2gE,EAAI1vC,UAAU3C,GAAG,YAAatuB,KAAKk0H,wBAAwBhgG,KAAKl0B,QAEpE,mBAAmB2gE,GACf,IAAIurD,EAAYvrD,EAAI1vC,UAChBzO,EAAkB0pG,EAAUp9F,OAAO,oBAEnC9sB,OAAQA,GACRkqH,EAAUp9F,OAAO,aAAjBo9F,GACAhqH,EAASlC,KAAKm0H,wBAAwB,CACtClQ,OAAQ,OAASzhG,QAAmB,IAAWA,OAAkB,EAASA,EAAgBurC,IAC1F7uB,YAAal9B,EAAOC,QAEpB4vH,GAAwB3vH,IAAWA,EAAOkyH,SAAW9C,GAAkBG,SACvEzxH,KAAKq0H,2BAA2B,CAC5B94G,OAAQiH,EACR0c,YAAal9B,EAAOC,SAIhC,sBAAsB4vB,EAAY3vB,GAC9B,IACIgqH,UAAWA,GACXhqH,EACAsgB,EAAkB0pG,EAAUp9F,OAAO,oBAEnC9sB,OAAQA,GACRkqH,EAAUp9F,OAAO,aAAjBo9F,GAKJ,GAJAhqH,EAAOwwH,aAAexwH,EAAOwwH,YAAYx7F,QAAQ81F,IAC7CA,EAAK9tF,YAAcl9B,EAAOC,MAC1B+qH,EAAKhrH,OAASA,IAEd6vB,EAAY,CACZ,IAAIyhG,EAAmBtzH,KAAKm0H,wBAAwB,CAChDlQ,OAAQzhG,EAAgBurC,IACxB7uB,YAAal9B,EAAOC,QAEpBqyH,EAAoBzC,GAAwByB,IAAqBA,EAAiBiB,oBAAsBryH,EAAOs2C,GACnH,GAAIx4C,KAAKw0H,gCAAkCF,EACvC,OAEJ,GAAIpyH,EAAOkyH,SAAW9C,GAAkBE,QAAS,CAC7C,IAAIzgB,EAASl/E,EAAWtE,KAAK,UACxB,gBAAQwjF,KACT,OAAavhF,QAAQuhF,EAAQ,SAC7B,OAAavhF,QAAQuhF,EAAQp1E,EAAA,KAAcC,OAGnD,IAAI64F,GAAUzyH,EAAO2T,kBAAoB3V,KAAKgwB,cAAc,iBAAiB0kG,kBAAkB7iG,GAC3F3vB,EAAOkyH,SAAW9C,GAAkBG,QAChCgD,EACAA,EAAO3lG,OAAO,mBAAoBwiG,GAAkBG,SAEpDzxH,KAAK20H,2BAA2B9iG,GAE7B4iG,EACPA,EAAO3lG,OAAO,mBAAoBwiG,GAAkBC,OAEpDvxH,KAAK40H,4BAA4B/iG,GAErCA,EAAWyE,YAAYt2B,KAAKw0B,gBAAgBk8F,IAAmBxuH,EAAOkyH,SAAW9C,GAAkBE,WAG3G,yBAAyBhhG,GACrB,IAAIH,EACA+tC,EAAoBp+D,KAAKgnH,mBACzBzrG,EAAS6iD,EAAkBw0D,eAAepiG,EAAWu9B,KACrD8mE,EAAmBz2D,EAAkB66C,YAAYzoF,EAAWu9B,KAC5D0vB,EAAU,QAAUptD,EAAKG,EAAW6N,WAAQ,IAAWhO,OAAK,EAASA,EAAGotD,QACxEliE,GAAUkiE,IAAYo3C,GACtBz2D,EAAkB68C,iBAAiB,CAC/BltD,IAAKv9B,EAAWu9B,IAChB0vB,QAASA,KAIrB,gBAAgBjtD,EAAYqB,GACxB,IAAIxB,EAAIub,EACJwyB,EAAoBp+D,KAAKgnH,oBAEzBhlH,OAAQA,GACRwuB,GAEA3Z,iBAAkBA,GAClB7U,EACJ,IAAI,eAAUA,EAAOwwB,UAAaxwB,EAAOoV,iBAAoB3Y,MAAMC,QAAQsD,EAAOoV,kBAAqBpV,EAAOoV,gBAAgBzY,OAA9H,CAGA,IAAIq6G,EAAY56C,EAAkBvJ,cAAcrkC,EAAWu9B,IAAKqQ,EAAkBu6C,cAC9Emc,EAAsB9b,GAAa,EACvC,IAAK8b,EAAqB,CACtB,IAAKj+G,EAAkB,CACnB,IAAIma,EAAoBhxB,KAAKgwB,cAAc,WACvC+O,GAAkB,OAAS/N,QAAqB,IAAWA,OAAoB,EAASA,EAAkBiO,sBAAwB,GACtIpoB,EAAmBkoB,EAAe4a,KAAK33C,GAAUA,EAAO6U,kBAE5D,IAAIq2F,EAAY,eAAaltG,KAAK8uB,OAAO,sBAAuB0B,EAAWu9B,KACvEgnE,EAA8B32D,EAAkB0vD,yBAA2B1vD,EAAkBzjD,cAAc,CAC3G0jB,IAAK7N,EAAW6N,MAEpBy2F,EAAsB5nB,GAAa6nB,GAA+Bl+G,EAC9Dk+G,GAA+Bl+G,GAC/BunD,EAAkB68C,iBAAiB,CAC/BltD,IAAKv9B,EAAWu9B,IAChB0vB,QAAS,QAAU7xC,EAAK,QAAUvb,EAAKG,EAAW6N,WAAQ,IAAWhO,OAAK,EAASA,EAAGotD,eAAY,IAAW7xC,EAAKA,EAAKpb,EAAWzc,OAI9I,GAAI+gH,EAAqB,CACrB,GAAIjjG,IAAeA,EAAWlzB,OAE1B,YADA,QAAO8oD,IAAI,SAGfznD,KAAKg1H,yBAAyBxkG,GAC9B,IAAI2hG,EAAiBnyH,KAAKoyH,mBAAmB5hG,EAAWu9B,KAAK,GACzDknE,EAAW,KACX,IAAI15G,EAAS6iD,EAAkBw0D,eAAe,OAAST,QAAkB,IAAWA,OAAiB,EAASA,EAAepkE,KACzH/vD,EAAQgE,EAAOoT,oBAAoB,OAASmG,QAAU,IAAWA,OAAS,EAASA,EAAOxH,OAAS,IACvG,YAAO,IAAW/V,EAAQA,EAAQwyB,EAAWxyB,OAE7Ck3H,EAAsBrjG,GAAcA,EAAWlB,SAAS,aAC5DkB,GAAcA,EAAWnF,SAAS1sB,KAAKw0B,gBAAgBw8F,KACvD,IAAI9E,EAAY,IAAI,QAAUr6F,GAAc,eAAE,SAAU,CACpDle,KAAM3R,EAAOwT,QACb4B,gBAAiB,OAAA+V,EAAA,OAAO,EAAM,GAAInrB,EAAOoV,iBACzCoL,gBAAiB2vG,EACjBgD,QAASD,EAAsB,KAAO,CAClCD,SAAUA,EACVG,uBAAwBlzH,IACpBlC,KAAKq1H,sBAAsBxjG,EAAY3vB,KAG/C,aACI,IAAI6rD,EAAM,OAASokE,QAAkB,IAAWA,OAAiB,EAASA,EAAepkE,IACrFxyC,EAAS6iD,EAAkBw0D,eAAe7kE,GAC1C0vB,EAAUrf,EAAkB66C,YAAYlrD,GAC5C,MAAO,CACHh6C,KAAM,gBAAwB0pE,EAAS,OAASliE,QAAU,IAAWA,OAAS,EAASA,EAAOxH,MAC9F/R,OAAQA,IAGhB6M,cAAe7O,KAAKs1H,qBAAqBphG,KAAKl0B,MAC9CkO,YAAalO,KAAKu1H,mBAAmBrhG,KAAKl0B,QAE9C,GAAIk1H,EAAqB,CACrB,IAAIC,EAAUjJ,EAAUp9F,OAAO,WAC/B,GAAIqmG,EAAS,CACT,IAAIK,EAAeL,EAAQM,OACvBC,EAAuB,IAAMllG,EAAW6N,IAAIuiC,WAAa5gE,KAAKqzH,0BAA4Bj1D,EAAkB5N,eAAehgC,GAC/H2kG,EAAQF,SAAWA,EACnBE,EAAQQ,4BAA8B,GACtCR,EAAQM,OAAS,IAAMD,EAAar8F,KAAKg8F,IAAYO,KAG7D,OAAOxJ,KAIf,iCAAiC0J,GAC7B51H,KAAKw0H,+BAAiCoB,GAE1C,mCACI,OAAO51H,KAAKw0H,gCAEhB,6BAA6B37F,GACzB,IACIorF,OAAQA,EACR/kF,YAAaA,GACbrG,EACJ,OAAO74B,KAAKwzH,uBAAyB,eAAaxzH,KAAKwzH,sBAAsB1kG,OAAO,mBAAmBi/B,IAAKk2D,IAAWjkH,KAAKwzH,sBAAsB1kG,OAAO,aAAlC9uB,GAAkDgC,OAAOC,QAAUi9B,GAE9L,aAAagtF,GACT,IAAI2J,EAAa,CACb5R,OAAQiI,EAAUp9F,OAAO,mBAAmBi/B,IAC5C7uB,YAAagtF,EAAUp9F,OAAO,aAAjBo9F,GAAiClqH,OAAOC,OAErDqxH,EAAmBtzH,KAAKm0H,wBAAwB0B,GAChDC,EAAgBjE,GAAwByB,GACxC6B,EAAUjJ,EAAUp9F,OAAO,WAC/B,GAAKgnG,EAEE,CACH,IAAIC,EAAmBZ,EAAQF,WAC1B,eAAac,EAAkBzC,EAAiBt1H,SACjDs1H,EAAmBpH,EAAU8J,iBAJjC1C,EAAmBpH,EAAU8J,WAOjC,IAAI17G,EAAW,IAAI,OASnB,OARIw7G,GAAiBxC,EAAiBc,SAAW9C,GAAkBG,UAC/DzxH,KAAKi0H,2BAA2B4B,GAChCV,EAAQC,uBAAuB9B,IAEnC,eAAKA,EAAiBxuG,UAAYwuG,GAAkB98F,KAAK88F,IACrDwC,GAAiBX,EAAQC,uBAAuB9B,GAChDh5G,EAAS4iB,QAAQo2F,KAEdh5G,EAAS2oB,WAEpB,2BAA2BhK,GACvB,IACIgrF,OAAQA,EACR/kF,YAAaA,EACbo0F,iBAAkBA,GAClBr6F,EACAk5F,EAAiBnyH,KAAKoyH,mBAAmBnO,GAC7C,GAAKkO,EAAL,CAMA,IAAIjwH,EACJ,GAJKiwH,EAAeM,oBAChBN,EAAeM,kBAAoB,IAGnCa,GAGA,GAFApxH,EAAS,OAAAirB,EAAA,MAAO,GAAImmG,GACpBnB,EAAeM,kBAAkBvzF,GAAeh9B,EAC5CoxH,EAAiBc,SAAW9C,GAAkBG,UAC1CzxH,KAAKgnH,mBAAmBtO,gBAAkB,KAC1Cx2G,EAAOoY,SAAW,IAAI,OACtBpY,EAAO4iB,SAASoe,OAAO,KACnBhhC,EAAOoY,SAAS4iB,YAEpBl9B,KAAKgnH,mBAAmB5C,YAAYliH,EAAOoY,WAE3Cta,KAAKw0H,gCAEL,YADAtyH,EAAOqyH,kBAAoBjB,EAAiB96E,SAKpDt2C,EAASiwH,EAAeM,kBAAkBvzF,GAE1Ch9B,GAAUA,EAAOqyH,0BACVryH,EAAOqyH,oBAGtB,wBAAwBn7F,GACpB,IAII/I,GAHA4zF,OAAQA,EACR/kF,YAAaA,GACb9F,EAEA+4F,EAAiBnyH,KAAKoyH,mBAAmBnO,GAAQ,GACrD,OAAO,QAAU5zF,EAAK,OAAS8hG,QAAkB,IAAWA,OAAiB,EAASA,EAAeM,yBAAsB,IAAWpiG,OAAK,EAASA,EAAG6O,IAE3J,2BAA2B7F,GACvB,IACI9d,OAAQA,EACR2jB,YAAaA,GACb7F,EACA84F,EAAiBnyH,KAAKoyH,mBAAmB,OAAS72G,QAAU,IAAWA,OAAS,EAASA,EAAOwyC,KAChGokE,GAAkBA,EAAeM,oBACjCzyH,KAAKq0H,2BAA2B,CAC5B94G,OAAQA,EACR2jB,YAAaA,WAEVizF,EAAeM,kBAAkBvzF,KAGhD,2BAA2BzF,GACvB,IACIle,OAAQA,EACR2jB,YAAaA,GACbzF,EACA04F,EAAiBnyH,KAAKoyH,mBAAmB72G,EAAOwyC,KACpD,GAAIxyC,GAAU42G,EAAeM,kBAAmB,CAC5C,IAAIvwH,EAASiwH,EAAeM,kBAAkBvzF,GAC1Ch9B,IACAA,EAAOoY,UAAYpY,EAAOoY,SAASuoB,OAAO+uF,IAC1CO,EAAeM,kBAAkBvzF,GAAe0yF,MAI5D,0BAA0BO,GAClBA,IACAA,EAAeM,0BAA4BN,EAAeM,yBACnDN,EAAeE,YAG9B,cAAc14F,GACV,IACIsqF,OAAQA,EACR/kF,YAAaA,GACbvF,EACAz3B,EAASlC,KAAKm0H,wBAAwB,CACtClQ,OAAQA,EACR/kF,YAAaA,IAEjB,OAAO2yF,GAAwB3vH,IAAWA,EAAOkyH,SAAW9C,GAAkBE,SAElF,iBAAiByE,GACb,IACIhS,OAAQA,EACR/kF,YAAaA,GACb+2F,EACA9D,EAAiBnyH,KAAKoyH,mBAAmBnO,GACzC+P,EAAc7B,GAAkB,QAAiBuB,eAAevB,GAChEwB,EAAaK,GAAeA,EAAYL,WAC5C,OAAOA,GAAcA,EAAWrvH,OAAOutG,IACnC,IACI7vG,OAAQA,GACR6vG,EAAE/iF,OAAO,aAAT+iF,GACJ,QAAO7vG,GAASA,EAAOC,QAAUi9B,IAClC,IAEP,wBAAwBC,GACpB,IAAIm0F,EAAmBtzH,KAAKm0H,wBAAwB,CAChDlQ,OAAQ9kF,EAAY4uB,IACpB7uB,YAAaC,EAAYn9B,OAAOC,QAEhC,eAAUqxH,GACVn0F,EAAY+2F,iBAAmB5C,IAAqB1B,GAAuB0B,EAAiBc,OAASxC,UAE9FzyF,EAAY+2F,oBAIpBC,GAAmB,CAC1BjpF,eAAgB,KAAM,CAClBhhC,QAAS,CACL8M,MAAO,CACHmD,wBAAyB,OAAoBpe,OAAO,0CAIhEg7B,YAAa,CACTq9F,WAAYrE,IAEhBz4F,UAAW,CACPP,YAAa,CACT7sB,QAAS,CACL,WAAWq5G,GACP,IAAIhqG,EAASvb,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnC6xH,EAAuBr2H,KAAKgwB,cAAc,cAI9C,OAHIzU,GAAUgqG,EAAannH,OAASuzH,IAChC0E,EAAqBC,sBAAsB/6G,GAExCA,GAEX,qBAAqByS,GACjBhuB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1B,IAAI6xH,EAAuBr2H,KAAKgwB,cAAc,cAC9ChC,EAAKhwB,MAAMk5B,QAAQ3b,SACX,IAAW86G,EAAqBjE,mBAAmB72G,EAAOwyC,MAC1DsoE,EAAqBC,sBAAsB/6G,MAIvD,2BACI,IAAIsX,EAAO7yB,KACPu2H,EAAmB1jG,EAAKgc,QAAQ,YAAYk6B,yBAC5CltC,EAAW06F,EACf,eAAK1jG,EAAK8lF,aAAc,CAAChhF,EAAG6+F,KACxB,IACIzoE,IAAKA,EACL3vD,KAAMA,GACNo4H,EACArE,EAAiBnyH,KAAKgwB,cAAc,cAAcoiG,mBAAmBrkE,GACrEokE,IAAmBA,EAAeK,SAAWL,EAAexrG,YAAckM,EAAKsoF,aAC/EgX,EAAexrG,UAAYkM,EAAKsoF,WAE5BgX,EAAet2F,SADfz9B,IAASszH,GACiB6E,EAEA16F,EAE9BA,QAIZ,2BAA2B2wF,GACvB,IAAI6J,EAAuBr2H,KAAKgwB,cAAc,cAC1CmiG,EAAiBkE,EAAqBjE,mBAAmB5F,EAAcz+D,KAAK,GAChF,MAAO,CACHvrC,gBAAiB2vG,IAGzB,6BAA6B9zF,EAAKqmF,GAC1BA,GAAwB1kH,KAAKolH,WAC7BplH,KAAKolH,UAAU4Q,WAEnBh2H,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,iBAAiBqtC,GACb,IAAI4kF,EAAgBz2H,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1C6xH,EAAuBr2H,KAAKgwB,cAAc,cAM9C,OALIymG,GAAiB5kF,EAAO7vC,OAAO6U,kBAC/Bw/G,EAAqBC,sBAAsB,CACvCvoE,IAAKlc,EAAOkc,MAGb0oE,GAEX,aAAaj1G,EAAOyiB,GAChB,IAAIrpB,EAAU5a,KAAK24G,aACf5yD,EAAiB/lD,KAAKgwB,cAAc,QACpCqmG,EAAuBr2H,KAAKgwB,cAAc,cAC9CxO,EAAQxhB,KAAKk1B,SAAS1T,EAAOyiB,GAC7B,IAAI0xB,EAAan0C,EAAM7iB,OACnB+3H,EAAiB,SAASn7G,EAAQ42G,GAClC,IAAIp+G,EAAO,CACPg6C,IAAKxyC,EAAOwyC,KAEZ9rD,EAAQ,SAASsZ,EAAQiG,GACzB,IAAIvf,GAAS,EACTw6G,EAAWlhG,EAAOnd,OAASszH,IAE3B3jE,IAAKA,GACLxyC,EAQJ,OAPA,eAAKiG,EAAO,CAAChhB,EAAGuqB,KACZ,GAAI,eAAagjC,EAAK0uD,EAAW1xF,EAAKgjC,IAAMhI,EAAe4I,MAAM5jC,IAE7D,OADA9oB,EAAQzB,GACD,IAIRyB,EAbC,CAcVsZ,EAAQiG,GACV,KAAIvf,GAAS,GAAb,CAGAkwH,EAAet2F,SAAWs2F,EAAet2F,SAAW85B,EAAaw8D,EAAet2F,SAAW85B,EAAaw8D,EAAet2F,SACvH,IACIA,SAAUA,GACVs2F,EACJp+G,EAAK,IAAgB,EACrByN,EAAM4lB,OAAOvL,EAAU,EAAG9nB,KAa9B,OAXI/T,KAAK04G,gBAAkB,IAAmB,YAAcz0E,GAAc,WAAaA,GACnFrpB,EAAQsc,QAAQ3b,IACZ,IACIwyC,IAAKA,GACLxyC,EACA42G,EAAiBkE,EAAqBjE,mBAAmBrkE,GACzDokE,GAAkB52G,EAAOnd,MAAQ+zH,EAAexrG,YAAc3mB,KAAKm7G,aAAe,OAAS5/F,QAAU,IAAWA,OAAS,EAASA,EAAOoL,aAAe3mB,KAAKm7G,YAC7Jub,EAAen7G,EAAQ42G,KAI5B3wG,GAEX,gBAAgBuJ,GACZ,IAAI4rG,EAAa5rG,EAAKhX,KAAK,IACvBg6C,EAAM4oE,EAAa5rG,EAAKhX,KAAKg6C,IAAMhjC,EAAKgjC,IACxCyqD,EAAWx4G,KAAK04G,cACpB,GAAIF,IAAa,IAAmBme,GAAc5oE,EAAK,CACnD,IAAInzC,EAAU5a,KAAK24G,aACfK,EAAY,QAAcnkD,cAAc9G,EAAKnzC,GACjD,GAAIo+F,GAAa,EAAG,CAChB,IAAIz9F,EAASX,EAAQo+F,GACrB,GAAIz9F,EAAOnd,OAASszH,GAAuB,CACvC,IAAIj0C,EAAUz9E,KAAKi5G,YAAY19F,EAAOwyC,KACtChjC,EAAKhX,KAAO,OAAAoZ,EAAA,OAAO,EAAM,GAAIswD,EAASliE,EAAOxH,MAC7CgX,EAAKgjC,IAAMA,IAIvB/tD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,iCAAiCoW,GAC7B,IAAIiY,EAAO7yB,KACPq2H,EAAuBr2H,KAAKgwB,cAAc,cAC1CgB,EAAoBhxB,KAAKgwB,cAAc,WACvCtkB,EAAUslB,EAAkBiB,aAC5B2kG,EAAmB5lG,EAAkBiyB,sBAAsB3+C,OAAOtC,IAAWA,EAAOyU,QACpFghC,EAAezmB,EAAkBsmB,kBAAkBhzC,OAAOtC,IAAWA,EAAO+U,kBAAoB,IAAM6/G,EAAiBr0H,QAAQP,IAC/H60H,EAA4B,GAC5BC,EAAgB,CAAC90H,EAAQiiH,IAAWjkH,KAAKgoC,gBAAgB8sB,iBAAiBmvD,IAAW,GAAK2S,EAAiBr0H,QAAQP,GAAU,EA+BjI,OA9BA40H,EAAiBn3H,QAAQg4C,GACpB25E,GAAiB5iF,SAASxuC,KAAK04G,gBAChC,eAAKhtG,EAAS,CAACisB,EAAG31B,KACd4Y,EAAQsc,QAAQ3b,IACZ,IAAIxH,EACJ,IAAI+iH,EAAc90H,EAAQuZ,EAAOwyC,KAAjC,CAGA,GAAIxyC,EAAOnd,OAASszH,GAChB39G,EAAOwH,EAAOxH,UACX,GAAI,WAAawH,EAAOnd,KAAM,CACjC,IAAIq/E,EAAU5qD,EAAKomF,YAAY19F,EAAOwyC,KACtC,IAAK,eAAU0vB,GACX,OAEJ1pE,EAAO,gBAAwB0pE,EAASliE,EAAOxH,MAEnD,GAAIA,EAAM,CACN,IAAIm4G,EAAYmK,EAAqBU,gBAAgB,CACjD/0H,OAAQA,EACR+rD,IAAKxyC,EAAOwyC,IACZ/vD,MAAOgE,EAAOoT,mBAAmBrB,KAEjCm4G,GACA2K,EAA0Bp3H,KAAKysH,SAM5C,WACH2K,EAA0B3/F,QAAQg1F,IAC9BA,EAAU/3D,cAItB,oBAAoB54C,EAAQy9F,GACxB,IAAI92G,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnC6xH,EAAuBr2H,KAAKgwB,cAAc,cAC1CmiG,EAAiBkE,EAAqBjE,mBAAmB,OAAS72G,QAAU,IAAWA,OAAS,EAASA,EAAOwyC,KACpH,GAAIxyC,EAAQ,CACR,IAAIi3G,EAAU,WAAaj3G,EAAOnd,MAAQ+zH,EAAeK,QACzDtwH,EAASA,IAAWswH,MACjB,CACH,IAAIwE,EAAoBh3H,KAAKi3H,iCAAiCj3H,KAAK24G,cACnEz2G,EAAS,IAAI,OACblC,KAAKivH,iBAAiB/sH,EAAQ,KAC1Bm0H,EAAqBL,UAAS,GAAMx/F,KAAK0gG,IAGrC,OAFAF,IACAh3H,KAAKm3H,2BACGn3H,KAAK04G,eACT,KAAK,GACIwe,GACDl3H,KAAKw7G,oBAET,MACJ,KAAK,GACI0b,IACDl3H,KAAK06G,mBACL16G,KAAKy6G,uBACLz6G,KAAKgwB,cAAc,QAAQk8B,eAGvChqD,EAAOg7B,SAASg6F,OAI5B,OAAOh1H,EAAO+gC,QAAU/gC,EAAO+gC,UAAY/gC,GAE/C,gBAAgB25B,EAAUqD,EAAanU,GACnC,IAAI7oB,EAASlC,KAAKk1B,SAAS2G,EAAUqD,EAAanU,GAClD,GAAI/qB,KAAK04G,gBAAkB,GAAgB,CACvC,IAAIhnF,EAAQ1xB,KAAK0qE,UAAUz/B,gBAAgBpP,EAAUqD,GACjDgtF,EAAYx6F,GAASA,EAAM3d,KAAK,eAChCse,EAAaX,GAASA,EAAMgD,QAAQ,WAAW3gB,KAAK,WACpD/V,EAAQkuH,GAAaA,EAAUp9F,OAAO,WAAWmmG,WACrD,GAAI/I,GAAa4F,GAA2B9zH,EAAOq0B,GAAa,CAC5D,IAAIgkG,EAAuBr2H,KAAKgwB,cAAc,cAC1C1V,EAAW,IAAI,OAInB,OAHA,eAAK+7G,EAAqBe,aAAalL,GAAYhqH,GAAQs0B,KAAK,CAAC88F,EAAkBpxH,KAC/EoY,EAAS4iB,QAAQo2F,EAAiBc,SAAW9C,GAAkBC,OAASrvH,KAErEoY,EAAS2oB,UAEpB,IAAKipF,EACD,OAAOhqH,EAGf,OAAO,GAEX,mBAAmBiY,GACf,IAAIoxD,EACA4iD,EAAiBnuH,KAAK04G,gBAAkB,GAK5C,GAJA,eAAK14G,KAAK24G,aAAc,CAAChhF,EAAGpc,KACxB,IAAIovD,EAAY3qE,KAAKq3H,cAAc97G,GACnCgwD,EAAiBA,GAAkBZ,IAEnCY,EAAgB,CAChB,IAAI9L,EAAaz/D,KAAK0qE,UAAUzK,gBAC5BR,IACAA,EAAWp4B,SACXo4B,EAAWuJ,gBAAgBuC,IAGnC,GAAIpxD,GAAUg0G,GAAkBnuH,KAAKwwH,iBAAkB,CACnD,IAAIjS,EAAev+G,KAAKqwH,kBACxBrwH,KAAKgoC,gBAAgBkkB,YAAY,CAC7BjoB,WAAY,SACZirB,WAAY,CAACqvD,KAEjBv+G,KAAKw7G,yBACF,IAAKrhG,EAAQ,CAChB,IAAIm9G,GAA6B,EACjC,GAAInJ,EAAgB,CAChB,IAAIziH,EAAU1L,KAAKgwB,cAAc,WAAWiC,aACxCslG,EAA+B7rH,EAAQpH,OAAOw8B,IAC9C,IAAIzQ,EACJ,OAAOyQ,EAAIjqB,mBAAqB,QAAUwZ,EAAKyQ,EAAI1pB,uBAAoB,IAAWiZ,OAAK,EAASA,EAAG1xB,QAAU,IAC9GA,OAAS,EACZ24H,GAA8BC,EAE9BD,GACAt3H,KAAKgwB,cAAc,cAAciiG,wBAI7C,mBAAmBjkG,GACf,IAAIwpG,EAAkBx3H,KAAKgwB,cAAc,cAAcgiG,iBACnD,aAAehyH,KAAK8uB,OAAO,mBAC3B9uB,KAAKy3H,yBAEL,YAAczpG,EAAKiW,YACnB,eAAKuzF,EAAiB,CAAC7/F,EAAGw6F,KACtBA,EAAet2F,UAAY7N,EAAKxM,MAAM7iB,SAG9CqB,KAAKk1B,SAASlH,IAElB,yBACI,IAAIwpG,EAAkBx3H,KAAKgwB,cAAc,cAAcgiG,iBACvD,eAAKwF,EAAiB,CAAC7/F,EAAGw6F,KAClBA,EAAexrG,YAAc3mB,KAAKm7G,oBAC3BgX,EAAexrG,iBACfwrG,EAAet2F,aAIlC,wBACI77B,KAAKgwB,cAAc,cAAciiG,sBACjCjyH,KAAKk1B,YAET,cAAc3Z,GACV,IAAI8vD,EACAS,EAAgB9rE,KAAKgwB,cAAc,iBACnCxO,EAAQxhB,KAAKgwB,cAAc,QAAQxO,QACnCqa,EAAW77B,KAAK60D,cAAct5C,EAAOwyC,IAAKvsC,GAC1C2wG,EAAiBnyH,KAAKgwB,cAAc,cAAcoiG,mBAAmB72G,EAAOwyC,KAChF,KAAM,OAASokE,QAAkB,IAAWA,OAAiB,EAASA,EAAeK,WAAa,OAASL,QAAkB,IAAWA,OAAiB,EAASA,EAAeW,YAAcj3F,GAAY,EAEvM,OADAwvC,EAAgBrrE,KAAKk5G,kBACdptC,GAAiBA,EAAcE,eAAe,OAASmmD,QAAkB,IAAWA,OAAiB,EAASA,EAAeW,UAAWj3F,EAAUwvC,IAGjK,iBAAiBp8C,GACb,IAAIonG,EAAuBr2H,KAAKgwB,cAAc,cAC1C1V,EAAW,IAAI,OAenB,OAdA+7G,EAAqBqB,2BAA2B,CAC5Cn8G,OAAQvb,KAAK4yH,eAAe3jG,EAAE8+B,KAC9B7uB,YAAajQ,EAAEjtB,OAAOC,QAE1BjC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAAWgyB,KAAK,KACtC,IAAImhG,EAAmBtB,EAAqBuB,iBAAiB,CACzD3T,OAAQh1F,EAAE8+B,IACV7uB,YAAajQ,EAAEjtB,OAAOC,QAE1B,eAAK01H,GAAoBtB,EAAqBe,aAAaO,IAAmBnhG,KAAK88F,IAC/EtzH,KAAKgwB,cAAc,iBAAiB6nG,UACpCv9G,EAAS4iB,QAAQo2F,OAGlBh5G,EAAS2oB,WAEpB,kBAAkBvR,EAAOlB,GACrBxwB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1B,IAAI6xH,EAAuBr2H,KAAKgwB,cAAc,cAC9CqmG,EAAqByB,wBAAwBtnG,GAC7C,IAAI63F,IAAmB73F,EAAW09E,SAC9B4Y,EAAe9mH,KAAKwwD,eAAehgC,GACnCunG,EAAc,eAAUvnG,EAAW0lG,kBACnC8B,EAAiBlR,GAAgBt2F,EAAWxuB,OAAO4U,cAAgByxG,IAAmBvB,KAAkBt2F,EAAW6N,IAAIuiC,WAAam3D,GACxI,GAAIC,EAAgB,CAChB,IAAI9L,EAAYx6F,EAAM3d,KAAK,eACvBm4G,GACA,eAAKlsH,KAAKgwB,cAAc,cAAconG,aAAalL,IAAY11F,KAAK,KAChE6/F,EAAqByB,wBAAwBtnG,OAK7D,eAAeu9B,GACX,IAAInzC,EAAU5a,KAAK24G,aACnB,OAAO/9F,EAAQ,QAAci6C,cAAc9G,EAAKnzC,KAEpD,eAAe4V,GACX,IAAIs2F,EAAe9mH,KAAKk1B,SAAS1E,GAC7BjV,EAASvb,KAAK4yH,eAAepiG,EAAWu9B,KACxCkqE,IAAkBznG,EAAW6N,KAAOr+B,KAAKgwB,cAAc,cAAckoG,cAAc,CACnFjU,OAAQzzF,EAAWu9B,IACnB7uB,YAAa1O,EAAWxuB,OAAOC,QAEnC,OAAO6kH,GAAgB9mH,KAAKgwB,cAAc,cAAcmoG,gBAAgB58G,IAAW08G,IAG3F9kD,cAAe,CACX,kBAAkBthD,GACd,IAAIxB,EACA+nG,EAAkB,QAAU/nG,EAAKrwB,KAAKq4H,sBAAmB,IAAWhoG,OAAK,EAASA,EAAGxB,WACzF,IAAKgD,IAAeA,EAAWlzB,OAG3B,OAFA,OAASy5H,QAAmB,IAAWA,GAA2BA,EAAgBp1F,cAClFhjC,KAAKq4H,oBAAiB,GAG1B,IAAIxmG,EAAWtE,KAAK6qG,GAAiBz5H,OAArC,CAGA,IAAI25H,EAAoBzmG,EAAW6C,QAAQ,IAAIrJ,OAAOrrB,KAAKw0B,gBAAgB,MACvE+jG,EAAqBv4H,KAAKw0B,gBAAgBm8F,IAC9C,OAASyH,QAAmB,IAAWA,GAA2BA,EAAgBp1F,SAClFo1F,EAAkB,eAAE,SAAS1rG,SAAS6rG,GAAoBliG,SAASxE,GACnE,IAAI2mG,EAAiB,CACjBj7G,UAAW,KACX1L,SAAS,EACTC,MAAO,OACP7E,OAAQ,OACRgS,SAAS,EACTxB,UAAW66G,EACXG,uBAAuB,EACvBv6G,oBAAoB,EACpBqB,YAAa,CACTw9E,MAAOw7B,GAEX76G,gBAAiB,KACb,IAAIg7G,EAAiB,eAAE,SAAShsG,SAASqkG,IACrC4H,EAAgB,CAChBjlH,KAAM,SACNvG,KAAMnN,KAAK8uB,OAAO,yCAClBlb,QAAS,KACL5T,KAAKgnH,mBAAmBjM,mBAGhC,OAAO,IAAI,QAAO2d,EAAgBC,GAAe9pG,YAErDvW,SAAU,CACN6O,GAAI,WACJJ,GAAI,YACJM,OAAQ,MACRH,UAAW,OACXD,eAAgB,MAChBD,SAAUhnB,KAAK0qE,UAAUz9C,UACzB7F,GAAIyK,GAER+mG,aAAc54H,KAAK64H,mBAAmB3kG,KAAKl0B,OAE/CA,KAAKq4H,eAAiB,IAAI,QAAQD,EAAiBI,KAEvD,oBAAoB9mG,EAAOonG,GACvB,IAAIC,EACAC,EACAxsB,EAAiBxsG,KAAK0qE,UAAU8hC,iBAChCwd,EAAwBhqH,KAAKgnH,mBAAmBgD,wBACpD,GAAIxd,IAAmBwd,EAAuB,CAC1C,IAAIiP,EAAiBvnG,EAAMgD,QAAQ,WAAW+2C,OAAO13D,KAAK,WACtDklH,GAAkB,UAAYA,EAAer7F,UAC7Cm7F,EAAuB,eAAE/4H,KAAK0qE,UAAUiiC,cAAcssB,EAAep9F,WAAWknC,OAChFi2D,EAAoBD,EAAqBxrG,KAAK,IAAIlC,OAAO,KACrD2tG,EAAkBr6H,QAAU,WAAaq6H,EAAkBrlG,IAAI,GAAG2I,MAAM48F,aACxEF,EAAkBvnG,IAAI,aAAc,UACpCqnG,EAAe5qH,YAAc,WACzB8qH,EAAkBvnG,IAAI,aAAc,SAMxD,mBAAmBxC,EAAGkqG,GAClB,IAAKlqG,EAAEgC,UAAUmoG,yBAA0B,CACvC,IAAIC,EAAiB,eAAEpqG,EAAEhC,SAAS0D,SAAS3wB,KAAKw0B,gBAAgBm8F,KAC5D2I,GAAeD,GAAkBr5H,KAAK0qE,UAAUhG,2BAChD60D,EAAqBv5H,KAAKw5H,+CAA+CvqG,EAAGoqG,EAAgBF,GAChGlqG,EAAEgC,UAAUmoG,4BAA8BE,IAAeC,GACrDA,EACAtqG,EAAEgC,UAAUnC,OAAOyqG,GACZD,GACPrqG,EAAEgC,UAAUu3D,YAIxB,uBAAuB92D,EAAO+nG,EAAUnlH,GACpC,IAAI+b,EACAqpG,EAAchoG,EAAMnE,KAAK,8BAA8BxZ,KAAK,WAC5DolH,EAAmBO,GAAeA,EAAY5qG,OAAO,WACrD6qG,EAAaR,EAAmB,YAAc,OAAO9tG,OAAO/W,GAC5DslH,EAAaT,EAAmB,WAAa,UAAU9tG,OAAO/W,GAC9DulH,GAAmB,QAAUxpG,EAAKrwB,KAAKg/B,mBAAmBmkC,yBAAsB,IAAW9yC,OAAK,EAASA,EAAG1xB,QAAU,EACtH25H,EAAoBuB,EAAkB75H,KAAK6uC,QAAQ,YAAY5hB,UAAYyE,EAAMgD,QAAQ,IAAIrJ,OAAOrrB,KAAKw0B,gBAAgB,MACzHslG,EAAmB,GACvBL,GAAYA,EAASviG,QAAQhkB,IACzB4mH,IAAqBA,EAAiBn7H,OAAS,QAAU,IAAM,gBAAWuU,KAE9E,IAAI6mH,EAAsB/5H,KAAKw0B,gBAAgBq8F,IAC/C7wH,KAAK0qE,UAAUz9C,UAAUM,KAAK,IAAIlC,OAAO0uG,IAAsB/2F,SAC/D,IAAIg3F,EAAkB,eAAE,SAASttG,SAASkkG,IAAuBlkG,SAASokG,IAA8BpkG,SAASqtG,GAAqBx0G,KAAKu0G,GAAkBzjG,SAAS3E,GAClKonG,EAAiB,CACjBr7G,UAAW66G,EACXr5G,SAAS,EACTnN,MAAO,OACP7E,OAAQ,OACR4E,SAAS,EACT0L,WAAW,EACXk7G,uBAAuB,EACvBv6G,oBAAoB,EACpBqB,YAAa,CACTw9E,MAAO,GAAG1xE,OAAOulG,GAAuB,KAAKvlG,OAAOylG,GAA8B,KAAKzlG,OAAO0uG,IAElGzhH,SAAU,CACN4O,UAAW,OACXF,SAAUhnB,KAAK0qE,UAAUz9C,UACzBhG,eAAgB,MAChBI,OAAQ,CACJ9T,EAAG,EACHC,GAAI2lH,GAAoB16F,EAAA,KAAQG,SAAW,EAAI,GAEnDzX,GAAIwyG,EACJ5yG,GAAI6yG,EACJxyG,GAAIsK,GAERknG,aAAc3pG,IACVjvB,KAAK64H,mBAAmB5pG,EAAGkqG,GAC3Bn5H,KAAKi6H,8BAA8BhrG,EAAEgC,UAAUmd,WAAY1c,KAGnE1xB,KAAKk6H,oBAAoBxoG,EAAOonG,GAChC,IAAI,QAAQkB,EAAiBlB,IAEjC,yBACI,IAAIzoG,EACA8pG,EAAqB,QAAU9pG,EAAKrwB,KAAK0qE,UAAUz9C,iBAAc,IAAWoD,OAAK,EAASA,EAAG9C,KAAKvtB,KAAKo6H,kCAC3G,OAASD,QAAsB,IAAWA,GAA8BA,EAAmBn3F,UAE/F,+CAA+Crd,EAAS0zG,EAAgBF,GACpE,IAAIkB,EAAer6H,KAAKg/B,mBAAmBmkC,kBAC3C,GAAKk3D,GAAiBA,EAAa17H,OAAnC,CAGA,IAAI2Z,EAEAua,EAAM5F,EAAS4O,EAAU0N,EADzB+wF,GAAqBjB,IAAmBxmG,EAAO7yB,KAAMitB,EAAUtH,EAAQsH,QAAS4O,EAAW,eAAE5O,GAASyH,QAAQ,MAAMzyB,QAASsnC,EAAgB,eAAE1W,EAAK63C,UAAUiiC,cAAc9wE,IAAW/N,QAAQ8D,WAAWttB,OAAO,yBAA0BuuB,EAAK63C,UAAUtgC,WAAWb,GAAe/P,OAAO,CAAC+gG,EAAIC,IAAOD,EAAKC,EAAI,IAEhTC,EAAyB90G,EAAQsL,UAAUmd,WAC3CssF,EAAyB,eAAcD,GAAwB,GAC/DE,GAAgBtB,GAAkBqB,EAAyBJ,EAC3Dp7F,EAAcl/B,KAAK0qE,UAAUr5B,aAAa,eAAE1rB,EAAQsH,SAASyH,QAAQ,OACrEkmG,EAA8B,SAASP,GACvC,IAAIQ,EACAC,EASJ,OARAT,EAAa1gF,KAAK,CAAC33C,EAAQC,KACvB,GAAID,EAAOwwB,UAAY6+F,GAGnB,OAFAwJ,EAA2B,IAAM54H,GAAS,EAAIA,EAC9C64H,EAA0B74H,IAAUo4H,EAAa17H,OAAS,GAAK,EAAIsD,EAAQD,EAAOi8B,QAAU,GACrF,IAIR,CACH88F,iBAAkBF,EAClBG,eAAgBF,GAbU,CAehCT,GAiBF,OAhBKhB,GAAmBn6F,IAAgB07F,EAA4BG,mBAAoBJ,EAM7Ez7F,IAAgB07F,EAA4BI,iBACnD1iH,EAAW,CACP4O,UAAW,YACXC,GAAI,YACJJ,GAAIsyG,GAAkBF,EAAmB,WAAa,gBAEtDE,IACA/gH,EAAS+O,OAAS,SAZtB/O,EAAW,CACP4O,UAAW,YACXC,GAAI,WACJJ,GAAIoyG,EAAmB,YAAc,eAYtC7gH,GAAY,CACfA,SAAUA,EACV+F,SAAUs8G,EAAeL,EAAoB,OAAI,KAGzD,8BAA8BlsF,EAAU1c,GACpC,IAAIupG,EAAiBj7H,KAAKq4H,gBAAkBr4H,KAAKq4H,eAAejqF,WAChE,GAAK6sF,EAAL,CAGA,IAAIC,EAAgB9sF,EAAS/mB,SACzB8zG,EAAsBF,EAAe5zG,SACzC,GAAI6zG,EAAc33G,MAAQ43G,EAAoB53G,KAAO23G,EAAc93G,KAAO,eAASgrB,GAAY+sF,EAAoB/3G,KAAM,CACrH,IAAIA,EAAO,eAAS63G,GAAkB9J,GACtC/iF,EAAS3c,IAAI,OAAQ0pG,EAAoB/3G,KAAOsO,EAAMrK,SAASjE,MAAQA,EAAOA,MAGtF,6BACI,IAAIm1G,EAAqBv4H,KAAKw0B,gBAAgBm8F,IAC9C,MAAO,oBAAoBtlG,OAAOktG,IAEtC,iCACI,IAAIwB,EAAsB/5H,KAAKw0B,gBAAgBq8F,IAC/C,MAAO,oBAAoBxlG,OAAO0uG,EAAqB,yBAAyB1uG,OAAO0uG,IAE3F,OACI/5H,KAAKk1B,WACLl1B,KAAKgnH,mBAAqBhnH,KAAKgwB,cAAc,WAC7ChwB,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,WAC7ChwB,KAAK0qE,UAAY1qE,KAAK6uC,QAAQ,aAElC,UAAUusF,GACDA,GACDp7H,KAAKgwB,cAAc,cAAcqrG,aAAa,MAElDr7H,KAAKk1B,YAET,gBAAgBrG,EAAUykG,EAAkBriB,GACxC,IAAI5gF,EACA0gF,EAAS,OAASliF,QAAY,IAAWA,OAAW,EAASA,EAAS6F,QAAQ10B,KAAKmxG,yBACnFz/E,GAAS,OAASq/E,QAAU,IAAWA,OAAS,EAASA,EAAOn8E,GAAG,OAASm8E,EAAS,KACrF1+E,EAAa,OAAS0+E,QAAU,IAAWA,OAAS,EAASA,EAAOr8E,QAAQ,WAAW3gB,KAAK,WAC5FwH,EAAS8W,EAAaryB,KAAKgwB,cAAc,WAAW4iG,eAAevgG,EAAW07B,KAAO,KACrF/rD,EAAS0vB,GAAS1xB,KAAKgwB,cAAc,WAAWiP,oBAAoBvN,EAAMzvB,SAC1EuuD,OAAiB,KAAY,QAAUngC,EAAK,OAAS9U,QAAU,IAAWA,OAAS,EAASA,EAAOxH,YAAS,IAAWsc,OAAK,EAASA,EAAG,OAASruB,QAAU,IAAWA,OAAS,EAASA,EAAO2R,SAAW3T,KAAKgnH,mBAAmBzE,WAClOviH,KAAKgnH,mBAAmBtO,gBAAkB,MACrC,OAAS4a,QAAoB,IAAWA,OAAmB,EAASA,EAAiBc,UAAY9C,GAAkBE,SAAWhhE,EAC/HxwD,KAAKs7H,kBAAkBvqB,GAEvB/wG,KAAKq4H,gBAAkBr4H,KAAKq4H,eAAexpG,WAAWmU,UAG9D,IAAIu4F,EAAwBjI,GAAoBA,EAAiBc,SAAW9C,GAAkBE,QAC9F,GAAI+J,GAAyB7pG,GAAS1vB,GAAUsxH,GAAoBA,EAAiBZ,YAAa,CAC9F,IAAI8I,EAAgB,GACpBlI,EAAiBZ,YAAYx7F,QAAQ81F,IAC7BA,EAAK95G,SACLsoH,EAAc/7H,KAAKutH,EAAK95G,WAG5BsoH,EAAc78H,QACdqB,KAAKy7H,uBAAuB1qB,EAAQyqB,EAAex5H,EAAOsS,WAAa,SAE7E28F,GAAgBjxG,KAAK0qE,UAAUz9C,WAAajtB,KAAK0qE,UAAUhG,4BAEjE,MAAM71C,EAAUoiF,GACZ,IAAKzsG,UAAU7F,OACX,OAAOqB,KAAKk1B,WAGhB,GADAl1B,KAAK07H,0BACA,OAAS7sG,QAAY,IAAWA,OAAW,EAASA,EAAS8B,SAAS,aAAe,OAAS9B,QAAY,IAAWA,OAAW,EAASA,EAAS8B,SAAS,0BAC5J,OAAO3wB,KAAKk1B,SAASrG,EAAUoiF,GAEnC,IASIqiB,EATAviB,EAAS,OAASliF,QAAY,IAAWA,OAAW,EAASA,EAAS6F,QAAQ10B,KAAKmxG,0BAEnFj8E,SAAUA,GACVl1B,KACAksH,EAAYnb,IAAWA,EAAOh9F,KAAK,gBAAkB8a,EAAStB,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgBw8F,MAAmBzhG,GAAG,GAAGxb,KAAK,gBACjIse,EAAa0+E,GAAUA,EAAOr8E,QAAQ,WAAW3gB,KAAK,WACtDqqD,EAAoBp+D,KAAKgwB,cAAc,WACvCzU,EAAS8W,EAAa+rC,EAAkBw0D,eAAevgG,EAAW07B,KAAO,KACzEsoE,EAAuBr2H,KAAKgwB,cAAc,cAE9C,GAAIk8F,EAAW,CACXmK,EAAqBgF,aAAanP,GAClC,IAAIluH,EAAQkuH,EAAUp9F,OAAO,WAAWmmG,WACxC,GAAInD,GAA2B9zH,EAAOq0B,IAAegkG,EAAqB8B,gBAAgB58G,GAoBtF,OAnBA6iD,EAAkBkiD,4BAA4B9pF,KAAK,KAC/C,eAAK6/F,EAAqBe,aAAalL,IAAY11F,KAAKt0B,IACpDoxH,EAAmBpxH,EACnB,IACIF,OAAQA,GACRsxH,EAAiBpH,UAAUp9F,OAAO,aAAlCwkG,GACA/3G,GAAUvZ,IAAWq0H,EAAqBsF,6BAA6B,CACnE1X,OAAQ1oG,EAAOwyC,IACf7uB,YAAal9B,EAAOC,UAIxBqxH,EAAiBc,SAAW9C,GAAkBE,UAC9CvgB,GAAe,GAEnBjxG,KAAK47H,gBAAgB/sG,EAAUykG,EAAkBriB,GACjD/7E,EAASiE,KAAKn5B,KAAM6uB,EAAUoiF,QAG/BjxG,KAAKk1B,SAASrG,EAAUoiF,GAIvC,OADAjxG,KAAK47H,gBAAgB/sG,EAAUykG,EAAkBriB,GAC1CjxG,KAAKk1B,SAASrG,EAAUoiF,IAEnC,kBAAkBp/E,GACd,IAAI8uD,EAAU9uD,EAAWtE,KAAK,kBAAkBgC,GAAG,GACnD,OAAO,QAAcssG,kBAAkBl7C,KAG/C5sE,KAAM,CACF,qBAAqBu/G,GACjB,IAAI4C,EAAmBrE,GAAwByB,GAAoBA,EAAiBc,OAASd,EAC7F,OAAO4C,GAAoB5E,GAAkBC,OAEjD,eAAenhE,EAAQC,EAAQC,EAAiBpxB,EAAaqxB,GACzD,IAAIlgC,EAAIub,EACJvP,EAAO,QAAUhM,EAAK+/B,EAAO79B,aAAU,IAAWlC,OAAK,EAASA,EAAG6O,GACnE48F,EAAsB97H,KAAK+7H,qBAAqB,CAChD3H,OAAQ,OAAS/3F,QAAQ,IAAWA,OAAO,EAASA,EAAK65F,mBAEzDG,EAAuBr2H,KAAKgwB,cAAc,cAC1CsjG,EAAmB+C,EAAqBlC,wBAAwB,CAChElQ,OAAQ7zD,EAAOrC,IACf7uB,YAAaA,IAEbizF,EAAiBkE,EAAqBjE,mBAAmBhiE,EAAOrC,KAChEiuE,EAAsBh8H,KAAK+7H,qBAAqBzI,GAChD2I,EAAgB/0F,KAAKC,UAAUkpB,EAAOI,kBAAoBvpB,KAAKC,UAAUipB,EAAOK,gBAChFyjE,EAA0B4H,IAAwBE,GAAuBC,EACzEC,EAAwB,eAAE,OAAS7/F,QAAQ,IAAWA,OAAO,EAASA,EAAKkE,aAAa5P,SAAS3wB,KAAKw0B,gBAAgBk8F,KACtHyL,EAAqB,QAAUvwF,EAAK,OAASvP,QAAQ,IAAWA,OAAO,EAASA,EAAKr6B,OAAOoV,uBAAoB,IAAWw0B,OAAK,EAASA,EAAGjtC,OAC5Iy9H,EAAsBhsE,EAAOzwB,YAAc0wB,EAAO1wB,WAAaw8F,EAC/DE,EAA6BnI,GAA2B/B,EAAeK,SAAW0J,EACtF,SAAIE,IAAuBC,IAGpBr8H,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,cAI7Cw0B,MAAO,CACHtN,SAAU,CACN,yBAAyByP,GACrB,IAAIwnC,EACAa,EACA84D,EACAztG,EAAW7uB,KAAKitB,UAChBsvG,EAAkB1tG,GAAYA,EAAStB,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgBq8F,IAA+B,yBAE/G,GADA7wH,KAAKk1B,SAASiG,GACVohG,GAAmBA,EAAgB59H,SACnCgkE,EAAe3iE,KAAKyqC,kBACpB6xF,EAAwBt8H,KAAK0lE,yBAAyBvqC,GACtDqoC,EAAuB84D,EAAsBxuG,QACzC01C,GAAwB,IAAMb,EAAahkE,UAAY6kE,EAAqB5uC,GAAG,aAAe,eAAe2nG,GAAmB,eAAe/4D,KAG/I,OAFA84D,EAAsBvpH,OACtB,eAAUupH,EAAuB,eAAeC,KACzC,GAKnB,kBAAkBp9F,EAAatN,GAC3B7xB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1B,eAAY,KACR,IAAIm8E,EAAU9uD,EAAWtE,KAAK,cAAcO,QACxC0uG,EAAmB77C,EAAQhiF,SAAWgiF,EAAQ/uD,WAAWjzB,OACxD69H,GACDx8H,KAAKgwB,cAAc,cAAc+mG,gBAAgB53F,EAAawhD,MAI1E,cAAcjvD,EAAOlB,GACZxwB,KAAKgwB,cAAc,WAAWg6F,yBAC/BhqH,KAAKgwB,cAAc,cAAc+mG,gBAAgBvmG,EAAYkB,GAEjE1xB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,iBAAiBi4H,GACb,IAAIr+D,EAAoBp+D,KAAKgwB,cAAc,WAC3CouC,GAAqBA,EAAkB6N,cAAgBjsE,KAAKyqC,gBAAgBgyF,GAAcr3C,KAAK,CAACztD,EAAG5M,KAC/F,IAAIsH,EAAa,eAAEtH,GAAMhX,KAAK,WAC9B,GAAIse,EAAY,CACZ,IAAI9W,EAAS6iD,EAAkBw0D,eAAevgG,EAAW07B,KACzDxyC,GAAU6iD,EAAkBi5D,cAAc97G,WCnzCtE,GAAS62B,eAAe,aAAc+jF,ICItC,IAAIuG,GAAwB,uBACxBC,GAAsB9pG,GAAQA,EAAK/D,OAAO,kCAAoC+D,EAAK+pG,YAAYC,aAAehqG,EAAK+pG,YAAYE,uBAAyB,EACxJC,GAAoBlqG,GAAQA,EAAKmqG,OAAOr+H,OAASk0B,EAAKmqG,OAAO,GAAGr2G,WAAa,EAC7Es2G,GAAkBpqG,GAAQA,EAAKmqG,OAAOr+H,OAASk0B,EAAKmqG,OAAOnqG,EAAKmqG,OAAOr+H,OAAS,GAAGgoB,WAAa,EAChGu2G,GAAc,CAACrqG,EAAM2V,EAASxa,KAC9B6E,EAAKsqG,kBAAmB,EACxB30F,EAAQxa,GACR6E,EAAKsqG,kBAAmB,GAExBC,GAAsB,CAACvqG,EAAM2V,EAASxa,KACtC,GAAI6E,EAAKwqG,gBAGL,OAFAxqG,EAAKwqG,iBAAkB,EACvBH,GAAYrqG,EAAM2V,EAASxa,IACpB,GAGXsvG,GAAuBzqG,IACvB,IAAIjM,EAAWiM,EAAK0qG,aAAa32G,WAC7B42G,EAAiB3qG,EAAK/D,OAAO,4BACjC,GAAI0uG,EACA,OAAO,EAEX,IAAIC,EAAmB5qG,EAAK+pG,YAAYc,eACxC,GAAI7qG,EAAK+pG,YAAYviE,iBAAmBxnC,EAAK/D,OAAO,kCAAmC,CACnF2uG,EAAmB,EAMnB,IALA,IAAIC,EAAe7qG,EAAK+pG,YAAYc,eAAiB7qG,EAAK+pG,YAAYe,mBAClEt2G,EAASwL,EAAK+pG,YAAYgB,mBAC1BtlH,EAAWua,EAAK+pG,YAAYiB,sBAC5BC,EAAoBjrG,EAAK+pG,YAAYkB,oBACrCloE,EAAkB/iC,EAAK0qG,aAAa3nE,kBAC/B4S,EAAYs1D,EAAkBC,MAAOv1D,EAAY5S,EAAiB4S,IAAa,CACpF,GAAInhD,GAAU/O,EAAWolH,EACrB,MAEJ,IAAIM,EAAWnrG,EAAK+pG,YAAYqB,eAAez1D,IAAc31C,EAAK+pG,YAAYe,mBAC9Et2G,GAAU22G,EACN32G,GAAU/O,GACVmlH,KAIZ,OAAO72G,GAAY62G,EAAmB,EAAI/lF,KAAKklB,KAAK6gE,EAAmB72G,GAAY,GAEnFs3G,GAAsB,CAACrrG,EAAMsrG,KAC7B,IAAIr1G,EAAiB+J,EAAK/D,OAAO,4BAC7B0lC,EAAY8oE,GAAqBzqG,GACjCurG,EAAevrG,EAAK+pG,YAAYwB,eAapC,OAZI5pE,IACI2pE,EACA3pE,EAAY1rC,EAAiB,EAAI,GAE7BA,GACA0rC,KAEA4pE,GAAiBzB,GAAoB9pG,IACrC2hC,MAILA,GAEP6pE,GAAsBxrG,IACtB,IAAI3wB,GAAU,EACVylG,EAAiBo1B,GAAkBlqG,GACnCyrG,EAAczrG,EAAK0qG,aACvB,GAAI51B,EAAiB,EACjBzlG,EAAS2wB,EAAKsoF,gBACX,GAAKtoF,EAAKmqG,OAAOnqG,EAAKsoF,WAAaxT,IAEnC,GAAIA,GAAkB,GAAK90E,EAAK+pG,YAAYc,gBAAkB,EAAG,CACpE,GAAI/1B,EAAiB,EAAG,CACpB,IAAI42B,EAA2BtB,GAAgBpqG,GAAQ,IAAMyrG,EAAY9pE,aAAe3hC,EAAKmqG,OAAOr+H,OAASu/H,GAAoBrrG,GAAQ,EACrI2rG,EAAqBD,GAA4B1rG,EAAKsoF,aAAexT,GAAkBu2B,GAAoBrrG,GAAM,GACjH2rG,IACAt8H,EAASylG,EAAiB,GAGlC,GAAIzlG,EAAS,EAAG,CACZ,IAAIu8H,EAAqB92B,EAAiB90E,EAAKmqG,OAAOr+H,QAAUk0B,EAAKsoF,WAAa+iB,GAAoBrrG,GAClG4rG,IACAv8H,EAASylG,EAAiB90E,EAAKmqG,OAAOr+H,eAZ9CuD,EAAS2wB,EAAKsoF,WAmBlB,OAHItoF,EAAK6rG,oBAAoBx8H,KACzBA,GAAU,GAEPA,GAEPy8H,GAAW,CAAC9rG,EAAMlM,KAClB,IAAI23G,EAAczrG,EAAK0qG,aACvB,GAAI52G,IAAckM,EAAKlM,cAAgB23G,EAAYhzE,aAAe3kC,EAAY23G,EAAY9pE,cAAgB8pE,EAAYzoE,oBAAsBlvC,IAAc23G,EAAY9pE,YAGlK,OAFA8pE,EAAY33G,UAAUA,GACtBkM,EAAK6rG,oBAAoB/3G,IAAa,EAC/B,eAAK23G,EAAYr2E,QAAQ/kB,OAAO,KACnCrQ,EAAK6rG,oBAAoB/3G,IAAa,KAI9Ci4G,GAAiB,CAAC/rG,EAAM2V,EAASvE,EAAY46F,EAAgBC,KAC7D,IAAIR,EAAczrG,EAAK0qG,aACnB/7G,EAAQ88G,EAAY98G,QAAQhf,QAC5B+Y,EAAS,eAAS0oB,GAAcA,OAAa,EAC7C86F,EAAY,YAAc96F,EAC1B+6F,EAAgBV,EAAYU,gBAC5B/6F,GAAc,eAASA,KAAgBpR,EAAKwqG,kBAC5C9hH,EAAS,CACL0oB,WAAYA,EACZziB,MAAOA,GAEPs9G,IACAvjH,EAAO0jH,YAAcH,EAAgBnpE,WACjCp6C,EAAO0jH,aAAeX,EAAYY,eAClC3jH,EAAO0jH,YAAcX,EAAYY,aAAaF,EAAezjH,EAAO0jH,YAAaF,MAI7F,IAAII,EAAkBL,EAAkBA,EAAgBM,YAAc,EAClED,GAAmBb,EAAYY,eAC/BC,EAAkBb,EAAYY,aAAaF,EAAeG,EAAiBJ,IAE3E,WAAa96F,GACb+6F,EAAcv/H,KAAK8E,MAAMy6H,EAAex9G,GACpCs9G,GACAE,EAAc53F,OAAO,EAAG+3F,IAErBJ,GACPC,EAAcj/H,QAAQwE,MAAMy6H,EAAex9G,GACvCs9G,GACAE,EAAc53F,QAAQ+3F,IAG1BtsG,EAAK0qG,aAAayB,cAAcx9G,GAEpC88G,EAAYe,gBACZxsG,EAAKysG,eAAiBzsG,EAAKlM,YAC3BkM,EAAKwqG,gBAAkBwB,EAClBA,GACD3B,GAAYrqG,EAAM2V,EAASjtB,IAG5B,MAAM,GACT,YAAYgkH,EAAYjB,GACpBt+H,KAAKu9H,aAAee,EACpBt+H,KAAK48H,YAAc2C,EACnBv/H,KAAKm7G,WAAan7G,KAAKs/H,eAAiBhB,EAAY33G,YACpD3mB,KAAKg9H,OAAS,GACdh9H,KAAK0+H,oBAAsB,GAE/B,SACI,OAAO1+H,KAAK48H,YAAY9tG,OAAOvqB,MAAMvE,KAAK48H,YAAap4H,WAE3D,yBAAyBgkE,GACrB,IAKIg3D,EALA54G,EAAW5mB,KAAKu9H,aAAa32G,WAC7B4tC,EAAYx0D,KAAKu9H,aAAa/oE,YAC9B7G,EAAc3tD,KAAK48H,YAAYviE,gBAC/B3M,EAAa1tD,KAAK48H,YAAYwB,eAC9BxoE,EAAkB51D,KAAKu9H,aAAa3nE,kBAExC,GAAIhvC,IAAa+mC,GAAeD,IAAekI,GAAmB,EAAG,CACjE,IAAI8nE,EAAe19H,KAAK48H,YAAYc,eACpC,GAAIA,GAAgBl1D,EAAYk1D,GAAgB9nE,IAAoB51D,KAAK48H,YAAYC,YACjF,GAAI78H,KAAKu9H,aAAa1nE,mBAAoB,CACtC2pE,EAAehrE,EAAY,EAC3B,IAAIirE,EAAe7pE,EAAkBhvC,EACjC44G,EAAe,GAAKC,EAAe,GAAKA,EAAe/B,GACvD8B,SAGJA,EAAehrE,MAEhB,CACHgrE,EAAe9nF,KAAK05B,MAAM5I,EAAY5hD,GACtC,IAAI84G,EAAelrE,EAAY,EAC/BgrE,EAAe9nF,KAAKpwB,IAAIk4G,EAAc,GACtCA,EAAe9nF,KAAKnwB,IAAIi4G,EAAcE,GAG1C,OADA1/H,KAAK2mB,UAAU64G,GACRx/H,KAAKioD,QAGpB,UAAUthC,GACN,IAAI0zC,EAAgBr6D,KAAK48H,YAAYviE,gBACjC+jE,EAAep+H,KAAK48H,YAAYwB,eACpC,OAAI,IAAUp+H,KAAK8uB,OAAO4tG,MAA2BriE,GAAiB+jE,SAC9D,IAAWz3G,IACX3mB,KAAKm7G,WAAax0F,GAEf3mB,KAAKm7G,YAETn7G,KAAKu9H,aAAa52G,UAAUA,GAEvC,eAAeg5G,GACX,IAAIh4B,EAAiBo1B,GAAkB/8H,MAIvC,OAHI2nG,EAAiB,IACjBA,OAAiB,IAAWg4B,EAAmBA,EAAmB3/H,KAAK2mB,aAEpEghF,EAEX,eACI,IAAIi4B,EAAe3C,GAAgBj9H,MACnC,OAAO4/H,EAAe,EAAIA,EAAe5/H,KAAKs/H,eAElD,WACI,OAAOt/H,KAAKu9H,aAAa32G,WAE7B,OACI,IACI1kB,EADAo8H,EAAct+H,KAAKu9H,aAEnBljE,EAAgBr6D,KAAK48H,YAAYviE,gBACjC+jE,EAAep+H,KAAK48H,YAAYwB,eACpC,IAAI,IAAUp+H,KAAK8uB,OAAO4tG,MAA2BriE,GAAiB+jE,GAAe,CACjF,IAAIyB,EAAmBxB,GAAoBr+H,MAC3C,GAAI6/H,GAAoB,EAAG,CACvB,IAAI/iE,EAAa6hE,GAAS3+H,KAAM6/H,GAC5B/iE,IACA56D,EAAS,IAAI,OACb46D,EAAWtmC,KAAK,KACZ,IAAIspG,EAAgB9/H,KAAK+/H,eACrBD,EACAA,EAActpG,KAAKt0B,EAAOg7B,SAAS+L,KAAK/mC,EAAO2gC,QAE/C3gC,EAAOg7B,YAEZ+L,KAAK/mC,EAAO2gC,QACfy7F,EAAYe,uBAIpBn9H,EAASo8H,EAAYr2E,OAOzB,OALK/lD,GAAUlC,KAAKs/H,iBAAmBt/H,KAAK2mB,aACxC3mB,KAAKu9H,aAAayC,UAAU,CACxB/7F,WAAY,cAGb/hC,IAAU,IAAK,QAAUg7B,UAEpC,aACI,IAAIm9B,EAAgBr6D,KAAK48H,YAAYviE,gBACjC+jE,EAAep+H,KAAK48H,YAAYwB,eACpC,IAAK/jE,GAAiB+jE,KAAkBp+H,KAAKu9H,aAAajyE,eAAiBtrD,KAAKm9H,kBAAoBn9H,KAAK48H,YAAYC,aAAc,CAC/H,IAAIvkH,EAAWtY,KAAK48H,YAAYiB,sBAC5BvlH,EAAW,EACXtY,KAAK48H,YAAYqD,yBAAyB3nH,GAE1CtY,KAAKioD,QAIjB,kBAAkB/yB,EAAUjG,GACxB,IAEIgV,EACAi8F,EAHA5B,EAAct+H,KAAKu9H,aACnB4C,EAAkBngI,KAAKg9H,OAAOr+H,OAG9B07D,EAAgBr6D,KAAK48H,YAAYviE,gBACjC+jE,EAAep+H,KAAK48H,YAAYwB,eACpC,GAAInvG,GAAKA,EAAErU,QACPsiH,GAAYl9H,KAAMk1B,EAAUjG,QACzB,IAAI,IAAUjvB,KAAK8uB,OAAO4tG,MAA2BriE,GAAiB+jE,GAAe,CACxF,IAAIz2B,EAAiBo1B,GAAkB/8H,MACvC,GAAI2nG,GAAkB,IACdttC,GAAiBstC,EAAiB3nG,KAAKg9H,OAAOr+H,SAAW2/H,EAAY33G,aAAeghF,EAAiB,IAAM22B,EAAY33G,cACvHw5G,EAAkB,EAClBngI,KAAKg9H,OAAS,IAEdoB,GACA,GAAI,IAAME,EAAY33G,YAClB3mB,KAAKg9H,OAAS,QACX,GAAIsB,EAAY33G,YAAcs2G,GAAgBj9H,MAKjD,YAJAk9H,GAAYl9H,KAAMk1B,EAAU,CACxB+O,WAAY,SACZziB,MAAO,KAMvB,IAYIs9G,EAZAtnE,EAAY,CACZ7wC,UAAW23G,EAAY33G,YACvBy4G,YAAad,EAAY98G,OAAM,GAAM7iB,OACrCg3D,WAAY31D,KAAK21D,YAAW,IAE5B31D,KAAK8uB,OAAO,mCAAqCurC,EACjD6lE,EAAuBlgI,KAAKg9H,OAAOr+H,OAAS+4C,KAAKpwB,IAAI42G,GAAoBl+H,OAASA,KAAK8uB,OAAO,4BAA8B,EAAI,GAAI,GAEpIsuG,GAAoBp9H,KAAMk1B,EAAU,CAChC+3B,WAAW,IAIf06C,IAAmB22B,EAAY33G,YAAc,GACzCu5G,IACApB,EAAkB9+H,KAAKg9H,OAAOh8B,OAElC/8D,EAAa,UACbjkC,KAAKg9H,OAAOj9H,QAAQy3D,KAEhB0oE,IACApB,EAAkB9+H,KAAKg9H,OAAOn7F,SAElCoC,EAAa,SACbjkC,KAAKg9H,OAAOv9H,KAAK+3D,IAErB,IAAIqnE,EAAiBxkE,GAAiB,IAAM8lE,GAAmBxD,GAAoB38H,MACnF4+H,GAAe5+H,KAAMk1B,EAAUl1B,KAAKg9H,OAAOr+H,OAAS,EAAIslC,OAAa,EAAQ46F,EAAgBC,GAC7F9+H,KAAK+/H,eAAiB//H,KAAKioD,OAAOzxB,KAAK,KAC/B4mG,GAAoBp9H,KAAMk1B,IAC1Bl1B,KAAKioD,cAIb22E,GAAe5+H,KAAMk1B,EAAUjG,GAGvC,mBACI,OAAOjvB,KAAK+/H,eAEhB,WAAWz/E,GACP,IAAIqV,EAAa,EACb0E,EAAgBr6D,KAAK48H,YAAYviE,gBAQrC,OAPK/Z,GAAU+Z,EACXr6D,KAAKg9H,OAAO9lG,QAAQsgC,IAChB7B,GAAc6B,EAAU7B,aAG5BA,EAAa31D,KAAKu9H,aAAa5nE,aAE5BA,EAEX,oBACI,IAAIhvC,EAAYo2G,GAAkB/8H,MAC9B2mB,EAAY,IACZA,EAAY3mB,KAAKu9H,aAAa52G,aAElC,IAAIy5G,EAAkBz5G,EAAY3mB,KAAKu9H,aAAa32G,WAChD+uC,EAAa31D,KAAKg9H,OAAOr+H,OAASqB,KAAKu9H,aAAa32G,WACpDy5G,EAAgB3oF,KAAKpwB,IAAI,EAAGtnB,KAAKu9H,aAAa3nE,kBAAoBD,EAAayqE,GACnF,MAAO,CACHrC,MAAOqC,EACPE,IAAKD,GAGb,QACIrgI,KAAK0+H,oBAAsB,GAC3B1+H,KAAKg9H,OAAS,IC3UtB,IAAIuD,GAA0B,WAC1BC,GAAyB,UACzB,GAAwB,uBACxB,GAAgB3tG,GAAQA,EAAK/D,OAAO,oBAAsB0xG,IAA0B3tG,EAAK4tG,WACzF,GAAe5tG,GAAQA,EAAK/D,OAAO,oBAAsByxG,KAA4B1tG,EAAK4tG,WAE9F,SAASC,GAA6B7xG,EAAU8xG,EAAsBrxG,GAClE,IAAIsxG,EACAC,EAAkB,GAClBC,EAAgB,GAChBC,EAAe,GAGnB,SAASC,EAAiBvhE,GACtB,IAAIwhE,EAAqBxhE,EAAWxyC,QAAUwyC,EAAW5wC,WAAa4wC,EAClEyhE,EAAmB,QAAc75G,OAAO45G,GAC5C,OAAKC,EAGEzhE,EAAWgT,aAAeyuD,EAAiB39G,IAAMsL,EAASxH,SAAS9D,KAF/DsL,EAASxH,SAAS9D,IANjC+L,EAAiBA,GAAkBT,EAUnC,IAAIsyG,EAAuB,CACvB,GAAG1hE,EAAYoxB,EAAWmD,GACtBv0B,EAAWnxC,GAAG,SAAU0lE,IAE5B,IAAIv0B,EAAYoxB,EAAWmD,GACvBv0B,EAAWjxC,IAAI,SAAUwlE,KAIjC,SAASotC,EAAwBR,GAC7B,IAAIS,EAAa,cAAgBT,EAAejtG,IAAI,GAAGiJ,SACnD0kG,EAAYV,EAAejtG,IAAI,GAAG0O,WAAa,iBAAY0wE,KAAKwuB,aAChE9hE,EAAamhE,EAAe7sH,KAAK,gBACjCytH,EAAiBL,EACrB,GAAK1hE,IACDA,EAAa4hE,GAAc,eAAE,mBAAgBC,GAAa,SAAWV,EAAenvG,IAAI,cAAgBmvG,EACxGY,EAAiB,OACZ/hE,GAHT,CAOA,IAAIu0B,EAAU,SAASv0B,GACnB,OAAO,WACH,IAAIgT,EAAYhT,EAAWgT,YAAcuuD,EAAiBvhE,GAC1DgT,EAAYA,EAAY,EAAIA,EAAY,EACxCkuD,EAAqBluD,IAJf,CAMZhT,GACF+hE,EAAelzG,GAAGmxC,EAAY,SAAUu0B,GACxC8sC,EAAcrhI,KAAKipC,IACf,IAAI+4F,EAAYT,EAAiBvhE,GAC7BiiE,EAAejiE,EAAW17B,SAAW,WAAa,YAClD2E,EAAM+4F,GAAa,GACnBhiE,EAAWiiE,GAAch5F,EAAM+4F,KAGvCZ,EAAgBphI,KAAKggE,GACrBshE,EAAathI,KAAK,KACd+hI,EAAehzG,IAAIixC,EAAY,SAAUu0B,MAGjD,IAAI2tC,EAAyB9yG,IACzB,IAAIwB,EACJ,OAAO,eAAE,QAAUA,EAAKxB,EAAS8E,IAAI,GAAGw1D,kBAAe,IAAW94D,EAAKA,EAAKxB,EAAS8E,IAAI,GAAGs/E,OAEhG,IAAK2tB,EAAiBtxG,EAAegD,SAAUsuG,EAAejiI,OAAQiiI,EAAiBe,EAAuBf,GAC1GQ,EAAwBR,GAE5B,MAAO,CACH,SAASl4F,GACL,eAAKo4F,EAAe,CAACnpG,EAAGoM,KACpBA,EAAS2E,MAGjB,UACI,eAAKq4F,EAAc,CAACppG,EAAGw8B,KACnBA,QAKhB,IAAIytE,GAA0B,QAAMhvG,QAAQ,WACxC,IAAIob,EAAU,CACV,KAAK/c,EAAWqtG,EAAazB,GACzB78H,KAAKu9H,aAAee,EACpBt+H,KAAKixB,UAAYA,EACjBjxB,KAAK6hI,eAAgB,IAAU5wG,EAAUnC,OAAO,IAAyB,GAAK,EAC9E9uB,KAAK8hI,kBAAoB,GACzB9hI,KAAK+hI,mBAAqB,EAC1B/hI,KAAKgiI,UAAY,EACjBhiI,KAAKiiI,kBAAmB,EACxBjiI,KAAKkiI,aAAe,EACpBliI,KAAKmiI,WAAa,GAClBniI,KAAKoiI,WAAa,EAClBpiI,KAAKygI,WAAa5D,EAClB78H,KAAKqiI,gBAAkB,wBACvBriI,KAAKsiI,YAAc,IAAI,GAAkBtiI,KAAMA,KAAKu9H,eAExD,eACI,OAAOv9H,KAAKmiI,YAEhB,SACI,OAAOniI,KAAKixB,UAAUnC,OAAOvqB,MAAMvE,KAAKixB,UAAWzsB,YAEvD,YACI,OAAOxE,KAAKygI,YAEhB,oBACI,GAAI,GAAczgI,MAAO,CACrB,IAAIs+H,EAAct+H,KAAKu9H,aACnB3nE,EAAkB0oE,EAAY1oE,kBAClC,IAAI,IAAU51D,KAAK8uB,OAAO,MAA2B,IAAM8mC,EAAiB,CACxE,IAAI2sE,EAAiBviI,KAAKwiI,oBACtBC,EAAenE,EAAYmE,eAC3BC,EAAkBpE,EAAYoE,kBAC9BpsE,EAAO5e,KAAKpwB,IAAIi7G,EAAejsE,KAAMmsE,GACrClsE,EAAO7e,KAAKnwB,IAAIg7G,EAAehsE,KAAMmsE,GACrCrC,EAAgB3oF,KAAKpwB,IAAIsuC,GAAmBU,EAAOC,GAAO,GAC9D,MAAO,CACHwnE,MAAOznE,EACPgqE,IAAKD,GAGb,OAAOrgI,KAAKsiI,YAAYxE,kBAAkBv5H,MAAMvE,KAAKsiI,YAAa99H,aAG1E,sBACI,IAAI6rB,EACA/f,EAActQ,KAAK8uB,OAAO,yBAC1B6zG,EAAmB,EASvB,OARK,eAAUryH,GAKJA,IACPqyH,EAAmB,QAAUtyG,EAAKrwB,KAAK8uB,OAAO,4BAAyB,IAAWuB,EAAKA,EAAK,IAL5FsyG,EAAmBjrF,KAAKnwB,IAAIvnB,KAAK8uB,OAAO,sBAAwB,EAAG9uB,KAAKu9H,aAAaqF,oBACjFD,EAAmB3iI,KAAK8uB,OAAO,kCAC/B6zG,EAAmB3iI,KAAK8uB,OAAO,yBAA2B,IAK3D6zG,GAEX,oBAAoBrqH,GAChB,IAAIpW,EAAS,IAAI,OACbygI,EAAmB3iI,KAAK6iI,sBAW5B,OAVApnG,aAAaz7B,KAAK8iI,kBACdH,EAAmB,EACnB3iI,KAAK8iI,iBAAmBtnG,WAAW,KAC/Bx7B,KAAKigI,yBAAyB3nH,GAC9BpW,EAAOg7B,WACRylG,IAEH3iI,KAAKigI,yBAAyB3nH,GAC9BpW,EAAOg7B,WAEJh7B,EAAO+gC,WAElB,sBACI,OAAOjjC,KAAKgiI,WAEhB,uBAAuB1pH,EAAUyqH,EAAmB91H,GAChDqL,EAAW,OAASA,QAAY,IAAWA,EAAWA,EAAWtY,KAAKgiI,UAKtE,IAJA,IAAIgB,EAAkBhjI,KAAKijI,cACvB57G,EAAS,EACT67G,EAAa,EACbC,EAAsBv+H,OAAO+qB,KAAK3vB,KAAKmiI,YAAY92G,QAAQ,GACtD7qB,EAAI,EAAGA,EAAI2iI,EAAoBxkI,QAAU0oB,EAAS/O,EAAU9X,IAAK,CACtE,IAAI4iI,EAAqBtkF,SAASqkF,EAAoB3iI,IAClD6iI,GAAkB/qH,EAAW+O,GAAU27G,EAC3C,GAAII,EAAqB,GAAKF,EAAaG,EAAiBD,EAAoB,CAC5EF,GAAcG,EACVrjI,KAAKoiI,WAAa,GAAK,eAAUW,KACjCG,EAAaH,EAAoB91H,EAASjN,KAAK8hI,mBAEnD,MAEAuB,EAAiBD,EAAqBF,EACtC77G,GAAUg8G,EAAiBL,EAC3BE,GAAcG,EAElB,IAAIrF,EAAWh+H,KAAKmiI,WAAWiB,GAC/B/7G,GAAU22G,EACVkF,GAAc77G,EAAS/O,EAAW,GAAKA,EAAW+O,EAAS22G,GAAYA,EAE3E,OAAOtmF,KAAKgoB,MAAM,GAAKwjE,GAAc,IAEzC,kBACI,OAAOljI,KAAKiiI,kBAEhB,yBAAyB3pH,GACrB,IAAIgrH,EAAetjI,KAAKgiI,WAAa,EACrChiI,KAAKgiI,UAAY1pH,EACbgrH,IAAiBtjI,KAAKgiI,YACtBhiI,KAAKiiI,iBAAmBjiI,KAAKgiI,UAAYsB,GAE7C,IAAI96D,EAAYxoE,KAAKujI,yBACjBrhI,EAASlC,KAAKwjI,qBAAqBh7D,GAEvC,OADAxoE,KAAKqiI,gBAAgB5rG,OACdv0B,GAEX,oBAAoBuhI,GAChB,IAAI3F,EAAoB99H,KAAK89H,oBAE7B,GADA99H,KAAKkiI,aAAeuB,EAAMjqG,OAAO,CAAC21B,EAAGC,IAAMD,EAAIC,EAAG,GAC9C0uE,EAAmB,CACnB2F,EAAMvsG,QAAQ,CAAC8R,EAAM/mC,KACjBjC,KAAKmiI,WAAWrE,EAAkBC,MAAQ97H,GAAS+mC,IAEvD,IAAI06F,GAAsB5F,EAAkBC,MAAQD,EAAkBwC,IAAMtgI,KAAK21D,cAAgB31D,KAAK8hI,kBAClG6B,EAAqB,QAAch1D,sBAAsBlwC,EAAA,MAEzDz+B,KAAKoiI,WADLsB,EAAqBC,EACHA,EAAqBD,EAErB,IAI9B,cACI,OAAO1jI,KAAK8hI,kBAAoB9hI,KAAKoiI,YAEzC,cAAc55D,EAAWo7D,GACrB,IAAI9F,EAAoB99H,KAAK89H,oBACzBt4D,EAAYgD,EAChB,IAAKs1D,EACD,OAAO,EAEX,IAAIz2G,EAAS,EACTuuC,EAAkB51D,KAAKu9H,aAAa3nE,kBAUxC,OATAhxD,OAAO+qB,KAAK3vB,KAAKmiI,YAAYjrG,QAAQ2sG,IAC5Br+D,IAGDo+D,EAAQC,GAAoBjuE,EAAkB4S,EAAYq7D,EAAmBr7D,KAC7EnhD,GAAUrnB,KAAKmiI,WAAW0B,GAC1Br+D,OAGD9tB,KAAK05B,MAAM/pD,EAASm+C,EAAYxlE,KAAK8hI,kBAAoB9hI,KAAKoiI,aAEzE,iBAAiBhkI,GACb,IAAIwlI,EAAQ,QAAUxlI,EAClB0/H,EAAoB99H,KAAK89H,oBAC7B,OAAKA,EAGE99H,KAAK8jI,cAAcF,EAAQ9F,EAAkBwC,IAAMxC,EAAkBC,MAAO6F,GAFxE,GAIf,wBACI,IAAI9F,EAAoB99H,KAAK89H,oBAC7B,OAAOA,EAAoB99H,KAAK49H,iBAAiB,SAAW59H,KAAK49H,iBAAiB,OAAS59H,KAAKkiI,aAAe,GAEnH,uBACI,OAAOliI,KAAK+hI,oBAEhB,qBAAqBv5D,GAEjB,GADAxoE,KAAK+hI,mBAAqBv5D,GACtB,IAAUxoE,KAAK8uB,OAAO,IAG1B,OAAO9uB,KAAKsiI,YAAYyB,yBAAyBx/H,MAAMvE,KAAKsiI,YAAa99H,YAE7E,iBAAiBwkC,GAIb,YAHI,IAAWA,IACXhpC,KAAK8hI,kBAAoB94F,GAEtBhpC,KAAK8hI,mBAEhB,aAAa94F,GAIT,YAHI,IAAWA,IACXhpC,KAAK6hI,cAAgB74F,GAElBhpC,KAAK6hI,eAEhB,eAAe50H,EAAQwlE,GACnB,IAAIn6D,EAAW,OAASm6D,QAAa,IAAWA,EAAYA,EAAYzyE,KAAKgiI,UACzEjE,EAAQ/9H,KAAKujI,uBAAuBjrH,GACpCgoH,EAAMtgI,KAAKujI,uBAAuBjrH,EAAWrL,EAAQ8wH,EAAO9wH,GAChEjN,KAAK09H,aAAahmF,KAAKklB,KAAK0jE,EAAMvC,IAC7B,eAAUtrD,IAAczyE,KAAK+hI,qBAAuBhE,GACrD/9H,KAAKigI,yBAAyB3nH,IAGtC,MAAM0rH,GACFhkI,KAAKsiI,YAAYz3E,QACZm5E,IACDhkI,KAAKmiI,WAAa,KAG1B,8BAA8BtzG,GAC1B7uB,KAAKikI,cAAgBjkI,KAAKikI,eAAiBvD,GAA6B7xG,EAAU4jD,IAC1EzyE,KAAK29H,oBACL39H,KAAKkkI,oBAAoBzxD,MAIrC,UACIh3C,aAAaz7B,KAAK8iI,kBAClB9iI,KAAKikI,eAAiBjkI,KAAKikI,cAAc9vE,UACzCn0D,KAAKikI,cAAgB,MAEzB,SAASv7F,GACL1oC,KAAKikI,eAAiBjkI,KAAKikI,cAAclgG,SAAS2E,IAEtD,gBACI,OAAO,GAAc1oC,OAEzB,eACI,OAAO,GAAaA,OAExB,oBACI,IAAIqwB,EACAs9B,EAAc3tD,KAAK8uB,OAAO,oBAAsB0xG,GAChD5qE,EAAkB51D,KAAKu9H,aAAa3nE,kBACpCC,EAAmB71D,KAAKu9H,aAAa1nE,mBACrCsuE,EAAWtuE,GAAoB71D,KAAK+hI,mBAAqBnsE,EAAkBA,EAAkB51D,KAAK+hI,mBAClGqC,EAAcpkI,KAAK6hI,cAAgBsC,EACnCE,EAASrkI,KAAK8uB,OAAO,sCAAwC,EAC7Dw1G,EAAkBtkI,KAAKskI,kBACvBC,EAAS,QAAUl0G,EAAKrwB,KAAK8uB,OAAO,wCAAqC,IAAWuB,EAAKA,EAAK,EAC9Fm0G,EAAYF,EAAkBC,EAAS,EACvCE,EAAeH,EAAkB,EAAIC,EACrCjuE,EAAO5e,KAAK05B,MAAM15B,KAAKpwB,IAAI,EAAG68G,EAAWK,GAAaH,GAAUA,EAChE9tE,EAAO7e,KAAKklB,MAAMwnE,EAAcK,EAAenuE,GAAQ+tE,GAAUA,EACrE,GAAI12E,EAAa,CACb,IAAI+2E,EAAgBhtF,KAAKpwB,IAAI,EAAGsuC,EAAkBU,GAClDC,EAAO7e,KAAKnwB,IAAIgvC,EAAMmuE,GAE1B,MAAO,CACHpuE,KAAMA,EACNC,KAAMA,IAGd,aACI,IAAIr0D,EAAS,EAMb,OAJIA,EADAlC,KAAK8uB,OAAO,IACH9uB,KAAKsiI,YAAY3sE,WAAWpxD,MAAMvE,KAAKsiI,YAAa99H,WAEpDxE,KAAKu9H,aAAa5nE,aAExBzzD,IAQf,MALA,CAAC,YAAa,iBAAkB,eAAgB,WAAY,OAAQ,aAAc,oBAAqB,oBAAoBg1B,QAAQvjB,IAC/Hq6B,EAAQr6B,GAAQ,WACZ,OAAO3T,KAAKsiI,YAAY3uH,GAAMpP,MAAMvE,KAAKsiI,YAAa99H,cAGvDwpC,EAvQiC,ICzExC22F,GAA0B,oBAC1B,GAAoB,cACpBC,GAAkB,mBAClB,GAAqB,kBACrBC,GAAoB,iBACpB,GAAe,kBACf,GAA0B,WAC1B,GAAyB,UACzBC,GAAe,IACf,GAAwB,uBACxBC,GAAqB,mBACrB,GAAgB,SAASlyG,GACzB,OAAOA,EAAK/D,OAAO,oBAAsB,IAEzC,GAAe,SAAS+D,GACxB,OAAOA,EAAK/D,OAAO,oBAAsB,IAEzC41E,GAAkB,SAAS7xE,GAC3B,OAAO,GAAcA,IAAS,GAAaA,IAE3CqsG,GAAe,SAAS19G,EAAO9gB,EAAOw2D,EAAS8tE,GAC/C,IAAK,IAAIxkI,EAAI,EAAGA,EAAIE,EAAQ,EAAGF,IAAK,CAChC,IAAIuqB,EAAOvJ,EAAM01C,EAAU11C,EAAM7iB,OAAS,EAAI6B,EAAIA,GAC9CuqB,IAASi6G,EAAoBj6G,EAAMvqB,IAAME,EAAOw2D,IAChDx2D,IAGR,OAAOA,GAEPukI,GAA8B,SAASl6G,EAAMhf,GAC7C,MAAO,SAAWgf,EAAK6S,UAAY7S,EAAK61C,UAAY,UAAY71C,EAAK6S,SAAW7xB,EAAWu0F,qBAAqBv1E,EAAKhX,OAErHmxH,GAAoB,SAAS1jH,GAI7B,OAHAA,EAAM0V,QAAQ,CAACnM,EAAM9oB,KACjB8oB,EAAK8Q,SAAW55B,IAEbuf,GAEP2jH,GAA4C,WAC5C,IAAI9F,EAAgB,SAASxsG,GACzB,IAAI80E,EAAiB90E,EAAKuyG,yBAAyBz9B,gBAAgB,GAC/D,GAAc90E,KACV80E,EAAiB,GAAK90E,EAAK6qG,gBAAkB,GAAK7qG,EAAKiqG,wBAA0B,IAAMn1B,EAAiB90E,EAAKjM,WAAaiM,EAAKiqG,wBAA0Bn1B,EAAiB90E,EAAKjM,WAAaiM,EAAK8iC,aAAe9iC,EAAKiqG,uBAAyBjqG,EAAK6qG,iBAAmB7qG,EAAK+rB,YAAY0M,YAClRz4B,EAAKw3B,aACNx3B,EAAKw3B,YAAa,EAClBx3B,EAAKggC,eAAep8B,MAAK,IAEtB5D,EAAKw3B,aACZx3B,EAAKw3B,YAAa,EAClBx3B,EAAKggC,eAAep8B,MAAK,MAIjCv0B,EAAS,CACT,OACIlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKopD,OAAS,GACdppD,KAAKqlI,aAAe,EACpBrlI,KAAKm4E,WAAY,EACjBn4E,KAAKslI,eAAiB,EACtBtlI,KAAKolI,yBAA2B,IAAIxD,GAAwB5hI,KAAKixB,UAAWjxB,KAAKulI,iCAErF,+BACI,IAAI1yG,EAAO7yB,KACX,MAAO,CACH4mB,SAAU,IAAMiM,EAAKjM,WACrBgvC,gBAAiB,IAAM/iC,EAAK+iC,kBAC5BC,iBAAkB,IAAMhjC,EAAKgjC,mBAC7BlvC,UAAW1kB,GAAS4wB,EAAK+rB,YAAYj4B,UAAU1kB,GAC/CqpD,UAAW,IAAMz4B,EAAK+rB,YAAY0M,cAAgBz4B,EAAKu5B,kBACvDoI,UAAW,IAAM3hC,EAAK2hC,YACtBvM,KAAM,IAAMp1B,EAAK+rB,YAAYqJ,OAC7B,gBACIo3E,EAAcxsG,IAElB8iC,WAAY,IAAM9iC,EAAK8iC,YAAW,GAClCn0C,MAAO,IAAMqR,EAAK+rB,YAAYp9B,QAC9B,cAAcA,GAIV,OAHIA,IACAqR,EAAKu2B,OAAS5nC,GAEXqR,EAAKu2B,QAEhB,UAAUn6B,GACN4D,EAAK2V,QAAQ/R,KAAKxH,IAEtB,mBACI,OAAI4D,EAAKy4B,YACEw5E,GAEJjyG,EAAK2yG,aAAe,KAIvC,sBAAsBl6E,IACd,IAAUtrD,KAAK8uB,OAAO,KAIrB,GAAc9uB,QAASA,KAAK44D,gBAC7B54D,KAAKqqD,WAAaiB,EAClBtrD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAG1BxE,KAAKylI,eADLn6E,EACsB,IAAIloD,UAEJ,GAVtBpD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAalC,oBACQ,IAAUxE,KAAK8uB,OAAO,MACtB9uB,KAAKqqD,YAAa,EAClBrqD,KAAK6yD,eAAep8B,MAAK,IAE7Bz2B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,mBAAmByqB,GACf,IAAI,IAAUjvB,KAAK8uB,OAAO,IAItB,OAHA9uB,KAAKopD,OAASppD,KAAK4+C,YAAYp9B,QAAQhf,QACvCxC,KAAKqlI,YAAcrlI,KAAK28D,uBAAsB,QAC9C38D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAG9B,IAAI0wB,EAAWl1B,KAAKk1B,SAAShB,KAAKl0B,MAClCA,KAAKolI,yBAAyBM,kBAAkBxwG,EAAUjG,IAE9D,2BAA2BtJ,EAAS6jC,GAChC,IAAIm8E,GAAU,IAAU3lI,KAAK8uB,OAAO,IAChCxe,EAActQ,KAAK8uB,OAAO,yBACzB,eAAUxe,KACXA,EAActQ,KAAKwlI,aAAexlI,KAAK8uB,OAAO,mCAE7C,GAAc9uB,OAAS,GAAaA,OAAS2lI,IAAan8E,EAAekD,SAAWlD,EAAe8M,OAAQqvE,GAAar1H,IACzHqV,EAAQZ,WAAQ,GAEpB/kB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,QACI,OAAOxE,KAAKopD,QAEhB,sBAAsB9I,GAClB,OAAO,IAAUtgD,KAAK8uB,OAAO,KAA0B,GAAc9uB,QAAUsgD,EAAStgD,KAAKqlI,YAAcrlI,KAAKk1B,YAEpH,WAAWorB,GACP,OAAIA,IAAU,IAAUtgD,KAAK8uB,OAAO,IACzB9uB,KAAKk1B,WAETl1B,KAAKolI,yBAAyBzvE,cAEzC,KAAKhB,GACD,OAAI,IAAU30D,KAAK8uB,OAAO,KAA0B6lC,EACzC30D,KAAKk1B,SAASy/B,GAElB30D,KAAKolI,yBAAyBn9E,QAEzC,YACI,OAAO,IAAUjoD,KAAK8uB,OAAO,IAAyB9uB,KAAK4+C,YAAY0M,YAActrD,KAAKqqD,YAE9F,WACI,OAAOrqD,KAAK4+C,YAAY9O,YAAc9vC,KAAKm4E,WAE/C,gBAAgB5nB,GACPA,GACDvwD,KAAKolI,yBAAyBv6E,OAAM,GAExC7qD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,uBACI,IAAItC,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACvC,OAAI,IAAUxE,KAAK8uB,OAAO,MAG1B9uB,KAAK25D,kBACL0lE,EAAcr/H,OAHHkC,GAMf,SACIlC,KAAK4+C,YAAYj4B,UAAU3mB,KAAK2mB,aAChC,IAAIi/G,EAA0B5lI,KAAKolI,yBACnC,IAAI,IAAUplI,KAAK8uB,OAAO,KAA0B82G,EAAyB,CACzE,IAAIlxE,EAAI,IAAI,OASZ,OARA10D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAAWgyB,KAAKqvG,IACtC,IAAI/F,EAAgB8F,EAAwBE,mBACxChG,EACAA,EAActpG,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAE7xB,QAErC6xB,EAAEx3B,QAAQ2oG,KAEf58F,KAAKyrB,EAAE7xB,QACH6xB,EAEX,OAAO10D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,QAAQmhB,EAAS6jC,GACb,IAAI,IAAUxpD,KAAK8uB,OAAO,IAAwB,CAC9C,IACIq9B,iBAAkBA,GAClBxmC,EACA5Z,EAAa/L,KAAK4+C,YAClB4K,EAAekD,QACf1sD,KAAKolI,yBAAyBv6E,QAC9B9+C,EAAWyV,QAAQ7iB,OAAS,EAC5BqB,KAAKm4E,WAAY,EACjBknD,EAAcr/H,MACdA,KAAKm4E,WAAY,EACb,GAAan4E,OACbA,KAAK2mB,UAAU,GACf5a,EAAW4a,UAAU,GACrBwlC,EAAiBxlC,UAAY,EAC7BhB,EAAQgB,UAAY,EACpBwlC,EAAiBmK,KAAO,IAExBvqD,EAAW4a,UAAU3mB,KAAK2mB,aACtB5a,EAAWi8C,aACXriC,EAAQgB,UAAY3mB,KAAK2mB,YACzBwlC,EAAiBmK,KAAOt2D,KAAK2mB,YAAc3mB,KAAK4mB,cAGjD,GAAa5mB,OAASmsD,EAAiBmK,MAAQt2D,KAAK24D,sBAAwB,IACnFxM,EAAiBmK,MAAQt2D,KAAK24D,uBAGtC,OAAO34D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,UACIxE,KAAKolI,yBAAyBjxE,UAC9Bn0D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,cAAc9D,GACV,IAAK,eAAUA,GACX,OAAOV,KAAKslI,eAEhBtlI,KAAKslI,eAAiB5kI,GAE1B,mBAAmBilB,GACf,IAAIogH,EAAgB/lI,KAAK+lI,gBACrBn/G,EAAW5mB,KAAK4mB,WAChB++G,GAAU,IAAU3lI,KAAK8uB,OAAO,KAEhCq9B,iBAAkBA,GAClBxmC,EACAqgH,EAAgB,eAAU75E,EAAiBoK,MAC/C5wC,EAAQogH,cAAgBA,GACnBpgH,EAAQymC,iBAAmBu5E,GAAWK,GAAiBD,EAAgB,GAAKn/G,EAAW,IACxFulC,EAAiBoK,KAAOwvE,EAAgBn/G,GAE5C5mB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,gBACI,OAAOxE,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAAaxE,KAAK+lI,kBAmB3D,MAhBA,CAAC,iBAAkB,eAAgB,aAAa7uG,QAAQvjB,IACpDzR,EAAOyR,GAAQ,WACX,IAAI,IAAU3T,KAAK8uB,OAAO,IAAwB,CAC9C,IAAI/iB,EAAa/L,KAAK4+C,YACtB,OAAO7yC,EAAW4a,UAAUpiB,MAAMwH,EAAYvH,WAElD,IAAIohI,EAA0B5lI,KAAKolI,yBACnC,OAAOQ,EAAwBjyH,GAAMpP,MAAMqhI,EAAyBphI,cAG5E,CAAC,oBAAqB,mBAAoB,wBAAyB,sBAAuB,sBAAuB,uBAAwB,uBAAwB,yBAA0B,eAAgB,mBAAoB,cAAe,eAAgB,cAAc0yB,QAAQvjB,IAChRzR,EAAOyR,GAAQ,WACX,IAAIiyH,EAA0B5lI,KAAKolI,yBACnC,OAAOQ,EAAwBjyH,GAAMpP,MAAMqhI,EAAyBphI,cAGrEtC,EAtOqC,GAwO5C+jI,GAAmC,WACnC,IAAIC,EAAkB,SAASC,EAAY/xG,GACvC,IAAIkX,EAAU66F,EAAW18F,UAAU5qC,IAAIw/B,GAAO,eAAEA,GAAK/L,OAAO,IAAIjH,OAAO+I,IAAYT,IAAI,IAAIrvB,OAAO+5B,GAAOA,GACrGiN,EAAQ3sC,SACRwnI,EAAa,eAAE76F,IAGnB,IADA,IAAI+E,EAAWjc,IAAcwwG,GAAkBuB,EAAWxnI,OAAS,EAAIwnI,EAAWxnI,OACzE6B,EAAI,EAAGA,EAAI6vC,EAAU7vC,IAC1B2lI,EAAW52G,GAAG/uB,GAAGwiC,UAGzB,MAAO,CACH,OACI,IAAI3S,EACA01B,EAAiB/lD,KAAKgwB,cAAc,QACxChwB,KAAKk1B,WACL6wB,EAAemD,YAAYxnB,IAAI/a,IAC3B,IAAI8rD,EAAYzyE,KAAKuhE,WACrBvhE,KAAKomI,aAAa,OAASz/G,QAAa,IAAWA,EAAYA,EAAYo/B,EAAep/B,cACtF,IAAU3mB,KAAK8uB,OAAO,KAA0B9uB,KAAKuhE,aAAekR,GACpE1sB,EAAesgF,mBAGvBtgF,EAAeuN,kBAAkB5xB,IAAI,MAChC1hC,KAAKuhE,YAAcvhE,KAAKsmI,iCAE7B,QAAUj2G,EAAK01B,EAAe4zB,mBAAgB,IAAWtpD,GAAcA,EAAGqR,IAAI,KAC1E1hC,KAAKsmI,iCAETtmI,KAAKsmI,gCAET,+BACI,IAAIvgF,EAAiB/lD,KAAKgwB,cAAc,QACxC,GAAI+1B,EAAep/B,YAAc,EAAG,CAChC,IAAI4/G,EAAgB,KAChBvmI,KAAK41B,gBAAgBoN,OAAOujG,GAC5BvmI,KAAKomI,aAAargF,EAAep/B,cAErC3mB,KAAK41B,gBAAgB8L,IAAI6kG,KAGjC,aAAa5/G,GACT,IAEI6/G,EAFAzgF,EAAiB/lD,KAAKgoC,gBACtBphB,EAAWm/B,EAAiBA,EAAen/B,WAAa,EAE5D,GAAI,GAAc5mB,OAAS,GAAaA,MAAO,CAC3C,IAAIg+H,EAAWj4E,EAAek9E,cAC1BwD,EAAY1gF,EAAek4E,eAC3Bz1D,EAAY7hD,EAAYC,EAE5B,IAAK,IAAI3kB,KADTukI,EAAiBh+D,EAAYw1D,EACXyI,EACV3nF,SAAS78C,GAASumE,IAClBg+D,GAAkBC,EAAUxkI,GAAS+7H,QAI7CwI,EAAiB,EAErBxmI,KAAK+jC,SAAS,CACVvwB,EAAGgzH,EACHjzH,EAAGvT,KAAK8jC,eAGhB,yBACI9jC,KAAKmpC,qBAAqB3S,KAAK,KAC3Bx2B,KAAK0mI,wBAAuB,KAEhC1mI,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,YAAYyqB,GACR,IAAI03G,EAAkB,IAAIvjI,KACtBkX,EAAWta,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrCuH,EAAa/L,KAAKgoC,gBAAgB4W,YACtC,GAAI7yC,GAAckjB,EAAG,CACjB,IAAIu2C,EAAYv2C,EAAEzN,MAAQyN,EAAEzN,MAAM7iB,OAAS,GACvC++H,EAAe19H,KAAKgoC,gBAAgB01F,gBAAkB,GACtD,QAAch9D,sBAAsB1gE,OAASwlE,EAAY,IAAK,IAAUxlE,KAAK8uB,OAAO,IACpF/iB,EAAWy5H,aAAe,IAAIpiI,KAAOujI,GAAmBjJ,EAAel4D,EAEvEz5D,EAAWy5H,YAAc,IAAIpiI,KAAOujI,EAG5C,OAAOrsH,GAEX,gBAAgB6oB,GACZ,IAAI2G,EAAQ9pC,KAAKk1B,SAASiO,GAC1B,OAAO2G,GAASA,EAAM1G,IAAI,IAAI/X,OAAOw5G,MAEzC,oBAAoBpI,EAAcwC,EAAah7F,GAC3C,IAAI4kC,EAAc7oE,KAAKyqC,gBAAgBgyF,GAAchzF,UAEjDo/B,EADA,WAAa5kC,EACC4kC,EAAYrmE,MAAM,EAAGy8H,GAErBp2D,EAAYrmE,OAAOy8H,GAErC,IAAIlzD,EAA0B/rE,KAAKgwB,cAAc,iBACjD64C,EAAYhqE,IAAIk9B,IACZ,IAAIqJ,EAAc,eAAErJ,GACpBgwC,GAA2BA,EAAwBf,eAAe5lC,EAAYqmC,QAC9ErmC,EAAYpC,YAGpB,eAAeG,EAAc5nB,GACzB,IAAI+gH,EACAn6D,EAAiBniE,KAAKoiE,sBACtBn+B,EAAa1oB,GAAUA,EAAO0oB,WAC9BywB,EAAI,iBACR10D,KAAK4mI,2BACL,IAAInK,EAAet6D,EAAevwC,WAAW9D,QA0B7C,MAzBI,WAAamW,GAAc,YAAcA,EACzCjkC,KAAKmpC,qBAAqB3S,KAAK,KAC3B,IAAI6sC,EAAWrjE,KAAKsjC,WAAWH,GAC3B,IAAMkgC,EAAS1kE,OACfqB,KAAKsjC,WAAWm5F,GAAc,WAAax4F,EAAa,SAAW,WAAWo/B,EAASzxC,YAEvFyxC,EAAS,WAAap/B,EAAa,WAAa,aAAaw4F,GAEjEt5F,EAAaH,SACbs5F,EAAwBt8H,KAAK0lE,yBAAyB+2D,GACtDyJ,EAAgB5J,EAAuBsI,IACnCrpH,EAAO0jH,aACPj/H,KAAK6mI,oBAAoBpK,EAAclhH,EAAO0jH,YAAah7F,GAE/DjkC,KAAK8mI,iBAAiBrK,GACtB/nE,EAAEx3B,YACH+L,KAAKyrB,EAAE7xB,QAEV7iC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAAWgyB,KAAK,KAClC,WAAayN,GACbjkC,KAAK8mI,iBAAiBrK,GAE1B/nE,EAAEx3B,YACH+L,KAAKyrB,EAAE7xB,QAEP6xB,EAAEzxB,UAAUzM,KAAK,KACpBx2B,KAAK+mI,0BAGb,eAAe5rG,EAAQ+nC,EAASz9C,EAAUnN,GACtC,GAAKA,EAAL,CAGA,IAAI0uH,EAAchnI,KAAKyjE,gBAAgBohE,GAAmB3hE,EAAS5qD,GACnE0uH,EAAchnI,KAAK2kC,eAAexJ,EAAQ6rG,GAC1ChnI,KAAK0jE,gBAAgBvoC,EAAQ6rG,EAAavhH,KAE9C,0BACI,IAAIwhH,EAAajnI,KAAKknI,iBAClBC,EAAsBnnI,KAAKonI,mBAAmBH,GAClDjnI,KAAKgoC,gBAAgBq/F,oBAAoBF,IAE7C,oBAAoBG,EAAgB70D,GAC3B,eAAU60D,KACXA,EAAiBtnI,KAAKohE,WAAa,eAAephE,KAAKitB,WAAa,eAAe,mBAEvFjtB,KAAKgoC,gBAAgBs/F,eAAeA,EAAgB70D,IAExD,iBACI,IAAIpiD,EAAIub,EACJ89E,EAAkB,QAAU99E,EAAK,QAAUvb,EAAKrwB,KAAKgwB,cAAc,kBAAe,IAAWK,OAAK,EAASA,EAAGq5F,uBAAoB,IAAW99E,OAAK,EAASA,EAAGzS,KAAK9I,GACnKw4C,EAAc7oE,KAAKyqC,gBAAgBzqC,KAAKwjC,eAAeiG,UAI3D,OAHIigF,IACA7gD,EAAcA,EAAYvkE,OAAO+5B,IAAQ,eAAEA,GAAK1N,SAAS,MAEtDk4C,EAAYhqE,IAAIw/B,GAAO,eAAgBA,GAAKpxB,SAEvD,mBAAmBg6H,GAQf,IAPA,IAAIlhF,EAAiB/lD,KAAKgoC,gBACtBj8B,EAAag6C,EAAenH,YAC5BuoF,EAAsB,GACtBI,EAAcxhF,EAAeuM,iBAC7B0rE,EAAW,EACXwJ,GAAqB,EACrBC,GAAiB,EACZjnI,EAAI,EAAGA,EAAIymI,EAAWtoI,OAAQ6B,IAAK,CACxC,IAAIggF,EAAc+mD,EAAY/mI,GACzB,eAAUggF,MAGX,IAAUxgF,KAAK8uB,OAAO,KAClB24G,GAAiB,GAAKA,IAAkBjnD,EAAYnuB,YACpD80E,EAAoB1nI,KAAKu+H,GACzBA,EAAW,GAEfyJ,EAAgBjnD,EAAYnuB,WACrB4yE,GAA4BzkD,EAAaz0E,KAC5Cy7H,EACAA,GAAqB,GAErBL,EAAoB1nI,KAAKu+H,GACzBA,EAAW,IAGnBA,GAAYiJ,EAAWzmI,IAG3B,OADAw9H,EAAW,GAAKmJ,EAAoB1nI,KAAKu+H,GAClCmJ,GAEX,uBAAuBO,GACnB,IAAI3hF,EAAiB/lD,KAAKgoC,gBACtB2/F,EAAY3nI,KAAK4jE,YAAc,GAEnC,GADA7d,EAAe43E,iBAAiBgK,GAC5B,GAAc3nI,OAAS,QAAc0gE,sBAAsB1gE,MAAO,CAC7D0nI,GACD1nI,KAAK4nI,0BAET,IAAIrkH,EAAMwiC,EAAe63E,iBAAiB,SACtCjuD,EAAS5pB,EAAe63E,iBAAiB,OACzChxB,EAAU5sG,KAAK+qC,mBACf88F,EAAej7B,EAAQh7E,SAAS,SAASA,SAAS,IAAIvG,OAAOw5G,KACjEqB,EAAgB2B,EAAchD,IAC9Bj4B,EAAQxnB,KAAK,CAACnjF,EAAOgrB,KACjB,IAAIi2C,EAAUjhE,EAAQ,EAClB6lI,EAAY9nI,KAAK+nI,uBACrB/nI,KAAK+nI,uBAAyB7kE,EAC9BljE,KAAKgoI,eAAe,eAAE/6G,GAAUi2C,EAAS,MAAO3/C,GAChDvjB,KAAKgoI,eAAe,eAAE/6G,GAAUi2C,EAAS,SAAUyM,GACnD3vE,KAAK+nI,uBAAyBD,MAI1C,6BAA6BG,GACzB,IAAIC,EAAiBD,EAAM16G,KAAK,IAAIlC,OAAO,KAAqB1sB,OAAS,EACzE,OAAOupI,IAAmBloI,KAAK8uB,OAAO,oBAE1C,uBAAuBq5G,EAAUC,GAC7B,IAAIlmI,EAASimI,EAASxpI,SAAWypI,EAAgBzpI,OAUjD,OATIuD,GACA,eAAKimI,EAAU,CAAClmI,EAAOgrB,KACnB,GAAIA,EAAQqP,MAAMxqB,QAAUs2H,EAAgBnmI,GAAOq6B,MAAMxqB,MAErD,OADA5P,GAAS,EACFA,IAKZA,GAEX,gBAAgBF,GACZ,IAAIqmI,EAAU,IAEV50H,SAAUA,GACVzR,EACAsmI,EAAiB,WAAatmI,EAAOwwB,QAGzC,OAFA/e,GAAY40H,EAAQ5oI,KAAKgU,GACzB60H,GAAkBD,EAAQ5oI,KAAKO,KAAKw0B,gBAAgB,KAC7C6zG,GAEX,qBAAqB1/D,GACjB,IAAI95C,EAAW85C,GAAmB3oE,KAAKitB,UACnCs7G,EAAmB15G,GAAYA,EAAStB,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgBmwG,MACjF,GAAI4D,GAAoBA,EAAiB5pI,OACrC,OAAO4pI,GAGf,uBACI,IAAI56E,EAAc,GAAc3tD,MAC5B0tD,EAAa,GAAa1tD,MAC1BwoI,GAAqBxoI,KAAKgoC,gBAAgB6tB,oBAAsB71D,KAAKgoC,gBAAgB8H,aAAe6d,GAAeD,GACnHib,EAAkB3oE,KAAKoiE,sBACvBqmE,EAAyBzoI,KAAK0oI,qBAAqB//D,GACnD6/D,EACKC,GACD,eAAE,SAAS/7G,SAAS1sB,KAAKw0B,gBAAgBmwG,KAA0B5yG,OAAO/xB,KAAK8zB,iBAAiB,eAAE,SAAU,SAAejF,YAAYwH,SAASsyC,GAE7I8/D,GACPA,EAAuBzlG,UAG/B,cAAc/T,GACV,IAAI8tD,GAAsB,IAAS/8E,KAAK8uB,OAAO,IAC3C65G,EAAkB,IAAM15G,EAAEuyC,aAAaj+C,IACvCqlH,EAAqB5oI,KAAKuhE,aAAetyC,EAAEuyC,aAAaj+C,IACxDslH,EAAcD,GAAsB35G,EAAEg4C,0BACtC6hE,EAAsB9oI,KAAKohE,aAAe2b,GAAuB4rD,EACrE,GAAIE,GAAeC,GAAuB9oI,KAAK4jE,WAAY,CACvD5jE,KAAKuhE,WAAatyC,EAAEuyC,aAAaj+C,IACjC,IAAIm9C,EAAwB,GAAc1gE,OAAS,aAAeA,KAAK8uB,OAAO,8BAC1E4xC,IAAyB,IAAU1gE,KAAK8uB,OAAO,MAC/C9uB,KAAK4nI,0BACL5nI,KAAK+oI,oBAAoB,KAAM/oI,KAAKuhE,aAExCvhE,KAAKgoC,gBAAgBk8F,oBAAoBj1G,EAAEuyC,aAAaj+C,KAE5DvjB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,qBAAqBmxD,GACjB,OAAO31D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAAcmxD,EAAa,GAAK,GAAa31D,QAAU,QAAc0gE,sBAAsB1gE,OAEhI,mBAEI,GADAA,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,KAAK4jE,WAAY,CACjB5jE,KAAK0mI,yBACL,IAAIY,EAAiBtnI,KAAKohE,WAAa,eAAephE,KAAKitB,WAAa,eAAe,kBACnF84B,EAAiB/lD,KAAKgoC,iBACtB,IAAUhoC,KAAK8uB,OAAO,KACtB9uB,KAAK+oI,oBAAoBzB,GACzBvhF,EAAesgF,kBAEftgF,EAAe23E,aAAahmF,KAAKklB,KAAK0qE,EAAiBtnI,KAAK4jE,eAIxE,2BACI,IAAI1hE,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIvC,OAHItC,GACAlC,KAAK0mI,yBAEFxkI,GAEX,WAAWopD,EAAW6J,GAClB,IAAIpP,EAAiB/lD,KAAKgoC,gBACtBghG,EAAqBjjF,EAAep/B,YAAc,GAAKo/B,EAAejW,cAAgB9vC,KAAK0oI,wBAC3F,IAAU1oI,KAAK8uB,OAAO,KAA0Bw8B,GAAavF,EAAekjF,uBAG5ED,IACA19E,GAAY,GAEhBtrD,KAAKk1B,SAASiE,KAAKn5B,KAAMsrD,EAAW6J,KAExC,2BACI,IAAI+zE,GAAelpI,KAAKohE,YAAcsjC,GAAgB1kG,MAClDkpI,IAAgBlpI,KAAKmpI,yBACrBnpI,KAAKmpI,wBAAyB,EAC9B,QAAO1hF,IAAI,WAGnB,cACI,IAAI50B,EAAO7yB,KACP6uB,EAAWgE,EAAK5F,UACpB4F,EAAKqC,WACDrC,EAAK5B,UAAUpC,aAAegE,EAAKoxG,eAAiB,gBAAep1G,KACnEgE,EAAKoxG,cAAgBvD,GAA6B7xG,EAAUu6G,KACnDv2G,EAAKuuC,YAAcvuC,EAAK+wC,YACzB/wC,EAAKmV,gBAAgBk8F,oBAAoBkF,IAE9Cv2G,EAAK5B,UAAUpC,YAClBgE,EAAKvE,GAAG,YAAa,KACjBuE,EAAKoxG,cAAc9vE,cAGvB,IAAUn0D,KAAK8uB,OAAO,KACtB+D,EAAKw2G,cAGb,aACI,IAAIh5G,EACA01B,EAAiB/lD,KAAKgoC,gBAC1B,QAAU3X,EAAK,OAAS01B,QAAkB,IAAWA,OAAiB,EAASA,EAAesjF,kBAAe,IAAWh5G,GAAcA,EAAG8I,KAAK4sB,IAElJ,mBACI,IAAI,IAAU/lD,KAAK8uB,OAAO,IAAwB,CAC9C,IAAIg9C,EAAgB9rE,KAAKgwB,cAAc,iBACvC,OAAS87C,QAAiB,IAAWA,GAAyBA,EAAcd,iBAEhFhrE,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,UACIi3B,aAAaz7B,KAAK8iI,kBAClB9iI,KAAKk1B,aAxWsB,GA4W5Bo0G,GAAyB,CAChCp8F,eAAgB,KAAM,CAClBt8B,UAAW,CACPgI,QAAS,IACT2wH,cAAe,IACfC,WAAY,EACZC,mBAAoB,IACpBvJ,sBAAsB,EACtBwJ,YAAa,EACbC,wBAAyB,EACzBtxH,KAAM,WACNyQ,gBAAgB,EAChBC,iBAAkB,WAClB6gH,qBAAqB,EACrBC,YAAY,EACZC,oBAAqB,KAG7BxwG,UAAW,CACPm6B,kBAAmB0xE,GACnBpsG,YAAa,CACThlB,KAAM,WACF,IAAIi6B,EAAU,CACV,qBACI,IAAI+7F,EAAa/pI,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAAc,IAAK,QAAU04B,UAAU+F,UAElF,OADA8mG,EAAWvzG,KAAKx2B,KAAKgqI,gBAAgB91G,KAAKl0B,OACnC+pI,GAEX,kBACI,IAAI15G,EACJ,GAAIrwB,KAAKiqI,uBAAyBvlC,GAAgB1kG,MAAO,CACrD,IACI+lI,cAAeA,GACf,eAAU/lI,KAAKkqI,qBAAuBlqI,KAAKmqI,oBAAsB,CACjEpE,mBAAe,GAEnBA,GAAiB,IAAM,QAAU11G,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,GAAcA,EAAG01G,cAAcA,IAEzG,OAAO/lI,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,iBACI,IAAIklI,EAAc1pI,KAAK8uB,OAAO,yBAC1BlI,EAAW5mB,KAAK4mB,WACpB,OAAOA,GAAYA,EAAW8iH,EAAc9iH,EAAW8iH,GAE3D,SACI,IAAIU,EAAuBpqI,KAAKiqI,uBAAyBjqI,KAAK4+C,YAC1D4pB,EAAY4hE,GAAwBA,EAAqB7G,yBACzDrhI,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACvC,OAAOtC,GAAUA,EAAOs0B,KAAK,KACzB,IAAInG,EACJ,GAAI,GAAcrwB,OAAS,QAAc0gE,sBAAsB1gE,MAAO,CAClE,IAAI4xD,EAAiB5xD,KAAK6xD,oBACtBh2B,EAAW6b,KAAK05B,MAAM5I,GAAa5W,GAEnC3gC,UAAWA,GACXjxB,KACAy/D,EAAaxuC,EAAUgvC,eAAiBhvC,EAAUgvC,gBAClDoqE,EAAqBrqI,KAAK+L,aAAay9C,iBAAiBl4C,QAC5D,GAAImuD,IAAe4qE,GAAsBxuG,GAAY,EAAG,CACpD,IAAIE,EAAa9K,EAAU07E,cAAc9wE,GACrCuJ,EAAcrJ,GAAcA,EAAW,IAAM,eAAEA,EAAW,IAC1DxY,EAAM6hB,GAAeA,EAAY9sB,WAAWiL,IAC5CmjD,EAAiBjoC,EAAA,KAAQkoC,QAAU5iE,OAAO,QAAUssB,EAAKoO,EAAA,KAAQmoC,eAAY,IAAWv2C,EAAKA,EAAK,IAAM,GACxGi6G,EAAmB7rG,EAAA,KAAQG,SAAW8nC,EAAiB,EAAI,EAC3DnjD,EAAM+mH,IACN/mH,EAAMm0B,KAAKgoB,MAAMn8C,EAAM,eAAe6hB,IAAgBojC,EAAY,IAClE/I,EAAW17B,SAAS,CAChBvwB,EAAG+P,UAO3B,kBACI,IAAIgnH,EAAuB,QAAc7pE,sBAAsB1gE,MAG/D,GAFAA,KAAKwqI,UAAY,KACjBxqI,KAAKkqI,oBAAsB,KACvB,YAAclqI,KAAK8uB,OAAO,oBAAsBy7G,IAAyBA,IAAwB,IAAUvqI,KAAK8uB,OAAO,MAA2B9uB,KAAK8uB,OAAO,yBAG9J,OAFA9uB,KAAKyqI,cAAgB,UACrBzqI,KAAKiqI,sBAAwB,MAGjC,IAAItjH,GAAa,GAAc3mB,OAASA,KAAK2mB,aAAe3mB,KAAKw0D,YAAcx0D,KAAKw0D,YAAc,EAAIx0D,KAAK2mB,YAC3G3mB,KAAK0qI,cAAgBhzF,KAAKklB,KAAKj2C,EAAY3mB,KAAK4mB,WAAa5mB,KAAK2qI,kBAClE3qI,KAAKyqI,eAAgB,IAAUzqI,KAAK8uB,OAAO,IAAyB,KAAO,GAC3E9uB,KAAK4qI,mBAAoB,EACzB5qI,KAAK6qI,iCAAkC,EAClC7qI,KAAKiqI,wBACNjqI,KAAKiqI,sBAAwB,IAAIrI,GAAwB5hI,KAAKixB,UAAWjxB,KAAK8qI,6BAA6B,GAC3G9qI,KAAKiqI,sBAAsB5H,gBAAgB3gG,IAAI,KAC3C,IAAIrR,EACJ,IAAI,IAAUrwB,KAAK8uB,OAAO,IAItB,OAHA9uB,KAAK4qI,mBAAoB,EACzB5qI,KAAK+qI,oBACL/qI,KAAK4qI,mBAAoB,GAG7B,QAAUv6G,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,GAAcA,EAAGmzG,qBAAqBxjI,KAAKiqI,sBAAsBnN,4BAGpH,IAAU98H,KAAK8uB,OAAO,KACtB9uB,KAAKgrI,4BAELhrI,KAAK8vC,aAAc,IAAU9vC,KAAK8uB,OAAO,KACzC9uB,KAAKiqI,sBAAsBhiF,QAGnC,qBACI,OAAOjoD,KAAK4qI,mBAEhB,4BACI,IAAI/3G,EAAO7yB,KACPirI,EAAkB,SAASlgH,GAC3B,OAAOk6G,GAA4Bl6G,EAAM8H,EAAK+rB,cAElD,MAAO,CACHh4B,SAAU,IAAMiM,EAAK83G,iBACrB,eACI,IAAIt6G,EACJ,OAAO,GAAcwC,KAAU,QAAUxC,EAAKwC,EAAK+rB,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGq1B,kBAAkB4Q,OAAS,GAE9HosE,gBAAiB,IAAM7vG,EAAKq4G,WAC5B,kBACI,OAAIxmC,GAAgB7xE,GACTA,EAAK+iC,mBAET,IAAU/iC,EAAK/D,OAAO,IAAyB+D,EAAKq4G,WAAar4G,EAAKu2B,OAAO9kD,OAAO2mI,GAAiBtsI,QAEhHk3D,iBAAkB,KAAM,IAAUhjC,EAAK/D,OAAO,KAAyB+D,EAAKgjC,mBAC5E,UAAU5zD,GAIN,YAHI,IAAWA,IACX4wB,EAAK63G,cAAgBzoI,GAElB4wB,EAAK63G,eAEhBp/E,UAAW,IAAMz4B,EAAKy4B,YACtB,YACI,IAAIkJ,EAAY9c,KAAKklB,KAAK58D,KAAK41D,kBAAoB51D,KAAK4mB,YACxD,OAAO4tC,GAAa,GAExB,OACQ3hC,EAAKo3G,sBAAsBtjH,aAAe3mB,KAAKw0D,cAC/C3hC,EAAK63G,cAAgB1qI,KAAKw0D,YAAc,EACxC3hC,EAAKo3G,sBAAsBtjH,UAAUkM,EAAK63G,iBAEzC1qI,KAAKwhB,QAAQ7iB,QAAUqB,KAAK41D,mBAGjC/iC,EAAKo3G,sBAAsBvE,kBAAkBnqH,IACzCA,EAASA,GAAU,GACnBA,EAAO0oB,WAAa1oB,EAAO0oB,YAAc,UACzC1oB,EAAOiG,MAAQjG,EAAOiG,OAASqR,EAAK43G,cACpC53G,EAAK43G,cAAcvzG,QAAQ,CAACnM,EAAM9oB,KAC9B8oB,EAAK8Q,SAAW55B,IAEpB4wB,EAAK8/B,aAAap3C,MAG1B,kBACA,aACI,OAAOvb,KAAKwhB,OAAM,GAAM7iB,QAE5BugI,aAAc,CAAC19G,EAAO9gB,EAAOw2D,IAAYgoE,GAAa19G,EAAO9gB,EAAOw2D,EAAS,CAACnsC,EAAMogH,EAAiBj0E,IAC7FnsC,EAAK61C,SACEuqE,IAAoBj0E,EAE3Bi0E,GAAmBj0E,GACXnsC,EAAK61C,SAEVqqE,EAAgBlgH,IAE3B,MAAMqgH,GACF,IAAIlpI,EAAS2wB,EAAKu2B,OAClB,GAAIv2B,EAAK/D,OAAO,IAAwB,CACpC,IAAI/iB,EAAa8mB,EAAK9mB,aAClB+xH,EAAoB,OAAS/xH,QAAc,IAAWA,OAAa,EAASA,EAAW+xH,oBACvFC,EAAQD,EAAoBA,EAAkBC,MAAQ,EACtD2L,EAAc72G,EAAK83G,iBACnBr0E,EAAOzjC,EAAK63G,cAAgBhB,EAAc3L,EAC1CxnE,EAAOmzE,EACX,GAAIpzE,EAAO,EACP,MAAO,GAEPA,IACAA,EAAOt2D,KAAKk/H,aAAah9H,EAAQo0D,GACjCp0D,EAASA,EAAOM,MAAM8zD,IAEtBC,IACAA,EAAOv2D,KAAKk/H,aAAah9H,EAAQq0D,GACjCr0D,EAASA,EAAOM,MAAM,EAAG+zD,IAGjC,OAAO60E,EAAgBlpI,EAAOoC,OAAO2mI,GAAmB/oI,GAE5D,cAAcsf,GAIV,OAHIA,IAAS,IAAUqR,EAAK/D,OAAO,MAC/B+D,EAAK43G,cAAgBjpH,GAElBqR,EAAK43G,eAEhB,cACA,mBACI,IAAI1+H,EAAa8mB,EAAK9mB,aACtB,OAAK,OAASA,QAAc,IAAWA,OAAa,EAASA,EAAWu/C,eAAgB,IAAUz4B,EAAK/D,OAAO,IACnGg2G,IAEH,OAAS/4H,QAAc,IAAWA,OAAa,EAASA,EAAWy5H,cAAgB,KAIvG,iBAAiBjqH,GACb,IAAI8vH,EAAQrrI,KAAKsuD,mBAEjB,GADAtuD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YACtB,IAAUxE,KAAK8uB,OAAO,KAA0B,QAAc4xC,sBAAsB1gE,MAChF,WAAaub,EAAO0oB,YAAc,IAAM1oB,EAAO2zC,WAAWvwD,QAAU4c,EAAO+vH,qBAC3E/vH,EAAOpB,QAAS,OAFxB,CAMA,IAAIiwH,EAAuBpqI,KAAKiqI,sBAChC,GAAIG,EAAsB,CACtB,IAAIj8E,EAAenuD,KAAKyqI,cACpBzG,EAAY,YAAczoH,EAAO0oB,YAAc1oB,EAAOg1C,aAC1D,GAAI,WAAah1C,EAAO0oB,YAAc1oB,EAAOiG,QAAUjG,EAAOiG,MAAM7iB,OAChE,OAEAqlI,GAAa,WAAazoH,EAAO0oB,YAAc,YAAc1oB,EAAO0oB,YACpE1oB,EAAOpB,QAAS,EAChB6pH,GAAaoG,EAAqBv/E,OAAM,GACxCu/E,EAAqBniF,SAEjB,WAAa1sC,EAAO0oB,WACpB1oB,EAAO2zC,WAAWh4B,QAAQ,CAAC2E,EAAU55B,KACjC,IAAIgiC,EAAa1oB,EAAOgpB,YAAYtiC,GAChC+tD,EAAUz0C,EAAOiG,MAAMvf,GACvB,WAAagiC,EACbkqB,EAAatyB,GAAYm0B,EAClB,WAAa/rB,EACpBkqB,EAAa/mB,OAAOvL,EAAU,EAAGm0B,GAC1B,WAAa/rB,GACpBkqB,EAAa/mB,OAAOvL,EAAU,MAItCsyB,EAAaj3B,QAAQ,CAACnM,EAAM9oB,KACxBksD,EAAalsD,GAASjC,KAAKopD,OAAOnnD,EAAQopI,IAAUl9E,EAAalsD,KAErEsZ,EAAOiG,MAAQ2sC,GAEnB+2E,GAAkB/2E,OAI9B,4BACI,IAAIo0E,EAAiBviI,KAAKiqI,sBAAsBzH,oBAC5C57G,EAAW5mB,KAAK4mB,WACpB,GAAI27G,IAAmB79B,GAAgB1kG,OAAS4mB,EAAW,EAAG,CAC1D,IAAIg7E,EAAa5hG,KAAK2mB,YAAcC,EACpC27G,EAAejsE,MAAQsrC,EAE3B5hG,KAAKkqI,oBAAsB3H,GAE/B,gBACI,IAAIlyG,EACAq5E,EAAc1pG,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC5C,IAAI,IAAUxE,KAAK8uB,OAAO,IAAwB,CAC9C,IAEIy8G,EACAC,EACAC,EAJA1/H,EAAa/L,KAAK4+C,YAClB8sF,EAAe,QAAUr7G,EAAK,OAAStkB,QAAc,IAAWA,OAAa,EAASA,EAAW25C,kBAAkB4Q,YAAS,IAAWjmC,EAAKA,EAAK,EAIjJs7G,GAAmB,EACnBC,EAAU,GACdliC,EAAYxyE,QAAQnM,IAChB,IACI6S,QAASA,GACT7S,EACA8gH,EAAgB5G,GAA4Bl6G,EAAMhf,GAClD+/H,EAAkB,UAAYluG,IAAY2tG,GAAiBM,GAAiB,UAAYL,GAAeE,EAAe,GACtHK,EAAiB,SAAWnuG,GAAWiuG,IAAkBN,GAAiB,UAAYC,GAC1F,IAAKzgH,EAAK61C,UAAY,eAAU2qE,GAAgB,CAC5C,IAAIS,EAAoBP,IAAiBE,GACpCG,IAAmBC,GAAoBC,GACxCN,KAGJI,GAAmBC,KACnBJ,GAAmB,GAEnB5gH,EAAK61C,SACLgrE,EAAQnsI,KAAKsrB,IAEb6gH,EAAQ10G,QAAQiyF,IACZA,EAAG92D,UAAYq5E,IAEnBE,EAAU,IAEd7gH,EAAKsnC,UAAYq5E,EACjBH,EAAgBM,EAChBL,EAAc5tG,EACd6tG,EAAe1gH,EAAK61C,WAExBgrE,EAAQ10G,QAAQiyF,IACZA,EAAG92D,UAAYq5E,IAGvB,OAAOhiC,GAEX,mBAAmBloF,GAEf,GADAxhB,KAAKkrI,WAAa1pH,EAAMld,OAAOymB,GAAQk6G,GAA4Bl6G,EAAM/qB,KAAK4+C,cAAcjgD,OACxF,eAAUqB,KAAKkqI,qBAAsB,CACrClqI,KAAKgrI,4BACL,IAAI9oI,EAASsf,EAEb,GADAxhB,KAAKwqI,UAAYhpH,EACbA,EAAM7iB,OAAQ,CACd,IACIstI,mBAAoBA,GACpBjsI,KAAKmqI,mBAAkB,GACvB7zE,EAAO90C,EAAM,GAAG6wC,UAAY45E,GAE5B11E,KAAMA,GACNv2D,KAAKkqI,oBACThoI,EAASsf,EAAMld,OAAO6kH,IAClB,IAAI+iB,EAAsB/iB,EAAGvoD,UAAYuoD,EAAG92D,YAAciE,GAAQ,IAAMC,EACpE41E,EAA0BhjB,EAAG92D,WAAaiE,EAC1C81E,EAAqBjjB,EAAG92D,UAAYiE,EAAOC,GAAQ21E,EACvD,OAAOC,GAA2BC,IAG1C,OAAOlqI,EAEX,OAAOlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,aAAa+W,GACT,IAAIsX,EAAO7yB,MAEPwhB,MAAOA,GACPjG,GAEA0oB,WAAYA,GACZ1oB,GAEA0jH,YAAaA,GACb1jH,EACJ,GAAI0jH,EAAa,CACb,IAAI/nE,EAAU,YAAcjzB,EAC5Bg7F,EAAcC,GAAarsG,EAAKu2B,OAAQ61E,EAAa/nE,EAAS,CAACnsC,EAAMogH,IAAoB,SAAWpgH,EAAK6S,UAAY7S,EAAK61C,UAAY,UAAY71C,EAAK6S,UAAY/K,EAAK+rB,YAAY0hD,qBAAqBv1E,EAAKhX,OAASo3H,IACvN5vH,EAAO0jH,YAAcA,EAEzB,OAAQh7F,GACJ,IAAK,UACDpR,EAAKu2B,OAAOrpD,QAAQwE,MAAMsuB,EAAKu2B,OAAQ5nC,GACnCy9G,GACApsG,EAAKu2B,OAAOhiB,QAAQ63F,GAExB,MACJ,IAAK,SACDpsG,EAAKu2B,OAAO3pD,KAAK8E,MAAMsuB,EAAKu2B,OAAQ5nC,GAChCy9G,GACApsG,EAAKu2B,OAAOhiB,OAAO,EAAG63F,GAE1B,MACJ,QACIpsG,EAAKqC,SAAS3Z,KAG1B,MAAM6hG,GACF,OAAOA,EAAWp9G,KAAKwqI,WAAaxqI,KAAKopD,OAASppD,KAAKyqI,eAAiBzqI,KAAKopD,QAEjF,mBACI,IAAIiiF,EAAQ,EACZ,GAAIrrI,KAAK8uB,OAAO,IAAwB,CACpC,IAAIq/B,EAAenuD,KAAKyqI,cACpBt8E,GAAgBA,EAAa,KAC7Bk9E,EAAQrrI,KAAKopD,OAAO7mD,QAAQ4rD,EAAa,KAGjD,OAAOk9E,EAAQ,EAAI,EAAIA,GAE3B,kBAAkBr2E,GACd,IAAI3kC,EACAhJ,EAAS,EACTtb,EAAa/L,KAAK+L,aAClBq+H,EAAuBpqI,KAAKiqI,sBAC5BtE,GAAU,IAAU3lI,KAAK8uB,OAAO,IAChCguD,EAAgB4nB,GAAgB1kG,MACpC,GAAIoqI,IAAyBp1E,EACzB,GAAI2wE,GAAW,eAAU3lI,KAAKkqI,qBAAsB,CAChD,IACI+B,mBAAoBA,EACpBtlH,UAAWA,GACX3mB,KAAKmqI,mBAAkB,GACvB3oH,EAAQxhB,KAAKwhB,OAAM,GAEvB,GADA6F,EAASy1D,EAAgBn2D,EAAY3mB,KAAK4mB,WAAa,EACnDpF,EAAM7iB,OAAQ,CACd,IAAI0tI,EAAiB7qH,EAAM,GAAG6wC,UAC9BhrC,GAAU7F,EAAMld,OAAOymB,GAAQA,EAAKsnC,UAAYg6E,EAAiBJ,GAAoBttI,aAGzF0oB,EAAS+iH,EAAqBziC,iBAAmByiC,EAAqBxjH,gBAEnEk2D,GAAiB6oD,GAAW55H,EACnCsb,EAAS,QAAUgJ,EAAKtkB,EAAW25C,kBAAkB4Q,YAAS,IAAWjmC,EAAKA,EAAK,EAC5E,GAAcrwB,OAAS+L,IAC9Bsb,EAAStb,EAAW47F,iBAAmB57F,EAAW6a,YAEtD,OAAOS,GAEX,eACI,OAAI,IAAUrnB,KAAK8uB,OAAO,IACf9uB,KAAK6xD,mBAAkB,GAE3B7xD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,eACI,IAAI4lI,EAAuBpqI,KAAKiqI,sBAC5Bl+H,EAAa/L,KAAK4+C,YAClB18C,EAAS,OAASkoI,QAAwB,IAAWA,OAAuB,EAASA,EAAqB1M,aAAan5H,MAAM6lI,EAAsB5lI,WACvJ,OAAI,IAAUxE,KAAK8uB,OAAO,IACf5sB,EAEJ,OAAS6J,QAAc,IAAWA,OAAa,EAASA,EAAW2xH,aAAan5H,MAAMwH,EAAYvH,YAE7G,eAAeyI,EAAQwlE,GACnB,IAAIpiD,EACJ,QAAUA,EAAKrwB,KAAKiqI,6BAA0B,IAAW55G,GAAcA,EAAGi3G,eAAer6H,EAAQwlE,IAErG,mBACI,IAAI23D,EAAuBpqI,KAAKiqI,sBAC5Bl+H,EAAa/L,KAAK4+C,YAClB18C,EAAS,OAASkoI,QAAwB,IAAWA,OAAuB,EAASA,EAAqBzM,iBAAiBp5H,MAAM6lI,EAAsB5lI,WAC3J,OAAI,IAAUxE,KAAK8uB,OAAO,IACf5sB,EAEJ,OAAS6J,QAAc,IAAWA,OAAa,EAASA,EAAW4xH,iBAAiBp5H,MAAMwH,EAAYvH,YAEjH,sBACI,IAAI4lI,EAAuBpqI,KAAKiqI,sBAC5Bl+H,EAAa/L,KAAK4+C,YACtB5+C,KAAKipD,WAAY,EACbmhF,EACAA,EAAqBlG,oBAAoB3/H,MAAM6lI,EAAsB5lI,WAErE,OAASuH,QAAc,IAAWA,GAAsBA,EAAWm4H,oBAAoB3/H,MAAMwH,EAAYvH,YAGjH,oBAAoBi/H,GAChB,IAAI2G,EAAuBpqI,KAAKiqI,sBAC5Bl+H,EAAa/L,KAAK4+C,YAClB18C,EAAS,OAASkoI,QAAwB,IAAWA,OAAuB,EAASA,EAAqB/C,oBAAoB5D,GAClI,OAAI,IAAUzjI,KAAK8uB,OAAO,IACf5sB,EAEJ,OAAS6J,QAAc,IAAWA,OAAa,EAASA,EAAWs7H,oBAAoB5D,IAElG,uBACI,IAAI6I,EAAetsI,KAAK8uB,OAAO,+BAC3BhG,EAAiB9oB,KAAK8uB,OAAO,4BACjC,GAAI,eAAUw9G,GACV,OAAOA,EAEX,IAAI5O,EAAe19H,KAAK09H,eACxB,OAAO50G,EAAiB,EAAI40G,EAAeA,GAE/C,kBAAkB6O,GACd,IAAIl8G,EAAIub,EACJhlB,EAAW5mB,KAAK4mB,WAChB27G,EAAiBviI,KAAKkqI,oBACtBxkF,EAAkB,QAAUr1B,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAGq1B,kBAClF8mF,GAAmB,OAAS9mF,QAAmB,IAAWA,OAAkB,EAASA,EAAgB/+B,YAAc,EACnH8lH,GAAc,OAAS/mF,QAAmB,IAAWA,OAAkB,EAASA,EAAgB6Q,OAAS,EACzG+tE,EAAkBtkI,KAAKiqI,sBAAsB3F,kBAC7CoI,EAAkBpI,EAAkBtkI,KAAK2sI,uBAAyB,EAClEC,EAAqBtI,EAAkB,EAAItkI,KAAK2sI,uBAChDxsC,GAAwB,QAAUv0D,EAAK5rC,KAAK4+C,mBAAgB,IAAWhT,OAAK,EAASA,EAAGu0D,yBAA2B,EACnH0sC,EAAkBn1F,KAAKpwB,IAAI,EAAGi7G,EAAejsE,KAAOo2E,GACpD/lH,EAAY4lH,EAAeC,EAAkB90F,KAAK05B,MAAMxqD,EAAWimH,EAAkBjmH,EAAW,GAChGg7E,EAAaj7E,EAAYC,EACzBqlH,EAAqB1J,EAAejsE,KAAOsrC,EAC3CkrC,EAAcvK,EAAehsE,KAAO01E,EAAqBW,EAAqBzsC,EAC9E5pC,EAAOg2E,EAAeE,EAAaK,EACnC/G,EAAgBruF,KAAKklB,KAAKh2C,EAAW2vC,EAAO3vC,EAAW,GAC3D,MAAO,CACHD,UAAWA,EACXo/G,cAAeruF,KAAKpwB,IAAI,EAAGy+G,GAC3BkG,mBAAoBv0F,KAAKpwB,IAAI,EAAG2kH,KAGxC,wBAAwBc,GACpB,GAAK/sI,KAAKiqI,sBAAV,CAGA,GAAI,eAAU8C,GAGV,OAFA/sI,KAAK64G,cAAcksB,GAAoBgI,QACvC/sI,KAAKkpD,YAAYzyB,OAGrB,IAAIu2G,EAAoBhtI,KAAKiqI,sBAAsBnN,uBAC/C0C,EAAe9nF,KAAK05B,MAAM47D,EAAoBhtI,KAAK4mB,YACnD5mB,KAAK2mB,cAAgB64G,IACrBx/H,KAAK64G,cAAcksB,GAAoBvF,GACvCx/H,KAAKksD,YAAY,CACbjoB,WAAY,iBAIxB,wBACI,IAAIgpG,EAAmBjtI,KAAKmqI,mBAAkB,IAE1CxjH,UAAWA,EACXo/G,cAAeA,GACf/lI,KAAKmqI,oBACL+C,EAAmBltI,KAAKmtI,kBAAkBxmH,GAC1CzkB,EAAS,KAOb,OANKlC,KAAKqqD,aAAc6iF,GAAqBvmH,IAAcsmH,EAAiBtmH,WAAao/G,IAAkBkH,EAAiBlH,gBACxH7jI,EAAS,CACLykB,UAAWA,EACXo/G,cAAeA,IAGhB7jI,GAEX,kBAAkBykB,GACd,IAAIzkB,GAAS,EAIb,OAHI,GAAalC,OAASA,KAAK61D,oBAAsB,GAAc71D,SAC/DkC,EAASykB,EAAY3mB,KAAK4mB,WAAa5mB,KAAK41D,mBAEzC1zD,GAEX,WAAWkrI,EAAcC,GACrB,IAAIh9G,EAAIub,EACJkxC,EAAgB4nB,GAAgB1kG,MAChCyzD,EAAoBzzD,KAAK4+C,YACzB0uF,EAAgBttI,KAAKutI,wBACrBC,EAAuB,QAAUn9G,EAAK,OAASojC,QAAqB,IAAWA,OAAoB,EAASA,EAAkBsyE,uBAAoB,IAAW11G,EAAKA,EAAK,EACvKo9G,EAAwBztI,KAAK4mB,WAAa4mH,EAC1CT,EAAmB,QAAUnhG,EAAK,OAAS6nB,QAAqB,IAAWA,OAAoB,EAASA,EAAkB9sC,mBAAgB,IAAWilB,EAAKA,EAAK,EAC/J8hG,GAAuB,OAASJ,QAAiB,IAAWA,OAAgB,EAASA,EAAc3mH,aAAeomH,EAClHY,EAAwB,GAAa3tI,OAASA,KAAK41D,kBAAoB63E,EACvEG,EAAgB,YAAc5tI,KAAK8uB,OAAO,uBAC1C++G,GAAsB,OAASP,QAAiB,IAAWA,OAAgB,EAASA,EAAc3mH,WAAaomH,EAC/G7qI,GAAS,EACb,IAAKuxD,GAAqBqpB,GAAiBswD,IAAiBQ,GAAiBP,GAAoBQ,GAAsBH,GAAuBC,GAC1I,OAAOzrI,EAKX,GAHI46E,GAAiB98E,KAAKqqD,aACtBrqD,KAAK6qI,iCAAkC,GAEvC/tD,GAAiBwwD,EAAe,CAChCprI,GAAS,EACTuxD,EAAkB9sC,UAAU2mH,EAAc3mH,WAC1C8sC,EAAkBsyE,cAAcuH,EAAcvH,eAC9C/lI,KAAKuqD,qBAAsB,EAC3BvqD,KAAKyyD,uBAAwB,EAC7B,IAAIq7E,EAAmB9tI,KAAK4qI,kBAC5B5qI,KAAKioD,OAAO/kB,OAAO,KACfljC,KAAKuqD,yBAAsB,EAC3BvqD,KAAKyyD,2BAAwB,IAC9Bj8B,KAAK,KACJ,IAAI6hC,EAAar4D,KAAKw0D,YAAc,GAAKx0D,KAAK2mB,cAAgB3mB,KAAKw0D,YAAc,GAChFs5E,GAAoBz1E,IAAer4D,KAAK+tI,0BACrC/tI,KAAK6qI,kCACL7qI,KAAK6qI,iCAAkC,EACvC7qI,KAAK+qI,aAAa,CACdiD,uBAAuB,OAKvC,OAAO9rI,GAEX,aAAa2vC,GACT,IAAIxhB,EAAIub,EAAIsW,GAER8rF,sBAAuBA,EACvBZ,aAAcA,EACda,oBAAqBA,GACrB,OAASp8F,QAAU,IAAWA,EAASA,EAAS,GAChDirC,EAAgB4nB,GAAgB1kG,MACpC,GAAI88E,GAAiB,QAAcpc,sBAAsB1gE,MAAO,CAC5DA,KAAKgrI,4BACL,IAAIkD,EAAsBluI,KAAKmuI,WAAWf,GAAea,GACrD7hF,EAAkB,QAAU/7B,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,OAAK,EAASA,EAAG+7B,kBAClFd,EAAY8hF,IAAiBhhF,GAAmBpsD,KAAKqqD,WACrD+jF,IAAsBF,GAAuB5iF,GAAa0iF,GAC9D,GAAII,EAAmB,CACnB,IAAIC,IAA8B,QAAUnsF,EAAK,QAAUtW,EAAK5rC,KAAKgwB,cAAc,kBAAe,IAAW4b,OAAK,EAASA,EAAG+sE,oBAAiB,IAAWz2D,OAAK,EAASA,EAAGvjD,QAC3KqB,KAAKksD,YAAY,CACb37C,oBAAoB,EACpBiiD,sBAAsB,EACtBR,uBAAwBq8E,EACxB/C,oBAAoB,OAKpC,iBACI,IAAIj7G,EAAIub,EACJ8xF,EAAe19H,KAAK09H,eACpBl4D,EAAYxlE,KAAKwhB,QAAQ7iB,OACzBsvI,EAAsBvQ,EAAel4D,EACrC8oE,EAAc,QAAU1iG,EAAK,QAAUvb,EAAKrwB,KAAKkqI,2BAAwB,IAAW75G,OAAK,EAASA,EAAGkmC,YAAS,IAAW3qB,EAAKA,EAAK,EACnIw+F,EAAuBpqI,KAAKiqI,sBAC5BsE,EAAU,OAASnE,QAAwB,IAAWA,OAAuB,EAASA,EAAqB5H,oBAAoBjsE,MAClI03E,GAAuBK,EAAcC,KAAavuI,KAAKipD,WAAauc,GAAaxlE,KAAK+qI,aAAa,CAChGqC,cAAc,EACda,oBAAqBA,KAG7B,aACI,IAAI,IAAUjuI,KAAK8uB,OAAO,IAA1B,CAGA,IAAIs7G,EAAuBpqI,KAAKiqI,sBAChCG,GAAwBA,EAAqBf,aAC7C,IAAIt9H,EAAa/L,KAAK4+C,YACtB,OAAO7yC,GAAcA,EAAWs9H,eAEpC,cACI,IAAIe,EAAuBpqI,KAAKiqI,sBAChC,GAAIG,EACA,OAAOA,EAAqBnH,YAAY1+H,MAAM6lI,EAAsB5lI,WAExE,IAAIuH,EAAa/L,KAAK4+C,YACtB,OAAO7yC,GAAcA,EAAWk3H,YAAY1+H,MAAMwH,EAAYvH,YAElE,eACI,IAAI4lI,EAAuBpqI,KAAKiqI,sBAChC,GAAIG,EACA,OAAOA,EAAqBnM,aAAa15H,MAAM6lI,EAAsB5lI,WAEzE,IAAIuH,EAAa/L,KAAK4+C,YACtB,OAAO7yC,GAAcA,EAAWkyH,aAAa15H,MAAMwH,EAAYvH,YAEnE,mBACI,IAAI4lI,EAAuBpqI,KAAKiqI,sBAChC,GAAIG,EACA,OAAOA,EAAqBxM,iBAAiBr5H,MAAM6lI,EAAsB5lI,WAE7E,IAAIuH,EAAa/L,KAAK4+C,YACtB,OAAO7yC,GAAcA,EAAW6xH,iBAAiBr5H,MAAMwH,EAAYvH,YAEvE,QAAQmhB,GACJ,IAAI5Z,EAAa/L,KAAK4+C,YAItB,OAHI7yC,GAAc4Z,GAAWA,EAAQsiC,MAAQ,GAAajoD,OACtD+L,EAAWotD,yBAERn5D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,UACI,IAAI4lI,EAAuBpqI,KAAKiqI,sBAChCG,GAAwBA,EAAqBj2E,UAC7Cn0D,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,eACI,IAAI6rB,EACJ,OAAO,QAAUA,EAAKrwB,KAAKkqI,2BAAwB,IAAW75G,OAAK,EAASA,EAAGimC,MAEnF,kBACI,IAAIisE,EAAiBviI,KAAKkqI,oBAC1B,OAAO3H,GAAkBA,EAAejsE,KAAOisE,EAAehsE,MAElE,oBACI,IAAI6zE,EAAuBpqI,KAAKiqI,sBAChC,GAAIG,EACA,OAAOA,EAAqBtM,kBAAkBv5H,MAAM6lI,EAAsB5lI,WAE9E,IAAIuH,EAAa/L,KAAK4+C,YACtB,OAAO,OAAS7yC,QAAc,IAAWA,OAAa,EAASA,EAAW+xH,kBAAkBv5H,MAAMwH,EAAYvH,YAElH,UAAUmiB,GACN,IAAI0J,EACAysD,EAAgB4nB,GAAgB1kG,MAChCoqI,EAAuBpqI,KAAKiqI,sBAChC,OAAI,IAAUjqI,KAAK8uB,OAAO,KAA0BguD,GAAiBstD,QAC7D,IAAWzjH,EACJ,QAAU0J,EAAKrwB,KAAK8uB,OAAOi2G,WAAwB,IAAW10G,EAAKA,EAAK,EAGhFrwB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,aAAayqB,GACTjvB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1B,IACIglD,eAAgBA,GAChBv6B,EACJ,IAAI,IAAUjvB,KAAK8uB,OAAO,KAA0B41E,GAAgB1kG,OAASwpD,EAAgB,CACzF,IACI4M,WAAYA,EACZzvC,UAAWA,GACX6iC,EACAv6B,EAAEsjC,gBAAkB6D,GAAczvC,GAClC3mB,KAAK+tI,wBAAwB/tI,KAAK4+C,YAAYj4B,eAI1D,sBAAsBjU,GAClB,IAAIxQ,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIvC,OAHI,IAAUxE,KAAK8uB,OAAO,KAA0B41E,GAAgB1kG,QAChEkC,EAASlC,KAAK0S,MAEXxQ,GAEX,UACI,OAAO,IAAUlC,KAAK8uB,OAAO,KAA0B9uB,KAAKwhB,OAAM,GAAM7iB,OAASqB,KAAKk1B,SAASl1B,KAAMwE,YAEzG,mBACI,IAAItC,GAAS,EACb,IAAI,IAAUlC,KAAK8uB,OAAO,KAA0B41E,GAAgB1kG,MAAO,CACvE,IACI2mB,UAAWA,EACXo/G,cAAeA,GACf/lI,KAAKmqI,mBAAkB,GACvB31E,EAAYx0D,KAAKw0D,YACrBtyD,EAASykB,EAAYo/G,GAAiBvxE,OAEtCtyD,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAEvC,OAAOtC,GAEX,QACIlC,KAAKkrI,WAAa,EAClBlrI,KAAKwqI,UAAY,KACjBxqI,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,eACI,IAAI6rB,EACJ,QAAUA,EAAKrwB,KAAK4+C,mBAAgB,IAAWvuB,GAAcA,EAAG01G,cAAc,GAC9E/lI,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAKlC,OAFA,QAAcgqI,YAAYxgG,EAAS,yBACnC,QAAcwgG,YAAYxgG,EAAS,wBAC5BA,EA1sBL,GA4sBNumC,SAAU,CACN,0BAA0B+3B,GACtB,OAAO,eAAKtsG,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAAYgyB,KAAKi4G,IACnD,IAAIC,EAAmB,GAAcpiC,KAAmB,IAAUA,EAAex9E,OAAO,IACxF,IAAK2/G,GAAyBC,EAAkB,CAC5C,IAAIjvE,EAAa6sC,EAAersC,gBAC5BR,GACA6sC,EAAev6B,uBAK/B,mBACI,QAAS/xE,KAAK2uI,gBAElB,SACI,IAGIzsI,GAFAgzB,SAAUA,GACVl1B,KAEJ,GAAI,GAAcA,OAAS,QAAc0gE,sBAAsB1gE,MAAO,CAClEy7B,aAAaz7B,KAAK2uI,gBAClB3uI,KAAK2uI,eAAiB,KACtB,IAAIz9D,EAAO,IAAI9tE,KAAOpD,KAAK4uI,UACvBrF,EAAgBvpI,KAAK8uB,OAAO,2BAC5B9uB,KAAK4uI,WAAa19D,EAAOq4D,GACzBrnI,EAAS,IAAI,OACblC,KAAK2uI,eAAiBnzG,WAAW,KAC7Bx7B,KAAK2uI,eAAiB,KACtBz5G,EAAS3wB,MAAMvE,MAAMw2B,KAAKt0B,EAAOg7B,SAAS+L,KAAK/mC,EAAO2gC,QACtD7iC,KAAK4uI,UAAY,IAAIxrI,MACtBmmI,GACHvpI,KAAK4uI,UAAY,IAAIxrI,OAErBlB,EAASgzB,EAAS3wB,MAAMvE,MACpBA,KAAKgoC,gBAAgB8H,aACrB9vC,KAAK4uI,UAAY,IAAIxrI,YAI7BlB,EAASgzB,EAAS3wB,MAAMvE,MAE5B,OAAOkC,GAEX,UACIlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1Bi3B,aAAaz7B,KAAK2uI,mBAI9B31G,MAAO,CACHtN,SAAUu6G,MCx6CtB,GAAS7zF,eAAe,mBAAoBk3F,IAC5C,GAAkBn8G,OAAOm8G,GAAuBhwG,UAAUm6B,mB,iBCKtDo7E,GAAwB,GACjBC,GAA8B,CAACjgH,EAAUkgH,KAChD,IAIIC,EAJAC,EAAU,eAAE,mBAEZ1rH,IAAK2rH,GACLrgH,EAASxH,SAEb,GAAI,eAAU0nH,GAAgB,CAC1B,GAAIA,EAAgBG,EAChB,OAAOA,EAAgBH,EAEvBC,EAAe,eAAeC,GAAWF,EAAgBE,EAAQx8D,gBAElE,CACH,IAAI08D,EAAYD,EAAgBD,EAAQx8D,YACpC28D,EAAe,eAAeH,GAAWE,EAAY,eAAetgH,GACxEmgH,EAAet3F,KAAKpwB,IAAI6nH,EAAWC,GAEvC,OAAOJ,EAAeH,I,0BCXtBQ,GAA0C,oCAC1CC,GAAmB,aACvB,MAAM,WAAgB,QAClB,qBACI,OAAO,OAAAniH,EAAA,MAAO0a,MAAM29C,qBAAsB,CACtC+pD,YAAa,aACb79H,SAAU,KACV89H,aAAc,SAGtB,mBACIxvI,KAAK4kF,aAAe5kF,KAAK8uB,OAAO,gBAC3B9uB,KAAK4kF,cACN/8C,MAAMwgD,mBAGd,qBACIroF,KAAKyvI,4BACL5nG,MAAMuvC,qBACN,IAAIuN,EAAO3kF,KAAK4kF,aAAa4F,aAAaxqF,KAAK8uB,OAAO,eACtD61D,GAAQ3kF,KAAKgrF,aAAahrF,KAAKsuF,eAAe3J,IAC9C3kF,KAAK0vI,mBAET,mBACI1vI,KAAK2vI,kBAAoB,eAAE,SAASt5G,SAASr2B,KAAK0nF,kBAAkBh7D,SAAS2iH,IAEjF,qBACI,OAAO,OAAAliH,EAAA,OAAO,EAAM0a,MAAM+nG,qBAAsB,CAC5ChX,aAAc54H,KAAK6vI,gCAAgC37G,KAAKl0B,MACxDsY,SAAU,CACNi6F,SAAS,KAIrB,gCAAgC5xC,GAC5B3gE,KAAK8vI,eAAenvE,GAExB,iBAAiB1xC,GACb4Y,MAAMkoG,iBAAiB9gH,GACvBjvB,KAAKgwI,mBAAkB,EAAO/gH,EAAEyM,eAEpC,oBACI,MAAO,eAAiB17B,KAAK8uB,OAAO,eAExC,mBAAmBG,GACf,IAAIghH,EAAmBjwI,KAAK8uB,OAAO,gBACnCmhH,EAAiBhhH,GACjB4Y,MAAMqoG,mBAAmBjhH,GACzBjvB,KAAKgwI,mBAAkB,EAAM/gH,EAAEyM,eAEnC,aAAay0G,GACTnwI,KAAK+yB,SAASnU,UAAU,CACpBslE,SAAU,eAAiBisD,GAC3BC,QAASpwI,OAEb6nC,MAAMwoG,aAAaF,GACnBnwI,KAAK+yB,SAASlU,QAAQ,CAClBqlE,SAAU,eAAiBisD,GAC3BC,QAASpwI,OAGjB,aAAamwI,GACTnwI,KAAK+yB,SAASvU,SAAS,CACnBrE,QAAQ,EACR+pE,SAAU,eAAiBisD,GAC3BC,QAASpwI,OAEb6nC,MAAMyoG,aAAaH,GACnBnwI,KAAK+yB,SAASxU,SAAS,CACnB2lE,SAAU,eAAiBisD,GAC3BC,QAASpwI,OAGjB,eAAe2gE,GACX,GAAK3gE,KAAK2vI,kBAAV,CAGA,IAAIY,EAAWvwI,KAAK0nF,iBAAiB91D,SAAS,IAAIvG,OAAOikH,KAAmB//G,GAAG,GAC3E4gH,EAAYnwI,KAAK8uB,OAAO,YAAY1H,GAAGmG,KAAK,qCAC5CjV,EAAW,CACX8O,GAAImpH,EACJh+B,SAAS,GAETi+B,EAAkB7vE,EAAIroD,SACtBm4H,EAAYD,EAAgB3+B,EAAEpsF,SAC9BirH,EAAYF,EAAgB7+B,EAAElsF,SAC9BkrH,EAAaR,EAAU9oH,SACvBupH,EAAal5F,KAAKgoB,MAAMixE,EAAWvtH,MACnC+rH,EAAYz3F,KAAKgoB,MAAMixE,EAAWptH,KAClCstH,EAAY,eAASV,GACrBW,EAAa,eAAUX,GACvBY,EAAe,eAASR,GACxBS,EAAgB,eAAUT,GAC9BvwI,KAAK2vI,kBAAkBl+G,IAAI,UAAW,SACtC,eAASzxB,KAAK2vI,kBAAmB3vI,KAAKixI,oBAAsBJ,EAAYE,EAAeF,EAAYE,EAAe,GAClH,eAAU/wI,KAAK2vI,kBAAmB3vI,KAAKixI,oBAAsB,EAAIH,EAAaE,EAAgBF,EAAaE,GACvGhxI,KAAKixI,oBACDR,EAAYtB,EACRz3F,KAAKgoB,MAAMgxE,KAAeE,GAC1Bt4H,EAAS+O,OAAS,SAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,aAE5B7O,EAAS+O,OAAS,SAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,cAGhC,eAAUnnB,KAAK2vI,kBAAmB,GAC9Bj4F,KAAKgoB,MAAMgxE,KAAeE,GAC1Bt4H,EAAS+O,OAAS,MAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,gBAE5B7O,EAAS+O,OAAS,MAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,iBAG7BupH,EAAYE,EACfl5F,KAAKgoB,MAAM+wE,KAAetB,GAC1B72H,EAAS+O,OAAS,SAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,aAE5B7O,EAAS+O,OAAS,SAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,eAEzBuwB,KAAKgoB,MAAM+wE,KAAetB,GACjC72H,EAAS+O,OAAS,QAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,cAE5B7O,EAAS+O,OAAS,QAClB/O,EAASyO,GAAKzO,EAAS6O,GAAK,gBAEhC,QAAkBsrF,MAAMzyG,KAAK2vI,kBAAmBr3H,IAEpD,0BACI,OAAOtY,KAAK8uB,OAAO,YAEvB,mBACI,OAAO9uB,KAAKkxI,SAASpiH,OAAO,WAEhC,oBACI,OAAO9uB,KAAKkxI,SAAS9iG,YAGd,UC1HX+iG,GAAgB,UAChBC,GAAyBD,GAAgB,YACzCE,GAA2BF,GAAgB,cAC3CG,GAAqBH,GAAgB,QACrCI,GAAgCJ,GAAgB,mBAChDK,GAA8BF,GAAqB,YACnDG,GAAwB,kBACxBC,GAAyCD,GAAwB,oBACjE,GAA0C,oCAC1C,GAAmB,aACnBE,GAA0B,oBAC1BC,GAAuB,iBACvBC,GAAwB,kBACxBC,GAAyBX,GAAgB,iBACzCY,GAAqCZ,GAAgB,oBACrDa,GAAyCF,GAAyB,mBAClE,GAAW,KACX,GAAa,OACb,GAAa,OACb,GAAc,QACdG,GAAyB,cACzBC,GAAqB,WACrBC,GAAqB,WACrBC,GAAgB,CAChBr/H,KAAM,GACND,KAAM,KAENu/H,GAAU,CAAC,mBAAoB,iBAAkB,kBAAmB,kBAAmB,oBAAqB,cAAe,qBAAsB,kBACrJ,MAAM,WAAa,QACf,qBACI,OAAO,OAAAllH,EAAA,MAAO0a,MAAM29C,qBAAsB,CACtC+pD,YAAa,aACb+C,iBAAkB,OAClBC,qBAAsB,CAClB5+H,KAAM,UACNoR,MAAO,CACHhS,KAAM,GACND,KAAM,MAGd0/H,yBAAyB,EACzBC,iBAAkB,KAClBC,eAAgB,KAChBC,gBAAiB,KACjBC,gBAAiB,KACjBC,mBAAmB,IAG3B,yBACIhrG,MAAMirG,yBACN,OAAA3lH,EAAA,MAAOntB,KAAKu4G,oBAAqB,CAC7Bh7F,WAAW,EACXw1H,cAAc,IAGtB,gBACI,IAAIC,EAAmBnrG,MAAMorG,gBACzBC,EAAkBlzI,KAAKmzI,uBAC3B,OAAOH,EAAiBtxG,IAAIwxG,GAEhC,uBACI,IAAI/nG,EAAW,GACX6pD,EAAe,IAAI3pE,OAAOimH,IAC1B8B,EAAiBpzI,KAAKqzI,UAAU10I,QAAUqB,KAAKqzI,UAAU,GAI7D,OAHID,GAAkBA,EAAelpD,mBACjC/+C,EAAWioG,EAAelpD,iBAAiB38D,KAAKynE,IAE7C7pD,EAEX,eACI,OAAOnrC,KAAK6uB,WAEhB,oBACI,MAAO,eAAiB7uB,KAAK8uB,OAAO,eAExC,WAAWrJ,GACP,IAGIy4D,EACAo1D,EACAC,EACAC,EANA99C,EAAS11F,KAAKyzI,qBACdC,EAAmB1zI,KAAKixI,oBACxB/6C,EAAcl2F,KAAKm2F,gBAAe,GAKtC,OAAQ1wE,GACJ,KAAK,GACD6tH,EAAYI,EAAmBzB,GAAyBjyI,KAAK2zI,6BAA6BxB,IAC1Fj0D,EAAWw1D,EAAmBx9C,EAAcR,EAC5C69C,EAAmBvzI,KAAK4zI,6BAA6BN,EAAWp1D,GAChEs1D,EAAaD,IACb,MACJ,KAAK,GACDD,EAAYI,EAAmBzB,GAAyBjyI,KAAK2zI,6BAA6BzB,IAC1Fh0D,EAAWw1D,EAAmBx9C,EAAcR,EAC5C69C,EAAmBvzI,KAAK4zI,6BAA6BN,EAAWp1D,GAChEs1D,EAAaD,IACb,MACJ,KAAK,GACDD,EAAYI,EAAmB1zI,KAAK2zI,6BAA6BzB,IAAsBD,GACvF/zD,EAAWw1D,EAAmBh+C,EAASQ,EACvCq9C,EAAmBvzI,KAAK4zI,6BAA6BN,EAAWp1D,GAChEs1D,EAAaD,IACb,MACJ,KAAK,GACDD,EAAYI,EAAmB1zI,KAAK2zI,6BAA6BxB,IAAsBF,GACvF/zD,EAAWw1D,EAAmBh+C,EAASQ,EACvCq9C,EAAmBvzI,KAAK4zI,6BAA6BN,EAAWp1D,GAChEs1D,EAAaD,IACb,MACJ,QACI,OAAO1rG,MAAMyuD,WAAW7wE,GAE5B+tH,GAAc,IAAMA,EAAW70I,QAC/BqB,KAAK8uB,OAAO,iBAAkB,eAAiB0kH,IAGvD,6BAA6BF,GACzB,IAAIO,EAAeP,EAInB,OAHItzI,KAAK8uB,OAAO,gBACZ+kH,EAAeP,IAAcnB,GAAqBD,GAAqBC,IAEpE0B,EAEX,6BAA6BP,EAAWp1D,GACpC,IAAIhyD,EAAS,OACb,OAAQonH,GACJ,KAAKrB,GACI/zD,EAASvtD,SAASghH,MACnBzlH,EAASlsB,KAAK8zI,aAAa5/G,KAAKl0B,KAAMk+E,IAE1C,MACJ,KAAKg0D,GACDhmH,EAASlsB,KAAKm3F,UAAUjjE,KAAKl0B,KAAMk+E,GACnC,MACJ,KAAKi0D,GACDjmH,EAASlsB,KAAK+2F,UAAU7iE,KAAKl0B,KAAMk+E,GAE3C,OAAOhyD,EAEX,SACI2b,MAAMsvC,SACNn3E,KAAK8uB,OAAO,kCAAoC2M,aAAaz7B,KAAK+zI,mBAEtE,mBAAmBliI,GACXA,IACK7R,KAAKg0I,iBACNh0I,KAAKi0I,yBAETj0I,KAAKk0I,qBAGb,uBACI,OAAOl0I,KAAK8uB,OAAO,sBAAwB,eAAiB9uB,KAAK8uB,OAAO,eAE5E,yBACI,IAAIqlH,EAAan0I,KAAK6uB,WAAWtB,KAAK,MAAMO,QAAQ8D,SAAS,MAAMA,SAAS,IAAIvG,OAAOimH,KACvFtxI,KAAKg0I,gBAAkBh0I,KAAKo0I,sBAAsBD,GAAY,GAElE,oBACI,GAAKn0I,KAAKq0I,uBAAV,CAGA,IAAIC,EAAiB,eAAct0I,KAAK6uB,YACxC7uB,KAAKu0I,oBAAoBv0I,KAAKg0I,gBAAkBM,IAEpD,QACIzsG,MAAM2hD,QACNxpF,KAAKqzI,UAAY,GAErB,eACIrzI,KAAK+yB,SAAW,GAChB,eAAKs/G,GAAS,CAACpwI,EAAOiqB,KAClBlsB,KAAK+yB,SAAS7G,GAAUlsB,KAAKkuB,sBAAsBhC,KAG3D,cACIlsB,KAAKw0I,gBAAkB,KACvBx0I,KAAK6uB,WAAWnC,SAASykH,IACzBtpG,MAAMqkD,cACNlsF,KAAKy0I,mBAAmBz0I,KAAK6uB,YAC7B7uB,KAAKwxB,QAAQ,OAAQ,WAEzB,UACIqW,MAAM6sG,UACN10I,KAAK20I,kBAET,yBAMI,OALA30I,KAAK40I,WAAa,IAAI,QAAO,eAAE,SAASloH,SAASqlH,IAAqC,CAClFr+H,KAAM,OACN7I,oBAAoB,EACpB+I,QAAS5T,KAAK60I,gBAAgB3gH,KAAKl0B,QAEhCA,KAAK40I,WAAW/lH,WAE3B,gBAAgBs4B,GACR,eAAcA,KACdA,GAASnnD,KAAKkxI,SAASpiH,OAAO,YAElC9uB,KAAKkxI,SAASpiH,OAAO,UAAWq4B,GAChCnnD,KAAK80I,4BAA4B3tF,GAErC,4BAA4BA,GACxBnnD,KAAK40I,YAAc50I,KAAK40I,WAAW/lH,WAAWyH,YAAYu7G,GAAuB1qF,GAErF,oBAAoBA,GAChB,IAAI4tF,EAAsB/0I,KAAK6uB,WAAWtB,KAAK,IAAIlC,OAAOgmH,KACtD2D,EAAoBh1I,KAAK6uB,WAAWtB,KAAK,IAAIlC,OAAOymH,KACpD3qF,EACAnnD,KAAKi1I,uBAELj1I,KAAKk1I,WAAal1I,KAAKk1I,UAAUl8C,cACjCh5F,KAAKkxI,UAAYlxI,KAAK60I,gBAAgB1tF,IAE1C4tF,EAAoBnyE,QAAQzb,GAC5B6tF,EAAkBpyE,OAAOzb,GAE7B,oBACSnnD,KAAKm1I,sBAGVn1I,KAAKu0I,qBAAoB,GACzBv0I,KAAKm1I,oBAAoBnyG,SACzBhjC,KAAKm1I,oBAAsB,KAC3Bn1I,KAAKk1I,UAAY,KACjBl1I,KAAK40I,WAAa,KAClB50I,KAAKkxI,SAAW,MAEpB,0BAA0BjiH,GACtBjvB,KAAK+yB,SAAS6e,YAAY3iB,GACrBA,EAAE01D,KAAK/yD,SAASjzB,QACjBqB,KAAK60I,iBAAgB,GAG7B,6BACI,IAAIO,EAAMp1I,KAAK8uB,OAAO,cAClBxW,EAAW88H,EAAM,QAAU,OAC/B,MAAO,CACHC,iCAAiC,EACjCj3H,UAAW,IAAM0wH,GAA4B9uI,KAAK6uB,YAClDjR,gBAAgB,EAChBqB,SAAS,EACT1B,WAAW,EACXY,oBAAoB,EACpBI,SAAU,KACNve,KAAK80I,6BAA4B,IAErC7nI,OAAQ,OACRiR,mBAAoB+Q,IAAM,eAAEA,EAAEvsB,QAAQgyB,QAAQ,IAAIrJ,OAAO0mH,KAAqCpzI,OAC9F2Z,SAAU,CACN4O,UAAW,UACXH,GAAI,UAAYzO,EAChB6O,GAAI,OAAS7O,EACb8O,GAAIpnB,KAAK40I,WAAW/lH,aAIhC,sBACI,IAAIymH,EAAc,GASlB,OARA,eAAK,CAAC,aAAc,QAAS,YAAa,qBAAsB,YAAa,aAAc,WAAY,cAAe,cAAe,oBAAqB,OAAQ,oBAAqB,YAAa,QAAS,eAAgB,eAAgB,gBAAiB,WAAY,WAAY,CAAC39G,EAAG7I,KACtRwmH,EAAYxmH,GAAU9uB,KAAK8uB,OAAOA,KAEtC,eAAK,CAAC,oBAAqB,qBAAsB,kBAAmB,CAAC6I,EAAGjE,KACpE4hH,EAAY5hH,GAAczE,IACtBjvB,KAAK+yB,SAASW,GAAYzE,MAG3B,OAAA9B,EAAA,MAAOmoH,EAAa,CACvBvpI,WAAY/L,KAAKq1D,gBACjBowB,mBAAoBzlF,KAAK8uB,OAAO,aAChC8iB,YAAa5xC,KAAKu1I,0BAA0BrhH,KAAKl0B,MACjDmmF,eAAgBl3D,IACZjvB,KAAKkxI,SAAS1oD,UACdxoF,KAAK+yB,SAAS2/G,eAAezjH,IAEjCm3D,gBAAiBn3D,IACbjvB,KAAKkxI,SAAS1oD,UACdxoF,KAAK+yB,SAAS6/G,gBAAgB3jH,IAElC42D,sBAAsB,EACtB9sE,cAAe/Y,KAAK8uB,OAAO,iBAC3B03D,YAAa,UAGrB,kBACI,GAAKxmF,KAAKq0I,uBAAV,CAGAr0I,KAAKm1I,oBAAsB,eAAE,SAASzoH,SAASolH,IAC/C,IAAI0D,EAAax1I,KAAKy1I,yBACtBz1I,KAAKk1I,UAAYl1I,KAAK8zB,iBAAiB,eAAE,SAAU,GAAU9zB,KAAK01I,uBAClE11I,KAAKkxI,SAAWlxI,KAAK8zB,iBAAiB,eAAE,SAAU,QAAS9zB,KAAK21I,8BAChE31I,KAAKkxI,SAAS9iG,WAAWrc,OAAO/xB,KAAKk1I,UAAUrmH,YAAYnC,SAASolH,IAAwBplH,SAAS1sB,KAAK8uB,OAAO,aACjH9uB,KAAKkxI,SAASjnD,WAAWv9D,SAASslH,IAClChyI,KAAKm1I,oBAAoBpjH,OAAOyjH,GAChCx1I,KAAKm1I,oBAAoBpjH,OAAO/xB,KAAKkxI,SAASriH,YAC9C7uB,KAAK6uB,WAAWkD,OAAO/xB,KAAKm1I,qBAC5Bn1I,KAAKi0I,yBACLj0I,KAAKk0I,qBAET,UAAU0B,GACN,IAAI7wH,EAAQ/kB,KAAK8uB,OAAO,wBAAwB/J,MAChD,OAAK,eAAUA,GAGJ,eAASA,GAASA,EAAM6wH,GAAa7wH,EAFrCqtH,GAAcwD,GAK7B,iBAAiB3mH,GACb,OAAO4Y,MAAMguG,iBAAiB5mH,IAAKjvB,KAAKw0I,iBAE5C,mBACI,IAAIvqD,EAAW,eAAE,SAEjB,OADAA,EAAS5zD,SAASr2B,KAAK6uB,YAAYnC,SAAS1sB,KAAKixI,oBAAsBI,GAA2BD,IAC3FvpG,MAAMiuG,iBAAiB7rD,GAElC,oBAAoBtF,EAAMoxD,GACtB,IAAI3F,EAAUpwI,KAAKg2I,eAAerxD,EAAMoxD,GAGxC,OAFA/1I,KAAKqzI,UAAU5zI,KAAK2wI,GACpBpwI,KAAKi2I,qBAAqBF,GACnB3F,EAEX,wBACI,OAAOvoG,MAAMquG,wBAAwB7qH,OAAOrrB,KAAKw0I,iBAErD,eAAe7vD,EAAMwrD,GACjB,IAAIgG,EAAoB,eAAE,SAASzpH,SAAS+kH,IAAuBp7G,SAAS85G,GACxE3uH,EAAQxhB,KAAKsuF,eAAe3J,GAC5ByxD,EAAUp2I,KAAK8zB,iBAAiBqiH,EAAmB,GAAS,OAAAhpH,EAAA,MAAOntB,KAAKq2I,qBAAsB,CAC9FzxD,aAAc5kF,KAAK4kF,aACnB0xD,WAAY3xD,EAAKO,eAAen3B,IAChCvsC,MAAOA,EACPguH,aAAcxvI,KAAKu2I,eAAeriH,KAAKl0B,MACvCsY,SAAUtY,KAAKw2I,mBAAmBrG,MAGtC,OADAnwI,KAAKy2I,uBAAuBtG,EAAWiG,GAChCA,EAEX,qBACI,IAAIM,EAAiB,eAAE,SACnBhD,EAAmB1zI,KAAKixI,oBAC5B,MAAO,CACHvzC,aAAc19F,KAAK8uB,OAAO,gBAC1BpsB,OAAQg0I,EACRnH,YAAavvI,KAAK8uB,OAAO,eACzBuwD,cAAer/E,KAAK8uB,OAAO,iBAC3Brb,SAAUzT,KAAK8uB,OAAO,YACtB/V,cAAe/Y,KAAK8uB,OAAO,iBAC3B1hB,kBAAmBpN,KAAK8uB,OAAO,qBAC/BjkB,mBAAoB7K,KAAK8uB,OAAO,sBAChC9R,kBAAmBhd,KAAK8uB,OAAO,qBAC/BvR,UAAWvd,KAAK8uB,OAAO,aACvB6nH,gBAAiB32I,KAAK8uB,OAAO,mBAC7BpV,YAAa1Z,KAAK8uB,OAAO,eACzB8nH,aAAc52I,KAAK8uB,OAAO,gBAC1B+nH,aAAc72I,KAAK8uB,OAAO,gBAC1BgoH,UAAW92I,KAAK8uB,OAAO,aACvBioH,qBAAsB9nH,IACbA,EAAEgC,UAAUnC,OAAO,YAGxB9uB,KAAK8uB,OAAO,iBAAkBG,EAAEgC,UAAUnC,OAAO,oBAErD7e,mBAAoBjQ,KAAKg3I,qCAAqC9iH,KAAKl0B,MACnE4xC,YAAa5xC,KAAKi3I,8BAA8B/iH,KAAKl0B,MACrDo1E,eAAgBp1E,KAAKk3I,iCAAiChjH,KAAKl0B,MAC3Dm3I,gBAAiBzD,EAAmB,KAAO1zI,KAAKo3I,mBAAmBljH,KAAKl0B,KAAMmyI,IAC9EkF,eAAgB3D,EAAmB,KAAO1zI,KAAKo3I,mBAAmBljH,KAAKl0B,KAAMkyI,IAC7EoF,mBAAoBt3I,KAAKo3I,mBAAmBljH,KAAKl0B,KAAM0zI,EAAmBvB,GAAqB,MAC/FoF,oBAAqB7D,EAAmB1zI,KAAKo3I,mBAAmBljH,KAAKl0B,KAAMkyI,IAAsB,MAGzG,2BACI,IAAKlyI,KAAKw3I,mBACN,MAAO,UAEX,IAAI17E,EAAc97D,KAAK8uB,OAAO,wBAC9B,OAAO,eAASgtC,GAAeA,EAAYnoD,KAAOmoD,EAEtD,mBAAmB92C,GACf,IAAI0wE,EAAS11F,KAAKyzI,qBACdjuE,EAAYkwB,EAAO/2F,OACnB84I,EAAe/hD,EAAOpxF,OAAO,IAAI+mB,OAAOmmH,KAA8BjiH,GAAG,GACzEi5C,EAAYktB,EAAOzzF,MAAMw1I,GAC7Bz3I,KAAKswI,aAAatwI,KAAKw0I,iBACvBhsE,GAAaxjD,IAAcmtH,IAAsB,EAAI,EACjD3pE,GAAahD,EACbgD,EAAY,EACLA,EAAY,IACnBA,EAAYhD,EAAY,GAE5B,IAAIkyE,EAAWhiD,EAAOnmE,GAAGi5C,GACzBxoE,KAAK8uB,OAAO,iBAAkB,eAAiB4oH,IAEnD,qCAAqC1pH,GACjC,IAAI+kH,EAAe/kH,EAAK2pH,WAAWh5I,QAAUqvB,EAAK2pH,WAAW,GACzDvH,EAAU,GAAQ7oE,YAAYv5C,EAAKf,SACnChd,EAAqBjQ,KAAK+yB,SAAS9iB,mBACvCA,EAAmB+d,GACnB+kH,GAAgB/yI,KAAK43I,0BAA0B7E,EAAa,GAAI3C,GAChEpwI,KAAK63I,sBACL73I,KAAKyzB,8BAA8B,eAAgBs/G,GAEvD,0BAA0BhoH,EAAM+sH,GAC5B,IAAIC,GAAoBvzI,UAAU7F,OAClC,eAAKqB,KAAKqzI,UAAW,CAACpxI,EAAOmuI,KACzB,IAAIG,EAAWH,EAAQ1oD,iBACnBswD,GAAezH,EAAS37G,GAAGkjH,GAAiBA,EAAcpwD,kBAC1DuwD,EAAgB1H,EAAShjH,KAAK,IAAIlC,OAAOrrB,KAAKk4I,uBAClD,GAAIF,GAAeC,EAAct5I,QAAUo5I,EAAkB,CACzDE,EAAc9oH,YAAYnvB,KAAKk4I,sBAC/B,IAAIC,EAAmBn4I,KAAKmkF,aAAa8zD,GACrCE,IACAA,EAAiB76D,UAAW,GAEhC8yD,EAAQgI,yBAIpB,sBACI,IAAIC,EAAoBr4I,KAAK6uB,WAAWtB,KAAK,IAAIlC,OAAOkmH,KAAgCzjH,QAAQ8D,WAAWA,WAAWttB,OAAO,IAAI+mB,OAAOrrB,KAAKk4I,uBAC7I,GAAIG,EAAkB15I,OAAQ,CAC1B,IAAI25I,EAAuBt4I,KAAKmkF,aAAak0D,GAC7CC,EAAqBh7D,UAAW,EAChC+6D,EAAkBlpH,YAAYnvB,KAAKk4I,uBAG3C,8BAA8BjpH,GAC1BjvB,KAAK+yB,SAAS6e,YAAY3iB,GAE9B,iCAAiCA,GAC7BjvB,KAAK+yB,SAASqiD,eAAenmD,GAEjC,uBAAuBkhH,EAAWC,GAC9B,IAAImI,EAAyBnI,EAAQoI,oBACjCC,EAAWF,EAAuBhrH,KAAK,IAAIlC,OAAO,KAClDqtH,EAAwB,eAAaC,GAAA,KAAe34I,KAAKs0B,KAAO,YACpE87G,EAAQthH,OAAO,CACXlQ,UAAW5e,KAAK44I,yBAAyB1kH,KAAKl0B,KAAMmwI,EAAWC,GAC/DvxH,QAAS7e,KAAK64I,uBAAuB3kH,KAAKl0B,KAAMmwI,EAAWC,GAC3D5xH,SAAUxe,KAAK84I,wBAAwB5kH,KAAKl0B,KAAMmwI,EAAWC,GAC7D7xH,SAAUve,KAAK+4I,wBAAwB7kH,KAAKl0B,KAAMmwI,EAAWC,KAEjE,eAAKqI,EAAU,CAACx2I,EAAOmuI,KACnB,OAAa5hH,IAAI4hH,EAASsI,GAC1B,OAAapqH,GAAG8hH,EAASsI,EAAuB,KAAM14I,KAAKg5I,0BAA0B9kH,KAAKl0B,KAAMmwI,MAGxG,yBAAyBA,EAAWC,GAChC,IAAI6I,EAAU9I,EAAUv+G,SAAS,IAAIvG,OAAOqmH,KAC5C1xI,KAAK+yB,SAAS0/G,iBAAiB,CAC3BvuD,SAAU,eAAiBisD,GAC3BC,QAASA,IAEb6I,EAAQlmI,OACRo9H,EAAUzjH,SAAS8kH,IAEvB,uBAAuBrB,EAAWC,GAC9BpwI,KAAK+yB,SAAS2/G,eAAe,CACzBxuD,SAAU,eAAiBisD,GAC3BC,QAASA,IAGjB,wBAAwBD,EAAWC,EAAS8I,GACxC,IAAID,EAAU9I,EAAUv+G,SAAS,IAAIvG,OAAOqmH,KACxC1jH,EAAOkrH,EACXlrH,EAAKk2D,SAAW,eAAiBisD,GACjCniH,EAAKoiH,QAAUA,EACfpwI,KAAK+yB,SAAS4/G,gBAAgB3kH,GAC9BkrH,EAAYlrH,EACPkrH,EAAU/+H,SACPna,KAAKw0I,kBAAoBpE,IACzBpwI,KAAKw0I,gBAAkB,MAE3ByE,EAAQnmI,OACRq9H,EAAUhhH,YAAYqiH,KAG9B,wBAAwBrB,EAAWC,GAC/BpwI,KAAK+yB,SAAS6/G,gBAAgB,CAC1B1uD,SAAU,eAAiBisD,GAC3BC,QAASA,IAGjB,0BAA0BD,EAAW+I,GACjC,IAAIx2I,EAAS,eAAEw2I,EAAUC,eAAex9F,QAAQ,IAAItwB,OAAOomH,KAAwB,GAC/EtnE,EAAcnqE,KAAKo5I,yBAAyBjJ,GAAWqI,oBAAoB,GAC3Ex4I,KAAK8uB,OAAO,4BAA8BpsB,IAAWynE,IACrDnqE,KAAKu2I,iBACL/6G,WAAWx7B,KAAKq5I,yBAAyBnlH,KAAKl0B,MAAOA,KAAKs5I,UAAU,UAG5E,2BACI,GAAKt5I,KAAKw0I,gBAAV,CAGA,IAAI+E,EAAoB,eAAEv5I,KAAKw0I,gBAAgB3lH,WAAW61B,SAAS/zB,SAASihH,IACxE4H,EAAuBx5I,KAAKw0I,gBAAgBgE,oBAAoBjrH,KAAK,IAAIlC,OAAOumH,KAAuBjzI,OACvG86I,EAA4Bz5I,KAAKw0I,gBAAgBgE,oBAAoB7kH,IAAI,GAAG2xD,cAAc,UACzFm0D,GAA8BD,GAAyBD,GACxDv5I,KAAKw0I,gBAAgB1hI,QAG7B,yBAAyBq9H,GACrB,IAAKA,EACD,OAAO,EAEX,IAAII,EAAWJ,EAAUv+G,SAAS,IAAIvG,OAAOomH,KAC7C,OAAOlB,EAAS5xI,QAAU,GAAQ4oE,YAAYgpE,GAElD,mBAAmBJ,GACf,IAAIuJ,EAAmB15I,KAAKixI,oBACxBqB,EAAmBtyI,KAAK8uB,OAAO,oBAAoB3tB,cACnDwP,EAAa3Q,KAAK8uB,OAAO,cACzB6qH,EAAkB,CAClBzyH,UAAW,OACXE,GAAI+oH,EACJ59B,SAAS,GAEb,OAAQ+/B,GACJ,IAAK,YACDqH,EAAgB5yH,GAAK,WACrB4yH,EAAgBxyH,GAAKuyH,EAAmB,cAAgB,YACxD,MACJ,IAAK,gBACDC,EAAgB5yH,GAAK2yH,EAAmB,cAAgB,YACxDC,EAAgBxyH,GAAK,WACrB,MACJ,QACQuyH,GACAC,EAAgB5yH,GAAKpW,EAAa,eAAiB,cACnDgpI,EAAgBxyH,GAAKxW,EAAa,YAAc,aAEhDgpI,EAAgB5yH,GAAKpW,EAAa,WAAa,YAC/CgpI,EAAgBxyH,GAAKxW,EAAa,YAAc,YAG5D,OAAOgpI,EAEX,qBAAqBj7E,GACjB,eAAE,SAASroC,SAASqoC,GAAOhyC,SAASglH,IAAwC5+H,OAEhF,wBAAwBmc,GACpB,IAAIrC,EAAU,eAAEqC,EAAEvsB,QACdk3I,EAAehtH,EAAQ8H,QAAQ10B,KAAKizI,iBACpC2G,EAAajpH,SAAS,4BACtB3wB,KAAK8uB,OAAO,iBAAkB,MAGlC+Y,MAAMutD,wBAAwBnmE,GAElC,mBAAmBA,GACf,IAAI4qH,EAAqB,eAAal+G,EAAA,KAAcm+G,KAAM95I,KAAKs0B,MAC3DoqC,EAAQ1+D,KAAK+5I,2BAA2B9qH,GACxC01D,EAAO3kF,KAAK4kF,aAAaC,cAAc7kF,KAAKmkF,aAAazlB,IACzDs7E,EAAoB,eAAU/qH,EAAE9Z,UAAY,IAAM8Z,EAAE9Z,UAAY,eAAU8Z,EAAE9Z,UAAY,IAAM8Z,EAAEgrH,MACpG,IAAIj6I,KAAKk6I,gBAAgBx7E,GAIzB,GADA,OAAalwC,IAAIkwC,EAAOm7E,GACnB75I,KAAKkoF,aAAavD,IAIvB,GAAI,YAAc3kF,KAAKm6I,6BAA+BH,EAAmB,CACrE,IAAI5J,EAAUpwI,KAAKo6I,qBAAqB17E,GACxC1+D,KAAKu2I,iBACAnG,EAAQjX,qBACT,OAAa7qG,GAAGowC,EAAOm7E,EAAoB75I,KAAKq6I,sBAAsBnmH,KAAKl0B,OAC3EA,KAAKs6I,kBAAoBt6I,KAAKs5I,UAAU,eAR5Ct5I,KAAKs6I,kBAAoB9+G,WAAWx7B,KAAKq5I,yBAAyBnlH,KAAKl0B,MAAOA,KAAKs5I,UAAU,SAYrG,iBAAiBiB,GACb,IAAI77E,EAAQ1+D,KAAK+5I,2BAA2BQ,GACxCpB,EAAgB,eAAEoB,EAASpB,eAC/BtxG,MAAMkoG,iBAAiBwK,GACvBv6I,KAAKu2I,iBACDv2I,KAAKk6I,gBAAgBx7E,IAGrBy6E,EAAcxoH,SAAS,KAGvB3wB,KAAK8uB,OAAO,6BAA+BqqH,EAAcxoH,SAAS4gH,MAClEvxI,KAAKw6I,kBAAoBh/G,WAAW,KAChCx7B,KAAKq5I,4BACNr5I,KAAKs5I,UAAU,UAG1B,sBACI,QAAKt5I,KAAKw0I,kBAGVx0I,KAAKswI,aAAatwI,KAAKw0I,kBAChB,GAEX,aAAalxD,GACT,IAAI8sD,EAAUpwI,KAAKo6I,qBAAqB92D,GACpCtjF,KAAKw0I,kBAAoBpE,GACzBpwI,KAAKi1I,sBAEL7E,IACApwI,KAAKu2I,iBACLv2I,KAAK2uB,QACLyhH,EAAQr9H,OACR/S,KAAK8uB,OAAO,iBAAkBshH,EAAQthH,OAAO,oBAEjD9uB,KAAKw0I,gBAAkBpE,EACvBpwI,KAAKy6I,iBAAmBn3D,EAE5B,aAAa8sD,GACTA,GAAWA,EAAQt9H,OACf9S,KAAKw0I,kBAAoBpE,IACzBpwI,KAAKw0I,gBAAkB,MAE3Bx0I,KAAKy6I,iBAAmB,KAE5B,sBAAsBxrH,GAClB,IAAIA,EAAEyrH,WAAYzrH,EAAEyrH,SAAS/7I,OAA7B,CAGA,IAAI+/D,EAAQ,eAAEzvC,EAAEyM,eACX,eAAU17B,KAAKs6I,qBAGpBt6I,KAAKu2I,iBACLv2I,KAAKs6I,kBAAoB9+G,WAAW,KAChC,IAAI40G,EAAUpwI,KAAKo6I,qBAAqB17E,GACpC0xE,IAAYA,EAAQjX,oBACpBn5H,KAAK8zI,aAAap1E,IAEvB1+D,KAAKs5I,UAAU,WAEtB,iBACI79G,aAAaz7B,KAAKw6I,mBAClB/+G,aAAaz7B,KAAKs6I,mBAEtB,qBAAqBh3D,EAAcvxC,GAC/B,IAAIq+F,EAAUpwI,KAAKo5I,yBAAyB91D,GAC5C,GAAI8sD,EACA,OAAOA,EAEPr+F,EAAWA,GAAY/xC,KAAKmkF,aAAab,GACzC,IAAIqB,EAAO3kF,KAAK4kF,aAAaC,cAAc9yC,GAC3C,OAAO/xC,KAAKkoF,aAAavD,IAAS3kF,KAAK26I,oBAAoBh2D,EAAMrB,GAGzE,gCAAgCvZ,GAC5B,IAAI/7C,EAAO+7C,EAAW/7C,KAAKrvB,QAAUorE,EAAW/7C,KAAK,GACrD,GAAKA,IAAQhuB,KAAKizF,gBAAgBjlE,EAAK+jB,UAAvC,CAGA,IAAIuxC,EAAe,eAAEt1D,EAAKshE,aACtB8jD,EAAiBpzI,KAAKo6I,qBAAqB92D,EAAct1D,EAAK+jB,UAElE,GADA/xC,KAAK46I,2BAA2B7wE,GAC5B/pE,KAAKw0I,gBAAiB,CACtB,GAAIx0I,KAAKw0I,kBAAoBpB,EAIzB,YAHI,YAAcpzI,KAAK8uB,OAAO,yBAC1B9uB,KAAKswI,aAAatwI,KAAKw0I,kBAI3Bx0I,KAAKswI,aAAatwI,KAAKw0I,iBAG1BpB,IAGAA,EAAeja,oBAChBn5H,KAAK8zI,aAAaxwD,KAI1B,eAAet1D,GACX,GAAIqkH,GAAQ9vI,QAAQyrB,EAAKra,OAAS,EAC9B3T,KAAK66I,oBAGT,OAAQ7sH,EAAKra,MACT,IAAK,cACL,IAAK,mBACD3T,KAAK+nC,cACL,MACJ,IAAK,uBACL,IAAK,0BACD,MACJ,IAAK,kBACD/nC,KAAK86I,sBAAsB9sH,EAAKra,KAAMqa,EAAKhwB,OAC3C,MACJ,IAAK,oBACDgwB,EAAKhwB,MAAQgC,KAAK20I,kBAAoB30I,KAAK+6I,oBAC3C,MACJ,IAAK,QACG/6I,KAAKq0I,yBACLr0I,KAAKk1I,UAAUpmH,OAAOd,EAAKra,KAAMqa,EAAKhwB,OACtCgC,KAAKkxI,SAASpiH,OAAOd,EAAKra,KAAMqa,EAAKhwB,QAEzC6pC,MAAMugD,eAAep6D,GACrBhuB,KAAKk0I,oBACL,MACJ,IAAK,YACGl0I,KAAKq0I,wBACLr0I,KAAKk1I,UAAUpmH,OAAO,qBAAsBd,EAAKhwB,OAErD6pC,MAAMugD,eAAep6D,GACrB,MACJ,SACQhuB,KAAKq0I,wBAA2BrmH,EAAKra,OAASqa,EAAKixB,UAAY,UAAYjxB,EAAKra,MAChF3T,KAAKk1I,UAAUpmH,OAAOd,EAAKixB,SAAUjxB,EAAKhwB,OAE9C6pC,MAAMugD,eAAep6D,IAGjC,sBAAsBra,EAAM3V,GACxB,eAAKgC,KAAKqzI,UAAW,CAACpxI,EAAOmuI,KACzBA,EAAQthH,OAAOnb,EAAM3V,KAG7B,WAAWsxF,GACPtvF,KAAKswI,aAAatwI,KAAKw0I,iBACvB3sG,MAAMmwD,WAAW1I,GAErB,aAAaA,GACTtvF,KAAKswI,aAAatwI,KAAKw0I,iBACvB3sG,MAAMmwD,WAAW1I,IAGzB,gBAAkB,SAAU,IACb,UC5vBA,MC8BX0rD,GAAkB,CAClB,IAAK,0BACL,KAAM,8BACN,IAAK,wBACL,KAAM,8BACN,IAAK,2BACL,KAAM,iCACN1oI,QAAS,2BACT2oI,YAAa,gCACbx7H,SAAU,4BACVy7H,WAAY,+BACZC,SAAU,6BACV37H,QAAS,4BAET47H,GAAwB,CACxB,IAAK,QACL,KAAM,WACN,IAAK,WACL,KAAM,kBACN,IAAK,cACL,KAAM,qBACNF,WAAY,aACZz7H,SAAU,WACVw7H,YAAa,cACbE,SAAU,WACV37H,QAAS,WAET67H,GAAoB,IACpBC,GAAqC,EACrC,GAAmB,aACnBC,GAA6B,uBAC7BC,GAA2B,qBAC3BC,GAAyB,mBACzBC,GAAa,UACbC,GAAyB,sBACzBC,GAAyB,sBACzB,GAAoB,iBACpBC,GAAc,iBACdC,GAAqB,kBACrBC,GAA0B,uBAC1BC,GAAgB,aAChB,GAA4B,yBAC5BC,GAA6B,0BAC7BC,GAAwB,qBACxB,GAAyB,6BACzBC,GAA+B,CAAC,OAAQ,WAAY,UACpDC,GAAkB,OAAoBr+I,OAAO,4BAEjD,SAASs+I,GAAyBxpH,GAC9B,MAAO,YAAcA,EAAK/D,OAAO,yBAErC,IAAI4lG,GAAoB,SAAS4nB,GAC7B,IAAI37D,EAAU27D,GAAoBA,EAAiB1qH,WAC/C2qH,EAAiB57D,GAAWA,EAAQ5sE,KAAK,gBACzC0gH,EAAS8nB,GAAkBA,EAAe59I,QAAUgiF,EAAQ5sE,KAAKwoI,EAAe,IACpF,OAAI9nB,aAAkB,QACXA,EAEJ,MAEP+nB,GAAqC,WACrC,IAAIC,EAA4B,SAAS5pH,EAAM7wB,GAC3C,IAAIE,EAAS,GACTw6I,EAAW,GACX15I,EAAc25I,EAAqB9pH,EAAM7wB,GACzC46I,EAAgB,QAAcC,yBAAyB76I,EAAQ,aAUnE,OATIvD,MAAMC,QAAQsE,IACdd,EAAS,QAAcijE,YAAYniE,EAAY,GAAI45I,GACnDF,EAAW,QAAcv3E,YAAYniE,EAAY,GAAI45I,GACjD,KAAOF,IACPx6I,GAAU,MAAMmpB,OAAOqxH,KAEpB,eAAU15I,KACjBd,EAAS,QAAcijE,YAAYniE,EAAa45I,IAE7C16I,GAGX,SAASy6I,EAAqB9pH,EAAM7wB,GAChC,GAAIA,EACA,OAAOq6I,GAAyBxpH,SAAS,IAAW7wB,EAAOywC,oBAAsBzwC,EAAOywC,oBAAsBzwC,EAAOgB,YAG7H,IAAI85I,EAAmC,SAASjqH,EAAM7wB,GAClD,GAAIA,EACA,OAAOq6I,GAAyBxpH,SAAS,IAAW7wB,EAAO+6I,gCAAkC/6I,EAAO+6I,gCAAkC/6I,EAAOwB,yBAGjJw5I,EAAiB,SAASnqH,EAAMqM,EAAao9G,GAC7C,IAAIt6I,EAAS6wB,EAAKmM,mBAAmBoM,aAAalM,GAC9Cl8B,EAAc25I,EAAqB9pH,EAAM7wB,GACzCi7I,EAAgBX,EAAiB5nH,QAAQ,IAAIrJ,OAAOwH,EAAK2B,gBAAgB+mH,MAA8B58I,OACvGu+I,EAAeZ,EAAiB3rH,SAASkC,EAAK2B,gBAAgBgnH,KAClE,OAAIx4I,GAAevE,MAAMC,QAAQsE,IAAgB,YAAc85I,EAAiCjqH,EAAM7wB,GAC9Fk7I,EACOl6I,EAAY,GAEhBA,EAAY,IAEfi6I,GAAiB,SAASj6I,EAAahB,GAC3C,QAAIA,GAAUm6I,GAA6B3tG,SAASxsC,EAAOF,WAAarD,MAAMC,QAAQsE,UAG/E,IAAWA,EAJG,CAKvBA,EAAahB,GAAUgB,EAAc,MAEvCm6I,EAAoB,SAAStqH,EAAMlN,GACnC,IAAI3nB,EAAQ,KAAO2nB,EAAQ3nB,MAAQ,KAAO2nB,EAAQ3nB,MAC9Cs+I,EAAmB32H,EAAQlI,UAC3Bzb,EAAS6wB,EAAKmM,mBAAmBoM,aAAazlB,EAAQ3jB,OAAOC,OAC7De,EAAcg6I,EAAenqH,EAAM7wB,EAAOC,MAAOq6I,GACrD,GAAK,eAAUt5I,IAAiB,eAAUhF,GAA1C,CAGA60B,EAAKuqH,2BAA2BC,aAAaf,EAAkBt5I,IAAgBhF,GAC/E,IAAIqhD,EAAmBg9F,GAAyBxpH,GAAQ,sBAAwB,cAC5EyqH,EAAkB,SAASzqH,EAAM7vB,EAAahB,EAAQs6I,GACtD,GAAI,YAAcQ,EAAiCjqH,EAAM7wB,GAAS,CAC9D,IAAIu7I,EAAoBZ,EAAqB9pH,EAAM7wB,GACnD,OAAIs6I,EAAiB3rH,SAASkC,EAAK2B,gBAAgBgnH,KACxC,CAACx4I,EAAavE,MAAMC,QAAQ6+I,GAAqBA,EAAkB,QAAK,GAE5E,CAAC9+I,MAAMC,QAAQ6+I,GAAqBA,EAAkB,GAAKA,EAAmBv6I,GAEzF,OAAOA,EARW,CASpB6vB,EAAM70B,EAAOgE,EAAQs6I,GACnBkB,EAAY,YAAcV,EAAiCjqH,EAAM7wB,GACjE24C,EAAeh1B,EAAQg1B,cAAgB6iG,GAAa/+I,MAAMC,QAAQ4+I,IAAoBA,EAAgB9uG,cAAS,GACnH3b,EAAKmM,mBAAmBoM,aAAappC,EAAOC,MAAOo9C,EAAkBi+F,EAAiB3iG,KAE1F,MAAO,CACH,mBAAmB34C,EAAQs6I,GACvB,IAAI7nB,EAASC,GAAkB4nB,GAC/B7nB,GAAUA,EAAO3lG,OAAO,QAASkuH,EAAeh9I,KAAMgC,EAAOC,MAAOq6I,KAExE,qBAAqBrtH,GACjB,IAGIyC,EACA4qH,EACAmB,EACAC,GALAl2G,YAAaA,GACbvY,EAKJ,GAAI,QAAcwY,aAAaD,EAAa,CAAC,cAAe,sBAAuB,0BAA2B,kCAAmC,eAAgB,qBAAkB,IAAWvY,EAAEiQ,YAAhM,CACI,IAAI7nB,EAAerX,KAAKg/B,mBAAmB0B,gBAAgBzR,EAAEiQ,aACzDl9B,EAAShC,KAAKg/B,mBAAmBoM,aAAanc,EAAEiQ,aAGpD,GAFAxN,EAAQ1xB,KAAKirC,gBAAgBjrC,KAAKitB,UAAUM,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgB,MAAoBvyB,QAASoV,IAAiB,iBAC/HilI,EAAmB5qH,EAAMnE,KAAK,IAAIlC,OAAOuwH,KAAyB9tH,QAC9D0Z,EAAYxkC,aAAewkC,EAAYiL,oBAAqB,CAC5DzyC,KAAK29I,mBAAmB37I,EAAQs6I,GAChC,IAAIsB,EAAkBlsH,EAAMnE,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgB+mH,MAA8BxnI,KAAK,aAChG6pI,IACAH,EAAuBG,EAAgBxvG,WAAW7gB,KAAK,IAAIlC,OAAOuwH,KAClE57I,KAAK29I,mBAAmB37I,EAAQy7I,EAAqB3vH,SACrD9tB,KAAK29I,mBAAmB37I,EAAQy7I,EAAqB16E,SAEpD66E,GAAoBA,EAAgB9uH,OAAO,YAC5C9uB,KAAK69I,0BAA0BnsH,EAAO+qH,EAA0Bz8I,KAAMgC,KAG1EwlC,EAAYhkC,yBAA2BgkC,EAAYu1G,kCAC/C1lI,GAAgB,GAAKrV,IACrB07I,EAAQhsH,EAAMnE,KAAK,IAAIlC,OAAOqwH,KAC1BgC,EAAM/+I,SACNqB,KAAK89I,8BAA8BJ,EAAO17I,EAAQs6I,GAC9C,YAAcQ,EAAiC98I,KAAMgC,GACrDhC,KAAK+9I,0BAA0BrsH,EAAO1vB,GAC/Bs6I,EAAiB/uH,KAAK,IAAIlC,OAAO4wH,KAA6Bt9I,SACrEqB,KAAKg+I,cAAc1B,EAAkBt8I,KAAKi+I,kBAAkB3B,EAAkBt6I,IAC9EhC,KAAKk+I,2BAOzBl+I,KAAKk1B,SAASjG,IAElB,cAEI,OADAjvB,KAAKm+I,4BAA8B,KAC5Bn+I,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,cACIxE,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKm+I,6BAA+Bn+I,KAAKm+I,4BAA4B31D,WAEzE,qBACI,OAAOxoF,KAAKwwC,kBAAkBxwC,KAAK8uB,OAAO,eAE9C,YACI,OAAO9uB,KAAKk1B,YAAcl1B,KAAKo+I,sBAEnC,OACIp+I,KAAKk1B,WACLl1B,KAAKo9I,2BAA6Bp9I,KAAKgwB,cAAc,gBAEzD,wBAAwB0B,EAAO1vB,GAC3B,IAAI6wB,EAAO7yB,KACP8tG,EAAa,GACbwuC,EAAmB5qH,EAAMnE,KAAK,wBAC9B8wH,EAA0BxrH,EAAK2B,gBAAgB+mH,IAC/C+C,EAAW,eAAE,SAAS5xH,SAAS2xH,GAAyBhoH,SAAS3E,GACrE,OAAOmB,EAAKiB,iBAAiBwqH,EAAU,QAAS,CAC5CrxI,OAAQ,OACRgS,SAAS,EACTG,WAAW,EACXpC,mBAAmB,EACnBkB,oBAAoB,EACpBqB,YAAa,CACTw9E,MAAOshD,GAEX9gI,WAAW,EACXjF,SAAU,CACN6O,GAAI,MACJJ,GAAI,MACJK,GAAIk1H,EAAiB39I,QAAU29I,GAAoB5qH,EACnDrK,OAAQ,QAEZ,gBAAgB86C,GACZ,IAAIvsD,EACA+qE,EAAU,eAAE,SAASj0D,SAAS,GAAGrB,OAAOuwH,GAAwB,KAAKvwH,OAAOwH,EAAK2B,gBAAgBgnH,MAA4BnlH,SAAS8rC,GA2B1I,OA1BAngE,EAAS6wB,EAAKmM,mBAAmBoM,aAAappC,EAAOC,OACrD2T,EAAgBid,EAAKorH,kBAAkBt9D,EAAS3+E,GAChD4T,EAAck4F,WAAaA,EAC3Bj7E,EAAKmrH,cAAcr9D,EAAS/qE,GAC5B,OAAa0Y,GAAGqyD,EAAQpzD,KAAK,IAAyB,UAAW0B,IAC7D,IAAIsvH,EAAe7sH,EAAMnE,KAAK,cAAc6V,IAAInU,EAAEvsB,QAAQorB,QACtD,QAAU,eAAiBmB,IAAMA,EAAEgf,WACnChf,EAAE4P,iBACFhM,EAAKqrH,mBACAK,EAAa5/I,SACd4/I,EAAe7sH,EAAM8sH,OAAOjxH,KAAK,cAAcw1C,QAEnD,OAAavzC,QAAQ+uH,EAAc,YAG3C59D,EAAU,eAAE,SAASj0D,SAAS,GAAGrB,OAAOuwH,GAAwB,KAAKvwH,OAAOwH,EAAK2B,gBAAgBinH,MAA0BplH,SAAS8rC,GACpIvsD,EAAgBid,EAAKorH,kBAAkBt9D,EAAS3+E,GAChD4T,EAAck4F,WAAaA,EAC3Bj7E,EAAKmrH,cAAcr9D,EAAS/qE,GAC5B,OAAa0Y,GAAGqyD,EAAQpzD,KAAK,IAAyB,UAAW0B,IACzD,QAAU,eAAiBA,IAAOA,EAAEgf,WACpChf,EAAE4P,iBACFhM,EAAKqrH,mBACL,OAAa1uH,QAAQkC,EAAM+5C,OAAOl+C,KAAK,cAAcO,QAAS,YAG/D,eAAEq0C,GAAgBz1C,SAASmG,EAAK8B,4BAE3C,QAAQ1F,GACJ,IAAI0xD,EAAU1xD,EAAEgC,UAAUmd,WAAW7gB,KAAK,IAAIlC,OAAOuwH,KAAyB9tH,QAC9E,OAAa0B,QAAQmxD,EAAQpzD,KAAK,IAAyB,UAE/D,WACIvrB,EAAS6wB,EAAKmM,mBAAmBoM,aAAappC,EAAOC,OACrDyvB,EAAMnE,KAAK,IAAIlC,OAAOqwH,KAAappH,SAAS5F,SAASivH,IACjD,YAAcmB,EAAiCjqH,EAAM7wB,KACrD6wB,EAAKgrH,0BAA0BnsH,EAAO+qH,EAA0B5pH,EAAM7wB,IACtE6wB,EAAK5B,UAAU8gD,wBAK/B,0BAA0BpsD,GACtB,IAAIi4H,EAAkB59I,KAAKm+I,4BAC3BP,GAAmBA,EAAgB9uH,OAAOnJ,IAE9C,iBAAiB+L,EAAO1vB,GACpB,IAAIs8I,EAAW5sH,EAAME,SAAS,IAAIvG,OAAOrrB,KAAKw0B,gBAAgB+mH,MAC1DqC,EAAkBU,EAAS3/I,QAAU2/I,EAASvqI,KAAK,cAClD6pI,GAAmB57I,IACpB47I,EAAkB59I,KAAKy+I,wBAAwB/sH,EAAO1vB,IAErD47I,EAAgB9uH,OAAO,aACxB9uB,KAAKm+I,6BAA+Bn+I,KAAKm+I,4BAA4BrrI,OACrE9S,KAAKm+I,4BAA8BP,EACnC59I,KAAK0+I,0BAA0B,CAC3B5sI,MAAO,eAAc4f,GAAO,GAAQ4pH,KAExCt7I,KAAKm+I,6BAA+Bn+I,KAAKm+I,4BAA4BprI,SAG7E,mBACI,IAAI6qI,EAAkB59I,KAAKm+I,4BAC3BP,GAAmBA,EAAgB9qI,QAEvC,gCACI,OAAO9S,KAAKm+I,6BAEhB,WAAW9/G,GACP,IAAIS,EAAO9+B,KAAKk1B,SAASmJ,GAOzB,MANI,WAAaA,EAAIT,UACjBkB,EAAKpS,SAAS1sB,KAAKw0B,gBAAgB,KAC9Bx0B,KAAK8uB,OAAO,gCACb,OAAaR,GAAGwQ,EAAM,UAAW7S,GAASU,EAAW,YAAa3sB,KAAMisB,KAGzE6S,GAEX,WACI,IAAI58B,EAASlC,KAAKk1B,WAMlB,OALIl1B,KAAKo+I,sBACLl8I,EAAOzC,KAAK,CACRm+B,QAAS,WAGV17B,GAEX,kBAAkBm6B,EAAM1W,GACpB,IACI3jB,OAAQA,GACR2jB,EACA+L,EAAQ,eAAE2K,GACVr8B,KAAKixB,UAAUnC,OAAO,sBACtB9uB,KAAKwxB,QAAQ,cAAexvB,EAAOg8B,SAAUtM,GAEjD1xB,KAAKwxB,QAAQ,QAAS,OAAoBzzB,OAAO,6BAA8B2zB,GAC/EA,EAAMhF,SAAS,IACf,IAAImF,EAAa,eAAE,SAASwE,SAAS3E,GACjC4qH,EAAmB,eAAE,SAAS5vH,SAASkvH,IAAwBvlH,SAASxE,GAC5E,GAAI,YAAcirH,EAAiC98I,KAAMgC,GACrDhC,KAAK+9I,0BAA0BrsH,EAAO1vB,OACnC,CACH,IAAI4T,EAAgB5V,KAAKi+I,kBAAkB3B,EAAkBt6I,GAC7DhC,KAAKg+I,cAAc1B,EAAkB1mI,GAEzC,IACItB,UAAWA,GACXtS,EACAsS,GAAa,WAAaA,GAC1Bod,EAAMnE,KAAK,IAAwBO,QAAQ2D,IAAI,YAAazvB,EAAOsS,WAEnEtS,EAAO+T,kBAAoB/T,EAAO+T,iBAAiBpX,QACnDqB,KAAK2+I,8BAA8B9sH,EAAY7vB,EAAQs6I,IAG/D,mBAAmB5qH,EAAO/L,GACtB,IAAIkN,EAAO7yB,MAEPgC,OAAQA,GACR2jB,EACJ,GAAI,WAAaA,EAAQiY,QACrB,GAAI57B,EAAOwwB,QACPd,EAAMnM,KAAK,eACR,GAAIvjB,EAAOyS,eAId,YAHAoe,EAAKyT,eAAe5U,EAAOmB,EAAK+rH,kBAAkB1qH,KAAKrB,GAAOlN,GAAS6Q,KAAK,KACxE3D,EAAK0T,YAAY7U,EAAO/L,KAKpC3lB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,kBAAkB83I,EAAkBt6I,GAChC,IAAI6wB,EAAO7yB,KACP6+I,EAAuB,CACvBjpI,cAAe,CACX63F,UAAW56E,EAAKisH,uCAAuC98I,KAG3DE,EAAS,OAAAirB,EAAA,MAAO0xH,EAAsB78I,EAAQ,CAC9ChE,MAAOg/I,EAAenqH,EAAM7wB,EAAOC,MAAOq6I,GAC1Cr7D,WAAY,YACZjgE,YAAa6R,EAAK/D,OAAO,yBACzBs/E,mBAAoB,YAAcv7E,EAAK/D,OAAO,yBAA2B,EAAIusH,GAC7EvpI,MAAO,KACP,SAAS9T,EAAO28C,GACZwiG,EAAkBtqH,EAAM,CACpB7wB,OAAQA,EACRhE,MAAOA,EACPyf,UAAW6+H,EACX3hG,aAAcA,OAW1B,MAPI,YAAcmiG,EAAiCjqH,EAAM7wB,KACjDs6I,EAAiB3rH,SAASkC,EAAK2B,gBAAgBgnH,KAC/Ct5I,EAAOonB,YAAcuJ,EAAK/D,OAAO,8BAEjC5sB,EAAOonB,YAAcuJ,EAAK/D,OAAO,6BAGlC5sB,GAEX,uCAAuCF,GACnC,IAAI+8I,EAAkB,OAAoBhhJ,OAAO,6BACjD,OAAIiC,KAAKixB,UAAUnC,OAAO,qBACf,CACH,aAAciwH,EACd,mBAAoB/8I,EAAOg8B,UAG5B,CACH,aAAc+gH,IAGtB,cAAczC,EAAkB32H,GAC5B22H,EAAiBnoH,QACjB,IAAItF,EAAW,eAAE,SAASwH,SAASimH,GAC/B0C,EAAmBh/I,KAAKgwB,cAAc,iBACtCjkB,EAAa/L,KAAKgwB,cAAc,QAAQjkB,aACxCkzI,EAAsBj/I,KAAKgwB,cAAc,eAC7C,GAAIrK,EAAQthB,QAAUrE,KAAK8uB,OAAO,0BAA2B,CACzDmwH,EAAoBC,6BAA6Bv5H,GACjD,IAAIrhB,EAAStE,KAAKgwB,cAAc,QAAQi2B,oBACxCg5F,EAAoBC,6BAA6B,MACjD,IAAIC,EAAmB,QAAcC,2BAA2Bz5H,EAAS5Z,EAAYzH,GACjF+6I,EAAgB,eAAS,eAAS,GAAI15H,GAAU,CAChDthB,OAAQ,eAAS,eAAS,GAAIshB,EAAQthB,QAAS,CAC3C0H,WAAYozI,MAGpB,OAAOH,EAAiBh+D,aAAanyD,EAAUwwH,GAEnD,OAAOL,EAAiBh+D,aAAanyD,EAAUlJ,IAEnD,0BAA0B+L,EAAO1vB,GAC7B,IAAI6wB,EAAO7yB,KACPs8I,EAAmB5qH,EAAMnE,KAAK,IAAIlC,OAAOuwH,KAAyB9tH,QACtEwuH,EAAiBnoH,QACjB,IAAImrH,EAAsB,eAAE,SAAS5yH,SAASuvH,IAA4BnvH,KAAK,WAAY9sB,KAAK8uB,OAAO,aACvG,OAAaR,GAAGgxH,EAAqB,UAAW,KAC5CzsH,EAAK0sH,iBAAiB7tH,EAAO1vB,KAEjCs9I,EAAoBjpH,SAASimH,GAC7BzpH,EAAKgrH,0BAA0BnsH,EAAO+qH,EAA0B5pH,EAAM7wB,KAE1E,0BAA0B0vB,EAAO1zB,GAC7B,IAAIshJ,EAAsB5tH,EAAMnE,KAAK,IAAIlC,OAAO4wH,KAC5CqD,EAAoB3gJ,SAChB,KAAOX,EACPshJ,EAAoB/5H,KAAK,UAEzB+5H,EAAoBxrI,KAAK9V,KAIrC,8BAA8B0/I,EAAO17I,EAAQs6I,GACzC,IACIkD,EADA3sH,EAAO7yB,KAEPy/I,EAAe,WACf,IAAIC,EAAO,GAAKn4E,YAAYm2E,GAC5BgC,GAAQA,EAAK5wH,OAAO,iBAAkB,MACtC0wH,GAAoB3sH,EAAK8sH,aAAarD,IAE1CzpH,EAAKiB,iBAAiB4pH,EAAO,GAAM,CAC/B/2D,mBAAoB,GACpB97E,oBAAoB,EACpBw0E,cAAe,SACf5rE,SAAU,GAAG4X,OAAOwH,EAAK8B,0BAA2B,KAAKtJ,OAAO,GAA2B,KAAKA,OAAOwwH,IACvGtJ,qBAAsB,UACtBC,yBAAyB,EACzBhxH,MAAO,CAAC,CACJvV,WAAYjK,EAAO+T,kBAAoB/T,EAAO+T,iBAAiBpX,QAC/D+U,KAAMsnI,GAAgB8B,EAAiCjqH,EAAM7wB,IAAW,WACxE49I,YAAY,EACZp+H,MAAOqR,EAAKgtH,6BAA6B79I,KAE7CozE,eAAgBj+C,IACZ,IACIm4D,YAAaA,GACbn4D,EACJn3B,KAAKwxB,QAAQ,QAAS4qH,GAAiB,eAAE9sD,KAE7C,YAAYwwD,GACR,IAAIt8I,EAA0Bs8I,EAAW/tG,SAASp+B,KAC9CosI,EAAgCjD,EAAiCjqH,EAAM7wB,GACvEg+I,GAAiB,EACjBC,EAAgB5D,GAAyBxpH,GACzClN,EAAU,GACd,KAAIm6H,EAAW/tG,SAASvwB,OAAShe,GAA2BA,IAA4Bu8I,GAAxF,CAeA,GAZIv8I,GACAmiB,EAAQs6H,EAAgB,kCAAoC,2BAA6Bz8I,EACrF,YAAcA,GAA2B,YAAcu8I,IACvDC,EAAiB,YAAcx8I,EAC/BmiB,EAAQs6H,EAAgB,sBAAwB,eAAiB,QAGrEt6H,EAAQs6H,EAAgB,sBAAwB,eAAiB,KACjEt6H,EAAQs6H,EAAgB,kCAAoC,2BAA6Bj+I,EAAOs2C,gCAAkC,MAEtIzlB,EAAKmM,mBAAmBoM,aAAappC,EAAOC,MAAO0jB,GACnDkN,EAAKuqH,2BAA2BC,aAAaf,GAAkB,IAC1D94I,EAAyB,CAC1B,IAAIixH,EAASC,GAAkB4nB,GAC3B7nB,GAAU,cAAgBA,EAAOngG,OAASmgG,EAAO3lG,OAAO,aACxD2lG,EAAO5pE,QACP4pE,EAAO3lG,OAAO,WAAW,IAG5BkxH,EAGDntH,EAAK0sH,iBAAiBjD,EAAiB5nH,QAAQ,IAAIrJ,OAAO,KAAqBrpB,GAF/E6wB,EAAK8sH,aAAarD,KAK1B,mBACIkD,EAAmB3sH,EAAKqtH,iBAAiB5D,GACzCzpH,EAAK7C,cAAc,iBAAiBqhF,aAExC,kBACI,OAAa7hF,QAAQkuH,EAAO,QAC5B+B,KAEJ,eAAexwH,GACX,OAAaX,GAAGovH,EAAO,OAAQ,KAC3B,IAAIgC,EAAOzwH,EAAEgC,UACbyuH,EAAKrG,2BACLoG,OAGR9uI,WAAYkiB,EAAK/D,OAAO,iBAGhCoxH,iBAAkBruH,GAAcA,EAAWlB,SAASqrH,KAAkBnqH,EAAW8pB,QAAQ,IAAItwB,OAAO2wH,KAAgBr9I,OACpH,aAAakzB,GACT7xB,KAAKgwB,cAAc,iBAAiBrB,MAAMkD,GAC1C,OAAarC,QAAQqC,EAAWtE,KAAK,IAAyB,UAElE,8BAA8BsE,EAAY7vB,EAAQs6I,GAC9C,IAAIoB,EACA19I,KAAK8uB,OAAO,oCACZ+C,EAAWnF,SAASivH,IACpB+B,EAAQ,eAAE,SAAS16E,UAAUnxC,GAC7B7xB,KAAK89I,8BAA8BJ,EAAO17I,EAAQs6I,KAG1D,6BAA6Bt6I,GACzB,IAAI6wB,EAAO7yB,KACPkC,EAAS,CAAC,IACVi+I,EAAmBttH,EAAK/D,OAAO,aAC/BhO,EAAwBq/H,GAAoBA,EAAiBr/H,uBAAyB,GAC1F,GAAI9e,EAAO+T,kBAAoB/T,EAAO+T,iBAAiBpX,OAAQ,CAC3D,IAAIyhJ,EAA4Bp+I,EAAO+T,iBAAiBzR,OAAOtG,GAAS,eAAUo9I,GAAsBp9I,KACxGkE,EAAS,eAAIk+I,EAA2BpiJ,IACpC,IAAIqiJ,EAAkBjF,GAAsBp9I,GAC5C,MAAO,CACH2V,KAAM3V,EACNs/E,UAAWw/D,EAAiCjqH,EAAM7wB,IAAWA,EAAO6iD,0BAA4B7mD,EAChG8V,KAAMgN,EAAsBu/H,GAC5B3sI,KAAMsnI,GAAgBh9I,MAG9BkE,EAAOzC,KAAK,CACRkU,KAAM,KACNG,KAAMqsI,GAAoBA,EAAiBp/H,mBAC3CrN,KAAMsnI,GAAgB1oI,UAG9B,OAAOpQ,GAEX,mBAAmB+sB,GACf,IAAIoB,EAAIub,EAAIsW,EACZliD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aACrB,QAAU6rB,EAAKpB,EAAEu6B,sBAAmB,IAAWn5B,OAAK,EAASA,EAAG7I,aAAe,QAAUokB,EAAK3c,EAAEu6B,sBAAmB,IAAW5d,OAAK,EAASA,EAAGwqB,cAChJp2D,KAAKsgJ,uBAAuB,QAAUp+F,EAAKjzB,EAAEu6B,sBAAmB,IAAWtH,OAAK,EAASA,EAAG16B,YAGpG,uBAAuB+4H,GACnB,GAAKvgJ,KAAK8uB,OAAO,2BAGZ9uB,KAAKitB,UAAV,CAGA,IAAIvhB,EAAU1L,KAAKg/B,mBAAmBC,oBAClClzB,EAAa/L,KAAKgoC,gBAAgBj8B,aAClCy0I,EAA4BxgJ,KAAKo9I,2BACjCvhH,EAAW77B,KAAKitB,UAAUM,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgB,MAAoBvyB,SAClF,IAAM45B,GAGXnwB,EAAQwrB,QAAQ,CAACl1B,EAAQC,KACrB,GAAKD,EAAOqC,QAAUrC,EAAOoT,qBAAuBpT,EAAOo+C,0BAA3D,CAGA,IAAI1uB,EAAQ1xB,KAAKirC,gBAAgBpP,EAAU55B,GACvCwyH,EAASC,GAAkB,OAAShjG,QAAS,IAAWA,OAAQ,EAASA,EAAMnE,KAAK,yBACxF,GAAIknG,EAAQ,CACR+rB,EAA0BtB,6BAA6Bl9I,GACvD,IAAIsC,EAAStE,KAAKgoC,gBAAgBie,qBAAuB,KACzDu6F,EAA0BtB,6BAA6B,MACvD,IAAIuB,EAAmBhsB,EAAO3lG,OAAO,cACjC4xH,GAAsBH,IAAkB,eAAaE,EAAiBE,uBAAwBr8I,GAClG,GAAIo8I,EAAoB,CACpB,IAAIvB,EAAmB,QAAcC,2BAA2Bp9I,EAAQ+J,EAAYzH,GACpFmwH,EAAO3lG,OAAO,aAAcqwH,UAK5C,cAAcnxH,GACV,OAAQA,EAAKra,MACT,IAAK,YACL,IAAK,kBACD3T,KAAK+nC,aAAY,GAAM,GACvB/Z,EAAKC,SAAU,EACf,MACJ,IAAK,yBACGD,EAAKhwB,MACLgC,KAAKsgJ,yBAELtgJ,KAAKu1B,SAETvH,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,MAriBO,GA0iBrC4yH,GAAkC,CAClCC,2BAA4B,KAAM,EAClC,6BACI,GAAI7gJ,KAAK6gJ,6BACL,OAAO7gJ,KAAKk1B,WAEhB,IAAI4rH,EAAU,CAAC9gJ,KAAKk1B,YAChBxpB,EAAU1L,KAAKg/B,mBAAmBC,kBAAkB,MAAM,GAC1DggH,EAAsBj/I,KAAKgwB,cAAc,eAS7C,OARA,eAAKtkB,GAAS,WACV,IAAI2kB,EACA0wH,GAAc,QAAU1wH,EAAK4uH,EAAoB+B,sCAAmC,IAAW3wH,OAAK,EAASA,EAAGpuB,SAAWjC,KAAKiC,MACpI,GAAIjC,KAAKyU,gBAAkBzU,KAAKqV,2BAA6B,eAAUrV,KAAKgD,eAAiB+9I,EAAY,CACrG,IAAIz8I,EAAStE,KAAK2nD,uBAAuB3nD,KAAKgD,YAAahD,KAAKwD,yBAA2BxD,KAAK6kD,uBAAwB,aACxHi8F,EAAQrhJ,KAAK6E,OAGd,QAAcwnD,eAAeg1F,KAGxCG,GAA4B,GAAQnsH,eAAelC,QAAQ,CAC3D,kBAII,OAHK5yB,KAAKkhJ,eACNlhJ,KAAKkhJ,aAAelhJ,KAAK6uC,QAAQ,gBAE9B7uC,KAAKkhJ,cAEhB,aAAaryH,EAAU7wB,GACfq+I,GAAyBr8I,QACzB6uB,GAAYA,EAASyH,YAAYylH,GAAyB/9I,IAAU6wB,EAAS6F,QAAQ,IAAIrJ,OAAO,KAAoBiL,YAAY4lH,GAAuBl+I,GACvJgC,KAAKmhJ,kBAAkBC,kBAAkBpjJ,KAGjD,cACI,IAAIgzB,EAAoBhxB,KAAKgwB,cAAc,WACvCtkB,EAAUslB,EAAkBiB,aAChCjB,EAAkB81B,cAClB,IAAK,IAAItmD,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAAK,CACrC,IAAIwB,EAAS0J,EAAQlL,QACjB,IAAWwB,EAAOywC,sBAClBzhB,EAAkBoa,aAAa5qC,EAAG,cAAewB,EAAOywC,qBACxDzwC,EAAOywC,yBAAsB,QAE7B,IAAWzwC,EAAO+6I,kCAClB/rH,EAAkBoa,aAAa5qC,EAAG,0BAA2BwB,EAAO+6I,iCACpE/6I,EAAO+6I,qCAAkC,GAGjD/rH,EAAkB+1B,YAClB/mD,KAAKqhJ,oBAET,mBACI,GAAIhF,GAAyBr8I,MAAO,CAChC,IAAIshJ,EAA2BthJ,KAAK6uC,QAAQ,qBAAqB5hB,UACjEq0H,EAAyB/zH,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgB,IAAmB,MAAMnJ,OAAO0wH,KAA0B5sH,YAAY4sH,IACpIuF,EAAyB/zH,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgB,IAAmB,MAAMnJ,OAAO6wH,KAAwB/sH,YAAY+sH,IAClIl8I,KAAKmhJ,kBAAkBC,mBAAkB,KAGjD,6BAA6Bp/I,GACzBhC,KAAKuhJ,eAAiBv/I,GAE1B,+BACI,OAAOhC,KAAKuhJ,kBAGTC,GAAkB,CACzBt0G,eAAgB,KAAM,CAClBz7B,wBAAwB,EACxBhF,UAAW,CACPoF,SAAS,EACToP,sBAAsB,EACtBD,YAAa,OAAoBjjB,OAAO,mCACxCgjB,mBAAoB,OAAoBhjB,OAAO,0CAC/C2iB,YAAa,OACbC,gBAAiB,OAAoB5iB,OAAO,8BAC5C+iB,sBAAuB,CACnBnB,MAAO,OAAoB5hB,OAAO,uCAClCoiB,SAAU,OAAoBpiB,OAAO,0CACrCiiB,SAAU,OAAoBjiB,OAAO,qCACrCkiB,gBAAiB,OAAoBliB,OAAO,6CAC5C6hB,YAAa,OAAoB7hB,OAAO,wCACxC8hB,mBAAoB,OAAoB9hB,OAAO,gDAC/CqiB,WAAY,OAAoBriB,OAAO,2CACvC0hB,SAAU,OAAoB1hB,OAAO,yCACrCmiB,YAAa,OAAoBniB,OAAO,4CACxC2hB,SAAU,OAAoB3hB,OAAO,yCACrCyhB,QAAS,OAAoBzhB,OAAO,wCACpC+hB,QAAS,OAAoB/hB,OAAO,0CACpCgiB,WAAY,OAAoBhiB,OAAO,8CAE3C8iB,iBAAkB,OAAoB9iB,OAAO,iDAC7C6iB,eAAgB,OAAoB7iB,OAAO,kDAGnDg7B,YAAa,CACTrY,YAAaugI,IAEjB3nH,UAAW,CACPP,YAAa,CACThlB,KAAM6sI,GACNa,eAAgB,CACZ,iBAEI,GADAzhJ,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,KAAK02B,aAAc,CACnB,IAAIknH,EAAkB59I,KAAKyqE,mBAAmBi3E,gCAC9C,GAAI9D,EAAiB,CACjB,IAAI93G,EAAY83G,EAAgB/uH,WAAW6F,QAAQ,MAAMzyB,QACrD6jC,IAAc9lC,KAAK2hJ,aAAaziH,aAAe4G,IAAc9lC,KAAK2hJ,aAAaziH,YAAc,GAC7F0+G,EAAgBxvG,WAAWt7B,UAK3C,eACI,IAAI4e,EACJ,GAAI1xB,KAAK02B,aAAc,CACnB,IAAIknH,EAAkB59I,KAAKyqE,mBAAmBi3E,gCAC1C9D,IACAlsH,EAAQksH,EAAgB/uH,WAAW6F,QAAQ,MAC3C10B,KAAKyqE,mBAAmBi0E,0BAA0B,CAC9C5sI,MAAO,eAAc4f,GAAO,GAAQ4pH,KAExCsC,EAAgBxvG,WAAWr7B,QAGnC/S,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAGlC0H,QAAS,CACL,iBAAiByZ,GAIb,OAHIA,EAAQ3jB,OAAOqC,SACfrE,KAAK4hJ,6BAA8B,GAEhC5hJ,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,mBAAmB2V,GACf,IAAIkW,EAKJ,OAJIrwB,KAAK4hJ,8BAAgCznI,IACrC,QAAUkW,EAAKrwB,KAAK6uC,QAAQ,4BAAyB,IAAWxe,GAAcA,EAAGiwH,0BAErFtgJ,KAAK4hJ,6BAA8B,EAC5B5hJ,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,uBAEI,OADAxE,KAAK4hJ,6BAA8B,EAC5B5hJ,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,cAI7Cw0B,MAAO,CACHmU,kBAAmBqvG,GACnB19E,YAAa,CACT,mBACI,IAAIt9C,EAAQxhB,KAAKk1B,WACb2sH,EAAa7hJ,KAAK8hJ,mBAAmBtgI,GACzC,OAAOqgI,EAAWx2H,OAAO7J,IAE7B,qBACI,IAAIqR,EAAO7yB,KACP6hJ,EAAa,GACjB,GAAIhvH,EAAKkvH,2BAA4B,CACjC,IAAI9iD,EAAWpsE,EAAK/D,OAAO,6BACvBpjB,EAAUmnB,EAAKmM,mBAAmB/M,aAClChmB,GAAYP,EAAQpH,OAAOtC,QAAU,IAAWA,EAAOywC,qBAAqB9zC,OAC5EmoB,EAAc,CACdjB,OAAQ,WACRF,QAAS,CACLjS,KAAM,eACNzH,SAAUA,EACV2H,QAAS,WACLif,EAAKuqH,2BAA2B18H,eAEpCvT,KAAM8xF,EACNnrF,KAAMmrF,EACNpwF,cAAe,SAASogB,GACpB,eAAEA,EAAEhC,SAASP,SAASmG,EAAKqsE,uBAAuB48C,OAG1Dl2H,SAAU,SACVjS,KAAM,oBACN8R,SAAU,QACVD,aAAc,OACdxO,UAAW,IAEf6qI,EAAWpiJ,KAAKqnB,GAEpB,OAAO+6H,GAEX,2BACI,IAAI1B,EAAmBngJ,KAAK8uB,OAAO,aACnC,OAAOqxH,GAAoBA,EAAiBtuI,SAAW,YAAcsuI,EAAiBz/H,aAE1F,OACI1gB,KAAKk1B,WACLl1B,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAKo9I,2BAA6Bp9I,KAAKgwB,cAAc,gBAEzD,kBAAkBhyB,GACdgC,KAAK2jH,uBAAuB,qBAAsB3lH,IAEtD,YACI,OAAOgC,KAAKk1B,YAAcl1B,KAAK+hJ,4BAEnC,cAAc/zH,GACN,cAAgBA,EAAKra,MACrB3T,KAAK+nC,cACL/Z,EAAKC,SAAU,GAEfjuB,KAAKk1B,SAASlH,QCl1BtC,GAAKokB,eAAe,YAAaovG,ICFjC,QAAe1nD,eAAe,S,2BCiB1BkoD,GAAsB,mBACtBC,GAA2B,wBAC3BC,GAA4B,OAEhC,SAASC,GAA2B3gI,GAChCA,EAAQA,GAAS,GACjB,IAAK,IAAIhhB,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAC9BghB,EAAMhhB,GAAG88E,UAAW,EACpB6kE,GAA2B3gI,EAAMhhB,GAAGghB,OAI5C,SAAS4gI,GAAqBC,GAC1B,IAAI1/I,EAAW,eAAiB0/I,EAAc/tH,KAAO,+BAAiC,+BACtF,OAAO+tH,EAAcxzH,WAAWtB,KAAK5qB,GAAUm+E,WAAW,YAG9D,SAASwhE,GAAyBrzH,EAAGhZ,GACjC,IAAIgZ,EAAEgC,UAAUnC,OAAO,eAAvB,CAGA,IAAIyzH,EAAoBH,GAAqBnzH,EAAEgC,WAC3CsxH,GAAqBtsI,GAAgBA,EAAatX,QAClD4jJ,EAAkBzzH,OAAO,aAAS,IAGnC,SAAS0zH,GAAqCz3H,EAAM03H,EAAmBC,GAC1E,GAAID,EAAoBC,GAEpB,GADA33H,EAAKuyD,UAAW,EACZolE,GAAmB33H,EAAKvJ,MACxB,IAAK,IAAIof,EAAI,EAAGA,EAAI7V,EAAKvJ,MAAM7iB,OAAQiiC,IACnC,IAAK7V,EAAKvJ,MAAMof,GAAG08C,SAAU,CACzBvyD,EAAKuyD,cAAW,EAChB,YAILolE,GAAmB33H,EAAKuyD,YAC/BvyD,EAAKuyD,UAAW,EAChB6kE,GAA2Bp3H,EAAKvJ,QAGjC,IAAImhI,GAAmB,GAAQ3tH,KAAKpC,QAAQ,CAC/C,oBACI,OAAO5yB,KAAKk9F,iBAEhB,mBACI,OAAOl9F,KAAK4iJ,gBAEhB,kBAAkBj9H,GACd,IAAIk9H,EAAO7iJ,KAAK8iJ,mBACZ1oD,EAAcyoD,EAAK/zH,OAAO,eAC1ByzH,EAAoBH,GAAqBS,GACzCpwD,GAAiB2H,IAAgBz0E,EAAQo9H,kBAAoB,OAASR,QAAqB,IAAWA,OAAoB,EAASA,EAAkBzzH,OAAO,UAC5J7Y,EAAe,GACdw8E,GAuBG,SAAW9sE,EAAQvnB,OACnBunB,EAAQ3P,WAAa,WAErBvX,MAAMC,QAAQinB,EAAQ1P,gBACtB0P,EAAQ1P,aAAe,KA1BvB,SAAW0P,EAAQvnB,OACfunB,EAAQ3P,aACR2P,EAAQ3P,WAAa,WACtB,SAASgtI,EAAqB/sI,EAAcuL,EAAOyhI,GAClD,eAAKzhI,EAAO,CAACmW,EAAG5M,KACZ,QAAI,IAAWA,EAAKuyD,YAAcvyD,EAAKuyD,SAAW2lE,EAAW,CACzD,IAAIt+D,EAAOk+D,EAAKtzD,SAASxkE,GACrBm4H,EAAcL,EAAK36D,aAAavD,GAChCw+D,EAA2BD,GAAen4H,EAAKvJ,OAASuJ,EAAKvJ,MAAMm4B,KAAK5uB,GAAQA,EAAKuyD,UACzF,IAAK8c,IAAgB+oD,EAEjB,YADAltI,EAAaxW,KAAKsrB,EAAK/sB,OAI3B+sB,EAAKvJ,OAASuJ,EAAKvJ,MAAM7iB,QACzBqkJ,EAAqB/sI,EAAc8U,EAAKvJ,MAAOyhI,KAZxD,CAeDhtI,EAAc4sI,EAAK/zH,OAAO,UAAU,GACtCnJ,EAAQ1P,aAAeA,GAU3B0P,EAAQ1P,eAAiB0P,EAAQ1P,aAAatX,SAC9CgnB,EAAQ1P,aAAe,MAE3B0P,EAAQphB,QACRvE,KAAKojJ,wBAET,qBAAqBC,EAAgB19H,GACjC,GAAIA,EAAS,CACT3lB,KAAKu+F,0BAA0B54E,GAC/B,IAAIi5E,EAAiB5+F,KAAKsjJ,oBAC1BtjJ,KAAKojJ,uBACLpjJ,KAAKujJ,YAAYF,EAAgB19H,GACjCi5E,EAAe7rF,SAGvB,uBACI,IAAIywI,EAAmBxjJ,KAAKsjJ,oBAC5BE,GAAoBA,EAAiB1wI,QAEzC,YAAY+b,EAAUlJ,GAClB,IAAIxU,EAAkBnR,KAAK8uB,OAAO,mBAC9Bxa,EAAY,UAAYqR,EAAQrR,WAAanD,EAAkB,OAAS,QAC5EnR,KAAKk9F,gBAAgB1rE,QAAQ,CACzB05C,KAAM,SACN/nD,MAAO,OAAoBplB,OAAO,kCAElCiC,KAAKk9F,kBACLl9F,KAAKyjJ,qBACLzjJ,KAAKk9F,gBAAgBpuE,OAAO,WAAY,CACpC3H,GAAI,GAAGkE,OAAO/W,EAAW,QACzByS,GAAI,GAAGsE,OAAO/W,EAAW,WACzB8S,GAAIyH,EACJ3H,UAAW,cAIvB,eAAevB,EAAS+9H,GACpB,IACIr/I,OAAQA,GACRshB,GAEAg+H,qBAAsBA,GACtBh+H,EACAi+H,EAAyBF,EAAoB33I,WAC7C83I,EAAmBH,EAAoBnrI,OAAOiB,WAClD,GAAIqqI,EACA,OAAOA,EAEX,GAAIF,GAAwB,eAAUC,KAA4B,eAAWA,GACzE,OAAO1B,GAEX,GAAI79I,EACA,OAAOA,EAAOqV,aAAe,OAEjC,GAAIiM,EAAQ5Z,WAAY,CACpB,IACIkc,MAAOA,GACPtC,EAAQ5Z,WACZ,GAAItN,MAAMC,QAAQupB,IAAUA,EAAMtpB,OAAS,EACvC,OAAOspB,EAAM,GAAGtlB,SAEpB,GAAI,eAAWslB,KAAWtC,EAAQ+gC,gBAC9B,OAAOz+B,EAGf,OAAOtC,EAAQ/iB,WAAa+iB,EAAQhjB,UAExC,qBACI3C,KAAKk9F,iBAAmBl9F,KAAKk9F,gBAAgB9uD,WAAWja,SAE5D,0BAA0BxO,GACtB,IAAIkN,EAAO7yB,KACP6uB,EAAWgE,EAAK5F,UAChBy2H,EAAsB1jJ,KAAK8jJ,8BAA8Bn+H,IAEzD1Y,OAAQA,EACR6E,MAAOA,GACP4xI,EACA5mD,EAAiB,CACjBhrF,MAAOA,EACP7E,OAAQA,EACR4E,SAAS,EACToN,SAAS,EACTG,WAAW,EACXD,iBAAiB,EACjBhB,oBAAoB,EACpBL,aAAa,EACbI,oBAAoB,EACpBqB,YAAa,CACTw9E,MAAOklD,IAEXjlI,mBAAmB,EACnBsC,aAAc,CAAC,CACX3N,QAAS,SACT8T,SAAU,QACVI,OAAQ,WACRF,QAAS,CACL7R,KAAM4vI,EAAoB1qI,MAAMqB,GAChC,UACIwY,EAAKkxH,kBAAkBp+H,MAGhC,CACChU,QAAS,SACT8T,SAAU,QACVI,OAAQ,WACRF,QAAS,CACL7R,KAAM4vI,EAAoB1qI,MAAMmB,OAChC,UACI0Y,EAAKuwH,2BAIjBrkI,eAAe,EACf,UAAUkQ,GACNA,EAAEgC,UAAUmd,WAAW9b,SAAS5F,SAAS,6BACzCmG,EAAKmxH,yBAAyBr+H,EAAS+9H,GACvC/9H,EAAQ/G,WAAa+G,EAAQ/G,UAAUqQ,IAE3C,UACI4D,EAAKiwH,mBAAmBn0H,SAE5BpQ,SAAUoH,EAAQpH,SAClB,cAAc0Q,GACV,IACIgC,UAAWA,GACXhC,EACJgC,EAAUnC,OAAO,YAAamC,EAAUu0D,qBAAqBjoE,aAGhE,eAAUsV,EAAKqqE,iBAGhBrqE,EAAKqqE,gBAAgBpuE,OAAOguE,GAF5BjqE,EAAKqqE,gBAAkBrqE,EAAKiB,iBAAiBjF,EAAU,QAAOiuE,IAKtE,yBAAyBn3E,EAAS+9H,GAC9B,IAAI7wH,EAAO7yB,KACPouC,EAAWvb,EAAKqqE,gBAAgB9uD,WAChC61G,GAA6Bt+H,EAAQo9H,iBAAmBW,EAAoB7qI,eAC5EqrI,EAAgB,CAChB58D,cAAeo8D,EAAoBnrI,OAAOH,QAC1CI,cAAekrI,EAAoBnrI,OAAOK,QAC1C+kF,oBAAqB+lD,EAAoBnrI,OAAO3C,cAChD0D,WAAYoqI,EAAoBnrI,OAAOF,MAAQ,GAC/CtM,WAAY4Z,EAAQ5Z,WACpB,iBACI8mB,EAAK8C,gBAAgBc,QAEzB,aAAa1iB,EAAM4jB,EAAG1K,GAClB,IAAI4B,EAAW,eAAE5B,GACjB,OAAItH,EAAQ9P,WACDgZ,EAAS/a,KAAKC,EAAKD,MAEvB+a,EAAStJ,KAAKxR,EAAKD,QAIlC,SAAS9E,EAAgBigB,GACjB,gBAAkBA,EAAEgwB,UAAYglG,IAA6B,IAAUpxH,EAAK/D,OAAO,wCAC/E,SAAWnJ,EAAQvnB,KACnB6wB,EAAEgC,UAAUnC,OAAO,qBAAsBG,EAAEjxB,MAAQ,SAAW,aAE9DixB,EAAEgC,UAAUnC,OAAO,gBAAiBG,EAAEjxB,MAAQ,WAAa,QAInE,SAAW2nB,EAAQvnB,KACnBy0B,EAAK+vH,eAAiB/vH,EAAKiB,iBAAiB,eAAE,SAASuC,SAAS+X,GAAW,GAAU,OAAAjhB,EAAA,MAAO+2H,EAAe,CACvG1pI,mBAAoBypI,EAA4B,YAAc,SAC9Dj1I,gBAAiBA,EACjB1B,QAAS,QAGbulB,EAAK+vH,eAAiB/vH,EAAKiB,iBAAiB,eAAE,SAASuC,SAAS+X,GAAW,QAAM,OAAAjhB,EAAA,MAAO+2H,EAAe,CACnG1qI,WAAYqZ,EAAKsxH,eAAex+H,EAAS+9H,GACzCU,aAAc,eACdC,uBAAuB,EACvBhlE,cAAe4kE,EAA4B,MAAQ,WACnDj1I,gBAAiBA,EACjB,mBAAmBigB,GACf,IAAIzN,EAAQyN,EAAEgC,UAAUnC,OAAO,SAC3BiwD,EAAgB9vD,EAAEgC,UAAUnC,OAAO,iBACvC,IAAKG,EAAEgC,UAAUqzH,yBAA2Br1H,EAAEgC,UAAUnC,OAAO,iBAAmBnJ,EAAQo9H,gBAAiB,CACvG,IAAI9sI,EAAe0P,EAAQ1P,cAAgB,GACvCgtI,EAAY,YAAct9H,EAAQ3P,WAClC,IAAM+oE,EAAcpgF,QAAU6iB,EAAM7iB,SAAWsX,EAAatX,QAAU,GAAKskJ,GAAahtI,EAAatX,SAAW6iB,EAAM7iB,OAAS,IAC/HgnB,EAAQ3P,WAAa,UACrB2P,EAAQ1P,aAAe,IAChB8oE,EAAcpgF,SAAW6iB,EAAM7iB,SACtCgnB,EAAQ3P,WAAa,UACrB2P,EAAQ1P,aAAe,IAG/B,eAAKuL,EAAO,CAACvf,EAAO8oB,KAChB,IAAIuyD,EAAW,QAAczoB,cAAc9pC,EAAMg0D,EAAe,OAAS,EACrEwlE,IAAgBx5H,EAAKuyD,SACzB,GAAIinE,IAAgBjnE,EAAU,CAC1BvyD,EAAKuyD,SAAWA,EAChB33D,EAAQ1P,aAAe0P,EAAQ1P,cAAgB,GAC/C,IAAIuuI,EAAmB,QAAc3vF,cAAc9pC,EAAK/sB,MAAO2nB,EAAQ1P,aAAc,MACjFuuI,GAAoB,GACpB7+H,EAAQ1P,aAAamxB,OAAOo9G,EAAkB,GAElD,IAAIC,EAAsB,YAAc9+H,EAAQ3P,WAC5CsnE,EAAWmnE,GACX9+H,EAAQ1P,aAAaxW,KAAKsrB,EAAK/sB,UAI3CskJ,GAAyBrzH,EAAGtJ,EAAQ1P,eAExC,eAAegZ,GACX,IACIgC,UAAWA,GACXhC,EACAzN,EAAQyP,EAAUnC,OAAO,SACzBiwD,EAAgB,GACpB,eAAKv9D,GAAO,WACJxhB,KAAKs9E,UACLyB,EAAct/E,KAAKO,SAG3BixB,EAAUqzH,wBAAyB,EACnCrzH,EAAUnC,OAAO,gBAAiBiwD,GAClC9tD,EAAUqzH,wBAAyB,EACnChC,GAAyBrzH,EAAGtJ,EAAQ1P,mBAKpD,8BAA8B0P,GAC1B,IAAI++H,EAAsB1kJ,KAAK8uB,OAAO,iBAAmB,GACrD61H,EAAuBh/H,EAAQtjB,cAAgB,GAC/CuiJ,EAAoB,CACpBrsI,OAAQ,CACJH,QAASssI,EAAoB1vI,YAC7B4D,QAAS8rI,EAAoBlsI,gBAGjCqsI,EAAqB,CACrBtsI,OAAQ,CACJH,QAASusI,EAAqB3vI,YAC9BqD,KAAMssI,EAAqBrrI,WAC3BV,QAAS+rI,EAAqBnsI,gBAGtC,OAAO,OAAA2U,EAAA,OAAO,EAAM,GAAIu3H,EAAqBE,EAAmBD,EAAsBE,IAE1F,cACI7kJ,KAAKitB,UAAUP,SAASu1H,OAGrBrtI,GAAuB,SAAS5S,GACvC,OAAO,eAAUA,EAAO4S,sBAAwB5S,EAAO4S,qBAAuB5S,EAAOyS,gBAE9EqwI,GAAoB,CAC3B,kBAAkBn/H,GACd,IAAIo/H,GAEAr0H,YAAaA,GACb/K,GAEA3jB,OAAQA,GACR2jB,EACJ,GAAI,iBAAmBA,EAAQhS,KAAM,CAEjC,GADA+c,EAAYnD,KAAK,IAAIlC,OAAO22H,KAAsBh/G,SAC9CpuB,GAAqB5S,GAAS,CAC9B+iJ,EAAyB/kJ,KAAKk1B,SAASvP,GAAS2Q,YAAY,yBAA0Bt2B,KAAKglJ,qBAAqBhjJ,IAC3GhC,KAAK8uB,OAAO,gCACbi2H,EAAuBj4H,KAAK,WAAY9sB,KAAK8uB,OAAO,aAAe,GAEvE,IAAIm2H,EAAiB,OAAoBlnJ,OAAO,wCAAyCiE,EAAOwT,SAChGuvI,EAAuBj4H,KAAK,aAAcm4H,GAC1CF,EAAuBj4H,KAAK,gBAAiB,UAC7Ci4H,EAAuBj4H,KAAK,OAAQ,UAExC,OAAOi4H,EAEX,OAAO/kJ,KAAKk1B,SAASvP,IAEzBq/H,qBAAsBhjJ,IAAWA,EAAOiU,eAAiBjU,EAAOiU,aAAatX,OAC7E,uBAAuBgV,GACnB,MAAI,iBAAmBA,EACZquI,GAEJhiJ,KAAKk1B,SAASvhB,IAEzB,iBAAiBgS,GACb,IAAIkM,EAAalM,EAAQlI,UACrBqU,EAAanM,EAAQyL,UACzB,GAAI,iBAAmBzL,EAAQhS,KAAM,CACjC,IAAIhD,EAAa3Q,KAAK8uB,OAAO,cAC7B,GAAI+C,EAAWD,WAAWjzB,UAAYgS,GAAc,UAAYgV,EAAQ2K,iBAAmB3f,GAAc,SAAWgV,EAAQ2K,iBAExH,YADAuB,EAAWmsC,QAAQlsC,GAI3B9xB,KAAKk1B,SAASvP,IAElB,cAAcqI,GACV,GAAI,iBAAmBA,EAAKra,KAAM,CAC9B,IAAI+hB,EAAe,sBAAwB11B,KAAK2T,KAChD3T,KAAK+nC,YAAYrS,EAAcA,GAC/B1H,EAAKC,SAAU,OAEfjuB,KAAKk1B,SAASlH,KC7WtBk3H,GAAwB,CACxB3lJ,MAAOvB,GAAS,QAAiBkC,gBAAgBlC,EAAQ,GACzDiC,QAASjC,GAAS,QAAiBD,OAAO,IAAIqF,KAAK,IAAK,EAAIpF,EAAQ,GAAI,YAG5E,SAASmnJ,GAAgB3jI,EAAO4jI,EAAWC,GAkBvC,OAjBAD,EAAYA,GAAa,GACzBC,EAAQA,GAAS,GACjB7jI,EAAM0V,QAAQnM,IACV,GAAI,eAAUA,EAAKgjC,KAAM,CACrB,IAAIu3F,EAAc,IAAMF,EAAUzmJ,OAElC,GADAymJ,EAAU3lJ,KAAK6lJ,EAAcv6H,EAAKgjC,IAAM,EAAIhjC,EAAKgjC,KAC7ChjC,EAAKvJ,MACL2jI,GAAgBp6H,EAAKvJ,MAAO4jI,EAAWC,OACpC,CACH,IAAIzmJ,EAAO,IAAIwE,KAAKA,KAAKs0E,IAAInzE,MAAMnB,KAAMgiJ,IACzCC,EAAM5lJ,KAAKb,GAEfwmJ,EAAUpkD,WAEVqkD,EAAM5lJ,KAAK,QAGZ4lJ,EAGX,SAASE,GAA0BxxI,EAAM/R,GACrC,IAAIqjJ,EAAQF,GAAgBpxI,GACxBozF,EAAQ,gBAAUk+C,GAClBp9H,EAAQ,QAAcu9H,+BAA+B,eAAS,eAAS,GAAIxjJ,GAAS,CACpFoT,mBAAoBxW,GAAQA,KAEhC,OAAO,QAAY6mJ,eAAet+C,EAAO,CACrCl/E,MAAOA,IACRwhB,UAGP,SAASi8G,GAAY3nJ,GACjB,MAAO,OAAS,OAASA,QAAU,IAAWA,OAAS,EAASA,EAAOyE,OAAO,KAAO,SAAW,OAASzE,QAAU,IAAWA,OAAS,EAASA,EAAOyE,OAAO,IAElK,IAAImjJ,GAAyB,GAAQ7wH,eAAelC,QAAQ,CACxD,OACI5yB,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,WAC7ChwB,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAK4lJ,kBAAoB5lJ,KAAK6uC,QAAQ,qBAE1C,qBAAqBrtB,EAAOxf,GACxB,IAAIxB,EAAIghB,EAAM7iB,OACVskJ,EAAY,YAAcjhJ,EAAOgU,WACrC,MAAOxV,IAAK,CACR,IAAIuqB,EAAOvJ,EAAMhhB,GACb,UAAWghB,EAAMhhB,IACjBR,KAAK6lJ,qBAAqBrkI,EAAMhhB,GAAGghB,MAAOxf,GAE9CwgJ,GAAqCz3H,EAAM,QAAc8pC,cAAcrzC,EAAMhhB,GAAGxC,MAAOgE,EAAOiU,aAAc,OAAS,EAAGgtI,KAGhI,oBAAoBl4H,EAAM+6H,EAAcngI,GACpC,IAAI3nB,EACA8pD,GAEAvM,KAAMA,GACN51B,GAEAogI,cAAeA,GACfpgI,GAEAqgI,gBAAiBA,GACjBrgI,GAEA3jB,OAAQA,GACR2jB,EAoBJ,OAnBIogI,GAAiBC,GACjBhoJ,EAAQ+nJ,EAAch7H,GACtB+8B,EAAek+F,EAAgBj7H,KAE/B/sB,EAAQ+sB,EAAKgjC,IACbjG,EAAe9pD,GAKf+sB,EAHC,eAASA,GAGH,OAAAoC,EAAA,MAAO,GAAIpC,GAFX,GAIXwwB,EAAK97C,KAAKzB,GACN,IAAMu9C,EAAK58C,OACXosB,EAAK/sB,MAAQu9C,EAAK,GAElBxwB,EAAK/sB,MAAQu9C,EAAKx8C,KAAK,KAE3BgsB,EAAKjX,KAAO9T,KAAKimJ,kBAAkBn+F,EAAc9lD,EAAQ8jJ,EAAcngI,EAAQ+9H,qBACxE34H,GAEX,kBAAkB+8B,EAAc9lD,EAAQ8jJ,EAAcpC,GAClD,IAAI5vI,EAAO,QAAcqxD,YAAYrd,EAAc,SAAS9pD,EAAOgE,EAAQ8jJ,GACvE,IAAI1jJ,EAAgB,QAAYL,iBAAiBC,GAC7CE,EAAS,QAAc26I,yBAAyB76I,EAAQ,gBAkB5D,OAjBII,IACAF,EAAOE,cAAgBA,EAAc0jJ,GACjC,QAAcjkJ,WAAWG,EAAOF,UAChCI,EAAOnE,OAASmnJ,GAAsB9iJ,EAAc0jJ,IAC7C,WAAa9jJ,EAAOF,WAC3BI,EAAOgkJ,iBAAmB,WACtB,IAAItJ,EAAgB,CAChB7+I,OAAQiE,EAAOjE,OACf2E,OAAQ,gBAERyjJ,EAAiB,QAAchhF,YAAYnnE,EAAO4+I,GAClDwJ,EAAcpoJ,EAAQoE,EAAc0jJ,GACpCO,EAAkB,QAAclhF,YAAYihF,EAAaxJ,GAC7D,OAAOuJ,GAAkBE,EAAkB,GAAGh7H,OAAO86H,EAAgB,OAAO96H,OAAOg7H,GAAmB,MAI3GnkJ,EApBwC,CAqBjD4lD,EAAc9lD,EAAQ8jJ,IAIxB,OAHKhyI,IACDA,EAAO4vI,EAAoB1qI,MAAMoB,YAE9BtG,GAEX,mBAAmBqW,EAAY27H,EAAcvqG,EAAM51B,GAC/C,IAAIqgI,EACAD,GAEA/jJ,OAAQA,GACR2jB,GAEAthB,OAAQA,GACRrC,GAEA6qF,MAAOA,GACPlnE,EACJ41B,EAAOA,GAAQ,GACfuqG,EAAeA,GAAgB,EAC3BzhJ,IACA2hJ,EAAkB,gBAAc3hJ,EAAOqV,aACvCqsI,EAAgB,gBAAc1hJ,EAAOsV,YAEzC,IAAK,IAAInZ,EAAI,EAAGA,EAAI2pB,EAAWxrB,OAAQ6B,IACnC2pB,EAAW3pB,GAAKR,KAAKsmJ,oBAAoBn8H,EAAW3pB,GAAIslJ,EAAc,CAClE9jJ,OAAQ2jB,EAAQ3jB,OAChB0hJ,oBAAqB/9H,EAAQ+9H,oBAC7BsC,gBAAiBA,EACjBD,cAAeA,EACfxqG,KAAMA,IAEN,UAAWpxB,EAAW3pB,KAClBslJ,IAAiBj5D,GAAU,eAAU1iE,EAAW3pB,GAAGxC,OAGnDgC,KAAKspG,mBAAmBn/E,EAAW3pB,GAAGghB,MAAOskI,EAAe,EAAGvqG,EAAM51B,UAF9DwE,EAAW3pB,GAAGghB,OAK7B+5B,EAAKylD,OAGb,cAAch/F,GACV,IAAIquB,EACAtkB,EAAa/L,KAAKgoC,gBAAgBj8B,aAClCw6I,EAAiB,OAASx6I,QAAc,IAAWA,OAAa,EAASA,EAAWsE,mBAAmBtD,SACvGkb,EAAQ,QAAcu9H,+BAA+BxjJ,EAAQukJ,GAC7D3C,EAAyB,QAAUvzH,EAAKruB,EAAOK,oBAAiB,IAAWguB,OAAK,EAASA,EAAGtkB,WAC5F23I,EAAsB1jJ,KAAK8uB,OAAO,gBAClC03H,GAAW,EACX7gI,EAAU,CACVsL,UAAWjxB,KAAKixB,WAEpB,GAAKllB,EAAL,CAGA,GAAI,eAAU63I,KAA4B,eAAWA,GACjDj+H,EAAQ5Z,WAAa,gBAA2B63I,QAC7C,GAAI5hJ,EAAOqC,OAEd,GADAmiJ,GAAW,EACPxmJ,KAAK8uB,OAAO,0BAA2B,CACvC9uB,KAAKuhJ,eAAiBv/I,EACtB,IAAIsC,EAAStE,KAAKgoC,gBAAgBie,oBAClCjmD,KAAKuhJ,eAAiB,KACtB57H,EAAQ5Z,WAAa,QAAcqzI,2BAA2Bp9I,EAAQ+J,EAAYzH,QAElFqhB,EAAQ5Z,WAAa,QAAc06I,0BAA0BzkJ,EAAOqC,YAErE,CACH,IAAIqiJ,EAAcjoJ,MAAMC,QAAQupB,GAASA,EAAMtpB,OAAS,EAAI,EAC5DqB,KAAKuhJ,eAAiBv/I,EACtB,IAAIsmF,EAAUtoF,KAAKgoC,gBAAgBie,oBACnCjmD,KAAKuhJ,eAAiB,KACtB57H,EAAQ5Z,WAAa,CACjBzH,OAAQgkF,EACRrgE,MAAOA,EACP0+H,kBAAkB,EAClB1+F,KAAMtiC,IACF,IAAI+uC,EAAI,IAAI,OAcZ,OAbA/uC,EAAQ/iB,UAAYZ,EAAOY,WAAaZ,EAAO2R,KAC/C5H,EAAWk8C,KAAKtiC,GAAS6Q,KAAKziB,IAC1B,IAAI6yI,EAAkBL,GAAkBb,GAAY1jJ,EAAO8zC,sBAAwB4wG,EAAc,EAC7FE,IACA7yI,EAAOwxI,GAA0BxxI,EAAM/R,IAE3C6wB,EAAKy2E,mBAAmBv1F,EAAM,KAAM,KAAM,CACtC84E,MAAO65D,EACP1kJ,OAAQA,EACR0hJ,oBAAqBA,IAEzBhvF,EAAEx3B,QAAQnpB,KACXk1B,KAAKyrB,EAAE7xB,QACH6xB,IAIf,eAAWkvF,IACXA,EAAuBzqH,KAAKn3B,EAAQ2jB,GAExC,IAAIkhI,EAAkBlhI,EAAQ5Z,WAAWijG,YACrCn8E,EAAO7yB,KAmBX,OAlBA2lB,EAAQ5Z,WAAWijG,YAAc,SAASj7F,GACtC,IAAIyN,EAAQzN,EAeZ,OAdIyyI,IACAhlI,EAAQA,EAAMld,OAAOymB,GAAQ,OAASA,EAAK/oB,EAAOqC,OAAOsV,YACrD,IAAM3Z,KAAK2mB,aAAgB3mB,KAAKo6F,gBAChC54E,EAAQA,EAAMhf,MAAM,GACpBgf,EAAMzhB,QAAQ,OAElB8yB,EAAKy2E,mBAAmB9nF,EAAO,KAAM,KAAM,CACvCqrE,MAAO,EACP7qF,OAAQA,EACR0hJ,oBAAqBA,KAG7BliI,EAAQqlI,GAAmBA,EAAgB1tH,KAAKn5B,KAAMwhB,IAAUA,EAChEqR,EAAKgzH,qBAAqBrkI,EAAOxf,GAC1Bwf,GAEJmE,EAAQ5Z,aAEnB,mBACI,OAAO/L,KAAKuhJ,gBAEhB,qBAAqBriH,EAAa4nH,GAC9B,IAAI91H,EAAoBhxB,KAAKg/B,mBACzBh9B,EAAS,OAAAmrB,EAAA,OAAO,EAAM,GAAIntB,KAAKg/B,mBAAmB/M,aAAaiN,IACnE,GAAIl9B,EAAQ,CACR,IAAIqV,EAAe2Z,EAAkB0P,gBAAgBxB,GACjDwqC,EAAOo9E,EAAe9mJ,KAAK6uC,QAAQ,eAAiB7uC,KAAK6uC,QAAQ,qBACjEw0G,EAAiBA,GAAkB35E,EAAKv3C,oBAAoB5C,GAAGu3H,EAAe9kJ,EAAOsU,WAAae,GACtGrX,KAAK+mJ,yBAAyB,CAC1BC,cAAe3D,EACfrhJ,OAAQA,EACR0e,aAAa,EACb,QACIsQ,EAAkBoa,aAAalM,EAAa,CACxCjpB,aAAcjW,KAAKiW,aACnBD,WAAYhW,KAAKgW,kBAMrC,yBAAyB2P,GACrB,IAAIkN,EAAO7yB,MAEPgC,OAAQA,GACR2jB,EACJ,GAAI3jB,EAAQ,CACR,IAAII,EAAgB,QAAYL,iBAAiBC,GAC7C+J,EAAa8mB,EAAKmV,gBAAgBj8B,aAClC26C,EAAkB36C,GAAcA,EAAWsE,mBAAmBmX,UAC9Dy/H,EAAmBthI,EAAQpH,SAC/B,OAAA4O,EAAA,MAAOxH,EAAS3jB,EAAQ,CACpB5D,KAAMgE,GAAiBA,EAAczD,OAAS,EAAI,OAAS,OAC3D+nD,gBAAiBA,EACjB,UAAUz3B,GACN,IAAIi4H,EAAsBj4H,EAAEgC,UAAUytE,kBAAkByoD,YAAY,YACpED,GAAuBA,EAAoBp4H,OAAO,cAAeG,IAC7D,IAAI+B,EAAoB6B,EAAK7C,cAAc,WACvCo3H,EAAuBp2H,EAAkBoa,aAAazlB,EAAQ/iB,UAAW,gBAC7EwkJ,EAAuBA,GAAwB,GAC/CA,EAAqBt1I,MAAQmd,EAAEnd,MAC/Bs1I,EAAqBn6I,OAASgiB,EAAEhiB,OAChC+jB,EAAkBoa,aAAazlB,EAAQ/iB,UAAW,eAAgBwkJ,GAAsB,MAGhG7oI,SAAU,KACN,OAAS0oI,QAAoB,IAAWA,GAA4BA,IACpE,EAAajnJ,SAGrB2lB,EAAQ5Z,WAAa8mB,EAAKwiC,cAAc1vC,GACpCA,EAAQo9H,kBACRp9H,EAAQ5Z,WAAWzH,OAAS,KAC5BqhB,EAAQrR,UAAY,SAExBue,EAAK+yH,kBAAkBh2G,qBAAqBjqB,EAAQqhI,cAAerhI,KAG3E,uBACI3lB,KAAK4lJ,kBAAkBxC,0BAG3BiE,GAAwC,OAAAl6H,EAAA,MAAO,GAAI23H,GAAmB,CACtE,mBAAmBpzH,EAAO/L,GACtB,IAAIo/H,GAEA/iJ,OAAQA,GACR2jB,GACC3jB,EAAOwwB,SAAW5d,GAAqB5S,IAAWhC,KAAK8uB,OAAO,yBAA2B,WAAanJ,EAAQiY,UAC/GmnH,EAAyB/kJ,KAAKyyB,kBAAkB,CAC5C9e,KAAM,eACN+c,YAAagB,EACb1vB,OAAQA,EACRmP,gBAAiBnR,KAAK8uB,OAAO,qBAEjCi2H,GAA0B/kJ,KAAKsnJ,2BAA2BvC,EAAwB/iJ,EAAQ,iBAE9FhC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,2BAA2BstB,EAAY9vB,EAAQgwB,GACvC,iBAAmBA,GACnB,OAAa1D,GAAGwD,EAAY,OAAgB9xB,KAAKkwB,aAAajB,IAC1DA,EAAEhD,MAAMg+C,kBACRx9C,EAAuBqF,EAAY9xB,MACnCA,KAAKgwB,cAAc,gBAAgB4f,qBAAqB5tC,EAAOC,OAAO,OAIlF,iBAAiByvB,EAAO1vB,EAAQgwB,GAC5B,IAAIF,EAAa9xB,KAAKk1B,SAASxD,EAAO1vB,EAAQgwB,GAC9CF,GAAc9xB,KAAKsnJ,2BAA2Bx1H,EAAY9vB,EAAQgwB,IAEtE,gCACQhyB,KAAK8uB,OAAO,yBACZ9uB,KAAKu+D,kBAAkB,iBAG/BgpF,4BAA6B,KAAM,EACnC,qBAAqBt4H,GACjB,IACIuY,YAAaA,GACbvY,EACA,QAAcwY,aAAaD,EAAa,CAAC,eAAgB,eACrDxnC,KAAKunJ,+BACLvnJ,KAAKwnJ,gCAIbxnJ,KAAKk1B,SAASjG,MAGlBw4H,GAAkC,OAAAt6H,EAAA,MAAO,GAAI23H,GAAmB,CAChE,sBAAsBrmF,EAAcj1C,GAChC,IAEIu7H,EAFAlyH,EAAO7yB,KACP0+D,EAAQ7rC,EAAKqC,SAAS3wB,MAAMsuB,EAAMruB,WAqBtC,OAnBKglB,EAAYgJ,SAAW5d,GAAqB4U,IAAgBqJ,EAAK/D,OAAO,0BACzEi2H,EAAyBlyH,EAAKJ,kBAAkB,CAC5C9e,KAAM,eACN+c,YAAaguC,EACb18D,OAAQ,CACJsS,UAAW,eAAoBue,EAAK/D,OAAO,eAC3C7Y,aAAcuT,EAAYvT,aAC1BrB,sBAAsB,GAE1BzD,iBAAiB,IAErB4zI,GAA0B,OAAaz2H,GAAGy2H,EAAwB,OAAgBlyH,EAAK3C,aAAajB,IAChG,IACIhD,MAAOA,GACPgD,EACJhD,EAAMg+C,kBACNp3C,EAAK7C,cAAc,gBAAgB4f,qBAAqBpmB,EAAYvnB,OAAO,OAG5Ey8D,KAMf,IAAI,GAAkC,CAClCmiF,2BAA4B,KAAM,EAClC,6BACI,GAAI7gJ,KAAK6gJ,6BACL,OAAO7gJ,KAAKk1B,WAEhB,IAAI4rH,EAAU,CAAC9gJ,KAAKk1B,YAChBxpB,EAAU1L,KAAKg/B,mBAAmBC,kBAAkB,MAAM,GAC1DwQ,EAAyBzvC,KAAKgwB,cAAc,gBAC5C+mB,EAAgBtH,EAAuBi4G,mBA0B3C,OAzBA,eAAKh8I,EAAS,CAACisB,EAAG31B,KACd,IAAIsC,EACJ,KAAIyyC,GAAiBA,EAAc90C,QAAUD,EAAOC,QAGhD2S,GAAqB5S,IAAWA,EAAOqT,2BAA6B5W,MAAMC,QAAQsD,EAAOiU,eAAiBjU,EAAOiU,aAAatX,OAAQ,CACtI,IAAIsX,EAAe,GACnB,eAAKjU,EAAOiU,aAAc,CAAC0hB,EAAG30B,KACtBvE,MAAMC,QAAQsE,GACdsB,EAAStB,GAELhB,EAAO0zC,mBAAqB,QAAc7zC,WAAWG,EAAOF,WAAa,WAAaE,EAAOF,WAC7FkB,EAAchB,EAAO0zC,iBAAiB1yC,IAE1CsB,EAAStC,EAAO2lD,uBAAuB3kD,EAAa,IAAK,iBAEzDsB,IACAA,EAAO46B,YAAcl9B,EAAOC,OAEhCgU,EAAaxW,KAAK6E,KAEtB2R,EAAe,QAAc61C,eAAe71C,EAAc,MAC1D6qI,EAAQrhJ,KAAK,YAAcuC,EAAOgU,WAAa,CAAC,IAAKC,GAAgBA,MAGtE,QAAc61C,eAAeg1F,KAGjC6G,GAAqB,CAC5Bz6G,eAAgB,KAAM,CAClBz7B,wBAAwB,EACxBpP,aAAc,CACVwP,SAAS,EACTC,MAAO,IACP7E,OAAQ,IACR4L,gBAAgB,EAChBN,OAAQ,CACJH,SAAS,EACTQ,QAAS,IACTP,KAAM,WACNzC,cAAe,IAEnBoD,MAAO,CACHoB,WAAY,OAAoBrc,OAAO,qCACvCsc,GAAI,OAAoBtc,OAAO,6BAC/Boc,OAAQ,OAAoBpc,OAAO,qCAI/Cg7B,YAAa,CACT12B,aAAcsjJ,IAElB3sH,MAAO,CACH4uH,iBAAkBjF,IAEtBrpH,UAAW,CACPP,YAAa,CACThlB,KAAM,IAEVilB,MAAO,CACHmU,kBAAmBk6G,GACnBvoF,YAAa2oF,MC3ezB,GAAKr1G,eAAe,eAAgBu1G,I,iBCAhCE,GAA6B,yBAC7BC,GAAmCD,GAA6B,SAChEE,GAAiCF,GAA6B,OAC9DG,GAAuCH,GAA6B,aACpEI,GAAY,IAEhB,SAAS,GAAeC,EAAezqI,GACnC,IAAI0qI,EAAe,eAAE,SAASz7H,SAASo7H,IACnCM,EAAa,eAAE,SAAS17H,SAASq7H,IACjCnkJ,EAASskJ,EAAclqJ,OAAS,GAChCqqJ,EAAgB,SAASzkJ,GACzB,OAAOA,GAAUA,EAAOjF,OAAS,EAAIiF,EAAO,GAAK,MAEjD0kJ,EAAc,SAAS1kJ,GACvB,OAAOA,GAAU,IAAMA,EAAOjF,OAASiF,EAAO,GAAK,MAEvD6Z,EAAUsU,OAAOo2H,GACjB1qI,EAAUsU,OAAO,eAAE,UAAUrF,SAASs7H,IAAsCl0I,KAAKm0I,KACjFxqI,EAAUsU,OAAOq2H,GACjB3qI,EAAUiP,SAASm7H,IACnB7nJ,KAAKuoJ,eAAevnE,aAAa7nD,KAAKn5B,KAAMmoJ,EAAc,OAAAh7H,EAAA,MAAO,GAAI+6H,EAAc5qI,MAAO4qI,EAAe,CACrGlqJ,MAAOqqJ,EAAczkJ,GACrBq9E,WAAY,gBACZitB,SAAU,SAASlwG,GACf4F,EAAS,CAAC5F,EAAOsqJ,EAAY1kJ,IAC7BskJ,EAAch6C,SAAStqG,OAG/B5D,KAAKuoJ,eAAevnE,aAAa7nD,KAAKn5B,KAAMooJ,EAAY,OAAAj7H,EAAA,MAAO,GAAI+6H,EAAc5qI,MAAO4qI,EAAe,CACnGlqJ,MAAOsqJ,EAAY1kJ,GACnBq9E,WAAY,gBACZitB,SAAU,SAASlwG,GACf4F,EAAS,CAACykJ,EAAczkJ,GAAS5F,GACjCkqJ,EAAch6C,SAAStqG,OAI5B,SAAS4kJ,GAAUhzI,EAASkvC,GAC/B,MAAO,CACH/wC,KAAM,UACN6B,QAASA,EACT9B,KAAM,QACN+0I,eAAgBR,GAChBnuI,UAAW,CAAC,SAAU,OAAQ,YAC9BC,eAAgB,GAAema,KAAKwwB,GACpCgkG,cAAc,GCjDtB,IAAI,GAAkB,CAClB,IAAK,QACL,KAAM,WACN,IAAK,OACL,KAAM,cACN,IAAK,UACL,KAAM,iBACNzN,YAAa,iBACbx7H,SAAU,WACVy7H,WAAY,aACZC,SAAU,WACVwN,QAAS,UACTC,WAAY,cAEZC,GAAiB,CACjB,IAAK,QACL,KAAM,WACN,IAAK,WACL,KAAM,kBACN,IAAK,cACL,KAAM,qBACN3N,WAAY,aACZz7H,SAAU,WACVw7H,YAAa,cACbE,SAAU,WACVwN,QAAS,UACTC,WAAY,aACZppI,QAAS,WAEE,IACXspI,yBAA0B,SAASC,GAC/B,OAAO,GAAgBA,IAE3BC,yBAA0B,SAASD,GAC/B,OAAOF,GAAeE,KCF1BE,GAAoB,SACpBC,GAAkB,YAClBC,GAAsB,MACtBC,GAAkB,IAClBC,GAAsB,KACtB,GAAsB,CACtBp2G,OAAQ,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACrDC,OAAQ,CAAC,WAAY,cAAe,aAAc,WAAY,IAAK,KAAM,UAAW,cACpFt0C,KAAM,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACnDu0C,SAAU,CAAC,IAAK,KAAM,IAAK,IAAK,KAAM,KAAM,UAAW,cACvDm2G,QAAS,CAAC,IAAK,KAAM,UAAW,cAChCC,OAAQ,CAAC,UAAW,eAEpBC,GAAiB,CACjB5qJ,KAAM,YACNu0C,SAAU,sBAEVs2G,GAAoB,CAAC,IAAK,KAAM,UAAW,cAC3CC,GAA6B,CAAC,UAAW,gBAAiB,YAAa,WAAY,iBAAkB,YAAa,gBAAiB,mBAAoB,SAAU,SAAU,WAAY,4BAA6B,QACpNC,GAAuB,mBACvBC,GAAiCD,GAAuB,QACxDE,GAAsCD,GAAiC,QACvEE,GAA2CF,GAAiC,aAC5EG,GAAiDD,GAA2C,SAEhG,SAASE,GAAsB1sI,EAAOtf,GAClC,IAAIisJ,EAAc3sI,EAAMvf,QAAUyrJ,GAAelsI,EAAMxb,UACvD,OAAO,QAAa/D,OAAOC,EAAOisJ,GAGtC,SAASC,GAAgBjiI,GACrB,OAAOA,GAASA,EAAMtpB,OAAS,GAAK,MAAQspB,EAAM,KAAOkiI,GAAYliI,GAElE,SAASmiI,GAAiBniI,GAC7B,OAAOiiI,GAAgBjiI,GAASA,EAAM,GAAKA,EAG/C,SAASoiI,GAAiBpiI,EAAOqiI,GAM7B,OALIJ,GAAgBjiI,GAChBA,EAAM,GAAKqiI,EAEXriI,EAAQqiI,EAELriI,EAGX,SAASsiI,GAA2BtiI,EAAOjqB,IACnC,SAASA,GACL,OAAQ,IAAMA,EAAMuE,QAAQ,KADhC,CAEEvE,GAQKksJ,GAAgBjiI,IACrB,SAASA,GACP,IAAIqiI,EAAWF,GAAiBniI,GAChCA,EAAMtpB,OAAS,EACf,GAAGc,KAAK8E,MAAM0jB,EAAOqiI,GAHvB,CAIAriI,GAZGiiI,GAAgBjiI,IACf,SAASA,GACP,IAAIqiI,EAAWriI,EAAMzlB,MAAM,GAC3BylB,EAAMtpB,OAAS,EACfspB,EAAMxoB,KAAK,IAAK6qJ,GAHlB,CAIAriI,GAUP,SAASuiI,GAAcviI,EAAOjqB,GACjCusJ,GAA2BtiI,EAAOjqB,GAClC,IACIwC,EADA8pJ,EAAWF,GAAiBniI,GAYhC,OAVAjqB,EAAQ,SAASA,GACb,OAAQ,IAAMA,EAAMuE,QAAQ,KAAOvE,EAAQA,EAAMysJ,UAAU,GADvD,CAENzsJ,GACA,SAASssJ,EAAUtsJ,GACjB,IAAKwC,EAAI,EAAGA,EAAI8pJ,EAAS3rJ,OAAQ6B,IACxB/B,MAAMC,QAAQ4rJ,EAAS9pJ,MACxB8pJ,EAAS9pJ,GAAKxC,GAHxB,CAMAssJ,EAAUtsJ,GACLiqB,EAEJ,SAASyiI,GAAiBziI,EAAO0iI,GACpC,IAAIC,EAAaC,GAAc5iI,GAC/B,OAAO0iI,EAAgBrmJ,QAAO,SAAUymB,GACpC,OAAOA,EAAK/sB,QAAU4sJ,KACtB,GAGR,SAASE,GAAqBR,GAC1B,GAAIH,GAAYG,GACZ,OAAOnB,GAGX,IADA,IAAInrJ,EAAQ,GACHwC,EAAI,EAAGA,EAAI8pJ,EAAS3rJ,OAAQ6B,IAAK,CACtC,IAAIuqB,EAAOu/H,EAAS9pJ,GACpB,IAAK/B,MAAMC,QAAQqsB,GAAO,CACtB,GAAI/sB,GAASA,IAAU+sB,EACnB,MAAM,IAAI,QAAW8M,MAAM,SAE3B,MAAQ9M,IACR/sB,EAAQ+sB,IAIpB,OAAO/sB,EAEJ,SAAS6sJ,GAAc5iI,GAC1B,IAAIqiI,EAAWF,GAAiBniI,GAC5BjqB,EAAQ8sJ,GAAqBR,GAOjC,OANKtsJ,IACDA,EAAQmrJ,IAERmB,IAAariI,IACbjqB,EAAQ,IAAMA,GAEXA,EAGX,SAAS+sJ,GAA2BztI,GAChC,OAAOA,EAAMjZ,QAAUolJ,IAAqB,GAAoBnsI,EAAMxb,UAAYmnJ,IAGtF,SAAS+B,GAAaC,GAClB,OAAOxsJ,MAAMC,QAAQusJ,IAAWA,EAAOtsJ,OAEpC,SAASusJ,GAAoB5tI,GAChC,IAAIpb,EAAS8oJ,GAAa1tI,EAAMvH,kBAAoBuH,EAAMvH,iBAAmBg1I,GAA2BztI,GACxG,OAAO,OAAA6P,EAAA,MAAO,GAAIjrB,GAEf,SAASipJ,GAAsB7X,EAAWv2H,GAC7C,IAAIy8C,EAAgB,GAA2BwvF,yBAAyB1V,GACxE,OAAOv2H,GAA+BA,EAA4By8C,GAAiBz8C,EAA4By8C,GAAiBA,EAE7H,SAAS4xF,GAA0B9X,EAAW+X,GACjD,IAAK,IAAI7qJ,EAAI,EAAGA,EAAI6qJ,EAAoB1sJ,OAAQ6B,IAC5C,GAAI6qJ,EAAoB7qJ,GAAGxC,QAAUs1I,EACjC,OAAO+X,EAAoB7qJ,GAGnC,MAAM,IAAI,QAAOq3B,MAAM,QAASy7G,GAE7B,SAASgY,GAAmBzuI,EAAkBlJ,GACjD,IAAI43I,EAAqB1uI,EAAiBvY,QAAO,SAAUymB,GACvD,OAAOA,EAAKpX,OAASA,KAEzB,OAAO43I,EAAmB5sJ,OAAS4sJ,EAAmB,GAAK,KAExD,SAASC,GAAuBluI,EAAOP,EAA6BF,GACvE,IAAI9G,EAAmBm1I,GAAoB5tI,GACvCmuI,IAAkBnuI,EAAMjZ,OAU5B,OATAwY,EAAiBqa,SAAQ,SAAU7Z,GAC/B,IAAKC,EAAMvH,mBAAqB,IAAMA,EAAiBxT,QAAQ8a,EAAgB1J,MAAO,CAClF,IAAImG,EAAYuD,GAAmBA,EAAgBvD,UAC/C4xI,IAAuBD,KAAkBpuI,EAAgBqrI,cACxDgD,GAAwB5xI,GAAaA,EAAUvX,QAAQ+a,EAAMxb,UAAYmnJ,KAAsB,GAChGlzI,EAAiBtW,KAAK4d,EAAgB1J,UAI3CoC,EAAiBlX,KAAI,SAAUy0I,GAClC,IAAIj2H,EAAkBiuI,GAAmBzuI,EAAkBy2H,GAC3D,OAAIj2H,EACO,CACH3J,KAAM2J,EAAgB3J,MAAQw1I,GAC9Bp1I,KAAMuJ,EAAgB7H,SAAW,gBAAW6H,EAAgB1J,MAC5D3V,MAAOqf,EAAgB1J,KACvBg4I,UAAU,GAGP,CACHj4I,KAAM,GAA2Bo1I,yBAAyBxV,IAAc4V,GACxEp1I,KAAMq3I,GAAsB7X,EAAWv2H,GACvC/e,MAAOs1I,MAKhB,SAASsY,GAAoBtuI,GAChC,OAAOA,EAAMunC,wBAA0BqmG,GAAoB5tI,GAAO,GAE/D,SAASuuI,GAAgBvuI,EAAOT,GACnC,IAAI3Y,EAAY,CAACoZ,EAAM1a,UAAW,GAAI,IAClCmmJ,EAAkB6C,GAAoBtuI,GAE1C,OADAwuI,GAA2B5nJ,EAAW6kJ,EAAiBlsI,GAChD3Y,EAEJ,SAASymF,GAAW1iE,EAAO8C,GAC9B,IAAIu/H,EAAWF,GAAiBniI,GAC5BhmB,EAAQqoJ,EAAS/nJ,QAAQwoB,GAK7B,OAJAu/H,EAASljH,OAAOnlC,EAAO,GACnB,IAAMqoJ,EAAS3rJ,QACf2rJ,EAASljH,OAAOnlC,EAAO,GAEpBgmB,EAEJ,SAAS8jI,GAAiB/tJ,GAC7B,IAAIguJ,EAAaC,GAAyBjuJ,GACtCkuJ,EAAiBF,EAAaG,GAAuCnuJ,GAASA,EAClF,OAAOguJ,EAAa,CAAC,IAAK,CAACE,IAAmB,CAACA,GAY5C,SAAS,GAAQnhI,EAAM9C,GAC1B,IAAIqiI,EAAWF,GAAiBniI,GAC5B2iI,EAAaC,GAAcP,GAE/B,OADA,IAAMA,EAAS3rJ,OAAS2rJ,EAASvqJ,QAAQgrB,GAAQu/H,EAAS7qJ,KAAKsrB,EAAM6/H,GAC9D3iI,EAEJ,SAASmkI,GAASxpJ,EAAWka,GAChC,IAAK,IAAItc,EAAI,EAAGA,EAAIsc,EAAOne,OAAQ6B,IAAK,CACpC,GAAIsc,EAAOtc,GAAGmT,OAAS/Q,EACnB,OAAOka,EAAOtc,GAElB,GAAIsc,EAAOtc,GAAGoC,UAAUzB,gBAAkByB,EAAUzB,cAChD,OAAO2b,EAAOtc,GAGtB,IAAI6rJ,EAAiBC,GAASxvI,GAAQ,GAAMxY,QAAO,SAAUymB,GACzD,OAAOA,EAAKnoB,UAAUzB,gBAAkByB,EAAUzB,iBAEtD,GAAIkrJ,EAAe1tJ,OAAS,EACxB,OAAO0tJ,EAAe,GAE1B,MAAM,IAAI,QAAOx0H,MAAM,QAASj1B,GAE7B,SAAS,GAAQ0nJ,GACpB,QAAK7rJ,MAAMC,QAAQ4rJ,KAGZA,EAAS3rJ,OAAS,GAAKF,MAAMC,QAAQ4rJ,EAAS,KAAO7rJ,MAAMC,QAAQ4rJ,EAAS,KAEhF,SAASH,GAAYG,GACxB,QAAK7rJ,MAAMC,QAAQ4rJ,KAGZA,EAAS3rJ,OAAS,IAAMF,MAAMC,QAAQ4rJ,EAAS,MAAQ7rJ,MAAMC,QAAQ4rJ,EAAS,KAGzF,SAASiC,GAAoBtkI,EAAOpL,EAAkB2vI,GAClDA,EAAwBA,GAAyBrD,GAGjD,IAFA,IAAI+C,EAAiBpB,GAAqB7iI,GAAO9mB,eAAiBqrJ,EAC9DC,EAAa,GACRjsJ,EAAI,EAAGA,EAAIynB,EAAMtpB,OAAQ6B,IAC1B,GAAQynB,EAAMznB,KACdisJ,EAAWhtJ,KAAKitJ,GAAwBzkI,EAAMznB,GAAIqc,EAAkB2vI,IACpEC,EAAaE,GAA4BF,EAAYP,IAC9C/B,GAAYliI,EAAMznB,MACzBisJ,EAAWhtJ,KAAKmtJ,GAAwB3kI,EAAMznB,GAAIqc,IAClD4vI,EAAaE,GAA4BF,EAAYP,IAM7D,OAHI,IAAMO,EAAW9tJ,SACjB8tJ,EAAaE,GAA4BF,EAAYP,IAElDO,EAGX,SAASI,GAA4B3oJ,EAAW2Y,GAC5C,IAAIQ,EAAkBiuI,GAAmBzuI,EAAkB3Y,EAAU,IACrE,OAAOmZ,GAAmBA,EAAgB1J,OAASzP,EAAU,GAGjE,SAAS0oJ,GAAwB1oJ,EAAW2Y,GACxC,OAAIgwI,GAA4B3oJ,EAAW2Y,IAGvC3Y,EAAUvF,OAAS,IACnBuF,EAAU,GAAKA,EAAU,GACzBA,EAAU,GAAKklJ,IAJRllJ,EASf,SAAS+nJ,GAAyB3Y,GAC9B,OAAQ,IAAMA,EAAU/wI,QAAQ,OAGpC,SAAS4pJ,GAAuC7Y,GAC5C,OAAOA,EAAUmX,UAAU,GAAGtpJ,cAGlC,SAAS2rJ,GAA+BxC,EAAU4B,GAC9C,IAAIF,EAAaC,GAAyBC,GAE1C,OADAA,EAAiBF,EAAaG,GAAuCD,GAAkBA,EAChFF,EAAa,CAAC,IAAK1B,EAAU4B,GAAkB,CAAC5B,EAAU4B,GAGrE,SAASS,GAA4B1kI,EAAOikI,GACxC,IAAIF,EAAaC,GAAyBC,GAC1CA,EAAiBF,EAAaG,GAAuCD,GAAkBA,EACvFjkI,EAAMxoB,KAAKysJ,GACX,IAAIhqJ,EAAS+lB,EAIb,OAHI+jI,IACA9pJ,EAAS,CAAC,IAAKA,IAEZA,EAEJ,SAASwqJ,GAAwB1uJ,EAAO6e,EAAkB2vI,GAE7D,OADAA,EAAwBA,GAAyBrD,GAC5CnrJ,GAGLA,EAAQ,OAAAmvB,EAAA,OAAO,EAAM,GAAInvB,GACrBmsJ,GAAYnsJ,GACL8uJ,GAA+BF,GAAwB5uJ,EAAO6e,GAAmB2vI,GAExFtC,GAAgBlsJ,GACT,CAAC,IAAKmsJ,GAAYnsJ,EAAM,IAAM8uJ,GAA+BF,GAAwB5uJ,EAAM,GAAI6e,GAAmB2vI,GAAyBtC,GAAgBlsJ,EAAM,IAAM8uJ,GAA+BJ,GAAwB1uJ,EAAM,GAAI6e,GAAmB2vI,GAAyBD,GAAoBvuJ,EAAM,GAAI6e,EAAkB2vI,IAExUD,GAAoBvuJ,EAAO6e,EAAkB2vI,IATzCT,GAAiBS,GAWzB,SAASO,GAAoBjwI,GAChC,OAAOA,EAAO0c,QAAO,SAAUt3B,EAAQob,GACnC,GAAI,eAAUA,EAAM1a,WAAY,CAC5B,IAAIoqJ,EAAkB,GACtB,IAAK,IAAIj/F,KAAOzwC,EACRA,EAAMywC,IAAQ27F,GAA2BnnJ,QAAQwrD,IAAQ,IACzDi/F,EAAgBj/F,GAAOzwC,EAAMywC,IAGrCi/F,EAAgB7oJ,iCAAmC,QAAYA,iCAC1D,eAAU6oJ,EAAgBlrJ,YAC3BkrJ,EAAgBlrJ,SAAWmnJ,IAE1B,eAAU+D,EAAgB71I,YAC3B61I,EAAgB71I,SAAW,OAAoBpZ,OAAO,wBAErD,eAAUivJ,EAAgBl3I,aAC3Bk3I,EAAgBl3I,UAAY,OAAoB/X,OAAO,yBAE3DmE,EAAOzC,KAAKutJ,GAEhB,OAAO9qJ,IACP,IAGR,SAAS+qJ,GAA6B/oJ,EAAW4Y,EAAQD,EAAkBna,GACvE,IAAI4a,EAAQ8uI,GAASloJ,EAAU,GAAI4Y,GAC/BowI,EAAmBN,GAAwB1oJ,EAAW2Y,GACtDQ,EAAkBR,EAAiBle,QAAU2sJ,GAAmBzuI,EAAkBqwI,EAAiB,IACvG,OAAI7vI,GAAmBA,EAAgBhI,0BAC5BgI,EAAgBhI,0BAA0B9Q,MAAM8Y,EAAiB,CAAC6vI,EAAiB,GAAI5vI,EAAOR,IAC9FQ,EAAMqqC,uBACNrqC,EAAMqqC,uBAAuBpjD,MAAM+Y,EAAO,CAAC4vI,EAAiB,GAAIA,EAAiB,GAAIxqJ,IACrF4a,EAAMjI,0BACNiI,EAAMjI,0BAA0B9Q,MAAM+Y,EAAO,CAAC4vI,EAAiB,GAAIA,EAAiB,GAAIxqJ,IAExF4a,EAAMnZ,iCAAiCI,MAAM+Y,EAAO,CAAC4vI,EAAiB,GAAIA,EAAiB,GAAIxqJ,IAGvG,SAASyqJ,GAAoBnvJ,EAAO8e,EAAQD,EAAkBna,GACjE,IAAK,eAAU1E,GACX,OAAO,KAEX,GAAIksJ,GAAgBlsJ,GAAQ,CACxB,IAAIkvJ,EAAmBC,GAAoBnvJ,EAAM,GAAI8e,EAAQD,EAAkBna,GAC/E,MAAO,CAAC,IAAKwqJ,GAEjB,IAAI5C,EAAWF,GAAiBpsJ,GAChC,GAAImsJ,GAAYG,GACZ,OAAO2C,GAA6B3C,EAAUxtI,EAAQD,EAAkBna,IAAW,KAKnF,IAHA,IACI0qJ,EADAlrJ,EAAS,GAET0oJ,EAAaC,GAAcP,GACtB9pJ,EAAI,EAAGA,EAAI8pJ,EAAS3rJ,OAAQ6B,IAC7B,GAAQ8pJ,EAAS9pJ,KACjB4sJ,EAAoBD,GAAoB7C,EAAS9pJ,GAAIsc,EAAQD,EAAkBna,GAC3E0qJ,IACA5sJ,GAAK0B,EAAOzC,KAAKmrJ,GACjB1oJ,EAAOzC,KAAK2tJ,KAETjD,GAAYG,EAAS9pJ,MAC5B4sJ,EAAoBH,GAA6B3C,EAAS9pJ,GAAIsc,EAAQD,EAAkBna,GACpF0qJ,IACAlrJ,EAAOvD,QAAUuD,EAAOzC,KAAKmrJ,GAC7B1oJ,EAAOzC,KAAK2tJ,KAOxB,OAHI,IAAMlrJ,EAAOvD,SACbuD,EAASA,EAAO,IAEbA,EAAOvD,OAASuD,EAAS,KAGjC,SAASmrJ,GAAoBplI,GAChC,IACIznB,EADA8pJ,EAAWF,GAAiBniI,GAEhC,GAAI,IAAMqiI,EAAS3rJ,OACf,OAAO,KAEX,IAAI2uJ,EAAiB,GACrB,IAAK9sJ,EAAI,EAAGA,EAAI8pJ,EAAS3rJ,OAAQ6B,IAC7B,GAAI,GAAQ8pJ,EAAS9pJ,IAAK,CACtB,IAAI+sJ,EAAuBF,GAAoB/C,EAAS9pJ,IACpD+sJ,EACAjD,EAAS9pJ,GAAK+sJ,EAEdD,EAAe7tJ,KAAK6qJ,EAAS9pJ,SAE1B2pJ,GAAYG,EAAS9pJ,MACvBgtJ,GAAiBlD,EAAS9pJ,KAC3B8sJ,EAAe7tJ,KAAK6qJ,EAAS9pJ,KAIzC,IAAKA,EAAI,EAAGA,EAAI8sJ,EAAe3uJ,OAAQ6B,IACnCmqF,GAAW2/D,EAAUgD,EAAe9sJ,IAExC,OAAI,IAAM8pJ,EAAS3rJ,OACR,MAEX2rJ,EAASljH,OAAOkjH,EAAS3rJ,OAAS,EAAG,GACjC,IAAM2rJ,EAAS3rJ,SACfspB,EAAQoiI,GAAiBpiI,EAAOqiI,EAAS,KAEzC,IAAMriI,EAAMtpB,OACL,KAEJspB,GAEJ,SAASwlI,GAA0BnwI,EAAOtf,EAAOg2F,GACpD,GAAI,KAAOh2F,EAAX,CAIA,IAAIqG,EAASiZ,EAAMjZ,OACnB,GAAIA,EAAOmd,MACPwyE,EAAQ3vF,EAAO+Q,mBAAmBpX,IAAU,QACzC,CACH,IAAImhJ,EAAmB,eAAW96I,EAAO0H,YAAc1H,EAAO0H,WAAW,IAAM1H,EAAO0H,WAClFA,EAAa,IAAI,QAAWozI,GAChCpzI,EAAW2hJ,WAAWrpJ,EAAOsV,UAAW3b,GAAOw4B,MAAK,SAAUt0B,GAC1D,IAAIk0C,EAAY,GACZl0C,IACAk0C,EAAY/xC,EAAOqV,YAAc,gBAAcrV,EAAOqV,YAArB,CAAkCxX,GAAUA,GAE7Eob,EAAM5H,gBACN0gC,EAAY94B,EAAM5H,cAAc,CAC5B1X,MAAOA,EACPo4C,UAAWA,KAGnB49C,EAAQ59C,MACRnN,MAAK,WACL+qD,EAAQ,aAtBZA,EAAQ,IA2BhB,SAAS25D,GAAsBrwI,EAAOtf,EAAOqf,EAAiB3a,EAAQijB,GAClE,IAAIywB,EAuBJ,OArBIA,GADA,IAASp4C,EACGsf,EAAMnG,UAAY,OAAoBpZ,OAAO,wBAClD,IAAUC,EACLsf,EAAMxH,WAAa,OAAoB/X,OAAO,wBAE9CisJ,GAAsB1sI,EAAOtf,GAEzCsf,EAAM5H,gBACN0gC,EAAY94B,EAAM5H,cAAcyjB,KAAK7b,EAAO,CACxCtf,MAAOA,EACPo4C,UAAWA,EACX1zC,OAAQA,KAGZ2a,GAAmBA,EAAgB3H,gBACnC0gC,EAAY/4B,EAAgB3H,cAAcyjB,KAAK9b,EAAiB,CAC5Drf,MAAOA,EACPo4C,UAAWA,EACX94B,MAAOA,EACP5a,OAAQA,GACTijB,IAEAywB,EAGX,SAASw3G,GAAkBtwI,EAAOtf,EAAOqf,EAAiB3a,GACtD,IAAIijB,EAAU,CACV/hB,OAAQ5F,GAEZ,OAAOA,EAAMa,IAAIgzG,GAAK87C,GAAsBrwI,EAAOu0F,EAAGx0F,EAAiB3a,EAAQijB,IAGnF,SAASkoI,GAAkB7vJ,GACvB,MAAO,KAAOA,GAAS,OAASA,EAE7B,SAAS8vJ,GAAoBxwI,EAAOtf,EAAOqf,GAC9C,IAAI3a,EAAS8B,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,GAAKA,UAAU,GAAK,gBAC9E,GAAIqpJ,GAAkB7vJ,GAClB,MAAO,GAEX,GAAIS,MAAMC,QAAQV,GAAQ,CACtB,IAAIkE,EAAS,IAAI,OAQjB,OAPA,OAAKqC,MAAMvE,KAAM4tJ,GAAkBtwI,EAAOtf,EAAOqf,EAAiB3a,IAAS8zB,MAAK,WAC5E,IAAK,IAAI82B,EAAO9oD,UAAU7F,OAAQqvB,EAAO,IAAIvvB,MAAM6uD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7Ev/B,EAAKu/B,GAAQ/oD,UAAU+oD,GAE3B,IAAIz5C,EAAOka,EAAK2rB,KAAK5uB,IAAS8iI,GAAkB9iI,IAASiD,EAAKnvB,IAAIksB,GAAS8iI,GAAkB9iI,GAAe,IAAPA,GAAc,GACnH7oB,EAAOg7B,QAAQppB,MAEZ5R,EAEP,OAAOyrJ,GAAsBrwI,EAAOtf,EAAOqf,EAAiB3a,GAIpE,SAASqrJ,GAAW3wE,EAAY0N,GAC5B,OAAO1N,EAAWzjC,MAAK,SAAU5uB,GAC7B,OAAOA,EAAKnoB,YAAckoF,KAIlC,SAASkjE,GAAuBC,EAAe7wE,EAAYryD,GACvD,IAAInoB,EAAYmoB,EAAKnoB,UACjBsrJ,GAAUtrJ,KACVmoB,EAAK+/D,SAAWqjE,GAA6BvrJ,GACxCmrJ,GAAW3wE,EAAYryD,EAAK+/D,WAAcijE,GAAWE,EAAeljI,EAAK+/D,WAC1EkjE,GAAuBC,EAAe7wE,EAAY,CAC9C5kC,GAAIztB,EAAK+/D,SACThpF,SAAU,SACVc,UAAWmoB,EAAK+/D,SAChBt1E,QAAS44I,GAA2BrjI,EAAK+/D,UAAU,GACnD/0E,iBAAkB,CAAC,UAAW,cAC9B5R,iCAAkC,QAAYA,oCAI1Di5E,EAAW39E,KAAKsrB,GAGpB,SAASqjI,GAA2BxrJ,EAAW+Z,GAC3C,IAAInH,EAAU,GACd,GAAImH,EACA/Z,EAAYA,EAAU6nJ,UAAU7nJ,EAAUyrJ,YAAY,KAAO,QAC1D,GAAIH,GAAUtrJ,GAOjB,OANAA,EAAUkB,MAAM,KAAKozB,SAAQ,SAAU5Z,EAAOrb,EAAOqsJ,GACjD94I,GAAW,gBAAW8H,GAClBrb,IAAUqsJ,EAAI3vJ,OAAS,IACvB6W,GAAW,QAGZA,EAEX,OAAO,gBAAW5S,GAEf,SAAS0pJ,GAASxvI,EAAQH,GAE7B,IADA,IAAI6E,EAAQ,GACHhhB,EAAI,EAAGA,EAAIsc,EAAOne,OAAQ6B,IAAK,CACpC,IAAIuqB,EAAO,OAAAoC,EAAA,OAAO,EAAM,CACpB3X,QAAS44I,GAA2BtxI,EAAOtc,GAAGoC,UAAW+Z,IAC1DG,EAAOtc,IACVuqB,EAAKytB,GAAKztB,EAAKpX,MAAQoX,EAAKnoB,UACxB+Z,EACAqxI,GAAuBlxI,EAAQ0E,EAAOuJ,GAEtCvJ,EAAM/hB,KAAKsrB,GAGnB,OAAOvJ,EAGX,SAAS0sI,GAAUtrJ,GACf,OAAQ,IAAMA,EAAUyrJ,YAAY,KAGxC,SAASF,GAA6BvrJ,GAClC,OAAOA,EAAU6nJ,UAAU,EAAG7nJ,EAAUyrJ,YAAY,MAEjD,SAASE,GAAsBxjI,EAAMqyD,GACxC,GAAI8wE,GAAUnjI,EAAKnoB,WAEf,IADA,IAAIkoF,EAAWqjE,GAA6BpjI,EAAKnoB,WACxCpC,EAAI,EAAGA,EAAI48E,EAAWz+E,OAAQ6B,IACnC,GAAI48E,EAAW58E,GAAGoC,YAAckoF,EAC5B,OAAOyjE,GAAsBnxE,EAAW58E,GAAI48E,GAAc,IAAMryD,EAAKvV,QAIjF,OAAOuV,EAAKvV,QAET,SAASs2I,GAA2B5nJ,EAAWovI,EAAWz2H,GAC7D,IAAIQ,EAAkBiuI,GAAmBzuI,EAAkBy2H,GAC3D,OAAIj2H,IACI,IAAUA,EAAgBrD,UAC1B9V,EAAU,GAAKovI,EACfpvI,EAAUvF,OAAS,IAEnBuF,EAAU,GAAKovI,EACfpvI,EAAU,GAAK,IAEZA,IAEP,YAAcovI,GACdpvI,EAAU,GAAKklJ,GACfllJ,EAAU,GAAK,MACR,eAAiBovI,GACxBpvI,EAAU,GAAKmlJ,GACfnlJ,EAAU,GAAK,OAEfmZ,EAAkBiuI,GAAmBzuI,EAAkB3Y,EAAU,KAC7DmZ,GAAmB,IAAMnZ,EAAUvF,QAAU,OAASuF,EAAU,MAChEA,EAAU,GAAK,IAEnBA,EAAU,GAAKovI,GAEZpvI,GAEJ,SAASsqJ,GAAkBtqJ,GAC9B,IAAIsR,EAUJ,OAPQA,EAFJ,OAAStR,EAAU,GACfA,EAAU,KAAOklJ,GACP,UAEA,aAGJllJ,EAAU,GAEjBsR,EAEJ,SAASg4I,GAAiBtpJ,GAC7B,MAAO,KAAOA,EAAU,GAErB,SAASuqJ,GAAoB5xI,EAAkB6xI,EAAgBhqG,GAClE,IAAIxiD,EAAS,OAAAirB,EAAA,OAAO,EAAM,GAAItQ,GAC1B8xI,GAAgB,EAYpB,OAXAzsJ,EAAOy3C,MAAK,SAAUt8B,EAAiBpb,GACnC,GAAI,YAAcob,EAAgB1J,KAE9B,OADAg7I,EAAe1sJ,GACR,MAGV,IAAM0sJ,EACPzsJ,EAAOysJ,GAAgB,OAAAxhI,EAAA,MAAOq7H,GAAUkG,EAAgBhqG,GAAUxiD,EAAOysJ,IAEzEzsJ,EAAOnC,QAAQyoJ,GAAUkG,EAAgBhqG,IAEtCxiD,EAGX,SAAS0sJ,GAAmBtqJ,EAAQuqJ,GAChC,OAAOvqJ,EAAO,KAAOuqJ,EAElB,SAASC,GAAgCxqJ,EAAQ1B,GACpD,IAAK0B,GAAU,IAAMA,EAAO3F,OACxB,OAAO,KAEX,GAAIwrJ,GAAY7lJ,GAAS,CACrB,IAAIyqJ,EAAsBH,GAAmBtqJ,EAAQ1B,GACrD,OAAQmsJ,EAA+B,KAATzqJ,EAE9B,OAAO0qJ,GAAuB1qJ,EAAQ,CAAC1B,IAAY,GAI3D,SAASosJ,GAAuB1qJ,EAAQ2qJ,EAAaC,GACjD,IAAIhtJ,EAAS,GAiBb,OAhBAoC,EAAO4yB,SAAQ,SAAUnM,GACjBo/H,GAAYp/H,GACR6jI,GAAmB7jI,EAAMkkI,EAAY,IACjCC,GACAhtJ,EAAOzC,KAAKwvJ,GACZC,GAAU,GAEVhtJ,EAAOklC,OAAOllC,EAAOvD,OAAS,EAAG,GAGrCuD,EAAOzC,KAAKsrB,IAGf7oB,EAAOvD,QAAU,GAAQosB,KAAU7oB,EAAOzC,KAAKsrB,MAGpD,IAAM7oB,EAAOvD,OACN,MAEPuwJ,IACAhtJ,EAAOzC,KAAK0pJ,IACZjnJ,EAAOzC,KAAKwvJ,IAET,IAAM/sJ,EAAOvD,OAASuD,EAAO,GAAKA,GAEtC,SAASitJ,GAAY7qJ,EAAQ2qJ,GAChC,GAAI,OAAS3qJ,GAAU,IAAMA,EAAO3F,OAChC,OAAOswJ,EAEX,GAAI9E,GAAY7lJ,GACZ,OAAIsqJ,GAAmBtqJ,EAAQ2qJ,EAAY,IAChCA,EAEA,CAAC3qJ,EAAQ6kJ,GAAqB8F,GAG7C,IAAIrE,EAAaC,GAAcvmJ,GAC/B,OAAIsmJ,IAAezB,GACR,CAAC8F,EAAa,MAAO3qJ,GAEzB0qJ,GAAuB1qJ,EAAQ2qJ,GAAa,GAEhD,SAASG,GAAqB9qJ,EAAQ1B,GACzC,GAAI,OAAS0B,GAAU,IAAMA,EAAO3F,OAChC,MAAO,GAEX,GAAIwrJ,GAAY7lJ,GACZ,OAAIsqJ,GAAmBtqJ,EAAQ1B,GACpB,CAAC0B,GAED,GAGf,IAAIsmJ,EAAaC,GAAcvmJ,GAC/B,GAAIsmJ,IAAezB,GACf,MAAO,GAEX,IAAIjnJ,EAASoC,EAAOA,QAAO,SAAUymB,GACjC,OAAOo/H,GAAYp/H,IAAS6jI,GAAmB7jI,EAAMnoB,MAEzD,OAAOV,EAEJ,SAASmtJ,GAAe/qJ,EAAQ1B,GACnC,OAAI,OAAS0B,GAAU,IAAMA,EAAO3F,SAGhCwrJ,GAAY7lJ,GACLA,EAAO,KAAO1B,EAElB0B,EAAOq1C,MAAK,SAAU5uB,GACzB,OAAQo/H,GAAYp/H,IAAS,GAAQA,KAAUskI,GAAetkI,EAAMnoB,OAGrE,IAAI0sJ,GAAkB,SAASz9H,EAAY7zB,EAAOqf,GACrD,GAAI5e,MAAMC,QAAQV,GAAQ,CACtB,IAAIuxJ,EAAgBvxJ,EAAMW,OAAS,EACnCkzB,EAAWsC,QACXn2B,EAAMk5B,QAAQ,CAACs4H,EAAGhvJ,KACd,eAAE,UAAUksB,SAASm9H,IAAqC/1I,KAAK07I,GAAGn5H,SAASxE,GACvErxB,IAAM+uJ,GACN,eAAE,UAAU7iI,SAASo9H,IAA0Ch2I,KAAKuJ,GAAmBA,EAAgBorI,eAAiBprI,EAAgBorI,eAAiB,KAAK/7H,SAASq9H,IAAgD1zH,SAASxE,UAGjO7zB,EACP6zB,EAAW/d,KAAK9V,GAEhB6zB,EAAW/d,KAAK,OAAoB/V,OAAO,oCC7vBnD,SAAS0xJ,GAAcC,GACnB,IAAIC,EAAc,SAASC,EAAUC,GACjC,OAAOA,EAAa,GAAGxkI,OAAOwkI,EAAY,KAAKxkI,OAAOukI,GAAYA,GAElEngH,EAAyBigH,GAAQA,EAAK1/H,cAAc,gBACxD,MAAO,CACHlW,UAAW,CAAC,SAAU,OAAQ,WAAY,SAAU,UAAW,UAC/DzE,0BAA2B,SAASrS,EAAasa,EAAOR,GACpD,IAAI5a,EAAS,GACT4tJ,EAAY9sJ,EAAYrE,OAAS,EAWrC,OAVAqE,GAAeA,EAAYk0B,QAAQ,CAACl5B,EAAOiE,KACvC,GAAIkoJ,GAAYnsJ,IAAU,GAAQA,GAAQ,CACtC,IAAIkvJ,EAAmBC,GAAoBnvJ,EAAO8e,EAAQ,GAAI,gBAC9D5a,EAAOzC,KAAKytJ,OACT,CACH,IAAIE,EAAoBD,GAAoB,CAAC7vI,EAAM1a,UAAW,IAAK5E,GAAQ8e,EAAQ,GAAI,gBACvF5a,EAAOzC,KAAK2tJ,GAEhBnrJ,IAAU6tJ,GAAa5tJ,EAAOzC,KAAK,QAEnC,IAAMyC,EAAOvD,OACNuD,EAAO,GAEXA,GAEX,eAAegmJ,EAAezqI,GAC1B,IAAIsyI,EAAM,eAAE,SAASrjI,SAAS,oCAAoC2J,SAAS5Y,GACvEzb,EAAS,OAAAmrB,EAAA,OAAO,EAAM,GAAIuiI,EAAKtkH,aAAa88G,EAAc5qI,MAAM1a,YAkBpE,OAjBA0sJ,GAAgBS,EAAK7H,EAAcp0I,MAAQo0I,EAAcp0I,KAAKhQ,MAAM,MACpE9B,EAAOgU,WAAa,UACpBhU,EAAOiU,aAAeiyI,EAAclqJ,MAAQkqJ,EAAclqJ,MAAMwE,QAAU,GAC1EitC,EAAuBs3G,yBAAyB,CAC5CC,cAAe+I,EACf/tJ,OAAQA,EACR,QAEI,IAAIhE,EADJA,EAAQgC,KAAKiW,aAAmBiyI,EAAch6C,SAASlwG,GAEvDyxC,EAAuB2zG,uBACvB8E,EAAc8H,eAElB,WACI9H,EAAc8H,eAElBjN,iBAAiB,IAEdtlI,GAEX/H,cAAe,SAASu6I,EAAWtqI,GAC/BA,EAAUA,GAAW,GACrB,IACI3nB,MAAOA,GACPiyJ,EACAjuJ,EAAS0tJ,EAAKtkH,aAAa6kH,EAAU3yI,MAAM1a,WAC3CP,EAAeL,GAAUA,EAAOK,aAChCgC,EAASrC,GAAUA,EAAOqC,OAC1BT,EAAS+hB,EAAQ/hB,QAAU,CAAC5F,GAChC,GAAIqE,GAAgBA,EAAa0J,YAAc1H,GAAUA,EAAO0H,WAAY,CACxE,IAAI7J,EAAS,IAAI,OACbguJ,EAAgBvqI,EAAQnE,OAAS,IAAI,OACzC,IAAKmE,EAAQnE,MAAO,CAChBxf,EAAS,OAAAmrB,EAAA,MAAO,GAAInrB,EAAQ,CACxBgU,WAAY,UACZC,aAAcrS,IAElB,IAAImkD,EAAoBtY,EAAuB4lB,cAAcrzD,GAC7D+lD,EAAkBC,UAAW,EAC7B,IAAIj8C,EAAa,IAAI,QAAWg8C,GAC5BgG,EAAMhiD,EAAWg/C,QAAQgD,MAC7B,GAAIA,EAAK,CACL,IACInqD,OAAQusJ,GACRxqI,EACJ,GAAIwqI,GAAWA,EAAQxxJ,OAAS,EAAG,CAC/B,IAAI2F,EAAS6rJ,EAAQ32H,OAAO,CAACt3B,EAAQlE,KAC7BkE,EAAOvD,QACPuD,EAAOzC,KAAK,MAEhByC,EAAOzC,KAAK,CAACsuD,EAAK,IAAK/vD,IAChBkE,GACR,IACH6J,EAAWzH,OAAOA,QAElByH,EAAWzH,OAAO,CAACypD,EAAK,IAAKkiG,EAAUjyJ,aAEpCiyJ,EAAU3yI,MAAMxa,uBACvB,QAAO2kD,IAAI,SAEf9hC,EAAQnE,MAAQ0uI,EAChBnkJ,EAAWk8C,OAAOzxB,KAAK05H,EAAchzH,SAgBzC,OAdAgzH,EAAc15H,KAAKhV,IACf,IAAIvf,EAAQ2B,EAAOrB,QAAQ0tJ,EAAUjyJ,OACrCkE,EAAOg7B,QAAQ,SAASkzH,EAAsB5uI,EAAOquI,GACjD,IAAI3tJ,EAAS,GAQb,OAPAsf,EAAM0V,QAAQnM,IACV,GAAIA,EAAKvJ,MAAO,CACZ,IAAI6uI,EAAqBD,EAAsBrlI,EAAKvJ,MAAOmuI,EAAY5kI,EAAKjX,KAAM+7I,IAClF3tJ,EAASA,EAAOmpB,OAAOglI,GAE3BtlI,EAAKuyD,UAAYp7E,EAAOzC,KAAKkwJ,EAAY5kI,EAAKjX,KAAM+7I,MAEjD3tJ,EATI,CAUbsf,EAAO,MAAMvf,MAEZC,EAEX,IAAI4R,EAAO27B,EAAuBw2G,kBAAkBjoJ,EAAOgE,EAAQ,EAAG0tJ,EAAK5gI,OAAO,iBAClF,OAAOhb,IAIZ,SAASw8I,GAAMZ,GAClB,OAAO,OAAAviI,EAAA,MAAOsiI,GAAcC,GAAO,CAC/B/7I,KAAM,QACND,KAAM,YACN8B,QAAS,OAAoBzX,OAAO,0CAGrC,SAASwyJ,GAAOb,GACnB,IAAIc,EAASf,GAAcC,GAC3B,OAAO,OAAAviI,EAAA,MAAO,GAAIqjI,EAAQ,CACtB,0BAA0BxtJ,EAAasa,EAAOR,GAC1C,IAAI2zI,EAAaD,EAAOn7I,0BAA0BrS,EAAasa,EAAOR,GACtE,OAAK2zI,GAAc,IAAMA,EAAW9xJ,OAG7B,MAAQ8xJ,EAAW,GAAKA,EAAa,CAAC,IAAKA,GAFvC,MAIf98I,KAAM,SACND,KAAM,cACN8B,QAAS,OAAoBzX,OAAO,2CChI5C,IAAI2yJ,GAAwB,CAAC,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,cAAe,WAAY,aAAc,WAAY,WAC/GC,GAAuB,UACvBC,GAAuB,UAE3B,SAASC,GAAoB7uJ,GACzB,OAAOA,EAAO2R,MAAQ3R,EAAOY,UAGjC,SAASkuJ,GAAeplJ,GACpBA,EAAQwrB,QAAQl1B,IACZ,IAAIs7C,EAAauzG,GAAoB7uJ,GACrC,IAAK,eAAUs7C,IAAet7C,EAAOyS,eACjC,MAAM,IAAI,QAAOojB,MAAM,QAAS71B,EAAOwT,WAInD,IAAIu7I,GAAuB,GAAQl8H,WAAWjC,QAAQ,WAClD,IAAIo+H,EAAuB,WACvB,MAAO,CACHh7I,WAAY26I,GACZ16I,kBAAc,IAGlBg7I,EAAmC,SAASjvJ,GAC5C,IAAIiU,EAAejU,EAAOiU,cAAgB,GAC1C,OAAQ,QAAYlU,iBAAiBC,MAAaA,EAAOK,cAAgBL,EAAOK,aAAa0J,aAAe,IAAMkK,EAAatX,QAAU,OAASsX,EAAa,IAE/Ji7I,EAA4B,SAASlvJ,GACrC,IAAIhE,EAAQgE,EAAOgB,YACnB,GAAI,eAAUhF,GAAQ,CAClB,IAAIs1I,EAAYtxI,EAAOwB,yBAA2BxB,EAAO6iD,wBAA0B+mG,GAAoB5pJ,GACnGsC,EAAS,CAACusJ,GAAoB7uJ,GAASsxI,EAAWtxI,EAAOgB,aAC7D,OAAOsB,EAEX,OAAO,MAEP6sJ,EAA+B,SAASnvJ,GACxC,IAAIovJ,EACApzJ,GAEAiY,aAAcA,GACdjU,EACJ,OAAKiU,GAGD,IAAMA,EAAatX,QAAUsyJ,EAAiCjvJ,KAAYvD,MAAMC,QAAQuX,EAAa,KACxDm7I,EAA7CpvJ,EAAOgU,aAAe46I,GAA2C,KAA2B,IAC5F5yJ,EAAQiY,EAAa,KAEwBm7I,EAA7CpvJ,EAAOgU,aAAe46I,GAA2C,SAA+B,QAChG5yJ,EAAQiY,GAEL,CAAC46I,GAAoB7uJ,GAASovJ,EAAmBpzJ,IAT7C,MAWXqzJ,EAA8B,SAASrgI,EAAmBhvB,EAAQsvJ,GAClE,IAAIjvJ,EAAe,SAASivJ,EAAuBtvJ,GAC/C,IAAKsvJ,EACD,OAAON,IAEX,IAAIh7I,EACAxS,EAA0B8tJ,EAAsB,GAChDtzJ,EAAQszJ,EAAsB,GAC9BC,EAAgB9yJ,MAAMC,QAAQV,GAClC,IAAKuzJ,IACIN,EAAiCjvJ,GAClC,OAAOgvJ,IAGf,OAAQxtJ,GACJ,IAAK,QACL,IAAK,IACDwS,EAAa26I,GACb,MACJ,IAAK,SACL,IAAK,KACD36I,EAAa46I,GACb,MACJ,QACI,OAAOI,IAEf,MAAO,CACHh7I,WAAYA,EACZC,aAAcs7I,EAAgBvzJ,EAAQ,CAACA,IA3B5B,CA6BjBszJ,EAAuBtvJ,GACzBgvB,EAAkBoa,aAAaylH,GAAoB7uJ,GAASK,IAE5DmvJ,EAA2B,SAASxgI,EAAmBhvB,EAAQkC,GAC/D,IAAIi8I,EACA38I,EAA0B,OAASU,QAAa,IAAWA,OAAY,EAASA,EAAU,GAC1FlB,EAAc,OAASkB,QAAa,IAAWA,OAAY,EAASA,EAAU,GAC9E6R,EAAmB/T,EAAO+T,kBAAoB/T,EAAOyxC,0BACnD19B,GAAoBA,EAAiBxT,QAAQiB,IAA4B,GAAKA,IAA4BxB,EAAO6iD,yBAA2B6rG,GAAsBliH,SAAShrC,IAA4B,OAASR,GAC9MQ,IAA4BxB,EAAO6iD,wBAA2B,eAAU7iD,EAAOwB,2BAC/EA,EAA0BxB,EAAOwB,yBAErC28I,EAAmB,CACfn9I,YAAaA,EACbQ,wBAAyBA,IAG7B28I,EAAmB,CACfn9I,iBAAa,EACbQ,6BAAyB,GAGjCwtB,EAAkBoa,aAAaylH,GAAoB7uJ,GAASm+I,IAEhE,MAAO,CACH,kBACI,IAAIttH,EAAO7yB,KACPgxB,EAAoB6B,EAAK7C,cAAc,WACvCtkB,EAAUslB,EAAkBygI,sBAChCzxJ,KAAK0xJ,wBAAyB,EAC9BhmJ,EAAQwrB,QAAQl1B,IACZ,IAAI2vJ,EAAmBvC,GAAqBv8H,EAAK/D,OAAO,eAAgB+hI,GAAoB7uJ,IAC5F,GAAI,IAAM2vJ,EAAiBhzJ,OAAQ,CAC/B,IAAIizJ,EAAkBD,EAAiB,GACvCN,EAA4BrgI,EAAmBhvB,EAAQ4vJ,GACvDJ,EAAyBxgI,EAAmBhvB,EAAQ4vJ,QAEpD,eAAU5vJ,EAAOiU,eAAiBo7I,EAA4BrgI,EAAmBhvB,EAAQ,MACzF,eAAUA,EAAOgB,cAAgBwuJ,EAAyBxgI,EAAmBhvB,EAAQ,QAG7FhC,KAAK0xJ,wBAAyB,GAElC,YACI,IAAIhmJ,EAAU1L,KAAKgwB,cAAc,WAAWiC,aACxC8zB,EAAiB/lD,KAAKgwB,cAAc,QACpCrJ,EAAYo/B,EAAep/B,YAE/B,GADAmqI,GAAeplJ,IACV1L,KAAK8uB,OAAO,eAAgB,CAC7B,IAAI+iI,EAAmB7xJ,KAAKgwB,cAAc,WAAWyhI,sBACjDzuJ,EAAchD,KAAKy5E,0BAA0Bo4E,GACjD7xJ,KAAK8uB,OAAO,cAAe9rB,GAE/BhD,KAAK8xJ,kBACL/rG,EAAep/B,UAAUA,IAE7B,OACI,IAAIo/B,EAAiB/lD,KAAKgwB,cAAc,QACpC+1B,EAAegsG,uBACX/xJ,KAAKgwB,cAAc,WAAW2vB,wBAC9B3/C,KAAKgyJ,YAELjsG,EAAeuN,kBAAkB5xB,IAAI,IAAM1hC,KAAKgyJ,eAI5D,kBAAkBhvJ,EAAahB,GAC3B,IAAIsC,EAAS4sJ,EAA0BlvJ,GACvC,OAAI,eAAUsC,GACH6qJ,GAAYnsJ,EAAasB,GAE7BwqJ,GAAgC9rJ,EAAa6tJ,GAAoB7uJ,KAE5E,qBAAqBgB,EAAahB,GAC9B,IAAIsC,EAAS6sJ,EAA6BnvJ,GAC1C,OAAIsC,EACO6qJ,GAAYnsJ,EAAasB,GAE7BwqJ,GAAgC9rJ,EAAa6tJ,GAAoB7uJ,KAE5E,0BAA0B0J,GACtB,IAAK1L,KAAKgwB,cAAc,QAAQ+hI,qBAC5B,OAAO,KAEX,IAAI/uJ,EAAc,CAAC,OAOnB,OANA0I,GAAWA,EAAQwrB,QAAQl1B,IACvB,IAAIK,EAAe8uJ,EAA6BnvJ,GAC5CyK,EAAYykJ,EAA0BlvJ,GAC1CK,GAAgB,GAAQA,EAAcW,GACtCyJ,GAAa,GAAQA,EAAWzJ,KAE7BqqJ,GAAoBrqJ,IAE/B,cAAchB,GACVhC,KAAK8uB,OAAO,cAAe9uB,KAAKiyJ,kBAAkBjyJ,KAAK8uB,OAAO,eAAgB9sB,KAElF,iBAAiBA,GACbhC,KAAK8uB,OAAO,cAAe9uB,KAAKkyJ,qBAAqBlyJ,KAAK8uB,OAAO,eAAgB9sB,KAErF,4BACI,IAAImwJ,EAAgCnyJ,KAAK8uB,OAAO,mCAAqC,GACrF,MAAO,CAACwhI,GAAMtwJ,KAAKixB,WAAYs/H,GAAOvwJ,KAAKixB,YAAY5F,OAAO8mI,IAElEz6H,cAAe,IAAM,CAAC,8BA3KwB,IA8KlD06H,GAAmC,CACnC,qBACI,IAAIC,EAAyBryJ,KAAK8uB,OAAO,qBACzC,MAAO,SAAWujI,EAAyBryJ,KAAK8uB,OAAO,uBAAyBujI,GAEpF,6BACI,IAAI94E,EAAuBv5E,KAAKgwB,cAAc,cAC9C,OAAQ,eAAUhwB,KAAK8uB,OAAO,iBAAmByqD,EAAqBm4E,yBAA2B1xJ,KAAK+xJ,sBAE1G,6BACI,IAAI,IAAU/xJ,KAAK8uB,OAAO,6BACtB,OAAO9uB,KAAKk1B,WAEhB,IAAI4rH,EAAU,CAAC9gJ,KAAKk1B,YAChBxpB,EAAU1L,KAAKgwB,cAAc,WAAWyhI,sBACxCzuJ,EAAchD,KAAK8uB,OAAO,eAC9B,GAAI9uB,KAAK+xJ,qBAAsB,CAC3B,IAAIO,EAA+BtyJ,KAAKgwB,cAAc,gBAAgB03H,mBAClE6K,EAA4BvyJ,KAAKgwB,cAAc,eAAegxH,+BAC9DjqG,EAAgBu7G,GAAgCC,EAChDC,EAAgCF,GAAgC,eAAU,OAASC,QAA6B,IAAWA,OAA4B,EAASA,EAA0BvvJ,aAC1LwvJ,GAAiCxvJ,IACjCA,EAAc8rJ,GAAgC9rJ,EAAa6tJ,GAAoB95G,KAGvF,IAAIl6B,EAAmB7c,KAAKgwB,cAAc,cAAcyiI,4BACpDC,EAAwBvF,GAAoBnqJ,EAAa0I,EAASmR,EAAkB,iBAIxF,OAHI61I,GACA5R,EAAQrhJ,KAAKizJ,GAEV,QAAc5mG,eAAeg1F,IAExC,yBAAyB7hG,GACrB,IAAI0zG,EAAU1zG,EAAS2zG,MAAM,YAC7B,OAAID,EACOA,EAAQ,GAEZ,MAEX,YAAYz/F,GACRlzD,KAAKixB,UAAU61B,cACXtiD,UAAU7F,OAAS,GACf,gBAAkBu0D,GAClBlzD,KAAK8uB,OAAO,cAAe,MAE/B9uB,KAAKk1B,SAASg+B,KAEdlzD,KAAK8uB,OAAO,cAAe,MAC3B9uB,KAAKk1B,YAETl1B,KAAKixB,UAAU81B,aAEnB,cAAc/4B,GACV,OAAQA,EAAKra,MACT,IAAK,cACD3T,KAAK2sD,eACL3sD,KAAK+xJ,sBAAwB/xJ,KAAKgwB,cAAc,cAAc8hI,kBAC9D9jI,EAAKC,SAAU,EACf,MACJ,IAAK,oBACDD,EAAKC,SAAU,EACf,MACJ,IAAK,UACD,GAAIjuB,KAAK+xJ,qBAAsB,CAC3B,IAAI/vJ,EAAShC,KAAKgwB,cAAc,WAAWkrB,gBAAgBltB,EAAKixB,UAC5Ds6B,EAAuBv5E,KAAKgwB,cAAc,cAC9C,GAAIhuB,IAAWu3E,EAAqBm4E,uBAAwB,CACxD,IAAImB,EAAe7yJ,KAAK8yJ,yBAAyB9kI,EAAKixB,UACtDs6B,EAAqBm4E,wBAAyB,EAC1C,eAAiBmB,EACbjC,KAAyB5iI,EAAKhwB,OAAS4yJ,KAAyB5iI,EAAKgxB,eACrEu6B,EAAqBw5E,iBAAiB/wJ,GAEnC,iBAAmB6wJ,EAC1Bt5E,EAAqBw5E,iBAAiB/wJ,GAC/B,CAAC,cAAe,2BAA2BwsC,SAASqkH,IAC3Dt5E,EAAqBy5E,cAAchxJ,EAAQA,EAAOgB,aAEtDu2E,EAAqBm4E,wBAAyB,GAGtD1xJ,KAAKk1B,SAASlH,GACd,MACJ,QACIhuB,KAAKk1B,SAASlH,MAI1BilI,GAAsC,CACtC,qBAAqBjxJ,GACjB,OAAIhC,KAAKgwB,cAAc,QAAQ+hI,sBACnB1C,GAAervJ,KAAK8uB,OAAO,eAAgB+hI,GAAoB7uJ,IAEpEhC,KAAKk1B,SAASlzB,IAEzB,8BACI,OAAQhC,KAAKgwB,cAAc,QAAQ+hI,sBAEvC,cAAc/jI,GACN,gBAAkBA,EAAKra,KACvB3T,KAAKwnJ,gCAELxnJ,KAAKk1B,SAASlH,KAIfklI,GAAmB,CAC1BhmH,eAAgB,KAAM,CAClBlqC,YAAa,KACb0J,kBAAmB,SAEvBqsB,YAAa,CACTo6H,WAAYpC,IAEhBz3H,UAAW,CACPP,YAAa,CACThlB,KAAMq+I,IAEVp5H,MAAO,CACHmU,kBAAmB8lH,MCtU/B,GAAK7gH,eAAe,aAAc8gH,ICkDlC,IAAI,GAAuB,mBACvBE,GAA6B,GAAuB,SACpDC,GAAkCD,GAA6B,QAC/DE,GAAqCF,GAA6B,WAClEG,GAAwCH,GAA6B,cACrEI,GAAuCJ,GAA6B,aACpEK,GAA8B,GAAuB,UACrDC,GAA6BD,GAA8B,QAC3DE,GAAiC,eACjCC,GAAoC,iBACpC,GAAiC,GAAuB,QACxDC,GAAkC,GAAuB,cACzDC,GAAsC,GAAuB,kBAC7DC,GAAkC,GAAuB,cACzDC,GAAuC,GAAuB,mBAC9DC,GAA+B,GAAuB,WACtDC,GAAyC,GAAuB,cAChEC,GAA8B,GAAuB,UACrDC,GAAqC,GAAuB,iBAC5DC,GAAe,kBACfC,GAA6C,GAAuB,yBACpEC,GAAS,gBACT,GAAuB,oBACvBC,GAAU,MACVC,GAAY,QACZC,GAAa,SACb,GAAU,CAAC,CACX/gJ,KAAM,oBACNqgB,OAAQ,CACJkU,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEf,CACCx0B,KAAM,mBACNqgB,OAAQ,CACJkU,kBAAmB,CAAC,WAAY,YAChCC,SAAU,cAEf,CACCx0B,KAAM,iBACNqgB,OAAQ,CACJkU,kBAAmB,CAAC,WAAY,eAGpCysH,GAAY,CACZlwI,IAAK,MACLG,GAAI,KACJF,OAAQ,OACRC,MAAO,OAEP,GAAgB,QAAMiO,QAAQ,IAC9BgiI,GAAgB,QAAOhiI,QAAQ,CAC/B4yD,mBAAoB,WAChB,OAAO,OAAAr4D,EAAA,MAAOntB,KAAKk1B,WAAY,CAC3B3mB,kBAAmB,KACnBD,iBAAkB,KAClB8O,eAAgB,KAChBN,OAAQ,GACRI,gBAAiB,CAAC,MAAO,KAAM,SAAU,SACzCC,mBAAe,EACfnf,MAAO,KACP2e,yBAAyB,EACzBM,2BAA4B,CACxBwH,IAAK,OAAoB1mB,OAAO,uBAChC6mB,GAAI,OAAoB7mB,OAAO,sBAC/B2mB,OAAQ,OAAoB3mB,OAAO,0BACnC4mB,MAAO,OAAoB5mB,OAAO,0BAEtC8e,iBAAkB,GAClBg4I,0BAA0B,EAC1B93I,4BAA6B,CACzByC,QAAS,OAAoBzhB,OAAO,0CACpC4hB,MAAO,OAAoB5hB,OAAO,yCAClCoiB,SAAU,OAAoBpiB,OAAO,4CACrCiiB,SAAU,OAAoBjiB,OAAO,uCACrCkiB,gBAAiB,OAAoBliB,OAAO,+CAC5C6hB,YAAa,OAAoB7hB,OAAO,0CACxC8hB,mBAAoB,OAAoB9hB,OAAO,kDAC/CqiB,WAAY,OAAoBriB,OAAO,6CACvC0hB,SAAU,OAAoB1hB,OAAO,2CACrCmiB,YAAa,OAAoBniB,OAAO,8CACxC2hB,SAAU,OAAoB3hB,OAAO,2CACrC+hB,QAAS,OAAoB/hB,OAAO,0CACpCgiB,WAAY,OAAoBhiB,OAAO,iDAInDqqF,eAAgB,SAASp6D,GACrB,OAAQA,EAAKra,MACT,IAAK,2BACD,MACJ,IAAK,oBACL,IAAK,mBACL,IAAK,iBACD3T,KAAK66I,eACL,MACJ,IAAK,mBACD76I,KAAK80J,wBACL90J,KAAK+nC,cACL,MACJ,IAAK,SACL,IAAK,gBACL,IAAK,kBACL,IAAK,0BACL,IAAK,6BACL,IAAK,8BACD/nC,KAAK+nC,cACL,MACJ,IAAK,QACD,GAAI/Z,EAAKhwB,QAAUgwB,EAAKgxB,cAAe,CACnC,IAAI+1G,EAA4B/0J,KAAKg1J,2BAChCD,IACD/0J,KAAKi1J,aACLj1J,KAAK+nC,eAET/nC,KAAKg1J,4BAA6B,EAClCh1J,KAAK+tB,cAAc,iBAAkB,CACjC/vB,MAAOgwB,EAAKhwB,MACZghD,cAAehxB,EAAKgxB,gBAExBh/C,KAAKg1J,2BAA6BD,EAEtC,MACJ,QACI/0J,KAAKk1B,SAASlH,KAG1Bm/H,oBAAqB,WACjB,IAAIrwI,EAAS9c,KAAKk1J,uBACdl3J,EAAQ,OAAAmvB,EAAA,OAAO,EAAM,GAAIntB,KAAKm1J,QAClC,OAAO,GAAqB9H,GAAoBrvJ,GAAQ8e,EAAQ9c,KAAKo1J,kBAAmBb,KAE5FW,qBAAsB,WAClB,OAAOnI,GAAoB/sJ,KAAK8uB,OAAO,YAE3CumI,cAAe,WACXr1J,KAAKg1J,4BAA6B,EAClC,IAAIh3J,EAAQ,OAAAmvB,EAAA,OAAO,EAAM,GAAIntB,KAAKm1J,QAC9B7X,EAAkB+P,GAAoBrvJ,GACtCknC,EAAWmoH,GAAoBrtJ,KAAKs1J,UAAUt1J,KAAK8uB,OAAO,WAC1DoY,KAAKC,UAAUjC,KAAcgC,KAAKC,UAAUm2G,IAC5Ct9I,KAAK8uB,OAAO,QAASwuH,GAEzBt9I,KAAKg1J,4BAA6B,EAClCh1J,KAAK0tE,2BAET8b,MAAO,WACHxpF,KAAK80J,wBACL90J,KAAKi1J,aACLj1J,KAAKu1J,qBACLv1J,KAAK66I,eACL76I,KAAKk1B,YAETqgI,mBAAoB,WAChBv1J,KAAKuoJ,eAAiB,IAAI,IAE9BuM,sBAAuB,WACnB90J,KAAKo1J,kBAAoB3G,GAAoBzuJ,KAAK8uB,OAAO,oBAAqB9uB,KAAK8uB,OAAO,uCAAwC9uB,OAEtIw1J,0BAA2B,WACvB,IAAIC,EAAeC,EACnB,OAAO,QAAUD,EAAgB,QAAUC,EAAe11J,KAAK8uB,OAAO,0BAAuB,IAAW4mI,OAAe,EAASA,EAAa,UAAO,IAAWD,EAAgBA,EAAgBd,GAAUlwI,KAE7M6wI,UAAW,SAASt3J,GAChB,OAAO0uJ,GAAwB1uJ,EAAOgC,KAAKo1J,kBAAmBp1J,KAAKw1J,8BAEvEP,WAAY,WACRj1J,KAAKm1J,OAASn1J,KAAKs1J,UAAUt1J,KAAK8uB,OAAO,WAE7C+rH,aAAc,WACV,IAAIhoH,EAAO7yB,KACX6yB,EAAKE,SAAW,GAChB,GAAQmE,SAAQ,SAAUhL,GACtB,IAAIypI,EAAe,OAAAxoI,EAAA,MAAO,GAAIjB,EAAO8H,QACrCnB,EAAKE,SAAS7G,EAAOvY,MAAQkf,EAAK3E,sBAAsBhC,EAAOvY,KAAMgiJ,OAG7E5nI,cAAe,SAAS2F,EAAY/N,GAChC,IAAIuG,EAASlsB,KAAK+yB,SAASW,GAC3B,OAAOxH,GAAUA,EAAOvG,IAE5BumE,YAAa,WACTlsF,KAAK6uB,WAAWnC,SAAS,IACzB1sB,KAAKk1B,WACLl1B,KAAK41J,8BAA8B51J,KAAKm1J,QAAQ9+H,SAASr2B,KAAK6uB,aAElEgnI,wBAAyB,SAAS3xJ,EAAWouB,GACzC,OAAO,eAAE,SAAS5F,SAAS0mI,IAA4BrhI,OAAO/xB,KAAK81J,qBAAqB5xJ,EAAWouB,KAEvGsjI,8BAA+B,SAAStL,EAAUh4H,GAK9C,IAJA,IAAI6wE,EAAa3+F,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,GAAKA,UAAU,GAAK,EAC9EuxJ,EAAS/1J,KAAKg2J,oBAAoB1L,EAAUh4H,EAAQ6wE,GACpD8yD,EAAgBF,EAAOxoI,KAAK,IAAM+lI,IAClC4C,EAAgB9L,GAAiBE,GAC5B9pJ,EAAI,EAAGA,EAAI01J,EAAcv3J,OAAQ6B,IAAK,CAC3C,IAAI21J,EAAgBD,EAAc11J,GAC9B,GAAQ21J,GACRn2J,KAAK41J,8BAA8BO,EAAe7L,EAAUnnD,EAAa,GAAG9sE,SAAS4/H,GAC9E9L,GAAYgM,IACnBn2J,KAAK61J,wBAAwBM,EAAe7L,GAAUj0H,SAAS4/H,GAGvE,OAAOF,GAEXC,oBAAqB,SAAS1L,EAAUh4H,EAAQ6wE,GAC5C,IAAIizD,EAAa,eAAE,SAAS1pI,SAAS2mI,IACjC4C,EAAgB,eAAE,SAASvpI,SAAS4mI,IACpCyC,EAAS,eAAE,SAASrpI,SAAS0mI,IAA4BrhI,OAAOqkI,GAAYrkI,OAAOkkI,GAqBvF,OApBI,MAAQ3jI,GACRtyB,KAAKq2J,oBAAoB,KACrB1rE,GAAWr4D,EAAQg4H,GACnByL,EAAO/yH,SACPhjC,KAAKq1J,kBACNh/H,SAAS+/H,GAEhBp2J,KAAKs2J,4BAA4BhM,GAAUj0H,SAAS+/H,GACpDp2J,KAAKu2J,iBAAiB,KAClB,IAAIC,EAAWzK,GAAiB/rJ,KAAKw1J,6BACrC,GAAQgB,EAAUlM,GAClBtqJ,KAAKg2J,oBAAoBQ,EAAUlM,EAAUnnD,EAAa,GAAG9sE,SAAS4/H,GACtEj2J,KAAKq1J,iBACN,KACC,IAAI/3I,EAAQtd,KAAK8uB,OAAO,UAAU,GAC9B2nI,EAAe5K,GAAgBvuI,EAAOtd,KAAKo1J,mBAC/C,GAAQqB,EAAcnM,GACtBtqJ,KAAK61J,wBAAwBY,EAAcnM,GAAUj0H,SAAS4/H,GAC9Dj2J,KAAKq1J,iBACNlyD,GAAY9sE,SAAS+/H,GACjBL,GAEXp8C,cAAe,SAASnkG,GACpB,OAAO,eAAE,SAAS1B,KAAK0B,IAE3B8gJ,4BAA6B,SAAShM,GAClC,IAAIptI,EAAkBld,KAAK02J,oBAAoBpM,GAC3CqM,EAAgBjM,GAAiBJ,EAAUptI,GAC3C1H,EAAUmhJ,EAAc7iJ,KACxB8iJ,EAAmB15I,GAAmBA,EAAgBve,OAAS,EAAIqB,KAAK25G,cAAcnkG,GAASkX,SAAS,IAAwB1sB,KAAK62J,sBAAsB,CAC3JrhJ,QAASA,EACTkqI,KAAM,CACFl+H,MAAOtE,EACPxD,YAAa,OACbpM,QAAS,QACTskC,YAAa3iB,IACL0nI,IAAkB1nI,EAAE8iB,WACpBy4G,GAAcF,EAAUr7H,EAAE8iB,SAAS/zC,OACnC44J,EAAiB9iJ,KAAKmb,EAAE8iB,SAASj+B,MACjC6iJ,EAAgB1nI,EAAE8iB,SAClB/xC,KAAKq1J,kBAGbtnJ,eAAgB,SAASkhB,GACrBA,EAAEgC,UAAU+mE,WAAW2+D,IAE3BljJ,SAAU8/I,MAGlB,OAAOqD,EAAiBlqI,SAAS,IAAgCA,SAAS8mI,IAAsC1mI,KAAK,WAAY,IAErI+pI,sBAAuB,SAASlxI,GAC5B,IAmCIquE,EAnCAnhE,EAAO7yB,KACP82J,EAAa,WACbjkI,EAAKhE,WAAWtB,KAAK,IAAM8mI,IAAcllI,YAAYklI,IACrDxhI,EAAKhE,WAAWtB,KAAK,4BAA4ByV,SACjDnQ,EAAKhE,WAAWtB,KAAK,eAAeyV,UAEpCryB,EAAa3Q,KAAK8uB,OAAO,cACzBxW,EAAW3H,EAAa,QAAU,OAClCq1G,EAAUhmH,KAAK25G,cAAch0F,EAAQnQ,SAgDzC,OA/CA,OAAA2X,EAAA,MAAOxH,EAAQ+5H,KAAM,CACjB1iI,mBAAmB,EACnBqiE,cAAe,SACfztC,aAAcoiD,EAAUruE,EAAQ+5H,KAAK9tG,YAAa,SAAS3iB,GACvD+kE,EAAQ/kE,GACJ,YAAcA,EAAEhD,MAAM7tB,MACtB04J,MAGRt4I,SAAU,SAASyQ,GACf+2F,EAAQ72F,YAAYklI,KAExB/7I,SAAU,CACN6O,GAAI7O,EAAW,OACfyO,GAAIzO,EAAW,UACf+O,OAAQ,MACRD,GAAI4+F,EACJ9+F,UAAW,QAEf3J,UAAW,KACXgB,SAAU,WACNu4I,KAEJrjJ,SAAUwgJ,GAA+B,IAAMtuI,EAAQ+5H,KAAKjsI,SAC5D9C,WAAYA,IAGhBgV,EAAQzK,MAAQ,CACZ2D,QAAS,SAASk4I,GACd,IAAIC,EAAkB,eAAED,EAAK9lI,UAAUgK,WAAW1N,KAAK,gBACnD0pI,EAAWD,EAAgBE,WAAW,YAC1C,OAAa5oI,GAAG0oI,EAAiB,iBAAiB,SAAU/nI,GACxD,IAAIzC,EAAU,eAAiByC,IAC3B,YAAcA,EAAE7wB,MAAQouB,IAAYgoI,IAAW,UAAYvlI,EAAE7wB,OAASouB,IAAYkoI,IAAcloI,IAAYioI,OAC5GsC,EAAK9lI,UAAUne,OACf,OAAa0c,QAAQ7J,EAAQ+5H,KAAKpnI,SAAS8O,GAAI,aAGvD6vI,EAAStoI,QACTsoI,EAASnoI,OAAO,iBAAkB,QAG1C9uB,KAAKm3J,6BAA6BnxC,GAAS,WACvC8wC,IACAjkI,EAAKukI,yBAAyBzxI,EAASkN,EAAKhE,YAC5Cm3F,EAAQt5F,SAAS2nI,OAEdruC,GAEXqxC,gBAAiB,SAASnzJ,GACtB,IAAImZ,EAAkBiuI,GAAmBtrJ,KAAKo1J,kBAAmBlxJ,EAAU,IAC3E,OAAOmZ,GAAkB,IAAUA,EAAgBrD,SAAW,OAAS9V,EAAU,IAErFozJ,+BAAgC,SAASpzJ,EAAWoZ,GAChD,IAAIuV,EAAO7yB,KACPqrJ,EAAsBG,GAAuBluI,EAAOtd,KAAK8uB,OAAO,+BAAgC9uB,KAAKo1J,mBACrGmC,EAAmBnM,GAA0BoD,GAAkBtqJ,GAAYmnJ,GAC3EuL,EAAmB52J,KAAK62J,sBAAsB,CAC9CrhJ,QAAS+hJ,EAAiBzjJ,KAC1B4rI,KAAM,CACFl+H,MAAO6pI,EACP3xI,YAAa,OACb07D,eAAgB,SAASnmD,GACrBA,EAAE8iB,SAAS45G,UAAY,eAAE18H,EAAEqgE,aAAa5iE,SAAS4nI,KAErDvmJ,eAAgB,SAASkhB,GACrBA,EAAEgC,UAAU+mE,WAAWu/D,IAE3B3lH,YAAa3iB,IACT,GAAIsoI,IAAqBtoI,EAAE8iB,SAAU,CACjCwlH,EAAmBtoI,EAAE8iB,SACrB+5G,GAA2B5nJ,EAAWqzJ,EAAiBv5J,MAAO60B,EAAKuiI,mBACnE,IAAIoC,EAAeZ,EAAiBa,WAAWnzJ,OAAO,IAAMyvJ,IACxDlhI,EAAKwkI,gBAAgBnzJ,IACjB,IAAMszJ,EAAa74J,QACnB64J,EAAax0H,SAEjBnQ,EAAK6kI,mBAAmBxzJ,EAAWoZ,GAAO+Y,SAASugI,EAAiBtkI,WAEpEklI,EAAax0H,SAEjB4zH,EAAiBrxI,KAAKgyI,EAAiBzjJ,MACvC9T,KAAKq1J,kBAGb5hJ,SAAUygJ,MAEfxnI,SAAS,IAAgCA,SAASonI,IAAqChnI,KAAK,WAAY,GAC3G,OAAO8pI,GAEXe,gCAAiC,SAASzzJ,EAAWoZ,EAAOohD,GACxD1+D,KAAKs3J,+BAA+BpzJ,EAAWoZ,GAAO+Y,SAASqoC,GAC3D1+D,KAAKq3J,gBAAgBnzJ,IACrBlE,KAAK03J,mBAAmBxzJ,EAAWoZ,GAAO+Y,SAASqoC,IAG3Dk5F,2BAA4B,SAAS96I,EAAQ5Y,EAAWoZ,GACpD,IAAIuV,EAAO7yB,KACP2c,EAA0B3c,KAAK8uB,OAAO,2BACtCtN,EAAQ8qI,GAASxvI,EAAQH,GACzBoO,EAAOqhI,GAAS9uI,EAAM3J,MAAQ2J,EAAM1a,UAAW4e,GAC/Cq2I,EAAiB,SAAS9sI,EAAMvJ,GAChC,OAAO7E,EAA0B4xI,GAAsBxjI,EAAMvJ,GAASuJ,EAAKvV,SAE3EsiJ,EAAe93J,KAAK62J,sBAAsB,CAC1CrhJ,QAASqiJ,EAAe9sI,EAAMvJ,GAC9Bk+H,KAAM,CACFl+H,MAAOA,EACPkkE,cAAe,QACfp4E,QAAS,KACTw9E,SAAU,WACVpxE,YAAa,UACbk4B,YAAa3iB,IACT,GAAIlE,IAASkE,EAAE8iB,SAAU,CACrBhnB,EAAOkE,EAAE8iB,SACT7tC,EAAU,GAAK6mB,EAAKpX,MAAQoX,EAAKnoB,UACjCsB,EAAU,GAAK,WAAa6mB,EAAKjpB,SAAW,KAAO,GACnDgqJ,GAA2B5nJ,EAAW0nJ,GAAoB7gI,GAAO8H,EAAKuiI,mBACtE0C,EAAaL,WAAWnzJ,OAAO,IAAM,IAAgC0+B,SACrEnQ,EAAK8kI,gCAAgCzzJ,EAAW6mB,EAAM+sI,EAAaxlI,UACnE,IAAI9c,EAAUqiJ,EAAe9sI,EAAMkE,EAAEgC,UAAUnC,OAAO,UACtDgpI,EAAavyI,KAAK/P,GAClBxV,KAAKq1J,kBAGbtnJ,eAAgB,SAASkhB,GACrBA,EAAEgC,UAAU+mE,WAAWjtE,IAE3BtX,SAAU0gJ,MAEfznI,SAAS,IAAgCA,SAASmnI,IAAiC/mI,KAAK,WAAY,GACvG,OAAOgrI,GAEXhC,qBAAsB,SAAS5xJ,EAAWouB,GACtC,IAAIosC,EAAQ,eAAE,SAAShyC,SAAS2mI,IAC5Bv2I,EAAS9c,KAAKk1J,uBACd53I,EAAQ8uI,GAASloJ,EAAU,GAAI4Y,GAanC,OAZA9c,KAAKq2J,oBAAoB,KACrB1rE,GAAWr4D,EAAQpuB,GACnB,IAAI6zJ,EAAgB,IAAMr5F,EAAMpsC,SAASV,WAAWjzB,OAChDo5J,EACAr5F,EAAMpsC,SAAS0Q,SAEf07B,EAAM17B,SAEVhjC,KAAKq1J,kBACNh/H,SAASqoC,GACZ1+D,KAAK43J,2BAA2B96I,EAAQ5Y,EAAWoZ,GAAO+Y,SAASqoC,GACnE1+D,KAAK23J,gCAAgCzzJ,EAAWoZ,EAAOohD,GAChDA,GAEXg4F,oBAAqB,SAASpM,GAC1B,IAAIptI,EAAkBld,KAAK8uB,OAAO,mBAC9B7R,EAA6Bjd,KAAK8uB,OAAO,8BAI7C,OAHK5R,GAAoBA,EAAgBve,SACrCue,EAAkB,CAAC2tI,GAAcP,GAAUzrG,QAAQ,IAAK,SAErD3hC,EAAgBre,IAAIy0I,IAAa,CACpCx/H,KAAMmJ,EAA2Bq2H,GACjCt1I,MAAO22J,GAAUrhB,OAGzB+iB,oBAAqB,SAASriE,GAC1B,IAAIgkE,EAAgB,eAAE,SAAStrI,SAASgnI,IAA4BhnI,SAASknI,IAAmClnI,SAAS+mI,IAA6B3mI,KAAK,WAAY,GAEvK,OADA9sB,KAAKm3J,6BAA6Ba,EAAehkE,GAC1CgkE,GAEXzB,iBAAkB,SAAS0B,EAAiBC,EAAqB/0D,GAC7D,IAAI6iB,EACA7oG,EAAgBnd,KAAK8uB,OAAO,iBAsBhC,OArBI,eAAU3R,IAAkBgmF,GAAchmF,GAC1C6oG,EAAUhmH,KAAK25G,gBACf35G,KAAKm3J,6BAA6BnxC,EAASkyC,IAE3ClyC,EAAUhmH,KAAK62J,sBAAsB,CACjCnX,KAAM,CACFl+H,MAAO,CAAC,CACJhM,QAAS,OAAoBzX,OAAO,gCACpCslF,MAAO60E,GACR,CACC1iJ,QAAS,OAAoBzX,OAAO,4BACpCslF,MAAO40E,IAEXv+I,YAAa,UACbk4B,YAAa,SAAS3iB,GAClBA,EAAE8iB,SAASsxC,SAEf5vE,SAAU2gJ,MAIfpuC,EAAQt5F,SAASgnI,IAA4BhnI,SAASinI,IAAgCjnI,SAAS+mI,IAA6B3mI,KAAK,WAAY,IAExJqrI,iBAAkB,SAASptI,EAAMzN,EAAOuU,GACpC,IAAIgB,EAAO7yB,KACPo4J,EAAQ,eAAE,SAAS7yI,KAAK,UAAUmH,SAASsnI,IAAsClnI,KAAK,WAAY,GAAGuJ,SAASxE,GAC9G7zB,EAAQ+sB,EAAK,GACb1N,EAAkBiuI,GAAmBz4H,EAAKuiI,kBAAmBrqI,EAAK,IAgBtE,OAfK1N,GAAmBC,EAAMjZ,OAC1BopJ,GAA0BnwI,EAAOtf,GAAO,SAAUkE,GAC9CotJ,GAAgB8I,EAAOl2J,MAG3B,eAAK4rJ,GAAoBxwI,EAAOtf,EAAOqf,IAAkBmZ,KAAKt0B,IAC1DotJ,GAAgB8I,EAAOl2J,EAAQmb,KAGvCwV,EAAKskI,6BAA6BiB,GAAO,SAAUnpI,GAC3C,UAAYA,EAAE7wB,MACd6wB,EAAEg7C,kBAENp3C,EAAKwlI,6BAA6BttI,EAAMzN,EAAOuU,MAE5CumI,GAEXE,sBAAuB,SAASvtI,EAAM/sB,EAAOuiG,GACzC,IAAIg4D,EAAqBxtI,EAAK,KAAO/sB,EACjCu6J,IACAxtI,EAAK,GAAK/sB,GAEduiG,IACAvgG,KAAKq1J,iBAETmD,kBAAmB,SAAS73E,EAASqT,GACjC,IAAIykE,GAAc,EACdC,GAA0B,EAC1B3zF,EAAW,aAAWn3C,cACtB+qI,EAAuB1pI,IACnBwpI,GAAeC,EACfA,GAA0B,EAG9B1kE,EAAQ/kE,IAEZ,OAAaX,GAAGy2C,EAAU,QAAS4zF,GACnC,IAAIC,EAAQj4E,EAAQpzD,KAAK,SACzB,OAAae,GAAGsqI,EAAO,mBAAoB,KACvCH,GAAc,IAElB,OAAanqI,GAAGsqI,EAAO,iBAAkB,KACrCH,GAAc,EACdC,GAA0B,IAE9B,OAAapqI,GAAGsqI,EAAO,UAAW3sI,IAC1B,MAAQA,EAAMguH,QACdye,GAA0B,KAGlC14J,KAAK64J,sBAAwBF,GAEjCG,kBAAmB,SAASn4E,EAASo4E,GACjC,IAAIh0F,EAAW,aAAWn3C,cACtBorI,EAAuB/pI,IAClBjvB,KAAKi5J,sBAAsBt4E,EAAS1xD,EAAEvsB,UACvC,OAAa8sB,QAAQmxD,EAAQpzD,KAAK,SAAU,UAC5CwrI,MAGR,OAAazqI,GAAGy2C,EAAU,gBAAiBi0F,GAC3Ch5J,KAAKk5J,sBAAwBF,GAEjCC,sBAAuB,SAASt4E,EAASj+E,GACrC,IAAIy2J,EAAgBz2J,GAAU,aAAW0sE,mBACzC,OAAO,eAAE+pF,GAAezkI,QAAQisD,EAAQ/uD,YAAYjzB,QAAU,eAAEw6J,GAAezkI,QAAQ,8BAA8B/1B,QAEzHy6J,cAAe,WACX,IAAIr0F,EAAW,aAAWn3C,cAC1B,eAAU5tB,KAAK64J,wBAA0B,OAAarqI,IAAIu2C,EAAU,QAAS/kE,KAAK64J,uBAClF,eAAU74J,KAAKk5J,wBAA0B,OAAa1qI,IAAIu2C,EAAU,gBAAiB/kE,KAAKk5J,wBAE9Fr/D,SAAU,WACN75F,KAAKo5J,gBACLp5J,KAAKk1B,YAETmjI,6BAA8B,SAASttI,EAAMzN,EAAOuU,GAChD,IAAI7zB,EAAQ+sB,EAAK,GACbsuI,EAAkB,KAClBxnI,EAAWsC,QACXn0B,KAAKo5J,gBACEp5J,KAAKm4J,iBAAiBptI,EAAMzN,EAAOuU,IAE1Cm+H,EAAc,KACdhwJ,KAAKs4J,sBAAsBvtI,EAAM/sB,GAAO,WACpCq7J,QAGJ1zI,EAAU,CACV3nB,MAAO,KAAOA,EAAQ,KAAOA,EAC7B+qJ,gBAAiByF,GAAkBzjI,GACnCmjF,SAAU,SAASn6F,GACf/V,EAAQ,OAAS+V,EAAO,GAAKA,GAEjCi8I,YAAaA,EACbl8I,KAAM+d,EAAW/d,QAErB+d,EAAWsC,QACX,IAAIwsD,EAAU3gF,KAAKs5J,mBAAmBznI,EAAYvU,EAAOqI,GACzD,OAAa6J,QAAQmxD,EAAQpzD,KAAK,SAAS6V,IAAI,WAAW7T,GAAG,GAAI,SACjEvvB,KAAKo5J,gBACLp5J,KAAK84J,kBAAkBn4E,EAASqvE,GAChChwJ,KAAKw4J,kBAAkB73E,EAAS1xD,IAC5B,IAAIzC,EAAU,eAAiByC,GAC/B,GAAIzC,IAAYgoI,GAAS,CACrB,GAAIx0J,KAAKi5J,sBAAsBt4E,GAC3B,OAEJ3gF,KAAKs4J,sBAAsBvtI,EAAM/sB,GAAO,WACpCq7J,IACIpqI,EAAEgf,UACF,OAAaze,QAAQqC,EAAW2sH,OAAQ,YAIhDhyH,IAAYkoI,IACZ,OAAallI,QAAQ6pI,IAAmB,SAExC7sI,IAAYioI,IACZz0J,KAAKs4J,sBAAsBvtI,EAAM/sB,GAAO,WACpC,OAAawxB,QAAQ6pI,IAAmB,cAIpDr5J,KAAK0tE,2BAETgqF,mBAAoB,SAAS3sI,EAAMzN,GAC/B,IAAIk6I,EAAe,eAAE,SAAS9qI,SAAS,IAAgCA,SAASqnI,IAEhF,OADA/zJ,KAAKm4J,iBAAiBptI,EAAMzN,EAAOk6I,GAC5BA,GAEX8B,mBAAoB,SAASznI,EAAYvU,EAAOqI,GAC5C,IAAIg7D,EAAU,eAAE,SAAS7zD,KAAK,WAAY,GAAGuJ,SAASxE,GAClDxU,EAAkBiuI,GAAmBtrJ,KAAKo1J,kBAAmBzvI,EAAQojI,iBACrEhvI,EAAiBsD,GAAmBA,EAAgBtD,eAAiBsD,EAAgBtD,eAAiBuD,EAAMvD,eAChH,GAAIA,EAAgB,CAChB,IAAIlG,EAAW7T,KAAKm2B,aAAapc,GACjClG,EAAS0hB,OAAO,CACZ4M,MAAO,OAAAhV,EAAA,MAAO,CACV7P,MAAOA,GACRqI,GACHlI,UAAWkjE,SAGf3gF,KAAKuoJ,eAAevnE,aAAa7nD,KAAKn5B,KAAM2gF,EAAS,OAAAxzD,EAAA,MAAO,GAAI7P,EAAOqI,EAAS,CAC5Es7D,WAAYszE,MAGpB,OAAO5zE,GAEXy2E,yBAA0B,SAASzxI,EAASkM,GACxC,IAAIgB,EAAO7yB,KACPu5J,EAAS,eAAE,SAAS7sI,SAAS/G,EAAQ+5H,KAAKjsI,UAAU4iB,SAASxE,GACjE7xB,KAAK8zB,iBAAiBylI,EAAQ,QAAO,CACjC/6I,SAAUmH,EAAQ+5H,KAAKlhI,SACvBD,SAAUoH,EAAQ+5H,KAAKnhI,SACvB5N,WAAYgV,EAAQ+5H,KAAK/uI,WACzB2H,SAAUqN,EAAQ+5H,KAAKpnI,SACvBiF,UAAWoI,EAAQ+5H,KAAKniI,UACxBG,gBAAiB,SAASykD,GACtB,IAAIq3F,EAAiB,eAAE,SAASnjI,SAAS8rC,GACzCtvC,EAAKiB,iBAAiB0lI,EAAgB,GAAU7zI,EAAQ+5H,MACxD1/I,KAAKwoF,WAET6sD,iCAAiC,EACjCj3H,UAAW,WACP,OAAO0wH,GAA4BnpH,EAAQ+5H,KAAKpnI,SAAS8O,KAE7DvV,SAAS,EACTmL,mBAAmB,EACnBmB,mBAAoBne,KAAK8uB,OAAO,4BAChC5Q,oBAAoB,EACpBW,QAAS8G,EAAQzK,MAAM2D,QACvBI,SAAS,EACTnN,MAAO,OACP7E,OAAQ,OACRmS,WAAW,EACXq6I,sBAAuB9zI,EAAQ+5H,KAAKjsI,YAG5C0jJ,6BAA8B,SAASnxC,EAAShyB,GAC5C,OAAa1lE,GAAG03F,EAAS,UAAWhyB,GACpC,OAAa1lE,GAAG03F,EAAS,SAAS,SAAU/2F,GACpC,eAAiBA,KAAOwlI,IACxBzgE,EAAQ/kE,SAKxB,gBAAkB,kBAAmB2lI,IACtB,UCtsBA,M,aCWX8E,GAAoB,GAAQ1kI,KAAKpC,QAAQ,CACzC,cACI5yB,KAAK25J,uBAET,sBACQ35J,KAAK8uB,OAAO,8BACZ9uB,KAAK45J,aACE55J,KAAK65J,qBACZ75J,KAAK65J,oBAAoB/mJ,QAGjC,gBACQ9S,KAAK65J,sBACL75J,KAAK65J,oBAAoB1lG,UACzBn0D,KAAK65J,yBAAsB,GAE3B75J,KAAK85J,iBACL95J,KAAK85J,eAAe3lG,UACpBn0D,KAAK85J,oBAAiB,IAG9B,aACI,IAAIjnI,EAAO7yB,KACX6yB,EAAKknI,gBACLlnI,EAAKgnI,oBAAsBhnI,EAAKiB,iBAAiBjB,EAAK5F,UAAW,QAAO,OAAAE,EAAA,MAAO,CAC3E1U,MAAO,OAAoB1a,OAAO,sCAClC2f,gBAAiBirD,GAAmB91C,EAAKmnI,yBAAyBrxF,GAClE,gBAAgB36C,GACR,YAAcA,EAAKra,MACnBkf,EAAK/D,OAAO,6BAA8Bd,EAAKhwB,QAGvDshB,aAAcuT,EAAKonI,yBACpBpnI,EAAK/D,OAAO,sBAAuB,CAClC,WACI,EAAa+D,GACbA,EAAKknI,qBAIjB,yBAAyB53F,GACrB,IAAIwG,EAAkB,eAAExG,GACpB+3F,EAA0B,eAAE,SAAS7jI,SAAS,eAAE8rC,IACpDniE,KAAK85J,eAAiB95J,KAAK8zB,iBAAiBomI,EAAyB,GAAe,OAAA/sI,EAAA,MAAO,CACvFnvB,MAAOgC,KAAK8uB,OAAO,eACnBhS,OAAQ9c,KAAKgwB,cAAc,WAAWyhI,uBACvCzxJ,KAAK8uB,OAAO,iBAAkB,CAC7BjS,iBAAkB7c,KAAKgwB,cAAc,cAAcyiI,+BAEvDzyJ,KAAK8zB,iBAAiB60C,EAAiB,cAAY,CAC/C3jD,UAAW,UAGnB,wBACI,IAAI6N,EAAO7yB,KACX,MAAO,CAAC,CACJ2R,QAAS,SACT8T,SAAU,QACVI,OAAQ,WACRF,QAAS,CACL7R,KAAM,OAAoB/V,OAAO,MACjC,UACI,IAAIuG,EAASuuB,EAAKinI,eAAehrI,OAAO,SACxC+D,EAAK/D,OAAO,cAAexqB,GAC3BuuB,EAAKgnI,oBAAoB/mJ,UAGlC,CACCnB,QAAS,SACT8T,SAAU,QACVI,OAAQ,WACRF,QAAS,CACL7R,KAAM,OAAoB/V,OAAO,UACjC,UACI80B,EAAKgnI,oBAAoB/mJ,YAKzC,cAAckb,GACV,OAAQA,EAAKra,MACT,IAAK,gBACL,IAAK,qBACD3T,KAAK+nC,cACL/Z,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,OAInBmsI,GAAsB,CAC7BjtH,eAAgB,KAAM,CAClB5gC,cAAe,CACX2Q,2BAA4B,CACxBwH,IAAK,OAAoB1mB,OAAO,uBAChC6mB,GAAI,OAAoB7mB,OAAO,sBAC/B2mB,OAAQ,OAAoB3mB,OAAO,0BACnC4mB,MAAO,OAAoB5mB,OAAO,0BAEtCgf,4BAA6B,CACzByC,QAAS,OAAoBzhB,OAAO,0CACpC4hB,MAAO,OAAoB5hB,OAAO,yCAClCoiB,SAAU,OAAoBpiB,OAAO,4CACrCiiB,SAAU,OAAoBjiB,OAAO,uCACrCkiB,gBAAiB,OAAoBliB,OAAO,+CAC5C6hB,YAAa,OAAoB7hB,OAAO,0CACxC8hB,mBAAoB,OAAoB9hB,OAAO,kDAC/CqiB,WAAY,OAAoBriB,OAAO,6CACvC0hB,SAAU,OAAoB1hB,OAAO,2CACrCmiB,YAAa,OAAoBniB,OAAO,8CACxC2hB,SAAU,OAAoB3hB,OAAO,2CACrC+hB,QAAS,OAAoB/hB,OAAO,0CACpCgiB,WAAY,OAAoBhiB,OAAO,+CAG/CwO,mBAAoB,KAExBysB,MAAO,CACHohI,kBAAmBV,KC/H3B,GAAKtnH,eAAe,gBAAiB+nH,ICyBrC,IAAIE,GAAqB,eACrBC,GAA0B,GAAGjvI,OAAOgvI,GAAoB,SACxDE,GAA8B,GAAGlvI,OAAOgvI,GAAoB,aAC5DG,GAAkC,GAAGnvI,OAAOgvI,GAAoB,iBAChEI,GAA8B,GAAGpvI,OAAOgvI,GAAoB,SAC5DK,GAAsB,cACtBC,GAAkB,GAAQ3lI,KAAKpC,QAAQ,CACvC,YACI,OAAO5yB,KAAK8uB,OAAO,wBAA0B9uB,KAAKgwB,cAAc,QAAQjkB,cAE5E,OACI/L,KAAKgwB,cAAc,QAAQsjC,kBAAkB5xB,IAAI,IAAM1hC,KAAKu1B,UAC5Dv1B,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,YAEjD,cACI,IAAInB,EAAW7uB,KAAKitB,UACpB4B,EAASsF,QACT,IAAIymI,IAAqB56J,KAAKg/B,mBAAmB/M,aAAatzB,OAC9D,GAAKi8J,EAAL,CAGA/rI,EAASnC,SAAS1sB,KAAKw0B,gBAAgB6lI,KACvC,IAAIQ,EAAiB,eAAE,SAASnuI,SAAS1sB,KAAKw0B,gBAAgBimI,KAA8BpkI,SAASxH,GACrG7uB,KAAK86J,yBAAyBjsI,EAAUgsI,KAE5C,yBAAyBhsI,EAAUgsI,GAC/B,IAAIE,EAAiB/6J,KAAKg7J,oBACtBC,EAAej7J,KAAKk7J,kBACxB,GAAIl7J,KAAK8uB,OAAO,gBAAkB9uB,KAAKm7J,mBAAoB,CACvD,IAAIC,EAAgBp7J,KAAKq7J,mBACrBC,EAAuBt7J,KAAKu7J,0BAGhC,OAFAV,EAAe9oI,OAAOqpI,GAAerpI,OAAOgpI,GAAgBhpI,OAAOkpI,QACnEpsI,EAASkD,OAAOupI,GAGpBT,EAAe9oI,OAAOgpI,GAAgBhpI,OAAOkpI,IAEjD,mBACI,IAAIpoI,EAAO7yB,KACP6uB,EAAW,eAAE,SAASnC,SAAS1sB,KAAKw0B,gBAAgB+lI,KAQxD,OAPA1nI,EAAKiB,iBAAiBjF,EAAU,QAAU,CACtC7wB,MAAO60B,EAAK/D,OAAO,6BACnB,eAAeG,GACX4D,EAAK/D,OAAO,4BAA6BG,EAAEjxB,UAGnD6wB,EAAS/B,KAAK,QAAS9sB,KAAK8uB,OAAO,wCAC5BD,GAEX,oBACI,IAAIgE,EAAO7yB,KACP6uB,EAAW,eAAE,SAASnC,SAAS,kBAInC,OAHA,OAAa4B,GAAGO,EAAU,QAAS,IAAMgE,EAAK2oI,sBAC9C,EAAuB,cAAe3oI,EAAMhE,OAAU,EAAQ,IAAMgE,EAAK2oI,sBACzE3oI,EAAK4oI,sBAAsB5sI,GACpBA,GAEX,kBACI,IAEI6sI,EAFA7oI,EAAO7yB,KACPi7J,EAAe,eAAE,SAASvuI,SAASmG,EAAK2B,gBAAgB8lI,KAExDt3J,EAAc6vB,EAAK/D,OAAO,eAuB9B,OAtBI9rB,EACA,eAAK6vB,EAAK8oI,cAAc34J,EAAa6vB,EAAK7C,cAAc,cAAcyiI,8BAA8Bj8H,KAAKklI,IACrG,IAAIhmJ,EAAgBmd,EAAK/D,OAAO,6BAChC,GAAIpZ,EAAe,CACf,IAAIkmJ,EAAalmJ,EAAc,CAC3Bub,UAAW4B,EAAK5B,UAChBjuB,YAAaA,EACb8Q,KAAM4nJ,IAEN,kBAAoBE,IACpBF,EAAaE,GAGrBX,EAAannJ,KAAK4nJ,MAGtBA,EAAa7oI,EAAK/D,OAAO,kCACzBmsI,EAAannJ,KAAK4nJ,IAEtB,OAAaptI,GAAG2sI,EAAc,QAAS,IAAMpoI,EAAK2oI,sBAClD,EAAuB,cAAe3oI,EAAMooI,OAAc,EAAQ,IAAMpoI,EAAK2oI,sBAC7E3oI,EAAK4oI,sBAAsBR,GACpBA,GAEX,qBACIj7J,KAAK8uB,OAAO,8BAA8B,IAE9C,0BACI,IAAI+D,EAAO7yB,KACP67J,EAAmB,IAAMhpI,EAAK/D,OAAO,cAAe,MACpDD,EAAW,eAAE,SAASnC,SAASmG,EAAK2B,gBAAgBgmI,KAAkC1mJ,KAAK+e,EAAK/D,OAAO,kCAI3G,OAHA,OAAaR,GAAGO,EAAU,QAASgtI,GACnC,EAAuB,cAAe77J,KAAM6uB,OAAU,EAAQgtI,GAC9DhpI,EAAK4oI,sBAAsB5sI,GACpBA,GAEX,sBAAsBA,GAClB,IAAK7uB,KAAK8uB,OAAO,+BAAgC,CAC7C,IAAIgtI,EAAW97J,KAAK8uB,OAAO,aAAe,EAC1CD,EAAS/B,KAAK,WAAYgvI,KAGlC,cAAc9tI,GACV,OAAQA,EAAKra,MACT,IAAK,cACD3T,KAAK+nC,cACL/nC,KAAK8uB,OAAO,6BAA6B,GACzCd,EAAKC,SAAU,EACf,MACJ,IAAK,cACDjuB,KAAK+nC,cACL/Z,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,KAG1B,kBAAkB+tI,EAAWC,EAAe5lH,GACxC,IAAIl0C,EAAS,IAAImpB,OAAO0wI,EAAW,MAAM1wI,OAAO2wI,GAIhD,OAHI,eAAU5lH,KACVl0C,GAAUk0C,GAEPl0C,GAEX+5J,oBAAqBj+J,GAASS,MAAMC,QAAQV,GAAS,KAAKqtB,OAAOrtB,EAAMe,KAAK,QAAS,MAAQ,KAAKssB,OAAOrtB,EAAO,KAChH,cAAcsf,EAAOD,EAAiBrf,GAClC,IAAIsc,EAAW,IAAI,OACf4hJ,EAAqB7+I,GAAmBA,EAAgB3H,cAC5D,GAAI,eAAU1X,IAAUk+J,EACpB,IAAKA,GAAsB5+I,EAAMjZ,OAC7BopJ,GAA0BnwI,EAAOtf,EAAO+V,IACpCuG,EAAS4iB,QAAQl9B,KAAKi8J,oBAAoBloJ,UAE3C,CACH,IAAI+zC,EAAerpD,MAAMC,QAAQV,GAASA,EAAQ,QAAUinD,gBAAgB3nC,EAAOtf,EAAO,MAC1F,eAAK8vJ,GAAoBxwI,EAAOwqC,EAAczqC,EAAiBq9I,KAAsBlkI,KAAKziB,IACtFuG,EAAS4iB,QAAQl9B,KAAKi8J,oBAAoBloJ,WAIlDuG,EAAS4iB,QAAQ,IAErB,OAAO5iB,EAAS2oB,WAEpB,iBAAiBjgC,EAAa2iB,GAC1B,IAIIq2I,EAJAnpI,EAAO7yB,KACPszI,EAAYtwI,EAAY,GACxBsX,EAAW,IAAI,OACf+C,EAAkBiuI,GAAmB3lI,EAAQ9I,iBAAkBy2H,GAE/Dh2H,EAAQ8uI,GAASppJ,EAAY,GAAI2iB,EAAQja,SACzCqwJ,EAAYz+I,EAAM9H,SAAW,GAC7BxX,EAAQgF,EAAY,GAWxB,OATIg5J,EADA3+I,EACgBA,EAAgB7H,SAAW,gBAAW6H,EAAgB1J,MAEtDw3I,GADT,OAASntJ,EACsB,MAAQs1I,EAAY,UAAY,aAEhCA,EAF8C3tH,EAAQ5I,6BAIhG/c,KAAKm8J,cAAc7+I,EAAOD,EAAiBrf,GAAOw4B,KAAK4f,IACnD97B,EAAS4iB,QAAQrK,EAAKupI,kBAAkBL,EAAWC,EAAe5lH,MAE/D97B,GAEX,aAAatX,EAAa2iB,EAAS02I,GAC/B,IAAIxpI,EAAO7yB,KACPkC,EAAS,IAAI,OACbo6J,EAAY,GACZ1R,EAAaC,GAAc7nJ,GAwB/B,OAvBAA,EAAYk0B,QAAQnM,IACZo/H,GAAYp/H,GACZuxI,EAAU78J,KAAKozB,EAAK0pI,iBAAiBxxI,EAAMpF,IACpC,GAAQoF,IACfuxI,EAAU78J,KAAKozB,EAAK2pI,aAAazxI,EAAMpF,GAAS,MAGxD,OAAKphB,MAAMvE,KAAMs8J,GAAW9lI,MAAK,WAE7B,IADA,IAAI1iB,EACKw5C,EAAO9oD,UAAU7F,OAAQqvB,EAAO,IAAIvvB,MAAM6uD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7Ev/B,EAAKu/B,GAAQ/oD,UAAU+oD,GAE3B,GAAIq9F,EAAWxqI,WAAW,KAAM,CAC5B,IAAIq8I,EAAY92I,EAAQ1I,2BAA2B,MAAMoO,OAAOu/H,EAAWH,UAAU,EAAG,GAAGliG,eAAel9B,OAAOu/H,EAAWH,UAAU,KAAK3mJ,MAAM,KACjJgQ,EAAO,GAAGuX,OAAOoxI,EAAU,GAAI,KAAKpxI,OAAO2C,EAAK,SAEhDla,EAAOka,EAAKjvB,KAAK,IAAIssB,OAAO1F,EAAQ1I,2BAA2B2tI,GAAa,MAE5EyR,IACAvoJ,EAAO,IAAIuX,OAAOvX,EAAM,MAE5B5R,EAAOg7B,QAAQppB,MAEZ5R,GAEX,cAAcc,EAAa6Z,GACvB,IAAI8I,EAAU,CACV9I,iBAAkBA,EAClBnR,QAAS1L,KAAKgwB,cAAc,WAAWyhI,sBACvC10I,4BAA6B/c,KAAK8uB,OAAO,6CACzC7R,2BAA4Bjd,KAAK8uB,OAAO,6CAE5C,OAAOq7H,GAAYnnJ,GAAehD,KAAKu8J,iBAAiBv5J,EAAa2iB,GAAW3lB,KAAKw8J,aAAax5J,EAAa2iB,MAG5G+2I,GAAoB,CAC3BxvH,eAAgB,KAAM,CAClB1gC,YAAa,CACTqF,SAAS,EACTwO,eAAe,EACfrH,MAAO,CACHwH,aAAc,OAAoBziB,OAAO,sCACzCwiB,YAAa,OAAoBxiB,OAAO,qCACxC0iB,kBAAmB,OAAoB1iB,OAAO,+CAI1Di7B,MAAO,CACH2jI,gBAAiBhC,IAErBrhI,UAAW,CACPP,YAAa,CACThlB,KAAM,CACF,cAAcia,GACV,OAAQA,EAAKra,MACT,IAAK,cACD3T,KAAK2sD,eACL3+B,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,SCjQ1C,GAAKokB,eAAe,cAAesqH,ICQnC,IAAIE,GAAqB,eACrBC,GAAoB,cACpB,GAAqB,eACrB,GAAoB,IAExB,SAAS7nJ,GAAYhT,GACjB,OAAO,eAAUA,EAAOgT,aAAehT,EAAOgT,YAAchT,EAAOyS,eAGvE,SAASqoJ,GAAW96J,EAAQ8R,GACxB,IACIzP,OAAQA,GACRrC,EACJ,OAAKA,EAAO86J,WAGRz4J,EACOrC,EAAO86J,WAAW3jI,KAAK90B,EAAQyP,GAEnC9R,EAAO86J,WAAWhpJ,GALdA,EAOR,IAAIipJ,GAAe,CACtB7vH,eAAgB,KAAM,CAClBr8B,YAAa,CACTgB,SAAS,EACTC,MAAO,IACPwX,YAAa,OAAoBvrB,OAAO,qCACxCsrB,qBAAqB,EACrBD,wBAAwB,EACxBtV,KAAM,GACNyV,0BAA0B,KAGlC+P,UAAW,CACPP,YAAa,CACThlB,KAAM,CACF,gBACI,OAAO/T,KAAKk1B,WAAW7J,OAAO,CAAC,kBAEnC,6BACI,IAAI/mB,EAAStE,KAAKk1B,WACd8nI,EAAe,SAASnqI,EAAM/e,GAC9B,IAAItT,EACAwB,EAGAqC,EAFAqH,EAAUmnB,EAAKmM,mBAAmB/M,aAClC1I,EAA2BsJ,EAAK/D,OAAO,wCAEvCgyH,EAAU,GACd,IAAKhtI,EACD,OAAO,KAGX,SAASmpJ,EAAYz7I,GAEjB,IADA,IAAI07I,EAAc,gBAAc74J,EAAOsV,WAC9B2oC,EAAK,EAAGA,EAAK9gC,EAAM7iB,OAAQ2jD,IAAM,CACtC,IAAItkD,EAAQk/J,EAAY17I,EAAM8gC,IAC9Bw+F,EAAQrhJ,KAAKuC,EAAO2lD,uBAAuB3pD,EAAO,KAAM,YAGhE,IAAKwC,EAAI,EAAGA,EAAIkL,EAAQ/M,OAAQ6B,IAE5B,GADAwB,EAAS0J,EAAQlL,KACb+oB,GAA6BvnB,EAAO6P,UAGpCmD,GAAYhT,IAAWA,EAAOqT,0BAA2B,CACzDhR,EAASrC,EAAOqC,OAChB,IAAIrB,EAAc85J,GAAW96J,EAAQ8R,GACjCzP,GAAUA,EAAOmd,MACjB,gBAAUnd,EAAOmd,OAAOld,OAAOtC,EAAO2lD,uBAAuBxuB,KAAK,CAC9Dv2B,UAAWyB,EAAOqV,YAClB5X,SAAUuC,EAAOvC,SACjBuT,0BAA2BrT,EAAOqT,2BACnCrS,EAAa,KAAM,WAAWqkG,YAAY7wE,KAAKymI,QAC3C,IAAWj6J,GAClB89I,EAAQrhJ,KAAKuC,EAAO2lD,uBAAuB3kD,EAAa,KAAM,WAI1E,OAAI,IAAM89I,EAAQniJ,OACP,CAAC,KAEL,QAAcmtD,eAAeg1F,EAAS,MAxC9B,CAyCjB9gJ,KAAMA,KAAK8uB,OAAO,qBACpB,OAAO,QAAcg9B,eAAe,CAACxnD,EAAQ04J,KAEjD,aAAalpJ,GACT9T,KAAK8uB,OAAO,mBAAoBhb,IAEpC,cAAcka,GACV,OAAQA,EAAKixB,UACT,IAAK,mBACL,IAAK,cACDj/C,KAAK2sD,eACL3+B,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,OAKlCgL,MAAO,CACH8lC,YAAa,WACT,IAAIq+F,EAAwB,SAAStqI,GACjC,OAAOA,EAAK/D,OAAO,gBAEvB,MAAO,CACH,mBACI,IAAItN,EAAQxhB,KAAKk1B,WACjB,OAAOl1B,KAAKo9J,mBAAmB57I,IAEnC,mBAAmBA,GACf,IAAIqR,EAAO7yB,KACP+lD,EAAiBlzB,EAAK7C,cAAc,QACpCqtI,EAAqBF,EAAsBtqI,GAC/C,GAAIwqI,GAAsBA,EAAmBxrJ,QAAS,CAClD,IAAIiV,EAAc,CACd,SAAS/S,EAAM9R,EAAOwb,GAClB,IAAI6/I,EAAU,eAAE,SAAS5wI,SAASmG,EAAK2B,gBAAgBooI,KAAqBvmI,SAAS5Y,GACrFoV,EAAK7C,cAAc,iBAAiBgxD,aAAas8E,EAAS,CACtDxrJ,MAAOurJ,EAAmBvrJ,MAC1BwX,YAAa+zI,EAAmB/zI,YAChC23D,WAAY,cACZjjF,MAAO60B,EAAK/D,OAAO,oBACnBs/E,mBAAoB,GACpB,SAASpwG,GACL+nD,EAAeqN,aAAap1D,IAEhC4X,cAAe,CACX63F,UAAW,CACP,aAAc,OAAoB1vG,OAAO,GAAGstB,OAAOwH,EAAK5B,UAAUqD,KAAM,0BAIpFzB,EAAK06C,UAET55D,KAAM,cACN8R,SAAU,QACVD,aAAc,QACdxO,UAAW,IAEfwK,EAAM/hB,KAAKqnB,GAEf,OAAOtF,GAEX,sBACI,IAAIqR,EAAO7yB,KACP6uB,EAAWgE,EAAK5F,UAChBswI,EAAe1uI,EAAStB,KAAK,IAAIlC,OAAOwH,EAAK2B,gBAAgBooI,MAAsBt4J,QAAO,WAC1F,OAAO,eAAEtE,MAAM00B,QAAQ,IAAIrJ,OAAOwH,EAAK2B,gBAAgB,MAAsBI,GAAG/F,MAEpF,OAAI0uI,EAAa5+J,OACN4+J,EAAa5tD,UAAU,YAE3B,MAEX,YACI,IAAI0tD,EAAqBF,EAAsBn9J,MAC/C,OAAOA,KAAKk1B,YAAcmoI,GAAsBA,EAAmBxrJ,SAEvE,cAAcmc,GACV,GAAI,gBAAkBA,EAAKra,KAAM,CAC7B,GAAI,qBAAuBqa,EAAKixB,SAAU,CACtC,IAAIw1E,EAASz0H,KAAKw9J,sBACd/oC,GACAA,EAAO3lG,OAAO,QAASd,EAAKhwB,YAGhCgC,KAAK+nC,cAET/Z,EAAKC,SAAU,OAEfjuB,KAAKk1B,SAASlH,KAtEjB,GA2EbtC,SAAU,CACN,OACI1rB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKy9J,cAAgB,GACrBz9J,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,SAE9C,wBAAwBhuB,EAAQyzD,GAC5B,IAAIz3D,EAAQ8+J,GAAW96J,EAAQyzD,GAC3BmnF,EAAgB,QAAcC,yBAAyB76I,EAAQ,UACnE,OAAO,QAAcmjE,YAAYnnE,EAAO4+I,IAE5C,uBACI,IAAIvsH,EAAIub,EAAIsW,EAAIC,EACZu7G,EAAkB19J,KAAK8uB,OAAO,sCAC9B/iB,EAAa,QAAU6/B,EAAK,QAAUvb,EAAKrwB,KAAKgoC,uBAAoB,IAAW3X,OAAK,EAASA,EAAGglC,qBAAkB,IAAWzpB,OAAK,EAASA,EAAGzS,KAAK9I,GACnJwrC,EAAa,QAAU1Z,EAAK,QAAUD,EAAK,OAASn2C,QAAc,IAAWA,OAAa,EAASA,EAAW4oD,mBAAgB,IAAWzS,OAAK,EAASA,EAAG/oB,KAAKptB,UAAgB,IAAWo2C,OAAK,EAASA,EAAG0Z,WAC/M,OAAOrf,GAAO,gBAAaA,EAAKkhH,EAAiB7hG,IAErD,2BAA2B75D,EAAQu+B,EAAak1B,GAC5C,IACIigC,EADAt/D,EAAUmK,EAAYjO,SAEtBqrI,EAAmB39J,KAAK49J,uBACxBC,EAAuBF,EAAiBloG,GACxCqoG,EAAkB,GACtB,GAAK1nI,EAAQz3B,QAEN,GAAIqD,EACP,GAAIA,EAAOsU,YAAc,IAAMtU,EAAO+U,gBAClC2+E,EAASn1D,MACN,CACH,IAAIrB,EAAcl/B,KAAKg/B,mBAAmB0B,gBAAgB1+B,EAAOC,OACjEyzF,EAASt/D,EAAQxE,SAAS,MAAMrC,GAAG2P,GAAa3R,KAAK,WANzD6I,EAAU,eAAE,SAASrE,OAAOwO,GAsBhC,OAbAm1D,GAAU,OAASA,QAAU,IAAWA,OAAS,EAASA,EAAO/2F,QAAU+2F,EAASt/D,EAAQ7I,KAAK,KACjGmoE,EAAOtQ,KAAK,CAACztD,EAAG1K,KAEZ,IADA,IAAI8wI,EAAY,eAAE9wI,GAASm/F,WAClB5rH,EAAI,EAAGA,EAAIu9J,EAAUp/J,OAAQ6B,IAAK,CACvC,IAAImkF,EAAOo5E,EAAUpqI,IAAInzB,GACzB,GAAI,IAAMmkF,EAAKtiD,SAAU,CACrB,IAAI27H,EAAiBL,EAAiBh5E,EAAK7kB,aAAe6kB,EAAK5nD,WAC3DihI,EAAez7J,QAAQs7J,IAAyB,GAChDC,EAAgBr+J,KAAKklF,OAK9Bm5E,GAEX,yBAAyBG,EAAWxoG,GAChC,IAAIyoG,EAAkB,eAAE,UAAUxxI,SAAS1sB,KAAKw0B,gBAAgBqoI,KAC5D/oJ,EAAOmqJ,EAAUnqJ,OACjBqqJ,EAAsBF,EAAU,GAChCN,EAAmB39J,KAAK49J,uBACxB37J,EAAQ07J,EAAiB7pJ,GAAMvR,QAAQo7J,EAAiBloG,IAC5D,GAAIxzD,GAAS,EAQT,OAPIk8J,EAAoBr+F,YACpBq+F,EAAoBr+F,YAAchsD,EAAK0pC,OAAO,EAAGv7C,GAEjDk8J,EAAoBphI,UAAYjpB,EAAK0pC,OAAO,EAAGv7C,GAEnDg8J,EAAUG,MAAMF,EAAgBpqJ,KAAKA,EAAK0pC,OAAOv7C,EAAOwzD,EAAW92D,UACnEs/J,EAAY,eAAE,aAAWjvH,eAAel7B,EAAK0pC,OAAOv7C,EAAQwzD,EAAW92D,UAAUmkE,YAAYo7F,GACtFl+J,KAAKq+J,yBAAyBJ,EAAWxoG,IAGxD,qBAAqBl1B,EAAa+9H,EAAUt8J,GACxC,IAAI6wB,EAAO7yB,KACP29J,EAAmB39J,KAAK49J,uBACxBnoG,EAAa5iC,EAAK/D,OAAO,oBAI7B,GAHIwvI,GAAYt8J,IACZyzD,EAAaA,GAAc5iC,EAAK0rI,wBAAwBv8J,EAAQyzD,IAEhEA,GAAc5iC,EAAK/D,OAAO,mCAAoC,CAC9D,IAAI0vI,EAAY3rI,EAAK4rI,2BAA2Bz8J,EAAQu+B,EAAak1B,GACrE+oG,EAAUtnI,QAAQwnI,IACVJ,EACIX,EAAiB,eAAEe,GAAU5qJ,UAAY6pJ,EAAiBloG,IAC1D,eAAEipG,GAAUj5H,YAAY,eAAE,UAAU/Y,SAASmG,EAAK2B,gBAAgBqoI,KAAoB/oJ,KAAK,eAAE4qJ,GAAU5qJ,SAG3G+e,EAAKwrI,yBAAyB,eAAEK,GAAWjpG,OAK3D,cACI,IAAIn7C,EAAWta,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAWzC,OAVIxE,KAAK8uB,SAASpe,aAAe1Q,KAAK8uB,OAAO,sBACrC9uB,KAAK8uB,OAAO,kCACZ2M,aAAaz7B,KAAK2+J,iBAClB3+J,KAAK2+J,gBAAkBnjI,WAAW,KAC9Bx7B,KAAK4+J,qBAAqB5+J,KAAK6pC,sBAGnC7pC,KAAK4+J,qBAAqB5+J,KAAK6pC,oBAGhCvvB,GAEX,YAAYoX,EAAOlB,GACf,IACIxuB,OAAQA,GACRwuB,EACA1uB,EAAWE,EAAOqC,QAAUrC,EAAOqC,OAAOvC,UAAYE,EAAOF,SAC7Dw8J,EAAW,WAAax8J,EACxBkT,GAAYhT,KAAYwuB,EAAWs/E,WAC/B9vG,KAAK8uB,OAAO,kCACP9uB,KAAKy9J,cAAc9+J,SACpB88B,aAAaz7B,KAAK2+J,iBAClB3+J,KAAK2+J,gBAAkBnjI,WAAW,KAC9Bx7B,KAAKy9J,cAAcvmI,QAAQ2a,IACvB7xC,KAAK4+J,qBAAqBr6J,MAAMvE,KAAM6xC,KAE1C7xC,KAAKy9J,cAAgB,MAG7Bz9J,KAAKy9J,cAAch+J,KAAK,CAACiyB,EAAO4sI,EAAUt8J,KAE1ChC,KAAK4+J,qBAAqBltI,EAAO4sI,EAAUt8J,IAGnDhC,KAAKk1B,SAASxD,EAAOlB,IAEzB,UACIiL,aAAaz7B,KAAK2+J,iBAClB3+J,KAAKk1B,gBCvTzB,GAASkd,eAAe,SAAU2qH,I,iBCH3B,MAAM,WAAyB,QAClC,eAAe/uI,GACX,OAAQA,EAAKra,MACT,IAAK,YACD,IAAIkrJ,EAAmB7+J,KAAK8uB,OAAO,oBAC/B+vI,GACAA,EAAiB7wI,EAAKhwB,OAE1B,MACJ,IAAK,WACD,IAAI8gK,EAAkB9+J,KAAK8uB,OAAO,mBAC9BgwI,GACAA,EAAgB9wI,EAAKhwB,OAGjC6pC,MAAMugD,eAAep6D,I,kFCZtB,SAAS+wI,GAAgBprJ,EAAMsZ,GAClC,IAAI+xI,EACAC,EAAgB,QAAUD,EAAwB,gBAAwB/xI,UAAa,IAAW+xI,EAAwBA,EAAwB,GACtJ,OAAO,gBAASC,EAActrJ,IAE3B,SAASurJ,GAAuBjyI,GACnC,IAAIkyI,EAAUJ,GAAgB,cAAe9xI,GAAW8xI,GAAgB,eAAgB9xI,GACpFnb,EAAQitJ,GAAgB,QAAS9xI,GACrC,OAAOnb,EAAQqtJ,EAEZ,SAASC,GAAgBnyI,GAC5B,IAAIoyI,EAASN,GAAgB,aAAc9xI,GAAW8xI,GAAgB,cAAe9xI,GACjFnb,EAAQitJ,GAAgB,QAAS9xI,GACrC,OAAOoyI,EAASvtJ,EAEb,SAASwtJ,GAAmBryI,GAC/B,OAAO8xI,GAAgB,WAAY9xI,GClBvC,IAAIsyI,GAAY,CAAC,kBAAmB,cAkBzBC,GAAeroI,IACtB,IACIsoI,kBAAmBA,EACnBC,YAAaA,EACbC,gBAAiBA,EACjBC,mBAAoBA,EACpBC,aAAcA,EACdC,SAAUA,EACVC,UAAWA,EACXr1J,OACIgT,gBAAiBsiJ,IAErB7oI,EACJ,OAAO6oI,EAAQ,eAAS,CACpBC,eAAgBF,EAChBF,aAAcA,EACdH,YAAaA,EACbI,SAAUA,EACVH,gBAAiBA,EACjBC,mBAAoBA,GACrBH,KAEA,SAASS,GAA0BrnI,GACtC,IACIsnI,UAAWC,EACXC,MAAOC,EACPhuI,OAAQiuI,GACR1nI,EACJ,OAAO0nI,GAAeH,EAAiBE,GAAc,EAElD,SAASE,GAAyBvnI,GACrC,IACI89H,KAAM0J,EACNN,UAAWC,EACXC,MAAOC,EACPhuI,OAAQiuI,GACRtnI,EACAynI,EAAeN,EAAiBE,EAAaG,EACjD,OAAOF,EAAcG,EAAe,EAGxC,SAASC,GAAiBvnI,GACtB,IACI29H,KAAMA,EACNoJ,UAAWA,EACXE,MAAOA,EACP/tI,OAAQA,GACR8G,EACAmnI,EAAcrB,GAAuB5sI,GACrC8tI,EAAiBhB,GAAgBe,GACjCM,EAAYrB,GAAgBrI,GAC5B6J,EAAiBxB,GAAgBiB,GACrC,MAAO,CACH/tI,OAAQiuI,EACRJ,UAAWC,EACXrJ,KAAM0J,EAAY1B,GAAgB,aAAchI,GAAQgI,GAAgB,cAAehI,GACvFsJ,MAAOO,GAGR,IAAIC,GAA0B,GAIjCr+H,GAAcs+H,GAAgBA,IAAiBA,EAAatrF,aAAe9qE,GAAS,gBAAe,gBAAqB,EAAGo2J,EAAc,eAAS,GAAIp2J,KAAWo2J,GAC9J,MAAM,WAA2B,QACpC,YAAYp2J,GACRm9B,MAAMn9B,GACN1K,KAAK+/J,UAAY,kBACjB//J,KAAK6/J,aAAe,kBACpB7/J,KAAK0/J,YAAc,kBACnB1/J,KAAK8/J,SAAW,kBAChB9/J,KAAK+gK,0BAA2B,EAChC/gK,KAAKghK,uBAAwB,EAC7BhhK,KAAKmnD,MAAQ,CACTw4G,iBAAiB,EACjBC,oBAAoB,GAExB5/J,KAAKihK,kBAAoBjhK,KAAKihK,kBAAkB/sI,KAAKl0B,MACrDA,KAAKkhK,uBAAyBlhK,KAAKkhK,uBAAuBhtI,KAAKl0B,MAC/DA,KAAKmhK,sBAAwBnhK,KAAKmhK,sBAAsBjtI,KAAKl0B,MAEjE,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKihK,kBAAmB,CAACjhK,KAAKmnD,MAAMw4G,gBAAiB3/J,KAAKmnD,MAAMy4G,qBAAsB,IAAI,QAAc5/J,KAAKkhK,uBAAwB,CAAClhK,KAAK0K,MAAO1K,KAAKmnD,MAAMw4G,gBAAiB3/J,KAAKmnD,MAAMy4G,mBAAoB5/J,KAAK0K,MAAM02J,WAAYphK,KAAK0K,MAAMgT,mBAE7Q,gBACI,IAAI2jJ,EAAiBC,EACrB,QAAUD,EAAkBrhK,KAAKuhK,SAAS,UAAO,IAAWF,GAA2BA,EAAgBh6H,OAAO,CAACrnC,KAAKmnD,MAAMw4G,gBAAiB3/J,KAAKmnD,MAAMy4G,qBACtJ,QAAU0B,EAAmBthK,KAAKuhK,SAAS,UAAO,IAAWD,GAA4BA,EAAiBj6H,OAAO,CAACrnC,KAAK0K,MAAO1K,KAAKmnD,MAAMw4G,gBAAiB3/J,KAAKmnD,MAAMy4G,mBAAoB5/J,KAAK0K,MAAM02J,WAAYphK,KAAK0K,MAAMgT,kBAE/N,oBACI,IAAI6iF,EAAW,KACXvgG,KAAKugK,YAAc,GAAKvgK,KAAKmhK,yBAGjC,OADA,QAAgBz/H,IAAI6+D,GACb,KACH,QAAgBv9D,OAAOu9D,IAG/B,yBACQvgG,KAAKugK,YAAc,GACnBvgK,KAAKmhK,wBAGb,wBACI,IACI/sI,UAAWA,EACX9N,YAAaA,EACbk7I,kBAAmBA,EACnB3rG,iBAAkBA,EAClBtvC,SAAUA,EACVpD,MAAOA,EACPs+I,iBAAkBA,EAClBC,cAAeA,EACf3yJ,UAAWA,EACXylD,UAAWA,EACX7tC,UAAWA,EACXg7I,gBAAiBA,EACjB/6I,SAAUA,EACVg7I,eAAgBA,EAChBzB,UAAWA,EACX0B,eAAgBA,EAChBC,sBAAuBA,EACvBnxJ,WAAYA,EACZ6V,SAAUA,EACVC,sBAAuBA,EACvBs7I,cAAeA,EACfx1G,WAAYA,EACZ16C,QAASA,GACT7R,KAAK0K,MAAM02J,WACf,OAAO,eAAS,GAAIphK,KAAKgiK,eAAgB,CACrCp7I,SAAUA,EACVD,UAAWA,EACXg7I,gBAAiBA,EACjBC,eAAgBA,EAChBJ,kBAAmBA,EACnBptI,UAAWA,EACX5N,SAAUA,EACVD,SAAUA,EACVk7I,iBAAkBA,EAClBn7I,YAAaA,EACbo7I,cAAeA,EACfltG,UAAWA,EACXqtG,eAAgBA,EAChBhwJ,QAASA,EACTgkD,iBAAkBA,EAClBisG,sBAAuBA,EACvBC,cAAeA,EACf5B,UAAWA,EACXxvJ,WAAYA,EACZ8V,sBAAuBA,EACvB8lC,WAAYA,EACZx9C,UAAWA,EACXoU,MAAOA,IAGf,kBACI,OAAOnjB,KAAK+/J,UAAUj2D,QAAUs1D,GAAgBp/J,KAAK+/J,UAAUj2D,SAAW,EAE9E,wBACI,IAAIm4D,EAAuBtB,GAAiB,CACxCruI,OAAQtyB,KAAK+/J,UAAUj2D,QACvBq2D,UAAWngK,KAAK6/J,aAAa/1D,QAC7BitD,KAAM/2J,KAAK0/J,YAAY51D,QACvBu2D,MAAOrgK,KAAK8/J,SAASh2D,UAEzB,GAAI9pG,KAAKghK,wBAA0BhhK,KAAKmnD,MAAMw4G,iBAAmB3/J,KAAK+gK,2BAA6B/gK,KAAKmnD,MAAMy4G,mBAA9G,CAGA,IAAI36F,GAAW,eAAUjlE,KAAKkiK,eAC1Bj9F,IACAjlE,KAAKkiK,cAAgB,KAErBj9F,GAAWjlE,KAAKmnD,MAAMy4G,sBACtB5/J,KAAKkiK,cAAc/B,UAAY8B,EAAqB9B,UACpDngK,KAAKkiK,cAAc7B,MAAQ4B,EAAqB5B,QAEhDp7F,GAAWjlE,KAAKmnD,MAAMw4G,mBACtB3/J,KAAKkiK,cAAcnL,KAAOkL,EAAqBlL,MAEnD/2J,KAAK+gK,yBAA2Bb,GAA0B,eAAS,CAC/D5tI,OAAQ2vI,EAAqB3vI,QAC9B,CACC6tI,UAAWngK,KAAKkiK,cAAc/B,UAC9BE,MAAOrgK,KAAKkiK,cAAc7B,SAE9BrgK,KAAKghK,sBAAwBR,GAAyB,eAAS,GAAIyB,EAAsB,CACrFlL,KAAM/2J,KAAKkiK,cAAcnL,QAE7B/2J,KAAKmiK,SAASC,IAAoB,CAC9BzC,gBAAiB3/J,KAAKghK,yBAE1BhhK,KAAKmiK,SAASC,IAAoB,CAC9BxC,mBAAoB5/J,KAAK+gK,6BAGjC,qBACI,IAAIsB,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa9C,IAC3D,OAAO+C,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO80J,GAAa,CAChB90J,MAAO,eAAS,GAAIA,EAAO,CACvBgT,gBAAiB8kB,GAAY93B,EAAMgT,mBAEvCiiJ,gBAAiB3/J,KAAKmnD,MAAMw4G,gBAC5BC,mBAAoB5/J,KAAKmnD,MAAMy4G,mBAC/BG,UAAW//J,KAAK+/J,UAChBF,aAAc7/J,KAAK6/J,aACnBH,YAAa1/J,KAAK0/J,YAClBI,SAAU9/J,KAAK8/J,SACfL,kBAAmBz/J,KAAKy/J,kBACxBc,YAAavgK,KAAKugK,YAClBY,sBAAuBnhK,KAAKmhK,sBAC5Ba,eAAgBhiK,KAAKgiK,kBAIjC,GAAmBxsF,aAAeqrF,GC9O3B,IAAI0B,GAAiB,CACxBf,mBAAmB,EACnBh7I,UAAU,EACVF,YAAa,WACbo7I,cAAe,GACfltG,UAAW,GACX3iD,SAAS,EACTgkD,kBAAkB,EAClBisG,sBAAuB,OACvBC,eAAe,EACf5B,UAAWv7J,OAAO49J,OAAO,CAAC,EAAG,KAC7B/7I,uBAAuB,EACvB8lC,WAAY,EACZ,YACI,OAAO,OAAoBxuD,OAAO,uBCX/B0kK,GAAa79J,OAAO8uD,OAAO9uD,OAAOquD,UAAW,eAASruD,OAAO89J,0BAA0BH,IAAiB39J,OAAO89J,0BAA0B,CAChJC,gBAAiB,EACjBf,eAAgB,OAChBjiC,iBAAkB,EAClBgiC,gBAAiB,WAEViB,GAAqBh+J,OAAO8uD,OAAO9uD,OAAOquD,UAAW,eAASruD,OAAO89J,0BAA0BH,IAAiB39J,OAAO89J,0BAA0B,CACxJ97I,SAAU,EACVD,UAAW,MCVX,GAAY,CAAC,WAAY,YAAa,YAAa,iBAAkB,cAc9Dk8I,GAAmB,UACnB,GAAe1rI,IACtB,IACIzsB,OACIu1J,eAAgBA,GAEpBnsJ,KAAMA,GACNqjB,EACJ,OAAO,gBAAY,EAAG,MAAO0rI,GAAkB/uJ,EAAM,EAAG,KAAM,KAAMmsJ,IAGpE6C,GAAoB,CACpB,gBACI,OAAOF,GAAmBj8I,WAE9B,gBACI,OAAOi8I,GAAmBpuG,WAE9B,iBACI,OAAOouG,GAAmBr2G,aAG3B,MAAM,WAAiB,QAC1B,YAAY7hD,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GAEjB,eACI,IAAI47G,EACJ,OAAQ,QAAUA,EAAuB/iK,KAAK0K,MAAM6b,gBAAa,IAAWw8I,EAAuBA,EAAuB,KAAO,OAAoBC,aAAa,mBAAjC,GAErI,WACI,IACIxuG,UAAWA,EACX7tC,UAAWA,EACX4lC,WAAYA,GACZvsD,KAAK0K,MACT,OAAO,gBAAO1K,KAAKumB,UAAWI,EAAY,GAAGtoB,WAAYm2D,EAAUn2D,WAAYkuD,EAAWluD,YAE9F,qBACI,IAAIgkK,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpB6b,SAAUvmB,KAAKumB,SACfzS,KAAM9T,KAAK8T,KACXkuJ,eAAgBhiK,KAAKgiK,kBAIjC,GAASxsF,aAAestF,G,iBCnEbG,GAAwB,qBAAc,GCD7C,GAAY,CAAC,WAAY,YAAa,QAAS,UAAW,WAAY,YAc/D,GAAe9rI,IACtB,IACIzsB,OACIknB,SAAUA,EACVwC,UAAWA,EACXjR,MAAOA,EACPm6D,SAAUA,EACV5rE,SAAUA,GAEdwxJ,UAAWA,GACX/rI,EACJ,OAAO,gBAAY,EAAG,MAAO/C,EAAWxC,EAAU,EAAG,CACjDlgB,SAAUA,EACVw5D,KAAM,SACN,aAAc/nD,EACd,eAAgBm6D,EAAW,YAAS,GACrC,KAAM4lF,IAEFC,GAAmB,CAC1B/uI,UAAW,GACXjR,MAAO,GACPzR,SAAU,EACV4rE,UAAU,GAKP,MAAM,WAAoB,QAC7B,YAAY5yE,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GACbnnD,KAAKkjK,UAAY,kBACjBljK,KAAKojK,eAAiBpjK,KAAKojK,eAAelvI,KAAKl0B,MAC/CA,KAAKqjK,iBAAmBrjK,KAAKqjK,iBAAiBnvI,KAAKl0B,MAEvD,sBACI,OAAIA,KAAK0kD,QAAQu+G,GAAsBzqH,IAC5Bx4C,KAAK0kD,QAAQu+G,GAAsBzqH,IAEvCyqH,GAAsBK,aAEjC,gBACI,MAAO,CAAC,IAAI,QAActjK,KAAKojK,eAAgB,CAACpjK,KAAKujK,gBAAiBvjK,KAAK0K,MAAMkJ,UAAW,IAAI,QAAc5T,KAAKqjK,iBAAkB,CAACrjK,KAAK0K,MAAMkJ,WAErJ,gBACI,IAAIytJ,EAAiBC,EACrB,QAAUD,EAAkBrhK,KAAKuhK,SAAS,UAAO,IAAWF,GAA2BA,EAAgBh6H,OAAO,CAACrnC,KAAKujK,gBAAiBvjK,KAAK0K,MAAMkJ,UAChJ,QAAU0tJ,EAAmBthK,KAAKuhK,SAAS,UAAO,IAAWD,GAA4BA,EAAiBj6H,OAAO,CAACrnC,KAAK0K,MAAMkJ,UAEjI,iBACI,OAAO5T,KAAKujK,gBAAgB30I,uBAAuB5uB,KAAKkjK,UAAUp5D,QAAS9pG,KAAK0K,MAAMkJ,SAE1F,mBACI,OAAO,gBAAsB5T,KAAKkjK,UAAUp5D,QAAS9pG,KAAK0K,MAAMkJ,SAEpE,qBACI,IAAIyuJ,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBw4J,UAAWljK,KAAKkjK,UAChBK,gBAAiBvjK,KAAKujK,gBACtBvB,eAAgBhiK,KAAKgiK,kBAIjC,GAAYxsF,aAAe2tF,GCtFpB,IAAIK,GAAc,WACdC,GAAmB,gBACnBC,GAAoB,WACpBC,GAA2B,kBAC3BC,GAAmB,UACnBC,GAAwB,eACxBC,GAAwB,eACxBC,GAAyB,gBACzBC,GAAiC,GAAG34I,OAAOy4I,GAAuB,KAAKz4I,OAAOw4I,IAC9EI,GAAoB,iB,aCP3B,GAAY,CAAC,YAAa,QAAS,UAAW,YAqBvC,GAAe9sI,IACtB,IACI/C,UAAWA,EACXjR,MAAOA,EACPzY,OACIkJ,QAASA,EACT0pE,SAAUA,GAEdt/E,MAAOA,GACPm5B,EACJ,OAAO,gBAAqB,EAAG,GAAa,CACxC/C,UAAWA,EACXjR,MAAOA,EACPvP,QAASA,EACT0pE,SAAUA,EACV1rD,SAAU5zB,KAGPkmK,GAAY,CACnBjiK,MAAO,EACPq7E,UAAU,EACVlpD,UAAWwvI,IAER,MAAM,WAAa,QACtB,YAAYl5J,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GAEjB,YACI,OAAO,gBAAO,OAAoB67G,aAAa,gBAAiBhjK,KAAKhC,OAEzE,YACI,OAAOgC,KAAK0K,MAAMzI,MAAQ,EAE9B,gBACI,IACIq7E,SAAUA,GACVt9E,KAAK0K,MACT,OAAO,gBAAe,CAClB,CAAC,GAAG2gB,OAAOrrB,KAAK0K,MAAM0pB,cAAep0B,KAAK0K,MAAM0pB,UAChD,CAACyvI,MAA0BvmF,IAGnC,qBACI,IAAI+kF,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpByY,MAAOnjB,KAAKmjB,MACZnlB,MAAOgC,KAAKhC,MACZo2B,UAAWp0B,KAAKo0B,UAChB4tI,eAAgBhiK,KAAKgiK,kBAIjC,GAAKxsF,aAAe0uF,G,iBChFhB,GAAY,CAAC,eACbC,GAAa,CAAC,gBAAiB,YAAa,YAAa,mBAqBzDC,GAA6B,eACtB,GAAejtI,IACtB,IACIkpI,MAAOA,GACPlpI,EACAktI,EAAchE,EAAMxhK,IAAIg6B,IACxB,IACIk1B,IAAKA,EACLu2G,UAAWA,GACXzrI,EACJ,OAAOyrI,EAAY,gBAAqB,EAAG,GAAM,CAC7CriK,MAAOqiK,EAAUriK,MACjBq7E,SAAUgnF,EAAUhnF,SACpB1pE,QAAS0wJ,EAAU1wJ,SACpBm6C,GAAO,gBAAY,EAAG,MAAOq2G,GAA4B,QAAS,GAAI,KAAMr2G,KAEnF,OAAO,gBAAes2G,EAAa,IAEnCE,GAAgB,EAEpB,SAASC,GAAiB7uE,EAAY8uE,EAAmBjwG,GACrD,OAAI,IAAMmhC,EACC,OAEPA,EAAa8uE,IAAsBjwG,EAAY,EACxC,MAEJ,OAGX,SAASkwG,GAAwCC,EAAsBnwG,EAAWowG,GAC9E,IAAIC,EAAc,GACdC,EAAkB,GACtB,OAAQF,GACJ,IAAK,OACDC,EAAc,IAAIF,GAClB,MACJ,IAAK,OACDE,EAAc,CAAC,EAAG,SAAUF,EAAsB,OAAQnwG,EAAY,GACtEswG,EAAkBH,EAAqBniK,MAAM,GAAI,GACjD,MACJ,IAAK,OACDqiK,EAAc,CAAC,KAAMF,EAAsB,OAAQnwG,EAAY,GAC/DswG,EAAkBH,EAAqBniK,MAAM,GAAI,GACjD,MACJ,IAAK,MACDqiK,EAAc,CAAC,EAAG,SAAUF,EAAsBnwG,EAAY,GAC9DswG,EAAkBH,EAAqBniK,MAAM,GAErD,MAAO,CACHmiK,qBAAsBA,EACtBG,gBAAiBA,EACjBD,YAAaA,GAIrB,SAASE,GAAkBpvE,EAAY8uE,EAAmBjwG,EAAWowG,GAEjE,IADA,IAAID,EAAuB,GAClBnkK,EAAI,EAAGA,EAAIikK,EAAmBjkK,GAAK,EACxCmkK,EAAqBllK,KAAKe,EAAIm1F,GAElC,OAAO+uE,GAAwCC,EAAsBnwG,EAAWowG,GAEpF,IAAII,GAAsB,CACtB,gBACI,OAAOpC,GAAmBj8I,WAE9B,oBACI,OAAOi8I,GAAmBlB,eAE9B,gBACI,OAAOkB,GAAmBpuG,YAG3B,MAAM,WAAmB,QAC5B,YAAY9pD,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GACbnnD,KAAKilK,sBAAwBjlK,KAAKilK,sBAAsB/wI,KAAKl0B,MAC7DA,KAAKklK,oBAAsBllK,KAAKklK,oBAAoBhxI,KAAKl0B,MACzDA,KAAKmlK,oBAAsBnlK,KAAKmlK,oBAAoBjxI,KAAKl0B,MACzDA,KAAKolK,YAAcplK,KAAKolK,YAAYlxI,KAAKl0B,MAE7C,aACI,OAAIA,KAAK0kD,QAAQ,QAAclM,IACpBx4C,KAAK0kD,QAAQ,QAAclM,IAE/B,QAAc8qH,aAEzB,yBACI,IAAI+B,EAAqBrlK,KAAKslK,yBAC9B,OAAKD,GACM,CACHP,gBAAiB,GACjBH,qBAAsB,IAKlC,sBAAsBY,EAAkB5+I,GACpC,IACIm+I,gBAAiBA,GACjB9kK,KAAKqlK,mBACLG,EAA8BV,EAAgBtiK,OAAO,GAAG,GAAK+iK,EAAmB,EAChFE,EAA0BX,EAAgBt2H,SAAS7nB,GACvD,OAAO6+I,GAA+BC,EAE1C,sBACI,IACIjxG,UAAWA,EACX7tC,UAAWA,GACX3mB,KAAK0K,MACLirF,EAAa,GAEbgvE,qBAAsBA,GACtB3kK,KAAKqlK,mBAEL1vE,EADAhvE,IAAcg+I,EAAqB,GACtBh+I,EAAY,EAClBA,IAAcg+I,EAAqBA,EAAqBhmK,OAAS,GAC3DgoB,EAAY,EAAI49I,GACtB59I,EAAY49I,GACN,EACN59I,GAAa6tC,EAAY+vG,GACnB/vG,EAAY+vG,GAAgB,EAE5B59I,EAAY,EAE7B,IAAI89I,EAAoBF,GACpBK,EAAYJ,GAAiB7uE,EAAY8uE,EAAmBjwG,GAC5DkxG,EAAqBX,GAAkBpvE,EAAY8uE,EAAmBjwG,EAAWowG,IAE7EC,YAAaA,GACba,EACJL,EAAqB,gBAA8BK,EAAoB,IAE3E,OADA1lK,KAAKslK,yBAA2BD,EACzBR,EAEX,sBACI,IACInD,cAAeA,EACfltG,UAAWA,GACXx0D,KAAK0K,MACT,OAAO8pD,GAAa+vG,IAAiB/vG,GAAaktG,EAEtD,YAAY/6I,GACR3mB,KAAK0K,MAAMi3J,gBAAgBh7I,GAE/B,kBACI,IACI6tC,UAAWA,GACXx0D,KAAK0K,MACT,GAAI1K,KAAKmlK,sBACL,OAAOJ,GAAkB,EAAGvwG,EAAWA,EAAW,QAAQqwG,YAE9D,GAAI7kK,KAAKilK,sBAAsBzwG,EAAWx0D,KAAK0K,MAAMic,WAAY,CAC7D,IACIg+I,qBAAsBA,GACtB3kK,KAAKqlK,mBACLT,EAAYJ,GAAiBG,EAAqB,GAAIJ,GAAe/vG,GACzE,OAAOkwG,GAAwCC,EAAsBnwG,EAAWowG,GAAWC,YAE/F,OAAO7kK,KAAKklK,sBAEhB,YACI,IAAIS,GAEAh/I,UAAWA,GACX3mB,KAAK0K,MACLk7J,EAAa3jK,IACb,IAAIm/J,EAAa,QAAUn/J,GAAS,SAAWA,EAAQ,KAAO,CAC1DA,MAAOA,EACP2R,QAAS,IAAM5T,KAAKolK,YAAYnjK,GAChCq7E,SAAU32D,IAAc1kB,GAE5B,MAAO,CACH8rD,IAAK9rD,EAAM5D,WACXimK,UAAWlD,IAGfyE,EAAiB,QAAUF,EAAe3lK,KAAKg0B,cAAW,IAAW2xI,GAAgBA,EAAah1J,WAAa,IAAI3Q,KAAK6kK,aAAa5tG,UAAYj3D,KAAK6kK,YAC1J,OAAOgB,EAAehnK,IAAIoD,GAAS2jK,EAAW3jK,IAElD,qBACI,IAAIogK,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa8B,IAC3D,OAAO7B,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBspB,OAAQh0B,KAAKg0B,OACb6wI,YAAa7kK,KAAK6kK,YAClBxE,MAAOrgK,KAAKqgK,MACZ2B,eAAgBhiK,KAAKgiK,kBAIjC,GAAWxsF,aAAewvF,G,8BC7Nfc,GAAmB,CAC1B14J,mBAAmB,EACnBvC,oBAAoB,EACpB,wBACI,MAAO,YAAcyxF,GAAA,KAAQC,OAAOtlB,aAAeqlB,GAAA,KAAQypE,gBCDxDC,GAAmB,CAC1B7iJ,MAAO,GACP,gBACI,OAAO,gBAAW,mBAAa,WAAa,WCLhD,GAAY,CAAC,YAAa,qBAAsB,YAAa,eAAgB,WAAY,oBAAqB,SAAU,OAAQ,oBAAqB,YAAa,sBAAuB,UAAW,QAAS,YAAa,MAAO,MAAO,OAAQ,OAAQ,UAAW,YAAa,YAAa,WAAY,aAAc,kBAAmB,OAAQ,WAAY,sBAAuB,kBAAmB,mBAAoB,wBAAyB,4BAA6B,mBAAoB,QAAS,cAAe,UAAW,SAqBzgB8iJ,GAAgB,EACT,GAAe9uI,IACtB,IACI+uI,eAAgBA,EAChBlE,eAAgBA,GAChB7qI,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAqB,eAAS,CACxEgvI,cAAe,QACfD,eAAgBA,EAChBE,cAAe,IAChBpE,MAEIqE,GAAiBzhK,OAAO8uD,OAAO9uD,OAAOquD,UAAW,eAASruD,OAAO89J,0BAA0B,SAAc99J,OAAO89J,0BAA0B,CACjJY,aAAc2C,GACdK,yBAAyB,MAElBC,GAAqB,CAC5B,mBACI,OAAOF,GAAe/C,cAE1B,eACI,OAAO+C,GAAetkJ,UAE1B,WACI,OAAOskJ,GAAe1yJ,MAE1B,sBACI,OAAO0yJ,GAAeG,iBAE1B,uBACI,OAAOH,GAAeI,kBAE1B,4BACI,OAAOJ,GAAeK,uBAE1B,gCACI,OAAOL,GAAeM,2BAE1B,uBACI,OAAON,GAAenwC,kBAE1B,cACI,OAAOmwC,GAAe7zC,SAE1B,gBACI,OAAO6zC,GAAe54D,WAE1B,gBACI,OAAO44D,GAAejyI,WAE1B,yBACI,OAAO0xI,GAAiBj7J,oBAE5B,eACI,OAAOw7J,GAAep6J,UAE1B,wBACI,OAAO65J,GAAiB9oJ,mBAE5B,wBACI,OAAO8oJ,GAAiB14J,mBAE5B,eACI,OAAOi5J,GAAe30J,UAE1B,cACI,OAAO20J,GAAex0J,SAE1B,YACI,OAAOm0J,GAAiB7iJ,OAE5B,gBACI,OAAO6iJ,GAAiBtkJ,WAE5B4kJ,yBAAyB,GAEtB,MAAM,WAAkB,QAC3B,YAAY57J,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,CACTnpD,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM44J,cAG3E,qBACI,OAAO,eAAS,GAAItjK,KAAK0K,MAAO,CAC5B1M,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAKmnD,MAAMnpD,QAG3E,qBACI,IAAI4oK,EAAoB,eAAS,GAAI5mK,KAAK0K,MAAO,CACzC1M,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAKmnD,MAAMnpD,QAEvEskK,EAAY,gBAA8BsE,EAAmB,IACjE,OAAOtE,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvB1M,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAKmnD,MAAMnpD,QAEvEkoK,eAAgBlmK,KAAKkmK,eACrBlE,eAAgBhiK,KAAKgiK,kBAIjC,GAAUxsF,aAAe+wF,GCjIlB,IAAIM,GAAgB,GACpB,SAASC,GAA2BpwJ,EAAU9S,GACjD,OAAO8S,EAAWmwJ,GAAgBnvH,KAAKpwB,OAAO1jB,GAAQvF,WAAWM,OCArE,IAAI,GAAY,CAAC,YAAa,YAAa,YAAa,kBAAmB,kBA4BvEooK,GAAwB,GAAG17I,OAAOw3I,GAAkB,kBACpDmE,GAAyB,gBACzBC,GAAoB,iBACpBC,GAA0B,iBACnB,GAAe/vI,IACtB,IACIgwI,aAAcA,EACdtF,eAAgBA,EAChBn3J,OACI+iG,UAAWA,EACXj5C,UAAWA,GAEf4yG,oBAAqBA,EACrBppK,MAAOA,EACPqpK,YAAaA,EACbv1J,MAAOA,GACPqlB,EACJ,OAAO,gBAAY,EAAG,MAAO8vI,GAAmB,CAAC,gBAAqB,EAAG,GAAW,CAChF7yI,UAAW4yI,GACXz/I,IAAK,EACLD,IAAKktC,EACL1iD,MAAOA,EACP9T,MAAOA,EACPqpK,YAAaA,EACb55D,UAAWA,IACX,gBAAY,EAAG,OAAQs5D,GAAuBlF,EAAgB,GAAI,gBAAqB,EAAG,GAAM,CAChGztI,UAAW8yI,GACX5pF,UAAU,EACVr7E,MAAOuyD,EAAY,EACnB5gD,QAASwzJ,KACR,EAAG,KAAM,KAAMD,IAEbG,GAAkB,CACzB75D,UAAW7oG,OAAO49J,OAAO,CACrB,aAAc,OAAoBzkK,OAAO,6BAG7CwpK,GAAsB,CACtB,gBACI,OAAO3E,GAAmBj8I,WAE9B,gBACI,OAAOi8I,GAAmBpuG,WAE9B,gBACI,OAAO8yG,GAAgB75D,YAMxB,MAAM,WAAmB,QAC5B,YAAY/iG,GACRm9B,MAAMn9B,GACN1K,KAAKmnK,aAAe,kBACpBnnK,KAAKmnD,MAAQ,CACTzwC,SAAU,IAEd1W,KAAKwnK,YAAcxnK,KAAKwnK,YAAYtzI,KAAKl0B,MACzCA,KAAKonK,oBAAsBpnK,KAAKonK,oBAAoBlzI,KAAKl0B,MACzDA,KAAKqnK,YAAcrnK,KAAKqnK,YAAYnzI,KAAKl0B,MAE7C,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKwnK,YAAa,CAACxnK,KAAKmnD,MAAMzwC,YAE5D,gBACI,IAAI2qJ,EACJ,QAAUA,EAAkBrhK,KAAKuhK,SAAS,UAAO,IAAWF,GAA2BA,EAAgBh6H,OAAO,CAACrnC,KAAKmnD,MAAMzwC,WAE9H,cACI,IAAI+wJ,EACAC,EAAK,QAAUD,EAAwBznK,KAAKmnK,aAAar9D,eAAY,IAAW29D,OAAwB,EAASA,EAAsBniF,cAAc,IAAIj6D,OAAO27I,KACpKhnK,KAAKmiK,SAASC,IAAoB,CAC9B1rJ,SAAUgxJ,GAAMpI,GAAmBoI,IAAOtF,EAAiB1rJ,YAGnE,YACI,OAAO1W,KAAK0K,MAAMic,UAAY,EAElC,YACI,IACI6tC,UAAWA,GACXx0D,KAAK0K,MACT,OAAOo8J,GAA2B9mK,KAAKmnD,MAAMzwC,SAAU,CAAC89C,IAE5D,qBACI,IAAImzG,EACJ,OAAQ,QAAUA,EAAwB3nK,KAAK0K,MAAMm3J,sBAAmB,IAAW8F,EAAwBA,EAAwB,KAAO,OAAoB3E,aAAa,yBAAjC,GAE9I,sBACIhjK,KAAK0K,MAAMi3J,gBAAgB3hK,KAAK0K,MAAM8pD,UAAY,GAEtD,YAAYx2D,GACRgC,KAAK0K,MAAMi3J,gBAAgB3jK,EAAQ,GAEvC,qBACI,IAAIqkK,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBy8J,aAAcnnK,KAAKmnK,aACnBnpK,MAAOgC,KAAKhC,MACZ8T,MAAO9R,KAAK8R,MACZ+vJ,eAAgB7hK,KAAK6hK,eACrBuF,oBAAqBpnK,KAAKonK,oBAC1BC,YAAarnK,KAAKqnK,YAClBrF,eAAgBhiK,KAAKgiK,kBAIjC,GAAWxsF,aAAe+xF,GC9I1B,IAAI,GAAY,CAAC,mBAAoB,qBAAsB,gBAAiB,YAAa,YAAa,kBAAmB,iBAAkB,wBAAyB,cA2BhKK,GAAwB,qBACxBC,GAA0B,iBAC1BC,GAA0B,iBACnBC,GAA6B,oBACpCC,GAAqB,IAAM,OAAoBhF,aAAa,mBAAjC,GAC3BiF,GAAqB,IAAM,OAAoBjF,aAAa,mBAAjC,GAC3BkF,GAAa,CACbC,iBAAkB,GAAG98I,OAAOu8I,GAAuB,KAAKv8I,OAAOy8I,IAC/DM,iBAAkB,GAAG/8I,OAAOu8I,GAAuB,KAAKv8I,OAAOw8I,IAC/DQ,kBAAmB,GAAGh9I,OAAO08I,GAA4B,KAAK18I,OAAOu8I,GAAuB,KAAKv8I,OAAOy8I,IACxGQ,kBAAmB,GAAGj9I,OAAO08I,GAA4B,KAAK18I,OAAOu8I,GAAuB,KAAKv8I,OAAOw8I,KAExGU,GAAoB,CACpB98F,KAAM,OACN+yE,KAAM,QAEC,GAAernH,IACtB,IACIqxI,gBAAiBA,EACjB7G,gBAAiBA,EACjB8G,gBAAiBA,EACjB/9J,OACIk1J,mBAAoBA,EACpB8B,cAAeA,EACfltG,UAAWA,EACX7tC,UAAWA,EACXk7I,eAAgBA,GAEpB6G,iBAAkBA,EAClBC,iBAAkBA,GAClBxxI,EACJ,OAAO,gBAAe,CAACwxI,GAAoB,gBAAqB,EAAG,GAAa,CAC5ExlJ,MAAO8kJ,KACP7zI,UAAWq0I,EAAgBr0I,UAC3B1iB,SAAU+2J,EAAgB/2J,SAC1BkC,QAAS60J,EAAgBG,WACzBhJ,GAAsB,gBAAqB,EAAG,GAAY,CAC1D8B,cAAeA,EACfltG,UAAWA,EACX7tC,UAAWA,EACXg7I,gBAAiBA,KAChB/B,GAAsB,gBAAqB,EAAG,GAAY,CAC3DprG,UAAWA,EACX7tC,UAAWA,EACXg7I,gBAAiBA,EACjBE,eAAgBA,IAChB6G,GAAoB,gBAAqB,EAAG,GAAa,CACzDvlJ,MAAO6kJ,KACP5zI,UAAWo0I,EAAgBp0I,UAC3B1iB,SAAU82J,EAAgB92J,SAC1BkC,QAAS40J,EAAgBI,YACxB,IAGT,SAASC,GAAa7jJ,GAClB,MAAO,SAAWA,EAAY,GAAK,EAEhC,IAAI8jJ,GAAyB,CAChClJ,oBAAoB,GAEpBmJ,GAA6B,CAC7B,gBACI,OAAOnG,GAAmBj8I,WAE9B,oBACI,OAAOi8I,GAAmBlB,eAE9B,gBACI,OAAOkB,GAAmBpuG,WAE9B,uBACI,OAAOouG,GAAmB/sG,kBAE9B,4BACI,OAAO+sG,GAAmBn8I,uBAE9B,iBACI,OAAOm8I,GAAmBr2G,YAE9B,yBACI,OAAOu8G,GAAuBlJ,qBAG/B,MAAM,WAA0B,QACnC,YAAYl1J,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GACbnnD,KAAKgpK,cAAgB,GACrBhpK,KAAK2hK,gBAAkB3hK,KAAK2hK,gBAAgBztI,KAAKl0B,MACjDA,KAAKipK,eAAiBjpK,KAAKipK,eAAe/0I,KAAKl0B,MAC/CA,KAAKkpK,kBAAoBlpK,KAAKkpK,kBAAkBh1I,KAAKl0B,MACrDA,KAAKmpK,iBAAmBnpK,KAAKmpK,iBAAiBj1I,KAAKl0B,MACnDA,KAAKopK,cAAgBppK,KAAKopK,cAAcl1I,KAAKl0B,MAC7CA,KAAKqpK,eAAiBrpK,KAAKqpK,eAAen1I,KAAKl0B,MAEnD,aACI,OAAIA,KAAK0kD,QAAQ,QAAclM,IACpBx4C,KAAK0kD,QAAQ,QAAclM,IAE/B,QAAc8qH,aAEzB,gBAAgB38I,GACR3mB,KAAKkpK,kBAAkBviJ,IACvB3mB,KAAK0K,MAAMi3J,gBAAgBh7I,GAGnC,eAAe3B,GACX,IAAI2gJ,EACA2D,EAAoB,QAAU3D,EAAe3lK,KAAKg0B,cAAW,IAAW2xI,GAAgBA,EAAah1J,WAAa43J,GAAkBvjJ,GAAaA,EACjJukJ,EAAcvpK,KAAKopK,cAAcE,GACjCl1I,EAAY8zI,GAAW,GAAG78I,OAAOrG,GAAWqG,OAAOk+I,EAAc,UAAY,WAAY,UAC7F,MAAO,CACHn1I,UAAWA,EACX1iB,SAAU63J,EAAc,GAAK,EAC7BX,SAAU,IAAM5oK,KAAKqpK,eAAeC,IAG5C,kBAAkB3iJ,GACd,OAAK3mB,KAAK0K,MAAMmrD,iBAGTlvC,GAAa,GAAKA,GAAa3mB,KAAK0K,MAAM8pD,UAAY,EAFlD7tC,GAAa,EAI5B,iBAAiB3B,GACb,OAAOhlB,KAAK0K,MAAMic,UAAYkiJ,GAAa7jJ,GAE/C,cAAcA,GACV,OAAOhlB,KAAKkpK,kBAAkBlpK,KAAKmpK,iBAAiBnkJ,IAExD,eAAeA,GACXhlB,KAAK2hK,gBAAgB3hK,KAAKmpK,iBAAiBnkJ,IAE/C,uBACI,IACI46I,mBAAoBA,EACpBn5I,sBAAuBA,GACvBzmB,KAAK0K,MACT,OAAQk1J,GAAsBn5I,EAElC,uBACI,OAAOzmB,KAAK2oK,mBAAqB3oK,KAAK0K,MAAMmrD,iBAEhD,sBACI,YAAI,IAAW71D,KAAKgpK,cAAcP,gBACvBzoK,KAAKgpK,cAAcP,gBAEvBzoK,KAAKgpK,cAAcP,gBAAkB,KAAOzoK,KAAKipK,eAAe,QAA3B,GAEhD,sBACI,YAAI,IAAWjpK,KAAKgpK,cAAcR,gBACvBxoK,KAAKgpK,cAAcR,gBAEvBxoK,KAAKgpK,cAAcR,gBAAkB,KAAOxoK,KAAKipK,eAAe,QAA3B,GAEhD,qBACI,IAAI5G,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoBkH,EAAWC,EAAW/kH,GAClC1kD,KAAK0kD,QAAQ,QAAclM,MAAQkM,EAAQ,QAAclM,KAAOx4C,KAAK0K,MAAMmrD,mBAAqB2zG,EAAU3zG,kBAAoB71D,KAAK0K,MAAM8pD,YAAcg1G,EAAUh1G,WAAax0D,KAAK0K,MAAMic,YAAc6iJ,EAAU7iJ,WAAa3mB,KAAK0K,MAAMi3J,kBAAoB6H,EAAU7H,kBACvQ3hK,KAAKgpK,cAAcP,qBAAkB,GAErCzoK,KAAK0kD,QAAQ,QAAclM,MAAQkM,EAAQ,QAAclM,KAAOx4C,KAAK0K,MAAMmrD,mBAAqB2zG,EAAU3zG,kBAAoB71D,KAAK0K,MAAM8pD,YAAcg1G,EAAUh1G,WAAax0D,KAAK0K,MAAMic,YAAc6iJ,EAAU7iJ,WAAa3mB,KAAK0K,MAAMi3J,kBAAoB6H,EAAU7H,kBACvQ3hK,KAAKgpK,cAAcR,qBAAkB,GAG7C,SACI,IAAI99J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBspB,OAAQh0B,KAAKg0B,OACb2tI,gBAAiB3hK,KAAK2hK,gBACtBgH,iBAAkB3oK,KAAK2oK,iBACvBD,iBAAkB1oK,KAAK0oK,iBACvBD,gBAAiBzoK,KAAKyoK,gBACtBD,gBAAiBxoK,KAAKwoK,gBACtBxG,eAAgBhiK,KAAKgiK,kBAIjC,GAAkBxsF,aAAeuzF,GChNjC,IAAI,GAAY,CAAC,YAAa,qBAAsB,YAAa,aAAc,eAAgB,WAAY,cAAe,oBAAqB,SAAU,OAAQ,oBAAqB,YAAa,UAAW,QAAS,YAAa,OAAQ,UAAW,YAAa,YAAa,cAAe,WAAY,aAAc,gBAAiB,WAAY,kBAAmB,mBAAoB,wBAAyB,4BAA6B,mBAAoB,QAAS,cAAe,YAAa,UAAW,SAqB7e,GAAe5xI,IACtB,IACI+uI,eAAgBA,EAChBlE,eAAgBA,GAChB7qI,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAqB,eAAS,CACxEgvI,cAAe,cACfD,eAAgBA,EAChBE,cAAe,CAAC,yBAA0B,gBAAiB,iBAC5DpE,MAEI0H,GAAiB9kK,OAAO8uD,OAAO9uD,OAAOquD,UAAW,eAASruD,OAAO89J,0BAA0B,SAAc99J,OAAO89J,0BAA0B,CACjJp5I,YAAa,GACblc,mBAAmB,EACnBk6E,eAAe,EACfg8E,aAAc,KACdgD,yBAAyB,MAElBqD,GAAqB,CAC5B,kBACI,OAAOD,GAAepgJ,aAE1B,wBACI,OAAOw8I,GAAiB14J,mBAE5B,oBACI,OAAOs8J,GAAepiF,eAE1B,mBACI,OAAOoiF,GAAepG,cAE1B,eACI,OAAOoG,GAAe3nJ,UAE1B,WACI,OAAO2nJ,GAAe/1J,MAE1B,sBACI,OAAO+1J,GAAelD,iBAE1B,uBACI,OAAOkD,GAAejD,kBAE1B,4BACI,OAAOiD,GAAehD,uBAE1B,gCACI,OAAOgD,GAAe/C,2BAE1B,uBACI,OAAO+C,GAAexzC,kBAE1B,cACI,OAAOwzC,GAAel3C,SAE1B,gBACI,OAAOk3C,GAAej8D,WAE1B,gBACI,OAAOi8D,GAAet1I,WAE1B,yBACI,OAAO0xI,GAAiBj7J,oBAE5B,eACI,OAAO6+J,GAAez9J,UAE1B,wBACI,OAAO65J,GAAiB9oJ,mBAE5B,eACI,OAAO0sJ,GAAeh4J,UAE1B,cACI,OAAOg4J,GAAe73J,SAE1B,YACI,OAAOm0J,GAAiB7iJ,OAE5B,gBACI,OAAO6iJ,GAAiBtkJ,WAE5B4kJ,yBAAyB,GAEtB,MAAM,WAAkB,QAC3B,YAAY57J,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,CACTnpD,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM44J,cAG3E,qBACI,OAAO,eAAS,GAAItjK,KAAK0K,MAAO,CAC5B1M,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAKmnD,MAAMnpD,QAG3E,qBACI,IAAI4oK,EAAoB,eAAS,GAAI5mK,KAAK0K,MAAO,CACzC1M,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAKmnD,MAAMnpD,QAEvEskK,EAAY,gBAA8BsE,EAAmB,IACjE,OAAOtE,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvB1M,WAAO,IAAWgC,KAAK0K,MAAM1M,MAAQgC,KAAK0K,MAAM1M,MAAQgC,KAAKmnD,MAAMnpD,QAEvEkoK,eAAgBlmK,KAAKkmK,eACrBlE,eAAgBhiK,KAAKgiK,kBAIjC,GAAUxsF,aAAem0F,GCvIzB,IAAI,GAAY,CAAC,YAAa,WAAY,iBAAkB,YAAa,aAqB9D,GAAexyI,IACtB,IACIzsB,OACI+iG,UAAWA,EACX7mF,SAAUA,EACVg7I,eAAgBA,EAChBzB,UAAWA,GAEfruJ,MAAOA,GACPqlB,EACJ,OAAO,gBAAqB,EAAG,GAAW,CACtCzd,YAAa,OACbC,UAAW,QACX5N,WAAYo0J,EACZniK,MAAO4oB,EACPygJ,YAAazF,EACb9vJ,MAAOA,EACP27F,UAAWA,KAGRm8D,GAAqB,CAC5Bn8D,UAAW7oG,OAAO49J,OAAO,CACrB,aAAc,OAAoBzkK,OAAO,2BAG7C8rK,GAAyB,CACzB,eACI,OAAOjH,GAAmBh8I,UAE9B,gBACI,OAAOgjJ,GAAmBn8D,YAG3B,MAAM,WAAsB,QAC/B,YAAY/iG,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,CACTzwC,SAAU,IAEd1W,KAAKwnK,YAAcxnK,KAAKwnK,YAAYtzI,KAAKl0B,MAE7C,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKwnK,YAAa,CAACxnK,KAAK0K,MAAO1K,KAAKmnD,MAAMzwC,SAAU1W,KAAK0K,MAAMkc,SAAU5mB,KAAK0K,MAAMk3J,eAAgB5hK,KAAK0K,MAAMy1J,UAAWngK,KAAK0K,MAAM+iG,aAEnK,gBACI,IAAI4zD,EACJ,QAAUA,EAAkBrhK,KAAKuhK,SAAS,UAAO,IAAWF,GAA2BA,EAAgBh6H,OAAO,CAACrnC,KAAK0K,MAAO1K,KAAKmnD,MAAMzwC,SAAU1W,KAAK0K,MAAMkc,SAAU5mB,KAAK0K,MAAMk3J,eAAgB5hK,KAAK0K,MAAMy1J,UAAWngK,KAAK0K,MAAM+iG,YAErO,cACIztG,KAAKmiK,SAASC,IAAoB,CAC9B1rJ,SAAU4oJ,GAAmBt/J,KAAK0K,MAAMq1J,UAAUj2D,UAAYs4D,EAAiB1rJ,YAGvF,YACI,OAAOowJ,GAA2B9mK,KAAKmnD,MAAMzwC,SAAU1W,KAAK0K,MAAMy1J,UAAUthK,IAAIirK,GAAKA,EAAE9rK,QAE3F,qBACI,IAAIqkK,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,SACI,IAAI53J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBoH,MAAO9R,KAAK8R,MACZkwJ,eAAgBhiK,KAAKgiK,kBAIjC,GAAcxsF,aAAeq0F,GC3F7B,IAAI,GAAY,CAAC,WAAY,iBAAkB,aA6BpC,GAAe1yI,IACtB,IACI4yI,cAAeA,GACf5yI,EACJ,OAAO,gBAAe4yI,EAAclrK,IAAIg6B,IACpC,IACIzE,UAAWA,EACXivD,MAAOA,EACPlgE,MAAOA,EACPrP,KAAMA,GACN+kB,EACJ,OAAO,gBAAqB,EAAG,GAAa,CACxCzE,UAAWA,EACXjR,MAAOA,EACPvP,QAASyvE,EACTzxD,SAAU9d,GACXA,KACH,IAGJk2J,GAAyB,CACzB,eACI,OAAOpH,GAAmBh8I,WAG3B,MAAM,WAAsB,QAC/B,YAAYlc,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GACbnnD,KAAKgpK,cAAgB,GACrBhpK,KAAKiqK,iBAAmBjqK,KAAKiqK,iBAAiB/1I,KAAKl0B,MAEvD,oBACI,YAAI,IAAWA,KAAKgpK,cAAce,cACvB/pK,KAAKgpK,cAAce,cAEvB/pK,KAAKgpK,cAAce,cAAgB,MACtC,IACInjJ,SAAUA,EACVu5I,UAAWA,GACXngK,KAAK0K,MACT,OAAOy1J,EAAUthK,IAAI,CAACo6B,EAAOh3B,KACzB,IACI6R,KAAMA,EACN9V,MAAOksK,GACPjxI,EACAqkD,EAAW4sF,IAAsBtjJ,EACjCwN,EAAY,gBAAe,CAC3B,CAACkpD,EAAW0mF,GAAiCF,KAAwB,EACrE,CAACG,IAAoB,IAAMhiK,IAE/B,MAAO,CACHmyB,UAAWA,EACXivD,MAAOrjF,KAAKiqK,iBAAiBC,GAC7B/mJ,MAAO,gBAAO,OAAoB6/I,aAAa,oBAAqBkH,GAAqB,OAAoBlH,aAAa,6BAC1HlvJ,KAAMA,MAnBwB,GAwB9C,iBAAiBo2J,GACb,MAAO,KACHlqK,KAAK0K,MAAMk3J,eAAesI,GACnBlqK,KAAK0K,MAAMkc,UAG1B,qBACI,IAAIy7I,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoBkH,EAAWC,EAAW/kH,GAClC1kD,KAAK0K,MAAMkc,WAAa4iJ,EAAU5iJ,UAAY5mB,KAAK0K,MAAMy1J,YAAcqJ,EAAUrJ,WAAangK,KAAK0K,MAAMk3J,iBAAmB4H,EAAU5H,iBACtI5hK,KAAKgpK,cAAce,mBAAgB,GAG3C,SACI,IAAIr/J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBq/J,cAAe/pK,KAAK+pK,cACpB/H,eAAgBhiK,KAAKgiK,kBAIjC,GAAcxsF,aAAew0F,GClH7B,IAAI,GAAY,CAAC,qBAAsB,WAAY,iBAAkB,YAAa,kBAsBvE,GAAe7yI,IACtB,IACIgzI,QAASA,EACTC,oBAAqBA,EACrB1/J,OACIk1J,mBAAoBA,EACpBh5I,SAAUA,EACVg7I,eAAgBA,IAEpBzqI,EACJ,OAAO,gBAAY,EAAG,MAAO4sI,GAAwB,CAACnE,GAAsB,gBAAqB,EAAG,GAAe,CAC/GO,UAAWiK,EACXxjJ,SAAUA,EACVg7I,eAAgBA,KACfhC,GAAsB,gBAAqB,EAAG,GAAe,CAC9DG,UAAWoK,EACXhK,UAAWiK,EACXxjJ,SAAUA,EACVg7I,eAAgBA,KACf,EAAG,KAAM,KAAMuI,IAGxB,SAASE,KACL,OAAO,OAAoBrH,aAAa,2BAAjC,GAEX,IAAIsH,GAAwB,CACxB1K,oBAAoB,GAEpB2K,GAA4B,CAC5B,eACI,OAAO3H,GAAmBh8I,UAE9B,gBACI,OAAOg8I,GAAmBzC,WAE9B,yBACI,OAAOmK,GAAsB1K,qBAM9B,MAAM,WAAyB,QAClC,YAAYl1J,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GACbnnD,KAAKmqK,QAAU,kBACfnqK,KAAKgpK,cAAgB,GACrBhpK,KAAKwqK,kBAAoBxqK,KAAKwqK,kBAAkBt2I,KAAKl0B,MAEzD,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKwqK,kBAAmB,KAEtD,oBACI,IACIvK,eAAgBA,GAChBjgK,KAAK0K,MACLu1J,IACAA,EAAen2D,QAAU9pG,KAAKmqK,QAAQrgE,SAG9C,0BACI,YAAI,IAAW9pG,KAAKgpK,cAAcoB,oBACvBpqK,KAAKgpK,cAAcoB,oBAEvBpqK,KAAKgpK,cAAcoB,oBAAsB,MAC5C,IACIjK,UAAWA,GACXngK,KAAK0K,MACT,OAAOy1J,EAAUthK,IAAIirK,GAAK,QAAUA,GAAK,IAAMA,EAAI,CAC/Ch2J,KAAMu2J,KACNrsK,MAAO,GACP,CACA8V,KAAMlJ,OAAOk/J,GACb9rK,MAAO8rK,KATiC,GAapD,qBACI,IAAIzH,EAAcriK,KAAK0K,MACnB43J,EAAY,gBAA8BD,EAAa,IAC3D,OAAOC,EAEX,oBAAoBkH,EAAWC,EAAW/kH,GACtC7c,MAAM4iI,sBACFzqK,KAAK0K,MAAMy1J,YAAcqJ,EAAUrJ,YACnCngK,KAAKgpK,cAAcoB,yBAAsB,GAGjD,SACI,IAAI1/J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBy/J,QAASnqK,KAAKmqK,QACdC,oBAAqBpqK,KAAKoqK,oBAC1BpI,eAAgBhiK,KAAKgiK,kBAIjC,GAAiBxsF,aAAe+0F,G,iBCzH5B,GAAY,CAAC,YAAa,cAAe,oBAAqB,mBAAoB,WAAY,cAAe,kBAAmB,qBAAsB,QAAS,mBAAoB,gBAAiB,YAAa,YAAa,YAAa,kBAAmB,WAAY,iBAAkB,YAAa,eAAgB,iBAAkB,wBAAyB,WAAY,iBAAkB,aAAc,WAAY,wBAAyB,gBAAiB,aAAc,WA2C7c,GAAepzI,IACtB,IACIuzI,KAAMA,EACNriC,QAASA,EACTsiC,YAAaA,EACb/K,mBAAoBA,EACpBgL,yBAA0BA,EAC1BC,yBAA0BA,EAC1BC,sBAAuBA,EACvBpgK,OACImrD,iBAAkBA,EAClBtvC,SAAUA,EACVm5I,YAAaA,EACbgC,cAAeA,EACfltG,UAAWA,EACX7tC,UAAWA,EACXg7I,gBAAiBA,EACjB/6I,SAAUA,EACVg7I,eAAgBA,EAChBzB,UAAWA,EACXN,aAAcA,EACdgC,eAAgBA,EAChB/B,SAAUA,EACVnvJ,WAAYA,EACZ8V,sBAAuBA,EACvBs7I,cAAeA,EACfx1G,WAAYA,EACZ16C,QAASA,GAEbmwJ,eAAgBA,EAChB+I,qBAAsBA,GACtB5zI,EACJ,OAAO,gBAAe,gBAAqB,EAAG,QAAQ,eAAS,CAC3D8oI,eAAgB8K,EAChBp6J,WAAYA,EACZ03H,QAASA,EACTx2H,QAASA,EACT64J,KAAMA,GACP1I,EAAgB,CACfpwI,SAAU,CAACmwI,GAAiB,gBAAqB,EAAG,GAAkB,CAClE9B,eAAgBJ,EAChBD,mBAAoBA,EACpBh5I,SAAUA,EACVg7I,eAAgBA,EAChBzB,UAAWA,IACX2K,GAAyB,gBAAY,EAAG,MAAOpH,GAAmB,CAACiH,GAAe,gBAAqB,EAAG,GAAU,CACpH1K,eAAgBP,EAChBn5I,SAAUA,EACViuC,UAAWA,EACX7tC,UAAWA,EACX4lC,WAAYA,IACZq+G,GAA4B,gBAAY,EAAG,MAAOjH,GAA0B,gBAAqB,EAAG,GAAmB,CACvH9tG,iBAAkBA,EAClB+pG,mBAAoBA,EACpB8B,cAAeA,EACfltG,UAAWA,EACX7tC,UAAWA,EACXg7I,gBAAiBA,EACjBE,eAAgBA,EAChBp7I,sBAAuBA,EACvB8lC,WAAYA,IACZ,EAAG,KAAM,KAAMuzG,IAAY,EAAG,CAC9BxjI,MAAO,gBAAgB,CACnB48F,WAAY2xC,YAKjBG,GAAoBpmK,OAAO8uD,OAAO9uD,OAAOquD,UAAW,eAASruD,OAAO89J,0BAA0BE,IAAqBh+J,OAAO89J,0BAA0B,CAC3J/C,iBAAiB,EACjBC,oBAAoB,MAKjB,MAAM,WAAqB,QAC9B,YAAYl1J,GACRm9B,MAAMn9B,GACN1K,KAAKmnD,MAAQ,GACbnnD,KAAK+qK,qBAAuB,kBAC5B/qK,KAAKgpK,cAAgB,GACrBhpK,KAAKwqK,kBAAoBxqK,KAAKwqK,kBAAkBt2I,KAAKl0B,MACrDA,KAAKirK,mBAAqBjrK,KAAKirK,mBAAmB/2I,KAAKl0B,MAE3D,gBACI,MAAO,CAAC,IAAI,QAAcA,KAAKwqK,kBAAmB,KAEtD,kBACI,OAAO,eAAS,GAAIxqK,KAAK0kD,QAAS,CAC9B,CAACu+G,GAAsBzqH,IAAKx4C,KAAKkrK,gBAAkBjI,GAAsBK,eAGjF,oBACI,IACIrD,eAAgBA,GAChBjgK,KAAK0K,MACLu1J,IACAA,EAAen2D,QAAU9pG,KAAK+qK,qBAAqBjhE,SAG3D,qBACI,MAAO,CACHh7E,OAAQ,KAAM,EACd7B,QAAS,IAAMjtB,KAAK+qK,qBAAqBjhE,QACzC57E,sBAAuB,IAAMe,IACzB,IAAIk8I,EAAuB9I,EAC3B,QAAU8I,GAAyB9I,EAAcriK,KAAK0K,OAAOqE,iBAAc,IAAWo8J,GAAiCA,EAAsBhyI,KAAKkpI,EAAapzI,KAI3K,qBACI,YAAI,IAAWjvB,KAAKgpK,cAAckC,eACvBlrK,KAAKgpK,cAAckC,eAEvBlrK,KAAKgpK,cAAckC,eAAiB,MAAO,CAC9Ct8I,uBAAwB,CAAC3B,EAASf,KAC9B,IAAIk/I,EAAoBprK,KAAKirK,qBAC7B,OAAO,EAAwB,QAASG,EAAmBn+I,OAAS,EAAQf,MAHzC,GAO/C,kBACI,IACIyzI,gBAAiBA,EACjBn5I,SAAUA,GACVxmB,KAAK0K,MACT,OAAO8b,GAAYm5I,EAEvB,+BACI,OAAO,IAAM3/J,KAAK0K,MAAMkc,SAE5B,4BACI,IACIN,YAAaA,EACbm7I,iBAAkBA,GAClBzhK,KAAK0K,MACT,MAAI,aAAe4b,QAAe,IAAWm7I,EAClCA,EAAmB,UAAY,OAEnCn7I,EAEX,4BACI,QAAStmB,KAAK0K,MAAMo3J,uBAAyB9hK,KAAK0K,MAAM8pD,UAAY,EAExE,+BACI,GAAI,SAAWx0D,KAAK0K,MAAMo3J,uBAAyB,IAAM9hK,KAAK0K,MAAM8pD,WAAax0D,KAAK0K,MAAMmrD,iBACxF,MAAO,SAIf,yBACI,IAAIvvC,EAActmB,KAAKqrK,sBACnBnpK,GAAS,EAMb,OAJIA,EADA,aAAeokB,EACNtmB,KAAK0K,MAAMk1J,mBAEX,SAAWt5I,EAEjBpkB,EAEX,cACI,IAAIopK,EAAa,CACb,CAAC,GAAGjgJ,OAAOrrB,KAAK0K,MAAM0pB,cAAep0B,KAAK0K,MAAM0pB,UAChD,CAACovI,KAAc,EACf,CAACC,KAAoBzjK,KAAK4/J,oBAE9B,OAAO,gBAAe0L,GAE1B,WACI,MAAO,CACHpgG,KAAM,aACN/nD,MAAOnjB,KAAK0K,MAAMyY,OAG1B,qBACI,IAAIooJ,EAAevrK,KAAK0K,MACpB43J,EAAY,gBAA8BiJ,EAAc,IAC5D,OAAOjJ,EAEX,oBAAoBkH,EAAWC,EAAW/kH,GACtC7c,MAAM4iI,sBACFzqK,KAAK0K,MAAMqE,YAAcy6J,EAAUz6J,YACnC/O,KAAKgpK,cAAckC,oBAAiB,GAG5C,SACI,IAAIxgK,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,GACpBqgK,qBAAsB/qK,KAAK+qK,qBAC3BG,eAAgBlrK,KAAKkrK,eACrBP,YAAa3qK,KAAK2qK,YAClBC,yBAA0B5qK,KAAK4qK,yBAC/BE,sBAAuB9qK,KAAK8qK,sBAC5BD,yBAA0B7qK,KAAK6qK,yBAC/BjL,mBAAoB5/J,KAAK4/J,mBACzBv3B,QAASroI,KAAKqoI,QACdqiC,KAAM1qK,KAAK0qK,KACX1I,eAAgBhiK,KAAKgiK,kBAIjC,GAAaxsF,aAAew1F,GCrP5B,IAAI,GAAY,CAAC,YAAa,mBAAoB,kBAAmB,cAAe,oBAAqB,mBAAoB,WAAY,QAAS,mBAAoB,gBAAiB,YAAa,YAAa,YAAa,kBAAmB,WAAY,iBAAkB,YAAa,iBAAkB,wBAAyB,aAAc,WAAY,wBAAyB,gBAAiB,aAAc,WAoB9Y,GAAe7zI,IACtB,IACIiqI,WAAYA,EACZY,eAAgBA,GAChB7qI,EACJ,OAAO,gBAAe,gBAAqB,EAAG,GAAoB,eAAS,CACvEzZ,gBAAiB,GACjB0jJ,WAAYA,GACbY,MAKA,MAAM,WAAc,QACvB,YAAYt3J,GACRm9B,MAAMn9B,GACN1K,KAAKgpK,cAAgB,GACrBhpK,KAAKmnD,MAAQ,CACTvgC,cAAU,IAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAK0K,MAAMi4J,gBAC5Eh8I,eAAW,IAAW3mB,KAAK0K,MAAMic,UAAY3mB,KAAK0K,MAAMic,UAAY3mB,KAAK0K,MAAMi1H,kBAEnF3/H,KAAK2hK,gBAAkB3hK,KAAK2hK,gBAAgBztI,KAAKl0B,MACjDA,KAAK4hK,eAAiB5hK,KAAK4hK,eAAe1tI,KAAKl0B,MAEnD,gBACI,MAAO,CAAC,mBAEZ,gBAAgBw/H,GAER,IAAIgsC,EASAC,EAVJzrK,KAAK0K,MAAM82J,mBAEXxhK,KAAKmiK,SAASC,IACVoJ,EAAahsC,EAAe,EACrB,CACH74G,UAAW6kJ,KAGnBxrK,KAAK0K,MAAMi3J,gBAAgB6J,KAG3BxrK,KAAKmiK,SAASC,IACVqJ,EAAYjsC,EACL,CACH74G,UAAW8kJ,KAGnBzrK,KAAK0K,MAAMi3J,gBAAgB8J,IAGnC,gBACI,OAAIzrK,KAAK0K,MAAM82J,wBACH,IAAWxhK,KAAK0K,MAAMic,UAAY3mB,KAAK0K,MAAMic,UAAY3mB,KAAKmnD,MAAMxgC,WAAa,OAEtF,IAAW3mB,KAAK0K,MAAMic,UAAY3mB,KAAK0K,MAAMic,UAAY3mB,KAAKmnD,MAAMxgC,UAE/E,eAAe+kJ,GACX,IAAIF,EACJxrK,KAAKmiK,SAASC,IACVoJ,EAAaE,EACN,CACH9kJ,SAAU4kJ,KAGlBxrK,KAAK0K,MAAMk3J,eAAe4J,GAE9B,gBACI,OAAIxrK,KAAK0K,MAAM82J,kBACJ,gBAAe,CAClB,qBAAqB,EACrB,CAAC,GAAGn2I,OAAOrrB,KAAK0K,MAAM0pB,cAAep0B,KAAK0K,MAAM0pB,YAGjDp0B,KAAK0K,MAAM0pB,UAEtB,iBACI,YAAI,IAAWp0B,KAAKgpK,cAAc5H,WACvBphK,KAAKgpK,cAAc5H,WAEvBphK,KAAKgpK,cAAc5H,WAAa,KAAO,eAAS,GAAI,eAAS,GAAIphK,KAAK0K,MAAO,CAChFkc,cAAU,IAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAKmnD,MAAMvgC,SAC5ED,eAAW,IAAW3mB,KAAK0K,MAAMic,UAAY3mB,KAAK0K,MAAMic,UAAY3mB,KAAKmnD,MAAMxgC,YAC/E,CACAyN,UAAWp0B,KAAKo0B,UAChBzN,UAAW3mB,KAAK2mB,UAChBg7I,gBAAiBh7I,GAAa3mB,KAAK2hK,gBAAgBh7I,GACnDi7I,eAAgBh7I,GAAY5mB,KAAK4hK,eAAeh7I,KAPb,GAU3C,qBACI,IAAI+kJ,EAAwB,eAAS,GAAI3rK,KAAK0K,MAAO,CAC7Ckc,cAAU,IAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAKmnD,MAAMvgC,SAC5ED,eAAW,IAAW3mB,KAAK0K,MAAMic,UAAY3mB,KAAK0K,MAAMic,UAAY3mB,KAAKmnD,MAAMxgC,YAEnF27I,EAAY,gBAA8BqJ,EAAuB,IACrE,OAAOrJ,EAEX,oBAAoBkH,EAAWC,EAAW/kH,GACtC7c,MAAM4iI,sBACFzqK,KAAK0K,QAAU8+J,GAAaxpK,KAAK0K,MAAM82J,oBAAsBgI,EAAUhI,mBAAqBxhK,KAAK0K,MAAM0pB,YAAco1I,EAAUp1I,WAAap0B,KAAKmnD,MAAMxgC,YAAc8iJ,EAAU9iJ,WAAa3mB,KAAK0K,MAAMic,YAAc6iJ,EAAU7iJ,WAAa3mB,KAAK0K,MAAMi3J,kBAAoB6H,EAAU7H,iBAAmB3hK,KAAK0K,MAAMk3J,iBAAmB4H,EAAU5H,iBAChV5hK,KAAKgpK,cAAc5H,gBAAa,GAGxC,SACI,IAAI12J,EAAQ1K,KAAK0K,MACjB,OAAO,GAAa,CAChBA,MAAO,eAAS,GAAIA,EAAO,CACvBkc,cAAU,IAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAK0K,MAAMkc,SAAW5mB,KAAKmnD,MAAMvgC,SAC5ED,eAAW,IAAW3mB,KAAK0K,MAAMic,UAAY3mB,KAAK0K,MAAMic,UAAY3mB,KAAKmnD,MAAMxgC,YAEnFg7I,gBAAiB3hK,KAAK2hK,gBACtBh7I,UAAW3mB,KAAK2mB,UAChBi7I,eAAgB5hK,KAAK4hK,eACrBxtI,UAAWp0B,KAAKo0B,UAChBgtI,WAAYphK,KAAKohK,WACjBY,eAAgBhiK,KAAKgiK,kBAIjC,GAAMxsF,aAAeitF,GCpIN,MAAM,WAAc,GAC/B,WACI,IAAI/3J,EAAQm9B,MAAM+jI,WAElB,OADAlhK,EAAMqE,UAAY/O,KAAK6rK,oBAAoBnhK,EAAMqE,WAC1CrE,EAEX,iBACI,MAAO,CACHohK,OAAQ,CACJ,CAAC,WAAY,kBAAmB,kBAChC,CAAC,YAAa,mBAAoB,oBAEtCC,UAAW,GACX5gI,SAAU,GACV7J,UAAW,GACX52B,MAAO,CAAC,kBAAmB,iBAAkB,mBAAoB,kBAAmB,oBAAqB,YAAa,WAAY,WAAY,mBAAoB,cAAe,gBAAiB,YAAa,iBAAkB,UAAW,mBAAoB,wBAAyB,gBAAiB,YAAa,aAAc,wBAAyB,aAAc,QAAS,YAAa,WAAY,cAGtZ,qBACI,OAAO,IAGf,gBAAkB,UAAW,IC5Bd,UCQX,GAAc,QACdshK,GAAkB,GAClBC,GAAe,SAASlmH,GACxB,OAAO,GAAKjH,SAASiH,EAAep/B,cAAgB,IAEpDulJ,GAAY,GAAQl3I,KAAKpC,QAAQ,CACjC,OACI,IAAImzB,EAAiB/lD,KAAKgwB,cAAc,QACxC+1B,EAAevd,QAAQ9G,IAAIzS,IACvB,GAAIA,GAAKA,EAAE1e,mBAAoB,CAC3B,IAAIJ,EAAQnQ,KAAKmsK,OACbh8J,EACAA,EAAM2e,OAAO,CACTnI,UAAWslJ,GAAalmH,GACxBn/B,SAAUm/B,EAAen/B,WACzB4tC,UAAWzO,EAAeyO,YAC1BjI,WAAYxG,EAAewG,aAC3BsJ,iBAAkB9P,EAAe8P,qBAGrC71D,KAAKu1B,eAEDtG,GAAK,WAAaA,EAAEgV,YAAc,oBAAsBhV,EAAEgV,YAAc,qBAAuBhV,EAAEgV,cACzGjkC,KAAKmsK,OAAS,KACdnsK,KAAKu1B,aAIjB,cACI,IAAI1G,EAAW7uB,KAAKitB,UAAUP,SAAS1sB,KAAKw0B,gBAAgB,KACxD43I,EAAepsK,KAAK8uB,OAAO,UAAY,GACvCi3B,EAAiB/lD,KAAKgwB,cAAc,QACpCD,EAAqB/vB,KAAKgwB,cAAc,sBACxCrK,EAAU,CACV+7I,cAAesK,GACfrlJ,UAAWslJ,GAAalmH,GACxByO,UAAWzO,EAAeyO,YAC1B5tC,SAAUm/B,EAAen/B,WACzBm7I,cAAeqK,EAAa1lJ,qBAC5BF,SAAU4lJ,EAAa5lJ,SACvBF,YAAa8lJ,EAAa9lJ,YAC1Bw7I,sBAAuBsK,EAAav6J,QACpC4U,sBAAuB2lJ,EAAa3lJ,sBACpCtD,MAAOipJ,EAAajpJ,MACpBg9I,UAAWngK,KAAK24E,eAChBpsB,WAAYxG,EAAewG,aAC3BsJ,iBAAkB9P,EAAe8P,mBACjC,iBAAiBlvC,GACTo/B,EAAep/B,cAAgBA,EAAY,GAC3Co/B,EAAep/B,UAAUA,EAAY,IAG7C,gBAAgBC,GACZm/B,EAAen/B,SAASA,IAE5B7X,UAAWkgB,GAAKc,GAAsBA,EAAmBhC,cAAc,YAAakB,GACpFo9I,4BAA6BrsK,KAAK8uB,OAAO,+BACzC4O,YAAa19B,KAAK8uB,OAAO,+BAEzB,eAAUs9I,EAAa7lJ,YACvBZ,EAAQY,SAAW6lJ,EAAa7lJ,UAEhCvmB,KAAKmsK,OACLnsK,KAAKmsK,OAAO3jF,UAGZ,iBACAxoF,KAAKmsK,OAASnsK,KAAK8zB,iBAAiBjF,EAAU,GAAOlJ,GAErDkJ,EAASnC,SAAS,YAAYnH,KAAK,4DAG3C,WACI,OAAOvlB,KAAKmsK,QAEhB,eACI,IAAIpmH,EAAiB/lD,KAAKgwB,cAAc,QACpCo8I,EAAepsK,KAAK8uB,OAAO,SAC3BzI,EAAmB+lJ,GAAgBA,EAAa/lJ,iBAChDO,EAAWm/B,EAAen/B,WAW9B,OAVK,eAAU5mB,KAAKssK,aAAgBtsK,KAAKssK,WAAW99H,SAAS5nB,KACzD5mB,KAAKssK,WAAa,GACdF,IACI3tK,MAAMC,QAAQ2nB,GACdrmB,KAAKssK,WAAajmJ,EACXA,GAAoBO,EAAW,IACtC5mB,KAAKssK,WAAa,CAAC50H,KAAK05B,MAAMxqD,EAAW,GAAIA,EAAU,EAAIA,MAIhE5mB,KAAKssK,YAEhB,YACI,IAAIvmH,EAAiB/lD,KAAKgwB,cAAc,QACpCo8I,EAAepsK,KAAK8uB,OAAO,SAC3By9I,EAAeH,GAAgBA,EAAav6J,QAC5CjB,EAAY5Q,KAAK8uB,OAAO,aAQ5B,MAPI,SAAWy9I,IAIPA,IAHA37J,GAAc,YAAcA,EAAUyH,MAAQ,aAAezH,EAAUyH,QAGxD0tC,EAAeyO,YAAc,GAAKzO,EAAejW,aAAeiW,EAAe8P,qBAG/F02G,GAEX,YACI,OAAOvsK,KAAK0xC,oBAEhB,cAAc1jB,GACV,IACIra,KAAMA,GACNqa,EACAw+I,EAAU,UAAY74J,EACtB84J,EAAW,WAAa94J,EACxB+4J,EAAe,eAAiB/4J,EAChCg5J,EAAc,cAAgBh5J,EAC9BoyC,EAAiB/lD,KAAKgwB,cAAc,QACxC,GAAIw8I,GAAWC,GAAYE,GAAeD,EAAc,CAEpD,GADA1+I,EAAKC,SAAU,EACX83B,EAAe6mH,2BAA2B5+I,EAAKixB,UAC/C,QAEAutH,GAAWC,KACXzsK,KAAKssK,WAAa,MAEjBI,IACD1sK,KAAKmsK,OAAS,KACdnsK,KAAK+nC,cACD,kBAAeykI,GAAWxsK,KAAKixB,WAC/BjxB,KAAKixB,UAAUs8C,YAK/B,UACIvtE,KAAKmsK,OAAS,QAGXU,GAAc,CACrB3/H,eAAgB,KAAM,CAClB/8B,MAAO,CACH0B,QAAS,OACT6U,sBAAsB,EACtBL,iBAAkB,OAClBlD,MAAO,OAAoBplB,OAAO,wBAG1Ci7B,MAAO,CACH0/C,UAAWwzF,KC1JnB,GAAS95H,eAAe,QAASy6H,I,8BCmC7BC,GAA0B,oBAC1BC,GAAgC,gCAChCC,GAAwB,cACxB,GAAqB,eACrBC,GAA4B,cAC5BC,GAAgB,UAChBC,GAA+B,iBAC/BC,GAAwB,qBACxB,GAAmB,gBACnB,GAAe,YACfC,GAA8B,uBAC9B,GAAmB,+BACnBC,GAAwC,GACxCC,GAAiB,EACjBC,GAAiB,GACjBz4J,GAAgB,SAAS8d,GACzB,OAAOA,EAAK/D,OAAO,wBAA0B+D,EAAK7C,cAAc,WAAWwhB,mBAAmB,kBAE9F,GAAkB,SAAS3e,GAC3B,OAAOA,EAAK/D,OAAO,0BAA4B+D,EAAK7C,cAAc,WAAWwhB,mBAAmB,oBAEpG,MAAM,WAAoB,GAAQxc,KAC9B,cACI,IAAI1a,EAAWutB,MAAMtR,cAGrB,OAFAv2B,KAAKitB,UAAUP,SAAS1sB,KAAKw0B,gBAAgB04I,KAC7CltK,KAAK8S,OACEwH,EAEX,2BACQta,KAAKytK,kBACLztK,KAAK0tK,yBAAyBrrC,gBAAgBr/F,OAAOhjC,KAAKytK,kBAGlE,uBACI,IAAI56I,EAAO7yB,KACX6yB,EAAK46I,iBAAmB,SAASn1J,GAC7B,IAAIuW,EAAWgE,EAAK5F,UAChB4B,GAAYA,EAAS8B,SAASkC,EAAK2B,gBAAgB04I,OACnDr+I,EAAS4C,IAAI,CACTlO,IAAKjL,EAASiL,MAElB,eAAUsL,EAAUvW,EAASrL,UAGrCjN,KAAK0tK,yBAAyBrrC,gBAAgB3gG,IAAI7O,EAAK46I,kBAE3D,cAAcz/I,GACN,wBAA0BA,EAAKra,OAC/B3T,KAAK2tK,2BACD3/I,EAAKhwB,QACLgC,KAAK4tK,uBACL5tK,KAAK+nC,gBAGbF,MAAMC,cAAc9Z,GAExB,OACI6Z,MAAMqX,OACNl/C,KAAK0tK,yBAA2B1tK,KAAKgwB,cAAc,iBACnDhwB,KAAK4tK,uBAET,YACI,OAAO74J,GAAc/U,MAEzB,OACIA,KAAKitB,UAAUla,OAEnB,OACI/S,KAAKitB,WAAajtB,KAAKitB,UAAUna,OAErC,UAAU9U,GACN,eAAUgC,KAAKitB,UAAWjvB,GAE9B,UACIgC,KAAK2tK,2BACL9lI,MAAMssB,WAGd,MAAM,WAAsB,GAAQn/B,KAChC,oBACA,YAAYrP,GACR,IAAIrL,EAAWutB,MAAMtR,YAAY5Q,GAIjC,OAHA3lB,KAAK6tK,UAAW,EAChB7tK,KAAK8tK,mBACL9tK,KAAK8S,OACEwH,EAEX,OACIta,KAAK6tK,UAAW,EAEpB,OACI7tK,KAAK6tK,UAAW,EAEpB,OAAO7vK,GACH,IAAI6wB,EAAW7uB,KAAKitB,UACpB,GAAI4B,EAAU,CACV,IAAI,eAAU7wB,GAGV,OAAO,eAAU6wB,GAFjB,eAAUA,EAAU7wB,IAMhC,MAAMA,GACF,IAAI6wB,EAAW7uB,KAAKitB,UACpB,GAAI4B,EAAU,CACV,IAAI,eAAU7wB,GAGV,OAAO,eAAS6wB,GAFhB,eAASA,EAAU7wB,KAOnC,MAAM,WAA6B,GAC/B,mBACI6pC,MAAMimI,mBACN,IAAIj/I,EAAW7uB,KAAKitB,UACpB4B,EAASnC,SAAS1sB,KAAKw0B,gBAAgBs4I,KAE3C,uBACI,IACIj+I,EADAgE,EAAO7yB,KAEX6yB,EAAK46I,iBAAmB,SAASn1J,GAC7BuW,EAAWgE,EAAK5F,UACZ4B,IACAA,EAAS4C,IAAI,CACTlO,IAAKjL,EAASiL,MAElB,eAAUsL,EAAUvW,EAASrL,UAGrC4lB,EAAK66I,yBAAyBrrC,gBAAgB3gG,IAAI7O,EAAK46I,kBAE3D,2BACIztK,KAAKytK,kBAAoBztK,KAAK0tK,yBAAyBrrC,gBAAgBr/F,OAAOhjC,KAAKytK,kBAEvF,QACIztK,KAAK+tK,eAAiBh5J,GAAc/U,MAChCA,KAAKk2B,aACLl2B,KAAK4tK,uBAGb,YACI,OAAO5tK,KAAK8uB,OAAO,uBAAyB,GAAgB9uB,OAAS+U,GAAc/U,OAEvF,cAAcguB,GACN,wBAA0BA,EAAKra,OAC3Bqa,EAAKhwB,OACLgC,KAAKwpF,QACLxpF,KAAK+nC,cACL/nC,KAAK8S,MAAK,KAEV9S,KAAK2tK,2BACL3tK,KAAK+tK,eAAiBh5J,GAAc/U,MACpCA,KAAK8S,MAAK,KAGlB+0B,MAAMC,cAAc9Z,GAExB,OACI6Z,MAAMqX,OACNl/C,KAAK0tK,yBAA2B1tK,KAAKgwB,cAAc,iBACnDhwB,KAAKwpF,QAET,OACI,IAAI36D,EAAW7uB,KAAKitB,UAChB4B,IAAa7uB,KAAK6tK,WACd7tK,KAAK+tK,eACLl/I,EAASM,YAAYnvB,KAAKw0B,gBAAgBu4I,KAE1Cl+I,EAAS9b,QAGjB80B,MAAM90B,OAEV,KAAKiuD,GACD,IAAInyC,EAAW7uB,KAAKitB,UAChB+gJ,EAA8BhuK,KAAKw0B,gBAAgBu4I,IACnDl+I,IAAa7uB,KAAK6tK,UAAY7sG,KAC1BhhE,KAAK+tK,gBACLl/I,EAASnC,SAASshJ,GAClBn/I,EAAS4C,IAAI,OAAQ,IACrB5C,EAAS9b,SAEL8b,EAAS8B,SAASq9I,IAClBn/I,EAASM,YAAY6+I,GAEzBn/I,EAAS/b,SAGjB+0B,MAAM/0B,OAEV,QAAQm7J,GACJ,IAAIp/I,EAAW7uB,KAAKitB,UAChB4B,GACAA,EAAS4C,IAAI,OAAQ,OAASw8I,EAAS,EAAIA,EAASjuK,KAAKkuK,iBAAiB7mJ,SAASjE,MAG3F,aAAa+qJ,GACTA,EAAa,eAAUA,GAAcA,EAAa,GAClD,IAAIt/I,EAAW7uB,KAAKitB,UAChB4B,GACAA,EAAS4C,IAAI,SAAU08I,GAG/B,UACInuK,KAAK2tK,2BACL9lI,MAAMssB,WAGd,MAAM,WAA2B,GAC7B,OACI,IAAIthC,EAAO7yB,KACX6nC,MAAMqX,OACNl/C,KAAKgwB,cAAc,QAAQ6iC,eAAenxB,IAAI4pB,IACrCA,GACDz4B,EAAK/f,SAIjB,mBACI+0B,MAAMimI,mBACN9tK,KAAKitB,UAAUP,SAAS0gJ,IAAuB7nJ,KAAK,UAExD,OACI,IAAI6Q,EAAUp2B,KAAKkuK,iBACfr/I,EAAW7uB,KAAKitB,UAChB4B,GAAY7uB,KAAK6tK,UACjBh/I,EAAS4C,IAAI,UAAW,QAExB2E,IAAYA,EAAQxE,SAAS,IAAIvG,OAAO+hJ,KAAwBzuK,QAChEy3B,EAAQ4nC,QAAQh+D,KAAKitB,WAEzB4a,MAAM/0B,OAEV,YACI,IAAIotC,EAAoBlgD,KAAK8uB,OAAO,cAChC4tE,EAAuB18F,KAAK8uB,OAAO,iBACvC,OAAOoxB,GAAqBA,EAAkBruC,SAAW6qF,GAAwBA,EAAqBtkF,QAE1G,KAAKmrC,GACD,IAAI10B,EAAW7uB,KAAKitB,UAChBmhJ,EAAe,SAASC,GACxBx8E,GAAA,KAAGC,KAAKjjE,GAAU,GAClBgjE,GAAA,KAAGE,QAAQljE,EAAU,CACjBzwB,KAAM,QACN+mB,KAAM,CACFrT,MAAO,EACPo4B,QAASmkI,EAAUnkI,SAEvB5kB,GAAI+oJ,EACJppJ,SAAU,IACVC,OAAQ,WAGhB,GAAI2J,IAAa7uB,KAAK6tK,SAClB,OAAQtqH,GACJ,IAAK,QACD6qH,EAAa,CACTt8J,MAAO,OACPo4B,QAAS,iBAEb,MACJ,IAAK,gBACDkkI,EAAa,CACTt8J,MAAO,OACPo4B,QAAS,UAEb,MACJ,QACIrb,EAAS4C,IAAI,UAAW,IAGpCoW,MAAM90B,QAGd,MAAM,WAA2B,GAAQiiB,KACrC,aACI,OAAOh1B,KAAKsuK,YAEhB,uBAAuB5lI,GACnB,IAAIxmC,EAWJ,OAVA,eAAKlC,KAAKuuK,aAAaC,eAAgB,CAACvsK,EAAOwsK,KAC3C,GAAIA,EAAe,CACf,IAAIC,EAAeD,EAAcE,kBACjC,GAAID,SAAiB,IAAWA,EAAa/+F,QAAUjnC,EAAIl1B,EAAIk7J,EAAa/+F,eAAY,IAAW++F,EAAanrJ,KAAOmlB,EAAIl1B,EAAIk7J,EAAanrJ,YAAS,IAAWmrJ,EAAatrJ,MAAQslB,EAAIn1B,EAAIm7J,EAAatrJ,aAAU,IAAWsrJ,EAAa/vE,OAASj2D,EAAIn1B,EAAIm7J,EAAa/vE,OAEtQ,OADAz8F,EAASusK,GACF,KAKZvsK,EAEX,cACIlC,KAAKitB,UAAUP,SAAS,GAAGrB,OAAOrrB,KAAKw0B,gBAAgBw4I,IAAwB,KAAK3hJ,OAAOrrB,KAAKw0B,gBAAgB,IAAqB,KAAKnJ,OAAO,KAAevY,OAEpK,4BACI,IAAI++B,EAAS7xC,KAAK4uK,aAClB/8H,EAAOg9H,mBAAqB,SACrBh9H,EAAOi9H,2BACPj9H,EAAOimB,cACPjmB,EAAOk9H,YACPl9H,EAAOm9H,KAElB,uBAAuBnzI,EAAUxkB,GAC7B,OAAI,eAAUwkB,GACH,CACHqD,YAAa7nB,EACbwkB,SAAUA,GAGXxkB,EAEX,UACI,IAAI4V,EAAUjtB,KAAKitB,UACnBjtB,KAAKuuK,aAAe,KACpBthJ,GAAWA,EAAQqF,SAAS/E,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgBw4I,MAAyBhqI,SAE9F,YACI,IAAIhS,EAAoBhxB,KAAKgwB,cAAc,WACvCgwB,EAAuBhvB,EAAkBijB,oBAC7C,OAAOj0C,KAAK8uB,OAAO,uBAAyB,GAAgB9uB,OAASggD,EAAqBrrC,eAAiBqrC,EAAqBnrC,aAEpI,OACI,IAAIge,EAAO7yB,KACX6nC,MAAMqX,OACNl/C,KAAK48H,YAAc58H,KAAKgwB,cAAc,kBACtChwB,KAAKivK,8BAAgCjvK,KAAKgwB,cAAc,kBACxDhwB,KAAKsuK,aAAc,EACnBtuK,KAAKgwB,cAAc,QAAQ6iC,eAAenxB,IAAI4pB,IAC1C,IAAIr+B,EAAU4F,EAAK5F,WACdq+B,GAAar+B,GACdA,EAAQna,SAIpB,WAAW6S,GACP,IACIqhI,cAAeA,GACfrhI,EACAupJ,IAAoBvpJ,EAAQ69B,aAAaplD,KAC7C4B,KAAKsuK,aAAc,EACnBtuK,KAAKuuK,aAAe5oJ,EACpB3lB,KAAK4uK,aAAe,CAChBO,YAAaxpJ,EAAQ1jB,MACrBmtK,kBAAmBpvK,KAAKqvK,uBAAuB1pJ,EAAQkW,SAAUlW,EAAQuZ,aACzEowI,oBAAqB3pJ,EAAQqhI,cAC7B1jG,eAAgB39B,EAAQ29B,gBAE5B,IAAIyhB,EAAW,aAAWn3C,cAC1B5tB,KAAKuvK,eAAiBxqG,EAASyqG,cAC/BzqG,EAASyqG,cAAgB,WACrB,OAAO,GAEXxvK,KAAK48H,YAAY6yC,KAAKzvK,KAAK4uK,cAC3B5uK,KAAKitB,UAAUwE,IAAI,CACfsM,UAAWipH,GAAiBA,EAAcv1H,IAAI,aAC9CxkB,OAAQ+5I,IAAkBkoB,GAAmBloB,EAAcrzH,IAAI,GAAGyzC,cAAgB,eAAU4/E,IAC5Fl1I,MAAOk1I,IAAkBkoB,GAAmBloB,EAAcrzH,IAAI,GAAGuM,aAAe,eAAS8mH,IACzF0oB,WAAY1oB,GAAiBA,EAAcv1H,IAAI,gBAChD/E,SAAS1sB,KAAKw0B,gBAAgBy4I,KAA4B32I,YAAY+2I,GAA6B6B,GAAiBp7J,KAAKo7J,EAAkB,GAAKvpJ,EAAQ69B,aAAahuC,SACxKxV,KAAKitB,UAAUoJ,SAAS,QAAgBs5I,mBAAmB3oB,IAE/D,WAAWh5H,GACP,IAAIiB,EAAIjB,EAAK/B,OAET4G,KAAMA,GACN5D,EAAElb,KACF67J,EAAY,eAAa3gJ,GACzByH,IAAa7D,EAAKo8I,+BAAgCp8I,EAAKo8I,8BAA8Bv4I,aACrFm5I,EAAch9I,EAAK07I,aACvB,GAAI17I,EAAKy7I,cAAgB53I,EAAY,CACjC,IAAI7H,EAAWgE,EAAK5F,UAChB6iJ,EAAap4H,KAAKq4H,IAAIH,EAAUr8J,EAAIs8J,EAAY7oB,cAAc3/H,SAASjE,KAAOysJ,EAAYG,QAC1FC,EAAav4H,KAAKq4H,IAAIH,EAAUp8J,EAAIq8J,EAAY7oB,cAAc3/H,SAAS9D,IAAMssJ,EAAYK,QAC7F,GAAIrhJ,EAAS+F,GAAG,aAAek7I,EAAavC,IAAkB0C,EAAa1C,GAAgB,CACvF1+I,EAAS9b,OACT,IAAIo9J,EAAUP,EAAUr8J,EAAIs8J,EAAYG,OACpCI,EAASR,EAAUp8J,EAAIq8J,EAAYK,OACvCrhJ,EAAS4C,IAAI,CACTrO,KAAM+sJ,EACN5sJ,IAAK6sJ,IAETv9I,EAAKw9I,WAAWT,GAEpB3gJ,EAAE4P,kBAGV,WAAW+wI,GACP,IAAIU,EAAsBtwK,KAAKuwK,uBAAuBX,GAClDrwC,EAAav/H,KAAK48H,YAClB/qF,EAAS7xC,KAAK4uK,aACdiB,EAAc7vK,KAAKuuK,aACvB,GAAI+B,EAAqB,CACrB,IAAI3/J,EAAa3Q,KAAK8uB,OAAO,cACzB0hJ,EAAwB,kBAAoBF,EAAoB7+H,UAChEg/H,EAAWD,EAAwB,IAAM,IACzCjtH,EAAiB+sH,EAAoB7+H,UACrC5V,EAAW,YAAc0nB,EAAiBssH,EAAYh0I,cAAW,GAEjE2nB,aAAcA,GACdqsH,EACA3+H,EAAiBo/H,EAAoBn+I,kBAAkB0J,EAAU,OAAS2nB,QAAgB,IAAWA,OAAe,EAASA,EAAa7sC,YAAc,GACxJ+5J,EAAiBb,EAAYa,eAAiBb,EAAYa,gBAAkB,GAC5EC,EAAkB,kBAAoBptH,EAAiB,GAAKmtH,EAAentH,IAAmBg8E,EAAWqxC,yBAAyB,OAAAzjJ,EAAA,MAAO,GAAI0iJ,EAAa,CAC1JS,oBAAqBA,EACrB5kK,QAAS4kK,EAAoBr+I,WAAW4J,GACxCqV,eAAgBA,EAChBs/H,sBAAuBA,EACvBz1C,iBAAkB,YAAcx3E,GAAkB,eAAErS,EAAe,IAAIjvC,WAI3E,GAFAyuK,EAAentH,GAAkBotH,EACjC9+H,EAAO0R,eAAiBA,EACpBotH,EAAgBhyK,OAAS,EACzB,IAAK,IAAI6B,EAAI,EAAGA,EAAImwK,EAAgBhyK,OAAQ6B,IAAK,CAC7C,IAAIqwK,EAAiBF,EAAgBnwK,EAAI,KAAOmwK,EAAgBnwK,GAAGiwK,GAAYE,EAAgBnwK,EAAI,GAAGiwK,IAAa,EACnH,QAAI,IAAWI,IAAmBlgK,GAAc,MAAQ8/J,EAAWb,EAAUa,GAAYI,EAAiBjB,EAAUa,GAAYI,GAAiB,CAC7Ih/H,EAAOg9H,kBAAoB7uK,KAAKqvK,uBAAuBxzI,EAAU80I,EAAgBnwK,GAAG0+B,aAChFgS,EAAe1wC,IACfqxC,EAAOi9H,oBAAsB59H,EAAe3hB,GAAG/uB,GAC/CqxC,EAAOimB,QAAS,IAEhBjmB,EAAOi9H,oBAAsB59H,EAAe6xB,OAC5ClxB,EAAOimB,QAAS,GAEpBjmB,EAAOk9H,KAAO4B,EAAgBnwK,GAAG+S,EACjCs+B,EAAOm9H,KAAO2B,EAAgBnwK,GAAGgT,EACjC+rH,EAAWuxC,KAAKj/H,GAChB,YAIR7xC,KAAK+wK,4BACLxxC,EAAWuxC,KAAKj/H,IAI5B,WAAW7jB,GACP,IAAIiB,EAAIjB,EAAK/B,OAET4G,KAAMA,GACN5D,EAAElb,KACFwrH,EAAa1sG,EAAK+pG,YACtB/pG,EAAK5F,UAAUna,OACXysH,GAAc1sG,EAAKy7I,aACnB/uC,EAAWyxC,KAAKn+I,EAAK+7I,cAEzB/7I,EAAK5F,UAAUoJ,SAASxD,EAAKq7I,kBAC7Br7I,EAAK07I,aAAe,KACpB17I,EAAK+7I,aAAe,KACpB/7I,EAAKy7I,aAAc,EACnB,aAAW1gJ,cAAc4hJ,cAAgB38I,EAAK08I,gBAAkB,MAGxE,IAAI0B,GAA2B,SAASp+I,GACpC,MAAO,WAAaA,EAAK/D,OAAO,uBAEpC,MAAM,WAAqC,GAAQgG,eAC/C,kBAAkBk6I,GACd,GAAIhvK,KAAKyqE,mBAAoB,CACzB,IAAIx9C,EAAUjtB,KAAKyqE,mBAAmBx9C,UACtC,GAAIA,EAAS,CACT,IAAIkiH,EAAYliH,EAAQ5F,SAAS9D,IAC7B2tJ,EAAmBlxK,KAAKyqE,mBAAmB0mG,sBAC/C,OAAOnC,GAAQ7/B,GAAa6/B,GAAQ7/B,EAAY+hC,GAGxD,OAAO,EAEX,oBACI,IAAI7gJ,EACJ,OAAOrwB,KAAK8uB,OAAO,eAAiB,SAAW,QAAUuB,EAAKrwB,KAAKoxK,yBAAsB,IAAW/gJ,OAAK,EAASA,EAAGiC,SAASb,IAAI,cAEtI,cAAc4/I,EAAOC,EAAa5lK,GAC9B,IAAI6lK,EAAmBN,GAAyBjxK,MAC5C2Q,EAAa3Q,KAAK8uB,OAAO,cACzB0iJ,EAAmBxxK,KAAKyxK,oBACxBC,EAAyBH,IAAoB5gK,GAAe6gK,EAAuB,EAAJ,EACnF,GAAIH,EAAMpvK,OAASyvK,GAAyBL,EAAMpvK,MAAQqvK,GAAgBC,GAAsB5gK,IAAc6gK,EAAwB,EAAJ,GAAQ,CACtIH,EAAMnyI,aAAewyI,EACrB,IAAI36H,EAAgBrrC,EAAQ2lK,EAAMnyI,cAAgB,GAC9CyyI,EAAajmK,EAAQ2lK,EAAMnyI,YAAc,IAAM,GACnD,QAASqyI,EAAmBx6H,EAAchiC,eAAiB48J,EAAW58J,cAAgBgiC,EAAchiC,eAExG,OAAO,EAEX,gBAAgB47J,EAAiBiB,EAAU5B,GACvC,GAAIW,EACA,IAAK,IAAInwK,EAAI,EAAGA,EAAImwK,EAAgBhyK,OAAQ6B,IACxC,IAAImwK,EAAgBnwK,GAAG+S,IAAMo9J,EAAgB,GAAGp9J,IAAKo9J,EAAgBnwK,EAAI,IAAMmwK,EAAgBnwK,GAAG+S,IAAMo9J,EAAgBnwK,EAAI,GAAG+S,IAG3Ho9J,EAAgBnwK,GAAG+S,EAAIy8J,GAAU4B,GAAYA,GAAYjB,EAAgBnwK,GAAG+S,EAAIy8J,EAChF,OAAOW,EAAgBnwK,GAInC,OAAO,KAEX,eAAewtB,GACX,IAAIqC,EACApB,EAAIjB,EAAK/B,MACT4G,EAAO5D,EAAElb,KACT89J,EAAwBh/I,EAAKi/I,sBAAsBhgK,QACnDy/J,EAAmBN,GAAyBp+I,GAC5Cm9I,EAAS6B,EAAwB,EACjCE,EAAel/I,EAAKu+I,kBAAkB/pJ,SACtC2qJ,EAAmBD,EAAa3uJ,KAChCwsJ,EAAY,eAAa3gJ,GACzBte,EAAakiB,EAAK/D,OAAO,cACzB0iJ,EAAmBxxK,KAAKyxK,oBACxBQ,EAAa,QAAU5hJ,EAAKwC,EAAKq/I,2BAAwB,IAAW7hJ,OAAK,EAASA,EAAG4hJ,aACzF,GAAIp/I,EAAKs/I,aAAet/I,EAAKu/I,eACzB,IAAKJ,GAAoBpC,EAAUr8J,IAAMg+J,GAAoBC,MAAuBD,GAAoB3B,EAAUr8J,GAAKy+J,EAAmB,eAASn/I,EAAKu+I,qBAChJv+I,EAAKw/I,4BAA4BzC,EAAUr8J,GAAI,CAC/C,IAAIme,EAAQmB,EAAK43C,mBAAmBt4C,oBAAoB5C,GAAGsD,EAAKu/I,cAAcE,oBAC1Ej2I,EAAO3K,EAAM,GACjB,GAAI2K,EAAM,CACN,IAAIk2I,EAAal2I,EAAKsN,wBAAwB73B,MAC9C+gB,EAAKi/I,sBAAsBU,QAAQ9gJ,EAAMrK,SAASjE,OAASmuJ,GAAoBC,IAAqB7gK,EAAa,EAAI4hK,IACrH1/I,EAAK66I,yBAAyBrmI,OAAOxU,EAAK8uH,aAAanuI,GACvDyb,EAAE4P,wBAINozI,IACJp/I,EAAK4/I,kBAAkB7C,EAAUp8J,IAC7Bqf,EAAK6/I,wBACD7/I,EAAK6/I,sBAAsBtvJ,OAAS2uJ,EAAa3uJ,MAAQyP,EAAK6/I,sBAAsBnvJ,MAAQwuJ,EAAaxuJ,KACzGsP,EAAK89I,gBAAgB,OAG7B99I,EAAK8uH,aAAe9uH,EAAK8/I,gBAAgB9/I,EAAK89I,kBAAmBf,EAAUr8J,EAAGs+J,GAC9Eh/I,EAAK6/I,sBAAwBX,EAC7Bl/I,EAAK+/I,kBAAmB,EACpB//I,EAAK8uH,cACL9uH,EAAKi/I,sBAAsBe,aAAa,cACxChgJ,EAAKi/I,sBAAsBU,QAAQ3/I,EAAK8uH,aAAapuI,EAAIy8J,GACzDn9I,EAAK66I,yBAAyBrmI,OAAOxU,EAAK8uH,aAAanuI,GACvDqf,EAAK+/I,kBAAmB,EACxB3jJ,EAAE4P,mBAEFhM,EAAKi/I,sBAAsBe,eAC3BhgJ,EAAKi/I,sBAAsBU,QAAQ,SAGvC3/I,EAAK89I,gBAAgB,MACrB99I,EAAK+/I,kBAAmB,EACxB//I,EAAKi/I,sBAAsBe,eAC3BhgJ,EAAKi/I,sBAAsBU,QAAQ,QAI/C,aAAaxkJ,GACT,IAAIiB,EAAIjB,EAAK/B,MACT4G,EAAO5D,EAAElb,KACT8e,EAAKs/I,cACLt/I,EAAK89I,gBAAgB,MACrB99I,EAAKu/I,cAAgB,KACrBv/I,EAAKi/I,sBAAsBh/J,OAC3B+f,EAAKi/I,sBAAsBe,eAC3BhgJ,EAAKigJ,aAAahgK,OAClB+f,EAAK+/I,kBAAmB,EACxB//I,EAAKs/I,aAAc,GAG3B,oBAAoBG,GAChB,OAAOA,EAAqB,EAEhC,mBAAmBvD,GACf,IAAIuD,EAAqBtyK,KAAK2hJ,aAAaziH,YACvC6zI,EAAkB/yK,KAAKgzK,oBAAoBV,GAC3CW,EAAgBjzK,KAAKyqE,mBAAmByoG,iBAAiBZ,GACzDa,EAAanzK,KAAKyqE,mBAAmByoG,iBAAiBH,GAC1D/yK,KAAKoyK,cAAgB,CACjBgB,UAAWrE,EACXuD,mBAAoBA,EACpBe,mBAAoBJ,GAAiBA,EAAct0K,OAAS,EAAI,eAAgBs0K,EAAc,IAAInhK,MAAQ,EAC1GihK,gBAAiBA,EACjBO,gBAAiBH,GAAcA,EAAWx0K,OAAS,EAAI,eAAgBw0K,EAAW,IAAIrhK,MAAQ,GAGtG,eAAekc,GACX,IAAIiB,EAAIjB,EAAK/B,MACT4G,EAAO5D,EAAElb,KACT67J,EAAY,eAAa3gJ,GAY7B,GAXI,eAAaA,KACT4D,EAAK4/I,kBAAkB7C,EAAUp8J,IACjCqf,EAAK8uH,aAAe9uH,EAAK8/I,gBAAgB9/I,EAAK89I,kBAAmBf,EAAUr8J,EAAG+5J,IAC1Ez6I,EAAK8uH,eACL9uH,EAAKi/I,sBAAsBU,QAAQ3/I,EAAK8uH,aAAapuI,EAAIsf,EAAKi/I,sBAAsBhgK,QAAU,GAC9F+gB,EAAK+/I,kBAAmB,IAG5B//I,EAAK+/I,kBAAmB,GAG5B//I,EAAK+/I,iBAAkB,CACvB//I,EAAK0gJ,mBAAmB3D,EAAUr8J,GAClCsf,EAAKs/I,aAAc,EACnBt/I,EAAK66I,yBAAyBrmI,OAAOxU,EAAK8uH,aAAanuI,GACvDqf,EAAKi/I,sBAAsB/+J,OAC3B8f,EAAKigJ,aAAa//J,OAClB,IAAI0sD,EAAa5sC,EAAK5B,UAAUgvC,gBAC5BR,GAAc5sC,EAAK4+I,sBACnB5+I,EAAK4uC,aAAe,eAAShC,EAAWrxB,YAAc,eAASqxB,EAAWhiD,aAAegiD,EAAW57B,cAExG5U,EAAE4P,iBACF5P,EAAEg7C,kBAEFjqE,KAAK02B,cACL12B,KAAKgwB,cAAc,iBAAiBqhF,YAG5C,2BACI,IAAIx+E,EAAO7yB,KACP0L,EAAUmnB,EAAKmM,mBAAqBnM,EAAKmM,mBAAmBC,oBAAsB,GAClF1M,EAAQM,EAAK43C,mBAAmBt4C,oBAChCw+I,EAAkB,GAClBp+I,GAASA,EAAM5zB,OAAS,IACxBgyK,EAAkB,QAAc6C,mBAAmBjhJ,EAAO8+I,GAASx+I,EAAK4gJ,cAAcpC,EAAO9+I,EAAM5zB,OAAQ+M,KAE/GmnB,EAAK6gJ,iBAAmB/C,EAE5B,yBACI3wK,KAAK2zK,uBAAyB,OAAanlJ,IAAI,aAAWZ,cAAe,eAAa+N,EAAA,KAAcm+G,KAAM,IAAmB95I,KAAK2zK,uBAClI3zK,KAAK4zK,uBAAyB,OAAaplJ,IAAIxuB,KAAKoxK,kBAAmB,eAAaz1I,EAAA,KAAcC,KAAM,IAAmB57B,KAAK4zK,uBAC5H5zK,KAAK6zK,sBACL,OAAarlJ,IAAIxuB,KAAK8xK,sBAAsB7kJ,UAAW,eAAa0O,EAAA,KAAcu+E,GAAI,IAAmBl6G,KAAK6zK,qBAC9G,OAAarlJ,IAAI,aAAWZ,cAAe,eAAa+N,EAAA,KAAcu+E,GAAI,IAAmBl6G,KAAK6zK,sBAG1G,qBACI7zK,KAAK2zK,sBAAwB3zK,KAAKkwB,aAAalwB,KAAK8zK,gBACpD9zK,KAAK4zK,sBAAwB5zK,KAAKkwB,aAAalwB,KAAK+zK,gBACpD/zK,KAAK6zK,oBAAsB7zK,KAAKkwB,aAAalwB,KAAKg0K,cAClD,OAAa1lJ,GAAG,aAAWV,cAAe,eAAa+N,EAAA,KAAcm+G,KAAM,IAAmB95I,KAAMA,KAAK2zK,uBACzG,OAAarlJ,GAAGtuB,KAAKoxK,kBAAmB,eAAaz1I,EAAA,KAAcC,KAAM,IAAmB57B,KAAMA,KAAK4zK,uBACvG,OAAatlJ,GAAGtuB,KAAK8xK,sBAAsB7kJ,UAAW,eAAa0O,EAAA,KAAcu+E,GAAI,IAAmBl6G,KAAMA,KAAK6zK,qBACnH,OAAavlJ,GAAG,aAAWV,cAAe,eAAa+N,EAAA,KAAcu+E,GAAI,IAAmBl6G,KAAMA,KAAK6zK,qBAE3G,4BAA4B9E,GACxB,IAAIiB,EACA5xE,EACA5xB,EAAexsE,KAAK0qE,UAAU8B,eAC9BynG,EAAej0K,KAAKoyK,cACpBphJ,EAAoBhxB,KAAKg/B,mBACzBD,EAAiB/N,EAAkBiO,oBACnC4yI,EAAwB7xK,KAAK8xK,sBAAsBhgK,QACnDy/J,EAAmBN,GAAyBjxK,MAC5C4oD,EAA0B2oH,GAAoBvxK,KAAK8uB,OAAO,6BAA+B9uB,KAAK8uB,OAAO,mBACrGne,EAAa3Q,KAAK8uB,OAAO,cACzB0iJ,EAAmBxxK,KAAKyxK,oBACxBzvK,EAAS+8B,EAAek1I,EAAa3B,oBACrCX,EAAa5yI,EAAek1I,EAAalB,iBAE7C,SAASmB,EAAepiK,GACpB,OAAO,eAASA,IAAUA,EAAM4N,SAAS,KAG7C,SAASy0J,EAAenyK,EAAQ2J,EAAa6gE,EAAc5jB,GACvD,GAAI5mD,EAAQ,CACR,IAAIoyK,EAAiBpyK,EAAO8P,MACxBsiK,IACAxrH,EAA0BsrH,EAAeE,IAEzCxrH,GACA53B,EAAkBoa,aAAappC,EAAOC,MAAO,eAAgB0J,GAC7DqlB,EAAkBoa,aAAappC,EAAOC,MAAO,QAAS,GAAGopB,QAAQ1f,EAAc6gE,EAAe,KAAKpvC,QAAQ,GAAI,QAE/GpM,EAAkBoa,aAAappC,EAAOC,MAAO,eAAgB,MAC7D+uB,EAAkBoa,aAAappC,EAAOC,MAAO,QAAS0J,KAIlEqkK,EAASjB,EAAOkF,EAAab,WACxB7B,GAAoBC,IAAqB7gK,IAC1Cq/J,GAAUA,GAEd,IACIqE,UAAWA,EACXC,cAAeA,GACf,SAASjpC,GACT,IAAIkpC,EACAD,EACAE,EACAH,EAAYJ,EAAaZ,mBAAqBhoC,EAC9C30H,EAAW1U,GAAUA,EAAO0U,UAAYm7J,EACxC3vK,EAAS,GAqBb,OApBImyK,GAAa39J,EACbxU,EAAOmyK,UAAYA,GAEnBnyK,EAAOmyK,UAAY39J,EACnB89J,GAA8B,GAE9BjD,IACA+C,EAAgBL,EAAaX,gBAAkBjoC,EAC/CkpC,EAAe5C,GAAcA,EAAWj7J,UAAYm7J,EAChDyC,GAAiBC,EAEbryK,EAAOoyK,cADPE,EACuBP,EAAaX,iBAAmBjoC,EAAQ30H,EAAW29J,GAEnDC,GAG3BpyK,EAAOoyK,cAAgBC,EACvBryK,EAAOmyK,UAAYJ,EAAaZ,oBAAsBhoC,EAAQkpC,EAAeD,KAG9EpyK,EA3BP,CA4BF8tK,GAEF,GADA5xE,EAAap8F,EAAO8P,QAAUuiK,EAC1Bj2E,EAAY,CAmBZ,GAlBAptE,EAAkB81B,cAClButH,EAAY38H,KAAK05B,MAAMijG,GACvB7nG,EAAe,SAASA,EAAcztC,GAClC,IAAI01I,EAAsB11I,EAAektB,MAAMjqD,GAAUA,EAAO8P,OAChE,GAAI2iK,EAAqB,CACrB,IAAIC,EAAe31I,EAAevF,OAAO,CAAC3O,EAAK7oB,KACvCkyK,EAAelyK,EAAO8P,SACtB+Y,GAAOkL,WAAW/zB,EAAO8P,QAEtB+Y,GACR,GACC6pJ,EAAe,MACfloG,EAAeA,EAAekoG,EAAe,KAGrD,OAAOloG,EAbI,CAcbA,EAAcztC,GAChBo1I,EAAenyK,EAAQqyK,EAAW7nG,EAAc5jB,GAC5C2oH,EACA+C,EAAgB58H,KAAK05B,MAAMkjG,GAC3BH,EAAexC,EAAY2C,EAAe9nG,EAAc5jB,OACrD,CACH,IAAI0e,EAAetnE,KAAKyqE,mBAAmBmD,kBAC3CtG,EAAa2sG,EAAa3B,oBAAsB+B,EAChD,IAAIM,EAAYrtG,EAAa9tC,OAAO,CAACizC,EAAY36D,IAAU26D,EAAa36D,EAAO,GAAK9R,KAAK0qE,UAAU8B,eACnG,IAAKmoG,EAAW,CACZ,IAAIhkG,EAAkB,QAAcC,4BAA4B7xC,GAC5D4xC,GAAmB,GACnB3/C,EAAkBoa,aAAarM,EAAe4xC,GAAiB1uE,MAAO,eAAgB,QAG9F,IAAK,IAAIzB,EAAI,EAAGA,EAAI8mE,EAAa3oE,OAAQ6B,IACjCu+B,EAAev+B,IAAMu+B,EAAev+B,KAAOwB,QAAU,IAAW+8B,EAAev+B,GAAGsR,OAClFkf,EAAkBoa,aAAarM,EAAev+B,GAAGyB,MAAO,QAASqlE,EAAa9mE,IAK1F,GADAwwB,EAAkB+1B,aACbwqH,EAAkB,CACnBvxK,KAAKixB,UAAU8gD,mBACf,IAAItS,EAAaz/D,KAAKixB,UAAUgvC,gBAChC,GAAIR,GAAc+xG,EAAkB,CAChC,IAAIpuJ,EAAO,eAASq8C,EAAWrxB,YAAc,eAASqxB,EAAWhiD,aAAezd,KAAKyhE,aACrFhC,EAAW17B,SAAS,CAChB3gB,KAAMA,MAKtB,OAAOg7E,EAEX,qBAAqBmC,EAAUvM,GAC3BuM,EAAS7+D,IAAIsyD,GACbh0F,KAAK40K,uBAAuBn1K,KAAK,CAC7B8gG,SAAUA,EACVvM,QAASA,IAGjB,4BACI,IAAK,IAAIxzF,EAAI,EAAGA,EAAIR,KAAK40K,uBAAuBj2K,OAAQ6B,IAAK,CACzD,IAAIq0K,EAAY70K,KAAK40K,uBAAuBp0K,GAC5Cq0K,EAAUt0E,SAASv9D,OAAO6xI,EAAU7gF,SAExCh0F,KAAK40K,uBAAyB,GAElC,gBACI50K,KAAK80K,yBACL90K,KAAK+0K,4BAET,QACI,IAAIliJ,EAAO7yB,KACPg1K,EAAiC,WAC5BniJ,EAAKs/I,aACNt/I,EAAK89I,gBAAgB,OAGzBsE,EAAuC,SAAS5tJ,GAC5CwL,EAAKiR,cAAgBzc,EAAOjE,OAC5ByP,EAAKiR,YAAczc,EAAOjE,KAC1ByP,EAAK89I,gBAAgB,QAG7B99I,EAAKi/I,sBAAwBj/I,EAAKgc,QAAQ,wBAC1Chc,EAAK43C,mBAAqB53C,EAAKgc,QAAQ,qBACvChc,EAAKigJ,aAAejgJ,EAAKgc,QAAQ,eACjChc,EAAK63C,UAAY73C,EAAKgc,QAAQ,YAC9Bhc,EAAKmM,mBAAqBnM,EAAK7C,cAAc,WAC7C6C,EAAK66I,yBAA2B76I,EAAK7C,cAAc,iBACnD6C,EAAKu+I,kBAAoBv+I,EAAK5B,UAAUpC,WACxCgE,EAAKq/I,oBAAsBr/I,EAAK5B,UAAU4d,QAAQ,sBAClDhc,EAAK+6I,qBAAqB/6I,EAAK43C,mBAAmB90C,gBAAiBq/I,GACnEniJ,EAAK+6I,qBAAqB/6I,EAAK43C,mBAAmB70C,gBAAiBo/I,GACnEniJ,EAAK+6I,qBAAqB/6I,EAAKi/I,sBAAsBn8I,gBAAiB,KAClE9C,EAAKiiJ,yBACLjiJ,EAAKqiJ,uBAETriJ,EAAK+6I,qBAAqB/6I,EAAK63C,UAAU/0C,gBAAiB,KACtD9C,EAAK63C,UAAU7hC,cAAc7F,OAAOiyI,GACpCpiJ,EAAK63C,UAAU7hC,cAAcnH,IAAIuzI,KAErC,IAAIE,EAA8B,IAAMtiJ,EAAK63C,UAAU7E,oBACnDuvG,EAAsB,EAC1BviJ,EAAK+6I,qBAAqB/6I,EAAK7C,cAAc,iBAAiBqyG,gBAAiBpzG,IAC3E,GAAI4D,EAAKs/I,cAAgBt/I,EAAK63C,UAAUh0C,WAAY,CAChD,IAAI2+I,EAAsB,IAAMxiJ,EAAK63C,UAAU7E,oBAC3CsvG,IAAgCE,GAAuBD,GAAuBA,IAAwBnmJ,EAAEhiB,QACxGkoK,EAA8BE,EAC9BD,EAAsBnmJ,EAAEhiB,OACxB4lB,EAAK5B,UAAU8gD,oBAEfl/C,EAAK63C,UAAUhG,2BAGvB0wG,EAAsBnmJ,EAAEhiB,SAGhC,cAAc+gB,GACV6Z,MAAMC,cAAc9Z,GAChB,wBAA0BA,EAAKra,OAC3Bqa,EAAKhwB,OACLgC,KAAKwpF,QACLxpF,KAAKk1K,sBAELl1K,KAAKs1K,iBAIjB,aACI,OAAOt1K,KAAKmyK,YAEhB,OACInyK,KAAK40K,uBAAyB,GAC1B7/J,GAAc/U,OACdA,KAAKwpF,QAGb,gBAAgBxrF,GACZ,QAAI,IAAWA,EAMX,OAHKgC,KAAK0zK,kBACN1zK,KAAK4wK,2BAEF5wK,KAAK0zK,iBALZ1zK,KAAK0zK,iBAAmB11K,EAQhC,UACIgC,KAAKs1K,gBACLztI,MAAMssB,WAGd,MAAM,WAAoC,GAAQr/B,eAC9C,YAAY7D,GACR4W,MAAM5W,GACNjxB,KAAKqiI,gBAAkB,wBAE3B,OAAO9+G,GACH,IAAIsuB,EAAS,GACThjB,EAAW7uB,KAAKyqE,mBAAmBx9C,UACnC5F,EAASwH,GAAYA,EAASxH,SAC9B8nH,EAAY9nH,GAAUA,EAAO9D,KAAO,EACpCgyJ,EAAgB,eAAUhyJ,GAAOm0B,KAAKq4H,IAAIxsJ,EAAM4rH,GAAa,EAC7DqmC,EAAuBx1K,KAAKyqE,mBAAqBzqE,KAAKyqE,mBAAmBgrG,YAAc,EACvFC,EAAiB11K,KAAK0qE,UAAU7E,mBAAkB,GAClD/B,EAAa9jE,KAAK0qE,UAAY1qE,KAAK0qE,UAAUz9D,SAAWyoK,EAAiB,EACzEC,EAA2B31K,KAAKixB,UAAUjB,cAAc,kBACxD4lJ,EAAqB51K,KAAKixB,UAAU4d,QAAQ,sBAChDgD,EAAO5kC,OAASuoK,EAChB,IAAIK,EAAuBF,EAAyBj/I,cAAgBk/I,EAAmB3D,aACnF4D,IACAhkI,EAAO5kC,QAAU62D,EAAayxG,GAE9B,OAAShyJ,GAAOsL,GAAYA,EAASlwB,SACrCkzC,EAAOtuB,IAAMsL,EAAS,GAAGsgH,UAAYomC,GAEzCv1K,KAAKqiI,gBAAgB5rG,KAAKob,GAE9B,OACI,IAAIhf,EAAO7yB,KACX6nC,MAAMqX,OACNrsB,EAAK43C,mBAAqBzqE,KAAK6uC,QAAQ,qBACvChc,EAAK63C,UAAY1qE,KAAK6uC,QAAQ,YAC9Bhc,EAAKijJ,WAAa91K,KAAK6uC,QAAQ,aAC/Bhc,EAAK63C,UAAU90C,gBAAgB8L,IAAI,KAC/B,GAAI7O,EAAK/D,OAAO,uBAAwB,CACpC,IAAIinJ,EAAcljJ,EAAK7C,cAAc,kBAAkB2xH,aACvD9uH,EAAKwU,OAAO0uI,EAAcA,EAAYviK,EAAI,UAK1D,MAAM,WAAqC,GAAQshB,eAC/C,yBAAyBnP,GACrB,IAAIkN,EAAO7yB,KAEX,OADAA,KAAKg2K,4BAA8Bh2K,KAAKi2K,iCAAiCtwJ,GAClE,QAAc6tJ,mBAAmB7tJ,EAAQurB,eAAgBmgI,GAASx+I,EAAK4gJ,cAAcpC,EAAO1rJ,EAAQja,QAASia,EAAQ2qJ,oBAAoB7+H,UAAW9rB,EAAQ69B,cAAe79B,EAAQ6qJ,sBAAuB7qJ,EAAQo1G,kBAE7N,iCAAiCp1G,GAE7B,IADA,IAAIuwJ,GAAwB,EACnB11K,EAAI,EAAGA,EAAImlB,EAAQja,QAAQ/M,OAAQ6B,GAAK,EAAG,CAChD,IAAIsgC,EAAMnb,EAAQja,QAAQlL,GAC1B,GAAI,WAAasgC,EAAItO,UAAY0jJ,EAC7B,OAAO,EAENp1I,EAAItO,UACL0jJ,GAAwB,GAGhC,OAAO,EAEX,cAAc7E,EAAO3lK,EAAS+Z,EAAU+9B,GACpC,IAAInzB,EACAuzB,EAAel4C,EAAQ2lK,EAAMnyI,aAC7B6hB,EAAar1C,EAAQ2lK,EAAMnyI,YAAc,GACzCi3I,EAA4B,YAAc,OAASp1H,QAAc,IAAWA,OAAa,EAASA,EAAWvuB,SAC7G4jJ,EAAsB,YAAc,OAASxyH,QAAgB,IAAWA,OAAe,EAASA,EAAapxB,UAAY,YAAc,OAASuuB,QAAc,IAAWA,OAAa,EAASA,EAAWvuB,SAC1M6jJ,EAAiC7yH,IAAiBA,EAAa1uC,gBAC/DwhK,IAAkC,OAAS1yH,QAAgB,IAAWA,OAAe,EAASA,EAAa9uC,oBAAsB,OAASisC,QAAc,IAAWA,OAAa,EAASA,EAAWjsC,iBACxM,OAAQ2Q,GACJ,IAAK,gBACD,OAAO,EACX,IAAK,UACD,IAAK2wJ,EACD,OAAOD,GAA6BE,GAAkCC,EAE1E,GAAIt2K,KAAKg2K,4BACL,OAAO,EAEX,MAAO,YAAc,QAAU3lJ,EAAK3kB,EAAQ2lK,EAAMnyI,oBAAiB,IAAW7O,OAAK,EAASA,EAAGmC,SAC3F6+I,EAAMnyI,aAAe,EAEzB,OAAO,EACX,QACI,OAAO,IAAMxzB,EAAQ/M,QAGjC,mBAAmB43K,EAAgB/H,GAC/B,IAAI37I,EAAO7yB,KACX,eAAKwuK,EAAgB,CAAC72I,EAAG82I,KACrB,GAAIA,EAmCA,IAlCA,IAAI/iK,EACA2kC,EAAWo+H,EAAcv+H,YAAcu+H,EAAcv+H,cAAgB,EACrEsmI,EAAoB/H,EAAch9H,UAClCglI,EAAoB,SAASx0K,EAAO+kJ,GACpC,GAAKA,EAAL,CAGA,IAAI3D,EAAiB,eAAE2D,GACnBhlJ,EAAS0J,EAAQzJ,GACjBD,GAAUysK,EAAc1kE,cAAc/nG,KACtCqhJ,EAAe32H,SAASmG,EAAK2B,gBAAgBy4I,KAC7C,OAAa3+I,GAAG+0H,EAAgB,eAAaosB,GAAA,KAAgB,IAAmB58I,EAAK3C,aAAalC,IAC9F,IAAIiB,EAAIjB,EAAK/B,MACT2jJ,EAAY,eAAa3gJ,GAC7BsnJ,EAAeG,WAAW,CACtB1G,OAAQJ,EAAUr8J,EAAI,eAAE0b,EAAEyM,eAAerU,SAASjE,KAClD8sJ,OAAQN,EAAUp8J,EAAI,eAAEyb,EAAEyM,eAAerU,SAAS9D,IAClDigC,aAAcxhD,EACdC,MAAOD,EAAOC,MACdi9B,YAAaj9B,EACb+kJ,cAAe3D,EACf//F,eAAgBkzH,EAChBhI,eAAgBA,EAChB3yI,SAAUhJ,EAAKmM,mBAAmBlD,YAAY95B,EAAOC,OAAO,QAGpE,OAAaqsB,GAAG+0H,EAAgB,eAAaosB,GAAA,KAAe,IAAmB,CAC3E58I,KAAM0jJ,GACP1jJ,EAAK3C,aAAaqmJ,EAAeI,aACpC,OAAaroJ,GAAG+0H,EAAgB,eAAaosB,GAAA,KAAc,IAAmB,CAC1E58I,KAAM0jJ,GACP1jJ,EAAK3C,aAAaqmJ,EAAeK,gBAGnCp2K,EAAI,EAAGA,EAAI6vC,EAAU7vC,IAAK,CAC/B,IAAI0wC,EAAiBu9H,EAAct8I,kBAAkB3xB,IAAM,GACvD0wC,EAAevyC,SACf+M,EAAU+iK,EAAcx8I,WAAWzxB,IAAM,GACzC,eAAK0wC,EAAgBulI,OAMzC,uBAAuBF,EAAgB/H,GACnC,IAAI37I,EAAO7yB,KACX,eAAKwuK,EAAgB,CAAC72I,EAAG82I,KACrB,GAAIA,EAAe,CACf,IAAIv9H,EAAiBu9H,EAAct8I,qBAAuB,GAC1D,eAAK+e,EAAgB,CAACjvC,EAAO+kJ,KACzB,IAAI3D,EAAiB,eAAE2D,GACvB,OAAax4H,IAAI60H,EAAgB,eAAaosB,GAAA,KAAgB,KAC9D,OAAajhJ,IAAI60H,EAAgB,eAAaosB,GAAA,KAAe,KAC7D,OAAajhJ,IAAI60H,EAAgB,eAAaosB,GAAA,KAAc,KAC5DpsB,EAAel0H,YAAY0D,EAAK2B,gBAAgBy4I,UAKhE,cAAc1pH,GACV,MAAO,YAAcA,EAAiBvjD,KAAK8xK,sBAAwB9xK,KAAK62K,oBAE5E,eAAez4K,GACX,IAAI04K,EAAiB92K,KAAK62K,oBACtBE,EAAmB/2K,KAAK8xK,sBAC5B9xK,KAAKg3K,2BAAwB,EAC7BF,GAAkBA,EAAehkK,OACjC,UAAY1U,GAAQ24K,GAAoBA,EAAiBjkK,OAE7D,OACI,IAAI+f,EAAO7yB,KACX6nC,MAAMqX,OACNrsB,EAAKmM,mBAAqBnM,EAAK7C,cAAc,WAC7C6C,EAAK43C,mBAAqB53C,EAAKgc,QAAQ,qBACvChc,EAAKi/I,sBAAwBj/I,EAAKgc,QAAQ,wBAC1Chc,EAAKq/I,oBAAsBr/I,EAAKgc,QAAQ,sBACxChc,EAAK63C,UAAY73C,EAAKgc,QAAQ,YAC9Bhc,EAAKgkJ,oBAAsBhkJ,EAAKgc,QAAQ,sBACxChc,EAAKokJ,iBAAmBpkJ,EAAKgc,QAAQ,eACrChc,EAAKqkJ,mBAAqBrkJ,EAAKgc,QAAQ,qBACvC,IAAI4nI,EAAoB,WACpB,GAAI5jJ,EAAKq/I,oBAAqB,CAC1B,IAAI1D,EAAiB,CAAC37I,EAAKqkJ,mBAAoBrkJ,EAAK43C,mBAAoB53C,EAAKokJ,kBAC7EpkJ,EAAKiiJ,uBAAuBjiJ,EAAKq/I,oBAAqB1D,GACtD37I,EAAKqiJ,mBAAmBriJ,EAAKq/I,oBAAqB1D,KAG1D37I,EAAK43C,mBAAmB90C,gBAAgB+L,IAAI+0I,GAC5C5jJ,EAAKokJ,kBAAoBpkJ,EAAKokJ,iBAAiBthJ,gBAAgB+L,IAAI+0I,GACnE5jJ,EAAKqkJ,oBAAsBrkJ,EAAKqkJ,mBAAmBvhJ,gBAAgB+L,IAAI+0I,GAE3E,UAAUjmJ,GACN,OAAOxwB,KAAKg/B,mBAAmBm4I,gBAAgB3mJ,EAAW4+I,kBAAmB5+I,EAAWq+I,kBAAmBr+I,EAAW8yB,eAAgB9yB,EAAW+yB,gBAErJ,KAAK/yB,GACD,IACI2+I,YAAaA,GACb3+I,GAEA8yB,eAAgBA,GAChB9yB,GAEA8+I,oBAAqBA,GACrB9+I,EACA4mJ,EAAcp3K,KAAKyqE,mBACnB/+C,EAAW1rB,KAAK0qE,UAChB4kG,IACAA,EAAoB79I,IAAI,CACpBpO,QAASmqJ,KAET,YAAclqH,IACd8zH,GAAeA,EAAYllI,eAAei9H,EAAa3B,IACvD9hJ,GAAYA,EAASwmB,eAAei9H,EAAa3B,MAI7D,KAAKh9I,GACD,IAAIqC,EAAO7yB,KACP6uK,EAAoB,eAASr+I,EAAWq+I,mBAAqBr+I,EAAWq+I,kBAAkB3vI,YAAc1O,EAAWq+I,mBAEnHvrH,eAAgBA,GAChB9yB,GAEA+yB,eAAgBA,GAChB/yB,EACA6mJ,EAAYxkJ,EAAKykJ,cAAc/zH,GAC/Bg0H,EAAwB1I,GAAqB,EACjDh8I,EAAK43C,mBAAmBx9C,UAAUM,KAAK,IAAIlC,OAAO,KAAmBiL,YAAYzD,EAAK2B,gBAAgB24I,IAA+B,YAAc7pH,GAAkB,YAAcC,IAAmBg0H,GAClMF,IACIxkJ,EAAK2kJ,UAAUhnJ,IAAe+mJ,EAC1B,UAAYh0H,GAAkB,kBAAoBA,EAChD,WACM1wB,EAAKmkJ,wBAA0BnI,IAC/Bh8I,EAAK4kJ,iBACLJ,EAAUpqJ,UAAUuD,EAAWsnC,OAAS,cAAgB,gBAAgBtnC,EAAWs+I,qBACnFj8I,EAAKmkJ,sBAAwBnI,EAC7BwI,EAAUtkK,KAAKwwC,IALrB,IASF1wB,EAAK4kJ,eAAe,SACpB5kJ,EAAK7C,cAAc,iBAAiBqX,OAAO7W,EAAWw+I,MACtDqI,EAAU7E,QAAQhiJ,EAAWu+I,KAAOsI,EAAUvlK,SAC9CulK,EAAUtkK,QAGd8f,EAAK4kJ,kBAIjB,KAAKjnJ,GACD,IACI8+I,oBAAqBA,GACrB9+I,EASJ,GARI8+I,IACAA,EAAoB79I,IAAI,CACpBpO,QAAS,KAEbrjB,KAAKyqE,mBAAmBv4B,eAAe1hB,EAAW2+I,YAAa,IAC/DnvK,KAAK0qE,UAAUx4B,eAAe1hB,EAAW2+I,YAAa,IACtDnvK,KAAKyqE,mBAAmBx9C,UAAUM,KAAK,IAAIlC,OAAO,KAAmB8D,YAAYnvB,KAAKw0B,gBAAgB24I,MAEtGntK,KAAKw3K,UAAUhnJ,GAAa,CAC5B,IAAI6mJ,EAAYr3K,KAAKs3K,cAAc9mJ,EAAW+yB,gBAC1C8zH,GACAA,EAAUvkK,OAEd9S,KAAKg/B,mBAAmB04I,WAAWlnJ,EAAW4+I,kBAAmB5+I,EAAWq+I,kBAAmBr+I,EAAW8yB,eAAgB9yB,EAAW+yB,iBAG7I,UACQvjD,KAAKkyK,qBACLlyK,KAAK80K,uBAAuB90K,KAAKkyK,oBAAqB,CAAClyK,KAAKk3K,mBAAoBl3K,KAAKyqE,mBAAoBzqE,KAAKi3K,oBAInH,IAAIU,GAAkC,CACzC3+I,MAAO,CACH4+I,qBAAsB,GACtBC,mBAAoB,GACpBjC,mBAAoB,GACpBkC,YAAa,IAEjB/+I,YAAa,CACTw9I,eAAgB,GAChBwB,cAAe,GACft2B,eAAgB,IAEpBnoH,UAAW,CACPN,MAAO,CACHtN,SAAU,CACN,qBAAqB85C,GACjB,IAAIzzD,EAAkB/R,KAAK8uB,OAAO,mBAC9B6mJ,EAA2B31K,KAAKgwB,cAAc,kBAC9C0G,EAAai/I,EAAyBj/I,aAC1C,OAAO12B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAAcghE,EAAY,GAAKzzD,GAAmB2kB,KAI/FqC,YAAa,CACTo6C,cAAe,CACX,qBACI,IAAInzE,KAAKgwB,cAAc,kBAAkB0G,aAGzC,OAAO12B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,gBC3qCrBmzK,GAAgC3+I,MAAM48I,mBAC5B+B,GAAgC5+I,YAAYw9I,eACpDoB,GAAgC3+I,MAAM4+I,qBAC/BD,GAAgC5+I,YAAYg/I,cAC3CJ,GAAgC5+I,YAAY0oH,eAC7Dk2B,GAAgC3+I,MAAM8+I,YAC/D,GAAS1lI,eAAe,4BAA6BulI,I,iBCPjDK,GAAqB,CAAChqJ,EAAMiqJ,IAAajqJ,EAAKrvB,SAAWs5K,EAASt5K,SAAWiG,OAAO+qB,KAAK3B,GAAM2rB,KAAKoU,GAAO//B,EAAK+/B,KAASkqH,EAASlqH,IAClImqH,GAAiB,CAAClqJ,EAAMiqJ,IAAa,eAAajqJ,EAAMiqJ,EAAU,CAClEl9H,SAAU,IAEVo9H,GAAkB,CAACC,EAAWC,EAAaC,EAAYC,KACvD,IAAIN,EAAWG,EACXI,EAAaH,EACjB,OAAO,WACH,IAAK,IAAI/qH,EAAO9oD,UAAU7F,OAAQqvB,EAAO,IAAIvvB,MAAM6uD,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC7Ev/B,EAAKu/B,GAAQ/oD,UAAU+oD,GAE3B,IAAIkrH,EAAaF,EAAYvqJ,EAAMiqJ,GACnC,OAAIQ,IAGJR,EAAWjqJ,EACXwqJ,EAAaF,KAAcL,IAHhBO,IAOfE,GAA0B,CAC1BC,YAAa,aAENC,GAAU,SAASv4D,GAC1B,IACIs4D,YAAaA,GACbn0K,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,GAAKA,UAAU,GAAKk0K,GACjEG,EAAa,KACjB,OAAO,WACH,IAAK,IAAIC,EAAQt0K,UAAU7F,OAAQqvB,EAAO,IAAIvvB,MAAMq6K,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAClF/qJ,EAAK+qJ,GAASv0K,UAAUu0K,GAE5B,IAAKF,EAAY,CACb,IAAIR,EAAch4D,KAAQryF,GAE1B,OADA6qJ,EAAaV,GAAgBnqJ,EAAMqqJ,EAAah4D,EAAM,cAAgBs4D,EAAcX,GAAqBE,IAClGG,EAEX,OAAOQ,KAAc7qJ,KCxClBgrJ,GAAa,CACpBpzI,aAAc,gBACdqzI,SAAU,gBAEH,GAAkB,WAIlB,GAAiB,cACjB,GAAkB,eAClB,GAAmB,gBACnB,GAAuB,iBACvB,GAA0B,uBAC1BC,GAAsB,mBACtB,GAAoB,iBACpB,GAA2B,wBAE3B,GAAgC,4BAChC,GAAuB,oBACvB,GAAuB,oBACvB,GAAqB,kBACrBC,GAAwB,sBACxB,GAA4B,yBAC5BC,GAAsB,YACtB,GAAoB,mBACpB,GAAe,YACf,GAAsB,mBACtB,GAAgB,aAChBC,GAA0B,SAC1BC,GAAgC,4NAChCC,GAAkC,GAAGluJ,OAAOiuJ,GAA+B,6BAE3EE,GAAiB,MACjBC,GAAkB,OAClBC,GAAsB,oBACtBC,GAAkB,CAAC,QAAS,UAAW,OChC9C,GAAajoJ,QAAS,IAAWA,EAAM5E,KAAKksJ,GAAWC,UACvDW,GAAiB,CAACrwI,EAAerK,IAAgBqK,EAAcjlC,OAAO,IAAI+mB,OAAO2tJ,GAAWpzI,aAAc,MAAMva,OAAO6T,EAAc,EAAG,YAAY7T,OAAO2tJ,GAAWC,SAAU,OAAOnrJ,QAChL+rJ,GAAgC,CACvCC,WAAY,GACZF,eAAgBA,ICShBG,GAA8B,2BAC3B,SAAS,GAAWj7I,GACvB,OAAOA,GAAQA,EAAKnO,SAAS,IAE1B,SAASqpJ,GAAiBl7I,GAC7B,OAAOA,GAAQA,EAAKnO,SAASopJ,IAE1B,SAAS,GAAYj7I,GACxB,OAAOA,GAAQA,EAAKnO,SAAS,IAE1B,SAAS,GAAUmO,GACtB,OAAOA,GAAQA,EAAKnO,SAAS,IAE1B,SAASspJ,GAAgBn7I,GAC5B,OAAQA,GAAQA,EAAKnO,SAASuoJ,KAAwBp6I,EAAKnO,SAAS,IAEjE,SAAS0mF,GAAaxkF,EAAMnB,GAC/B,OAAQmB,EAAKqnJ,kBAAoBxoJ,IAAUA,EAAMf,SAAS,KAAyBe,EAAMf,SAAS,IAE/F,SAASwpJ,GAAiBtrJ,GAC7B,OAAO,eAAUA,IAAaA,EAASlwB,OAAS,EAE7C,SAASy7K,KACZ,MAAO,YAAc99E,GAAA,KAAQwN,UAAU7yB,WAEpC,SAASojG,GAAkB3oJ,GAC9B,QAASA,EAAMY,OAAO,IAAIjH,OAAO,KAAmB1sB,OAEjD,SAAS27K,GAAiCznJ,EAAM7wB,GACnD,IAAI2O,EAAakiB,EAAK/D,OAAO,cAC7B,OAAIne,IACS,UAAY3O,EAAOmU,eAAiB,eAAUnU,EAAOwwB,WAAa,eAAUxwB,EAAOmU,mBAEtF,eAAUnU,EAAOmU,gBAAkB,SAAWnU,EAAOmU,eAE5D,SAASokK,GAAoB1nJ,GAChC,IAAI9C,EAAqB8C,EAAK7C,cAAc,sBAC5C,QAAOD,EAAmByqJ,uBAAwB3nJ,EAAK/D,OAAO,qBAAuBiB,EAAmB+L,cC4CrG,MAAM,WAAqC,GAAQhH,eACtD,OACI,IAAIzE,EAAIub,EACR5rC,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAKy6K,qBAAuBz6K,KAAKgwB,cAAc,aAC/ChwB,KAAKgnH,mBAAqBhnH,KAAKgwB,cAAc,WAC7ChwB,KAAKkhJ,aAAelhJ,KAAK6uC,QAAQ,eACjC7uC,KAAK0qE,UAAY1qE,KAAK6uC,QAAQ,YAC9B7uC,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,WAC7ChwB,KAAKuoJ,eAAiBvoJ,KAAKgwB,cAAc,iBACzChwB,KAAK06K,iBAAmB16K,KAAKgwB,cAAc,SAC3ChwB,KAAK26K,4BAA8B/B,GAAQ54K,KAAK26K,4BAA4BzmJ,KAAKl0B,MAAO,CACpF24K,YAAa,UAEjB34K,KAAK46K,2BAA6BhC,GAAQ54K,KAAK46K,2BAA2B1mJ,KAAKl0B,MAAO,CAClF24K,YAAa,UAEjB34K,KAAK66K,0BAA4B76K,KAAK66K,2BAA6B76K,KAAK86K,eAAe5mJ,KAAKl0B,MAC5FA,KAAK+6K,2BAA6B/6K,KAAK+6K,4BAA8B/6K,KAAK21B,gBAAgBzB,KAAKl0B,MAC/FA,KAAKg7K,4BAA8Bh7K,KAAKg7K,6BAA+Bh7K,KAAKi7K,qBAAqB/mJ,KAAKl0B,MACtGA,KAAKk7K,oBAAsB,KAC3Bl7K,KAAKm7K,qBAAsB,EAC3Bn7K,KAAKo7K,qBAAuB,GAC5Bp7K,KAAKq7K,sBAAwB,KACzBr7K,KAAKiwB,qBACL,IACA,QAAUI,EAAKrwB,KAAKuoJ,sBAAmB,IAAWl4H,GAAcA,EAAG4hF,QAAQvwE,IAAI1hC,KAAK66K,2BACpF76K,KAAKkwB,aAAa,eAElB,IACA,QAAU0b,EAAK5rC,KAAKuoJ,sBAAmB,IAAW38G,GAAcA,EAAGqmE,QAAQjvE,OAAOhjC,KAAK66K,4BAE3F76K,KAAKs7K,mBACLt7K,KAAKu7K,uBAET,eAAe1sJ,GACX7uB,KAAKw7K,mBACDx7K,KAAKy7K,eACD5sJ,EAAS+F,GAAG,aAAe50B,KAAK07K,cAAgB17K,KAAK07K,aAAaz7G,gBAClEjgE,KAAK07K,aAAaC,iBAAiB9sJ,GACnC7uB,KAAKy7K,eAAgB,GAIjC,qBAAqBxvJ,GACjB,IAAIoE,EACAxB,EAAW,eAAE5C,EAAMvpB,QACnBk5K,EAA4B,eAAE3vJ,EAAMktH,eAAezkH,QAAQ10B,KAAK0qE,UAAUz9C,WAAWtuB,OACrFk9K,EAAShtJ,EAAS+F,GAAG,KACzB,GAAI3I,EAAMktH,eAAiB0iC,IAAWD,GAA6B57K,KAAK87K,sBAAsB7vJ,GAAQ,CAClG,IAAI8vJ,EAAe/7K,KAAKg8K,kBACxBD,EAAgB5B,GAAiB4B,GAA+EA,EAA/D/7K,KAAK0qE,UAAU//B,gBAAgB,GAAGrmC,OAAO,cAAcirB,GAAG,GACtGV,EAAS6F,QAAQqnJ,GAAcp9K,SAChCstB,EAAM4S,iBACN,OAAarP,QAAQusJ,EAAc,UAG3C,IAAIE,EAASptJ,EAAS+F,GAAG,MACrBsnJ,GAAwB,QAAU7rJ,EAAKrwB,KAAK8uB,OAAO,0BAAuB,IAAWuB,EAAKA,GAAM,GAAK,EACrG4rJ,GAAUC,GACVl8K,KAAKm8K,2BAA2BttJ,GAGxC,gCACI,IAAIwB,EACA+rJ,EAAY,QAAU/rJ,EAAKrwB,KAAK0qE,iBAAc,IAAWr6C,OAAK,EAASA,EAAGpD,UAC9E,OAAaqB,GAAG8tJ,EAAW,UAAWp8K,KAAKg7K,6BAE/C,oCACI,IAAI3qJ,EACA+rJ,EAAY,QAAU/rJ,EAAKrwB,KAAK0qE,iBAAc,IAAWr6C,OAAK,EAASA,EAAGpD,UAC9E,OAAauB,IAAI4tJ,EAAW,UAAWp8K,KAAKg7K,6BAEhD,gBAAgB/rJ,GACZ,IAAImtJ,EAAYp8K,KAAK0qE,UAAUz9C,UAC3BijC,GAAgBjhC,GAAK,YAAcA,EAAEgV,WACrCo4I,EAAuBr8K,KAAK07K,cAAgB17K,KAAK07K,aAAa/nK,OAAS3T,KAAK0qE,UAAU/2D,KACtF2oK,GAAkB,EAClB/9I,EAAWtP,IAAM,WAAaA,EAAEgV,YAAc,YAAchV,EAAEgV,YAC9DvW,EAAO,eAAE,aAAWC,YAAYyuJ,EAAUzoJ,KAAOyoJ,EAAUzoJ,IAAI,KAC/DiwD,EAAkBl2D,EAAKH,KAAK,UAC5BgvJ,GAA2B34F,EAAgBjlF,QAAUilF,EAAgBlvD,QAAQ0nJ,GAAWz9K,OAC5FqB,KAAKw8K,oCACLx8K,KAAKy8K,gCACLz8K,KAAK08K,0BACL18K,KAAK28K,qBACL38K,KAAK48K,yBACDP,GAAwBE,IACxBD,EAAkBt8K,KAAK68K,cAAgBt+I,EAAWv+B,KAAK88K,gBAAkB5sH,KAAkB,OAASjhC,QAAK,IAAWA,OAAI,EAASA,EAAE69B,yBACnIwvH,GAAmBt8K,KAAK2yG,cAAa,IAG7C,mBACI,IAAItiF,EAAIub,EACR5rC,KAAKw8K,oCACLx8K,KAAK+8K,8BACL/8K,KAAKg9K,8BACL,QAAUpxI,EAAK,QAAUvb,EAAKrwB,KAAK0qE,iBAAc,IAAWr6C,OAAK,EAASA,EAAGsF,uBAAoB,IAAWiW,GAAcA,EAAG5I,OAAOhjC,KAAK+6K,4BACrI/6K,KAAKiwB,qBACLjwB,KAAK0qE,UAAU/0C,gBAAgB+L,IAAI1hC,KAAK+6K,4BAGhD,uBACI,IAAIh2G,EAAW,aAAWn3C,cAC1B5tB,KAAKk5J,sBAAwBl5J,KAAKk5J,uBAAyBl5J,KAAKkwB,aAAajB,IACzE,IAAIrC,EAAU,eAAEqC,EAAEhD,MAAMvpB,QACpBu6K,EAAyBj9K,KAAK87K,sBAAsB7sJ,EAAEhD,QAAUW,EAAQ8H,QAAQ,IAAIrJ,OAAOrrB,KAAKw0B,gBAAgB,MAAmB71B,OACnIu+K,EAAkBtwJ,EAAQ8H,QAAQ,IAAIrJ,OAAO,KAAgC1sB,OAC7Eg3K,EAA2B31K,KAAKgwB,cAAc,kBAC9CmtJ,IAAqBxH,GAA4BA,EAAyBj/I,aAC9E,IAAKumJ,IAA2BC,IAAoBC,EAAkB,CAClE,IAAIC,IAA0Bp9K,KAAK07K,cAAe9uJ,EAAQ+uB,UAAUr3C,OAAOtE,KAAK07K,aAAazuJ,WAAWtuB,OAAS,GAChHy+K,GAA2Bp9K,KAAKq9K,mBAAkB,GACnDr9K,KAAKs9K,uBAGb,OAAa9uJ,IAAIu2C,EAAU,eAAappC,EAAA,KAAcC,KAAM,gCAAiC57B,KAAKk5J,uBAC9Fl5J,KAAKiwB,qBACL,OAAa3B,GAAGy2C,EAAU,eAAappC,EAAA,KAAcC,KAAM,gCAAiC57B,KAAKk5J,uBAGzG,yBACI,IAAIkjB,EAAYp8K,KAAKu9K,sBACjBC,GAAex9K,KAAKgoC,gBAAgBsqB,iBAAiB3zD,OACrD6+K,GACAx9K,KAAKy9K,wBAAwBrB,GAGrC,8BACI,IAAIsB,EAAoBtD,KAAkC,OAArBz+I,EAAA,KAAcC,KAC/CwgJ,EAAYp8K,KAAKu9K,sBACrBv9K,KAAK29K,qBAAuB,OAAanvJ,IAAI4tJ,EAAW,eAAasB,EAAkB,gCAAiC19K,KAAK29K,qBAEjI,0BACI,IAAID,EAAoBtD,KAAkC,OAArBz+I,EAAA,KAAcC,KAC/CwgJ,EAAYp8K,KAAKu9K,sBACjBK,EAAgB,IAAIvyJ,OAAO,GAAW,YAAYA,OAAO,IAC7D,OAAaiD,GAAG8tJ,EAAW,eAAasB,EAAkB,gCAAiCE,EAAe59K,KAAK29K,qBAEnH,0BACI39K,KAAK29K,oBAAsB39K,KAAK29K,qBAAuB39K,KAAKkwB,aAAalwB,KAAK69K,sBAC9E79K,KAAK+8K,8BACL/8K,KAAK89K,0BAET,8BACI,QAAStvJ,IAAIxuB,KAAK+9K,kBAEtB,0BACI,IAAI3B,EAAYp8K,KAAKu9K,sBACrBv9K,KAAK+9K,iBAAmB,QAASzvJ,GAAG8tJ,EAAW,KAAMntJ,GAAKjvB,KAAKg+K,gBAAgB/uJ,IAEnF,qBACIjvB,KAAK+9K,kBAAoB/9K,KAAKg9K,8BAC9Bh9K,KAAKi+K,0BAET,UACIp2I,MAAMssB,UACNn0D,KAAKs9K,oBACL,QAAS9uJ,IAAIxuB,KAAK+9K,kBAClB,OAAavvJ,IAAI,aAAWZ,cAAe,eAAa+N,EAAA,KAAcC,KAAM,gCAAiC57B,KAAKk5J,uBAClHz9H,aAAaz7B,KAAKk7K,qBAClB,IAEJ,cAAcltJ,GACV,OAAQA,EAAKra,MACT,IAAK,qBACL,IAAK,8BACD3T,KAAKk/C,OACLlxB,EAAKC,SAAU,EACf,MACJ,QACI4Z,MAAMC,cAAc9Z,IAGhC,iBACI,OAAOhuB,KAAKk+K,YAAc1E,GAE9B,kBACI,OAAOx5K,KAAKk+K,YAAczE,GAE9B,kBACQz5K,KAAK8uB,OAAO,uBACZ9uB,KAAKk+K,UAAY1E,IAGzB,mBACIx5K,KAAKk+K,UAAYzE,GAErB,gBAAgBxqJ,GACZ,IAAIoB,EACA8tJ,GAAsB,EAC1Bn+K,KAAK68K,cAAe,EACpB78K,KAAKy7K,eAAgB,EACrB,IAAIpvJ,EAAYrsB,KAAKo+K,kBAAkBnvJ,GACnC0Q,EAAY,QAAUtP,EAAKrwB,KAAKgnH,0BAAuB,IAAW32F,OAAK,EAASA,EAAGsP,aAEnFpT,cAAeA,GACf0C,EACJ,GAAI1C,EAAcipE,qBAGd,OAFAx1F,KAAK68K,cAAe,OACpB78K,KAAKy7K,eAAgB,GAGzB,IADE9B,GAAgBnrI,SAASvf,EAAEzC,UAAYxsB,KAAKq+K,mCAAmC9xJ,EAAc7pB,SAC1F2pB,EAAW,CACZ,OAAQ4C,EAAEzC,SACN,IAAK,YACL,IAAK,aACDxsB,KAAKs+K,sBAAsBrvJ,EAAG0Q,GAC9BtT,GAAY,EACZ,MACJ,IAAK,UACL,IAAK,YACG4C,EAAEsvJ,KACF,EAAyB,WAAYv+K,KAAMusB,GAE3CvsB,KAAKw+K,mBAAmBvvJ,EAAG0Q,GAE/BtT,GAAY,EACZ,MACJ,IAAK,SACL,IAAK,WACDrsB,KAAKy+K,sBAAsBxvJ,GAC3B5C,GAAY,EACZ,MACJ,IAAK,QACDA,EAAYrsB,KAAK0+K,iBAAiBzvJ,EAAG0Q,GACrC,MACJ,IAAK,IACG,eAAoB1Q,EAAE1C,gBACtBvsB,KAAK2+K,iBAAiB1vJ,EAAG0Q,GACzBtT,GAAY,GAEZA,EAAYrsB,KAAK4+K,kBAAkB3vJ,EAAE1C,eAEzC,MACJ,IAAK,MACDvsB,KAAK6+K,eAAe5vJ,EAAG0Q,GACvBtT,GAAY,EACZ,MACJ,IAAK,QACDrsB,KAAK8+K,iBAAiB7vJ,EAAG0Q,GACzBtT,GAAY,EACZ,MACJ,IAAK,SACDrsB,KAAK++K,kBAAkB9vJ,EAAG0Q,GAC1BtT,GAAY,EACZ,MACJ,IAAK,IACG,eAAoB4C,EAAE1C,gBACtBvsB,KAAKg/K,iBAAiB/vJ,GACtB5C,GAAY,GAEZA,EAAYrsB,KAAK4+K,kBAAkB3vJ,EAAE1C,eAEzC,MACJ,IAAK,KACDvsB,KAAKi/K,gBACL5yJ,GAAY,EACZ,MACJ,IAAK,MACL,IAAK,YACGrsB,KAAKk/K,0BAA4Bl/K,KAAKm/K,0BACtC9yJ,EAAYrsB,KAAK4+K,kBAAkBryJ,GAAe,IAGzDF,GAAcrsB,KAAK4+K,kBAAkBryJ,KACtCvsB,KAAK68K,cAAe,EACpB78K,KAAKy7K,eAAgB,EACrB0C,GAAsB,GAEtBA,GACA5xJ,EAAc09C,mBAI1B,kBAAkBivE,GACd,IACI3sH,cAAeA,GACf2sH,EACAlrH,EAAO,CACPC,SAAS,EACThC,MAAOM,GAMX,OAJAvsB,KAAK+tB,cAAc,YAAaC,GAChCkrH,EAAUqlC,KAAOhyJ,EAAckD,QAC/BypH,EAAUkmC,IAAM7yJ,EAAc8yJ,OAC9BnmC,EAAUr3G,MAAQtV,EAAc0hB,WACvBjgB,EAAKC,QAElB,iBACIuN,WAAW,KACPx7B,KAAKgnH,mBAAmBiB,kBAGhC,sBAAsBixB,EAAWv5G,GAC7B,IAAI9D,EAAW77B,KAAKs/K,qBAChBC,EAASrmC,EAAU3sH,cACnBuS,EAAO9+B,KAAK07K,cAAgB17K,KAAK07K,aAAa8D,OAAO3jJ,GACrD4jJ,EAAgBz/K,KAAK0/K,uBAAuBxmC,EAAU1sH,SACtDmzJ,EAA0B3/K,KAAKm/K,wBAC/BS,IAAkBjgJ,GAAaggJ,IAA4B,GAAU7gJ,GACzE,GAAI8gJ,EAAe,CACf5/K,KAAK6/K,mBACLF,GAA2B3/K,KAAK8/K,iBAC5B9/K,KAAK+/K,0BACL//K,KAAKggL,kCAAkCP,GAE3C,IAAI/tJ,EAAQ1xB,KAAKigL,aAAaR,GAC1BtF,GAAiBzoJ,IACjB1xB,KAAKkgL,2BAA2BX,EAAQ7tJ,EAAO+tJ,GAEnDF,GAAUA,EAAO1gJ,kBAGzB,mBAAmBq6G,EAAWv5G,GAC1B,IAAItP,EAAIub,EACJ0kB,EAAkBtwD,KAAKs/K,qBACvBxgJ,EAAO9+B,KAAK07K,cAAgB17K,KAAK07K,aAAa8D,OAAOlvH,GACrDivH,EAASrmC,EAAU3sH,cACnB4zJ,EAAY,YAAcjnC,EAAU1sH,QACpCzgB,EAAa/L,KAAKgoC,gBAAgBj8B,aAClCq0K,EAA2B,QAAUx0I,EAAK,QAAUvb,EAAKrwB,KAAKgnH,0BAAuB,IAAW32F,OAAK,EAASA,EAAGwrF,wBAAqB,IAAWjwE,OAAK,EAASA,EAAGzS,KAAK9I,EAAIigC,GAC3KqvH,EAA0B3/K,KAAKm/K,wBAC/BS,IAAkBQ,IAA6BzgJ,GAAaggJ,IAA4B7gJ,IAAS,GAAYA,GACjH,GAAI8gJ,EAAe,CAEf,GADAD,GAA2B3/K,KAAK8/K,kBAC3B9/K,KAAKqgL,kBAAkBd,EAAQrmC,EAAU1sH,UACtCxsB,KAAKsgL,uBAAyBH,GAAap0K,IAAeA,EAAWu/C,YAAa,CAClF,IAAIq8E,EAAY,eAAe7oG,GAC3BjD,EAAW77B,KAAKo7K,qBAAqBv/I,SAAW,EACpD77B,KAAKugL,UAAU,GAAI54C,EAAW9rG,EAAU0jJ,GAGhDA,GAAUA,EAAO1gJ,kBAGzB,sBAAsBq6G,GAClB,IAAIvyH,EAAY3mB,KAAKgoC,gBAAgBrhB,YACjC6tC,EAAYx0D,KAAKgoC,gBAAgBwsB,YACjChH,EAAgBxtD,KAAK8uB,OAAO,kBAC5B0xJ,EAAW,WAAatnC,EAAU1sH,QAClCi0J,EAAWD,GAAY,EAAI,EAC3B/gH,EAAaz/D,KAAK0qE,UAAUzK,gBAC5BzS,IAAkBxtD,KAAKw6K,uBAClBgG,EAAW75J,EAAY,EAAIA,EAAY6tC,EAAY,KAAOx0D,KAAKw6K,wBAChEx6K,KAAKgoC,gBAAgBrhB,UAAUA,EAAY85J,GAC3CvnC,EAAU3sH,cAAcsS,kBAErB4gC,GAAc,eAAUA,EAAWhiD,aAAe,eAAUgiD,EAAWrxB,cAC9EpuC,KAAKugL,UAAU,EAAG,eAAU9gH,EAAWhiD,aAAegjK,GACtDvnC,EAAU3sH,cAAcsS,kBAGhC,iBAAiBq6G,EAAWv5G,GACxB,IAAI9D,EAAW77B,KAAKs/K,qBAChB1yJ,EAAU,eAAEssH,EAAU3sH,eAAiB2sH,EAAU3sH,cAAc7pB,QACnE,GAAI1C,KAAK8uB,OAAO,cAAgB,SAAW9uB,KAAK8uB,OAAO,aAAazW,OAASsnB,EAAW,CACpF,IAAI+gJ,EAAsB,QAAU1gL,KAAK2gL,gBAAgB/zJ,IAAY5sB,KAAK4gL,kBAAoB,GAAUh0J,GACpGi0J,EAAyBj0J,EAAQ+D,SAAS,IAI9C,OAHIkwJ,GAA0B,YAAc7gL,KAAK8uB,OAAO,iCACpD9uB,KAAKy6K,qBAAqBt/F,kCAE1BulG,GAAuB9zJ,EAAQ0F,SAAS3B,SAAS,KAAmB/D,EAAQ+D,SAAS3wB,KAAKw0B,gBAAgB,QAC1Gx0B,KAAKy6K,qBAAqBr/F,oBAAoBv/C,EAAU,CACpDgG,MAAOq3G,EAAUr3G,MACjBw5C,QAAS69D,EAAUqlC,OAEvBrlC,EAAU3sH,cAAcsS,kBACjB,GAIf,OAAO7+B,KAAK4+K,kBAAkB1lC,EAAU3sH,eAE5C,iBAAiB2sH,EAAWv5G,GACnBA,GAAcu5G,EAAUkmC,KAAO,aAAep/K,KAAK8uB,OAAO,oBAAqB9uB,KAAK8uB,OAAO,8BAC5F9uB,KAAKy6K,qBAAqBh7F,YAC1By5D,EAAU3sH,cAAcsS,kBAGhC,eAAeq6G,EAAWv5G,GACtB,IAAI05E,EAAiBr5G,KAAK8uB,OAAO,WAC7B9J,EAAYk0H,EAAUr3G,MAAQ,WAAa,OAC3Ci/I,EAAwB,eAAU9gL,KAAKo7K,wBAA0B,eAAcp7K,KAAKo7K,sBACpF2F,GAA6BD,IAA0B5nC,EAAUr3G,OAAS7hC,KAAKghL,iBAAiBhhL,KAAKo7K,uBAAyBliC,EAAUr3G,OAAS7hC,KAAKihL,kBAAkBjhL,KAAKo7K,sBAC7K8F,EAAchoC,EAAU3sH,cAAc7pB,OACtCy+K,EAAqBnhL,KAAK07K,cAAgB17K,KAAK07K,aAAazuJ,UAChE,IAAIjtB,KAAKohL,gCAAgCF,EAAal8J,GAAtD,CAIA,GADA,eAAEm8J,GAAoBz0J,SAAS,IAC3B2sF,GAAkB6nE,IAAgBH,EAOlC,GANI,eAAEG,GAAavwJ,SAAS3wB,KAAKw0B,gBAAgB,MAC7Cx0B,KAAKq9K,oBAELr9K,KAAK+/K,0BACL//K,KAAKggL,kCAAkCh7J,GAEvC2a,GACA,IAAK3/B,KAAKqhL,uBAAuBnoC,EAAWl0H,GACxC,YAEGhlB,KAAKshL,sBAAsBpoC,EAAWl0H,KAC7C+7J,GAA4B,GAGhCA,GACA/gL,KAAKuoJ,eAAel3C,YAChBrxG,KAAKgnH,mBAAmBrnF,cAAgB3/B,KAAKk6K,mBAC7Cl6K,KAAKq9K,mBAAkB,GACvBr9K,KAAKs9K,oBACLt9K,KAAK8/K,mBAGT5mC,EAAU3sH,cAAcsS,kBAGhC,0BACI,IAAI4gC,EAAaz/D,KAAKixB,UAAUgvC,gBAChC,OAAOR,EAAaA,EAAWx/B,cAAgB,eAASjgC,KAAK0qE,UAAUz9C,WAAa,EAExF,kBAAkBiS,GACd,IAAIqiJ,EAAoBvhL,KAAKg/B,mBAAmBC,kBAAkB,MAAM,GACpEuiJ,EAAyBxhL,KAAKg/B,mBAAmBC,oBACjDj9B,EAASu/K,EAAkBriJ,GAC3Bh9B,GAAS,EAIb,OAHIF,IACAE,EAASs/K,EAAuBj/K,QAAQP,IAAW,GAEhDE,EAEX,eAAeg9B,GACX,IAAIqiJ,EAAoBvhL,KAAKg/B,mBAAmBC,kBAAkB,MAAM,GACpEj9B,EAASu/K,EAAkBriJ,GAC/B,QAASl9B,KAAYA,EAAOkU,MAEhC,iBAAiBgpB,GACb,IAAIuiJ,EAAmBviJ,EAAcl/B,KAAKg/B,mBAAmB2G,uBACzD5G,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzCj9B,EAAS+8B,EAAe0iJ,GAC5B,QAASz/K,GAAU,YAAcA,EAAOwwB,QAE5C,kCAAkCxN,GAC9B,IAEI+tJ,EAFAtzG,EAAaz/D,KAAKixB,UAAUgvC,gBAC5B/gC,EAAcl/B,KAAK0hL,iBAEnBC,EAA2B,EAC3BC,GAAe,EACnB,OAAQ58J,GACJ,IAAK,OACL,IAAK,YACD,IAAI2qG,EAAe3vH,KAAK6hL,yBACxB9O,EAAkB7zI,EAAc,EAChCyiJ,EAA2B3hL,KAAK8uB,OAAO,cAAgB9uB,KAAK8hL,0BAA4B,EAEpFF,EADA,SAAW58J,EACI2qG,IAAiBojD,GAAmB/yK,KAAK+hL,eAAe7iJ,KAAiBl/B,KAAKgiL,kBAAkBjP,GAEhGpjD,EAAeojD,GAAmB/yK,KAAK+hL,eAAe7iJ,KAAiBl/B,KAAKgiL,kBAAkBjP,GAEjH,MACJ,IAAK,WACL,IAAK,gBAGD,GAFAA,EAAkB7zI,EAAc,EAChCyiJ,EAA2B3hL,KAAK8uB,OAAO,cAAgB,EAAI9uB,KAAK8hL,0BAC5D,aAAe98J,EAAW,CAC1B,IAAI0gB,EAAoB1lC,KAAKg/B,mBAAmB2G,uBAC5Cs8I,EAAmBlP,EAAkB,GAAK,IAAMrtI,EACpDk8I,EAAeK,GAAoBjiL,KAAK+hL,eAAe7iJ,KAAiBl/B,KAAKgiL,kBAAkBjP,QAE/F6O,EAAe7O,GAAmB,GAAK/yK,KAAK+hL,eAAe7iJ,KAAiBl/B,KAAKgiL,kBAAkBjP,GAG3G6O,EACAniH,EAAW17B,SAAS,CAChB3gB,KAAMu+J,IAEH,eAAU5O,IAAoB,eAAU/tJ,IAAchlB,KAAKkiL,iBAAiBnP,KACnF4O,EAA2B3hL,KAAKmiL,mCAAmCn9J,GACnE,IAAM28J,GAA4BliH,EAAW2iH,SAAS,CAClDh/J,KAAMu+J,EACNp+J,IAAK,KAIjB,mCAAmCyB,GAC/B,IAAIq9J,EAAiB,EACjBC,EAAetiL,KAAKuiL,SAASviL,KAAKo7K,sBAClCoH,EAAmBF,GAAgB,eAAcA,GACrD,GAAIE,EAAmB,EAAG,CACtB,IAAIC,EAAgBziL,KAAK8uB,OAAO,eAAiB,EAAI,EACrDuzJ,EAAiB,cAAgBr9J,GAAa,SAAWA,EAAYw9J,EAAmBC,EAAgBD,EAAmBC,GAAiB,EAEhJ,OAAOJ,EAEX,uBAAuBnpC,EAAWl0H,GAC9B,IAEI09J,EAFAxB,EAAchoC,EAAU3sH,cAAc7pB,OACtCgvB,EAAQ1xB,KAAK2iL,0BAA0BzB,GAEvC3B,EAASrmC,EAAU3sH,cACnBq2J,EAAc5iL,KAAK2gL,gBAAgBO,GACvC,GAAIxvJ,EAAMkD,GAAGukJ,IACT,OAAQn5K,KAAKshL,sBAAsBpoC,EAAWl0H,GAElDhlB,KAAKm8K,2BAA2BzqJ,GAChC,IAAImxJ,EAAe7iL,KAAK8iL,qBAAqBvD,EAAQv6J,EAAW49J,GAEhE,GADAlxJ,EAAQmxJ,EAAanxJ,OAChBA,GAAS1xB,KAAKohL,gCAAgC1vJ,EAAO1M,GACtD,OAAO,EAEX,IAAIgM,EAAoBhxB,KAAKg/B,mBACzB8G,EAAY9lC,KAAK0qE,UAAUr5B,aAAa3f,GACxCwN,EAAc4G,EAAY9U,EAAkB2U,uBAC5C3jC,EAASgvB,EAAkBiO,kBAAkB,MAAM,GAAMC,GACzDJ,EAAOpN,EAAMY,SACbuJ,EAAW77B,KAAK+iL,aAAajkJ,GAC7BT,EAAMr+B,KAAKgoC,gBAAgBxmB,QAAQqa,GACnCuiC,EAAoBp+D,KAAKgnH,mBAC7B,GAAIhlH,GAAUA,EAAOuS,aAAc,CAC/B,IAAIyuK,GAAc3kJ,GAAO,SAAWA,EAAIT,QACxC8kJ,EAAmBtkH,EAAkBzjD,cAAc,CAC/C0jB,IAAKA,IACJ2kJ,EAAa3kJ,GAAOA,EAAIuiC,SAYjC,OAVK8hH,GACD1iL,KAAK8/K,iBAEL9/K,KAAKijL,WAAWvxJ,GAAQmxJ,EAAaK,kBAChCljL,KAAKk6K,kBAAoBwI,EAC1B1iL,KAAKmjL,mBAELnjL,KAAKojL,yBAAyB1xJ,EAAOwnH,EAAUr3G,SAGhD,EAEX,sBAAsBq3G,EAAWl0H,GAC7B,IAAIu6J,EAASrmC,EAAU3sH,cACnB20J,EAAc3B,EAAO78K,OACrBkgL,EAAc5iL,KAAK2gL,gBAAgBO,GACnCxvJ,EAAQ1xB,KAAK2iL,0BAA0BzB,GACvCmC,EAA0B,SAAWT,GAAe5iL,KAAKsjL,uBAAuB5xJ,GAAQwnH,EAAUr3G,OAClGk/I,GAA4B,EAChC,IAAK1pE,GAAar3G,KAAM0xB,KAAW,OAAS2xJ,QAA2B,IAAWA,OAA0B,EAASA,EAAwB1kL,SAAWuiL,IAAgBmC,EAAwB1vJ,IAAI,GAChMotJ,GAA4B,MACzB,MACC,IAAW/gL,KAAKo7K,qBAAqBv/I,UAAY,eAAEqlJ,GAAavwJ,SAAS,KACzE3wB,KAAKm8K,2BAA2BzqJ,GAEpCkxJ,EAAc5iL,KAAK2gL,gBAAgBO,GAC/BlhL,KAAK4gL,mBACL5gL,KAAK6/K,mBACD,QAAU+C,GAAe,GAAU,eAAE1B,MACrCA,EAAclhL,KAAKujL,uBAAuB,eAAErC,IAC5C0B,EAAc5iL,KAAK2gL,gBAAgBO,KAG3C,IAAI2B,EAAe7iL,KAAK8iL,qBAAqBvD,EAAQv6J,EAAW49J,GAEhE,GADAlxJ,EAAQmxJ,EAAanxJ,OAChBA,EACD,OAAO,EAGX,GADAA,EAAQ1xB,KAAKwjL,wBAAwBjE,EAAQ7tJ,IACxCA,EACD,OAAO,EAEX1xB,KAAKijL,WAAWvxJ,GAAQmxJ,EAAaK,eAChC7rE,GAAar3G,KAAM0xB,IACpB1xB,KAAKojL,yBAAyB1xJ,EAAOwnH,EAAUr3G,OAGvD,OAAOk/I,EAEX,qBAAqBxB,EAAQv6J,EAAW49J,GACpC,IAAIlxJ,EAAQ1xB,KAAKigL,aAAaj7J,EAAW49J,GACrC50J,EAAO0D,GAAS1xB,KAAKyjL,yBAAyBlE,EAAQ7tJ,GAAO,GACjE,OAAK1D,GAAQA,EAAK7T,OACP,IAEP6T,EAAK01J,kBACLhyJ,EAAQ1D,EAAK01J,iBAEV,CACHhyJ,MAAOA,EACPwxJ,cAAel1J,EAAKk1J,gBAG5B,wBAAwB3D,EAAQ7tJ,GAC5B,IAAImK,EAAW77B,KAAKs/K,qBAChBxgJ,EAAOpN,EAAMY,SACjB,GAAIuJ,IAAa77B,KAAK+iL,aAAajkJ,GAAO,CACtC,IAAIuM,EAAerrC,KAAK2jL,iBAAiBjyJ,GACrC1D,EAAOhuB,KAAK4jL,wBAAwBrE,EAAQzgJ,GAChD,GAAI9Q,EAAK7T,OACL,OAEA6T,EAAK61J,iBAAmBx4I,IACxBrrC,KAAK8jL,sBAAsBz4I,EAAanM,aACxCxN,EAAQ1xB,KAAKg8K,mBAGrB,OAAOtqJ,EAEX,iBAAiBwnH,EAAWv5G,GACxB,IAAIjO,EAAQ1xB,KAAKg8K,kBACbngJ,EAAW77B,KAAKs/K,qBAChBxgJ,EAAO9+B,KAAK07K,cAAgB17K,KAAK07K,aAAa8D,OAAO3jJ,GACzD,GAAI77B,KAAK8uB,OAAO,6BAA+B,GAAWgQ,IAAS9+B,KAAK8uB,OAAO,yBAA2B4C,GAASA,EAAMf,SAAS,IAAuB,CACrJ,IAAIo9B,EAAM/tD,KAAKgoC,gBAAgByzE,iBAAiB5/E,GAC5C9Q,EAAO/qB,KAAKgoC,gBAAgBxmB,QAAQqa,QACpC,IAAWkyB,GAAOhjC,GAAQA,EAAKhX,OAASgX,EAAKhX,KAAKm9C,gBAClDlxD,KAAKgoC,gBAAgB+gE,gBAAgBh7C,QAGzC/tD,KAAK+jL,4BAA4B7qC,EAAWv5G,GAGpD,4BAA4Bu5G,EAAWv5G,GACnC,IAAI3a,EAAYhlB,KAAKgkL,sBAAsB9qC,GACvC+qC,EAAyBjkL,KAAKkkL,0BAC9BvkJ,IAAcskJ,GAA0Bj/J,GACxChlB,KAAKmkL,2BAA2BjrC,EAAU3sH,eACtC,SAAWvH,GAAa,aAAeA,EACvChlB,KAAKshL,sBAAsBpoC,EAAWl0H,GAC/B,YAAcA,GAAa,cAAgBA,GAClDhlB,KAAKqgL,kBAAkBnnC,EAAU3sH,cAAevH,IAE7Ci/J,GACPjkL,KAAKokL,cAAclrC,GAG3B,sBAAsBA,GAClB,IAAIlzH,EAAoBhmB,KAAK8uB,OAAO,wCAChCu1J,EAAUnrC,EAAUr3G,MACxB,MAAI,WAAa7b,EACNq+J,EAAU,UAAY,YAE7B,QAAUr+J,EACHq+J,EAAU,WAAa,YADlC,EAKJ,2BAA2Bp4J,GACvB,IACIvpB,OAAQA,GACRupB,EACAyF,EAAQ1xB,KAAK2iL,0BAA0BjgL,GACvC0mH,EAAgBppH,KAAKk6K,iBACzBl6K,KAAKm8K,2BAA2BzqJ,GAC5B03F,GACAppH,KAAKskL,mBAAmB5yJ,GACxB8J,WAAWx7B,KAAKgnH,mBAAmBhH,aAAa9rF,KAAKl0B,KAAKgnH,uBAE1D,OAAax3F,QAAQ,eAAE9sB,GAAS,UAChC1C,KAAK8/K,iBACL7zJ,EAAM4S,kBAGd,kBAAkBq6G,EAAWv5G,GACzB,IAAIjO,EAAQ1xB,KAAK2iL,0BAA0BzpC,EAAU3sH,cAAc7pB,QAC/Di9B,IACA3/B,KAAKm8K,2BAA2BzqJ,GAC3B1xB,KAAKk6K,kBAONl6K,KAAKskL,mBAAmB5yJ,GACxB1xB,KAAKgnH,mBAAmBjM,iBACpB,IAAM/6G,KAAKgoC,gBAAgBxmB,QAAQ7iB,SACnCqB,KAAKq9K,oBACLr9K,KAAKuoJ,eAAel3C,cAVpB,SAAWrxG,KAAKgnH,mBAAmBtO,cACnC14G,KAAKgnH,mBAAmBjM,iBAExB/6G,KAAK8/K,iBAUb5mC,EAAU3sH,cAAcsS,kBAGhC,iBAAiBq6G,GACb,GAAIl5I,KAAK8uB,OAAO,uBAAwB,CACpC,IAAIy1J,EAAmBvkL,KAAKkhJ,aAAasc,sBACrC+mB,IACAA,EAAiB51J,QACjBuqH,EAAU3sH,cAAcsS,mBAIpC,gBACI,IAAIc,EAAY3/B,KAAKgnH,mBAAmBrnF,YACpC9D,EAAW77B,KAAKs/K,qBAChBxgJ,EAAO9+B,KAAK07K,cAAgB17K,KAAK07K,aAAa8D,OAAO3jJ,IACpD8D,GAAa,GAAUb,IACxB9+B,KAAKokL,gBAGb,kBAAkB7E,EAAQiF,GACtB,IAAI9yJ,EAAQ1xB,KAAKigL,aAAauE,GAC1B/E,EAAgBz/K,KAAK0/K,uBAAuB8E,GAC5CC,EAAc/yJ,GAAS1xB,KAAK0kL,aAAahzJ,GACzCxvB,IAASuiL,GAAczkL,KAAKkgL,2BAA2BX,EAAQ7tJ,EAAO+tJ,GAC1E,OAAOv9K,EAEX,2BAA2Bq9K,EAAQoF,EAAW3/J,GAC1C,IAAI4/J,EAAsB,YAAc5/J,GAAa,YAAcA,EAC/DgJ,EAAOhuB,KAAK6kL,yBAAyBtF,EAAQoF,EAAWC,GAAqB,GAEjF,OADAD,EAAY32J,EAAK01J,kBACZ11J,EAAK7T,SAAUna,KAAK0kL,aAAaC,MAClC3kL,KAAK8kL,OAAOH,GAAY32J,EAAKk1J,gBACtB,GAIf,kBAAkB32J,EAAew4J,GAC7B,IAAK/kL,KAAKk/K,yBAA2B3yJ,EAAc8yJ,QAAU9yJ,EAAckD,SAAWzvB,KAAKgnH,mBAAmBrnF,YAC1G,OAAO,EAEX,GAAIolJ,EACA/kL,KAAKokL,cAAc73J,EAAe8sJ,QAC/B,CACH,IACItrH,IAAKA,GACLxhC,EACAi4J,EAAUj4J,EAAci4J,SAAWj4J,EAAc0tH,MACjD+qC,EAAiBj3H,GAAOy2H,GAAW55K,OAAOq6K,aAAaT,IACvDQ,GAAmB,IAAMA,EAAermL,QAAUqmL,IAAmB3L,IACrEr5K,KAAKokL,cAAc73J,EAAey4J,GAG1C,OAAO,EAEX,qBAAqB/1J,GACjB,IAAIoB,EACApE,EAAQgD,EAAEhD,OAASgD,EACnBrC,EAAU,eAAEX,EAAMyP,eAClBylJ,EAAqB,QAAU9wJ,EAAKrwB,KAAK0qE,iBAAc,IAAWr6C,OAAK,EAASA,EAAGpD,UACnFmJ,EAAUxJ,EAAQ0F,SAClB4yJ,EAAuB,eAAEj5J,EAAMvpB,QAAQkyB,GAAG0kJ,IAC1CjgD,IAAmB,eAAEptG,EAAMvpB,QAAQgyB,QAAQ,IAAIrJ,OAAO,KAAsB1sB,OAC5EwmL,EAAsBv4J,EAAQ+D,SAAS,IACtC3wB,KAAK87K,sBAAsB7vJ,KAG3BotG,IAAmBr5H,KAAK0kL,aAAa93J,GAAUs4J,KAAyBC,EAalEv4J,EAAQgI,GAAG,OAClB50B,KAAKq9K,qBAbLzwJ,EAAU5sB,KAAKolL,kBAAkBx4J,GAAW,eAAEX,EAAMvpB,QAAUkqB,EAC9D5sB,KAAKqlL,aACL,eAAElE,GAAoBhyJ,YAAY,IAC9BiH,EAAQzF,SAASuoJ,KACjBl5K,KAAKm8K,2BAA2BvvJ,GAChC5sB,KAAKy9K,wBAAwBz9K,KAAK07K,aAAazuJ,WAC/CjtB,KAAK07K,aAAa/sJ,OAAM,IAChB3uB,KAAKslL,oBAAoB14J,GAGjC5sB,KAAKm8K,2BAA2BvvJ,GAFhC5sB,KAAKulL,wBAAwBt5J,EAAOW,KAQhD,wBAAwBX,EAAOyF,GAC3B,IAAIwN,EAAcl/B,KAAK0qE,UAAUr5B,aAAa3f,GAC1C1vB,EAAShC,KAAKg/B,mBAAmBC,oBAAoBC,GACrDivF,EAAiBnuH,KAAKwlL,kBAC1BxlL,KAAK6/K,mBACL,IAAI7xJ,EAAOhuB,KAAK6kL,yBAAyB54J,EAAOyF,GAAO,GAEvD,GADAA,EAAQ1D,EAAK01J,gBACR11J,EAAK7T,OAwBNna,KAAKylL,kBACLzlL,KAAK0lL,mBAAmB13J,EAAK23J,cACzB3lL,KAAKgnH,mBAAmBrnF,aAAewuF,GACvCnuH,KAAK8/K,qBA3BK,CACd,GAAI9xJ,EAAK43J,gBAEL,YADA5lL,KAAKgwB,cAAc,SAAS61J,mBAUhC,GAPI73J,EAAK61J,kBACLnyJ,EAAQ1xB,KAAKg8K,mBAEZhuJ,EAAKk1J,eAAkB/0D,GACxBnuH,KAAKylL,kBAETzlL,KAAKm8K,2BAA2BzqJ,GAC5B1xB,KAAK8lL,qBAAuB33D,GAAkBnsH,GAAUA,EAAOuS,aAC/DvU,KAAK68K,cAAe,EACpB78K,KAAK88K,gBAAiB,MACnB,CACHprJ,EAAQ1xB,KAAKg8K,kBACb,IAAIpvJ,EAAUX,GAAS,eAAEA,EAAMvpB,QAAQgyB,QAAQ,GAAGrJ,OAAOkuJ,GAAiC,SACtFwM,EAAiBn5J,GAAWA,EAAQwW,IAAI1R,GAAOkD,GAAG2kJ,IAClDyM,IAAahkL,IAAWA,EAAOwwB,SAAWd,EAAMf,SAAS,IACzDs1J,GAAcD,KAAch4J,EAAKk1J,eAAiB6C,GACtD/lL,KAAK8kL,OAAOpzJ,EAAOu0J,EAAYF,KAU3C,oBACI,IAAIlqJ,EAAW77B,KAAKs/K,qBAChBjhJ,EAAMr+B,KAAKgoC,gBAAgBxmB,QAAQqa,GACvC,OAAO77B,KAAKgnH,mBAAmBrsG,cAAc,CACzC0jB,IAAKA,GACN,SAEP,MAAMpR,GACF,IAAIi5J,EACAt5K,EAAoB5M,KAAK8uB,OAAO,qBAChCo0J,EAAgBljL,KAAKmmL,eAAe,eAAEl5J,IACrCA,IACDi5J,EAAwB,0CACnBt5K,IACDs5K,GAAyB,kDAE7Bj5J,EAAUjtB,KAAKixB,UAAUpC,WAAWtB,KAAK24J,GAAuBp4J,SAEpEb,GAAWjtB,KAAKomL,cAAc,eAAEn5J,GAAUi2J,GAE9C,iBACI,OAAOljL,KAAK07K,aAEhB,mBACQ17K,KAAKiwB,sBAAwB,eAAUjwB,KAAK07K,eAC5C17K,KAAKqlL,aAGb,cAAcx2J,EAAUq0J,GACpB,IAAImD,EAAkB,eAAErmL,KAAKu9K,uBACzB+I,EAAez3J,EAAS6F,QAAQ2xJ,GAChCzF,EAAiB5gL,KAAK4gL,iBACtB5yJ,EAAO,IACNs4J,EAAa3nL,QAAUqB,KAAKmmL,eAAet3J,KAAc7uB,KAAK0kL,aAAa71J,KAGhF7uB,KAAKqlL,aACLrlL,KAAK68K,cAAe,EACpB78K,KAAKy7K,eAAgB,GACjBz7K,KAAKmmL,eAAet3J,IAAa,GAAWA,MAC5C7uB,KAAK6/K,mBACL7xJ,EAAOhuB,KAAK6kL,yBAAyB,KAAMh2J,GAAU,EAAMq0J,GAC3Dr0J,EAAWb,EAAK01J,gBACZ9C,IAAmB5yJ,EAAKk1J,eACxBljL,KAAKylL,mBAGRz3J,EAAK7T,SACNna,KAAK8kL,OAAOj2J,GAAWb,EAAKk1J,eAC5BljL,KAAKojL,yBAAyBv0J,KAGtC,yBAAyBA,GACrB,IAAI66C,EAAO1pE,KAAKumL,iBACZC,EAAQ98G,GAAQ,eAAEA,EAAKz8C,WAC3B,OAAO4B,GAAY,IAAMA,EAAS6F,QAAQ8xJ,GAAO7nL,OAErD,aACIqB,KAAK07K,aAAe17K,KAAK0qE,UAE7B,oBACI1qE,KAAKylL,kBACLzlL,KAAK07K,aAAe,KAExB,yBAAyBhqJ,EAAOomC,GAC5B,GAAKpmC,EAAL,CAGA,IAAIkyD,EAAkB5jF,KAAKsjL,uBAAuB5xJ,EAAOomC,GACzD,QAAc8oD,sBAAsB5gH,KAAM4jF,IAE9C,OAAOlyD,EAAO+0J,EAAcV,GACxB,IAAIjnJ,EAAOpN,IAAUA,EAAMf,SAAS,IAAae,EAAMgD,QAAQ,IAAIrJ,OAAO,KAAcqG,EACxF,IAAIoN,IAAQm7I,GAAgBn7I,GAA5B,CAGA,IAEI4nJ,EAFAC,EAAc3mL,KAAK07K,aACnB7tJ,EAAoB84J,GAAeA,EAAY15J,UAEnDjtB,KAAK88K,eAAiB2J,EACtB,IAAIG,EAAa,GAAW9nJ,IAASk7I,GAAiBl7I,IAAS9+B,KAAK4gL,iBAChEgG,GACAF,EAAgB5nJ,EACZ6nJ,GACA3mL,KAAK0lL,mBAAmB1lL,KAAK+iL,aAAajkJ,KAEvC9+B,KAAKmmL,eAAez0J,KAC3Bg1J,EAAgBh1J,EAChB1xB,KAAKm8K,2BAA2BzqJ,IAEhCg1J,IACI74J,GACAA,EAAkBN,KAAK,6CAA6C6V,IAAIsjJ,GAAev3J,YAAY,IAA2BA,YAAY,IAAe4Q,WAAW,YAExK,OAAa8mJ,IAAIH,EAAe,OAAQz3J,IAChCA,EAAEkqH,eACFutC,EAAcv3J,YAAY,IAA2BA,YAAY,MAGpE42J,IACD/lL,KAAKy9K,wBAAwBiJ,GAC7B,OAAal3J,QAAQk3J,EAAe,UAEpCD,GACAC,EAAch6J,SAAS,IACnBk6J,GACAl1J,EAAMhF,SAAS,KAGnB1sB,KAAKuoJ,eAAe55H,MAAM+3J,KAItC,aAAaI,GACT9mL,KAAKk7K,oBAAsB1/I,WAAW,KAClC,GAAIx7B,KAAK+mL,wBACL/mL,KAAKgnH,mBAAmBxL,wBAD5B,CAIA,IAAI9pF,EAAQ1xB,KAAKg8K,kBACbr8I,EAAY3/B,KAAKgnH,mBAAmBrnF,YACxC,IAAK3/B,KAAKslL,oBAAoB5zJ,IAAU1xB,KAAKk6K,iBAAkB,CAC3D,GAAIl6K,KAAKgnL,YAAYt1J,EAAMY,UAAW,CAClC,IAAItN,EAAYhlB,KAAKo7K,sBAAwBp7K,KAAKo7K,qBAAqBv/I,SAAW,EAAI,UAAY,YAClGnK,EAAQ1xB,KAAKigL,aAAaj7J,GAE9B,GAAIm1J,GAAiBzoJ,GACjB,GAAIA,EAAMkD,GAAG,OAASlD,EAAMf,SAAS3wB,KAAKw0B,gBAAgB,KAAwB,CAC9E,IAAI4iF,EAAgB1lF,EAAMkD,GAAGukJ,IACzB8N,EAA4Bv1J,EAAMnE,KAAK,UACvC25J,EAA0B/M,GAAiB8M,GAC/C,IAAKH,GAAiB1vE,IAAkBp3G,KAAKuoJ,eAAe55H,QAKhDu4J,IAA4BlnL,KAAK68K,eAAgB78K,KAAK88K,gBAC9D98K,KAAK8kL,OAAOpzJ,EAAO1xB,KAAK88K,oBANyC,CACjE,GAAI1lE,GAAiB8vE,EAEjB,YADA,QAActmE,sBAAsB5gH,KAAMinL,IAE5CC,GAA2BlnL,KAAK8kL,OAAOpzJ,GAIzCiO,GACA3/B,KAAKojL,yBAAyBlvJ,KAAKl0B,KAAnCA,CAAyC0xB,QAG7C,OAAalC,QAAQkC,EAAO,aAMhD,wBACI,IAAIy8F,EAAiBnuH,KAAKgnH,mBAAmBtO,gBAAkBzE,GAC3Dsa,EAAkBvuH,KAAKgnH,mBAAmBtO,gBAAkB3E,GAC5DozE,EAAyBh5D,GAAkBnuH,KAAKgnH,mBAAmB/6C,aACnEm7G,EAAwB74D,GAAmBvuH,KAAKgnH,mBAAmBqgE,qBACnE31J,EAAQ1xB,KAAKg8K,kBACjB,OAAQ,IAAMtqJ,EAAME,WAAWjzB,QAAU+yB,EAAMnE,KAAKumF,IAA4Bn1G,OAAS,KAAOwoL,GAA0BC,GAE9H,kBACI,OAAO,eAAEpnL,KAAKuiL,SAASviL,KAAKo7K,uBAEhC,mCAAmC14K,GAC/B,IAAI2tB,EACAuyJ,EAAc5iL,KAAK2gL,gBAAgBj+K,GACvC,GAAI,QAAUkgL,GAAe,eAAU,QAAUvyJ,EAAKrwB,KAAKo7K,4BAAyB,IAAW/qJ,OAAK,EAASA,EAAG6O,aAAc,CAC1H,IAAIJ,EAAO,eAAEp8B,GACb1C,KAAK07K,cAAgB,GAAW58I,IAAS9+B,KAAK0lL,mBAAmB1lL,KAAK+iL,aAAajkJ,SAEnF9+B,KAAKm8K,2BAA2Bn8K,KAAK2iL,0BAA0BjgL,IAGvE,2BAA2BgvB,EAAO1M,GAC9B,IAAI1M,EAAWtY,KAAK2jL,iBAAiBjyJ,EAAO1M,GAM5C,OALI1M,KACKoZ,EAAM/yB,QAAU2Z,EAASujB,UAAY,GAAKvjB,EAAS4mB,aAAe,IACnEl/B,KAAKsnL,uBAAuBhvK,EAASujB,SAAUvjB,EAAS4mB,aAGzD5mB,EAEX,6BAA6B4mB,GACzB,IAAI7X,EAAS,EACTrlB,EAAShC,KAAKg/B,mBAAmBC,oBAAoBC,GAMzD,OALIl9B,GAAUA,EAAOkU,MACjBmR,EAASrnB,KAAKunL,2BAA2BvlL,GAClCk9B,GAAe,IACtB7X,EAASrnB,KAAKg/B,mBAAmB2G,wBAE9Bte,EAEX,2BAA2BrlB,GACvB,IAAIqlB,EAASizJ,GAAiCt6K,KAAMgC,GAAUhC,KAAK6hL,yBAA2B7hL,KAAKg/B,mBAAmBC,oBAAoBtgC,OAAS,EACnJ,OAAO0oB,EAEX,iBAAiBqK,EAAO1M,GACpB,IAAIka,EACAJ,EAAOq7I,GAAiBzoJ,IAAUA,EAAMgD,QAAQ,MACpD,GAAIylJ,GAAiBr7I,GAAO,CACxB,IAAIjD,EAAW77B,KAAK+iL,aAAajkJ,GAOjC,OANAI,EAAcl/B,KAAK0qE,UAAUr5B,aAAa3f,EAAOmK,GACjDqD,GAAel/B,KAAKwnL,6BAA6BtoJ,GAC7Cla,IACAka,EAAc,aAAela,EAAYka,EAAc,EAAIA,EAAc,EACzEA,EAAcl/B,KAAKynL,4BAA4BvoJ,IAE5C,CACHrD,SAAUA,EACVqD,YAAaA,IAKzB,WAAWxN,EAAOu0J,GACd,GAAIjmL,KAAK0kL,aAAahzJ,GAElB,OADA1xB,KAAK8kL,OAAOpzJ,EAAOu0J,IACZ,EAIf,mBAAmBv0J,GACXA,EAAMf,SAAS,KACf3wB,KAAKuoJ,eAAe55H,MAAM+C,GAAO,GAGzC,kBAAkBhD,GACd,IAAI2B,EACAqB,EAAQ1xB,KAAKg8K,kBACjB7B,GAAiBzoJ,IAAUA,EAAMqO,WAAW,YAC5C//B,KAAK68K,cAAe,EACpB78K,KAAKy7K,eAAgB,EACrBz7K,KAAKo7K,qBAAuB,GAC5B3/I,aAAaz7B,KAAKk7K,qBAClB,QAAU7qJ,EAAKrwB,KAAK07K,oBAAiB,IAAWrrJ,GAAcA,EAAGq3J,iBAAiB,CAC9Eh5J,cAAeA,IAGvB,wBAAwBmN,EAAU0jJ,GAC9B,IAAIvxJ,EACAoX,EACA+6I,EAAY,eAAUtkJ,GACtB+vC,EAAmB5rE,KAAK0qE,UAAUz9C,WAElCiS,YAAaA,GACbl/B,KAAKo7K,qBACLxpH,EAAiB5xD,KAAKgoC,gBAAgB6pB,oBAC1Ch2B,EAAWskJ,EAAYtkJ,EAAW77B,KAAK0qE,UAAU3B,yBAA2BnX,EACvEuuH,GAKD/6I,EAAcplC,KAAK0qE,UAAU80G,OAAO3jJ,EAAW+1B,GAC/C5jC,EAAOhuB,KAAK4jL,wBAAwBrE,EAAQn6I,IACvCpX,EAAK7T,QAAU6T,EAAK61J,kBACrBhoJ,EAAW7N,EAAK25J,eAPpB3nL,KAAKuoJ,eAAel3C,YACpBrxG,KAAKy9K,wBAAwB7xG,GAC7B,OAAap8C,QAAQo8C,EAAkB,UAQtCu0G,GAAcnyJ,EAAK7T,QACpBna,KAAKsnL,uBAAuBzrJ,EAAUqD,GAE1CihJ,GAAangL,KAAK2yG,eAEtB,sBAAsBtnE,EAAcu3I,EAAagF,GAC7C,IAMIC,GALA3oJ,YAAaA,GACbmM,GAEAxP,SAAUA,GACVwP,EAEJ,QAAI,IAAWA,EAAaxP,UAAY,SAAW+rJ,EAC/C,MAAO,CACH1oJ,YAAa,EACbrD,SAAU,GAGlB,OAAQ+rJ,GACJ,IAAK,YACL,IAAK,OACDC,EAAsB7nL,KAAK6hL,yBACvB3iJ,EAAc2oJ,EAAsB,GAAK,QAAUjF,GAAe5iL,KAAK8nL,2BAA2B,CAC9F5oJ,YAAaA,EACbrD,SAAUA,IAEdqD,IACQl/B,KAAK+nL,WAAWlsJ,IAAa,SAAW+rJ,IAChD1oJ,EAAc,EACdrD,KAEJ,MACJ,IAAK,gBACL,IAAK,WACGqD,EAAc,GAAK,QAAU0jJ,GAAe5iL,KAAKgoL,4BAA4B,CACzE9oJ,YAAaA,EACbrD,SAAUA,IAEdqD,IACOrD,EAAW,GAAK,aAAe+rJ,IACtC/rJ,IACAgsJ,EAAsB7nL,KAAK6hL,yBAC3B3iJ,EAAc2oJ,EAAsB,GAExC,MACJ,IAAK,UACDhsJ,EAAWA,EAAW,EAAIA,EAAW,EAAIA,EACzC,MACJ,IAAK,YACDA,EAAY77B,KAAK+nL,WAAWlsJ,GAA2BA,EAAfA,EAAW,EAE3D,MAAO,CACHqD,YAAaA,EACbrD,SAAUA,GAGlB,uBAAuBA,EAAUqD,GAC7Bl/B,KAAK0lL,mBAAmB7pJ,GACxB77B,KAAK8jL,sBAAsB5kJ,GAE/B,mBAAmBrD,GACV77B,KAAKo7K,uBACNp7K,KAAKo7K,qBAAuB,IAEhCp7K,KAAKo7K,qBAAqBv/I,SAAWA,EAEzC,sBAAsBqD,GACbl/B,KAAKo7K,uBACNp7K,KAAKo7K,qBAAuB,IAEhCp7K,KAAKo7K,qBAAqBl8I,YAAcA,EAE5C,cACI,OAAOl/B,KAAKo7K,qBAAuBp7K,KAAKo7K,qBAAqBv/I,UAAY,EAE7E,iBACI,OAAO77B,KAAKo7K,qBAAuBp7K,KAAKo7K,qBAAqBl8I,aAAe,EAEhF,qBACI,IAAI7O,EACAwL,EAAW,QAAUxL,EAAKrwB,KAAKo7K,4BAAyB,IAAW/qJ,OAAK,EAASA,EAAGwL,SACxF,OAAQ,eAAUA,IAAaA,EAAW,GAAK,EAAIA,EAAW77B,KAAKgoC,gBAAgB6pB,oBAEvF,wBACI,IAAIxhC,EACA6O,EAAc,QAAU7O,EAAKrwB,KAAKo7K,4BAAyB,IAAW/qJ,OAAK,EAASA,EAAG6O,YAC3F,OAAQ,eAAUA,GAAoBA,EAAcl/B,KAAKg/B,mBAAmB2G,wBAA1C,EAEtC,4BAA4BzG,GACxB,IAAI2oJ,EAAsB7nL,KAAK6hL,yBAM/B,OALI3iJ,EAAc,EACdA,EAAc,EACPA,GAAe2oJ,IACtB3oJ,EAAc2oJ,EAAsB,GAEjC3oJ,EAEX,uBAAuBmM,GACnB,IAAI3Z,EAAQ,eAAE1xB,KAAKuiL,SAASl3I,IAC5B,OAAOrrC,KAAK0kL,aAAahzJ,GAE7B,WAAWmK,GACP,IAAIkqB,EAAiB/lD,KAAKgoC,gBAC1B,GAAIhoC,KAAKsgL,sBACL,OAAOzkJ,GAAYkqB,EAAekiI,iBAEtC,IAAIC,EAAmBxwI,KAAKpwB,OAAOy+B,EAAevkC,QAAQ3iB,IAAI,CAACksB,EAAM9oB,KAAU,IAAU8oB,EAAKlZ,QAAU5P,GAAS,IACjH,OAAO45B,IAAaqsJ,EAExB,kBAAkB78I,GACd,IAAI88I,GAAmB,EAIvB,OAHI,IAAM98I,EAAaxP,UAAYwP,EAAanM,aAAe,IAC3DipJ,EAAmBA,IAAqBnoL,KAAKgoL,4BAA4B38I,IAEtE88I,EAEX,4BAA4B98I,GACxB,IACInM,YAAaA,GACbmM,EACA+8I,GAAgB,EACpB,MAAOlpJ,EAAc,IAAMkpJ,EAAe,CACtC,IAAIC,EAAmB,CACnBnpJ,cAAeA,EACfrD,SAAUwP,EAAaxP,UAE3BusJ,EAAgBpoL,KAAKsoL,uBAAuBD,GAEhD,OAAOD,EAEX,2BAA2B/8I,GACvB,IACInM,YAAaA,GACbmM,EACA+8I,GAAgB,EAChBG,EAAqBvoL,KAAK6hL,yBAC9B,MAAO3iJ,EAAcqpJ,EAAqB,IAAMH,EAAe,CAC3D,IAAIC,EAAmB,CACnBnpJ,cAAeA,EACfrD,SAAUwP,EAAaxP,UAE3BusJ,EAAgBpoL,KAAKsoL,uBAAuBD,GAEhD,OAAOD,EAEX,iBAAiB/8I,GACb,IAAI0nI,EAAkB1nI,EAAanM,aAAe,EAAImM,EAAanM,YAAc,EAAI,GAEjFrD,SAAUA,GACVwP,EACAg9I,EAAmB,CACnBnpJ,YAAa6zI,EACbl3I,SAAUA,GAEV0rG,EAAcvnI,KAAKgoC,gBAAgBsqB,iBACnCj0B,EAAMkpG,GAAeA,EAAY1rG,GACjC2sJ,EAAYxoL,KAAK+nL,WAAWlsJ,GAChC,QAAK2sJ,OAGDnqJ,GAAO,UAAYA,EAAIT,SAAWyN,EAAanM,YAAc,KAG7DmM,EAAanM,cAAgBl/B,KAAK6hL,yBAA2B,IAG7D7hL,KAAKsoL,uBAAuBD,IAGzBroL,KAAKghL,iBAAiBqH,KAEjC,aAAa32J,EAAO+2J,GAChB,GAAItO,GAAiBzoJ,GAAQ,CACzB,IAAIoN,EAAOpN,EAAMY,SACbtB,EAAoBhxB,KAAKg/B,mBACzBE,EAAcl/B,KAAK0qE,UAAUr5B,aAAa3f,GAASV,EAAkB2U,uBACrE3jC,EAASgvB,EAAkBiO,kBAAkB,MAAM,GAAMC,GACzDqpJ,EAAqBvoL,KAAK6hL,yBAC1BzjH,EAAoBp+D,KAAKgnH,mBACzB1nF,EAAoB,GAAYR,GAChC4pJ,EAAoB1mL,GAAUA,EAAO+U,gBACrC4xK,EAAa3mL,IAAW0vB,EAAMf,SAAS,KAAyB,GAAUmO,GAC1Eg7I,EAAaD,GAA8BC,WAAWpoJ,GAC1D,GAAIooJ,EACA,OAAO,EAEX,GAAI95K,KAAKslL,oBAAoB5zJ,GACzB,OAAO,EAEX,GAAI62J,EAAqBrpJ,KAAiBI,GAAqBt9B,KAAY,eAAUA,EAAOsU,aAAeoyK,GAAqBC,IAAe7pI,SAASptB,EAAM5E,KAAK,WAAY,IAAM,GAAI,CACrL,IAAI87J,EAAW5oL,KAAKgoC,gBAAgBxmB,QAChC8uC,EAAkBtwD,KAAK0qE,UAAU5uC,YAAYgD,GAC7CT,EAAMuqJ,EAASt4H,GACfgO,EAAgBF,GAAqBp+D,KAAKwlL,mBAAqBpnH,EAAkBz+B,YACjFygJ,EAA2BhiH,GAAqBA,EAAkB8uC,UAAU58C,GAC5E3wB,EAAYygJ,GAA4B9hH,EAC5C,OAAIt8D,EAAOwwB,QACHxyB,KAAK6oL,uBACGlpJ,GAAa,WAAa39B,EAAOwwB,SAEzC8rC,IAGA8hH,EACO,WAAap+K,EAAOwwB,SAEvBmN,KAER2+B,IAAiBjgC,GAAO,SAAWA,EAAIT,YAGnC+B,GAAa39B,EAAOuS,cAAgBk0K,KAIxD,uBAAuB3pJ,EAAMI,GACzB,IACIxN,EACAo3J,EAFA52J,EAAS4M,EAAKvR,KAAK,QAGvB2R,EAAcA,GAAe,EAC7B,IAAK,IAAI1+B,EAAI0+B,EAAa1+B,EAAI0xB,EAAOvzB,SAAU6B,EAE3C,GADAkxB,EAAQQ,EAAO3C,GAAG/uB,GACdR,KAAK0kL,aAAahzJ,GAAQ,CAC1Bo3J,EAAUp3J,EACV,MAGR,OAAOo3J,EAEX,aAAatE,EAAS5B,EAAav3I,GAC/B,IAGI3Z,EACAoN,EAJAiqJ,EAAsB19I,GAAgBrrC,KAAKo7K,qBAC3CwF,EAAiB5gL,KAAK4gL,iBACtBoI,EAAsBpI,GAAkB,CAAC,OAAQ,YAAYpyI,SAASg2I,GAG1E,GAAIxkL,KAAK07K,cAAgBqN,EAAqB,CAC1C,IAAIE,EAAyBjpL,KAAKkpL,sBAAsBH,EAAqBnG,EAAa4B,GAC1F9yJ,EAAQ,eAAE1xB,KAAKuiL,SAAS0G,IACxB,IAAIE,EAAwB,aAAe3E,EAAUxkL,KAAKihL,kBAAkBgI,GAA0BjpL,KAAKghL,iBAAiBiI,GAS5H,GARI9O,GAAiBzoJ,KAAW1xB,KAAK0kL,aAAahzJ,IAAU1xB,KAAKopL,aAAaH,EAAwBD,KAAyBG,IAEvHz3J,EADAkvJ,EACQ5gL,KAAKujL,uBAAuB7xJ,EAAMY,SAAU22J,EAAuB/pJ,aAEnEl/B,KAAKigL,aAAauE,EAAS,OAAQyE,IAGnDnqJ,EAAOq7I,GAAiBzoJ,IAAUA,EAAMY,SACpCtyB,KAAKgnL,YAAYloJ,GAAO,CACxB,IAAIjD,EAAW77B,KAAK+iL,aAAajkJ,GACjC,GAAK9+B,KAAK+nL,WAAWlsJ,GAMjB,OAAO,KALPnK,EAAQ1xB,KAAKigL,aAAauE,EAAS,MAAO,CACtCtlJ,YAAa6pJ,EAAoB7pJ,YACjCrD,SAAUA,IAMtB,OAAOs+I,GAAiBzoJ,GAASA,EAAQ,KAE7C,OAAO,KAEX,cAAcwnH,EAAW8rC,GACrB,IAAI+D,EAAsB/oL,KAAKo7K,qBAC3B9qH,EAAkBtwD,KAAKs/K,qBACvB+J,EAAqBrpL,KAAKsqC,wBAC1BjM,EAAMr+B,KAAKgoC,gBAAgBxmB,QAAQ8uC,GACnCtuD,EAAShC,KAAKg/B,mBAAmBC,oBAAoBoqJ,GACrDrpL,KAAKspL,gBAAgBjrJ,EAAKr8B,KACtBhC,KAAKk6K,iBACLl6K,KAAKgnH,mBAAmBjrG,QAAQu0C,GACzBy4H,GACP/oL,KAAKupL,eAAerwC,EAAW8rC,IAI3C,gBAAgB3mJ,EAAKr8B,GACjB,OAAOhC,KAAKgnH,mBAAmBrsG,cAAc,CACzC0jB,IAAKA,KACHr8B,GAAUA,EAAOuS,aAE3B,mBACI,IAAIsnB,EAAW77B,KAAKs/K,qBAChBkK,EAAWxpL,KAAKsqC,wBACpB,OAAOtqC,KAAKgnH,mBAAmBe,SAASlsF,EAAU2tJ,GAEtD,eAAetwC,EAAW8rC,GACtBhlL,KAAKm7K,oBAAsB,eAAU6J,GACrC,IAAIyE,EAAazpL,KAAKmjL,mBAClBuG,EAAuB,eAAWD,GAClCE,EAAuB3pL,KAAKm/K,wBAChC,GAAKwK,IAAyBD,GAAyBD,GAAvD,CAGA,IAAIG,EAAcF,GAAwB1E,IAAmB3L,GAA0B,GAAK2L,EACxF6E,EAAqBH,EAAuBD,EAAa,iBAAWvsJ,UACpE4sJ,EAAwB9pL,KAAK0qE,UAAUvhC,oBAAmB,GAC9D,eAAK0gJ,EAAoBC,GAAuBtzJ,KAAK,KACjDx2B,KAAK+pL,oBAAoB7wC,EAAW0wC,MAG5C,oBAAoB1wC,EAAW0wC,GAC3B,IAAIv5J,EAAIub,EACJo+I,EAAShqL,KAAKg8K,kBAAkBzuJ,KAAK+rJ,IAA+B/pJ,GAAG,GACvE06J,EAAgBD,EAAOr2J,IAAI,GAC/B,GAAKs2J,EAAL,CAGA,IAAIC,EAAe,eAAYhxC,EAAW,CACtC96I,KAAM,UACNsE,OAAQunL,IAERE,EAAgB,eAAYjxC,EAAW,CACvC96I,KAAM,WACNsE,OAAQunL,IAERG,EAAa,eAAYlxC,EAAW,CACpC96I,KAAM,QACNsE,OAAQunL,IASZ,GAPIG,EAAW79J,gBACX69J,EAAW79J,cAAgB,eAAY69J,EAAW79J,cAAe,CAC7DxY,KAAM61K,KAGd,QAAUh+I,GAAMvb,EAAK45J,GAAe9sG,cAAW,IAAWvxC,GAAcA,EAAGzS,KAAK9I,GAChF,OAAab,QAAQw6J,EAAQE,IACxBA,EAAa10F,uBACd,OAAahmE,QAAQw6J,EAAQG,IACxBA,EAAc30F,sBAAsB,CACrC,IAAI58E,EAAU6lB,EAAA,KAAQG,QAAU,GAAK,EACrCpD,WAAW,KACPwuJ,EAAOK,IAAIT,GACX,IAAIU,EAAmBN,EAAOt1J,QAAQ,IAAIrJ,OAAO,KACjD,OAAamD,IAAI87J,EAAkB,YACnC,OAAazD,IAAIyD,EAAkB,WAAY,KAC3C,OAAa96J,QAAQw6J,EAAQ,YAEjC,OAAax6J,QAAQw6J,EAAQI,IAC9BxxK,KAIf,yBAAyB2mK,EAAQ7tJ,EAAO64J,EAAcrH,GAClD,IAAI7yJ,EACArC,EAAO,GACPqd,EAAe,QAAUhb,EAAKrwB,KAAK2jL,iBAAiBjyJ,UAAW,IAAWrB,EAAKA,EAAK,GAqBxF,OApBIrwB,KAAKwqL,oBACLx8J,EAAOhuB,KAAKyjL,yBAAyBlE,EAAQ7tJ,EAAOwxJ,GAC/Cl1J,EAAK7T,SACNkxB,EAAanM,YAAclR,EAAKy8J,eAChCp/I,EAAaxP,SAAW7N,EAAK25J,YAC7BzE,EAAgBl1J,EAAKk1J,cACrBxxJ,EAAQ,eAAE1xB,KAAKuiL,SAASl3I,OAG3Brd,EAAK7T,QAAUowK,GAAgB74J,IAChC1D,EAAOhuB,KAAK4jL,wBAAwBrE,EAAQ7tJ,EAAMY,UAC7CtE,EAAK7T,SACNkxB,EAAaxP,SAAW7N,EAAK25J,YAC7B35J,EAAKk1J,cAAgBA,IAG7Bl1J,EAAK01J,gBAAkB,eAAE1jL,KAAKuiL,SAASl3I,IAClCrd,EAAK01J,gBAAgB/kL,SACtBqvB,EAAK01J,gBAAkBhyJ,GAEpB1D,EAEX,yBAAyBuxJ,EAAQpvI,EAAc+yI,GAC3C,IAAIwH,EAAkB1qL,KAAK8uB,OAAO,sBAC9B62J,EAAe3lL,KAAK8uB,OAAO,mBAC3Buc,EAAerrC,KAAK2jL,iBAAiBxzI,GACrCjR,EAAcmM,EAAeA,EAAanM,aAAe,EACzDrD,EAAWwP,EAAeA,EAAaxP,UAAY,EACnD0rG,EAAcvnI,KAAKgoC,gBAAgBsqB,iBACnCvzB,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzCjR,EAAO,CACPuS,YAAa4P,EACbu6I,gBAAiBA,EACjB/E,aAAcA,EACd8E,eAAgBvrJ,EAChByoJ,YAAa9rJ,EACbuI,KAAMmjG,EACN77H,QAASqzB,EACT9S,MAAOszJ,EACP2D,cAAeA,IAAiB,EAChC/oK,QAAQ,GAgBZ,OAdAna,KAAKq7K,sBAAwB,KAC7Br7K,KAAK+tB,cAAc,wBAAyBC,GACxCA,EAAKy8J,iBAAmBvrJ,GAAelR,EAAK25J,cAAgB9rJ,IAC5D7N,EAAK01J,gBAAkB,eAAE1jL,KAAKuiL,SAAS,CACnCrjJ,YAAalR,EAAKy8J,eAClB5uJ,SAAU7N,EAAK25J,gBAGnB35J,EAAK7T,SACLna,KAAKq7K,sBAAwB,CACzBx/I,SAAUA,EACVqD,YAAaA,IAGdlR,EAEX,wBAAwB0D,GACpB,IAAIwN,EAAcl/B,KAAK0qE,UAAUr5B,aAAa3f,GAC1CW,EAAa,OAASX,QAAS,IAAWA,OAAQ,EAASA,EAAMY,SAASve,KAAK,WAC/EjH,EAAgB,OAASulB,QAAc,IAAWA,OAAa,EAASA,EAAW07B,IACvF/tD,KAAK26K,4BAA4B7tK,EAAeoyB,GAEpD,4BAA4B+kF,EAAQ/kF,GAChC,IAAIxN,EAAQ1xB,KAAKg8K,kBACbngJ,EAAW77B,KAAK+iL,aAAa,OAASrxJ,QAAS,IAAWA,OAAQ,EAASA,EAAMY,UACjFq4J,EAAgBjzI,KAAKnwB,IAAIsU,EAAW77B,KAAKgoC,gBAAgB6pB,oBAAqB7xD,KAAKgoC,gBAAgBxmB,QAAQ7iB,OAAS,GACpH+vH,EAAgB1uH,KAAKgnH,mBAAmBxC,WAAWmmE,EAAezrJ,GACtE,IAAIwvF,EAAJ,CAGA,IAAIrwF,EAAMr+B,KAAKgoC,gBAAgBxmB,QAAQmpK,GACnC3oL,EAAShC,KAAKg/B,mBAAmBC,oBAAoBC,GACzDl/B,KAAK+tB,cAAc,uBAAwB,CACvCwS,YAAa7O,EAAQ,eAAiBA,QAAS,EAC/CwN,YAAaA,EACbrD,SAAUA,EACVwC,IAAKA,EACLr8B,OAAQA,KAGhB,wBAAwBk3I,EAAW0xC,GAC/B,IAAIjD,EAAc3nL,KAAK+iL,aAAa6H,GAChCC,EAAsB7qL,KAAK8uB,OAAO,mBAClC8jC,EAAwB5yD,KAAKgoC,gBAAgB4qB,wBAC7C5kC,EAAO,CACP+N,WAAY6uJ,EACZjF,aAAckF,EACdlD,YAAaA,EACb17J,MAAOitH,EACP90G,KAAMpkC,KAAKgoC,gBAAgBsqB,iBAC3Bn4C,QAAQ,GAEZ,OAAKna,KAAKgoC,iBAAmBhoC,KAAKgoC,gBAAgBsjB,cAAgBsH,EAAsBlG,QAAUkG,EAAsBxiD,SACpH4d,EAAK7T,QAAS,EACP6T,IAEPhuB,KAAK8uB,OAAO,uBACZ9uB,KAAK+tB,cAAc,uBAAwBC,GACtCA,EAAK7T,QAAU6T,EAAK25J,cAAgBA,IACrC35J,EAAK43J,gBAAkB53J,EAAK25J,YAAc,EACrC35J,EAAK43J,iBACN5lL,KAAK0lL,mBAAmB13J,EAAK25J,aAEjC35J,EAAK61J,iBAAkB,IAGxB71J,GAEX,yBACI,IAAIqC,EACAzjB,EAAoB5M,KAAK8uB,OAAO,qBAChChiB,EAAgB9M,KAAK8uB,OAAO,iBAC5BjiB,EAAkB,QAAUwjB,EAAKrwB,KAAK06K,wBAAqB,IAAWrqJ,OAAK,EAASA,EAAGy6J,wBAAwBh+K,IAC9GF,GAAqB,eAAUE,IAAkBD,EAAkB,GAGxE7M,KAAK46K,2BAA2B9tK,EAAeD,GAEnD,2BAA2BC,EAAeD,GACtC,IAAI89K,EAAgB99K,EAAkB7M,KAAKgoC,gBAAgB6pB,oBAC3D7xD,KAAK+tB,cAAc,sBAAuB,CACtCgO,WAAYlvB,EAAkB,OAAI,EAAS7M,KAAK0qE,UAAUiiC,cAAcg+E,GACxE9uJ,SAAUhvB,EACVwxB,IAAKxxB,EAAkB,OAAI,EAAS7M,KAAKgoC,gBAAgBsqB,iBAAiBq4H,KAGlF,sBAAsB1+J,GAClB,OAAO,QAAcimF,uBAAuBlyG,KAAM,eAAEisB,EAAMvpB,SAE9D,iBACI,IAAI81G,EAAWx4G,KAAKgnH,mBAAmBtO,cACvC,OAAOF,IAAaxE,IAAiBwE,IAAatE,GAEtD,kBACI,IAAIsE,EAAWx4G,KAAKgnH,mBAAmBtO,cACvC,OAAOF,IAAavE,IAAkBuE,IAAazE,GAEvD,wBACI,OAAO/zG,KAAKwlL,mBAAqBxlL,KAAK8uB,OAAO,qCAEjD,uBAAuB4C,EAAOomC,GAC1B,IAAI8rB,EAAkBlyD,EAAMnE,KAAK+rJ,IAA+Bh1K,OAAO,YACvE,OAAOwzD,EAAS8rB,EAAgB7gB,OAAS6gB,EAAgB91D,QAE7D,wBAAwBe,GACpB,IAAInd,EAAW1R,KAAK8uB,OAAO,aAAe,EAC1CD,EAAS/B,KAAK,WAAY,eAAUpb,GAAYA,EAAW,GAE/D,SAAS25B,GACL,GAAIrrC,KAAK07K,cAAgBrwI,EAAc,CACnC,IAAIumB,EAAiB5xD,KAAKgoC,gBAAgB6pB,oBACtC7vD,EAAShC,KAAKg/B,mBAAmBC,kBAAkB,MAAM,GAAMoM,EAAanM,aAC5EwG,EAAoB1jC,GAAUA,EAAOkU,MAAQlW,KAAKunL,2BAA2BvlL,GAAUhC,KAAKg/B,mBAAmB2G,uBAC/G9J,EAAWwP,EAAaxP,UAAY,EAAIwP,EAAaxP,SAAW+1B,GAAkB,EAClF1yB,EAAcmM,EAAanM,aAAe,EAAImM,EAAanM,YAAcwG,GAAqB,EAClG,OAAO1lC,KAAK07K,aAAaqP,QAAQ,CAC7BlvJ,SAAUA,EACVqD,YAAaA,KAIzB,aAAaJ,GACT,IAAIjD,EAAW77B,KAAK0qE,UAAU5uC,YAAYgD,GAI1C,OAHIjD,GAAY,IACZA,GAAY77B,KAAKgoC,gBAAgB6pB,qBAE9Bh2B,EAEX,YAAYiD,GACR,IAAIT,EAAMS,GAAQA,EAAKnL,IAAI,GAC3B,OAAO0K,IAAQ,SAAWA,EAAI/B,MAAM4N,SAAW,GAAYpL,KAAUA,EAAKnO,SAAS3wB,KAAKw0B,gBAAgB6+E,MAE5G,0BACI,MAAO,cAAgBrzG,KAAK8uB,OAAO,qCAEvC,sBACI,OAAO9uB,KAAK8uB,OAAO,+BAEvB,uBAAuBi/B,GACnB,IAAI0xH,EACJ,OAAQ1xH,GACJ,IAAK,UACD0xH,EAAgB,UAChB,MACJ,IAAK,YACDA,EAAgB,UAChB,MACJ,IAAK,YACDA,EAAgBz/K,KAAK8uB,OAAO,cAAgB,YAAc,gBAC1D,MACJ,IAAK,aACD2wJ,EAAgBz/K,KAAK8uB,OAAO,cAAgB,gBAAkB,YAEtE,OAAO2wJ,EAEX,sBACI,IAAIhyH,EAAgBztD,KAAK8uB,OAAO,kBAChC,MAAO,YAAc2+B,GAAiB,aAAeA,EAEzD,sBACI,OAAOztD,KAAKw6K,uBAAyB,QAAc95G,sBAAsB1gE,MAE7E,yBACI,MAAO,YAAcA,KAAK8uB,OAAO,iCAErC,UAAU1L,EAAMG,EAAKsY,EAAU0jJ,GAC3B,IAAI1sJ,EAAO7yB,KACPy/D,EAAaz/D,KAAK0qE,UAAUzK,gBAOhC,OANIptC,EAAKuoJ,sBACL37G,EAAWnxC,GAAG,UAAU,SAAUuzC,IAC9BpC,EAAWjxC,IAAI,SAAUqzC,GACzBrmC,WAAW3I,EAAKm4J,wBAAwB92J,KAAKrB,EAAMgJ,EAAU0jJ,OAG9D9/G,EAAW2iH,SAAS,CACvBh/J,KAAMA,EACNG,IAAKA,IAGb,kBAAkB0J,GACd,IAAIg+J,EAAY,eAAEh+J,GAASyH,QAAQ,IAAIrJ,OAAOrrB,KAAKw0B,gBAAgB6+E,MACnE,OAAO43E,EAAUtsL,QAAUqB,KAAK8wG,oBAAoBm6E,GAExD,oBAAoBh+J,GAChB,IAAIi+J,EAAoB,eAAEj+J,GAASyH,QAAQ,IAAIrJ,OAAO,KACtD,OAAO6/J,EAAkBvsL,QAAUqB,KAAK8wG,oBAAoBo6E,GAEhE,+BAA+BvG,EAAWwG,IACjCnrL,KAAKolL,kBAAkBT,IAAcA,GACtC3kL,KAAKy9K,wBAAwBkH,GAGrC,gCAAgCjiL,EAAQsiB,GACpC,GAAIhlB,KAAKslL,oBAAoB5iL,GAAS,CAClC1C,KAAKm8K,2BAA2B,eAAEz5K,GAASsiB,GAC3C,IAAI2/J,EAAY3kL,KAAKigL,aAAaj7J,EAAW,OAE7C,OADAhlB,KAAKorL,+BAA+BzG,EAAW,eAAEjiL,KAC1C,EAEX,OAAO,EAEX,gBAAgBA,GACZ,OAAO,eAAEA,GAAQkyB,GAAG,MAAQ,MAAQ,OAExC,wBACI,OAAO50B,KAAKk/K,yBAA2Bl/K,KAAKm7K,oBAEhD,yBACI,OAAOn7K,KAAKg/B,mBAAmBC,kBAAkB,MAAM,GAAMtgC,OAEjE,aAAa0sC,EAAc29I,GACvB,IACI9pJ,YAAaA,GACbmM,EACAw8I,EAAsB7nL,KAAK6hL,yBAC/B,OAAOmH,EAAsB9pJ,GAAe,GAAKA,GAAe2oJ,EAAsB,EAAI3oJ,EAAc,GAAKA,EAAc2oJ,EAAsB,EAErJ,eAAeh5J,GACX,OAAOA,EAASlwB,QAAU,OAASkwB,EAAS,GAAGuP,QAEnD,0BAA0B17B,GACtB,IAEIgvB,EAFAkxJ,EAAc5iL,KAAK2gL,gBAAgBj+K,GACnC4sB,EAAiB,eAAE5sB,GAOvB,OAJIgvB,EADA,SAAWkxJ,EACHtzJ,EAAeoF,QAAQ,IAAIrJ,OAAO,GAAW,UAE7CiE,EAAesC,WAAWwR,IAAI,IAAI/X,OAAO,KAAuByC,QAErE4D,EAEX,sBACI,IAAIrB,EACJ,OAAO,QAAUA,EAAKrwB,KAAK0qE,iBAAc,IAAWr6C,OAAK,EAASA,EAAGpD,UAEzE,oBACI,OAAOjtB,KAAK8uB,OAAO,8BAEvB,iCAAiC+M,EAAUqD,GACvC,GAAIl/B,KAAKq7K,sBAAuB,CAC5B,IAAIgQ,EAAarrL,KAAKq7K,sBAAsBx/I,WAAaA,GAAY77B,KAAKq7K,sBAAsBn8I,cAAgBA,EAEhH,OADAl/B,KAAKq7K,sBAAwB,KACtBgQ,GAIf,wBACI,IAAItlI,EAAiB/lD,KAAKgoC,gBACtBsoB,EAAkBtwD,KAAKs/K,qBACvBnxH,EAAepI,EAAevkC,QAC9B0mK,EAAmB/5H,EAAaxvD,OAASwvD,EAAaxvD,OAAS,GAAK,EACpEizD,EAAiB7L,EAAe8L,oBAChCq2H,GAAoB,GAAK53H,EAAkB43H,GAC3CloL,KAAK0lL,mBAAmBwC,EAAmBt2H,IAIhD,IAAI05H,GAA2B,CAClCp+I,eAAgB,KAAM,CAClBm/H,6BAA6B,EAC7Bh/J,mBAAoB,CAChB+K,SAAS,EACT2N,eAAgB,YAChBC,kBAAmB,OACnBF,gBAAgB,KAGxBiT,YAAa,CACT1rB,mBAAoB,IAExBisB,UAAW,CACPN,MAAO,CACHtN,SAAU,CACN,UAAUuD,GACN,IAAIsvF,EAAev+G,KAAKgwB,cAAc,WAAWqgG,kBAC7CtgG,EAAqB/vB,KAAKgwB,cAAc,sBACxCC,EAAoBF,EAAmBE,oBACvCsuF,IAAiBtvF,EAAE4M,UACnB9L,EAAmB8vJ,mBAEvB,IAAI0L,GAAkCnR,OAAenqJ,IAAsBjwB,KAAK8uB,OAAO,qBACnFy8J,GACAvrL,KAAKwrL,gCAAgCv8J,GAAIgB,GAE7CjwB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,gCAAgCyqB,EAAG+xC,GAC/B,IACIz0C,cAAeA,GACf0C,EAAEhD,MACN,GAAIM,EAAe,CACf,IAAIwD,EAAqB/vB,KAAKgwB,cAAc,sBACxC0B,EAAQ,eAAEnF,EAAc7pB,QACxBw8B,EAAcl/B,KAAKqxC,aAAa3f,GAChC1vB,EAAShC,KAAKgwB,cAAc,WAAWiP,oBAAoBC,GAC3Db,EAAMr+B,KAAKgwB,cAAc,QAAQxO,QAAQyN,EAAE4M,UAC/C,GAAI9L,EAAmBu5J,gBAAgBjrJ,EAAKr8B,IAAWg/D,EAAO,CAC1D,IAAIk4E,EAAY,eAAY3sH,EAAe,CACvCmP,cAAenP,EAAc7pB,SAEjCqtB,EAAmB8tJ,qBAAqB3kC,MAIpD,iBAAiBrnG,GACb,IACInjB,cAAeA,EACfowI,gBAAiBA,GACjB,OAASjtH,QAAU,IAAWA,EAASA,EAAS,GAChD9hB,EAAqB/vB,KAAKgwB,cAAc,sBACxC47C,EAAmB5rE,KAAKitB,UACxB2+C,IAAqB,gBAAQA,IAC7BA,EAAiB9+C,KAAK,WAAY,MAEtCgyI,GAAmB/uI,EAAmB07J,wBACtC,IAAI5vJ,EAAW9L,EAAmBuvJ,uBAC7B,eAAUzjJ,IAAaA,EAAW,KACnCA,EAAW,GAEf,IAAI2N,EAAexpC,KAAK2qC,gBAAgB9O,GACpC9L,EAAmBE,sBAAwB,OAASuZ,QAAgB,IAAWA,OAAe,EAASA,EAAa7qC,SACpHqB,KAAK0rL,2BAA2BliJ,EAAc9a,IAGtD,2BAA2B8a,GACvB,IAAIzZ,EAAqB/vB,KAAKgwB,cAAc,sBACxC8O,EAAO0K,EAAaja,GAAG,GAAG+C,SAC9B,GAAI,GAAWwM,GACX/O,EAAmB0tJ,wBAAwB3+I,OACxC,CACH,IAAII,EAAcnP,EAAmB2xJ,mBAChC,eAAUxiJ,IAAgBA,EAAc,KACzCA,EAAc,GAElBl/B,KAAK2rL,2BAA2BniJ,EAActK,KAGtD,2BAA2BsK,EAActK,GACrC,IAAInP,EAAqB/vB,KAAKgwB,cAAc,sBACxC47J,EAAqBpiJ,EAAeA,EAAa7qC,QAAU,EAC3DktL,EAAqB,SAASn6J,GAC9B,IAAIo6J,EAAqB/7J,EAAmBu1J,oBAAoB5zJ,GAC5Dq6J,EAAch8J,EAAmB20J,aAAahzJ,GAClD,IAAKo6J,GAAsBC,GAAeh8J,EAAmBo2J,eAAez0J,GAGxE,OAFA3B,EAAmB0tJ,wBAAwB/rJ,GAC3C3B,EAAmB8vJ,oBACZ,GAIXnuJ,EAAQmoJ,GAA8BD,eAAepwI,EAActK,GACvE,GAAIxN,EAAM/yB,OACNktL,EAAmBn6J,OAChB,CACCk6J,GAAsB1sJ,IACtBA,EAAc0sJ,EAAqB,GAEvC,IAAK,IAAIprL,EAAI0+B,EAAa1+B,EAAIorL,IAAsBprL,EAChD,GAAIqrL,EAAmB,eAAEriJ,EAAahpC,KAClC,QAKhB,uBAAuB+a,GACnBvb,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKgsL,qBAAqBzwK,IAE9B,qBAAqBA,GACjB,IACIiuC,eAAgBA,EAChBj5C,mBAAoBA,GACpB,OAASgL,QAAU,IAAWA,EAASA,EAAS,IAEhD66C,WAAYA,EACZxvC,SAAUA,GACV,OAAS4iC,QAAkB,IAAWA,EAAiBA,EAAiB,GAC5E,IAAKjuC,IAAWhL,GAAsB6lD,GAAcxvC,EAAU,CAC1D,IAAI8H,EAAgB6rJ,GAAoBv6K,MACxCA,KAAK0nL,iBAAiB,CAClBh5J,cAAeA,EACfowI,gBAAiBl4I,MAI7B,YAAYrL,GACR,IAAIjB,EAAWta,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAEzC,OADAxE,KAAKgsL,qBAAqBzwK,GACnBjB,GAEX,kBAAkBoX,GACd,IAAIu6J,EAAiBjsL,KAAKksL,mBAAmBx6J,GACzC3B,EAAqB/vB,KAAKgwB,cAAc,sBACxC2vJ,EAA0B5vJ,GAAsBA,EAAmBovJ,wBACnE8M,GAAkBtM,GAClB3/K,KAAKmsL,6BAA6BF,GAEtCjsL,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,6BAA6BynL,GACzB,CAAC,YAAa,WAAW/0J,QAAQ1K,IAC7B,IAAI4/J,EAAqBH,EAAe7oG,iBAAiB52D,GACzDy/J,EAAe97E,mBAAmB3jF,EAASyC,IACvC,IAAIo9J,EAAmB,SAAWJ,EAAe59E,SAASvhF,KAAK,iBAC/D,GAAIu/J,EACA,OAAOD,GAAsBA,EAAmBjzJ,KAAK8yJ,EAAgBh9J,OAIjFg9J,EAAe97E,mBAAmB,YAAa,QAC/C87E,EAAe97E,mBAAmB,aAAc,QAChD,IAAIm8E,EAAoBL,EAAe33J,OAAS8kJ,IAAuB6S,EAAen9J,OAAO,mBACzFw9J,GACAL,EAAe97E,mBAAmB,QAAS,SAGnD,mBAAmBz+E,GACf,IAAIivD,EAAUjvD,EAAMnE,KAAK,kBAAkBgC,GAAG,GAC9C,OAAO,QAAcssG,kBAAkBl7C,MAInD5nD,YAAa,CACT7sB,QAAS,CACL,SAAS2vB,EAAUqD,GACf,IAAInP,EAAqB/vB,KAAKgwB,cAAc,sBAC5C,GAAID,EAAmBw8J,iCAAiC1wJ,EAAUqD,GAC9D,OAAO,EAEX,IAAIo/B,EAAgBt+D,KAAKk1B,SAAS2G,EAAUqD,GAI5C,OAHIo/B,GACAvuC,EAAmByrJ,mBAEhBl9G,GAEX,QAAQziC,GACJ,IAAI9L,EAAqB/vB,KAAKgwB,cAAc,sBACxCq5J,EAAqBt5J,EAAmBua,wBACxCtoC,EAAShC,KAAKg/B,mBAAmBC,oBAAoBoqJ,IACrDrnL,GAAUA,EAAO5D,MAAQ4B,KAAK8uB,OAAO,kBAAoBolF,KACzDnkF,EAAmBstJ,oBAEvBr9K,KAAKk1B,SAAS2G,IAElB,OAAOk1D,GACH,IAAIhhE,EAAqB/vB,KAAKgwB,cAAc,sBAG5C,OAFAD,EAAmByrJ,mBACnBzrJ,EAAmB8vJ,mBACZ7/K,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,oBAAoBq3B,GAChB,IAAI2wJ,EAA+BxsL,KAAKgwB,cAAc,sBAClD0B,EAAQ1xB,KAAKk1B,SAAS2G,GACtB+1B,EAAiB5xD,KAAKgoC,gBAAgB6pB,oBACtChlD,EAAkB2/K,EAA6BpR,qBAAqBv/I,SAAW+1B,EACnF,GAAI46H,EAA6Bv8J,qBAAuBpjB,IAAoBgvB,EAAU,CAClF,IAAIkgJ,EAAeyQ,EAA6BxQ,kBAC5C7B,GAAiB4B,KAAkBA,EAAaprJ,SAAS,MACzDe,EAAQqqJ,GAGhB,OAAOrqJ,GAEX,8BACI1xB,KAAKioH,gBAAgBzxF,KAAK,KACtB,IAAInpB,EAAqBrN,KAAKgwB,cAAc,sBAC5C3iB,EAAmBslG,kBAG3B,OACI3yG,KAAKk1B,WACLl1B,KAAKysL,8BAAgCzsL,KAAKgwB,cAAc,uBAE5D,gBACI,IAAI3iB,EAAqBrN,KAAKysL,8BAC9Bp/K,EAAmB8tK,qBAAsB,EACzC,IAAIj5K,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAEvC,OADA6I,EAAmBslG,eACZzwG,GAEX,qBACIlC,KAAKysL,8BAA8BhR,eAAgB,EACnDz7K,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,kBACI,IAAI6I,EAAqBrN,KAAKgwB,cAAc,sBACxC7V,EAASna,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACvC,GAAI2V,IAAW9M,EAAmBwvK,aAAc,CAC5C,IAAInrJ,EAAQrkB,EAAmB2uK,kBAC/B3uK,EAAmBy3K,OAAOpzJ,GAAO,GAErC,OAAOvX,IAGfpG,KAAM,CACF,mBAAmB24K,GACf,IAAIF,EAA+BxsL,KAAKgwB,cAAc,sBAClDmjD,EAAgBnzE,KAAKgwB,cAAc,iBACnC+4J,EAAsByD,EAA6BpR,qBAEvD,GADAp7K,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBukL,GAAuBA,EAAoBltJ,UAAY,EAAG,CAC1D,IAAI8wJ,EAA4BD,EAAsB3D,EAAoBltJ,UACtE8wJ,IACA5D,EAAoBltJ,UAAY8wJ,EAChCx5G,EAAc0kD,aAI1B,iBACI,IAAI31H,EAASlC,KAAKwhB,QAAQ7iB,OAAS,EAC/Bm/H,EAAoB99H,KAAK89H,oBAC7B,GAAIA,EAAmB,CACnB,IAAIlsE,EAAiB5xD,KAAK6xD,oBAC1B3vD,GAAU0vD,EAAiBksE,EAAkBwC,IAEjD,OAAOp+H,IAGf0qL,gBAAiB,CACb,uBAAuBz1J,GACnB,IACInL,SAAUA,EACVkG,OAAQA,EACRg9I,gBAAiBA,GACjB/3I,EACJn3B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BwnB,IAAa0tJ,KAAwBxK,GAAmBh9I,EAAOkzD,KAAK,CAACztD,EAAG4I,KACpE,IAAI7O,EAAQ,eAAE6O,GACd85I,GAAkB3oJ,IAAUA,EAAM5E,KAAK,WAAY,MAG3D,uBAAuB+L,GACnB,IACI7M,SAAUA,EACV0F,MAAOA,EACPw9I,gBAAiBA,GACjBr2I,EACJ74B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBwnB,IAAa0tJ,KAAwBxK,GAAmBmL,GAAkB3oJ,IAC1EA,EAAMqO,WAAW,iBCjhEzC,SAAS8sJ,GAAiBrsL,EAAGssL,EAAOp/J,EAAM6yE,GACtC,IAAI3/D,EAAI,EACR,GAAIpgC,EAAIssL,EACJ,KAAOlsJ,EAAIlT,EAAKlM,MAAM7iB,OAAQiiC,IAC1BisJ,GAAiBrsL,EAAI,EAAGssL,EAAOp/J,EAAKlM,MAAMof,GAAI2/D,GAGlD//F,IAAMssL,GACNvsF,EAAS7yE,GAIjB,SAAS7uB,GAAIkuL,EAAOxsF,GAChB,IAAI//F,EACJ,GAAI,QAASusL,EACT,OAAOA,EAAMluL,IAAI0hG,GAErB,IAAIr+F,EAAS,IAAIzD,MAAMsuL,EAAMpuL,QAC7B,IAAK6B,KAAKusL,EACN7qL,EAAO1B,GAAK+/F,EAASwsF,EAAMvsL,GAAIA,GAEnC,OAAO0B,EAGX,SAAS,GAAQqR,GACb,OAAOA,IAAMA,GAAK,KAAOA,GAAK,OAASA,QAAK,IAAWA,EAG3D,SAASy5K,GAAQC,GACb,OAAOA,IAAe,QAAYvsL,MAGtC,SAASwsL,GAAmBC,GACxB,IAAIxqL,EAAW,gBAAcwqL,EAAUxqL,UACnC2hB,IAAkB,oBAAqB6oK,IAAYA,EAAU7oK,iBAE7D2oK,WAAYA,GACZE,EACJ,GAAI,kBAAoBF,IACpBA,EAAa,QAAYA,IACpBA,GACD,MAAMG,GAAA,KAAOv1J,MAAM,QAASs1J,EAAUF,YAG9C,MAAO,CACHtqL,SAAUA,EACVsqL,WAAYA,EACZ3oK,gBAAiBA,GCzDzB,GAAS8tB,eAAe,qBAAsBk5I,ID4D/B,eAAM14J,QAAQ,CACzB,KAAKjN,GACD3lB,KAAKqtL,MAAQ1nK,EAAQ5R,KACrB/T,KAAKstL,YAAc3nK,EAAQw9E,YAAc,EACzCnjG,KAAKutL,iBAAmB1uL,GAAI8mB,EAAQ6nK,iBAAmB,GAAIN,IAC3DltL,KAAKytL,iBAAmB5uL,GAAI8mB,EAAQ+nK,iBAAmB,GAAIR,IAC3DltL,KAAK2tL,QAAU,IAEnB,YACQ3tL,KAAKutL,iBAAiB5uL,QACtBqB,KAAK4tL,iBAAiB,EAAG,CACrBpsK,MAAOxhB,KAAKqtL,QAGhBrtL,KAAKytL,iBAAiB9uL,QAAUqB,KAAKstL,YAAc,GACnDttL,KAAK6tL,iBAAiB,CAClBrsK,MAAOxhB,KAAKqtL,SAIxB,kBACI,OAAOrtL,KAAK2tL,SAEhB,WAAWG,EAAY/5K,EAAM0J,GAEzB,IADA,IAAI9e,EAASoV,EAAKyN,MAAQzN,EAAKyN,MAAM7iB,OAAS,EACrC6B,EAAI,EAAGA,EAAIstL,EAAWnvL,OAAQ6B,IACnC,GAAIwsL,GAAQc,EAAWttL,GAAGysL,YACtBxvK,EAAUjd,IAAMid,EAAUjd,IAAM,GAAK7B,OAGzC,IAAK,IAAIiiC,EAAI,EAAGA,EAAIjiC,EAAQiiC,IACxB5gC,KAAK+tL,YAAYvtL,EAAGstL,EAAWttL,GAAIid,EAAW1J,EAAKyN,MAAMof,KAIrE,iBAAiBisD,EAAO94E,GAIpB,GAHI,IAAM84E,IACN7sF,KAAK2tL,QAAU3tL,KAAKguL,MAAMhuL,KAAKutL,mBAE/B1gG,IAAU7sF,KAAKstL,YACfttL,KAAKiuL,WAAWjuL,KAAKutL,iBAAkBx5K,EAAM/T,KAAK2tL,cAElD,IAAK,IAAIntL,EAAI,EAAGA,EAAIuT,EAAKyN,MAAM7iB,OAAQ6B,IACnCR,KAAK4tL,iBAAiB/gG,EAAQ,EAAG94E,EAAKyN,MAAMhhB,IAGhD,IAAMqsF,IACN7sF,KAAK2tL,QAAU3tL,KAAKkuL,UAAUluL,KAAKutL,iBAAkBvtL,KAAK2tL,WAGlE,iBAAiBjgK,GACb,IAAIygK,EAAWnuL,KAAKstL,YAChBxnC,EAAeqoC,EAAW,EAC1BC,EAASpuL,KAAKguL,MAAM95J,KAAKl0B,KAAMA,KAAKytL,kBACpCY,EAASruL,KAAKiuL,WAAW/5J,KAAKl0B,KAAMA,KAAKytL,kBACzCa,EAAatuL,KAAKkuL,UAAUh6J,KAAKl0B,KAAMA,KAAKytL,kBAEhD,SAASR,EAAWtoG,GAChBA,EAAKmpG,WAAaM,EAAOtoC,EAAe,GACpCA,IAAiBqoC,EACjBE,EAAO1pG,EAAMA,EAAKmpG,YAElBjB,GAAiB/mC,EAAcqoC,EAAUxpG,EAAM4pG,IAC3CF,EAAOE,EAAW5pG,EAAKmpG,cAG/BnpG,EAAKmpG,WAAaQ,EAAW3pG,EAAKmpG,YAEtC,QAAShoC,EAAe,EACpB+mC,GAAiB,EAAG/mC,EAAcp4H,EAAMu/J,IAGhDe,MAAO,CAACF,EAAYx3K,IAAezX,GAAIivL,EAAYX,IAC/C,IACIF,WAAYA,GACZE,EACAqB,EAAO,SAAUvB,EAAa,eAAWA,EAAWuB,MAAQvB,EAAWuB,KAAKl4K,GAAc22K,EAAWuB,KAAOC,IAChH,OAAOD,IAEX,YAAYE,EAAgBvB,EAAW3rE,EAASz2F,GAC5C,IAAI/sB,EAAQmvL,EAAUxqL,SAASooB,IAE3BkiK,WAAYA,GACZE,GAEA7oK,gBAAiBA,GACjB6oK,EACA7oK,GAAmB,GAAQtmB,KAG3BwjH,EAAQktE,KAAoBltE,EAAQktE,GACpCltE,EAAQktE,GAAkB1wL,EAE1BwjH,EAAQktE,GAAkBzB,EAAW0B,KAAKntE,EAAQktE,GAAiB1wL,KAG3EkwL,UAAW,CAACJ,EAAYtsE,IAAY3iH,GAAIivL,EAAY,CAACX,EAAWlrL,KAC5D,IAAI2sL,EAAMzB,EAAUF,WAAW4B,SAC/B,OAAOD,EAAMA,EAAIptE,EAAQv/G,IAAUu/G,EAAQv/G,OEhI/C6sL,GAA8B,2BAC9BC,GAA8B,2BAC9BC,GAA8B,2BAC9B,GAA8B,2BAC9BC,GAAoC,iCACpCC,GAAwB,qBACxBC,GAA4B,gBAC5BC,GAAiC,cACjCC,GAAiC,cAC1BC,GAAoB,SAASjzJ,EAAM1W,GAC1C,IAAI+L,EAAQ,eAAE2K,IAEVr6B,OAAQA,GACR2jB,GAEAu6C,aAAcA,GACdv6C,EACA4pK,EAAgB,GACpB,IAAKvtL,EAAOwwB,SAAW0tC,EAAc,CACjC,IAAK,IAAI1/D,EAAI,EAAGA,EAAI0/D,EAAavhE,OAAQ6B,IAAK,CAC1C,IAAIipB,EAAcy2C,EAAa1/D,GAC/B+uL,EAAc9vL,KAAK,eAAE,SAASgyB,IAAI,YAAahI,EAAYnV,WAAatS,EAAOsS,WAAWoY,SAASqiK,IAA6BriK,SAASsiK,IAA6BtiK,SAASjD,EAAYhW,UAAU6iB,YAAY24J,GAAmC,UAAYtpK,EAAQiY,SAAS9pB,KAAK,GAAS07K,eAAe/lK,EAAa9D,EAAQ4E,gBAEvUmH,EAAMK,OAAOw9J,KAGjBE,GAAwB,SAAS58J,EAAMlN,GACvC,IAAI4E,EAAesI,EAAK/D,OAAO,kBAAoB,GACnD,MAAO,CACHtE,UAAW7E,EAAQ0Y,IACnB6hC,aAAcv6C,EAAQ0Y,IAAI2yB,aAAarrC,EAAQuZ,aAC/C3U,aAAcA,IAGlBmlK,GAAqB,SAAS37K,GAC9B,OAAOA,EAAKvC,SAAWuC,EAAK+5K,YAAc,IAE1C1jK,GAA0B,SAASyI,GACnC,OAAOA,EAAK/D,OAAO,oCAEZ6gK,GAAa,GAAY/8J,QAAQ,CACxC,WACI,OAAO5yB,KAAKgoC,gBAAgB4nJ,eAEhC,gBAAgBjqK,GACZ,OAAO,OAAAwH,EAAA,MAAOntB,KAAKk1B,SAASvP,GAAU8pK,GAAsBzvL,KAAM2lB,KAEtE,mBAAmB+L,EAAO/L,GACtB2pK,GAAkB59J,EAAO/L,GACzB3lB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE9B,YAAY+W,GACR,IAAIs0K,GAAuB,EACvBrlK,EAAYxqB,KAAKgoC,gBAAgB4nJ,cAAc,GAC9Cr0K,GAAWA,EAAO+oB,gBACnBtkC,KAAKitB,UAAUkH,QAAQzH,SAASoiK,IAA6Bx4J,YAAY44J,IAAwBlvL,KAAK8uB,OAAO,oBAC7G+gK,GAAuB,GAEvBrlK,GAAaA,EAAUwmC,cAAgBxmC,EAAUwmC,aAAaryD,SAC9DqB,KAAKgwC,eAAehwC,KAAKiwC,aAAa,CAClC10B,OAAQA,IACRA,GACJs0K,GAAwB7vL,KAAK8vL,8BAGrC,eAAeC,EAAWx0K,GACtB,OAAIA,GAAU,WAAaA,EAAO0oB,YAAc1oB,EAAO+oB,cAC5CtkC,KAAKmpC,qBAAqB3S,KAAK,KAClC,IAAIsI,EAAO9+B,KAAK6pC,kBAAkBtc,KAAK,WACnCyiK,EAAUD,EAAUxiK,KAAK,WAC7BvtB,KAAK6iE,aAAa/jC,EAAMkxJ,EAASz0K,EAAO+oB,cAAc,MAGvDtkC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,UAAUyqB,GACN,IAAIlE,EAAO/qB,KAAKgoC,gBAAgB4nJ,cAAc3gK,EAAE4M,WAAa,GAC7D77B,KAAK+tB,cAAc,aAAc,OAAAZ,EAAA,MAAO,GAAI8B,EAAGlE,KAEnD,qBAAqBkE,GACjB,IACIuY,YAAaA,GACbvY,EACAA,EAAEsV,YAAYx3B,WAGdy6B,EAAY11B,OAAS01B,EAAYtJ,eACjCl+B,KAAKk1B,SAASjG,IAGtB,mBAAmBA,GACf,IACIgV,WAAYA,GACZhV,EACA,WAAaA,EAAEgV,YAAchV,EAAE1e,mBAC1B0e,EAAEghK,mBAEIhhK,EAAEghK,mBAAmBtxL,QAC5BqB,KAAKu1B,OAAO,KAAM,CACd0O,WAAY,SACZK,cAAe,CAACrV,EAAEghK,sBAJtBjwL,KAAKu1B,SAOF,YAAc0O,GAAc,WAAaA,GAAc,YAAcA,GAC5EjkC,KAAKu1B,UAGb,WAAW8I,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIrC,OAHI65B,EAAIT,UAAYyxJ,IAChBvwJ,EAAKpS,SAASyiK,IAEXrwJ,GAEX,YACI,OAAO9+B,KAAK0xC,oBAEhB,YACI,QAAS1xC,KAAKgoC,gBAAgB4nJ,cAAcjxL,UAGhDuxL,GAAmC,CACnC,OACIlwL,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKutL,iBAAmB,GACxBvtL,KAAKmwL,eAAiB,QAE1B,cAAcC,GACV,IAAK5rL,UAAU7F,OACX,OAAOqB,KAAKmwL,eAEZ,eAAWC,KACXpwL,KAAKmwL,eAAiBC,IAG9B,QAAQ5+K,GACJ,IAAKhN,UAAU7F,OACX,OAAOqB,KAAKmwL,iBAEhBnwL,KAAKmwL,eAAiB,WAClB,OAAO3+K,IAGf,kBACI,OAAOxR,KAAKutL,kBAEhB,mCACI,IAAI/7K,EAAUxR,KAAKwR,UACf6+K,EAAmB7+K,GAAWA,EAAQ8+K,eAC1C,OAAOD,GAAoBA,EAAiB1xL,QAEhD,wBAAwB6iB,EAAO69E,EAAQ8C,GACnC,IAAIouF,EAAe,QAAYnpF,gBAAgB,gBAAU5lF,GAAQ69E,GAAQ51D,UACrEvnC,EAAS,GAmBb,OAlBAigG,EAAMjrE,QAAQqkB,KACR,SAASi1I,EAAanxF,EAAQppC,EAAYsqC,EAAUhlD,GAClDA,EAAOA,GAAQ,GACf,IAAK,IAAI/6C,EAAI,EAAGA,EAAI6+F,EAAO1gG,OAAQ6B,IAC/B+6C,EAAK97C,KAAK4/F,EAAO7+F,GAAGutD,KAChB,IAAMkI,EACNsqC,EAAShlD,EAAM8jD,EAAO7+F,GAAGghB,OAEzBgvK,EAAanxF,EAAO7+F,GAAGghB,MAAOy0C,EAAa,EAAGsqC,EAAUhlD,GAE5DA,EAAKylD,MATX,CAWAuvF,EAAclxF,EAAO1gG,OAAQ,CAAC8xL,EAAWjvK,KACnC+5B,EAAKl9C,aAAeoyL,EAAUpyL,aAC9B6D,EAASA,EAAOmpB,OAAO7J,QAI5Btf,IAGXwuL,GAAyC,WACzC,IAAIC,EAAsB,SAAS99J,EAAMrhB,EAASuC,EAAMovF,GACpD,IAAIytF,EACJ,GAAIxmK,GAAwByI,GAAO,CAC/B,IAAIurC,EAAoBvrC,EAAK7C,cAAc,WAC3C,GAAIouC,EAAmB,CACnB,IAAIyyH,EAAezyH,EAAkB0yH,kBACjCD,EAAalyL,SACboV,EAAO,SAASg9K,EAAeh9K,EAAM88K,EAAc1tF,GAC/C,OAAIA,EACO4tF,EAAeh9K,EAAM88K,EAAahyL,IAAIksB,IAAQ,CACjDvJ,MAAO,CAACuJ,KACRo4E,EAAa,IAEdpvF,EAAKsX,OAAOwlK,GANhB,CAOL98K,EAAM88K,EAAc1tF,IAE1B,IAAI6tF,EAAc5yH,EAAkB6yH,iBAChCD,EAAYryL,SACZoV,EAAO,SAASm9K,EAAiBn9K,EAAMi9K,EAAa7tF,GAChD,OAAIA,EACOpvF,EAAKlV,IAAIkV,IACZ,IAAIo9K,EAAc,GACdC,EAAeF,EAAiBn9K,EAAKyN,OAAS,GAAIwvK,EAAa7tF,EAAa,GAOhF,OANAv+F,OAAOC,eAAessL,EAAa,aAAc,CAC7Cx9J,IAAK,IAAM5f,EAAK+5K,WAChBuD,IAAKrzL,IACD+V,EAAK+5K,WAAa9vL,KAGnB,OAAAmvB,EAAA,MAAOgkK,EAAap9K,EAAM,CAC7ByN,MAAO4vK,MAIZr9K,EAAKzP,OAAOyP,GAAQi9K,EAAYzuL,QAAQwR,GAAQ,GAhBpD,CAiBLA,EAAMi9K,EAAa7tF,KAajC,OATI3xF,IACAo/K,EAAa,IAAI,GAAoB,CACjCpD,gBAAiBh8K,EAAQg8K,gBACzBE,gBAAiBl8K,EAAQk8K,gBACzB35K,KAAMA,EACNovF,WAAYA,IAEhBytF,EAAWl/E,aAERk/E,EAAaA,EAAWpD,kBAAoB,IAEnD8D,EAAsB,SAASv9K,EAAMkU,EAAOzW,GAC5C,IAAI8+K,EAAe9+K,GAAWA,EAAQ8+K,cAAgB9+K,EAAQ8+K,eAC9D,OAAIA,GAAgBA,EAAa3xL,OACtB,SAAS4yL,EAAwB/vK,EAAO69E,EAAQixF,GACnD,IAAK9uK,IAAU69E,EAAO1gG,OAClB,OAAO6iB,EAEX,IAEI2lF,EAFAl/E,EAAQo3E,EAAO,GACfuH,EAAQ0pF,EAAa,GAsBzB,OApBIroK,GAAS2+E,GAASA,EAAMjoG,SACxBwoG,EAAQ,gBAAU3lF,GAClB,eAAKolF,GAAO,SAAU3kG,GAEdklG,EADA,IAAMllG,EACEklG,EAAMqqF,OAAOxxL,KAAK2C,SAAU3C,KAAKkkD,MAEjCijD,EAAMsqF,OAAOzxL,KAAK2C,SAAU3C,KAAKkkD,SAGjDijD,EAAME,YAAY7wE,KAAKk7J,IACnBlwK,EAAQkwK,KAGhBryF,EAASA,EAAO78F,MAAM,GACtB8tL,EAAeA,EAAa9tL,MAAM,GAC9B68F,EAAO1gG,QAAU2xL,EAAa3xL,QAC9B,eAAK6iB,GAAO,WACRxhB,KAAKwhB,MAAQ+vK,EAAwBvxL,KAAKwhB,MAAO69E,EAAQixF,MAG1D9uK,EA3BJ,CA4BLzN,EAAMkU,EAAOqoK,GAEZv8K,GAEX,MAAO,CACH,2BAA2B4R,GACvB,IAAInU,EAAUxR,KAAKwR,UACfA,IACImU,EAAQtV,iBAAiBmB,QACpBmU,EAAQymC,kBAAmBzmC,EAAQwmC,iBAAiBE,eACjD1mC,EAAQwmC,iBAAiBlkC,QACrBtC,EAAQtV,iBAAiBtD,SACzB4Y,EAAQwmC,iBAAiB63C,aAAexyF,EAAQk8K,gBACzCl8K,EAAQk8K,gBAAgB/uL,SAC/BgnB,EAAQtV,iBAAiBD,QAAS,IAG1CuV,EAAQwmC,iBAAiBwlI,aAAengL,EAAQg8K,kBAE7Ch8K,EAAQg8K,gBAAgB7uL,QAAU6S,EAAQk8K,gBAAgB/uL,QAAUgnB,EAAQwmC,iBAAiBlkC,SACpGtC,EAAQtV,iBAAiBD,QAAS,IAG1CpQ,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1B,IAAIm3D,EAAch2C,EAAQ0xC,WAAW/K,MACjCqP,GAAeA,EAAYnqD,UAAYmU,EAAQymC,kBAC/CzmC,EAAQwmC,iBAAiBwlI,kBAAe,IAGhD,sBAAsBhsK,GAClB,IAAI0K,EAAIub,EACJyzD,EAAS,gBAAqB15E,EAAQwmC,iBAAiBlkC,OAAStC,EAAQgvC,YAAY1sC,OAAS,IAC7F5X,EAAmBsV,EAAQtV,kBAAoB,GAC/CmB,EAAUxR,KAAKowL,eAALpwL,CAAqBqQ,GACnC,IAAKsV,EAAQymC,iBAAmBzmC,EAAQwmC,iBAAiBE,aACrD,GAAIh8C,EAAiBmB,SACZnB,EAAiBD,QAAUivF,EAAO1gG,QAAU6S,IACxCnB,EAAiBtD,UAClB4jL,EAAoB3wL,KAAM,CACtB0tL,gBAAiBl8K,EAAQk8K,iBAC1B/nK,EAAQ5R,KAAMsrF,EAAO1gG,QAE5BgnB,EAAQ5R,KAAOu9K,EAAoB3rK,EAAQ5R,KAAMsrF,EAAQ7tF,SAE1D,IAAKnB,EAAiBD,QAAUoB,EAAS,CAC5C,IAAIg4C,EAAiB7jC,EAAQ6jC,gBAAkB,GAC3CooI,EAAgBhtL,OAAO+qB,KAAK65B,GAAgB7P,KAAKv7C,GAAQorD,EAAeprD,IAC5E,IAAKwzL,KAAmB,QAAUhmJ,EAAK,QAAUvb,EAAK1K,EAAQ0xC,kBAAe,IAAWhnC,OAAK,EAASA,EAAGi8B,aAAU,IAAW1gB,OAAK,EAASA,EAAGp6B,UAAY6tF,EAAO1gG,QAAU6S,EAAQk8K,gBAAgB/uL,OAAQ,CACxM,IAAI6uL,EAAkBmD,EAAoB3wL,KAAMwR,EAASmU,EAAQ5R,KAAMsrF,EAAO1gG,QAC9EgnB,EAAQ2mC,MAAQ,eAAc3mC,EAAQ2mC,OAAS3mC,EAAQ2mC,MAAQ,GAC/D3mC,EAAQ2mC,MAAM96C,QAAUg8K,EACpB7nK,EAAQ0xC,aACR1xC,EAAQ0xC,WAAW/K,MAAQ3mC,EAAQ2mC,OAG3C3mC,EAAQ5R,KAAOu9K,EAAoB3rK,EAAQ5R,KAAMsrF,EAAQ7tF,GAG5DmU,EAAQymC,kBACTpsD,KAAKutL,iBAAmB5nK,EAAQ2mC,OAAS3mC,EAAQ2mC,MAAM96C,SAAWxR,KAAKutL,kBAE3EvtL,KAAKk1B,SAASvP,KA/ImB,GAmJ7C,GAAkBwH,OAAO+iK,IACzB,GAAkB/iK,OAAOujK,IACzB,GAASt+I,eAAe,UAAW,CAC/BlF,eAAgB,KAAM,CAClB17B,QAAS,CACL2Y,gBAAY,EACZE,gBAAY,EACZH,4BAAwB,EACxB5F,iBAAiB,EACjB8F,yBAAyB,EACzBpR,MAAO,CACH6R,IAAK,OAAoB9sB,OAAO,yBAChC+sB,eAAgB,OAAoB/sB,OAAO,oCAC3CwpB,IAAK,OAAoBxpB,OAAO,yBAChC6sB,eAAgB,OAAoB7sB,OAAO,oCAC3CupB,IAAK,OAAoBvpB,OAAO,yBAChC4sB,eAAgB,OAAoB5sB,OAAO,oCAC3C0sB,IAAK,OAAoB1sB,OAAO,yBAChC2sB,eAAgB,OAAoB3sB,OAAO,oCAC3C2C,MAAO,OAAoB3C,OAAO,6BAG1CsT,4BAAwB,IAE5B2nB,MAAO,CACHmwC,WAAYwmH,IAEhBr2J,UAAW,CACPP,YAAa,CACThlB,KAAM,CACF89K,cAAe7vL,GAAUA,KAAY,eAAUA,EAAOsU,aAAetU,EAAO+U,iBAC5E,wBAEI,IADA,IAAIoT,EAAanqB,KAAK8uB,OAAO,uBAAyB,GAC7CtuB,EAAI,EAAGA,EAAI2pB,EAAWxrB,OAAQ6B,IAAK,CACxC,IAAI8pB,EAAYH,EAAW3pB,GACvBwB,EAAShC,KAAKg/B,mBAAmBoM,aAAa9gB,EAAUlG,cAAgBkG,EAAUtoB,QACtF,GAAIsoB,EAAUjG,mBAAqBrkB,KAAK6xL,cAAc7vL,GAClD,OAAO,EAGf,OAAO,GAEX,mBAAmBwf,EAAOy0C,EAAYtwC,GAClC,IAAI5R,EAAO4R,GAAWA,EAAQ5R,KAC1B7R,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAevC,OAdImhB,SACI,IAAWA,EAAQmsK,uBACnBnsK,EAAQmsK,qBAAuB9xL,KAAK+xL,yBAEpCh+K,GAAQA,EAAKyN,OAASmE,EAAQmsK,uBAAyBnsK,EAAQ8jF,2BAA6B11F,EAAKo9C,2BACjGjvD,EAAOzC,KAAK,CACRm+B,QAASwxJ,GACTrhI,IAAKpoC,EAAQ41B,KAAK/4C,QAClBuR,KAAMA,EACNuC,WAAYqP,EAAQ41B,KAAK58C,OAAS,EAClCiF,OAAQ,MAIb1B,GAEX,kBAAkBooB,EAAW3E,GACzB,IAAIkN,EAAO7yB,KAIX,GAHK2lB,EAAQqsK,oBACTrsK,EAAQqsK,kBAAoBn/J,EAAK/D,OAAO,uBAAyB,IAEjE,UAAYxE,EAAUsT,QAAS,CAC/B,IAAIghC,GAAoB,EACpBqzH,GAAyB,EAC7B,eAAKtsK,EAAQoZ,gBAAgB,SAAU1nB,GACnC,IAAI0pC,EAAap7B,EAAQoZ,eAAe1nB,EAAe,GACnDiT,EAAUhU,aAAetW,KAAKsW,aAC9BsoD,EAAmB5+D,KAAKiC,OAExBoV,EAAe,GAAK,WAAa0pC,EAAWvuB,SAAW,WAAaxyB,KAAKwyB,UACzEy/J,EAAwBjyL,KAAKiC,UAGrCqoB,EAAU0mC,aAAehxD,KAAKkyL,uBAAuBvsK,EAAQqsK,kBAAmBtC,GAAmBplK,EAAUvW,MAAO4R,EAAQoZ,eAAgB,CAACtV,EAAaznB,IAClJynB,EAAYpF,mBACJ,EAERoF,EAAYvF,eAAiBliB,IAAW,eAAUA,EAAOsU,aAAetU,EAAOC,QAAUgwL,EAClFjwL,EAAOC,MAEX28D,GACR,GAKP,OAHIt0C,EAAUsT,UAAYwxJ,KACtB9kK,EAAU0mC,aAAehxD,KAAKkyL,uBAAuBvsK,EAAQqsK,kBAAmBtC,GAAmBplK,EAAUvW,MAAO4R,EAAQoZ,eAAgB,CAACtV,EAAaznB,IAAWynB,EAAYpF,mBAAqBwO,EAAKg/J,cAAc7vL,GAAUA,EAAOC,OAAS,IAEhPqoB,GAEX,uBAAuB41C,EAAc4tH,EAAY/uJ,EAAgBozJ,EAA4B5yJ,GACzF,IAAI1M,EAAO7yB,KACPgxD,EAAe,GACfohI,EAAwB,GAgC5B,OA/BA,eAAKlyH,EAAc,CAACmyH,EAAc5oK,KAC9B,IAAIznB,EAAS6wB,EAAKmM,mBAAmBoM,aAAa3hB,EAAYznB,QAC1DoiB,EAAeqF,EAAYrF,cAAgByO,EAAKmM,mBAAmBoM,aAAa3hB,EAAYrF,eAAiBpiB,EAC7Gk9B,EAAcizJ,EAA2B1oK,EAAarF,GAC1D,GAAI8a,GAAe,EAAG,CACbkzJ,EAAsBlzJ,KACvBkzJ,EAAsBlzJ,GAAe,IAEzC,IAEQ1a,EAFJ2oK,EAAYW,EAAWuE,GAC3B,GAAIlF,IAAcA,EAEV,eAAU1jK,EAAYjF,aACtBA,EAAciF,EAAYjF,YACnB,UAAYiF,EAAYlF,cAC/BC,EAAc,GAASogC,oBAAoB5iD,GAAUA,EAAOF,WAEhEswL,EAAsBlzJ,GAAaz/B,KAAK,OAAA0tB,EAAA,MAAO,GAAI1D,EAAa,CAC5DzrB,MAAO,eAASmvL,IAAcnrL,GAAUA,EAAO0zC,iBAAmB1zC,EAAO0zC,iBAAiBy3I,GAAaA,EACvG3oK,YAAaA,EACb8tK,cAAetwL,GAAUA,EAAOC,QAAUi9B,EAAcl9B,EAAOwT,aAAU,QAKpF,eAAc48K,IACfrzJ,EAAe7H,QAAQ,CAACl1B,EAAQqV,KAC5B,IAAI0pC,EAAahiB,EAAe1nB,EAAe,GAC3C6nB,GAAcK,GAAe,YAAc,OAASwhB,QAAc,IAAWA,OAAa,EAASA,EAAWvuB,UAAY,WAAaxwB,EAAOwwB,QAAsFxwB,EAAOC,MAAlF,OAAS8+C,QAAc,IAAWA,OAAa,EAASA,EAAW9+C,MAChO+uD,EAAavxD,KAAK2yL,EAAsBlzJ,IAAgB,MAGzD8xB,GAEX,iBAAiBuhI,EAAmB/E,GAChC,IAAI36J,EAAO7yB,KACPgxB,EAAoB6B,EAAKmM,mBAC7B,OAAOnM,EAAKq/J,uBAAuBK,EAAmB/E,EAAiBx8J,EAAkBiO,oBAAqB,CAACxV,EAAaznB,IAAW6wB,EAAKg/J,cAAc7vL,GAAUA,EAAOC,OAAS,IAExL,iBAAiBsZ,GACb,IAAIy1C,EACAjlD,EAAa/L,KAAK4+C,YAClBgxI,EAAc5vL,KAAKwyL,aACnBC,EAAkB7C,GAAeA,EAAY,IAAMA,EAAY,GAAG5+H,aAClEuhI,EAAoBvyL,KAAK8uB,OAAO,sBAEpC,GADA9uB,KAAKwyL,aAAe,GAChBzmL,GAAcwmL,GAAqBA,EAAkB5zL,OAAQ,CAC7D,IAAI6uL,EAAkBzhL,EAAWyhL,kBACjCx8H,EAAehxD,KAAK0yL,iBAAiBH,EAAmB/E,GACpDjyK,GAAUA,EAAOhL,oBAAsBkiL,IACvCl3K,EAAO00K,mBAAqBj/H,EAAanyD,IAAI,CAAC8zL,EAAa1wL,IACnDilC,KAAKC,UAAUwrJ,KAAiBzrJ,KAAKC,UAAUsrJ,EAAgBxwL,IACxDA,GAEH,GACTqC,OAAOrC,GAASA,GAAS,IAE5B+uD,EAAaryD,QACbqB,KAAKwyL,aAAa/yL,KAAK,CACnBm+B,QAASyxJ,GACTr+H,aAAcA,IAI1BhxD,KAAKk1B,SAAS3Z,IAElB,4BAA4B5Y,GACxB,GAAIynB,GAAwBpqB,MAAO,CAC/B,IAAIo+D,EAAoBp+D,KAAKgwB,cAAc,WAC3C,GAAIouC,EACA,OAAO,SAASrqD,GAEZ,OADAA,EAAOqqD,EAAkBw0H,eAAe7+K,GACjCpR,EAASoR,IAI5B,OAAOpR,GAEX,0BAA0BA,EAAUsqL,GAEhC,OADAtqL,EAAW3C,KAAK6yL,4BAA4BlwL,GACxC,QAAUsqL,GAAc,QAAUA,EAC3B,SAASl5K,GACZ,IAAI/V,EAAQ2E,EAASoR,GACrB,OAAO,eAAU/V,GAAS+F,OAAO/F,GAASA,GAG3C2E,GAEX,eAAeu9D,EAAc7vD,GACzB,IAAIwiB,EAAO7yB,KACPgxB,EAAoB6B,EAAK7C,cAAc,WACvC9F,EAAyB2I,EAAK/D,OAAO,kCACrCgkK,EAAwBjgK,EAAK/D,OAAO,2BACxC,OAAO,eAAIoxC,GAAgB,GAAIz2C,IAC3B,IAAIznB,EAASgvB,EAAkBoa,aAAa3hB,EAAYznB,QACpDoT,EAAqBpT,GAAUA,EAAOoT,mBAAqBpT,EAAOoT,mBAAmB8e,KAAKlyB,GAAU,gBAAcA,EAASA,EAAOY,UAAY6mB,EAAYznB,QAC1JirL,EAAaxjK,EAAYlF,aAAe,QACxCD,EAAkB,eAAUmF,EAAYnF,iBAAmBmF,EAAYnF,gBAAkBwuK,EAC7F,GAAIziL,EACA,MAAO,CACH1N,SAAU8mB,EAAYznB,OACtBuiB,YAAa0oK,GAGrB,IAAItqL,EAAWkwB,EAAKkgK,0BAA0B39K,EAAoB63K,GAClE,GAAI,WAAaA,EAAY,CACpB/iK,IACD,QAAOu9B,IAAI,SACXv9B,EAAyB,cAE7B,IAAIvE,EAAU,CACVsL,UAAW4B,EAAK5B,UAChBtd,KAAM8V,EAAY9V,MAEtBuW,EAAuBvE,GACvBA,EAAQqtK,eAAiB,YACzB/F,EAAa,CACT,KAAK32K,GAMD,OALAqP,EAAQqtK,eAAiB,QACzBrtK,EAAQstK,gBAAa,EACrBttK,EAAQrP,WAAaA,SACdqP,EAAQ3nB,MACfksB,EAAuBvE,GAChBA,EAAQstK,YAEnB,KAAKA,EAAYj1L,GAKb,OAJA2nB,EAAQqtK,eAAiB,YACzBrtK,EAAQstK,WAAaA,EACrBttK,EAAQ3nB,MAAQA,EAChBksB,EAAuBvE,GAChBA,EAAQstK,YAEnB,SAASA,GAKL,OAJAttK,EAAQqtK,eAAiB,WACzBrtK,EAAQstK,WAAaA,SACdttK,EAAQ3nB,MACfksB,EAAuBvE,GAChBA,EAAQstK,aAI3B,MAAO,CACHtwL,SAAUA,EACVsqL,WAAYA,EACZ3oK,gBAAiBA,MAI7B,aAAagsK,EAAc9mK,EAAa7mB,EAAUuU,GAC9C,GAAIsS,EAAa,CACb,IACIlT,WAAYA,GACZkT,EACJtS,EAAYA,GAAasS,EAAYtS,UACjC,eAAUZ,KACVg6K,EAAah6K,GAAcg6K,EAAah6K,IAAe,GACvDg6K,EAAah6K,GAAY7W,KAAK,CAC1BkD,SAAUA,EACVuhD,KAAM,SAAWhtC,OAKjC,iBAAiBgpD,EAAcvsD,GAC3B,IAAIu/K,GAAoB,EAiBxB,OAhBI,eAAUv/K,IACV,eAAKusD,GAAgB,IAAI,SAAUj+D,GAC/B,GAAIjC,KAAK2T,OAASA,GAAQ1R,IAAU0R,GAAQ3T,KAAKukB,cAAgB5Q,GAAQ3T,KAAKgC,SAAW2R,GAAQ,SAAS8V,GAClG,IACIlF,YAAaA,GACbkF,GAEAznB,OAAQA,GACRynB,EACJ,OAAOlF,GAAeviB,GAAU,GAAGqpB,OAAO9G,EAAa,KAAK8G,OAAOrpB,GAPsB,CAQ3FhC,QAAU2T,EAEZ,OADAu/K,EAAmBjxL,GACZ,KAIZixL,GAEX,wBAAwB7hL,EAAwB8hL,GAC5C,IAAItgK,EAAO7yB,KACPgxB,EAAoB6B,EAAKmM,mBACzByY,EAAezmB,EAAkBsmB,kBACjCg5I,EAAe,GACnB,GAAK6C,GAAsBA,EAAkBx0L,OA0B7C,OAvBA,eAAK0S,GAA0B,IAAI,WAC/B,IACI6F,UAAWA,GACXlX,MAEAwpB,YAAaA,GACbxpB,KACAkzL,EAAmBrgK,EAAKugK,iBAAiBD,EAAmBnzL,KAAKypB,aACrE,KAAIypK,EAAmB,GAAvB,CAGA,IAAIvwL,EAAW,SAASoR,GACpB,OAAO27K,GAAmB37K,GAAMm/K,IAEhC,eAAU1pK,IACVA,EAAcwH,EAAkBoa,aAAa5hB,GAC7CqJ,EAAKwgK,aAAa/C,EAAc9mK,EAAa7mB,EAAUuU,IAEvD,eAAKugC,EAAc,CAACnhC,EAAYkT,KAC5BqJ,EAAKwgK,aAAa/C,EAAc9mK,EAAa7mB,EAAUuU,SAI5Do5K,GAEX,6BAA6BvkL,EAAYsE,GACrC,IAAIwiB,EAAO7yB,KACPyzD,EAAoBzzD,KAAKk1B,SAASnpB,EAAYsE,GAElD,OADAojD,EAAkB28H,cAAckD,GAA2BzgK,EAAK0gK,mBAAmBD,GAA2BjjL,IACvGojD,GAEX,mBAAmBpjD,GACf,IAAIwiB,EAAO7yB,KACPmzL,EAAoBtgK,EAAK/D,OAAO,sBAChC0kK,EAAoB3gK,EAAK/D,OAAO,sBAChCzd,EAAyBwhB,EAAK/D,OAAO,0BACrC4+J,EAAkB76J,EAAK4gK,eAAeN,EAAmB9iL,GAAoBA,EAAiBtD,UAAYsD,EAAiBmB,SAC3Hg8K,EAAkB36J,EAAK4gK,eAAeD,EAAmBnjL,GAAoBA,EAAiBmB,SAClG,GAAIk8K,EAAgB/uL,QAAU6uL,EAAgB7uL,OAC1C,MAAO,CACH+uL,gBAAiBA,EACjBF,gBAAiBA,EACjB8C,aAAc,WACV,OAAOz9J,EAAK6gK,wBAAwBriL,EAAwB8hL,MAM5E,gBACI,IAAIQ,EAAU3zL,KAAKk1B,WAEnB,OADAy+J,EAAQl0L,KAAK,wBACNk0L,GAEX,qBAAqBC,GACjB,IAAIV,EAAmBlzL,KAAKozL,iBAAiBpzL,KAAK8uB,OAAO,sBAAuB8kK,GAC5E9F,EAAa9tL,KAAK4+C,YAAY4uI,kBAClC,GAAIM,EAAWnvL,QAAUu0L,GAAoB,EACzC,OAAOpF,EAAWoF,IAG1B,cAAcllK,GACN,YAAcA,EAAKra,MAAQ,2BAA6Bqa,EAAKra,OAC7Dqa,EAAKra,KAAO,cAEhB3T,KAAKk1B,SAASlH,IAElB,OACIhuB,KAAKwyL,aAAe,GACpBxyL,KAAKk1B,YAET,cACI,OAAOl1B,KAAKwyL,eAGpBtmL,QAAS,CACL,kBACQke,GAAwBpqB,QAAUA,KAAKuiH,YACvCviH,KAAKgoC,gBAAgB4d,QAAQ,CACzBqC,MAAM,EACNmN,aAAa,KAIzB,WAAWvjB,GACP,IAAI3vC,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIvC,OAHIqtC,EAAOzzC,MACP4B,KAAK6zL,kBAEF3xL,GAEX,gBACI,IAAIA,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAEvC,OADAxE,KAAK6zL,kBACE3xL,GAEX,iBACI,IAAIA,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAEvC,OADAxE,KAAK6zL,kBACE3xL,KAInB82B,MAAO,CACHtN,SAAU,CACN,WAAW2S,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAErC,OADA65B,GAAOS,EAAKpS,SAAS2R,EAAIT,UAAYwxJ,GAAiC,GAA8B,IAC7FtwJ,GAEX,aAAaA,EAAMnZ,GACf3lB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtB,UAAYmhB,EAAQ0Y,IAAIT,SAAWjY,EAAQ0Y,IAAI2yB,cAAgBrrC,EAAQ0Y,IAAI2yB,aAAaryD,QACxFqB,KAAK8zL,yBAAyBh1J,EAAMnZ,IAG5CouK,8BAA+B,CAAC70J,EAAavZ,KAAa,eAAUA,EAAQja,QAAQwzB,GAAa5oB,aAAeqP,EAAQ0Y,IAAI2yB,aAAa9xB,GAAavgC,OACtJ,2BAA2Bq1L,EAAkBruK,GAEzC,IADA,IAAIsuK,EAAyB,EACpBzzL,EAAI,EAAGA,EAAIwzL,EAAkBxzL,IAAK,CACvC,IAAI0+B,EAAcvZ,EAAQ0Y,IAAI2yB,aAAaryD,OAAS6B,EACpDyzL,EAAyBj0L,KAAK+zL,8BAA8B70J,EAAavZ,GAAWnlB,EAAIyzL,EAE5F,OAAOA,GAEX,yBAAyBn1J,EAAMnZ,GAC3B,IAAIuuK,EAAap1J,EAAKlN,WAAWmxC,OAC7BixH,EAAmBjwL,OAAOmwL,EAAWpnK,KAAK,aAAe,EACzDmnK,EAAyBj0L,KAAKm0L,2BAA2BH,EAAkBruK,GAC/E3lB,KAAKo0L,6BAA6BF,EAAYvuK,EAASquK,EAAkBC,IAE7E,6BAA6BC,EAAYvuK,EAASquK,EAAkBC,GAChE,GAAIA,EAAyB,EAAG,CAC5BC,EAAWpnK,KAAK,UAAWknK,EAAmBC,GAC9C,IAAK,IAAIzzL,EAAI,EAAGA,EAAIyzL,EAAwBzzL,IAAK,CAC7C,IAAI0+B,EAAcvZ,EAAQja,QAAQ/M,OAASs1L,EAAyBzzL,EACpER,KAAKilC,YAAYivJ,EAAW5hK,SAAU,OAAAnF,EAAA,MAAO,CACzCnrB,OAAQ2jB,EAAQja,QAAQwzB,GACxBA,YAAal/B,KAAKq0L,qBAAqBn1J,EAAavZ,EAAQja,UAC7Dia,OAIf0uK,qBAAsBn1J,GAAeA,EACrC,iBAAiBvZ,GACb,OAAKA,EAAQ3jB,OAAOwwB,UAAY,eAAU7M,EAAQ3jB,OAAOsU,aAAeqP,EAAQu6C,cAAgBv6C,EAAQu6C,aAAavhE,OAC1G2wL,GAEJtvL,KAAKk1B,SAASvP,IAEzB,gBAAgBA,GACZ,IAAI6K,EAAaxwB,KAAKk1B,SAASvP,GAC/B,OAAIA,EAAQ0Y,IAAI2yB,aACL,OAAA7jC,EAAA,MAAOqD,EAAYi/J,GAAsBzvL,KAAM2lB,IAEnD6K,Q,8BC7vBvB,GAAgB,UAChB,GAAsB,gBACtB,GAA2B,wBAC3B8jK,GAAmB,gBACnBC,GAAkB,eAClBC,GAAoB,iBACpBC,GAAkB,eAClBC,GAAsB,mBACtBC,GAA4B,yBAC5B,GAAsB,cACtB,GAAkB,eAClB,GAAmB,uBACnBC,GAA4B,SAASv6D,GACrC,IAAI15E,GAA0B,EAQ9B,OAPA,eAAK05E,EAAc,CAACp4H,EAAOD,KACvB,GAAIA,EAAOwwB,UAAY,GAEnB,OADAmuB,EAAyB1+C,GAClB,IAIR0+C,GAEPk0I,GAAwB,SAASx6D,EAAc3yF,EAAQotJ,GACvD,IAAIC,EAAmB,EACvB,GAAI16D,GAAgB3yF,GAAUotJ,EAC1B,IAAK,IAAIt0L,EAAI,EAAGA,EAAI65H,EAAa17H,OAAQ6B,IACjC65H,EAAa75H,GAAGgyB,UAAY,GAC5BuiK,GAAoB16D,EAAa75H,GAAGy9B,SAEhCyJ,EAAOqtJ,GAAoBD,EAAYt0L,KACvCknC,EAAOqtJ,GAAoBD,EAAYt0L,IAE3Cu0L,KAIZ,OAAOrtJ,GAEPstJ,GAAmB,CACnB,OACIh1L,KAAKk1B,WACLl1B,KAAK+nI,wBAAyB,EAC9B/nI,KAAKi1L,iBAAkB,GAE3B,WAAWjzL,GACP,OAAOhC,KAAKk1B,SAASlzB,GAAQs0B,YAAYm+J,MAAoBz0L,KAAK+nI,0BAA2B/lI,EAAOkU,OAASlU,EAAOwwB,SAAWxwB,EAAOwwB,UAAY,OAEtJ,qCAAqC6nG,EAAc9+G,GAC/C,IAAIolC,EAAyBi0I,GAA0Bv6D,GACnDv5E,EAAqBu5E,EAAa15E,GAAwB1iB,QAC1DqG,EAAgB/oB,GAAUA,EAAO+oB,cACjCA,IACA/oB,EAAO+oB,cAAgBA,EAAczlC,IAAIylC,IACrC,GAAIA,EACA,OAAOA,EAAczlC,IAAIqgC,GACjBA,EAAcyhB,EACPzhB,EAEPA,GAAeyhB,EAAyBG,EACjC5hB,EAAc4hB,EAAqB,GAEtC,GACTx8C,OAAO46B,GAAeA,GAAe,OAKxD,yBAAyBm7F,GACrB,IAAI66D,EAAoBl1L,KAAKm1L,mBACzBrrJ,EAAQ9pC,KAAKurC,oBAAoB2pJ,GACjC3xH,EAAY2xH,EAAkBtjK,SAAS,YAC3C2xC,EAAU99B,YAAYzlC,KAAKw+B,gBAAgB67F,IAC3C,IAAK,IAAI75H,EAAI,EAAGA,EAAIspC,EAAMnrC,OAAQ6B,IAC9BR,KAAKo1L,uBAAuB,eAAEtrJ,EAAMtpC,IAAK65H,IAGjD,uBAAuBv7F,EAAMu7F,GACzB,IAAIhqG,EAKAg0C,EAJA76B,EAAe1K,EAAKnL,IAAI,GAAGo6D,WAC3BptC,EAAyBi0I,GAA0Bv6D,GACnDx5E,EAAoBw5E,EAAa15E,GACjCjb,EAAoB1lC,KAAKg/B,mBAAmB2G,uBAE5C6jJ,EAAW9jJ,EAAoB,GAE/BzH,QAASA,GACT4iB,EACJ,GAAI/hB,EAAKnO,SAAS,IACd6Y,EAAa,GAAG3V,aAAa,UAAW,QAAUxD,EAAKrwB,KAAKg/B,mBAAmBC,2BAAwB,IAAW5O,OAAK,EAASA,EAAG1xB,YADvI,CAIImgC,EAAKnO,SAAS,MACd0zC,EAAmBrkE,KAAKskE,qBAAqB,CACzCjmC,IAAKS,EAAK/qB,KAAK,WACfrI,QAAS1L,KAAKg/B,mBAAmBC,sBAErChB,EAAUomC,EAAiBpmC,QAAUyZ,KAAKpwB,IAAI,EAAGkiB,EAAa7qC,QAAU0lE,EAAiBnlC,YAAc,KAE3G,IAAK,IAAI0B,EAAI,EAAGA,EAAI4I,EAAa7qC,OAAQiiC,IAAK,CAC1C,IAAIy0J,EAAoBhxH,EAAmBzjC,IAAMyjC,EAAiBnlC,YAAc,EAAI0B,IAAM+f,EAC1FnX,EAAa5I,GAAG/M,aAAa,gBAAiB21J,GAC1C6L,GACA7rJ,EAAa5I,GAAG/M,aAAa,UAAWoK,GACxCurJ,GAAYvrJ,GAEZurJ,OAIZ,aAAa7jK,GACT,IAAI0K,EACAilK,EACAj7D,EAAer6H,KAAKmjE,kBACxBnjE,KAAKi1L,kBAAoB56D,EAAa17H,OACtC,IAAIw8B,EAASn7B,KAAKk1B,SAASvP,GAC3B,GAAI3lB,KAAKi1L,gBAAiB,CACtB,IAAI15K,EAAS,OAASoK,QAAW,IAAWA,OAAU,EAASA,EAAQpK,OACnEg6K,EAAiBv1L,KAAKyqC,gBAAgBzqC,KAAKm1L,oBAC3CK,GAAqB,OAASj6K,QAAU,IAAWA,OAAS,EAASA,EAAOuxC,0BAA4ByoI,EAAe52L,UAAY,QAAU0xB,EAAK,OAAS9U,QAAU,IAAWA,OAAS,EAASA,EAAOiG,aAAU,IAAW6O,OAAK,EAASA,EAAG1xB,QAEnP,GADAqB,KAAK+nI,wBAAyB,EAC1BytD,IAAqB,IAASx1L,KAAK8uB,OAAO,wBAC1C9uB,KAAKy1L,yBAAyBp7D,GAC9Br6H,KAAK+nI,wBAAyB,MAC3B,CACH,IAAIzjG,EAAgB,OAAS/oB,QAAU,IAAWA,OAAS,EAASA,EAAO+oB,cAC3EtkC,KAAK01L,qCAAqCr7D,EAAc9+G,GACxD+5K,EAAct1L,KAAKkkC,aAAam2F,GAChCr6H,KAAKmkC,YAAYmxJ,EAAa,OAAAnoK,EAAA,MAAO,GAAIxH,EAAS,CAC9Cja,QAAS2uH,KAEbr6H,KAAKgwC,eAAeslJ,EAAa/5K,GAAQ,GACrC+oB,IACA/oB,EAAO+oB,cAAgBA,GAE3BtkC,KAAK+nI,wBAAyB,QAGlC/nI,KAAKm1L,oBAAsBn1L,KAAKm1L,mBAAmB7iK,SAAS0Q,SAC5DhjC,KAAKm1L,mBAAqB,KAE9B,OAAOh6J,GAEX,WAAWA,EAAQxV,GACf,IAAIgwK,GAEApjK,MAAOA,GACP5M,EAAQ0Y,IAEZ,GADAr+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,KAAK+nI,wBAA0Bx1G,GAASA,EAAM5zB,OAAQ,CACtDg3L,EAAkB,EAClB,IAAIC,EAAajwK,EAAQ0Y,IAAI9L,OAAS,GACtCA,EAAQA,EAAM/vB,QACdmjB,EAAQ0Y,IAAI9L,MAAQA,EACpB,IAAK,IAAI/xB,EAAI,EAAGA,EAAIo1L,EAAWj3L,OAAQ6B,IAC/Bo1L,EAAWp1L,GAAGwB,QAAU4zL,EAAWp1L,GAAGwB,OAAOwwB,UAAY,GACzDmjK,GAAmBC,EAAWp1L,GAAGwB,OAAOi8B,SAAW,GAAK,EAG5D1L,EAAM/xB,EAAIm1L,GAAmBC,EAAWp1L,KAIpD,YAAYmlB,GACR,IAQI00G,EACAw7D,EACAl1I,GATA3+C,OAAQA,GACR2jB,EACAmwK,EAAgB9zL,GAAUA,EAAOwwB,SAEjCoL,QAASA,GACTjY,EACA+L,EAAQ1xB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAIlCxE,KAAK+nI,wBAA0B,WAAanqG,KAC5Cy8F,EAAer6H,KAAKmjE,kBACpBxiB,EAAyBi0I,GAA0Bv6D,GACnDw7D,EAAkBx7D,EAAa15E,EAAyB,IAExD3gD,KAAK+nI,uBACD+tD,IAAkB,KAClBpkK,EAAMhF,SAASioK,IAA2Br+J,YAAYg+J,GAAkB,IAAM3zI,GAA0Bk1I,GAAmB,WAAaA,EAAgBrjK,SAAS8D,YAAYi+J,GAAiBl6D,EAAa17H,QAAUgiD,IAA2B05E,EAAa17H,OAAS,GAClQ,cAAgBi/B,GAChB,QAAciiC,aAAanuC,IAG5B,WAAakM,GACpBlM,EAAM4E,YAAYg+J,GAAkB3uK,EAAQuZ,cAAgByhB,GAEhE,IAAIo1I,EAAgB/1L,KAAK8uB,OAAO,0BAA4BnJ,EAAQ6gB,SAChEwvJ,EAAkB,aAAeh2L,KAAK8uB,OAAO,mBAAqB,IAAMnJ,EAAQuZ,aAAe,WAAavZ,EAAQiY,QAIxH,OAHIa,EAAA,KAAQG,SAAWjZ,EAAQ3jB,OAAOkU,OAAS,UAAYyP,EAAQiY,UAAYm4J,IAAkBC,GAC7FtkK,EAAMhF,SAAS+nK,IAEZ/iK,GAEX,YAAYkW,GACR,IAAIvX,EACJ,OAAOuX,EAAwB,QAAUvX,EAAKrwB,KAAKm1L,0BAAuB,IAAW9kK,OAAK,EAASA,EAAGiC,SAAWtyB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAE/I,4BAA4B22B,EAAQyM,GAChC,IAAIe,EAAmB3oC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIjD,OAHIxE,KAAK+nI,wBAA0BngG,IAC/Be,EAAiBjc,SAAS1sB,KAAKw0B,gBAAgB,KAE5CmU,GAEX,mBAAmBjX,EAAO/L,GACtB,IAAIswK,GAEAj0L,OAAQA,GACR2jB,EACAiiB,EAAwB5nC,KAAK+nI,uBAC7BmuD,EAAc,UAAYvwK,EAAQiY,SAAW,eAAU57B,EAAOsU,YAIlE,GAHIsxB,GAAyBsuJ,IAAgBl0L,EAAOwwB,UAAYxwB,EAAOqU,mBACnEqb,EAAMD,IAAI,gBAAiB,SAE1BmW,GAAyB5nC,KAAKi1L,gBAAiB,CAEhD,GADAgB,EAAcj0L,EAAOkU,OAASlU,EAAOwwB,UAAW,IAAUxwB,EAAOkU,MAC7DggL,IACAD,GAAc,EACVtwK,EAAQ0Y,IAAI2yB,cAAgBrrC,EAAQ0Y,IAAI2yB,aAAaryD,QAAQ,CAC7D,IAAI+M,EAAU1L,KAAKg/B,mBAAmBC,oBAClCk3J,EAA8Bn2L,KAAKm0L,2BAA6Bn0L,KAAKm0L,2BAA2BnyL,EAAOi8B,QAAS,CAChHvyB,QAASA,EACT2yB,IAAK1Y,EAAQ0Y,IACb6kC,SAAS,IACR,EACL,GAAIizH,EAA8B,EAAG,CACjC,IAAIx1I,EAAyBi0I,GAA0B50L,KAAKg/B,mBAAmBmkC,mBAC/E8yH,EAAcvqL,EAAQ/M,OAASw3L,EAA8Bx1I,GAIzE,GAAIs1I,EAAa,CACb,GAAIj0L,EAAOwwB,SAAW,YAAcxwB,EAAO5D,MAAQ,UAAYunB,EAAQiY,QAEnE,YADAlM,EAAMnM,KAAK,UAAUmH,SAAS1qB,EAAOyR,UAGzCie,EAAMhF,SAAS,mBAGnB1qB,EAAOwwB,UAAY,IACnBxyB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAGlC,qBAAqBq3B,GACjB,IAAI2N,EAAexpC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACzC+6B,EAAa,OAASiK,QAAgB,IAAWA,OAAe,EAASA,EAAalX,SAAS3B,SAAS,IACxGylK,EAAiB,sBAAwBp2L,KAAK2T,KAAOkoB,OAAW,EACpE,GAAI77B,KAAKm1L,oBAAsB3rJ,EAAc,CACzC,IAAI6wF,EAAer6H,KAAKmjE,gBAAgBizH,GACpCC,EAAoBr2L,KAAKyqC,gBAAgBzqC,KAAKm1L,oBAAoB5lK,GAAGsM,GAAUjK,SAAS,MAC5F,eAAKykK,EAAmB,CAACn3J,EAAa7C,KAClC,GAAIkD,EACIiK,EAAatK,IAAgB,WAAa7C,EAAKC,MAAM48F,aACrD1vF,EAAatK,GAAe7C,OAE7B,CACH,IAAIi6J,EAAcj8D,EAAan7F,GAC/B,GAAIo3J,EACA,GAAIA,EAAY9jK,UAAY,GACpB6jK,EAAkB9mK,GAAG2P,GAAavO,SAAS,MAC3C6Y,EAAatK,GAAe7C,GAAQmN,EAAatK,QAElD,CACH,IAAI61J,EAAmB/0L,KAAKg/B,mBAAmBu3J,wBAAwBD,EAAaF,GACpF5sJ,EAAaurJ,GAAoB14J,GAAQmN,EAAaurJ,OAM1E,OAAOvrJ,GAEX,kBACI,IAAItnC,EAASlC,KAAKk1B,WACdmlG,EAAer6H,KAAKmjE,kBACpB2xH,EAAc90L,KAAKm1L,oBAAsBjzL,EAAOvD,OAASqB,KAAKk1B,SAASl1B,KAAKm1L,yBAAsB,EACtG,OAAON,GAAsBx6D,EAAcn4H,EAAQ4yL,IAEvD,gBAAgBltJ,GACZA,EAAwB5nC,KAAK+nI,wBAA0BngG,EACvD,IAAIzE,EAAeyE,EAAwB5nC,KAAKm1L,mBAAqBn1L,KAAKk1B,WAC1E,OAAOiO,GAEX,gBAAgBA,EAAcyE,GACtB5nC,KAAK+nI,wBAA0BngG,EAC/B5nC,KAAKm1L,mBAAqBhyJ,EAAazW,SAASioK,IAEhD30L,KAAKk1B,SAASiO,IAGtB,WAAWtH,GACP,IAAIyB,EAAgBt9B,KAAK6pC,kBACzB,OAAI7pC,KAAK+nI,uBACE/nI,KAAKmjE,gBAAgBtnC,GAEzB77B,KAAKk1B,SAAS2G,EAAUyB,IAEnC,YAAYwB,GACR,IAAIw2J,EAAct1L,KAAKm1L,mBACvB,OAAIG,GAAeA,EAAY/nK,KAAKuR,GAAMngC,OAC/BqB,KAAKyqC,gBAAgB6qJ,GAAarzL,MAAM68B,GAE5C9+B,KAAKk1B,SAAS4J,IAEzB,mBACI,IAAI58B,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIvC,OAHIxE,KAAKm1L,qBACLjzL,EAAS,eAAE,CAACA,EAAOyxB,IAAI,GAAI3zB,KAAKm1L,mBAAmBxhK,IAAI,MAEpDzxB,GAEX,gBAAgB25B,GACZ,OAAO77B,KAAKg/B,mBAAmBmkC,gBAAgBtnC,IAEnD,wBACI,IAII26J,EAJAnvK,EAAS,CACTjE,KAAM,EACNu7E,MAAO,GAGX,GAAI3+F,KAAKm1L,mBAAoB,CACzBqB,EAAqBx2L,KAAKy2L,8BAC1B,IAAIC,EAA4BF,EAAmBl+K,WACnD+O,EAAS,CACLjE,KAAMszK,EAA0BtzK,KAChCu7E,MAAO,eAAc3+F,KAAKitB,WAAW,IAAS,eAAcupK,GAAoB,GAAQE,EAA0BtzK,OAG1H,OAAOiE,GAEX,8BACI,OAAOrnB,KAAKm1L,oBAAsBn1L,KAAKm1L,mBAAmB5nK,KAAK,IAAIlC,OAAOspK,KAA4B7mK,SAE1G,uBACI,OAAO9tB,KAAKm1L,oBAEhB,iBACI,OAAOn1L,KAAKi1L,iBAEhB,cACIj1L,KAAKk1B,WACLl1B,KAAK22L,mBAET,gBAAgBhxK,GACZ,IAAI0K,GAEAqX,OAAQA,GACR/hB,EACAoZ,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzC23J,GAAwB,OAASlvJ,QAAU,IAAWA,OAAS,EAASA,EAAO/oC,SAAWogC,EAAe4a,KAAK33C,GAAU,eAAUA,EAAOk8B,eACzI24J,EAAuB,QAAUxmK,EAAK1K,EAAQ6hB,mBAAgB,IAAWnX,OAAK,EAASA,EAAGve,MAE9F,GADA9R,KAAKk1B,SAASvP,GACV3lB,KAAKm1L,mBAAoB,CACzB,IAAIhlH,EAAe,OAASzoC,QAAU,IAAWA,OAAS,EAASA,EAAOiS,KAAK7nC,GAAS,SAAWA,IAAU,eAAUA,IACnHglL,EAAqB3mH,KAAkBymH,IAAyB52L,KAAK0hE,oBAAmB,IACxFh2D,EAAUorL,EAAqB/3J,EAAiB/+B,KAAKmjE,kBACzDnjE,KAAK+2L,0BAA0BrrL,EAASg8B,GAE5C,IAAI31B,EAAkB/R,KAAK8uB,OAAO,mBAC9BkoK,EAAsBJ,GAAwBC,GAAwB9kL,EACtEilL,GACAh3L,KAAK22L,mBAGb,0BAA0BjrL,EAASg8B,GAC/B,GAAK1nC,KAAKm1L,oBAAuBztJ,EAAjC,CAGA,IAAI2C,EAAQrqC,KAAKm1L,mBAAmBvjK,SAAS,YAAYA,SAAS,OAClEyY,EAAMZ,UAAUvS,QAAQ4J,GAAOA,EAAIhE,gBAAgB,UACnD,IAAIoC,EAAc,EAClBxzB,EAAQwrB,QAAQl1B,IACZ,GAAIA,EAAOi8B,QACPiB,GAAel9B,EAAOi8B,YAD1B,CAIA,IAAIsM,EAAWpN,GAAeuK,EAAOxI,IACjC,eAAUqL,IACV,eAASF,EAAM9a,GAAG2P,GAAcqL,GAEpCrL,GAAe,OAGvB,iBAAiBjS,GACb,IAAIgqK,EAA4BhqK,EAAQ0c,uBAAyB,eAAgB1c,GACjF,OAAOgqK,GAA6BA,EAA0BhqL,OAASgqL,EAA0BhqL,OAASggB,EAAQm6C,cAEtH,kBACI,IAEIvrC,EACA8mC,EACAu0H,EACAvuH,EALAs+D,EAAa,GACbkwD,EAAkB,GAKtBn3L,KAAKmpC,oBAAmB,GAAM3S,KAAK,KAC/B,GAAIx2B,KAAKi1L,iBAAmBj1L,KAAKwjC,eAAiBxjC,KAAKm1L,mBAAoB,CACvE,IAAIiC,EAAcp3L,KAAKq3L,iBAAiBr3L,KAAKwjC,cAAc7P,IAAI,IAC3D2jK,EAAmBt3L,KAAKq3L,iBAAiBr3L,KAAKm1L,mBAAmBxhK,IAAI,IAIzE,GAHAgvC,EAAe3iE,KAAKyqC,gBAAgBzqC,KAAKwjC,eACzC0zJ,EAAoBl3L,KAAKyqC,gBAAgBzqC,KAAKm1L,oBAC9CxsH,EAAkB3oE,KAAKoiE,sBACnBg1H,IAAgBE,EAAkB,CAIlC,IAHA3uH,GAAmBA,EAAgBl3C,IAAI,SAAU2lK,GACjDz0H,EAAalxC,IAAI,SAAU,IAC3BylK,EAAkBzlK,IAAI,SAAU,IAC3BoK,EAAW,EAAGA,EAAW8mC,EAAahkE,OAAQk9B,IAC/CorG,EAAWxnI,KAAKO,KAAKq3L,iBAAiB10H,EAAahvC,IAAIkI,KACvDs7J,EAAgB13L,KAAKO,KAAKq3L,iBAAiBH,EAAkBvjK,IAAIkI,KAErE,IAAKA,EAAW,EAAGA,EAAW8mC,EAAahkE,OAAQk9B,IAAY,CAC3D,IAAI8rG,EAAYV,EAAWprG,GACvB07J,EAAiBJ,EAAgBt7J,GACjC8rG,EAAY4vD,EACZL,EAAkB3nK,GAAGsM,GAAUpK,IAAI,SAAUk2G,GACtCA,EAAY4vD,GACnB50H,EAAapzC,GAAGsM,GAAUpK,IAAI,SAAU8lK,GAGhD5uH,GAAmBA,EAAgBl3C,IAAI,SAAU,SAKjE,mBAAmB3f,GACf,IAAInB,EAAa3Q,KAAK8uB,OAAO,cAC7B9uB,KAAKk1B,SAASpjB,GACd9R,KAAKitB,UAAU2E,SAAS,IAAIvG,OAAOrrB,KAAKw0B,gBAAgB,MAAuB/C,IAAI,CAC/E+Z,YAAa76B,EAAamB,EAAQ,GAClC25B,aAAe96B,EAAqB,GAARmB,MAIpC0lL,GAAwC,OAAArqK,EAAA,MAAO,GAAI6nK,GAAkB,CACrE,sBAAsBn5J,GAClB,OAAI77B,KAAK+nI,uBACE/nI,KAAKmjE,gBAAgBtnC,GAEzB77B,KAAKk1B,SAAS2G,IAEzB,oBAAoBlW,GAChB,IACI3jB,OAAQA,GACR2jB,EACA8xK,EAAsBz3L,KAAK8uB,OAAO,gBAClCtN,EAAQxhB,KAAKk1B,SAASvP,GAC1B,GAAIA,EAAQ0Y,KAAO,WAAa1Y,EAAQ0Y,IAAIT,UACpC,IAAS65J,EAAoBr/K,SAAWpW,GAAUA,EAAO0S,YAAa,CACtE,IAAIk9B,EAAcC,IACd,OAAQA,EAAOE,SAAS/zC,OACpB,IAAK,OACDgC,KAAKg/B,mBAAmBoM,aAAappC,EAAOC,MAAO,SAAS,GAC5D,MACJ,IAAK,OACDjC,KAAKg/B,mBAAmBoM,aAAappC,EAAOC,MAAO,CAC/CiU,OAAO,EACPC,cAAe,SAEnB,MACJ,IAAK,QACDnW,KAAKg/B,mBAAmBoM,aAAappC,EAAOC,MAAO,CAC/CiU,OAAO,EACPC,cAAe,YAI/BqL,EAAQA,GAAS,GACjBA,EAAM/hB,KAAK,CACPqU,KAAM2jL,EAAoBz+K,MAAME,IAChCiyF,YAAY,EACZ3pF,MAAO,CAAC,CACJ1N,KAAM2jL,EAAoBz+K,MAAMG,aAChCnb,MAAO,OACPiO,SAAUjK,EAAOkU,SAAWlU,EAAOmU,eAAiB,SAAWnU,EAAOmU,eACtEy7B,YAAaA,GACd,CACC99B,KAAM2jL,EAAoBz+K,MAAMI,cAChCpb,MAAO,QACPiO,SAAUjK,EAAOkU,OAAS,UAAYlU,EAAOmU,cAC7Cy7B,YAAaA,KAElB,CACC99B,KAAM2jL,EAAoBz+K,MAAMK,MAChCrb,MAAO,OACPiO,UAAWjK,EAAOkU,MAClB07B,YAAaA,IAIzB,OAAOpwB,GAEX,uBAAuBqa,GACnB,GAAI,eAAUA,GACV,OAAO77B,KAAKm1L,oBAAsBn1L,KAAKyqC,gBAAgBzqC,KAAKm1L,oBAAoB5lK,GAAGsM,GAAUjK,WAEjG,IAAIsf,EAAiBlxC,KAAKmyB,oBACtBulK,EAA4B13L,KAAKy2L,8BACrC,GAAIvlJ,GAAkBwmJ,GAA6BA,EAA0B/4L,OAAQ,CACjF,IAAIgiD,EAAyBi0I,GAA0B50L,KAAKmjE,mBAC5DjyB,EAAe9J,OAAOuZ,EAAwB+2I,EAA0B/jK,IAAI,GAAG7Q,QAAS40K,EAA0B/jK,IAAI,IAE1H,OAAOud,GAEX,kBACI,IAAI4jJ,EACA5yL,EAASlC,KAAKk1B,WACdyiK,EAAuB33L,KAAK43L,yBAC5Bv9D,EAAer6H,KAAKmjE,kBAQxB,OAPInjE,KAAKm1L,qBAEDL,EADA6C,GAAwBA,EAAqBh5L,OAC/BqB,KAAKoqC,WAAWutJ,GAEhB33L,KAAKk1B,SAASl1B,KAAKm1L,qBAGlCN,GAAsBx6D,EAAcn4H,EAAQ4yL,MAGvD+C,GAA+B,OAAA1qK,EAAA,MAAO,GAAI6nK,GAAkB,CAC5D,qBACI,IAAI/nK,EAAUjtB,KAAKitB,UACfjtB,KAAKm1L,oBAAsBn1L,KAAKwjC,eAChC,OAAahV,IAAIvB,EAAS,qBAAsB,iBAGxD,qBACQjtB,KAAKm1L,oBAAsBn1L,KAAKwjC,eAChC,OAAalV,GAAGtuB,KAAKitB,UAAW,qBAAsB,eAAgBjtB,KAAKkwB,aAAalC,IACpF,IACI/B,MAAOA,GACP+B,EACA6N,EAAW77B,KAAK87B,YAAY,eAAE7P,EAAMvpB,QAAQgyB,QAAQ,YACpDojK,EAAU,cAAgB7rK,EAAM7tB,KAChCy9B,GAAY,IACZ77B,KAAKwjC,eAAiBxjC,KAAKyqC,gBAAgBzqC,KAAKwjC,eAAejU,GAAGsM,GAAUvF,YAAYk+J,GAAmBsD,GAC3G93L,KAAKm1L,oBAAsBn1L,KAAKyqC,gBAAgBzqC,KAAKm1L,oBAAoB5lK,GAAGsM,GAAUvF,YAAYk+J,GAAmBsD,QAKrI,kBACI,IAAIznK,EACA0nK,EAAmB,QAAU1nK,EAAKrwB,KAAKgwB,cAAc,mBAAgB,IAAWK,OAAK,EAASA,EAAG0nK,mBACrG,OAAIA,EACO/3L,KAAK8uB,OAAO,2BAEhB2P,EAAA,KAAQG,QAAU,GAAK,GAElC,oBAAoBgJ,GAChB,IAAIwG,EACAqkC,EACAulH,EAAeh4L,KAAKw0B,gBAAgB,IACpCvH,EAAUjtB,KAAKitB,UAEnB,GADA2a,EAAwB5nC,KAAK+nI,wBAA0BngG,EACnD3a,GAAW2a,EAAuB,CAClCwG,EAAWnhB,EAAQ2E,SAAS,IAAIvG,OAAO2sK,IACvC,IAAIv4H,EAAaz/D,KAAKigE,gBA0CtB,OAzCK7xB,EAASzvC,QAAU8gE,IACpBrxB,EAAW,eAAE,SAAS1hB,SAASsrK,GAC/B,OAAa1pK,GAAG8f,EAAU,SAAUnf,IAChC,IACIvsB,OAAQA,GACRusB,EACAgpK,EAAcj4L,KAAKk4L,kBACvBz8J,aAAaz7B,KAAKm4L,qBAClBn4L,KAAKm4L,oBAAsB38J,WAAW,KAClCi3C,EAAY,eAAE/vE,GAAQ+vE,YACtBhT,EAAW17B,SAAS,CAChBvwB,EAAGi/D,KAERwlH,KAEP,OAAa3pK,GAAG8f,EAAUgqJ,GAAA,KAAgBnpK,IACtC,IAAIopK,EAAqB,eAAEppK,EAAEvsB,QAAQgyB,QAAQ,kBACzC4jK,GAAe,EACnB,GAAI74H,GAAcA,EAAW5wC,WAAW+F,GAAGyjK,GACvCC,GAAe,MACZ,CACH,IAAIC,EAA4BF,EAAmB15L,QAAU,QAAW4oE,YAAY8wH,EAAmB1kK,IAAI,IACvG6kK,EAAwCD,GAA6BA,EAA0B/kH,eAAiB+kH,EAA0BnxH,eAAiB,EAC/JkxH,EAAeC,IAA8BC,EAEjD,GAAIF,EAAc,CACd7lH,EAAYhT,EAAWgT,YACvBhT,EAAW17B,SAAS,CAChBvwB,EAAGi/D,EAAYxjD,EAAEo8G,QAErB,IAAIotD,EAAgBh5H,EAAWgT,YAAchT,EAAW2H,eACpDsxH,EAAmBj5H,EAAW+T,eAAiBxzE,KAAK6lE,oBACpD8yH,EAAmBl5H,EAAWgT,YAAc,GAAKgmH,EAAgBC,EACrE,GAAIC,EACA,OAAO,KAKnBvqJ,EAAS/X,SAASpJ,IAEfmhB,EAEX,OAAOpuC,KAAKk1B,YAEhB,oBACIl1B,KAAKk1B,WACL,IAAIuqC,EAAaz/D,KAAKigE,gBACtB,KAAI,OAASR,QAAc,IAAWA,OAAa,EAASA,EAAW9zB,WAAvE,CAGA,IAAI8mC,EAAYhT,GAAcA,EAAW+B,eAAej+C,IACxDvjB,KAAK44L,0BAA0BnmH,KAEnC,eAAetQ,EAAgBh/B,EAAcyE,GACzC,OAAI5nC,KAAK+nI,wBAA0BngG,EACxBu6B,EAAehuC,QAAQzH,SAAS,GAAGrB,OAAOrrB,KAAKw0B,gBAAgB,IAAgB,KAAKnJ,OAAOrrB,KAAKw0B,gBAAgB,MAAuBzC,OAAOoR,GAElJnjC,KAAKk1B,SAASitC,EAAgBh/B,IAEzC,qBAAqBxd,GACjB,OAAI3lB,KAAK+nI,uBACE/nI,KAAKk1B,SAAS,OAAA/H,EAAA,MAAO,GAAIxH,EAAS,CACrCja,QAAS1L,KAAKg/B,mBAAmBC,uBAGlCj/B,KAAKk1B,SAASvP,IAEzB,oBAAoBmZ,EAAMnZ,GACtB,OAAO3lB,KAAKk1B,SAAS4J,EAAM,OAAA3R,EAAA,MAAO,GAAIxH,EAAS,CAC3Cja,QAAS1L,KAAKg/B,mBAAmBC,wBAGzC,yBAAyBH,EAAMnZ,GACvB3lB,KAAK+nI,uBACL/nI,KAAKk1B,SAAS4J,EAAM,OAAA3R,EAAA,MAAO,GAAIxH,EAAS,CACpCja,QAAS1L,KAAKg/B,mBAAmBC,uBAGrCj/B,KAAKk1B,SAAS4J,EAAMnZ,IAG5B,8BAA8BuZ,EAAavZ,GACvC,IAAIzjB,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnCxC,EAAS2jB,EAAQja,QAAQwzB,GAC7B,OAAIvZ,EAAQu9C,QACDlhE,EAAOkU,QAAUhU,GAAU,UAAYF,EAAOmU,eAElDjU,KAAYlC,KAAKi1L,kBAAoBjzL,EAAOkU,QAEvD,6BAA6Bg+K,EAAYvuK,EAASquK,EAAkBC,GAChE,IAAIkC,EACJ,GAAIn2L,KAAK+nI,uBAAwB,CAC7BpiH,EAAQu9C,SAAU,EAClBizH,EAA8Bn2L,KAAKm0L,2BAA2BH,EAAkBruK,GAChFA,EAAQu9C,SAAU,EAClB,IAAI63D,EAAmBp1G,EAAQja,QAAQ/M,OAASw3L,EAChDxwK,EAAU,OAAAwH,EAAA,MAAO,GAAIxH,EAAS,CAC1Bja,QAAS1L,KAAKmjE,oBAElB,IAAIxiB,EAAyBi0I,GAA0BjvK,EAAQja,SAC3DqvH,EAAmBp6E,GACnBw1I,GAA+BxwK,EAAQja,QAAQi1C,GAAwB1iB,QAAU,GAAK,EACtF+1J,GAAoBruK,EAAQja,QAAQi1C,GAAwB1iB,QAAU,GAAK,GACpEg2J,EAAyB,GAChCC,EAAWziK,IAAI,aAAc,UAEjCwiK,EAAyBkC,EAE7Bn2L,KAAKk1B,SAASg/J,EAAYvuK,EAASquK,EAAkBC,IAEzD,qBAAqB/0J,EAAaxzB,GAC9B,GAAI1L,KAAK+nI,uBAAwB,CAC7B,IAAIpnF,EAAyBi0I,GAA0BlpL,GAIvD,OAHIwzB,EAAcyhB,IACdzhB,GAAexzB,EAAQi1C,GAAwB1iB,QAAU,GAEtDiB,EAEX,OAAOl/B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,YAAY+W,GACRvb,KAAK64L,qBACL,IAAIv+K,EAAWta,KAAKk1B,SAAS3Z,GACzBixF,EAAiBxsG,KAAKi1L,gBAK1B,OAJAj1L,KAAKitB,UAAUqJ,YAAYo+J,GAAqBloF,GAC5CxsG,KAAK8uB,OAAO,sBAAwB09E,GACpCxsG,KAAK84L,qBAEFx+K,GAEX,eAAe4kB,EAAalhC,GACxBgC,KAAKk1B,SAASgK,EAAalhC,GAC3B,IAAI8rC,EAAQ9pC,KAAKyqC,gBAAgBzqC,KAAKm1L,oBACtCn1L,KAAKooE,oBAAoBt+B,EAAO9pC,KAAKmjE,kBAAmBjkC,EAAalhC,IAEzE,cAAcgwB,GACVhuB,KAAKk1B,SAASlH,GACV,sBAAwBA,EAAKra,MAAQ3T,KAAKi1L,kBAC1CjnK,EAAKhwB,MAAQgC,KAAK84L,qBAAuB94L,KAAK64L,uBAGtD,aAAannK,GACT,IAAI4jK,EAAct1L,KAAKm1L,mBACnBrvJ,EAAY,EAChB,GAAIwvJ,GAAe5jK,EAAMkD,GAAG,OAASlD,EAAMgD,QAAQ4gK,GAAa32L,OAAQ,CACpE,IAAI+M,EAAU1L,KAAKmjE,kBAYnB,OAXA,eAAKz3D,EAAS,CAACzJ,EAAOD,KAClB,GAAIC,IAAUyvB,EAAM,GAAGoU,UACnB,OAAO,EAEP9jC,EAAOi8B,QACP6H,GAAa9jC,EAAOi8B,QAGxB6H,MAGGA,EAEX,OAAO9lC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,0BAA0BiuE,EAAWsmH,GACjC,GAAI/4L,KAAKm1L,oBAAsBn1L,KAAKwjC,cAAe,CAC/C,IAAIogD,EACAzQ,EAAgBnzE,KAAKgwB,cAAc,iBACvChwB,KAAKm1L,mBAAmB7iK,SAASmgD,UAAUA,GACvCsmH,GAAa5lH,IACbyQ,EAAkBzQ,EAAcxkD,QAChCi1D,GAAmBzQ,EAAcxkD,MAAMi1D,MAInD,mBAAmBo1G,EAAQC,GACvB,IAAIC,EAAS,CACTljK,aAAc,GAEdmjK,EAAgBn5L,KAAKitB,UAAU2E,SAAS,IAAIvG,OAAOrrB,KAAKw0B,gBAAgB,MAC5E,GAAI2kK,EAAcx6L,QAAUqB,KAAKm1L,mBAAoB,CACjDgE,EAAc1nK,IAAIynK,GAClBl5L,KAAKm1L,mBAAmB1jK,IAAIynK,GAC5BA,EAAOl5L,KAAK8uB,OAAO,cAAgB,aAAe,eAAiBkqK,EACnEE,EAAOljK,aAAeijK,EACtB,IAAIz7J,EAAqBx9B,KAAKgiE,aAAehiE,KAAKgiE,YAAYlzC,OAAO,cACpE0O,EAAqB27J,EAAgBn5L,KAAKm1L,oBAAoB1jK,IAAIynK,KAG3E,qBAAqBjqK,GACjB,IAAImqK,EAAmB,EACvB,GAAInqK,EAAEuyC,aAAaj+C,IAAM,EACrB61K,GAAoBnqK,EAAEuyC,aAAaj+C,SAChC,GAAI0L,EAAEoqK,cAAe,CACxB,IAAIC,EAAqB,eAAErqK,EAAEgC,UAAUgK,WACnCs+J,EAAuB,eAAEtqK,EAAEgC,UAAUxT,aACrC+7K,EAAe9hJ,KAAKpwB,IAAIgyK,EAAmB3lK,IAAI,GAAGyzC,aAAemyH,EAAqB5lK,IAAI,GAAGyzC,aAAc,GAC/GgyH,EAAmB1hJ,KAAKnwB,IAAIiyK,EAAevqK,EAAEuyC,aAAaj+C,IAAK,GAEnE,OAAOm0B,KAAK05B,MAAMgoH,IAEtB,uBAAuBnqK,GACnB,GAAIjvB,KAAKm1L,mBAAoB,CACzB,IAAIiE,EAAmBp5L,KAAKy5L,qBAAqBxqK,GAC7C,IAAMyoB,KAAKklB,KAAKw8H,GAChB,gBAAKp5L,KAAKm1L,mBAAoB,CAC1B5xK,IAAK61K,IAGTp5L,KAAKm1L,mBAAmB1jK,IAAI,YAAa,MAIrD,cAAcxC,GACVjvB,KAAK44L,0BAA0B3pK,EAAEuyC,aAAaj+C,KAAK,GACnDvjB,KAAK05L,uBAAuBzqK,GAC5BjvB,KAAKk1B,SAASjG,IAElB,uBAAuBy4G,GACnB1nI,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrBkjI,GACD1nI,KAAK44L,0BAA0B54L,KAAKuhE,aAG5C,kBAAkBtyC,GACVjvB,KAAK+nI,wBAGT/nI,KAAKk1B,SAASjG,IAElB,iBAAiBJ,GACb7uB,KAAKk1B,SAASrG,EAAU7uB,KAAK25L,0BAEjC,UACI35L,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1Bi3B,aAAaz7B,KAAKm4L,wBAGtByB,GAAiC5E,GAC1B6E,GAAqB,CAC5B3sJ,eAAgB,KAAM,CAClB5hC,aAAc,CACV8M,SAAS,EACTY,MAAO,CACHE,IAAK,OAAoBnb,OAAO,8BAChCsb,MAAO,OAAoBtb,OAAO,gCAClCob,aAAc,OAAoBpb,OAAO,uCACzCqb,cAAe,OAAoBrb,OAAO,4CAItDu7B,UAAW,CACPN,MAAO,CACHmU,kBAAmBqqJ,GACnB9rK,SAAUmsK,GACV1uH,WAAYywH,IAEhB7gK,YAAa,CACTw9I,eAAgB,CACZ,yBAAyB5wJ,GACrB,IAAIoZ,EAAiBpZ,EAAQja,SAEzB4kK,oBAAqBA,GACrB3qJ,EACJ,GAAI2qJ,GAAuB,YAAcA,EAAoB7+H,WAAa6+H,EAAoB9jE,kBACtF7mF,EAAQ69B,aAAattC,MAAO,CACvByP,EAAQkW,WACTlW,EAAQurB,eAAiBo/H,EAAoBsnB,uBAAuB,IAExEjyK,EAAQja,QAAU4kK,EAAoBntG,gBAAgBx9C,EAAQkW,UAC9D,IAAI80I,EAAkB3wK,KAAKk1B,SAASvP,GAYpC,OAXE,SAASja,EAAS2uH,EAAcs2C,GAC9B,IAAIhwH,EAAyBi0I,GAA0Bv6D,GACnDy/D,EAAepuL,EAAQ/M,OAAS07H,EAAa17H,OACjD,eAAKgyK,EAAiB,CAACh5I,EAAG05I,KAClBA,EAAMpvK,MAAQ0+C,IACd0wH,EAAMnyI,aAAe46J,EACrBzoB,EAAMpvK,OAAS63L,KANzB,CAUA/6J,EAAgBpZ,EAAQja,QAASilK,GAC5BA,EAGf,OAAO3wK,KAAKk1B,SAASvP,IAEzB,cAAc0rJ,EAAO3lK,EAAS+Z,EAAU+9B,GACpC,IAAIthD,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnCo/C,EAAel4C,EAAQ2lK,EAAMnyI,aAC7Bs3J,EAAqBx2L,KAAKyqE,mBAAmBgsH,8BACjD,IAAKv0L,GAAU,YAAcujB,GAAY+wK,GAAsBA,EAAmB73L,OAAQ,CACtF,IAAI+vK,EAAe,eAAgB8nB,EAAmB7iK,IAAI,IAC1D,OAAI6vB,GAAgBA,EAAattC,MACtB,UAAYstC,EAAartC,cAAgBk7J,EAAM99J,EAAIm7J,EAAa/vE,MAAQ0yE,EAAM99J,EAAIm7J,EAAatrJ,QAEtGwgC,IAAgBA,EAAa1tC,OAAS,UAAY0tC,EAAaztC,iBAG5Dk7J,EAAM99J,EAAIm7J,EAAatrJ,MAAQiuJ,EAAM99J,EAAIm7J,EAAa/vE,OAEjE,OAAOz8F,IAGfu/I,eAAgB,CACZ,2BACI,IAAI5uH,EAAO7yB,KACPgxB,EAAoB6B,EAAKmM,mBACzBtzB,EAAUslB,GAAqB6B,EAAKmM,mBAAmBC,oBACvDo7F,EAAerpG,GAAqB6B,EAAKmM,mBAAmBmkC,kBAC5DxiB,EAAyBi0I,GAA0Bv6D,GACnDy/D,EAAepuL,EAAQ/M,OAAS07H,EAAa17H,OAC7C4zB,EAAQM,EAAK43C,mBAAmBmtH,yBACpC/kK,EAAKqC,WACD3C,GAASA,EAAM5zB,OAAS,IACxBk0B,EAAKknK,sBAAwB,QAAcvmB,mBAAmBjhJ,EAAO8+I,IAC7DA,EAAMpvK,MAAQ0+C,IACd0wH,EAAMnyI,aAAe46J,EACrBzoB,EAAMpvK,OAAS63L,GAEZjnK,EAAK4gJ,cAAcpC,EAAO3lK,EAAQ/M,OAAQ+M,OAI7D,gBAAgBilK,EAAiBiB,EAAU5B,GACvC,IAAIwmB,EAAqBx2L,KAAKyqE,mBAAmBgsH,8BACjD,GAAID,GAAsBA,EAAmB73L,OAAQ,CACjD,IAAI+vK,EAAe,eAAgB8nB,EAAmB7iK,IAAI,IAC1D,GAAIi+I,GAAYlD,EAAatrJ,MAAQwuJ,GAAYlD,EAAa/vE,MAC1D,OAAO3+F,KAAKk1B,SAASl1B,KAAK+5L,sBAAuBnoB,EAAU5B,GAGnE,OAAOhwK,KAAKk1B,SAASy7I,EAAiBiB,EAAU5B,QCv5BpE,GAAS59H,eAAe,eAAgBynJ,ICmCxC,IAAI,GAAsB,oBACtBG,GAAY,WACZC,GAAc,aACdC,GAAe,CAAC,GAAqBF,GAAWC,IAChDE,GAAqB,uBACrB,GAAuB,iBACvBC,GAAoB,iBACpBC,GAA0B,wBAC1BC,GAAqB,mBACrBC,GAAsB,gBACtBC,GAA+B,gBAC/BC,GAA6B,sBAC7BC,GAAgC,6BAChCC,GAA4B,yBAC5BC,GAA2B,wBAC3B,GAA2B,wBAC3BC,GAAuB,oBACvBC,GAAuB,WACvB,GAAkB,QAClB,GAAgB,MAChB,GAAiB,OACjB,GAAkB,QAClB,GAAuB,iBACvB,GAAmB,gBACnB,GAAkB,eAClBC,GAAmB,gCACnBC,GAAqB,kCACrB,GAAwB,uBAE5B,SAASjtH,GAAYl7C,EAAM7wB,GACvB,OAAO6wB,EAAKmM,mBAAmB+uC,YAAY/rE,GAG/C,SAASi5L,GAAoBn8J,GACzB,OAAOA,EAAKvR,KAAK,kEAGrB,SAAS2tK,GAAqBz9K,EAAWkI,GACrC,IAAIw1K,EACAtpK,EAAa,eAAEpU,GACf29K,EAA4Bz1K,EAAQsL,UAAUjB,cAAc,mBAC5D,SAAWrK,EAAQiY,SACnBu9J,EAAwB,eAAE,UAAUzuK,SAAS0uK,EAA0B5mK,gBAAgBgmK,KACvF,OAAalsK,GAAG6sK,EAAuB,eAAa,OAAgBhB,IAAqBiB,EAA0BlrK,aAAa,KAC5HkrK,EAA0BC,8BAA8B11K,EAAQooC,QAEpEotI,EAAsB9kK,SAASxE,IAE/B,QAAcguC,aAAahuC,GAInC,SAASypK,GAAiBrsK,GACtB,IAAIoB,EACAs0J,EAAY,QAAUt0J,EAAKpB,EAAElb,YAAS,IAAWsc,OAAK,EAASA,EAAGs0J,UACtE,OAAan2J,IAAIm2J,EAAW,QAAS2W,IACrC,OAAa9rK,QAAQm1J,EAAW,WAEpC,IAAI4W,GAAmC,CACnC,iBACI,IAAI/iF,EAAWx4G,KAAKw7L,eACpB,OAAOhjF,IAAa,IAExB,gBAAgBztF,EAAMoU,GAClB,IAAID,EAAcl/B,KAAKg/B,mBAAmB0B,gBAAgB3V,EAAK/oB,OAAOC,OAClE45B,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiB31B,EAAY4uB,KAC7D1vB,EAAMr+B,KAAKgoC,gBAAgBxmB,QAAQqa,EAAW,GAClD,OAAOwC,GAAOA,EAAIoyB,gBAAkB,eAAUpyB,EAAIoyB,eAAevxB,KAErE,wBAAwBnU,EAAMoU,EAAatN,GACvC,IAAIgB,EAAO7yB,MAEPgC,OAAQA,GACR+oB,EACA0wK,EAAc5oK,EAAK3C,aAAa,KAC5B2C,EAAKm0F,mBAAmBrnF,aACxB,OAAanQ,QAAQqC,EAAY,UAGrCi6F,EAAU3sF,EAAYd,IAAItqB,KAC1B/V,EAAQgE,EAAOoT,mBAAmB02G,GAClChkE,EAAe,QAAc7C,gBAAgBjjD,EAAQhE,EAAO8tH,EAAS3sF,EAAYvB,SACjF9pB,EAAO,QAAcqxD,YAAYrd,EAAc9lD,GAC/C8rH,EAAwB9tH,KAAKgnH,mBAAmB8G,wBAChDpiG,EAAWmH,EAAK63C,UAQpB,GAPI1oE,EAAOuS,cAAgBse,EAAK7C,cAAc,sBAAsBC,sBAChE4B,EAAW/E,KAAK,WAAY+F,EAAK/D,OAAO,aACpCg/F,IACA,OAAat/F,IAAIqD,EAAY,QAAS4pK,GACtC,OAAantK,GAAGuD,EAAY,QAAS4pK,KAGzCz5L,EAAOyT,aAAc,CACrB,IAAIitB,EAAkB,OAAAvV,EAAA,MAAO,GAAIgS,EAAa,CAC1CnhC,MAAOA,EACP8pD,aAAcA,EACdh0C,KAAMA,EACN9R,OAAQA,IAEZ0pB,EAAS4a,eAAezU,EAAY7vB,EAAOyT,aAAcitB,EAAiB,gBAAe7Q,IAAa2E,KAAK,KACvG9K,EAASmS,cAAchM,EAAYsN,SAEpC,CACH,IAAI1hB,EAAYoU,EAAW8B,IAAI,GAC3B3xB,EAAO6T,WACP4H,EAAUqiD,YAAchsD,EAExB2J,EAAUsiD,UAAYjsD,EAE1B+d,EAAWnF,SAASkuK,IACf,eAAU9mL,IAAS,KAAOA,GAC3B+d,EAAWtM,KAAK,UAEfsN,EAAKqnJ,kBACFrnJ,EAAK6oK,gBAAgB3wK,EAAMoU,IAC3BtN,EAAWnF,SAAS4tK,IAG5B5uK,EAASmS,cAAchM,EAAYsN,KAG3C,aAAapU,EAAMoU,GACf,IAAItM,EAAO7yB,MAEPgC,OAAQA,GACR+oB,EACAqzC,EAAoBp+D,KAAKgwB,cAAc,WAC3C,OAAO,SAASrK,EAASlI,GACrB,IAAIoU,EAAa,eAAEpU,GACfyhB,EAAcrM,EAAKmM,mBAAmB0B,gBAAgB1+B,EAAOC,OAC7DygC,EAAkB,OAAAvV,EAAA,MAAO,GAAIgS,GAC7Bw8J,EAAqB,WACrB,IAAIC,EAAe/oK,EAAKgpK,cAAc9wK,GACtC2X,EAAgB1kC,MAAQmhC,EAAYd,IAAIz6B,OAAOs7B,GAC3C08J,GAAgB55L,EAAO6U,iBACvBunD,EAAkBiuD,yBAAyB3pF,EAAiB3X,EAAMpF,EAASkM,GAAa+pK,IAExFl5J,EAAgB1gC,OAASA,EACzB0gC,EAAgBxD,YAAcA,EAC9BrM,EAAKipK,wBAAwB/wK,EAAM2X,EAAiB7Q,KAG5D8pK,IACAj5J,EAAgBkE,OAASlE,EAAgBkE,MAAM,KAAM,CACjDg1J,aAAc/oK,EAAKgpK,cAAc9wK,GACjC/sB,MAAOmhC,EAAYd,IAAIz6B,OAAOs7B,KAC9B,KACArN,EAAWu6F,WAAWppF,SACtBnR,EAAW1C,YAAYyrK,IACvBe,QAIZ,uBAAuB58J,GACnB,QAAIA,EAAiB,MAGjBA,EAAepgC,OAAS,WAEpB,IADA,IAAIuD,EAAS,EACJ0+B,EAAI,EAAGA,EAAI7B,EAAepgC,OAAQiiC,IAAK,CAC5C,IAAIomB,EAAgBjoB,EAAe6B,GAC/BomB,EAAcx0B,SACdtwB,IAGR,OAAOA,EARa,IASjB,IAKf,wBAAwBwlC,EAAQ3I,GAC5B,IAAIlM,EAAO7yB,KACP+7L,EAAgB,EAMpB,OALAh9J,EAAe7H,QAAQ,CAACnM,EAAM9oB,KACtBylC,EAAOzlC,KAAW,KAClB85L,GAAiBlpK,EAAKmpK,qBAAqBjxK,MAG5CgxK,GAEXE,gBAAiBnqL,GAAS,eAASA,IAAUA,EAAM4N,SAAS,KAC5D,gBAAgB1d,GACZ,OAAOhC,KAAKk8L,eAAe53L,OAAO63L,GAAgBA,EAAal6L,QAAUD,EAAOC,OAAOtD,OAAS,GAEpG,wBAAwB21I,EAAgB5oI,EAAS0wL,GAC7C,IAAIvpK,EAAO7yB,KACPq8L,EAAoB,EACpBC,EAAgC,EAoBpC,OAnBA5wL,EAAQwrB,QAAQl1B,IACZ,IAAK6wB,EAAK0pK,gBAAgBv6L,GAAS,CAC/B,IACI8P,MAAOA,GACP9P,EACA,eAAU8P,KAAWkkC,MAAMjgB,WAAWjkB,IACtCuqL,GAAqBxpK,EAAKopK,gBAAgBnqL,GAAS+gB,EAAK2pK,uBAAuB,CAC3EnlL,aAAcrV,EAAOqV,aACrBs4G,aAAcjkH,EAAQ/M,OACtBy9L,cAAeA,EACf5pJ,aAAcxwC,EAAOwwC,aACrB7mC,YAAamG,EACbwiI,eAAgBA,IACfv+G,WAAWjkB,GAEhBwqL,QAIJhoD,EAAiB+nD,GAAqBC,GAElD,sBAAsBt6L,EAAQsyI,EAAgBmoD,EAAgBL,GAC1D,IAII7xJ,EAJAujC,EAAWC,GAAY/tE,KAAMgC,GAC7B06L,EAAc18L,KAAKg/B,mBAAmBoM,aAAa0iC,EAAU,SAC7Dt7B,EAAexyC,KAAKg/B,mBAAmBoM,aAAa0iC,EAAU,gBAC9D6hD,EAAe8sE,EAAe99L,OAElC,GAAI+9L,GAAe,SAAWA,EAAa,CACvC,IAAI18L,KAAKi8L,gBAAgBS,GAUrB,OAAO3mK,WAAW2mK,GATlBnyJ,EAAWvqC,KAAKw8L,uBAAuB,CACnCnlL,aAAcrV,EAAOqV,aACrBs4G,aAAcA,EACdysE,cAAeA,EACf5pJ,aAAcA,EACd7mC,YAAa+wL,EACbpoD,eAAgBA,QAKrB,CACH,IAAIlpI,EAAkBpL,KAAK8uB,OAAO,mBAClCyb,EAAWn/B,GAAqBpJ,EAAOwwB,QAAUggB,EAAexyC,KAAKwwE,wBAAwB8jE,EAAgBmoD,EAAgBL,GAEjI,OAAO7xJ,GAEX,uBAAuB5kB,GACnB,IAAIg3K,EAAeh3K,EAAQtO,aAAesO,EAAQgqG,aAAe,GAAKhqG,EAAQy2K,cAC1EQ,EAAej3K,EAAQ2uH,eAAiBv+G,WAAWpQ,EAAQha,aAAe,IAC1EkxL,EAAcl3K,EAAQy2K,eAAiBQ,EAAej3K,EAAQ6sB,aAAe7sB,EAAQ6sB,aAAeoqJ,EACxG,OAAOD,EAAeh3K,EAAQ2uH,eAAiBv+G,WAAWpQ,EAAQha,aAAe,IAAMkxL,GAE3F,4BAA4B76L,EAAQsyI,EAAgBmoD,EAAgBL,GAChE,IAAItuH,EAAWC,GAAY/tE,KAAMgC,GAC7B06L,EAAc18L,KAAKg/B,mBAAmBoM,aAAa0iC,EAAU,SAC7Dt7B,EAAexyC,KAAKg/B,mBAAmBoM,aAAa0iC,EAAU,gBAClE,GAAI4uH,GAAe,SAAWA,IAAgB18L,KAAKi8L,gBAAgBS,GAC/D,OAAO3mK,WAAW2mK,GAEtB,IAAInyJ,EAAWvqC,KAAK88L,sBAAsB96L,EAAQsyI,EAAgBmoD,EAAgBL,GAClF,OAAO7xJ,EAAWiI,EAAe,KAAOjI,GAE5C,qBAAqBxf,GACjB,IAAI7oB,EAAS,EAIb,OAHI6oB,EAAKjZ,OAAS9R,KAAKi8L,gBAAgBlxK,EAAKjZ,SACxC5P,EAAS6zB,WAAWhL,EAAKjZ,QAEtB5P,GAEX,0BACI,IAAI2wB,EAAO7yB,KACP0L,EAAUmnB,EAAKmM,mBAAmBC,oBAClCsL,EAAW,EAMf,OALA,eAAK7+B,EAAS,CAACzJ,EAAOD,MACdA,EAAOC,MAAQ,GAAKD,EAAOwwB,WAC3B+X,GAAY1X,EAAKmM,mBAAmBoM,aAAa2iC,GAAYl7C,EAAM7wB,GAAS,iBAAmB,KAGhGuoC,GAEX,cAAcxf,GACV,GAAI/qB,KAAKgqH,wBACL,OAAO,EAEX,IAAIhqH,KAAKk6K,iBAKF,CACH,IAAIr+I,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiB90D,KAAKgoC,gBAAgB+0J,uBAAyB,EAC/F79J,EAAcl/B,KAAKg/B,mBAAmB0B,gBAAgB3V,EAAK/oB,OAAOC,OACtE,OAAOjC,KAAKgnH,mBAAmBxC,WAAW3oF,EAAUqD,GAPpD,IAAInkB,EAAa/a,KAAK8uB,OAAO,sBAC7B,QAAI,eAAa/T,EAAY/a,KAAKgoC,gBAAgB+0J,6BAAlD,GASR,6BAA6Bl+F,GACzB,IAAIr9E,EAAQ,GASZ,OARA,eAAKq9E,EAAe,CAAClnE,EAAG31B,KACpBwf,EAAM/hB,KAAK,CACPuC,OAAQA,EACR2R,KAAM3R,EAAO2R,KACb/Q,UAAWZ,EAAOY,UAClByU,aAAcrV,EAAOqV,iBAGtBmK,GAEX,+BAA+Bud,GAC3B,IAAK,IAAIv+B,EAAI,EAAGA,EAAIu+B,EAAepgC,OAAQ6B,IAAK,CAC5C,IAAIwB,EAAS+8B,EAAev+B,GAC5B,GAAIwB,EAAOwwB,UAAYsoK,GACnB,OAAOt6L,IAKnB,oBAAoB0uE,EAAcnwC,GAC9B,IAAI1nB,EAAerX,KAAKg9L,+BAA+Bj+J,GACnD,eAAU1nB,KACV63D,EAAa73D,GAAgB,GAC7BrX,KAAKi9L,mBAAmB,CACpB/tB,iBAAiB,EACjB73J,aAAcA,MAI1B,uBAAuB8f,GACnB,IACIjF,OAAQA,EACRg9I,gBAAiBA,GACjB/3I,EACA+lK,EAAuBl9L,KAAKw0B,gBAAgB+lK,IAC5CrrB,GACAguB,EAAuBxC,GACvBxoK,EAAOpF,KAAK,CACRpb,SAAU,EACV,cAAe,OAChByd,YAAY+tK,IAEfhrK,EAAO/C,YAAY+tK,IAG3B,qBACI,IAAK,IAAI18L,EAAI,EAAGA,EAAI05L,GAAav7L,OAAQ6B,IAAK,CAC1C,IAAIkpE,EAAO1pE,KAAK6uC,QAAQqrJ,GAAa15L,IACrC,GAAIkpE,GAAQA,EAAKxzC,aAAewzC,EAAKz8C,UAAW,CAC5C,IAAIjB,EAAW09C,EAAK/1D,KAChBwpL,EAAsBzzH,EAAKz8C,UAAUM,KAAK,IAAIlC,OAAOqvK,KACzD16L,KAAKo9L,uBAAuB,CACxBpxK,SAAUA,EACVkG,OAAQirK,EACRjuB,iBAAiB,IAErB,IAAImuB,EAAe3zH,EAAKz8C,UAAUM,KAAK,IAAIlC,OAAOrrB,KAAKw0B,gBAAgB+lK,MACvEv6L,KAAKo9L,uBAAuB,CACxBpxK,SAAUA,EACVkG,OAAQmrK,OAKxB3Y,aAAchzJ,GAASA,GAASA,EAAM/yB,SAAW+yB,EAAMf,SAAS,MAA8Be,EAAMf,SAAS,IAC7G,mBAAmBkI,GACf,IACIq2I,gBAAiBA,EACjB73J,aAAcA,GACdwhB,EACAhG,EAAO7yB,KACXk6L,GAAahjK,QAAQlL,IACjB,IAAI09C,EAAO72C,EAAKgc,QAAQ7iB,GACxB09C,GAAQ72C,EAAKyqK,yBAAyB,CAClC5zH,KAAMA,EACNwlG,gBAAiBA,EACjB73J,aAAcA,OAI1B,yBAAyB4hB,GACrB,IAMIkX,GALAu5B,KAAMA,EACNwlG,gBAAiBA,EACjB73J,aAAcA,GACd4hB,EACAjN,EAAW09C,EAAK/1D,KAEhB3R,EAAShC,KAAKg/B,mBAAmBC,oBAAoB5nB,GACrDm2G,EAAmBxtH,KAAKgnH,oBAAsBhnH,KAAKgnH,mBAAmBiD,sBAC1E,GAAIvgD,GAAQA,EAAKxzC,aAAel0B,EAG5B,IAFA,IAAIu7L,EAAY7zH,EAAK8zH,eACjB76H,EAAe+G,EAAKj/B,kBACf5O,EAAW,EAAGA,EAAW0hK,EAAW1hK,IAAY,CACrD,IAAI4hK,EAAoB5hK,IAAa2xF,GAAoBxhG,IAAaguK,IAAa,UAAYh6L,KAAK8uB,OAAO,gBAC3G,IAAK2uK,EAAmB,CACpB,IAAIC,EAAsB1xK,IAAa,GAAsBhsB,KAAKg/B,mBAAmB0B,gBAAgB1+B,EAAOC,MAAO45B,GAAYxkB,EAC/H,GAAIqmL,GAAuB,EAAG,CAC1B,IAAIt4J,EAAcu9B,EAAapzC,GAAGsM,GAClCsU,EAAenwC,KAAK29L,sBAAsBv4J,EAAas4J,GACvD19L,KAAK0kL,aAAav0I,IAAiBnwC,KAAK49L,uBAAuB,CAC3D5xK,SAAUA,EACVkjJ,gBAAiBA,EACjBx9I,MAAOye,QAO/B,sBAAsB/K,EAAaikJ,GAC/B,IAAIwU,EAAYz4J,EAAYxT,WACxBva,EAAegyK,EACfyU,GAAoB,EACxB,GAAI14J,EAAYzU,SAAS,IAAkB,CACvC,IAAIujK,EAAa9uJ,EAAY7X,KAAK,IAAIlC,OAAO,KACzCvI,EAAUoxK,EAAWpnK,KAAK,WAC9B,GAAIonK,EAAWv1L,QAAU,eAAUmkB,GAAU,CACzC,IAAIi7K,EAAkBj/I,SAASh8B,GAC3Bk7K,EAAgB9J,EAAWjyL,QAAU87L,EAAkB,EACvD1U,EAAqB2U,EACrB3mL,EAAegyK,EAAqB0U,EAAkB,EAEtDD,GAAoB,GAIhC,IAAI3tJ,EAAgB2tJ,OAAiD,EAA7BD,EAAUtuK,GAAGlY,GACrD,OAAO84B,GAEX,uBAAuB/W,GACnB,IACI1H,MAAOA,EACPw9I,gBAAiBA,GACjB91I,EACA6kK,EAAoB/uB,EAAkBwrB,GAAgC16L,KAAKw0B,gBAAgB+lK,IAC/F7oK,EAAM5E,KAAK,CACPpb,UAAW,EACX,eAAe,IAChBgb,SAASuxK,IAEhB,eACI,OAAOj+L,KAAKgnH,mBAAmBtO,eAEnC,wBACI,IAAIF,EAAWx4G,KAAKw7L,eACpB,OAAOhjF,IAAa,IAAkBA,IAAa,IAEvD,qBAAqBtpC,EAAcnwC,EAAgBm/J,GAE/C,GADAl+L,KAAKk8L,eAAiB,GAClBl8L,KAAKm+L,uBAAuBp/J,IAAmBm/J,EAAYv/L,OAAQ,CACnE,IAQI6B,EACAyuC,EACAmvJ,EAVA3xH,EAAa,EACbhO,EAAez+D,KAAKixB,UAAUpC,WAC9BwvK,EAAmB,eAAS5/H,GAAgBz+D,KAAKs+L,0BACjDC,EAA2B,WAC3B,OAAOx/J,EAAez6B,OAAOymB,IAASA,EAAKyH,SAAW,IAAMxyB,KAAKk8L,eAAe53L,OAAO9D,GAAKA,EAAEyB,QAAU8oB,EAAK9oB,OAAOtD,SACtHu1B,KAAKl0B,MACHw+L,EAAwBD,IACxBE,EAAsBD,EAAsB7/L,OAIhD,EAAG,CACCy/L,GAAiB,EACjB3xH,EAAa,EACb,IAAIsvH,EAAgB/7L,KAAK0+L,wBAAwBxvH,EAAcnwC,GAC3Dq9J,EAAgBL,EAAgB,KAAO,IAAMA,EACjD,IAAKv7L,EAAI,EAAGA,EAAIu+B,EAAepgC,OAAQ6B,IAAK,CACxC,IAAIwmD,EAAgBjoB,EAAev+B,GAC/BmL,EAAc3L,KAAK2+L,4BAA4B33I,EAAeq3I,EAAkBG,EAAuBpC,GACvGtuH,EAAWC,GAAY/tE,KAAMgnD,GAC7B01I,EAAc18L,KAAKg/B,mBAAmBoM,aAAa0iC,EAAU,SAC7Dp3D,EAAW1W,KAAKg/B,mBAAmBoM,aAAa0iC,EAAU,YAC1D8wH,EAAqB5+L,KAAKg/B,mBAAmBoM,aAAa0iC,EAAU,gBACxE,GAAIoB,EAAa1uE,KAAO,GAAxB,CAIA,IAAKmL,IAAgBq7C,EAAcx0B,UAAYw0B,EAAc9wC,MAAO,CAChEkoL,GAAiB,EACjB,MAEC1B,GAAe,SAAWA,IAC3B/wL,EAAc+rC,KAAKpwB,IAAIs3K,GAAsB,EAAGloL,GAAY,KAE5DswC,EAAcx0B,UAAYsoK,IAAwB7rJ,KAClDw9B,GAAc9gE,QAXdsjC,GAAmB,EAe3B,GADAmvJ,EAAiBA,GAAkB3xH,EAAa,eAAShO,GACrD2/H,EAAgB,CAChB,IAAIp8L,EAASk8L,EAAYl9F,MACrB3pF,EAAerX,KAAKg/B,mBAAmB0B,gBAAgB1+B,EAAOC,OAClEo8L,GAAoBr+L,KAAK88L,sBAAsB96L,EAAQq8L,EAAkBG,EAAuBpC,GAChGp8L,KAAKi9L,mBAAmB,CACpB5lL,aAAcA,IAElB63D,EAAa73D,GAAgB,GAC7BrX,KAAKk8L,eAAez8L,KAAKuC,GACzBw8L,EAAwBD,WAEvBH,GAAkBI,EAAsB7/L,OAAS,GAAKu/L,EAAYv/L,QACvE8/L,IAAwBD,EAAsB7/L,QAC9CqB,KAAK6+L,oBAAoB3vH,EAAcnwC,QAG3C/+B,KAAK6+L,oBAAoB3vH,EAAcnwC,IAG/C,yBACI,OAAO/+B,KAAK8+L,gBAEhB,4BAA4BzV,GAExB,IADA,IAAI0V,EACKv+L,EAAI,EAAGA,EAAIR,KAAK8+L,eAAengM,OAAQ6B,IAAK,CACjDu+L,EAAe/+L,KAAK8+L,eAAevvK,GAAG/uB,GACtC,IAAIuqB,EAAOg0K,EAAahrL,KAAK,gBAC7B,GAAIgX,GAAQA,EAAK/oB,QAAUhC,KAAKg/B,mBAAmB0B,gBAAgB3V,EAAK/oB,OAAOC,SAAWonL,EACtF,OAAO0V,IAInB,8BAA8BhxI,EAAKixI,GACzBh/L,KAAKgqH,yBAA2BhqH,KAAKgnH,mBAAmBrnF,aAC1D3/B,KAAKgwB,cAAc,QAAQqrK,8BAA8BttI,EAAKixI,IAGtE,0BAA0BvhL,EAAWkI,GACjC,IAAIkN,EAAO7yB,KACP6xB,EAAa,eAAEpU,GACfwhL,EAAkB,CAClBz9K,MAAOqR,EAAKqsK,6BAA6BrsK,EAAKqpK,gBAC9CpvE,OAAQ,MAAMzhG,OAAO,IAAI,UAEzB8zK,EAAqB,kBAAe,CACpC/9K,SAAU,GACV,GACJphB,KAAK+tB,cAAc,+BAAgC,CAC/CqxK,YAAaH,IAEjBpsK,EAAKisK,eAAiB,KACtBjsK,EAAKwsK,MAAQxsK,EAAKiB,iBAAiB,eAAE,SAASuC,SAASxE,GAAa,QAAM,OAAA1E,EAAA,MAAOgyK,EAAoBF,EAAiB,CAClH,cAAcl0K,GACV,IAAI/oB,EAAS+oB,EAAK/oB,QAAU6wB,EAAKmM,mBAAmBoM,aAAargB,EAAKpX,MAAQoX,EAAKnoB,WAC/EZ,IACA+oB,EAAK5H,MAAQ4H,EAAK5H,OAAS,GAC3B4H,EAAK5H,MAAMrP,KAAOiX,EAAK5H,MAAMrP,MAAQ9R,EAAOwT,QAC5CuV,EAAK/oB,OAASA,EACd+oB,EAAKlX,SAAWgf,EAAKsD,aAAapL,EAAMpF,EAASkN,EAAKysK,WAAWprK,KAAKrB,KAE1EosK,EAAgB39K,eAAiB29K,EAAgB39K,cAAc6X,KAAKn5B,KAAM+qB,IAE9E,eAAekE,GACXgwK,EAAgBlxL,gBAAkBkxL,EAAgBlxL,eAAeorB,KAAKn5B,KAAMivB,GAC5E4D,EAAKisK,eAAiBjtK,EAAWtE,KAAK,IAAIlC,OAAOgvK,UAI7D,+BACI,OAAO,eAAUr6L,KAAKgoC,gBAAgB+0J,wBAE1C,WAAWl+F,GACH7+F,KAAKu/L,gCACDv/L,KAAKq/L,OAAS,eAAUr/L,KAAKq/L,MAAMG,uBAC/B3gG,GAAiBA,EAAclgG,OAC/BqB,KAAKq/L,MAAMvwK,OAAO,QAAS9uB,KAAKk/L,6BAA6BrgG,IAE7D7+F,KAAKq/L,MAAM72G,YAK3B,kBAAkB98E,GACd,IACI+zL,EACAj/L,EAFAk/L,EAAkBh0L,EAAQpH,OAAOtC,GAAUA,EAAO6P,UAAY7P,EAAO5D,OAAS4D,EAAOkU,SAAW,eAAUlU,EAAOsU,aAAetU,EAAOsU,YAAc,IAIzJ,GADAtW,KAAK2/L,oBAAsB,GACvB3/L,KAAK8uB,OAAO,wBAA0B,WAAa9uB,KAAK8uB,OAAO,sBAC/D,OAAO9uB,KAAK2/L,oBAEhB,IAAKn/L,EAAI,EAAGA,EAAIk/L,EAAgB/gM,OAAQ6B,IAChC,eAAUk/L,EAAgBl/L,GAAGgW,iBAAmBkpL,EAAgBl/L,GAAGgW,gBAAkB,IACrFipL,GAA2B,EAC3Bz/L,KAAK2/L,oBAAoBD,EAAgBl/L,GAAGgW,gBAAkBkpL,EAAgBl/L,IAGtF,GAAIi/L,EACAz/L,KAAK2/L,oBAAoB1oI,eACtB,GAAIj3D,KAAK8uB,OAAO,uBACnB,IAAKtuB,EAAI,EAAGA,EAAIk/L,EAAgB/gM,OAAQ6B,IAAK,CACzC,IAAI6W,EAAerX,KAAKg/B,mBAAmB0B,gBAAgBg/J,EAAgBl/L,GAAGyB,OAC9EjC,KAAK2/L,oBAAoBtoL,GAAgBqoL,EAAgBl/L,GAIjE,OADAR,KAAK2/L,oBAAsB3/L,KAAK2/L,oBAAoBr7L,OAAOM,QACpD5E,KAAK2/L,qBAEhB,mBACI,OAAO3/L,KAAKk8L,gBAEhB,mBACI,OAAOl8L,KAAKk8L,eAAev9L,OAAS,GAExC,wBACI,OAAOqB,KAAK2/L,qBAEhB,OACI,IAAI9sK,EAAO7yB,KACX6yB,EAAKmM,mBAAqBnM,EAAK7C,cAAc,WAC7C6C,EAAKmV,gBAAkBnV,EAAK7C,cAAc,QAC1C6C,EAAK63C,UAAY73C,EAAKgc,QAAQ,YAC9Bhc,EAAKmM,mBAAmBqc,iBAAiB,CACrCj9C,KAAM08L,GACNtoK,QAASsoK,GACTjpL,SAAS,EACT+tL,gBAAgB,EAChBnsL,SAAUgnL,GACVnmL,UAAW,SACXxC,MAAO,OACP2D,aAAcylL,GACd/kL,cAAe,UAEnB0c,EAAKmM,mBAAmBsJ,eAAe5G,IAAI,KACvC,IAAIm+J,IAAsBhtK,EAAKitK,kBAAkBjtK,EAAKmM,mBAAmB/M,cAActzB,OACvFk0B,EAAKmM,mBAAmBoM,aAAa,mBAAoB,kBAAmBy0J,GAAmB,KAEnGhtK,EAAKm0F,mBAAqBn0F,EAAK7C,cAAc,WAC7C6C,EAAK8sK,oBAAsB,GAC3B9sK,EAAKqpK,eAAiB,GACtBrpK,EAAK3C,aAAa,gCAClB2C,EAAKqC,YAET,cAAclH,GACN,wBAA0BA,EAAKra,MAC/B3T,KAAKg/B,mBAAmBoM,aAAa,mBAAoB,kBAAmBpd,EAAKhwB,OAErFgC,KAAKk1B,SAASlH,IAElB0J,cAAe,IAAM,CAAC,8BAA+B,0BAA2B,6BAChF,4BAA4Bq2B,GACxB,IAAIhI,EAAiB/lD,KAAKgoC,gBAC1B,OAAO+d,EAAeg3I,uBAAyB,eAAah3I,EAAeg3I,sBAAuBhvI,IAEtG,wBAAwBA,GACf/tD,KAAKu/L,gCACNv/L,KAAKq7L,8BAA8BttI,IAG3C,4BACQ/tD,KAAKu/L,gCACLv/L,KAAKq7L,iCAGb,+BAA+BttI,EAAK5qC,GAChC,IAAI0Y,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiB/G,GACrD,IAAK,IAAMlyB,EAAX,CAGA,IAAIiD,EAAO,eAAE9+B,KAAKixB,UAAU07E,cAAc9wE,IAC1C77B,KAAK+/L,4BAA4BjhK,EAAM3b,KAE3C,4BAA4B2b,EAAMkhK,GAC9B,IAAIC,EAAmBnhK,EAAKvR,KAAK,wBACjC0yK,EAAiBnzK,KAAK,aAAc,OAAoB/uB,OAAOiiM,MAGnEE,GAA4B,GAAQprK,eAAelC,QAAQ2oK,IAC3DluL,GAAqB47G,GAAQ,cAAcA,EAC3C,aAAav3F,EAAO+2J,GAChB,OAAO5gJ,MAAM68I,aAAahzJ,EAAO+2J,KAAa/2J,EAAMf,SAAS3wB,KAAKw0B,gBAAgB+lK,OAA0B7oK,EAAMf,SAAS+pK,IAE/H,+BAA+B/V,EAAWjzJ,GACtCmW,MAAMujJ,+BAA+BzG,EAAWjzJ,GAChD,IAAIyuK,EAAoBngM,KAAKgnH,mBAAmB8G,wBAC5CnuF,EAAY3/B,KAAKgnH,mBAAmBrnF,YACpCA,GAAaglJ,GAAawb,IAAsBngM,KAAKolL,kBAAkBT,KACvE,OAAan2J,IAAIm2J,EAAW,QAAS2W,IACrC,OAAahtK,GAAGq2J,EAAW,QAAS,CAChCA,UAAWA,GACZ2W,IACH,OAAa9rK,QAAQkC,EAAO,UAGpC,eAAeA,GACX,OAAOmW,MAAMs+I,eAAez0J,IAAUA,EAAMf,SAASiqK,IAEzD,OACI/yJ,MAAMqX,OACNl/C,KAAKogM,oBAAsBpgM,KAAKgwB,cAAc,qBAG3CqwK,GAAmB,CAC1BnzJ,eAAgB,KAAM,CAClB3hC,qBAAqB,EACrBmC,6BAA8B,OAElCqrB,YAAa,CACT6zJ,gBAAiBsT,IAErB5mK,UAAW,CACPN,MAAO,CACHtN,SAAU,CACN,iBAAiB/F,GACb,IAAIkN,EAAO7yB,MAEPgC,OAAQA,GACR2jB,EACJ,OAAIA,EAAQiY,UAAYw8J,IAAqB,WAAap4L,EAAOwwB,QACtD,SAAS/U,EAAWkI,GACvBkN,EAAKytK,2BAA2BC,0BAA0B,eAAE9iL,GAAYkI,IAGzEkN,EAAKqC,SAASvP,IAEzB,WAAW0Y,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIrC,OAHI65B,GAAOA,EAAIT,UAAYw8J,IAAqB/7J,EAAI0vB,MAAQ/tD,KAAKgoC,gBAAgB+0J,uBAC7Ej+J,EAAKpS,SAASiuK,IAEX77J,GAEX,aAAaA,EAAMnZ,GACf3lB,KAAKk1B,SAAS4J,EAAMnZ,GACpB,IAAIy1K,EAA4Bp7L,KAAKsgM,2BACjCE,EAA2BpF,EAA0BqF,wBAAwB9hM,OAC7E+hM,EAAsBtF,EAA0BuF,mBAAmBhiM,OACnE6hM,IAA6BE,GAC7BzF,GAAoBn8J,GAAMikC,OAAOr2C,SAASmuK,IAE1C,SAAWl1K,EAAQ0Y,IAAIT,SACvBw9J,EAA0B2E,4BAA4BjhK,EAAMi8J,KAGpE,6BAA6BlsK,GACzB,IAAIkwK,EAAelwK,EAAS6F,QAAQ,IAAIrJ,OAAOgvK,KAC/C,GAAI0E,EAAapgM,QAAUogM,EAAarqK,QAAQ10B,KAAKixB,UAAUpC,YAAYlwB,OAAQ,CAC/E,IAAIyX,EAAW2oL,EAAapgM,OAASogM,EAAajxK,QAAQ/Z,KAAK,gBAAkB,KACjF,OAAOqC,GAAYA,EAASpU,QAAUhC,KAAKg/B,mBAAmB0B,gBAAgBtqB,EAASpU,OAAOC,OAElG,OAAOjC,KAAKk1B,SAASrG,IAEzB,cAAc6C,EAAO/L,GACjB3lB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBmhB,EAAQ0Y,IAAIT,UAAYw8J,IAAqBz0K,EAAQ3jB,OAAOk8B,eAAiB,IAC7ExM,EAAMhF,SAAS1sB,KAAKw0B,gBAAgB+lK,MAG5C,QAAQlvJ,EAAcjH,GAClB,IAAIrZ,EAAO/qB,KAAKgoC,gBAAgBxmB,QAAQ,OAAS6pB,QAAgB,IAAWA,OAAe,EAASA,EAAaxP,UACjH,IAAK,OAAS9Q,QAAQ,IAAWA,OAAO,EAASA,EAAK6S,WAAaw8J,GAAmB,CAClF,IAAIwG,EAAuB5gM,KAAKsgM,2BAA2BO,yBAC3D,OAAO7gM,KAAKk1B,SAASmW,EAAcjH,EAAMw8J,GAE7C,OAAO5gM,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,gBAAgBq3B,EAAU6O,GACtB,IAAI3f,EAAO/qB,KAAKgoC,gBAAgBxmB,QAAQqa,GACxC,OAAI9Q,GAAQA,EAAK6S,UAAYw8J,GAClBp6L,KAAKsgM,2BAA2BQ,4BAA4Bp2J,GAEhE1qC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,oBAAoBmhB,GAChB,GAAIA,EAAQ0Y,KAAO,mBAAqB1Y,EAAQ0Y,IAAIT,QAAS,CACzD,IAAI8rC,EAAO1pE,KAAKixB,UAAU4d,QAAQ,qBAC9Bz4B,EAAW,eAAEuP,EAAQgkD,eAAej1C,QAAQ,wBAAwB+2C,OAAO13D,KAAK,gBAEpF,OADA4R,EAAQ3jB,OAASoU,EAAWA,EAASpU,OAAS2jB,EAAQ3jB,OAC/C0nE,EAAKE,qBAAuBF,EAAKE,oBAAoBjkD,GAEhE,OAAO3lB,KAAKk1B,UAAYl1B,KAAKk1B,SAASvP,IAE1C,mBAAmBiH,GACf,IAAIm0K,IAAc/gM,KAAKk1B,UAAWl1B,KAAKk1B,SAAStI,GAChD,OAAOm0K,KAAiBn0K,EAAQ8H,QAAQ,IAAIrJ,OAAOovK,KAA6B97L,QAEpF,OACIqB,KAAKk1B,WACLl1B,KAAKsgM,2BAA6BtgM,KAAKgwB,cAAc,sBAIjE+I,YAAa,CACT1sB,OAAQ,CACJ,mBAAmBrK,EAAQ8P,GACvB9R,KAAKk1B,SAASlzB,EAAQA,EAAOk8B,eAAiB,GAAuBl8B,EAAOwwC,aAAe1gC,KAGnG2vI,eAAgB,CACZ,cAAc4vB,EAAOC,EAAa5lK,GAC9B,IAAIxJ,EAASlC,KAAKk1B,SAASm8I,EAAOC,EAAa5lK,GAC3CqrC,EAAgBrrC,EAAQ2lK,EAAMnyI,cAAgB,GAC9C6zI,EAAkB/yK,KAAKgzK,oBAAoB3B,EAAMnyI,aACjDyyI,EAAajmK,EAAQqnK,IAAoB,GACzCiuB,EAAuBjuB,IAAoB1B,EAAMnyI,YAAc,GAAKyyI,EAAWn/I,QAC/EyuK,EAAyBlqJ,EAAc7Y,eAAiB,IAAwB8iK,EACpF,OAAO9+L,GAAU++L,GAErB,oBAAoB3uB,GAChB,IAAIvzI,EAAiB/+B,KAAKg/B,mBAAmBC,oBACzCh9B,EAAQjC,KAAKk1B,SAASo9I,GAC1B,MAAOvzI,EAAe98B,IAAU88B,EAAe98B,GAAOi8B,eAAiB,GACnEj8B,IAEJ,OAAOA,IAGfs0K,eAAgB,CACZ,cAAclF,EAAO3lK,EAAS+Z,EAAU+9B,GACpC,IAAIthD,EAASlC,KAAKk1B,SAASm8I,EAAO3lK,EAAS+Z,EAAU+9B,GACjDxhD,EAAS0J,EAAQ2lK,EAAMnyI,YAAc,IAAM,GAC3C+hK,EAAyBj/L,EAAOk8B,eAAiB,GACrD,OAAOh8B,GAAU++L,IAGzB/0L,QAAS,CACL,iBACI,OAAOlM,KAAK04G,gBAAkB,IAElC,yBAAyBv5E,EAAan9B,GAClC,OAAIhC,KAAK04G,gBAAkB,IAAiB,mBAAqBv5E,EAAYvB,SACzEuB,EAAYD,YAAcl/B,KAAKg/B,mBAAmB0B,gBAAgB1+B,EAAOC,OAClEjC,KAAKunH,kBAAkBpoF,IAE3Bn/B,KAAKk1B,SAASiK,EAAan9B,IAEtC,eAAestB,GACX,IAAI4xK,EAAgB5xK,EAAeoF,QAAQ,IAAIrJ,OAAOgvK,KAClDx+J,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiB90D,KAAKgoC,gBAAgB+0J,uBAAyB,EAC/F3mL,EAAW8qL,EAAcviM,OAASuiM,EAAcpzK,QAAQ/Z,KAAK,gBAAkB,KAC/EmrB,EAAc9oB,GAAYA,EAASpU,QAAUhC,KAAKg/B,mBAAmB0B,gBAAgBtqB,EAASpU,OAAOC,OACpGjC,KAAKwkH,WAAW3oF,EAAUqD,IAC3Bl/B,KAAKk1B,SAAS5F,IAGtB,mBAAmB4/B,EAAYrzB,GAC3B,IAAK77B,KAAKogM,oBAAoBp2E,yBAA2BhqH,KAAKogM,oBAAoBnxJ,mBAAoB,CAClG,IAAIztB,EAAQxhB,KAAKgoC,gBAAgBxmB,QAC7BuJ,EAAOvJ,EAAMqa,GACbslK,EAAoB,QAActsI,cAAc70D,KAAKgoC,gBAAgB+0J,sBAAuBv7K,GAChGxhB,KAAKohM,2BAA6BphM,KAAKogM,oBAAoBb,+BACvD4B,GAAqB,GACrBjyI,EAAWzvD,KAAK0hM,EAAoB,GAExCjyI,EAAWzvD,KAAKo8B,EAAW,GAC3B77B,KAAKgoC,gBAAgB+0J,oBAAoBhyK,EAAKgjC,OAGtD,gBAAgBA,GACZ/tD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,KAAKogM,oBAAoBnxJ,qBACzBjvC,KAAKogM,oBAAoB/E,8BAA8BttI,EAAK/tD,KAAKopH,iBACjEppH,KAAKohM,2BAA4B,IAGzC,6BACQphM,KAAKk6K,kBAAoBl6K,KAAKohM,4BAC9BphM,KAAKogM,oBAAoBiB,4BACzBrhM,KAAKohM,2BAA4B,IAGzC,+BACQphM,KAAKogM,oBAAoBnxJ,oBACzBjvC,KAAKshM,8BAGb,qBACIthM,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1B,IAAI8V,EAAW,IAAI,OAWnB,OAVIta,KAAKk6K,kBAAoBl6K,KAAKogM,oBAAoBnxJ,mBAClD,eAAKjvC,KAAKgwB,cAAc,cAAcgmG,UAAS,IAAOx/F,KAAKg8F,IACnDA,GACAxyH,KAAKuhM,+BAETjnL,EAAS4iB,YAGb5iB,EAAS4iB,UAEN5iB,EAAS2oB,WAEpB,wBACIjjC,KAAKk1B,WACLl1B,KAAKuhM,gCAET,iCAAiCljK,GAC7B,IAAI6wB,EAAalvD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAI3C,OAHIxE,KAAKogM,oBAAoBoB,4BAA4BnjK,EAAI0vB,MACzDmB,EAAWzvD,KAAK4+B,EAAIT,UAAYw8J,GAAoB/7J,EAAIxC,SAAW,EAAIwC,EAAIxC,SAAW,GAEnFqzB,GAEX,gCAAgCA,GAC5B,IAAIuyI,EAAczhM,KAAKgoC,gBAAgB05J,qBACvC,GAAID,EAAa,CACb,IAAI5lK,EAAW,QAAcg5B,cAAc4sI,EAAazhM,KAAKgoC,gBAAgBxmB,SACzEqa,GAAY,GACZqzB,EAAWnvD,QAAQ87B,KAI/B,QAAQA,GACA77B,KAAKogM,oBAAoBp2E,yBACzBhqH,KAAKogM,oBAAoBiB,4BAE7BrhM,KAAKk1B,SAAS2G,IAElB,UAAUA,GACN,IAAIooF,EAASjkH,KAAKgoC,gBAAgByzE,iBAAiB5/E,GAC/C77B,KAAK04G,gBAAkB,IAAmB14G,KAAKogM,oBAAoBoB,4BAA4Bv9E,IAC/FjkH,KAAKogM,oBAAoBiB,4BAE7BrhM,KAAKk1B,SAAS2G,IAElB,OACI77B,KAAKk1B,WACLl1B,KAAKogM,oBAAsBpgM,KAAKgwB,cAAc,qBAGtDukD,SAAU,CACN,eACI,OAAOv0E,KAAKk1B,cAAgBl1B,KAAKsgM,2BAA2BG,wBAAwB9hM,QAExF,qBAAqBuwE,EAAcnwC,GAC/B,IAAI4iK,EAAqB3hM,KAAKsgM,2BAC1BsB,EAAmBD,EAAmBhB,mBACtCkB,EAAqBF,EAAmB7B,kBAAkB9/L,KAAKg/B,mBAAmB/M,cACtF0vK,EAAmBG,qBAAqB5yH,EAAcnwC,EAAgB8iK,GACtE,IAAIhjG,EAAgB8iG,EAAmBhB,mBAMvC,OALIgB,EAAmBpC,gCACfqC,EAAiBjjM,SAAWkgG,EAAclgG,QAC1CgjM,EAAmBrC,WAAWzgG,IAEpCA,EAAclgG,QAAUgjM,EAAmBN,4BACtCrhM,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,mBAAmBwpE,GACfA,GAAahuE,KAAKsgM,2BAA2ByB,qBAC7C/hM,KAAKk1B,SAAS84C,IAElB,eACI,IAAIotH,EAA4Bp7L,KAAKsgM,2BACrC,OAAOtgM,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAAc42L,EAA0BqF,wBAAwB9hM,QAAUy8L,EAA0BnsJ,oBAEzI,OACIjvC,KAAKsgM,2BAA6BtgM,KAAKgwB,cAAc,mBACrDhwB,KAAKk1B,YAET,UACIl1B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1Bi3B,aAAaz7B,KAAKgiM,8BAG1BjuL,KAAM,CACF,cAAcyN,EAAOjG,GACjB,IACI0oB,WAAYA,GACZ1oB,EAEJ,GADAiG,EAAQxhB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC9B,eAAiBy/B,IAAe,eAAUjkC,KAAK0hM,sBAC/C,OAAOlgL,EAEX,IAAIygL,EAAiB,QAAcptI,cAAc70D,KAAK0hM,qBAAsBlgL,GACxEmkH,GAAU,IAAU3lI,KAAK8uB,OAAO,IACpC,GAAImzK,GAAkB,EAAG,CACrB,IAAIl3K,EAAOvJ,EAAMygL,GACjBzgL,EAAM4lB,OAAO66J,EAAiB,EAAG,EAAG,CAChCpwL,SAAS,EACT+rB,QAASw8J,GACTrsI,IAAKhjC,EAAKgjC,IACVh6C,KAAMgX,EAAKhX,KACX4wE,KAAM55D,EAAK45D,KACXl0B,eAAgB1lC,EAAK0lC,eACrBmQ,SAAU71C,EAAK61C,SACfh9D,OAAQmnB,EAAKnnB,aAEV,YAAcqgC,GAAgB0hG,GAAWpqH,EAAOhL,qBACvDvQ,KAAK0hM,0BAAuB,GAEhC,OAAOlgL,GAEX,wBAAwBusC,GACpB,IAAImB,EAAalvD,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC3C,GAAIxE,KAAKgwB,cAAc,mBAAmBwxK,4BAA4BzzI,GAAM,CACxE,IAAIm0I,EAAehzI,EAAWA,EAAWvwD,OAAS,GAClDuwD,EAAWzvD,KAAKyiM,EAAe,GAEnC,OAAOhzI,GAEX,oBAAoBlxD,GAChB,IAAI,eAAUA,GAGV,OAAOgC,KAAK0hM,qBAFZ1hM,KAAK0hM,qBAAuB1jM,GAKpC,8BAA8B+vD,EAAKixI,GAC/B,IAAImD,EAA0B,QAActtI,cAAc70D,KAAK0hM,qBAAsB1hM,KAAKopD,QACtFg5I,EAA0B,QAAcvtI,cAAc9G,EAAK/tD,KAAKopD,QAChE+4I,GAA2B,GAAKA,IAA4BC,IAA4BpD,IACxFjxI,OAAM,EACNq0I,GAA2B,GAE/B,IAAIC,EAASriM,KAAK0hM,qBAClB1hM,KAAK0hM,qBAAuB3zI,EACxBo0I,GAA2B,GAC3BA,IAEAC,GAA2B,GAC3BA,IAEJ,IAAI/zI,EAAgBruD,KAAKsuD,mBACzBtuD,KAAKksD,YAAY,CACboD,0BAA0B,EAC1BrrB,WAAY,SACZirB,WAAY,CAACizI,EAA0B9zI,EAAe+zI,EAA0B/zI,KAEpF,IAAI+sI,EAA4Bp7L,KAAKgwB,cAAc,mBACnDorK,EAA0BkH,+BAA+Bv0I,EAAKitI,IAC9DI,EAA0BkH,+BAA+BD,EAAQtH,KAErE,OACI/6L,KAAKk1B,WACLl1B,KAAK0hM,0BAAuB,IAGpCvuH,cAAe,CACX,gBAAgBtkD,GACZ,OAAO7uB,KAAKk1B,SAASrG,KAAc,OAASA,QAAY,IAAWA,OAAW,EAASA,EAAS8B,SAAS,4BAA8B,OAAS9B,QAAY,IAAWA,OAAW,EAASA,EAAStB,KAAK,gBAAgB5uB,SAE7N,wBACI,MAAO,GAAG0sB,OAAOrrB,KAAKk1B,WAAY,sEAEtC,6BACI,MAAO,GAAG7J,OAAOrrB,KAAKk1B,WAAY,8BAA8B7J,OAAOrrB,KAAKw0B,gBAAgB,OAGpG9oB,QAAS,CACL,iBAAiB1J,GACb,OAAOhC,KAAKk1B,SAASlzB,KAAYA,EAAO49L,iBAGhDvyL,mBAAoBA,MCviCzB,SAASk1L,GAAkBxrC,EAAMx2D,EAAU1kE,EAAU2mK,EAAS37I,EAAa47I,GAC9E5mK,EAAWA,GAAY,EACvB2mK,EAAUA,GAAW,GACrBC,EAAuBA,GAAwB,GAC/CD,EAAQ3mK,GAAY2mK,EAAQ3mK,IAAa,EACzC,IAGI2tJ,EAHAnrJ,EAAM04H,EAAKl7H,GACX85D,EAAa8sG,EAAqB5mK,GAAY,GAAK,EACnD6mK,EAAuB,EAE3B,GAAKrkK,EAAL,CAGA,IAAKmrJ,EAAW7zF,EAAY6zF,EAAWnrJ,EAAI1/B,OAAQ6qL,IAAY,CAC3D,IAAIntJ,EAAOgC,EAAImrJ,GACXnyK,EAAemyK,EAAWgZ,EAAQ3mK,GAClCoC,EAAU5B,EAAK4B,SAAW,EAI9B,GAHAskK,GAAkBxrC,EAAMx2D,EAAU1kE,GAAYQ,EAAK+T,SAAW,GAAIoyJ,EAASvkK,EAASwkK,GACpFD,EAAQ3mK,IAAaoC,EAAU,EAC/BykK,GAAwBzkK,EACpB5B,EAAK+T,QACL,IAAK,IAAI5vC,EAAIq7B,EAAW,EAAGr7B,EAAIq7B,EAAWQ,EAAK+T,QAAS5vC,IACpDgiM,EAAQhiM,GAAKgiM,EAAQhiM,IAAM,EAC3BgiM,EAAQhiM,IAAM67B,EAAK4B,SAAW,EAGtC,IAAI,IAAUsiE,EAASlkE,EAAMhlB,EAAcwkB,EAAU2tJ,GACjD,MAEJ,QAAI,IAAW3iI,GAAe67I,GAAwB77I,EAClD,MAGR47I,EAAqB5mK,GAAY2tJ,GAE9B,SAASmZ,GAAkB5rC,EAAMphE,EAAYitG,GAChD,IAAIC,EAAU,GACdN,GAAkBxrC,EAAM,CAAC+rC,EAAYzrL,EAAcwkB,KAC/C,IACIoC,EADA5B,EAAOymK,EAEPC,EAAc1mK,EAAK4B,SAAW,EAC9B/H,EAAY7e,EAAe0rL,EAAc,GAAKptG,GAAct+E,EAAeurL,EAE/E,GADAC,EAAQhnK,GAAYgnK,EAAQhnK,IAAa,GACrC3F,EACI7e,EAAes+E,GACf13D,EAAU8kK,GAAeptG,EAAat+E,GACtCA,EAAes+E,GAEf13D,EAAU8kK,EAEV1rL,EAAe4mB,EAAU2kK,IACzB3kK,EAAU2kK,EAAWvrL,GAErB4mB,IAAY8kK,IACZ1mK,EAAO,OAAAlP,EAAA,MAAO,GAAIkP,EAAM,CACpB4B,QAASA,KAGjB4kK,EAAQhnK,GAAUp8B,KAAK48B,QACpB,GAAIhlB,EAAeurL,EACtB,OAAO,IAIf,IAAK,IAAIpiM,EAAI,EAAGA,EAAIqiM,EAAQlkM,OAAQ6B,IAChCqiM,EAAQriM,GAAKqiM,EAAQriM,IAAM,GAE/B,OAAOqiM,ECjEX,GAASzwJ,eAAe,aAAciuJ,ICStC,IAAI2C,GAAuB,GACvB,GAAmC,CACnC,cACIhjM,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKg/B,mBAAmBuuC,UAE5B,cAAct+C,GACV,IAAIwwC,EAAaz/D,KAAKigE,iBAElB78C,KAAMA,GACN6L,EAAEuyC,aACNxhE,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,KAAK8uB,OAAO,eAAiB2wC,IAC7Br8C,EAAO,eAASq8C,EAAWrxB,YAAc,eAASqxB,EAAW5wC,YAAczL,GAE/EpjB,KAAKg/B,mBAAmBikK,kBAAkB7/K,IAE9C,oBACI,IAAIq8C,EAAaz/D,KAAKigE,gBAClBwS,EAAY,OAAShT,QAAc,IAAWA,OAAa,EAASA,EAAWgT,YAC/EzyE,KAAKuhE,WAAa,GAAKkR,IAAczyE,KAAKuhE,YAC1C9B,EAAW17B,SAAS,CAChBvwB,EAAGxT,KAAKuhE,cAIpB,YAAYtyC,GACR,GAAI,OAASA,QAAK,IAAWA,OAAI,EAASA,EAAE69B,wBAAyB,CACjE,IAAI+X,EAAyB,KACzB7kE,KAAK41B,gBAAgBoN,OAAO6hC,GAC5B7kE,KAAKkjM,qBAETljM,KAAK41B,gBAAgB8L,IAAImjC,GAE7B,OAAO7kE,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAGrC2+L,GAAqB,CACrB,cACI,IAAI7oL,EAAWta,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAIzC,OAHIxE,KAAKg/B,mBAAmBq7B,iBACxBr6D,KAAK8vL,4BAEFx1K,IAGX8oL,GAA4B,WAC5B,IAAIC,EAAY,SAAS33L,GACrB,OAAOA,EAAQ7M,IAAImD,GAAUA,EAAOk8B,cAAgBnI,WAAW/zB,EAAO8P,QAAUkxL,KAEhFh1J,EAAU,CACV,OACIhuC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAKsjM,gBAAkB,KACvBtjM,KAAKujM,cAAgB,KACrBvjM,KAAKgiI,UAAY,EACjBhiI,KAAKwjM,uBAAyB,IAElC,oBACIxjM,KAAKk1B,WACLl1B,KAAKwjM,uBAAyB,IAElC,kBAAkBlrL,GAId,IAHA,IAAIymB,EAAiB/+B,KAAKi/B,uBAAkB,GAAQ,GAChDyI,EAAS27J,EAAUtkK,GACnB0kK,EAAkB,EACbxhM,EAAQ,EAAGA,EAAQylC,EAAO/oC,OAAQsD,IAAS,CAChD,GAAIwhM,GAAmBnrL,EACnB,OAAOo/B,KAAK05B,MAAMnvE,EAAQjC,KAAK0jM,qBAEnCD,GAAmB/7J,EAAOzlC,GAE9B,OAAO,GAEX,gBACI,IAAI6P,EAAQ9R,KAAK8uB,OAAO,SACxB,MAAI,kBAAoBhd,EACbA,EAEJ9R,KAAKgwB,cAAc,YAAY4iD,YAAc,eAAc5yE,KAAKixB,UAAUpC,aAErF,gBAAgBvW,GACZ,IAAIymB,EAAiB/+B,KAAKi/B,uBAAkB,GAAQ,GAChDyI,EAAS27J,EAAUtkK,GACnB0kK,EAAkB,EACtBnrL,GAAYtY,KAAK2jM,gBACjB,IAAK,IAAI1hM,EAAQ,EAAGA,EAAQylC,EAAO/oC,OAAQsD,IAAS,CAChD,GAAIwhM,GAAmBnrL,EACnB,OAAOo/B,KAAKklB,KAAK36D,EAAQjC,KAAK0jM,qBAElCD,GAAmB/7J,EAAOzlC,GAE9B,OAAOy1C,KAAKklB,KAAKl1B,EAAO/oC,OAASqB,KAAK0jM,sBAE1C,oBACI,OAAO1jM,KAAK8uB,OAAO,6BAEvB,sBACI,IAAIlwB,EAAO,IAAIwE,KACfpD,KAAKsoC,eAAe7R,KAAK,CACrB+Q,YAAa,CACT62D,KAAK,EACL1/F,OAAQ,GAEZ4lC,YAAa,CACT74B,SAAS,EACTohD,yBAAyB,EACzBnuD,OAAQ,KAGhBqB,KAAKwlI,YAAc,IAAIpiI,KAAOxE,GAElC,sBACI,IAAI6qI,EAAqBzpI,KAAK8uB,OAAO,sCACjCxe,EAActQ,KAAK8uB,OAAO,yBAC1B6zG,EAAmB,EAIvB,QAHK,eAAUryH,IAAgBtQ,KAAKwlI,YAAciE,GAAsBn5H,KACpEqyH,EAAmB3iI,KAAK8uB,OAAO,sBAE5B6zG,GAEX,kBAAkBrqH,GACd,IAAIqqH,EAAmB3iI,KAAK6iI,sBACxBF,EAAmB,GACnBlnG,aAAaz7B,KAAK4jM,iBAClB5jM,KAAK4jM,gBAAkBpoK,WAAW,KAC9Bx7B,KAAK6jM,uBAAuBvrL,IAC7BqqH,IAEH3iI,KAAK6jM,uBAAuBvrL,IAGpC,gBACI,OAAO,kBAAe,YAActY,KAAK8uB,OAAO,kCAEpD,SACI9uB,KAAK6jM,uBAAuB7jM,KAAKgiI,YAErC,uBAAuB1pH,GACnB,GAAItY,KAAKq6D,gBAAiB,CACtB,IAAIstC,EAAiB3nG,KAAK+8H,kBAAkBzkH,GACxCsnH,EAAe5/H,KAAKi9H,gBAAgB3kH,GACpCwrL,EAAqBxrL,EAAWtY,KAAKgiI,UAAYhiI,KAAKsjM,gBAAkB37F,EAAiB3nG,KAAKujM,cAAgB3jE,EAClH5/H,KAAKgiI,UAAY1pH,EACbwrL,IACA9jM,KAAKsjM,gBAAkB37F,EACvB3nG,KAAKujM,cAAgB3jE,EACrB5/H,KAAK+jM,yBAIjB,gBAAgBloK,EAAUykB,GACtB,IAAI+5E,EAAer6H,KAAKk1B,SAAS2G,GACjC,GAAI77B,KAAKq6D,kBAAoB/Z,GAAU+5E,EAAa17H,OAAQ,CACxD,IAAIgiD,EAAyB05E,EAAax7H,IAAIkxE,GAAKA,EAAEv9C,SAASjwB,QAAQ,eAEtE,OADA83H,EAAa15E,GAAwB1iB,QAAUj+B,KAAKi/B,oBAAoBtgC,OAASqB,KAAKk1B,WAAWv2B,OAAS,EACnG07H,EAEX,OAAOA,GAEX,uBAAuBx+F,EAAUykB,GAC7B,IAAIjwB,EACJ,GAAIiwB,IAAWtgD,KAAKq6D,kBAAoBr6D,KAAKugD,8BACzC,OAAOvgD,KAAKk1B,SAAS2G,KAEpB,QAAUxL,EAAKrwB,KAAKk1C,gBAAa,IAAW7kB,OAAK,EAASA,EAAG1xB,SAAY,eAAUqB,KAAKsjM,kBAAqB,eAAUtjM,KAAKujM,iBAC7HvjM,KAAKsjM,gBAAkBtjM,KAAK+8H,kBAAkB/8H,KAAKgiI,WACnDhiI,KAAKujM,cAAgBvjM,KAAKi9H,gBAAgBj9H,KAAKgiI,YAEnD,IAAIr6B,EAAiB3nG,KAAKsjM,gBACtB1jE,EAAe5/H,KAAKujM,cACpBS,EAAqB,GAAG34K,OAAOwQ,EAAU,KAAKxQ,OAAOs8E,EAAgB,KAAKt8E,OAAOu0G,GACrF,GAAI5/H,KAAKwjM,uBAAuBQ,GAC5B,OAAOhkM,KAAKwjM,uBAAuBQ,GAEvC,IAAIjlK,EAAiB/+B,KAAKk1B,WACtBmb,EAAWrwC,KAAKkwC,cAChBtpB,EAAW5mB,KAAK0jM,oBAChB/tG,EAAagS,EAAiB/gF,EAC9Bg8K,EAAWhjE,EAAeh5G,EAC1ByzG,EAAer6H,KAAKmjE,qBAAgB,GAAQ,GAC5CxiB,EAAyB05E,EAAax7H,IAAIkxE,GAAKA,EAAEv9C,SAASjwB,QAAQ,eAClE0hM,EAAwB5pE,EAAa17H,OAASgiD,EAAyB,EACvEujJ,EAAoBnlK,EAAev8B,MAAM,EAAGyhM,GAC5CE,EAAeplK,EAAev8B,MAAMyhM,EAAuBtuG,GAC3DyuG,EAAaf,EAAUc,GAAc3qK,OAAO,CAAC21B,EAAGC,IAAMD,EAAIC,EAAG,GAC5Dg1I,IACDzuG,EAAa,GAEjB,IAAI0uG,EAAsBhqE,EAAa17H,OAAS07H,EAAa17H,OAASgiD,EAAyB,EAAI,EAC/F2jJ,EAAkBvlK,EAAev8B,MAAMu8B,EAAepgC,OAAS0lM,GAC/DE,EAAaxlK,EAAev8B,MAAMogM,EAAU7jK,EAAepgC,OAAS0lM,GACpEG,EAAWnB,EAAUkB,GAAY/qK,OAAO,CAAC21B,EAAGC,IAAMD,EAAIC,EAAG,GAI7D,GAHKo1I,IACD5B,EAAW7jK,EAAepgC,QAE1B0xC,EAAW,GAAK,kBAAoBxU,EAAU,CAE9C,IADA,IAAI4oK,EAAc,GACTjkM,EAAI,EAAGA,GAAK6vC,EAAU7vC,IAC3BikM,EAAYhlM,KAAKO,KAAKk1B,SAAS10B,IAEnC0jM,EAAoBvB,GAAkB8B,EAAa,EAAGP,EAAkBvlM,QAAQk9B,IAAa,GAC7FyoK,EAAkB3B,GAAkB8B,EAAa1lK,EAAepgC,OAAS2lM,EAAgB3lM,OAAQogC,EAAepgC,QAAQk9B,IAAa,GACrIkD,EAAiB4jK,GAAkB8B,EAAa9uG,EAAYitG,GAAU/mK,IAAa,QAEnFkD,EAAiBA,EAAev8B,MAAMmzF,EAAYitG,GAiBtD,OAfIwB,IACArlK,EAAeh/B,QAAQ,CACnByyB,QAAS,UACT1gB,MAAOsyL,IAEXrlK,EAAiBmlK,EAAkB74K,OAAO0T,IAE1CylK,IACAzlK,EAAet/B,KAAK,CAChB+yB,QAAS,UACT1gB,MAAO0yL,IAEXzlK,EAAiBA,EAAe1T,OAAOi5K,IAE3CtkM,KAAKwjM,uBAAuBQ,GAAsBjlK,EAC3CA,GAEX,uBACI,IAAI1X,EAAS,EACb,GAAIrnB,KAAKsjM,gBAAkB,EAAG,CAC1B,IAAIjpE,EAAer6H,KAAKmjE,kBACpBxiB,EAAyB05E,EAAax7H,IAAIkxE,GAAKA,EAAEv9C,SAASjwB,QAAQ,eAClEmiM,EAAuB/jJ,GAA0B,EAAIA,EAAyB,EAClFt5B,EAASrnB,KAAKsjM,gBAAkBtjM,KAAK0jM,oBAAsBgB,EAAuB,EAEtF,OAAOr9K,EAAS,EAAIA,EAAS,GAEjC,UACIoU,aAAaz7B,KAAK4jM,iBAClB5jM,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAGlC,OAAOwpC,EAjMqB,GAmMrB22J,GAAuB,CAC9Bz3J,eAAgB,KAAM,CAClBt8B,UAAW,CACPiY,oBAAqB,WACrB+7K,eAAgB,EAChBC,yBAA0B,OAGlCvrK,UAAW,CACPP,YAAa,CACTrtB,QAAS03L,IAEbpqK,MAAO,CACHmU,kBAAmBg2J,GACnBz3K,SAAU,MCxQtB,GAAS0mB,eAAe,iBAAkBuyJ,I,UCA1C,SAASG,GAAatjL,EAAOujL,GACzB,IAAIC,EAAgBhnM,GAAUA,GAAQ,EAClC0rG,EAAc,GACdu7F,GAAQzjL,EAAM,IAAM,IAAIgY,OAAO,CAAC3O,EAAKE,IAASF,EAAMm6K,EAAcj6K,EAAKkT,SAAU,GACjF+5C,EAAU,CAACx2D,IACX,IAAIqa,EAAW,EACXiK,EAAY,EAChB,MAAO,KACH,IAAIzH,EAAM7c,EAAMqa,IAAa,GACzB9Q,EAAOsT,EAAIyH,KASf,OARIA,GAAazH,EAAI1/B,SACjBk9B,IACAiK,EAAY,GAEZ/a,IACAA,EAAKkT,QAAU+mK,EAAcj6K,EAAKkT,SAClClT,EAAKqlB,QAAU40J,EAAcj6K,EAAKqlB,UAE/BrlB,IAdD,CAgBXvJ,GACC2oE,EAAU,CAACtuD,EAAUiK,EAAW/a,KAChC,IAAIsT,EAAMqrE,EAAY7tE,GAAY6tE,EAAY7tE,IAAa,GAE3D,GADAwC,EAAIyH,GAAa/a,EACbA,EAAKkT,QAAU,GAAKlT,EAAKqlB,QAAU,EAAG,CAEtC,IADA,IAAIM,EAAQ,CAAC3lB,GAAQ,OAAAoC,EAAA,MAAO,GAAIpC,EAAMg6K,GAA1B,CAAsCh6K,GACzCglD,EAAI,EAAGA,EAAIhlD,EAAKkT,QAAS8xC,IAC9Boa,EAAQtuD,EAAUiK,EAAYiqC,EAAGr/B,GAErC,IAAK,IAAIm1F,EAAI,EAAGA,EAAI96G,EAAKqlB,QAASy1F,IAC9B,IAAK,IAAI3jF,EAAK,EAAGA,EAAKn3B,EAAKkT,QAASikB,IAChCioC,EAAQtuD,EAAWgqG,EAAG//F,EAAYoc,EAAIxR,KAKlD3lB,EAAOitD,IACPn8C,EAAW,EACf,MAAO9Q,EAAM,CACT,IAAK,IAAI+a,EAAY,EAAGA,EAAYm/J,EAAMn/J,IAAa,CACnD,IAAK/a,EACD,MAEA2+E,EAAY7tE,IAAa6tE,EAAY7tE,GAAUiK,KAGnDqkD,EAAQtuD,EAAUiK,EAAW/a,GAC7B+a,GAAa/a,EAAKkT,QAAU,EAC5BlT,EAAOitD,KAEXn8C,IAEJ,OAAO6tE,EC5BX,IAAIw7F,GAA6B,0BAC7BC,GAA+B,4BAC/BC,GAAsC,eACtCC,GAAuB,SACvBC,GAA6B,WAC7BC,GAAgC,iBAChCC,GAA2B,UACxB,MAAM,GACT,YAAY1sH,EAAkB2sH,EAAkCC,GAC5D1lM,KAAK2lM,kBAAoB7sH,EACzB94E,KAAK4lM,kCAAoCH,EACzCzlM,KAAK6lM,kBAAoBH,EAE7B,eAAe36K,GACX,IACIgjC,IAAKA,EACLh6C,KAAMA,EACN6pB,QAASA,EACTtnB,WAAYA,EACZ06C,aAAcA,GACdjmC,EACAvB,EAAcxpB,KAAK8lM,SAASruJ,aAAanhC,GACzCtY,EAAQ,GAAainD,gBAAgBz7B,EAAaA,EAAYksB,iBAAmBlsB,EAAYksB,iBAAiBqY,EAAIz3C,IAAey3C,EAAIz3C,GAAavC,EAAM6pB,GACxJ17B,EAAS,GAAGmpB,OAAO7B,EAAYhU,QAAS,MAAM6V,OAAO,GAAa85C,YAAYnnE,EAAOwrB,IAIzF,OAHIwnC,GAAgBA,EAAa,IAAMA,EAAa,GAAGryD,SACnDuD,GAAU,IAAImpB,OAAO,GAAa80C,uBAAuBnP,EAAa,GAAIhxD,KAAK8lM,SAASv7K,gBAErFroB,EAEX,kBAAkB4jC,GACd,OAAOA,EAEX,eACI,IAAIgzC,EAAmB94E,KAAK2lM,kBACxBluJ,EAAeqhC,EAAiB95C,mBAAmBsY,kBACvDt3C,KAAK8lM,SAAW,CACZp6L,QAASotE,EAAiBitH,YAAY/lM,KAAK4lM,mCAC3CnuJ,aAAcA,EACdj2B,MAAOxhB,KAAK6lM,mBAAqB/sH,EAAiBktH,eAAiBltH,EAAiBmtH,oBAAsBntH,EAAiBotH,eAC3HC,iBAAkBrtH,EAAiBhqD,OAAO,qBAC1CvE,aAAcuuD,EAAiBhqD,OAAO,iBACtCne,WAAYmoE,EAAiBhqD,OAAO,eAG5C,kBACI,MAAO,CAAC,CACJs3K,MAAM,EACN9xL,UAAW,UACZ,CACC8xL,MAAM,EACN9xL,UAAW,QACZ,CACC8xL,MAAM,EACN9xL,UAAW,UAGnB,mBACI,MAAO,CACH8xL,MAAM,EACN9xL,UAAW,eAAoBtU,KAAK8lM,SAASn1L,aAGrD,kBACI,IAAI01L,EAAe,GAQnB,OAPArmM,KAAKiyB,aAAaiF,QAAQl1B,IACtBqkM,EAAa5mM,KAAK,CACd6U,UAAWtS,EAAOsS,WAAa,OAC/BvW,OAAQiE,EAAOjE,OACf+D,SAAUE,EAAOF,aAGlBukM,EAEX,YACI,MAAO,IAAIrmM,KAAKsmM,qBAAsBtmM,KAAKumM,kBAAmBvmM,KAAKwmM,oBAEvE,qBAAqB1gK,GACjB,IAAIzV,EACA/b,GAAa,QAAU+b,EAAKrwB,KAAKiyB,aAAa6T,UAAe,IAAWzV,OAAK,EAASA,EAAG/b,YAAc,QAC3G,OAAOtU,KAAKsmM,kBAAkBznM,IAAIy9B,GAASA,EAAMhoB,WAAW/R,QAAQ+R,GAExE,WAAWunB,EAAUiK,GACjB,OAAIjK,EAAW77B,KAAKymM,oBACT,EAEPzmM,KAAK0mM,YAAY7qK,EAAW77B,KAAKymM,oBAAqB3gK,GAC/C9lC,KAAK2mM,qBAAqB7gK,GAEjC9lC,KAAKu/B,WAAW1D,EAAW77B,KAAKymM,qBACzBzmM,KAAKsmM,kBAAkB3nM,OAASqB,KAAKiyB,aAAatzB,OAEtDmnC,EAAY9lC,KAAKsmM,kBAAkB3nM,OAE9C,WAAWioM,GACP,IACIl7L,QAASA,GACT1L,KAAK8lM,SACT,OAAOc,EAAsBl7L,EAAUA,EAAQA,EAAQ/M,OAAS,GAEpE,mBACI,IAAI+M,EAAU1L,KAAKiyB,aACnB,OAAO,eAAUvmB,GAAWA,EAAQ7M,IAAIkxE,GAAKA,EAAEj+D,YAAS,EAE5D,eACI,OAAO9R,KAAK8lM,SAAStkL,MAAM7iB,OAASqB,KAAKymM,oBAE7C,oBACI,OAAIzmM,KAAKmmM,mBACEnmM,KAAK8lM,SAASp6L,QAAQ/M,OAAS,EAEnC,EAEX,WAAWk9B,GACP,OAAOA,EAAW77B,KAAK8lM,SAAStkL,MAAM7iB,QAAU,UAAYqB,KAAK8lM,SAAStkL,MAAMqa,GAAU+B,QAE9F,cAAc/B,GACV,IAAI9Q,EAAO/qB,KAAK8lM,SAAStkL,MAAMqa,EAAW77B,KAAKymM,qBAC3CnwL,EAAayU,GAAQA,EAAKzU,WAC9B,OAAIyU,GAAQ,gBAAkBA,EAAK6S,QACxB,EAEJ,eAAUtnB,GAAcA,EAAatW,KAAK8lM,SAASruJ,aAAa94C,OAE3E,YAAYk9B,EAAUiK,GAClB,IAAIp6B,EAAU1L,KAAKiyB,aACnB,GAAI4J,EAAW77B,KAAKymM,oBAChB,MAAO,SAGX,GADA5qK,GAAY77B,KAAKymM,oBACb3gK,EAAYp6B,EAAQ/M,OAAQ,CAC5B,IAAIosB,EAAO/qB,KAAK8lM,SAAStkL,MAAM7iB,QAAUqB,KAAK8lM,SAAStkL,MAAMqa,GACzD75B,EAAS0J,EAAQo6B,GACrB,OAAI/a,GAAQ,SAAWA,EAAK6S,SACpB6mE,SAAS15E,EAAKnnB,OAAO5D,KAAK6mM,kBAAkB/gK,OAAiB,eAAU9jC,EAAO0T,eACvE,eAAU1T,EAAOqC,QAAUrC,EAAOqC,OAAOvC,SAAWE,EAAOF,SAGnE,UAGf,QACI9B,KAAK8mM,eACL,IAAInhL,EAAU3lB,KAAK8lM,SACnB,OAAO,eAAKngL,EAAQnE,OAAOgV,KAAKhV,IAC5BmE,EAAQnE,MAAQA,IACjBynB,KAAK,KACJtjB,EAAQnE,MAAQ,KAGxB,kCAAkCulL,GAC9B,GAAI,eAAUA,IAA0BA,EAAsBpoM,OAAS,EACnE,OAAOooM,EAAsBloM,IAAIksB,IAAQ,CACrC/sB,MAAO+sB,EAAK/sB,MACZ2V,KAAMoX,EAAKpX,QAIvB,YAAYkoB,EAAUiK,EAAWkhK,GAC7B,IAAIhpM,EACAgE,EACAE,EAAS,CACT+kM,eAAgB,GAChBjpM,MAAOA,GAEP0N,EAAU1L,KAAKiyB,aACfi1K,EAAqBlnM,KAAK6mM,kBAAkB/gK,GAChD,GAAIjK,EAAW77B,KAAKymM,oBAAqB,CACrC,IAAIU,EAAannM,KAAKiyB,YAAW,GAAM4J,GACvC75B,EAASmlM,EAAWrhK,GACpB5jC,EAAO+kM,eAAerpK,QAAU,SAChC17B,EAAO+kM,eAAejlM,OAASA,GAAUA,EAAOolM,WAChDllM,EAAOlE,MAAQgE,GAAUA,EAAOwT,YAC7B,CACHqmB,GAAY77B,KAAKymM,oBACjB,IAAI17K,EAAO/qB,KAAK8lM,SAAStkL,MAAM7iB,QAAUqB,KAAK8lM,SAAStkL,MAAMqa,GAC7D,GAAI9Q,EAAM,CACN,IAAIs8K,EAAat8K,EAAKnnB,OAGtB,OAFA1B,EAAO+kM,eAAerpK,QAAU7S,EAAK6S,QACrC17B,EAAO+kM,eAAejlM,OAAS0J,EAAQo6B,IAAcp6B,EAAQo6B,GAAWshK,WAChEr8K,EAAK6S,SACT,IAAK,cACL,IAAK,cACGspK,EAAqBG,EAAW1oM,SAChCX,EAAQqpM,EAAWH,GACf,eAAUlpM,IACVkE,EAAO+kM,eAAejpM,MAAQA,EAAMA,MACpCkE,EAAO+kM,eAAeK,qBAAuBtpM,EAAM2V,KACnDzR,EAAOlE,MAAQ,GAAawxL,eAAexxL,EAAOgC,KAAK8lM,SAASv7K,eAEhEroB,EAAO+kM,eAAejpM,WAAQ,GAGtC,MACJ,IAAK,QAED,GADAkE,EAAO+kM,eAAe3wL,WAAayU,EAAKzU,WACpCwvB,EAAY,EACZ5jC,EAAO+kM,eAAejlM,OAAShC,KAAK8lM,SAASruJ,aAAa1sB,EAAKzU,YAC/DpU,EAAO+kM,eAAejpM,MAAQ+sB,EAAKgjC,IAAIhjC,EAAKzU,YAC5CpU,EAAO+kM,eAAe9T,kBAAoBnzL,KAAKunM,kCAAkCx8K,EAAKimC,aAAa,IACnG9uD,EAAOlE,MAAQgC,KAAKwnM,eAAez8K,OAChC,CACH,IAAIm1C,EAAen1C,EAAKnnB,OAAOsjM,GAC/B,GAAIzoM,MAAMC,QAAQwhE,GAAe,CAC7Bh+D,EAAO+kM,eAAe9T,kBAAoBnzL,KAAKunM,kCAAkCrnI,GACjFliE,EAAQ,GACR,IAAK,IAAIwC,EAAI,EAAGA,EAAI0/D,EAAavhE,OAAQ6B,IACrCxC,IAAUwC,EAAI,EAAIwmM,EAAY,KAAO,OAAS,IAAM,GAAaxX,eAAetvH,EAAa1/D,GAAIR,KAAK8lM,SAASv7K,cAEnHroB,EAAOlE,MAAQA,OAEfkE,EAAO+kM,eAAejpM,WAAQ,EAGtC,MACJ,QAEI,GADAgE,EAAS0J,EAAQo6B,GACb9jC,EAAQ,CACR,IAAIylM,EAASJ,EAAWH,GACpBp/I,EAAe,GAAa7C,gBAAgBjjD,EAAQylM,EAAQ18K,EAAKhX,KAAMgX,EAAK6S,UAC3E6mE,SAAS38C,IAAiB,eAAU9lD,EAAO0T,eACxCsxL,GAAa,eAAUhlM,EAAO0T,gBAAkB1T,EAAO0T,gBAAkB1V,KAAK2lM,kBAAkB3mK,mBAAmBqX,2BAA2B,WAC9In0C,EAAOlE,MAAQ8pD,EAEf5lD,EAAOlE,MAAQ,GAAamnE,YAAYrd,EAAc9lD,GAG1DE,EAAOlE,MAAQ8pD,EAEnB5lD,EAAO+kM,eAAejpM,MAAQypM,EAElCvlM,EAAO+kM,eAAelzL,KAAOgX,EAAKhX,OAIlD,OAAO7R,EAEX,mBACI,OAAOlC,KAAK8lM,SAASK,iBAEzB,YAAYtqK,EAAUiK,GAClB,IACItkB,MAAOA,GACPxhB,KAAK8lM,SACL/6K,EAAOvJ,EAAMqa,GACb6rK,EAAmB1nM,KAAK6mM,kBAAkB/gK,GAC1C6hK,EAAyB58K,EAAKimC,cAAgBjmC,EAAKimC,aAAa02I,IAAqB38K,EAAKimC,aAAa02I,GAAkB/oM,OAAS,GAAKosB,EAAKimC,aAAa02I,GAAkB,GAAGxjL,cAClL,OAAO6G,GAAQ,gBAAkBA,EAAK6S,SAAW,gBAAkB7S,EAAK6S,SAAW+pK,EAEvF,eAAe9rK,EAAUiK,GACrB,IACIp6B,QAASA,GACT1L,KAAK8lM,SACL9jM,EAAS0J,EAAQmwB,IAAanwB,EAAQmwB,GAAUiK,GACpD,OAAO9jC,EAAS,CACZi8B,SAAUj8B,EAAO4lM,eAAiB,GAAK,EACvCx3J,SAAUpuC,EAAOouC,SAAW,GAAK,GACjC,CACAnS,QAAS,EACTmS,QAAS,GAGjB,gBACI,MAAO,CACH78B,EAAG,EACHC,EAAGxT,KAAKymM,sBAIb,MAAM,WAAyB,GAAa3xK,eAC/C,gBACI,MAAO,CACHtf,QAAS,GACTyoB,QAAS,EACTmS,QAAS,GAGjB,mBAAmBpuC,EAAQ8P,GACvB9P,EAAO8P,MAAQA,EAEnB,YAAY2zL,GACR,IACIjlM,EACAkL,EAFAxJ,EAAS,GAGT8uB,EAAoBhxB,KAAKg/B,mBACzBqR,EAAWrf,EAAkBkf,cACjC,IAAK1vC,EAAI,EAAGA,GAAK6vC,EAAU7vC,IAAK,CAC5B,IAAIqnM,EAAmB,GACvBn8L,EAAUslB,EAAkBiO,kBAAkBz+B,GAAG,GACjD,IAAIsnM,OAA4B,EAChC,GAAItnM,IAAM6vC,EACN,GAAIrwC,KAAK8yB,iBACLg1K,EAA4BrC,MACzB,CACH,IAAIn+H,EAAetnE,KAAK+nM,iBAAiB/nM,KAAKgoM,aAAchoM,KAAK0qE,WACjE,GAAIpD,GAAgBA,EAAa3oE,OAAQ,CACrCmpM,EAA4B,GAC5B,IAAK,IAAIxlJ,EAAK,EAAGA,EAAK52C,EAAQ/M,OAAQ2jD,IAClCwlJ,EAA0Bp8L,EAAQ42C,GAAIrgD,OAASqlE,EAAahlB,IAK5E,IAAK,IAAI1hB,EAAI,EAAGA,EAAIl1B,EAAQ/M,OAAQiiC,IAAK,CACrC,IAAI5+B,EAAS,OAAAmrB,EAAA,MAAO,GAAIzhB,EAAQk1B,GAAI,CAChC9+B,SAAU,aAAe4J,EAAQk1B,GAAG9+B,SAAW,OAAS4J,EAAQk1B,GAAG9+B,SACnEslM,WAAY17L,EAAQk1B,KAExB,GAAI5gC,KAAKioM,qBAAqBjmM,GAAS,CACnC,IAAIkmM,EAAiBloM,KAAKmoM,wBAAwBnmM,GAC9C,eAAUkmM,KACVlmM,EAAO4lM,cAAgBM,GAEvBJ,GACA9nM,KAAKooM,mBAAmBpmM,EAAQ8lM,EAA0B9lM,EAAOC,QAErE4lM,EAAiBpoM,KAAKuC,IAG9BE,EAAOzC,KAAKooM,GAKhB,OAHAn8L,EAAUxJ,EAAOmuC,GACjBnuC,EAAS4iM,GAAa5iM,EAAOM,MAAM,GAAI,GAAIxC,KAAKqoM,iBAChDnmM,EAAOzC,KAAKiM,GACLxJ,EAEX,wBAAwBF,GACpB,GAAKA,EAAOyU,OAAZ,CAGA,IAAI6xL,EAAetoM,KAAKg/B,mBAAmBoS,wBAAwBpvC,EAAOC,OAAO,GACjF,GAAK,eAAUqmM,GAGf,OAAOA,EAAa9uK,OAAO,CAACt3B,EAAQqmM,IAC5BvoM,KAAKioM,qBAAqBM,GACnBrmM,GAAUlC,KAAKmoM,wBAAwBI,IAAgB,GAE3DrmM,EACR,IAEP,qBAAqBF,GACjB,OAAQA,EAAOwwB,UAAYxwB,EAAOwS,qBAAkB,IAAWxS,EAAOwS,gBAE1E,uBAAuBw8C,EAAcw3I,GACjC,IAAItmM,EAAS,GACTumM,EAAsB,EACtBjoM,EAAI,EACR,EAAG,CAEC,IADA,IAAIoD,EAAS,GACJg9B,EAAI,EAAGA,EAAIowB,EAAaryD,OAAQiiC,IAAK,CAC1C,IAAI+xJ,EAAc3hI,EAAapwB,GAC3Bw+F,EAAcuzD,EAAYh0L,OAC1B8pM,EAAsBrpE,IACtBqpE,EAAsBrpE,GAE1Bx7H,EAAOnE,KAAKkzL,EAAYnyL,IAE5B0B,EAAOzC,KAAK,CACRmE,OAAQA,EACRg6B,QAAS4qK,EAAU,cAAgB,sBAElChoM,IAAMioM,EAAsB,GACrC,OAAOvmM,EAEX,0BACI,IAAIioB,EAAanqB,KAAK8uB,OAAO,sBAC7B,GAAI,eAAU3E,GACV,IAAK,IAAI3pB,EAAI,EAAGA,EAAI2pB,EAAWxrB,OAAQ6B,IACnC,GAAI2pB,EAAW3pB,GAAG6jB,kBACd,OAAO,EAInB,OAAO,EAEX,iCAAiCqkL,GAI7B,IAHA,IAAIxmM,EAAS,GACTymM,EAAyB,GACzBC,EAAmB,GACdpoM,EAAI,EAAGA,EAAIkoM,EAAY/pM,OAAQ6B,IAAK,CACzC,IAAIuqB,EAAO29K,EAAYloM,GACnB,gBAAkBuqB,EAAK6S,SACvBgrK,EAAmB5oM,KAAK6oM,uBAAuB99K,EAAKimC,cACpD9uD,EAASA,EAAOmpB,OAAOs9K,EAAwBC,GAC/CD,EAAyB,IAEzBA,EAAuBlpM,KAAKsrB,GAGpC,OAAO7oB,EAAOvD,OAASuD,EAASymM,EAEpC,sCAAsCD,GAElC,IADA,IAAII,EAAgB,GACXtoM,EAAI,EAAGA,EAAIkoM,EAAY/pM,OAAQ6B,IAAK,CACzC,IAAIuqB,EAAO29K,EAAYloM,IAEnBwwD,aAAcA,GACdjmC,EACJ,GAAI,UAAYA,EAAK6S,SAAWozB,GAAgBA,EAAaryD,OAAS,EAAG,CAErE,IADA,IAAIoqM,EAAmBh+K,EAAKnnB,OAAOjF,OAC1BiiC,EAAI,EAAGA,EAAIowB,EAAaryD,OAAQiiC,IACrC,IAAK,IAAIooK,EAAI,EAAGA,EAAIh4I,EAAapwB,GAAGjiC,OAAQqqM,IAAK,CAC7C,IAAIv/K,EAAcunC,EAAapwB,GAAGooK,GAC9Bv/K,GAAeA,EAAYvF,gBACtBzlB,MAAMC,QAAQoqM,EAAcloK,EAAImoK,MACjCD,EAAcloK,EAAImoK,GAAoB,IAE1CD,EAAcloK,EAAImoK,GAAkBtpM,KAAKgqB,IAIjDq/K,EAAcnqM,OAAS,IACvBosB,EAAKnnB,OAAOnE,QAAQqpM,GACpBA,EAAgB,MAKhC,wBAAwBtnL,GAKpB,IAJA,IAEI5d,EACAotD,EAHAtlD,EAAU1L,KAAKg/B,mBAAmBC,kBAAkB,MAAM,GAC1DwY,EAAez3C,KAAKg/B,mBAAmBsY,kBAGlC92C,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAIuqB,EAAOvJ,EAAMhhB,GACbihD,GAAY,EAChB79C,EAAS,GACTotD,EAAe,GACf,IAAK,IAAIpwB,EAAI,EAAGA,EAAIl1B,EAAQ/M,OAAQiiC,IAAK,CACrC,IAAI5+B,EAAS0J,EAAQk1B,GAErB,GADA6gB,IAAcA,EAAY,CAAC,eAAgB,WAAWjT,SAASxsC,EAAO5D,OAClE4B,KAAKioM,qBAAqBjmM,KACtB+oB,EAAKnnB,SACD,UAAYmnB,EAAK6S,SAAYh6B,EAAOjF,OAGpCiF,EAAOnE,KAAKsrB,EAAKnnB,OAAOg9B,IAFxBh9B,EAAOnE,KAAKsrB,EAAKgjC,IAAIhjC,EAAKzU,cAK9ByU,EAAKimC,cACL,GAAI,UAAYjmC,EAAK6S,SAAYozB,EAAaryD,OAI1CqyD,EAAavxD,KAAKsrB,EAAKimC,aAAapwB,QAJc,CAClD,IAAI3+B,EAAQ2+B,EAAI6W,EAAa94C,OAASosB,EAAKzU,WAC3C06C,EAAavxD,KAAKsrB,EAAKimC,aAAavP,EAAYx/C,EAAQA,EAAQ,KAO5E2B,EAAOjF,SACPosB,EAAKnnB,OAASA,GAEdotD,EAAaryD,SACbosB,EAAKimC,aAAeA,IAIhC,aAAaj9C,GACT,IAOIi9C,EAPAyD,EAAajwD,UAAU7F,OAAS,QAAK,IAAW6F,UAAU,IAAKA,UAAU,GACzEquB,EAAO7yB,KACP00D,EAAI,IAAI,OACR3O,EAAiB/lD,KAAKgwB,cAAc,QACpC4/J,EAAc7pI,EAAe6pI,cAC7BplK,EAAYolK,EAAYjxL,QAAUixL,EAAY,GAC9C2C,EAAoB1/J,EAAK/D,OAAO,sBAoBpC,OAlBA,eAAK/a,GAAMyiB,KAAKziB,IACZgyC,EAAekjJ,QAAQl1L,EAAM0gD,GAAYj+B,KAAK,CAACkyK,EAAalb,KACxD36J,EAAKq2K,sCAAsCR,GACvC71K,EAAKs2K,4BACLT,EAAc71K,EAAKu2K,iCAAiCV,IAExD13I,EAAexmC,GAAaA,EAAUwmC,aAClC,eAAUw8H,IAAoB+E,IAC9BvhI,EAAen+B,EAAK6/J,iBAAiBH,EAAmB/E,IAE5D,IAAIttH,EAAe11C,GAAaqI,EAAKg2K,uBAAuB73I,GAAc,GACtEkP,IACAwoI,EAAcA,EAAYr9K,OAAO60C,IAErCrtC,EAAKw2K,wBAAwBX,GAC7Bh0I,EAAEx3B,QAAQwrK,KACXz/J,KAAKyrB,EAAE7xB,UACXoG,KAAKyrB,EAAE7xB,QACH6xB,EAEX,iBAAiB69H,EAAmB/E,GAChC,IAAIznI,EAAiB/lD,KAAKgwB,cAAc,QACpCgB,EAAoB+0B,EAAe/mB,mBACvC,OAAO+mB,EAAemsI,uBAAuBK,EAAmB/E,EAAiBx8J,EAAkBiO,kBAAkB,MAAM,GAAO,CAACxV,EAAaznB,IAAW+jD,EAAe8rI,cAAc7vL,GAAUA,EAAOC,OAAS,GAEtN,oBACI,IAAI42E,EAAsB74E,KAAKgwB,cAAc,aAC7C,OAAIhwB,KAAKspM,wCACEtpM,KAAKkmM,aAAartH,EAAoBoH,+BAA+B,GAEzEjgF,KAAKkmM,aAAartH,EAAoB+D,uBAEjD,iBAAiBw6F,EAAa1rJ,GAC1B,OAAO0rJ,GAAeA,EAAYlhJ,YAAckhJ,EAAYxpG,kBAAoBliD,EAASkiD,kBAE7F,mCACI,IAAIv9C,EAAIub,EACJ29J,EAAiB,QAAU39J,GAAMvb,EAAKrwB,KAAKixB,WAAWu4K,6BAA0B,IAAW59J,OAAK,EAASA,EAAGzS,KAAK9I,EAAI,eACrHrwB,KAAK8uB,OAAO,oBAAsBy6K,GAClC,QAAO9hJ,IAAI,SAGnB,OACIznD,KAAKypM,mCACLzpM,KAAKg/B,mBAAqBh/B,KAAKgwB,cAAc,WAC7ChwB,KAAK0qE,UAAY1qE,KAAK6uC,QAAQ,YAC9B7uC,KAAKgoM,aAAehoM,KAAK6uC,QAAQ,qBACjC7uC,KAAKkwB,aAAa,cAAe,CAC7BgY,kBAAmB,CAAC,WAAY,cAGxC,gBACI,MAAO,CAAC,wBAEZ,gBAAgBw9J,GACZ,IACID,EADAn+H,EAAetnE,KAAK+nM,iBAAiB/nM,KAAKgoM,aAAchoM,KAAK0qE,WAEjE,GAAIpD,GAAgBA,EAAa3oE,OAAQ,CACrC8mM,EAAmC,GAEnC,IADA,IAAIiE,EAA+B1pM,KAAKg/B,mBAAmBC,kBAAkBj/B,KAAKg/B,mBAAmBkR,eAAe,GAC3G1vC,EAAI,EAAGA,EAAIkpM,EAA6B/qM,OAAQ6B,IACrDilM,EAAiCiE,EAA6BlpM,GAAGyB,OAASqlE,EAAa9mE,GAG/F,OAAO,IAAI,GAAaR,KAAMylM,EAAkCC,GAEpE,SAASA,EAAkB3nM,GACvBiC,KAAKgmM,eAAiBN,EACtB,IAAIl3L,EAAcxO,KAAK2pM,UAAU,eAC7BzwD,EAAY,CACZvoI,WAAY3Q,KAAK8uB,OAAO,cACxB42K,mBAAoBA,EACpB3nM,OAAQA,EACR6rM,SAAU,WACVzvL,QAAQ,GAEZ,eAAW3L,IAAgBA,EAAY0qI,GAE3C,gBACI,MAAO,CAAC,mBAEZ,cAAcl7I,GACV,IAAI,eAAUA,GAIV,OAAOgC,KAAK6pM,gBAHZ7pM,KAAK6pM,gBAAkB7rM,EACvBgC,KAAKm5E,qBAAqB1iD,OAKlC,cAAczI,GACV6Z,MAAMC,cAAc9Z,GAChB,WAAaA,EAAKra,MAClB3T,KAAKypM,mCAGb,wCACI,IAAIp5K,EACJ,OAAO,QAAUA,EAAKrwB,KAAK8uB,OAAO,4CAAyC,IAAWuB,EAAKA,EAAKrwB,KAAKgwB,cAAc,QAAQ4uB,YAAYvuC,mBAAmBmX,WAGlK,GAAa4qB,eAAe,SAAU,CAClClF,eAAgB,KAAM,CAClB7gC,OAAQ,CACJ+L,SAAS,EACTwxL,SAAU,WACVvtL,QAAS,CAAC,QACVD,yBAAyB,EACzBpD,MAAO,CACHyD,SAAU,OAAoB1e,OAAO,uBACrCwe,UAAW,OAAoBxe,OAAO,wBACtCye,mBAAoB,OAAoBze,OAAO,qCAI3Dg7B,YAAa,CACT1sB,OAAQ,IAEZitB,UAAW,CACPP,YAAa,CACT7sB,QAAS,CACL,gBACI,IAAI49L,EAAe9pM,KAAKk1B,WACxB,OAAO,eAAU40K,GAAgBA,EAAarqM,KAAK,yBAA2B,CAAC,0BAEnF,qBACIO,KAAKk1B,WACLl1B,KAAK+pM,sBAAsBtzK,UAIvCuC,MAAO,CACH8lC,YAAa,CACT,mBACI,IAAIt9C,EAAQxhB,KAAKk1B,WACb80K,EAAehqM,KAAKiqM,0BAKxB,OAJID,IACAxoL,EAAM/hB,KAAKuqM,GACXhqM,KAAKkqM,sBAAsB1oL,IAExBA,GAEX,0BACI,IAAIA,EAAQxhB,KAAKmqM,yBACjB,GAAI,IAAM3oL,EAAM7iB,OACZ,OAAO,KAEX,IAAIsN,EAAWjM,KAAKoqM,2BAChBC,EAAuB,CACvB12L,KAAMyxL,GACN3/K,SAAU,QACVD,aAAc,OACdxO,UAAW,GACX2O,QAAS,CACLnE,MAAOA,GAEXvV,SAAUA,GAEd,GAAI,IAAMuV,EAAM7iB,OAAQ,CACpB,IAAIulJ,EAAgB,eAAS,eAAS,GAAI1iI,EAAM,IAAK,CACjDrU,KAAMqU,EAAM,GAAG1N,KACf3H,YAAa,CACT4wF,MAAOooG,MAGfkF,EAAqBxkL,OAAS,WAC9BwkL,EAAqBzkL,SAAW,SAChCykL,EAAqB1kL,QAAUu+H,MAC5B,CACH,IAAIomD,EAAiB,CACjB52L,KAAM2xL,GACN3rL,YAAa,OACb8H,MAAOA,EACPrU,KAAMnN,KAAK8uB,OAAO,yBAClB3iB,YAAa,CACT4wF,MAAOooG,IAEXoF,gBAAiB,CACbz4L,MAAO,OACP2nJ,sBAAuByrC,KAG/BmF,EAAqB1kL,QAAU2kL,EAC/BD,EAAqBxkL,OAAS,mBAC9BwkL,EAAqB3kL,iBAAmB,CAAC2nK,EAAOmd,EAAQ/sL,KACpDzd,KAAK8zB,iBAAiB,eAAErW,GAAY,QAAM,CACtC+D,MAAOA,KAInB,OAAO6oL,GAEX,yBACI,IAAIh6K,EACAo6K,EAAgBzqM,KAAK8uB,OAAO,UAC5B9V,EAAQhZ,KAAK8uB,OAAO,gBACpBzS,EAAU,QAAUgU,EAAKrwB,KAAK8uB,OAAO,yBAAsB,IAAWuB,EAAKA,EAAK,GACpF,IAAKo6K,EAAcryL,QACf,MAAO,GAEX,IAAIoJ,EAAQ,GA6BZ,OA5BAnF,EAAQ6a,QAAQwzK,IACZ,IAAIC,EAAaD,EAAWniJ,cACxBqiJ,EAAgBvF,GAChBwF,EAAqBtF,GACrB,SAAWmF,IACXC,EAAa,QACbC,EAAgBtF,IAEhB,QAAUoF,IACVE,EAAgBpF,IAEpBhkL,EAAM/hB,KAAK,CACPqU,KAAM,gBAAOkF,EAAMuD,UAAWouL,GAC9Bj3L,KAAMk3L,EACNh3L,QAAS,KACL5T,KAAK2lM,kBAAkBlpL,UAAS,EAAOiuL,MAG3CD,EAAcruL,yBACdoF,EAAM/hB,KAAK,CACPqU,KAAM,gBAAOkF,EAAMwD,mBAAoBmuL,GACvCj3L,KAAMm3L,EACNj3L,QAAS,KACL5T,KAAK2lM,kBAAkBlpL,UAAS,EAAMiuL,QAK/ClpL,GAEX,sBAAsBA,GAClBA,EAAM8W,KAAK,CAACwyK,EAAOC,IAAUD,EAAM9zL,UAAY+zL,EAAM/zL,YAEzD,yBACI,OAAOhX,KAAK8uB,OAAO,mBAEvB,cAAcd,GACVhuB,KAAKk1B,SAASlH,GACV,WAAaA,EAAKra,OAClBqa,EAAKC,SAAU,EACfjuB,KAAK+nC,gBAGb,2BACI,IAAI8Z,GAA0B7hD,KAAKg/B,mBAAmB8iB,wBAClDkpJ,EAAoBhrM,KAAKgnH,mBAAmB/6C,aAChD,OAAOpqB,GAA0BmpJ,GAErC,qBAAqB/7K,GACjBjvB,KAAKk1B,SAASjG,GACd,IAAIg8K,EAA0B,GAAaxjK,aAAaxY,EAAEuY,YAAa,CAAC,aAAc,UAAW,QACjG,GAAIyjK,EAAyB,CACzB,IAAIh/L,EAAWjM,KAAKoqM,2BACpBpqM,KAAK2jH,uBAAuB,eAAgB13G,KAGpD,OACIjM,KAAKk1B,WACLl1B,KAAK2lM,kBAAoB3lM,KAAKgwB,cAAc,UAC5ChwB,KAAKgnH,mBAAqBhnH,KAAKgwB,cAAc,WAC7ChwB,KAAKgnH,mBAAmB+iF,sBAAsBroK,IAAI,KAC9C,IAAIz1B,EAAWjM,KAAKoqM,2BACpBpqM,KAAK2jH,uBAAuB,eAAgB13G,MAGpD,YACI,OAAOjM,KAAKk1B,YAAcl1B,KAAKkrM,+BCnvBnD,IAAIC,GAAqB,CAACC,EAAUt/E,EAAS30F,KACzC,IACI40B,kBAAmBA,EACnB//C,wBAAyBA,EACzBq/L,YAAaA,GACbl0K,GAEAx0B,SAAUA,GACVyoM,EACAvkK,EAAS,eAAWlkC,GAAYA,EAAW0oM,EAAY1oM,GACvD2oM,EAAWzkK,EAASA,EAAOilF,GAAWA,EAAQnpH,GAC9C4oM,EAAYx/I,GAAqB,eAAOu/I,GAAY,QAAkBz1J,cAAcy1J,EAAUt/L,GAA2Bs/L,EAC7H,MAAO,CACHzkK,OAAQA,EACRykK,SAAUA,EACVC,UAAWA,IAGRC,GAAuB,CAC9BL,mBAAoBA,ICDpBM,GAAoB,iBACpB,GAAuB,WAAWpgL,OAAOogL,IACzCC,GAAsB,QACtB,GAA4B,yBAC5BC,GAAkB,GAAK72K,eAAelC,QAAQ,WAC9C,IAAIob,EAAU,CACV,OACIhuC,KAAKgoC,gBAAkBhoC,KAAKgwB,cAAc,QAC1ChwB,KAAK4rM,oBAAsB5rM,KAAKgwB,cAAc,sBAC9ChwB,KAAKixB,UAAUsnF,oBAAoBzrG,eAAgB,GAEvD,cAAckhB,GACV,IACIra,KAAMA,EACN3V,MAAOA,EACPghD,cAAeA,GACfhxB,EACJ,OAAQra,GACJ,IAAK,kBACD3T,KAAK6rM,iBAAiB7tM,GACtBgC,KAAK4rM,oBAAoBE,yBACzB99K,EAAKC,SAAU,EACf,MACJ,IAAK,gBACD,GAAIxvB,MAAMC,QAAQV,IAAUkpC,KAAKC,UAAUnpC,KAAWkpC,KAAKC,UAAU6X,GACjE,OAEJh/C,KAAK+rM,eAAe/tM,GACpBgC,KAAK4rM,oBAAoBE,yBACzB99K,EAAKC,SAAU,EACf,MACJ,IAAK,qBACL,IAAK,oBACL,IAAK,2BACDD,EAAKC,SAAU,EACf,MACJ,QACIjuB,KAAKk1B,SAASlH,KAG1B,6BACI,MAAO,aAAehuB,KAAK8uB,OAAO,mBAAqB9uB,KAAK8uB,OAAO,6BAEvE,iBAAiB7sB,EAAOunD,GACfxpD,KAAK8uB,OAAO,uBAGjB7sB,OAAQ,IAAWA,EAAQA,EAAQjC,KAAK8uB,OAAO,mBAC3C7sB,EAAQ,EACJjC,KAAKgsM,8BACLhsM,KAAK6lL,mBAGT7lL,KAAKisM,qBAAqBhqM,EAAOunD,KAGzC,qBAAqBvnD,EAAOunD,GACxB,IAAIzD,EAAiB/lD,KAAKgwB,cAAc,QACpCpJ,EAAWm/B,EAAen/B,WAC1BslL,EAAgB,KAChB,GAAIlsM,KAAKmsM,wBAAwBlqM,GAAQ,CACrC,IAAI45B,EAAW55B,EAAQ8jD,EAAe8L,mBAAkB,GACxD,IAAKrI,GAAkBA,EAAep5C,SAAWo5C,EAAehiC,UAAW,CACvE,IAAI+nI,EAAgBxpG,EAAeqmJ,oBACnCvwK,EAAW6b,KAAKnwB,IAAIsU,EAAU0zH,GAElC,IAAIziJ,EAAgBi5C,EAAe01D,iBAAiB5/E,GAAU,GAC1D,eAAU/uB,KAAmB9M,KAAKqsM,aAAav/L,IAC/C9M,KAAK8uB,OAAO,gBAAiBhiB,KAIzC,GAAI8Z,GAAY,EACZ,GAAK5mB,KAAKssM,iBAAiBrqM,GAMvBiqM,QAN+B,CAC/B,IAAIvlL,EAAY+wB,KAAK05B,MAAMnvE,EAAQ8jD,EAAen/B,YAClD,eAAKm/B,EAAep/B,UAAUA,GAAYo/B,EAAewmJ,aAAa/1K,KAAK,KACvE01K,QAOhB,iBAAiBjqM,GACb,IAAI8jD,EAAiB/lD,KAAKgwB,cAAc,QACpCw8K,EAAqBxsM,KAAKgwB,cAAc,sBAAsBwqJ,sBAClE,GAAIgyB,EAAoB,CACpB,IAAI7lL,EAAY+wB,KAAK05B,MAAMnvE,EAAQ8jD,EAAen/B,YAC9C6lL,EAAe1mJ,EAAe+3E,oBAC9B4uE,EAAoBD,EAAeA,EAAa1uE,OAAS,EACzD4uE,EAAmB5mJ,EAAeuM,iBAAiB3zD,OAASonD,EAAe8L,oBAC3E+6I,EAAoBl1J,KAAKklB,KAAK+vI,EAAmB5mJ,EAAen/B,YACpE,OAAO8lL,GAAqBzqM,GAAS2qM,EAAoBjmL,EAE7D,OAAO,GAEX,yBAAyB1kB,GACrB,IAAI8jD,EAAiB/lD,KAAKgwB,cAAc,QACxC,GAAIhwB,KAAKmsM,wBAAwBlqM,GAAQ,CACrC,IAAI45B,EAAW6b,KAAKnwB,IAAItlB,EAAQ8jD,EAAe8L,oBAAqB9L,EAAevkC,QAAQ7iB,OAAS,GAChGmO,EAAgBi5C,EAAe01D,iBAAiB5/E,GAChD,eAAU/uB,KAAmB9M,KAAKqsM,aAAav/L,IAC/C9M,KAAK8uB,OAAO,gBAAiBhiB,KAIzC,eAAeihD,GACN,eAAUA,GAGX/tD,KAAK6sM,eAAe9+I,GAAK,GAFzB/tD,KAAK6lL,oBAKb,mBACI,IAAI/4K,EAAgB9M,KAAK8uB,OAAO,iBAC5Bg+K,EAAyB,eAAUhgM,GACvC,GAAKggM,KAA0B9sM,KAAK8uB,OAAO,mBAAqB,GAAhE,CAGA,IAAIiB,EAAqB/vB,KAAKgwB,cAAc,sBACxC88K,GACA9sM,KAAK8uB,OAAO,gBAAiB,MAEjCiB,EAAmB21J,oBAAoB,GACvC1lL,KAAK8uB,OAAO,mBAAoB,GAChC9uB,KAAKgwB,cAAc,QAAQk8B,YAAY,CACnCjoB,WAAY,mBACZn3B,cAAe,OAEnBijB,EAAmB+7K,4BAAuB,GAAS,KAEvD,wBAAwBjwK,GACpB,IAAIkqB,EAAiB/lD,KAAKgwB,cAAc,QACpCqO,EAAM0nB,EAAeuM,iBAAiBz2B,GAC1C,OAAQwC,GAAO,SAAWA,EAAIT,SAAW,UAAYS,EAAIT,SAE7DlG,cAAe,IAAM,CAAC,gBAAiB,gBACvC,cAAcq2B,GAIV,OAHK/tD,KAAKgsM,8BACNhsM,KAAK8uB,OAAO,mBAAoB,GAE7B9uB,KAAK6sM,eAAe9+I,IAE/B,eAAeA,EAAKg/I,GAChB,IAAIl6K,EAAO7yB,KACP+lD,EAAiBlzB,EAAK7C,cAAc,QACpCg9K,EAAiBn6K,EAAKm5K,6BACtBt3I,EAAI,IAAI,OACZ,QAAI,IAAW3G,IAAQhI,EAAeh6C,aAClC,OAAO2oD,EAAE7xB,SAASI,UAEtB,IAAIgqK,EAAgBp6K,EAAKi4J,wBAAwB/8H,GAwBjD,OAvBKi/I,GAAkBD,GAAgBE,GAAiB,EACpDp6K,EAAKq6K,YAAYn/I,EAAK2G,EAAGq4I,GAEzBhnJ,EAAeonJ,kBAAkBp/I,GAAKv3B,KAAK7P,IACnCA,EAAY,EACZ+tC,EAAEx3B,SAAS,GAGXvW,IAAco/B,EAAep/B,YAC7Bo/B,EAAe2G,SAASl2B,KAAK,KACrB3D,EAAKw5K,aAAat+I,IAAQhI,EAAe+O,iBAAiB/G,IAAQ,EAClE2G,EAAEx3B,QAAQrK,EAAKi4J,wBAAwB/8H,IAEvCl7B,EAAKq6K,YAAYn/I,EAAK2G,EAAGq4I,KAE9B9jK,KAAKyrB,EAAE7xB,QAEVkjB,EAAep/B,UAAUA,GAAW6P,KAAK,KACrC3D,EAAKq6K,YAAYn/I,EAAK2G,EAAGq4I,KAC1B9jK,KAAKyrB,EAAE7xB,UAEfoG,KAAKyrB,EAAE7xB,QAEP6xB,EAAEzxB,WAEb,YAAY8qB,EAAKzzC,EAAUyyL,GACvB,IAAIz8I,EAAkBtwD,KAAKgwB,cAAc,QAAQ8kC,iBAAiB/G,GAC9Dq/I,EAA4B,QAAc1sI,sBAAsB1gE,MAChEgtM,EAAiBhtM,KAAKgsM,6BACtBgB,GAAkBI,GAA6B98I,EAAkB,EACjEtwD,KAAKqtM,sBAAsBt/I,EAAKzzC,EAAUyyL,GAE1C/sM,KAAKstM,sBAAsBv/I,EAAKzzC,EAAUyyL,IAGlD,sBAAsBh/I,EAAKzzC,EAAUyyL,GACjC,GAAIA,EACA/sM,KAAKutM,yBAAyBx/I,EAAKzzC,OAChC,CACH,IAAIzN,EAAkB7M,KAAK8qL,wBAAwB/8H,GACnD/tD,KAAK6uC,QAAQ,YAAY2+J,mBAAmBz/I,EAAKzzC,GAAUkc,KAAK,KAC5Dlc,EAAS4iB,QAAQrwB,OAI7B,sBAAsBkhD,EAAKzzC,EAAUyyL,GACjC,IAAIhnJ,EAAiB/lD,KAAKgwB,cAAc,QACpCo6G,EAAuBrkF,EAAekkF,sBACtCpuG,EAAW,QAAcg5B,cAAc9G,EAAKhI,EAAevkC,OAAM,IACjEi+C,EAAaz/D,KAAK6uC,QAAQ,YAAYoxB,gBAC1C,GAAImqE,GAAwB3qE,GAAc5jC,GAAY,EAAG,CACrD,IAAIhvB,EAAkBgvB,EAAWkqB,EAAe8L,mBAAkB,GAC9DxqC,EAAS+iH,EAAqBtG,cAAcj3H,GAC5C4gM,EAA0B,KACtB1nJ,EAAewG,eAAiBxG,EAAevkC,QAAQ7iB,SAG3DqB,KAAKixB,UAAUzC,IAAI,eAAgBi/K,GAC/BV,EACA/sM,KAAKutM,yBAAyBx/I,EAAKzzC,GAEnCA,EAAS4iB,QAAQrwB,KAGzB7M,KAAKixB,UAAU3C,GAAG,eAAgBm/K,GAClCztM,KAAK6uC,QAAQ,YAAY6+J,kBAAkBrmL,QAE3C/M,EAAS4iB,SAAS,IAG1B,yBAAyB6wB,EAAKzzC,GAC1B,IAGQo6C,EAHJ3O,EAAiB/lD,KAAKgwB,cAAc,QACpCnjB,EAAkB7M,KAAK8qL,wBAAwB/8H,GAC/C/tD,KAAKmsM,wBAAwBt/L,IAEzB7M,KAAK8uB,OAAO,qBACZi3B,EAAemG,YAAY,CACvBjoB,WAAY,mBACZn3B,cAAeihD,IAGnB2G,EAAI10D,KAAK6uC,QAAQ,YAAY2+J,mBAAmBz/I,GAEpD,eAAK2G,GAAGl+B,KAAK,KACTx2B,KAAKgwB,cAAc,sBAAsB01J,mBAAmB74K,GAC5DyN,GAAYA,EAAS4iB,QAAQrwB,MAGjCyN,GAAYA,EAAS4iB,SAAS,IAGtC,wBAAwB6wB,GACpB,IAAIhI,EAAiB/lD,KAAKgwB,cAAc,QACpCosF,EAAiBr2D,EAAe+O,iBAAiB/G,GAAK,GAC1D,OAAOquD,GAAkB,EAAIA,EAAiBr2D,EAAe8L,mBAAkB,IAAS,GAE5F,wBACI,IAAI/kD,EAAgB9M,KAAK8uB,OAAO,iBAC5B6+K,EAAyB3tM,KAAK8uB,OAAO,mBACrCiB,EAAqB/vB,KAAKgwB,cAAc,sBACxC+1B,EAAiB/lD,KAAKgwB,cAAc,QACxC,GAAI,eAAUljB,GAAgB,CAC1B,IAAIwjD,EAAkBvK,EAAe+O,iBAAiBhoD,GAClDwjD,GAAmB,GACfvgC,EAAmByqJ,wBACnBmzB,EAAyBr9I,EAAkBvK,EAAe8L,qBAE9D9hC,EAAmB21J,mBAAmBioB,GACtC3tM,KAAKutM,yBAAyBzgM,IAE9B9M,KAAK6sM,eAAe//L,GAAe,GAAM0pB,KAAK3pB,IACtC8gM,GAA0B,GAAK9gM,EAAkB,EACjD7M,KAAK6rM,mBACE8B,EAAyB,GAAK9gM,GAAmB,GACxDkjB,EAAmB21J,mBAAmB74K,UAI3C8gM,GAA0B,GACjC3tM,KAAKgwB,cAAc,SAAS67K,iBAAiB8B,IAGrD,aAAa5/I,GACT,IAAIjhD,EAAgB9M,KAAK8uB,OAAO,iBAChC,GAAI,eAAUhiB,GACV,OAAO,eAAaihD,EAAK/tD,KAAK8uB,OAAO,mBAI7C,iBAAiBqI,GACb,IAMImG,EACAswK,GANA9gM,cAAeA,GACfqqB,EACAtE,EAAO7yB,KACP6M,EAAkBgmB,EAAKmV,gBAAgB8sB,iBAAiBhoD,GACxD4e,EAAWmH,EAAKgc,QAAQ,YAG5B,eAAKnjB,EAASqf,mBAAoB,CAAC9oC,EAAOgrB,KACtC,IAAI4gL,EAAc,IAAM5rM,EACxBq7B,EAAgB,eAAErQ,GAClB4F,EAAKi7K,yBAAyBxwK,EAAezwB,GAC7C,IAAIiyB,EAAOjM,EAAKk7K,mBAAmB,CAC/BC,YAAan7K,EAAKmV,gBAAgBsqB,iBAAiBzlD,GACnDywB,cAAeA,EACfzwB,gBAAiBA,IAEjBghM,IACAD,EAAW9uK,KAGnB8uK,GAAYliL,EAASuiL,0BAA0BL,IAEnD,yBAAyBtwK,EAAezwB,GACpC,IAAIqhM,EAAyB5wK,EAAc/P,KAAK,IAAsBjpB,OAAO,CAACqzB,EAAGw2K,KAC7E,IAAIC,EAAmB,eAAED,GAAYz5K,QAAQ,IAAIrJ,OAAOrrB,KAAKw0B,gBAAgBk3K,MAC7E,OAAOpuK,EAAc1I,GAAGw5K,KAI5B,GAFAF,EAAuB/+K,YAAYs8K,IAAmBt8K,YAAY,IAA2B4Q,WAAW,YACxGmuK,EAAuBt8K,SAAS,MAAMmO,WAAW,YAC7C,IAAMlzB,EAAiB,CACvB,IAAIwhM,EAAY,eAAEruM,KAAK6uC,QAAQ,YAAY89D,cAAc,IACzD0hG,EAAUl/K,YAAY,IAA2B4Q,WAAW,cAGpE,mBAAmBpa,GACf,IAAImZ,GAEAkvK,YAAaA,GACbroL,EACJ,GAAIqoL,IAAgB,SAAWA,EAAYpwK,SAAW,UAAYowK,EAAYpwK,SAAU,CACpF,IACI/wB,gBAAiBA,GACjB8Y,GAEA2X,cAAeA,GACf3X,EACAjU,EAAW1R,KAAK8uB,OAAO,aAAe,EACtCpD,EAAW1rB,KAAK6uC,QAAQ,YAC5B/P,EAAO,eAAEpT,EAAS+e,gBAAgBnN,GAAe/N,GAAG1iB,IACpDiyB,EAAKpS,SAAS++K,IAAmB3+K,KAAK,WAAYpb,GAEtD,OAAOotB,IAGf,OAAOkP,EA7UuC,IA+UvCsgK,GAAc,CACrBphK,eAAgB,KAAM,CAClBtgC,mBAAmB,EACnB3B,0BAA0B,EAC1B6B,cAAe,KACfD,iBAAkB,EAClBF,oBAAqB,IAEzBosB,YAAa,CACTpK,MAAOg9K,IAEXryK,UAAW,CACPP,YAAa,CACT1rB,mBAAoB,CAChB,OACI,IAAIwuB,EAAW77B,KAAK8uB,OAAO,mBACvBoQ,EAAcl/B,KAAK8uB,OAAO,sBAC9B9uB,KAAKkwB,aAAa,uBAAwB,CACtCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,sBAAuB,CACrCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,wBAAyB,CACvCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKkwB,aAAa,uBAAwB,CACtCgY,kBAAmB,CAAC,WAAY,cAEpCloC,KAAKk1B,WACLl1B,KAAKylL,kBACLzlL,KAAKo7K,qBAAuB,GACxB,eAAUv/I,IAAaA,GAAY,IACnC77B,KAAKo7K,qBAAqBv/I,SAAWA,GAErC,eAAUqD,IAAgBA,GAAe,IACzCl/B,KAAKo7K,qBAAqBl8I,YAAcA,IAGhD,mBAAmBrD,GACf77B,KAAKk1B,SAAS2G,GACd77B,KAAK8uB,OAAO,kBAAmB+M,IAEnC,sBAAsBqD,GAClBl/B,KAAKk1B,SAASgK,GACdl/B,KAAK8uB,OAAO,qBAAsBoQ,IAEtC,kBAAkBg6G,EAAWv5G,IACrBA,GAAc3/B,KAAK8uB,OAAO,qBAI1B9uB,KAAKwqL,oBACLxqL,KAAKylL,kBACLzlL,KAAK8kL,OAAO9kL,KAAK2iL,0BAA0BzpC,EAAU3sH,cAAc7pB,SAAS,IAL5E1C,KAAKk1B,SAASgkH,EAAWv5G,IAQjC,2BAA2BjO,EAAO1M,GAC9B,IAAI1M,EAAWtY,KAAKk1B,SAASxD,EAAO1M,GAChC1M,GAAYA,EAAS4mB,aAAe,GACpCl/B,KAAKuuM,wBAAwB78K,KAIzCyhD,cAAe,CACX,mBAAmBtkD,EAAUoiF,GACzB,IAGIv/E,EAHA3B,EAAqB/vB,KAAKgwB,cAAc,sBACxCpjB,EAAoB5M,KAAK8uB,OAAO,qBAChCsvC,EAAoBp+D,KAAKgwB,cAAc,WAE3C,GAAKpjB,IAAuB,OAASmjB,QAAsB,IAAWA,OAAqB,EAASA,EAAmB6wJ,oBAAqBxiH,EAAkBz+B,aAEvJ,GAAI/yB,EAAmB,CAC1B,IAAI4hM,EAAe,QAAUz+K,EAAmB4wJ,gBAAgB9xJ,GAC5D2/K,IAAiB3/K,EAAS8B,SAAS86K,MACnC/5K,EAAQ3B,EAAmBwzJ,uBAAuB10J,GAClDkB,EAAmBpB,MAAM+C,UAL7B1xB,KAAKk1B,SAASrG,EAAUoiF,KAUpCvlG,QAAS,CACL,4BAA4BisB,EAAG82K,GAC3B,IAAIvsM,EAASlC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACnCuhD,EAAiB/lD,KAAKgwB,cAAc,QACpCjkB,EAAag6C,EAAenH,YAC5BmM,EAAQhF,EAAegF,QACvBgD,EAAMhD,GAASA,EAAMgD,MACrB19C,EAAmBtE,GAAcA,EAAWsE,oBAAsB,GAClEkpD,EAAoB30D,OAAO+qB,KAAKtf,GAAkB47C,MAAMuN,IAAkBnpD,EAAiBmpD,IAC/F,GAAIzL,IAAQ/tD,KAAK8uB,OAAO,uBAAwB,IAAU9uB,KAAKgwB,cAAc,SAASg8K,8BAAgCyC,GAAY,CAC9H1gJ,EAAMtvD,MAAMC,QAAQqvD,GAAOA,EAAM,CAACA,GAClC,IAAI2gJ,EAAgB3gJ,EAAIzpD,OAAOypD,IAAQ/tD,KAAKorC,aAAa2iB,EAAK,cAC1D2gJ,EAAc/vM,SACduD,EAASA,GAAU,GACfq3D,EACAr3D,EAAOzC,KAAK,CACRkD,SAAUoJ,EAAW4iM,qBACrBzqJ,MAAM,IAGVwqJ,EAAcx3K,QAAQ03K,GAAgB1sM,EAAOzC,KAAK,CAC9CkD,SAAUisM,EACV1qJ,MAAM,MAKtB,OAAOhiD,IAGf6R,KAAM,CACF,aAAawH,GACT,IAAIA,GAAU,qBAAuBA,EAAO0oB,WAG5C,OAAOjkC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YAErC,aAAayqB,GAET,GADAjvB,KAAKk1B,SAASjG,GACVjvB,KAAK8uB,OAAO,sBAAwB9uB,KAAK4+C,YAAa,CACtD,IAAIiwJ,EAAkB,WAAa5/K,EAAEgV,YAAchV,EAAE1e,mBACjDu+L,EAA8BD,GAAmB5/K,EAAEsV,aAAetV,EAAEsV,YAAYhiC,QAAQ,WAAa,EACrG,YAAc0sB,EAAEgV,YAAchV,EAAEzN,MAAM7iB,QAAUmwM,GAChD9uM,KAAK+uM,qBACL/uM,KAAKgvM,kBAAkB//K,IAChB,WAAaA,EAAEgV,YAAc,YAAchV,EAAEgV,WACpDjkC,KAAK+uM,qBACE,WAAa9/K,EAAEgV,YAAchV,EAAE1e,oBACtCvQ,KAAKgvM,kBAAkB//K,KAInC,qBACI,IAAIggL,EAAyBjvM,KAAKkvM,yBAA2B,EACzDC,EAAqBnvM,KAAKiqI,sBAAwBjqI,KAAKiqI,sBAAsBtjH,YAAc,EAC/F3mB,KAAKkvM,wBAA0BC,EAC/BnvM,KAAKovM,qBAAuBD,IAAuBF,GAEvD,sBACI,OAAOjvM,KAAKovM,sBAEhB,kBAAkBngL,GACd,IAAIu6B,EAAiBv6B,EAAEu6B,gBAAkB,GACrCi1D,EAAkBz+G,KAAKgwB,cAAc,UAErC08B,OAAQA,EACR0J,WAAYA,EACZzvC,UAAWA,EACXvW,OAAQA,GACRo5C,EACAz5B,EAAqB/vB,KAAKgwB,cAAc,sBACxCw8K,EAAqBz8K,EAAmByqJ,sBACxC60B,EAAgCj/L,IAAWo8L,EAC3C1/L,EAAgB9M,KAAK8uB,OAAO,iBAC5Bk+K,EAAiBvuF,EAAgButF,6BACjCsD,EAAW5iJ,IAAU,IAAU/lC,EACnC,GAAI2oL,IAAal5I,GAAc,eAAUtpD,GACrC2xG,EAAgBouF,eAAe//L,GAAe,GAAM0pB,KAAK3pB,IACjDA,EAAkB,GAClB4xG,EAAgBotF,sBAAiB,EAAQriJ,UAG9C,GAAI6lJ,GAAiCrC,EAAgB,CACxD,IAAIC,EAAgBjtM,KAAK80D,iBAAiBhoD,GACtCD,EAAkB7M,KAAK8uB,OAAO,mBAC9BygL,EAAuBtC,GAAiB,EACxCuC,EAAyB3iM,GAAmB,EAC5C4iM,EAAiB5iM,IAAoBogM,GACrCuC,IAA2BC,GAAmBF,GAC9C9wF,EAAgBotF,iBAAiBh/L,EAAiB28C,QAE/C6lJ,IAAkCrC,GAAkBhtM,KAAK80D,iBAAiBhoD,GAAiB,EAClG9M,KAAK8uB,OAAO,mBAAoB,GACzB06B,EAAe4M,YACtBqoD,EAAgBixF,yBAGxB,kBAAkB3hJ,GACd,IAAIl7B,EAAO7yB,KACP00D,EAAI,IAAI,OAIZ,OAHA7hC,EAAK88K,uBAAuB5hJ,GAAKv3B,KAAKyhC,IAClCvD,EAAEx3B,QAAQ+6B,GAAe,EAAIvgB,KAAK05B,MAAMnZ,EAAcplC,EAAKjM,aAAe,KAC3EqiB,KAAKyrB,EAAE7xB,QACH6xB,EAAEzxB,WAEb,uBAAuB8qB,GACnB,OAAI/tD,KAAK4+C,YAAY32B,QACVjoB,KAAK4vM,sCAAsC7hJ,GAE/C/tD,KAAK6vM,mCAAmC9hJ,IAEnD,mCAAmCA,EAAK+hJ,EAAaC,GACjD,IAAIl9K,EAAO7yB,KACPsa,EAAW,IAAI,OACfvO,EAAa8mB,EAAK+rB,YACtB,GAAIngD,MAAMC,QAAQqvD,IAAQ0pD,GAAgB1pD,GACtC,OAAOzzC,EAAS4iB,SAAS,GAAG+F,UAEhC,IAAI3+B,EAASuuB,EAAKm9K,qBAAqBjiJ,GAoBvC,OAnBAhiD,EAAWk8C,KAAK,CACZ3jD,OAAQuuB,EAAKo9K,0BAA0B3rM,GACvCgyD,KAAM,EACNC,KAAM,IACP//B,KAAKziB,IACAA,EAAKpV,OAAS,GACd2F,EAASuuB,EAAKq9K,8BAA8BniJ,EAAKh6C,EAAK,GAAIg8L,GAC1DhkM,EAAWk8C,KAAK,CACZ3jD,OAAQuuB,EAAKo9K,0BAA0B3rM,EAAQwrM,GAC/Cx5I,KAAM,EACNC,KAAM,EACNzI,mBAAmB,IACpBt3B,KAAK,CAACmB,EAAG20B,KACRhyC,EAAS4iB,QAAQovB,EAAMC,eAG3BjyC,EAAS4iB,SAAS,KAGnB5iB,EAAS2oB,WAEpB,0BAA0B3+B,EAAQwrM,GAC9B,IAAIrkJ,EAAiBzrD,KAAKimD,oBAC1B,OAAO,QAAc6F,eAAe,CAACxnD,EAAQmnD,EAAgBqkJ,KAEjE,uBAAuBntM,EAAU3E,EAAOotM,GACpC,IACIlnJ,KAAMA,GACNknJ,EACJ,QAAQ,GACJ,KAAK,IAAUptM,GAASkmD,EACpB,MAAO,CAACvhD,EAAU,KAAK,GAC3B,KAAK,IAAU3E,IAAUkmD,EACrB,MAAO,CAACvhD,EAAU,IAAK,MAC3B,KAAK,IAAS3E,IAAUkmD,EACxB,KAAM,eAAUlmD,IAAUkmD,EACtB,MAAO,CAACvhD,EAAU,KAAM3E,GAC5B,QACI,SAGZ,8BAA8B+vD,EAAK+9D,EAASikF,GACxC,IAAIl9K,EAAO7yB,KACPgM,EAA0B6mB,EAAK/D,OAAO,2BACtCi9B,EAAoBl5B,EAAK+rB,YAAYvuC,mBAAmBmX,UACxDljB,EAASuuB,EAAKm9K,qBAAqBjiJ,EAAK,KACxCz1B,EAAOzF,EAAKmM,mBAAmBsmB,6BAA6ByG,GAAmB,GACnF,GAAIgkJ,EAAU,CACV,IAAI9nL,EAAQ4K,EAAKmM,mBAAmBwmB,8BAA8BuG,GAC9D9jC,IACAqQ,EAAOA,EAAOrQ,EAAMoD,OAAOiN,GAAQrQ,GA+C3C,OA5CIqQ,GACAA,EAAK91B,QAAQy0D,UAAU//B,QAAQk0K,IAC3B,IACIzoM,SAAUA,EACVuhD,KAAMA,EACNC,QAASA,GACTinJ,GAEAvkK,OAAQA,EACRykK,SAAUA,EACVC,UAAWA,GACXC,GAAqBL,mBAAmBC,EAAUt/E,EAAS,CAC3D//D,kBAAmBA,EACnB//C,wBAAyBA,EACzBq/L,YAAa1oM,GAAYkwB,EAAKmM,mBAAmBoM,aAAazoC,EAAU,cAK5E,GAHA2B,EAAS,CACL,CAAC3B,EAAU,IAAK4oM,GAAY,MAAOjnM,GAEnC,OAASgnM,GAAY,eAAUA,GAAW,CAC1C,IAAI6E,EAAgBt9K,EAAKu9K,uBAAuBztM,EAAU4oM,EAAWrnJ,GACjEisJ,IACA7rM,EAAS,CAAC6rM,EAAe,KAAM7rM,QAEhC,CACH,IACI+rM,EADAtnD,EAAkB7kG,EAAO,IAAM,IAE/BC,EACAksJ,EAAat8L,GACL,MAAQg1I,EACD5kG,EAAQmnJ,EAAUzkK,EAAO9yB,KAAU,EAEvCowC,EAAQmnJ,EAAUzkK,EAAO9yB,MAAW,GAG/Cs8L,EAAa,CAAC1tM,EAAUomJ,EAAiBwiD,GACpCrnJ,IACDmsJ,EAAa,CAACA,EAAY,KAAM,CAAC1tM,EAAU,IAAK,SAGxD2B,EAAS,CAAC+rM,EAAY,KAAM/rM,MAIjCA,GAEX,qBAAqBypD,EAAKulF,GACtB,IAAIg9D,EAAgBtwM,KAAK4+C,YAAYmP,MACjCzpD,EAAS,GAIb,GAHKgvI,IACDA,EAAY,KAEZ70I,MAAMC,QAAQ4xM,GACd,IAAK,IAAI9vM,EAAI,EAAGA,EAAI8vM,EAAc3xM,SAAU6B,EAAG,CAC3C,IAAI+vM,EAAUxiJ,EAAIuiJ,EAAc9vM,IAC5B+vM,IACIjsM,EAAO3F,OAAS,GAChB2F,EAAO7E,KAAK,OAEhB6E,EAAO7E,KAAK,CAAC6wM,EAAc9vM,GAAI8yI,EAAWi9D,UAIlDjsM,EAAS,CAACgsM,EAAeh9D,EAAWvlF,GAExC,OAAOzpD,GAEX,oBACI,OAAOtE,KAAKwhB,OAAM,GAAM7iB,OAAS,IAGzCuN,QAAS,CACL,eAAe2vB,GACX,IAAIvhB,EAAWta,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrCuhD,EAAiB/lD,KAAKgwB,cAAc,QACpCi0F,EAASl+D,EAAe01D,iBAAiB5/E,GAC7CvhB,EAASkc,KAAK,KACV,IAAIqF,EAAWkqB,EAAe+O,iBAAiBmvD,GAC3CsjB,EAAcxhF,EAAeuM,kBAC5B,IAAMz2B,GAAa0rG,EAAY5oI,QAChCqB,KAAKgwB,cAAc,SAAS61J,wBAMhD7sJ,MAAO,CACHtN,SAAU,CACN,WAAW2S,GACP,IAAIS,EAAO9+B,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAMrC,OALIxE,KAAK8uB,OAAO,sBAAwBuP,GAChCr+B,KAAKgwB,cAAc,SAASq8K,aAAahuK,EAAI0vB,MAC7CjvB,EAAKpS,SAAS++K,IAGf3sK,GAEX,cAAcnZ,GAEV,GADA3lB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,KAAK8uB,OAAO,sBAAwB9uB,KAAK8uB,OAAO,cAAe,CAC/D,IAAIi8B,EAAQ/qD,KAAKgoC,gBAAgB+iB,QAC7BA,IAAUA,EAAMgD,OAChB/tD,KAAKgoC,gBAAgB27B,UAAU,QAAS,kBAIpD,QAAQpoD,GACA,qBAAuBA,EAAO0oB,WAC1BjkC,KAAK8uB,OAAO,sBACZ9uB,KAAKgwB,cAAc,SAASwgL,iBAAiBj1L,GAGjDvb,KAAKk1B,SAAS3Z,IAGtB,2BAA2BguB,EAAe7a,GAClC1uB,KAAK8uB,OAAO,qBACZ9uB,KAAKywM,8BAA8B/hL,GAEnC1uB,KAAKk1B,SAASqU,IAGtB,8BAA8B7a,GAC1B,IAAI5hB,EAAgB9M,KAAK8uB,OAAO,iBAC5Bpd,EAAW1R,KAAK8uB,OAAO,aAAe,EACtCi3B,EAAiB/lD,KAAKgoC,gBACtBhX,EAAoBhxB,KAAKg/B,mBACzBnD,EAAWkqB,EAAe+O,iBAAiBhoD,GAC3CoyB,EAAcl/B,KAAK8uB,OAAO,sBAC1BgQ,EAAO9+B,KAAK0wM,6BAQhB,GAPK,eAAU1wM,KAAK2wM,0BAChB3wM,KAAK2wM,uBAAyB,KAC1B3wM,KAAKiuM,0BAA0BjuM,KAAK0wM,8BACpC1wM,KAAK41B,gBAAgBoN,OAAOhjC,KAAK2wM,0BAGzC7xK,EAAKhS,KAAK,WAAYpb,GAClBmqB,GAAY,IAAMnN,IACdwQ,EAAc,IACdA,EAAc,GAElBrD,GAAYkqB,EAAe8L,oBAC3B3yB,GAAelO,EAAkB2U,uBACjC3lC,KAAKgwB,cAAc,sBAAsBs3J,uBAAuBzrJ,EAAUqD,GACtEl/B,KAAKgwB,cAAc,SAASg8K,8BAA8B,CAC1D,IAAIjgM,EAAag6C,EAAeh6C,aAC5By9C,EAAiBz9C,GAAcA,EAAWy9C,kBAC1CA,GAAmBA,EAAep5C,QAAW21C,EAAe6qJ,wBAC5D5wM,KAAK41B,gBAAgBoN,OAAOhjC,KAAK2wM,wBACjC3wM,KAAK41B,gBAAgB8L,IAAI1hC,KAAK2wM,2BAK9C,6BACI,IAAI7jM,EAAgB9M,KAAK8uB,OAAO,iBAC5B+M,EAAW77B,KAAKgoC,gBAAgB8sB,iBAAiBhoD,GACrD,OAAO,eAAE9M,KAAK2sG,cAAc9wE,GAAY,EAAIA,EAAW,KAE3D,mBAAmBkyB,GACf,IAAIlyB,EAAW77B,KAAKgwB,cAAc,QAAQ8kC,iBAAiB/G,GACvDjvB,EAAO,eAAE9+B,KAAKw/K,OAAO3jJ,IACzB,OAAO77B,KAAKiuM,0BAA0BnvK,IAE1C,0BAA0BA,GACtB,IAAI2gC,EAAaz/D,KAAKigE,gBACtB,GAAIR,GAAc3gC,EAAKngC,OAAQ,CAC3B,IAAI2Z,EAAWmnD,EAAWoxI,yBAAyB/xK,EAAM,YACzD,OAAO9+B,KAAK0tM,kBAAkBp1L,GAElC,OAAO,IAAK,QAAU4kB,WAE1B,kBAAkBu1C,GACd,IAAI/d,EAAI,IAAI,OACR+K,EAAaz/D,KAAKigE,gBACtB,GAAIR,EAAY,CACZ,IAAIqxI,EAAmBrxI,EAAWgT,YAC9B5Q,EAAgB,KAChBpC,EAAWjxC,IAAI,SAAUqzC,GACzBnN,EAAEx3B,WAEN,GAAIu1C,IAAcq+H,EAMd,OALArxI,EAAWnxC,GAAG,SAAUuzC,GACxB7hE,KAAKgoC,gBAAgB+oK,sBACrBtxI,EAAW17B,SAAS,CAChBxgB,IAAKkvD,IAEF/d,EAAEzxB,UAGjB,OAAOyxB,EAAEx3B,eC/wBzB,GAAmBn5B,OAAO4uC,kBAAoB,iBAClD,GAASP,eAAe,QAAS,OAAAjlB,EAAA,OAAO,EAAM,GAAImhL,GAAa,CAC3Dh1K,UAAW,CACPP,YAAa,CACThlB,KAAMk1G,GAAQ,cAAcA,EAAKr2F,QAAQ07K,GAAYh1K,UAAUP,YAAYhlB,OACvE,gBAAgBwnC,EAAMy1J,GAClB,GAAIhxM,KAAK8uB,OAAO,sBAAwBrwB,MAAMC,QAAQ68C,IAASv7C,KAAKugE,cAAchlB,GAAO,CACrF,IAAIluC,EAAqBrN,KAAKgwB,cAAc,sBACtCghL,GAAe3jM,EAAmB4iB,sBAAwBjwB,KAAKixM,yBAAyB11J,IAC1Fv7C,KAAK8uB,OAAO,gBAAiBysB,GAGrC,OAAO1T,MAAMkhE,gBAAgBxtD,EAAMy1J,GAEvC,yBAAyBz1J,GACrB,IAAIvqB,EAAoBhxB,KAAKgwB,cAAc,WACvCljB,EAAgB9M,KAAK8uB,OAAO,iBAC5B+M,EAAW77B,KAAK80D,iBAAiBhoD,GACjCqhM,EAAatyK,GAAY,GAAK77B,KAAKsyD,iBAAiBz2B,GACpDwjE,EAASruE,EAAkBw0B,8BAA6B,GAC5D,GAAI2oJ,EACA,IAAK,IAAI3tM,EAAI,EAAGA,EAAI+6C,EAAK58C,SAAU6B,EAAG,CAClC,IAAIqmC,EAAS,gBAAcw4D,EAAO7+F,IAAM6+F,EAAO7+F,GAAGmC,UAClD,GAAIkkC,EAAOsnK,EAAWp6L,QAAUwnC,EAAK/6C,GACjC,OAAO,EAInB,OAAO,EAEX,cAAc8pB,EAAW2rC,GACrB,IAAIi7I,EAAY,GACZ1vL,EAAQ,CAAC8I,GACb,MAAO9I,GAASA,EAAM,IAAMy0C,EAAY,CACpC,IAAIlrC,EAAOvJ,EAAM,QACb,IAAWuJ,EAAKgjC,KAChBmjJ,EAAUzxM,KAAKsrB,EAAKgjC,KAExBvsC,EAAQuJ,EAAKvJ,MACby0C,IAEJ,OAAOi7I,EAEX,mBAAmBr+K,EAAMq+K,EAAWrkH,GAChC,IAAIn4B,EAAI,IAAI,OASZ,OARAm4B,IACAh6D,EAAKs+K,UAAUD,EAAU1uM,MAAM,EAAGqqF,IAAQr2D,KAAK,KACvCq2D,IAAUqkH,EAAUvyM,OACpB+1D,EAAEx3B,UAEFrK,EAAKu+K,mBAAmBv+K,EAAMq+K,EAAWrkH,GAAOr2D,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAE7xB,UAE5EoG,KAAKyrB,EAAE7xB,QACH6xB,EAAEzxB,UAEb,sCAAsC8qB,GAClC,IAAIl7B,EAAO7yB,KACP+L,EAAa8mB,EAAK+rB,YAClBt6C,EAASuuB,EAAKm9K,qBAAqBjiJ,GACnCzzC,EAAW,IAAI,OACf+2L,EAAa5yM,MAAMC,QAAQqvD,GAC3B9lC,EAAQlc,EAAWkc,QACvB,OAAIopL,EACO/2L,EAAS4iB,SAAS,GAAG+F,UAE3Bl3B,EAAWu8F,UAAUlD,sBAI1Br5F,EAAWk8C,KAAK,CACZ3jD,OAAQuuB,EAAKo9K,0BAA0B3rM,GACvC2jB,MAAOA,IACRuO,KAAKziB,IACJ,IAAKA,GAAQ,IAAMA,EAAKpV,SAAW,eAAUoV,EAAK,GAAGg6C,OAAS,IAAMh6C,EAAK,GAAGg6C,IACxE,OAAOzzC,EAAS4iB,SAAS,GAAG+F,UAEhC,IAAIiuK,EAAYr+K,EAAKy+K,cAAcv9L,EAAK,GAAIkU,EAAMtpB,QAClDk0B,EAAKu+K,mBAAmBv+K,EAAMq+K,EAAW,GAAG16K,KAAK,KAC7C3D,EAAK0+K,iCAAiCj3L,EAAUyzC,EAAKmjJ,EAAWjpL,KACjEghB,KAAK3uB,EAASuoB,UAClBoG,KAAK3uB,EAASuoB,QACVvoB,EAAS2oB,YAfZpQ,EAAKg9K,mCAAmC9hJ,EAAK,MAAM,GAAMv3B,KAAKlc,EAAS4iB,SAAS+L,KAAK3uB,EAASuoB,QACvFvoB,GAgBf,iCAAiCA,EAAUyzC,EAAKmjJ,EAAWjpL,GACvD,IAOI05E,EAPAmuG,EAAc1wG,GAAkB8xG,EAAW,CAC3CjpL,MAAOA,IAEPlc,EAAa/L,KAAK4+C,YAClB6O,EAAgBztD,KAAK8uB,OAAO,kBAC5B09K,EAAqB,YAAc/+I,GAAiB,aAAeA,EACnE7mC,EAAW7a,EAAW6a,WAE1B7a,EAAWu8F,UAAUlD,qBAAqB,CACtC9uC,KAAM,EACNC,KAAM,IACP,CAAC4qC,EAAW6B,KACP,eAAa7B,EAAU5lD,KAAM21J,KAC7BvvG,EAAcqB,KAGtBhjG,KAAK6vM,mCAAmC9hJ,EAAK+hJ,GAAat5K,KAAKg7K,IAC3D,IAAI9wM,EACA+wM,EACJ,GAAID,EAAa,EACbl3L,EAAS4iB,SAAS,OADtB,CAIA,IAAIw0K,EAAoB/vG,EAAc/6E,GAAYA,EAClDlmB,EAAQgxM,EAAoBF,EAAaN,EAAUvyM,OAE/C8yM,EADAjF,EACyB,EAEA90J,KAAK05B,MAAM1wE,GAASkmB,EAAWsqL,EAAUvyM,SAAWuyM,EAAUvyM,OAE3F+B,EAAQihG,EAAc6vG,EAAaC,EACnCn3L,EAAS4iB,QAAQx8B,MAClBuoC,KAAK3uB,EAASuoB,e,iBC7GjC,GAAS,iBACT8uK,GAAW,aACXC,GAAoB,cACpBC,GAAc,QACdC,GAAmBxiH,GAAe,eAAEA,GAAa16D,GAAG,YACpDm9D,GAAU,CAAC9kE,EAAS+G,KACpB,IAAI3D,EAAIub,EACR,GAAK3e,EAAL,CAGA,IAAI7J,GAAQ,QAAUiN,EAAK2D,EAAO1O,UAAO,IAAW+K,OAAK,EAASA,EAAGjN,OAAS,EAC1EG,GAAO,QAAUqoB,EAAK5X,EAAO1O,UAAO,IAAWsmB,OAAK,EAASA,EAAGroB,MAAQ,EAC5E0J,EAAQqP,MAAMy1K,UAAY,aAAa1mL,OAAOjI,EAAM,OAAOiI,OAAO9H,EAAK,OACvE0J,EAAQqP,MAAM01K,WAAangH,GAAA,KAAGrjE,IAAM,GAAK,aAAanD,OAAO2I,EAAO/O,SAAU,OAAOoG,OAAO2I,EAAO9O,UAEnG+sL,GAAgBhlL,IACXA,IAGLA,EAAQqP,MAAMy1K,UAAY,GAC1B9kL,EAAQqP,MAAM01K,WAAa,KAG/B,SAASE,GAAsBC,GAC3B,IAAI9qL,EAAS8qL,EAAY9qL,UAErBiV,MAAOA,GACP61K,EAAY,GACZ3mK,EAAczV,WAAWuG,EAAMkP,cAAgB,EAC/CC,EAAe1V,WAAWuG,EAAMmP,eAAiB,EACjD2mK,EAAar8K,WAAWuG,EAAM81K,aAAe,EAC7CtgM,EAAQqgM,EAAY,GAAGjyK,aAAesL,EAAcC,GACpDx+B,EAAS,eAAUklM,GACnB/uL,EAAOiE,EAAOjE,KAAOooB,EACrBjoB,EAAM8D,EAAO9D,IAAM6uL,EACvB,MAAO,CACHhvL,KAAMA,EACNu7E,MAAOv7E,EAAOtR,EACdyR,IAAKA,EACLosD,OAAQpsD,EAAMtW,GAGtB,IAAIolM,GAAW,QAAUz/K,QAAQ,CAC7B,QACI5yB,KAAKk1B,WACLl1B,KAAKsyM,qBAAuBtyM,KAAKuyM,oBAAoBr+K,KAAKl0B,MAC1DA,KAAKwyM,sBAAwB,MAEjC,qBACI,OAAO,OAAArlL,EAAA,MAAOntB,KAAKk1B,WAAY,CAC3Bwb,OAAO,EACPpsC,OAAQ,MACRmuM,gBAAiB,WACjBzqL,iBAAkB,OAClBL,qBAAqB,EACrB7S,iBAAiB,EACjB49L,gBAAgB,EAChBtqL,aAAc,KACdD,MAAO,KACPK,SAAU,KACVC,UAAW,KACXkqL,sBAAuB,KACvBp1L,UAAW,CACPnf,KAAM,QACN6mB,SAAU,IACVC,OAAQ,QAEZw+B,UAAW,KACXC,QAAS,KACTivJ,gBAAgB,EAChBC,WAAY,KACZC,gBAAiB,EACjBzrL,OAAQ,EACR0rL,YAAY,EACZC,qBAAsB,KAG9B,QACIhzM,KAAK8uB,OAAO,CACR8jL,gBAAgB,EAChBjvJ,QAAS,KACTD,UAAW,KACXmvJ,WAAY,KACZC,gBAAiB,EACjBE,qBAAsB,IAEtBhzM,KAAKizM,sBACLjzM,KAAKizM,qBAAqBjwK,SAE9BhjC,KAAKizM,qBAAuB,MACvBjzM,KAAKkzM,mBAAqBlzM,KAAKmzM,iBAChCnzM,KAAKmzM,eAAe1hL,IAAI,eAAgBzxB,KAAKozM,qBAC7CpzM,KAAKmzM,eAAiB,OAG9BE,oBAAqB,CAAC7xL,EAAOvf,IAAUuf,EAAMhf,MAAM,EAAGP,GAAOg1D,UAAU3yD,OAAOwtM,IAAkB,GAChG,kBAAkB7iL,GAEd,GADAjvB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,YACtB,IAASyqB,EAAE9U,OAAf,CAGA,IAAIm5L,EAAiBtzM,KAAKuzM,oBAC1BvzM,KAAKwzM,oBACLxzM,KAAKyzM,yBAAyBxkL,GAC9BjvB,KAAK8uB,OAAO,YAAa9uB,KAAK0zM,iBAAiBJ,IAC/CtzM,KAAK8uB,OAAO,kBAAmB9uB,KAAK8uB,OAAO,aAE/C,yBAAyBG,GACrB,IAAIkjL,EAAcnyM,KAAK2zM,eAAe,eAAE1kL,EAAEvsB,SACtCyvM,IACAnyM,KAAKwyM,sBAAwB,CACzBvlL,QAASklL,EACTtuK,WAAYsuK,EAAYtuK,aACxB4uC,UAAW0/H,EAAY1/H,aAE3B,OAAajkD,IAAI2jL,EAAa,SAAUnyM,KAAKsyM,sBAC7C,OAAahkL,GAAG6jL,EAAa,SAAUnyM,KAAKsyM,wBAGpD,+BACQtyM,KAAKwyM,wBACL,OAAahkL,IAAIxuB,KAAKwyM,sBAAsBvlL,QAAS,SAAUjtB,KAAKsyM,sBACpEtyM,KAAKwyM,sBAAwB,OAGrC,oBAAoBvjL,GAChB,IAAI2kL,EAAuB5zM,KAAKwyM,sBAC5BoB,GACA,CAAC,aAAc,aAAa18K,QAAQ28K,IAChC,GAAI5kL,EAAEvsB,OAAOmxM,KAAgBD,EAAqBC,GAAa,CAC3D,IAAIzxB,EAAWnzJ,EAAEvsB,OAAOmxM,GAAcD,EAAqBC,GAC3D7zM,KAAK8zM,mBAAmB1xB,GACxBpiL,KAAK+zM,mBACLH,EAAqBC,GAAc5kL,EAAEvsB,OAAOmxM,OAK5D,kBAAkB5kL,GAEd,GADAjvB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,OAASA,KAAKg0M,wBAGlBh0M,KAAKyzM,yBAAyBxkL,GAC9BjvB,KAAKwzM,oBACLxzM,KAAK8uB,OAAO,aAAc,IACrB9uB,KAAKkzM,mBAAmB,CACzB,IAAIL,EAAa7yM,KAAK8uB,OAAO,cACzBmlL,EAAgBpB,EAAWA,EAAWl0M,OAAS,GACnD,GAAIs1M,EAAe,CACf,IAAIplL,EAAW7uB,KAAK6uB,WAChBykL,EAAiBtzM,KAAKuzM,oBACtBW,EAAal0M,KAAKm0M,yBAClBC,EAAoBF,EAAa,eAAeZ,GAAgB,GAAQ,eAAcA,GAAgB,GACtGe,EAAaxlL,EAAS8E,IAAI,GAAGugL,EAAa,eAAiB,eAC3D1tE,EAAiB33G,EAAS8E,IAAI,GAAGugL,EAAa,YAAc,cAC5DI,EAAeJ,EAAa,MAAQ,OACpCK,EAAoBN,EAAcK,GAClCE,EAAkB3lL,EAASxH,SAASitL,GACpCG,EAAWD,EAAkBH,EAAa7tE,EAAiB+tE,EAC/D,GAAIE,EAAWL,GACPF,EAAY,CACZ,IAAI1yL,EAAQxhB,KAAK00M,YACbp9G,EAAY,eAAEt3F,KAAKqzM,oBAAoB7xL,IAC3CxhB,KAAKmzM,eAAiB77G,EACtBt3F,KAAKozM,oBAAsB97G,EAAU3jE,IAAI,GAAG2I,MAAMtG,aAClDshE,EAAU7lE,IAAI,eAAgB2iL,EAAoBK,GAClD,IAAIE,EAAYr9G,EAAU5iE,QAAQ,gBAC9BkgL,EAAWD,EAAU5gM,KAAK,iBAAmB4gM,EAAU5gM,KAAK,gBAChE6gM,GAAYA,EAASvtK,aAMzC,oBACIrnC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtBxE,OAASA,KAAKg0M,uBACdh0M,KAAK60M,gCAGb,YACQ70M,OAASA,KAAK80M,uBACd90M,KAAK8uB,OAAO,WAAY,IAGhC,YACQ9uB,OAASA,KAAK80M,uBACd90M,KAAK8uB,OAAO,UAAW9uB,KAAK8uB,OAAO,eAG3C,WAAW7C,GACP,IAAI8oL,EAAkB/0M,KAAK80M,sBACvBE,EAAmBD,EAAgBlmL,WACnCsjL,EAAcnyM,KAAK2zM,eAAeqB,GACtC,GAAI7C,EAAa,CACb,IACI/uL,KAAMA,EACNu7E,MAAOA,EACPp7E,IAAKA,EACLosD,OAAQA,GACRuiI,GAAsBC,GACtBxuJ,EAAU3jD,KAAK8uB,OAAO,WACtB+jL,EAAa7yM,KAAK8uB,OAAO,cACzBmmL,EAAY,OAASpC,QAAc,IAAWA,OAAa,EAASA,EAAWvuM,OAAOymB,GAAQA,EAAK9oB,QAAU0hD,GAAS,GAC1H,GAAIsxJ,QAAa,IAAWA,EAAU1xL,IAAK,CACvC,IAAI2wL,EAAal0M,KAAKm0M,yBACtB,OAAID,EACO3wL,GAAOm0B,KAAKklB,KAAKq4I,EAAU1xL,MAAQm0B,KAAK05B,MAAM6jI,EAAU1xL,MAAQosD,EAEpEvsD,GAAQs0B,KAAKklB,KAAKq4I,EAAU7xL,OAASs0B,KAAK05B,MAAM6jI,EAAU7xL,OAASu7E,GAGlF,OAAO,GAEX,QAAQu2G,GACJl1M,KAAK60M,+BACL,IASQM,EACAC,EAVJ9B,EAAiBtzM,KAAKuzM,oBACtB8B,EAAkBr1M,KAAKg0M,sBACvBsB,EAAoBD,EAAgB/gL,OAASt0B,KAAKs0B,KAClDqvB,EAAU3jD,KAAK8uB,OAAO,YAEtB7C,MAAOA,GACPipL,EACA19B,EAAYx3K,KAAKu1M,WAAWtpL,GAChC,GAAI,OAAS03B,GAAWA,GAAW,GAAK6zH,IAGhC69B,IAAoBr1M,OACpBm1M,EAAYn1M,KAAKw1M,cAAcvpL,GAC1BkpL,IACDC,EAAep1M,KAAKy1M,iBAAiBxpL,KAGzCqpL,GACA,gBAAchC,GAEdtzM,KAAK8uB,OAAO,oBACXqmL,GAAan1M,KAAK01M,UAAUpC,EAAgB3vJ,EAASyxJ,GAEtDC,IAAoBr1M,MACpB,OAAOA,KAAK21M,kBAAkB1pL,GAGtC,OAAO,iBAAWiR,WAEtB,SAASjO,GACL,IAAI4jL,EAAa7yM,KAAK8uB,OAAO,cAC7B,GAAK+jL,EAAL,CAQA,IALA,IAIIoC,EAJAf,EAAal0M,KAAKm0M,yBAClB1jC,EAAWyjC,EAAa,MAAQ,OAChC0B,EAAiB1B,EAAajlL,EAAE4mL,MAAQ5mL,EAAE6mL,MAC1CnlM,EAAa3Q,KAAK8uB,OAAO,cAEpBtuB,EAAIqyM,EAAWl0M,OAAS,EAAG6B,GAAK,EAAGA,IAAK,CAC7C,IAAIqwK,EAAiBgiC,EAAWryM,EAAI,KAAOqyM,EAAWryM,GAAGiwK,GAAYoiC,EAAWryM,EAAI,GAAGiwK,IAAa,EACpG,MAAMyjC,GAAcvjM,EAAailM,EAAiB/kC,EAAiBA,EAAiB+kC,SAAmB,IAAW/kC,EAG9G,MAFAokC,EAAYpC,EAAWryM,GAK3By0M,IACAj1M,KAAK+1M,2BAA2B9mL,EAAGgmL,GAC/Bj1M,KAAKg2M,sBAAsBrpC,eAAiB3sK,KAAKkzM,mBACjDlzM,KAAK+zM,sBAIjB,kBACI,MAAO,aAAe/zM,KAAK8uB,OAAO,qBAAuB9uB,KAAK8uB,OAAO,wBAEzE,qBACI,IAAImnL,EAKJ,OAJIj2M,KAAKkzM,oBACL+C,EAAwB,eAAE,SAASvpL,SAAS1sB,KAAKg6F,iBAAiB43G,KAAoBjhK,aAAa3wC,KAAKg0M,sBAAsBkC,gBAElIl2M,KAAKizM,qBAAuBgD,EACrBA,GAEX,YACI,IAAIE,EAAgBn2M,KAAKo2M,oBACzB,OAAOp2M,KAAKq2M,YAAY9oL,KAAK4oL,GAAe/yK,IAAI,IAAI/X,OAAOrrB,KAAKg6F,iBAAiB43G,MAAqBxuK,IAAI,IAAI/X,OAAOrrB,KAAKg6F,iBAAiB63G,MAAepoK,WAE9J,mBACI,IAAI4rK,EAAkBr1M,KAAKg0M,sBACvBe,EAAkB/0M,KAAK80M,sBAC3B,OAAOO,IAAoBN,GAAmB/0M,KAAK8uB,OAAO,oBAE9D,cAAczX,EAAci/L,EAAuB1D,GAC/C,IAAIjrL,EAAsB3nB,KAAK8uB,OAAO,uBAClCha,EAAkB89L,GAAkB5yM,KAAKu2M,mBAC7C,SAAKzhM,GAAoB,IAAMuC,GAAiBsQ,MAG3C3nB,KAAKkzM,qBAGF,IAAMoD,GAAyBj/L,IAAiBi/L,IAA0B1D,GAAkBv7L,IAAiBi/L,EAAwB,MAEjJ,iBACI,IACI53I,EACAr3C,EACAmvL,EAHAt0M,EAAS,GAITyO,EAAa3Q,KAAK8uB,OAAO,cACzBolL,EAAal0M,KAAKm0M,yBAClBsC,EAAez2M,KAAK00M,YACpBgC,EAAsBD,EAAanyM,OAAOwtM,IAC1C6E,EAAmBD,EAAoB/3M,OACvCi4M,EAAiB52M,KAAK62M,uBACtBP,EAAwBI,EAAoBn0M,QAAQq0M,EAAejjL,IAAI,IAC3E,GAAIgjL,EAAkB,CAClB,IAAK,IAAIn2M,EAAI,EAAGA,GAAKm2M,EAAkBn2M,IAAK,CACxC,IAAIs2M,GAA2B5C,GAAcvjM,EAAanQ,IAAMm2M,EAC5DI,EAAyB7C,GAAc1zM,IAAMm2M,EAC7Cn2M,EAAIm2M,IACJj4I,EAAQ,eAAEg4I,EAAoBl2M,IAC9B6mB,EAASq3C,EAAMr3C,SACfmvL,EAAY,eAAc93I,IAE9Bx8D,EAAOzC,KAAK,CACRmzM,gBAAgB,EAChBxvL,KAAMiE,EAAOjE,MAAQ0zL,EAA0BN,EAAY,GAC3DjzL,IAAK8D,EAAO9D,KAAOwzL,EAAyB70M,EAAO1B,EAAI,GAAGyM,OAAS,GACnEhL,MAAOzB,IAAMm2M,EAAmBF,EAAa93M,OAAS83M,EAAal0M,QAAQm8D,EAAM/qC,IAAI,IACrF+qC,MAAOA,EACP5sD,MAAO,eAAc4sD,GACrBzxD,OAAQ,eAAeyxD,GACvB8zD,QAASxyH,KAAKg3M,cAAcx2M,EAAG81M,KAGvC,GAAIt2M,KAAK8uB,OAAO,uBAAwB,CACpC,IAAImoL,EAAS/0M,EACbA,EAAS,GACT,IAAK,IAAIogD,EAAK,EAAGA,EAAK20J,EAAOt4M,OAAQ2jD,IACjCpgD,EAAOzC,KAAKw3M,EAAO30J,IACf20J,EAAO30J,EAAK,IACZpgD,EAAOzC,KAAK,OAAA0tB,EAAA,MAAO,GAAI8pL,EAAO30J,GAAK,CAC/BswJ,gBAAgB,EAChBrvL,IAAKm0B,KAAK05B,OAAO6lI,EAAO30J,GAAI/+B,IAAM0zL,EAAO30J,EAAK,GAAG/+B,KAAO,GACxDH,KAAMs0B,KAAK05B,OAAO6lI,EAAO30J,GAAIl/B,KAAO6zL,EAAO30J,EAAK,GAAGl/B,MAAQ,GAC3DovG,QAASxyH,KAAKg3M,cAAc10J,EAAIg0J,GAAuB,YAMvEp0M,EAAOzC,KAAK,CACRmzM,gBAAgB,EAChB3wM,MAAO,EACPuwH,SAAS,IAGjB,OAAOtwH,GAEX,kBAAkBg1M,IACVA,GAAel3M,KAAK8uB,OAAO,gBAAkB9uB,KAAK8uB,OAAO,gBACzD9uB,KAAK8uB,OAAO,aAAc9uB,KAAKm3M,mBAGvC,mBAAmB/0B,GACf,IAAIywB,EAAa7yM,KAAK8uB,OAAO,cAC7B,GAAIszJ,GAAYywB,IAAe7yM,KAAK8uB,OAAO,cAAe,CACtD,IAAIolL,EAAal0M,KAAKm0M,yBAClBiD,EAAmBlD,EAAa,MAAQ,OAC5CrB,EAAW37K,QAAQ+9K,IACfA,EAAUmC,IAAqBh1B,MAI3C,iBAAiB9+F,GACb,OAAOtjF,KAAK00M,YAAYnyM,QAAQ+gF,EAAa3vD,IAAI,KAErD,qBAAqB9E,GACjB,IAAIb,EAAOhuB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAErC,OADAwpB,EAAKmU,MAAMuhB,UAAY1jD,KAAK0zM,iBAAiB7kL,GACtCb,GAEX,mBAAmBhwB,GACfgC,KAAKizM,sBAAwBjzM,KAAKizM,qBAAqBrwI,OAAO5kE,IAElE,yBACI,MAAO,aAAegC,KAAK8uB,OAAO,oBAEtC,kBAAkB60B,EAAS0zJ,GACvB,IAAIC,EAAqBt3M,KAAKg0M,wBAA0Bh0M,KAAK80M,sBACzDpxJ,EAAY1jD,KAAKu3M,sBACrB,OAAI,OAAS5zJ,EACFD,EAEJhM,KAAKpwB,IAAIgwL,GAAsB5zJ,GAAaC,GAAW0zJ,EAAiB1zJ,EAAUA,EAAU,EAAG,IAE1G,2BAA2B10B,EAAGgmL,GAC1B,IAAII,EAAkBr1M,KAAKg0M,sBACvBrwJ,EAAU3jD,KAAKw3M,kBAAkBvC,EAAUhzM,MAAOgzM,EAAUrC,gBAC5D15D,EAAY,OAAA/rH,EAAA,MAAOntB,KAAKy3M,cAAcxoL,GAAI,CAC1C00B,QAASA,EACTivJ,eAAgBqC,EAAUrC,iBAE9BqC,EAAUziF,SAAWxyH,KAAK03M,WAAW,eAAhB13M,CAAgCk5I,IACjDA,EAAU/+H,QAAW86L,EAAUziF,SASnCxyH,KAAK8uB,OAAO,CACR8jL,eAAgBqC,EAAUrC,eAC1BjvJ,QAASsxJ,EAAUhzM,QAEvBjC,KAAK03M,WAAW,wBAAhB13M,CAAyC,OAAAmtB,EAAA,MAAOntB,KAAKy3M,cAAcxoL,GAAI,CACnE0oL,mBAAoB,eAAiB33M,KAAKizM,sBAC1C2E,YAAa,eAAiBvC,EAAgBa,kBAElDl2M,KAAKwzM,qBAhBIyB,EAAUziF,SACXxyH,KAAK8uB,OAAO,CACR8jL,gBAAgB,EAChBjvJ,QAAS,QAezB,qBAAqB+a,EAAO5sD,GAExB,GADA9R,KAAK63M,aAAe73M,KAAK2zM,eAAej1I,GACpC1+D,KAAK63M,aAAc,CACnB,IAAIC,EAAkB,eAAS93M,KAAK63M,cAChCE,EAAe/3M,KAAK63M,aAAaxwL,SAASjE,KAAOs7C,EAAMr3C,SAASjE,KAChE40L,EAAgB,eAAct5I,GAASq5I,EAAeD,EACtDC,EAAe,IACfjmM,GAASimM,GAETC,EAAgB,IAChBlmM,GAASkmM,GAGjB,OAAOlmM,GAEX,wBAAwBmmM,EAAqB3oH,GACzC,IAAIsjH,EAAiB5yM,KAAK8uB,OAAO,kBAC7B4vC,EAAQ,eAAE4wB,GACV4kH,EAAal0M,KAAKm0M,yBAClBriM,EAAQ,GACR7E,EAAS,GACbgrM,EAAoB3hL,YAAYt2B,KAAKg6F,iBAAiB,sBAAuB44G,IACzEsB,GAActB,KACd9gM,EAAQ,eAAc4sD,IAErBw1I,IAActB,IACf3lM,EAAS,eAAeyxD,IAE5B5sD,EAAQ9R,KAAKk4M,qBAAqBx5I,EAAO5sD,GACzCmmM,EAAoBxmL,IAAI,CACpB3f,MAAOA,EACP7E,OAAQA,KAGhB,UAAUq2E,EAAcrhF,EAAOmzM,GAC3B,IAAI+C,EACAC,EAAgBp4M,KAAK00M,YACrB2D,EAAqBD,EAAcn2M,GACnCozM,EAAkBr1M,KAAKg0M,sBACvBoB,IACA9xH,EAAeA,EAAa5yC,QAC5B2kK,EAAgBiD,wBAAuB,EAAOh1H,IAE7C+0H,IACDF,EAAyBC,EAAcn2M,EAAQ,IAEnDjC,KAAKu4M,cAAcj1H,EAAc+0H,EAAoBF,IAEzD,cAAcK,EAAaztL,EAAM0tL,GACxB1tL,GAAS0tL,EAEHA,EACPD,EAAY11I,YAAY,eAAE21I,IAE1BD,EAAY7nK,aAAa,eAAE5lB,IAJ3BytL,EAAYniL,SAASr2B,KAAK6uB,aAOlC,kBAAkBI,EAAGq0D,GACjB,OAAO,OAAAn2D,EAAA,MAAOntB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAAY,CAChDk/C,UAAW1jD,KAAK0zM,iBAAiBpwH,MAGzC,cAAcr0D,GACV,IAAIomL,EAAkBr1M,KAAKg0M,sBACvBe,EAAkB/0M,KAAK80M,sBACvBlC,EAAiBmC,EAAgBjmL,OAAO,kBAC5C,OAAO,OAAA3B,EAAA,MAAOntB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAAY,CAChDk/C,UAAW2xJ,EAAgBvmL,OAAO,aAClC60B,QAAS3jD,KAAKw3M,kBAAkBzC,EAAgBjmL,OAAO,WAAY8jL,GACnEA,eAAgBA,KAGxB,eAAe5kL,GACX,IACIra,KAAMA,GACNqa,EACJ,OAAQra,GACJ,IAAK,eACL,IAAK,wBACL,IAAK,QACL,IAAK,WACL,IAAK,YACD3T,KAAK,IAAIqrB,OAAO1X,EAAM,WAAa3T,KAAKkuB,sBAAsBva,GAC9D,MACJ,IAAK,kBACL,IAAK,sBACL,IAAK,iBACL,IAAK,mBACL,IAAK,aACL,IAAK,YACL,IAAK,kBACL,IAAK,kBACL,IAAK,SACL,IAAK,uBACL,IAAK,aACD,MACJ,IAAK,YACD,EAAC,GAAO,GAAMujB,QAAQwhL,IAClB,IAAIh1J,EAAYg1J,EAAe1qL,EAAKhwB,MAAQgwB,EAAKgxB,cACjD,GAAI,OAAS0E,EAAW,CACpB,IAAIi1J,EAAe,eAAE34M,KAAK00M,YAAYhxJ,IACtC1jD,KAAKs4M,uBAAuBI,EAAcC,MAGlD,MACJ,IAAK,iBACD34M,KAAK44M,6BAA6B5qL,GAClC,MACJ,IAAK,UACDhuB,KAAK64M,sBAAsB7qL,GAC3B,MACJ,QACIhuB,KAAKk1B,SAASlH,KAG1B,+BACQhuB,KAAKkzM,mBAAqBlzM,KAAKizM,sBAC/BjzM,KAAK+zM,oBAGb,mBAAmBz7L,GACf,IACIwgM,EADAjqL,EAAW7uB,KAAK6uB,WAapB,GAXI,WAAaA,EAAS4C,IAAI,YAC1BqnL,EAAkBjqL,EAAS8E,IAAI,GAE/B9E,EAAS8sB,UAAUypC,MAAK,WACpB,GAAI,YAAc,eAAEplF,MAAMyxB,IAAI,YAE1B,OADAqnL,EAAkB94M,MACX,KAKf84M,EAAiB,CACjB,IAAIC,EAAa,eAAgBD,GAC7BtoC,EAAwBxwK,KAAKm0M,yBAC7B9uL,EAAQmrJ,EAAwB,MAAQ,OACxClwC,EAAMkwC,EAAwB,SAAW,QACzC5uE,EAAa4uE,EAAwB,GAAOwoC,YAAc,GAAOC,YACrE,GAAI3gM,EAAS+M,GAAS0zL,EAAW1zL,GAASu8E,GAActpF,EAAS+M,GAAS0zL,EAAWz4E,GAAO1+B,EACxF,OAAO,EAGf,OAAO,GAEX,sBAAsB5zE,GAClB,IAAI21B,EAAU31B,EAAKhwB,MACnB,GAAIgC,KAAKkzM,kBAAmB,CACxB,IAAIgG,EAAkB,OAASv1J,GAAWA,GAAW,EACrD3jD,KAAKm5M,mBAAmBD,GACpBA,GACAl5M,KAAK+zM,wBAGT/zM,KAAKo5M,WAAWprL,EAAKgxB,cAAehxB,EAAKhwB,MAAOgwB,EAAKqrL,aAG7D,SACI,GAAI,OAASr5M,KAAK8uB,OAAO,cAAgB,OAAS9uB,KAAK8uB,OAAO,WAA9D,CAGA9uB,KAAKwzM,mBAAkB,GACvBxzM,KAAKs5M,yBACL,IAAI31J,EAAU3jD,KAAK8uB,OAAO,WAC1B9uB,KAAK64M,sBAAsB,CACvB76M,MAAO2lD,EACP01J,YAAY,MAGpB,yBACI,IAAI31J,EAAY1jD,KAAKu3M,sBACjBoB,EAAe,eAAE34M,KAAK00M,YAAYhxJ,IAClCi1J,EAAah6M,SACbqB,KAAKu5M,gBAAkBZ,EACvB34M,KAAKs4M,wBAAuB,EAAMK,KAG1C,oBAAoBv1L,GAChB,IAAI+uL,EAAcnyM,KAAK63M,aACvB,GAAI1F,GAAenyM,KAAKm0M,yBAA0B,CAC9C,IAAI4D,EAAe5F,EAAY9qL,SAASjE,KAAOA,EAC3C20L,EAAe,IACf30L,GAAQ20L,GAGhB,OAAO30L,GAEX,mBACI,IAAI60L,EAAsBj4M,KAAKizM,sBAAwBjzM,KAAKw5M,qBAC5D,GAAKvB,EAAL,CAGA,IAAIz2L,EAAQxhB,KAAK00M,YACb/wJ,EAAU3jD,KAAK8uB,OAAO,WACtB0hJ,EAAwBxwK,KAAKm0M,yBAC7BxjM,EAAa3Q,KAAK8uB,OAAO,cACzB8jL,EAAiB5yM,KAAK8uB,OAAO,kBAC7BxW,EAAW,KACXg3E,EAAc9tE,EAAMmiC,GACxB,GAAI2rC,EAAa,CACb,IAAIhM,EAAe,eAAEgM,GACrBh3E,EAAWgrE,EAAaj8D,SACnBmpJ,IAAyB7/J,GAAeiiM,IACzCt6L,EAAS8K,MAAQ,eAAckgE,GAAc,QAE9C,CACH,IAAIm2H,EAAyBnqH,EAActvF,KAAKqzM,oBAAoB7xL,EAAOmiC,GACvE81J,IACAnhM,EAAW,eAAEmhM,GAAwBpyL,SACjCmpJ,EACAl4J,EAASiL,KAAO,eAAek2L,GAAwB,GAC/C9oM,IACR2H,EAAS8K,MAAQ,eAAcq2L,GAAwB,KAQnE,GAJAz5M,KAAK05M,wBAAwBzB,EAAqB3oH,GAC9Ch3E,IAAatY,KAAK25M,mBAAmBrhM,KACrCA,EAAW,MAEXA,EAAU,CACV,IAAIshM,EAAyBppC,GAAyB7sH,IAAYniC,EAAM7iB,OACpEk7M,EAAyB,eAAe5B,GAC5C3/L,EAAS8K,KAAOpjB,KAAK85M,oBAAoBxhM,EAAS8K,MAClD9K,EAASiL,IAAMq2L,GAA0BthM,EAASiL,KAAOs2L,EAAyBvhM,EAASiL,IAAMs2L,EAAyBvhM,EAASiL,IACnIvjB,KAAK+5M,MAAMzhM,EAAU2/L,GAEzBA,EAAoBr1I,SAAStqD,KAEjC,cAAckJ,EAAOw4L,EAAat2J,EAAWC,GAEzC,IADA,IAAIs2J,EAAY,GACPz5M,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAI8X,EAAW,EACX,OAASqrC,GAAW,OAASD,IAI5B,IAAMA,EACHljD,GAAKmjD,IACLrrC,EAAW0hM,IAEP,IAAMr2J,EACVnjD,EAAIkjD,IACJprC,GAAY0hM,GAETt2J,EAAYC,EACfnjD,EAAIkjD,GAAaljD,EAAImjD,IACrBrrC,GAAY0hM,GAETt2J,EAAYC,GACfnjD,GAAKmjD,GAAWnjD,EAAIkjD,IACpBprC,EAAW0hM,GAGnBC,EAAUx6M,KAAK6Y,IApBX2hM,EAAUx6M,KAAK6Y,GAsBvB,OAAO2hM,GAEX,yBAAyBzpC,GACrB,IAAIomC,EAAiB52M,KAAK62M,uBACtB7tK,EAAOhpC,KAAK8uB,OAAO,wBAOvB,OANKka,IACDA,EAAOwnI,GAAyB,eAAeomC,GAAkB,eAAeA,GAAgB,IAAS,GAAK,eAAcA,GAAkB,eAAcA,GAAgB,IAAS,EAChL52M,KAAK8uB,OAAO,eACb9uB,KAAK8uB,OAAO,uBAAwBka,IAGrCA,GAEX,sBACI,IACI0a,UAAWA,EACXovJ,gBAAiBA,EACjBzrL,OAAQA,GACRrnB,KAAK8uB,SACT,OAAO,MAAQ40B,EAAY,KAAOA,EAAYovJ,EAAkBzrL,GAEpE,WAAW6yL,EAAav2J,EAAS01J,GAU7B,IATA,IAAI31J,EAAY1jD,KAAKu3M,sBACjB/mC,EAAwBxwK,KAAKm0M,yBAC7BiD,EAAmB5mC,EAAwB,MAAQ,OACnDwpC,EAAch6M,KAAKm6M,yBAAyB3pC,GAC5ChvJ,EAAQxhB,KAAK00M,YACb0F,EAAgBp6M,KAAKq6M,cAAc74L,EAAOw4L,EAAat2J,EAAWw2J,GAClED,EAAYj6M,KAAKq6M,cAAc74L,EAAOw4L,EAAat2J,EAAWC,GAC9D22J,EAAkBt6M,KAAK8uB,OAAO,aAC9Bne,EAAa3Q,KAAK8uB,OAAO,cACpBtuB,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAI8uF,EAAc9tE,EAAMhhB,GACpB8iI,EAAe82E,EAAc55M,GAC7B8X,EAAW2hM,EAAUz5M,GACrB,OAASmjD,GAAW,OAASD,EAC7BuuJ,GAAc3iH,IACPg0C,IAAiBhrH,GAAY+gM,GAAc/gM,IAClDy5E,GAAQzC,EAAa,OAAAniE,EAAA,MAAO,GAAImtL,EAAiB,CAC7Ch1L,GAAI,CACA,CAAC8xL,IAAoB5mC,GAAyB7/J,GAAc2H,EAAWA,QAM3F,uBAAuBta,EAAO6wB,GAC1B,IAAIykL,EAAiBzkL,GAAY7uB,KAAKu5M,gBACtCv5M,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrBxE,KAAKkzM,mBACNI,GAAkBA,EAAeh9K,YAAYt2B,KAAKg6F,iBAAiB,iBAAkBh8F,IAG7F,WACIgC,KAAK6qD,QACL7qD,KAAKk1B,YAET,cAAcggL,GACV,IAAIlnL,EAAOhuB,KAAKy3M,cAAcvC,GAE9B,OADAl1M,KAAK03M,WAAW,QAAhB13M,CAAyBguB,GAClBA,EAAK7T,QAEhB,iBAAiB+6L,GACb,IAAIG,EAAkBr1M,KAAKg0M,sBACvBhmL,EAAOhuB,KAAKy3M,cAAcvC,GAE9B,OADAG,EAAgBqC,WAAW,WAA3BrC,CAAuCrnL,GAChCA,EAAK7T,QAEhB,kBAAkB+6L,GACd,IAAIlnL,EAAOhuB,KAAKy3M,cAAcvC,GAE9B,OADAl1M,KAAK03M,WAAW,YAAhB13M,CAA6BguB,GACtBA,EAAKiV,SAAW,iBAAW/F,aAG1C,gBAAkBy0K,GAAUU,IACb,UC9wBA,MCDJ,GAAa,CACpBp5B,SAAU,gBAEHshC,GAAU,CACjBC,kBAAmB,yBACnBC,WAAY,YACZC,YAAa,kBACbC,sBAAuB,6BACvBjvL,SAAU,YCHVkvL,GAA2BpmL,GAAmB,CAAC/W,EAAWkI,KAC1D,IAAIkM,EAAa,eAAEpU,GACnB,GAAI,SAAWkI,EAAQiY,QAEnB,OADA/L,EAAWnF,SAAS6tL,GAAQC,mBACrB,eAAE,UAAU9tL,SAAS8H,EAAgB+lL,GAAQE,aAExD,QAAc56I,aAAahuC,IAGpBgpL,GAAyB,CAChCD,yBAA0BA,ICK1BE,GAAsB,CACtB,OACI96M,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAK+6M,uBAET,mBACI,IAAItqM,EAAczQ,KAAK8uB,OAAO,eAC9B,SAAUre,KAAgBA,EAAYqE,iBAAmBrE,EAAYkX,qBAAuBlX,EAAYwX,SAE5G,sBACI,IAAIxX,EAAczQ,KAAK8uB,OAAO,eAC1Bha,EAAkB9U,KAAKu2M,mBACvBvlL,EAAoBhxB,KAAKg/B,mBACzBg8K,EAAwBlmM,GAAmBrE,EAAYmY,cAC3D,OAASoI,QAAqB,IAAWA,GAA6BA,EAAkBqqB,iBAAiB,CACrGj9C,KAAM,OACNo0B,QAAS,OACTnb,cAAe,EACf/C,UAAW,SACXnI,YAAa,CAAC,CACVwH,KAAM,GAAWslK,SACjBj7K,MAAO,KAEXyV,SAAU8mM,GAAQG,YAClB5oM,MAAO,OACP2D,aAAczV,KAAKi7M,qBACnBppM,QAASmpM,IAEb,OAAShqL,QAAqB,IAAWA,GAA6BA,EAAkBoa,aAAa,YAAa,UAAW4vK,IAEjI,iBACI,IAAIvqM,EAAczQ,KAAK8uB,OAAO,eAC1Bha,EAAkB9U,KAAKu2M,mBACvBnoK,EAAWpuC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACrCojC,EAAwB5nC,KAAK+nI,uBAC7BmzE,EAAsBtzK,EAAwB,iBAAmB,YACjEuzK,EAAsBvzK,EAAwB,YAAc,iBAC5DwzK,EAA2Bx4I,IAC3B,IAAIvyC,EACJ,QAAUA,EAAKrwB,KAAKq7M,sBAAmB,IAAWhrL,GAAcA,EAAGxB,WAAW4C,IAAI,gBAAiBmxC,EAAS,OAAS,KAErHguC,EAAc,8FACdtsG,EAAStE,KAAK8uB,OAAO,mBAAqB,kBAAkBzD,OAAOulF,GAAe,qBAAqBvlF,OAAOulF,GAiElH,OAhEK97F,GAAmB9U,KAAKk7M,KAAyB9sK,EAASzvC,SAC3DqB,KAAKk7M,GAAuBl7M,KAAK8zB,iBAAiBsa,EAAU,GAAU,OAAAjhB,EAAA,MAAO,CACzE8D,UAAWjxB,KAAKixB,UAChBvT,gBAAiB,KACjBpZ,OAAQA,EACRujB,aAAclC,IACV,IACIsG,MAAOA,GACPtG,EACA21L,EAAiB,eAAEt7M,KAAKitB,WAAW5F,SACvC,MAAO,CACH9T,EAAG0Y,EAAM6pL,MAAQwF,EAAel4L,OAGxCm4L,wBAAyBtsL,IACrB,IAAIxe,EAAYsX,aAAhB,CAGA,IAAIyzL,EAAe,eAAEvsL,EAAE2oL,aACnB6D,EAAeD,EAAa5pL,SAAS,cAAc7d,KAAK/T,KAAKixB,UAAUqD,MAC3Et0B,KAAK07M,+BAA+BD,KAExC1zL,aAAc/nB,KAAK27M,2BACnBzzL,OAAQzX,EAAYmY,eAAiB,IAAIyC,OAAOkvL,GAAQG,aACxD1yL,iBAAkB,YACnBvX,EAAa,CACZ8X,YAAa0G,IACT,IAAIoB,EAAIub,EACR,QAAUvb,EAAKrwB,KAAKgwB,cAAc,6BAA0B,IAAWK,GAAcA,EAAGgtJ,oBACxF,IAAIh/I,EAAMpP,EAAEgC,UAAUqhC,iBAAiBrjC,EAAEy0B,WACzCz0B,EAAE8iB,SAAW1T,GAAOA,EAAItqB,KACxB,IAAIsrB,EAAYhB,GAAO,SAAWA,EAAIT,QACtC3O,EAAE9U,QAAUrF,IAAoBuqB,EAChC,QAAUuM,EAAKn7B,EAAY8X,mBAAgB,IAAWqjB,GAAcA,EAAGzS,KAAK1oB,EAAawe,IAE7F2sL,YAAa,KACTR,GAAyB,IAE7BS,YAAa,KACTT,GAAyB,IAE7B/yL,UAAW4G,IACP,IAAIoB,EACJ+qL,GAAyB,GACzB,QAAU/qL,EAAK5f,EAAY4X,iBAAc,IAAWgI,GAAcA,EAAG8I,KAAK1oB,EAAawe,IAE3F9G,MAAO8G,IACH,IAAIoB,EACJ+qL,GAAyB,GACzB,QAAU/qL,EAAK5f,EAAY0X,aAAU,IAAWkI,GAAcA,EAAG8I,KAAK1oB,EAAawe,IAEvFjH,iBAAkBvX,EAAYuX,iBAC9BhZ,gBAAiBigB,IACb,IAAI6sL,EAAmB97M,KAAKq7M,eACxBS,IACI,cAAgB7sL,EAAEtb,MAAQ,YAAcsb,EAAEtb,MAC1C3T,KAAKm7M,GAAqBrsL,OAAOG,EAAEtb,KAAMsb,EAAEjxB,YAK3DowC,EAAS9X,YAAY,0BAA2BsR,GAChDwG,EAAS9X,YAAYikL,GAAQI,sBAAuB7lM,IAAoBrE,EAAYmY,gBAEjFwlB,GAEX,YAAYnf,GACRjvB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WACtByqB,GAAK,WAAaA,EAAEgV,YAAchV,EAAE1e,oBAAsB,QAAcmwD,sBAAsB1gE,OAC9F,eAAY,KACRA,KAAK+7M,qBAIjB,kBACI,IAAI10L,EAASrnB,KAAKgoC,gBAAgB6pB,oBAClC,CAAC7xD,KAAKg8M,UAAWh8M,KAAKq7M,gBAAgBnkL,QAAQ09K,IAC1C,OAASA,QAAY,IAAWA,GAAoBA,EAAS9lL,OAAO,SAAUzH,GAC9E,OAASutL,QAAY,IAAWA,GAAoBA,EAASvtK,YAGrE,cACIrnC,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,WAC1BxE,KAAK+7M,mBAET,yBAAyBp2L,GACrB,IAAIs2L,EAAcj8M,KAAK8uB,SACnBpjB,EAAU1L,KAAKiyB,aACfmT,EAAc,eAAEplC,KAAK2sG,cAAchnF,EAAQkW,WAC/C,MAAO,CACH9vB,WAAY,CAAC,CACTysC,GAAI,EACJsyC,SAAU,IAEd75E,aAAa,EACbC,mBAAmB,EACnBN,UAAW,CACPuY,WAAW,EACXD,cAAe,SAEnB/Y,MAAO,CACH0B,SAAS,GAEbkkD,eAAgB,KAChBzqD,aAAc2wM,EAAY3wM,aAC1BF,gBAAiB6wM,EAAY7wM,gBAC7B+F,gBAAiB8qM,EAAY9qM,gBAC7BzF,QAASA,EAAQ7M,IAAImD,IAAU,CAC3B8P,MAAO9P,EAAO8P,OAAS9P,EAAOk8B,aAC9BhoB,MAAOlU,EAAOkU,MACdC,cAAenU,EAAOmU,iBAE1B1G,cAAewf,IACX,IAAIvD,EAAWuD,EAAEgC,UAAU4d,QAAQ,YACnC,eAAE5f,EAAE8M,YAAY0J,YAAYL,EAAY7V,GAAG7D,EAASq8G,uBAAyB,EAAI,GAAGr3F,YAIhG,+BAA+B+qK,GAC3B,IAAIh8I,EAAa,OAASg8I,QAAgB,IAAWA,OAAe,EAASA,EAAax7I,gBAC1F,OAASR,QAAc,IAAWA,GAAsBA,EAAW17B,SAAS,CACxExwB,EAAGvT,KAAK8jC,eAGhB,2BACI,OAAOne,IACH,IAAI84C,EAAez+D,KAAKixB,UAAUpC,WAC9BqtL,EAAqB,eAAE,SAC3B,eAASA,EAAoB,eAASz9I,IACtC,IAAIj9C,EAAQxhB,KAAKgoC,gBAAgBxmB,QAC7B6c,EAAM7c,GAASA,EAAMmE,EAAQ+9B,WAC7Bu4J,EAAcj8M,KAAKm8M,yBAAyB99K,GAGhD,OAFAr+B,KAAK8zB,iBAAiBooL,EAAoBl8M,KAAKixB,UAAUqD,KAAM2nL,GAC/DC,EAAmB3uL,KAAK,0BAA0BqE,SAAS,SAASvG,OAAOrrB,KAAKw0B,gBAAgB+lL,GAAQ7uL,UAAW,MAAM5Y,OAClHopM,IAGf,qBACI,OAAOrB,GAAuBD,yBAAyB1nK,GAAUlzC,KAAKw0B,gBAAgB0e,KAE1F,cAAcllB,GACN,gBAAkBA,EAAKra,OACvB3T,KAAK+6M,sBACL/6M,KAAK+nC,aAAY,GAAM,GACvB/Z,EAAKC,SAAU,GAEnBjuB,KAAKk1B,SAAS3wB,MAAMvE,KAAMwE,aAGvB43M,GAAoB,CAC3BlvK,eAAgB,KAAM,CAClBz8B,YAAa,CACTmY,eAAe,EACfZ,iBAAkB,WAClBlT,iBAAiB,EACjB6S,qBAAqB,KAG7B2R,UAAW,CACPN,MAAO,CACHtN,SAAUovL,MC3NtB,GAAS1oK,eAAe,cAAegqK,ICwBxB,UC3BA,iB,kCCTf,oPAyDIC,EAAoC,wBACpCC,EAA8B,2BAC9BC,EAA8B,2BAC9Br0G,EAAwB,qBACxBs0G,EAAgB,SAChBj8E,EAA0B,WAC1BC,EAAyB,UACzB9D,EAAwB,uBACxB+/E,EAAwB,iBACxBC,EAA4B,6BAC5BC,EAA0B,CAC1Br9M,KAAMtB,GAASA,GAASA,EAAMwD,cAC9BjC,MAAOvB,GAASA,GAASA,EAAMmC,WAAa,EAC5CX,IAAKxB,GAASA,GAASA,EAAMuD,UAC7BtB,QAASjC,GAASA,GAAS05C,KAAK05B,MAAMpzE,EAAMmC,WAAa,GAAK,EAC9DP,KAAM5B,GAASA,GAASA,EAAM2C,WAC9Bd,OAAQ7B,GAASA,GAASA,EAAM4C,aAChCd,OAAQ9B,GAASA,GAASA,EAAM0B,cAEhCk9M,EAAsB,WACtB,IAAI7oM,EAAOvP,UAAU,GACjBxG,EAAQgC,KAAKoV,mBAAmBrB,GACpC,IAAK,eAAU/V,GACX,OAAO,KAEX,GAAI6D,EAAW7B,KAAK8B,UAAW,CAC3B,IAAI+6M,EAAuBr4M,UAAU,GACrC,OAAOm4M,EAAwBE,GAAsB7+M,GAEzD,GAAI,WAAagC,KAAK8B,SAAU,CAC5B,IAAIM,EAAgBoC,UAAU,GAC9B,OAAOkzC,KAAK05B,MAAMrtE,OAAO/F,GAASoE,GAAiBA,IAGvD06M,EAAiB,SAASC,EAAWC,GACrC,OAAI,eAAWD,IAAc,eAAWC,IAChCD,EAAUx4J,kBAAoBy4J,EAAUz4J,iBACjCw4J,EAAUx4J,mBAAqBy4J,EAAUz4J,kBAAoBw4J,EAAU79K,cAAgB89K,EAAU99K,YAGzG69K,IAAcC,GAGzB,SAASn7M,EAAWC,GAChB,MAAO,SAAWA,GAAY,aAAeA,EAEjD,IAAI+9D,EAAe,SAAShuC,GACxBA,EAAW8B,IAAI,GAAGmsC,YAAc,KAEhC1hB,EAAuB,SAAS9lB,GAChCA,EAAOA,GAAQ,GAEf,IADA,IAAIp2B,EAAS,eAA4Bo2B,GAChC93B,EAAI,EAAGA,EAAI83B,EAAK35B,OAAQ6B,IACzB83B,GAAQA,EAAK93B,SAAM,IAAW83B,EAAK93B,GAAG+mC,aACtCrlC,EAAO1B,GAAG+mC,WAAajP,EAAK93B,GAAG+mC,YAE/BjP,GAAQA,EAAK93B,SAAM,IAAW83B,EAAK93B,GAAG4B,gBACtCF,EAAO1B,GAAG4B,cAAgBk2B,EAAK93B,GAAG4B,eAG1C,OAAOF,GAEPijE,EAAc,SAASnnE,EAAO2nB,GAC9B,IAAIywB,EAAY,OAAar4C,OAAOC,EAAO2nB,EAAQ5nB,SAAWC,GAASA,EAAMK,YAAc,GACvF4+M,EAAe,CACfj/M,MAAOA,EACPo4C,UAAWzwB,EAAQugI,iBAAmBvgI,EAAQugI,iBAAiB9vG,GAAaA,EAC5E1zC,OAAQijB,EAAQjjB,QAAU,MAC1BN,cAAeujB,EAAQvjB,eAE3B,OAAOujB,EAAQjQ,cAAgBiQ,EAAQjQ,cAAcyjB,KAAKxT,EAASs3L,GAAgBA,EAAa7mK,WAEhGo5I,EAAiB,SAAS/lK,EAAac,GACvC,IAAIpG,EAAgBsF,EAAYtF,eAAiBsF,EAAY6oK,eAAiB/nK,EAAa,GAAGc,OAAO5B,EAAYlF,YAAa,iBAAmBgG,EAAad,EAAYlF,aAC1K,OAAO4gD,EAAY17C,EAAYzrB,MAAO,CAClCD,OAAQ0rB,EAAYjF,YACpB0hI,iBAAkB9vG,GAAajyB,EAAgB,eAAOA,EAAeiyB,EAAW3sB,EAAY6oK,eAAiBl8I,EAC7G1gC,cAAe+T,EAAY/T,iBAG/BmmH,EAAoB,SAAShtG,GAC7B,IAAIquL,EAAaruL,EAAS9a,MAAQ8a,EAAS9a,OACvCopM,EAAeD,GAAcA,EAAWC,aACxCC,EAAaD,GAAgBA,EAAa,GAC9C,OAAOC,GAAcF,EAAWE,IAEhCp3J,EAAwB,SAASA,EAAsBq3J,EAASC,GAChE,GAAI7+M,MAAMC,QAAQ2+M,IAAY5+M,MAAMC,QAAQ4+M,GAAU,CAClD,GAAID,EAAQ1+M,SAAW2+M,EAAQ3+M,OAC3B,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAI68M,EAAQ1+M,OAAQ6B,IAChC,IAAKwlD,EAAsBq3J,EAAQ78M,GAAI88M,EAAQ98M,IAC3C,OAAO,EAGf,OAAO,EAEX,OAAI,eAAW68M,IAAYA,EAAQn+K,aAAe,GAAK,eAAWo+K,IAAYA,EAAQp+K,aAAe,EAC1Fm+K,EAAQn+K,cAAgBo+K,EAAQp+K,aAAe,eAAam+K,EAAQr6M,eAAiB,eAAas6M,EAAQt6M,cAAgB,eAAaq6M,EAAQ75M,2BAA6B,eAAa85M,EAAQ95M,yBAErM,eAAa65M,IAAY,eAAaC,IAGjD,SAASC,EAA6Bt1L,GAIlC,OAHKxpB,MAAMC,QAAQupB,KACfA,EAAQ,CAACA,IAENA,EAAMppB,IAAI,CAACksB,EAAMvqB,IAChB,eAASuqB,GACF,CACHpoB,SAAUooB,EACVwc,WAAY/mC,EAAIynB,EAAMtpB,OAAS,GAGhCosB,GAGA,QACX,iBAAiB8D,GAEb,GADAA,EAAWA,GAAY7uB,KAAKitB,UACvB4B,EAAL,CAGA,IAAI2uL,EAAcx9M,KAAKw0B,gBAAgBgoL,GACnCiB,EAAgB5uL,EAAStB,KAAK,IAAIlC,OAAOmyL,IAAcz6I,OACvD7sC,EAAYl2B,KAAKgoC,gBAAgBi9B,UACjC3Z,EAAYtrD,KAAKgoC,gBAAgBsjB,YAChCmyJ,EAAc9+M,SACf8+M,EAAgB,eAAE,UAAU/wL,SAAS8wL,IAEpCC,EAAcnrL,SAASsC,GAAG/F,IAC3B4uL,EAAcpnL,SAASxH,GAEvBqH,IAAco1B,EACdmyJ,EAActuL,YAAY,aAAarb,KAAK9T,KAAK09M,kBAEjDD,EAAc/wL,SAAS,eAG/B,gBAAgBmC,EAAUgD,EAAY+hC,GAClC,IAAIoU,EACJhoE,KAAKihE,YAAcjhE,KAAKihE,WAAWpyC,WAAWmU,SAC9CglC,EAAmBhoE,KAAK8uB,OAAO,aAC3Bk5C,IAAqB,SAAWA,EAAiB5vD,SAAWw7C,EAAeoU,EAAiB5vD,UAC5F4vD,EAAmB,eAAO,CACtB/oD,SAAS,EACT/L,QAAS80D,EAAiBl0D,KAC1B2J,UAAWoU,GACZm2C,GACHhoE,KAAKihE,WAAajhE,KAAK8zB,iBAAiB,eAAE,SAASuC,SAASxE,GAAa,OAAWm2C,IAEpFhoE,KAAKihE,WAAa,MAG1B,2BAA2BpyC,GACvB,IAAIogH,EAAU,eAAE,kBAChB,OAAI,eAAUpgH,GAAY,eAAUogH,GACzB,CACH7nH,GAAI6nH,EACJjoH,SAAU6H,EACV3H,UAAW,OAGZ,CACHE,GAAIyH,IAGZ,cAAck/B,EAAKvsC,EAAOgL,GACtB,IAAIvqB,GAAS,EACb,QAAI,IAAW8rD,GAAOtvD,MAAMC,QAAQ8iB,GAAQ,CACxCgL,EAAUhoB,UAAU7F,QAAU,EAAI,MAAQ6tB,EAC1C,IAAK,IAAIhsB,EAAI,EAAGA,EAAIghB,EAAM7iB,OAAQ6B,IAAK,CACnC,IAAIuqB,EAAO,eAAUyB,GAAWhL,EAAMhhB,GAAGgsB,GAAWhL,EAAMhhB,GAC1D,GAAI,eAAautD,EAAKhjC,GAAO,CACzB9oB,EAAQzB,EACR,QAIZ,OAAOyB,GAEX,eAAe6+I,EAASxN,GACpB,IAAIjjH,EACA25D,EAAe,GACnBspD,EAAYA,GAAa,MACzB,IAAK,IAAI9yI,EAAI,EAAGA,EAAIsgJ,EAAQniJ,OAAQ6B,IAChC,GAAKsgJ,EAAQtgJ,GAAb,CAGA,GAAI,KAAO,QAAU6vB,EAAKywH,EAAQtgJ,UAAO,IAAW6vB,OAAK,EAASA,EAAG1xB,SAAW,MAAQmiJ,EAAQtgJ,GAAG,GAAI,CACnG,GAAI,QAAU8yI,EACV,MAAO,CAAC,KAEZ,GAAI,OAASA,EACT,SAGJtpD,EAAarrF,QACbqrF,EAAavqF,KAAK6zI,GAEtBtpD,EAAavqF,KAAKqhJ,EAAQtgJ,IAK9B,GAHI,IAAMwpF,EAAarrF,SACnBqrF,EAAeA,EAAa,IAE5BA,EAAarrF,OACb,OAAOqrF,GAIf,aAAapvE,EAAS+iM,GAElB,IADA,IAAIC,EAA8B,EACzBp9M,EAAI,EAAGA,EAAIm9M,EAAYh/M,OAAQ6B,IAChCoa,EAAQ+iM,EAAYn9M,KACpBo9M,IAGR,OAAOhjM,EAAQjc,QAAUic,EAAQjc,SAAWi/M,GAEhD53J,sBAAuBA,EACvB,YAAY9zC,EAAU0lB,EAAYimL,GACzB3rM,EAAS0lB,KACV1lB,EAAS0lB,GAAc,WACnB,IAAI7rB,EAAa/L,KAAK4+C,YACtB,OAAO7yC,EAAaA,EAAW6rB,GAAYrzB,MAAMwH,EAAYvH,WAAaq5M,KAItF14I,YAAaA,EACb03E,yBAA0B,CAAC76I,EAAQU,KAAW,CAC1C3E,OAAQiE,EAAOjE,OACfmoJ,iBAAkBlkJ,EAAOkkJ,iBACzBxwI,cAAe1T,EAAO0T,cACtBhT,OAAQA,EACRyU,SAAUnV,EAAOmV,SACjBrB,UAAW9T,EAAO8T,YAEtB,gBAAgB9T,EAAQhE,EAAO+V,EAAM6pB,GACjC,OAAI57B,EAAO2iD,sBAAmB,IAAW3iD,EAAO2iD,gBAAgB3mD,GACrDgE,EAAO2iD,gBAAgB3mD,GAE9BgE,EAAOc,uBAAyBiR,GAAQ,UAAY6pB,EAC7C57B,EAAOc,sBAAsBiR,IAEpC/R,EAAOqC,QAAY,UAAYu5B,IAAY57B,EAAOsT,qBAAuBtT,EAAOc,uBAG7E9E,EAFIgE,EAAOqC,OAAO+Q,mBAAmBpX,IAIhD,uBAAuBkiE,EAAc31C,GAEjC,IADA,IAAIroB,EAAS,IACJ1B,EAAI,EAAGA,EAAI0/D,EAAavhE,OAAQ6B,IAAK,CAC1C,IAAIipB,EAAcy2C,EAAa1/D,GAC/B0B,IAAW1B,EAAI,EAAI,KAAO,IAAMgvL,EAAe/lK,EAAac,GAEhE,OAAOroB,EAAS,KAEpBstL,eAAgBA,EAChBpxI,qBAAsBA,EACtB,oBAAoBt8C,GAChB,OAAQA,GACJ,IAAK,OACD,MAAO,YACX,IAAK,WACD,MAAO,qBACX,QACI,SAGZ,+BAA+BE,EAAQukJ,GACnC,IAAIrkJ,EAAS,GACTU,EAAYZ,EAAOY,WAAaZ,EAAO2R,KACvCvR,EAAgB,OAAgBL,iBAAiBC,GACrD,OAAII,GACA,eAAKA,EAAe,CAACH,EAAOK,KACxBJ,EAAOzC,KAAK8mJ,EAAiB,CACzB5jJ,SAAUC,EACVR,cAAeE,EACfilC,WAAYtlC,EAAQG,EAAczD,OAAS,GAC3Ci+M,EAAoB1oL,KAAKlyB,EAAQM,MAElCJ,IAEPqkJ,EACArkJ,EAAS,CAAC,CACNS,SAAUC,EACV2kC,YAAY,KAGhBrlC,EAAS,SAAS6R,GACd,IAAI7R,EAASF,EAAOoT,mBAAmBrB,GAIvC,YAHI,IAAW7R,GAAU,KAAOA,IAC5BA,EAAS,MAENA,GAEPF,EAAOiV,gBACP/U,EAAS,CAAC,CACNS,SAAUT,EACViiD,QAASniD,EAAOiV,cAAcid,KAAKlyB,OAIxCE,IAEX,oBAAoB47M,EAAiBC,EAAiBC,GAGlD,GAFAF,EAAkB1/J,EAAqB0/J,GACvCC,EAAkB3/J,EAAqB2/J,GACnCt/M,MAAMC,QAAQo/M,IAAoBr/M,MAAMC,QAAQq/M,GAAkB,CAClE,GAAID,EAAgBn/M,SAAWo/M,EAAgBp/M,OAC3C,OAAO,EAEX,IAAK,IAAI6B,EAAI,EAAGA,EAAIs9M,EAAgBn/M,OAAQ6B,IACxC,IAAKs8M,EAAegB,EAAgBt9M,GAAGmC,SAAUo7M,EAAgBv9M,GAAGmC,WAAam7M,EAAgBt9M,GAAG0jD,OAAS65J,EAAgBv9M,GAAG0jD,MAAQ45J,EAAgBt9M,GAAG4B,gBAAkB27M,EAAgBv9M,GAAG4B,gBAAkB47M,GAAoBlzM,QAAQgzM,EAAgBt9M,GAAG+mC,cAAgBz8B,QAAQizM,EAAgBv9M,GAAG+mC,YACxS,OAAO,EAGf,OAAO,EAEX,QAASu2K,IAAoBA,EAAgBn/M,YAAco/M,IAAoBA,EAAgBp/M,SAEnG,mBAAmB6iB,EAAOy8L,EAAc/J,EAAYn5E,GAQhD,IAPA,IAEIhwG,EACA1D,EAGA1W,EANA2gK,EAAc9vJ,EAAM7iB,OACpBu/M,GAAiB,EAGjBh/K,EAAc67F,GAAoB,EAClC74H,EAAS,GAEJ1B,EAAI,EAAGA,GAAK8wK,EAAa9wK,IAAK,CAC/BA,EAAI8wK,IACJvmJ,EAAOvJ,EAAM+N,GAAG/uB,GAChB6mB,EAAS0D,EAAK1D,SACd1W,EAAa,QAAUoa,EAAK0G,IAAI,cAEpC,IAAI4/I,EAAQ,CACRpvK,MAAOi9B,EACP3rB,EAAG8T,EAASA,EAAOjE,OAAS8wL,GAAcvjM,EAAanQ,IAAM8wK,EAAc,eAAgBvmJ,EAAK,IAAIjZ,MAAQ,GAAK,EACjH0B,EAAG6T,EAASA,EAAO9D,KAAO2wL,GAAc1zM,IAAM8wK,EAAc,eAAgBvmJ,EAAK,IAAI9d,OAAS,GAAK,EACnGiyB,YAAaA,GAEjB,IAAKg1K,GAAc1zM,EAAI,EAAG,CACtB,IAAI29M,EAAiB38L,EAAM+N,GAAG/uB,EAAI,GAAG6mB,SACjC82L,EAAe56L,IAAM8tJ,EAAM79J,IAC3B69J,EAAM79J,EAAI2qM,EAAe56L,KAG7B06L,IACAC,EAAiBD,EAAa5sC,IAE7B6sC,GACDh8M,EAAOzC,KAAK4xK,GAEhBnyI,IAEJ,OAAOh9B,GAEXkpG,sBAAuB,KAAM,CACzBlpE,gCAAgC,EAChC,OAAOzkB,EAAWkI,GACd,IAAIkM,EAAa,eAAEpU,GACnB,IAAI,eAAUkI,EAAQ3nB,QAAY2nB,EAAQ5R,MAAQ4R,EAAQ5R,KAAKm9C,gBAAoBvrC,EAAQ0Y,IAAIuiC,SAM3Ff,EAAahuC,OANwF,CACrG,IAAInG,EAAW/F,EAAQsL,UAAU4d,QAAQ,YACzChd,EAAWnF,SAASw7E,GAAuBx7E,SAAS2vL,GACpD,eAAE,SAAS3vL,SAAS/G,EAAQ3nB,MAAQs+M,EAA8BC,GAA6BlmL,SAASxE,GACxGnG,EAAS8F,QAAQ,QAAS7L,EAAQ3nB,MAAQ0tB,EAAS2/F,SAAS,2BAA6B3/F,EAAS2/F,SAAS,yBAA0Bx5F,OAMjJguC,aAAcA,EACdh+D,WAAYA,EACZ,kBAAkBgrE,GACd,IACI,GAAIA,EACA,MAAO,CACHy4C,eAAgBz4C,EAAey4C,eAC/B84F,aAAcvxI,EAAeuxI,cAGvC,MAAOnvL,IACT,MAAO,IAEX,kBAAkB49C,EAAgBC,GAC9B,IACQD,GAAkBA,EAAeE,mBACjCF,EAAeE,kBAAkBD,EAAew4C,eAAgBx4C,EAAesxI,cAErF,MAAOnvL,MAEb,sBAAsBgC,EAAWpC,GAC7B,IAAIwvL,EAAYxvL,EAAS+F,GAAG,UAC5B,OAAapF,QAAQX,EAAU,SAC/B,IAAIyvL,EAA6BrtL,EAAUnC,OAAO,iCAC9C7B,EAAU4B,EAAS8E,IAAI,GAC3B,IAAK0qL,GAAaC,GAA8BzvL,EAAS+F,GAAG,0BAA4B/F,EAAS+F,GAAG,cAAe,CAC/G,IAAI6/F,EAASoH,EAAkBhtG,EAAS6F,QAAQ,mBAChD,eAAK+/F,GAAUA,EAAO8pF,mBAAmB/nL,KAAK,KAC1CvJ,EAAQkwD,aAIpB0+C,kBAAmBA,EACnB,4BAA4BnwH,EAASwjE,GACjC,IACIyB,EADA6tI,EAAsB9yM,EAAQiuC,KAAK33C,GAAUA,IAAWA,EAAOwwB,UAAYxwB,EAAOkU,QAAS,IAAUlU,EAAO+S,eAEhH,IAAK47D,EAAkBjlE,EAAQ/M,OAAS,EAAG+M,EAAQilE,GAAkBA,IAAmB,CACpF,IAAI3uE,EAAS0J,EAAQilE,GACjB7+D,EAAQo9D,GAAgBA,EAAayB,GACrC57D,GAAiBypM,IAAuB,IAAUx8M,EAAO+S,cAC7D,IAAK/S,EAAOwwB,UAAYxwB,EAAOkU,OAAS,mBAAqBpE,GAASiD,EAClE,MAGR,OAAO47D,GAEX,uBAAuB4uD,EAAY1wG,GAC/B,GAAIA,GAAYA,EAASlwB,OAAQ,CAC7B,IAAI8/M,EAAQ5vL,EAAS6F,QAAQ,IAAIrJ,OAAOk0G,EAAW5qG,4BAA4BrC,SAC/E,OAAOmsL,EAAM7pL,GAAG2qG,EAAWtuG,UAAUpC,YAEzC,OAAO,GAEX,sBAAsBgE,GAClB,IAAI9J,EAAmB8J,EAAK/D,OAAO4tL,GAC/BriJ,EAAgBxnC,EAAK/D,OAAO2tL,KAA2Bj8E,EACvDpC,EAAevrG,EAAK/D,OAAO2tL,KAA2Bl8E,EAC1D,SAAI,IAAU1tG,EAAK/D,OAAO4tG,KAA2BriE,IAAiB+jE,IAG/Dr1G,IAAqBy3G,GAEhCk+E,cAAe7yK,GAAUA,EAAOy5B,kBAAoB,EACpD,sBAAsB7mC,GAClB,OAAIA,EAAQG,QACD,IAEJ,KAAO5+B,KAAK0+M,cAAc,mBAErC,0BAA0Br6M,GACtB,IAAIs6M,EASJ,OARIt6M,EAAOmd,MACPm9L,EAA0Bt6M,EAAOmd,OAEjCm9L,EAA0Bt6M,EAAO0H,WAC7B,eAAW4yM,KAA6B,OAAgBhoK,UAAUgoK,KAClEA,EAA0BA,EAAwB,MAGnD,eAA2BA,IAEtC,2BAA2B38M,EAAQ+J,EAAYzH,GAC3C,IAAKyH,EACD,MAAO,GAEX,IAAI4yM,EAA0B3+M,KAAKymJ,0BAA0BzkJ,EAAOqC,QACpE,GAAIrC,EAAOoT,qBAAuBpT,EAAOo+C,0BACrC,OAAOu+J,EAEX,IAEIC,EACAC,EACAC,EAJAC,EAAiBhzM,EAAWsE,mBAAmBoX,YAC/Cu3L,EAAwBh9M,EAAOa,cAAgB,eAASb,EAAOa,cAI/Do8M,EAAa,CAACz9L,EAAOmzC,KACrB,IAAItkC,EACAhL,EAAQ,QAAUgL,EAAKskC,EAAY2B,YAAS,IAAWjmC,EAAKA,EAAK,EACjEiwG,EAAM3rE,EAAY4B,KAAOlxC,EAAQsvC,EAAY4B,KAAO/0C,EAAM7iB,OAC9D,OAAO6iB,EAAMhf,MAAM6iB,EAAOi7G,IAE1B6e,EAAmB,eAAS,eAAS,GAAIw/D,GAA0B,CACnEh+D,uBAAwBr8I,EACxB2jD,KAAM0M,IACF,IAAID,EAAI,IAAI,OAiCZ,MAhCA,CAACC,IACG,IAAI1sC,EAAQs1L,EAA6ByB,EAAwB,CAACh9M,EAAOY,UAAWZ,EAAOa,cAAgBb,EAAOY,WAC9G8xD,EAAI,IAAI,OACRwqJ,EAAcN,KAA+BG,GAAkBpqJ,EAAY2B,OAASwoJ,GAAgBnqJ,EAAY4B,OAASsoJ,GAgB7H,OAfIK,EACAxqJ,EAAEx3B,QAAQ+hL,EAAWL,EAA2BjqJ,KAEhDmqJ,EAAenqJ,EAAY2B,KAC3BuoJ,EAAelqJ,EAAY4B,KAC3BxqD,EAAWk8C,KAAK,CACZ3jD,OAAQA,EACR2jB,MAAOA,EACPsuC,KAAMwoJ,EAAiBpqJ,EAAY4B,UAAO,EAC1CD,KAAMyoJ,EAAiBpqJ,EAAY2B,UAAO,IAC3C9/B,KAAKhV,IACJo9L,EAA4Bp9L,EAC5BkzC,EAAEx3B,QAAQ6hL,EAAiBv9L,EAAQy9L,EAAWz9L,EAAOmzC,MACtD1rB,KAAKyrB,EAAEzrB,OAEPyrB,GAnBX,CAoBGC,GAAan+B,KAAKhV,IACjB,GAAI,IAAMA,EAAM7iB,OAAhB,CAIA,IAAI2F,EAAStE,KAAK8rD,eAAetqC,EAAM29L,QAAQprM,GAAQA,EAAKg6C,KAAKlvD,IAAIkvD,GAAO,CAAC/rD,EAAOqC,OAAOsV,UAAWo0C,IAAO,MACzGqxJ,EAAgB,IAAI,OAAW,eAAS,eAAS,eAAS,GAAIT,GAA0BhqJ,GAAc,CACtGrwD,OAAQtE,KAAK8rD,eAAe,CAACxnD,EAAQqwD,EAAYrwD,QAAS,OAC1D0jD,UAAU,KAEdo3J,EAAcn3J,OAAOzxB,KAAKk+B,EAAEx3B,SAAS+L,KAAKyrB,EAAEzrB,WARxCyrB,EAAEx3B,QAAQ,MASf+L,KAAKyrB,EAAEzrB,MACHyrB,GAEX3G,IAAK/rD,EAAOqC,OAAOsV,UACnB,MAAMo0C,GACF,IAAI2G,EAAI,iBAMR,OALA10D,KAAKioD,KAAK,CACN3jD,OAAQ,CAACtC,EAAOqC,OAAOsV,UAAW,IAAKo0C,KACxCv3B,KAAK83H,IACJ55F,EAAEx3B,QAAQoxH,EAAI,MAEX55F,EAAEzxB,aAGjB,OAAOk8G,GAEX,uCAAuCluH,GACnC,IAAIouL,EAAapuL,EAAUquL,4BAA4BprL,KAAKjD,GACxD,eAAUA,EAAUnC,OAAO,8BAC3BuwL,EAAW,2BAA4B,CACnCxoI,MAAO,OACPC,MAAO,gCAGX,eAAU7lD,EAAUnC,OAAO,gCAC3BuwL,EAAW,6BAA8B,CACrCxoI,MAAO,OACPC,MAAO,gCAGf,IAAIyoI,EAAe,gBAAkBtuL,EAAUqD,KAAO,oBAAsB,UACxE5oB,EAAUulB,EAAUnC,OAAOywL,GAC/B,GAAK9gN,MAAMC,QAAQgN,GAAnB,CAGA,IAAI8zM,EAAqC9zM,IACrCA,EAAQwrB,QAAQl1B,IACZ,IAAIquB,EACAhuB,EAAeL,EAAOK,cAAgB,GACtC,eAAUA,EAAa2S,cACvBqqM,EAAW,GAAGh0L,OAAOk0L,EAAc,+BAAgC,CAC/D1oI,MAAO,OACPC,MAAO,GAAGzrD,OAAOk0L,EAAc,oCAGnC,eAAUl9M,EAAaiX,aACvB+lM,EAAW,GAAGh0L,OAAOk0L,EAAc,8BAA+B,CAC9D1oI,MAAO,OACPC,MAAO,GAAGzrD,OAAOk0L,EAAc,kCAGnC,QAAUlvL,EAAKruB,EAAO0J,eAAY,IAAW2kB,OAAK,EAASA,EAAG1xB,SAC9D6gN,EAAmCx9M,EAAO0J,YAItD8zM,EAAmC9zM","file":"js/chunk-2214991d.6777280d.js","sourcesContent":["/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = dateIntervals.indexOf(interval);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport default (function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && isDefined(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/*!\n * devextreme-vue\n * Version: 23.1.6\n * Build date: Fri Oct 13 2023\n *\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\n *\n * This software may be modified and distributed under the terms\n * of the MIT license. See the LICENSE file in the root of the project for details.\n *\n * https://github.com/DevExpress/devextreme-vue\n */\n\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DxHide = exports.DxHeaderFilter = exports.DxGroupPanel = exports.DxGroupOperationDescriptions = exports.DxGroupItem = exports.DxGroupingTexts = exports.DxGrouping = exports.DxFrom = exports.DxFormItem = exports.DxFormat = exports.DxForm = exports.DxFilterRow = exports.DxFilterPanelTexts = exports.DxFilterPanel = exports.DxFilterOperationDescriptions = exports.DxFilterBuilderPopup = exports.DxFilterBuilder = exports.DxFieldLookup = exports.DxField = exports.DxExportTexts = exports.DxExport = exports.DxEmailRule = exports.DxEditingTexts = exports.DxEditing = exports.DxDataGridSelection = exports.DxDataGridHeaderFilterTexts = exports.DxDataGridHeaderFilterSearch = exports.DxDataGridHeaderFilter = exports.DxCustomRule = exports.DxCustomOperation = exports.DxCursorOffset = exports.DxCompareRule = exports.DxColumnLookup = exports.DxColumnHeaderFilterSearch = exports.DxColumnHeaderFilter = exports.DxColumnFixingTexts = exports.DxColumnFixing = exports.DxColumnChooserSelection = exports.DxColumnChooserSearch = exports.DxColumnChooser = exports.DxColumn = exports.DxCollision = exports.DxColCountByScreen = exports.DxChange = exports.DxButton = exports.DxBoundaryOffset = exports.DxAt = exports.DxAsyncRule = exports.DxAnimation = exports.DxDataGrid = void 0;\nexports.DxValueFormat = exports.DxValidationRule = exports.DxTotalItem = exports.DxToolbarItem = exports.DxToolbar = exports.DxTo = exports.DxTexts = exports.DxSummaryTexts = exports.DxSummary = exports.DxStringLengthRule = exports.DxStateStoring = exports.DxSorting = exports.DxSortByGroupSummaryInfo = exports.DxShow = exports.DxSelection = exports.DxSearchPanel = exports.DxSearch = exports.DxScrolling = exports.DxRowDragging = exports.DxRequiredRule = exports.DxRemoteOperations = exports.DxRangeRule = exports.DxPosition = exports.DxPopup = exports.DxPatternRule = exports.DxPaging = exports.DxPager = exports.DxOperationDescriptions = exports.DxOffset = exports.DxNumericRule = exports.DxMy = exports.DxMasterDetail = exports.DxLookup = exports.DxLoadPanel = exports.DxLabel = exports.DxKeyboardNavigation = exports.DxItem = void 0;\nvar data_grid_1 = __importDefault(require(\"devextreme/ui/data_grid\"));\nvar index_1 = require(\"./core/index\");\nvar index_2 = require(\"./core/index\");\nvar DxDataGrid = (0, index_1.createComponent)({\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowColumnReordering: Boolean,\n allowColumnResizing: Boolean,\n autoNavigateToFocusedRow: Boolean,\n cacheEnabled: Boolean,\n cellHintEnabled: Boolean,\n columnAutoWidth: Boolean,\n columnChooser: Object,\n columnFixing: Object,\n columnHidingEnabled: Boolean,\n columnMinWidth: Number,\n columnResizingMode: String,\n columns: Array,\n columnWidth: [Number, String],\n customizeColumns: Function,\n dataRowTemplate: {},\n dataSource: {},\n dateSerializationFormat: String,\n disabled: Boolean,\n editing: Object,\n elementAttr: Object,\n errorRowEnabled: Boolean,\n export: Object,\n filterBuilder: Object,\n filterBuilderPopup: Object,\n filterPanel: Object,\n filterRow: Object,\n filterSyncEnabled: [Boolean, String],\n filterValue: [Array, Function, String],\n focusedColumnIndex: Number,\n focusedRowEnabled: Boolean,\n focusedRowIndex: Number,\n focusedRowKey: {},\n grouping: Object,\n groupPanel: Object,\n headerFilter: Object,\n height: [Function, Number, String],\n highlightChanges: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n keyboardNavigation: Object,\n keyExpr: [Array, String],\n loadPanel: Object,\n masterDetail: Object,\n noDataText: String,\n onAdaptiveDetailRowPreparing: Function,\n onCellClick: Function,\n onCellDblClick: Function,\n onCellHoverChanged: Function,\n onCellPrepared: Function,\n onContentReady: Function,\n onContextMenuPreparing: Function,\n onDataErrorOccurred: Function,\n onDisposing: Function,\n onEditCanceled: Function,\n onEditCanceling: Function,\n onEditingStart: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onExporting: Function,\n onFocusedCellChanged: Function,\n onFocusedCellChanging: Function,\n onFocusedRowChanged: Function,\n onFocusedRowChanging: Function,\n onInitialized: Function,\n onInitNewRow: Function,\n onKeyDown: Function,\n onOptionChanged: Function,\n onRowClick: Function,\n onRowCollapsed: Function,\n onRowCollapsing: Function,\n onRowDblClick: Function,\n onRowExpanded: Function,\n onRowExpanding: Function,\n onRowInserted: Function,\n onRowInserting: Function,\n onRowPrepared: Function,\n onRowRemoved: Function,\n onRowRemoving: Function,\n onRowUpdated: Function,\n onRowUpdating: Function,\n onRowValidating: Function,\n onSaved: Function,\n onSaving: Function,\n onSelectionChanged: Function,\n onToolbarPreparing: Function,\n pager: Object,\n paging: Object,\n remoteOperations: [Boolean, Object, String],\n renderAsync: Boolean,\n repaintChangesOnly: Boolean,\n rowAlternationEnabled: Boolean,\n rowDragging: Object,\n rowTemplate: {},\n rtlEnabled: Boolean,\n scrolling: Object,\n searchPanel: Object,\n selectedRowKeys: Array,\n selection: Object,\n selectionFilter: [Array, Function, String],\n showBorders: Boolean,\n showColumnHeaders: Boolean,\n showColumnLines: Boolean,\n showRowLines: Boolean,\n sortByGroupSummaryInfo: Array,\n sorting: Object,\n stateStoring: Object,\n summary: Object,\n syncLookupFilterValues: Boolean,\n tabIndex: Number,\n toolbar: Object,\n twoWayBindingEnabled: Boolean,\n visible: Boolean,\n width: [Function, Number, String],\n wordWrapEnabled: Boolean\n },\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowColumnReordering\": null,\n \"update:allowColumnResizing\": null,\n \"update:autoNavigateToFocusedRow\": null,\n \"update:cacheEnabled\": null,\n \"update:cellHintEnabled\": null,\n \"update:columnAutoWidth\": null,\n \"update:columnChooser\": null,\n \"update:columnFixing\": null,\n \"update:columnHidingEnabled\": null,\n \"update:columnMinWidth\": null,\n \"update:columnResizingMode\": null,\n \"update:columns\": null,\n \"update:columnWidth\": null,\n \"update:customizeColumns\": null,\n \"update:dataRowTemplate\": null,\n \"update:dataSource\": null,\n \"update:dateSerializationFormat\": null,\n \"update:disabled\": null,\n \"update:editing\": null,\n \"update:elementAttr\": null,\n \"update:errorRowEnabled\": null,\n \"update:export\": null,\n \"update:filterBuilder\": null,\n \"update:filterBuilderPopup\": null,\n \"update:filterPanel\": null,\n \"update:filterRow\": null,\n \"update:filterSyncEnabled\": null,\n \"update:filterValue\": null,\n \"update:focusedColumnIndex\": null,\n \"update:focusedRowEnabled\": null,\n \"update:focusedRowIndex\": null,\n \"update:focusedRowKey\": null,\n \"update:grouping\": null,\n \"update:groupPanel\": null,\n \"update:headerFilter\": null,\n \"update:height\": null,\n \"update:highlightChanges\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:keyboardNavigation\": null,\n \"update:keyExpr\": null,\n \"update:loadPanel\": null,\n \"update:masterDetail\": null,\n \"update:noDataText\": null,\n \"update:onAdaptiveDetailRowPreparing\": null,\n \"update:onCellClick\": null,\n \"update:onCellDblClick\": null,\n \"update:onCellHoverChanged\": null,\n \"update:onCellPrepared\": null,\n \"update:onContentReady\": null,\n \"update:onContextMenuPreparing\": null,\n \"update:onDataErrorOccurred\": null,\n \"update:onDisposing\": null,\n \"update:onEditCanceled\": null,\n \"update:onEditCanceling\": null,\n \"update:onEditingStart\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onExporting\": null,\n \"update:onFocusedCellChanged\": null,\n \"update:onFocusedCellChanging\": null,\n \"update:onFocusedRowChanged\": null,\n \"update:onFocusedRowChanging\": null,\n \"update:onInitialized\": null,\n \"update:onInitNewRow\": null,\n \"update:onKeyDown\": null,\n \"update:onOptionChanged\": null,\n \"update:onRowClick\": null,\n \"update:onRowCollapsed\": null,\n \"update:onRowCollapsing\": null,\n \"update:onRowDblClick\": null,\n \"update:onRowExpanded\": null,\n \"update:onRowExpanding\": null,\n \"update:onRowInserted\": null,\n \"update:onRowInserting\": null,\n \"update:onRowPrepared\": null,\n \"update:onRowRemoved\": null,\n \"update:onRowRemoving\": null,\n \"update:onRowUpdated\": null,\n \"update:onRowUpdating\": null,\n \"update:onRowValidating\": null,\n \"update:onSaved\": null,\n \"update:onSaving\": null,\n \"update:onSelectionChanged\": null,\n \"update:onToolbarPreparing\": null,\n \"update:pager\": null,\n \"update:paging\": null,\n \"update:remoteOperations\": null,\n \"update:renderAsync\": null,\n \"update:repaintChangesOnly\": null,\n \"update:rowAlternationEnabled\": null,\n \"update:rowDragging\": null,\n \"update:rowTemplate\": null,\n \"update:rtlEnabled\": null,\n \"update:scrolling\": null,\n \"update:searchPanel\": null,\n \"update:selectedRowKeys\": null,\n \"update:selection\": null,\n \"update:selectionFilter\": null,\n \"update:showBorders\": null,\n \"update:showColumnHeaders\": null,\n \"update:showColumnLines\": null,\n \"update:showRowLines\": null,\n \"update:sortByGroupSummaryInfo\": null,\n \"update:sorting\": null,\n \"update:stateStoring\": null,\n \"update:summary\": null,\n \"update:syncLookupFilterValues\": null,\n \"update:tabIndex\": null,\n \"update:toolbar\": null,\n \"update:twoWayBindingEnabled\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wordWrapEnabled\": null,\n },\n computed: {\n instance: function () {\n return this.$_instance;\n }\n },\n beforeCreate: function () {\n this.$_WidgetClass = data_grid_1.default;\n this.$_hasAsyncTemplate = false;\n this.$_expectedChildren = {\n column: { isCollectionItem: true, optionName: \"columns\" },\n columnChooser: { isCollectionItem: false, optionName: \"columnChooser\" },\n columnFixing: { isCollectionItem: false, optionName: \"columnFixing\" },\n dataGridHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n dataGridSelection: { isCollectionItem: false, optionName: \"selection\" },\n editing: { isCollectionItem: false, optionName: \"editing\" },\n export: { isCollectionItem: false, optionName: \"export\" },\n filterBuilder: { isCollectionItem: false, optionName: \"filterBuilder\" },\n filterBuilderPopup: { isCollectionItem: false, optionName: \"filterBuilderPopup\" },\n filterPanel: { isCollectionItem: false, optionName: \"filterPanel\" },\n filterRow: { isCollectionItem: false, optionName: \"filterRow\" },\n grouping: { isCollectionItem: false, optionName: \"grouping\" },\n groupPanel: { isCollectionItem: false, optionName: \"groupPanel\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n keyboardNavigation: { isCollectionItem: false, optionName: \"keyboardNavigation\" },\n loadPanel: { isCollectionItem: false, optionName: \"loadPanel\" },\n masterDetail: { isCollectionItem: false, optionName: \"masterDetail\" },\n pager: { isCollectionItem: false, optionName: \"pager\" },\n paging: { isCollectionItem: false, optionName: \"paging\" },\n remoteOperations: { isCollectionItem: false, optionName: \"remoteOperations\" },\n rowDragging: { isCollectionItem: false, optionName: \"rowDragging\" },\n scrolling: { isCollectionItem: false, optionName: \"scrolling\" },\n searchPanel: { isCollectionItem: false, optionName: \"searchPanel\" },\n selection: { isCollectionItem: false, optionName: \"selection\" },\n sortByGroupSummaryInfo: { isCollectionItem: true, optionName: \"sortByGroupSummaryInfo\" },\n sorting: { isCollectionItem: false, optionName: \"sorting\" },\n stateStoring: { isCollectionItem: false, optionName: \"stateStoring\" },\n summary: { isCollectionItem: false, optionName: \"summary\" },\n toolbar: { isCollectionItem: false, optionName: \"toolbar\" }\n };\n }\n});\nexports.DxDataGrid = DxDataGrid;\nvar DxAnimation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:hide\": null,\n \"update:show\": null,\n },\n props: {\n hide: [Object, Number, String],\n show: [Object, Number, String]\n }\n});\nexports.DxAnimation = DxAnimation;\nDxAnimation.$_optionName = \"animation\";\nDxAnimation.$_expectedChildren = {\n hide: { isCollectionItem: false, optionName: \"hide\" },\n show: { isCollectionItem: false, optionName: \"show\" }\n};\nvar DxAsyncRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxAsyncRule = DxAsyncRule;\nDxAsyncRule.$_optionName = \"validationRules\";\nDxAsyncRule.$_isCollectionItem = true;\nDxAsyncRule.$_predefinedProps = {\n type: \"async\"\n};\nvar DxAt = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxAt = DxAt;\nDxAt.$_optionName = \"at\";\nvar DxBoundaryOffset = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxBoundaryOffset = DxBoundaryOffset;\nDxBoundaryOffset.$_optionName = \"boundaryOffset\";\nvar DxButton = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:hint\": null,\n \"update:icon\": null,\n \"update:name\": null,\n \"update:onClick\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n cssClass: String,\n disabled: [Boolean, Function],\n hint: String,\n icon: String,\n name: String,\n onClick: Function,\n template: {},\n text: String,\n visible: [Boolean, Function]\n }\n});\nexports.DxButton = DxButton;\nDxButton.$_optionName = \"buttons\";\nDxButton.$_isCollectionItem = true;\nvar DxChange = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:data\": null,\n \"update:insertAfterKey\": null,\n \"update:insertBeforeKey\": null,\n \"update:type\": null,\n },\n props: {\n data: {},\n insertAfterKey: {},\n insertBeforeKey: {},\n type: String\n }\n});\nexports.DxChange = DxChange;\nDxChange.$_optionName = \"changes\";\nDxChange.$_isCollectionItem = true;\nvar DxColCountByScreen = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:lg\": null,\n \"update:md\": null,\n \"update:sm\": null,\n \"update:xs\": null,\n },\n props: {\n lg: Number,\n md: Number,\n sm: Number,\n xs: Number\n }\n});\nexports.DxColCountByScreen = DxColCountByScreen;\nDxColCountByScreen.$_optionName = \"colCountByScreen\";\nvar DxCollision = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxCollision = DxCollision;\nDxCollision.$_optionName = \"collision\";\nvar DxColumn = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:allowEditing\": null,\n \"update:allowExporting\": null,\n \"update:allowFiltering\": null,\n \"update:allowFixing\": null,\n \"update:allowGrouping\": null,\n \"update:allowHeaderFiltering\": null,\n \"update:allowHiding\": null,\n \"update:allowReordering\": null,\n \"update:allowResizing\": null,\n \"update:allowSearch\": null,\n \"update:allowSorting\": null,\n \"update:autoExpandGroup\": null,\n \"update:buttons\": null,\n \"update:calculateCellValue\": null,\n \"update:calculateDisplayValue\": null,\n \"update:calculateFilterExpression\": null,\n \"update:calculateGroupValue\": null,\n \"update:calculateSortValue\": null,\n \"update:caption\": null,\n \"update:cellTemplate\": null,\n \"update:columns\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editCellTemplate\": null,\n \"update:editorOptions\": null,\n \"update:encodeHtml\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:filterType\": null,\n \"update:filterValue\": null,\n \"update:filterValues\": null,\n \"update:fixed\": null,\n \"update:fixedPosition\": null,\n \"update:format\": null,\n \"update:formItem\": null,\n \"update:groupCellTemplate\": null,\n \"update:groupIndex\": null,\n \"update:headerCellTemplate\": null,\n \"update:headerFilter\": null,\n \"update:hidingPriority\": null,\n \"update:isBand\": null,\n \"update:lookup\": null,\n \"update:minWidth\": null,\n \"update:name\": null,\n \"update:ownerBand\": null,\n \"update:renderAsync\": null,\n \"update:selectedFilterOperation\": null,\n \"update:setCellValue\": null,\n \"update:showEditorAlways\": null,\n \"update:showInColumnChooser\": null,\n \"update:showWhenGrouped\": null,\n \"update:sortIndex\": null,\n \"update:sortingMethod\": null,\n \"update:sortOrder\": null,\n \"update:trueText\": null,\n \"update:type\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n \"update:width\": null,\n },\n props: {\n alignment: String,\n allowEditing: Boolean,\n allowExporting: Boolean,\n allowFiltering: Boolean,\n allowFixing: Boolean,\n allowGrouping: Boolean,\n allowHeaderFiltering: Boolean,\n allowHiding: Boolean,\n allowReordering: Boolean,\n allowResizing: Boolean,\n allowSearch: Boolean,\n allowSorting: Boolean,\n autoExpandGroup: Boolean,\n buttons: Array,\n calculateCellValue: Function,\n calculateDisplayValue: [Function, String],\n calculateFilterExpression: Function,\n calculateGroupValue: [Function, String],\n calculateSortValue: [Function, String],\n caption: String,\n cellTemplate: {},\n columns: Array,\n cssClass: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editCellTemplate: {},\n editorOptions: {},\n encodeHtml: Boolean,\n falseText: String,\n filterOperations: Array,\n filterType: String,\n filterValue: {},\n filterValues: Array,\n fixed: Boolean,\n fixedPosition: String,\n format: [Object, Function, String],\n formItem: Object,\n groupCellTemplate: {},\n groupIndex: Number,\n headerCellTemplate: {},\n headerFilter: Object,\n hidingPriority: Number,\n isBand: Boolean,\n lookup: Object,\n minWidth: Number,\n name: String,\n ownerBand: Number,\n renderAsync: Boolean,\n selectedFilterOperation: String,\n setCellValue: Function,\n showEditorAlways: Boolean,\n showInColumnChooser: Boolean,\n showWhenGrouped: Boolean,\n sortIndex: Number,\n sortingMethod: Function,\n sortOrder: String,\n trueText: String,\n type: String,\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number,\n width: [Number, String]\n }\n});\nexports.DxColumn = DxColumn;\nDxColumn.$_optionName = \"columns\";\nDxColumn.$_isCollectionItem = true;\nDxColumn.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n button: { isCollectionItem: true, optionName: \"buttons\" },\n columnHeaderFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n columnLookup: { isCollectionItem: false, optionName: \"lookup\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n formItem: { isCollectionItem: false, optionName: \"formItem\" },\n headerFilter: { isCollectionItem: false, optionName: \"headerFilter\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxColumnChooser = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:emptyPanelText\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:mode\": null,\n \"update:position\": null,\n \"update:search\": null,\n \"update:searchTimeout\": null,\n \"update:selection\": null,\n \"update:sortOrder\": null,\n \"update:title\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n emptyPanelText: String,\n enabled: Boolean,\n height: Number,\n mode: String,\n position: Object,\n search: Object,\n searchTimeout: Number,\n selection: Object,\n sortOrder: String,\n title: String,\n width: Number\n }\n});\nexports.DxColumnChooser = DxColumnChooser;\nDxColumnChooser.$_optionName = \"columnChooser\";\nDxColumnChooser.$_expectedChildren = {\n columnChooserSearch: { isCollectionItem: false, optionName: \"search\" },\n columnChooserSelection: { isCollectionItem: false, optionName: \"selection\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n search: { isCollectionItem: false, optionName: \"search\" },\n selection: { isCollectionItem: false, optionName: \"selection\" }\n};\nvar DxColumnChooserSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n timeout: Number\n }\n});\nexports.DxColumnChooserSearch = DxColumnChooserSearch;\nDxColumnChooserSearch.$_optionName = \"search\";\nvar DxColumnChooserSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:recursive\": null,\n \"update:selectByClick\": null,\n },\n props: {\n allowSelectAll: Boolean,\n recursive: Boolean,\n selectByClick: Boolean\n }\n});\nexports.DxColumnChooserSelection = DxColumnChooserSelection;\nDxColumnChooserSelection.$_optionName = \"selection\";\nvar DxColumnFixing = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:texts\": null,\n },\n props: {\n enabled: Boolean,\n texts: Object\n }\n});\nexports.DxColumnFixing = DxColumnFixing;\nDxColumnFixing.$_optionName = \"columnFixing\";\nDxColumnFixing.$_expectedChildren = {\n columnFixingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxColumnFixingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:fix\": null,\n \"update:leftPosition\": null,\n \"update:rightPosition\": null,\n \"update:unfix\": null,\n },\n props: {\n fix: String,\n leftPosition: String,\n rightPosition: String,\n unfix: String\n }\n});\nexports.DxColumnFixingTexts = DxColumnFixingTexts;\nDxColumnFixingTexts.$_optionName = \"texts\";\nvar DxColumnHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchMode\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n search: Object,\n searchMode: String,\n width: Number\n }\n});\nexports.DxColumnHeaderFilter = DxColumnHeaderFilter;\nDxColumnHeaderFilter.$_optionName = \"headerFilter\";\nDxColumnHeaderFilter.$_expectedChildren = {\n columnHeaderFilterSearch: { isCollectionItem: false, optionName: \"search\" },\n search: { isCollectionItem: false, optionName: \"search\" }\n};\nvar DxColumnHeaderFilterSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:searchExpr\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n searchExpr: [Array, Function, String],\n timeout: Number\n }\n});\nexports.DxColumnHeaderFilterSearch = DxColumnHeaderFilterSearch;\nDxColumnHeaderFilterSearch.$_optionName = \"search\";\nvar DxColumnLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: String\n }\n});\nexports.DxColumnLookup = DxColumnLookup;\nDxColumnLookup.$_optionName = \"lookup\";\nvar DxCompareRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxCompareRule = DxCompareRule;\nDxCompareRule.$_optionName = \"validationRules\";\nDxCompareRule.$_isCollectionItem = true;\nDxCompareRule.$_predefinedProps = {\n type: \"compare\"\n};\nvar DxCursorOffset = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxCursorOffset = DxCursorOffset;\nDxCursorOffset.$_optionName = \"cursorOffset\";\nvar DxCustomOperation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataTypes\": null,\n \"update:editorTemplate\": null,\n \"update:hasValue\": null,\n \"update:icon\": null,\n \"update:name\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataTypes: Array,\n editorTemplate: {},\n hasValue: Boolean,\n icon: String,\n name: String\n }\n});\nexports.DxCustomOperation = DxCustomOperation;\nDxCustomOperation.$_optionName = \"customOperations\";\nDxCustomOperation.$_isCollectionItem = true;\nvar DxCustomRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n reevaluate: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxCustomRule = DxCustomRule;\nDxCustomRule.$_optionName = \"validationRules\";\nDxCustomRule.$_isCollectionItem = true;\nDxCustomRule.$_predefinedProps = {\n type: \"custom\"\n};\nvar DxDataGridHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n height: Number,\n search: Object,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxDataGridHeaderFilter = DxDataGridHeaderFilter;\nDxDataGridHeaderFilter.$_optionName = \"headerFilter\";\nDxDataGridHeaderFilter.$_expectedChildren = {\n dataGridHeaderFilterSearch: { isCollectionItem: false, optionName: \"search\" },\n dataGridHeaderFilterTexts: { isCollectionItem: false, optionName: \"texts\" },\n search: { isCollectionItem: false, optionName: \"search\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxDataGridHeaderFilterSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n timeout: Number\n }\n});\nexports.DxDataGridHeaderFilterSearch = DxDataGridHeaderFilterSearch;\nDxDataGridHeaderFilterSearch.$_optionName = \"search\";\nvar DxDataGridHeaderFilterTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cancel\": null,\n \"update:emptyValue\": null,\n \"update:ok\": null,\n },\n props: {\n cancel: String,\n emptyValue: String,\n ok: String\n }\n});\nexports.DxDataGridHeaderFilterTexts = DxDataGridHeaderFilterTexts;\nDxDataGridHeaderFilterTexts.$_optionName = \"texts\";\nvar DxDataGridSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:mode\": null,\n \"update:selectAllMode\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n mode: String,\n selectAllMode: String,\n showCheckBoxesMode: String\n }\n});\nexports.DxDataGridSelection = DxDataGridSelection;\nDxDataGridSelection.$_optionName = \"selection\";\nvar DxEditing = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowAdding\": null,\n \"update:allowDeleting\": null,\n \"update:allowUpdating\": null,\n \"update:changes\": null,\n \"update:confirmDelete\": null,\n \"update:editColumnName\": null,\n \"update:editRowKey\": null,\n \"update:form\": null,\n \"update:mode\": null,\n \"update:newRowPosition\": null,\n \"update:popup\": null,\n \"update:refreshMode\": null,\n \"update:selectTextOnEditStart\": null,\n \"update:startEditAction\": null,\n \"update:texts\": null,\n \"update:useIcons\": null,\n },\n props: {\n allowAdding: Boolean,\n allowDeleting: [Boolean, Function],\n allowUpdating: [Boolean, Function],\n changes: Array,\n confirmDelete: Boolean,\n editColumnName: String,\n editRowKey: {},\n form: Object,\n mode: String,\n newRowPosition: String,\n popup: Object,\n refreshMode: String,\n selectTextOnEditStart: Boolean,\n startEditAction: String,\n texts: {},\n useIcons: Boolean\n }\n});\nexports.DxEditing = DxEditing;\nDxEditing.$_optionName = \"editing\";\nDxEditing.$_expectedChildren = {\n change: { isCollectionItem: true, optionName: \"changes\" },\n editingTexts: { isCollectionItem: false, optionName: \"texts\" },\n form: { isCollectionItem: false, optionName: \"form\" },\n popup: { isCollectionItem: false, optionName: \"popup\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxEditingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:undeleteRow\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n deleteRow: String,\n editRow: String,\n saveAllChanges: String,\n saveRowChanges: String,\n undeleteRow: String,\n validationCancelChanges: String\n }\n});\nexports.DxEditingTexts = DxEditingTexts;\nDxEditingTexts.$_optionName = \"texts\";\nvar DxEmailRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxEmailRule = DxEmailRule;\nDxEmailRule.$_optionName = \"validationRules\";\nDxEmailRule.$_isCollectionItem = true;\nDxEmailRule.$_predefinedProps = {\n type: \"email\"\n};\nvar DxExport = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowExportSelectedData\": null,\n \"update:enabled\": null,\n \"update:formats\": null,\n \"update:texts\": null,\n },\n props: {\n allowExportSelectedData: Boolean,\n enabled: Boolean,\n formats: Array,\n texts: Object\n }\n});\nexports.DxExport = DxExport;\nDxExport.$_optionName = \"export\";\nDxExport.$_expectedChildren = {\n exportTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxExportTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n },\n props: {\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String\n }\n});\nexports.DxExportTexts = DxExportTexts;\nDxExportTexts.$_optionName = \"texts\";\nvar DxField = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateFilterExpression\": null,\n \"update:caption\": null,\n \"update:customizeText\": null,\n \"update:dataField\": null,\n \"update:dataType\": null,\n \"update:editorOptions\": null,\n \"update:editorTemplate\": null,\n \"update:falseText\": null,\n \"update:filterOperations\": null,\n \"update:format\": null,\n \"update:lookup\": null,\n \"update:name\": null,\n \"update:trueText\": null,\n },\n props: {\n calculateFilterExpression: Function,\n caption: String,\n customizeText: Function,\n dataField: String,\n dataType: String,\n editorOptions: {},\n editorTemplate: {},\n falseText: String,\n filterOperations: Array,\n format: [Object, Function, String],\n lookup: Object,\n name: String,\n trueText: String\n }\n});\nexports.DxField = DxField;\nDxField.$_optionName = \"fields\";\nDxField.$_isCollectionItem = true;\nDxField.$_expectedChildren = {\n fieldLookup: { isCollectionItem: false, optionName: \"lookup\" },\n format: { isCollectionItem: false, optionName: \"format\" },\n lookup: { isCollectionItem: false, optionName: \"lookup\" }\n};\nvar DxFieldLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n dataSource: [Array, Object],\n displayExpr: [Function, String],\n valueExpr: [Function, String]\n }\n});\nexports.DxFieldLookup = DxFieldLookup;\nDxFieldLookup.$_optionName = \"lookup\";\nvar DxFilterBuilder = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:allowHierarchicalFields\": null,\n \"update:bindingOptions\": null,\n \"update:customOperations\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:fields\": null,\n \"update:filterOperationDescriptions\": null,\n \"update:focusStateEnabled\": null,\n \"update:groupOperationDescriptions\": null,\n \"update:groupOperations\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxGroupLevel\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorPrepared\": null,\n \"update:onEditorPreparing\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onValueChanged\": null,\n \"update:rtlEnabled\": null,\n \"update:tabIndex\": null,\n \"update:value\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n allowHierarchicalFields: Boolean,\n bindingOptions: Object,\n customOperations: Array,\n disabled: Boolean,\n elementAttr: Object,\n fields: Array,\n filterOperationDescriptions: Object,\n focusStateEnabled: Boolean,\n groupOperationDescriptions: Object,\n groupOperations: Array,\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n maxGroupLevel: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorPrepared: Function,\n onEditorPreparing: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onValueChanged: Function,\n rtlEnabled: Boolean,\n tabIndex: Number,\n value: [Array, Function, String],\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxFilterBuilder = DxFilterBuilder;\nDxFilterBuilder.$_optionName = \"filterBuilder\";\nDxFilterBuilder.$_expectedChildren = {\n customOperation: { isCollectionItem: true, optionName: \"customOperations\" },\n field: { isCollectionItem: true, optionName: \"fields\" },\n filterOperationDescriptions: { isCollectionItem: false, optionName: \"filterOperationDescriptions\" },\n groupOperationDescriptions: { isCollectionItem: false, optionName: \"groupOperationDescriptions\" }\n};\nvar DxFilterBuilderPopup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:enableBodyScroll\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n enableBodyScroll: Boolean,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxFilterBuilderPopup = DxFilterBuilderPopup;\nDxFilterBuilderPopup.$_optionName = \"filterBuilderPopup\";\nvar DxFilterOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:isBlank\": null,\n \"update:isNotBlank\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n isBlank: String,\n isNotBlank: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxFilterOperationDescriptions = DxFilterOperationDescriptions;\nDxFilterOperationDescriptions.$_optionName = \"filterOperationDescriptions\";\nvar DxFilterPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customizeText\": null,\n \"update:filterEnabled\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n },\n props: {\n customizeText: Function,\n filterEnabled: Boolean,\n texts: Object,\n visible: Boolean\n }\n});\nexports.DxFilterPanel = DxFilterPanel;\nDxFilterPanel.$_optionName = \"filterPanel\";\nDxFilterPanel.$_expectedChildren = {\n filterPanelTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxFilterPanelTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:clearFilter\": null,\n \"update:createFilter\": null,\n \"update:filterEnabledHint\": null,\n },\n props: {\n clearFilter: String,\n createFilter: String,\n filterEnabledHint: String\n }\n});\nexports.DxFilterPanelTexts = DxFilterPanelTexts;\nDxFilterPanelTexts.$_optionName = \"texts\";\nvar DxFilterRow = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:applyFilter\": null,\n \"update:applyFilterText\": null,\n \"update:betweenEndText\": null,\n \"update:betweenStartText\": null,\n \"update:operationDescriptions\": null,\n \"update:resetOperationText\": null,\n \"update:showAllText\": null,\n \"update:showOperationChooser\": null,\n \"update:visible\": null,\n },\n props: {\n applyFilter: String,\n applyFilterText: String,\n betweenEndText: String,\n betweenStartText: String,\n operationDescriptions: Object,\n resetOperationText: String,\n showAllText: String,\n showOperationChooser: Boolean,\n visible: Boolean\n }\n});\nexports.DxFilterRow = DxFilterRow;\nDxFilterRow.$_optionName = \"filterRow\";\nDxFilterRow.$_expectedChildren = {\n operationDescriptions: { isCollectionItem: false, optionName: \"operationDescriptions\" }\n};\nvar DxForm = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:activeStateEnabled\": null,\n \"update:alignItemLabels\": null,\n \"update:alignItemLabelsInAllGroups\": null,\n \"update:bindingOptions\": null,\n \"update:colCount\": null,\n \"update:colCountByScreen\": null,\n \"update:customizeItem\": null,\n \"update:disabled\": null,\n \"update:elementAttr\": null,\n \"update:focusStateEnabled\": null,\n \"update:formData\": null,\n \"update:height\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:items\": null,\n \"update:labelLocation\": null,\n \"update:labelMode\": null,\n \"update:minColWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onEditorEnterKey\": null,\n \"update:onFieldDataChanged\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:optionalMark\": null,\n \"update:readOnly\": null,\n \"update:requiredMark\": null,\n \"update:requiredMessage\": null,\n \"update:rtlEnabled\": null,\n \"update:screenByWidth\": null,\n \"update:scrollingEnabled\": null,\n \"update:showColonAfterLabel\": null,\n \"update:showOptionalMark\": null,\n \"update:showRequiredMark\": null,\n \"update:showValidationSummary\": null,\n \"update:tabIndex\": null,\n \"update:validationGroup\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n accessKey: String,\n activeStateEnabled: Boolean,\n alignItemLabels: Boolean,\n alignItemLabelsInAllGroups: Boolean,\n bindingOptions: Object,\n colCount: [Number, String],\n colCountByScreen: Object,\n customizeItem: Function,\n disabled: Boolean,\n elementAttr: Object,\n focusStateEnabled: Boolean,\n formData: {},\n height: [Function, Number, String],\n hint: String,\n hoverStateEnabled: Boolean,\n items: Array,\n labelLocation: String,\n labelMode: String,\n minColWidth: Number,\n onContentReady: Function,\n onDisposing: Function,\n onEditorEnterKey: Function,\n onFieldDataChanged: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n optionalMark: String,\n readOnly: Boolean,\n requiredMark: String,\n requiredMessage: String,\n rtlEnabled: Boolean,\n screenByWidth: Function,\n scrollingEnabled: Boolean,\n showColonAfterLabel: Boolean,\n showOptionalMark: Boolean,\n showRequiredMark: Boolean,\n showValidationSummary: Boolean,\n tabIndex: Number,\n validationGroup: String,\n visible: Boolean,\n width: [Function, Number, String]\n }\n});\nexports.DxForm = DxForm;\nDxForm.$_optionName = \"form\";\nDxForm.$_expectedChildren = {\n colCountByScreen: { isCollectionItem: false, optionName: \"colCountByScreen\" }\n};\nvar DxFormat = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxFormat = DxFormat;\nDxFormat.$_optionName = \"format\";\nvar DxFormItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:colSpan\": null,\n \"update:cssClass\": null,\n \"update:dataField\": null,\n \"update:editorOptions\": null,\n \"update:editorType\": null,\n \"update:helpText\": null,\n \"update:isRequired\": null,\n \"update:itemType\": null,\n \"update:label\": null,\n \"update:name\": null,\n \"update:template\": null,\n \"update:validationRules\": null,\n \"update:visible\": null,\n \"update:visibleIndex\": null,\n },\n props: {\n colSpan: Number,\n cssClass: String,\n dataField: String,\n editorOptions: {},\n editorType: String,\n helpText: String,\n isRequired: Boolean,\n itemType: String,\n label: Object,\n name: String,\n template: {},\n validationRules: Array,\n visible: Boolean,\n visibleIndex: Number\n }\n});\nexports.DxFormItem = DxFormItem;\nDxFormItem.$_optionName = \"formItem\";\nDxFormItem.$_expectedChildren = {\n AsyncRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CompareRule: { isCollectionItem: true, optionName: \"validationRules\" },\n CustomRule: { isCollectionItem: true, optionName: \"validationRules\" },\n EmailRule: { isCollectionItem: true, optionName: \"validationRules\" },\n label: { isCollectionItem: false, optionName: \"label\" },\n NumericRule: { isCollectionItem: true, optionName: \"validationRules\" },\n PatternRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RangeRule: { isCollectionItem: true, optionName: \"validationRules\" },\n RequiredRule: { isCollectionItem: true, optionName: \"validationRules\" },\n StringLengthRule: { isCollectionItem: true, optionName: \"validationRules\" },\n validationRule: { isCollectionItem: true, optionName: \"validationRules\" }\n};\nvar DxFrom = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxFrom = DxFrom;\nDxFrom.$_optionName = \"from\";\nDxFrom.$_expectedChildren = {\n position: { isCollectionItem: false, optionName: \"position\" }\n};\nvar DxGrouping = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowCollapsing\": null,\n \"update:autoExpandAll\": null,\n \"update:contextMenuEnabled\": null,\n \"update:expandMode\": null,\n \"update:texts\": null,\n },\n props: {\n allowCollapsing: Boolean,\n autoExpandAll: Boolean,\n contextMenuEnabled: Boolean,\n expandMode: String,\n texts: Object\n }\n});\nexports.DxGrouping = DxGrouping;\nDxGrouping.$_optionName = \"grouping\";\nDxGrouping.$_expectedChildren = {\n groupingTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" }\n};\nvar DxGroupingTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n },\n props: {\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n ungroup: String,\n ungroupAll: String\n }\n});\nexports.DxGroupingTexts = DxGroupingTexts;\nDxGroupingTexts.$_optionName = \"texts\";\nvar DxGroupItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignByColumn\": null,\n \"update:column\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:showInGroupFooter\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignByColumn: Boolean,\n column: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n showInGroupFooter: Boolean,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxGroupItem = DxGroupItem;\nDxGroupItem.$_optionName = \"groupItems\";\nDxGroupItem.$_isCollectionItem = true;\nDxGroupItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxGroupOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:and\": null,\n \"update:notAnd\": null,\n \"update:notOr\": null,\n \"update:or\": null,\n },\n props: {\n and: String,\n notAnd: String,\n notOr: String,\n or: String\n }\n});\nexports.DxGroupOperationDescriptions = DxGroupOperationDescriptions;\nDxGroupOperationDescriptions.$_optionName = \"groupOperationDescriptions\";\nvar DxGroupPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowColumnDragging\": null,\n \"update:emptyPanelText\": null,\n \"update:visible\": null,\n },\n props: {\n allowColumnDragging: Boolean,\n emptyPanelText: String,\n visible: [Boolean, String]\n }\n});\nexports.DxGroupPanel = DxGroupPanel;\nDxGroupPanel.$_optionName = \"groupPanel\";\nvar DxHeaderFilter = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSearch\": null,\n \"update:allowSelectAll\": null,\n \"update:dataSource\": null,\n \"update:groupInterval\": null,\n \"update:height\": null,\n \"update:search\": null,\n \"update:searchMode\": null,\n \"update:searchTimeout\": null,\n \"update:texts\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n allowSearch: Boolean,\n allowSelectAll: Boolean,\n dataSource: {},\n groupInterval: [Number, String],\n height: Number,\n search: Object,\n searchMode: String,\n searchTimeout: Number,\n texts: Object,\n visible: Boolean,\n width: Number\n }\n});\nexports.DxHeaderFilter = DxHeaderFilter;\nDxHeaderFilter.$_optionName = \"headerFilter\";\nvar DxHide = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxHide = DxHide;\nDxHide.$_optionName = \"hide\";\nDxHide.$_expectedChildren = {\n from: { isCollectionItem: false, optionName: \"from\" },\n to: { isCollectionItem: false, optionName: \"to\" }\n};\nvar DxItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:name\": null,\n \"update:options\": null,\n \"update:showText\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n name: String,\n options: {},\n showText: String,\n template: {},\n text: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxItem = DxItem;\nDxItem.$_optionName = \"items\";\nDxItem.$_isCollectionItem = true;\nvar DxKeyboardNavigation = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editOnKeyPress\": null,\n \"update:enabled\": null,\n \"update:enterKeyAction\": null,\n \"update:enterKeyDirection\": null,\n },\n props: {\n editOnKeyPress: Boolean,\n enabled: Boolean,\n enterKeyAction: String,\n enterKeyDirection: String\n }\n});\nexports.DxKeyboardNavigation = DxKeyboardNavigation;\nDxKeyboardNavigation.$_optionName = \"keyboardNavigation\";\nvar DxLabel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:location\": null,\n \"update:showColon\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:visible\": null,\n },\n props: {\n alignment: String,\n location: String,\n showColon: Boolean,\n template: {},\n text: String,\n visible: Boolean\n }\n});\nexports.DxLabel = DxLabel;\nDxLabel.$_optionName = \"label\";\nvar DxLoadPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:height\": null,\n \"update:indicatorSrc\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showIndicator\": null,\n \"update:showPane\": null,\n \"update:text\": null,\n \"update:width\": null,\n },\n props: {\n enabled: [Boolean, String],\n height: Number,\n indicatorSrc: String,\n shading: Boolean,\n shadingColor: String,\n showIndicator: Boolean,\n showPane: Boolean,\n text: String,\n width: Number\n }\n});\nexports.DxLoadPanel = DxLoadPanel;\nDxLoadPanel.$_optionName = \"loadPanel\";\nvar DxLookup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowClearing\": null,\n \"update:calculateCellValue\": null,\n \"update:dataSource\": null,\n \"update:displayExpr\": null,\n \"update:valueExpr\": null,\n },\n props: {\n allowClearing: Boolean,\n calculateCellValue: Function,\n dataSource: {},\n displayExpr: [Function, String],\n valueExpr: [String, Function]\n }\n});\nexports.DxLookup = DxLookup;\nDxLookup.$_optionName = \"lookup\";\nvar DxMasterDetail = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:autoExpandAll\": null,\n \"update:enabled\": null,\n \"update:template\": null,\n },\n props: {\n autoExpandAll: Boolean,\n enabled: Boolean,\n template: {}\n }\n});\nexports.DxMasterDetail = DxMasterDetail;\nDxMasterDetail.$_optionName = \"masterDetail\";\nvar DxMy = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: String,\n y: String\n }\n});\nexports.DxMy = DxMy;\nDxMy.$_optionName = \"my\";\nvar DxNumericRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n type: String\n }\n});\nexports.DxNumericRule = DxNumericRule;\nDxNumericRule.$_optionName = \"validationRules\";\nDxNumericRule.$_isCollectionItem = true;\nDxNumericRule.$_predefinedProps = {\n type: \"numeric\"\n};\nvar DxOffset = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:x\": null,\n \"update:y\": null,\n },\n props: {\n x: Number,\n y: Number\n }\n});\nexports.DxOffset = DxOffset;\nDxOffset.$_optionName = \"offset\";\nvar DxOperationDescriptions = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:between\": null,\n \"update:contains\": null,\n \"update:endsWith\": null,\n \"update:equal\": null,\n \"update:greaterThan\": null,\n \"update:greaterThanOrEqual\": null,\n \"update:lessThan\": null,\n \"update:lessThanOrEqual\": null,\n \"update:notContains\": null,\n \"update:notEqual\": null,\n \"update:startsWith\": null,\n },\n props: {\n between: String,\n contains: String,\n endsWith: String,\n equal: String,\n greaterThan: String,\n greaterThanOrEqual: String,\n lessThan: String,\n lessThanOrEqual: String,\n notContains: String,\n notEqual: String,\n startsWith: String\n }\n});\nexports.DxOperationDescriptions = DxOperationDescriptions;\nDxOperationDescriptions.$_optionName = \"operationDescriptions\";\nvar DxPager = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowedPageSizes\": null,\n \"update:displayMode\": null,\n \"update:infoText\": null,\n \"update:label\": null,\n \"update:showInfo\": null,\n \"update:showNavigationButtons\": null,\n \"update:showPageSizeSelector\": null,\n \"update:visible\": null,\n },\n props: {\n allowedPageSizes: [Array, String],\n displayMode: String,\n infoText: String,\n label: String,\n showInfo: Boolean,\n showNavigationButtons: Boolean,\n showPageSizeSelector: Boolean,\n visible: [Boolean, String]\n }\n});\nexports.DxPager = DxPager;\nDxPager.$_optionName = \"pager\";\nvar DxPaging = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:enabled\": null,\n \"update:pageIndex\": null,\n \"update:pageSize\": null,\n },\n props: {\n enabled: Boolean,\n pageIndex: Number,\n pageSize: Number\n }\n});\nexports.DxPaging = DxPaging;\nDxPaging.$_optionName = \"paging\";\nvar DxPatternRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:message\": null,\n \"update:pattern\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n message: String,\n pattern: {},\n type: String\n }\n});\nexports.DxPatternRule = DxPatternRule;\nDxPatternRule.$_optionName = \"validationRules\";\nDxPatternRule.$_isCollectionItem = true;\nDxPatternRule.$_predefinedProps = {\n type: \"pattern\"\n};\nvar DxPopup = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:accessKey\": null,\n \"update:animation\": null,\n \"update:bindingOptions\": null,\n \"update:closeOnOutsideClick\": null,\n \"update:container\": null,\n \"update:contentTemplate\": null,\n \"update:copyRootClassesToWrapper\": null,\n \"update:deferRendering\": null,\n \"update:disabled\": null,\n \"update:dragAndResizeArea\": null,\n \"update:dragEnabled\": null,\n \"update:dragOutsideBoundary\": null,\n \"update:elementAttr\": null,\n \"update:enableBodyScroll\": null,\n \"update:focusStateEnabled\": null,\n \"update:fullScreen\": null,\n \"update:height\": null,\n \"update:hideOnOutsideClick\": null,\n \"update:hideOnParentScroll\": null,\n \"update:hint\": null,\n \"update:hoverStateEnabled\": null,\n \"update:maxHeight\": null,\n \"update:maxWidth\": null,\n \"update:minHeight\": null,\n \"update:minWidth\": null,\n \"update:onContentReady\": null,\n \"update:onDisposing\": null,\n \"update:onHidden\": null,\n \"update:onHiding\": null,\n \"update:onInitialized\": null,\n \"update:onOptionChanged\": null,\n \"update:onResize\": null,\n \"update:onResizeEnd\": null,\n \"update:onResizeStart\": null,\n \"update:onShowing\": null,\n \"update:onShown\": null,\n \"update:onTitleRendered\": null,\n \"update:position\": null,\n \"update:resizeEnabled\": null,\n \"update:restorePosition\": null,\n \"update:rtlEnabled\": null,\n \"update:shading\": null,\n \"update:shadingColor\": null,\n \"update:showCloseButton\": null,\n \"update:showTitle\": null,\n \"update:tabIndex\": null,\n \"update:title\": null,\n \"update:titleTemplate\": null,\n \"update:toolbarItems\": null,\n \"update:visible\": null,\n \"update:width\": null,\n \"update:wrapperAttr\": null,\n },\n props: {\n accessKey: String,\n animation: Object,\n bindingOptions: Object,\n closeOnOutsideClick: [Boolean, Function],\n container: {},\n contentTemplate: {},\n copyRootClassesToWrapper: Boolean,\n deferRendering: Boolean,\n disabled: Boolean,\n dragAndResizeArea: {},\n dragEnabled: Boolean,\n dragOutsideBoundary: Boolean,\n elementAttr: {},\n enableBodyScroll: Boolean,\n focusStateEnabled: Boolean,\n fullScreen: Boolean,\n height: [Function, Number, String],\n hideOnOutsideClick: [Boolean, Function],\n hideOnParentScroll: Boolean,\n hint: String,\n hoverStateEnabled: Boolean,\n maxHeight: [Function, Number, String],\n maxWidth: [Function, Number, String],\n minHeight: [Function, Number, String],\n minWidth: [Function, Number, String],\n onContentReady: Function,\n onDisposing: Function,\n onHidden: Function,\n onHiding: Function,\n onInitialized: Function,\n onOptionChanged: Function,\n onResize: Function,\n onResizeEnd: Function,\n onResizeStart: Function,\n onShowing: Function,\n onShown: Function,\n onTitleRendered: Function,\n position: [Function, Object, String],\n resizeEnabled: Boolean,\n restorePosition: Boolean,\n rtlEnabled: Boolean,\n shading: Boolean,\n shadingColor: String,\n showCloseButton: Boolean,\n showTitle: Boolean,\n tabIndex: Number,\n title: String,\n titleTemplate: {},\n toolbarItems: Array,\n visible: Boolean,\n width: [Function, Number, String],\n wrapperAttr: {}\n }\n});\nexports.DxPopup = DxPopup;\nDxPopup.$_optionName = \"popup\";\nDxPopup.$_expectedChildren = {\n animation: { isCollectionItem: false, optionName: \"animation\" },\n position: { isCollectionItem: false, optionName: \"position\" },\n toolbarItem: { isCollectionItem: true, optionName: \"toolbarItems\" }\n};\nvar DxPosition = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:at\": null,\n \"update:boundary\": null,\n \"update:boundaryOffset\": null,\n \"update:collision\": null,\n \"update:my\": null,\n \"update:of\": null,\n \"update:offset\": null,\n },\n props: {\n at: [Object, String],\n boundary: {},\n boundaryOffset: [Object, String],\n collision: [Object, String],\n my: [Object, String],\n of: {},\n offset: [Object, String]\n }\n});\nexports.DxPosition = DxPosition;\nDxPosition.$_optionName = \"position\";\nvar DxRangeRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:reevaluate\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n reevaluate: Boolean,\n type: String\n }\n});\nexports.DxRangeRule = DxRangeRule;\nDxRangeRule.$_optionName = \"validationRules\";\nDxRangeRule.$_isCollectionItem = true;\nDxRangeRule.$_predefinedProps = {\n type: \"range\"\n};\nvar DxRemoteOperations = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:filtering\": null,\n \"update:grouping\": null,\n \"update:groupPaging\": null,\n \"update:paging\": null,\n \"update:sorting\": null,\n \"update:summary\": null,\n },\n props: {\n filtering: Boolean,\n grouping: Boolean,\n groupPaging: Boolean,\n paging: Boolean,\n sorting: Boolean,\n summary: Boolean\n }\n});\nexports.DxRemoteOperations = DxRemoteOperations;\nDxRemoteOperations.$_optionName = \"remoteOperations\";\nvar DxRequiredRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:message\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n message: String,\n trim: Boolean,\n type: String\n }\n});\nexports.DxRequiredRule = DxRequiredRule;\nDxRequiredRule.$_optionName = \"validationRules\";\nDxRequiredRule.$_isCollectionItem = true;\nDxRequiredRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxRowDragging = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowDropInsideItem\": null,\n \"update:allowReordering\": null,\n \"update:autoScroll\": null,\n \"update:boundary\": null,\n \"update:container\": null,\n \"update:cursorOffset\": null,\n \"update:data\": null,\n \"update:dragDirection\": null,\n \"update:dragTemplate\": null,\n \"update:dropFeedbackMode\": null,\n \"update:filter\": null,\n \"update:group\": null,\n \"update:handle\": null,\n \"update:onAdd\": null,\n \"update:onDragChange\": null,\n \"update:onDragEnd\": null,\n \"update:onDragMove\": null,\n \"update:onDragStart\": null,\n \"update:onRemove\": null,\n \"update:onReorder\": null,\n \"update:scrollSensitivity\": null,\n \"update:scrollSpeed\": null,\n \"update:showDragIcons\": null,\n },\n props: {\n allowDropInsideItem: Boolean,\n allowReordering: Boolean,\n autoScroll: Boolean,\n boundary: {},\n container: {},\n cursorOffset: [Object, String],\n data: {},\n dragDirection: String,\n dragTemplate: {},\n dropFeedbackMode: String,\n filter: String,\n group: String,\n handle: String,\n onAdd: Function,\n onDragChange: Function,\n onDragEnd: Function,\n onDragMove: Function,\n onDragStart: Function,\n onRemove: Function,\n onReorder: Function,\n scrollSensitivity: Number,\n scrollSpeed: Number,\n showDragIcons: Boolean\n }\n});\nexports.DxRowDragging = DxRowDragging;\nDxRowDragging.$_optionName = \"rowDragging\";\nDxRowDragging.$_expectedChildren = {\n cursorOffset: { isCollectionItem: false, optionName: \"cursorOffset\" }\n};\nvar DxScrolling = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:columnRenderingMode\": null,\n \"update:mode\": null,\n \"update:preloadEnabled\": null,\n \"update:renderAsync\": null,\n \"update:rowRenderingMode\": null,\n \"update:scrollByContent\": null,\n \"update:scrollByThumb\": null,\n \"update:showScrollbar\": null,\n \"update:useNative\": null,\n },\n props: {\n columnRenderingMode: String,\n mode: String,\n preloadEnabled: Boolean,\n renderAsync: Boolean,\n rowRenderingMode: String,\n scrollByContent: Boolean,\n scrollByThumb: Boolean,\n showScrollbar: String,\n useNative: [Boolean, String]\n }\n});\nexports.DxScrolling = DxScrolling;\nDxScrolling.$_optionName = \"scrolling\";\nvar DxSearch = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:editorOptions\": null,\n \"update:enabled\": null,\n \"update:mode\": null,\n \"update:searchExpr\": null,\n \"update:timeout\": null,\n },\n props: {\n editorOptions: {},\n enabled: Boolean,\n mode: String,\n searchExpr: [Array, Function, String],\n timeout: Number\n }\n});\nexports.DxSearch = DxSearch;\nDxSearch.$_optionName = \"search\";\nvar DxSearchPanel = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:highlightCaseSensitive\": null,\n \"update:highlightSearchText\": null,\n \"update:placeholder\": null,\n \"update:searchVisibleColumnsOnly\": null,\n \"update:text\": null,\n \"update:visible\": null,\n \"update:width\": null,\n },\n props: {\n highlightCaseSensitive: Boolean,\n highlightSearchText: Boolean,\n placeholder: String,\n searchVisibleColumnsOnly: Boolean,\n text: String,\n visible: Boolean,\n width: [Number, String]\n }\n});\nexports.DxSearchPanel = DxSearchPanel;\nDxSearchPanel.$_optionName = \"searchPanel\";\nvar DxSelection = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:allowSelectAll\": null,\n \"update:deferred\": null,\n \"update:mode\": null,\n \"update:recursive\": null,\n \"update:selectAllMode\": null,\n \"update:selectByClick\": null,\n \"update:showCheckBoxesMode\": null,\n },\n props: {\n allowSelectAll: Boolean,\n deferred: Boolean,\n mode: String,\n recursive: Boolean,\n selectAllMode: String,\n selectByClick: Boolean,\n showCheckBoxesMode: String\n }\n});\nexports.DxSelection = DxSelection;\nDxSelection.$_optionName = \"selection\";\nvar DxShow = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:complete\": null,\n \"update:delay\": null,\n \"update:direction\": null,\n \"update:duration\": null,\n \"update:easing\": null,\n \"update:from\": null,\n \"update:staggerDelay\": null,\n \"update:start\": null,\n \"update:to\": null,\n \"update:type\": null,\n },\n props: {\n complete: Function,\n delay: Number,\n direction: String,\n duration: Number,\n easing: String,\n from: Object,\n staggerDelay: Number,\n start: Function,\n to: Object,\n type: String\n }\n});\nexports.DxShow = DxShow;\nDxShow.$_optionName = \"show\";\nvar DxSortByGroupSummaryInfo = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:groupColumn\": null,\n \"update:sortOrder\": null,\n \"update:summaryItem\": null,\n },\n props: {\n groupColumn: String,\n sortOrder: String,\n summaryItem: [Number, String]\n }\n});\nexports.DxSortByGroupSummaryInfo = DxSortByGroupSummaryInfo;\nDxSortByGroupSummaryInfo.$_optionName = \"sortByGroupSummaryInfo\";\nDxSortByGroupSummaryInfo.$_isCollectionItem = true;\nvar DxSorting = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ascendingText\": null,\n \"update:clearText\": null,\n \"update:descendingText\": null,\n \"update:mode\": null,\n \"update:showSortIndexes\": null,\n },\n props: {\n ascendingText: String,\n clearText: String,\n descendingText: String,\n mode: String,\n showSortIndexes: Boolean\n }\n});\nexports.DxSorting = DxSorting;\nDxSorting.$_optionName = \"sorting\";\nvar DxStateStoring = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:customLoad\": null,\n \"update:customSave\": null,\n \"update:enabled\": null,\n \"update:savingTimeout\": null,\n \"update:storageKey\": null,\n \"update:type\": null,\n },\n props: {\n customLoad: Function,\n customSave: Function,\n enabled: Boolean,\n savingTimeout: Number,\n storageKey: String,\n type: String\n }\n});\nexports.DxStateStoring = DxStateStoring;\nDxStateStoring.$_optionName = \"stateStoring\";\nvar DxStringLengthRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:trim\": null,\n \"update:type\": null,\n },\n props: {\n ignoreEmptyValue: Boolean,\n max: Number,\n message: String,\n min: Number,\n trim: Boolean,\n type: String\n }\n});\nexports.DxStringLengthRule = DxStringLengthRule;\nDxStringLengthRule.$_optionName = \"validationRules\";\nDxStringLengthRule.$_isCollectionItem = true;\nDxStringLengthRule.$_predefinedProps = {\n type: \"stringLength\"\n};\nvar DxSummary = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:calculateCustomSummary\": null,\n \"update:groupItems\": null,\n \"update:recalculateWhileEditing\": null,\n \"update:skipEmptyValues\": null,\n \"update:texts\": null,\n \"update:totalItems\": null,\n },\n props: {\n calculateCustomSummary: Function,\n groupItems: Array,\n recalculateWhileEditing: Boolean,\n skipEmptyValues: Boolean,\n texts: Object,\n totalItems: Array\n }\n});\nexports.DxSummary = DxSummary;\nDxSummary.$_optionName = \"summary\";\nDxSummary.$_expectedChildren = {\n groupItem: { isCollectionItem: true, optionName: \"groupItems\" },\n summaryTexts: { isCollectionItem: false, optionName: \"texts\" },\n texts: { isCollectionItem: false, optionName: \"texts\" },\n totalItem: { isCollectionItem: true, optionName: \"totalItems\" }\n};\nvar DxSummaryTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:count\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n },\n props: {\n avg: String,\n avgOtherColumn: String,\n count: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n sum: String,\n sumOtherColumn: String\n }\n});\nexports.DxSummaryTexts = DxSummaryTexts;\nDxSummaryTexts.$_optionName = \"texts\";\nvar DxTexts = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:addRow\": null,\n \"update:avg\": null,\n \"update:avgOtherColumn\": null,\n \"update:cancel\": null,\n \"update:cancelAllChanges\": null,\n \"update:cancelRowChanges\": null,\n \"update:clearFilter\": null,\n \"update:confirmDeleteMessage\": null,\n \"update:confirmDeleteTitle\": null,\n \"update:count\": null,\n \"update:createFilter\": null,\n \"update:deleteRow\": null,\n \"update:editRow\": null,\n \"update:emptyValue\": null,\n \"update:exportAll\": null,\n \"update:exportSelectedRows\": null,\n \"update:exportTo\": null,\n \"update:filterEnabledHint\": null,\n \"update:fix\": null,\n \"update:groupByThisColumn\": null,\n \"update:groupContinuedMessage\": null,\n \"update:groupContinuesMessage\": null,\n \"update:leftPosition\": null,\n \"update:max\": null,\n \"update:maxOtherColumn\": null,\n \"update:min\": null,\n \"update:minOtherColumn\": null,\n \"update:ok\": null,\n \"update:rightPosition\": null,\n \"update:saveAllChanges\": null,\n \"update:saveRowChanges\": null,\n \"update:sum\": null,\n \"update:sumOtherColumn\": null,\n \"update:undeleteRow\": null,\n \"update:unfix\": null,\n \"update:ungroup\": null,\n \"update:ungroupAll\": null,\n \"update:validationCancelChanges\": null,\n },\n props: {\n addRow: String,\n avg: String,\n avgOtherColumn: String,\n cancel: String,\n cancelAllChanges: String,\n cancelRowChanges: String,\n clearFilter: String,\n confirmDeleteMessage: String,\n confirmDeleteTitle: String,\n count: String,\n createFilter: String,\n deleteRow: String,\n editRow: String,\n emptyValue: String,\n exportAll: String,\n exportSelectedRows: String,\n exportTo: String,\n filterEnabledHint: String,\n fix: String,\n groupByThisColumn: String,\n groupContinuedMessage: String,\n groupContinuesMessage: String,\n leftPosition: String,\n max: String,\n maxOtherColumn: String,\n min: String,\n minOtherColumn: String,\n ok: String,\n rightPosition: String,\n saveAllChanges: String,\n saveRowChanges: String,\n sum: String,\n sumOtherColumn: String,\n undeleteRow: String,\n unfix: String,\n ungroup: String,\n ungroupAll: String,\n validationCancelChanges: String\n }\n});\nexports.DxTexts = DxTexts;\nDxTexts.$_optionName = \"texts\";\nvar DxTo = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:left\": null,\n \"update:opacity\": null,\n \"update:position\": null,\n \"update:scale\": null,\n \"update:top\": null,\n },\n props: {\n left: Number,\n opacity: Number,\n position: Object,\n scale: Number,\n top: Number\n }\n});\nexports.DxTo = DxTo;\nDxTo.$_optionName = \"to\";\nvar DxToolbar = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:disabled\": null,\n \"update:items\": null,\n \"update:visible\": null,\n },\n props: {\n disabled: Boolean,\n items: Array,\n visible: Boolean\n }\n});\nexports.DxToolbar = DxToolbar;\nDxToolbar.$_optionName = \"toolbar\";\nDxToolbar.$_expectedChildren = {\n item: { isCollectionItem: true, optionName: \"items\" }\n};\nvar DxToolbarItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:cssClass\": null,\n \"update:disabled\": null,\n \"update:html\": null,\n \"update:locateInMenu\": null,\n \"update:location\": null,\n \"update:menuItemTemplate\": null,\n \"update:options\": null,\n \"update:showText\": null,\n \"update:template\": null,\n \"update:text\": null,\n \"update:toolbar\": null,\n \"update:visible\": null,\n \"update:widget\": null,\n },\n props: {\n cssClass: String,\n disabled: Boolean,\n html: String,\n locateInMenu: String,\n location: String,\n menuItemTemplate: {},\n options: {},\n showText: String,\n template: {},\n text: String,\n toolbar: String,\n visible: Boolean,\n widget: String\n }\n});\nexports.DxToolbarItem = DxToolbarItem;\nDxToolbarItem.$_optionName = \"toolbarItems\";\nDxToolbarItem.$_isCollectionItem = true;\nvar DxTotalItem = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:alignment\": null,\n \"update:column\": null,\n \"update:cssClass\": null,\n \"update:customizeText\": null,\n \"update:displayFormat\": null,\n \"update:name\": null,\n \"update:showInColumn\": null,\n \"update:skipEmptyValues\": null,\n \"update:summaryType\": null,\n \"update:valueFormat\": null,\n },\n props: {\n alignment: String,\n column: String,\n cssClass: String,\n customizeText: Function,\n displayFormat: String,\n name: String,\n showInColumn: String,\n skipEmptyValues: Boolean,\n summaryType: String,\n valueFormat: [Object, Function, String]\n }\n});\nexports.DxTotalItem = DxTotalItem;\nDxTotalItem.$_optionName = \"totalItems\";\nDxTotalItem.$_isCollectionItem = true;\nDxTotalItem.$_expectedChildren = {\n valueFormat: { isCollectionItem: false, optionName: \"valueFormat\" }\n};\nvar DxValidationRule = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:comparisonTarget\": null,\n \"update:comparisonType\": null,\n \"update:ignoreEmptyValue\": null,\n \"update:max\": null,\n \"update:message\": null,\n \"update:min\": null,\n \"update:pattern\": null,\n \"update:reevaluate\": null,\n \"update:trim\": null,\n \"update:type\": null,\n \"update:validationCallback\": null,\n },\n props: {\n comparisonTarget: Function,\n comparisonType: String,\n ignoreEmptyValue: Boolean,\n max: {},\n message: String,\n min: {},\n pattern: {},\n reevaluate: Boolean,\n trim: Boolean,\n type: String,\n validationCallback: Function\n }\n});\nexports.DxValidationRule = DxValidationRule;\nDxValidationRule.$_optionName = \"validationRules\";\nDxValidationRule.$_isCollectionItem = true;\nDxValidationRule.$_predefinedProps = {\n type: \"required\"\n};\nvar DxValueFormat = (0, index_2.createConfigurationComponent)({\n emits: {\n \"update:isActive\": null,\n \"update:hoveredElement\": null,\n \"update:currency\": null,\n \"update:formatter\": null,\n \"update:parser\": null,\n \"update:precision\": null,\n \"update:type\": null,\n \"update:useCurrencyAccountingStyle\": null,\n },\n props: {\n currency: String,\n formatter: Function,\n parser: Function,\n precision: Number,\n type: String,\n useCurrencyAccountingStyle: Boolean\n }\n});\nexports.DxValueFormat = DxValueFormat;\nDxValueFormat.$_optionName = \"valueFormat\";\nexports.default = DxDataGrid;\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\nexport function saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors, element) {\r\n var root = (null === element || void 0 === element ? void 0 : element.getRootNode()) || domAdapter.getDocument();\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(root).find(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element, preventScroll) {\r\n isHiddenFocusing = true;\r\n element.focus({\r\n preventScroll: preventScroll\r\n });\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors, event.target);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_accessibility.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_state_mixin/m_column_state_mixin.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState(options) {\r\n var _a;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_a = this.component) || void 0 === _a ? void 0 : _a.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"
\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: $cell => $cell && $cell.find(\".\".concat(COLUMN_INDICATORS_CLASS)),\r\n _getIndicatorElements($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/m_modules.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Class from \"../../../core/class\";\r\nimport $ from \"../../../core/renderer\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../../core/utils/window\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = Class.inherit({\r\n _endUpdateCore() {},\r\n ctor(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true;\r\n flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n },\r\n init() {},\r\n callbackNames() {},\r\n callbackFlags() {},\r\n publicMethods() {},\r\n beginUpdate() {\r\n this._updateLockCount++\r\n },\r\n endUpdate() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option(name) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption(name, value) {\r\n var {\r\n component: component\r\n } = this;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n }\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config;\r\n return\r\n },\r\n executeAction(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\".concat(componentName.slice(2).toLowerCase()).concat(className ? \"-\".concat(className) : \"\")\r\n },\r\n getWidgetContainerClass() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n elementIsInsideGrid($element) {\r\n var $gridElement = $element.closest(\".\".concat(this.getWidgetContainerClass())).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n getViews() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore() {},\r\n _resizeCore() {},\r\n _parentElement() {\r\n return this._$parent\r\n },\r\n ctor(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element() {\r\n return this._$element\r\n },\r\n getElementHeight() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var {\r\n offsetHeight: offsetHeight\r\n } = $element.get(0);\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: () => true,\r\n getTemplate(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"
\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n var deferred = this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n if (deferred) {\r\n deferred.done(() => {\r\n this.renderCompleted.fire(options)\r\n })\r\n } else {\r\n this.renderCompleted.fire(options)\r\n }\r\n }\r\n },\r\n resize() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\n\r\nfunction getExtendedTypes(types) {\r\n var moduleExtenders = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var extendTypes = {};\r\n Object.entries(moduleExtenders).forEach(_ref => {\r\n var [name, extender] = _ref;\r\n var currentType = types[name];\r\n if (currentType) {\r\n if (isFunction(extender)) {\r\n extendTypes[name] = extender(currentType)\r\n } else {\r\n var classType = currentType;\r\n extendTypes[name] = classType.inherit(extender)\r\n }\r\n }\r\n });\r\n return extendTypes\r\n}\r\n\r\nfunction registerPublicMethods(componentInstance, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (_, methodName) => {\r\n if (moduleItem[methodName]) {\r\n if (!componentInstance[methodName]) {\r\n componentInstance[methodName] = function() {\r\n return moduleItem[methodName](...arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n })\r\n }\r\n}\r\nexport function processModules(componentInstance, componentClass) {\r\n var {\r\n modules: modules\r\n } = componentClass;\r\n var {\r\n modulesOrder: modulesOrder\r\n } = componentClass;\r\n\r\n function createModuleItems(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (name, moduleType) => {\r\n var moduleItem = new moduleType(componentInstance);\r\n moduleItem.name = name;\r\n registerPublicMethods(componentInstance, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n });\r\n return moduleItems\r\n }\r\n if (modulesOrder) {\r\n modules.sort((module1, module2) => {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n })\r\n }\r\n var rootControllerTypes = {};\r\n var rootViewTypes = {};\r\n modules.forEach(_ref2 => {\r\n var {\r\n name: moduleName,\r\n controllers: controllers = {},\r\n views: views = {}\r\n } = _ref2;\r\n Object.entries(controllers).forEach(_ref3 => {\r\n var [name, type] = _ref3;\r\n var _a;\r\n if (rootControllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, Controller))) {\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n rootControllerTypes[name] = type\r\n });\r\n Object.entries(views).forEach(_ref4 => {\r\n var [name, type] = _ref4;\r\n var _a;\r\n if (rootViewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(null === (_a = null === type || void 0 === type ? void 0 : type.subclassOf) || void 0 === _a ? void 0 : _a.call(type, View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n rootViewTypes[name] = type\r\n })\r\n });\r\n var moduleExtenders = modules.filter(_ref5 => {\r\n var {\r\n extenders: extenders\r\n } = _ref5;\r\n return !!extenders\r\n });\r\n var controllerTypes = moduleExtenders.reduce((types, _ref6) => {\r\n var {\r\n extenders: extenders\r\n } = _ref6;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.controllers))\r\n }, rootControllerTypes);\r\n var viewTypes = moduleExtenders.reduce((types, _ref7) => {\r\n var {\r\n extenders: extenders\r\n } = _ref7;\r\n return _extends(_extends({}, types), getExtendedTypes(types, null === extenders || void 0 === extenders ? void 0 : extenders.views))\r\n }, rootViewTypes);\r\n componentInstance._controllers = createModuleItems(controllerTypes);\r\n componentInstance._views = createModuleItems(viewTypes)\r\n}\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule(name, module) {\r\n var {\r\n modules: modules\r\n } = this;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module)\r\n },\r\n registerModulesOrder(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule(name) {\r\n this.modules = grep(this.modules, module => module.name !== name)\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_columns_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport {\r\n data as elementData\r\n} from \"../../../../core/element_data\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport * as iteratorUtils from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n setWidth\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isRenderer,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../../../events/double_click\";\r\nimport pointerEvents from \"../../../../events/pointer\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport columnStateMixin from \"../../../grids/grid_core/column_state_mixin/m_column_state_mixin\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout(() => {\r\n touchTarget = touchCurrentTarget = null\r\n }, timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", e => {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n });\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n }))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? \"\".concat(width, \"px\") : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nvar removeHandler = function(templateDeferred) {\r\n templateDeferred.resolve()\r\n};\r\nexport var normalizeWidth = width => {\r\n if (\"number\" === typeof width) {\r\n return \"\".concat(width.toFixed(3), \"px\")\r\n }\r\n if (\"adaptiveHidden\" === width) {\r\n return HIDDEN_COLUMNS_WIDTH\r\n }\r\n return width\r\n};\r\nvar viewWithColumnStateMixin = modules.View.inherit(columnStateMixin);\r\nexport class ColumnsView extends viewWithColumnStateMixin {\r\n setTableRole($tableElement) {}\r\n _createScrollableOptions() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n }\r\n _updateCell($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n }\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (Array.isArray(column.elementAttr)) {\r\n column.elementAttr.forEach(_ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n $cell.attr(name, value)\r\n })\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n }\r\n _createRow(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n }\r\n _isAltRow(row) {\r\n return row && row.dataIndex % 2 === 1\r\n }\r\n _createTable(columns, isAppend) {\r\n var $table = $(\"\").addClass(this.addWidgetPrefix(TABLE_CLASS)).addClass(this.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(this._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"\").append(\"\"))\r\n }\r\n this.setTableRole($table)\r\n } else {\r\n this.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", e => {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n if (this.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction(args => {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n }))\r\n }\r\n var getOptions = event => {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\".concat(FORM_FIELD_ITEM_CONTENT_CLASS));\r\n var $row = $cell.parent();\r\n var rowOptions = $row.data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = this.getRowIndex($row);\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = this._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellHoverChanged\", options)\r\n });\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellClick\", options)\r\n });\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", e => {\r\n var options = getOptions(e);\r\n options && this.executeAction(\"onCellDblClick\", options)\r\n });\r\n subscribeToRowEvents(this, $table);\r\n return $table\r\n }\r\n _rowPointerDown() {}\r\n _rowClick() {}\r\n _rowDblClick() {}\r\n _createColGroup(columns) {\r\n var colgroupElement = $(\"\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n }\r\n _createCol(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"\");\r\n setWidth(col, width);\r\n return col\r\n }\r\n renderDelayedTemplates(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n }\r\n _renderDelayedTemplatesCoreAsync(templates) {\r\n if (templates.length) {\r\n var templateTimeout = getWindow().setTimeout(() => {\r\n this._templateTimeouts.delete(templateTimeout);\r\n this._renderDelayedTemplatesCore(templates, true)\r\n });\r\n this._templateTimeouts.add(templateTimeout)\r\n }\r\n }\r\n _renderDelayedTemplatesCore(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var {\r\n options: options\r\n } = templateParameters;\r\n var doc = domAdapter.getRootNode($(options.container).get(0));\r\n var needWaitAsyncTemplates = this.needWaitAsyncTemplates();\r\n if (!isAsync || $(options.container).closest(doc).length || needWaitAsyncTemplates) {\r\n if (change) {\r\n options.change = change\r\n }\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n }\r\n _processTemplate(template, options) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n }\r\n renderTemplate(container, template, options, allowRenderToDetachedContainer, change) {\r\n var _a;\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var {\r\n column: column\r\n } = options;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n if (this.isDisposed()) {\r\n templateDeferred.reject()\r\n } else {\r\n templateDeferred.resolve()\r\n }\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var columnAsync = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n var async = null !== (_a = options.renderAsync) && void 0 !== _a ? _a : columnAsync;\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n this._templateDeferreds.add(templateDeferred);\r\n eventsEngine.on(container, removeEvent, removeHandler.bind(null, templateDeferred))\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise().always(() => {\r\n this._templateDeferreds.delete(templateDeferred)\r\n })\r\n }\r\n _getBodies(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n }\r\n _needWrapRow($tableElement) {\r\n var _a;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null === (_a = this._getBodies($tableElement)) || void 0 === _a ? void 0 : _a.filter(\".\".concat(ROW_CLASS)).length)\r\n }\r\n _wrapRowIfNeed($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n }\r\n _appendRow($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n }\r\n _resizeCore() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n _renderCore(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n }\r\n _renderTable(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n }\r\n _renderRows($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n }\r\n _renderRow($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n }\r\n _needRenderCell(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n }\r\n _renderCells($row, options) {\r\n var columnIndex = 0;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n columns: columns\r\n } = options;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n }\r\n _updateCells($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((columnIndex, index) => {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n });\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n }\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n }\r\n _renderCell($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n }\r\n _renderCellContent($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n }\r\n _getCellTemplate(options) {}\r\n _getRows(change) {\r\n return []\r\n }\r\n _getCellOptions(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n }\r\n _addWatchMethod(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row, keepRow) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach(watcher => {\r\n watcher(row)\r\n })\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n }\r\n _cellPrepared(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n }\r\n _rowPrepared($row, options, row) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = visibleColumns.map(column => column.visibleWidth || column.width);\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n getCellIndex($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n }\r\n getTableElements() {\r\n return this._tableElement || $()\r\n }\r\n getTableElement(isFixedTableRendering) {\r\n return this._tableElement\r\n }\r\n setTableElement(tableElement, isFixedTableRendering) {\r\n this._tableElement = tableElement\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n case \"keyboardNavigation\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n }\r\n init() {\r\n this._scrollLeft = -1;\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._delayedTemplates = [];\r\n this._templateDeferreds = new Set;\r\n this._templatesCache = {};\r\n this._templateTimeouts = new Set;\r\n this.createAction(\"onCellClick\");\r\n this.createAction(\"onRowClick\");\r\n this.createAction(\"onCellDblClick\");\r\n this.createAction(\"onRowDblClick\");\r\n this.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: e => {\r\n this._afterRowPrepared(e)\r\n }\r\n });\r\n this._columnsController.columnsChanged.add(this._columnOptionChanged.bind(this));\r\n this._dataController && this._dataController.changed.add(this._handleDataChanged.bind(this))\r\n }\r\n _afterRowPrepared(e) {}\r\n _handleDataChanged() {}\r\n callbackNames() {\r\n return [\"scrollChanged\"]\r\n }\r\n _updateScrollLeftPosition() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n }\r\n scrollTo(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\".concat(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS))).not(\".\".concat(this.addWidgetPrefix(CONTENT_FIXED_CLASS)));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n }\r\n _getContent(isFixedTableRendering) {\r\n var _a;\r\n return null === (_a = this._tableElement) || void 0 === _a ? void 0 : _a.parent()\r\n }\r\n _removeContent(isFixedTableRendering) {\r\n var $scrollContainer = this._getContent(isFixedTableRendering);\r\n if (null === $scrollContainer || void 0 === $scrollContainer ? void 0 : $scrollContainer.length) {\r\n $scrollContainer.remove()\r\n }\r\n }\r\n _wrapTableInScrollContainer($table, isFixedTableRendering) {\r\n var $scrollContainer = $(\"
\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n }\r\n needWaitAsyncTemplates() {\r\n return this.option(\"templatesRenderAsynchronously\") && false === this.option(\"renderAsync\")\r\n }\r\n waitAsyncTemplates() {\r\n var forceWaiting = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var result = new Deferred;\r\n var needWaitAsyncTemplates = forceWaiting || this.needWaitAsyncTemplates();\r\n if (!needWaitAsyncTemplates) {\r\n return result.resolve()\r\n }\r\n var waitTemplatesRecursion = () => when.apply(this, Array.from(this._templateDeferreds)).done(() => {\r\n if (this.isDisposed()) {\r\n result.reject()\r\n } else if (this._templateDeferreds.size > 0) {\r\n waitTemplatesRecursion()\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n waitTemplatesRecursion();\r\n return result.promise()\r\n }\r\n _updateContent($newTableElement, change, isFixedTableRendering) {\r\n return this.waitAsyncTemplates().done(() => {\r\n this._removeContent(isFixedTableRendering);\r\n this.setTableElement($newTableElement, isFixedTableRendering);\r\n this._wrapTableInScrollContainer($newTableElement, isFixedTableRendering)\r\n })\r\n }\r\n _findContentElement() {}\r\n _getWidths($cellElements) {\r\n if (!$cellElements) {\r\n return []\r\n }\r\n var result = [];\r\n var cellElements = $cellElements.toArray();\r\n cellElements.forEach(cell => {\r\n var width = cell.offsetWidth;\r\n if (cell.getBoundingClientRect) {\r\n var rect = getBoundingRect(cell);\r\n if (rect.width > cell.offsetWidth - 1) {\r\n width = rect.width\r\n }\r\n }\r\n result.push(width)\r\n });\r\n return result\r\n }\r\n getColumnWidths($tableElement) {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = null !== $tableElement && void 0 !== $tableElement ? $tableElement : this.getTableElement();\r\n if ($tableElement) {\r\n var $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isErrorRow = $row.hasClass(ERROR_ROW_CLASS);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n var isRelevantRow = !isGroupRow && !isDetailRow && !isErrorRow;\r\n if (isRowVisible && isRelevantRow) {\r\n var $cells = $row.children(\"td\");\r\n var result = this._getWidths($cells);\r\n return result\r\n }\r\n }\r\n }\r\n return []\r\n }\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n return columnIndex\r\n }\r\n setColumnWidths(_ref2) {\r\n var {\r\n widths: widths,\r\n optionNames: optionNames\r\n } = _ref2;\r\n var $tableElement = this.getTableElement();\r\n if (!(null === $tableElement || void 0 === $tableElement ? void 0 : $tableElement.length) || !widths) {\r\n return\r\n }\r\n var columns = this.getColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n $cols.toArray().forEach(col => col.removeAttribute(\"style\"));\r\n columns.forEach((column, columnIndex) => {\r\n if (columnAutoWidth && column.width && !column.command) {\r\n var width = getWidthStyle(column.visibleWidth || column.width);\r\n var minWidth = getWidthStyle(column.minWidth || width);\r\n var $rows = $tableElement.children().children(\".dx-row\").not(\".\".concat(DETAIL_ROW_CLASS));\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var $row = $rows.eq(rowIndex);\r\n var visibleIndex = this.getVisibleColumnIndex(columnIndex, rowIndex);\r\n var $cell = $row.hasClass(GROUP_ROW_CLASS) ? $row.find(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\")) : $row.find(\"td\").eq(visibleIndex);\r\n var cell = $cell.get(0);\r\n if (cell) {\r\n setCellWidth(cell, column, width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n var colWidth = normalizeWidth(widths[columnIndex]);\r\n if (isDefined(colWidth)) {\r\n setWidth($cols.eq(columnIndex), colWidth)\r\n }\r\n })\r\n }\r\n getCellElements(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n }\r\n _getCellElement(rowIndex, columnIdentifier) {\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if (!(null === $cells || void 0 === $cells ? void 0 : $cells.length) || columnVisibleIndex < 0) {\r\n return\r\n }\r\n var $cell = $cells.eq(columnVisibleIndex);\r\n return $cell.length > 0 ? $cell : void 0\r\n }\r\n _getRowElement(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (_, tableElement) => {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n });\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n return\r\n }\r\n getCellElement(rowIndex, columnIdentifier) {\r\n var $cell = this._getCellElement(rowIndex, columnIdentifier);\r\n if ($cell) {\r\n return getPublicElement($cell)\r\n }\r\n return\r\n }\r\n getRowElement(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n }\r\n _getVisibleColumnIndex($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n }\r\n getColumnElements() {}\r\n getColumns(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n }\r\n getCell(cellPosition, rows, cells) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = cells || this.getCellElements(cellPosition.rowIndex);\r\n if ((null === $cells || void 0 === $cells ? void 0 : $cells.length) > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n }\r\n getRowsCount() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n }\r\n _getRowElementsCore(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\".concat(ROW_CLASS));\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > \" + \".\".concat(ROW_CLASS, \", > .\").concat(ROW_CLASS))\r\n }\r\n return $()\r\n }\r\n _getRowElements(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n }\r\n getRowIndex($row) {\r\n return this._getRowElements().index($row)\r\n }\r\n getBoundingRect() {}\r\n getName() {}\r\n setScrollerSpacing(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n isScrollbarVisible(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n isDisposed() {\r\n var _a;\r\n return null === (_a = this.component) || void 0 === _a ? void 0 : _a._disposed\r\n }\r\n dispose() {\r\n var _a, _b;\r\n if (hasWindow()) {\r\n var window = getWindow();\r\n null === (_a = this._templateTimeouts) || void 0 === _a ? void 0 : _a.forEach(templateTimeout => window.clearTimeout(templateTimeout));\r\n null === (_b = this._templateTimeouts) || void 0 === _b ? void 0 : _b.clear()\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/column_headers/m_column_headers.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getHeight\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../m_accessibility\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nvar LINK = \"dx-link\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: () => ({\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }),\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"
\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\".concat(that.addWidgetPrefix(CELL_CONTENT_CLASS)));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\".concat(that._getIndicatorClassName(\"headerFilter\"))).length)\r\n }\r\n var members = {\r\n _createTable() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var {\r\n caption: caption\r\n } = column;\r\n var needCellContent = !column.command || caption && \"expand\" !== column.command;\r\n if (\"empty\" === column.command) {\r\n that._renderEmptyMessage($container, options)\r\n } else if (needCellContent) {\r\n var $content = createCellContent(that, $container, options);\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _renderEmptyMessage($container, options) {\r\n var textEmpty = this._getEmptyHeaderText();\r\n if (!textEmpty) {\r\n $container.html(\" \");\r\n return\r\n }\r\n var $cellContent = createCellContent(this, $container, options);\r\n var needSplit = textEmpty.includes(\"{0}\");\r\n if (needSplit) {\r\n var [leftPart, rightPart] = textEmpty.split(\"{0}\");\r\n var columnChooserTitle = messageLocalization.format(\"dxDataGrid-emptyHeaderColumnChooserText\");\r\n var columnChooserView = this.component.getView(\"columnChooserView\");\r\n var $link = $(\"\").text(columnChooserTitle).addClass(LINK);\r\n eventsEngine.on($link, \"click\", this.createAction(() => columnChooserView.showColumnChooser()));\r\n $cellContent.append(domAdapter.createTextNode(leftPart)).append($link).append(domAdapter.createTextNode(rightPart))\r\n } else {\r\n $cellContent.text(textEmpty)\r\n }\r\n },\r\n _getEmptyHeaderText() {\r\n var hasHiddenColumns = !!this.component.getView(\"columnChooserView\").hasHiddenColumns();\r\n var hasGroupedColumns = !!this.component.getView(\"headerPanel\").hasGroupedColumns();\r\n switch (true) {\r\n case hasHiddenColumns && hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserAndGroupPanelText\");\r\n case hasGroupedColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithGroupPanelText\");\r\n case hasHiddenColumns:\r\n return messageLocalization.format(\"dxDataGrid-emptyHeaderWithColumnChooserText\");\r\n default:\r\n return \"\"\r\n }\r\n },\r\n _getHeaderTemplate(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var {\r\n column: column\r\n } = options;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n if (!cellOptions.column.type) {\r\n this.setAria(\"role\", \"columnheader\", $cell)\r\n }\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", \"\".concat(messageLocalization.format(\"dxDataGrid-ariaColumn\"), \" \").concat(cellOptions.column.caption), $cell)\r\n }\r\n }\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n $row.toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown(args) {\r\n var {\r\n event: event\r\n } = args;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore() {\r\n var $container = this.element();\r\n var change = {};\r\n if (this._tableElement && !this._dataController.isLoaded() && !this._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(this.addWidgetPrefix(HEADERS_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\")).empty();\r\n this.setAria(\"role\", \"presentation\", $container);\r\n var deferred = this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n if (this.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n this.callBase.apply(this, arguments);\r\n return deferred\r\n },\r\n _renderRows() {\r\n if (this._dataController.isLoaded() || this._hasRowElements) {\r\n this.callBase.apply(this, arguments);\r\n this._hasRowElements = true\r\n }\r\n },\r\n _renderRow($table, options) {\r\n var rowIndex = 1 === this.getRowCount() ? null : options.row.rowIndex;\r\n options.columns = this.getColumns(rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: elementOptions => elementOptions && elementOptions.visible,\r\n _alignCaptionByCenter($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\".concat(VISIBILITY_HIDDEN_CLASS)).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\".concat(this.addWidgetPrefix(CELL_CONTENT_CLASS))))\r\n }\r\n },\r\n _updateCell($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\".concat(VISIBILITY_HIDDEN_CLASS, \")\"))\r\n },\r\n _isSortableElement: () => true,\r\n getHeadersRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\".concat(HEADER_ROW_CLASS));\r\n return $headerRows && $headerRows.toArray().reduce((sum, headerRow) => sum + getHeight(headerRow), 0) || 0\r\n },\r\n getHeaderElement(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (_, column) => {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n });\r\n return $(result)\r\n }\r\n if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var {\r\n rowIndex: rowIndex\r\n } = $row[0];\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging(column) {\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(rowIndex);\r\n var isReorderingEnabled = this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\");\r\n return isReorderingEnabled && column.allowReordering && columns.length > 1\r\n },\r\n getBoundingRect() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: () => \"headers\",\r\n getColumnCount() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems(options) {\r\n var that = this;\r\n var {\r\n column: column\r\n } = options;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n })\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return\r\n },\r\n getRowCount() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity(columnIndex, value, rowIndex) {\r\n var i;\r\n var columnElements;\r\n var rowCount = this.getRowCount();\r\n var columns = this._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = (column, index) => {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n this.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = this.getCellElements(i);\r\n if (columnElements) {\r\n var rowColumns = this.getColumns(i);\r\n rowColumns.forEach(setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_core.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport modules from \"../../grids/grid_core/m_modules\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nexport default _extends(_extends(_extends({}, modules), gridCoreUtils), {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/column_headers.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n columnHeadersModule\r\n} from \"../../../grids/grid_core/column_headers/m_column_headers\";\r\nimport gridCore from \"../m_core\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/const.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nexport var USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nexport var IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nexport var COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nexport var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nexport var GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nexport var DETAIL_COMMAND_COLUMN_NAME = \"detailExpand\";\r\nexport var COLUMN_OPTION_REGEXP = /columns\\[(\\d+)\\]\\.?/gi;\r\nexport var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n};\r\nexport var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n};\r\nexport var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n};\r\nexport var GROUP_LOCATION = \"group\";\r\nexport var COLUMN_CHOOSER_LOCATION = \"columnChooser\";\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller_utils.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n normalizeIndexes\r\n} from \"../../../../core/utils/array\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../../../core/utils/data\";\r\nimport dateSerialization from \"../../../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isString,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport numberLocalization from \"../../../../localization/number\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_INDEX_OPTIONS,\r\n DEFAULT_COLUMN_OPTIONS,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n IGNORE_COLUMN_OPTION_NAMES,\r\n USER_STATE_FIELD_NAMES,\r\n USER_STATE_FIELD_NAMES_15_1\r\n} from \"./const\";\r\nexport var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n};\r\nvar globalColumnId = 1;\r\nexport var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n};\r\nexport var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (index, columnOptions) => {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n })\r\n }\r\n return result\r\n};\r\nexport var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n};\r\nexport var getChildrenByBandColumn = function getChildrenByBandColumn(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnByIndexes = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n};\r\nexport var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n};\r\nexport var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (_, column) => {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n });\r\n return colspan\r\n};\r\nexport var processBandColumns = function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n};\r\nexport var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n};\r\nexport var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n};\r\nexport var getAlignmentByDataType = function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n};\r\nexport var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n }\r\n if (false === e.value) {\r\n return this.falseText || \"false\"\r\n }\r\n return e.valueText || \"\"\r\n};\r\nexport var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n};\r\nexport var createColumnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n};\r\nexport var updateColumnIndexes = function(that) {\r\n each(that._columns, (index, column) => {\r\n column.index = index\r\n });\r\n each(that._columns, (index, column) => {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n });\r\n each(that._commandColumns, (index, column) => {\r\n column.index = -(index + 1)\r\n })\r\n};\r\nexport var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, column => {\r\n var {\r\n grouped: grouped\r\n } = column;\r\n delete column.grouped;\r\n return grouped\r\n })\r\n};\r\nexport var updateColumnSortIndexes = function(that, currentColumn) {\r\n each(that._columns, (index, column) => {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n });\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, column => !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder))\r\n};\r\nexport var updateColumnVisibleIndexes = function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n};\r\nexport var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = location === GROUP_LOCATION ? that.getGroupColumns() : location === COLUMN_CHOOSER_LOCATION ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n};\r\nexport var moveColumnToGroup = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n};\r\n\r\nfunction checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n}\r\nexport var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n};\r\nexport var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n updateColumnSortIndexes(that, column);\r\n resetBandColumnsCache(that);\r\n updateColumnVisibleIndexes(that, column)\r\n};\r\nexport var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n};\r\nexport function assignColumns(that, columns) {\r\n that._previousColumns = that._columns;\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n}\r\nexport var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var _a;\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var {\r\n changeTypes: changeTypes\r\n } = columnChanges;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var {\r\n optionNames: optionNames\r\n } = columnChanges;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n if (isDefined(columnIndex)) {\r\n null !== (_a = columnChanges.columnIndices) && void 0 !== _a ? _a : columnChanges.columnIndices = [];\r\n if (isDefined(columnChanges.columnIndex)) {\r\n columnChanges.columnIndices.push(columnChanges.columnIndex)\r\n }\r\n columnChanges.columnIndices.push(columnIndex)\r\n }\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n};\r\nexport var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that._reinitAfterLookupChanges = null === columnChanges || void 0 === columnChanges ? void 0 : columnChanges.optionNames.lookup;\r\n that.reinit();\r\n that._reinitAfterLookupChanges = void 0\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n};\r\nexport var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n};\r\nexport var fireOptionChanged = function(that, options) {\r\n var {\r\n value: value\r\n } = options;\r\n var {\r\n optionName: optionName\r\n } = options;\r\n var {\r\n prevValue: prevValue\r\n } = options;\r\n var {\r\n fullOptionName: fullOptionName\r\n } = options;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n};\r\nexport var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (!equalByValue(prevValue, value, {\r\n maxDepth: 5\r\n })) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n};\r\nexport function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n}\r\nexport var addExpandColumn = function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n};\r\nexport var defaultSetCellValue = function(data, value) {\r\n if (!this.dataField) {\r\n return\r\n }\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n};\r\nexport var getDataColumns = function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (_, column) => {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n });\r\n return result\r\n};\r\nexport var getRowCount = function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var {\r\n columnParentByIndex: columnParentByIndex\r\n } = bandColumnsCache;\r\n that._columns.forEach(column => {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter(column => !column.visible);\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n });\r\n return rowCount\r\n};\r\nexport var isCustomCommandColumn = (that, commandColumn) => {\r\n var customCommandColumns = that._columns.filter(column => column.type === commandColumn.type);\r\n return !!customCommandColumns.length\r\n};\r\nexport var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n};\r\nexport var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, expandColumn => extend({}, expandColumn, {\r\n rowspan: rowspan\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n};\r\nexport var digitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n};\r\nexport var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\".concat(str)\r\n }\r\n return str\r\n};\r\nexport var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n};\r\nexport var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\nexport var convertOwnerBandToColumnReference = columns => {\r\n columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n })\r\n};\r\nexport var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n};\r\nexport var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\".concat(column[identifierOptionName]) === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n};\r\nexport var sortColumns = (columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((column1, column2) => {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n });\r\n return columns\r\n};\r\nexport var strictParseNumber = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/columns_controller/m_columns_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport config from \"../../../../core/config\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n orderEach\r\n} from \"../../../../core/utils/object\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isNumeric,\r\n isObject,\r\n isPlainObject,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport variableWrapper from \"../../../../core/utils/variable_wrapper\";\r\nimport Store from \"../../../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../../../data/data_source/utils\";\r\nimport dateLocalization from \"../../../../localization/date\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport filterUtils from \"../../../../ui/shared/filtering\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n COLUMN_CHOOSER_LOCATION,\r\n COLUMN_OPTION_REGEXP,\r\n COMMAND_EXPAND_CLASS,\r\n DATATYPE_OPERATIONS,\r\n DETAIL_COMMAND_COLUMN_NAME,\r\n GROUP_COMMAND_COLUMN_NAME,\r\n GROUP_LOCATION,\r\n MAX_SAFE_INTEGER,\r\n USER_STATE_FIELD_NAMES\r\n} from \"./const\";\r\nimport {\r\n addExpandColumn,\r\n applyUserState,\r\n assignColumns,\r\n columnOptionCore,\r\n convertOwnerBandToColumnReference,\r\n createColumn,\r\n createColumnsFromDataSource,\r\n createColumnsFromOptions,\r\n defaultSetCellValue,\r\n digitsCount,\r\n findColumn,\r\n fireColumnsChanged,\r\n getAlignmentByDataType,\r\n getChildrenByBandColumn,\r\n getColumnByIndexes,\r\n getColumnIndexByVisibleIndex,\r\n getCustomizeTextByDataType,\r\n getDataColumns,\r\n getFixedPosition,\r\n getParentBandColumns,\r\n getRowCount,\r\n getSerializationFormat,\r\n getValueDataType,\r\n isColumnFixed,\r\n isCustomCommandColumn,\r\n isSortOrderValid,\r\n mergeColumns,\r\n moveColumnToGroup,\r\n numberToString,\r\n processBandColumns,\r\n processExpandColumns,\r\n resetBandColumnsCache,\r\n resetColumnsCache,\r\n setFilterOperationsAsDefaultValues,\r\n sortColumns,\r\n strictParseNumber,\r\n updateColumnChanges,\r\n updateColumnGroupIndexes,\r\n updateIndexes,\r\n updateSerializers\r\n} from \"./m_columns_controller_utils\";\r\nexport class ColumnsController extends modules.Controller {\r\n _getExpandColumnOptions() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n }\r\n _getFirstItems(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n }\r\n _endUpdateCore() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n }\r\n init(isApplyingUserState) {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }\r\n addExpandColumn(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n }\r\n callbackNames() {\r\n return [\"columnsChanged\"]\r\n }\r\n getColumnByPath(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(COLUMN_OPTION_REGEXP, (_, columnIndex) => {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n });\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((column, index) => column && column.columns && column.columns[index], {\r\n columns: columns\r\n })\r\n } else {\r\n column = getColumnByIndexes(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n }\r\n optionChanged(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n _columnOptionChanged(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(COLUMN_OPTION_REGEXP, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n }\r\n _updateRequireResize(args) {\r\n var {\r\n component: component\r\n } = this;\r\n if (\"width\" === args.fullName.replace(COLUMN_OPTION_REGEXP, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n }\r\n applyDataSource(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = createColumnsFromDataSource(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n }\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n }\r\n reset() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n }\r\n resetColumnsCache() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n }\r\n reinit(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n }\r\n isInitialized() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n }\r\n isDataSourceApplied() {\r\n return this._dataSourceApplied\r\n }\r\n getCommonSettings(column) {\r\n var _a, _b;\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = null !== (_a = this.option(\"grouping\")) && void 0 !== _a ? _a : {};\r\n var groupPanelOptions = null !== (_b = this.option(\"groupPanel\")) && void 0 !== _b ? _b : {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n }\r\n isColumnOptionUsed(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n }\r\n isAllDataTypesDefined(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n getColumns() {\r\n return this._columns\r\n }\r\n isBandColumnsUsed() {\r\n return this.getColumns().some(column => column.isBand)\r\n }\r\n getGroupColumns() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n }\r\n _shouldReturnVisibleColumns() {\r\n return true\r\n }\r\n _compileVisibleColumns(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n }\r\n getVisibleColumns(rowIndex, isBase) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n }\r\n getFixedColumns(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n }\r\n getFilteringColumns() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n }\r\n getColumnIndexOffset() {\r\n return 0\r\n }\r\n _getFixedColumnsCore() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n }\r\n _isColumnFixing() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (_, column) => {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n });\r\n return isColumnFixing\r\n }\r\n _getExpandColumnsCore() {\r\n return this.getGroupColumns()\r\n }\r\n getExpandColumns() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n }\r\n getBandColumnsCache() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach(column => {\r\n var {\r\n ownerBand: ownerBand\r\n } = column;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n });\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n }\r\n _isColumnVisible(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n }\r\n _isColumnInGroupPanel(column) {\r\n return isDefined(column.groupIndex) && !column.showWhenGrouped\r\n }\r\n hasVisibleDataColumns() {\r\n var columns = this._columns;\r\n return columns.some(column => {\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n var isCommand = !!column.command;\r\n return isVisible && !isInGroupPanel && !isCommand\r\n })\r\n }\r\n _compileVisibleColumnsCore() {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var columns = mergeColumns(this, this._columns, this._commandColumns, true);\r\n processBandColumns(this, columns, bandColumnsCache);\r\n var indexedColumns = this._getIndexedColumns(columns);\r\n var visibleColumns = this._getVisibleColumnsFromIndexed(indexedColumns);\r\n var isDataColumnsInvisible = !this.hasVisibleDataColumns();\r\n if (isDataColumnsInvisible && this._columns.length) {\r\n visibleColumns[visibleColumns.length - 1].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return visibleColumns\r\n }\r\n _getIndexedColumns(columns) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var rowCount = this.getRowCount();\r\n var columnDigitsCount = digitsCount(columns.length);\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n for (var i = 0; i < rowCount; i += 1) {\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n columns.forEach(column => {\r\n var _a, _b, _c, _d;\r\n var {\r\n visibleIndex: visibleIndex\r\n } = column;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex);\r\n var isVisible = this._isColumnVisible(column);\r\n var isInGroupPanel = this._isColumnInGroupPanel(column);\r\n if (isVisible && !isInGroupPanel) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n column.fixed = null !== (_b = null === (_a = parentBandColumns[0]) || void 0 === _a ? void 0 : _a.fixed) && void 0 !== _b ? _b : column.fixed;\r\n column.fixedPosition = null !== (_d = null === (_c = parentBandColumns[0]) || void 0 === _c ? void 0 : _c.fixedPosition) && void 0 !== _d ? _d : column.fixedPosition;\r\n if (column.fixed) {\r\n var isDefaultCommandColumn = !!column.command && !isCustomCommandColumn(this, column);\r\n var isFixedToEnd = \"right\" === column.fixedPosition;\r\n if (rtlEnabled && !isDefaultCommandColumn) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n indexedColumns = isFixedToEnd ? positiveIndexedColumns[rowIndex][2] : positiveIndexedColumns[rowIndex][0]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (var _i = parentBandColumns.length - 1; _i >= 0; _i -= 1) {\r\n visibleIndex = numberToString(parentBandColumns[_i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(column)\r\n }\r\n });\r\n return {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n }\r\n }\r\n _getVisibleColumnsFromIndexed(_ref) {\r\n var _this = this;\r\n var {\r\n positiveIndexedColumns: positiveIndexedColumns,\r\n negativeIndexedColumns: negativeIndexedColumns\r\n } = _ref;\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var expandColumns = mergeColumns(this, this.getExpandColumns(), this._columns);\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var _loop = function(rowIndex) {\r\n result.push([]);\r\n orderEach(negativeIndexedColumns[rowIndex], (_, columns) => {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n });\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n var positiveIndexedRowColumns = positiveIndexedColumns[rowIndex];\r\n positiveIndexedRowColumns.forEach(columnsByFixing => {\r\n orderEach(columnsByFixing, (_, columnsByVisibleIndex) => {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n })\r\n });\r\n if (rowspanExpandColumns <= rowIndex) {\r\n rowspanExpandColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, DETAIL_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns <= rowIndex) {\r\n rowspanGroupColumns += processExpandColumns.call(_this, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n };\r\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\r\n _loop(rowIndex)\r\n }\r\n result.push(getDataColumns(result));\r\n return result\r\n }\r\n getInvisibleColumns(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (_, column) => {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n });\r\n return result\r\n }\r\n getChooserColumns(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return sortColumns(columnChooserColumns, sortOrder)\r\n }\r\n allowMoveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n }\r\n if (sourceLocation === GROUP_LOCATION && targetLocation !== COLUMN_CHOOSER_LOCATION || targetLocation === GROUP_LOCATION) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n }\r\n if (sourceLocation === COLUMN_CHOOSER_LOCATION || targetLocation === COLUMN_CHOOSER_LOCATION) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n moveColumn(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && sourceLocation === GROUP_LOCATION) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (targetLocation !== GROUP_LOCATION) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (targetLocation === GROUP_LOCATION) {\r\n options.groupIndex = moveColumnToGroup(this, column, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = targetLocation !== COLUMN_CHOOSER_LOCATION;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n }\r\n changeSortOrder(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n getSortDataSourceParameters(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n }\r\n getGroupDataSourceParameters(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n }\r\n refresh(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var {\r\n lookup: lookup\r\n } = this;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n }\r\n _updateColumnOptions(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n if (this._reinitAfterLookupChanges && this._previousColumns) {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = this._previousColumns[columnIndex].selector.originalCallback\r\n } else {\r\n column.selector.columnIndex = columnIndex;\r\n column.selector.originalCallback = column.selector\r\n }\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (_, calculateCallbackName) => {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n });\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || getAlignmentByDataType(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n }\r\n updateColumnDataTypes(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (index, column) => {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var {\r\n lookup: lookup\r\n } = column;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n });\r\n return isColumnDataTypesUpdated\r\n }\r\n _customizeColumns(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some(column => isObject(column.ownerBand));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n }\r\n updateColumns(dataSource, forceApplying, isApplyingUserState) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n }\r\n _updateChanges(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n }\r\n updateSortingGrouping(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (index, column) => {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var {\r\n selector: selector\r\n } = sortParameters[i];\r\n var {\r\n isExpanded: isExpanded\r\n } = sortParameters[i];\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n })\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (index, group) => {\r\n that._columns.push(group.selector)\r\n });\r\n each(sortParameters, (index, sort) => {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n });\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n }\r\n updateFilter(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue;\r\n filter[0].selectedFilterOperation = filter.selectedFilterOperation\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n }\r\n columnCount() {\r\n return this._columns ? this._columns.length : 0\r\n }\r\n columnOption(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n }\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n } else if (isObject(option)) {\r\n each(option, (optionName, value) => {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n })\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n clearSorting() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0);\r\n delete findColumn(this._columns, i).sortOrder\r\n }\r\n this.endUpdate()\r\n }\r\n clearGrouping() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n }\r\n getVisibleIndex(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n }\r\n getVisibleIndexByColumn(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n }\r\n getVisibleColumnIndex(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n }\r\n addColumn(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n }\r\n deleteColumn(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n convertOwnerBandToColumnReference(this._columns);\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n }\r\n addCommandColumn(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n }\r\n getUserState() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n }\r\n setName(column) {\r\n column.name = column.name || column.dataField || column.type\r\n }\r\n setUserState(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n }\r\n _checkColumns() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _a;\r\n var {\r\n name: name\r\n } = column;\r\n var isBand = null === (_a = column.columns) || void 0 === _a ? void 0 : _a.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n }\r\n _createCalculatedColumnOptions(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var {\r\n dataField: dataField\r\n } = columnOptions;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = strictParseNumber(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.defaultFilterOperation = \"=\";\r\n calculatedColumnOptions.createFilterExpression = function(filterValue, selectedFilterOperation) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue;\r\n result.selectedFilterOperation = selectedFilterOperation\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: () => null\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update() {\r\n var that = this;\r\n var {\r\n dataSource: dataSource\r\n } = that;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done(data => {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n })\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, optionName => {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\".concat(optionName.charAt(0).toUpperCase()).concat(optionName.substr(1));\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n });\r\n return calculatedColumnOptions\r\n }\r\n getRowCount() {\r\n this._rowCount = this._rowCount || getRowCount(this);\r\n return this._rowCount\r\n }\r\n getRowIndex(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n }\r\n getChildrenByBandColumn(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter(column => column.visible && !column.command).sort((column1, column2) => column1.visibleIndex - column2.visibleIndex)\r\n }\r\n return result\r\n }\r\n isParentBandColumn(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (_, bandColumn) => {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n })\r\n }\r\n return result\r\n }\r\n isParentColumnVisible(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (_, bandColumn) => {\r\n result = result && bandColumn.visible;\r\n return result\r\n });\r\n return result\r\n }\r\n getColumnId(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\".concat(column.type)\r\n }\r\n return \"command:\".concat(column.command)\r\n }\r\n return column.index\r\n }\r\n getCustomizeTextByDataType(dataType) {\r\n return getCustomizeTextByDataType(dataType)\r\n }\r\n getHeaderContentAlignment(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n}\r\nexport var columnsControllerModule = {\r\n defaultOptions: () => ({\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }),\r\n controllers: {\r\n columns: ColumnsController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_columns_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../../grids/grid_core/columns_controller/m_columns_controller\";\r\nimport gridCore from \"./m_core\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: () => extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n }),\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_controller/m_data_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n findChanges\r\n} from \"../../../../core/utils/array_compare\";\r\nimport {\r\n deferRender,\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport CustomStore from \"../../../../data/custom_store\";\r\nimport DataHelperMixin from \"../../../../data_helper\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\".concat(optionName), value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n};\r\nvar ControllerWithDataMixin = modules.Controller.inherit(DataHelperMixin);\r\nexport class DataController extends ControllerWithDataMixin {\r\n init() {\r\n var that = this;\r\n that._items = [];\r\n that._cachedProcessedItems = null;\r\n that._columnsController = this.getController(\"columns\");\r\n that._isPaging = false;\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._dataPushedHandler = that._handleDataPushed.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add(error => that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n }));\r\n that._refreshDataSource()\r\n }\r\n _getPagingOptionValue(optionName) {\r\n return this._dataSource[optionName]()\r\n }\r\n callbackNames() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n }\r\n callbackFlags(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n return\r\n }\r\n publicMethods() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n }\r\n reset() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n }\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n needToRefreshOnDataSourceChange(args) {\r\n return true\r\n }\r\n optionChanged(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n super.optionChanged(args)\r\n }\r\n }\r\n isReady() {\r\n return !this._isLoading\r\n }\r\n getDataSource() {\r\n return this._dataSource && this._dataSource._dataSource\r\n }\r\n getCombinedFilter(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n }\r\n combinedFilter(filter, returnDataField) {\r\n if (!this._dataSource) {\r\n return filter\r\n }\r\n var combinedFilter = null !== filter && void 0 !== filter ? filter : this._dataSource.filter();\r\n var isColumnsTypesDefined = this._columnsController.isDataSourceApplied() || this._columnsController.isAllDataTypesDefined();\r\n if (isColumnsTypesDefined) {\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n combinedFilter = additionalFilter ? gridCoreUtils.combineFilters([additionalFilter, combinedFilter]) : combinedFilter\r\n }\r\n var isRemoteFiltering = this._dataSource.remoteOperations().filtering || returnDataField;\r\n combinedFilter = this._columnsController.updateFilter(combinedFilter, isRemoteFiltering);\r\n return combinedFilter\r\n }\r\n waitReady() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n }\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n }\r\n _handleCustomizeStoreLoadOptions(e) {\r\n var _a;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = e;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_a = storeLoadOptions.filter) || void 0 === _a ? void 0 : _a.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n }\r\n _handleColumnsChanged(e) {\r\n var that = this;\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _a;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === (_a = null === change || void 0 === change ? void 0 : change.changeTypes) || void 0 === _a ? void 0 : _a.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n }\r\n _handleDataChanged(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done(() => {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n }).fail(() => {\r\n that._isDataSourceApplying = false\r\n });\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n }\r\n _handleLoadingChanged(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n }\r\n _handleLoadError(e) {\r\n this.dataErrorOccurred.fire(e)\r\n }\r\n _handleDataPushed(changes) {\r\n this.pushed.fire(changes)\r\n }\r\n fireError() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, args))\r\n }\r\n _setPagingOptions(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n }\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n }\r\n _initDataSource() {\r\n var oldDataSource = this._dataSource;\r\n super._initDataSource();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n }\r\n _loadDataSource() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always(() => {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n });\r\n return result.promise()\r\n }\r\n _beforeProcessItems(items) {\r\n return items.slice(0)\r\n }\r\n getRowIndexDelta() {\r\n return 0\r\n }\r\n getDataIndex(change) {\r\n var visibleItems = this._items;\r\n var lastVisibleItem = \"append\" === change.changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n return isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0\r\n }\r\n _processItems(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var {\r\n changeType: changeType\r\n } = change;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var dataIndex = this.getDataIndex(change);\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (index, item) => {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n });\r\n return result\r\n }\r\n _processItem(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n }\r\n _generateDataItem(data, options) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n }\r\n _processDataItem(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n }\r\n generateDataValues(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n }\r\n _applyChange(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n }\r\n _applyChangeFull(change) {\r\n this._items = change.items.slice(0)\r\n }\r\n _getRowIndices(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((a, b) => a - b);\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n }\r\n _applyChangeUpdate(change) {\r\n var that = this;\r\n var {\r\n items: items\r\n } = change;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (index, rowIndex) => {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n })\r\n }\r\n _isCellChanged(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n }\r\n _getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && newItem.isExpanded === oldItem.isExpanded && oldItem.cells) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _a;\r\n return \"groupExpand\" !== (null === (_a = cell.column) || void 0 === _a ? void 0 : _a.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n return columnIndices\r\n }\r\n _partialUpdateRow(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if ((null === changedColumnIndices || void 0 === changedColumnIndices ? void 0 : changedColumnIndices.length) && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((cell, columnIndex) => {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n });\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n }\r\n _isItemEquals(item1, item2) {\r\n var _a, _b, _c, _d;\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_a = item1.data) || void 0 === _a ? void 0 : _a.isContinuation) === (null === (_b = item2.data) || void 0 === _b ? void 0 : _b.isContinuation) && (null === (_c = item1.data) || void 0 === _c ? void 0 : _c.isContinuationOnNextPage) === (null === (_d = item2.data) || void 0 === _d ? void 0 : _d.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n _applyChangesOnly(change) {\r\n var _a;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_a = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _a ? _a : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return \"\".concat(row.rowType, \",\").concat(JSON.stringify(row.key))\r\n }\r\n return\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((item, index) => {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n });\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach(cell => {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n })\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var {\r\n index: index\r\n } = change;\r\n var newItem = change.data;\r\n var {\r\n oldItem: oldItem\r\n } = change;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n }\r\n _correctRowIndices(rowIndex) {}\r\n _afterProcessItems(items, change) {\r\n return items\r\n }\r\n _updateItemsCore(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n var _a;\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = null !== (_a = oldItems[index].cells) && void 0 !== _a ? _a : []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n }\r\n _handleChanging(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach(change => {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n })\r\n }\r\n }\r\n updateItems(change, isDataChanged) {\r\n var _a;\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n change.repaintChangesOnly = null !== (_a = change.repaintChangesOnly) && void 0 !== _a ? _a : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n }\r\n loadingOperationTypes() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n }\r\n _fireChanged(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n }\r\n isLoading() {\r\n return this._isLoading || this._isCustomLoading\r\n }\r\n _fireLoadingChanged() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n }\r\n _calculateAdditionalFilter() {\r\n return null\r\n }\r\n _applyFilter() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n }\r\n resetFilterApplying() {\r\n this._isFilterApplying = false\r\n }\r\n filter(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n }\r\n clearFilter(filterName) {\r\n var columnsController = this._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n this.filter(null);\r\n break;\r\n case \"search\":\r\n this.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n this.filter(null);\r\n this.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n this.component.endUpdate()\r\n }\r\n _fireDataSourceChanged() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n }\r\n _getDataSourceAdapter() {}\r\n _createDataSourceAdapterCore(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n }\r\n isLocalStore() {\r\n var store = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.store();\r\n return store instanceof ArrayStore\r\n }\r\n isCustomStore(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n }\r\n _createDataSourceAdapter(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (isObject(remoteOperations) && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n }\r\n setDataSource(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n items(byLoaded) {\r\n return this._items\r\n }\r\n isEmpty() {\r\n return !this.items().length\r\n }\r\n pageCount() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n }\r\n dataSource() {\r\n return this._dataSource\r\n }\r\n store() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n }\r\n loadAll(data) {\r\n var skipFilter = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : false;\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: skipFilter ? null : that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done(data => {\r\n var _a;\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), null === (_a = options.extra) || void 0 === _a ? void 0 : _a.summary)\r\n }).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((items, extra) => {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n }).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n }\r\n getKeyByRowIndex(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n }\r\n getRowIndexByKey(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n }\r\n keyOf(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n }\r\n byKey(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n }\r\n key() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n }\r\n getRowIndexOffset(byLoadedRows) {\r\n return 0\r\n }\r\n getDataByKeys(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (index, key) => {\r\n deferreds.push(that.byKey(key).done(keyData => {\r\n data[index] = keyData\r\n }))\r\n });\r\n when.apply($, deferreds).always(() => {\r\n result.resolve(data)\r\n });\r\n return result\r\n }\r\n pageIndex(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n }\r\n pageSize(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n }\r\n beginCustomLoading(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n }\r\n endCustomLoading() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n }\r\n refresh(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var {\r\n changesOnly: changesOnly\r\n } = options;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always(() => {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always(() => {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n }).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n });\r\n return d.promise()\r\n }\r\n getVisibleRows() {\r\n return this.items()\r\n }\r\n _disposeDataSource() {\r\n this.setDataSource(null)\r\n }\r\n dispose() {\r\n this._disposeDataSource();\r\n super.dispose()\r\n }\r\n repaintRows(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n }\r\n skipProcessingPagingChange(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n }\r\n getUserState() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n }\r\n getCachedStoreData() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n }\r\n isLastPageLoaded() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n load() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.load()\r\n }\r\n reload(reload, changesOnly) {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.reload(reload, changesOnly)\r\n }\r\n push() {\r\n var _a;\r\n return null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.push(...arguments)\r\n }\r\n itemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.itemsCount() : 0\r\n }\r\n totalItemsCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalItemsCount() : 0\r\n }\r\n hasKnownLastPage() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.hasKnownLastPage() : true\r\n }\r\n isLoaded() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.isLoaded() : true\r\n }\r\n totalCount() {\r\n var _a;\r\n return this._dataSource ? null === (_a = this._dataSource) || void 0 === _a ? void 0 : _a.totalCount() : 0\r\n }\r\n}\r\nexport var dataControllerModule = {\r\n defaultOptions: () => ({\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }),\r\n controllers: {\r\n data: DataController\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_controller.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar _a, _b;\r\nimport errors from \"../../../ui/widget/ui.errors\";\r\nimport {\r\n dataControllerModule\r\n} from \"../../grids/grid_core/data_controller/m_data_controller\";\r\nimport gridCore from \"./m_core\";\r\nimport dataSourceAdapterProvider from \"./m_data_source_adapter\";\r\nexport var DataController = null === (_b = null === (_a = dataControllerModule.controllers) || void 0 === _a ? void 0 : _a.data) || void 0 === _b ? void 0 : _b.inherit({\r\n _getDataSourceAdapter: () => dataSourceAdapterProvider,\r\n _getSpecificDataSourceOption() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/data_source_adapter/m_data_source_adapter.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Callbacks from \"../../../../core/utils/callbacks\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport ArrayStore from \"../../../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nexport default modules.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCoreUtils.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCoreUtils.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCoreUtils.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload,\r\n reload: false,\r\n paging: false\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n }\r\n if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var _a, _b;\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n options.skip = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip;\r\n options.take = null !== (_b = options.take) && void 0 !== _b ? _b : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _a, _b, _c, _d, _e;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_b = null !== (_a = options.take) && void 0 !== _a ? _a : storeLoadOptions.take) && void 0 !== _b ? _b : 0;\r\n var cachedItems = null === (_c = options.cachedData) || void 0 === _c ? void 0 : _c.items;\r\n if (take && cachedItems) {\r\n var skip = null !== (_e = null !== (_d = options.skip) && void 0 !== _d ? _d : storeLoadOptions.skip) && void 0 !== _e ? _e : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var {\r\n items: items\r\n } = cacheItem;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (take) {\r\n result.isContinuationOnNextPage = cacheItem.count > take\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n }\r\n return cacheItem\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n }\r\n var members = {\r\n init(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"beforePush\", that._pushHandler);\r\n each(dataSource, (memberName, member) => {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n })\r\n },\r\n remoteOperations() {\r\n return this._remoteOperations\r\n },\r\n dispose(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n },\r\n resetCache() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache() {\r\n this._cachedData = {\r\n items: {}\r\n }\r\n },\r\n _needClearStoreDataCache() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n this.pushed.fire(changes)\r\n },\r\n getDataIndexGetter() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo() {\r\n return this.store()\r\n },\r\n _needToCopyDataObject: () => true,\r\n _applyBatch(changes, fromStore) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(this.group()).length;\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter(change => !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index);\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || (fromStore || !isReshapeMode) && isVirtualMode;\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush(_ref) {\r\n var {\r\n changes: changes\r\n } = _ref;\r\n this.push(changes, true)\r\n },\r\n _handleChanging(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes, true)\r\n },\r\n _needCleanCacheByOperation(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering,\r\n summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _a;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_a = options.data) || void 0 === _a ? void 0 : _a.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n },\r\n _handleDataLoading(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore(options) {\r\n var {\r\n remoteOperations: remoteOperations\r\n } = options;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging,\r\n langParams: !remoteOperations.filtering || !remoteOperations.sorting\r\n };\r\n each(options.storeLoadOptions, (optionName, optionValue) => {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n });\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n },\r\n _handleDataLoaded(options) {\r\n var _a, _b;\r\n var {\r\n loadOptions: loadOptions\r\n } = options;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var {\r\n cachedData: cachedData\r\n } = options;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCoreUtils.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCoreUtils.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n if (!loadOptions.data && (storeLoadOptions.requireTotalCount || (null !== (_b = null === (_a = options.extra) || void 0 === _a ? void 0 : _a.totalCount) && void 0 !== _b ? _b : -1) >= 0)) {\r\n this._totalCountCorrection = 0\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _a, _b, _c, _d;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_b = null !== (_a = options.skip) && void 0 !== _a ? _a : storeLoadOptions.skip) && void 0 !== _b ? _b : 0;\r\n var take = null !== (_d = null !== (_c = options.take) && void 0 !== _c ? _c : storeLoadOptions.take) && void 0 !== _d ? _d : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _loadPageSize() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always(() => {\r\n that._isCustomLoading = false\r\n })\r\n },\r\n loadingOperationTypes() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n _dataSourceTotalCount() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection() {\r\n return this._totalCountCorrection\r\n },\r\n itemsCount() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount() {\r\n return this.totalCount()\r\n },\r\n pageSize() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((data, extra) => {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n }).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading() {\r\n return !!this._isCustomLoading\r\n },\r\n load(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: extend({}, options, {\r\n langParams: null === dataSourceLoadOptions || void 0 === dataSourceLoadOptions ? void 0 : dataSourceLoadOptions.langParams\r\n }),\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (_, optionName) => {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n });\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleCustomizeStoreLoadOptions(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }(() => {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((data, extra) => {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((data, totalCount) => {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n }).fail(d.reject)\r\n }).fail(d.reject)\r\n }, that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n }\r\n return dataSource.load()\r\n },\r\n reload(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData() {\r\n return this._cachedStoreData\r\n }\r\n };\r\n return members\r\n}());\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_data_source_adapter.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../../grids/grid_core/data_source_adapter/m_data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: component => new dataSourceAdapterType(component)\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting_mixin.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nexport default {\r\n _applyColumnState(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var {\r\n rootElement: rootElement\r\n } = options;\r\n var {\r\n column: column\r\n } = options;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\".concat(SORT_CLASS)).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _getIndicatorClassName(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n }\r\n if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\".concat(SORT_NONE_CLASS))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/sorting/m_sorting.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport sortingMixin from \"./m_sorting_mixin\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n return\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var {\r\n column: column\r\n } = options;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _columnOptionChanged(e) {\r\n var {\r\n changeTypes: changeTypes\r\n } = e;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\"\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/sorting.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sortingModule\r\n} from \"../../../grids/grid_core/sorting/m_sorting\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_rows_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n compileGetter\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isEmpty\r\n} from \"../../../../core/utils/string\";\r\nimport {\r\n setHeight\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../../../events/remove\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Scrollable from \"../../../../ui/scroll_view/ui.scrollable\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./m_columns_view\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\n\r\nfunction isGroupRow(_ref) {\r\n var {\r\n rowType: rowType,\r\n column: column\r\n } = _ref;\r\n return \"group\" === rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command\r\n}\r\nvar defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var {\r\n text: text\r\n } = options;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n};\r\nvar getScrollableBottomPadding = function(that) {\r\n var scrollable = that.getScrollable();\r\n return scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0\r\n};\r\nclass RowsView extends ColumnsView {\r\n _getDefaultTemplate(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n }\r\n _getDefaultGroupTemplate(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var {\r\n data: data\r\n } = options;\r\n var text = \"\".concat(options.column.caption, \": \").concat(options.text);\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \".concat(gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts))\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \". \").concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\".concat(options.groupContinuesMessage, \")\")\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\".concat(options.groupContinuedMessage, \")\")\r\n }\r\n }\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n }\r\n _update(change) {}\r\n _updateCell($cell, options) {\r\n if (isGroupRow(options)) {\r\n $cell.addClass(GROUP_CELL_CLASS)\r\n }\r\n super._updateCell.apply(this, arguments)\r\n }\r\n _getCellTemplate(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var template;\r\n if (isGroupRow(options)) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n }\r\n _createRow(row, tag) {\r\n var $row = super._createRow.apply(this, arguments);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n }\r\n _rowPrepared($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(() => this._isAltRow(row), value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(() => rowOptions.rowIndex, () => this._setAriaRowIndex(rowOptions, $row))\r\n }\r\n super._rowPrepared.apply(this, arguments)\r\n }\r\n _setAriaRowIndex(row, $row) {\r\n var {\r\n component: component\r\n } = this;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n }\r\n _afterRowPrepared(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n }\r\n _renderScrollable(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"
\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n }\r\n _handleScroll(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends(_extends({}, e.scrollOffset), {\r\n left: scrollLeft\r\n }), this.name)\r\n }\r\n _renderScrollableCore($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n }\r\n _renderLoadPanel() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return gridCoreUtils.renderLoadPanel.apply(this, arguments)\r\n }\r\n _renderContent(contentElement, tableElement, isFixedTableRendering) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n }\r\n _updateContent(newTableElement, change, isFixedTableRendering) {\r\n this._contentChanges.push({\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n });\r\n return this.waitAsyncTemplates().done(() => {\r\n var contentChanges = this._contentChanges;\r\n this._contentChanges = [];\r\n contentChanges.forEach(_ref2 => {\r\n var {\r\n newTableElement: newTableElement,\r\n change: change,\r\n isFixedTableRendering: isFixedTableRendering\r\n } = _ref2;\r\n var tableElement = this.getTableElement(isFixedTableRendering);\r\n var contentElement = this._findContentElement(isFixedTableRendering);\r\n var changeType = null === change || void 0 === change ? void 0 : change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (index, rowIndex) => {\r\n var _a;\r\n var $newRowElement = this._getRowElements(newTableElement).eq(index);\r\n var dataChangeType = null === (_a = change.changeTypes) || void 0 === _a ? void 0 : _a[index];\r\n var item = change.items && change.items[index];\r\n executors.push(() => {\r\n var _a;\r\n var $rowElements = this._getRowElements(tableElement);\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n switch (dataChangeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = null === (_a = change.columnIndices) || void 0 === _a ? void 0 : _a[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n this._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowElements.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowElements.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n })\r\n });\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n this.setTableElement(newTableElement, isFixedTableRendering);\r\n contentElement.addClass(this.addWidgetPrefix(CONTENT_CLASS));\r\n this._renderContent(contentElement, newTableElement, isFixedTableRendering)\r\n }\r\n })\r\n }).fail(() => {\r\n this._contentChanges = []\r\n })\r\n }\r\n _createEmptyRow(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n }\r\n getFixedColumns() {\r\n throw new Error(\"Method not implemented.\")\r\n }\r\n _appendEmptyRow($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n }\r\n _renderFreeSpaceRow($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n }\r\n _checkRowKeys(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some(row => {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n return\r\n })\r\n }\r\n _needUpdateRowHeight(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n }\r\n _getRowsHeight($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\".concat(FREE_SPACE_CLASS));\r\n return $rowElements.toArray().reduce((sum, row) => sum + getBoundingRect(row).height, 0)\r\n }\r\n _updateRowHeight() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n }\r\n _findContentElement(isFixedTableRendering) {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n }\r\n _getRowElements(tableElement) {\r\n var $rows = super._getRowElements(tableElement);\r\n return $rows && $rows.not(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getFreeSpaceRowElements($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\".concat(FREE_SPACE_CLASS))\r\n }\r\n _getNoDataText() {\r\n return this.option(\"noDataText\")\r\n }\r\n _rowClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n }\r\n _rowDblClick(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n }\r\n _getColumnsCountBeforeGroups(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n }\r\n _getGroupCellOptions(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n }\r\n _needWrapRow() {\r\n return super._needWrapRow.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n }\r\n _renderCells($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n super._renderCells($row, options)\r\n }\r\n }\r\n _renderGroupedCells($row, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var expandColumn;\r\n var {\r\n columns: columns\r\n } = options;\r\n var {\r\n rowIndex: rowIndex\r\n } = row;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex + 1,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n _renderRows($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n super._renderRows($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n }\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var {\r\n row: row\r\n } = options;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n }\r\n _renderRow($table, options) {\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n rowTemplate: rowTemplate\r\n } = this.option();\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n super._renderRow($table, options)\r\n }\r\n }\r\n _renderTable(options) {\r\n var that = this;\r\n var $table = super._renderTable(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n }\r\n _createTable() {\r\n var $table = super._createTable.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n }\r\n _renderCore(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n var deferred = this._updateContent($table, change);\r\n super._renderCore(change);\r\n this._lastColumnWidths = null;\r\n return deferred\r\n }\r\n _getRows(change) {\r\n return change && change.items || this._dataController.items()\r\n }\r\n _getCellOptions(options) {\r\n var {\r\n column: column\r\n } = options;\r\n var {\r\n row: row\r\n } = options;\r\n var {\r\n data: data\r\n } = row;\r\n var summaryCells = row && row.summaryCells;\r\n var {\r\n value: value\r\n } = options;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = super._getCellOptions(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n }\r\n _setRowsOpacityCore($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (rowIndex, row) => {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n _getDevicePixelRatio() {\r\n return getWindow().devicePixelRatio\r\n }\r\n renderNoDataText() {\r\n return gridCoreUtils.renderNoDataText.apply(this, arguments)\r\n }\r\n getCellOptions(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n }\r\n getRow(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n return\r\n }\r\n updateFreeSpaceRowHeight($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n }\r\n _getHeightCorrection() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n }\r\n _columnOptionChanged(e) {\r\n var {\r\n optionNames: optionNames\r\n } = e;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n super._columnOptionChanged(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n }\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n super.init();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n that._contentChanges = [];\r\n dataController.loadingChanged.add((isLoading, messageText) => {\r\n that.setLoading(isLoading, messageText)\r\n });\r\n dataController.dataSourceChanged.add(() => {\r\n if (this._scrollLeft >= 0 && !this._dataController.isLoading()) {\r\n this._handleScroll({\r\n component: this.getScrollable(),\r\n forceUpdateScrollPosition: true,\r\n scrollOffset: {\r\n top: this._scrollTop,\r\n left: this._scrollLeft\r\n }\r\n })\r\n }\r\n })\r\n }\r\n _handleDataChanged(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n }\r\n publicMethods() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n }\r\n contentWidth() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n }\r\n getScrollbarWidth(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += getScrollableBottomPadding(this)\r\n }\r\n }\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n }\r\n _fireColumnResizedCallbacks() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n }\r\n _updateLastRowBorder(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n }\r\n _updateScrollable() {\r\n var scrollable = Scrollable.getInstance(this.element());\r\n if (scrollable) {\r\n scrollable.update();\r\n if (scrollable.option(\"useNative\") || !(null === scrollable || void 0 === scrollable ? void 0 : scrollable.isRenovated())) {\r\n this._updateHorizontalScrollPosition()\r\n }\r\n }\r\n }\r\n _updateHorizontalScrollPosition() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n }\r\n _resizeCore() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender(() => {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate(() => {\r\n that._updateScrollable()\r\n })\r\n })\r\n }\r\n scrollTo(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n }\r\n height(height) {\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n if (isDefined(height) && $element) {\r\n this.hasHeight(\"auto\" !== height);\r\n setHeight($element, height)\r\n }\r\n }\r\n hasHeight(hasHeight) {\r\n if (0 === arguments.length) {\r\n return !!this._hasHeight\r\n }\r\n this._hasHeight = hasHeight;\r\n return\r\n }\r\n setLoading(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout(() => {\r\n loadPanel.option(visibilityOptions)\r\n }, LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n }\r\n setRowsOpacity(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\".concat(GROUP_ROW_CLASS)) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n }\r\n _getCellElementsCore(rowIndex) {\r\n var $cells = super._getCellElementsCore.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\".concat(GROUP_CELL_CLASS)).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n }\r\n _getBoundaryVisibleItemIndex(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n }\r\n getTopVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n }\r\n getBottomVisibleItemIndex(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n }\r\n getTopVisibleRowData() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n return\r\n }\r\n _scrollToElement($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n }\r\n setScrollerSpacing() {}\r\n _restoreErrorRow() {}\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: () => ({\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }),\r\n views: {\r\n rowsView: RowsView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/rows.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rowsModule\r\n} from \"../../../grids/grid_core/views/m_rows_view\";\r\nimport gridCore from \"../m_core\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/context_menu/m_context_menu.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPublicElement\r\n} from \"../../../../core/element\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport ContextMenu from \"../../../../ui/context_menu\";\r\nimport modules from \"../m_modules\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = modules.ViewController.inherit({\r\n init() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var _a, _b;\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === (_b = null === (_a = null === rowOptions || void 0 === rowOptions ? void 0 : rowOptions.cells) || void 0 === _a ? void 0 : _a[columnIndex]) || void 0 === _b ? void 0 : _b.column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n return\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning(actionArgs) {\r\n var {\r\n event: event\r\n } = actionArgs;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nexport var contextMenuModule = {\r\n defaultOptions: () => ({\r\n onContextMenuPreparing: null\r\n }),\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/context_menu.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n contextMenuModule\r\n} from \"../../../grids/grid_core/context_menu/m_context_menu\";\r\nimport treeListCore from \"../m_core\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/error_handling/m_error_handling.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport modules from \"../m_modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = modules.ViewController.inherit({\r\n init() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"
\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"
\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction(args => {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\".concat(ERROR_ROW_CLASS)).index();\r\n e.stopPropagation();\r\n each($tableElements, (_, tableElement) => {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n });\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n }));\r\n $(\"
\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"
\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\".concat(ERROR_MESSAGE_CLASS)).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (_, tableElement) => {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n });\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\".concat(ERROR_ROW_CLASS));\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\".concat(ERROR_ROW_CLASS))\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: () => ({\r\n errorRowEnabled: true\r\n }),\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((error, $popupContent) => {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n });\r\n that.changed.add(e => {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/error_handling.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n errorHandlingModule\r\n} from \"../../../grids/grid_core/error_handling/m_error_handling\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/views/m_grid_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../../../core/dom_adapter\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport browser from \"../../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../../../core/utils/position\";\r\nimport {\r\n getHeight,\r\n getInnerWidth,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../../../core/utils/size\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport * as accessibility from \"../../../../ui/shared/accessibility\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar GROUP_ROW_SELECTOR = \"tr.dx-group-row\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && width.endsWith(\"%\")\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && width.endsWith(\"px\")\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((width, index) => index === columnIndex ? currentMinWidth : width))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement, true);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar resizingControllerMembers = {\r\n _initPostRenderHandlers() {\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var needFireContentReady = changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed;\r\n this._dataController.changed.remove(this._refreshSizesHandler);\r\n if (this._checkSize()) {\r\n resizeDeferred = this._refreshSizes(e)\r\n }\r\n if (needFireContentReady) {\r\n when(resizeDeferred).done(() => {\r\n this._setAriaLabel();\r\n this.fireContentReadyAction()\r\n })\r\n }\r\n };\r\n this._dataController.changed.add(() => {\r\n this._dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes(e) {\r\n var _a;\r\n var resizeDeferred = (new Deferred).resolve(null);\r\n var changeType = null === e || void 0 === e ? void 0 : e.changeType;\r\n var isDelayed = null === e || void 0 === e ? void 0 : e.isDelayed;\r\n var items = this._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = this.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n if (0 === (null === (_a = e.changeTypes) || void 0 === _a ? void 0 : _a.length)) {\r\n return resizeDeferred\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n resizeDeferred = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n this._setScrollerSpacing();\r\n this._rowsView.resize();\r\n resizeDeferred.resolve()\r\n })))\r\n }).fail(resizeDeferred.reject)\r\n } else {\r\n resizeDeferred = this.resize()\r\n }\r\n }\r\n return resizeDeferred\r\n },\r\n fireContentReadyAction() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _getWidgetAriaLabel: () => \"dxDataGrid-ariaDataGrid\",\r\n _setAriaLabel() {\r\n var totalItemsCount = Math.max(0, this._dataController.totalItemsCount());\r\n this.component.setAria(\"label\", messageLocalization.format(this._getWidgetAriaLabel(), totalItemsCount, this.component.columnCount()), this.component.$element().children(\".\".concat(GRIDBASE_CONTAINER_CLASS)))\r\n },\r\n _getBestFitWidths() {\r\n var _a;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null === widths || void 0 === widths ? void 0 : widths.length)) {\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_a = rowsView.getTableElement()) || void 0 === _a ? void 0 : _a.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n });\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\".concat(className)).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n each($rowsFixedTable.find(GROUP_ROW_SELECTOR), (idx, item) => {\r\n $(item).css(\"display\", isBestFit ? \"none\" : \"\")\r\n });\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight(value) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n $contentElement.css({\r\n minHeight: value ? gridCoreUtils.getContentHeightLimit(browser) : \"\"\r\n })\r\n }\r\n },\r\n _synchronizeColumns() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var hasUndefinedColumnWidth = visibleColumns.some(column => !isDefined(column.width));\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (index, column) => {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n return\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n return\r\n });\r\n this._setVisibleWidths(visibleColumns, []);\r\n var $element = this.component.$element();\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement($element.get(0));\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n this._toggleContentMinHeight(wordWrapEnabled);\r\n if ($element && $element.get(0) && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (index, column) => {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n })\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var {\r\n width: width\r\n } = this;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n });\r\n each(visibleColumns, (index, column) => {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n })\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected || hasUndefinedColumnWidth) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n if (wordWrapEnabled) {\r\n this._toggleContentMinHeight(false)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter(width => void 0 === width).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var {\r\n minWidth: minWidth\r\n } = column;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((columnWidth, columnIndex) => index === columnIndex ? width : columnWidth));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n _getGroupElement() {\r\n return this.component.$element().children().get(0)\r\n },\r\n updateSize(rootElement) {\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n var $groupElement = $rootElement.children(\".\".concat(this.getWidgetContainerClass()));\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getHeight($rootElement);\r\n var width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: () => [\"resize\", \"updateDimensions\"],\r\n _waitAsyncTemplates() {\r\n var _a, _b, _c;\r\n return when(null === (_a = this._columnHeadersView) || void 0 === _a ? void 0 : _a.waitAsyncTemplates(true), null === (_b = this._rowsView) || void 0 === _b ? void 0 : _b.waitAsyncTemplates(true), null === (_c = this._footerView) || void 0 === _c ? void 0 : _c.waitAsyncTemplates(true))\r\n },\r\n resize() {\r\n if (this.component._requireResize) {\r\n return\r\n }\r\n var d = new Deferred;\r\n this._waitAsyncTemplates().done(() => {\r\n when(this.updateDimensions()).done(d.resolve).fail(d.reject)\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n updateDimensions(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always(() => {\r\n deferRender(() => {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate(() => {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n that._updateDimensionsCore()\r\n })\r\n })\r\n })\r\n }).done(result.resolve).fail(result.reject)\r\n });\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight() {\r\n var groupElement = this._getGroupElement();\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize(checkSize) {\r\n var $rootElement = this.component.$element();\r\n var isWidgetVisible = $rootElement.is(\":visible\");\r\n var isGridSizeChanged = this._lastWidth !== getWidth($rootElement) || this._lastHeight !== getHeight($rootElement) || this._devicePixelRatio !== getWindow().devicePixelRatio;\r\n return isWidgetVisible && (!checkSize || isGridSizeChanged)\r\n },\r\n _setScrollerSpacingCore() {\r\n var that = this;\r\n var vScrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender(() => {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n })\r\n },\r\n _setScrollerSpacing() {\r\n var scrollable = this._rowsView.getScrollable();\r\n var isNativeScrolling = true === this.option(\"scrolling.useNative\");\r\n if (!scrollable || isNativeScrolling) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore()\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore()\r\n }\r\n },\r\n _updateDimensionsCore() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = this._getGroupElement();\r\n var rootElementHeight = getHeight($rootElement);\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var isHeightSpecified = !!height && \"auto\" !== height;\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var isMaxHeightApplied = groupElement && groupElement.scrollHeight === groupElement.offsetHeight;\r\n that.updateSize($rootElement);\r\n deferRender(() => {\r\n var hasHeight = that._hasHeight || !!maxHeight || isHeightSpecified;\r\n rowsView.hasHeight(hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate(() => {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing();\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n });\r\n editorFactory && editorFactory.resize()\r\n })\r\n })\r\n },\r\n _updateLastSizes($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n};\r\nvar ResizingController = modules.ViewController.inherit(resizingControllerMembers);\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = modules.View.inherit({\r\n _endUpdateCore() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n init() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView(name) {\r\n return this.component._views[name]\r\n },\r\n element() {\r\n return this._groupElement\r\n },\r\n optionChanged(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (index, viewName) => {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n })\r\n },\r\n _getTableRoleName: () => \"group\",\r\n render($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"
\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria(\"role\", this._getTableRoleName(), $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: () => ({\r\n showBorders: false,\r\n renderAsync: false\r\n }),\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/grid_view.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n gridViewModule\r\n} from \"../../../grids/grid_core/views/m_grid_view\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/header_panel/m_header_panel.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n getPathParts\r\n} from \"../../../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../../../core/utils/type\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Toolbar from \"../../../../ui/toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"../views/m_columns_view\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nclass HeaderPanel extends ColumnsView {\r\n _getToolbarItems() {\r\n return []\r\n }\r\n _getButtonContainer() {\r\n return $(\"
\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n }\r\n _getToolbarButtonClass(specificClass) {\r\n var secondClass = specificClass ? \" \".concat(specificClass) : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n }\r\n _getToolbarOptions() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null === toolbarItems || void 0 === toolbarItems ? void 0 : toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n }\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends(_extends({}, button), {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n }\r\n _renderCore() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"
\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n }\r\n _columnOptionChanged() {}\r\n _handleDataChanged() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n }\r\n _isDisabledDefinedByUser(name) {\r\n var _a;\r\n var userItems = null === (_a = this.option(\"toolbar\")) || void 0 === _a ? void 0 : _a.items;\r\n var userItem = null === userItems || void 0 === userItems ? void 0 : userItems.find(item => (null === item || void 0 === item ? void 0 : item.name) === name);\r\n return isDefined(null === userItem || void 0 === userItem ? void 0 : userItem.disabled)\r\n }\r\n init() {\r\n super.init();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n render() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n super.render.apply(this, arguments)\r\n }\r\n setToolbarItemDisabled(name, disabled) {\r\n var _a;\r\n var toolbar = this._toolbar;\r\n var isDefinedByUser = this._isDisabledDefinedByUser(name);\r\n if (!toolbar || isDefinedByUser) {\r\n return\r\n }\r\n var items = null !== (_a = toolbar.option(\"items\")) && void 0 !== _a ? _a : [];\r\n var itemIndex = items.findIndex(item => item.name === name);\r\n if (itemIndex < 0) {\r\n return\r\n }\r\n var item = toolbar.option(\"items[\".concat(itemIndex, \"]\"));\r\n toolbar.option(\"items[\".concat(itemIndex, \"].disabled\"), disabled);\r\n if (item.options) {\r\n toolbar.option(\"items[\".concat(itemIndex, \"].options.disabled\"), disabled)\r\n }\r\n }\r\n updateToolbarDimensions() {\r\n var _a;\r\n null === (_a = this._toolbar) || void 0 === _a ? void 0 : _a.updateDimensions()\r\n }\r\n getHeaderPanel() {\r\n return this.element()\r\n }\r\n getHeight() {\r\n return this.getElementHeight()\r\n }\r\n optionChanged(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\r\n }\r\n super.optionChanged(args)\r\n }\r\n isVisible() {\r\n return !!(this._toolbarOptions && this._toolbarOptions.visible)\r\n }\r\n allowDragging() {}\r\n hasGroupedColumns() {}\r\n}\r\nexport var headerPanelModule = {\r\n defaultOptions: () => ({}),\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/header_panel.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n headerPanelModule\r\n} from \"../../../grids/grid_core/header_panel/m_header_panel\";\r\nimport gridCore from \"../m_core\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/m_widget_base.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./module_not_extended/column_headers\";\r\nimport \"./m_columns_controller\";\r\nimport \"./m_data_controller\";\r\nimport \"./module_not_extended/sorting\";\r\nimport \"./module_not_extended/rows\";\r\nimport \"./module_not_extended/context_menu\";\r\nimport \"./module_not_extended/error_handling\";\r\nimport \"./module_not_extended/grid_view\";\r\nimport \"./module_not_extended/header_panel\";\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport $ from \"../../../core/renderer\";\r\nimport browser from \"../../../core/utils/browser\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../../core/utils/console\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n isMaterial\r\n} from \"../../../ui/themes\";\r\nimport Widget from \"../../../ui/widget/ui.widget\";\r\nimport gridCoreUtils from \"../../grids/grid_core/m_utils\";\r\nimport gridCore from \"./m_core\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n },\r\n \"columnChooser.allowSearch\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.enabled\" option instead'\r\n },\r\n \"columnChooser.searchTimeout\": {\r\n since: \"23.1\",\r\n message: 'Use the \"columnChooser.search.timeout\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: () => isMaterial(),\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: () => browser.webkit,\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: device => \"desktop\" !== device.deviceType,\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n gridCoreUtils.logHeaderFilterDeprecatedWarningIfNeed(this);\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent() {\r\n var that = this;\r\n deferRender(() => {\r\n that._renderContentImpl()\r\n })\r\n },\r\n _getTemplate(templateName) {\r\n var template = templateName;\r\n if (isString(template) && template.startsWith(\"#\")) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController(name) {\r\n return this._controllers[name]\r\n },\r\n getView(name) {\r\n return this._views[name]\r\n },\r\n focus(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing_core.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fromPromise\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n sessionStorage\r\n} from \"../../../../core/utils/storage\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../../../../core/utils/window\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (key, value) => {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n })\r\n};\r\nvar StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(\"W1022\", \"State storing\", e.message)\r\n }\r\n },\r\n _saveState(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n publicMethods: () => [\"state\"],\r\n isEnabled() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._isLoading\r\n },\r\n load() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n },\r\n state(state) {\r\n if (!arguments.length) {\r\n return extend(true, {}, this._state)\r\n }\r\n this._state = extend({}, state);\r\n parseDates(this._state)\r\n },\r\n save() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout(() => {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }, that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\nexport default {\r\n StateStoringController: StateStoringController\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/state_storing/m_state_storing.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n equalByValue,\r\n getKeyHash\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport stateStoringCore from \"./m_state_storing_core\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add(() => {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n })\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add(e => {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n })\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add(() => {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n })\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add(() => {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n })\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n }\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: () => ({\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }),\r\n controllers: {\r\n stateStoring: stateStoringCore.StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add(() => {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state(state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== state) {\r\n this.applyState(extend(true, {}, state))\r\n }\r\n return result\r\n },\r\n updateState(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState(state) {\r\n var _a;\r\n var {\r\n allowedPageSizes: allowedPageSizes\r\n } = state;\r\n var {\r\n searchText: searchText\r\n } = state;\r\n var {\r\n selectedRowKeys: selectedRowKeys\r\n } = state;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = state;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n var hasHeight = null === (_a = this.getView(\"rowsView\")) || void 0 === _a ? void 0 : _a.hasHeight();\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", (!isVirtualScrollingMode || hasHeight) && state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\r\n }\r\n },\r\n data: {\r\n callbackNames() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource() {\r\n var {\r\n callBase: callBase\r\n } = this;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n }\r\n if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/state_storing.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n stateStoringModule\r\n} from \"../../../grids/grid_core/state_storing/m_state_storing\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/__internal/grids/grid_core/selection/m_selection.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../../core/renderer\";\r\nimport {\r\n equalByValue\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../../../core/utils/iterator\";\r\nimport {\r\n touch\r\n} from \"../../../../core/utils/support\";\r\nimport {\r\n isDefined\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n applyBatch\r\n} from \"../../../../data/array_utils\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../../events/click\";\r\nimport eventsEngine from \"../../../../events/core/events_engine\";\r\nimport holdEvent from \"../../../../events/hold\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../../../events/utils/index\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport Selection from \"../../../../ui/selection/selection\";\r\nimport errors from \"../../../../ui/widget/ui.errors\";\r\nimport modules from \"../m_modules\";\r\nimport gridCoreUtils from \"../m_utils\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\".concat(DATA_ROW_CLASS));\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar isSeveralRowsSelected = function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n};\r\nvar selectionCellTemplate = (container, options) => {\r\n var {\r\n component: component\r\n } = options;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n};\r\nvar selectionHeaderTemplate = (container, options) => {\r\n var {\r\n column: column\r\n } = options;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n};\r\nexport class SelectionController extends modules.Controller {\r\n init() {\r\n var _a;\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n if (!this._dataPushedHandler) {\r\n this._dataPushedHandler = this._handleDataPushed.bind(this);\r\n this._dataController.pushed.add(this._dataPushedHandler)\r\n }\r\n }\r\n _handleDataPushed(changes) {\r\n this._deselectRemovedOnPush(changes);\r\n this._updateSelectedOnPush(changes)\r\n }\r\n _deselectRemovedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n if (isDeferredSelection) {\r\n var selectedKeys = this._dataController.items().filter(item => item.isSelected).map(item => item.key);\r\n removedKeys = removedKeys.filter(key => selectedKeys.find(selectedKey => equalByValue(selectedKey, key)))\r\n }\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n }\r\n _updateSelectedOnPush(changes) {\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (isDeferredSelection) {\r\n return\r\n }\r\n var updateChanges = changes.filter(change => \"update\" === change.type);\r\n var data = this.getSelectedRowsData();\r\n applyBatch({\r\n keyInfo: this._selection.options,\r\n data: data,\r\n changes: updateChanges\r\n })\r\n }\r\n _getSelectionConfig() {\r\n var _a;\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = null !== (_a = this.option(\"selection\")) && void 0 !== _a ? _a : {};\r\n var {\r\n deferred: deferred\r\n } = selectionOptions;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: () => null === dataController || void 0 === dataController ? void 0 : dataController.key(),\r\n keyOf: item => null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item),\r\n dataFields() {\r\n var _a;\r\n return null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.select()\r\n },\r\n load(options) {\r\n var _a;\r\n return (null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: () => dataController.items(true),\r\n isItemSelected: item => item.selected,\r\n isSelectableItem: item => \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow,\r\n getItemData: item => isDefined(null === item || void 0 === item ? void 0 : item.rowType) ? (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) : item,\r\n filter: () => dataController.getCombinedFilter(deferred),\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _a, _b;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_b = null === (_a = dataController.dataSource()) || void 0 === _a ? void 0 : _a.lastLoadOptions()) && void 0 !== _b ? _b : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n }\r\n _updateSelectColumn() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n }\r\n _createSelection() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n }\r\n _fireSelectionChanged(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n }\r\n _updateCheckboxesState(options) {\r\n var {\r\n isDeferredMode: isDeferredMode\r\n } = options;\r\n var {\r\n selectionFilter: selectionFilter\r\n } = options;\r\n var {\r\n selectedItemKeys: selectedItemKeys\r\n } = options;\r\n var {\r\n removedItemKeys: removedItemKeys\r\n } = options;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && isSeveralRowsSelected(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n }\r\n _updateSelectedItems(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n }\r\n getChangedItemIndexes(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, {\r\n length: length\r\n } = items; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n }\r\n callbackNames() {\r\n return [\"selectionChanged\"]\r\n }\r\n optionChanged(args) {\r\n super.optionChanged(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n }\r\n publicMethods() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n }\r\n isRowSelected(arg) {\r\n return this._selection.isItemSelected(arg)\r\n }\r\n isSelectColumnVisible() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n _isOnePageSelectAll() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n }\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n }\r\n selectAll() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n }\r\n deselectAll() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n }\r\n clearSelection() {\r\n return this.selectedItemKeys([])\r\n }\r\n refresh() {\r\n var _a;\r\n var selectedRowKeys = null !== (_a = this.option(\"selectedRowKeys\")) && void 0 !== _a ? _a : [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n }\r\n selectedItemKeys(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n }\r\n getSelectedRowKeys() {\r\n return this._selection.getSelectedItemKeys()\r\n }\r\n selectRows(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n }\r\n deselectRows(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n }\r\n selectRowsByIndexes(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n }\r\n getSelectedRowsData() {\r\n return this._selection.getSelectedItems()\r\n }\r\n loadSelectedItemsWithFilter() {\r\n return this._selection.loadSelectedItemsWithFilter()\r\n }\r\n changeItemSelection(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n }\r\n focusedItemIndex(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n return\r\n }\r\n isSelectionWithCheckboxes() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n }\r\n startSelectionWithCheckboxes() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n stopSelectionWithCheckboxes() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nexport var selectionModule = {\r\n defaultOptions: () => ({\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }),\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource() {\r\n var that = this;\r\n return that.callBase().always(() => {\r\n that.getController(\"selection\").refresh()\r\n })\r\n },\r\n _processDataItem(item, options) {\r\n var selectionController = this.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done(() => {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n }).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\".concat(SELECT_CHECKBOX_CLASS));\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this.waitAsyncTemplates().done(() => {\r\n this._updateSelectAllValue()\r\n })\r\n }\r\n },\r\n _renderSelectAllCheckBox($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"
\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (!$(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\".concat(SELECT_CHECKBOX_CLASS)), clickEventName)\r\n }\r\n event.preventDefault()\r\n }))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox(container, options) {\r\n var groupElement = $(\"
\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue(value, e) {\r\n var _a;\r\n if (\"keydown\" === (null === (_a = null === e || void 0 === e ? void 0 : e.event) || void 0 === _a ? void 0 : _a.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var {\r\n event: event\r\n } = e;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\".concat(ROW_CLASS)));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\".concat(SELECT_CHECKBOX_CLASS)).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (_, tableElement) => {\r\n each(change.itemIndexes || [], (_, index) => {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var {\r\n isSelected: isSelected\r\n } = change.items[index];\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\".concat(SELECT_CHECKBOX_CLASS)).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n })\r\n });\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\".concat(DATA_ROW_CLASS), that.createAction(e => {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n }))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction(e => {\r\n var {\r\n event: event\r\n } = e;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var {\r\n isSelected: isSelected\r\n } = row;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowClick(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\".concat(SELECTION_DISABLED_CLASS)).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement($target) {\r\n var isCommandSelect = $target.closest(\".\".concat(COMMAND_SELECT_CLASS)).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore(change) {\r\n var deferred = this.callBase(change);\r\n this._updateCheckboxesClass();\r\n return deferred\r\n },\r\n _updateCheckboxesClass() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (_, tableElement) => {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/__internal/grids/data_grid/module_not_extended/selection.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n selectionModule\r\n} from \"../../../grids/grid_core/selection/m_selection\";\r\nimport gridCore from \"../m_core\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 23.1.6\r\n * Build date: Fri Oct 13 2023\r\n *\r\n * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport {\r\n SCROLLABLE_CONTENT_CLASS,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL\r\n} from \"../../renovation/ui/scroll_view/common/consts\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITH_CUSTOM_EXPANDER_ICON_CLASS = \"\".concat(ITEM_CLASS, \"-with-custom-expander-icon\");\r\nvar CUSTOM_EXPANDER_ICON_ITEM_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expander-icon-item-container\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar CUSTOM_COLLAPSE_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-collapse-icon\");\r\nvar CUSTOM_EXPAND_ICON_CLASS = \"\".concat(WIDGET_CLASS, \"-custom-expand-icon\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar ITEM_URL_CLASS = \"dx-item-url\";\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n expandIcon: null,\r\n collapseIcon: null,\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var previousSelectAllEnabled = this._selectAllEnabled(previousValue);\r\n var previousItemsContainer = this._itemContainer(searchEnabled, previousSelectAllEnabled);\r\n this._detachClickEvent(previousItemsContainer);\r\n this._detachExpandEvent(previousItemsContainer);\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n this._invalidate();\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._attachExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n case \"expandIcon\":\r\n case \"collapseIcon\":\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = $(\"
\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"
\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.content()).append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n var _this$_dataSource, _this$_dataSource$loa, _this$_dataSource$loa2;\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort(),\r\n langParams: null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : null === (_this$_dataSource$loa = _this$_dataSource.loadOptions) || void 0 === _this$_dataSource$loa ? void 0 : null === (_this$_dataSource$loa2 = _this$_dataSource$loa.call(_this$_dataSource)) || void 0 === _this$_dataSource$loa2 ? void 0 : _this$_dataSource$loa2.langParams\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n $(this.getScrollable().content()).append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._attachExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded() || this._skipContentReadyAndItemExpanded;\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollable = this._createComponent($(\"
\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"