{"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","column","hidden","uid","field","isVisible","addHiddenStyle","footerAttributes","headerAttributes","guid","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","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","append","cellCounts","findParentColumnWithChildren","index","rtl","targetLocked","locked","findReorderTarget","masterColumns","parent","parentColumns","targetIndex","inArray","flatColumnsInDomOrder","flatColumns","targetParentContainerIndex","hiddenLeafColumnsCount","counter","columnsWidth","cols","colWidth","indexOf","parseInt","removeRowSpanValue","removeEmptyRows","emptyRowsCount","remove","mapColumnToCellRows","rowIndex","visibleNonLockedColumns","visibleLockedColumns","visibleLeafColumns","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","normalizeCols","hasDetails","colgroup","format","is","prepend","browser","msie","version","setTimeout","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","e","preventDefault","focus","isColumnGroupable","grid","groupable","isGroupedBy","isColumnEditable","model","selectable","editable","isInputElement","tableClick","currentTarget","isHeader","lockedTable","headerTable","lockedHeader","isInput","preventScroll","currentTable","roleSelector","_setCurrent","navigatable","isIE8","_activeElement","CHECKBOXINPUT","contains","support","touch","leftMostPosition","webkit","isInEdit","groupCellBuilder","headerTemplateIndex","ARIALABEL","COLLAPSE","groupCellLockedContentBuilder","groupRowBuilder","colspan","groupRowLockedContentBuilder","ui","DataSource","ObservableObject","tbodyInnerHtml","activeElement","Widget","outerWidth","_outerWidth","outerHeight","_outerHeight","keys","prototype","isFunction","isEmptyObject","math","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","RESIZE","COLUMNRESIZE","COLUMNREORDER","COLUMNLOCK","COLUMNUNLOCK","NAVIGATE","MOUSEDOWN","HEIGHT","TABINDEX","FUNCTION","BOTTOM","CONTAINER_FOR","FIELD","INPUT","INCELL","INLINE","UNIQUE_ID","MINCOLSPANVALUE","COLSPAN","OVERFLOW","HIDDEN","GROUP_SORT","DELETECONFIRM","NORECORDS","CONFIRMDELETE","CANCELDELETE","EXPAND","formatRegExp","templateHashRegExp","whitespaceRegExp","RegExp","COMMANDBUTTONTMPL","SELECTCOLUMNTMPL","SELECTCOLUMNHEADERTMPL","isRtl","isIE7","isIE11","isMac","navigator","userAgent","classNames","widget","scrollContainer","VirtualScrollable","that","fn","call","_refreshHandler","refresh","setDataSource","dataSource","wrap","unbind","bind","useRanges","itemHeight","noop","prefetch","maxScrollHeight","events","destroy","wrapper","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","floor","lastItemOffset","ceil","lastItemIndex","_preventScroll","_scrollTop","_scrolling","_fetch","trigger","_page","take","scrollToTop","_scrollTo","scrollToBottom","_scrollWrapperToTop","_scrollWrapperToBottom","_scrollWrapperOnColumnResize","initialScrollTop","scrollWidth","clientWidth","_wrapperScrolled","_isScrolledToBottom","_isWrapperScrolledToBottom","_isScrolledToTop","itemIndex","rangeStart","_isElementVisible","_isElementVisibleInWrapper","halfHeight","top","abs","pageSize","scrollIntoView","containerHeight","containerScroll","elementOffset","elementHeight","scrollingUp","currentSkip","fetching","prefetchAt","webkitCorrection","min","total","_fetching","callback","inRange","progress","range","repaintScrollbar","shouldScrollWrapper","maxHeight","wrapperElement","wasScrolledToBottom","addScrollBarHeight","totalHeight","action","cancel","page","defaultCommands","create","iconClass","save","edit","update","canceledit","excel","pdf","Grid","DataBoundWidget","_events","_element","_aria","_columns","_dataSource","_tbody","_pageable","_thead","_groupable","_toolbar","_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","rowTemplate","altRowTemplate","noRecords","resizable","reorderable","columnMenu","detailTemplate","columnResizeHandleWidth","mobile","messages","cancelDelete","confirmation","confirmDelete","expandCollapseColumnHeader","groupHeader","ungroupHeader","_angularItems","_destroyColumnAttachments","_navigatableTables","pager","timer","_progressTimeOut","_collapseGroupsTimeOut","_endlessFetchTimeOut","_destroyGroupable","clearArea","_selectedIds","copyHandler","updateClipBoardState","clearAreaHandler","_resizeUserEvents","_resizeHandleDocumentClickHandler","_destroyVirtualScrollable","_destroyEditable","_progressHandler","_errorHandler","_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","tr","dataItems","n","resizeHandle","angular","each","filterMenu","_cellId","_hasDetails","_createResizeHandle","left","headerWrap","ieCorrection","firefoxCorrection","indicatorWidth","parseFloat","mozilla","_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","_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","reverse","closestVisibleColumn","leafIndex","autoFitColumn","minWidth","contentDiv","footerTable","j","tables","oldColumnWidth","newColumnWidth","visibleLocked","notGroupOrHierarchyCol","notGroupOrHierarchyVisibleCell","lockChanged","sourceColumns","destColumn","groupHeaderColumnTemplateColumns","groupHeaderColumnTemplate","_updateLockedCols","_updateCols","_updateColumnCellIndex","_updateColumnSorters","_renderGroupRows","_updateTablesWidth","_updateFirstColumnClass","lockColumn","unlockColumn","cellIndex","td","lockedColumnOffset","_modelForContainer","_editMode","getByUid","mode","multiple","handler","_editContainer","end","closeCell","_scrollVirtualWrapper","editContainer","_mousedownOnEditCell","isLockedCell","has","blur","editCell","shouldCloseCell","editRow","_isVirtualInlineEditable","stopPropagation","removeRow","_confirmation","_attachModelChange","_shouldClearEditableState","_clearEditableState","kendoEditable","fields","editor","values","skipFocus","_isVirtualIncellEditable","_editableState","_relatedRow","_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","idField","sync","_createPopupEditor","_createInlineEditor","_editCancelClick","_editUpdateClick","saveRow","currentIndex","updateText","cancelText","updateIconClass","cancelIconClass","tempCommand","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","toLowerCase","virtualEditable","serverPaging","totalPages","_removeCurrent","_virtualAddRow","insert","_editModel","_firstEditableColumnIndex","_virtualAddRowAtBottom","_virtualAddRowAtTop","at","_virtualPageToBottom","_virtualPage","_toolbarTmpl","prependTo","saveAsExcel","saveAsPDF","attributeClassMatch","split","_hasFooters","groupRow","collapseGroup","expandGroup","_isLocked","_attachGroupable","draggables","enabled","Groupable","groupContainer","draggableElements","allowDrag","endless","_endlessPageSize","_skip","_pageSize","_take","_addGroupableOptionsToHeader","headerCell","columnOptions","columnFieldMap","headerCells","_headerCells","cellFieldAttr","kendoGroupable","_removeGroupableOptionsFromHeader","removeData","_continuousItems","lockedItems","nonLockedItems","apply","multi","notString","Selectable","parseOptions","aria","selectedValues","_persistSelectedRows","_uncheckCheckBoxes","_checkRows","_toggleHeaderCheckState","useAllItems","relatedTarget","continuousItems","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","_relatedCell","clearSelection","selectableoptions","checked","prop","allRows","dataSourceOptions","selectedViewIds","selectedKeyNames","property","ids","_updateCurrentAttr","headerId","removeAttr","_current","_scrollCurrent","tableContainer","isInLockedContainer","isInContent","scrollableContainer","addBack","_rowVirtualIndex","preventTrigger","_lastCellIndex","elementToLowercase","tagName","isHorizontal","elementOffsetDir","containerOffsetDir","bottomDistance","offsetLeft","dataTables","headerTables","_openHeaderMenu","_tableFocus","_tableBlur","_tableKeyDown","altKey","_setTabIndex","handled","requestInProgress","canHandle","isDefaultPrevented","_moveUp","_moveDown","_moveRight","_moveLeft","PAGEDOWN","_handlePageDown","PAGEUP","_handlePageUp","HOME","_handleHome","END","_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","right","back","switchRow","isEdited","isIE","oldIE","opera","triggerHandler","_initMobile","_createPane","Pane","viewEngine","viewOptions","renderOnInit","wrapInSections","detachOnHide","detachOnDestroy","_scrollable","originalPageSize","hasVirtualScroll","_createVirtualScrollable","_scrollLeft","_endlessFetchInProgress","_skipRerenderItemsCount","movable","_averageRowHeight","_restoreEditableState","scroll","_focusEditable","_onVirtualPaging","_cacheEditableState","_isVirtualPopupEditable","editableState","editedModel","inlineMode","incellMode","_getByUid","editedField","_canFocusEditable","widgetInstance","_renderNoRecordsContent","noRecordsElement","_setContentWidth","expander","hiddenDivClass","hiddenDiv","isNaN","footerWrap","contentWidth","nonLockedCols","nonLockedColsWidth","isGridHeightSet","scrollableHeight","initialHeight","newHeight","currentRowHeight","itemsCount","_rowHeight","_sum","_measures","_requestStart","_error","_progress","relatedRow","selectableRow","childCells","originalCells","Pager","_wrapFooter","_appendLockedColumnFooter","footerRow","_appendCols","_columnMenu","menu","menuOptions","hasMultiColumnHeaders","initCallback","openCallback","closeCallback","sortHandler","filterHandler","compare","forceUnique","checkSource","owner","filtering","kendoColumnMenu","_filterable","columnFilterable","filterInit","filterOpen","kendoFilterMultiCheck","kendoFilterMenu","_filterRow","rowheader","suggestDataSource","operators","customDataSource","cellOptions","_updateHeader","delay","inputWidth","suggestionOperator","minLength","dataTextField","operator","showOperators","kendoFilterCell","_sortable","sorterInstance","kendoColumnSorter","columnLeafs","initialColumns","headers","_checkboxClick","_headerCheckboxClick","checkBox","parentGrid","getKendoGrid","isSelecting","_tmpl","alt","skipGroupCells","paramName","fieldAttr","dirtyCellTemplate","expr","_dirtyCellTemplate","dirtyField","charAt","_headerCellText","headerTemplate","_dirtyIndicatorTemplate","stringify","useWithBlock","columnsLocked","groupHeaderColumnTemplateLockedColumns","groupHeaderColumnTemplateNonLockedColumns","_detailTmpl","_footerTmpl","g","_groupHeaderTmpl","lockedGroupHeaderColumnTemplate","_noRecordsTmpl","defaultTemplate","scrollableNoGridHeightStyles","templateName","rowClass","scope","fieldsMap","_emptyAggregates","templateFunctionStorage","templateFunctionCount","hasFiltering","columnsWithoutFiltering","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","_prepareColumns","_retrieveFirstColumn","parentRow","childRow","totalColSpan","_updateHeaderCols","_autoColumns","toJSON","_rowsHtml","templates","_groupData","skipFooter","firstColumn","footerDefaults","_groupAggregatesDefaultObject","groupItems","headerData","footerData","_groupRowHtml","groupHeaderBuilder","skipColspan","skipLastGroup","groupData","groupHeaderTemplate","_skippedGroups","shift","toHide","groupToCollapse","showFooter","footerCount","relatedGroup","_groupToCollapse","footersVisibility","groupsCount","toggleVisibility","pop","_firstDataItem","grouped","headerCellIndex","_columnVisibilitySetter","_setParentsVisibility","predicate","p","originalColumn","columnLeafIndex","_resize","force","_isActiveInTable","contentScrollLeft","cachedItemsToSkip","isCurrentInHeader","_renderContent","_renderLockedContent","_togglePagerVisibility","_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","then","err","renderPage","origBody","paddingRight","_initPDFProgress","_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,aACDD,IACL,WA0+OE,MA14OC,UAAUE,EAAGkF,GAuUV,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,GAiDX,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,GACxC,MAAOlF,IAAIgF,EAAS,SAAUG,GAAV,GAEZC,GAUAC,CAEJ,OAbAF,SAAgBA,KAAWpC,IAAWuC,MAAOH,GAAWA,EAEnDI,EAAUJ,KAAWD,IACtBC,EAAOtC,WAAa2C,EAAeL,EAAOtC,YAC1CsC,EAAOM,iBAAmBD,EAAeL,EAAOM,kBAChDN,EAAOO,iBAAmBF,EAAeL,EAAOO,kBAChDN,GAAS,GAETD,EAAOH,UACPG,EAAOH,QAAUD,EAAiBI,EAAOH,QAASC,EAASG,IAE3DC,EAAMjG,GAAMuG,OAChBR,EAAOO,iBAAmBnG,IAASqG,GAAIP,GAAOF,EAAOO,kBAC9CnG,IACH0F,QAASA,EACTG,OAAQA,GACTD,KAGX,QAASU,GAAaV,EAAQH,GAC1B,GAAIc,KAEJ,OADAC,GAAcZ,EAAQH,EAASc,GACxBA,EAAQA,EAAQ1H,OAAS,GAEpC,QAAS2H,GAAcZ,EAAQH,EAASc,GAAxC,GAEarC,GAIGuC,CAJZ,KADAF,EAAUA,MACDrC,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CAC3C,GAAI0B,IAAWH,EAAQvB,GACnB,OAAO,CACJ,IAAIuB,EAAQvB,GAAKuB,QAAS,CAG7B,GAFIgB,EAAWF,EAAQ1H,OACvB0H,EAAQjI,KAAKmH,EAAQvB,IAChBsC,EAAcZ,EAAQH,EAAQvB,GAAKuB,QAASc,GAG7C,OAAO,CAFPA,GAAQG,OAAOD,EAAUF,EAAQ1H,OAAS4H,IAMtD,OAAO,EAEX,QAASE,GAAoBf,EAAQgB,GACjCC,EAAcjB,EAAQgB,EAASA,GAEnC,QAASC,GAAcjB,EAAQgB,EAASE,GACpC,GAAIC,GAASD,EAAOE,EAAoBf,CACxCL,GAAOC,QAAUe,EACjBhB,EAAOtC,WAAayD,EAAOnB,EAAOtC,YAClCsC,EAAOM,iBAAmBa,EAAOnB,EAAOM,kBACxCN,EAAOO,iBAAmBY,EAAOnB,EAAOO,kBAE5C,QAASc,GAAyBrB,EAAQgB,GACtCM,EAAsBtB,EACtB,IAAIuB,GAAcvB,EAAOwB,YACzBP,GAAcjB,EAAQgB,EAASO,EAAcvB,EAAOyB,aAAeT,GAEvE,QAASM,GAAsBtB,GAC3BA,EAAOyB,aAAeC,EAAmB1B,GAE7C,QAAS0B,GAAmB1B,GACxB,MAAOA,KAAW2B,EAAY3B,EAAO4B,SAAWD,EAAY3B,EAAO4B,QAAU3H,GAAMwH,aAAazB,EAAO4B,QAE3G,QAASC,KACL,MAA8B,SAAvBtH,KAAKf,MAAMsI,QAEtB,QAASC,GAAiBC,GACtB,MAAuC,SAAhCjK,EAAEiK,GAAS,GAAGxI,MAAMsI,QAE/B,QAAS1B,GAAUJ,GACf,MAAOiC,IAAgBjC,IAAS/G,OAAS,EAE7C,QAASgJ,GAAepC,GACpB,MAAOqC,IAAKrC,EAAS,SAAUG,GAC3B,GAAIrC,IAAUqC,EAAOC,QAAUD,EAAOyB,gBAAiB,CAIvD,OAHI9D,IAAUqC,EAAOH,UACjBlC,EAASsE,EAAejC,EAAOH,SAAS5G,OAAS,GAE9C0E,IAGf,QAASwE,GAAiBtC,GAA1B,GAEQG,GACKjH,EAFL4E,IAEJ,KAAS5E,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAAK,CAErC,GADAiH,EAASH,EAAQ9G,IACZ4I,EAAY3B,EAAO4B,OAAQ,CAC5B,IAAKD,EAAY3B,EAAOoC,gBACpB,KAAUC,OAAM,gFAEpB1E,GAAOjF,KAAKsH,GAEZA,EAAOH,UACPlC,EAASA,EAAO2E,OAAOH,EAAiBnC,EAAOH,WAGvD,MAAOlC,GAEX,QAASgE,GAAY/G,GACjB,MAAwB,KAAVA,EAElB,QAAS2H,GAAS7D,GACd,MAAO3G,GAAE2G,GAAU7D,IAAI,WACnB,MAAON,MAAKiI,YAGpB,QAASC,GAAkBC,EAAM7C,EAAS8C,GAA1C,GACQC,GAAoBC,EAAMC,EAAcjD,IACxCkD,EAAuBF,EAAMG,EAAiBnD,IAC9CoD,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,EAAOxD,EAASb,EAAWsE,EAAaC,GAA7F,GAIYjG,GACAkG,EAJJC,EAAeZ,EAAMM,GACrBO,EAAcb,GAAOO,GACrBK,GAAeC,IACXpG,EAAiBE,MAAM+F,EAAS,GAAG3K,KAAK,6DACxC4K,EAAOF,EAAYK,SAAS,uBAChC5L,EAAMyF,MAAMiG,EAAeC,EAAc,GAAG9K,KAAK,OAAS0E,EAAa,UAAUsG,YAAYJ,EAAKK,SAEtGC,EAAgBR,EAAaG,EAAeC,GAC5CK,EAAUV,EAAOxD,EAASb,EAAWsE,GAEzC,QAASU,GAAgBC,EAAOpE,EAASqE,GAAzC,GAEQC,GACAzB,EACA0B,EAEAC,EACAb,EACA3E,EAIKP,EAASrF,CAAlB,KAXAiL,EAASA,GAAU,EAGfE,EAAavE,EACjBA,EAAUyE,EAAYzE,GAClBwE,KACAb,EAAOS,EAAMnF,KAAK,0BAClBD,EAAS,WACT,GAAI0F,GAAKxM,EAAEwC,KACX,QAAQgK,EAAGC,SAAS,kBAAoBD,EAAGC,SAAS,qBAE/ClG,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACrD6F,EAAWM,EAAe5E,EAAQvB,GAAM8F,GACnCC,EAAMF,EAASO,OAChBL,EAAMF,EAASO,KAAOlB,EAAKhF,GAAG2F,EAASO,KAAK5F,KAAK,aAAaD,OAAOA,IAEzE6D,EAAO2B,EAAMF,EAASO,KAAKlG,GAAG2F,EAASzB,MACvCA,EAAKrF,KAAKpD,GAAMoD,KAAK,SAAU6G,EAAS5F,EAE5C,OAAOuB,GAAQ5G,OAEnB,QAAS4J,GAAMhD,GAAf,GAGavB,GAEGqG,EAJRhH,EAAS,EACTiH,EAAM,CACV,KAAStG,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAKuB,UACT8E,EAAO9B,EAAMhD,EAAQvB,GAAKuB,SAC1B8E,EAAOC,IACPA,EAAMD,GAIlB,OAAOhH,GAASiH,EAEpB,QAASb,GAAUV,EAAOxD,EAASb,EAAWsE,GAA9C,GAKQhF,GAKAqF,EATAkB,EAAiBC,EAAsBzB,EAAM,GAAIxD,GACjDkF,EAAM/F,EAAUF,KAAK,6BAA+B+F,EAAeH,IAAM,iBACzEM,EAAIjN,IACJwG,EAAcsG,EAAenC,IAEjC,KAAKpE,EAAM,EAAGA,EAAM+E,EAAMpK,OAAQqF,IAC9B0G,EAAIA,EAAEjH,IAAIgH,EAAIvG,GAAGD,EAAcD,GAInC,KAFAgF,EAAYxE,KAAK,0BAA0BN,GAAGqG,EAAeH,KAAKO,OAAOD,GACrErB,KACCrF,EAAM,EAAGA,EAAM+E,EAAMpK,OAAQqF,IAC1B+E,EAAM/E,GAAKuB,UACX8D,EAAWA,EAASrB,OAAOe,EAAM/E,GAAKuB,SAG1C8D,GAAS1K,QACT8K,EAAUJ,EAAU9D,EAASb,EAAWsE,GAGhD,QAASmB,GAAezE,EAAQH,EAAS6E,EAAKQ,GAA9C,GACQvH,GACAW,CAIJ,KAHAoG,EAAMA,GAAO,EACbQ,EAAaA,MACbA,EAAWR,GAAOQ,EAAWR,IAAQ,EAChCpG,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CACvC,GAAIuB,EAAQvB,IAAQ0B,EAAQ,CACxBrC,GACI+E,KAAMwC,EAAWR,GACjBA,IAAKA,EAET,OACG,GAAI7E,EAAQvB,GAAKuB,UACpBlC,EAAS8G,EAAezE,EAAQH,EAAQvB,GAAKuB,QAAS6E,EAAM,EAAGQ,IAE3D,KAGRA,GAAWR,KAEf,MAAO/G,GAEX,QAASwH,GAA6BtF,EAASuF,EAAOjH,EAAQkH,GAA9D,GACQjC,GAEAkC,EADAC,IAAWpH,EAAOoH,MAEtB,GACInC,GAASvD,EAAQuF,GACjBA,GAASC,EAAM,KACfC,IAAiBlC,EAAOmC,aACnBnC,GAAUgC,MAAcA,EAAQvF,EAAQ5G,QAAUmK,GAAUjF,IAAWiF,EAAOvD,SAAWyF,IAAiBC,EACnH,OAAOnC,GAEX,QAASoC,GAAkB3F,EAASuD,EAAQjF,EAAQE,EAAQoH,GAA5D,GAKYC,GACAC,EAMAP,EAQA7G,EAEAqH,CArBR,OAAIxC,GAAOvD,SACPuD,EAASA,EAAOvD,QACTuD,EAAO/E,EAAS,EAAI+E,EAAOnK,OAAS,KAEvCyM,EAAShF,EAAa0C,EAAQvD,GAG9B8F,EADAD,EACgBA,EAAO7F,QAEPA,EAEhBuF,EAAQS,GAAQzC,EAAQuC,GACd,IAAVP,GAAe/G,EACf+G,IACOA,GAASO,EAAc1M,OAAS,GAAMoF,GAEtC+G,EAAQ,GAAe,IAAVA,IAAgB/G,KACpC+G,GAAS/G,KAAc,GAFvB+G,IAIA7G,EAAcsH,GAAQ1H,EAAQwH,GAClCvC,EAAS+B,EAA6BQ,EAAeP,EAAOjH,EAAQI,EAAc6G,GAC9EQ,EAAcC,GAAQzC,EAAQqC,KAC9BrC,EAAOvD,SAAa+F,GAAeA,IAAgBD,EAAc1M,OAAS,IAG1EmK,GAAUA,GAAUjF,GAAUiF,EAAOvD,QAC9B2F,EAAkB3F,EAASuD,EAAQjF,EAAQE,EAAQoH,GAHnD,MAQnB,QAASX,GAAsB9E,EAAQH,EAAS6E,EAAKQ,GAArD,GACQvH,GACAW,CAIJ,KAHAoG,EAAMA,GAAO,EACbQ,EAAaA,MACbA,EAAWR,GAAOQ,EAAWR,IAAQ,EAChCpG,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAAO,CACvC,GAAIuB,EAAQvB,IAAQ0B,EAAQ,CACxBrC,GACI+E,KAAMwC,EAAWR,GACjBA,IAAKA,EAET,OACG,GAAI7E,EAAQvB,GAAKuB,UACpBlC,EAASmH,EAAsB9E,EAAQH,EAAQvB,GAAKuB,QAAS6E,EAAM,EAAGQ,IAElE,KAGHrF,GAAQvB,GAAK2B,QACdiF,EAAWR,KAGnB,MAAO/G,GAEX,QAASmI,GAAsBjG,GAC3B,GAAIlC,GAASoI,EAAYjD,EAAcjD,GACvC,OAAOlC,GAAO2E,OAAOyD,EAAY/C,EAAiBnD,KAEtD,QAASmG,GAA2BD,EAAalG,EAAStB,EAAaqH,GAAvE,GACQ5F,GAAS+F,EAAYxH,GACrB6E,EAAS2C,EAAYH,GACrBF,EAAShF,EAAaV,EAAQH,EAElC,OADAA,GAAU6F,EAASA,EAAO7F,QAAUA,EAC7BgG,GAAQzC,EAAQvD,GAE3B,QAASkG,GAAYlG,GAArB,GAGavB,GAFLX,KACAgG,IACJ,KAASrF,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACpCX,EAAOjF,KAAKmH,EAAQvB,IAChBuB,EAAQvB,GAAKuB,UACb8D,EAAWA,EAASrB,OAAOzC,EAAQvB,GAAKuB,SAMhD,OAHI8D,GAAS1K,SACT0E,EAASA,EAAO2E,OAAOyD,EAAYpC,KAEhChG,EAEX,QAASsI,GAAuBpG,GAAhC,GAEQG,GACK1B,EAFL4H,EAAU,CAEd,KAAS5H,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IACpC0B,EAASH,EAAQvB,GACb0B,EAAOH,QACPqG,GAAWD,EAAuBjG,EAAOH,SAClCG,EAAOC,QACdiG,GAGR,OAAOA,GAEX,QAASC,GAAaC,GAAtB,GACQC,GACK/H,EAASrF,EADJG,EAAQ,CACtB,KAASkF,EAAM,EAAGrF,EAASmN,EAAKnN,OAAQqF,EAAMrF,EAAQqF,IAClD+H,EAAWD,EAAK9H,GAAK9E,MAAMJ,MACvBiN,GAAYA,EAASC,QAAQ,WAC7BlN,GAASmN,SAASF,EAAU,IAGpC,OAAOjN,GAEX,QAASoN,GAAmBxH,EAAWzB,GAAvC,GAEQ0F,GACK3E,EAFL+F,EAAQrF,EAAUF,KAAK,gEAE3B,KAASR,EAAM,EAAGA,EAAM+F,EAAMpL,OAAQqF,IAClC2E,EAAUoB,EAAM/F,GAAK2E,QACjBA,EAAU,IACVoB,EAAM/F,GAAK2E,QAAUA,EAAU1F,GAAS,GAIpD,QAASuG,GAAgB9E,EAAWzB,GAApC,GAEae,GADL+F,EAAQrF,EAAUF,KAAK,gEAC3B,KAASR,EAAM,EAAGA,EAAM+F,EAAMpL,OAAQqF,IAClC+F,EAAM/F,GAAK2E,SAAW1F,EAG9B,QAASkJ,GAAgBzH,GAAzB,GAMaV,GALLkF,EAAOxE,EAAUF,KAAK,yBACtB4H,EAAiBlD,EAAK3E,OAAO,WAC7B,OAAQ9G,EAAEwC,MAAMoJ,WAAW1K,SAC5B0N,SAAS1N,OACRoL,EAAQb,EAAK1E,KAAK,0CACtB,KAASR,EAAM,EAAGA,EAAM+F,EAAMpL,OAAQqF,IAC9B+F,EAAM/F,GAAK2E,QAAU,IACrBoB,EAAM/F,GAAK2E,SAAWyD,EAG9B,OAAOlD,GAAKvK,OAASyN,EAEzB,QAASE,GAAoB/G,EAASwE,EAAOb,EAAMqD,EAAU3C,GACzD,GAAI5F,GAAKoG,EAAKzL,EAAQ0K,IACtB,KAAKrF,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjDoG,EAAMlB,EAAKqD,OACXnC,EAAIhM,KAAK2L,EAAM7F,GAAG0F,EAAS5F,IAC3BkF,EAAKqD,GAAYnC,EACb7E,EAAQvB,GAAKuB,UACb8D,EAAWA,EAASrB,OAAOzC,EAAQvB,GAAKuB,SAG5C8D,GAAS1K,QACT2N,EAAoBjD,EAAUU,EAAOb,EAAMqD,EAAW,EAAG3C,EAASrE,EAAQ5G,QAGlF,QAAS6J,GAAcjD,GACnB,MAAOqC,IAAKrC,EAAS,SAAUG,GAC3B,MAAOA,GAAOuF,SAGtB,QAASvC,GAAiBnD,GACtB,MAAOqC,IAAKrC,EAAS,SAAUG,GAC3B,OAAQA,EAAOuF,SAGvB,QAASuB,GAAwBjH,GAC7B,MAAOqC,IAAKrC,EAAS,SAAUG,GAC3B,OAAQA,EAAOuF,QAAUnF,EAAUJ,KAG3C,QAAS+G,GAAqBlH,GAC1B,MAAOqC,IAAKrC,EAAS,SAAUG,GAC3B,MAAOA,GAAOuF,QAAUnF,EAAUJ,KAG1C,QAASgH,GAAmBnH,GAA5B,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCuB,EAAQvB,GAAK2B,SAGbJ,EAAQvB,GAAKuB,QACblC,EAASA,EAAO2E,OAAO0E,EAAmBnH,EAAQvB,GAAKuB,UAEvDlC,EAAOjF,KAAKmH,EAAQvB,IAG5B,OAAOX,GAEX,QAAS2G,GAAYzE,GAArB,GAEavB,GADLX,IACJ,KAASW,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAC/BuB,EAAQvB,GAAKuB,QAIlBlC,EAASA,EAAO2E,OAAOgC,EAAYzE,EAAQvB,GAAKuB,UAH5ClC,EAAOjF,KAAKmH,EAAQvB,GAK5B,OAAOX,GAEX,QAASsJ,GAAcjI,GAAvB,GAaQkI,GAZA1D,EAAOxE,EAAUF,KAAK,0BACtBD,EAAS,WACT,GAAI0F,GAAKxM,EAAEwC,KACX,QAAQgK,EAAGC,SAAS,kBAAoBD,EAAGC,SAAS,qBAEpDH,EAAQtM,GAuBZ,OAtBIyL,GAAKvK,OAAS,IACdoL,EAAQb,EAAK1E,KAAK,MAAMD,OAAOA,GAAQA,OAAO,WAC1C,MAAOtE,MAAK0I,QAAU,KAG9BoB,EAAQA,EAAMtG,IAAIyF,EAAKK,OAAO/E,KAAK,MAAMD,OAAOA,IAC5CqI,EAAYjN,GAAMoD,KAAK,SAC3BgH,EAAM1L,KAAK,SAAUwO,EAAGC,GAAb,GAGHC,GACAC,CASJ,OAZAH,GAAIpP,EAAEoP,GACNC,EAAIrP,EAAEqP,GACFC,EAASF,EAAE9J,KAAK6J,GAChBI,EAASF,EAAE/J,KAAK6J,GAChBG,IAAWpK,IACXoK,EAAStP,EAAEoP,GAAG/B,SAEdkC,IAAWrK,IACXqK,EAASvP,EAAEqP,GAAGhC,SAElBiC,EAASd,SAASc,EAAQ,IAC1BC,EAASf,SAASe,EAAQ,IACnBD,EAASC,EAAS,EAAID,EAASC,KAAc,IAEjDjD,EAEX,QAASkD,GAAmB7E,GAA5B,GAOYgD,GACA8B,EAGAtD,EACAkB,EACAqC,EAGKnJ,EAMDoJ,EArBR1I,EAAY0D,EAAKiF,QAAQ,SACzBhK,EAAS5F,IAAIgG,IAAI2E,GACjBgC,EAAMhC,EAAKiF,QAAQ,MACnBC,EAAa5I,EAAUF,KAAK,yBAC5B+I,EAAQD,EAAWxC,MAAMV,EAC7B,IAAImD,EAAQ,EAAG,CAUX,IATInC,EAASkC,EAAWpJ,GAAGqJ,EAAQ,GAC/BL,EAA0B9B,EAAO5G,KAAK,2CAA2CD,OAAO,WACxF,OAAQ9G,EAAEwC,MAAM8C,KAAK,aAErB6G,EAAS,EACTkB,EAAQV,EAAI5F,KAAK,2CAA2CsG,MAAM1C,GAClE+E,EAAY/E,EAAKoF,QAAQ,yCAAyCjJ,OAAO,WACzE,MAAOtE,MAAKwN,QAAU,IAEjBzJ,EAAM,EAAGA,EAAMmJ,EAAUxO,OAAQqF,IACtC4F,GAAUuD,EAAUnJ,GAAKyJ,SAAW,CAIxC,KAFA3C,GAAS4C,KAAKpD,IAAIV,EAAS,EAAG,GAC9BA,EAAS,EACJ5F,EAAM,EAAGA,EAAMkJ,EAAwBvO,OAAQqF,IAOhD,GANIoJ,EAAaF,EAAwBhJ,GAAGF,GAExC4F,GADAwD,EAAWrK,KAAK,gBACNqK,EAAW,GAAGO,aAAa,gBAE3B,EAEV7C,GAAS9G,GAAO8G,EAAQlB,EAAQ,CAChCvG,EAAS4J,EAAmBG,GAAY3J,IAAIJ,EAC5C,QAIZ,MAAOA,GAEX,QAASuK,GAAkBxF,GAA3B,GAQYyF,GACAV,EACAnJ,EAIA4F,EAIAG,EACA0D,EAKInN,EAvBRoE,EAAY0D,EAAKiF,QAAQ,SACzBhK,EAAS5F,IAAIgG,IAAI2E,GACjBgC,EAAMhC,EAAKiF,QAAQ,MACnBC,EAAa5I,EAAUF,KAAK,yBAC5B+I,EAAQD,EAAWxC,MAAMV,GAAOhC,EAAK,GAAGO,QACxCmF,EAAcnO,GAAMoD,KAAK,UAC7B,IAAIwK,GAASD,EAAW3O,OAAS,EAAG,CAQhC,IAPIkP,EAAQzD,EAAI2D,OACZZ,EAAY/E,EAAKoF,QAAQ,yCAE7BL,EAAYA,EAAU5I,OAAO,WACzB,OAAQtE,KAAK0I,SAA4B,IAAjB1I,KAAK0I,UAE7BiB,EAAS,EACR5F,EAAM,EAAGA,EAAMmJ,EAAUxO,OAAQqF,IAClC4F,GAAUqC,SAASkB,EAAUjJ,GAAGF,GAAKjB,KAAK+K,GAAc,KAAO,CAKnE,KAHI/D,EAAQ8D,EAAMrJ,KAAK,2CACnBiJ,EAAUxB,SAAS7D,EAAKrF,KAAK+K,GAAc,KAAO,EACtD9J,EAAM,EACCA,EAAMyJ,GACTI,EAAQ9D,EAAM7F,GAAGF,EAAM4F,GACvBvG,EAASA,EAAOI,IAAImK,EAAkBC,IAClCvN,EAAQ2L,SAAS4B,EAAM9K,KAAK+K,GAAc,IAC1CxN,EAAQ,IACRmN,GAAWnN,EAAQ,GAEvB0D,IAGR,MAAOX,GAEX,QAAS2K,GAAcC,EAAOC,EAAOC,EAAMC,GACvC,GAAIC,GAAaC,EAAML,CAavB,OAZIG,IACAH,EAAMG,QAENG,GACAN,EAAM,GAAGO,UAAYL,GAErBE,EAActN,SAASC,cAAc,OACrCqN,EAAYG,UAAY,iBAAmBL,EAAO,mBAClDF,EAAQI,EAAYI,WAAWA,WAC/BP,EAAM,GAAGQ,aAAaT,EAAOK,EAAI,IACjCL,EAAQxQ,EAAEwQ,IAEPA,EAEX,QAASlI,GAAehD,GACpBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,KASjB,OARKA,IAGDA,EAAQA,EAAMrB,QAAQ,iBAAkB,gBACnCqB,EAAMyP,MAAM,eACbzP,EAAQA,EAAMrB,QAAQ,SAAU,qBAJpCqB,EAAQ,eAOLY,MAAWiD,GAAQ7D,MAAOA,IAErC,QAAS4H,GAAkB/D,GACvBA,EAAOA,KACP,IAAI7D,GAAQ6D,EAAK7D,KAIjB,OAHIA,KACA6D,EAAK7D,MAAQA,EAAMrB,QAAQ,+BAAgC,KAExDkF,EAEX,QAAS6L,IAAcV,EAAOvG,EAAgBkH,EAAY5F,GACtD,GAAwCnK,GAApCgQ,EAAWZ,EAAM1J,KAAK,aAAqBsH,EAAOvL,GAAIoH,EAAgB,SAAUjC,GAE5E,MADA5G,GAAQ4G,EAAO5G,MACXA,GAAiC,IAAxBmN,SAASnN,EAAO,IAClBa,GAAMoP,OAAO,iCAAmCjQ,KAAUwE,GAASxE,EAAQA,EAAQ,MAEvF,aAEX+P,GAAcC,EAAStK,KAAK,oBAAoB7F,SAChDmN,EAAKtF,OAAO,EAAG,EAAG,mCAElBsI,EAASnQ,QACTmQ,EAASzC,SAEbyC,EAAWrR,EAAMyF,MAAM+F,EAAS,GAAG3K,KAAK,6BAA+BwN,EAAKxN,KAAK,KAC5EwQ,EAASE,GAAG,cACbF,EAAWrR,EAAE,eAAekN,OAAOmE,IAEvCZ,EAAMe,QAAQH,GACVI,GAAQC,MAA2B,GAAnBD,GAAQE,UACxBlB,EAAMxK,IAAI,UAAW,gBACrBhE,OAAO2P,WAAW,WACdnB,EAAMxK,IAAI,UAAW,KACtB,IAGX,QAAS4L,IAAqB5K,EAAWa,GAAzC,GAEQvB,GAAKuL,EADLC,EAAY,EAEZC,EAAK/K,EAAUF,KAAK,wBACxB,KAAKR,EAAM,EAAGuL,EAAMhK,EAAQ5G,OAAQqF,EAAMuL,EAAKvL,IACvCuB,EAAQvB,GAAKiH,SACbwE,EAAGvL,GAAGF,GAAK0L,aAAaD,EAAGvL,GAAGsL,IAC9BC,EAAK/K,EAAUF,KAAK,yBACpBgL,KAIZ,QAASG,IAAgBC,GACrB,GAAiBC,GAAM7L,EAAKrF,EAAxB0E,IACJ,KAAKW,EAAM,EAAGrF,EAASiR,EAAMjR,OAAQqF,EAAMrF,EAAQqF,IAC/C6L,EAAOD,EAAM5L,GACbX,EAAOwM,EAAKvP,OAASuP,EAAKlS,IAE9B,OAAO0F,GAEX,QAASyM,IAAiBxP,EAAOyO,EAAQgB,EAAcvK,GACnD,GAAIwK,GAAeD,GAAgBA,EAAapR,QAAUoG,GAAcgL,EAAa,KAAO,SAAWA,GAAa,GAAIE,EAAaD,EAAeL,GAAgBI,GAAczP,GAASA,CAE3L,OADA2P,GAA2B,MAAdA,EAAqBA,EAAa,GACxClB,EAASpP,GAAMoP,OAAOA,EAAQkB,GAAczK,KAAY,EAAQyK,EAAatQ,GAAMuQ,WAAWD,GAEzG,QAASE,IAAkBpG,EAAOe,EAAOpE,GAErC,IADA,GAAa0J,GAATC,EAAM,EAAUjI,EAAO2B,EAAMsG,GAC1BjI,GAAM,CAET,GADAgI,IAAQ1J,GAAwC,SAAvB0B,EAAKlJ,MAAMsI,QAChC4I,IAAUE,GAAmBC,KAAKnI,EAAKoI,cAAgB1F,EAAQ,EAAG,CAClE1C,EAAKlJ,MAAMsI,QAAUd,EAAU,GAAK,MACpC,OAEJ0B,EAAO2B,IAAQsG,IAGvB,QAASI,IAAgBvH,EAAMwH,GAE3B,IADA,GAAmCtI,GAAMgC,EAArCpG,EAAM,EAAGrF,EAASuK,EAAKvK,OACpBqF,EAAMrF,EAAQqF,GAAO,EACxBoG,EAAMlB,EAAKhF,GAAGF,GACVoG,EAAI4E,GAAG,kCACP5G,EAAOgC,EAAIf,SAAS,4CAA4CE,OAChEnB,EAAKrF,KAAK,UAAWkJ,SAAS7D,EAAKrF,KAAK,WAAY,IAAM,KAEtDqH,EAAIF,SAAS,qBAAuB9B,EAAOgC,EAAIf,SAAS,qBAAqB,MAC7EjB,EAAO3K,EAAE2K,GACTA,EAAKrF,KAAK,UAAWkJ,SAAS7D,EAAKrF,KAAK,WAAY,IAAM,GAC1DqF,EAAK5D,KAAK,OAAON,GAAGwM,GAAarE,SACjCjC,EAAMhC,EAAK5D,KAAK,aAEpB2L,GAAkB/F,EAAI,GAAGL,MAAO2G,GAAa,IAIzD,QAASC,IAAUC,GAAnB,GAEQf,GACK7L,EAFLX,IAEJ,KAASW,EAAM,EAAGA,EAAM4M,EAAKjS,SACzBkR,EAAOe,EAAK5M,GACN,SAAW6L,IAAQ,SAAWA,IAAQ,SAAWA,IAFtB7L,IAKjCX,EAAOjF,KAAKyR,GACRA,EAAKgB,eACLxN,EAASA,EAAO2E,OAAO2I,GAAUd,EAAKiB,QAG9C,OAAOzN,GAEX,QAAS0N,IAAaH,GAAtB,GAEQf,GACK7L,EAFLX,IAEJ,KAASW,EAAM,EAAGA,EAAM4M,EAAKjS,SACzBkR,EAAOe,EAAK5M,GACN,SAAW6L,IAAQ,SAAWA,IAAQ,SAAWA,IAFtB7L,IAK7B6L,EAAKgB,eACLxN,EAASA,EAAO2E,OAAO+I,GAAalB,EAAKiB,SAE7CzN,EAAOjF,KAAKyR,EAAKmB,WAErB,OAAO3N,GAEX,QAAS4N,IAAgB/H,EAAMwH,GAE3B,IADA,GAAmCtI,GAAMgC,EAAK7E,EAA1CvB,EAAM,EAAGrF,EAASuK,EAAKvK,OACpBqF,EAAMrF,EAAQqF,GAAO,EACxBoG,EAAMlB,EAAKhF,GAAGF,GACVoG,EAAI4E,GAAG,kCACP5G,EAAOgC,EAAIf,SAAS,4CAA4CE,OAChEnB,EAAKrF,KAAK,UAAWkJ,SAAS7D,EAAKrF,KAAK,WAAY,IAAM,KAEtDqH,EAAIF,SAAS,qBAAuB9B,EAAOgC,EAAIf,SAAS,qBAAqB,MAC7EjB,EAAO3K,EAAE2K,GACTA,EAAKrF,KAAK,UAAWkJ,SAAS7D,EAAKrF,KAAK,WAAY,IAAM,GAC1D6L,GAAcxG,EAAK5D,KAAK,eAAgBmD,EAAepC,IAAU,EAAO,GACxE6E,EAAMhC,EAAK5D,KAAK,aAEpB2L,GAAkB/F,EAAI,GAAGL,MAAO2G,GAAa,IAIzD,QAASQ,IAAcC,EAAOC,EAAUC,GACpCA,EAAMA,GAAO,CACb,IAAIxB,GAAM7L,EAAKrF,CACf,KAAKqF,EAAM,EAAGrF,EAASwS,EAAMxS,OAAQqF,EAAMrF,EAAQqF,IAC/C6L,EAAOsB,EAAMjN,GAAGF,GAAKqF,WAAWE,OAChCsG,EAAK9M,KAAK,UAAWkJ,SAAS4D,EAAK9M,KAAK,WAAY,IAAMsO,GAC1DxB,EAAOuB,EAASlN,GAAGF,GAAKqF,WAAWE,OACnCsG,EAAK9M,KAAK,UAAWkJ,SAAS4D,EAAK9M,KAAK,WAAY,IAAMsO,GAGlE,QAASC,IAAWpD,GAApB,GACQlK,GAAKrF,EAAQG,EAAQ,EACrBgN,EAAOoC,EAAM1J,KAAK,gBACtB,KAAKR,EAAM,EAAGrF,EAASmN,EAAKnN,OAAQqF,EAAMrF,EAAQqF,GAAO,EACrDlF,GAASmN,SAASH,EAAK9H,GAAK9E,MAAMJ,MAAO,GAE7C,OAAOA,GAqpMX,QAASyS,IAAgBC,EAAQC,GAAjC,GAIYC,GACAC,EACAvH,EACAwH,CANRJ,GAASA,EAAO,GAChBC,EAASA,EAAO,GACZD,EAAOtI,KAAKvK,SAAW8S,EAAOvI,KAAKvK,SAC/B+S,EAAeF,EAAOxP,aACtB2P,EAAcF,EAAOzP,aAGrB0P,EAAeC,GACfvH,EAAMqH,EAAOvI,KAAKuI,EAAOvI,KAAKvK,OAAS,GACnCkT,GAAgBtB,KAAKnG,EAAIoG,aACzBpG,EAAMqH,EAAOvI,KAAKuI,EAAOvI,KAAKvK,OAAS,IAE3CiT,EAAOF,EAAeC,IAEtBvH,EAAMoH,EAAOtI,KAAKsI,EAAOtI,KAAKvK,OAAS,GACnCkT,GAAgBtB,KAAKnG,EAAIoG,aACzBpG,EAAMoH,EAAOtI,KAAKsI,EAAOtI,KAAKvK,OAAS,IAE3CiT,EAAOD,EAAcD,GAEzBtH,EAAIlL,MAAMH,OAASqL,EAAIpI,aAAe4P,EAAO,MAGrD,QAASE,IAAgBC,EAAMC,GAA/B,GACQjT,GACAkT,EAAgBF,EAAK/P,aACrBkQ,EAAgBF,EAAKhQ,YACrBiQ,GAAgBC,EAChBnT,EAASkT,EAAgB,KAClBA,EAAgBC,IACvBnT,EAASmT,EAAgB,MAEzBnT,IACAgT,EAAK7S,MAAMH,OAASiT,EAAK9S,MAAMH,OAASA,GAGhD,QAASoT,IAAWxN,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,QAASwN,IAAWlE,EAAOmE,GACvB,GAAIA,KAAW,EAAM,CACjBnE,EAAQzQ,EAAEyQ,EACV,IAAIoE,GAAapE,EAAM9C,SAASkH,YAChC3S,IAAM4S,aAAarE,GACnBA,EAAM9C,SAASkH,WAAWA,OAE1B7U,GAAEyQ,GAAOsE,IAAI,UAAW,SAAUC,GAC9BA,EAAEC,mBACHC,QAGX,QAASC,IAAkBC,EAAMnN,GAC7B,MAAOmN,GAAK3R,QAAQ4R,YAAcpN,EAAOoN,WAAapN,EAAOoN,YAAcnQ,GAE/E,QAASoQ,IAAY9J,EAAQpD,GACzB,QAASpI,EAAEmK,KAAKqB,EAAQ,SAAU4G,GAC9B,MAAOA,GAAKhK,QAAUA,IACvBlH,OAEP,QAASqU,IAAiBtN,EAAQuN,GAC9B,SAAKvN,EAAOG,OAASH,EAAOwN,gBAGxBD,EAAME,WAAaF,EAAME,SAASzN,EAAOG,WAGzCH,EAAOyN,WAAazN,EAAOyN,SAASF,KAK5C,QAASG,IAAe1L,GACpB,MAAOjK,GAAEiK,GAASsH,GAAG,0MAEzB,QAASqE,IAAWZ,GAChB,GAAIa,GAAgB7V,EAAEgV,EAAEa,eAAgBC,EAAWD,EAActE,GAAG,MAAOd,EAAQjO,KAAKiO,MAAMzK,IAAIxD,KAAKuT,aAAcC,EAAcxT,KAAK0J,MAAMyB,SAAS3H,IAAIhG,EAAE,SAAUwC,KAAKyT,eAAgBC,EAAUP,GAAeX,EAAE3J,QAAS8K,EAAgBnW,EAAEgV,EAAE3J,QAAQkG,GAAG,kCAAmClG,EAASrL,EAAEgV,EAAE3J,QAAS+K,EAAeP,EAAcjG,QAAQ,SAAS,EACtW,OAAIsG,IAAWL,EAAc9O,KAAK7E,GAAMmU,aAAa,eAAenV,QAChEsB,KAAK8T,YAAYT,GACjB,IAEAO,IAAiB3F,EAAM,IAAM2F,IAAiB3F,EAAM,IAAM2F,IAAiBJ,EAAY,IAAMI,IAAiBJ,EAAY,IAG1H3K,EAAOkG,GAAG,kCAGV/O,KAAKiB,QAAQ8S,aACb/T,KAAK8T,YAAYT,GAAe,EAAOM,IAEvCL,GAAaI,GACbtE,WAAW,WACD4E,IAASxW,EAAEkC,GAAMuU,kBAAkBhK,SAAS,cAC1CzM,EAAEkC,GAAMuU,kBAAkBlF,GAAGmF,KAAmBf,GAAezT,GAAMuU,mBAAsBzW,EAAE2W,SAASP,EAAclU,GAAMuU,mBAC1H9B,GAAWyB,GAAc,KAKrCN,IAAa5T,GAAM0U,QAAQC,OAC3B7B,EAAEC,kBAnBN,GAsBJ,QAAS6B,IAAiB7M,EAASqD,GAC/B,IAAKA,EACD,MAAO,EAEX,IAAI1H,GAAS,CAIb,OAHI1D,IAAM0U,QAAQnF,QAAQsF,SACtBnR,EAASqE,EAAQ5I,SAEduE,EAEX,QAASoR,IAASrM,GACd,MAAOA,KAASA,EAAK8B,SAAS,gBAAkB9B,EAAKgD,SAASlB,SAAS,oBAE3E,QAASwK,IAAiBC,GACtB,MAAO,gCAAkCA,EAAsB,iFAA6FC,GAAY,KAAOC,GAAW,8BAE9L,QAASC,IAA8BH,GACnC,MAAO,gBAAkBA,EAAsB,uCAEnD,QAASI,IAAgBC,EAASzH,EAAO5P,GACrC,MAAO,yCAA2CqF,EAAWuK,GAAS,gBAAkByH,EAAU,mGAA+GJ,GAAY,KAAOC,GAAW,SAAWlX,EAAO,iBAErQ,QAASsX,IAA6BD,GAClC,MAAO,sDAA6DA,EAAU,iEAr4OrF,GACOrV,IAAQD,OAAOC,MAAOuV,GAAKvV,GAAMuV,GAAIC,GAAaxV,GAAMiR,KAAKuE,WAAYC,GAAmBzV,GAAMiR,KAAKwE,iBAAkB7G,GAAyB5O,GAAM0U,QAAQgB,eAAgBC,GAAgB3V,GAAMuU,eAAgBqB,GAASL,GAAGK,OAAQC,GAAa7V,GAAM8V,YAAaC,GAAc/V,GAAMgW,aAAcC,GAAOjW,GAAMiW,KAAM7Q,GAAgBtH,EAAEsH,cAAejF,GAASrC,EAAEqC,OAAQS,GAAM9C,EAAE8C,IAAKqH,GAAOnK,EAAEmK,KAAM9C,GAAUrH,EAAEqH,QAASyG,GAAU9N,EAAE8N,QAASnN,GAAO8E,MAAM2S,UAAUzX,KAAMiH,GAAQ5H,EAAE4H,MAAOyQ,GAAanW,GAAMmW,WAAYC,GAAgBtY,EAAEsY,cAAe3B,GAAW3W,EAAE2W,SAAU4B,GAAOtI,KAAMuI,GAAM,IAAKC,GAAW,WAAYC,GAAQ,QAASC,GAAuB,mBAAoBC,GAAY,wGAAyGC,GAA0B,uHAAwHC,GAAS,qCAAsCC,GAAU,yEAA0EC,GAAU,kGAAmGC,GAAeD,GAAU,SAAUE,GAAcF,GAAU,QAASG,GAAeL,GAAS,UAAYC,GAAU,SAAUK,GAAc,wDAAyDzR,GAAK,aAAc0R,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,aAActE,GAAgB,+BAAmCsE,GAAUC,GAAiB,mBAAoBC,GAAa,SAAUC,GAAa,SAAUC,GAAc,eAAgBC,GAA2B,uBAAwBC,GAAoB,gBAAiBC,GAAS,SAAUC,GAAe,eAAgBC,GAAgB,gBAAiBC,GAAa,aAAcC,GAAe,eAAgBC,GAAW,WAAYlU,GAAQ,QAASmU,GAAY,YAAaC,GAAS,SAAUC,GAAW,WAAYC,GAAW,WAAYnW,GAAS,SAAUoW,GAAS,SAAUC,GAAgB,gBAAiBC,GAAQ,QAASC,GAAQ,QAASC,GAAS,SAAUC,GAAS,SAAUC,GAAY,MAAOC,GAAkB,EAAGC,GAAU,UAAWC,GAAW,WAAYC,GAAS,SAAUC,GAAa,aAAcC,GAAgB,+CAAgDC,GAAY,wBAAyBC,GAAgB,SAAUC,GAAe,SAAU5F,GAAW,WAAY6F,GAAS,SAAU9F,GAAY,aAAc+F,GAAe,YAAaC,GAAqB,MAAOC,GAAmB,sBAAuBvK,GAAyBwK,OAAO,MAAQD,GAAmB,oCAAgDA,GAAmB,OAAQhJ,GAAsBiJ,OAAO,MAAQD,GAAmB,mBAA+BA,GAAmB,OAAQE,GAAoB,uQAA4RC,GAAmB,qDAA4DvC,GAAW,iMAAuMwC,GAAyB,qDAA4DxC,GAAW,0MAAgNyC,IAAQ,EAAOhM,GAAUvP,GAAM0U,QAAQnF,QAASiM,GAAQjM,GAAQC,MAA2B,GAAnBD,GAAQE,QAAc6E,GAAQ/E,GAAQC,MAA2B,GAAnBD,GAAQE,QACt8IgM,GAASlM,GAAQC,MAA4B,KAApBD,GAAQE,QACjCiM,GAAQ,SAAS9K,KAAK+K,UAAUC,WAChCC,IACAlX,QAAS,YACTmX,OAAQ,WACRC,gBAAiB,sBAEjBC,GAAoBpG,GAAOzV,QAC3BC,KAAM,SAAU2H,EAASxG,GACrB,GAAI0a,GAAO3b,IACXsV,IAAOsG,GAAG9b,KAAK+b,KAAKF,EAAMlU,EAASxG,GACnC0a,EAAKG,gBAAkB1W,GAAMuW,EAAKI,QAASJ,GAC3CA,EAAKK,cAAc/a,EAAQgb,YAC3BN,EAAKO,QAETF,cAAe,SAAUC,GACrB,GAAIN,GAAO3b,IACP2b,GAAKM,YACLN,EAAKM,WAAWE,OAAO1E,GAAQkE,EAAKG,iBAExCH,EAAKM,WAAaA,EAClBN,EAAKM,WAAWG,KAAK3E,GAAQkE,EAAKG,iBAClCH,EAAKM,WAAWhb,QAAQob,WAAY,GAExCpb,SACI+D,KAAM,oBACNsX,WAAY9e,EAAE+e,KACdC,UAAU,EACVC,gBAAiB,MAErBC,QACIxE,GACAD,GACAE,IAEJwE,QAAS,WACL,GAAIhB,GAAO3b,IACXsV,IAAOsG,GAAGe,QAAQd,KAAKF,GACvBA,EAAKM,WAAWE,OAAO1E,GAAQkE,EAAKG,iBACpCH,EAAKiB,QAAQpZ,IAAImY,EAAKkB,mBAAmBC,IAAI3X,IAC7C4X,aAAapB,EAAKqB,UACdrB,EAAKsB,mBACLF,aAAapB,EAAKsB,mBAElBtB,EAAKuB,OACLvB,EAAKuB,KAAKP,UACVhB,EAAKuB,KAAO,MAEhBvB,EAAKiB,QAAUjB,EAAKlU,QAAUkU,EAAKkB,kBAAoB,KACvDlB,EAAKG,gBAAkB,MAE3BI,KAAM,WACF,GAAoFU,GAAhFjB,EAAO3b,KAAMmd,EAAYzd,GAAM0U,QAAQ+I,YAAc,EAAG1V,EAAUkU,EAAKlU,OAC3EA,GAAQhE,KACJ5E,MAAO,OACPue,SAAU,WACX3Z,IAAIwX,GAAQ,eAAiB,gBAAiBkC,GACjDxB,EAAKtX,QAAUoD,EAAQ2B,WAAWiU,QAClCT,EAAUjB,EAAKiB,QAAUjB,EAAKtX,QAAQ6X,KAAK,4CAA4C/Q,SAASiR,KAAK,iBAAmBjX,GAAK,cAAgBA,GAAIC,GAAMuW,EAAK2B,aAAc3B,IAC1KA,EAAK4B,WACD7d,GAAM0U,QAAQoJ,sBACd7B,EAAKuB,KAAO,GAAIxd,IAAM+d,WAAW9B,EAAKiB,SAClCc,QAAQ,EACRC,gBAAgB,EAChBC,MAAO,SAAUpL,GACbA,EAAEqL,OAAOC,WAEbC,KAAM,SAAUvL,GACZmJ,EAAKkB,kBAAkBmB,UAAUrC,EAAKkB,kBAAkBmB,YAAcxL,EAAEyL,EAAEC,OAC1EtB,EAAQvK,WAAWuK,EAAQvK,aAAeG,EAAE2L,EAAED,OAC9C1L,EAAEC,qBAIdkJ,EAAKkB,kBAAoBrf,EAAE,oDAAoDiG,KAAM5E,MAAOse,IAAajZ,SAASuD,GAAS2U,KAAK,SAAWjX,GAAIC,GAAMuW,EAAKyC,QAASzC,KAEvK4B,SAAU,WACN,GAAI5B,GAAO3b,IACPmb,MACAQ,EAAKiB,QAAQnZ,KAAM4a,aAAclG,KACjCwD,EAAKlU,QAAQhE,IAAIwX,GAAQ,eAAiB,gBAAiB,KAGnEqC,aAAc,SAAU9K,GACpB,IAAIA,EAAE8L,QAAN,CAGA,GAAInB,GAAYnd,KAAK6c,kBAAmBmB,EAAYb,EAAUa,YAAaE,EAAQxe,GAAM6e,YAAY/L,IACjG0L,GAAWA,EAAQ,GAAmB,IAAdF,GAAsBE,EAAQ,GAAKF,EAAYb,EAAU,GAAGqB,cAAgBrB,EAAU,GAAGsB,eACjHjM,EAAEC,iBACFzS,KAAK6c,kBAAkBmB,UAAUA,GAAaE,MAGtDE,QAAS,SAAU5L,GACf,GAAImJ,GAAO3b,KAAM0e,GAAgB/C,EAAK1a,QAAQub,SAAUwB,EAAYxL,EAAEa,cAAc2K,UAAW/B,EAAaN,EAAKM,WAAY0C,EAAYhD,EAAKW,WAAYsC,EAAO3C,EAAW2C,QAAU,EAAGhB,EAAQjC,EAAKkD,aAAeD,EAAM9f,EAAS6c,EAAKlU,QAAQqX,cAAeC,KAAmBpD,EAAKqD,eAAiBrD,EAAKqD,cAAgBhB,GAAYiB,EAAiBlJ,GAAK1L,IAAI0L,GAAKmJ,MAAMlB,EAAYW,GAAY,GAAIQ,EAAiBJ,EAAgBhJ,GAAKqJ,KAAKtgB,EAAS6f,GAAa5I,GAAKmJ,MAAMpgB,EAAS6f,GAAYU,EAAgBtJ,GAAK1L,IAAI4U,EAAiBE,EAAgB,EACtiB,OAAIxD,GAAK2D,gBACL3D,EAAK2D,gBAAiB,EACtB,IAEJ3D,EAAK4D,WAAavB,EAAYJ,EAAQe,EACtChD,EAAKqD,cAAgBhB,EACrBrC,EAAK6D,WAAad,EACb/C,EAAK8D,OAAOR,EAAgBI,EAAeN,KAC5CpD,EAAKiB,QAAQ,GAAGoB,UAAYrC,EAAK4D,YAErC5D,EAAK+D,QAAQvH,IACTuG,IACI/C,EAAKsB,mBACLF,aAAapB,EAAKsB,mBAEtBtB,EAAKsB,kBAAoB7N,WAAW,WAChCuM,EAAK6D,YAAa,EAClB7D,EAAKgE,MAAMhE,EAAKkD,YAAalD,EAAKM,WAAW2D,SAC9C,MAdPjE,IAiBJkE,YAAa,WACT7f,KAAK8f,UAAU,IAEnBC,eAAgB,WACZ,GAAI5C,GAAYnd,KAAK6c,iBACrB7c,MAAK8f,UAAU3C,EAAU,GAAGsB,aAAetB,EAAUre,WAEzDkhB,oBAAqB,WACjBhgB,KAAK4c,QAAQoB,UAAU,IAE3BiC,uBAAwB,WACpBjgB,KAAK4c,QAAQoB,UAAUhe,KAAK4c,QAAQ,GAAG6B,eAE3CyB,6BAA8B,WAAA,GACtBvE,GAAO3b,KACP4c,EAAU5c,KAAK4c,QACfuD,EAAmBvD,EAAQoB,WAC3BpB,GAAQ,GAAGwD,YAAcxD,EAAQ,GAAGyD,cAC/B1E,EAAK2E,kBAAoBH,GAAoBxE,EAAK4E,yBACnD3D,EAAQoB,UAAUmC,EAAmBzgB,GAAM0U,QAAQ+I,aACnDxB,EAAK4D,WAAa3C,EAAQoB,YAC1BrC,EAAK2E,kBAAmB,GAErB3E,EAAK2E,mBACP3E,EAAK6E,+BACN5D,EAAQoB,UAAUmC,EAAmBzgB,GAAM0U,QAAQ+I,aACnDxB,EAAK4D,WAAa3C,EAAQoB,aAE9BrC,EAAK2E,kBAAmB,IAGhCR,UAAW,SAAU9B,GAAV,GACHrC,GAAO3b,KACPmd,EAAYxB,EAAKkB,iBACjBM,GAAUa,cAAgBA,IAC1BrC,EAAK2D,gBAAiB,GAE1B3D,EAAKiB,QAAQoB,UAAUA,GACvBrC,EAAK4D,WAAa5D,EAAKiB,QAAQoB,YAC/Bb,EAAUa,UAAUA,GACpBrC,EAAKqD,cAAgB7B,EAAUa,aAEnCyC,iBAAkB,WACd,MAA8C,KAAvCzgB,KAAK6c,kBAAkBmB,aAElCuC,oBAAqB,WAAA,GACbpD,GAAYnd,KAAK6c,kBACjBmB,EAAYb,EAAUa,WAC1B,OAAOA,GAAY,GAAKA,GAAahS,SAASmR,EAAU,GAAGsB,aAAetB,EAAUre,SAAU,KAElG0hB,2BAA4B,WACxB,GAAI5D,GAAU5c,KAAK4c,OACnB,OAAOA,GAAQoB,aAAehS,SAAS4Q,EAAQ,GAAG6B,aAAe7B,EAAQ9d,SAAU,KAEvF4hB,UAAW,SAAUpU,GACjB,GAAIqU,GAAa3gB,KAAK6e,aAAe7e,KAAKic,WAAW2C,QAAU,CAC/D,OAAO+B,GAAarU,GAExBsU,kBAAmB,SAAUnZ,GACzB,MAAOzH,MAAK6gB,2BAA2BpZ,IAE3CoZ,2BAA4B,SAAUpZ,GAAV,GAGpBzF,GACA8e,EAHAnF,EAAO3b,KACP4c,EAAUjB,EAAKiB,OAInB,OADAnV,GAAUjK,EAAEiK,MACRA,EAAQ,IAAM0M,GAASyI,EAAQ,GAAInV,EAAQ,MAC3CzF,EAAYyF,EAAQkC,SAASoX,IAAMnE,EAAQjT,SAASoX,IACpDD,EAAarZ,EAAQgO,cAAgB,GAChCzT,GAAa,GAAK+T,GAAKiL,IAAIhf,IAAc8e,IAAe/K,GAAKmJ,MAAMld,EAAY8e,IAAelE,EAAQ9d,YAMnH8K,SAAU,SAAUiB,GAAV,GAGFzH,GAFAud,EAAa3gB,KAAK6e,aAAe7e,KAAKic,WAAW2C,QAAU,EAC3DqC,EAAWjhB,KAAKic,WAAWgF,UAO/B,OAJI7d,GADAyH,EAAQ8V,EACC9V,EAAQ8V,EAAa,EAErBA,EAAa9V,EAAQ,EAE3BzH,EAAS6d,EAAWA,EAAW7d,GAE1C8d,eAAgB,SAAU/W,GAAV,GACR1F,GAAYzE,KAAK4c,QAAQ,GACzBuE,EAAkB1c,EAAU+Z,aAC5B4C,EAAmBphB,KAAKugB,sBAAiE9b,EAAUuZ,UAAnDhe,KAAKuf,YAAc9a,EAAUuZ,UAC7EqD,EAAgBlX,EAAI,GAAGnI,UACvBsf,EAAgBnX,EAAI,GAAGpI,YACvBqf,GAAkBC,EAClBrhB,KAAK6c,kBAAkB,GAAGmB,WAAamD,EAAkB,EAClDE,EAAgBC,GAAiBF,EAAkBD,IAC1DnhB,KAAK6c,kBAAkB,GAAGmB,WAAamD,EAAkB,IAGjE1B,OAAQ,SAAUR,EAAgBI,EAAekC,GAAzC,GACA5F,GAAO3b,KAAMic,EAAaN,EAAKM,WAAYK,EAAaX,EAAKW,WAAYsD,EAAO3D,EAAW2D,OAAQe,EAAahF,EAAKkD,aAAe5C,EAAW2C,QAAU,EAAG4C,EAAczL,GAAKmJ,MAAMD,EAAiBW,GAAQA,EAAM6B,GAAW,EAAOC,EAAa,IACnPvE,EAAYxB,EAAKkB,kBACjB8E,EAAmB1S,GAAQsF,OAAS,EAAI,CAuB5C,OAtBI0K,GAAiB0B,GACjBc,GAAW,EACXd,EAAa5K,GAAK1L,IAAI,EAAGgV,EAAgBO,GACzCjE,EAAK4D,WAAapC,EAAUa,YAAc2C,EAAarE,EACvDX,EAAKgE,MAAMgB,EAAYf,IAChBP,GAAiBsB,EAAaf,IAAS2B,GAC9CE,GAAW,EACXd,EAAa5K,GAAK6L,IAAI3C,EAAgBhD,EAAW4F,QAAUjC,GAEvDjE,EAAK4D,WADLpC,EAAUa,aAAeb,EAAU,GAAGsB,aAAetB,EAAUre,SAAW6iB,EACxDhG,EAAKiB,QAAQ,GAAG6B,aAAe9C,EAAKiB,QAAQ9d,SAE5Cwd,EAEtBX,EAAKgE,MAAMgB,EAAYf,KACfjE,EAAKmG,WAAanG,EAAK1a,QAAQub,WACnCyC,EAAiBuC,EAAc5B,EAAOA,EAAO8B,GAAczC,EAAiBW,GAC5E3D,EAAWO,SAASgF,EAAc5B,EAAMA,EAAMpiB,EAAE+e,MAEhD8C,EAAgBmC,EAAc5B,EAAO8B,GACrCzF,EAAWO,SAASgF,EAAc5B,EAAMA,EAAMpiB,EAAE+e,OAGjDkF,GAEXA,SAAU,WACN,MAAOzhB,MAAK8hB,WAEhBnC,MAAO,SAAUf,EAAMgB,EAAMmC,GACzB,GAAIpG,GAAO3b,KAAM0e,GAAgB/C,EAAK1a,QAAQub,SAAUP,EAAaN,EAAKM,UAC1E8F,GAAWlM,GAAWkM,GAAYA,EAAWvkB,EAAE+e,KAC3CZ,EAAK+D,QAAQxH,IACT0G,KAAMA,EACNgB,KAAMA,MAId7C,aAAapB,EAAKqB,UAClBrB,EAAKmG,WAAY,EACjBnG,EAAKkD,YAAcD,EACf3C,EAAW+F,QAAQpD,EAAMgB,IACzBlgB,GAAMuV,GAAGgN,SAASzkB,EAAEme,EAAKiB,SAASzR,UAAU,GAC5C8Q,EAAWiG,MAAMtD,EAAMgB,EAAM,WACzBlgB,GAAMuV,GAAGgN,SAASzkB,EAAEme,EAAKiB,SAASzR,UAAU,GAC5C4W,IACApG,EAAK+D,QAAQzH,QAGZyG,GACDhf,GAAMuV,GAAGgN,SAAStG,EAAKiB,QAAQzR,UAAU,GAE7CwQ,EAAKqB,SAAW5N,WAAW,WAClBuM,EAAK6D,aACFd,GACAhf,GAAMuV,GAAGgN,SAAStG,EAAKiB,QAAQzR,UAAU,GAE7C8Q,EAAWiG,MAAMtD,EAAMgB,EAAM,WACzBlgB,GAAMuV,GAAGgN,SAAStG,EAAKiB,QAAQzR,UAAU,GACzC4W,IACApG,EAAK+D,QAAQzH,QAGtB,QAGXkK,iBAAkB,SAAUC,GAAV,GACqNre,GAA/N4X,EAAO3b,KAAMkO,EAAO,GAAImU,EAAY1G,EAAK1a,QAAQwb,gBAAiBR,EAAaN,EAAKM,WAAYkB,EAAazd,GAAM0U,QAAQoJ,oBAAkD,EAA5B9d,GAAM0U,QAAQ+I,YAAiBmF,EAAiB3G,EAAKiB,QAAQ,GAC9M2F,EAAsB5G,EAAK4E,sBADyMjE,EAE3NX,EAAKW,WAAaX,EAAK1a,QAAQqb,cAAgB,EACxDkG,EAAqBF,EAAelC,YAAckC,EAAexgB,YAAcqb,EAAY,EAHuHsF,EAIxMxG,EAAW4F,QAAUvF,EAAakG,CAChD,KAAKze,EAAM,EAAGA,EAAMgS,GAAKmJ,MAAMuD,EAAcJ,GAAYte,IACrDmK,GAAQ,gCAAkCmU,EAAY,YAEtDI,GAAcJ,IACdnU,GAAQ,gCAAkCuU,EAAcJ,EAAY,cAExE1G,EAAKkB,kBAAkB3O,KAAKA,GACxBqU,IAAwB5G,EAAK4E,uBAC7B5E,EAAKoE,iBAEsB,IAApBpE,EAAK4D,YAAgC6C,IAC5CE,EAAetE,UAAYrC,EAAK4D,WAChC5D,EAAKuE,iCAGbnE,QAAS,SAAUvJ,GAAV,GACDmJ,GAAO3b,KAAMic,EAAaN,EAAKM,WAAY0E,EAAahF,EAAKkD,YAC7D6D,GAAUlQ,OAASkQ,OACnBN,EAAsBzG,EAAK4E,wBAA0BmC,GAAUA,IAAW1K,IAAe0K,IAAWxL,IAAUwL,IAAWtK,EAC7H1Y,IAAMuV,GAAGgN,SAAStG,EAAKiB,QAAQzR,UAAU,GACzC4R,aAAapB,EAAKqB,UAClBrB,EAAKwG,iBAAiBC,GAClBzG,EAAKuB,MACLvB,EAAKuB,KAAKyF,SAEY,IAAfhC,GAA+BhF,EAAKmG,cACtCY,GAAUA,IAAWtK,IAAQsK,IAAW1K,MACzC2D,EAAKkD,YAAc5C,EAAW2C,QAER,IAAtB3C,EAAW2G,QAAkBF,IAAUA,IAAWtK,IAAQsK,IAAW1K,MACrE2D,EAAKkB,kBAAkB,GAAGmB,UAAY,IAG9CrC,EAAKmG,WAAY,KAuBrBe,IACAC,QACIplB,KAAM,iBACN6S,UAAW,aACXwS,UAAW,mBAEfJ,QACIjlB,KAAM,iBACN6S,UAAW,wBACXwS,UAAW,qBAEfC,MACItlB,KAAM,eACN6S,UAAW,sBACXwS,UAAW,oBAEfpG,SACIjf,KAAM,SACN6S,UAAW,gBACXwS,UAAW,oBAEfE,MACIvlB,KAAM,OACN6S,UAAW,cACXwS,UAAW,mBAEfG,QACIxlB,KAAM,SACN6S,UAAW,0BACXwS,UAAW,oBAEfI,YACIzlB,KAAM,SACN6S,UAAW,gBACXwS,UAAW,qBAEfK,OACI1lB,KAAM,kBACN6S,UAAW,eACXwS,UAAW,yBAEfM,KACI3lB,KAAM,gBACN6S,UAAW,aACXwS,UAAW,wBA8tBfO,GAAO5jB,GAAMuV,GAAGsO,gBAAgB1jB,QAChCC,KAAM,SAAU2H,EAASxG,EAASyb,GAC9B,GAAIf,GAAO3b,IACXiB,GAAU4D,GAAQ5D,IAAagb,WAAYhb,GAAYA,EACvDqU,GAAOsG,GAAG9b,KAAK+b,KAAKF,EAAMlU,EAASxG,GAC/Byb,IACAf,EAAK6H,QAAU9G,GAEnBzB,GAAQvb,GAAM0U,QAAQ6G,MAAMxT,GAC5BkU,EAAK8H,WACL9H,EAAK+H,QACL/H,EAAKgI,SAASnmB,EAAEqC,QAAO,KAAU8b,EAAK1a,QAAQqE,UAC9CqW,EAAKiI,cACLjI,EAAKkI,SACLlI,EAAKmI,YACLnI,EAAKoI,SACLpI,EAAKqI,aACLrI,EAAKsI,WACLtI,EAAKuI,oBACLvI,EAAKwI,aACLxI,EAAKyI,eACLzI,EAAK0I,cACL1I,EAAK2I,aACL3I,EAAK4I,WACL5I,EAAK6I,YACL7I,EAAK8I,6BACL9I,EAAK+I,mBACL/I,EAAKgJ,oBACDhJ,EAAK1a,QAAQ2jB,SACbjJ,EAAKM,WAAW4I,SAEhBlJ,EAAKmJ,OAASnJ,EAAKoJ,UAAY,EAC/BpJ,EAAKqJ,WAELrJ,EAAKvX,gBACLuX,EAAKiB,QAAQqI,SAAS,wBACtBtJ,EAAKuJ,eAAiB,WAClBvJ,EAAKwJ,UAET3nB,EAAEiC,QAAQwF,GAAG,SAAWE,GAAIwW,EAAKuJ,iBAErCxlB,GAAM0lB,OAAOzJ,IAEjBe,QACIjF,GACA,cACA,SACAI,GACAC,GACAC,GACAZ,GACAC,GACAE,GACAD,GACAE,GACAR,GACAC,GACAC,GACAC,GACAU,GACAJ,GACAwB,GACAC,GACAtB,GACAD,GACAwB,GACAC,GACAC,GACA,OACA,OACA,SACA,QACA,cACA,iBAEJ4C,cAAe,SAAUC,GAAV,GAGPoJ,GAFA1J,EAAO3b,KACPslB,EAAa3J,EAAK1a,QAAQqkB,UAE9B3J,GAAK1a,QAAQgb,WAAaA,EAC1BN,EAAKiI,cACLjI,EAAKmI,YACLnI,EAAKoI,SACDuB,IACIA,EAAWC,SACXF,EAAoB1J,EAAKtX,QAAQE,KAAK,+BACtC8gB,EAAkBhT,WAAWiC,GAAiB+Q,EAAmBpK,OAEjEoK,EAAoB1J,EAAK3N,MACzB2N,EAAKtX,QAAQgO,WAAWiC,GAAiB+Q,EAAmBpK,OAGhEU,EAAK1a,QAAQ4R,WACb8I,EAAKqI,aAELrI,EAAK6J,mBACL7J,EAAK6J,kBAAkBxJ,cAAcL,EAAK1a,QAAQgb,YAElDN,EAAK1a,QAAQ8S,aACb4H,EAAKyI,eAELzI,EAAK1a,QAAQgS,YACb0I,EAAK0I,cAEL1I,EAAK1a,QAAQ2jB,UACbjJ,EAAKM,WAAW4I,SAGxB5jB,SACI+D,KAAM,OACNM,WACAmgB,QAAS,KACTb,UAAU,EACVc,YAAY,EACZJ,YAAY,EACZK,UAAU,EACV1S,YAAY,EACZ2S,WAAW,EACX7R,aAAa,EACb8R,UAAU,EACVC,kBAAkB,EAClB5S,UAAU,EACVL,WAAW,EACXkT,YAAa,GACbC,eAAgB,GAChBC,WAAW,EACXhK,cACAnd,OAAQ,KACRonB,WAAW,EACXC,aAAa,EACbC,YAAY,EACZC,eAAgB,KAChBC,wBAAyB,EACzBC,OAAQ,GACRC,UACItT,UACIuT,aAAcjM,GACdkM,aAAcrM,GACdsM,cAAepM,IAEnB7V,UACIoe,OAAQD,GAAgBC,OAAOplB,KAC/BilB,OAAQE,GAAgBF,OAAOjlB,KAC/BslB,KAAMH,GAAgBG,KAAKtlB,KAC3Bif,QAASkG,GAAgBlG,QAAQjf,KACjCulB,KAAMJ,GAAgBI,KAAKvlB,KAC3BwlB,OAAQL,GAAgBK,OAAOxlB,KAC/BylB,WAAYN,GAAgBM,WAAWzlB,KACvC0lB,MAAOP,GAAgBO,MAAM1lB,KAC7B2lB,IAAKR,GAAgBQ,IAAI3lB,MAE7BuoB,UAAW3L,GACXsM,2BAA4B,GAC5BC,YAAa,8BACbC,cAAe,kCAGvBnK,QAAS,WACL,GAAiBlV,GAAbkU,EAAO3b,IACX2b,GAAKoL,cAAc,WACnBpL,EAAKqL,4BACL1R,GAAOsG,GAAGe,QAAQd,KAAKF,GACnB3b,KAAKinB,qBACLjnB,KAAKinB,mBAAmBnK,IAAI3X,IAC5BnF,KAAKinB,mBAAqB,MAE1BtL,EAAKuJ,gBACL1nB,EAAEiC,QAAQqd,IAAI,SAAW3X,GAAIwW,EAAKuJ,gBAElCvJ,EAAKuL,OAASvL,EAAKuL,MAAMzf,SACzBkU,EAAKuL,MAAMvK,UAEXhB,EAAKwL,OACLpK,aAAapB,EAAKwL,OAElBxL,EAAKyL,kBACLrK,aAAapB,EAAKyL,kBAElBzL,EAAK0L,wBACLtK,aAAapB,EAAK0L,wBAElB1L,EAAK2L,sBACLvK,aAAapB,EAAK2L,sBAEtB3L,EAAKuL,MAAQ,KACbvL,EAAK4L,oBACD5L,EAAK1a,QAAQklB,aACbxK,EAAKiB,QAAQjM,KAAK,oBAAoBgM,UAEtChB,EAAK1I,YAAc0I,EAAK1I,WAAWxL,UACnCkU,EAAK1I,WAAW0J,UAChBhB,EAAK6L,YACL7L,EAAK8L,aAAe,KAChB9L,EAAK+L,cACL/L,EAAKiB,QAAQE,IAAI,UAAWnB,EAAK+L,aACjC/L,EAAKQ,OAAOR,EAAK+L,cAEjB/L,EAAKgM,uBACLhM,EAAKQ,OAAOR,EAAKgM,sBACjBhM,EAAKgM,qBAAuB,MAE5BhM,EAAKiM,kBACLjM,EAAKiB,QAAQE,IAAI,QAASnB,EAAKiM,mBAGvCjM,EAAK1I,WAAa,KACd0I,EAAKuK,YACLvK,EAAKuK,UAAUvJ,UACXhB,EAAKkM,oBACDlM,EAAKmM,mCACLtqB,EAAEsD,UAAUgc,IAAI,QAASnB,EAAKmM,mCAElCnM,EAAKkM,kBAAkBlL,UACvBhB,EAAKkM,kBAAoB,MAE7BlM,EAAKuK,UAAY,MAErBvK,EAAKoM,4BACLpM,EAAKqM,mBACDrM,EAAKM,aACLN,EAAKM,WAAWE,OAAO1E,GAAQkE,EAAKG,iBAAiBK,OAAOlG,GAAU0F,EAAKsM,kBAAkB9L,OAAOjG,GAAOyF,EAAKuM,eAChHvM,EAAKG,gBAAkBH,EAAKsM,iBAAmBtM,EAAKuM,cAAgB,MAExEzgB,EAAUkU,EAAKlU,QAAQjE,IAAImY,EAAKiB,SAASpZ,IAAImY,EAAK1N,OAAOzK,IAAImY,EAAKjS,OAAOlG,IAAImY,EAAKiB,QAAQrY,KAAK,qBAC3FoX,EAAKtX,UACLoD,EAAUA,EAAQjE,IAAImY,EAAKtX,SAASb,IAAImY,EAAKtX,QAAQE,KAAK,iCAE1DoX,EAAKlI,cACLkI,EAAKwM,0BAELxM,EAAKyM,MACLzM,EAAKyM,KAAKzL,UAEVhB,EAAK0M,YACL1M,EAAKiB,QAAQE,IAAI,gBAAkB3X,IACnCwW,EAAKiB,QAAQE,IAAI,cAAgB3X,KAEjCwW,EAAK2M,wBACL9qB,EAAEiC,QAAQqd,IAAI,SAAUnB,EAAK2M,wBAEjC3M,EAAK4M,kCACD5M,EAAK6M,oBAAsB7M,EAAK6M,mBAAmB/gB,SACnDkU,EAAK6M,mBAAmB7L,UAE5BhB,EAAK6M,mBAAqB,KAC1B/gB,EAAQqV,IAAI3X,IACZzF,GAAMid,QAAQhB,EAAKiB,SACnBjB,EAAKoK,YAAcpK,EAAKqK,eAAiBrK,EAAK8M,kBAAoB9M,EAAK+M,qBAAuB/M,EAAK0K,eAAiB1K,EAAKgN,eAAiBhN,EAAKiN,oBAAsBjN,EAAKkN,0BAA4BlN,EAAKmN,kBAAoB,KAC/NnN,EAAKoN,YAAcpN,EAAKjS,MAAQiS,EAAK3N,MAAQ2N,EAAKlU,QAAUkU,EAAK1N,MAAQ0N,EAAKtX,QAAUsX,EAAKqN,OAASrN,EAAKiB,QAAUjB,EAAKpI,YAAcoI,EAAKvX,cAAgBuX,EAAKlI,aAAekI,EAAKsN,aAAetN,EAAKuN,uBAAyBvN,EAAKwN,WAAaxN,EAAKyN,wBAA0B,MAExRC,WAAY,WAAA,GAGJjmB,GAEA6Y,EACAqN,EALAroB,EAAUjB,KAAKiB,OAuBnB,OAtBAA,GAAQgb,WAAa,KACjB7Y,EAASvD,IAAO,KAAUG,KAAKiB,SACnCmC,EAAOkC,QAAU5F,GAAM0C,cAAepC,KAAKsF,SACvC2W,EAAajc,KAAKic,WAClBqN,EAAcrN,EAAWhb,QAAQ0P,MAAQsL,EAAWsN,MACxDtN,EAAWhb,QAAQ0P,KAAO,KAC1BvN,EAAO6Y,WAAaze,EAAEqC,QAAO,KAAUoc,EAAWhb,SAClDgb,EAAWhb,QAAQ0P,KAAO2Y,EAC1BlmB,EAAO6Y,WAAWtL,KAAO2Y,EACzBlmB,EAAO6Y,WAAW2G,KAAO3G,EAAW2G,OACpCxf,EAAO6Y,WAAW3X,OAAS2X,EAAW3X,SACtClB,EAAO6Y,WAAWgF,SAAWhF,EAAWgF,WACxC7d,EAAO6Y,WAAW7d,KAAO6d,EAAW7d,OACpCgF,EAAO6Y,WAAWuN,MAAQvN,EAAWuN,QACrCpmB,EAAO6Y,WAAWwN,UAAYxN,EAAWwN,YACrCrmB,EAAO6Y,WAAWyN,YAClBtmB,EAAO6Y,WAAWyN,UAAUzN,WAAa;AAEzC7Y,EAAOyiB,UAAYziB,EAAOyiB,SAAS5E,WACnC7d,EAAOyiB,SAAS5E,SAAWhF,EAAWgF,YAE1C7d,EAAOumB,SAAWjnB,EACXU,GAEXwmB,WAAY,SAAU3oB,GAAV,GAMJ2b,GACAF,EACAjV,EAIIoiB,EAXJC,EAAiB9pB,KAAKqpB,YAC1B3pB,IAAM0C,WAAW0nB,EAAgB7oB,GAC5BA,EAAQgb,aACT6N,EAAe7N,WAAajc,KAAKic,YAEjCW,EAAU5c,KAAK4c,QACfF,EAAS1c,KAAKwjB,QACd/b,EAAUzH,KAAKyH,QACnBzH,KAAK2c,UACL3c,KAAKiB,QAAU,KACXjB,KAAKqoB,YACDwB,EAAgBjN,EAAQxP,QAAQ1N,GAAMmU,aAAa,SAAS1I,SAChE0e,EAAcE,MAAMnN,GACpBiN,EAAczd,SACdwQ,EAAQoN,YAAY,kBAEpBpN,EAAQ,KAAOnV,EAAQ,KACvBmV,EAAQ9Y,OAAO2D,GACfmV,EAAQxQ,UAEZ3E,EAAQ0G,QACRnO,KAAKF,KAAK2H,EAASqiB,EAAgBpN,GACnC1c,KAAKiqB,WAAWH,IAEpBjZ,MAAO,WACH,MAAI7Q,MAAKoE,cACEpE,KAAKkqB,OAAOlqB,KAAKgO,OAAOxK,IAAIxD,KAAKkqB,OAAOlqB,KAAKuT,YAAYnK,SAAS,WAElEpJ,KAAKkqB,OAAOlqB,KAAKgO,QAGhCkc,OAAQ,SAAUzlB,GACd,MAAOA,GAAU2E,WAAW9E,OAAO,WAC/B,GAAI6lB,GAAK3sB,EAAEwC,KACX,QAAQmqB,EAAGlgB,SAAS,oBAAsBkgB,EAAGlgB,SAAS,kBAAoBkgB,EAAGlgB,SAAS,qBAG9FmgB,UAAW,WAAA,GAGCC,GAAsBhc,EACjB7P,EAHT4rB,EAAY1qB,GAAMuV,GAAGsO,gBAAgB3H,GAAGwO,UAAUvO,KAAK7b,KAC3D,IAAIA,KAAKoE,cAAe,CAEpB,IADIimB,EAAID,EAAU1rB,OAAQ2P,EAAUpL,MAAM,EAAIonB,GACrC7rB,EAAI6rB,IAAK7rB,GAAK,GACnB6P,EAAI7P,GAAK6P,EAAI7P,EAAI6rB,GAAKD,EAAU5rB,EAEpC4rB,GAAY/b,EAEhB,MAAO+b,IAEXpD,0BAA2B,WACvB,GAAIrL,GAAO3b,IACX2b,GAAK2O,aAAe,KACf3O,EAAKjS,QAGV1J,KAAKuqB,QAAQ,UAAW,WACpB,OAASpmB,SAAUwX,EAAKjS,MAAM9I,SAElC+a,EAAKjS,MAAMlG,IAAImY,EAAKlI,cAAclP,KAAK,MAAMimB,KAAK,WAC9C,GAAIhb,GAAKhS,EAAEwC,MAAOyqB,EAAajb,EAAGmB,KAAK,mBAAoBgV,EAAWnW,EAAGmB,KAAK,qBAAsByV,EAAa5W,EAAGmB,KAAK,kBACrH8Z,IACAA,EAAW9N,UAEXgJ,GACAA,EAAShJ,UAETyJ,GACAA,EAAWzJ,cAIvB8H,2BAA4B,WACxB,GAA4D9f,GAASZ,EAAKrF,EAAtEid,EAAO3b,KAAMsF,EAAUyE,EAAY4R,EAAKrW,YAC5C,KAAKvB,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjDY,EAAUW,EAAQvB,GAAKY,QACnBA,GACAH,EAAyBmX,EAAMA,EAAKiB,QAASjY,IAIzD+e,MAAO,WACH,GAAIxd,GAAKlG,KAAKyH,QAAQ3E,KAAK,OAAS,MAChCoD,KACAlG,KAAK0qB,QAAUxkB,EAAK,iBAG5Bud,SAAU,WACN,GAAI9H,GAAO3b,KAAMiO,EAAQ0N,EAAKlU,OACzBwG,GAAMc,GAAG,WAENd,EADA0N,EAAK1a,QAAQqkB,WACL3J,EAAKlU,QAAQlD,KAAK,6BAElBoX,EAAKlU,QAAQ2B,SAAS,SAE7B6E,EAAMvP,SACPuP,EAAQzQ,EAAE,aAAa0G,SAASyX,EAAKlU,WAGzCyT,IACAjN,EAAMnL,KAAK,cAAe,GAE9B6Y,EAAK1N,MAAQA,EAAMnL,KAAK,OAAQ6Y,EAAKgP,cAAgB,WAAa,QAClEhP,EAAK4B,YAETqN,oBAAqB,SAAUnmB,EAAW+K,GAArB,GAMbqb,GACA9J,EAWIjX,EACK/F,EAeD+mB,EAAuEC,EAA2DpJ,EAAyHqJ,EAjCnQrP,EAAO3b,KACPirB,EAAiBtP,EAAK1a,QAAQqlB,wBAC9BhB,EAAa3J,EAAK1a,QAAQqkB,WAC1BgF,EAAe3O,EAAK2O,aACpBthB,EAAShJ,KAAK+kB,SAWlB,IARIuF,GAAgB3O,EAAKvX,eAAiBkmB,EAAa3Z,KAAK,MAAM,KAAOnB,EAAG,KACxE8a,EAAaxN,IAAI3X,IAAIiH,SACrBke,EAAe,MAEdA,IACDA,EAAe3O,EAAK2O,aAAe9sB,EAAE,gFACrCiH,EAAUiG,OAAO4f,IAEhBrP,GAgBD4P,EAAOrb,EAAG7F,SAASkhB,KAAOK,WAAW1b,EAAG/L,IAAI,gBAAkBgB,EAAUkF,SAASkhB,KAAOK,WAAWzmB,EAAUhB,IAAI,qBAC7G6hB,IACIwF,EAAatb,EAAGpC,QAAQ,8CAA+C2d,EAAe9b,GAAQC,KAAO4b,EAAWzY,aAAe,EAAGsP,EAAmB1S,GAAQsF,OAASuW,EAAW,GAAG1K,YAAc0K,EAAW,GAAGhpB,YAAcgpB,EAAWzY,aAAe,EAAG2Y,EAAoB/b,GAAQkc,QAAUL,EAAW,GAAG1K,YAAc0K,EAAW,GAAGhpB,aAAegpB,EAAW,GAAG1K,YAAc0K,EAAW,GAAGhpB,YAAcgpB,EAAWzY,cAAgB,EACjbwY,GAAQlJ,EAAmBqJ,EAAoBD,OAnB3C,CAGR,IAFAF,EAAOrb,EAAG,GAAG1N,YACTgI,EAAQ4C,EAAc8C,EAAGpC,QAAQ,UAAU9I,OAAO,YAC7CP,EAAM,EAAGA,EAAM+F,EAAMpL,QACtBoL,EAAM/F,IAAQyL,EAAG,GADazL,IAIlC8mB,GAAQ/gB,EAAM/F,GAAKjC,WAEnBkH,GAAS,IACT6hB,GAAQtV,GAAW9Q,EAAUF,KAAK,wBAA0ByE,GAE5D2S,EAAKgP,gBACLE,GAAQtV,GAAW9Q,EAAUF,KAAK,6BAS1Cwc,EAAMvR,EAAG7F,SAASoX,IAAMmK,WAAW1b,EAAG/L,IAAI,eAAiBgB,EAAUkF,SAASoX,IAAMmK,WAAWzmB,EAAUhB,IAAI,oBAC7G6mB,EAAa7mB,KACTsd,IAAKA,EACL8J,KAAMA,EAAwB,EAAjBI,EAAqB,EAClCnsB,OAAQ2W,GAAYjG,GACpB3Q,MAAwB,EAAjBosB,IACRta,KAAK,KAAMnB,GAAI7I,OAClB2jB,EAAaxN,IAAI,WAAa3X,IAAIF,GAAG,WAAaE,GAAI,WAClDwW,EAAKyP,mBAAmB5b,EAAGmB,KAAK,aAGxC0a,4BAA6B,WACzB,GAAI1P,GAAO3b,KAAMsrB,EAAa3P,EAAKlI,aAAekI,EAAKlI,aAAalP,KAAK,eAAiB/G,GAC1Fme,GAAKjS,MAAMlG,IAAI8nB,GAAYrmB,GAAG,YAAcE,GAAI,6BAA8B,SAAUqN,GAAV,GACtE+Y,GAA8B,IAAd/Y,EAAEgZ,QAA0BhZ,EAAEgZ,QAAUhZ,EAAEiZ,OAASjZ,EAAE+Y,OACrE/b,EAAKhS,EAAEwC,KACPwP,GAAGvF,SAAS,iBAAmBuF,EAAGvF,SAAS,qBAGzB,IAAXshB,GAAqC,IAAXA,GAGjC/b,EAAG,GAAGkc,aAAahsB,GAAMoD,KAAKmX,MAGlC0B,EAAKiP,oBAAoBpb,EAAGpC,QAAQ,OAAQoC,MAGpDmc,2BAA4B,SAAUnZ,GAC9BhV,EAAEgV,EAAE3J,QAAQuE,QAAQ,oBAAoB1O,SAG5ClB,EAAEsD,UAAUgc,IAAItK,GAChBxS,KAAK4rB,2BACL5rB,KAAK6rB,sBAETD,yBAA0B,WACtB,GAAIpc,EACCxP,MAAKsqB,eAGV9a,EAAKhS,EAAEwC,KAAKsqB,cAAc3Z,KAAK,MAC3BnB,IACAA,EAAGjL,KAAKyR,GAAM0C,IAAYnU,KAAKyR,GAAM2C,IAAYhS,OACjD6I,EAAGjL,KAAKyR,GAAM4C,IAAajS,OAC3B6I,EAAGjL,KAAKyR,GAAM6C,IAA0BlS,OACxC6I,EAAGjL,KAAKyR,GAAM8C,IAAmBnS,UAGzCklB,kBAAmB,WACX7rB,KAAKsqB,eACLtqB,KAAKsqB,aAAa3Z,KAAK,MAAMqZ,YAAY,mBACrChqB,KAAKoE,gBAAkBpE,KAAKqoB,WAC5BroB,KAAKsqB,aAAaxN,IAAI3X,IAAIiH,SAC1BpM,KAAKsqB,aAAe,MAEpBtqB,KAAKsqB,aAAa9kB,SAI9BsmB,iCAAkC,WAC9B,GAAInQ,GAAO3b,KAAMsrB,EAAa3P,EAAKlI,aAAekI,EAAKlI,aAAalP,KAAK,eAAiB/G,GAC1Fme,GAAKkM,kBAAoB,GAAInoB,IAAM+d,WAAW6N,EAAW9nB,IAAImY,EAAKjS,QAC9DpF,OAAQ,+CACRynB,UAAW,GACXC,QAAS,IACTC,KAAM,SAAUzZ,GACZ,GAAIhD,GAAKhS,EAAEgV,EAAE3J,OACb2J,GAAEC,iBACEkJ,EAAK2O,eACL3O,EAAK2O,aAAa3Z,KAAK,MAAMqZ,YAAY,mBACzCrO,EAAKiQ,4BAETpc,EAAGyV,SAAS,mBACZzV,EAAGjL,KAAKyR,GAAM0C,IAAYnU,KAAKyR,GAAM2C,IAAYnT,OACjDgK,EAAGjL,KAAKyR,GAAM4C,IAAapT,OAC3BgK,EAAGjL,KAAKyR,GAAM6C,IAA0BrT,OACxCgK,EAAGjL,KAAKyR,GAAM8C,IAAmBtT,OACjCmW,EAAKiP,oBAAoBpb,EAAGpC,QAAQ,OAAQoC,GACvCmM,EAAKmM,oCACNnM,EAAKmM,kCAAoC1iB,GAAMuW,EAAKgQ,2BAA4BhQ,IAEpFne,EAAEsD,UAAUmE,GAAG,QAAS0W,EAAKmM,uCAIzCoE,aAAc,SAAUzmB,EAAQ0mB,GAAlB,GAYNC,GAcIC,EACAC,EACAztB,EA3BJ8c,EAAO3b,KACPusB,IAAa9mB,EAAOuF,OACpBwhB,IAAa/mB,EAAOC,OACpBzE,EAAUjB,KAAKiB,QACfkc,EAAazd,GAAM0U,QAAQqY,SAAuC,EAA5B/sB,GAAM0U,QAAQ+I,YACpDtS,EAAQ0hB,EAAWjhB,GAAQ7F,EAAQ+G,EAAqBmP,EAAKrW,UAAYgG,GAAQ7F,EAAQ8G,EAAwBoP,EAAKrW,UACtHonB,EAAeH,EAAW5Q,EAAKpI,YAAcoI,EAAK1N,MAClD+a,EAASrN,EAAKqN,QAAUxrB,IACxBmvB,EAASJ,EAAW5Q,EAAKlI,aAAalP,KAAK,SAAWoX,EAAKjS,MAAM0D,QAAQ,SACzEwf,EAAiBnnB,EAAOonB,mBAAqB,GAC7CC,EAAuBvX,GAAXgX,EAAsBG,EAAanoB,KAAK,SAAuBoX,EAAK3N,MAEpF,OAAIwe,IACA/mB,EAAO5G,MAAQstB,EAAcS,EAAiBT,EAAcS,EAC5D,IAEAjR,EAAKqN,QAAUrN,EAAKvX,gBACpB4kB,EAAoBrN,EAAKqN,OAAO5f,SAAvBmjB,EAAgC,wBAAgD,wBAGzFH,EADAnrB,EAAQqkB,WACFqH,EAAOpoB,KAAK,6CAA+CsG,EAAQ,KAAKrH,IAAIkpB,EAAatjB,SAAS,YAAY7E,KAAK,kDAAoDsG,EAAQ,MAAMrH,IAAIwlB,EAAOzkB,KAAK,YAAYA,KAAK,kDAAoDsG,EAAQ,MAElR6hB,EAAanoB,KAAK,YAAYA,KAAK,kDAAoDsG,EAAQ,KAErG5J,EAAQqkB,YACJ+G,GAAY,EACZC,EAAa3Q,EAAKiB,QAAQ/d,QAAUse,EACpCte,EAAQstB,EAAcA,EAAcS,EAAiBT,EAAcS,EACnEL,GAAYO,EAAYX,EAActtB,EAAQytB,IAC9CztB,EAAQstB,GAAeG,EAAaQ,EAAwB,EAAZ3P,GAC5Cte,EAAQ,IACRA,EAAQstB,GAEZE,GAAY,GAEZxtB,EAAQ,IAAMA,GAAS+tB,IACvBR,EAAI3oB,IAAI,QAAS5E,GACbiuB,IAEIjuB,EADAwtB,EACQC,EAAyB,EAAZnP,EAEb2P,GAAaX,EAAc1mB,EAAO5G,OAE9C6tB,EAAalpB,IAAImpB,GAAQnpB,IAAIwlB,GAAQvlB,IAAI,QAAS5E,GAC7C0tB,IACD5Q,EAAKoR,aAAeluB,KAIhC8c,EAAKqR,uCACEb,EAAc,IAAMA,GAAeS,GAC1CR,EAAI3oB,IAAI,QAAS0oB,GAErB1mB,EAAO5G,MAAQstB,EACfxQ,EAAKsR,8BACLtR,EAAKuR,2BACLvR,EAAKwR,0BAxCL,IA0CJC,WAAY,WACR,GAAyC3oB,GAAW4oB,EAAalB,EAAaS,EAAgBE,EAA2GP,EAAUH,EAAK5c,EAApNmM,EAAO3b,KAAMiB,EAAU0a,EAAK1a,QAAyEqsB,EAAWttB,KAAKqoB,UAAWlL,EAAazd,GAAM0U,QAAQqY,SAAuC,EAA5B/sB,GAAM0U,QAAQ+I,WACpLlc,GAAQilB,YACRzhB,EAAYxD,EAAQqkB,WAAa3J,EAAKiB,QAAQrY,KAAK,6BAA+BoX,EAAKiB,QACnF0Q,EACA3R,EAAKmQ,iCAAiCrnB,GAEtCkX,EAAK0P,4BAA4B5mB,GAEjCkX,EAAKuK,WACLvK,EAAKuK,UAAUvJ,UAEnBhB,EAAKuK,UAAY,GAAIjR,IAAGsY,UAAU9oB,EAAUjB,IAAImY,EAAKlI,eACjD+Z,QAAWvsB,EAAQqkB,WAAa,GAAK,KAAO,mBAC5CmI,KAAM,SAAUD,GACZ,MAAOhwB,GAAE,2CAA2CiG,KAAM3E,OAAQ2W,GAAY+X,EAAO7c,KAAK,OAASgL,EAAK3N,MAAMlL,KAAK,mBAEvH8a,MAAO,SAAUpL,GAAV,GAKCma,GAA8B9hB,EAE9B6hB,EAAyD1D,EAUzD1jB,CAhBJkK,GAAKhS,EAAEgV,EAAEa,eAAe1C,KAAK,MACzB2c,GACA3R,EAAKkQ,oBAELc,EAASnd,EAAGpC,QAAQ,SAAUvC,EAAQrN,EAAE8N,QAAQkE,EAAG,GAAI9C,EAAc8C,EAAGpC,QAAQ,UAAU9I,OAAO,aACrGioB,EAAWI,EAAOxhB,SAASlB,SAAS,wBAChCyiB,EAAeH,EAAW5Q,EAAKpI,YAAcoI,EAAK1N,MAAO+a,EAASrN,EAAKqN,QAAUxrB,IACjFme,EAAKqN,QAAUrN,EAAKvX,gBACpB4kB,EAAoBrN,EAAKqN,OAAO5f,SAAvBmjB,EAAgC,wBAAgD,wBAE7FjpB,EAAOqY,EAAKiB,QAAS,cAEjBwP,EADAnrB,EAAQqkB,WACFqH,EAAOpoB,KAAK,kDAAoDsG,EAAQ,KAAKrH,IAAIkpB,EAAatjB,SAAS,YAAY7E,KAAK,kDAAoDsG,EAAQ,MAAMrH,IAAIwlB,EAAOzkB,KAAK,YAAYA,KAAK,kDAAoDsG,EAAQ,MAEvR6hB,EAAatjB,SAAS,YAAY7E,KAAK,kDAAoDsG,EAAQ,KAEzGvF,EAAU9H,EAAE8C,IAAIqb,EAAKrW,QAAS,SAAUsH,GACxC,OAAQA,EAAElH,SAAW6mB,GAAY3f,EAAE5B,SAAWuhB,IAAa3f,EAAE5B,QAAU4B,EAAI,OAE/EygB,EAAc7a,EAAE2L,EAAEuP,SAClBvB,EAAc5W,GAAW/F,GACzBod,EAAiB7iB,EAAYzE,GAASuF,GAAOgiB,mBAAqB,GAClEC,EAAuBvX,GAAXgX,EAAsBG,EAAatjB,SAAS,SAAuBuS,EAAK3N,OAChFiB,GAAQsF,QACRoH,EAAKiB,QAAQqI,SAAS,2BAG9BE,OAAQ,SAAU3S,GAAV,GAGIwW,GASA2D,EACAD,EACAL,EACAC,EACAztB,EAfJ8uB,EAAgB1S,MAAa,EAAG2S,EAAezB,EAAc3Z,EAAE2L,EAAEuP,SAAWC,EAAgBN,EAAcM,CAC1G1sB,GAAQqkB,YAEJiH,GAAY5Q,EAAKsN,aACjBD,EAASrN,EAAKsN,aAAa7f,SAAS,SAC7BuS,EAAKqN,SACZA,EAASrN,EAAKqN,OAAOzkB,KAAK,+BAEzBykB,GAAWA,EAAO,KACnBA,EAASxrB,KAETmvB,EAASnd,EAAGpC,QAAQ,SACpBsf,EAAeH,EAAW5Q,EAAKpI,YAAcoI,EAAK1N,MAClDoe,GAAY,EACZC,EAAa3Q,EAAKiB,QAAQ/d,QAAUse,EACpCte,EAAQ+uB,EACRrB,GAAYO,EAAYX,EAActtB,EAAQytB,IAC9CztB,EAAQstB,GAAeG,EAAaQ,EAAwB,EAAZ3P,GAC5Cte,EAAQ,IACRA,EAAQ+uB,GAEZvB,GAAY,GAEZxtB,EAAQ,IAAMA,GAAS+tB,IACvBR,EAAI3oB,IAAI,QAAS5E,GACbiuB,IAEIjuB,EADAwtB,EACQC,EAAyB,EAAZnP,EAEb2P,EAAYta,EAAE2L,EAAEuP,SAAWC,EAAgBN,EAAcM,EAErEjB,EAAalpB,IAAImpB,GAAQnpB,IAAIwlB,GAAQvlB,IAAI,QAAS5E,GAC7C0tB,IACD5Q,EAAKoR,aAAeluB,KAIhC8c,EAAKqR,uCACEY,EAAe,IAAMA,GAAgBhB,GAC5CR,EAAI3oB,IAAI,QAASmqB,IAGzBC,UAAW,WAAA,GACwBpoB,GAAQknB,EAO/B9hB,EAPJijB,EAAWvY,GAAW/F,EAC1BlM,GAAOqY,EAAKiB,QAAS,IACjB3N,GAAQsF,QACRoH,EAAKiB,QAAQoN,YAAY,0BAEzBmC,GAAe2B,IACfnB,EAAShR,EAAKlI,aAAekI,EAAKlI,aAAalP,KAAK,wBAAwBf,IAAImY,EAAKjS,MAAMnF,KAAK,aAAeiL,EAAGrE,SAC9GN,EAAQ2E,EAAG1M,KAAKpD,GAAMoD,KAAK,UAC1B+H,IACDA,EAAQ8hB,EAAOpoB,KAAK,gDAAgDsG,MAAM2E,IAE9E/J,EAASsE,EAAY4R,EAAKrW,SAASuF,GACnCpF,EAAO5G,MAAQivB,EACfnS,EAAK+D,QAAQ1G,IACTvT,OAAQA,EACRsoB,SAAU5B,EACV2B,SAAUA,IAEdnS,EAAKsR,8BACLtR,EAAKuR,2BACLvR,EAAKwR,2BAETxR,EAAKiQ,2BACLjQ,EAAKkQ,oBACLrc,EAAK,UAKrBwe,WAAY,WAAA,GAMArB,GALJhR,EAAO3b,IACP2b,GAAK1a,QAAQklB,cACTxK,EAAK6M,oBACL7M,EAAK6M,mBAAmB7L,UAExBgQ,EAAShR,EAAKiB,QAAQxT,SAAS,kBACnCuS,EAAK6M,mBAAqB7M,EAAKiB,QAAQqR,gBACnCzE,MAAO9pB,GAAMuG,OACbioB,YAAY,EACZ5pB,OAAQqX,EAAKtX,QAAU,wBAA0BuS,GAAc,8BAAgCA,GAC/FuX,UAAW,WACPxB,EAAOvjB,SAAS,uBAAuB+S,OAAO,SAAWhX,GAAK,aAAaiX,KAAK,SAAWjX,GAAK,YAAa,SAAUqN,GAC/GmJ,EAAK6J,kBACL7J,EAAKtX,QAAQE,KAAK,+BAA+B8N,WAAWrS,KAAKqS,YAEjEsJ,EAAKoN,YAAYqF,IAAI5b,EAAEa,eAAehB,WAAWrS,KAAKqS,eAIlEgc,QAAS,WACL1S,EAAKiQ,2BACLe,EAAOvjB,SAAS,uBAAuB+S,OAAO,SAAWhX,GAAK,cAElE+X,KAAM,WACFvB,EAAKkQ,qBAET4B,KAAM,SAAU5kB,GACZ,GAAIylB,GAAQzlB,EAAO/F,KAAKpD,GAAMoD,KAAK,SAInC,OAHIwrB,KACAA,EAAQ5uB,GAAMuQ,WAAWqe,IAEtB9wB,EAAE,uDAAuD0Q,KAAKogB,GAASzlB,EAAO/F,KAAKpD,GAAMoD,KAAK,WAAa+F,EAAOnL,QAAQsR,QAAQ,uDAE9I2B,KAAK,oBAGhB4d,aAAc,WACV,GAAI5S,GAAO3b,IACP2b,GAAK1a,QAAQklB,cACTxK,EAAKiB,QAAQjM,KAAK,qBAClBgL,EAAKiB,QAAQjM,KAAK,oBAAoBgM,UAE1ChB,EAAKiB,QAAQ4R,kBACTC,UAAW9S,EAAK6M,mBAChBkG,mBAAoB,SAAU1qB,EAAaqH,GACvC,GAAI/F,GAAUiG,EAAsBoQ,EAAKrW,QACzC,OAAOA,GAAQtB,GAAa2qB,YAAa,GAASljB,EAA2BnG,EAASqW,EAAKrW,QAAStB,EAAaqH,OAErHujB,gBAAiB,SAAUpc,GACvB,MAAOhV,GAAEgV,EAAE5O,QAAQuH,SAAS,KAAO3N,EAAEgV,EAAE3J,QAAQsC,SAAS,IAAMM,EAA2BF,EAAsBoQ,EAAKrW,SAAUqW,EAAKrW,QAASkN,EAAExO,YAAawO,EAAEnH,iBAEjKwjB,OAAQ,SAAUrc,GAAV,GACAlN,GAAUiG,EAAsBoQ,EAAKrW,SACrCG,EAASH,EAAQkN,EAAEsc,UACnBC,EAAWtjB,EAA2BnG,EAASqW,EAAKrW,QAASkN,EAAEsc,SAAUtc,EAAEuc,SAC/EpT,GAAK+D,QAAQzG,IACT8V,SAAUA,EACVD,SAAUxjB,GAAQ7F,EAAQH,GAC1BG,OAAQA,IAEZkW,EAAKqT,cAAcD,EAAUtpB,EAAuB,WAAf+M,EAAE5I,eAKvDqlB,eAAgB,SAAUrmB,EAASC,EAAQ/E,GAA3B,GAKHC,GAKLyG,EACA0kB,EACAC,EAXAxT,EAAO3b,KACPsK,EAAiBJ,EAAetB,EAAQ,GAAI+S,EAAKrW,SACjD8pB,EAAellB,EAAerB,EAAQ8S,EAAKrW,SAC3CwD,IACJ,KAAS/E,EAAM,EAAGA,EAAM6E,EAAQlK,OAAQqF,IAChC6E,EAAQ7E,GAAKuB,UACbwD,EAAQA,EAAMf,OAAOa,EAAQ7E,GAAKuB,SAGtCkF,GAAMrG,EAASwX,EAAKlI,aAAckI,EAAKjS,MAAO,SAAWY,EAAeH,IAAM,sDAC9E+kB,EAAsB3mB,EAAcK,GAASlK,OAC7CywB,EAAsB5mB,GAAeM,IAASnK,OAC9CoK,EAAMpK,QACFwwB,EAAsB,GAA6B,IAAxBC,EAC3BxmB,EAA2BC,EAASC,EAAQC,EAAO6S,EAAKrW,QAASqW,EAAKlI,aAAalP,KAAK,SAAUoX,EAAKjS,MAAO1J,KAAK+kB,WACpF,IAAxBmK,GAA6BC,EAAsB,GAC1DxmB,EAA2BC,EAASC,EAAQC,EAAOL,EAAiBkT,EAAKrW,SAAUqW,EAAKjS,MAAOiS,EAAKlI,aAAalP,KAAK,SAAUvE,KAAK+kB,YAErIlc,EAAOvD,SAAWgF,EAAenC,KAAOinB,EAAajnB,KAAO,GAAKinB,EAAajnB,KAAOmC,EAAenC,KAAO,KAC3GU,EAASoC,EAAkB0Q,EAAKrW,QAASuD,EAAQD,EAAQ,GAAI9E,EAAQ6X,EAAKrW,SACtEuD,GACA8S,EAAKsT,eAAenmB,EAAOD,EAAQ/E,KAGpCorB,IAAwBC,GAC/BjnB,EAAkBsC,EAAIF,EAAenC,MAAOwT,EAAKrW,QAAS4pB,GAE9DxrB,EAAQ8G,EAAKF,EAAenC,KAAMinB,EAAajnB,KAAMrE,EAAQ8E,EAAQlK,SAEzE2wB,gBAAiB,SAAUzmB,EAASG,EAAajF,GAAhC,GAYEwrB,GAAWC,EAGlBC,EAiCJvmB,EAWKlF,EAASrF,EA1Ddid,EAAO3b,KACPyvB,EAAajyB,IACboG,EAASgF,EAAQ,GACjB8mB,EAAiBhoB,EAAekB,GAChC5E,EAAcsH,GAAQ1H,EAAQmG,EAAY4R,EAAKrW,UAC/CqqB,EAAYrkB,GAAQvC,EAAagB,EAAY4R,EAAKrW,UAClDsqB,EAAiBtkB,GAAQokB,EAAe,GAAIjjB,EAAmBkP,EAAKrW,UACpEuqB,EAAUvkB,GAAQvC,EAAa0D,EAAmBkP,EAAKrW,UACvDwqB,EAAcvnB,EAAcoT,EAAKrW,SAAS5G,OAC1C6tB,IAAaxjB,EAAYiC,OACzBge,EAASrN,EAAKqN,QAAUrN,EAAKiB,QAAQrY,KAAK,kBAC1CwrB,EACQT,EAAYO,CA8CxB,KA7CI9mB,EAAYrD,SACR8pB,EAAejD,EAAWhkB,EAAcoT,EAAKrW,SAAWmD,EAAiBkT,EAAKrW,SAC9EoC,EAAe8nB,GAAc9wB,OAAS,GACtCqxB,EAAYT,EAAYO,EAAU7vB,KAAKgwB,+BAA+BR,EAAcG,GACpFJ,EAAsB7nB,EAAe8nB,EAAaS,MAAMN,IAAYjxB,OAAS,GAEzE6tB,GACAsD,EAAUlU,EAAKpI,YAAYhP,KAAK,YAChCwrB,EAAYpU,EAAKlI,aAAalP,KAAK,YACnC+qB,EAAY9xB,EAAEme,EAAKsN,cAAc1kB,KAAK,qBAEtCsrB,EAAUlU,EAAK3N,MAAMkiB,OACrBH,EAAYpU,EAAKjS,MAAMwmB,OACvBZ,EAAYtG,EAAOzkB,KAAK,uBAAuBA,KAAK,qBAI5DoX,EAAKwU,iBACLzsB,EAAQiY,EAAKiB,QAAQrY,KAAK,yDAA0DP,EAAa2rB,EAAW7rB,EAAQ8E,EAAQlK,QAE5HkxB,GAAkB,GAClBlsB,EAAQS,EAASwX,EAAKlI,aAAckI,EAAKjS,MAAMwmB,OAAQ,0CAA2CN,EAAgBG,EAAWR,EAAsBA,EAAsBzrB,EAAQ4rB,EAAehxB,QAEhMid,EAAK1a,QAAQqkB,YACTsK,GAAkB,GAClBlsB,EAAQS,EAASwX,EAAKpI,YAAaoI,EAAK3N,MAAMkiB,OAAQ,0CAA2CN,EAAgBC,EAASN,EAAsBA,EAAsBzrB,EAAQ4rB,EAAehxB,QAGjMsqB,GAAUA,EAAOtqB,SACbkxB,GAAkB,GAClBlsB,EAAQS,EAASwX,EAAKsN,aAAcD,EAAOzkB,KAAK,uBAAwB,0DAA2DqrB,EAAgBN,EAAWC,EAAsBA,EAAsBzrB,EAAQ4rB,EAAehxB,QAErOgF,EAAQslB,EAAOzkB,KAAK,8DAA+DP,EAAa2rB,EAAW7rB,EAAQ8E,EAAQlK,SAE3HuK,EAAO0S,EAAK3N,MAAM5E,SAAS,uCAC3BuS,EAAKpI,cACDuc,EAAcH,EACVG,GAAe9rB,GACfiN,GAAc0K,EAAKpI,YAAYhP,KAAK,4BAA6BoX,EAAK1N,MAAM1J,KAAK,4BAA6BqE,EAAQlK,QAEnHoxB,EAAc9rB,GACrBiN,GAAc0K,EAAK1N,MAAM1J,KAAK,4BAA6BoX,EAAKpI,YAAYhP,KAAK,4BAA6BqE,EAAQlK,QAE1H+wB,EAAa9T,EAAKpI,YAAYhP,KAAK,iDAE9BR,EAAM,EAAGrF,EAASuK,EAAKvK,OAAQqF,EAAMrF,EAAQqF,GAAO,EACzDL,EAAQS,EAASsrB,EAAW1rB,GAAMkF,EAAKlF,GAAM,4CAA6CC,EAAa2rB,EAAW7rB,EAAQ8E,EAAQlK,SAG1IsxB,+BAAgC,SAAU1qB,EAASmL,GAC/C,GAAI+e,GAAe9nB,EAAepC,EAAQ2qB,MAAMxf,IAAc/R,OAAS,EAAI4G,EAAQ2qB,MAAMxf,GAAenL,EAAQ2qB,MAAM,EAAGxf,EAAc,GAAG2f,UAAWC,EAAuB3oB,EAAe8nB,GAAc,EACzM,OAAOlkB,IAAQ+kB,EAAsB3oB,EAAe1H,KAAKsF,WAE7D8lB,mBAAoB,SAAUkF,GAC1BtwB,KAAKuwB,cAAcxmB,EAAY/J,KAAKsF,SAASgrB,KAEjDC,cAAe,SAAU9qB,GAAV,GACsDoF,GAAO2E,EAAIgE,EAAa+Y,EAAsIH,EAAKoE,EAAUC,EAAYpe,EAwBtPqa,EAAyD1D,EAIzD0H,EAIKC,EAkBLC,EACAC,EAMAC,EAOIjlB,EAAgCC,EAAUwgB,EACrCvoB,EAASrF,EAjElBid,EAAO3b,KAAMiB,EAAU0a,EAAK1a,QAASqE,EAAUqW,EAAKrW,QAA2CyrB,EAAgBpV,EAAKlI,aAAe/G,EAAciP,EAAKlI,aAAalP,KAAK,iBAAiBD,OAAOgD,GAAe5I,OAAS,EAA0CsyB,EAAyB,8CAA+CC,EAAiC,sDAY/W,IAVIxrB,EADiB,gBAAVA,GACEH,EAAQG,GACVX,GAAcW,GACZkC,GAAK6D,EAAYlG,GAAU,SAAUsK,GAC1C,MAAOA,KAASnK,IACjB,GAEMkC,GAAK6D,EAAYlG,GAAU,SAAUsK,GAC1C,MAAOA,GAAKhK,QAAUH,IACvB,GAEFA,GAAWI,EAAUJ,GAA1B,CAoBA,IAjBA+qB,EAAW/qB,EAAOonB,kBAClBhiB,EAAQS,GAAQ7F,EAAQsE,EAAYzE,IACpCinB,EAAW9mB,EAAOuF,OAEdwI,EADA+Y,EACc5Q,EAAKlI,aAAarK,SAAS,SAE3BuS,EAAKjS,MAAMyB,SAE7BqE,EAAKgE,EAAYjP,KAAK,gBAAmBsG,EAAQ,MAC7C6hB,EAAeH,EAAW5Q,EAAKpI,YAAcoI,EAAK1N,MAAO+a,EAASrN,EAAKqN,QAAUxrB,IACjFme,EAAKqN,QAAUrN,EAAKvX,gBACpB4kB,EAAoBrN,EAAKqN,OAAO5f,SAAvBmjB,EAAgC,wBAAgD,wBAEzFmE,EAAc1H,EAAOzkB,KAAK,SAAS8Y,QACnC1B,EAAKlI,eAAiB8Y,IACtB1hB,GAASkmB,GAEJJ,EAAI,EAAGA,EAAIrrB,EAAQ5G,QACpB4G,EAAQqrB,KAAOlrB,EADakrB,IAIxBrrB,EAAQqrB,GAAGjrB,QACXmF,GA0BZ,IAtBI5J,EAAQqkB,YACR8G,EAAM5Y,EAAYjP,KAAKysB,GAAwB/sB,GAAG4G,GAAOrH,IAAIkpB,EAAatjB,SAAS,YAAY7E,KAAKysB,GAAwB/sB,GAAG4G,IAAQrH,IAAIktB,EAAYnsB,KAAK,YAAYA,KAAKysB,GAAwB/sB,GAAG4G,IACnM0hB,IACDkE,EAAa/D,EAAavhB,SAC1BkH,EAAaoe,EAAWpe,eAG5B+Z,EAAMM,EAAatjB,SAAS,YAAY7E,KAAKysB,GAAwB/sB,GAAG4G,GAExE+lB,EAASpd,EAAYhQ,IAAIkpB,GAAclpB,IAAIktB,GAC3CG,EAAiBtb,GAAW/F,GAChC4c,EAAIvtB,MAAM,IACV+xB,EAAOntB,IAAI,eAAgB,SAC3B2oB,EAAIvtB,MAAM,QACV+xB,EAAO3L,SAAS,iBAChB2L,EAAOntB,IAAI,eAAgB,IACvBqtB,EAAiBrjB,KAAK2R,KAAK3R,KAAKpD,IAAIkL,GAAW/F,GAAK+F,GAAWmX,EAAanoB,KAAK,2BAA2BN,GAAG,GAAGmF,SAAS6nB,GAAgChtB,GAAG4G,IAAS0K,GAAWmb,EAAYnsB,KAAK,MAAMN,GAAG,GAAGmF,SAAS6nB,GAAgChtB,GAAG4G,MAAY,EACvQ2lB,GAAYA,EAAWM,IACvBA,EAAiBN,GAErBpE,EAAIvtB,MAAMiyB,GACVrrB,EAAO5G,MAAQiyB,EACX7vB,EAAQqkB,WAAY,CAEpB,IADIzZ,EAAO2H,EAAYjP,KAAK,OAAkB+nB,EAAa,EAClDvoB,EAAM,EAAGrF,EAASmN,EAAKnN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAEzD,GADA+H,EAAWD,EAAK9H,GAAK9E,MAAMJ,MACvBiN,GAAYA,EAASC,QAAQ,SAC7BugB,GAActgB,SAASF,EAAU,QAC9B,CAAA,IAAID,EAAK5H,GAAGF,GAAKkG,SAAS,eAE1B,CACHqiB,EAAa,CACb,OAHAA,GAActgB,SAASH,EAAK5H,GAAGF,GAAKlF,QAAS,IAMjDytB,GACAsE,EAAOpG,KAAK,WACRxqB,KAAKf,MAAMJ,MAAQytB,EAAa,OAIxCrd,GAAQC,MAA2B,GAAnBD,GAAQE,UACxByhB,EAAOntB,IAAI,UAAW,gBACtB2L,WAAW,WACPwhB,EAAOntB,IAAI,UAAW,UACvB,IAEPmtB,EAAO5G,YAAY,iBACf3X,GACAoe,EAAWpe,WAAWA,GAE1BsJ,EAAK+D,QAAQ1G,IACTvT,OAAQA,EACRsoB,SAAU8C,EACV/C,SAAUgD,IAEdnV,EAAKsR,8BACLtR,EAAKuR,2BACLvR,EAAKwR,4BAET6B,cAAe,SAAUW,EAAWlqB,EAAQ3B,GAA7B,GAC8KotB,GAgBrLC,EAhBAxV,EAAO3b,KAAMmL,EAAShF,EAAaV,EAAQkW,EAAKrW,SAAUA,EAAU6F,EAASA,EAAO7F,QAAUqW,EAAKrW,QAAStB,EAAcsH,GAAQ7F,EAAQH,GAAU8rB,EAAa9rB,EAAQqqB,GAAyBpD,IAAa6E,EAAWpmB,OAAQ8kB,EAAcvnB,EAAcoT,EAAKrW,SAAS5G,OAAQ2yB,EAAmC1pB,GAAKoC,EAAY4R,EAAKrW,SAAU,SAAUG,GAC7V,MAAOA,GAAO6rB,2BAElBttB,KAAgB2rB,KAGflqB,EAAOuF,QAAUuhB,GAAqD,GAAzC9jB,EAAiBkT,EAAKrW,SAAS5G,QAG7D+G,EAAOuF,SAAWuhB,GAA2B,GAAfuD,IAGlCnU,EAAKkQ,oBACD/nB,IAAWpB,IACXoB,EAAS6rB,EAAY3rB,GAErBmtB,GAAiB1rB,GACrBkW,EAAKsT,eAAekC,EAAeC,EAAYttB,GAC3C6X,EAAKlI,eACLvH,EAAgByP,EAAKjS,OACrBwC,EAAgByP,EAAKlI,eAErB2d,EAAW9rB,UACX8rB,EAAarnB,EAAYqnB,EAAW9rB,SACpC8rB,EAAaA,EAAWttB,EAAS,EAAIstB,EAAW1yB,OAAS,IAEzD+G,EAAOH,UACP6rB,EAAgBpnB,EAAYtE,EAAOH,UAEvCqW,EAAK0T,gBAAgB8B,EAAeC,EAAYttB,GAChDotB,IAAgBzrB,EAAOuF,OACvBkmB,EAAcA,GAAe3E,EAC7B9mB,EAAOuF,OAASuhB,EAChBjnB,EAAQiB,OAAOzC,EAAS6rB,EAAYA,EAAY,EAAG,EAAGlqB,GACtDH,EAAQiB,OAAOvC,EAAc2rB,EAAY3rB,EAAcA,EAAc,EAAG,GACxE2X,EAAK4V,oBACL5V,EAAK6V,cACL7V,EAAKwI,aACLxI,EAAK8V,yBACL9V,EAAK+V,uBACDL,EAAiC3yB,OAAS,GAC1Cid,EAAKgW,mBAEThW,EAAKiW,qBACLjW,EAAKsR,8BACLtR,EAAKwR,0BACLxR,EAAKuR,2BACLvR,EAAKkW,0BACAX,IAGD3E,EACA5Q,EAAK+D,QAAQxG,IAAczT,OAAQA,IAEnCkW,EAAK+D,QAAQvG,IAAgB1T,OAAQA,QAG7CgsB,uBAAwB,WAAA,GAChB9E,GACAhjB,EAAS,CACT3J,MAAKyT,eACLkZ,EAAS3sB,KAAKyT,aAAalP,KAAK,SAChCoF,EAASF,EAAgBkjB,EAAQpkB,EAAcvI,KAAKsF,WAExDmE,EAAgBzJ,KAAK0J,MAAOjB,EAAiBzI,KAAKsF,SAAUqE,IAEhEmoB,WAAY,SAAUrsB,GAAV,GAYJoF,GAXAvF,EAAUtF,KAAKsF,OAEfG,GADiB,gBAAVA,GACEH,EAAQG,GAERkC,GAAKrC,EAAS,SAAUsK,GAC7B,MAAOA,GAAKhK,QAAUH,IACvB,IAEFA,GAAUA,EAAOuF,QAAUvF,EAAOC,SAGnCmF,EAAQtC,EAAcjD,GAAS5G,OAAS,EAC5CsB,KAAKgvB,cAAcnkB,EAAOpF,GAAQ,KAEtCssB,aAAc,SAAUtsB,GAAV,GAYNoF,GAXAvF,EAAUtF,KAAKsF,OAEfG,GADiB,gBAAVA,GACEH,EAAQG,GAERkC,GAAKrC,EAAS,SAAUsK,GAC7B,MAAOA,GAAKhK,QAAUH,IACvB,GAEFA,GAAWA,EAAOuF,SAAUvF,EAAOC,SAGpCmF,EAAQtC,EAAcjD,GAAS5G,OACnCsB,KAAKgvB,cAAcnkB,EAAOpF,GAAQ,KAEtCusB,UAAW,SAAUC,GACjB,GAAIC,GAAqB,CAIzB,OAHIlyB,MAAKuT,cAAgB/V,EAAE2W,SAASnU,KAAKuT,YAAY,GAAI0e,EAAG,MACxDC,EAAqBnoB,EAAYxB,EAAcvI,KAAKsF,UAAU5G,QAE3DlB,EAAEy0B,GAAI9mB,SAAS/B,SAAS,2CAA2CyB,MAAMonB,GAAMC,GAE1FC,mBAAoB,SAAU1tB,GAC1BA,EAAYjH,EAAEiH,GACTA,EAAUsK,GAAG,OAA8B,UAArB/O,KAAKoyB,cAC5B3tB,EAAYA,EAAU2I,QAAQ,MAElC,IAAIlH,GAAKzB,EAAU3B,KAAKpD,GAAMoD,KAAK,OACnC,OAAO9C,MAAKic,WAAWoW,SAASnsB,IAEpCse,UAAW,WAAA,GAaC8N,GAZJ3W,EAAO3b,KAAMiT,EAAa0I,EAAK1I,YAAc0I,EAAK1I,WAAWhS,QAAQsxB,SAAUrf,EAAWyI,EAAK1a,QAAQiS,SAAUsf,EAAU,WACvH,GAAI3pB,GAASwM,KAAiBlN,EAAOwT,EAAK8W,cACtCtqB,IAAQA,EAAK,KAAO3K,EAAE2W,SAAShM,EAAK,GAAIU,IAAWV,EAAK,KAAOU,IAAWrL,EAAEqL,GAAQuE,QAAQ,0BAA0B1O,SAClHid,EAAKzI,SAASwf,MACd/W,EAAKgX,YAELhX,EAAKiX,yBAIjB1f,KACAlT,KAAK4c,QAAQqI,SAAS,cAClBqN,EAAO3W,EAAKyW,YACH,WAATE,GACA3W,EAAK1N,MAAMzK,IAAImY,EAAKpI,aAAatO,GAAG,YAAcE,GAAImR,GAAS,IAAMC,GAAS,SAAU/D,GACpF,GAAI3J,GAASrL,EAAEgV,EAAE3J,OACQ,YAArB8S,EAAKyW,aAA4BvpB,EAAOoB,SAAS,qBAAuBpB,EAAOqnB,OAAOptB,KAAKpD,GAAMoD,KAAK,UACtG0P,EAAEC,mBAGNS,EAASgQ,UAAW,IAChB9H,IACAO,EAAKiB,QAAQ3X,GAAGC,GAAQC,GAAI,wCAA2C,SAAUqN,GAC7EhV,EAAEgV,EAAE3J,QAAQ6J,UACbzN,GAAGC,GAAQC,GAAI,eAAgB,SAAUqN,GACnChV,EAAEgV,EAAE3J,QAAQkG,GAAG,UAChBvR,EAAEgV,EAAEa,eAAe9O,KAAK,0BAA4BmO,UAEzDzN,GAAGoU,GAAYlU,GAAI,+BAAgC,SAAUqN,GAC5D,GAAIqgB,GAAgBlX,EAAK8W,cAErB9W,GAAKmX,wBADLD,IAAiBA,EAAc,KAAOr1B,EAAE2W,SAAS0e,EAAc,GAAIrgB,EAAE3J,SAAWgqB,EAAc,KAAOrgB,EAAE3J,UAOnH8S,EAAKiB,QAAQ3X,GAAGC,GAAQC,GAAI,+BAAgC,SAAUqN,GAClE,GAAIyf,GAAKz0B,EAAEwC,MAAO+yB,EAAepX,EAAKpI,aAAe0e,EAAG7kB,QAAQ,SAAS,KAAOuO,EAAKpI,YAAY,EACjGoI,GAAKmX,sBAAuB,EACxBb,EAAGhoB,SAAS,qBAAuBgoB,EAAGhoB,SAAS,kBAAoBgoB,EAAGhoB,SAAS,iBAAmBgoB,EAAGhoB,SAAS,gBAAkBgoB,EAAGe,IAAI,mBAAmBt0B,QAAUuzB,EAAGe,IAAI,wBAAwBt0B,QAAUuzB,EAAG7kB,QAAQ,SAAS,KAAOuO,EAAK3N,MAAM,KAAO+kB,GAAgBv1B,EAAEgV,EAAE3J,QAAQkG,GAAG,YAGzR4M,EAAKzI,SACDyI,EAAKzI,SAASwf,OACVzf,GACAzV,EAAE6X,MAAiB4d,OAEvBtX,EAAKgX,YACLhX,EAAKuX,SAASjB,IAEdtW,EAAKiX,wBAGTjX,EAAKuX,SAASjB,MAEnBhtB,GAAG,UAAYE,GAAI,WACb3H,EAAE2W,SAASnU,KAAMqV,QAClB0H,aAAapB,EAAKwL,OAClBxL,EAAKwL,MAAQ,QAElBliB,GAAG,WAAaE,GAAI,SAAUqN,GAC7B,GAAI2gB,IAAkB,CAClB/X,KAASO,EAAKmX,uBACdK,GAAkB,GAEtBxX,EAAKmX,sBAAuB,EACxBK,IACAxX,EAAKwL,MAAQ/X,WAAW,WACpBojB,EAAQhgB,IACT,QAKXU,EAASgQ,UAAW,IACpBvH,EAAKiB,QAAQ3X,GAAGC,GAAQC,GAAI,oEAAqE,SAAUqN,GACvGA,EAAEC,iBACFkJ,EAAKyX,QAAQ51B,EAAEwC,MAAMoN,QAAQ,SAE7BuO,EAAK0X,4BACL1X,EAAKiB,QAAQ3X,GAAG,WAAaE,GAAI,+BAAgC,WACzDwW,EAAKzI,WAAayI,EAAKzI,SAASwf,OAChC/W,EAAKiX,2BAMrB1f,EAASyJ,WAAY,EACrBhB,EAAKiB,QAAQ3X,GAAGC,GAAQC,GAAI,qEAAsE,SAAUqN,GACxGA,EAAEC,iBACFD,EAAE8gB,kBACF3X,EAAK4X,UAAU/1B,EAAEwC,MAAMoN,QAAQ,SAGnCuO,EAAKiB,QAAQ3X,GAAGC,GAAQC,GAAI,2EAA4E,SAAUqN,GAC9GA,EAAE8gB,kBACG3X,EAAK6X,iBACNhhB,EAAEC,qBAMtBygB,SAAU,SAAU/qB,GAAV,GAEFwT,GAAalW,EAA0DuN,EA+BnEmX,CA7BR,IAHAhiB,EAAO3K,EAAE2K,GACLwT,EAAO3b,KAAMyF,EAASsE,EAAY4R,EAAKrW,SAASqW,EAAKqW,UAAU7pB,IAAQ6K,EAAQ2I,EAAKwW,mBAAmBhqB,GAC3GwT,EAAKgX,YACD3f,GAASD,GAAiBtN,EAAQuN,KAAWvN,EAAOd,QAAS,CAC7D,GAAIgX,EAAK+D,QAAQ1I,IAAchE,MAAOA,IAClC,MAEJ2I,GAAK8X,mBAAmBzgB,GACxB2I,EAAK8W,eAAiBtqB,EAClBwT,EAAK+X,2BACL/X,EAAKgY,sBAEThY,EAAKzI,SAAW/K,EAAK8c,SAAS,eAAe2O,eACzCC,QACIjuB,MAAOH,EAAOG,MACdkJ,OAAQrJ,EAAOqJ,OACfglB,OAAQruB,EAAOquB,OACfC,OAAQtuB,EAAOsuB,QAEnB/gB,MAAOA,EACPnK,OAAQ8S,EACRkT,OAAQ,SAAUrc,GACVmJ,EAAK+D,QAAQzI,IACT8c,OAAQvhB,EAAEuhB,OACVtvB,UAAW0D,EACX6K,MAAOA,KAEXR,EAAEC,kBAGVuhB,aAAWrY,EAAKsY,6BAA8BtY,EAAKuY,kBACpDvjB,KAAK,iBACJwZ,EAAKhiB,EAAKgD,SAAS8Z,SAAS,mBAC5BtJ,EAAKvX,eACLyN,GAAgBsY,EAAG,GAAIxO,EAAKwY,YAAYhK,GAAIlF,SAAS,mBAAmB,IAE5EtJ,EAAK+D,QAAQ3I,IACTtS,UAAW0D,EACX6K,MAAOA,MAInBohB,iCAAkC,WAAA,GAC1BnmB,GAAQjO,KAAKiO,MAAO5J,EAAU4J,EAAM9C,SACpCgS,EAAYlP,EAAM,GAAGnM,YAAcuC,EAAQ,GAAGgc,YAAc3gB,GAAM0U,QAAQ+I,YAAc,CAC5Fnd,MAAKoE,cAActF,OAAOuF,EAAQ,GAAGtC,aAAeob,IAExD+P,yBAA0B,WAClBltB,KAAKuT,cACAvT,KAAKq0B,eACNr0B,KAAKo0B,mCAETp0B,KAAKs0B,kBAAkBt0B,KAAKiO,MAAOjO,KAAKuT,eAGhD4Z,wBAAyB,WAAA,GAEb5Z,GACAtF,CAFJjO,MAAKyT,eACDF,EAAcvT,KAAKyT,aAAarK,SAAS,SACzC6E,EAAQjO,KAAK0J,MAAMyB,SACvBnL,KAAKs0B,kBAAkB/gB,EAAatF,GACpCqD,GAAgBiC,EAAatF,KAGrCsmB,wBAAyB,WACjBv0B,KAAKipB,cAAgBjpB,KAAKgpB,QAAUhpB,KAAKgpB,OAAOtqB,QAChDsB,KAAKs0B,kBAAkBt0B,KAAKipB,aAAa7f,SAAS,SAAUpJ,KAAKgpB,OAAOzkB,KAAK,iCAGrFyjB,iBAAkB,WAAA,GACVrM,GAAO3b,KACP2c,EAAU,WACV,GAAIhB,EAAKzI,SAAU,CACf,GAAIzO,GAAYkX,EAAK6Y,SAAW7Y,EAAK6Y,SAAS/sB,QAAUkU,EAAK8W,cACzDhuB,KACAA,EAAUqY,IAAI5X,GAAQC,GAAI,kBAAmBwW,EAAK8Y,yBAClDhwB,EAAUqY,IAAI5X,GAAQC,GAAI,kBAAmBwW,EAAK+Y,0BAEtD/Y,EAAKgZ,qBACLhZ,EAAKzI,SAASyJ,UACdhB,EAAKzI,SAAW,KAChByI,EAAK8W,eAAiB,KACtB9W,EAAKiZ,mBACLjZ,EAAKkZ,mBAAqB,MAG9BlZ,GAAKzI,WACoB,UAArByI,EAAKyW,aAA4BzW,EAAK0M,UAQtC1L,IAPIhB,EAAKkZ,mBACLlZ,EAAK8W,eAAe9hB,KAAK,eAAeyL,KAAK,aAAcO,IAE3DhB,EAAKkZ,oBAAqB,EAC1BlZ,EAAK8W,eAAe9hB,KAAK,eAAeyL,KAAK,aAAcO,GAASmY,UAM5EnZ,EAAKoZ,iBACLpZ,EAAKoZ,eAAeD,QACpBnZ,EAAKoZ,eAAepY,UACpBhB,EAAKoZ,eAAiB,OAG9BH,iBAAkB,WACV50B,KAAKw0B,WACLx0B,KAAKw0B,SAASQ,QACdh1B,KAAKw0B,SAAW,KAChBx0B,KAAKooB,KAAK6M,SAAS,MAG3BxB,mBAAoB,SAAUzgB,GAC1B,GAAI2I,GAAO3b,IACX2b,GAAKuZ,oBAAsB,SAAU1iB,GACjCmJ,EAAKwZ,cACDvvB,MAAO4M,EAAE5M,MACToN,MAAOhT,QAGfgT,EAAMoJ,KAAK,SAAUT,EAAKuZ,sBAE9BP,mBAAoB,WAChB,GAAIhZ,GAAO3b,KAAMyE,EAAYkX,EAAK8W,eAAgBzf,EAAQ2I,EAAKwW,mBAAmB1tB,EAC9EuO,IACAA,EAAMmJ,OAAO1E,GAAQkE,EAAKuZ,sBAGlCvC,UAAW,SAAUyC,GACjB,GAA6C3vB,GAAQ0kB,EAAInX,EAArD2I,EAAO3b,KAAMmI,EAAOwT,EAAK8W,cACxBtqB,KAGL6K,EAAQ2I,EAAKwW,mBAAmBhqB,GAC5BitB,GAAYzZ,EAAK+D,QAAQ,UACrBjb,UAAW0D,EACX6K,MAAOA,MAIf2I,EAAK+D,QAAQlI,IACT6d,KAAMD,EAAW,SAAW,OAC5BpiB,MAAOA,EACPvO,UAAW0D,IAEfA,EAAK6hB,YAAY,eACjBvkB,EAASsE,EAAY4R,EAAKrW,SAASqW,EAAKqW,UAAU7pB,IAClDgiB,EAAKhiB,EAAKgD,SAAS6e,YAAY,mBAC3BrO,EAAKvX,eACLuX,EAAKwY,YAAYhK,GAAIH,YAAY,mBAErCrO,EAAKqM,mBACLrM,EAAK2Z,aAAantB,EAAM1C,EAAQuN,GAC5B2I,EAAK+X,2BACL/X,EAAKgY,sBAEThY,EAAK+D,QAAQ,cACT9P,KAAMua,EACNxZ,KAAMqC,EACNuiB,GAAItgB,KAEJ0G,EAAKvX,eACLyN,GAAgBsY,EAAG1mB,IAAI,SAAU,IAAI,GAAIkY,EAAKwY,YAAYhK,GAAI1mB,IAAI,SAAU,IAAI,OAGxF6xB,aAAc,SAAUntB,EAAM1C,EAAQ+vB,GAClC,GAAI7Z,GAAO3b,KAAMmQ,GACTslB,WACAzyB,MAAO,GACR0yB,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,kBAAmBC,EAAOn2B,GAAMo2B,SAASna,EAAKoa,UAAUtwB,EAAQ0K,GAAQulB,EAC9HvlB,GAAMnN,MAAQ,IACd6yB,EAAOzwB,GAAMywB,EAAM1lB,EAAMslB,UAE7BttB,EAAKgG,QAAQD,KAAK2nB,EAAKL,IACvB7Z,EAAK4O,QAAQ,UAAW,WACpB,OACIpmB,SAAUgE,EACVwI,OAAS6kB,SAAUA,QAI/BjC,UAAW,SAAUppB,GACZnK,KAAKwzB,cAAcrpB,IAGxBnK,KAAKg2B,WAAW7rB,IAEpB6rB,WAAY,SAAU7rB,GAClB,GAAiB6I,GAAOijB,EAASh4B,EAAKi4B,EAAlCva,EAAO3b,KAAmCsyB,EAAO3W,EAAKyW,WAC7C,YAATE,GACA3W,EAAKwa,YAEThsB,EAAM3M,EAAE2M,GACJwR,EAAKvX,gBACL+F,EAAMA,EAAI3G,IAAImY,EAAKwY,YAAYhqB,KAEnCA,EAAMA,EAAI3E,OACVwN,EAAQ2I,EAAKwW,mBAAmBhoB,GAC5B6I,IAAU2I,EAAK+D,QAAQxI,IACnB/M,IAAKA,EACL6I,MAAOA,KAEXkjB,EAASva,EAAKM,WAAWhb,QAAQi1B,OAC7Bva,EAAK8L,cAAgByO,GAAUA,EAAOljB,QACtCijB,EAAUpgB,GAAW8F,EAAKM,WAAWhb,QAAQi1B,OAAOljB,OAAS2I,EAAKM,WAAWhb,QAAQi1B,OAAOljB,MAAM4I,GAAGwa,QAAUza,EAAKM,WAAWhb,QAAQi1B,OAAOljB,MAAM9M,GACpJjI,EAAM+U,EAAMijB,SACLta,GAAK8L,aAAaxpB,IAE7B0d,EAAKM,WAAW7P,OAAO4G,GACV,WAATsf,GAA8B,UAATA,GACrB3W,EAAKM,WAAWoa,QAEJ,WAAT/D,GACP3W,EAAKqM,oBAGboK,UAAW,WACP,GAAIE,GAAO,SAAUpf,EAAWlT,KAAKiB,QAAQiS,QAQ7C,OAPIA,MAAa,IAETof,EADmB,gBAAZpf,GACAA,EAEAA,EAASof,MAAQA,GAGzBA,GAEXc,QAAS,SAAUjpB,GAAV,GACD6I,GAQAsf,EACA7tB,EARAkX,EAAO3b,IACPmK,aAAegL,IACfnC,EAAQ7I,GAERA,EAAM3M,EAAE2M,GACR6I,EAAQ2I,EAAKwW,mBAAmBhoB,IAEhCmoB,EAAO3W,EAAKyW,YAEhBzW,EAAKwa,YACDnjB,IACA7I,EAAMwR,EAAK3N,MAAM5E,SAAS,IAAM1J,GAAMoD,KAAK,OAAS,IAAMkQ,EAAMrN,IAAM,KACtEgW,EAAK8X,mBAAmBzgB,GACX,UAATsf,EACA3W,EAAK2a,mBAAmBtjB,GACR,WAATsf,EACP3W,EAAK4a,oBAAoBpsB,EAAK6I,GACd,WAATsf,GACP90B,EAAE2M,GAAKf,SAASgN,IAAWoU,KAAK,WAAA,GACxBriB,GAAO3K,EAAEwC,MACTyF,EAASsE,EAAY4R,EAAKrW,SAASqW,EAAKqW,UAAU7pB,GAEtD,IADA6K,EAAQ2I,EAAKwW,mBAAmBhqB,GAC5B6K,KAAWA,EAAME,UAAYF,EAAME,SAASzN,EAAOG,SAAWH,EAAOG,QAAUH,EAAOwN,WAEtF,MADA0I,GAAKuX,SAAS/qB,IACP,IAInB1D,EAAYkX,EAAK6Y,SAAW7Y,EAAK6Y,SAAS/sB,QAAUkU,EAAK8W,eACrDhuB,IACKzE,KAAKy0B,0BACNz0B,KAAKy0B,wBAA0BrvB,GAAMpF,KAAKw2B,iBAAkBx2B,OAEhEyE,EAAUQ,GAAGC,GAAQC,GAAI,kBAAmBnF,KAAKy0B,yBAC5Cz0B,KAAK00B,0BACN10B,KAAK00B,wBAA0BtvB,GAAMpF,KAAKy2B,iBAAkBz2B,OAEhEyE,EAAUQ,GAAGC,GAAQC,GAAI,kBAAmBnF,KAAK00B,4BAI7D+B,iBAAkB,SAAUjkB,GACxBA,EAAEC,iBACFD,EAAE8gB,kBACFtzB,KAAK02B,WAETF,iBAAkB,SAAUhkB,GAAV,GAaVmkB,GAZAhb,EAAO3b,KACP+T,EAAc4H,EAAK1a,QAAQ8S,YAC3Bf,EAAQ2I,EAAKzI,SAASjS,QAAQ+R,MAC9BvO,EAAYkX,EAAK6Y,SAAW7Y,EAAK6Y,SAAS/sB,QAAUkU,EAAK8W,cAC7DjgB,GAAEC,iBACFD,EAAE8gB,kBACE3X,EAAK+D,QAAQ,UACTjb,UAAWA,EACXuO,MAAOA,MAIX2jB,EAAehb,EAAK9K,QAAQhG,MAAMrN,EAAEme,EAAKvc,WAAW+L,UACxDwQ,EAAKwa,YACDpiB,IACA4H,EAAK7H,YAAY6H,EAAK9K,QAAQ5M,GAAG0yB,GAAcvtB,WAAW9E,OAAOiS,IAAS8G,SAC1ElL,GAAWwJ,EAAK1N,OAAO,MAG/BqoB,mBAAoB,SAAUtjB,GAAV,GAGZvN,GACAd,EAEAZ,EACArF,EACAm3B,EACAe,EACAC,EACAC,EACAC,EACAC,EAEAl0B,EAKAqN,EA+FA1L,EAlHAkX,EAAO3b,KACPkO,EAAO,QAAUxO,GAAMoD,KAAK,OAAS,KAAOkQ,EAAMrN,IAAM,8BAAgCgW,EAAK0M,UAAY,iBAAmB,IAAM,OAAS1M,EAAK0M,UAAY,KAAO,OAAS,kCAG5KwL,KASAvuB,EAAUyE,EAAY4R,EAAKrW,SAE3B4N,EAAWyI,EAAK1a,QAAQiS,SACxB4iB,EAAW5iB,EAAS4iB,SACpB70B,EAAU6D,GAAcoO,GAAYA,EAASzT,UAC7Ci2B,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,iBAEvD,KAAIja,EAAK+D,QAAQ1I,IAAchE,MAAOA,IAAtC,CAIA,GADA/R,EAAUA,MACN60B,EAKA,UAJWA,KAAazyB,KACpByyB,EAAWr2B,OAAOw3B,SAASnB,IAE/B5nB,GAAQxO,GAAMo2B,SAASA,EAAUJ,GAAU1iB,GACtCjP,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD0B,EAASH,EAAQvB,GACb0B,EAAOd,UACPqyB,EAAc9kB,GAAWzM,EAAOd,QAAS,QACrCqyB,IACAryB,EAAUqyB,QAKtB,KAAKjzB,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD0B,EAASH,EAAQvB,GACb0B,EAAOwN,aAGNxN,EAAOd,QA+CDc,EAAOd,UACdqyB,EAAc9kB,GAAWzM,EAAOd,QAAS,QACrCqyB,IACAryB,EAAUqyB,IAjDTrb,EAAK0M,WAsBNna,GAAQ,sBACJ6E,GAAiBtN,EAAQuN,IACzB6gB,EAAO11B,MACHyH,MAAOH,EAAOG,MACdkJ,OAAQrJ,EAAOqJ,OACfglB,OAAQruB,EAAOquB,OACfC,OAAQtuB,EAAOsuB,SAEnB7lB,GAAQ,sDAAwDzI,EAAO6oB,OAAS7oB,EAAOG,OAAS,IAAM,UACtGsI,GAAQ,QAAUxO,GAAMoD,KAAK,iBAAmB,KAAO2C,EAAOG,MAAQ,aAEtEuK,GACIslB,WACAzyB,MAAO,GAEX6yB,EAAOn2B,GAAMo2B,SAASna,EAAKoa,UAAUtwB,EAAQ0K,GAAQulB,GACjDvlB,EAAMnN,MAAQ,IACd6yB,EAAOzwB,GAAMywB,EAAM1lB,EAAMslB,UAE7BvnB,GAAQ,iEAAmEzI,EAAO6oB,OAAS7oB,EAAOG,OAAS,IAAM,UACjHsI,GAAQ,6BAA+B2nB,EAAK7iB,GAAS,WAEzD9E,GAAQ,kBA3CRA,GAAQ,yCAA2CzI,EAAOG,MAAQ,MAAQH,EAAO6oB,OAAS7oB,EAAOG,OAAS,IAAM,iBAC5GmN,GAAiBtN,EAAQuN,IACzB6gB,EAAO11B,MACHyH,MAAOH,EAAOG,MACdkJ,OAAQrJ,EAAOqJ,OACfglB,OAAQruB,EAAOquB,OACfC,OAAQtuB,EAAOsuB,SAEnB7lB,GAAQ,QAAUxO,GAAMoD,KAAK,iBAAmB,KAAO2C,EAAOG,MAAQ,kCAEtEuK,GACIslB,WACAzyB,MAAO,GAEX6yB,EAAOn2B,GAAMo2B,SAASna,EAAKoa,UAAUtwB,EAAQ0K,GAAQulB,GACjDvlB,EAAMnN,MAAQ,IACd6yB,EAAOzwB,GAAMywB,EAAM1lB,EAAMslB,UAE7BvnB,GAAQ,6BAA+B2nB,EAAK7iB,GAAS,WAmCrErO,IACIG,GAAcH,KACVG,GAAcH,EAAQjH,QACtBk5B,EAAajyB,EAAQjH,KAAKwlB,OAC1B2T,EAAalyB,EAAQjH,KAAKilB,QAE1B7d,GAAcH,EAAQoe,aACtB+T,EAAkBnyB,EAAQoe,UAAUG,OACpC6T,EAAkBpyB,EAAQoe,UAAUJ,QAEpChe,EAAQ7B,OACRA,EAAO6B,EAAQ7B,OAKtB6Y,EAAK0M,WAyCNna,GAAQ,cACRyN,EAAK6Y,SAAW7Y,EAAKyM,KAAK1d,OAAO,aAAehL,GAAM61B,GAAK,kDAAyD71B,GAAM61B,GAAK,gNAA4N5Z,EAAK1a,QAAQulB,SAAS9hB,SAASue,MAAQ,QAAU,6KAA8LvjB,GAAM61B,GAAK,yBAA2Bha,GAAWlX,QAAU,KAAO6J,EAAO,gBACnpBzJ,EAAYkX,EAAK8W,eAAiB9W,EAAK6Y,SAAS/sB,QAAQlD,KAAK,wBA1C7D2J,GAAQ,+CACRA,GAAQyN,EAAKub,eACTlyB,KAAM,SACNtH,KAAMk5B,EACN9zB,KAAMA,EACNigB,UAAW+T,IACVnb,EAAKub,eACNlyB,KAAM,aACNtH,KAAMm5B,EACN/zB,KAAMA,EACNigB,UAAWgU,IAEf7oB,GAAQ,qBACRzJ,EAAYkX,EAAK8W,eAAiBj1B,EAAE0Q,GAAMhK,SAASyX,EAAKiB,SAAS3Y,GAAG,GAAGkzB,YAAYt3B,IAC/Eu3B,OAAO,EACPlR,WAAW,EACXuI,WAAW,EACXH,MAAO3S,EAAK1a,QAAQulB,SAAS9hB,SAASue,MAAQ,OAC9Cxc,SAAS,EACTquB,MAAO,SAAUtiB,GACb,GAAIA,EAAE6kB,cAAe,CAEjB,GADA7kB,EAAEqL,OAAOpW,QAAQiL,QACbiJ,EAAK+D,QAAQ,UACTjb,UAAWA,EACXuO,MAAOA,IAGX,MADAR,GAAEC,iBACF,CAEJ,IAAIkkB,GAAehb,EAAK9K,QAAQhG,MAAMrN,EAAEme,EAAKvc,WAAW+L,SACxDwQ,GAAKkZ,oBAAqB,EAC1BlZ,EAAKwa,YACDxa,EAAK1a,QAAQ8S,cACb4H,EAAK7H,YAAY6H,EAAK9K,QAAQ5M,GAAG0yB,GAAcvtB,WAAW9E,OAAOiS,IAAS8G,SAC1ElL,GAAWwJ,EAAK1N,OAAO,OAIpChN,KAMP0a,EAAKzI,SAAWyI,EAAK8W,eAAemB,eAChCC,OAAQA,EACR7gB,MAAOA,EACPskB,gBAAgB,EAChBzuB,OAAQ8S,IACThL,KAAK,iBACRgL,EAAK4b,mBACL5b,EAAK+D,QAAQ3I,IACTtS,UAAWA,EACXuO,MAAOA,MAGfukB,iBAAkB,WAAA,GACV5b,GAAO3b,KACPw3B,EAAe7b,EAAK8W,eAAiB9W,EAAK8W,eAAe9hB,KAAK,eAAiB,KAC/E8mB,GAAiB9b,EAAK1a,QAAQiS,cAAgBzT,UAC7CO,MAAKqoB,UAQNroB,KAAKooB,KAAK6M,SAASj1B,KAAKw0B,SAAUx0B,KAAK03B,gBAPnCF,IACKC,EAAc7tB,UACf4tB,EAAaG,SAEjBH,EAAaI,SAMzBrB,oBAAqB,SAAUpsB,EAAK6I,GAAf,GAEbvN,GACA0C,EACAxD,EAHAgX,EAAO3b,KAIP6zB,IACAlY,GAAK+D,QAAQ1I,IAAchE,MAAOA,MAGlC2I,EAAKvX,gBACL+F,EAAMA,EAAI3G,IAAImY,EAAKwY,YAAYhqB,KAEnCA,EAAIf,SAAS,yCAAyCohB,KAAK,WAGvD,GAFAriB,EAAO3K,EAAEwC,MACTyF,EAASsE,EAAY4R,EAAKrW,SAASqW,EAAKqW,UAAU7pB,KAC7C1C,EAAOd,SAAWoO,GAAiBtN,EAAQuN,GAC5C6gB,EAAO11B,MACHyH,MAAOH,EAAOG,MACdkJ,OAAQrJ,EAAOqJ,OACfglB,OAAQruB,EAAOquB,OACfC,OAAQtuB,EAAOsuB,SAEnB5rB,EAAKrF,KAAKpD,GAAMoD,KAAK,iBAAkB2C,EAAOG,OAC9CuC,EAAKgG,YACF,IAAI1I,EAAOd,UACdA,EAAUuN,GAAWzM,EAAOd,QAAS,SACxB,CACTwD,EAAKgG,OACL,IAAIyoB,GAAYC,EAAYC,EAAiBC,EAAiBj0B,CAC1DgC,IAAcH,KACVG,GAAcH,EAAQjH,QACtBk5B,EAAajyB,EAAQjH,KAAKwlB,OAC1B2T,EAAalyB,EAAQjH,KAAKilB,QAE1B7d,GAAcH,EAAQoe,aACtB+T,EAAkBnyB,EAAQoe,UAAUG,OACpC6T,EAAkBpyB,EAAQoe,UAAUJ,QAEpChe,EAAQ7B,OACRA,EAAO6B,EAAQ7B,OAGvBtF,EAAEme,EAAKub,eACHlyB,KAAM,SACNtH,KAAMk5B,EACN9zB,KAAMA,EACNigB,UAAW+T,IACVnb,EAAKub,eACNlyB,KAAM,aACNtH,KAAMm5B,EACN/zB,KAAMA,EACNigB,UAAWgU,KACX7yB,SAASiE,MAIzBwT,EAAK8W,eAAiBtoB,EACtBwR,EAAK8W,eAAexN,SAAS,mBACzBtJ,EAAK+X,2BACL/X,EAAKgY,sBAEThY,EAAKzI,SAAW,GAAIxT,IAAMuV,GAAG4iB,SAASlc,EAAK8W,gBACvC5pB,OAAQ8S,EACRkY,OAAQA,EACR7gB,MAAOA,EACPghB,aAAWrY,EAAK0X,4BAA8B1X,EAAKuY,gBAAkBvY,EAAKuY,eAAetuB,OACzF0xB,gBAAgB,IAEhBntB,EAAIzL,OAAS,IACbmT,GAAgB1H,EAAI,GAAIA,EAAI,IAC5BwR,EAAKsR,+BAETtR,EAAK+D,QAAQ3I,IACTtS,UAAW0F,EACX6I,MAAOA,MAGfmjB,UAAW,SAAU/Q,GACjB,GAAkDpS,GAA9C2I,EAAO3b,KAAMyE,EAAYkX,EAAK8W,cAClC,IAAIhuB,EAAW,CAEX,GADAuO,EAAQ2I,EAAKwW,mBAAmB1tB,IAC3BuO,GAASoS,GAAUzJ,EAAK+D,QAAQ,UAC7Bjb,UAAWA,EACXuO,MAAOA,IAEX,MAEJ2I,GAAKqM,mBACLrM,EAAKM,WAAW6b,cAAc9kB,GAC9B2I,EAAKgY,sBAEDhY,EAAKoc,YADgB,UAArBpc,EAAKyW,YACY3tB,EAEAkX,EAAK3N,MAAMzJ,KAAK,IAAM7E,GAAMoD,KAAK,OAAS,IAAMkQ,EAAMrN,IAAM,QAIzF+wB,QAAS,WAAA,GAKDsB,GAJArc,EAAO3b,KACPyE,EAAYzE,KAAKyyB,eACjBzf,EAAQhT,KAAKmyB,mBAAmB1tB,GAChCwzB,EAAWz6B,EAAE06B,UAEjB,OAAKzzB,IAAczE,KAAKkT,UAGxB8kB,EAAQrc,EAAKzI,UAAYyI,EAAKzI,SAASwf,OAClCsF,GAASh4B,KAAK0f,QAAQzI,IACnBxS,UAAWA,EACXuO,MAAOA,KAENglB,GACDrc,EAAKiX,wBAEFqF,EAASE,SAASC,YAE7Bzc,EAAKgY,sBACE3zB,KAAKic,WAAWoa,SAbZ4B,EAASI,UAAUD,WAelCL,YAAa,SAAU5tB,GAAV,GAC8CmuB,GAASC,EAAQC,EA0BhEC,EACAC,EA3BJ/c,EAAO3b,KAAMgT,EAAQ2I,EAAKwW,mBAAmBhoB,GAAgCwuB,EAAaxuB,EAAIF,SAAS,oBAAqB2uB,EAAQzuB,EAAIF,SAAS,QACjJ+I,KACI2I,EAAKvX,gBACLk0B,EAAU96B,GAAGo7B,EAAQjd,EAAK+M,qBAAuB/M,EAAK8M,mBAAmBzV,IACzE2I,EAAKwY,YAAYhqB,EAAIb,QAAQuvB,YAAYP,IAE7C3c,EAAK4O,QAAQ,UAAW,WACpB,OAASpmB,SAAUgG,EAAIvJ,SAE3B23B,EAAS/6B,GAAGo7B,EAAQjd,EAAKqK,eAAiBrK,EAAKoK,aAAa/S,IACvD7I,EAAI4E,GAAG,aACRwpB,EAAO/yB,OAEX2E,EAAI0uB,YAAYN,GAChB5c,EAAK+D,QAAQ,cACT9P,KAAM2oB,EACN5nB,KAAMqC,EACNuiB,GAAItgB,KAEJqjB,GAAWA,EAAQ55B,QACnBid,EAAK+D,QAAQ,cACT9P,KAAM0oB,EACN3nB,KAAMqC,EACNuiB,GAAItgB,KAGRwjB,EAAkBF,EAClBG,IAAiBlD,SAAUxiB,IAC3BslB,GAAWA,EAAQ55B,SACnB+5B,EAAkBF,EAAO/0B,IAAI80B,GAC7BI,EAAYv6B,MAAOq3B,SAAUxiB,KAEjC2I,EAAK4O,QAAQ,UAAW,WACpB,OACIpmB,SAAUs0B,EAAgB73B,MAC1B+P,KAAM+nB,KAGVC,IAAehd,EAAK1a,QAAQgS,YAAc0I,EAAKmd,qBAC/Cnd,EAAKod,OAAOR,EAAO/0B,IAAI80B,IAEvBA,GACAzmB,GAAgB0mB,EAAO,GAAID,EAAQ,IAEvCE,EAAUD,EAAOzqB,OACb0qB,EAAQvuB,SAAS,iBAAmBuuB,EAAQzpB,GAAG,aAC/CwpB,EAAOh0B,KAAK,6BAA6BylB,YAAY,cAAc/E,SAAS,kBAIxF+T,aAAc,SAAUxS,EAAUrc,GAApB,GAKN8uB,GAJAtd,EAAO3b,IACX,OAAK2b,GAAK0M,WAGN4Q,EAAgBtd,EAAKoZ,eAAiB,GAAIr1B,IAAMuV,GAAGikB,QAAQ17B,EAAE,WAAW0G,SAASpD,SAASe,OAC1Fu1B,OAASzjB,eAAe,GACxBwlB,UAAU,EACV7K,OAAO,EACPjqB,QAASmiB,EAAS8H,MAClB9H,UACI4S,OAAQ5S,EAASG,cACjBhE,OAAQ6D,EAASC,cAErBmR,KAAM,WACFjc,EAAKtX,QAAQsM,KAAKuJ,GAAUyB,EAAKtX,QAAQZ,IAAIyW,KAC7CyB,EAAKtX,QAAQZ,IAAIyW,GAAUC,KAE/B2a,MAAO,WACHnZ,EAAKtX,QAAQZ,IAAIyW,GAAUyB,EAAKtX,QAAQsM,KAAKuJ,QAGrD+e,EAAc71B,OAAOi2B,KAAK,WACtB1d,EAAKqa,WAAW7rB,KACjBmvB,KAAK,WACJ,GAAIL,GAAgBtd,EAAKoZ,cACrBkE,KACAA,EAAcnE,QACdmE,EAActc,cAGf,GA5BIld,OAAO85B,QAAQ/S,EAAS8H,QA8BvCkF,cAAe,SAAUrpB,GACrB,GAAIwR,GAAO3b,KAAMkT,EAAWyI,EAAK1a,QAAQiS,SAAUwT,EAAexT,KAAa,SAAeA,KAAa7P,GAASsY,EAAK1a,QAAQulB,SAAStT,SAASwT,aAAexT,EAASwT,YAI3K,OAHI5hB,IAAcoO,UAAoBA,GAASof,OAASjvB,UAAiBqjB,KAAiBlN,UAAmBkN,KAAiBrjB,IAAUqjB,KAAiB,IACrJA,EAAe/K,EAAK1a,QAAQulB,SAAStT,SAASwT,cAE9CA,KAAiB,GAAyB,MAAhBA,UACfA,KAAiBlN,KACxBkN,EAAeA,EAAa/K,EAAKwW,mBAAmBhoB,KAEjDwR,EAAKqd,cACRrS,cAAezT,EAASyT,eAAiBhL,EAAK1a,QAAQulB,SAAStT,SAASyT,cACxEF,aAAcvT,EAASuT,cAAgB9K,EAAK1a,QAAQulB,SAAStT,SAASuT,aACtE6H,MAAO5H,KAAiB,EAAO/K,EAAK1a,QAAQulB,SAAStT,SAASwT,aAAeA,GAC9Evc,KAIX2tB,cAAe,WACX,GAAInc,GAAO3b,IACX2b,GAAKM,WAAW6b,gBACZnc,EAAK6d,sBACL7d,EAAK8d,kBAAkB,WACnB9d,EAAK6J,kBAAkB3F,iBAInC6Z,YAAa,WAAA,GACL/d,GAAO3b,KACPg4B,EAAQrc,EAAKzI,UAAYyI,EAAKzI,SAASwf,OACtCsF,GAAUrc,EAAKzI,UAAcyI,EAAK+D,QAAQ9H,IAEnCogB,GACRrc,EAAKiX,wBAFLjX,EAAKM,WAAWoa,QAKxBsD,OAAQ,WAAA,GACa9uB,GAEbmI,EAFA2I,EAAO3b,KAAaic,EAAaN,EAAKM,WAAYqW,EAAO3W,EAAKyW,YAAawH,EAAWje,EAAK1a,QAAQiS,SAAS0mB,UAAY,GAAI3Y,EAAWhF,EAAWgF,WAAY4Y,EAAO5d,EAAW4d,WAChLC,EAAiBF,EAASG,gBAAkBtgB,GAE5CugB,EAAkBre,EAAK6d,oBACvB7d,GAAKzI,UAAYyI,EAAKzI,SAASwf,QAAU/W,EAAKzI,UAClC,UAARof,GACA3W,EAAKwa,YAETtrB,EAAQoR,EAAWlQ,QAAQ8tB,EAAK,IAC5BC,IACAjvB,GAASgvB,EAAKn7B,OACVuiB,IAAahF,EAAWhb,QAAQg5B,cAAgBhZ,GAAY4Y,EAAKn7B,SACjEmM,GAAS,IAGbA,EAAQ,IAEJA,EADAoR,EAAW2G,OAAS3G,EAAWie,cACtBje,EAAW2G,OAAS,GAAK3B,EAE1B,GAGZtF,EAAK1a,QAAQ8S,aAAuB,UAARue,GAC5B3W,EAAKwe,iBAELH,EACAre,EAAKye,kBAELpnB,EAAQiJ,EAAWoe,OAAOxvB;AAC1B8Q,EAAK2e,WAAWtnB,KAGpB2I,EAAKiX,yBAGb0H,WAAY,SAAUtnB,GAAV,GAKA9M,GAAgB+H,EAA4D9D,EAA8DhC,EAJ9IwT,EAAO3b,KACP45B,EAAWje,EAAK1a,QAAQiS,SAAS0mB,UAAY,GAC7CtH,EAAO3W,EAAKyW,WACZpf,KACI9M,EAAK8M,EAAMrN,IAAKsI,EAAQ0N,EAAKvX,cAAgBuX,EAAKpI,YAAcoI,EAAK1N,MAAO9D,EAAM8D,EAAM1J,KAAK,MAAQ7E,GAAMoD,KAAK,OAAS,IAAMoD,EAAK,KAAMiC,EAAOgC,EAAIf,SAAS,2CAA2CnF,GAAG0X,EAAK4e,0BAA0BpwB,IAClO,WAATmoB,GAAqBnoB,EAAIzL,OACzBid,EAAKyX,QAAQjpB,GACG,UAATmoB,EACP3W,EAAKyX,QAAQpgB,GACN7K,EAAKzJ,QACZid,EAAKuX,SAAS/qB,GAEY,UAA1ByxB,EAASG,eAA6Bpe,EAAKvX,gBAC3CuX,EAAKvX,cAAc,GAAG4Z,UAAYrC,EAAKtX,QAAQ,GAAG2Z,UAAYrC,EAAK1N,MAAM,GAAGlM,gBAIxFq4B,eAAgB,WAAA,GACRze,GAAO3b,KACP85B,GAAkBne,EAAK1a,QAAQiS,SAAS0mB,UAAY,IAAIG,gBAAkBtgB,EAC9EkC,GAAKgY,sBACDmG,EACAne,EAAK6e,yBAEL7e,EAAK8e,uBAGbA,oBAAqB,WAAA,GAIbznB,GAHA2I,EAAO3b,KACPic,EAAaN,EAAKM,WAClBuJ,EAAoB7J,EAAK6J,iBAEH,KAAtBvJ,EAAW2G,QACX5P,EAAQiJ,EAAWoe,OAAO,MAC1B1e,EAAK2e,WAAWtnB,GAChBwS,EAAkB3F,eAElBlE,EAAK8d,kBAAkB,WACnBzmB,EAAQiJ,EAAWoe,OAAO,MAC1B1e,EAAK2e,WAAWtnB,GAChBwS,EAAkB3F,iBAI9B2a,uBAAwB,WAAA,GAKhBxnB,GAJA2I,EAAO3b,KACPic,EAAaN,EAAKM,WAClBuJ,EAAoB7J,EAAK6J,kBACzB3a,EAAQoR,EAAW4F,OAEnB5F,GAAWye,GAAG7vB,EAAQ,YAAcsK,KACpCnC,EAAQiJ,EAAWoe,OAAOxvB,MAC1B8Q,EAAKgf,qBAAqB,WACtBhf,EAAK2e,WAAWtnB,GAChBwS,EAAkBzF,oBAGtBpE,EAAKgf,qBAAqB,WACtB3nB,EAAQiJ,EAAWoe,OAAOxvB,MAC1B8Q,EAAK2e,WAAWtnB,GAChBwS,EAAkBzF,oBAI9B0Z,kBAAmB,SAAU1X,GACzB,GAAIpG,GAAO3b,IACX2b,GAAKif,aAAa,EAAGjf,EAAKM,WAAW2D,OAAQ,WACzCmC,OAGR4Y,qBAAsB,SAAU5Y,GAAV,GACdpG,GAAO3b,KACPic,EAAaN,EAAKM,WAClB2D,EAAO3D,EAAW2D,OAClBiC,EAAQ5F,EAAW4F,QACnBjD,EAAOiD,EAAQjC,EAAOiC,EAAQjC,EAAO,CACzCjE,GAAKif,aAAahc,EAAMgB,EAAM,WAC1BmC,OAGR6Y,aAAc,SAAUhc,EAAMgB,EAAMmC,GAChC,GAAIpG,GAAO3b,IACP2b,GAAK6d,uBACL7d,EAAK6J,kBAAkBlG,gBAAiB,EACxC3D,EAAK6J,kBAAkB7F,MAAMf,EAAMgB,EAAMmC,KAGjDwY,0BAA2B,SAAU91B,GACjC,GAAiBgB,GAA6C1B,EAAKrF,EAA/Did,EAAO3b,KAAcsF,EAAUyE,EAAY4R,EAAKrW,SAAuB0N,EAAQ2I,EAAKwW,mBAAmB1tB,EAC3G,KAAKV,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IAEjD,GADA0B,EAASH,EAAQvB,GACbiP,KAAWA,EAAME,UAAYF,EAAME,SAASzN,EAAOG,UAAYH,EAAOd,SAAWc,EAAOG,OAASH,EAAOC,UAAW,EACnH,MAAO3B,EAGf,WAEJkgB,SAAU,WACN,GAA2Gxf,GAAvGkX,EAAO3b,KAAM4c,EAAUjB,EAAKiB,QAAS6I,EAAU9J,EAAK1a,QAAQwkB,QAASvS,EAAWyI,EAAK1a,QAAQiS,QAC7FuS,KACAhhB,EAAYkX,EAAKiB,QAAQrY,KAAK,mBACzBE,EAAU/F,SACNmX,GAAW4P,KACZA,QAAiBA,KAAYpiB,GAASoiB,EAAU9J,EAAKkf,aAAapV,GAAS7nB,QAAQ+c,GAAoB,OACvG8K,EAAUrgB,GAAM1F,GAAMo2B,SAASrQ,GAAU9J,IAE7ClX,EAAYjH,EAAE,2CAA2C0Q,KAAKuX,OAAaqV,UAAUle,GACrFjB,EAAK4O,QAAQ,UAAW,WACpB,OAASpmB,SAAUM,EAAU7D,UAGjCsS,GAAYA,EAAS4P,UAAW,GAChCre,EAAUQ,GAAGC,GAAQC,GAAI,cAAe,SAAUqN,GAC9CA,EAAEC,iBACFkJ,EAAKge,WACN10B,GAAGC,GAAQC,GAAI,yBAA0B,SAAUqN,GAClDA,EAAEC,iBACFkJ,EAAKmc,kBACN7yB,GAAGC,GAAQC,GAAI,uBAAwB,SAAUqN,GAChDA,EAAEC,iBACFkJ,EAAK+d,gBAGbj1B,EAAUQ,GAAGC,GAAQC,GAAI,gBAAiB,SAAUqN,GAChDA,EAAEC,iBACFkJ,EAAKof,gBAETt2B,EAAUQ,GAAGC,GAAQC,GAAI,cAAe,SAAUqN,GAC9CA,EAAEC,iBACFkJ,EAAKqf,gBAIjBH,aAAc,SAAUn2B,GACpB,GAAiBX,GAAKrF,EAAlBid,EAAO3b,KAAmBkO,EAAO,EACrC,IAAIrJ,GAAQH,GACR,IAAKX,EAAM,EAAGrF,EAASgG,EAAShG,OAAQqF,EAAMrF,EAAQqF,IAClDmK,GAAQyN,EAAKub,cAAcxyB,EAASX,GAG5C,OAAOmK,IAEXgpB,cAAe,SAAUvyB,GACrB,GAKkDs2B,GAL9CnF,EAAWnxB,EAAQmxB,UAAYhb,GAAmBlW,QAAqBD,KAAYtB,GAASsB,EAAUA,EAAQK,MAAQL,EAAQjH,KAAM6S,EAAYsS,GAAgBje,GAAeie,GAAgBje,GAAa2L,UAAY,WAAa3L,GAAe,IAAIhH,QAAQ,MAAO,IAAKqD,GACxQsP,UAAWA,EACX7S,KAAMkH,EACN9B,KAAM,GACNigB,UAAW,IACZyD,EAAWxmB,KAAKiB,QAAQulB,SAAS9hB,QACxC,MAAKE,GAAiBE,GAAcH,IAAYA,EAAQmxB,UACpD,KAAUhuB,OAAM,6CA6BpB,OA3BIhD,IAAcH,IACdA,EAAU9E,IAAO,KAAU8E,GACvBA,EAAQ4L,WAAajF,GAAQrK,EAAQsP,UAAW5L,EAAQ4L,UAAU2qB,MAAM,MAAQ,EAChFv2B,EAAQ4L,WAAa,IAAMtP,EAAQsP,UAC5B5L,EAAQ4L,YAAc7N,IAC7BiC,EAAQ4L,UAAYtP,EAAQsP,WAEZ,SAAhB3L,IACAD,EAAU9E,IAAO,KAAU8E,GAC3BA,EAAQjH,KAAOoH,GAAcH,EAAQjH,MAAQiH,EAAQjH,KAAKulB,KAAOte,EAAQjH,KACzEiH,EAAQoe,UAAYje,GAAcH,EAAQoe,WAAape,EAAQoe,UAAUE,KAAOte,EAAQoe,WAExFpe,EAAQ7B,OACJgC,GAAcH,EAAQ7B,QACtB6B,EAAQ7B,KAAOI,EAAoByB,EAAQ7B,aAEpC6B,GAAQ7B,OAASO,KACxB43B,EAAsBt2B,EAAQ7B,KAAK4L,MAAM,iBACrCusB,GAAuB3vB,GAAQ2vB,EAAoB,GAAIt2B,EAAQ4L,UAAU2qB,MAAM,MAAQ,IACvFv2B,EAAQ4L,WAAa,IAAM0qB,EAAoB,MAI3Dh6B,EAAUpB,IAAO,EAAMoB,EAAS4hB,GAAgBje,IAAgBlH,KAAM8oB,EAAS5hB,IAAgBD,IAE/F1D,EAAUpB,IAAO,EAAMoB,EAAS4hB,GAAgBje,IAAgBlH,KAAM8oB,EAAS5hB,KAE5ElF,GAAMo2B,SAASA,GAAU70B,IAEpCk6B,YAAa,WACT,QAASn7B,KAAK2oB,kBAAoB3oB,KAAK4oB,qBAAuB5oB,KAAKgpB,QAAUhpB,KAAKgpB,OAAOtqB,OAAS,GAAKsB,KAAK4c,QAAQrY,KAAK,kBAAkB7F,OAAS,GAExJslB,WAAY,WACR,GAAIrI,GAAO3b,IACP2b,GAAKuN,uBACLvN,EAAK1N,MAAMzK,IAAImY,EAAKpI,aAAauJ,IAAI5X,GAAQC,GAAIwW,EAAKuN,wBAEtDvN,EAAKuN,uBAAyB,SAAU1W,GAAV,GACtB/K,GAAUjK,EAAEwC,MAAOo7B,EAAW3zB,EAAQ2F,QAAQ,MAC9Coc,EAAQ7N,EAAKwN,WAAaxN,EAAKwN,WAAWxN,EAAKiB,QAAQrY,KAAK,mBAAmBsG,MAAMuwB,MACrF3zB,GAAQwC,SAAS,gBACZ0R,EAAK+D,QAAQ,iBACV8J,MAAOA,EACP/hB,QAAS2zB,KAEbzf,EAAK0f,cAAcD,GAGlBzf,EAAK+D,QAAQ,eACV8J,MAAOA,EACP/hB,QAAS2zB,KAEbzf,EAAK2f,YAAYF,GAGzB5oB,EAAEC,iBACFD,EAAE8gB,mBAGN3X,EAAK4f,YACL5f,EAAKpI,YAAYtO,GAAGC,GAAQC,GAAI,6DAA8DwW,EAAKuN,wBAEnGvN,EAAK1N,MAAMhJ,GAAGC,GAAQC,GAAI,6DAA8DwW,EAAKuN,wBAEjGvN,EAAK6f,oBAETA,iBAAkB,WACd,GAAI7f,GAAO3b,KAAM4c,EAAUjB,EAAKiB,QAAS/J,EAAY8I,EAAK1a,QAAQ4R,UAAW4oB,EAAa7kB,GAAc,IAAMlX,GAAMoD,KAAK,SAAW,IAAKwB,EAASqX,EAAKtX,QAAU,wBAA0Bo3B,EAAa,8BAAgCA,CACpO5oB,IAAaA,EAAU6oB,WAAY,IAC9B9e,EAAQoW,IAAI,yBAAyB,IACtCx1B,EAAE,qBAAqBynB,SAAS,qBAAqB6V,UAAUle,GAE/DjB,EAAK9I,WACL8I,EAAK4L,oBAET5L,EAAK9I,UAAY,GAAIoC,IAAG0mB,UAAU/e,EAAS/c,MAAWgT,GAClD4b,UAAW9S,EAAK6M,mBAChBoT,eAAgB,yBAChB3f,WAAYN,EAAKM,WACjB4f,kBAAmBv3B,EACnBA,OAAQA,EACRw3B,UAAWngB,EAAK1a,QAAQklB,YACxB0I,OAAQ,SAAUrc,GACVmJ,EAAK+D,QAAQ,SAAW1W,OAAQwJ,EAAExJ,SAClCwJ,EAAEC,kBAEFkJ,EAAKgY,sBACDhY,EAAKM,WAAWhb,QAAQ86B,UACxBpgB,EAAKM,WAAWhb,QAAQ86B,QAAU,KAClCpgB,EAAKqgB,iBAAmBrgB,EAAKM,WAAWhb,QAAQggB,SAChDtF,EAAKM,WAAWggB,MAAQ,EACxBtgB,EAAKM,WAAWigB,UAAYvgB,EAAKM,WAAWkgB,MAAQxgB,EAAKqgB,iBACzDrgB,EAAKM,WAAW0D,MAAQ,QAKxChE,EAAKygB,iCAGbA,6BAA8B,WAAA,GAOtBC,GACAC,EACA99B,EARAmd,EAAO3b,KACPsF,EAAUkG,EAAYmQ,EAAKrW,SAC3Bi3B,KACA32B,EAAQ,GACR42B,EAAc7gB,EAAK8gB,eACnBC,EAAgB,EAIpB,KAAKl+B,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAC5BoH,EAAQN,EAAQ9G,GAAGoH,MACnB22B,EAAej3B,EAAQ9G,GAAGoH,OAASN,EAAQ9G,EAE/C,KAAKA,EAAI,EAAGA,EAAIg+B,EAAY99B,OAAQF,IAChC69B,EAAaG,EAAYv4B,GAAGzF,GAC5Bk+B,EAAgBL,EAAWv5B,KAAKpD,GAAMoD,KAAK6W,KAC3C2iB,EAAgBC,EAAeG,GAC3BJ,GAAiBA,EAAczpB,WAAaypB,EAAczpB,UAAUzU,MACpEi+B,EAAW1rB,KAAKyJ,GAAYkiB,EAAczpB,UAAUzU,OAIhEmpB,kBAAmB,WACf,GAAI5L,GAAO3b,IACP2b,GAAK9I,WAAa8I,EAAK9I,UAAUpL,SACjCkU,EAAK9I,UAAUpL,QAAQk1B,eAAe,WAE1ChhB,EAAK9I,UAAY,KACjB8I,EAAKihB,qCAETA,kCAAmC,WAAA,GAGtBp+B,GAFLmd,EAAO3b,KACPw8B,EAAc7gB,EAAK8gB,cACvB,KAASj+B,EAAI,EAAGA,EAAIg+B,EAAY99B,OAAQF,IACpCg+B,EAAYv4B,GAAGzF,GAAGq+B,WAAWziB,KAGrC0iB,iBAAkB,SAAUx4B,EAAQ6D,GAAlB,GAIVwT,GACAxX,EACA44B,EACAC,EACA13B,EACAmD,EACArF,EACKW,CAVT,IAAK/D,KAAKoE,cAAV,CAUA,IAPIuX,EAAO3b,KACPmE,EAAWwX,EAAK1N,MAAMzK,IAAImY,EAAKpI,aAC/BwpB,EAAcv/B,EAAE8G,EAAQH,EAAS,IACjC64B,EAAiBx/B,EAAE8G,EAAQH,EAAS,IACpCmB,EAAU6C,EAAOI,EAAcoT,EAAKrW,SAAS5G,OAAS,EACtD+J,EAAmBN,EAAOwT,EAAKrW,QAAQ5G,OAAS4G,EAAU,EAC1DlC,KACKW,EAAM,EAAGA,EAAMg5B,EAAYr+B,OAAQqF,GAAOuB,EAC/CnH,GAAK8+B,MAAM75B,EAAQ25B,EAAY9M,MAAMlsB,EAAKA,EAAMuB,IAChDnH,GAAK8+B,MAAM75B,EAAQ45B,EAAez2B,OAAO,EAAGkC,GAEhD,OAAOrF,KAEXihB,YAAa,WAAA,GACQ6Y,GAAO/0B,EAmBhBhE,EAIAG,EAvBJqX,EAAO3b,KAAmBm9B,KAAgB5Q,EAAW5Q,EAAK4f,YAAatoB,EAAa0I,EAAK1a,QAAQgS,UACjGA,KACI0I,EAAK1I,YACL0I,EAAK1I,WAAW0J,UAEpBhB,EAAK8L,gBACLxU,EAAavT,GAAMuV,GAAGmoB,WAAWC,aAAapqB,GAC9CiqB,EAAQjqB,EAAWsf,SACnBpqB,EAAO8K,EAAW9K,KACdwT,EAAKgP,gBACLwS,EAAUA,EAAUz+B,QAAU,kBAE9Bid,EAAK1a,QAAQ4R,WAAa8I,EAAKwf,eAAiBxf,EAAKoJ,aACrDoY,EAAUA,EAAUz+B,QAAU,mCAElCy+B,EAAYA,EAAU9+B,KAAK,KACT,KAAd8+B,IACAA,EAAY,QAAUA,EAAY,KAElCh5B,EAAWwX,EAAK1N,MAChBse,IACApoB,EAAWA,EAASX,IAAImY,EAAKpI,cAE7BjP,EAAS,KAAO6D,EAAOkO,GAA0B,WAAa8mB,GAClExhB,EAAK1I,WAAa,GAAIvT,IAAMuV,GAAGmoB,WAAWj5B,GACtCG,OAAQA,EACRg5B,MAAM,EACN/K,SAAU2K,EACVrO,OAAQ,WACJ,GAAI0O,EACCp1B,IACDwT,EAAK6hB,uBAEL7hB,EAAKmd,qBACLyE,EAAiB5hB,EAAK1I,WAAW5S,QACjCsb,EAAK8hB,qBACL9hB,EAAK+hB,WAAWH,GAEZ5hB,EAAKgiB,wBADLJ,IAAmB5hB,EAAK9K,QAAQnS,QACH,GAEA,IAGrCid,EAAK+D,QAAQjI,KAEjBmmB,YAAarR,GAAY2Q,GAAS/0B,EAClC01B,cAAe,SAAUhtB,GAAV,GAIPynB,GACAl1B,EACKW,EAASrF,CALlB,KAAIyJ,GAASokB,EAAb,CAKA,IADInpB,EAAS5F,IACJuG,EAAM,EAAGrF,EAASmS,EAAMnS,OAAQqF,EAAMrF,EAAQqF,IACnDu0B,EAAU3c,EAAKwY,YAAYtjB,EAAM9M,IAC7BuH,GAAQgtB,EAAQ,GAAIznB,GAAS,IAC7BzN,EAASA,EAAOI,IAAI80B,GAG5B,OAAOl1B,KAEX06B,gBAAiB,WACb,MAAOniB,GAAKmhB,iBAAiBx4B,EAAQ6D,MAGzCwT,EAAK1a,QAAQ8S,aACb5P,EAASc,GAAG,UAAYE,GAAI,SAAUqN,GAAV,GACpBpT,GAAUuc,EAAKvc,UACfyJ,EAAS2J,EAAE3J,MACf,IAAI2J,EAAEurB,UAAYpoB,GAAKqoB,WAAaxrB,EAAEyrB,UAAYzgC,EAAE8N,QAAQzC,EAAQ1E,QAAmB/E,EAAQ2P,GAAG,2BAA6B3P,EAAQ+L,SAAS4D,GAAG,uDAAwD,CAOvM,GANAyD,EAAEC,iBACFD,EAAE8gB,kBACFl0B,EAAU+I,EAAO/I,EAAUA,EAAQ+L,SAC/BohB,IAAapkB,IACb/I,EAAUA,EAAQoE,IAAImY,EAAKwY,YAAY/0B,KAEvC89B,EACA,GAAK1qB,EAAE8L,SAGH,GAAIlf,EAAQ6K,SAASsO,IAEjB,MADAoD,GAAKuiB,mBAAmB9+B,GACxB,MAJJuc,GAAK1I,WAAWkrB,YAQpBxiB,GAAK1I,WAAWkrB,OAEfh2B,KACDwT,EAAK1I,WAAWmrB,YAAch/B,GAElCuc,EAAK1I,WAAW5S,MAAMjB,QACd+I,IAAS3K,EAAEqL,GAAQkG,GAAG,OAASvR,EAAEqL,GAAQkG,GAAG,UAAYzD,GAAQzC,EAAQ7I,KAAKinB,uBAAyBzU,EAAEyrB,UAAYzrB,EAAEurB,SAAWpoB,GAAK0oB,MAAQ7rB,EAAEyrB,UAAYzrB,EAAEurB,SAAWpoB,GAAK2oB,OAAS9rB,EAAEyrB,UAAYzrB,EAAEurB,SAAWpoB,GAAK4oB,IAAM/rB,EAAEyrB,UAAYzrB,EAAEurB,SAAWpoB,GAAK6oB,MAAQhsB,EAAEurB,UAAYpoB,GAAKqoB,UAAYxrB,EAAEyrB,YAC9SzrB,EAAEC,iBACFD,EAAE8gB,kBACFl0B,EAAUA,EAAQ+L,SACdohB,IACAntB,EAAUA,EAAQoE,IAAImY,EAAKwY,YAAY/0B,KAEvC89B,GACKvhB,EAAK1I,WAAWmrB,cACjBziB,EAAK1I,WAAWmrB,YAAch/B,GAElCuc,EAAK1I,WAAWwrB,YAAY9iB,EAAK1I,WAAWyrB,iBAAkBt/B,KAE9Duc,EAAK1I,WAAWkrB,QAChBxiB,EAAK1I,WAAW5S,MAAMjB,SAO9CklB,WAAY,WAAA,GAIA1R,GAHJ3R,EAAUjB,KAAKiB,QACfgS,EAAahS,EAAQgS,UACrBA,IAAchS,EAAQ2kB,YAClBhT,EAAO5S,KACNiB,EAAQ8S,aACTnB,EAAK3E,MAAMzK,IAAIoP,EAAKW,aAAazQ,KAAK,WAAY,GAAGmC,GAAG,YAAcE,GAAK,WAAaA,GAAI,iBAAkB,SAAUqN,GAChHA,EAAE3J,SAAW2J,EAAEa,eACfb,EAAEmsB,6BAEP15B,GAAG,YAAcE,GAAImR,GAAS,IAAMC,GAASnR,GAAMgO,GAAYR,IAEtEA,EAAK8U,YAActiB,GAAMwN,EAAKgsB,cAAehsB,GAC7CA,EAAK+U,qBAAuB,WACpB/U,EAAKisB,eACLjsB,EAAKisB,cAAcC,IAAIlsB,EAAKmsB,UAAUrsB,QAAQqmB,UAGtDnmB,EAAKwJ,KAAK,SAAUxJ,EAAK+U,sBACzB/U,EAAKgK,QAAQ3X,GAAG,UAAW2N,EAAK8U,aAChC9U,EAAKgV,iBAAmBxiB,GAAMwN,EAAK4U,UAAW5U,GAC9CA,EAAKgK,QAAQ3X,GAAG,QAAS2N,EAAKgV,oBAGtCgX,cAAe,SAAUpsB,GACjBA,YAAanQ,QAAO28B,QAAWxsB,EAAE8L,UAAW9L,EAAEysB,SAAYzhC,EAAEgV,EAAE3J,QAAQkG,GAAG,mCAAqCtP,OAAOy/B,cAAgBz/B,GAAAA,OAAOy/B,gBAA6Bp+B,SAASq+B,WAAar+B,SAASq+B,UAAUC,cAAc1hC,OAG/NsC,KAAK6+B,gBACN7+B,KAAK6+B,cAAgBrhC,EAAE,gBAAgBiG,KACnCmG,SAAU,QACVmX,IAAK,MACL8J,KAAM,MACNwU,QAAS,EACTxgC,MAAO,EACPC,OAAQ,IACToF,SAASlE,KAAK4c,UAErB5c,KAAK6+B,cAAcC,IAAI9+B,KAAK++B,UAAUrsB,QAAQqmB,WAElDgG,OAAQ,WAAA,GASArhC,GAQI0F,EACAk8B,EACAC,EACAC,EAyBAC,EA5CJ7sB,EAAO5S,KACP0/B,EAAW9sB,EAAKmmB,SAChB4G,EAAY,KACZ/Z,EAAYhT,EAAK3R,QAAQ2kB,UACzBga,GAAc,CAyDlB,OAxDIpiC,GAAEsH,cAAc8gB,IAAcA,EAAU+Z,YACxCA,EAAY/Z,EAAU+Z,WAEtBjiC,EAAO,GACPgiC,EAAShhC,SACLghC,EAASz7B,GAAG,GAAG8K,GAAG,QAClB2wB,EAAWA,EAASn7B,KAAK,0BAEzBq7B,GACAF,EAASp7B,OAAO,YAEhBlB,KACAk8B,EAAct/B,KAAKsF,QAAQ5G,OAC3B6gC,EAAa3sB,EAAK2oB,aAAehzB,EAAcqK,EAAKtN,SAAS5G,OAC7D8gC,GAAe,EACnBhiC,EAAEgtB,KAAKkV,EAAU,SAAU37B,EAAKoE,GAAf,GAETgiB,GACA7d,EACA0lB,EAcA6N,CAjBJ13B,GAAO3K,EAAE2K,GACLgiB,EAAKhiB,EAAKiF,QAAQ,MAClBd,EAAW6d,EAAGtf,QACdmnB,EAAY7pB,EAAK0C,QACjB+0B,IACA5N,GAAa7pB,EAAKoF,QAAQ,WAAW7O,QAErC6gC,GAAcC,IACdA,EAAehiC,EAAE2W,SAASvB,EAAKW,YAAY,GAAIpL,EAAK,KAEpDyK,EAAKmS,WAAaya,IAClBxN,GAAapf,EAAKmS,WAEtBiN,EAAYwN,EAAexN,EAAYA,EAAYuN,EAC/CD,EAActN,IACdsN,EAActN,GAEd6N,EAAW13B,EAAKzK,OACf0F,EAAOkJ,KACRlJ,EAAOkJ,OAEXlJ,EAAOkJ,GAAU0lB,GAAa6N,IAE9BJ,EAAar8B,EAAO1E,OACxB0E,EAAS5F,EAAEgtB,KAAKpnB,EAAQ,SAAUW,EAAK+6B,GAC/BA,IACA17B,EAAOW,GAAO+6B,EAAI7O,MAAMqP,GACpBG,EAAa17B,IACb07B,EAAa17B,MAIzBvG,EAAEgtB,KAAKpnB,EAAO6sB,MAAMwP,GAAa,SAAU17B,EAAK+6B,GAExCphC,GADAohC,EACQA,EAAIzgC,KAAKshC,GAAa,OAEtB,UAIbjiC,GAEX8pB,UAAW,SAAUhV,GACjB,GAAIvE,EACAjO,MAAK6+B,eAAiBrsB,GAAKA,EAAE3J,SAAW7I,KAAK6+B,cAAc,KAEvD5wB,EADAjO,KAAKiB,QAAQ8S,YACLvW,EAAEwC,KAAKZ,WAAWgO,QAAQ,SAE1BpN,KAAKiO,MAEjBkE,GAAWlE,GAAO,IAElBjO,KAAK6+B,gBACL7+B,KAAK6+B,cAAczyB,SACnBpM,KAAK6+B,cAAgB,OAG7Bna,iBAAkB,WACd,GAAI/I,GAAO3b,IACP2b,GAAKmkB,4BACLnkB,EAAKokB,2BAA2BpkB,EAAKrW,SACrCqW,EAAKqkB,oCAGbF,wBAAyB,WACrB,MAAO9/B,MAAKigC,yBAAyBvhC,QAEzCuhC,uBAAwB,WACpB,MAAOr4B,GAAiB5H,KAAKsF,UAEjC06B,gCAAiC,WAC7B,GAAIrkB,GAAO3b,IACX2b,GAAK4M,kCACL5M,EAAKukB,0BAA4B96B,GAAMuW,EAAKwkB,qBAAsBxkB,GAClEne,EAAEiC,QAAQwF,GAAG8T,GAAS5T,GAAIwW,EAAKukB,4BAEnC3X,gCAAiC,WAC7B,GAAI5M,GAAO3b,IACP2b,GAAKukB,2BACL1iC,EAAEiC,QAAQqd,IAAI/D,GAAS5T,GAAIwW,EAAKukB,4BAGxCC,qBAAsB,WAClB,GAAIxkB,GAAO3b,IACX2b,GAAKokB,2BAA2BpkB,EAAKrW,SACrCqW,EAAKykB,yBAETL,2BAA4B,SAAUz6B,GAAV,GAEf9G,GADLqN,EAAOvG,KACX,KAAS9G,EAAI,EAAGA,EAAIqN,EAAKnN,OAAQF,IAC7BwB,KAAKqgC,0BAA0Bx0B,EAAKrN,KAG5C6hC,0BAA2B,SAAU56B,GACjC,GAAIkW,GAAO3b,IACPoH,GAAY3B,EAAO4B,OACnBsU,EAAKokB,2BAA2Bt6B,EAAOH,SAEnC6B,EAAmB1B,IACnBkW,EAAK2kB,mBAAmB76B,GACnBA,EAAOC,QACRiW,EAAKokB,2BAA2Bt6B,EAAOH,UAG3CqW,EAAK4kB,mBAAmB96B,IAIpC66B,mBAAoB,SAAU76B,GACrBA,EAAOC,QACR1F,KAAKwgC,WAAW/6B,GAEpBsB,EAAsBtB,IAE1B86B,mBAAoB,SAAU96B,GAC1B,GAAIg7B,GAAkBh7B,EAAOC,MACxB+6B,KACDh7B,EAAOwB,cAAe,EACtBjH,KAAK0gC,WAAWj7B,GAChBA,EAAOwB,cAAe,EACtBxB,EAAOC,OAAS+6B,GAEpB15B,EAAsBtB,IAE1B26B,sBAAuB,WAAA,GAIfpX,GAUI2D,EACAD,EACAiU,EACAC,EACAC,EACAC,EACAC,EACAC,EAEIC,EACKziC,EAEG2tB,EACA6F,EACAkP,EACAC,EA5BhBxlB,EAAO3b,KACPiB,EAAU0a,EAAK1a,QACfsrB,EAAW5Q,EAAK4f,WAEpB,IAAIt6B,EAAQqkB,YAAcrkB,EAAQilB,YAC1BqG,GAAY5Q,EAAKsN,aACjBD,EAASrN,EAAKsN,aAAa7f,SAAS,SAC7BuS,EAAKqN,SACZA,EAASrN,EAAKqN,OAAOzkB,KAAK,+BAEzBykB,GAAWA,EAAO,KACnBA,EAASxrB,KAETmvB,EAASJ,EAAW5Q,EAAKiB,QAAQrY,KAAK,yBAAyBA,KAAK,SAAWoX,EAAKiB,QAAQrY,KAAK,kBAAkBA,KAAK,SACxHmoB,EAAeH,EAAW5Q,EAAKpI,YAAcoI,EAAK1N,MAClD0yB,EAAgBhU,EAAOpoB,KAAK,MAC5Bq8B,EAAiBjU,EAAOpoB,KAAK,YAC7Bs8B,EAAqBF,EAAcjiC,OACnCoiC,EAA4BH,EAAcr8B,OAAOgD,GAAe5I,OAChEqiC,EAA2BJ,EAAcjiC,OAASoiC,EAClDE,EAAmB,EACO,KAA1BrU,EAAO,GAAG1tB,MAAMJ,OAAgBqsB,WAAWyB,EAAO,GAAG1tB,MAAMJ,SAAWmiC,GAAkB,CAExF,IADIC,EAAqBtU,EAAOlpB,IAAI,SAC3BjF,EAAI,EAAGA,EAAIqiC,EAAoBriC,IAChCgJ,EAAiBm5B,EAAcniC,MAE3BwzB,EAAYvkB,KAAKpD,IAAI7L,EAAGA,EAAIuiC,GAC5BG,EAAgBN,EAAex3B,WAAW4oB,GAC1CmP,EAAmBD,EAAgBA,EAAcjiC,MAAMJ,MAAQ,GAC1C,KAArBsiC,EACAhV,EAAcjB,WAAWiW,IAEzBxU,EAAOlpB,IAAI,QAAS,QACpB0oB,EAAc5W,GAAWorB,EAAc18B,GAAGzF,IAC1CmuB,EAAOlpB,IAAI,QAASw9B,IAExBD,GAAoB7U,EAG5BO,GAAajpB,IAAI,QAASu9B,EAAmB,GAC7CrU,EAAOlpB,IAAI,QAASu9B,GACpBhY,EAAOvlB,IAAI,QAASu9B,KAIhCrc,kBAAmB,WACf,GAAIyc,GAAMphC,KAAKqhC,mBACXD,KACAphC,KAAKsoB,uBAAyBljB,GAAMpF,KAAKqhC,kBAAmBrhC,MAC5DxC,EAAEiC,QAAQwF,GAAG,SAAUjF,KAAKsoB,0BAGpC+Y,kBAAmB,WACf,GAAIx1B,GAAO7L,KAAKsF,QAASg8B,EAAc7hC,OAAO8hC,WAAa,EAAI9hC,OAAO8hC,WAAaC,OAAO3iC,KAC1F,OAAOmB,MAAKyhC,sBAAsB51B,EAAMy1B,IAE5CG,sBAAuB,SAAU51B,EAAMy1B,GAAhB,GAEV9iC,GACD4tB,EACAoE,EAHJ4Q,GAAM,CACV,KAAS5iC,EAAI,EAAGA,EAAIqN,EAAKnN,OAAQF,IACzB4tB,EAAMvgB,EAAKrN,GACXgyB,EAAWpE,EAAIvkB,eACf2oB,IAAa9tB,GAA0B,OAAb8tB,IAC1B4Q,GAAM,EACF5Q,EAAW8Q,EACXthC,KAAK0gC,WAAWtU,GAEhBpsB,KAAKwgC,WAAWpU,KAGnBA,EAAI1mB,QAAU0mB,EAAI9mB,UACnB87B,EAAMphC,KAAKyhC,sBAAsBrV,EAAI9mB,QAASg8B,IAAgBF,EAGtE,OAAOA,IAEXjN,YAAa,SAAUhqB,GAAV,GAML8D,GACApD,EANA0I,EAAcvT,KAAKuT,WAEvB,OADApJ,GAAM3M,EAAE2M,GACHoJ,GAGDtF,EAAQ9D,EAAIiD,QAAQpN,KAAKiO,MAAMzK,IAAIxD,KAAKuT,cACxC1I,EAAQoD,EAAM1J,KAAK,aAAasG,MAAMV,GAC1C8D,EAAQA,EAAM,KAAOjO,KAAKiO,MAAM,GAAKsF,EAAcvT,KAAKiO,MACjDA,EAAM1J,KAAK,aAAaN,GAAG4G,IALvBV,GAOfu3B,aAAc,SAAUv5B,GAAV,GAMN8F,GACApD,EANA0I,EAAcvT,KAAKuT,WAEvB,OADApL,GAAO3K,EAAE2K,GACJoL,GAGDtF,EAAQ9F,EAAKiF,QAAQpN,KAAKiO,MAAMzK,IAAIxD,KAAKuT,cACzC1I,EAAQoD,EAAM1J,KAAK,gBAAgBsG,MAAM1C,GAC7C8F,EAAQA,EAAM,KAAOjO,KAAKiO,MAAM,GAAKsF,EAAcvT,KAAKiO,MACjDA,EAAM1J,KAAK,gBAAgBsG,MAAMA,IAL7B1C,GAOfw5B,eAAgB,WACZ,GAAIhmB,GAAO3b,IAIX,OAHI2b,GAAK1I,aAAe0I,EAAKmd,oBACzBnd,EAAK1I,WAAWkrB,QAEhBxiB,EAAKmd,oBACLnd,EAAKuiB,mBAAmBviB,EAAKod,UAC7B,IAEApd,EAAK1a,QAAQ6kB,iBACbnK,EAAK6hB,uBAEL7hB,EAAK8L,gBAET9L,EAAK+D,QAAQjI,IALb,IAOJshB,OAAQ,SAAUloB,GACd,GAAI8K,GAAO3b,KAAMiT,EAAa0I,EAAK1I,WAAY2uB,EAAoBliC,GAAMuV,GAAGmoB,WAAWC,aAAar9B,KAAKiB,QAAQgS,YAAa9K,EAAOy5B,EAAkBz5B,IAEvJ,OADA0I,GAAQ8K,EAAK1N,MAAMzK,IAAImY,EAAKpI,aAAahP,KAAKsM,GAC1CA,EAAMnS,QACFuU,IAAeA,EAAWhS,QAAQsxB,WAClCtf,EAAWkrB,QACXttB,EAAQA,EAAMwM,SAEd1B,EAAK4f,cACL1qB,EAAQA,EAAMrN,IAAIqN,EAAMvQ,IAAI,WACxB,MAAI6H,GACOwT,EAAK+lB,aAAa1hC,MAElB2b,EAAKwY,YAAYn0B,UAIhCiT,IAAe0I,EAAKmd,mBACpB7lB,EAAW5S,MAAMwQ,IAEjB8K,EAAK+hB,WAAW7sB,GACZ8K,EAAKod,SAASr6B,SAAWid,EAAK9K,QAAQnS,QACtCid,EAAKgiB,yBAAwB,GAE5Bx1B,GACDwT,EAAK6hB,uBAET7hB,EAAK+D,QAAQjI,KAEjB,GAEGxE,EAAaA,EAAW5S,QAAUsb,EAAK9K,QAAQvM,OAAO,IAAMiU,KAEvEolB,wBAAyB,SAAUkE,GAC/B,GAAIlmB,GAAO3b,IACP6hC,GACAlmB,EAAKjS,MAAMlG,IAAImY,EAAKlI,cAAclP,KAAK,MAAQ2P,IAAe4tB,KAAK,WAAW,GAAMh/B,KAAK,gBAAgB,GAAMA,KAAK,aAAc,qBAElI6Y,EAAKjS,MAAMlG,IAAImY,EAAKlI,cAAclP,KAAK,MAAQ2P,IAAe4tB,KAAK,WAAW,GAAOh/B,KAAK,gBAAgB,GAAOA,KAAK,aAAc,oBAG5I26B,mBAAoB,WAAA,GACZ9hB,GAAO3b,KACP4wB,EAASjV,EAAK1N,MAAMzK,IAAImY,EAAKpI,YACjCqd,GAAOrsB,KAAK,SAAW2P,IAAepR,KAAK,gBAAgB,GAAOg/B,KAAK,WAAW,GAAOh/B,KAAK,aAAc,eAEhHo7B,mBAAoB,SAAUrtB,GAC1B,GAAI8K,GAAO3b,IACX6Q,GAAQ8K,EAAK1N,MAAMzK,IAAImY,EAAKpI,aAAahP,KAAKsM,GAC1C8K,EAAK4f,cACL1qB,EAAQA,EAAMrN,IAAIqN,EAAMvQ,IAAI,WACxB,MAAOqb,GAAKwY,YAAYn0B,UAGhC6Q,EAAM2Z,KAAK,WACPhtB,EAAEwC,MAAMgqB,YAAYzR,IAAUhU,KAAK2P,IAAepR,KAAK,gBAAgB,GAAOg/B,KAAK,WAAW,GAAOh/B,KAAK,aAAc,gBAE5H6Y,EAAKgiB,yBAAwB,GAC7BhiB,EAAK6hB,uBACL7hB,EAAK+D,QAAQjI,KAEjBimB,WAAY,SAAU7sB,GAClBA,EAAM2Z,KAAK,WACPhtB,EAAEwC,MAAMilB,SAAS1M,IAAUhU,KAAK2P,IAAe4tB,KAAK,WAAW,GAAMh/B,KAAK,aAAc,gBAAgBA,KAAK,gBAAgB,MAGrI06B,qBAAsB,WAAA,GACDv/B,GAAKu3B,EAAkHS,EAY/Hz3B,EAZLmd,EAAO3b,KAAqB+hC,EAAUpmB,EAAK9K,QAASmxB,EAAoBrmB,EAAKM,WAAWhb,QAASi1B,EAAS8L,EAAkB9L,OAAiB+L,IACjJ,IAAK/L,GAAWA,EAAOljB,OAAU2I,EAAK4N,QAGtC0M,EAAUpgB,GAAWqgB,EAAOljB,OAASkjB,EAAOljB,MAAM4I,GAAGwa,QAAUF,EAAOljB,MAAM9M,IAQ5E,IAJAyV,EAAKod,SAASvO,KAAK,WACfgL,EAAW7Z,EAAK6Z,SAASx1B,MACzBiiC,EAAgBzM,EAASS,KAAY,IAEhCz3B,EAAI,EAAGA,EAAIujC,EAAQrjC,OAAQF,IAChCg3B,EAAW7Z,EAAK6Z,SAASuM,EAAQvjC,IACjCP,EAAMu3B,EAASS,GACXgM,EAAgBhkC,GAChB0d,EAAK8L,aAAaxpB,IAAO,QAElB0d,GAAK8L,aAAaxpB,IAIrCikC,iBAAkB,WAAA,GAELC,GADLxmB,EAAO3b,KAAMoiC,IACjB,KAASD,IAAYxmB,GAAK8L,aACtB2a,EAAIjkC,KAAKgkC,EAGb,OADAC,GAAIhkC,OACGgkC,GAEXC,mBAAoB,SAAUjjC,EAAS0O,GACnC,GAAIw0B,GAAW9kC,EAAE4B,GAASuR,KAAK,WAC/BnT,GAAE4B,GAAS4qB,YAAY3R,IAASjL,QAAQ,SAASm1B,WAAW,yBACxDD,GACAA,EAAWA,EAAS1kC,QAAQoC,KAAK0qB,QAAS,IAC1CltB,EAAE4B,GAAS0D,KAAK,KAAMw/B,IAEtB9kC,EAAE4B,GAASmjC,WAAW,MAE1Bz0B,EAAK6C,KAAK,WAAY7C,EAAKhL,KAAK,OAAOA,KAAK,KAAM9C,KAAK0qB,SAASzF,SAAS5M,IAASjL,QAAQ,SAAStK,KAAK,wBAAyB9C,KAAK0qB,SACtI1qB,KAAKwiC,SAAW10B,GAEpB20B,eAAgB,WAAA,GAMRt4B,GACAu4B,EACAC,EACAC,EACAC,EAGQv2B,EAZRlN,EAAUY,KAAKwiC,SACfld,EAAatlB,KAAKiB,QAAQqkB,UACzBlmB,IAAYkmB,IAGbnb,EAAM/K,EAAQ+L,SACdu3B,EAAiBv4B,EAAIiD,QAAQ,SAASjC,SACtCw3B,EAAsBD,EAAe3zB,GAAG,gDACxC6zB,EAAcF,EAAe3zB,GAAG,qEAChC8zB,EAAsBrlC,EAAEwC,KAAKqE,SAASE,KAAK,+BAA+Bu+B,UAAUx5B,OAAO,GAC3Fs5B,IACItd,EAAWC,SACPjZ,EAAWmB,KAAKpD,IAAIiB,GAAQnB,EAAI,GAAInK,KAAKkqB,OAAO/f,EAAIgB,WAAY,GACpEnL,KAAK+iC,iBAAmB/iC,KAAKwlB,kBAAkB9E,UAAUpU,GACzDtM,KAAKwlB,kBAAkBtE,eAAe/W,IAEtCnK,KAAK8f,UAAU9f,KAAKm0B,YAAYhqB,GAAK,GAAI04B,IAG7C7iC,KAAKoE,gBACLpE,KAAKoE,cAAc,GAAG4Z,UAAY6kB,EAAoB7kB,WAErD2kB,GACD3iC,KAAK8f,UAAU1gB,EAAQ,GAAIyjC,KAGnCzjC,QAAS,SAAU0O,GACf,MAAO9N,MAAK8T,YAAYhG,GAAM,IAElCgG,YAAa,SAAUhG,EAAMk1B,EAAgBrvB,GACzC,GAAIvU,GAAUY,KAAKwiC,QAgBnB,OAfA10B,GAAOtQ,EAAEsQ,GACLA,EAAKpP,SACAU,GAAWA,EAAQ,KAAO0O,EAAK,KAChC9N,KAAKqiC,mBAAmBjjC,EAAS0O,GAC5B6F,GACD3T,KAAKyiC,iBAEJO,GACDhjC,KAAK0f,QAAQtG,IAAY3R,QAASqG,MAI1CA,GAAQA,EAAKpP,SACbsB,KAAKijC,eAAiBn1B,EAAK3C,SAAS/B,SAASgN,IAAWvL,MAAMiD,IAE3D9N,KAAKwiC,UAEhBrI,eAAgB,WACRn6B,KAAKwiC,WACLxiC,KAAKwiC,SAASxY,YAAY3R,IAC1BrY,KAAKwiC,SAAW,OAGxB1iB,UAAW,SAAUrY,EAAShD,GAAnB,GAYCwJ,GAXJi1B,EAAqBz7B,EAAQ07B,QAAQpJ,cACrCqJ,EAAsC,OAAvBF,GAAsD,OAAvBA,EAC9C7hB,EAAgB5Z,EAAQ27B,EAAe,aAAe,aACtDC,EAAmB57B,EAAQ27B,EAAe,cAAgB,gBAC1DhiB,EAAkB3c,EAAU2+B,EAAe,aAAe,aAC1DE,EAAqB7+B,EAAU2+B,EAAe,cAAgB,gBAC9DG,EAAiBliB,EAAgBgiB,EACjCjgC,EAAS,EACT2nB,EAAe,EACfC,EAAoB,CACpB/P,KAASmoB,IACLn1B,EAAQzQ,EAAEiK,GAAS2F,QAAQ,SAAS,GACpC6B,GAAQC,KACR6b,EAAe9c,EAAMu1B,WACdv0B,GAAQkc,UACfH,EAAoB/c,EAAMu1B,WAAa9jC,GAAM0U,QAAQ+I,cAG7DiE,EAAkB3T,KAAKuT,IAAII,EAAkB2J,EAAeC,GAExD5nB,EADAge,EAAkBC,EACTA,EACFkiB,EAAiBniB,EAAkBkiB,EACtCD,GAAoBC,EACXC,EAAiBD,EAEjBjiB,EAGJD,EAEbhe,EAASqK,KAAKuT,IAAI5d,EAAS2nB,GAAgBC,EAC3CvmB,EAAU2+B,EAAe,aAAe,aAAehgC,GAE3DghB,aAAc,WAAA,GAKNqf,GACAC,EACA9S,EANAjV,EAAO3b,IACN2b,GAAK1a,QAAQ8S,cAGd0vB,EAAa9nB,EAAK1N,MAAMzK,IAAImY,EAAKpI,aACjCmwB,EAAe/nB,EAAKjS,MAAMyB,SAAS3H,IAAIhG,EAAE,SAAUme,EAAKlI,eACxDmd,EAAS6S,EACT9nB,EAAK1a,QAAQqkB,aACbsL,EAASA,EAAOptB,IAAIkgC,GACpBA,EAAa5gC,KAAKyW,QAEtBvZ,KAAKinB,mBAAqB2J,EAC1BA,EAAO9T,IAAI,YAAc3X,GAAK,SAAWA,GAAK,YAAcA,GAAK,WAAaA,IAC9Eu+B,EAAaz+B,GAAG,UAAYE,GAAIC,GAAMuW,EAAKgoB,gBAAiBhoB,IAAOpX,KAAK,YAAYzB,KAAK,eACzF2gC,EAAW3gC,KAAKyW,GAAUxD,GAAK1L,IAAIo5B,EAAW3gC,KAAKyW,KAAa,EAAG,IAAItU,GAAG,UAAYE,GAAI,iBAAkB,SAAUqN,GAC9GA,EAAE3J,SAAW2J,EAAEa,eACfb,EAAEmsB,6BAGV/N,EAAO3rB,GAAGvF,GAAM0U,QAAQC,MAAQ,aAAelP,GAAK,YAAcA,GAAImR,GAAS,IAAMC,GAASnR,GAAMgO,GAAYuI,IAAO1W,GAAG,QAAUE,GAAIC,GAAMuW,EAAKioB,YAAajoB,IAAO1W,GAAG,WAAaE,GAAIC,GAAMuW,EAAKkoB,WAAYloB,IAAO1W,GAAG,UAAYE,GAAIC,GAAMuW,EAAKmoB,cAAenoB,MAE1QgoB,gBAAiB,SAAUnxB,GACnBA,EAAEuxB,QAAUvxB,EAAEurB,SAAWpoB,GAAK6oB,OAC9Bx+B,KAAKZ,UAAUmF,KAAK,yCAAyCQ,QAC7DyN,EAAEmsB,6BAGVqF,aAAc,SAAU/1B,GACpBjO,KAAKinB,mBAAmBnkB,KAAKyW,OAC7BtL,EAAMnL,KAAKyW,GAAU,IAEzBqqB,YAAa,SAAUpxB,GAAV,GACLpT,GAAUY,KAAKZ,UACf6O,EAAQzQ,EAAEgV,EAAEa,cACZjU,IAAWA,EAAQ2P,GAAG,YACtB3P,EAAQ6lB,SAAS5M,IAEjBrY,KAAK8T,YAAY7F,EAAM1J,KAAKoS,KAEhC3W,KAAKgkC,aAAa/1B,IAEtB41B,WAAY,WACR,GAAIzkC,GAAUY,KAAKZ,SACfA,IACAA,EAAQ4qB,YAAY3R,KAG5ByrB,cAAe,SAAUtxB,GAAV,GAaPyxB,GAZA7kC,EAAUY,KAAKZ,UACf8kC,EAAoBlkC,KAAKwlB,mBAAqBxlB,KAAKwlB,kBAAkB/D,WACrE5Y,EAASrL,EAAEgV,EAAE3J,QACbs7B,GAAa3xB,EAAE4xB,uBAAyBv7B,EAAOkG,GAAG,6BACtD,OAAIm1B,IACA1xB,EAAEC,iBACF,IAEJrT,EAAUA,EAAUA,EAAU5B,EAAEwC,KAAKuT,aAAa/P,IAAIxD,KAAKiB,QAAQqkB,WAAatlB,KAAKiO,MAAQjO,KAAKgO,OAAOzJ,KAAKoS,IACzGvX,EAAQV,SAGTulC,GAAU,EACVE,GAAa3xB,EAAEurB,SAAWpoB,GAAK4oB,KAC/B0F,EAAUjkC,KAAKqkC,QAAQjlC,EAASoT,EAAEyrB,WAElCkG,GAAa3xB,EAAEurB,SAAWpoB,GAAK6oB,OAC/ByF,EAAUjkC,KAAKskC,UAAUllC,EAASoT,EAAEyrB,WAEpCkG,GAAa3xB,EAAEurB,UAAY9iB,GAAQtF,GAAK0oB,KAAO1oB,GAAK2oB,SACpD2F,EAAUjkC,KAAKukC,WAAWnlC,EAASoT,EAAEuxB,OAAQvxB,EAAEyrB,SAAUzrB,EAAE8L,QAAS9L,EAAEa,gBAEtE8wB,GAAa3xB,EAAEurB,UAAY9iB,GAAQtF,GAAK2oB,MAAQ3oB,GAAK0oB,QACrD4F,EAAUjkC,KAAKwkC,UAAUplC,EAASoT,EAAEuxB,OAAQvxB,EAAEyrB,SAAUzrB,EAAE8L,QAAS9L,EAAEa,gBAErE8wB,GAAa3xB,EAAEurB,SAAWpoB,GAAK8uB,WAC/BR,EAAUjkC,KAAK0kC,mBAEfP,GAAa3xB,EAAEurB,SAAWpoB,GAAKgvB,SAC/BV,EAAUjkC,KAAK4kC,iBAEfT,GAAa3xB,EAAEurB,SAAWpoB,GAAKkvB,OAC/BZ,EAAUjkC,KAAK8kC,YAAY1lC,EAASoT,EAAE8L,UAEtC6lB,GAAa3xB,EAAEurB,SAAWpoB,GAAKovB,MAC/Bd,EAAUjkC,KAAKglC,WAAW5lC,EAASoT,EAAE8L,UAErC6lB,GAAa3xB,EAAEurB,SAAWpoB,GAAKqoB,WAC/BiG,EAAUjkC,KAAKilC,gBAAgB7lC,EAASoT,EAAE8L,UAE1C9L,EAAEurB,SAAWpoB,GAAKuvB,OAAS1yB,EAAEurB,SAAWpoB,GAAKwvB,KAC7ClB,EAAUjkC,KAAKolC,gBAAgBhmC,EAASoT,EAAEa,cAAexK,IAEzD2J,EAAEurB,SAAWpoB,GAAK0vB,MAClBpB,EAAUjkC,KAAKslC,cAAclmC,EAASoT,EAAEa,gBAExCb,EAAEurB,SAAWpoB,GAAK4vB,MAClBtB,EAAUjkC,KAAKwlC,cAAcpmC,EAASoT,EAAEa,cAAeb,EAAEyrB,WAEzDgG,IACAzxB,EAAEC,iBACFD,EAAE8gB,oBA3CNl0B,IA8CJolC,UAAW,SAAUplC,EAAS2kC,EAAQ9F,EAAU3f,EAAS1K,GAA9C,GACH9F,GAAMjD,EACNV,EAAM/K,EAAQ+L,SACd1G,EAAY0F,EAAIgB,QA6BpB,OA5BI44B,GACA/jC,KAAKylC,YAAYt7B,GACVmU,GAAWlf,EAAQ2P,GAAG,cAAgB/O,KAAKiB,QAAQklB,YAC1DnmB,KAAK0lC,YAAYtmC,GAAS,IAE1ByL,EAAQpG,EAAUF,KAAK+R,IAAQzL,MAAMV,GACrC2D,EAAO9N,KAAK2lC,oBAAoBlhC,EAAWrF,EAASyL,GAC/CiD,EAAK,KACFmwB,EACIj+B,KAAKuT,aACLzF,EAAO9N,KAAKm0B,YAAYhqB,GACpB3M,EAAE2W,SAASnU,KAAKuT,YAAY,GAAIpJ,EAAI,MACpC2D,EAAOA,EAAKP,QAAQiJ,GAAU,WAElC1I,EAAOA,EAAK1E,SAASgN,GAAY,UAEjCtI,EAAO9N,KAAK4lC,SAASxmC,EAASwU,GAAc,IAGhDnP,EAAYzE,KAAK6lC,qBAAqBphC,GACtCqJ,EAAO9N,KAAK2lC,oBAAoBlhC,EAAWrF,EAASyL,GAChDiD,EAAK,KAAO1O,EAAQ,IACpB+S,GAAW1N,EAAU0G,UAAU,KAI3CnL,KAAK8T,YAAYhG,KAEd,GAEXy2B,WAAY,SAAUnlC,EAAS2kC,EAAQ9F,EAAU3f,EAAS1K,GAA9C,GACJ9F,GAAMjD,EACNV,EAAM/K,EAAQ+L,SACd1G,EAAY0F,EAAIgB,QA6BpB,OA5BI44B,GACA/jC,KAAK8lC,UAAU37B,GACRmU,GAAWlf,EAAQ2P,GAAG,cAAgB/O,KAAKiB,QAAQklB,YAC1DnmB,KAAK0lC,YAAYtmC,GAAS,IAE1ByL,EAAQpG,EAAUF,KAAK+R,IAAQzL,MAAMV,GACrC2D,EAAO9N,KAAK+lC,oBAAoBthC,EAAWrF,EAASyL,GAC/CiD,EAAK,KACFmwB,EACIj+B,KAAKuT,aACLzF,EAAO9N,KAAKm0B,YAAYhqB,GACpB3M,EAAE2W,SAASnU,KAAKiO,MAAM,GAAI9D,EAAI,MAC9B2D,EAAOA,EAAKk4B,QAAQxvB,GAAU,WAElC1I,EAAOA,EAAK1E,SAASgN,GAAY,WAEjCtI,EAAO9N,KAAK4lC,SAASxmC,EAASwU,GAAc,IAGhDnP,EAAYzE,KAAK6lC,qBAAqBphC,GAAW,GACjDqJ,EAAO9N,KAAK+lC,oBAAoBthC,EAAWrF,EAASyL,GAChDiD,EAAK,KAAO1O,EAAQ,IACpB+S,GAAW1N,EAAU0G,UAAU,KAI3CnL,KAAK8T,YAAYhG,KAEd,GAEXu2B,QAAS,SAAUjlC,EAAS6+B,GAAnB,GAEDnwB,GAgBAO,EAjBA5J,EAAYrF,EAAQ+L,SAASA,QAoBjC,OAlBI8yB,IACAnwB,EAAO1O,EAAQ+L,SACf2C,EAAOA,EAAKP,QAAQiJ,GAAU,UAC9B1I,EAAO1O,EAAQ+L,SAAS4D,GAAGyH,IAAW1I,EAAK1E,WAAWnF,GAAG7E,EAAQyL,SAAWiD,EAAK1E,SAASgN,GAAY,WAEtGtI,EAAO9N,KAAKimC,kBAAkBxhC,EAAWrF,GACpC0O,EAAK,KACN9N,KAAKijC,eAAiB,EACtBx+B,EAAYzE,KAAKkmC,mBAAmBzhC,GAAW,GAC/CqJ,EAAO9N,KAAKimC,kBAAkBxhC,EAAWrF,GACrC0O,EAAK,IACLqE,GAAW1N,EAAU0G,UAAU,KAIvCkD,EAAMrO,KAAKijC,gBAAkB,EACjCjjC,KAAK8T,YAAYhG,GACjB9N,KAAKijC,eAAiB50B,GACf,GAEXi2B,UAAW,SAAUllC,EAAS6+B,GAAnB,GAEHnwB,GAgBAO,EAjBA5J,EAAYrF,EAAQ+L,SAASA,QAoBjC,OAlBI8yB,IACAnwB,EAAO1O,EAAQ+L,SACf2C,EAAOA,EAAKk4B,QAAQxvB,GAAU,UAC9B1I,EAAO1O,EAAQ+L,SAAS4D,GAAGyH,IAAW1I,EAAK1E,WAAWnF,GAAG7E,EAAQyL,SAAWiD,EAAK1E,SAASgN,GAAY,YAEtGtI,EAAO9N,KAAKmmC,kBAAkB1hC,EAAWrF,GACpC0O,EAAK,KACN9N,KAAKijC,eAAiB,EACtBx+B,EAAYzE,KAAKkmC,mBAAmBzhC,GACpCqJ,EAAO9N,KAAKmmC,kBAAkB1hC,EAAWrF,GACrC0O,EAAK,IACLqE,GAAW1N,EAAU0G,UAAU,KAIvCkD,EAAMrO,KAAKijC,gBAAkB,EACjCjjC,KAAK8T,YAAYhG,GACjB9N,KAAKijC,eAAiB50B,GACf,GAEXq3B,YAAa,SAAUtmC,EAASgnC,GAAnB,GACLjiC,GAAWnE,KAAK4c,QAAQjM,OAAO6d,iBAAiB/mB,QAAQlD,KAAKvE,KAAKwoB,mBAAmBvnB,QAAQqD,OAAS,YACtGgB,EAAUoC,EAAe6D,EAAsBvL,KAAKsF,UACpDwpB,EAAW3qB,EAAS0G,MAAMrN,EAAE4B,IAC5BuK,EAASy8B,KAAc,EACvB3gC,EAASH,EAAQwpB,GACjBC,EAAWtjB,EAA2BnG,EAAStF,KAAKsF,QAASwpB,EAAUA,EAAWnlB,EAClFolB,IAAY,GACZ/uB,KAAKgvB,cAAcD,EAAUtpB,EAAQ2gC,IAG7CtB,YAAa,SAAU1lC,EAASinC,GAAnB,GAKLnW,GAJA/lB,EAAM/K,EAAQ+L,SACdm7B,EAAen8B,EAAIgB,SACnBo7B,EAAkBvmC,KAAKuT,aAAevT,KAAKuT,YAAYnK,SAAS,SAAS,KAAOk9B,EAAa,GAC7FE,EAAWF,EAAa,KAAOtmC,KAAKgO,MAAM,EAc9C,IAZIq4B,EAEInW,EADAlwB,KAAKuT,YACEvT,KAAKuT,YAAYhP,KAAKkS,GAAe,IAAMF,GAAU,UAErDvW,KAAKiO,MAAM1J,KAAKkS,GAAe,IAAMF,GAAU,WAEnDiwB,GAAYD,KACfC,GAAYxmC,KAAKuT,cACjBpJ,EAAMnK,KAAKm0B,YAAYhqB,IAE3B+lB,EAAO/lB,EAAIf,SAASgN,GAAY,WAEhC8Z,GAAQA,EAAKxxB,OAEb,MADAsB,MAAK8T,YAAYoc,IACV,GAGf8U,WAAY,SAAU5lC,EAASinC,GAAnB,GAKJv4B,GAJA3D,EAAM/K,EAAQ+L,SACdm7B,EAAen8B,EAAIgB,SACnBo7B,EAAkBvmC,KAAKuT,aAAevT,KAAKuT,YAAYnK,SAAS,SAAS,KAAOk9B,EAAa,GAC7FE,EAAWF,EAAa,KAAOtmC,KAAKgO,MAAM,EAU9C,IARIq4B,EACAv4B,EAAO9N,KAAKiO,MAAM1J,KAAKmS,GAAc,IAAMH,GAAU,UAC9CiwB,GAAYD,MACdC,GAAYxmC,KAAKuT,cAClBpJ,EAAMnK,KAAKm0B,YAAYhqB,IAE3B2D,EAAO3D,EAAIf,SAASgN,GAAY,UAEhCtI,GAAQA,EAAKpP,OAEb,MADAsB,MAAK8T,YAAYhG,IACV,GAGf42B,gBAAiB,WACb,QAAK1kC,KAAKiB,QAAQ4kB,WAGlB7lB,KAAKic,WAAW2G,KAAK5iB,KAAKic,WAAW2G,OAAS,IACvC,IAEXgiB,cAAe,WACX,QAAK5kC,KAAKiB,QAAQ4kB,WAGlB7lB,KAAKic,WAAW2G,KAAK5iB,KAAKic,WAAW2G,OAAS,IACvC,IAEX4iB,cAAe,SAAUpmC,EAASwU,EAAcqqB,GAAjC,GAEP91B,GADAs+B,EAAWzmC,KAAKiB,QAAQiS,UAAgC,UAApBlT,KAAKoyB,WAE7C,UAAKqU,GAAYrnC,EAAQ2P,GAAG,SAG5B5G,EAAO3K,EAAE6X,MAAiBjI,QAAQ,gBAC9BjF,EAAK,IAAMA,EAAK,KAAO/I,EAAQ,KAC/BA,EAAU+I,GAEdA,EAAOnI,KAAK4lC,SAASxmC,EAASwU,EAAcqqB,KACxC91B,EAAKzJ,SACLsB,KAAK0mC,eAAetnC,EAAS+I,EAAMA,EAAKiF,QAAQ,WACzC,KAIfk4B,cAAe,SAAUlmC,EAASwU,GAAnB,GAaH+iB,GAZJgQ,EAAStxB,KACToxB,EAA+B,UAApBzmC,KAAKoyB,WACpB,OAAK5d,IAASpV,IAOVqnC,EACAzmC,KAAK2yB,WAAU,IAEXgE,EAAen5B,EAAE4B,GAAS+L,SAASN,QACnC87B,GACAA,EAAO1T,OAEXjzB,KAAKm2B,WAAU,GACXQ,GAAgB,GAChB32B,KAAK8T,YAAY9T,KAAK6Q,QAAQ5M,GAAG0yB,GAAcvtB,SAASmN,IAAS8G,UAGrEpO,GAAQC,MAAQD,GAAQE,QAAU,GAClCrO,SAASe,KAAK6Q,QAElBP,GAAWyB,GAAc,IAClB,KAtBCxU,EAAQ4zB,IAAI2T,GAAQjoC,SACpByT,GAAWyB,GAAc,IAClB,IAsBnBgzB,eAAgB,SAAUxnC,EAAS8T,GAC/B,GAAI/I,GAAM/K,EAAQ+L,QAClB,OAAIhB,GAAI4E,GAAG,oBACP5E,EAAI5F,KAAK,iBAAiBQ,SACnB,KAENmO,IAAY/I,EAAI4E,GAAG,oBACpB5E,EAAI5F,KAAK,iBAAiBQ,SACnB,IAIfkgC,gBAAiB,SAAU7lC,EAASkf,GAAnB,GAKTuoB,GACAjhC,EACAmL,EACA+1B,EAPAnrB,EAAO3b,IACX,IAAKse,GAAY3C,EAAK9I,WAAczT,EAAQ6K,SAAS,YAsBrD,MAnBI48B,GAAclrB,EAAK9I,UAAUg0B,cAC7BjhC,EAAQxG,EAAQ0D,KAAKpD,GAAMoD,KAAK,UAChCiO,EAAa4K,EAAK9I,UAAU9B,aAC5B+1B,EAAQ1nC,EAAQ0D,KAAKpD,GAAMoD,KAAK,WAAa8C,EAC7C+V,EAAK9I,UAAUk0B,SAAS3nC,IACxBynC,EAAY1oC,MACRyH,MAAOA,EACPohC,IAAK,MACLj2B,WAAYA,QAEhB+1B,GAAS,IAAMnrB,EAAK1a,QAAQulB,SAASM,gBAErC+f,EAAcrpC,EAAEmK,KAAKk/B,EAAa,SAAUj3B,GACxC,MAAOA,GAAKhK,QAAUA,IAE1BkhC,GAAS,IAAMnrB,EAAK1a,QAAQulB,SAASK,aAEzCznB,EAAQ0D,KAAK,aAAcgkC,GAC3BnrB,EAAKM,WAAWuN,MAAMqd,IACf,GAEXzB,gBAAiB,SAAUhmC,EAASwU,EAAc/K,GAAjC,GAGTo+B,GAgBAC,EAlBAh0B,EAAWlT,KAAKiB,QAAQiS,UAAYlT,KAAKiB,QAAQiS,SAASgQ,UAAW,EACrEze,EAAYoE,EAAOuE,QAAQ,kBAK/B,OAHKvE,GAAOkG,GAAG,UAAavR,EAAE2W,SAAS/U,EAAQ,GAAIyJ,EAAO,MACtDzJ,EAAUqF,GAEVrF,EAAQ2P,GAAG,OACXk4B,EAAO7nC,EAAQmF,KAAK,WAChB0iC,EAAKvoC,OACLuoC,EAAKliC,QAEL3F,EAAQmF,KAAK2P,IAAexB,SAEzB,KAEP1S,KAAK4mC,eAAexnC,EAAS8T,KAG7Bg0B,EAAY9nC,EAAQmF,KAAK,yBACzB2iC,EAAU,KAAO9nC,EAAQ6K,SAAS,gBAAkB7K,EAAQ6K,SAAS,oBACrEi9B,EAAUx0B,SACH,MAEPQ,GAAarK,EAAOkG,GAAG,iCAClBtK,EAAU,KACXA,EAAYrF,GAEhBY,KAAK0mC,eAAejiC,GAAW,EAAOmP,IAC/B,KAIfmyB,oBAAqB,SAAU93B,EAAO7O,EAAS+nC,GAA1B,GAGTl+B,GACAqD,EAGQe,EANZvD,EAAQ1K,EAAQ4mC,QAAQ5vB,GAC5B,OAAKtM,GAAMpL,SACHuK,EAAOgF,EAAM1J,KAAK+R,IAClBhK,EAAWrD,EAAK4B,MAAMzL,EAAQ+L,UAC9BmB,OAeDxC,EAAMuT,QAdDje,EAAQ6K,SAAS,aACboD,KACJhB,GAAqB9D,EAAcvI,KAAKsF,SAAS,IAAKqI,EAAkB1E,EAAKhF,GAAG,GAAGmF,SAAS,YAAYiU,SAAUhQ,EAAY,EAAG,GAC7HA,EAAW85B,GACJ95B,EAAW85B,GAAe,GAE9B/nC,GAEPA,EAAQ+L,SAASlB,SAAS,gBACnBhB,EAAKK,OAAOF,SAASgN,IAAWiH,QAEpCpU,EAAKhF,GAAGkjC,GAAe/9B,SAASgN,IAAWiH,SAK9DsoB,oBAAqB,SAAU13B,EAAO7O,EAAS+nC,GAA1B,GAGTl+B,GACAqD,EAGQe,EACA/H,EAPZwE,EAAQ1K,EAAQmO,QAAQ6I,GAC5B,OAAKtM,GAAMpL,SACHuK,EAAOgF,EAAM1J,KAAK+R,IAClBhK,EAAWrD,EAAK4B,MAAMzL,EAAQ+L,UAC9BmB,OAgBDxC,EAAMuT,QAfDje,EAAQ6K,SAAS,aACboD,KACA/H,EAAUiD,EAAcvI,KAAKsF,SACjC+G,GAAqB/G,EAAQA,EAAQ5G,OAAS,IAAKiP,EAAkB1E,EAAKhF,GAAG,GAAGmF,WAAWE,QAAS+D,EAAY,EAAG,GAC/GA,EAAW85B,GACJ95B,EAAW85B,GAAe,GAE9B/nC,GAEPA,EAAQ+L,SAASlB,SAAS,gBACnBhB,EAAKK,OAAOF,SAASgN,IAAW9M,OAEpCL,EAAKhF,GAAGkjC,GAAe/9B,SAASgN,IAAW9M,QAK9D89B,kBAAmB,SAAUn5B,EAAO7O,GAAjB,GAKXioC,GAJAx8B,EAAQzL,EAAQ0D,KAAK,aACzB,OAAK+H,IAGDw8B,EAAqB9+B,EAAcvI,KAAKsF,SAAS5G,OACjD2oC,IAAuBp5B,EAAMb,QAAQ,OAAOnD,SAAS,yBAAyB,GACvEY,EAAQw8B,EAEZx8B,GANInI,GAQfujC,kBAAmB,SAAUxhC,EAAWrF,GAArB,GACX0K,GACAK,EAAM/K,EAAQ+L,SACdlC,EAAOxE,EAAU2E,SAASkN,IAC1BhK,EAAWrD,EAAK4B,MAAMV,GACtBU,EAAQ7K,KAAKonC,kBAAkB3iC,EAAWrF,EAC9C,IAAIyL,GAASzL,EAAQ6K,SAAS,YAE1B,MADAH,GAAQkD,EAAmB5N,GACpB0K,EAAM7F,GAAG6F,EAAMpL,OAAS,EAGnC,IADAmM,EAAQ4C,KAAKpD,IAAIF,EAAIf,SAASgN,IAAWvL,MAAMzL,GAAUY,KAAKijC,gBAAkB,GAC5E94B,EAAIF,SAAS,gBACb,MAAOyC,GAAcjI,GAAWH,OAAOgD,GAAerD,GAAG4G,EAE7D,IAAIyB,OAEA,GADAnC,EAAM1F,EAAUF,KAAK,4BAChB4F,EAAI,GAIL,OAHKnK,KAAK2qB,eAAiBvrB,EAAQ+L,SAAS5G,KAAK,qBAAqB7F,SAAWmM,GAC7EA,IAEG6B,EAAcjI,GAAWH,OAAOgD,GAAerD,GAAG4G,OAG7DV,GAAmB,IAAbmC,EAAiB9O,IAAMyL,EAAKhF,GAAGqI,EAAW,EAGpD,OADAxC,GAAQK,EAAIf,SAASgN,IAEVtM,EAAM7F,GADb6F,EAAMpL,OAASmM,EACCA,EAEJ,IAEpBs7B,kBAAmB,SAAU1hC,EAAWrF,GAArB,GACX0K,GAkBAw9B,EAEIC,EACAC,EACKzjC,EAASrF,EArBlByL,EAAM/K,EAAQ+L,SACdlC,EAAOxE,EAAU2E,SAASkN,IAC1BhK,EAAWrD,EAAK4B,MAAMV,GACtBU,EAAQ7K,KAAKonC,kBAAkB3iC,EAAWrF,EAC9C,IAAIkN,OAAkBzB,IAAUnI,GAAatD,EAAQ6K,SAAS,YAC1D,MAAO0D,GAAkBvO,GAAS6E,GAAG,EAazC,IAXA4G,EAAQA,EAAQmB,SAASnB,EAAO,IAAMV,EAAIf,SAASgN,IAAWvL,MAAMzL,GACpEyL,EAAQ4C,KAAKpD,IAAIQ,EAAO7K,KAAKijC,gBAAkB,GAC3C32B,OACAnC,EAAMlB,EAAKhF,GAAG,IACVjE,KAAK2qB,eAAiBxgB,EAAI5F,KAAK,qBAAqB7F,SACpDmM,KAGJV,EAAMlB,EAAKhF,GAAGqI,EAAWlN,EAAQ,GAAGsJ,SAEpC4+B,EAAWz8B,EACX7K,KAAKonC,kBAAkB3iC,EAAWrF,KAAasD,EAG/C,IAFI6kC,EAAkBp9B,EAAIf,SAAS,8CAC/Bo+B,EAAgBD,EAAgBjjC,OAAO,WAClCP,EAAM,EAAGrF,EAAS8oC,EAAc9oC,OAAQqF,EAAMrF,EAAQqF,IACvDwjC,EAAgB18B,MAAM28B,EAAczjC,IAAQ8G,GAC5Cy8B,GAMZ,OAFAz8B,GAAQy8B,EACRx9B,EAAQK,EAAIf,SAASgN,IAEVtM,EAAM7F,GADb6F,EAAMpL,OAASmM,EACCA,EAEJ,IAEpBq7B,mBAAoB,SAAUzhC,EAAWgjC,GAArB,GACZx5B,GAAQxJ,EAAU0G,SAClBzM,EAASsB,KAAKinB,mBAAmBvoB,OACjCgpC,EAAOj6B,KAAKyR,MAAMxgB,EAAS,GAC3BmM,EAAQS,GAAQ2C,EAAM,GAAIjO,KAAKinB,mBAQnC,OAPIwgB,KACAC,OAEJ78B,GAAS68B,GACL78B,GAAS,GAAKA,EAAQnM,KACtBuP,EAAQjO,KAAKinB,mBAAmBhjB,GAAG4G,IAEhCoD,EAAM1J,KAAKkjC,EAAK,SAAW,WAEtC5B,qBAAsB,SAAUphC,EAAWkjC,GAArB,GAKd15B,GACApD,EALAnM,EAASsB,KAAKinB,mBAAmBvoB,MACrC,OAAIA,IAAU,EACH+F,GAEPwJ,EAAQxJ,EAAU0G,SAClBN,EAAQS,GAAQ2C,EAAM,GAAIjO,KAAKinB,oBACnCpc,GAAS88B,EAAQ,MACbA,GAAmB,GAAT98B,GAAcA,GAASnM,GAGhCipC,IAAmB,GAAT98B,GAAcA,EAAQ,GAC1BpG,EAEJzE,KAAKinB,mBAAmBhjB,GAAG4G,GAAOtG,KAAK,gBALnCE,IAOfmhC,SAAU,SAAUxmC,EAASwU,EAAcg0B,GAAjC,GACFC,IAAY,EACZ/5B,EAAO85B,EAAOxoC,EAAQmO,QAAQ6I,GAAY,UAAYhX,EAAQ4mC,QAAQ,iBAY1E,OAXKl4B,GAAKpP,SACNoP,EAAO1O,EAAQ+L,SACXnL,KAAKuT,cACLs0B,EAAYD,GAAQh0B,GAAgB5T,KAAKuT,YAAY,KAAOq0B,GAAQh0B,GAAgB5T,KAAKiO,MAAM,GAC/FH,EAAO9N,KAAKm0B,YAAYrmB,IAExB+5B,IACA/5B,EAAOA,EAAK85B,EAAO,UAAY,WAAW,6DAE9C95B,EAAOA,EAAK1E,SAASgN,IAAawxB,EAAO,QAAU,YAEhD95B,GAEX44B,eAAgB,SAAUtnC,EAAS0O,EAAMG,GACrC,GAAsKi5B,GAAuFY,EAAzPnsB,EAAO3b,KAAM2mC,EAASnpC,EAAE6X,MAAkBid,EAAO3W,EAAKyW,YAAa2V,EAAO94B,GAAQC,KAAM84B,EAAQD,GAAQ94B,GAAQE,QAAU,EAAG0jB,EAAgBlX,EAAK8W,eAA2Bvf,EAAWyI,EAAK1a,QAAQiS,UAAYyI,EAAK1a,QAAQiS,SAASgQ,UAAW,CAOtP,IANAjV,EAAQzQ,EAAEyQ,GAEN65B,EADQ,UAARxV,EACWlzB,EAAQ6K,SAAS,eAEjB7K,EAAQ+L,SAASlB,SAAS,mBAErC0R,EAAKzI,SAAU,CAWf,GAVI1V,EAAE2W,SAAS0e,EAAc,GAAI8T,EAAO,MAChC13B,GAAQg5B,OAASD,EACjBrB,EAAO1T,OAAOpE,SAASqZ,eAAe,SAEtCvB,EAAO1T,OACH8U,GACApB,EAAO1T,UAIdtX,EAAKzI,SAEN,MADAf,IAAWlE,GACX,CAEJ,KAAI0N,EAAKzI,SAASwf,MAiBd,MARI/W,GAAK7H,YADG,UAARwe,EACiBO,EAEAA,EAAczpB,WAAW9E,OAAO8R,IAAWiH,SAEhE6pB,EAAYrU,EAActuB,KAAK,yBAAyB,GACpD2iC,GACAA,EAAUx0B,QAEd,CAhBY,WAAR4f,EACA3W,EAAKgX,aAELhX,EAAK+a,UACLoR,GAAW,GAenBh6B,GACA6N,EAAK7H,YAAYhG,GAEjBk6B,GACAlnC,SAASe,KAAK6Q,QAElBP,GAAWlE,GAAO,GACbiF,KAGA40B,IAAah6B,GAAQA,KAClBwkB,IAASzY,GACJrc,EAAEme,EAAKvc,WAAW6K,SAASkM,KAC5BwF,EAAKuX,SAASvX,EAAKvc,WAGvBuc,EAAKyX,QAAQzX,EAAKvc,UAAU+L,YAIxCoS,SAAU,WACN,GAAI5B,GAAO3b,KAAMiO,EAAQ0N,EAAK1N,MAAOnP,EAAS6c,EAAK1a,QAAQnC,OAAQ8d,EAAUjB,EAAKlU,OAC7EmV,GAAQ7N,GAAG,SACZ6N,EAAUA,EAAQV,KAAK,UAAU/Q,UAErCwQ,EAAKiB,QAAUA,EAAQqI,SAAS,mCAC5BnmB,IACA6c,EAAKiB,QAAQnZ,IAAI6V,GAAQxa,GACzBmP,EAAMxK,IAAI6V,GAAQ,SAEtBqC,EAAKwsB,eAETA,YAAa,WAAA,GAKDj6B,GAJJjN,EAAUjB,KAAKiB,QACf0a,EAAO3b,IACXA,MAAKqoB,UAAYpnB,EAAQslB,UAAW,GAAQ7mB,GAAM0U,QAAQqY,UAA+B,UAAnBxrB,EAAQslB,QAAyC,WAAnBtlB,EAAQslB,OACxGvmB,KAAKqoB,YACDna,EAAOlO,KAAK4c,QAAQqI,SAAS,iBAAiB/I,KAAK,aAAexc,GAAM61B,GAAK,uBAAyB71B,GAAM61B,GAAK,oBAA2B71B,GAAM61B,GAAK,+BAA+BpqB,SAC1LnL,KAAKooB,KAAOpoB,KAAKooC,YAAYl6B,GAC7BlO,KAAK65B,KAAO75B,KAAKooB,KAAKyR,OAClB54B,EAAQnC,OACRkB,KAAKooB,KAAK3gB,QAAQ0D,SAAS1H,IAAI6V,GAAQrY,EAAQnC,QAE/CkB,KAAKooB,KAAK3gB,QAAQ0D,SAAS1H,IAAI6V,GAAQtZ,KAAK4c,QAAQ,GAAG3d,MAAMH,QAEjEkB,KAAK03B,eAAiB,QACtB/b,EAAKiB,QAAQ3X,GAAG,gBAAkBE,GAAI,SAAUqN,GAC5CA,EAAE8gB,oBAEN3X,EAAKiB,QAAQ3X,GAAG,cAAgBE,GAAI,OAAQ,SAAUqN,GAElD,MADAA,GAAEC,kBACK,IAEXzS,KAAK65B,KAAKzd,KAAK,OAAQ,WACfT,EAAK4f,cACL5f,EAAKiW,qBACLjW,EAAKsR,8BACLtR,EAAKuR,2BACLvR,EAAKwR,0BACLxR,EAAK4Y,+BAKrB6T,YAAa,SAAUl6B,GACnB,GAAIka,GAAO1oB,GAAM2oC,KAAKnsB,KAAKhO,GACvBo6B,YACIC,aACIC,cAAc,EACdtsB,MAAM,EACNusB,gBAAgB,EAChBC,cAAc,EACdC,iBAAiB,KAI7B,OAAOvgB,IAEXvE,OAAQ,WACJ,GAAqC7V,GAAjC2N,EAAO3b,KAAMiO,EAAQ0N,EAAK1N,KAC9BD,GAAQC,EAAM1J,KAAK,UACdyJ,EAAMtP,SACPsP,EAAQxQ,EAAE,YAAY0G,SAAS+J,IAEnC0N,EAAK3N,MAAQA,EAAMlL,KAAK,OAAQ,aAEpC8lC,YAAa,WAAA,GACQjc,GAAQ1e,EAA6P6c,EA0B9Q9B,EAiBI+S,EACA8M,EAoBAxU,EAhER1Y,EAAO3b,KAAqBiB,EAAU0a,EAAK1a,QAASqkB,EAAarkB,EAAQqkB,WAAYwjB,EAAmBxjB,KAAe,GAAQA,EAAWC,UAAY5J,EAAK6J,kBAAmBrI,GAAazd,GAAM0U,QAAQoJ,qBAAuBsrB,EAAmBppC,GAAM0U,QAAQ+I,YAAc,CAC/QmI,KACAqH,EAAShR,EAAKiB,QAAQxT,SAAS,kBAC1BujB,EAAO,KACRA,EAASnvB,EAAE,iCAAiCiS,aAAakM,EAAK1N,QAElE0e,EAAOlpB,IAAIwX,GAAQ,eAAiB,gBAAiBqK,EAAWC,QAAUpI,EAAY,EAAIA,GAC1FlP,EAAQzQ,EAAE,yBACN0d,IACAjN,EAAMnL,KAAK,cAAe,GAE9BmL,EAAMpP,MAAM8c,EAAK1N,MAAM,GAAGhP,MAAMJ,OAChCoP,EAAMvD,OAAOiR,EAAKjS,OAClBijB,EAAOxe,QAAQzD,OAAOlN,EAAE,wDAAwDkN,OAAOuD,IACvF0N,EAAKtX,QAAUsX,EAAK1N,MAAM9C,SACtBwQ,EAAKtX,QAAQ0K,GAAG,+BAAiCiH,GAAMuF,GAAWE,mBAClEE,EAAKtX,QAAUsX,EAAKtX,QAAQ8G,UAE3BwQ,EAAKtX,QAAQ0K,GAAG,iDACjB4M,EAAKtX,QAAUsX,EAAK1N,MAAMiO,KAAK,oDAAoD/Q,UAEnF29B,GACAntB,EAAKotB,2BAETje,EAAa6B,EAAOvjB,SAAS,uBAC7BuS,EAAKoN,YAAc+B,EAAWtnB,IAAImY,EAAKtX,SACnC2kB,EAASrN,EAAKiB,QAAQrY,KAAK,kBAC3BykB,EAAOtqB,SACPid,EAAKoN,YAAcpN,EAAKoN,YAAYvlB,IAAIwlB,EAAO5f,SAAS,yBAE5D0hB,EAAW3O,OAAO,SAAWhX,IAAIiX,KAAK,SAAWjX,GAAI,SAAUqN,GACvDmJ,EAAKqtB,cAAgBhpC,KAAKqS,YAC1BsJ,EAAKoN,YAAYqF,IAAI5b,EAAEa,eAAehB,WAAWrS,KAAKqS,cAG1DiT,EAAWC,QACX5J,EAAKtX,QAAQE,KAAK,+BAA+B4X,OAAO,SAAWhX,IAAIiX,KAAK,SAAWjX,GAAI,WACvFwW,EAAKoN,YAAY1W,WAAWrS,KAAKqS,YAC7BsJ,EAAKvX,gBACLuX,EAAKvX,cAAc,GAAG4Z,UAAYhe,KAAKge,cAI3C+d,EAAUzW,EAAWyW,QACrB8M,EAAmBltB,EAAKM,WAAWhb,QAAQggB,SAC3C8a,IACApgB,EAAKqgB,iBAAmB6M,GAE5BltB,EAAKtX,QAAQ8X,OAAO,SAAWhX,IAAIiX,KAAK,SAAWjX,GAAI,SAAUqN,GAC7DmJ,EAAKqtB,YAAchpC,KAAKqS,WACxBsJ,EAAKoN,YAAYqF,IAAI5b,EAAEa,eAAehB,WAAWsJ,EAAKqtB,aAClDrtB,EAAKvX,eAAiBoO,EAAEa,eAAiBsI,EAAKtX,QAAQ,KACtDsX,EAAKvX,cAAc,GAAG4Z,UAAYhe,KAAKge,WAEvC+d,GACI/7B,KAAKge,UAAYhe,KAAKwe,aAAexe,KAAKye,oBAAwB9C,EAAKstB,yBAA2BttB,EAAKqgB,iBAAmBrgB,EAAKM,WAAW4F,UAC1IlG,EAAKutB,wBAA0BvtB,EAAKqgB,iBACpCrgB,EAAKqgB,iBAAmBrgB,EAAKqgB,iBAAmB6M,EAChDltB,EAAKM,WAAWhb,QAAQ86B,SAAU,EAClCpgB,EAAKstB,yBAA0B,EAC/BttB,EAAKM,WAAWgF,SAAStF,EAAKqgB,qBAItC3H,EAAgB1Y,EAAKtX,QAAQsM,KAAK,sBAClC0jB,GACAA,EAAc1X,UAElB0X,EAAgB30B,GAAM20B,cAAc1Y,EAAKtX,SACrCgwB,GAAiBA,EAAc8U,UAC/BxtB,EAAK0Y,cAAgBA,EACrBA,EAAc8U,QAAQ/sB,KAAK,SAAU,SAAU5J,GAC3CmJ,EAAKoN,YAAY1W,YAAYG,EAAEqL,OAAOM,GAClCxC,EAAKvX,eACLuX,EAAKvX,cAAc4Z,WAAWxL,EAAEqL,OAAOI,KAG/CtC,EAAKpJ,IAAIsF,GAAW,SAAUrF,GAC1BA,EAAEqL,OAAOjB,QAAQqI,SAAS,yBAM9C8jB,yBAA0B,WACtB,GAAIptB,GAAO3b,IACP2b,GAAK6J,mBACL7J,EAAK6J,kBAAkB7I,UAE3BhB,EAAK6J,kBAAoB,GAAI9J,IAAkBC,EAAKtX,SAChD4X,WAAYN,EAAKM,WACjBK,WAAY,WACR,MAAOX,GAAKytB,qBAEhBxmB,KAAM,WACFjH,EAAK0tB,yBAETC,OAAQ,WACJ3tB,EAAK4tB,oBAGb5tB,EAAK6J,kBAAkBpJ,KAAKlE,GAAQ9S,GAAMuW,EAAK6tB,iBAAkB7tB,KAErE6tB,iBAAkB,WACd,GAAI7tB,GAAO3b,IACX2b,GAAK8tB,sBACD9tB,EAAKsY,6BACLtY,EAAK+X,2BAA4B,EACjC/X,EAAKgX,YACLhX,EAAK+X,2BAA4B,IAGzC8F,mBAAoB,WAChB,MAAOx5B,MAAKi0B,4BAA8Bj0B,KAAKqzB,4BAA8BrzB,KAAK0pC,2BAEtFrW,yBAA0B,WACtB,MAAOrzB,MAAKwlB,mBAAqBxlB,KAAKoyB,cAAgBtY;EAE1Dma,yBAA0B,WACtB,MAAOj0B,MAAKwlB,mBAAqBxlB,KAAKoyB,cAAgBvY,IAE1D6vB,wBAAyB,WACrB,MAAO1pC,MAAKwlB,mBAA0C,UAArBxlB,KAAKoyB,aAE1CQ,sBAAuB,WAAA,GACfjX,GAAO3b,KACPslB,EAAa3J,EAAK6J,mBAClB7J,EAAK0X,4BAA8B1X,EAAKsY,8BACpC3O,EAAW/E,sBACX+E,EAAWrF,yBACJqF,EAAW7E,oBAClB6E,EAAWtF,wBAIvBgN,oCAAqC,WACjC,GAAIxH,GAAoBxlB,KAAKwlB,iBACzBA,IACAA,EAAkBtF,gCAG1BmpB,sBAAuB,WAAA,GAOfl/B,GACAhC,EAPAwT,EAAO3b,KACP2pC,EAAgBhuB,EAAKuY,mBACrB0V,EAAcD,EAAc32B,MAC5BiJ,EAAaN,EAAKM,WAClB4tB,EAAaluB,EAAK0X,2BAClByW,EAAanuB,EAAKsY,4BAGjB4V,GAAcC,IAAeF,GAAe3tB,EAAW8tB,UAAUH,EAAYjkC,IAAKsW,EAAW4d,UAC1FgQ,GACAluB,EAAK+X,2BAA4B,EACjC/X,EAAKyX,QAAQwW,GACbjuB,EAAK4tB,kBACEO,IACP3/B,EAAMwR,EAAK3N,MAAM5E,SAASzG,EAAWoX,GAAW6vB,EAAYjkC,MAC5DwC,EAAO3K,EAAE2M,GAAKf,SAASzG,EAAWgX,GAAOgwB,EAAc/jC,QACnDuC,EAAK,KACLwT,EAAK+X,2BAA4B,EACjC/X,EAAKuX,SAAS/qB,GACdwT,EAAK4tB,oBAIjB5tB,EAAK+X,2BAA4B,GAErC6V,eAAgB,WAAA,GACR5tB,GAAO3b,KACPgqC,GAAeruB,EAAKuY,oBAAsBtuB,MAC1CitB,EAAgBlX,EAAK8W,cACrBI,KAAkB1e,GAAS0e,EAAc,GAAIxd,OAAoBsG,EAAKsuB,sBAClEtuB,EAAK0X,2BACLR,EAActuB,KAAK5B,EAAW+W,GAAeswB,IAAczlC,KAAK+T,IAAWrU,GAAG,GAAGyO,QAC1EiJ,EAAKsY,4BACZpB,EAActuB,KAAK+T,IAAWrU,GAAG,GAAGyO,UAIhDu3B,kBAAmB,WACf,GAAItuB,GAAO3b,IACX,QAAQ2b,EAAKsY,4BAA8BtY,EAAK0X,6BAA+B1X,EAAK6J,kBAAkB5E,kBAAkBjF,EAAK8W,iBAEjIgX,oBAAqB,WAAA,GAMb9C,GACAnrB,EANAG,EAAO3b,KACP6yB,EAAgBlX,EAAK8W,eACrBmX,EAAc/W,EAAgBlX,EAAKwW,mBAAmBU,GAAiB,KACvEgX,EAAaluB,EAAK0X,2BAClByW,EAAanuB,EAAKsY,4BAGjB4V,GAAcC,IAAeF,IAC9BjuB,EAAKgY,sBACLgT,EAASnpC,EAAE6X,MACPwd,GAAiB8T,EAAO,IAAMxyB,GAAS0e,EAAc,GAAI8T,EAAO,MAChEA,EAAO9X,SACPrT,EAAS9b,GAAMwqC,eAAevD,EAAQjnC,GAAMuV,IACxCuG,GAAU3F,GAAW2F,EAAOnb,QAAUsmC,EAAO53B,GAAG6K,MAChD4B,EAAOnb,MAAMsmC,EAAO7H,OACpBtjB,EAAOkE,QAAQjI,MAGnBoyB,EACAluB,EAAKuY,gBACDlhB,MAAO42B,EACPhkC,MAAO+gC,EAAOv5B,QAAQ,IAAM1N,GAAMoD,KAAK4W,IAAiB,KAAK5W,KAAKpD,GAAMoD,KAAK4W,MAE1EowB,IACPnuB,EAAKuY,gBACDlhB,MAAO42B,EACPhkC,MAAOitB,EAAc/vB,KAAKpD,GAAMoD,KAAK6W,SAKrDga,oBAAqB,WACjB,GAAIhY,GAAO3b,IACP2b,GAAK6J,oBACL7J,EAAKuY,eAAiB,OAG9BnM,0BAA2B,WACvB,GAAIpM,GAAO3b,IACX2b,GAAKgY,sBACDhY,EAAK6J,mBAAqB7J,EAAK6J,kBAAkB/d,SACjDkU,EAAK6J,kBAAkB7I,UAE3BhB,EAAK6J,kBAAoB,MAE7B2kB,wBAAyB,WAAA,GAGbC,GAFJzuB,EAAO3b,IACP2b,GAAK1a,QAAQglB,YACTmkB,EAAmBzuB,EAAK1N,MAAM9C,SAAS/B,SAAS,IAAMqP,IACtD2xB,EAAiB1rC,SACjBid,EAAK4O,QAAQ,UAAW,WACpB,OAASpmB,SAAUimC,EAAiBxpC,SAExCwpC,EAAiBh+B,UAEhBuP,EAAKM,YAAeN,EAAKM,WAAW4d,OAAOn7B,SAC5C0rC,EAAmB5sC,EAAEme,EAAKmN,uBAAuBzf,YAAYsS,EAAK1N,OAClE0N,EAAK4O,QAAQ,UAAW,WACpB,OACIpmB,SAAUimC,EAAiBxpC,MAC3B+P,gBAMpB05B,iBAAkB,SAAUh4B,GACxB,GAAmJi4B,GAA/I3uB,EAAO3b,KAAMuqC,EAAiB,0BAA2BC,EAAY,eAAiBD,EAAiB,WAAYrkB,EAAYvK,EAAKuK,SACpIvK,GAAK1a,QAAQqkB,YAAc3J,EAAKiB,QAAQ7N,GAAG,cAC3Cu7B,EAAW3uB,EAAK1N,MAAM9C,SAAS/B,SAAS,IAAMmhC,GAC9C5uB,EAAKyN,wBAA0BhkB,GAAMuW,EAAK0uB,iBAAkB1uB,GACvDA,EAAKM,YAAeN,EAAKM,WAAW4d,OAAOn7B,OAarC4rC,EAAS,KAChBA,EAASl+B,SACL8Z,GACAA,EAAU/J,OAAO,SAAUR,EAAKyN,2BAf/BkhB,EAAS,KACVA,EAAW9sC,EAAEgtC,GAAWtmC,SAASyX,EAAK1N,MAAM9C,UACxC+a,GACAA,EAAU9J,KAAK,SAAUT,EAAKyN,0BAGlCzN,EAAKjS,QACL4gC,EAASzrC,MAAM8c,EAAKjS,MAAM7K,SACrB4rC,MAAMvf,WAAW7Y,EAAY,MAC9BsJ,EAAKtX,QAAQgO,WAAWA,KASpCsJ,EAAKsR,8BACLtR,EAAKuR,2BACDvR,EAAKlI,cAA8C,IAA9BkI,EAAK1N,MAAM,GAAGoS,cACnC1E,EAAK1N,MAAM,GAAGhP,MAAMJ,MAAQ,SAIxCouB,4BAA6B,WACzB,GAAIjtB,KAAKiB,QAAQqkB,YAActlB,KAAKyT,aAAc,CAC9C,GAAqbi3B,GAAjbl3B,EAAcxT,KAAK0J,MAAMyB,SAAU2f,EAAatX,EAAYrI,SAAUw/B,EAAe3qC,KAAK4c,QAAQ,GAAGyD,YAAarX,EAAShJ,KAAK+kB,UAAW5H,EAAYzd,GAAM0U,QAAQ+I,YAAatR,EAAO7L,KAAKyT,aAAalP,KAAK,2DAA4DqmC,EAAgBp3B,EAAYjP,KAAK,qDAAsD1F,EAAQ+M,EAAaC,GAAOg/B,EAAqBj/B,EAAag/B,EACja5hC,GAAS,IACTnK,GAAS0W,GAAWvV,KAAKyT,aAAalP,KAAK,wBAA0ByE,GAErEnK,GAAS8rC,IACT9rC,EAAQ8rC,EAAe,EAAIxtB,GAE/Bnd,KAAKyT,aAAajQ,IAAIxD,KAAKoE,eAAevF,MAAMA,GAChDisB,EAAW,GAAG7rB,MAAMJ,MAAQisB,EAAW3f,SAAStM,QAAUA,EAAQ,EAAI,KACtE2U,EAAYhQ,IAAIxD,KAAKiO,OAAOpP,MAAMgsC,GAC9B7qC,KAAKwlB,oBAAsBrK,KAC3BwvB,GAAgBxtB,GAEpBnd,KAAKqE,QAAQ,GAAGpF,MAAMJ,MAAQ8rC,EAAe9rC,EAAQ,EAAI,KACrDmB,KAAKipB,cAAgBjpB,KAAKipB,aAAavqB,SACvCsB,KAAKipB,aAAapqB,MAAMA,GACxB6rC,EAAa1qC,KAAKgpB,OAAOzkB,KAAK,uBAC9BmmC,EAAW,GAAGzrC,MAAMJ,MAAQisB,EAAW,GAAGzK,YAAc,KACxDqqB,EAAWthC,WAAWiU,QAAQxe,MAAMgsC,MAIhD3mB,kBAAmB,WAAA,GAC0BplB,GAoBjCgsC,EApBJnvB,EAAO3b,KAAMiB,EAAU0a,EAAK1a,QAAiB0rB,EAAShR,EAAKiB,QAAQxT,SAAS,kBAAmB+T,EAAYzd,GAAM0U,QAAQ+I,YACzH4tB,GAAoB9pC,EAAQqkB,gBAAkBxmB,MAC9CmC,GAAQqkB,YAAc3J,EAAKiB,QAAQ7N,GAAG,cAClCg8B,GAAqD,KAAjCpvB,EAAKtX,QAAQ,GAAGpF,MAAMH,SAC1C6c,EAAKtX,QAAQ,GAAGpF,MAAMH,OAASisC,GAEnCjsC,EAAS6c,EAAKiB,QAAQkC,cACtBhgB,GAAU2W,GAAYkX,GAClBhR,EAAKuL,OAASvL,EAAKuL,MAAMzf,QAAQsH,GAAG,cACpCjQ,GAAU2W,GAAYkG,EAAKuL,MAAMzf,UAEjCxG,EAAQ4R,YACR/T,GAAU2W,GAAYkG,EAAKiB,QAAQxT,SAAS,wBAE5CnI,EAAQwkB,UACR3mB,GAAU2W,GAAYkG,EAAKiB,QAAQxT,SAAS,qBAE5CuS,EAAKgN,iBACL7pB,GAAU2W,GAAYkG,EAAKiB,QAAQxT,SAAS,oBAE5C0hC,EAAkB,SAAU9gC,GAC5B,GAAIghC,GAAeC,CACnB,SAAIjhC,EAAG,GAAG/K,MAAMH,SAGZksC,EAAgBhhC,EAAGlL,SAEvBkL,EAAGlL,OAAO,QACVmsC,EAAYjhC,EAAGlL,SACXksC,GAAiBC,GACjBjhC,EAAGlL,OAAO,KACH,IAEXkL,EAAGlL,OAAO,KACH,KAEPgsC,EAAgBnvB,EAAKiB,WACjB9d,EAAqB,EAAZqe,GACLxB,EAAKvX,gBACL+Y,EAAYxB,EAAK1N,MAAM,GAAGnM,YAAc6Z,EAAK1N,MAAM9C,SAAS,GAAGkV,YAAclD,EAAY,EACzFxB,EAAKvX,cAActF,OAAOA,EAASqe,IAEvCxB,EAAKtX,QAAQvF,OAAOA,IAEpB6c,EAAKtX,QAAQvF,OAAmB,EAAZqe,EAAgB,MAKpDisB,kBAAmB,WAAA,GAUX8B,GATAvvB,EAAO3b,KAAMmrC,EAAaxvB,EAAKuO,OAAOvO,EAAK3N,OAAOtP,OAAQigB,EAAYhD,EAAKyvB,UAC/E,OAAmB,KAAfD,EACOxsB,GAENhD,EAAKyvB,aACNzvB,EAAKyvB,WAAazsB,EAAYlJ,GAAYkG,EAAK1N,OAASk9B,EACxDxvB,EAAK0vB,KAAO1sB,EACZhD,EAAK2vB,UAAY,GAEjBJ,EAAmBz1B,GAAYkG,EAAK1N,OAASk9B,EAC7CxsB,IAAcusB,IACdvvB,EAAK2vB,YACL3vB,EAAK0vB,MAAQH,EACbvvB,EAAKyvB,WAAazvB,EAAK0vB,KAAO1vB,EAAK2vB,WAEhC3sB,IAEXiF,YAAa,WACT,GAAyCiC,GAArClK,EAAO3b,KAAMiB,EAAU0a,EAAK1a,QAAmBgb,EAAahb,EAAQgb,UACxEA,GAAapX,GAAQoX,IAAgBtL,KAAMsL,GAAeA,EACtDnX,GAAcmX,KACdpc,GAAOoc,GACHhO,MAAO0N,EAAK1N,MACZ4lB,OAAQlY,EAAKrW,UAEjBugB,EAAW5kB,EAAQ4kB,SACf/gB,GAAc+gB,IAAaA,EAAS5E,WAAave,IACjDuZ,EAAWgF,SAAW4E,EAAS5E,WAGnCtF,EAAKM,YAAcN,EAAKG,gBACxBH,EAAKM,WAAWE,OAAO1E,GAAQkE,EAAKG,iBAAiBK,OAAOlG,GAAU0F,EAAKsM,kBAAkB9L,OAAOjG,GAAOyF,EAAKuM,gBAEhHvM,EAAKG,gBAAkB1W,GAAMuW,EAAKI,QAASJ,GAC3CA,EAAKsM,iBAAmB7iB,GAAMuW,EAAK4vB,cAAe5vB,GAClDA,EAAKuM,cAAgB9iB,GAAMuW,EAAK6vB,OAAQ7vB,IAE5CA,EAAKM,WAAa/G,GAAW4N,OAAO7G,GAAYG,KAAK3E,GAAQkE,EAAKG,iBAAiBM,KAAKnG,GAAU0F,EAAKsM,kBAAkB7L,KAAKlG,GAAOyF,EAAKuM,gBAE9IsjB,OAAQ,WACJxrC,KAAKyrC,WAAU,IAEnBF,cAAe,WACXvrC,KAAKyrC,WAAU,IAEnBtW,aAAc,SAAU3iB,GAAV,GACsHk5B,GAAYvjC,EAAM1C,EAAuC4I,EAAyE4E,EAAY04B,EAAeC,EAAYC,EAAentC,EA6BhTg6B,EA7BJ/c,EAAO3b,KAAMgO,EAAQ2N,EAAK3N,MAAOgF,EAAQR,EAAEQ,MAAO7I,EAAMwR,EAAK3N,MAAMzJ,KAAK,MAAQ7E,GAAMoD,KAAK,OAAS,IAAMkQ,EAAMrN,IAAM,KAAgCizB,EAAQzuB,EAAIF,SAAS,SAAelG,EAAM4X,EAAKuO,OAAOlc,GAAOnD,MAAMV,GAAMoiB,EAAW5Q,EAAKvX,aAInP,IAHImoB,IACAmf,EAAa/vB,EAAKwY,YAAYhqB,IAE9BA,EAAI3G,IAAIkoC,GAAYtiC,SAAS,gBAAgB1K,SAAWid,EAAK1a,QAAQ8kB,YACrE5b,EAAI3G,IAAIkoC,GAAYtiC,SAAS,yCAAyCohB,KAAK,WACvEriB,EAAO3K,EAAEwC,MACTyF,EAASsE,EAAY4R,EAAKrW,SAASqW,EAAKqW,UAAU7pB,IAC9C1C,EAAOG,QAAU4M,EAAE5M,QACduC,EAAK8B,SAAS,eAGf9B,EAAK8c,SAAS,gBAFdtJ,EAAK2Z,aAAantB,EAAM1C,EAAQuN,UAMzC,KAAK7I,EAAIF,SAAS,mBAAoB,CAiCzC,IAhCA0hC,EAAgBnuC,IAAIgG,IAAI2G,GACpBoiB,IACAle,GAAOuqB,EAAQjd,EAAK+M,qBAAuB/M,EAAK8M,mBAAmBzV,GACnE24B,EAAgBA,EAAcnoC,IAAIkoC,GAClCA,EAAW7S,YAAYxqB,IAE3BsN,EAAK4O,QAAQ,UAAW,WACpB,OAASpmB,SAAUwnC,EAAc/qC,SAErCyN,GAAOuqB,EAAQjd,EAAKqK,eAAiBrK,EAAKoK,aAAa/S,GACvD7I,EAAI0uB,YAAYxqB,GAChBA,EAAMsN,EAAKuO,OAAOlc,GAAO/J,GAAGF,GACxB20B,IAAiBlD,SAAUxiB,IAC3BuZ,IACApiB,EAAMA,EAAI3G,IAAIkoC,GACdA,EAAa/vB,EAAKwY,YAAY9lB,GAAK,GACnCwD,GAAgBxD,EAAI,GAAIq9B,GACxBr9B,EAAMA,EAAI7K,IAAIkoC,GACdhT,EAAYv6B,MAAOq3B,SAAUxiB,KAEjC2I,EAAK4O,QAAQ,UAAW,WACpB,OACIpmB,SAAUkK,EAAIzN,MACd+P,KAAM+nB,KAGdzlB,EAAa0I,EAAK1a,QAAQgS,YACrBA,GAAc0I,EAAKmd,qBAAuB3uB,EAAIF,SAAS,qBACxD0R,EAAKod,OAAO1qB,GAEhBw9B,EAAgBF,EAAcviC,SAAS,yCACvCwiC,EAAav9B,EAAIjF,SAAS,yCACrBrF,EAAM,EAAGrF,EAASid,EAAKrW,QAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACtD0B,EAASkW,EAAKrW,QAAQvB,GACtBoE,EAAOyjC,EAAW3nC,GAAGF,GACjBkP,GAAc44B,EAAc5nC,GAAGF,GAAKkG,SAAS,qBAC7C9B,EAAK8c,SAAS,mBAGtBtJ,GAAK+D,QAAQ,cACT9P,KAAMvB,EACNsC,KAAMqC,EACNuiB,GAAItgB,OAIhB6O,UAAW,WACP,GAAiBlH,GAAbjB,EAAO3b,KAAe6lB,EAAWlK,EAAK1a,QAAQ4kB,QAC9CA,KACAjJ,EAAUjB,EAAKiB,QAAQxT,SAAS,oBAC3BwT,EAAQle,SACTke,EAAUpf,EAAE,4CAA4C0G,SAASyX,EAAKiB,UAEtEjB,EAAKuL,OACLvL,EAAKuL,MAAMvK,UAGXhB,EAAKuL,MADe,gBAAbrB,IAAyBA,YAAoBnmB,IAAMuV,GAAG62B,MAChDjmB,EAEA,GAAInmB,IAAMuV,GAAG62B,MAAMlvB,EAAS/c,MAAWgmB,GAAY5J,WAAYN,EAAKM,cAErFN,EAAKuL,MAAM9K,KAAK,aAAc,SAAU5J,GAChCmJ,EAAK+D,QAAQ,QAAUkD,KAAMpQ,EAAE3H,SAC/B2H,EAAEC,qBAKlBuS,QAAS,WAAA,GACgI0lB,GAIzHr8B,EAsCA1E,EA1CRgS,EAAO3b,KAAM+Q,EAAa4K,EAAKM,WAAWlL,aAAc7C,EAAO,GAAIya,EAAiBhN,EAAKgN,eAAgB1nB,EAAU0a,EAAK1a,QAAqB+nB,EAASrN,EAAKqN,QAAUrN,EAAKiB,QAAQrY,KAAK,iBACvLokB,IACAza,EAAO1Q,EAAEme,EAAKowB,YAAYpjB,EAAe5X,KACrCiY,EAAOtqB,QACH2P,EAAMH,EACVyN,EAAK4O,QAAQ,UAAW,WACpB,OAASpmB,SAAU6kB,EAAOpoB,SAE9BooB,EAAO6P,YAAYxqB,GACnB2a,EAASrN,EAAKqN,OAAS3a,GAGnB2a,EAASrN,EAAKqN,OADd/nB,EAAQqkB,WACerkB,EAAQ4kB,SAAW3X,EAAKuB,aAAakM,EAAKiB,QAAQxT,SAAS,qBAAuB8E,EAAKhK,SAASyX,EAAKiB,SAErG1O,EAAKuB,aAAakM,EAAK3N,OAGtD2N,EAAK4O,QAAQ,UAAW,WACpB,OACIpmB,SAAU6kB,EAAOzkB,KAAK,4CAA4C3D,MAClE+P,KAAMrQ,GAAIqb,EAAKrW,QAAS,SAAU8mB,GAC9B,OACI3mB,OAAQ2mB,EACR3C,UAAW1Y,EAAWqb,EAAIxmB,cAKnCojB,IAAWrN,EAAKqN,SACvBrN,EAAKqN,OAASA,GAEdA,EAAOtqB,SACHuC,EAAQqkB,aACRolB,EAAa1hB,EAAOlmB,KAAK,eAAgBsG,SAAS,uBAClDuS,EAAKoN,YAAcvrB,EAAEme,EAAKoN,YAAYzkB,OAAO,WACzC,OAAQ9G,EAAEwC,MAAM+O,GAAG,yBACpB9G,WAAWzE,IAAIknC,IAElB/uB,EAAKoR,cACL/D,EAAOzkB,KAAK,SAASd,IAAI,QAASkY,EAAKoR,cAEvC2d,IACI/gC,EAASgS,EAAKtX,QAAQgO,aACtBpR,EAAQqkB,cAAe,GAAQrkB,EAAQqkB,WAAWC,UAClD5b,EAASgS,EAAKiB,QAAQrY,KAAK,8BAA8B8N,cAE7Dq4B,EAAWr4B,WAAW1I,KAG1BgS,EAAKvX,gBACLuX,EAAKqwB,4BACLrwB,EAAKsR,8BACLtR,EAAK4Y,4BAGbwX,YAAa,SAAUE,GACnB,GAAItwB,GAAO3b,KAAMkO,EAAO,GAAIiP,EAAazd,GAAM0U,QAAQqY,SAAuC,EAA5B/sB,GAAM0U,QAAQ+I,WAChF,OAAIxB,GAAK1a,QAAQqkB,YACbpX,EAAO1Q,EAAE,qEAAuE0d,GAAQ,mBAAqB,IAAM,WAAa+wB,EAAY,gCAC5ItwB,EAAKuwB,YAAYh+B,EAAK3J,KAAK,UAC3B2J,EAAKzK,IAAIwX,GAAQ,eAAiB,gBAAiBkC,GAC5CjP,GAEJ,gCAAkC+9B,EAAY,YAEzDE,YAAa,WAAA,GACQC,GAA2C3mC,EAAiE4mC,EAAa1mB,EAAUD,EAAY5b,EA8CnJ/F,EAASrF,EAEVyJ,EAhDRwT,EAAO3b,KAAYsF,EAAUyE,EAAY4R,EAAKrW,SAAkBrE,EAAU0a,EAAK1a,QAASmlB,EAAanlB,EAAQmlB,WAAsDkmB,EAAwB3kC,GAAKgU,EAAKrW,QAAS,SAAUsK,GACpN,MAAOA,GAAKtK,UAAY5C,IACzBhE,OAAS,EAAG4uB,EAAWttB,KAAKqoB,UAAWkkB,EAAe,SAAU/5B,GAC/DmJ,EAAK+D,QAAQrI,IACTzR,MAAO4M,EAAE5M,MACTnB,UAAW+N,EAAE/N,aAElB+nC,EAAe,SAAUh6B,GACxBmJ,EAAK+D,QAAQnI,IACT3R,MAAO4M,EAAE5M,MACTnB,UAAW+N,EAAE/N,aAElBgoC,EAAgB,SAAUhlC,GACzB0K,GAAW1K,EAAQ2F,QAAQ,UAAU,IACtCs/B,EAAc,SAAUl6B,GACnBmJ,EAAK+D,QAAQ,QAAUthB,KAAMoU,EAAEpU,OAC/BoU,EAAEC,kBAEFkJ,EAAKgY,sBACDhY,EAAKM,WAAWhb,QAAQ86B,UACxBpgB,EAAKM,WAAWhb,QAAQ86B,QAAU,KAClCpgB,EAAKqgB,iBAAmBrgB,EAAKM,WAAWhb,QAAQggB,SAChDtF,EAAKM,WAAWgF,SAAStF,EAAKM,WAAWhb,QAAQggB,aAG1D0rB,EAAgB,SAAUn6B,GACrBmJ,EAAK+D,QAAQ,UACTpb,OAAQkO,EAAElO,OACVsB,MAAO4M,EAAE5M,QAEb4M,EAAEC,kBAEFkJ,EAAKgY,sBACDhY,EAAKM,WAAWhb,QAAQ86B,UACxBpgB,EAAKM,WAAWhb,QAAQ86B,QAAU,KAClCpgB,EAAKqgB,iBAAmBrgB,EAAKM,WAAWhb,QAAQggB,SAChDtF,EAAKM,WAAWgF,SAAStF,EAAKM,WAAWhb,QAAQggB,aAG1D0I,EAAW1oB,EAAQ0oB,QAC1B,IAAIvD,EAMA,IALyB,iBAAdA,KACPA,MAEJzK,EAAKokB,2BAA2Bz6B,GAChCwE,EAAQ4C,EAAciP,EAAKjS,OAClB3F,EAAM,EAAGrF,EAASoL,EAAMpL,OAAQqF,EAAMrF,EAAQqF,IACnD0B,EAASH,EAAQvB,GACboE,EAAO2B,EAAM7F,GAAGF,GACf0B,EAAOd,UAAYc,EAAOG,QAASuC,EAAKrF,KAAK,QAAUpD,GAAM61B,GAAK,WACnE6W,EAAOjkC,EAAKwI,KAAK,mBACby7B,GACAA,EAAKzvB,UAETgJ,EAAWlgB,EAAOkgB,YAAa,GAASS,EAAWT,YAAa,GAAS1kB,EAAQ0kB,YAAa,GAAQ9lB,MAAWoB,EAAQ0kB,UAAYinB,SAAUnnC,EAAOkgB,cAAgBinB,UACtKlnB,KAAazkB,EAAQykB,YAAcjgB,EAAOigB,cAAe,GAASU,EAAWV,cAAe,IAAQ7lB,IAASuoB,KAAMzM,EAAKyM,MAAQnnB,EAAQykB,WAAYjgB,EAAOigB,YACvJjgB,EAAOigB,YAAcjgB,EAAOigB,WAAWzJ,aACvCyJ,EAAWmnB,aAAc,EACzBnnB,EAAWonB,YAAcrnC,EAAOigB,WAAWzJ,YAE3CyJ,IACAA,EAAW5W,OAASrJ,EAAOqJ,QAE/Bu9B,GACIpwB,WAAYN,EAAKM,WACjB8X,OAAQtuB,EAAOsuB,OACfzuB,QAAS8gB,EAAW9gB,QACpBqgB,SAAUA,EACVD,WAAYA,EACZc,SAAUJ,EAAWI,SACrBumB,MAAOpxB,EACP8wB,cAAeA,EACf3sC,KAAMysC,EACN3U,KAAM4U,EACNpkB,KAAMzM,EAAKyM,KACXhqB,KAAMsuC,EACNM,UAAWL,EACXroC,OAAQgpB,EAAW,yBAA2B,GAC9C/kB,eAAgB+jC,GAAyB7mC,EAAOkpB,YAAa,GAASpmB,EAAcjD,GAAS5G,OAAS,GAEtGirB,IACA0iB,EAAY1iB,SAAWA,GAE3BxhB,EAAK8kC,gBAAgBZ,KAKrC5P,aAAc,WACV,MAAOj/B,GAAEwC,KAAK0J,OAAOnF,KAAK,MAAMD,OAAO,WACnC,GAAIkL,GAAKhS,EAAEwC,KACX,QAAQwP,EAAGvF,SAAS,kBAAoBuF,EAAGvF,SAAS,uBAG5DijC,YAAa,WAAA,GAC6CziB,GAAY3gB,EAAO3B,EAgC5DpE,EAASrF,EAWNyuC,EACAlsC,EA5CZ0a,EAAO3b,KAAMsF,EAAUyE,EAAY4R,EAAKrW,SAAmC8nC,EAAa,SAAU56B,GAC9FmJ,EAAK+D,QAAQtI,IACTxR,MAAO4M,EAAE5M,MACTnB,UAAW+N,EAAE/N,aAElBgoC,EAAgB,SAAUhlC,GACzB0K,GAAW1K,EAAQ2F,QAAQ,UAAU,IACtCu/B,EAAgB,SAAUn6B,GACrBmJ,EAAK+D,QAAQ,UACTpb,OAAQkO,EAAElO,OACVsB,MAAO4M,EAAE5M,QAEb4M,EAAEC,kBAEFkJ,EAAKgY,sBACDhY,EAAKM,WAAWhb,QAAQ86B,UACxBpgB,EAAKM,WAAWhb,QAAQ86B,QAAU,KAClCpgB,EAAKqgB,iBAAmBrgB,EAAKM,WAAWhb,QAAQggB,SAChDtF,EAAKM,WAAWgF,SAAStF,EAAKM,WAAWhb,QAAQggB,aAG1DosB,EAAa,SAAU76B,GACtBmJ,EAAK+D,QAAQpI,IACT1R,MAAO4M,EAAE5M,MACTnB,UAAW+N,EAAE/N,aAElBihB,EAAa/J,EAAK1a,QAAQykB,UAIjC,IAHIA,SAAqBA,GAAW4M,MAAQjvB,IAAUqiB,EAAW4M,KAAKvmB,QAAQ,cAC1E2Z,GAAa,GAEbA,IAAe/J,EAAK1a,QAAQmlB,WAE5B,IADAtc,EAAQ4C,EAAciP,EAAKjS,OAClB3F,EAAM,EAAGrF,EAASoL,EAAMpL,OAAQqF,EAAMrF,EAAQqF,IACnDoE,EAAO2B,EAAM7F,GAAGF,GACZuB,EAAQvB,GAAK2hB,cAAe,GAAUpgB,EAAQvB,GAAKY,UAAYW,EAAQvB,GAAK6B,QAASuC,EAAKrF,KAAK,QAAUpD,GAAM61B,GAAK,WACpH9K,EAAatiB,EAAKwI,KAAK,mBACnB8Z,GACAA,EAAW9N,UAEf8N,EAAatiB,EAAKwI,KAAK,yBACnB8Z,GACAA,EAAW9N,UAEXwwB,EAAmB7nC,EAAQvB,GAAK2hB,WAChCzkB,EAAUpB,MAAW6lB,EAAYynB,GACjClxB,WAAYN,EAAKM,WACjB8X,OAAQzuB,EAAQvB,GAAKgwB,OACrBjlB,OAAQxJ,EAAQvB,GAAK+K,OACrB29B,cAAeA,EACfne,MAAOhpB,EAAQvB,GAAKuqB,OAAShpB,EAAQvB,GAAK6B,MAC1C9F,KAAMstC,EACNxV,KAAMyV,EACNjlB,KAAMzM,EAAKyM,KACXyG,OAAQ8d,IAERQ,GAAoBA,EAAiB3mB,WACrCvlB,EAAQulB,SAAW3mB,IAAO,KAAU6lB,EAAWc,SAAU2mB,EAAiB3mB,WAE1E2mB,GAAoBA,EAAiBlxB,aACrChb,EAAQ4rC,aAAc,EACtB5rC,EAAQ6rC,YAAcK,EAAiBlxB,YAEvCkxB,GAAoBA,EAAiBjQ,MACrC/0B,EAAKmlC,sBAAsBrsC,GAE3BkH,EAAKolC,gBAAgBtsC,KAMzCusC,WAAY,WAAA,GAKJ9X,GACA/L,EACArkB,EAAqCogB,EAAsC+nB,EAA8Cd,EAgBpHnuC,EACDkvC,EAAmBthB,EAAkBuhB,EAA+CC,EAA0Bp+B,EAAiB5J,EAM3HioC,EAKArnB,EAlCR7K,EAAO3b,IACX,IAAK2b,EAAKwU,gBAqBV,IAjBIxG,EAAWhO,EAAK1a,QAAQ0oB,SACxBrkB,EAAUyE,EAAY4R,EAAKrW,SAAUogB,EAAa/J,EAAK1a,QAAQykB,WAAY+nB,EAAY9xB,EAAKjS,MAAMnF,KAAK,iBAAkBooC,EAAgB,SAAUn6B,GAC3ImJ,EAAK+D,QAAQ,UACTpb,OAAQkO,EAAElO,OACVsB,MAAO4M,EAAE5M,QAEb4M,EAAEC,kBAEFkJ,EAAKgY,sBACDhY,EAAKM,WAAWhb,QAAQ86B,UACxBpgB,EAAKM,WAAWhb,QAAQ86B,QAAU,KAClCpgB,EAAKqgB,iBAAmBrgB,EAAKM,WAAWhb,QAAQggB,SAChDtF,EAAKM,WAAWgF,SAAStF,EAAKM,WAAWhb,QAAQggB,aAIjEjhB,KAAK8tC,cAAc9tC,KAAKic,WAAWuN,QAAQ9qB,QAClCF,EAAI,EAAGA,EAAI8G,EAAQ5G,OAAQF,IAMhC,GALuB4tB,EAAM9mB,EAAQ9G,GAAImvC,EAAYhyB,EAAK1a,QAAQykB,WAAWioB,UAAWC,GAAmB,EAAOp+B,EAAKhS,EAAE,SAAUoI,EAAQwmB,EAAIxmB,MAC3IwmB,EAAI1mB,QACJ8J,EAAGhK,OAEPioC,EAAU/iC,OAAO8E,GACb5J,GAASwmB,EAAI1G,cAAe,EAAO,CAUnC,GATImoB,EAAczhB,EAAI1G,YAAc0G,EAAI1G,WAAWvd,SACnDulC,EAAoB/xB,EAAK1a,QAAQgb,WAC7ByxB,YAA6Bx4B,MAC7Bw4B,EAAoB/xB,EAAK1a,QAAQgb,WAAWhb,SAE5CulB,EAAW3mB,IAAO,KAAU6lB,EAAWc,UACvC4F,EAAI1G,YACJ7lB,IAAO,EAAM2mB,EAAU4F,EAAI1G,WAAWc,UAEtCqnB,EAAYnS,WAAY,EAAO,CAC/BlsB,EAAGtB,KAAK,SACR,UAEA2/B,EAAY5xB,aACZyxB,EAAoBG,EAAY5xB,WAChC2xB,GAAmB,GAEnBxhB,EAAI1G,YAAc0G,EAAI1G,WAAWioB,YACjCA,EAAYvhB,EAAI1G,WAAWioB,WAE/BjY,GACIjwB,OAAQ2mB,EACRnQ,WAAYN,EAAKM,WACjByxB,kBAAmBA,EACnBE,iBAAkBA,EAClBhoC,MAAOA,EACP4gB,SAAUA,EACVuN,OAAQ3H,EAAI2H,OACZ+B,SAAU+X,EAAY/X,SACtBiY,MAAOF,EAAYE,MACnBC,WAAYH,EAAYG,WACxBC,mBAAoBJ,EAAYI,mBAChCC,UAAWL,EAAYK,UACvBC,cAAeN,EAAYM,cAC3BC,SAAUP,EAAYO,SACtBT,UAAWA,EACXU,cAAeR,EAAYQ,cAC3Bxf,OAAQ8d,GAERhjB,IACA+L,EAAS/L,SAAWA,GAExBnsB,EAAE,WAAWsF,KAAKpD,GAAMoD,KAAK,SAAU8C,GAAO1B,SAASsL,GAAI8+B,gBAAgB5Y,OAE3ElmB,GAAGtB,KAAK,WAIpBqgC,UAAW,WAAA,GAC+C9oC,GAAQ+oC,EAAgBrmC,EAQtE2B,EACK/F,EAASrF,EATlBid,EAAO3b,KAAMsF,EAAUyE,EAAY4R,EAAKrW,SAAwCqgB,EAAWhK,EAAK1a,QAAQ0kB,SAAU+mB,EAAc,SAAUl6B,GAClImJ,EAAK+D,QAAQ,QAAUthB,KAAMoU,EAAEpU,OAC/BoU,EAAEC,iBAEFkJ,EAAKgY,sBAGjB,IAAIhO,EAAU,CAEV,IADI7b,EAAQ4C,EAAciP,EAAKjS,OACtB3F,EAAM,EAAGrF,EAASoL,EAAMpL,OAAQqF,EAAMrF,EAAQqF,IACnD0B,EAASH,EAAQvB,GACb0B,EAAOkgB,YAAa,IAAUlgB,EAAOd,SAAWc,EAAOG,QACvDuC,EAAO2B,EAAM7F,GAAGF,GAChByqC,EAAiBrmC,EAAKwI,KAAK,qBACvB69B,GACAA,EAAe7xB,UAEnBxU,EAAKrF,KAAK,QAAUpD,GAAM61B,GAAK,QAAS9vB,EAAOG,OAAO6oC,kBAAkB5uC,MAAW8lB,EAAUlgB,EAAOkgB,UAChG1J,WAAYN,EAAKM,WACjBqhB,MAAM,EACNh5B,OAAQ,yBACRuqB,OAAQ6d,KAIpB5iC,GAAQ,OAGhB6Z,SAAU,SAAUre,GAAV,GAC+BC,GAAmCg6B,EAAuEmP,EAqBvIC,EArBJhzB,EAAO3b,KAAMiO,EAAQ0N,EAAK1N,MAAgBpC,EAAOoC,EAAM1J,KAAK,OAAoBqqC,EAAUjzB,EAAKlU,QAAQlD,KAAK,8BAA4C0X,EAAaN,EAAK1a,QAAQgb,UAoBtL,IAnBA3W,EAAUA,EAAQ5G,OAAS4G,EAAUhF,GAAI2N,EAAM1J,KAAK,MAAO,SAAUiL,EAAIzL,GACrEyL,EAAKhS,EAAEgS,EACP,IAAImW,GAAWnW,EAAG1M,KAAKpD,GAAMoD,KAAK,aAAc4iB,EAAalW,EAAG1M,KAAKpD,GAAMoD,KAAK,eAAgBuyB,EAAO7lB,EAAG1M,KAAKpD,GAAMoD,KAAK,SAAU+P,EAAYrD,EAAG1M,KAAKpD,GAAMoD,KAAK,cAAe8C,EAAQ4J,EAAG1M,KAAKpD,GAAMoD,KAAK,UAAWwrB,EAAQ9e,EAAG1M,KAAKpD,GAAMoD,KAAK,UAAWspC,EAAO58B,EAAG1M,KAAKpD,GAAMoD,KAAK,QAIxR,OAHK8C,KACDA,EAAQ4J,EAAG9R,OAAOE,QAAQ,gBAAiB,MAG3CgI,MAAOA,EACPyvB,KAAMA,EACN/G,MAAOA,EACP3I,SAAuB,UAAbA,EACVD,WAA2B,UAAfA,EACZ7S,UAAyB,UAAdA,EACXu5B,KAAMA,EACNtW,SAAUtmB,EAAG1M,KAAKpD,GAAMoD,KAAK,aAC7BjE,MAAOgN,EAAK5H,GAAGF,GAAKN,IAAI,YAGhC8B,IAAYoW,EAAK1N,MAAM1J,KAAK,YAAY7F,OAAS,KAAOud,IAAeA,EAAWyN,YAC9E/N,EAAK1a,QAAQqkB,WAAY,CAIzB,GAHIqpB,EAAiBrpC,EACrBi6B,EAAah3B,EAAcjD,GAC3BA,EAAUmD,EAAiBnD,GACvBi6B,EAAW7gC,OAAS,GAAwB,IAAnB4G,EAAQ5G,OACjC,KAAUoJ,OAAM,iDAEpBuH,IAAqBsM,EAAKlU,QAAQlD,KAAK,oBAAqBoqC,GAC5DrpC,EAAUi6B,EAAWx3B,OAAOzC,GAEhCqW,EAAKrW,QAAUD,EAAiBC,EAASC,GACrCqpC,EAAQlwC,QAAUid,EAAKrW,QAAQ5G,SAC/BgwC,EAAc3kC,EAAY4R,EAAKrW,SAC/BhF,GAAIsuC,EAAS,SAAUp/B,GAAV,GAELtJ,GACAnC,CAFJyL,GAAKhS,EAAEgS,GACHtJ,EAAKsJ,EAAG1M,KAAK,MACbiB,EAAMrE,GAAMsM,SAASwD,EAAG1M,KAAK,eAC7BoD,IACAwoC,EAAY3qC,GAAKiC,iBAAmBnG,GAAO6uC,EAAY3qC,GAAKiC,kBAAoBE,GAAIA,QAI5F1I,EAAEmK,KAAKoC,EAAY4R,EAAKrW,SAAU,SAAU8mB,GACxC,MAAOA,GAAInZ,aACZvU,SACHid,EAAK8L,gBACL9L,EAAKmd,oBAAqB,EAC1Bnd,EAAKiB,QAAQ3X,GAAGC,GAAQC,GAAI,cAAgB+O,GAAe9O,GAAMuW,EAAKkzB,eAAgBlzB,IACtFA,EAAKiB,QAAQ3X,GAAGC,GAAQC,GAAI,cAAgB+O,GAAe9O,GAAMuW,EAAKmzB,qBAAsBnzB,MAGpGmzB,qBAAsB,SAAUt8B,GAC5B,GAAImJ,GAAO3b,KAAM+uC,EAAWvxC,EAAEgV,EAAE3J,QAASg5B,EAAUkN,EAASjN,KAAK,WAAYkN,EAAaD,EAAS3hC,QAAQ,oBAAoB6hC,cAC3HtzB,KAASqzB,IAGTnN,EACAlmB,EAAKod,OAAOiW,EAAWn+B,SAEvB8K,EAAKgmB,mBAGbkN,eAAgB,SAAUr8B,GACtB,GAAImJ,GAAO3b,KAAMmK,EAAM3M,EAAEgV,EAAE3J,QAAQuE,QAAQ,MAAO8hC,GAAe/kC,EAAIF,SAASsO,GAC1EoD,KAASxR,EAAIiD,QAAQ,oBAAoB6hC,iBAGzCC,EACAvzB,EAAKod,OAAO5uB,GAEZwR,EAAKuiB,mBAAmB/zB,KAGhC4a,QAAS,WACL,GAAIyE,GAAQxpB,KAAKic,WAAWuN,OAC5B,OAAOA,GAAQA,EAAM9qB,OAAS,GAElCywC,MAAO,SAAUppB,EAAazgB,EAAS8pC,EAAKC,GAArC,GACoHtrC,GAA8B+xB,EAG9IrwB,EAAQ4vB,EAEXzvB,EALA+V,EAAO3b,KAAM01B,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,kBAAmB0Z,EAAY5Z,EAAS4Z,UAAgB5wC,EAAS4G,EAAQ5G,OAAkByR,GACvJslB,WACAzyB,MAAO,GACM4L,EAAa+M,EAAKgP,cAAepa,KAAgBvH,EAAS2S,EAAKoJ,UAAWhR,EAAc4H,EAAK1a,QAAQ8S,YACtHw7B,EAAY7vC,GAAMoD,KAAK,SAEvB0sC,EAAoB,EACxB,KAAKzpB,EAAa,CAqBd,IApBAA,EAAc,MACVqpB,GACA7+B,EAAUpS,KAAK,SAEfyQ,GACA2B,EAAUpS,KAAK,gBAEfoS,EAAU7R,SACVqnB,GAAe,WAAaxV,EAAUlS,KAAK,KAAO,KAElDK,IACAqnB,GAAe,IAAMrmB,GAAMoD,KAAK,OAAS,OAASpD,GAAM+vC,KAAK,MAAO/Z,EAAS4Z,WAAa,MAE9FvpB,GAAe,eACX/c,EAAS,IAAMqmC,IACftpB,GAAehjB,EAAWiG,IAE1B4F,IACAmX,GAAe,8FAAgGpR,GAAY,KAAO8F,GAAS,6BAE1I1W,EAAM,EAAGA,EAAMrF,EAAQqF,IACxB0B,EAASH,EAAQvB,GACjB+xB,EAAWrwB,EAAOqwB,SAClBT,QAAcS,GACdlwB,EAAQH,EAAOG,MACX+V,EAAKyW,cAAgBvY,IAAUjU,IAC/BH,EAAOtC,WAAasC,EAAOtC,eACvBwY,EAAK6J,oBACL/f,EAAOtC,WAAWosC,GAAa3pC,GAEnC4pC,EAAoB7zB,EAAK+zB,mBAAmB9pC,EAAO0pC,GACnD7pC,EAAOtC,WAAW,SAAWsC,EAAOtC,WAAW,UAAY,GACvDsC,EAAOtC,WAAW,SAAS4I,QAAQyjC,GAAqB,IACxD/pC,EAAOtC,WAAW,UAAYqsC,IAGlC/pC,EAAOd,UACPc,EAAOtC,WAAasC,EAAOtC,eACe,IAA/BsC,EAAOtC,WAAW,SACzBsC,EAAOtC,WAAW,UAAY,kBAE9BsC,EAAOtC,WAAW,SAAW,kBAGrC4iB,GAAe,MAAQ7iB,EAAoBuC,EAAOtC,YAC9C4Q,IACAgS,GAAe,sBAAyBtgB,EAAOO,iBAAiBE,GAAK,KAEzE6f,GAAe,oBACfA,GAAepK,EAAKoa,UAAUtwB,EAAQ0K,GACtC4V,GAAe,OAEnBA,IAAe,QAGnB,MADAA,GAAcrmB,GAAMo2B,SAAS/P,EAAa2P,GACtCvlB,EAAMnN,MAAQ,EACPoC,GAAM2gB,EAAa5V,EAAMslB,SAE7B1P,GAEX2pB,mBAAoB,SAAU9pC,EAAO0pC,GACjC,GAAIK,EACJ,OAAI/pC,IAAS0pC,GACTK,EAAiC,MAApB/pC,EAAMgqC,OAAO,GAAalwC,GAAM+vC,KAAK7pC,EAAO0pC,EAAY,gBAAkBA,EAAY,iBAAoB1pC,EAAQ,KACxH,MAAQ0pC,EAAY,OAASA,EAAY,aAAeA,EAAY,mBAAqBK,EAAa,6BAE1G,IAEXE,gBAAiB,SAAUpqC,GACvB,GAAIkW,GAAO3b,KAAM01B,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,kBAAmBE,EAAWrwB,EAAOqqC,eAAgBza,QAAcS,GAAUp4B,EAAO+H,EAAO6oB,OAAS7oB,EAAOG,OAAS,EAMxL,OALIyvB,KAAS7b,GACT9b,EAAOgC,GAAMo2B,SAASA,EAAUJ,OACzBL,IAAShyB,KAChB3F,EAAOo4B,GAEJp4B,GAEXq4B,UAAW,SAAUtwB,EAAQ0K,GACzB,GAAoLpM,GAAKrF,EAArLid,EAAO3b,KAAM01B,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,kBAAmBE,EAAWrwB,EAAOqwB,SAAUwZ,EAAY5Z,EAAS4Z,UAAW1pC,EAAQH,EAAOG,MAAOsI,EAAO,GAAiBY,EAASrJ,EAAOqJ,OAAQumB,QAAcS,GAAUhmB,EAAerK,EAAOsuB,MACvQ,IAAItuB,EAAOd,QAAS,CAChB,GAAIE,GAAQY,EAAOd,SAAU,CACzB,IAAKZ,EAAM,EAAGrF,EAAS+G,EAAOd,QAAQjG,OAAQqF,EAAMrF,EAAQqF,IAEpDmK,GADAzI,EAAOd,QAAQZ,GAAK0C,QACZ/G,GAAMoP,OAAO,2BAAgCrJ,EAAOd,QAAQZ,GAAK0C,QAASkV,EAAKub,cAAczxB,EAAOd,QAAQZ,IAAMnG,QAAQ+c,GAAoB,OAAO/c,QAAQ,MAAO,QAEpK+d,EAAKub,cAAczxB,EAAOd,QAAQZ,IAAMnG,QAAQ+c,GAAoB,MAGpF,OAAOzM,GAEX,MAAOyN,GAAKub,cAAczxB,EAAOd,SAAS/G,QAAQ+c,GAAoB,OAE1E,MAAIlV,GAAOwN,WACA8H,IAEX7M,GAAQyN,EAAKo0B,wBAAwBnqC,EAAO0pC,GACxCja,IAAS7b,IACTrJ,EAAMslB,QAAQ,OAAStlB,EAAMnN,OAAS8yB,EACtC5nB,GAAQ,cAAgBiC,EAAMnN,MAAQ,IAAMssC,EAAY,KACxDn/B,EAAMnN,SACCqyB,IAAShyB,GAChB6K,GAAQ4nB,EACDhmB,GAAgBA,EAAapR,QAAUoG,GAAcgL,EAAa,KAAO,SAAWA,GAAa,IAAMlK,GAC9GsI,GAAQ,WAAaxO,GAAMswC,UAAUtgC,GAAgBI,IAAelS,QAAQ+c,GAAoB,OAAS,IACzGzM,GAAQ,cACHwnB,EAASua,eACV/hC,GAAQohC,EAAY,KAExBphC,GAAQtI,EAAQ,KAChBsI,GAAQ,0BAERA,GAAQzI,EAAOF,QAAU,KAAO,KAC5BuJ,IACAZ,GAAQ,iBAAmBY,EAAOlR,QAAQ8c,GAAc,QAAU,MAElE9U,GACAA,EAAQlG,GAAM+vC,KAAK7pC,EAAO0pC,GAC1BphC,GAAQtI,EAAQ,aAAiBA,GAEjCsI,GAAQ,KAERY,IACAZ,GAAQ,KAEZA,GAAQ,KAELA,IAEX6hC,wBAAyB,SAAUnqC,EAAO0pC,GACtC,GAAIK,EACJ,OAAI/pC,IAAS0pC,GACTK,EAAiC,MAApB/pC,EAAMgqC,OAAO,GAAalwC,GAAM+vC,KAAK7pC,EAAO0pC,EAAY,gBAAkBA,EAAY,iBAAoB1pC,EAAQ,KACxH,MAAQ0pC,EAAY,OAASA,EAAY,aAAeA,EAAY,mBAAqBK,EAAa,+CAE1G,IAEXxrB,WAAY,WACR,GAAIxI,GAAO3b,KAAMiB,EAAU0a,EAAK1a,QAASgb,EAAaN,EAAKM,WAAYjT,EAASiT,EAAWuN,QAASR,EAASrN,EAAKqN,QAAUrN,EAAKiB,QAAQrY,KAAK,kBAAmBwM,EAAakL,EAAWwN,YAAailB,EAAc3kC,EAAY4R,EAAKrW,SAAU4qC,EAAgBnmC,EAAYxB,EAAcoT,EAAKrW,UAAWA,EAAUrE,EAAQqkB,WAAavb,EAAYtB,EAAiBkT,EAAKrW,UAAYopC,EAAayB,EAAyCxoC,GAAKD,EAAewoC,GAAgB,SAAUzqC,EAAQoF,GAC1d,MAAOpF,GAAO6rB,2BAAuC,IAAVzmB,IAC3CulC,EAA4CzoC,GAAKD,EAAepC,GAAU,SAAUG,GACpF,MAAOA,GAAO6rB,2BAEtB,IAAIrwB,EAAQqkB,YAAc4qB,EAAcxxC,OAAQ,CAC5C,GAAIuC,EAAQ8kB,aAAe9kB,EAAQ+kB,eAC/B,KAAUle,OAAM,+DAEpB6T,GAAKoK,YAAcpK,EAAKwzB,MAAMluC,EAAQ8kB,YAAazgB,GAAS,GAAO,GACnEqW,EAAKqK,eAAiBrK,EAAKwzB,MAAMluC,EAAQ+kB,gBAAkB/kB,EAAQ8kB,YAAazgB,GAAS,GAAM,GAC/FqW,EAAK8M,kBAAoB9M,EAAKwzB,MAAMluC,EAAQ8kB,YAAamqB,GACzDv0B,EAAK+M,qBAAuB/M,EAAKwzB,MAAMluC,EAAQ+kB,gBAAkB/kB,EAAQ8kB,YAAamqB,GAAe,OAErGv0B,GAAKoK,YAAcpK,EAAKwzB,MAAMluC,EAAQ8kB,YAAazgB,GACnDqW,EAAKqK,eAAiBrK,EAAKwzB,MAAMluC,EAAQ+kB,gBAAkB/kB,EAAQ8kB,YAAazgB,GAAS,EAEzFqW,GAAKgP,gBACLhP,EAAK0K,eAAiB1K,EAAK00B,YAAYpvC,EAAQolB,gBAAkB,MAEjE1K,EAAKmJ,SAAWhP,GAAc/E,KAAgB+E,GAAc/E,KAAgBiY,EAAOtqB,QAAUiJ,GAAK+mC,EAAa,SAAUjpC,GACrH,MAAOA,GAAOkjB,iBACfjqB,UACHid,EAAKgN,eAAiBhN,EAAK20B,YAAY5B,EAAa39B,EAAY,iBAAkB,sBAElF/H,GAAUrB,GAAK+mC,EAAa,SAAUjpC,GAClC,MAAOA,GAAOmjB,sBACflqB,SACHqS,EAAavT,EAAE8C,IAAI0I,EAAQ,SAAUunC,GACjC,MAAOA,GAAEx/B,aAEb4K,EAAKiN,oBAAsBjN,EAAK20B,YAAYhrC,EAASyL,EAAY,sBAAuB,iBAAkBm/B,EAAcxxC,QACpHuC,EAAQqkB,YAAc4qB,EAAcxxC,SACpCid,EAAKkN,0BAA4BlN,EAAK20B,YAAYJ,EAAen/B,EAAY,sBAAuB,oBAGxG/H,IAAWmnC,EAAuCzxC,QAAU0xC,EAA0C1xC,SACtGqS,EAAavT,EAAE8C,IAAI0I,EAAQ,SAAUunC,GACjC,MAAOA,GAAEx/B,aAEb4K,EAAK2V,0BAA4B3V,EAAK60B,iBAAiB9oC,EAAepC,GAAUyL,EAAY,4BAA6B,iBAAkBm/B,EAAcxxC,OAAQ0xC,GAC7JnvC,EAAQqkB,YAAc4qB,EAAcxxC,SACpCid,EAAK80B,gCAAkC90B,EAAK60B,iBAAiB9oC,EAAewoC,GAAgBn/B,EAAY,4BAA6B,iBAAkB,EAAGo/B,MAG9Jx0B,EAAK2V,0BAA4B,KACjC3V,EAAK80B,gCAAkC,MAEvC90B,EAAK1a,QAAQglB,YACbtK,EAAKmN,kBAAoBnN,EAAK+0B,mBAGtCA,eAAgB,WAAA,GAUR5a,GAEAT,EACAQ,EAZAjZ,EAAU,6BACV+zB,EAAkB,sDAClBC,EAA+B5wC,KAAKiB,QAAQqkB,aAAetlB,KAAK4c,QAAQ,GAAG3d,MAAMH,OAAS,0CAA4C,GACtIqR,GACAslB,WACAzyB,MAAO,GAEP0yB,EAAWl4B,EAAEqC,UAAWH,GAAMi2B,SAAU31B,KAAKiB,QAAQ20B,kBACrD0Z,EAAY5Z,EAAS4Z,UAErBphC,EAAO,EAoBX,OAhBI4nB,GADA91B,KAAKiB,QAAQglB,UAAU6P,SACZ91B,KAAKiB,QAAQglB,UAAU6P,SAEvBp2B,GAAMoP,OAAO6hC,EAAiB3wC,KAAKiB,QAAQulB,SAASP,UAAW2qB,GAE9Evb,QAAcS,GACD,aAATT,GACAllB,EAAMslB,QAAQ,OAAStlB,EAAMnN,OAAS8yB,EACtC5nB,GAAQ,cAAgBiC,EAAMnN,MAAQ,IAAMssC,EAAY,KACxDn/B,EAAMnN,SACU,WAATqyB,IACPnnB,GAAQ4nB,GAEZD,EAAOn2B,GAAMo2B,SAASp2B,GAAMoP,OAAO8N,EAASnE,GAAgBvK,GAAOwnB,GAC/DvlB,EAAMnN,MAAQ,IACd6yB,EAAOr4B,EAAE4H,MAAMywB,EAAM1lB,EAAMslB,UAExBI,GAEXya,YAAa,SAAUhrC,EAASyL,EAAY8/B,EAAcC,EAAUzB,GAChE,GAAkItrC,GAAKrF,EAAQo3B,EAAUT,EAA8H5vB,EAAnRkW,EAAO3b,KAAM01B,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,kBAAmB0Z,EAAY5Z,EAAS4Z,UAAWphC,EAAO,GAAiCunB,KAAczyB,EAAQ,EAAG+tC,KAAY/nC,EAAS2S,EAAKoJ,UAAWisB,EAAYr1B,EAAKM,WAAWg1B,iBAAiBlgC,EAQ1Q,KAPA7C,GAAQ,cAAgB4iC,EAAW,KAC/B9nC,EAAS,IAAMqmC,IACfnhC,GAAQnL,EAAWiG,IAEnB2S,EAAKgP,gBACLzc,GAAQ,4CAEPnK,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD0B,EAASH,EAAQvB,GACjB+xB,EAAWrwB,EAAOorC,GAClBxb,QAAcS,GACd5nB,GAAQ,MAAQhL,EAAoBuC,EAAOM,kBAAoB,IAC3D+vB,GACIT,IAAS7b,KACTu3B,EAAQC,EAAUvrC,EAAOG,OAAS/F,MAAW61B,GAAY4Z,UAAWA,EAAY,KAAQ7pC,EAAOG,MAAQ,UACvGkwB,EAAWp2B,GAAMo2B,SAASA,EAAUib,IAExCtb,EAAQ,OAASzyB,GAAS8yB,EAC1B5nB,GAAQ,cAAgBlL,EAAQ,IAAMssC,EAAY,KAClDtsC,KAEAkL,GAAQ,SAEZA,GAAQ,OAIZ,OAFAA,IAAQ,QACRA,EAAOxO,GAAMo2B,SAAS5nB,EAAMwnB,GACxB1yB,EAAQ,EACDoC,GAAM8I,EAAMunB,GAEhBvnB,GAEXsiC,iBAAkB,SAAUlrC,EAASyL,EAAY8/B,EAAcC,EAAUzB,EAAgBhe,GACrF,GAAkIttB,GAAKrF,EAAQo3B,EAAUT,EAAqG5vB,EAA1PkW,EAAO3b,KAAM01B,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,kBAAmB0Z,EAAY5Z,EAAS4Z,UAAWphC,EAAO,GAAiCunB,KAAczyB,EAAQ,EAAG+tC,KAAYC,EAAYr1B,EAAKM,WAAWg1B,iBAAiBlgC,GAAqB2D,EAAsB2c,EAAiC3yB,OAAS4M,GAAQ+lB,EAAiC,GAAI/rB,KAQnX,IAPA4I,GAAQ,yBAA2B4iC,EAAW,KACzCzB,IACDnhC,GAAQ,4FAERyN,EAAKgP,gBACLzc,GAAQ,4CAERwG,EAAsB,EAEtB,MADAxG,IAASmhC,EAAoD,GAAnC56B,GAAiBnP,EAAQ5G,QACnD,CAEJ,IAAIgW,EAAsBsF,IAAmBqX,EAAiC3yB,QAAU,IAAM2wC,EAE1F,MADAnhC,IAASmhC,EAAoD,GAAnC56B,GAAiBnP,EAAQ5G,QAC5CgB,GAAMo2B,SAAS5nB,EAAMwnB,EAQhC,KANIhhB,EAAsBsF,IACtBtF,EAAuB26B,EAAqB,EAAJ,EACxCnhC,GAASmhC,EAAyD,GAAxC56B,GAAiBC,IAE3CxG,GAASmhC,EAAyDx6B,GAA8BH,GAAtED,GAAiBC,GAE1C3Q,EAAM2Q,EAAqBhW,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACnE0B,EAASH,EAAQvB,GACjB+xB,EAAWrwB,EAAOorC,GAClBxb,QAAcS,GACd5nB,GAAQ,OACJ4nB,GACIT,IAAS7b,KACTu3B,EAAQC,EAAUvrC,EAAOG,OAAS/F,MAAW61B,GAAY4Z,UAAWA,EAAY,KAAQ7pC,EAAOG,MAAQ,UACvGkwB,EAAWp2B,GAAMo2B,SAASA,EAAUib,IAExCtb,EAAQ,OAASzyB,GAAS8yB,EAC1B5nB,GAAQ,cAAgBlL,EAAQ,IAAMssC,EAAY,KAClDtsC,KAEAkL,GAAQ,SAEZA,GAAQ,OAIZ,OAFAA,IAAQ,QACRA,EAAOxO,GAAMo2B,SAAS5nB,EAAMwnB,GACxB1yB,EAAQ,EACDoC,GAAM8I,EAAMunB,GAEhBvnB,GAEXmiC,YAAa,SAAUva,GACnB,GAAIna,GAAO3b,KAAMkO,EAAO,GAAIwnB,EAAW71B,MAAWH,GAAMi2B,SAAUha,EAAK1a,QAAQ20B,kBAAmB0Z,EAAY5Z,EAAS4Z,UAAW4B,KAA8BC,EAAwB,EAAGnoC,EAAS2S,EAAKoJ,UAAWhQ,EAAUrN,EAAeqC,EAAY4R,EAAKrW,UAAU5G,OAAQ22B,QAAcS,EAe9R,OAdA5nB,IAAQ,4BACJlF,EAAS,IACTkF,GAAQnL,EAAWiG,IAEvBkF,GAAQ,+DAAiE6G,EAAU,aAAeA,EAAU,IAAM,IAAM,IACpHsgB,IAAS7b,IACT03B,EAAwB,OAASC,GAAyBrb,EAC1D5nB,GAAQ,cAAgBijC,EAAwB,IAAM7B,EAAY,KAClE6B,KAEAjjC,GAAQ4nB,EAEZ5nB,GAAQ,aACRA,EAAOxO,GAAMo2B,SAAS5nB,EAAMwnB,GACxByb,EAAwB,EACjB/rC,GAAM8I,EAAMgjC,GAEhBhjC,GAEXyc,YAAa,WACT,GAAIhP,GAAO3b,IACX,OAAuC,QAAhC2b,EAAK1a,QAAQolB,iBAA4B1K,EAAK6H,QAAQrM,SAAmBzY,QAEpFyxB,cAAe,WAAA,GACPzK,GAAa1lB,KAAKiB,QAAQykB,WAC1B0rB,EAAe1rB,SAAqBA,GAAW4M,MAAQjvB,IAAUqiB,EAAW4M,KAAKvmB,QAAQ,WACzFzG,EAAUtF,KAAKsF,QACf+rC,EAA0B7zC,EAAEmK,KAAKrC,EAAS,SAAU8mB,GACpD,MAAOA,GAAI1G,cAAe,GAK9B,OAHIpgB,GAAQ5G,QAAU2yC,EAAwB3yC,QAAU4G,EAAQ5G,SAC5D0yC,GAAe,GAEZA,GAEX7sB,SAAU,WACN,GAAI5I,GAAO3b,IACX,IAAI2b,EAAK1a,QAAQqkB,YAAc3J,EAAKgP,eAAiBpiB,EAAcoT,EAAKrW,SAAS5G,OAC7E,KAAUoJ,OAAM,kEAEpB6T,GAAK1N,MAAMhJ,GAAGC,GAAQC,GAAI,iEAAkE,SAAUqN,GAClG,GAA8J8+B,GAAiD3gC,EAA3M4a,EAAS/tB,EAAEwC,MAAOmI,EAAOojB,EAAOne,QAAQ,uBAAwBmkC,EAAYhmB,EAAOthB,SAAS,cAAeunC,EAAYjmB,EAAOne,QAAQ,mBAA+BiZ,EAAiB1K,EAAK0K,eAAsBzX,EAAa+M,EAAKgP,cAAe8mB,EAAgBF,EAAY38B,GAAW6F,GAAQi3B,IAAiBH,CA0BtT,OAzBAhmB,GAAOomB,YAAY,cAAeJ,GAAWI,YAAY,eAAgBJ,GAAWzuC,KAAK6R,GAAW88B,GACpGtpC,EAAKrF,KAAK,gBAAiB4uC,GAC3BJ,EAAYE,EAAU1jC,OAClBc,IAAe0iC,EAAUrnC,SAAS,kBAClC0G,EAAOgL,EAAK6Z,SAASgc,GACrBF,EAAY9zC,EAAE6oB,EAAe1V,IAAOsU,SAASusB,EAAUvnC,SAAS,SAAW,QAAU,IAAIZ,YAAYmoC,GACrG71B,EAAK4O,QAAQ,UAAW,WACpB,OACIpmB,SAAUmtC,EAAU1wC,MACpB+P,OAAS6kB,SAAU7kB,OAG3BgL,EAAK+D,QAAQvI,IACTq6B,UAAWA,EACXF,UAAWA,EACX3gC,KAAMA,EACNihC,WAAYN,EAAU/sC,KAAK,qBAGnCoX,EAAK+D,QAAQ6xB,EAAYz5B,GAAeC,IACpCy5B,UAAWA,EACXF,UAAWA,IAEfA,EAAUO,OAAON,GACjB/+B,EAAEC,kBACK,KAGf+iB,SAAU,SAAUrL,GAEhB,GADAA,EAAK3sB,EAAE2sB,GAAI,IACNA,EACD,MAAO,KAEX,IAAyHwG,GAAGmhB,EAAxH7oC,EAAOjJ,KAAKgO,MAAM5E,WAAY2oC,EAAe,6CAA8ChuC,EAAMomB,EAAG6nB,eAExG,KADAF,EAAa/tC,EACR4sB,EAAI,EAAGA,EAAI5sB,EAAK4sB,IACbohB,EAAazhC,KAAKrH,EAAK0nB,GAAGpgB,YAC1BuhC,GAGR,OAAO9xC,MAAKupB,MAAMuoB,IAEtBhM,UAAW,SAAU3b,GACjB3sB,EAAE2sB,GAAI5lB,KAAK,oBAAoBQ,SAEnC0gC,YAAa,SAAUtb,GACnB3sB,EAAE2sB,GAAI5lB,KAAK,sBAAsBQ,SAErCktC,mBAAoB,SAAU3sC,EAASoD,GAAnB,GACC3E,GAAKyL,EAAI9R,EAAiBgB,EAAQ4vB,EAA8G1oB,EAKzJiF,EALJ8Q,EAAO3b,KAAqBkO,EAAO,GAAmBsY,EAAW7K,EAAK1a,QAAQulB,SAAU1d,EAAQiB,EAAY4R,EAAKrW,SAAU0D,EAAS2S,EAAKM,WAAWuN,OACxJ,KAAKzlB,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjDyL,EAAKlK,EAAQvB,GAAK0B,QAAUH,EAAQvB,GACpCrG,EAAOie,EAAKk0B,gBAAgBrgC,GAC5B5J,EAAQ,GACJiF,EAAQS,GAAQkE,EAAI1G,GACpB0G,EAAGyD,YACH/E,GAAQ,kBAAsBhL,EAAoBsM,EAAGxJ,kBACjD0C,IAAYpD,EAAQvB,GAAKyJ,UACzBU,GAAQ,aAAgBxF,EAAU,KAElCmC,OACAqD,GAAQxO,GAAMoD,KAAK,SAAW,KAAQ+H,EAAQ,KAElDnN,EAAO8R,EAAGsgC,eAAiBpyC,EAAOgC,GAAMo2B,SAAS9a,QACjD9M,GAAQ,IAAMxQ,EAAO,SACd8R,EAAG7K,SACVuJ,GAAQ,kBAAsBhL,EAAoBsM,EAAGxJ,kBACjD0C,IAAYpD,EAAQvB,GAAKyJ,UACzBU,GAAQ,aAAgBxF,EAAU,KAElCmC,OACAqD,GAAQxO,GAAMoD,KAAK,SAAW,KAAQ+H,EAAQ,KAElDqD,GAAQ,IAAMxQ,EAAO,UAEjB8R,EAAG5J,QACHA,EAAQlG,GAAMoD,KAAK,SAAW,KAAQ0M,EAAG5J,MAAQ,MAErDsI,GAAQ,uCAA6CtI,EACrDsI,GAAQ,wBACJxF,IAAYpD,EAAQvB,GAAKyJ,UACzBU,GAAQ,aAAgBxF,EAAU,KAElCpD,EAAQvB,GAAKyJ,QAAU,IACvBU,GAAQ,aAAe5I,EAAQvB,GAAKyJ,QAAU9B,EAAuB8D,EAAGlK,UAAY,KACpF4I,GAAQxO,GAAMoD,KAAK,WAAa,KAAQwC,EAAQvB,GAAKyJ,QAAU,KAE/DgC,EAAG8e,QACHA,EAAQ9e,EAAG8e,MAAM1wB,QAAQ,IAAK,UAAUA,QAAQ,KAAM,KACtDsQ,GAAQxO,GAAMoD,KAAK,SAAW,KAAOwrB,EAAQ,MAE7C9e,EAAGqD,YAAcnQ,IACjBwL,GAAQxO,GAAMoD,KAAK,aAAe,KAAQ0M,EAAGqD,UAAY,MAEzDF,GAAkBgJ,EAAMnM,KACxBtB,GAAQ,gBAAmBogB,GAAS9e,EAAG5J,OAAS,IAChDsI,GAAQ4E,GAAY9J,EAAQwG,EAAG5J,OAAS4gB,EAASM,cAAgBN,EAASK,YAC1E3Y,GAAQ,MAERsB,EAAGuB,YAAcvB,EAAGuB,WAAWrS,SAC/BwP,GAAQxO,GAAMoD,KAAK,cAAgB,KAAQ0M,EAAGuB,WAAa,KAE3DlG,OACAqD,GAAQxO,GAAMoD,KAAK,SAAW,KAAQ+H,EAAQ,KAElDqD,GAAQhL,EAAoBsM,EAAGxJ,kBAC/BkI,GAAQ,IAAMxQ,EAAO,QAG7B,OAAOwQ,IAEXgkC,2BAA4B,WACxB,GAA4BnuC,GAA6GrF,EAA+C+F,EAAW+I,EAAS2kC,EAAxM7sC,EAAUtF,KAAKsF,QAAcuJ,EAAW7O,KAAKiO,MAAM1J,KAAK,YAAasH,EAAOgD,EAAStK,KAAK,0CAAmDg7B,EAAa/hC,IAAK40C,EAAkB,EAAgCC,EAAY,CACjO,KAAKtuC,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IACjD,GAAIuB,EAAQvB,GAAKiH,OACb,GAAInF,EAAUP,EAAQvB,IAAO,CAMzB,IALAyJ,EAAU,EACNlI,EAAQvB,GAAKuB,UACbkI,EAAUzD,EAAYzE,EAAQvB,GAAKuB,SAAS5G,OAASgN,EAAuBpG,EAAQvB,GAAKuB,UAE7FkI,EAAUA,GAAW,EAChB2kC,EAAU,EAAGA,EAAU3kC,EAAS2kC,IACjC5S,EAAaA,EAAW/7B,IAAIqI,EAAK5H,GAAGF,EAAMsuC,EAAYF,EAAUC,GAEpEC,IAAa7kC,EAAU,MAEvB4kC,IAIZ3tC,GAAYjH,EAAE,6CAA+C0d,GAAQ,mBAAqB,IAAM,6CAChGrM,EAASyjC,SACT7tC,EAAUF,KAAK,YAAYmG,OAAO60B,GAClC1wB,EAASY,aAAazP,KAAKiO,MAAM1J,KAAK,UACtCvE,KAAKoE,cAAgBK,EAAUgL,aAAazP,KAAKqE,SACjDrE,KAAKuT,YAAc9O,EAAU2E,SAAS,UAE1C4iC,0BAA2B,WAAA,GAMnBjoC,GAAKrF,EALLid,EAAO3b,KACPgpB,EAASrN,EAAKqN,OACdlf,EAAQkf,EAAOzkB,KAAK,yBACpBsH,EAAOmd,EAAOzkB,KAAK,0CACnB2J,EAAO1Q,EAAE,yHAETwL,EAAS2S,EAAKoJ,UACdwtB,EAAc/0C,IAAK+hC,EAAa/hC,GAEpC,KADA+0C,EAAcA,EAAY/uC,IAAIsG,EAAMxF,OAAO,kBACtCP,EAAM,EAAGrF,EAASqL,EAAYxB,EAAcoT,EAAKrW,UAAU5G,OAAQqF,EAAMrF,EAAQqF,IAClFwuC,EAAcA,EAAY/uC,IAAIsG,EAAM7F,GAAGF,EAAMiF,GAGjD,KADAu2B,EAAaA,EAAW/7B,IAAIqI,EAAKvH,OAAO,iBACnCP,EAAM,EAAGrF,EAASgJ,EAAeqC,EAAYyC,EAAqBmP,EAAKrW,WAAW5G,OAAQqF,EAAMrF,EAAQqF,IACzGw7B,EAAaA,EAAW/7B,IAAIqI,EAAK5H,GAAGF,EAAMiF,GAE9CupC,GAAYruC,SAASgK,EAAK3J,KAAK,OAC/Bg7B,EAAWr7B,SAASgK,EAAK3J,KAAK,aAC9BoX,EAAKsN,aAAe/a,EAAK4sB,UAAU9R,IAEvCwpB,0BAA2B,SAAU/tC,GAAV,GACkBV,GAAKmK,EAAMxP,EAAkByrB,EAAIsoB,EAAUxkC,EAA0J9F,EAU9NqF,EAKK2kC,EAOJxhB,EAwBT3tB,EA9CJ2Y,EAAO3b,KAAMsF,EAAUtF,KAAKsF,QAAoF2D,KAAWmpC,EAAkB,EAAGvmC,EAAOrO,IAAKk1C,EAAe/2B,EAAKwU,gBAAiBwiB,EAAmB,EAAGC,EAAcp1C,IAAWq1C,EAAmB,EAAG/oC,EAAQtM,IAAtNqR,EACjD8M,EAAKjS,MAAMwmB,OAAO3rB,KAAK,0CADyDooB,EAElFhR,EAAKjS,MAAMnF,KAAK,2DAF0EuuC,EAGjFn3B,EAAKjS,MAAMnF,KAAK,iBAAiBA,KAAK,2CACpD8tC,EAAY,CAChB,KAAKtuC,EAAM,EAAGrF,EAAS4G,EAAQ5G,OAAQqF,EAAMrF,EAAQqF,IAAO,CACxD,GAAIuB,EAAQvB,GAAKiH,OAAQ,CAGrB,GAFA7C,EAAOwkB,EAAO1oB,GAAGF,GACjB8uC,EAAmB9oC,EAAYzE,EAAQvB,GAAKuB,aAAe5G,OACvDmH,EAAUP,EAAQvB,IAAO,CAMzB,IALIyJ,EAAU,KACVlI,EAAQvB,GAAKuB,UACbkI,EAAUqlC,EAAmBnnC,EAAuBpG,EAAQvB,GAAKuB,UAErEkI,EAAUA,GAAW,EACZ2kC,EAAU,EAAGA,EAAU3kC,EAAS2kC,IACrCtmC,EAAOA,EAAKrI,IAAIqL,EAAS5K,GAAGF,EAAMsuC,EAAYF,EAAUC,GAE5DC,IAAa7kC,EAAU,EAI3B,IAFAnB,GAAqB/G,EAAQvB,IAAO4J,EAAkBxF,GAAOc,EAAM,EAAG,GACtE4pC,EAAmBA,GAAoB,EAC9BliB,EAAI,EAAGA,EAAIkiB,EAAkBliB,IAClCiiB,EAAcA,EAAYpvC,IAAIsvC,EAAgB7uC,GAAG0uC,EAAmBhiB,GAExEgiB,IAAoBE,EAEpBvtC,EAAQvB,GAAKuB,UACb8sC,GAAmB1mC,EAAuBpG,EAAQvB,GAAKuB,UAEtDO,EAAUP,EAAQvB,KACnBquC,IAGR,GAAInpC,EAAKvK,OAAQ,CAQb,IAPAwP,EAAO,8DAAgEgN,GAAQ,mBAAqB,IAAM,sBAC1GhN,GAAYjL,MAAMgG,EAAKvK,OAAS,GAAGL,KAAK,aACxC6P,IAASwkC,EAAe,8BAAgC,IAAM,yBAC9DzkC,EAAQzQ,EAAE0Q,GACVW,EAAWZ,EAAM1J,KAAK,YACtBsK,EAASnE,OAAOiR,EAAKjS,MAAMwmB,OAAO3rB,KAAK,mBAAmBf,IAAIqI,IAC9Dse,EAAKlc,EAAM1J,KAAK,+BACXR,EAAM,EAAGrF,EAASuK,EAAKvK,OAAQqF,EAAMrF,EAAQqF,IAC9C+F,EAAQ9B,EAASiB,EAAKlF,IACtBomB,EAAGlmB,GAAGF,GAAK2G,OAAOiR,EAAKjS,MAAMnF,KAAK,SAAWR,EAAM,mBAAmBP,IAAIsG,GAU9E,OARI9G,GAAQkJ,EAAgBlM,KAAK0J,OAC7BT,EAAKvK,OAASsE,GACdiJ,EAAmBgC,EAAOjL,EAAQiG,EAAKvK,QAE3C+zC,EAAWxkC,EAAM1J,KAAK,iBACtBkuC,EAAS/nC,OAAOiR,EAAKjS,MAAMnF,KAAK,+BAA+Bf,IAAIovC,IACnE5yC,KAAKyT,aAAexF,EAAM6sB,UAAUr2B,GACpCzE,KAAK0J,MAAMnF,KAAK,iBAAiB6H,UAC1B,EAEX,OAAO,GAEX+b,wBAAyB,WACrB,GAAIhkB,GAAWnE,KAAKyT,aAAajQ,IAAIxD,KAAKoE,eAAeZ,IAAIxD,KAAKipB,aAClEvpB,IAAMid,QAAQxY,GACdA,EAAS2Y,IAAI3X,IAAIiH,SACjBpM,KAAKyT,aAAezT,KAAKoE,cAAgBpE,KAAKipB,aAAe,KAC7DjpB,KAAKiT,WAAa,MAEtB8Q,OAAQ,WAAA,GAC6HhgB,GAA2GomB,EAiBhOlhB,EAkBAwH,EACAtI,EAOJ4qC,EAKAC,EA0CJC,EACAC,EA3FAv3B,EAAO3b,KAAMsF,EAAUqW,EAAKrW,QAASsJ,EAAa+M,EAAKgP,eAAiBrlB,EAAQ5G,OAAQg0C,EAAe/2B,EAAKwU,gBAAsBjiB,EAAO,GAAIxE,EAAQiS,EAAK1N,MAAM1J,KAAK,UAAW4uC,EAAWx3B,EAAKlU,QAAQlD,KAAK,eAAe7F,OAAS,CAczO,IAbKgL,EAAMhL,SACPgL,EAAQlM,EAAE,YAAYiS,aAAakM,EAAK3N,QAExC2N,EAAKlI,cAAgBkI,EAAKjS,OAC1BygB,EAAKxO,EAAKjS,MAAMnF,KAAK,iCAAiC2J,KAAK,IAC3Dic,EAAG/d,SACH+d,EAAK3sB,IACLme,EAAKwM,2BAELgC,EAAKxO,EAAKlU,QAAQlD,KADX4uC,EACgB,4CAEA,oBAEtBhpB,EAAGzrB,OAoBJ,IAAKqF,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAC5B0M,EAAcnF,GAAQhG,EAAQvB,GAAMgG,EAAYzE,IAChD6C,EAAOuE,EAAcyd,EAAGhf,UAAU7G,OAAO,gDAAgDL,GAAGwM,GAC5FnL,EAAQvB,GAAK2B,SACbyC,EAAK,GAAGlJ,MAAMsI,QAAU,YAtBhC,IADA4iB,EAAKzgB,EAAMN,WAAWiU,SACjB8M,EAAGzrB,OAAQ,CAOZ,IANIuK,IACIP,QAAS,EACToB,SACAe,MAAO,IAEf8Q,EAAKy3B,gBAAgBnqC,EAAM3D,GACtBvB,EAAM,EAAGA,EAAMkF,EAAKvK,OAAQqF,IAC7BmK,GAAQ,OACJU,IACAV,GAAQ,4CAA8CyN,EAAK1a,QAAQulB,SAASI,2BAA6B,SAE7G1Y,GAAQyN,EAAKs2B,mBAAmBhpC,EAAKlF,GAAK+F,MAAOb,EAAKlF,GAAK2E,SAC3DwF,GAAQ,OAEZic,GAAK3sB,EAAE0Q,GAWXwkC,IACIK,EAAYv1C,EAAE,SAClBu1C,EAAU9tB,SAAS,iBACfrW,GAAcub,EAAG5lB,KAAK,qBAAqB7F,SAC3Cq0C,EAAU/jC,QAAQ,wDAElBgkC,GAAqBr3B,EAAKjS,OAASA,GAAOnF,KAAK,iBAC/CyuC,EAAkBt0C,SAClBgB,GAAMid,QAAQq2B,GACdA,EAAkB5mC,UAEtB1C,EAAMgB,OAAOqoC,IAEZ5oB,EAAG/gB,WAAW1K,OAORkQ,IAAeub,EAAG5lB,KAAK,qBAAqB,IACnD4lB,EAAGnb,QAAQ,yDAPXd,EAAO,GACHU,IACAV,GAAQ,wDAEZA,GAAQyN,EAAKs2B,mBAAmB3sC,GAChC6kB,EAAGjc,KAAKA,IAIZic,EAAGrnB,KAAK,OAAQ,OAAOyB,KAAK,MAAM0gB,SAAS,YACtCtJ,EAAK1a,QAAQqkB,YACd5b,EAAMub,SAAS,iBAEnBkF,EAAG5lB,KAAK,UAAU6H,SAASsmB,MAAMoI,UAAUpxB,GACvCiS,EAAKjS,OACLiS,EAAKqL,4BAEThnB,KAAKuqB,QAAQ,UAAW,WACpB,OAASpmB,SAAUuF,EAAMnF,KAAK,KAAOgS,IAAS3V,SAElDZ,KAAKuqB,QAAQ,UAAW,WACpB,OACIpmB,SAAUuF,EAAMnF,KAAKqS,IAAahW,MAClC+P,KAAMrQ,GAAIgF,EAAS,SAAU8mB,GACzB,OAAS3mB,OAAQ2mB,QAI7BzQ,EAAKjS,MAAQA,EAAM5G,KAAK,OAAQ,YAChC6Y,EAAK4yB,YACL5yB,EAAKuxB,cACLvxB,EAAK6xB,aACL7xB,EAAKitB,cACLjtB,EAAKwwB,cAED+G,EAAmBlzC,KAAKiB,QAAQqkB,YAAc/c,EAAcvI,KAAKsF,SAAS5G,OAC1Ew0C,IACAD,EAAat3B,EAAK62B,0BAA0B72B,EAAKjS,MAAM0D,QAAQ,mBAC/DuO,EAAKu2B,6BACLv2B,EAAKvX,cAAcgY,KAAK,iBAAmBjX,GAAK,cAAgBA,GAAIC,GAAMuW,EAAK2B,aAAc3B,IAC7FA,EAAK4V,qBAET5V,EAAK6V,cACL7V,EAAK8V,yBACL9V,EAAKkW,0BACLlW,EAAKyR,aACLzR,EAAKqS,aACLrS,EAAK4S,eACL5S,EAAKmyB,cAAcnyB,EAAKoJ,WACpBmuB,IACID,GACAt3B,EAAKwR,0BAETxR,EAAKsR,+BAELtR,EAAK9I,WACL8I,EAAK6f,oBAGb6X,qBAAsB,SAAU/tC,EAAS2D,GAAnB,GAGVxD,GAFJrC,EAAS5F,GACb,IAAIyL,EAAKvK,QAAU4G,EAAQ,GAAI,CAE3B,IADIG,EAASH,EAAQ,GACdG,EAAOH,SAAWG,EAAOH,QAAQ5G,QACpC+G,EAASA,EAAOH,QAAQ,GACxB2D,EAAOA,EAAK3E,OAAO,iBAEvBlB,GAASA,EAAOI,IAAIyF,GAExB,MAAO7F,IAEXyuB,wBAAyB,WAAA,GAGb1H,GAEAlhB,EAJJ0S,EAAO3b,KAAMsF,EAAUqW,EAAKrW,YAAesJ,EAAa+M,EAAKgP,eAAiBrlB,EAAQ5G,MACrFkQ,IAAe+M,EAAKoJ,YACjBoF,EAAKxO,EAAKjS,MAAMnF,KAAK,sCACzBe,EAAUmD,EAAiBnD,GACvB2D,EAAO0S,EAAK03B,qBAAqB/tC,EAAS6kB,GAC1CxO,EAAK4f,cACLpR,EAAKxO,EAAKlI,aAAalP,KAAK,2CAC5Be,EAAUiD,EAAcoT,EAAKrW,SAC7B2D,EAAOA,EAAKzF,IAAImY,EAAK03B,qBAAqB/tC,EAAS6kB,KAEvDlhB,EAAKuhB,KAAK,WACN,GAAIhgB,GAAMhN,EAAEwC,MAAMuE,KAAK,KACvBiG,GAAIwf,YAAY,WAChBxf,EAAIvG,GAAG,GAAGghB,SAAS,eAI/BmuB,gBAAiB,SAAUnqC,EAAM3D,EAAS6H,EAAYmmC,GAArC,GAIJvvC,GACDoE,EAJJgC,EAAMmpC,GAAarqC,EAAKA,EAAKvK,OAAS,GACtC60C,EAAWtqC,EAAKkB,EAAIU,MAAQ,GAC5B2oC,EAAe,CACnB,KAASzvC,EAAM,EAAGA,EAAMuB,EAAQ5G,OAAQqF,IAChCoE,GACA1C,OAAQH,EAAQvB,GAChByJ,QAAS,GAEbrD,EAAIL,MAAM3L,KAAKgK,GACX7C,EAAQvB,GAAKuB,SAAWA,EAAQvB,GAAKuB,QAAQ5G,SACxC60C,IACDA,GACI7qC,QAAS,EACToB,SACAe,MAAO5B,EAAKvK,QAEhBuK,EAAK9K,KAAKo1C,IAEdprC,EAAKqF,QAAUlI,EAAQvB,GAAKuB,QAAQ5G,OACpCsB,KAAKozC,gBAAgBnqC,EAAM3D,EAAQvB,GAAKuB,QAAS6C,EAAMorC,GACvDC,GAAgBrrC,EAAKqF,QAAU,EAC/BrD,EAAIzB,QAAUO,EAAKvK,OAASyL,EAAIU,MAGpCsC,KACAA,EAAWK,SAAWgmC,IAG9Bl2B,aAAc,SAAU9K,GAAV,GAINnO,GAIA2Z,EAAiCE,CAPjC1L,GAAE8L,UAGFja,EAAUrE,KAAKqE,QACfrE,KAAKiB,QAAQqkB,WAAWC,UACxBlhB,EAAUrE,KAAKwlB,kBAAkB3I,mBAEjCmB,EAAY3Z,EAAQ2Z,YAAaE,EAAQxe,GAAM6e,YAAY/L,GAC3D0L,IACI7Z,EAAQ,GAAGoa,aAAepa,EAAQ,GAAGma,eAAiBna,EAAQ,GAAG2Z,UAAY3Z,EAAQ,GAAGoa,aAAepa,EAAQ,GAAGma,cAAgBN,EAAQ,GAAK7Z,EAAQ,GAAG2Z,UAAY,GAAKE,EAAQ,IACnL1L,EAAEC;AAENpO,EAAQ2Z,UAAUA,GAAaE,MAGvCqd,UAAW,WACP,MAA4B,OAArBv7B,KAAKyT,cAEhBggC,kBAAmB,WACf,GAAIxlC,GAAQjO,KAAK0J,MAAMyB,SAAS3H,IAAIxD,KAAKiO,MACrCjO,MAAKu7B,YACL5sB,GAAcV,EAAOxB,EAAmBF,EAAwBvM,KAAKsF,UAAWtF,KAAK2qB,cAAe,GAEpGhc,GAAcV,EAAOxB,EAAmB/E,EAAe1H,KAAKsF,UAAWtF,KAAK2qB,cAAe,IAGnG+G,qBAAsB,WAAA,GAIdjsB,GACA0C,EACAqmC,EAIKzqC,EAASrF,EATdid,EAAO3b,KACP8J,EAAQ4C,EAAciP,EAAKjS,OAC3BpE,EAAUyE,EAAY4R,EAAKrW,QAI/B,IAAKqW,EAAK1a,QAAQ0kB,SAGlB,IAAS5hB,EAAM,EAAGrF,EAASoL,EAAMpL,OAAQqF,EAAMrF,EAAQqF,IACnD0B,EAASH,EAAQvB,GACb0B,EAAOkgB,YAAa,IAAUlgB,EAAOd,SAAWc,EAAOG,QACvDuC,EAAO2B,EAAM7F,GAAGF,GAChByqC,EAAiBrmC,EAAKwI,KAAK,qBACvB69B,GACAA,EAAezyB,YAK/ByV,YAAa,SAAUvjB,GACnBA,EAAQA,GAASjO,KAAK0J,MAAMyB,SAAS3H,IAAIxD,KAAKiO,OAC9CjO,KAAKksC,YAAYj+B,EAAOjO,KAAKu7B,cAEjChK,kBAAmB,SAAUtjB,GACrBjO,KAAKu7B,cACLttB,EAAQA,GAASjO,KAAKyT,aAAalP,KAAK,SAASf,IAAIxD,KAAKuT,aAC1D5E,GAAcV,EAAOxB,EAAmBD,EAAqBxM,KAAKsF,UAAWtF,KAAK2qB,cAAe3qB,KAAK+kB,aAG9GmnB,YAAa,SAAUj+B,EAAOjD,GACtBA,EACA2D,GAAcV,EAAOxB,EAAmBF,EAAwBvM,KAAKsF,UAAWtF,KAAK2qB,cAAe,GAEpGhc,GAAcV,EAAOxB,EAAmB/E,EAAe1H,KAAKsF,UAAWtF,KAAK2qB,cAAe3qB,KAAK+kB,YAGxG2uB,aAAc,SAAUxd,GACpB,GAAIA,GAAUA,EAAOyd,OAAQ,CACzB,GAAiB/tC,GAAOL,EAApBoW,EAAO3b,IACXk2B,GAASA,EAAOyd,SAChBpuC,IAAYoW,EAAK1N,MAAM1J,KAAK,YAAY7F,OAAS,KAAOid,EAAKM,aAAeN,EAAKM,WAAWyN,WAC5F,KAAK9jB,IAASswB,GACVva,EAAKrW,QAAQnH,MACTyH,MAAOA,EACPL,QAASA,EACTS,kBAAoBE,GAAIxG,GAAMuG,SAGtC0V,GAAKoI,SACLpI,EAAKwI,eAGbyvB,UAAW,SAAUjjC,EAAMkjC,GACvB,GAA4B9vC,GAAqFrF,EAA7Gid,EAAO3b,KAAMkO,EAAO,GAAS6X,EAAc8tB,EAAU9tB,YAAaC,EAAiB6tB,EAAU7tB,cACjG,KAAKjiB,EAAM,EAAGrF,EAASiS,EAAKjS,OAAQqF,EAAMrF,EAAQqF,IAC1C4X,EAAKutB,wBAA0B,EAC/BvtB,EAAKutB,0BAGDh7B,GADAnK,EAAM,EACEiiB,EAAerV,EAAK5M,IAEpBgiB,EAAYpV,EAAK5M,IAGjC4X,EAAK4N,MAAMprB,KAAKwS,EAAK5M,GAEzB,OAAOmK,IAEX4lC,WAAY,SAAUtqB,EAAOuqB,EAAYC,GAA7B,GAQKvqB,GAPT9N,EAAO3b,KAAMi0C,EAAiBt4B,EAAKu4B,kCAAqCC,EAAa3qB,EAAM3Y,MAAOE,EAAalR,MAAWo0C,EAAgBzqB,EAAMzY,YAAaqjC,EAAav0C,OACtK+F,MAAO4jB,EAAM5jB,MACbvF,MAAOmpB,EAAMnpB,MACbwQ,MAAOsjC,EACPpjC,WAAYA,GACbyY,EAAMzY,WAAWijC,EAAcA,EAAYpuC,MAAQ4jB,EAAM5jB,QAASyuC,IACzE,KAAKN,EACD,IAAStqB,IAAa1Y,GAClBsjC,EAAW5qB,GAAa5pB,MAAWkR,EAAW0Y,IAC1CD,OACI5jB,MAAO4jB,EAAM5jB,MACbvF,MAAOmpB,EAAMnpB,MACbwQ,MAAOsjC,IAKvB,OAAOt0C,OAAWw0C,EAAYD,IAElCE,cAAe,SAAU9qB,EAAOzU,EAASzH,EAAOinC,EAAoBV,EAAWW,EAAaC,GACxF,GAA4B1wC,GAAKrF,EAE8Yg2C,EAF3a/4B,EAAO3b,KAAMkO,EAAO,GAAiBtI,EAAQ4jB,EAAM5jB,MAAOH,EAASkC,GAAKoC,EAAY4R,EAAKrW,SAAU,SAAUG,GACzG,MAAOA,GAAOG,OAASA,IACxB,OAAUkwB,EAAWrwB,EAAOkvC,oBAAsBlvC,EAAOkvC,oBAAsBjtC,EAAeiU,EAAKrW,SAAS,GAAGgsB,0BAA2B5zB,GAAQ+H,EAAO6oB,OAAS1oB,GAAS,KAAOiK,GAAiB2Z,EAAMnpB,MAAOoF,EAAOqJ,OAAQrJ,EAAOsuB,OAAQtuB,EAAOF,SAAU4uC,EAAa3qB,EAAM3Y,MAAO7H,EAAS2S,EAAKoJ,UAAW6D,EAAsBirB,EAAUjrB,oBAAqB0I,EAA4BuiB,EAAUviB,yBAoBpZ,KAnBIuiB,EAAUjrB,qBAAuBirB,EAAUviB,2BAA6B7rB,EAAOkvC,uBAC/ED,EAAY/4B,EAAKm4B,WAAWtqB,GAAO,IAAQ/jB,EAAOkvC,sBAAuBjtC,EAAeiU,EAAKrW,SAAS,GAAGgsB,4BAA4B5pB,EAAeiU,EAAKrW,SAAS,KAElKwwB,IAAa0e,IACb92C,QAAco4B,KAAatc,GAAWsc,EAAS4e,GAAah1C,GAAMo2B,SAASA,GAAU4e,IAEpF/4B,EAAKutB,wBAWNqL,EAAmBx/B,EAASzH,EAAO5P,GAT/BwQ,GADAojB,EACQA,EAA0BzxB,MAAW60C,GACzC3xC,WAAYuK,EACZyH,QAAS/L,EAASsE,EAClB5P,KAAMA,KAGF62C,EAAmBx/B,EAASzH,EAAO5P,GAK/C8rB,EAAM5Y,aACN,IAAK7M,EAAM,EAAGrF,EAASy1C,EAAWz1C,OAAQqF,EAAMrF,EAAQqF,IACpDmK,GAAQyN,EAAK24B,cAAcH,EAAWpwC,GAAMywC,EAAcz/B,EAAUA,EAAU,EAAGzH,EAAQ,EAAGinC,EAAoBV,EAAWW,EAAaC,GAAiB1wC,IAAQowC,EAAWz1C,OAAS,OAGzLwP,IAAQyN,EAAKi4B,UAAUO,EAAYN,EAgBvC,OAdIjrB,KACI6rB,EACKnpC,GAAQke,EAAMnpB,MAAOsb,EAAKi5B,iBAC3Bj5B,EAAKi5B,eAAez2C,KAAKqrB,EAAMnpB,QAG/Bsb,EAAKi5B,eAAel2C,QAAUid,EAAKi5B,eAAe,KAAOprB,EAAMnpB,OAC/Dsb,EAAKi5B,eAAeC,QAEnBl5B,EAAKutB,0BACNh7B,GAAQ0a,EAAoB8rB,MAIjCxmC,GAEXmtB,cAAe,SAAU7R,GAAV,GACPlc,GAAsJ3D,EAA4B5F,EAAKrF,EAAQyrB,EAc/L2qB,EAdOn5B,EAAO3b,KAAM+0C,EAAkBvrB,EAAO3W,EAAY7S,KAAKiB,QAAQ4R,UAAWmiC,EAAaniC,EAAUmiC,WAAYC,EAAcD,EAAa,EAAI,EAAWE,EAAe13C,GAejL,KAdAgsB,EAAQhsB,EAAEgsB,GACNxpB,KAAKu7B,cACA/R,EAAMpc,QAAQ,OAAOnD,SAAS,yBAI/BirC,EAAel1C,KAAKgO,MAAM5E,SAAS,SAAWogB,EAAM3e,QAAU,KAAKm7B,QAAQ,OAH3EkP,EAAe1rB,EAAMwc,QAAQ,MAC7Bxc,EAAQxpB,KAAKuT,YAAYhP,KAAK,gBAAkBilB,EAAM3e,QAAU,OAKxEyC,EAAQkc,EAAMjlB,KAAK,iBAAiB7F,OACpC8qB,EAAMjlB,KAAK,iBAAiB0gB,SAAS,cAAc+E,YAAY,gBAC/DR,EAAMjlB,KAAK,kCAAoCzB,KAAK,iBAAiB,GAAOyB,KAAK,KAAKzB,KAAK6R,GAAW8F,IACtG+O,EAAQA,EAAMwc,QAAQ,MAClB8O,KACC/wC,EAAM,EAAGrF,EAAS8qB,EAAM9qB,OAAQqF,EAAMrF,IACvCyrB,EAAKX,EAAMvlB,GAAGF,GACd4F,EAASwgB,EAAG5lB,KAAK,iBAAiB7F,OAC9ByrB,EAAGlgB,SAAS,kBACZgrC,IACO9qB,EAAGlgB,SAAS,mBACnBgrC,MAEAtrC,GAAU2D,GAAS6c,EAAGlgB,SAAS,mBAAqBgrC,EAAc,IARvBlxC,IAW3CmxC,EAAax2C,QACbo2C,EAAO32C,KAAK+2C,EAAanxC,IAE7B+wC,EAAO32C,KAAKgsB,EAAG,GAEnB3sB,GAAEs3C,GAAQtvC,OACNxF,KAAKiB,QAAQqkB,WAAWyW,SAAW/7B,KAAKqE,UACxC0Y,aAAapB,EAAK0L,wBAClB1L,EAAK0L,uBAAyBjY,WAAW,WACrCuM,EAAKtX,QAAQilC,SACb3tB,EAAKw5B,iBAAmBJ,MAIpCzZ,YAAa,SAAU9R,GAAV,GAEL7N,GAAaq5B,EAAgD1nC,EAAO6c,EAAIxgB,EAAQurC,EAAoBnxC,EAAKrF,EAAQ02C,EAAwBC,EAsC7HC,CAzBhB,KAdA9rB,EAAQhsB,EAAEgsB,GACN7N,EAAO3b,KAAMg1C,EAAar5B,EAAK1a,QAAQ4R,UAAUmiC,WAA+BE,EAAe13C,IAAkB43C,KAAwBC,EAAc,EACvJr1C,KAAKu7B,cACA/R,EAAMpc,QAAQ,OAAOnD,SAAS,yBAI/BirC,EAAel1C,KAAKgO,MAAM5E,SAAS,SAAWogB,EAAM3e,QAAU,KAAKm7B,QAAQ,OAH3EkP,EAAe1rB,EAAMwc,QAAQ,MAC7Bxc,EAAQxpB,KAAKuT,YAAYhP,KAAK,gBAAkBilB,EAAM3e,QAAU,OAKxEyC,EAAQkc,EAAMjlB,KAAK,iBAAiB7F,OACpC8qB,EAAMjlB,KAAK,eAAe0gB,SAAS,gBAAgB+E,YAAY,cAC/DR,EAAMjlB,KAAK,mCAAqCzB,KAAK,iBAAiB,GAAMyB,KAAK,KAAKzB,KAAK6R,GAAWC,IACtG4U,EAAQA,EAAMwc,QAAQ,MACjBjiC,EAAM,EAAGrF,EAAS8qB,EAAM9qB,OAAQqF,EAAMrF,IACvCyrB,EAAKX,EAAMvlB,GAAGF,GACd4F,EAASwgB,EAAG5lB,KAAK,iBAAiB7F,SAC9BiL,GAAU2D,IAHiCvJ,IAM3C4F,GAAU2D,EAAQ,GAAM6c,EAAGlgB,SAAS,kBACpCkgB,EAAGxjB,OACHuuC,EAAajxC,GAAGF,GAAK4C,OACjBwjB,EAAGlgB,SAAS,mBAAqBkgB,EAAG5lB,KAAK,WAAW0F,SAAS,iBAC7D0R,EAAK2f,YAAYnR,GAEjBA,EAAGlgB,SAAS,iBAAmBkgB,EAAG5lB,KAAK,WAAW0F,SAAS,kBAC3DkgB,EAAGrc,OAAOnH,OACVuuC,EAAajxC,GAAGF,EAAM,GAAG4C,SAG7BwjB,EAAGlgB,SAAS,oBACR+qC,GACAI,EAAkBj3C,KAAKgsB,EAAGpb,GAAG,aAEjCsmC,KAEAlrB,EAAGlgB,SAAS,oBACR+qC,IACIM,EAAmBF,EAAkBG,MACzCprB,EAAG0nB,OAAOyD,GACVJ,EAAajxC,GAAGF,GAAK8tC,OAAOyD,IAEb,GAAfD,GACAlrB,EAAGxjB,OACHuuC,EAAajxC,GAAGF,GAAK4C,QAErB0uC,IAIE,KAAV/nC,GAAeqO,EAAK1a,QAAQqkB,WAAWyW,SAAW/7B,KAAKu7B,aACvD5f,EAAKuR,4BAGb4gB,cAAe,SAAU9kC,GACrB,GAAI2S,GAAO3b,KAAMyE,EAAYkX,EAAK4f,YAAc5f,EAAKlI,aAAalP,KAAK,SAAWoX,EAAKjS,MAAOkpC,EAAcnuC,EAAUF,KAAK,mBAAmBA,KAAK,mBAAmB7F,OAAQA,EAAS+F,EAAUF,KAAK,YAAYA,KAAK,mBAAmB7F,OAAQuK,EAAOxE,EAAU2E,SAAS,kBAAkB9E,OAAO,WAC7R,OAAQ9G,EAAEwC,MAAMoJ,SAAS,YAAY1K,QAEzCsK,GAAStK,GACTlB,EAAMyF,MAAM+F,EAAStK,EAAS,GAAGL,KAAK,iDAAmDsd,EAAK1a,QAAQulB,SAASI,2BAA6B,UAAUkU,UAAUr2B,EAAU2E,SAAS,0BAC/KuS,EAAKlU,QAAQsH,GAAG,aAChB9F,EAAK1E,KAAK,mBAAmBiB,QAE1BwD,EAAStK,GAChB+F,EAAUF,KAAK,MAAMimB,KAAK,WACtBhtB,EAAEwC,MAAMuE,KAAK,mBAAmBD,OAAO,OAAS0E,EAAS,SAAgBA,EAAS,KAAKoD,WAG3FpD,EAAS4pC,GACTp1C,EAAMyF,MAAM+F,EAAS4pC,EAAc,GAAGv0C,KAAK,8DAA8Dy8B,UAAUr2B,EAAUF,KAAK,mBAG1IixC,eAAgB,SAAU7kC,EAAM8kC,GAQ5B,MAPI9kC,IAAQ8kC,IAEJ9kC,EADAA,EAAKC,aACE5Q,KAAKw1C,eAAe7kC,EAAKE,MAAM,GAAI4kC,GAEnC9kC,EAAKE,MAAM,IAGnBF,GAEXihB,mBAAoB,WAChB,GAAiBhB,GAAbjV,EAAO3b,IACN2b,GAAK4f,cAGV3K,EAASpzB,EAAE,4CAA6Cme,EAAKiB,SAASpZ,IAAImY,EAAKjS,MAAMyB,UAAU3H,IAAImY,EAAK1N,OACxG0N,EAAKoR,aAAe1b,GAAWuf,EAAO3sB,GAAG,IACzC2sB,EAAO/xB,MAAM8c,EAAKoR,cAClB6D,EAASpzB,EAAE,8CAA+Cme,EAAKiB,SAASpZ,IAAImY,EAAKlI,aAAalP,KAAK,WAAWf,IAAImY,EAAKpI,aACvHqd,EAAO/xB,MAAMwS,GAAWuf,EAAO3sB,GAAG,OAEtCy8B,WAAY,SAAUj7B,GAAV,GACS0C,GAAMyoB,EAAQ7sB,EAAK8H,EAAMC,EAAUlC,EAAqB8rC,EAAiBh3C,EAAyN+R,EAiB/SjK,EAiBA/B,EAlCAkX,EAAO3b,KAAmDnB,EAAQ,EAA4BmqB,EAASrN,EAAKqN,QAAUrN,EAAKiB,QAAQrY,KAAK,kBAAmBe,EAAUqW,EAAKrW,QAASyrB,EAAgBpV,EAAKlI,aAAe/G,EAAciP,EAAKlI,aAAalP,KAAK,iBAAiBD,OAAOgD,GAAe5I,OAAS,EAAgB2yB,EAAmC1pB,GAAKoC,EAAY4R,EAAKrW,SAAU,SAAUG,GACrY,MAAOA,GAAO6rB,2BAatB,IAVI7rB,EADiB,gBAAVA,GACEH,EAAQG,GACVX,GAAcW,GACZkC,GAAK6D,EAAYlG,GAAU,SAAUsK,GAC1C,MAAOA,KAASnK,IACjB,GAEMkC,GAAK6D,EAAYlG,GAAU,SAAUsK,GAC1C,MAAOA,GAAKhK,QAAUH,IACvB,GAEFA,GAAWI,EAAUJ,GAA1B,CAIA,GADIe,EAAsBmV,EAAKg6B,wBAAwBlwC,GACnDA,EAAOH,SAAWG,EAAOH,QAAQ5G,OAAQ,CAIzC,IAHAkL,EAAWW,EAAsB9E,EAAQH,GACzCkB,EAAoBf,GAAQ,GAC5ByK,GAAkB/L,EAAS3G,EAAE,eAAgBme,EAAKlI,cAAekI,EAAKjS,MAAO,UAAYE,EAASO,IAAM,QAASP,EAASzB,MAAM,GAC3HpE,EAAM,EAAGA,EAAM0B,EAAOH,QAAQ5G,OAAQqF,IACvC/D,KAAK0gC,WAAWj7B,EAAOH,QAAQvB,GAGnC,OADA4X,GAAK+D,QAAQhI,IAAcjS,OAAQA,IACnC,EA4BJ,GA1BAgL,EAAcnF,GAAQ7F,EAAQiC,EAAeqC,EAAYzE,KACzDkB,EAAoBf,GAAQ,GAC5BkW,EAAKi6B,sBAAsBnwC,GAAQ,GACnCkW,EAAKwI,aACLxI,EAAK6V,cACL7V,EAAK4V,oBACD9sB,EAAYkX,EAAKjS,MACrBgsC,EAAkBjlC,EACdkL,EAAKlI,cAAgBsd,EAAgBtgB,EACrChM,EAAYkX,EAAKlI,aAAalP,KAAK,gBAEnCmxC,GAAmB3kB,EAEvB5oB,EAAOuE,EAAcjI,GAAWH,OAAOgD,GAAerD,GAAGyxC,GACzDvtC,EAAK,GAAGlJ,MAAMsI,QAAU,OACxB2I,GAAkB/L,EAAS3G,EAAE,eAAgBme,EAAKlI,cAAekI,EAAKjS,MAAO,uBAAwB+G,GAAa,GAC9GuY,EAAO,KACPrN,EAAK6V,YAAYxI,EAAOzkB,KAAK,+BAC7BoX,EAAK4V,kBAAkBvI,EAAOzkB,KAAK,iCACnC2L,GAAkB8Y,EAAOzkB,KAAK,yBAA0BkM,GAAa,IAErEkL,EAAKpI,aAAewd,EAAgBtgB,EACpCD,GAAgBmL,EAAKpI,YAAYhP,KAAK,aAAckM,GAEpDD,GAAgBmL,EAAK3N,MAAM5E,WAAYqH,EAAcsgB,GAErDpV,EAAKpI,YACLoI,EAAKiW,qBACLjW,EAAKsR,8BACLtR,EAAKuR,2BACLvR,EAAKwR,0BACLxR,EAAK4Y,8BACF,CAEH,IADA1oB,EAAO8P,EAAKjS,MAAMwmB,OAAO3rB,KAAK,OACzBR,EAAM,EAAGrF,EAASmN,EAAKnN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAAG,CAExD,GADA+H,EAAWD,EAAK9H,GAAK9E,MAAMJ,OACvBiN,GAAYA,EAASC,QAAQ,SAE1B,CACHlN,EAAQ,CACR,OAHAA,GAASmN,SAASF,EAAU,IAMpC8kB,EAASpzB,EAAE,0DAA2Dme,EAAKiB,SAASpZ,IAAImY,EAAK1N,OAC7F0N,EAAKoR,aAAe,KAChBluB,IACA+xB,EAAOpG,KAAK,WACRxqB,KAAKf,MAAMJ,MAAQA,EAAQ,OAE/B8c,EAAKoR,aAAeluB,GAEpBoQ,GAAQC,MAA2B,GAAnBD,GAAQE,UACxByhB,EAAOntB,IAAI,UAAW,gBACtB2L,WAAW,WACPwhB,EAAOntB,IAAI,UAAW,UACvB,IAGXkY,EAAKkW,0BACDR,EAAiC3yB,OAAS,GAC1Cid,EAAKgW,mBAEThW,EAAK+D,QAAQhI,IAAcjS,OAAQA,MAEvCmwC,sBAAuB,SAAUnwC,EAAQgB,GAAlB,GAGf1C,GAEAoH,EACAvB,EACAzB,EACAqF,EAPAmO,EAAO3b,KACPsF,EAAUqW,EAAKrW,QAEfc,KAKAI,EAAsBmV,EAAKg6B,wBAAwBlwC,GACnDowC,EAAYpvC,EAAU,SAAUqvC,GAChC,MAAOpuC,GAAeouC,EAAExwC,SAAS5G,QAAUo3C,EAAEpwC,QAC7C,SAAUowC,GACV,OAAQpuC,EAAeouC,EAAExwC,SAAS5G,SAAWo3C,EAAEpwC,OAEnD,IAAIW,EAAcZ,EAAQH,EAASc,IAAYA,EAAQ1H,OACnD,IAAKqF,EAAMqC,EAAQ1H,OAAS,EAAGqF,GAAO,EAAGA,IACrCoH,EAAS/E,EAAQrC,GACjB6F,EAAWM,EAAeiB,EAAQ7F,GAClC6C,EAAOhE,EAAS3G,EAAE,eAAgBwC,KAAKyT,cAAezT,KAAK0J,MAAO,UAAYE,EAASO,IAAM,kDAAkDlG,GAAG2F,EAASzB,MACvJ0tC,EAAU1qC,KACV3E,EAAoB2E,EAAQ1E,GAC5B0B,EAAK,GAAGlJ,MAAMsI,QAAUd,EAAU,GAAK,QAEvC0B,EAAK7D,OAAO,IAAM5E,GAAMoD,KAAK,WAAa,KAAKpE,SAC/C8O,EAAUxB,SAAS7D,EAAKrF,KAAKpD,GAAMoD,KAAK,YAAa,IACrDqF,EAAK,GAAGqF,QAAUA,EAAU9B,EAAuBP,EAAO7F,UAAY,IAKtFk7B,WAAY,SAAU/6B,GAAV,GACS1B,GAAKrF,EAAQyJ,EAAMyoB,EAAQ/xB,EAAO62C,EAAiB9rC,EAAUkC,EAAUD,EAAsM4E,EAAaslC,EAAgBC,EA0BvTxvC,EAoBA/B,EA9CAkX,EAAO3b,KAAmFsF,EAAUqW,EAAKrW,QAAS0jB,EAASrN,EAAKqN,QAAUrN,EAAKiB,QAAQrY,KAAK,kBAAmB8iC,EAAqB1rB,EAAKlI,aAAe/G,EAAciP,EAAKlI,aAAalP,KAAK,iBAAiB7F,OAAS,EAAiD2yB,EAAmC1pB,GAAKoC,EAAY4R,EAAKrW,SAAU,SAAUG,GACjZ,MAAOA,GAAO6rB,2BAsBtB,IApBqB,gBAAV7rB,IACPgL,EAAchL,EACdA,EAASH,EAAQG,IACVX,GAAcW,GACrBjI,EAAEgtB,KAAKhf,EAAYlG,GAAU,SAAUuF,EAAO+E,GAC1C,GAAIA,IAASnK,EAGT,MAFAA,GAASmK,EACTa,EAAc5F,GACP,IAIfrN,EAAEgtB,KAAKhf,EAAYlG,GAAU,SAAUuF,EAAO+E,GAC1C,GAAIA,EAAKhK,QAAUH,EAGf,MAFAA,GAASmK,EACTa,EAAc5F,GACP,IAIdpF,IAAUI,EAAUJ,GAAzB,CAIA,GADIe,EAAsBmV,EAAKg6B,wBAAwBlwC,GACnDA,EAAOH,SAAWG,EAAOH,QAAQ5G,OAAQ,CAKzC,IAJAkL,EAAWM,EAAezE,EAAQH,GAClCywC,EAAiBvqC,EAAYmQ,EAAK1a,QAAQqE,SAASmL,GACnDjK,EAAoBf,GAAQ,GAC5ByK,GAAkB/L,EAAS3G,EAAE,eAAgBme,EAAKlI,cAAekI,EAAKjS,MAAO,UAAYE,EAASO,IAAM,QAASP,EAASzB,MAAM,GAC3HpE,EAAM,EAAGA,EAAM0B,EAAOH,QAAQ5G,OAAQqF,IAClCgyC,EAAezwC,QAAQvB,GAAK2B,QAC7B1F,KAAKwgC,WAAW/6B,EAAOH,QAAQvB,GAIvC,OADA4X,GAAK+D,QAAQ/H,IAAclS,OAAQA,IACnC,EA4BJ,GA1BAuwC,EAAkB1qC,GAAQ7F,EAAQsE,EAAYzE,IAC9CkB,EAAoBf,GAAQ,GAC5BkW,EAAKi6B,sBAAsBnwC,GAAQ,GACnCkW,EAAKwI,aACLxI,EAAK6V,cACL7V,EAAK4V,oBACD9sB,EAAYkX,EAAKjS,MACrBgsC,EAAkBM,EACdr6B,EAAKlI,cAAgB4zB,EAAqB2O,EAC1CvxC,EAAYkX,EAAKlI,aAAalP,KAAK,gBAEnCmxC,GAAmBrO,EAEvBl/B,EAAOuE,EAAcjI,GAAWR,GAAGyxC,GACnCvtC,EAAK,GAAGlJ,MAAMsI,QAAU,GACxB2I,GAAkB/L,EAAS3G,EAAE,eAAgBme,EAAKlI,cAAekI,EAAKjS,MAAO,uBAAwBssC,GAAiB,GAClHhtB,EAAO,KACPrN,EAAK6V,YAAYxI,EAAOzkB,KAAK,+BAC7BoX,EAAK4V,kBAAkBvI,EAAOzkB,KAAK,iCACnC2L,GAAkB8Y,EAAOzkB,KAAK,yBAA0ByxC,GAAiB,IAEzEr6B,EAAKpI,aAAe8zB,EAAqB2O,EACzChlC,GAAgB2K,EAAKpI,YAAYhP,KAAK,aAAcyxC,GAEpDhlC,GAAgB2K,EAAK3N,MAAM5E,WAAY4sC,EAAkB3O,GAEzD1rB,EAAKpI,YACLoI,EAAKiW,qBACLjW,EAAKsR,8BACLtR,EAAKuR,2BACLvR,EAAKwR,8BAGL,IADAyD,EAASpzB,EAAE,0DAA2Dme,EAAKiB,SAASpZ,IAAImY,EAAK1N,OACxFxI,EAAO5G,MAEL,CAGH,IAFAA,EAAQ,EACRgN,EAAO8P,EAAKjS,MAAMwmB,OAAO3rB,KAAK,OACzBR,EAAM,EAAGrF,EAASmN,EAAKnN,OAAQqF,EAAMrF,EAAQqF,GAAO,EAAG,CAExD,GADA+H,EAAWD,EAAK9H,GAAK9E,MAAMJ,MACvBiN,EAASC,QAAQ,QAAW,CAC5BlN,EAAQ,CACR,OAEJA,GAASmN,SAASF,EAAU,IAEhC6P,EAAKoR,aAAe,KAChBluB,IACA+xB,EAAOpG,KAAK,WACRxqB,KAAKf,MAAMJ,MAAQA,EAAQ,OAE/B8c,EAAKoR,aAAeluB,OAjBxB+xB,GAAO/xB,MAAM,GAqBrB8c,GAAKkW,0BACDR,EAAiC3yB,OAAS,GAC1Cid,EAAKgW,mBAEThW,EAAK+D,QAAQ/H,IAAclS,OAAQA,MAEvCkwC,wBAAyB,SAAUlwC,GAC/B,GAAI2mB,GAAM3mB,KACV,OAAI2B,GAAYglB,EAAI/kB,OACTb,EAEAM,GAGf2kC,UAAW,SAAUoG,GAAV,GACHpqC,GAAUzH,KAAKyH,QACfs0B,EAAU/7B,KAAKiB,QAAQqkB,YAActlB,KAAKiB,QAAQqkB,WAAWyW,OAC7D/7B,MAAKyyB,gBAAuC,UAArBzyB,KAAKoyB,YAC5B3qB,EAAUzH,KAAKyyB,eACRzyB,KAAKoE,eAAiB23B,EAC7Bt0B,EAAUzH,KAAK4c,QACR5c,KAAKyH,QAAQsH,GAAG,SACvBtH,EAAUzH,KAAKyH,QAAQ0D,SAChBnL,KAAKqE,SAAWrE,KAAKqE,QAAQ3F,SACpC+I,EAAUzH,KAAKqE,SAEf03B,GAAW8V,EACXnyC,GAAMuV,GAAGgN,SAASxa,EAASoqC,GACvB/yC,OAAQkB,KAAKqE,QAAQvF,SACrBiiB,IAAK/gB,KAAKqE,QAAQ,GAAGrC,UACrBq9B,SAAS,IAGb3/B,GAAMuV,GAAGgN,SAASxa,EAASoqC,IAGnCoE,QAAS,SAAUl2C,EAAMm2C,GACrBl2C,KAAKktB,2BACLltB,KAAKmtB,0BACDntB,KAAKqE,UACLrE,KAAKqqC,mBACLrqC,KAAKkkB,qBAELlkB,KAAKuT,cACLvT,KAAKoE,cAAc,GAAG4Z,UAAYhe,KAAKqE,QAAQ,GAAG2Z,WAElDhe,KAAKwlB,oBAAsB0wB,GAASl2C,KAAKorC,cACrC8K,IACAl2C,KAAKorC,WAAa,MAEtBprC,KAAKwlB,kBAAkBrD,oBAEvBniB,KAAKknB,OAASlnB,KAAKknB,MAAMzf,SACzBzH,KAAKknB,MAAM/B,OAAO+wB,IAG1BC,iBAAkB,WACd,GAAIxP,GAAStxB,IACb,SAAKsxB,IAGE3mC,KAAKiO,MAAM,KAAO04B,GAAUnpC,EAAE2W,SAASnU,KAAKiO,MAAM,GAAI04B,IAAW3mC,KAAKu7B,cAAgBv7B,KAAKuT,YAAY,KAAOozB,GAAUnpC,EAAE2W,SAASnU,KAAKuT,YAAY,GAAIozB,MAEnK5qB,QAAS,SAAUvJ,GACf,GAAwFmkB,GAAmMyf,EAAmBC,EAA1S16B,EAAO3b,KAAM2Q,EAAOgL,EAAKM,WAAW4d,OAAQ9lB,EAAc4H,EAAK1a,QAAQ8S,YAA2B3U,EAAU5B,EAAEme,EAAKvc,WAAYk3C,GAAoB,EAAOttC,GAAU2S,EAAKM,WAAWuN,aAAe9qB,OAAQqW,EAAU/L,EAASyD,EAAmB/E,EAAeiU,EAAKrW,UAAU5G,MAC/Q8T,IAAkB,eAAbA,EAAEkQ,SAA4B/G,EAAKzI,UAAYyI,EAAK1a,QAAQqkB,WAAWyW,WACpD,SAApB/7B,KAAKoyB,aAA+C,UAArBpyB,KAAKoyB,cAA4BzW,EAAKkZ,sBAIzEriB,GAAkB,WAAbA,EAAEkQ,QAAuB/G,EAAKzI,UAAYyI,EAAKzI,SAASjS,QAAQ+R,OAAS1H,GAAQqQ,EAAKzI,SAASjS,QAAQ+R,MAAOR,EAAE3B,WACrH8K,EAAKzI,SAASjS,QAAQ+R,MAAMmJ,OAAO1E,GAAQkE,EAAKuZ,qBAEpD1iB,EAAIA,MACAmJ,EAAK+D,QAAQ,eACTgD,OAAQlQ,EAAEkQ,QAAU,SACpB7X,MAAO2H,EAAE3H,MACTgG,MAAO2B,EAAE3B,UAIb2B,EAAEkQ,SAAWtK,IAAQuD,EAAK6d,uBAC1B7d,EAAKqM,mBACLrM,EAAKgY,uBAEThY,EAAKoL,cAAc,WACdpL,EAAKstB,0BACFl1B,IAAgB4H,EAAKw6B,oBAAsBx6B,EAAK8W,gBAAkB9W,EAAK8W,eAAe9hB,KAAK,kBAC3F2lC,EAAoBl3C,EAAQ2P,GAAG,MAC/B4nB,EAAe2f,EAAoBl3C,EAAQ+L,SAAS/B,SAAS,uBAAuByB,MAAMzL,EAAQ,IAAMqO,KAAKpD,IAAIsR,EAAKqW,UAAU5yB,GAAU,IAE9Iuc,EAAKqM,oBAELrM,EAAK1a,QAAQqkB,YAAc3J,EAAK1a,QAAQqkB,WAAWyW,SACnDhf,aAAapB,EAAKyL,kBAClBzL,EAAKyL,iBAAmBhY,WAAW,WAC1BuM,EAAKstB,yBACNttB,EAAK8vB,WAAU,IAEpB,MAEH9vB,EAAK8vB,WAAU,GAEnB9vB,EAAKkQ,oBACLlQ,EAAK4N,SACA5N,EAAKrW,QAAQ5G,SACdid,EAAK+3B,aAAa/3B,EAAK65B,eAAe7kC,EAAK,GAAI3H,IAC/C+L,EAAU/L,EAAS2S,EAAKrW,QAAQ5G,QAEpCid,EAAKmJ,OAAS9b,EAAS,GAAK2S,EAAKmJ,OAC7BnJ,EAAKmJ,SACLnJ,EAAKwI,aACLxI,EAAK6V,cACL7V,EAAK4V,oBACL5V,EAAKmyB,cAAc9kC,GACnB2S,EAAKmJ,OAAS9b,EAAS,EACvB2S,EAAKwN,WAAazY,GAAUC,IAE5BgL,EAAKtX,UACL+xC,EAAoBz6B,EAAKtX,QAAQgO,cAErCgkC,EAAoB16B,EAAKutB,wBACzBvtB,EAAK46B,eAAe5lC,EAAMoE,EAAS/L,GAC/B2S,EAAK1a,QAAQqkB,YAAc3J,EAAK1a,QAAQqkB,WAAWyW,SAAW/7B,KAAKoE,gBACnEuX,EAAKutB,wBAA0BmN,GAEnC16B,EAAK66B,qBAAqB7lC,EAAMoE,EAAS/L,GACzC2S,EAAKqJ,UACLrJ,EAAKwuB,0BACLxuB,EAAK86B,yBACL96B,EAAKuI,oBACLvI,EAAK0uB,iBAAiB1uB,EAAKtX,SAAW+xC,GAClCz6B,EAAKpI,cACDoI,EAAK1a,QAAQqkB,WAAWC,QACxB5J,EAAKtX,QAAQE,KAAK,+BAA+Bmb,QAAQ,UAClD/D,EAAK0Y,cACZ1Y,EAAK0Y,cAAc8U,QAAQzpB,QAAQ,WAEnC/D,EAAKiB,QAAQrK,IAAI,SAAU,SAAUC,GACjCA,EAAE8gB,oBAEN3X,EAAKtX,QAAQqb,QAAQ,YAGxB/D,EAAKstB,yBACNttB,EAAK+6B,gBAAgB/f,EAAc2f,GAEnC36B,EAAK0Y,eACL1Y,EAAK0Y,cAAcsiB,iBAEnBh7B,EAAK1I,YACL0I,EAAK1I,WAAW2jC,mBAEpBj7B,EAAKk7B,mBAAmB,WACpBl7B,EAAKoL,cAAc,aAEnBpL,EAAKmd,oBACLnd,EAAKgiB,yBAAwB,GAE7BhiB,EAAK1a,QAAQ6kB,mBAAqBnK,EAAK1I,aAAevT,GAAMuV,GAAGmoB,WAAWC,aAAa1hB,EAAK1a,QAAQgS,YAAY9K,MAAQwT,EAAKmd,oBAC7Hnd,EAAKm7B,oBAELn7B,EAAK8L,gBAET9L,EAAK+D,QAAQ7H,OAEjB6+B,gBAAiB,SAAU/f,EAAc2f,GAAxB,GAQLhqC,GAMAnC,EAKA8nB,CAlBJ0E,KAAiBj0B,GAAai0B,EAAe,IAGjD32B,KAAKm6B,iBACDmc,EACAt2C,KAAK8T,YAAY9T,KAAK0J,MAAMnF,KAAK,yBAAyBN,GAAG0yB,KAEzDrqB,EAAW,EACXtM,KAAK+iC,iBACLz2B,EAAWtM,KAAKwlB,kBAAkB5b,SAAS5J,KAAK+iC,kBAEhDpM,EAAe,EAEfxsB,EAAM3M,IACNwC,KAAKuT,cACLpJ,EAAMnK,KAAKuT,YAAYhP,KAAK,aAAaN,GAAGqI,IAEhDnC,EAAMA,EAAI3G,IAAIxD,KAAKgO,MAAM5E,WAAWnF,GAAGqI,IACnC2lB,EAAK9nB,EAAI5F,KAAK,iDAAiDN,GAAG0yB,GACtE32B,KAAK8T,YAAYme,IAEjBjyB,KAAKwiC,UACLrwB,GAAWnS,KAAKwiC,SAASp1B,QAAQ,SAAS,IAAI,KAGtD0pC,kBAAmB,WACf,GAAyCC,GAArCp7B,EAAO3b,KAAM+hC,EAAUpmB,EAAK9K,QAAuB3K,EAAK2P,GAAW8F,EAAKM,WAAWhb,QAAQi1B,OAAOljB,OAAS2I,EAAKM,WAAWhb,QAAQi1B,OAAOljB,MAAM4I,GAAGwa,QAAUza,EAAKM,WAAWhb,QAAQi1B,OAAOljB,MAAM9M,EACtM6wC,GAAepvC,GAAKo6B,EAAS,SAAU53B,GACnC,GAAI6sC,GAAcr7B,EAAK6Z,SAASrrB,GAAKjE,EACrC,IAAIyV,EAAK8L,aAAauvB,GAClB,MAAO7sC,KAGfwR,EAAKod,OAAOge,IAEhBhwB,cAAe,SAAUkwB,GACrBv3C,GAAMuV,GAAGsO,gBAAgB3H,GAAGmL,cAAclL,KAAK7b,KAAMi3C,GACzC,YAARA,GAAuBj3C,KAAKic,YAAejc,KAAKic,WAAWhb,QAAQ86B,SACnE/7B,KAAKk3C,sBAETl3C,KAAKm3C,mBAAmBF,GACxBj3C,KAAKo3C,yBAAyBH,IAElCC,oBAAqB,WACjB,GAAIv7B,GAAO3b,IACP2b,GAAKgP,gBACLhP,EAAK4O,QAAQ,UAAW,WACpB,OAASpmB,SAAUwX,EAAK3N,MAAM5E,SAAS,oBAE3CuS,EAAK3N,MAAMzJ,KAAK,kBAAkB4J,UAG1CgpC,mBAAoB,SAAUF,GAC1B,GAAIt7B,GAAO3b,KAAMyE,EAAYkX,EAAK3N,KAC9B2N,GAAKvX,gBACLK,EAAYkX,EAAKpI,YAAYhP,KAAK,UAElCoX,EAAKmJ,QACLnJ,EAAK4O,QAAQ0sB,EAAK,WACd,OACI9yC,SAAUM,EAAU2E,SAAS,mBAC7BuH,KAAMnT,EAAE8C,IAAIoQ,GAAUiL,EAAKM,WAAW4d,QAAS,SAAUrE,GACrD,OAASA,SAAUA,SAMvC4hB,yBAA0B,SAAUH,GAChC,GAAIt7B,GAAO3b,KAAMyE,EAAYkX,EAAK3N,KAC9B2N,GAAKvX,gBACLK,EAAYkX,EAAKlU,SAEjBkU,EAAKmJ,QAAUnJ,EAAKiN,qBACpBjN,EAAK4O,QAAQ0sB,EAAK,WACd,OACI9yC,SAAUM,EAAUF,KAAK,mBACzBoM,KAAMnT,EAAE8C,IAAIwQ,GAAa6K,EAAKM,WAAW4d,QAAS,SAAUrE,GACxD,OAASA,SAAUA,SAMvC+gB,eAAgB,SAAU5lC,EAAMoE,EAAS/L,GACrC,GAAiBjF,GAAKrF,EAAgF+1C,EAAe4C,EAAjH17B,EAAO3b,KAAmBkO,EAAO,GAAIqe,EAAiC,MAAtB5Q,EAAKvX,cAAuBkzC,EAAgB,KAAqChyB,EAAa3J,EAAK1a,QAAQqkB,WAAYuuB,GACnK9tB,YAAapK,EAAKoK,YAClBC,eAAgBrK,EAAKqK,eACrB4C,oBAAqBjN,EAAKiN,oBAC1B0I,0BAA2B3V,EAAK2V,0BAUxC,IARIhM,GAAcA,EAAWyW,UAAYpgB,EAAKM,WAAWhb,QAAQ86B,UAC7DpgB,EAAKutB,wBAA0B,EAC3BvtB,EAAKtX,UACLsX,EAAKtX,QAAQ,GAAG2Z,UAAY,IAGpCs5B,EAAgB37B,EAAKutB,wBAA0B,EAC/Cn0B,EAAUwX,EAAWxX,EAAUtI,EAAmBD,EAAqBmP,EAAKrW,UAAU5G,OAASqW,EAC3F/L,EAAS,EAWT,IAVA+L,EAAUwX,EAAWxX,EAAU/L,EAAS+L,EACpC4G,EAAK0K,gBACLtR,IAEA4G,EAAKiN,sBACLjN,EAAKu4B,8BAAgCv4B,EAAKM,WAAWlL,cAErD4K,EAAK1a,QAAQqkB,WAAWyW,UACxBsb,EAAiB17B,EAAKM,WAAWs7B,WAAW74C,QAE3CqF,EAAM,EAAGrF,EAASiS,EAAKjS,OAAQqF,EAAMrF,EAAQqF,IACzC4X,EAAKi5B,iBACNj5B,EAAKi5B,mBAETH,EAAgB4C,GAAkBtzC,IAAQ4M,EAAKjS,OAAS,GAAK24C,IAAmB17B,EAAKM,WAAW4F,QAChG3T,GAAQyN,EAAK24B,cAAc3jC,EAAK5M,GAAMgR,EAAS,EAAGwX,EAAWvX,GAA+BF,GAAiB++B,EAAWtnB,EAAUkoB,OAGtIvmC,IAAQyN,EAAKi4B,UAAUjjC,EAAMkjC,EAE7ByD,IACA37B,EAAK3N,MAAMtD,OAAOwD,GAClB6O,aAAapB,EAAK2L,sBAClB3L,EAAK2L,qBAAuBlY,WAAW,WAC/BuM,EAAKw5B,mBACLx5B,EAAK0f,cAAc1f,EAAKw5B,kBACxBx5B,EAAKw5B,iBAAmB,QAGhCx5B,EAAKstB,wBAA0B,MAE/BttB,EAAK3N,MAAQD,EAAc4N,EAAK3N,MAAO2N,EAAK1N,MAAOC,EAAMlO,KAAKiB,QAAQ0oB,WAG9EgI,iBAAkB,WACd,GAAoH6lB,GAA4DlyC,EAASyP,EAASyU,EAAO5jB,EAAOH,EAAQqwB,EAAUp4B,EAAM+5C,EAAiB/U,EAAgBC,EAAqB+U,EAAaC,EAAoBC,EAAYtqC,EAAOgkB,EAA2BumB,EAAzWl8B,EAAO3b,KAAM2Q,EAAOgL,EAAKwN,WAAYzY,EAAYiL,EAAKiB,QAAQrY,KAAK,mBAAoByE,EAAS2S,EAAKoJ,UAAgCwH,EAAiC,MAAtB5Q,EAAKvX,aACzJsM,GAAU8Z,KAAK,SAAU3f,EAAOV,GAC5BytC,EAAap6C,EAAE2M,GACfu4B,EAAiBkV,EAAWxqC,QAAQ,SAASjC,SAC7Cw3B,EAAsBD,EAAe3zB,GAAG,IAAM8H,IAC9CvR,EAAgCmH,EAAtBk2B,EAAyCj7B,EAAea,EAAcoT,EAAKrW,UAAgCoC,EAAee,EAAiBkT,EAAKrW,WAC1JgI,EAAQsqC,EAAWrzC,KAAK,IAAMuS,IAAgBpY,OAC1C6tB,GACAirB,EAAsB7U,EAAsB7tB,GAAkBE,GAC9DD,EAAU4tB,EAAsBr9B,EAAQ5G,OAASsK,EAASsE,EAAQhI,EAAQ5G,SAE1E84C,EAAsB1iC,GACtBC,EAAUzP,EAAQ5G,OAASsK,EAASsE,GAExCkc,EAAQ3e,GAAS8F,EAAKjS,OAASiS,EAAK9F,EAAQ8F,EAAKjS,QAAUiS,EAAK9F,GAChEjF,EAAQ4jB,EAAM5jB,MACdH,EAASkC,GAAKoC,EAAY4R,EAAKrW,SAAU,SAAUG,GAC/C,MAAOA,GAAOG,OAASA,IACxB,OACHiyC,IAAwBpyC,EAAOkvC,sBAAuBjtC,EAAeiU,EAAKrW,SAAS,GAAGgsB,4BAA4B5pB,EAAeiU,EAAKrW,SAAS,GAC/IwwB,EAAWrwB,EAAOkvC,oBAAsBlvC,EAAOkvC,oBAAsBjtC,EAAeiU,EAAKrW,SAAS,GAAGgsB,0BACrG5zB,GAAQ+H,EAAO6oB,OAAS1oB,GAAS,KAAOiK,GAAiB2Z,EAAMnpB,MAAOoF,EAAOqJ,OAAQrJ,EAAOsuB,OAAQtuB,EAAOF,SAC3GyD,EAASA,EACTyuC,EAAkB97B,EAAKm4B,WAAWtqB,GAAO,EAAOquB,GAChDvmB,EAA4BqR,EAAsBhnB,EAAK80B,gCAAkC90B,EAAK2V,0BAC1FwE,IACAp4B,QAAco4B,KAAatc,GAAWsc,EAAS2hB,GAAmB/3C,GAAMo2B,SAASA,GAAU2hB,IAE/FC,EAAcE,EAAW1nB,OAAOxxB,OAASk5C,EAAW1nB,OAAS0nB,EAAWzsC,SACxEwsC,EAAqBn6C,EAAE8zB,EAA4BA,EAA0BzxB,MAAW43C,GACpF10C,WAAYuK,EACZyH,QAAS/L,EAASsE,EAClB5P,KAAMA,KACJ85C,EAAoBziC,EAASzH,EAAO5P,IACtCg6C,EAAY3oC,GAAG,SACf2oC,EAAY1oC,QAAQ2oC,GAEpBD,EAAY3tB,MAAM4tB,GAEtBC,EAAWxrC,YAGnBoqC,qBAAsB,SAAU7lC,EAAMoE,EAAS/L,GAAzB,GACHjF,GAAKrF,EAOZuP,EAPJC,EAAO,GAAiBopC,EAAgB,KAAMzD,GAC1C9tB,YAAa/lB,KAAKyoB,kBAClBzC,eAAgBhmB,KAAK0oB,qBACrBE,oBAAqB5oB,KAAK6oB,0BAC1ByI,0BAA2BtxB,KAAKywC,gCAExC,IAAIzwC,KAAKoE,cAAe,CAGpB,GAFI6J,EAAQjO,KAAKuT,YACjB+jC,EAAgBt3C,KAAKkpC,wBAA0B,EAC3ClgC,EAAS,EAET,IADA+L,GAAoBrN,EAAeqC,EAAYtB,EAAiBzI,KAAKsF,WAAW5G,OAC3EqF,EAAM,EAAGrF,EAASiS,EAAKjS,OAAQqF,EAAMrF,EAAQqF,IAC9CmK,GAAQlO,KAAKs0C,cAAc3jC,EAAK5M,GAAMgR,EAAS,EAAGD,GAAiB++B,GAAW,EAAO7zC,KAAKiB,QAAQqkB,WAAWyW,SAAWh4B,IAAQ4M,EAAKjS,OAAS,OAGlJwP,GAAOlO,KAAK4zC,UAAUjjC,EAAMkjC,EAE5ByD,GACArpC,EAAM7E,SAAS,SAASsB,OAAOwD,GAE/BH,EAAcE,EAAM7E,SAAS,SAAU6E,EAAOC,EAAMlO,KAAKiB,QAAQ0oB,UAErE3pB,KAAKktB,6BAGbupB,uBAAwB,WAChBz2C,KAAKiB,QAAQ4kB,SAASiyB,iBAAkB,GACxC93C,KAAK4c,QAAQrY,KAAK,iBAAiBstC,OAAO7xC,KAAKic,WAAW4F,SAAW7hB,KAAKic,WAAWgF,aAG7FqT,kBAAmB,SAAU/iB,EAAQC,GAAlB,GACkCzN,GAazCiO,EACAC,EACAnT,EAfJmK,EAAOsI,EAAO,GAAGtI,KAAMvK,EAASuK,EAAKvK,OAAaq5C,EAAQvmC,EAAO,GAAGvI,KAAM+uC,EAAazmC,EAAO/N,IAAIgO,GAASymC,EAAmBD,EAAWt5C,OAAQw5C,IACrJ,KAAKn0C,EAAM,EAAGA,EAAMrF,GACXq5C,EAAMh0C,GADaA,IAIpBkF,EAAKlF,GAAK9E,MAAMH,SAChBmK,EAAKlF,GAAK9E,MAAMH,OAASi5C,EAAMh0C,GAAK9E,MAAMH,OAAS,GAG3D,KAAKiF,EAAM,EAAGA,EAAMrF,GACXq5C,EAAMh0C,GADaA,IAIpBiO,EAAgB/I,EAAKlF,GAAKhC,aAC1BkQ,EAAgB8lC,EAAMh0C,GAAKhC,aAC3BjD,EAAS,EACTkT,EAAgBC,EAChBnT,EAASkT,EACFA,EAAgBC,IACvBnT,EAASmT,GAEbimC,EAAQ/5C,KAAKW,EAEjB,KAAKiF,EAAM,EAAGA,EAAMk0C,EAAkBl0C,IAClCi0C,EAAWj0C,GAAK9E,MAAMsI,QAAU,MAEpC,KAAKxD,EAAM,EAAGA,EAAMrF,EAAQqF,IACpBm0C,EAAQn0C,KACRkF,EAAKlF,GAAK9E,MAAMH,OAASi5C,EAAMh0C,GAAK9E,MAAMH,OAASo5C,EAAQn0C,GAAO,EAAI,KAG9E,KAAKA,EAAM,EAAGA,EAAMk0C,EAAkBl0C,IAClCi0C,EAAWj0C,GAAK9E,MAAMsI,QAAU,KAIxC7H,IAAMy4C,YACNz4C,GAAMy4C,WAAWt4C,OAAOyjB,GAAK1N,WAE7BlW,GAAM04C,WACN14C,GAAM04C,SAASv4C,OAAOyjB,GAAK1N,WAC3B0N,GAAK1N,UAAUyiC,uBAAyB,SAAUp2B,GA8B9C,QAASoW,KACDigB,GAAYC,IAAiB71C,GAC7BuZ,EAAW1J,IAAI,SAAUimC,GACzBv8B,EAAW2G,KAAK21B,KAEhB3lC,EAAKmJ,UACLy8B,KAGR,QAASA,KACLC,EAAKv0C,SAASpD,SAASe,KACvB,IAAIZ,GAAUzD,EAAEqC,UAAW+S,EAAK3R,QAAQoiB,KACpCq1B,cAAc,EACdz2B,SAAU,SAAU6zB,GAChB7zB,EAASmD,QACLxC,KAAMkzB,EAAElzB,KACR+1B,WAAY7C,EAAE8C,QACd32B,SAAU,GAAM6zB,EAAE8C,QAAU9C,EAAE5b,WAAa,EAC3CA,WAAY4b,EAAE5b,eAI1Bx6B,IAAMm5C,QAAQC,QAAQC,EAAO93C,GAAS+3C,OAAO,WACzCP,EAAKrsC,WACN6sC,KAAK,SAAUzvB,GACdpmB,EAAOi1B,QAAQ7O,KAChB8P,KAAK,SAAU4f,GACd91C,EAAO+0B,OAAO+gB,KAGtB,QAASC,KAAT,GACQP,GAAU38B,EAAW2G,OACrBsX,EAAaoe,EAAWr8B,EAAWie,aAAe,CACtDr4B,GAAK6I,OAAO0uC,EAAS70C,KAAK,OACtBq0C,EAAU1e,EACVje,EAAW2G,KAAKg2B,EAAU,IAE1B38B,EAAWE,OAAO,SAAUg9B,GAC5B9gB,KApE4B,GA4BhCx2B,GACA02C,EA5BA3lC,EAAO5S,KACPoD,EAAS,GAAI5F,GAAE06B,SACfjc,EAAarJ,EAAKqJ,WAClBq8B,EAAW1lC,EAAK3R,QAAQoiB,IAAIi1B,SAC5Bc,EAAWxmC,EAAKgK,QAAQrY,KAAK,+BAC7Bk0C,EAAOj7C,EAAE,SAASiG,KAClBmG,SAAU,WACVihB,UACA9J,WAEAg4B,EAAQnmC,EAAKgK,QAAQm8B,QAAQt1C,KAC7B3E,OAAQ,OACRD,MAAO,SACRqF,SAASu0C,EA+DZ,OA9DAM,GAAMx0C,KAAK,mBAAmBd,KAC1B3E,OAAQ,OACRD,MAAO,OACPue,SAAU,YAEd27B,EAAMx0C,KAAK,6CAA6Cd,KACpD3E,OAAQ,OACRD,MAAO,OACPue,SAAU,YAEd27B,EAAMx0C,KAAK,sDAAsD6H,SACjE2sC,EAAMx0C,KAAK,kCAAkCd,KAAM41C,aAAc,IACjEr5C,KAAKs5C,iBAAiBr3B,GAClBpgB,EAAOk3C,EAAMx0C,KAAK,+BAA+B4J,QACjDoqC,EAAet8B,EAAW2G,OA0C1B01B,GACAr8B,EAAWG,KAAK,SAAU+8B,GAC1Bl9B,EAAW2G,KAAK,IAEhBu2B,IAEG/1C,EAAOg1B,WAElB9U,GAAK1N,UAAU2jC,SAAW,SAAUt3B,GAWhC,QAASoW,KACDigB,GAAYC,IAAiB71C,GAC7BuZ,EAAWE,OAAO,SAAUq9B,GAC5Bv9B,EAAW1J,IAAI,SAAU,WACrBnP,EAAOi1B,QAAQohB,KAEnBx9B,EAAW2G,KAAK21B,IAEhBn1C,EAAOi1B,QAAQohB,GAGvB,QAASD,KACL5mC,EAAK8mC,gBAAiB76C,MAAO+T,EAAKgK,QAAQ/d,UAAa86C,WAAY/mC,EAAK3R,QAAQoiB,IAAIs2B,aAActgB,KAAK,SAAU7P,GAAV,GAC/FovB,GAAU38B,EAAW2G,OACrBsX,EAAaoe,EAAWr8B,EAAWie,aAAe,EAClD0f,GACAh3B,KAAM4G,EACNmvB,WAAYC,EACZ32B,SAAU22B,EAAU1e,EACpBA,WAAYA,EAEhBjY,GAASmD,OAAOw0B,GAChBH,EAAI/uC,OAAOkvC,EAAKh3B,MACZg2B,EAAU1e,EACVje,EAAW2G,KAAKg2B,EAAU,GAE1BvgB,MAELiB,KAAK,SAAU4f,GACd91C,EAAO+0B,OAAO+gB,KAxCA,GAKlB91C,GACA6Y,EACAq8B,EAEAmB,EACAlB,EATA3lC,EAAO5S,IACX,OAAI4S,GAAK3R,QAAQoiB,IAAIw2B,WAA2C,QAA9BjnC,EAAK3R,QAAQoiB,IAAIw2B,UACxCjnC,EAAKylC,uBAAuBp2B,IAEnC7e,EAAS,GAAI5F,GAAE06B,SACfjc,EAAarJ,EAAKqJ,WAClBq8B,EAAW1lC,EAAK3R,QAAQoiB,IAAIi1B,SAChCt4C,KAAKs5C,iBAAiBr3B,GAClBw3B,EAAM,GAAI/5C,IAAMm5C,QAAQiB,MACxBvB,EAAet8B,EAAW2G,OAiC1B01B,GACAr8B,EAAWG,KAAK,SAAUo9B,GAC1Bv9B,EAAW2G,KAAK,IAEhB42B,IAEGp2C,EAAOg1B,YAElB9U,GAAK1N,UAAU0jC,iBAAmB,SAAUrhB,GAAV,GAQ1B8hB,GAPAC,EAAUx8C,EAAE,uEAChBw8C,GAAQhrC,QAAQhP,KAAK4c,QAAQm8B,QAAQt1C,KACjCmG,SAAU,WACVmX,IAAK,EACL8J,KAAM,KAEV7qB,KAAK4c,QAAQlS,OAAOsvC,GAChBD,EAAKv8C,EAAE,wCAA0C0G,SAAS81C,GAASC,kBACnE5kB,KAAM,QACN6kB,WAAY,GACZt4B,IAAK,EACLvX,IAAK,EACLhK,MAAO,IACRsQ,KAAK,oBACRsnB,EAAShW,SAAS,SAAUzP,GACxBunC,EAAG15C,MAAMmS,EAAEyP,YACZ+2B,OAAO,WACNt5C,GAAMid,QAAQq9B,GACdA,EAAQ5tC,aAmJpB6I,GAAGklC,OAAO72B,IACVrO,GAAGklC,OAAOz+B,KACZjc,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 ], 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 'mobile.actionsheet',\n 'mobile.pane'\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(.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', RESIZE = 'resize', COLUMNRESIZE = 'columnResize', COLUMNREORDER = 'columnReorder', COLUMNLOCK = 'columnLock', COLUMNUNLOCK = 'columnUnlock', 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', 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 = '# var checkboxGuid = kendo.guid(); #' + '' + '', SELECTCOLUMNHEADERTMPL = '# var checkboxGuid = kendo.guid(); #' + '' + '', isRtl = false, browser = kendo.support.browser, isIE7 = browser.msie && browser.version == 7, isIE8 = browser.msie && browser.version == 8;\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 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) {\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 wrapper.scrollLeft(wrapper.scrollLeft() - 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._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 _isElementVisible: function (element) {\n return this._isElementVisibleInWrapper(element);\n },\n _isElementVisibleInWrapper: function (element) {\n var that = this;\n var wrapper = that.wrapper;\n var offsetTop;\n var halfHeight;\n element = $(element);\n if (element[0] && contains(wrapper[0], element[0])) {\n offsetTop = element.offset().top - wrapper.offset().top;\n halfHeight = element.outerHeight() / 2;\n if ((offsetTop >= 0 || math.abs(offsetTop) <= halfHeight) && math.floor(offsetTop + halfHeight) <= wrapper.height()) {\n return true;\n }\n }\n return false;\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 + 1;\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 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, dataSource.total() - take);\n if (scrollbar.scrollTop() >= scrollbar[0].scrollHeight - scrollbar.height() - webkitCorrection) {\n that._scrollTop = that.wrapper[0].scrollHeight - that.wrapper.height();\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;\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 (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 });\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.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()) {\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) {\n that._rangeStart = dataSource.skip();\n }\n if (dataSource.page() === 1 && (!action || action !== SYNC && action !== ITEM_CHANGE)) {\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 };\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) {\n return map(columns, function (column) {\n column = typeof column === STRING ? { field: column } : column;\n var hidden;\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 if (column.columns) {\n column.columns = normalizeColumns(column.columns, encoded, hidden);\n }\n var uid = kendo.guid();\n column.headerAttributes = extend({ id: uid }, column.headerAttributes);\n return extend({\n encoded: encoded,\n hidden: hidden\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) {\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);\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) {\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).append(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);\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) {\n index--;\n } else if (index > 0 || index === 0 && !before) {\n index += before ? -1 : 1;\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 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 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 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 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 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 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 if (browser.msie && browser.version == 8) {\n table.css('display', 'inline-table');\n window.setTimeout(function () {\n table.css('display', '');\n }, 1);\n }\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 that._dataSource();\n that._tbody();\n that._pageable();\n that._thead();\n that._groupable();\n that._toolbar();\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 NAVIGATE,\n 'page',\n 'sort',\n 'filter',\n 'group',\n 'groupExpand',\n 'groupCollapse'\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 scrollableContent.scrollLeft(leftMostPosition(scrollableContent, isRtl));\n } else {\n scrollableContent = that.tbody;\n that.content.scrollLeft(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 }\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 groupable: false,\n rowTemplate: '',\n altRowTemplate: '',\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 },\n noRecords: NORECORDS,\n expandCollapseColumnHeader: '',\n groupHeader: 'Press ctrl + space to group',\n ungroupHeader: 'Press ctrl + space to ungroup'\n }\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 }\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 that._destroyEditable();\n if (that.dataSource) {\n that.dataSource.unbind(CHANGE, that._refreshHandler).unbind(PROGRESS, that._progressHandler).unbind(ERROR, that._errorHandler);\n that._refreshHandler = that._progressHandler = that._errorHandler = 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 = 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 }\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) {\n return container.children().filter(function () {\n var tr = $(this);\n return !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 if (isIE7) {\n table.attr('cellspacing', 0);\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 groups = this._groups();\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 if (!isRtl) {\n left = th[0].offsetWidth;\n var cells = leafDataCells(th.closest('thead')).filter(':visible');\n for (var idx = 0; idx < cells.length; idx++) {\n if (cells[idx] == th[0]) {\n break;\n }\n left += cells[idx].offsetWidth;\n }\n if (groups > 0) {\n left += outerWidth(container.find('.k-group-cell:first')) * groups;\n }\n if (that._hasDetails()) {\n left += outerWidth(container.find('.k-hierarchy-cell:first'));\n }\n } else {\n left = th.offset().left - parseFloat(th.css('marginLeft')) - (container.offset().left + parseFloat(container.css('borderLeftWidth')));\n if (scrollable) {\n var headerWrap = th.closest('.k-grid-header-wrap, .k-grid-header-locked'), ieCorrection = browser.msie ? headerWrap.scrollLeft() : 0, webkitCorrection = browser.webkit ? headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - headerWrap.scrollLeft() : 0, firefoxCorrection = browser.mozilla ? headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - (headerWrap[0].scrollWidth - headerWrap[0].offsetWidth - headerWrap.scrollLeft()) : 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 - indicatorWidth * 3 / 2,\n height: outerHeight(th),\n width: indicatorWidth * 3\n }).data('th', th).show();\n resizeHandle.off('dblclick' + NS).on('dblclick' + NS, function () {\n that._autoFitLeafColumn(th.data('index'));\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(that.columns)) : inArray(column, visibleNonLockedColumns(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 },\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 }\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 that.content.find('>.k-virtual-scrollable-wrap').scrollLeft(this.scrollLeft);\n } else {\n that.scrollables.not(e.currentTarget).scrollLeft(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) {\n var that = this;\n var sourcePosition = columnPosition(sources[0], that.columns);\n var destPosition = columnPosition(target, that.columns);\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 var ths = elements(that.lockedHeader, that.thead, 'tr:eq(' + sourcePosition.row + ')>th.k-header:not(.k-group-cell,.k-hierarchy-cell)');\n var sourceLockedColumns = lockedColumns(sources).length;\n var targetLockedColumns = lockedColumns([target]).length;\n if (leafs.length) {\n if (sourceLockedColumns > 0 && targetLockedColumns === 0) {\n moveCellsBetweenContainers(sources, target, leafs, that.columns, that.lockedHeader.find('thead'), that.thead, this._groups());\n } else if (sourceLockedColumns === 0 && targetLockedColumns > 0) {\n moveCellsBetweenContainers(sources, target, leafs, nonLockedColumns(that.columns), that.thead, that.lockedHeader.find('thead'), this._groups());\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 that._reorderHeader(leafs, target, before);\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) {\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)';\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 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 = contentDiv.scrollLeft();\n }\n } else {\n col = contentTable.children('colgroup').find(notGroupOrHierarchyCol).eq(index);\n }\n var tables = headerTable.add(contentTable).add(footerTable);\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 var newColumnWidth = Math.ceil(Math.max(outerWidth(th), 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 (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 if (browser.msie && browser.version == 8) {\n tables.css('display', 'inline-table');\n setTimeout(function () {\n tables.css('display', 'table');\n }, 1);\n }\n tables.removeClass('k-autofitting');\n if (scrollLeft) {\n contentDiv.scrollLeft(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 },\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], 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 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 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 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 _editable: function () {\n var that = this, selectable = that.selectable && that.selectable.options.multiple, 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-label') && 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.wrapper.on(CLICK + NS, 'tr:not(.k-grouping-row) > td', function (e) {\n var td = $(this), 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 if (selectable) {\n $(activeElement()).blur();\n }\n that.closeCell();\n that.editCell(td);\n } else {\n that._scrollVirtualWrapper();\n }\n } else {\n that.editCell(td);\n }\n }).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) {\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.cellIndex(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._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 }\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 _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.cellIndex(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 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.cellIndex(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' : '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 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 = window.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 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 format: column.format,\n editor: column.editor,\n values: column.values\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.cellIndex(cell)];\n if (!column.command && isColumnEditable(column, model)) {\n fields.push({\n field: column.field,\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,\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 that.content.data(OVERFLOW, that.content.css(OVERFLOW));\n that.content.css(OVERFLOW, HIDDEN);\n },\n close: function () {\n that.content.css(OVERFLOW, that.content.data(OVERFLOW));\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 }\n },\n _toolbarTmpl: function (commands) {\n var that = this, idx, length, html = '';\n if (isArray(commands)) {\n for (idx = 0, length = commands.length; idx < length; idx++) {\n html += that._createButton(commands[idx]);\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 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 === 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 });\n if (that.options.navigatable) {\n elements.on('keydown' + NS, function (e) {\n var current = that.current();\n var target = e.target;\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 = $('