{"version":3,"sources":["kendo.grid.js"],"names":["f","define","$","normalizeText","text","String","replace","REPLACE_REGEX","SPACE","objectKey","object","key","parts","push","sort","join","hashKey","str","i","hash","length","charCodeAt","zeroSize","width","height","baseline","measureText","style","measureBox","TextMetrics","current","measure","LRUCache","DEFAULT_OPTIONS","defaultMeasureBox","window","kendo","util","Class","extend","init","size","this","_size","_length","_map","put","value","map","entry","_head","_tail","newer","older","get","baselineMarkerSize","document","createElement","cssText","options","_cache","styleKey","cacheKey","cachedResult","baselineMarker","textStr","box","_baselineMarker","cloneNode","textContent","appendChild","body","offsetWidth","offsetHeight","offsetTop","parentNode","removeChild","marker","deepExtend","jQuery","amd","a1","a2","a3","undefined","attrEquals","attrName","attrValue","attr","groupCells","count","Array","stringifyAttributes","attributes","result","STRING","cursor","context","add","css","reorder","selector","source","dest","before","idx","sourceIndex","eq","appendTo","elements","lockedContent","content","filter","find","attachCustomCommandEvent","container","commands","command","commandName","isArray","isPlainObject","click","name","on","CLICK","NS","proxy","normalizeColumns","columns","encoded","hide","locked","parentIds","column","hidden","uid","field","isVisible","addHiddenStyle","footerAttributes","headerAttributes","guid","headers","id","columnParent","parents","columnParents","inserted","splice","setColumnVisibility","visible","setVisibility","show","method","removeHiddenStyle","setColumnMediaVisibility","setColumnMatchesMedia","hideByMedia","_hideByMedia","matchesMedia","columnMatchesMedia","isUndefined","media","isCellVisible","display","isElementVisible","element","visibleColumns","grep","columnsWithMedia","minScreenWidth","Error","concat","toJQuery","toArray","updateCellRowSpan","cell","sourceLockedColumnsCount","lockedColumnDepth","depth","lockedColumns","nonLockedColumnDepth","nonLockedColumns","rowSpan","moveCellsBetweenContainers","sources","target","leafs","destination","groups","action","rows","sourcesDepth","targetDepth","children","insertAfter","last","addRowSpanValue","moveCells","updateCellIndex","thead","offset","position","allColumns","cells","leafColumns","el","hasClass","columnPosition","row","temp","max","sourcePosition","columnVisiblePosition","ths","t","cellCounts","findParentColumnWithChildren","index","rtl","targetLocked","findReorderTarget","masterColumns","parent","parentColumns","targetIndex","inArray","flatColumnsInDomOrder","flatColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","sumWidths","cols","parseInt","columnsWidth","colWidth","indexOf","removeRowSpanValue","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","rowIndex","setLeftAndRightStyles","left","right","createColumnAttribute","attribute","property","addColumnAttribute","removeColumnAttribute","stickyColumns","sticky","visibleStickyColumns","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","childColumns","visibleChildColumns","e","getColumnsFields","leafDataCells","indexAttr","a","b","indexA","indexB","parentColumnsCells","parentCellsWithChildren","prevCells","parentCell","closest","headerRows","level","prevAll","colSpan","Math","getAttribute","childColumnsCells","child","colSpanAttr","next","appendContent","tbody","table","html","empty","placeholder","tmp","tbodySupportsInnerHtml","innerHTML","firstChild","replaceChild","match","hasHiddenStyle","normalizeCols","hasDetails","colgroup","format","is","append","prepend","normalizeHeaderCells","len","lastIndex","th","insertBefore","convertToObject","array","item","formatGroupValue","columnValues","isForeignKey","groupValue","htmlEncode","setCellVisibility","state","pad","nonDataCellsRegExp","test","className","hideColumnCells","columnIndex","groupRows","data","hasSubgroups","items","groupFooters","aggregates","showColumnCells","updateColspan","toAdd","toRemove","num","tableWidth","syncTableHeight","table1","table2","lockedHeigth","tableHeigth","diff","filterRowRegExp","adjustRowHeight","row1","row2","offsetHeight1","offsetHeight2","getCommand","focusTable","direct","scrollLeft","focusElement","one","preventDefault","focus","isColumnGroupable","grid","groupable","isGroupedBy","isColumnEditable","model","selectable","editable","isInputElement","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","preventScroll","currentTable","roleSelector","_setCurrent","navigatable","setTimeout","_activeElement","CHECKBOXINPUT","contains","support","touch","leftMostPosition","browser","webkit","parseVirtualSettings","asLowerString","toLowerCase","isElementVisibleInWrapper","wrapper","halfHeight","top","outerHeight","math","abs","floor","isInEdit","groupCellBuilder","headerTemplateIndex","ARIALABEL","COLLAPSE","groupCellLockedContentBuilder","groupRowBuilder","colspan","expanded","includeAdditionalData","EXPAND","groupRowLockedContentBuilder","toggleRow","backslashEscapeQuotes","ampRegExp","ltRegExp","quoteRegExp","aposRegExp","gtRegExp","GroupsPager","VirtualScrollable","defaultCommands","Grid","ui","DataSource","ObservableObject","tbodyInnerHtml","activeElement","Widget","outerWidth","_outerWidth","_outerHeight","keys","prototype","isFunction","isEmptyObject","DOT","PROGRESS","ERROR","HIERARCHY_CELL_CLASS","DATA_CELL","SELECTION_CELL_SELECTOR","NAVROW","NAVCELL","ITEMROW","FIRSTITEMROW","LASTITEMROW","FIRSTNAVITEM","HEADERCELLS","CONTENTRLOCKEDCONTAINER","GROUPCELLCLASS","EDIT","BEFOREEDIT","SAVE","REMOVE","DETAILINIT","FILTERMENUINIT","COLUMNMENUINIT","FILTERMENUOPEN","COLUMNMENUOPEN","CELLCLOSE","CHANGE","COLUMNHIDE","COLUMNSHOW","SAVECHANGES","DATABOUND","DETAILEXPAND","DETAILCOLLAPSE","ITEM_CHANGE","PAGE","PAGING","SCROLL","SYNC","FOCUSED","FOCUSABLE","SELECTED","CHECKBOX","NORECORDSCLASS","LINK_CLASS","ICON_CLASS","ORDER_CLASS","HEADER_COLUMN_MENU_CLASS","FILTER_MENU_CLASS","STICKY_CELL_CLASS","STICKY_HEADER_CLASS","STICKY_FOOTER_CLASS","STICKY_HEADER_NO_BORDER_CLASS","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","COLUMNSTICK","COLUMNUNSTICK","NAVIGATE","MOUSEDOWN","HEIGHT","TABINDEX","FUNCTION","BOTTOM","CONTAINER_FOR","FIELD","INPUT","INCELL","INLINE","UNIQUE_ID","MINCOLSPANVALUE","COLSPAN","OVERFLOW","HIDDEN","SORT","GROUP_SORT","DELETECONFIRM","NORECORDS","CONFIRMDELETE","CANCELDELETE","formatRegExp","templateHashRegExp","whitespaceRegExp","RegExp","COMMANDBUTTONTMPL","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","isRtl","isIE11","msie","version","isMac","navigator","userAgent","classNames","widget","scrollContainer","Pager","fn","call","dataSource","useRanges","_omitPrefetch","totalPages","that","ceil","_collapsedTotal","pageSize","groupsTotal","_refreshHandler","refresh","setDataSource","wrap","unbind","bind","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","verticalScrollbar","off","clearTimeout","_timeout","_scrollingTimeout","drag","scrollbar","overflow","first","_wheelScroll","_wrapper","kineticScrollNeeded","UserEvents","global","allowSelection","start","sender","capture","move","scrollTop","y","delta","x","_scroll","overflow-y","ctrlKey","wheelDeltaY","clientHeight","scrollHeight","delayLoading","rowHeight","skip","_rangeStart","innerHeight","isScrollingUp","_scrollbarTop","firstItemIndex","lastItemOffset","lastItemIndex","_preventScroll","_prevScrollTop","_scrollTop","_scrolling","_fetch","trigger","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","itemIndex","rangeStart","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","webkitCorrection","total","_isGroupPaged","min","_fetching","callback","isGroupPaged","_groupRangeExists","inRange","progress","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","cancel","page","create","iconClass","save","edit","update","canceledit","excel","pdf","search","DataBoundWidget","_events","_element","_aria","_columns","_foreignKeyPromises","when","apply","then","_continueInit","_dataSource","_stickyColumns","_tbody","_thead","_groupable","_toolbar","_pageable","_setContentHeight","_templates","_navigatable","_selectable","_clipboard","_details","_editable","_attachCustomCommandsEvent","_adaptiveColumns","_minScreenSupport","autoBind","fetch","_group","_groups","_footer","addClass","_resizeHandler","resize","notify","scrollableContent","scrollable","virtual","virtualScrollable","toolbar","filterable","sortable","allowCopy","pageable","persistSelection","encodeTitles","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","groupHeader","ungroupHeader","_angularItems","_destroyColumnAttachments","_navigatableTables","_headertables","pager","timer","_progressTimeOut","_collapseGroupsTimeOut","_endlessFetchTimeOut","_destroyGroupable","clearArea","_selectedIds","copyHandler","updateClipBoardState","clearAreaHandler","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyVirtualScrollable","editableUserEvents","_lockedContentUserEvents","_destroyEditable","_progressHandler","_errorHandler","_clearSortClasses","_removeLockedContainers","pane","_isMobile","minScreenResizeHandler","_detachColumnMediaResizeHandler","_draggableInstance","lockedRowTemplate","lockedAltRowTemplate","footerTemplate","groupFooterTemplate","lockedGroupFooterTemplate","noRecordsTemplate","scrollables","footer","lockedFooter","_groupableClickHandler","_groupRows","_setContentWidthHandler","getOptions","initialData","_data","group","aggregate","transport","$angular","setOptions","mobileWrapper","currentOptions","after","removeClass","_setEvents","_items","includeGroupRows","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_createResizeHandle","headerWrap","ieCorrection","firefoxCorrection","leftMargin","invisibleSpace","leftBorderWidth","indicatorWidth","halfResizeHandle","rtlCorrection","mozilla","parseFloat","_autoFitLeafColumn","_positionColumnResizeHandle","lockedHead","button","buttons","which","hasAttribute","_resizeHandleDocumentClick","_resetResizeHandleHeader","_hideResizeHandle","_positionColumnResizeHandleTouch","threshold","minHold","hold","resizeColumn","columnWidth","col","constrain","totalWidth","isLocked","isHidden","mobileOS","contentTable","header","columnMinWidth","minResizableWidth","gridWidth","_footerWidth","_scrollVirtualWrapperOnColumnResize","_applyLockedContainersWidth","_syncLockedContentHeight","_syncLockedHeaderHeight","_updateStickyColumns","_resizable","columnStart","isMobile","Resizable","handle","hint","location","rtlMultiplier","currentWidth","resizeend","newWidth","oldWidth","_draggable","kendoDraggable","autoScroll","dragstart","not","dragend","title","_reorderable","kendoReorderable","draggable","dragOverContainers","lockable","inSameContainer","change","oldIndex","newIndex","reorderColumn","_reorderHeader","sourceLockedColumns","targetLockedColumns","destPosition","_reorderContent","footerCol","beforeVisibleColumn","columnsArray","lockedRows","visibleSources","destIndex","colSourceIndex","colDest","lockedCount","headerCol","_findClosestVisibleColumnIndex","slice","prev","_hasFilterRow","_hasVirtualColumns","reverse","closestVisibleColumn","leafIndex","autoFitColumn","minWidth","contentDiv","menu","thWidth","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","safari","lockChanged","sourceColumns","destColumn","virtualScroll","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unstickColumn","unlockColumn","stickColumn","_removeStickyAttributes","_removeStickyStyles","_anyStickyColumns","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","_calculateColumnIndex","virtualOffset","mode","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","tap","isLockedCell","has","blur","editCell","shouldCloseCell","_virtualColScroll","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","_attachModelChange","_shouldClearEditableState","_clearEditableState","kendoEditable","fields","editor","values","skipFocus","_isVirtualIncellEditable","_editableState","_relatedRow","_syncLockedScroll","_adjustLockedHorizontalScrollBar","touchScroller","_adjustRowsHeight","_syncLockedFooterHeight","editView","_editCancelClickHandler","_editUpdateClickHandler","_detachModelChange","_destroyEditView","_editableIsClosing","close","_confirmDialog","purge","navigate","_modelChangeHandler","_modelChange","isCancel","type","_displayCell","ns","dataItem","storage","settings","Template","templateSettings","tmpl","template","_cellTmpl","_removeRow","modelId","schema","cancelRow","_removeGroupIfEmpty","idField","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","currentIndex","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","editMenuGuid","unescape","_createButton","kendoWindow","modal","userTriggered","clearContainer","_openPopUpEditor","windowEditor","windowOptions","_editAnimation","center","open","Editable","cancelChanges","_displayRow","valid","deferred","Deferred","reject","promise","resolve","related","newRow","nextRow","angularElements","angularData","isSelected","isAlt","replaceWith","_checkBoxSelection","select","_showMessage","confirmDialog","Confirm","closable","okText","done","fail","confirm","_isVirtualEditable","_virtualPageToTop","saveChanges","addRow","createAt","view","createAtBottom","virtualEditable","serverPaging","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","input","_searchTimeOut","searchFields","expression","filters","logic","endless","_endlessPageSize","operator","searchText","attributeClassMatch","split","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","chrome","Groupable","groupContainer","draggableElements","allowDrag","_skip","_pageSize","_take","_addGroupableOptionsToHeader","headerCell","columnOptions","columnFieldMap","headerCells","_headerCells","cellFieldAttr","kendoGroupable","_removeGroupableOptionsFromHeader","removeData","_continuousItems","lockedItems","nonLockedItems","multi","notString","Selectable","parseOptions","multiple","aria","selectedValues","_persistSelectedRows","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","useAllItems","relatedTarget","continuousItems","ignoreOverlapped","keyCode","SPACEBAR","shiftKey","_deselectCheckRows","clear","_lastActive","LEFT","RIGHT","UP","DOWN","selectRange","_firstSelectee","stopImmediatePropagation","copySelection","areaClipBoard","val","getTSV","Event","metaKey","getSelection","selection","createRange","opacity","cellsOffset","lockedCols","inLockedArea","rowsOffset","selected","delimeter","onlyVisible","cellText","_anyColumnHasMediaQuery","_setColumnsMediaVisibility","_attachColumnMediaResizeHandler","_columnsWithMediaQuery","_columnMediaResizeHandler","_onColumnMediaResize","_setContentMediaWidth","_setColumnMediaVisibility","_showColumnByMedia","_hideColumnByMedia","showColumn","initiallyHidden","hideColumn","headerColumns","headerColgroup","headerColumnsCount","visibleHeaderColumnsCount","hiddenHeaderColumnsCount","totalHeaderWidth","currentHeaderWidth","colgroupChild","columnStyleWidth","any","hideMinScreenCols","screenWidth","innerWidth","screen","_iterateMinScreenCols","_setStickyColumns","updateStyles","stickyWidths","_calculateStickyWidths","_setStickyClassAttributes","_setStickyStyleAttributes","_setStickyStyles","initialLeftWidth","initialRightWidth","nextColumnLeft","nextColumnRight","fill","_sumColumnWidth","masterIndex","stickyLeft","stickyRight","stickyStyle","childCols","childStickyWidths","cellClassRegExp","headerClassRegExp","footerClassRegExp","headerClassNoBorderRegExp","leftRegExp","rightRegExp","leafsCols","_getColumnHeader","groupHeaderColumnTemplateClass","_sumCurrentWidths","_relatedCell","clearSelection","selectableoptions","checked","prop","allRows","dataSourceOptions","selectedViewIds","selectedKeyNames","ids","_updateCurrentAttr","nextId","headerId","removeAttr","_current","_scrollCurrent","tableContainer","isInLockedContainer","isInContent","scrollableContainer","addBack","_rowVirtualIndex","preventTrigger","siblings","_virtualCellIndex","_lastCellIndex","elementToLowercase","tagName","isHorizontal","elementOffsetDir","containerOffsetDir","offsetLeft","bottomDistance","edge","dataTables","headerTables","_openHeaderMenu","_tableFocus","_tableBlur","_tableKeyDown","altKey","_setTabIndex","_findCellIndex","startIndex","reversed","_scrollToColumn","HOME","END","handled","requestInProgress","canHandle","isDefaultPrevented","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","_handleHome","_handleEnd","_handleSpaceKey","ENTER","F2","_handleEnterKey","ESC","_handleEscKey","TAB","_handleTabKey","collapseRow","_moveColumn","_prevHorizontalCell","_tabNext","_horizontalContainer","expandRow","_nextHorizontalCell","nextAll","_prevVerticalCell","_verticalContainer","_nextVerticalCell","isLeft","ctrl","rowContainer","isInLockedTable","isInBody","isInCell","_handleEditing","active","_toggleCurrent","descriptors","label","_canDrag","dir","link","focusable","originalIndex","_currentDataIndex","lockedColumnsCount","tmpIndex","currentRowCells","hiddenColumns","up","step","back","switchRow","isEdited","isIE","_initMobile","_createPane","Pane","viewEngine","viewOptions","renderOnInit","wrapInSections","detachOnHide","detachOnDestroy","_scrollable","originalPageSize","hasVirtualScroll","_createVirtualScrollable","_scrollLeft","isScrollingLeft","_endlessFetchInProgress","_skipRerenderItemsCount","_cacheEditableState","_restoreEditableState","movable","_averageRowHeight","scroll","_focusEditable","_onVirtualPaging","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","virtualColumns","_getByUid","editedField","_canFocusEditable","widgetInstance","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","hiddenDiv","isNaN","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","isGridHeightSet","scrollableHeight","initialHeight","newHeight","currentRowHeight","itemsCount","_rowHeight","_sum","_measures","_sortHandler","_requestStart","_error","_progress","relatedRow","selectableRow","childCells","originalCells","pagerWrap","_groupPaging","_togglePagerVisibility","_wrapFooter","_appendLockedColumnFooter","footerRow","_appendCols","_columnMenu","menuOptions","hasMultiColumnHeaders","hasLockableColumns","hasStickableColumns","stickable","initCallback","openCallback","closeCallback","stickCallback","unstickCallback","sortHandler","filterHandler","compare","forceUnique","checkSource","owner","stick","unstick","filtering","componentType","kendoColumnMenu","_filterable","columnFilterable","filterInit","filterOpen","kendoFilterMultiCheck","kendoFilterMenu","_filterRow","rowheader","suggestDataSource","operators","customDataSource","cellOptions","_updateHeader","delay","inputWidth","suggestionOperator","minLength","dataTextField","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","initialColumns","_updateColumnIDs","_checkboxClick","_headerCheckboxClick","_foreignKeyBindings","_fetchForeignKeyValues","_hasBoundForeignKey","dataValueField","checkBox","parentGrid","getKendoGrid","isSelecting","_tmpl","alt","skipGroupCells","paramName","fieldAttr","dirtyCellTemplate","expr","_dirtyCellTemplate","dirtyField","charAt","_headerCellText","headerTemplate","_dirtyIndicatorTemplate","stringify","useWithBlock","_virtualCols","considerNext","widths","c","sumOfWidths","colsToRender","firstColspan","lastColspan","widthOfHiddenColumns","virtualCols","columnLeafs","columnsLocked","groupHeaderColumnTemplateLockedColumns","groupHeaderColumnTemplateNonLockedColumns","_detailTmpl","_footerTmpl","g","_groupHeaderTmpl","lockedGroupHeaderColumnTemplate","_noRecordsTmpl","defaultTemplate","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","_toggleDetails","omitAnimation","detailRow","expanding","masterRow","ariaLabelText","ariaExpandText","toggleClass","detailCell","toggle","correctIdx","classesRegEx","sectionRowIndex","_createHeaderCells","_appendLockedColumnContent","spanIdx","skipHiddenCount","colOffset","detach","lockedCells","_appendLockedColumnHeader","trFilter","hasFilterRow","filterCellOffset","filterCells","leafColumnsCount","filtercellCells","filterRow","existingFilterRow","syncHeight","hasLockedColumns","hasTHead","headerContent","_updateHeadersAttr","_prepareColumns","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_autoColumns","toJSON","_rowsHtml","templates","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","subgroupsCount","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","groupData","firstVisibleColumnGroupHeaderTemplate","groupHeaderTemplate","currentItems","_groupsState","isNew","excludeHeader","_skippedGroups","shift","groupUid","groupObject","currentGroupCount","groupCountAfterCollapse","toHide","groupToCollapse","showFooter","footerCount","relatedGroup","_getGroupByUid","_calculateGroupsTotal","_serverGroupsTotal","_currentRangeStart","_groupToCollapse","footersVisibility","groupsCount","groupCount","groupCountAfterExpand","toggleVisibility","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","_updateContentWidth","predicate","p","originalColumn","columnLeafIndex","_resize","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","_renderContent","_renderLockedContent","_restoreCurrent","contentResized","resetTouchEvents","_muteAngularRebind","_restoreSelection","selectedRows","dataItemKey","cmd","_cleanupDetailItems","_angularGroupItems","_angularGroupFooterItems","flatViewLength","endlessAppend","flatView","groupRowBuilderFunc","groupHeaderData","prevElement","newGroupRowElement","currentRow","firstColumnGroupData","alwaysVisible","rows2","containers","containersLength","heights","ExcelMixin","PDFMixin","_drawPDF_autoPageBreak","allPages","startingPage","draw","cont","_destructive","pageNumber","pageNum","drawing","drawDOM","clone","always","toggleUnexportableColumns","err","renderPage","origBody","paddingRight","_initPDFProgress","restore","exportable","visibleInExport","visibleInExportOnly","_toggledDuringExport","_drawPDF","exportPage","doc","_drawPDFShadow","avoidLinks","args","paperSize","Group","pb","loading","kendoProgressBar","chunkCount","plugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;CAwBC,SAAUA,EAAGC,QACVA,OAAO,qBAAsB,cAAeD,IAC9C,YACG,SAAUE,GAqDP,QAASC,GAAcC,GACnB,OAAcA,EAAPC,IAAaC,QAAQC,EAAeC,GAE/C,QAASC,GAAUC,GAAnB,GAEaC,GADLC,IACJ,KAASD,IAAOD,GACZE,EAAMC,KAAKF,EAAMD,EAAOC,GAE5B,OAAOC,GAAME,OAAOC,KAAK,IAE7B,QAASC,GAAQC,GAAjB,GAEaC,GADLC,EAAO,UACX,KAASD,EAAI,EAAGA,EAAID,EAAIG,SAAUF,EAC9BC,IAASA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IAAMA,GAAQ,IACzEA,GAAQF,EAAII,WAAWH,EAE3B,OAAOC,KAAS,EAEpB,QAASG,KACL,OACIC,MAAO,EACPC,OAAQ,EACRC,SAAU,GA0DlB,QAASC,GAAYtB,EAAMuB,EAAOC,GAC9B,MAAOC,GAAYC,QAAQC,QAAQ3B,EAAMuB,EAAOC,GAtIvD,GAEOI,GAiDAzB,EACAC,EA0BAyB,EACAC,EAKAL,CAnFJM,QAAOC,MAAMC,KAAOF,OAAOC,MAAMC,SAC7BL,EAAWI,MAAME,MAAMC,QACvBC,KAAM,SAAUC,GACZC,KAAKC,MAAQF,EACbC,KAAKE,QAAU,EACfF,KAAKG,SAETC,IAAK,SAAUnC,EAAKoC,GAAf,GACGC,GAAMN,KAAKG,KACXI,GACAtC,IAAKA,EACLoC,MAAOA,EAEXC,GAAIrC,GAAOsC,EACNP,KAAKQ,OAGNR,KAAKS,MAAMC,MAAQH,EACnBA,EAAMI,MAAQX,KAAKS,MACnBT,KAAKS,MAAQF,GAJbP,KAAKQ,MAAQR,KAAKS,MAAQF,EAM1BP,KAAKE,SAAWF,KAAKC,OACrBK,EAAIN,KAAKQ,MAAMvC,KAAO,KACtB+B,KAAKQ,MAAQR,KAAKQ,MAAME,MACxBV,KAAKQ,MAAMG,MAAQ,MAEnBX,KAAKE,WAGbU,IAAK,SAAU3C,GACX,GAAIsC,GAAQP,KAAKG,KAAKlC,EACtB,IAAIsC,EAeA,MAdIA,KAAUP,KAAKQ,OAASD,IAAUP,KAAKS,QACvCT,KAAKQ,MAAQD,EAAMG,MACnBV,KAAKQ,MAAMG,MAAQ,MAEnBJ,IAAUP,KAAKS,QACXF,EAAMI,QACNJ,EAAMI,MAAMD,MAAQH,EAAMG,MAC1BH,EAAMG,MAAMC,MAAQJ,EAAMI,OAE9BJ,EAAMI,MAAQX,KAAKS,MACnBF,EAAMG,MAAQ,KACdV,KAAKS,MAAMC,MAAQH,EACnBP,KAAKS,MAAQF,GAEVA,EAAMF,SAIrBxC,EAAgB,eAChBC,EAAQ,IA0BRyB,GAAoBsB,mBAAoB,GAEpB,mBAAbC,YACPtB,EAAoBsB,SAASC,cAAc,OAC3CvB,EAAkBP,MAAM+B,QAAU,wQAElC7B,EAAcO,MAAME,MAAMC,QAC1BC,KAAM,SAAUmB,GACZjB,KAAKkB,OAAS,GAAI5B,GAAS,KAC3BU,KAAKiB,QAAUzD,EAAEqC,UAAWN,EAAiB0B,IAEjD5B,QAAS,SAAU3B,EAAMuB,EAAOgC,GAAvB,GAODE,GACAC,EACAC,EAIAtB,EACAb,EACAoC,EACKrD,EACDoC,EAKJkB,CAlBJ,IAHgB,SAAZN,IACAA,OAECvD,EACD,MAAOkB,IAKX,IAHIuC,EAAWpD,EAAUkB,GACrBmC,EAAW9C,EAAQZ,EAAOyD,GAC1BE,EAAerB,KAAKkB,OAAON,IAAIQ,GAE/B,MAAOC,EAEPtB,GAAOnB,IACPM,EAAa+B,EAAQO,KAAOhC,EAC5B8B,EAAiBtB,KAAKyB,kBAAkBC,WAAU,EACtD,KAASzD,IAAOgB,GACRoB,EAAQpB,EAAMhB,GACG,SAAVoC,IACPnB,EAAWD,MAAMhB,GAAOoC,EAgBhC,OAbIkB,GAAUN,EAAQxD,iBAAkB,EAAQA,EAAcC,GAAeA,EAAPC,GACtEuB,EAAWyC,YAAcJ,EACzBrC,EAAW0C,YAAYN,GACvBR,SAASe,KAAKD,YAAY1C,GACtBqC,EAAQ7C,SACRqB,EAAKlB,MAAQK,EAAW4C,YAAc9B,KAAKiB,QAAQJ,mBACnDd,EAAKjB,OAASI,EAAW6C,aACzBhC,EAAKhB,SAAWuC,EAAeU,UAAYhC,KAAKiB,QAAQJ,oBAExDd,EAAKlB,MAAQ,GAAKkB,EAAKjB,OAAS,GAChCkB,KAAKkB,OAAOd,IAAIgB,EAAUrB,GAE9Bb,EAAW+C,WAAWC,YAAYhD,GAC3Ba,GAEX0B,gBAAiB,WACb,GAAIU,GAASrB,SAASC,cAAc,MAEpC,OADAoB,GAAOlD,MAAM+B,QAAU,0DAA4DhB,KAAKiB,QAAQJ,mBAAqB,eAAiBb,KAAKiB,QAAQJ,mBAAqB,uBACjKsB,KAGfhD,EAAYC,QAAU,GAAID,GAI1BO,MAAM0C,WAAW1C,MAAMC,MACnBL,SAAUA,EACVH,YAAaA,EACbH,YAAaA,EACbjB,UAAWA,EACXO,QAASA,EACTb,cAAeA,KAErBgC,OAAOC,MAAM2C,SACC,kBAAV9E,SAAwBA,OAAO+E,IAAM/E,OAAS,SAAUgF,EAAIC,EAAIC,IACrEA,GAAMD,OAEV,SAAUlF,EAAGC,QACVA,OAAO,cACH,aACA,qBACA,iBACA,eACA,mBACA,mBACA,kBACA,cACA,mBACA,iBACA,oBACA,kBACA,cACA,cACA,aACA,oBACA,YACA,eACA,aACA,gBACDD,IACL,WAqgRE,MAp6QC,UAAUE,EAAGkF,GA6UV,QAASC,GAAWC,EAAUC,GAC1B,MAAO,IAAMnD,GAAMoD,KAAKF,GAAY,IAAMC,EAAY,IAE1D,QAASE,GAAWC,GAChB,MAAWC,OAAMD,EAAQ,GAAG3E,KAAK,wCAErC,QAAS6E,GAAoBC,GACzB,GAAIL,GAAMM,EAAS,GACnB,IAAID,EAAY,CACZ,SAAWA,KAAeE,GACtB,MAAOF,EAEX,KAAKL,IAAQK,GACgB,KAArBA,EAAWL,KACXM,GAAUN,EAAO,KAAOK,EAAWL,GAAQ,KAIvD,MAAOM,GAqDX,QAASE,GAAOC,EAASlD,GACrB7C,EAAE,oCAAqC+F,GAASC,IAAI1C,SAASe,MAAM4B,IAAI,SAAUpD,GAErF,QAASqD,GAAQC,EAAUC,EAAQC,EAAMC,EAAQd,GAAjD,GAIae,GAHLC,EAAcJ,CAGlB,KAFAA,EAASpG,IACTwF,EAAQA,GAAS,EACRe,EAAM,EAAGA,EAAMf,EAAOe,IAC3BH,EAASA,EAAOJ,IAAIG,EAASM,GAAGD,EAAcD,GAE/B,iBAARF,GACPD,EAAOE,EAAS,eAAiB,eAAeH,EAASM,GAAGJ,IAE5DD,EAAOM,SAASL,GAGxB,QAASM,GAASC,EAAeC,EAASC,GACtC,MAAO9G,GAAE4G,GAAeZ,IAAIa,GAASE,KAAKD,GAE9C,QAASE,GAAyBjB,EAASkB,EAAWC,GAClD,GAAIX,GAAKrF,EAAQiG,EAASC,CAE1B,KADAF,EAAYG,GAAQH,GAAyBA,GAAZA,GAC5BX,EAAM,EAAGrF,EAASgG,EAAShG,OAAQqF,EAAMrF,EAAQqF,IAClDY,EAAUD,EAASX,GACfe,GAAcH,IAAYA,EAAQI,QAClCH,EAAcD,EAAQK,MAAQL,EAAQjH,KACtC+G,EAAUQ,GAAGC,GAAQC,GAAI,aAAeP,GAAe,IAAIhH,QAAQ,MAAO,KAAOgH,YAAaA,GAAeQ,GAAMT,EAAQI,MAAOxB,KAI9I,QAAS8B,GAAiBC,EAASC,EAASC,EAAMC,EAAQC,GACtD,MAAOpF,IAAIgF,EAAS,SAAUK,GAAV,GAEZC,GAQAC,CAaJ,OAtBAF,SAAgBA,KAAWtC,IAAWyC,MAAOH,GAAWA,EAExDA,EAAOD,UAAYA,EACdK,EAAUJ,KAAWH,IACtBG,EAAOxC,WAAa6C,GAAeL,EAAOxC,YAC1CwC,EAAOM,iBAAmBD,GAAeL,EAAOM,kBAChDN,EAAOO,iBAAmBF,GAAeL,EAAOO,kBAChDN,GAAS,GAETC,EAAMnG,GAAMyG,OACZV,IAAWE,EAAOF,SAClBE,EAAOF,OAASA,GAEpBE,EAAOO,iBAAmBrG,IAASuG,QAASV,GAAaC,EAAOO,kBAC3DP,EAAOO,iBAAiBG,GAGzBR,EAAMF,EAAOO,iBAAiBG,GAF9BV,EAAOO,iBAAmBrG,IAASwG,GAAIR,GAAOF,EAAOO,kBAIrDP,EAAOL,UACPK,EAAOL,QAAUD,EAAiBM,EAAOL,QAASC,EAASK,EAAQD,EAAOF,OAAQC,EAAYA,EAAY,IAAMG,EAAMA,IAEnHhG,IACH0F,QAASA,EACTK,OAAQA,EACRH,OAAQA,GACTE,KAGX,QAASW,GAAaX,EAAQL,GAC1B,GAAIiB,KAEJ,OADAC,GAAcb,EAAQL,EAASiB,GACxBA,EAAQA,EAAQ7H,OAAS,GAEpC,QAAS8H,GAAcb,EAAQL,EAASiB,GAAxC,GAEaxC,GAIG0C,CAJZ,KADAF,EAAUA,MACDxC,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CAC3C,GAAI4B,IAAWL,EAAQvB,GACnB,OAAO,CACJ,IAAIuB,EAAQvB,GAAKuB,QAAS,CAG7B,GAFImB,EAAWF,EAAQ7H,OACvB6H,EAAQpI,KAAKmH,EAAQvB,IAChByC,EAAcb,EAAQL,EAAQvB,GAAKuB,QAASiB,GAG7C,OAAO,CAFPA,GAAQG,OAAOD,EAAUF,EAAQ7H,OAAS+H,IAMtD,OAAO,EAEX,QAASE,GAAoBhB,EAAQiB,GACjCC,EAAclB,EAAQiB,EAASA,GAEnC,QAASC,GAAclB,EAAQiB,EAASE,GACpC,GAAIC,GAASD,EAAOE,GAAoBhB,EACxCL,GAAOC,QAAUgB,EACjBjB,EAAOxC,WAAa4D,EAAOpB,EAAOxC,YAClCwC,EAAOM,iBAAmBc,EAAOpB,EAAOM,kBACxCN,EAAOO,iBAAmBa,EAAOpB,EAAOO,kBAE5C,QAASe,GAAyBtB,EAAQiB,GACtCM,EAAsBvB,EACtB,IAAIwB,GAAcxB,EAAOyB,YACzBP,GAAclB,EAAQiB,EAASO,EAAcxB,EAAO0B,aAAeT,GAEvE,QAASM,GAAsBvB,GAC3BA,EAAO0B,aAAeC,EAAmB3B,GAE7C,QAAS2B,GAAmB3B,GACxB,MAAOA,KAAW4B,EAAY5B,EAAO6B,SAAWD,EAAY5B,EAAO6B,QAAU9H,GAAM2H,aAAa1B,EAAO6B,QAE3G,QAASC,KACL,MAA8B,SAAvBzH,KAAKf,MAAMyI,QAEtB,QAASC,GAAiBC,GACtB,MAAuC,SAAhCpK,EAAEoK,GAAS,GAAG3I,MAAMyI,QAE/B,QAAS3B,GAAUJ,GACf,MAAOkC,IAAgBlC,IAASjH,OAAS,EAE7C,QAASmJ,GAAevC,GACpB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,GAAIvC,IAAUuC,EAAOC,QAAUD,EAAO0B,gBAAiB,CAIvD,OAHIjE,IAAUuC,EAAOL,UACjBlC,EAASyE,EAAelC,EAAOL,SAAS5G,OAAS,GAE9C0E,IAGf,QAAS2E,GAAiBzC,GAA1B,GAEQK,GACKnH,EAFL4E,IAEJ,KAAS5E,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAAK,CAErC,GADAmH,EAASL,EAAQ9G,IACZ+I,EAAY5B,EAAO6B,OAAQ,CAC5B,IAAKD,EAAY5B,EAAOqC,gBACpB,KAAUC,OAAM,gFAEpB7E,GAAOjF,KAAKwH,GAEZA,EAAOL,UACPlC,EAASA,EAAO8E,OAAOH,EAAiBpC,EAAOL,WAGvD,MAAOlC,GAEX,QAASmE,GAAYlH,GACjB,MAAwB,KAAVA,EAElB,QAAS8H,GAAShE,GACd,MAAO3G,GAAE2G,GAAU7D,IAAI,WACnB,MAAON,MAAKoI,YAGpB,QAASC,GAAkBC,EAAMhD,EAASiD,GAA1C,GACQC,GAAoBC,EAAMC,EAAcpD,IACxCqD,EAAuBF,EAAMG,EAAiBtD,IAC9CuD,EAAUP,EAAKO,OAGXP,GAAKO,QAFTN,EACIC,EAAoBG,EACLE,GAAWL,EAAoBG,IAAyB,EAExDE,GAAWF,EAAuBH,GAGjDA,EAAoBG,EACLE,GAAWL,EAAoBG,GAE/BE,GAAWF,EAAuBH,IAAsB,EAInF,QAASM,GAA2BC,EAASC,EAAQC,EAAO3D,EAASb,EAAWyE,EAAaC,EAAQC,GAArG,GAIYrG,GACAsG,EAJJC,EAAeb,EAAMM,GACrBQ,EAAcd,GAAOO,GACrBM,GAAeC,IACXxG,EAAiBE,MAAMkG,EAAS,GAAG9K,KAAK,6DACxCgL,EAAOH,EAAYM,SAAS,uBAChChM,EAAMyF,MAAMqG,EAAeC,EAAc,GAAGlL,KAAK,OAAS0E,EAAa,UAAU0G,YAAYJ,EAAKK,SAEtGC,EAAgBT,EAAaI,EAAeC,GAC5CK,EAAUX,EAAO3D,EAASb,EAAWyE,EAAaE,GAEtD,QAASS,GAAgBC,EAAOxE,EAASyE,GAAzC,GAEQC,GACA1B,EACA2B,EAEAC,EACAb,EACA/E,EAIKP,EAASrF,CAAlB,KAXAqL,EAASA,GAAU,EAGfE,EAAa3E,EACjBA,EAAU6E,GAAY7E,GAClB4E,KACAb,EAAOS,EAAMvF,KAAK,0BAClBD,EAAS,WACT,GAAI8F,GAAK5M,EAAEwC,KACX,QAAQoK,EAAGC,SAAS,kBAAoBD,EAAGC,SAAS,qBAE/CtG,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACrDiG,EAAWM,EAAehF,EAAQvB,GAAMkG,GACnCC,EAAMF,EAASO,OAChBL,EAAMF,EAASO,KAAOlB,EAAKpF,GAAG+F,EAASO,KAAKhG,KAAK,aAAaD,OAAOA,IAEzEgE,EAAO4B,EAAMF,EAASO,KAAKtG,GAAG+F,EAAS1B,MACvCA,EAAKxF,KAAKpD,GAAMoD,KAAK,SAAUiH,EAAShG,EAE5C,OAAOuB,GAAQ5G,OAEnB,QAAS+J,GAAMnD,GAAf,GAGavB,GAEGyG,EAJRpH,EAAS,EACTqH,EAAM,CACV,KAAS1G,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAKuB,UACTkF,EAAO/B,EAAMnD,EAAQvB,GAAKuB,SAC1BkF,EAAOC,IACPA,EAAMD,GAIlB,OAAOpH,GAASqH,EAEpB,QAASb,GAAUX,EAAO3D,EAASb,EAAWyE,EAAaE,GAA3D,GAKQrF,GAKAyF,EATAkB,EAAiBC,EAAsB1B,EAAM,GAAI3D,GACjDsF,EAAMnG,EAAUF,KAAK,6BAA+BmG,EAAeH,IAAM,iBACzEM,EAAIrN,IACJwG,EAAc0G,EAAepC,IAEjC,KAAKvE,EAAM,EAAGA,EAAMkF,EAAMvK,OAAQqF,IAC9B8G,EAAIA,EAAErH,IAAIoH,EAAI3G,GAAGD,EAAcD,GAInC,KAFAmF,EAAY3E,KAAK,0BAA0BN,GAAGyG,EAAeH,KAAKnB,GAAQyB,GACtErB,KACCzF,EAAM,EAAGA,EAAMkF,EAAMvK,OAAQqF,IAC1BkF,EAAMlF,GAAKuB,UACXkE,EAAWA,EAAStB,OAAOe,EAAMlF,GAAKuB,SAG1CkE,GAAS9K,QACTkL,EAAUJ,EAAUlE,EAASb,EAAWyE,EAAaE,GAG7D,QAASkB,GAAe3E,EAAQL,EAASiF,EAAKO,GAA9C,GACQ1H,GACAW,CAIJ,KAHAwG,EAAMA,GAAO,EACbO,EAAaA,MACbA,EAAWP,GAAOO,EAAWP,IAAQ,EAChCxG,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CACvC,GAAIuB,EAAQvB,IAAQ4B,EAAQ,CACxBvC,GACIkF,KAAMwC,EAAWP,GACjBA,IAAKA,EAET,OACG,GAAIjF,EAAQvB,GAAKuB,UACpBlC,EAASkH,EAAe3E,EAAQL,EAAQvB,GAAKuB,QAASiF,EAAM,EAAGO,IAE3D,KAGRA,GAAWP,KAEf,MAAOnH,GAEX,QAAS2H,GAA6BzF,EAAS0F,EAAOpH,EAAQqH,GAA9D,GACQjC,GAEAkC,EADAzF,IAAW7B,EAAO6B,MAEtB,GACIuD,GAAS1D,EAAQ0F,GACjBA,GAASC,EAAM,KACfC,IAAiBlC,EAAOvD,aACnBuD,GAAUgC,MAAcA,EAAQ1F,EAAQ5G,QAAUsK,GAAUpF,IAAWoF,EAAO1D,SAAW4F,IAAiBzF,EACnH,OAAOuD,GAEX,QAASmC,GAAkB7F,EAAS0D,EAAQpF,EAAQE,EAAQsH,GAA5D,GAKYC,GACAC,EAMAN,EAQAhH,EAEAuH,CArBR,OAAIvC,GAAO1D,SACP0D,EAASA,EAAO1D,QACT0D,EAAOlF,EAAS,EAAIkF,EAAOtK,OAAS,KAEvC2M,EAAS/E,EAAa0C,EAAQ1D,GAG9BgG,EADAD,EACgBA,EAAO/F,QAEPA,EAEhB0F,EAAQQ,GAAQxC,EAAQsC,GACd,IAAVN,GAAelH,EACfkH,IACOA,GAASM,EAAc5M,OAAS,IAAMoF,IAAWF,EAAO6B,SAAWuD,EAAO1D,UAAYxB,EAC7FkH,KACOA,EAAQ,GAAe,IAAVA,IAAgBlH,IACpCkH,IAEAhH,EAAcwH,GAAQ5H,EAAQ0H,GAClCtC,EAAS+B,EAA6BO,EAAeN,EAAOpH,EAAQI,EAAcgH,GAC9EO,EAAcC,GAAQxC,EAAQoC,KAC9BpC,EAAO1D,SAAaiG,GAAeA,IAAgBD,EAAc5M,OAAS,IAG1EsK,GAAUA,GAAUpF,GAAUoF,EAAO1D,QAC9B6F,EAAkB7F,EAAS0D,EAAQpF,EAAQE,EAAQsH,GAHnD,MAQnB,QAAST,GAAsBhF,EAAQL,EAASiF,EAAKO,GAArD,GACQ1H,GACAW,CAIJ,KAHAwG,EAAMA,GAAO,EACbO,EAAaA,MACbA,EAAWP,GAAOO,EAAWP,IAAQ,EAChCxG,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CACvC,GAAIuB,EAAQvB,IAAQ4B,EAAQ,CACxBvC,GACIkF,KAAMwC,EAAWP,GACjBA,IAAKA,EAET,OACG,GAAIjF,EAAQvB,GAAKuB,UACpBlC,EAASuH,EAAsBhF,EAAQL,EAAQvB,GAAKuB,QAASiF,EAAM,EAAGO,IAElE,KAGHxF,GAAQvB,GAAK6B,QACdkF,EAAWP,KAGnB,MAAOnH,GAEX,QAASqI,GAAsBnG,GAC3B,GAAIlC,GAASsI,EAAYhD,EAAcpD,GACvC,OAAOlC,GAAO8E,OAAOwD,EAAY9C,EAAiBtD,KAEtD,QAASqG,GAA2BD,EAAapG,EAAStB,EAAauH,GAAvE,GACQ5F,GAAS+F,EAAY1H,GACrBgF,EAAS0C,EAAYH,GACrBF,EAAS/E,EAAaX,EAAQL,EAElC,OADAA,GAAU+F,EAASA,EAAO/F,QAAUA,EAC7BkG,GAAQxC,EAAQ1D,GAE3B,QAASoG,GAAYpG,GAArB,GAGavB,GAFLX,KACAoG,IACJ,KAASzF,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACpCX,EAAOjF,KAAKmH,EAAQvB,IAChBuB,EAAQvB,GAAKuB,UACbkE,EAAWA,EAAStB,OAAO5C,EAAQvB,GAAKuB,SAMhD,OAHIkE,GAAS9K,SACT0E,EAASA,EAAO8E,OAAOwD,EAAYlC,KAEhCpG,EAEX,QAASwI,GAAuBtG,GAAhC,GAEQK,GACK5B,EAFL8H,EAAU,CAEd,KAAS9H,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACpC4B,EAASL,EAAQvB,GACb4B,EAAOL,QACPuG,GAAWD,EAAuBjG,EAAOL,SAClCK,EAAOC,QACdiG,GAGR,OAAOA,GAEX,QAASC,GAAUC,GAAnB,GAEahI,GAASrF,EADdG,EAAQ,CACZ,KAASkF,EAAM,EAAGrF,EAASqN,EAAKrN,OAAQqF,EAAMrF,EAAQqF,IAC7CgI,EAAKhI,GAAK6B,SACX/G,GAASmN,SAASD,EAAKhI,GAAKlF,MAAO,IAG3C,OAAOA,GAEX,QAASoN,GAAaF,GAAtB,GACQG,GACKnI,EAASrF,EADJG,EAAQ,CACtB,KAASkF,EAAM,EAAGrF,EAASqN,EAAKrN,OAAQqF,EAAMrF,EAAQqF,IAClDmI,EAAWH,EAAKhI,GAAK9E,MAAMJ,MACvBqN,GAAYA,EAASC,QAAQ,WAC7BtN,GAASmN,SAASE,EAAU,IAGpC,OAAOrN,GAEX,QAASuN,GAAmB3H,EAAWzB,GAAvC,GAEQ6F,GACK9E,EAFLmG,EAAQzF,EAAUF,KAAK,gEAE3B,KAASR,EAAM,EAAGA,EAAMmG,EAAMxL,OAAQqF,IAClC8E,EAAUqB,EAAMnG,GAAK8E,QACjBA,EAAU,IACVqB,EAAMnG,GAAK8E,QAAUA,EAAU7F,GAAS,GAIpD,QAAS2G,GAAgBlF,EAAWzB,GAApC,GAEae,GADLmG,EAAQzF,EAAUF,KAAK,gEAC3B,KAASR,EAAM,EAAGA,EAAMmG,EAAMxL,OAAQqF,IAClCmG,EAAMnG,GAAK8E,SAAW7F,EAG9B,QAASqJ,GAAgB5H,GAAzB,GAMaV,GALLsF,EAAO5E,EAAUF,KAAK,yBACtB+H,EAAiBjD,EAAK/E,OAAO,WAC7B,OAAQ9G,EAAEwC,MAAMwJ,WAAW9K,SAC5B6N,SAAS7N,OACRwL,EAAQb,EAAK9E,KAAK,0CACtB,KAASR,EAAM,EAAGA,EAAMmG,EAAMxL,OAAQqF,IAC9BmG,EAAMnG,GAAK8E,QAAU,IACrBqB,EAAMnG,GAAK8E,SAAWyD,EAG9B,OAAOjD,GAAK3K,OAAS4N,EAEzB,QAASE,GAAoBlH,EAAS4E,EAAOb,EAAMoD,EAAU1C,GACzD,GAAIhG,GAAKwG,EAAK7L,EAAQ8K,IACtB,KAAKzF,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjDwG,EAAMlB,EAAKoD,OACXlC,EAAIpM,KAAK+L,EAAMjG,GAAG8F,EAAShG,IAC3BsF,EAAKoD,GAAYlC,EACbjF,EAAQvB,GAAKuB,UACbkE,EAAWA,EAAStB,OAAO5C,EAAQvB,GAAKuB,SAG5CkE,GAAS9K,QACT8N,EAAoBhD,EAAUU,EAAOb,EAAMoD,EAAW,EAAG1C,EAASzE,EAAQ5G,QAGlF,QAASgO,GAAsB9E,EAAS+E,EAAMC,GAC1ChF,EAAQnE,KACJkJ,KAAQA,EACRC,MAASA,IAGjB,QAASC,GAAsBlH,EAAQmH,EAAWC,GAC9CpH,EAAOmH,GAAanH,EAAOmH,OAC3BnH,EAAOmH,GAAWC,GAAYpH,EAAOmH,GAAWC,IAAa,GAEjE,QAASC,GAAmBrH,EAAQmH,EAAWC,EAAU1M,GACrDwM,EAAsBlH,EAAQmH,EAAWC,GACL,KAAhCpH,EAAOmH,GAAWC,GAClBpH,EAAOmH,GAAWC,IAAa,IAAM1M,EAErCsF,EAAOmH,GAAWC,GAAY1M,EAGtC,QAAS4M,GAAsBtH,EAAQmH,EAAWC,EAAU1M,GACxDwM,EAAsBlH,EAAQmH,EAAWC,GACzCpH,EAAOmH,GAAWC,GAAYpH,EAAOmH,GAAWC,GAAUnP,QAAQyC,EAAO,IAE7E,QAASqI,GAAcpD,GACnB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAOF,SAGtB,QAASmD,GAAiBtD,GACtB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,OAAQA,EAAOF,SAGvB,QAASyH,GAAc5H,GACnB,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAOwH,SAAWxH,EAAOF,SAGxC,QAAS2H,GAAqB9H,GAC1B,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAOwH,SAAWxH,EAAOF,QAAUM,EAAUJ,KAG5D,QAAS0H,GAAwB/H,GAC7B,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,OAAQA,EAAOF,QAAUM,EAAUJ,KAG3C,QAAS2H,GAAqBhI,GAC1B,MAAOwC,IAAKxC,EAAS,SAAUK,GAC3B,MAAOA,GAAOF,QAAUM,EAAUJ,KAG1C,QAAS4H,GAAmBjI,GAA5B,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAK6B,SAGbN,EAAQvB,GAAKuB,QACblC,EAASA,EAAO8E,OAAOqF,EAAmBjI,EAAQvB,GAAKuB,UAEvDlC,EAAOjF,KAAKmH,EAAQvB,IAG5B,OAAOX,GAEX,QAASoK,IAAalI,GAAtB,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAKuB,UACblC,EAASA,EAAO8E,OAAO5C,EAAQvB,GAAKuB,SAG5C,OAAOlC,GAEX,QAASqK,IAAoBnI,GACzB,GAAIlC,GAASoK,GAAalI,EAI1B,OAHAlC,GAASA,EAAOkB,OAAO,SAAUoJ,GAC7B,OAAQA,EAAE9H,SAIlB,QAASuE,IAAY7E,GAArB,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAC/BuB,EAAQvB,GAAKuB,QAIlBlC,EAASA,EAAO8E,OAAOiC,GAAY7E,EAAQvB,GAAKuB,UAH5ClC,EAAOjF,KAAKmH,EAAQvB,GAK5B,OAAOX,GAEX,QAASuK,IAAiBrI,GAA1B,GAGavB,GAFLX,IAEJ,KADAkC,EAAU6E,GAAY7E,GACbvB,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACR,gBAAjBuB,GAAQvB,GACfX,EAAOjF,KAAKmH,EAAQvB,IACbuB,EAAQvB,GAAK+B,OACpB1C,EAAOjF,KAAKmH,EAAQvB,GAAK+B,MAGjC,OAAO1C,GAEX,QAASwK,IAAcnJ,GAAvB,GAaQoJ,GAZAxE,EAAO5E,EAAUF,KAAK,0BACtBD,EAAS,WACT,GAAI8F,GAAK5M,EAAEwC,KACX,QAAQoK,EAAGC,SAAS,kBAAoBD,EAAGC,SAAS,qBAEpDH,EAAQ1M,GAuBZ,OAtBI6L,GAAK3K,OAAS,IACdwL,EAAQb,EAAK9E,KAAK,MAAMD,OAAOA,GAAQA,OAAO,WAC1C,MAAOtE,MAAK6I,QAAU,KAG9BqB,EAAQA,EAAM1G,IAAI6F,EAAKK,OAAOnF,KAAK,MAAMD,OAAOA,IAC5CuJ,EAAYnO,GAAMoD,KAAK,SAC3BoH,EAAM9L,KAAK,SAAU0P,EAAGC,GAAb,GAGHC,GACAC,CASJ,OAZAH,GAAItQ,EAAEsQ,GACNC,EAAIvQ,EAAEuQ,GACFC,EAASF,EAAEhL,KAAK+K,GAChBI,EAASF,EAAEjL,KAAK+K,GAChBG,IAAWtL,IACXsL,EAASxQ,EAAEsQ,GAAG9C,SAEdiD,IAAWvL,IACXuL,EAASzQ,EAAEuQ,GAAG/C,SAElBgD,EAAShC,SAASgC,EAAQ,IAC1BC,EAASjC,SAASiC,EAAQ,IACnBD,EAASC,EAAS,EAAID,EAASC,KAAc,IAEjD/D,EAEX,QAASgE,IAAmB5F,GAA5B,GAOY+C,GACA8C,EAGApE,EACAiB,EACAoD,EAGKrK,EAMDsK,EArBR5J,EAAY6D,EAAKgG,QAAQ,SACzBlL,EAAS5F,IAAIgG,IAAI8E,GACjBiC,EAAMjC,EAAKgG,QAAQ,MACnBC,EAAa9J,EAAUF,KAAK,yBAC5BiK,EAAQD,EAAWvD,MAAMT,EAC7B,IAAIiE,EAAQ,EAAG,CAUX,IATInD,EAASkD,EAAWtK,GAAGuK,EAAQ,GAC/BL,EAA0B9C,EAAO9G,KAAK,2CAA2CD,OAAO,WACxF,OAAQ9G,EAAEwC,MAAM8C,KAAK,aAErBiH,EAAS,EACTiB,EAAQT,EAAIhG,KAAK,2CAA2CyG,MAAM1C,GAClE8F,EAAY9F,EAAKmG,QAAQ,yCAAyCnK,OAAO,WACzE,MAAOtE,MAAK0O,QAAU,IAEjB3K,EAAM,EAAGA,EAAMqK,EAAU1P,OAAQqF,IACtCgG,GAAUqE,EAAUrK,GAAK2K,SAAW,CAIxC,KAFA1D,GAAS2D,KAAKlE,IAAIV,EAAS,EAAG,GAC9BA,EAAS,EACJhG,EAAM,EAAGA,EAAMoK,EAAwBzP,OAAQqF,IAOhD,GANIsK,EAAaF,EAAwBlK,GAAGF,GAExCgG,GADAsE,EAAWvL,KAAK,gBACNuL,EAAW,GAAGO,aAAa,gBAE3B,EAEV5D,GAASjH,GAAOiH,EAAQjB,EAAQ,CAChC3G,EAAS8K,GAAmBG,GAAY7K,IAAIJ,EAC5C,QAIZ,MAAOA,GAEX,QAASyL,IAAkBvG,GAA3B,GAQYwG,GACAV,EACArK,EAIAgG,EAIAG,EACAwE,EAKIrO,EAvBRoE,EAAY6D,EAAKgG,QAAQ,SACzBlL,EAAS5F,IAAIgG,IAAI8E,GACjBiC,EAAMjC,EAAKgG,QAAQ,MACnBC,EAAa9J,EAAUF,KAAK,yBAC5BiK,EAAQD,EAAWvD,MAAMT,GAAOjC,EAAK,GAAGO,QACxCkG,EAAcrP,GAAMoD,KAAK,UAC7B,IAAI0L,GAASD,EAAW7P,OAAS,EAAG,CAQhC,IAPIoQ,EAAQvE,EAAIyE,OACZZ,EAAY9F,EAAKmG,QAAQ,yCAE7BL,EAAYA,EAAU9J,OAAO,WACzB,OAAQtE,KAAK6I,SAA4B,IAAjB7I,KAAK6I,UAE7BkB,EAAS,EACRhG,EAAM,EAAGA,EAAMqK,EAAU1P,OAAQqF,IAClCgG,GAAUiC,SAASoC,EAAUnK,GAAGF,GAAKjB,KAAKiM,GAAc,KAAO,CAKnE,KAHI7E,EAAQ4E,EAAMvK,KAAK,2CACnBmK,EAAU1C,SAAS1D,EAAKxF,KAAKiM,GAAc,KAAO,EACtDhL,EAAM,EACCA,EAAM2K,GACTI,EAAQ5E,EAAMjG,GAAGF,EAAMgG,GACvB3G,EAASA,EAAOI,IAAIqL,GAAkBC,IAClCzO,EAAQ2L,SAAS8C,EAAMhM,KAAKiM,GAAc,IAC1C1O,EAAQ,IACRqO,GAAWrO,EAAQ,GAEvB0D,IAGR,MAAOX,GAEX,QAAS6L,IAAcC,EAAOC,EAAOC,EAAMC,GACvC,GAAIC,GAAaC,EAAML,CAavB,OAZIG,IACAH,EAAMG,QAENG,GACAN,EAAM,GAAGO,UAAYL,GAErBE,EAAcxO,SAASC,cAAc,OACrCuO,EAAYG,UAAY,iBAAmBL,EAAO,mBAClDF,EAAQI,EAAYI,WAAWA,WAC/BP,EAAM,GAAGQ,aAAaT,EAAOK,EAAI,IACjCL,EAAQ1R,EAAE0R,IAEPA,EAEX,QAASlJ,IAAelD,GACpBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,KASjB,OARKA,IAGDA,EAAQA,EAAMrB,QAAQ,iBAAkB,gBACnCqB,EAAM2Q,MAAM,eACb3Q,EAAQA,EAAMrB,QAAQ,SAAU,qBAJpCqB,EAAQ,eAOLY,MAAWiD,GAAQ7D,MAAOA,IAErC,QAAS4Q,IAAe/M,GACpBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,OAAS,EAC1B,OAAOA,GAAMkN,QAAQ,qBAEzB,QAASnF,IAAkBlE,GACvBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,KAIjB,OAHIA,KACA6D,EAAK7D,MAAQA,EAAMrB,QAAQ,+BAAgC,KAExDkF,EAEX,QAASgN,IAAcX,EAAOtH,EAAgBkI,EAAY5G,GACtD,GAAwCtK,GAApCmR,EAAWb,EAAM5K,KAAK,aAAqBwH,EAAOzL,GAAIuH,EAAgB,SAAUlC,GAE5E,MADA9G,GAAQ8G,EAAO9G,MACXA,GAAiC,IAAxBmN,SAASnN,EAAO,IAClBa,GAAMuQ,OAAO,iCAAmCpR,KAAUwE,GAASxE,EAAQA,EAAQ,MAEvF,aAEXkR,GAAcC,EAASzL,KAAK,oBAAoB7F,SAChDqN,EAAKrF,OAAO,EAAG,EAAG,mCAElBsJ,EAAStR,QACTsR,EAASzD,SAEbyD,EAAWxS,EAAMyF,MAAMkG,EAAS,GAAG9K,KAAK,6BAA+B0N,EAAK1N,KAAK,KAC5E2R,EAASE,GAAG,cACbF,EAAWxS,EAAE,eAAe2S,OAAOH,IAEvCb,EAAMiB,QAAQJ,GAElB,QAASK,IAAqB5L,EAAWa,GAAzC,GAEQvB,GAAKuM,EADLC,EAAY,EAEZC,EAAK/L,EAAUF,KAAK,wBACxB,KAAKR,EAAM,EAAGuM,EAAMhL,EAAQ5G,OAAQqF,EAAMuM,EAAKvM,IACvCuB,EAAQvB,GAAK0B,SACb+K,EAAGvM,GAAGF,GAAK0M,aAAaD,EAAGvM,GAAGsM,IAC9BC,EAAK/L,EAAUF,KAAK,yBACpBgM,KAIZ,QAASG,IAAgBC,GACrB,GAAiBC,GAAM7M,EAAKrF,EAAxB0E,IACJ,KAAKW,EAAM,EAAGrF,EAASiS,EAAMjS,OAAQqF,EAAMrF,EAAQqF,IAC/C6M,EAAOD,EAAM5M,GACbX,EAAOwN,EAAKvQ,OAASuQ,EAAKlT,IAE9B,OAAO0F,GAEX,QAASyN,IAAiBxQ,EAAO4P,EAAQa,EAAcvL,GACnD,GAAIwL,GAAeD,GAAgBA,EAAapS,QAAUoG,GAAcgM,EAAa,KAAO,SAAWA,GAAa,GAAIE,EAAaD,EAAeL,GAAgBI,GAAczQ,GAASA,CAE3L,OADA2Q,GAA2B,MAAdA,EAAqBA,EAAa,GACxCf,EAASvQ,GAAMuQ,OAAOA,EAAQe,GAAczL,KAAY,EAAQyL,EAAatR,GAAMuR,WAAWD,GAEzG,QAASE,IAAkBhH,EAAOc,EAAOpE,GAErC,IADA,GAAauK,GAATC,EAAM,EAAU9I,EAAO4B,EAAMkH,GAC1B9I,GAAM,CAET,GADA6I,IAAQvK,GAAwC,SAAvB0B,EAAKrJ,MAAMyI,QAChCyJ,IAAUE,GAAmBC,KAAKhJ,EAAKiJ,cAAgBvG,EAAQ,EAAG,CAClE1C,EAAKrJ,MAAMyI,QAAUd,EAAU,GAAK,MACpC,OAEJ0B,EAAO4B,IAAQkH,IAGvB,QAASI,IAAgBnI,EAAMoI,GAE3B,IADA,GAAmCnJ,GAAMiC,EAArCxG,EAAM,EAAGrF,EAAS2K,EAAK3K,OACpBqF,EAAMrF,EAAQqF,GAAO,EACxBwG,EAAMlB,EAAKpF,GAAGF,GACVwG,EAAI2F,GAAG,kCACP5H,EAAOiC,EAAIf,SAAS,4CAA4CE,OAChEpB,EAAKxF,KAAK,UAAWkJ,SAAS1D,EAAKxF,KAAK,WAAY,IAAM,KAEtDyH,EAAIF,SAAS,qBAAuB/B,EAAOiC,EAAIf,SAAS,qBAAqB,MAC7ElB,EAAO9K,EAAE8K,GACTA,EAAKxF,KAAK,UAAWkJ,SAAS1D,EAAKxF,KAAK,WAAY,IAAM,GAC1DwF,EAAK/D,KAAK,OAAON,GAAGwN,GAAalF,SACjChC,EAAMjC,EAAK/D,KAAK,aAEpB2M,GAAkB3G,EAAI,GAAGL,MAAOuH,GAAa,IAIzD,QAASC,IAAUC,GAAnB,GAEQf,GACK7M,EAFLX,IAEJ,KAASW,EAAM,EAAGA,EAAM4N,EAAKjT,SACzBkS,EAAOe,EAAK5N,GACN,SAAW6M,IAAQ,SAAWA,IAAQ,SAAWA,IAFtB7M,IAKjCX,EAAOjF,KAAKyS,GACRA,EAAKgB,eACLxO,EAASA,EAAO8E,OAAOwJ,GAAUd,EAAKiB,QAG9C,OAAOzO,GAEX,QAAS0O,IAAaH,GAAtB,GAEQf,GACK7M,EAFLX,IAEJ,KAASW,EAAM,EAAGA,EAAM4N,EAAKjT,SACzBkS,EAAOe,EAAK5N,GACN,SAAW6M,IAAQ,SAAWA,IAAQ,SAAWA,IAFtB7M,IAK7B6M,EAAKgB,eACLxO,EAASA,EAAO8E,OAAO4J,GAAalB,EAAKiB,SAE7CzO,EAAOjF,KAAKyS,EAAKmB,WAErB,OAAO3O,GAEX,QAAS4O,IAAgB3I,EAAMoI,GAE3B,IADA,GAAmCnJ,GAAMiC,EAAKjF,EAA1CvB,EAAM,EAAGrF,EAAS2K,EAAK3K,OACpBqF,EAAMrF,EAAQqF,GAAO,EACxBwG,EAAMlB,EAAKpF,GAAGF,GACVwG,EAAI2F,GAAG,kCACP5H,EAAOiC,EAAIf,SAAS,4CAA4CE,OAChEpB,EAAKxF,KAAK,UAAWkJ,SAAS1D,EAAKxF,KAAK,WAAY,IAAM,KAEtDyH,EAAIF,SAAS,qBAAuB/B,EAAOiC,EAAIf,SAAS,qBAAqB,MAC7ElB,EAAO9K,EAAE8K,GACTA,EAAKxF,KAAK,UAAWkJ,SAAS1D,EAAKxF,KAAK,WAAY,IAAM,GAC1DgN,GAAcxH,EAAK/D,KAAK,eAAgBsD,EAAevC,IAAU,EAAO,GACxEiF,EAAMjC,EAAK/D,KAAK,aAEpB2M,GAAkB3G,EAAI,GAAGL,MAAOuH,GAAa,IAIzD,QAASQ,IAAcC,EAAOC,EAAUC,GACpCA,EAAMA,GAAO,CACb,IAAIxB,GAAM7M,EAAKrF,CACf,KAAKqF,EAAM,EAAGrF,EAASwT,EAAMxT,OAAQqF,EAAMrF,EAAQqF,IAC/C6M,EAAOsB,EAAMjO,GAAGF,GAAKyF,WAAWE,OAChCkH,EAAK9N,KAAK,UAAWkJ,SAAS4E,EAAK9N,KAAK,WAAY,IAAMsP,GAC1DxB,EAAOuB,EAASlO,GAAGF,GAAKyF,WAAWE,OACnCkH,EAAK9N,KAAK,UAAWkJ,SAAS4E,EAAK9N,KAAK,WAAY,IAAMsP,GAGlE,QAASC,IAAWlD,GAApB,GACQpL,GAAKrF,EAAQG,EAAQ,EACrBkN,EAAOoD,EAAM5K,KAAK,gBACtB,KAAKR,EAAM,EAAGrF,EAASqN,EAAKrN,OAAQqF,EAAMrF,EAAQqF,GAAO,EACrDlF,GAASmN,SAASD,EAAKhI,GAAK9E,MAAMJ,MAAO,GAE7C,OAAOA,GAqiOX,QAASyT,IAAgBC,EAAQC,GAAjC,GAIYC,GACAC,EACAnI,EACAoI,CANRJ,GAASA,EAAO,GAChBC,EAASA,EAAO,GACZD,EAAOlJ,KAAK3K,SAAW8T,EAAOnJ,KAAK3K,SAC/B+T,EAAeF,EAAOxQ,aACtB2Q,EAAcF,EAAOzQ,aAGrB0Q,EAAeC,GACfnI,EAAMiI,EAAOnJ,KAAKmJ,EAAOnJ,KAAK3K,OAAS,GACnCkU,GAAgBtB,KAAK/G,EAAIgH,aACzBhH,EAAMiI,EAAOnJ,KAAKmJ,EAAOnJ,KAAK3K,OAAS,IAE3CiU,EAAOF,EAAeC,IAEtBnI,EAAMgI,EAAOlJ,KAAKkJ,EAAOlJ,KAAK3K,OAAS,GACnCkU,GAAgBtB,KAAK/G,EAAIgH,aACzBhH,EAAMgI,EAAOlJ,KAAKkJ,EAAOlJ,KAAK3K,OAAS,IAE3CiU,EAAOD,EAAcD,GAEzBlI,EAAItL,MAAMH,OAASyL,EAAIxI,aAAe4Q,EAAO,MAGrD,QAASE,IAAgBC,EAAMC,GAA/B,GACQjU,GACAkU,EAAgBF,EAAK/Q,aACrBkR,EAAgBF,EAAKhR,YACrBiR,GAAgBC,EAChBnU,EAASkU,EAAgB,KAClBA,EAAgBC,IACvBnU,EAASmU,EAAgB,MAEzBnU,IACAgU,EAAK7T,MAAMH,OAASiU,EAAK9T,MAAMH,OAASA,GAGhD,QAASoU,IAAWxO,EAAUM,GAC1B,GAAIjB,GAAKrF,EAAQiG,CACjB,UAAWD,KAAarB,IAAUqB,IAAaM,EAC3C,MAAON,EAEX,IAAII,GAAcJ,IAAaA,EAASM,OAASA,EAC7C,MAAON,EAEX,IAAIG,GAAQH,GACR,IAAKX,EAAM,EAAGrF,EAASgG,EAAShG,OAAQqF,EAAMrF,EAAQqF,IAElD,GADAY,EAAUD,EAASX,SACRY,KAAYtB,IAAUsB,IAAYK,GAAQL,EAAQK,OAASA,EAClE,MAAOL,EAInB,OAAO,MAEX,QAASwO,IAAWhE,EAAOiE,GACvB,GAAIA,KAAW,EAAM,CACjBjE,EAAQ3R,EAAE2R,EACV,IAAIkE,GAAa3T,GAAM2T,WAAWlE,EAAM9D,SACxC3L,IAAM4T,aAAanE,GACnBzP,GAAM2T,WAAWlE,EAAM9D,SAAUgI,OAEjC7V,GAAE2R,GAAOoE,IAAI,UAAW,SAAU7F,GAC9BA,EAAE8F,mBACHC,QAGX,QAASC,IAAkBC,EAAMhO,GAC7B,MAAOgO,GAAK1S,QAAQ2S,YAAcjO,EAAOiO,WAAajO,EAAOiO,YAAclR,GAE/E,QAASmR,IAAY1K,EAAQrD,GACzB,QAAStI,EAAEsK,KAAKqB,EAAQ,SAAUyH,GAC9B,MAAOA,GAAK9K,QAAUA,IACvBpH,OAEP,QAASoV,IAAiBnO,EAAQoO,GAC9B,SAAKpO,EAAOG,OAASH,EAAOqO,gBAGxBD,EAAME,WAAaF,EAAME,SAAStO,EAAOG,WAGzCH,EAAOsO,WAAatO,EAAOsO,SAASF,KAK5C,QAASG,IAAetM,GACpB,MAAOpK,GAAEoK,GAASsI,GAAG,0MAEzB,QAASiE,IAAWzG,GAChB,GAAI0G,GAAgB5W,EAAEkQ,EAAE0G,eAAgBC,EAAWD,EAAclE,GAAG,MAAOf,EAAQnP,KAAKmP,MAAM3L,IAAIxD,KAAKsU,aAAcC,EAAcvU,KAAK8J,MAAMuB,SAAS7H,IAAIhG,EAAE,SAAUwC,KAAKwU,eAAgBC,EAAUP,GAAexG,EAAE1E,QAAS0L,EAAgBlX,EAAEkQ,EAAE1E,QAAQkH,GAAG,eAAgBlH,EAASxL,EAAEkQ,EAAE1E,QAAS2L,EAAeP,EAAc9F,QAAQ,SAAS,EACnV,OAAImG,IAAWL,EAAc7P,KAAK7E,GAAMkV,aAAa,eAAelW,QAChEsB,KAAK6U,YAAYT,GACjB,IAEAO,IAAiBxF,EAAM,IAAMwF,IAAiBxF,EAAM,IAAMwF,IAAiBJ,EAAY,IAAMI,IAAiBJ,EAAY,IAG1HvL,EAAOkH,GAAG,kCAGVlQ,KAAKiB,QAAQ6T,aACb9U,KAAK6U,YAAYT,GAAe,EAAOM,IAEvCL,GAAaI,GACbM,WAAW,WACHvX,EAAEkC,GAAMsV,kBAAkB3K,SAAS,cAGnC7M,EAAEkC,GAAMsV,kBAAkB9E,GAAG+E,KAAmBf,GAAexU,GAAMsV,mBAAsBxX,EAAE0X,SAASP,EAAcjV,GAAMsV,mBAC1H7B,GAAWwB,GAAc,KAIjCN,IAAa3U,GAAMyV,QAAQC,OAC3B1H,EAAE8F,kBApBN,GAuBJ,QAAS6B,IAAiBzN,EAASqD,GAC/B,IAAKA,EACD,MAAO,EAEX,IAAI7H,GAAS,CAIb,OAHI1D,IAAMyV,QAAQG,QAAQC,SACtBnS,EAASwE,EAAQ/I,SAEduE,EAEX,QAASoS,IAAqBvU,GAC1B,GAAIwU,EACJ,OAAuB,gBAAZxU,IACPwU,EAAgBxU,EAAQyU,cACF,SAAlBD,GACSpM,MAAM,IAGXA,KAAMoM,EAActJ,QAAQ,WAC5B7G,QAASmQ,EAActJ,QAAQ,gBAGhClL,KAAY,GACVoI,MAAM,GADZ,EAIX,QAASsM,IAA0BC,EAAShO,GAA5C,GACQ5F,GACA6T,CACJ,SAAKD,IAGLhO,EAAUpK,EAAEoK,MACRA,EAAQ,IAAMsN,GAASU,EAAQ,GAAIhO,EAAQ,MAC3C5F,EAAY4F,EAAQmC,SAAS+L,IAAMF,EAAQ7L,SAAS+L,IACpDD,EAAajO,EAAQmO,cAAgB,GAChC/T,GAAa,GAAKgU,GAAKC,IAAIjU,IAAc6T,IAAeG,GAAKE,MAAMlU,EAAY6T,IAAeD,EAAQ9W,YAMnH,QAASqX,IAAS7N,GACd,MAAOA,KAASA,EAAK+B,SAAS,gBAAkB/B,EAAK+C,SAAShB,SAAS,oBAE3E,QAAS+L,IAAiBC,GACtB,MAAO,gCAAkCA,EAAsB,iFAA6FC,GAAY,KAAOC,GAAW,8BAE9L,QAASC,IAA8BH,GACnC,MAAO,gBAAkBA,EAAsB,uCAEnD,QAASI,IAAgBC,EAASlI,EAAO9Q,EAAMiZ,EAAU9Q,EAAK+Q,GAC1D,MAAO,kBAAoBA,EAAwB,mBAAqB/Q,EAAM,IAAM,IAAM,0BAA4B9C,EAAWyL,GAAS,gBAAkBkI,EAAU,sBAAwBC,EAAW,0CAAsDA,EAAW,eAAiB,cAAgB,4BAA8BL,GAAY,MAAQK,EAAWJ,GAAWM,IAAU,SAAWnZ,EAAO,iBAEnZ,QAASoZ,IAA6BJ,GAClC,MAAO,sDAA6DA,EAAU,iEAElF,QAASK,IAAUxM,EAAK3D,GACpB2D,EAAM/M,EAAE+M,GAAK,GAETA,EAAItL,MAAMyI,QADVd,EACoB,GAEA,OAG5B,QAASqK,IAAW5Q,EAAO2W,GACvB,GAAIC,GAAY,KAAMC,EAAW,KAAMC,EAAc,KAAMC,EAAa,KAAMC,EAAW,IACzF,QAAQ,GAAKhX,GAAOzC,QAAQqZ,EAAW,SAASrZ,QAAQsZ,EAAU,QAAQtZ,QAAQyZ,EAAU,QAAQzZ,QAAQuZ,EAAa,SAAUvH,GAC/H,MAAIoH,GACO,KAAOpH,EAEX,WACRhS,QAAQwZ,EAAY,SA/5Q9B,GASOE,IAmBAC,GAqUAC,GA41BAC,GA5rCA/X,GAAQD,OAAOC,MAAOgY,GAAKhY,GAAMgY,GAAIC,GAAajY,GAAMiS,KAAKgG,WAAYC,GAAmBlY,GAAMiS,KAAKiG,iBAAkBpI,GAAyB9P,GAAMyV,QAAQ0C,eAAgBC,GAAgBpY,GAAMsV,eAAgB+C,GAASL,GAAGK,OAAQC,GAAatY,GAAMuY,YAAalC,GAAcrW,GAAMwY,aAAcC,GAAOzY,GAAMyY,KAAMrT,GAAgBtH,EAAEsH,cAAejF,GAASrC,EAAEqC,OAAQS,GAAM9C,EAAE8C,IAAKwH,GAAOtK,EAAEsK,KAAMjD,GAAUrH,EAAEqH,QAAS2G,GAAUhO,EAAEgO,QAASrN,GAAO8E,MAAMmV,UAAUja,KAAMiH,GAAQ5H,EAAE4H,MAAOiT,GAAa3Y,GAAM2Y,WAAYC,GAAgB9a,EAAE8a,cAAepD,GAAW1X,EAAE0X,SAAUc,GAAOrH,KAAM4J,GAAM,IAAKC,GAAW,WAAYC,GAAQ,QAASC,GAAuB,mBAAoBC,GAAY,4BAA8BjZ,GAAMoD,KAAK,WAAa,uFAAwF8V,GAA0B,uHAAwHC,GAAS,qCAAsCC,GAAU,yEAA0EC,GAAU,kGAAmGC,GAAeD,GAAU,SAAUE,GAAcF,GAAU,QAASG,GAAeL,GAAS,UAAYC,GAAU,SAAUK,GAAc,wDAAyDhU,GAAK,aAAciU,GAA0B,wBAAyBC,GAAiB,eAAgBC,GAAO,OAAQC,GAAa,aAAcC,GAAO,OAAQC,GAAS,SAAUC,GAAa,aAAcC,GAAiB,iBAAkBC,GAAiB,iBAAkBC,GAAiB,iBAAkBC,GAAiB,iBAAkBC,GAAY,YAAaC,GAAS,SAAUC,GAAa,aAAcC,GAAa,aAAcC,GAAc,cAAeC,GAAY,YAAaC,GAAe,eAAgBC,GAAiB,iBAAkBC,GAAc,aAAcC,GAAO,OAAQC,GAAS,SAAUC,GAAS,SAAUC,GAAO,OAAQC,GAAU,kBAAmBC,GAAY,kBAAmBC,GAAW,mBAAoBC,GAAW,aAAc9F,GAAgB,+BAAmC8F,GAAUC,GAAiB,mBAAoBC,GAAa,SAAUC,GAAa,SAAUC,GAAc,eAAgBC,GAA2B,uBAAwBC,GAAoB,gBAAiBC,GAAoB,wBAAyBC,GAAsB,uBAAwBC,GAAsB,uBAAwBC,GAAgC,wBAAyBC,GAAS,SAAUC,GAAe,eAAgBC,GAAgB,gBAAiBC,GAAa,aAAcC,GAAe,eAAgBC,GAAc,cAAeC,GAAgB,gBAAiBC,GAAW,WAAY/W,GAAQ,QAASgX,GAAY,YAAaC,GAAS,SAAUC,GAAW,WAAYC,GAAW,WAAYhZ,GAAS,SAAUiZ,GAAS,SAAUC,GAAgB,gBAAiBC,GAAQ,QAASC,GAAQ,QAASC,GAAS,SAAUC,GAAS,SAAUC,GAAY,MAAOC,GAAkB,EAAGC,GAAU,UAAWC,GAAW,WAAYC,GAAS,SAAUC,GAAO,OAAQC,GAAa,aAAcC,GAAgB,+CAAgDC,GAAY,wBAAyBC,GAAgB,SAAUC,GAAe,SAAU/G,GAAW,WAAYM,GAAS,SAAUP,GAAY,aAAciH,GAAe,YAAaC,GAAqB,MAAOC,GAAmB,sBAAuBpM,GAAyBqM,OAAO,MAAQD,GAAmB,oCAAgDA,GAAmB,OAAQ7K,GAAsB8K,OAAO,MAAQD,GAAmB,mBAA+BA,GAAmB,OAAQE,GAAoB,uQAA4RC,GAAmB,iBAAmB7C,GAAW,uFAAwF8C,GAAyB,iBAAmB9C,GAAW,4FAA6F+C,IAAQ,EAAOxI,GAAU5V,GAAMyV,QAAQG,QAC/2IyI,GAASzI,GAAQ0I,MAA4B,KAApB1I,GAAQ2I,QACjCC,GAAQ,SAAS5M,KAAK6M,UAAUC,WAChCC,IACAha,QAAS,YACTia,OAAQ,WACRC,gBAAiB,qBAGjB7G,IAAG8G,QACHlH,GAAcI,GAAG8G,MAAM3e,QACnBC,KAAM,SAAU8H,EAAS3G,GACrByW,GAAG8G,MAAMC,GAAG3e,KAAK4e,KAAK1e,KAAM4H,EAAS/H,IAAO,KAAUoB,IACtDjB,KAAK2e,WAAW1d,QAAQ2d,WAAY,EACpC5e,KAAK2e,WAAWE,eAAgB,GAEpC5d,SAAW+D,KAAM,eACjB8Z,WAAY,WACR,GAAIC,GAAO/e,IACX,OAAO2O,MAAKqQ,MAAMD,EAAKE,mBAAqB,IAAMF,EAAKG,YAAc,KAEzED,gBAAiB,WACb,GAAIN,GAAa3e,KAAK2e,UACtB,OAAOA,GAAaA,EAAWQ,aAAY,IAAS,EAAI,MAIhE5H,GAAoBQ,GAAOlY,QAC3BC,KAAM,SAAU8H,EAAS3G,GACrB,GAAI8d,GAAO/e,IACX+X,IAAO0G,GAAG3e,KAAK4e,KAAKK,EAAMnX,EAAS3G,GACnC8d,EAAKK,gBAAkBha,GAAM2Z,EAAKM,QAASN,GAC3CA,EAAKO,cAAcre,EAAQ0d,YAC3BI,EAAKQ,QAETD,cAAe,SAAUX,GACrB,GAAII,GAAO/e,IACP+e,GAAKJ,YACLI,EAAKJ,WAAWa,OAAOxF,GAAQ+E,EAAKK,iBAExCL,EAAKJ,WAAaA,EAClBI,EAAKJ,WAAWc,KAAKzF,GAAQ+E,EAAKK,iBAClCL,EAAKJ,WAAW1d,QAAQ2d,WAAY,GAExC3d,SACI+D,KAAM,oBACN0a,WAAYliB,EAAEmiB,KACdC,UAAU,EACVC,gBAAiB,MAErBC,QACIrF,GACAD,GACAE,IAEJqF,QAAS,WACL,GAAIhB,GAAO/e,IACX+X,IAAO0G,GAAGsB,QAAQrB,KAAKK,GACvBA,EAAKJ,WAAWa,OAAOxF,GAAQ+E,EAAKK,iBACpCL,EAAKnJ,QAAQpS,IAAIub,EAAKiB,mBAAmBC,IAAI9a,IAC7C+a,aAAanB,EAAKoB,UACdpB,EAAKqB,mBACLF,aAAanB,EAAKqB,mBAElBrB,EAAKsB,OACLtB,EAAKsB,KAAKN,UACVhB,EAAKsB,KAAO,MAEhBtB,EAAKnJ,QAAUmJ,EAAKnX,QAAUmX,EAAKiB,kBAAoB,KACvDjB,EAAKK,gBAAkB,MAE3BG,KAAM,WACF,GAAoF3J,GAAhFmJ,EAAO/e,KAAMsgB,EAAY5gB,GAAMyV,QAAQmL,YAAc,EAAG1Y,EAAUmX,EAAKnX,OAC3EA,GAAQnE,KACJ5E,MAAO,OACP0hB,SAAU,WACX9c,IAAIqa,GAAQ,eAAiB,gBAAiBwC,GACjDvB,EAAK1a,QAAUuD,EAAQ4B,WAAWgX,QAClC5K,EAAUmJ,EAAKnJ,QAAUmJ,EAAK1a,QAAQkb,KAAK,4CAA4ClU,SAASoU,KAAK,iBAAmBta,GAAK,cAAgBA,GAAIC,GAAM2Z,EAAK0B,aAAc1B,IAC1KA,EAAK2B,YACDhhB,GAAMyV,QAAQwL,qBAAuBjhB,GAAMyV,QAAQC,SACnD2J,EAAKnJ,QAAQnS,IAAI,eAAgB,QACjCsb,EAAKsB,KAAO,GAAI3gB,IAAMkhB,WAAW7B,EAAKnJ,SAClCiL,QAAQ,EACRC,gBAAgB,EAChBC,MAAO,SAAUrT,GACbA,EAAEsT,OAAOC,WAEbC,KAAM,SAAUxT,GACZqR,EAAKiB,kBAAkBmB,UAAUpC,EAAKiB,kBAAkBmB,YAAczT,EAAE0T,EAAEC,OAC1E3hB,GAAM2T,WAAWuC,EAASlW,GAAM2T,WAAWuC,GAAWlI,EAAE4T,EAAED,OAC1D3T,EAAE8F,qBAIduL,EAAKiB,kBAAoBxiB,EAAE,oDAAoDiG,KAAM5E,MAAOyhB,IAAapc,SAAS0D,GAAS6X,KAAK,SAAWta,GAAIC,GAAM2Z,EAAKwC,QAASxC,KAEvK2B,SAAU,WACN,GAAI3B,GAAO/e,IACP+d,MACAgB,EAAKnJ,QAAQnS,KAAM+d,aAAc9G,KACjCqE,EAAKnX,QAAQnE,IAAIqa,GAAQ,eAAiB,gBAAiB,KAGnE2C,aAAc,SAAU/S,GACpB,IAAIA,EAAE+T,QAAN,CAGA,GAAInB,GAAYtgB,KAAKggB,kBAAmBmB,EAAYb,EAAUa,YAAaE,EAAQ3hB,GAAMgiB,YAAYhU,IACjG2T,GAAWA,EAAQ,GAAmB,IAAdF,GAAsBE,EAAQ,GAAKF,EAAYb,EAAU,GAAGqB,cAAgBrB,EAAU,GAAGsB,eACjHlU,EAAE8F,iBACFxT,KAAKggB,kBAAkBmB,UAAUA,GAAaE,MAGtDE,QAAS,SAAU7T,GACf,GAAIqR,GAAO/e,KAAM6hB,GAAgB9C,EAAK9d,QAAQ2e,SAAUuB,EAAYzT,EAAE0G,cAAc+M,UAAWxC,EAAaI,EAAKJ,WAAYmD,EAAY/C,EAAKW,WAAYqC,EAAOpD,EAAWoD,QAAU,EAAGhB,EAAQhC,EAAKiD,aAAeD,EAAMjjB,EAASigB,EAAKnX,QAAQqa,cAAeC,KAAmBnD,EAAKoD,eAAiBpD,EAAKoD,cAAgBhB,GAAYiB,EAAiBpM,GAAKvL,IAAIuL,GAAKE,MAAMiL,EAAYW,GAAY,GAAIO,EAAiBH,EAAgBlM,GAAKgJ,KAAKlgB,EAASgjB,GAAa9L,GAAKE,MAAMpX,EAASgjB,GAAYQ,EAAgBtM,GAAKvL,IAAI2X,EAAiBC,EAAgB,EACtiB,OAAItD,GAAKwD,gBACLxD,EAAKwD,gBAAiB,EACtB,IAEJxD,EAAKyD,eAAiBzD,EAAK0D,WAC3B1D,EAAK0D,WAAatB,EAAYJ,EAAQe,EACtC/C,EAAKoD,cAAgBhB,EACrBpC,EAAK2D,WAAab,EACb9C,EAAK4D,OAAOP,EAAgBE,EAAeJ,KAC5CnD,EAAKnJ,QAAQ,GAAGuL,UAAYpC,EAAK0D,YAErC1D,EAAK6D,QAAQlI,IACTmH,IACI9C,EAAKqB,mBACLF,aAAanB,EAAKqB,mBAEtBrB,EAAKqB,kBAAoBrL,WAAW,WAChCgK,EAAK2D,YAAa,EAClB3D,EAAK8D,MAAM9D,EAAKiD,YAAajD,EAAKJ,WAAWmE,SAC9C,MAfP/D,IAkBJgE,YAAa,WACT/iB,KAAKgjB,UAAU,IAEnBC,eAAgB,WACZ,GAAI3C,GAAYtgB,KAAKggB,iBACrBhgB,MAAKgjB,UAAU1C,EAAU,GAAGsB,aAAetB,EAAUxhB,WAEzDokB,oBAAqB,WACjBljB,KAAK4V,QAAQuL,UAAU,IAE3BgC,uBAAwB,WACpBnjB,KAAK4V,QAAQuL,UAAUnhB,KAAK4V,QAAQ,GAAGgM,eAE3CwB,6BAA8B,WAAA,GACtBrE,GAAO/e,KACP4V,EAAU5V,KAAK4V,QACfyN,EAAmBzN,EAAQuL,WAC3BvL,GAAQ,GAAG0N,YAAc1N,EAAQ,GAAG2N,cAC/BxE,EAAKyE,kBAAoBH,GAAoBtE,EAAK0E,yBACnD7N,EAAQuL,UAAUkC,EAAmB3jB,GAAMyV,QAAQmL,aACnDvB,EAAK0D,WAAa7M,EAAQuL,YAC1BpC,EAAKyE,kBAAmB,GAErBzE,EAAKyE,mBACPzE,EAAK2E,+BACN9N,EAAQuL,UAAUkC,EAAmB3jB,GAAMyV,QAAQmL,aACnDvB,EAAK0D,WAAa7M,EAAQuL,aAE9BpC,EAAKyE,kBAAmB,IAGhCR,UAAW,SAAU7B,GAAV,GACHpC,GAAO/e,KACPsgB,EAAYvB,EAAKiB,iBACjBM,GAAUa,cAAgBA,IAC1BpC,EAAKwD,gBAAiB,GAE1BxD,EAAKnJ,QAAQuL,UAAUA,GACvBpC,EAAK0D,WAAa1D,EAAKnJ,QAAQuL,YAC/Bb,EAAUa,UAAUA,GACpBpC,EAAKoD,cAAgB7B,EAAUa,aAEnCwC,iBAAkB,WACd,MAA8C,KAAvC3jB,KAAKggB,kBAAkBmB,aAElCsC,oBAAqB,WAAA,GACbnD,GAAYtgB,KAAKggB,kBACjBmB,EAAYb,EAAUa,WAC1B,OAAOA,GAAY,GAAKA,GAAanV,SAASsU,EAAU,GAAGsB,aAAetB,EAAUxhB,SAAU,KAElG4kB,2BAA4B,WACxB,GAAI9N,GAAU5V,KAAK4V,OACnB,OAAOA,GAAQuL,aAAenV,SAAS4J,EAAQ,GAAGgM,aAAehM,EAAQ9W,SAAU,KAEvF8kB,UAAW,SAAUnX,GACjB,GAAIoX,GAAa7jB,KAAKgiB,aAAehiB,KAAK2e,WAAWoD,QAAU,CAC/D,OAAO8B,GAAapX,GAExBzC,SAAU,SAAUgB,GAAV,GAGF5H,GAFAygB,EAAa7jB,KAAKgiB,aAAehiB,KAAK2e,WAAWoD,QAAU,EAC3D7C,EAAWlf,KAAK2e,WAAWO,UAO/B,OAJI9b,GADA4H,EAAQ6Y,EACC7Y,EAAQ6Y,EAERA,EAAa7Y,EAAQ,EAE3B5H,EAAS8b,EAAWA,EAAW9b,GAE1C0gB,eAAgB,SAAUvZ,GAAV,GACR9F,GAAYzE,KAAK4V,QAAQ,GACzBmO,EAAkBtf,EAAUkd,aAC5BqC,EAAmBhkB,KAAKyjB,sBAAiEhf,EAAU0c,UAAnDnhB,KAAKyiB,YAAche,EAAU0c,UAC7E8C,EAAgB1Z,EAAI,GAAGvI,UACvBkiB,EAAgB3Z,EAAI,GAAGxI,YACvBiiB,GAAkBC,EAClBjkB,KAAKggB,kBAAkB,GAAGmB,WAAa4C,EAAkB,EAClDE,EAAgBC,GAAiBF,EAAkBD,IAC1D/jB,KAAKggB,kBAAkB,GAAGmB,WAAa4C,EAAkB,IAGjEpB,OAAQ,SAAUP,EAAgBE,EAAe6B,GAAzC,GACApF,GAAO/e,KAAM2e,EAAaI,EAAKJ,WAAYe,EAAaX,EAAKW,WAAYoD,EAAOnE,EAAWmE,OAAQe,EAAa9E,EAAKiD,aAAerD,EAAWoD,QAAU,EAAGqC,EAAcpO,GAAKE,MAAMkM,EAAiBU,GAAQA,EAAMuB,GAAW,EAAOC,EAAa,IACnPhE,EAAYvB,EAAKiB,kBACjBuE,EAAmBjP,GAAQC,OAAS,EAAI,EACxCiP,EAAQ7F,EAAW8F,gBAAkB9F,EAAWQ,aAAY,GAAQR,EAAW6F,OAyBnF,OAxBIpC,GAAiByB,GACjBQ,GAAW,EACXR,EAAa7N,GAAKvL,IAAI,EAAG6X,EAAgBQ,GACzC/D,EAAK0D,WAAanC,EAAUa,YAAc0C,EAAanE,EACvDX,EAAK8D,MAAMgB,EAAYf,IAChBR,GAAiBuB,EAAaf,IAASqB,GAC9CE,GAAW,EACXR,EAAa7N,GAAK0O,IAAItC,EAAgBoC,EAAQ1B,GAE1C/D,EAAK0D,WADLnC,EAAUa,aAAeb,EAAU,GAAGsB,aAAetB,EAAU,GAAGve,aAAewiB,EAC/DxF,EAAKnJ,QAAQ,GAAGgM,aAAe7C,EAAKnJ,QAAQ,GAAG7T,aAC1Dgd,EAAKJ,WAAW8F,iBAAmBrC,GAAkBoC,EAAQ1B,EAClD/D,EAAKnJ,QAAQ,GAAGgM,aAAe7C,EAAKnJ,QAAQ,GAAG7T,cAAgBgd,EAAK0D,WAAa1D,EAAKyD,gBAEtF9C,EAEtBX,EAAK8D,MAAMgB,EAAYf,KACf/D,EAAK4F,WAAa5F,EAAK9d,QAAQ2e,WACnCwC,EAAiBgC,EAActB,EAAOA,EAAOwB,GAAclC,EAAiBU,GAC5EnE,EAAWiB,SAASwE,EAActB,EAAMA,EAAMtlB,EAAEmiB,MAEhD2C,EAAgB8B,EAActB,EAAOwB,GACrC3F,EAAWiB,SAASwE,EAActB,EAAMA,EAAMtlB,EAAEmiB,OAGjD0E,GAEXA,SAAU,WACN,MAAOrkB,MAAK2kB,WAEhB9B,MAAO,SAAUd,EAAMe,EAAM8B,GACzB,GAAI7F,GAAO/e,KAAM6hB,GAAgB9C,EAAK9d,QAAQ2e,SAAUjB,EAAaI,EAAKJ,WAAYkG,EAAelG,EAAW8F,eAChHG,GAAWvM,GAAWuM,GAAYA,EAAWpnB,EAAEmiB,KAC3CZ,EAAK6D,QAAQnI,IACTsH,KAAMA,EACNe,KAAMA,MAId5C,aAAanB,EAAKoB,UAClBpB,EAAK4F,WAAY,EACjB5F,EAAKiD,YAAcD,EACf8C,GAAgBlG,EAAWmG,kBAAkB/C,EAAMA,EAAOe,KAAU+B,GAAgBlG,EAAWoG,QAAQhD,EAAMe,IAC7GpjB,GAAMgY,GAAGsN,SAASxnB,EAAEuhB,EAAKnJ,SAASvK,UAAU,GAC5CsT,EAAWsG,MAAMlD,EAAMe,EAAM,WACzBpjB,GAAMgY,GAAGsN,SAASxnB,EAAEuhB,EAAKnJ,SAASvK,UAAU,GAC5CuZ,IACA7F,EAAK6D,QAAQpI,KACd,UAEEqH,GACDniB,GAAMgY,GAAGsN,SAASjG,EAAKnJ,QAAQvK,UAAU,GAE7C0T,EAAKoB,SAAWpL,WAAW,WAClBgK,EAAK2D,aACFb,GACAniB,GAAMgY,GAAGsN,SAASjG,EAAKnJ,QAAQvK,UAAU,GAE7CsT,EAAWsG,MAAMlD,EAAMe,EAAM,WACzBpjB,GAAMgY,GAAGsN,SAASjG,EAAKnJ,QAAQvK,UAAU,GACzCuZ,IACA7F,EAAK6D,QAAQpI,QAGtB,QAGX0K,iBAAkB,SAAUC,GAAV,GACqNphB,GAA/Ngb,EAAO/e,KAAMoP,EAAO,GAAIgW,EAAYrG,EAAK9d,QAAQ4e,gBAAiBlB,EAAaI,EAAKJ,WAAY2B,EAAa5gB,GAAMyV,QAAQwL,oBAAkD,EAA5BjhB,GAAMyV,QAAQmL,YAAiB+E,EAAiBtG,EAAKnJ,QAAQ,GAC9M0P,EAAsBvG,EAAK0E,sBADyM/D,EAE3NX,EAAKW,WAAaX,EAAK9d,QAAQye,cAAgB,EACxD6F,EAAqBF,EAAe/B,YAAc+B,EAAevjB,YAAcwe,EAAY,EAHuHkF,GAIvM7G,EAAW8F,gBAAkB9F,EAAWQ,aAAY,GAAQR,EAAW6F,SAAW9E,EAAa6F,CAC9G,KAAKxhB,EAAM,EAAGA,EAAMiS,GAAKE,MAAMsP,EAAcJ,GAAYrhB,IACrDqL,GAAQ,gCAAkCgW,EAAY,YAEtDI,GAAcJ,IACdhW,GAAQ,gCAAkCoW,EAAcJ,EAAY,cAExErG,EAAKiB,kBAAkB5Q,KAAKA,IACxBkW,GAAwBvG,EAAK0E,uBAA0B1E,EAAKJ,WAAW8F,iBACvE1F,EAAKkE,iBAEsB,IAApBlE,EAAK0D,YAAgC0C,IAC5CE,EAAelE,UAAYpC,EAAK0D,WAChC1D,EAAKqE,iCAGb/D,QAAS,SAAU3R,GAAV,GACDqR,GAAO/e,KAAM2e,EAAaI,EAAKJ,WAAYkF,EAAa9E,EAAKiD,YAC7D5Y,GAAUsE,OAAStE,OACnB+b,EAAsBpG,EAAK0E,wBAA0Bra,GAAUA,IAAWmR,IAAenR,IAAWqQ,IAAUrQ,IAAWuR,EAC7Hjb,IAAMgY,GAAGsN,SAASjG,EAAKnJ,QAAQvK,UAAU,GACzC6U,aAAanB,EAAKoB,UAClBpB,EAAKmG,iBAAiBC,GAClBpG,EAAKsB,MACLtB,EAAKsB,KAAKoF,SAEY,IAAf5B,GAA+B9E,EAAK4F,cACtCvb,GAAUA,IAAWuR,IAAQvR,IAAWmR,IAA0B,gBAAXnR,KACxD2V,EAAKiD,YAAcrD,EAAWoD,QAER,IAAtBpD,EAAW+G,QAAkBtc,IAAUA,IAAWuR,IAAQvR,IAAWmR,IAA0B,gBAAXnR,GAAuC,kBAAXA,KAChH2V,EAAKiB,kBAAkB,GAAGmB,UAAY,IAG9CpC,EAAK4F,WAAY,KAuBrBnN,IACAmO,QACIjoB,KAAM,iBACN6T,UAAW,aACXqU,UAAW,mBAEfH,QACI/nB,KAAM,iBACN6T,UAAW,wBACXqU,UAAW,qBAEfC,MACInoB,KAAM,eACN6T,UAAW,sBACXqU,UAAW,oBAEf7F,SACIriB,KAAM,SACN6T,UAAW,gBACXqU,UAAW,oBAEfE,MACIpoB,KAAM,OACN6T,UAAW,cACXqU,UAAW,mBAEfG,QACIroB,KAAM,SACN6T,UAAW,0BACXqU,UAAW,oBAEfI,YACItoB,KAAM,SACN6T,UAAW,gBACXqU,UAAW,qBAEfK,OACIvoB,KAAM,kBACN6T,UAAW,eACXqU,UAAW,yBAEfM,KACIxoB,KAAM,gBACN6T,UAAW,aACXqU,UAAW,uBAEfO,QACIzoB,KAAM,YACN6T,UAAW,kBA4yBfkG,GAAO/X,GAAMgY,GAAG0O,gBAAgBvmB,QAChCC,KAAM,SAAU8H,EAAS3G,EAAS6e,GAC9B,GAAIf,GAAO/e,IACXiB,GAAU4D,GAAQ5D,IAAa0d,WAAY1d,GAAYA,EACvD8W,GAAO0G,GAAG3e,KAAK4e,KAAKK,EAAMnX,EAAS3G,GAC/B6e,IACAf,EAAKsH,QAAUvG,GAEnBhC,GAAQpe,GAAMyV,QAAQ2I,MAAMlW,GAC5BmX,EAAKuH,WACLvH,EAAKwH,QACLxH,EAAKyH,SAAShpB,EAAEqC,QAAO,KAAUkf,EAAK9d,QAAQqE,UAC1CyZ,EAAK0H,oBACLjpB,EAAEkpB,KAAKC,MAAM,KAAM5H,EAAK0H,qBAAqBG,KAAK,WAC9C7H,EAAK0H,oBAAsB,KAC3B1H,EAAK8H,kBAGT9H,EAAK8H,iBAGbA,cAAe,WACX,GAAI9H,GAAO/e,IACX+e,GAAK+H,cACL/H,EAAKgI,iBACLhI,EAAKiI,SACLjI,EAAKkI,SACLlI,EAAKmI,aACLnI,EAAKoI,WACLpI,EAAKqI,YACLrI,EAAKsI,oBACLtI,EAAKuI,aACLvI,EAAKwI,eACLxI,EAAKyI,cACLzI,EAAK0I,aACL1I,EAAK2I,WACL3I,EAAK4I,YACL5I,EAAK6I,6BACL7I,EAAK8I,mBACL9I,EAAK+I,oBACD/I,EAAK9d,QAAQ8mB,SACbhJ,EAAKJ,WAAWqJ,SAEhBjJ,EAAKkJ,OAASlJ,EAAKmJ,UAAY,EAC/BnJ,EAAKoJ,WAELpJ,EAAK3a,gBACL2a,EAAKnJ,QAAQwS,SAAS,wBACtBrJ,EAAKsJ,eAAiB,WAClBtJ,EAAKuJ,UAET9qB,EAAEiC,QAAQwF,GAAG,SAAWE,GAAI4Z,EAAKsJ,iBAErC3oB,GAAM6oB,OAAOxJ,IAEjBe,QACI9F,GACA,cACA,SACAI,GACAC,GACAC,GACAZ,GACAC,GACAE,GACAD,GACAE,GACAR,GACAC,GACAC,GACAC,GACAU,GACAJ,GACA4B,GACAC,GACA1B,GACAD,GACA4B,GACAC,GACAC,GACAC,GACAC,GACA,OACA,OACA,SACA,QACA,cACA,gBACA,gBAEJqD,cAAe,SAAUX,GAAV,GAGP6J,GAFAzJ,EAAO/e,KACPyoB,EAAa1J,EAAK9d,QAAQwnB,UAE9B1J,GAAK9d,QAAQ0d,WAAaA,EAC1BI,EAAK+H,cACL/H,EAAKqI,YACLrI,EAAKkI,SACDwB,IACIA,EAAWC,SACXF,EAAoBzJ,EAAK1a,QAAQE,KAAK,+BACtC7E,GAAM2T,WAAWmV,EAAmBnT,GAAiBmT,EAAmB1K,OAExE0K,EAAoBzJ,EAAK7P,MACzBxP,GAAM2T,WAAW0L,EAAK1a,QAASgR,GAAiBmT,EAAmB1K,OAGvEiB,EAAK9d,QAAQ2S,WACbmL,EAAKmI,aAELnI,EAAK4J,mBACL5J,EAAK4J,kBAAkBrJ,cAAcP,EAAK9d,QAAQ0d,YAElDI,EAAK9d,QAAQ6T,aACbiK,EAAKwI,eAELxI,EAAK9d,QAAQ+S,YACb+K,EAAKyI,cAELzI,EAAK9d,QAAQ8mB,SACbhJ,EAAKJ,WAAWqJ,QAEhBjJ,EAAKoJ,WAGblnB,SACI+D,KAAM,OACNM,WACAsjB,QAAS,KACTb,UAAU,EACVc,YAAY,EACZJ,YAAY,EACZK,UAAU,EACV9U,YAAY,EACZ+U,WAAW,EACXjU,aAAa,EACbkU,UAAU,EACVC,kBAAkB,EAClBhV,UAAU,EACViV,cAAc,EACdtV,WAAW,EACXuV,YAAa,GACbC,eAAgB,GAChBjD,QAAQ,EACRkD,WAAW,EACX1K,cACA7f,OAAQ,KACRwqB,WAAW,EACXC,aAAa,EACbC,YAAY,EACZC,eAAgB,KAChBC,wBAAyB,EACzBC,OAAQ,GACRC,UACI3V,UACI4V,aAAcvM,GACdwM,aAAc3M,GACd4M,cAAe1M,IAEnB3Y,UACIihB,OAAQnO,GAAgBmO,OAAOjoB,KAC/B+nB,OAAQjO,GAAgBiO,OAAO/nB,KAC/BmoB,KAAMrO,GAAgBqO,KAAKnoB,KAC3BqiB,QAASvI,GAAgBuI,QAAQriB,KACjCooB,KAAMtO,GAAgBsO,KAAKpoB,KAC3BqoB,OAAQvO,GAAgBuO,OAAOroB,KAC/BsoB,WAAYxO,GAAgBwO,WAAWtoB,KACvCuoB,MAAOzO,GAAgByO,MAAMvoB,KAC7BwoB,IAAK1O,GAAgB0O,IAAIxoB,KACzByoB,OAAQ3O,GAAgB2O,OAAOzoB,MAEnC2rB,UAAWjM,GACX4M,2BAA4B,GAC5BC,YAAa,8BACbC,cAAe,iCAEnBrrB,MAAO,MAEXkhB,QAAS,WACL,GAAiBnY,GAAbmX,EAAO/e,IACX+e,GAAKoL,cAAc,WACnBpL,EAAKqL,4BACLrS,GAAO0G,GAAGsB,QAAQrB,KAAKK,GACnB/e,KAAKqqB,qBACLrqB,KAAKqqB,mBAAmBpK,IAAI9a,IAC5BnF,KAAKqqB,mBAAqB,KAC1BrqB,KAAKsqB,cAAgB,MAErBvL,EAAKsJ,gBACL7qB,EAAEiC,QAAQwgB,IAAI,SAAW9a,GAAI4Z,EAAKsJ,gBAElCtJ,EAAKwL,OAASxL,EAAKwL,MAAM3iB,SACzBmX,EAAKwL,MAAMxK,UAEXhB,EAAKyL,OACLtK,aAAanB,EAAKyL,OAElBzL,EAAK0L,kBACLvK,aAAanB,EAAK0L,kBAElB1L,EAAK2L,wBACLxK,aAAanB,EAAK2L,wBAElB3L,EAAK4L,sBACLzK,aAAanB,EAAK4L;AAEtB5L,EAAKwL,MAAQ,KACbxL,EAAK6L,oBACD7L,EAAK9d,QAAQsoB,aACbxK,EAAKnJ,QAAQjE,KAAK,oBAAoBoO,UAEtChB,EAAK/K,YAAc+K,EAAK/K,WAAWpM,UACnCmX,EAAK/K,WAAW+L,UAChBhB,EAAK8L,YACL9L,EAAK+L,aAAe,KAChB/L,EAAKgM,cACLhM,EAAKnJ,QAAQqK,IAAI,UAAWlB,EAAKgM,aACjChM,EAAKS,OAAOT,EAAKgM,cAEjBhM,EAAKiM,uBACLjM,EAAKS,OAAOT,EAAKiM,sBACjBjM,EAAKiM,qBAAuB,MAE5BjM,EAAKkM,kBACLlM,EAAKnJ,QAAQqK,IAAI,QAASlB,EAAKkM,mBAGvClM,EAAK/K,WAAa,KACd+K,EAAKuK,YACLvK,EAAKuK,UAAUvJ,UACXhB,EAAKmM,oBACDnM,EAAKoM,mCACL3tB,EAAEsD,UAAUmf,IAAI,QAASlB,EAAKoM,mCAElCpM,EAAKmM,kBAAkBnL,UACvBhB,EAAKmM,kBAAoB,MAE7BnM,EAAKuK,UAAY,MAErBvK,EAAKqM,4BACDrM,EAAKsM,qBACLtM,EAAKsM,mBAAmBtL,UACxBhB,EAAKsM,mBAAqB,MAE1BtM,EAAKuM,2BACLvM,EAAKuM,yBAAyBvL,UAC9BhB,EAAKuM,yBAA2B,MAEpCvM,EAAKwM,mBACDxM,EAAKJ,aACLI,EAAKJ,WAAWa,OAAOxF,GAAQ+E,EAAKK,iBAAiBI,OAAOhH,GAAUuG,EAAKyM,kBAAkBhM,OAAO/G,GAAOsG,EAAK0M,eAAejM,OAAOvC,GAAM8B,EAAK2M,mBACjJ3M,EAAKK,gBAAkBL,EAAKyM,iBAAmBzM,EAAK0M,cAAgB1M,EAAK2M,kBAAoB,MAEjG9jB,EAAUmX,EAAKnX,QAAQpE,IAAIub,EAAKnJ,SAASpS,IAAIub,EAAK5P,OAAO3L,IAAIub,EAAKjV,OAAOtG,IAAIub,EAAKnJ,QAAQrR,KAAK,qBAC3Fwa,EAAK1a,UACLuD,EAAUA,EAAQpE,IAAIub,EAAK1a,SAASb,IAAIub,EAAK1a,QAAQE,KAAK,iCAE1Dwa,EAAKvK,cACLuK,EAAK4M,0BAEL5M,EAAK6M,MACL7M,EAAK6M,KAAK7L,UAEVhB,EAAK8M,YACL9M,EAAKnJ,QAAQqK,IAAI,gBAAkB9a,IACnC4Z,EAAKnJ,QAAQqK,IAAI,cAAgB9a,KAEjC4Z,EAAK+M,wBACLtuB,EAAEiC,QAAQwgB,IAAI,SAAUlB,EAAK+M,wBAEjC/M,EAAKgN,kCACDhN,EAAKiN,oBAAsBjN,EAAKiN,mBAAmBpkB,SACnDmX,EAAKiN,mBAAmBjM,UAE5BhB,EAAKiN,mBAAqB,KAC1BpkB,EAAQqY,IAAI9a,IACZzF,GAAMqgB,QAAQhB,EAAKnJ,SACnBmJ,EAAKoK,YAAcpK,EAAKqK,eAAiBrK,EAAKkN,kBAAoBlN,EAAKmN,qBAAuBnN,EAAK0K,eAAiB1K,EAAKoN,eAAiBpN,EAAKqN,oBAAsBrN,EAAKsN,0BAA4BtN,EAAKuN,kBAAoB,KAC/NvN,EAAKwN,YAAcxN,EAAKjV,MAAQiV,EAAK7P,MAAQ6P,EAAKnX,QAAUmX,EAAK5P,MAAQ4P,EAAK1a,QAAU0a,EAAKyN,OAASzN,EAAKnJ,QAAUmJ,EAAKzK,YAAcyK,EAAK3a,cAAgB2a,EAAKvK,aAAeuK,EAAK0N,aAAe1N,EAAK2N,uBAAyB3N,EAAK4N,WAAa5N,EAAK6N,wBAA0B,MAExRC,WAAY,WAAA,GAGJzpB,GAEAub,EACAmO,EALA7rB,EAAUjB,KAAKiB,OAuBnB,OAtBAA,GAAQ0d,WAAa,KACjBvb,EAASvD,IAAO,KAAUG,KAAKiB,SACnCmC,EAAOkC,QAAU5F,GAAM0C,cAAepC,KAAKsF,SACvCqZ,EAAa3e,KAAK2e,WAClBmO,EAAcnO,EAAW1d,QAAQ0Q,MAAQgN,EAAWoO,MACxDpO,EAAW1d,QAAQ0Q,KAAO,KAC1BvO,EAAOub,WAAanhB,EAAEqC,QAAO,KAAU8e,EAAW1d,SAClD0d,EAAW1d,QAAQ0Q,KAAOmb,EAC1B1pB,EAAOub,WAAWhN,KAAOmb,EACzB1pB,EAAOub,WAAW+G,KAAO/G,EAAW+G,OACpCtiB,EAAOub,WAAWra,OAAS9G,EAAEqC,QAAO,KAAU8e,EAAWra,UACzDlB,EAAOub,WAAWO,SAAWP,EAAWO,WACxC9b,EAAOub,WAAWvgB,KAAOugB,EAAWvgB,OACpCgF,EAAOub,WAAWqO,MAAQrO,EAAWqO,QACrC5pB,EAAOub,WAAWsO,UAAYtO,EAAWsO,YACrC7pB,EAAOub,WAAWuO,YAClB9pB,EAAOub,WAAWuO,UAAUvO,WAAa,MAEzCvb,EAAO4lB,UAAY5lB,EAAO4lB,SAAS9J,WACnC9b,EAAO4lB,SAAS9J,SAAWP,EAAWO,YAE1C9b,EAAO+pB,SAAWzqB,EACXU,GAEXgqB,WAAY,SAAUnsB,GAAV,GAUJ2U,GACAkK,EACAlY,EAIIylB,EAfJC,EAAiBttB,KAAK6sB,YAC1BntB,IAAM0C,WAAWkrB,EAAgBrsB,GAC5BA,EAAQ0d,WAGL1d,EAAQ0d,WAAWra,SACnBgpB,EAAe3O,WAAWra,OAASrD,EAAQ0d,WAAWra,QAH1DgpB,EAAe3O,WAAa3e,KAAK2e,WAMjC/I,EAAU5V,KAAK4V,QACfkK,EAAS9f,KAAKqmB,QACdze,EAAU5H,KAAK4H,QACnB5H,KAAK+f,UACL/f,KAAKiB,QAAU,KACXjB,KAAK6rB,YACDwB,EAAgBzX,EAAQtH,QAAQ5O,GAAMkV,aAAa,SAASvJ,SAChEgiB,EAAcE,MAAM3X,GACpByX,EAAc9gB,SACdqJ,EAAQ4X,YAAY,kBAEpB5X,EAAQ,KAAOhO,EAAQ,KACvBgO,EAAQ9R,OAAO8D,GACfgO,EAAQrJ,UAEZ3E,EAAQyH,QACRrP,KAAKF,KAAK8H,EAAS0lB,EAAgBxN,GACnC9f,KAAKytB,WAAWH,IAEpBzb,MAAO,WACH,MAAI7R,MAAKoE,cACEpE,KAAK0tB,OAAO1tB,KAAKkP,OAAO1L,IAAIxD,KAAK0tB,OAAO1tB,KAAKsU,YAAY9K,SAAS,WAElExJ,KAAK0tB,OAAO1tB,KAAKkP,QAGhCwe,OAAQ,SAAUjpB,EAAWkpB,GACzB,MAAOlpB,GAAU+E,WAAWlF,OAAO,WAC/B,GAAIspB,GAAKpwB,EAAEwC,KACX,SAA4B4tB,EAAGvjB,SAAvBsjB,EAAgC,eAA+B,mBAAuBC,EAAGvjB,SAAS,iBAAoBujB,EAAGvjB,SAAS,sBAGlJwjB,UAAW,WAAA,GAGCC,GAAsBve,EACjB/Q,EAHTqvB,EAAYnuB,GAAMgY,GAAG0O,gBAAgB3H,GAAGoP,UAAUnP,KAAK1e,KAC3D,IAAIA,KAAKoE,cAAe,CAEpB,IADI0pB,EAAID,EAAUnvB,OAAQ6Q,EAAUtM,MAAM,EAAI6qB,GACrCtvB,EAAIsvB,IAAKtvB,GAAK,GACnB+Q,EAAI/Q,GAAK+Q,EAAI/Q,EAAIsvB,GAAKD,EAAUrvB,EAEpCqvB,GAAYte,EAEhB,MAAOse,IAEXzD,0BAA2B,WACvB,GAAIrL,GAAO/e,IACX+e,GAAKgP,aAAe,KACfhP,EAAKjV,QAGV9J,KAAKguB,QAAQ,UAAW,WACpB,OAAS7pB,SAAU4a,EAAKjV,MAAMlJ,SAElCme,EAAKjV,MAAMtG,IAAIub,EAAKvK,cAAcjQ,KAAK,MAAM0pB,KAAK,WAC9C,GAAIzd,GAAKhT,EAAEwC,MAAOkuB,EAAa1d,EAAGmB,KAAK,mBAAoBmX,EAAWtY,EAAGmB,KAAK,qBAAsB6X,EAAahZ,EAAGmB,KAAK,kBACrHuc,IACAA,EAAWnO,UAEX+I,GACAA,EAAS/I,UAETyJ,GACAA,EAAWzJ,cAIvB6H,2BAA4B,WACxB,GAA4DjjB,GAASZ,EAAKrF,EAAtEqgB,EAAO/e,KAAMsF,EAAU6E,GAAY4U,EAAKzZ,YAC5C,KAAKvB,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjDY,EAAUW,EAAQvB,GAAKY,QACnBA,GACAH,EAAyBua,EAAMA,EAAKnJ,QAASjR,IAIzD4hB,MAAO,WACH,GAAIlgB,GAAKrG,KAAK4H,QAAQ9E,KAAK,OAAS,MAChCuD,KACArG,KAAKmuB,QAAU9nB,EAAK,iBAG5BigB,SAAU,WACN,GAAIvH,GAAO/e,KAAMmP,EAAQ4P,EAAKnX,OACzBuH,GAAMe,GAAG,WAENf,EADA4P,EAAK9d,QAAQwnB,WACL1J,EAAKnX,QAAQrD,KAAK,6BAElBwa,EAAKnX,QAAQ4B,SAAS,SAE7B2F,EAAMzQ,SACPyQ,EAAQ3R,EAAE,aAAa0G,SAAS6a,EAAKnX,WAG7CmX,EAAK5P,MAAQA,EAAMrM,KAAK,OAAQic,EAAKqP,cAAgB,WAAa,QAClErP,EAAK2B,YAET2N,oBAAqB,SAAU5pB,EAAW+L,GAArB,GAOb8d,GACAC,EACAhK,EACAiK,EACAC,EACAC,EACAC,EACAtb,EACA1G,EACAmJ,EAfAiJ,EAAO/e,KACP4uB,EAAiB7P,EAAK9d,QAAQyoB,wBAC9BjB,EAAa1J,EAAK9d,QAAQwnB,WAC1BsF,EAAehP,EAAKgP,aACpBc,EAAoC,EAAjBD,EAAqB,EACxCE,EAAgB,CAWhBf,IAAgBhP,EAAK3a,eAAiB2pB,EAAapc,KAAK,MAAM,KAAOnB,EAAG,KACxEud,EAAa9N,IAAI9a,IAAIoH,SACrBwhB,EAAe,MAEdA,IACDA,EAAehP,EAAKgP,aAAevwB,EAAE,gFACrCiH,EAAU0L,OAAO4d,IAErB1a,EAAa3T,GAAM2T,WAAW5O,GAC1BqZ,KAAUxI,GAAQyZ,SAAWzZ,GAAQC,QAAUD,GAAQ2I,SAAW,MAClE5K,OAEJsb,EAAkBK,WAAWvqB,EAAUhB,IAAI,oBAC3CkJ,EAAO6D,EAAGzG,SAAS4C,KAAO0G,EAAa2b,WAAWxe,EAAG/M,IAAI,gBAAkBgB,EAAUsF,SAAS4C,KAAOgiB,GAChG7Q,GAGG2K,IACAqG,EAAgBniB,GAAQ0G,EAAawb,EAAmB,EACxDP,EAAa9d,EAAGlC,QAAQ,8CACxBogB,EAAiBJ,EAAW,GAAGhL,YAAcgL,EAAW,GAAGxsB,YAC3D2sB,EAAaO,WAAWV,EAAW7qB,IAAI,eACvC8qB,EAAejZ,GAAQ0I,KAAO,EAAIte,GAAM2T,WAAWib,GAAcK,EAAkBF,EAAaK,EAAgB,EAChHvK,GAAoBuK,EACpBN,EAAoBlZ,GAAQyZ,QAAUJ,EAAkBF,EAAaK,EAAgB,EACrFniB,GAAQ4X,EAAmBiK,EAAoBD,GAVnD5hB,GAAQ6D,EAAG,GAAG1O,YAalBgU,EAAMtF,EAAGzG,SAAS+L,IAAMkZ,WAAWxe,EAAG/M,IAAI,eAAiBgB,EAAUsF,SAAS+L,IAAMkZ,WAAWvqB,EAAUhB,IAAI,oBAC7GsqB,EAAatqB,KACTqS,IAAKA,EACLnJ,KAAMA,EAAOkiB,EACb/vB,OAAQiX,GAAYvF,GACpB3R,MAAwB,EAAjB+vB,EAAqBE,IAC7Bnd,KAAK,KAAMnB,GAAI1J,OAClBinB,EAAa9N,IAAI,WAAa9a,IAAIF,GAAG,WAAaE,GAAI,WAClD4Z,EAAKkQ,mBAAmBjjB,SAASwE,EAAG1N,KAAKpD,GAAMoD,KAAK,UAAW,QAGvEosB,4BAA6B,WACzB,GAAInQ,GAAO/e,KAAMmvB,EAAapQ,EAAKvK,aAAeuK,EAAKvK,aAAajQ,KAAK,eAAiB/G,GAC1FuhB,GAAKjV,MAAMtG,IAAI2rB,GAAYlqB,GAAG,YAAcE,GAAI,6BAA8B,SAAUuI,GAAV,GACtE0hB,GAA8B,IAAd1hB,EAAE2hB,QAA0B3hB,EAAE2hB,QAAU3hB,EAAE4hB,OAAS5hB,EAAE0hB,OACrE5e,EAAKhT,EAAEwC,KACPwQ,GAAGnG,SAAS,iBAAmBmG,EAAGnG,SAAS,qBAGzB,IAAX+kB,GAAqC,IAAXA,GAGjC5e,EAAG,GAAG+e,aAAa7vB,GAAMoD,KAAKga,MAGlCiC,EAAKsP,oBAAoB7d,EAAGlC,QAAQ,OAAQkC,MAGpDgf,2BAA4B,SAAU9hB,GAC9BlQ,EAAEkQ,EAAE1E,QAAQsF,QAAQ,oBAAoB5P,SAG5ClB,EAAEsD,UAAUmf,IAAIvS,GAChB1N,KAAKyvB,2BACLzvB,KAAK0vB,sBAETD,yBAA0B,WACtB,GAAIjf,EACCxQ,MAAK+tB,eAGVvd,EAAKhT,EAAEwC,KAAK+tB,cAAcpc,KAAK,MAC3BnB,IACAA,EAAGjM,KAAKgU,GAAM0C,IAAY1W,KAAKgU,GAAM2C,IAAYpU,OACjD0J,EAAGjM,KAAKgU,GAAM4C,IAAarU,OAC3B0J,EAAGjM,KAAKgU,GAAM6C,IAA0BtU,OACxC0J,EAAGjM,KAAKgU,GAAM8C,IAAmBvU,UAGzC4oB,kBAAmB,WACX1vB,KAAK+tB,eACL/tB,KAAK+tB,aAAapc,KAAK,MAAM6b,YAAY,mBACrCxtB,KAAKoE,gBAAkBpE,KAAK6rB,WAC5B7rB,KAAK+tB,aAAa9N,IAAI9a,IAAIoH,SAC1BvM,KAAK+tB,aAAe,MAEpB/tB,KAAK+tB,aAAavoB,SAI9BmqB,iCAAkC,WAC9B,GAAI5Q,GAAO/e,KAAMmvB,EAAapQ,EAAKvK,aAAeuK,EAAKvK,aAAajQ,KAAK,eAAiB/G,GAC1FuhB,GAAKmM,kBAAoB,GAAIxrB,IAAMkhB,WAAWuO,EAAW3rB,IAAIub,EAAKjV,QAC9DxF,OAAQ,+CACRsrB,UAAW,GACXC,QAAS,IACTC,KAAM,SAAUpiB,GACZ,GAAI8C,GAAKhT,EAAEkQ,EAAE1E,OACb0E,GAAE8F,iBACEuL,EAAKgP,eACLhP,EAAKgP,aAAapc,KAAK,MAAM6b,YAAY,mBACzCzO,EAAK0Q,4BAETjf,EAAG4X,SAAS,mBACZ5X,EAAGjM,KAAKgU,GAAM0C,IAAY1W,KAAKgU,GAAM2C,IAAY1V,OACjDgL,EAAGjM,KAAKgU,GAAM4C,IAAa3V,OAC3BgL,EAAGjM,KAAKgU,GAAM6C,IAA0B5V,OACxCgL,EAAGjM,KAAKgU,GAAM8C,IAAmB7V,OACjCuZ,EAAKsP,oBAAoB7d,EAAGlC,QAAQ,OAAQkC,GACvCuO,EAAKoM,oCACNpM,EAAKoM,kCAAoC/lB,GAAM2Z,EAAKyQ,2BAA4BzQ,IAEpFvhB,EAAEsD,UAAUmE,GAAG,QAAS8Z,EAAKoM,uCAIzC4E,aAAc,SAAUpqB,EAAQqqB,GAAlB,GAYNC,GAcIC,EACAC,EACAtxB,EA3BJkgB,EAAO/e,KACPowB,IAAazqB,EAAOF,OACpB4qB,IAAa1qB,EAAOC,OACpB3E,EAAUjB,KAAKiB,QACfqf,EAAa5gB,GAAMyV,QAAQmb,SAAuC,EAA5B5wB,GAAMyV,QAAQmL,YACpDtV,EAAQolB,EAAW5kB,GAAQ7F,EAAQ2H,EAAqBC,EAAmBwR,EAAKzZ,WAAakG,GAAQ7F,EAAQ0H,EAAwBE,EAAmBwR,EAAKzZ,WAC7JirB,EAAeH,EAAWrR,EAAKzK,YAAcyK,EAAK5P,MAClDqd,EAASzN,EAAKyN,QAAUhvB,IACxBgzB,EAASJ,EAAWrR,EAAKvK,aAAajQ,KAAK,SAAWwa,EAAKjV,MAAMwE,QAAQ,SACzEmiB,EAAiB9qB,EAAO+qB,mBAAqB,GAC7CC,EAAuB3Y,GAAXoY,EAAsBG,EAAahsB,KAAK,SAAuBwa,EAAK7P,MAEpF,OAAImhB,IACA1qB,EAAO9G,MAAQmxB,EAAcS,EAAiBT,EAAcS,EAC5D,IAEA1R,EAAKyN,QAAUzN,EAAK3a,gBACpBooB,EAAoBzN,EAAKyN,OAAOhjB,SAAvB4mB,EAAgC,wBAAgD,wBAGzFH,EADAhvB,EAAQwnB,WACF+H,EAAOjsB,KAAK,6CAA+CyG,EAAQ,KAAKxH,IAAI+sB,EAAa/mB,SAAS,YAAYjF,KAAK,kDAAoDyG,EAAQ,MAAMxH,IAAIgpB,EAAOjoB,KAAK,YAAYA,KAAK,kDAAoDyG,EAAQ,MAElRulB,EAAahsB,KAAK,YAAYA,KAAK,kDAAoDyG,EAAQ,KAErG/J,EAAQwnB,YACJyH,GAAY,EACZC,EAAapR,EAAKnJ,QAAQ/W,QAAUyhB,EACpCzhB,EAAQmxB,EAAcA,EAAcS,EAAiBT,EAAcS,EACnEL,GAAYO,EAAYX,EAAcnxB,EAAQsxB,IAC9CtxB,EAAQmxB,GAAeG,EAAaQ,EAAwB,EAAZrQ,GAC5CzhB,EAAQ,IACRA,EAAQmxB,GAEZE,GAAY,GAEZrxB,EAAQ,IAAMA,GAAS4xB,IACvBR,EAAIxsB,IAAI,QAAS5E,GACb8xB,IAEI9xB,EADAqxB,EACQC,EAAyB,EAAZ7P,EAEbqQ,GAAaX,EAAcrqB,EAAO9G,OAE9C0xB,EAAa/sB,IAAIgtB,GAAQhtB,IAAIgpB,GAAQ/oB,IAAI,QAAS5E,GAC7CuxB,IACDrR,EAAK6R,aAAe/xB,KAIhCkgB,EAAK8R,uCACEb,EAAc,IAAMA,GAAeS,GAC1CR,EAAIxsB,IAAI,QAASusB,GAErBrqB,EAAO9G,MAAQmxB,EACfjR,EAAK+R,8BACL/R,EAAKgS,2BACLhS,EAAKiS,0BACLjS,EAAKkS,uBAzCL,IA2CJC,WAAY,WACR,GAAyCzsB,GAAW0sB,EAAanB,EAAaS,EAAgBE,EAA2GP,EAAUH,EAAKzf,EAApNuO,EAAO/e,KAAMiB,EAAU8d,EAAK9d,QAAyEmwB,EAAWpxB,KAAK6rB,UAAWvL,EAAa5gB,GAAMyV,QAAQmb,SAAuC,EAA5B5wB,GAAMyV,QAAQmL,WACpLrf,GAAQqoB,YACR7kB,EAAYxD,EAAQwnB,WAAa1J,EAAKnJ,QAAQrR,KAAK,6BAA+Bwa,EAAKnJ,QACnFwb,EACArS,EAAK4Q,iCAAiClrB,GAEtCsa,EAAKmQ,4BAA4BzqB,GAEjCsa,EAAKuK,WACLvK,EAAKuK,UAAUvJ,UAEnBhB,EAAKuK,UAAY,GAAI5R,IAAG2Z,UAAU5sB,EAAUjB,IAAIub,EAAKvK,eACjD8c,QAAWrwB,EAAQwnB,WAAa,GAAK,KAAO,mBAC5C8I,KAAM,SAAUD,GACZ,MAAO9zB,GAAE,2CAA2CiG,KAAM3E,OAAQiX,GAAYub,EAAO3f,KAAK,OAASoN,EAAK7P,MAAMpM,KAAK,mBAEvHie,MAAO,SAAUrT,GAAV,GAKC8iB,GAA8BxlB,EAE9BulB,EAAyD/D,EAUzDlnB,CAhBJkL,GAAKhT,EAAEkQ,EAAE0G,eAAezC,KAAK,MACzByf,GACArS,EAAK2Q,oBAELc,EAAShgB,EAAGlC,QAAQ,SAAUtD,EAAQxN,EAAEgO,QAAQgF,EAAG,GAAI5C,GAAc4C,EAAGlC,QAAQ,UAAUhK,OAAO,aACrG8rB,EAAWI,EAAOnlB,SAAShB,SAAS,wBAChCkmB,EAAeH,EAAWrR,EAAKzK,YAAcyK,EAAK5P,MAAOqd,EAASzN,EAAKyN,QAAUhvB,IACjFuhB,EAAKyN,QAAUzN,EAAK3a,gBACpBooB,EAAoBzN,EAAKyN,OAAOhjB,SAAvB4mB,EAAgC,wBAAgD,wBAE7F9sB,EAAOyb,EAAKnJ,QAAS,cAEjBqa,EADAhvB,EAAQwnB,WACF+H,EAAOjsB,KAAK,kDAAoDyG,EAAQ,KAAKxH,IAAI+sB,EAAa/mB,SAAS,YAAYjF,KAAK,kDAAoDyG,EAAQ,MAAMxH,IAAIgpB,EAAOjoB,KAAK,YAAYA,KAAK,kDAAoDyG,EAAQ,MAEvRulB,EAAa/mB,SAAS,YAAYjF,KAAK,kDAAoDyG,EAAQ,KAEzG1F,EAAU9H,EAAE8C,IAAIye,EAAKzZ,QAAS,SAAUwI,GACxC,OAAQA,EAAElI,SAAWwqB,GAAYtiB,EAAErI,SAAW2qB,IAAatiB,EAAErI,QAAUqI,EAAI,OAE/EqjB,EAAczjB,EAAE4T,EAAEkQ,SAClBxB,EAAchY,GAAWxH,GACzBigB,EAAiBtmB,GAAY7E,GAAS0F,GAAO0lB,mBAAqB,GAClEC,EAAuB3Y,GAAXoY,EAAsBG,EAAa/mB,SAAS,SAAuBuV,EAAK7P,OAChFoG,GAAQC,QACRwJ,EAAKnJ,QAAQwS,SAAS,2BAG9BE,OAAQ,SAAU5a,GAAV,GAGI8e,GASAgE,EACAD,EACAL,EACAC,EACAtxB,EAfJ4yB,EAAgB3T,MAAa,EAAG4T,EAAe1B,EAActiB,EAAE4T,EAAEkQ,SAAWC,EAAgBN,EAAcM,CAC1GxwB,GAAQwnB,YAEJ2H,GAAYrR,EAAK0N,aACjBD,EAASzN,EAAK0N,aAAajjB,SAAS,SAC7BuV,EAAKyN,SACZA,EAASzN,EAAKyN,OAAOjoB,KAAK,+BAEzBioB,GAAWA,EAAO,KACnBA,EAAShvB,KAETgzB,EAAShgB,EAAGlC,QAAQ,SACpBiiB,EAAeH,EAAWrR,EAAKzK,YAAcyK,EAAK5P,MAClD+gB,GAAY,EACZC,EAAapR,EAAKnJ,QAAQ/W,QAAUyhB,EACpCzhB,EAAQ6yB,EACRtB,GAAYO,EAAYX,EAAcnxB,EAAQsxB,IAC9CtxB,EAAQmxB,GAAeG,EAAaQ,EAAwB,EAAZrQ,GAC5CzhB,EAAQ,IACRA,EAAQ6yB,GAEZxB,GAAY,GAEZrxB,EAAQ,IAAMA,GAAS4xB,IACvBR,EAAIxsB,IAAI,QAAS5E,GACb8xB,IAEI9xB,EADAqxB,EACQC,EAAyB,EAAZ7P,EAEbqQ,EAAYjjB,EAAE4T,EAAEkQ,SAAWC,EAAgBN,EAAcM,EAErElB,EAAa/sB,IAAIgtB,GAAQhtB,IAAIgpB,GAAQ/oB,IAAI,QAAS5E,GAC7CuxB,IACDrR,EAAK6R,aAAe/xB,KAIhCkgB,EAAK8R,uCACEa,EAAe,IAAMA,GAAgBjB,GAC5CR,EAAIxsB,IAAI,QAASiuB,IAGzBC,UAAW,WAAA,GACwBhsB,GAAQ6qB,EAO/BxlB,EAPJ4mB,EAAW5Z,GAAWxH,EAC1BlN,GAAOyb,EAAKnJ,QAAS,IACjBN,GAAQC,QACRwJ,EAAKnJ,QAAQ4X,YAAY,0BAEzBwC,GAAe4B,IACfpB,EAASzR,EAAKvK,aAAeuK,EAAKvK,aAAajQ,KAAK,wBAAwBf,IAAIub,EAAKjV,MAAMvF,KAAK,aAAeiM,EAAGnF,SAC9GL,EAAQwF,EAAG1N,KAAKpD,GAAMoD,KAAK,UAC1BkI,IACDA,EAAQwlB,EAAOjsB,KAAK,gDAAgDyG,MAAMwF,IAE9E7K,EAASwE,GAAY4U,EAAKzZ,SAAS0F,GACnCrF,EAAO9G,MAAQ+yB,EACf7S,EAAK6D,QAAQjH,IACThW,OAAQA,EACRksB,SAAU7B,EACV4B,SAAUA,IAEd7S,EAAK+R,8BACL/R,EAAKgS,2BACLhS,EAAKiS,0BACLjS,EAAKkS,wBAETlS,EAAK0Q,2BACL1Q,EAAK2Q,oBACLlf,EAAK,UAKrBshB,WAAY,WAAA,GAMAtB,GALJzR,EAAO/e,IACP+e,GAAK9d,QAAQsoB,cACTxK,EAAKiN,oBACLjN,EAAKiN,mBAAmBjM,UAExByQ,EAASzR,EAAKnJ,QAAQpM,SAAS,kBACnCuV,EAAKiN,mBAAqBjN,EAAKnJ,QAAQmc,gBACnC/E,MAAOttB,GAAMyG,OACb6rB,YAAY,EACZ1tB,OAAQya,EAAK1a,QAAU,wBAA0B8U,GAAc,8BAAgCA,GAC/F8Y,UAAW,WACPzB,EAAOhnB,SAAS,uBAAuBgW,OAAO,SAAWra,GAAK,aAAasa,KAAK,SAAWta,GAAK,YAAa,SAAUuI,GAC/GqR,EAAK4J,kBACLjpB,GAAM2T,WAAW0L,EAAK1a,QAAQE,KAAK,+BAAgCvE,KAAKqT,YAExE3T,GAAM2T,WAAW0L,EAAKwN,YAAY2F,IAAIxkB,EAAE0G,eAAgBpU,KAAKqT,eAIzE8e,QAAS,WACLpT,EAAK0Q,2BACLe,EAAOhnB,SAAS,uBAAuBgW,OAAO,SAAWra,GAAK,cAElEkb,KAAM,WACFtB,EAAK2Q,qBAET6B,KAAM,SAAUvoB,GACZ,GAAIopB,GAAQppB,EAAOlG,KAAKpD,GAAMoD,KAAK,SAInC,OAHIsvB,KACAA,EAAQ1yB,GAAMuR,WAAWmhB,IAEtB50B,EAAE,uDAAuD4R,KAAKgjB,GAASppB,EAAOlG,KAAKpD,GAAMoD,KAAK,WAAakG,EAAOtL,QAAQ0S,QAAQ,4DAE9IuB,KAAK,oBAGhB0gB,aAAc,WACV,GAAItT,GAAO/e,IACP+e,GAAK9d,QAAQsoB,cACTxK,EAAKnJ,QAAQjE,KAAK,qBAClBoN,EAAKnJ,QAAQjE,KAAK,oBAAoBoO,UAE1ChB,EAAKnJ,QAAQ0c,kBACTC,UAAWxT,EAAKiN,mBAChBwG,mBAAoB,SAAUxuB,EAAauH,GACvC,GAAIjG,GAAUmG,EAAsBsT,EAAKzZ,QACzC,OAAOA,GAAQtB,GAAayuB,YAAa,GAAS9mB,EAA2BrG,EAASyZ,EAAKzZ,QAAStB,EAAauH,OAErHmnB,gBAAiB,SAAUhlB,GACvB,MAAOlQ,GAAEkQ,EAAE9J,QAAQyH,SAAS,KAAO7N,EAAEkQ,EAAE1E,QAAQqC,SAAS,IAAMM,EAA2BF,EAAsBsT,EAAKzZ,SAAUyZ,EAAKzZ,QAASoI,EAAE1J,YAAa0J,EAAEnC,iBAEjKonB,OAAQ,SAAUjlB,GAAV,GACApI,GAAUmG,EAAsBsT,EAAKzZ,SACrCK,EAASL,EAAQoI,EAAEklB,UACnBC,EAAWlnB,EAA2BrG,EAASyZ,EAAKzZ,QAASoI,EAAEklB,SAAUllB,EAAEmlB,SAC/E9T,GAAK6D,QAAQhH,IACTiX,SAAUA,EACVD,SAAUpnB,GAAQ7F,EAAQL,GAC1BK,OAAQA,IAEZoZ,EAAK+T,cAAcD,EAAUltB,EAAuB,WAAf+H,EAAE1D,eAKvD+oB,eAAgB,SAAUhqB,EAASC,EAAQlF,EAAQW,GAAnC,GAIR2E,GACAwB,EAEK7G,EAULivB,EACAC,EAjBAlU,EAAO/e,KACP0K,EAAiBJ,EAAevB,EAAQ,GAAIgW,EAAKzZ,SACjD4tB,EAAe5oB,EAAetB,EAAQ+V,EAAKzZ,SAG3C2D,IACJ,KAASlF,EAAM,EAAGA,EAAMgF,EAAQrK,OAAQqF,IAChCgF,EAAQhF,GAAKuB,UACb2D,EAAQA,EAAMf,OAAOa,EAAQhF,GAAKuB,SAItCsF,GADAnG,EACMN,EAASM,EAAWA,EAAW,SAAWiG,EAAeH,IAAM,sDAE/DpG,EAAS4a,EAAKvK,aAAcuK,EAAKjV,MAAO,SAAWY,EAAeH,IAAM,sDAE9EyoB,EAAsBtqB,EAAcK,GAASrK,OAC7Cu0B,EAAsBvqB,GAAeM,IAAStK,OAC9CuK,EAAMvK,QACFs0B,EAAsB,GAA6B,IAAxBC,GAC3B7pB,EAAS,UACTN,EAA2BC,EAASC,EAAQC,EAAO8V,EAAKzZ,QAASyZ,EAAKvK,aAAajQ,KAAK,SAAUwa,EAAKjV,MAAO9J,KAAKkoB,UAAW9e,IAC/F,IAAxB4pB,GAA6BC,EAAsB,IAC1D7pB,EAA+B,IAAtB8pB,EAAa5qB,OAAcS,EAAQ,GAAGzD,SAAY0D,EAAO1D,SAAYyZ,EAAKkJ,OAAqB,SAAZ,UAC5Fnf,EAA2BC,EAASC,EAAQC,EAAOL,EAAiBmW,EAAKzZ,SAAUyZ,EAAKjV,MAAOiV,EAAKvK,aAAajQ,KAAK,SAAUvE,KAAKkoB,UAAW9e,KAEhJJ,EAAO1D,SAAWoF,EAAepC,KAAO4qB,EAAa5qB,KAAO,GAAK4qB,EAAa5qB,KAAOoC,EAAepC,KAAO,KAC3GU,EAASmC,EAAkB4T,EAAKzZ,QAAS0D,EAAQD,EAAQ,GAAIjF,EAAQib,EAAKzZ,SACtE0D,IACIgqB,EAAsB,GAA6B,IAAxBC,EAC3BlU,EAAKgU,eAAe9pB,EAAOD,EAAQlF,EAAQib,EAAKjV,OACjB,IAAxBkpB,GAA6BC,EAAsB,EAC1DlU,EAAKgU,eAAe9pB,EAAOD,EAAQlF,EAAQib,EAAKoQ,YAEhDpQ,EAAKgU,eAAe9pB,EAAOD,EAAQlF,MAIxCkvB,IAAwBC,GAC/B5qB,EAAkBuC,EAAIF,EAAepC,MAAOyW,EAAKzZ,QAAS0tB,GAE9DtvB,EAAQkH,EAAKF,EAAepC,KAAM4qB,EAAa5qB,KAAMxE,EAAQiF,EAAQrK,SAEzEy0B,gBAAiB,SAAUpqB,EAASG,EAAapF,GAAhC,GAYEsvB,GAAWC,EAGlBC,EAiCJjqB,EAWKtF,EAASrF,EA1DdqgB,EAAO/e,KACPuzB,EAAa/1B,IACboG,EAASmF,EAAQ,GACjByqB,EAAiB3rB,EAAekB,GAChC/E,EAAcwH,GAAQ5H,EAAQuG,GAAY4U,EAAKzZ,UAC/CmuB,EAAYjoB,GAAQtC,EAAaiB,GAAY4U,EAAKzZ,UAClDouB,EAAiBloB,GAAQgoB,EAAe,GAAIjmB,EAAmBwR,EAAKzZ,UACpEquB,EAAUnoB,GAAQtC,EAAaqE,EAAmBwR,EAAKzZ,UACvDsuB,EAAclrB,EAAcqW,EAAKzZ,SAAS5G,OAC1C0xB,IAAalnB,EAAYzD,OACzB+mB,EAASzN,EAAKyN,QAAUzN,EAAKnJ,QAAQrR,KAAK,kBAC1CsvB,EACQT,EAAYO,CA8CxB,KA7CIzqB,EAAYtD,SACR0tB,EAAelD,EAAW1nB,EAAcqW,EAAKzZ,SAAWsD,EAAiBmW,EAAKzZ,SAC9EuC,EAAeyrB,GAAc50B,OAAS,GACtCm1B,EAAYT,EAAYO,EAAU3zB,KAAK8zB,+BAA+BR,EAAcG,GACpFJ,EAAsBxrB,EAAeyrB,EAAaS,MAAMN,IAAY/0B,OAAS,GAEzE0xB,GACAuD,EAAU5U,EAAKzK,YAAY/P,KAAK,YAChCsvB,EAAY9U,EAAKvK,aAAajQ,KAAK,YACnC6uB,EAAY51B,EAAEuhB,EAAK0N,cAAcloB,KAAK,qBAEtCovB,EAAU5U,EAAK7P,MAAM8kB,OACrBH,EAAY9U,EAAKjV,MAAMkqB,OACvBZ,EAAY5G,EAAOjoB,KAAK,uBAAuBA,KAAK,qBAI5Dwa,EAAKkV,iBACLvwB,EAAQqb,EAAKnJ,QAAQrR,KAAK,yDAA0DP,EAAayvB,EAAW3vB,EAAQiF,EAAQrK,QAE5Hg1B,GAAkB,GAClBhwB,EAAQS,EAAS4a,EAAKvK,aAAcuK,EAAKjV,MAAMkqB,OAAQ,0CAA2CN,EAAgBG,EAAWR,EAAsBA,EAAsBvvB,EAAQ0vB,EAAe90B,QAEhMqgB,EAAK9d,QAAQwnB,YACTiL,GAAkB,IAAM3U,EAAKmV,sBAC7BxwB,EAAQS,EAAS4a,EAAKzK,YAAayK,EAAK7P,MAAM8kB,OAAQ,0CAA2CN,EAAgBC,EAASN,EAAsBA,EAAsBvvB,EAAQ0vB,EAAe90B,QAGjM8tB,GAAUA,EAAO9tB,SACbg1B,GAAkB,GAClBhwB,EAAQS,EAAS4a,EAAK0N,aAAcD,EAAOjoB,KAAK,uBAAwB,0DAA2DmvB,EAAgBN,EAAWC,EAAsBA,EAAsBvvB,EAAQ0vB,EAAe90B,QAErOgF,EAAQ8oB,EAAOjoB,KAAK,8DAA+DP,EAAayvB,EAAW3vB,EAAQiF,EAAQrK,SAE3H2K,EAAO0V,EAAK7P,MAAM1F,SAAS,uCAC3BuV,EAAKzK,cACDsf,EAAcH,EACVG,GAAe5vB,GACfiO,GAAc8M,EAAKzK,YAAY/P,KAAK,4BAA6Bwa,EAAK5P,MAAM5K,KAAK,4BAA6BwE,EAAQrK,QAEnHk1B,EAAc5vB,GACrBiO,GAAc8M,EAAK5P,MAAM5K,KAAK,4BAA6Bwa,EAAKzK,YAAY/P,KAAK,4BAA6BwE,EAAQrK,QAE1H60B,EAAaxU,EAAKzK,YAAY/P,KAAK,iDAE9BR,EAAM,EAAGrF,EAAS2K,EAAK3K,OAAQqF,EAAMrF,EAAQqF,GAAO,EACzDL,EAAQS,EAASovB,EAAWxvB,GAAMsF,EAAKtF,GAAM,4CAA6CC,EAAayvB,EAAW3vB,EAAQiF,EAAQrK,SAG1Io1B,+BAAgC,SAAUxuB,EAASmM,GAC/C,GAAI6hB,GAAezrB,EAAevC,EAAQyuB,MAAMtiB,IAAc/S,OAAS,EAAI4G,EAAQyuB,MAAMtiB,GAAenM,EAAQyuB,MAAM,EAAGtiB,EAAc,GAAG0iB,UAAWC,EAAuBvsB,EAAeyrB,GAAc,EACzM,OAAO9nB,IAAQ4oB,EAAsBvsB,EAAe7H,KAAKsF,WAE7D2pB,mBAAoB,SAAUoF,GAC1Br0B,KAAKs0B,cAAcnqB,GAAYnK,KAAKsF,SAAS+uB,KAEjDC,cAAe,SAAU3uB,GAAV,GACsDqF,GAAOwF,EAAI+D,EAAa6b,EAAsIH,EAAKsE,EAAUC,EAAYnhB,EAA6KohB,EAAMC,EAyBzanE,EAAyD/D,EAIzDmI,EAIKC,EAkBLC,EAIAC,EAOAC,EAUIhpB,EAAgCG,EAAUikB,EACrCpsB,EAASrF,EAzElBqgB,EAAO/e,KAAMiB,EAAU8d,EAAK9d,QAASqE,EAAUyZ,EAAKzZ,QAA2C0vB,EAAgBjW,EAAKvK,aAAe5G,GAAcmR,EAAKvK,aAAajQ,KAAK,iBAAiBD,OAAOmD,GAAe/I,OAAS,EAA0Cu2B,EAAyB,8CAA+CC,EAAiC,sDAY/W,IAVIvvB,EADiB,gBAAVA,GACEL,EAAQK,GACVb,GAAca,GACZmC,GAAK4D,EAAYpG,GAAU,SAAUsL,GAC1C,MAAOA,KAASjL,IACjB,GAEMmC,GAAK4D,EAAYpG,GAAU,SAAUsL,GAC1C,MAAOA,GAAK9K,QAAUH,IACvB,GAEFA,GAAWI,EAAUJ,GAA1B,CAqBA,IAlBA4uB,EAAW5uB,EAAO+qB,kBAClB1lB,EAAQQ,GAAQ7F,EAAQwE,GAAY7E,IACpC8qB,EAAWzqB,EAAOF,OAEd8O,EADA6b,EACcrR,EAAKvK,aAAahL,SAAS,SAE3BuV,EAAKjV,MAAMuB,SAE7BmF,EAAK+D,EAAYhQ,KAAK,gBAAmByG,EAAQ,MACjDypB,EAAOjkB,EAAGjM,KAAK,2CACXgsB,EAAeH,EAAWrR,EAAKzK,YAAcyK,EAAK5P,MAAOqd,EAASzN,EAAKyN,QAAUhvB,IACjFuhB,EAAKyN,QAAUzN,EAAK3a,gBACpBooB,EAAoBzN,EAAKyN,OAAOhjB,SAAvB4mB,EAAgC,wBAAgD,wBAEzFuE,EAAcnI,EAAOjoB,KAAK,SAASic,QACnCzB,EAAKvK,eAAiB4b,IACtBplB,GAASgqB,GAEJJ,EAAI,EAAGA,EAAItvB,EAAQ5G,QACpB4G,EAAQsvB,KAAOjvB,EADaivB,IAIxBtvB,EAAQsvB,GAAGhvB,QACXoF,GAiCZ,IA7BI/J,EAAQwnB,YACRwH,EAAM1b,EAAYhQ,KAAK0wB,GAAwBhxB,GAAG+G,GAAOxH,IAAI+sB,EAAa/mB,SAAS,YAAYjF,KAAK0wB,GAAwBhxB,GAAG+G,IAAQxH,IAAImxB,EAAYpwB,KAAK,YAAYA,KAAK0wB,GAAwBhxB,GAAG+G,IACnMolB,IACDoE,EAAajE,EAAallB,SAC1BgI,EAAa3T,GAAM2T,WAAWmhB,KAGlCvE,EAAMM,EAAa/mB,SAAS,YAAYjF,KAAK0wB,GAAwBhxB,GAAG+G,GAExE6pB,EAAStgB,EAAY/Q,IAAI+sB,GAAc/sB,IAAImxB,GAC3Crf,GAAQ6f,QACR3kB,EAAG/M,IAAI,cAAe,WAEtBqxB,EAAiB9c,GAAWxH,GAChCyf,EAAIpxB,MAAM,IACVg2B,EAAOpxB,IAAI,eAAgB,SAC3BwsB,EAAIpxB,MAAM,QACVg2B,EAAOzM,SAAS,iBAChByM,EAAOpxB,IAAI,eAAgB,IAC3BixB,EAAUD,EAAK/1B,OAASsZ,GAAWyc,GAAQzc,GAAWxH,GAAMwH,GAAWxH,GACnEukB,EAAiBpmB,KAAKqQ,KAAKrQ,KAAKlE,IAAIiqB,EAAS1c,GAAWuY,EAAahsB,KAAK,2BAA2BN,GAAG,GAAGuF,SAAS0rB,GAAgCjxB,GAAG+G,IAASgN,GAAW2c,EAAYpwB,KAAK,MAAMN,GAAG,GAAGuF,SAAS0rB,GAAgCjxB,GAAG+G,MAAY,EAChQupB,GAAYA,EAAWQ,IACvBA,EAAiBR,GAErBtE,EAAIpxB,MAAMk2B,GACVpvB,EAAO9G,MAAQk2B,EACXzf,GAAQ6f,QACR3kB,EAAG/M,IAAI,cAAe,IAEtBxC,EAAQwnB,WAAY,CAEpB,IADI1c,EAAOwI,EAAYhQ,KAAK,OAAkB4rB,EAAa,EAClDpsB,EAAM,EAAGrF,EAASqN,EAAKrN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAEzD,GADAmI,EAAWH,EAAKhI,GAAK9E,MAAMJ,MACvBqN,GAAYA,EAASC,QAAQ,SAC7BgkB,GAAcnkB,SAASE,EAAU,QAC9B,CAAA,IAAIH,EAAK9H,GAAGF,GAAKsG,SAAS,eAE1B,CACH8lB,EAAa,CACb,OAHAA,GAAcnkB,SAASD,EAAK9H,GAAGF,GAAKlF,QAAS,IAMjDsxB,GACA0E,EAAO5G,KAAK,WACRjuB,KAAKf,MAAMJ,MAAQsxB,EAAa,OAI5C0E,EAAOrH,YAAY,iBACfna,GACA3T,GAAM2T,WAAWmhB,EAAYnhB,GAEjC0L,EAAK6D,QAAQjH,IACThW,OAAQA,EACRksB,SAAUiD,EACVlD,SAAUmD,IAEdhW,EAAK+R,8BACL/R,EAAKgS,2BACLhS,EAAKiS,0BACLjS,EAAKkS,yBAET6B,cAAe,SAAUW,EAAW9tB,EAAQ7B,GAA7B,GACwNsxB,GAgB/NC,EAhBAtW,EAAO/e,KAAMqL,EAAS/E,EAAaX,EAAQoZ,EAAKzZ,SAAUA,EAAU+F,EAASA,EAAO/F,QAAUyZ,EAAKzZ,QAAStB,EAAcwH,GAAQ7F,EAAQL,GAAUgwB,EAAahwB,EAAQmuB,GAAY8B,EAAgBxW,EAAKwW,kBAAkCnF,IAAakF,EAAW7vB,OAAQmuB,EAAclrB,EAAcqW,EAAKzZ,SAAS5G,OAAQ82B,EAAmC1tB,GAAKqC,GAAY4U,EAAKzZ,SAAU,SAAUK,GACvY,MAAOA,GAAO8vB,2BAElBzxB,KAAgByvB,KAGf9tB,EAAOF,QAAU2qB,GAAqD,GAAzCxnB,EAAiBmW,EAAKzZ,SAAS5G,QAG7DiH,EAAOF,SAAW2qB,GAA2B,GAAfwD,IAGlC7U,EAAK2Q,oBACD5rB,IAAWpB,IACXoB,EAAS2vB,EAAYzvB,GAErBqxB,GAAiB1vB,GACrBoZ,EAAKgU,eAAesC,EAAeC,EAAYxxB,GAC3Cib,EAAKvK,eACLnI,EAAgB0S,EAAKjV,OACrBuC,EAAgB0S,EAAKvK,eAErB8gB,EAAWhwB,UACXgwB,EAAanrB,GAAYmrB,EAAWhwB,SACpCgwB,EAAaA,EAAWxxB,EAAS,EAAIwxB,EAAW52B,OAAS,IAEzDiH,EAAOL,UACP+vB,EAAgBlrB,GAAYxE,EAAOL,UAEvCyZ,EAAKoU,gBAAgBkC,EAAeC,EAAYxxB,GAChDsxB,IAAgBzvB,EAAOF,OACvB2vB,EAAcA,GAAehF,EAC7BzqB,EAAOF,OAAS2qB,EAChB9qB,EAAQoB,OAAO5C,EAAS2vB,EAAYA,EAAY,EAAG,EAAG9tB,GACtDL,EAAQoB,OAAO1C,EAAcyvB,EAAYzvB,EAAcA,EAAc,EAAG,GACxE+a,EAAK2W,oBACL3W,EAAK4W,cACL5W,EAAKuI,aACLvI,EAAK6W,yBACL7W,EAAK8W,uBACDL,EAAiC92B,OAAS,GAC1CqgB,EAAK+W,mBAET/W,EAAKgX,qBACLhX,EAAK+R,8BACL/R,EAAKiS,0BACLjS,EAAKgS,2BACLhS,EAAKiX,0BACLjX,EAAKkS,uBACDsE,EAAcjwB,SACdyZ,EAAKM,UAEJ+V,IAGDhF,EACArR,EAAK6D,QAAQ/G,IAAclW,OAAQA,IAEnCoZ,EAAK6D,QAAQ9G,IAAgBnW,OAAQA,QAG7CiwB,uBAAwB,WAAA,GAChBpF,GACAzmB,EAAS,CACT/J,MAAKwU,eACLgc,EAASxwB,KAAKwU,aAAajQ,KAAK,SAChCwF,EAASF,EAAgB2mB,EAAQ9nB,EAAc1I,KAAKsF,WAExDuE,EAAgB7J,KAAK8J,MAAOlB,EAAiB5I,KAAKsF,SAAUyE,IAEhEksB,WAAY,SAAUtwB,GAAV,GAeJqF,GAdA1F,EAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUsL,GAC7B,MAAOA,GAAK9K,QAAUH,IACvB,IAEFA,GAAUA,EAAOF,QAAUE,EAAOC,SAGnCD,EAAOwH,QACPnN,KAAKk2B,cAAc5wB,EAAQ6G,QAAQxG,IAEnCqF,EAAQtC,EAAcpD,GAAS5G,OAAS,EAC5CsB,KAAK8yB,cAAc9nB,EAAOrF,GAAQ,KAEtCwwB,aAAc,SAAUxwB,GAAV,GAYNqF,GAXA1F,EAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUsL,GAC7B,MAAOA,GAAK9K,QAAUH,IACvB,GAEFA,GAAWA,EAAOF,SAAUE,EAAOC,SAGpCoF,EAAQtC,EAAcpD,GAAS5G,OACnCsB,KAAK8yB,cAAc9nB,EAAOrF,GAAQ,KAEtCywB,YAAa,SAAUzwB,GACnB,GAAIL,GAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUsL,GAC7B,MAAOA,GAAK9K,QAAUH,IACvB,IAEFA,GAAUA,EAAOwH,QAAUxH,EAAOC,QAGnCD,EAAOF,SACPzF,KAAKm2B,aAAa7wB,EAAQ6G,QAAQxG,IAC9BA,EAAOF,UAIfE,EAAOwH,QAAS,EAChBnN,KAAKixB,yBAETiF,cAAe,SAAUvwB,GACrB,GAAIL,GAAUtF,KAAKsF,OAEfK,GADiB,gBAAVA,GACEL,EAAQK,GAERmC,GAAKxC,EAAS,SAAUsL,GAC7B,MAAOA,GAAK9K,QAAUH,IACvB,GAEFA,GAAWA,EAAOwH,SAAUxH,EAAOF,SAAUE,EAAOC,SAGzD5F,KAAKq2B,yBAAyB1wB,IAC9B3F,KAAKs2B,oBAAoBppB,EAAc5H,IACvCK,EAAOwH,QAAS,EAChBnN,KAAKixB,uBAC4B,IAA7BjxB,KAAKu2B,qBACLv2B,KAAKsnB,eAGbkP,UAAW,SAAUC,GACjB,GAAIC,GAAqB,CAIzB,OAHI12B,MAAKsU,cAAgB9W,EAAE0X,SAASlV,KAAKsU,YAAY,GAAImiB,EAAG,MACxDC,EAAqBvsB,GAAYzB,EAAc1I,KAAKsF,UAAU5G,QAE3DlB,EAAEi5B,GAAIprB,SAAS7B,SAAS,2CAA2CwB,MAAMyrB,GAAMC,GAE1FC,mBAAoB,SAAUlyB,GAC1BA,EAAYjH,EAAEiH,GACTA,EAAUyL,GAAG,OAA8B,UAArBlQ,KAAK42B,cAC5BnyB,EAAYA,EAAU6J,QAAQ,MAElC,IAAIjI,GAAK5B,EAAU3B,KAAKpD,GAAMoD,KAAK,OACnC,OAAO9C,MAAK2e,WAAWkY,SAASxwB,IAEpCywB,sBAAuB,SAAUxuB,GAAV,GACfkuB,GAAYx2B,KAAKw2B,UAAUluB,GAC3ByuB,EAAgB,CAKpB,OAJI/2B,MAAKk0B,uBACL6C,EAAgB/qB,SAASxO,EAAE8K,GAAMgG,QAAQ,MAAM/J,KAAK,YAAYzB,KAAK,WAAY,IACjFi0B,EAAgBA,EAAgB,EAAIA,EAAgB,EAAI,GAErDP,EAAYO,GAEvBpP,UAAW,WAAA,GAaCqP,GAZJjY,EAAO/e,KAAMiU,EAAW8K,EAAK9d,QAAQgT,SAAUgjB,EAAU,WACrD,GAAIjuB,GAAS8O,KAAiBxP,EAAOyW,EAAKmY,cACtC5uB,IAAQA,EAAK,KAAO9K,EAAE0X,SAAS5M,EAAK,GAAIU,IAAWV,EAAK,KAAOU,IAAWxL,EAAEwL,GAAQsF,QAAQ,0BAA0B5P,SAClHqgB,EAAK9K,SAASkjB,MACdpY,EAAKqY,YAELrY,EAAKsY,yBAIjBpjB,KACAjU,KAAK4V,QAAQwS,SAAS,cAClB4O,EAAOjY,EAAK6X,YACH,WAATI,GACAjY,EAAK5P,MAAM3L,IAAIub,EAAKzK,aAAarP,GAAG,YAAcE,GAAI0T,GAAS,IAAMC,GAAS,SAAUpL,GACpF,GAAI1E,GAASxL,EAAEkQ,EAAE1E,OACQ,YAArB+V,EAAK6X,aAA4B5tB,EAAOqB,SAAS,eAAiBrB,EAAOgrB,OAAOlxB,KAAKpD,GAAMoD,KAAK,UAChG4K,EAAE8F,mBAGNS,EAAS8R,UAAW,IAChB7H,IACAa,EAAKnJ,QAAQ3Q,GAAGC,GAAQC,GAAI,wCAA2C,SAAUuI,GAC7ElQ,EAAEkQ,EAAE1E,QAAQyK,UACbxO,GAAGC,GAAQC,GAAI,eAAgB,SAAUuI,GACnClQ,EAAEkQ,EAAE1E,QAAQkH,GAAG,UAChB1S,EAAEkQ,EAAE0G,eAAe7P,KAAK,0BAA4BkP,UAEzDxO,GAAGiX,GAAY/W,GAAI,+BAAgC,SAAUuI,GAC5D,GAAI4pB,GAAgBvY,EAAKmY,cAErBnY,GAAKwY,wBADLD,IAAiBA,EAAc,KAAO95B,EAAE0X,SAASoiB,EAAc,GAAI5pB,EAAE1E,SAAWsuB,EAAc,KAAO5pB,EAAE1E,UAOnH+V,EAAKsM,mBAAqB,GAAI3rB,IAAMkhB,WAAW7B,EAAKnJ,SAChDtR,OAAQ,+BACRwc,gBAAgB,EAChB0W,IAAK,SAAU9pB,GACX,GAAI+oB,GAAKj5B,EAAEkQ,EAAE1E,QAASyuB,EAAe1Y,EAAKzK,aAAemiB,EAAGnoB,QAAQ,SAAS,KAAOyQ,EAAKzK,YAAY,EACrGyK,GAAKwY,sBAAuB,EACxBd,EAAGpsB,SAAS,qBAAuBosB,EAAGpsB,SAAS,kBAAoBosB,EAAGpsB,SAAS,iBAAmBosB,EAAGpsB,SAAS,gBAAkBosB,EAAGiB,IAAI,mBAAmBh5B,QAAU+3B,EAAGiB,IAAI,wBAAwBh5B,QAAU+3B,EAAGnoB,QAAQ,SAAS,KAAOyQ,EAAK7P,MAAM,KAAOuoB,GAAgBj6B,EAAEkQ,EAAE1E,QAAQkH,GAAG,YAGzR6O,EAAK9K,SACD8K,EAAK9K,SAASkjB,OACd35B,EAAEsa,MAAiB6f,OACnB5Y,EAAKqY,YACLrY,EAAK6Y,SAASnB,IAEd1X,EAAKsY,wBAGTtY,EAAK6Y,SAASnB,OAI1B1X,EAAKnJ,QAAQ3Q,GAAG,UAAYE,GAAI,WACvB3H,EAAE0X,SAASlV,KAAM8X,QAClBoI,aAAanB,EAAKyL,OAClBzL,EAAKyL,MAAQ,QAElBvlB,GAAG,WAAaE,GAAI,SAAUuI,GAC7B,GAAImqB,IAAkB,GAClB3Z,IAASa,EAAKwY,sBAAwBxY,EAAK+Y,qBAC3CD,GAAkB,GAEtB9Y,EAAKwY,sBAAuB,EACxBM,IACA9Y,EAAKyL,MAAQzV,WAAW,WACpBkiB,EAAQvpB,IACT,QAKXuG,EAAS8R,UAAW,IACpBhH,EAAKnJ,QAAQ3Q,GAAGC,GAAQC,GAAI,oEAAqE,SAAUuI,GACvGA,EAAE8F,iBACFuL,EAAKgZ,QAAQv6B,EAAEwC,MAAMsO,QAAQ,SAE7ByQ,EAAKiZ,4BACLjZ,EAAKnJ,QAAQ3Q,GAAG,WAAaE,GAAI,+BAAgC,WACzD4Z,EAAK9K,WAAa8K,EAAK9K,SAASkjB,OAChCpY,EAAKsY,2BAMrBpjB,EAAS8L,WAAY,EACrBhB,EAAKnJ,QAAQ3Q,GAAGC,GAAQC,GAAI,qEAAsE,SAAUuI,GACxGA,EAAE8F,iBACF9F,EAAEuqB,kBACFlZ,EAAKmZ,UAAU16B,EAAEwC,MAAMsO,QAAQ,SAGnCyQ,EAAKnJ,QAAQ3Q,GAAGC,GAAQC,GAAI,2EAA4E,SAAUuI,GAC9GA,EAAEuqB,kBACGlZ,EAAKoZ,iBACNzqB,EAAE8F,qBAMtBokB,SAAU,SAAUtvB,GAAV,GAEFyW,GAAapZ,EAAsEoO,EA+B/E6Z,CA7BR,IAHAtlB,EAAO9K,EAAE8K,GACLyW,EAAO/e,KAAM2F,EAASwE,GAAY4U,EAAKzZ,SAASyZ,EAAK+X,sBAAsBxuB,IAAQyL,EAAQgL,EAAK4X,mBAAmBruB,GACvHyW,EAAKqY,YACDrjB,GAASD,GAAiBnO,EAAQoO,KAAWpO,EAAOhB,QAAS,CAC7D,GAAIoa,EAAK6D,QAAQrJ,IAAcxF,MAAOA,IAClC,MAEJgL,GAAKqZ,mBAAmBrkB,GACxBgL,EAAKmY,eAAiB5uB,EAClByW,EAAKsZ,2BACLtZ,EAAKuZ,sBAETvZ,EAAK9K,SAAW3L,EAAK8f,SAAS,eAAemQ,eACzCC,QACI1yB,MAAOH,EAAOG,MACdmK,OAAQtK,EAAOsK,OACfwoB,OAAQ9yB,EAAO8yB,OACfC,OAAQ/yB,EAAO+yB,QAEnB3kB,MAAOA,EACP/K,OAAQ+V,EACR4T,OAAQ,SAAUjlB,GACVqR,EAAK6D,QAAQpJ,IACTkf,OAAQhrB,EAAEgrB,OACVj0B,UAAW6D,EACXyL,MAAOA,KAEXrG,EAAE8F,kBAGVmlB,aAAY5Z,EAAK6Z,6BAA8B7Z,EAAKmV,uBAAyBnV,EAAK8Z,kBACnFlnB,KAAK,iBACJic,EAAKtlB,EAAK+C,SAAS+c,SAAS,mBAC5BrJ,EAAK3a,gBACLyO,GAAgB+a,EAAG,GAAI7O,EAAK+Z,YAAYlL,GAAIxF,SAAS,mBAAmB,IACxErJ,EAAKga,qBAETha,EAAK6D,QAAQtJ,IACT7U,UAAW6D,EACXyL,MAAOA,MAInBilB,iCAAkC,WAAA,GAC1B7pB,GAAQnP,KAAKmP,MAAO9K,EAAU8K,EAAM9D,SACpCiV,EAAYnR,EAAM,GAAGrN,YAAcuC,EAAQ,GAAGkf,YAAc7jB,GAAMyV,QAAQmL,YAAc,CAC5FtgB,MAAKoE,cAActF,OAAOuF,EAAQ,GAAGtC,aAAeue,IAExDyY,kBAAmB,WACf/4B,KAAKoE,cAAc,GAAG+c,UAAYnhB,KAAKqE,QAAQ,GAAG8c,UAC9CnhB,KAAK2oB,oBACL3oB,KAAKoE,cAAc,GAAG+c,UAAYnhB,KAAK4V,QAAQrR,KAAK,8BAA8B,GAAG4c,YAG7F4P,yBAA0B,WAClB/wB,KAAKsU,cACAtU,KAAKi5B,eACNj5B,KAAKg5B,mCAETh5B,KAAKk5B,kBAAkBl5B,KAAKmP,MAAOnP,KAAKsU,eAGhD0c,wBAAyB,WAAA,GAEb1c,GACAnF,CAFJnP,MAAKwU,eACDF,EAActU,KAAKwU,aAAahL,SAAS,SACzC2F,EAAQnP,KAAK8J,MAAMuB,SACvBrL,KAAKk5B,kBAAkB5kB,EAAanF,GACpCmD,GAAgBgC,EAAanF,KAGrCgqB,wBAAyB,WACjBn5B,KAAKysB,cAAgBzsB,KAAKwsB,QAAUxsB,KAAKwsB,OAAO9tB,QAChDsB,KAAKk5B,kBAAkBl5B,KAAKysB,aAAajjB,SAAS,SAAUxJ,KAAKwsB,OAAOjoB,KAAK,iCAGrFgnB,iBAAkB,WAAA,GACVxM,GAAO/e,KACP+f,EAAU,WACV,GAAIhB,EAAK9K,SAAU,CACf,GAAIxP,GAAYsa,EAAKqa,SAAWra,EAAKqa,SAASxxB,QAAUmX,EAAKmY,cACzDzyB,KACAA,EAAUwb,IAAI/a,GAAQC,GAAI,kBAAmB4Z,EAAKsa,yBAClD50B,EAAUwb,IAAI/a,GAAQC,GAAI,kBAAmB4Z,EAAKua,0BAEtDva,EAAKwa,qBACLxa,EAAK9K,SAAS8L,UACdhB,EAAK9K,SAAW,KAChB8K,EAAKmY,eAAiB,KACtBnY,EAAKya,mBACLza,EAAK0a,mBAAqB,MAG9B1a,GAAK9K,WACoB,UAArB8K,EAAK6X,aAA4B7X,EAAK8M,UAQtC9L,IAPIhB,EAAK0a,mBACL1a,EAAKmY,eAAevlB,KAAK,eAAe8N,KAAK,aAAcM,IAE3DhB,EAAK0a,oBAAqB,EAC1B1a,EAAKmY,eAAevlB,KAAK,eAAe8N,KAAK,aAAcM,GAAS2Z,UAM5E3a,EAAK4a,iBACL5a,EAAK4a,eAAeD,QACpB3a,EAAK4a,eAAe5Z,UACpBhB,EAAK4a,eAAiB,OAG9BH,iBAAkB,WACVx5B,KAAKo5B,WACLp5B,KAAKo5B,SAASQ,QACd55B,KAAKo5B,SAAW,KAChBp5B,KAAK4rB,KAAKiO,SAAS,MAG3BzB,mBAAoB,SAAUrkB,GAC1B,GAAIgL,GAAO/e,IACX+e,GAAK+a,oBAAsB,SAAUpsB,GACjCqR,EAAKgb,cACDj0B,MAAO4H,EAAE5H,MACTiO,MAAO/T,QAGf+T,EAAM0L,KAAK,SAAUV,EAAK+a,sBAE9BP,mBAAoB,WAChB,GAAIxa,GAAO/e,KAAMyE,EAAYsa,EAAKmY,eAAgBnjB,EAAQgL,EAAK4X,mBAAmBlyB,EAC9EsP,IACAA,EAAMyL,OAAOxF,GAAQ+E,EAAK+a,sBAGlC1C,UAAW,SAAU4C,GACjB,GAA6Cr0B,GAAQioB,EAAI7Z,EAArDgL,EAAO/e,KAAMsI,EAAOyW,EAAKmY,cACxB5uB,KAGLyL,EAAQgL,EAAK4X,mBAAmBruB,GAC5B0xB,GAAYjb,EAAK6D,QAAQ,UACrBne,UAAW6D,EACXyL,MAAOA,MAIfgL,EAAK6D,QAAQ7I,IACTkgB,KAAMD,EAAW,SAAW,OAC5BjmB,MAAOA,EACPtP,UAAW6D,IAEfA,EAAKklB,YAAY,eACjB7nB,EAASwE,GAAY4U,EAAKzZ,SAASyZ,EAAK+X,sBAAsBxuB,IAC9DslB,EAAKtlB,EAAK+C,SAASmiB,YAAY,mBAC3BzO,EAAK3a,eACL2a,EAAK+Z,YAAYlL,GAAIJ,YAAY,mBAErCzO,EAAKwM,mBACLxM,EAAKmb,aAAa5xB,EAAM3C,EAAQoO,GAC5BgL,EAAKsZ,2BACLtZ,EAAKuZ,sBAETvZ,EAAK6D,QAAQ,cACThS,KAAMgd,EACNjc,KAAMoC,EACNomB,GAAIziB,KAEJqH,EAAK3a,eACLyO,GAAgB+a,EAAGnqB,IAAI,SAAU,IAAI,GAAIsb,EAAK+Z,YAAYlL,GAAInqB,IAAI,SAAU,IAAI,OAGxFy2B,aAAc,SAAU5xB,EAAM3C,EAAQy0B,GAClC,GAAIrb,GAAO/e,KAAMmR,GACTkpB,WACAr3B,MAAO,GACRs3B,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,kBAAmBC,EAAO/6B,GAAMg7B,SAAS3b,EAAK4b,UAAUh1B,EAAQwL,GAAQmpB,EAC9HnpB,GAAMnO,MAAQ,IACdy3B,EAAOr1B,GAAMq1B,EAAMtpB,EAAMkpB,UAE7B/xB,EAAK+G,QAAQD,KAAKqrB,EAAKL,IACvBrb,EAAKiP,QAAQ,UAAW,WACpB,OACI7pB,SAAUmE,EACVqJ,OAASyoB,SAAUA,QAI/BlC,UAAW,SAAU3tB,GACZvK,KAAKm4B,cAAc5tB,IAGxBvK,KAAK46B,WAAWrwB,IAEpBqwB,WAAY,SAAUrwB,GAClB,GAAiBwJ,GAAO8mB,EAAS58B,EAAK68B,EAAlC/b,EAAO/e,KAAmCg3B,EAAOjY,EAAK6X,WAC7C,YAATI,GACAjY,EAAKgc,YAETxwB,EAAM/M,EAAE+M,GACJwU,EAAK3a,gBACLmG,EAAMA,EAAI/G,IAAIub,EAAK+Z,YAAYvuB,KAEnCA,EAAMA,EAAI/E,OACNuZ,EAAKJ,WAAW8F,iBAChB1F,EAAKic,oBAAoBzwB,GAE7BwJ,EAAQgL,EAAK4X,mBAAmBpsB,GAC5BwJ,IAAUgL,EAAK6D,QAAQnJ,IACnBlP,IAAKA,EACLwJ,MAAOA,KAEX+mB,EAAS/b,EAAKJ,WAAW1d,QAAQ65B,OAC7B/b,EAAK+L,cAAgBgQ,GAAUA,EAAO/mB,QACtC8mB,EAAUxiB,GAAW0G,EAAKJ,WAAW1d,QAAQ65B,OAAO/mB,OAASgL,EAAKJ,WAAW1d,QAAQ65B,OAAO/mB,MAAM0K,GAAGwc,QAAUlc,EAAKJ,WAAW1d,QAAQ65B,OAAO/mB,MAAM1N,GACpJpI,EAAM8V,EAAM8mB,SACL9b,GAAK+L,aAAa7sB,IAE7B8gB,EAAKJ,WAAWpS,OAAOwH,GACV,WAATijB,GAA8B,UAATA,GACrBjY,EAAKJ,WAAWuc,QAEJ,WAATlE,GACPjY,EAAKwM,oBAGbqL,UAAW,WACP,GAAII,GAAO,SAAU/iB,EAAWjU,KAAKiB,QAAQgT,QAQ7C,OAPIA,MAAa,IAET+iB,EADmB,gBAAZ/iB,GACAA,EAEAA,EAAS+iB,MAAQA,GAGzBA,GAEXe,QAAS,SAAUxtB,GAAV,GACDwJ,GAQAijB,EACAvyB,EARAsa,EAAO/e,IACPuK,aAAeqN,IACf7D,EAAQxJ,GAERA,EAAM/M,EAAE+M,GACRwJ,EAAQgL,EAAK4X,mBAAmBpsB,IAEhCysB,EAAOjY,EAAK6X,YAEhB7X,EAAKgc,YACDhnB,IACAxJ,EAAMwU,EAAK7P,MAAM1F,SAAS,IAAM9J,GAAMoD,KAAK,OAAS,IAAMiR,EAAMlO,IAAM,KACtEkZ,EAAKqZ,mBAAmBrkB,GACX,UAATijB,EACAjY,EAAKoc,mBAAmBpnB,GACR,WAATijB,EACPjY,EAAKqc,oBAAoB7wB,EAAKwJ,GACd,WAATijB,GACPx5B,EAAE+M,GAAKf,SAASmP,IAAWsV,KAAK,WAAA,GACxB3lB,GAAO9K,EAAEwC,MACT2F,EAASwE,GAAY4U,EAAKzZ,SAASyZ,EAAK+X,sBAAsBxuB,GAElE,IADAyL,EAAQgL,EAAK4X,mBAAmBruB,GAC5ByL,KAAWA,EAAME,UAAYF,EAAME,SAAStO,EAAOG,SAAWH,EAAOG,QAAUH,EAAOqO,WAEtF,MADA+K,GAAK6Y,SAAStvB,IACP,IAInB7D,EAAYsa,EAAKqa,SAAWra,EAAKqa,SAASxxB,QAAUmX,EAAKmY,eACrDzyB,IACKzE,KAAKq5B,0BACNr5B,KAAKq5B,wBAA0Bj0B,GAAMpF,KAAKq7B,iBAAkBr7B,OAEhEyE,EAAUQ,GAAGC,GAAQC,GAAI,kBAAmBnF,KAAKq5B,yBAC5Cr5B,KAAKs5B,0BACNt5B,KAAKs5B,wBAA0Bl0B,GAAMpF,KAAKs7B,iBAAkBt7B,OAEhEyE,EAAUQ,GAAGC,GAAQC,GAAI,kBAAmBnF,KAAKs5B,4BAI7DgC,iBAAkB,SAAU5tB,GACxBA,EAAE8F,iBACF9F,EAAEuqB,kBACFj4B,KAAKu7B,WAETF,iBAAkB,SAAU3tB,GAAV,GAaV8tB,GAZAzc,EAAO/e,KACP8U,EAAciK,EAAK9d,QAAQ6T,YAC3Bf,EAAQgL,EAAK9K,SAAShT,QAAQ8S,MAC9BtP,EAAYsa,EAAKqa,SAAWra,EAAKqa,SAASxxB,QAAUmX,EAAKmY,cAC7DxpB,GAAE8F,iBACF9F,EAAEuqB,kBACElZ,EAAK6D,QAAQ,UACTne,UAAWA,EACXsP,MAAOA,MAIXynB,EAAezc,EAAKlN,QAAQ7G,MAAMxN,EAAEuhB,EAAK3f,WAAWiM,UACxD0T,EAAKgc,YACDjmB,IACAiK,EAAKlK,YAAYkK,EAAKlN,QAAQ5N,GAAGu3B,GAAchyB,WAAWlF,OAAOwU,IAAS0H,SAC1ErN,GAAW4L,EAAK5P,OAAO,MAG/BgsB,mBAAoB,SAAUpnB,GAAV,GAGZpO,GACAhB,EAEAZ,EACArF,EACA+7B,EACAgB,EACAC,EACAC,EACAC,EACAC,EAEA/4B,EAMAqO,EAqGA1M,EAzHAsa,EAAO/e,KACPoP,EAAO,QAAU1P,GAAMoD,KAAK,OAAS,KAAOiR,EAAMlO,IAAM,iCAAmCkZ,EAAK8M,UAAY,kEAAoE,sCAGhL2M,KASAlzB,EAAU6E,GAAY4U,EAAKzZ,SAE3Bw2B,EAAep8B,GAAMyG,OACrB8N,EAAW8K,EAAK9d,QAAQgT,SACxBymB,EAAWzmB,EAASymB,SACpBz5B,EAAU6D,GAAcmP,GAAYA,EAASxU,UAC7C66B,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,iBAEvD,KAAIzb,EAAK6D,QAAQrJ,IAAcxF,MAAOA,IAAtC,CAIA,GADA9S,EAAUA,MACNy5B,EAKA,UAJWA,KAAar3B,KACpBq3B,EAAWh7B,GAAMq8B,SAASrB,IAE9BtrB,GAAQ1P,GAAMg7B,SAASA,EAAUJ,GAAUvmB,GACtChQ,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD4B,EAASL,EAAQvB,GACb4B,EAAOhB,UACPk3B,EAAc3oB,GAAWvN,EAAOhB,QAAS,QACrCk3B,IACAl3B,EAAUk3B,QAKtB,KAAK93B,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD4B,EAASL,EAAQvB,GACb4B,EAAOqO,aAGNrO,EAAOhB,QAqDDgB,EAAOhB,UACdk3B,EAAc3oB,GAAWvN,EAAOhB,QAAS,QACrCk3B,IACAl3B,EAAUk3B,IAvDT9c,EAAK8M,WAuBNzc,GAAQ,uCACJ0E,GAAiBnO,EAAQoO,IACzBykB,EAAOr6B,MACH2H,MAAOH,EAAOG,MACdssB,MAAOzsB,EAAOysB,MACdniB,OAAQtK,EAAOsK,OACfwoB,OAAQ9yB,EAAO8yB,OACfC,OAAQ/yB,EAAO+yB,SAEnBtpB,GAAQ,+CACRA,GAAQ,4DAA8DzJ,EAAOysB,QAAUrT,EAAK9d,QAAQioB,aAAejY,GAAWtL,EAAOysB,OAAO,GAAQzsB,EAAOysB,QAAUzsB,EAAOG,OAAS,IAAM,UAC3LsJ,GAAQ,mDAAqDzJ,EAAOG,MAAQ,IAAMg2B,EAAe,KAAOp8B,GAAMoD,KAAK,iBAAmB,KAAO6C,EAAOG,MAAQ,WAC5JsJ,GAAQ,aAER+B,GACIkpB,WACAr3B,MAAO,GAEXy3B,EAAO/6B,GAAMg7B,SAAS3b,EAAK4b,UAAUh1B,EAAQwL,GAAQmpB,GACjDnpB,EAAMnO,MAAQ,IACdy3B,EAAOr1B,GAAMq1B,EAAMtpB,EAAMkpB,UAE7BjrB,GAAQ,0DACRA,GAAQ,4DAA8DzJ,EAAOysB,QAAUrT,EAAK9d,QAAQioB,aAAejY,GAAWtL,EAAOysB,OAAO,GAAQzsB,EAAOysB,QAAUzsB,EAAOG,OAAS,IAAM,UAC3LsJ,GAAQ,4DAA8DqrB,EAAK1mB,GAAS,UACpF3E,GAAQ,YAEZA,GAAQ,UAjDRA,GAAQ,yCAA2CzJ,EAAOG,MAAQ,MAAQH,EAAOysB,QAAUrT,EAAK9d,QAAQioB,aAAejY,GAAWtL,EAAOysB,OAASzsB,EAAOysB,QAAUzsB,EAAOG,OAAS,IAAM,iBACrLgO,GAAiBnO,EAAQoO,IACzBykB,EAAOr6B,MACH2H,MAAOH,EAAOG,MACdssB,MAAOzsB,EAAOysB,MACdniB,OAAQtK,EAAOsK,OACfwoB,OAAQ9yB,EAAO8yB,OACfC,OAAQ/yB,EAAO+yB,SAEnBtpB,GAAQ,QAAU1P,GAAMoD,KAAK,iBAAmB,KAAO6C,EAAOG,MAAQ,kCAEtEqL,GACIkpB,WACAr3B,MAAO,GAEXy3B,EAAO/6B,GAAMg7B,SAAS3b,EAAK4b,UAAUh1B,EAAQwL,GAAQmpB,GACjDnpB,EAAMnO,MAAQ,IACdy3B,EAAOr1B,GAAMq1B,EAAMtpB,EAAMkpB,UAE7BjrB,GAAQ,yCAA2CqrB,EAAK1mB,GAAS,WAwCjFpP,IACIG,GAAcH,KACVG,GAAcH,EAAQjH,QACtB+9B,EAAa92B,EAAQjH,KAAKqoB,OAC1B2V,EAAa/2B,EAAQjH,KAAK+nB,QAE1B3gB,GAAcH,EAAQihB,aACtB+V,EAAkBh3B,EAAQihB,UAAUG,OACpC6V,EAAkBj3B,EAAQihB,UAAUH,QAEpC9gB,EAAQ7B,OACRA,EAAO6B,EAAQ7B,OAKtBic,EAAK8M,WAyCNzc,GAAQ,cACR2P,EAAKqa,SAAWra,EAAK6M,KAAKzb,OAAO,aAAezQ,GAAMy6B,GAAK,kDAAyDz6B,GAAMy6B,GAAK,gNAA4Npb,EAAK9d,QAAQ2oB,SAASllB,SAASohB,MAAQ,QAAU,6KAA8LpmB,GAAMy6B,GAAK,yBAA2B9b,GAAWha,QAAU,KAAO+K,EAAO,gBACnpB3K,EAAYsa,EAAKmY,eAAiBnY,EAAKqa,SAASxxB,QAAQrD,KAAK,wBA1C7D6K,GAAQ,+CACRA,GAAQ2P,EAAKid,eACTh3B,KAAM,SACNtH,KAAM+9B,EACN34B,KAAMA,EACN8iB,UAAW+V,IACV5c,EAAKid,eACNh3B,KAAM,aACNtH,KAAMg+B,EACN54B,KAAMA,EACN8iB,UAAWgW,IAEfxsB,GAAQ,qBACR3K,EAAYsa,EAAKmY,eAAiB15B,EAAE4R,GAAMlL,SAAS6a,EAAKnJ,SAAS3R,GAAG,GAAGg4B,YAAYp8B,IAC/Eq8B,OAAO,EACP5S,WAAW,EACXiJ,WAAW,EACXH,MAAOrT,EAAK9d,QAAQ2oB,SAASllB,SAASohB,MAAQ,OAC9Clf,SAAS,EACT8yB,MAAO,SAAUhsB,GACb,GAAIA,EAAEyuB,cAAe,CAEjB,GADAzuB,EAAEsT,OAAOpZ,QAAQ6L,QACbsL,EAAK6D,QAAQ,UACTne,UAAWA,EACXsP,MAAOA,IAGX,MADArG,GAAE8F,iBACF,CAEJ,IAAIgoB,GAAezc,EAAKlN,QAAQ7G,MAAMxN,EAAEuhB,EAAK3f,WAAWiM,SACxD0T,GAAK0a,oBAAqB,EAC1B1a,EAAKgc,YACDhc,EAAK9d,QAAQ6T,cACbiK,EAAKlK,YAAYkK,EAAKlN,QAAQ5N,GAAGu3B,GAAchyB,WAAWlF,OAAOwU,IAAS0H,SAC1ErN,GAAW4L,EAAK5P,OAAO,OAIpClO,KAMP8d,EAAK9K,SAAW8K,EAAKmY,eAAeqB,eAChCC,OAAQA,EACRzkB,MAAOA,EACPqoB,gBAAgB,EAChBpzB,OAAQ+V,IACTpN,KAAK,iBACRoN,EAAKsd,mBACLtd,EAAK6D,QAAQtJ,IACT7U,UAAWA,EACXsP,MAAOA,MAGfsoB,iBAAkB;AAAA,GACVtd,GAAO/e,KACPs8B,EAAevd,EAAKmY,eAAiBnY,EAAKmY,eAAevlB,KAAK,eAAiB,KAC/E4qB,GAAiBxd,EAAK9d,QAAQgT,cAAgBxU,UAC7CO,MAAK6rB,UAQN7rB,KAAK4rB,KAAKiO,SAAS75B,KAAKo5B,SAAUp5B,KAAKw8B,gBAPnCF,IACKC,EAAcvyB,UACfsyB,EAAaG,SAEjBH,EAAaI,SAMzBtB,oBAAqB,SAAU7wB,EAAKwJ,GAAf,GAEbpO,GACA2C,EACA3D,EAHAoa,EAAO/e,KAIPw4B,IACAzZ,GAAK6D,QAAQrJ,IAAcxF,MAAOA,MAGlCgL,EAAK3a,gBACLmG,EAAMA,EAAI/G,IAAIub,EAAK+Z,YAAYvuB,KAEnCA,EAAIf,SAAS,yCAAyCykB,KAAK,WAGvD,GAFA3lB,EAAO9K,EAAEwC,MACT2F,EAASwE,GAAY4U,EAAKzZ,SAASyZ,EAAK+X,sBAAsBxuB,KACzD3C,EAAOhB,SAAWmP,GAAiBnO,EAAQoO,GAC5CykB,EAAOr6B,MACH2H,MAAOH,EAAOG,MACdssB,MAAOzsB,EAAOysB,MACdniB,OAAQtK,EAAOsK,OACfwoB,OAAQ9yB,EAAO8yB,OACfC,OAAQ/yB,EAAO+yB,SAEnBpwB,EAAKxF,KAAKpD,GAAMoD,KAAK,iBAAkB6C,EAAOG,OAC9CwC,EAAK+G,YACF,IAAI1J,EAAOhB,UACdA,EAAUuO,GAAWvN,EAAOhB,QAAS,SACxB,CACT2D,EAAK+G,OACL,IAAIosB,GAAYC,EAAYC,EAAiBC,EAAiB94B,CAC1DgC,IAAcH,KACVG,GAAcH,EAAQjH,QACtB+9B,EAAa92B,EAAQjH,KAAKqoB,OAC1B2V,EAAa/2B,EAAQjH,KAAK+nB,QAE1B3gB,GAAcH,EAAQihB,aACtB+V,EAAkBh3B,EAAQihB,UAAUG,OACpC6V,EAAkBj3B,EAAQihB,UAAUH,QAEpC9gB,EAAQ7B,OACRA,EAAO6B,EAAQ7B,OAGvBtF,EAAEuhB,EAAKid,eACHh3B,KAAM,SACNtH,KAAM+9B,EACN34B,KAAMA,EACN8iB,UAAW+V,IACV5c,EAAKid,eACNh3B,KAAM,aACNtH,KAAMg+B,EACN54B,KAAMA,EACN8iB,UAAWgW,KACX13B,SAASoE,MAIzByW,EAAKmY,eAAiB3sB,EACtBwU,EAAKmY,eAAe9O,SAAS,mBACzBrJ,EAAKsZ,2BACLtZ,EAAKuZ,sBAETvZ,EAAK9K,SAAW,GAAIvU,IAAMgY,GAAGilB,SAAS5d,EAAKmY,gBACvCluB,OAAQ+V,EACRyZ,OAAQA,EACRzkB,MAAOA,EACP4kB,UAAW5Z,EAAKiZ,4BAA8BjZ,EAAK8Z,kBAAmB9Z,EAAK8Z,eAAe/yB,OAAyBiZ,EAAKmV,qBACxHkI,gBAAgB,IAEhB7xB,EAAI7L,OAAS,IACbmU,GAAgBtI,EAAI,GAAIA,EAAI,IAC5BwU,EAAK+R,+BAET/R,EAAK6D,QAAQtJ,IACT7U,UAAW8F,EACXwJ,MAAOA,MAGfgnB,UAAW,SAAUxS,GACjB,GAAkDxU,GAA9CgL,EAAO/e,KAAMyE,EAAYsa,EAAKmY,cAClC,IAAIzyB,EAAW,CAEX,GADAsP,EAAQgL,EAAK4X,mBAAmBlyB,IAC3BsP,GAASwU,GAAUxJ,EAAK6D,QAAQ,UAC7Bne,UAAWA,EACXsP,MAAOA,IAEX,MAEJgL,GAAKwM,mBACLxM,EAAKJ,WAAWie,cAAc7oB,GAC9BgL,EAAKuZ,sBAEDvZ,EAAK8d,YADgB,UAArB9d,EAAK6X,YACYnyB,EAEAsa,EAAK7P,MAAM3K,KAAK,IAAM7E,GAAMoD,KAAK,OAAS,IAAMiR,EAAMlO,IAAM,QAIzF01B,QAAS,WAAA,GAKDuB,GAJA/d,EAAO/e,KACPyE,EAAYzE,KAAKk3B,eACjBnjB,EAAQ/T,KAAK22B,mBAAmBlyB,GAChCs4B,EAAWv/B,EAAEw/B,UAEjB,OAAKv4B,IAAczE,KAAKiU,UAGxB6oB,EAAQ/d,EAAK9K,UAAY8K,EAAK9K,SAASkjB,OAClC2F,GAAS98B,KAAK4iB,QAAQpJ,IACnB/U,UAAWA,EACXsP,MAAOA,KAEN+oB,GACD/d,EAAKsY,wBAEF0F,EAASE,SAASC,YAE7Bne,EAAKuZ,sBACEt4B,KAAK2e,WAAWuc,SAbZ6B,EAASI,UAAUD,WAelCL,YAAa,SAAUtyB,GAAV,GAC8C6yB,GAASC,EAAQC,EA0BhEC,EACAC,EA3BJze,EAAO/e,KAAM+T,EAAQgL,EAAK4X,mBAAmBpsB,GAAgCkzB,EAAalzB,EAAIF,SAAS,oBAAqBqzB,EAAQnzB,EAAIF,SAAS,QACjJ0J,KACIgL,EAAK3a,gBACLg5B,EAAU5/B,GAAGkgC,EAAQ3e,EAAKmN,qBAAuBnN,EAAKkN,mBAAmBlY,IACzEgL,EAAK+Z,YAAYvuB,EAAIb,QAAQi0B,YAAYP,IAE7Cre,EAAKiP,QAAQ,UAAW,WACpB,OAAS7pB,SAAUoG,EAAI3J,SAE3By8B,EAAS7/B,GAAGkgC,EAAQ3e,EAAKqK,eAAiBrK,EAAKoK,aAAapV,IACvDxJ,EAAI2F,GAAG,aACRmtB,EAAO73B,OAEX+E,EAAIozB,YAAYN,GAChBte,EAAK6D,QAAQ,cACThS,KAAMysB,EACN1rB,KAAMoC,EACNomB,GAAIziB,KAEJ0lB,GAAWA,EAAQ1+B,QACnBqgB,EAAK6D,QAAQ,cACThS,KAAMwsB,EACNzrB,KAAMoC,EACNomB,GAAIziB,KAGR6lB,EAAkBF,EAClBG,IAAiBpD,SAAUrmB,IAC3BqpB,GAAWA,EAAQ1+B,SACnB6+B,EAAkBF,EAAO75B,IAAI45B,GAC7BI,EAAYr/B,MAAOi8B,SAAUrmB,KAEjCgL,EAAKiP,QAAQ,UAAW,WACpB,OACI7pB,SAAUo5B,EAAgB38B,MAC1B+Q,KAAM6rB,KAGVC,IAAe1e,EAAK9d,QAAQ+S,YAAc+K,EAAK6e,qBAC/C7e,EAAK8e,OAAOR,EAAO75B,IAAI45B,IAEvBA,GACAvqB,GAAgBwqB,EAAO,GAAID,EAAQ,IAEvCE,EAAUD,EAAOruB,OACbsuB,EAAQjzB,SAAS,iBAAmBizB,EAAQptB,GAAG,aAC/CmtB,EAAO94B,KAAK,6BAA6BipB,YAAY,cAAcpF,SAAS,kBAIxF0V,aAAc,SAAUlU,EAAUrf,GAApB,GAKNwzB,GAJAhf,EAAO/e,IACX,OAAK+e,GAAK8M,WAGNkS,EAAgBhf,EAAK4a,eAAiB,GAAIj6B,IAAMgY,GAAGsmB,QAAQxgC,EAAE,WAAW0G,SAASpD,SAASe,OAC1Fq6B,OAASxnB,eAAe,GACxBupB,UAAU,EACV7L,OAAO,EACP/tB,QAASulB,EAASwI,MAClBxI,UACIsU,OAAQtU,EAASG,cACjBtE,OAAQmE,EAASC,cAErB6S,KAAM,WACE3d,EAAK1a,UACL0a,EAAK1a,QAAQsN,KAAKoL,GAAUgC,EAAK1a,QAAQZ,IAAIsZ,KAC7CgC,EAAK1a,QAAQZ,IAAIsZ,GAAUC,MAGnC0c,MAAO,WACC3a,EAAK1a,SACL0a,EAAK1a,QAAQZ,IAAIsZ,GAAUgC,EAAK1a,QAAQsN,KAAKoL,QAIzDghB,EAAc36B,OAAO+6B,KAAK,WACtBpf,EAAK6b,WAAWrwB,KACjB6zB,KAAK,WACJ,GAAIL,GAAgBhf,EAAK4a,cACrBoE,KACAA,EAAcrE,QACdqE,EAAche,cAGf,GAhCItgB,OAAO4+B,QAAQzU,EAASwI,QAkCvC+F,cAAe,SAAU5tB,GACrB,GAAIwU,GAAO/e,KAAMiU,EAAW8K,EAAK9d,QAAQgT,SAAU6V,EAAe7V,KAAa,SAAeA,KAAa5Q,GAAS0b,EAAK9d,QAAQ2oB,SAAS3V,SAAS6V,aAAe7V,EAAS6V,YAI3K,OAHIhlB,IAAcmP,UAAoBA,GAAS+iB,OAAS3zB,UAAiBymB,KAAiBzN,UAAmByN,KAAiBzmB,IAAUymB,KAAiB,IACrJA,EAAe/K,EAAK9d,QAAQ2oB,SAAS3V,SAAS6V,cAE9CA,KAAiB,GAAyB,MAAhBA,UACfA,KAAiBzN,KACxByN,EAAeA,EAAa/K,EAAK4X,mBAAmBpsB,KAEjDwU,EAAK+e,cACR/T,cAAe9V,EAAS8V,eAAiBhL,EAAK9d,QAAQ2oB,SAAS3V,SAAS8V,cACxEF,aAAc5V,EAAS4V,cAAgB9K,EAAK9d,QAAQ2oB,SAAS3V,SAAS4V,aACtEuI,MAAOtI,KAAiB,EAAO/K,EAAK9d,QAAQ2oB,SAAS3V,SAAS6V,aAAeA,GAC9Evf,KAIXqyB,cAAe,WACX,GAAI7d,GAAO/e,IACX+e,GAAKJ,WAAWie,gBACZ7d,EAAKuf,sBACLvf,EAAKwf,kBAAkB,WACnBxf,EAAK4J,kBAAkB5F,iBAInCyb,YAAa,WAAA,GACLzf,GAAO/e,KACP88B,EAAQ/d,EAAK9K,UAAY8K,EAAK9K,SAASkjB,OACtC2F,GAAU/d,EAAK9K,UAAc8K,EAAK6D,QAAQzI,IAEnC2iB,GACR/d,EAAKsY,wBAFLtY,EAAKJ,WAAWuc,QAKxBuD,OAAQ,WAAA,GACazzB,GAEb+I,EAFAgL,EAAO/e,KAAa2e,EAAaI,EAAKJ,WAAYqY,EAAOjY,EAAK6X,YAAa8H,EAAW3f,EAAK9d,QAAQgT,SAASyqB,UAAY,GAAIxf,EAAWP,EAAWO,WAAYyf,EAAOhgB,EAAWggB,WAChLC,EAAiBF,EAAShpB,gBAAkB4G,GAE5CuiB,EAAkB9f,EAAKuf,oBACvBvf,GAAK9K,UAAY8K,EAAK9K,SAASkjB,QAAUpY,EAAK9K,UAClC,UAAR+iB,GACAjY,EAAKgc,YAET/vB,EAAQ2T,EAAWxS,QAAQwyB,EAAK,IAC5BC,IACA5zB,GAAS2zB,EAAKjgC,OACVwgB,IAAaP,EAAW1d,QAAQ69B,cAAgB5f,GAAYyf,EAAKjgC,SACjEsM,GAAS,IAGbA,EAAQ,IAEJA,EADA2T,EAAW+G,OAAS/G,EAAWG,cACtBH,EAAW+G,OAAS,GAAKxG,EAE1B,GAGZH,EAAK9d,QAAQ6T,aAAuB,UAARkiB,GAC5BjY,EAAKggB,iBAELF,EACA9f,EAAKigB,kBAELjrB,EAAQ4K,EAAWsgB,OAAOj0B,MAC1B+T,EAAKmgB,WAAWnrB,KAGpBgL,EAAKsY,yBAGb6H,WAAY,SAAUnrB,GAAV,GAKA1N,GAAgB8I,EAA4D5E,EAA8DjC,EAJ9IyW,EAAO/e,KACP0+B,EAAW3f,EAAK9d,QAAQgT,SAASyqB,UAAY,GAC7C1H,EAAOjY,EAAK6X,WACZ7iB,KACI1N,EAAK0N,EAAMlO,IAAKsJ,EAAQ4P,EAAK3a,cAAgB2a,EAAKzK,YAAcyK,EAAK5P,MAAO5E,EAAM4E,EAAM5K,KAAK,MAAQ7E,GAAMoD,KAAK,OAAS,IAAMuD,EAAK,KAAMiC,EAAOiC,EAAIf,SAAS,2CAA2CvF,GAAG8a,EAAKogB,0BAA0B50B,IAClO,WAATysB,GAAqBzsB,EAAI7L,OACzBqgB,EAAKgZ,QAAQxtB,GACG,UAATysB,EACPjY,EAAKgZ,QAAQhkB,GACNzL,EAAK5J,QACZqgB,EAAK6Y,SAAStvB,GAEY,UAA1Bo2B,EAAShpB,eAA6BqJ,EAAK3a,gBAC3C2a,EAAK3a,cAAc,GAAG+c,UAAYpC,EAAK1a,QAAQ,GAAG8c,UAAYpC,EAAK5P,MAAM,GAAGpN,gBAIxFi9B,eAAgB,WAAA,GACRjgB,GAAO/e,KACP4+B,GAAkB7f,EAAK9d,QAAQgT,SAASyqB,UAAY,IAAIhpB,gBAAkB4G,EAC9EyC,GAAKuZ,sBACDsG,EACA7f,EAAKqgB,yBAELrgB,EAAKsgB,uBAGbA,oBAAqB,WAAA,GAIbtrB,GAHAgL,EAAO/e,KACP2e,EAAaI,EAAKJ,WAClBgK,EAAoB5J,EAAK4J,iBAEH,KAAtBhK,EAAW+G,QACX3R,EAAQ4K,EAAWsgB,OAAO,MAC1BlgB,EAAKmgB,WAAWnrB,GAChB4U,EAAkB5F,eAElBhE,EAAKwf,kBAAkB,WACnBxqB,EAAQ4K,EAAWsgB,OAAO,MAC1BlgB,EAAKmgB,WAAWnrB,GAChB4U,EAAkB5F,iBAI9Bqc,uBAAwB,WAAA,GAKhBrrB,GAJAgL,EAAO/e,KACP2e,EAAaI,EAAKJ,WAClBgK,EAAoB5J,EAAK4J,kBACzB3d,EAAQ2T,EAAW6F,OAEnB7F,GAAW2gB,GAAGt0B,EAAQ,YAAc4M,KACpC7D,EAAQ4K,EAAWsgB,OAAOj0B,MAC1B+T,EAAKwgB,qBAAqB,WACtBxgB,EAAKmgB,WAAWnrB,GAChB4U,EAAkB1F,oBAGtBlE,EAAKwgB,qBAAqB,WACtBxrB,EAAQ4K,EAAWsgB,OAAOj0B,MAC1B+T,EAAKmgB,WAAWnrB,GAChB4U,EAAkB1F,oBAI9Bsb,kBAAmB,SAAU3Z,GACzB,GAAI7F,GAAO/e,IACX+e,GAAKygB,aAAa,EAAGzgB,EAAKJ,WAAWmE,OAAQ,WACzC8B,OAGR2a,qBAAsB,SAAU3a,GAAV,GACd7F,GAAO/e,KACP2e,EAAaI,EAAKJ,WAClBmE,EAAOnE,EAAWmE,OAClB0B,EAAQ7F,EAAW6F,QACnBzC,EAAOyC,EAAQ1B,EAAO0B,EAAQ1B,EAAO,CACzC/D,GAAKygB,aAAazd,EAAMe,EAAM,WAC1B8B,OAGR4a,aAAc,SAAUzd,EAAMe,EAAM8B,GAChC,GAAI7F,GAAO/e,IACP+e,GAAKuf,uBACLvf,EAAK4J,kBAAkBpG,gBAAiB,EACxCxD,EAAK4J,kBAAkB9F,MAAMd,EAAMe,EAAM8B,KAGjDua,0BAA2B,SAAU16B,GACjC,GAAiBkB,GAA6C5B,EAAKrF,EAA/DqgB,EAAO/e,KAAcsF,EAAU6E,GAAY4U,EAAKzZ,SAAuByO,EAAQgL,EAAK4X,mBAAmBlyB,EAC3G,KAAKV,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IAEjD,GADA4B,EAASL,EAAQvB,GACbgQ,KAAWA,EAAME,UAAYF,EAAME,SAAStO,EAAOG,UAAYH,EAAOhB,SAAWgB,EAAOG,OAASH,EAAOC,UAAW,EACnH,MAAO7B,EAGf,WAEJojB,SAAU,WACN,GAA2G1iB,GAAvGsa,EAAO/e,KAAM4V,EAAUmJ,EAAKnJ,QAASgT,EAAU7J,EAAK9d,QAAQ2nB,QAAS3U,EAAW8K,EAAK9d,QAAQgT,QAC7F2U,KACAnkB,EAAYsa,EAAKnJ,QAAQrR,KAAK,mBACzBE,EAAU/F,SACN2Z,GAAWuQ,KACZA,QAAiBA,KAAYvlB,GAASulB,EAAU7J,EAAK0gB,aAAa7W,GAAShrB,QAAQ4f,GAAoB,OACvGoL,EAAUxjB,GAAM1F,GAAMg7B,SAAS9R,GAAU7J,IAE7Cta,EAAYjH,EAAE,4CAA4C4R,KAAKwZ,OAAa8W,UAAU9pB,GACtFmJ,EAAKiP,QAAQ,UAAW,WACpB,OAAS7pB,SAAUM,EAAU7D,UAGjCqT,GAAYA,EAAS0R,UAAW,GAChClhB,EAAUQ,GAAGC,GAAQC,GAAI,cAAe,SAAUuI,GAC9CA,EAAE8F,iBACFuL,EAAK0f,WACNx5B,GAAGC,GAAQC,GAAI,yBAA0B,SAAUuI,GAClDA,EAAE8F,iBACFuL,EAAK6d,kBACN33B,GAAGC,GAAQC,GAAI,uBAAwB,SAAUuI,GAChDA,EAAE8F,iBACFuL,EAAKyf,gBAGb/5B,EAAUQ,GAAGC,GAAQC,GAAI,gBAAiB,SAAUuI,GAChDA,EAAE8F,iBACFuL,EAAK4gB,gBAETl7B,EAAUQ,GAAGC,GAAQC,GAAI,cAAe,SAAUuI,GAC9CA,EAAE8F,iBACFuL,EAAK6gB,cAETn7B,EAAUQ,GAAGwX,GAAQtX,GAAI,uBAAwB,SAAUuI,GACvD,GAAImyB,GAAQnyB,EAAE0G,aACd8L,cAAanB,EAAK+gB,gBAClB/gB,EAAK+gB,eAAiB/qB,WAAW,WAAA,GAEzB9T,GACA8+B,EACAC,EAIA3/B,EASS7B,CADb,IAfAugB,EAAK+gB,eAAiB,KAClB7+B,EAAU8d,EAAK9d,QACf8+B,EAAe9+B,EAAQklB,OAASllB,EAAQklB,OAAOqS,OAAS,KACxDwH,GACAC,WACAC,MAAO,MAEP7/B,EAAQw/B,EAAMx/B,MACb0/B,IACDA,EAAepyB,GAAiB1M,EAAQqE,UAExCyZ,EAAKJ,WAAW1d,QAAQk/B,UACxBphB,EAAKJ,WAAW1d,QAAQk/B,QAAU,KAClCphB,EAAKqhB,iBAAmBrhB,EAAKJ,WAAW1d,QAAQie,UAEhD7e,EACA,IAAS7B,EAAI,EAAGA,EAAIuhC,EAAarhC,OAAQF,IACrCwhC,EAAWC,QAAQ9hC,MACf2H,MAAOi6B,EAAavhC,GACpB6hC,SAAU,WACVhgC,MAAOA,QAIf2/B,KAEJjhB,GAAKJ,WAAWra,OAAO07B,IACxB,SAIfP,aAAc,SAAU/6B,GACpB,GAAiBX,GAAKrF,EAAmBiG,EAArCoa,EAAO/e,KAAmBoP,EAAO,GAAakxB,EAAa,GAAI1W,EAAW7K,EAAK9d,QAAQ2oB,SAASllB,QACpG,IAAIG,GAAQH,GACR,IAAKX,EAAM,EAAGrF,EAASgG,EAAShG,OAAQqF,EAAMrF,EAAQqF,IAClDY,EAAmC,gBAAlBD,GAASX,GAAoBW,EAASX,GAAK2R,eAAiBhR,EAASX,GAAKiB,MAAQ,IAAI0Q,cACvF,WAAZ/Q,GAC6B,gBAAlBD,GAASX,KAChBu8B,EAAa57B,EAASX,GAAKrG,MAE/B4iC,EAAaA,GAAc1W,EAASzD,OACpC/W,GAAQ,wDACRA,GAAQ,0CAA+CkxB,EAAa,YAAgBA,EAAa,uBACjGlxB,GAAQ,4EACRA,GAAQ,WAERA,GAAQ2P,EAAKid,cAAct3B,EAASX,GAIhD,OAAOqL,IAEX4sB,cAAe,SAAUr3B,GACrB,GAKkD47B,GAL9C7F,EAAW/1B,EAAQ+1B,UAAY/c,GAAmB/Y,QAAqBD,KAAYtB,GAASsB,EAAUA,EAAQK,MAAQL,EAAQjH,KAAM6T,EAAYiG,GAAgB5S,GAAe4S,GAAgB5S,GAAa2M,UAAY,WAAa3M,GAAe,IAAIhH,QAAQ,MAAO,IAAKqD,GACxQsQ,UAAWA,EACX7T,KAAMkH,EACN9B,KAAM,GACN8iB,UAAW,IACZgE,EAAW5pB,KAAKiB,QAAQ2oB,SAASllB,QACxC,MAAKE,GAAiBE,GAAcH,IAAYA,EAAQ+1B,UACpD,KAAUzyB,OAAM,6CA6BpB,OA3BInD,IAAcH,IACdA,EAAU9E,IAAO,KAAU8E,GACvBA,EAAQ4M,WAAa/F,GAAQvK,EAAQsQ,UAAW5M,EAAQ4M,UAAUivB,MAAM,MAAQ,EAChF77B,EAAQ4M,WAAa,IAAMtQ,EAAQsQ,UAC5B5M,EAAQ4M,YAAc7O,IAC7BiC,EAAQ4M,UAAYtQ,EAAQsQ,WAEZ,SAAhB3M,IACAD,EAAU9E,IAAO,KAAU8E,GAC3BA,EAAQjH,KAAOoH,GAAcH,EAAQjH,MAAQiH,EAAQjH,KAAKooB,KAAOnhB,EAAQjH,KACzEiH,EAAQihB,UAAY9gB,GAAcH,EAAQihB,WAAajhB,EAAQihB,UAAUE,KAAOnhB,EAAQihB,WAExFjhB,EAAQ7B,OACJgC,GAAcH,EAAQ7B,QACtB6B,EAAQ7B,KAAOI,EAAoByB,EAAQ7B,aAEpC6B,GAAQ7B,OAASO,KACxBk9B,EAAsB57B,EAAQ7B,KAAK8M,MAAM,iBACrC2wB,GAAuB/0B,GAAQ+0B,EAAoB,GAAI57B,EAAQ4M,UAAUivB,MAAM,MAAQ,IACvF77B,EAAQ4M,WAAa,IAAMgvB,EAAoB,MAI3Dt/B,EAAUpB,IAAO,EAAMoB,EAASuW,GAAgB5S,IAAgBlH,KAAMksB,EAAShlB,IAAgBD,IAE/F1D,EAAUpB,IAAO,EAAMoB,EAASuW,GAAgB5S,IAAgBlH,KAAMksB,EAAShlB,KAE5ElF,GAAMg7B,SAASA,GAAUz5B,IAEpCw/B,YAAa,WACT,QAASzgC,KAAKmsB,kBAAoBnsB,KAAKosB,qBAAuBpsB,KAAKwsB,QAAUxsB,KAAKwsB,OAAO9tB,OAAS,GAAKsB,KAAK4V,QAAQrR,KAAK,kBAAkB7F,OAAS,GAExJwoB,WAAY,WACR,GAAInI,GAAO/e,IACP+e,GAAK2N,uBACL3N,EAAK5P,MAAM3L,IAAIub,EAAKzK,aAAa2L,IAAI/a,GAAQC,GAAI4Z,EAAK2N,wBAEtD3N,EAAK2N,uBAAyB,SAAUhf,GAAV,GACtB9F,GAAUpK,EAAEwC,MAAO0gC,EAAW94B,EAAQ0G,QAAQ,MAC9C0e,EAAQjO,EAAK4N,WAAa5N,EAAK4N,WAAW5N,EAAKnJ,QAAQrR,KAAK,mBAAmByG,MAAM01B,MACrF94B,GAAQyC,SAAS,gBACZ0U,EAAK6D,QAAQ,iBACVoK,MAAOA,EACPplB,QAAS84B,KAEb3hB,EAAK4hB,cAAcD,GAGlB3hB,EAAK6D,QAAQ,eACVoK,MAAOA,EACPplB,QAAS84B,KAEb3hB,EAAK6hB,YAAYF,GAGzBhzB,EAAE8F,iBACF9F,EAAEuqB,mBAGNlZ,EAAK8hB,YACL9hB,EAAKzK,YAAYrP,GAAGC,GAAQC,GAAI,6DAA8D4Z,EAAK2N,wBAEnG3N,EAAK5P,MAAMlK,GAAGC,GAAQC,GAAI,6DAA8D4Z,EAAK2N,wBAEjG3N,EAAK+hB,oBAETA,iBAAkB,WACd,GAAI/hB,GAAO/e,KAAM4V,EAAUmJ,EAAKnJ,QAAShC,EAAYmL,EAAK9d,QAAQ2S,UAAWmtB,EAAa5nB,GAAc,IAAMzZ,GAAMoD,KAAK,SAAW,IAAKwB,EAASya,EAAK1a,QAAU,wBAA0B08B,EAAa,8BAAgCA,CACpOntB,IAAaA,EAAUotB,WAAY,IAC9BprB,EAAQ8hB,IAAI,yBAAyB,IACtCl6B,EAAE,qBAAqB4qB,SAAS,qBAAqBsX,UAAU9pB,GAE/DmJ,EAAKnL,WACLmL,EAAK6L,oBAELtV,GAAQ2rB,SACRrrB,EAAQrR,KAAK,yBAAyBd,IAAI,eAAgB,QAC1DmS,EAAQrR,KAAKD,GAAQb,IAAI,eAAgB,SAE7Csb,EAAKnL,UAAY,GAAI8D,IAAGwpB,UAAUtrB,EAAS/V,MAAW+T,GAClD2e,UAAWxT,EAAKiN,mBAChBmV,eAAgB,yBAChBxiB,WAAYI,EAAKJ,WACjByiB,kBAAmB98B,EACnBA,OAAQA,EACR+8B,UAAWtiB,EAAK9d,QAAQsoB,YACxBoJ,OAAQ,SAAUjlB,GACVqR,EAAK6D,QAAQ,SAAWzZ,OAAQuE,EAAEvE,SAClCuE,EAAE8F,kBAEFuL,EAAKuZ,sBACDvZ,EAAKJ,WAAW1d,QAAQk/B,UACxBphB,EAAKJ,WAAW1d,QAAQk/B,QAAU,KAClCphB,EAAKqhB,iBAAmBrhB,EAAKJ,WAAW1d,QAAQie,SAChDH,EAAKJ,WAAW2iB,MAAQ,EACxBviB,EAAKJ,WAAW4iB,UAAYxiB,EAAKJ,WAAW6iB,MAAQziB,EAAKqhB,iBACzDrhB,EAAKJ,WAAWkE,MAAQ,QAKxC9D,EAAK0iB,iCAGbA,6BAA8B,WAAA,GAOtBC,GACAC,EACAnjC,EARAugB,EAAO/e,KACPsF,EAAUoG,EAAYqT,EAAKzZ,SAC3Bs8B,KACA97B,EAAQ,GACR+7B,EAAc9iB,EAAK+iB,eACnBC,EAAgB,EAIpB,KAAKvjC,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BsH,EAAQR,EAAQ9G,GAAGsH,MACnB87B,EAAet8B,EAAQ9G,GAAGsH,OAASR,EAAQ9G,EAE/C,KAAKA,EAAI,EAAGA,EAAIqjC,EAAYnjC,OAAQF,IAChCkjC,EAAaG,EAAY59B,GAAGzF,GAC5BujC,EAAgBL,EAAW5+B,KAAKpD,GAAMoD,KAAK0Z,KAC3CmlB,EAAgBC,EAAeG,GAC3BJ,GAAiBA,EAAc/tB,WAAa+tB,EAAc/tB,UAAUxV,MACpEsjC,EAAW/vB,KAAKuL,GAAYykB,EAAc/tB,UAAUxV,OAIhEwsB,kBAAmB,WACf,GAAI7L,GAAO/e,IACP+e,GAAKnL,WAAamL,EAAKnL,UAAUhM,SACjCmX,EAAKnL,UAAUhM,QAAQo6B,eAAe,WAE1CjjB,EAAKnL,UAAY,KACjBmL,EAAKkjB,qCAETA,kCAAmC,WAAA,GAGtBzjC,GAFLugB,EAAO/e,KACP6hC,EAAc9iB,EAAK+iB,cACvB,KAAStjC,EAAI,EAAGA,EAAIqjC,EAAYnjC,OAAQF,IACpCqjC,EAAY59B,GAAGzF,GAAG0jC,WAAWhlB,KAGrCilB,iBAAkB,SAAU79B,EAAQgE,GAAlB,GAIVyW,GACA5a,EACAi+B,EACAC,EACA/8B,EACAsD,EACAxF,EACKW,CAVT,IAAK/D,KAAKoE,cAAV,CAUA,IAPI2a,EAAO/e,KACPmE,EAAW4a,EAAK5P,MAAM3L,IAAIub,EAAKzK,aAC/B8tB,EAAc5kC,EAAE8G,EAAQH,EAAS,IACjCk+B,EAAiB7kC,EAAE8G,EAAQH,EAAS,IACpCmB,EAAUgD,EAAOI,EAAcqW,EAAKzZ,SAAS5G,OAAS,EACtDkK,EAAmBN,EAAOyW,EAAKzZ,QAAQ5G,OAAS4G,EAAU,EAC1DlC,KACKW,EAAM,EAAGA,EAAMq+B,EAAY1jC,OAAQqF,GAAOuB,EAC/CnH,GAAKwoB,MAAMvjB,EAAQg/B,EAAYrO,MAAMhwB,EAAKA,EAAMuB,IAChDnH,GAAKwoB,MAAMvjB,EAAQi/B,EAAe37B,OAAO,EAAGkC,GAEhD,OAAOxF,KAEXokB,YAAa,WAAA,GACQ8a,GAAOh6B,EAmBhBnE,EAIAG,EAvBJya,EAAO/e,KAAmBuiC,KAAgBnS,EAAWrR,EAAK8hB,YAAa7sB,EAAa+K,EAAK9d,QAAQ+S,UACjGA,KACI+K,EAAK/K,YACL+K,EAAK/K,WAAW+L,UAEpBhB,EAAK+L,gBACL9W,EAAatU,GAAMgY,GAAG8qB,WAAWC,aAAazuB,GAC9CsuB,EAAQtuB,EAAW0uB,SACnBp6B,EAAO0L,EAAW1L,KACdyW,EAAKqP,gBACLmU,EAAUA,EAAU7jC,QAAU,kBAE9BqgB,EAAK9d,QAAQ2S,WAAamL,EAAK0hB,eAAiB1hB,EAAKmJ,aACrDqa,EAAUA,EAAU7jC,QAAU,mCAElC6jC,EAAYA,EAAUlkC,KAAK,KACT,KAAdkkC,IACAA,EAAY,QAAUA,EAAY,KAElCp+B,EAAW4a,EAAK5P,MAChBihB,IACAjsB,EAAWA,EAASX,IAAIub,EAAKzK,cAE7BhQ,EAAS,KAAOgE,EAAOsQ,GAA0B,WAAa2pB,GAClExjB,EAAK/K,WAAa,GAAItU,IAAMgY,GAAG8qB,WAAWr+B,GACtCG,OAAQA,EACRq+B,MAAM,EACND,SAAUJ,EACV3P,OAAQ,WACJ,GAAIiQ,EACCt6B,IACDyW,EAAK8jB,uBAEL9jB,EAAK6e,qBACLgF,EAAiB7jB,EAAK/K,WAAW3T,QACjC0e,EAAK+jB,qBACL/jB,EAAKgkB,WAAWH,GAEZ7jB,EAAKikB,wBADLJ,EAAelkC,QAAUkkC,EAAelkC,SAAWqgB,EAAKlN,QAAQnT,QACnC,GAEA,IAGrCqgB,EAAK6D,QAAQ5I,KAEjBipB,YAAa7S,GAAYkS,GAASh6B,EAClC46B,cAAe,SAAUrxB,GAAV,GAIPurB,GACAh6B,EACKW,EAASrF,CALlB,KAAI4J,GAAS8nB,EAAb,CAKA,IADIhtB,EAAS5F,IACJuG,EAAM,EAAGrF,EAASmT,EAAMnT,OAAQqF,EAAMrF,EAAQqF,IACnDq5B,EAAUre,EAAK+Z,YAAYjnB,EAAM9N,IAC7ByH,GAAQ4xB,EAAQ,GAAIvrB,GAAS,IAC7BzO,EAASA,EAAOI,IAAI45B,GAG5B,OAAOh6B,KAEX+/B,gBAAiB,WACb,MAAOpkB,GAAKojB,iBAAiB79B,EAAQgE,IAEzC86B,iBAAkBrkB,EAAK9d,QAAQ+S,YAAc+K,EAAK9d,QAAQ+S,WAAWovB,mBAErErkB,EAAK9d,QAAQ6T,aACb3Q,EAASc,GAAG,UAAYE,GAAI,SAAUuI,GAAV,GACpBtO,GAAU2f,EAAK3f,UACf4J,EAAS0E,EAAE1E,MACf,IAAK5J,EAGL,GAAIsO,EAAE21B,UAAYlrB,GAAKmrB,WAAa51B,EAAE61B,UAAY/lC,EAAEgO,QAAQxC,EAAQ7E,QAAmB/E,EAAQ8Q,GAAG,2BAA6B9Q,EAAQiM,SAAS6E,GAAG,uDAAwD,CAOvM,GANAxC,EAAE8F,iBACF9F,EAAEuqB,kBACF74B,EAAUkJ,EAAOlJ,EAAUA,EAAQiM,SAC/B+kB,IAAa9nB,IACblJ,EAAUA,EAAQoE,IAAIub,EAAK+Z,YAAY15B,KAEvCkjC,EACA,GAAK50B,EAAE+T,SAGH,GAAIriB,EAAQiL,SAASyQ,IAEjB,MADAiE,GAAKykB,mBAAmBpkC,GACxB,MAJJ2f,GAAK/K,WAAWyvB,YAQpB1kB,GAAK/K,WAAWyvB,OAEfn7B,KACDyW,EAAK/K,WAAW0vB,YAActkC,GAElC2f,EAAK/K,WAAW3T,MAAMjB,QACdkJ,IAAS9K,EAAEwL,GAAQkH,GAAG,OAAS1S,EAAEwL,GAAQkH,GAAG,UAAY1E,GAAQxC,EAAQhJ,KAAKqqB,uBAAyB3c,EAAE61B,UAAY71B,EAAE21B,SAAWlrB,GAAKwrB,MAAQj2B,EAAE61B,UAAY71B,EAAE21B,SAAWlrB,GAAKyrB,OAASl2B,EAAE61B,UAAY71B,EAAE21B,SAAWlrB,GAAK0rB,IAAMn2B,EAAE61B,UAAY71B,EAAE21B,SAAWlrB,GAAK2rB,MAAQp2B,EAAE21B,UAAYlrB,GAAKmrB,UAAY51B,EAAE61B,YAC9S71B,EAAE8F,iBACF9F,EAAEuqB,kBACF74B,EAAUA,EAAQiM,SACd+kB,IACAhxB,EAAUA,EAAQoE,IAAIub,EAAK+Z,YAAY15B,KAEvCkjC,GACKvjB,EAAK/K,WAAW0vB,cACjB3kB,EAAK/K,WAAW0vB,YAActkC,GAElC2f,EAAK/K,WAAW+vB,YAAYhlB,EAAK/K,WAAWgwB,iBAAkB5kC,KAE9D2f,EAAK/K,WAAWyvB,QAChB1kB,EAAK/K,WAAW3T,MAAMjB,SAO9CqoB,WAAY,WAAA,GAIA9T,GAHJ1S,EAAUjB,KAAKiB,QACf+S,EAAa/S,EAAQ+S,UACrBA,IAAc/S,EAAQ8nB,YAClBpV,EAAO3T,KACNiB,EAAQ6T,aACTnB,EAAKxE,MAAM3L,IAAImQ,EAAKW,aAAaxR,KAAK,WAAY,GAAGmC,GAAG,YAAcE,GAAK,WAAaA,GAAI,iBAAkB,SAAUuI,GAChHA,EAAE1E,SAAW0E,EAAE0G,eACf1G,EAAEu2B,6BAEPh/B,GAAG,YAAcE,GAAI0T,GAAS,IAAMC,GAAS1T,GAAM+O,GAAYR,IAEtEA,EAAKoX,YAAc3lB,GAAMuO,EAAKuwB,cAAevwB,GAC7CA,EAAKqX,qBAAuB,WACpBrX,EAAKwwB,eACLxwB,EAAKwwB,cAAcC,IAAIzwB,EAAK0wB,UAAU5wB,QAAQoqB,UAGtDlqB,EAAK8L,KAAK,SAAU9L,EAAKqX,sBACzBrX,EAAKiC,QAAQ3Q,GAAG,UAAW0O,EAAKoX,aAChCpX,EAAKsX,iBAAmB7lB,GAAMuO,EAAKkX,UAAWlX,GAC9CA,EAAKiC,QAAQ3Q,GAAG,QAAS0O,EAAKsX,oBAGtCiZ,cAAe,SAAUx2B,GACjBA,YAAarL,QAAOiiC,QAAW52B,EAAE+T,UAAW/T,EAAE62B,SAAY/mC,EAAEkQ,EAAE1E,QAAQkH,GAAG,mCAAqCzQ,OAAO+kC,cAAgB/kC,GAAAA,OAAO+kC,gBAA6B1jC,SAAS2jC,WAAa3jC,SAAS2jC,UAAUC,cAAchnC,OAG/NsC,KAAKmkC,gBACNnkC,KAAKmkC,cAAgB3mC,EAAE,gBAAgBiG,KACnCuG,SAAU,QACV8L,IAAK,MACLnJ,KAAM,MACNg4B,QAAS,EACT9lC,MAAO,EACPC,OAAQ,IACToF,SAASlE,KAAK4V,UAErB5V,KAAKmkC,cAAcC,IAAIpkC,KAAKqkC,UAAU5wB,QAAQoqB,WAElDwG,OAAQ,WAAA,GASA3mC,GAQI0F,EACAwhC,EACAC,EACAC,EAyBAC,EA5CJpxB,EAAO3T,KACPglC,EAAWrxB,EAAKkqB,SAChBoH,EAAY,KACZlc,EAAYpV,EAAK1S,QAAQ8nB,UACzBmc,GAAc,CAyDlB,OAxDI1nC,GAAEsH,cAAcikB,IAAcA,EAAUkc,YACxCA,EAAYlc,EAAUkc,WAEtBvnC,EAAO,GACPsnC,EAAStmC,SACLsmC,EAAS/gC,GAAG,GAAGiM,GAAG,QAClB80B,EAAWA,EAASzgC,KAAK,0BAEzB2gC,GACAF,EAAS1gC,OAAO,YAEhBlB,KACAwhC,EAAc5kC,KAAKsF,QAAQ5G,OAC3BmmC,EAAalxB,EAAKktB,aAAen4B,EAAciL,EAAKrO,SAAS5G,OAC7DomC,GAAe,EACnBtnC,EAAEywB,KAAK+W,EAAU,SAAUjhC,EAAKuE,GAAf,GAETslB,GACAnhB,EACA+pB,EAcA2O,CAjBJ78B,GAAO9K,EAAE8K,GACLslB,EAAKtlB,EAAKgG,QAAQ,MAClB7B,EAAWmhB,EAAG5iB,QACdwrB,EAAYluB,EAAK0C,QACjBk6B,IACA1O,GAAaluB,EAAKmG,QAAQ,WAAW/P,QAErCmmC,GAAcC,IACdA,EAAetnC,EAAE0X,SAASvB,EAAKW,YAAY,GAAIhM,EAAK,KAEpDqL,EAAKuU,WAAa4c,IAClBtO,GAAa7iB,EAAKuU,WAEtBsO,EAAYsO,EAAetO,EAAYA,EAAYqO,EAC/CD,EAAcpO,IACdoO,EAAcpO,GAEd2O,EAAW78B,EAAK5K,OACf0F,EAAOqJ,KACRrJ,EAAOqJ,OAEXrJ,EAAOqJ,GAAU+pB,GAAa2O,IAE9BJ,EAAa3hC,EAAO1E,OACxB0E,EAAS5F,EAAEywB,KAAK7qB,EAAQ,SAAUW,EAAKqgC,GAC/BA,IACAhhC,EAAOW,GAAOqgC,EAAIrQ,MAAM6Q,GACpBG,EAAahhC,IACbghC,EAAahhC,MAIzBvG,EAAEywB,KAAK7qB,EAAO2wB,MAAMgR,GAAa,SAAUhhC,EAAKqgC,GAExC1mC,GADA0mC,EACQA,EAAI/lC,KAAK4mC,GAAa,OAEtB,UAIbvnC,GAEXmtB,UAAW,SAAUnd,GACjB,GAAIyB,EACAnP,MAAKmkC,eAAiBz2B,GAAKA,EAAE1E,SAAWhJ,KAAKmkC,cAAc,KAEvDh1B,EADAnP,KAAKiB,QAAQ6T,YACLtX,EAAEwC,KAAKZ,WAAWkP,QAAQ,SAE1BtO,KAAKmP,MAEjBgE,GAAWhE,GAAO,IAElBnP,KAAKmkC,gBACLnkC,KAAKmkC,cAAc53B,SACnBvM,KAAKmkC,cAAgB,OAG7Btc,iBAAkB,WACd,GAAI9I,GAAO/e,IACP+e,GAAKqmB,4BACLrmB,EAAKsmB,2BAA2BtmB,EAAKzZ,SACrCyZ,EAAKumB,oCAGbF,wBAAyB,WACrB,MAAOplC,MAAKulC,yBAAyB7mC,QAEzC6mC,uBAAwB,WACpB,MAAOx9B,GAAiB/H,KAAKsF,UAEjCggC,gCAAiC,WAC7B,GAAIvmB,GAAO/e,IACX+e,GAAKgN,kCACLhN,EAAKymB,0BAA4BpgC,GAAM2Z,EAAK0mB,qBAAsB1mB,GAClEvhB,EAAEiC,QAAQwF,GAAGyW,GAASvW,GAAI4Z,EAAKymB,4BAEnCzZ,gCAAiC,WAC7B,GAAIhN,GAAO/e,IACP+e,GAAKymB,2BACLhoC,EAAEiC,QAAQwgB,IAAIvE,GAASvW,GAAI4Z,EAAKymB,4BAGxCC,qBAAsB,WAClB,GAAI1mB,GAAO/e,IACX+e,GAAKsmB,2BAA2BtmB,EAAKzZ,SACrCyZ,EAAK2mB,yBAETL,2BAA4B,SAAU//B,GAAV,GAEf9G,GADLuN,EAAOzG,KACX,KAAS9G,EAAI,EAAGA,EAAIuN,EAAKrN,OAAQF,IAC7BwB,KAAK2lC,0BAA0B55B,EAAKvN,KAG5CmnC,0BAA2B,SAAUhgC,GACjC,GAAIoZ,GAAO/e,IACPuH,GAAY5B,EAAO6B,OACnBuX,EAAKsmB,2BAA2B1/B,EAAOL,SAEnCgC,EAAmB3B,IACnBoZ,EAAK6mB,mBAAmBjgC,GACnBA,EAAOC,QACRmZ,EAAKsmB,2BAA2B1/B,EAAOL,UAG3CyZ,EAAK8mB,mBAAmBlgC,IAIpCigC,mBAAoB,SAAUjgC,GACrBA,EAAOC,QACR5F,KAAK8lC,WAAWngC,GAEpBuB,EAAsBvB,IAE1BkgC,mBAAoB,SAAUlgC,GAC1B,GAAIogC,GAAkBpgC,EAAOC,MACxBmgC,KACDpgC,EAAOyB,cAAe,EACtBpH,KAAKgmC,WAAWrgC,GAChBA,EAAOyB,cAAe,EACtBzB,EAAOC,OAASmgC,GAEpB7+B,EAAsBvB,IAE1B+/B,sBAAuB,WAAA,GAIflZ,GAUIgE,EACAD,EACA0V,EACAC,EACAC,EACAC,EACAC,EACAC,EAEIC,EACK/nC,EAEGwxB,EACAwG,EACAgQ,EACAC,EA5BhB1nB,EAAO/e,KACPiB,EAAU8d,EAAK9d,QACfmvB,EAAWrR,EAAK8hB,WAEpB,IAAI5/B,EAAQwnB,YAAcxnB,EAAQqoB,YAC1B8G,GAAYrR,EAAK0N,aACjBD,EAASzN,EAAK0N,aAAajjB,SAAS,SAC7BuV,EAAKyN,SACZA,EAASzN,EAAKyN,OAAOjoB,KAAK,+BAEzBioB,GAAWA,EAAO,KACnBA,EAAShvB,KAETgzB,EAASJ,EAAWrR,EAAKnJ,QAAQrR,KAAK,yBAAyBA,KAAK,SAAWwa,EAAKnJ,QAAQrR,KAAK,kBAAkBA,KAAK,SACxHgsB,EAAeH,EAAWrR,EAAKzK,YAAcyK,EAAK5P,MAClD82B,EAAgBzV,EAAOjsB,KAAK,MAC5B2hC,EAAiB1V,EAAOjsB,KAAK,YAC7B4hC,EAAqBF,EAAcvnC,OACnC0nC,EAA4BH,EAAc3hC,OAAOmD,GAAe/I,OAChE2nC,EAA2BJ,EAAcvnC,OAAS0nC,EAClDE,EAAmB,EACO,KAA1B9V,EAAO,GAAGvxB,MAAMJ,OAAgBmwB,WAAWwB,EAAO,GAAGvxB,MAAMJ,SAAWynC,GAAkB,CAExF,IADIC,EAAqB/V,EAAO/sB,IAAI,SAC3BjF,EAAI,EAAGA,EAAI2nC,EAAoB3nC,IAChCmJ,EAAiBs+B,EAAcznC,MAE3Bg4B,EAAY7nB,KAAKlE,IAAIjM,EAAGA,EAAI6nC,GAC5BG,EAAgBN,EAAe18B,WAAWgtB,GAC1CiQ,EAAmBD,EAAgBA,EAAcvnC,MAAMJ,MAAQ,GAC1C,KAArB4nC,EACAzW,EAAchB,WAAWyX,IAEzBjW,EAAO/sB,IAAI,QAAS,QACpBusB,EAAchY,GAAWiuB,EAAchiC,GAAGzF,IAC1CgyB,EAAO/sB,IAAI,QAAS8iC,IAExBD,GAAoBtW,EAG5BO,GAAa9sB,IAAI,QAAS6iC,EAAmB,GAC7C9V,EAAO/sB,IAAI,QAAS6iC,GACpB9Z,EAAO/oB,IAAI,QAAS6iC,GACpBvnB,EAAKkS,yBAIjBnJ,kBAAmB,WACf,GAAI4e,GAAM1mC,KAAK2mC,mBACXD,KACA1mC,KAAK8rB,uBAAyB1mB,GAAMpF,KAAK2mC,kBAAmB3mC,MAC5DxC,EAAEiC,QAAQwF,GAAG,SAAUjF,KAAK8rB,0BAGpC6a,kBAAmB,WACf,GAAI56B,GAAO/L,KAAKsF,QAASshC,EAAcnnC,OAAOonC,WAAa,EAAIpnC,OAAOonC,WAAaC,OAAOjoC,KAC1F,OAAOmB,MAAK+mC,sBAAsBh7B,EAAM66B,IAE5CG,sBAAuB,SAAUh7B,EAAM66B,GAAhB,GAEVpoC,GACDyxB,EACAsE,EAHJmS,GAAM,CACV,KAASloC,EAAI,EAAGA,EAAIuN,EAAKrN,OAAQF,IACzByxB,EAAMlkB,EAAKvN,GACX+1B,EAAWtE,EAAIjoB,eACfusB,IAAa7xB,GAA0B,OAAb6xB,IAC1BmS,GAAM,EACFnS,EAAWqS,EACX5mC,KAAKgmC,WAAW/V,GAEhBjwB,KAAK8lC,WAAW7V,KAGnBA,EAAIrqB,QAAUqqB,EAAI3qB,UACnBohC,EAAM1mC,KAAK+mC,sBAAsB9W,EAAI3qB,QAASshC,IAAgBF,EAGtE,OAAOA,IAEX3f,eAAgB,WACZ,GAAIhI,GAAO/e,IACP+e,GAAKwX,qBACLxX,EAAKioB,mBAAkB,IAG/B/V,qBAAsB,WAAA,GACdlS,GAAO/e,KACPw1B,EAAmC1tB,GAAKqC,GAAY4U,EAAKzZ,SAAU,SAAUK,GAC7E,MAAOA,GAAO8vB,2BAEd1W,GAAKwX,sBACLxX,EAAKioB,mBAAkB,GACvBjoB,EAAKuI,aACDkO,EAAiC92B,OAAS,GAC1CqgB,EAAK+W,qBAIjBS,kBAAmB,WACf,GAAIxX,GAAO/e,IACX,OAAOkN,GAAc6R,EAAKzZ,SAAS5G,QAEvCsoC,kBAAmB,SAAUC,GAAV,GACXloB,GAAO/e,KACPsF,EAAU4H,EAAc6R,EAAKzZ,SAC7BuC,EAAiBuF,EAAqB2R,EAAKzZ,SAC3C4hC,EAAenoB,EAAKooB,uBAAuBt/B,EAC/CkX,GAAKsX,wBAAwB/wB,GAC7ByZ,EAAKqoB,0BAA0B9hC,GAC/ByZ,EAAKsoB,0BAA0Bx/B,EAAgBq/B,EAAcD,GACzDA,GACAloB,EAAKuoB,iBAAiBz/B,EAAgBq/B,IAG9CC,uBAAwB,SAAU7hC,EAASiiC,EAAkBC,GAArC,GAEhBhpC,GACAmH,EACAqqB,EACAyX,EACAC,EALA3oB,EAAO/e,KAMP2M,EAAOmR,GAAQ,QAAU,OACzBlR,EAAQkR,GAAQ,OAAS,QACzBopB,GACAv6B,KAAU1J,MAAMqC,EAAQ5G,QAAQipC,KAAKJ,EAAmBA,EAAmB,GAC3E36B,MAAW3J,MAAMqC,EAAQ5G,QAAQipC,KAAKH,EAAoBA,EAAoB,GAElF,KAAKhpC,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAS,EAAGF,IAChCmH,EAASL,EAAQ9G,GACjBwxB,EAAcjR,EAAK6oB,gBAAgBjiC,GACnC8hC,EAAiBzX,EAAckX,EAAav6B,GAAMnO,GAClD0oC,EAAav6B,GAAMnO,EAAI,GAAKipC,CAEhC,KAAKjpC,EAAI8G,EAAQ5G,OAAS,EAAGF,EAAI,EAAGA,IAChCmH,EAASL,EAAQ9G,GACjBwxB,EAAcjR,EAAK6oB,gBAAgBjiC,GACnC+hC,EAAkB1X,EAAckX,EAAat6B,GAAOpO,GACpD0oC,EAAat6B,GAAOpO,EAAI,GAAKkpC,CAEjC,OAAOR,IAEXE,0BAA2B,SAAU9hC,EAASuiC,GAAnB,GAEnBrpC,GACAmH,EAFAoZ,EAAO/e,IAGX,KAAKxB,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BmH,EAASL,EAAQ9G,GACbmH,EAAOL,WACFuiC,GAAerpC,IAChBqpC,EAAcrpC,GAElBugB,EAAKqoB,0BAA0B55B,IAAc7H,IAAUkiC,IAEvDA,GACA76B,EAAmBrH,EAAQ,mBAAoB,QAAS8V,IAE5DzO,EAAmBrH,EAAQ,aAAc,QAAS2V,IAClDtO,EAAmBrH,EAAQ,mBAAoB,QAAS4V,IACxDvO,EAAmBrH,EAAQ,mBAAoB,QAAS6V,KAGhE6rB,0BAA2B,SAAU/hC,EAAS4hC,EAAcD,GAAjC,GAEnBzoC,GACAmH,EACAmiC,EACAC,EACAC,EACAC,EACAC,EAPAnpB,EAAO/e,IAQX,KAAKxB,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BmH,EAASL,EAAQ9G,GACjBspC,EAAaZ,EAAav6B,KAAKnO,GAC/BupC,EAAcb,EAAat6B,MAAMpO,GACjCwpC,EAAc,SAAWF,EAAa,cAAgBC,EAAc,MAChEpiC,EAAOL,UACP2iC,EAAYx6B,IAAqB9H,IACjCuiC,EAAoBnpB,EAAKooB,uBAAuBc,EAAWH,EAAYC,GACvEhpB,EAAKsoB,0BAA0BY,EAAWC,EAAmBjB,GACzDA,GACAloB,EAAKuoB,iBAAiBW,EAAWC,IAGzCl7B,EAAmBrH,EAAQ,aAAc,QAASqiC,GAClDh7B,EAAmBrH,EAAQ,mBAAoB,QAASqiC,GACxDh7B,EAAmBrH,EAAQ,mBAAoB,QAASqiC,GACxDriC,EAAOqiC,YAAcA,GAG7B3R,wBAAyB,SAAU/wB,GAAV,GAEjB9G,GAOAmH,EARAoZ,EAAO/e,KAEPmoC,EAAsBzqB,OAAO,QAAUpC,GAAoB,KAAM,MACjE8sB,EAAwB1qB,OAAO,QAAUnC,GAAsB,KAAM,MACrE8sB,EAAwB3qB,OAAO,QAAUlC,GAAsB,KAAM,MACrE8sB,EAAgC5qB,OAAO,QAAUjC,GAAgC,KAAM,MACvF8sB,EAAiB7qB,OAAO,+BAAgC,MACxD8qB,EAAkB9qB,OAAO,gCAAiC,KAE9D,KAAKlf,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BmH,EAASL,EAAQ9G,GACbmH,EAAOL,SACPyZ,EAAKsX,wBAAwB7oB,IAAc7H,KAE/CsH,EAAsBtH,EAAQ,aAAc,QAASwiC,GACrDl7B,EAAsBtH,EAAQ,aAAc,QAAS4iC,GACrDt7B,EAAsBtH,EAAQ,aAAc,QAAS6iC,GACrDv7B,EAAsBtH,EAAQ,mBAAoB,QAASyiC,GAC3Dn7B,EAAsBtH,EAAQ,mBAAoB,QAAS2iC,GAC3Dr7B,EAAsBtH,EAAQ,mBAAoB,QAAS4iC,GAC3Dt7B,EAAsBtH,EAAQ,mBAAoB,QAAS6iC,GAC3Dv7B,EAAsBtH,EAAQ,mBAAoB,QAAS0iC,GAC3Dp7B,EAAsBtH,EAAQ,mBAAoB,QAAS4iC,GAC3Dt7B,EAAsBtH,EAAQ,mBAAoB,QAAS6iC,IAGnElB,iBAAkB,SAAUhiC,EAAS4hC,GAAnB,GAEV1oC,GACAo2B,EAGArqB,EACA5E,EACA8L,EACA9E,EACAC,EACA4jB,EACAhE,EACAvC,EACA3hB,EAbAyW,EAAO/e,KAGPyoC,EAAYt+B,GAAYvB,EAAiBmW,EAAKzZ,UAC9C+D,EAAO0V,EAAK7P,MAAM1F,SAAS,sBAU/B,KAAKhL,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAW5B,GAVAmH,EAASL,EAAQ9G,GACjBmO,EAAOu6B,EAAav6B,KAAKnO,GACzBoO,EAAQs6B,EAAat6B,MAAMpO,GAC3BiT,EAAcg3B,EAAUt8B,QAAQxG,GAChC6qB,EAASzR,EAAK2pB,iBAAiB/iC,GAC/B6qB,EAAOpI,SAAS7M,IACZ5V,EAAOO,iBAAiB,UAAYP,EAAOO,iBAAiB,SAASiG,QAAQsP,UAC7E+U,EAAOpI,SAAS3M,IAEpB/O,EAAsB8jB,EAAQ7jB,EAAMC,IAChCjH,EAAOL,QAQX,IALIyZ,EAAKyN,SACLA,EAASzN,EAAKyN,OAAOjoB,KAAK,4CAA4CiF,WAAWlF,OAAO,yCAAyCL,GAAGwN,GACpI+a,EAAOpE,SAAS5M,IAChB9O,EAAsB8f,EAAQ7f,EAAMC,IAEnCgoB,EAAI,EAAGA,EAAIvrB,EAAK3K,OAAQk2B,IACzBrqB,EAAM/M,EAAE6L,EAAKurB,IACTrqB,EAAIF,SAAS,mBACb4f,EAAc1f,EAAIhG,KAAK,IAAMoB,EAAOgjC,gCACpC1e,EAAY7B,SAAS9M,IACrB5O,EAAsBud,EAAatd,EAAMC,KAEzCtE,EAAOiC,EAAIf,WAAWlF,OAAO,yCAAyCL,GAAGwN,GACzEnJ,EAAK8f,SAAS9M,IACd5O,EAAsBpE,EAAMqE,EAAMC,KAKlD0pB,oBAAqB,SAAUhxB,GAAV,GAEb9G,GACAo2B,EAGArqB,EACA5E,EACA8L,EACA+e,EACAhE,EACAvC,EACA3hB,EAXAyW,EAAO/e,KAGPyoC,EAAYt+B,GAAYvB,EAAiBmW,EAAKzZ,UAC9C+D,EAAO0V,EAAK7P,MAAM1F,SAAS,sBAQ/B,KAAKhL,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAO5B,GANAmH,EAASL,EAAQ9G,GACjBiT,EAAcg3B,EAAUt8B,QAAQxG,GAChC6qB,EAASzR,EAAK2pB,iBAAiB/iC,GAC/B6qB,EAAOhD,YAAYjS,IACnBiV,EAAOhD,YAAY/R,IACnB/O,EAAsB8jB,EAAQ,GAAI,IAC9B7qB,EAAOL,QACPyZ,EAAKuX,oBAAoB3wB,EAAOL,aAQpC,KALIK,EAAOwmB,gBAAkBpN,EAAKyN,SAC9BA,EAASzN,EAAKyN,OAAOjoB,KAAK,4CAA4CiF,WAAWlF,OAAO,yCAAyCL,GAAGwN,GACpI+a,EAAOgB,YAAYhS,IACnB9O,EAAsB8f,EAAQ,GAAI,KAEjCoI,EAAI,EAAGA,EAAIvrB,EAAK3K,OAAQk2B,IACzBrqB,EAAM/M,EAAE6L,EAAKurB,IACTrqB,EAAIF,SAAS,mBACb4f,EAAc1f,EAAIhG,KAAK,IAAMoB,EAAOgjC,gCACpC1e,EAAYuD,YAAYlS,IACxB5O,EAAsBud,EAAa,GAAI,MAEvC3hB,EAAOiC,EAAIf,WAAWlF,OAAO,yCAAyCL,GAAGwN,GACzEnJ,EAAKklB,YAAYlS,IACjB5O,EAAsBpE,EAAM,GAAI,MAKhDogC,iBAAkB,SAAU/iC,GAAV,GACVoZ,GAAO/e,KACPwwB,EAAsDhzB,EAA7CA,EAAE,IAAMmI,EAAOO,iBAAiBG,IAAI3H,OAAW,IAAMiH,EAAOO,iBAAiBG,GAAQ,IAAM0Y,EAAKoP,QAC7G,OAAOqC,IAEXoX,gBAAiB,SAAUjiC,GAAV,GACToZ,GAAO/e,KACPnB,EAAQ,CAMZ,OAJIA,GAAQkgB,EAAK6pB,kBADbjjC,EAAOL,QACwB6E,IAAaxE,KAEZA,KAIxCijC,kBAAmB,SAAU78B,GAAV,GAIXkkB,GACAO,EACAhyB,EALAugB,EAAO/e,KACPnB,EAAQ,EACRqN,EAAW,EAIXxN,EAASqN,EAAKrN,MAClB,KAAKF,EAAI,EAAGA,EAAIE,EAAQF,IACpByxB,EAAMlkB,EAAKvN,GACXgyB,EAASzR,EAAK2pB,iBAAiBzY,IAC1BA,EAAIrqB,QAAU0B,EAAmB2oB,KAClC/jB,EAAWskB,EAAOtgB,GAAG,YAAcsgB,EAAOxY,aAAeiY,EAAIpxB,MAC7DA,GAASqN,EAAWF,SAASE,EAAU,IAAM,EAGrD,OAAOrN,IAEXi6B,YAAa,SAAUvuB,GAAV,GAML4E,GACAnE,EANAsJ,EAActU,KAAKsU,WAEvB,OADA/J,GAAM/M,EAAE+M,GACH+J,GAGDnF,EAAQ5E,EAAI+D,QAAQtO,KAAKmP,MAAM3L,IAAIxD,KAAKsU,cACxCtJ,EAAQmE,EAAM5K,KAAK,aAAayG,MAAMT,GAC1C4E,EAAQA,EAAM,KAAOnP,KAAKmP,MAAM,GAAKmF,EAActU,KAAKmP,MACjDA,EAAM5K,KAAK,aAAaN,GAAG+G,IALvBT,GAOfs+B,aAAc,SAAUvgC,GAAV,GAMN6G,GACAnE,EANAsJ,EAActU,KAAKsU,WAEvB,OADAhM,GAAO9K,EAAE8K,GACJgM,GAGDnF,EAAQ7G,EAAKgG,QAAQtO,KAAKmP,MAAM3L,IAAIxD,KAAKsU,cACzCtJ,EAAQmE,EAAM5K,KAAK,gBAAgByG,MAAM1C,GAC7C6G,EAAQA,EAAM,KAAOnP,KAAKmP,MAAM,GAAKmF,EAActU,KAAKmP,MACjDA,EAAM5K,KAAK,gBAAgByG,MAAMA,IAL7B1C,GAOfwgC,eAAgB,WACZ,GAAI/pB,GAAO/e,IAIX,OAHI+e,GAAK/K,aAAe+K,EAAK6e,oBACzB7e,EAAK/K,WAAWyvB,QAEhB1kB,EAAK6e,oBACL7e,EAAKykB,mBAAmBzkB,EAAK8e,UAC7B,IAEA9e,EAAK9d,QAAQgoB,iBACblK,EAAK8jB,uBAEL9jB,EAAK+L,gBAET/L,EAAK6D,QAAQ5I,IALb,IAOJ6jB,OAAQ,SAAUhsB,GACd,GAAIkN,GAAO/e,KAAMgU,EAAa+K,EAAK/K,WAAY+0B,EAAoBrpC,GAAMgY,GAAG8qB,WAAWC,aAAaziC,KAAKiB,QAAQ+S,YAAa1L,EAAOygC,EAAkBzgC,IAEvJ,OADAuJ,GAAQkN,EAAK5P,MAAM3L,IAAIub,EAAKzK,aAAa/P,KAAKsN,GAC1CA,EAAMnT,QACFsV,IAAeA,EAAW/S,QAAQyhC,WAClC1uB,EAAWyvB,QACX5xB,EAAQA,EAAM2O,SAEdzB,EAAK8hB,cACLhvB,EAAQA,EAAMrO,IAAIqO,EAAMvR,IAAI,WACxB,MAAIgI,GACOyW,EAAK8pB,aAAa7oC,MAElB+e,EAAK+Z,YAAY94B,UAIhCgU,IAAe+K,EAAK6e,mBACpB5pB,EAAW3T,MAAMwR,IAEjBkN,EAAKgkB,WAAWlxB,GACZkN,EAAK8e,SAASn/B,SAAWqgB,EAAKlN,QAAQnT,QACtCqgB,EAAKikB,yBAAwB,GAE5B16B,GACDyW,EAAK8jB,uBAET9jB,EAAK6D,QAAQ5I,KAEjB,GAEGhG,EAAaA,EAAW3T,QAAU0e,EAAKlN,QAAQvN,OAAO,IAAMwW,KAEvEkoB,wBAAyB,SAAUgG,GAC/B,GAAIjqB,GAAO/e,IACPgpC,GACAjqB,EAAKjV,MAAMtG,IAAIub,EAAKvK,cAAcjQ,KAAK,MAAQ0Q,IAAeg0B,KAAK,WAAW,GAAMnmC,KAAK,gBAAgB,GAAMA,KAAK,aAAc,qBAElIic,EAAKjV,MAAMtG,IAAIub,EAAKvK,cAAcjQ,KAAK,MAAQ0Q,IAAeg0B,KAAK,WAAW,GAAOnmC,KAAK,gBAAgB,GAAOA,KAAK,aAAc,oBAG5IggC,mBAAoB,WAAA,GACZ/jB,GAAO/e,KACP60B,EAAS9V,EAAK5P,MAAM3L,IAAIub,EAAKzK,YACjCugB,GAAOtwB,KAAK,SAAW0Q,IAAenS,KAAK,gBAAgB,GAAOmmC,KAAK,WAAW,GAAOnmC,KAAK,aAAc,eAEhH0gC,mBAAoB,SAAU3xB,GAC1B,GAAIkN,GAAO/e,IACX6R,GAAQkN,EAAK5P,MAAM3L,IAAIub,EAAKzK,aAAa/P,KAAKsN,GAC1CkN,EAAK8hB,cACLhvB,EAAQA,EAAMrO,IAAIqO,EAAMvR,IAAI,WACxB,MAAOye,GAAK+Z,YAAY94B,UAGhC6R,EAAMoc,KAAK,WACPzwB,EAAEwC,MAAMwtB,YAAY1S,IAAUvW,KAAK0Q,IAAenS,KAAK,gBAAgB,GAAOmmC,KAAK,WAAW,GAAOnmC,KAAK,aAAc,gBAE5Hic,EAAKikB,yBAAwB,GAC7BjkB,EAAK8jB,uBACL9jB,EAAK6D,QAAQ5I,KAEjB+oB,WAAY,SAAUlxB,GAClBA,EAAMoc,KAAK,WACPzwB,EAAEwC,MAAMooB,SAAStN,IAAUvW,KAAK0Q,IAAeg0B,KAAK,WAAW,GAAMnmC,KAAK,aAAc,gBAAgBA,KAAK,gBAAgB,MAGrI+/B,qBAAsB,WAAA,GACD5kC,GAAKm8B,EAAkHS,EAY/Hr8B,EAZLugB,EAAO/e,KAAqBkpC,EAAUnqB,EAAKlN,QAASs3B,EAAoBpqB,EAAKJ,WAAW1d,QAAS65B,EAASqO,EAAkBrO,OAAiBsO,IACjJ,IAAKtO,GAAWA,EAAO/mB,OAAUgL,EAAKgO,QAGtC8N,EAAUxiB,GAAWyiB,EAAO/mB,OAAS+mB,EAAO/mB,MAAM0K,GAAGwc,QAAUH,EAAO/mB,MAAM1N,IAQ5E,IAJA0Y,EAAK8e,SAAS5P,KAAK,WACfmM,EAAWrb,EAAKqb,SAASp6B,MACzBopC,EAAgBhP,EAASS,KAAY,IAEhCr8B,EAAI,EAAGA,EAAI0qC,EAAQxqC,OAAQF,IAChC47B,EAAWrb,EAAKqb,SAAS8O,EAAQ1qC,IACjCP,EAAMm8B,EAASS,GACXuO,EAAgBnrC,GAChB8gB,EAAK+L,aAAa7sB,IAAO,QAElB8gB,GAAK+L,aAAa7sB,IAIrCorC,iBAAkB,WAAA,GAELt8B,GADLgS,EAAO/e,KAAMspC,IACjB,KAASv8B,IAAYgS,GAAK+L,aACtBwe,EAAInrC,KAAK4O,EAGb,OADAu8B,GAAIlrC,OACGkrC,GAEXC,mBAAoB,SAAUnqC,EAAS4P,GAAnB,GAEZw6B,GADAC,EAAWjsC,EAAE4B,GAASuS,KAAK,WAE/BnU,GAAE4B,GAASouB,YAAY5S,IAAStM,QAAQ,SAASo7B,WAAW,yBACxDD,GACAA,EAAWA,EAAS7rC,QAAQoC,KAAKmuB,QAAS,IAC1C3wB,EAAE4B,GAAS0D,KAAK,KAAM2mC,IAEtBjsC,EAAE4B,GAASsqC,WAAW,MAE1BF,EAASx6B,EAAKlM,KAAK,MACf0mC,GAAUxpC,KAAKmuB,SACfnf,EAAK2C,KAAK,WAAY63B,GAE1Bx6B,EAAKlM,KAAK,KAAM9C,KAAKmuB,SAAS/F,SAASxN,IAAStM,QAAQ,SAASxL,KAAK,wBAAyB9C,KAAKmuB,SACpGnuB,KAAK2pC,SAAW36B,GAEpB46B,eAAgB,WAAA,GAMRr/B,GACAs/B,EACAC,EACAC,EACAC,EAGQv9B,EAZRrN,EAAUY,KAAK2pC,SACflhB,EAAazoB,KAAKiB,QAAQwnB,UACzBrpB,IAAYqpB,IAGble,EAAMnL,EAAQiM,SACdw+B,EAAiBt/B,EAAI+D,QAAQ,SAASjD,SACtCy+B,EAAsBD,EAAe35B,GAAG,gDACxC65B,EAAcF,EAAe35B,GAAG,qEAChC85B,EAAsBxsC,EAAEwC,KAAKqE,SAASE,KAAK,+BAA+B0lC,UAAUvgC,OAAO,GAC3FqgC,IACI/pC,KAAKu1B,eACD9oB,EAAWkC,KAAKlE,IAAIe,GAAQjB,EAAI,GAAIvK,KAAK0tB,OAAOnjB,EAAIc,WAAY,GAChErL,KAAKu1B,cAAclsB,MACnBrJ,KAAKkqC,iBAAmBlqC,KAAK2oB,kBAAkB/E,UAAUnX,GACzDzM,KAAK2oB,kBAAkB7E,eAAevZ,KAEtCvK,KAAKkqC,iBAAmBz9B,EACxBzM,KAAKgjB,UAAUhjB,KAAK84B,YAAYvuB,GAAK,GAAIy/B,KAG7ChqC,KAAKgjB,UAAUhjB,KAAK84B,YAAYvuB,GAAK,GAAIy/B,IAG7ChqC,KAAKoE,gBACLpE,KAAKoE,cAAc,GAAG+c,UAAY6oB,EAAoB7oB,WAErD2oB,GACD9pC,KAAKgjB,UAAU5jB,EAAQ,GAAI4qC,KAGnC5qC,QAAS,SAAU4P,GACf,MAAOhP,MAAK6U,YAAY7F,GAAM,IAElC6F,YAAa,SAAU7F,EAAMm7B,EAAgBz1B,GAAhC,GAKGrJ,GACA++B,EACA1zB,EANRtX,EAAUY,KAAK2pC,QAsBnB,OArBA36B,GAAOxR,EAAEwR,GACLA,EAAKtQ,SACAU,GAAWA,EAAQ,KAAO4P,EAAK,KAC5B3D,EAAS2D,EAAK3D,SACd++B,EAAW/+B,EAAO7B,SAASmP,IAC3BjC,EAAU1K,SAASX,EAAO7B,WAAWgX,QAAQ1d,KAAK,WAAY,IAC9D9C,KAAKk0B,uBACLl0B,KAAKqqC,mBAAqB3zB,EAAU,EAAIA,EAAU,GAAK0zB,EAASp/B,MAAMgE,IAE1EhP,KAAKupC,mBAAmBnqC,EAAS4P,GAC5B0F,GACD1U,KAAK4pC,iBAEJO,GACDnqC,KAAK4iB,QAAQ3G,IAAYrU,QAASoH,MAI1CA,GAAQA,EAAKtQ,SACbsB,KAAKsqC,eAAiBt7B,EAAK3D,SAAS7B,SAASmP,IAAW3N,MAAMgE,IAE3DhP,KAAK2pC,UAEhB5K,eAAgB,WACR/+B,KAAK2pC,WACL3pC,KAAK2pC,SAASnc,YAAY5S,IAC1B5a,KAAK2pC,SAAW,OAGxB3mB,UAAW,SAAUpb,EAASnD,GAAnB,GACH8lC,GAAqB3iC,EAAQ4iC,QAAQ90B,cACrC+0B,EAAsC,OAAvBF,GAAsD,OAAvBA,EAC9Cp7B,EAAQ3R,EAAEoK,GAAS0G,QAAQ,SAAS,GACpCo8B,EAAmB9iC,EAAQ6iC,EAAe,cAAgB,gBAC1DzmB,EAAkBvf,EAAUgmC,EAAe,aAAe,aAC1DE,EAAqBlmC,EAAUgmC,EAAe,cAAgB,gBAC9DxmB,EAA+C,aAA/BzmB,EAAEoK,GAASnE,IAAI,aAA8Bqa,IAAS2sB,EAAe97B,KAAKsH,IAAI9G,EAAMy7B,WAAahjC,EAAQgjC,YAAchjC,EAAQ6iC,EAAe,aAAe,aAC7KI,EAAiB5mB,EAAgBymB,EACjCtnC,EAAS,EACTmrB,EAAe,EACfC,EAAoB,CACpB1Q,KAAS2sB,IACLn1B,GAAQ0I,MAAQ1I,GAAQw1B,KACxBvc,EAAepf,EAAMy7B,YACdt1B,GAAQyZ,SAAWzZ,GAAQC,QAAUD,GAAQ2I,QAAU,MAC9DuQ,EAAoBrf,EAAMy7B,WAAalrC,GAAMyV,QAAQmL,cAG7D0D,EAAkBrV,KAAKsH,IAAI+N,EAAkBuK,EAAeC,GAExDprB,EADA4gB,EAAkBC,EACTA,EACF4mB,EAAiB7mB,EAAkB2mB,EACtCD,GAAoBC,EACXE,EAAiBF,EAEjB1mB,EAGJD,EAEb5gB,EAASuL,KAAKsH,IAAI7S,EAASmrB,GAAgBC,EAC3C/pB,EAAUgmC,EAAe,aAAe,aAAernC,GAE3DmkB,aAAc,WAAA,GAKNwjB,GACAC,EACAnW,EANA9V,EAAO/e,IACN+e,GAAK9d,QAAQ6T,cAGdi2B,EAAahsB,EAAK5P,MAAM3L,IAAIub,EAAKzK,aACjC02B,EAAejsB,EAAKjV,MAAMuB,SAAS7H,IAAIhG,EAAE,SAAUuhB,EAAKvK,eACxDqgB,EAASkW,EACThsB,EAAK9d,QAAQwnB,aACboM,EAASA,EAAOrxB,IAAIwnC,GACpBA,EAAaloC,KAAKsZ,QAEtBpc,KAAKqqB,mBAAqBwK,EAC1B70B,KAAKsqB,cAAgB0gB,EACrBnW,EAAO5U,IAAI,YAAc9a,GAAK,SAAWA,GAAK,YAAcA,GAAK,WAAaA,IAC9E6lC,EAAa/lC,GAAG,UAAYE,GAAIC,GAAM2Z,EAAKksB,gBAAiBlsB,IAAOxa,KAAK,YAAYzB,KAAK,eACzFioC,EAAWjoC,KAAKsZ,GAAUpG,GAAKvL,IAAIsgC,EAAWjoC,KAAKsZ,KAAa,EAAG,IAAInX,GAAG,UAAYE,GAAI,iBAAkB,SAAUuI,GAC9GA,EAAE1E,SAAW0E,EAAE0G,eACf1G,EAAEu2B,6BAGVpP,EAAO5vB,GAAGvF,GAAMyV,QAAQC,MAAQ,aAAejQ,GAAK,YAAcA,GAAI0T,GAAS,IAAMC,GAAS1T,GAAM+O,GAAY4K,IAAO9Z,GAAG,QAAUE,GAAIC,GAAM2Z,EAAKmsB,YAAansB,IAAO9Z,GAAG,WAAaE,GAAIC,GAAM2Z,EAAKosB,WAAYpsB,IAAO9Z,GAAG,UAAYE,GAAI4Z,EAAM3Z,GAAM2Z,EAAKqsB,cAAersB,MAEhRksB,gBAAiB,SAAUv9B,GACnBA,EAAE29B,QAAU39B,EAAE21B,SAAWlrB,GAAK2rB,OAC9B9jC,KAAKZ,UAAUmF,KAAK,yCAAyCQ,QAC7D2I,EAAEu2B,6BAGVqH,aAAc,SAAUn8B,GACpBnP,KAAKqqB,mBAAmBvnB,KAAKsZ,OAC7BjN,EAAMrM,KAAKsZ,GAAU,IAEzB8uB,YAAa,SAAUx9B,GAAV,GACLtO,GAAUY,KAAKZ,UACf+P,EAAQ3R,EAAEkQ,EAAE0G,cACZhV,IAAWA,EAAQ8Q,GAAG,YACtB9Q,EAAQgpB,SAASxN,IAEb5a,KAAK83B,kBACL93B,KAAK6U,YAAY1F,EAAM5K,KAAK2U,KAAe,GAAM,GAEjDlZ,KAAK6U,YAAY1F,EAAM5K,KAAK2U,KAGpClZ,KAAKsrC,aAAan8B,IAEtBg8B,WAAY,WACR,GAAI/rC,GAAUY,KAAKZ,SACfA,IACAA,EAAQouB,YAAY5S,KAG5B2wB,eAAgB,SAAUjmC,EAASkmC,EAAYC,GAA/B,GACRjV,GACAh4B,CACJ,IAAIitC,EACA,IAAKjtC,EAAIgtC,EAAYhtC,GAAK,IACtBg4B,EAAYh4B,EACP8G,EAAQ9G,GAAGoH,QAFSpH,SAO7B,KAAKA,EAAIgtC,EAAYhtC,EAAI8G,EAAQ5G,SAC7B83B,EAAYh4B,EACP8G,EAAQ9G,GAAGoH,QAFqBpH,KAO7C,MAAOg4B,IAEXkV,gBAAiB,SAAUztC,EAAKyP,GAAf,GAITqR,GACAyX,EACAiS,EACAnlB,EAUK9kB,CAhBT,IAAIwB,KAAKqqC,oBAAsB3nC,EAC3B,OAAO,CAeX,KAbIqc,EAAO/e,KACPw2B,EAAYzX,EAAKsrB,kBACjB5B,EAAYt+B,GAAYvB,EAAiBmW,EAAKzZ,UAC9Cge,EAAc,EACdrlB,IAAQ6f,GAAQ3F,GAAKwrB,KAAOxrB,GAAKyrB,QAAUpN,IAAciS,EAAU/pC,OAAS,EAC5E83B,EAAYzX,EAAKwsB,eAAe9C,EAAWjS,EAAY,GAChDv4B,IAAQ6f,GAAQ3F,GAAKyrB,MAAQzrB,GAAKwrB,OAASnN,EAClDA,EAAYzX,EAAKwsB,eAAe9C,EAAWjS,EAAY,GAAG,GACnDv4B,GAAOka,GAAKwzB,KACnBnV,EAAYzX,EAAKwsB,eAAe9C,EAAW,GACpCxqC,GAAOka,GAAKyzB,MACnBpV,EAAYzX,EAAKwsB,eAAe9C,EAAWA,EAAU/pC,OAAS,GAAG,IAE5DF,EAAI,EAAGA,EAAIg4B,EAAWh4B,IAC3B8kB,GAAemlB,EAAUjqC,GAAGK,KAQhC,OANAkgB,GAAKsrB,kBAAoB7T,EACrB9oB,IACAA,EAAE8F,iBACF9F,EAAEuqB,mBAENv4B,GAAM2T,WAAW0L,EAAK1a,QAASif,IACxB,GAEX8nB,cAAe,SAAU19B,GAAV,GAmBPm+B,GAlBAzsC,EAAUY,KAAKZ,UACfm2B,EAAgBv1B,KAAKu1B,kBACrBuW,EAAoB9rC,KAAK2oB,mBAAqB3oB,KAAK2oB,kBAAkBtE,WACrErb,EAASxL,EAAEkQ,EAAE1E,QACb+iC,GAAar+B,EAAEs+B,uBAAyBhjC,EAAOkH,GAAG,6BACtD,OAAI47B,IACAp+B,EAAE8F,iBACF,MAEA+hB,EAAcjwB,SAAalG,GAAY0B,SAASe,KAAKqT,SAAS9V,EAAQ,MAAQY,KAAK0rC,gBAAgBh+B,EAAE21B,QAAS31B,MAG7GtO,IACDA,EAAU5B,EAAEwC,KAAKsU,aAAa9Q,IAAIxD,KAAKiB,QAAQwnB,WAAazoB,KAAKmP,MAAQnP,KAAKkP,OAAO3K,KAAK2U,KAEzF9Z,EAAQV,SAGTmtC,GAAU,EACVE,GAAar+B,EAAE21B,SAAWlrB,GAAK0rB,KAC/BgI,EAAU7rC,KAAKisC,QAAQ7sC,EAASsO,EAAE61B,WAElCwI,GAAar+B,EAAE21B,SAAWlrB,GAAK2rB,OAC/B+H,EAAU7rC,KAAKksC,UAAU9sC,EAASsO,EAAE61B,WAEpCwI,GAAar+B,EAAE21B,UAAYvlB,GAAQ3F,GAAKwrB,KAAOxrB,GAAKyrB,SACpDiI,EAAU7rC,KAAKmsC,WAAW/sC,EAASsO,EAAE29B,OAAQ39B,EAAE61B,SAAU71B,EAAE+T,QAAS/T,EAAE0G,gBAEtE23B,GAAar+B,EAAE21B,UAAYvlB,GAAQ3F,GAAKyrB,MAAQzrB,GAAKwrB,QACrDkI,EAAU7rC,KAAKosC,UAAUhtC,EAASsO,EAAE29B,OAAQ39B,EAAE61B,SAAU71B,EAAE+T,QAAS/T,EAAE0G,gBAErE23B,GAAar+B,EAAE21B,SAAWlrB,GAAKk0B,WAC/BR,EAAU7rC,KAAKssC,mBAEfP,GAAar+B,EAAE21B,SAAWlrB,GAAKo0B,SAC/BV,EAAU7rC,KAAKwsC,iBAEfT,GAAar+B,EAAE21B,SAAWlrB,GAAKwzB,OAC/BE,EAAU7rC,KAAKysC,YAAYrtC,EAASsO,EAAE+T,UAEtCsqB,GAAar+B,EAAE21B,SAAWlrB,GAAKyzB,MAC/BC,EAAU7rC,KAAK0sC,WAAWttC,EAASsO,EAAE+T,UAErCsqB,GAAar+B,EAAE21B,SAAWlrB,GAAKmrB,WAC/BuI,EAAU7rC,KAAK2sC,gBAAgBvtC,EAASsO,EAAE+T,UAE1C/T,EAAE21B,SAAWlrB,GAAKy0B,OAASl/B,EAAE21B,SAAWlrB,GAAK00B,KAC7ChB,EAAU7rC,KAAK8sC,gBAAgB1tC,EAASsO,EAAE0G,cAAepL,IAEzD0E,EAAE21B,SAAWlrB,GAAK40B,MAClBlB,EAAU7rC,KAAKgtC,cAAc5tC,EAASsO,EAAE0G,gBAExC1G,EAAE21B,SAAWlrB,GAAK80B,MAClBpB,EAAU7rC,KAAKktC,cAAc9tC,EAASsO,EAAE0G,cAAe1G,EAAE61B,SAAUv6B,IAEnE6iC,IACAn+B,EAAE8F,iBACF9F,EAAEuqB,qBAhDN,IAmDJmU,UAAW,SAAUhtC,EAASisC,EAAQ9H,EAAU9hB,EAAS9M,GAA9C,GACH3F,GAAMhE,EACNT,EAAMnL,EAAQiM,SACd5G,EAAY8F,EAAIc,QA6BpB,OA5BIggC,GACArrC,KAAKmtC,YAAY5iC,GACVkX,GAAWriB,EAAQ8Q,GAAG,cAAgBlQ,KAAKiB,QAAQsoB,YAC1DvpB,KAAKotC,YAAYhuC,GAAS,IAE1B4L,EAAQvG,EAAUF,KAAKsU,IAAQ7N,MAAMT,GACrCyE,EAAOhP,KAAKqtC,oBAAoB5oC,EAAWrF,EAAS4L,GAC/CgE,EAAK,KACFu0B,EACIvjC,KAAKsU,aACLtF,EAAOhP,KAAK84B,YAAYvuB,GACpB/M,EAAE0X,SAASlV,KAAKsU,YAAY,GAAI/J,EAAI,MACpCyE,EAAOA,EAAKP,QAAQsK,GAAU,WAElC/J,EAAOA,EAAKxF,SAASmP,GAAY,UAEjC3J,EAAOhP,KAAKstC,SAASluC,EAASuV,GAAc,IAGhDlQ,EAAYzE,KAAKutC,qBAAqB9oC,GACtCuK,EAAOhP,KAAKqtC,oBAAoB5oC,EAAWrF,EAAS4L,GAChDgE,EAAK,KAAO5P,EAAQ,IACpB+T,GAAW1O,EAAU4G,UAAU,KAI3CrL,KAAK6U,YAAY7F,KAEd,GAEXm9B,WAAY,SAAU/sC,EAASisC,EAAQ9H,EAAU9hB,EAAS9M,GAA9C,GACJ3F,GAAMhE,EACNT,EAAMnL,EAAQiM,SACd5G,EAAY8F,EAAIc,QA6BpB,OA5BIggC,GACArrC,KAAKwtC,UAAUjjC,GACRkX,GAAWriB,EAAQ8Q,GAAG,cAAgBlQ,KAAKiB,QAAQsoB,YAC1DvpB,KAAKotC,YAAYhuC,GAAS,IAE1B4L,EAAQvG,EAAUF,KAAKsU,IAAQ7N,MAAMT,GACrCyE,EAAOhP,KAAKytC,oBAAoBhpC,EAAWrF,EAAS4L,GAC/CgE,EAAK,KACFu0B,EACIvjC,KAAKsU,aACLtF,EAAOhP,KAAK84B,YAAYvuB,GACpB/M,EAAE0X,SAASlV,KAAKmP,MAAM,GAAI5E,EAAI,MAC9ByE,EAAOA,EAAK0+B,QAAQ30B,GAAU,WAElC/J,EAAOA,EAAKxF,SAASmP,GAAY,WAEjC3J,EAAOhP,KAAKstC,SAASluC,EAASuV,GAAc,IAGhDlQ,EAAYzE,KAAKutC,qBAAqB9oC,GAAW,GACjDuK,EAAOhP,KAAKytC,oBAAoBhpC,EAAWrF,EAAS4L,GAChDgE,EAAK,KAAO5P,EAAQ,IACpB+T,GAAW1O,EAAU4G,UAAU,KAI3CrL,KAAK6U,YAAY7F,KAEd,GAEXi9B,QAAS,SAAU7sC,EAASmkC,GAAnB,GAEDv0B,GAgBAO,EAjBA9K,EAAYrF,EAAQiM,SAASA,QAoBjC,OAlBIk4B,IACAv0B,EAAO5P,EAAQiM,SACf2D,EAAOA,EAAKP,QAAQsK,GAAU,UAC9B/J,EAAO5P,EAAQiM,SAAS6E,GAAG6I,IAAW/J,EAAKxF,WAAWvF,GAAG7E,EAAQ4L,SAAWgE,EAAKxF,SAASmP,GAAY,WAEtG3J,EAAOhP,KAAK2tC,kBAAkBlpC,EAAWrF,GACpC4P,EAAK,KACNhP,KAAKsqC,eAAiB,EACtB7lC,EAAYzE,KAAK4tC,mBAAmBnpC,GAAW,GAC/CuK,EAAOhP,KAAK2tC,kBAAkBlpC,EAAWrF,GACrC4P,EAAK,IACLmE,GAAW1O,EAAU4G,UAAU,KAIvCkE,EAAMvP,KAAKsqC,gBAAkB;AACjCtqC,KAAK6U,YAAY7F,GACjBhP,KAAKsqC,eAAiB/6B,GACf,GAEX28B,UAAW,SAAU9sC,EAASmkC,GAAnB,GAEHv0B,GAgBAO,EAjBA9K,EAAYrF,EAAQiM,SAASA,QAoBjC,OAlBIk4B,IACAv0B,EAAO5P,EAAQiM,SACf2D,EAAOA,EAAK0+B,QAAQ30B,GAAU,UAC9B/J,EAAO5P,EAAQiM,SAAS6E,GAAG6I,IAAW/J,EAAKxF,WAAWvF,GAAG7E,EAAQ4L,SAAWgE,EAAKxF,SAASmP,GAAY,YAEtG3J,EAAOhP,KAAK6tC,kBAAkBppC,EAAWrF,GACpC4P,EAAK,KACNhP,KAAKsqC,eAAiB,EACtB7lC,EAAYzE,KAAK4tC,mBAAmBnpC,GACpCuK,EAAOhP,KAAK6tC,kBAAkBppC,EAAWrF,GACrC4P,EAAK,IACLmE,GAAW1O,EAAU4G,UAAU,KAIvCkE,EAAMvP,KAAKsqC,gBAAkB,EACjCtqC,KAAK6U,YAAY7F,GACjBhP,KAAKsqC,eAAiB/6B,GACf,GAEX69B,YAAa,SAAUhuC,EAAS0uC,GAAnB,GACL3pC,GAAWnE,KAAK4V,QAAQjE,OAAO2gB,iBAAiB1qB,QAAQrD,KAAKvE,KAAKgsB,mBAAmB/qB,QAAQqD,OAAS,YACtGgB,EAAUuC,EAAe4D,EAAsBzL,KAAKsF,UACpDstB,EAAWzuB,EAAS6G,MAAMxN,EAAE4B,IAC5B2K,EAAS+jC,KAAc,EACvBnoC,EAASL,EAAQstB,GACjBC,EAAWlnB,EAA2BrG,EAAStF,KAAKsF,QAASstB,EAAUA,EAAW7oB,EAClF8oB,IAAY,IACZ7yB,KAAK8yB,cAAcD,EAAUltB,EAAQmoC,GACrC9tC,KAAK4iB,QAAQhH,IACTiX,SAAUA,EACVD,SAAUA,EACVjtB,OAAQA,MAIpB8mC,YAAa,SAAUrtC,EAAS2uC,GAAnB,GAKL/Z,GAJAzpB,EAAMnL,EAAQiM,SACd2iC,EAAezjC,EAAIc,SACnB4iC,EAAkBjuC,KAAKsU,aAAetU,KAAKsU,YAAY9K,SAAS,SAAS,KAAOwkC,EAAa,GAC7FE,EAAWF,EAAa,KAAOhuC,KAAKkP,MAAM,EAE9C,OAAIlP,MAAKk0B,sBACLl0B,KAAK0rC,gBAAgBhsC,GAAMyY,KAAKwzB,OACzB,IAEPoC,EAEI/Z,EADAh0B,KAAKsU,YACEtU,KAAKsU,YAAY/P,KAAKyU,GAAe,IAAMF,GAAU,UAErD9Y,KAAKmP,MAAM5K,KAAKyU,GAAe,IAAMF,GAAU,WAEnDo1B,GAAYD,KACfC,GAAYluC,KAAKsU,cACjB/J,EAAMvK,KAAK84B,YAAYvuB,IAE3BypB,EAAOzpB,EAAIf,SAASmP,GAAY,WAEhCqb,GAAQA,EAAKt1B,QACbsB,KAAK6U,YAAYmf,IACV,GAFX,IAKJ0Y,WAAY,SAAUttC,EAAS2uC,GAAnB,GAKJ/+B,GAJAzE,EAAMnL,EAAQiM,SACd2iC,EAAezjC,EAAIc,SACnB4iC,EAAkBjuC,KAAKsU,aAAetU,KAAKsU,YAAY9K,SAAS,SAAS,KAAOwkC,EAAa,GAC7FE,EAAWF,EAAa,KAAOhuC,KAAKkP,MAAM,EAE9C,OAAIlP,MAAKk0B,sBACLl0B,KAAK0rC,gBAAgBhsC,GAAMyY,KAAKyzB,MACzB,IAEPmC,EACA/+B,EAAOhP,KAAKmP,MAAM5K,KAAK0U,GAAc,IAAMH,GAAU,UAC9Co1B,GAAYD,MACdC,GAAYluC,KAAKsU,cAClB/J,EAAMvK,KAAK84B,YAAYvuB,IAE3ByE,EAAOzE,EAAIf,SAASmP,GAAY,UAEhC3J,GAAQA,EAAKtQ,QACbsB,KAAK6U,YAAY7F,IACV,GAFX,IAKJs9B,gBAAiB,WACb,QAAKtsC,KAAKiB,QAAQ+nB,WAGlBhpB,KAAK2e,WAAW+G,KAAK1lB,KAAK2e,WAAW+G,OAAS,IACvC,IAEX8mB,cAAe,WACX,QAAKxsC,KAAKiB,QAAQ+nB,WAGlBhpB,KAAK2e,WAAW+G,KAAK1lB,KAAK2e,WAAW+G,OAAS,IACvC,IAEXwnB,cAAe,SAAU9tC,EAASuV,EAAc4uB,EAAUv6B,GAA3C,GAEPV,GADA6lC,EAAWnuC,KAAKiB,QAAQgT,UAAgC,UAApBjU,KAAK42B,WAE7C,UAAKuX,GAAY/uC,EAAQ8Q,GAAG,QAAUlQ,KAAKiB,QAAQwnB,WAAazoB,KAAKsqB,cAAchmB,OAAOqQ,GAAcjW,OAASsB,KAAK8J,MAAMxF,OAAO0E,GAAQtK,WAG3I4J,EAAO9K,EAAEsa,MAAiBxJ,QAAQ,gBAC9BhG,EAAK,IAAMA,EAAK,KAAOlJ,EAAQ,KAC/BA,EAAUkJ,GAEdA,EAAOtI,KAAKstC,SAASluC,EAASuV,EAAc4uB,GACxCj7B,EAAK,KAAOlJ,EAAQ,OAGpBkJ,EAAK5J,SACLsB,KAAKouC,eAAehvC,EAASkJ,EAAMA,EAAKgG,QAAQ,WACzC,MAIf0+B,cAAe,SAAU5tC,EAASuV,GAAnB,GAaH6mB,GAZJ6S,EAASv2B,KACTq2B,EAA+B,UAApBnuC,KAAK42B,WACpB,OAAKzgB,IAAS/W,IAOV+uC,EACAnuC,KAAKo3B,WAAU,IAEXoE,EAAeh+B,EAAE4B,GAASiM,SAASL,QACnCqjC,GACAA,EAAO1W,OAEX33B,KAAK+6B,WAAU,GACXS,GAAgB,GAChBx7B,KAAK6U,YAAY7U,KAAK6R,QAAQ5N,GAAGu3B,GAAchyB,SAASsP,IAAS0H,UAGzErN,GAAWwB,GAAc,IAClB,KAnBCvV,EAAQs4B,IAAI2W,GAAQ3vC,SACpByU,GAAWwB,GAAc,IAClB,IAmBnB25B,eAAgB,SAAUlvC,EAAS6U,EAAUlE,GACzC,GAAIxF,GAAMnL,EAAQiM,QAClB,OAAId,GAAI2F,GAAG,oBACP3F,EAAIhG,KAAK,iBAAiBQ,SACnB,KAENkP,IAAYlE,KACbxF,EAAIhG,KAAK,iBAAiBQ,SACnB,IAIf4nC,gBAAiB,SAAUvtC,EAASqiB,GAAnB,GAKT8sB,GACAzoC,EACAiM,EACAy8B,EAPAzvB,EAAO/e,IACX,IAAKyhB,GAAY1C,EAAKnL,WAAcxU,EAAQiL,SAAS,YAsBrD,MAnBIkkC,GAAcxvB,EAAKnL,UAAU26B,cAC7BzoC,EAAQ1G,EAAQ0D,KAAKpD,GAAMoD,KAAK,UAChCiP,EAAagN,EAAKnL,UAAU7B,aAC5By8B,EAAQpvC,EAAQ0D,KAAKpD,GAAMoD,KAAK,WAAagD,EAC7CiZ,EAAKnL,UAAU66B,SAASrvC,IACxBmvC,EAAYpwC,MACR2H,MAAOA,EACP4oC,IAAK,MACL38B,WAAYA,QAEhBy8B,GAAS,IAAMzvB,EAAK9d,QAAQ2oB,SAASM,gBAErCqkB,EAAc/wC,EAAEsK,KAAKymC,EAAa,SAAU39B,GACxC,MAAOA,GAAK9K,QAAUA,IAE1B0oC,GAAS,IAAMzvB,EAAK9d,QAAQ2oB,SAASK,aAEzC7qB,EAAQ0D,KAAK,aAAc0rC,GAC3BzvB,EAAKJ,WAAWqO,MAAMuhB,IACf,GAEXzB,gBAAiB,SAAU1tC,EAASuV,EAAc3L,GAAjC,GAIT2lC,GAgBAC,EAnBA36B,EAAWjU,KAAKiB,QAAQgT,UAAYjU,KAAKiB,QAAQgT,SAAS8R,UAAW,EACrEthB,EAAYuE,EAAOsF,QAAQ,mBAC3ByB,EAAa/P,KAAKouB,aAKtB,OAHKplB,GAAOkH,GAAG,UAAa1S,EAAE0X,SAAS9V,EAAQ,GAAI4J,EAAO,MACtD5J,EAAUqF,GAEVrF,EAAQ8Q,GAAG,OACXy+B,EAAOvvC,EAAQmF,KAAK,WAChBoqC,EAAKjwC,OACLiwC,EAAK5pC,QAEL3F,EAAQmF,KAAK0Q,IAAexB,SAEzB,KAEPzT,KAAKsuC,eAAelvC,EAAS6U,EAAUlE,KAGvC6+B,EAAYxvC,EAAQmF,KAAK,yBACzBqqC,EAAU,KAAOxvC,EAAQiL,SAAS,gBAAkBjL,EAAQiL,SAAS,oBACrEukC,EAAUn7B,SACH,MAEPQ,GAAajL,EAAOkH,GAAG,iCAClBzL,EAAU,KACXA,EAAYrF,GAEhBY,KAAKouC,eAAe3pC,GAAW,EAAOkQ,IAC/B,KAIf84B,oBAAqB,SAAUt+B,EAAO/P,EAASyvC,GAA1B,GAGTxlC,GACAoD,EAGQ8B,EANZrE,EAAQ9K,EAAQsuC,QAAQ/0B,GAC5B,OAAKzO,GAAMxL,SACH2K,EAAO8F,EAAM5K,KAAKsU,IAClBpM,EAAWpD,EAAK2B,MAAM5L,EAAQiM,UAC9BoB,OAeDvC,EAAMsW,QAdDphB,EAAQiL,SAAS,aACbkE,KACJ/B,GAAqB9D,EAAc1I,KAAKsF,SAAS,IAAKuJ,GAAkBxF,EAAKpF,GAAG,GAAGuF,SAAS,YAAYgX,SAAUjS,EAAY,EAAG,GAC7HA,EAAWsgC,GACJtgC,EAAWsgC,GAAe,GAE9BzvC,GAEPA,EAAQiM,SAAShB,SAAS,gBACnBhB,EAAKK,OAAOF,SAASmP,IAAW6H,QAEpCnX,EAAKpF,GAAG4qC,GAAerlC,SAASmP,IAAW6H,SAK9D6sB,oBAAqB,SAAUl+B,EAAO/P,EAASyvC,GAA1B,GAGTxlC,GACAoD,EAGQ8B,EACAjJ,EAPZ4E,EAAQ9K,EAAQqP,QAAQkK,GAC5B,OAAKzO,GAAMxL,SACH2K,EAAO8F,EAAM5K,KAAKsU,IAClBpM,EAAWpD,EAAK2B,MAAM5L,EAAQiM,UAC9BoB,OAgBDvC,EAAMsW,QAfDphB,EAAQiL,SAAS,aACbkE,KACAjJ,EAAUoD,EAAc1I,KAAKsF,SACjCkH,GAAqBlH,EAAQA,EAAQ5G,OAAS,IAAKmQ,GAAkBxF,EAAKpF,GAAG,GAAGuF,WAAWE,QAAS6E,EAAY,EAAG,GAC/GA,EAAWsgC,GACJtgC,EAAWsgC,GAAe,GAE9BzvC,GAEPA,EAAQiM,SAAShB,SAAS,gBACnBhB,EAAKK,OAAOF,SAASmP,IAAWjP,OAEpCL,EAAKpF,GAAG4qC,GAAerlC,SAASmP,IAAWjP,QAK9DolC,kBAAmB,SAAU3/B,EAAO/P,GAAjB,GAKX2vC,GAJA/jC,EAAQ5L,EAAQ0D,KAAK,aACzB,OAAKkI,IAGD+jC,EAAqBrmC,EAAc1I,KAAKsF,SAAS5G,OACjDqwC,IAAuB5/B,EAAMb,QAAQ,OAAOjE,SAAS,yBAAyB,GACvEW,EAAQ+jC,EAEZ/jC,GANItI,GAQfirC,kBAAmB,SAAUlpC,EAAWrF,GAArB,GACX8K,GACAK,EAAMnL,EAAQiM,SACdhC,EAAO5E,EAAU+E,SAASqP,IAC1BpM,EAAWpD,EAAK2B,MAAMT,GACtBS,EAAQhL,KAAK8uC,kBAAkBrqC,EAAWrF,EAC9C,IAAI4L,GAAS5L,EAAQiL,SAAS,YAE1B,MADAH,GAAQgE,GAAmB9O,GACpB8K,EAAMjG,GAAGiG,EAAMxL,OAAS,EAGnC,IADAsM,EAAQ2D,KAAKlE,IAAIF,EAAIf,SAASmP,IAAW3N,MAAM5L,GAAUY,KAAKsqC,gBAAkB,GAC5E//B,EAAIF,SAAS,gBACb,MAAOuD,IAAcnJ,GAAWH,OAAOmD,GAAexD,GAAG+G,EAE7D,IAAIyB,OAKA,GAJIzM,KAAKk0B,uBACLlpB,EAAQhL,KAAKqqC,mBAEjB9/B,EAAM9F,EAAUF,KAAK,4BAChBgG,EAAI,GAIL,OAHKvK,KAAKouB,eAAiBhvB,EAAQiM,SAAS9G,KAAK,qBAAqB7F,SAAWsM,GAC7EA,IAEG4C,GAAcnJ,GAAWH,OAAOmD,GAAexD,GAAG+G,OAG7DT,GAAmB,IAAbkC,EAAiBjP,IAAM6L,EAAKpF,GAAGwI,EAAW,EAGpD,OADAvC,GAAQK,EAAIf,SAASmP,IAEVzO,EAAMjG,GADbiG,EAAMxL,OAASsM,EACCA,EAEJ,IAEpB6iC,kBAAmB,SAAUppC,EAAWrF,GAArB,GACX8K,GAMAwM,EAkBAs4B,EAEIC,EACAC,EACKnrC,EAASrF,EA3BlB6L,EAAMnL,EAAQiM,SACdhC,EAAO5E,EAAU+E,SAASqP,IAC1BpM,EAAWpD,EAAK2B,MAAMT,GACtBS,EAAQhL,KAAK8uC,kBAAkBrqC,EAAWrF,GAC1Cm2B,EAAgBv1B,KAAKu1B,iBAEzB,IAAI9oB,OAAkBzB,IAAUtI,GAAatD,EAAQiL,SAAS,YAC1D,MAAOwE,IAAkBzP,GAAS6E,GAAG,EAiBzC,IAfA+G,EAAQA,EAAQgB,SAAShB,EAAO,IAAMT,EAAIf,SAASmP,IAAW3N,MAAM5L,GACpE4L,EAAQ2D,KAAKlE,IAAIO,EAAOhL,KAAKsqC,gBAAkB,GAC3C79B,OACAlC,EAAMlB,EAAKpF,GAAG,GACVsxB,EAAcjwB,UACdoR,EAAU1K,SAASzB,EAAIf,WAAWgX,QAAQ1d,KAAK,WAAY,IAC3DkI,EAAQhL,KAAKqqC,mBAAqB3zB,EAAU,EAAIA,EAAU,KAE1D1W,KAAKouB,eAAiB7jB,EAAIhG,KAAK,qBAAqB7F,SACpDsM,KAGJT,EAAMlB,EAAKpF,GAAGwI,EAAWrN,EAAQ,GAAGyJ,SAEpCmmC,EAAWhkC,EACXhL,KAAK8uC,kBAAkBrqC,EAAWrF,KAAasD,EAG/C,IAFIusC,EAAkB1kC,EAAIf,SAAS,8CAC/B0lC,EAAgBD,EAAgB3qC,OAAO,WAClCP,EAAM,EAAGrF,EAASwwC,EAAcxwC,OAAQqF,EAAMrF,EAAQqF,IACvDkrC,EAAgBjkC,MAAMkkC,EAAcnrC,IAAQiH,GAC5CgkC,GAMZ,OAFAhkC,GAAQgkC,EACR9kC,EAAQK,EAAIf,SAASmP,IAEVzO,EAAMjG,GADbiG,EAAMxL,OAASsM,EACCA,EAEJ,IAEpB4iC,mBAAoB,SAAUnpC,EAAW0qC,GAArB,GACZhgC,GAAQ1K,EAAU4G,SAClB3M,EAASsB,KAAKqqB,mBAAmB3rB,OACjC0wC,EAAOzgC,KAAKuH,MAAMxX,EAAS,GAC3BsM,EAAQQ,GAAQ2D,EAAM,GAAInP,KAAKqqB,mBAQnC,OAPI8kB,KACAC,OAEJpkC,GAASokC,GACLpkC,GAAS,GAAKA,EAAQtM,KACtByQ,EAAQnP,KAAKqqB,mBAAmBpmB,GAAG+G,IAEhCmE,EAAM5K,KAAK4qC,EAAK,SAAW,WAEtC5B,qBAAsB,SAAU9oC,EAAWmI,GAArB,GAKduC,GACAnE,EALAtM,EAASsB,KAAKqqB,mBAAmB3rB,MACrC,OAAIA,IAAU,EACH+F,GAEP0K,EAAQ1K,EAAU4G,SAClBL,EAAQQ,GAAQ2D,EAAM,GAAInP,KAAKqqB,oBACnCrf,GAAS4B,EAAQ,MACbA,GAAmB,GAAT5B,GAAcA,GAAStM,GAGhCkO,IAAmB,GAAT5B,GAAcA,EAAQ,GAC1BvG,EAEJzE,KAAKqqB,mBAAmBpmB,GAAG+G,GAAOzG,KAAK,gBALnCE,IAOf6oC,SAAU,SAAUluC,EAASuV,EAAc06B,GAAjC,GACFC,IAAY,EACZtgC,EAAOqgC,EAAOjwC,EAAQqP,QAAQkK,GAAY,UAAYvZ,EAAQsuC,QAAQ,iBAC1E,KAAK1+B,EAAKtQ,OAAQ,CAMd,GALAsQ,EAAO5P,EAAQiM,SACXrL,KAAKsU,cACLg7B,EAAYD,GAAQ16B,GAAgB3U,KAAKsU,YAAY,KAAO+6B,GAAQ16B,GAAgB3U,KAAKmP,MAAM,GAC/FH,EAAOhP,KAAK84B,YAAY9pB,IAExBsgC,EAAW,CACX,GAAItvC,KAAKk0B,qBACL,MAAO90B,EAEX4P,GAAOA,EAAKqgC,EAAO,UAAY,WAAW,4DAE9CrgC,EAAOA,EAAKxF,SAASmP,IAAa02B,EAAO,QAAU,WAEvD,MAAOrgC,IAEXo/B,eAAgB,SAAUhvC,EAAS4P,EAAMG,GACrC,GAAiIy/B,GAAuFW,EAApNxwB,EAAO/e,KAAMquC,EAAS7wC,EAAEsa,MAAkBkf,EAAOjY,EAAK6X,YAAa4Y,EAAOl6B,GAAQ0I,KAAMsZ,EAAgBvY,EAAKmY,eAA2BjjB,EAAW8K,EAAK9d,QAAQgT,UAAY8K,EAAK9d,QAAQgT,SAAS8R,UAAW,CAOjN,IANA5W,EAAQ3R,EAAE2R,GAENogC,EADQ,UAARvY,EACW53B,EAAQiL,SAAS,eAEjBjL,EAAQiM,SAAShB,SAAS,mBAErC0U,EAAK9K,SAAU,CAOf,GANIzW,EAAE0X,SAASoiB,EAAc,GAAI+W,EAAO,MACpCA,EAAO1W,OACH6X,GACAnB,EAAO1W,SAGV5Y,EAAK9K,SAEN,MADAd,IAAWhE,GACX,CAEJ,KAAI4P,EAAK9K,SAASkjB,MAiBd,MARIpY,GAAKlK,YADG,UAARmiB,EACiBM,EAEAA,EAAc9tB,WAAWlF,OAAOqU,IAAW6H,SAEhEouB,EAAYtX,EAAc/yB,KAAK,yBAAyB,GACpDqqC,GACAA,EAAUn7B,QAEd,CAhBY,WAARujB,EACAjY,EAAKqY,aAELrY,EAAKwc,UACLgU,GAAW,GAenBvgC,GACA+P,EAAKlK,YAAY7F,GAErBmE,GAAWhE,GAAO,GACb8E,KAGAs7B,IAAavgC,GAAQA,KAClBgoB,IAASta,GACJlf,EAAEuhB,EAAK3f,WAAWiL,SAASqO,KAC5BqG,EAAK6Y,SAAS7Y,EAAK3f,WAGvB2f,EAAKgZ,QAAQhZ,EAAK3f,UAAUiM,YAIxCqV,SAAU,WACN,GAAI3B,GAAO/e,KAAMmP,EAAQ4P,EAAK5P,MAAOrQ,EAASigB,EAAK9d,QAAQnC,OAAQD,EAAQkgB,EAAK9d,QAAQpC,MAAO+W,EAAUmJ,EAAKnX,OACzGgO,GAAQ1F,GAAG,SACZ0F,EAAUA,EAAQ2J,KAAK,UAAUlU,UAErC0T,EAAKnJ,QAAUA,EAAQwS,SAAS,wCAC5BtpB,IACAigB,EAAKnJ,QAAQnS,IAAI0Y,GAAQrd,GACzBqQ,EAAM1L,IAAI0Y,GAAQ,SAElBtd,GACAkgB,EAAKnJ,QAAQnS,IAAI,QAAS5E,GAE9BkgB,EAAK0wB,eAETA,YAAa,WAAA,GAKDrgC,GAJJnO,EAAUjB,KAAKiB,QACf8d,EAAO/e,IACXA,MAAK6rB,UAAY5qB,EAAQ0oB,UAAW,GAAQjqB,GAAMyV,QAAQmb,UAA+B,UAAnBrvB,EAAQ0oB,QAAyC,WAAnB1oB,EAAQ0oB,OACxG3pB,KAAK6rB,YACDzc,EAAOpP,KAAK4V,QAAQwS,SAAS,iBAAiB7I,KAAK,aAAe7f,GAAMy6B,GAAK,uBAAyBz6B,GAAMy6B,GAAK,oBAA2Bz6B,GAAMy6B,GAAK,+BAA+B9uB,SAC1LrL,KAAK4rB,KAAO5rB,KAAK0vC,YAAYtgC,GAC7BpP,KAAK2+B,KAAO3+B,KAAK4rB,KAAK+S,OAClB19B,EAAQnC,OACRkB,KAAK4rB,KAAKhkB,QAAQyD,SAAS5H,IAAI0Y,GAAQlb,EAAQnC,QAE/CkB,KAAK4rB,KAAKhkB,QAAQyD,SAAS5H,IAAI0Y,GAAQnc,KAAK4V,QAAQ,GAAG3W,MAAMH,QAEjEkB,KAAKw8B,eAAiB,QACtBzd,EAAKnJ,QAAQ3Q,GAAG,gBAAkBE,GAAI,SAAUuI,GAC5CA,EAAEuqB,oBAENlZ,EAAKnJ,QAAQ3Q,GAAG,cAAgBE,GAAI,OAAQ,SAAUuI,GAElD,MADAA,GAAE8F,kBACK,IAEXxT,KAAK2+B,KAAKlf,KAAK,YAAa,WACpBV,EAAK8hB,cACL9hB,EAAKgX,qBACLhX,EAAK+R,8BACL/R,EAAKgS,2BACLhS,EAAKiS,0BACLjS,EAAKoa,+BAKrBuW,YAAa,SAAUtgC,GACnB,GAAIwc,GAAOlsB,GAAMiwC,KAAKpwB,KAAKnQ,GACvBwgC,YACIC,aACIC,cAAc,EACdvwB,MAAM,EACNwwB,gBAAgB,EAChBC,cAAc,EACdC,iBAAiB,KAI7B,OAAOrkB,IAEX5E,OAAQ,WACJ,GAAqC9X,GAAjC6P,EAAO/e,KAAMmP,EAAQ4P,EAAK5P,KAC9BD,GAAQC,EAAM5K,KAAK,UACd2K,EAAMxQ,SACPwQ,EAAQ1R,EAAE,YAAY0G,SAASiL,IAEnC4P,EAAK7P,MAAQA,EAAMpM,KAAK,OAAQ,aAEpCotC,YAAa,WAAA,GACQ1f,GAAQrhB,EAAyUmf,EA2B1V9B,EAsBI2T,EACAgQ,EA4BAlX,EA9ERla,EAAO/e,KAAqBiB,EAAU8d,EAAK9d,QAASwnB,EAAaxnB,EAAQwnB,WAAY2nB,EAAmB3nB,KAAe,GAAQA,EAAWC,QAAS6M,EAAgB6a,EAAmB56B,GAAqBiT,EAAWC,SAAW,KAAMpI,GAAa5gB,GAAMyV,QAAQwL,qBAAuB4U,GAAiBA,EAAclsB,KAAO3J,GAAMyV,QAAQmL,YAAc,CAC3VmI,KACA+H,EAASzR,EAAKnJ,QAAQpM,SAAS,kBAC1BgnB,EAAO,KACRA,EAAShzB,EAAE,iCAAiCiT,aAAasO,EAAK5P,QAElEqhB,EAAO/sB,IAAIqa,GAAQ,eAAiB,gBAAiB2K,EAAWC,QAAUpI,EAAY,EAAIA,GAC1FnR,EAAQ3R,EAAE,yBACV2R,EAAMtQ,MAAMkgB,EAAK5P,MAAM,GAAGlQ,MAAMJ,OAChCsQ,EAAMgB,OAAO4O,EAAKjV,OAClB0mB,EAAOnhB,QAAQc,OAAO3S,EAAE,wDAAwD2S,OAAOhB,IACvF4P,EAAK1a,QAAU0a,EAAK5P,MAAM9D,SAC1B0T,EAAKwW,cAAgBA,EACjBxW,EAAK1a,QAAQ6L,GAAG,+BAAiCqI,GAAM8F,GAAWE,mBAClEQ,EAAK1a,QAAU0a,EAAK1a,QAAQgH,UAE3B0T,EAAK1a,QAAQ6L,GAAG,iDACjB6O,EAAK1a,QAAU0a,EAAK5P,MAAMoQ,KAAK,oDAAoDlU,UAEnFkqB,GAAiBA,EAAclsB,OAAS0V,EAAK4J,mBAC7C5J,EAAKsxB,2BAEL9a,GAAiBA,EAAcjwB,SAC/ByZ,EAAK5P,MAAM1L,KAAM5E,MAAOiN,EAAUyB,EAAmBF,EAAwB0R,EAAKzZ,aAEtFgpB,EAAakC,EAAOhnB,SAAS,uBAC7BuV,EAAKwN,YAAc+B,EAAW9qB,IAAIub,EAAK1a,SACnCmoB,EAASzN,EAAKnJ,QAAQrR,KAAK,kBAC3BioB,EAAO9tB,SACPqgB,EAAKwN,YAAcxN,EAAKwN,YAAY/oB,IAAIgpB,EAAOhjB,SAAS,yBAE5D8kB,EAAW9O,OAAO,SAAWra,IAAIsa,KAAK,SAAWta,GAAI,SAAUuI,GACvDqR,EAAKuxB,cAAgBtwC,KAAKqT,YAC1B3T,GAAM2T,WAAW0L,EAAKwN,YAAY2F,IAAIxkB,EAAE0G,eAAgBpU,KAAKqT,cAGjEkiB,GAAiBA,EAAclsB,KAC/B0V,EAAK1a,QAAQE,KAAK,+BAA+Bib,OAAO,SAAWra,IAAIsa,KAAK,SAAWta,GAAI,WACvF,GAAIorC,GAAkBvwC,KAAKqT,YAAc0L,EAAKuxB,WAC9CvxB,GAAKuxB,YAActwC,KAAKqT,WACxB3T,GAAM2T,WAAW0L,EAAKwN,YAAavsB,KAAKqT,YACpC0L,EAAK3a,gBACL2a,EAAK3a,cAAc,GAAG+c,UAAYnhB,KAAKmhB,WAEvCoU,EAAcjwB,SAAWirC,GACzBxxB,EAAKM,aAIT8gB,EAAU1X,EAAW0X,QACrBgQ,EAAmBpxB,EAAKJ,WAAW1d,QAAQie,SAC3CihB,IACAphB,EAAKqhB,iBAAmB+P,GAE5BpxB,EAAK1a,QAAQmb,OAAO,SAAWra,IAAIsa,KAAK,SAAWta,GAAI,SAAUuI,GAC7D,GAAI6iC,GAAkBvwC,KAAKqT,YAAc0L,EAAKuxB,WAC9CvxB,GAAKuxB,YAActwC,KAAKqT,WACxB3T,GAAM2T,WAAW0L,EAAKwN,YAAY2F,IAAIxkB,EAAE0G,eAAgB2K,EAAKuxB,aACzDvxB,EAAK3a,eAAiBsJ,EAAE0G,eAAiB2K,EAAK1a,QAAQ,KACtD0a,EAAK3a,cAAc,GAAG+c,UAAYnhB,KAAKmhB,WAEvCgf,GACIngC,KAAKmhB,UAAYnhB,KAAK2hB,aAAe3hB,KAAK4hB,oBAAwB7C,EAAKyxB,yBAA2BzxB,EAAKqhB,iBAAmBrhB,EAAKJ,WAAW6F,UAC1IzF,EAAK0xB,wBAA0B1xB,EAAKqhB,iBACpCrhB,EAAKqhB,iBAAmBrhB,EAAKqhB,iBAAmB+P,EAChDpxB,EAAKJ,WAAW1d,QAAQk/B,SAAU,EAClCphB,EAAKyxB,yBAA0B,EAC/BzxB,EAAKJ,WAAWO,SAASH,EAAKqhB,mBAGlC7K,GAAiBA,EAAcjwB,SAAWirC,IAC1CxxB,EAAK+Y,mBAAoB,EACzB/Y,EAAK2xB,sBACL3xB,EAAKM,UACLN,EAAK4xB,wBACL5xB,EAAK+Y,mBAAoB,KAG7BmB,EAAgBla,EAAK1a,QAAQsN,KAAK,sBAClCsnB,GACAA,EAAclZ,UAElBkZ,EAAgBv5B,GAAMu5B,cAAcla,EAAK1a,SACrC40B,GAAiBA,EAAc2X,UAC/B7xB,EAAKka,cAAgBA,EACrBA,EAAc2X,QAAQnxB,KAAK,SAAU,SAAU/R,GAC3ChO,GAAM2T,WAAW0L,EAAKwN,aAAc7e,EAAEsT,OAAOM,GACzCvC,EAAK3a,eACL2a,EAAK3a,cAAc+c,WAAWzT,EAAEsT,OAAOI,KAG/CrC,EAAKxL,IAAI6G,GAAW,SAAU1M,GAC1BA,EAAEsT,OAAOpL,QAAQwS,SAAS,yBAM9CioB,yBAA0B,WACtB,GAAItxB,GAAO/e,IACP+e,GAAK4J,mBACL5J,EAAK4J,kBAAkB5I,UAE3BhB,EAAK4J,kBAAoB,GAAIpR,IAAkBwH,EAAK1a,SAChDsa,WAAYI,EAAKJ,WACjBe,WAAY,WACR,MAAOX,GAAK8xB,qBAEhBnrB,KAAM,WACF3G,EAAK4xB,yBAETG,OAAQ,WACJ/xB,EAAKgyB,oBAGbhyB,EAAK4J,kBAAkBlJ,KAAKhF,GAAQrV,GAAM2Z,EAAKiyB,iBAAkBjyB,KAErEiyB,iBAAkB,WACd,GAAIjyB,GAAO/e,IACX+e,GAAK2xB,sBACD3xB,EAAK6Z,6BACL7Z,EAAKsZ,2BAA4B,EACjCtZ,EAAKqY,YACLrY,EAAKsZ,2BAA4B,IAGzCiG,mBAAoB,WAChB,MAAOt+B,MAAK44B,4BAA8B54B,KAAKg4B,4BAA8Bh4B,KAAKixC,2BAEtFjZ,yBAA0B,WACtB,MAAOh4B,MAAK2oB,mBAAqB3oB,KAAK42B,cAAgBja,IAE1Dic,yBAA0B,WACtB,MAAO54B,MAAK2oB,mBAAqB3oB,KAAK42B,cAAgBla,IAE1Du0B,wBAAyB,WACrB,MAAOjxC,MAAK2oB,mBAA0C,UAArB3oB,KAAK42B,aAE1C1C,mBAAoB,WAChB,SAAQl0B,KAAKu1B,mBAAqBjwB,SAEtC+xB,sBAAuB,WAAA,GACftY,GAAO/e,KACPyoB,EAAa1J,EAAK4J,mBAClB5J,EAAKiZ,4BAA8BjZ,EAAK6Z,8BACpCnQ,EAAWhF,sBACXgF,EAAWtF,yBACJsF,EAAW9E,oBAClB8E,EAAWvF,wBAIvB2N,oCAAqC,WACjC,GAAIlI,GAAoB3oB,KAAK2oB,iBACzBA,IACAA,EAAkBvF,gCAG1ButB,sBAAuB,WAAA,GAQfpmC,GACAjC,EARAyW,EAAO/e,KACPkxC,EAAgBnyB,EAAK8Z,mBACrBsY,EAAcD,EAAcn9B,MAC5B4K,EAAaI,EAAKJ,WAClByyB,EAAaryB,EAAKiZ,2BAClBqZ,EAAatyB,EAAK6Z,2BAClB0Y,EAAiBvyB,EAAKmV,sBAGrBkd,GAAcC,GAAcC,IAAmBH,GAAexyB,EAAW4yB,UAAUJ,EAAYtrC,IAAK8Y,EAAWggB,UAC5G5f,EAAK6X,cAAgBja,IACrBoC,EAAKsZ,2BAA4B,EACjCtZ,EAAKgZ,QAAQoZ,GACRG,GACDvyB,EAAKgyB,kBAEFhyB,EAAK6X,cAAgBla,KAC5BnS,EAAMwU,EAAK7P,MAAM1F,SAAS7G,EAAWia,GAAWu0B,EAAYtrC,MAC5DyC,EAAO9K,EAAE+M,GAAKf,SAAS7G,EAAW6Z,GAAO00B,EAAcprC,QACnDwC,EAAK,KACLyW,EAAKsZ,2BAA4B,EACjCtZ,EAAK6Y,SAAStvB,GACTgpC,GACDvyB,EAAKgyB,oBAKrBhyB,EAAKsZ,2BAA4B,GAErC0Y,eAAgB,WAAA,GACRhyB,GAAO/e,KACPwxC,GAAezyB,EAAK8Z,oBAAsB/yB,MAC1CwxB,EAAgBvY,EAAKmY,cACrBI,IAAiBA,EAAc54B,SAAWwW,GAASoiB,EAAc,GAAIxf,OAAoBiH,EAAK0yB,sBAC1F1yB,EAAKiZ,4BAA8BjZ,EAAKmV,qBACxCoD,EAAc/yB,KAAK5B,EAAW4Z,GAAei1B,IAAcjtC,KAAKsW,IAAW5W,GAAG,GAAGwP,SAC1EsL,EAAK6Z,4BAA8B7Z,EAAKmV,uBAC/CoD,EAAc/yB,KAAKsW,IAAW5W,GAAG,GAAGwP,UAIhDg+B,kBAAmB,WAAA,GACX1yB,GAAO/e,KACPoD,GAAU2b,EAAK6Z,4BAA8B7Z,EAAKiZ,4BAA8BjZ,EAAKmV,wBAA0Bve,IAA2BoJ,EAAK4J,uBAAyB/S,QAASmJ,EAAKmY,iBAAmBvhB,GAA0BoJ,EAAK1a,QAAS0a,EAAKmY,gBAC1P,OAAO9zB,IAEXstC,oBAAqB,WAAA,GAObrC,GACA/vB,EAPAS,EAAO/e,KACPs3B,EAAgBvY,EAAKmY,eACrBia,EAAc7Z,EAAgBvY,EAAK4X,mBAAmBW,GAAiB,KACvE8Z,EAAaryB,EAAKiZ,2BAClBqZ,EAAatyB,EAAK6Z,2BAClB0Y,EAAiBvyB,EAAKmV,sBAGrBkd,GAAcC,GAAcC,IAAmBH,IAChDpyB,EAAKuZ,sBACL+V,EAAS7wC,EAAEsa,MACPwf,GAAiB+W,EAAO,IAAMn5B,GAASoiB,EAAc,GAAI+W,EAAO,MAChEA,EAAO1b,SACPrU,EAAS5e,GAAMgyC,eAAerD,EAAQ3uC,GAAMgY,IACxC4G,GAAUjG,GAAWiG,EAAOje,QAAUguC,EAAOn+B,GAAGuM,MAChD6B,EAAOje,MAAMguC,EAAOjK,OACpB9lB,EAAOsE,QAAQ5I,MAGnB+E,EAAK6X,cAAgBja,GACrBoC,EAAK8Z,gBACD9kB,MAAOo9B,EACPrrC,MAAOuoC,EAAO//B,QAAQ,IAAM5O,GAAMoD,KAAKyZ,IAAiB,KAAKzZ,KAAKpD,GAAMoD,KAAKyZ,MAE1EwC,EAAK6X,cAAgBla,KAC5BqC,EAAK8Z,gBACD9kB,MAAOo9B,EACPrrC,MAAOwxB,EAAcx0B,KAAKpD,GAAMoD,KAAK0Z,SAKrDkP,kBAAmB,WACf,GAAI3M,GAAO/e,IACP+e,GAAK1a,SACL0a,EAAK1a,QAAQE,KAAK,+CAA+CipB,YAAY,YAE7EzO,EAAK3a,eACL2a,EAAK3a,cAAcG,KAAK,+CAA+CipB,YAAY,aAG3F8K,oBAAqB,WACjB,GAAIvZ,GAAO/e,MACP+e,EAAK4J,mBAAqB5J,EAAKwW,eAAiBxW,EAAKmV,wBACrDnV,EAAK8Z,eAAiB,OAG9BzN,0BAA2B,WACvB,GAAIrM,GAAO/e,IACX+e,GAAKuZ,sBACDvZ,EAAK4J,mBAAqB5J,EAAK4J,kBAAkB/gB,SACjDmX,EAAK4J,kBAAkB5I,UAE3BhB,EAAK4J,kBAAoB,MAE7BgpB,wBAAyB,WAAA,GAGbC,GAFJ7yB,EAAO/e,IACP+e,GAAK9d,QAAQooB,YACTuoB,EAAmB7yB,EAAK5P,MAAM9D,SAAS7B,SAAS,IAAMwR,IACtD42B,EAAiBlzC,SACjBqgB,EAAKiP,QAAQ,UAAW,WACpB,OAAS7pB,SAAUytC,EAAiBhxC,SAExCgxC,EAAiBrlC,UAEhBwS,EAAKJ,YAAeI,EAAKJ,WAAWggB,OAAOjgC,SAC5CkzC,EAAmBp0C,EAAEuhB,EAAKuN,uBAAuB7iB,YAAYsV,EAAK5P,OAClE4P,EAAKiP,QAAQ,UAAW,WACpB,OACI7pB,SAAUytC,EAAiBhxC,MAC3B+Q,gBAMpBkgC,iBAAkB,SAAUx+B,GACxB,GAAmJy+B,GAA/I/yB,EAAO/e,KAAM+xC,EAAiB,0BAA2BC,EAAY,eAAiBD,EAAiB,WAAYzoB,EAAYvK,EAAKuK,SACpIvK,GAAK9d,QAAQwnB,YAAc1J,EAAKnJ,QAAQ1F,GAAG,cAC3C4hC,EAAW/yB,EAAK5P,MAAM9D,SAAS7B,SAAS,IAAMuoC,GAC9ChzB,EAAK6N,wBAA0BxnB,GAAM2Z,EAAK8yB,iBAAkB9yB,GACvDA,EAAKJ,YAAeI,EAAKJ,WAAWggB,OAAOjgC,OAarCozC,EAAS,KAChBA,EAASvlC,SACL+c,GACAA,EAAU9J,OAAO,SAAUT,EAAK6N,2BAf/BklB,EAAS,KACVA,EAAWt0C,EAAEw0C,GAAW9tC,SAAS6a,EAAK5P,MAAM9D,UACxCie,GACAA,EAAU7J,KAAK,SAAUV,EAAK6N,0BAGlC7N,EAAKjV,QACLgoC,EAASjzC,MAAMkgB,EAAKjV,MAAMjL,SACrBozC,MAAMjjB,WAAW3b,EAAY,MAC9B3T,GAAM2T,WAAW0L,EAAK1a,QAASgP,KAS3C0L,EAAK+R,8BACL/R,EAAKgS,2BACDhS,EAAKvK,cAA8C,IAA9BuK,EAAK5P,MAAM,GAAGoU,cACnCxE,EAAK5P,MAAM,GAAGlQ,MAAMJ,MAAQ,SAIxCiyB,4BAA6B,WACzB,GAAI9wB,KAAKiB,QAAQwnB,YAAczoB,KAAKwU,aAAc,CAC9C,GAAqb09B,GAAjb39B,EAAcvU,KAAK8J,MAAMuB,SAAUijB,EAAa/Z,EAAYlJ,SAAU8mC,EAAenyC,KAAK4V,QAAQ,GAAG2N,YAAapa,EAASnJ,KAAKkoB,UAAW5H,EAAY5gB,GAAMyV,QAAQmL,YAAavU,EAAO/L,KAAKwU,aAAajQ,KAAK,2DAA4D6tC,EAAgB79B,EAAYhQ,KAAK,qDAAsD1F,EAAQoN,EAAaF,GAAOsmC,EAAqBpmC,EAAammC,EACjajpC,GAAS,IACTtK,GAASmZ,GAAWhY,KAAKwU,aAAajQ,KAAK,wBAA0B4E,GAErEtK,GAASszC,IACTtzC,EAAQszC,EAAe,EAAI7xB,GAE/BtgB,KAAKwU,aAAahR,IAAIxD,KAAKoE,eAAevF,MAAMA,GAChDyvB,EAAW,GAAGrvB,MAAMJ,MAAQyvB,EAAWjjB,SAASxM,QAAUA,EAAQ,EAAI,KACtE0V,EAAY/Q,IAAIxD,KAAKmP,OAAOtQ,MAAMwzC,GAC9BryC,KAAK2oB,oBAAsB5K,KAC3Bo0B,GAAgB7xB,GAEpBtgB,KAAKqE,QAAQ,GAAGpF,MAAMJ,MAAQszC,EAAetzC,EAAQ,EAAI,KACrDmB,KAAKysB,cAAgBzsB,KAAKysB,aAAa/tB,SACvCsB,KAAKysB,aAAa5tB,MAAMA,GACxBqzC,EAAalyC,KAAKwsB,OAAOjoB,KAAK,uBAC9B2tC,EAAW,GAAGjzC,MAAMJ,MAAQyvB,EAAW,GAAG/K,YAAc,KACxD2uB,EAAW1oC,WAAWgX,QAAQ3hB,MAAMwzC,MAIhDhrB,kBAAmB,WAAA,GAC0BvoB,GAoBjCwzC,EApBJvzB,EAAO/e,KAAMiB,EAAU8d,EAAK9d,QAAiBuvB,EAASzR,EAAKnJ,QAAQpM,SAAS,kBAAmB8W,EAAY5gB,GAAMyV,QAAQmL,YACzHiyB,GAAoBtxC,EAAQwnB,gBAAkB3pB,MAC9CmC,GAAQwnB,YAAc1J,EAAKnJ,QAAQ1F,GAAG,cAClCqiC,GAAqD,KAAjCxzB,EAAK1a,QAAQ,GAAGpF,MAAMH,SAC1CigB,EAAK1a,QAAQ,GAAGpF,MAAMH,OAASyzC,GAEnCzzC,EAASigB,EAAKnJ,QAAQqM,cACtBnjB,GAAUiX,GAAYya,GAClBzR,EAAKwL,OAASxL,EAAKwL,MAAM3iB,QAAQsI,GAAG,cACpCpR,GAAUiX,GAAYgJ,EAAKwL,MAAM3iB,UAEjC3G,EAAQ2S,YACR9U,GAAUiX,GAAYgJ,EAAKnJ,QAAQpM,SAAS,wBAE5CvI,EAAQ2nB,UACR9pB,GAAUiX,GAAYgJ,EAAKnJ,QAAQpM,SAAS,qBAE5CuV,EAAKoN,iBACLrtB,GAAUiX,GAAYgJ,EAAKnJ,QAAQpM,SAAS,oBAE5C8oC,EAAkB,SAAUloC,GAC5B,GAAIooC,GAAeC,CACnB,SAAIroC,EAAG,GAAGnL,MAAMH,SAGZ0zC,EAAgBpoC,EAAGtL,SAEvBsL,EAAGtL,OAAO,QACV2zC,EAAYroC,EAAGtL,SACX0zC,GAAiBC,GACjBroC,EAAGtL,OAAO,KACH,IAEXsL,EAAGtL,OAAO,KACH,KAEPwzC,EAAgBvzB,EAAKnJ,WACjB9W,EAAqB,EAAZwhB,GACLvB,EAAK3a,gBACLkc,EAAYvB,EAAK5P,MAAM,GAAGrN,YAAcid,EAAK5P,MAAM9D,SAAS,GAAGkY,YAAcjD,EAAY,EACzFvB,EAAK3a,cAActF,OAAOA,EAASwhB,IAEvCvB,EAAK1a,QAAQvF,OAAOA,IAEpBigB,EAAK1a,QAAQvF,OAAmB,EAAZwhB,EAAgB,MAKpDuwB,kBAAmB,WAAA,GAUX6B,GATA3zB,EAAO/e,KAAM2yC,EAAa5zB,EAAK2O,OAAO3O,EAAK7P,OAAO,GAAMxQ,OAAQojB,EAAY/C,EAAK6zB,UACrF,OAAmB,KAAfD,EACO7wB,GAEN/C,EAAK6zB,aACN7zB,EAAK6zB,WAAa9wB,EAAY/L,GAAYgJ,EAAK5P,OAASwjC,EACxD5zB,EAAK8zB,KAAO/wB,EACZ/C,EAAK+zB,UAAY,GAEjBJ,EAAmB38B,GAAYgJ,EAAK5P,OAASwjC,EAC7C7wB,IAAc4wB,IACd3zB,EAAK+zB,YACL/zB,EAAK8zB,MAAQH,EACb3zB,EAAK6zB,WAAa7zB,EAAK8zB,KAAO9zB,EAAK+zB,WAEhChxB,IAEXgF,YAAa,WACT,GAAyCkC,GAArCjK,EAAO/e,KAAMiB,EAAU8d,EAAK9d,QAAmB0d,EAAa1d,EAAQ0d,UACxEA,GAAa9Z,GAAQ8Z,IAAgBhN,KAAMgN,GAAeA,EACtD7Z,GAAc6Z,KACd9e,GAAO8e,GACHxP,MAAO4P,EAAK5P,MACZqpB,OAAQzZ,EAAKzZ,UAEjB0jB,EAAW/nB,EAAQ+nB,SACflkB,GAAckkB,IAAaA,EAAS9J,WAAaxc,IACjDic,EAAWO,SAAW8J,EAAS9J,WAGnCH,EAAKJ,YAAcI,EAAKK,gBACxBL,EAAKJ,WAAWa,OAAOxF,GAAQ+E,EAAKK,iBAAiBI,OAAOhH,GAAUuG,EAAKyM,kBAAkBhM,OAAO/G,GAAOsG,EAAK0M,eAAejM,OAAOvC,GAAM8B,EAAKg0B,eAEjJh0B,EAAKK,gBAAkBha,GAAM2Z,EAAKM,QAASN,GAC3CA,EAAKyM,iBAAmBpmB,GAAM2Z,EAAKi0B,cAAej0B,GAClDA,EAAK0M,cAAgBrmB,GAAM2Z,EAAKk0B,OAAQl0B,GACxCA,EAAKg0B,aAAe3tC,GAAM2Z,EAAK2M,kBAAmB3M,IAEtDA,EAAKJ,WAAahH,GAAWgO,OAAOhH,GAAYc,KAAKzF,GAAQ+E,EAAKK,iBAAiBK,KAAKjH,GAAUuG,EAAKyM,kBAAkB/L,KAAKhH,GAAOsG,EAAK0M,eAAehM,KAAKxC,GAAM8B,EAAKg0B,eAE7KE,OAAQ,WACJjzC,KAAKkzC,WAAU,IAEnBF,cAAe,WACXhzC,KAAKkzC,WAAU,IAEnBnZ,aAAc,SAAUrsB,GAAV,GACsHylC,GAAY7qC,EAAM3C,EAAuC4J,EAAyEyE,EAAYo/B,EAAeC,EAAYC,EAAe50C,EA6BhT8+B,EA7BJze,EAAO/e,KAAMkP,EAAQ6P,EAAK7P,MAAO6E,EAAQrG,EAAEqG,MAAOxJ,EAAMwU,EAAK7P,MAAM3K,KAAK,MAAQ7E,GAAMoD,KAAK,OAAS,IAAMiR,EAAMlO,IAAM,KAAgC63B,EAAQnzB,EAAIF,SAAS,SAAetG,EAAMgb,EAAK2O,OAAOxe,GAAOlE,MAAMT,GAAM6lB,EAAWrR,EAAK3a,aAInP,IAHIgsB,IACA+iB,EAAap0B,EAAK+Z,YAAYvuB,IAE9BA,EAAI/G,IAAI2vC,GAAY3pC,SAAS,gBAAgB9K,SAAWqgB,EAAK9d,QAAQkoB,YACrE5e,EAAI/G,IAAI2vC,GAAY3pC,SAAS,yCAAyCykB,KAAK,WACvE3lB,EAAO9K,EAAEwC,MACT2F,EAASwE,GAAY4U,EAAKzZ,SAASyZ,EAAK+X,sBAAsBxuB,IAC1D3C,EAAOG,QAAU4H,EAAE5H,QACdwC,EAAK+B,SAAS,eAGf/B,EAAK8f,SAAS,gBAFdrJ,EAAKmb,aAAa5xB,EAAM3C,EAAQoO,UAMzC,KAAKxJ,EAAIF,SAAS,mBAAoB,CAiCzC,IAhCA+oC,EAAgB51C,IAAIgG,IAAI+G,GACpB6lB,IACA7gB,GAAOmuB,EAAQ3e,EAAKmN,qBAAuBnN,EAAKkN,mBAAmBlY,GACnEq/B,EAAgBA,EAAc5vC,IAAI2vC,GAClCA,EAAWxV,YAAYpuB,IAE3BwP,EAAKiP,QAAQ,UAAW,WACpB,OAAS7pB,SAAUivC,EAAcxyC,SAErC2O,GAAOmuB,EAAQ3e,EAAKqK,eAAiBrK,EAAKoK,aAAapV,GACvDxJ,EAAIozB,YAAYpuB,GAChBA,EAAMwP,EAAK2O,OAAOxe,GAAOjL,GAAGF,GACxBy5B,IAAiBpD,SAAUrmB,IAC3Bqc,IACA7lB,EAAMA,EAAI/G,IAAI2vC,GACdA,EAAap0B,EAAK+Z,YAAYvpB,GAAK,GACnCsD,GAAgBtD,EAAI,GAAI4jC,GACxB5jC,EAAMA,EAAI/L,IAAI2vC,GACd3V,EAAYr/B,MAAOi8B,SAAUrmB,KAEjCgL,EAAKiP,QAAQ,UAAW,WACpB,OACI7pB,SAAUoL,EAAI3O,MACd+Q,KAAM6rB,KAGdxpB,EAAa+K,EAAK9d,QAAQ+S,YACrBA,GAAc+K,EAAK6e,qBAAuBrzB,EAAIF,SAAS,qBACxD0U,EAAK8e,OAAOtuB,GAEhB+jC,EAAgBF,EAAc5pC,SAAS,yCACvC6pC,EAAa9jC,EAAI/F,SAAS,yCACrBzF,EAAM,EAAGrF,EAASqgB,EAAKzZ,QAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACtD4B,EAASoZ,EAAKzZ,QAAQvB,GACtBuE,EAAO+qC,EAAWpvC,GAAGF,GACjBiQ,GAAcs/B,EAAcrvC,GAAGF,GAAKsG,SAAS,qBAC7C/B,EAAK8f,SAAS,mBAGtBrJ,GAAK6D,QAAQ,cACThS,KAAMrB,EACNoC,KAAMoC,EACNomB,GAAIziB,OAIhB0P,UAAW,WACP,GAAiBmsB,GAAbx0B,EAAO/e,KAAiBgpB,EAAWjK,EAAK9d,QAAQ+nB,QAChDA,KACAuqB,EAAYx0B,EAAKnJ,QAAQpM,SAAS,oBAC7B+pC,EAAU70C,SACX60C,EAAY/1C,EAAE,6CAEQ,QAAtBwrB,EAAShf,SACTupC,EAAU7T,UAAU3gB,EAAKnJ,SAASwS,SAAS,oBAE3CmrB,EAAUrvC,SAAS6a,EAAKnJ,SAExBmJ,EAAKwL,OACLxL,EAAKwL,MAAMxK,UAGXhB,EAAKwL,MADe,gBAAbvB,IAAyBA,YAAoBtpB,IAAMgY,GAAG8G,MAChDwK,EAETjK,EAAKJ,WAAW60B,aACH,GAAIl8B,IAAYi8B,EAAW1zC,MAAWmpB,GAAYrK,WAAYI,EAAKJ,cAEnE,GAAIjf,IAAMgY,GAAG8G,MAAM+0B,EAAW1zC,MAAWmpB,GAAYrK,WAAYI,EAAKJ,cAG3FI,EAAKwL,MAAM9K,KAAK,aAAc,SAAU/R,GAChCqR,EAAK6D,QAAQ,QAAU8C,KAAMhY,EAAE1C,SAC/B0C,EAAE8F,mBAGVuL,EAAK00B,2BAGbtrB,QAAS,WAAA,GACgI+pB,GAIzH3iC,EAsCAxF,EA1CRgV,EAAO/e,KAAM+R,EAAagN,EAAKJ,WAAW5M,aAAc3C,EAAO,GAAI+c,EAAiBpN,EAAKoN,eAAgBlrB,EAAU8d,EAAK9d,QAAqBurB,EAASzN,EAAKyN,QAAUzN,EAAKnJ,QAAQrR,KAAK,iBACvL4nB,IACA/c,EAAO5R,EAAEuhB,EAAK20B,YAAYvnB,EAAepa,KACrCya,EAAO9tB,QACH6Q,EAAMH,EACV2P,EAAKiP,QAAQ,UAAW,WACpB,OAAS7pB,SAAUqoB,EAAO5rB,SAE9B4rB,EAAOmR,YAAYpuB,GACnBid,EAASzN,EAAKyN,OAASjd,GAGnBid,EAASzN,EAAKyN,OADdvrB,EAAQwnB,WACexnB,EAAQ+nB,UAA0C,QAA9B/nB,EAAQ+nB,SAAShf,SAAqBoF,EAAKqB,aAAasO,EAAKnJ,QAAQpM,SAAS,qBAAuB4F,EAAKlL,SAAS6a,EAAKnJ,SAE5IxG,EAAKqB,aAAasO,EAAK7P,OAGtD6P,EAAKiP,QAAQ,UAAW,WACpB,OACI7pB,SAAUqoB,EAAOjoB,KAAK,4CAA4C3D,MAClE+Q,KAAMrR,GAAIye,EAAKzZ,QAAS,SAAU2qB,GAC9B,OACItqB,OAAQsqB,EACRhD,UAAWlb,EAAWke,EAAInqB,cAKnC0mB,IAAWzN,EAAKyN,SACvBzN,EAAKyN,OAASA,GAEdA,EAAO9tB,SACHuC,EAAQwnB,aACRypB,EAAa1lB,EAAO1pB,KAAK,eAAgB0G,SAAS,uBAClDuV,EAAKwN,YAAc/uB,EAAEuhB,EAAKwN,YAAYjoB,OAAO,WACzC,OAAQ9G,EAAEwC,MAAMkQ,GAAG,yBACpB9H,WAAW5E,IAAI0uC,IAElBnzB,EAAK6R,cACLpE,EAAOjoB,KAAK,SAASd,IAAI,QAASsb,EAAK6R,cAEvCshB,IACInoC,EAASrK,GAAM2T,WAAW0L,EAAK1a,SAC/BpD,EAAQwnB,cAAe,GAAQ1J,EAAKwW,eAAiBxW,EAAKwW,cAAclsB,OACxEU,EAASrK,GAAM2T,WAAW0L,EAAKnJ,QAAQrR,KAAK,gCAEhD7E,GAAM2T,WAAW6+B,EAAYnoC,KAGjCgV,EAAK3a,gBACL2a,EAAK40B,4BACL50B,EAAK+R,8BACL/R,EAAKoa,4BAGbua,YAAa,SAAUE,GACnB,GAAI70B,GAAO/e,KAAMoP,EAAO,GAAIkR,EAAa5gB,GAAMyV,QAAQmb,SAAuC,EAA5B5wB,GAAMyV,QAAQmL,WAChF,OAAIvB,GAAK9d,QAAQwnB,YACbrZ,EAAO5R,EAAE,4EAA8Eo2C,EAAY,gCACnG70B,EAAK80B,YAAYzkC,EAAK7K,KAAK,UAC3B6K,EAAK3L,IAAIqa,GAAQ,eAAiB,gBAAiBwC,GAC5ClR,GAEJ,gCAAkCwkC,EAAY,YAEzDE,YAAa,WAAA,GACQrf,GAA2C9uB,EAAiEouC,EAAajrB,EAAUD,EAAY3e,EAsDnJnG,EAASrF,EAEV4J,EAxDRyW,EAAO/e,KAAYsF,EAAU6E,GAAY4U,EAAKzZ,SAAkBrE,EAAU8d,EAAK9d,QAASuoB,EAAavoB,EAAQuoB,WAAsDwqB,EAAwBlsC,GAAKiX,EAAKzZ,QAAS,SAAUsL,GACpN,MAAOA,GAAKtL,UAAY5C,IACzBhE,OAAS,EAAGu1C,EAAqBnsC,GAAKiX,EAAKzZ,QAAS,SAAUsL,GAC7D,MAAOA,GAAK6hB,YAAa,IAC1B/zB,OAAS,EAAGw1C,EAAsBpsC,GAAKiX,EAAKzZ,QAAS,SAAUsL,GAC9D,MAAOA,GAAKujC,aAAc,IAC3Bz1C,OAAS,EAAG0yB,EAAWpxB,KAAK6rB,UAAWuoB,EAAe,SAAU1mC,GAC/DqR,EAAK6D,QAAQhJ,IACT9T,MAAO4H,EAAE5H,MACTrB,UAAWiJ,EAAEjJ,aAElB4vC,EAAe,SAAU3mC,GACxBqR,EAAK6D,QAAQ9I,IACThU,MAAO4H,EAAE5H,MACTrB,UAAWiJ,EAAEjJ,aAElB6vC,EAAgB,SAAU1sC,GACzBuL,GAAWvL,EAAQ0G,QAAQ,UAAU,IACtCimC,EAAgB,SAAU7mC,GACzBqR,EAAK6D,QAAQ7G,IAAepW,OAAQ+H,EAAE/H,UACvC6uC,EAAkB,SAAU9mC,GAC3BqR,EAAK6D,QAAQ5G,IAAiBrW,OAAQ+H,EAAE/H,UACzC8uC,EAAc,SAAU/mC,GACnBqR,EAAK6D,QAAQ,QAAUxkB,KAAMsP,EAAEtP,OAC/BsP,EAAE8F,kBAEFuL,EAAKuZ,sBACDvZ,EAAKJ,WAAW1d,QAAQk/B,UACxBphB,EAAKJ,WAAW1d,QAAQk/B,QAAU,KAClCphB,EAAKqhB,iBAAmBrhB,EAAKJ,WAAW1d,QAAQie,SAChDH,EAAKJ,WAAWO,SAASH,EAAKJ,WAAW1d,QAAQie,aAG1Dw1B,EAAgB,SAAUhnC,GACrBqR,EAAK6D,QAAQ,UACTte,OAAQoJ,EAAEpJ,OACVwB,MAAO4H,EAAE5H,QAEb4H,EAAE8F,kBAEFuL,EAAKuZ,sBACDvZ,EAAKJ,WAAW1d,QAAQk/B,UACxBphB,EAAKJ,WAAW1d,QAAQk/B,QAAU,KAClCphB,EAAKqhB,iBAAmBrhB,EAAKJ,WAAW1d,QAAQie,SAChDH,EAAKJ,WAAWO,SAASH,EAAKJ,WAAW1d,QAAQie,aAG1DiO,EAAWlsB,EAAQksB,QAC1B,IAAI3D,EAMA,IALyB,iBAAdA,KACPA,MAEJzK,EAAKsmB,2BAA2B//B,GAChC4E,EAAQ0D,GAAcmR,EAAKjV,OAClB/F,EAAM,EAAGrF,EAASwL,EAAMxL,OAAQqF,EAAMrF,EAAQqF,IACnD4B,EAASL,EAAQvB,GACbuE,EAAO4B,EAAMjG,GAAGF,GACf4B,EAAOhB,UAAYgB,EAAOG,QAASwC,EAAKxF,KAAK,QAAUpD,GAAMy6B,GAAK,WACnE1F,EAAOnsB,EAAKqJ,KAAK,mBACb8iB,GACAA,EAAK1U,UAET+I,EAAWnjB,EAAOmjB,YAAa,GAASU,EAAWV,YAAa,GAAS7nB,EAAQ6nB,YAAa,GAAQjpB,MAAWoB,EAAQ6nB,UAAY6rB,SAAUhvC,EAAOmjB,cAAgB6rB,UACtK9rB,KAAa5nB,EAAQ4nB,YAAcljB,EAAOkjB,cAAe,GAASW,EAAWX,cAAe,IAAQhpB,IAAS+rB,KAAM7M,EAAK6M,MAAQ3qB,EAAQ4nB,WAAYljB,EAAOkjB,YACvJljB,EAAOkjB,YAAcljB,EAAOkjB,WAAWlK,aACvCkK,EAAW+rB,aAAc,EACzB/rB,EAAWgsB,YAAclvC,EAAOkjB,WAAWlK,YAE3CkK,IACAA,EAAW5Y,OAAStK,EAAOsK,QAE/B8jC,GACIp1B,WAAYI,EAAKJ,WACjB+Z,OAAQ/yB,EAAO+yB,OACfpzB,QAASkkB,EAAWlkB,QACpBwjB,SAAUA,EACVD,WAAYA,EACZe,SAAUJ,EAAWI,SACrBkrB,MAAO/1B,EACPu1B,cAAeA,EACfx0C,KAAMs0C,EACN1X,KAAM2X,EACNU,MAAOR,EACPS,QAASR,EACT5oB,KAAM7M,EAAK6M,KACXxtB,KAAMq2C,EACNQ,UAAWP,EACXpwC,OAAQ8sB,EAAW,yBAA2B,GAC9C6iB,mBAAoBvrC,EAAcpD,GAAS5G,OAAS,GAAKu1C,IAAuBD,EAChFE,oBAAqBA,IAAwBF,EAC7C9qB,aAAcnK,EAAK9d,QAAQioB,aAC3BgsB,cAAe1rB,EAAW0rB,eAE1B/nB,IACA4mB,EAAY5mB,SAAWA,GAE3B7kB,EAAK6sC,gBAAgBpB,KAKrCjS,aAAc,WACV,MAAOtkC,GAAEwC,KAAK8J,OAAOvF,KAAK,MAAMD,OAAO,WACnC,GAAIkM,GAAKhT,EAAEwC,KACX,QAAQwQ,EAAGnG,SAAS,kBAAoBmG,EAAGnG,SAAS,uBAG5D+qC,YAAa,WAAA,GAC6ClnB,GAAYhkB,EAAO5B,EAgC5DvE,EAASrF,EAWN22C,EACAp0C,EA5CZ8d,EAAO/e,KAAMsF,EAAU6E,GAAY4U,EAAKzZ,SAAmCgwC,EAAa,SAAU5nC,GAC9FqR,EAAK6D,QAAQjJ,IACT7T,MAAO4H,EAAE5H,MACTrB,UAAWiJ,EAAEjJ,aAElB6vC,EAAgB,SAAU1sC,GACzBuL,GAAWvL,EAAQ0G,QAAQ,UAAU,IACtComC,EAAgB,SAAUhnC,GACrBqR,EAAK6D,QAAQ,UACTte,OAAQoJ,EAAEpJ,OACVwB,MAAO4H,EAAE5H,QAEb4H,EAAE8F,kBAEFuL,EAAKuZ,sBACDvZ,EAAKJ,WAAW1d,QAAQk/B,UACxBphB,EAAKJ,WAAW1d,QAAQk/B,QAAU,KAClCphB,EAAKqhB,iBAAmBrhB,EAAKJ,WAAW1d,QAAQie,SAChDH,EAAKJ,WAAWO,SAASH,EAAKJ,WAAW1d,QAAQie,aAG1Dq2B,EAAa,SAAU7nC,GACtBqR,EAAK6D,QAAQ/I,IACT/T,MAAO4H,EAAE5H,MACTrB,UAAWiJ,EAAEjJ,aAElBokB,EAAa9J,EAAK9d,QAAQ4nB,UAIjC,IAHIA,SAAqBA,GAAWmO,MAAQ3zB,IAAUwlB,EAAWmO,KAAK7qB,QAAQ,cAC1E0c,GAAa,GAEbA,IAAe9J,EAAK9d,QAAQuoB,WAE5B,IADAtf,EAAQ0D,GAAcmR,EAAKjV,OAClB/F,EAAM,EAAGrF,EAASwL,EAAMxL,OAAQqF,EAAMrF,EAAQqF,IACnDuE,EAAO4B,EAAMjG,GAAGF,GACZuB,EAAQvB,GAAK8kB,cAAe,GAAUvjB,EAAQvB,GAAKY,UAAYW,EAAQvB,GAAK+B,QAASwC,EAAKxF,KAAK,QAAUpD,GAAMy6B,GAAK,WACpHjM,EAAa5lB,EAAKqJ,KAAK,mBACnBuc,GACAA,EAAWnO,UAEfmO,EAAa5lB,EAAKqJ,KAAK,yBACnBuc,GACAA,EAAWnO,UAEXs1B,EAAmB/vC,EAAQvB,GAAK8kB,WAChC5nB,EAAUpB,MAAWgpB,EAAYwsB,GACjC12B,WAAYI,EAAKJ,WACjB+Z,OAAQpzB,EAAQvB,GAAK20B,OACrBzoB,OAAQ3K,EAAQvB,GAAKkM,OACrBqkC,cAAeA,EACfliB,MAAO9sB,EAAQvB,GAAKquB,OAAS9sB,EAAQvB,GAAK+B,MAC1ChG,KAAMw1C,EACN5Y,KAAM6Y,EACN3pB,KAAM7M,EAAK6M,KACX+G,OAAQ+hB,IAERW,GAAoBA,EAAiBzrB,WACrC3oB,EAAQ2oB,SAAW/pB,IAAO,KAAUgpB,EAAWe,SAAUyrB,EAAiBzrB,WAE1EyrB,GAAoBA,EAAiB12B,aACrC1d,EAAQ2zC,aAAc,EACtB3zC,EAAQ4zC,YAAcQ,EAAiB12B,YAEvC02B,GAAoBA,EAAiB/S,MACrCh6B,EAAKktC,sBAAsBv0C,GAE3BqH,EAAKmtC,gBAAgBx0C,KAMzCy0C,WAAY,WAAA,GAKJpb,GACAnN,EACA7nB,EAAqCujB,EAAsC8sB,EAA8CjB,EAgBpHl2C,EACDo3C,EAAmB3lB,EAAkB4lB,EAA+CC,EAA0BtlC,EAAiB1K,EAM3HiwC,EAKAnsB,EAlCR7K,EAAO/e,IACX,IAAK+e,EAAKkV,gBAqBV,IAjBI9G,EAAWpO,EAAK9d,QAAQksB,SACxB7nB,EAAU6E,GAAY4U,EAAKzZ,SAAUujB,EAAa9J,EAAK9d,QAAQ4nB,WAAY8sB,EAAY52B,EAAKjV,MAAMvF,KAAK,iBAAkBmwC,EAAgB,SAAUhnC,GAC3IqR,EAAK6D,QAAQ,UACTte,OAAQoJ,EAAEpJ,OACVwB,MAAO4H,EAAE5H,QAEb4H,EAAE8F,kBAEFuL,EAAKuZ,sBACDvZ,EAAKJ,WAAW1d,QAAQk/B,UACxBphB,EAAKJ,WAAW1d,QAAQk/B,QAAU,KAClCphB,EAAKqhB,iBAAmBrhB,EAAKJ,WAAW1d,QAAQie,SAChDH,EAAKJ,WAAWO,SAASH,EAAKJ,WAAW1d,QAAQie,aAIjElf,KAAKg2C,cAAch2C,KAAK2e,WAAWqO,QAAQtuB,QAClCF,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAMhC,GALuByxB,EAAM3qB,EAAQ9G,GAAIq3C,EAAY92B,EAAK9d,QAAQ4nB,WAAWgtB,UAAWC,GAAmB,EAAOtlC,EAAKhT,EAAE,SAAUsI,EAAQmqB,EAAInqB,MAC3ImqB,EAAIrqB,QACJ4K,EAAGhL,OAEPmwC,EAAUxlC,OAAOK,GACb1K,GAASmqB,EAAIpH,cAAe,EAAO,CAUnC,GATIktB,EAAc9lB,EAAIpH,YAAcoH,EAAIpH,WAAWvgB,SACnDstC,EAAoB72B,EAAK9d,QAAQ0d,WAC7Bi3B,YAA6Bj+B,MAC7Bi+B,EAAoB72B,EAAK9d,QAAQ0d,WAAW1d,SAE5C2oB,EAAW/pB,IAAO,KAAUgpB,EAAWe,UACvCqG,EAAIpH,YACJhpB,IAAO,EAAM+pB,EAAUqG,EAAIpH,WAAWe,UAEtCmsB,EAAY/U,WAAY,EAAO,CAC/BxwB,EAAGpB,KAAK,SACR,UAEA2mC,EAAYp3B,aACZi3B,EAAoBG,EAAYp3B,WAChCm3B,GAAmB,GAEnB7lB,EAAIpH,YAAcoH,EAAIpH,WAAWgtB,YACjCA,EAAY5lB,EAAIpH,WAAWgtB,WAE/Bvb,GACI30B,OAAQsqB,EACRtR,WAAYI,EAAKJ,WACjBi3B,kBAAmBA,EACnBE,iBAAkBA,EAClBhwC,MAAOA,EACP8jB,SAAUA,EACV8O,OAAQzI,EAAIyI,OACZgC,SAAUqb,EAAYrb,SACtBub,MAAOF,EAAYE,MACnBC,WAAYH,EAAYG,WACxBC,mBAAoBJ,EAAYI,mBAChCC,UAAWL,EAAYK,UACvBC,cAAeN,EAAYM,cAC3BhW,SAAU0V,EAAY1V,SACtBwV,UAAWA,EACXS,cAAeP,EAAYO,cAC3B3jB,OAAQ+hB,GAERvnB,IACAmN,EAASnN,SAAWA,GAExB3vB,EAAE,WAAWsF,KAAKpD,GAAMoD,KAAK,SAAUgD,GAAO5B,SAASsM,GAAI+lC,gBAAgBjc,OAE3E9pB,GAAGpB,KAAK,WAIpBonC,UAAW,WAAA,GAC+C7wC,GAAQ8wC,EAAgBnuC,EAQtE4B,EACKnG,EAASrF,EATlBqgB,EAAO/e,KAAMsF,EAAU6E,GAAY4U,EAAKzZ,SAAwCwjB,EAAW/J,EAAK9d,QAAQ6nB,SAAU2rB,EAAc,SAAU/mC,GAClIqR,EAAK6D,QAAQ,QAAUxkB,KAAMsP,EAAEtP,OAC/BsP,EAAE8F,iBAEFuL,EAAKuZ,sBAGjB,IAAIxP,EAAU,CAEV,IADI5e,EAAQ0D,GAAcmR,EAAKjV,OACtB/F,EAAM,EAAGrF,EAASwL,EAAMxL,OAAQqF,EAAMrF,EAAQqF,IACnD4B,EAASL,EAAQvB,GACb4B,EAAOmjB,YAAa,IAAUnjB,EAAOhB,SAAWgB,EAAOG,QACvDwC,EAAO4B,EAAMjG,GAAGF,GAChB0yC,EAAiBnuC,EAAKqJ,KAAK,qBACvB8kC,GACAA,EAAe12B,UAEnBzX,EAAKxF,KAAK,QAAUpD,GAAMy6B,GAAK,QAASx0B,EAAOG,OAAO4wC,kBAAkB72C,MAAWipB,EAAUnjB,EAAOmjB,UAChGnK,WAAYI,EAAKJ,WACjBgkB,MAAM,EACNr+B,OAAQ,yBACRquB,OAAQ8hB,KAIpBvqC,GAAQ,OAGhBsc,SAAU,SAAUlhB,GAAV,GAC+BC,GAAmCs/B,EAqBhE8R,EArBJ53B,EAAO/e,KAAMmP,EAAQ4P,EAAK5P,MAAgBpD,EAAOoD,EAAM5K,KAAK,OAAoBgK,EAAawQ,EAAKnX,QAAQrD,KAAK,YAAaoa,EAAaI,EAAK9d,QAAQ0d,UAoB1J,IAnBArZ,EAAUA,EAAQ5G,OAAS4G,EAAUhF,GAAI6O,EAAM5K,KAAK,gDAAiD,SAAUiM,EAAIzM,GAC/GyM,EAAKhT,EAAEgT,EACP,IAAIsY,GAAWtY,EAAG1N,KAAKpD,GAAMoD,KAAK,aAAc+lB,EAAarY,EAAG1N,KAAKpD,GAAMoD,KAAK,eAAgBm3B,EAAOzpB,EAAG1N,KAAKpD,GAAMoD,KAAK,SAAU8Q,EAAYpD,EAAG1N,KAAKpD,GAAMoD,KAAK,cAAegD,EAAQ0K,EAAG1N,KAAKpD,GAAMoD,KAAK,UAAWsvB,EAAQ5hB,EAAG1N,KAAKpD,GAAMoD,KAAK,UAAW2xB,EAAOjkB,EAAG1N,KAAKpD,GAAMoD,KAAK,QAIxR,OAHKgD,KACDA,EAAQ0K,EAAG9S,OAAOE,QAAQ,gBAAiB,MAG3CkI,MAAOA,EACPm0B,KAAMA,EACN7H,MAAOA,EACPtJ,SAAuB,UAAbA,EACVD,WAA2B,UAAfA,EACZjV,UAAyB,UAAdA,EACX6gB,KAAMA,EACNiG,SAAUlqB,EAAG1N,KAAKpD,GAAMoD,KAAK,aAC7BjE,MAAOkN,EAAK9H,GAAGF,GAAKN,IAAI,YAGhC8B,IAAYwZ,EAAK5P,MAAM5K,KAAK,YAAY7F,OAAS,KAAOigB,IAAeA,EAAWuO,YAC9EnO,EAAK9d,QAAQwnB,WAAY,CAIzB,GAHIkuB,EAAiBrxC,EACrBu/B,EAAan8B,EAAcpD,GAC3BA,EAAUsD,EAAiBtD,GACvBu/B,EAAWnmC,OAAS,GAAwB,IAAnB4G,EAAQ5G,OACjC,KAAUuJ,OAAM,iDAEpBoI,IAAqB0O,EAAKnX,QAAQrD,KAAK,oBAAqBoyC,GAC5DrxC,EAAUu/B,EAAW38B,OAAO5C,GAE5BiJ,EAAW7P,QAAU4G,EAAQ5G,QAC7BqgB,EAAK63B,iBAAiBtxC,EAASiJ,EAAWiS,SAE9CzB,EAAKzZ,QAAUD,EAAiBC,EAASC,GACrC/H,EAAEsK,KAAKqC,GAAY4U,EAAKzZ,SAAU,SAAU2qB,GACxC,MAAOA,GAAIjc,aACZtV,SACHqgB,EAAK+L,gBACL/L,EAAK6e,oBAAqB,EAC1B7e,EAAKnJ,QAAQ3Q,GAAGC,GAAQC,GAAI,cAAgB8P,GAAe7P,GAAM2Z,EAAK83B,eAAgB93B,IACtFA,EAAKnJ,QAAQ3Q,GAAGC,GAAQC,GAAI,cAAgB8P,GAAe7P,GAAM2Z,EAAK+3B,qBAAsB/3B,KAEhGA,EAAKg4B,oBAAoBh4B,EAAKzZ,UAElCyxC,oBAAqB,SAAUzxC,GAAV,GAGbK,GACKnH,EAHLugB,EAAO/e,KACPtB,EAAS4G,EAAQ5G,MAErB,KAASF,EAAI,EAAGA,EAAIE,EAAQF,IACxBmH,EAASL,EAAQ9G,GACbmH,EAAOgZ,YACPI,EAAKi4B,uBAAuBrxC,IAIxCqxC,uBAAwB,SAAUrxC,GAAV,GAChBoZ,GAAO/e,KACPk9B,EAAU1/B,EAAEw/B,UAChBje,GAAKk4B,qBAAsB,EAC3BtxC,EAAOgZ,WAAahH,GAAWgO,OAAOhgB,EAAOgZ,YACxCI,EAAK0H,sBACN1H,EAAK0H,wBAET1H,EAAK0H,oBAAoBtoB,KAAK++B,GAC9Bv3B,EAAOgZ,WAAWqJ,QAAQpB,KAAK,WAC3B,GAAIjV,GAAOhM,EAAOgZ,WAAWhN,MAC7BhM,GAAO+yB,OAAS/mB,EAAKrR,IAAI,SAAUsQ,GAC/B,OACIvQ,MAAOuQ,EAAKjL,EAAOuxC,gBACnBx5C,KAAMkT,EAAKjL,EAAO0wC,kBAG1BnZ,EAAQC,aAGhByZ,iBAAkB,SAAUtxC,EAASsoB,GAAnB,GAIVhjB,GACAvE,EACK7H,CALT,IAAK8G,EAAQ5G,OAAb,CAKA,IAFIkM,EAAMgjB,EAAGrpB,KAAK,gDAET/F,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAChC6H,EAAKuE,EAAI3G,GAAGzF,GAAGsE,KAAK,MAChBuD,IACAf,EAAQ9G,GAAG0H,iBAAmBrG,GAAOyF,EAAQ9G,GAAG0H,kBAAoBG,GAAIA,IAGhFrG,MAAK42C,iBAAiBppC,GAAalI,GAAUsoB,EAAG5e,UAEpD8nC,qBAAsB,SAAUppC,GAC5B,GAAIqR,GAAO/e,KAAMm3C,EAAW35C,EAAEkQ,EAAE1E,QAASggC,EAAUmO,EAASlO,KAAK,WAAYmO,EAAaD,EAAS7oC,QAAQ,oBAAoB+oC,cAC3Ht4B,KAASq4B,IAGTpO,EACAjqB,EAAK8e,OAAOuZ,EAAWvlC,SAEvBkN,EAAK+pB,mBAGb+N,eAAgB,SAAUnpC,GACtB,GAAIqR,GAAO/e,KAAMuK,EAAM/M,EAAEkQ,EAAE1E,QAAQsF,QAAQ,MAAOgpC,GAAe/sC,EAAIF,SAASyQ,GAC1EiE,KAASxU,EAAI+D,QAAQ,oBAAoB+oC,iBAGzCC,EACAv4B,EAAK8e,OAAOtzB,GAEZwU,EAAKykB,mBAAmBj5B,KAGhC2d,QAAS,WACL,GAAI8E,GAAQhtB,KAAK2e,WAAWqO,OAC5B,OAAOA,GAAQA,EAAMtuB,OAAS,GAElC64C,MAAO,SAAUpuB,EAAa7jB,EAASkyC,EAAKC,GAArC,GACoH1zC,GAA8B22B,EAG9I/0B,EAAQs0B,EAEXn0B,EALAiZ,EAAO/e,KAAMs6B,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,kBAAmBkd,EAAYpd,EAASod,UAAgBh5C,EAAS4G,EAAQ5G,OAAkByS,GACvJkpB,WACAr3B,MAAO,GACM+M,EAAagP,EAAKqP,cAAe7c,KAAgBpI,EAAS4V,EAAKmJ,UAAWpT,EAAciK,EAAK9d,QAAQ6T,YACtH6iC,EAAYj4C,GAAMoD,KAAK,SAEvB80C,EAAoB,EACxB,KAAKzuB,EAAa,CAmBd,IAlBAA,EAAc,MACVquB,GACAjmC,EAAUpT,KAAK,SAEnBoT,EAAUpT,KAAK,gBACXoT,EAAU7S,SACVyqB,GAAe,WAAa5X,EAAUlT,KAAK,KAAO,KAElDK,IACAyqB,GAAe,IAAMzpB,GAAMoD,KAAK,OAAS,OAASpD,GAAMm4C,KAAK,MAAOvd,EAASod,WAAa,MAE9FvuB,GAAe,eACXhgB,EAAS,IAAMsuC,IACftuB,GAAepmB,EAAWoG,IAE1B4G,IACAoZ,GAAe,8FAAgG7S,GAAY,KAAOO,GAAS,6BAE1I9S,EAAM,EAAGA,EAAMrF,EAAQqF,IACxB4B,EAASL,EAAQvB,GACjB22B,EAAW/0B,EAAO+0B,SAClBT,QAAcS,GACd50B,EAAQH,EAAOG,MACXiZ,EAAK6X,cAAgBla,IAAU5W,IAC/BH,EAAOxC,WAAawC,EAAOxC,eACvB4b,EAAKwW,gBACL5vB,EAAOxC,WAAWw0C,GAAa7xC,GAEnC8xC,EAAoB74B,EAAK+4B,mBAAmBhyC,EAAO4xC,GACnD/xC,EAAOxC,WAAW,SAAWwC,EAAOxC,WAAW,UAAY,GACvDwC,EAAOxC,WAAW,SAASgJ,QAAQyrC,GAAqB,IACxDjyC,EAAOxC,WAAW,UAAYy0C,IAGlCjyC,EAAO+I,SAAW/I,EAAO+I,QAAU,GAAKmB,GAAelK,EAAOxC,YAC9DwC,EAAOxC,WAAa6D,GAAkBrB,EAAOxC,aACrCwC,EAAO+I,SAAW/I,EAAOC,SACjCD,EAAOxC,WAAa6C,GAAeL,EAAOxC,aAE1CwC,EAAOhB,UACPgB,EAAOxC,WAAawC,EAAOxC,eACe,IAA/BwC,EAAOxC,WAAW,SACzBwC,EAAOxC,WAAW,UAAY,kBAE9BwC,EAAOxC,WAAW,SAAW,kBAGrCgmB,GAAe,MAAQjmB,EAAoByC,EAAOxC,YAC9C2R,IACAqU,GAAe,sBAAyBxjB,EAAOO,iBAAiBG,GAAK,KAErEV,EAAO+I,UACH/I,EAAO+I,QAAU,IACjBya,GAAe,IAAMzpB,GAAMoD,KAAK,YAEpCqmB,GAAe,aAAgBxjB,EAAO+I,QAAU,KAEpDya,GAAe,oBACfA,GAAepK,EAAK4b,UAAUh1B,EAAQwL,GACtCgY,GAAe,OAEnBA,IAAe,QAGnB,MADAA,GAAczpB,GAAMg7B,SAASvR,EAAamR,GACtCnpB,EAAMnO,MAAQ,EACPoC,GAAM+jB,EAAahY,EAAMkpB,SAE7BlR,GAEX2uB,mBAAoB,SAAUhyC,EAAO4xC,GACjC,GAAIK,EACJ,OAAIjyC,IAAS4xC,GACTK,EAAiC,MAApBjyC,EAAMkyC,OAAO,GAAat4C,GAAMm4C,KAAK/xC,EAAO4xC,EAAY,gBAAkBA,EAAY,iBAAoB5xC,EAAQ,KACxH,MAAQ4xC,EAAY,OAASA,EAAY,aAAeA,EAAY,mBAAqBK,EAAa,6BAE1G,IAEXE,gBAAiB,SAAUtyC,GACvB,GAAIoZ,GAAO/e,KAAMs6B,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,kBAAmBE,EAAW/0B,EAAOuyC,eAAgBje,QAAcS,GAAUh9B,EAAOiI,EAAOysB,QAAUrT,EAAK9d,QAAQioB,aAAejY,GAAWtL,EAAOysB,OAASzsB,EAAOysB,QAAUzsB,EAAOG,OAAS,EAMjQ,OALIm0B,KAAS5d,GACT3e,EAAOgC,GAAMg7B,SAASA,EAAUJ,OACzBL,IAAS52B,KAChB3F,EAAOg9B,GAEJh9B,GAEXi9B,UAAW,SAAUh1B,EAAQwL,GACzB,GAAoLpN,GAAKrF,EAArLqgB,EAAO/e,KAAMs6B,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,kBAAmBE,EAAW/0B,EAAO+0B,SAAUgd,EAAYpd,EAASod,UAAW5xC,EAAQH,EAAOG,MAAOsJ,EAAO,GAAiBa,EAAStK,EAAOsK,OAAQgqB,QAAcS,GAAU5pB,EAAenL,EAAO+yB,MACvQ,IAAI/yB,EAAOhB,QAAS,CAChB,GAAIE,GAAQc,EAAOhB,SAAU,CACzB,IAAKZ,EAAM,EAAGrF,EAASiH,EAAOhB,QAAQjG,OAAQqF,EAAMrF,EAAQqF,IAEpDqL,GADAzJ,EAAOhB,QAAQZ,GAAK6C,QACZlH,GAAMuQ,OAAO,2BAAgCtK,EAAOhB,QAAQZ,GAAK6C,QAASmY,EAAKid,cAAcr2B,EAAOhB,QAAQZ,IAAMnG,QAAQ4f,GAAoB,OAAO5f,QAAQ,MAAO,QAEpKmhB,EAAKid,cAAcr2B,EAAOhB,QAAQZ,IAAMnG,QAAQ4f,GAAoB,MAGpF,OAAOpO,GAEX,MAAO2P,GAAKid,cAAcr2B,EAAOhB,SAAS/G,QAAQ4f,GAAoB,OAE1E,MAAI7X,GAAOqO,WACA4J,IAEXxO,GAAQ2P,EAAKo5B,wBAAwBryC,EAAO4xC;AACxCzd,IAAS5d,IACTlL,EAAMkpB,QAAQ,OAASlpB,EAAMnO,OAAS03B,EACtCtrB,GAAQ,cAAgB+B,EAAMnO,MAAQ,IAAM00C,EAAY,KACxDvmC,EAAMnO,SACCi3B,IAAS52B,GAChB+L,GAAQsrB,EACD5pB,GAAgBA,EAAapS,QAAUoG,GAAcgM,EAAa,KAAO,SAAWA,GAAa,IAAMhL,GAC9GsJ,GAAQ,WAAa1P,GAAM04C,UAAU1nC,GAAgBI,IAAelT,QAAQ4f,GAAoB,OAAS,IACzGpO,GAAQ,cACHkrB,EAAS+d,eACVjpC,GAAQsoC,EAAY,KAExBtoC,GAAQtJ,EAAQ,KAChBsJ,GAAQ,0BAERA,GAAQzJ,EAAOJ,QAAU,KAAO,KAC5B0K,IACAb,GAAQ,iBAAmBa,EAAOrS,QAAQ2f,GAAc,QAAU,MAElEzX,GACAA,EAAQpG,GAAMm4C,KAAK/xC,EAAO4xC,GAC1BtoC,GAAQtJ,EAAQ,aAAiBA,GAEjCsJ,GAAQ,KAERa,IACAb,GAAQ,KAEZA,GAAQ,KAELA,IAEX+oC,wBAAyB,SAAUryC,EAAO4xC,GACtC,GAAIK,EACJ,OAAIjyC,IAAS4xC,GACTK,EAAiC,MAApBjyC,EAAMkyC,OAAO,GAAat4C,GAAMm4C,KAAK/xC,EAAO4xC,EAAY,gBAAkBA,EAAY,iBAAoB5xC,EAAQ,KACxH,MAAQ4xC,EAAY,OAASA,EAAY,aAAeA,EAAY,mBAAqBK,EAAa,+CAE1G,IAEXO,aAAc,SAAUhzC,GAAV,GAcNizC,GAeK/5C,EAQQo2B,EApCb7V,EAAO/e,KACPw4C,EAASh7C,EAAE8C,IAAIgF,EAAS,SAAUmzC,GAClC,MAAOA,GAAE7yC,OAAS,EAAIoG,SAASysC,EAAE55C,MAAO,MAExCwU,EAAsC3T,GAAM2T,WAA/B0L,EAAK4J,kBAAqC5J,EAAK1a,QAAQE,KAAK,+BAAmDwa,EAAK1a,SACjIgO,EAAa2F,GAAW+G,EAAK1a,SAC7Bq0C,EAAc5sC,EAAUxG,GACxBqzC,KACAC,EAAe,EACfC,EAAc,EACd3J,EAAgB,EAChBnrC,EAAM,EACN+0C,EAAuB,CAE3B,KAAK/0C,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CAEvC,GADAw0C,EAAex0C,EAAMy0C,EAAO95C,OAAS,EAAI85C,EAAOz0C,EAAM,GAAK,IACvD+0C,EAAuBN,EAAOz0C,GAAO,EAAIw0C,EAAellC,GAKrD,CACHulC,EAAe,EAAI1J,CACnB,OANIsJ,EAAOz0C,IACPmrC,IAEJ4J,GAAwBN,EAAOz0C,GAQvC,IAFAmrC,EAAgB,EAChB4J,EAAuB,EACdt6C,EAAI8G,EAAQ5G,OAAS,EAAGF,GAAK,EAAGA,IAAK,CAC1C,KAAIs6C,EAAuB,EAAIN,EAAOh6C,GAAKk6C,EAAcrmC,EAAagB,GAK/D,CAEH,IADAwlC,EAAc,EAAI3J,EACTta,EAAI7wB,EAAK6wB,GAAKp2B,EAAGo2B,IAClBtvB,EAAQsvB,GAAGnvB,SAGfkzC,EAAax6C,KAAKmH,EAAQsvB,IACtBtvB,EAAQsvB,GAAGlmB,eACJpJ,GAAQsvB,GAAGlmB,QAG1BiqC,GAAa,GAAGjqC,QAAUkqC,EAC1BD,EAAaA,EAAaj6C,OAAS,GAAGgQ,QAAUmqC,CAChD,OAjBIL,EAAOh6C,IACP0wC,IAEJ4J,GAAwBN,EAAOh6C,GAqBvC,MAJIm6C,GAAa,GAAG/yC,QAChB+yC,EAAa,GAAGjqC,UAEpBqQ,EAAKg6B,YAAcJ,EACZA,GAEXrxB,WAAY,WACR,GAAIvI,GAAO/e,KAAMiB,EAAU8d,EAAK9d,QAAS0d,EAAaI,EAAKJ,WAAYxV,EAASwV,EAAWqO,QAASR,EAASzN,EAAKyN,QAAUzN,EAAKnJ,QAAQrR,KAAK,kBAAmBwN,EAAa4M,EAAWsO,YAAa+rB,EAAc7uC,GAAY4U,EAAKzZ,SAAU2zC,EAAgB9uC,GAAYzB,EAAcqW,EAAKzZ,UAAWmjC,EAAYxnC,EAAQwnB,WAAate,GAAYvB,EAAiBmW,EAAKzZ,UAAY0zC,EAAa1zC,GAAWyZ,EAAKwW,mBAAqBjwB,QAAUyZ,EAAKu5B,aAAa7P,GAAaA,EAAWyQ,EAAyCpxC,GAAKD,EAAeoxC,GAAgB,SAAUtzC,EAAQqF,GACrjB,MAAOrF,GAAO8vB,2BAAuC,IAAVzqB,IAC3CmuC,EAA4CrxC,GAAKD,EAAevC,GAAU,SAAUK,GACpF,MAAOA,GAAO8vB,2BAEtB,IAAIx0B,EAAQwnB,YAAcwwB,EAAcv6C,OAAQ,CAC5C,GAAIuC,EAAQkoB,aAAeloB,EAAQmoB,eAC/B,KAAUnhB,OAAM,+DAEpB8W,GAAKoK,YAAcpK,EAAKw4B,MAAMt2C,EAAQkoB,YAAa7jB,GAAS,GAAO,GACnEyZ,EAAKqK,eAAiBrK,EAAKw4B,MAAMt2C,EAAQmoB,gBAAkBnoB,EAAQkoB,YAAa7jB,GAAS,GAAM,GAC/FyZ,EAAKkN,kBAAoBlN,EAAKw4B,MAAMt2C,EAAQkoB,YAAa8vB,GACzDl6B,EAAKmN,qBAAuBnN,EAAKw4B,MAAMt2C,EAAQmoB,gBAAkBnoB,EAAQkoB,YAAa8vB,GAAe,OAErGl6B,GAAKoK,YAAcpK,EAAKw4B,MAAMt2C,EAAQkoB,YAAa7jB,GACnDyZ,EAAKqK,eAAiBrK,EAAKw4B,MAAMt2C,EAAQmoB,gBAAkBnoB,EAAQkoB,YAAa7jB,GAAS,EAEzFyZ,GAAKqP,gBACLrP,EAAK0K,eAAiB1K,EAAKq6B,YAAYn4C,EAAQwoB,gBAAkB,MAEjE1K,EAAKkJ,SAAW3P,GAAcvG,KAAgBuG,GAAcvG,KAAgBya,EAAO9tB,QAAUoJ,GAAKkxC,EAAa,SAAUrzC,GACrH,MAAOA,GAAOwmB,iBACfztB,UACHqgB,EAAKoN,eAAiBpN,EAAKs6B,YAAYL,EAAajnC,EAAY,iBAAkB,sBAElF5I,GAAUrB,GAAKkxC,EAAa,SAAUrzC,GAClC,MAAOA,GAAOymB,sBACf1tB,SACHqT,EAAavU,EAAE8C,IAAI6I,EAAQ,SAAUmwC,GACjC,MAAOA,GAAEvnC,aAEbgN,EAAKqN,oBAAsBrN,EAAKs6B,YAAY/zC,EAASyM,EAAY,sBAAuB,iBAAkBknC,EAAcv6C,QACpHuC,EAAQwnB,YAAcwwB,EAAcv6C,SACpCqgB,EAAKsN,0BAA4BtN,EAAKs6B,YAAYJ,EAAelnC,EAAY,sBAAuB,oBAGxG5I,IAAW+vC,EAAuCx6C,QAAUy6C,EAA0Cz6C,SACtGqT,EAAavU,EAAE8C,IAAI6I,EAAQ,SAAUmwC,GACjC,MAAOA,GAAEvnC,aAEbgN,EAAK0W,0BAA4B1W,EAAKw6B,iBAAiB1xC,EAAevC,GAAUyM,EAAY,4BAA6B,iBAAkBknC,EAAcv6C,OAAQy6C,GAC7Jl4C,EAAQwnB,YAAcwwB,EAAcv6C,SACpCqgB,EAAKy6B,gCAAkCz6B,EAAKw6B,iBAAiB1xC,EAAeoxC,GAAgBlnC,EAAY,4BAA6B,iBAAkB,EAAGmnC,MAG9Jn6B,EAAK0W,0BAA4B,KACjC1W,EAAKy6B,gCAAkC,MAEvCz6B,EAAK9d,QAAQooB,YACbtK,EAAKuN,kBAAoBvN,EAAK06B,mBAGtCA,eAAgB,WAAA,GAUR/e,GAEAT,EACAQ,EAZA7kB,EAAU,6BACV8jC,EAAkB,sDAClBC,EAA+B35C,KAAKiB,QAAQwnB,aAAezoB,KAAK4V,QAAQ,GAAG3W,MAAMH,OAAS,0CAA4C,GACtIqS,GACAkpB,WACAr3B,MAAO,GAEPs3B,EAAW98B,EAAEqC,UAAWH,GAAM66B,SAAUv6B,KAAKiB,QAAQu5B,kBACrDkd,EAAYpd,EAASod,UAErBtoC,EAAO,EAoBX,OAhBIsrB,GADA16B,KAAKiB,QAAQooB,UAAUqR,SACZ16B,KAAKiB,QAAQooB,UAAUqR,SAEvBh7B,GAAMuQ,OAAOypC,EAAiB15C,KAAKiB,QAAQ2oB,SAASP,UAAWswB,GAE9E1f,QAAcS,GACD,aAATT,GACA9oB,EAAMkpB,QAAQ,OAASlpB,EAAMnO,OAAS03B,EACtCtrB,GAAQ,cAAgB+B,EAAMnO,MAAQ,IAAM00C,EAAY,KACxDvmC,EAAMnO,SACU,WAATi3B,IACP7qB,GAAQsrB,GAEZD,EAAO/6B,GAAMg7B,SAASh7B,GAAMuQ,OAAO2F,EAASoF,GAAgB5L,GAAOkrB,GAC/DnpB,EAAMnO,MAAQ,IACdy3B,EAAOj9B,EAAE4H,MAAMq1B,EAAMtpB,EAAMkpB,UAExBI,GAEX4e,YAAa,SAAU/zC,EAASyM,EAAY6nC,EAAcC,EAAUpC,GAChE,GAAkI1zC,GAAKrF,EAAQg8B,EAAUT,EAA8Ht0B,EAAnRoZ,EAAO/e,KAAMs6B,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,kBAAmBkd,EAAYpd,EAASod,UAAWtoC,EAAO,GAAiCirB,KAAcr3B,EAAQ,EAAG82C,KAAY3wC,EAAS4V,EAAKmJ,UAAW6xB,EAAYh7B,EAAKJ,WAAWq7B,iBAAiBjoC,EAQ1Q,KAPA3C,GAAQ,cAAgByqC,EAAW,KAC/B1wC,EAAS,IAAMsuC,IACfroC,GAAQrM,EAAWoG,IAEnB4V,EAAKqP,gBACLhf,GAAQ,4CAEPrL,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD4B,EAASL,EAAQvB,GACjB22B,EAAW/0B,EAAOi0C,GAClB3f,QAAcS,GACdtrB,GAAQ,MAAQlM,EAAoByC,EAAOM,kBAAoB,IAC3Dy0B,GACIT,IAAS5d,KACTy9B,EAAQC,EAAUp0C,EAAOG,OAASjG,MAAWy6B,GAAYod,UAAWA,EAAY,KAAQ/xC,EAAOG,MAAQ,UACvG40B,EAAWh7B,GAAMg7B,SAASA,EAAUof,IAExCzf,EAAQ,OAASr3B,GAAS03B,EAC1BtrB,GAAQ,cAAgBpM,EAAQ,IAAM00C,EAAY,KAClD10C,KAEAoM,GAAQ,SAEZA,GAAQ,OAIZ,OAFAA,IAAQ,QACRA,EAAO1P,GAAMg7B,SAAStrB,EAAMkrB,GACxBt3B,EAAQ,EACDoC,GAAMgK,EAAMirB,GAEhBjrB,GAEXmqC,iBAAkB,SAAUj0C,EAASyM,EAAY6nC,EAAcC,EAAUpC,EAAgBjiB,GACrF,GAAkIzxB,GAAKrF,EAAQg8B,EAAUT,EAAqGt0B,EAAoIgjC,EAA9X5pB,EAAO/e,KAAMs6B,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,kBAAmBkd,EAAYpd,EAASod,UAAWtoC,EAAO,GAAiCirB,KAAcr3B,EAAQ,EAAG82C,KAAYC,EAAYh7B,EAAKJ,WAAWq7B,iBAAiBjoC,GAAqBsE,EAAsBmf,EAAiC92B,OAAS8M,GAAQgqB,EAAiC,GAAIlwB,KAQnX,IAPA8J,GAAQ,yBAA2ByqC,EAAW,KACzCpC,IACDroC,GAAQ,4FAER2P,EAAKqP,gBACLhf,GAAQ,4CAERiH,EAAsB,EAEtB,MADAjH,IAASqoC,EAAoD,GAAnCrhC,GAAiB9Q,EAAQ5G,QACnD,CAEJ,IAAI2X,EAAsBwG,IAAmB2Y,EAAiC92B,QAAU,IAAM+4C,EAE1F,MADAroC,IAASqoC,EAAoD,GAAnCrhC,GAAiB9Q,EAAQ5G,QAC5CgB,GAAMg7B,SAAStrB,EAAMkrB,EAQhC,KANIjkB,EAAsBwG,IACtBxG,EAAuBohC,EAAqB,EAAJ,EACxCroC,GAASqoC,EAAyD,GAAxCrhC,GAAiBC,IAE3CjH,GAASqoC,EAAyDjhC,GAA8BH,GAAtED,GAAiBC,GAE1CtS,EAAMsS,EAAqB3X,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACnE4B,EAASL,EAAQvB,GACjB22B,EAAW/0B,EAAOi0C,GAClB3f,QAAcS,GACV/0B,EAAOwH,QACPw7B,EAAiChjC,EAAOgjC,gCAAkC,GACrEA,IACDA,EAAiChjC,EAAOgjC,+BAAiC,gCAAkCjpC,GAAMyG,QAErHiJ,GAAQ,cAAiBkM,GAAoB,IAAMqtB,EAAiC,aAAiBhjC,EAAOqiC,aAAe,IAAM,MAEjI54B,GAAQ,OAERsrB,GACIT,IAAS5d,KACTy9B,EAAQC,EAAUp0C,EAAOG,OAASjG,MAAWy6B,GAAYod,UAAWA,EAAY,KAAQ/xC,EAAOG,MAAQ,UACvG40B,EAAWh7B,GAAMg7B,SAASA,EAAUof,IAExCzf,EAAQ,OAASr3B,GAAS03B,EAC1BtrB,GAAQ,cAAgBpM,EAAQ,IAAM00C,EAAY,KAClD10C,KAEAoM,GAAQ,SAEZA,GAAQ,OAIZ,OAFAA,IAAQ,QACRA,EAAO1P,GAAMg7B,SAAStrB,EAAMkrB,GACxBt3B,EAAQ,EACDoC,GAAMgK,EAAMirB,GAEhBjrB,GAEXgqC,YAAa,SAAU1e,GACnB,GAAI3b,GAAO/e,KAAMoP,EAAO,GAAIkrB,EAAWz6B,MAAWH,GAAM66B,SAAUxb,EAAK9d,QAAQu5B,kBAAmBkd,EAAYpd,EAASod,UAAWuC,KAA8BC,EAAwB,EAAG/wC,EAAS4V,EAAKmJ,UAAWxR,EAAU7O,EAAesC,GAAY4U,EAAKzZ,UAAU5G,OAAQu7B,QAAcS,EAe9R,OAdAtrB,IAAQ,4BACJjG,EAAS,IACTiG,GAAQrM,EAAWoG,IAEvBiG,GAAQ,+DAAiEsH,EAAU,aAAeA,EAAU,IAAM,IAAM,IACpHujB,IAAS5d,IACT49B,EAAwB,OAASC,GAAyBxf,EAC1DtrB,GAAQ,cAAgB8qC,EAAwB,IAAMxC,EAAY,KAClEwC,KAEA9qC,GAAQsrB,EAEZtrB,GAAQ,aACRA,EAAO1P,GAAMg7B,SAAStrB,EAAMkrB,GACxB4f,EAAwB,EACjB90C,GAAMgK,EAAM6qC,GAEhB7qC,GAEXgf,YAAa,WACT,GAAIrP,GAAO/e,IACX,OAAuC,QAAhC+e,EAAK9d,QAAQwoB,iBAA4B1K,EAAKsH,QAAQ3M,SAAmBhb,QAEpFu1B,cAAe,WAAA,GACPpL,GAAa7oB,KAAKiB,QAAQ4nB,WAC1BsxB,EAAetxB,SAAqBA,GAAWmO,MAAQ3zB,IAAUwlB,EAAWmO,KAAK7qB,QAAQ,WACzF7G,EAAUtF,KAAKsF,QACf80C,EAA0B58C,EAAEsK,KAAKxC,EAAS,SAAU2qB,GACpD,MAAOA,GAAIpH,cAAe,GAK9B,OAHIvjB,GAAQ5G,QAAU07C,EAAwB17C,QAAU4G,EAAQ5G,SAC5Dy7C,GAAe,GAEZA,GAEXzyB,SAAU,WACN,GAAI3I,GAAO/e,IACX,IAAI+e,EAAK9d,QAAQwnB,YAAc1J,EAAKqP,eAAiB1lB,EAAcqW,EAAKzZ,SAAS5G,OAC7E,KAAUuJ,OAAM,kEAEpB8W,GAAK5P,MAAMlK,GAAGC,GAAQC,GAAI,iEAAkE,SAAUuI,GAClG,GAAI0hB,GAAS5xB,EAAEwC,KAGf,OAFA+e,GAAKs7B,eAAejrB,GACpB1hB,EAAE8F,kBACK,KAGf6mC,eAAgB,SAAUjrB,EAAQkrB,GAC9B,GAAyJC,GAAiD5oC,EAAtMoN,EAAO/e,KAAMsI,EAAO8mB,EAAO9gB,QAAQ,uBAAwBksC,EAAYprB,EAAO/kB,SAAS,cAAeowC,EAAYrrB,EAAO9gB,QAAQ,mBAA+Bmb,EAAiB1K,EAAK0K,eAAsB1Z,EAAagP,EAAKqP,cAAessB,EAAgBF,EAAYjkC,GAAWM,GAAQ8jC,IAAiBH,CACjTprB,GAAOwrB,YAAY,cAAeJ,GAAWI,YAAY,eAAgBJ,GAAW13C,KAAKwT,GAAWokC,GACpGpyC,EAAKxF,KAAK,gBAAiB63C,GAC3BJ,EAAYE,EAAUzrC,OAClBe,IAAewqC,EAAUlwC,SAAS,kBAClCsH,EAAOoN,EAAKqb,SAASqgB,GACrBF,EAAY/8C,EAAEisB,EAAe9X,IAAOyW,SAASqyB,EAAUpwC,SAAS,SAAW,QAAU,IAAIZ,YAAYgxC,GACrG17B,EAAKiP,QAAQ,UAAW,WACpB,OACI7pB,SAAUo2C,EAAU35C,MACpB+Q,OAASyoB,SAAUzoB,OAG3BoN,EAAK6D,QAAQlJ,IACT+gC,UAAWA,EACXF,UAAWA,EACX5oC,KAAMA,EACNkpC,WAAYN,EAAUh2C,KAAK,qBAGnCwa,EAAK6D,QAAQ43B,EAAYngC,GAAeC,IACpCmgC,UAAWA,EACXF,UAAWA,IAEXD,EACAvjC,GAAUwjC,EAAWC,GAErBD,EAAUO,OAAON,IAGzBpgB,SAAU,SAAUxM,GAEhB,GADAA,EAAKpwB,EAAEowB,GAAI,IACNA,EACD,MAAO,KAEX,IAAyHgH,GAAGmmB,EAAxH1xC,EAAOrJ,KAAKkP,MAAM1F,WAAYwxC,EAAe,6CAA8Cj3C,EAAM6pB,EAAGqtB,eAExG,KADAF,EAAah3C,EACR6wB,EAAI,EAAGA,EAAI7wB,EAAK6wB,IACbomB,EAAa1pC,KAAKjI,EAAKurB,GAAGrjB,YAC1BwpC,GAGR,OAAO/6C,MAAK+sB,MAAMguB,IAEtBvN,UAAW,SAAU5f,EAAI0sB,GACrB,GAAIlrB,GAAS5xB,EAAEowB,GAAIrpB,KAAK,mBACpB6qB,GAAO1wB,QACPsB,KAAKq6C,eAAejrB,EAAQkrB,IAGpCnN,YAAa,SAAUvf,EAAI0sB,GACvB,GAAIlrB,GAAS5xB,EAAEowB,GAAIrpB,KAAK,qBACpB6qB,GAAO1wB,QACPsB,KAAKq6C,eAAejrB,EAAQkrB,IAGpCY,mBAAoB,SAAU51C,EAASuD,GAAnB,GACC9E,GAAKyM,EAAI9S,EAAiBgB,EAAQ0zB,EAA8GtsB,EAKzJkF,EALJ+T,EAAO/e,KAAqBoP,EAAO,GAAmBwa,EAAW7K,EAAK9d,QAAQ2oB,SAAU3gB,EAAQkB,GAAY4U,EAAKzZ,SAAU6D,EAAS4V,EAAKJ,WAAWqO,OACxJ,KAAKjpB,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjDyM,EAAKlL,EAAQvB,GAAK4B,QAAUL,EAAQvB,GACpCrG,EAAOqhB,EAAKk5B,gBAAgBznC,GAC5B1K,EAAQ,GACJkF,EAAQQ,GAAQgF,EAAIvH,GACpBuH,EAAGwD,YACH5E,GAAQ,kBAAsBlM,EAAoBsN,EAAGtK,kBACjD2C,IAAYvD,EAAQvB,GAAK2K,UACzBU,GAAQ,aAAgBvG,EAAU,KAElCmC,OACAoE,GAAQ1P,GAAMoD,KAAK,SAAW,KAAQkI,EAAQ,KAElDtN,EAAO8S,EAAG0nC,eAAiBx6C,EAAOgC,GAAMg7B,SAAS7c,QACjDzO,GAAQ,IAAM1R,EAAO,SACd8S,EAAG7L,SACVyK,GAAQ,kBAAsBlM,EAAoBsN,EAAGtK,kBACjD2C,IAAYvD,EAAQvB,GAAK2K,UACzBU,GAAQ,aAAgBvG,EAAU,KAElCmC,OACAoE,GAAQ1P,GAAMoD,KAAK,SAAW,KAAQkI,EAAQ,KAElDoE,GAAQ,IAAM1R,EAAO,UAEjB8S,EAAG1K,QACHA,EAAQpG,GAAMoD,KAAK,SAAW,KAAQ0N,EAAG1K,MAAQ,MAErDsJ,GAAQ,uCAA6CtJ,EACrDsJ,GAAQ,wBACJvG,IAAYvD,EAAQvB,GAAK2K,UACzBU,GAAQ,aAAgBvG,EAAU,KAElCvD,EAAQvB,GAAK2K,QAAU,GACvBU,GAAQ,aAAe9J,EAAQvB,GAAK2K,QAAU9C,EAAuB4E,EAAGlL,UAAY,KACpF8J,GAAQ1P,GAAMoD,KAAK,WAAa,KAAQwC,EAAQvB,GAAK2K,QAAU,KAC/B,IAAzBpJ,EAAQvB,GAAK2K,UACpBU,GAAQ1P,GAAMoD,KAAK,WAAa,KAAQwC,EAAQvB,GAAK2K,QAAU,KAE/D8B,EAAG4hB,QACHA,EAAQ5hB,EAAG4hB,QAAUrT,EAAK9d,QAAQioB,aAAejY,GAAWT,EAAG4hB,OAAO,GAAQ5hB,EAAG4hB,OACjFhjB,GAAQ1P,GAAMoD,KAAK,SAAW,KAAOsvB,EAAQ,MAE7C5hB,EAAGoD,YAAclR,IACjB0M,GAAQ1P,GAAMoD,KAAK,aAAe,KAAQ0N,EAAGoD,UAAY,MAEzDF,GAAkBqL,EAAMvO,KACxBpB,GAAQ,gBAAmBgjB,GAAS5hB,EAAG1K,OAAS,IAChDsJ,GAAQyE,GAAY1K,EAAQqH,EAAG1K,OAAS8jB,EAASM,cAAgBN,EAASK,YAC1E7a,GAAQ,MAERoB,EAAGuB,YAAcvB,EAAGuB,WAAWrT,SAC/B0Q,GAAQ1P,GAAMoD,KAAK,cAAgB,KAAQ0N,EAAGuB,WAAa,KAE3D/G,OACAoE,GAAQ1P,GAAMoD,KAAK,SAAW,KAAQkI,EAAQ,KAElDoE,GAAQlM,EAAoBsN,EAAGtK,kBAC/BkJ,GAAQ,IAAM1R,EAAO,QAG7B,OAAO0R,IAEX+rC,2BAA4B,WACxB,GAA4Bp3C,GAA6GrF,EAA+C+F,EAAWiK,EAAS0sC,EAAxM91C,EAAUtF,KAAKsF,QAAc0K,EAAWhQ,KAAKmP,MAAM5K,KAAK,YAAawH,EAAOiE,EAASzL,KAAK,0CAAmDsgC,EAAarnC,IAAK69C,EAAkB,EAAgCC,EAAY,CACjO,KAAKv3C,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD,GAAIuB,EAAQvB,GAAK0B,OACb,GAAIM,EAAUT,EAAQvB,IAAO,CAMzB,IALA2K,EAAU,EACNpJ,EAAQvB,GAAKuB,UACboJ,EAAUvE,GAAY7E,EAAQvB,GAAKuB,SAAS5G,OAASkN,EAAuBtG,EAAQvB,GAAKuB,UAE7FoJ,EAAUA,GAAW,EAChB0sC,EAAU,EAAGA,EAAU1sC,EAAS0sC,IACjCvW,EAAaA,EAAWrhC,IAAIuI,EAAK9H,GAAGF,EAAMu3C,EAAYF,EAAUC,GAEpEC,IAAa5sC,EAAU,MAEvB2sC,IAIZ52C,GAAYjH,EAAE,gGACdwS,EAASurC,SACT92C,EAAUF,KAAK,YAAY4L,OAAO00B,GAClC70B,EAASS,aAAazQ,KAAKmP,MAAM5K,KAAK,UACtCvE,KAAKoE,cAAgBK,EAAUgM,aAAazQ,KAAKqE,SACjDrE,KAAKsU,YAAc7P,EAAU+E,SAAS,UAE1CmqC,0BAA2B,WAAA,GAMnB5vC,GAAKrF,EALLqgB,EAAO/e,KACPwsB,EAASzN,EAAKyN,OACdtiB,EAAQsiB,EAAOjoB,KAAK,yBACpBwH,EAAOygB,EAAOjoB,KAAK,0CACnB6K,EAAO5R,EAAE,kIAET2L,EAAS4V,EAAKmJ,UACdszB,EAAch+C,IAAKqnC,EAAarnC,GAEpC,KADAg+C,EAAcA,EAAYh4C,IAAI0G,EAAM5F,OAAO,kBACtCP,EAAM,EAAGrF,EAASyL,GAAYzB,EAAcqW,EAAKzZ,UAAU5G,OAAQqF,EAAMrF,EAAQqF,IAClFy3C,EAAcA,EAAYh4C,IAAI0G,EAAMjG,GAAGF,EAAMoF,GAGjD,KADA07B,EAAaA,EAAWrhC,IAAIuI,EAAKzH,OAAO,iBACnCP,EAAM,EAAGrF,EAASmJ,EAAesC,GAAYmD,EAAqByR,EAAKzZ,WAAW5G,OAAQqF,EAAMrF,EAAQqF,IACzG8gC,EAAaA,EAAWrhC,IAAIuI,EAAK9H,GAAGF,EAAMoF,GAE9CqyC,GAAYt3C,SAASkL,EAAK7K,KAAK,OAC/BsgC,EAAW3gC,SAASkL,EAAK7K,KAAK,aAC9Bwa,EAAK0N,aAAerd,EAAKswB,UAAUlT,IAEvCivB,0BAA2B,SAAUh3C,GAAV,GACkBV,GAAKqL,EAAM1Q,EAAkBkvB,EAAI8tB,EAAUvsC,EAA0J7G,EAU9NoG,EAKK0sC,EAOJxmB,EAwBT5xB,EA9CJ+b,EAAO/e,KAAMsF,EAAUtF,KAAKsF,QAAoF+D,KAAWgyC,EAAkB,EAAGtvC,EAAOvO,IAAKm+C,EAAe58B,EAAKkV,gBAAiB2nB,EAAmB,EAAGC,EAAcr+C,IAAWs+C,EAAmB,EAAG5xC,EAAQ1M,IAAtNwS,EACjD+O,EAAKjV,MAAMkqB,OAAOzvB,KAAK,0CADyDisB,EAElFzR,EAAKjV,MAAMvF,KAAK,2DAF0Ew3C,EAGjFh9B,EAAKjV,MAAMvF,KAAK,iBAAiBA,KAAK,2CACpD+2C,EAAY,CAChB,KAAKv3C,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IAAO,CACxD,GAAIuB,EAAQvB,GAAK0B,OAAQ,CAGrB,GAFA6C,EAAOkoB,EAAOvsB,GAAGF,GACjB+3C,EAAmB3xC,GAAY7E,EAAQvB,GAAKuB,aAAe5G,OACvDqH,EAAUT,EAAQvB,IAAO,CAMzB,IALI2K,EAAU,KACVpJ,EAAQvB,GAAKuB,UACboJ,EAAUotC,EAAmBlwC,EAAuBtG,EAAQvB,GAAKuB,UAErEoJ,EAAUA,GAAW,EACZ0sC,EAAU,EAAGA,EAAU1sC,EAAS0sC,IACrCrvC,EAAOA,EAAKvI,IAAIwM,EAAS/L,GAAGF,EAAMu3C,EAAYF,EAAUC,GAE5DC,IAAa5sC,EAAU,EAI3B,IAFAlC,GAAqBlH,EAAQvB,IAAO8K,GAAkBvG,GAAOe,EAAM,EAAG,GACtEyyC,EAAmBA,GAAoB,EAC9BlnB,EAAI,EAAGA,EAAIknB,EAAkBlnB,IAClCinB,EAAcA,EAAYr4C,IAAIu4C,EAAgB93C,GAAG23C,EAAmBhnB,GAExEgnB,IAAoBE,EAEpBx2C,EAAQvB,GAAKuB,UACb+1C,GAAmBzvC,EAAuBtG,EAAQvB,GAAKuB,UAEtDS,EAAUT,EAAQvB,KACnBs3C,IAGR,GAAIhyC,EAAK3K,OAAQ,CAQb,IAPA0Q,EAAO,0FACPA,GAAYnM,MAAMoG,EAAK3K,OAAS,GAAGL,KAAK,aACxC+Q,IAASusC,EAAe,iCAAmC,IAAM,yBACjExsC,EAAQ3R,EAAE4R,GACVY,EAAWb,EAAM5K,KAAK,YACtByL,EAASG,OAAO4O,EAAKjV,MAAMkqB,OAAOzvB,KAAK,mBAAmBf,IAAIuI,IAC9D6hB,EAAKze,EAAM5K,KAAK,+BACXR,EAAM,EAAGrF,EAAS2K,EAAK3K,OAAQqF,EAAMrF,EAAQqF,IAC9CmG,EAAQ/B,EAASkB,EAAKtF,IACtB6pB,EAAG3pB,GAAGF,GAAKoM,OAAO4O,EAAKjV,MAAMvF,KAAK,SAAWR,EAAM,mBAAmBP,IAAI0G,GAU9E,OARIlH,GAAQqJ,EAAgBrM,KAAK8J,OAC7BT,EAAK3K,OAASsE,GACdoJ,EAAmB+C,EAAOnM,EAAQqG,EAAK3K,QAE3Cg9C,EAAWvsC,EAAM5K,KAAK,iBACtBm3C,EAASvrC,OAAO4O,EAAKjV,MAAMvF,KAAK,+BAA+Bf,IAAIq4C,IACnE77C,KAAKwU,aAAerF,EAAMuwB,UAAUj7B,GACpCzE,KAAK8J,MAAMvF,KAAK,iBAAiBgI,UAC1B,EAEX,OAAO,GAEXof,wBAAyB,WACrB,GAAIxnB,GAAWnE,KAAKwU,aAAahR,IAAIxD,KAAKoE,eAAeZ,IAAIxD,KAAKysB,aAClE/sB,IAAMqgB,QAAQ5b,GACdA,EAAS8b,IAAI9a,IAAIoH,SACjBvM,KAAKwU,aAAexU,KAAKoE,cAAgBpE,KAAKysB,aAAe,KAC7DzsB,KAAKgU,WAAa,MAEtBiT,OAAQ,WAAA,GAC6HljB,GAA6K6pB,EAiBlSvkB,EAkBAoI,EACAnJ,EAQJ0zC,EAKAC,EA0CJC,EACAC,EA5FAp9B,EAAO/e,KAAMsF,EAAUyZ,EAAKzZ,QAASyK,EAAagP,EAAKqP,eAAiB9oB,EAAQ5G,OAAQi9C,EAAe58B,EAAKkV,gBAAsB7kB,EAAO,GAAItF,EAAQiV,EAAK5P,MAAM5K,KAAK,UAAW63C,EAAWr9B,EAAKnX,QAAQrD,KAAK,eAAe7F,OAAS,EAAG29C,EAAgBt9B,EAAK9d,QAAQ2oB,SAASI,0BAclR,IAbKlgB,EAAMpL,SACPoL,EAAQtM,EAAE,YAAYiT,aAAasO,EAAK7P,QAExC6P,EAAKvK,cAAgBuK,EAAKjV,OAC1B8jB,EAAK7O,EAAKjV,MAAMvF,KAAK,iCAAiC6K,KAAK,IAC3Dwe,EAAGrhB,SACHqhB,EAAKpwB,IACLuhB,EAAK4M,2BAELiC,EAAK7O,EAAKnX,QAAQrD,KADX63C,EACgB,4CAEA,oBAEtBxuB,EAAGlvB,OAmBD,CACH,IAAKqF,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAC5B0N,EAAcjG,GAAQlG,EAAQvB,GAAMoG,GAAY7E,IAChDgD,EAAOsF,GAAcggB,EAAGviB,UAAU/G,OAAO,gDAAgDL,GAAGwN,GAC5FnM,EAAQvB,GAAK6B,QAAU6L,GAAe,IACtCnJ,EAAK,GAAGrJ,MAAMyI,QAAU,OAGhCqX,GAAKu9B,mBAAmB9uC,GAAalI,QAzBrC,IADAsoB,EAAK9jB,EAAMN,WAAWgX,SACjBoN,EAAGlvB,OAAQ,CAOZ,IANI2K,IACIR,QAAS,EACTqB,SACAc,MAAO,IAEf+T,EAAKw9B,gBAAgBlzC,EAAM/D,GACtBvB,EAAM,EAAGA,EAAMsF,EAAK3K,OAAQqF,IAC7BqL,GAAQ,OACJW,IACAX,GAAQ,4CAA8CitC,EAAgB,SAE1EjtC,GAAQ2P,EAAKm8B,mBAAmB7xC,EAAKtF,GAAKmG,MAAOb,EAAKtF,GAAK8E,SAC3DuG,GAAQ,OAEZwe,GAAKpwB,EAAE4R,GAYXusC,IACIK,EAAYx+C,EAAE,SAClBw+C,EAAU5zB,SAAS,iBACfrY,GAAc6d,EAAGrpB,KAAK,qBAAqB7F,SAC3Cs9C,EAAU5rC,QAAQ,wDAElB6rC,GAAqBl9B,EAAKjV,OAASA,GAAOvF,KAAK,iBAC/C03C,EAAkBv9C,SAClBgB,GAAMqgB,QAAQk8B,GACdA,EAAkB1vC,UAEtBzC,EAAMqG,OAAO6rC,IAEZpuB,EAAGpkB,WAAW9K,OAORqR,IAAe6d,EAAGrpB,KAAK,qBAAqB,IACnDqpB,EAAGxd,QAAQ,6CAA+CisC,EAAgBA,EAAgB,UAAY,UAPtGjtC,EAAO,GACHW,IACAX,GAAQ,wDAEZA,GAAQ2P,EAAKm8B,mBAAmB51C,GAChCsoB,EAAGxe,KAAKA,IAIZwe,EAAG9qB,KAAK,OAAQ,OAAOyB,KAAK,MAAM6jB,SAAS,YACtCrJ,EAAK9d,QAAQwnB,YACd3e,EAAMse,SAAS,iBAEnBwF,EAAGrpB,KAAK,UAAUgI,SAAS4qB,MAAMuI,UAAU51B,GACvCiV,EAAKjV,OACLiV,EAAKqL,4BAETpqB,KAAKguB,QAAQ,UAAW,WACpB,OAAS7pB,SAAU2F,EAAMvF,KAAK,KAAOuU,IAASlY,SAElDZ,KAAKguB,QAAQ,UAAW,WACpB,OACI7pB,SAAU2F,EAAMvF,KAAK4U,IAAavY,MAClC+Q,KAAMrR,GAAIgF,EAAS,SAAU2qB,GACzB,OAAStqB,OAAQsqB,QAI7BlR,EAAKjV,MAAQA,EAAMhH,KAAK,OAAQ,YAChCic,EAAKy3B,YACLz3B,EAAKq2B,cACLr2B,EAAK22B,aACL32B,EAAKmxB,cACLnxB,EAAK+0B,cAEDqI,EAAmBn8C,KAAKiB,QAAQwnB,YAAc/f,EAAc1I,KAAKsF,SAAS5G,OAC1Ey9C,IACAD,EAAan9B,EAAK08B,0BAA0B18B,EAAKjV,MAAMwE,QAAQ,mBAC/DyQ,EAAKo8B,6BACLp8B,EAAK3a,cAAcqb,KAAK,iBAAmBta,GAAK,cAAgBA,GAAIC,GAAM2Z,EAAK0B,aAAc1B,IACzFrf,GAAMyV,QAAQC,QACd2J,EAAKuM,yBAA2B,GAAI5rB,IAAMkhB,WAAW7B,EAAK3a,eACtD8c,KAAM,SAAUxT,GACZqR,EAAK1a,QAAQ8c,UAAUpC,EAAK1a,QAAQ8c,aAAezT,EAAE0T,EAAEC,OACvD3T,EAAE8F,qBAIduL,EAAK2W,qBAET3W,EAAK4W,cACL5W,EAAK6W,yBACL7W,EAAKiX,0BACLjX,EAAKmS,aACLnS,EAAK+S,aACL/S,EAAKsT,eACLtT,EAAKi3B,cAAcj3B,EAAKmJ,WACxBnJ,EAAKkS,uBACDkrB,IACID,GACAn9B,EAAKiS,0BAETjS,EAAK+R,+BAEL/R,EAAKnL,WACLmL,EAAK+hB,oBAGb0b,qBAAsB,SAAUl3C,EAAS+D,GAAnB,GAGV1D,GAFJvC,EAAS5F,GACb,IAAI6L,EAAK3K,QAAU4G,EAAQ,GAAI,CAE3B,IADIK,EAASL,EAAQ,GACdK,EAAOL,SAAWK,EAAOL,QAAQ5G,QACpCiH,EAASA,EAAOL,QAAQ,GACxB+D,EAAOA,EAAK/E,OAAO,iBAEvBlB,GAASA,EAAOI,IAAI6F,GAExB,MAAOjG,IAEX4yB,wBAAyB,WAAA,GAGbpI,GAEAvkB,EAJJ0V,EAAO/e,KAAMsF,EAAUyZ,EAAKzZ,YAAeyK,EAAagP,EAAKqP,eAAiB9oB,EAAQ5G,MACrFqR,IAAegP,EAAKmJ,YACjB0F,EAAK7O,EAAKjV,MAAMvF,KAAK,sCACzBe,EAAUsD,EAAiBtD,GACvB+D,EAAO0V,EAAKy9B,qBAAqBl3C,EAASsoB,GAC1C7O,EAAK8hB,cACLjT,EAAK7O,EAAKvK,aAAajQ,KAAK,2CAC5Be,EAAUoD,EAAcqW,EAAKzZ,SAC7B+D,EAAOA,EAAK7F,IAAIub,EAAKy9B,qBAAqBl3C,EAASsoB,KAEvDvkB,EAAK4kB,KAAK,WACN,GAAIrjB,GAAMpN,EAAEwC,MAAMuE,KAAK,KACvBqG,GAAI4iB,YAAY,WAChB5iB,EAAI3G,GAAG,GAAGmkB,SAAS,eAI/Bm0B,gBAAiB,SAAUlzC,EAAM/D,EAAS+I,EAAYouC,GAArC,GAIJ14C,GACDuE,EAJJiC,EAAMkyC,GAAapzC,EAAKA,EAAK3K,OAAS,GACtCg+C,EAAWrzC,EAAKkB,EAAIS,MAAQ,GAC5B2xC,EAAe,CACnB,KAAS54C,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuE,GACA3C,OAAQL,EAAQvB,GAChB2K,QAAS,GAEbnE,EAAIL,MAAM/L,KAAKmK,GACXhD,EAAQvB,GAAKuB,SAAWA,EAAQvB,GAAKuB,QAAQ5G,SACxCg+C,IACDA,GACI7zC,QAAS,EACTqB,SACAc,MAAO3B,EAAK3K,QAEhB2K,EAAKlL,KAAKu+C,IAEdp0C,EAAKoG,QAAUpJ,EAAQvB,GAAKuB,QAAQ5G,OACpCsB,KAAKu8C,gBAAgBlzC,EAAM/D,EAAQvB,GAAKuB,QAASgD,EAAMo0C,GACvDC,GAAgBr0C,EAAKoG,QAAU,EAC/BnE,EAAI1B,QAAUQ,EAAK3K,OAAS6L,EAAIS,MAGpCqD,KACAA,EAAWK,SAAWiuC,IAG9Bl8B,aAAc,SAAU/S,GAAV,GAINrJ,GAIA8c,EAAiCE,CAPjC3T,GAAE+T,UAGFpd,EAAUrE,KAAKqE,QACfrE,KAAKu1B,eAAiBv1B,KAAKu1B,cAAclsB,OACzChF,EAAUrE,KAAK2oB,kBAAkB3I,mBAEjCmB,EAAY9c,EAAQ8c,YAAaE,EAAQ3hB,GAAMgiB,YAAYhU,GAC3D2T,IACIhd,EAAQ,GAAGud,aAAevd,EAAQ,GAAGsd,eAAiBtd,EAAQ,GAAG8c,UAAY9c,EAAQ,GAAGud,aAAevd,EAAQ,GAAGsd,cAAgBN,EAAQ,GAAKhd,EAAQ,GAAG8c,UAAY,GAAKE,EAAQ,IACnL3T,EAAE8F,iBAENnP,EAAQ8c,UAAUA,GAAaE,MAGvCwf,UAAW,WACP,MAA4B,OAArB7gC,KAAKwU,cAEhBooC,kBAAmB,WACf,GAAIztC,GAAQnP,KAAK8J,MAAMuB,SAAS7H,IAAIxD,KAAKmP,MACrCnP,MAAK6gC,YACL/wB,GAAcX,EAAO5B,EAAmBF,EAAwBrN,KAAKsF,UAAWtF,KAAKouB,cAAe,GAEpGte,GAAcX,EAAO5B,EAAmB1F,EAAe7H,KAAKsF,UAAWtF,KAAKouB,cAAe,IAGnGyH,qBAAsB,WAAA,GAIdlwB,GACA2C,EACAmuC,EAIK1yC,EAASrF,EATdqgB,EAAO/e,KACPkK,EAAQ0D,GAAcmR,EAAKjV,OAC3BxE,EAAU6E,GAAY4U,EAAKzZ,QAI/B,IAAKyZ,EAAK9d,QAAQ6nB,SAGlB,IAAS/kB,EAAM,EAAGrF,EAASwL,EAAMxL,OAAQqF,EAAMrF,EAAQqF,IACnD4B,EAASL,EAAQvB,GACb4B,EAAOmjB,YAAa,IAAUnjB,EAAOhB,SAAWgB,EAAOG,QACvDwC,EAAO4B,EAAMjG,GAAGF,GAChB0yC,EAAiBnuC,EAAKqJ,KAAK,qBACvB8kC,GACAA,EAAep3B,YAK/Bi9B,mBAAoB,SAAUh3C,GAAV,GAIZyZ,GACKvgB,EAEGgS,CANZ,IAAKlL,EAAQ5G,OAAb,CAIA,IADIqgB,EAAO/e,KACFxB,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5B8G,EAAQ9G,GAAG0H,mBACPsK,EAAKuO,EAAKnX,QAAQrD,KAAK,QAAWe,EAAQ9G,GAAG0H,iBAAiBG,GAAK,MACvEmK,EAAG1N,KAAK,UAAWwC,EAAQ9G,GAAG0H,iBAAiBE,SAGvD2Y,GAAKu9B,mBAAmB9uC,GAAalI,MAEzCqwB,YAAa,SAAUxmB,GACnBA,EAAQA,GAASnP,KAAK8J,MAAMuB,SAAS7H,IAAIxD,KAAKmP,OAC9CnP,KAAK6zC,YAAY1kC,EAAOnP,KAAK6gC,cAEjCnL,kBAAmB,SAAUvmB,GACrBnP,KAAK6gC,cACL1xB,EAAQA,GAASnP,KAAKwU,aAAajQ,KAAK,SAASf,IAAIxD,KAAKsU,aAC1DxE,GAAcX,EAAO5B,EAAmBD,EAAqBtN,KAAKsF,UAAWtF,KAAKouB,cAAepuB,KAAKkoB,aAG9G2rB,YAAa,SAAU1kC,EAAO1J,GACtBA,EACAqK,GAAcX,EAAO5B,EAAmBF,EAAwBrN,KAAKsF,UAAWtF,KAAKouB,cAAe,GAEpGte,GAAcX,EAAO5B,EAAmB1F,EAAe7H,KAAKsF,UAAWtF,KAAKouB,cAAepuB,KAAKkoB,YAGxG20B,aAAc,SAAU/hB,GACpB,GAAIA,GAAUA,EAAOgiB,OAAQ,CACzB,GAAiBh3C,GAAOP,EAApBwZ,EAAO/e,IACX86B,GAASA,EAAOgiB,SAChBv3C,IAAYwZ,EAAK5P,MAAM5K,KAAK,YAAY7F,OAAS,KAAOqgB,EAAKJ,aAAeI,EAAKJ,WAAWuO,WAC5F,KAAKpnB,IAASg1B,GACV/b,EAAKzZ,QAAQnH,MACT2H,MAAOA,EACPP,QAASA,EACTW,kBAAoBG,GAAI3G,GAAMyG,SAGtC4Y,GAAKkI,SACLlI,EAAKuI,eAGby1B,UAAW,SAAUprC,EAAMqrC,GACvB,GAA4Bj5C,GAAqFrF,EAA7GqgB,EAAO/e,KAAMoP,EAAO,GAAS+Z,EAAc6zB,EAAU7zB,YAAaC,EAAiB4zB,EAAU5zB,cACjG,KAAKrlB,EAAM,EAAGrF,EAASiT,EAAKjT,OAAQqF,EAAMrF,EAAQqF,IAC1Cgb,EAAK0xB,wBAA0B,EAC/B1xB,EAAK0xB,0BAGDrhC,GADArL,EAAM,EACEqlB,EAAezX,EAAK5N,IAEpBolB,EAAYxX,EAAK5N,IAGjCgb,EAAKgO,MAAM5uB,KAAKwT,EAAK5N,GAEzB,OAAOqL,IAEX6tC,WAAY,SAAUjwB,EAAOkwB,EAAYC,GAA7B,GAQKlwB,GAPTlO,EAAO/e,KAAMo9C,EAAiBr+B,EAAKs+B,kCAAqCC,EAAatwB,EAAMnb,MAAOE,EAAalS,MAAWu9C,EAAgBpwB,EAAMjb,YAAawrC,EAAa19C,OACtKiG,MAAOknB,EAAMlnB,MACbzF,MAAO2sB,EAAM3sB,MACbwR,MAAOyrC,EACPvrC,WAAYA,GACbib,EAAMjb,WAAWorC,EAAcA,EAAYr3C,MAAQknB,EAAMlnB,QAAS03C,IACzE,KAAKN,EACD,IAASjwB,IAAalb,GAClByrC,EAAWvwB,GAAaptB,MAAWkS,EAAWkb,IAC1CD,OACIlnB,MAAOknB,EAAMlnB,MACbzF,MAAO2sB,EAAM3sB,MACbwR,MAAOyrC,IAKvB,OAAOz9C,OAAW29C,EAAYD,IAElCviB,oBAAqB,SAAUzwB,GAAV,GACAooC,GAAY8K,EACpBj/C,EADLugB,EAAO/e,KAAkCtB,EAASqgB,EAAKJ,WAAWsJ,OAAOvpB,MAC7E,KAASF,EAAI,EAAGA,EAAIE,EAAQF,IACxB+L,EAAMA,EAAIypB,OACV2e,GAAcpoC,EAAIzH,KAAK,yBACvB26C,GAAkBlzC,EAAIzH,KAAK,wBACT,GAAd6vC,GAAqC,GAAlB8K,GACnBlzC,EAAI/E,QAIhBk4C,cAAe,SAAU1wB,EAAOtW,EAASlI,EAAOmvC,EAAoBX,EAAWY,EAAaC,GACxF,GAA4B95C,GAAKrF,EAEknBo/C,EAF/oB/+B,EAAO/e,KAAMoP,EAAO,GAAiBtJ,EAAQknB,EAAMlnB,MAAOH,EAASmC,GAAKqC,GAAY4U,EAAKzZ,SAAU,SAAUK,GACzG,MAAOA,GAAOG,OAASA,IACxB,OAAUq3C,EAAct1C,EAAekX,EAAKzZ,SAAS,GAAIy4C,EAAwCZ,EAAcA,EAAY1nB,0BAA4B,KAAMiF,EAAW/0B,EAAOq4C,oBAAsBr4C,EAAOq4C,oBAAsBD,EAAuCrgD,GAAQiI,EAAOysB,QAAUrT,EAAK9d,QAAQioB,aAAejY,GAAWtL,EAAOysB,OAAO,GAAQzsB,EAAOysB,QAAUtsB,GAAS,KAAO+K,GAAiBmc,EAAM3sB,MAAOsF,EAAOsK,OAAQtK,EAAO+yB,OAAQ/yB,EAAOJ,SAAU+3C,EAAatwB,EAAMixB,cAAgBjxB,EAAMnb,MAAO1I,EAAS4V,EAAKmJ,UAAWkE,EAAsB4wB,EAAU5wB,oBAAqBqJ,EAA4BunB,EAAUvnB,0BAAsC9e,GAAWoI,EAAKJ,WAAW8F,iBAAkB1F,EAAKJ,WAAWu/B,aAAalxB,EAAMnnB,IA+B9uB,IA9BIkZ,EAAK9d,QAAQgT,UAAY+Y,EAAMnb,OAASmb,EAAMnb,MAAM,IAAMmb,EAAMnb,MAAM,GAAGssC,OAASnxB,EAAMnb,MAAM,GAAGssC,UACjGxnC,GAAW,IAEXqmC,EAAU5wB,qBAAuB4wB,EAAUvnB,2BAA6B9vB,EAAOq4C,uBAC/EF,EAAY/+B,EAAKk+B,WAAWjwB,GAAO,IAAQrnB,EAAOq4C,sBAAuBn2C,EAAekX,EAAKzZ,SAAS,GAAGmwB,4BAA4B5tB,EAAekX,EAAKzZ,SAAS,KAElKo1B,IAAakjB,IACblgD,QAAcg9B,KAAare,GAAWqe,EAASojB,GAAap+C,GAAMg7B,SAASA,GAAUojB,IAEpF/+B,EAAK0xB,wBAmBNkN,EAAmBjnC,EAASlI,EAAO9Q,EAAMiZ,EAAUqW,EAAMnnB,IAAKkZ,EAAKJ,WAAW8F,iBAlB1EgR,EACKzI,EAAMoxB,cAOPpxB,EAAMoxB,eAAgB,EANtBhvC,GAAQqmB,EAA0B51B,MAAWi+C,GACzC/6C,WAAYyL,EACZkI,QAASvN,EAASqF,EAClB9Q,KAAMA,KAMTsvB,EAAMoxB,cAGPpxB,EAAMoxB,eAAgB,EAFtBhvC,GAAQuuC,EAAmBjnC,EAASlI,EAAO9Q,EAAMiZ,EAAUqW,EAAMnnB,IAAKkZ,EAAKJ,WAAW8F,iBAQ9F9N,EACA,GAAIqW,EAAMpb,aACN,IAAK7N,EAAM,EAAGrF,EAAS4+C,EAAW5+C,OAAQqF,EAAMrF,EAAQqF,IACpDqL,GAAQ2P,EAAK2+B,cAAcJ,EAAWv5C,GAAM65C,EAAclnC,EAAUA,EAAU,EAAGlI,EAAQ,EAAGmvC,EAAoBX,EAAWY,EAAaC,GAAiB95C,IAAQu5C,EAAW5+C,OAAS,OAGzL0Q,IAAQ2P,EAAKg+B,UAAUO,EAAYN,EAiB3C,OAdI5wB,KACIyxB,EACKryC,GAAQwhB,EAAM3sB,MAAO0e,EAAKs/B,iBAC3Bt/B,EAAKs/B,eAAelgD,KAAK6uB,EAAM3sB,QAG/B0e,EAAKs/B,eAAe3/C,QAAUqgB,EAAKs/B,eAAe,KAAOrxB,EAAM3sB,OAC/D0e,EAAKs/B,eAAeC,QAEnBv/B,EAAK0xB,0BACNrhC,GAAQgd,EAAoB0xB,MAIjC1uC,GAEXuxB,cAAe,SAAU3T,GAAV,GACPxe,GAAsJzE,EAA4BhG,EAAKrF,EAAQkvB,EAI3L2wB,EACAC,EACAC,EACAC,EAqBJC,EA5BO5/B,EAAO/e,KAAM4+C,EAAkB5xB,EAAOpZ,EAAY5T,KAAKiB,QAAQ2S,UAAWirC,EAAajrC,EAAUirC,WAAYC,EAAcD,EAAa,EAAI,EAAWE,EAAevhD,GAGjL,IAFAwvB,EAAQxvB,EAAEwvB,GACVxe,EAAQwe,EAAMzoB,KAAK,iBAAiB7F,OAChCsB,KAAK2e,WAAW8F,gBAYhB,MAXI85B,GAAWvxB,EAAMlqB,KAAK,kBACtB07C,EAAcz/B,EAAKJ,WAAWqgC,eAAeT,GAC7CE,EAAoB1/B,EAAKJ,WAAWsgC,uBAAuBT,IAAc,GAE7Ez/B,EAAKJ,WAAWu/B,aAAaK,IAAY,EACzCG,EAA0B3/B,EAAKJ,WAAWsgC,uBAAuBT,IAAc,GAC/Ez/B,EAAKJ,WAAWugC,oBAAsBT,EAAoBC,EAC1D3/B,EAAKm0B,WAAU,GACfn0B,EAAKJ,WAAWsG,MAAMlG,EAAKJ,WAAWwgC,mBAAoBpgC,EAAKJ,WAAWmE,OAAQ,WAC9E/D,EAAKm0B,WAAU,IAChB,iBACH,CAcJ,KAZIlzC,KAAK6gC,cACA7T,EAAM1e,QAAQ,OAAOjE,SAAS,yBAI/B00C,EAAe/+C,KAAKkP,MAAM1F,SAAS,SAAWwjB,EAAMhiB,QAAU,KAAK0iC,QAAQ,OAH3EqR,EAAe/xB,EAAM0gB,QAAQ,MAC7B1gB,EAAQhtB,KAAKsU,YAAY/P,KAAK,gBAAkByoB,EAAMhiB,QAAU,OAKxEgiB,EAAMzoB,KAAK,iBAAiB6jB,SAAS,cAAcoF,YAAY,gBAC/DR,EAAMzoB,KAAK,kCAAoCzB,KAAK,iBAAiB,GAAOyB,KAAK,KAAKzB,KAAKwT,GAAWO,IACtGmW,EAAQA,EAAM0gB,QAAQ,MAClBiR,KACC56C,EAAM,EAAGrF,EAASsuB,EAAMtuB,OAAQqF,EAAMrF,IACvCkvB,EAAKZ,EAAM/oB,GAAGF,GACdgG,EAAS6jB,EAAGrpB,KAAK,iBAAiB7F,OAC9BkvB,EAAGvjB,SAAS,kBACZy0C,IACOlxB,EAAGvjB,SAAS,mBACnBy0C,MAEA/0C,GAAUyE,GAASof,EAAGvjB,SAAS,mBAAqBy0C,EAAc,IARvB/6C,IAW3Cg7C,EAAargD,QACbigD,EAAOxgD,KAAK4gD,EAAah7C,IAE7B46C,EAAOxgD,KAAKyvB,EAAG,GAEnBpwB,GAAEmhD,GAAQn5C,OACNxF,KAAKiB,QAAQwnB,WAAW0X,SAAWngC,KAAKqE,UACxC6b,aAAanB,EAAK2L,wBAClB3L,EAAK2L,uBAAyB3V,WAAW,WACrCgK,EAAK1a,QAAQysC,SACb/xB,EAAKqgC,iBAAmBR,MAIpChe,YAAa,SAAU5T,GAAV,GAELjO,GAAa8/B,EAAgDrwC,EAAOof,EAAI7jB,EAAQg1C,EAAoBh7C,EAAKrF,EAAQ2gD,EAAwBC,EAGrIf,EACAC,EACAe,EACAC,EAgDQC,CApDhB,IAHAzyB,EAAQxvB,EAAEwvB,GACNjO,EAAO/e,KAAM6+C,EAAa9/B,EAAK9d,QAAQ2S,UAAUirC,WAA+BE,EAAevhD,IAAkB6hD,KAAwBC,EAAc,EAC3J9wC,EAAQwe,EAAMzoB,KAAK,iBAAiB7F,OAChCsB,KAAK2e,WAAW8F,gBAchB,MAbI85B,GAAWvxB,EAAMlqB,KAAK,kBACtB07C,EAAcz/B,EAAKJ,WAAWqgC,eAAeT,GAC7CgB,EAAaxgC,EAAKJ,WAAWsgC,uBAAuBT,IAAc,GAEtEz/B,EAAKJ,WAAWu/B,aAAaK,IAAY,EACrCC,EAAY3sC,OAAS2sC,EAAY3sC,MAAMnT,SACvC8gD,EAAwBzgC,EAAKJ,WAAWsgC,uBAAuBT,IAAc,GAC7Ez/B,EAAKJ,WAAWugC,oBAAsBM,EAAwBD,GAElExgC,EAAKm0B,WAAU,GACfn0B,EAAKJ,WAAWsG,MAAMlG,EAAKJ,WAAWwgC,mBAAoBpgC,EAAKJ,WAAWmE,OAAQ,WAC9E/D,EAAKm0B,WAAU,IAChB,eACH,CAaJ,KAXIlzC,KAAK6gC,cACA7T,EAAM1e,QAAQ,OAAOjE,SAAS,yBAI/B00C,EAAe/+C,KAAKkP,MAAM1F,SAAS,SAAWwjB,EAAMhiB,QAAU,KAAK0iC,QAAQ,OAH3EqR,EAAe/xB,EAAM0gB,QAAQ,MAC7B1gB,EAAQhtB,KAAKsU,YAAY/P,KAAK,gBAAkByoB,EAAMhiB,QAAU,OAKxEgiB,EAAMzoB,KAAK,eAAe6jB,SAAS,gBAAgBoF,YAAY,cAC/DR,EAAMzoB,KAAK,mCAAqCzB,KAAK,iBAAiB,GAAMyB,KAAK,KAAKzB,KAAKwT,GAAWC,IACtGyW,EAAQA,EAAM0gB,QAAQ,MACjB3pC,EAAM,EAAGrF,EAASsuB,EAAMtuB,OAAQqF,EAAMrF,IACvCkvB,EAAKZ,EAAM/oB,GAAGF,GACdgG,EAAS6jB,EAAGrpB,KAAK,iBAAiB7F,SAC9BqL,GAAUyE,IAHiCzK,IAM3CgG,GAAUyE,EAAQ,GAAMof,EAAGvjB,SAAS,kBACpCujB,EAAG9mB,OACHi4C,EAAa96C,GAAGF,GAAK+C,OACjB8mB,EAAGvjB,SAAS,mBAAqBujB,EAAGrpB,KAAK,WAAW8F,SAAS,iBAC7D0U,EAAK6hB,YAAYhT,GAEjBA,EAAGvjB,SAAS,iBAAmBujB,EAAGrpB,KAAK,WAAW8F,SAAS,kBAC3DujB,EAAG5e,OAAOlI,OACVi4C,EAAa96C,GAAGF,EAAM,GAAG+C,SAG7B8mB,EAAGvjB,SAAS,oBACRw0C,GACAQ,EAAkBlhD,KAAKyvB,EAAG1d,GAAG,aAEjCovC,KAEA1xB,EAAGvjB,SAAS,oBACRw0C,IACIY,EAAmBJ,EAAkBK,MACzC9xB,EAAGktB,OAAO2E,GACVV,EAAa96C,GAAGF,GAAK+2C,OAAO2E,IAEb,GAAfH,GACA1xB,EAAG9mB,OACHi4C,EAAa96C,GAAGF,GAAK+C,QAErBw4C,IAIE,KAAV9wC,GAAeuQ,EAAK9d,QAAQwnB,WAAW0X,SAAWngC,KAAK6gC,aACvD9hB,EAAKgS,4BAGbilB,cAAe,SAAU7sC,GACrB,GAAI4V,GAAO/e,KAAMyE,EAAYsa,EAAK8hB,YAAc9hB,EAAKvK,aAAajQ,KAAK,SAAWwa,EAAKjV,MAAO+xC,EAAcp3C,EAAUF,KAAK,mBAAmBA,KAAK,mBAAmB7F,OAAQA,EAAS+F,EAAUF,KAAK,YAAYA,KAAK,mBAAmB7F,OAAQ2K,EAAO5E,EAAU+E,SAAS,kBAAkBlF,OAAO,WAC7R,OAAQ9G,EAAEwC,MAAMwJ,SAAS,YAAY9K,QAEzCyK,GAASzK,GACTlB,EAAMyF,MAAMkG,EAASzK,EAAS,GAAGL,KAAK,iDAAmD0gB,EAAK9d,QAAQ2oB,SAASI,2BAA6B,UAAU0V,UAAUj7B,EAAU+E,SAAS,0BAC/KuV,EAAKnX,QAAQsI,GAAG,aAChB7G,EAAK9E,KAAK,mBAAmBiB,QAE1B2D,EAASzK,GAChB+F,EAAUF,KAAK,MAAM0pB,KAAK,WACtBzwB,EAAEwC,MAAMuE,KAAK,mBAAmBD,OAAO,OAAS6E,EAAS,SAAgBA,EAAS,KAAKoD,WAG3FpD,EAAS0yC,GACTr+C,EAAMyF,MAAMkG,EAAS0yC,EAAc,GAAGx9C,KAAK,8DAA8DqhC,UAAUj7B,EAAUF,KAAK,mBAG1Io7C,eAAgB,SAAUhuC,EAAMiuC,GAQ5B,MAPIjuC,IAAQiuC,IAEJjuC,EADAA,EAAKC,aACE5R,KAAK2/C,eAAehuC,EAAKE,MAAM,GAAI+tC,GAEnCjuC,EAAKE,MAAM,IAGnBF,GAEXokB,mBAAoB,WAChB,GAAiBlB,GAAb9V,EAAO/e,IACN+e,GAAK8hB,cAGVhM,EAASr3B,EAAE,4CAA6CuhB,EAAKnJ,SAASpS,IAAIub,EAAKjV,MAAMuB,UAAU7H,IAAIub,EAAK5P,OACxG4P,EAAK6R,aAAeve,GAAWwiB,EAAO5wB,GAAG,IACzC4wB,EAAOh2B,MAAMkgB,EAAK6R,cAClBiE,EAASr3B,EAAE,8CAA+CuhB,EAAKnJ,SAASpS,IAAIub,EAAKvK,aAAajQ,KAAK,WAAWf,IAAIub,EAAKzK,aACvHugB,EAAOh2B,MAAMwT,GAAWwiB,EAAO5wB,GAAG,OAEtC+hC,WAAY,SAAUrgC,GAAV,GACS2C,GAAMusB,EAAQ9wB,EAAKgI,EAAMG,EAAUlC,EAAqB61C,EAAiBnhD,EAAmQ+S,EAiBzV9K,EAiBAlC,EAlCAsa,EAAO/e,KAAmDnB,EAAQ,EAA4B2tB,EAASzN,EAAKyN,QAAUzN,EAAKnJ,QAAQrR,KAAK,kBAAmBgxB,EAAgBxW,EAAKwW,kBAAqBjwB,EAAUyZ,EAAKzZ,QAAS0vB,EAAgBjW,EAAKvK,aAAe5G,GAAcmR,EAAKvK,aAAajQ,KAAK,iBAAiBD,OAAOmD,GAAe/I,OAAS,EAAgB82B,EAAmC1tB,GAAKqC,GAAY4U,EAAKzZ,SAAU,SAAUK,GAC/a,MAAOA,GAAO8vB,2BAatB,IAVI9vB,EADiB,gBAAVA,GACEL,EAAQK,GACVb,GAAca,GACZmC,GAAK4D,EAAYpG,GAAU,SAAUsL,GAC1C,MAAOA,KAASjL,IACjB,GAEMmC,GAAK4D,EAAYpG,GAAU,SAAUsL,GAC1C,MAAOA,GAAK9K,QAAUH,IACvB,GAEFA,GAAWI,EAAUJ,GAA1B,CAIA,GADIgB,EAAsBoY,EAAK+gC,wBAAwBn6C,GACnDA,EAAOL,SAAWK,EAAOL,QAAQ5G,OAAQ,CAIzC,IAHAsL,EAAWW,EAAsBhF,EAAQL,GACzCqB,EAAoBhB,GAAQ,GAC5BuL,GAAkB/M,EAAS3G,EAAE,eAAgBuhB,EAAKvK,cAAeuK,EAAKjV,MAAO,UAAYE,EAASO,IAAM,QAASP,EAAS1B,MAAM,GAC3HvE,EAAM,EAAGA,EAAM4B,EAAOL,QAAQ5G,OAAQqF,IACvC/D,KAAKgmC,WAAWrgC,EAAOL,QAAQvB,GAGnC,OADAgb,GAAK6D,QAAQ3I,IAActU,OAAQA,IACnC,EAuBJ,GArBA8L,EAAcjG,GAAQ7F,EAAQkC,EAAesC,GAAY7E,KACzDqB,EAAoBhB,GAAQ,GAC5BoZ,EAAKghC,sBAAsBp6C,GAAQ,GACnCoZ,EAAKuI,aACLvI,EAAK4W,cACL5W,EAAK2W,oBACDjxB,EAAYsa,EAAKjV,MACrB+1C,EAAkBpuC,EACdsN,EAAKvK,cAAgBwgB,EAAgBvjB,EACrChN,EAAYsa,EAAKvK,aAAajQ,KAAK,gBAEnCs7C,GAAmB7qB,EAEvB1sB,EAAOsF,GAAcnJ,GAAWH,OAAOmD,GAAexD,GAAG47C,GACzDv3C,EAAK,GAAGrJ,MAAMyI,QAAU,OACxBwJ,GAAkB/M,EAAS3G,EAAE,eAAgBuhB,EAAKvK,cAAeuK,EAAKjV,MAAO,uBAAwB2H,GAAa,GAC9G+a,EAAO,KACPzN,EAAK4W,YAAYnJ,EAAOjoB,KAAK,+BAC7Bwa,EAAK2W,kBAAkBlJ,EAAOjoB,KAAK,iCACnC2M,GAAkBsb,EAAOjoB,KAAK,yBAA0BkN,GAAa,IAErE8jB,EAAcjwB,UAAYK,EAAOF,OAGjC,MAFAsZ,GAAKihC,sBACLjhC,EAAK6D,QAAQ3I,IAActU,OAAQA,IACnC,CAOJ,IALIoZ,EAAKzK,aAAe0gB,EAAgBvjB,EACpCD,GAAgBuN,EAAKzK,YAAY/P,KAAK,aAAckN,GAEpDD,GAAgBuN,EAAK7P,MAAM1F,WAAYiI,EAAcujB,GAErDjW,EAAKzK,YACLyK,EAAKgX,qBACLhX,EAAK+R,8BACL/R,EAAKgS,2BACLhS,EAAKiS,0BACLjS,EAAKoa,8BACF,CAEH,IADAptB,EAAOgT,EAAKjV,MAAMkqB,OAAOzvB,KAAK,OACzBR,EAAM,EAAGrF,EAASqN,EAAKrN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAErD,GADAmI,EAAWH,EAAKhI,GAAK9E,MAAMJ,MACvBkN,EAAKhI,GAAKwN,UAAUpF,QAAQ,sBAC5BtN,GAASmZ,GAAWjM,EAAKhI,QAG7B,IAAIgI,EAAKhI,GAAKwN,UAAUpF,QAAQ,kBAC5BtN,GAASmZ,GAAWjM,EAAKhI,QAD7B,CAIA,IAAImI,GAAYA,EAASC,QAAQ,SAE1B,CACHtN,EAAQ,CACR,OAHAA,GAASmN,SAASE,EAAU,IAMpC2oB,EAASr3B,EAAE,0DAA2DuhB,EAAKnJ,SAASpS,IAAIub,EAAK5P,OAC7F4P,EAAK6R,aAAe,KAChB/xB,IACAg2B,EAAO5G,KAAK,WACRjuB,KAAKf,MAAMJ,MAAQA,EAAQ,OAE/BkgB,EAAK6R,aAAe/xB,EACpBkgB,EAAK8yB,oBAGb9yB,EAAKiX,0BACLjX,EAAKkS,uBACDuE,EAAiC92B,OAAS,GAC1CqgB,EAAK+W,mBAET/W,EAAK6D,QAAQ3I,IAActU,OAAQA,MAEvCo6C,sBAAuB,SAAUp6C,EAAQiB,GAAlB,GAGf7C,GAEAsH,EACArB,EACA1B,EACAoG,EAPAqQ,EAAO/e,KACPsF,EAAUyZ,EAAKzZ,QAEfiB,KAKAI,EAAsBoY,EAAK+gC,wBAAwBn6C,GACnDs6C,EAAYr5C,EAAU,SAAUs5C,GAChC,MAAOr4C,GAAeq4C,EAAE56C,SAAS5G,QAAUwhD,EAAEt6C,QAC7C,SAAUs6C,GACV,OAAQr4C,EAAeq4C,EAAE56C,SAAS5G,SAAWwhD,EAAEt6C,OAEnD,IAAIY,EAAcb,EAAQL,EAASiB,IAAYA,EAAQ7H,OACnD,IAAKqF,EAAMwC,EAAQ7H,OAAS,EAAGqF,GAAO,EAAGA,IACrCsH,EAAS9E,EAAQxC,GACjBiG,EAAWM,EAAee,EAAQ/F,GAClCgD,EAAOnE,EAAS3G,EAAE,eAAgBwC,KAAKwU,cAAexU,KAAK8J,MAAO,UAAYE,EAASO,IAAM,kDAAkDtG,GAAG+F,EAAS1B,MACvJ23C,EAAU50C,KACV1E,EAAoB0E,EAAQzE,GAC5B0B,EAAK,GAAGrJ,MAAMyI,QAAUd,EAAU,GAAK,QAEvC0B,EAAKhE,OAAO,IAAM5E,GAAMoD,KAAK,WAAa,KAAKpE,SAC/CgQ,EAAU1C,SAAS1D,EAAKxF,KAAKpD,GAAMoD,KAAK,YAAa,IACrDwF,EAAK,GAAGoG,QAAUA,EAAU9C,EAAuBP,EAAO/F,UAAY,IAKtF06C,oBAAqB,WAAA,GACbjhC,GAAO/e,KACP60B,EAAS9V,EAAK5P,MAAM3L,IAAIub,EAAKjV,MAAMuB,SACvCwpB,GAAOpxB,KAAM5E,MAAOiN,EAAUyB,EAAmBF,EAAwB0R,EAAKzZ,aAC9EyZ,EAAKM,WAETymB,WAAY,SAAUngC,GAAV,GACS5B,GAAKrF,EAAQ4J,EAAMusB,EAAQh2B,EAAOghD,EAAiB71C,EAAUkC,EAAUH,EAAgP0F,EAAa0uC,EAAgBC,EA0BjWz5C,EAoBAlC,EA9CAsa,EAAO/e,KAAmFsF,EAAUyZ,EAAKzZ,QAASiwB,EAAgBxW,EAAKwW,kBAAqB/I,EAASzN,EAAKyN,QAAUzN,EAAKnJ,QAAQrR,KAAK,kBAAmBwqC,EAAqBhwB,EAAKvK,aAAe5G,GAAcmR,EAAKvK,aAAajQ,KAAK,iBAAiB7F,OAAS,EAAiD82B,EAAmC1tB,GAAKqC,GAAY4U,EAAKzZ,SAAU,SAAUK,GAC3b,MAAOA,GAAO8vB,2BAsBtB,IApBqB,gBAAV9vB,IACP8L,EAAc9L,EACdA,EAASL,EAAQK,IACVb,GAAca,GACrBnI,EAAEywB,KAAKviB,EAAYpG,GAAU,SAAU0F,EAAO4F,GAC1C,GAAIA,IAASjL,EAGT,MAFAA,GAASiL,EACTa,EAAczG,GACP,IAIfxN,EAAEywB,KAAKviB,EAAYpG,GAAU,SAAU0F,EAAO4F,GAC1C,GAAIA,EAAK9K,QAAUH,EAGf,MAFAA,GAASiL,EACTa,EAAczG,GACP,IAIdrF,IAAUI,EAAUJ,GAAzB,CAIA,GADIgB,EAAsBoY,EAAK+gC,wBAAwBn6C,GACnDA,EAAOL,SAAWK,EAAOL,QAAQ5G,OAAQ,CAKzC,IAJAsL,EAAWM,EAAe3E,EAAQL,GAClC66C,EAAiBz0C,EAAYqT,EAAK9d,QAAQqE,SAASmM,GACnD9K,EAAoBhB,GAAQ,GAC5BuL,GAAkB/M,EAAS3G,EAAE,eAAgBuhB,EAAKvK,cAAeuK,EAAKjV,MAAO,UAAYE,EAASO,IAAM,QAASP,EAAS1B,MAAM,GAC3HvE,EAAM,EAAGA,EAAM4B,EAAOL,QAAQ5G,OAAQqF,IAClCo8C,EAAe76C,QAAQvB,GAAK6B,QAC7B5F,KAAK8lC,WAAWngC,EAAOL,QAAQvB,GAIvC,OADAgb,GAAK6D,QAAQ1I,IAAcvU,OAAQA,IACnC,EAuBJ,GArBAy6C,EAAkB50C,GAAQ7F,EAAQwE,GAAY7E,IAC9CqB,EAAoBhB,GAAQ,GAC5BoZ,EAAKghC,sBAAsBp6C,GAAQ,GACnCoZ,EAAKuI,aACLvI,EAAK4W,cACL5W,EAAK2W,oBACDjxB,EAAYsa,EAAKjV,MACrB+1C,EAAkBO,EACdrhC,EAAKvK,cAAgBu6B,EAAqBqR,EAC1C37C,EAAYsa,EAAKvK,aAAajQ,KAAK,gBAEnCs7C,GAAmB9Q,EAEvBzmC,EAAOsF,GAAcnJ,GAAWR,GAAG47C,GACnCv3C,EAAK,GAAGrJ,MAAMyI,QAAU,GACxBwJ,GAAkB/M,EAAS3G,EAAE,eAAgBuhB,EAAKvK,cAAeuK,EAAKjV,MAAO,uBAAwBs2C,GAAiB,GAClH5zB,EAAO,KACPzN,EAAK4W,YAAYnJ,EAAOjoB,KAAK,+BAC7Bwa,EAAK2W,kBAAkBlJ,EAAOjoB,KAAK,iCACnC2M,GAAkBsb,EAAOjoB,KAAK,yBAA0B67C,GAAiB,IAEzE7qB,EAAcjwB,UAAYK,EAAOF,OAGjC,MAFAsZ,GAAKihC,sBACLjhC,EAAK6D,QAAQ1I,IAAcvU,OAAQA,IACnC,CAOJ,IALIoZ,EAAKzK,aAAey6B,EAAqBqR,EACzCpuC,GAAgB+M,EAAKzK,YAAY/P,KAAK,aAAc67C,GAEpDpuC,GAAgB+M,EAAK7P,MAAM1F,WAAY42C,EAAkBrR,GAEzDhwB,EAAKzK,YACLyK,EAAKgX,qBACLhX,EAAK+R,8BACL/R,EAAKgS,2BACLhS,EAAKiS,8BAGL,IADA6D,EAASr3B,EAAE,0DAA2DuhB,EAAKnJ,SAASpS,IAAIub,EAAK5P,OACxFxJ,EAAO9G,MAEL,CAGH,IAFAA,EAAQ,EACRkN,EAAOgT,EAAKjV,MAAMkqB,OAAOzvB,KAAK,OACzBR,EAAM,EAAGrF,EAASqN,EAAKrN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAErD,GADAmI,EAAWH,EAAKhI,GAAK9E,MAAMJ,MACvBkN,EAAKhI,GAAKwN,UAAUpF,QAAQ,sBAC5BtN,GAASmZ,GAAWjM,EAAKhI,QAG7B,IAAIgI,EAAKhI,GAAKwN,UAAUpF,QAAQ,kBAC5BtN,GAASmZ,GAAWjM,EAAKhI,QAD7B,CAIA,GAAImI,EAASC,QAAQ,QAAW,CAC5BtN,EAAQ,CACR,OAEJA,GAASmN,SAASE,EAAU,IAEhC6S,EAAK6R,aAAe,KAChB/xB,IACAg2B,EAAO5G,KAAK,WACRjuB,KAAKf,MAAMJ,MAAQA,EAAQ,OAE/BkgB,EAAK6R,aAAe/xB,EACpBkgB,EAAK8yB,wBA1BThd,GAAOh2B,MAAM,GA8BrBkgB,GAAKiX,0BACLjX,EAAKkS,uBACDuE,EAAiC92B,OAAS,GAC1CqgB,EAAK+W,mBAET/W,EAAK6D,QAAQ1I,IAAcvU,OAAQA,MAEvCm6C,wBAAyB,SAAUn6C,GAC/B,GAAIsqB,GAAMtqB,KACV,OAAI4B,GAAY0oB,EAAIzoB,OACTb,EAEAM,GAGfisC,UAAW,SAAU4H,GAAV,GACHlzC,GAAU5H,KAAK4H,QACfu4B,EAAUngC,KAAKiB,QAAQwnB,YAAczoB,KAAKiB,QAAQwnB,WAAW0X,OAC7DngC,MAAKk3B,gBAAuC,UAArBl3B,KAAK42B,YAC5BhvB,EAAU5H,KAAKk3B,eACRl3B,KAAKoE,eAAiB+7B,EAC7Bv4B,EAAU5H,KAAK4V,QACR5V,KAAK4H,QAAQsI,GAAG,SACvBtI,EAAU5H,KAAK4H,QAAQyD,SAChBrL,KAAKqE,SAAWrE,KAAKqE,QAAQ3F,SACpCkJ,EAAU5H,KAAKqE,SAEf87B,GAAW2a,EACXp7C,GAAMgY,GAAGsN,SAASpd,EAASkzC,GACvBh8C,OAAQkB,KAAKqE,QAAQvF,SACrBgX,IAAK9V,KAAKqE,QAAQ,GAAGrC,UACrB2iC,SAAS,IAGbjlC,GAAMgY,GAAGsN,SAASpd,EAASkzC,IAGnCuF,QAAS,SAAUtgD,EAAMugD,GACrBtgD,KAAK+wB,2BACL/wB,KAAKgxB,0BACDhxB,KAAKqE,UACLrE,KAAK6xC,mBACL7xC,KAAKqnB,qBAELrnB,KAAKsU,aACLtU,KAAK+4B,oBAEL/4B,KAAK2oB,oBAAsB23B,GAAStgD,KAAK4yC,cACrC0N,IACAtgD,KAAK4yC,WAAa,MAEtB5yC,KAAK2oB,kBAAkBzD,oBAEvBllB,KAAKuqB,OAASvqB,KAAKuqB,MAAM3iB,SACzB5H,KAAKuqB,MAAMjC,OAAOg4B,GAElBtgD,KAAKu2B,qBACLv2B,KAAKixB,sBAAqB,IAGlCsvB,iBAAkB,WACd,GAAIlS,GAASv2B,IACb,SAAKu2B,IAGEruC,KAAKmP,MAAM,KAAOk/B,GAAU7wC,EAAE0X,SAASlV,KAAKmP,MAAM,GAAIk/B,IAAWruC,KAAK6gC,cAAgB7gC,KAAKsU,YAAY,KAAO+5B,GAAU7wC,EAAE0X,SAASlV,KAAKsU,YAAY,GAAI+5B,MAEnKhvB,QAAS,SAAU3R,GACf,GAAkI8tB,GAAmMglB,EAAmBC,EAApV1hC,EAAO/e,KAAM2R,EAAOoN,EAAKJ,WAAWggB,OAAQ7pB,EAAciK,EAAK9d,QAAQ6T,YAAaygB,EAAgBxW,EAAKwW,kBAAmCn2B,EAAU5B,EAAEuhB,EAAK3f,WAAYshD,GAAoB,EAAOv3C,GAAU4V,EAAKJ,WAAWqO,aAAetuB,OAAQgY,EAAUvN,EAASoE,EAAmB1F,EAAekX,EAAKzZ,UAAU5G,MACzTgP,IAAkB,eAAbA,EAAEtE,SAA4B2V,EAAK9K,UAAY8K,EAAK9d,QAAQwnB,WAAW0X,WACpD,SAApBngC,KAAK42B,aAA+C,UAArB52B,KAAK42B,cAA4B7X,EAAK0a,sBAIzElE,EAAcjwB,SACdyZ,EAAKuI,aAEL5Z,GAAkB,WAAbA,EAAEtE,QAAuB2V,EAAK9K,UAAY8K,EAAK9K,SAAShT,QAAQ8S,OAASvI,GAAQuT,EAAK9K,SAAShT,QAAQ8S,MAAOrG,EAAEmE,WACrHkN,EAAK9K,SAAShT,QAAQ8S,MAAMyL,OAAOxF,GAAQ+E,EAAK+a,qBAEpDpsB,EAAIA,MACAqR,EAAK6D,QAAQ,eACTxZ,OAAQsE,EAAEtE,QAAU,SACpB4B,MAAO0C,EAAE1C,MACT6G,MAAOnE,EAAEmE,UAIbnE,EAAEtE,SAAWuR,IAAQoE,EAAKuf,uBAC1Bvf,EAAKwM,mBACLxM,EAAKuZ,uBAETvZ,EAAKoL,cAAc,WACdpL,EAAKyxB,0BACF17B,IAAgBiK,EAAKwhC,oBAAsBxhC,EAAKmY,gBAAkBnY,EAAKmY,eAAevlB,KAAK,kBAC3F+uC,EAAoBthD,EAAQ8Q,GAAG,MAC/BsrB,EAAeklB,EAAoBthD,EAAQiM,SAAS7B,SAAS,uBAAuBwB,MAAM5L,EAAQ,IAAMuP,KAAKlE,IAAIsU,EAAKyX,UAAUp3B,GAAU,IAE9I2f,EAAKwM,oBAELxM,EAAK9d,QAAQwnB,YAAc1J,EAAK9d,QAAQwnB,WAAW0X,SACnDjgB,aAAanB,EAAK0L,kBAClB1L,EAAK0L,iBAAmB1V,WAAW,WAC1BgK,EAAKyxB,yBACNzxB,EAAKm0B,WAAU,IAEpB,MAEHn0B,EAAKm0B,WAAU,GAEnBn0B,EAAK2Q,oBACL3Q,EAAKgO,SACAhO,EAAKzZ,QAAQ5G,SACdqgB,EAAK89B,aAAa99B,EAAK4gC,eAAehuC,EAAK,GAAIxI,IAC/CuN,EAAUvN,EAAS4V,EAAKzZ,QAAQ5G,QAEpCqgB,EAAKkJ,OAAS9e,EAAS,GAAK4V,EAAKkJ,OAC7BlJ,EAAKkJ,SACLlJ,EAAKuI,aACLvI,EAAK4W,cACL5W,EAAK2W,oBACA3W,EAAK+Y,mBACN/Y,EAAKi3B,cAAc7sC,GAEvB4V,EAAKkJ,OAAS9e,EAAS,EACvB4V,EAAK4N,WAAajb,GAAUC,IAE5BoN,EAAK1a,UACLm8C,EAAoB9gD,GAAM2T,WAAW0L,EAAK1a,UAE9Co8C,EAAoB1hC,EAAK0xB,wBACzB1xB,EAAK4hC,eAAehvC,EAAM+E,EAASvN,GAC/B4V,EAAK9d,QAAQwnB,YAAc1J,EAAK9d,QAAQwnB,WAAW0X,SAAWngC,KAAKoE,gBACnE2a,EAAK0xB,wBAA0BgQ,GAEnC1hC,EAAK6hC,qBAAqBjvC,EAAM+E,EAASvN,GACpC4V,EAAK+Y,oBACN/Y,EAAKoJ,UACLpJ,EAAK4yB,0BACL5yB,EAAK00B,yBACL10B,EAAKsI,oBACLtI,EAAK8yB,iBAAiB9yB,EAAK1a,SAAWm8C,IAEtCzhC,EAAKzK,cACDihB,EAAclsB,KACd0V,EAAK1a,QAAQE,KAAK,+BAA+Bqe,QAAQ,UAClD7D,EAAKka,cACZla,EAAKka,cAAc2X,QAAQhuB,QAAQ,WAEnC7D,EAAKnJ,QAAQrC,IAAI,SAAU,SAAU7F,GACjCA,EAAEuqB,oBAENlZ,EAAK1a,QAAQue,QAAQ,YAGxB7D,EAAKyxB,yBACNzxB,EAAK8hC,gBAAgBrlB,EAAcklB,GAEnC3hC,EAAKka,eACLla,EAAKka,cAAc6nB,iBAEnB/hC,EAAK/K,YACL+K,EAAK/K,WAAW+sC,mBAEpBhiC,EAAKiiC,mBAAmB,WACpBjiC,EAAKoL,cAAc,aAEnBpL,EAAK6e,oBACL7e,EAAKikB,yBAAwB,GAE7BjkB,EAAK9d,QAAQgoB,mBAAqBlK,EAAK/K,aAAetU,GAAMgY,GAAG8qB,WAAWC,aAAa1jB,EAAK9d,QAAQ+S,YAAY1L,MAAQyW,EAAK6e,sBAAwB7e,EAAKlN,QAAQnT,QAAUqgB,EAAKJ,WAAW8F,kBAC5L1F,EAAKkiC,oBAETliC,EAAK6D,QAAQxI,OAEjBymC,gBAAiB,SAAUrlB,EAAcklB,GAAxB,GAQLj0C,GACA8oB,EAUAhrB,EACAmM,EASA+f,CA5BR,MAAI+E,IAAiB94B,GAAa84B,EAAe,GAAjD,CAIA,GADAx7B,KAAK++B,iBACD2hB,EACA1gD,KAAK6U,YAAY7U,KAAK8J,MAAMvF,KAAK,yBAAyBN,GAAGu3B,QAC1D,CAuBH,GAtBI/uB,EAAW,EACX8oB,EAAgBv1B,KAAKu1B,kBACrBv1B,KAAKkqC,iBAEDz9B,EADA8oB,EAAclsB,KACHrJ,KAAK2oB,kBAAkB3e,SAAShK,KAAKkqC,kBAErClqC,KAAKkqC,iBAGpB1O,EAAe,EAEfjxB,EAAM/M,IAENwC,KAAKsU,cACL/J,EAAMvK,KAAKsU,YAAY/P,KAAK,aAAaN,GAAGwI,IAEhDlC,EAAMA,EAAI/G,IAAIxD,KAAKkP,MAAM1F,WAAWvF,GAAGwI,IACnCzM,KAAKk0B,uBACLxd,EAAU1K,SAASzB,EAAIhG,KAAK,YAAYzB,KAAK,WAAY;AACzD04B,EAAex7B,KAAKqqC,mBAAqB3zB,EAAU,EAAIA,EAAU,EAAI,IAErE+f,EAAKlsB,EAAIhG,KAAK,iDAAiDN,GAAGu3B,IACjE/E,EAAG/3B,QAAU88B,EAAe,EAC7B,MAEAx7B,MAAKk0B,qBACLl0B,KAAK6U,YAAY4hB,GAAI,GAAM,GAE3Bz2B,KAAK6U,YAAY4hB,GAGrBz2B,KAAK2pC,UACLx2B,GAAWnT,KAAK2pC,SAASr7B,QAAQ,SAAS,IAAI,KAGtD2yC,kBAAmB,WACf,GAAyCC,GAArCniC,EAAO/e,KAAMkpC,EAAUnqB,EAAKlN,QAAuBxL,EAAKgS,GAAW0G,EAAKJ,WAAW1d,QAAQ65B,OAAO/mB,OAASgL,EAAKJ,WAAW1d,QAAQ65B,OAAO/mB,MAAM0K,GAAGwc,QAAUlc,EAAKJ,WAAW1d,QAAQ65B,OAAO/mB,MAAM1N,EACtM66C,GAAep5C,GAAKohC,EAAS,SAAU3+B,GACnC,GAAI42C,GAAcpiC,EAAKqb,SAAS7vB,GAAKlE,EACrC,IAAI0Y,EAAK+L,aAAaq2B,GAClB,MAAO52C,KAGfwU,EAAK8e,OAAOqjB,IAEhB/2B,cAAe,SAAUi3B,GACrB1hD,GAAMgY,GAAG0O,gBAAgB3H,GAAG0L,cAAczL,KAAK1e,KAAMohD,GACzC,YAARA,GAAuBphD,KAAK2e,YAAe3e,KAAK2e,WAAW1d,QAAQk/B,SACnEngC,KAAKqhD,sBAETrhD,KAAKshD,mBAAmBF,GACxBphD,KAAKuhD,yBAAyBH,IAElCC,oBAAqB,WACjB,GAAItiC,GAAO/e,IACP+e,GAAKqP,gBACLrP,EAAKiP,QAAQ,UAAW,WACpB,OAAS7pB,SAAU4a,EAAK7P,MAAM1F,SAAS,oBAE3CuV,EAAK7P,MAAM3K,KAAK,kBAAkB8K,UAG1CiyC,mBAAoB,SAAUF,GAC1B,GAAIriC,GAAO/e,KAAMyE,EAAYsa,EAAK7P,KAC9B6P,GAAK3a,gBACLK,EAAYsa,EAAKzK,YAAY/P,KAAK,UAElCwa,EAAKkJ,QACLlJ,EAAKiP,QAAQozB,EAAK,WACd,OACIj9C,SAAUM,EAAU+E,SAAS,mBAC7BmI,KAAMnU,EAAE8C,IAAIoR,GAAUqN,EAAKJ,WAAWggB,QAAS,SAAUvE,GACrD,OAASA,SAAUA,SAMvCmnB,yBAA0B,SAAUH,GAChC,GAAIriC,GAAO/e,KAAMyE,EAAYsa,EAAK7P,KAC9B6P,GAAK3a,gBACLK,EAAYsa,EAAKnX,SAEjBmX,EAAKkJ,QAAUlJ,EAAKqN,qBACpBrN,EAAKiP,QAAQozB,EAAK,WACd,OACIj9C,SAAUM,EAAUF,KAAK,mBACzBoN,KAAMnU,EAAE8C,IAAIwR,GAAaiN,EAAKJ,WAAWggB,QAAS,SAAUvE,GACxD,OAASA,SAAUA,SAMvCumB,eAAgB,SAAUhvC,EAAM+E,EAASvN,GACrC,GAAiBpF,GAAKrF,EAAgFm/C,EAAe2D,EAAjHziC,EAAO/e,KAAmBoP,EAAO,GAAIghB,EAAiC,MAAtBrR,EAAK3a,cAAuBq9C,EAAgB,KAAqCh5B,EAAa1J,EAAK9d,QAAQwnB,WAAYu0B,GACnK7zB,YAAapK,EAAKoK,YAClBC,eAAgBrK,EAAKqK,eACrBgD,oBAAqBrN,EAAKqN,oBAC1BqJ,0BAA2B1W,EAAK0W,0BAUxC,IARIhN,GAAcA,EAAW0X,UAAYphB,EAAKJ,WAAW1d,QAAQk/B,UAC7DphB,EAAK0xB,wBAA0B,EAC3B1xB,EAAK1a,UACL0a,EAAK1a,QAAQ,GAAG8c,UAAY,IAGpCsgC,EAAgB1iC,EAAK0xB,wBAA0B,EAC/C/5B,EAAU0Z,EAAW1Z,EAAUnJ,EAAmBD,EAAqByR,EAAKzZ,UAAU5G,OAASgY,EAC3FvN,EAAS,EAWT,IAVAuN,EAAU0Z,EAAW1Z,EAAUvN,EAASuN,EACpCqI,EAAK0K,gBACL/S,IAEAqI,EAAKqN,sBACLrN,EAAKs+B,8BAAgCt+B,EAAKJ,WAAW5M,cAErDgN,EAAK9d,QAAQwnB,WAAW0X,UACxBqhB,EAAiBziC,EAAKJ,WAAW+iC,WAAWhjD,QAE3CqF,EAAM,EAAGrF,EAASiT,EAAKjT,OAAQqF,EAAMrF,EAAQqF,IACzCgb,EAAKs/B,iBACNt/B,EAAKs/B,mBAETR,EAAgB2D,GAAkBz9C,IAAQ4N,EAAKjT,OAAS,GAAK8iD,IAAmBziC,EAAKJ,WAAW6F,QAChGpV,GAAQ2P,EAAK2+B,cAAc/rC,EAAK5N,GAAM2S,EAAS,EAAG0Z,EAAWtZ,GAA+BL,GAAiBumC,EAAW5sB,EAAUytB,OAGtIzuC,IAAQ2P,EAAKg+B,UAAUprC,EAAMqrC,EAE7ByE,IACA1iC,EAAK7P,MAAMiB,OAAOf,GAClB8Q,aAAanB,EAAK4L,sBAClB5L,EAAK4L,qBAAuB5V,WAAW,WAC/BgK,EAAKqgC,mBACLrgC,EAAK4hB,cAAc5hB,EAAKqgC,kBACxBrgC,EAAKqgC,iBAAmB,QAGhCrgC,EAAKyxB,wBAA0B,MAE/BzxB,EAAK7P,MAAQD,GAAc8P,EAAK7P,MAAO6P,EAAK5P,MAAOC,EAAMpP,KAAKiB,QAAQksB,WAG9E2I,iBAAkB,WACd,GAAoH6rB,GAA4Dr8C,EAASoR,EAASsW,EAAOlnB,EAAOH,EAAQ+0B,EAAUh9B,EAAMkkD,EAAiB/X,EAAgBC,EAAqB+X,EAAaC,EAAoBC,EAAYvzC,EAAOinB,EAA2BusB,EAAzWjjC,EAAO/e,KAAM2R,EAAOoN,EAAK4N,WAAYjb,EAAYqN,EAAKnJ,QAAQrR,KAAK,mBAAoB4E,EAAS4V,EAAKmJ,UAAgCkI,EAAiC,MAAtBrR,EAAK3a,aACzJsN,GAAUuc,KAAK,SAAUjjB,EAAOT,GAC5Bw3C,EAAavkD,EAAE+M,GACfs/B,EAAiBkY,EAAWzzC,QAAQ,SAASjD,SAC7Cy+B,EAAsBD,EAAe35B,GAAG,IAAMkJ,IAC9C9T,EAAgCiI,EAAtBu8B,EAAyCjiC,EAAea,EAAcqW,EAAKzZ,UAAgCuC,EAAee,EAAiBmW,EAAKzZ,WAC1JkJ,EAAQuzC,EAAWx9C,KAAK,IAAM8U,IAAgB3a,OAC1C0xB,GACAuxB,EAAsB7X,EAAsBrzB,GAAkBK,GAC9DJ,EAAUozB,EAAsBxkC,EAAQ5G,OAASyK,EAASqF,EAAQlJ,EAAQ5G,SAE1EijD,EAAsBlrC,GACtBC,EAAUpR,EAAQ5G,OAASyK,EAASqF,GAExCwe,EAAQhiB,GAAS2G,EAAKjT,OAASiT,EAAK3G,EAAQ2G,EAAKjT,QAAUiT,EAAK3G,GAChElF,EAAQknB,EAAMlnB,MACdH,EAASmC,GAAKqC,GAAY4U,EAAKzZ,SAAU,SAAUK,GAC/C,MAAOA,GAAOG,OAASA,IACxB,OACHk8C,IAAwBr8C,EAAOq4C,sBAAuBn2C,EAAekX,EAAKzZ,SAAS,GAAGmwB,4BAA4B5tB,EAAekX,EAAKzZ,SAAS,GAC/Io1B,EAAW/0B,EAAOq4C,oBAAsBr4C,EAAOq4C,oBAAsBn2C,EAAekX,EAAKzZ,SAAS,GAAGmwB,0BACrG/3B,GAAQiI,EAAOysB,QAAUrT,EAAK9d,QAAQioB,aAAejY,GAAWtL,EAAOysB,OAAO,GAAQzsB,EAAOysB,QAAUtsB,GAAS,KAAO+K,GAAiBmc,EAAM3sB,MAAOsF,EAAOsK,OAAQtK,EAAO+yB,OAAQ/yB,EAAOJ,SAC1L4D,EAASA,EACTy4C,EAAkB7iC,EAAKk+B,WAAWjwB,GAAO,EAAOg1B,GAChDvsB,EAA4BqU,EAAsB/qB,EAAKy6B,gCAAkCz6B,EAAK0W,0BAC1FiF,IACAh9B,QAAcg9B,KAAare,GAAWqe,EAASknB,GAAmBliD,GAAMg7B,SAASA,GAAUknB,IAE/FC,EAAcE,EAAW/tB,OAAOt1B,OAASqjD,EAAW/tB,OAAS+tB,EAAW12C,SACxEy2C,EAAqBtkD,EAAEi4B,EAA4BA,EAA0B51B,MAAW+hD,GACpF7+C,WAAYyL,EACZkI,QAASvN,EAASqF,EAClB9Q,KAAMA,KACJikD,EAAoBjrC,EAASlI,EAAO9Q,IACtCmkD,EAAY3xC,GAAG,SACf2xC,EAAYzxC,QAAQ0xC,GAEpBD,EAAYt0B,MAAMu0B,GAEtBC,EAAWx1C,YAGnBq0C,qBAAsB,SAAUjvC,EAAM+E,EAASvN,GAAzB,GACHpF,GAAKrF,EAOZyQ,EAPJC,EAAO,GAAiBqyC,EAAgB,KAAMzE,GAC1C7zB,YAAanpB,KAAKisB,kBAClB7C,eAAgBppB,KAAKksB,qBACrBE,oBAAqBpsB,KAAKqsB,0BAC1BoJ,0BAA2Bz1B,KAAKw5C,gCAExC,IAAIx5C,KAAKoE,cAAe,CAGpB,GAFI+K,EAAQnP,KAAKsU,YACjBmtC,EAAgBzhD,KAAKywC,wBAA0B,EAC3CtnC,EAAS,EAET,IADAuN,GAAoB7O,EAAesC,GAAYvB,EAAiB5I,KAAKsF,WAAW5G,OAC3EqF,EAAM,EAAGrF,EAASiT,EAAKjT,OAAQqF,EAAMrF,EAAQqF,IAC9CqL,GAAQpP,KAAK09C,cAAc/rC,EAAK5N,GAAM2S,EAAS,EAAGD,GAAiBumC,GAAW,EAAOh9C,KAAKiB,QAAQwnB,WAAW0X,SAAWp8B,IAAQ4N,EAAKjT,OAAS,OAGlJ0Q,GAAOpP,KAAK+8C,UAAUprC,EAAMqrC,EAE5ByE,GACAtyC,EAAM3F,SAAS,SAAS2G,OAAOf,GAE/BH,GAAcE,EAAM3F,SAAS,SAAU2F,EAAOC,EAAMpP,KAAKiB,QAAQksB,UAErEntB,KAAK+wB,6BAGb0iB,uBAAwB,WAChBzzC,KAAKiB,QAAQ+nB,SAASi5B,iBAAkB,GACxCjiD,KAAK4V,QAAQrR,KAAK,iBAAiBu2C,OAAO96C,KAAK2e,WAAW6F,SAAWxkB,KAAK2e,WAAWO,aAG7Fga,kBAAmB,SAAU3mB,EAAQC,GAAlB,GACkCzO,GAazCiP,EACAC,EACAnU,EAfJuK,EAAOkJ,EAAO,GAAGlJ,KAAM3K,EAAS2K,EAAK3K,OAAawjD,EAAQ1vC,EAAO,GAAGnJ,KAAM84C,EAAa5vC,EAAO/O,IAAIgP,GAAS4vC,EAAmBD,EAAWzjD,OAAQ2jD,IACrJ,KAAKt+C,EAAM,EAAGA,EAAMrF,GACXwjD,EAAMn+C,GADaA,IAIpBsF,EAAKtF,GAAK9E,MAAMH,SAChBuK,EAAKtF,GAAK9E,MAAMH,OAASojD,EAAMn+C,GAAK9E,MAAMH,OAAS,GAG3D,KAAKiF,EAAM,EAAGA,EAAMrF,GACXwjD,EAAMn+C,GADaA,IAIpBiP,EAAgB3J,EAAKtF,GAAKhC,aAC1BkR,EAAgBivC,EAAMn+C,GAAKhC,aAC3BjD,EAAS,EACTkU,EAAgBC,EAChBnU,EAASkU,EACFA,EAAgBC,IACvBnU,EAASmU,GAEbovC,EAAQlkD,KAAKW,EAEjB,KAAKiF,EAAM,EAAGA,EAAMq+C,EAAkBr+C,IAClCo+C,EAAWp+C,GAAK9E,MAAMyI,QAAU,MAEpC,KAAK3D,EAAM,EAAGA,EAAMrF,EAAQqF,IACpBs+C,EAAQt+C,KACRsF,EAAKtF,GAAK9E,MAAMH,OAASojD,EAAMn+C,GAAK9E,MAAMH,OAASujD,EAAQt+C,GAAO,EAAI,KAG9E,KAAKA,EAAM,EAAGA,EAAMq+C,EAAkBr+C,IAClCo+C,EAAWp+C,GAAK9E,MAAMyI,QAAU,MAIxChI,GAAM4iD,YACN5iD,GAAM4iD,WAAWziD,OAAO4X,GAAKW,WAE7B1Y,GAAM6iD,WACN7iD,GAAM6iD,SAAS1iD,OAAO4X,GAAKW,WAC3BX,GAAKW,UAAUoqC,uBAAyB,SAAUx9B,GAgC9C,QAASmY,KACDslB,GAAYC,IAAiBhgD,GAC7Bic,EAAWpL,IAAI,SAAUovC,GACzBhkC,EAAW+G,KAAKg9B,KAEhB/uC,EAAK0L,UACLsjC,KAGR,QAASA,KACLC,EAAK1+C,SAASpD,SAASe,KACvB,IAAIZ,GAAUzD,EAAEqC,UAAW8T,EAAK1S,QAAQilB,KACpC28B,cAAc,EACd79B,SAAU,SAAUk7B,GAChBl7B,EAASuD,QACL7C,KAAMw6B,EAAEx6B,KACRo9B,WAAY5C,EAAE6C,QACd/9B,SAAU,GAAMk7B,EAAE6C,QAAU7C,EAAEphC,WAAa,EAC3CA,WAAYohC,EAAEphC,eAI1Bpf,IAAMsjD,QAAQC,QAAQC,EAAOjiD,GAASkiD,OAAO,WACzCP,EAAKr2C,WACNqa,KAAK,SAAUoG,GACd5pB,EAAO+5B,QAAQnQ,GACfrZ,EAAKyvC,0BAA0BzvC,EAAKrO,SAAS,KAC9C84B,KAAK,SAAUilB,GACdjgD,EAAO65B,OAAOomB,KAGtB,QAASC,KAAT,GACQP,GAAUpkC,EAAW+G,OACrB5G,EAAa2jC,EAAW9jC,EAAWG,aAAe,CACtDjd,GAAKsO,OAAOozC,EAAS/5C,SAAS,0BAC1Bu5C,EAAUjkC,EACVH,EAAW+G,KAAKq9B,EAAU,IAE1BpkC,EAAWa,OAAO,SAAU8jC,GAC5BnmB,KAvE4B,GAWhC+lB,GAmBArhD,EACA6gD,EA9BA/uC,EAAO3T,KACPoD,EAAS,GAAI5F,GAAEw/B,SACfre,EAAahL,EAAKgL,WAClB8jC,EAAW9uC,EAAK1S,QAAQilB,IAAIu8B,SAC5Bc,EAAW5vC,EAAKiC,QAAQrR,KAAK,+BAA+Bic,QAC5DoiC,EAAOplD,EAAE,SAASiG,KAClBuG,SAAU,WACV2C,UACAmJ,UAuEJ,OApEAnC,GAAKyvC,0BAA0BzvC,EAAKrO,SACpC49C,EAAQvvC,EAAKiC,QAAQstC,QAAQz/C,KACzB3E,OAAQ,OACRD,MAAO,SACRqF,SAAS0+C,GACZM,EAAM3+C,KAAK,mBAAmBd,KAC1B3E,OAAQ,OACRD,MAAO,OACP0hB,SAAU,YAEd2iC,EAAM3+C,KAAK,6CAA6Cd,KACpD3E,OAAQ,OACRD,MAAO,OACP0hB,SAAU,YAEd2iC,EAAM3+C,KAAK,sDAAsDgI,SACjE22C,EAAM3+C,KAAK,sDAAsDd,KAAM+/C,aAAc,IACrFxjD,KAAKyjD,iBAAiBz+B,GAClBnjB,EAAOqhD,EAAM3+C,KAAK,+BAA+Bic,QAAQnR,QACzDqzC,EAAe/jC,EAAW+G,OA2C1B+8B,GACA9jC,EAAWc,KAAK,SAAU6jC,GAC1B3kC,EAAW+G,KAAK,IAEhB49B,IAEGlgD,EAAO85B,WAElBzlB,GAAKW,UAAUgrC,0BAA4B,SAAU99C,EAASo+C,GAAnB,GAEnC/9C,GACAg+C,EACAC,EACAC,EACKrlD,EALLE,EAAS4G,EAAQ5G,MAKrB,KAASF,EAAI,EAAGA,EAAIE,EAAQF,IACxBmH,EAASL,EAAQ9G,GACjBmlD,EAAah+C,EAAOg+C,WACfD,EAiBG/9C,EAAOm+C,sBACPn+C,EAAOm+C,sBAAuB,EAC1Bn+C,EAAOC,OACP5F,KAAK8lC,WAAWngC,GAEhB3F,KAAKgmC,WAAWrgC,IAEbA,EAAOL,SACdtF,KAAKojD,0BAA0Bz9C,EAAOL,QAASo+C,IAxBlB,gBAAtB/9C,GAAOg+C,aACdA,EAAah+C,EAAOg+C,WAAWz9B,KAEnC09B,GAAmBj+C,EAAOC,QAAU+9C,KAAe,EACnDE,EAAsBl+C,EAAOC,QAAU+9C,KAAe,EACtDA,EAAaC,GAAmBC,EAC3BF,GAAeh+C,EAAOC,OAGhB+9C,GAAch+C,EAAOC,QAC5BD,EAAOm+C,sBAAuB,EAC9B9jD,KAAK8lC,WAAWngC,IACTg+C,GAAch+C,EAAOL,SAC5BtF,KAAKojD,0BAA0Bz9C,EAAOL,UANtCK,EAAOm+C,sBAAuB,EAC9B9jD,KAAKgmC,WAAWrgC,MAqBhC8R,GAAKW,UAAU2rC,SAAW,SAAU/+B,GAWhC,QAASmY,KACDslB,GAAYC,IAAiBhgD,GAC7Bic,EAAWa,OAAO,SAAUwkC,GAC5BrlC,EAAWpL,IAAI,SAAU,WACrBnQ,EAAO+5B,QAAQ8mB,KAEnBtlC,EAAW+G,KAAKg9B,IAEhBt/C,EAAO+5B,QAAQ8mB,GAGvB,QAASD,KACLrwC,EAAKyvC,0BAA0BzvC,EAAKrO,SACpCqO,EAAKuwC,gBAAiBrlD,MAAO8U,EAAKiC,QAAQ/W,UAAaslD,WAAYxwC,EAAK1S,QAAQilB,IAAIi+B,aAAchmB,KAAK,SAAUnR,GAAV,GAC/F+1B,GAAUpkC,EAAW+G,OACrB5G,EAAa2jC,EAAW9jC,EAAWG,aAAe,EAClDslC,GACA1+B,KAAMsH,EACN81B,WAAYC,EACZ/9B,SAAU+9B,EAAUjkC,EACpBA,WAAYA,EAEhBnL,GAAKyvC,0BAA0BzvC,EAAKrO,SAAS,GAC7C0f,EAASuD,OAAO67B,GAChBH,EAAI9zC,OAAOi0C,EAAK1+B,MACZq9B,EAAUjkC,EACVH,EAAW+G,KAAKq9B,EAAU,GAE1B5lB,MAELiB,KAAK,SAAUilB,GACdjgD,EAAO65B,OAAOomB,KA1CA,GAKlBjgD,GACAub,EACA8jC,EAEAwB,EACAvB,EATA/uC,EAAO3T,IACX,OAAI2T,GAAK1S,QAAQilB,IAAIm+B,WAA2C,QAA9B1wC,EAAK1S,QAAQilB,IAAIm+B,UACxC1wC,EAAK6uC,uBAAuBx9B,IAEnC5hB,EAAS,GAAI5F,GAAEw/B,SACfre,EAAahL,EAAKgL,WAClB8jC,EAAW9uC,EAAK1S,QAAQilB,IAAIu8B,SAChCziD,KAAKyjD,iBAAiBz+B,GAClBi/B,EAAM,GAAIvkD,IAAMsjD,QAAQsB,MACxB5B,EAAe/jC,EAAW+G,OAmC1B+8B,GACA9jC,EAAWc,KAAK,SAAUukC,GAC1BrlC,EAAW+G,KAAK,IAEhBs+B,IAEG5gD,EAAO85B,YAElBzlB,GAAKW,UAAUqrC,iBAAmB,SAAU1mB,GAAV,GAQ1BwnB,GAPAC,EAAUhnD,EAAE,4EAChBgnD,GAAQp0C,QAAQpQ,KAAK4V,QAAQstC,QAAQz/C,KACjCuG,SAAU,WACV8L,IAAK,EACLnJ,KAAM,KAEV3M,KAAK4V,QAAQzF,OAAOq0C,GAChBD,EAAK/mD,EAAE,wCAA0C0G,SAASsgD,GAASC,kBACnExqB,KAAM,QACNyqB,WAAY,GACZhgC,IAAK,EACLja,IAAK,EACLpK,MAAO,IACRsR,KAAK,oBACRorB,EAAS/X,SAAS,SAAUtX,GACxB62C,EAAGlkD,MAAMqN,EAAEsX,YACZm+B,OAAO,WACNzjD,GAAMqgB,QAAQykC,GACdA,EAAQj4C,aAqMpBmL,GAAGitC,OAAOltC,IACVC,GAAGitC,OAAOptC,KACZ9X,OAAOC,MAAM2C,QACR5C,OAAOC,OACE,kBAAVnC,SAAwBA,OAAO+E,IAAM/E,OAAS,SAAUgF,EAAIC,EAAIC,IACrEA,GAAMD","file":"kendo.grid.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('util/text-metrics', ['kendo.core'], f);\n}(function () {\n (function ($) {\n window.kendo.util = window.kendo.util || {};\n var LRUCache = kendo.Class.extend({\n init: function (size) {\n this._size = size;\n this._length = 0;\n this._map = {};\n },\n put: function (key, value) {\n var map = this._map;\n var entry = {\n key: key,\n value: value\n };\n map[key] = entry;\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n },\n get: function (key) {\n var entry = this._map[key];\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n entry.older = this._tail;\n entry.newer = null;\n this._tail.newer = entry;\n this._tail = entry;\n }\n return entry.value;\n }\n }\n });\n var REPLACE_REGEX = /\\r?\\n|\\r|\\t/g;\n var SPACE = ' ';\n function normalizeText(text) {\n return String(text).replace(REPLACE_REGEX, SPACE);\n }\n function objectKey(object) {\n var parts = [];\n for (var key in object) {\n parts.push(key + object[key]);\n }\n return parts.sort().join('');\n }\n function hashKey(str) {\n var hash = 2166136261;\n for (var i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n return hash >>> 0;\n }\n function zeroSize() {\n return {\n width: 0,\n height: 0,\n baseline: 0\n };\n }\n var DEFAULT_OPTIONS = { baselineMarkerSize: 1 };\n var defaultMeasureBox;\n if (typeof document !== 'undefined') {\n defaultMeasureBox = document.createElement('div');\n defaultMeasureBox.style.cssText = 'position: absolute !important; top: -4000px !important; width: auto !important; height: auto !important;' + 'padding: 0 !important; margin: 0 !important; border: 0 !important;' + 'line-height: normal !important; visibility: hidden !important; white-space: pre!important;';\n }\n var TextMetrics = kendo.Class.extend({\n init: function (options) {\n this._cache = new LRUCache(1000);\n this.options = $.extend({}, DEFAULT_OPTIONS, options);\n },\n measure: function (text, style, options) {\n if (options === void 0) {\n options = {};\n }\n if (!text) {\n return zeroSize();\n }\n var styleKey = objectKey(style);\n var cacheKey = hashKey(text + styleKey);\n var cachedResult = this._cache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n var size = zeroSize();\n var measureBox = options.box || defaultMeasureBox;\n var baselineMarker = this._baselineMarker().cloneNode(false);\n for (var key in style) {\n var value = style[key];\n if (typeof value !== 'undefined') {\n measureBox.style[key] = value;\n }\n }\n var textStr = options.normalizeText !== false ? normalizeText(text) : String(text);\n measureBox.textContent = textStr;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n if (textStr.length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n measureBox.parentNode.removeChild(measureBox);\n return size;\n },\n _baselineMarker: function () {\n var marker = document.createElement('div');\n marker.style.cssText = 'display: inline-block; vertical-align: baseline;width: ' + this.options.baselineMarkerSize + 'px; height: ' + this.options.baselineMarkerSize + 'px;overflow: hidden;';\n return marker;\n }\n });\n TextMetrics.current = new TextMetrics();\n function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n }\n kendo.deepExtend(kendo.util, {\n LRUCache: LRUCache,\n TextMetrics: TextMetrics,\n measureText: measureText,\n objectKey: objectKey,\n hashKey: hashKey,\n normalizeText: normalizeText\n });\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.grid', [\n 'kendo.data',\n 'kendo.columnsorter',\n 'kendo.editable',\n 'kendo.window',\n 'kendo.filtermenu',\n 'kendo.columnmenu',\n 'kendo.groupable',\n 'kendo.pager',\n 'kendo.selectable',\n 'kendo.sortable',\n 'kendo.reorderable',\n 'kendo.resizable',\n 'kendo.ooxml',\n 'kendo.excel',\n 'kendo.pane',\n 'kendo.progressbar',\n 'kendo.pdf',\n 'kendo.dialog',\n 'kendo.pane',\n 'kendo.switch'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'grid',\n name: 'Grid',\n category: 'web',\n description: 'The Grid widget displays tabular data and offers rich support for interacting with data,including paging, sorting, grouping, and selection.',\n depends: [\n 'data',\n 'columnsorter',\n 'sortable'\n ],\n features: [\n {\n id: 'grid-editing',\n name: 'Editing',\n description: 'Support for record editing',\n depends: [\n 'editable',\n 'window'\n ]\n },\n {\n id: 'grid-filtering',\n name: 'Filtering',\n description: 'Support for record filtering',\n depends: ['filtermenu']\n },\n {\n id: 'grid-columnmenu',\n name: 'Column menu',\n description: 'Support for header column menu',\n depends: ['columnmenu']\n },\n {\n id: 'grid-grouping',\n name: 'Grouping',\n description: 'Support for grid grouping',\n depends: ['groupable']\n },\n {\n id: 'grid-filtercell',\n name: 'Row filter',\n description: 'Support for grid header filtering',\n depends: ['filtercell']\n },\n {\n id: 'grid-paging',\n name: 'Paging',\n description: 'Support for grid paging',\n depends: ['pager']\n },\n {\n id: 'grid-selection',\n name: 'Selection',\n description: 'Support for row selection',\n depends: ['selectable']\n },\n {\n id: 'grid-column-reorder',\n name: 'Column reordering',\n description: 'Support for column reordering',\n depends: ['reorderable']\n },\n {\n id: 'grid-column-resize',\n name: 'Column resizing',\n description: 'Support for column resizing',\n depends: ['resizable']\n },\n {\n id: 'grid-mobile',\n name: 'Grid adaptive rendering',\n description: 'Support for adaptive rendering',\n depends: [\n 'dialog',\n 'pane',\n 'switch'\n ]\n },\n {\n id: 'grid-excel-export',\n name: 'Excel export',\n description: 'Export grid data as Excel spreadsheet',\n depends: ['excel']\n },\n {\n id: 'grid-pdf-export',\n name: 'PDF export',\n description: 'Export grid data as PDF',\n depends: [\n 'pdf',\n 'drawing',\n 'progressbar'\n ]\n }\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, DataSource = kendo.data.DataSource, ObservableObject = kendo.data.ObservableObject, tbodySupportsInnerHtml = kendo.support.tbodyInnerHtml, activeElement = kendo._activeElement, Widget = ui.Widget, outerWidth = kendo._outerWidth, outerHeight = kendo._outerHeight, keys = kendo.keys, isPlainObject = $.isPlainObject, extend = $.extend, map = $.map, grep = $.grep, isArray = $.isArray, inArray = $.inArray, push = Array.prototype.push, proxy = $.proxy, isFunction = kendo.isFunction, isEmptyObject = $.isEmptyObject, contains = $.contains, math = Math, DOT = '.', PROGRESS = 'progress', ERROR = 'error', HIERARCHY_CELL_CLASS = 'k-hierarchy-cell', DATA_CELL = ':not(.k-group-cell):not([' + kendo.attr('virtual') + ']):not(.k-hierarchy-cell:not(:has(.k-icon.k-i-collapse,.k-icon.k-i-expand))):visible', SELECTION_CELL_SELECTOR = 'tbody>tr:not(.k-grouping-row):not(.k-detail-row):not(.k-group-footer) > td:not(.k-group-cell):not(.k-hierarchy-cell)', NAVROW = 'tr:not(.k-footer-template):visible', NAVCELL = ':not(.k-group-cell):not(.k-detail-cell):not(.k-hierarchy-cell):visible', ITEMROW = 'tr:not(.k-grouping-row):not(.k-detail-row):not(.k-footer-template):not(.k-group-footer):visible', FIRSTITEMROW = ITEMROW + ':first', LASTITEMROW = ITEMROW + ':last', FIRSTNAVITEM = NAVROW + ':first>' + NAVCELL + ':first', HEADERCELLS = 'th.k-header:not(.k-group-cell):not(.k-hierarchy-cell)', NS = '.kendoGrid', CONTENTRLOCKEDCONTAINER = 'k-grid-content-locked', GROUPCELLCLASS = 'k-group-cell', EDIT = 'edit', BEFOREEDIT = 'beforeEdit', SAVE = 'save', REMOVE = 'remove', DETAILINIT = 'detailInit', FILTERMENUINIT = 'filterMenuInit', COLUMNMENUINIT = 'columnMenuInit', FILTERMENUOPEN = 'filterMenuOpen', COLUMNMENUOPEN = 'columnMenuOpen', CELLCLOSE = 'cellClose', CHANGE = 'change', COLUMNHIDE = 'columnHide', COLUMNSHOW = 'columnShow', SAVECHANGES = 'saveChanges', DATABOUND = 'dataBound', DETAILEXPAND = 'detailExpand', DETAILCOLLAPSE = 'detailCollapse', ITEM_CHANGE = 'itemchange', PAGE = 'page', PAGING = 'paging', SCROLL = 'scroll', SYNC = 'sync', FOCUSED = 'k-state-focused', FOCUSABLE = ':kendoFocusable', SELECTED = 'k-state-selected', CHECKBOX = 'k-checkbox', CHECKBOXINPUT = 'input[data-role=\\'checkbox\\'].' + CHECKBOX, NORECORDSCLASS = 'k-grid-norecords', LINK_CLASS = 'k-link', ICON_CLASS = 'k-icon', ORDER_CLASS = 'k-sort-order', HEADER_COLUMN_MENU_CLASS = 'k-header-column-menu', FILTER_MENU_CLASS = 'k-grid-filter', STICKY_CELL_CLASS = 'k-grid-content-sticky', STICKY_HEADER_CLASS = 'k-grid-header-sticky', STICKY_FOOTER_CLASS = 'k-grid-footer-sticky', STICKY_HEADER_NO_BORDER_CLASS = 'k-grid-no-left-border', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', COLUMNSTICK = 'columnStick', COLUMNUNSTICK = 'columnUnstick', NAVIGATE = 'navigate', CLICK = 'click', MOUSEDOWN = 'mousedown', HEIGHT = 'height', TABINDEX = 'tabIndex', FUNCTION = 'function', STRING = 'string', BOTTOM = 'bottom', CONTAINER_FOR = 'container-for', FIELD = 'field', INPUT = 'input', INCELL = 'incell', INLINE = 'inline', UNIQUE_ID = 'uid', MINCOLSPANVALUE = 1, COLSPAN = 'colSpan', OVERFLOW = 'overflow', HIDDEN = 'hidden', SORT = 'sort', GROUP_SORT = 'group-sort', DELETECONFIRM = 'Are you sure you want to delete this record?', NORECORDS = 'No records available.', CONFIRMDELETE = 'Delete', CANCELDELETE = 'Cancel', COLLAPSE = 'Collapse', EXPAND = 'Expand', ARIALABEL = 'aria-label', formatRegExp = /(\\}|\\#)/gi, templateHashRegExp = /#/gi, whitespaceRegExp = '[\\\\x20\\\\t\\\\r\\\\n\\\\f]', nonDataCellsRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-group-cell|k-hierarchy-cell)' + '(' + whitespaceRegExp + '|$)'), filterRowRegExp = new RegExp('(^|' + whitespaceRegExp + ')' + '(k-filter-row)' + '(' + whitespaceRegExp + '|$)'), COMMANDBUTTONTMPL = '# if (iconClass) {#' + '#=text#' + '# } else { #' + '#=text#' + '# } #', SELECTCOLUMNTMPL = '', SELECTCOLUMNHEADERTMPL = '', isRtl = false, browser = kendo.support.browser;\n var isIE11 = browser.msie && browser.version === 11;\n var isMac = /Mac OS/.test(navigator.userAgent);\n var classNames = {\n content: 'k-content',\n widget: 'k-widget',\n scrollContainer: 'k-scroll-container'\n };\n var GroupsPager;\n if (ui.Pager) {\n GroupsPager = ui.Pager.extend({\n init: function (element, options) {\n ui.Pager.fn.init.call(this, element, extend(true, {}, options));\n this.dataSource.options.useRanges = true;\n this.dataSource._omitPrefetch = true;\n },\n options: { name: 'GroupsPager' },\n totalPages: function () {\n var that = this;\n return Math.ceil((that._collapsedTotal() || 0) / (that.pageSize() || 1));\n },\n _collapsedTotal: function () {\n var dataSource = this.dataSource;\n return dataSource ? dataSource.groupsTotal(true) || 0 : 0;\n }\n });\n }\n var VirtualScrollable = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._refreshHandler = proxy(that.refresh, that);\n that.setDataSource(options.dataSource);\n that.wrap();\n },\n setDataSource: function (dataSource) {\n var that = this;\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n }\n that.dataSource = dataSource;\n that.dataSource.bind(CHANGE, that._refreshHandler);\n that.dataSource.options.useRanges = true;\n },\n options: {\n name: 'VirtualScrollable',\n itemHeight: $.noop,\n prefetch: true,\n maxScrollHeight: 250000\n },\n events: [\n PAGING,\n PAGE,\n SCROLL\n ],\n destroy: function () {\n var that = this;\n Widget.fn.destroy.call(that);\n that.dataSource.unbind(CHANGE, that._refreshHandler);\n that.wrapper.add(that.verticalScrollbar).off(NS);\n clearTimeout(that._timeout);\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\n if (that.drag) {\n that.drag.destroy();\n that.drag = null;\n }\n that.wrapper = that.element = that.verticalScrollbar = null;\n that._refreshHandler = null;\n },\n wrap: function () {\n var that = this, scrollbar = kendo.support.scrollbar() + 1, element = that.element, wrapper;\n element.css({\n width: 'auto',\n overflow: 'hidden'\n }).css(isRtl ? 'padding-left' : 'padding-right', scrollbar);\n that.content = element.children().first();\n wrapper = that.wrapper = that.content.wrap('
').parent().bind('DOMMouseScroll' + NS + ' mousewheel' + NS, proxy(that._wheelScroll, that));\n that._wrapper();\n if (kendo.support.kineticScrollNeeded || kendo.support.touch) {\n that.wrapper.css('touch-action', 'none');\n that.drag = new kendo.UserEvents(that.wrapper, {\n global: true,\n allowSelection: true,\n start: function (e) {\n e.sender.capture();\n },\n move: function (e) {\n that.verticalScrollbar.scrollTop(that.verticalScrollbar.scrollTop() - e.y.delta);\n kendo.scrollLeft(wrapper, kendo.scrollLeft(wrapper) - e.x.delta);\n e.preventDefault();\n }\n });\n }\n that.verticalScrollbar = $('
').css({ width: scrollbar }).appendTo(element).bind('scroll' + NS, proxy(that._scroll, that));\n },\n _wrapper: function () {\n var that = this;\n if (isIE11) {\n that.wrapper.css({ 'overflow-y': SCROLL });\n that.element.css(isRtl ? 'padding-left' : 'padding-right', 0);\n }\n },\n _wheelScroll: function (e) {\n if (e.ctrlKey) {\n return;\n }\n var scrollbar = this.verticalScrollbar, scrollTop = scrollbar.scrollTop(), delta = kendo.wheelDeltaY(e);\n if (delta && !(delta > 0 && scrollTop === 0) && !(delta < 0 && scrollTop + scrollbar[0].clientHeight == scrollbar[0].scrollHeight)) {\n e.preventDefault();\n this.verticalScrollbar.scrollTop(scrollTop + -delta);\n }\n },\n _scroll: function (e) {\n var that = this, delayLoading = !that.options.prefetch, scrollTop = e.currentTarget.scrollTop, dataSource = that.dataSource, rowHeight = that.itemHeight, skip = dataSource.skip() || 0, start = that._rangeStart || skip, height = that.element.innerHeight(), isScrollingUp = !!(that._scrollbarTop && that._scrollbarTop > scrollTop), firstItemIndex = math.max(math.floor(scrollTop / rowHeight), 0), lastItemOffset = isScrollingUp ? math.ceil(height / rowHeight) : math.floor(height / rowHeight), lastItemIndex = math.max(firstItemIndex + lastItemOffset, 0);\n if (that._preventScroll) {\n that._preventScroll = false;\n return;\n }\n that._prevScrollTop = that._scrollTop;\n that._scrollTop = scrollTop - start * rowHeight;\n that._scrollbarTop = scrollTop;\n that._scrolling = delayLoading;\n if (!that._fetch(firstItemIndex, lastItemIndex, isScrollingUp)) {\n that.wrapper[0].scrollTop = that._scrollTop;\n }\n that.trigger(SCROLL);\n if (delayLoading) {\n if (that._scrollingTimeout) {\n clearTimeout(that._scrollingTimeout);\n }\n that._scrollingTimeout = setTimeout(function () {\n that._scrolling = false;\n that._page(that._rangeStart, that.dataSource.take());\n }, 100);\n }\n },\n scrollToTop: function () {\n this._scrollTo(0);\n },\n scrollToBottom: function () {\n var scrollbar = this.verticalScrollbar;\n this._scrollTo(scrollbar[0].scrollHeight - scrollbar.height());\n },\n _scrollWrapperToTop: function () {\n this.wrapper.scrollTop(0);\n },\n _scrollWrapperToBottom: function () {\n this.wrapper.scrollTop(this.wrapper[0].scrollHeight);\n },\n _scrollWrapperOnColumnResize: function () {\n var that = this;\n var wrapper = this.wrapper;\n var initialScrollTop = wrapper.scrollTop();\n if (wrapper[0].scrollWidth > wrapper[0].clientWidth) {\n if (!that._wrapperScrolled && initialScrollTop || that._isScrolledToBottom()) {\n wrapper.scrollTop(initialScrollTop + kendo.support.scrollbar());\n that._scrollTop = wrapper.scrollTop();\n that._wrapperScrolled = true;\n }\n } else if (that._wrapperScrolled) {\n if (!that._isWrapperScrolledToBottom()) {\n wrapper.scrollTop(initialScrollTop - kendo.support.scrollbar());\n that._scrollTop = wrapper.scrollTop();\n }\n that._wrapperScrolled = false;\n }\n },\n _scrollTo: function (scrollTop) {\n var that = this;\n var scrollbar = that.verticalScrollbar;\n if (scrollbar.scrollTop() !== scrollTop) {\n that._preventScroll = true;\n }\n that.wrapper.scrollTop(scrollTop);\n that._scrollTop = that.wrapper.scrollTop();\n scrollbar.scrollTop(scrollTop);\n that._scrollbarTop = scrollbar.scrollTop();\n },\n _isScrolledToTop: function () {\n return this.verticalScrollbar.scrollTop() === 0;\n },\n _isScrolledToBottom: function () {\n var scrollbar = this.verticalScrollbar;\n var scrollTop = scrollbar.scrollTop();\n return scrollTop > 0 && scrollTop >= parseInt(scrollbar[0].scrollHeight - scrollbar.height(), 10);\n },\n _isWrapperScrolledToBottom: function () {\n var wrapper = this.wrapper;\n return wrapper.scrollTop() >= parseInt(wrapper[0].scrollHeight - wrapper.height(), 10);\n },\n itemIndex: function (rowIndex) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n return rangeStart + rowIndex;\n },\n position: function (index) {\n var rangeStart = this._rangeStart || this.dataSource.skip() || 0;\n var pageSize = this.dataSource.pageSize();\n var result;\n if (index > rangeStart) {\n result = index - rangeStart;\n } else {\n result = rangeStart - index - 1;\n }\n return result > pageSize ? pageSize : result;\n },\n scrollIntoView: function (row) {\n var container = this.wrapper[0];\n var containerHeight = container.clientHeight;\n var containerScroll = !this._isScrolledToBottom() ? this._scrollTop || container.scrollTop : container.scrollTop;\n var elementOffset = row[0].offsetTop;\n var elementHeight = row[0].offsetHeight;\n if (containerScroll > elementOffset) {\n this.verticalScrollbar[0].scrollTop -= containerHeight / 2;\n } else if (elementOffset + elementHeight >= containerScroll + containerHeight) {\n this.verticalScrollbar[0].scrollTop += containerHeight / 2;\n }\n },\n _fetch: function (firstItemIndex, lastItemIndex, scrollingUp) {\n var that = this, dataSource = that.dataSource, itemHeight = that.itemHeight, take = dataSource.take(), rangeStart = that._rangeStart || dataSource.skip() || 0, currentSkip = math.floor(firstItemIndex / take) * take, fetching = false, prefetchAt = 0.33;\n var scrollbar = that.verticalScrollbar;\n var webkitCorrection = browser.webkit ? 1 : 0;\n var total = dataSource._isGroupPaged() ? dataSource.groupsTotal(true) : dataSource.total();\n if (firstItemIndex < rangeStart) {\n fetching = true;\n rangeStart = math.max(0, lastItemIndex - take);\n that._scrollTop = scrollbar.scrollTop() - rangeStart * itemHeight;\n that._page(rangeStart, take);\n } else if (lastItemIndex >= rangeStart + take && !scrollingUp) {\n fetching = true;\n rangeStart = math.min(firstItemIndex, total - take);\n if (scrollbar.scrollTop() >= scrollbar[0].scrollHeight - scrollbar[0].offsetHeight - webkitCorrection) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper[0].offsetHeight;\n } else if (that.dataSource._isGroupPaged() && firstItemIndex >= total - take) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper[0].offsetHeight - (that._scrollTop - that._prevScrollTop);\n } else {\n that._scrollTop = itemHeight;\n }\n that._page(rangeStart, take);\n } else if (!that._fetching && that.options.prefetch) {\n if (firstItemIndex < currentSkip + take - take * prefetchAt && firstItemIndex > take) {\n dataSource.prefetch(currentSkip - take, take, $.noop);\n }\n if (lastItemIndex > currentSkip + take * prefetchAt) {\n dataSource.prefetch(currentSkip + take, take, $.noop);\n }\n }\n return fetching;\n },\n fetching: function () {\n return this._fetching;\n },\n _page: function (skip, take, callback) {\n var that = this, delayLoading = !that.options.prefetch, dataSource = that.dataSource, isGroupPaged = dataSource._isGroupPaged();\n callback = isFunction(callback) ? callback : $.noop;\n if (that.trigger(PAGING, {\n skip: skip,\n take: take\n })) {\n return;\n }\n clearTimeout(that._timeout);\n that._fetching = true;\n that._rangeStart = skip;\n if (isGroupPaged && dataSource._groupRangeExists(skip, skip + take) || !isGroupPaged && dataSource.inRange(skip, take)) {\n kendo.ui.progress($(that.wrapper).parent(), true);\n dataSource.range(skip, take, function () {\n kendo.ui.progress($(that.wrapper).parent(), false);\n callback();\n that.trigger(PAGE);\n }, 'page');\n } else {\n if (!delayLoading) {\n kendo.ui.progress(that.wrapper.parent(), true);\n }\n that._timeout = setTimeout(function () {\n if (!that._scrolling) {\n if (delayLoading) {\n kendo.ui.progress(that.wrapper.parent(), true);\n }\n dataSource.range(skip, take, function () {\n kendo.ui.progress(that.wrapper.parent(), false);\n callback();\n that.trigger(PAGE);\n });\n }\n }, 100);\n }\n },\n repaintScrollbar: function (shouldScrollWrapper) {\n var that = this, html = '', maxHeight = that.options.maxScrollHeight, dataSource = that.dataSource, scrollbar = !kendo.support.kineticScrollNeeded ? kendo.support.scrollbar() : 0, wrapperElement = that.wrapper[0], totalHeight, idx, itemHeight;\n var wasScrolledToBottom = that._isScrolledToBottom();\n itemHeight = that.itemHeight = that.options.itemHeight() || 0;\n var addScrollBarHeight = wrapperElement.scrollWidth > wrapperElement.offsetWidth ? scrollbar : 0;\n totalHeight = (dataSource._isGroupPaged() ? dataSource.groupsTotal(true) : dataSource.total()) * itemHeight + addScrollBarHeight;\n for (idx = 0; idx < math.floor(totalHeight / maxHeight); idx++) {\n html += '
';\n }\n if (totalHeight % maxHeight) {\n html += '
';\n }\n that.verticalScrollbar.html(html);\n if (wasScrolledToBottom && !that._isScrolledToBottom() && !that.dataSource._isGroupPaged()) {\n that.scrollToBottom();\n }\n if (typeof that._scrollTop !== 'undefined' && !!shouldScrollWrapper) {\n wrapperElement.scrollTop = that._scrollTop;\n that._scrollWrapperOnColumnResize();\n }\n },\n refresh: function (e) {\n var that = this, dataSource = that.dataSource, rangeStart = that._rangeStart;\n var action = (e || {}).action;\n var shouldScrollWrapper = that._isScrolledToBottom() || !action || action !== ITEM_CHANGE && action !== REMOVE && action !== SYNC;\n kendo.ui.progress(that.wrapper.parent(), false);\n clearTimeout(that._timeout);\n that.repaintScrollbar(shouldScrollWrapper);\n if (that.drag) {\n that.drag.cancel();\n }\n if (typeof rangeStart !== 'undefined' && !that._fetching) {\n if (!action || action !== SYNC && action !== ITEM_CHANGE && action !== 'expandGroup') {\n that._rangeStart = dataSource.skip();\n }\n if (dataSource.page() === 1 && (!action || action !== SYNC && action !== ITEM_CHANGE && action !== 'expandGroup' && action !== 'collapseGroup')) {\n that.verticalScrollbar[0].scrollTop = 0;\n }\n }\n that._fetching = false;\n }\n });\n function attrEquals(attrName, attrValue) {\n return '[' + kendo.attr(attrName) + '=' + attrValue + ']';\n }\n function groupCells(count) {\n return new Array(count + 1).join(' ');\n }\n function stringifyAttributes(attributes) {\n var attr, result = ' ';\n if (attributes) {\n if (typeof attributes === STRING) {\n return attributes;\n }\n for (attr in attributes) {\n if (attributes[attr] !== '') {\n result += attr + '=\"' + attributes[attr] + '\"';\n }\n }\n }\n return result;\n }\n var defaultCommands = {\n create: {\n text: 'Add new record',\n className: 'k-grid-add',\n iconClass: 'k-icon k-i-plus'\n },\n cancel: {\n text: 'Cancel changes',\n className: 'k-grid-cancel-changes',\n iconClass: 'k-icon k-i-cancel'\n },\n save: {\n text: 'Save changes',\n className: 'k-grid-save-changes',\n iconClass: 'k-icon k-i-check'\n },\n destroy: {\n text: 'Delete',\n className: 'k-grid-delete',\n iconClass: 'k-icon k-i-close'\n },\n edit: {\n text: 'Edit',\n className: 'k-grid-edit',\n iconClass: 'k-icon k-i-edit'\n },\n update: {\n text: 'Update',\n className: 'k-primary k-grid-update',\n iconClass: 'k-icon k-i-check'\n },\n canceledit: {\n text: 'Cancel',\n className: 'k-grid-cancel',\n iconClass: 'k-icon k-i-cancel'\n },\n excel: {\n text: 'Export to Excel',\n className: 'k-grid-excel',\n iconClass: 'k-icon k-i-file-excel'\n },\n pdf: {\n text: 'Export to PDF',\n className: 'k-grid-pdf',\n iconClass: 'k-icon k-i-file-pdf'\n },\n search: {\n text: 'Search...',\n className: 'k-grid-search'\n }\n };\n function cursor(context, value) {\n $('th, th .k-grid-filter, th .k-link', context).add(document.body).css('cursor', value);\n }\n function reorder(selector, source, dest, before, count) {\n var sourceIndex = source;\n source = $();\n count = count || 1;\n for (var idx = 0; idx < count; idx++) {\n source = source.add(selector.eq(sourceIndex + idx));\n }\n if (typeof dest == 'number') {\n source[before ? 'insertBefore' : 'insertAfter'](selector.eq(dest));\n } else {\n source.appendTo(dest);\n }\n }\n function elements(lockedContent, content, filter) {\n return $(lockedContent).add(content).find(filter);\n }\n function attachCustomCommandEvent(context, container, commands) {\n var idx, length, command, commandName;\n commands = !isArray(commands) ? [commands] : commands;\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = commands[idx];\n if (isPlainObject(command) && command.click) {\n commandName = command.name || command.text;\n container.on(CLICK + NS, 'a.k-grid-' + (commandName || '').replace(/\\s/g, ''), { commandName: commandName }, proxy(command.click, context));\n }\n }\n }\n function normalizeColumns(columns, encoded, hide, locked, parentIds) {\n return map(columns, function (column) {\n column = typeof column === STRING ? { field: column } : column;\n var hidden;\n column.parentIds = parentIds;\n if (!isVisible(column) || hide) {\n column.attributes = addHiddenStyle(column.attributes);\n column.footerAttributes = addHiddenStyle(column.footerAttributes);\n column.headerAttributes = addHiddenStyle(column.headerAttributes);\n hidden = true;\n }\n var uid = kendo.guid();\n if (locked && !column.locked) {\n column.locked = locked;\n }\n column.headerAttributes = extend({ headers: parentIds }, column.headerAttributes);\n if (!column.headerAttributes.id) {\n column.headerAttributes = extend({ id: uid }, column.headerAttributes);\n } else {\n uid = column.headerAttributes.id;\n }\n if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden, column.locked, parentIds ? parentIds + ' ' + uid : uid);\n }\n return extend({\n encoded: encoded,\n hidden: hidden,\n locked: locked\n }, column);\n });\n }\n function columnParent(column, columns) {\n var parents = [];\n columnParents(column, columns, parents);\n return parents[parents.length - 1];\n }\n function columnParents(column, columns, parents) {\n parents = parents || [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (column === columns[idx]) {\n return true;\n } else if (columns[idx].columns) {\n var inserted = parents.length;\n parents.push(columns[idx]);\n if (!columnParents(column, columns[idx].columns, parents)) {\n parents.splice(inserted, parents.length - inserted);\n } else {\n return true;\n }\n }\n }\n return false;\n }\n function setColumnVisibility(column, visible) {\n setVisibility(column, visible, visible);\n }\n function setVisibility(column, visible, show) {\n var method = show ? removeHiddenStyle : addHiddenStyle;\n column.hidden = !visible;\n column.attributes = method(column.attributes);\n column.footerAttributes = method(column.footerAttributes);\n column.headerAttributes = method(column.headerAttributes);\n }\n function setColumnMediaVisibility(column, visible) {\n setColumnMatchesMedia(column);\n var hideByMedia = column._hideByMedia;\n setVisibility(column, visible, hideByMedia ? column.matchesMedia : visible);\n }\n function setColumnMatchesMedia(column) {\n column.matchesMedia = columnMatchesMedia(column);\n }\n function columnMatchesMedia(column) {\n return column && (isUndefined(column.media) || !isUndefined(column.media) && kendo.matchesMedia(column.media));\n }\n function isCellVisible() {\n return this.style.display !== 'none';\n }\n function isElementVisible(element) {\n return $(element)[0].style.display !== 'none';\n }\n function isVisible(column) {\n return visibleColumns([column]).length > 0;\n }\n function visibleColumns(columns) {\n return grep(columns, function (column) {\n var result = !column.hidden && column.matchesMedia !== false;\n if (result && column.columns) {\n result = visibleColumns(column.columns).length > 0;\n }\n return result;\n });\n }\n function columnsWithMedia(columns) {\n var result = [];\n var column;\n for (var i = 0; i < columns.length; i++) {\n column = columns[i];\n if (!isUndefined(column.media)) {\n if (!isUndefined(column.minScreenWidth)) {\n throw new Error('Using \\'media\\' and \\'minScreenWidth\\' options at the same time is not supported.');\n }\n result.push(column);\n }\n if (column.columns) {\n result = result.concat(columnsWithMedia(column.columns));\n }\n }\n return result;\n }\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n function toJQuery(elements) {\n return $(elements).map(function () {\n return this.toArray();\n });\n }\n function updateCellRowSpan(cell, columns, sourceLockedColumnsCount) {\n var lockedColumnDepth = depth(lockedColumns(columns));\n var nonLockedColumnDepth = depth(nonLockedColumns(columns));\n var rowSpan = cell.rowSpan;\n if (sourceLockedColumnsCount) {\n if (lockedColumnDepth > nonLockedColumnDepth) {\n cell.rowSpan = rowSpan - (lockedColumnDepth - nonLockedColumnDepth) || 1;\n } else {\n cell.rowSpan = rowSpan + (nonLockedColumnDepth - lockedColumnDepth);\n }\n } else {\n if (lockedColumnDepth > nonLockedColumnDepth) {\n cell.rowSpan = rowSpan + (lockedColumnDepth - nonLockedColumnDepth);\n } else {\n cell.rowSpan = rowSpan - (nonLockedColumnDepth - lockedColumnDepth) || 1;\n }\n }\n }\n function moveCellsBetweenContainers(sources, target, leafs, columns, container, destination, groups, action) {\n var sourcesDepth = depth(sources);\n var targetDepth = depth([target]);\n if (sourcesDepth > targetDepth) {\n var groupCells = new Array(groups + 1).join(' ');\n var rows = destination.children(':not(.k-filter-row)');\n $(new Array(sourcesDepth - targetDepth + 1).join('' + groupCells + '')).insertAfter(rows.last());\n }\n addRowSpanValue(destination, sourcesDepth - targetDepth);\n moveCells(leafs, columns, container, destination, action);\n }\n function updateCellIndex(thead, columns, offset) {\n offset = offset || 0;\n var position;\n var cell;\n var allColumns = columns;\n columns = leafColumns(columns);\n var cells = {};\n var rows = thead.find('>tr:not(.k-filter-row)');\n var filter = function () {\n var el = $(this);\n return !el.hasClass('k-group-cell') && !el.hasClass('k-hierarchy-cell');\n };\n for (var idx = 0, length = columns.length; idx < length; idx++) {\n position = columnPosition(columns[idx], allColumns);\n if (!cells[position.row]) {\n cells[position.row] = rows.eq(position.row).find('.k-header').filter(filter);\n }\n cell = cells[position.row].eq(position.cell);\n cell.attr(kendo.attr('index'), offset + idx);\n }\n return columns.length;\n }\n function depth(columns) {\n var result = 1;\n var max = 0;\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n var temp = depth(columns[idx].columns);\n if (temp > max) {\n max = temp;\n }\n }\n }\n return result + max;\n }\n function moveCells(leafs, columns, container, destination, action) {\n var sourcePosition = columnVisiblePosition(leafs[0], columns);\n var ths = container.find('>tr:not(.k-filter-row):eq(' + sourcePosition.row + ')>th.k-header');\n var t = $();\n var sourceIndex = sourcePosition.cell;\n var idx;\n for (idx = 0; idx < leafs.length; idx++) {\n t = t.add(ths.eq(sourceIndex + idx));\n }\n destination.find('>tr:not(.k-filter-row)').eq(sourcePosition.row)[action](t);\n var children = [];\n for (idx = 0; idx < leafs.length; idx++) {\n if (leafs[idx].columns) {\n children = children.concat(leafs[idx].columns);\n }\n }\n if (children.length) {\n moveCells(children, columns, container, destination, action);\n }\n }\n function columnPosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = {\n cell: cellCounts[row],\n row: row\n };\n break;\n } else if (columns[idx].columns) {\n result = columnPosition(column, columns[idx].columns, row + 1, cellCounts);\n if (result) {\n break;\n }\n }\n cellCounts[row]++;\n }\n return result;\n }\n function findParentColumnWithChildren(columns, index, source, rtl) {\n var target;\n var locked = !!source.locked;\n var targetLocked;\n do {\n target = columns[index];\n index += rtl ? 1 : -1;\n targetLocked = !!target.locked;\n } while (target && index > -1 && index < columns.length && target != source && !target.columns && targetLocked === locked);\n return target;\n }\n function findReorderTarget(columns, target, source, before, masterColumns) {\n if (target.columns) {\n target = target.columns;\n return target[before ? 0 : target.length - 1];\n } else {\n var parent = columnParent(target, columns);\n var parentColumns;\n if (parent) {\n parentColumns = parent.columns;\n } else {\n parentColumns = columns;\n }\n var index = inArray(target, parentColumns);\n if (index === 0 && before) {\n index++;\n } else if (index == parentColumns.length - 1 && !before || !source.locked && !target.columns && !before) {\n index--;\n } else if (index > 0 || index === 0 && !before) {\n index++;\n }\n var sourceIndex = inArray(source, parentColumns);\n target = findParentColumnWithChildren(parentColumns, index, source, sourceIndex > index);\n var targetIndex = inArray(target, masterColumns);\n if (target.columns && (!targetIndex || targetIndex === parentColumns.length - 1)) {\n return null;\n }\n if (target && target != source && target.columns) {\n return findReorderTarget(columns, target, source, before, masterColumns);\n }\n }\n return null;\n }\n function columnVisiblePosition(column, columns, row, cellCounts) {\n var result;\n var idx;\n row = row || 0;\n cellCounts = cellCounts || {};\n cellCounts[row] = cellCounts[row] || 0;\n for (idx = 0; idx < columns.length; idx++) {\n if (columns[idx] == column) {\n result = {\n cell: cellCounts[row],\n row: row\n };\n break;\n } else if (columns[idx].columns) {\n result = columnVisiblePosition(column, columns[idx].columns, row + 1, cellCounts);\n if (result) {\n break;\n }\n }\n if (!columns[idx].hidden) {\n cellCounts[row]++;\n }\n }\n return result;\n }\n function flatColumnsInDomOrder(columns) {\n var result = flatColumns(lockedColumns(columns));\n return result.concat(flatColumns(nonLockedColumns(columns)));\n }\n function targetParentContainerIndex(flatColumns, columns, sourceIndex, targetIndex) {\n var column = flatColumns[sourceIndex];\n var target = flatColumns[targetIndex];\n var parent = columnParent(column, columns);\n columns = parent ? parent.columns : columns;\n return inArray(target, columns);\n }\n function flatColumns(columns) {\n var result = [];\n var children = [];\n for (var idx = 0; idx < columns.length; idx++) {\n result.push(columns[idx]);\n if (columns[idx].columns) {\n children = children.concat(columns[idx].columns);\n }\n }\n if (children.length) {\n result = result.concat(flatColumns(children));\n }\n return result;\n }\n function hiddenLeafColumnsCount(columns) {\n var counter = 0;\n var column;\n for (var idx = 0; idx < columns.length; idx++) {\n column = columns[idx];\n if (column.columns) {\n counter += hiddenLeafColumnsCount(column.columns);\n } else if (column.hidden) {\n counter++;\n }\n }\n return counter;\n }\n function sumWidths(cols) {\n var width = 0;\n for (var idx = 0, length = cols.length; idx < length; idx++) {\n if (!cols[idx].hidden) {\n width += parseInt(cols[idx].width, 10);\n }\n }\n return width;\n }\n function columnsWidth(cols) {\n var colWidth, width = 0;\n for (var idx = 0, length = cols.length; idx < length; idx++) {\n colWidth = cols[idx].style.width;\n if (colWidth && colWidth.indexOf('%') == -1) {\n width += parseInt(colWidth, 10);\n }\n }\n return width;\n }\n function removeRowSpanValue(container, count) {\n var cells = container.find('tr:not(.k-filter-row) th:not(.k-group-cell,.k-hierarchy-cell)');\n var rowSpan;\n for (var idx = 0; idx < cells.length; idx++) {\n rowSpan = cells[idx].rowSpan;\n if (rowSpan > 1) {\n cells[idx].rowSpan = rowSpan - count || 1;\n }\n }\n }\n function addRowSpanValue(container, count) {\n var cells = container.find('tr:not(.k-filter-row) th:not(.k-group-cell,.k-hierarchy-cell)');\n for (var idx = 0; idx < cells.length; idx++) {\n cells[idx].rowSpan += count;\n }\n }\n function removeEmptyRows(container) {\n var rows = container.find('tr:not(.k-filter-row)');\n var emptyRowsCount = rows.filter(function () {\n return !$(this).children().length;\n }).remove().length;\n var cells = rows.find('th:not(.k-group-cell,.k-hierarchy-cell)');\n for (var idx = 0; idx < cells.length; idx++) {\n if (cells[idx].rowSpan > 1) {\n cells[idx].rowSpan -= emptyRowsCount;\n }\n }\n return rows.length - emptyRowsCount;\n }\n function mapColumnToCellRows(columns, cells, rows, rowIndex, offset) {\n var idx, row, length, children = [];\n for (idx = 0, length = columns.length; idx < length; idx++) {\n row = rows[rowIndex] || [];\n row.push(cells.eq(offset + idx));\n rows[rowIndex] = row;\n if (columns[idx].columns) {\n children = children.concat(columns[idx].columns);\n }\n }\n if (children.length) {\n mapColumnToCellRows(children, cells, rows, rowIndex + 1, offset + columns.length);\n }\n }\n function setLeftAndRightStyles(element, left, right) {\n element.css({\n 'left': left,\n 'right': right\n });\n }\n function createColumnAttribute(column, attribute, property) {\n column[attribute] = column[attribute] || {};\n column[attribute][property] = column[attribute][property] || '';\n }\n function addColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n if (column[attribute][property] !== '') {\n column[attribute][property] += ' ' + value;\n } else {\n column[attribute][property] = value;\n }\n }\n function removeColumnAttribute(column, attribute, property, value) {\n createColumnAttribute(column, attribute, property);\n column[attribute][property] = column[attribute][property].replace(value, '');\n }\n function lockedColumns(columns) {\n return grep(columns, function (column) {\n return column.locked;\n });\n }\n function nonLockedColumns(columns) {\n return grep(columns, function (column) {\n return !column.locked;\n });\n }\n function stickyColumns(columns) {\n return grep(columns, function (column) {\n return column.sticky && !column.locked;\n });\n }\n function visibleStickyColumns(columns) {\n return grep(columns, function (column) {\n return column.sticky && !column.locked && isVisible(column);\n });\n }\n function visibleNonLockedColumns(columns) {\n return grep(columns, function (column) {\n return !column.locked && isVisible(column);\n });\n }\n function visibleLockedColumns(columns) {\n return grep(columns, function (column) {\n return column.locked && isVisible(column);\n });\n }\n function visibleLeafColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].hidden) {\n continue;\n }\n if (columns[idx].columns) {\n result = result.concat(visibleLeafColumns(columns[idx].columns));\n } else {\n result.push(columns[idx]);\n }\n }\n return result;\n }\n function childColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (columns[idx].columns) {\n result = result.concat(columns[idx].columns);\n }\n }\n return result;\n }\n function visibleChildColumns(columns) {\n var result = childColumns(columns);\n result = result.filter(function (e) {\n return !e.hidden;\n });\n return result;\n }\n function leafColumns(columns) {\n var result = [];\n for (var idx = 0; idx < columns.length; idx++) {\n if (!columns[idx].columns) {\n result.push(columns[idx]);\n continue;\n }\n result = result.concat(leafColumns(columns[idx].columns));\n }\n return result;\n }\n function getColumnsFields(columns) {\n var result = [];\n columns = leafColumns(columns);\n for (var idx = 0; idx < columns.length; idx++) {\n if (typeof columns[idx] === 'string') {\n result.push(columns[idx]);\n } else if (columns[idx].field) {\n result.push(columns[idx].field);\n }\n }\n return result;\n }\n function leafDataCells(container) {\n var rows = container.find('>tr:not(.k-filter-row)');\n var filter = function () {\n var el = $(this);\n return !el.hasClass('k-group-cell') && !el.hasClass('k-hierarchy-cell');\n };\n var cells = $();\n if (rows.length > 1) {\n cells = rows.find('th').filter(filter).filter(function () {\n return this.rowSpan > 1;\n });\n }\n cells = cells.add(rows.last().find('th').filter(filter));\n var indexAttr = kendo.attr('index');\n cells.sort(function (a, b) {\n a = $(a);\n b = $(b);\n var indexA = a.attr(indexAttr);\n var indexB = b.attr(indexAttr);\n if (indexA === undefined) {\n indexA = $(a).index();\n }\n if (indexB === undefined) {\n indexB = $(b).index();\n }\n indexA = parseInt(indexA, 10);\n indexB = parseInt(indexB, 10);\n return indexA > indexB ? 1 : indexA < indexB ? -1 : 0;\n });\n return cells;\n }\n function parentColumnsCells(cell) {\n var container = cell.closest('table');\n var result = $().add(cell);\n var row = cell.closest('tr');\n var headerRows = container.find('tr:not(.k-filter-row)');\n var level = headerRows.index(row);\n if (level > 0) {\n var parent = headerRows.eq(level - 1);\n var parentCellsWithChildren = parent.find('th:not(.k-group-cell,.k-hierarchy-cell)').filter(function () {\n return !$(this).attr('rowspan');\n });\n var offset = 0;\n var index = row.find('th:not(.k-group-cell,.k-hierarchy-cell)').index(cell);\n var prevCells = cell.prevAll(':not(.k-group-cell,.k-hierarchy-cell)').filter(function () {\n return this.colSpan > 1;\n });\n for (var idx = 0; idx < prevCells.length; idx++) {\n offset += prevCells[idx].colSpan || 1;\n }\n index += Math.max(offset - 1, 0);\n offset = 0;\n for (idx = 0; idx < parentCellsWithChildren.length; idx++) {\n var parentCell = parentCellsWithChildren.eq(idx);\n if (parentCell.attr('data-colspan')) {\n offset += parentCell[0].getAttribute('data-colspan');\n } else {\n offset += 1;\n }\n if (index >= idx && index < offset) {\n result = parentColumnsCells(parentCell).add(result);\n break;\n }\n }\n }\n return result;\n }\n function childColumnsCells(cell) {\n var container = cell.closest('thead');\n var result = $().add(cell);\n var row = cell.closest('tr');\n var headerRows = container.find('tr:not(.k-filter-row)');\n var level = headerRows.index(row) + cell[0].rowSpan;\n var colSpanAttr = kendo.attr('colspan');\n if (level <= headerRows.length - 1) {\n var child = row.next();\n var prevCells = cell.prevAll(':not(.k-group-cell,.k-hierarchy-cell)');\n var idx;\n prevCells = prevCells.filter(function () {\n return !this.rowSpan || this.rowSpan === 1;\n });\n var offset = 0;\n for (idx = 0; idx < prevCells.length; idx++) {\n offset += parseInt(prevCells.eq(idx).attr(colSpanAttr), 10) || 1;\n }\n var cells = child.find('th:not(.k-group-cell,.k-hierarchy-cell)');\n var colSpan = parseInt(cell.attr(colSpanAttr), 10) || 1;\n idx = 0;\n while (idx < colSpan) {\n child = cells.eq(idx + offset);\n result = result.add(childColumnsCells(child));\n var value = parseInt(child.attr(colSpanAttr), 10);\n if (value > 1) {\n colSpan -= value - 1;\n }\n idx++;\n }\n }\n return result;\n }\n function appendContent(tbody, table, html, empty) {\n var placeholder, tmp = tbody;\n if (empty) {\n tbody.empty();\n }\n if (tbodySupportsInnerHtml) {\n tbody[0].innerHTML = html;\n } else {\n placeholder = document.createElement('div');\n placeholder.innerHTML = '' + html + '
';\n tbody = placeholder.firstChild.firstChild;\n table[0].replaceChild(tbody, tmp[0]);\n tbody = $(tbody);\n }\n return tbody;\n }\n function addHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n if (!style) {\n style = 'display:none';\n } else {\n style = style.replace(/display:[^;]*/i, 'display:none');\n if (!style.match(/display:/i)) {\n style = style.replace(/(.*)?/i, 'display:none;$1');\n }\n }\n return extend({}, attr, { style: style });\n }\n function hasHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style || '';\n return style.indexOf('display:none') !== -1;\n }\n function removeHiddenStyle(attr) {\n attr = attr || {};\n var style = attr.style;\n if (style) {\n attr.style = style.replace(/(display\\s*:\\s*none\\s*;?)*/gi, '');\n }\n return attr;\n }\n function normalizeCols(table, visibleColumns, hasDetails, groups) {\n var colgroup = table.find('>colgroup'), width, cols = map(visibleColumns, function (column) {\n width = column.width;\n if (width && parseInt(width, 10) !== 0) {\n return kendo.format('', typeof width === STRING ? width : width + 'px');\n }\n return '';\n });\n if (hasDetails || colgroup.find('.k-hierarchy-col').length) {\n cols.splice(0, 0, '');\n }\n if (colgroup.length) {\n colgroup.remove();\n }\n colgroup = $(new Array(groups + 1).join('') + cols.join(''));\n if (!colgroup.is('colgroup')) {\n colgroup = $('').append(colgroup);\n }\n table.prepend(colgroup);\n }\n function normalizeHeaderCells(container, columns) {\n var lastIndex = 0;\n var idx, len;\n var th = container.find('th:not(.k-group-cell)');\n for (idx = 0, len = columns.length; idx < len; idx++) {\n if (columns[idx].locked) {\n th.eq(idx).insertBefore(th.eq(lastIndex));\n th = container.find('th:not(.k-group-cell)');\n lastIndex++;\n }\n }\n }\n function convertToObject(array) {\n var result = {}, item, idx, length;\n for (idx = 0, length = array.length; idx < length; idx++) {\n item = array[idx];\n result[item.value] = item.text;\n }\n return result;\n }\n function formatGroupValue(value, format, columnValues, encoded) {\n var isForeignKey = columnValues && columnValues.length && isPlainObject(columnValues[0]) && 'value' in columnValues[0], groupValue = isForeignKey ? convertToObject(columnValues)[value] : value;\n groupValue = groupValue != null ? groupValue : '';\n return format ? kendo.format(format, groupValue) : encoded === false ? groupValue : kendo.htmlEncode(groupValue);\n }\n function setCellVisibility(cells, index, visible) {\n var pad = 0, state, cell = cells[pad];\n while (cell) {\n state = visible ? true : cell.style.display !== 'none';\n if (state && !nonDataCellsRegExp.test(cell.className) && --index < 0) {\n cell.style.display = visible ? '' : 'none';\n break;\n }\n cell = cells[++pad];\n }\n }\n function hideColumnCells(rows, columnIndex) {\n var idx = 0, length = rows.length, cell, row;\n for (; idx < length; idx += 1) {\n row = rows.eq(idx);\n if (row.is('.k-grouping-row,.k-detail-row')) {\n cell = row.children(':not(.k-group-cell):first,.k-detail-cell').last();\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) - 1);\n } else {\n if (row.hasClass('k-grid-edit-row') && (cell = row.children('.k-edit-container')[0])) {\n cell = $(cell);\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) - 1);\n cell.find('col').eq(columnIndex).remove();\n row = cell.find('tr:first');\n }\n setCellVisibility(row[0].cells, columnIndex, false);\n }\n }\n }\n function groupRows(data) {\n var result = [];\n var item;\n for (var idx = 0; idx < data.length; idx++) {\n item = data[idx];\n if (!('field' in item && 'value' in item && 'items' in item)) {\n break;\n }\n result.push(item);\n if (item.hasSubgroups) {\n result = result.concat(groupRows(item.items));\n }\n }\n return result;\n }\n function groupFooters(data) {\n var result = [];\n var item;\n for (var idx = 0; idx < data.length; idx++) {\n item = data[idx];\n if (!('field' in item && 'value' in item && 'items' in item)) {\n break;\n }\n if (item.hasSubgroups) {\n result = result.concat(groupFooters(item.items));\n }\n result.push(item.aggregates);\n }\n return result;\n }\n function showColumnCells(rows, columnIndex) {\n var idx = 0, length = rows.length, cell, row, columns;\n for (; idx < length; idx += 1) {\n row = rows.eq(idx);\n if (row.is('.k-grouping-row,.k-detail-row')) {\n cell = row.children(':not(.k-group-cell):first,.k-detail-cell').last();\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) + 1);\n } else {\n if (row.hasClass('k-grid-edit-row') && (cell = row.children('.k-edit-container')[0])) {\n cell = $(cell);\n cell.attr('colspan', parseInt(cell.attr('colspan'), 10) + 1);\n normalizeCols(cell.find('>form>table'), visibleColumns(columns), false, 0);\n row = cell.find('tr:first');\n }\n setCellVisibility(row[0].cells, columnIndex, true);\n }\n }\n }\n function updateColspan(toAdd, toRemove, num) {\n num = num || 1;\n var item, idx, length;\n for (idx = 0, length = toAdd.length; idx < length; idx++) {\n item = toAdd.eq(idx).children().last();\n item.attr('colspan', parseInt(item.attr('colspan'), 10) + num);\n item = toRemove.eq(idx).children().last();\n item.attr('colspan', parseInt(item.attr('colspan'), 10) - num);\n }\n }\n function tableWidth(table) {\n var idx, length, width = 0;\n var cols = table.find('>colgroup>col');\n for (idx = 0, length = cols.length; idx < length; idx += 1) {\n width += parseInt(cols[idx].style.width, 10);\n }\n return width;\n }\n var Grid = kendo.ui.DataBoundWidget.extend({\n init: function (element, options, events) {\n var that = this;\n options = isArray(options) ? { dataSource: options } : options;\n Widget.fn.init.call(that, element, options);\n if (events) {\n that._events = events;\n }\n isRtl = kendo.support.isRtl(element);\n that._element();\n that._aria();\n that._columns($.extend(true, [], that.options.columns));\n if (that._foreignKeyPromises) {\n $.when.apply(null, that._foreignKeyPromises).then(function () {\n that._foreignKeyPromises = null;\n that._continueInit();\n });\n } else {\n that._continueInit();\n }\n },\n _continueInit: function () {\n var that = this;\n that._dataSource();\n that._stickyColumns();\n that._tbody();\n that._thead();\n that._groupable();\n that._toolbar();\n that._pageable();\n that._setContentHeight();\n that._templates();\n that._navigatable();\n that._selectable();\n that._clipboard();\n that._details();\n that._editable();\n that._attachCustomCommandsEvent();\n that._adaptiveColumns();\n that._minScreenSupport();\n if (that.options.autoBind) {\n that.dataSource.fetch();\n } else {\n that._group = that._groups() > 0;\n that._footer();\n }\n if (that.lockedContent) {\n that.wrapper.addClass('k-grid-lockedcolumns');\n that._resizeHandler = function () {\n that.resize();\n };\n $(window).on('resize' + NS, that._resizeHandler);\n }\n kendo.notify(that);\n },\n events: [\n CHANGE,\n 'dataBinding',\n 'cancel',\n DATABOUND,\n DETAILEXPAND,\n DETAILCOLLAPSE,\n DETAILINIT,\n FILTERMENUINIT,\n FILTERMENUOPEN,\n COLUMNMENUINIT,\n COLUMNMENUOPEN,\n EDIT,\n BEFOREEDIT,\n SAVE,\n REMOVE,\n SAVECHANGES,\n CELLCLOSE,\n COLUMNRESIZE,\n COLUMNREORDER,\n COLUMNSHOW,\n COLUMNHIDE,\n COLUMNLOCK,\n COLUMNUNLOCK,\n COLUMNSTICK,\n COLUMNUNSTICK,\n NAVIGATE,\n 'page',\n 'sort',\n 'filter',\n 'group',\n 'groupExpand',\n 'groupCollapse',\n 'kendoKeydown'\n ],\n setDataSource: function (dataSource) {\n var that = this;\n var scrollable = that.options.scrollable;\n var scrollableContent;\n that.options.dataSource = dataSource;\n that._dataSource();\n that._pageable();\n that._thead();\n if (scrollable) {\n if (scrollable.virtual) {\n scrollableContent = that.content.find('>.k-virtual-scrollable-wrap');\n kendo.scrollLeft(scrollableContent, leftMostPosition(scrollableContent, isRtl));\n } else {\n scrollableContent = that.tbody;\n kendo.scrollLeft(that.content, leftMostPosition(scrollableContent, isRtl));\n }\n }\n if (that.options.groupable) {\n that._groupable();\n }\n if (that.virtualScrollable) {\n that.virtualScrollable.setDataSource(that.options.dataSource);\n }\n if (that.options.navigatable) {\n that._navigatable();\n }\n if (that.options.selectable) {\n that._selectable();\n }\n if (that.options.autoBind) {\n that.dataSource.fetch();\n } else {\n that._footer();\n }\n },\n options: {\n name: 'Grid',\n columns: [],\n toolbar: null,\n autoBind: true,\n filterable: false,\n scrollable: true,\n sortable: false,\n selectable: false,\n allowCopy: false,\n navigatable: false,\n pageable: false,\n persistSelection: false,\n editable: false,\n encodeTitles: false,\n groupable: false,\n rowTemplate: '',\n altRowTemplate: '',\n search: false,\n noRecords: false,\n dataSource: {},\n height: null,\n resizable: false,\n reorderable: false,\n columnMenu: false,\n detailTemplate: null,\n columnResizeHandleWidth: 3,\n mobile: '',\n messages: {\n editable: {\n cancelDelete: CANCELDELETE,\n confirmation: DELETECONFIRM,\n confirmDelete: CONFIRMDELETE\n },\n commands: {\n create: defaultCommands.create.text,\n cancel: defaultCommands.cancel.text,\n save: defaultCommands.save.text,\n destroy: defaultCommands.destroy.text,\n edit: defaultCommands.edit.text,\n update: defaultCommands.update.text,\n canceledit: defaultCommands.canceledit.text,\n excel: defaultCommands.excel.text,\n pdf: defaultCommands.pdf.text,\n search: defaultCommands.search.text\n },\n noRecords: NORECORDS,\n expandCollapseColumnHeader: '',\n groupHeader: 'Press ctrl + space to group',\n ungroupHeader: 'Press ctrl + space to ungroup'\n },\n width: null\n },\n destroy: function () {\n var that = this, element;\n that._angularItems('cleanup');\n that._destroyColumnAttachments();\n Widget.fn.destroy.call(that);\n if (this._navigatableTables) {\n this._navigatableTables.off(NS);\n this._navigatableTables = null;\n this._headertables = null;\n }\n if (that._resizeHandler) {\n $(window).off('resize' + NS, that._resizeHandler);\n }\n if (that.pager && that.pager.element) {\n that.pager.destroy();\n }\n if (that.timer) {\n clearTimeout(that.timer);\n }\n if (that._progressTimeOut) {\n clearTimeout(that._progressTimeOut);\n }\n if (that._collapseGroupsTimeOut) {\n clearTimeout(that._collapseGroupsTimeOut);\n }\n if (that._endlessFetchTimeOut) {\n clearTimeout(that._endlessFetchTimeOut);\n }\n that.pager = null;\n that._destroyGroupable();\n if (that.options.reorderable) {\n that.wrapper.data('kendoReorderable').destroy();\n }\n if (that.selectable && that.selectable.element) {\n that.selectable.destroy();\n that.clearArea();\n that._selectedIds = null;\n if (that.copyHandler) {\n that.wrapper.off('keydown', that.copyHandler);\n that.unbind(that.copyHandler);\n }\n if (that.updateClipBoardState) {\n that.unbind(that.updateClipBoardState);\n that.updateClipBoardState = null;\n }\n if (that.clearAreaHandler) {\n that.wrapper.off('keyup', that.clearAreaHandler);\n }\n }\n that.selectable = null;\n if (that.resizable) {\n that.resizable.destroy();\n if (that._resizeUserEvents) {\n if (that._resizeHandleDocumentClickHandler) {\n $(document).off('click', that._resizeHandleDocumentClickHandler);\n }\n that._resizeUserEvents.destroy();\n that._resizeUserEvents = null;\n }\n that.resizable = null;\n }\n that._destroyVirtualScrollable();\n if (that.editableUserEvents) {\n that.editableUserEvents.destroy();\n that.editableUserEvents = null;\n }\n if (that._lockedContentUserEvents) {\n that._lockedContentUserEvents.destroy();\n that._lockedContentUserEvents = null;\n }\n that._destroyEditable();\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler).unbind(PROGRESS, that._progressHandler).unbind(ERROR, that._errorHandler).unbind(SORT, that._clearSortClasses);\n that._refreshHandler = that._progressHandler = that._errorHandler = that._clearSortClasses = null;\n }\n element = that.element.add(that.wrapper).add(that.table).add(that.thead).add(that.wrapper.find('>.k-grid-toolbar'));\n if (that.content) {\n element = element.add(that.content).add(that.content.find('>.k-virtual-scrollable-wrap'));\n }\n if (that.lockedHeader) {\n that._removeLockedContainers();\n }\n if (that.pane) {\n that.pane.destroy();\n }\n if (that._isMobile) {\n that.wrapper.off('transitionend' + NS);\n that.wrapper.off('contextmenu' + NS);\n }\n if (that.minScreenResizeHandler) {\n $(window).off('resize', that.minScreenResizeHandler);\n }\n that._detachColumnMediaResizeHandler();\n if (that._draggableInstance && that._draggableInstance.element) {\n that._draggableInstance.destroy();\n }\n that._draggableInstance = null;\n element.off(NS);\n kendo.destroy(that.wrapper);\n that.rowTemplate = that.altRowTemplate = that.lockedRowTemplate = that.lockedAltRowTemplate = that.detailTemplate = that.footerTemplate = that.groupFooterTemplate = that.lockedGroupFooterTemplate = that.noRecordsTemplate = null;\n that.scrollables = that.thead = that.tbody = that.element = that.table = that.content = that.footer = that.wrapper = that.lockedTable = that.lockedContent = that.lockedHeader = that.lockedFooter = that._groupableClickHandler = that._groupRows = that._setContentWidthHandler = null;\n },\n getOptions: function () {\n var options = this.options;\n options.dataSource = null;\n var result = extend(true, {}, this.options);\n result.columns = kendo.deepExtend([], this.columns);\n var dataSource = this.dataSource;\n var initialData = dataSource.options.data && dataSource._data;\n dataSource.options.data = null;\n result.dataSource = $.extend(true, {}, dataSource.options);\n dataSource.options.data = initialData;\n result.dataSource.data = initialData;\n result.dataSource.page = dataSource.page();\n result.dataSource.filter = $.extend(true, {}, dataSource.filter());\n result.dataSource.pageSize = dataSource.pageSize();\n result.dataSource.sort = dataSource.sort();\n result.dataSource.group = dataSource.group();\n result.dataSource.aggregate = dataSource.aggregate();\n if (result.dataSource.transport) {\n result.dataSource.transport.dataSource = null;\n }\n if (result.pageable && result.pageable.pageSize) {\n result.pageable.pageSize = dataSource.pageSize();\n }\n result.$angular = undefined;\n return result;\n },\n setOptions: function (options) {\n var currentOptions = this.getOptions();\n kendo.deepExtend(currentOptions, options);\n if (!options.dataSource) {\n currentOptions.dataSource = this.dataSource;\n } else {\n if (options.dataSource.filter) {\n currentOptions.dataSource.filter = options.dataSource.filter;\n }\n }\n var wrapper = this.wrapper;\n var events = this._events;\n var element = this.element;\n this.destroy();\n this.options = null;\n if (this._isMobile) {\n var mobileWrapper = wrapper.closest(kendo.roleSelector('pane')).parent();\n mobileWrapper.after(wrapper);\n mobileWrapper.remove();\n wrapper.removeClass('k-grid-mobile');\n }\n if (wrapper[0] !== element[0]) {\n wrapper.before(element);\n wrapper.remove();\n }\n element.empty();\n this.init(element, currentOptions, events);\n this._setEvents(currentOptions);\n },\n items: function () {\n if (this.lockedContent) {\n return this._items(this.tbody).add(this._items(this.lockedTable.children('tbody')));\n } else {\n return this._items(this.tbody);\n }\n },\n _items: function (container, includeGroupRows) {\n return container.children().filter(function () {\n var tr = $(this);\n return (includeGroupRows ? !tr.hasClass('k-detail-row') : !tr.hasClass('k-grouping-row')) && !tr.hasClass('k-detail-row') && !tr.hasClass('k-group-footer');\n });\n },\n dataItems: function () {\n var dataItems = kendo.ui.DataBoundWidget.fn.dataItems.call(this);\n if (this.lockedContent) {\n var n = dataItems.length, tmp = new Array(2 * n);\n for (var i = n; --i >= 0;) {\n tmp[i] = tmp[i + n] = dataItems[i];\n }\n dataItems = tmp;\n }\n return dataItems;\n },\n _destroyColumnAttachments: function () {\n var that = this;\n that.resizeHandle = null;\n if (!that.thead) {\n return;\n }\n this.angular('cleanup', function () {\n return { elements: that.thead.get() };\n });\n that.thead.add(that.lockedHeader).find('th').each(function () {\n var th = $(this), filterMenu = th.data('kendoFilterMenu'), sortable = th.data('kendoColumnSorter'), columnMenu = th.data('kendoColumnMenu');\n if (filterMenu) {\n filterMenu.destroy();\n }\n if (sortable) {\n sortable.destroy();\n }\n if (columnMenu) {\n columnMenu.destroy();\n }\n });\n },\n _attachCustomCommandsEvent: function () {\n var that = this, columns = leafColumns(that.columns || []), command, idx, length;\n for (idx = 0, length = columns.length; idx < length; idx++) {\n command = columns[idx].command;\n if (command) {\n attachCustomCommandEvent(that, that.wrapper, command);\n }\n }\n },\n _aria: function () {\n var id = this.element.attr('id') || 'aria';\n if (id) {\n this._cellId = id + '_active_cell';\n }\n },\n _element: function () {\n var that = this, table = that.element;\n if (!table.is('table')) {\n if (that.options.scrollable) {\n table = that.element.find('> .k-grid-content > table');\n } else {\n table = that.element.children('table');\n }\n if (!table.length) {\n table = $('').appendTo(that.element);\n }\n }\n that.table = table.attr('role', that._hasDetails() ? 'treegrid' : 'grid');\n that._wrapper();\n },\n _createResizeHandle: function (container, th) {\n var that = this;\n var indicatorWidth = that.options.columnResizeHandleWidth;\n var scrollable = that.options.scrollable;\n var resizeHandle = that.resizeHandle;\n var halfResizeHandle = indicatorWidth * 3 / 2;\n var rtlCorrection = 0;\n var headerWrap;\n var ieCorrection;\n var webkitCorrection;\n var firefoxCorrection;\n var leftMargin;\n var invisibleSpace;\n var leftBorderWidth;\n var scrollLeft;\n var left;\n var top;\n if (resizeHandle && that.lockedContent && resizeHandle.data('th')[0] !== th[0]) {\n resizeHandle.off(NS).remove();\n resizeHandle = null;\n }\n if (!resizeHandle) {\n resizeHandle = that.resizeHandle = $('
');\n container.append(resizeHandle);\n }\n scrollLeft = kendo.scrollLeft(container);\n if (isRtl && (browser.mozilla || browser.webkit && browser.version >= 85)) {\n scrollLeft = scrollLeft * -1;\n }\n leftBorderWidth = parseFloat(container.css('borderLeftWidth'));\n left = th.offset().left + scrollLeft - parseFloat(th.css('marginLeft')) - (container.offset().left + leftBorderWidth);\n if (!isRtl) {\n left += th[0].offsetWidth;\n } else {\n if (scrollable) {\n rtlCorrection = left <= scrollLeft ? halfResizeHandle : 0;\n headerWrap = th.closest('.k-grid-header-wrap, .k-grid-header-locked');\n invisibleSpace = headerWrap[0].scrollWidth - headerWrap[0].offsetWidth;\n leftMargin = parseFloat(headerWrap.css('marginLeft'));\n ieCorrection = browser.msie ? 2 * kendo.scrollLeft(headerWrap) + leftBorderWidth - leftMargin - rtlCorrection : 0;\n webkitCorrection = -rtlCorrection;\n firefoxCorrection = browser.mozilla ? leftBorderWidth - leftMargin - rtlCorrection : 0;\n left -= webkitCorrection + firefoxCorrection + ieCorrection;\n }\n }\n top = th.offset().top - parseFloat(th.css('marginTop')) - (container.offset().top + parseFloat(container.css('borderTopWidth')));\n resizeHandle.css({\n top: top,\n left: left - halfResizeHandle,\n height: outerHeight(th),\n width: indicatorWidth * 3 - rtlCorrection\n }).data('th', th).show();\n resizeHandle.off('dblclick' + NS).on('dblclick' + NS, function () {\n that._autoFitLeafColumn(parseInt(th.attr(kendo.attr('index')), 10));\n });\n },\n _positionColumnResizeHandle: function () {\n var that = this, lockedHead = that.lockedHeader ? that.lockedHeader.find('thead:first') : $();\n that.thead.add(lockedHead).on('mousemove' + NS, 'tr:not(.k-filter-row) > th', function (e) {\n var button = typeof e.buttons !== 'undefined' ? e.buttons : e.which || e.button;\n var th = $(this);\n if (th.hasClass('k-group-cell') || th.hasClass('k-hierarchy-cell')) {\n return;\n }\n if (typeof button !== 'undefined' && button !== 0) {\n return;\n }\n if (th[0].hasAttribute(kendo.attr(COLSPAN))) {\n return;\n }\n that._createResizeHandle(th.closest('div'), th);\n });\n },\n _resizeHandleDocumentClick: function (e) {\n if ($(e.target).closest('.k-column-active').length) {\n return;\n }\n $(document).off(e);\n this._resetResizeHandleHeader();\n this._hideResizeHandle();\n },\n _resetResizeHandleHeader: function () {\n var th;\n if (!this.resizeHandle) {\n return;\n }\n th = $(this.resizeHandle).data('th');\n if (th) {\n th.find(DOT + LINK_CLASS).find(DOT + ICON_CLASS).show();\n th.find(DOT + ORDER_CLASS).show();\n th.find(DOT + HEADER_COLUMN_MENU_CLASS).show();\n th.find(DOT + FILTER_MENU_CLASS).show();\n }\n },\n _hideResizeHandle: function () {\n if (this.resizeHandle) {\n this.resizeHandle.data('th').removeClass('k-column-active');\n if (this.lockedContent && !this._isMobile) {\n this.resizeHandle.off(NS).remove();\n this.resizeHandle = null;\n } else {\n this.resizeHandle.hide();\n }\n }\n },\n _positionColumnResizeHandleTouch: function () {\n var that = this, lockedHead = that.lockedHeader ? that.lockedHeader.find('thead:first') : $();\n that._resizeUserEvents = new kendo.UserEvents(lockedHead.add(that.thead), {\n filter: 'th:not(.k-group-cell):not(.k-hierarchy-cell)',\n threshold: 10,\n minHold: 500,\n hold: function (e) {\n var th = $(e.target);\n e.preventDefault();\n if (that.resizeHandle) {\n that.resizeHandle.data('th').removeClass('k-column-active');\n that._resetResizeHandleHeader();\n }\n th.addClass('k-column-active');\n th.find(DOT + LINK_CLASS).find(DOT + ICON_CLASS).hide();\n th.find(DOT + ORDER_CLASS).hide();\n th.find(DOT + HEADER_COLUMN_MENU_CLASS).hide();\n th.find(DOT + FILTER_MENU_CLASS).hide();\n that._createResizeHandle(th.closest('div'), th);\n if (!that._resizeHandleDocumentClickHandler) {\n that._resizeHandleDocumentClickHandler = proxy(that._resizeHandleDocumentClick, that);\n }\n $(document).on('click', that._resizeHandleDocumentClickHandler);\n }\n });\n },\n resizeColumn: function (column, columnWidth) {\n var that = this;\n var isLocked = !!column.locked;\n var isHidden = !!column.hidden;\n var options = this.options;\n var scrollbar = !kendo.support.mobileOS ? kendo.support.scrollbar() : 0;\n var index = isLocked ? inArray(column, visibleLockedColumns(visibleLeafColumns(that.columns))) : inArray(column, visibleNonLockedColumns(visibleLeafColumns(that.columns)));\n var contentTable = isLocked ? that.lockedTable : that.table;\n var footer = that.footer || $();\n var header = isLocked ? that.lockedHeader.find('table') : that.thead.closest('table');\n var columnMinWidth = column.minResizableWidth || 10;\n var gridWidth = isLocked ? outerWidth(contentTable.find('tbody')) : outerWidth(that.tbody);\n var col;\n if (isHidden) {\n column.width = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n return;\n }\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n if (options.scrollable) {\n col = header.find('col:not(.k-group-col,.k-hierarchy-col):eq(' + index + ')').add(contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')')).add(footer.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')'));\n } else {\n col = contentTable.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')');\n }\n if (options.scrollable) {\n var constrain = false;\n var totalWidth = that.wrapper.width() - scrollbar;\n var width = columnWidth = columnWidth > columnMinWidth ? columnWidth : columnMinWidth;\n if (isLocked && gridWidth - columnWidth + width > totalWidth) {\n width = columnWidth + (totalWidth - gridWidth - scrollbar * 2);\n if (width < 0) {\n width = columnWidth;\n }\n constrain = true;\n }\n if (width > 10 && width >= columnMinWidth) {\n col.css('width', width);\n if (gridWidth) {\n if (constrain) {\n width = totalWidth - scrollbar * 2;\n } else {\n width = gridWidth + (columnWidth - column.width);\n }\n contentTable.add(header).add(footer).css('width', width);\n if (!isLocked) {\n that._footerWidth = width;\n }\n }\n }\n that._scrollVirtualWrapperOnColumnResize();\n } else if (columnWidth > 10 && columnWidth >= columnMinWidth) {\n col.css('width', columnWidth);\n }\n column.width = columnWidth;\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n },\n _resizable: function () {\n var that = this, options = that.options, container, columnStart, columnWidth, columnMinWidth, gridWidth, isMobile = this._isMobile, scrollbar = !kendo.support.mobileOS ? kendo.support.scrollbar() : 0, isLocked, col, th;\n if (options.resizable) {\n container = options.scrollable ? that.wrapper.find('.k-grid-header-wrap:first') : that.wrapper;\n if (isMobile) {\n that._positionColumnResizeHandleTouch(container);\n } else {\n that._positionColumnResizeHandle(container);\n }\n if (that.resizable) {\n that.resizable.destroy();\n }\n that.resizable = new ui.Resizable(container.add(that.lockedHeader), {\n handle: (!!options.scrollable ? '' : '>') + '.k-resize-handle',\n hint: function (handle) {\n return $('
').css({ height: outerHeight(handle.data('th')) + that.tbody.attr('clientHeight') });\n },\n start: function (e) {\n th = $(e.currentTarget).data('th');\n if (isMobile) {\n that._hideResizeHandle();\n }\n var header = th.closest('table'), index = $.inArray(th[0], leafDataCells(th.closest('thead')).filter(':visible'));\n isLocked = header.parent().hasClass('k-grid-header-locked');\n var contentTable = isLocked ? that.lockedTable : that.table, footer = that.footer || $();\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n cursor(that.wrapper, 'col-resize');\n if (options.scrollable) {\n col = header.find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')').add(contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')')).add(footer.find('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')'));\n } else {\n col = contentTable.children('colgroup').find('col:not(.k-group-col):not(.k-hierarchy-col):eq(' + index + ')');\n }\n var columns = $.map(that.columns, function (a) {\n return !a.hidden && (isLocked && a.locked || !isLocked && !a.locked) ? a : null;\n });\n columnStart = e.x.location;\n columnWidth = outerWidth(th);\n columnMinWidth = leafColumns(columns)[index].minResizableWidth || 10;\n gridWidth = isLocked ? outerWidth(contentTable.children('tbody')) : outerWidth(that.tbody);\n if (browser.webkit) {\n that.wrapper.addClass('k-grid-column-resizing');\n }\n },\n resize: function (e) {\n var rtlMultiplier = isRtl ? -1 : 1, currentWidth = columnWidth + e.x.location * rtlMultiplier - columnStart * rtlMultiplier;\n if (options.scrollable) {\n var footer;\n if (isLocked && that.lockedFooter) {\n footer = that.lockedFooter.children('table');\n } else if (that.footer) {\n footer = that.footer.find('>.k-grid-footer-wrap>table');\n }\n if (!footer || !footer[0]) {\n footer = $();\n }\n var header = th.closest('table');\n var contentTable = isLocked ? that.lockedTable : that.table;\n var constrain = false;\n var totalWidth = that.wrapper.width() - scrollbar;\n var width = currentWidth;\n if (isLocked && gridWidth - columnWidth + width > totalWidth) {\n width = columnWidth + (totalWidth - gridWidth - scrollbar * 2);\n if (width < 0) {\n width = currentWidth;\n }\n constrain = true;\n }\n if (width > 10 && width >= columnMinWidth) {\n col.css('width', width);\n if (gridWidth) {\n if (constrain) {\n width = totalWidth - scrollbar * 2;\n } else {\n width = gridWidth + e.x.location * rtlMultiplier - columnStart * rtlMultiplier;\n }\n contentTable.add(header).add(footer).css('width', width);\n if (!isLocked) {\n that._footerWidth = width;\n }\n }\n }\n that._scrollVirtualWrapperOnColumnResize();\n } else if (currentWidth > 10 && currentWidth >= columnMinWidth) {\n col.css('width', currentWidth);\n }\n },\n resizeend: function () {\n var newWidth = outerWidth(th), column, header;\n cursor(that.wrapper, '');\n if (browser.webkit) {\n that.wrapper.removeClass('k-grid-column-resizing');\n }\n if (columnWidth != newWidth) {\n header = that.lockedHeader ? that.lockedHeader.find('thead:first tr:first').add(that.thead.find('tr:first')) : th.parent();\n var index = th.attr(kendo.attr('index'));\n if (!index) {\n index = header.find('th:not(.k-group-cell):not(.k-hierarchy-cell)').index(th);\n }\n column = leafColumns(that.columns)[index];\n column.width = newWidth;\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: columnWidth,\n newWidth: newWidth\n });\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n }\n that._resetResizeHandleHeader();\n that._hideResizeHandle();\n th = null;\n }\n });\n }\n },\n _draggable: function () {\n var that = this;\n if (that.options.reorderable) {\n if (that._draggableInstance) {\n that._draggableInstance.destroy();\n }\n var header = that.wrapper.children('.k-grid-header');\n that._draggableInstance = that.wrapper.kendoDraggable({\n group: kendo.guid(),\n autoScroll: true,\n filter: that.content ? '.k-grid-header:first ' + HEADERCELLS : 'table:first>.k-grid-header ' + HEADERCELLS,\n dragstart: function () {\n header.children('.k-grid-header-wrap').unbind('scroll' + NS + 'scrolling').bind('scroll' + NS + 'scrolling', function (e) {\n if (that.virtualScrollable) {\n kendo.scrollLeft(that.content.find('>.k-virtual-scrollable-wrap'), this.scrollLeft);\n } else {\n kendo.scrollLeft(that.scrollables.not(e.currentTarget), this.scrollLeft);\n }\n });\n },\n dragend: function () {\n that._resetResizeHandleHeader();\n header.children('.k-grid-header-wrap').unbind('scroll' + NS + 'scrolling');\n },\n drag: function () {\n that._hideResizeHandle();\n },\n hint: function (target) {\n var title = target.attr(kendo.attr('title'));\n if (title) {\n title = kendo.htmlEncode(title);\n }\n return $('
').html(title || target.attr(kendo.attr('field')) || target.text()).prepend('');\n }\n }).data('kendoDraggable');\n }\n },\n _reorderable: function () {\n var that = this;\n if (that.options.reorderable) {\n if (that.wrapper.data('kendoReorderable')) {\n that.wrapper.data('kendoReorderable').destroy();\n }\n that.wrapper.kendoReorderable({\n draggable: that._draggableInstance,\n dragOverContainers: function (sourceIndex, targetIndex) {\n var columns = flatColumnsInDomOrder(that.columns);\n return columns[sourceIndex].lockable !== false && targetParentContainerIndex(columns, that.columns, sourceIndex, targetIndex) > -1;\n },\n inSameContainer: function (e) {\n return $(e.source).parent()[0] === $(e.target).parent()[0] && targetParentContainerIndex(flatColumnsInDomOrder(that.columns), that.columns, e.sourceIndex, e.targetIndex) > -1;\n },\n change: function (e) {\n var columns = flatColumnsInDomOrder(that.columns);\n var column = columns[e.oldIndex];\n var newIndex = targetParentContainerIndex(columns, that.columns, e.oldIndex, e.newIndex);\n that.trigger(COLUMNREORDER, {\n newIndex: newIndex,\n oldIndex: inArray(column, columns),\n column: column\n });\n that.reorderColumn(newIndex, column, e.position === 'before');\n }\n });\n }\n },\n _reorderHeader: function (sources, target, before, container) {\n var that = this;\n var sourcePosition = columnPosition(sources[0], that.columns);\n var destPosition = columnPosition(target, that.columns);\n var action;\n var ths;\n var leafs = [];\n for (var idx = 0; idx < sources.length; idx++) {\n if (sources[idx].columns) {\n leafs = leafs.concat(sources[idx].columns);\n }\n }\n if (container) {\n ths = elements(container, container, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n } else {\n ths = elements(that.lockedHeader, that.thead, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n }\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n if (leafs.length) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n action = 'prepend';\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.lockedHeader.find('thead'), that.thead, this._groups(), action);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n action = destPosition.cell === 0 && sources[0].columns && !target.columns && !that._group ? 'prepend' : 'append';\n moveCellsBetweenContainers(sources, target, leafs, nonLockedColumns(that.columns), that.thead, that.lockedHeader.find('thead'), this._groups(), action);\n }\n if (target.columns || sourcePosition.cell - destPosition.cell > 1 || destPosition.cell - sourcePosition.cell > 1) {\n target = findReorderTarget(that.columns, target, sources[0], before, that.columns);\n if (target) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n that._reorderHeader(leafs, target, before, that.thead);\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n that._reorderHeader(leafs, target, before, that.lockedHead);\n } else {\n that._reorderHeader(leafs, target, before);\n }\n }\n }\n } else if (sourceLockedColumns !== targetLockedColumns) {\n updateCellRowSpan(ths[sourcePosition.cell], that.columns, sourceLockedColumns);\n }\n reorder(ths, sourcePosition.cell, destPosition.cell, before, sources.length);\n },\n _reorderContent: function (sources, destination, before) {\n var that = this;\n var lockedRows = $();\n var source = sources[0];\n var visibleSources = visibleColumns(sources);\n var sourceIndex = inArray(source, leafColumns(that.columns));\n var destIndex = inArray(destination, leafColumns(that.columns));\n var colSourceIndex = inArray(visibleSources[0], visibleLeafColumns(that.columns));\n var colDest = inArray(destination, visibleLeafColumns(that.columns));\n var lockedCount = lockedColumns(that.columns).length;\n var isLocked = !!destination.locked;\n var footer = that.footer || that.wrapper.find('.k-grid-footer');\n var headerCol, footerCol, beforeVisibleColumn;\n headerCol = footerCol = colDest;\n if (destination.hidden) {\n var columnsArray = isLocked ? lockedColumns(that.columns) : nonLockedColumns(that.columns);\n if (visibleColumns(columnsArray).length > 0) {\n headerCol = footerCol = colDest = this._findClosestVisibleColumnIndex(columnsArray, destIndex);\n beforeVisibleColumn = visibleColumns(columnsArray.slice(destIndex)).length > 0;\n } else {\n if (isLocked) {\n colDest = that.lockedTable.find('colgroup');\n headerCol = that.lockedHeader.find('colgroup');\n footerCol = $(that.lockedFooter).find('>table>colgroup');\n } else {\n colDest = that.tbody.prev();\n headerCol = that.thead.prev();\n footerCol = footer.find('.k-grid-footer-wrap').find('>table>colgroup');\n }\n }\n }\n if (that._hasFilterRow()) {\n reorder(that.wrapper.find('.k-filter-row th:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n if (colSourceIndex >= 0) {\n reorder(elements(that.lockedHeader, that.thead.prev(), 'col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, headerCol, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n if (that.options.scrollable) {\n if (colSourceIndex >= 0 && !that._hasVirtualColumns()) {\n reorder(elements(that.lockedTable, that.tbody.prev(), 'col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, colDest, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n }\n if (footer && footer.length) {\n if (colSourceIndex >= 0) {\n reorder(elements(that.lockedFooter, footer.find('.k-grid-footer-wrap'), '>table>colgroup>col:not(.k-group-col,.k-hierarchy-col)'), colSourceIndex, footerCol, beforeVisibleColumn ? beforeVisibleColumn : before, visibleSources.length);\n }\n reorder(footer.find('.k-footer-template>td:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n var rows = that.tbody.children(':not(.k-grouping-row,.k-detail-row)');\n if (that.lockedTable) {\n if (lockedCount > destIndex) {\n if (lockedCount <= sourceIndex) {\n updateColspan(that.lockedTable.find('>tbody>tr.k-grouping-row'), that.table.find('>tbody>tr.k-grouping-row'), sources.length);\n }\n } else if (lockedCount > sourceIndex) {\n updateColspan(that.table.find('>tbody>tr.k-grouping-row'), that.lockedTable.find('>tbody>tr.k-grouping-row'), sources.length);\n }\n lockedRows = that.lockedTable.find('>tbody>tr:not(.k-grouping-row,.k-detail-row)');\n }\n for (var idx = 0, length = rows.length; idx < length; idx += 1) {\n reorder(elements(lockedRows[idx], rows[idx], '>td:not(.k-group-cell,.k-hierarchy-cell)'), sourceIndex, destIndex, before, sources.length);\n }\n },\n _findClosestVisibleColumnIndex: function (columns, columnIndex) {\n var columnsArray = visibleColumns(columns.slice(columnIndex)).length > 0 ? columns.slice(columnIndex) : columns.slice(0, columnIndex + 1).reverse(), closestVisibleColumn = visibleColumns(columnsArray)[0];\n return inArray(closestVisibleColumn, visibleColumns(this.columns));\n },\n _autoFitLeafColumn: function (leafIndex) {\n this.autoFitColumn(leafColumns(this.columns)[leafIndex]);\n },\n autoFitColumn: function (column) {\n var that = this, options = that.options, columns = that.columns, index, th, headerTable, isLocked, visibleLocked = that.lockedHeader ? leafDataCells(that.lockedHeader.find('>table>thead')).filter(isCellVisible).length : 0, col, minWidth, contentDiv, scrollLeft, notGroupOrHierarchyCol = 'col:not(.k-group-col):not(.k-hierarchy-col)', notGroupOrHierarchyVisibleCell = 'td:visible:not(.k-group-cell):not(.k-hierarchy-cell)', menu, thWidth;\n if (typeof column == 'number') {\n column = columns[column];\n } else if (isPlainObject(column)) {\n column = grep(flatColumns(columns), function (item) {\n return item === column;\n })[0];\n } else {\n column = grep(flatColumns(columns), function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !isVisible(column)) {\n return;\n }\n minWidth = column.minResizableWidth;\n index = inArray(column, leafColumns(columns));\n isLocked = column.locked;\n if (isLocked) {\n headerTable = that.lockedHeader.children('table');\n } else {\n headerTable = that.thead.parent();\n }\n th = headerTable.find('[data-index=\\'' + index + '\\']');\n menu = th.find('a.k-header-column-menu, a.k-grid-filter');\n var contentTable = isLocked ? that.lockedTable : that.table, footer = that.footer || $();\n if (that.footer && that.lockedContent) {\n footer = isLocked ? that.footer.children('.k-grid-footer-locked') : that.footer.children('.k-grid-footer-wrap');\n }\n var footerTable = footer.find('table').first();\n if (that.lockedHeader && !isLocked) {\n index -= visibleLocked;\n }\n for (var j = 0; j < columns.length; j++) {\n if (columns[j] === column) {\n break;\n } else {\n if (columns[j].hidden) {\n index--;\n }\n }\n }\n if (options.scrollable) {\n col = headerTable.find(notGroupOrHierarchyCol).eq(index).add(contentTable.children('colgroup').find(notGroupOrHierarchyCol).eq(index)).add(footerTable.find('colgroup').find(notGroupOrHierarchyCol).eq(index));\n if (!isLocked) {\n contentDiv = contentTable.parent();\n scrollLeft = kendo.scrollLeft(contentDiv);\n }\n } else {\n col = contentTable.children('colgroup').find(notGroupOrHierarchyCol).eq(index);\n }\n var tables = headerTable.add(contentTable).add(footerTable);\n if (browser.safari) {\n th.css('white-space', 'initial');\n }\n var oldColumnWidth = outerWidth(th);\n col.width('');\n tables.css('table-layout', 'fixed');\n col.width('auto');\n tables.addClass('k-autofitting');\n tables.css('table-layout', '');\n thWidth = menu.length ? outerWidth(menu) + outerWidth(th) : outerWidth(th);\n var newColumnWidth = Math.ceil(Math.max(thWidth, outerWidth(contentTable.find('tr:not(.k-grouping-row)').eq(0).children(notGroupOrHierarchyVisibleCell).eq(index)), outerWidth(footerTable.find('tr').eq(0).children(notGroupOrHierarchyVisibleCell).eq(index)))) + 1;\n if (minWidth && minWidth > newColumnWidth) {\n newColumnWidth = minWidth;\n }\n col.width(newColumnWidth);\n column.width = newColumnWidth;\n if (browser.safari) {\n th.css('white-space', '');\n }\n if (options.scrollable) {\n var cols = headerTable.find('col'), colWidth, totalWidth = 0;\n for (var idx = 0, length = cols.length; idx < length; idx += 1) {\n colWidth = cols[idx].style.width;\n if (colWidth && colWidth.indexOf('%') == -1) {\n totalWidth += parseInt(colWidth, 10);\n } else if (cols.eq(idx).hasClass('k-group-col')) {\n totalWidth += parseInt(cols.eq(idx).width(), 10);\n } else {\n totalWidth = 0;\n break;\n }\n }\n if (totalWidth) {\n tables.each(function () {\n this.style.width = totalWidth + 'px';\n });\n }\n }\n tables.removeClass('k-autofitting');\n if (scrollLeft) {\n kendo.scrollLeft(contentDiv, scrollLeft);\n }\n that.trigger(COLUMNRESIZE, {\n column: column,\n oldWidth: oldColumnWidth,\n newWidth: newColumnWidth\n });\n that._applyLockedContainersWidth();\n that._syncLockedContentHeight();\n that._syncLockedHeaderHeight();\n that._updateStickyColumns();\n },\n reorderColumn: function (destIndex, column, before) {\n var that = this, parent = columnParent(column, that.columns), columns = parent ? parent.columns : that.columns, sourceIndex = inArray(column, columns), destColumn = columns[destIndex], virtualScroll = that.virtualScroll || {}, lockChanged, isLocked = !!destColumn.locked, lockedCount = lockedColumns(that.columns).length, groupHeaderColumnTemplateColumns = grep(leafColumns(that.columns), function (column) {\n return column.groupHeaderColumnTemplate;\n });\n if (sourceIndex === destIndex) {\n return;\n }\n if (!column.locked && isLocked && nonLockedColumns(that.columns).length == 1) {\n return;\n }\n if (column.locked && !isLocked && lockedCount == 1) {\n return;\n }\n that._hideResizeHandle();\n if (before === undefined) {\n before = destIndex < sourceIndex;\n }\n var sourceColumns = [column];\n that._reorderHeader(sourceColumns, destColumn, before);\n if (that.lockedHeader) {\n removeEmptyRows(that.thead);\n removeEmptyRows(that.lockedHeader);\n }\n if (destColumn.columns) {\n destColumn = leafColumns(destColumn.columns);\n destColumn = destColumn[before ? 0 : destColumn.length - 1];\n }\n if (column.columns) {\n sourceColumns = leafColumns(column.columns);\n }\n that._reorderContent(sourceColumns, destColumn, before);\n lockChanged = !!column.locked;\n lockChanged = lockChanged != isLocked;\n column.locked = isLocked;\n columns.splice(before ? destIndex : destIndex + 1, 0, column);\n columns.splice(sourceIndex < destIndex ? sourceIndex : sourceIndex + 1, 1);\n that._updateLockedCols();\n that._updateCols();\n that._templates();\n that._updateColumnCellIndex();\n that._updateColumnSorters();\n if (groupHeaderColumnTemplateColumns.length > 0) {\n that._renderGroupRows();\n }\n that._updateTablesWidth();\n that._applyLockedContainersWidth();\n that._syncLockedHeaderHeight();\n that._syncLockedContentHeight();\n that._updateFirstColumnClass();\n that._updateStickyColumns();\n if (virtualScroll.columns) {\n that.refresh();\n }\n if (!lockChanged) {\n return;\n }\n if (isLocked) {\n that.trigger(COLUMNLOCK, { column: column });\n } else {\n that.trigger(COLUMNUNLOCK, { column: column });\n }\n },\n _updateColumnCellIndex: function () {\n var header;\n var offset = 0;\n if (this.lockedHeader) {\n header = this.lockedHeader.find('thead');\n offset = updateCellIndex(header, lockedColumns(this.columns));\n }\n updateCellIndex(this.thead, nonLockedColumns(this.columns), offset);\n },\n lockColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || column.locked || column.hidden) {\n return;\n }\n if (column.sticky) {\n this.unstickColumn(columns.indexOf(column));\n }\n var index = lockedColumns(columns).length - 1;\n this.reorderColumn(index, column, false);\n },\n unlockColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !column.locked || column.hidden) {\n return;\n }\n var index = lockedColumns(columns).length;\n this.reorderColumn(index, column, true);\n },\n stickColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || column.sticky || column.hidden) {\n return;\n }\n if (column.locked) {\n this.unlockColumn(columns.indexOf(column));\n if (column.locked) {\n return;\n }\n }\n column.sticky = true;\n this._updateStickyColumns();\n },\n unstickColumn: function (column) {\n var columns = this.columns;\n if (typeof column == 'number') {\n column = columns[column];\n } else {\n column = grep(columns, function (item) {\n return item.field === column;\n })[0];\n }\n if (!column || !column.sticky || column.locked || column.hidden) {\n return;\n }\n this._removeStickyAttributes([column]);\n this._removeStickyStyles(stickyColumns(columns));\n column.sticky = false;\n this._updateStickyColumns();\n if (this._anyStickyColumns() === 0) {\n this._templates();\n }\n },\n cellIndex: function (td) {\n var lockedColumnOffset = 0;\n if (this.lockedTable && !$.contains(this.lockedTable[0], td[0])) {\n lockedColumnOffset = leafColumns(lockedColumns(this.columns)).length;\n }\n return $(td).parent().children('td:not(.k-group-cell,.k-hierarchy-cell)').index(td) + lockedColumnOffset;\n },\n _modelForContainer: function (container) {\n container = $(container);\n if (!container.is('tr') && this._editMode() !== 'popup') {\n container = container.closest('tr');\n }\n var id = container.attr(kendo.attr('uid'));\n return this.dataSource.getByUid(id);\n },\n _calculateColumnIndex: function (cell) {\n var cellIndex = this.cellIndex(cell);\n var virtualOffset = 0;\n if (this._hasVirtualColumns()) {\n virtualOffset = parseInt($(cell).closest('tr').find('td:first').attr('colspan'), 10);\n virtualOffset = virtualOffset > 1 ? virtualOffset - 1 : 0;\n }\n return cellIndex + virtualOffset;\n },\n _editable: function () {\n var that = this, editable = that.options.editable, handler = function () {\n var target = activeElement(), cell = that._editContainer;\n if (cell && cell[0] && !$.contains(cell[0], target) && cell[0] !== target && !$(target).closest('.k-animation-container').length) {\n if (that.editable.end()) {\n that.closeCell();\n } else {\n that._scrollVirtualWrapper();\n }\n }\n };\n if (editable) {\n this.wrapper.addClass('k-editable');\n var mode = that._editMode();\n if (mode === 'incell') {\n that.table.add(that.lockedTable).on('mousedown' + NS, NAVROW + '>' + NAVCELL, function (e) {\n var target = $(e.target);\n if (that._editMode() === 'incell' && target.hasClass('k-checkbox') && target.prev().attr(kendo.attr('bind'))) {\n e.preventDefault();\n }\n });\n if (editable.update !== false) {\n if (isMac) {\n that.wrapper.on(CLICK + NS, '.k-edit-cell > input[type=\\'checkbox\\']', function (e) {\n $(e.target).focus();\n }).on(CLICK + NS, '.k-edit-cell', function (e) {\n if (!$(e.target).is('input')) {\n $(e.currentTarget).find('input[type=\\'checkbox\\']').focus();\n }\n }).on(MOUSEDOWN + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var editContainer = that._editContainer;\n if (editContainer && editContainer[0] && ($.contains(editContainer[0], e.target) || editContainer[0] === e.target)) {\n that._mousedownOnEditCell = true;\n } else {\n that._mousedownOnEditCell = false;\n }\n });\n }\n that.editableUserEvents = new kendo.UserEvents(that.wrapper, {\n filter: 'tr:not(.k-grouping-row) > td',\n allowSelection: true,\n tap: function (e) {\n var td = $(e.target), isLockedCell = that.lockedTable && td.closest('table')[0] === that.lockedTable[0];\n that._mousedownOnEditCell = false;\n if (td.hasClass('k-hierarchy-cell') || td.hasClass('k-detail-cell') || td.hasClass('k-group-cell') || td.hasClass('k-edit-cell') || td.has('a.k-grid-delete').length || td.has('button.k-grid-delete').length || td.closest('tbody')[0] !== that.tbody[0] && !isLockedCell || $(e.target).is(':input')) {\n return;\n }\n if (that.editable) {\n if (that.editable.end()) {\n $(activeElement()).blur();\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }\n });\n that.wrapper.on('focusin' + NS, function () {\n if (!$.contains(this, activeElement())) {\n clearTimeout(that.timer);\n that.timer = null;\n }\n }).on('focusout' + NS, function (e) {\n var shouldCloseCell = true;\n if (isMac && that._mousedownOnEditCell || that._virtualColScroll) {\n shouldCloseCell = false;\n }\n that._mousedownOnEditCell = false;\n if (shouldCloseCell) {\n that.timer = setTimeout(function () {\n handler(e);\n }, 1);\n }\n });\n }\n } else {\n if (editable.update !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible a.k-grid-edit', function (e) {\n e.preventDefault();\n that.editRow($(this).closest('tr'));\n });\n if (that._isVirtualInlineEditable()) {\n that.wrapper.on('focusout' + NS, 'tr:not(.k-grouping-row) > td', function () {\n if (that.editable && !that.editable.end()) {\n that._scrollVirtualWrapper();\n }\n });\n }\n }\n }\n if (editable.destroy !== false) {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible .k-grid-delete', function (e) {\n e.preventDefault();\n e.stopPropagation();\n that.removeRow($(this).closest('tr'));\n });\n } else {\n that.wrapper.on(CLICK + NS, 'tbody>tr:not(.k-detail-row,.k-grouping-row):visible button.k-grid-delete', function (e) {\n e.stopPropagation();\n if (!that._confirmation()) {\n e.preventDefault();\n }\n });\n }\n }\n },\n editCell: function (cell) {\n cell = $(cell);\n var that = this, column = leafColumns(that.columns)[that._calculateColumnIndex(cell)], model = that._modelForContainer(cell);\n that.closeCell();\n if (model && isColumnEditable(column, model) && !column.command) {\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n that._attachModelChange(model);\n that._editContainer = cell;\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.editable = cell.addClass('k-edit-cell').kendoEditable({\n fields: {\n field: column.field,\n format: column.format,\n editor: column.editor,\n values: column.values\n },\n model: model,\n target: that,\n change: function (e) {\n if (that.trigger(SAVE, {\n values: e.values,\n container: cell,\n model: model\n })) {\n e.preventDefault();\n }\n },\n skipFocus: (that._isVirtualIncellEditable() || that._hasVirtualColumns()) && that._editableState ? true : false\n }).data('kendoEditable');\n var tr = cell.parent().addClass('k-grid-edit-row');\n if (that.lockedContent) {\n adjustRowHeight(tr[0], that._relatedRow(tr).addClass('k-grid-edit-row')[0]);\n that._syncLockedScroll();\n }\n that.trigger(EDIT, {\n container: cell,\n model: model\n });\n }\n },\n _adjustLockedHorizontalScrollBar: function () {\n var table = this.table, content = table.parent();\n var scrollbar = table[0].offsetWidth > content[0].clientWidth ? kendo.support.scrollbar() : 0;\n this.lockedContent.height(content[0].offsetHeight - scrollbar);\n },\n _syncLockedScroll: function () {\n this.lockedContent[0].scrollTop = this.content[0].scrollTop;\n if (this.virtualScrollable) {\n this.lockedContent[0].scrollTop = this.wrapper.find('.k-virtual-scrollable-wrap')[0].scrollTop;\n }\n },\n _syncLockedContentHeight: function () {\n if (this.lockedTable) {\n if (!this.touchScroller) {\n this._adjustLockedHorizontalScrollBar();\n }\n this._adjustRowsHeight(this.table, this.lockedTable);\n }\n },\n _syncLockedHeaderHeight: function () {\n if (this.lockedHeader) {\n var lockedTable = this.lockedHeader.children('table');\n var table = this.thead.parent();\n this._adjustRowsHeight(lockedTable, table);\n syncTableHeight(lockedTable, table);\n }\n },\n _syncLockedFooterHeight: function () {\n if (this.lockedFooter && this.footer && this.footer.length) {\n this._adjustRowsHeight(this.lockedFooter.children('table'), this.footer.find('.k-grid-footer-wrap > table'));\n }\n },\n _destroyEditable: function () {\n var that = this;\n var destroy = function () {\n if (that.editable) {\n var container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n container.off(CLICK + NS, 'a.k-grid-cancel', that._editCancelClickHandler);\n container.off(CLICK + NS, 'a.k-grid-update', that._editUpdateClickHandler);\n }\n that._detachModelChange();\n that.editable.destroy();\n that.editable = null;\n that._editContainer = null;\n that._destroyEditView();\n that._editableIsClosing = null;\n }\n };\n if (that.editable) {\n if (that._editMode() === 'popup' && !that._isMobile) {\n if (that._editableIsClosing) {\n that._editContainer.data('kendoWindow').bind('deactivate', destroy);\n } else {\n that._editableIsClosing = true;\n that._editContainer.data('kendoWindow').bind('deactivate', destroy).close();\n }\n } else {\n destroy();\n }\n }\n if (that._confirmDialog) {\n that._confirmDialog.close();\n that._confirmDialog.destroy();\n that._confirmDialog = null;\n }\n },\n _destroyEditView: function () {\n if (this.editView) {\n this.editView.purge();\n this.editView = null;\n this.pane.navigate('');\n }\n },\n _attachModelChange: function (model) {\n var that = this;\n that._modelChangeHandler = function (e) {\n that._modelChange({\n field: e.field,\n model: this\n });\n };\n model.bind('change', that._modelChangeHandler);\n },\n _detachModelChange: function () {\n var that = this, container = that._editContainer, model = that._modelForContainer(container);\n if (model) {\n model.unbind(CHANGE, that._modelChangeHandler);\n }\n },\n closeCell: function (isCancel) {\n var that = this, cell = that._editContainer, column, tr, model;\n if (!cell) {\n return;\n }\n model = that._modelForContainer(cell);\n if (isCancel && that.trigger('cancel', {\n container: cell,\n model: model\n })) {\n return;\n }\n that.trigger(CELLCLOSE, {\n type: isCancel ? 'cancel' : 'save',\n model: model,\n container: cell\n });\n cell.removeClass('k-edit-cell');\n column = leafColumns(that.columns)[that._calculateColumnIndex(cell)];\n tr = cell.parent().removeClass('k-grid-edit-row');\n if (that.lockedContent) {\n that._relatedRow(tr).removeClass('k-grid-edit-row');\n }\n that._destroyEditable();\n that._displayCell(cell, column, model);\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.trigger('itemChange', {\n item: tr,\n data: model,\n ns: ui\n });\n if (that.lockedContent) {\n adjustRowHeight(tr.css('height', '')[0], that._relatedRow(tr).css('height', '')[0]);\n }\n },\n _displayCell: function (cell, column, dataItem) {\n var that = this, state = {\n storage: {},\n count: 0\n }, settings = extend({}, kendo.Template, that.options.templateSettings), tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n cell.empty().html(tmpl(dataItem));\n that.angular('compile', function () {\n return {\n elements: cell,\n data: [{ dataItem: dataItem }]\n };\n });\n },\n removeRow: function (row) {\n if (!this._confirmation(row)) {\n return;\n }\n this._removeRow(row);\n },\n _removeRow: function (row) {\n var that = this, model, modelId, key, schema, mode = that._editMode();\n if (mode !== 'incell') {\n that.cancelRow();\n }\n row = $(row);\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row = row.hide();\n if (that.dataSource._isGroupPaged()) {\n that._removeGroupIfEmpty(row);\n }\n model = that._modelForContainer(row);\n if (model && !that.trigger(REMOVE, {\n row: row,\n model: model\n })) {\n schema = that.dataSource.options.schema;\n if (that._selectedIds && schema && schema.model) {\n modelId = isFunction(that.dataSource.options.schema.model) ? that.dataSource.options.schema.model.fn.idField : that.dataSource.options.schema.model.id;\n key = model[modelId];\n delete that._selectedIds[key];\n }\n that.dataSource.remove(model);\n if (mode === 'inline' || mode === 'popup') {\n that.dataSource.sync();\n }\n } else if (mode === 'incell') {\n that._destroyEditable();\n }\n },\n _editMode: function () {\n var mode = 'incell', editable = this.options.editable;\n if (editable !== true) {\n if (typeof editable == 'string') {\n mode = editable;\n } else {\n mode = editable.mode || mode;\n }\n }\n return mode;\n },\n editRow: function (row) {\n var model;\n var that = this;\n if (row instanceof ObservableObject) {\n model = row;\n } else {\n row = $(row);\n model = that._modelForContainer(row);\n }\n var mode = that._editMode();\n var container;\n that.cancelRow();\n if (model) {\n row = that.tbody.children('[' + kendo.attr('uid') + '=' + model.uid + ']');\n that._attachModelChange(model);\n if (mode === 'popup') {\n that._createPopupEditor(model);\n } else if (mode === 'inline') {\n that._createInlineEditor(row, model);\n } else if (mode === 'incell') {\n $(row).children(DATA_CELL).each(function () {\n var cell = $(this);\n var column = leafColumns(that.columns)[that._calculateColumnIndex(cell)];\n model = that._modelForContainer(cell);\n if (model && (!model.editable || model.editable(column.field)) && column.field && !column.selectable) {\n that.editCell(cell);\n return false;\n }\n });\n }\n container = that.editView ? that.editView.element : that._editContainer;\n if (container) {\n if (!this._editCancelClickHandler) {\n this._editCancelClickHandler = proxy(this._editCancelClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-cancel', this._editCancelClickHandler);\n if (!this._editUpdateClickHandler) {\n this._editUpdateClickHandler = proxy(this._editUpdateClick, this);\n }\n container.on(CLICK + NS, 'a.k-grid-update', this._editUpdateClickHandler);\n }\n }\n },\n _editUpdateClick: function (e) {\n e.preventDefault();\n e.stopPropagation();\n this.saveRow();\n },\n _editCancelClick: function (e) {\n var that = this;\n var navigatable = that.options.navigatable;\n var model = that.editable.options.model;\n var container = that.editView ? that.editView.element : that._editContainer;\n e.preventDefault();\n e.stopPropagation();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that.cancelRow();\n if (navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n },\n _createPopupEditor: function (model) {\n var that = this;\n var html = '
<' + (that._isMobile ? 'ul class=\"k-edit-form-container k-listgroup k-listgroup-flush\">' : 'div class=\"k-edit-form-container\">');\n var column;\n var command;\n var fields = [];\n var idx;\n var length;\n var tmpl;\n var updateText;\n var cancelText;\n var updateIconClass;\n var cancelIconClass;\n var tempCommand;\n var columns = leafColumns(that.columns);\n var attr;\n var editMenuGuid = kendo.guid();\n var editable = that.options.editable;\n var template = editable.template;\n var options = isPlainObject(editable) ? editable.window : {};\n var settings = extend({}, kendo.Template, that.options.templateSettings);\n var state;\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n options = options || {};\n if (template) {\n if (typeof template === STRING) {\n template = kendo.unescape(template);\n }\n html += kendo.template(template, settings)(model);\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (column.command) {\n tempCommand = getCommand(column.command, 'edit');\n if (tempCommand) {\n command = tempCommand;\n }\n }\n }\n } else {\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (column.selectable) {\n continue;\n }\n if (!column.command) {\n if (!that._isMobile) {\n html += '
';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '
';\n } else {\n state = {\n storage: {},\n count: 0\n };\n tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n html += '
' + tmpl(model) + '
';\n }\n } else {\n html += '
  • ';\n if (isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n html += '';\n } else {\n state = {\n storage: {},\n count: 0\n };\n tmpl = kendo.template(that._cellTmpl(column, state), settings);\n if (state.count > 0) {\n tmpl = proxy(tmpl, state.storage);\n }\n html += '';\n }\n html += '
  • ';\n }\n } else if (column.command) {\n tempCommand = getCommand(column.command, 'edit');\n if (tempCommand) {\n command = tempCommand;\n }\n }\n }\n }\n if (command) {\n if (isPlainObject(command)) {\n if (isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (isPlainObject(command.iconClass)) {\n updateIconClass = command.iconClass.update;\n cancelIconClass = command.iconClass.cancel;\n }\n if (command.attr) {\n attr = command.attr;\n }\n }\n }\n var container;\n if (!that._isMobile) {\n html += '
    ';\n html += that._createButton({\n name: 'update',\n text: updateText,\n attr: attr,\n iconClass: updateIconClass\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr,\n iconClass: cancelIconClass\n });\n html += '
    ';\n container = that._editContainer = $(html).appendTo(that.wrapper).eq(0).kendoWindow(extend({\n modal: true,\n resizable: false,\n draggable: true,\n title: that.options.messages.commands.edit || 'Edit',\n visible: false,\n close: function (e) {\n if (e.userTriggered) {\n e.sender.element.focus();\n if (that.trigger('cancel', {\n container: container,\n model: model\n })) {\n e.preventDefault();\n return;\n }\n var currentIndex = that.items().index($(that.current()).parent());\n that._editableIsClosing = true;\n that.cancelRow();\n if (that.options.navigatable) {\n that._setCurrent(that.items().eq(currentIndex).children().filter(NAVCELL).first());\n focusTable(that.table, true);\n }\n }\n }\n }, options));\n } else {\n html += '
    ';\n that.editView = that.pane.append('
    ' + '
    ' + '' + (that.options.messages.commands.edit || 'Edit') + '' + '
    ' + '
    ' + html + '
    ' + '
    ');\n container = that._editContainer = that.editView.element.find('.k-popup-edit-form');\n }\n that.editable = that._editContainer.kendoEditable({\n fields: fields,\n model: model,\n clearContainer: false,\n target: that\n }).data('kendoEditable');\n that._openPopUpEditor();\n that.trigger(EDIT, {\n container: container,\n model: model\n });\n },\n _openPopUpEditor: function () {\n var that = this;\n var windowEditor = that._editContainer ? that._editContainer.data('kendoWindow') : null;\n var windowOptions = (that.options.editable || {}).window || {};\n if (!this._isMobile) {\n if (windowEditor) {\n if (!windowOptions.position) {\n windowEditor.center();\n }\n windowEditor.open();\n }\n } else {\n this.pane.navigate(this.editView, this._editAnimation);\n }\n },\n _createInlineEditor: function (row, model) {\n var that = this;\n var column;\n var cell;\n var command;\n var fields = [];\n if (that.trigger(BEFOREEDIT, { model: model })) {\n return;\n }\n if (that.lockedContent) {\n row = row.add(that._relatedRow(row));\n }\n row.children(':not(.k-group-cell,.k-hierarchy-cell)').each(function () {\n cell = $(this);\n column = leafColumns(that.columns)[that._calculateColumnIndex(cell)];\n if (!column.command && isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\n title: column.title,\n format: column.format,\n editor: column.editor,\n values: column.values\n });\n cell.attr(kendo.attr('container-for'), column.field);\n cell.empty();\n } else if (column.command) {\n command = getCommand(column.command, 'edit');\n if (command) {\n cell.empty();\n var updateText, cancelText, updateIconClass, cancelIconClass, attr;\n if (isPlainObject(command)) {\n if (isPlainObject(command.text)) {\n updateText = command.text.update;\n cancelText = command.text.cancel;\n }\n if (isPlainObject(command.iconClass)) {\n updateIconClass = command.iconClass.update;\n cancelIconClass = command.iconClass.cancel;\n }\n if (command.attr) {\n attr = command.attr;\n }\n }\n $(that._createButton({\n name: 'update',\n text: updateText,\n attr: attr,\n iconClass: updateIconClass\n }) + that._createButton({\n name: 'canceledit',\n text: cancelText,\n attr: attr,\n iconClass: cancelIconClass\n })).appendTo(cell);\n }\n }\n });\n that._editContainer = row;\n that._editContainer.addClass('k-grid-edit-row');\n if (that._shouldClearEditableState) {\n that._clearEditableState();\n }\n that.editable = new kendo.ui.Editable(that._editContainer, {\n target: that,\n fields: fields,\n model: model,\n skipFocus: that._isVirtualInlineEditable() && that._editableState && (that._editableState.field ? true : false) || that._hasVirtualColumns(),\n clearContainer: false\n });\n if (row.length > 1) {\n adjustRowHeight(row[0], row[1]);\n that._applyLockedContainersWidth();\n }\n that.trigger(EDIT, {\n container: row,\n model: model\n });\n },\n cancelRow: function (notify) {\n var that = this, container = that._editContainer, model;\n if (container) {\n model = that._modelForContainer(container);\n if (!model || notify && that.trigger('cancel', {\n container: container,\n model: model\n })) {\n return;\n }\n that._destroyEditable();\n that.dataSource.cancelChanges(model);\n that._clearEditableState();\n if (that._editMode() !== 'popup') {\n that._displayRow(container);\n } else {\n that._displayRow(that.tbody.find('[' + kendo.attr('uid') + '=' + model.uid + ']'));\n }\n }\n },\n saveRow: function () {\n var that = this;\n var container = this._editContainer;\n var model = this._modelForContainer(container);\n var deferred = $.Deferred();\n var valid;\n if (!container || !this.editable) {\n return deferred.resolve().promise();\n }\n valid = that.editable && that.editable.end();\n if (!valid || this.trigger(SAVE, {\n container: container,\n model: model\n })) {\n if (!valid) {\n that._scrollVirtualWrapper();\n }\n return deferred.reject().promise();\n }\n that._clearEditableState();\n return this.dataSource.sync();\n },\n _displayRow: function (row) {\n var that = this, model = that._modelForContainer(row), related, newRow, nextRow, isSelected = row.hasClass('k-state-selected'), isAlt = row.hasClass('k-alt');\n if (model) {\n if (that.lockedContent) {\n related = $((isAlt ? that.lockedAltRowTemplate : that.lockedRowTemplate)(model));\n that._relatedRow(row.last()).replaceWith(related);\n }\n that.angular('cleanup', function () {\n return { elements: row.get() };\n });\n newRow = $((isAlt ? that.altRowTemplate : that.rowTemplate)(model));\n if (!row.is(':visible')) {\n newRow.hide();\n }\n row.replaceWith(newRow);\n that.trigger('itemChange', {\n item: newRow,\n data: model,\n ns: ui\n });\n if (related && related.length) {\n that.trigger('itemChange', {\n item: related,\n data: model,\n ns: ui\n });\n }\n var angularElements = newRow;\n var angularData = [{ dataItem: model }];\n if (related && related.length) {\n angularElements = newRow.add(related);\n angularData.push({ dataItem: model });\n }\n that.angular('compile', function () {\n return {\n elements: angularElements.get(),\n data: angularData\n };\n });\n if (isSelected && (that.options.selectable || that._checkBoxSelection)) {\n that.select(newRow.add(related));\n }\n if (related) {\n adjustRowHeight(newRow[0], related[0]);\n }\n nextRow = newRow.next();\n if (nextRow.hasClass('k-detail-row') && nextRow.is(':visible')) {\n newRow.find('.k-hierarchy-cell .k-icon').removeClass('k-i-expand').addClass('k-i-collapse');\n }\n }\n },\n _showMessage: function (messages, row) {\n var that = this;\n if (!that._isMobile) {\n return window.confirm(messages.title);\n }\n var confirmDialog = that._confirmDialog = new kendo.ui.Confirm($('
    ').appendTo(document.body), {\n modal: { preventScroll: true },\n closable: false,\n title: false,\n content: messages.title,\n messages: {\n okText: messages.confirmDelete,\n cancel: messages.cancelDelete\n },\n open: function () {\n if (that.content) {\n that.content.data(OVERFLOW, that.content.css(OVERFLOW));\n that.content.css(OVERFLOW, HIDDEN);\n }\n },\n close: function () {\n if (that.content) {\n that.content.css(OVERFLOW, that.content.data(OVERFLOW));\n }\n }\n });\n confirmDialog.result.done(function () {\n that._removeRow(row);\n }).fail(function () {\n var confirmDialog = that._confirmDialog;\n if (confirmDialog) {\n confirmDialog.close();\n confirmDialog.destroy();\n }\n });\n return false;\n },\n _confirmation: function (row) {\n var that = this, editable = that.options.editable, confirmation = editable === true || typeof editable === STRING ? that.options.messages.editable.confirmation : editable.confirmation;\n if (isPlainObject(editable) && typeof editable.mode === STRING && typeof confirmation !== FUNCTION && typeof confirmation !== STRING && confirmation !== false) {\n confirmation = that.options.messages.editable.confirmation;\n }\n if (confirmation !== false && confirmation != null) {\n if (typeof confirmation === FUNCTION) {\n confirmation = confirmation(that._modelForContainer(row));\n }\n return that._showMessage({\n confirmDelete: editable.confirmDelete || that.options.messages.editable.confirmDelete,\n cancelDelete: editable.cancelDelete || that.options.messages.editable.cancelDelete,\n title: confirmation === true ? that.options.messages.editable.confirmation : confirmation\n }, row);\n }\n return true;\n },\n cancelChanges: function () {\n var that = this;\n that.dataSource.cancelChanges();\n if (that._isVirtualEditable()) {\n that._virtualPageToTop(function () {\n that.virtualScrollable.scrollToTop();\n });\n }\n },\n saveChanges: function () {\n var that = this;\n var valid = that.editable && that.editable.end();\n if ((valid || !that.editable) && !that.trigger(SAVECHANGES)) {\n that.dataSource.sync();\n } else if (!valid) {\n that._scrollVirtualWrapper();\n }\n },\n addRow: function () {\n var that = this, index, dataSource = that.dataSource, mode = that._editMode(), createAt = that.options.editable.createAt || '', pageSize = dataSource.pageSize(), view = dataSource.view() || [];\n var createAtBottom = createAt.toLowerCase() === BOTTOM;\n var model;\n var virtualEditable = that._isVirtualEditable();\n if (that.editable && that.editable.end() || !that.editable) {\n if (mode != 'incell') {\n that.cancelRow();\n }\n index = dataSource.indexOf(view[0]);\n if (createAtBottom) {\n index += view.length;\n if (pageSize && !dataSource.options.serverPaging && pageSize <= view.length) {\n index -= 1;\n }\n }\n if (index < 0) {\n if (dataSource.page() > dataSource.totalPages()) {\n index = (dataSource.page() - 1) * pageSize;\n } else {\n index = 0;\n }\n }\n if (that.options.navigatable && mode == 'incell') {\n that._removeCurrent();\n }\n if (virtualEditable) {\n that._virtualAddRow();\n } else {\n model = dataSource.insert(index, {});\n that._editModel(model);\n }\n } else {\n that._scrollVirtualWrapper();\n }\n },\n _editModel: function (model) {\n var that = this;\n var createAt = that.options.editable.createAt || '';\n var mode = that._editMode();\n if (model) {\n var id = model.uid, table = that.lockedContent ? that.lockedTable : that.table, row = table.find('tr[' + kendo.attr('uid') + '=' + id + ']'), cell = row.children('td:not(.k-group-cell,.k-hierarchy-cell)').eq(that._firstEditableColumnIndex(row));\n if (mode === 'inline' && row.length) {\n that.editRow(row);\n } else if (mode === 'popup') {\n that.editRow(model);\n } else if (cell.length) {\n that.editCell(cell);\n }\n if (createAt.toLowerCase() == 'bottom' && that.lockedContent) {\n that.lockedContent[0].scrollTop = that.content[0].scrollTop = that.table[0].offsetHeight;\n }\n }\n },\n _virtualAddRow: function () {\n var that = this;\n var createAtBottom = (that.options.editable.createAt || '').toLowerCase() === BOTTOM;\n that._clearEditableState();\n if (createAtBottom) {\n that._virtualAddRowAtBottom();\n } else {\n that._virtualAddRowAtTop();\n }\n },\n _virtualAddRowAtTop: function () {\n var that = this;\n var dataSource = that.dataSource;\n var virtualScrollable = that.virtualScrollable;\n var model;\n if (dataSource.page() === 1) {\n model = dataSource.insert(0, {});\n that._editModel(model);\n virtualScrollable.scrollToTop();\n } else {\n that._virtualPageToTop(function () {\n model = dataSource.insert(0, {});\n that._editModel(model);\n virtualScrollable.scrollToTop();\n });\n }\n },\n _virtualAddRowAtBottom: function () {\n var that = this;\n var dataSource = that.dataSource;\n var virtualScrollable = that.virtualScrollable;\n var index = dataSource.total();\n var model;\n if (dataSource.at(index - 1) instanceof ObservableObject) {\n model = dataSource.insert(index, {});\n that._virtualPageToBottom(function () {\n that._editModel(model);\n virtualScrollable.scrollToBottom();\n });\n } else {\n that._virtualPageToBottom(function () {\n model = dataSource.insert(index, {});\n that._editModel(model);\n virtualScrollable.scrollToBottom();\n });\n }\n },\n _virtualPageToTop: function (callback) {\n var that = this;\n that._virtualPage(0, that.dataSource.take(), function () {\n callback();\n });\n },\n _virtualPageToBottom: function (callback) {\n var that = this;\n var dataSource = that.dataSource;\n var take = dataSource.take();\n var total = dataSource.total();\n var skip = total > take ? total - take : 0;\n that._virtualPage(skip, take, function () {\n callback();\n });\n },\n _virtualPage: function (skip, take, callback) {\n var that = this;\n if (that._isVirtualEditable()) {\n that.virtualScrollable._preventScroll = true;\n that.virtualScrollable._page(skip, take, callback);\n }\n },\n _firstEditableColumnIndex: function (container) {\n var that = this, column, columns = leafColumns(that.columns), idx, length, model = that._modelForContainer(container);\n for (idx = 0, length = columns.length; idx < length; idx++) {\n column = columns[idx];\n if (model && (!model.editable || model.editable(column.field)) && !column.command && column.field && column.hidden !== true) {\n return idx;\n }\n }\n return -1;\n },\n _toolbar: function () {\n var that = this, wrapper = that.wrapper, toolbar = that.options.toolbar, editable = that.options.editable, container;\n if (toolbar) {\n container = that.wrapper.find('.k-grid-toolbar');\n if (!container.length) {\n if (!isFunction(toolbar)) {\n toolbar = typeof toolbar === STRING ? toolbar : that._toolbarTmpl(toolbar).replace(templateHashRegExp, '\\\\#');\n toolbar = proxy(kendo.template(toolbar), that);\n }\n container = $('
    ').html(toolbar({})).prependTo(wrapper);\n that.angular('compile', function () {\n return { elements: container.get() };\n });\n }\n if (editable && editable.create !== false) {\n container.on(CLICK + NS, '.k-grid-add', function (e) {\n e.preventDefault();\n that.addRow();\n }).on(CLICK + NS, '.k-grid-cancel-changes', function (e) {\n e.preventDefault();\n that.cancelChanges();\n }).on(CLICK + NS, '.k-grid-save-changes', function (e) {\n e.preventDefault();\n that.saveChanges();\n });\n }\n container.on(CLICK + NS, '.k-grid-excel', function (e) {\n e.preventDefault();\n that.saveAsExcel();\n });\n container.on(CLICK + NS, '.k-grid-pdf', function (e) {\n e.preventDefault();\n that.saveAsPDF();\n });\n container.on(INPUT + NS, '.k-grid-search input', function (e) {\n var input = e.currentTarget;\n clearTimeout(that._searchTimeOut);\n that._searchTimeOut = setTimeout(function () {\n that._searchTimeOut = null;\n var options = that.options;\n var searchFields = options.search ? options.search.fields : null;\n var expression = {\n filters: [],\n logic: 'or'\n };\n var value = input.value;\n if (!searchFields) {\n searchFields = getColumnsFields(options.columns);\n }\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n }\n if (value) {\n for (var i = 0; i < searchFields.length; i++) {\n expression.filters.push({\n field: searchFields[i],\n operator: 'contains',\n value: value\n });\n }\n } else {\n expression = {};\n }\n that.dataSource.filter(expression);\n }, 300);\n });\n }\n },\n _toolbarTmpl: function (commands) {\n var that = this, idx, length, html = '', command, searchText = '', messages = that.options.messages.commands;\n if (isArray(commands)) {\n for (idx = 0, length = commands.length; idx < length; idx++) {\n command = typeof commands[idx] === 'string' ? commands[idx].toLowerCase() : (commands[idx].name || '').toLowerCase();\n if (command === 'search') {\n if (typeof commands[idx] !== 'string') {\n searchText = commands[idx].text;\n }\n searchText = searchText || messages.search;\n html += '';\n html += '';\n html += '';\n html += '';\n } else {\n html += that._createButton(commands[idx]);\n }\n }\n }\n return html;\n },\n _createButton: function (command) {\n var template = command.template || COMMANDBUTTONTMPL, commandName = typeof command === STRING ? command : command.name || command.text, className = defaultCommands[commandName] ? defaultCommands[commandName].className : 'k-grid-' + (commandName || '').replace(/\\s/g, ''), options = {\n className: className,\n text: commandName,\n attr: '',\n iconClass: ''\n }, messages = this.options.messages.commands, attributeClassMatch;\n if (!commandName && !(isPlainObject(command) && command.template)) {\n throw new Error('Custom commands should have name specified');\n }\n if (isPlainObject(command)) {\n command = extend(true, {}, command);\n if (command.className && inArray(options.className, command.className.split(' ')) < 0) {\n command.className += ' ' + options.className;\n } else if (command.className === undefined) {\n command.className = options.className;\n }\n if (commandName === 'edit') {\n command = extend(true, {}, command);\n command.text = isPlainObject(command.text) ? command.text.edit : command.text;\n command.iconClass = isPlainObject(command.iconClass) ? command.iconClass.edit : command.iconClass;\n }\n if (command.attr) {\n if (isPlainObject(command.attr)) {\n command.attr = stringifyAttributes(command.attr);\n }\n if (typeof command.attr === STRING) {\n attributeClassMatch = command.attr.match(/class=\"(.+?)\"/);\n if (attributeClassMatch && inArray(attributeClassMatch[1], command.className.split(' ')) < 0) {\n command.className += ' ' + attributeClassMatch[1];\n }\n }\n }\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] }, command);\n } else {\n options = extend(true, options, defaultCommands[commandName], { text: messages[commandName] });\n }\n return kendo.template(template)(options);\n },\n _hasFooters: function () {\n return !!this.footerTemplate || !!this.groupFooterTemplate || this.footer && this.footer.length > 0 || this.wrapper.find('.k-grid-footer').length > 0;\n },\n _groupable: function () {\n var that = this;\n if (that._groupableClickHandler) {\n that.table.add(that.lockedTable).off(CLICK + NS, that._groupableClickHandler);\n } else {\n that._groupableClickHandler = function (e) {\n var element = $(this), groupRow = element.closest('tr');\n var group = that._groupRows ? that._groupRows[that.wrapper.find('.k-grouping-row').index(groupRow)] : {};\n if (element.hasClass('k-i-collapse')) {\n if (!that.trigger('groupCollapse', {\n group: group,\n element: groupRow\n })) {\n that.collapseGroup(groupRow);\n }\n } else {\n if (!that.trigger('groupExpand', {\n group: group,\n element: groupRow\n })) {\n that.expandGroup(groupRow);\n }\n }\n e.preventDefault();\n e.stopPropagation();\n };\n }\n if (that._isLocked()) {\n that.lockedTable.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n } else {\n that.table.on(CLICK + NS, '.k-grouping-row .k-i-expand, .k-grouping-row .k-i-collapse', that._groupableClickHandler);\n }\n that._attachGroupable();\n },\n _attachGroupable: function () {\n var that = this, wrapper = that.wrapper, groupable = that.options.groupable, draggables = HEADERCELLS + '[' + kendo.attr('field') + ']', filter = that.content ? '.k-grid-header:first ' + draggables : 'table:first>.k-grid-header ' + draggables;\n if (groupable && groupable.enabled !== false) {\n if (!wrapper.has('div.k-grouping-header')[0]) {\n $('
     
    ').addClass('k-grouping-header').prependTo(wrapper);\n }\n if (that.groupable) {\n that._destroyGroupable();\n }\n if (browser.chrome) {\n wrapper.find('div.k-grouping-header').css('touch-action', 'none');\n wrapper.find(filter).css('touch-action', 'none');\n }\n that.groupable = new ui.Groupable(wrapper, extend({}, groupable, {\n draggable: that._draggableInstance,\n groupContainer: '>div.k-grouping-header',\n dataSource: that.dataSource,\n draggableElements: filter,\n filter: filter,\n allowDrag: that.options.reorderable,\n change: function (e) {\n if (that.trigger('group', { groups: e.groups })) {\n e.preventDefault();\n } else {\n that._clearEditableState();\n if (that.dataSource.options.endless) {\n that.dataSource.options.endless = null;\n that._endlessPageSize = that.dataSource.options.pageSize;\n that.dataSource._skip = 0;\n that.dataSource._pageSize = that.dataSource._take = that._endlessPageSize;\n that.dataSource._page = 1;\n }\n }\n }\n }));\n that._addGroupableOptionsToHeader();\n }\n },\n _addGroupableOptionsToHeader: function () {\n var that = this;\n var columns = flatColumns(that.columns);\n var columnFieldMap = {};\n var field = '';\n var headerCells = that._headerCells();\n var cellFieldAttr = '';\n var headerCell;\n var columnOptions;\n var i;\n for (i = 0; i < columns.length; i++) {\n field = columns[i].field;\n columnFieldMap[columns[i].field] = columns[i];\n }\n for (i = 0; i < headerCells.length; i++) {\n headerCell = headerCells.eq(i);\n cellFieldAttr = headerCell.attr(kendo.attr(FIELD));\n columnOptions = columnFieldMap[cellFieldAttr];\n if (columnOptions && columnOptions.groupable && columnOptions.groupable.sort) {\n headerCell.data(GROUP_SORT, columnOptions.groupable.sort);\n }\n }\n },\n _destroyGroupable: function () {\n var that = this;\n if (that.groupable && that.groupable.element) {\n that.groupable.element.kendoGroupable('destroy');\n }\n that.groupable = null;\n that._removeGroupableOptionsFromHeader();\n },\n _removeGroupableOptionsFromHeader: function () {\n var that = this;\n var headerCells = that._headerCells();\n for (var i = 0; i < headerCells.length; i++) {\n headerCells.eq(i).removeData(GROUP_SORT);\n }\n },\n _continuousItems: function (filter, cell) {\n if (!this.lockedContent) {\n return;\n }\n var that = this;\n var elements = that.table.add(that.lockedTable);\n var lockedItems = $(filter, elements[0]);\n var nonLockedItems = $(filter, elements[1]);\n var columns = cell ? lockedColumns(that.columns).length : 1;\n var nonLockedColumns = cell ? that.columns.length - columns : 1;\n var result = [];\n for (var idx = 0; idx < lockedItems.length; idx += columns) {\n push.apply(result, lockedItems.slice(idx, idx + columns));\n push.apply(result, nonLockedItems.splice(0, nonLockedColumns));\n }\n return result;\n },\n _selectable: function () {\n var that = this, multi, cell, notString = [], isLocked = that._isLocked(), selectable = that.options.selectable;\n if (selectable) {\n if (that.selectable) {\n that.selectable.destroy();\n }\n that._selectedIds = {};\n selectable = kendo.ui.Selectable.parseOptions(selectable);\n multi = selectable.multiple;\n cell = selectable.cell;\n if (that._hasDetails()) {\n notString[notString.length] = '.k-detail-row';\n }\n if (that.options.groupable || that._hasFooters() || that._groups()) {\n notString[notString.length] = '.k-grouping-row,.k-group-footer';\n }\n notString = notString.join(',');\n if (notString !== '') {\n notString = ':not(' + notString + ')';\n }\n var elements = that.table;\n if (isLocked) {\n elements = elements.add(that.lockedTable);\n }\n var filter = '>' + (cell ? SELECTION_CELL_SELECTOR : 'tbody>tr' + notString);\n that.selectable = new kendo.ui.Selectable(elements, {\n filter: filter,\n aria: true,\n multiple: multi,\n change: function () {\n var selectedValues;\n if (!cell) {\n that._persistSelectedRows();\n }\n if (that._checkBoxSelection) {\n selectedValues = that.selectable.value();\n that._uncheckCheckBoxes();\n that._checkRows(selectedValues);\n if (selectedValues.length && selectedValues.length === that.items().length) {\n that._toggleHeaderCheckState(true);\n } else {\n that._toggleHeaderCheckState(false);\n }\n }\n that.trigger(CHANGE);\n },\n useAllItems: isLocked && multi && cell,\n relatedTarget: function (items) {\n if (cell || !isLocked) {\n return;\n }\n var related;\n var result = $();\n for (var idx = 0, length = items.length; idx < length; idx++) {\n related = that._relatedRow(items[idx]);\n if (inArray(related[0], items) < 0) {\n result = result.add(related);\n }\n }\n return result;\n },\n continuousItems: function () {\n return that._continuousItems(filter, cell);\n },\n ignoreOverlapped: that.options.selectable && that.options.selectable.ignoreOverlapped\n });\n if (that.options.navigatable) {\n elements.on('keydown' + NS, function (e) {\n var current = that.current();\n var target = e.target;\n if (!current) {\n return;\n }\n if (e.keyCode === keys.SPACEBAR && !e.shiftKey && $.inArray(target, elements) > -1 && !current.is('.k-edit-cell,.k-header') && current.parent().is(':not(.k-grouping-row,.k-detail-row,.k-group-footer)')) {\n e.preventDefault();\n e.stopPropagation();\n current = cell ? current : current.parent();\n if (isLocked && !cell) {\n current = current.add(that._relatedRow(current));\n }\n if (multi) {\n if (!e.ctrlKey) {\n that.selectable.clear();\n } else {\n if (current.hasClass(SELECTED)) {\n that._deselectCheckRows(current);\n return;\n }\n }\n } else {\n that.selectable.clear();\n }\n if (!cell) {\n that.selectable._lastActive = current;\n }\n that.selectable.value(current);\n } else if (!cell && ($(target).is('td') || $(target).is('table') && inArray(target, this._navigatableTables)) && (e.shiftKey && e.keyCode == keys.LEFT || e.shiftKey && e.keyCode == keys.RIGHT || e.shiftKey && e.keyCode == keys.UP || e.shiftKey && e.keyCode == keys.DOWN || e.keyCode === keys.SPACEBAR && e.shiftKey)) {\n e.preventDefault();\n e.stopPropagation();\n current = current.parent();\n if (isLocked) {\n current = current.add(that._relatedRow(current));\n }\n if (multi) {\n if (!that.selectable._lastActive) {\n that.selectable._lastActive = current;\n }\n that.selectable.selectRange(that.selectable._firstSelectee(), current);\n } else {\n that.selectable.clear();\n that.selectable.value(current);\n }\n }\n });\n }\n }\n },\n _clipboard: function () {\n var options = this.options;\n var selectable = options.selectable;\n if (selectable && options.allowCopy) {\n var grid = this;\n if (!options.navigatable) {\n grid.table.add(grid.lockedTable).attr('tabindex', 0).on('mousedown' + NS + ' keydown' + NS, '.k-detail-cell', function (e) {\n if (e.target !== e.currentTarget) {\n e.stopImmediatePropagation();\n }\n }).on('mousedown' + NS, NAVROW + '>' + NAVCELL, proxy(tableClick, grid));\n }\n grid.copyHandler = proxy(grid.copySelection, grid);\n grid.updateClipBoardState = function () {\n if (grid.areaClipBoard) {\n grid.areaClipBoard.val(grid.getTSV()).focus().select();\n }\n };\n grid.bind('change', grid.updateClipBoardState);\n grid.wrapper.on('keydown', grid.copyHandler);\n grid.clearAreaHandler = proxy(grid.clearArea, grid);\n grid.wrapper.on('keyup', grid.clearAreaHandler);\n }\n },\n copySelection: function (e) {\n if (e instanceof jQuery.Event && !(e.ctrlKey || e.metaKey) || $(e.target).is('input:visible,textarea:visible') || window.getSelection && window.getSelection().toString() || document.selection && document.selection.createRange().text) {\n return;\n }\n if (!this.areaClipBoard) {\n this.areaClipBoard = $('